The ARM9 instruction set includes a few instructions (such as
CLZ and 6QADD) that are not including in the ARM7 instruction
set.
What factors should be considered when making the decision to add
extra instructions to an instruction set?
#1: Silicon real estate. The first problem with "putting it all on the chip" is that each feature requires some number of transistors on the CPU's silicon die. CPU designers work with a "silicon budget" and are given a finite number of transistors to work with. This means that there aren't enough transistors to support "putting all the features" on a CPU.
#2: Cost. Although it is possible to use millions of transistors on a CPU today, the more transistors you use the more expensive the CPU.
#3: Expandability. One problem with the "kitchen sink" approach is that it's very difficult to anticipate all the features people will want. For example, Intel's MMX and SIMD instruction enhancements were added to make multimedia programming more practical on the Pentium processor. Back in 1978 very few people could have possibly anticipated the need for these instructions.
#4: Legacy Support. This is almost the opposite of expandability. Often it is the case that an instruction the CPU designer feels is important turns out to be less useful than anticipated. For example, the LOOP instruction on the 80x86 CPU sees very little use in modern high-performance programs. The 80x86 ENTER instruction is another good example. When designing a CPU using the "kitchen sink" approach, it is often common to discover that programs almost never use some of the available instructions. Unfortunately, you cannot easily remove instructions in later versions of a processor because this will break some existing programs that use those instructions. Generally, once you add an instruction you have to support it forever in the instruction set. Unless very few programs use the instruction (and you're willing to let them break) or you can automatically simulate the instruction in software, removing instructions is a very difficult thing to do.
#5: Complexity. The popularity of a new processor is easily measured by how much software people write for that processor. Most CPU designs die a quick death because no one writes software specific to that CPU. Therefore, a CPU designer must consider the assembly programmers and compiler writers who will be using the chip upon introduction. While a "kitchen sink" approach might seem to appeal to such programmers, the truth is no one wants to learn an overly complex system. If your CPU does everything under the sun, this might appeal to someone who is already familiar with the CPU. However, pity the poor soul who doesn't know the chip and has to learn it all at once.
The ARM9 instruction set includes a few instructions (such as CLZ and 6QADD) that are not including in the ARM7 instruct...
1. The MIPS instruction set includes several shift instructions. They include logical-shift-left (sll), logical-shift-right (srl), and arithmetic-shift-right (sra). [2 +2 4 points] a) Why does not MIPS offer an "arithmetic-shift-left (sla)" instruction? b) Write a MIPS code to implement the logical-shift-left (sll) instruction for a machine that did not have this particular instruction? In other words, you have to write the equivalent of the sll instruction using mul, add and other instructions. Try writing the equivalent of sll Ss1, Ss2,...
Consider a hypothetical computer with an instruction set of only two n-but instructions. The first bit specifies the opcode, and the remaining bits specify one of the 2-1 n-bit words of main memory. The two instructions are as follows: SUBS X: Subtract the contents of location X from the accumulator, and store the result in location X and the accumulator JUMP X: Place address X in Program Counter A word in memory may contain either an instruction or a binary...
The CPU design team is designing an instruction set with three classes of instructions. Parameters are given in the following table. Consider a program with 65% ALU instructions, 25% memory instructions, and 10% control instructions. What is the average CPI for this CPU? Clock Rate 8 GHz CPI for ALU Inst. 7 CPI for Memory Inst. 15 CPI for Control Inst. 8
Use the fetch-and-add instruction to implement a simple spinlock (like the ones implemented using Test-And-Set and Compare-And-Swap instructions). The answer should show the code for the lock structure definition and the functions for initialization, lock, and unlock.
5.3 Rewrite the following program fragment that is written using the GPR instruction set for execution on a CISC processor that provides the same instruction set as the GPR processor but allows the register addressing mode to be used on the input operands or destination of any instruction. (Yes, the code fragment will execute correctly as written on such a processor. Your goal should be to reduce the number of instructions as much as possible. ) Assume that the program...
Consider two different implementations of the same instruction set architecture. The instructions can be divided into four classes according to their CPI (class A, B, C, and D). P1 with a clock rate of 2.5 GHz and CPIs of 2, 4, 3, and 2 and P2 with a clock rate of 3.5 GHz and CPIs of 3, 3, 2, and 3. a. Given a program with a dynamic instruction count of 1.0E8 instructions divided into classes as follows: 30% class...
Goals: To learn general-purpose register architectures. To learn encoding an instruction set. Questions: 100 points: (1) 30 points, (2) 70 points 1. (30 points) The design of MIPS provides for 32 general-purpose registers and 32 floating-point registers. If registers are good, are more registers better? List and discuss as many trade-offs as you can that should be considered by instruction set architecture designers examining whether to, and how much to increase the numbers of MIPS registers. 2. [70 points] Consider...
The AVR provides a rich instruction set to support high-level languages. The AVR address- ing modes also simplify the access of complex data structures. The AVR has a version of the ADD instruction that includes the C flag as one of the source operands, which enables multiple- precision addition operation. The AVR also has a version of the SUB instruction that includes the C flag as one of source operands and hence is used to perform multiprecision subtraction operation. The...
Suppose a computer has 20-bit instructions. The instruction set consists of 32 different operations. All instructions have an opcode and two address fields (allowing for two addresses). The frst of these addresses must be a register, and the second must be memory. Expanding opcodes are not used. The machine has 16 registers. What is the maximum allowable size for memory? o 2 K byte O 14K byte O 11 K byte Next » ous
Suppose a computer has 20-bit instructions....
Consider two different implementations of the same instruction set architecture. There are 5 classes of instructions, A, B, C, D, and E. The clock rate and CPI of each class is given in the following table. Machine Clock Rate CPI class A CPI class B CPI class C CPI class D CPI class E P1 1.0 GHz 1 1 2 3 2 P2 1.5 GHz 1 2 3 4 3 What are the performances of P1 and P2 expressed in...