Rudster816 wrote:
rdos wrote:
More complex instructions do more in a single clock cycle, which means that RISC is out and CISC is in.
That statement is just flat out wrong.
Let me rephrase it. If you put common and integrated actions in one instruction, it will execute more efficiently (both in power and speed consideration) in CISC architecture even if it will take more gates in design. You can implement every instruction with an algorithm written in extremely simple and clock boosted CPU (OISC maybe?
) But it will be the
sequence of the instructions and each of them needs to be prefetched, decoded and executed separately. That's why pure RISC loose.
Rudster816 wrote:
Memory writes only occur on every store if you're using an antiquated write through cache.
You still didn't get an idea. I'm not talking about
write through operations. I didn't mention that. I'm talking about
delayed writes (or
write back) of junk data. The cache knows nothing about the use of data below the stack pointer. So if at least once the data were written there, the memory write access will occur soon or later flushing the data (probably being already junk) from cache to memory. An idea is:
1. To delay writes from stack cache for as long as possible (in hope they'll be discarded).
2. To discard cache rows below the stack pointer without flushing them to memory.
Rudster816 wrote:
The very nature of a standard machine instruction is the fact that you can't break it up. It's the lowest common denominator.
Again, you still didn't get an idea. An idea is:
1. It is
simultaneously the whole (as CISC) and being made up of parts (like RISC sequence op+load/store).
2.
Logically it has completely independent parts of opcode and operands which makes assembly and execution very transparent and simple.
3.
In hardware it has a CISC potential of execution optimization. But the straightforward RISC-like approach of hardware implementation of such ISA with very simple Verilog/VHDL description is
still applicable.
Rudster816 wrote:
If you treat your operands as separate instructions, this very fundamental concept is broken.
They are NOT separate instructions.
Rudster816 wrote:
Code:
Address:
0x10010: XOR3
0x10011: Operand1
0x10012: Operand2
0x10013: Operand3
0x10014: NEXT INSTRUCTION
In every sense, one would say that the instruction is 4 bytes in length, not 4 1 byte instructions. Rather or not you think so is unimportant, because in order to maintain the exact same definition, you must look at all 4 bytes. If I were to change the byte at address 0x10011, the
operation would still be XOR3, but the
instruction would change.
Oughhhhh. The complete incomprehention. But let it be. It's my ISA, my ideas and they are almost working in VM, I'm not urged to chew them for others.
Rudster816 wrote:
Conclusion: Operands that take at least a byte == Stupid ISA
Amen!