Architettura degli Elaboratori. Domanda 1 (per tutti)

Documenti analoghi
Architettura degli Elaboratori

Architettura degli Elaboratori

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

Architettura degli Elaboratori,

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

Architettura degli Elaboratori

Architettura degli Elaboratori A.A appello 23 giugno 2010

Architettura degli Elaboratori

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

Architettura degli Elaboratori

Architettura degli elaboratori A. A o Appello 7 febbraio 2017

Architettura degli Elaboratori

Architettura degli Elaboratori Seconda prova di verifica intermedia

Architettura degli Elaboratori, a.a Correzione

Prima prova di verifica intermedia

Esercitazione 4 di verifica

Architettura degli Elaboratori A.A Quarto Appello 14 gennaio 2015

Architettura degli elaboratori

Architettura degli Elaboratori, Domanda 1

Prima Esercitazione di Verifica Intermedia

Note sull utilizzazione di componenti logici di tipo memoria

Architettura degli elaboratori Primo Appello A.A gennaio 2018

Architettura degli elaboratori A.A

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

Architettura degli Elaboratori

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

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

Architettura degli Elaboratori - Correzione

Esercitazione 1 di verifica

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

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

Architettura degli Elaboratori A.A Appello 5 settembre 2016

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

Architettura degli elaboratori A.A aprile 2019

Archittettura degli elaboratori A.A

Seconda Esercitazione di Verifica Intermedia

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. 27 Febbraio 2001

Reti combinatorie. Reti combinatorie (segue)

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

Architettura degli elaboratori A.A

Architettura degli Elaboratori A.A Quarto Appello 14 gennaio 2015

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

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

ESERCIZIO: PROGETTO DI UNA CPU A PIU REGISTRI

ALU e Control Unit. ALU e Control Unit

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Architettura dell elaboratore

Architettura dell elaboratore

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

Corso di Laurea in Informatica

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

Esercitazione 2 di verifica

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

Architettura hardware

Esercitazione 11. Control-Unit. Data-Path

Esercitazione su Instruction Level Parallelism

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

Reti combinatorie. Reti combinatorie (segue) Struttura di un elaboratore - introduzione. Architettura degli Elaboratori T.

senza stato una ed una sola

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

Corso di Laurea in Informatica Architetture degli Elaboratori

Lezione 17 Il Set di Istruzioni (3)

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

Informazioni varie. Lezione 18 Il Set di Istruzioni (5) Dove siamo nel corso. Un quadro della situazione

Capitolo 5 Struttura di base del processore

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Architettura degli elaboratori MZ Compito A

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

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

Architettura degli elaboratori

Architettura dei calcolatori e sistemi operativi. Pipelining e Hazard Capitolo 4 P&H

Architettura degli Elaboratori. Domanda 1 (per tutti)

Architetture dei Sistemi Elettronici

CPU pipeline 4: le CPU moderne

Architettura degli Elaboratori

Evoluzione delle architetture Evoluzione strutturale

CPU pipeline hazards

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini

Rappresentazione degli algoritmi

Descrizione di un algoritmo

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (3) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto

Cognome e nome: Matricola: Posto: Regole dell'esame.

L'architettura del processore MIPS

Richiami sull architettura del processore MIPS a 32 bit

CALCOLATORI ELETTRONICI 15 giugno 2015

Architettura del Calcolatore

Esercitazione su Instruction Level Parallelism Salvatore Orlando

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

Esame di Architetture Canale AL Prof. Sterbini 17/6/13 Compito A

Microarchitettura: Livello 1

Circuiti sincroni circuiti sequenziali:bistabili e latch

CALCOLATORI ELETTRONICI 29 giugno 2015

ESERCIZIO 1 Si consideri la seguente funzione f (A, B, C, D) non completamente specificata definita attraverso il suo ON-SET e DC-SET:

CALCOLATORI ELETTRONICI 9 settembre 2011

Capitolo 5 Elementi architetturali di base

Controllo di flusso. Università degli Studi di Milano Corso di Laurea in Informatica, A.A Homepage del corso

Transcript:

Una unità di elaborazione U Architettura degli Elaboratori appello del 3 giugno 2010 informazioni e indicazioni sul retro Domanda 1 (per tutti) contiene 256 registri di una parola, considerati appartenere a due insiemi disgiunti denominati A0,.., A127 e B0,, B127. I registri del primo insieme sono in sola lettura e tutti di valore diverso, quelli del secondo modificabili; riceve in ingresso messaggi (OP, X, Y, I), con OP di 2 bit, X e Y di una parola, e I di 7 bit, e può inviare messaggi (OUT, ESITO) con OUT di una parola ed ESITO di 1 bit; se OP = 00, scrive il valore Y nel registro Bh, con h = I; se OP = 01, invia su OUT il risultato di (Bh + Y) div 128, con h = I, e su ESITO il valore 1; se OP = 1, invia su OUT il risultato di (Bj + Y) mod 128, con j tale che Aj = X, e su ESITO il valore 1. Se non esiste alcun j tale che Aj = X, invia su ESITO il valore 0. Fornendo adeguate spiegazioni, progettare U in modo che il tempo di elaborazione sia uguale ad un ciclo di clock, e valutare il ciclo di clock in funzione del ritardo di stabilizzazione t p di una porta logica con al più 8 ingressi, considerando che una ALU ha tempo di stabilizzazione 5t p. Di tutte le reti combinatorie utilizzate, diverse da una ALU, deve essere esplicitamente data la definizione, l espressione logica ed il ritardo di stabilizzazione. a - TUTTI Domanda 2 Si consideri un programma eseguito su una architettura la cui gerarchia di memoria memoria principale cache è costituita solo dalla memoria principale M non interallacciata e dalla cache primaria C. Il programma opera su una certa struttura dati in modo da utilizzarne tutti i blocchi, ognuno mediamente una sola volta e, mediamente, una parola per blocco. Confrontare il tempo di completamento con quello ottenibile da una architettura con la stessa M e senza C. Estendere il confronto al caso di M interallacciata con m moduli, determinando un eventuale rapporto ottimo σ/m, se esiste. b - NEW, OLD-0 Si consideri il seguente frammento di codice D-RISC, da eseguire su una CPU pipeline: LOAD Rx, Ry, Ra ADD Ra, Rb, Ra IF > 0 Ra, CONT STORE Rd, 0, Ra CONT: INCR Rb END Si assuma trascurabile tanto la probabilità che il predicato dell istruzione IF sia falso, quanto la probabilità di fault della cache. Si assuma uguale a 2τ il tempo di servizio e di latenza dell istruzione END. Fornire due ottimizzazioni alternative e tali da permettere lo stesso valore del tempo di completamento: una che usi la tecnica del delayed branch, e l altra che non la usi. Valutare il tempo di completamento e dire se è ritenuto ottimo. continua

2 c OLD-1, facoltativo per OLD-0 (ma non sostituzione di uno dei precedenti) Dire se la seguente affermazione è vera, falsa, o vera sotto certe condizioni, spiegando la risposta: è necessario che i canali di comunicazione di un processo P, che esegua un certo servizio di sistema operativo, siano allocati staticamente nella memoria virtuale di P; ciò è dovuto alla creazione dinamica dei processi applicativi che possono utilizzare tale servizio. Lo stesso dicasi per l allocazione, nella memoria virtuale di P, dei PCB di tali processi applicativi. Per questo insegnamento sono previsti, durante l intero a.a., 6 appelli ed un numero massimo di 5 prove. Gli studenti del vecchio ordinamento devono scegliere se presentarsi sul programma di esame 2009-10 con l aggiunta del Cap. VII (Processi), sez. 5, 6 e 7, oppure sul programma di esame 2008-09. La scelta va fatta la prima volta che lo studente si iscrive all esame, e vale per tutti gli eventuali successivi appelli dell a.a. ai quali lo studente si presenti. Riportare su tutti i fogli consegnati nome, cognome, numero di matricola, corso di appartenenza, e la sigla NEW (per nuovo ordinamento), oppure OLD-0 (per vecchio ordinamento, programma 2009-10), oppure OLD-1 (per vecchio ordinamento, programma 2008-09). I risultati verranno pubblicati sulle pagine web del corso/dei docenti appena disponibili.

3 Soluzione Domanda 1 (per tutti) I registri A sono utilizzati solo per il confronto contemporaneo con X, mediante 128 confrontatori in parallelo; per il j-esimo, i 32 bit di uscita sono messi in OR generando un bit c j : c j = not OR(A j X) I registri B sono usati come una memoria indirizzata in modo diverso a seconda di OP: per le prime due operazioni esterne, l indirizzo è I su 7 bit in forma completamente codificata, mentre per la terza operazione esterna l indirizzo è dato, in forma completamente decodificata, direttamente dai 128 bit c 0,, c 127. Ciò comporta l uso di un selezionatore S, comandato da I, e due commutatori K1, K2, il primo comandato da I, il secondo da c 0,, c 127. La j-esima porta AND di K2 ha in ingresso B j e c j : Il microprogramma consta di una sola microistruzione outk2 = OR (B 0 AND c 0,, B 127 AND c 127 ) 0. (RDYIN, OP 1, OP 0, ACKOUT = 0 - - -) nop, 0; (= 1 0 0 -) reset RDYIN, set ACKIN, Y B[I], 0; (= 1 0 1 0, 1 1-0) nop, 0; (= 1 0 1 1) reset RDYIN, set ACKIN, (B[I] + Y) div 128 OUT, 1 ESITO, reset ACKOUT, set RDYOUT, 0; (= 1 1-1) reset RDYIN, set ACKIN, (B[j] + Y) mod 128 OUT j: A j = X, OR (c 0,, c 127 ) ESITO, reset ACKOUT, set RDYOUT, 0 quindi l unità è realizzata come singola rete sequenziale di Moore così definita: funzione delle uscite, ω: out = OUT, esito = ESITO, oltre agli indicatori di sincronizzazione in ingresso e in uscita funzione di transizione dello stato interno, σ: dove: in Bh = when β B = 1 and h = I do Y in OUT = when β OUT = 1 do if α 1 = 0 then (B[I] + Y) div 128 in ESITO = when β ESITO = 1 do else (B[j] + Y) mod 128 j: A j = X if α 1 = 0 then 1 else OR (c 0,, c 127 ) oltre agli indicatori di sincronizzazione in ingresso e in uscita Il ciclo di clock è dato da: τ = Τ σ + δ

4 Il ritardo maggiore della funzione σ è dato dalla cascata dei ritardi delle risorse per la terza operazione esterna: confrontatore (2t p ), OR a 32 ingressi (2t p ), commutatore K2 (livello AND t p, livello OR 3t p ), commutatore delle uscite di K1 e K2 in ingresso all unica ALU, comandato da α 1 (2t p ), ALU (5t p ), commutatori all ingresso di OUT ed ESITO (2t p ), comandati da α 1. Tutti i β e α si stabilizzano in parallelo durante i ritardi indicati. Le operazioni di mod e div sono a costo zero (rispettivamente i 7 bit meno significativi e i 25 bit più significativi dell uscita della ALU); il valore da scrivere in OUT va allineato in hardware a 32 bit (aggiungendo 25 bit a zero nelle posizioni più significative nel caso di mod e 7 bit a zero, sempre nelle posizioni più significative in caso di div). Quindi: τ = 18 t p a TUTTI Domanda 2 Nel caso di M non modulare, nella versione con cache dati occorre aggiungere, alle elaborazioni effettuate su cache istruzioni e registri ( puro calcolo ), il ritardo del trasferimento di N blocchi. Organizzando la memoria in modo da essere capace di trasferire sequenzialmente un blocco in seguito ad un unica richiesta, questo ritardo è dato da: N (2T tr + σ τ M + τ) Nel caso di assenza di cache dati, gli accessi in memoria costano: N (2T tr + τ M + 2τ) A causa della mancanza di località e di riuso sui dati di questo programma, l architettura con cache dati è penalizzante rispetto a quella senza, in quanto per ogni accesso ad una parola viene inutilmente letto l intero blocco che la contiene (ovviamente la differenza non sarebbe significativa solo nel caso che la parte di puro calcolo sia di ordine superiore). Nel caso di memoria interallacciata, l architettura con cache dati paga un ritardo per trasferimento di blocchi: 2 che è ancora penalizzante rispetto al caso senza cache dati, anche se la differenza è meno marcata. La funzione differenza nei tempi di accesso in memoria è monotona decrescente in m, quindi il miglior risultato si ottiene con m = σ : in questo caso la differenza non dipende da τ M e si riduce a pochi cicli di clock. b - NEW, OLD-0 Le degradazioni di prestazioni sono dovute alla dipendenza logica indotta dall istruzione 2 sulla 3 (k = 1, N Q = 2) e dal salto nella 3 (che per ipotesi avviene sempre). Complessivamente, viene introdotta una bolla ampia 3t. La probabilità di dipendenza logica e di salto sono uguali a 1/5; il tempo di servizio è uguale a 8/5 t (si applichi il modello dei costi), quindi il tempo di completamento è uguale a 8t, con t = 2τ. L unica istruzione che può essere spostata, o per applicare il delayed branch o per aumentare la distanza di dipendenza logica, è la INCR Rb. Nel caso di delayed branch: 1. LOAD Rx, Ry, Ra 2. ADD Ra, Rb, Ra 3. IF > 0 Ra, CONT, delayed_branch 4. INCR Rb 5. STORE Rd, 0, Ra

5 6. CONT: END ottenendo un tempo di servizio uguale a 7/5 t e un tempo di completamento uguale a 7t. L altra ottimizzazione è: 1. LOAD Rx, Ry, Ra 2. ADD Ra, Rb, Ra 3. INCR Rb 3. IF > 0 Ra, CONT 4. STORE Rd, 0, Ra 6. CONT: END ottenendo le stesse prestazioni. In entrambi i casi, infatti, la bolla complessiva passa da 3t a 2t. Il tempo di completamento 7t è ottimo, in quanto altre ottimizzazioni non sono possibili con una CPU pipeline. c OLD-1, facoltativo per OLD-0 (ma non sostituzione di uno dei precedenti) L affermazione è falsa, in quanto è possibile allocare staticamente tutti i canali di comunicazione di P nella memoria virtuale di P. Infatti, è noto e costante il numero massimo N di processi applicativi che possono essere creati: ad un processo creato viene assegnato un identificatore unico compreso tra 0 e N-1 e lasciato disponibile da un processo terminato. I canali d ingresso di P, se asimmetrici, hanno N mittenti (tutti i potenziali processi applicativi). Ogni canale di uscita di P è in realtà costituito da N canali (con destinatari tutti i potenziali processi applicativi), ognuno riconoscibile a programma in base ad informazioni associate alle richieste. P è scritto in modo da ricevere richieste di servizio da uno qualsiasi dei processi applicativi, e da distinguere a programma i canali di uscita. La compilazione dei processi applicativi provvede ad utilizzare i canali d ingresso di P (con identificatori noti una volta per tutte) per inviare richieste di servizio, con associate le suddette informazioni, ed a ricevere le risposte al servizio su canali di uscita da P (con identificatori noti una volta per tutte). Si può introdurre un ottimizzazione dello spazio di indirizzamento di P, consistente nell allocare dinamicamente i canali di uscita di P in funzione delle informazioni passate dai processi applicativi nei messaggi di richiesta di un servizio. Ma ciò NON cambia la natura del problema studiato, trattandosi di una ottimizzazione, non di una condizione necessaria di fattibilità. Le stesse considerazioni (inclusa l eventuale ottimizzazione) si applicano agli N PCB dei processi applicativi.