Anteprima
Vedrai una selezione di 14 pagine su 64
Appunti Calcolatori elettronici -  prima parte Pag. 1 Appunti Calcolatori elettronici -  prima parte Pag. 2
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Appunti Calcolatori elettronici -  prima parte Pag. 6
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Appunti Calcolatori elettronici -  prima parte Pag. 11
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Appunti Calcolatori elettronici -  prima parte Pag. 16
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Appunti Calcolatori elettronici -  prima parte Pag. 21
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Appunti Calcolatori elettronici -  prima parte Pag. 26
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Appunti Calcolatori elettronici -  prima parte Pag. 31
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Appunti Calcolatori elettronici -  prima parte Pag. 36
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Appunti Calcolatori elettronici -  prima parte Pag. 41
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Appunti Calcolatori elettronici -  prima parte Pag. 46
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Appunti Calcolatori elettronici -  prima parte Pag. 51
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Appunti Calcolatori elettronici -  prima parte Pag. 56
Anteprima di 14 pagg. su 64.
Scarica il documento per vederlo tutto.
Appunti Calcolatori elettronici -  prima parte Pag. 61
1 su 64
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

DATAPATH

Individuiamo i componenti per realizzare il datapath

 analizzando i componenti richiesti per realizzare le diverse

fasi

Individuiamo i segnali di controllo che l’unità di controllo

 deve generare per il datapath

Assumiamo che il processore faccia uso dei seguenti

 registri

PC, registro con l’indirizzo della prossima istruzione

 Register File, banco di 32 registri da 32 o 64 bit

REALIZZAZIONE DELL’UNITÀ DI CONTROLLO

Possibili implementazioni dell’unità di controllo

 Cablata

 Microprogrammata

Nella implementazione cablata la realizzazione

 dell’unità di controllo equivale alla realizzazione di

una rete sequenziale sincrona

Data la macchina a stati, è necessario realizzare

 la funzione stato prossimo

◼ la funzione delle uscite ovvero i segnali di controllo

REALIZZAZIONE CABLATA

Controllo

Segnali

Unità Unità

di Rete

Controllo Operativa

combinatoria State

Next

Ingressi Stato

Prossimo

Registro di Stato

Cod.Op.

Reg.Istruzione

LOGICA CABLATA

Progetto

• Come sintesi di rete sequenziale

– ingressi: IR, Stato

• uscite: comandi, Stato prossimo

Uso di ROM. La rete che definisce stato prossimo e i segnali di

– controllo è implementata mediante una memoria ROM che ha

come

ingressi (indirizzi alla ROM): IR, stato di UO, stato di UC

• uscite: comandi, ingressi di eccitazione dei FF di stato

• Questa soluzione evita di dovere fare la sintesi della rete

• sequenziale. Copiamo in memoria direttamente il contenuto della

tabella delle eccitazione.

Progettazione con CAD per VLSI

– Realizziamo un modello HDL e facciamo la sintesi con strumenti automatici

PROBLEMI DELLA REALIZZAZIONE CABLATA

Se il numero di istruzioni è piccolo, la macchina a stati è semplice da

 realizzare e da implementare senza fare errori.

Con un set di istruzioni elevato (anche dell’ordine di alcune centinaia) con

 cicli di clock per la loro esecuzione che possono variare di molto ( da 1 al

alcune decine), la descrizione dell’unità di controllo mediante macchina a

stati ( stati prossimi e segnali di controllo per ogni stato) risulta problematica

La macchina a stati potrebbe contenere da alcune migliaia fino a centinaia di migliaia

 di stati per ISA molto complessi

La rappresentazione grafica della macchina a stati risulta estremamente complicata

 Esprimere le funzioni di controllo in termini di equazioni diventa praticamente

 impossibile

REALIZZAZIONE MICROPROGRAMMATA

Tecnica affermatasi negli anni 70

 L’unità di controllo viene vista come una unità in grado di

 eseguire sequenze di microistruzioni.

L’implementazione dell’unità di controllo viene vista come la

 scrittura di un programma ovvero come la scrittura di una

sequenze di microistruzioni

Progettare il controllo come un programma che realizza le

 istruzioni macchina in termini di microistruzione prende il nome

di microprogrammazione

Ogni microistruzione definisce

 quali segnali di controllo devono essere asseriti

 la configurazione dei segnali di controllo dei multiplexer

REALIZZAZIONE MICROPROGRAMMATA

Ogni microistruzione è composta da un insieme di

 microoperazioni eseguibili in parallelo

Una microoperazione è associata ad uno o più segnali di controllo

L’esecuzione delle microistruzioni/microoperazioni, oltre a

 generare i segnali di controllo per il datapath, determina la

successiva microistruzione da eseguire.

L’esecuzione di una istruzione del processore viene realizzata

 mediante l’esecuzione di una sequenza di microistruzioni

A ciascuna delle fasi di esecuzione di una istruzione

 (fetch,decode,execute,memory access, write back) corrisponde

l’esecuzione di una o più microistruzioni.

REALIZZAZIONE MICROPROGRAMMATA

Le microistruzioni sono memorizzate nella memoria di

 microprogramma

PC: contatore di microprogramma. Contiene l’indirizzo della

 prossima microistruzione

REALIZZAZIONE MICROPROGRAMMATA

Unità D

di E

Controllo C

Memoria di O Unità

MicroProgramma D Operativa

E

R

Contatore di

MicroProgramma Condizioni

+ Selezione

Indirizzo

Cod.Op.

Reg.Istruzione

REALIZZAZIONE MICROPROGRAMMATA

L’esecuzione di una microistruzione consiste dei seguenti passi

 Fetch della microistruzione

 Decodifica/esecuzione delle microoperazione ovvero generazione dei

 segnali di controllo

L’esecuzione di una istruzione viene realizzata nel seguente modo

 PC

All’inizio della fase di fetch contiene l’indirizzo (I ) del tratto di

 0

microprogramma corrispondente al fetch PC

Alla fine della fase di fetch e decodifica il viene aggiornato

 l'indirizzo della prima microistruzione della routine che effettua le

azioni richieste dalla particolare istruzione. Tale indirizzo è ottenuto a

partire dal contenuto di IR

PC

Al termine, viene di nuovo caricato con (I )

 0

FORMATO DELLE MICROISTRUZIONI

Anziché scrivere direttamente, come nella memoria ROM

 dell’approccio cablato, la configurazione dei segnali di controllo per

ogni fase di ogni istruzione, possiamo scrivere le microistruzioni in

modo simbolico e tramite un traduttore le microistruzioni vengono

tradotte nella sequenza di bit da memorizzare nella memoria di

microprogramma.

MICROPROGRAMMAZIONE

ORIZZONTALE

Orizzontale

▪Nella microprogrammazione orizzontale le microistruzioni

contengono molte microoperazioni eseguite in parallelo

▪Il microprogramma risulta costituito da un numero limitato

di microistruzioni

▪Vantaggi: buona velocità nella esecuzione delle istruzione

▪Svantaggi: notevole spreco di memoria

MICROPROGRAMMAZIONE VERTICALE

▪Nella microprogrammazione verticale le

microistruzioni contengono poche

microoperazioni eseguite in parallelo

▪Il microprogramma risulta costituito da un

elevato numero di microistruzioni

▪Svantaggi: ridotta velocità nella

esecuzione delle istruzione

▪Vantaggi: buon uso della memoria

CABLATA O MICROPROGRAMMATA?

Fino a fine anni ‘60: logica cablata

• (PDP8, HP 2116)

Anni ‘70: microprogrammazione

• (VAX, Z80, 8086,

68000)

Repertorio di istruzioni molto esteso e variato:

– CISC

Il VAX 11/789 (Digital) e il 370/168 (IBM)

– avevano oltre 400.000 bit di memoria di

controllo

Dagli anni ‘80 si è tornati alla logica cablata;

• Affermazione delle macchine RISC

Istruttivo è esaminare l’evoluzione dell’architettura

• Intel: da CISC a (praticamente) RISC

Organizzazione pipeline della CPU

PIPELINE

La pipeline è una tecnica di ottimizzazione basata sulla

 sovrapposizione temporale delle istruzioni come in una catena

di montaggio.

Idea base:

 L’esecuzione di un’istruzione è divisa in differenti fasi (pipeline stages)

 Ciascuna fase ha bisogno di una specifica risorsa

 Al termine di ogni fase la risorsa è disponibile per la successiva

 istruzione

Anziché aspettare che tutte le fasi siano completate per iniziare la prima

 fase dell’istruzione successiva, al termine della prima fase

dell’istruzione i-esima, parte la prima fase dell’istruzione i+1-esima

come in una catena di montaggio

PRESTAZIONE CON PIPELINE

Il tempo di exec della singola istruzione non diminuisce

• Migliora il throughput delle istruzioni poiché anziché

• completare un istruzione ogni N cicli di clock, completa ad

ogni ciclo di clock.

Il tempo medio di esecuzione delle istruzioni si riduce di un

• fattore N (caso ideale)

CPI =N CPI = 1

• Sequenziale Pipe

Il pipeline rate è limitato dallo stage più lento.

COSA SERVE PER OTTENERE UNA

IMPLEMENTAZIONE PIPELINE DEL DATAPATH

▪ Un valore prodotto nella fase i dell’esecuzione di

un’istruzione deve essere memorizzato in un registro per

potere essere usato in una fase successiva della stessa

istruzione

✓ L’istruzione letta dalla memoria nella fase di fetch deve essere

memorizzata nel registro IR

✓ I valori letti dal Register file nella fase di decode devono essere

memorizzati nei registri A e B

▪ Se un valore presente nella fase i dell’esecuzione deve

essere utilizzato in una fase successiva, deve essere ricopiato

un altro registro

✓ Il valore del registro destinazione presente in IR nella fase di Decode

deve essere copiato in un altro registro poiché tale valore servirà in

una fase successiva (Write back)

UNITÀ DI CONTROLLO PER IL PIPELINE

WB

Instruction M WB

Control EX M WB

IF/ID ID/EX EX/MEM MEM/WB

L'unità di controllo nella fase ID produce i segnali di controllo

che verranno utilizzati negli stadi successivi EX, MM e WB

I segnali non utilizzati in uno stadio sono inoltrati agli stadi

successivi. Pipeline Hazards

PROBLEMI

Potenziali conflitti sulle risorse!

1. Con un’unica memoria le fasi di IF e MeM vorrebbero usare la

stessa risorsa Memoria => Conflitto tra le due fasi per

accedere alla memoria.

2. Con IM e DM separate, nessun conflitto, ma a parità di clock

cycle occorre una memoria 5 volte più veloce rispetto a una

implementazione sequenziale

3. Le fasi ID e WB usano lo stesso banco di registri nello stesso

periodo di clock per istruzioni diverse!

4. Il PC va aggiornato ogni periodo di clock per fare un

fetch/clock. Cosa accade per un branch il cui esito è noto

soltanto nella fase di mem?

se noi non gestiamo opportunamente questo tipo di istruzioni

rischiamo di eseguire istruzioni che non dovrebbero essere seguite es. immaginiamo di dover fare il salto di

una certa istruzione, noi ignoriamo questo salto e carichiamo nella pipeline l’istruzione che viene subito

dopo. se permettiamo che questa istruzione arrivi alla fine.. cosa succede? noi avremo dovuto eseguire

altre istruzioni invece ne eseguiamo altre. risultato, il comportamento del processore risulterà essere

sbagliato

LIMITI ALLA ESECUZIONE PIPELINE: I

CONFLITTI (HAZARD)

•I conflitti (Hazard) impediscono che una istruzione

venga eseguita nel ciclo di clock atteso

Structural hazards: Le risorse HW non supportano alcune

-

combinazioni di istruzioni

-Data hazards: Un’istruzione dipende dal risultato di una

istruzione che è ancora nella pipel

Dettagli
A.A. 2023-2024
64 pagine
SSD Ingegneria industriale e dell'informazione ING-INF/01 Elettronica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher andrea.baldi50 di informazioni apprese con la frequenza delle lezioni di Calcolatori elettronici e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Catania o del prof Ascia Giuseppe.