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

Microsequencer allowing a sequence of conditional jumps without requiring the insertion of NOP or other instructions

Assignee: VIA Cyrix Inc
•
Filing: 1994-11-22
•
Granted: 1996-06-04
•
Expires: 2014-11-22
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A sequencer for use in a pipeline architecture includes circuitry for determining whether the previous instruction was a conditional jump instruction and whether the condition was met, circuitry for determining whether the current instruction is a conditional jump, and circuitry inhibiting a branch responsive to the current instruction, if the previous instruction was a conditional jump and the condition was met. Additionally, circuitry may be provided for treating a CALL instruction as a one-cycle unconditional jump if the preceding instruction was a conditional jump and the condition was not met, thereby implementing a two-cycle IF-THEN-ELSE instruction.

Inventors

  • 👤 Mark W. Hervin

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 08:27
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/22; G06F9/26; G06F9/262; G06F9/264; G06F9/265; G06F9/30; G06F9/30003; G06F9/3005; G06F9/30058

Claims Analysis

Total Claims: 10
Claim 1
Independent Claim 188 words
A microsequencer for sequencing microinstruction execution, including sequences of conditional iump (CJUMP) microinstructions (each defining a condition code field and a jump address field), the microsecquencer comprising: a memory that stores microinstructions including CJUMP microinstructions, each CJUMP including a prior-branch field indicating that, if set, the CJUMP is immediately preceded by a CJUMP, and that if not set, the CJUMP is not immediately preceded by a CJUMP; sequencer logic that sequences microinstructions output from the memory; branch-prior-taken detection circuitry that, for a current CJUMP, detects a branch-prior-taken condition if (i) the current CJUMP output from the memory has its prior-branch field set indicating that a preceding microinstruction was a preceding CJUMP and (ii) the condition represented by the condition code of such preceding CJUMP was met indicating that such preceding CJUMP was taken; and branch inhibit circuitry that, for the current CJUMP, is responsive to the detection of a branch-prior-taken condition to inhibit such current CJUMP from causing a branch; such that the sequencer logic causes a next microinstruction output from the memory after the current CJUMP to be determined by the jump address of such preceding CJUMP.
Claim 2
Dependent Claim 188 words
A microsequencer for sequencing microinstruction execution, including sequences of conditional iump (CJUMP) microinstructions (each defining a condition code field and a jump address field), the microsecquencer comprising: a memory that stores microinstructions including CJUMP microinstructions, each CJUMP including a prior-branch field indicating that, if set, the CJUMP is immediately preceded by a CJUMP, and that if not set, the CJUMP is not immediately preceded by a CJUMP; sequencer logic that sequences microinstructions output from the memory; branch-prior-taken detection circuitry that, for a current CJUMP, detects a branch-prior-taken condition if (i) the current CJUMP output from the memory has its prior-branch field set indicating that a preceding microinstruction was a preceding CJUMP and (ii) the condition represented by the condition code of such preceding CJUMP was met indicating that such preceding CJUMP was taken; and branch inhibit circuitry that, for the current CJUMP, is responsive to the detection of a branch-prior-taken condition to inhibit such current CJUMP from causing a branch; such that the sequencer logic causes a next microinstruction output from the memory after the current CJUMP to be determined by the jump address of such preceding CJUMP.
Claim 3
Dependent Claim 12 words
The microsequencer of claim 1 wherein said memory comprises a read-only memory.
Claim 4
Dependent Claim 63 words
The microsequencer of claim 1, wherein the branch inhibit circuitry comprises: branch-prior-taken circuitry that, for the current CJUMP, is responsive to the detection of a branch-prior-taken condition to provide a branch-prior-taken signal; and branch control circuitry that, responsive to the branch-prior-taken signal indicates that such current CJUMP is not taken regardless of whether the condition represented by its associated condition code is met.
Claim 5
Independent Claim 178 words
A method for sequencing microinstruction execution, including sequences of conditional jump (CJUMP) microinstructions (each defining a condition code field and a jump address field), the method comprising the steps of: storing in a memory microinstructions including CJUMP microinstructions, each CJUMP including a prior-branch field indicating that, if set, the CJUMP is immediately preceded by a CJUMP, and that if not set, the CJUMP is not immediately preceded by a CJUMP; outputting microinstructions from the memory according to a selected sequence; detecting for a current CJUMP, a branch-prior-taken condition if (i) the current CJUMP output from the memory has its prior-branch field set indicating that a preceding microinstruction was a preceding CJUMP, and (ii) the condition represented by the condition code of such preceding CJUMP was met indicating that such preceding CJUMP was taken; and for the current CJUMP, responsive to the detection of a branch-prior-taken condition, inhibiting such current CJUMP from causing a branch, thereby outputting from the memory as a next microinstruction after the current CJUMP a microinstruction determined by the jump address of such preceding CJUMP.
Claim 6
Independent Claim 178 words
A method for sequencing microinstruction execution, including sequences of conditional jump (CJUMP) microinstructions (each defining a condition code field and a jump address field), the method comprising the steps of: storing in a memory microinstructions including CJUMP microinstructions, each CJUMP including a prior-branch field indicating that, if set, the CJUMP is immediately preceded by a CJUMP, and that if not set, the CJUMP is not immediately preceded by a CJUMP; outputting microinstructions from the memory according to a selected sequence; detecting for a current CJUMP, a branch-prior-taken condition if (i) the current CJUMP output from the memory has its prior-branch field set indicating that a preceding microinstruction was a preceding CJUMP, and (ii) the condition represented by the condition code of such preceding CJUMP was met indicating that such preceding CJUMP was taken; and for the current CJUMP, responsive to the detection of a branch-prior-taken condition, inhibiting such current CJUMP from causing a branch, thereby outputting from the memory as a next microinstruction after the current CJUMP a microinstruction determined by the jump address of such preceding CJUMP.
Claim 7
Dependent Claim 79 words
The method of claim 4, wherein the step of branch inhibiting comprises the steps: in response to a branch-prior-taken condition, generating, for the current CJUMP, a branch-prior-taken signal; and responsive to the branch-prior-taken signal, indicates that such current CJUMP is not taken regardless of whether the condition represented by its associated condition code is met, thereby outputting from the memory as the next microinstruction after the current CJUMP a microinstruction determined by the jump address of such preceding CJUMP.
Claim 8
Dependent Claim 177 words
A microsequencer for sequencing microinstruction execution, including sequences of conditional jump (CJUMP) microinstructions (each defining a condition code field and a jump address field), the microsequencer comprising: a memory that stores microinstructions including CJUMP microinstructions, each CJUMP including a prior-branch field indicating that, if set, the CJUMP is immediately preceded by a CJUMP, and that if not set, the CJUMP is not immediately preceded by a CJUMP; sequencer means for sequencing microinstructions output from the memory; branch control means for detecting, for a current CJUMP, a branch-prior-taken condition if (i) the current CJUMP output from the memory has its prior-branch field set indicating that a preceding microinstruction was a preceding CJUMP, and (ii) the condition represented by the condition code of such preceding CJUMP was met indicating that such preceding CJUMP was taken; and branch inhibit means, responsive to the detection of a branch-prior-taken condition associated with the current CJUMP, for inhibiting a branch; such that a next microinstruction output from the memory after the current CJUMP is determined by the jump address of such preceding CJUMP.
Claim 9
Dependent Claim 177 words
A microsequencer for sequencing microinstruction execution, including sequences of conditional jump (CJUMP) microinstructions (each defining a condition code field and a jump address field), the microsequencer comprising: a memory that stores microinstructions including CJUMP microinstructions, each CJUMP including a prior-branch field indicating that, if set, the CJUMP is immediately preceded by a CJUMP, and that if not set, the CJUMP is not immediately preceded by a CJUMP; sequencer means for sequencing microinstructions output from the memory; branch control means for detecting, for a current CJUMP, a branch-prior-taken condition if (i) the current CJUMP output from the memory has its prior-branch field set indicating that a preceding microinstruction was a preceding CJUMP, and (ii) the condition represented by the condition code of such preceding CJUMP was met indicating that such preceding CJUMP was taken; and branch inhibit means, responsive to the detection of a branch-prior-taken condition associated with the current CJUMP, for inhibiting a branch; such that a next microinstruction output from the memory after the current CJUMP is determined by the jump address of such preceding CJUMP.
Claim 10
Dependent Claim 61 words
The microsequencer of claim 6, wherein the branch inhibit means comprises: branch-prior-taken means, responsive to the detection of a branch-prior-taken condition for providing, for the current CJUMP, a branch-prior-taken signal; and branch control means, responsive to the branch-prior-taken signal, for indicating that such current CJUMP is not taken regardless of whether the condition represented by its associated condition code is met.

References Cited (Backward Citations)

US4674063A Cited
US4773002A Cited
US4701842A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-06-04 1999-12-04 2000-06-04 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-06-04 2003-12-04 2004-06-04 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-06-04 2007-12-04 2008-06-04 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag