GB2260629A - A segment descriptor cache for a microprocessor - Google Patents

A segment descriptor cache for a microprocessor Download PDF

Info

Publication number
GB2260629A
GB2260629A GB9216731A GB9216731A GB2260629A GB 2260629 A GB2260629 A GB 2260629A GB 9216731 A GB9216731 A GB 9216731A GB 9216731 A GB9216731 A GB 9216731A GB 2260629 A GB2260629 A GB 2260629A
Authority
GB
United Kingdom
Prior art keywords
descriptor
segment
format
selector
array
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
Application number
GB9216731A
Other versions
GB9216731D0 (en
GB2260629B (en
Inventor
Gary N Hammond
Pradeep Dubey
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of GB9216731D0 publication Critical patent/GB9216731D0/en
Publication of GB2260629A publication Critical patent/GB2260629A/en
Application granted granted Critical
Publication of GB2260629B publication Critical patent/GB2260629B/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

An improved memory segmentation system in a microprocessor, for generating a segment descriptor based on a segment selector, comprises an associative descriptor cache 570 to retain previously fetched, unscrambled, and tested descriptors for subsequent access by the same selectors. If on a memory access the descriptor is not found in the descriptor cache, the selector 501 is used to fetch a scrambled, raw descriptor from memory 530. The scrambled descriptor is then unscrambled at 550 before loading into a segment register 560. The same unscrambled descriptor is also used to update the descriptor cache 570 such that it may be found in the future. The descriptor unscrambling is necessitated by provision of backward compatibility with prior processor architectures. <IMAGE>

Description

-% ') 1 3 5 n - Z_ J A SEGENT DESCRIPTOR CACHE FOR A MICROPROCESSOR
DACKGRO NI? QE THE INVENTIQ14 The present invention relates to memory management systems for computers and more specifically, to memory segmentation systems for microprocessors with increased data access speed and efficiency.
2. ART 13ACKGRQUND:
Memory management is a hardware mechanism which lets operating systems create simplified environments for running programs such that when several programs are running at the same time, they may each be given an independent address space to avoid interference with each other. Memory management typically consists of segmentation and paging. Segmentation is used to give each program several independent, protected address spaces ("segments"). Paging is used to support an environment where large address spaces are simulated using a small amount of random access memory ("RAM") and some disk storage. System designers may choose to use either or both of these mechanisms. When several programs are running at the same time, either mechanism can be used to protect programs against interference from other programs.
Segmentation allows memory to be completely unstructured and simple, like the memory model of a simple 8-bit processor. or highly structured with address translation and protection. Each segment is an independent, protected address space. Access to seoments is controlled by data which describes its size, the privilege level required to access it, the kinds of memory references which can be made to it (instruction fetch, stack push or pop, read operation, write operation, etc.), and whether it is present in memory.
Reference is now made to Fig. 1(a), where a pictorial representation of nieniory address translation mechanism is shown. Segmentation mechanism 105 translates segmented (logical) address 100 into an address for a continuous, unsegmented address space, called linear address 110. If paging is enabled, paging mechanism 115 translates linear address 110 into physical address 120. If paging 115 is not enabled, linear address 110 is used as physical address 120. Physical address 120 ultimately appears on the address bus coming out of the processor.
An example of a memory management system can be found implemented in the i486"m microprocessors manufactured by Intel Corporation of Santa Clara, California, the Assignee of the present application. In the 1486TM' microprocessors, a logical address consists of the 16-bit segment selector for its segment and a 32-bit offset into the segment. With reference to rig. i(a), logical address 100 is translated into linear address 110 by adding offset 101 to base address 103 of the segment. Base address 103 is derived from segment descriptor 104, which is a data structure in memory which provides the size and location of a segment, as well as access control information. For example, the segment descriptor in a i486Tm microprocessor comes from one of two tables, the global descriptor table (GDT) or the local descriptor table (LDT). There is one GDT for all programs in the system, and one LDT for each separate - program or task being run. If the operating system allows, different programs can share the same LDT. The system also may be set up with no LDTs; all programs will then use the GDT. For more information with regara to the i486TM microprocessors, please refer to 1486"m Microprocessor8 Programmers Reference Manual, available from Intel Corporation, Santa Clara, California.
1 The translated address is linear address 110. If paging mechanism is not used, the linear address 110 is physical address 120. If paging is used, a second level of address translation is needed to produce physical address 120.
Reference is again made to Fig. 1(a). Segment selector 102 is shown pointing to segment descriptor 104 which defines a segment. A program in the i486T," microprocessors may call for more segments than those segment selectors currently occupying segment registers. When this is true, the program uses forms of MOVE instructions to change the contents of the segment registers when it needs to access a new segment. As shown in Fig. I (b), segment selector 132 identifies a segment descriptor by specifying descriptor table 133 and descriptor index 134 within that table.
Reference is now made to Fig. 2, where a descriptor format in the i486TM microprocessor is illustrated. However, because the descriptor format needs to provide backward compatibility for prior processor architectures, the descriptor format becomes scrambled when it is stored in memory. To simplify internal processor operations, a raw scrambled descriptor must be transformed into a unscrambled descriptor, The transformation of a scrambled segment descriptor 300 into an unscrambled segment descriptor 310 for the i486T'M processors is illustrated in Fig. 3.
The present invention provides an improved memory management system for memory operations in microprocessors. As will be described, a segment descriptor cache is used to retain previously fetched, unscrambled, and tested descriptors such that on subsequent segment register loads, the segment descriptor can be sourced from the cache and loaded directly into the segment descriptor register file in one clock, thus bypassing all of the work and overhead usually associated with segment register loads. As will be apparent to those skilled in the at', the memory system of the preseni invention allows segment descriptors to be directly loaded into the segment register when the segment descriptors are cached in the segment descriptor cache after -4associative searching by the segment selector. It the descriptor is not present in the descriptor cache, the sele6tor is used to fetch the descriptor from a descriptor table in memory, unscrambles and tests the descriptor, and updates the descriptor cache with the newly fetched, unscrambled and tested descriptor such that the descriptor may be made available subsequently.
SUMMARY QE THE INVENTION
Therefore, it is an object of the present invention to provide an improved memory system to achieve greater data access speed and efficiency.
it is another object of the present invention to provide an improved memory system with a segment descriptor cache such that the previously fetched and unscrambled segment descriptors can be cached for subsequent usage.
The present invention discloses an improved memory management system in microprocessors for generating a segment descriptor in response to a segment selector. In one embodiment, the memory system of the present invention comprises a descriptor cache to retain previously fetched, unscrambled, and tested descriptors for subsequent access by the same selectors. If the descriptor is not found in the descriptor cache, the selector is used to fetch a scrambled, raw descriptor from memory. The scrambled descriptor is then unscrambled before loading into a segment register. The same unscrambled descriptor is also used to update the descriptor cache such that it may be found subsequently.
-6BRIEF 12ESQRIET1 N QF THE DRAWIN S FIGURE 1(a) is a pictorial representation of a memory address translation mechanism.
segment descriptor.
FIGURE 1(b) illustrates the format of a segment selector.
FIGURE 2 illustrates the format of a segment descriptor.
FIGURE -3 illustrates the process of unscrambling a scrambled FIGURE 4 is a block diagram representation of the process of loading a protected mode segment register.
FIGURE 5 is a block diagram representation of a memory segmentation system incorporating the teaching of the present invention.
FIGURE 6 is a flow chart illustrating the operation of a segment descriptor load.
replacement algorithm.
1 FIGURE 7 illustrates a currently implemented descriptor cache.
FIGURE 8 illustrates a currently implemented psuedo LRU D-ETAILE12 DESCRIEWN OF THE INVENTIQU An improved memory management system for memory operations in computers is disclosed having particular applications for use by microprocessor memory systems employing segmentation technique to enhance memory access efficiency. In the following description for purposes of explanation, specific memories, organizations, architectures, data rates, etc. are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well known circuits are shown in block diagram form in order not to obscure the present invention unnecessarily.
Reference is now made to Fig. 4, where the process of loading a segment register is described in block diagram format. It should be appreciated by those skilled in the art that the segment register load is basic to any segmentation memory management scheme. As shown, when the processor encounters a selector from an instruction such as MOVE SEG REG, the processor first tests the selector for any privilege violations such that a less privileged program cannot use a more privileged program to access protected data. If no privilege violation is found, then an 8-byte descriptor is fetched by the processor from memory/data cache based on the selectors identifying a descriptor table and a descriptor within that table. This descriptor is tested for privilege violations. If no privilege violation is found, then the descriptor is unscrambled and information regarding the segment such as the size and location of the segment, as well as control and status information, can be loaded into the segment register for the program to execute.
As will be appreciated by those skilled in the art, the present invention provides an improved memory system by allowing previously fetched and tested descriptors to be retained in an associative memory. On subsequent segment descriptor loads of the same descriptor, the segment descriptor cache is searched. If the segment descriptor cache contains the desired entry, the segment register file can be directly loaded from the segment descriptor cache, thus bypassing all the steps required in a process without the segment descriptor cache. As such, the performance of the memory segmentation system is greatly enhanced.
Reference is now made to Fig. 5, where the memory system for a segment register load incorporating the teaching of the present invention is shown. It should be understood by those skilled in the art that the dimensions of the buses are for illustrative purposes only and that the present invention can be practiced without the specific detail of the illustration. As shown in Fig. 5, system 500 comprises selector privilege tester 510 for testing any privilege violations in selector 501 such that a less privileged program cannot gain access to protected data. As used in the current implementation, when the privilege field of the segment selector contains a privilege level having a greater value (i.e. less privileged) than the program, the selector overrides the program's privilege level. If selector 501 passes privilege tester 510, it is transferred to descriptor address generator 520. Descriptor address generator 520 then generates the proper address of the descriptor in the descriptor table for the selector. Currently, two descriptor tables are used - global and local descriptor tables. The address generation process involves changing the current segment to specify a table based on the selection by selector 501, and setting the Effective Address to selector's index value. With the Effective Address, a descriptor can be fetched from memory 530 and latched into unscrambler 550 and descriptor tester 540. Descriptor tester 540 checks the descriptor to control its access to the segment. If an access violation occurs, a fault is generated to the processor. If no access violation occurs, unscrambler 550 transforms the descriptor into an internal unscrambled form as shown in Fig. 3. A successful descriptor is loaded into segment register file 560 and updated into descriptor cache 570 for future use.
Reference is now made to Fig. 6, where a flow chart identifying the sequence of operation of a segment descriptor load is shown. When selector 501 is encountered as in a MOV Sreg instruction, descriptor cache 570 is looked up. If a corresponding descriptor is found ("a hit"), then the descriptor loaded from descriptor cache 570 inta segment register file 560, along with selector 501. If no corresponding descriptor is found ("a miss"), then selector 501 is tested for privilege violations such that a fault may be generated for a selector with insufficient privilege level. If selector 501 passes the privilege tester 510, then descriptor linear address can be calculated and descriptor is fetched from memory 530. Descriptor is also tested for its pdvilege level and a fault is generated for any privilege violations. Descriptor is unscrambled and the unscrambled descriptor is loaded into segment register file 560. The unscrambled descriptor is also used to update descdptor cache 570.
is Reference is now made to Fig. 7, where a diagram representing the currently implemented segment descriptor cache is shown. Although a 4 -by1 6 set-associative cache is illustrated, it should be understood by those skilled in the art that other organizations can be easily implemented to achieve the desired functionality. Descriptor cache 770 is divided into three arrays: tag array 720, data array 730, and Least Recently Used ("LRU") array 710. The selector bits 14:3] are used as the set number and index into the descriptor cache. Each set is composed of 4 "ways", each of which is associatively searched for the desired entry.
The LAU entry 715 is composed of 3 bits used to determine which way" in the set is least recently used. When a new entry is to be placed in the descriptor cache, the LAU entry for the set determines which entry can be replaced with a minimum of performance impact. As shown in rig. 8, a psuedo LAU algorithm is used with the 3 LAU bits, called LO, L1. & L2, to determine which entry to replace.
Descriptor tag 740 from tag array 720 comprises the remaining selector bits and privilege level of the processor when the entry was placed in the descriptor cache. The tag also contains a valid bit 741 indicating if the entry is valid, and a code segment flag (CS) 742. The CS flag 742 is used to identify the type of descriptor cached, since different protection checks are applied for CS as opposed to data segments. Data array 730 contains unscrambled segment descriptors, each of which contains access rights 751, base address 752, and limit 753.
While the present invention has been described with reference to Figs. 1 through 8, it will be appreciated that the figures are for illustrative purposes only, and do not limit the spirit and scope of the invention.

Claims (6)

-11CLAIMS
1. A memory segmentation system for a microprocessor, said memory segmentation system loading a segment descriptor in a second format into a segment register in response to a segment selector load instruction, said memory segmentation system comprising:
descriptor cache means for receiving said segment selector, said descriptor cache means storing a plurality of segment descriptors in said second format, each of said segment descriptors in said second format being associated with a plurality of segment selectors such that said descriptor cache means outputs a segment descriptor in said second format to said segment register if said segment descriptor in said second format is associated with said segment selector; selector test means for receiving said segment selector when no segment descriptor in said second format in said descriptor cache means is associated with said segment selector, said selector test means determining whether said segment selector has a first predetermined privilege level; descriptor linear address generate means coupled to said selector test means for generating a descriptor linear address from said segment selector; descriptor fetch means for fetching a segment descriptor in a first format from a descriptor table based on said descriptor linear address; descriptor test means for determining whether said segment descriptor in said first format has a second predetermined privilege level; and descriptor format means for formatting said descriptor in said first format into said second format if said segment descrivtor in said first format h3s said second predetermined privilege level, said format means outputting said second format to said descriptor cache means to update its contents such said segment descriptor in said second format is associated with said segment -12selector, said descriptor cache means also outputting said segment descriptor in said second format to said segment register, whereby said segment descriptor in said second format is directly loaded from said descriptor cache means when said segment selector is received by said descriptor cache means.
2. A memory segmentation system according to claim 1, said descriptor cache means further comprising:
a set array comprising a plurality of sets, one of said sets being selected by said segment selector, each of said sets being replaced according to a predetermined replacement algorithm; a tag array comprising a plurality of descriptor tags, said tag array organized into a plurality of sets, each of said sets being a plurality of ways setassociative with said sets from said set array; and a data array comprising a plurality of segment descriptor in said second format, said data array being set-associative with each of said sets of said tag array.
3. A memory segmentation system according to claim 2, wherein said set array implements a least recently used replacement algorithm.
13-
4. In a microprocessor memory management system, a segment of the memory being specified by a segment descriptor in a second format in a segment register, said segment descriptor in said second format being specified by a segment selector, a method of loading said segment descriptor in said second format into a segment register in response to a segment selector load instruction, said method comprising:
inputting a segment selector to descriptor cache means; searching through said descriptor cache means to determine if a segment descriptor in a second format corresponding to said segment selector is present in said descriptor cache means, and if so, loading said segment descriptor in said second format into said segment register, said descriptor cache means comprising a plurality of segment descriptors in said second format being associated with a plurality of corresponding segment selectors; if said segment descriptor in said second format is not present in said descriptor cache means, testing said segment selector in a selector test means lo, determine whether said segment selector has a first predetermined privilege level; generating a descriptor linear address in linear address generate means; fetching said segment descriptor in a first format from a descriptor table based on said descriptor linear address, said descriptor table storing a plurality of segment descriptors in said first format; testing said segment descriptor in said first format in descriptor test means to determine whether said segment descriptor in said first format has a second predetermined privilege level; formatting said segment descriptor in said first format into said second format in descriptor format means; I -14loading said segment djescriptor in said second format into said segment register; updating said descriptor cache means with said segment descriptor in said second format uch that if the same segment selector is received by said descriptor cache means subsequently, said descriptor cache means directly causes said segment descriptor in said second format to be loaded into said segment register, whereby a segment is specified based on said segment descriptor in said second format loaded into said segment register.
5. A method according to claim 4, wherein said descriptor cache means comprises a set array, a tag array, and a data array, said searching through said descriptor cache means further comprising:
said selector specifying a set from said set array; selecting a tag from said tag array corresponding to said set from said set array, said tag array organized into a plurality of ways set- associative with said set array; and selecting said segment descriptor in said second format corresponding to said tag from said tag array.
6. A method according to claim 5, further comprising replacing each of said sets from said set array according a predetermined replacement algorithm.
zZ
GB9216731A 1991-10-16 1992-08-06 A segment descriptor cache for a microprocessor Expired - Fee Related GB2260629B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US77715591A 1991-10-16 1991-10-16

Publications (3)

Publication Number Publication Date
GB9216731D0 GB9216731D0 (en) 1992-09-23
GB2260629A true GB2260629A (en) 1993-04-21
GB2260629B GB2260629B (en) 1995-07-26

Family

ID=25109440

Family Applications (1)

Application Number Title Priority Date Filing Date
GB9216731A Expired - Fee Related GB2260629B (en) 1991-10-16 1992-08-06 A segment descriptor cache for a microprocessor

Country Status (4)

Country Link
JP (1) JPH05210593A (en)
DE (1) DE4234194A1 (en)
FR (1) FR2683061B1 (en)
GB (1) GB2260629B (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2285323A (en) * 1994-01-04 1995-07-05 Intel Corp Address generation unit with segmented addresses in a microprocessor
WO1997034230A1 (en) * 1996-03-14 1997-09-18 Advanced Micro Devices, Inc. Segment descriptor cache addressed by part of the physical address of the desired descriptor
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US6757824B1 (en) 1999-12-10 2004-06-29 Microsoft Corporation Client-side boot domains and boot rules
US6775779B1 (en) 1999-04-06 2004-08-10 Microsoft Corporation Hierarchical trusted code for content protection in computers
US7010684B2 (en) 1998-10-26 2006-03-07 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US7159240B2 (en) 2001-11-16 2007-01-02 Microsoft Corporation Operating system upgrades in a trusted operating system environment
US7243230B2 (en) 2001-11-16 2007-07-10 Microsoft Corporation Transferring application secrets in a trusted operating system environment
US7415620B2 (en) 1998-10-26 2008-08-19 Microsoft Corporation System and method for authenticating an operating system to a central processing unit, providing the CPU/OS with secure storage, and authenticating the CPU/OS to a third party
US7424612B2 (en) 2002-04-17 2008-09-09 Microsoft Corporation Saving and retrieving data based on symmetric key encryption

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5895489A (en) * 1991-10-16 1999-04-20 Intel Corporation Memory management system including an inclusion bit for maintaining cache coherency
US6938164B1 (en) 2000-11-22 2005-08-30 Microsoft Corporation Method and system for allowing code to be securely initialized in a computer
US7890771B2 (en) 2002-04-17 2011-02-15 Microsoft Corporation Saving and retrieving data based on public key encryption

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1428503A (en) * 1972-08-24 1976-03-17 Honeywell Inf Systems Data processing systems
GB2176918A (en) * 1985-06-13 1987-01-07 Intel Corp Memory management for microprocessor system
EP0272670A2 (en) * 1986-12-23 1988-06-29 Bull HN Information Systems Inc. Segment descriptor unit

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63259749A (en) * 1987-04-17 1988-10-26 Hitachi Ltd Virtual storage control system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1428503A (en) * 1972-08-24 1976-03-17 Honeywell Inf Systems Data processing systems
GB2176918A (en) * 1985-06-13 1987-01-07 Intel Corp Memory management for microprocessor system
EP0272670A2 (en) * 1986-12-23 1988-06-29 Bull HN Information Systems Inc. Segment descriptor unit

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2285323A (en) * 1994-01-04 1995-07-05 Intel Corp Address generation unit with segmented addresses in a microprocessor
US5590297A (en) * 1994-01-04 1996-12-31 Intel Corporation Address generation unit with segmented addresses in a mircroprocessor
GB2285323B (en) * 1994-01-04 1998-06-24 Intel Corp Address generation unit with segmented addresses in a microprocessor
WO1997034230A1 (en) * 1996-03-14 1997-09-18 Advanced Micro Devices, Inc. Segment descriptor cache addressed by part of the physical address of the desired descriptor
US6041396A (en) * 1996-03-14 2000-03-21 Advanced Micro Devices, Inc. Segment descriptor cache addressed by part of the physical address of the desired descriptor
US7415620B2 (en) 1998-10-26 2008-08-19 Microsoft Corporation System and method for authenticating an operating system to a central processing unit, providing the CPU/OS with secure storage, and authenticating the CPU/OS to a third party
US7010684B2 (en) 1998-10-26 2006-03-07 Microsoft Corporation Method and apparatus for authenticating an open system application to a portable IC device
US6976175B2 (en) 1999-04-06 2005-12-13 Microsoft Corporation Hierarchical trusted code for content protection in computers
US6775779B1 (en) 1999-04-06 2004-08-10 Microsoft Corporation Hierarchical trusted code for content protection in computers
US6986059B2 (en) 1999-04-06 2006-01-10 Microsoft Corporation Hierarchical trusted code for content protection in computers
US7020772B2 (en) 1999-04-06 2006-03-28 Microsoft Corporation Secure execution of program code
US6651171B1 (en) * 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US6978365B2 (en) 1999-12-10 2005-12-20 Microsoft Corporation Client-side boot domains and boot rules
US6757824B1 (en) 1999-12-10 2004-06-29 Microsoft Corporation Client-side boot domains and boot rules
US7159240B2 (en) 2001-11-16 2007-01-02 Microsoft Corporation Operating system upgrades in a trusted operating system environment
US7243230B2 (en) 2001-11-16 2007-07-10 Microsoft Corporation Transferring application secrets in a trusted operating system environment
US7424612B2 (en) 2002-04-17 2008-09-09 Microsoft Corporation Saving and retrieving data based on symmetric key encryption

Also Published As

Publication number Publication date
FR2683061B1 (en) 1995-02-17
JPH05210593A (en) 1993-08-20
GB9216731D0 (en) 1992-09-23
FR2683061A1 (en) 1993-04-30
DE4234194A1 (en) 1993-04-22
GB2260629B (en) 1995-07-26

Similar Documents

Publication Publication Date Title
US5075848A (en) Object lifetime control in an object-oriented memory protection mechanism
US5075845A (en) Type management and control in an object oriented memory protection mechanism
US7890727B2 (en) Key-controlled object-based memory protection
US5918251A (en) Method and apparatus for preloading different default address translation attributes
US6393544B1 (en) Method and apparatus for calculating a page table index from a virtual address
KR100382395B1 (en) Methods and devices for storing information in computer memory
EP0492859A2 (en) Translation lookaside buffer
US5060137A (en) Explicit instructions for control of translation lookaside buffers
EP0508577A1 (en) Address translation mechanism
JPH03225455A (en) Data processing system
US5895489A (en) Memory management system including an inclusion bit for maintaining cache coherency
EP3746899B1 (en) Controlling guard tag checking in memory accesses
GB2260629A (en) A segment descriptor cache for a microprocessor
US5675763A (en) Cache memory system and method for selectively removing stale aliased entries
CA2107056C (en) Method and system for increased system memory concurrency in a multiprocessor computer system
US20200233816A1 (en) Multiple guard tag setting instruction
US7434027B2 (en) Translation lookaside buffer prediction mechanism
EP3746900B1 (en) Controlling guard tag checking in memory accesses
EP0425771A2 (en) An efficient mechanism for providing fine grain storage protection intervals
EP0389886B1 (en) Ring reduction logic mechanism
US7216342B2 (en) Code generation
GB2395588A (en) Apparatus supporting multiple page sizes with address aliasing

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee

Effective date: 19980806