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

Progetto di un coprocessore multicore mappato in memoria

Lezione 12 di Sistemi dedicati

Docente: Giuseppe Scollo

Università di Catania
Dipartimento di Matematica e Informatica
Corso di Laurea Magistrale in Informatica, AA 2019-20

Indice

  1. Progetto di un coprocessore multicore mappato in memoria
  2. argomenti della lezione
  3. spazio di progetto
  4. evoluzione del codesign di calcolo del delay
  5. struttura di un coprocessore multicore
  6. vincoli all'interfaccia hardware
  7. funzioni sulle traiettorie di Collatz
  8. idee per il codesign di estensioni funzionali
  9. riferimenti

argomenti della lezione

di che si tratta:

spazio di progetto

possibili evoluzioni del codesign realizzato nell'esercitazione precedente si possono prefigurare lungo due direzioni ortogonali di sviluppo:

un esempio di combinazione ortogonale delle due direzioni è dato dai seguenti obiettivi per un primo progetto, affrontato nella prossima esercitazione:

estensioni funzionali più significative sono individuabili dalla considerazione di funzioni, definite sulle traiettorie di Collatz, diverse dal delay ma per il calcolo delle quali è comunque necessaria la generazione delle traiettorie

evoluzione del codesign di calcolo del delay

una prima alternativa di progetto da considerare per la replica delle unità hardware di calcolo del delay è:

la seconda opzione è preferibile in vista di possibili ulteriori estensioni che richiedessero accesso delle diverse istanze a dati condivisi, e.g. definiti come parametri di configurazione

altre decisioni di progetto riguardano il numero delle istanze parallele di calcolo, dette core nel seguito, e la dimensione dei dati di I/O del coprocessore

struttura di un coprocessore multicore

l'estensione a 64 bit dell'input del singolo core è ottenuta facilmente con ovvia modifica del sorgente Gezel dall'esercitazione precedente e con la stessa correzione all'output VHDL del traduttore fdlvhd

occorre poi dotare il coprocessore multicore di circuiti per il corretto smistamento dei dati di I/O fra l'interfaccia e un core selezionato dal processore:

la descrizione in VHDL della multiplazione è semplice se si collocano gli output dei core in un vettore da 2n×16 bit, basta infatti usare un operatore di selezione sul vettore

la descrizione in VHDL della demultiplazione, più complessa, è fattibile usando un operatore di scorrimento logico, come esemplificato per un decodificatore generico in Zwoliński, 4.2.3

vincoli all'interfaccia hardware

lo scambio di segnali alle porte di I/O del coprocessore multicore va adattato ai segnali disponibili all'interfaccia Avalon-MM, tenendo conto di alcuni vincoli su questi, quali:

poiché il processore Nios II può trasferire in una singola transazione non più di 32 bit, si conviene che questa sia la larghezza di parola del coprocessore all'interfaccia Avalon, ovvero la larghezza dei segnali writedata e readdata

lo spazio degli indirizzi di registro del coprocessore è dunque l'intervallo [0, 3×2n], tenendo conto di un indirizzo per il registro di stato, dunque address è largo n+2 bit

funzioni sulle traiettorie di Collatz

il già indicato sito web sul problema 3x+1 è una fonte preziosa di ispirazione per il codesign di estensioni funzionali del sistema considerato fin qui; ecco alcune funzioni sulle traiettorie di Collatz (definite sui valori d'inizio, che determinano le traiettorie):

alcune traiettorie sono più interessanti di altre perché stabiliscono primati (come in gare agonistiche); sono definite in tal senso le seguenti proprietà: x0 è un

seguono alcune considerazioni utili al progetto di estensioni funzionali del codesign finalizzate alla ricerca di tali rarità

idee per il codesign di estensioni funzionali

estensioni funzionali del core di calcolo del delay, per fornire anche il calcolo delle tre funzioni introdotte nella pagina precedente, sono ragionevolmente semplici

la selezione delle funzioni desiderate va considerata in due contesti diversi:

è utile alla ricerca dei Record introdotti prima lo studio di loro proprietà, ottenute da risultati teorici, che escludono a priori intere classi di valori di x0 dallo spazio di ricerca

tecniche di ottimizzazione di algoritmi di ricerca di Record sono reperibili in bibliografia

riferimenti