Introduction toElectrical and Computer Engineering
Christopher Batten
Computer Systems LaboratorySchool of Electrical and Computer Engineering
Cornell University
ENGRG 1060 Explorations in Engineering SeminarSummer 2013
• ECE Overview • What is Computer Engineering? Trends in Computer Engineering Computer Engineering Design
PowerSystems
ComputerEngineering
ElectricalCircuits
ElectricalDevices
SignalProcessing
Telecomm
ENGRG 1060 Intro to ECE – Christopher Batten 2 / 37
• ECE Overview • What is Computer Engineering? Trends in Computer Engineering Computer Engineering Design
ECE is the Study and Application ofElectricity, Micro-Electronics, and Electro-Magnetism
ECE
Power Systems
Computer Engineering
ElectricalCircuits
Electrical Devices
Signal Processing
Telecomm
Bio-Electrical Engineering
Micro-Electro-Mechanical Devices
Opto-Electrical Devices
Fusion and Plasma Physics
Image, Audio, VideoProcessing
Information Theory
Smart Grid and Smart Buildings
Systems and Synthetic Biology
Atmospheric Science Control Theory
Robotics
Network Protocolsand Optimization
Analog and DigitalCircuits
Computer-AidedDesign
ENGRG 1060 Intro to ECE – Christopher Batten 3 / 37
• ECE Overview • What is Computer Engineering? Trends in Computer Engineering Computer Engineering Design
ECE is everywhere!
Data Centers
Solar PanelsMedical ImagingPortable Medical Devices
Internet Routers
Humanoid RobotsUnmanned Vehicles
GPS Devicesand Satellites
Electric andHybrid Vehicles
Fiber OpticNetworks
Automobiles
DigitalCameras
Computing: From Handhelds to Servers
GameConsoles
ENGRG 1060 Intro to ECE – Christopher Batten 4 / 37
• ECE Overview • What is Computer Engineering? Trends in Computer Engineering Computer Engineering Design
What can one do with a background in ECE?
I ECE Industry: Intel, AMD, Analog Devices, NVIDIA, HP, Apple
I General Engineering Industry: GE, Lockheed Martin, Raytheon
I Software Industry: Microsoft, Amazon, Mathworks
I Join a Startup: Achronix, Hillcrest Labs
I Research Lab: Sandia National Labs, Draper Labs, NASA
I Consulting: McKinsey, Accenture, Deloitte, Booz Allen Hamilton
I Finance: Deutsche Bank, Capital One, UBS, Bloomberg
I Graduate School: Law School, Business School, Med School
I Found a university!
ENGRG 1060 Intro to ECE – Christopher Batten 5 / 37
• ECE Overview • What is Computer Engineering? Trends in Computer Engineering Computer Engineering Design
Cornell was founded because of ECE!
Samuel Morse invented thetelegraph (a digital communicationdevice), but needed help buildingthe network
Ezra Cornell built the firsttelegraph line (the beginning oftelecommunications), and investedin the Western Union Telegraph Co
"What hathGod wrought?"
Ezra Cornell’s investments created the fortunethat eventually enabled the founding of Cornell University
ENGRG 1060 Intro to ECE – Christopher Batten 6 / 37
• ECE Overview • What is Computer Engineering? Trends in Computer Engineering Computer Engineering Design
“Optional Homework”
I Visit the statue of Ezra Cornellon the Arts Quad
I Does something on the back ofthe statue relate to ECE?
I Take a picture with your cellphoneand send it to your friend!. Power systems. Computer engineering. Electrical circuits. Electrical devices. Signal processing. Telecommunications
ENGRG 1060 Intro to ECE – Christopher Batten 7 / 37
• ECE Overview • What is Computer Engineering? Trends in Computer Engineering Computer Engineering Design
Talk Outline
ECE Overview
What is Computer Engineering?
Trends in Computer Engineering
Computer Engineering Design
ENGRG 1060 Intro to ECE – Christopher Batten 8 / 37
ECE Overview • What is Computer Engineering? • Trends in Computer Engineering Computer Engineering Design
Computer Engineering Artifacts
ENGRG 1060 Intro to ECE – Christopher Batten 9 / 37
ECE Overview • What is Computer Engineering? • Trends in Computer Engineering Computer Engineering Design
The Computer Systems Stack
Technology
Application
Gap too large to bridge in one step(but there are exceptions, e.g., a magnetic compass)
In its broadest definition, computer engineering is thedevelopment of the abstraction/implementation layers that allow us to
execute information processing applications efficientlyusing available manufacturing technologies
ENGRG 1060 Intro to ECE – Christopher Batten 10 / 37
ECE Overview • What is Computer Engineering? • Trends in Computer Engineering Computer Engineering Design
The Computer Systems Stack
Register-Transfer Level
Circuits
Devices
Instruction Set Architecture
Programming Language
Algorithm
Microarchitecture
Com
pute
r E
ng
ineeri
ng
Technology
Application
Operating System
Gate Level
Sort an array of numbers
2,6,3,8,4,5 -> 2,3,4,5,6,8
1. Find minimum number in input array2. Move minimum number into output array3. Repeat steps 1 and 2 until finished
Insertion sort algorithm
void isort( int b[], int a[], int n ) { for ( int idx, k = 0; k < n; k++ ) { int min = 100; for ( int i = 0; i < n; i++ ) { if ( a[i] < min ) { min = a[i]; idx = i; } } b[k] = min; a[idx] = 100; }}
C implementation of insertion sort
ENGRG 1060 Intro to ECE – Christopher Batten 10 / 37
ECE Overview • What is Computer Engineering? • Trends in Computer Engineering Computer Engineering Design
The Computer Systems Stack
Register-Transfer Level
Circuits
Devices
Instruction Set Architecture
Programming Language
Algorithm
Microarchitecture
Com
pute
r E
ng
ineeri
ng
Technology
Application
Operating System
Gate Level
Mac OS X, Windows, LinuxHandles low-level hardware management
blez $a2, donemove $a7, $zeroli $t4, 99move $a4, $a1move $v1, $zeroli $a3, 99lw $a5, 0($a4)addiu $a4, $a4, 4slt $a6, $a5, $a3movn $v0, $v1, $a6addiu $v1, $v1, 1movn $a3, $a5, $a6
MIPS32 Instruction SetInstructions that machine executes
ENGRG 1060 Intro to ECE – Christopher Batten 10 / 37
ECE Overview • What is Computer Engineering? • Trends in Computer Engineering Computer Engineering Design
The Computer Systems Stack
Register-Transfer Level
Circuits
Devices
Instruction Set Architecture
Programming Language
Algorithm
Microarchitecture
Com
pute
r E
ng
ineeri
ng
Technology
Application
Operating System
Gate Level
Silicon processtechnology
Si Si Si
SiSiSi
Transistors and wires
Combining devicesto do useful work
Boolean logic gatesand functions
How data flowsthrough system
ENGRG 1060 Intro to ECE – Christopher Batten 10 / 37
ECE Overview • What is Computer Engineering? • Trends in Computer Engineering Computer Engineering Design
Computer Systems: CS vs. EE vs. CE
Register-Transfer Level
Circuits
Devices
Instruction Set Architecture
Programming Language
Algorithm
Microarchitecture
Com
pute
r E
ng
ineeri
ng
Technology
Application
Operating System
Gate Level
TraditionalComputer Science
TraditionalElectrical Engineering
Computer Engineering is at theinterface between hardware and softwareand considers the entire system
ENGRG 1060 Intro to ECE – Christopher Batten 11 / 37
ECE Overview • What is Computer Engineering? • Trends in Computer Engineering Computer Engineering Design
ENGRG 1060 Computer Systems Labs
Register-Transfer Level
Circuits
Devices
Instruction Set Architecture
Programming Language
Algorithm
Microarchitecture
Com
pute
r E
ng
ineeri
ng
Technology
Application
Operating System
Gate Level
Lab 2Hardware pushingtowards software(EE,CE)
Lab 4Software pushingtowards hardware(CS,CE)
ENGRG 1060 Intro to ECE – Christopher Batten 12 / 37
ECE Overview • What is Computer Engineering? • Trends in Computer Engineering Computer Engineering Design
Application Requirements vs. Technology Constraints
In its broadest definition, computer engineering is thedevelopment of the abstraction/implementation layers that allow us to
execute information processing applications efficientlyusing available manufacturing technologies
Register-Transfer Level
Circuits
Devices
Instruction Set Architecture
Programming Language
Algorithm
Microarchitecture
Com
pute
r E
ng
ineeri
ng
Technology
Application
Operating System
Gate Level
Application Requirements • Suggest how to improve architecture • Provide revenue to fund development
Technology Constraints • Restrict what can be done efficiently • New technologies make new arch possible
Computer architects provide feedback to guideapplication and technology research directions
ENGRG 1060 Intro to ECE – Christopher Batten 13 / 37
ECE Overview • What is Computer Engineering? • Trends in Computer Engineering Computer Engineering Design
Processors, Memories, and Networks
Register-Transfer Level
Circuits
Devices
Instruction Set Architecture
Programming Language
Algorithm
Microarchitecture
Com
pute
r E
ng
ineeri
ng
Technology
Application
Operating System
Gate Level
Computer engineering basic building blocks
• Processors for computation
• Memories for storage
• Networks for communication
Network
Processor
Memory
InputData
OutputData
Computedata
Movedata
Storedata
ENGRG 1060 Intro to ECE – Christopher Batten 14 / 37
ECE Overview • What is Computer Engineering? • Trends in Computer Engineering Computer Engineering Design
Activity #1: Sorting with a Sequential Processor
Network
Processor
Memory
I Application: Sort 32 numbers
I Simulated Sequential Computing System. Processor: You!. Memory: Worksheet, read input data, write output data. Network: Passing/collecting the worksheets
I Activity Steps. 1. Discuss strategy with neighbors. 2. When instructor starts timer, flip over worksheet. 3. Sort 32 numbers as fast as possible. 4. Lookup when completed and write time on worksheet. 5. Raise hand. 6. When everyone is finished, then analyze data
ENGRG 1060 Intro to ECE – Christopher Batten 15 / 37
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Talk Outline
ECE Overview
What is Computer Engineering?
Trends in Computer Engineering
Computer Engineering Design
ENGRG 1060 Intro to ECE – Christopher Batten 16 / 37
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Application Requirements vs. Technology Constraints
Register-Transfer Level
Circuits
Devices
Instruction Set Architecture
Programming Language
Algorithm
Microarchitecture
Com
pute
r E
ng
ineeri
ng
Technology
Application
Operating System
Gate Level
TraditionalApplication Requirements • As much processor compute as possible • As much memory capacity as possible • As much network bandwidth as possible
TraditionalTechnology Constraints • Exponential scaling of resources
ENGRG 1060 Intro to ECE – Christopher Batten 17 / 37
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Exponential Scaling for Processor Computation
Transistors(Thousands)
Frequency(MHz)
Typical Power(Watts)
MIPS R2K
IntelPentium 4
DEC Alpha 21264
Data partially collected by M. Horowitz, F. Labonte, O. Shacham, K. Olukotun, L. Hammond
1975 1980 1985 1990 1995 2000 2005 2010 2015
100
101
102
103
104
105
106
SequentialProcessorPerformance
107
ENGRG 1060 Intro to ECE – Christopher Batten 18 / 37
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Exponential Scaling for Memory Capacity
Adapted from [Itoh’07]
ENGRG 1060 Intro to ECE – Christopher Batten 19 / 37
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Exponential Scaling for Network BandwidthN
etw
ork
Pea
k B
ise
ctio
n B
an
dw
idth
(M
B/s
)
1985 1990 1995 2000 2005
103
104
105
106
107
102
Bus-BasedInterconnection
Networks(10's Nodes)
Multi-StageInterconnection
Networks(100-1000's Nodes)
Data from Hennessy & Patterson, Morgan Kaufmann, 2nd & 5th eds., 1996 & 2011; D.E. Culler et al., Morgan Kaufmann, 1999.
ENGRG 1060 Intro to ECE – Christopher Batten 20 / 37
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Key trends in the application requirements andtechnology constraints over the past decade have
resulted in a radical rethinking of theprocessors, memories, and networksused in modern computing systems
Three Key Trends in Computer Engineering
1. Growing diversity in application requirements motivategrowing diversity in computing systems
2. Energy and power constraints motivate transition tomultiple processors integrated onto a single chip
3. Technology scaling challenges motivate new emergingprocessor, memory, and network device technologies
ENGRG 1060 Intro to ECE – Christopher Batten 21 / 37
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Trend 1: Bell’s Law
Roughly every decade a new, lower priced computer class forms basedon a new programming platform resulting in new usage and industries
103
104
105
106
107
108
102
101
Pri
ce in
Dolla
rs
1950 1960 1970 1980 1990 2000 2010
G. Bell. "Bell's Law for the Birth and Death of Computer Classes." CACM, Jan 2008.
Mainframes
Minicomputers
Workstations
Personal Computers
Handhelds
Supercomputers
ScalableClusters
Sensor NetworksInternet of Things
CloudComputing
ENGRG 1060 Intro to ECE – Christopher Batten 22 / 37
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Trend 1: Growing Diversity in Apps & Systems
ENGRG 1060 Intro to ECE – Christopher Batten 23 / 37
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Trend 2: Energy/Power Constrain All Modern Systems
Power =Energy
Second
Energy
Op=
Ops
Second
Battery LifeElectricity BillMobile Device Weight
Chip PackagingChip CoolingSystem NoiseCase TemperatureData-Center Air Conditioning
Power Energy
Performance (Ops/Second)
En
erg
y p
er
Op
era
tio
n
100W Workstation Power Constraint
1W Handheld Power Constraint
ENGRG 1060 Intro to ECE – Christopher Batten 24 / 37
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Trend 2: Power Constrains Single-Processor Scaling
Transistors(Thousands)
Frequency(MHz)
Typical Power(Watts)
MIPS R2K
IntelPentium 4
DEC Alpha 21264
Data partially collected by M. Horowitz, F. Labonte, O. Shacham, K. Olukotun, L. Hammond
1975 1980 1985 1990 1995 2000 2005 2010 2015
100
101
102
103
104
105
106
SequentialProcessorPerformance
107
ENGRG 1060 Intro to ECE – Christopher Batten 25 / 37
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Trend 2: Transition to Multicore Processors
P
M
N
P
M
N
P
M
P
M
Intel Pentium 4Single monolithic processor
Cray XT3 Supercomputer1024 single-core processors
P
M
P
M
P
M
P
M
N
AMD Quad-Core Opteron Four cores on the same die
P
M
P
M
N
IBM Blue Gene QSupercomputer Thousands of 18-core processors
P
M
P
M
ENGRG 1060 Intro to ECE – Christopher Batten 26 / 37
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Trend 2: Energy and Performance of Multicores
Performance (Tasks per Second)
(Joulesper
Task)
SimpleSingle Proc
Processor PowerConstraint
A
Incr
easing P
ower
AAA
Energy
C
B
AAAA
Superscalarw/ Deeper
Pipelines
Out-of-Order Superscalar
Superpipelined
DMulticoreMulticore
D
Manycore
D
ENGRG 1060 Intro to ECE – Christopher Batten 27 / 37
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Trend 2: Multicore Performance Scaling
Transistors(Thousands)
Frequency(MHz)
Typical Power(Watts)
MIPS R2K
IntelPentium 4
DEC Alpha 21264
Data partially collected by M. Horowitz, F. Labonte, O. Shacham, K. Olukotun, L. Hammond
1975 1980 1985 1990 1995 2000 2005 2010 2015
100
101
102
103
104
105
106
SequentialProcessorPerformance
107
Numberof Cores
Parallel ProcPerformance
Intel 48-CorePrototype
AMD 4-CoreOpteron
ENGRG 1060 Intro to ECE – Christopher Batten 28 / 37
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Trend 3: Emerging Device Technologies
?Vertical MOSFETsGrapheneCarbon NanotubesNanorelaysQuantum ComputingMolecular ComputingMemristersPhase-Change MemSpintronics3D IntegrationNanophotonics
Adapted from R. Kurzweil. “The Singularity is Near.” Penguin Books, 2006.
ENGRG 1060 Intro to ECE – Christopher Batten 29 / 37
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Key trends in the application requirements andtechnology constraints over the past decade have
resulted in a radical rethinking of theprocessors, memories, and networksused in modern computing systems
Three Key Trends in Computer Engineering
1. Growing diversity in application requirements motivategrowing diversity in computing systems
2. Energy and power constraints motivate transition tomultiple processors integrated onto a single chip
3. Technology scaling challenges motivate new emergingprocessor, memory, and network device technologies
ENGRG 1060 Intro to ECE – Christopher Batten 30 / 37
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Activity #2: Sorting with a Parallel Processor
P
M
P
M
P
M
P
M
N
I Application: Sort 32 numbers
I Simulated Parallel Computing System. Processor: Group of 2–8 students. Memory: Worksheet, scratch paper. Network: Communicating between students
I Activity Steps. 1. Discuss strategy with group. 2. When instructor starts timer, master processor flips over worksheet. 3. Sort 32 numbers as fast as possible. 4. Lookup when completed and write time on worksheet. 5. Master processor only raises hand. 6. When everyone is finished, then analyze data
ENGRG 1060 Intro to ECE – Christopher Batten 31 / 37
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Activity #2: Discussion
unsorted
sorted
Distribute
Sort 4 Numbers
Merge Phase 1 > merge 4+4 = 8
Merge Phase 2 > merge 8+8 = 16
Merge Phase 3 > merge 16+16 = 32
Proc/Mem
Proc/Mem
Network
Network
Network
Proc/Mem
Proc/Mem
Network
Network
AlgorithmCommunicationLoad BalancingFault Tolerance
Dataset Size
ENGRG 1060 Intro to ECE – Christopher Batten 32 / 37
ECE Overview What is Computer Engineering? Trends in Computer Engineering • Computer Engineering Design •
Talk Outline
ECE Overview
What is Computer Engineering?
Trends in Computer Engineering
Computer Engineering Design
ENGRG 1060 Intro to ECE – Christopher Batten 33 / 37
ECE Overview What is Computer Engineering? Trends in Computer Engineering • Computer Engineering Design •
What do computer engineers actually do?
Ask questionabout nature
Constructhypothesis
Test withexperiment
Analyze results anddraw conclusions
General Science
Discover truthsabout nature
Design and buildinitial system
Ask questionabout system
Modify system or build/design alternative
Test with experiment to compare alternatives
Analyze results anddraw conclusions
Computer Engineering
Explore design space for a given system
ENGRG 1060 Intro to ECE – Christopher Batten 34 / 37
ECE Overview What is Computer Engineering? Trends in Computer Engineering • Computer Engineering Design •
How do we design something so incredibly complex?
Design and buildinitial system
Ask questionabout system
Modify system or build/design alternative
Test with experiment to compare alternatives
Analyze results anddraw conclusions
Computer Engineering
Explore design space for a given system
Fighter Airplane: ~100,000 parts
Intel Sandy Bridge E: 2.27 Billion transistors
ENGRG 1060 Intro to ECE – Christopher Batten 35 / 37
ECE Overview What is Computer Engineering? Trends in Computer Engineering • Computer Engineering Design •
I Design Principles. Abstraction – Hide low-level details to create higher-level models
. Hierarchy – Structurally decompose design; e.g., net → router → queues
. Regularity – Structural and physical regularity; e.g., uniform tiles
. Modularity – Well-defined interfaces; e.g., latency insensitive net interface
. Encapsulation – Hide implementation details; e.g., processor microarch
. Extensibility – Design for future extensions; e.g., new network topo
I Design Methodologies. Incremental development
. Test-driven development
. Agile development
P
M
P
M
P
M
P
M
N
ENGRG 1060 Intro to ECE – Christopher Batten 36 / 37
ECE Overview What is Computer Engineering? Trends in Computer Engineering Computer Engineering Design
Take-Away Points
I ECE is a broad field focused on the studyand application of electricity, micro-electronics, and electro-magnetism
I Computer engineering is the process ofdesigning abstraction and implementationlayers to meet application requirementswithin physical technology constraints
I We are entering an exciting new era ofcomputer engineering with emergingapplications and systems, a remarkable shifttowards mainstream parallel processing,and significant technology challenges
ENGRG 1060 Intro to ECE – Christopher Batten 37 / 37