← Back to Patent Explorer
US5742802A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and system for efficiently mapping guest instruction in an emulation assist unit

Assignee: International Business Machines Corp
•
Filing: 1996-02-16
•
Granted: 1998-04-21
•
Expires: 2016-02-16
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention provides a method and system for using hardware to assist software in emulating the guest instructions. The method and system comprises an emulation assist unit (EAU) which efficiently maps a guest instruction to a unique tag, an index, and an address of the corresponding semantic routine. The index determines where in a cache a plurality of tags are stored. A separate cache within the EAU stores each tag in association with the address the first time the corresponding guest instruction is emulated. Thus, the emulation assist unit also dynamically responds to the set of guest instructions being emulated. The first time a guest instruction is emulated, the EAU determines the address and stores the address in the cache in association with the tag. When the guest instruction is emulated again, the EAU uses the tag to access the stored addresses of the corresponding semantic routine.

Inventors

  • 👤 Ronald S. Harter
  • 👤 Gary Douglas Huber
  • 👤 Arturo Martin-de-Nicolas
  • 👤 Seungyoon Peter Song

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 21:00
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/3017; G06F9/30174; G06F9/38; G06F9/3877; G06F9/3879; G06F9/44; G06F9/455; G06F9/45504

Claims Analysis

Total Claims: 46
Claim 1
Independent Claim 99 words
An emulation assist unit for assisting a host processor in emulating a set of guest instructions using semantic routines, each of the semantic routines being stored at a specific address in memory, the emulation assist unit comprising: a decoder for translating each of the guest instructions; a tag generator coupled to the decoder for mapping each of the translated guest instructions to a tag; and a cache coupled to the tag generator for storing the tag and the associated specific address; wherein the emulation assist unit causes the processor to execute the semantic routine located at the specific address.
Claim 2
Dependent Claim 99 words
An emulation assist unit for assisting a host processor in emulating a set of guest instructions using semantic routines, each of the semantic routines being stored at a specific address in memory, the emulation assist unit comprising: a decoder for translating each of the guest instructions; a tag generator coupled to the decoder for mapping each of the translated guest instructions to a tag; and a cache coupled to the tag generator for storing the tag and the associated specific address; wherein the emulation assist unit causes the processor to execute the semantic routine located at the specific address.
Claim 3
Dependent Claim 27 words
The system of claim 1 wherein the tag generator provides the tag by mapping a guest instruction to a key, then mapping the key to the tag.
Claim 4
Dependent Claim 12 words
The system of claim 2 wherein the key is of fixed length.
Claim 5
Dependent Claim 12 words
The system of claim 3 wherein the key is 20 bits long.
Claim 6
Dependent Claim 16 words
The system of claim 2 wherein the tag comprises at least a portion of the key.
Claim 7
Dependent Claim 18 words
The system of claim 1 wherein the tag generator further provides an index corresponding to the guest instruction.
Claim 8
Dependent Claim 24 words
The system of claim 6 wherein the cache further comprises a set-associative cache, each set having a plurality of entries corresponding to an index.
Claim 9
Dependent Claim 29 words
The system of claim 7 wherein the index corresponds to a plurality of tags, each tag being stored in one of the plurality of entries corresponding to the index.
Claim 10
Dependent Claim 12 words
The system of claim 8 wherein each set further comprises 4 entries.
Claim 11
Dependent Claim 12 words
The system of claim 9 wherein the index is 8 bits long.
Claim 12
Dependent Claim 30 words
The system of claim 7 wherein the emulation assist unit locates a particular tag by performing an associative search on the entries of the set corresponding to a particular index.
Claim 13
Dependent Claim 42 words
The system of claim 1 wherein the tag and the specific address are stored in the cache the first time the guest instruction is emulated, thereby ensuring that the emulation assist unit dynamically responds to the set of guest instructions being emulated.
Claim 14
Dependent Claim 27 words
The system of claim 12 wherein the tag generator provides the tag by mapping a guest instruction to a key, then mapping the key to the tag.
Claim 15
Dependent Claim 12 words
The system of claim 13 wherein the key is of fixed length.
Claim 16
Dependent Claim 12 words
The system of claim 14 wherein the key is 20 bits long.
Claim 17
Dependent Claim 16 words
The system of claim 13 wherein the tag comprises at least a portion of the key.
Claim 18
Dependent Claim 18 words
The system of claim 12 wherein the tag generator further provides an index corresponding to the guest instruction.
Claim 19
Dependent Claim 24 words
The system of claim 17 wherein the cache further comprises a set-associative cache, each set having a plurality of entries corresponding to an index.
Claim 20
Dependent Claim 29 words
The system of claim 18 wherein the index corresponds to a plurality of tags, each tag being stored in one of the plurality of entries corresponding to the index.
Claim 21
Dependent Claim 12 words
The system of claim 19 wherein each set further comprises 4 entries.
Claim 22
Dependent Claim 12 words
The system of claim 20 wherein the index is 8 bits long.
Claim 23
Dependent Claim 30 words
The system of claim 18 wherein the emulation assist unit locates a particular tag by performing an associative search on the entries of the set corresponding to a particular index.
Claim 24
Dependent Claim 112 words
An emulation assist unit for assisting a host processor to emulate a set of guest instructions using semantic routines, each of the semantic routines being stored at a specific address in memory, the emulation assist unit comprising: decoder for translating each of the guest instructions; a tag generator coupled to the decoder for mapping each of the translated guest instructions to a key and mapping the key to a tag corresponding to each of the guest instructions; and a cache coupled to the tag generator for storing the tag and the associated specific address, wherein the emulation assist unit causes the processor to execute the semantic routine located at the specific address.
Claim 25
Dependent Claim 112 words
An emulation assist unit for assisting a host processor to emulate a set of guest instructions using semantic routines, each of the semantic routines being stored at a specific address in memory, the emulation assist unit comprising: decoder for translating each of the guest instructions; a tag generator coupled to the decoder for mapping each of the translated guest instructions to a key and mapping the key to a tag corresponding to each of the guest instructions; and a cache coupled to the tag generator for storing the tag and the associated specific address, wherein the emulation assist unit causes the processor to execute the semantic routine located at the specific address.
Claim 26
Dependent Claim 42 words
The system of claim 23 wherein the tag and the specific address are stored in the cache the first time the guest instruction is emulated, thereby ensuring that the emulation assist unit dynamically responds to the set of guest instructions being emulated.
Claim 27
Dependent Claim 17 words
The system of claim 24 wherein the tag further comprises at least a portion of the key.
Claim 28
Dependent Claim 18 words
The system of claim 24 wherein the tag generator further provides an index corresponding to the guest instruction.
Claim 29
Dependent Claim 24 words
The system of claim 26 wherein the cache further comprises a set-associative cache, each set having a plurality of entries corresponding to an index.
Claim 30
Dependent Claim 29 words
The system of claim 27 wherein the index corresponds to a plurality of tags, each tag being stored in one of the plurality of entries corresponding to the index.
Claim 31
Dependent Claim 30 words
The system of claim 28 wherein the emulation assist unit locates a particular tag by performing an associative search on the entries of the set corresponding to a particular index.
Claim 32
Dependent Claim 12 words
The system of claim 28 wherein each set further comprises 4 entries.
Claim 33
Dependent Claim 12 words
The system of claim 28 wherein the index is 8 bits long.
Claim 34
Dependent Claim 26 words
The system of claim 28 wherein the index is generated by successively XORing a at least one bit and at least a portion of the key.
Claim 35
Dependent Claim 30 words
The system of claim 32 wherein the index is generated by successively XORing three bits and a at least a portion of the key not used to provide the tag.
Claim 36
Independent Claim 132 words
A method for use in an emulation assist unit for mapping a guest instruction to an address of the corresponding semantic routine comprising the steps of: (a) providing the guest instruction to the emulation assist unit; (b) mapping the guest instruction to a tag indicating where the address is stored; (c) providing the tag to a cache; (d) searching the cache for the tag; (e) if the guest instruction has been previously implemented, finding the tag and the address stored in the cache in conjunction with the tag; (f) if the guest instruction has not previously been implemented, determining the address of the corresponding semantics routine and storing in the cache the tag in conjunction with the address; and (g) providing the address of the corresponding semantic routine to a host processor.
Claim 37
Independent Claim 132 words
A method for use in an emulation assist unit for mapping a guest instruction to an address of the corresponding semantic routine comprising the steps of: (a) providing the guest instruction to the emulation assist unit; (b) mapping the guest instruction to a tag indicating where the address is stored; (c) providing the tag to a cache; (d) searching the cache for the tag; (e) if the guest instruction has been previously implemented, finding the tag and the address stored in the cache in conjunction with the tag; (f) if the guest instruction has not previously been implemented, determining the address of the corresponding semantics routine and storing in the cache the tag in conjunction with the address; and (g) providing the address of the corresponding semantic routine to a host processor.
Claim 38
Dependent Claim 21 words
The method of claim 34 wherein step (b) comprises the additional step of providing an index in conjunction with the tag.
Claim 39
Dependent Claim 23 words
The method of claim 34 wherein the cache comprises a set-associative cache, each set having a plurality of entries corresponding to the index.
Claim 40
Dependent Claim 33 words
The method of claim 35 wherein step (d) comprises the steps of: (di) searching the cache for the index; and searching the entries of each array corresponding to the index for the tag.
Claim 41
Dependent Claim 14 words
The method of claim 37 wherein step (dii) is performed using an associative search.
Claim 42
Dependent Claim 30 words
The method of claim 34 wherein step (b) comprises the steps of: (bi) mapping the guest instruction to a key; (bii) mapping the key to the tag and the index.
Claim 43
Dependent Claim 14 words
The method of claim 39 wherein the key of step (i) has fixed length.
Claim 44
Dependent Claim 28 words
The method of claim 39 wherein the index of step (bii) is formed by successively XORing at least one bit and at least a portion of the key.
Claim 45
Dependent Claim 27 words
The method of claim 41 wherein the index of step (bii) is formed by successively XORing three additional bits and at least a portion of the key.
Claim 46
Dependent Claim 16 words
The method of claim 39 wherein the tag comprises at least a portion of the key.

References Cited (Backward Citations)

US4920481A Cited
US5088033A Cited
US4992934A Cited
US5406644A Cited
US4860199A Cited
US5317740A Cited
US5574873A Cited
US5392408A Cited
US5574927A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-04-20 2001-10-20 2002-04-21 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-04-20 2005-10-20 2006-04-21 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-04-20 2009-10-20 2010-04-21 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag