Computer Abstractions and Technology
CS 154: Computer Architecture Lecture #2
Winter 2020
Ziad Matni, Ph.D.
Dept. of Computer Science, UCSB
A Word About Registration for CS154
FOR THOSE OF YOU NOT YET REGISTERED:
This class is FULL
If you want to add this class AND you are on the
waitlist, see me after lecture
1/9/20 Matni, CS154, Wi20 2
Lecture Outline
Tech Details Trends
Historical context
The manufacturing process of Ics
Important Performance Measures CPU time
CPI
Other factors (power, multiprocessors) Pitfalls
1/9/20
Matni, CS154, Wi20 3
Parts of the CPU
The Datapath, which includes the Arithmetic Logic Unit (ALU) and
other items that perform operations on data
Cache Memory, which is small & fast RAM memory
for immediate access to data. Resides inside the CPU.
(other types of memory are outside the CPU, like DRAM, etc)
The Control Unit (CU)
which sequences how Datapath + Memory interact
1/9/20 Matni, CS154, Wi20 4
Image from wikimedia.org
Inside the Apple A5 Processor
Manufactured in 2011 2013 32 nm technology
37.8 mm2 die size
1/9/20 Matni, CS154, Wi20 5
The CPUs Fetch-Execute Cycle
Fetch the next instruction Decode the instruction
Get data if needed
Execute the instruction
Maybe access mem again and/or write back to reg.
1/9/20 Matni, CS154, Wi20 6
This is what happens inside a computer interacting with a program at the lowest level
Pipelining (Parallelism) in CPUs
Pipelining is a fundamental design in CPUs
Allows multiple instructions to go on at once a.k.a instruction-level parallelism
1/9/20
7
Digital Design of a CPU (Showing Pipelining)
1/9/20 Matni, CS154, Wi20 8
Computer Languages and the F-E Cycle
Instructions get executed in the CPU in machine language (i.e. all in 1s and 0s)
Even small instructions, like
add 2 to 3 then multiply by 4,
need multiple cycles of the CPU to get fully executed But THATS OK! Because, typically,
CPUs can run many millions of instructions per second 1/9/20 Matni, CS154, Wi20 9
Computer Languages and the F-E Cycle
But THATS OK! Because, typically,
CPUs can run many millions of instructions per second
In low-level languages (like assembly or machine lang.) you need to spell those parts of the cycles one at a time
In high-level languages (like C, Python, Java, etc) you dont 1 HLL statement, like x = c*(a + b) is enough to get the job done
This would translate into multiple statements in LLLs
What translates HLL to LLL?
What translates LLL to ML?
1/9/20 Matni, CS154, Wi20 10
Machine vs. Assembly Language
Machine language (ML) is the actual 1s and 0s Example:
1011110111011100000101010101000
Assembly language is one step above ML
Instructions are given mnemonic codes but still displayed
one step at a time
Advantage? Better human readability
Example:
lw $t0, 4($sp)# fetch N from someplace in memory
add $t0, $t0, $t0 # add N to itself
# and store the result in N
1/9/20 Matni, CS154, Wi20 11
Computer Memory
Usually organized in two parts:
Address: Where can I find my data? Data (payload): What is my data?
Recall:
A bit (b) is ____________________
A byte (B) is ___________________
MIPS CPUs operate instructions that are ____ bits long
MIPS CPUs organize memory in units called ______ that are ___ bits long MIPS memory is addressable in ________ endian
1/9/20 Matni, CS154, Wi20 12
Reminder of some MIPS instructions
add vs addi vs addu vs addui mult and mflo
sll
srl vs sra
lavslivslwvssw
1/9/20 Matni, CS154, Wi20 13
1/9/20 Matni, CS154, Wi20 14
Eight Great Ideas in Computer Architecture
Design for Moores Law
Use abstraction to simplify design Make the common case fast
Performance via parallelism
Performance via pipelining
Performance via prediction
Hierarchy of memories
Dependability via redundancy
1/9/20 Matni, CS154, Wi20 15
Electronic Circuitry Tech Trends
Electronics technology continues to evolve
Increased memory capacity (at same price/size) Increased CPU performance
Reduced costs overall
Year
Technology
Relative Performance
1951
Vacuum tube
1
1965
Transistor
35
1975
Integrated circuit (IC)
900
1995
Very large scale IC (VLSI)
2.4 million
2013
Application Specific IC or ASIC (ultra-large scale)
250 million
1/9/20
Matni, CS154, Wi20 16
DRAM capacity goes up and the prices come down
DRAM = Dynamic RAM
Very common tech used for
computer memory
DRAM capacity
1/9/20 Matni, CS154, Wi20
17
Source: K.Asanovic, UCB
Major Technology Generations
?
18
Single-Thread Processor Performance
[ Hennessy & Patterson, 2017 ]
19
Computer Architecture: A Little History
Throughout the course well use a historical narrative to help understand why certain ideas arose
Why worry about old ideas?
Helps to illustrate the design process, and explains why certain decisions were taken
Because future technologies might be as constrained as older ones Those who ignore history are doomed to repeat it
Every mistake made in mainframe design was also made in minicomputers, then microcomputers, where next?
1/9/20 Matni, CS154, Wi20 20
Digital Computers
An improvement over Analog Computers
Represent problem variables as numbers encoded using discrete steps
Discrete steps provide noise immunity
Enables accurate and deterministic calculations
Same inputs give same outputs exactly
1/9/20 Matni, CS154, Wi20 21
Computing Devices for General Purposes
Charles Babbage (UK)
Analytical Engine could calculate polynomial
functions and differentials
Inspired by older generation of calculating machines made by Blaise Pascal (1623-1662, France)
Calculated results, but also
stored intermediate findings
(i.e. precursor to computer memory)
Father of Computer Engineering Ada Byron Lovelace (UK)
Worked with Babbage and foresaw computers doing much more than calculating numbers
Loops and Conditional Branching
Mother of Computer Programming 1/9/20
C. Babbage (1791
1871)
A. Byron Lovelace (1815
1852)
Part of Babbages Analytical Engine
Images from Wikimedia.org
22
The Modern Digital Computer
Calculating machines kept being produced in the early 20th century (IBM was established in the US in 1911)
Instructions were very simple, which made hardware implementation easier, but this hindered the creation of complex programs.
Alan Turing (UK)
Theorized the possibility of computing machines capable of performing any conceivable mathematical computation as long as this was representable as an algorithm
Called Turing Machines (1936) ideas live on today
Lead the effort to create a machine to successfully decipher the
German Enigma Code during World War II
A. Turing (1912
1954)
1/9/20
Matni, CS154, Wi20
23
Zuse Z3 (1941)
Built by Konrad Zuse in wartime Germany using 2000 relays
Could do floating-point arithmetic with hardware
22-bit word length ; clock frequency of about 45 Hz!!
64 words of memory!!!
Two-stage pipeline
1) fetch & execute, 2) writeback
No conditional branch
Programmed via paper tape
Replica of the Zuse Z3 in the Deutsches Museum, Munich
1/9/20
[Venusianer, Creative Commons BY-SA 3.0 ]
ENIAC (1946)
First electronic general-purpose computer
Constructed during WWII to calculate firing tables for US Army Trajectories (for bombs) computed in 30 seconds instead of 40 hours Was very fast for its time started to replace human computers
Used vacuum tubes (transistors hadnt been invented yet)
Weighed 30 tons, occupied 1800 sq ft
It used 160 kW of power (about 3000 light bulbs worth)
It cost $6.3 million in todays money to build.
Programmed by plugboard and switches, time consuming!
As a result of large number of tubes, it was often broken
(5 days was longest time between failures!)
1/9/20 Matni, CS154, Wi20 25
ENIAC
Changing the program could take days!
1/9/20 Matni, CS154, Wi20 26
[Public Domain, US Army Photo]
Comparing todays cell phones (with dual CPUs), with ENIAC, we see they
cost 17,000X less
are 40,000,000X smaller use 400,000X less power are 120,000X lighter AND
are 1,300X more powerful.
1/9/20 Matni, CS154, Wi20 27
EDVAC (1951)
ENIAC team started discussing stored-program concept to speed up programming and simplify machine design
Based on ideas by John von Nuemann & Herman Goldstine Still the basis for our general CPU architecture today
1/9/20 Matni, CS154, Wi20 28
Commercial computers:
BINAC (1949) and UNIVAC (1951) at EMC
Eckert and Mauchly left academia and formed the Eckert- Mauchly Computer Corporation (EMC)
Worlds first commercial computer was BINAC which didnt work
Second commercial computer was UNIVAC
Famously used to predict presidential election in 1952 Eventually 46 units sold at >$1M each
1/9/20 Matni, CS154, Wi20 29
IBM 650 (1953)
The first mass-produced computer
Low-end system aimed at businesses rather than scientific enterprises
Almost 2,000 produced
1/9/20 Matni, CS154, Wi20 30
[Cushing Memorial Library and Archives, Texas A&M, Creative Commons Attribution 2.0 Generic ]
Improvements in C.A.
IBM 650s instruction set architecture (ISA)
44 instructions in base instruction set, expandable to 97 instructions
Hiding instruction set completely from programmer using the concept of high-level languages like Fortran (1956), ALGOL (1958) and COBOL (1959)
Allowed the use of stack architecture, nested loops, recursive calls, interrupt handling, etc
Adm. Grace Hopper (1906 1992), inventor of several High-level language concepts
1/9/20 Matni, CS154, Wi20 [Public Domain, wikimedia] 31
Manufacturing ICs
Yield: the proportion of working dies per wafer; often expressed as a number between 0 and 1
1/9/20 Matni, CS154, Wi20 32
Example: Intel Core i7 Wafer
300mm (diameter) wafer
280 chips
Each chip is 20.7 mm x 10.5 mm
32nm CMOS technology
(the size of the smallest piece of logic
and the type of Silicon semiconductor used)
1/9/20 Matni, CS154, Wi20 33
Costs of Manufacturing ICs
Wafer cost and area are fixed
Defect rate determined by manufacturing process
Die area determined by architecture and circuit design
1/9/20 Matni, CS154, Wi20 34
YOUR TO-DOs for the Week
Do your reading for next class (see syllabus)
Work on Assignment #1 for lab (lab01)
Meet up in the lab this Friday
Do the lab assignment
You have to submit it as a PDF using Gradescope Due on Wednesday, 1/15, by 11:59:59 PM
1/9/20 Matni, CS154, Wi20 35
1/9/20 Matni, CS154, Wi20 36
Reviews
There are no reviews yet.