La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

G. Frosini Elaboratore 32 PC Slide 1

Presentazioni simili


Presentazione sul tema: "G. Frosini Elaboratore 32 PC Slide 1"— Transcript della presentazione:

1 G. Frosini Elaboratore 32 PC Slide 1

2 G. Frosini Elaboratore 32 PC Slide 2
Ipotesi di lavoro Famiglia 32/PC: serie di moduli circuitali (integrati o parti di integrati), utilizzati per costruire un calcolatore didattico a 32 bit che utilizza il processore PC. Sistemi monoprocessore: processore; circuito di pilotaggio e di controllo del bus; memoria principale; memoria cache; interfacce; controllore di interruzione. G. Frosini Elaboratore 32 PC Slide 2

3 Unità del Processore PC
schematizzato con 5 unità fondamentali. Unità: Bus Unit (BU), che effettua gli accessi agli spazi esterni (brevemente, i cicli di bus); Prefetch Unit (PU), che gestisce la coda interna delle istruzioni; Aritmetic and Logic Unit (ALU), che esegue le istruzioni generali e quelle sui numeri naturali e interi; Floating Point Unit (FPU), che esegue le istruzioni sui numeri reali, rappresentati in virgola mobile; Memory Management Unit (MMU), che trasforma gli indirizzi di memoria da virtuali a fisici. G. Frosini Elaboratore 32 PC Slide 3

4 G. Frosini Elaboratore 32 PC Slide 4
Bus Unit (BU) Effettua i cicli di bus: per prelevare le istruzioni (in fase di chiamata); per leggere dati o scrivere risultati (in fase di esecuzione). G. Frosini Elaboratore 32 PC Slide 4

5 G. Frosini Elaboratore 32 PC Slide 5
Prefetch Unit (PU) Gestisce il prelievo anticipato delle istruzioni, e invia le istruzioni per l'esecuzione o alla ALU o alla FPU. La BU, quando non viene richiesto l'utilizzo del bus per altri scopi: legge dalla memoria una porzione di codice utilizzando tutta la capacità del bus (una istruzione come caso particolare); memorizza la quantità letta in un apposito buffer interno (coda di prefetch). La PU: preleva dalla coda di prefetch le istruzioni man mano che queste devono essere eseguite; provvede a svuotare la coda ogni volta che viene caricata una nuova quantità nel contatore delle istruzioni (per effetto di una istruzione di salto o del meccanismo di interruzione). G. Frosini Elaboratore 32 PC Slide 5

6 Aritmetic and Logic Unit (ALU) Floating Point Unit (FPU)
La ALU e la FPU sono in grado di eseguire sottoinsiemi disgiunti di istruzioni: istruzioni con codice operativo che inizia con una configurazione diversa da (ESC: ESCape): vengono eseguite dalla ALU; istruzioni con codice operativo che inizia con la configurazione (ESC: ESCape): vengono eseguite dalla FPU. La PU preleva le istruzioni da un unico flusso ed le invia alla unità appropriata. G. Frosini Elaboratore 32 PC Slide 6

7 Sincronizzazione ALU-FPU
La ALU e la FPU operano in parallelo: la PU, quando invia una nuova istruzione ad una unità, continua il prelievo delle istruzioni successive. L'invio di una nuova istruzione ad una unità avviene soltanto quando l'unità ha terminato di eseguire l'istruzione precedente: sincronizzazione delle istruzioni. Una istruzione (inviata ad una unità) che prevede la scrittura del risultato in memoria viene portata a termine prima che la PU prelevi l’istruzione successiva (questa potrebbe essere una istruzione eseguita dall’altra unità, che accede allo stesso operando): sincronizzazione dei dati. G. Frosini Elaboratore 32 PC Slide 7

8 Memory Management Unit (MMU)
La MMU trasforma gli indirizzi virtuali in indirizzi fisici. Indirizzo virtuale: quello visibile al programmatore. Indirizzo fisico: quello utilizzato per indirizzare la memoria. Memoria virtuale paginata disabilitata: i due indirizzi virtuale e fisico coincidono. Memoria virtuale paginata abilitata: trasparente al programmatore comune. la trasformazione di indirizzo coinvolge tabelle di memoria. G. Frosini Elaboratore 32 PC Slide 8

9 G. Frosini Elaboratore 32 PC Slide 9
Dati ed Indirizzi Il processore PC rientra nella categoria di quelli a 32 bit: possiede 32 piedini per i dati D31-D0; può trasferire in un unico ciclo di bus dati lunghi fino a 4 byte. Il processore PC è in grado di accedere (per compiere operazioni di lettura e di scrittura) a due spazi esterni: uno spazio di memoria di 4 Gbyte; uno spazio di I/O di 64 Kbyte; possiede 32 piedini di indirizzo A31-A0, i 16 meno significativi dei quali A15-A0 vengono utilizzati per lo spazio di I/O (in questo caso i rimanenti piedini A31-A16 valgono 0). G. Frosini Elaboratore 32 PC Slide 9

10 G. Frosini Elaboratore 32 PC Slide 10
Spazi esterni (1) Il processore PC vede lo spazio esterno (memoria e I/O) organizzato a 32 bit (4 byte) (gli indirizzi sono espressi in esadecimale). Un insieme di 4 byte consecutivi, il primo dei quali ha un indirizzo multiplo di 4, si dice linea. In un unico ciclo di bus possono essere trasferite singole linee o porzioni consecutive di una stessa linea . G. Frosini Elaboratore 32 PC Slide 10

11 G. Frosini Elaboratore 32 PC Slide 11
Spazi esterni (2) Linea coinvolta nel trasferimento: individuata dai piedini A31-A2, e i byte da trasferire all'interno della linea vengono abilitati singolarmente dai piedini /BE3-/BE0: /BE3 /BE2 /BE1 /BE0 Byte Dati D7-D0 D15-D8 D15-DO D23-D16 D23-D8 D23-D0 D31-D24 D31-D16 D31-D8 D31-D0 G. Frosini Elaboratore 32 PC Slide 11

12 G. Frosini Elaboratore 32 PC Slide 12
Spazi esterni (3) Indirizzo della linea e segnali di abilitazione individuano: l'indirizzo del primo byte (quello di indirizzo più piccolo); il numero di byte da trasferire. Indirizzo del primo byte: costituito dai 30 bit A31-A2 e da 2 ulteriori bit A1-A0 che possono essere ricavati da /BE3-/BE0: /BE3 /BE2 /BE1 /BE0 A1 A0 G. Frosini Elaboratore 32 PC Slide 12

13 G. Frosini Elaboratore 32 PC Slide 13
Spazio di Memoria (1) Accesso allo spazio di memoria: avviene durante la fase di prelievo delle istruzioni e durante la fase di esecuzione delle istruzioni che hanno (almeno) un operando in memoria. Prelievo (anticipato) delle istruzioni: viene sempre letta una intera linea di codice. Esecuzione di una istruzione: gli operandi possono stare su linee differenti; il processore effettua il trasferimento con uno o più cicli di bus, specificando per ogni ciclo l'indirizzo della linea e i byte da trasferire all'interno della linea; i byte che si trovano o che vengono posti nei registri del processore devono subire opportuni spostamanti rispetto alle porzioni del bus dati coinvolte nel trasferimento. Esempio: MOVL %EAX, 0x EAX 0x va trasferito nei byte di indirizzo (dal meno significativo) 0x G. Frosini Elaboratore 32 PC Slide 13

14 G. Frosini Elaboratore 32 PC Slide 14
Spazio di Memoria (2) Casi particolari: operandi lunghi una parola allineata o una parola lunga allineata. Parola allineata : indirizzo del primo byte multiplo di 2. Parola lunga allineata: indirizzo del primo byte multiplo di 4. Parole o parole lunghe allineate: vengono trasferite in un unico ciclo. Programmatore: può liberamente specificare nelle istruzioni gli indirizzi degli operandi; se rispetta l'allineamento il tempo di esecuzione viene minimizzato. G. Frosini Elaboratore 32 PC Slide 14

15 G. Frosini Elaboratore 32 PC Slide 15
Spazio di I/O Accesso allo spazio di I/O: avviene durante la fase di esecuzione delle istruzioni di ingresso/uscita. Il processore effettua trasferimenti nello spazio di I/O con le stesse regole valide per i trasferimenti nello spazio di memoria. G. Frosini Elaboratore 32 PC Slide 15

16 Piedini del Processore
G. Frosini Elaboratore 32 PC Slide 16

17 Significato dei piedini (1)
A31-A2: Address (uscita, 3-state) supportano l'indirizzo di una linea durante i cicli di bus. /BE3-/BE0: Bus Enable (uscita, 3-state) abilitano singolarmente le 4 parti del bus dati (D31-D24, D23-D16, D15-D8, D7-D0). D31-D0: Data (bidirezionali, 3-state) supportano i dati durante i cicli di bus. /RE: Request (uscita, 3-state) specifica l'inizio di un ciclo di bus. W/R: Write/Read (uscita, 3-state) specifica se il ciclo di bus è di scrittura o di lettura. M/IO: Memory/IO (uscita, 3-state) specifica se il ciclo di bus riguarda lo spazio di memoria o lo spazio di I/O. G. Frosini Elaboratore 32 PC Slide 17

18 Significato dei piedini (2)
/READY: Bus Ready (ingresso) indica che il processore può terminare un ciclo di bus. /NMI: Non Maskable Interrupt request (ingresso) indica una richiesta di interruzione non mascherabile. /INTR: Interrupt Request (ingresso) indica una richiesta di interruzione mascherabile. /INTA: Interrupt Request (ingresso) indica l’accettazione di una richiesta di interruzione mascherabile. TP: Interrupt Request (ingresso) serve a ricevere serialmente il tipo di un’interruzione mascherabile. G. Frosini Elaboratore 32 PC Slide 18

19 Significato dei piedini (3)
/HOLD: Bus Hold Request (ingresso) indica una richiesta di utilizzo del bus. /HOLDA: Bus Hold Acknowledge (uscita) indica l'accettazione di una richiesta di utilizzo del bus. CD: Cache Disable (uscita) serve a disabilitare la memoria cache. WT: Write Through (uscita) serve a stabilire la regola di funzionamento della memoria cache. CLK: Clock (ingresso) clock del processore. RESET: Reset (ingresso) reset del processore. G. Frosini Elaboratore 32 PC Slide 19

20 G. Frosini Elaboratore 32 PC Slide 20
Cicli di bus L’inizio di un ciclo di bus viene segnalato dal piedino /RE. I piedini W/R e M/IO specificano il tipo di ciclo. M/IO W/R Ciclo 1 1 Memory operand Write 1 0 Memory operand Read 0 1 I/O Write 0 0 I/O Read Un ciclo di bus dura un numero prefissato di tempi di clock. Un ciclo viene allungato di un ulteriore tempo di clock se alla fine del ciclo il segnale /READY risulta inattivo. G. Frosini Elaboratore 32 PC Slide 20

21 Cicli di lettura/scrittura
Nel processore PC, la durata di un ciclo è di 4 tempi di clock; L’esame del segnale /READY avviene a a partire dal terzo tempo di clock. G. Frosini Elaboratore 32 PC Slide 21

22 G. Frosini Elaboratore 32 PC Slide 22
Circuito di piltaggio Sul bus indirizzi (A31-A2 e /BE3-/BE0) viene comunemente montato un registro (latch): il latch memorizza un nuovo indirizzo ogni volta che inizia un nuovo ciclo di bus. Sul bus dati (D31-D0) viene comunemente montato un buffer bidirezionale (transceiver): il transceiver lascia passare i dati nel senso e nel periodo di tempo richiesti dal tipo di ciclo di bus. Funzione del latch e del transceiver: rigenerare i segnali elettrici, soprattutto nel caso in cui al bus debbano essere connessi numerosi componenti.; tenere le uscite in alta impedenza quando non viene effettuato nessun ciclo di bus Latch e Transceiver: circuito di pilotaggio. G. Frosini Elaboratore 32 PC Slide 22

23 G. Frosini Elaboratore 32 PC Slide 23
Schema del Latch Memorizza i dati di ingresso (e li trasferisce in uscita) quando arriva un impulso sul piedino STB (Strobe); collegato al piedino /RE del processore. Pone l'uscita in alta impedenza quando il piedino /OE (Output Enable) diviene inattivo.; segnale /EN appositamente generato. G. Frosini Elaboratore 32 PC Slide 23

24 Schema del Transceiver T32
Lascia passare i dati in una delle due direzioni a seconda del valore del piedino T/R (Transmit/Receive); collegato al piedino W/R del processore Pone l'uscita in alta impedenza quando il piedino /OE (Output Enable) diviene inattivo; segnale /EN appositamente generato. Transceiver T32 D31-D0 /OE T/R W/R /EN G. Frosini Elaboratore 32 PC Slide 24

25 G. Frosini Elaboratore 32 PC Slide 25
Circuito di controllo Composto da circuito di abilitazione e circuito di comando. Circuito di abilitazione: produce il segnale /EN che abilita il latch e il transceiver. Circuito di comando: produce in forma temporizzata i segnali di lettura/scrittura nello spazio di memoria e nello spazio di I/O. G. Frosini Elaboratore 32 PC Slide 25

26 Segnali prodotti dai circuiti di pilotaggio e di controllo
A31-A2 bus /MRD bus /EN D31-D0 bus /MWR bus /BE3-/BE0 bus /RE W/R M/IO G. Frosini Elaboratore 32 PC Slide 26

27 Semplice controllore di bus locale
G. Frosini Elaboratore 32 PC Slide 27

28 Collegamento di banchi di memoria al bus locale (1)
Banco di memoria: montato nello spazio di memoria; accessibile a uno o più byte consecutivi di una stessa linea; esempio: banco di memoria di 1024 Kbyte (1 Mbyte), suddiviso in 4 sottobanchi da 256 Kbyte ciascuno, accessibili solo al byte. Maschera M: riconosce una delle possibili combinazioni dei 12 bit più significativi dell’indirizzo (A31-A20); determina in quale delle 2**12 porzioni dello spazio (ciascuna di 256 Klinee) è effettivamente posizionato il banco di memoria. Indirizzo della linea all’interno del banco: determinato dai 18 bit meno significativi dell’indirizzo di linea, ossia da (A19-A2). Byte della linea: selezionati dai bit /BE3-/BE0, che in OR con l’uscita della maschera (uscita attiva bassa) costituiscono l’abilitazione dei vari sottobanchi. Logica aggiuntiva richiesta: maschera e 4 porte OR. G. Frosini Elaboratore 32 PC Slide 28

29 Collegamento di banchi di memoria al bus locale (2)
1024Kx8 D15-D8 D7-D0 256Kx8 D32 bus A31-A2 bus /BE3-/BE0 bus /MRD bus /MWR bus D23-D16 D31-D24 /WR /RD /S M A17-A0 OR /BE0 /BE1 /BE2 /BE3 A19-A2 A31-A20 G. Frosini Elaboratore 32 PC Slide 29

30 Collegamento di interfacce al bus locale (1)
possono essere montate nello spazio di memoria o nello spazio di I/O; vengono tipicamente collegate a tutto il bus dati (registri interni di 32 bit) oppure ai 16 bit o agli 8 meno significativi del bus dati stesso (registri interni di 16 bit o di 8 bit, rispettivamente). Registri di un’interfaccia: stanno su parti corrispondenti di linee consecutive, a partire da una linea base; se i registri sono di 32 bit, ciascuno di essi occupa un’intera linea, mentre se sono di un numero inferiore di bit (16 oppure 8), ciascuno di essi occupa i 16 bit o gli 8 bit meno significativi di una linea. Esempio: interfaccia con 4 registri interni di 8 bit: collegata alla parte meno significativa del bus dati bit riconosciuti dalla maschera: A15-A4 (12 bit più significativi dell’indirizzo di linea); bit che selezionano lo specifico registro A3-A2 (2 bit meno significativi dell’indirizzo di linea); se la maschera produce 0 in uscita quando A15-A4 = (indirizzo base = 0x63E0), gli indirizzi dei 4 registri sono, rispettivamente, 0x63E0, 0x63E4, 0x63E8 e 0x63EC (A3-A2 valgono 00, 01, 10 e 11, rispettivamente. gli indirizzi dei registri interni risultano quindi multipli di 4. G. Frosini Elaboratore 32 PC Slide 30

31 Collegamento di interfacce al bus locale (2)
D32 bus A31-A2 bus /BE3-/BE0 bus /IORD bus /IOWR bus D7-D0 /WR /RD A3-A2 A15-A4 A1-A0 /S M G. Frosini Elaboratore 32 PC Slide 31

32 G. Frosini Elaboratore 32 PC Slide 32
Memorie dinamiche (1) Memorie statiche (SRAM): utilizzano come cella di memorizzazione un elemento attivo ( flip-flop). Memorie dinamiche (DRAM): utilizzano come cella di memorizzazione un elemento passivo, un condensatore carico o scarico; hanno consumo ridotto e costo minore. Condensatore: tende a scaricarsi, a causa delle impurità dello strato dielettrico; occorre effettuare periodicamente una operazione di rinfresco: lettura dalla cella e una riscrittura del valore letto, con ripristino della carica originaria. Lettura di una cella: il condensatore si scarica leggermente; si rende subito necessaria una riscrittura della quantità letta, per effettuare una ricarica del condensatore. G. Frosini Elaboratore 32 PC Slide 32

33 G. Frosini Elaboratore 32 PC Slide 33
Memorie dinamiche (2) Chip di memoria dinamica: realizza un singolo piano di celle (è del tipo Nx1). Celle di un piano: organizzate a matrice (N = MxM); l'indirizzo è suddiviso in due componenti, un indirizzo di riga e un indirizzo di colonna; le due componenti vengono fornite in sequenza, con gli stessi collegamenti (in modo multiplexato); due segnali distinti, /RAS (Row Address Strobe) e /CAS (Column Address Strobe). Scomposizione dell'indirizzo: riduce il numero di piedini necessari. Dati: bit in ingresso (DI: Data In) e bit in uscita (DO: Data Out) sono in genere supportati da due collegamenti distinti. G. Frosini Elaboratore 32 PC Slide 33

34 G. Frosini Elaboratore 32 PC Slide 34
Memorie dinamiche (3) Memoria dinamica 1Mx1 G. Frosini Elaboratore 32 PC Slide 34

35 Operazioni con le memorie dinamiche (1)
Lettura (W/R = 0): viene specificato l'indirizzo di riga e viene attivato il segnale /RAS (tutta la riga viene ad essere selezionata); viene specificato l'indirizzo di colonna e viene attivato il segnale /CAS; piedino DO: abitualmente in alta impedenza; quando /CAS diviene attivo, assume il valore dato dal contenuto della cella indirizzata. riscrittura nella intera riga selezionata. Scrittura (W/R = 1): nella cella indirizzata viene scritto il valore presente sul piedino DI, mentre nelle altre celle della riga selezionata viene riscritto il vecchio valore. G. Frosini Elaboratore 32 PC Slide 35

36 Operazioni con le memorie dinamiche (2)
Segnale W/R va ad 1: dopo che si è attivato il segnale /RAS (consentendo la lettura di tutta la riga); prima che si attivi il segnale /CAS (il piedino DO rimane in alta impedenza). Piedini DI e DO: possono essere collegati fra loro ed anche al bus dati. Rinfresco: operazione di lettura che interessa tutta una riga della memoria. G. Frosini Elaboratore 32 PC Slide 36

37 Controllore della memoria dinamica
Controllore di memoria dinamica: si interfaccia con il bus comportandosi come una memoria statica; gestisce la memoria dinamica effettuando su questa: le operazioni di lettura e di scrittura comandate dal processore; l'operazione di rinfresco. Operazione di rinfresco: il controllore, con una certa frequenza (tipicamente ogni 10 ms) deve effettuare il rinfresco di tutte le righe (per una memoria di 1 MByte le righe sono 1024); il rinfresco delle varie righe avviene singolarmente (fra un rinfresco e l’altro possono aversi letture e scritture); contatore: genera in sequenza tutti gli indirizzi di riga. Nota: durante una operazione di rinfresco, se il processore comanda una operazione di lettura o di scrittura, il controllore non attiva il segnale /READY (allungamento del ciclo comandato dal processore). G. Frosini Elaboratore 32 PC Slide 37

38 G. Frosini Elaboratore 32 PC Slide 38
Principio di località Programmi eseguiti da un calcolatore: principio della località, che si esplica sia nello spazio che nel tempo. Località sequenziale: quando viene riferita una locazione di memoria (o un gruppo di locazioni consecutive), è probabile che subito dopo venga riferita la locazione di memoria sequenzialmente successiva (o un gruppo di locazioni sequenzialmente successive). Località spaziale: quando viene riferita una locazione di memoria, è probabile che le locazioni vicine vengano anch'esse riferite (in questo tipo di località può essere compresa la località sequenziale). Località temporale: quando viene riferita una locazione di memoria, è probabile che nel giro di poco tempo venga riferita la stessa locazione. G. Frosini Elaboratore 32 PC Slide 38

39 G. Frosini Elaboratore 32 PC Slide 39
Livelli di memoria (1) Principio di località: gerarchia di memorie con almeno due livelli. Livello inferiore (memoria centrale vera e propria) e livello superiore (livello della memoria cache): le informazioni presenti nel livello superiore sono presenti anche nel livello inferiore; il livello superiore, più veloce e più costoso, quindi più piccolo, contiene le informazioni che hanno maggiore probabilità di essere riferite. G. Frosini Elaboratore 32 PC Slide 39

40 G. Frosini Elaboratore 32 PC Slide 40
Livelli di memoria (2) Livello della memoria centrale e livello della memoria cache: le locazioni di memoria sono raggruppate in blocchi (insiemi allineati di locazioni consecutive), di qualche decina di byte (tipicamente, di 32); il trasferimento di informazione dal livello inferiore a quello superiore avviene sempre a livello di blocco. Possono essere considerati livelli ulteriori: i registri del processore; la coda interna di prefetch. G. Frosini Elaboratore 32 PC Slide 40

41 Memoria Cache ad accesso diretto (1)
V Etichetta Blocco COMP Indice Spiazzamento Indirizzo Cache AND Successo/Fallimento Gruppo Indirizzo generato dal processore: indice (I): seleziona un gruppo ( un bit V, un campo Etichetta Ev e un campo Blocco Bv); spiazzamento (S): individua una locazione del campo Bv all’interno del gruppo; etichetta (E): viene confrontata con il campo Ev del gruppo. G. Frosini Elaboratore 32 PC Slide 41

42 Memoria Cache ad accesso diretto (2)
Esempio: memoria cache di 256 Kbyte, organizzata a blocchi di 32 byte (8 righe di memoria). Numero dei gruppi della memoria cache: (256 Kbyte)/(32 byte) = (2**18)/(2**5) = 2**13 Spiazzamento: costituito dai dai tre bit A4-A2 per quanto riguarda la riga e dai quattro bit /BE3-/BE0 per le locazioni all'interno della riga); Indice: costituito dai tredici bit A17-A5; Etichetta: costituita dai quattordici bit A31-A18. G. Frosini Elaboratore 32 PC Slide 42

43 Operazione di lettura dalla Memoria Cache
accesso in lettura al gruppo della memoria cache individuato dalla componente indice dell'indirizzo; esame del bit di validità V; confronto di uguaglianza tra il campo Etichetta (E) del gruppo (Ev) e la componente etichetta dell'indirizzo. Successo (hit): l'entità informativa riferita viene fornita al processore. Fallimento (miss): il blocco coinvolto viene trasferito dalla memoria centrale nella memoria cache (rimpiazzamento), e l'entità informativa riferita viene fornita anche al processore. G. Frosini Elaboratore 32 PC Slide 43

44 Operazione di scrittura nella Memoria Cache
accesso in lettura al gruppo della memoria cache (utilizzando le tre componenti dell’indirizzo). Successo: l'entità informativa da scrivere viene memorizzata sia all’interno del gruppo della memoria cache, sia nella memoria centrale. Fallimento: l'entità informativa da scrivere viene memorizzata nella memoria centrale, e tutto il blocco viene trasferito dalla memoria centrale nella memoria cache. G. Frosini Elaboratore 32 PC Slide 44

45 Write through e Write back
Precedente regola di scrittura, detta write through: non comporta alcun vantaggio rispetto all’assenza di memoria cache, dovendo in ogni caso accedere alla memoria centrale. Vantaggi anche nel caso di scrittura: occorre utilizzare la regola write back: operazione di scrittura: nel caso di successo, l’entità informativa da scrivere viene memorizzata solo all’interno del blocco della memoria cache; operazioni di lettura o di scrittura: nel caso di fallimento per non coincidenza tra Ev ed E, il blocco della memoria cache che deve essere rimpiazzato viene preliminarmente trasferito nella memoria centrale, con conseguente aggiornamento di quest’ultima. Memoria centrale non aggiornata continuamente: più entità possono accedere alla memoria centrale (Processore, Ponte Host- PCI); occorre gestire opportunamente i dati contenuti in memoria centrale. G. Frosini Elaboratore 32 PC Slide 45

46 Proprietà della Memoria Cache
Realizzazione di una memoria cache: due banchi di memoria (operazioni di lettura/scrittura diverse sui due banchi): un banco per i bit di validità e le etichette (tag); un banco per i blocchi (data). Esempio di operazioni diverse: lettura dal primo banco, e in caso di successo, lettura o scrittura nel secondo banco in dipendenza dal tipo di operazione comandata dal processore. Blocco all’interno della cache: posizione unica, in dipendenza dal valore della componente indice dell'indirizzo; non si possono avere due blocchi con lo stesso indice e con etichette diverse. Caso particolare: la memoria cache può contenere una pagina di memoria fisica (insieme consecutivo di locazioni di memoria con la stessa etichetta) di dimensioni pari alle capacità della memoria cache stessa. G. Frosini Elaboratore 32 PC Slide 46

47 Controllore di Memoria Cache (1)
A31-A2 D31-D0 /BE3-/BE0 M/IO W/R /READY WT CLK /RE /HOLD /HOLDA /S Memoria Cache /DIS Risponde alle operazioni di lettura/scrittura comandate dal processore; Effettua le operazioni necessarie sulla memoria cache e sulla memoria centrale. G. Frosini Elaboratore 32 PC Slide 47

48 Controllore di Memoria Cache (2)
Piedino WT: forza la modalità di funzionamento write through della memoria cache (proviene dal processore). Piedini omonimi di ingresso e di uscita: D31-D0, A31-A2, /BE3-/BE0, /RE, W/R, M/IO, /READY; durante un ciclo di I/O, oppure quando diviene attivo il piedino di disabilitazione /DIS, vengono messi in comunicazione diretta (viene esclusa la memoria cache). Memoria cache attiva (non disabilitata): il controllore utilizza il segnale di uscita /READY per comunicare al processore che sta compiendo altre operazioni (sulla memoria cache o sulla memoria principale). Coppia di piedini /HOLD e /HOLDA: utilizzati nel meccanismo di accesso diretto alla memoria principale. G. Frosini Elaboratore 32 PC Slide 48

49 Invalidazione della memoria Cache
Invalidazione (flush): valore 0 nel bit V. Operazione effettuata dal controllore, abitualmente con comandi software: due registri interni, destinati a contenere l'indice iniziale e l'indice finale dei gruppi da invalidare; un terzo registro interno, destinato a ricevere il comando di flush. Piedino /S: abilita il controllore alla scrittura in questi registri. G. Frosini Elaboratore 32 PC Slide 49

50 Montaggio del controllore Cache (1)
montato subito a valle del processore, prima del circuito di pilotaggio del bus. Segnale di abilitazione (/S): prodotto e da una maschera (uscita attiva bassa), che determina l’indirizzo base, e dal segnale M/IO, che determina lo spazio (comunemente spazio di memoria). I comandi di lettura/ scrittura: ricavati da /RE e da W/R (piedini di ingresso). Segnale di disabilitazione della memoria cache (/DIS): attivato o da una maschera (uscita attiva bassa) o dal segnale CD (Cache Disable) proveniente dal processore. Casi tipici di disabilitazione: indirizzamento della memoria ROM che contiene il programma di bootstrap; controllo del piedino CD da parte della MMU. G. Frosini Elaboratore 32 PC Slide 50

51 Montaggio del controllore Cache (2)
D31-D0 A31-A2 /BE3-/BE0 W/R M/IO /RE /S CLK /READY Clock Processore Controllore Cache CD AND Maschere /DIS OR /HOLD /HOLDA Memoria Cache WT G. Frosini Elaboratore 32 PC Slide 51

52 Memoria Cache associativa a insiemi
Memoria cache associativa a insiemi (set-associative) con cardinalità n (n-way): n parti uguali, ciascuna avente la struttura già esaminata (gruppo); una ulteriore parte relativa al meccanismo di rimpiazzamento (campo R). Indirizzo (generato dal processore): tre componenti (etichetta E, indice I e spiazzamento S); la componente indice rappresenta l'indirizzo di un insieme (set) contenente n gruppi. Per ogni gruppo dell’insieme: esame del bit di validità V; confronto fra E ed Ev di quel gruppo (sono richiesti n comparatori). Successo per un gruppo: la componente spiazzamento dell'indirizzo individua una locazione all'interno del blocco di quel gruppo; Fallimento (globale): fallimento per ogni singolo gruppo. G. Frosini Elaboratore 32 PC Slide 52

53 Memoria Cache associativa a insiemi (2-way)
G. Frosini Elaboratore 32 PC Slide 53

54 G. Frosini Elaboratore 32 PC Slide 54
Campo R (1) Blocco dati di memoria: può essere memorizzato in uno degli n gruppi di un insieme della memoria cache (l’insieme dipende dall’indice). Campo R di un insieme: individua il gruppo da utilizzare per una nuova memorizzazione (rimpiazzando il gruppo esistente se il bit V di quel gruppo vale 1). Regola di rimpiazzamento LRU (Least-Recently Used): rimpiazzamento del gruppo non riferito da più tempo. Regola di rimpiazzamento LFU (Least-Frequently Used): rimpiazzamento del gruppo riferito meno frequentemente. G. Frosini Elaboratore 32 PC Slide 54

55 G. Frosini Elaboratore 32 PC Slide 55
Campo R (2) Manipolazioni del campo R: informazione d’ordine relativa a tutti i gruppi di un insieme; aggiornamento: quando avviene un rimpiazzamento; quando avviene con successo una operazione su un insieme della memoria cache, in base al valore precedente e al numero d'ordine del gruppo dell'insieme coinvolto nell'operazione. Memoria cache con cardinalità due: campo R costituito da un solo bit; aggiornamento: il bit assume il valore relativo al gruppo che non è coinvolto. G. Frosini Elaboratore 32 PC Slide 55

56 G. Frosini Elaboratore 32 PC Slide 56
Spazio esterno a 16 bit (1) Processore PC: vede lo spazio esterno organizzato a 32 bit. Trasferimento di byte o di parole allineate: lo spazio di I/O (o una sua porzione) può anche essere organizzato a 16 bit. Accanto al bus dati a 32 bit, può essere previsto un bus dati a 16 bit (gli indirizzi sono espressi in esadecimale). FFFFFFFF FFFFFFFE D15-D8 D7-D0 G. Frosini Elaboratore 32 PC Slide 56

57 G. Frosini Elaboratore 32 PC Slide 57
Spazio esterno a 16 bit (2) Bus dati a 32 bit: una linea risulta suddivisa in due semilinee: la semilinea bassa (D15-D0) e la semilinea alta (D31-D16), individuate dai valori del bit A1. Bus dati a 16 bit: una linea è un insieme di 2 byte consecutivi il primo dei quali ha un indirizzo multiplo di 2. In base al valore di A1 deve essere effettuata la commutazione fra la linea del bus dati a 16 bit e una delle due semilinee del bus dati a 32 bit. G. Frosini Elaboratore 32 PC Slide 57

58 G. Frosini Elaboratore 32 PC Slide 58
Spazio esterno a 16 bit (3) T /OE D16 Bus D15-D0 D31-D16 W/R A1 OR Transceiver T16 /E16 Segnale /E16: prodotto dal circuito di abilitazione. G. Frosini Elaboratore 32 PC Slide 58

59 G. Frosini Elaboratore 32 PC Slide 59
Spazio di I/O a 16 bit (4) I byte del bus dati a 16 bit vengono abilitati da due segnali: /BHE (Bus High Enable); /BLE (Bus Low Enable, coincidente con A0). I segnali /BHE e /BLE possono essere ricavati da /BE3-/BE0. /BE3 /BE2 /BE1 /BE0 /BHE /BLE = A0 - 1 G. Frosini Elaboratore 32 PC Slide 59

60 G. Frosini Elaboratore 32 PC Slide 60
Spazio di I/O a 8 bit (1) Trasferimento di byte: lo spazio di I/O (o una sua porzione) può anche essere organizzato a 8 bit. Bus dati a 32 bit: una linea risulta suddivisa in quattro sottolinee (valori di A1-A0): sottolinea bassa (D7-D0), sottolinea medio-bassa (D15-D8), sottolinea medio-alta (D23-D16), sottolinea alta (D31-D24). Bus dati ad 8 bit: linea di un byte (D7-D0); in base al valore di A1-A0, deve essere fatta la comutazione fra linea del bus dati ad 8 bit e sottolinea del bus dati a 32 bit. G. Frosini Elaboratore 32 PC Slide 60

61 G. Frosini Elaboratore 32 PC Slide 61
Spazio di I/O a 8 bit (2) T /OE D23-D16 D31-D24 A0 Transceiver T8 D8 Bus D7-D0 D15-D8 W/R A1 11 10 01 00 OR /E8 Decodificatore Il segnale /E8 viene prodotto dal circuito di abilitazione. Il decodificatore produce uscite attive basse. G. Frosini Elaboratore 32 PC Slide 61

62 Bus per gli indirizzi, per i comandi, per i dati
Calcolatore in grado di effettuare trasferimenti: con banchi di memoria organizzati a 32 bit; con interfacce organizzate a 32 bit, a 16 bit (per il trasferimento di singole parole allineate o di singoli byte) e a 8 bit (per il trasferimento di singoli byte). Bus indirizzi: può essere unico, con una rete R che produce i bit di indirizzo A1-A0 e il bit /BHE. Bus per i comandi: può essere unico. Bus dati: possono essere previsti tre bus dati distinti, oppure può essere previsto un bus dati unico. G. Frosini Elaboratore 32 PC Slide 62

63 G. Frosini Elaboratore 32 PC Slide 63
Bus dati distinti Circuiti esaminati (spazio di I/O a 16 bit e spazio di I/O a 8 bit): costituiscono ponti (in modo non completo): Bus dati a 16 bit e a 8 bit: divengono attivi solo per lo spazio di IO. Segnali di abilitazione /E16 ed /E8: il circuito di abilitazione riceve anche l’informazione di spazio (piedino M/IO) e genera, oltre che /EN, anche /E16 ed /E8. D31-D0 (Processore) T32 Bus dati a 32 bit Ponte Ponte (2xT16) (4xT8) Bus dati a 16 bit Bus dati a 8 bit G. Frosini Elaboratore 32 PC Slide 63

64 G. Frosini Elaboratore 32 PC Slide 64
Bus dati unico Circuito di abilitazione : riceve (oltre all’informazione di spazio) anche l’informazione di indirizzo (piedini A31-A0); genera i segnali /EN, /E16 ed /E8 in modo mutuamente esclusivo. Spazio di I/O: risulta partizionato in tre zone. Piedini D31-D0 del processore; connessi con i circuiti relativi ai diversi bus dati (T32, 2xT16, 4xT8); i bus dati a 16 bit e a 8 bit sono costituiti, rispettivamente, dai 16 collegamenti meno significativi e dagli 8 collegamenti meno significativi del bus dati a 32 bit. Bus dati a 32 bit Bus dati a 16 bit (16 collegamenti meno significativi) Bus dati a 8 bit (8 collegamenti meno significativi) D31-D0 (Processore) G. Frosini Elaboratore 32 PC Slide 64

65 Montaggio delle interfacce (1)
Interfacce semplici: registri da 8 bit; 8 piedini per i dati. Possono venir montate su qualunque bus dati: i loro piedini dati vengono comunque collegati alla parte meno significativa del bus dati stesso. gli indirizzi dei registri dell’interfaccia, così come sono visibili al programmatore, vengono determinati a partire dai corrispondenti indirizzi interni dei registri stessi con la regola: indirizzo_programmatore = indirizzo_base + b * indirizzo_interno indirizzo base: dato dalla configurazione dei bit riconosciuta dalla maschera con i rimanenti bit di indirizzo pensati uguali a zero; b è il numero di byte del bus dati utilizzato. Bus dati unico (spazio di I/O): l’indirizzo base deve far parte della porzione dello spazio di I/O in cui è attivo il bus dati delle dimensioni volute. G. Frosini Elaboratore 32 PC Slide 65

66 Montaggio delle interfacce sul bus a 8 bit
Compatibilità con gli elaboratori delle generazioni precedenti: il montaggio delle interfacce con registri di un byte è usualmente fatto sul bus dati a 8 bit (b =1), in modo che i registri interni abbiano indirizzi consecutivi. G. Frosini Elaboratore 32 PC Slide 66


Scaricare ppt "G. Frosini Elaboratore 32 PC Slide 1"

Presentazioni simili


Annunci Google