DMI – Corso di laurea magistrale in Informatica
Copyleft
2018 Giuseppe Scollo
di che si tratta:
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
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:
l'integrazione di hardware e software può essere notevolmente accelerata come segue:
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:
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
il processore softcore Nios-II ha un'interfaccia di coprocessore su cui si possono definire istruzioni custom e collegare moduli hardware
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
è supportato anche l'uso di un banco di registri locale nel modulo hardware custom
Schaumont, Figure 11.16a - Nios-II custom-instruction integration with processor register file
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
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
letture raccomandate:
per ulteriore consultazione: