1.31k likes | 1.91k Vues
Computer Organization and Architecture. Lecture 1: Introduction. Architecture & Organization (Stalling). Architecture is those attributes visible to the programmer Instruction set, number of bits used for data representation, I/O mechanisms, addressing techniques.
E N D
Computer Organization and Architecture Lecture 1: Introduction
Architecture & Organization (Stalling) • Architecture is those attributes visible to the programmer • Instruction set, number of bits used for data representation, I/O mechanisms, addressing techniques. • e.g. Is there a multiply instruction? • Organization is how features are implemented • Control signals, interfaces, memory technology. • e.g. Is there a hardware multiply unit or is it done by repeated addition?
Computer Architecture Is … the attributes of a [computing] system as seen by the programmer, i.e., the conceptual structure and functional behavior, as distinct from the organization of the data flows and controls the logic design, and the physical implementation. Amdahl, Blaaw, and Brooks, 1964
Parallelism Technology Programming Languages Applications Interface Design (Inst. Set Arch.) Computer Architecture: • Instruction Set Design • Organization • Hardware Operating Measurement & Evaluation History Systems Cont. • Computer Architecture is the design of computers, including their instruction sets, hardware components, and system organization[Patterson]. • Thus two essential parts of computer architecture: • Instruction-set Architecture (ISA) • Hardware-system Architecture (HSA)
Instruction-set Architecture (ISA) • The instruction set architecture of a computer includes anything a programmer would need to know to make the computer run correctly. This include: • (a) The number and types of registers • (b) Instruction set (what operations can be performed?) • (c) Instruction format (how are they specified?) • (d) Addressing mode (how is data obtained? - direct vs. indirect) • (e) Exception handling (what happens when something goes wrong?) • Instruction-set architecture includes the specifications that determine how machine-language programs will interact with the computer. That is, in general, two computers with the same ISA will run the same programs. This is the notion of a computer-family architecture.
Hardware-system Architecture (HSA) • The Hardware-system architecture deals with the computer's major hardware subsystems, including central processing unit (CPU), its storage system, and its input-output system. • The computer hardware design determines the implementation of the various computer components. This includes • (a) Capabilities and performance of the functional units (e.g., registers, ALUs, shifters) • (b) Methods for connecting the functional units (e.g., data bus) • (c) Control logic for the functional units • Typically, the computer hardware is designed based on the instruction set architecture.
A successful ISA generally has many implementations (a computer-family) which are different in their HSA. • Compatibility is the ability of different computers to run the same programs. • Upward compatibility allows high-performance members of a family to run the same program as do the low-performance members • Downward compatibility is not always possible, since high-performance family members often have features not available on lower-performance members.
Computer Family • A computer family is a set of implementations that share the same or similar ISA (using a variety of technologies, memory sizes, and speeds). For example, IBM system/360 (1960s), PDP-8 family (1965), PDP-11 family (1965), and IBM system/370 (1970s). • All Intel x86 family share the same basic architecture • The IBM System/370 family share the same basic architecture • This gives code compatibility • At least backwards • Organization differs between different versions
Early Computing 1946: ENIAC, us Army, 18,000 Vacuum Tubes 1949: UNIVAC I, $250K, 48 systems sold 1954: IBM 701, Core Memory 1957: Moving Head Disk 1958: Transistor, FORTRAN, ALGOL, CDC & DEC Founded 1964: IBM 360, CDC 6600, DEC PDP-8 1969: UNIX 1970: FLOPPY DISK 1981: IBM PC, 1st Successful Portable (Osborne1) 1986: Connection Machine, MAX Headroom Debut
Underlying Technologies Year Logic Storage Prog. Lang. O/S 54 Tubes core (8 ms) 58 Transistor (10µs) FORTRAN 60 ALGOL, COBOL Batch 64 Hybrid (1µs) thin film (200ns) Lisp, APL, Basic 66 IC (100ns) PL/1, Simula,C 67 Multiprog. 71 LSI (10ns) 1k DRAM O.O. V.M. 73 (8-bit µP) 75 (16-bit µP) 4k DRAM 78 VLSI (10ns) 16k DRAM Networks 80 64k DRAM 84 (32-bit µP) 256k DRAM ADA 87 ULSI 1M DRAM 89 GAs 4M DRAM C++ 92 (64-bit µP) 16M DRAM Fortran90 Generation Evolutionary Parallelism
What has happened in the 1990s • “Network-Integrated Computing” • Wide-area AND local-area integration of cluster-based computing, and high performance networks • Scalable Technologies for Computing, Networking, and Information Systems • Systems that scale DOWN as well as UP • High performance workstations • Clusters and distributed systems • Massively parallel I/O and computer servers • National Information Infrastructure
What has been predicted for the Late 1990s and Early 2000s • Technology • Very large dynamic RAM: 64 Mbits and beyond • Large fast Static RAM: 1 MB, 10ns • Complete systems on a chip • 10+ Million Transistors • Parallelism • Superscalar, Superpipeline, Vector, Multiprocessors • Processor Arrays
What has been predicted for the Late 1990s and Early 2000s • Low Power • 50% of PCs portable by 1995 • Performance per watt • Parallel I/O • Many applications is I/O limited, not computation • Computation scaling but memory, I/O bandwidth not keeping pace • Multimedia • New interface technologies • Video, speech, handwriting, virtual reality, …
Original Food Chain Picture Big Fishes Eating Little Fishes
1988 Computer Food Chain Mainframe Work- station PC Mini- computer Mini- supercomputer Supercomputer Massively Parallel Processors
1998 Computer Food Chain Mini- supercomputer Mini- computer Massively Parallel Processors Mainframe Work- station PC Server Now who is eating whom? Supercomputer
Why Such Change in 10 years? • Performance • Technology Advances • CMOS VLSI dominates older technologies (TTL, ECL) in cost AND performance • Computer architecture advances improves low-end • RISC, superscalar, RAID, … • Price: Lower costs due to … • Simpler development • CMOS VLSI: smaller systems, fewer components • Higher volumes • CMOS VLSI : same dev. cost 10,000 vs. 10,000,000 units • Function • Rise of networking/local interconnection technology
Moore’s Law • Gordon Moore - cofounder of Intel • Increased density of components on chip • Number of transistors on a chip will double every year • Since 1970’s development has slowed a little • Number of transistors doubles every 18 months • Cost of a chip has remained almost unchanged • Higher packing density means shorter electrical paths, giving higher performance • Smaller size gives increased flexibility • Reduced power and cooling requirements • Fewer interconnections increases reliability
Performance Mismatch • Processor speed increased • Memory capacity increased • Memory speed lags behind processor speed
Memory Capacity (Single Chip DRAM) Year size(Mb) cyc time 1980 0.0625 250 ns 1983 0.25 220 ns 1986 1 190 ns 1989 4 165 ns 1992 16 145 ns 1996 64 120 ns 2000 256 100 ns
total amount of work done in a given time time between the start and the completion of an event
Technology Trends(Summary) Capacity Speed (latency) Logic 2x in 3 years 2x in 3 years DRAM 4x in 3 years 2x in 10 years Disk 4x in 3 years 2x in 10 years
Technology Trends: Microprocessor Capacity “Graduation Window” Alpha 21264: 15 million Pentium Pro: 5.5 million PowerPC 620: 6.9 million Alpha 21164: 9.3 million Sparc Ultra: 5.2 million Moore’s Law • CMOS improvements: • Die size: 2X every 3 yrs • Line width: halve / 7 yrs
Performance Trends(Summary) • Workstation performance (measured in Spec Marks) improves roughly 50% per year (2X every 18 months) • Improvement in cost performance estimated at 70% per year
Measurement and Evaluation • Architecture is an iterative process: • Searching the space of possible designs • At all levels of computer systems Creativity Cost / Performance Analysis Good Ideas Mediocre Ideas Bad Ideas
Computer Engineering Methodology Technology Trends
Computer Engineering Methodology Evaluate Existing Systems for Bottlenecks Benchmarks Technology Trends
Computer Engineering Methodology Evaluate Existing Systems for Bottlenecks Benchmarks Technology Trends Simulate New Designs and Organizations Workloads
Computer Engineering Methodology Evaluate Existing Systems for Bottlenecks Implementation Complexity Benchmarks Technology Trends Implement Next Generation System Simulate New Designs and Organizations Workloads
Measuring and Reporting Performance • Designing high performance computers is one of the major goals of any computer architect. • As a result, assessing the performance of computer hardware is at the heart of computer design and greatly affects the demand and market value of the computer. • However, measuring performance of a computer system is not a straightforward task: • Metrics – How do we describe in a numerical way the performance of a computer? • What tools do we use to find those metrics? • How do we summarize the performance?
Measuring and Reporting Performance • What do we mean by one Computer is faster than another? • program runs less time • Response time or execution time • time that users see the output • Throughput • total amount of work done in a given time
Performance • “Increasing and decreasing” ????? • We use the term “improve performance” or “ improve execution time” When we mean increase performance and decrease execution time . • improve performance = increase performance • improve execution time = decrease execution time