INTEGRATING TIMING AND FREE-RUNNING ACTORS WITH DATAFLOW Tim Hayles Principal Engineer National Instruments September 9, 2008

Slides:



Advertisements
Similar presentations
© 2007 Eaton Corporation. All rights reserved. LabVIEW State Machine Architectures Presented By Scott Sirrine Eaton Corporation.
Advertisements

1. 2 LabVIEW for FRC Doug Norman National Instruments January 6, 2012.
Lecture 12 Latches Section Schedule 3/10MondayLatches (1) /12WednesdayFlip-flops5.4 3/13ThursdayFlip-flops, D-latch 3/17MondaySpring.
Course contents 1.Labview basics – virtual instruments, data flow, palettes 2.Structures – for, while, case,... – editing techniques 3.Controls&Indicators.
1 Architectural Complexity: Opening the Black Box Methods for Exposing Internal Functionality of Complex Single and Multiple Processor Systems EECC-756.
Overview: Chapter 7  Sensor node platforms must contend with many issues  Energy consumption  Sensing environment  Networking  Real-time constraints.
I MPLEMENTING S YNCHRONOUS M ODELS ON L OOSELY T IME T RIGGERED A RCHITECTURES Discussed by Alberto Puggelli.
1 Lecture 2: Review of Computer Organization Operating System Spring 2007.
A denotational framework for comparing models of computation Daniele Gasperini.
Department of Electrical and Computer Engineering Texas A&M University College Station, TX Abstract 4-Level Elevator Controller Lessons Learned.
FunState – An Internal Design Representation for Codesign A model that enables representations of different types of system components. Mixture of functional.
I/O Hardware n Incredible variety of I/O devices n Common concepts: – Port – connection point to the computer – Bus (daisy chain or shared direct access)
Informationsteknologi Friday, November 16, 2007Computer Architecture I - Class 121 Today’s class Operating System Machine Level.
1 Design For Debug Using DAFCA system Gadi Glikberg 15/6/06.
Models of Computation for Embedded System Design Alvise Bonivento.
State Machines Timing Computer Bus Computer Performance Instruction Set Architectures RISC / CISC Machines.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 8: February 11, 2009 Dataflow.
INPUT/OUTPUT ORGANIZATION INTERRUPTS CS147 Summer 2001 Professor: Sin-Min Lee Presented by: Jing Chen.
1 Sequential Circuits Registers and Counters. 2 Master Slave Flip Flops.
INPUT/OUTPUT ARCHITECTURE By Truc Truong. Input Devices Keyboard Keyboard Mouse Mouse Scanner Scanner CD-Rom CD-Rom Game Controller Game Controller.
CS-334: Computer Architecture
(1) Modeling Digital Systems © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
Maria-Cristina Marinescu Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology A Synthesis Algorithm for Modular Design of.
LSU 10/22/2004Serial I/O1 Programming Unit, Lecture 5.
Voicu Groza, 2008 SITE, HARDWARE/SOFTWARE CODESIGN OF EMBEDDED SYSTEMS Hardware/Software Codesign of Embedded Systems Voicu Groza SITE Hall, Room.
1 Computer System Overview Chapter 1. 2 n An Operating System makes the computing power available to users by controlling the hardware n Let us review.
Computer System Overview Chapter 1. Operating System Exploits the hardware resources of one or more processors Provides a set of services to system users.
RM2D Let’s write our FIRST basic SPIN program!. The Labs that follow in this Module are designed to teach the following; Turn an LED on – assigning I/O.
Data Acquisition Data acquisition (DAQ) basics Connecting Signals Simple DAQ application Computer DAQ Device Terminal Block Cable Sensors.
MICROPROCESSOR INPUT/OUTPUT
Top Level View of Computer Function and Interconnection.
1. 2 LabVIEW Intro, Basics, Tips, Tricks Doug Norman & Stephanie Brierty National Instruments January 8, 2010.
1 H ardware D escription L anguages Modeling Digital Systems.
FPGA (Field Programmable Gate Array): CLBs, Slices, and LUTs Each configurable logic block (CLB) in Spartan-6 FPGAs consists of two slices, arranged side-by-side.
© 2004 Mercury Computer Systems, Inc. FPGAs & Software Components Graham Bardouleau & Jim Kulp Mercury Computer Systems, Inc. High Performance Embedded.
I/O Computer Organization II 1 Interconnecting Components Need interconnections between – CPU, memory, I/O controllers Bus: shared communication channel.
Computer Architecture Lecture 2 System Buses. Program Concept Hardwired systems are inflexible General purpose hardware can do different tasks, given.
EEE440 Computer Architecture
Accessing I/O Devices Processor Memory BUS I/O Device 1 I/O Device 2.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
PROJECT - ZYNQ Yakir Peretz Idan Homri Semester - winter 2014 Duration - one semester.
Gedae, Inc. Gedae: Auto Coding to a Virtual Machine Authors: William I. Lundgren, Kerry B. Barnes, James W. Steed HPEC 2004.
Computer Organization CDA 3103 Dr. Hassan Foroosh Dept. of Computer Science UCF © Copyright Hassan Foroosh 2002.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Connecting EPICS with Easily Reconfigurable I/O Hardware EPICS Collaboration Meeting Fall 2011.
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
Lecture 1: Review of Computer Organization
Royal Institute of Technology System Specification Fundamentals Axel Jantsch, Royal Institute of Technology Stockholm, Sweden.
Concepts of Engineering and Technology Copyright © Texas Education Agency, All rights reserved.
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
CSCI1600: Embedded and Real Time Software Lecture 16: Advanced Programming with I/O Steven Reiss, Fall 2015.
Simple ALU How to perform this C language integer operation in the computer C=A+B; ? The arithmetic/logic unit (ALU) of a processor performs integer arithmetic.
Fall 2000M.B. Ibáñez Lecture 26 I/O Systems II. Fall 2000M.B. Ibáñez Application I/O Interface I/O system calls encapsulate device behaviors in generic.
LECTURE 4 Logic Design. LOGIC DESIGN We already know that the language of the machine is binary – that is, sequences of 1’s and 0’s. But why is this?
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
High Performance Embedded Computing © 2007 Elsevier Lecture 4: Models of Computation Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte.
Los Alamos National Laboratory Streams-C Maya Gokhale Los Alamos National Laboratory September, 1999.
SOFTWARE DESIGN AND ARCHITECTURE
ECE 448 Lecture 6 Finite State Machines State Diagrams vs. Algorithmic State Machine (ASM) Charts.
Lesson 2: Introduction to Control programming using Labview
CSCI1600: Embedded and Real Time Software
CSCI 315 Operating Systems Design
Parallel communication interface 8255
Lesson 4 Synchronous Design Architectures: Data Path and High-level Synthesis (part two) Sept EE37E Adv. Digital Electronics.
CSCI1600: Embedded and Real Time Software
Chapter 13: I/O Systems.
Prof. Onur Mutlu Carnegie Mellon University
Prof. Onur Mutlu Carnegie Mellon University
Presentation transcript:

INTEGRATING TIMING AND FREE-RUNNING ACTORS WITH DATAFLOW Tim Hayles Principal Engineer National Instruments September 9, 2008

Agenda  What is LabVIEW Dataflow?  Why is timing important to NI?  Further motivation for this research  Key elements  Asynchronous Data Wires  Asynchronous Timing Wires  A small set of “Free Running” Actors  Implementation Details  Examples

What is LabVIEW Dataflow?  aka Structured Dataflow  Loops, cases, sequences, …  aka Homogenous Dataflow  Always a single token on a wire  aka simply as ‘G’  Dynamically scheduled  Data driven  Simple to use and understand  Widely successful

LabVIEW Dataflow

Why is Timing Important to NI?  We make I/O products  I/O timing requires  Configuration  Routing  Synchronization Multiple subsystems on one board Multiple boards in one chassis Multiple chassis  I/O timing must play well with application timing

DAQmx STC Clock Model

DAQmx API

Dialog Configuration

Maybe this would work …

Data Acquisition: Dataflow API  Generate a single, re-triggerable pulse, delayed from the trigger  DAQmx dataflow configures a circuit and activates it  Clearing the task has the side effect of disabling the circuit

Data Acquisition to the Pin  This mixed model is much closer to the actual hardware  Opening up the pulse generator can reveal more detail

Now we also want …  To further exploit parallelism even between nodes sharing a data transformation  To incorporate common data exchange techniques into the language  First class support for  Pipelines  Multi-rate  Streaming  Timing  Offer a multi-target programming canvas  Deployment, startup and shutdown order

Asynchronous Wire  No inherent semantics  All behavior conferred by implementation outside LabVIEW – though written in LabVIEW  One wire for data  One wire for timing  Producer and consumer nodes become “free- running” actors firing based on  Data or space availability  Timing

Timing Wires  Carry not time stamps, but ‘ticks’  Time stamps are data  Ticks are unit-less and ephemeral state changes Voltage transition Boolean transition  Route signals  Clock domains for FPGA logic  Clocks for I/O timing and triggering  Triggers for timing computations  Abstract  Copper traces (actual wires)  Memory locations (‘soft’ clocks and triggers)

Timing Wires

 Triggers can be polymorphic to accept time stamps (but that’s a data wire)

Asynchronous Data Wire  Buffered  Writer usually, though not always, ‘owns’ the buffer  Besides depth, buffer has type  Register  Fifo  Circular buffer  Type determines behavior  aka data exchange policy

IF-RIO Experiment  RF Transceiver product  Async wires and actors used on same canvas as LabVIEW dataflow

IF-RIO Experiment Now  A new palette of seven async actors and two dataflow actors  FPGA only

IF-RIO Experiment – FPGA code

Harnessed User G Code  False case writes false to Start DAC otherwise empty  No notion of buffering policies used in async layer

IF-RIO Experiment – FPGA code

Harnessed User G Code  LabVIEW dataflow makes the copy of the data  When the first copy is made, Start goes true and the DAC begins consuming data

Harness Integration of Dataflow  A technique for complete separation of the MOCs  The VI is pure LabVIEW dataflow  The free-running Harness generates the code to read and write the asynchronous wires and call the VI  Code generation is optimized for streaming

Harness Generated Code  If the harnessed VI does not support any of the streaming protocol terminals, the IP Block only executes when  There is no pending write  A read was succesful

System Diagram  MOC integration  Complete separation  Limited mixing  I/O integration  Discover  Configure  Operate  Target integration  Multiple targets  One canvas

Four Target System Diagram

G behind System Diagram  Just the accessors and terminals here

G behind System Diagram G code must provide the loop

Three Target System Diagram

Physically Constrained View

More System Diagram Research  Relation to timestamp based MOCs  MOC hosting  Debugging  Simulation  Scheduling  A state machine for deployment, etc  Communication between the state machine and the hosted code  Mapping IP among processing resources

Contact Information    Local contact:

Dataflow Integration Strategies  Freely mixed with dataflow  Completely separated from dataflow  Limited mixing with dataflow

LabVIEW Dataflow  Naturally concurrent, but nodes with dataflow dependencies are sequential  Simple firing rule, but  greedy, must have one and only one token per wire on all wires  timing of I/O often independent of dataflow

Freely Mixed Integration  Asynchronous wires and actors mixed with G  “Amorphous Heterogeneous Dataflow”  Both structured and non-structured  Any number of tokens may be on a wire  IF-RIO experiment  FPGA target  RF applications

Complete Separation  Asynchronous wires and actors in a separate diagram  The System Diagram  A multiple processing target development canvas  A host for other models of computation  Integrates well with our I/O  Interoperation with LabVIEW dataflow is managed by the System Diagram  Scheduling  Data transfer  G remains G

Limited Mixing  Asynchronous actors in System Diagram only  Asynchronous wires in both System Diagram and G  Data is moved between dataflow and asynchronous wires only by dataflow actors in G  Scheduling of G code is shared  Initial invocation controlled by System Diagram  Subsequent scheduling controlled by G

IF-RIO to the Pin  Drill into hidden actors  Reveal both educational and configurable elements  CDC 7005

CDC 7005 plus inputs

Initial Drop Default configuration Thick border indicates further detail is available maybe via double-click

In place expansion of configuration options Thick border on VCXO hints are more detail there To collapse perform same action that expanded Next Level: Timebase Choices

Choice of DAC value now offered Performing expand/collapse on the original node collapses the whole thing Any configuration changes made at deeper levels are preserved if collapsed Next Level: PLL Configuration

Register Data Wire  Single element deep  No waiting policy  Both data and space are always available  Unread data clobbered  Same data read multiple times

FIFO Data Wire  Same as a queue  N element size, N >= 1  Writer waits on space availability  Reader waits on data availability  Exceptions  Waiting can be disabled  I/O actors never wait

Circular Buffer Data Wire  N element size, N >= 2  When N = 1 it’s a Register  Like Register, no waiting  Unread data clobbered  Same data read multiple times  Unlike Register, a writer can wait for I/O read pointer (regeneration case)  Like FIFO, data is first in first out  Unlike FIFO I/O writer can push read pointer (pretrigger case)

DVB-T from NIWeek 2007

Streaming Handshaking Protocol  Enables FPGA IP to execute every cycle  May not be able to accept data  May not have data to emit  But still has useful work to do  The IP can support all or some of these  output valid  input valid  ready for input  ready for output

Stream Protocol in Use

Harness Generated Code  The harnessed VI supports all of the streaming protocol terminals  The IP Block executes every cycle