CDA-4101 Lecture 2 Notes



Computer Organization

  • Processors - CPU Organization, instruction, execution, RISC vs. CISC, design principles, paralellism
  • Primary Memory - Bits, addresses, byte ordering, error-correcting codes, cache, memory packaging and types
  • Secondary Memory - memory hierarchies, magnetic disks, floopy disks, IDE, SCSI, RAID, CD-ROM, CD-R, CD-RW, DVD
  • Input/Output - buses, terminals, mice, printers, modems, character codes.

This lecture and the next cover Section 2.1 of textbook about processors.


Bus-oriented Computer


von Neumann Architecture (circa 1945)


John von Neumann


Data Path Example

  • Registers
  • ALU
  • Dedicated A, B and Output registers not universal
  • Instruction types
    • register-memory
    • register-register
  • Data path cycle - the faster the better

Fetch-Decode-Execute Cycle

Simple view of a general CPU control algorithm
  1. Using program counter (PC) contents, fetch next instruction from memory into instruction register (IR)
  2. Update PC to point to next instruction
  3. Determine type of instruction (i.e., decode)
  4. If requires data from memory, determine its address (e.g., decode, compute, fetch, etc.)
  5. Put data from memory into register (if necessary)
  6. Execute instruction
  7. Write result back to register
  8. Got to step 1

Clearer View of Levels 0 and 1

Level 0 is the hardware, whose "language" allows:

  • moving data from memory to CPU
  • feeding data through ALU
  • other register manipulations

Level 1 is the microarchitecture:

  • Level 2 (ISA) instructions are interpreted by executing the fetch-decode-execute cycle
  • fetch-decode-execute algorithm is the "microprogram" if done in software
  • if done in hardware, it is intermingled with other hardware

Level 1: Software vs. Hardware (again)


IBM 360

Control Stores


Late 70's

>
Too nice?
  • tailoring of the ISA instructions to match requirements of high-level languages and programmers.
  • Instructions sets got bigger and more complex: microprogramming made this a feasible approach
  • cost of memory at the time contributed to this trend as the programs themselves needed to be compact, so individual instructions doing more complex tasks would reduce program size.
  • software was getting more expensive while processor technology was geting cheaper: thus a focus on moving complexity into the hardware.
  • Also, compilers of the time were terrible: programmers were happy to get correct output, so size and efficiency of resulting code was not thought about.

Too silly?

Early 80's


Too sleepy?
  • the beginnings of a backlash: no Level 1 interpretation and simple ISA instruction sets.
  • Thus was born two new acronyms:
    • RISC = Reduced Instruction Set Computer (about 50)
    • CISC = Complex Instruction Set Computer (200 to 300)
  • The RISC instructions were not only simpler, but there tended to be fewer of them.
    • RISC on the order of 50 instructions
    • CISC on the order of 200 to 300 instructions
      (Note that this term did not exist until after the RISC ideas were introduced)
  • VLSI (Very Large Scale Integration, Textbook Section 1.2) transitor densities helped RISC-based processors: CISC designs would be split among multiple chips which limited their performance.

Too strange?

RISC Advantages


RISC vs. CISC Retrospective


Modern Design Principles

Common Instructions Executed by Hardware

Maximize Execution Issue Rate

Instructions Easy to Decode

Load/Store Architecture

Many Registers