eece476: computer architecture lecture 0: computer architecture chapter 1 the university of british...

24
EECE476: Computer Architecture Lecture 0: Computer Architecture Chapter 1 The University of British Columbia EECE 476 © 2005 Guy Lemieux

Post on 22-Dec-2015

231 views

Category:

Documents


0 download

TRANSCRIPT

EECE476: Computer Architecture

Lecture 0: Computer Architecture

Chapter 1

The University ofBritish Columbia EECE 476 © 2005 Guy Lemieux

2

What is this ?

3

64 kBData

Cache

64 kBInstr.Cache

Load/Store

ExecutionUnit

Fetch ScanAlign

Micro-code

BusUnit

HyperTransport DDR Memory Interface

1 MB UnifiedInstruction/DataLevel 2 Cache

Floating-Point Unit

Memory Controller

What is this ?

This is an

AMD Operton CPU

Total Area: 193 mm2

Look at the relative

sizes of each block:

50% cache50% cache

23% I/O

20% CPU logic

+ extra stuff

CPUs dedicate > 50% area for cache memorycache memory.

In this course, you will learn how to build a CPU like this!

4

What is Computer Architecture?

5

What is Computer Architecture?

• Historic definition

Computer Architecture =

Instruction Set Architecture +

Computer Organization

• Term coined by IBMer: Frederick Brooks (~1957)

6

What isInstruction Set Architecture?

• Important acronym: ISA– Instruction Set Architecture

• The low-level software interface to the machine– Language of the machine– Must translate any programming language into this language– Examples: IA-32 (Intel instruction set), MIPS, SPARC, Alpha,

PA-RISC, PowerPC, …

• Visible to programmer (if desired)!

7

Instruction Set Architecture

I/O systemInstr. Set Proc.

Compiler

OperatingSystem

Application

Digital DesignCircuit Design

Instruction Set Architecture

Firmware

Datapath & Control

Layout

Software

Hardware

8

Instruction Set Architecture

• Original definition:

… 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, Brooks, 1964

9

What is Computer Organization?

• Computer organization is the implementation of the machine, consisting of two components:– High-level organization

• Memory system widths, bus structure, CPU internal organization, …

– Hardware• Precise logic and circuit design, mechanical packaging, …

• Many implementations are possible for an ISA !!!– Intel i386, i486, Pentium, Pentium II, …– Performance, complexity, cost differences….

• Invisible to the programmer (mostly)!

10

Computer Organization• Example of internal CPU organization

11

Your Background

• You took:– EECE 256 – Intro to digital logic– EECE 259 – Intro to microcomputers– EECE 353/379 – Advanced digital systems

• Plus, you know how to write software….

• Now you’re ready to design an entire computer system!– Come up with an ISA– Design the CPU to run it (organization + hardware)

12

Designing a Computer System

• Now you’re ready to design an entire computer system!– But wait, there are many trade-offs:

• Cost• Complexity• Performance• Power Consumption

• The goal of this course is to expose you to these trade-offs so you can make intelligent design decisions!!!– Focus on Cost, Complexity, Performance

• THIS COURSE – focus “inside the CPU”• EECE465 will look “outside the CPU”

13

Computing History – Volume 1

• Sticks, stones, strings, …– Ancient counting and measuring devices

• Abacus (~3000BC)

• Napiers bones (1617)

• Slide Rule (1625)– Arithmetic aids (e.g., addition, multiplication)

14

Computing History – Volume 2

• Charles Babbage (1791-1871)– “Grandfather of Computing”

– Designed mechanical computers using gears• Difference Engine (1822-1833)

– Tabulated polynomials using the difference method– Didn’t work, limited tolerances in gear-making technology

• Analytical Engine (1833-1842)– More general, programmable (punch cards!)– Never built due to financing (& failures with D.E.)

• In 1855, Swedish family built an operational D.E. !!!

– http://en.wikipedia.org/wiki/Charles_Babbage

15

Computing History – Volume 2

• Augusta Ada King, Countess of Lovelace (1815-1852)

– The world’s “First Computer Programmer”

– Designed programs to run on Babbage’s Analytical Engine• Some controversy over her exact role

– Defined an algebra engine• Could operate on symbols as well as numbers

– http://en.wikipedia.org/wiki/Ada_Lovelace

– See also programming language “Ada” (1980)• http://en.wikipedia.org/wiki/Ada_programming_language

16

Computing History – Volume 3<1946 ENIAC

– Univ. of Pennsylvania– 18,000 vacuum tubes– 30 tons, 80’ x 8.5’

1949 ESDAC– Cambridge University– Stored-program computer

1949 Mark I– Harvard University– Harvard Architecture

• Separate instr. and data memory• vs. von Neumann / Princeton

1949 BINAC– Eckert-Mauchly Computer Corp.– First Commercial Computer

1951 UNIVAC-1– Remington-Rand– $1,000,000 each– Sold 48 systems

1952 IBM 701– Sold 19 systems

1964 IBM System/360– $5,000,000,000 invested– Computer family, all use same

instructions– Computer architecture is born!

1965 DEC PDP-8– First minicomputer– Spawns MULTICS, UNIX, C

1971 Intel 4004– First microprocessor– 2,300 transistors

17

The Transistor (1947)

• Invented in 1947 at Bell Labs– Bardeen, Brattain, and Shockley

• Important because vacuum tubes are unreliable!

18

The Integrated Circuit (1958-9)

• Invented in Texas and California– Robert Noyce, Fairchild Semiconductor– Jack Kilby, Texas Instruments– Noyce was first to patent the idea….

• Now, multiple transistors can be placed in one piece of silicon!!!

19

Moore’s Law and Intel CPUs

• Source: Intel

20

Moore and moore transistors…• Moore’s Law (1965)

– Gordon Moore, Fairchild Semiconductor– Noticed 2x number of transistors every 12-18 months

"The complexity for minimum component costs has increased at a rate of roughly a factor of two per year. Certainly over the short term this rate can be expected to continue, if not increase. Over the longer term, the rate of increase is a bit more uncertain, although there is no reason to believe it will not remain for nearly constant for at least 10 years. That means by 1975, the number of components per integrated circuit for minimum cost will be 65,000.”

"I believe that such a large circuit can be built on a single wafer."

• 1968: Robert Noyce and Gordon Moore left Fairchild– Founded Intel (short for “INTegrated ELectronics”)

• 1971: Intel 4004, the world’s first microprocessor!

21

More and more transistors…

• Increasing number of transistors makes it possible to build more complex implementations– eg, i386 to i486 to Pentium ….

• Complexity allows improved computer organization with higher processing throughput– Really, it is mostly due to improved CPU organization– Modern term for CPU organization

• CPU Microarchitecture

22

Computer Architecture

• Modern definition

Computer Architecture =

Instruction Set Architecture +

CPU Microarchitecture +

Computer Organization• [definition by me!]

EECE476(inside the CPU)

EECE465(outside the CPU)

23

CPU Microarchitecture

• CPU Microarchitecture– Detailed internal CPU implementation of an ISA

• Logical organization of CPU internals, including– Cache sizes, organization– Pipeline depth– Number of functional units

• Methods for enhancing/detecting parallelism during execution– Dependence checking, parallel dispatch, out-of-order completion– Branch prediction, speculation

– Another view• How to use a 1,000,000,000 transistor budget

– Responsible for high-performance in modern CPUs

24

ISA & CPU Family Tree