Help With my Processor
Posted: Mon Apr 30, 2018 6:04 am
So, I didn't talked about my processor here, and I won't do that today, sorry (I wait to finish the website and update my compiler first). I'm actually working on the third version of my architecture and I just have a small problem that prevents me from finishing my instruction decoder :/
the thing is, in this 3rd version, each instruction only needs 1 clock cycle, that works for any instruction in almost any case; yeah "almost" because I have very specific case that I can't figure out how to deal with, let me explain:
I have some conditional jumps inspired from the game "TIS-100": JEZ, JNEZ, JGZ and JLZ where the processor will jump to a provided adress if the provided register is equal to zero, not equal, greater than or smaller than, so in one use of these instructions, I can have 2 different registers given as parameters: the register in witch the adress to jump to is stored, and the register to check.
and so there's the problem: I need to access 2 registers in one single clock cycle
if I'm right (I can't tell because I never found anything on internet) the memory used in program memory or registers can't be read at 2 adresses in a single read step, I mainly want to talk about that.
I found a way to deal with that for the superscalar executions (not yet in my processor, I plan to use it on a future 32b architecture) but I can't with the registers :/
the thing is, in this 3rd version, each instruction only needs 1 clock cycle, that works for any instruction in almost any case; yeah "almost" because I have very specific case that I can't figure out how to deal with, let me explain:
I have some conditional jumps inspired from the game "TIS-100": JEZ, JNEZ, JGZ and JLZ where the processor will jump to a provided adress if the provided register is equal to zero, not equal, greater than or smaller than, so in one use of these instructions, I can have 2 different registers given as parameters: the register in witch the adress to jump to is stored, and the register to check.
and so there's the problem: I need to access 2 registers in one single clock cycle
if I'm right (I can't tell because I never found anything on internet) the memory used in program memory or registers can't be read at 2 adresses in a single read step, I mainly want to talk about that.
I found a way to deal with that for the superscalar executions (not yet in my processor, I plan to use it on a future 32b architecture) but I can't with the registers :/