IP Library › Granted Patent US 11,416,252
Granted Patent B2
US 11,416,252 · App. 15/855,139 · Granted Aug 16, 2022

Program instruction fusion

Inventors: Vladimir Vasekin (Cambridge, GB); Chiloda Ashan Senarath Pathirane (Cambourne, GB); Jungsoo Kim (Sawston, GB); Alexei Fedorov (Cambridge, GB)
Assignee: Arm Limited
G06F9/30196G06F9/3802G06F9/3867
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,416,252
App. No.
15/855,139
Granted
Aug 16, 2022
Kind
B2
Abstract

A data processing system includes an instruction pipeline containing instruction queue circuitry, fusion circuitry and decoder circuitry. The fusion circuitry serves to identify fusible groups of program instructions within a Y-wide window of program instructions and supply a stream of program instructions including such replacement fused program instructions to a X-wide decoder circuitry which decodes X program instructions in parallel using parallel decoders.

Claims (26)

1. Apparatus for processing data comprising:

instruction queue circuitry to queue pre-fusion program instructions to be executed;

fusion circuitry to receive said pre-fusion program instructions from said instruction queue circuitry and to identify and replace fusible groups within said pre-fusion program instructions with respective fused program instructions to form post-fusion program instructions; and

decoder circuitry to receive said post-fusion program instructions from said fusion circuitry and to decode said post-fusion program instructions; wherein

said decoder circuitry is configured to decode in parallel up to X of said post-fusion program instructions, where X is an integer greater than one; and

said fusion circuitry is configured to wait until a window of Y pre-fusion program instructions is received and, in response to receiving the window of Y pre-fusion program instructions, to identify said fusible groups within the window of Y pre-fusion program instructions, where Y is a predetermined integer greater than X.

2. Apparatus as claimed in claim 1 , wherein said window of Y pre-fusion program instructions comprises Y adjacent program instructions within an ordered stream of program instructions to be executed.

3. Apparatus as claimed in claim 1 , wherein said instruction queue circuitry, said fusion circuitry and said decoder circuitry comprise respective portions of instruction processing pipeline circuitry.

4. Apparatus as claimed in claim 1 , wherein said fusion circuitry and a first portion of said decoder circuitry comprise a pipeline stage of said instruction processing pipeline circuitry.

5. Apparatus as claimed in claim 3 , wherein said instruction queue circuitry comprises a buffer to store a plurality of said pre-fusion program instructions and to receive one or more pre-fusion program instruction from instruction prefetch circuitry and to output one or more pre-fusion program instructions to said fusion circuitry within a single clock cycle of said instruction processing pipeline circuitry.

6. Apparatus as claimed in claim 1 , wherein said fusion circuitry identifies a fusible group using one or more characteristics of said pre-fusion program instructions, said one or more characteristics comprises that a first pre-fusion program instruction within said fusible group has an output operand that serves as an input operand to a second pre-fusion program instruction within said fusible group.

7. Apparatus as claimed in claim 1 , wherein said fusible groups comprise two adjacent pre-fusion program instructions within a stream of pre-fusion program instructions.

8. Apparatus as claimed in claim 1 , wherein Y=X+1.

9. Apparatus as claimed in claim 1 , wherein X=3.

10. Apparatus for processing data comprising:

means for queuing pre-fusion program instructions to be executed;

means for receiving said pre-fusion program instructions from said means for queuing pre-fusion program instructions and for identifying and replacing fusible groups within said pre-fusion program instructions with respective fused program instructions to form post-fusion program instructions; and

means to receive said post-fusion program instructions from said means for receiving said pre-fusion program instructions and to decode said post-fusion program instructions; wherein

said means for receiving said post-fusion program instructions is configured to decode in parallel up to X of said post-fusion program instructions, where X is an integer greater than one; and

said means for receiving said pre-fusion program instructions is configured to wait until a window of Y pre-fusion program instructions is received and, in response to receiving the window of Y pre-fusion program instructions, to identify said fusible groups within the window of Y pre-fusion program instructions, where Y is a predetermined integer greater than X.

11. A method of processing data comprising:

queuing pre-fusion program instructions to be executed within instruction queue circuitry;

using fusion circuitry to receive said pre-fusion program instructions from said instruction queue circuitry and to identify and replace fusible groups within said pre-fusion program instructions with respective fused program instructions to form post-fusion program instructions; and

using decoder circuitry to receive said post-fusion program instructions from said fusion circuitry and to decode said post-fusion program instructions; wherein

said decoder circuitry decodes in parallel up to X of said post-fusion program instructions, where X is an integer greater than one; and

said fusion circuitry waits until a window of Y pre-fusion program instructions is received and, in response to receiving the window of Y pre-fusion program instructions, identifies said fusible groups within the window of Y pre-fusion program instructions, where Y is a predetermined integer greater than X.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2018
From: VASEKIN, VLADIMIR; FEDOROV, ALEXEI; KIM, JUNGSOO; PATHIRANE, CHILODA ASHAN SENARATH
To: ARM LIMITED
Reel/Frame 045260/0843 →
Continuity (1)
Related Publication 20190196832A1 · Jun 27, 2019
Cited By (2)
US 12,340,222 US 12,423,107