A subsystem that is able to address a second memory region initiates I/O
requests directed to a device that is able to address a first memory
region that is different from the second memory region. Requests for
memory are mapped at least once, for example from virtual to physical page
numbers. The I/O requests are conditionally remapped to pages in the first
region as a function of how often they are involved in the I/O operations
and would normally otherwise need to be copied. Remapping may also be made
conditional on a function of availability of memory in the first region.
In a preferred embodiment of the invention, the I/O requests are initiated
by a subsystem within a virtual machine, which runs via an intermediate
software layer such as a virtual machine monitor on an underlying hardware
and software platform. A typical application of the invention is DMA.
Ένα υποσύστημα που είναι σε θέση να εξετάσει μια δεύτερη περιοχή μνήμης αρχίζει τα I/O αιτήματα που κατευθύνονται σε μια συσκευή που είναι σε θέση να εξετάσει μια πρώτη περιοχή μνήμης που είναι διαφορετική από τη δεύτερη περιοχή μνήμης. Τα αιτήματα για τη μνήμη χαρτογραφούνται τουλάχιστον μιά φορά, παραδείγματος χάριν από εικονικούς σε φυσικούς αριθμούς σελίδων. Τα I/O αιτήματα είναι υπό όρους στις σελίδες στην πρώτη περιοχή όπως μια λειτουργία πόσο συχνά περιλαμβάνονται στις I/O διαδικασίες και κανονικά ειδάλλως θα πρέπει να αντιγραφούν. Το Remapping μπορεί επίσης να γίνει υπό όρους σε μια λειτουργία της διαθεσιμότητας της μνήμης στην πρώτη περιοχή. Σε μια προτιμημένη ενσωμάτωση της εφεύρεσης, τα I/O αιτήματα αρχίζουν από ένα υποσύστημα μέσα σε μια εικονική μηχανή, η οποία τρέχει μέσω ενός ενδιάμεσου στρώματος λογισμικού όπως ένα εικονικό όργανο ελέγχου μηχανών σε μια ελλοχεύουσα πλατφόρμα υλικού και λογισμικού. Μια χαρακτηριστική εφαρμογή της εφεύρεσης είναι DMA.