matite e gomma

Logo di Conformità WCAG-1 di Livello Tripla A, W3C-WAI Web Content Accessibility Guidelines 1.0

Validazione XHTML 1.0 Validazione CSS 3
Logo del Dipartimento di Matematica e Informatica, Insegnamento di Sistemi dedicati, link al Forum

Interfacce hardware

Lezione 11 di Sistemi dedicati

Docente: Giuseppe Scollo

Università di Catania
Dipartimento di Matematica e Informatica
Corso di Laurea Magistrale in Informatica, AA 2016-17

Indice

  1. Interfacce hardware
  2. argomenti della lezione
  3. funzioni dell'interfaccia hardware di coprocessore
  4. struttura di un'interfaccia hardware di coprocessore
  5. indirizzamento dei dati
  6. multiplazione e masking
  7. progetto del controllo
  8. controllo gerarchico
  9. mappa degli indirizzi
  10. insieme delle istruzioni
  11. riferimenti

argomenti della lezione

di che si tratta:

funzioni dell'interfaccia hardware di coprocessore

un'interfaccia hardware connette un modulo hardware custom a un bus di coprocessore o su chip

  • l'interfaccia hardware pilota le porte di I/O del modulo hardware custom

il progetto dell'interfaccia hardware deve combinare la flessibilità dell'hardware custom con gli aspetti reali dell'interfaccia hardware/software

funzioni tipiche dell'interfaccia hardware:

Schaumont, Figura 12.1 - l'interfaccia hardware mappa un modulo 
          hardware custom in un'interfaccia hardware-software

Schaumont, Figure 12.1 - The hardware interface maps a custom-hardware module to a hardware-software interface

struttura di un'interfaccia hardware di coprocessore

Schaumont, Figura 12.2 - struttura di un'interfaccia hardware 
          di coprocessore

Schaumont, Figure 12.2 - Layout of a coprocessor hardware interface

componenti comuni di un'interfaccia hardware:

  • buffer dati in ingresso: memoria di argomenti
  • buffer dati in uscita: memoria del risultato
  • interprete di comandi : controllo locale in base ai comandi software

dalla prospettiva del modulo hardware custom, è comune partizionare la collezione di porte in porte di ingresso/uscita dei dati e porte di controllo/stato

la separazione di controllo e dati è un aspetto importante del progetto poiché, nel progetto di un coprocessore, la granularità dell'interazione fra dati e controllo è scelta dal progettista

indirizzamento dei dati

proprietà di una porta dati del coprocessore: larghezza, direzione e tasso di aggiornamento

per una buona corrispondenza delle effettive porte hardware alle porte dell'interfaccia custom, conviene partire dalle proprietà delle porte hardware

nella realizzazione di questo modulo come coprocessore mappato in memoria, le porte dell'interfaccia hardware sarebbero realizzate come registri mappati in memoria

tuttavia, non sempre è possibile allocare un numero arbitrario di porte mappate in memoria nell'interfaccia hardware; in tal caso si devono multiplare le porte del modulo hardware custom sulle porte dell'interfaccia hardware

multiplazione e masking

si può realizzare la multiplazione in modi diversi: il primo è la multiplazione nel tempo delle porte del modulo hardware, la seconda con l'uso di un registro indice nell'interfaccia hardware

Schaumont, Figura 12.3 - multiplazione nel tempo di due porte 
         del modulo hardware su una porta della shell di controllo

Schaumont, Figure 12.3 - Time-multiplexing of two hardware-module ports over a single control-shell port

Schaumont, Figura 12.4 - registro indice per la selezione di una 
          fra otto porte di uscita

Schaumont, Figure 12.4 - Index-register to select one of eight output ports

la multiplazione è anche utile per trasferire a pezzi operandi lunghi, sì che l'operando passa un pezzo alla volta con la multiplazione nel tempo

la tecnica di masking è adatta a operandi molto brevi, e.g. per raggruppare diverse porte da un bit del modulo hardware in una porta dell'interfaccia hardware: si usa a tal fine un registro mask per indicare le porte del modulo da aggiornare, e.g.: new_hw_port = (old_hw_port & ~mask) | (upd_value & mask)

progetto del controllo

il progetto del controllo in un coprocessore è l'insieme di attività per generare segnali di controllo e catturare segnali di stato

la figura 12.5 mostra una generica architettura per controllare un modulo hardware custom

Schaumont, Figura 12.5 - progetto del controllo di un'interfaccia 
                                   hardware

Schaumont, Figure 12.5 - Command design of a hardware interface

  • un interprete dei comandi, al vertice del controllo nel coprocessore, accetta comandi dal software e restituisce informazione di stato
  • mentre un comando è una operazione di controllo immediata, una configurazione è un valore che avrà effetti sull'esecuzione del coprocessore per un tempo prolungato, anche su più comandi

controllo gerarchico

la figura 12.6 mostra l'architettura di un coprocessore che può realizzare la sovrapposizione di comunicazione e calcolo, come illustrato in figura 12.7

Schaumont, Figura 12.6 - controllo gerarchico in un coprocessore

Schaumont, Figure 12.6 - Hierarchical control in a coprocessor

Schaumont, Figura 12.7 - sovrapposizione dell'esecuzione 
                                   con il controllo gerarchico

Schaumont, Figure 12.7 - Execution overlap using hierarchical control

l'interprete analizza ciascun comando dal software e lo suddivide in una combinazione di comandi per le FSM del livello inferiore

per l'effettiva sovrapposizione dell'esecuzione si deve organizzare il pipelining delle azioni delle FSM, con adattamento dell'interprete dei comandi ai piani di esecuzione delle FSM del livello inferiore

mappa degli indirizzi

modello di programmazione = progetto del controllo + progetto dei dati

la mappa degli indirizzi riflette l'organizzazione di elementi di memoria del modulo hardware accessibili al software in lettura e in scrittura; il suo progetto dovrebbe procedere dal punto di vista del progettista del software piuttosto che dell'hardware, perciò:

insieme delle istruzioni

il progetto di un buon insieme di istruzioni è un problema difficile, che si pone al progettista in termini di bilanciamento tra flessibilità ed efficienza

ecco alcune generiche linee-guida per il progetto:

riferimenti

letture raccomandate:

per ulteriore consultazione: