EP1528474A2

Shadow page tables for address translation control

Abstract

In a computer system that employs virtual memory, multiple versions of a given page are stored: a directory version, a table version, and a data version. The data version contains the data that a software object believes to be stored in the page. The directory and table versions of the page contains versions of the page's contents that have been modified in some manner to comply with a restriction on the address translation map employed by the virtual address system. When a page is being used by the virtual address system as a directory or table, then the directory or table versions, respectively, of that page are used. When a page is the target of a read request, the data version of the page is used.

EP1528474A2, drawing sheet 1
Sheet 1 of 7

Term

Term ended

Projected expiry passed 6 August 2024, 2.1 years ago.

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

24 claims: 4 independent, 20 dependent

  1. 1
    A computer-readable medium having encoded thereon computer-executable instructions to perform a method of creating shadow pages for an address translation map, the address translation map comprising a page directory and a plurality of page tables, the page directory comprising a links to the plurality of page tables, each of the page tables comprising links to a plurality of data pages, the page directory and page tables each being stored in one of the data pages, the method comprising:for at least one of the plurality of page tables, creating a first shadow page table based on said one of the plurality of page tables, said first shadow page table differing from said first one of the plurality of page tables in at least one of the following respects: at least one entry in said first shadow page table links to a different data page than that entry's corresponding link in said first one of the plurality of page tables;and said first shadow page table contains one or more read-only links whose corresponding links in said first one of the plurality of pages tables are read/write;and creating a shadow page directory based on the page directory, the page directory comprising a link to said one of the plurality of page tables, said shadow page directory comprising a link to said shadow page table instead of the link to said one of said plurality of page tables.
  2. 5
    A system for managing the use of a memory comprising:a memory comprising a plurality of individually-addressable components that can be read and written, each of the individually-addressable components having a physical address associated therewith;an address translation data structure that defines a mapping between virtual addresses and the physical addresses of the individually-addressable components;a memory manager that receives a request to access a first one of the individually-addressable components, said request identifying said first one of the individually-addressable components based on a virtual address, said memory manager translating said virtual address into the physical address of said first one of the individually-accessible components based on data that comprises a shadow representation of said address translation structure.
  3. 14
    A method of executing a memory access request comprising:receiving an request to read or write a unit of a memory, said request identifying said unit of said memory based on a virtual address;accessing said unit of memory based on a representation of a map that defines a relationship between virtual addresses and physical addresses, said map being stored in one or more pages of said memory, said representation of said map comprising at least one shadow page that is based on a first one of said one or more pages, said map including at least one aspect which, if used to access said memory based on said virtual address, would result in violation of a memory access policy, said shadow page differing from said first one of said one or more pages in a manner such that use of said representation of said map to access said memory based on said virtual address does not violate said memory access policy;and performing the read or write specified in said access request.
  4. 19
    A computer-readable medium having encoded thereon a data structure that is representative of an address translation map, the address translation map comprising a page directory, the directory comprising links to a plurality of page tables, each of the page tables being stored at a particular frame within said computer-readable medium, each of the page tables comprising links to a plurality of pages of said computer-readable medium, the data structure comprising:a shadow page table that is based on a first one of the plurality of page tables;a shadow page directory that is based on the page directory, the page directory comprising a first entry that contains a link to said first one of the plurality of page tables, said shadow page table comprising a second entry that corresponds to the first entry, said second entry containing a link to said shadow page table instead of a link to said first one of the plurality of page tables.