Report Number: CSL-TR-98-762
Institution: Stanford University, Computer Systems Laboratory
Title: Hardware/Software Co-Design of Run-Time Systems
Author: Mooney, Vincent John III
Date: June 1998
Abstract: Trends in system-level design show a clear move towards
core-based design, where processors, controllers and other
proprietary cores are reused and constitute essential
building blocks. Thus, areas such as embedded system design
and system-on-a-chip design are changing dramatically,
requiring new design methodologies and Computer-Aided Design
(CAD) tools.
This thesis presents a novel system-level scheduling
methodology and CAD environment, the SERRA Run-Time Scheduler
Synthesis and Analysis Tool. Unlike previous approaches to
run-time scheduling, we split our run-time scheduler between
hardware and software, as opposed to placing the scheduler
all in one or the other. Thus, given an already partitioned
input system specification in an HDL and a software language,
SERRA automatically generates a run-time scheduler partly in
hardware and partly in software, for a target architecture of
a microprocessor core together with multiple hardware cores
or modules.
A heuristic scheduling algorithm solves for priorities of
software tasks executing on a single microprocessor with a
custom priority scheduler, interrupt service routine, and
context switch code. Real-time analysis takes into account
the split hardware/software implementation both of the
scheduler and of the tasks. The scheduler supports standard
requirements of both domains, such as relative timing
constraints in hardware and semaphores in software.
A designer who uses the SERRA CAD tool gains the advantage of
efficient satisfaction of timing constraints for
hardware/software systems within a framework that enables
different hardware/software partitions to be quickly
evaluated. Thus, a hardware/software partitioning tool could
easily sit on top of SERRA, which would generate run-time
systems for different hardware/software partitions chosen for
evaluation. In addition, SERRA's more efficient design space
exploration can improve time-to-market for a product.
Finally, we present two case studies. First, we show a full
analysis, synthesis, and simulation of a hardware/software
implementation of a robotics control system for a PUMA arm.
Second, we describe a sample prototype of the split run-time
scheduler in an actual design, a force-feedback real-time
Haptic robot. For this application, the hardware part of the
scheduler was implemented on programmable logic communicating
with software using a standard communication protocol.
http://i.stanford.edu/pub/cstr/reports/csl/tr/98/762/CSL-TR-98-762.pdf