Introduction to Microcomputer Systems

advertisement
Introduction to Microcomputer Systems
• Outline
–
–
–
–
–
–
–
–
–
–
–
What is a Microcomputer?
Types of Microcomputers
Modular Microcomputer
Clock and CPU Control Circuits
Address Decoder
Address and Data Bus Buffers
Buffer Control
Bus Arbitration Control
Memory Management
Memory Module
Peripherals Module
• Goal
– Understand components of modular microcomputer
• Reading
– Microprocessor Systems Design, Clements, Ch. 1
What is This Course?
• Learn microcomputer systems
– hardware organization
– assembly code and C programming
– hardware interfacing
• Hardware/software combinations
– the essence of computer engineering
• Preparation for CPSC 483
– build HW/SW projects using same boards
Course Organization
• Lectures
– fundamentals of microcomputer systems
– details of Motorola ColdFire single-board computer
» used in labs
• Labs
–
–
–
–
–
learn ColdFire hardware
learn how to program the board in C and assembler
learn how to control ColdFire resources
learn how to add and interface hardware peripherals
learn how to implement applications
References
• Microprocessor Systems Design, 68000 Hardware,
Software, and Interfacing, Third Edition, Alan
Clements, PWS-KENT, 1997.
– text, in bookstore
• Web Site
– lecture notes
– lab manual
• Motorola MC68000 Family References
– in lab, on Web site
• Motorola ColdFire References
– in lab, on Web site
• Chip Data Sheets
– in lab, on Web
Grading
•
•
•
•
Midterm
Final
Labs
HW, Project, Quizzes
25%
25%
35%
15%
Topics
•
•
•
•
•
•
•
•
•
•
Microcomputer systems
68k programmer model
68k signal description
68k memory hierarchy
68k instruction set - briefly
68k C and assembly code programming
Static RAM
Memory read and write cycles
Address decoding
Exceptions - interrupts, exceptions
Topics
•
•
•
•
•
•
I/O fundamentals
Parallel I/O & Timers
Serial I/O
Microcomputer buses
Dynamic RAM - organization and timing
Microcomputer systems design
Assignment
• Read Chapters 1, 2.1-2.3, 7.5, 7.6
–
–
–
–
–
Microcomputers
68000 programmer model
Cache memory
Virtual Memory
680X0 architecture - ColdFire is 68060 descendent
• Form lab teams
– 2 person teams for lab assignments
» Turn in one lab report, get same grade
– Form teams by first lab
Assignment (cont.)
• If you have PC with CD-ROM drive
–
–
–
–
–
get CDROM out of your book
try to install cross-assembler and C compiler on your PC
see if they will assemble and compile a simple program
you can then do coding at home and bring floppy to lab
note we will use GNU C compiler in class
• Everyone
–
–
–
–
–
labs start second week
read lab assignment in advance
bring some PC floppies to lab
end of this week - check that your ID will access HRBB 217
make sure you have Neo account for class email
What is a Microcomputer?
• Microcomputer (uC) = microprocessor-based
computer
• Microprocessor (uP) = single-chip or chipset CPU
• Chipset - few closely-interacting chips
– 68020 - integer+control, MMU, floating point
– VAX 8200 - integer+control+MMU, microcode, floating point
• All computers today have single-chip CPU
– off-chip delays force all high-speed paths on chip
– 2.26+ GHz P4
» off-chip path is 500 MHz
» 2 levels of memory cache on chip
– “chipset” is interface chip for CPU
» memory interface, mouse, keyboard, graphics, USB, ...
Types of Microcomputers
• Single board computer (SBC)
– usually an embedded computer - buried inside a product
• Features
– dedicated to a single fixed task
– minimum hardware to support the task
» minimize cost, power, weight, size
• Examples
– PostScript printer, ATM, microwave oven, cell phone
• Microcontroller
– board shrunk to single chip - most common uC
– CPU, memory, I/O
– Examples: ARM, 68HC11, 8051
Types of Microcomputers
• Modular microcomputer
– modules connected by a bus
– usually a general-purpose computer
• Features
– used for wide range of applications
– flexible hardware to support application range
» can mix and match modules as needed
» example - add more memory modules
• Examples
– personal computer, factory controller
Modular Microcomputer
• System = modules linked by system bus
– system bus - data transfer between modules
– local bus - data transfer within module
• Advantages
– standard modules assembled to form computer
– large number of module types available
– can easily customize computer to application needs
• System bus standards
– bus specification agreed upon by all manufacturers
– often first a proprietary bus
» Motorola Versabus => VME bus
– now industry committees agree to bus standards
Figure 1.1
System Bus
Buffers
CPU
MMU
Local Memory
Clock
Bus Arbitration
CPU Module
Buffers
Buffers
DRAM
DRAM Ctl
Addr Decode
Parallel I/O
Serial I/O
Timer
Disk Cntlr
USB
Firewire
...
Memory Module
Peripherals Module
Clock and CPU Control
• Time reference to CPU.
– square or sine wave
– 1000 MHz for 500 MHz Alpha
• Also forms master clock used for rest of system
– synchronize bus, other modules
• Power-on reset
– force CPU to initialize and execute start-up routine
» bootstrap code
– initiated when power first turned on
» can also initiate manually - the reset button
Address Decoder
• Divide up address space
– allocate to individual memory units
• Divide up among memory chips
– e.g. split 64 MB across 32 16 Mb DRAM chips
• Partition physical memory locations
– local memory on CPU board
» SRAM, EEPROM, Flash, ROM
» data transfer on local bus
» accessible only to CPU
» allows CPU module to be independently tested
– main memory in memory module
» data transfer on system bus
Address and Data Bus Buffers
• uP output pins can only drive small load
– a few nearby chips
• Use buffers or bus drivers to drive large buses
– chips with big transistors, little logic
– shield uP from load
• Interface between uP and local and system buses
• Need buffer control to coordinate drivers
Buffer Control
• Determines operating mode of bus drivers and
receivers
– only turn on drivers when they need to send data
– e.g. disable system bus drivers during local memory access
• Only one device can drive the bus at a time
– tristate - buffer goes into high impedance state
» like an open circuit
• Operations on parts of a word
– e.g. 32-bit uP wants to write one byte or a 16-bit word
– memory has byte addresses
• Byte/word control turns on drivers in part of bus
Bus Arbitration Control
• Master and slave devices
– CPU is master
– memory and peripherals are slaves
– CPU controls all bus usage
• Multi-master system
– multiple devices can access bus
– DMA (direct memory access) controller
» moves data between memory and peripheral
» autonomous of CPU
– multiprocessor - multiple uPs
• Need protocol (rules) for bus access
–
–
–
–
one at a time, fair access, timely access
in hardware for speed
master - currently controlling bus
slave - devices accessed by master
Memory Management
• Translate uP logical address to memory physical
address
– logical address - any address in uP architecture address space
» issued by program
– physical address - actual memory location
• Virtual memory
– make small physical memory look like large logical memory
– store part of data on disk
– system vs. user protection domains
• Location independence
– programmers use logical address
– operating system figures out what physical address to use
• Memory management unit (MMU)
– part of CPU today - 68030, 486, and later
Memory Module
• Types of memory
– read/write random access memory (RAM)
– read-only memory (ROM)
» programmed when manufactured
» use for bootstrap programs, fixed code
» example: PostScript interpreter
– EPROM, EEPROM, flash
» program once, or once in a while
» use for program storage, preferences
• Interface
– bus interface - buffers, buffer control
– address decoders
– refresh logic
Memory Module (cont.)
• Dynamic RAM (DRAM)
– lowest cost/bit - 1 transistor+capacitor per bit
– used for large main memories
– must refresh bits every few milliseconds
• Static RAM (SRAM)
–
–
–
–
faster
more expensive - 6 transistors per bit
often used for cache memory
often used for battery applications
» holds data at very low power
Peripheral Module
• Interfaces to outside world
• Serial input/output (I/O)
– terminal line
• Parallel I/O
– printer cable
• Timer
– measure time
– generate series of pulses - e.g. interrupt uP at fixed interval
– used for real-time systems
• Disk controller
– disk operations
– data format conversion
• Network interface
– Ethernet, IEEE 488 bus, etc.
MVME 162
MVME 167
Microcontroller
912B32 - Computer on a Chip
•
•
•
•
•
•
•
•
•
•
•
0.75 KB byte-erasable EEPROM
32 KB flash EEPROM
1 KB SRAM
8-channel 8-bit A/D converter
8-channel 16-bit timer
4-channel 8-bit pulse width modulator
Asynch/synch serial lines
Interrupt, watchdog, clock timers
Wait, stop modes
Hardware breakpoints
Muxed 16-bit address/data bus
ColdFire MCF5206e
Download