df9b16effe1d062b27460813cbde976c.ppt
- Количество слайдов: 23
CHAPTER 1 COMPUTER ABSTRACTIONS AND TECHNOLOGY Parts of these notes have been adapter from those of Professor Mike Schulte, Prof. D. Patterson, and Prof Irwin (PSU) 1
Course Content • Text book: Computer Organization and Design: The Hardware/Software Interface, 2 nd 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 2
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 View Logic Designer’s View 3
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 – 10010100000 represents the instruction to add two numbers together • Programs invented to translate symbols to binary – Assembler – Less tedious and more readable – add A, B 4
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 5
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 6
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. 7
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. 8
Key considerations in “Computer Architecture” Application Operating System Compiler Firmware Instr. Set Proc. I/O system Software Instruction Set Architecture Datapath & Control Digital Design Circuit Design Hardware Layout • Coordination of many levels of abstraction • Under a rapidly changing set of forces • Design, Measurement, and Evaluation 9
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). 10
Processor Performance Increase Intel Pentium 4/3000 DEC Alpha 21264 A/667 DEC Alpha 21264/600 DEC Alpha 4/266 DEC AXP/500 Intel Xeon/2000 DEC Alpha 5/500 DEC Alpha 5/300 IBM POWER 100 HP 9000/750 SUN-4/260 IBM RS 6000 MIPS M 2000 MIPS M/120 11
DRAM Capacity Growth 64 M 512 M 256 M 128 M 16 M 4 M 1 M 256 K 64 K 16 K 12
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. 13
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 B 2 x 1 Mux A S A Y NAND B Y NAND 14 S
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: 80 x 86/Pentium/K 6, Power. PC, DEC Alpha, MIPS, SPARC, HP 15
Application of Abstraction: A Hierarchical Layer of Computer Languages High Level Language Program Compiler lw $15, lw $16, sw$15, Assembly Language Program Assembler Machine Language Program 0000 1010 1100 0101 1001 1111 0110 1000 1100 0101 1010 0000 0110 1000 1111 1001 0($2) 4($2) 1010 0000 0101 1100 1111 1000 0110 0101 1100 0000 1010 1000 0110 1001 1111 Machine Interpretation Control Signal Specification ° ° ALUOP[0: 3] <= Inst. Reg[9: 11] & MASK 16
The Organization of a Computer • Since 1946 all computers have had 5 main components Processor Input Control Memory Datapath Output 17
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. 18
Inside the Pentium 4 Processor Chip 19
PC Motherboard Closeup 20
Instruction Execution Instruction Obtain instruction from program storage Fetch Decode Determine required actions and instruction size Operand Locate and obtain operand data Instruction Fetch Execute Result Store Next Instruction Compute result value or status Deposit results in storage for later use Determine successor instruction 21
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. 22
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) 23
df9b16effe1d062b27460813cbde976c.ppt