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

  • View
    216

  • Download
    3

Embed Size (px)

Text of Introduction to Electrical and Computer Engineering to Electrical and Computer Engineering ......

  • 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, AppleI General Engineering Industry: GE, Lockheed Martin, RaytheonI Software Industry: Microsoft, Amazon, MathworksI Join a Startup: Achronix, Hillcrest LabsI Research Lab: Sandia National Labs, Draper Labs, NASAI Consulting: McKinsey, Accenture, Deloitte, Booz Allen HamiltonI Finance: Deutsche Bank, Capital One, UBS, BloombergI Graduate School: Law School, Business School, Med SchoolI 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 Cornells 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 LanguageAlgorit