Calcolatori Elettronici B a.a. 2006/2007

Documenti analoghi
Calcolatori Elettronici B a.a. 2004/2005

L insieme delle istruzioni (6)

Si ricorda il primo schema elementare della pipeline. che verrà indicato in modo sommario come

Corso di Laurea in Informatica Architetture degli Elaboratori

Architettura dei Calcolatori. Macchina di von Neumann /2. Macchina di von Neumann /1. Architettura dei Calcolatori

Gli indirizzi occupano spazio! Gli indirizzi occupano spazio! Corso di Architettura degli Elaboratori. Indirizzamento immediato

Instruction Level Parallelism Andrea Gasparetto

Come si definisce il concetto di performance? Tempo di esecuzione di un programma. numero di task/transazioni eseguiti per unità di tempo

Vari modi di specificare l indirizzo degli operandi

Stall on load e Hazard sul controllo

Esercitazione del 05/05/ Soluzioni

Modi di indirizzamento

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit

Pipeline nel Mondo Reale

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

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

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

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Calcolatori Elettronici

Calcolatori Elettronici A a.a. 2008/2009

Istruzioni e linguaggio macchina

Calcolatori Elettronici B a.a. 2006/2007

Stall on load e Hazard sul controllo

Calcolatori Elettronici II parte (CdL Ingegneria Informatica) Esame del 22 settembre 2011 tempo a disposizione: 1 ora e 30 minuti

Microelettronica. Note su RISC. Stefano Salvatori. Università degli Studi Roma Tre. Università degli Studi Roma Tre

Il Linguaggio Assembly

Hazard sul controllo. Sommario

Architettura del set di istruzioni (ISA)

Laboratorio di Architettura degli Elaboratori

Calcolatori Elettronici

Formato delle istruzioni Tipi di istruzione Modi di indirizzamento CISC vs RISC Pipeline Note sui RISC

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore

Calcolatori Elettronici B a.a. 2004/2005

Esercitazione del 04/05/2006 Soluzioni

CPU pipeline hazards

Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a Docente: H. Muccini

Esercitazione su Instruction Level Parallelism

Stall on load e Hazard sul controllo. Sommario

Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A.

L architettura del calcolatore (Seconda parte)

ARCHITETTURE AVANZATE DEI CALCOLATORI, A.A. 2007/08 Soluzione esercizi sul pipelining

La CPU a singolo ciclo

Cache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore:

La CPU a singolo ciclo

Corso di Laurea in Informatica

Architettura del processore e esecuzione delle istruzioni

Pipeline criticità e forwarding

Calcolatori Elettronici B a.a. 2008/2009

Il processore: unità di elaborazione

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

CALCOLATORI ELETTRONICI 25 giugno 2018

MIPS MIPS MIPS MIPS. Registri. Dati e modi di indirizzamento. Formato Istruzioni. Lezione 5 e 6. Architettura degli Elaboratori A.

Architettura degli Elaboratori

Calcolatori Elettronici

Il processore Pentium

Calcolatori Elettronici B a.a. 2007/2008

Architettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H

Un altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando

Nome Cognome, Numero Matricola: Durata Esame: 30 min

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

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

Esercitazione su Instruction Level Parallelism Salvatore Orlando

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

Linguaggio Assembly e linguaggio macchina

Estensioni all architettura di Von Neumann

ARCHITETTURE DEI CALCOLATORI (canale A-I) - Prima prova in itinere del 16/6/2003 Compito tipo A

Calcolatori Elettronici

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

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Introduzione alle gerarchie di memoria

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

Valutazione delle prestazioni dei. Calcolatori Elettronici. Calcolatori Elettronici

Aumentare il parallelismo a livello di istruzione (2)

SECONDA PROVA INTERMEDIA DEL MODULO DI. 5 giugno 2015 NOME: COGNOME: MATRICOLA:

Architettura del calcolatore (Seconda parte)

ESERCIZIO 1. Sia dato il seguente ciclo di un programma in linguaggio ad alto livello:

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

CALCOLATORI ELETTRONICI 14 giugno 2010

Lezione 15 Il Set di Istruzioni (1)

Stall on load. Sommario

Corso di Laurea in Ingegneria Elettronica

La pipeline. Sommario

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)

Esame di Architetture Canale AL Prof. Sterbini 8/7/13 Compito A

Valutazione delle prestazioni dei Calcolatori Elettronici

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

Sommario. Gestione delle criticità sui dati nella pipeline. CPU con pipeline. Criticità nei dati. Hazard nei dati: soluzione tramite compilatore

Programmazione in linguaggio assembly per architetture Intel 8088

Il pipelining: tecniche di base

Esercizio II-DLX. Calcolatori Elettronici L-A

Architettura hardware

Architettura degli Elaboratori

Lezione 17 Il Set di Istruzioni (3)

La pipeline. Sommario

Esercitazione del 10/05/ Soluzioni

Transcript:

Calcolatori Elettronici B a.a. 2006/2007 PIPELINE: CONCLUSIONI Massimiliano Giacomin 1

Periodo di clock e CPI Clock rate Slower Faster Multicycle (Section 5.5) Deeply pipelined Pipelined Single-cycle (Section 5.4) Multiple issue with deep pipeline (Section 6.10) Multiple-issue pipelined (Section 6.9) Slower Instructions per clock (IPC = 1/CPI) Faster 2

Specializzazione hardware e use latency Multiple issue with deep pipeline (Section 6.10) Hardware Shared Specialized Single-cycle (Section 5.4) Pipelined Multicycle (Section 5.5) Multiple-issue pipelined (Section 6.9) Deeply pipelined 1 Several Use latency in instructions 3

Pipeline: influenza su struttura delle istruzioni La struttura delle istruzioni è influenzata dalla struttura dell hardware per quanto riguarda: effetti collaterali - modalità di indirizzamento - gestione dei codici di condizione 4

1. Istruzioni con autoincremento (autodecremento) -- NB: reg. destinazione alla fine M68000 MOVE (A0)+, D0 2. Uso stack (in cui il puntatore viene incrementato/decrementato) 3. Uso dei flag di condizione M68000 Effetti Collaterali Quando l esecuzione dell istruzione cambia il contenuto di registri diversi dal registro destinazione. Esempi di effetti collaterali MOVE #50, D3 ADD D1, D2 ADDX D3, D4 Dipendenza: esplicita tra MOVE e ADDX implicita tra ADD e ADDX X è flag che indica il riporto. 5

Istruzioni con effetti collaterali: generano dipendenze multiple e indirette aumento complessità dell HW per propagazione e stallo aumento delle penalità dovute alle dipendenze implicite aumento della complessità del SW: più difficile per il compilatore riordinare le istruzioni con molte dipendenze In pipeline: è bene ridurre gli effetti collaterali [solo il registro destinazione dovrebbe essere modificato dall esecuzione di una istruzione] Tuttavia, istruzioni con effetti collaterali sono utili in molti casi (p.es. indirizzamento con autoincremento è utile per la gestione dei vettori, oppure flag di condizione utili per prendere decisioni ecc.) 6

Indirizzamento e pipeline Modalità di indirizzamento complesse (con autoincremento-autodecremento, con indice, indiretta + combinate) sono utili Occorre però tenere presente che maggior complessità può portare a HW più complicato (aumentando T clock ) e performance peggiori Nel caso della pipeline le complicazioni comportate sono ancora maggiori Scelte di compromesso: occorre anche tener conto di quanto i compilatori usano le varie modalità di indirizzamento 7

Indirizzamento indiretto a memoria I1: Load R2, (R1) I2: Add R4, R2,R3 I1 I2 C1 C2 C3 C4 C5 C6 C7 F1 D1: R1 F2 Legge M[R1] R2 D2:R2,R3 R2+R3 R4 Tempo cicli di clock No stallo! 8

I1: Load R2, (X (R1)) I2: Add R4, R2,R3 Indirizzamento complesso I1 I2 C1 C2 C3 C4 C5 C6 C7 F D : R1 F X+[R1] [X+[R1]] [[X+[R1]]] R2 D: R2,R3 M M R2+ R3 W: R4 Tempo cicli di clock I1:Add R2, #X,R1 I2:Load R2, (R2) I3:Load R2, (R2) I4: Add R4, R2,R3 I1 I2 I3 I4 Ik I1 richiede più cicli di clock stallo vs. Indirizzamento semplice C1 C2 C3 C4 C5 C6 C7 F D X+[R1] F D F R2 [X +[R1]] D F R2 [[X+ [R1]]] D R2 R2+ R3 R4 Tempo cicli di clock 9

Quindi una modalità di indirizzamento semplice: Spende lo stesso numero di cicli [poiché non impegna per più cicli una unità funzionale, ciascuna istruzione tende a provocare meno stalli] Hardware più semplice (può permettere di ridurre ciclo di clock) Modalità di indirizzamento semplice trattabili più facilmente dai compilatori [Richiede però più memoria ] QUINDI 10

Modalità di Indirizzamento più adatte alla pipeline - l accesso ad un operando non richiede più di un accesso a memoria - solo load e store accedono ad operandi in memoria - le tecniche di indirizzamento non hanno effetti collaterali Tipici modi usati nel pipeline: a registri, indiretto a registri, indicizzato (somma offset e valore registro) e relativo (indicizzato al PC) Questi indirizzamenti sono alla base del RISC (ma oggi si tende ad essere meno rigidi) o contenuto altro registro o immediato e.g. PowerPC: alcune forme di indicizzato permettono l aggiornamento dei registri indice (effetto collaterale!) Non è né RISC né CISC 11

Codici di condizione Le dipendenze tra istruzioni causate dai codici di condizione (istruzione il cui comportamento dipende da un flag modificato da un istruzione precedente) devono essere gestite dal compilatore e dall HW: - il compilatore deve riordinare istruzioni per evitare stalli, ma la sua flessibilità è ridotta dalle dipendenze causate tra flag [non è possibile il riordino se il risultato cambia] - l HW deve riconoscere le dipendenze per forzare eventualmente lo stallo 12

Caso tipico increment R5 add R2, R4 add_with_carry R1, R3 Queste due eseguono operazioni in doppia precisione: il riporto della prima è usato nella seconda R1-R2+ R3-R4 Dipendenza via bit di riporto: supponiamo generi stallo Compilatore: dovrebbe tentare di inserire istruzioni tra le due; non può utilizzare increment perché altera bit di riporto! Hardware: deve riconoscere che add_with_carry dipende da add e ritardare l esecuzione della seconda se necessario (ovviamente, è sempre valida la possibilità di propagazione per risparmiare qualche ciclo di stallo) Regole da seguire per l architettura nel caso di pipeline 13

Gestione dei codici di condizione 1. Rendere l uso dei codici di condizione facili da individuare per i circuiti di decodifica (unità di controllo) e.g. PowerPC utilizza due bit nell istruzione per individuare i codici di condizione da essa modificati 2. I flag dovrebbero essere affetti dal minimo numero di istruzioni possibili Nell Assembler PowerPC ci sono istruzioni separate per la gestione dei flag ADDI R5, R5, 1 - non modifica flag ADDC R4, R2, R4 - modifica il flag (in un registro di stato) ADDE R3, R1, R6 - usa il carry flag come sorgente (memorizzato in un registro di stato) Se il compilatore deve riordinare le istruzioni, può inserire ADDI tra le due istruzioni ADDC e ADDE (che dipendono dal flag): se la ADDE avesse bisogno di uno stallo per aspettare la produzione del riporto da ADDC, posso ridurre o eliminare la perdita di cicli tramite riordinamento. 14

CONCLUSIONI Il potenziale della pipeline si sfrutta con un accurato progetto di: Set delle istruzioni - Modi di indirizzamento limitati - Esplicitare l uso dei codici di condizione - Regolarità del formato delle istruzioni Hardware (controllo e data path) - In particolare, compromesso nel numero di stadi: [aumento throughput ideale, ma anche probabilità di stallo dovuto a dipendenze di istruzioni distanti e inoltre aumento costi] I compilatori - possono tener conto dell HW per produrre codice ottimizzato 15