US4920538A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Method of checking the execution of microcode sequences
Assignee: International Business Machines Corp
•
Filing: 1985-06-28
•
Granted: 1990-04-24
•
Expires: 2005-06-28
Abstract
Abstract A global label (path identifier) is stored at compile time which computes a check marker along one permissible execution path of execution of a microinstruction sequence. The remaining execution paths are embedded with scalars and skip microinstructions so that execution along any conditional branch path will always yield the same global label (path identifier). Microcode sequence errors are determined at the completion of each microprogram node execution by comparing a path identifier generated at runtime with the global label stored earlier.
Inventors
- 👤 Joni N. Chan
- 👤 Andrew Moy
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-27 12:23
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/362; G06F11/3648; G06F11/28
Claims Analysis
Total Claims: 8
Claim 1
Independent Claim
182 words
A method for detecting impermissible traversals in a system in which selective traversals (jumps or branches) along extents of the symbol string are dictated by embedded pointers, and further in which the symbol string includes single entrance, single exit (SESE) substrings, comprising the steps of: (a) processing the symbol string by: (1) deriving the labeling ones of a set of permissible traversals from the SESE substrings; (2) generating a global label indicative of one permissible traversal through the symbol string of the set of permissible traversals and then scaling the labels obtained in step (a1) of remaining ones of the set of permissible traversals such that transitioning along a permissible traversal always yields the same global label; (3) embedding the labels within SESE substrings; (b) executing the processed symbol string by: (4) reading the SESE substrings from a boundary (entrance/exit) of an arbitrary substring to a boundary of another arbitrary substring and computing from each read substring at least one label indicative of the traversal; and (5) comprising the embedded label with computed label such that a mismatch is indicative of error.
Claim 2
Independent Claim
182 words
A method for detecting impermissible traversals in a system in which selective traversals (jumps or branches) along extents of the symbol string are dictated by embedded pointers, and further in which the symbol string includes single entrance, single exit (SESE) substrings, comprising the steps of: (a) processing the symbol string by: (1) deriving the labeling ones of a set of permissible traversals from the SESE substrings; (2) generating a global label indicative of one permissible traversal through the symbol string of the set of permissible traversals and then scaling the labels obtained in step (a1) of remaining ones of the set of permissible traversals such that transitioning along a permissible traversal always yields the same global label; (3) embedding the labels within SESE substrings; (b) executing the processed symbol string by: (4) reading the SESE substrings from a boundary (entrance/exit) of an arbitrary substring to a boundary of another arbitrary substring and computing from each read substring at least one label indicative of the traversal; and (5) comprising the embedded label with computed label such that a mismatch is indicative of error.
Claim 3
Dependent Claim
39 words
A method according to claim 1, wherein the derivation and labeling of permissible traversals (step 1) includes the step of: deriving a coded numerical symbol as a predetermined function of the sequence of symbols in the corresponding SESE substring.
Claim 4
Independent Claim
111 words
A method of verifying correct execution of a string of sequential microinstructions, comprising the steps of: (a) deriving a numerical representation (label) for each microinstruction in one selected permissible traversal in the microinstruction string; (b) operating on said derived numerical representations (labels) through a predetermined function to obtain a predetermined global label; (c) storing said predetermined global label at the entry point of said microinstruction string to signify the beginning of a microprogram segment; (d) at runtime, regenerating said global label concurrently with execution of the string of microinstructions; (e) at runtime, comparing said regenerated global label with said predetermined global label at the conclusion of execution of said microinstruction string.
Claim 5
Independent Claim
111 words
A method of verifying correct execution of a string of sequential microinstructions, comprising the steps of: (a) deriving a numerical representation (label) for each microinstruction in one selected permissible traversal in the microinstruction string; (b) operating on said derived numerical representations (labels) through a predetermined function to obtain a predetermined global label; (c) storing said predetermined global label at the entry point of said microinstruction string to signify the beginning of a microprogram segment; (d) at runtime, regenerating said global label concurrently with execution of the string of microinstructions; (e) at runtime, comparing said regenerated global label with said predetermined global label at the conclusion of execution of said microinstruction string.
Claim 6
Dependent Claim
31 words
A method according to claim 3, further comprising the step of placing said global label at the entry point of said microinstruction sequence to signify the beginning of a microprogram segment.
Claim 7
Dependent Claim
38 words
A method according to claim 3, further comprising the step of inserting a scalar at each point of traversal to adjust said generated label so that the same final result is generated regardless of the path of execution.
Claim 8
Dependent Claim
39 words
A method according to claim 5, further comprising the step of inserting a skip microinstruction prior to each of said scalar microinstructions to thereby prevent erroneous execution of said scalar by a nonbranch decision from a preceding branch-free segment.
References Cited (Backward Citations)
US4153931A
Cited
US4074229A
Cited
US4251885A
Cited
US4410938A
Cited
US4315313A
Cited
US4430706A
Cited
US4730315A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1993-04-23 | 1993-10-23 | 1994-04-24 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 1997-04-23 | 1997-10-23 | 1998-04-24 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2001-04-23 | 2001-10-23 | 2002-04-24 | $7700.00 | Window Closed / Lapsed |