Architettura degli Elaboratori

Похожие документы
Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

Introduzione I contatori sono dispositivi fondamentali nell elettronica digitale e sono utilizzati per:

Esercitazioni di Reti Logiche. Lezione 1 Rappresentazione dell'informazione. Zeynep KIZILTAN zkiziltan@deis.unibo.it

Procedura operativa per la gestione della funzione di formazione classi prime

ESERCIZI DEL CORSO DI INFORMATICA

La codifica. dell informazione

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

Introduzione alle macchine a stati (non definitivo)

Sistemi Web per il turismo - lezione 3 -

Reti sequenziali e strutturazione firmware

Capitolo Acquisizione dati con PC

Ingegneria del Software

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

Informatica Teorica. Macchine a registri

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Algebra di Boole Algebra di Boole

* in giallo le modifiche apportate rispetto alla versione precedente datata 17/04/2012

Prova d esame di Reti Logiche T 10 Giugno 2016

Caratteristiche di un PC

La gestione dell I/O (Cap. 5, Tanenbaum)

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Come utilizzare i riferimenti assoluti e relativi in Microsoft Excel

Esercitazione 2 di verifica

Il Modello di von Neumann (2) Prevede 3 entità logiche:

- I trasferimenti di capitale e riscossioni di crediti -

Sistemi Operativi Esercizi Gestione Memoria

Progettazione di Algoritmi

PENSIONI MINIME E MAGGIORAZIONI 2013: ATTENZIONE AI REDDITI

BILANCIO DEI VINCOLI ED ANALISI CINEMATICA

EQUAZIONI CON VALORE ASSOLUTO DISEQUAZIONI CON VALORE ASSOLUTO

Risoluzione di problemi ingegneristici con Excel

Il calcolatore. Architettura di un calcolatore (Hardware)

Interfacciamento di periferiche I/O al μp 8088

I dischi ottici. Istituzioni di Informatica -- Rossano Gaeta 43

CERTIFICAZIONE ENERGETICA DEGLI EDIFICI Regione Lombardia

Sistemi di equazioni lineari

Pro memoria per la ripartizione delle spese

Capitolo 9. Esercizio 9.1. Esercizio 9.2

Il fondo trattamento di fine rapporto (TFR) Il TFR: aspetti generali e modalità di calcolo della quota di competenza

LE PREFERENZE ESPRIMIBILI Fasi A1, A2, A3

Tecnologie dei Sistemi di Automazione e Controllo

Prontuario degli argomenti di Algebra

E un trasduttore digitale in grado di fornire una indicazione binaria della. Non sfruttano alcun principio fisico. Nei trasduttori lineari a principio

Le quattro operazioni fondamentali

R E N D I C O N T O E C O N O M I C O. 1 3 m a r z o

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Topologie delle reti di telecomunicazione

Esercizi sulla conversione tra unità di misura

Collaudo statico di un ADC

Offerta prodotti IVA e IRAP

AGENZIA DEL TERRITORIO

Un semplice commutatore a pacchetto

Normalizzazione. Definizione

Guida per il cittadino

Manuale Operativo Gestione dei Ticket di assistenza 15 Marzo 2016

Accordo di partenariato. tra ente accreditato di 1^ o 2^ classe ed ente non accreditato per la presentazione di progetti di servizio civile nazionale

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre Negli esercizi proposti si utilizzano le seguenti classi:

STUDIO DI SETTORE TG42U ATTIVITÀ AGENZIE DI CONCESSIONE DEGLI SPAZI PUBBLICITARI

Università per Stranieri di Siena

Organizzazione Aziendale

CPU. Maurizio Palesi

SISTEMA DI CONTROLLO E GESTIONE STAZIONI DI RICARICA E-CORNER PER VEICOLI ELETTRICI

VALORIZZAZIONE MOVIMENTI DI SCARICO E VALORIZZAZIONE TRASFERIMENTO COSTI DI ANALITICA

UNITA DI MISURA BASE

GRIGLIA DI CORREZIONE Matematica Classe II Scuola Primaria FASCICOLO 1

FONDAMENTI DI AUTOMATICA (Ingegneria Gestionale) Prof. Matteo Corno

Disconnessione Utente

PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico

Problemi di scelta ESEMPI

Lezione n.19 Processori RISC e CISC

STIMA PIU CHE PUOI Un gioco per diventare abili stimatori

Metodo alternativo per il calcolo delle divisioni.

Confronto tra cristallino e film sottile

Esercitazione n o 3 per il corso di Ricerca Operativa

I PROCESSI FINANZIARI DELLE IMPRESE. Alessandro Russo Università degli studi di Catania - Corso di Economia e Gestione delle Imprese 17 dicembre 2013

La disposizione estetica della lettera commerciale

ORDINE DEGLI ARCHITETTI, PIANIFICATORI, PAESAGGISTI E CONSERVATORI DELLA PROVINCIA DI VICENZA

il costo in contabilità generale

SOMMARIO SEZIONE IV. Cantiere: Completamento spartitraffico in Via Nazioni Unite Seregno (MB)

SOTTOSPAZI E OPERAZIONI IN SPAZI DIVERSI DA R n

I circuiti digitali: dalle funzioni logiche ai circuiti

I Bistabili. Maurizio Palesi. Maurizio Palesi 1

ALLEGATO 4 LIVELLI DI SERVIZIO E PENALI PER LA CONDUZIONE DELLA RETE DISTRIBUTIVA FISICA

Internet Protocol Versione 4: instradamento e routing. Aspetti di forwarding e routing del protocollo IPv4

Note_Batch_Application 04/02/2011

Esercitazioni di statistica

32 L influenza della politica monetaria e fiscale sulla domanda aggregata

Ministero delle Infrastrutture e dei Trasporti SERVIZIO DI CONTROLLO INTERNO

Matematica con il foglio di calcolo

SCHEDA CLIENTE. Luogo di identificazione. Data di identificazione. Persona Giuridica RAPPORTO CONTINUATIVO OPERAZIONE OCCASIONALE

Numeri Frazionari. Numeri Frazionari

Транскрипт:

Architettura degli Elaboratori a.a. 2013/14 appello straordinario, 13 aprile 2015 Riportare nome, cognome, numero di matricola e corso A/B Domanda 1 Si consideri la seguente gerarchia di memoria memoria principale cache: metodo associativo su insiemi, con insiemi di 4 blocchi; memoria principale di capacità massima 1 Tera parole; cache di capacità 32 K parole; blocchi di 8 parole; architettura dell elaboratore di tipo elementare. a) Dare la definizione della legge di corrispondenza tra identificatori di blocco di memoria e identificatori di blocco di cache. b) Dare un implementazione dettagliata della Parte Operativa dell unità cache, senza considerare quanto richiesto dalle azioni per il caricamento di blocchi in seguito a fault. c) Si supponga che il ciclo di clock della CPU sia fissato a priori a 1 nsec, che t p = 33 10-3 nsec, e che qualunque componente logico memoria con locazioni ampie fino a 128 bit debba essere realizzato mediante componenti aventi capacità 1K locazioni e ritardo di stabilizzazione di 5t p. Determinare il tempo di accesso in cache come visto dal processore. Domanda 2 Compilare e valutare il tempo di completamento della seguente computazione: int A[N]; int x = 0, c1 =, c2 = ; i = 0.. N 1: x = x + (A[i] c1) div (A[i] + c2) eseguita su un elaboratore D-RISC con CPU pipeline scalare a singola bufferizzazione, Unità Esecutiva parallela, cache primaria su domanda di 32K (I) + 32K (D) con blocchi-c1 di 8 parole, e cache secondaria su domanda di 512K con blocchi-c2 di 128 parole. La memoria principale è interallacciata con 8 moduli e ciclo di clock uguale a. La CPU è collegata alla memoria principale attraverso una struttura di interconnessione ad albero binario. Qualunque collegamento inter-chip ha latenza di trasmissione uguale a Domanda 3 Si consideri il problema dell implementazione dell Unità Esecutiva di una CPU pipeline. Spiegare perché la realizzazione delle operazioni aritmetiche lunghe tipica di un elaboratore con CPU elementare e la realizzazione di una EU di latenza unitaria non sono adatte e vengono sostituite da un opportuna realizzazione parallela. Spiegare come è caratterizzata tale realizzazione e perché garantisce che, in assenza di dipendenze logiche, si ottenga la stessa performance di una architettura con EU di latenza unitaria. Le spiegazioni devono contenere chiare considerazioni di prestazioni e di costo delle varie realizzazioni prese in esame.

2 Soluzione Domanda 1 a) La memoria, indirizzata con 40 bit, consta di 2 37 blocchi. La cache, indirizzata con 15 bit, consta di 2 12 blocchi suddivisi in NS = 2 10 insiemi contigui. Ogni identificatore di blocco di memoria (BM, 37 bit) corrisponde ad un preciso identificatore di un insieme di blocchi di cache (SET, 10 bit) secondo una funzione nota a priori. Una funzione facile da implementare è SET = BM mod NS All interno dell insieme, il blocco di memoria può essere allocato in uno qualunque dei quattro blocchi di cache. La corrispondenza all interno dell insieme è quindi dinamica, implementabile in modo associativo. Per ogni accesso occorre determinare, mediante una ricerca associativa, in quale blocco dell insieme risiede il blocco identificato da BM (o se non risiede attualmente in nessuno). Per semplificare tale ricerca, invece che su BM il confronto può essere effettuato sulla quantità di 27 bit: TAG = BM div NS che identifica univocamente il blocco di memoria tra tutti quelli corrispondenti all insieme identificato da SET. Se uno dei quattro blocchi, sia b = 0 3, contiene il blocco cercato, l identificatore del blocco di cache (BC, 12 bit) è dato dalla concatenazione di SET e b. b) Essendo NS una potenza di 2, le quantità TAG e SET sono ottenute direttamente come i 27 bit più significativi e i 10 bit meno significativi, rispettivamente, del campo BM all uscita del registro di interfaccia d ingresso che contiene l indirizzo di memoria. La ricerca associativa è implementa usando una memoria RAM di 1K locazioni, indirizzata da SET. Ogni locazione j (j = 0 NS 1) contiene quattro coppie, la generica delle quali (ampia 28 4 = 112 < 128 bit) sia (P k, TAG k) con P k bit di presenza e TAG k che identifica il blocco di memoria presente nel blocco k- esimo (k = 0 3) dell insieme j. La lettura di tale memoria, implementata da un singolo componente logico elementare, richiede un tempo di accesso uguale a 5t p. La quantità b si ottiene come segue. Si ricavano quattro bit x 0, x 1, x 2, x 3, il generico dei quali è il risultato della funzione logica: x k = P k orbit (TAG TAG k ) Al più uno degli x k vale uno. Questa funzione si stabilizza in 5t p. Se tutti gli x k valgono zero, la funzione OR negato dei quattro x k fornisce l indicazione di presenza di fault di blocco (FAULT): questo bit viene scritto in un registro per essere testato nella microistruzione successiva. Se FAULT è falso, sono significativi i valori dei bit di b, ottenuti dalla funzione logica che riconosce la posizione k tale che x k = 1: b 0 = x 0 x 1 x 2 x 3 + x 0 x 1 x 2 x 3 b 1 = x 0 x 1 x 2 x 3 + x 0 x 1 x 2 x 3

3 ricavata dalla tabella di verità nella quale tutte le entrate, tranne le quattro di interesse (0001, 0010, 0100, 1000), hanno uscita non specificata. Questa funzione si stabilizza, in parallelo alla funzione FAULT, in 2t p. La concatenazione di TAG, b e il displacement (3 bit) dell indirizzo dà luogo all indirizzo di cache. Il componente logico memoria cache MC è realizzato mediante 32 componenti elementari in parallelo. Il commutatore di uscita consta di 3 livelli di logica, per cui l accesso a MC avviene in 8t p. A MC perviene anche il dato presente nell interfaccia. Nel caso che l operazione richiesta sia di scrittura, l abilitazione alla scrittura è condizionata da FAULT. In caso di lettura, FAULT condiziona l operazione set RDY nell indicatore di interfaccia di uscita verso il processore. Il ritardo di un t p si sovrappone all accesso in MC. c) Provando a realizzare la traduzione dell indirizzo e l accesso a MC in una sola microistruzione, dal punto b) si ottiene, in base ai ritardi indicati: T σ PO = 20 t p Il microprogramma sarebbe tale per cui: T ω PO = 0 T ω PC = 2 t p Il minimo ritardo di stabilizzazione dell unità cache vale dunque 22 t p = 0.73 nsec. Anche tenendo conto dell eventuale presenza di commutatori sugli indirizzi delle due memorie (al più, ulteriori 4t p da aggiungere alla T -PO), il ritardo per la traduzione dell indirizzo e l accesso a MC sarebbe di 0.86 nsec, che risulta minore del ciclo di clock = 1 nsec imposto per la CPU. Quindi, la realizzazione della traduzione dell indirizzo e accesso a MC in un singolo ciclo di clock è fattibile. Tenendo conto del ritardo introdotto dalla MMU, il tempo di accesso in cache, come visto dal processore, con questa tecnologia vale t c = 2 τ = 2 nsec Domanda 2 Il codice D-RISC non ottimizzato, con Rx e Ri inizializzati a zero a tempo di compilazione, è: LOOP: LOAD RA, Ri, Ra SUB Ra, Rc1, Ra1 ADD Ra, Rc2, Ra2 DIV Ra1, Ra2, Ra ADD Rx, Ra, Rx INCR Ri IF < Ri, RN, LOOP Codice ottimizzato per la CPU pipeline: LOOP: 1. LOAD RA, Ri, Ra 2. INCR Ri 3. SUB Ra, Rc1, Ra1 4. ADD Ra, Rc2, Ra2 5. DIV Ra1, Ra2, Ra 6. IF < Ri, RN, LOOP, delayed_branch 7. ADD Rx, Ra, Rx Non ci sono degradazioni dovute a dipendenze logiche IU-EU né a salti. Il tempo di servizio per istruzione vale quindi:

4 T = t Le dipendenze EU-EU, pur in presenza della latenza lunga in EU dell istruzione 5, non hanno alcun effetto sul tempo di servizio per istruzione, in quanto, per questo programma, la CPU riesce a funzionare come un pipeline puro con tempo di servizio t, essendo l unità funzionale divisore realizzata a sua volta in pipeline (più divisioni possono essere eseguite contemporaneamente). Quindi, il tempo di completamento in assenza di fault di cache vale: T c 0 = 7 N T = 14 N τ Per quanto riguarda i fault di cache, il working set è costituito dal blocco corrente di A (sola località). Siamo nelle condizioni fault consecutivi appartenenti allo stesso blocco-c2 in cui la cache secondaria, pur operante su domanda, garantisce alla cache primaria il trasferimento anticipato dei blocchi-c1 richiesti. Poiché la distanza tra due fault di C1 è 14 = 112 >, C1 trova sempre già in C2 tutti i blocchi-c1 appartenenti allo stesso blocco-c2. Inoltre, per ogni blocco-c2, occorre aggiungere la latenza di trasferimento del primo blocco-c1 da M a C2. Dunque: T fault = N fault C2 T trasfm C2 + N fault C1 T trasfc2 C1 = N σ 2 T trasfm C2 (σ 1 ) + N σ 1 T trasfc2 C1 (σ 1 ) La latenza di trasferimento di un blocco-c1 da M a C2, tramite la struttura di interconnessione ad albero, vale: Inoltre, T trasfc2-c1 ( 1) = 2. Quindi: In conclusione, il tempo di completamento vale: T trasfm C2 = 2T tr + τ M + lg 2 m (τ + T tr ) = 53 τ T fault = 53 N τ + 2 N τ = 2.4 Nτ 128 T c = T c 0 + T fault = 16.4 N τ Domanda 3 Realizzando a microprogramma un operazione lunga, come la moltiplicazione, questa avrebbe un tempo di servizio e una latenza dell ordine di O(n), con n numero di bit della parola: ad esempio, circa per il processore D-RISC elementare con n = 32. Realizzando l operazione come rete combinatoria, il tempo di servizio e la latenza avrebbero ordine O(1), cioè (. Questa realizzazione EU di latenza unitaria garantisce il tempo di servizio richiesto (t) per la CPU pipeline, ma comporta un costo troppo elevato in termini di area del chip CPU, dell ordine di O(2 n ). Con una realizzazione parallela si può ridurre il tempo di servizio rispetto alla realizzazione sequenziale, portandolo a O(1); con alcune forme di parallelismo la latenza può essere ugualmente minimizzata, con altre risulta maggiore. La scelta della forma di parallelismo dipende principalmente dal costo, inteso come complessità O( ) della struttura logica, che deve risultare drasticamente abbattuto rispetto a quello della EU di latenza unitaria. La realizzazione adottata è quella basata sulla forma di parallelismo pipeline con loop-unfolding, dove ogni stadio contiene una rete combinatoria moltiplicatore su basso numero di bit: ad esempio, per n = 32, 4 stadi con ogni stadio contenente un moltiplicatore su 8 bit. La complessità, e quindi l area, è ora dell ordine di O(2 8 ), contro O(2 32 ) della EU di latenza unitaria. Una realizzazione di tipo farm avrebbe invece un costo dell ordine di O(2 32 ), in quanto ogni worker sarebbe una EU di latenza unitaria.

5 Poiché ogni stadio del pipeline ha tempo di servizio e latenza uguale a t (t = oppure a seconda della realizzazione delle comunicazioni), il tempo di servizio dell intera operazione risulta uguale a t, mentre la latenza è uguale alla somma delle latenze degli stadi (4t nell esempio). Il tempo di servizio uguale a t garantisce che si raggiunga la massima performance in assenza di dipendenze logiche, proprio come nell ipotetica CPU con EU di latenza unitaria, ma a un costo di molti ordini di grandezza inferiore. La contropartita è rappresentata dalla latenza della realizzazione pipeline, che si ripercuote sul ritardo dovuto a dipendenze logiche, da cui discende tutta la problematica dell ottimizzazione dei programmi.