Course
Information
Class Readings and Presentations
Individual Projects
CS269 deals with the exciting and rapidly-growing field of embedded computing systems. The course will present state-of-the-art software and hardware design techniques for embedded computing systems. Topics include specification models, languages, simulation, partitioning algorithms, estimation methods, model refinement, and design methodology.
| Instructor | Harry Hsieh, (harry@cs.ucr.edu),
SURGE 329 Office hours: Tue/Thu 10-11AM, or by appointment |
|---|---|
| Class meeting | TR 11:10AM-12:30PM; Surge 349 |
| Textbooks | None -- all readings will be available online |
| Prerequisite | CS/EE120A(Digital systems) and consent of instructor |
| Call # and units | 18045, 4 units. |
| Grade | Individual Project 45%, Class Presentation & Participation 45%, Attendance
10% Project should be done individually. You are encouraged to propose your own project, possibly related to your Ph.D., M.S. thesis work or even B.S. senior project work. The idea is that it may become a submission to a workshop and/or a chapter in your thesis. The content should falls somewhat within the broad confine of the course and has comparable depth as the other projects. A list of potential project will also be available at the beginning of the class. You are expected to read assigned readings before the date they are presented, to attend classes and actively participate in discussions. You are also expected to present several papers during the quarter, for which you should study thoroughly, and do outside research as necessary. Attendance will be taken throughout. Un-excused absence will be penalized. |
You are expected to read assigned readings before the date they are presented, to attend classes and actively participate in discussions. You are also expected to present several papers during the quarter, for which you should study thoroughly, and do outside research as necessary. Questions will be posed in class about the material and you are expected to be able to answer them. You are free to contact authors for extra material (including presentation material) and to answer any questions you might have. (Obviously, they are not under any obligation to respond). However, you must properly acknowledge the source so there won't be questions of plagiarism.
| Date | Presenter | Topic and assigned reading | Presentation |
| Tu 1/6 | H. Hsieh | Course Introduction and Logistics | |
| Th 1/8 | H. Hsieh | Presentation on Presentation | |
| Tu 1/13 | Xi Chen |
"The Tides of EDA", A. Sangiovanni-Vincentelli, IEEE Design
and
Test of Computers, November-December 2003.
"System-Level Design: Orthogonalization of Concerns and Platform-based Design", K. Keutzer, A. Newton, J. Rabaey, A. Sangiovanni-Vincentelli, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 19 (no.12), Dec 2000. | |
| Thu 1/15 | K. Stephenson
P. Vu |
"The Softening of Hardware" F. Vahid, IEEE Computer,
volume 36 issue 4, April 2003, pages 27-34.
"A Decade of Hardware/Software Codesign", W. Wolf, IEEE Computer, volume 36, issue 4, April 2003, pages 38-43. | |
| Tu 1/20 | J. Yu
P. . Appachu |
"Metropolis: an Integrated Electronic System Design Environment" "SystemC Cosimulation and Emulation of Multiprocessor SoC Designs", L. Benini, D. Bertozzi, D. Bruni, N. Drago, F. Fummi, and M. Pocino, IEEE Computer, volume 36, issue 4, April 2003, pages 53-59. | |
| Th 1/22 | N. He
R. Evans |
"A Formal Approach to MpSoC Performance Verification" "Developing Architectural Platforms: a Disciplined Approach" | |
| Tu 1/27 | Xi Chen
J. Yu N. He | Project Progress Presentation (part 1) 25 minutes each person-project. Presentation should include background, plan of attack, expected result, and progress so far. | |
| Th 1/29 |
P. Vu
K. Stephenson R. Evans P. Appachu | Project Progress Presentation (part 2) 25 minutes each person-project. Presentation should include background, plan of attack, expected result, and progress so far. |
|
| Tu 2/3 | J. Yu
K. Stephenson N. He |
"PICO: Automatically Designing Custom Computers" "Mica: a Wireless Platform for Deeply Embedded Networks" "An Extension of SystemC for Mixed Multi-Level Communication Modeling and Interface-Based System Design", R. Siegmund, D. Nueller, Design Automation and Test in Europe, March 2001, pages 26-32. Best paper winner. | |
| Th 2/5 | R. Evans
P. Vu P. Appachu |
"Dynamic Conditional Branch
Balancing during the High-Level Synthesis of Control-Intensive Designs",
S. Gupta, N. Dutt, R. Gupta. A. Nicolau, Design Automation and Test in
Europe, March 2003, pages. 270-275.
"Design Optimization of Mixed Time/Event-Triggered Distributed Embedded Systems", T. Pop, P. Eles, Z. Peng, First IEEE/ACM/IFIP International Conference on Hardware/Software Codesign & System Synthesis, October 2003, pages 83-89. Best presentation winner.
| |
| Tu 2/10 |
N. He
R. Evans K. Stephenson |
"Processor/Memory Co-Exploration on
Multiple Abstraction Levels", G. Braun, A. Wieferink, O. Schliebusch,
R. Leupers, H. Meyr, A. Nohl, Design Automation and Test in Europe, March
2003, pages 966-971.
Automatic Application-Specific Instruction-Set Extensions under Microarchitectural Constraints", K. Atasu, L. Pozzi, P. Ienne, Design Automation Conference, June 2003. pages 256-261. Best paper winner. "Energy Efficient Fixed-Priority Scheduling for Real-Time Systems on Variable Voltage Processors", G. Quan, X. Hu, Design Automation Conference, June 2001, 6 pages. Best paper winner. | |
| Th 2/12 | J. Yu
P. Vu P. Appachu |
"Probablistic Application Modeling for System-Level Performance
Analysis" R. Marculescu, A. Nandiof, Design Automation and Test in
Europe, March 2001, pages 572-579. Best paper
winner.
"An Efficient Retargetable Framework for Instruction-Set Simulation", M. Reshadi, N. Bansal, P. Mishra, N. Dutt, First IEEE/ACM/IFIP International Conference on Hardware/Software Codesign & System Synthesis, October 1, pages13-18. Best paper winner. "A Universal Technique for Fast and Flexible Instruciton-Set Architecture Simulation", A. Nohl, G. Braun, A. Hoffmann, O. Schliebusch, R. Leupers, H. Meyr, Design Automation Conference, June 2002. pages 22-27. Best paper winner. | |
| Tu 2/17 | none | No class meeting. Work on your projects!!! | |
| Th 2/19 | none | No class meeting. Work on your projects!!! | |
| Tu 2/24 | Students | Project Progress Meetings | |
| Th 2/26 | Students | Project Progress Meetings | |
| Tu 3/2 | Students | Project Progress Meetings | |
| Th 3/4 | Students | Project Progress Meetings | |
| Tu 3/9 | none | No Class Meeting. Work on your projects!!! | |
| Th 3/11 | Students | 9AM-12:30PM
Final Project Presentation 25 minutes each person. Presentation should include background, motivation, procedures, results, and future work. | |
Project should be done individually. You are encouraged to propose your own project, possibly related to your Ph.D., M.S. thesis work or even B.S. senior project work. The idea is that it may, with possibly one more quarter of independent study work, become a submission to a workshop and/or a chapter in your thesis. The content should falls somewhat within the broad confine of the course and has comparable depth as the other projects. A list of potential project will also be available at the beginning of the class. Project request is on a first-come-first-serve basis. You are encouraged to send me e-mail frequently about your progress or any question you may have throughout the quarter.
Project Deadlines are:
| 1/15 | Thursday noon | Deadline for project request. Finalized project assignment. |
| 1/27,29 | Tue,Thu (in class) | Project Progress Presentation 25 minutes each person |
| 2/3 | Tuesday (midnight) | 1st draft of project report (~2 pages), background, expected result, plan, progress |
| 2/24 | Friday (noon) | 2nd draft of project report (~4 pages), background, expected result, plan, progress |
| 3/11 | Thursday (9AM-12:30PM) | Final Project Presentation (25 minutes each person) and Final Project Report (~8 pages "conference format": 2 column, 11pt, single space) |
3) Protocol Exploration Tool for eBlock Systems
4) Implementing Abstraction/Refinement Operations for Formal Verification in Metropolis
5) Performance Analysis of Metropolis Design Using SMART
6) A Practical Language for LOC
7) Integrating LOC checker into PSL framework
8) Safe Abstraction for Simulation Trace Checking
Mentor: Susan Cotterell (susanc@cs.ucr.edu); Harry Hsieh (harry@cs.ucr.edu)
Student: K. Stephenson
Goal:
The goal of eBlocks is to empower regular people, having no programming or
electronics experience, to build basic useful electronic systems around the
home, office, store, etc. eBlocks strive to achieve this goal by creating a set
of embedded system building blocks - eBlocks - that regular people could easily
connect together to build a huge variety of basic but useful monitor/controller
systems. The key is to add compute intelligence to components that previously
had none - to sensors, switches, light-emitting diodes (LEDs), speakers, etc.
Adding compute intelligence to those items was previously cost and power
prohibitive, but extremely small, cheap and low power processing devices now
make such addition possible. Ideally, people could simply connect such eBlocks
together to build basic systems.
Currently a eBlock simulator is available which allows anyone to build a subset
of eBlock systems on the web. The goal of this project is to extend the
simulator.
Procedure:
Expected Products:
An eBlock simulator with the aforementioned extensions as well as any other improvements that may be beneficial
Reference:
Mentor: Susan Cotterell (susanc@cs.ucr.edu); Harry Hsieh (harry@cs.ucr.edu)
Student: To Be Determined
Goal:
The goal of eBlocks is to empower regular people, having no programming or
electronics experience, to build basic useful electronic systems around the
home, office, store, etc. eBlocks strive to achieve this goal by creating a set
of embedded system building blocks - eBlocks - that regular people could easily
connect together to build a huge variety of basic but useful monitor/controller
systems. The key is to add compute intelligence to components that previously
had none - to sensors, switches, light-emitting diodes (LEDs), speakers, etc.
Adding compute intelligence to those items was previously cost and power
prohibitive, but extremely small, cheap and low power processing devices now
make such addition possible. Ideally, people could simply connect such eBlocks
together to build basic systems.
Although eBlocks are targeted towards people with no program expertise, those
with programming knowledge should not be confined. By creating a programmable
eBlock, users can specify the desired functionality of their own eBlock and use
it in conjunction with pre-existing eBlocks.
Procedure:
Expected Products:
An environment which allows users to program a programmable eBlock as well as an eBlock simulator which allows users to test the programmable eBlock along with pre-existing eBlocks found in the eBlock library.
Reference:
3) Protocol Exploration Tool for eBlock Systems
Mentor: David Sheldon (dsheldon@cs.ucr.edu); Harry Hsieh (harry@cs.ucr.edu)
Student: To Be Determined
Goal:
The goal of eBlocks is to empower regular people, having no programming or
electronics experience, to build basic useful electronic systems around the
home, office, store, etc. eBlocks strive to achieve this goal by creating a set
of embedded system building blocks - eBlocks - that regular people could easily
connect together to build a huge variety of basic but useful monitor/controller
systems. The key is to add compute intelligence to components that previously
had none - to sensors, switches, light-emitting diodes (LEDs), speakers, etc.
Adding compute intelligence to those items was previously cost and power
prohibitive, but extremely small, cheap and low power processing devices now
make such addition possible. Ideally, people could simply connect such eBlocks
together to build basic systems.
A further requirement of eBlocks is that they are battery powered, to avoid the
complexity of connecting every component to a wall power source. Thus, eBlocks
must have sufficient battery life such that a user is not constantly changing
the batteries. Communication is one of the main contributors to power
dissipation. The goal of this project is to design a tool that will determine
the optimal parameters for the system so that the system will use minimal power,
while still working properly. Given parameters such as the length of the packet,
transmission frequency, and error detection, create a tool that will determine
the best configuration that will also use the smallest amount of power. The environment
may effect the power or accuracy of the transmission so all the power and error
rates the user should be able to change.
Procedure:
Expected Products:
An eBlock transmission protocol exploration/optimization environment in which users can test the impacts of various protocols given a defined test environment as well as an option to optimize the protocol given a defined test environment and/or weighted parameters.
Reference:
4) Implementing Abstraction/Refinement Operations for Formal Verification in Metropolis
Mentor: Harry Hsieh (harry@cs.ucr.edu)
Student: Xi Chen
Goal:
The existing formal verification checks the whole state space of a design for properties
(specified in LTL or LOC) of a design. A realistic system design (e.g. PiP) is usually too
large to be exhaustively verified. Due to the fact that only a part of the design needs to
be checked, some components of the design can be abstracted to simpler representations
without changing the validity of the properties in the verification. We call it safe abstraction.
The goal of this project is to design a set of safe abstraction procedures that can be
applied automatically or manually by designers to make the formal verification of large
designs possible. The basic requirement is not to affect the validity of the properties.
Procedure:
Expected Products:
A case study of safe abstraction for simulation trace checking probably using the PiP design. Generalization of the abstraction procedures for LTL and LOC logic operators.
Reference:
5) Performance Analsysi of Metropolis Design using SMART
Mentor: Xi Chen (xichen@cs.ucr.edu); Harry Hsieh (harry@cs.ucr.edu)
Students: J. Yu
Goal:
Formal verification and performance analysis is critical to the correct functioning of a design. Metropolis design framework allow designer to start from concept all the way down to implementation, all within a formal framework. Preliminary work exists to formally verification small portion of the MMM design using the translation path to SPIN. However, what distinguishes Metropolis is its ability to specify architecture and function to architecture mapping. Performance analysis, at high level of abstraction, can be achieve with early mapping of function to architecture. Since no detail information is yet available at this stage, stochastic parameters may be best used to characterized a higher level design. This project seek to capitalized on SMART's ability to perform stochastic verification. Since SMART is also capable of formal functional verification, a more direct and efficient path to functional verification is also sought for in this project.
Procedure:
Expected Products:
Case study on stochastic performance analysis of Metropolis functional and architecture design using SMART. Simple automatic translator from MMM to PN for both performance analysis and functional verification.
Reference:
6) A Practical Language for LOC
Mentor: Xi Chen (xichen@cs.ucr.edu); Harry Hsieh (harry@cs.ucr.edu)
Student: P. Appachu
Goal:
Logic Of Constraints (LOC) is a formalism designed to reason about execution traces
containing quantitative performance values (also known as annotations). It
is designed for analyzing traces from the execution of higher, transaction level
system models, where the input/output events, instead of their precise time of occurrence,
are of primary importance. LOC consists of all the terms and operators
allowed in sentential logic, with additions that make it possible to specify quantitative assertions without compromising the ease of analysis.
To make LOC easier to use and more powerful to express complex properties, we need a practical language for it. The goal of this project is to design
an assertion language for Logic Of Constraints following the style of Property
Specification Language, a popular assertion language which has base its
mathematical foundation on Linear Temporal Logic (LTL). Part of the
inspiration of the language design should also come from SMV.
Procedure:
Expected Products:
A well defined language for LOC, along with a functioning parser which is integrated with existing LOC (code) checker generator.
Reference:
7) Integrating LOC Checkers into PSL Framework
Mentor: Xi Chen (xichen@cs.ucr.edu); Harry Hsieh (harry@cs.ucr.edu)
Student: R. Evans
Goal:
LTL-based assertion language PSL and LOC can be used to formally specify the functional and performance properties of
a system level design. LTL and
LOC have been shown to have different domains of expressiveness and can
complement each other.
For LTL/PSL properties, we leverage the existing tool, FoCs, to generate the checker core and then manually write wrappers that are necessary for
checking simulation trace off-line (as compare to on-line monitoring).. For LOC properties,
we use our own tool to generate checkers. The goal of this project is to first automate the wrapper generation for FoCs generated checkers, and then integrate
the two checker generations into a unified framework.
Procedure:
Expected Products:
A wrapper generator for FoCs generated PSL checkers and a integrated tool for both LTL/PSL and LOC checker generations.
Reference:
8) Defining Levels of Abstraction for Simulation Trace Checking
Mentor: Xi Chen (xichen@cs.ucr.edu); Harry Hsieh (harry@cs.ucr.edu)
Student: N. He
Goal:
It is not unusual for designers to run simulation using hours upon hours of computation time, regardless of what property he really cares about. Given a particular property, it is easy to envision situation where most part of the design are not relevant to the property at hand. In formal verification, property specific safe abstraction has been studied quite extensively, with mixed result. This project seek to answer the question in the context of simulation. Given a design, and a set of LTL or LoC properties, we want to find an abstraction (level) that is safe, in the it retain the essentially characteristic for the pass/fail of the given property.
We will start with a realistic system design (a Picture-in-Picture design specified in Metropolis Metamodel), and find a cooresponding abstract design that is still safe for a class of properties. We, of course, will also define that class of properties. Furthermore, we want to see what abstraction procedures can be applied automatically or manually by designers to move from one abstraction level to the other, and to reduce the simulation time. The lesson learned with the PIP design should then be generalized to MMM design in general.
Procedure:
Expected Products:
A case study of safe abstraction for simulation trace checking (probably) using the PiP
design by working at different abstraction. Identify and Generalize the abstraction procedures for LTL and LOC logic
operators on general MMM designs.
Reference:
Mentor: Roman Lysecky (rlysecky@cs.ucr.edu); Frank Vahid (vahid@cs.ucr.edu); Harry Hsieh (harry@cs.ucr.edu)
Student: P. Vu
Goal:
Improvements in performance and power can be achieved with dynamic software optimizations. Single-chip platforms with both microprocessors and configurable logic provide even greater optimizations. Major software speedups and energy reduction result in hardware/software partitioning, implementing software as a hardware coprocessor on configurable logic. Hardware/software partitioning can also be done at the binary-level with no requirement of special desktop tools. Warp processing is the process of dynamically optimizing executing binary by moving software kernels to configurable logic. Traditional FPGAs are not suited well for dynamic hardware/software partitioning.
A configurable logic fabric and architecture has been designed by Roman Lysecky specifically for dynamic hardware/software partitioning and speeding up critical loops. Through experiments with popular benchmarks, this configurable logic architecture, fabric and accompanying place and route algorithms have shown to be quicker and using less memory and power. Research continues with this architecture and fabric.
Procedure:
Expected Products:
VHDL models and testbenches for the reconfigurable fabric that can be synthesized into ASIC or FPGA. An example of HW/SW co-execution.
Reference: