Eight?bit microprocessors and classic CISC computers like the Intel IA32 and 68K families have variable?length instructions. What are the advantages of computer architectures with instructions of different lengths? What are the disadvantages?
What will be an ideal response?
First and second generation microprocessors suffered from a severe problem; memory was very expensive. For example, some of the first memory chips were 128 byte static RAM chips and 4 KB memory was considered large. Consequently, compact code was vital; that is code density and the number of computer operations per bit of memory were important. If you have a long instruction word, 16 or 32 bits, all instructions take 16 or 32 bits. If you have a short instruction word of 8 bits and only, say, two registers, you can arrange for most of your
instructions to fit in a single 8?bit byte (especially if you are using a one address accumulator format). You can
even have literals; for example, the 68K 16?bit instruction ADDQ (add quick) lets you add a 3?bit literal in the
range 1 to 8 to a register. In order to access memory, do more complex things, or have larger literals,
instructions could be (theoretically) of any length. The 68K has one instruction that is 10 bytes (80 bits) long
because it allows a data movement from one absolute 32?bit address to another 32?bit address.
The disadvantage of variable length instructions is the difficulty of fitting them into a pipelined RISC world. If
computers are to be speeded up by executing instructions in parallel, that is difficult when you have to decode
each instruction sequentially to find where the next instruction begins.
You might also like to view...
What is an enumeration and what are the advantages of creating an enumeration type? Show an example of an enumeration definition.
What will be an ideal response?
What is malicious port scanning and how can you defend against it?
What will be an ideal response?