140 likes | 292 Views
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
E N D
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 Casey Reardon Brian Holland Karthik Nagarajan Gongyu Wang Research Students University of Florida
Introduction / 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…
RCML 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
RCML 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
RCML 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
RCML 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)
RCML 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
Eclipse 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!
Eclipse RCML Editor Palette: choose components here to place on canvas Properties tab: display/edit properties of model or selected component
RCML 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
Assignment • 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