1 CHAPTER 1 COMPUTER ABSTRACTIONS AND TECHNOLOGY Parts of these notes have been adapter from those of Prof. Professor Mike Schulte, Prof. D. Patterson, and Prof Irwin (PSU)
2 Course Content Text book: Computer Organization and Design: The Hardware/Software Interface, 2nd Ed., Patterson and Hennessy, Morgan Kaufman, Topics covered include : –Computer Architecture and Technology –Computer Performance –Computer Instruction Sets –Computer Arithmetic –Processor Design –Pipelined Processors –Memory System Design –Input/Output System Design
3 What is Computer Architecture? Computer Architecture is the design of the computer at the hardware/software interface. Computer Architecture = Instruction Set Architecture + Machine Organization Computer Architecture Instruction Set DesignMachine Organization at the above interface.of Hardware Components. Compiler/System ViewLogic Designer’s View
4 Language of the Machine Computer operates using number in base 2, or binary numbers –Why? Instructions are represented by binary numbers (Ch 3) First programmers communicated using binary numbers – represents the instruction to add two numbers together Programs invented to translate symbols to binary –Assembler –Less tedious and more readable –add A,B
5 Language of the Machine Eventually, higher level languages invented that translated from higher level notations –Compiler Program that accepts the more natural notation –Fortran was invented in 1954 Benefits –Allow programmers to think in more natural language –Languages could be designed according to their intended use Fortran for scientific computing –Improve productivity of the programmers –Code portable between different platforms
6 Language of the Machine Libraries of code developed –Reusing code more efficient than writing everything from scratch –Subroutines for inputting and outputting data one of the first libraries Operating systems were then developed to supervise the running of programs and allocate resources to the programs Categories of software –Systems software – aimed at programmers OS, assembler, compiler –Application software – aimed at users Spread sheets, text editors
7 Instruction Set Architecture Instruction set architecture has the attributes of a computing system as seen by the assembly language programmer or compiler. This includes –Instruction Set (what operations can be performed?) –Instruction Format (how are instructions specified?) –Data storage (where is data located?) –Addressing Modes (how is data accessed?) –Exceptional Conditions (what happens if something goes wrong?) A good understanding of computer architecture is important for compiler writers, operating system designers, and general computer programmers.
8 Instruction Set Architecture An abstract interface between the hardware and the lowest level software of a machine that encompasses all the information necessary to write a machine language program that will run correctly, including instructions, registers, memory access, I/O, and so on.
9 Key considerations in “Computer Architecture” I/O systemInstr. Set Proc. Compiler Operating System Application Digital Design Circuit Design Instruction Set Architecture Firmware Coordination of many levels of abstraction Under a rapidly changing set of forces Design, Measurement, and Evaluation Datapath & Control Layout Software Hardware
10 Moore’s Law In 1965, Gordon Moore predicted that the number of transistors that can be integrated on a die would double every 18 to 24 months (i.e., grow exponentially with time).
11 Processor Performance Increase SUN-4/260MIPS M/120 MIPS M2000 IBM RS6000 HP 9000/750 DEC AXP/500 IBM POWER 100 DEC Alpha 4/266 DEC Alpha 5/500 DEC Alpha 21264/600 DEC Alpha 5/300 DEC Alpha 21264A/667 Intel Xeon/2000 Intel Pentium 4/3000
12 DRAM Capacity Growth 16K 64K 256K 1M 4M 16M 64M 128M 256M 512M
13 Abstraction An Abstraction has levels. Delving into the depths of these levels reveals more information. An abstraction omits unneeded detail, helps us cope with complexity. Abstraction is the approach used in the design of software and hardware. An abstraction system consists of hierarchical levels with each lower level hiding details from the level above.
14 Levels of abstraction Computer architecture uses various levels of abstractions. Each level of abstraction consists of –an interface (outside view of what it does), and –an implementation (inside view of how it works) A B Y S 2 x 1 Mux A B S NAND Y Interface Implementation
15 Instruction Set Architecture: An Abstraction A very important abstraction –interface between hardware and low-level software –standardizes instructions, machine language bit patterns, etc. –advantage: different implementations of the same architecture –disadvantage: sometimes prevents using new innovations Modern instruction set architectures: 80x86/Pentium/K6, PowerPC, DEC Alpha, MIPS, SPARC, HP
16 Application of Abstraction: A Hierarchical Layer of Computer Languages High Level Language Program Assembly Language Program Machine Language Program Control Signal Specification Compiler Assembler Machine Interpretation lw$15,0($2) lw$16,4($2) sw$16,0($2) sw$15,4($2) °°°° ALUOP[0:3] <= InstReg[9:11] & MASK
17 The Organization of a Computer Since 1946 all computers have had 5 main components Control Datapath Memory Processor Input Output
18 The Organization of a Computer Processor: –Data path - to do arithmetic and logic: e.g. adders, multipliers, shifters –Control - to give directions to the other components: e.g. tells the data path, memory, and IO devices what to do according to the instructions of the program Memory: Holds data and instructions: e.g. cache, main memory, disk. Input: Sends data to the computer: e.g. keyboard, mouse. Output: Gets data from the computer: e.g. screen, sound card, printer.
19 Inside the Pentium 4 Processor Chip
20 PC Motherboard Closeup
21 Instruction Execution Instruction Fetch Instruction Decode Operand Fetch Execute Result Store Next Instruction Obtain instruction from program storage Determine required actions and instruction size Locate and obtain operand data Compute result value or status Deposit results in storage for later use Determine successor instruction
22 Summary Computer Architecture includes the design of the Instruction Set Architecture (programmer’s view) and the Machine Organization (logic designer’s view). Levels of abstraction, which consist of an interface and an implementation are useful to manage designs. Processor performance increases rapidly, but the speeds of memory and I/0 have not kept pace. Computer systems are comprised on datapath, memory, input devices, output devices, and control.
23 Where we are headed Instructions: Language of the machine (chapter 3) The role of performance (chapter 2) Arithmetic and how to build an ALU (Chapter 4) The basics of logical design (Appendix B) Processor: data path and control (Chapter 5) Memory: caches and virtual memory (Chapter 7)
24 MIPS R3000 Instruction Set Architecture (Summary) Instruction Categories –Load/Store –Computational –Jump and Branch –Floating Point –Memory Management –Special R0 - R31 PC HI LO OP rs rt rdsafunct rs rt immediate jump target 3 Instruction Formats: all 32 bits wide
25 Application of Abstraction: Hierarchical Layers of Computer Systems Application Programs Operating Systems Interface Input / Output devices Processors Register Transfer Logical Components Electronic Components
26 The Instruction Set: a Critical Interface instruction set software hardware