Architettura degli Elaboratori, Domanda 1

Documenti analoghi
Architettura degli Elaboratori,

Architettura degli Elaboratori, a.a Correzione

Architettura degli Elaboratori

Architettura degli Elaboratori, Esercitazione 4. Domanda 1

Architettura degli Elaboratori

Architettura degli Elaboratori

Architettura degli Elaboratori - Correzione Appello del 18 luglio 2006, A.A. 2005/06

Architettura degli Elaboratori

Architettura degli Elaboratori

Architettura degli Elaboratori Appello del 21 febbraio Domanda 1 (tutti)

Architettura degli Elaboratori

Architettura degli Elaboratori, Esercitazione 2

Esercizio 1. Progettare la PO a partire dal microprogramma eseguibile e successivamente:

Architettura degli elaboratori

Architettura degli Elaboratori - Correzione

Architetture degli Elaboratori Prima prova di verifica intermedia bozza di soluzione

Esercitazione 4 di verifica

Architettura degli Elaboratori. Domanda 1 (per tutti)

Architettura degli elaboratori A. A o Appello 7 febbraio 2017

Architettura degli elaboratori A.A

Architettura degli Elaboratori. Domanda 1 (tutti)

Architettura degli Elaboratori, Prima prova di verifica intermedia. 7 novembre Domanda 1

Esercitazione 5 di verifica

Prima prova di verifica intermedia

Architettura degli Elaboratori A.A appello 23 giugno 2010

Prima Esercitazione di Verifica Intermedia

Architettura degli Elaboratori, Esercitazione 1

Esercitazione 1 di verifica

Architettura degli Elaboratori, a.a Correzione della Prima Prova di Verifica Intermedia

Note sull utilizzazione di componenti logici di tipo memoria

Architettura degli Elaboratori A. A Prima prova di verifica intermedia e appello straordinario 3 novembre 2017

Architetture degli elaboratori A.A

Architettura degli Elaboratori A.A Quarto Appello 14 gennaio 2015

Esercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto

Architettura degli Elaboratori Seconda prova di verifica intermedia

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 22 giugno Attenzione:

Architettura degli Elaboratori A.A Appello 5 settembre 2016

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Pre-appello del 12 Gennaio Attenzione:

Architettura degli Elaboratori

Ingresso-Uscita e Interruzioni

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 25 Febbraio Attenzione:

Architettura degli elaboratori A. A

SECONDA PROVA INTERMEDIA DEL MODULO DI. 1 giugno 2017 NOME: COGNOME: MATRICOLA:

Un quadro della situazione. Lezione 14 Il Set di Istruzioni (2) Dove siamo nel corso. I principi di progetto visti finora. Cosa abbiamo fatto

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 12 Gennaio Attenzione:

Architettura dei sistemi di elaborazione: La CPU: Architettura (parte 2)

Archittettura degli elaboratori A.A

Corso di Laurea in Informatica

Architettura degli Elaboratori - A.A Primo Appello - 5 giugno 2015 Risultati e calendario degli orali su web appena disponibili

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione:

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 10 Febbraio Attenzione:

Architettura degli elaboratori A.A aprile 2019

Microarchitettura: Livello 1

Architettura di von Neumann

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Pre-appello del 17 Gennaio Attenzione:

Istruzioni e linguaggio macchina

Architettura del calcolatore. Prima parte

Fondamenti di Informatica A. A / 1 9

Architettura dell elaboratore

Architettura dell elaboratore

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 20 Giugno Attenzione:

Assegnazione di una variabile

Esercitazione 2 di verifica

ESERCITAZIONE Unità centrale di elaborazione Ciclo base di un istruzione Meccanismo di interruzione

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 8 novembre Attenzione:

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 26 Gennaio Attenzione:

Corso di Laurea in Informatica

Corso di Laurea in Informatica Architetture degli Elaboratori

La macchina di Von Neumann. UNIVERSITÀ DEGLI STUDI DEL SANNIO Benevento DING DIPARTIMENTO DI INGEGNERIA CORSO DI "PROGRAMMAZIONE I"

A.A. 2018/2019. CPU e Linguaggio Macchina FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Architettura degli elaboratori Primo Appello A.A gennaio 2018

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 19 Febbraio Attenzione:

Criteri di caratterizzazione di una memoria

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Pre-appello del 14 Gennaio Attenzione:

Domanda 2 Si dica se le seguenti affermazioni sono vere o false, dandone opportuna e sintetica motivazione:

Rappresentazione dell informazione

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Sottosistemi ed Architetture Memorie

Architettura del Calcolatore

Esercitazione su Gerarchie di Memoria

Fondamenti di Informatica e Programmazione. P ro f. G i a n n i D A n g e l o

Capitolo 4 Parte 1 Le infrastrutture hardware. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

PROVA SCRITTA DEL MODULO DI. 16 gennaio 2017

Il primo programma C++

Architettura di von Neumann

Architettura di von Neumann

Porte logiche di base. Cenni circuiti, reti combinatorie, reti sequenziali

Esercizio. Si consideri una cache con 64 blocchi di 16 byte ciascuno. A quale numero di blocco corrisponde l indirizzo 1200 espresso in byte?

Calcolatori Elettronici

Architettura hardware

Domande di Reti Logiche compito del 08/01/2019

Macchina di Von Neumann

Struttura di un elaboratore

Architettura dei sistemi di elaborazione (Input/Output parte 1)

Architettura degli elaboratori Tema d esame del 20/01/2016

Transcript:

Architettura degli Elaboratori, 2007-08 Appello del 16 gennaio 2008 Domanda 1 Un processo Q opera su due array di interi, A[][] e B [][], con = 1K. Il valore di A è ottenuto da un unità di I/O; il valore di B è il risultato di una certa elaborazione su A. La CPU ha processore D-RISC e cache primaria. Si considerino le seguenti configurazioni, (1) e (2), dell architettura dell elaboratore, con particolare riguardo all unità di I/O: M M (1) (2) C MMU C MMU P (D-RISC) I/O MI/O P (D-RISC) I/O UIT capacità 4 M UIT el caso (1) l unità di I/O ha associata una unità di memoria MI/O contenente un componente logico memoria di capacità 4M parole, mentre nel caso (2) una simile unità non è prevista. L unità di I/O acquisisce le parole di A dal dispositivo associato (non indicato in figura). a) Si supponga che I/O non sia implementato come processo esterno e che non sia virtualizzato da un processo driver. Spiegare come, nei casi (1) e (2), avviene la cooperazione tra Q e l unità di I/O affinché Q possa operare su A: cioè le azioni svolte dall unità di I/O, dal processore, e dal processore quando è in esecuzione il processo Q. Spiegare se il tempo di completamento di Q è uguale o diverso nei casi (1) e (2) ed eventualmente in quale caso è maggiore, assumendo che tutte le unità di memoria abbiano lo stesso ciclo di clock e che tutti i collegamenti inter-chip abbiano la stessa latenza di trasmissione. b) Si supponga che I/O sia implementato come processo esterno e che non sia virtualizzato da un processo driver. Si assuma l esistenza di un livello con linguaggio LC. Spiegare le stesse cose del caso a) e, rispetto a tale caso, mettere in evidenza le differenze funzionali ed eventualmente di prestazioni. Domanda 2 L elaborazione interna del processo Q della Domanda 1 è la seguente: i = 0.. 1 j = 0.. 1 B[i][j] = F (A[i][j], A[0][j]) Con riferimento alla cache, determinare l insieme di lavoro e il numero di fault del programma, sapendo che la cache opera su domanda, ha capacità 16K parole, i blocchi sono ampi 16 parole, e la funzione F consta di circa 1000 istruzioni, tutte eseguite. Spiegare come è possibile garantire l insieme di lavoro determinato. Domanda 3 Una unità di elaborazione U ha tre ingressi esterni: A di 32 bit, B di 64 bit e C di 2 bit, ed una uscita esterna D di 4 bit. Per ogni tripla (A, B, C) il valore di D è uguale al numero di volte che il C-esimo byte di A compare tra i byte di B. a) Con le opportune spiegazioni, scrivere il microprogramma di U in modo che il numero di cicli di clock impiegato sia lineare nel numero di byte di B, e valutarne il tempo di elaborazione in funzione del ritardo t p di una porta logica con al più 8 ingressi. Una ALU ha tempo di stabilizzazione 5t p. b) Con le opportune spiegazioni, realizzare U come una singola rete sequenziale, e valutarne il tempo di elaborazione in funzione di t p. Spiegare se è possibile realizzare tale rete secondo il modello di Mealy.

2 Soluzione Domanda 1 I due casi si caratterizzano per il modello di I/O, e di conseguenza per l organizzazione fisica della memoria condivisa tra CPU e I/O: (1) Memory Mapped I/O, con MI/O condivisa, (2) Memory Mapped I/O e DMA, con M condivisa. In D-RISC il modello MMI/O è primitivo, e quindi sempre disponibile, anche in presenza di DMA; anche nel caso (2), infatti, pur se non esiste fisicamente una memoria associata all unità di I/O, MMI/O viene usato per scambiare informazioni con l unità di I/O indirizzando locazioni fittizie. In entrambi i casi (1) e (2), il funzionamento comprende le seguenti azioni: 1. il processo Q fa richiesta all unità di I/O di un blocco di 1M parole. I parametri della richiesta dipendono dal formalismo disponibile (caso a) o b)); tra questi ci può essere la dimensione del blocco: per semplicità supporremo che 1M parole sia la dimensione standard del blocco; 2. il processo Q si sospende; l invocazione della funzionalità di commutazione di contesto è esplicita o implicita a seconda del formalismo adottato; 3. l unità I/O preleva dal dispositivo il blocco e lo scrive, parola per parola (man mano che le riceve), nella memoria condivisa: M/IO oppure M; come ricavare l indirizzo base dipende dal formalismo; 4. I/O invia una interruzione per svegliare Q, indicando nel messaggio di I/O un riferimento a Q o al suo PCB, a seconda del formalismo. Il processo attualmente in esecuzione esegue l handler che consiste appunto nella funzionalità di sveglia; 5. quando Q torna in esecuzione, esegue la computazione B = F (A, ) conoscendo l indirizzo base di A in base al formalismo adottato per la descrizione. Caso a): in qualunque linguaggio concorrente sia descritto Q, la cooperazione con l unità di I/O deve essere espressa, per forza di cose, in assembler. Le azioni di Q si caratterizzano come segue: azione 1: la richiesta è effettuata con una o più STORE con indirizzi logici mappati nello spazio di I/O; i parametri consistono in come riferire A e come riferire il PCB di Q. Ad esempio, adottando il metodo a capability, Q passa la capability di A e la capability del PCB. Oppure, se I/O non adotta capability, può essere passato l identificatore di Q e un identificatore unico di A (se Q e I/O adottano indirizzi logici distinti), oppure l indirizzo logico di Q e del PCB (indirizzi logici coincidenti), oppure l indirizzo fisico di A e del PCB (dopo traduzione esplicita da parte di Q); azione 2: la sospensione è esplicita, chiamando la procedura per commutare contesto; azione 5: nel caso (2) anche per l array A (oltre che per tutti gli altri oggetti) verrà sicuramente utilizzata la gerarchia memoria principale - cache, mentre nel caso (1) dipende se l architettura prevede il trasferimento in cache di informazioni fisicamente presenti nello spazio di I/O in quanto, se non fosse possibile sfruttare una organizzazione della memoria di I/O a larga banda, tale trasferimento potrebbe essere troppo lento agli effetti delle prestazioni della cache (come normalmente accade). La differenza in prestazioni dipende da questa distinzione: se non è possibile usare cache, il caso (1) ha un tempo di completamente maggiore. Caso b): Q e I/O sono descritti con il linguaggio concorrente LC. Esiste un canale di comunicazione (ch1) da Q ad I/O per la richiesta, ed un canale (ch2) da I/O a Q per la risposta (valore di A). Le azioni si caratterizzano come segue: azione 1: la richiesta di Q è effettuata con una send su ch1; se la dimensione del blocco è implicita, l unico parametro è il valore di ch2 che I/O assegnerà ad una variabile channelname. Tutti gli altri parametri del caso a) ora sono ricavati tramite i descrittori dei canali e, in generale, dal supporto delle comunicazioni. Il

3 supporto della send provvede ad inviare una segnalazione all unità di I/O, che si trovava in attesa attiva nella receive su ch1; azione 2: dopo aver eseguito la send, Q esegue una receive su ch2, che certamente provoca la sua sospensione. La commutazione di contesto è quindi effettuata implicitamente dal supporto; azioni 3, 4: il processo esterno I/O, dopo aver eseguito la receive su ch1, comincia a leggere i dati dal dispositivo e, contestualmente, esegue la send su ch2. Poiché trova che Q è sospeso, il supporto della send provvede a scrivere il blocco di dati direttamente nella variabile targa A il cui riferimento si trova nel descrittore di canale (secondo uno dei metodi ricordati in precedenza); nel descrittore di canale trova anche il riferimento al PCB di Q, che verrà inviato nel messaggio di interruzione per svegliare il partner. Valgono le differenze tra le prestazioni delle organizzazioni (1) e (2), dovute agli accessi della CPU tanto ai descrittori di canale ch1, ch2, quanto alla variabile A: nel caso (2) tutti questi oggetti sono fisicamente allocati in M, e quindi soggetti al trasferimento in cache. Il tempo di completamento è praticamente lo stesso nel caso a) e nel caso b). Domanda 2 Gli array A e B siano memorizzati per righe. Tutti i blocchi di cache di A e di B sono acceduti almeno una volta, con piena località. Il riuso si ha solo per i blocchi della prima riga di A, che è utilizzata in tutte le iterazioni. Di conseguenze, tutta la prima riga di A fa parte dell insieme di lavoro, assieme al blocco corrente di A ed al blocco corrente di B, complessivamente: + 2 blocci di dati con = 16. Per quanto riguarda le istruzioni, in assenza di altre informazioni si può assumere che ci sia riuso delle istruzioni della procedura, per cui fanno parte dell insieme di lavoro all incirca altri 1000 blocci di istruzioni Infine, fanno certamente parte dell insieme di lavoro di Q la sua Tabella di Rilocazione, il suo PCB e le informazioni per accedere alla Lista Pronti. Data la capacità della cache, tutto l insieme di lavoro può risiedere in cache. Per imporre che i blocchi della prima riga di A non siano rimossi dalla cache, una volta letti per la prima volta, occorre che le istruzioni di LOAD che fanno riferimento alle componenti A[0][j] siano annotate con l opzione non_deallocare. Il numero di fault, per l elaborazione interna di Q, è dato da: Complessivamente: 1000 fault per istruzioni fault per la prima riga di A 1 fault per le altre rige di A fault ~ 2 Essendo B in sola scrittura, i fault su B, sempre in numero di 2 /, non hanno impatto sulle prestazioni in quanto non comportano trasferimento di blocchi. Osserviamo che, essendo il numero di fault quadratico in, l ottimizzazione di non deallocare la prima riga di A non ha un impatto significativo sulle prestazioni. D altra parte, dal punto di vista metodologico va rimarcato che il compilatore cerca comunque di determinare le occasioni di riuso, come questa, anche se difficilmente potrà essere in grado di verificare, per ogni programma, se il riuso sia effettivamente utile o meno se non è ricavabile un modello dei costi del programma.

4 Domanda 3 (Traccia di soluzione: per maggiori spiegazioni e dettagli si vedano l Esercitazione 1 e la Prima Prova di Verifica Intermedia) a) L unità fa uso di controllo residuo (mediante opportuni commutatori nella PO) per riferire il C-esimo bye di A ed il generico byte degli otto che fanno parte di B. Per minimizzare il numero di cicli di clock, utilizzeremo una variabile di condizionamento complessa che indica se il C-esimo byte di A ed il generico byte di B sono uguali. Un altra soluzione avrebbe potuto utilizzare una variabile di condizionamento semplice pur di adottare una opportuna inizializzazione e terminazione del loop, oltre che un opportuno parallelismo nelle microoperazioni. // registri I e COUT di 4 bit // 0. (RDYI = 0) nop, 0; (=1) reset RDYI, set ACKI, A M, B, C J, 0 I, 0 COUT, 1 1. (I 0, zero (M[J] [I m ]), ACKOUT = 0 0 ) COUT + 1 COUT, I + 1 I, 1; ( = 0 1 ) I + 1 I, 1; ( = 1 0 ) nop, 1; ( = 1 1 ) COUT D, set RDYOUT, reset ACKOUT, 0 La PO comprende 3 ALU, una ( ) per la variabile di condizionamento zero ( ), avente in ingresso solo le uscite dei commutatori di controllo residuo, le altre due (+1) per l incremento di COUT e di I. Si verifica la condizione necessaria per la correttezza della PO. Agli effetti del ciclo di clock, si ha: T PO = 7 t p, T PO = 7 t p, T PC = T PC = 2 t p = 17 t p Il numero di cicli di clock è uguale a 2 (inizializzazione e terminazione) + 8 (loop), quindi il tempo di elaborazione vale 170 t p. b) Tutto il calcolo consiste in una funzione pura F(A, B, C) che quindi è realizzabile con una rete combinatoria, mostrata nella figura a pagina seguente. La rete, inclusa la parte g, viene interamente realizzata partendo da un formalismo algoritmico. Il microprogramma consta di una sola microistruzione: 0. (RDYI, ACKOUT = 0, 1 0) nop, 0; (= 11 ) reset RDYI, set ACKI, set RDYOUT, reset ACKOUT, F(A, B, C) D, 0 La rete sequenziale consiste della rete combinatoria F, della rete combinatoria PC, e dei registri di interfaccia A, B, C, D, RDYI, ACKI, RDYOUT, ACKOUT. La rete combinatoria PC si stabilizza in parallelo alla F. Si tratta di una rete di Moore, in cui la funzione di transizione dello stato interno è data da F(A, B, C) e dai valori degli ingressi dei registri di interfaccia, mentre la funzione delle uscite coincide semplicemente con i valori delle uscite dei registri D, ACKI, RDYOUT. L eliminazione del registro D trasforma la rete di Moore in una rete di Mealy: la funzione delle uscite è ora data da F(A, B, C), mentre la funzione di transizione dello stato interno è data dai valori degli ingressi dei registri di interfaccia.

5 La rete combinatoria g è definita come: (d 0 d 1 d 2 d 3 ) = numero_di_zeri (x 0 x 1 x 2 x 3 x 4 x 5 x 6 x 7 ) L espressione logica può essere ricavata da una descrizione algoritmica in termini di case, con le seguenti caratteristiche: Si ha: d 0 : un solo termine AD con tutte le variabile negate; d 1 : OR di tutti i possibili termini AD con 4 variabili negate, 5 variabili negate, 6 variabili negate, 7 variabili negate, d 2 : OR di tutti i possibili termini AD con 2 variabili negate, 3 variabili negate, 6 variabili negate, 7 variabili negate, d 3 : OR di tutti i possibili termini AD con 1 variabile negata, 3 variabili negate, 5 variabili negate, 7 variabili negate. T F = 12 t p, = 13t p Alternativamente, in modo più semplice ma con un maggior ritardo di stabilizzazione, la descrizione algoritmica può essere data in funzione della somma di tutti gli x i negati. L implementazione consiste in un albero di ALU (somma su 4 bit), su 3 livelli, quindi: T F = 23 t p, = 24t p