UCR CS 122B: Advanced Embedded and Real-Time Systems, Winter 2003
Overview
Embedded systems include almost any computing system other than traditional
computers. Examples include cell phones, set-top boxes, traffic-light
controllers, alarm systems, automotive systems, etc. Embedded systems is
one of the fastest growing in computing, and quite exciting. In addition
to the catalog subjects below, we'll focus on team skills and effective
communication.
Catalog description : CS 122B. Advanced Embedded and Real-Time Systems. (5) Lecture, three hours; laboratory, six hours. Prerequisite(s): CS 122A. Further exploration of state- of-the-art aspects of building embedded systems, including real-time programming, synthesis of coprocessor cores, application-specific processors, hardware and software cosimulation and codesign, low-power design, reconfigurable computing, core-based design, and platform-based methodology.
Basic information
Instructor and office hours :
Frank Vahid
(vahid@cs.ucr.edu)
Tue 2:00 pm - 3:00 pm.
Office:
Surge 328
Teaching Assistant:
Greg Stitt
(gstitt@cs.ucr.edu)
Lecture :
Tue & Thu, 11:10 am - 12:30 pm
in
WAT 2141
Labs :
Mon & Wed 11:10 am to 2:00 pm in
Surge 173
Lab attendance is mandatory. You are
expected to stay in the lab for the entire lab session, working
on material related to this course. Part of your lab grade is
based on attendance and participation.
Books:
Required:
The Art of Designing Embedded Systems, J. Ganssle,
1st ed., 1999, Newnes Press, Butterworth-Heinemann.
Required:
Embedded Systems Design, Vahid/Givargis, 1st ed., 2002
J. Wiley and Sons.
Recommended:
Learn Java 2 in 21 Days , Laura Lemay and Rogers Cadenhead,
Sams; ISBN: 0672320614; 2nd edition (May 21, 2001), or any other
Java book with a good applet introduction. Note: online Java
source are also available.
Course grading:
Letter grades are roughly assigned according to the usual
90/80/70/60 rule: 90% and above correspond to an A,
80% and above to a B, 70% and above to a C, 60% and above to a D,
and less than 60% to an F. +/- grades will likely be given.
You are not competing against one another -- you can almost all
earn A's (and that has happened in the past), so work together
and help each other to succeed.
The grading will be based on the weighted sum of two components:
40% Lab component (excercises, presentations, assignments,
attendance, participation, exams if any)
60% Lecture component
15% Homeworks/quizzes/participation
20% Midterm
25% Final
To ensure minimum competency in both the principles and practice,
you must pass both components to pass the course;
likewise, you must achieve at least a C- in both components to
achieve a C- or better in the course.
Approximate Time Requirements:
This is a five-unit course. As such, you should expect
to spend the following approximate amount of time:
3 hours/week attending the lectures
6 hours/week attending the lab sessions
6 to 10 hours/week doing individual study
(readings, homeworks, programming, lab preparation, etc)
Please do not underestimate the time you will
need to spend on this course. These are real time amounts
spent on average by successful past students.
This course is the fourth in an upper-division sequence (with 120A,
120B, 122A preceding); thus, the course is designed for mature
students with good study habits. We'll cover a wide variety
of subjects in lectures, with students expected to study those
subjects extensively outside lecture. You should come to lecture
prepared not to just listen, but to think and to
participate. It's a lot of work, but you'll learn a lot
and hopefully have fun too.
Lecture Schedule
SUBJECT TO CHANGE
- Tu Jan 07: Introduction. Engineering can improve lives.
Simulating embedded systems before
building them -- defining the problem is half the solution.
HK1 assigned in class, due Th 1/9
Local respirator
company improves quality of life
- Th Jan 09: Simulating interactive embedded systems. VHDL discrete-event
simulation. Comparison with Matlab and Spice continuous
simulation. SystemC. Importance of threads/processes to keep
systems simple. Applets for graphical simulation.
Read ADES ch 1-3 by Tu, short quiz on Tu.
- Tu Jan 14: Quiz 1 on chpts 1-3
ADES chapters 1, 2 and 3: Capability Maturity Model. Productivity
enhancers. Software complexity.
Summary of software CMM  
- Th Jan 16: Introduction to Eblocks
- Tu Jan 21: Single-chip microprocessor/FPGA platforms (e.g. Triscend)
Article: The Softening of Hardware
- Th Jan 23: ADES chapter 4: Interrupts and real-time.
Software bit handling using masks.
- Tu Jan 28: ADES chapter 5: Firmware issues
- Th Jan 30: Midterm
- Tu Feb 04: Performance optimization
FYI: gprof information  
FYI: Karp's Turing Award lecture on
theoretical computer science
FYI: Amdahl's Law (from FOLDOC): (Named after Gene Amdahl) If F is the fraction of a calculation that is sequential, and (1-F) is the fraction that can be parallelised, then the maximum speedup that can be achieved by using P processors is 1/(F+(1-F)/P).
- Th Feb 06: Optimization, tradeoffs, Pareto points, gprof, laser and bit
reversal examples
- Tu Feb 11: UCR research in hw/sw codesign; System C
- Th Feb 13: Low power design
Mudge's Low Power paper
FYI: UCR work in low power cache via
configurable line size (ISVLSI'03) and
configurable ways (ISCA'03)
FYI: UCR research in
hw/sw partitioning for low energy (D&T'02)
- Tu Feb 18: Control (ESD ch 9)
- Th Feb 20: Control (ESD ch 9)
- Tu Feb 25: ADES Chapter 6: Hardware issues
Making the Best of those
Extra Transistors
- Th Feb 27: Quiz on control
ADES Chapters 7 and 8;
Testing
- Tu Mar 04: More on Testing/Debug
- Th Mar 06: Safety
- Tu Mar 11: Misc., Review
- Th Mar 13:
- Final Th Mar 20 8-11a.m.
Lecture notes
(taken by one of our students)
Lab schedule
- Presentations : Each day (starting the second week of lab)
will include four 5 minute
presentations, 2 at 11:50 and 2 at 1:00. Choose
a recent article from the following or another source of
embedded systems information. The class must manage
this so no two people present the same article. Talks
should be almost exactly 5 minutes (questions will be held
until afterwards), so plan carefully.
The number of presentations per student depends on the number
of students we have, but all should give the same number,
and you can't give your next presentation until all students
have finished their current one. Your talk should justify why
you chose that article (why do you think it's interesting?)
Embedded Systems
Programming Magazine
Circuit Cellar Magazine
(Access code will be given out in class) -- college program link
- Mo Jan 06 Icebreakers, teams, Java resource search, discussion,
applet programming
- We Jan 08 More applet programming
- Mo Jan 13 Test each others' traffic light simulator, do code inspections
of each others' code, develop coding standard for class, rewrite
code according to standard, class checks again. More applets.
- We Jan 15 Applet-based simulator for off-ramp traffic light (Due
Friday, Jan 17).
Some other simulators:
Site 1  
Site 2  
Site 3 (source code included)
Site 4 (source code included)
- (Mo Jan 20 MLK holiday)
- We Jan 22 Eblocks: design example contest, Applet-based Eblock
simulator design -- due Monday, Jan 27 at 10:00 a.m.
- Mo Jan 27 Single-chip microprocessor/FPGA devices (Triscend)
- We Jan 29 Triscend (continued)
- Mo Feb 03 Triscend (continued)
- We Feb 05 Triscend (continued)
- Mo Feb 10 Performance optimization using gprof and LOOAN.
Instruction set simulation, cosimulation, SystemC, h/s partitioning, Mediabench, EEMBC
- We Feb 12 SystemC
- (Mo Feb 17 President's holiday)
- We Feb 19 SystemC
- Mo Feb 24 SystemC
- We Feb 26 Control
- Mo Mar 03 Simplescalar
- We Mar 05 Testing
- Mo Mar 10 Misc
- We Mar 12 Misc
General course features and policies
- Material covered : Lecture doesn't cover all required
material, which also appears in the course books and may be covered
only in the lab sessions.
- Academic dishonesty: cheating will be punished.
You can report cheating
anonymously at:
https://www.cs.ucr.edu/cheating/. All assignment submissions must
represent your original work, the only exception being if you were
told that working with a partner was acceptable.
- Regrade policy: corrections must be submitted
in writing and within one week of the distribution of the
graded material. The entire exam/assignment may be regraded, not just
the problem in question, so the grade may go up or down. Thus, think
your regrade requests through carefully. Grade-database errors should
also be pointed out within one week of posting.
- Final grades: Per university policy, changes to your final
grade will be made only in the event of a clerical error.
You should not ask the instructor how far you were from a
cutoff and what extra work you can do to improve the grade.
- Reading: Read the current book sections before coming to
lecture, and attend all lectures in their entirety. To
encourage these important college study habits, we may give a few
simple pop quizzes during the quarter, at any time during lecture.
- A+'s may be given to students submitting
all required material and possibly turning in extra (quality)
material (typically lab-related) going beyond the course requirements.
- Success in computer science courses requires time.
A typical student needs to spend 15-20 hours per week on this course
(including lecture and lab). For your own benefit, please allocate that
time.
Lab guidelines
- Students are required to stay the full three hours of lab session
every week. You'll have in-lab exercises, presentations, discussions,
and possibly exams. Work ahead or on extra course-related material if
you finish early.
- During lab discussion time, students should move away from their
computers to the whiteboard.
- Prepare for lab before arriving.
- All persons in lab during scheduled lab time must be formally
registered in that section. No unregistered people in the lab are
allowed.
- Do not bring your bike/scooter/etc. into the lab.
Homeworks
- Homework 1: Assigned in class -- traffic light for freeway offramp,
minimize avg wait time and backups onto freeway,
read traffic data from file.
- Homework 2 -- eBlock based designs.
- Homework 3 -- Optimized bit reversal
- Homework 4 -- Space-efficient table storage
Exams
Grades
Scores as of 03/05/03.
Please check carefully. Grading scale is roughly 90/80/70/60.
Scores as of 02/11/03.
Course email list
CS 122B mailing List (
send mail now or
access the
archive): Be sure to sign up to receive important announcements,
which may be made only through the course email list. You
must use your CS or EE account, or else some other UCR account, so be
sure to learn how to read those accounts or at least automatically
forward messages to your personal email address (just create in your
home directory a file named ".forward" containing your personal email
address).