Virtual memory allocation in a virtual address space having an inaccessible gap
First Claim
Patent Images
1. A virtual memory system comprising:
- a virtual address space formed by implementation of a subset of a full range of virtual addresses permitted by a virtual address size, such that the virtual address space has at least one gap of permanently inaccessible virtual addresses, among accessible virtual addresses within said virtual address space;
a virtual memory allocation routine, responsive to a request for allocation of additional page table entries for accessible virtual addresses by a currently executing process, said request including a byte length and associated with a first free virtual address, for providing a starting address of a range of additional accessible virtual addresses to said currently executing process;
a gap limit equal to a lowest virtual address greater than said permanently inaccessible range of virtual addresses within said virtual address space;
means, within said virtual memory allocation routine, for calculating an end address of said request equal to a sum of said first free virtual address plus said byte length; and
means, within said virtual memory allocation routine, for determining if said end address is within said permanently inaccessible range of virtual addresses, and for setting said starting address to said gap limit if said end address is within said permanently inaccessible range of virtual addresses.
3 Assignments
0 Petitions
Accused Products
Abstract
A new virtual memory system is disclosed having a virtual address space including a gap of inaccessible virtual addresses within the virtual address space. A new virtual memory allocation routine is disclosed providing a starting address of accessible virtual addresses allocated to a currently executing process in a response to a request. The accessible virtual addresses are virtually contiguous, and include no addresses from within the gap of inaccessible virtual addresses. A new virtual memory deallocation routine is further disclosed providing deallocation of ranges of virtual addresses which may or may not include addresses within the inaccessible gap.
-
Citations
7 Claims
-
1. A virtual memory system comprising:
-
a virtual address space formed by implementation of a subset of a full range of virtual addresses permitted by a virtual address size, such that the virtual address space has at least one gap of permanently inaccessible virtual addresses, among accessible virtual addresses within said virtual address space; a virtual memory allocation routine, responsive to a request for allocation of additional page table entries for accessible virtual addresses by a currently executing process, said request including a byte length and associated with a first free virtual address, for providing a starting address of a range of additional accessible virtual addresses to said currently executing process; a gap limit equal to a lowest virtual address greater than said permanently inaccessible range of virtual addresses within said virtual address space; means, within said virtual memory allocation routine, for calculating an end address of said request equal to a sum of said first free virtual address plus said byte length; and means, within said virtual memory allocation routine, for determining if said end address is within said permanently inaccessible range of virtual addresses, and for setting said starting address to said gap limit if said end address is within said permanently inaccessible range of virtual addresses. - View Dependent Claims (2, 3, 4)
-
-
5. A virtual memory system comprising:
-
a virtual address format having a length of m bits, where bits 0 through n-1 of said m bits map said virtual address to a physical address, and where bits n through m-1 contain all zeros or all ones to match said value of bit n-1; a virtual address space having a range between a lowest virtual address of all zeros and a highest virtual address equal to all ones; a gap of permanently inaccessible virtual addresses, within said virtual address space, located between said highest virtual address and said lowest virtual address, and having a size equal to 2m-2n; and said virtual address space comprising a first system virtual address space and a second system virtual address space; said first system virtual address space defined between a first limit address value, and a second limit address value, and comprising a permanently inaccessible virtual address space region and a shared virtual address space region; said second system virtual address space comprising a first region and a second region; said first region located between said lowest virtual address of all zeros and a first region highest virtual address sequentially next to said first limit address value, wherein the bits n through m-1 of said first limit address value all have the same value as the n-1th bit of said first region highest virtual address value; said second region located between said highest virtual address of all ones and a second region lowest virtual address sequentially next to said second limit address value, wherein the bits n through m-1 of said second limit address value all have the same value as the n-1th bit of said second region lowest virtual address value; one of said first and second regions of said second system virtual address space defining a permanently inaccessible virtual address space region contiguous with said first system permanently inaccessible virtual address space region, and the other of said first and second regions of said second system virtual address space defining a shared access virtual address space region contiguous with said first system shared access virtual address space region; and a virtual memory allocation routine, responsive to a request for additional accessible virtual memory by a currently executing process, for providing a starting address of additional accessible virtual addresses.
-
-
6. A virtual memory system comprising:
-
a virtual address format having a length of m bits, where bits 0 through n-1 of said m bits map said virtual address to a physical address, and where bits n through m-1 contain all zeros or all ones to match said value of bit n-1; a virtual address space having a range between a lowest virtual address of all zeros and a highest virtual address equal to all ones; a gap of permanently inaccessible virtual addresses, within said virtual address space, located between said highest virtual address and said lowest virtual address, and having a size equal to 2m-2n; a virtual memory allocation routine, responsive to a request for additional accessible virtual memory by a currently executing process, for providing a starting address of additional accessible virtual addresses; said request for additional accessible virtual addresses including a byte length and a first free virtual address; a gap limit equal to a lowest virtual address greater than said permanently inaccessible range of virtual addresses within said virtual address space; means, within said virtual memory allocation routine, for calculating an end address of said request equal to the sum of said first free virtual address and said byte length; and means, within said virtual memory allocation routine, for determining if said end address is within said permanently inaccessible range of virtual addresses, and for writing said gap limit value to said starting address if said end address is within said permanently inaccessible range of virtual addresses. - View Dependent Claims (7)
-
Specification