75
Elettronica Digitale (II Parte) 10 -11_10 1 ELETTRONICA DIGITALE (II Parte) (10) 24/01/11 RIEPILOGO CORSO

ELETTRONICA DIGITALE (II Parte)

  • Upload
    selina

  • View
    60

  • Download
    5

Embed Size (px)

DESCRIPTION

ELETTRONICA DIGITALE (II Parte). (10) 24/01/11 RIEPILOGO CORSO. 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. - PowerPoint PPT Presentation

Citation preview

Page 1: ELETTRONICA DIGITALE    (II Parte)

Elettronica Digitale (II Parte) 10-11_10

1

ELETTRONICA DIGITALE (II Parte)

(10)

24/01/11

RIEPILOGO CORSO

Page 2: ELETTRONICA DIGITALE    (II Parte)

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

Page 3: ELETTRONICA DIGITALE    (II Parte)

Elettronica Digitale (II Parte) 10-11_10

3

Segnale Binario (segue)

Page 4: ELETTRONICA DIGITALE    (II Parte)

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

Page 5: ELETTRONICA DIGITALE    (II Parte)

Elettronica Digitale (II Parte) 10-11_10

5

Strutture PLD

Programmable Logic Array (PLA)

Programmable Array Logic (PAL)

IN1IN2IN3INn

OUT1OUT2OUT3OUTm

IN1IN2IN3INn

OUT1

OUTm

Page 6: ELETTRONICA DIGITALE    (II Parte)

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

Page 7: ELETTRONICA DIGITALE    (II Parte)

Elettronica Digitale (II Parte) 10-11_10

7

FPGA: Logic Element (Block)

CLR

IN[3:0]

Q

QSET

CLR

D

CLK

S

LUT

OUT

Page 8: ELETTRONICA DIGITALE    (II Parte)

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.

Page 9: ELETTRONICA DIGITALE    (II Parte)

Elettronica Digitale (II Parte) 10-11_10

9

Unità del Calcolatore

Unità funzionali fondamentali del calcolatore.

Page 10: ELETTRONICA DIGITALE    (II Parte)

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

Page 11: ELETTRONICA DIGITALE    (II Parte)

Elettronica Digitale (II Parte) 10-11_10

11

Collegamento tra Unità - Bus

Calcolatore strutturato intorno a un solo bus.

Page 12: ELETTRONICA DIGITALE    (II Parte)

Elettronica Digitale (II Parte) 10-11_10

12

Memoria Cache e Centrale

Struttura della memoria e relazione con il processore.

Page 13: ELETTRONICA DIGITALE    (II Parte)

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)

Page 14: ELETTRONICA DIGITALE    (II Parte)

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

Page 15: ELETTRONICA DIGITALE    (II Parte)

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

Page 16: ELETTRONICA DIGITALE    (II Parte)

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

Page 17: ELETTRONICA DIGITALE    (II Parte)

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

Page 18: ELETTRONICA DIGITALE    (II Parte)

Elettronica Digitale (II Parte) 10-11_10

18

Modello di Processore

Modello generico di processore, vale per qualunque processore ragionevole.

Page 19: ELETTRONICA DIGITALE    (II Parte)

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

Page 20: ELETTRONICA DIGITALE    (II Parte)

Elettronica Digitale (II Parte) 10-11_10

20

Struttura della Memoria

Page 21: ELETTRONICA DIGITALE    (II Parte)

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.

Page 22: ELETTRONICA DIGITALE    (II Parte)

Elettronica Digitale (II Parte) 10-11_10

22

Dato in Memoria

Page 23: ELETTRONICA DIGITALE    (II Parte)

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.

Page 24: ELETTRONICA DIGITALE    (II Parte)

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

Page 25: ELETTRONICA DIGITALE    (II Parte)

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) …

Page 26: ELETTRONICA DIGITALE    (II Parte)

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

Page 27: ELETTRONICA DIGITALE    (II Parte)

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

Page 28: ELETTRONICA DIGITALE    (II Parte)

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.

Page 29: ELETTRONICA DIGITALE    (II Parte)

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.

• :

Page 30: ELETTRONICA DIGITALE    (II Parte)

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

Page 31: ELETTRONICA DIGITALE    (II Parte)

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.

Page 32: ELETTRONICA DIGITALE    (II Parte)

Elettronica Digitale (II Parte) 10-11_10

32

Modi di Indirizzamento

(i.e. Indirizzo effettivo)

Page 33: ELETTRONICA DIGITALE    (II Parte)

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.

Page 34: ELETTRONICA DIGITALE    (II Parte)

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.

Page 35: ELETTRONICA DIGITALE    (II Parte)

Elettronica Digitale (II Parte) 10-11_10

35

STACK: Struttura e Terminologia

Struttura della pila (STACK) di memoria.

Page 36: ELETTRONICA DIGITALE    (II Parte)

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

Page 37: ELETTRONICA DIGITALE    (II Parte)

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

Page 38: ELETTRONICA DIGITALE    (II Parte)

Elettronica Digitale (II Parte) 10-11_10

38

Page 39: ELETTRONICA DIGITALE    (II Parte)

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

Page 40: ELETTRONICA DIGITALE    (II Parte)

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

Page 41: ELETTRONICA DIGITALE    (II Parte)

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)

Page 42: ELETTRONICA DIGITALE    (II Parte)

Elettronica Digitale (II Parte) 10-11_10

42

Gestione delle periferiche

Polling

Page 43: ELETTRONICA DIGITALE    (II Parte)

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

Page 44: ELETTRONICA DIGITALE    (II Parte)

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

Page 45: ELETTRONICA DIGITALE    (II Parte)

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

Page 46: ELETTRONICA DIGITALE    (II Parte)

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.

Page 47: ELETTRONICA DIGITALE    (II Parte)

Elettronica Digitale (II Parte) 10-11_10

47

Porta Parallela di Ingresso

Page 48: ELETTRONICA DIGITALE    (II Parte)

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

Page 49: ELETTRONICA DIGITALE    (II Parte)

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.

Page 50: ELETTRONICA DIGITALE    (II Parte)

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

Page 51: ELETTRONICA DIGITALE    (II Parte)

Elettronica Digitale (II Parte) 10-11_10

51

Page 52: ELETTRONICA DIGITALE    (II Parte)

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

Page 53: ELETTRONICA DIGITALE    (II Parte)

Elettronica Digitale (II Parte) 10-11_10

53

Page 54: ELETTRONICA DIGITALE    (II Parte)

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

Page 55: ELETTRONICA DIGITALE    (II Parte)

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

Page 56: ELETTRONICA DIGITALE    (II Parte)

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

Page 57: ELETTRONICA DIGITALE    (II Parte)

Elettronica Digitale (II Parte) 10-11_10

57

Modello di Processore

Page 58: ELETTRONICA DIGITALE    (II Parte)

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

Page 59: ELETTRONICA DIGITALE    (II Parte)

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.

Page 60: ELETTRONICA DIGITALE    (II Parte)

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.

Page 61: ELETTRONICA DIGITALE    (II Parte)

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

Page 62: ELETTRONICA DIGITALE    (II Parte)

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

Page 63: ELETTRONICA DIGITALE    (II Parte)

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

Page 64: ELETTRONICA DIGITALE    (II Parte)

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).

Page 65: ELETTRONICA DIGITALE    (II Parte)

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

Page 66: ELETTRONICA DIGITALE    (II Parte)

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

Page 67: ELETTRONICA DIGITALE    (II Parte)

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

Page 68: ELETTRONICA DIGITALE    (II Parte)

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.

Page 69: ELETTRONICA DIGITALE    (II Parte)

Elettronica Digitale (II Parte) 10-11_10

69

Unità di Controllo Cablata

Page 70: ELETTRONICA DIGITALE    (II Parte)

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

Page 71: ELETTRONICA DIGITALE    (II Parte)

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.

Page 72: ELETTRONICA DIGITALE    (II Parte)

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

Page 73: ELETTRONICA DIGITALE    (II Parte)

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

Page 74: ELETTRONICA DIGITALE    (II Parte)

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.

Page 75: ELETTRONICA DIGITALE    (II Parte)

Elettronica Digitale (II Parte) 10-11_10

75