Page 145 - A Practical Guide from Design Planning to Manufacturing
P. 145

118   Chapter Four

        CISC versus RISC
        One question in modern computer architecture that made the little endian
        versus big endian war seem like a minor skirmish was the debate of CISC
        versus RISC. When RISC architectures were first being promoted in
        the 1980s, many grand pronouncements were made on both sides; this
        question of computer design sometimes took on the tones of a religious
        war. Even at the time there wasn’t clear agreement on exactly what con-
        stituted a RISC architecture. Some products were labeled RISC based
        more on marketing strategy than their actual design, which caused Steven
        Przybylski, one of pioneers of RISC architectures, to jokingly define
                                                  9
        RISC as “Any computer announced after 1985.” Using the concepts from
        this chapter, we can list some basic differences between CISC and RISC
        architectures.
          The VAX and x86 architectures were created in the late 1970s when
        program size was a large concern. DRAM memory was extremely expen-
        sive and some programs were not practical because systems with enough
        memory to run them were too expensive. Supporting memory and reg-
        ister operands with many addressing modes allowed programs to use as
        few total instructions as possible. In addition, variable length instruc-
        tion formats allowed the most common instructions to be encoded in
        fewer bits while using only longer formats for uncommon instructions.
        By keeping the number of instructions and the average number of bytes
        per instruction to a minimum, these architectures allowed the most func-
        tionality using the least amount of instruction memory.
          At the time transistor budgets did not allow for large numbers of reg-
        isters. An architecture defining 32 registers or more would force any
        processor implementing that architecture to dedicate an unreasonable
        fraction of its total transistors to registers. In any case, serial execution
        of instructions did not require a large number of registers.
          As Moore’s law continued to drive DRAM and processor development
        forward, RISC architectures made different choices to take advantage
        of new possible implementations. As DRAM became more affordable,
        minimizing code size became less important. Supporting fewer operand
        types and allowing only fixed instruction sizes made RISC programs
        much larger. However, it also made their implementation much simpler.
          In the late 1980s, transistor budgets were sufficient to allow some of
        the first pipelined processors. These began executing one instruction
        before the previous was completed. To keep the pipeline full, it is impor-
        tant that most instructions are executed in the same amount of time.
        Every slow instruction causes faster instructions to pile up behind them
        in the pipeline. RISC architectures allowed efficient execution not just


          9
          ibid., Appendix C.
   140   141   142   143   144   145   146   147   148   149   150