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

Processing system for branch instruction

Assignee: Panasonic Holdings Corp
•
Filing: 1990-11-19
•
Granted: 1993-03-23
•
Expires: 2010-11-19
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A storage holds instructions including a branch instruction and a corresponding branch destination instruction. The instructions are sequentially fetched from the storage to a decoder. The decoder sequentially decodes the fetched instructions and derives commands from the respective instructions. The commands are sequentially transferred from the decoder to an execution unit. The execution unit sequentially executes the transferred commands. The decoder serves to detect the branch instruction. When the branch instruction is detected, a normal instruction fetching process is interrupted and the branch destination instruction is promptly fetched to the decoder. The decoder prevents a command of the branch instruction from being transferred to the execution unit.

Inventors

  • 👤 Kozo Kimura
  • 👤 Tokuzo Kiyohara
  • 👤 Toshimichi Matsuzaki

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-28 03:09
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3802; G06F9/3804

Claims Analysis

Total Claims: 8
Claim 1
Independent Claim 547 words
A processing system for executing a stored program of instructions including dedicated decoding and execution means for processing branch instructions, comprising: a memory for storing instructions including a branch instruction and a branch destination instruction and responsive to first and second address signals for supplying said instructions; an instruction pre-fetch address register storing a periodically-updated first address and supplying said first address to said memory for reading the instructions from the memory; a branch instruction pre-fetch address register storing a second address and supplying said second address to said memory and to said instruction pre-fetch address register for reading the branch destination instruction from the memory; a first execution unit including an instruction decoder for providing execution control signals in response to decoding said instruction; an instruction buffer receiving said instructions from said memory and sequentially storing the instructions from the memory by use of the periodically-updated address in the instruction pre-fetch address register, the instruction buffer supplying the sequentially stored instructions to the first execution unit, the first execution unit decoding the instructions supplied by the instructions buffer to supply decoded instruction commands; a branch instruction buffer receiving one of said instructions from said memory and storing the instruction which is read from the memory by use of the branch destination address in the branch instruction pre-fetch address register, the branch instruction buffer supplying the branch destination instruction to the first execution unit, the first execution unit decoding the instruction supplied by the branch instruction buffer to supply said control signals; a calculator for calculating the branch destination address; said decoder including an instruction control circuit for decoding instructions supplied by said instruction buffer and, detecting a branch instruction and, in response, selectively supplying commands for transferring said instruction to a second execution unit and supplying a control signal to said second execution unit for calculating said branch destination address; and said second execution unit for executing the commands generated by the instruction control circuit; wherein the instruction control circuit is operative to detect a conditional branch instruction; wherein when the instruction control circuit detects the conditional branch instruction, the instruction control circuit (i) prevents a command of the conditional branch instruction from being transferred to the second execution unit, (ii) enables the calculation of the branch destination address by the calculator, (iii) stores a result of the calculation into the branch instruction pre-fetch address register, (iv) reads the branch destination instruction corresponding to the branch destination address from the memory, (v) stores the branch destination instruction into the branch destination buffer, (vi) interrupts decoding until execution of the instructions decoded prior to the conditional branch instruction is completed, (vii) waits for a determination of a result of calculation, (viii) determines whether establishment of a branch is present or absent after the result is determined, and (ix) selectively (a) disables (I) the decoded instructions which follow the conditional branch instruction and (II) generation of a command after decoding of the branch destination instruction stored in the branch destination instruction buffer and (III) transfer of the command to the execution unit in cases where the branch is established, or (b) causes execution of the commands of the decoded instructions which follow the branch instruction by the second execution unit in cases where the branch is not established.
Claim 2
Dependent Claim 547 words
A processing system for executing a stored program of instructions including dedicated decoding and execution means for processing branch instructions, comprising: a memory for storing instructions including a branch instruction and a branch destination instruction and responsive to first and second address signals for supplying said instructions; an instruction pre-fetch address register storing a periodically-updated first address and supplying said first address to said memory for reading the instructions from the memory; a branch instruction pre-fetch address register storing a second address and supplying said second address to said memory and to said instruction pre-fetch address register for reading the branch destination instruction from the memory; a first execution unit including an instruction decoder for providing execution control signals in response to decoding said instruction; an instruction buffer receiving said instructions from said memory and sequentially storing the instructions from the memory by use of the periodically-updated address in the instruction pre-fetch address register, the instruction buffer supplying the sequentially stored instructions to the first execution unit, the first execution unit decoding the instructions supplied by the instructions buffer to supply decoded instruction commands; a branch instruction buffer receiving one of said instructions from said memory and storing the instruction which is read from the memory by use of the branch destination address in the branch instruction pre-fetch address register, the branch instruction buffer supplying the branch destination instruction to the first execution unit, the first execution unit decoding the instruction supplied by the branch instruction buffer to supply said control signals; a calculator for calculating the branch destination address; said decoder including an instruction control circuit for decoding instructions supplied by said instruction buffer and, detecting a branch instruction and, in response, selectively supplying commands for transferring said instruction to a second execution unit and supplying a control signal to said second execution unit for calculating said branch destination address; and said second execution unit for executing the commands generated by the instruction control circuit; wherein the instruction control circuit is operative to detect a conditional branch instruction; wherein when the instruction control circuit detects the conditional branch instruction, the instruction control circuit (i) prevents a command of the conditional branch instruction from being transferred to the second execution unit, (ii) enables the calculation of the branch destination address by the calculator, (iii) stores a result of the calculation into the branch instruction pre-fetch address register, (iv) reads the branch destination instruction corresponding to the branch destination address from the memory, (v) stores the branch destination instruction into the branch destination buffer, (vi) interrupts decoding until execution of the instructions decoded prior to the conditional branch instruction is completed, (vii) waits for a determination of a result of calculation, (viii) determines whether establishment of a branch is present or absent after the result is determined, and (ix) selectively (a) disables (I) the decoded instructions which follow the conditional branch instruction and (II) generation of a command after decoding of the branch destination instruction stored in the branch destination instruction buffer and (III) transfer of the command to the execution unit in cases where the branch is established, or (b) causes execution of the commands of the decoded instructions which follow the branch instruction by the second execution unit in cases where the branch is not established.
Claim 3
Dependent Claim 269 words
A processing system for a branch instruction, comprising: a memory for storing instructions including a branch instruction and a branch destination instruction; an instruction pre-fetch address register storing a periodically-updated first address and supplying said first address to said memory for reading the instructions from the memory; an instruction decoder; an instruction buffer receiving said instructions form said memory and sequentially storing the instructions read from the memory by use of the periodically-updated address in the instruction pre-fetch address register, the instruction buffer supplying the instructions to the instruction decoder in response to a request from the instruction decoder; the instruction decoder decoding the instructions outputted by the instruction buffer and, in response, supplying commands, the instruction decoder being operative to detect the branch instruction; a calculator calculating a branch destination address; an execution unit executing the commands generated by the instruction decoder; and said instruction control circuit responsive to the instruction decoder detecting the branch instruction for (i) preventing a command of the branch instruction from being transferred to the execution unit and enabling the calculation of the branch destination address by the calculator, (ii) storing a result of the calculation into the instruction pre-fetch address register, (iii) reading the branch destination instruction corresponding to the branch destination address from the memory, (iv) decoding of the branch destination instruction, and (v) generating of a command independently and parallel with the execution of the instructions which are decoded prior to the branch instruction; wherein in cases where the execution unit is not operating in an executing state, the instruction control circuit immediately transfers the commands to the execution unit.
Claim 4
Dependent Claim 269 words
A processing system for a branch instruction, comprising: a memory for storing instructions including a branch instruction and a branch destination instruction; an instruction pre-fetch address register storing a periodically-updated first address and supplying said first address to said memory for reading the instructions from the memory; an instruction decoder; an instruction buffer receiving said instructions form said memory and sequentially storing the instructions read from the memory by use of the periodically-updated address in the instruction pre-fetch address register, the instruction buffer supplying the instructions to the instruction decoder in response to a request from the instruction decoder; the instruction decoder decoding the instructions outputted by the instruction buffer and, in response, supplying commands, the instruction decoder being operative to detect the branch instruction; a calculator calculating a branch destination address; an execution unit executing the commands generated by the instruction decoder; and said instruction control circuit responsive to the instruction decoder detecting the branch instruction for (i) preventing a command of the branch instruction from being transferred to the execution unit and enabling the calculation of the branch destination address by the calculator, (ii) storing a result of the calculation into the instruction pre-fetch address register, (iii) reading the branch destination instruction corresponding to the branch destination address from the memory, (iv) decoding of the branch destination instruction, and (v) generating of a command independently and parallel with the execution of the instructions which are decoded prior to the branch instruction; wherein in cases where the execution unit is not operating in an executing state, the instruction control circuit immediately transfers the commands to the execution unit.
Claim 5
Dependent Claim 354 words
A processing system for a branch instruction, comprising: a memory storing instructions including a branch instruction and a branch destination instruction; an instruction pre-fetch address register storing a periodically-updated first address and supplying said first address to said memory for reading the instructions from the memory; a branch instruction pre-fetch address register storing a second address and supplying said second address to said memory for reading the branch destination instruction from the memory; an instruction decoder; an instruction buffer receiving said instructions form said memory and sequentially storing the instructions which are read from the memory by use of the periodically-updated address in the instruction pre-fetch address register, the instruction buffer supplying the instructions to the instruction decoder in response to requirements from the instruction decoder; the instruction decoder generating commands after decoding the instructions outputted by the instruction buffer, the instruction decoder being operative to detect a conditional branch instruction; a branch instruction buffer storing the instruction which is read from the memory by use of the branch destination address in the branch instruction pre-fetch address register, the branch instruction buffer supplying the instruction to the instruction decoder, the instruction decoder decoding the instruction outputted by the branch instruction buffer to supply commands; a calculator calculating the branch destination address; an execution unit receiving and executing the commands generated by the instruction decoder; and an instruction control circuit for, responsive to the instruction decoder detecting the conditional branch instruction for (i) preventing a command of the conditional branch instruction from being transferred to the execution unit and enabling the calculation of the branch destination address by the calculator, (ii) storing a result of the calculation into the branch instruction pre-fetch address register, (iii) reading the branch destination instruction corresponding to the branch destination address from the memory, (iv) storing the branch destination instruction into the branch destination buffer, (v) interrupting decoding until execution of the instructions decoded prior to the conditional branch instruction is completed, and (vi) waiting for a determination of a result of calculation independently and parallel with the execution of the instructions which are decoded prior to the branch instruction.
Claim 6
Dependent Claim 354 words
A processing system for a branch instruction, comprising: a memory storing instructions including a branch instruction and a branch destination instruction; an instruction pre-fetch address register storing a periodically-updated first address and supplying said first address to said memory for reading the instructions from the memory; a branch instruction pre-fetch address register storing a second address and supplying said second address to said memory for reading the branch destination instruction from the memory; an instruction decoder; an instruction buffer receiving said instructions form said memory and sequentially storing the instructions which are read from the memory by use of the periodically-updated address in the instruction pre-fetch address register, the instruction buffer supplying the instructions to the instruction decoder in response to requirements from the instruction decoder; the instruction decoder generating commands after decoding the instructions outputted by the instruction buffer, the instruction decoder being operative to detect a conditional branch instruction; a branch instruction buffer storing the instruction which is read from the memory by use of the branch destination address in the branch instruction pre-fetch address register, the branch instruction buffer supplying the instruction to the instruction decoder, the instruction decoder decoding the instruction outputted by the branch instruction buffer to supply commands; a calculator calculating the branch destination address; an execution unit receiving and executing the commands generated by the instruction decoder; and an instruction control circuit for, responsive to the instruction decoder detecting the conditional branch instruction for (i) preventing a command of the conditional branch instruction from being transferred to the execution unit and enabling the calculation of the branch destination address by the calculator, (ii) storing a result of the calculation into the branch instruction pre-fetch address register, (iii) reading the branch destination instruction corresponding to the branch destination address from the memory, (iv) storing the branch destination instruction into the branch destination buffer, (v) interrupting decoding until execution of the instructions decoded prior to the conditional branch instruction is completed, and (vi) waiting for a determination of a result of calculation independently and parallel with the execution of the instructions which are decoded prior to the branch instruction.
Claim 7
Dependent Claim 429 words
A processing system for a branch instruction, comprising: a memory storing instructions including a branch instruction and a branch destination instruction; an instruction pre-fetch address register storing a periodically-updated first address and supplying said fist address to said memory for reading the instructions from the memory; a branch instruction pre-fetch address register storing a second address and supplying said second address to said memory for reading the branch destination instruction from the memory; an instruction decoder; an instruction buffer receiving said instructions from said memory and sequentially storing the instructions which are read from the memory by use of the periodically-updated address in the instruction pre-fetch address register, the instruction buffer supplying the instructions to the instruction decoder in response to a request from the instruction decoder; the instruction decoder generating commands after decoding the instructions outputted by the instruction buffer, the instruction decoder being operative to detect a conditional branch instruction; a branch instruction buffer receiving said instructions from said memory and storing the instruction which is read from the memory by use of the branch destination address in the branch instruction pre-fetch address register, the branch instruction buffer outputting the instruction to the instruction decoder, the instruction decoder decoding the instruction outputted by the branch instruction buffer; a calculator calculating the branch destination address; an execution unit executing the commands generated by the instruction decoder; and an instruction control circuit for, in response to the instruction decoder detecting the conditional branch instruction, (i) preventing a command of the conditional branch instruction from being transferred to the execution unit and enabling the calculation of the branch destination address by the calculator, (ii) storing a result of the calculation into the branch instruction pre-fetch address register, (iii) reading the branch destination instruction corresponding to the branch destination address from the memory, (iv) storing the branch destination instruction into the branch destination buffer, (v) interrupting decoding by said instruction decoder until execution of the instructions decoded prior to the conditional branch instruction is completed, (vi) waiting a determination of a result of calculation, (vii) determining whether establishment of a branch is present or absent after the result is determined, (viii) disabling the decoded instructions which follow the conditional branch instruction and generation of a command after decoding of the branch destination instruction stored in the branch destination instruction buffer and (ix) transferring the command to the execution unit in cases where the branch is established, (x) executing the commands of the decoded instructions which follow the branch instruction by the execution unit in cases where the branch is not established.
Claim 8
Dependent Claim 429 words
A processing system for a branch instruction, comprising: a memory storing instructions including a branch instruction and a branch destination instruction; an instruction pre-fetch address register storing a periodically-updated first address and supplying said fist address to said memory for reading the instructions from the memory; a branch instruction pre-fetch address register storing a second address and supplying said second address to said memory for reading the branch destination instruction from the memory; an instruction decoder; an instruction buffer receiving said instructions from said memory and sequentially storing the instructions which are read from the memory by use of the periodically-updated address in the instruction pre-fetch address register, the instruction buffer supplying the instructions to the instruction decoder in response to a request from the instruction decoder; the instruction decoder generating commands after decoding the instructions outputted by the instruction buffer, the instruction decoder being operative to detect a conditional branch instruction; a branch instruction buffer receiving said instructions from said memory and storing the instruction which is read from the memory by use of the branch destination address in the branch instruction pre-fetch address register, the branch instruction buffer outputting the instruction to the instruction decoder, the instruction decoder decoding the instruction outputted by the branch instruction buffer; a calculator calculating the branch destination address; an execution unit executing the commands generated by the instruction decoder; and an instruction control circuit for, in response to the instruction decoder detecting the conditional branch instruction, (i) preventing a command of the conditional branch instruction from being transferred to the execution unit and enabling the calculation of the branch destination address by the calculator, (ii) storing a result of the calculation into the branch instruction pre-fetch address register, (iii) reading the branch destination instruction corresponding to the branch destination address from the memory, (iv) storing the branch destination instruction into the branch destination buffer, (v) interrupting decoding by said instruction decoder until execution of the instructions decoded prior to the conditional branch instruction is completed, (vi) waiting a determination of a result of calculation, (vii) determining whether establishment of a branch is present or absent after the result is determined, (viii) disabling the decoded instructions which follow the conditional branch instruction and generation of a command after decoding of the branch destination instruction stored in the branch destination instruction buffer and (ix) transferring the command to the execution unit in cases where the branch is established, (x) executing the commands of the decoded instructions which follow the branch instruction by the execution unit in cases where the branch is not established.

References Cited (Backward Citations)

US3490005A Cited
US3551895A Cited
US3764988A Cited
US4471433A Cited
US4399507A Cited
US4435756A Cited
US4777594A Cited
US4853840A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1996-03-22 1996-09-21 1997-03-23 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2000-03-22 2000-09-21 2001-03-23 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2004-03-22 2004-09-21 2005-03-23 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag