|
 |
Il Processore e il Debugger |
PROCESSORE 80x86 1/14
[12 di 60] |
 |
|
Il Pin-Out
della CPU 8086 |
|
 | Il modo migliore per tentare di saperne di
più sulle
linee di controllo
è quello di osservare il
pin-out
di un processore, cioè la disposizione dei suoi piedini. |
 | Poichè l'analisi dei
478 piedini del Pentium 4
sembra improponibile,
analizzeremo quelli del vecchio padre
8086
(che per altro abbiamo adottato anche per lo sviluppo dei prossimi programmi
in Assembly). |
 | In quel tempo i componenti integrati
avevano ancora la forma snella e allungata dei contenitori
Dual-in-Line
(cioè con piedini in linea su 2 file)
e la dimensione dei più grandi era proprio di
40 pin
(20+20) come quella del nostro... Vediamola:
|
 | I limiti di questa struttura hanno
subito imposto scelte obbligate ai progettisti; il conto è presto fatto: 20
linee d'indirizzo, più 16 di dato, più 2 per l'alimentazione (Vcc e GND)...
fanno 38 piedini! |
 | Avendone solo 40 a disposizione si doveva
inventare qualcosa: per recuperare spazio 16 sono stati destinati
sia a
tutte e 16 le linee
del bus dati
che
alle prime 16
(su 20) linee
del bus address. |
 | Per questo già con il processore successivo
(descritto nella
prossima pagina) la struttura del suo contenitore è cambiata da
DIP (Dual InLine Package)
a 40
pin alla più capiente
PLCC (Plastic Leaded Chip
Carrier)
o
PGA (Pin Grid Array),
da 68 pin,
più che sufficienti per ospitare tutti i segnali necessari. |
 | Ma torniamo al nostro 8086:
la presenza su quei piedini (AD0
- AD15)
di segnali così diversi
non può essere contemporanea,
per cui il processore pone su di essi, in tempi diversi,
prima la parte bassa dell'indirizzo
necessario e poi il dato a 16 bit. |
 | Il problema è ora scaricato sulle spalle
del progettista che si trova nella necessità di
memorizzare l'indirizzo
poco dopo la sua apparizione sul bus, per mantenerlo stabile e visibile
anche quando sarà sostituito dal dato
da coinvolgere con la memoria o con il dispositivo di I/O corrispondente
a quel indirizzo; per questa operazione è indispensabile un
segnale di controllo,
ALE
(Address Latch Enable),
che entra in gioco nel seguente modo:
 | il processore porta
ALE a
1
(a riposo questo segnale vale 0)
e subito dopo mette su AD0
- AD15
l'indirizzo che, con le rimanenti linee
"libere", AD16
- AD19,
punta la locazione (o il dispositivo) desiderata. |
 | quando l'indirizzo è stabile sul suo bus,
il processore porta ALE
a 0:
questo fronte di discesa dovrà essere utilizzato per memorizzare localmente
(per esempio con 2
74LS374) il numero a 16 bit
dell'indirizzo. |
 | poco dopo (con
ALE
sempre a 0)
leva l'indirizzo
dal bus e mette al suo posto il
dato,
attivando quasi contemporaneamente WR, cioè portandolo a
0
dallo stato di riposo, 1. |
 | dopo qualche istante riporta prima
WR
a 1
e poi toglie anche il dato, sperando che la memoria abbia avuto il tempo di
riceverlo... |
|
 | Quello ora descritto è un ciclo di
scrittura memoria
e, per tutto il tempo necessario (circa 4 cicli di clock), il segnale
MEM/IO
è stato tenuto a 1. |
 | Poichè lo scopo del Tutorial è quello di
imparare a programmare questi preziosi oggetti, non ritengo opportuno
continuare nella descrizione degli altri
segnali di controllo;
se si presenterà l'occasione magari potremo riparlarne nella
Sezione Hardware, progettando l'intera
struttura... |
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|