Results 1 - 10
of
13
FunState - An Internal Design Representation for Codesign
- IEEE Transactions on Very Large Scale Integration (VLSI) Systems
, 2001
"... In this paper, an internal design model called FunState (functions driven by state machines) is presented that enables the representation of different types of system components and scheduling mechanisms using a mixture of functional programming and state machines. It is shown how properties relevan ..."
Abstract
-
Cited by 40 (8 self)
- Add to MetaCart
In this paper, an internal design model called FunState (functions driven by state machines) is presented that enables the representation of different types of system components and scheduling mechanisms using a mixture of functional programming and state machines. It is shown how properties relevant for scheduling and verification of specification models such as Boolean dataflow, cyclostatic dataflow, synchronous dataflow, marked graphs, and communicating state machines as well as Petri nets can be represented in the FunState model of computation. Examples of methods suited for FunState are described, such as scheduling and verification. They are based on the representation of the model's state transitions in form of a periodic graph. The feasibility of the novel approach is shown with an ATM switch example.
Scheduling hardware/software systems using symbolic techniques
- In International Workshop on Hardware/Software Codesign
, 1999
"... In this paper, a scheduling method for heterogeneous embedded systems is developed. At first, an internal representation model called FunState is presented which enables the explicit representation of nondeterminism and scheduling using a combination of functions and state machines. The new scheduli ..."
Abstract
-
Cited by 18 (8 self)
- Add to MetaCart
In this paper, a scheduling method for heterogeneous embedded systems is developed. At first, an internal representation model called FunState is presented which enables the explicit representation of nondeterminism and scheduling using a combination of functions and state machines. The new scheduling method is able to deal with mixed data/control flow specifications and takes into account different mechanisms of non-determinism as occurring in the design of embedded systems. Constraints imposed by other already implemented components are respected. The scheduling approach avoids the explicit enumeration of execution paths by using symbolic techniques and guarantees to find a deadlock-free and bounded schedule if one exists. The generated schedule consists of statically scheduled basic blocks which are dynamically called at run time. 1
Dynamic Reconfiguration to Support Concurrent Applications
, 1999
"... This paper describes the development of a dynamically reconfigurable system that can support multiple applications running concurrently. A dynamically reconfigurable system allows hardware reconfiguration while part of the reconfigurable hardware is busy computing. An FPGA resource manager (RM) is d ..."
Abstract
-
Cited by 16 (1 self)
- Add to MetaCart
This paper describes the development of a dynamically reconfigurable system that can support multiple applications running concurrently. A dynamically reconfigurable system allows hardware reconfiguration while part of the reconfigurable hardware is busy computing. An FPGA resource manager (RM) is developed to allocate and deallocate FPGA resources and to pre-load FPGA configuration files. For each individual application, different tasks that require FPGA resources are represented as a flow graph which is made available to the RM so to enable efficient resource management and pre-loading. The performance of using the RM to support several applications is summarized. The impact of supporting concurrency and pre-loading in reducing application execution time is demonstrated. Keywords---Configurable Computing, Field Programmable Gate Array (FPGA), Reconfiguration, Resource Management, Scheduling I. Introduction Adaptive Computing Systems (ACS) have been shown to outperform general-purp...
Teleport messaging for distributed stream programs, Symposium on Principles and Practice of Parallel Programming (PPoPP
, 2005
"... In this paper, we develop a new language construct to address one of the pitfalls of parallel programming: precise handling of events across parallel components. The construct, termed teleport messaging, uses data dependences between components to provide a common notion of time in a parallel system ..."
Abstract
-
Cited by 15 (8 self)
- Add to MetaCart
In this paper, we develop a new language construct to address one of the pitfalls of parallel programming: precise handling of events across parallel components. The construct, termed teleport messaging, uses data dependences between components to provide a common notion of time in a parallel system. Our work is done in the context of the Synchronous Dataflow (SDF) model, in which computation is expressed as a graph of independent components (or actors) that communicate in regular patterns over data channels. We leverage the static properties of SDF to compute a stream dependence function, sdep, that compactly describes the ordering constraints between actor executions. Teleport messaging utilizes sdep to provide powerful and precise event handling. For example, an actor A can specify that an event should be processed by a downstream actor B as soon as B sees the “effects ” of the current execution of A. We argue that teleport messaging improves readability and robustness over existing practices. We have implemented messaging as part of the StreamIt compiler, with a backend for a cluster of workstations. As teleport messaging exposes optimization opportunities to the compiler, it also results in a 49 % performance improvement for a software radio benchmark.
Representation of Process Mode Correlation for Scheduling
- In Proceedings International Conference on Computer-Aided Design (ICCAD '98
, 1998
"... The specification of embedded systems very often contains a mixture of different models of computation. In particular, the data flow and control flow associated to the transformative and reactive domains, respectively, are tightly coupled. The paper considers classes of applications that feature com ..."
Abstract
-
Cited by 14 (8 self)
- Add to MetaCart
The specification of embedded systems very often contains a mixture of different models of computation. In particular, the data flow and control flow associated to the transformative and reactive domains, respectively, are tightly coupled. The paper considers classes of applications that feature communicating processes whose functions depend on a finite set of computation modes. The change between these modes is synchronized by data communication. An approach is presented to model the correlation of process modes and to fully utilize this information for scheduling. A modeling example shows the optimization potential of the new approach. 1 Introduction Many applications of embedded systems can no longer be associated with either the transformative or reactive domain since their control flow and their data flow are tightly interwoven. A typical example for this is an MPEG-2 video encoder [9]. The nature of this application is a transformative bit-stream encoding but to increase coding ...
Software Synthesis from Dataflow Models for G and LabVIEW
- In Proceedings of the IEEE Asilomar Conference on Signals, Systems, and Computers
, 1998
"... The “G ” programming language, as implemented in the National Instruments product “LabVIEW ™”, allows the user to describe a program with a dataflow representation. Our goal is to apply the techniques and concepts of the current dataflow research towards the adaptation of G as an embedded software d ..."
Abstract
-
Cited by 14 (1 self)
- Add to MetaCart
The “G ” programming language, as implemented in the National Instruments product “LabVIEW ™”, allows the user to describe a program with a dataflow representation. Our goal is to apply the techniques and concepts of the current dataflow research towards the adaptation of G as an embedded software development tool. LabVIEW ™ is dominant in the instrumentation industry. As the instrumentation industry makes use of more embedded systems, it becomes practical to consider extending LabVIEW™’s and G’s functionality to target embedded systems. Formally, G is a homogeneous, multidimensional, dynamic dataflow language. G uses “structured dataflow” semantics to specify high level concepts (e.g. loops, conditional control flow, etc.) instead of using low level actors and feedback. We compare G to other models of computation, such as cyclostatic dataflow, dynamic dataflow, and process networks. In particular, we look for what we can learn from these models to apply to G. This survey is a launching point for discussing possible changes to G. In the future, we will discuss what extensions may be necessary for G to be more useful for representing some of these models of computation. We will also discuss semantic and syntactic restrictions to G that may be helpful when using G to describe a particular computational model. 1
Language and Compiler Support for Stream Programs
, 2009
"... Stream programs represent an important class of high-performance computations. Defined by their regular processing of sequences of data, stream programs appear most commonly in the context of audio, video, and digital signal processing, though also in networking, encryption, and other areas. Stream ..."
Abstract
-
Cited by 9 (2 self)
- Add to MetaCart
Stream programs represent an important class of high-performance computations. Defined by their regular processing of sequences of data, stream programs appear most commonly in the context of audio, video, and digital signal processing, though also in networking, encryption, and other areas. Stream programs can be naturally represented as a graph of independent actors that communicate explicitly over data channels. In this work we focus on programs where the input and output rates of actors are known at compile time, enabling aggressive transformations by the compiler; this model is known as synchronous dataflow. We develop a new programming language, StreamIt, that empowers both programmers and compiler writers to leverage the unique properties of the streaming domain. StreamIt offers several new abstractions, including hierarchical single-input single-output streams, composable primitives for data reordering, and a mechanism called teleport messaging that enables precise event handling
Asynchronous software thread integration for efficient software implementations of embedded communication protocol controllers
- In Proceedings of the 2004 ACM SIGPLAN/SIGBED Conference on Languages, Compilers and Tools
, 2004
"... The overhead of context-switching limits efficient scheduling of multiple concurrent threads on a uniprocessor when real-time requirements exist. Existing software thread integration (STI) methods reduce context switches, but only provide synchronous thread progress within integrated functions. For ..."
Abstract
-
Cited by 4 (3 self)
- Add to MetaCart
The overhead of context-switching limits efficient scheduling of multiple concurrent threads on a uniprocessor when real-time requirements exist. Existing software thread integration (STI) methods reduce context switches, but only provide synchronous thread progress within integrated functions. For the remaining, non-integrated portions of the secondary threads to run and avoid starvation, the primary thread must have adequate amounts of coarse-grain idle time (longer than two context-switches). We have developed asynchronous software thread integration (ASTI) methods which address starvation through the efficient use of coroutine calls and integration. ASTI allows threads to make independent progress efficiently and reduces the number of context switches needed through integration. Software-implemented protocol controllers are crippled by this problem; the primary thread “bit-bangs ” each bit of a message onto or off of the bus, leaving only fragments of idle time shorter than a bit time. This fragmented time may be too short to recover through context switching, so only the primary thread can execute during message transmission or reception, slowing the secondary threads and potentially making them miss their deadlines. ASTI simplifies the implementation of embedded communication protocols on low-cost, moderate speed (1- 100 MHz, 8- and 16-bit) microcontrollers. We demonstrate ASTI by replacing a standard automotive communication protocol controller (J1850) with software and generic hardware. Secondary thread performance improves significantly when compared with a traditional interrupt-based software approach.
System Level Specification for Multimedia Applications
, 1999
"... This paper presents a system level specification for codesign of control modules and function modules in multimedia applications which have significant computational requirements as well as complex control systems. In the proposed compositional approach, control modules and function modules are sepa ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
This paper presents a system level specification for codesign of control modules and function modules in multimedia applications which have significant computational requirements as well as complex control systems. In the proposed compositional approach, control modules and function modules are separately described with extended FSM, called fFSM, and dataflow respectively, and integrated in the top-level codesign backplane. The codesign backplane supports interaction requirements between control and function modules, enables cosimulation of their composition, and will provide cosynthesis. Since fFSM and dataflow models are formal models of computation, we can analyze the specification of each module. Comparison with previous approaches and preliminary experiments show novelty and practicality of the proposed technique.

