Engrg1060 Ece Lecture

Download as pdf or txt
Download as pdf or txt
You are on page 1of 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
• ECE Overview • What is Computer Engineering? Trends in Computer Engineering Computer Engineering Design

Power Computer Electrical Electrical Signal Telecomm


Systems Engineering Circuits Devices Processing

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 of


Electricity, Micro-Electronics, and Electro-Magnetism
Power Systems
Smart Grid and Smart Buildings Fusion and Plasma Physics
Atmospheric Science Control Theory

Telecomm Computer
Engineering
Information Theory Robotics
Network Protocols Computer-Aided
and Optimization
ECE Design

Image, Audio, Video Analog and Digital


Processing Circuits

Signal Electrical
Processing Circuits

Opto-Electrical Devices Bio-Electrical Engineering


Micro-Electro-Mechanical Devices Systems and Synthetic Biology
Electrical Devices
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

Game
Consoles
Computing: From Handhelds to Servers

Internet Routers
Digital GPS Devices
Cameras and Satellites
Humanoid Robots
Unmanned Vehicles
Electric and
Hybrid Vehicles

Automobiles

Medical Imaging Solar Panels


Fiber Optic
Networks Portable Medical Devices

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 the Ezra Cornell built the first


telegraph (a digital communication telegraph line (the beginning of
device), but needed help building telecommunications), and invested
the network in the Western Union Telegraph Co

"What hath
God wrought?"

Ezra Cornell’s investments created the fortune


that 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 Cornell


on the Arts Quad
I Does something on the back of
the statue relate to ECE?
I Take a picture with your cellphone
and 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

Application

Gap too large to bridge in one step


(but there are exceptions,
e.g., a magnetic compass)

Technology

In its broadest definition, computer engineering is the


development of the abstraction/implementation layers that allow us to
execute information processing applications efficiently
using 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

Application Sort an array of numbers


Algorithm 2,6,3,8,4,5 -> 2,3,4,5,6,8
Computer Engineering

Programming Language
Insertion sort algorithm
Operating System
1. Find minimum number in input array
Instruction Set Architecture 2. Move minimum number into output array
Microarchitecture 3. Repeat steps 1 and 2 until finished
Register-Transfer Level
C implementation of insertion sort
Gate Level void isort( int b[], int a[], int n ) {
Circuits for ( int idx, k = 0; k < n; k++ ) {
int min = 100;
Devices for ( int i = 0; i < n; i++ ) {
Technology if ( a[i] < min ) {
min = a[i];
idx = i;
}
}
b[k] = min;
a[idx] = 100;
}
}

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

Application Mac OS X, Windows, Linux


Algorithm Handles low-level hardware management
Computer Engineering

Programming Language
Operating System
Instruction Set Architecture
Microarchitecture
Register-Transfer Level MIPS32 Instruction Set
Gate Level Instructions that machine executes
Circuits blez $a2, done
move $a7, $zero
Devices li $t4, 99
Technology move $a4, $a1
move $v1, $zero
li $a3, 99
lw $a5, 0($a4)
addiu $a4, $a4, 4
slt $a6, $a5, $a3
movn $v0, $v1, $a6
addiu $v1, $v1, 1
movn $a3, $a5, $a6

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

Application
How data flows
Algorithm through system
Computer Engineering

Programming Language
Operating System
Instruction Set Architecture Boolean logic gates
Microarchitecture and functions
Register-Transfer Level
Gate Level Combining devices
Circuits to do useful work
Devices
Technology Transistors and wires

Si Si Si
Silicon process
technology Si Si Si

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

Application
Algorithm Traditional
Computer Engineering

Programming Language Computer Science


Operating System
Instruction Set Architecture Computer Engineering is at the
Microarchitecture interface between hardware and software
Register-Transfer Level and considers the entire system
Gate Level
Circuits Traditional
Electrical Engineering
Devices
Technology

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

Application Lab 4
Algorithm Software pushing
Computer Engineering

Programming Language towards hardware


Operating System (CS,CE)
Instruction Set Architecture
Microarchitecture
Register-Transfer Level
Gate Level
Circuits Lab 2
Devices Hardware pushing
Technology towards software
(EE,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

Application
Algorithm Application Requirements
Computer Engineering

Programming Language • Suggest how to improve architecture


Operating System • Provide revenue to fund development
Instruction Set Architecture
Computer engineers provide feedback to guide
Microarchitecture application and technology research directions
Register-Transfer Level
Gate Level
Circuits Technology Constraints
• Restrict what can be done efficiently
Devices
• New technologies make new arch possible
Technology

In its broadest definition, computer engineering is the


development of the abstraction/implementation layers that allow us to
execute information processing applications efficiently
using available manufacturing technologies

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

Application
Algorithm
Compute
Computer Engineering

Programming Language Processor


data
Operating System
Instruction Set Architecture
Input Output Move
Microarchitecture Data Network Data data
Register-Transfer Level
Gate Level
Store
Circuits Memory
data
Devices
Technology

Computer engineering basic building blocks


• Processors for computation
• Memories for storage
• Networks for communication

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


I Application: Sort 32 numbers
Processor
I Simulated Sequential Computing System
. Processor: You!
. Memory: Worksheet, read input data, write output data Network
. Network: Passing/collecting the worksheets
I Activity Steps
. 1. Discuss strategy with neighbors Memory
. 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

Application
Algorithm Traditional
Computer Engineering

Programming Language Application Requirements


Operating System • As much processor compute as possible
• As much memory capacity as possible
Instruction Set Architecture
• As much network bandwidth as possible
Microarchitecture
Register-Transfer Level
Gate Level
Circuits Traditional
Technology Constraints
Devices
• Exponential scaling of resources
Technology

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


7 Transistors
10
ar (Thousands)
/y e
6 % SPECint
10 0
Intel ~5 ar Performance
/y e
P4 0 %
5
~5 Frequency
10 DEC ar (MHz)
y e
Alpha
8 %/
10
4 21264 ~3

MIPS
3
10 R2K

2
10
1
10
0
10

1975 1980 1985 1990 1995 2000 2005 2010 2015


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

16G First presentation at ISSCC or Symp. VLSI Circuits DRAM

1G
Memory Capacity per Chip

64M

SRAM
4M

FLASH
256K

16K

1K

1970 1975 1980 1985 1990 1995 2000 2005


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

Network Peak Bisection Bandwidth (MB/s) Exponential Scaling for Network Bandwidth

7
10

6
10

5
10
Multi-Stage
4
Interconnection
10 Networks
(100-1000's Nodes)

10
3 Bus-Based
Interconnection
Networks
2
10 (10's Nodes)

1985 1990 1995 2000 2005


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 and


technology constraints over the past decade have
resulted in a radical rethinking of the
processors, memories, and networks
used in modern computing systems

Four Key Trends in Computer Engineering

1. Growing diversity in application requirements motivate


growing diversity in computing systems

2. Energy and power constrain systems across the entire


computing spectrum

3. Transition to multiple cores integrated onto a single chip

4. Technology scaling challenges motivate new emerging


processor, 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 forms
based on a new programming platform resulting in entire new industries

8 12
10 10 Minicomputers
Supercomputers
7 10
10 10
Mainframes
Personal
6 8 Computers
10 10 Mainframes
Scalable

Volume in mm3
Price in Dollars

Clusters
5 Minicomputers 6 Handhelds
10 Cloud 10
Computing

4 Workstations 4
10 10
Workstations
Laptops
3 2
10 Personal 10
Computers
Handhelds Laptops
2 0
10 G. Bell. "Bell's Law for the Birth and 10 Y. Lee et al. "Modular 1mm3 Die-
Death of Computer Classes." Internet of Things Stacked Sensing Platform ..."
CACM, Jan 2008. JSSC, Jan 2013. IoT

1950 1960 1970 1980 1990 2000 2010 2020 1950 1960 1970 1980 1990 2000 2010 2020

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

Game
Consoles
Computing: From Handhelds to Servers

Internet Routers
Digital GPS Devices
Cameras and Satellites
Humanoid Robots
Unmanned Vehicles
Automobiles

Wearable
Computing

Sensor
Networks Medical
Smart Home Devices Wearable Activity Monitors

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

Energy Energy Ops


Power = =

Energy per Operation


Second Op Second 100W Workstation
Power Constraint
Power Energy
Chip Packaging Battery Life
Chip Cooling Electricity Bill
1W Handheld
System Noise Mobile Device
Power Constraint
Case Temperature Weight
Data-Center Air
Conditioning
Performance (Ops/Second)

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


7 Transistors
10
(Thousands)
6
10
Intel
5
P4
1 5 %/year SPECint
10 ~
DEC Performance
Alpha
4 21264
10 ~9%/year Frequency
MIPS (MHz)
3
10 R2K

Typical
2
10 Power (W)

1
10
0
10

1975 1980 1985 1990 1995 2000 2005 2010 2015

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

Intel Pentium 4 Cray XT3 Supercomputer


Single monolithic processor 1024 single-core processors

P P P P
N N
M M M M
P P P P
AMD Quad-Core Opteron
Four cores on the same die N

P P P P M M M M

N IBM Blue Gene Q


Supercomputer
M M M M Thousands of
18-core processors

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”


7 Transistors
10 Intel 48-Core Prototype
(Thousands)
AMD 4-Core Opteron
6
10
Intel Parallelism?
P4 r
/yea SPECint
10
5 ~15%
DEC Performance
Alpha
4 21264
10 ~9%/year Frequency
MIPS (MHz)
3
10 R2K

Typical
2
10 Power (W)
Number
1
10 of Cores

0
10

1975 1980 1985 1990 1995 2000 2005 2010 2015

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

?
Vertical MOSFETs
Graphene
Carbon Nanotubes
Nanorelays
Quantum Computing
Molecular Computing
Memristers
Phase-Change Mem
Spintronics
3D Integration
Nanophotonics

`10 `20 `30 `40 `50 `60 `70 `80 `90 `10
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 and


technology constraints over the past decade have
resulted in a radical rethinking of the
processors, memories, and networks
used in modern computing systems

Four Key Trends in Computer Engineering

1. Growing diversity in application requirements motivate


growing diversity in computing systems

2. Energy and power constrain systems across the entire


computing spectrum

3. Transition to multiple cores integrated onto a single chip

4. Technology scaling challenges motivate new emerging


processor, 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


I Application: Sort 32 numbers
I Simulated Parallel Computing System
P P P P
. Processor: Group of 2–8 students
. Memory: Worksheet, scratch paper
N
. Network: Communicating between students
I Activity Steps
M M M M
. 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

Distribute
Network

Proc/Mem Sort 4 Numbers

Network
Merge Phase 1
Proc/Mem > merge 4+4 = 8
Network
Merge Phase 2
Proc/Mem > merge 8+8 = 16
Algorithm
Network Communication
Load Balancing Merge Phase 3
Proc/Mem Fault Tolerance > merge 16+16 = 32
Dataset Size
Network sorted

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?

General Science Computer Engineering


Discover truths Explore design space
about nature for a new system
Ask question Design and model
about nature baseline system

Construct Ask question


hypothesis about system

Test with Test with


experiment experiment

Analyze results and Analyze results and


draw conclusions draw conclusions

Build prototype Design and model


or real system alternative 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?

Computer Engineering
Explore design space
for a new system
Design and model
baseline system

Ask question
about system

Test with
experiment

Analyze results and Fighter Airplane: ~100,000 parts


draw conclusions Intel Sandy Bridge E: 2.27 Billion transistors

Build prototype Design and model


or real system alternative system

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 study
and application of electricity, micro-
electronics, and electro-magnetism
I Computer engineering is the process of
designing abstraction and implementation
layers to meet application requirements
within physical technology constraints
I We are entering an exciting new era of
computer engineering with emerging
applications and systems, a remarkable shift
towards mainstream parallel processing,
and significant technology challenges

ENGRG 1060 Intro to ECE – Christopher Batten 36 / 36

You might also like