Title: EEL 5934: The RC Modeling Language RCML
1EEL 5934 The RC Modeling Language (RCML)
Dr. Alan D. George Professor of ECE University of
Florida Dr. Herman Lam Assoc. Professor of
ECE University of Florida Dr. Greg Stitt Asst.
Professor of ECE University of Florida
Dr. Saumil Merchant Research Scientist University
of Florida Casey Reardon Brian Holland Karthik
Nagarajan Gongyu Wang Research Students University
of Florida
2Introduction / Motivation
- Coding for RC is often difficult and time
consuming due to a number of factors - Efficient use of parallelism required to exploit
performance potential of devices - Limited resources available on device
- PAR may take hours, limiting the number of
design/debug iterations per day, etc. - Problem compounded when original design do not
meet project requirements - Engineers often must perform multiple full design
iterations before completing project - Lack of tools to effectively lay out your design
and ensure that final product will meet specs - What if there was a way to efficiently model and
plan your design before implementation, allowing
you to catch design flaws before coding
3RCML Overview
- RC Modeling Language (RCML) an abstract modeling
language for RC - Intended to allow users to quickly layout and
analyze their design before coding an
implementation - Graphical, block-oriented modeling environment,
no writing of code - RCML model editor under development
- RCML includes 3 classes of models
- Algorithm models specialized task graphs with
constructs for parallelism - Architecture models collection of highly tunable
generic platform components - System models an algorithm model mapped onto an
architecture model - Multiple mapping processes to support multiple
levels of abstraction - Allow reuse of algorithm and architecture models
across numerous mappings
RCML Concept Diagram
4RCML Algorithm Constructs
- Function blocks are fundamental building block of
algorithm models - Data-driven function block - contains only data
inputs - Control-driven function block - triggered by
changes to control signals, e.g. a FSM output - Iterative attrivute to define multiple executions
per firing - Two forms of data constructs data set (finite,
asynchronous) and data stream (continuous) - Two explicit structures for defining parallelism
- Process lines (deep parallelism)
- Can define number of stages, inputs, outputs,
etc. - Duplicates, a.k.a. data-path replication (wide
parallelism) - Allow user to specify multiple instances of
single function box - Can be mapped within single device or across
nodes - Built-in patterns for communications to/from
duplicates
RCML Data Set
RCML Process Line
RCML Duplicates Example
5RCML Algorithm Constructs
6RCML Architecture Constructs
- Architecture models used to define makeup and
capabilities of the RC execution platform - Includes several classes of architecture
components - e.g. processor, RC device, bus, memory, etc.
- For this project, architecture models should
simply be a processor and RC device connected
by a bus - Attributes used to refine generic components
into instances of a specific device - See attributes slide later
7RCML Architecture Constructs
8RCML Attributes
- Attributes in RCML used to refine generic
constructs into specific/detailed model
components - e.g. define size and speed attributes for a
memory block to represent a SRAM, DRAM, storage
disk, etc. - Embed performance attributes in function blocks
- e.g. computational latency
- Attributes are selectable/editable in the
Attributes property tab for any component - Table in properties tab displays all attributes
currently defined for component - Use buttons/dialogs to add and edit attributes
(sorry, double-click editing not supported yet)
9RCML System Mapping
- System model maps an algorithm model onto an
architecture model - Each half of system model viewed one at a time
- Change perspective to switch views in system
model - Tool currently supports two basic system mapping
functions - Mapping function blocks to processing elements
- Mapping data blocks to starting and final memory
locations - Dialogs found in mapping properties tab of system
model elements
10Eclipse RCML Editor
- A graphical editor for creating RCML models
developed this year in Eclipse - Eclipse is an open development platform comprised
of extensible frameworks, tools and runtimes for
building, deploying and managing software across
the lifecycle - See www.eclipse.org
- RCML editor exists as plugin to Eclipse
- Thus, RCML model editing capabilities integrated
into Eclipse after plugin installation - RCML tool still in early phases of development
- Most advanced features not supported yet, so keep
your models simple!
11Eclipse RCML Editor
Palette choose components here to place on canvas
Properties tab display/edit properties of model
or selected component
12RCML RAT Analysis Tool
- Automatically generates analytic performance
prediction - Users must define basic computational
requirements of algorithm - e.g. number of data elements being operated
upon, number of computational operations
performed per element, and number of operations
circuit can perform per clock cycle - Will provide instructions detailing exact
parameters required for RAT analysis - Tool must read set of pre-defined attributes in
model to perform prediction - Launch by right-clicking canvas of system model
and selecting Launch RAT from menu
13RCML Demo
14Assignment
- The tool will be made available for download soon
from the class webpage - Instructions for installing Eclipse and RCML
editor will be provided - Build an RCML model (algorithm, architecture, and
system) of your class project and RECORD TIME
SPENT ON IT - It is important that this time is recorded and
accurate, so please take this seriously - Overall time with RCML should not be long, i.e.
1-2 hours - Use the RAT tool to obtain a performance estimate
from your model - A guide instructing how to define performance
parameters for use with RAT tool will be provided