The present invention, in various embodiments, provides techniques for
managing memory in computer systems. In one embodiment, each memory page
is divided into relocation blocks located at various physical locations,
and a relocation table is created with entries used to locate these
blocks. To access memory for a particular piece of data, a program first
uses a virtual address of the data, which, through a translation
look-aside buffer, is translated into a physical address within the
computer system. Using the relocation table, the physical address is then
translated to a relocation address that identifies the relocation block
containing the requested data. From the identified relocation block, the
data is returned to the program.
A invenção atual, em várias incorporações, fornece técnicas para controlar a memória nos sistemas computatorizados. Em uma incorporação, cada página da memória é dividida nos blocos do relocation situados em várias posições físicas, e uma tabela do relocation é criada com as entradas usadas encontrar estes blocos. Para alcançar a memória para uma parte particular de dados, um programa usa primeiramente um endereço virtual dos dados, que, através de um amortecedor look-aside de tradução, são traduzidos em um endereço físico dentro do sistema computatorizado. Usando a tabela do relocation, o endereço físico é traduzido então a um endereço de relocation que identifique o bloco do relocation que contem os dados pedidos. Do bloco identificado do relocation, os dados são retornados ao programa.