US20010021969A1 - Method and apparatus for pre-validating regions in a virtual addressing scheme - Google Patents
Method and apparatus for pre-validating regions in a virtual addressing scheme Download PDFInfo
- Publication number
- US20010021969A1 US20010021969A1 US09/850,878 US85087801A US2001021969A1 US 20010021969 A1 US20010021969 A1 US 20010021969A1 US 85087801 A US85087801 A US 85087801A US 2001021969 A1 US2001021969 A1 US 2001021969A1
- Authority
- US
- United States
- Prior art keywords
- region
- field
- tlb
- virtual
- vrn
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
Definitions
- the present invention relates to memory organization in computer systems. More specifically, the present invention relates to virtual memory systems that supports regions, and the process by which virtual addresses are translated to physical addresses.
- Virtual memory which simulates more logical memory than physical memory actually present and allows the computer to run several programs concurrently, regardless of their size.
- Concurrent user programs access main memory physical addresses via virtual addresses assigned by the operating system.
- the mapping of the virtual addresses to the main memory physical addresses is a process known as virtual address translation.
- Virtual address translation can be accomplished by any number of techniques, thereby allowing the processor to access the desired information in main memory.
- the virtual address and physical address spaces are typically divided into equal size blocks of memory called pages, and a page table provides the translation between virtual addresses and physical addresses.
- Each page table entry typically contains the virtual address and/or the physical address, and protection and status information concerning the page.
- Status information typically includes information about the type of accesses the page has undergone. For example, a dirty bit indicates there has been a modification to data in the page. Because the page tables are usually large, they are stored in memory. Therefore each regular memory access can actually require at least two accesses, one to obtain the translation and a second to access the physical memory location.
- TLB translation lookaside buffer
- the TLB is typically a small, fast, associative memory which is usually situated on or in close proximity to the processor unit and stores recently used pairs of virtual and physical addresses.
- the TLB contains a subset of the translations in the page table and can be accessed much more quickly.
- the processing unit needs information from main memory, it sends the virtual address to the TLB.
- the TLB accepts the virtual address page number and returns a physical page number. The physical page number is combined with low order address information to access the desired byte or word in main memory.
- the TLB cannot contain the entire page table. Accordingly, when a virtual page is accessed and the translation is not in the TLB, the page table is accessed to determine the translation of the virtual page number to a physical page number, and this information is entered in the TLB. Access to the page table can take twenty times longer than access to the TLB, and therefore program execution speed is optimized by keeping the translations being utilized in the TLB.
- Regions provide the capability to effectively create independent local, shared and global address spaces within the virtual address space by dividing the virtual address space into equally sized regions. Typically, only a subset of regions can be active at any time. Associated with each region is a region identifier, which uniquely tags address translations of given regions. If the region identifier for a region is assigned to a particular process, this region space becomes local to that process. If the region identifier for a region is shared among processes, this region space becomes shared. If the region identifier for a region is shared by all processes, this region becomes global. Changing the region identifiers for the local regions effectively swaps virtual addresses from the local space of one process to the local space on another process. Thus, regions virtually eliminate the need to flush the TLB when switching process, thereby improving overall system performance.
- Regions are typically supported in the TLB by region registers that map virtual region number bits (which are part of the virtual address) to region identifiers.
- the region registers require an additional look-up step to be performed before determining whether the translation for a virtual address is in the TLB. This additional look-up step sometimes becomes a critical path in the virtual-to-physical translation process. Accordingly, performance would be enhanced if this additional look-up step could be eliminated.
- the present invention is a method and apparatus for pre-validating regions in a virtual addressing scheme.
- regions are pre-validated by storing both the virtual region identifier bits and region identifiers in translation lookaside buffer (TLB) entries.
- TLB translation lookaside buffer
- a TLB in accordance with the present invention includes entries having a valid field, a region pre-validation valid (rpV) field, a virtual region number (VRN) field, a virtual page number (VPN) field, a region identifier (RID) field, a protection and access attributes field, and a physical page number (PPN) field.
- rpV region pre-validation valid
- VRN virtual region number
- VPN virtual page number
- RID region identifier
- PPN physical page number
- a set of region registers contains the RIDs that are active at any given time. However, the region registers are not in the path of the TLB look-up process.
- the RID and VRN are stored in the appropriate fields of the TLB entry.
- the valid field is set and the rpV field is set to indicate that the TLB entry contains an active VRN-to-RID mapping, thereby pre-validating the region.
- a VRN and a VPN are extracted from the virtual address and provided to the TLB.
- the TLB is searched to find an entry having a set valid field, a set rpV field, and VRN and VPN fields containing entries matching the VRN and VPN extracted from the virtual address. If such an entry is found, the protection and access attributes field is used to determine whether the requested access should be allowed. If the requested access is allowed, the PPN from the PPN field of the TLB entry is combined with an offset from the virtual address to produce a physical address that is used to complete the memory access. Since the path through the region registers has been eliminated because the contents of the region registers have been “pre-validated” in the entries of the TLB, the speed of the virtual-to-physical look-up process is increased.
- FIG. 1 shows a 64-bit virtual addressing scheme that supports 2 24 virtual regions with each region having 2 61 bytes, with eight of the regions active at any given time.
- FIG. 2 shows a prior art virtual-to-physical translation scheme used in prior art CPUs.
- FIG. 3 shows a virtual-to-physical translation scheme in accordance with the present invention.
- the present invention is a method and apparatus for pre-validating regions in a virtual addressing scheme.
- regions are pre-validated by storing both the virtual region number (VRN) bits and region identifier (RID) in a translation lookaside buffer (TLB) entry.
- VRN virtual region number
- RID region identifier
- TLB translation lookaside buffer
- Virtual address 11 is a 64-bit address.
- the upper three bits form a virtual region number (VRN) 12 . Accordingly, eight regions can be specified by a virtual address at any given time.
- the remaining 61 bits of virtual address 11 are used to address memory within each region, thereby providing each region with 2 61 bytes of virtual memory.
- Associated with each memory page (such as page 14) is a 24-bit region identifier (RID). Therefore, the operating system can assign up to 2 24 individual virtual address spaces.
- RID region identifier
- FIG. 2 shows a prior art virtual-to-physical translation scheme 15 used in prior art CPUs.
- a prior art CPU using scheme 15 when the CPU translates a virtual address to a physical address, the three bits of VRN 12 are used to select one of the eight region registers 20 .
- the RID contained within the selected region register is provided to TLB 22 .
- VPN virtual page number
- Offset 18 simply represents the bytes within a page. Therefore, if the page size is 4 kilobytes, the offset will be 12 bits and the VPN will be 41 bits. If the page size is 64 kilobytes, the offset will be 16 bits and the VPN will be 45 bits.
- Each entry of TLB 22 includes valid field 24 , RID field 26 , protection and access attributes field 30 , and physical page number (PPN) field 32 .
- Valid field 24 simply indicates whether the entry is valid, and therefore is in use. If valid field 24 is cleared to indicate that the entry is not in use, then the entry is available to receive a new translation.
- RID field 26 stores the RID associated with the virtual page.
- VPN field 28 stores the virtual page associated with the virtual-to-physical translation.
- Protection and access attributes field 30 contains protection and access information, including a “dirty” bit, cache policy, whether read, write, and execute privileges have been granted, and similar protection and access information known in the art.
- each entry of TLB 22 includes a physical page number (PPN) field 32 , which in combination with VPN field 28 represents the virtual-to-physical translation.
- PPN physical page number
- the RID from the selected register of region registers 20 is provided to TLB 22 .
- VPN 16 is provided to TLB 22 .
- Entries of TLB 22 having valid field 24 set to indicate a valid TLB entry are then searched. If any of the searched entries produce a match between the RID provided by the selected register of region registers 20 and the contents of RID field 26 , and also produce a match between VPN 16 from virtual address 11 and the contents of VPN field 28 , then a matching TLB entry has been found.
- the protection and access information from protection and access attributes 30 of the matching entry is provided to decision block 38 . Decision block 38 determines whether the requested access is allowed. If it is, the PPN from PPN field 32 of the matching entry is combined with offset 18 of virtual address 11 to produce a physical address at physical address block 40 . The physical address provided by block 40 is then used to complete the memory access.
- TLB 22 is searched to find an entry having valid field 24 set, and a RID field 26 and a VPN field 28 having entries that match the virtual-to-physical translation to be purged. If such an entry is found, valid field 24 of that entry is cleared. Also note that the path from virtual address 11 through region registers 20 to TLB 22 is longer than the path from virtual address 11 to TLB 22 . In many CPUs, the path through the region registers is a critical path, thereby limiting system performance.
- FIG. 3 shows a virtual-to-physical translation scheme 42 in accordance with the present invention.
- TLB searches are performed more quickly because the critical path through the region registers has been eliminated.
- TLB 46 includes valid field 48 , region pre-validation valid (rpV) field 50 , VRN field 52 , VPN field 54 , RID field 56 , protection and access attributes field 58 , and PPN field 60 .
- Region registers 44 contain the regions that are valid at any given time. However, region register 44 is not in the path of the TLB look-up process. Similar to valid field 24 of TLB 22 in FIG. 2, valid field 48 indicates whether the entry is valid, and therefore is in use. If valid field 48 is cleared to indicate that the entry is not in use, than the entry is available to receive a new translation.
- the functionality provided by VPN field 54 , protection and access attributes field 58 , and PPN field 60 is similar to the functionality provided by VPN field 28 , protection and access attributes field 30 , and PPN field 32 , respectively, of TLB 22 of FIG. 1.
- rpV field 50 When a virtual-to-physical entry is established for a page in a region having a RID stored in one of the region registers 44 , the RID stored in the region register indexed by VRN 12 is stored in RID field 56 , and VRN 12 itself is stored in VRN field 52 . Furthermore, rpV field 50 is set to indicate that the TLB entry contains a VRN-to-RID mapping that is currently active in region registers 44 , thereby pre-validating the region. In addition, valid field 48 is set, VPN 16 is stored in VPN field 54 , protection and access information is stored in protection and access attributes field 58 , and the physical page number is stored in PPN field 60 .
- TLB 46 When a CPU in accordance with the present invention translates a physical address to a virtual address, VRN 12 and VPN 16 are provided directly to TLB 46 .
- TLB 46 is searched to find an entry having valid field 48 set, rpV field 50 set, a VRN entry in VRN field 52 that matches VRN 12 , and a VPN entry in VPN field 54 that matches VPN 16 .
- RID field 56 is not searched. If such an entry is found, the protection and access information from protection and access attributes 58 of the entry is provided to decision block 38 .
- Decision block 38 determines whether the requested access is allowed. If it is, the PPN from PPN field 60 of the entry is combined with offset 18 of virtual address 11 to produce a physical address at physical address block 40 . The physical address provided by block 40 is then used to complete the memory access. Note that the path through the region registers has been eliminated because the contents of the region registers have been “pre-validated” in the entries of TLB 46 .
- TLB 46 is searched to find an entry having valid field 48 set, and a RID field 56 and a VPN field 54 having entries that match the virtual-to-physical translation to be purged. If such an entry is found, valid field 46 of that entry is cleared.
- the present invention eliminates the path through the region registers during the translation look-tip process, there is a minor performance penalty incurred when writing to the region registers.
- the RID is simply inserted into the appropriate region register. Entries in TLB 22 matching the RID displaced from the region register can no longer be accessed because the look-tip path goes through region registers 20 , and the displaced RID is no longer present. If the displaced RID is later restored to the region register, it is simply reinserted and the TLB entry will again be accessed.
- the look-up path does not go through region registers 44 in FIG. 3. Therefore, when it is desired to insert a new RID into one of the region registers 44 , TLB 46 must be searched to find all entries having a valid field 48 set and a VRN contained in VRN field 52 that corresponds with the region register receiving the new RID. Next the RID fields 56 of all entries in TLB 46 that match the VRN are compared to the new RID. If the RIDs match, rpV field 50 is set to pre-validate the region. If the RIDs do not match, rpV field 50 is cleared to de-validate the region.
- CAMs content addressable memories
- CAMs may be used to implement RID fields 26 and VPN fields 28 of TLB 22 in FIG. 2, and VRN fields 52 , VPN fields 54 , and RID fields 56 of TLB 46 in FIG. 3.
- fields that are searched more frequently are implemented using fast CAMs, while fields that are searched less frequently are implemented using slow CAMs.
- Fast CANs tend to require more circuitry than slow CAMs, and thereby consume more transistors on the integrated circuit containing the TLB.
- One advantage provided by the present invention is that the number of fast CAMs can be reduced.
- RID fields 26 are part of the critical translation look-up path.
- RID fields 26 are not part of the critical translation look-up path, but VRN fields 52 are. Since an RID is 24 bits, and a VRN is 3 bits, the present invention reduces the number of bits requiring fast CAMs by 21 bits per entry. RID fields 56 may be implemented using slow CAMs because the RID fields 56 are only searched during a TLB purge, or when region registers 44 are being updated. Both of these operations occur much less frequently than virtual-to-physical translations.
- the present invention provides a method and apparatus for increasing the performance of virtual-to-physical translations by removing region registers from the look-up path during virtual-to-physical translations. Instead, regions are pre-validated by storing the VRN in the TLB entry and setting a rpV field, thereby allowing VRN and VPN fields to be searched in parallel and increasing the speed of the virtual-to-physical look-up process.
Abstract
A method and apparatus pre-validate regions in a virtual addressing scheme by storing both the virtual region number (VRN) bits and region identifiers (RIDs) in translation lookaside buffer (TLB) entries. By storing both the VRN bits and RIDs in TLB entries, the region registers can be bypassed when performing most TLB accesses, thereby removing region registers the critical path of the TLB look-up process and enhancing system performance. A TLB in accordance with the present invention includes entries having a valid field, a region pre-validation valid (rpV) field, a virtual region number (VRN) field, a virtual page number (VPN) field, a region identifier (RID) field, a protection and access attributes field, and a physical page number (PPN) field. In addition, a set of region registers contains the RIDs that are active at any given time. When a virtual-to-physical entry is established for a page in a region having an RID stored in a region register, the RID and VRN are stored in the appropriate fields of the TLB entry. In addition, the valid field is set and the rpV field is set to indicate that the TLB entry contains an active VRN-to-RID mapping, thereby pre-validating the region. When a physical address is translated into a virtual address, a VRN and a VPN are extracted from the virtual address and provided to the TLB. The TLB is searched to find an entry having a set valid field, a set rpV field, and VRN and VPN fields containing entries matching the VRN and VPN extracted from the virtual address. If such an entry is found, the protection and access attributes field is used to determine whether the requested access is allowed. If the requested access is allowed, the PPN from the PPN field of the TLB entry is combined with an offset from the virtual address to produce a physical address that is used to complete the memory access.
Description
- The present invention relates to memory organization in computer systems. More specifically, the present invention relates to virtual memory systems that supports regions, and the process by which virtual addresses are translated to physical addresses.
- Many prior art computer systems use a technique called virtual memory, which simulates more logical memory than physical memory actually present and allows the computer to run several programs concurrently, regardless of their size. Concurrent user programs access main memory physical addresses via virtual addresses assigned by the operating system. The mapping of the virtual addresses to the main memory physical addresses is a process known as virtual address translation. Virtual address translation can be accomplished by any number of techniques, thereby allowing the processor to access the desired information in main memory.
- The virtual address and physical address spaces are typically divided into equal size blocks of memory called pages, and a page table provides the translation between virtual addresses and physical addresses. Each page table entry typically contains the virtual address and/or the physical address, and protection and status information concerning the page. Status information typically includes information about the type of accesses the page has undergone. For example, a dirty bit indicates there has been a modification to data in the page. Because the page tables are usually large, they are stored in memory. Therefore each regular memory access can actually require at least two accesses, one to obtain the translation and a second to access the physical memory location.
- Many computer systems that support virtual address translation use a translation lookaside buffer (TLB). The TLB is typically a small, fast, associative memory which is usually situated on or in close proximity to the processor unit and stores recently used pairs of virtual and physical addresses. The TLB contains a subset of the translations in the page table and can be accessed much more quickly. When the processing unit needs information from main memory, it sends the virtual address to the TLB. The TLB accepts the virtual address page number and returns a physical page number. The physical page number is combined with low order address information to access the desired byte or word in main memory.
- In most cases the TLB cannot contain the entire page table. Accordingly, when a virtual page is accessed and the translation is not in the TLB, the page table is accessed to determine the translation of the virtual page number to a physical page number, and this information is entered in the TLB. Access to the page table can take twenty times longer than access to the TLB, and therefore program execution speed is optimized by keeping the translations being utilized in the TLB.
- Some computers expand the virtual addressing concept by supporting regions. Regions provide the capability to effectively create independent local, shared and global address spaces within the virtual address space by dividing the virtual address space into equally sized regions. Typically, only a subset of regions can be active at any time. Associated with each region is a region identifier, which uniquely tags address translations of given regions. If the region identifier for a region is assigned to a particular process, this region space becomes local to that process. If the region identifier for a region is shared among processes, this region space becomes shared. If the region identifier for a region is shared by all processes, this region becomes global. Changing the region identifiers for the local regions effectively swaps virtual addresses from the local space of one process to the local space on another process. Thus, regions virtually eliminate the need to flush the TLB when switching process, thereby improving overall system performance.
- Regions are typically supported in the TLB by region registers that map virtual region number bits (which are part of the virtual address) to region identifiers. The region registers require an additional look-up step to be performed before determining whether the translation for a virtual address is in the TLB. This additional look-up step sometimes becomes a critical path in the virtual-to-physical translation process. Accordingly, performance would be enhanced if this additional look-up step could be eliminated.
- The present invention is a method and apparatus for pre-validating regions in a virtual addressing scheme. In accordance with the present invention, regions are pre-validated by storing both the virtual region identifier bits and region identifiers in translation lookaside buffer (TLB) entries. By storing both the virtual region identifier bits and region identifiers in TLB entries, the region registers can be bypassed when performing most TLB accesses. Accordingly, the region registers are removed from the critical path of the TLB look-up process and system performance is enhanced.
- A TLB in accordance with the present invention includes entries having a valid field, a region pre-validation valid (rpV) field, a virtual region number (VRN) field, a virtual page number (VPN) field, a region identifier (RID) field, a protection and access attributes field, and a physical page number (PPN) field. In addition, a set of region registers contains the RIDs that are active at any given time. However, the region registers are not in the path of the TLB look-up process.
- When a virtual-to-physical entry is established for a page in a region having an RID stored in a region register, the RID and VRN are stored in the appropriate fields of the TLB entry. In addition, the valid field is set and the rpV field is set to indicate that the TLB entry contains an active VRN-to-RID mapping, thereby pre-validating the region.
- When a CPU in accordance with the present invention translates a physical address to a virtual address, a VRN and a VPN are extracted from the virtual address and provided to the TLB. The TLB is searched to find an entry having a set valid field, a set rpV field, and VRN and VPN fields containing entries matching the VRN and VPN extracted from the virtual address. If such an entry is found, the protection and access attributes field is used to determine whether the requested access should be allowed. If the requested access is allowed, the PPN from the PPN field of the TLB entry is combined with an offset from the virtual address to produce a physical address that is used to complete the memory access. Since the path through the region registers has been eliminated because the contents of the region registers have been “pre-validated” in the entries of the TLB, the speed of the virtual-to-physical look-up process is increased.
- FIG. 1 shows a 64-bit virtual addressing scheme that supports 224 virtual regions with each region having 261 bytes, with eight of the regions active at any given time.
- FIG. 2 shows a prior art virtual-to-physical translation scheme used in prior art CPUs.
- FIG. 3 shows a virtual-to-physical translation scheme in accordance with the present invention.
- The present invention is a method and apparatus for pre-validating regions in a virtual addressing scheme. In essence, regions are pre-validated by storing both the virtual region number (VRN) bits and region identifier (RID) in a translation lookaside buffer (TLB) entry. By storing both the VRN and RID in a TLB entry, the region registers can be bypassed when performing most TLB accesses. Accordingly, the region registers are removed from the critical path of the TLB look-up process and system performance is enhanced.
- Before discussing the invention in greater detail, first consider the
virtual addressing scheme 10 shown in FIG. 1. Virtual address 11 is a 64-bit address. The upper three bits form a virtual region number (VRN) 12. Accordingly, eight regions can be specified by a virtual address at any given time. The remaining 61 bits of virtual address 11 are used to address memory within each region, thereby providing each region with 261 bytes of virtual memory. Associated with each memory page (such as page 14) is a 24-bit region identifier (RID). Therefore, the operating system can assign up to 224 individual virtual address spaces. - FIG. 2 shows a prior art virtual-to-
physical translation scheme 15 used in prior art CPUs. In a prior artCPU using scheme 15, when the CPU translates a virtual address to a physical address, the three bits ofVRN 12 are used to select one of the eight region registers 20. The RID contained within the selected region register is provided toTLB 22. - The remaining 61 bits of virtual address11 are divided between virtual page number (VPN) 16 and offset 18. Offset 18 simply represents the bytes within a page. Therefore, if the page size is 4 kilobytes, the offset will be 12 bits and the VPN will be 41 bits. If the page size is 64 kilobytes, the offset will be 16 bits and the VPN will be 45 bits.
- Each entry of
TLB 22 includes valid field 24, RIDfield 26, protection and access attributesfield 30, and physical page number (PPN)field 32. Valid field 24 simply indicates whether the entry is valid, and therefore is in use. If valid field 24 is cleared to indicate that the entry is not in use, then the entry is available to receive a new translation. - RID
field 26 stores the RID associated with the virtual page.VPN field 28 stores the virtual page associated with the virtual-to-physical translation. Protection and access attributesfield 30 contains protection and access information, including a “dirty” bit, cache policy, whether read, write, and execute privileges have been granted, and similar protection and access information known in the art. Finally, each entry ofTLB 22 includes a physical page number (PPN)field 32, which in combination withVPN field 28 represents the virtual-to-physical translation. - As discussed above, the RID from the selected register of region registers20 is provided to
TLB 22. In addition,VPN 16 is provided toTLB 22. Entries ofTLB 22 having valid field 24 set to indicate a valid TLB entry are then searched. If any of the searched entries produce a match between the RID provided by the selected register of region registers 20 and the contents ofRID field 26, and also produce a match betweenVPN 16 from virtual address 11 and the contents ofVPN field 28, then a matching TLB entry has been found. The protection and access information from protection and access attributes 30 of the matching entry is provided todecision block 38.Decision block 38 determines whether the requested access is allowed. If it is, the PPN fromPPN field 32 of the matching entry is combined with offset 18 of virtual address 11 to produce a physical address atphysical address block 40. The physical address provided byblock 40 is then used to complete the memory access. - Note that in prior-art virtual-to-
physical translation scheme 15, when a TLB entry is to be purged fromTLB 22,TLB 22 is searched to find an entry having valid field 24 set, and aRID field 26 and aVPN field 28 having entries that match the virtual-to-physical translation to be purged. If such an entry is found, valid field 24 of that entry is cleared. Also note that the path from virtual address 11 through region registers 20 toTLB 22 is longer than the path from virtual address 11 toTLB 22. In many CPUs, the path through the region registers is a critical path, thereby limiting system performance. - FIG. 3 shows a virtual-to-
physical translation scheme 42 in accordance with the present invention. In virtual-to-physical translation scheme 42, TLB searches are performed more quickly because the critical path through the region registers has been eliminated. - In FIG. 3,
TLB 46 includesvalid field 48, region pre-validation valid (rpV)field 50,VRN field 52,VPN field 54, RIDfield 56, protection and access attributesfield 58, andPPN field 60. Region registers 44 contain the regions that are valid at any given time. However, region register 44 is not in the path of the TLB look-up process. Similar to valid field 24 ofTLB 22 in FIG. 2,valid field 48 indicates whether the entry is valid, and therefore is in use. Ifvalid field 48 is cleared to indicate that the entry is not in use, than the entry is available to receive a new translation. In addition, the functionality provided byVPN field 54, protection and access attributesfield 58, andPPN field 60 is similar to the functionality provided byVPN field 28, protection and access attributesfield 30, andPPN field 32, respectively, ofTLB 22 of FIG. 1. - In contrast, the functionality provided by
rpV field 50,VRN field 52, and RIDfield 56 is different. When a virtual-to-physical entry is established for a page in a region having a RID stored in one of the region registers 44, the RID stored in the region register indexed byVRN 12 is stored inRID field 56, andVRN 12 itself is stored inVRN field 52. Furthermore,rpV field 50 is set to indicate that the TLB entry contains a VRN-to-RID mapping that is currently active in region registers 44, thereby pre-validating the region. In addition,valid field 48 is set,VPN 16 is stored inVPN field 54, protection and access information is stored in protection and access attributesfield 58, and the physical page number is stored inPPN field 60. - When a CPU in accordance with the present invention translates a physical address to a virtual address,
VRN 12 andVPN 16 are provided directly toTLB 46.TLB 46 is searched to find an entry havingvalid field 48 set,rpV field 50 set, a VRN entry inVRN field 52 that matchesVRN 12, and a VPN entry inVPN field 54 that matchesVPN 16. Note thatRID field 56 is not searched. If such an entry is found, the protection and access information from protection and access attributes 58 of the entry is provided todecision block 38.Decision block 38 determines whether the requested access is allowed. If it is, the PPN fromPPN field 60 of the entry is combined with offset 18 of virtual address 11 to produce a physical address atphysical address block 40. The physical address provided byblock 40 is then used to complete the memory access. Note that the path through the region registers has been eliminated because the contents of the region registers have been “pre-validated” in the entries ofTLB 46. - Similar to prior-art virtual-to-
physical translation scheme 15, when a TLB entry is to be purged from theTLB 46,TLB 46 is searched to find an entry havingvalid field 48 set, and aRID field 56 and aVPN field 54 having entries that match the virtual-to-physical translation to be purged. If such an entry is found,valid field 46 of that entry is cleared. - While the present invention eliminates the path through the region registers during the translation look-tip process, there is a minor performance penalty incurred when writing to the region registers. With reference to prior-art virtual-to-
physical translation scheme 15 of FIG. 2, when it is desired to insert a different RID into one of the region registers 20, the RID is simply inserted into the appropriate region register. Entries inTLB 22 matching the RID displaced from the region register can no longer be accessed because the look-tip path goes through region registers 20, and the displaced RID is no longer present. If the displaced RID is later restored to the region register, it is simply reinserted and the TLB entry will again be accessed. - In contrast, the look-up path does not go through region registers44 in FIG. 3. Therefore, when it is desired to insert a new RID into one of the region registers 44,
TLB 46 must be searched to find all entries having avalid field 48 set and a VRN contained inVRN field 52 that corresponds with the region register receiving the new RID. Next theRID fields 56 of all entries inTLB 46 that match the VRN are compared to the new RID. If the RIDs match,rpV field 50 is set to pre-validate the region. If the RIDs do not match,rpV field 50 is cleared to de-validate the region. While changing active regions is somewhat slower in virtual-to-physical translation scheme 42 of the present invention compared to prior-art virtual-to-physical translation scheme 15, overall performance is greatly improved by removing the region registers from the look-up paths because virtual-to-physical translations occur much more frequently than updates to the region registers. - It is known in the art to use content addressable memories (CAMs) to implement the fields that are searched. For example, CAMs may be used to implement
RID fields 26 andVPN fields 28 ofTLB 22 in FIG. 2, and VRN fields 52, VPN fields 54, and RIDfields 56 ofTLB 46 in FIG. 3. Typically fields that are searched more frequently are implemented using fast CAMs, while fields that are searched less frequently are implemented using slow CAMs. Fast CANs tend to require more circuitry than slow CAMs, and thereby consume more transistors on the integrated circuit containing the TLB. One advantage provided by the present invention is that the number of fast CAMs can be reduced. In FIG. 2, RIDfields 26 are part of the critical translation look-up path. Accordingly, it is desirable to implementRID fields 26 using fast CAMs. In contrast, RIDfields 56 are not part of the critical translation look-up path, but VRN fields 52 are. Since an RID is 24 bits, and a VRN is 3 bits, the present invention reduces the number of bits requiring fast CAMs by 21 bits per entry.RID fields 56 may be implemented using slow CAMs because theRID fields 56 are only searched during a TLB purge, or when region registers 44 are being updated. Both of these operations occur much less frequently than virtual-to-physical translations. - In summary, the present invention provides a method and apparatus for increasing the performance of virtual-to-physical translations by removing region registers from the look-up path during virtual-to-physical translations. Instead, regions are pre-validated by storing the VRN in the TLB entry and setting a rpV field, thereby allowing VRN and VPN fields to be searched in parallel and increasing the speed of the virtual-to-physical look-up process.
- Although the present invention has been described with reference to preferred embodiments, workers skilled in the art will recognize that changes may be made in form and detail without departing from the spirit and scope of the invention.
Claims (1)
1. In a computer system having a plurality of region registers, with each region register capable of storing a region identifier and accessed by a unique virtual region number, a translation lookaside buffer comprising:
a plurality of translation lookaside buffer entries, with each entry including:
a physical page number field for storing a physical page number;
a virtual page number field for storing a virtual page number;
a virtual region number field for storing a virtual region number; and
a region pre-validated field, wherein when the region pre-validated field assumes a first state the translation lookaside buffer entry containing the region pre-validated field is pre-validated by associating an active virtual region number-to-region identifier mapping in the plurality of region registers with the translation lookaside buffer entry containing the region pre-validated field, and when the region pre-validated field assumes a second state the translation lookaside buffer entry containing the region pre-validated field de-validated by not associating the translation lookaside buffer entry containing the region pre-validated field with any region identifiers stored in the plurality of region registers.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/850,878 US6408373B2 (en) | 1998-10-12 | 2001-05-07 | Method and apparatus for pre-validating regions in a virtual addressing scheme |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/170,140 US6230248B1 (en) | 1998-10-12 | 1998-10-12 | Method and apparatus for pre-validating regions in a virtual addressing scheme |
US09/850,878 US6408373B2 (en) | 1998-10-12 | 2001-05-07 | Method and apparatus for pre-validating regions in a virtual addressing scheme |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/170,140 Continuation US6230248B1 (en) | 1998-10-12 | 1998-10-12 | Method and apparatus for pre-validating regions in a virtual addressing scheme |
Publications (2)
Publication Number | Publication Date |
---|---|
US20010021969A1 true US20010021969A1 (en) | 2001-09-13 |
US6408373B2 US6408373B2 (en) | 2002-06-18 |
Family
ID=22618705
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/170,140 Expired - Fee Related US6230248B1 (en) | 1998-10-12 | 1998-10-12 | Method and apparatus for pre-validating regions in a virtual addressing scheme |
US09/850,878 Expired - Fee Related US6408373B2 (en) | 1998-10-12 | 2001-05-07 | Method and apparatus for pre-validating regions in a virtual addressing scheme |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/170,140 Expired - Fee Related US6230248B1 (en) | 1998-10-12 | 1998-10-12 | Method and apparatus for pre-validating regions in a virtual addressing scheme |
Country Status (2)
Country | Link |
---|---|
US (2) | US6230248B1 (en) |
JP (1) | JP2000122927A (en) |
Cited By (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020082824A1 (en) * | 2000-12-27 | 2002-06-27 | Gilbert Neiger | Virtual translation lookaside buffer |
US20030120856A1 (en) * | 2000-12-27 | 2003-06-26 | Gilbert Neiger | Method for resolving address space conflicts between a virtual machine monitor and a guest operating system |
US6633963B1 (en) | 2000-03-31 | 2003-10-14 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
US6678825B1 (en) * | 2000-03-31 | 2004-01-13 | Intel Corporation | Controlling access to multiple isolated memories in an isolated execution environment |
GB2395588A (en) * | 1999-12-17 | 2004-05-26 | Hewlett Packard Co | Apparatus supporting multiple page sizes with address aliasing |
US20040117593A1 (en) * | 2002-12-12 | 2004-06-17 | Richard Uhlig | Reclaiming existing fields in address translation data structures to extend control over memory acceses |
US6754815B1 (en) | 2000-03-31 | 2004-06-22 | Intel Corporation | Method and system for scrubbing an isolated area of memory after reset of a processor operating in isolated execution mode if a cleanup flag is set |
US20040123288A1 (en) * | 2002-12-19 | 2004-06-24 | Intel Corporation | Methods and systems to manage machine state in virtual machine operations |
US6760441B1 (en) | 2000-03-31 | 2004-07-06 | Intel Corporation | Generating a key hieararchy for use in an isolated execution environment |
US6769058B1 (en) | 2000-03-31 | 2004-07-27 | Intel Corporation | Resetting a processor in an isolated execution environment |
US6795905B1 (en) | 2000-03-31 | 2004-09-21 | Intel Corporation | Controlling accesses to isolated memory using a memory controller for isolated execution |
US6820177B2 (en) | 2002-06-12 | 2004-11-16 | Intel Corporation | Protected configuration space in a protected environment |
US6957315B2 (en) * | 2000-08-21 | 2005-10-18 | Texas Instruments Incorporated | TLB lock and unlock operation |
US20050259696A1 (en) * | 2004-05-21 | 2005-11-24 | Steinman Maurice B | Methods and apparatuses to effect a variable-width link |
US6976162B1 (en) | 2000-06-28 | 2005-12-13 | Intel Corporation | Platform and method for establishing provable identities while maintaining privacy |
US7318141B2 (en) | 2002-12-17 | 2008-01-08 | Intel Corporation | Methods and systems to control virtual machines |
US20100100702A1 (en) * | 2007-06-20 | 2010-04-22 | Fujitsu Limited | Arithmetic processing apparatus, TLB control method, and information processing apparatus |
US7739521B2 (en) | 2003-09-18 | 2010-06-15 | Intel Corporation | Method of obscuring cryptographic computations |
US7793111B1 (en) | 2000-09-28 | 2010-09-07 | Intel Corporation | Mechanism to handle events in a machine with isolated execution |
US7802085B2 (en) | 2004-02-18 | 2010-09-21 | Intel Corporation | Apparatus and method for distributing private keys to an entity with minimal secret, unique information |
US7809957B2 (en) | 2005-09-29 | 2010-10-05 | Intel Corporation | Trusted platform module for generating sealed data |
US7818808B1 (en) | 2000-12-27 | 2010-10-19 | Intel Corporation | Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor |
US7836275B2 (en) | 2005-01-28 | 2010-11-16 | Intel Corporation | Method and apparatus for supporting address translation in a virtual machine environment |
US7840962B2 (en) | 2004-09-30 | 2010-11-23 | Intel Corporation | System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time |
US7861245B2 (en) | 2004-03-31 | 2010-12-28 | Intel Corporation | Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment |
US7900017B2 (en) | 2002-12-27 | 2011-03-01 | Intel Corporation | Mechanism for remapping post virtual machine memory pages |
US7921293B2 (en) | 2001-11-01 | 2011-04-05 | Intel Corporation | Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment |
US7984483B2 (en) | 2007-04-25 | 2011-07-19 | Acxess, Inc. | System and method for working in a virtualized computing environment through secure access |
US8014530B2 (en) | 2006-03-22 | 2011-09-06 | Intel Corporation | Method and apparatus for authenticated, recoverable key distribution with no database secrets |
US8037314B2 (en) | 2003-12-22 | 2011-10-11 | Intel Corporation | Replacing blinded authentication authority |
US8146078B2 (en) | 2004-10-29 | 2012-03-27 | Intel Corporation | Timer offsetting mechanism in a virtual machine environment |
US8156343B2 (en) | 2003-11-26 | 2012-04-10 | Intel Corporation | Accessing private data about the state of a data processing machine from storage that is publicly accessible |
US8185734B2 (en) | 2002-03-29 | 2012-05-22 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US8296762B2 (en) | 2003-06-26 | 2012-10-23 | Intel Corporation | Virtual machine management using processor state information |
US8386788B2 (en) | 2002-02-25 | 2013-02-26 | Intel Corporation | Method and apparatus for loading a trustable operating system |
US8533777B2 (en) | 2004-12-29 | 2013-09-10 | Intel Corporation | Mechanism to determine trust of out-of-band management agents |
US8543772B2 (en) | 2003-09-30 | 2013-09-24 | Intel Corporation | Invalidating translation lookaside buffer entries in a virtual machine (VM) system |
US8924728B2 (en) | 2004-11-30 | 2014-12-30 | Intel Corporation | Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information |
WO2016204766A1 (en) * | 2015-06-18 | 2016-12-22 | Hewlett Packard Enterprise Development Lp | Transmitting contents of an operation field to a media controller |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6526459B1 (en) * | 1999-11-10 | 2003-02-25 | Ati International Srl | Allocation of input/output bus address space to native input/output devices |
US6560689B1 (en) * | 2000-03-31 | 2003-05-06 | Intel Corporation | TLB using region ID prevalidation |
US6651156B1 (en) * | 2001-03-30 | 2003-11-18 | Mips Technologies, Inc. | Mechanism for extending properties of virtual memory pages by a TLB |
US6643759B2 (en) | 2001-03-30 | 2003-11-04 | Mips Technologies, Inc. | Mechanism to extend computer memory protection schemes |
US20020167537A1 (en) * | 2001-05-11 | 2002-11-14 | Miroslav Trajkovic | Motion-based tracking with pan-tilt-zoom camera |
US20030115476A1 (en) * | 2001-10-31 | 2003-06-19 | Mckee Bret | Hardware-enforced control of access to memory within a computer using hardware-enforced semaphores and other similar, hardware-enforced serialization and sequencing mechanisms |
US7234038B1 (en) * | 2004-05-28 | 2007-06-19 | Sun Microsystems, Inc. | Page mapping cookies |
US7562179B2 (en) | 2004-07-30 | 2009-07-14 | Intel Corporation | Maintaining processor resources during architectural events |
US8112597B2 (en) * | 2006-12-08 | 2012-02-07 | Microsoft Corporation | Critical memory |
US7949841B2 (en) * | 2006-12-08 | 2011-05-24 | Microsoft Corporation | Protection of critical memory using replication |
JP2009146344A (en) * | 2007-12-18 | 2009-07-02 | Hitachi Ltd | Tlb virtualization method of machine virtualization device, and machine virtualization program |
US9619398B1 (en) | 2009-08-20 | 2017-04-11 | Juniper Networks, Inc. | Methods and apparatus for improved access to shared memory |
US8429378B2 (en) | 2010-07-06 | 2013-04-23 | Qualcomm Incorporated | System and method to manage a translation lookaside buffer |
JP5541036B2 (en) * | 2010-09-21 | 2014-07-09 | 富士通株式会社 | Memory access control program, memory access control method, and information processing apparatus |
US9824015B2 (en) * | 2015-05-29 | 2017-11-21 | Qualcomm Incorporated | Providing memory management unit (MMU) partitioned translation caches, and related apparatuses, methods, and computer-readable media |
GB2570665B (en) * | 2018-01-31 | 2020-08-26 | Advanced Risc Mach Ltd | Address translation in a data processing apparatus |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2768503B2 (en) * | 1989-07-25 | 1998-06-25 | 富士通株式会社 | Virtual memory address space access control method |
US5835743A (en) * | 1994-06-30 | 1998-11-10 | Sun Microsystems, Inc. | Application binary interface and method of interfacing binary application program to digital computer |
US5940872A (en) * | 1996-11-01 | 1999-08-17 | Intel Corporation | Software and hardware-managed translation lookaside buffer |
US6065091A (en) * | 1997-05-30 | 2000-05-16 | Via-Cyrix, Inc. | Translation look-aside buffer slice circuit and method of operation |
US6044447A (en) * | 1998-01-30 | 2000-03-28 | International Business Machines Corporation | Method and apparatus for communicating translation command information in a multithreaded environment |
-
1998
- 1998-10-12 US US09/170,140 patent/US6230248B1/en not_active Expired - Fee Related
-
1999
- 1999-09-30 JP JP11278875A patent/JP2000122927A/en active Pending
-
2001
- 2001-05-07 US US09/850,878 patent/US6408373B2/en not_active Expired - Fee Related
Cited By (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2395588A (en) * | 1999-12-17 | 2004-05-26 | Hewlett Packard Co | Apparatus supporting multiple page sizes with address aliasing |
GB2395588B (en) * | 1999-12-17 | 2004-09-22 | Hewlett Packard Co | Apparatus and method for supporting multiple page sizes with address aliasing |
US6760441B1 (en) | 2000-03-31 | 2004-07-06 | Intel Corporation | Generating a key hieararchy for use in an isolated execution environment |
US6633963B1 (en) | 2000-03-31 | 2003-10-14 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
US6754815B1 (en) | 2000-03-31 | 2004-06-22 | Intel Corporation | Method and system for scrubbing an isolated area of memory after reset of a processor operating in isolated execution mode if a cleanup flag is set |
US6769058B1 (en) | 2000-03-31 | 2004-07-27 | Intel Corporation | Resetting a processor in an isolated execution environment |
US6795905B1 (en) | 2000-03-31 | 2004-09-21 | Intel Corporation | Controlling accesses to isolated memory using a memory controller for isolated execution |
US6678825B1 (en) * | 2000-03-31 | 2004-01-13 | Intel Corporation | Controlling access to multiple isolated memories in an isolated execution environment |
US6976162B1 (en) | 2000-06-28 | 2005-12-13 | Intel Corporation | Platform and method for establishing provable identities while maintaining privacy |
US6957315B2 (en) * | 2000-08-21 | 2005-10-18 | Texas Instruments Incorporated | TLB lock and unlock operation |
US8671275B2 (en) | 2000-09-28 | 2014-03-11 | Intel Corporation | Mechanism to handle events in a machine with isolated execution |
US7793111B1 (en) | 2000-09-28 | 2010-09-07 | Intel Corporation | Mechanism to handle events in a machine with isolated execution |
US8522044B2 (en) | 2000-09-28 | 2013-08-27 | Intel Corporation | Mechanism to handle events in a machine with isolated execution |
US20030120856A1 (en) * | 2000-12-27 | 2003-06-26 | Gilbert Neiger | Method for resolving address space conflicts between a virtual machine monitor and a guest operating system |
US20020082824A1 (en) * | 2000-12-27 | 2002-06-27 | Gilbert Neiger | Virtual translation lookaside buffer |
US7818808B1 (en) | 2000-12-27 | 2010-10-19 | Intel Corporation | Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor |
US7921293B2 (en) | 2001-11-01 | 2011-04-05 | Intel Corporation | Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment |
US8407476B2 (en) | 2002-02-25 | 2013-03-26 | Intel Corporation | Method and apparatus for loading a trustable operating system |
US8386788B2 (en) | 2002-02-25 | 2013-02-26 | Intel Corporation | Method and apparatus for loading a trustable operating system |
US9990208B2 (en) | 2002-03-29 | 2018-06-05 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US10031759B2 (en) | 2002-03-29 | 2018-07-24 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US8185734B2 (en) | 2002-03-29 | 2012-05-22 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US9361121B2 (en) | 2002-03-29 | 2016-06-07 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US10042649B2 (en) | 2002-03-29 | 2018-08-07 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US8645688B2 (en) | 2002-03-29 | 2014-02-04 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US10175994B2 (en) | 2002-03-29 | 2019-01-08 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US20050022002A1 (en) * | 2002-06-12 | 2005-01-27 | Poisner David I. | Protected configuration space in a protected environment |
US6820177B2 (en) | 2002-06-12 | 2004-11-16 | Intel Corporation | Protected configuration space in a protected environment |
US20040117593A1 (en) * | 2002-12-12 | 2004-06-17 | Richard Uhlig | Reclaiming existing fields in address translation data structures to extend control over memory acceses |
US7318141B2 (en) | 2002-12-17 | 2008-01-08 | Intel Corporation | Methods and systems to control virtual machines |
US20040123288A1 (en) * | 2002-12-19 | 2004-06-24 | Intel Corporation | Methods and systems to manage machine state in virtual machine operations |
US7900017B2 (en) | 2002-12-27 | 2011-03-01 | Intel Corporation | Mechanism for remapping post virtual machine memory pages |
US8195914B2 (en) | 2002-12-27 | 2012-06-05 | Intel Corporation | Mechanism for remapping post virtual machine memory pages |
US8296762B2 (en) | 2003-06-26 | 2012-10-23 | Intel Corporation | Virtual machine management using processor state information |
US7739521B2 (en) | 2003-09-18 | 2010-06-15 | Intel Corporation | Method of obscuring cryptographic computations |
US8751752B2 (en) | 2003-09-30 | 2014-06-10 | Intel Corporation | Invalidating translation lookaside buffer entries in a virtual machine system |
US8543772B2 (en) | 2003-09-30 | 2013-09-24 | Intel Corporation | Invalidating translation lookaside buffer entries in a virtual machine (VM) system |
US9087000B2 (en) | 2003-11-26 | 2015-07-21 | Intel Corporation | Accessing private data about the state of a data processing machine from storage that is publicly accessible |
US9348767B2 (en) | 2003-11-26 | 2016-05-24 | Intel Corporation | Accessing private data about the state of a data processing machine from storage that is publicly accessible |
US8156343B2 (en) | 2003-11-26 | 2012-04-10 | Intel Corporation | Accessing private data about the state of a data processing machine from storage that is publicly accessible |
US8037314B2 (en) | 2003-12-22 | 2011-10-11 | Intel Corporation | Replacing blinded authentication authority |
US9009483B2 (en) | 2003-12-22 | 2015-04-14 | Intel Corporation | Replacing blinded authentication authority |
US8639915B2 (en) | 2004-02-18 | 2014-01-28 | Intel Corporation | Apparatus and method for distributing private keys to an entity with minimal secret, unique information |
US7802085B2 (en) | 2004-02-18 | 2010-09-21 | Intel Corporation | Apparatus and method for distributing private keys to an entity with minimal secret, unique information |
US7861245B2 (en) | 2004-03-31 | 2010-12-28 | Intel Corporation | Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment |
US8204067B2 (en) | 2004-05-21 | 2012-06-19 | Intel Corporation | Technique for lane virtualization |
US7957428B2 (en) * | 2004-05-21 | 2011-06-07 | Intel Corporation | Methods and apparatuses to effect a variable-width link |
US20050259696A1 (en) * | 2004-05-21 | 2005-11-24 | Steinman Maurice B | Methods and apparatuses to effect a variable-width link |
US7840962B2 (en) | 2004-09-30 | 2010-11-23 | Intel Corporation | System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time |
US8146078B2 (en) | 2004-10-29 | 2012-03-27 | Intel Corporation | Timer offsetting mechanism in a virtual machine environment |
US8924728B2 (en) | 2004-11-30 | 2014-12-30 | Intel Corporation | Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information |
US8533777B2 (en) | 2004-12-29 | 2013-09-10 | Intel Corporation | Mechanism to determine trust of out-of-band management agents |
US7836275B2 (en) | 2005-01-28 | 2010-11-16 | Intel Corporation | Method and apparatus for supporting address translation in a virtual machine environment |
US7809957B2 (en) | 2005-09-29 | 2010-10-05 | Intel Corporation | Trusted platform module for generating sealed data |
US8014530B2 (en) | 2006-03-22 | 2011-09-06 | Intel Corporation | Method and apparatus for authenticated, recoverable key distribution with no database secrets |
US7984483B2 (en) | 2007-04-25 | 2011-07-19 | Acxess, Inc. | System and method for working in a virtualized computing environment through secure access |
US20100100702A1 (en) * | 2007-06-20 | 2010-04-22 | Fujitsu Limited | Arithmetic processing apparatus, TLB control method, and information processing apparatus |
WO2016204766A1 (en) * | 2015-06-18 | 2016-12-22 | Hewlett Packard Enterprise Development Lp | Transmitting contents of an operation field to a media controller |
US10664410B2 (en) | 2015-06-18 | 2020-05-26 | Hewlett Packard Enterprise Development Lp | Transmitting contents of an operation field to a media controller |
Also Published As
Publication number | Publication date |
---|---|
US6230248B1 (en) | 2001-05-08 |
US6408373B2 (en) | 2002-06-18 |
JP2000122927A (en) | 2000-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6230248B1 (en) | Method and apparatus for pre-validating regions in a virtual addressing scheme | |
US10740249B2 (en) | Maintaining processor resources during architectural events | |
US5526504A (en) | Variable page size translation lookaside buffer | |
US6189074B1 (en) | Mechanism for storing system level attributes in a translation lookaside buffer | |
JP3278748B2 (en) | Method and apparatus for saving memory space | |
EP1096385B1 (en) | A method and apparatus for forming an entry address | |
US5940872A (en) | Software and hardware-managed translation lookaside buffer | |
US5257361A (en) | Method and apparatus for controlling one or more hierarchical memories using a virtual storage scheme and physical to virtual address translation | |
US6532528B1 (en) | Data processor and data processor system having multiple modes of address indexing and operation | |
EP0851357B1 (en) | Method and apparatus for preloading different default address translation attributes | |
US6088780A (en) | Page table walker that uses at least one of a default page size and a page size selected for a virtual address space to position a sliding field in a virtual address | |
US5584014A (en) | Apparatus and method to preserve data in a set associative memory device | |
US5754818A (en) | Architecture and method for sharing TLB entries through process IDS | |
US6012132A (en) | Method and apparatus for implementing a page table walker that uses a sliding field in the virtual addresses to identify entries in a page table | |
US5265227A (en) | Parallel protection checking in an address translation look-aside buffer | |
US6493812B1 (en) | Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache | |
JPH10177520A (en) | Data processor and data processing system | |
US6598050B1 (en) | Apparatus and method for limited data sharing in a multi-tasking system | |
US7181587B1 (en) | Mapping an arbitrary number of contiguous memory pages at an arbitrary alignment | |
GB2395588A (en) | Apparatus supporting multiple page sizes with address aliasing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
CC | Certificate of correction | ||
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
REMI | Maintenance fee reminder mailed | ||
LAPS | Lapse for failure to pay maintenance fees | ||
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20140618 |