2011-12-27 14 views
8

Voglio solo sapere la differenza tra porte I/o I/o memoria, perché sono abbastanza confuso. E se qualcuno gli spiegasse l'uso, sarebbe fantastico. E per uso intendo, quando le porte I/O sono preferite e quando è preferibile la memoria I/O.differenza tra porte I/O e memoria I/O

risposta

10

v'è alcuna differenza concettuale tra regioni di memoria e le regioni di I/O: entrambi sono accessibili affermando segnali elettrici sul bus e controllo di indirizzo di bus

Mentre alcuni produttori di CPU implementano un unico spazio di indirizzi a loro chips altri hanno deciso che i dispositivi periferici sono diversi dalla memoria e, pertanto, meritano uno spazio di indirizzi separato. Alcuni processori (in particolare la famiglia x86) hanno linee elettriche di lettura e scrittura separate per le porte I/O e speciali istruzioni CPU per accedere alle porte.

Linux implementa il concetto di porte I/O su tutte le piattaforme su cui gira, anche su piattaforme in cui la CPU implementa un singolo spazio di indirizzamento. L'implementazione dell'accesso alla porta a volte dipende dalla specifica marca e modello del computer host (poiché i diversi modelli utilizzano chipset diversi per mappare le transazioni del bus nello spazio degli indirizzi della memoria).

Anche se il bus periferico dispone di uno spazio indirizzo separato per le porte I/O, non tutti i dispositivi eseguono il mapping dei loro registri alle porte I/O. Mentre l'uso delle porte I/O è comune per le schede periferiche ISA, la maggior parte dei dispositivi PCI esegue il mapping dei registri in un'area di indirizzo di memoria. Questo approccio alla memoria I/O è generalmente preferito, poiché non richiede l'uso di istruzioni per processore speciali; I core della CPU accedono alla memoria in modo molto più efficiente e il compilatore ha molta più libertà nell'assegnazione dei registri e nella selezione della modalità di indirizzamento quando accede alla memoria.

Altri dettagli a http://www.makelinux.net/ldd3/chp-9-sect-1