150 likes | 159 Views
Dive into the basics of computer organization and design, learning about processors, memory systems, and performance analysis. Explore modern instruction set architectures and practical applications for building processors.
E N D
Computer Architecture • Instructor: Wen-Hung Liao • E-mail: whliao@cs.nccu.edu.tw • Office: 大仁樓三樓 200312 • Office hours: TBA • Course web page: http://www.cs.nccu.edu.tw/~whliao/cod2005/ • Textbook: Patterson and Hennessy, Computer Organization and Design, 3rd Edition. • Companion website
Introduction • Rapidly changing field: • vacuum tube -> transistor -> IC -> VLSI • doubling every 1.5 years: • memory capacity • processor speed (Due to advances in technology and organization)
Things you’ll be learning • How computers work, a basic foundation • How to analyze their performance • Issues affecting modern processors (caches, pipelines, parallel computing)
Why learn this stuff? • you want to call yourself a “computer scientist” • you want to build software people use (need performance) • you need to make a purchasing decision or offer “expert” advice
Prerequisite • Some background in assembly language • Boolean algebra • Logic design
What is a computer? • Components: • input (mouse, keyboard...) • output (display, printer...) • storage(disk drives, CD…) • memory (DRAM, SRAM...) • data path • control • network • Our primary focus: the processor (data path and control) • implemented using millions of transistors • Impossible to understand by looking at each transistor
H i g h - l e v e l s w a p ( i n t v [ ] , i n t k ) l a n g u a g e { i n t t e m p ; p r o t e m p = v [ k ] ; v [ k ] = v [ k + 1 ] ; v [ k + 1 ] = t e m p ; } C c o m p i l e r s w a p : A s s e m b l y m u l i $ 2 , $ 5 , 4 l a n g u a g e p r o g r a m a d d $ 2 , $ 4 , $ 2 ( f o r M I P S ) l w $ 1 5 , 0 ( $ 2 ) l w $ 1 6 , 4 ( $ 2 ) s w $ 1 6 , 0 ( $ 2 ) s w $ 1 5 , 4 ( $ 2 ) j r $ 3 1 A s s e m b l e r B i n a r y m a c h i n e 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 l a n g u a g e 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 p r o g r a m 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ( f o r M I P S ) 1 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 Below your program g r a m ( i n C ) • High-level programming language- Fortran- C/C++- Java • Assembly language: machine dependent • Machine language: consists of binarydigits,or ‘bits’ of information
Instruction Set Architecture • 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, IA-64 • RISC vs. CISC architecture
Where we are headed • A specific instruction set architecture (Chapter 2) • Arithmetic and how to build an ALU (Chapter 3) • Assessing and understanding performance (Chapter 4) • Constructing a processor to execute our instructions (Chapter 5) • Pipelining to improve performance (Chapter 6) • Memory: caches and virtual memory (Chapter 7) • Storage, Networks, and Other Peripherals (Chapter 8) • Multiprocessors (Chapter 9)
Homework • Read Chapter 1 of textbook. • Download appropriate SPIM simulator for your computer.
Integrated IC Cost (empirical) Question: What is the approximate relationship between cost and die area?