eel 5934: the rc modeling language (rcml)
DESCRIPTION
EEL 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 - PowerPoint PPT PresentationTRANSCRIPT
December 3-4, 2008
2008 Annual Workshop
EEL 5934: The RC EEL 5934: The RC Modeling Language Modeling Language (RCML)(RCML)
Dr. Alan D. GeorgeProfessor 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 MerchantResearch Scientist
University of Florida
Casey ReardonBrian Holland
Karthik NagarajanGongyu Wang
Research StudentsUniversity of Florida
2
Introduction / MotivationIntroduction / 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…
3
RCML OverviewRCML 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
Candidate Algorithm
Model
Candidate Architecture
Model
RCML System Model
Mapping
RAT Analysis
Simulative PredictionCode
Generation
Algorithm Model Library
Architecture Model Library
4
RCML Algorithm RCML Algorithm ConstructsConstructs 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
Data Set: MoleculesElement Type: MoleculeNum Elements: =Param(N)
Element Name: Molecule
Element Definition:String name;Int index, posX, posY, posZ;End Definition;
RCML Data Set
RCML Process Line RCML Duplicates Example
Stage 3 function
Stage 2 function
Stage 1 function
CollectorDuplicate Set 1
i = 5
DistributorGatherScatter
5
RCML Algorithm RCML Algorithm ConstructsConstructsName Description IconData Block A block representing a finite (data set)
or continuous (data stream) group of data processed by the algorithm
Base Function Block
Algorithm task triggered either by incoming data (data-driven) or control signals (control-driven)
Repetitive Function Block
Algorithm task whose execution is repeated a specified number of times
Process Line Function Block
Task sequence that can execute con-currently, supports deep parallelism
Replicated Function Block
A task that is physically replicated to support wide parallelism
6
RCML Architecture RCML Architecture ConstructsConstructs 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
7
RCML Architecture RCML Architecture ConstructsConstructsName Description Icon
Fixed Processor A fixed processing element, such as an ASIC or microprocessor
Reconfigurable Processor
A processing elements that supports reconfiguration, such as an FPGA
Memory Block An instance of memory or storage
Cache Block A specialized memory block for multi-level caches
Interconnect Bus
A system or network bus for data transfers
Interconnect Switch
A network switch for data transfers
Source/Sink Device
Generic devices, such as a sensor (source) or display (sink)
8
RCML AttributesRCML 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)
9
RCML System MappingRCML 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
10
Eclipse RCML EditorEclipse 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!
11
Eclipse RCML EditorEclipse RCML EditorPalette: choose components here to place on canvas
Properties tab: display/edit properties of model or selected component
12
RCML RAT Analysis ToolRCML 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
13
RCML DemoRCML Demo
14
AssignmentAssignment 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