Introduction To Electrical And . - Cornell University

Transcription

Introduction toElectrical and Computer EngineeringChristopher BattenComputer Systems LaboratorySchool of Electrical and Computer EngineeringCornell UniversityENGRG 1060 Explorations in Engineering SeminarSummer 2012

ECE Overview PowerSystemsENGRG 1060What is Computer rends in Computer EngineeringElectricalDevicesIntro to ECE – Christopher BattenComputer Engineering DesignSignalProcessingTelecomm2 / 42

ECE Overview What is Computer Engineering?Trends in Computer EngineeringComputer Engineering DesignECE is the Study and Application ofElectricity, Micro-Electronics, and Electro-MagnetismPower SystemsSmart Grid and Smart BuildingsFusion and Plasma PhysicsAtmospheric ScienceControl TheoryTelecommComputerEngineeringInformation TheoryRoboticsNetwork Protocolsand OptimizationComputer-AidedDesignECEImage, Audio, VideoProcessingSignalProcessingAnalog and DigitalCircuitsElectricalCircuitsOpto-Electrical DevicesBio-Electrical EngineeringMicro-Electro-Mechanical DevicesSystems and Synthetic BiologyElectrical DevicesENGRG 1060Intro to ECE – Christopher Batten3 / 42

ECE Overview What is Computer Engineering?Trends in Computer EngineeringComputer Engineering DesignECE is everywhere!Data CentersGameConsolesComputing: From Handhelds to ServersInternet RoutersDigitalCamerasGPS Devicesand SatellitesHumanoid RobotsUnmanned VehiclesElectric andHybrid VehiclesAutomobilesFiber OpticNetworksENGRG 1060Medical ImagingPortable Medical DevicesIntro to ECE – Christopher BattenSolar Panels4 / 42

ECE Overview What is Computer Engineering?Trends in Computer EngineeringComputer Engineering DesignWhat 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 1060Intro to ECE – Christopher Batten5 / 42

ECE Overview What is Computer Engineering?Trends in Computer EngineeringComputer Engineering DesignCornell was founded because of ECE!Samuel Morse invented thetelegraph (a digital communicationdevice), but needed help buildingthe networkEzra 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 UniversityENGRG 1060Intro to ECE – Christopher Batten6 / 42

ECE Overview What is Computer Engineering?Trends in Computer EngineeringComputer Engineering Design“Optional Homework”I Visit the statue of Ezra Cornellon the Arts QuadI Does something on the back ofthe statue relate to ECE?I Take a picture with your cellphoneand send it to your friend!.ENGRG 1060Power systemsComputer engineeringElectrical circuitsElectrical devicesSignal processingTelecommunicationsIntro to ECE – Christopher Batten7 / 42

ECE Overview What is Computer Engineering?Trends in Computer EngineeringComputer Engineering DesignTalk OutlineECE OverviewWhat is Computer Engineering?Trends in Computer EngineeringComputer Engineering DesignENGRG 1060Intro to ECE – Christopher Batten8 / 42

ECE Overview What is Computer Engineering? Trends in Computer EngineeringComputer Engineering DesignComputer Engineering ArtifactsENGRG 1060Intro to ECE – Christopher Batten9 / 42

ECE Overview What is Computer Engineering? Trends in Computer EngineeringComputer Engineering DesignThe Computer Systems StackApplicationGap too large to bridge in one step(but there are exceptions,e.g., a magnetic compass)TechnologyIn its broadest definition, computer system design is thedevelopment of the abstraction/implementation layers that allow us toexecute information processing applications efficientlyusing available manufacturing technologiesENGRG 1060Intro to ECE – Christopher Batten10 / 42

ECE Overview What is Computer Engineering? Trends in Computer EngineeringComputer Engineering DesignComputer EngineeringThe Computer Systems StackENGRG 1060ApplicationAlgorithmProgramming LanguageOperating SystemInstruction Set ArchitectureMicroarchitectureRegister-Transfer LevelGate LevelCircuitsDevicesTechnologySort an array of numbers2,6,3,8,4,5 - 2,3,4,5,6,8Insertion sort algorithm1. Find minimum number in input array2. Move minimum number into output array3. Repeat steps 1 and 2 until finishedC implementation of insertion sortvoid isort( int b[], int a[], int n ) {for ( int idx, k 0; k n; k ) {int min 99for ( int i 0; i n; i ) {if ( a[i] min ) {min a[i];idx i;}}b[k] min;a[idx] 99;}}Intro to ECE – Christopher Batten10 / 42

ECE Overview What is Computer Engineering? Trends in Computer EngineeringComputer Engineering DesignComputer EngineeringThe Computer Systems StackENGRG 1060ApplicationAlgorithmProgramming LanguageOperating SystemInstruction Set ArchitectureMicroarchitectureRegister-Transfer LevelGate LevelCircuitsDevicesTechnologyMac OS X, Windows, LinuxHandles low-level hardware managementMIPS32 Instruction SetInstructions that machine n a2, a7, t4, a4, v1, a3, a5, a4, a6, v0, v1, a3,Intro to ECE – Christopher Battendone zero99 a1 zero990( a4) a4, 4 a5, a3 v1, a6 v1, 1 a5, a610 / 42

ECE Overview What is Computer Engineering? Trends in Computer EngineeringComputer Engineering DesignComputer EngineeringThe Computer Systems StackApplicationAlgorithmProgramming LanguageOperating SystemInstruction Set ArchitectureMicroarchitectureRegister-Transfer LevelGate LevelCircuitsDevicesTechnologyHow data flowsthrough systemBoolean logic gatesand functionsCombining devicesto do useful workTransistors and wiresSilicon processtechnologyENGRG 1060Intro to ECE – Christopher BattenSiSiSiSiSiSi10 / 42

ECE Overview What is Computer Engineering? Trends in Computer EngineeringComputer Engineering DesignComputer EngineeringComputer Systems: CS vs. EE vs. CEENGRG 1060ApplicationAlgorithmProgramming LanguageOperating SystemInstruction Set ArchitectureMicroarchitectureRegister-Transfer LevelGate LevelCircuitsDevicesTechnologyTraditionalComputer ScienceComputer Engineering is at theinterface between hardware and softwareand considers the entire systemTraditionalElectrical EngineeringIntro to ECE – Christopher Batten11 / 42

ECE Overview What is Computer Engineering? Trends in Computer EngineeringComputer Engineering DesignComputer EngineeringENGRG 1060 Computer Systems LabsENGRG 1060ApplicationAlgorithmProgramming LanguageOperating SystemInstruction Set ArchitectureMicroarchitectureRegister-Transfer LevelGate LevelCircuitsDevicesTechnologyIntro to ECE – Christopher BattenLab 4Software pushingtowards hardware(CS,CE)Lab 2Hardware pushingtowards software(EE,CE)12 / 42

ECE Overview What is Computer Engineering? Trends in Computer EngineeringComputer Engineering DesignApplication Requirements vs. Technology ConstraintsComputer EngineeringApplicationAlgorithmProgramming LanguageOperating SystemInstruction Set ArchitectureMicroarchitectureRegister-Transfer LevelGate LevelCircuitsDevicesTechnologyApplication Requirements Suggest how to improve architecture Provide revenue to fund developmentComputer engineers provide feedback to guideapplication and technology research directionsTechnology Constraints Restrict what can be done efficiently New technologies make new arch possibleIn its broadest definition, computer system design is thedevelopment of the abstraction/implementation layers that allow us toexecute information processing applications efficientlyusing available manufacturing technologiesENGRG 1060Intro to ECE – Christopher Batten13 / 42

ECE Overview What is Computer Engineering? Trends in Computer EngineeringComputer Engineering DesignProcessors, Memories, and NetworksComputer EngineeringApplicationAlgorithmProgramming LanguageOperating SystemInstruction Set ArchitectureMicroarchitectureRegister-Transfer LevelGate omputer engineering basic building blocks Processors for computation Memories for storage Networks for communicationENGRG 1060Intro to ECE – Christopher Batten14 / 42

ECE Overview What is Computer Engineering? Trends in Computer EngineeringComputer Engineering DesignActivity #1: Sorting with a Sequential ProcessorI Application: Sort 32 numbersI Simulated Sequential Computing System. Processor: You!. Memory: Worksheet, read input data, write output data. Network: Passing/collecting the worksheetsProcessorNetworkI Activity Steps.1.2.3.4.5.6.ENGRG 1060Discuss strategy with neighborsWhen instructor starts timer, flip over worksheetSort 32 numbers as fast as possibleLookup when completed and write time on worksheetRaise handWhen everyone is finished, then analyze dataIntro to ECE – Christopher BattenMemory15 / 42

ECE OverviewWhat is Computer Engineering? Trends in Computer Engineering Computer Engineering DesignTalk OutlineECE OverviewWhat is Computer Engineering?Trends in Computer EngineeringComputer Engineering DesignENGRG 1060Intro to ECE – Christopher Batten16 / 42

ECE OverviewWhat is Computer Engineering? Trends in Computer Engineering Computer Engineering DesignComputer EngineeringApplication Requirements vs. Technology ConstraintsENGRG 1060ApplicationAlgorithmProgramming LanguageOperating SystemInstruction Set ArchitectureMicroarchitectureRegister-Transfer LevelGate on Requirements As much processor compute as possible As much memory capacity as possible As much network bandwidth as possibleTraditionalTechnology Constraints Exponential scaling of resourcesIntro to ECE – Christopher Batten17 / 42

ECE OverviewWhat is Computer Engineering? Trends in Computer Engineering Computer Engineering DesignExponential Scaling for Processor ialProcessorPerformanceIntelPentium 410DEC Alpha21264Frequency(MHz)310MIPS R2KTypical Power(Watts)2101100101975 1980 1985 1990 1995 2000 2005 2010 2015Data partially collected by M. Horowitz, F. Labonte, O. Shacham, K. Olukotun, L. HammondENGRG 1060Intro to ECE – Christopher Batten18 / 42

ECE OverviewWhat is Computer Engineering? Trends in Computer Engineering Computer Engineering DesignExponential Scaling for Memory CapacityAdapted from [Itoh’07]ENGRG 1060Intro to ECE – Christopher Batten19 / 42

ECE OverviewWhat is Computer Engineering? Trends in Computer Engineering Computer Engineering DesignNetwork Peak Bisection Bandwidth (MB/s)Exponential Scaling for Network works(100-1000's Nodes)Bus-BasedInterconnectionNetworks(10's Nodes)3102101985ENGRG 106019901995Intro to ECE – Christopher Batten2000200520 / 42

ECE OverviewWhat is Computer Engineering? Trends in Computer Engineering Computer Engineering DesignExponential Scaling for Processor Compute/DollarAdapted from [Kurzweil’09]ENGRG 1060Intro to ECE – Christopher Batten21 / 42

ECE OverviewWhat is Computer Engineering? Trends in Computer Engineering Computer Engineering DesignExponential Scaling of Memory Capacity/DollarAdapted from [Kurzweil’09]ENGRG 1060Intro to ECE – Christopher Batten22 / 42

ECE OverviewWhat is Computer Engineering? Trends in Computer Engineering Computer Engineering DesignKey trends in the application requirements andtechnology constraints over the past decade haveresulted in a radical rethinking of theprocessors, memories, and networksused in modern computing systemsThree Key Trends in Computer Engineering1. Growing diversity in application requirements motivategrowing diversity in computing systems2. Energy and power constraints motivate transition tomultiple processors integrated onto a single chip3. Technology scaling challenges motivate new emergingprocessor, memory, and network device technologiesENGRG 1060Intro to ECE – Christopher Batten23 / 42

ECE OverviewWhat is Computer Engineering? Trends in Computer Engineering Computer Engineering DesignTrend 1: Bell’s LawRoughly every decade a new, lower priced computer class forms basedon a new programming platform resulting in new usage and industries810Supercomputers710Mainframes6Price in ons410310Personal ComputersHandhelds210Sensor NetworksInternet of Things110ENGRG 10601950196019701980Intro to ECE – Christopher Batten19902000201024 / 42

ECE OverviewWhat is Computer Engineering? Trends in Computer Engineering Computer Engineering DesignTrend 1: Growing Diversity in Apps & SystemsENGRG 1060Intro to ECE – Christopher Batten25 / 42

ECE OverviewWhat is Computer Engineering? Trends in Computer Engineering Computer Engineering DesignPower EnergyEnergy SecondOpOpsSecondPowerEnergyChip PackagingChip CoolingSystem NoiseCase TemperatureData-Center AirConditioningBattery LifeElectricity BillMobile DeviceWeightEnergy per OperationTrend 2: Energy/Power Constrain All Modern Systems100W WorkstationPower Constraint1W HandheldPower ConstraintPerformance (Ops/Second)ENGRG 1060Intro to ECE – Christopher Batten26 / 42

ECE OverviewWhat is Computer Engineering? Trends in Computer Engineering Computer Engineering DesignTrend 2: Power Constrains Single-Processor rocessorPerformanceIntelPentium 410DEC Alpha21264Frequency(MHz)310MIPS R2KTypical Power(Watts)2101100101975 1980 1985 1990 1995 2000 2005 2010 2015Data partially collected by M. Horowitz, F. Labonte, O. Shacham, K. Olukotun, L. HammondENGRG 1060Intro to ECE – Christopher Batten27 / 42

ECE OverviewWhat is Computer Engineering? Trends in Computer Engineering Computer Engineering DesignTrend 2: Transition to Multicore ProcessorsIntel Pentium 4Single monolithic processorCray XT3 Supercomputer1024 single-core processorsPPPPNNMMMMPPAMD Quad-Core OpteronFour cores on the same diePPPNMMMIBM Blue Gene QSupercomputerThousands of18-core processorsM M M MENGRG 1060PNMPPIntro to ECE – Christopher Batten28 / 42

ECE OverviewWhat is Computer Engineering? Trends in Computer Engineering Computer Engineering DesignTrend 2: Energy and Performance of MulticoresOut-of-Order pleSingle ProcDrginasewPoreSuperscalarw/ DeeperPipelines BcInMulticore EFDProcessor e (Tasks per Second)ENGRG 1060Intro to ECE – Christopher Batten29 / 42

ECE OverviewWhat is Computer Engineering? Trends in Computer Engineering Computer Engineering DesignTrend 2: Multicore Performance Scaling7Intel 48-CorePrototype106AMD 4-CoreOpteron105410DEC Alpha21264Frequency(MHz)310Parallel Pentium 410Transistors(Thousands)MIPS R2K2Typical Power(Watts)1Numberof Cores10100101975 1980 1985 1990 1995 2000 2005 2010 2015Data partially collected by M. Horowitz, F. Labonte, O. Shacham, K. Olukotun, L. HammondENGRG 1060Intro to ECE – Christopher Batten30 / 42

ECE OverviewWhat is Computer Engineering? Trends in Computer Engineering Computer Engineering DesignTrend 3: Emerging Device Technologies?Vertical MOSFETsGrapheneCarbon NanotubesNanorelaysQuantum ComputingMolecular ComputingMemristersPhase-Change MemSpintronics3D IntegrationNanophotonicsAdapted from [Kurzweil’09]ENGRG 1060Intro to ECE – Christopher Batten31 / 42

ECE OverviewWhat is Computer Engineering? Trends in Computer Engineering Computer Engineering DesignKey trends in the application requirements andtechnology constraints over the past decade haveresulted in a radical rethinking of theprocessors, memories, and networksused in modern computing systemsThree Key Trends in Computer Engineering1. Growing diversity in application requirements motivategrowing diversity in computing systems2. Energy and power constraints motivate transition tomultiple processors integrated onto a single chip3. Technology scaling challenges motivate new emergingprocessor, memory, and network device technologiesENGRG 1060Intro to ECE – Christopher Batten32 / 42

ECE OverviewWhat is Computer Engineering? Trends in Computer Engineering Computer Engineering DesignActivity #2: Sorting with a Parallel ProcessorI Application: Sort 32 numbersI Simulated Parallel Computing System. Processor: Group of 2–8 students. Memory: Worksheet, scratch paper. Network: Communicating between studentsI Activity Steps.1.2.3.4.5.6.ENGRG 1060PPPPNM M M MDiscuss strategy with groupWhen instructor starts timer, master processor flips over worksheetSort 32 numbers as fast as possibleLookup when completed and write time on worksheetMaster processor only raises handWhen everyone is finished, then analyze dataIntro to ECE – Christopher Batten33 / 42

ECE OverviewWhat is Computer Engineering? Trends in Computer Engineering Computer Engineering DesignActivity #2: DiscussionunsortedDistributeNetworkSort 4 NumbersProc/MemNetworkMerge Phase 1 merge 4 4 8Proc/MemNetworkProc/MemNetworkProc/MemNetwork sortedENGRG 1060AlgorithmCommunicationLoad BalancingFault ToleranceDataset SizeIntro to ECE – Christopher BattenMerge Phase 2 merge 8 8 16Merge Phase 3 merge 16 16 3234 / 42

ECE OverviewWhat is Computer Engineering?Trends in Computer Engineering Computer Engineering Design Talk OutlineECE OverviewWhat is Computer Engineering?Trends in Computer EngineeringComputer Engineering DesignENGRG 1060Intro to ECE – Christopher Batten35 / 42

ECE OverviewWhat is Computer Engineering?Trends in Computer Engineering Computer Engineering Design What do computer engineers actually do?General ScienceComputer EngineeringDiscover truthsabout natureExplore design spacefor a given systemAsk questionabout natureDesign and buildinitial systemConstructhypothesisAsk questionabout systemTest withexperimentModify system orbuild/design alternativeAnalyze results anddraw conclusionsTest with experimentto compare alternativesAnalyze results anddraw conclusionsENGRG 1060Intro to ECE – Christopher Batten36 / 42

ECE OverviewWhat is Computer Engineering?Trends in Computer Engineering Computer Engineering Design How do we design something so incredibly complex?Computer EngineeringExplore design spacefor a given systemDesign and buildinitial systemAsk questionabout systemModify system orbuild/design alternativeTest with experimentto compare alternativesFighter Airplane: 100,000 partsIntel Sandy Bridge E: 2.27 Billion transistorsAnalyze results anddraw conclusionsENGRG 1060Intro to ECE – Christopher Batten37 / 42

ECE OverviewWhat 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 topoI Design Methodologies. Incremental designPPPP. Test-driven designNM M M MENGRG 1060Intro to ECE – Christopher Batten38 / 42

ECE OverviewWhat is Computer Engineering?Trends in Computer Engineering Computer Engineering Design Incremental Design GRG 1060Intro to ECE – Christopher Batten39 / 42

ECE OverviewWhat is Computer Engineering? Computer Engineering Design Trends in Computer EngineeringTest-Driven DesignI Test Types.Unit testsDirected vs. random testsWhitebox vs. blackbox testsIntegration testsI Goal is to write tests firstthen implement design topass these testsPPPPNM M M MI Write tests for higher level ofabstraction, refine implementation until passes tests, add new testsI Capture design bugs with new testsENGRG 1060Intro to ECE – Christopher Batten40 / 42

ECE OverviewWhat is Computer Engineering? Computer Engineering Design Trends in Computer EngineeringSingle-Core to Multi-Core Design ExampleComputer EngineeringExplore design spacefor a given systemDesign and buildinitial systemAsk questionabout systemModify system orbuild/design alternativePNOur "experiments" duringthe previous activitiesillustrate the design processMPPPPNM M M MTest with experimentto compare alternativesAnalyze results anddraw conclusionsENGRG 1060Intro to ECE – Christopher Batten41 / 42

ECE OverviewWhat is Computer Engineering?Trends in Computer EngineeringComputer Engineering DesignTake-Away PointsI ECE is a broad field focused on the studyand application of electricity, microelectronics, and electro-magnetismI Computer engineering is the process ofdesigning abstraction and implementationlayers to meet application requirementswithin physical technology constraintsI We are entering an exciting new era ofcomputer engineering with emergingapplications and systems, a remarkable shifttowards mainstream parallel processing,and significant technology challengesENGRG 1060Intro to ECE – Christopher Batten42 / 42

Bio-Electrical Engineering Micro-Electro-Mechanical Devices Opto-Electrical Devices Fusion and Plasma Physics Image, Audio, Video Processing Information Theory Smart Grid and Smart Buildings Systems and Synthetic Biology Atmospheric Science Control Theory Robot