Elettronica Digitale (II Parte) 10-11_10
1
ELETTRONICA DIGITALE (II Parte)
(10)
24/01/11
RIEPILOGO CORSO
Elettronica Digitale (II Parte) 10-11_10
2
PROGRAMMA• Presentazione del corso e concetti generali• Dispositivi logici: PLA, PAL, FPGA, Gate Array, Standard cell• Architetture dei microprocessori e (micro)calcolatori• Unità del calcolatore:processore e memoria.• Registri dedicati e di uso generale• Collegamenti tra unità: bus• Livelli di astrazione• Linguaggio macchina o assembly language• Funzionamento del processore:fetch,decode, execute• Tipi di istruzione mecchina• Formalismo RTL• Classi di istruzioni• Modi di indirizzamento• Salti condizionati• Architetture di I/O• Istruzioni e registri di I/O• Lo stack e il suo funzionamento• Sistema di I/O: bus dati, indirizzo e controllo, istruzioni di I/O• Polling, Interrupt e DMA• Cenni sui problemi di sincronizzazione
• Porte seriali e parallele
• Sistema operativo
• Presentazione del processore commerciale
• Progetto del microcontrollore basato sul microprocessore commerciale prescelto
Elettronica Digitale (II Parte) 10-11_10
3
Segnale Binario (segue)
Elettronica Digitale (II Parte) 10-11_10
4
Logic Devices• ASIC (Application Specific Integrated Circuit)
• Standard Cell
• Gate Array
PLD (Programmable Logic Devices)
• SPLD (Simple PLD)• PLA (Programmable Logic Array) • PAL (Programmable Array Logic)• GAL (Generic Array Logic)
• CPLD (Complex PLD)
• FPGA
Programmate durante la produzione nella Fab
Programmabili sul campo
Re/Programmabili nel circuito
Elettronica Digitale (II Parte) 10-11_10
5
Strutture PLD
Programmable Logic Array (PLA)
Programmable Array Logic (PAL)
IN1IN2IN3INn
OUT1OUT2OUT3OUTm
IN1IN2IN3INn
OUT1
OUTm
Elettronica Digitale (II Parte) 10-11_10
6
FPGA: Architettura
LE LE LE LE
LE LE LE LE
LE LE LE LE
LE LE LE LE
VRC
VRC
VRC
HRC
HRC
HRC
IO
IO
IO IO
IM IM IM
IM IM IM
IM IM IM
Elettronica Digitale (II Parte) 10-11_10
7
FPGA: Logic Element (Block)
CLR
IN[3:0]
Q
QSET
CLR
D
CLK
S
LUT
OUT
Elettronica Digitale (II Parte) 10-11_10
8
FPGA : motivi delle scelte
• Riprogrammabilità anche parziale• Funzionalità volatili e non volatili: SRAM,
FLASH, FUSE e MPGA• Tool molto efficienti (HDL)• Prototipi di test• Ecc.
Elettronica Digitale (II Parte) 10-11_10
9
Unità del Calcolatore
Unità funzionali fondamentali del calcolatore.
Elettronica Digitale (II Parte) 10-11_10
10
Microprocessore
Data Register
DATA[DW:0]
Instruction Register
Control Unit
Instruction Decoder
Sequencer
Accumulator
ALU
Status
General Register 0
General Register 1
General Register 2
General Register n
Address Register H
Index Register 0
Index Register 1
Index Register n
Stack Pointer
Program Caunter
Address Logic
Address Register L
ADD[AW:0]
CTRL
Inte
rnal
C
ontr
ols
Interrupt
DMA Controls
Mode Register
Elettronica Digitale (II Parte) 10-11_10
11
Collegamento tra Unità - Bus
Calcolatore strutturato intorno a un solo bus.
Elettronica Digitale (II Parte) 10-11_10
12
Memoria Cache e Centrale
Struttura della memoria e relazione con il processore.
Elettronica Digitale (II Parte) 10-11_10
13
Memoria Cache e Centrale
Località temporale Frequenza temporale
Località spaziale indirizzi vicini (dati, vettori…)
Probabilità di accesso frequente a generazione semplificata indirizzi
Trasferimento di blocchi di memoria da memoria centrale a memoria veloce (cache)
Elettronica Digitale (II Parte) 10-11_10
14
Il microcalcolatore
CPU
DecoderFlash
RAM
ADD (n) ADD (n-1)
nCS0
nCS1
nOE
nWE
Data
nOE
nWE
nOE
nWE
Elettronica Digitale (II Parte) 10-11_10
15
livello 1 logica digitale
livello 3 insieme di istruzioni
livello 6 linguaggio applicativo
livello 4 sistema operativo
livello 5 linguaggio macchina
livello 2 microarchitettura
Schema Riassuntivo
compilazione
assemblaggio
chiamata asupervisore einterruzione
esecuzione(cablata o microprog.)
hardware
Elettronica Digitale (II Parte) 10-11_10
16
Istruzione e linguaggio macchina
• L’istruzione macchina è il compito elementare eseguibile da parte del processore.
• Essa si distingue in forma simbolica e numerica:– simbolica: come viene scritta da parte del programmatore, in
modo leggibile e facilmente interpretabile– numerica (o binaria): come è rappresentata in memoria nel
programma in esecuzione, in forma adatta al processore
• Ogni processore ha uno specifico insieme(o repertorio) di istruzioni macchina che, insieme alle
direttive, sono alla base del linguaggio macchina
Elettronica Digitale (II Parte) 10-11_10
17
Assemblatore
• Il linguaggio macchina in forma simbolica è chiamato anche linguaggio assemblatore o assembly language.
• L’assemblatore (assembler) è uno strumento SW che esamina il programma in linguaggio macchina simbolico e, se non ha errori, lo traduce (o assembla) generandone la forma numerica corrispondente
• L’assemblatore è legato alle caratteristiche del processore
Elettronica Digitale (II Parte) 10-11_10
18
Modello di Processore
Modello generico di processore, vale per qualunque processore ragionevole.
Elettronica Digitale (II Parte) 10-11_10
19
Ciclo di Prelievo-Esecuzione
• Il processore preleva (fetch) da memoria centrale l’istruzione macchina da eseguire
• Il processore decodifica (decode) l’istruzione, cioè la analizza e ne determina il significato.
• Il processore esegue (execute) l’istruzione, elaborando i dati opportuni e producendo il risultato:– i dati, o si trovano già nei registri o vanno caricati da
memoria– il risultato, o viene lasciato in un registro o viene
memorizzato
Elettronica Digitale (II Parte) 10-11_10
20
Struttura della Memoria
Elettronica Digitale (II Parte) 10-11_10
21
Struttura della Memoria
• Fondamentalmente la memoria del calcolatore è costituita da una sequenza (vettore) di parole(o celle, o locazioni) binarie.
• Ogni parola è una stringa (successione) di un numero fissato di bit:– 8 bit: carattere o byte– 16 bit: parola (ordinaria) (word)– 32 bit: parola doppia (double or long word)– 64 bit: parola quadrupla (quad word)
• Ogni parola ha un contenuto o valore, che è la sequenza di bit memorizzata, e un indirizzo (address), che serve per identificare la parola.
Elettronica Digitale (II Parte) 10-11_10
22
Dato in Memoria
Elettronica Digitale (II Parte) 10-11_10
23
Indirizzamento di Memoria
• In genere l’elemento di memoria minimo che il processore può leggere (caricare) o scrivere (memorizzare) è il carattere, cioè un byte (8 bit).
• Ne viene che quasi sempre l’indirizzo di memoria si riferisce al byte e ogni byte è numerato progressivamente, da 0 in poi.
• Allineamento degli schemi: l’indirizzo è multiplo della lunghezza della parola, misurata in byte.
• Esempio: la parola ordinaria (due byte) può avere solo indirizzo di valore pari: 0, 2, 4, ecc.
Elettronica Digitale (II Parte) 10-11_10
24
Istruzione in Memoria• L’istruzione macchina, in forma numerica cioè eseguibile da
parte del processore, è anch’essa contenuta in una o più parole di memoria consecutive, come il dato.
• Il numero di parole consecutive occupate da un’istruzione macchina dipende:– da come l’istruzione è codificata in bit– da quanto l’istruzione è complessa e lunga
Spesso l’istruzione occupa una sola parola.
Istruzioni di base• Trasferimento dati tra memoria e registri interni del
processore
• Operazioni logiche e aritmetiche su dati
• Sequenziamento istruzioni/ funzioni di controllo
• Trasferimento dati tra organi di I/O e registri interni
Elettronica Digitale (II Parte) 10-11_10
25
Forma Simbolica
• Il programmatore denota l’istruzione macchina in forma simbolica, facilmente leggibile, come per esempio:
NOME arg1, arg2, … commento
• Il nome (o codice mnemonico) indica l’operazione: MOVE (carica, memorizza o copia dato), ADD (addiziona dato), SUB (sottrai), ecc
• Gli elementi arg1, arg2, ecc, sono gli argomenti e indicano i dati da elaborare o dove scrivere il risultato, o anche, nelle istruzioni di salto, dove reperire la prossima istruzione da eseguire.
• Argimenti di tipo sorgente (dato), destinazione (dato) e destinazione di salto (indirizzo) …
Elettronica Digitale (II Parte) 10-11_10
26
Argomenti: Sorgente-Destinazione e numero
• Nel linguaggio macchina della maggior parte delle famiglie di processori, gli argomenti sorgente precedono quello destinazione.
• Prototipi tipici:
NOME arg_sorg1, arg_sorg_2, arg_destNOME arg_sorg, arg_destNOME arg_sorg, arg_sorg_e_dest
• I linguaggi macchina si dividono in:– linguaggi a due argomenti: le istruzioni che fanno
operazioni con due operandi lo sovrascrivono a uno degli operandi, il quale va dunque perso
– linguaggi a tre argomenti: le istruzioni non modificano gli operandi e scrivono altrove il risultato
Elettronica Digitale (II Parte) 10-11_10
27
Tipi di istruzione• Tre argomenti: ADD R1, R2, R3
– sovrascrivendone addiziona i contenuti di R1 e R2 e scrivi la somma in R3, il contenuto precedente
– R1 e R2 sono sorgente, R3 è destinazione
• Due argomenti: ADD R1, R2– addiziona i contenuti di R1 e R2 e scrivi la somma in R2,
sovrascrivendone il contenuto precedente– R1 è sorgente, R2 è sia sorgente sia destinazione
• Un argomento: DEC R1– decrementa il contenuto di R1– R1 è sia sorgente sia destinazione
• Un argomento (salto): JMP 10– sposta il flusso di esecuzione del programma all’istruzione
collocata all’indirizzo 10 - 10 è destinazione di salto
Elettronica Digitale (II Parte) 10-11_10
28
Formalismo RTL
• Register transfer language: è un formalismo notazionale di specifica per istruzioni, di tipo matematico, formale e preciso, per specificare che cosa faccia un’istruzione.
• Somiglia al costrutto di assegnamento a variabile, come si trova in C, Pascal e simili.
Elettronica Digitale (II Parte) 10-11_10
29
Simbologia di Base• Il numero decimale indica:
– una costante numerica, da usare come dato– un indirizzo di memoria, da usare come riferimento a una parola di
memoria• Un identificatore simbolico, magari contenente un suffisso numerico, indica:
– un nome di registro, come PC, SP o Ri (con suffisso i), il cui contenuto si usa come dato o come indirizzo
– una costante numerica cui sia stato dato un nome simbolico, come per esempio si fa in C con #define, da usare come dato
• L’operatore freccia verso sinistra “” funziona in sostanza come operatore di assegnamento– destinazione valore origine valore– Tipicamente l’origine del valore è una costante, un numero contenuto in un
registro, una parola di memoria o un’espressione aritmetica tra oggetti di tale genere.
• :
Elettronica Digitale (II Parte) 10-11_10
30
Classi di istruzioni
• Istruzioni di trasferimento:– caricamento, memorizzazione e copia
• Istruzioni aritmetiche e logiche:– di base: addizione, sottrazione, cambio segno, AND, OR, NOT,
XOR, e poco altro– ausiliarie: scorrimento, rotazione, varie
• Istruzioni di ingresso e uscita:– lettura o scrittura di dato da o su periferica
• Istruzioni di confronto:– confronto tra due dati o di un dato con zero
• Istruzioni di controllo del flusso di esecuzione del programma (salto)• Istruzioni di controllo del processore:
– gestione del meccanismo di interruzione
Elettronica Digitale (II Parte) 10-11_10
31
Modo di Indirizzamento
• Il modo di indirizzamento è un insieme di regole secondo cui indicare nell’istruzione macchina come:– reperire il dato da elaborare o la posizione dove andare a
scrivere il risultato dell’elaborazione – modo di dato– individuare la prossima istruzione da eseguire, quando
non si deve andare di seguito (caso dell’istruzione di salto) – modo di istruzione
• In teoria, i modi di dato e di istruzione sono interscambiabili, ma ci sono alcuni usi prevalenti.
• I modi di indirizzamento sono essenziali nel dare flessibilità e generalità al linguaggio macchina.
• Se sono numerosi sono però anche complessi da gestire e complicano la descrizione del linguaggio stesso.
Elettronica Digitale (II Parte) 10-11_10
32
Modi di Indirizzamento
(i.e. Indirizzo effettivo)
Elettronica Digitale (II Parte) 10-11_10
33
Bit di Esito
• Ciascun esito è rappresentato da un bit:– se il bit vale uno, l’esito associato è affermativo– altrimenti, l’esito associato è negativo
• Di norma i bit di esito sono collocati nel registro di stato, in posizioni prefissate.
• Le istruzioni macchina che producono esito aggiornano in modo automatico i bit di esito di loro pertinenza.
• Le istruzioni macchina di salto condizionato controllano il bit di esito di loro pertinenza per decidere se la condizione di salto sia vera o falsa, e se saltare o meno come conseguenza.
Elettronica Digitale (II Parte) 10-11_10
34
Tastiera + Video = Terminale
Calcolatore dotato di bus singolo con unità processoree interfacce di I / O per tastiera e video.
Elettronica Digitale (II Parte) 10-11_10
35
STACK: Struttura e Terminologia
Struttura della pila (STACK) di memoria.
Elettronica Digitale (II Parte) 10-11_10
36
L’assemblaggio• Il programma macchina in forma simbolica si presenta come una
successione di:– istruzioni macchina simboliche– direttive (pure simboliche)
• Il processo di assemblaggio deve in qualche modo definire dove (cioè in quali indirizzi) collocare programma e dati: – riconosce e trasforma le istruzioni in forma numerica,
collocandole a indirizzi successivi– riconosce e interpreta le direttive
• Ci sono anche altre questioni da affrontare:– come definire costanti simboliche ed etichette– come risolvere le etichette in indirizzi numerici– come designare porzioni di memoria per dati
Elettronica Digitale (II Parte) 10-11_10
37
Sistema di Assemblaggio
• Il sistema GAS (GNU ASsembler) è un assemblatore generico, capace di riconoscere il linguaggio macchina di numerose famiglie di processori (Motorola, Intel, HP, ARM e altre).
• Le direttive e il formato generale simbolico di GAS sono comuni a tutti i linguaggi.
• GAS si specializza solo nel riconoscere i nomi delle istruzioni macchina, che variano secondo il processore commerciale specifico
Formato di Linea
Elettronica Digitale (II Parte) 10-11_10
38
Elettronica Digitale (II Parte) 10-11_10
39
Periferiche
Il processore scambia informazioni con le periferiche attraverso dei registri. Tipicamente:
• Control REGister;• Status REGister;• Data REGister;
Questi registri sono generalmente “MAPPATI IN MEMORIA” ossia sono visti come locazioni di memoria nello spazio di indirizzamento
Periph
Interface
CPU
Periph
Interface
Periph
Interface
Periph
Interface
Data Bus
Address Bus
Control Bus
SR
EG
CR
EG
DR
EG
Elettronica Digitale (II Parte) 10-11_10
40
Schema di Interfaccia
Componenti fondamentali dell’interfaccia di I/O (qui sola lettura)
lato di periferica
lato di calcolatore
Elettronica Digitale (II Parte) 10-11_10
41
Temporizzazione delle attività
1. Sincrona rispetto all’esecuzione del programma (Polling)
2. Asincrona rispetto all’esecuzione del programma (Interrupt)
3. Indipendente dall’esecuzione del programma (DMA)
Elettronica Digitale (II Parte) 10-11_10
42
Gestione delle periferiche
Polling
Elettronica Digitale (II Parte) 10-11_10
43
Periph
CPU
Periph Periph Periph
INT2
INT1
INT0
INT
Gestione delle Periferiche
Interrupt
Nella gestione mediante Interrupt è la periferica stessa a richiedere servizio mediante un apposito segnale.Il processore non deve interrogare periodicamente le periferiche.La gestione delle periferiche è ASINCRONA al programma nel senso che il programmatore non può prevedere quando ci sarà una richiesta di servizio
Elettronica Digitale (II Parte) 10-11_10
44
Gestione delle Periferiche
Direct Memory Access (DMA)
L’accesso diretto alla memoria consente (solo) di scambiare dati tra una periferica e la RAM senza l’intervento della CPU (Rigidità)Non viene perso del tempo di CPU nello scambio dei dati (la CPU continua ad eseguire il programma principale fino al prossimo cache miss)Necessita di hardware (complesso) aggiuntivo
Elettronica Digitale (II Parte) 10-11_10
45
Gestione delle priorità (HW)• L’arbitro stabilisce qual’è l’interrupt a priorità più alta
mettendo in uscita il codice corrispondente• Viene quindi eseguita la routine relativa all’interrupt
selezionato
Elettronica Digitale (II Parte) 10-11_10
46
Salvataggio del ContestoTutti i sistemi di interruzioni richiedono, come minimo, il salvataggio del Program Counter (PC).
Molti processori salvano in modo automatico molti dei registri interni. In questo modo la Routine di servizio può alterare i registri che verranno ripristinati, in modo automatico e molto veloce, con il contenuto originario prima che il controllo torni al programma principale.
In altri casi, deve essere il programmatore a mettere in salvo (e.s. nello Stack) il contenuto dei registri che verranno usati dalla routine di servizio e a ripristinarli al suo termine.
Elettronica Digitale (II Parte) 10-11_10
47
Porta Parallela di Ingresso
Elettronica Digitale (II Parte) 10-11_10
48
Comunicazione Seriale: Rx
Q
QSET
CLR
D
Q
QSET
CLR
D
Q
QSET
CLR
D
Q
QSET
CLR
D
CLK
RX
Data
Q
QSET
CLR
D
/n
11010011 11010011
CLKTx CLKRx
DataIn DataOut
Rx
1 2 3 … … … n - 1 n - 1 2
CLK
Rx ricostruisce la WORD andando a valutare il suo significato solo quando sono stati ricevuti tutti i bits di cui è composta
Elettronica Digitale (II Parte) 10-11_10
49
Ruolo del Sistema Operativo
• Normalmente il calcolatore è equipaggiato con un sistema operativo (SO).
• Il SO è un complesso di programmi che danno al calcolatore funzionalità minimali:– caricare e attivare uno o più programmi– gestire le unità funzionali di memoria e I/O– permettere l’esecuzione simultanea di due o più
programmi (processi): concorrenza– permettere la compresenza di più utenti– garantire affidabilità e sicurezza del calcolatore.
Elettronica Digitale (II Parte) 10-11_10
50
Memoria
• Memoria interna o centrale o principale– ROM, PROM– RAM (SRAM, DRAM)
• Memoria esterna o ausiliaria– Dischi rigidi (magnetici, ottici, magneto-ottici)– Floppy– Nastri– Cassette
Elettronica Digitale (II Parte) 10-11_10
51
Elettronica Digitale (II Parte) 10-11_10
52
Tipologie di Memorie allo stato solido
Volatili Non VolatiliRAM (Random Access Memory)
SRAM (Static RAM)Flip-FlopStaticheVelocissimeCella GrandeCosto per BitTaglio ~ 100 Kbit
DRAM (Dynamic RAM)CapacitàDinamiche (Refresh)VelociCella piccolaCosto per BitTaglio ~ 100 Mbit
ROM (Read Only Memory)
Programmate in fonderiaCosto per Bit
EEPROM (Electrically Erasable Programmable ROM)MOS Floating GateE-P Random Access R Lenta, E-P molto lentiCosto per Bit
Masked ROM
MOS Floating GateCancellabili mediante UV
Fuse - AntifuseOTP (One Time Programmable)
EPROM (Electrically Programmable ROM)
FlashMOS Floating GateP Random Access E a banchi R Lenta, P molto lenti, E lentissimoCosto per BitTaglio ~ 100 Mbit
SDRAM (Synchronous DRAM)CapacitàAccesso a burstSelf Refresh
Elettronica Digitale (II Parte) 10-11_10
53
Elettronica Digitale (II Parte) 10-11_10
54
Concetto di Gerarchia• Si possono migliorare le prestazioni (la velocità) del calcolatore
tramite il sistema di memoria, con il concetto di gerarchia di memoria:– diversi livelli di memoria, con tecnologie differenti in modo da
ottenere un buon compromesso tra costo / capacità / prestazione (cioè rapidità di accesso)
• Qui l'attenzione è sul sistema di memoria cache, che ha lo scopo di rendere rapida la memoria.
• Il divario di prestazioni tra CPU e DRAM è cresciuto (vel. DRAM +22% anno, vel. CPU +50,100% anno)
• L’analisi sull’esecuzione dei programmi mostra che i riferimenti alla memoria godono di 2 proprietà:
1. Località spaziale: è altamente probabile che l’istruzione successiva sia contigua a quella che si sta eseguendo
2. Località temporale: poiché tutti i programmi hanno dei cicli in cui si fa altamente probabile che nel prossimo futuro venga di nuovo eseguita la stessa istruzione o si faccia riferimento allo stesso dato
Elettronica Digitale (II Parte) 10-11_10
55
Gerarchia• La località suggerisce l’introduzione di una
gerarchia nella memoria• Al livello più alto ci sono i registri della CPU• Al livello più basso le memorie di massa
Elettronica Digitale (II Parte) 10-11_10
56
Tre sottosistemi tecnologici:• registri interni del processore per dati e indirizzi dove lavorano correntemente le istruzioni: alta velocità bassa capacità• memoria primaria per programmi in esecuzione e dati in elaborazione corrente: serie di tecnologie, tutte elettroniche, veloci, capaci, volatili• memoria secondaria per programmi e dati in deposito permanente o di uso differito: tecnologie, magnetiche od ottiche, lente, molto capaci, persistenti (ma di basso costo per bit memorizzato)
Sistemi tecnologici
Elettronica Digitale (II Parte) 10-11_10
57
Modello di Processore
Elettronica Digitale (II Parte) 10-11_10
58
Comunicazione tra Unità• Da unità di controllo a unità di calcolo:
– ordini: comandi per eseguire l’istruzione macchina• Da unità di controllo a interfaccia di bus:
– ordini: comandi di bus implicati dall’istruzione macchina(lettura da memoria, scrittura in memoria, ecc)
– riscontri: segnalazioni di bus relative all’andamento dell’operazione di memoria (attesa, ecc)
• Da unità di calcolo a unità di controllo:– istruzione macchina: codice operativo dell’istruzione macchina ed
eventualmente altri elementi dell’istruzione stessa necessari per interpretarla compiutamente
– esiti (codici di condizione): bit di esito e altri segnali utili per determinare il modo di esecuzione dell’istruzione macchina
• Da unità di calcolo a interfaccia di bus:– Indirizzi e scambio dati con I/O e memorie
Elettronica Digitale (II Parte) 10-11_10
59
Unità di Calcolo a un Bus Interno
È la struttura base di unità di calcolo e trova ampio uso in numerosi processori.Con meno di così sarebbe difficile svolgere i compiti essenziali di solito richiesti al processore.
Ammette varianti strutturali e versioni più efficienti, ma in ogni caso è un oggetto fondamentale, che va conosciuto e ricordato.
Elettronica Digitale (II Parte) 10-11_10
60
Sequenza di Controllo (1)• La sequenza di controllo per eseguire un’istruzione
macchina è composta da uno o più passi di controllo, uno per ogni ciclo di clock del processore.
• L’esecuzione complessiva dell’istruzione macchina si divide in tre fasi, a loro volta costituite da una sotto-sequenza di passi di controllo:– prelievo (fetch)– decodifica o interpretazione (decode)– esecuzione e sequenziamento (execute)
• A ogni passo di controllo vengono generati gli ordini (attivi in parallelo) che pilotano l’unità di calcolo.
• L’effetto complessivo degli ordini è quello di svolgere per intero l’istruzione macchina.
Elettronica Digitale (II Parte) 10-11_10
61
Sequenza di Controllo (2)• Esempi di ordini:
– lettura di un registro (dal registro al bus interno): R0out
– scrittura su un registro (dal bus interno al registro): R1in
– operazione della ALU: add, sub, and, or, cmp, …– lettura e scrittura su memoria (o su I / O): read, write
• Ordini mutuamente esclusivi:– lettura da registro: il contenuto di un solo registro alla volta può
essere portato sul bus interno– operazione di ALU ...... c’è una sola ALU !
• Ecco un esempio semplice. Con prelievo già fatto,si consideri l’istruzione macchina seguente (a 32 bit):– MOVE.L R0, R1 (interpretazione RTL: R1 R0)– per eseguirla, gli ordini da dare sono: R0out, R1in
Elettronica Digitale (II Parte) 10-11_10
62
Sequenza di Controllo Completa
• Si consideri l’istruzione macchina seguente (somma contenuti R0 e R1, risultato in R1):– ADD R0, R1 -- R1 R0 R1
• Fase di prelievo (è identica per tutte le istruzioni):– PCout, MARin, read, select 4, Zin add -- Z PC 4, leggi mem. – Zout, PCin, Vin, WMFC (Wait for Mem Funct Compl) -- PC e V Z,
attendi fine– MDRout, IRin -- IR MDR
• Fase di decodifica o interpretazione:– decodifica l’istruzione macchina (non occorrono ordini, la decodifica è automatica
non appena la parola di opcode viene scritta in IR)– se l’istruzione macchina è codificata su più parole, leggi anche
le parole di memoria aggiuntive e riaggiorna il PC (qui ev. ordini)• Fase di esecuzione:
– R0out, Vin -- V R0– R1out, add, Zin -- Z R1 V – Zout, R1in, end -- R1 Z, e poi torna a fase di prelievo
Elettronica Digitale (II Parte) 10-11_10
63
Struttura di un Registro Interno
un generico registro interno, dotato di porta di lettura e scrittura, è una schiera di flip-flop come quello mostrato sopra, pilotati in parallelo
singolo flip-flop, con porta di lettura e scrittura verso il bus interno
Elettronica Digitale (II Parte) 10-11_10
64
Accesso a Mem. o a Unità di I / O• Segnale MFC (Memory Function Completion), Riscontro di
completamento dell’operazione, è attivato dall’unità slave (qui la memoria) e indica il completamento dell’operazione:– per esempio in lettura indica che la memoria ha emesso il
dato e che questo, tramite il bus esterno, ha raggiunto MDR
• Ordine WMFC (Wait for MFC): esso “blocca” l’avanzamento dei passi di controllo finché il processore non ha ricevuto MFC.
• Lettura da memoria: si può usare il registro MDR solo a partire dal passo successivo a quello associato a WMFC.In generale dunque l’ordine WFMC va dato nel passo precedente a quello dove si utilizza il registro MDR.
• Scrittura in memoria: in generale l’ordine WMFC va dato nello stesso passo dove si dà l’ordine di write.
• Idem per accedere a unità di I / O (interfaccia periferica).
Elettronica Digitale (II Parte) 10-11_10
65
Clock e Temporizzazione (3)
Operazione di letturada memoria:
1) …, MARin, read
2) MDRoutE, WMFC
3) MDRout, …
Nota: l’ordine MDRoutE
si può omettere(è implicato da read).
Si suppone che MFC tardi di due cicli.
Diagramma temporale simile per la scrittura.
diagramma temporale prolungamento del passo 2
memoria tardadi due cicli
Elettronica Digitale (II Parte) 10-11_10
66
Esempio di Istruzione Completa
Istruzione Aritmetica
ADD (R3), R1 -- codificata su una sola parola
interpretazione RTL: R1 R3 R1
potrebbe servirese fosse salto
Elettronica Digitale (II Parte) 10-11_10
67
Unità di Calcolo a tre Bus Interni
La presenza di tre bus interni permette di avere parallelismo maggiore di trasferimento di dato,e dunque consente di ridurre il numero di passi ( cicli di clock) necessari per eseguire l’istruzione, almeno fino a un certo punto.
si può anticipare
bus R
Elettronica Digitale (II Parte) 10-11_10
68
Unità di Controllo• L’unità di controllo emette i segnali (ordini) che regolano il
funzionamento dell’unità di calcolo.• L’unità di controllo può avere struttura:
– cablata (o dedicata): è costruita ad-hoc e si basa su• decodificatore di istruzioni (che utilizza il registro IR)• contatore (per scandire la successione dei passi di
controllo)• bit di esito e segnali esterni, per istruzioni condizionate• rete combinatoria per generare ordini a ogni passo di
controllo– micro-programmata: decodifica l’istruzione macchina
e legge in una memoria di controllo (control store), tramite un registro micro-PC, una micro-parola contenente i segnali di controllo da emettere per eseguire l’istruzione
• Entrambe le strutture di UC sono usate, ma quella cablata oggi è più comune giacché è più efficiente, benché sia meno flessibile.
Elettronica Digitale (II Parte) 10-11_10
69
Unità di Controllo Cablata
Elettronica Digitale (II Parte) 10-11_10
70
Unità di Controllo -Programmata
• Il comportamento dell’unità di controllo di tipo-programmato dipende solo dal contenuto della memoria di -programma (o control store).
• I segnali di controllo (cioè gli ordini) di ogni passo sono contenuti in una parola della memoria di -programma (o -memoria).
• Ogni parola di -memoria viene chiamata -istruzione.• La sequenza di -istruzioni corrispondenti ai passi di
controllo per l’esecuzione di un’istruzione macchina costituisce una -routine.
• L’insieme di -routine costituisce il - programma
Elettronica Digitale (II Parte) 10-11_10
71
Memoria di -Programma
Istruzione macchina ADD (R3), R1 microprogrammata
Gli ordini (qui si chiamano -ordini) sono di tipo attivo alto. Ogni -istruzione specifica i -ordini da attivare in parallelo durante il passo
di controllo corrente.
Elettronica Digitale (II Parte) 10-11_10
72
Esempio di -Routine
1. PCout, MARin, read, select 4, Zin add
2. Zout, PCin, Vin,WMFC
3. MDRout, IRin
4. salta al -indirizzo della -routine appropriata
5. .................. (altre -routine)
25.PCout, MARin, read, select 4, add, Zin
26.Zout, PCin, Vin ,WMFC, if bit N 0 end (goto -istr. 1)
27.MDRout, select V, add, Zin
28.Zout, PCin, end (goto -istr. 1)
Salto Condizionato (relativo a PC)
Bcc 0 ETICHETTA -- codificata su una sola parola
Elettronica Digitale (II Parte) 10-11_10
73
Formato di -Istruzione
La -istruzione è suddivisa in campi, ciascuno dei quali pilota un solo elemento funzionale del processore:
-istr. orizzontale
oppure pilota un gruppo di elementi funzionali attivabili in mutua esclusione:
-istr. verticale
Elettronica Digitale (II Parte) 10-11_10
74
Calcolo del -Indirizzo• Per ottimizzare la struttura del -programma:
– riuso di parti di -codice per scrivere le differenti-routine associate alle fasi di esecuzione delle varie istruzioni macchina
• È utile per esempio per gestire:– i vari modi di indirizzamento– parti comuni a diversi modi di indirizzamento
• Tecnica: mascheratura di -indirizzo• Il -indirizzo “generale” (o base) viene modificato
(ritoccato) mascherandone alcuni bit per generaregli indirizzi corretti (vedi la struttura di UC mostrata prima), verso dove si vuole effettivamente spostareil flusso di controllo di -programma.
• La -istruzione che effettua la mascheratura di -indirizzo costituisce a tutti gli effetti un -salto.
Elettronica Digitale (II Parte) 10-11_10
75