How It Works

it

Il tool MDC prende in ingresso reti di attori descritte mediante il modello dataflow proprio del formalismo MPEG-RVC.

Ogni rete è formata dall’interconnessione di attori: rappresentazioni astratte che implementano una certa funzionalità. Una rete può essere composta da attori atomici o attori complessi. Un attore atomico è un elemento unitario, non ulteriormente scomponibile. Un attore complesso è invece una sottorete di attori atomici, a loro volta, eventualmente, complessi.

mdc1

La versione base del tool MDC, MDC 1.0,  è composta da un front-end, che comprende un parser e un merger, ed un back-end che esegue il mapping hardware.

Il parser si occupa di svolgere il cosiddetto “flattening”: le reti in ingresso, qualora contengano attori complessi, vengono ricondotte a reti di soli attori atomici.

Il merger si occupa di identificare le similarità (gli attori comuni) fra le reti di attori atomici e di “fonderle” fra loro in un unica rete multi-funzionale. Ingressi, uscite o attori possono essere condivisi tra diverse reti se identici e compatibili. La condivisione di questi elementi può avvenire attraverso degli attori aggiuntivi di switching.

Le uscite del front-end di MDC sono:

  • il grafo orientato “multi-dataflow” (ossia multi-funzionale);
  • la tabella di configurazione che tiene traccia della programmabilità degli attori di switching.

Il back-end di MDC è denominato Platform Composer Tool. Esso, a partire dalla rappresentazione multi-dataflow generata dal front-end, ricava la descrizione HDL della piattaforma finale. La riconfigurazione del sistema, da una funzionalità all’altra, avviene attraverso l’utilizzo a livello fisico delle Switching Boxes (SBoxes). Queste ultime corrispondono agli attori di switching inseriti dal front-end durante la fase di fusione delle reti di ingresso. Indirizzando opportunamente le SBoxes, grazie alle informazioni memorizzate nella tabella di configurazione prodotta dal front-end, il sistema MDC-based può implementare tutte le diverse funzionalità originariamente implementabili stand-alone.

MDC non si occupa di High-Level Synthesis (ossia di compilazione diretta di codice RTL a partire dalla specifica di alto livello CAL) quindi non è in grado di generare il codice HDL del sistema riconfigurabile in maniera completamente autonoma. In sintesi i suoi compiti sono:

  • definizione automatica della specifica del sistema multi-funzionale;
  • generazione del top module del sistema;
  • gestione della programmabilità automatica.

Per l’implementazione fisica degli attori, MDC si interfaccia con una libreria di componenti esterna.

Per maggiori dettagli riguardo gli algoritmi implementati da MDC 1.0: articolo.


Guarda anche: Step-by-step Example, Switching Units, MDC 2.0.

Torna a Tool Uverview

en

The MDC tool takes as input networks of actors described according to the dataflow formalism of the MPEG-RVC standard.

Each network is formed by the interconnection of actors: abstract representations that implement a specific functionality. A network can consist of atomic or complex actors. An atomic actor is an elementary unit that cannot further decomposed. A complex actor is instead a subnet of actors that, in turn, can be atomic or even complex.

mdc1

The basic version of the tool MDC, MDC 1.0, consists of a front-end, which includes a parser and a merger, and a back-end that is in charge of the real mapping of the physical system.

The parser is responsible to carry out the so-called “flattening” operation: the input networks, if they contain complex actors, are converted in networks composed of atomic actors only.

The merger is concerned with identifying the similarities (the common actors) between networks of atomic actors and merges them together in a unique multi-functional network. Input ports, output ports or actors can be shared between different networks if identical (same functionality) and compatible (same ports width). Sharing the common elements is made possible by the insertion of additional dedicated switching actors.  The outputs of the MDC front-end of MDC are:

  • the “multi-dataflow” graph (i.e. multi-functional);
  • the configuration table that keeps track of the programmability of the switching actors.

The back end of MDC is called Platform Composer Tool. Starting from the multi-dataflow network generated by the front end, it produces the HDL description of the overall multi-functional platform. System reconfiguration is achieved at the physical level by the adoption of the Switching Boxes (SBoxes). These latter correspond to the switching actors inserted by the front end during the merging phase of the flattened input networks. The proper configuration of the SBoxes, according to the information stored in the configuration table produced by the front-end, allows MDC correctly executing all the different functionalities originally implemented by the different stand-alone networks.

MDC does not provide High-Level Synthesis (i.e. direct compilation of RTL code from the CAL high-level specification), so it is not able to generate the HDL code of the coarse grained reconfigurable system in a completely autonomous manner.

In summary, MDC provides:

  • automatic definition of the multi-functional specification;
  • the generation of the top module of the coarse grained reconfigurable system;
  • the automatic management of system programmability.

For the physical implementation of the actors, MDC leverages of a library of external components.

For all the details about the algorithms implemented by MDC 1.0 please refer to this article.


See also: Step-by-step Example, Switching Units, MDC 2.0.

Return to Tool Overview