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



Documenti analoghi
CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

Architettura hw. La memoria e la cpu

CPU. Maurizio Palesi

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

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Architettura hardware

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Lezione 7 Sommatori e Moltiplicatori

Esame di INFORMATICA

Architettura del calcolatore

Struttura del calcolatore

ESEMPIO 1: eseguire il complemento a 10 di 765

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

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

Calcolo numerico e programmazione Architettura dei calcolatori

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

Lezione n.19 Processori RISC e CISC

4 3 4 = 4 x x x 10 0 aaa

Architettura di un calcolatore

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

LABORATORIO DI SISTEMI

Lezione 3: Architettura del calcolatore

Dispensa di Informatica I.1

Unità Periferiche. Rete Di Controllo

Esempio: aggiungere j

Aritmetica dei Calcolatori 2

Il Processore: i registri

UNITÀ DI ELABORAZIONE (CPU) UNITÀ DI ELABORAZIONE (CPU) Opcode OpCode Operazione

Von Neumann. John Von Neumann ( )

SISTEMI DI NUMERAZIONE E CODICI

Il memory manager. Gestione della memoria centrale

Architettura di tipo registro-registro (load/store)

Parte II.2 Elaboratore

Lezione 8. La macchina universale

C. P. U. MEMORIA CENTRALE

Note su quicksort per ASD (DRAFT)

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

Gerarchia delle memorie

Laboratorio di Informatica

Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

Corso di Calcolatori Elettronici I A.A Il processore Lezione 18

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali

FONDAMENTI di INFORMATICA L. Mezzalira

Architettura di un computer

ARCHITETTURA DELL ELABORATORE

Lez. 3 L elaborazione (II parte) Prof. Pasquale De Michele Gruppo 2

Vari tipi di computer

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino

10 - Programmare con gli Array

Convertitori numerici in Excel

Alessandro Pellegrini

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Operazioni di Comunicazione di base. Cap.4

clock DATA BUS ADDRESS BUS CONTROL BUS In realtà il bus del microprocessore si compone di 3 bus diversi: Bus indirizzi Bus di controllo

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

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

Testi di Esercizi e Quesiti 1

L unità di elaborazione pipeline L unità Pipelining

Lezione n.9. Introduzione al linguaggio macchina

4. Operazioni aritmetiche con i numeri binari

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Ing. Paolo Domenici PREFAZIONE

Laboratorio di Informatica

Gestione della memoria centrale

L architettura di riferimento

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

Algoritmi e strutture dati. Codici di Huffman

DMA Accesso Diretto alla Memoria

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

Fondamenti di Informatica B

Dispense di Informatica per l ITG Valadier

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

Sistema operativo: Gestione della memoria

Coordinazione Distribuita

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO

Architettura di un calcolatore: introduzione

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Esempio di moltiplicazione come somma e spostamento

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

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

Architettura del computer (C.Busso)

INFORMATICA 1 L. Mezzalira

Informatica - A.A. 2010/11

23/02/2014. Dalla scorsa lezione. La Macchina di Von Neumann. Uomo come esecutore di algoritmi

Sistemi Operativi. 5 Gestione della memoria

Calcolatori Elettronici A a.a. 2008/2009

Comparatori. Comparatori di uguaglianza

Rappresentazione delle informazioni

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

Programma ARCHITETTURA DI UN ELABORATORE MACCHINA DI VON NEUMANN CPU & MEMORIA UNITÀ DI ELABORAZIONE (CPU) Questa settimana:

introduzione I MICROCONTROLLORI

Sommario. Addizione naturale

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Materiali per il modulo 1 ECDL. Autore: M. Lanino

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Transcript:

Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1

SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi del moltiplicatore binario che avevamo iniziato a vedere nella lezione 6. Ricordiamo che usiamo un meccanismo di accumulo parziale dei risultati. Abbiamo bisogno di 1 registro a 16 bit per immagazzinare i prodotti parziali ottenuti (siamo nell ipotesi di prodotto tra due numeri a 8 bit). E possibile risparmiare sul numero di registri usati utilizzando lo stesso registro per immagazzinare in tempi diversi dati diversi, cioè sia il risultato parziale sia il moltiplicatore. Infatti: Dopo che i bit di X sono stati usati per il prodotto parziale non sono più necessari. Contemporaneamente la dimensione del prodotto parziale cresce, ed è possibile condividere la parte del registro dove è memorizzato X, per accumulare il moltiplicatore e la parte meno significativa del risultato. Esempio: Y=1.1011 X=0.0101 Passo Operazione Accumulatore Registro Q Prodotto parziale ottenuto 0 inizializzazione 0000 0000 P0 1 P0+X4*y 1011 0101 P1 2 P1*2-1 0101 1010 P2 3 P2+X3*y 0101 1010 P3 4 P3*2-1 0010 1101 P4 5 P4+X2*y 1101 1101 P5 6 P5*2-1 0110 1110 P6 7 P6+X4*y 0110 1110 P7 8 P7*2-1 0011 0111 P8 Il contenuto dell accumulatore nel caso del prodotto parziale P1 è dato da 1011*1=1011. ovvero Y*X4 perché P0=0, mentre Q contiene X. Al passo 2 viene fatta l operazione di shift a destra che comporta la perdita del quarto bit di Q (il bit 1 in rosso) e l entrata del bit 0 nell accumulatore. Il motivo è che il bit più a destra ( quello in rosso) nel contenuto del registro Q dopo che ho fatto il prodotto parziale non mi serve più, quindi faccio uno shift a destra. 2

Con questa tecnica riusciamo a risparmiare un registro a 8 bit. Era una tecnica usata da Von Neumann quando i costi hardware erano alti. Ora non si usa più. Schema del moltiplicatore binario (la struttura) EX-OR Q (7) M (0) accumulatore Registro Q Registro M Sommatore Parallelo OUTBUS INBUS Il registro M viene usato per immagazzinare Y Il registro Q immagazzina la X iniziale Q(7) è il bit più significativo di X (segno di X) e M(0) è il bit più significativo di Y (segno di Y) La porta EX-OR fa il prodotto tra i bit di segno L accumulatore immagazzina il risultato parziale Il sommatore parallelo carica i dati nell accumulatore Il segno di X lo preleviamo da Q(7) per effetto degli scorrimenti successivi a destra. Questo calcolo del segno viene fatto alla fine, cioè quando è stato già calcolato il modulo. 3

Esempio di programma RTL che riassume il funzionamento del moltiplicatore binario Si deve associare all architettura il comportamento che vogliamo che l architettura abbia. Il comportamento è la descrizione a livello RTL dell algoritmo, cioè in termini di spostamento di dati tra registri. Definizione dei registri (caso del prodotto di due numeri a 8 bit) A(0:7) registro A ad 8 bit; M(0:7) registro M ad 8 bit; Q(0:7) registro Q ad 8 bit; COUNT (0:2) registro contatore a 3 bit (3 bit perché deve contare fino a 8 prodotti parziali ); INBUS(0:7); OUTBUS(0:7) bus d ingresso e bus d uscita a 8 bit. A e Q sono registri concatenati e formano quindi un registro a 16 bit. Begin A:=0; COUNT:=0; inizializzazione dell accumulatore e del contatore INPUT M:=INBUS; carica il numeroy Q:=INBUS; carica il numero X ADD: A(0:7):=A(1:7)+M(1:7)*Q(7); primo prodotto parziale; M(1:7) è il modulo di Y mentre Q(7) la prima volta contiene il bit meno significativo di X SHIFT: A(0):=0; A(1:7).Q:=A.Q(0:6); questo permette di fare lo shift a destra; A.Q(0:6) significa tutto A e i primi 7 bit di Q, mentre A(1:7).Q significa gli ultimi 7 bit di A e tutto Q; l operazione di assegnamento indica allora che tutto A e Q(0:6) va a finire in A(1:7) e tutto Q; Q(7) è sparito perché c è stato lo shift a destra; TEST : COUNT:=COUNT+1; incremento If COUNT7 then go to ADD; FINISH : A(0):=M(0) Q(7); permette di calcolare il segno perché ora Q(7) contiene il bit di segno di X e M(0) contiene il segno di Y Q(7):=0; OUT: OUTBUS:=Q; il trasferimento del contenuto di Q è necessario perché contiene una parte del prodotto. Infatti il prodotto finale è contenuto nei registri A e Q che sono concatenati e formano un unico registro. OUTBUS:=A; i dati escono attraverso il canale d uscita. 4

Completiamo ora il progetto aggiungendo al percorso dati la parte di controllo EX-OR Q (7) M (0) accumulatore Registro Q Registro M Sommatore Parallelo OUTBUS INBUS Segnali di controllo esterni Sono le operazioni d inizializzazione del sistema Begin End Clock Unità di controllo (UC) L Unità di controllo riceve dei segnali esterni e genera dei segnali di controllo interni. Vediamo quali sono i segnali di controllo che dobbiamo inserire nel percorso dati e a cosa servono. Sono in numero di 13: C1 C2 CK Segnali di controllo interni che agiranno sul percorso dati del moltiplicatore Segnali di controllo C0 C1 C2 Operazioni A:=0 azzera A ovvero l accumulatore COUNT:=0 azzera il contatore Carica A(0) 5

C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 CALCOLATORI ELETTRONICI M:=INBUS carica Y nel registro M Q:=INBUS carica Q con X A(1:7):=ADDER carica A(1:7) con la somma parziale Ingresso 2 dell ADDER:= M and Q Scorrimento a destra di A.Q; il segnale C7 comanda lo scorrimento a destra della coppia di registri A e Q Incrementa COUNT A(0):=Cout oppure M(0) Q(7); C9 serve per far si che in A(0) venga caricato il riporto dell operazione di somma (cioè Cout) oppure l EXOR tra M(0) e Q(7). In A(0) viene caricato il riporto Cout ad ogni operazione di somma parziale. Sarà 0 se non c è alcun riporto. Solo alla fine di tutte le somme parziali viene caricato il segno. Quindi durante le fasi del calcolo della somma viene caricato Cout. Q(7):=0 BUFFER:=A carica la parte più significativa del risultato nel buffer, mantenendolo per il tempo necessario affinché l OUTBUS si liberi OUTBUS:=Q Spiegazione del segnale C9. Il segnale C9 comanda un MUX, quindi in A(0) viene caricato a seconda del valore di C9, l uscita della EXOR (segno di Y*X) oppure l uscita del sommatore parallelo, cioè il riporto Cout. 6

Cout Segno (x*y) EX-OR C7 MUX 1 accumulatore C9 Q (7) Registro Q M (0) Registro M C11 C5 Buffer 7 Sommatore Parallelo 7 Somma parziale 8 8 C4 MUX 2 C6 OUTBUS 0 M INBUS Gli ingressi del MUX 1 sono parole da 1 bit, mentre gli ingressi del MUX 2 sono parole da 7 bit. L ingresso indicato con 0 indica che al sommatore parallelo arriva una parola di 7 bit tutti a 0 cioè un vettore di zeri. Il segnale di controllo C6 fa si che all ingresso del sommatore sia presente Y (contenuto del registro M), oppure il vettore di zeri. Nel caso sia presente Y significa che il bit meno significativo di X cioè X4 vale 1 e questo comporta che il prodotto Y*X4=Y. Nel caso in cui il bit X4 valga 0 allora il prodotto Y*X4=0 e quindi al sommatore arriva il vettore di zeri. Esempio: Y 1011 X X4 0 0000 Il segnale di controllo C11 agisce come segnale di caricamento parallelo di un buffer, in pratica carica il risultato finale dell accumulatore all interno di un buffer (è un registro) e lo mantiene, in attesa di essere presentato al bus d uscita (OUTBUS). Abbiamo concluso il Moltiplicatore binario che ci serve per la descrizione della CPU. Viene ora analizzata l architettura di base di un sistema di elaborazione. 7

Architettura di base di un sistema di elaborazione Essa è formata da un unità centrale di elaborazione (CPU Central Processing Unit) e dalla memoria, che nel modello di Von Neumann immagazzina dati e istruzioni. L interazione tra questi due elementi è essenziale in un sistema di calcolo. La CPU interagisce con la memoria che contiene i dati elaborati ma anche le istruzioni che devono ancora essere eseguite. Il collegamento tra la CPU e la memoria è quindi l aspetto più critico di un sistema di calcolo. Differenza tra architettura di Von Neumann e l architettura di Harward Architettura di Von Neumann (esiste un unica memoria che contiene sia istruzioni che dati) CPU Memoria Istruzioni e Dati Architettura di Harward (la memoria dati e la memoria istruzioni sono separate). Si differenza dalla architettura Von Neumann perché ha spazi di memoria separati per la memoria di programma e la memoria dei dati con bus dati/indirizzi e controllo separati. In questo modo si aumenta la velocità di elaborazione. E molto usata nei microcontrollori e nei DSP (Digital Signal Processor processori usati per il trattamento dei segnali). 8

Write MD CPU Read MD dati Memoria Dati istruzioni indirizzi indirizzi Memoria istruzioni Può essere a sola lettura Funzionamento: 1. la cpu genera l indirizzo dell istruzione da eseguire. 2. In base all indirizzo viene selezionata la locazione corrispondente della memoria istruzioni e letta l istruzione 3. dalla memoria dati la cpu legge i dati necessari per l esecuzione dell istruzione (read Md) dopo aver specificato l indirizzo della locazione della memoria dati 4. il risultato ottenuto viene memorizzato nella memoria dati (write MD) La memoria E costituita da milioni di celle, realizzate utilizzando semiconduttori, ciascuna delle quali memorizza un bit d informazione. Normalmente queste celle non vengono lette o scritte individualmente ma sono raggruppate in locazioni di memoria da 8-16-32-64 bit (parole o word). Ogni locazione di memoria è individuata da un indirizzo e sulla singola locazione sono possibili operazioni di lettura e scrittura. 9

Decoder Indirizzi generati quasi sempre dalla CPU. In base a questi indirizzi il decoder individua nella memoria il dato che interessa Matrice di memoria Dati Controlli Segnali di controllo necessari per gestire le operazioni di lettura e scrittura I contenuti delle locazioni di memoria possono essere sia istruzioni che operandi e questi ultimi possono essere sia numeri che lettere. Le operazioni di lettura e scrittura e tutte le operazioni di temporizzazione vengono gestite dai segnali di controllo. I dati vengono mandati verso l esterno se l operazione è di lettura o verso l interno se è di scrittura. Le linee di dato consentono l ingresso e l uscita delle informazioni dalla memoria. Le linee di dato sono bidirezionali, mentre le linee d indirizzo consentono di trasmettere l informazione solo dalla CPU alla memoria, in pratica sono unidirezionali. Il ciclo di base di una qualsiasi istruzione (Instruction Cycle) L esecuzione di un istruzione si suddivide in due operazioni fondamentali/principali: 1. Operazione di fetch, vale a dire l operazione di lettura dell istruzione dalla memoria 2. Operazione di esecuzione, vale a dire lettura dei dati necessari ( acquisizione degli operandi) e svolgimento dell operazione. E l esecuzione vera e propria dell istruzione. Il ciclo fetch-esecuzione viene ripetuto ciclicamente per eseguire un programma. In sintesi: La fase di fetch consente l acquisizione della nuova istruzione. La fase di esecuzione consente lo svolgimento dell operazione. La fase di fetch è uguale per tutte le istruzioni, che ovviamente si differenziano nella fase di esecuzione. Al termine della fase di esecuzione viene eseguita la fase di fetch dell istruzione successiva. 10