Architettura degli Elaboratori Seconda prova di verifica intermedia

Documenti analoghi
Architettura degli Elaboratori

Architettura degli Elaboratori

Architettura degli Elaboratori

Architettura degli Elaboratori

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

Esercitazione 5 di verifica

Architettura degli Elaboratori

Architettura degli Elaboratori

Architettura degli Elaboratori. Domanda 1 (per tutti)

Architettura degli Elaboratori A.A Seconda Verifica Intermedia

Esercitazione 4 di verifica

Architettura degli Elaboratori,

Architettura degli Elaboratori

Architettura degli Elaboratori. Domanda 1 (tutti)

Architettura degli Elaboratori A.A Quarto Appello 14 gennaio 2015

Architettura degli elaboratori Primo Appello A.A gennaio 2018

Architettura degli elaboratori A.A aprile 2019

Architettura degli elaboratori A.A

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

Architettura degli Elaboratori A.A appello 23 giugno 2010

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

Architettura degli elaboratori

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

Architettura degli Elaboratori A.A Quarto Appello 14 gennaio 2015

Architettura degli elaboratori A. A o Appello 7 febbraio 2017

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

Architetture degli Elaboratori Prima prova di verifica intermedia bozza di soluzione

Architettura degli Elaboratori A.A Appello 5 settembre 2016

Architettura degli Elaboratori - Correzione

Prima prova di verifica intermedia

Parallelismo a livello di istruzioni e di thread in architetture scalari e superscalari

Architettura degli Elaboratori, Esercitazione 4. Domanda 1

Note su elaborazione in parallelo a livello firmware

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

Archittettura degli elaboratori A.A

Instruction Level Parallelism Andrea Gasparetto

Corso di Laurea in Informatica

Integrazioni sull architettura con cache

Esercitazione su Instruction Level Parallelism

Architettura degli Elaboratori, a.a Correzione

Schema base di CPU. Interfacce esterne: Memoria I/O ... Architetture Parallele e Distribuite, Bus I/O MINF MMU I MMU D.

Architettura degli Elaboratori, Domanda 1

Seconda Esercitazione di Verifica Intermedia

Architetture degli elaboratori A.A

Prefazione Unit`a di misura xiii La memoria cache

Esercitazione su Instruction Level Parallelism Salvatore Orlando

Architettura degli elaboratori Anno Accademico Appello del 4 settembre 2017

Architettura dell elaboratore

Architettura dell elaboratore

Evoluzione delle architetture Evoluzione strutturale

Corso di Architettura dei Calcolatori (I anno) Prova scritta finale 29 gennaio 2007

Note sull utilizzazione di componenti logici di tipo memoria

PRIMA PROVA INTERMEDIA DEL MODULO DI. 22 aprile 2016

Lezione di Tutorato Di Architettura degli Elaboratori B 18/05/2005 SOLUZIONI: PIPELINE

CPU pipeline hazards

memoria PSW R1 R2 CPU Struttura logica dell elaboratore unità di controllo ALU unità di ingresso unità organo coordinatore clock di uscita

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

Esercizio 1.A Aritmetica binaria (nel presentare le soluzione mostrare, almeno nei passaggi piú significativi, i calcoli eseguiti) (3 punti)

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. Classe 3 Prof.ssa Anselmo. Appello del 22 giugno Attenzione:

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

Richiami sull architettura del processore MIPS a 32 bit

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

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

Nome Cognome, Numero Matricola: Durata Esame: 30 min

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

Calcolatore = esecutore di algoritmi FONDAMENTI DI INFORMATICA 1. Una semplice architettura. Istruzioni e programma ARCHITETTURA DEI CALCOLATORI ALU

Università degli Studi di Milano - Corso Architettura degli elaboratori e delle reti Turno 1 Prof. Borghese. Cognome e nome dello studente:

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello dell 11 Settembre Attenzione:

Il primo programma C++

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Il linguaggio macchina

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

Lezione 20. della CPU MIPS. Prof. Federico Pedersini Dipartimento di Informatica Università degli Studi di Milano

PROBLEMI E ALGORITMI

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Linguaggio Assembly e linguaggio macchina

Corso di Laurea in Informatica

REALIZZAZIONE DI SISTEMI DI ELABORAZIONE NUMERICA DEI SEGNALI. E. Del Re - Fondamenti di Elaborazione Numerica dei Segnali 1

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09

Architettura degli Elaboratori, Esercitazione 2

1) Un calcolatore con processore R3000 avente frequenza di clock pari a 2GHz esegue il seguente programma:

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

Lezione di Tutorato Di Architettura degli Elaboratori B 29/04/2005. SOLUZIONI: Cache

Stall on load e Hazard sul controllo

Architettura del calcolatore (Seconda parte)

Architettura degli elaboratori A.A

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

Architetture moderne

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

Linguaggio Assembly e linguaggio macchina

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

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

Linguaggio Assembly e linguaggio macchina

Assegnazione di una variabile

Transcript:

Architettura degli Elaboratori Seconda prova di verifica intermedia a.a. 2012-13, 28 maggio 2013 Riportare nome, cognome, numero di matricola e corso A/B Domanda 1 a) Dato un sistema di elaborazione a livello firmware, mostrare come viene valutato il tempo di servizio ideale e il tempo di servizio effettivo di una unità di elaborazione che ne fa parte. Si consideri un elaboratore con CPU D-RISC avente architettura pipeline scalare con ciclo di clock e comunicazioni a singola bufferizzazione. Dimostrare che è possibile progettare l Unità Istruzioni in modo tale che il suo tempo di servizio ideale sia uguale a. b) La definizione dell architettura di cui al punto a) è completata come segue: il set di istruzioni include le operazioni su reali, inclusa la radice quadrata (SQRT); Unità Esecutiva parallela con unità funzionali per interi e per reali aventi organizzazione pipeline, rispettivamente a 4 stadi e a 8 stadi; cache dati primaria operante su domanda, write-through, capacità di 32 Kparole, blocchi di 8 parole; cache secondaria on chip operante con prefetching; memoria esterna interallacciata con 8 moduli e ciclo di clock uguale a, con collegamenti inter-chip aventi latenza di trasmissione uguale a Si consideri la seguente computazione: int X[N][N]; int FILTRO[N]; float Y[N][N]; i = 0.. N1 : j = 0.. N1 : Y[i][j] = F(X[i][j], FILTRO[j]) dove N = 4000, e la funzione reale F(a, b), con a e b interi, calcola: F a, b = a b + b 2 a 2 + b 2 Valutare il tempo di completamento in funzione di N e, assumendo che la probabilità di fault della cache secondaria sia trascurabile. Fornire adeguate spiegazioni. La compilazione deve essere ottimizzata. c) Verificare se l ipotesi del punto b) sulla probabilità di fault della cache secondaria è realistica o meno. Per dare la risposta occorre anche che venga definito come è interconnessa la memoria esterna alla CPU.

2 Soluzione a) Il tempo di servizio ideale di un unità (in generale, un modulo) facente parte di un sistema è valutato considerando l unità in isolamento (o con tempo di interarrivo piccolo a piacere) e tenendo conto della latenza di comunicazione: T id = max(t calc, L com ) dove T calc è il tempo medio di elaborazione della funzione affidata all unità misurato dall istante in cui sono disponibili i dati d ingresso a quando sono pronti i risultati, e L com la latenza di comunicazione. Il tempo di servizio effettivo coincide con il tempo di interpartenza ed è dato da: dove T A è il tempo di interarrivo. T = max(t id, T A ) Nel caso della CPU data, con interfacce a singola bufferizzazione, è L com =. Si tratta quindi di dimostrare che è possibile progettare IU con T calc. In effetti, il microprogramma di IU è eseguibile in un singolo ciclo di clock, corrispondente ad una microistruzione nella quale si valutano contemporaneamente le seguenti condizioni logiche: 1. presenza di nuova istruzione da IM, 2. validità dell istruzione in base all identificatore unico, 3. possibile situazione di delayed branch in corso, 4. istruzione corrispondente al codice operativo, 5. contenuto uguale a zero di semafori associati agli eventuali registri generali usati in lettura da IU, 6. verità della condizione di salto in caso di istruzione di salto condizionato, 7. presenza di un nuovo valore inviato da EU, 8. contenuto diventato uguale a zero di semafori associati ai registri generali modificati in seguito all evento 7 e usati in lettura da IU in istruzioni bloccate, 9. interruzione. Le condizioni del tipo 1, 7 (e 9) sono valutate in modo nondeterministico, in modo che IU sia sempre pronta a servire messaggi da IM e da EU anche se presenti contempoaneamente. In conseguenza delle combinazioni significative delle condizioni logiche suddette, IU svolge, nella stessa microistruzione, tutte le azioni necessarie: A. incremento di semafori associati a registri destinazione di istruzioni aritmetico-logiche o LOAD, B. calcolo di indirizzi base più indice per dati in LOAD e STORE, C. modifica di IC, D. comunicazioni verso IM, DM, EU a seconda dei casi, E. effettuazione delle stesse azioni per istruzioni sbloccate in seguito all evento 8, F. inizio del trattamento interruzione. (Al più, per ragioni di riduzione della complessità, si può eseguire le azioni E, F in un ulteriore ciclo di clock, senza conseguenze apprezzabili sul tempo di servizio ideale.)

3 b) Dal punto di vista della gerarchia di memoria, l insieme di lavoro per i dati è costituito dal blocco corrente di X e di Y (solo località) e da tutti i blocchi di FILTRO (località e riuso). Il riuso su FILTRO è applicabile a C1 essendo N < capacità di C1; il compilatore inserisce l annotazione opportuna (non_deallocare). Essendo Y in sola scrittura, il numero complessivo di fault è dato da: N fault = N fault A + N fault FILTRO = N2 σ + N σ ~ N2 σ Anche per applicare il prefetching a C2 il compilatore inserisce opportune annotazioni (prefetching_c2). Il codice compilato è quello di un for il cui corpo è l espressione di F(a, b) (operante su alcuni registri in virgola fissa R e altri in virgola mobile RF) conclusa da una STOREF. Il codice ottimizzato segue lo schema adottato in benchmark analoghi: applicazione del delayed ranch al controllo del ciclo, spostando la STOREF dopo la IF <, anticipazione dell incremento dell indice, inizializzando il registro base di Y all indirizzo logico base meno uno. LOOP_i: LOOP_j: CLEAR Rj LOAD RX, Rj, Ra, prefetching_c2 LOAD RFILTRO, Rj, Rb, non_deallocare, prefetching_c2 INCR Rj MUL Rb, Rb, Rbb MUL Ra, Ra, Raa MUL Ra, Rb, Rab ADD Rab, Rbb, Rab SQRT Rab, RFnumeratore ADD Raa, Rbb, Rdenominatore DIVF RFnumeratore, Rdenominatore, RFrisultato IF < Rj, RN, LOOP_j, delayed_branch STOREF RY, Rj, RFrisultato ADD RX, RN, RX ADD RY, RN, RY INCR Ri IF < Ri, RN, LOOP_i END del quale valutiamo solo il loop più interno di 12 istruzioni. L unica degradazione è dovuta alla dipendenza logica IU-EU indotta dalla DIVF sulla STOREF (k = 2, N Qk = 2, d k = 1/12, L pipe-k = 8), da cui il tempo di servizio per istruzione in assenza di fault di cache: T 0 = t + 1 + 2

4 dove: 1 = t d k L pipe k + N Qk + 1 k = 9 Per quanto riguarda 2, sulla DIVF viene indotta una catena di dipendenze logiche EU-EU del quale occorre valutare le dipendenze sui dati e le relative latenze. Applicando le condizioni di Bernstein al codice di F(a,b) si ottiene il grafo di ordinamento parziale a a b b (data-flow) di figura. * * * + / In conclusione: + F(a, b) Il ramo avente latenza maggiore è quello che comprende una moltiplicazione intera, addizione intera, radice quadrata (reale), divisione reale. Le dipendenze EU-EU su DIVF da considerare, tutte con probabilità d h = 1/12, sono quindi: SQRT su DIVF (distanza h = 2, L pipe-h = 8), ADD Rab, Rbb, su SQRT (distanza h = 1, L pipe-h = 0), MUL Ra, Rb, su ADD Rab, Rbb, Rab (distanza h = 1, L pipe-h = 4). Quindi 2 = t d h L pipe h + 1 h T 0 = 32 Il tempo di completamento in assenza di fault di cache vale: T c 0 ~ N T c inner = 12 N 2 T 0 = 32 N 2 t = 64 N 2 τ h = 11 Nel caso peggiore di non considerare la sovrapposizione tra calcolo e trasferimento del blocco in seguito a fault di C1: T fault = N fault T trasfc 2 C1 = N2 σ 2 σ τ = 2 N2 τ T c = T c 0 + T fault = 66 N 2 τ Per una valutazione più precisa, si consideri che il trasferimento di blocchi da C2 a C1 si sovrappone parzialmente al calcolo di alcune istruzioni: per i > 0, dopo la richiesta a C2 del trasferimento del blocco di X, vengono eseguite LOAD FILTRO, INCR e MUL Rb, Rb, Rbb, che si sovrappongono al trasferimento del blocco di X, mentre MUL Ra, Ra, Raa deve attendere il trasferimento. Quindi, sul tempo di completamento si risparmiano 3t ogni 8 iterazioni: T fault = N fault T trasfc 2 C1 = N2 σ (2 σ τ 6τ) = 1.25 N2 τ T c = T c 0 + T fault = 65.25 N 2 τ È necessario valutare l effetto delle scritture in Y con il metodo write-through. Ogni scrittura in Y viene effettuata in parallelo in C1, C2 e M. Il tempo di interpartenza delle richieste è dato dal tempo di servizio di una iterazione del loop più interno: T ric hiesta = 12 T 0 = 32 t = 64 τ

5 che rappresenta il tempo di interarrivo delle richieste di scrittura a M. Il tempo di servizio di M per accessi a indirizzi consecutivi è uguale a: T offerta = 1 B M max = τ M m = 10τ Anche tenendo conto che M è impegnata in trasferimenti di blocchi di X verso C2, si ha che la banda offerta è senz altro maggiore della banda richiesta, per cui vale il tempo di completamento valutato sopra. c) Valutiamo se è valida l assunzione che ogni richiesta di blocco di C1 a C2 trovi il blocco già in C2. La cache secondaria opera con prefetching sui blocchi di X (e di FILTRO): poiché i blocchi di C2 sono ampi un multiplo di parole, ogni richiesta di C2 a M è relativa a più blocchi di parole. Man mano che C2 riceve un blocco di parole, questo diviene disponibile su richiesta per C1. Il tempo di interarrivo delle richieste di un blocco di X da C1 a C2 è dato dal tempo di servizio di iterazioni del loop più interno: T ric hiestac 1 C2 = σ T c inner = 8 12 T 0 = 8 32 t = 512 τ La latenza di un trasferimento di un blocco di parole da M a C2 è data da: con struttura di interconnessione consistente semplicemente in m = 8 collegamenti diretti: L trasf 64 = 2 T tr + σ m τ M + mτ = 98 τ con struttura di interconnessione (più realistica) ad albero binario con m = 8 foglie: L trasf 64 = 2 T tr + σ m τ M + log 2 m (τ + T tr ) = 108 τ In entrambi i casi, tale latenza si sovrappone completamente all elaborazione degli 8 blocchi precedenti nella CPU, per cui l assunzione fatta in b) è realistica.