39
Introduction to Electrical and Computer Engineering Christopher Batten Computer Systems Laboratory School of Electrical and Computer Engineering Cornell University ENGRG 1060 Explorations in Engineering Seminar Summer 2013

Introduction to Electrical and Computer Engineering · Introduction to Electrical and Computer Engineering ... Electricity, Micro-Electronics, ... ENGRG 1060 Intro to ECE

  • 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