Method, system, and program for addressing pages of memory by an I/O device
AssigneeIntel Corporation
InventorsArturo Arizpe, Gary Tsao
Life of this patent
Estimating the term…
Abstract
Provided are a method, system, and program for translating virtual addresses of memory locations within pages of different sizes. In one embodiment, a translation entry containing a physical address is stored in a data structure table for each page. Each virtual address includes a page virtual address which identifies the translation entry containing the physical address of the page containing the memory location. The virtual address may be translated to a translation entry index using the size of the page containing the memory location.
Claims59
A method, comprising:
- identifying a plurality of pages of memory locations allocated to an input/output (I/O) device, wherein the memory locations within each page are contiguous and wherein a plurality of said pages are of different sizes;
- and
- for each identified page, storing in a translation entry of a data structure table, a physical address of an identified page.
An input/output (I/O) device for use with a memory having a plurality of memory locations, comprising:
- logic adapted to:
- maintain a data structure table comprising a plurality of translation entries;
- identify a plurality of pages of said memory locations allocated to said I/O device, wherein the memory locations within each page are contiguous and wherein a plurality of said pages are of different sizes;
- and
- for each identified page, store in a translation entry of said data structure table, a physical address of an identified page.
A system for use with a memory having a plurality of memory locations, comprising:
- at least one memory which includes an operating system;
- a motherboard;
- a processor mounted on the motherboard and coupled to the memory;
- an expansion card coupled to said motherboard;
- a controller mounted on said expansion card wherein said memory includes a plurality of memory locations adapted to be allocated to said controller;
- and
- a device driver executable by the processor in the memory for said controller wherein the device driver is adapted to:
- maintain in said memory a data structure table comprising a plurality of translation entries;
- identify a plurality of pages of said memory locations allocated to said controller, wherein the memory locations within each page are contiguous and wherein a plurality of said pages are of different sizes;
- and
- for each identified page, store in a translation entry of said data structure table, a physical address of an identified page.
An article comprising a storage medium for use with a controller and a memory having a plurality of memory locations, wherein the storage medium comprises machine readable instructions stored thereon to:
- maintain a data structure table comprising a plurality of translation entries;
- identify a plurality of pages of said memory locations allocated to said controller, wherein the memory locations within each page are contiguous and wherein a plurality of said pages are of different sizes;
- and
- for each identified page, store in a translation entry of said data structure table, a physical address of an identified page.
Dependencies are inferred from the claim text.