ecse 426 microprocessor systems
TRANSCRIPT
1
ECSE 426 Microprocessor Systems
Zeljko Zilic
Room 536 McConnell [email protected]/~zeljko
3-Jan-06 ECSE 426Microprocessor Systems
MicroprocessorsEnabling technology for general purpose computers and embedded systems
Really, lots&lots of things nowadays
Foundation for software-intensive systemsData processor - arithmetic, logical, symbolic or application-specific operations
Architectural view: ALUs, registers, etc.Circuit view: registers, interfaces, busesProgrammer’s view: assembler instructions
2
3-Jan-06 ECSE 426Microprocessor Systems
Computer System Types
3-Jan-06 ECSE 426Microprocessor Systems
Computers and Applications
Deciding factors: CostSizePowerQuantity
3
3-Jan-06 ECSE 426Microprocessor Systems
Embedded System Importance
Ubiquitous processor-based control systemsDevelopment easier than with alternative technologies
Makes products competitive: features AND priceEnabling technology for many new productsLikely source of jobs for ECE graduates
3-Jan-06 ECSE 426Microprocessor Systems
Embedded Systems
They are just about everywhere
From toothbrush to space shuttle
Incarnations of generic computer systems
Sometimes, specialized Input/Output
ROMProcessor
Inputinterface
Input keys Door open
Bus
Outputinterface
Magnetron Fan
Displays Light
Speaker
RAM
EMBEDDED PROCESSOR CHIP
Microwave OvenWhat is this diagram showing?
4
3-Jan-06 ECSE 426Microprocessor Systems
Another Example - Camera
Computer system with:Image controlHardware (lenses, motors)Interfaces
Added sophistication to consumer electronics
Expandability (of functions)Connectivity
Userswitches
Computerinterface
Imagestorage
LCDscreen
Flashunit
A/Dconversion
Opticalsensors
Systemcontroller
Motor
Lens
Cable to PC
3-Jan-06 ECSE 426Microprocessor Systems
Supercomputers: Earth Simulator35.86 Tflop/s (#4), Footprint — 34,000 ft2 (4 tennis courts x 3 floors)10.0 MW!
ProcessorsSwitchesDisksCable FloorAC Floor
http://www.es.jamstec.go.jp/esc/eng/index.html
Crossbar Interconnection Network83000 Copper Cables
1800 Miles of Cable
High InterprocessorLatency(11 in = 1ns)
Diameter
5
3-Jan-06 ECSE 426Microprocessor Systems
Views of Computer Systems
Levels of abstractionLogic Level - Circuits
Logic functions implemented by gatesArchitectural Level - Microarchitecture
Operations performed by resourcesInstruction Set Level - Instructions
Program executionOperating System Level - Complete system
System operation
3-Jan-06 ECSE 426Microprocessor Systems
Layered Computer Architecture
Concept necessary for complex systems
e.g., networking, large software systems etc.
6
3-Jan-06 ECSE 426Microprocessor Systems
Layered Computer Systems
Includes hardware and software
User programsOperating systemInstruction SetArchitectureHardware
3-Jan-06 ECSE 426Microprocessor Systems
Computer History
WWII effortUK(USA)
Post-WWIICommercial development
IBMDECCraySun
7
3-Jan-06 ECSE 426Microprocessor Systems
Von Neumann Machine
Princeton IAS40-bit memory word20-bit instruction word
Loads “left” and “right” instruction at once
3-Jan-06 ECSE 426Microprocessor Systems
Computer Organization
ProcessorMicroprocessor
MemoryPeripheralsCommon Bus
8
3-Jan-06 ECSE 426Microprocessor Systems
Example: PC PlatformDriving modern technologies – economy of scaleHardware
ProcessorsBusesMemoryPeripherals
SoftwareOS’sApplications
3-Jan-06 ECSE 426Microprocessor Systems
Basic Parts
Processor, memory & IO
I/OProcessor
Output
Memory
InputandArithmetic
logic
Control
9
3-Jan-06 ECSE 426Microprocessor Systems
Common Processors
Still Von Neumann architecture
Arithmetic-logic unitRegistersAuxiliary registers
3-Jan-06 ECSE 426Microprocessor Systems
Processor Execution - Java codepublic class Interp {static int PC; // program counter holds address of next instrstatic int AC; // the accumulator, a register for doing arithmeticstatic int instr; // a holding register for the current instructionstatic int instr_type; // the instruction type (opcode)static int data_loc; // the address of the data, or -1 if nonestatic int data; // holds the current operandstatic boolean run_bit = true; // a bit that can be turned off to halt the mapublic static void interpret(int memory[ ], int starting_address) {PC = starting_address;while (runbit) {
instr = memory[PC]; // fetch next instruction into instrPC = PC + 1; / / increment program counterinstr_type = get_instr_type(instr); // determine instruction typedata_loc = find_data(instr, instr_type);// locate data (-1 if none)if (data_loc >= 0) // if data_loc is -1, there is no operand
data = memory[data_loc]; // fetch the dataexecute(instr_type, data); //execute instruction}
}private static int get_instr_type(int addr) { ... }private static int find_data(int instr, int type) { ... }private static void execute(int type, int data){ ... }}
10
3-Jan-06 ECSE 426Microprocessor Systems
Basic Concepts - PipeliningMakes processor run at high clock rate
But might take more clock cycles
Trick: overlap execution
Some overhead – first few instructions
3-Jan-06 ECSE 426Microprocessor Systems
Other Speedups – Multiple Units
Bottlenecks – execution in single pipeline units
ALU, especially floating point
Resolution – provide multiple units
11
3-Jan-06 ECSE 426Microprocessor Systems
Superscalar Processors
Common solution for modern processorsMultiple execution units
3-Jan-06 ECSE 426Microprocessor Systems
Memory
Hierarchy of memory unitsSpeed vs. sizeSolutions
CachingVirtual memory
12
3-Jan-06 ECSE 426Microprocessor Systems
The Memory Latency Wall
Microprocessor Clock2000 — 1.0 GHz2001 — 1.6 GHz2002 — 2.6 GHz2003 — 4.1 GHz2004 — 10.1 GHz2005 — 16.2 GHz
Actual 2005 — 3+ GHz
Microprocessor Clock2000 — 1.0 GHz2001 — 1.6 GHz2002 — 2.6 GHz2003 — 4.1 GHz2004 — 10.1 GHz2005 — 16.2 GHz
Actual 2005 — 3+ GHz
3-Jan-06 ECSE 426Microprocessor Systems
Challenges: Performance at ScaleAdvanced simulation and modeling apps
PetascaleChallenges
Memory Wall
Conquering Terascaleproblems of today
Beware being eaten alive by the petascaleproblems of tomorrow.
Drawing by Thomas Zacharia (ORNL)
Drawing by Thomas Zacharia (ORNL)
13
3-Jan-06 ECSE 426Microprocessor Systems
Performance at ScaleAdvanced simulation and modeling apps
PetascaleChallenges
Memory Wall
Conquering Terascaleproblems of today
Beware being eaten alive by the petascaleproblems of tomorrow.
Drawing by Thomas Zacharia (ORNL)
Drawing by Thomas Zacharia (ORNL)
The memory wall (von Neumann bottleneck) —the disparity between
Processor clock rates and memory cycle times (“locally”)Remote access latencies seen “system wide”
The memory wall (von Neumann bottleneck) —the disparity between
Processor clock rates and memory cycle times (“locally”)Remote access latencies seen “system wide”
3-Jan-06 ECSE 426Microprocessor Systems
Memory Organization
Computer Word
Basic unit of acces
The same memory can be accessed in different ways
14
3-Jan-06 ECSE 426Microprocessor Systems
Little Endian vs. Big Endian
Matter of preference
Significant implications for compatibility
Some processors can have both
3-Jan-06 ECSE 426Microprocessor Systems
Standardization –ASCII set
Standardized way to use bits for encoding
CharactersDisplayCommunicationFile
15
3-Jan-06 ECSE 426Microprocessor Systems
Software Build and Load
Typical flow for desktop computer
CompilerCompiler
AssemblerAssembler
LinkerLinker
LoaderLoader
Read-WriteMemory (RAM)
Read-WriteMemory (RAM)
BootProcessBoot
Process
Object FilesExecutable Image File
Run-Time Library:
Operating System Image:
3-Jan-06 ECSE 426Microprocessor Systems
Example Program Creation & Run
Mainmemory
I/O bridgeBus interface
ALU
Register fileCPU
System bus Memory bus
Disk controllerGraphics
adapterUSB
controller
Mouse Keyboard Display Disk
I/O bus Expansion slots forother devices suchas network adapters
hello executable stored on disk
PC
16
3-Jan-06 ECSE 426Microprocessor Systems
Reading “Hello” Command
Mainmemory
I/O bridgeBus interface
ALU
Register fileCPU
System bus Memory bus
Disk controllerGraphics
adapterUSB
controller
Mouse Keyboard Display Disk
I/O bus Expansion slots forother devices suchas network adapters
hello executable stored on disk
PC
User types"hello"
3-Jan-06 ECSE 426Microprocessor Systems
Loading “Hello” Program
Mainmemory
I/O bridgeBus interface
ALU
Register fileCPU
System bus Memory bus
Disk controllerGraphics
adapterUSB
controller
Mouse Keyboard Display Disk
I/O bus Expansion slots forother devices suchas network adapters
hello executable stored on disk
PC
hello code
"hello,world\n"
17
3-Jan-06 ECSE 426Microprocessor Systems
Finally -Program Running
Mainmemory
I/O bridgeBus interface
ALU
Register fileCPU
System bus Memory bus
Disk controllerGraphics
adapterUSB
controller
Mouse Keyboard Display Disk
I/O bus Expansion slots forother devices suchas network adapters
hello executable stored on disk
PC
hello code
"hello,world\n"
"hello,world\n"
3-Jan-06 ECSE 426Microprocessor Systems
Embedded Systems - Languages Recent Statistics
0.0%
10.0%
20.0%
30.0%
40.0%
50.0%
60.0%
70.0%
80.0%
90.0%
Assembly C C++ Java Other
1998-19991999-2000
18
3-Jan-06 ECSE 426Microprocessor Systems
Course OverviewBackground
Computer Arch. BasicsMicroprocessors
Commercial: Pentium, Sparc; Potential: JavaEmbedded Processors
TI MSP430, ARM, PowerPCEmbedded System Design
HW and SW techniquesReal Time Systems
Techniques and Tools
3-Jan-06 ECSE 426Microprocessor Systems
Course ObjectivesUnderstand microprocessor-based systemsGet familiar with basic toolsSkills in machine interfacing, assembler and embedded C programmingDesign a sizeable embedded system
Previous projects: Music player, file swapping system, PDAs (with handwriting recognition), wireless data collection systems
Build teamwork skills
19
3-Jan-06 ECSE 426Microprocessor Systems
Reference Books
ReferenceA. Tanenbaum, Structured Computer Organization, 4th edition, Prentice-Hall, 1999.C. Nagy, Embedded Systems Design Using the TI MSP430 Series, Elsevier Science, 2003
B. Shriver and B. Smith, The Anatomy of a High-Performance Microprocessor - A Systems Perspective,IEEE Computer Society Press, 1998.C. Hamacher, Z. Vranesic and S. Zaky, Computer Organization, 5th edition, McGraw-Hill, 2002.
3-Jan-06 ECSE 426Microprocessor Systems
Academic Integrity
McGill University values academic integrity.
Therefore all students must understand the meaning and consequences of cheating, plagiarism and other academic offences under the Code of Student Conduct and Disciplinary Procedures (see http://www.mcgill.ca/integrityfor more information).
20
3-Jan-06 ECSE 426Microprocessor Systems
Finally: Grading Scheme
12% participation - 4 quizzesSchedule will be announced
38% laboratories40% project
3-Jan-06 ECSE 426Microprocessor Systems
Assessment
15Final Demo
5Lab Notes
10Demo18Experiment 1
1212Quizzes12Report
13Demo 140Project5Lab Notes10Demo15Experiment 3
10Demo15Experiment 28Report
Contribution to Final GradeEvaluations