G. Frosini Elaboratore 32 PC Slide 1

Slides:



Advertisements
Presentazioni simili
Unità centrale di processo
Advertisements

Sistemi Elettronici Programmabili: La Memoria Principale 6-1 Sistemi Elettronici Programmabili La memoria principale.
Calcolatori Elettronici Il Processore (2)
1 M. Rebaudengo, M. Sonza Reorda Politecnico di Torino Dip. di Automatica e Informatica M. Rebaudengo - M. Sonza Reorda Interfaccia verso il bus.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
Presentazione di sistemi Ambrosio Federica Anna Esposito 3C inf.
Il modello di Von Neumann
LA MEMORIA CENTRALE. La memoria nella struttura generale del calcolatore MEMORIA CONTROLLO INGRESSO E USCITA ARITMETICA E LOGICA CPU Dispositivi esterni.
Z iLOG 80 Calcolatori Elettronici Bartolomeo Bajic.
IL PROCESSORE I MICROPROCESSORI INTEL Il microprocessore è un circuito integrato dotato di una struttura circuitale in grado di effettuare un determinato.
1 Elementi DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
Sistemi Operativi : Gestione della Memoria Anno Scolastico 2012/2013 Un sistema operativo è un programma o un insieme di programmi che garantisce e permette.
Laboratorio di Architettura Degli Elaboratori1 PSPICE – Circuiti sequenziali.
IL SISTEMA OPERATIVO (seconda parte) PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI.
Elementi fondamentali dell’ Architettura di di un elaboratore elettronico.
Informatica - CDL in Scienze Politiche e delle Relazioni Internazionali A.A Architettura di un calcolatore Ing. Simona Colucci.
.  I tipi di dati non primitivi sono gli array, le struct e le union.  Gli array sono degli aggregati di variabili dello stesso tipo.  La dichiarazione.
CONTROLLO DELLA CONCORRENZA
Basi di dati - Fondamenti
© 2007 SEI-Società Editrice Internazionale, Apogeo
PRESENTAZIONE di RICCARDO
Prova d’Esame: selezione di domande
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Architettura e funzionalità
G. Frosini Memoria virtuale Slide 1
I Circuiti Sequenziali ed i Flip/Flop
BUS PCI G. Frosini Bus PCI Slide 1.
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi
G. Frosini – Multiprogrammazione e Protezione Slide 1
LE ARCHITETTURE NON VON NEUMANN
Microcontrollori e microprocessori
I microprocessori Il microprocessore è un circuito integrato costituito da silicio. Il microprocessore svolge fondamentalmente due funzioni: sovraintende.
IL CONCETTO DI ALGORITMO
Dal problema al processo risolutivo
Cammino dei Dati (Datapath)
DMA (BUS MASTERING PCI)
P. L. C. (Programmable Logic Controller)
CALCOLATORI ELETTRONICI Anno Accademico
Excel 1 - Introduzione.
Organizzazione fisica
I BUS È un insieme di fili conduttori che permette il passaggio di dati tra le varie periferiche del pc.
analizzatore di protocollo
SUBNETTING E SUPERNETTING
Architettura dei calcolatori
ALU (Arithmetic Logic Unit)
Circuiti integrati Costruzione di circuiti (logici e non) su un substrato di silicio. Non solo la parte attiva ma anche le connessioni tra le porte. Incredibile.
Introduzione L’8254 è un interval timer event/counter, progettato per risolvere i problemi del controllo del timing, comuni ad ogni microcomputer. E’ costituito.
Memoria RAM e ROM.
IL MODELLO DI VON NEUMANN
Controllo e microprogrammazione
Basi di dati - Fondamenti
Architettura degli Elaboratori
Il CLOCK Il funzionamento della CPU è regolato da un clock di sistema, questo perché la CPU è una macchina sequenziale, quindi è necessario la presenza.
Azione delle istruzioni
I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI Numeri.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Definizione di linguaggio di programmazione
Esercitazione su Instruction Level Parallelism
LOGICA DI FUNZIONAMENTO
Azione delle istruzioni
Parti interne del computer
LE PARTI INTERNE DEL COMPUTER
Memorie Laboratorio di Architetture degli Elaboratori I
Selezione e Proiezione
Progetto del processore e supporto del processore al SO (interruzioni – eccezioni) Salvatore Orlando.
Macchina a stati finiti DMAC
Il questionario: progettazione e redazione II Modulo
Relazioni tra CPU e Memoria e Dispositivi I/O
Algoritmi.
Transcript della presentazione:

G. Frosini Elaboratore 32 PC Slide 1

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

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

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

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

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 11011 (ESC: ESCape): vengono eseguite dalla ALU; istruzioni con codice operativo che inizia con la configurazione 11011 (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

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

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

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

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

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 1 1 1 0 1 D7-D0 1 1 0 1 1 D15-D8 1 1 0 0 2 D15-DO 1 0 1 1 1 D23-D16 1 0 0 1 2 D23-D8 1 0 0 0 3 D23-D0 0 1 1 1 1 D31-D24 0 0 1 1 2 D31-D16 0 0 0 1 3 D31-D8 0 0 0 0 4 D31-D0 G. Frosini Elaboratore 32 PC Slide 11

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 - - - 0 0 0 - - 0 1 0 1 - 0 1 1 1 0 0 1 1 1 1 1 G. Frosini Elaboratore 32 PC Slide 12

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, 0x00000002 EAX 0x000000000 va trasferito nei byte di indirizzo (dal meno significativo) 2 3 4 5 0x000000004 G. Frosini Elaboratore 32 PC Slide 13

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

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

Piedini del Processore G. Frosini Elaboratore 32 PC Slide 16

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

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

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

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

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

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

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

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

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

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

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

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

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

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 = 0110 0011 1110 (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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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). 00000000 00000001 FFFFFFFF FFFFFFFE D15-D8 D7-D0 G. Frosini Elaboratore 32 PC Slide 56

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

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

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

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

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

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

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

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

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

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