Novel embedded architecture for e-textiles and pervasive computing


 

Abstract |Version | People  | ImagesAbout ]

Abstract







As embedded systems become increasingly complex, designers are turning to Model-Driven Engineering (MDE) approaches to manage the complexity. MDE approaches promise decreased design time, reduction in implementation errors, and improved portability. However, an MDE approach does not yield an implementation that is easily portable and is efficient in terms of performance and power consumption. This is primarily due to a fundamental mismatch between the specification used in the MDE design and the target microprocessors. The target abstraction for a microprocessor is an instruction set architecture that executes a set of instructions sequentially. This target has little relation to the inherently concurrent stream based nature of a large set of embedded system application area.

To address this issue, researchers have previously proposed new abstractions, based in software to represent a better match between the design specification and the implementtaion target. However, these abstractions incur costs in terms of power and performance.Further, for each new procesor, the abstraction must be ported. The variants of every single processor must be characterized with respect to power and performance in sufficient detail to allow for the tools to make implementation decisions : this turns out to be a daunting task given that there are hundreds of variants of the PIC architecture alone.

This project typically encompasses the embedding computing space served by low-cost 8-bit microprocessors, such as the PIC processor. The focus is to develop a new computer architecture family that presents an abstraction that is well-matched to the type of representation used in the typical MDE-based design. The new architecture is not a traditional ISA. It is an event based design that has similarities to dataflow and coarse-grain reconfigurable architectures. The architecture presents an abstraction that includes the precise timing of events as well as the energy cost of operation. The architecture is structures to take advantage of modern, power-efficient deisgn strategies such as asynchronous circuits, subthreshold-voltage circuits and leakage-aware design.

Back to top

Version






Architecture




Version 1.0 of the architecture consists of hardware modules such as an A2D or a statemachine that communicate via single or multiple bus(es). The hardware blocks are configurable and once configured, they continue the operation until it is reconfigured or powered off. The design of the hardware module is such that every module has two parts : the wrapper and the internal block. The wrapper structure is typically the same for all the hardware modules. The internal block contains the specifics with respect to a particular hardware module. In this way, the design of any new hardware module is simplified because only the internal module needs to be modified. Every hardware module puts data onto the bus only in the predefined time slots to avoid bus contention. The wrapper has configuration registers that contain the destination address and the delay for every output of the hardware module. The scheduling of the architecture ensures that delay values for every output of a hardware module avoids bus contention. Version 1.0 is targeted, but not restricted, to an 8-bit architecture. The packet width for inter-module communication is 12 bits and the bus width can be any divisor of the packet width 1,2,3,4,6. The packet width of 12 imposes limitations on number of wrapper registers and their maximum value. For example, the maximum delay value that any module can be configured with is 31.

Framework




Apart from the design of the basic architecture modules, an architecture exploration framework is being developed for the same. The primary aim of the framework is to identify the most suitable architecture (or a set of architectures) for the given set of applications. Thus, if the range of applications for which the processor will be used is given as input, the framework will output the optimal architecture for the set of applications. This is achieved by scheduling the application, binding it to a particular architecture, and, analysis of simulation and synthesis results through an automated tool-chain. All the results are managed in a database. The entire framework was implemented in python with the core algorithms implemented in C language to speed up the process.

The framework generates the initial programming (configuration) bytes directly from the high-level graph of the application. Included in the framework is the automatic generation of the top level HDL design for a given architecture and automatic test stimulus generation for the simulations (pre-synthesis, post-synthesis and post-layout).

In version 1.0, the framework takes two primary inputs. The first one is a single application which will run on the architecture. The second input is a template architecture description defined using the ADL. From the template architecture, different architectures are created by varying the bus width. The design files for these architectures are automatically created using the code generation module. The application is represented as a graph which is scheduled and bounded to each of the generated architectures using a backtracking algorithm. Then, through the automated tool-chain, simulation and synthesis results are generated. In version v1.0, these results have to be analyzed manually.




Focus



Alex Turcu



  • Conceptualising the initial version of overall design of the framework.
  • Modeling the Object Oriented Design for the architecture exploration framework.
  • Design of the automation scripts to generate the test stimulus for the simulations.
  • Implementation of scheduling and binding algorithms for the application.
  • Setting up the MERCURIAL server for version control.
  • Initial setup of the database management using SQLITE and ELIXIR python package.


Karthick Lakshmanan



  • Design and behavioral verification of hardware modules in the version 1.0 of the architecture.
  • Modeling the Object Oriented Design for the architecture exploration framework.
  • Definition of the grammar for the Architecture Description Language.
  • Implementation of  a compiler for the defined ADL using Python-Lex-Yacc.
  • Design of the automation scripts to generate the top-level design files from the architecture description.
  • Script to convert the test stimulus to different formats to suit the simulation tool.


Ramya P Narayanaswamy



  • Investigation and set up of the tool chain and working environment for the project.
  • Design and behavioral verification of hardware modules in the version 1 of the architecture.
  • Synthesis, post-synthesis simulation, automatic place and route and post-layout simulation of the version 1.0 of the architecture.
  • Design of automation scripts for tools invocation, results extraction and error handling.
Back to top

People






Dr. Tom Martin
Dr. Mark Jones
Karthick Lakshmanan
Ramya P Narayanaswamy
Alex Turcu

Back to top

Images






[Click on the thumbnails to view the image]
Architecture
Figure 1: Example instance of the proposed architecture that is designed to sample a set of analog
inputs, filtering the results, and transmitting them over a network.


Application
Figure 2: Graph representation of a Thermostat application, where, based on the comparison between
 a user input and the current temparature, a state machine controls a heater.


Schematic
Figure 3: Schematic of the generated Architecture(obtained through Synopsys Designvision tool).


Schedule
Figure 4: Pictorial representation of the automatically generated schedule.
(Red boxes indicate execution of a block, yellow boxes indicate writing onto bus and black boxes indicate reading from bus)


Layout
Figure 5: Physical Layout of the synthesized Architecture.
(Obtained using Cadence SoC Encounter tool)


Simulation
Figure 6: Post-layout simulation output of the application on a particular architecture.
(Obtained using Synopsys VCS tool)


Back to top

About






This material is based upon work supported by the National Science Foundation under Grant No. CNS-0834490. Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

Back to top


This website was designed by Karthick and Ramya using KompoZer v0.7.10 on Ubuntu GNU/Linux
(C) E-Textiles Lab, Virginia Polytechnic and State University, Blacksburg, VA