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 di microprocessore

Lezione 10 di Sistemi dedicati

Docente: Giuseppe Scollo

Università di Catania
Dipartimento di Matematica e Informatica
Corso di Laurea Magistrale in Informatica, AA 2017-18

Indice

  1. Interfacce di microprocessore
  2. argomenti della lezione
  3. interfacce mappate in memoria
  4. interfacce di coprocessore
  5. interfacce di istruzioni custom
  6. flusso di progetto di ASIP
  7. esempio: interfaccia di istruzione custom Nios-II
  8. banchi di registri per istruzioni custom Nios-II
  9. riferimenti

argomenti della lezione

di che si tratta:

interfacce mappate in memoria

seminario di Grazia Pagano (PDF)

interfacce di coprocessore

Schaumont, Figura 11.7 - interfaccia di coprocessore

Schaumont, Figure 11.7 - Coprocessor interface

quando occorre un throughput di dati elevato tra il software e l'hardware custom, un'interfaccia dedicata supera le prestazioni di quelle mappate in memoria

  • un'interfaccia di coprocessore non usa il bus su chip bensì una porta dedicata sul processore, pilotata da istruzioni di coprocessore

sia l'insieme di istruzioni di coprocessore che la specifica interfaccia di coprocessore dipendono dal tipo di processore; non tutti i processori hanno un'interfaccia di coprocessore

vantaggi principali di un'interfaccia di coprocessore rispetto al bus su chip:

interfacce di istruzioni custom

l'integrazione di hardware e software può essere notevolmente accelerata come segue:

  1. riservare una parte dei codici operativi di un microprocessore per nuove istruzioni
  2. integrare i moduli hardware custom direttamente nella microarchitettura del microprocessore
  3. controllare i moduli hardware custom usando nuove istruzioni derivate dai codici operativi riservati

il risultato di un tale progetto è un Application-Specific Instruction-set Processor (ASIP)

il progetto di ASIP automatizza gli aspetti più difficili del codesign HW/SW:

flusso di progetto di ASIP

Schaumont, Figura 11.12 - flusso di progetto di ASIP

Schaumont, Figure 11.12 - ASIP design flow

il progetto di un ASIP sequenziale generalmente non produce prestazioni migliori del progetto di SOC basato su moduli hardware custom, tuttavia ha minor propensione all'errore

esempio: interfaccia di istruzione custom Nios-II

il processore softcore Nios-II ha un'interfaccia di coprocessore su cui si possono definire istruzioni custom e collegare moduli hardware

Schaumont, Figura 11.15 - temporizzazione dell'interfaccia 
                                    di istruzione custom Nios-II

Schaumont, Figure 11.15 - Nios-II custom-instruction interface timing

l'interfaccia supporta l'esecuzione a durata variabile di istruzioni custom mediante doppio handshake

l'input clk_en si usa per disabilitare l'hardware custom quando l'istruzione è inattiva

banchi di registri per istruzioni custom Nios-II

è supportato anche l'uso di un banco di registri locale nel modulo hardware custom

Schaumont, Figura 11.16a - integrazione di istruzione custom Nios-II 
                                     con il banco di registri del processore

Schaumont, Figure 11.16a - Nios-II custom-instruction integration with processor register file

Schaumont, Figura 11.16b - integrazione di istruzione custom Nios-II 
                                     con banco di registri locale

Schaumont, Figure 11.16b - Nios-II custom-instruction integration with local register file

un'istruzione custom può avere operandi nei due banchi di registri: registri con prefisso r sono collocati nel processore, mentre registri con prefisso c sono collocati nel modulo hardware

  • è permesso l'uso di entrambi in un stessa istruzione, e.g.
    custom 0x5, c2, c3, r5

la figura 11.16b illustra solo il caso del primo operando: il segnale di controllo reada seleziona il banco di registri, del processore o locale

  • nel primo caso, l'operando è fornito attraverso la porta dataa, associata a un registro del processore
  • nel secondo caso, l'input a seleziona il registro locale da usare quale operando

riferimenti

letture raccomandate:

per ulteriore consultazione: