13.1 INSTRUCTION EXECUTION CHARACTERISTICSOne of the most visible forms of evolution associated with computers is that of programming languages. As the cost of hardware has dropped, the relative cost of software has risen. Along with that, a chronic shortage of programmers has driven up software costs in absolute terms. Thus, the major cost in the life cycle of a system is software, not hardware. Adding to the cost, and to the inconvenience, is the element of unreliability: it is common for programs, both system and application, to continue to exhibit new bugs after years of operation. The response from researchers and industry has been to develop ever more powerful and complex high-level programming languages. These high-level languages (HLLs) allow the programmer to express algorithms more concisely, take care of much of the detail, and often support naturally the use of structured programming or object-oriented design. Alas, this solution gave rise to another problem, known as the semantic gap, the difference between the operations provided in HLLs and those provided in computer architecture. Symptoms of this gap are alleged to include execution inefficiency, excessive machine program size, and compiler complexity. Designers responded with architectures intended to close this gap. Key features include large instruction sets, dozens of addressing modes, and various HLL statements implemented in hardware. An example of the latter is the CASE machine instruction on the VAX. Such complex instruction sets are intended to• Ease the task of the compiler writer.• Improve execution efficiency, because complex sequences of operations can be implemented in microcode.• Provide support for even more complex and sophisticated HLLs.Table 13.1 Characteristics of Some CISCs, RISCs, and Superscalar Processors
đang được dịch, vui lòng đợi..