190 likes | 306 Views
Integrating Hardware Experiences into a Computer Architecture Core Course. Fred Martin Computer Science University of Massachusetts Lowell. Motivations. Simulation is important Simulation lets you build more complex designs in limited time, but simulation-only is not fun
E N D
Integrating Hardware Experiences into a Computer Architecture Core Course Fred Martin Computer Science University of Massachusetts Lowell
Motivations • Simulation is important • Simulation lets you build more complex designs in limited time, but • simulation-only is not fun • interesting problems are at the edges • Understanding low-level provides basis for understanding higher abstractions
More Motivations • I like hardware • Hardware is fun • Hardware plus software is really fun • Everyone should get to play with hardware at least once • I need students who can do hardware
Context • UML-CS dept has history of doing hardware • UML has an ECE dept, but we’re separate • CS has 3-semester Logic Design, Org, Arch sequence • When I joined dept in 2002 there was no core hardware experience for majors
Constraints • No dedicated lab space • Can not add lab units to course • Some money but not lots ($50/kit x 35 students) • Can’t extract lab-kit money from students
Solution • Nearly all students have computers; let’s use them • Can also use our computer labs • Give them everything they need to build (and hopefully debug) logic + embedded CPU designs • Answer: A take-home lab kit!
Custom “UML 305DEV” Board +5v supply serial out serial in 8 LED inputs 8 switch ins piezo logic probe gnd RS-232 to TTL level shifter Parts + Board: $25
Digital Logic Lab • Build oscillator, counter/divider, view signals • Mystery chips: you are given one 14-pin and one 16-pin DIP. Figure out which member of the 74HCxx series it is! • A review of digital logic topics, but with more emphasis on understanding signals, including high impedance state.
State Machine Lab • Implement state machine with register, logic equations, minimization • Actually implement with latch chips • Program a LEGO robot to follow a line with a 4-state, 1-sensor solution
HC11 Boot Lab • Install and configure tools on your PC (Java source provided) • Get HC11 to load 3-line program and light an LED • Introduce addressing modes, memory map, bootloader • Relatively little wiring needed
Why 68HC11? • Simple, 8-bit processor with standard von Neumann architecture • 16-bit external memory interface • Serial boot mode • Available in DIP package • I know it well
HC11 Beep Lab • Generate particular tones on HC11 output pin; listen to them with piezo • Doubly-nested delay loops • Many levels of time: usec instruction clock, millisec half-wave delay, audio frequencies • Introduced scopes when later had a lab • Timing stuff is particularly valuable and new to students
HC11 Address Decoding • Build combo logic to decode 4 bits of addr and allow HC11 to write to a latch • Test design by running provided code and seeing bit flash pattern on latch outputs • Also do paper design of RAM addressing • Advanced for most students: hard to debug, possible for wrong designs to work
Rest of Course: CS/APP • Switched text to Bryant/O’Hallaron’s Computer Systems: A Programmer’s Perspective (2003) • ORG: by decompiling Linux executables—“Binary Bomb Lab” • ARCH: based on “Y86” pedagogical processor simulator • Cache treatment with “Perflab”—improve stride in 2D image processing app
Discussion & Conclusions • Review/revisiting with a fresh perspective is good • Basic design (take-home kits + labs themselves) is sound • Labs are fairly modular and could be adopted by others • Later revs of class left out Logic Lab (made room for Perf Lab)
More Discussion • Some students like it a lot; others are annoyed • I repeatedly refer back to HW labs in core arch material • Would love to do arch material with FPGA implementations • Best measure of success: students recruited to my research lab, and those graduated in HW-oriented industry jobs
Final Pitch • Have successfully handed off course to dept colleague • I am happy to give away all course material for academic use, including: • PCB artwork for “305DEV” board • Parts lists • Java-based HC11 tools • Labs • Exams • Please contact me if you are interested! fredm@cs.uml.edu