Computer Architecture Education: Black Boxes Proved Harmful

Slides:



Advertisements
Similar presentations
Syllabus Instructor: Dr. Wesam Ashour
Advertisements

CPU Review and Programming Models CT101 – Computing Systems.
Microprocessor Performance, Phase II Yale Patt The University of Texas at Austin STAMATIS Symposium TU-Delft September 28, 2007.
1-1 Welcome to: CSC225 Introduction to Computer Organization Paul Hatalsky.
COMP3221: Microprocessors and Embedded Systems Lecture 2: Instruction Set Architecture (ISA) Lecturer: Hui Wu Session.
Prof. John Nestor ECE Department Lafayette College Easton, Pennsylvania ECE Computer Organization Lecture 23 - Course.
Midterm Wednesday Chapter 1-3: Number /character representation and conversion Number arithmetic Combinational logic elements and design (DeMorgan’s Law)
CS 300 – Lecture 23 Intro to Computer Architecture / Assembly Language Virtual Memory Pipelining.
Overview The von Neumann Machine - the programmable digital computer Introducing the LC-3 Computer - A “toy” computer for us to learn from Computer machine.
Overview von Neumann Model Components of a Computer Some Computer Organization Models The Computer Bus An Example Organization: The LC-3.
1 Instant replay  The semester was split into roughly four parts. —The 1st quarter covered instruction set architectures—the connection between software.
Parul Polytechnic Institute Subject Code : Name Of Subject : Microprocessor and assembly language programming Name of Unit : Introduction to Microprossor.
The von Neumann Model – Chapter 4 COMP 2620 Dr. James Money COMP
Computer Architecture Lecture 01 Fasih ur Rehman.
Computer Organization
1 Layers of Computer Science, ISA and uArch Alexander Titov 20 September 2014.
1 A Simple but Realistic Assembly Language for a Course in Computer Organization Eric Larson Moon Ok Kim Seattle University October 25, 2008.
Computers organization & Assembly Language Chapter 0 INTRODUCTION TO COMPUTING Basic Concepts.
Housekeeping 1.teams—end of class 2.Example verilog code (alter) 3.Example altera report 4.Lab Monday: you will be asked to show: -- one or more reports.
COMP3221 lec04--prog-model.1 Saeid Nooshabadi COMP 3221 Microprocessors and Embedded Systems Lecture 4: Programmer’s Model of Microprocessors
(1) ECE 3056: Architecture, Concurrency and Energy in Computation Lecture Notes by MKP and Sudhakar Yalamanchili Sudhakar Yalamanchili (Some small modifications.
CS1104 – Computer Organization PART 2: Computer Architecture Lecture 12 Overview and Concluding Remarks.
ARM for Wireless Applications ARM11 Microarchitecture On the ARMv6 Connie Wang.
1 Instruction Set Architecture (ISA) Alexander Titov 10/20/2012.
LC-3, x86, or ???: The FIRST ISA for Students Yale Patt The University of Texas at Austin WCAE Workshop, ISCA June 9,2007.
Computer Architecture 2 nd year (computer and Information Sc.)
ECE 353 Lab 2 Pipeline Simulator. Aims Further experience in C programming Handling strings Further experience in the use of assertions Reinforce concepts.
Microarchitecture. Outline Architecture vs. Microarchitecture Components MIPS Datapath 1.
Dept. of Computer Science - CS6461 Computer Architecture CS6461 – Computer Architecture Fall 2015 Lecture 1 – Introduction Adopted from Professor Stephen.
Page 1 Computer Architecture and Organization 55:035 Final Exam Review Spring 2011.
1 TM 1 Embedded Systems Lab./Honam University ARM Microprocessor Programming Model.
Computer Organization IS F242. Course Objective It aims at understanding and appreciating the computing system’s functional components, their characteristics,
CS150: Computer Organization and Architecture Michael D. Wilder, Ph.D.
Introduction CSE 410, Spring 2005 Computer Systems
What’s going on here? Can you think of a generic way to describe both of these?
Computer Organization Exam Review CS345 David Monismith.
Computer Organization and Architecture Lecture 1 : Introduction
General information Course web page:
Computer Organization and Machine Language Programming CPTG 245
15-740/ Computer Architecture Lecture 3: Performance
A Closer Look at Instruction Set Architectures
CSE 410, Spring 2006 Computer Systems
Microprocessor and Assembly Language
CS161 – Design and Architecture of Computer Systems
A Closer Look at Instruction Set Architectures
A Closer Look at Instruction Set Architectures: Expanding Opcodes
ECE 353 Lab 3 Pipeline Simulator
Foundations of Computer Science
TigerSHARC processor General Overview.
COSC121: Computer Systems
Microprocessor & Assembly Language
CET360 Microprocessor Engineering: Course Intro
The Von Neumann Model Basic components Instruction processing
What time is it?. What time is it? Major Concepts: a data structure model: basic representation of data, such as integers, logic values, and characters.
Prof. Onur Mutlu Carnegie Mellon University Fall 2011, 9/30/2011
What is Computer Architecture?
Introduction to Microprocessor Programming
COMS 361 Computer Organization
Overview Prof. Eric Rotenberg
Welcome to: CSC225 Introduction to Computer Organization
What is Computer Architecture?
What is Computer Architecture?
Computer Architecture
Course Outline for Computer Architecture
A Level Computer Science Topic 5: Computer Architecture and Assembly
Introduction to Computer Systems Engineering
ELEC / Computer Architecture and Design Fall 2014 Introduction
CSE378 Introduction to Machine Organization
Chapter 4 The Von Neumann Model
Presentation transcript:

Computer Architecture Education: Black Boxes Proved Harmful Yale N. Patt The University of Texas at Austin Workshop on Computer Architecture Education Toronto, June 24, 2017

What I want to do today Point out a number of black box education examples and the problems of the black box approach My approach in the freshman course My approach in the senior course My approach in the graduate course

Examples Trace driven Simulation Cache pollution vs cache prefetching Actual benefit of branch prediction (NOT pred. accuracy) Direct mapped caches vs. Set associative caches Which has the faster cycle time? FPGAs We understand: when flexibility trumps performance What about cost: area, time, energy – how much? Machine Learning See it works! How does it work? Why does it work? A REAL example with a late stage PhD student Are we asking for a real catastrophe? SimplScalar Performance due to bugs

On the other hand.. Picasso vis a vis Velasquez Norm Jouppi et.al. vis a vis Google’s TPU

The Freshman Course Start with what they “know” The transistor as light switch Not quantum mechanics Choose a computer model that is simple (The LC-3) As the genius said: simple, but still rich Continually build on what they know Continually raising the level of abstraction Memorizing as little as absolutely necessary Trying very hard to not introduce magic

The Motivated Bottom-up Approach Overview 12. Transition to C 13. Programming in C 8. Programming and Debugging 11. Physical I/O, traps, interrupts 10. Data Structures (stacks, linked lists, character strings, trees) 9. Assembly Language programming 2. Operations on bits, bytes (arithmetic, logical) 7. The LC-3 Instruction set architecture 6. The Von Neumann model 5. The finite state machine 4. Digital Logic 3. The transistor

7

8

The ISA

The Data Path

The State Machine

Some observations At Michigan, from a Mechanical Eng’g Professor: I want my students to take your course I can teach them vibration, friction, etc. They also need to know how computers work There are 55 microprocessors in every new car Students I talk to in my freshman course at UT Intro to Computing, required of all ECE and BioMed majors I teach it every other year 388 freshmen in Fall, 2015 (most with super AP credit)

What a Computer is to an Engineer (and not just a Computer Engineer) A tool used to solve problems (e.g., MATLAB) Computers process algorithmically Computers process numbers An embedded processor that controls a system (airplane, factory, heart monitor, traffic flow) Sensors Actuators Functions Concept of State

What ALL engineers need to know in 2017 (in addition to Physics and Math) How the computer works How the numbers are represented How an algorithm “works” on a computer From sensors (inputs) via “programs” to actuators (outputs)

What an engineer does not need a course in Excel Word Web Browsing Rote learning of programming

Some comments on my choice of the LC-3 First, I wanted an anti-black_box. Something we could make absolutely concrete A subset of a real ISA is not without glitches A clean sheet of paper can guarantee pedagoguy We can still get the “wow” effect (on a Simulator) Students can debug their own programs We can still build on this in later courses

LC-3: What it has, and what it doesn’t have 8 registers, NZP condition codes, 15 opcodes, 16 bit address space Two addressing modes (PC+offset, Reg+offset) Privileged memory Memory-mapped I/O What we left out Endian-ness Lots of data types (no floats, no bytes, only 16-bit integers) Lots of addressing modes All but 15 essential opcodes Resisting pressure for MUL, SHF, ADDC

What I learned about students Freshmen can handle serious meat Students don’t need glitz Computer architecture can begin with freshmen Students can debug their own programs If you get rid of the black box so they know what’s going on

The Senior Course Lectures attempt to emphasize fundamentals Features in various ISAs, Microarchitectures Physical memory, Virtual memory, caches Process state, exceptions, interrupts Pipelining, Branch Prediction Out-of-order execution, in-order retirement Single-thread and multi-thread parallelism Cache coherence, memory consistency Labs attempt to reinforce selected lecture topics (LC-3b) Lab 1: Write a program in LC-3b Assy Lang, and an Assembler Lab 2: Provide control signals: datapath, state machine, eq Lab 3: Add exception handling Lab 4: Add virtual memory Lab 5: Pipelined design

The LC-3b ISA We added virtual memory The NOT became the XOR (retaining compatibility!) Word addressing  Byte addressing Ergo, endian-ness LDI, STI were scrapped A comprehensive SHF instruction was added

The Graduate Course The term project: Implement an ISA (subset of x86) Team of three students, project worth half the grade Start with a clean sheet of paper Structural level verilog Students decide what to put into their design Students responsible for data path, state machine, control signals, buses, cache and memory, I/O Students decide what accelerators What it will do to cycle time (teams push cycle time) What interconnect will be required How many stages in the pipeline Decode: One or two cycles? What effect on performance (e.g., misprediction penalty)?

Finally, In my view, black boxes = magic Magic impedes fundamental understanding Lack of understanding limits how high you can soar …and that is harmful!

Thank you!