vuoi
o PayPal
tutte le volte che vuoi
EPROM
Non volatile
o Sola lettura
o Capacità multipli di 2 (motivi tecnologici)
o
12) Quali sono i comandi sempre presenti in memorie e registri?
In memorie e registri sono sempre presenti i comandi di:
" !
WE (write enable) Serve per abilitare o meno la scrittura sul dispositivo
" !
OE (output enable) Serve per abilitare o meno i tristate
Calcolatori Elettronici – Mapping e Decodifica ! Pagina!3!
13) In un registro Edge-Triggered con WE quali sono le condizioni per cui avvenga una
scrittura?
Per avere una scrittura devono essere verificate le seguenti due condizioni:
1. WE attivo
2. Fronte di salita del CK con dati stabili
14) Perché è importante che un processore abbia molti registri al suo interno?
Se un processore dispone di molti registri puoi permetterti di effettuare meno accessi in memoria
in quanto una volta prelevato un dato esso può essere messo in un registro.
Ricordiamo che gli accessi alle memorie sono lenti e dunque evitarli velocizza il sistema!
Intel ha pochi registri (una decina utilizzabili) – DLX e ARM ne hanno un numero maggiore
15) Qual è la differenza tra registri e cache?
Una cache è:
" Più grande di un registro in quanto può contenere anche 16K di elementi.
I registri del DLX sono a 32 bit
" Più lenta di un registro in quanto più grande e con un tempo di accesso maggiore rispetto a
quello di un registro
Una cache può inoltre essere realizzata su un silicio differente da quello del processore!
16) Come puoi sfruttare al massimo un bus a 32 bit?
Poiché tipicamente le memorie sono a parallelismo dati 8 bit, con un bus dati a 32 bit per
sfruttarlo al massimo dovrei usare 4 memorie !
Gli svantaggi che derivano da usare 4 memorie e non una sola sono però molteplici:
1. Maggiore consumo
2. Numero maggiore di pin
3. Maggiore area occupata
4. Probabilità di rottura di una memoria maggiore
17) Cosa intendiamo con memoria disallineata?
Una memoria è disallineata se inizia ad un indirizzo che NON è multiplo della sua dimensione!
8K
8K
16 K 8K
8K
Calcolatori Elettronici – Mapping e Decodifica ! Pagina!4!
Contesto per le successive domande: Dispositivi da 8 bit in sistemi con bus dati a 8 bit
18) Quali sono le condizioni che dovranno essere rispettate nel mapping di un dispositivo?
In generale l’assegnamento di una finestra di indirizzi al dispositivo nello spazio di
indirizzamento dovrà rispettare le seguenti due condizioni:
1. La dimensione della finestra di indirizzi associata a un dispositivo è una potenza di 2
2. La finestra di indirizzi è composta da indirizzi contigui
18bis) Quante posizioni nello spazio di indirizzamento occupa un dispositivo accessibile
attraverso il bus?
Un dispositivo accessibile attraverso il bus, sia esso:
Un dispositivo di memoria (es. RAM, EPROM, register file)
• Un’interfaccia (es. un registro di uscita, una porta parallela o seriale, interfaccia per leggere)
• Un agente master indirizzabile (DMA controller, controllore di HD)
• !
! = !!
occupa in generale posizioni nello spazio di indirizzamento dove:
!
n Numero di oggetti di 8 bit indirizzabili all’interno del dispositivo stesso
• (Es. numero di celle di memoria nelle RAM e nelle EPROM, numero di registri in un
register file)
!
k Numero di bit di indirizzo interni al dispositivo: fortemente variabile!
• Generalmente:
Dispositivi di I/O (Es. Interfacce) k è piccolo (nel corso compreso tra 0 e 4)
o Memorie k è grande (Es. RAM da 128KB si ha k = 17)
o
Ricordiamo che lo spazio di indirizzamento è limitato e dunque più mappo dispositivi grandi
prima finisce la finestra di indirizzi che ho a disposizione!
In generale nello spazio di indirizzamento posso mappare ciò che voglio, anche un FFD.
!
! = !!
19) Di cosa dispongono i dispositivi a 8 bit con all’interno elementi indirizzabili
separatamente? Con quali segnali si interfacciano al bus?
!
! = !2
Qualunque dispositivo da 8 bit con all’interno elementi indirizzabili separatamente ha al
suo interno un decoder di k variabili con ingresso di enable che seleziona i singoli oggetti
indirizzabili.
Di solito un dispositivo si interfaccia al bus attraverso i seguenti segnali:
" Indirizzi (A[k-1 .. 0] )! Sono le k variabili decodificate dal decoder del dispositivo e
individuano il byte (8bit) a cui si intende accedere all’interno del chip (offset del chip)
" !
Dati (D[7 .. 0]) Definiscono la porta bidirezionale che consente di scambiare dati con
l’esterno
" !
Chip Select (CS) Detto anche Chip Enable (CE), è il segnale di enable del decoder
interno al dispositivo. Il CS è funzione di A[n-1 .. k] dove n è il numero totale dei bit di
indirizzo del sistema. !
(Es.20 bit di indirizzo, RAM da 128KB con 17 bit di indirizzo CS funzione di A[19 .. 17])
Calcolatori Elettronici – Mapping e Decodifica ! Pagina!5!
Vi sono poi dei segnali di comando :
" !
Read Command (RD) Detto anche Output Enable (OE), rappresenta il comando di
lettura. Quando RD e CS sono attivi il dispositivo espone il contenuto della cella
indirizzata.
" !
Write Command (WC) E’ il comando di scrittura. Il NOR di WR* e CS* è il “latch
enable” (“clock”) della cella indirizzata.
20) Cosa significa mappato all’indirizzo A? Quando diciamo che un dispositivo è allineato?
!
! = !2
Dato un dispositivo D di bytes (elementi da 8 bit) indirizzabili si dice che D è mappato
all’indirizzo A se gli indirizzi dei byte (elementi) di D sono compresi tra A e A+(n-1), ovvero se A
è l’indirizzo più basso tra gli indirizzi associati a D.
21) Quando un dispositivo si dice allineato?
Si dice che un dispositivo D è allineato se l’indirizzo A di partenza del dispositivo è multiplo di
n, dove n è il numero di bytes (elementi da 8 bit) interni al dispositivo, cioè se:
!
(indirizzo più basso o di partenza di D) % n = 0 Condizione di allineamento!
Se D è allineato allora i k bit meno significativi di A sono uguali a zero!
Esempi:
# Un dispositivo da due byte è allineato se è mappato ad un indirizzo pari (numero pari
sempre multiplo di 2)
# Un dispositivo da 8 byte è allineato se è mappato ad un indirizzo il cui valore codificato in
binario termina con 3 zeri (multiplo di 8)
# Un dispositivo da 16 byte è allineato se è mappato ad un indirizzo il cui valore codificato in
esadecimale termina con zero (multiplo di 16byte)
# Un dispositivo da 64 KB è allineato se è mappato ad un indirizzo il cui valore codificato in
esadecimale termina con 4 zeri (multiplo di 64KB)
22) Parlare di come avviene la decodifica completa.
Dato uno spazio di indirizzamento con n bit di indirizzo, un dispositivo con k bit di indirizzo e una
! = !!!##!!
cella di indirizzo , con: Concatenato
!
!!!
# Posizione dello spazio di indirizzamento dove la cella è mappata
!
# ! Identificatore del byte all’interno del chip
Decodifichiamo tutti i bit che compongono l’indirizzo e per farlo ricorriamo alla struttura ad
albero dei decoder con albero di due livelli: !:
!
1. Livello radice Usato per decodificare Servono n-k variabili
!
2. Secondo livello Usato per decodificare i: Serve un decoder di k variabili
Calcolatori Elettronici – Mapping e Decodifica ! Pagina!6!
23) Parlare della decodifica parziale. A cosa bisogna stare attenti?
! !
!2 !bytes !2 !bytes.
Consideriamo un dispositivo di mappato in uno spazio di indirizzamento di
!
!! !finestre
Se rinunciamo a decodificare j bit il dispositivo risulta mappato in dello spazio di
!
!2 !rispetto
indirizzamento e la porzione in ci è mappato viene moltiplicata per al caso della
decodifica completa! !
!! !volte
Si dice che l’immagine del dispositivo D è replicata nello spazio di indirizzamento!
L’effetto della decodifica parziale è duplice:
Otteniamo espressioni più semplici per i CS (Chip Select) in quanto riduciamo il numero
• di ingressi della rete che lo realizza
Il dispositivo occupa una porzione dello spazio di indirizzamento di dimensione multipla
• rispetto allo stretto necessario, per cui abbiamo un uso inefficiente della risorsa “Spazio di
indirizzamento”.
Nella decodifica parziale bisogna stare molto attenti alla sovrapposizione dei dispositivi!
Osserviamo che se rinuncio a decodificare i bit più significativi dell’indirizzo il dispositivo risulterà
mappato in zone della memoria logica NON consecutive!
Se invece rinunciamo a decodificare i bit meno significativi dell’indirizzo allora il dispositivo
risulterà mappato in zone consecutive della memoria logica.
La decodifica parziale è possibile anche per indirizzi non allineati alla dimensione del modulo!
24) Come avviene l’interfacciamento al bus degli indirizzi di un dispositivo mappato in una
!!?
determinata finestra ! !bytes,
In generale l’interfacciamento al bus degli indirizzi di un dispositivo di!2 dove k sono i bit
!
!2
di indirizzo interni del dispositivo, mappato in uno spazio di indirizzamento di bytes, dove m
sono i bit totali di indirizzo del sistema si ottiene con i seguenti passi:
1. I k bit meno significativi del bus degli indirizzi BA[(k-1) .. 0] vengono ordinatamente
interconnessi agli ingressi A[(k-1) .. 0] del dispositivo, in modo da consentire al decoder
interno del dispositivo stesso di decodificare il campo “i” dell’indirizzo, ovvero l’offset!
!
(Ricordiamo infatti che ogni indirizzo può essere suddiviso nei campi e i)
2. I bit più significativi del bus degli indirizzi BA[(m-1) .. k] vengono utilizzati per formare il
!
mintermine di (m-k) variabili la cui configurazione individua la finestra in cui il
dispositivo è mappato.
Tale mintermine verrà negato e inviato all’ingresso CS* (Chip Select negato) del dispositivo
considerato.
Il mintermine può essere realizzato con una PAL (antenato degli FPGA più difficile da
programmare e meno potente) o con un FPGA !
!
Osservazione importante Tutti gli indirizzi appartenenti ad un dispositivo hanno in
comune! Mappare un dispositivo corrisponde dunque alla decodifica dei bit di indirizzo più
significativi della zona di memoria logica che deve coprire il dispositivo che NON cambiano
all’interno del dispositivo stesso !!!
Calcolatori Elettronici – Mapping e Decodifica ! Pagina!7!
24bis) Perché il mintermine non viene realizzato con decoder fisici?
Viene utilizzato un FPGA invece di decoder fisici in quanto un FPGA è programm