Mapping memory segments in a translation lookaside buffer
AssigneeCisco Technology, Inc.
InventorsVictor Kamensky, Ilya Umansky
Life of this patent
Estimating the term…
Abstract
In one embodiment, a method includes identifying first and second memory segments associated with a process in virtual memory, allocating memory for the first memory segment from a first contiguous physical memory space, allocating memory for the second memory segment from a second contiguous physical memory space, and mapping the first and second memory segments to the first and second contiguous physical memory spaces in a translation lookaside buffer. Apparatus and logic for memory allocation to minimize translation lookaside buffer faults are also disclosed.
Claims17
A method comprising:
- reserving a plurality of memory segments in a continuous physical memory space;
- starting one or more processes;
- identifying first and second memory segments associated with said one or more processes in virtual memory;
- allocating memory for said first memory segment from a first contiguous physical memory space in said continuous physical memory;
- allocating memory for said second memory segment from a second contiguous physical memory space in said continuous physical memory;
- and
- mapping said first memory segment to said first contiguous physical memory space and said second memory segment to said second contiguous physical memory space in a translation lookaside buffer;
- wherein each of said memory segments is stored in one or more pages in said physical memory, each of said pages allocated for one of said memory segments, and wherein allocating memory comprises utilizing a maximum page size.
An apparatus comprising:
- a processor configured to reserve a plurality of memory segments in a continuous physical memory space, start one or more processes, identify first and second memory segments associated with said one or more processes in virtual memory, allocate memory for said first memory segment from a first contiguous physical memory space in said continuous physical memory, allocate memory for said second memory segment from a second contiguous physical memory space in said second continuous physical memory, and map said first memory segment to said first contiguous physical memory space and said second memory segment to said second contiguous physical memory space in a translation lookaside buffer;
- and
- memory for storing said translation lookaside buffer;
- wherein each of said memory segments is stored in one or more pages in said physical memory, each of said pages allocated for one of said memory segments, and wherein allocating memory comprises utilizing a maximum page size.
Logic encoded in one or more tangible media for execution and when executed operable to:
- reserve a plurality of memory segments in a continuous physical memory space;
- start one or more processes;
- identify first and second memory segments associated with said one or more processes in virtual memory;
- allocate memory for said first memory segment from a first contiguous physical memory space in said continuous physical memory;
- allocate memory for said second memory segment from a second contiguous physical memory space in said continuous physical memory;
- and
- map said first memory segment to said first contiguous physical memory space and said second memory segment to said second contiguous physical memory space in a translation lookaside buffer;
- wherein each of said memory segments is stored in one or more pages in said physical memory, each of said pages allocated for one of said memory segments, and wherein allocating memory comprises utilizing a maximum page size.
Dependencies are inferred from the claim text.