Page 66 -
P. 66

2.2 / DESIGNING FOR PERFORMANCE 41

                       There are a number of ways that a system architect can attack this problem, all
                  of which are reflected in contemporary computer designs. Consider the following
                  examples:
                     • Increase the number of bits that are retrieved at one time by making DRAMs
                       “wider” rather than “deeper” and by using wide bus data paths.
                     • Change the DRAM interface to make it more efficient by including a cache 7
                       or other buffering scheme on the DRAM chip.
                     • Reduce the frequency of memory access by incorporating increasingly com-
                       plex and efficient cache structures between the processor and main memory.
                       This includes the incorporation of one or more caches on the processor chip as
                       well as on an off-chip cache close to the processor chip.
                     • Increase the interconnect bandwidth between processors and memory by
                       using higher-speed buses and by using a hierarchy of buses to buffer and struc-
                       ture data flow.

                       Another area of design focus is the handling of I/O devices. As computers be-
                  come faster and more capable, more sophisticated applications are developed that
                  support the use of peripherals with intensive I/O demands. Figure 2.11 gives some


           Gigabit Ethernet

           Graphics display

                Hard disk
                Ethernet

              Optical disk
                 Scanner

             Laser printer
              Floppy disk

                 Modem

                  Mouse
                Keyboard
                      10 1    10 2    10 3     10 4    10 5    10 6    10 7     10 8    10 9
                                                   Data rate (bps)
           Figure 2.11 Typical I/O Device Data Rates`


                  7 A cache is a relatively small fast memory interposed between a larger, slower memory and the logic that
                  accesses the larger memory. The cache holds recently accessed data, and is designed to speed up subse-
                  quent access to the same data. Caches are discussed in Chapter 4.
   61   62   63   64   65   66   67   68   69   70   71