Patent ID: 6480950
Filing Date: 2002-11-12
Classification: G06F

Abstract:
A method of translating, in a software paging system, an input key to an address in main memory, comprising:in the main memory, creating a translation buffer having a plurality of records stored therein, each record having a plurality of translation entries, each translation entry comprising: a key field comprising at least a portion of a key identifying a page in the main memory, an address field associated with the key field and having an address of the page identified by the key, and a version field; upon saving an address in the address field of a translation entry, saving a version identifier in the version field of the translation entry; incrementing the version identifier each time a different virtual page is associated with the saved address; from the input key, dereferencing a record in the translation buffer; comparing the input key with the keys stored in the dereferenced record; if the input key matches a key from the dereferenced record, retrieving an address from the associated address field, comparing the version identifier of the corresponding translation entry with a last retrieved version identifier for the same input key, and retrieving data from the page associated with the retrieved address only if the version identifiers match; and if the input key does not match any key from the dereferenced record, invoking a paging manager to establish an address for the input key, and saving the input key and the established address in the key field and associated address field, respectively, of a translation entry of the dereferenced record.