Sottosistemi ed Architetture Memorie
Transcript
Sottosistemi ed Architetture Memorie
Sottosistemi ed Architetture Memorie CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli “Federico II” DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli La memoria centrale ¾ Memoria centrale: array di parole o word (parola: stringa di m bit) ¾ Il processore accede agli m bit di una word mediante un’unica operazione di lettura/scrittura ¾ Ogni parola è individuata da un indirizzo (intero compreso tra 0 e N-1, rappresentato da n bit con n: N = 2n ) ¾ Memoria ad accesso casuale (RAM): il tempo di accesso non dipende dalla posizione del dato bit bit 7 6 5 4 3 2 1 0 MSB LSB 0 1 2 .. .. m=8 N-2 N-1 DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Organizzazione della memoria I processori a parola accedono alla memoria con un parallelismo pari alla lunghezza della parola (in genere 16, 32 o 64 bit) Memoria byte-addressable: il byte è la più piccola unità indirizzabile Disposizione dei byte di una word: big endian e little endian (anche detti inverso e diretto, rispettivamente) MS byte 0 4 LS byte 1 5 2 6 3 7 .... 2k-4 2k-3 2k-2 2k-1 Disposizione BIG-ENDIAN MS byte Parola 0 Parola 4 .. .. Parola 2k-4 3 7 LS byte 2 6 1 5 0 4 2k-3 2k-4 .... 2k-1 2k-2 Parola 0 Parola 4 .. .. Parola 2k-4 Disposizione LITTLE-ENDIAN DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Organizzazione della memoria MC 68K BIG ENDIAN 10 A3 E6 FF parola all'indirizzo 1000 [1000] = 10 [1001] = A3 [1002] = E6 [1003] = FF Intel x86 LITTLE ENDIAN FF E6 A3 10 parola all'indirizzo 1000 [1000] = FF [1001] = E6 [1002] = A3 [1003] = 10 DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Memoria: parole allineate e non allineate ¾ ¾ ¾ ¾ Per un processore a 16 bit, una parola che inizia ad un indirizzo pari si dice “allineata sul limite di parola” Tipicamente, un processore accede ai byte che costituiscono una parola allineata mediante una sola operazione di lettura (Read o Fetch) MC 68000: NON consente parole non allineate Intel x86: consente l’utilizzo di parole non allineate (parole che iniziano ad un indirizzo dispari) ma in tal caso sono necessari 2 accessi in memoria: Parola X Parola X+2 (X pari) byte 1 byte 0 X+1 X+3 X X+2 MSB LSB X+2 X+1 Parola non allineata sul limite di parola DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Parametri di una memoria Capacità di memoria: • numero N di registri che la costituiscono • lunghezza in bit del singolo registro ESEMPI: 1 M * 8 bit (220 registri da 8 bit) 16k * 32 bit (16*210 registri da 32 bit) Tempo di accesso (tempo per effettuare un’operazione di lettura o scrittura): - tempo per operare la selezione - tempo per l’operazione di lettura/scrittura DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Interazione processore-memoria Read Enable (RE) Address bus INDIRIZZO Memoria Write Enable (WE) Data bus DATO c bit m bit MA MB Unità di controllo del processore Processore DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Per effettuare la lettura di una parola dalla memoria la CPU: • passa in MA l’indirizzo della parola che si vuole accedere: MA←INDIRIZZO; •attiva l’accesso in lettura, ossia il dato di indirizzo MA passa in MB: abilita RE (Read Enable); •il dato scaricato in MB viene portato nel registro DATO: DATO←MB; Tempo di accesso: tempo necessario perché, fornito l’indirizzo, il dato passi nel registro MB. NOTA: Read Enable può essere realizzato in modi differenti es: RE = E • R con: E = enable; R = not(W) indica lettura se 1 - scrittura se 0 DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Tecniche di sincronizzazione processore-memoria •Tecnica asincrona: asincrona - il processore aspetta che la memoria segnali il completamento dell’operazione tramite un apposito segnale (ACK) - in questo modo il processore si adatta alla velocità della memoria • Tecnica sincrona: sincrona - una delle linee di controllo tra processore e memoria trasporta impulsi prelevati da un clock a frequenza fissa - un’operazione di lettura/scrittura si completa entro un ciclo di clock - il ciclo di clock deve essere dimensionato sulla velocità della memoria • La soluzione asincrona è più complessa ma preferibile in quanto rende indipendente il progetto della memoria da quello della CPU. DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Input/Output Il sottosistema di I/O consente al processore di interagire con le periferiche di input e di output Periferiche di input: tastiera, mouse, ecc. Periferiche di output: schermo, stampante, plotter, ecc. Periferiche di input/output: » memorie di massa » schede di rete » porte di comunicazione seriale » ecc... DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Architettura generale CPU-memoria-I/O ¾ Due modelli distinti di collegamento: » Modello a bus unico: unico su un bus unico sono collegati memoria e sistema di I/O. Modello “Memory Mapped I/O”. » Modello a bus distinti: distinti due distinti bus fisici, uno per la memoria e l’altro per l’I/O. Modello “Isolated I/O” DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Architettura CPU-memoria-I/O: Bus Unico Il bus di collegamento CPU, Memoria e I/O si suddivide in tre bus componenti: » Bus-dati: dati utilizzato per il trasferimento dei dati; » Bus-indirizzi: indirizzi utilizzato per il trasferimento dell'indirizzo (di memoria o di I/O) dal quale o verso il quale il dato è indirizzato; » Linee di controllo: controllo utilizzate per il trasferimento di informazioni per il controllo (R/W Enable, ack, ..). Dati Indirizzi Controllo I/O CPU MEM DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Architettura generale CPU-memoria-I/O DMA (Direct Memory Access): nei sistemi in cui esiste un collegamento fisico tra interfacce di I/O e memoria è possibile realizzare la tecnica DMA che consente la trasmissione di blocchi di dati direttamente da o verso la memoria. ¾ Un tale schema è realizzabile sia in sistemi a bus distinti che a bus unico. DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Il processore Istruzioni tipiche di un processore: » trasferimento dati memoria-registri » operazioni aritmetico/logiche » istruzioni per il controllo del flusso » trasferimento dati input/output DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Formato delle istruzioni Un’istruzione si compone di: • un codice operativo (OPCODE) • zero o più operandi Tipi di operandi: • operando costante (immediato esplicito o implicito) • operando memoria • operando registro (esplicito o implicito) DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Formato delle istruzioni Istruzioni a 0 operandi OPCODE Istruzioni a 1 operando OPCODE OP1 Istruzioni a 2 operandi OPCODE OP1 OP2 Istruzioni a 3 operandi OPCODE OP1 OP2 OP3 DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Formato delle istruzioni Codifica delle istruzioni a lunghezza fissa: le istruzioni hanno tutte la stessa lunghezza in bit variabile: le istruzioni possono essere di lunghezze differenti. Sono possibili diverse relazioni tra la lunghezza dell’istruzione e la lunghezza della parola del processore DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Formato delle istruzioni Codifica delle istruzioni a lunghezza variabile (calcolatore a byte) Indirizzo 0 1 parola Istruzione Istruzione 2 ... Istruzione Codifica delle istruzioni a lunghezza fissa (calcolatore a voci) parola Indirizzo 0 Istruzione 1 Istruzione 2 ... Istruzione DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Algoritmo fondamentale del processore Inizializzazione Instruction Fetch & Decoding Operand assembly Execute DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Fase fetch (struttura a voce) 1. BUS :=PC 2. MA:=BUS {MA:=PC} 3. Invia il RE alla memoria, che abilita MB:=M[MA] 4. BUS :=MB 5. D:=BUS 6. PC:=PC+(numero di byte della word) {D:=MB} Ad esempio nei processori a voce, con indirizzamento a byte e lunghezza della parola di 16 bit (accesso in memoria è con parallelismo 16), si ha PC:=PC+1, PC:=PC+2. DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Fase operand assembly move Modo indir. 03 A codice operativo modo di ind. dell'operando in memoria indirizzo dell'operando registro (uno degli 8 registri generali) indirizzo dell'operando memoria Se il modo di indirizzamento indica indirizzamento indiretto, la semantica dell’istruzione è R03 := M[M[A]] DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Fase operand assembly: esempio move Indiretto 03 A preparazione dell’operando 1. carica in MA, attraverso l’address BUS, il valore di A 2. invia il RE alla memoria, che pone MB:=M[A] 3. carica in MA, attraverso l’address BUS, il valore di MB 4. invia il RE alla memoria, che pone MB:=M[MB] DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Fase execute Ad esempio, completando l’istruzione precedente: 1. BUS :=MB 2. R[RA]:= BUS {registro destinazione:=operando origine} DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli