EP0428079A2

Translation look aside buffer with parallel exception checking and update bypass.

Abstract

An apparatus and method for translating virtual addresses to physical addresses of a main memory is dis­closed. The main memory includes a plurality of pages, each page of memory corresponds to a page address. The virtual addresses are stored in a content addressable memory. The content addressable memory includes a plurality of entries and each entry contains one of the virtual addresses. The random access memory includes a plurality of entries and each entry of the random access memory contains one of the page addresses and associated with each page address is access privilege information. The access privilege informa­tion denotes the level of authorization required for access­ing the page associated with the requested page address from main memory. Each entry of the random access memory corre­sponds to an entry of the content addressable memory. Asso­ciated with each entry of the content addressable memory and associated with each corresponding entry of the random access memory is a means for performing a predetermined logic function for comparing said access privilege for one of said pages of said main memory with access privilege for the request and determining whether the requested access privilege is sufficient for accessing the page of main memory.

EP0428079A2, drawing sheet 1
Sheet 1 of 6

Term

Term ended

Projected expiry passed 9 November 2010, 15.9 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

4 claims: 4 independent, 0 dependent

  1. 1
    An apparatus for translating virtual addresses to physical addresses of main memory, said main memory includ­ing a plurality of pages, each said page of said main memory corresponding to a page address and said apparatus for determining whether the request for said translation has sufficient access privilege to access said page associated with said page address, said apparatus comprising:content addressable memory means for storing a plural­ity of said virtual addresses, said content addressable mem­ory including a plurality of entries and each said entry containing one of said virtual addresses, random access memory means for storing a plurality of said page addresses, said random access memory means includ­ing a plurality of entries, each entry of said random access memory means containing one of said page addresses and access privilege information, said access privilege informa­tion for denoting the level of access privilege required for obtaining said page address stored in said random access memory entry, and each entry of said random access memory corresponding to an entry of said content addressable mem­ory, and associated with each entry of said content addressable memory means and associated with each said corresponding entry of said random access memory means, means for performing a predetermined logic function for comparing said access privilege for one of said pages of said main memory with said request access privilege for determining whether said requested access privilege is sufficient for accessing said page associated with said page address and means for combining said page address with said virtual address to obtain said physical address, and means for obtaining, in parallel to said means obtaining said physical address, said determination of whether said requested access privilege is sufficient for accessing said page.
  2. 2
    A method for translating virtual addresses of a main memory to physical addresses of said main memory, said main memory including a plurality of pages, each said page of said main memory corresponding to a page address, said virtual addresses stored in a content addressable memory, said content addressable memory including a plurality of entries and each said entry containing one of said virtual addresses, said page addresses stored in a random access memory, said random access memory including a plurality of entries, each entry of said random access memory containing one of said page addresses and access privilege information associated with said page address, said access privilege information for denoting the level of access privilege required for accessing said page address stored in said ran­dom access memory entry, each entry of said random access memory corresponding to an entry of said content addressable memory, associated with each entry of said content addressable memory and associated with each said correspond­ing entry of said random access memory, means for performing predetermined logic functions for comparing the access priv­ilege for one of said pages of said main memory with a request access privilege for determining whether said request is sufficient for accessing said page of said main memory associated with said corresponding page address of said random access memory, said method comprising the steps of:comparing the contents of said content addressable mem­ory with said virtual address to be translated in order to determine which entry of said content addressable memory, if any, matches said virtual address, in parallel to said step of comparing the contents of said content addressable memory with said virtual address, obtaining the access privilege information, if any, associ­ated with each entry of said random access memory, and said step for obtaining the access privilege information includ­ing the step of comparing the access privilege for each of said entries with the request access privilege for determin­ing whether the requested access privilege is sufficient for accessing the page associated with the page address, selecting a random access memory entry associated with said matched entry of said content addressable memory, in parallel to said step of selecting said random access memory entry, selecting said means for performing said predetermined logic function associated with said matched entry of said content addressable memory and said corresponding entry of said random access memory, and combining said page address with said virtual address to obtain said physical address, in parallel to said step for combining, obtaining from said selected predetermined logic function said determination of whether said requested access privilege is sufficient for accessing said page.
  3. 3
    A method for efficiently providing a translation for a virtual address to a physical address of a main mem­ory, said translation performed by a translation look aside buffer, said translation look aside buffer including a con­tent addressable memory for storing a plurality of said vir­tual addresses, a random access memory for storing a plural­ity of page addresses, a virtual address bus for updating said content addressable memory with said virtual addresses and an update data bus for updating the random access memory with said page addresses, said virtual address bus and said update bus combined by an output multiplexer, said method comprising the steps of:operative when said translation does not produce said physical address, updating the content addressable memory with said virtual address to be translated and updating said random access memory with said page address corresponding to said virtual address, said step of updating said content addressable memory and said random access memory including the step of sending said virtual address on said virtual address bus and said page address on said update data bus to said output multi­plexer and combining said virtual address with said page address to produce said physical address.
  4. 4
    A translation look aside buffer for efficiently providing translation for a virtual address to a physical address of a main memory, said translation look aside buffer comprising:a content addressable memory for storing a plurality of said virtual addresses, a random access memory for storing a plurality of page addresses, a virtual address bus for updating said content addressable memory with said virtual addresses and an update data bus for updating the random access memory with said page addresses, said virtual address bus and said update data bus combined by an output multiplexer, said multiplexer for combining said page address with said virtual address to produce said physical address.