Schedulazione dinamica. Elettronica dei Calcolatori 1

Documenti analoghi
L unità di elaborazione pipeline L unità Pipelining

Hazard sul controllo. Sommario

Aumentare il parallelismo a livello di istruzione (1)

CPU. Maurizio Palesi

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Calcolatori Elettronici

Valutazione delle Prestazioni

CPU pipeline 4: le CPU moderne

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Architettura hw. La memoria e la cpu

Sistemi Operativi SCHEDULING DELLA CPU

La macchina di Von Neumann. Archite(ura di un calcolatore. L unità di elaborazione (CPU) Sequenza di le(ura. Il bus di sistema

Calcolatori Elettronici. La Pipeline Criticità sui dati Criticità sul controllo Cenni sull unità di controllo

Architettura di tipo registro-registro (load/store)

Lezione n.19 Processori RISC e CISC

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

Esempio: aggiungere j

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

CALCOLATORI ELETTRONICI 29 giugno 2011

Guida Rapida all uso del License Manager di ROCKEY4Smart (V )

Sistemi Operativi. 5 Gestione della memoria

Migliorare le prestazioni di processori e memorie

DMA Accesso Diretto alla Memoria

CALCOLATORI ELETTRONICI 15 aprile 2014

In realtà, non un solo microprocessore, ma un intera famiglia, dalle CPU più semplici con una sola pipeline a CPU molto complesse per applicazioni ad

Sistema operativo: Gestione dei processi

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1

Calcolatori Elettronici A a.a. 2008/2009

Laboratorio di Informatica

Esercizio 2. Client e server comunicano attraverso socket TCP

La Gestione delle risorse Renato Agati

Architettura hardware

CPU pipeline 4: le CPU moderne

Coordinazione Distribuita

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

CALCOLATORI ELETTRONICI 31 marzo 2015

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

MODELLO DLX IN UNISIM

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

Organizzazione della memoria

Esempi di algoritmi. Lezione III

Laboratorio di Informatica

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Gestione della memoria centrale

La memoria centrale (RAM)

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

GESTIONE INFORMATICA DEI DATI AZIENDALI

Lezione 7 Sommatori e Moltiplicatori

Architettura del calcolatore

Aggiornato il 18 giugno Questa affermazione richiede una precisazione. A parità di altre condizioni, l eliminazione dello stadio ME allunga la

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Operazioni di Comunicazione di base. Cap.4

Architettura di un calcolatore

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

Scheduling. Sistemi Operativi e Distribuiti A.A Bellettini - Maggiorini. Concetti di base

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

I processi. Un processo è una attività, controllata da un programma, che si svolge su un processore.

Il Software. Il software del PC. Il BIOS

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Progetto di RHS MicroAODV per Reti di Sensori A.A. 2007/2008

Corso di Sistemi di Elaborazione delle informazioni

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

I componenti di un Sistema di elaborazione. CPU (central process unit)

Università degli Studi di Cassino e del Lazio Meridionale

Gestione delle transazioni. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

FONDAMENTI di INFORMATICA L. Mezzalira

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Collegamento al sistema

CALCOLATORI ELETTRONICI 29 giugno 2010

Calcolatori Elettronici

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

INFORMATICA 1 L. Mezzalira

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

TRANSAZIONI. Una transazione è una successione di operazioni che si può concludere con successo o con insuccesso.

Il problema del produttore e del consumatore. Cooperazione tra processi

Funzioni in C. Violetta Lonati

Sistema operativo: Gestione della memoria

Replicazione. Requisisti di consistenza i clienti devono ricevere risposte consistenti e coerenti. Motivazioni

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Ing. Paolo Domenici PREFAZIONE

Architettura del Set di Istruzioni (ISA)

Architetture moderne

Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo. (continua) Gestione della memoria principale

Calcolatori Elettronici B a.a. 2008/2009

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Cosa è un foglio elettronico

Elementi di Architettura e Sistemi Operativi. problema punti massimi i tuoi punti problema 1 6 problema 2 7 problema 3 7 problema 4 10 totale 30

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Transcript:

Schedulazione dinamica Elettronica dei Calcolatori 1

Schedulazione dinamica delle operazioni Impossibile risolvere tutti i conflitti staticamente I possibile predire tutti i salti condizionati HW fa durante l esecuzione quello che il compilatore fa durante la generazione del codice. Compilatore piu semplice HW piu complesso Il parallelismo e gestito in HW Il codice puo essere generato indipendentemente dal parallelismo. Dipende da quante istruzioni alla volta possiamo caricare

Esecuzione non in ordine (out of order) Esegue le istruzioni indipendenti ma successive a quella bloccata da un conflitto Supponiamo: Operazione fp mulfp mul latenza 3 cicli 2 cicli 1 ciclo 1 ciclo Ordine di caricamento Ordine di esecuzione fp r2 r3 mulfp r3 r4 r5 r6 mul r6 r7 fp r2 r3 r5 r6 mul r6 r7 mulfp r3 r4

Schedulazione in Hardware La schedulazione in hardware permette l esecuzione delle operazioni in ordine diverso rispetto al caricamento: Possibilita di WAW e RAW Diversi metodi di schedulazione, diverse soluzioni. La decodifica delle istruzioni (ID) e scomposta i due parti: 1. Issue: decodifica operandi, verifica di hazard strutturali 2. Read: attesa finche non vi siano hazard dei dati, lettura operandi Due metodi principali: Scoreboard Tomasulo

Metodo Scoreboard Gestione WAR Stalla la scrittura del risultato fino a quando i registri non sono stati letti Legge i registri solo durante lo stadio di lettura degli operandi Gestione WAW: Identifica gli hazard e stalla la Issue di nuove istruzioni finche le altre non sono completate Scoreboard tiene traccia delle dipendenze e dello stato delle operazioni Invece che ID, EX, WB si hanno IS, RD, EX, WB

Stadi di esecuzione di processori con scoreboard 1. Issue (IS): decodifica l istruzione e idenfica hazard strutturali. Se un unita funzionale per l istruzione e libera e nessun altra istruzione ha lo stesso registro destinazione (WAW), la scoreboard manda l istruzione in esecuzione su quell unita funzionale e aggiorna i suoi dati interni. Se esiste un hazard strutturale o un WAW allora la m essa in esecuzione dell istruzione viene stallata e non vengono caricate ulteriori istruzioni finche l hazard viene eliminato. 2. Lettura Operandi (RD): aspetta finche non vi sono hazard quindi legge gli operandi Un operando sorgente e disponibile se istruzioni gia in esecuzione non lo scriveranno, o se il registro contenente l operando sta per essere scritto da un unita funzionale attiva. Quando gli operandi sorgenti sono disponibili la scoraboard ordina all unita funzionale di leggere gli operandi dai registri e iniziare l esecuzione dell operazione. La scoreboard risolve gli hazard di tipo RAW in modo dinamico, e le istruzioni possono essere mandate in esecuzione in ordine diverso dal loro caricamento.

Stadi di esecuzione di processori con scoreboard (cont.) 3. Esecuzione (EX): esecuzione dell operazione L unita funzionale esegue l operazione sugli operandi e quando ha terminato lo notifica alla scoreboard. 4.Scrittura del risultato (WR) Se la scoreboard verifica che non vi sono hazard allora scrive il risultato; altrimenti se vi e un WAR stalla finche il registro da scrivere non viene letto.

Informazioni contenuta nella scoreboard 1. Stato dell istruzione: in quale stadio si trova 2. Stato dell unita funzionale: Busy: indica se l unita e occupata Op: operazione eseguita dall unita D: registro destinazione S1, S2: registri sorgenti F1, F2: unita funzionali che producono gli operandi in S1 e S2 R1, R2 Flags che indicano che gli operandi in S1 e S2 sono pronti 3. Stato della scrittura del risultato: indica quale unita funzionale scrivera il registro contenente il risultato.

Scoreboard ciclo 1 ldfp (r3) (r3) fpr3 1 ldfp (r4) (r4) fpr4 fpmul fpr3 fpr3 fpr4 fp fpr4 fpr4 fpr0 i 4 4 r3 i M M r4 cmplt r4 r4 B+L*M Tempo busy op D S1 S2 F1 F2 R1 R2 mem yes load fpr3 r3 yes mulfp fp 1 me m

Scoreboard ciclo 2 ldfp (r3) (r3) fpr3 1 2 ldfp (r4) (r4) fpr4 fpmul fpr3 fpr3 fpr4 fp fpr4 fpr4 fpr0 i 4 4 r3 i M M r4 cmplt r4 r4 B+L*M Tempo busy op D S1 S2 F1 F2 R1 R2 mem yes load fpr3 r3 yes mulfp fp 2 me m

Scoreboard ciclo 3 ldfp (r3) (r3) fpr3 1 2 3 ldfp (r4) (r4) fpr4 fpmul fpr3 fpr3 fpr4 fp fpr4 fpr4 fpr0 i 4 4 r3 i M M r4 cmplt r4 r4 B+L*M Tempo busy op D S1 S2 F1 F2 R1 R2 mem yes load fpr3 r3 yes mulfp fp 3 me m

Scoreboard ciclo 4 ldfp (r3) (r3) fpr3 1 2 3 4 ldfp (r4) (r4) fpr4 fpmul fpr3 fpr3 fpr4 fp fpr4 fpr4 fpr0 i 4 4 r3 i M M r4 cmplt r4 r4 B+L*M Tempo busy op D S1 S2 F1 F2 R1 R2 mem yes load fpr3 r3 yes mulfp fp 4 me m

Scoreboard ciclo 5 ldfp (r3) (r3) fpr3 1 2 3 4 ldfp (r4) (r4) fpr4 5 fpmul fpr3 fpr3 fpr4 fp fpr4 fpr4 fpr0 i 4 4 r3 i M M r4 cmplt r4 r4 B+L*M Tempo busy op D S1 S2 F1 F2 R1 R2 mem yes load fpr4 r4 yes mulfp fp 5 me m

Scoreboard ciclo 6 ldfp (r3) fpr3 1 2 3 4 ldfp (r4) fpr4 5 6 fpmul fpr4 fpr3 fpr3 6 fp fpr3 fpr0 fpr0 i 4 r3 r3 i M r4 r4 cmplt r4 B+L*M Tempo busy op D S1 S2 F1 F2 R1 R2 mem yes load fpr4 r4 yes mulfp yes mul fpr3 fpr4 fpr3 no yes fp 6 mulfp me m

Scoreboard ciclo 7 ldfp (r3) fpr3 1 2 3 4 ldfp (r4) fpr4 5 6 7 fpmul fpr4 fpr3 fpr3 6 fp fpr3 fpr0 fpr0 7 i 4 r3 r3 i M r4 r4 cmplt r4 B+L*M Tempo busy op D S1 S2 F1 F2 R1 R2 mem yes load fpr4 r4 yes mulfp yes mul fpr3 fpr4 fpr3 mem no yes fp yes fpr0 fpr3 fpr0 mulfp no yes 7 fp mulfp mem

Scoreboard ciclo 8 ldfp (r3) fpr3 1 2 3 4 ldfp (r4) fpr4 5 6 7 8 fpmul fpr4 fpr3 fpr3 6 fp fpr3 fpr0 fpr0 7 i 4 r3 r3 8 i M r4 r4 cmplt r4 B+L*M Tempo busy op D S1 S2 F1 F2 R1 R2 mem yes load fpr4 r4 yes mulfp yes mul fpr3 fpr4 fpr3 mem no yes fp yes fpr0 fpr3 fpr0 mulfp yes no yes r3 r3 yes 8 fp mulfp mem

Scoreboard ciclo 9 ldfp (r3) fpr3 1 2 3 4 ldfp (r4) fpr4 5 6 7 8 fpmul fpr4 fpr3 fpr3 6 9 fp fpr3 fpr0 fpr0 7 i 4 r3 r3 8 9 i M r4 r4 cmplt r4 B+L*M Tempo busy op D S1 S2 F1 F2 R1 R2 mem no mulfp yes mul fpr3 fpr4 fpr3 yes yes fp yes fpr0 fpr3 fpr0 mulfp yes no yes r3 r3 yes 9 fp mulfp

Scoreboard ciclo 10 ldfp (r3) fpr3 1 2 3 4 ldfp (r4) fpr4 5 6 7 8 fpmul fpr4 fpr3 fpr3 6 9 10 fp fpr3 fpr0 fpr0 7 i 4 r3 r3 8 9 10 i M r4 r4 cmplt r4 B+L*M Tempo busy op D S1 S2 F1 F2 R1 R2 mem no 2 mulfp yes mul fpr3 fpr4 fpr3 yes yes fp yes fpr0 fpr3 fpr0 mulfp yes no 1 yes r3 r3 yes 10 fp mulfp

Scoreboard ciclo 11 ldfp (r3) fpr3 1 2 3 4 ldfp (r4) fpr4 5 6 7 8 fpmul fpr4 fpr3 fpr3 6 9 10 fp fpr3 fpr0 fpr0 7 i 4 r3 r3 8 9 10 11 i M r4 r4 cmplt r4 B+L*M Tempo busy op D S1 S2 F1 F2 R1 R2 mem no 1 mulfp yes mul fpr3 fpr4 fpr3 yes yes fp yes fpr0 fpr3 fpr0 mulfp yes no 0 yes r3 r3 yes 11 fp mulfp

Scoreboard ciclo 12 ldfp (r3) fpr3 1 2 3 4 ldfp (r4) fpr4 5 6 7 8 fpmul fpr4 fpr3 fpr3 6 9 10 12 fp fpr3 fpr0 fpr0 7 i 4 r3 r3 8 9 10 11 i M r4 r4 12 cmplt r4 B+L*M Tempo busy op D S1 S2 F1 F2 R1 R2 mem no 0 mulfp yes mul fpr3 fpr4 fpr3 yes yes fp yes fpr0 fpr3 fpr0 mulfp yes no yes r4 r4 yes 12 fp mulfp

Scoreboard ciclo 13 ldfp (r3) fpr3 1 2 3 4 ldfp (r4) fpr4 5 6 7 8 fpmul fpr4 fpr3 fpr3 6 9 10 12 fp fpr3 fpr0 fpr0 7 13 i 4 r3 r3 8 9 10 11 i M r4 r4 12 13 cmplt r4 B+L*M Tempo busy op D S1 S2 F1 F2 R1 R2 mem no 0 mulfp no fp yes fpr0 fpr3 fpr0 yes yes yes r4 r4 yes 13 fp

Scoreboard ciclo 14 ldfp (r3) fpr3 1 2 3 4 ldfp (r4) fpr4 5 6 7 8 fpmul fpr4 fpr3 fpr3 6 9 10 12 fp fpr3 fpr0 fpr0 7 13 14 i 4 r3 r3 8 9 10 11 i M r4 r4 12 13 14 cmplt r4 B+L*M Tempo busy op D S1 S2 F1 F2 R1 R2 mem no 3 mulfp no fp yes fpr0 fpr3 fpr0 yes yes 1 yes r4 r4 yes 14 fp

Scoreboard ciclo 15 ldfp (r3) fpr3 1 2 3 4 ldfp (r4) fpr4 5 6 7 8 fpmul fpr4 fpr3 fpr3 6 9 10 12 fp fpr3 fpr0 fpr0 7 13 14 i 4 r3 r3 8 9 10 11 i M r4 r4 12 13 14 15 cmplt r4 B+L*M Tempo busy op D S1 S2 F1 F2 R1 R2 mem no 2 mulfp no fp yes fpr0 fpr3 fpr0 yes yes 0 yes r4 r4 yes 15 fp

Scoreboard ciclo 16 ldfp (r3) fpr3 1 2 3 4 ldfp (r4) fpr4 5 6 7 8 fpmul fpr4 fpr3 fpr3 6 9 10 12 fp fpr3 fpr0 fpr0 7 13 14 i 4 r3 r3 8 9 10 11 i M r4 r4 12 13 14 15 cmplt r4 B+L*M 16 Tempo busy op D S1 S2 F1 F2 R1 R2 mem no 1 mulfp no fp yes fpr0 fpr3 fpr0 yes yes 0 yes cmp r4 r4 yes 16 fp

Scoreboard ciclo 17 ldfp (r3) fpr3 1 2 3 4 ldfp (r4) fpr4 5 6 7 8 fpmul fpr4 fpr3 fpr3 6 9 10 12 fp fpr3 fpr0 fpr0 7 13 14 17 i 4 r3 r3 8 9 10 11 i M r4 r4 12 13 14 15 cmplt r4 B+L*M 16 17 Tempo busy op D S1 S2 F1 F2 R1 R2 mem no 0 mulfp no fp yes fpr0 fpr3 fpr0 yes yes yes cmp r4 r4 yes 17 fp

Scoreboard ciclo 18 ldfp (r3) fpr3 1 2 3 4 ldfp (r4) fpr4 5 6 7 8 fpmul fpr4 fpr3 fpr3 6 9 10 12 fp fpr3 fpr0 fpr0 7 13 14 17 i 4 r3 r3 8 9 10 11 i M r4 r4 12 13 14 15 cmplt r4 B+L*M 16 17 18 Tempo busy op D S1 S2 F1 F2 R1 R2 mem no mulfp no fp no 1 yes cmp r4 r4 yes 18

Scoreboard ciclo 19 ldfp (r3) fpr3 1 2 3 4 ldfp (r4) fpr4 5 6 7 8 fpmul fpr4 fpr3 fpr3 6 9 10 12 fp fpr3 fpr0 fpr0 7 13 14 17 i 4 r3 r3 8 9 10 11 i M r4 r4 12 13 14 15 cmplt r4 B+L*M 16 17 18 19 Tempo busy op D S1 S2 F1 F2 R1 R2 mem no mulfp no fp no 0 yes cmp r4 r4 yes 19

Algoritmo di Tomasulo Controllo distribuito: controlli e buffer locali alle unita funzionali; I buffer sono chiamati Reservation Station (RS) e contengono gli operandi pendenti. Register Renaming : i registri nelle istruzioni sono rimpiazzati da valori o da puntatori alle RS Elimina WAR, WAW Vi possono essere piu RS che registri e quindi si puo fare delle ottimizzazioni che il compilatore non puo. I risultati da mandare alle unita funzionali vengono dalle RS e non dai registri; i risultati sono inviati a tutte le unita mediante un bus comune. Le operazioni con la memoria sono trattate come unita funzionali.

Componenti di una Reservation Station Op: operazioni da eseguire nell unita (e.g., + or ) Vs1, Vs2: valori degli operandi sorgenti. Store buffers has V field, result to be stored R1, R2: Reservation Station che producono i valori Vs1 e Vs2. Busy: indica che una RS e occupata Stato registri risultato: indica quale unita funzionale scrivera un registro.

Stadi di esecuzione con Tomasulo 1. Issue (IS): prende l istruzione dalla coda. Se la RS e libera (non vi sono hazard strutturali), viene mandata in esecuzione l istruzione e inviati gli operandi (i registri sono rinominati) 2. Execution (EX): esegue l operazione Quando tutti gli operandi sono pronti esegue l operazione altrimenti controlla il bus comune dei risultati 3. Write (WB): Manda atraverso il bus comune il risultato a tutte le unita in attesa e rende disponibile la RS Normal data bus: data + destination ( go to bus) Common data bus: data + source ( come from bus) 64 bits di dati + 4 bits per la specifica dell unita funzionale sorgente