Upload
lamdang
View
221
Download
3
Embed Size (px)
Citation preview
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 / 36
• 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 / 36
• 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 / 36
• 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 / 36
• 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 / 36
• 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 / 36
• 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 / 36
ECE Overview • What is Computer Engineering? • Trends in Computer Engineering Computer Engineering Design
Computer Engineering Artifacts
ENGRG 1060 Intro to ECE – Christopher Batten 9 / 36
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 / 36
ECE Overview • What is Computer Engineering? • Trends in Computer Engineering Computer Engineering Design
The Computer Systems Stack
Register-Transfer Level
CircuitsDevices
Instruction Set Architecture
Programming LanguageAlgorithm
Microarchitecture
Com
pute
r Eng
inee
ring
Technology
Application
Operating System
Gate Level
Sort an array of numbers2,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 / 36
ECE Overview • What is Computer Engineering? • Trends in Computer Engineering Computer Engineering Design
The Computer Systems Stack
Register-Transfer Level
CircuitsDevices
Instruction Set Architecture
Programming LanguageAlgorithm
Microarchitecture
Com
pute
r Eng
inee
ring
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 / 36
ECE Overview • What is Computer Engineering? • Trends in Computer Engineering Computer Engineering Design
The Computer Systems Stack
Register-Transfer Level
CircuitsDevices
Instruction Set Architecture
Programming LanguageAlgorithm
Microarchitecture
Com
pute
r Eng
inee
ring
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 / 36
ECE Overview • What is Computer Engineering? • Trends in Computer Engineering Computer Engineering Design
Computer Systems: CS vs. EE vs. CE
Register-Transfer Level
CircuitsDevices
Instruction Set Architecture
Programming LanguageAlgorithm
Microarchitecture
Com
pute
r Eng
inee
ring
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 / 36
ECE Overview • What is Computer Engineering? • Trends in Computer Engineering Computer Engineering Design
ENGRG 1060 Computer Systems Labs
Register-Transfer Level
CircuitsDevices
Instruction Set Architecture
Programming LanguageAlgorithm
Microarchitecture
Com
pute
r Eng
inee
ring
Technology
Application
Operating System
Gate LevelLab 2Hardware pushingtowards software(EE,CE)
Lab 4Software pushingtowards hardware(CS,CE)
ENGRG 1060 Intro to ECE – Christopher Batten 12 / 36
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
ineerin
g
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 engineers provide feedback to guideapplication and technology research directions
ENGRG 1060 Intro to ECE – Christopher Batten 13 / 36
ECE Overview • What is Computer Engineering? • Trends in Computer Engineering Computer Engineering Design
Processors, Memories, and Networks
Register-Transfer Level
CircuitsDevices
Instruction Set Architecture
Programming LanguageAlgorithm
Microarchitecture
Com
pute
r Eng
inee
ring
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 / 36
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 / 36
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 / 36
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Application Requirements vs. Technology Constraints
Register-Transfer Level
CircuitsDevices
Instruction Set Architecture
Programming LanguageAlgorithm
Microarchitecture
Com
pute
r Eng
inee
ring
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 / 36
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Exponential Scaling for Processor Computation
Transistors(Thousands)
MIPSR2K
IntelP4
1975 1980 1985 1990 1995 2000 2005 2010 2015
100
101
102
103
104
105
106
107
DECAlpha 21264
Frequency(MHz)
SPECintPerformance~50%/ye
ar
~38%/year~50%/year
Data collected by M. Horowitz, F. Labonte, O. Shacham, K. Olukotun, L. Hammond, C. Batten
ENGRG 1060 Intro to ECE – Christopher Batten 18 / 36
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Exponential Scaling for Memory Capacity
1970 1980 1990 1995 20001975 1985 2005
1K1K
16G
1G
64M
4M
256K
16KMem
ory
Cap
acity
per
Chi
p
DRAM
SRAM
FLASH
First presentation at ISSCC or Symp. VLSI Circuits
Adapted from K. Itoh et al. “Ultra-Low Voltage Nano-Scale Memories.” Spring 2007.
ENGRG 1060 Intro to ECE – Christopher Batten 19 / 36
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Exponential Scaling for Network BandwidthN
etw
ork
Peak
Bis
ectio
n Ba
ndw
idth
(MB/
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 / 36
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Key trends in application requirements andtechnology constraints over the past decade have
resulted in a radical rethinking of theprocessors, memories, and networksused in modern computing systems
Four Key Trends in Computer Engineering
1. Growing diversity in application requirements motivategrowing diversity in computing systems
2. Energy and power constrain systems across the entirecomputing spectrum
3. Transition to multiple cores integrated onto a single chip
4. Technology scaling challenges motivate new emergingprocessor, memory, and network device technologies
ENGRG 1060 Intro to ECE – Christopher Batten 21 / 36
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Trend 1: Bell’s Law
Roughly every decade a new, smaller, lower priced computer class formsbased on a new programming platform resulting in entire new industries
103
104
105
106
107
108
102
Pric
e in
Dol
lars
1950 1960 1970 1980 2000 2010
G. Bell. "Bell's Law for the Birth and Death of Computer Classes."CACM, Jan 2008.
1990
104
106
108
1010
1012
102
100
Volu
me
in m
m3
2020 1950 1960 1970 1980 2000 20101990 2020
Y. Lee et al. "Modular 1mm3 Die-Stacked Sensing Platform ..."JSSC, Jan 2013.
Mainframes
Mainframes
Minicomputers
Minicomputers
WorkstationsWorkstations
PersonalComputers
PersonalComputers
Laptops
LaptopsHandhelds
Handhelds
Supercomputers
ScalableClusters
CloudComputing
Internet of ThingsIoT
ENGRG 1060 Intro to ECE – Christopher Batten 22 / 36
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Trend 1: Growing Diversity in Apps & Systems
Data Centers
MedicalDevices
Internet Routers
Humanoid RobotsUnmanned Vehicles
GPS Devicesand Satellites
Automobiles
DigitalCameras
Wearable Activity MonitorsSmart Home
WearableComputing
Sensor Networks
GameConsoles Computing: From Handhelds to Servers
ENGRG 1060 Intro to ECE – Christopher Batten 23 / 36
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Trend 2: Energy and Power Constraints
Power = EnergySecond
EnergyOp= Ops
Second
Battery LifeElectricity BillMobile Device Weight
Chip PackagingChip CoolingSystem NoiseCase TemperatureData-Center Air Conditioning
Power Energy
Performance (Ops/Second)
Ener
gy p
er O
pera
tion 100W Workstation
Power Constraint
1W Handheld Power Constraint
ENGRG 1060 Intro to ECE – Christopher Batten 24 / 36
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Trend 2: Power Constrains Single-Processor Scaling
Transistors(Thousands)
MIPSR2K
IntelP4
1975 1980 1985 1990 1995 2000 2005 2010 2015
100
101
102
103
104
105
106
107
DECAlpha 21264
TypicalPower (W)
Frequency(MHz)
SPECintPerformance
~9%/year
~15%/year
ENGRG 1060 Intro to ECE – Christopher Batten 25 / 36
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Trend 3: 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 / 36
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Trend 3: The Multicore “Hail Mary Pass”
Transistors(Thousands)
MIPSR2K
IntelP4
1975 1980 1985 1990 1995 2000 2005 2010 2015
100
101
102
103
104
105
106
107
DECAlpha 21264
TypicalPower (W)
Frequency(MHz)
SPECintPerformance
~9%/year
~15%/year
Numberof Cores
Intel 48-Core Prototype
Parallelism?
AMD 4-Core Opteron
ENGRG 1060 Intro to ECE – Christopher Batten 27 / 36
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Trend 4: Emerging Device Technologies
`90`80`70`60`50`40`30`20`10 `10
?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 28 / 36
ECE Overview What is Computer Engineering? • Trends in Computer Engineering • Computer Engineering Design
Key trends in application requirements andtechnology constraints over the past decade have
resulted in a radical rethinking of theprocessors, memories, and networksused in modern computing systems
Four Key Trends in Computer Engineering
1. Growing diversity in application requirements motivategrowing diversity in computing systems
2. Energy and power constrain systems across the entirecomputing spectrum
3. Transition to multiple cores integrated onto a single chip
4. Technology scaling challenges motivate new emergingprocessor, memory, and network device technologies
ENGRG 1060 Intro to ECE – Christopher Batten 29 / 36
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 30 / 36
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 31 / 36
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 32 / 36
ECE Overview What is Computer Engineering? Trends in Computer Engineering • Computer Engineering Design •
What do computer engineerings actually do?
Ask questionabout nature
Constructhypothesis
Test withexperiment
Analyze results anddraw conclusions
General ScienceDiscover truthsabout nature
Design and modelbaseline system
Ask questionabout system
Design and modelalternative system
Test withexperiment
Analyze results anddraw conclusions
Computer EngineeringExplore design space
for a new system
Build prototypeor real system
ENGRG 1060 Intro to ECE – Christopher Batten 33 / 36
ECE Overview What is Computer Engineering? Trends in Computer Engineering • Computer Engineering Design •
How do we design something so incredibly complex?
Design and modelbaseline system
Ask questionabout system
Design and modelalternative system
Test withexperiment
Analyze results anddraw conclusions
Computer EngineeringExplore design space
for a new system
Build prototypeor real system
Fighter Airplane: ~100,000 partsIntel Sandy Bridge E: 2.27 Billion transistors
ENGRG 1060 Intro to ECE – Christopher Batten 34 / 36
ECE Overview What is Computer Engineering? Trends in Computer Engineering • Computer Engineering Design •
I Design Principles. Modularity – Decompose into components with well-defined interfaces. Hierarchy – Recursively apply modularity principle. Encapsulation – Hide implementation details from interfaces. Regularity – Leverage structure at various levels of abstraction. Extensibility – Include mechanisms/hooks to simplify future changes
I Design Patterns. Processors, Memories, Networks. Control/Datapath Split. Single-Cycle, FSM, Pipelined Control. Raw Port, Message, Method Interfaces
I Design Methodologies. Agile Hardware Development. Test-driven Development. Incremental Development
ENGRG 1060 Intro to ECE – Christopher Batten 35 / 36
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 36 / 36