ISA design
Posted: Tue May 08, 2012 4:30 am
Hello,
For designing my new ISA for my planned CPU(Hack32),I would like suggestions on what instructions are most commonly used and would save memory and increase performance.(This will be a pipelined architecture and is 32 bits)
Here are the current instructions planned:
-A move constant instruction,which will move constants into a register
-A compute instruction which will compute operations on registers(NOT CONSTANTS)
-A move to memory instruction which will move data from registers to memory
-A retrieve from memory instruction which will move data from memory to registers
-A jump instruction which will do a conditional jump depending on the ALU flags or a unconditional jump
(Note:All computations will complete in 2 cycles - even multiplication)
It has the following units:
Fetch - fetches an instruction from memory
Decode - decodes an instruction
Reg - Reads memory and stores in register,only has purpose for retrieve instruction and is skipped for other instructions
Compute - Computes,only has purpose for compute instruction and is skipped for other instructions
Mem - Reads register and stores in memory,only has purpose for store instruction and is skipped for other instructions
And please don't ask for a MMU and other stuff,I will implement those in the next version.
For designing my new ISA for my planned CPU(Hack32),I would like suggestions on what instructions are most commonly used and would save memory and increase performance.(This will be a pipelined architecture and is 32 bits)
Here are the current instructions planned:
-A move constant instruction,which will move constants into a register
-A compute instruction which will compute operations on registers(NOT CONSTANTS)
-A move to memory instruction which will move data from registers to memory
-A retrieve from memory instruction which will move data from memory to registers
-A jump instruction which will do a conditional jump depending on the ALU flags or a unconditional jump
(Note:All computations will complete in 2 cycles - even multiplication)
It has the following units:
Fetch - fetches an instruction from memory
Decode - decodes an instruction
Reg - Reads memory and stores in register,only has purpose for retrieve instruction and is skipped for other instructions
Compute - Computes,only has purpose for compute instruction and is skipped for other instructions
Mem - Reads register and stores in memory,only has purpose for store instruction and is skipped for other instructions
And please don't ask for a MMU and other stuff,I will implement those in the next version.