Switching Units

it

La condivisione delle risorse della rete tra le vari funzioni avviene mediante l’utilizzo delle SBox,  blocchi combinatori che concettualmente non sono differenti da dei multiplexer e demultiplexer. Le SBox sono poste in corrispondenza di ogni crocevia fra diversi flussi di esecuzione, prima e dopo gli attori condivisi, dove il flusso dei dati subisce delle biforcazioni o dei ricongiungimenti.

A livello pratico, il Back-End del tool MDC, a partire dalla tabella di configurazione generata dal Front-End, definisce (oltre al codice RTL del sistema riconfigurabile) i segnali di controllo per pilotare le SBox in maniera che a qualsiasi rete di ingresso corrisponda una corretta configurazione delle SBox. La configurazione delle SBox viene salvata in delle mappe chiamate Look-Up Tables (LUTs). Il sistema multifunzione riceve in ingresso un ID relativo alla rete da eseguire e, in base quest’ultimo, seleziona la configurazione delle SBox.

In hardware, le SBox devono supportare lo stesso protocollo di comunicazione della libreria di attori da interconnettere. Il framework RVC-CAL utilizza un protocollo costituito da 5 segnali diversi:

  • DATA: il canale in cui è trasmesso il dato;
  • SEND: quando alto indica che il valore su DATA è valido;
  • ACK: indica l’avvenuta ricezione da parte del destinatario, ed è orientato verso l’attore sorgente della trasmissione;
  • RDY: utilizzato dal destinatario per segnalare la propria disponibilità a ricevere nuovi dati, è anch’esso orientato verso il sorgente della trasmissione;
  • COUNT: indica il numero di dati che verranno spediti consecutivamente durante la prossima trasmissione.

Per ogni connessione tra due attori presente ad alto livello, cioè a livello dataflow, in hardware vanno gestiti tutti i 5 diversi canali di comunicazione sopraelencati, facendo attenzione al verso di ciascuno di essi.

sbox

Le unità computazionali corrispondenti agli attori SBox saranno dunque dei banchi di multiplexer e demultiplexer pilotati da un selettore comune, il cui valore viene settato in relazione all’informazione di configurazione contenuta nelle LUT.


Torna a How It Works

en

Resource sharing among the networks implementing the different functionalities is achieved by means of the Sbox modules, combinational blocks that are not conceptually different from the multiplexer and demultiplexer. The Sboxes are placed at the crossroads among different flows of data (implementing different networks), before and after the shared actors, where the data flow undergoes a fork or a join.

In practice, the Back-End of the MDC tool, starting from the configuration table generated by the Front-End, defines (along with the RTL code reconfigurable system) the correct control signals to drive the Sboxes, so that any input network match a proper configuration of the Sboxes. The configuration of the Sboxes is saved in dedicated maps called Look-Up Tables (LUTs). The multifunction system receives as input the ID of the network to be executed and, on the basis of this latter, selects the proper configuration of the Sboxes.

In hardware, the Sboxes must support the same communication protocol characterising the library of actors to be interconnected, which is the RVC-CAL one. It consists of 5 different signals:

  1. DATA: data to be transmitted;
  2. SEND: The value of DATA is valid when it is high;
  3. ACK: it indicates correct reception of a DATA and it is oriented from the consumer to the producer;
  4. RDY: it indicates that a consumer is ready to receive new data and it is oriented from the consumer to the producer;
  5. COUNT: number of DATA composing the transaction.

For each connection between two actors present at high level, i.e. at the dataflow one, in hardware all the 5 different aforementioned communication channels have to be managed, paying attention to the direction of each of them.

sbox

The computational units corresponding to the Sboxes are implemented as banks of multiplexers and demultiplexers controlled by a common selector, which value is set according to the information contained in the configuration LUT.


Reurn to How It Works