Pls spiegare la differenza tra memoria mappata IO e IO IO mappatoqual è la differenza tra la memoria mappata IO e IO mappato io
risposta
Su x86 ci sono due diversi spazi di indirizzi, uno per la memoria e un altro per le porte I/O.
Lo spazio di indirizzamento della porta è limitato a 65536 porte ed è accessibile tramite le istruzioni IN/OUT.
Ad esempio, è possibile accedere alla funzionalità VGA di una scheda video utilizzando alcune porte I/O, ma il framebuffer è mappato in memoria.
Altre architetture CPU hanno solo uno spazio indirizzo. In queste architetture, tutti i dispositivi sono mappati in memoria.
Uhm, ... a meno che non ho capito male, si sta parlando di due cose completamente diverse. Ti darò due spiegazioni molto brevi in modo da poter fare su google ciò che è necessario per ora.
I/O mappato in memoria significa mappare la memoria dei dispositivi hardware I/O nella mappa della memoria principale. Cioè, nella memoria del computer ci saranno degli indirizzi che in realtà non corrisponderanno alla tua RAM, ma ai registri interni e alla memoria dei dispositivi periferici. Questa è l'architettura della macchina di cui stava parlando Pointy.
C'è anche un I/O mappato, che significa prendere (dire) un file, e avere il sistema operativo caricare parti di esso in memoria per un accesso più veloce in seguito. In Unix, questo può essere realizzato tramite mmap()
.
Spero che questo abbia aiutato.
La tua risposta è informativa ma non hai spiegato IO mappato IO. – JagsVG
* "nella memoria del computer ci saranno degli indirizzi che in realtà non corrispondono alla RAM, ma ai registri interni e alla memoria dei dispositivi periferici." * Ogni dispositivo ha i suoi registri interni e la memoria che mappano alla RAM (per esempio: una stampante può avere 4 registri mentre una webcam ha 7 registri) oppure esiste un numero standard di registri e di memoria che tutti i dispositivi devono implementare? – John
Ogni dispositivo è diverso, sia internamente che interfacciato. Le mappature di memoria possono essere usate o no. È altamente dipendente dal dispositivo – slezica
Ho ancora una chiara differenza tra i due. Il dispositivo I/O mappato in memoria è quel dispositivo I/O che risponde quando IO/M è basso. Mentre un I/O mappato I/O (o periferica) è quello che risponde quando IO/M è alto.
I/O mappati in memoria sono mappati nello stesso spazio di indirizzi della memoria del programma e/o della memoria utente e sono accessibili allo stesso modo.
L'I/O mappato porta utilizza uno spazio di indirizzamento dedicato separato ed è accessibile tramite un set dedicato di istruzioni del microprocessore.
Poiché i processori a 16 bit diventeranno lentamente obsoleti e sostituiti con 32 bit e 64 bit in uso generale, riservare intervalli di spazio di indirizzamento della memoria per I/O è meno problematico, come lo spazio di indirizzamento della memoria del il processore è in genere molto più grande dello spazio richiesto per tutti i dispositivi di memoria e I/O in un sistema.
Pertanto, è diventato più spesso pratico sfruttare i vantaggi di I/O mappato in memoria.
Lo svantaggio di questo metodo è che l'intero bus di indirizzi deve essere completamente decodificato per ogni dispositivo. Ad esempio, una macchina con un bus di indirizzo a 32 bit richiederebbe porte logiche per risolvere lo stato di tutte le 32 linee di indirizzo per decodificare correttamente l'indirizzo specifico di qualsiasi dispositivo. Ciò aumenta il costo dell'aggiunta di hardware alla macchina.
Il vantaggio del sistema IO mappato IO è che è necessaria meno logica per decodificare un indirizzo discreto e quindi meno costi per aggiungere dispositivi hardware a una macchina. Tuttavia potrebbero essere necessarie ulteriori istruzioni.
Ref: - Check This link
- 1. Qual è la differenza tra DMA e IO mappato in memoria?
- 2. Memoria indipendente dalla piattaforma mappata [file] IO
- 3. Qual è la differenza tra Task e IO in Scalaz?
- 4. Qual è la differenza tra le dipendenze di maven org.apache.commons: commons-io e commons-io: commons-io?
- 5. Qual è la relazione tra Spring Boot e Spring IO?
- 6. Java IO vs NIO, qual è la differenza?
- 7. Haskell monade: IO [Doppia] a [IO Doppia]
- 8. Qual è la differenza tra regione mappata e area non mappata nello spazio di memoria?
- 9. Haskell IO Monad e memoria utilizzano
- 10. differenza tra chiamate asincrone e chiamate asincrone io in .net
- 11. Strutture FRP e IO
- 12. subshell IO reindirizzamento
- 13. IO bufferizzato vs non bufferizzato
- 14. Scala IO monade: qual è il punto?
- 15. Memoizing e ripetendo IO monadi
- 16. Perché esiste un MONAD IO nidificato, IO (IO()), come valore di ritorno della mia funzione?
- 17. Quale attività IO supporta il gestore di GHC IO?
- 18. dovrebbe io eliminare la cartella .AndroidStudio1.2 ora
- 19. Ottimizza file C# IO
- 20. browser e socket Android io
- 21. Interazione IO e forse monade
- 22. Funzione IO memorizzata?
- 23. Converti [IO Int] in IO [Int] in Haskell?
- 24. Riconnessione IO socket?
- 25. "Lazy IO" in Haskell?
- 26. IO asincrono in Java?
- 27. Golang io/ioutil NopCloser
- 28. Sailsjs Socket IO
- 29. Haskell IO - maniglia chiusa
- 30. Eccezioni IO estensibili Haskell?
Questo sembra più simile a una domanda architettura della macchina di una questione di programmazione. – Pointy
Prova a fare la tua domanda su ServerFault.com – DOK
@DOK: Come diavolo pensi che questa sia una domanda SF? – dmckee