Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
IOWR.
35 Lezione
Discutere come un banco di memoria da 1Mx8 (interfaccia) può essere montato nello
spazio di memoria (di I/O). Disegnare lo schema corretto di montaggio.
Una interfaccia appare al
programmatore come una piccola
memoria costituita da registri di un
byte. Per indirizzare lo spazio di I/O si
utilizzerà l’indirizzo interno del
registro cui si somma l’indirizzo base
riconosciuto dalla maschera con i 14
bit più significativi.
Discutere come una interfaccia con tre registri da un byte può essere montato nello spazio di I/
O. Disegnare lo schema corretto di montaggio.
36 Lezione
Disegnare lo schema dei piedini del processore PC e discuterlo.
Simbolo Tipo Nome e Funzione
Address (3-state) – supportano l’indirizzo di una linea durante il ciclo
A31-A2 Uscita di bus
Bus enable (3-state) – abilita singolarmente le locazioni delle 4 parti
/BE3-/BE0 Uscita del bus dati (D31-D24, D23-D16, D15-D8, D7-D0)
D31-D0 Bidirezionali Data (3-state) – supportano i dati durante i cicli bus
/RE Uscita Request (3-state) – specifica che un ciclo di bus ha inizio
W/R Uscita Write/Read (3-state) – specifica se il ciclo di bus è in scrittura o lettura
Memory/Input-Output (3-state) – specifica se il ciclo è verso la memoria
M/IO Uscita o verso lo spazio di I/O
READY – indica al processore che il ciclo di bus è concluso e può
/READY Ingresso essere terminato
Non Maskable Interrupt request – indica al processore una richiesta
/NMI Ingresso di interrupt non mascherabile
Interrupt request – indica al processore la presenza di una richiesta
/INTR Ingresso di interrupt mascherabile
Interrupt Acknowledge – indica l’accettazione di una richiesta di
/INTA Uscita interrupt mascherabile
TP Ingresso Interrupt type – riceve serialmente il tipo di un’interruzione mascherabile
/HOLD Ingresso Hold – è la richiesta di utilizzo del bus da parte di un blocco
/HOLDA Uscita Hold Acknowledge – è l’accettazione di una richiesta di utilizzo del bus
CD Uscita Cache disable – serve a disabilitare la memoria cache
Write Through – forza questa regola di funzionamento sulla
WT Uscita memoria cache
CLK Ingresso Clock – clock del processore
Reset Ingresso Reset del processore
Perché il processore PC ha solo 30 piedini di indirizzo (A31-A2) pur indirizzando
uno spazio di memoria da 4GB?
Oltre ai 30 (A31-A2) piedini del bus di indirizzo, sono utilizzati i 4 (/BE3-/BE0) piedini di bus-enable; i
primi indirizzano alla riga, i secondi selezionano la locazione o le locazioni da prendere in considerazione.
37 Lezione
Disegnare come il controllore del bus locale si collega al processore.
Il latch per il pilotaggio degli indirizzi, il
transceiver per il pilotaggio dei dati, il circuito
di abilitazione che produce l’abilitazione per i
circuiti precedenti ed il circuito di comando che
invia i comandi veri e propri costituiscono il
controllore del bus. A sinistra abbiamo i
collegamenti con i piedini del processore ed a
destra il bus vero e proprio.
Come viene vista una interfaccia nello spazio di I/O organizzato a linee a 32 bit. C'è differenza
nel montaggio e nella visione logica al variare della dimensione dei registri interni?
Le interfacce sono viste come delle piccole memorie con registri. I registri possono essere a 8, 16 o 32 bit. In
base alla dimensione dei registri, una interfaccia è collegata a tutto il bus (registro 32 bit), ai 16 bit (registro a
16 bit) o agli 8 bit (registro a 8 bit) meno significativi. I registri delle interfacce stanno su parti corrispondenti a
linee consecutive.
Quanto detto significa che una interfaccia con registro a 32 bit occupa una intera linea, un registro a 16 bit
occupa le prime due locazioni meno significative di una linea e un registro a 8 bit la locazione meno significativa
di una linea. Gli indirizzi di tali registri sono sempre multipli di 4.
38. Lezione
Disegnare lo schema dello specifico circuito di pilotaggio di un bus dati a 16 bit.
A sinistra abbiamo i piedini del processore che immagina di avere uno spazio
esterno a 32 bit. In questo spazio ogni linea è vista come due sotto linea
individuate dal valore del bit A1: per A1=1 si individua la semilinea alta, per A1=0 si
individua la semilinea bassa. Le porte OR abilitano in modo mutuamente esclusivo
uno dei due transceiver in base al bit A1 ed al segnale /E16 (abilitazione del bus a
16 bit).
Se si abilita il transceiver superiore il contenuto del bus a 16 bit viene trasferito al
processore tramite la semilinea alta (A1=1), altrimenti il contenuto trasferito
tramite la semilinea bassa (A1=0).
Per selezionare il singolo byte dal bus a 16 bit si utilizzano i segnali /BHE (Bus High
Enable) e /BLE (Bus Low Enable) generati dalla tabella:
/BE3 /BE2 /BE1 /BE0 /BHE /BLE = A0
- - 1 0 1 0
- - 0 1 0 1 Notare che /BLE coincide con A0
- - 0 0 0 0
1 0 1 1 1 0
0 1 1 1 0 1
0 0 1 1 0 0
Come si può progettare il bus locale di un calcolatore che debba gestire uno spazio di memoria a 32 bit e
uno spazio di I/O a 32, 16 e 8 bit?
Il bus indirizzi può essere unico, deve comprendere una rete in grado di produrre i valori A1-A0 e di /BHE partendo da /BE3-/BE0
secondo le tabelle:
/BE3 /BE2 /BE1 /BE0 A1 A0 /BE3 /BE2 /BE1 /BE0 /BHE /BLE = A0
- - 1 0 1 0 - - 1 0 1 0
- - 0 1 0 1 - - 0 1 0 1
- - 0 0 0 0 - - 0 0 0 0
1 0 1 1 1 0 1 0 1 1 1 0
0 1 1 1 0 1 0 1 1 1 0 1
0 0 1 1 0 0 0 0 1 1 0 0
Anche il bus comandi può funzionare in maniera univoca.
Per quanto riguarda il bus dati, potrebbe essere:
• Unico: in questo caso i piedini D31-D0 del processore sono connessi ai tre circuiti di pilotaggio, è necessario un circuito che
generi in maniera mutuamente esclusiva i segnali /EN, /E16 o /E8 in modo da attivare correttamente tutto il bus, i 16 bit
meno significativi oppure gli 8 bit meno significativi
• Formato da 3 bus fisicamente distinti: con i bus a 16 e 8 bit esistano soltanto per lo spazio di I/O ed ogni bus è pilotato dal
suo specifico circuito. Nell’immagine a fianco il pilotaggio del bus dati unico
con il circuito R che produce i segnali A1, A0 e BHE da /
BE3-/BE0 per selezionare correttamente la parte di bus
dati da utilizzare.
39. Lezione
Cosa si intende per programmazione mista? Discutere brevemente il paradigma
di programmazione ad essa associato.
I programmi scritti in linguaggi più ad alto livello, non possono accedere direttamente allo spazio di I/O.
per questo motivo si scrivono sottoprogrammi in assembly che possono essere richiamate da funzioni
scritte in linguaggi evoluti.
Mostrare il codice Assembly del sottoprogramma di lettura (di scrittura) di un byte da
una interfaccia e come esso potrebbe essere richiamato da un main() scritto in C/C++.
40. Lezione
Differenza fra modalità testo e modalità grafica nella gestione dello schermo.
Lo schermo appare suddiviso in righe e colonne, quelle di indice zero sono in alto a sinistra. Il punto di
incrocio è la posizione sullo schermo. In modalità testo ogni posizione è un carattere, in modalità grafica
ad ogni posizione si associa un pixel. Il numero di righe e colonne dipende dalla modalità di
funzionamento.
Discutere a parole o con codice o pseudo codice come un programmatore può scrivere una
funzione che preleva dati dall'interfaccia collegata alla tastiera
41. Lezione
Descrivere la tabella delle e la struttura dei gate (o descrittori).
interruzioni La tabella delle interruzioni è una porzione di memoria che contiene 256
entrate che prendono il nome di descrittore o gate. L’indirizzo base è
contenuto nel registro IDTR (Interrupt Descriptor Table Register). È formato
da 8 byte che contengono l’indirizzo della routine di interruzione e da un
byte di accesso (importanti i bit P e TI)
Perché il meccanismo delle interruzioni si dice vettorizzato?
Ogni interruzione ha associato un tipo che determina l’accesso ad una specifica entrata della tabella delle interruzioni,
l’esecuzione di una routine dipende dal tipo dell’interruzione.
Le eccezioni e gli altri tipo di interruzioni vengono gestite alla stessa maniera?
No, per tutte le interruzioni, tranne le eccezione del processore, il valore di EIP salvato nella pila è l’indirizzo della
prossima istruzione da eseguire; l’istruzione corrente non è mai bloccata, si aspetta alla fine l’aggiornamento di EIP. Le
eccezioni del processore bloccano l’esecuzione dell’istruzione corrente, possono essere di tre tipi:
• Trap: vengono gestiti come le altre interruzioni alla fine dell’esecuzione dell’istruzione corrente. Un esempio di trap
è l’overflow durante l’istruzione INTO
• Fault: si ha quando si incontrano anomalie nella fase di esecuzione di un’istruzione. Questa viene bloccata. Nella
pila si memorizza l’indirizzo dell’istruzione che ha sollevato l’eccezione. Anche quando un gate non è presente il
programma viene terminato
• Abort: comporta la terminazione forzata dell’istruzione. In genere un abort si utilizza per problemi nelle circuiterie.
42. Lezione
Disegnare lo schema della circuiteria del controllore di interruzione APIC.
Un controllore APIC (Advanced
Programmable Interrupt Controller)
consente la gestione avanza di richieste
multiple di interrupt da diverse
Sui 24
interfacce nel calcolatore.
piedini (IR0-IR23) di ingresso riceve le
richieste dalle interfacce e le comunica
al processore tramite /INTR. Ogni
piedino IR supporta più sorgenti di
interruzioni, in questo caso le richieste
devono arrivare tramite segnali attivi
bassi. È collegato al bus locale a 32 bit
tramite i classici piedini di indirizzo, di
dati e di controllo.
Ci sono 3 registri direttamente accessibili a 32 bit e 64 registri nascosti (accessibili tramite porte). Può essere gestito
dal programmatore come una interfaccio montata nello spazio di memoria.
Elencare i passi che il controllore APIC effettua per la gestione del meccanismo delle interruzioni.
Il controllore APIC ad ogni nuova richiesta sui piedini di ingresso pone a 1 il bit di IRR corrispondente al tipo.
Per la gestione delle interruzioni, il controllore ripete ciclicamente:
• Attende che il bit più significativo di IRR con valore 1 abbia una priorità maggiore del bit più
significativo di ISR con valore 1
• Attiva il piedino /INTR
• Attende la risposta sul piedino /INTA e quando la riceve
o Considera il bit più significativo di IRR (j-mo)
o Pone a 0 il j-mo bit più significativo di IRR ed a 1 il j-mo bit più significativo di ISR
o Invia j (tipo dell’interruzione) al processore sul piedino TP
o Rimuove la richiesta di i