Come vengono inviati gli indirizzi e i dati delle porte I / O?

1

Prima di tutto, vorrei dire che si tratta di una domanda a livello hardware, che è strettamente correlata al comando "in" e "out" nell'assembly x86.

Ho cercato per un po 'di tempo, ma non ho ancora trovato il modo in cui inviano gli indirizzi e i dati. L'8086 invia prima l'indirizzo, quindi i dati? In tal caso, come fa il ricevitore a sapere se l'8086 sta inviando un indirizzo a 16 bit o un indirizzo a 8 bit?

A parte questo, mi piacerebbe anche imparare come funziona l'8255 e come accetta porte specifiche come "porta 60H".

Grazie per aver letto! : D

    
posta Myrl 15.12.2013 - 14:09
fonte

2 risposte

2

Come hai menzionato il processore 8086, ti sto spiegando con riferimento a 8086:

8086 è un processore a 16 bit (Bus dati a 16 bit significa: no.of Le linee fisiche da trasportare o trasportare sono 16 righe alcune volte anche le dimensioni ALU) e 20-bit Address Bus (20-bit Address Bus significa: no.of Le linee fisiche per portare fuori l'indirizzo sono 20) queste linee non sono altro che 8086-pin.

Per il salvataggio di 8086 pin Le linee bus 16-dati e 16- Le linee indirizzo sono multiplexate (durante la prima parte del ciclo macchina 16 linee funge da bus indirizzo in seguito fungono da linea bus dati) quindi il numero di pin verrà ridotto.

Ora la tua principale risposta alle domande: Caso: 1 (8086 vuole accedere a un byte in una memoria) 8086 può indirizzare le posizioni 2 ^ 20 (Address Bus size), ogni posizione contiene un byte (8 bit di dati) che implica (2 ^ 10 x 2 ^ 10 = 1024 (1K) x1024 (1K) = > 1M) infine dovrebbe essere 1MByte

Memoria: come unità USB (2 GB, 4 GB, ecc.) Ogni posizione di memoria ha un indirizzo e posizione contiene un byte (8 bit) supponiamo che 1 MB di memoria abbia 1024.000 posizioni di memoria e ogni posizione abbia un'unità dati a 8 bit capacità

Se il processore 8086 vuole accedere a un byte a un indirizzo per primo invierà l'indirizzo a 1MB chip di memoria diciamo (0x20002) Posizione, questo chip di memoria da 1 MB è collegato al bus indirizzo 8086 e al bus dati. è come sotto

  1. 8086 indirizzo sul bus indirizzo su 1 MB di chip di memoria
  2. Memoria da 1 MB Il chip riceverà l'indirizzo sul suo indirizzo Bus (0x20002)
  3. 8086 attende un po 'di sincronizzazione con il tempo di attesa della memoria (la memoria può essere più lenta del processore)
  4. 1MB Memory Chip invierà il byte richiesto sulle linee del bus dati a 8086
  5. 8086 legge nel byte di ricezione

C'è un altro caso se la memoria è una pila di chip di memoria come due chip da 512 KB di 1 MB totale (512 KB + 512 KB) In questo caso ogni chip di memoria ha 19 linee di indirizzo (512K = 512 x 1024 = > 2 ^ 9 x 2 ^ 10) e una linea importante chiamata CHIP SELECT che abilita il chip di memoria Entrambe le linee di indirizzo del chip di memoria sono collegate al bus indirizzo 8086 Ma 8086 ha 20 linee di indirizzo, quindi una linea è usata per connettere la linea Chip Select di 512K Memory Chip che abilita il chip da 512KB Qui 1 riga di indirizzo ha due stati: 0 o 1

  1. 0: è usato per selezionare una memoria Chip-A-521KB + 19 Address line
  2. 1: è usato per selezionare la seconda memoria Chip-B-521KB + 19 Address line

Un altro caso se la memoria ha una capacità di 256 Byte (2 ^ 8), ha 8-INDIRIZZO LINEE e una linea di selezione del chip

Nel caso precedente, solo 8 linee di indirizzo 8086 sono collegate al chip di memoria da 256 byte, ma l'alesaggio è collegato alla linea di selezione chip del chip di memoria, forse porta NOR il cui output è uno se tutti gli input sono zero

qui diciamo 20 linee di indirizzo (A19-A0) di 8086

  1. Le linee di indirizzo A7-A0 sono collegate al chip di memoria da 256 byte
  2. Le linee di indirizzo di alesaggio, da A19 a A8, sono collegate alla linea di selezione del chip Chip di memoria attraverso il gate NOR a 14 ingressi Il valore out è uno se tutti gli ingressi sono zero cioè (A19-A8 = 0x0 00)
  3. La procedura di cui sopra è denominata Decodifica dell'indirizzo 4. L'intervallo di indirizzi per 256 byte di chip di memoria è (A7-A0 = > 0x00 a 0xFF) Ma 8086 ha 20-Address Lines Quindi le linee di alesaggio sono collegate a Chip select di 256 byte di memoria Chip attraverso NOR gate Quindi l'intervallo di indirizzi finale è 0x000 00 a 0x000 FF in questo modo il chip di memoria a 256 byte è indirizzato

In questo modo i dati di accesso del processore da Memory Chip con l'aiuto di indirizzo e bus dati

Caso: 2 (alcuni dispositivi potrebbero voler inviare dati a 8086) È molto complicato da spiegare qui, ma presto aggiungerò a questa domanda

infine circa 8255 si prega di fare riferimento a questa intel 8255 pagina Wiki

    
risposta data 17.12.2013 - 05:43
fonte
-1

L'indirizzo deve essere stabilito prima dell'invio dei dati per ridurre i costi di comunicazione. Per fare ciò, un protocollo di basso livello chiamato ARP trasmette una richiesta ARP e quando l'host (identificato da un indirizzo IP) che si sta cercando risponde, l'indirizzo fisico viene mappato su un indirizzo IP in una cache sul proprio computer. Il messaggio ARP viene trasportato nella 'area dei dati del frame' insieme all'intestazione del frame. Una volta che questa connessione è attiva, la lunghezza dei campi dipende dalle lunghezze degli indirizzi hardware e di protocollo. Quindi 6 ottetti per indirizzo Ethernet e 4 ottetti per un indirizzo IP.

    
risposta data 08.03.2018 - 13:10
fonte

Leggi altre domande sui tag