230 likes | 371 Views
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). Course Content.
E N D
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)
Course Content Text book: Computer Organization and Design: The Hardware/Software Interface, 2nd Ed., Patterson and Hennessy, Morgan Kaufman, 1997. 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
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 Design Machine Organization at the above interface. of Hardware Components. Compiler/System ViewLogic Designer’s View
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 • 100110010100000 represents the instruction to add two numbers together • Programs invented to translate symbols to binary • Assembler • Less tedious and more readable • add A,B
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
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
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.
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.
Key considerations in “Computer Architecture” Application Software Operating System Compiler Firmware Instruction Set Architecture Instr. Set Proc. I/O system Datapath & Control Hardware Digital Design Circuit Design Layout • Coordination of many levels of abstraction • Under a rapidly changing set of forces • Design, Measurement, and Evaluation
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).
Processor Performance Increase Intel Pentium 4/3000 DEC Alpha 21264A/667 DEC Alpha 21264/600 Intel Xeon/2000 DEC Alpha 5/500 DEC Alpha 4/266 DEC Alpha 5/300 DEC AXP/500 IBM POWER 100 HP 9000/750 IBM RS6000 MIPS M2000 SUN-4/260 MIPS M/120
DRAM Capacity Growth 512M 256M 128M 64M 16M 4M 1M 256K 64K 16K
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.
A A Y NAND 2 x 1 Mux B Y NAND B NAND S S 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) Implementation Interface
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
Application of Abstraction: A Hierarchical Layer of Computer Languages High Level Language Program Compiler lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) Assembly Language Program Assembler 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111 Machine Language Program Machine Interpretation Control Signal Specification ALUOP[0:3] <= InstReg[9:11] & MASK ° °
Control Datapath The Organization of a Computer • Since 1946 all computers have had 5 main components Processor Input Memory Output
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.
Instruction Fetch Instruction Decode Operand Fetch Execute Result Store Next Instruction Instruction Execution 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
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.
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)