A method and apparatus for translating a virtual address to a physical
address. A virtual address to be translated has a virtual page offset and
a virtual page number. The virtual address to be translated addresses a
page of memory. The size of this page is unknown. There are L different
possible page sizes where L is a positive integer greater than one. Each
of the L different page sizes is selected to be a test page size and a
test is performed. During the test, a pointer into a translation storage
buffer is calculated. The pointer is calculated from the virtual address
to be translated by assuming that the virtual address to be translated
corresponds to a mapping of the test page size. The pointer points to a
candidate translation table entry of the translation storage buffer. The
candidate translation table entry has a candidate tag and candidate data.
The candidate tag identifies a particular virtual address and the
candidate data identifies a particular physical address corresponding to
the particular virtual address. A virtual address target tag is extracted
from the virtual address to be translated. The virtual address target tag
is calculated by assuming that the virtual address to be translated
corresponds to a mapping of the test page size. The target tag and the
candidate tag are then compared. If the target tag matches the candidate
tag, the candidate data is provided as the physical address translation
corresponding to the virtual address to be translated.
Eine Methode und ein Apparat für das Übersetzen einer virtuellen Adresse zu einer körperlichen Adresse. Eine virtuelle zu übersetzende Adresse hat eine virtuelle versetzte Seite und eine virtuelle Seitenzahl. Die virtuelle Adresse, zum übersetzte Adressen ein Seite des Gedächtnisses zu sein. Die Größe dieser Seite ist unbekannt. Es gibt L unterschiedliche mögliche Seite Größen, in dem L eine positive Ganzzahl grösser als eine ist. Jedes des L unterschiedliche Seite Größen wird vorgewählt, um eine Testseite Größe zu sein und ein Test wird durchgeführt. Während des Tests wird ein Zeiger in einen Übersetzung Speicherpuffer errechnet. Der Zeiger wird von der virtuellen indem man annimmt zu übersetzenden Adresse errechnet, daß die virtuelle zu übersetzende Adresse einem Diagramm der Testseite Größe entspricht. Der Zeiger zeigt auf eine Bewerberübersetzung Tabelle Eintragung des Übersetzung Speicherpuffers. Die Bewerberübersetzung Tabelle Eintragung hat einen Bewerberumbau und Bewerberdaten. Der Bewerberumbau kennzeichnet eine bestimmte virtuelle Adresse und die Bewerberdaten kennzeichnen eine bestimmte körperliche Adresse, die der bestimmten virtuellen Adresse entspricht. Ein virtueller Adresse Zielumbau wird von der virtuellen zu übersetzenden Adresse extrahiert. Der virtuelle Adresse Zielumbau wird errechnet, indem man annimmt, daß die virtuelle zu übersetzende Adresse einem Diagramm der Testseite Größe entspricht. Der Zielumbau und der Bewerberumbau werden dann verglichen. Wenn der Zielumbau den Bewerberumbau zusammenbringt, werden die Bewerberdaten während die körperliche Adresse Übersetzung zur Verfügung gestellt, die der virtuellen zu übersetzenden Adresse entspricht.