Vantaggi e svantaggi della memoria I/O isolata vs. memory-mapped
I dispositivi di input/output (I/O) — tastiera, modem, ecc. — inviano o ricevono informazioni dai processori del computer. Nei sistemi memory-mapped I/O, i dispositivi I/O usano parte della memoria del computer come indirizzo per trasmettere messaggi. Nei sistemi a memoria isolata, I/O e memoria hanno indirizzi separati.
I/O
I sistemi possono mappare l'I/O a un indirizzo nei banchi di memoria perché il processo di messaggistica con i dispositivi I/O è simile allo scambio dati con la memoria. Lo stesso bus — il percorso elettronico per trasmettere informazioni da e verso i processori — serve ad accedere sia alla memoria che ai dispositivi I/O. Uno svantaggio della memoria isolata è che i sistemi memory-mapped sono più semplici per il bus, usando lo stesso set di indirizzi per operazioni I/O e memoria.
Memory Map
In un sistema memory-mapped, al computer risulta difficile distinguere operazioni I/O da altre opzioni software che accedono alla memoria; i sistemi a memoria isolata non hanno questo problema. Le operazioni I/O nei computer memory-mapped usano solo parte dell'indirizzo di memoria completo, per rendere la loro posizione più distintiva. I sistemi a memoria isolata sono più complessi perché, a differenza dei memory-mapped, non possono usare gli stessi sistemi di decodifica e controllo per memoria e dispositivi I/O. Nei computer memory-mapped, qualsiasi istruzione che estrae dati dalla memoria opera anche sui dispositivi I/O.
Programmazione
In un computer a memoria isolata, la programmazione è più pulita: l'I/O ha un indirizzo separato, così il computer può usare gli indirizzi per identificare se un programma deve lavorare con memoria o I/O. Con il memory-mapping, qualsiasi istruzione che riferisce alla memoria può essere usata anche come istruzione per il sistema I/O. Con la memoria isolata, i programmi necessitano istruzioni "In" e "Out" aggiuntive per estrarre o inviare dati a indirizzi memoria o I/O.
Spazio di memoria
Quando un computer usa un sistema memory-mapped I/O, parte dello spazio memoria è dedicata a indirizzi I/O, lasciando meno spazio per l'effettiva memorizzazione. Con il memory mapping, gli indirizzi I/O devono essere scritti per essere distinti dai banchi memoria circostanti; assegnare indirizzi I/O è più semplice nei sistemi a memoria isolata. Poiché i dispositivi I/O occupano meno spazio della memoria a un dato indirizzo, è possibile che parte dello spazio all'indirizzo I/O rimanga inutilizzato e sprecato.