Fundamentals of Computer Design:Fundamentals of Computer design, Changing
faces of computing and task of computer designer, Technology trends, Cost price and their trends, Measuring and reporting performance, Quantitative principles o f computer design, Amdahls law. Instruction set principles and examplesIntroduction, Classifying instruction set-MEmory addressing-type and size of operands, Operations in the instruction set. UNIT II: Pipelines:Introduction, Basic RISC instruction set, Simple implementation of RISC instruction set, Classic five stage pipe lined RISC processor, Basic performance issues in pipelining, Pipeline hazards, Reducing pipeline branch penalties. Memory Hierarchy Design:Introduction, Review of ABC of cach cache miss penalty, Virtual memory. UNIT III: Instruction Level Parallelism the Hardware Approach: Instruction-Level parallelism, Dynamic scheduling, Dynamic scheduling using Tomasulos approach, Branch prediction, high performance instruction delivery-hardware based speculation. ILP Software Approach: Basic compiler level techniques, Static branch prediction, VLIW approach, Exploiting ILP, Parallelism at compile time, Cross cutting issues Hardware verses Software. UNIT IV: Multi Processors and Thread Level Parallelism:Multi Processors and Thread level Parallelism-Introduction, Characteristics of application domain, Systematic shared memory architecture, Distributed shared memory architecture, Synchronization. UNIT V: Inter Connection and Networks:Introduction, Interconnection network media, Practical issues in interconnecting networks, Examples of inter connection, Cluster, Designing of clusters. Intel Architecture:Intel IA-64 ILP in embedded and mobile markets Fallacies and pit falls. TEXT BOOKS: 1. John L. Hennessy, David A. Patterson Computer Architecture: A Quantitative Approach, 3rd Edition, An Imprint of Elsevier
Tasks of a Computer Designer
(1) Determine the attributes important to the new machine. (2) Design a machine to maximize performance while staying within cost constraints. (3) Some important design aspects: instruction set design functional requirements logic design implementation (4) Design optimization involves a range of items from Compilers to Operating System to Logic Design and Packaging.
Fundamentals of Computer Design
Huang - Spring 2008 CSE 340 4 Computer Architecture Covering three aspects of computer design Instruction Set Architecture : Programmer visible instruction sets Boundary between software and hardware Organization : High-level aspects of computer design e.g. CPU internal organization Bus structure Memory organization Hardware : Implementation specifics of a machine e.g. Logic desi gn and Packing technology Fundamentals of Computer Design Huang - Spring 2008 CSE 340 5 Technology Trends Address space growth. eg. MS DOSs 640K to current systems Gbytes Pipelining - Instruction and Data. Cache use at all levels. Compiler technology - exploring underlying architectural features. High-level languages - OOPs, Structured programming. Software development environment. Fundamentals of Computer Design Huang - Spring 2008 CSE 340 6 Technology Trends IC Technology: Transistor count on a chip increases 55% per year. Semiconductor DRAM: Density increases 40-60% per year. Cycle time (slowly) decreases by one-third in ten years. Bandwidth per chip increases about twice as fast as latency decreases. Magnetic disk technology: Density increases 100% per year recently. Access time improved by one-third in ten years. Network Technology: 1 Gb Ethernet becomes available, leading to a faster internet structure. High
er bandwidth is made possible
by optical media and faster switching hardware. Fundamentals of Computer Design Huang - Spring 2008 CSE 340 7 Cost and Trends in Cost What is cost ? What is price ? Impacts on cost: Time, Volume, and Commodization Time: As time progresses, yield impr ovement brings down the cost. Volume As consumption increases, cost comes down. (mass produc tion) Commodization: Competition among producers brings prices down. Fundamentals of Computer Design Huang - Spring 2008 CSE 340 8 Measuring and Reporting Performance Performance =1/ (Execution Time). Measuring Performance: Elapsed time System CPU time Unix time command: 90.7u 12.9s 2.39 65% (1) CPU time for program (2) OS time for program (3) Elapsed time (4) % (CPU time/ Elapsed time) CPU Performance: user CPU time on unloaded system. System performance: Elapsed time on unloaded system. Fundamentals of Computer Design Huang - Spring 2008 CSE 340 9 Measuring and Reporting Performance (Contd.) What do we test the system with? Synthetic benchmarks: Dhrystone and Whetstone
Realworld programs: TeX, Spice, gcc, grep
Kernels (part of): Linpack, Livermore loops Toy benchmarks: Quicksort, 8-Queen/n-Queen Benchmark suites Fundamentals of Computer Design Huang - Spring 2008 CSE 340 10 Quantitative Principles Most important principle in computer design: - Make the common case fast (optimize for the normal case) - Identify the frequently requested case(s) - Estimate the performance improvement by making these cases faster - Carry out the optimization, if satisfactory Amdahls Law: Speedup = Perf. with enha ncement / Perf. without enhancement * Enhancement is any change/modification in the design and realization of a component. * Speedup tells us how much fast er a task will run using the enhancement as opposed to the original machine