The present invention relates to a method, apparatus and system for
managing virtual memory, in which a co-processor (224) is adapted to use
virtual memory with a host processor (202). A host memory (203) is coupled
to the host processor (202) to implement the virtual memory. The
co-processor (224) includes a virtual-physical memory mapping device (915)
for interrogating a virtual memory table and for mapping one or more
virtual memory addresses (880) requested by the co-processor (224) into
corresponding physical addresses (873) in the host memory (203). The
virtual memory table is stored in two or more non-contiguously addressable
regions of the host memory (203), and is preferably a page table. The
memory mapping device (915) further includes a multiple-entry translation
lookaside buffer (889) for caching virtual-to-physical address mappings
(872), where entries in the buffer (889) are replaced on a least recently
used replacement basis. The memory mapping device (915) also includes
devices (901) for comparing, replacing, singly invalidating and multiply
invalidating one or more entries of the translation lookaside buffer
(889). It also includes a hashing device (892) for, upon an occurrence of
a miss in the translation lookaside buffer (889), hashing a virtual memory
address (880) using a hash function to produce an index into the virtual
memory table.
La actual invención se relaciona con un método, un aparato y un sistema para manejar la memoria virtual, en la cual un co-procesador (224) se adapta para utilizar memoria virtual con un procesador del anfitrión (202). Una memoria del anfitrión (203) se junta al procesador del anfitrión (202) para poner la memoria en ejecucio'n virtual. El co-procesador (224) incluye una memoria virtual-fi'sica traz el dispositivo (915) para interrogar a una tabla de la memoria virtual y para traz unas o más direcciones de la memoria virtual (880) pedidas por el co-procesador (224) en las direcciones correspondientes de la comprobación (873) en la memoria del anfitrión (203). La tabla de la memoria virtual se almacena en dos o más regiones non-contiguously direccionables de la memoria del anfitrión (203), y es preferiblemente una tabla de página. La memoria traz el dispositivo (915) incluye más lejos un almacenador intermediario del lookaside de la traducción de la mu'ltiple-entrada (889) para depositar los mappings virtual-a-fi'sicos de la dirección (872), donde las entradas en el almacenador intermediario (889) se substituyen sobre una base lo más menos posible recientemente usada del reemplazo. La memoria traz el dispositivo (915) también incluye los dispositivos (901) para comparar, substituyendo, solo invalidando y multiplica la invalidación de unas o más entradas del almacenador intermediario del lookaside de la traducción (889). También incluye un dispositivo del hashing (892) para, sobre una ocurrencia de una falta en el almacenador intermediario del lookaside de la traducción (889), hashing una dirección de la memoria virtual (880) que usa una función del picadillo para producir un índice en la tabla de la memoria virtual.