IP Library Granted Patent US 11,016,776
Granted Patent B2
US 11,016,776 · App. 16/231,280 · Granted May 25, 2021

System and method for executing instructions

Inventors: Liang Han (San Mateo, CA); Xiaowei Jiang (San Mateo, CA)
Assignee: ALIBABA GROUP HOLDING LIMITED
G06F9/3867G06F8/41G06F9/30145G06F9/3838G06F9/3851G06F9/3885G06F8/45G06F9/382
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,016,776
App. No.
16/231,280
Granted
May 25, 2021
Kind
B2
Abstract

The present disclosure provides systems and methods for executing instructions. The system can include: processing unit having a core configured to execute instructions; and a host unit configured to: compile computer code into a plurality of instructions that includes a set of instructions that are determined to be executed in parallel on the core, wherein the set of instructions each includes an operation instruction and an indication bit and wherein the indication bit is set to identify the last instruction of the set of instructions, and provide the set of instructions to the core.

Claims (45)

1. A system comprising:

a processing unit having a core configured to execute instructions; and

a host processing unit configured to:

compile computer code into a plurality of instructions that includes a set of instructions that are determined to be executed in parallel on the core, wherein the set of instructions each includes an operation instruction and an indication bit and wherein the indication bit is set to identify a last instruction of the set of instructions; and

provide the set of instructions to the processing unit for the core to execute;

wherein the core is configured to:

directly fetch an instruction from the set of instructions from an instruction buffer of the core in a first clock cycle,

determine whether the instruction is the last instruction of the set of instructions according to the indication bit, and

in response to a determination that the instruction is not the last instruction of the set of instructions,

fetch a subsequent instruction of the set of instructions in a second clock cycle subsequent to the first clock cycle,

determine the subsequent instruction is the last instruction of the set of instructions based on an indication bit associated with the subsequent instruction, and

in response to the determination that the subsequent instruction is the last instruction of the set of instructions, wait until the set of instructions finishes executing before executing another instruction.

2. The system of claim 1 , wherein the set of instructions includes a number of parallel instructions that is less than or equal to a number of execution units capable of processing the parallel instructions, wherein the execution units are in the core.

3. The system of claim 1 , wherein the indication bit has a width of one bit.

4. The system of claim 1 , wherein the host processing unit is further configured to:

determine data dependency of the plurality of instructions;

determine the set of instructions that are to be executed in parallel based on the determined data dependency; and

set an indication bit for the last instruction of the set of instructions.

5. The system of claim 4 , wherein the host processing unit is further configured to package the set of instructions into at least one instruction word.

6. The system of claim 1 , wherein the processing unit comprises a plurality of cores for executing the set of instructions.

7. A method performed by a host processing unit, comprising:

compiling, by the host processing unit, computer code into a plurality of instructions that includes a set of instructions that are determined to be executed in parallel on a core of processing unit, wherein the set of instructions each includes an operation instruction and an indication bit and wherein the indication bit is set to identify a last instruction of the set of instructions; and

providing the set of instructions to the processing unit for the core to execute, wherein the set of instructions includes an instruction to be fetched by a core from an instruction from the set of instructions from an instruction buffer of the core in a first clock cycle to determine whether the fetched instruction is the last instruction of the set of instructions according to the indication bit associated with the fetched instruction, and wherein if the indication bit associated with the fetched instruction indicates that the fetched instruction is not the last instruction of the set of instructions, the set of instructions includes a subsequent instruction to be fetched by the core in a second clock cycle subsequent to the first clock cycle and to determine whether the fetched subsequent instruction is the last instruction of the set of instructions according to the indication bit associated with the fetched subsequent instruction, and wherein if the indication bit associated with the fetched subsequent instruction indicates that the fetched subsequent instruction is the last instruction of the set of instructions, the set of instructions finishes executing before another instruction to be executed by the core.

8. The method of claim 7 , wherein the set of instructions includes a number of parallel instructions that is less than or equal to a number of execution units capable of processing the parallel instructions, wherein the execution units are in the core of the processing unit.

9. The method of claim 7 , wherein the indication bit has a width of one bit.

10. The method of claim 7 , further comprising:

determining data dependency of the plurality of instructions;

determining the set of instructions that are to be executed in parallel based on the determined data dependency; and

setting an indication bit for the last instruction of the set of instructions.

11. The method of claim 10 , further comprising:

packaging the set of instructions into at least one instruction word.

12. A method performed by a core of a processing unit, the method comprising:

directly fetching an instruction of a set of instructions from an instruction buffer in a first clock cycle;

determining whether the instruction is a last instruction of the set of instructions based on an indication bit associated with the decoded instruction; and

in response to the determination that the instruction is not the last instruction of the set of instructions,

fetching a subsequent instruction of the set of instructions in a second clock cycle subsequent to the first clock cycle,

determining whether the subsequent instruction is the last instruction of the set of instructions based on an indication bit associated with the subsequent instruction, and

in response to the determination that the subsequent instruction is the last instruction of the set of instructions, waiting until the set of instructions finishes executing before executing another instruction.

13. The method of claim 12 , wherein the execution unit comprises at least one of an arithmetic logic unit, a load/store unit, and a special function unit.

14. The method of claim 12 , further comprising:

decoding the subsequent instruction; and

issuing the decoded subsequent instruction to an execution unit for execution.

15. The method of claim 14 , further comprising executing the decoded subsequent instruction in parallel with the decoded instruction.

16. The method of claim 15 , further comprising:

storing execution results corresponding to the set of instructions.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2024
From: ALIBABA GROUP HOLDING LIMITED
To: T-HEAD (SHANGHAI) SEMICONDUCTOR CO., LTD.
Reel/Frame 066348/0656 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2020
From: HAN, LIANG; JIANG, XIAOWEI
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 053479/0306 →
Continuity (2)
Provisional Application 62610111 · Dec 22, 2017
Related Publication 20190196840A1 · Jun 27, 2019
Cited By (1)
US 12,724,614