IP Library › Granted Patent US 11,327,765
Granted Patent B2
US 11,327,765 · App. 16/986,781 · Granted May 10, 2022

Instruction processing apparatuses, processors, and processing methods

Inventors: Chang Liu (Shanghai, CN); Tao Jiang (Hangzhou, CN)
Assignee: Alibaba Group Holding Limited
G06F9/3836G06F9/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,327,765
App. No.
16/986,781
Granted
May 10, 2022
Kind
B2
Abstract

Embodiments of the present disclosure provide an apparatus, comprising: one or more instruction executing circuitries, wherein each instruction executing circuitry of the one or more instruction executing circuitries is configured to execute an instruction of a corresponding instruction type, and an instruction scheduling circuitry that is communicatively coupled to the one or more instruction executing circuitries, the instruction scheduling circuitry is configured to: determine according to an instruction type of the instruction and a number of instructions that have been allocated to the one or more instruction executing circuitries, an instruction executing circuitry from the one or more instruction executing circuitries to schedule the instruction for execution, and allocated the instruction to the determined instruction executing circuitry.

Claims (90)

1. An apparatus, comprising:

one or more instruction executing circuitries, wherein each instruction executing circuitry of the one or more instruction executing circuitries is configured to execute an instruction of a corresponding instruction type, wherein the instruction comprises an instruction identifier indicating an execution state of the instruction, the execution state of the instruction including a first state that indicates the instruction has been allocated and has not been executed and a second state that indicates the instruction has been executed or has not been allocated; and

an instruction scheduling circuitry that is communicatively coupled to the one or more instruction executing circuitries, the instruction scheduling circuitry is configured to:

count, for each instruction executing circuitry, a number of instructions having an instruction identifier indicating the first state;

determine, according to an instruction type of the instruction and the number of instructions that have been allocated to each of the one or more instruction executing circuitries, an instruction executing circuitry from the one or more instruction executing circuitries to schedule the instruction for execution;

allocate the instruction to the determined instruction executing circuitry; and

change the instruction identifier of the allocated instruction from the first state to the second state.

2. The apparatus of claim 1 , further comprising:

an instruction decoding circuitry configured to decode the instruction, wherein the instruction decoding circuitry is communicatively coupled to the instruction scheduling circuitry, and the instruction decoding circuitry is further configured to send the decoded instruction to the instruction scheduling circuitry.

3. The apparatus of claim 1 , wherein:

the one or more instruction executing circuitries comprise at least two instruction executing circuitries;

the at least two instruction executing circuitries are configured to execute instructions of a same instruction type; and

the instruction scheduling circuitry is further configured to determine, according to a difference between numbers of instructions allocated to each of the at least two instruction executing circuitries, the instruction executing circuitry to schedule the instruction for execution.

4. The apparatus of claim 3 , wherein:

the at least two instruction executing circuitries comprise a first instruction executing circuitry having a first priority and a second instruction executing circuitry having a second priority, wherein the first priority is higher than the second priority; and

the instruction scheduling circuitry is further configured to:

allocate the instruction to the first instruction executing circuitry in response to the difference between the number of instructions allocated to the first instruction executing circuitry and the number of instructions allocated to the second instruction executing circuitry is smaller than a predetermined threshold; and

allocate the instruction to the second instruction executing circuitry in response to the difference between the numbers of instructions is not smaller than the predetermined threshold.

5. The apparatus of claim 3 , wherein the instruction scheduling circuitry comprises:

at least two first instruction scheduling sub-circuitries, wherein:

each of the first instruction scheduling sub-circuitries is communicatively coupled to a corresponding instruction executing circuitry in the at least two instruction executing circuitries, and

each of the first instruction scheduling sub-circuitries is configured to receive the instruction allocated to the corresponding instruction executing circuitry and transmit the instruction to the corresponding instruction executing circuitry for execution; and

a first scheduling logic sub-circuitry communicatively coupled to the at least two first instruction scheduling sub-circuitries, wherein:

the first scheduling logic sub-circuitry is configured to determine, according to a difference between the numbers of instructions that have been allocated to each of the at least two instruction executing circuitries, the instruction executing circuitry to schedule the instruction for execution, and

allocate the instruction to a first instruction scheduling sub-circuitry that corresponds to the determined instruction executing circuitry.

6. The apparatus of claim 3 , wherein:

the instruction scheduling circuitry further comprises a second instruction scheduling sub-circuitry communicatively coupled to the at least two instruction executing circuitries; and

the second scheduling sub-circuitry comprises:

a second scheduling logic sub-circuitry configured to determine, according to the difference between the numbers of decoded instructions that have been allocated to each of the at least two instruction executing circuitries, the instruction executing circuitry to schedule the instruction for execution, and

transmit the instruction to the determined instruction executing circuitry.

7. The apparatus of claim 1 , wherein the instructions that have been allocated to the instruction executing circuitry comprise an instruction that has been allocated and has not yet been executed in the instruction scheduling circuitry, and an instruction being executed in the instruction executing circuitry.

8. The apparatus of claim 1 , wherein the instruction scheduling circuitry further comprises an instruction counter, wherein the instruction counter is configured to store the number of instructions allocated to each of the one or more instruction executing circuitries.

9. A method, comprising:

receiving an instruction, wherein the instruction comprises an instruction identifier indicating an execution state of the instruction, the execution state of the instruction including a first state that indicates the instruction has been allocated and has not been executed and a second state that indicates the instruction has been executed or has not been allocated;

counting, for each instruction executing circuitry, a number of instructions having an instruction identifier indicating the first state;

determining, according to an instruction type of the instruction and the number of instructions that have been allocated to each of the one or more instruction executing circuitries, an instruction executing circuitry from the one or more instruction executing circuitries to schedule the instruction for execution;

allocating the instruction to the determined instruction executing circuitry;

changing the instruction identifier of the allocated instruction from the first state to the second state; and

transmitting the instruction to the allocated instruction executing circuitry for execution.

10. The method of claim 9 , wherein:

the one or more instruction executing circuitries comprise at least two instruction executing circuitries;

the at least two instruction executing circuitries are configured to execute instructions of a same instruction type; and

wherein determining the instruction executing circuitry from the one or more instruction executing circuitry further comprises:

determining, according to a difference between numbers of instructions allocated to each of the at least two instruction executing circuitries, the instruction executing circuitry to schedule the instruction for execution.

11. The method of claim 10 , wherein:

the instruction scheduling circuitry comprises:

at least two first instruction scheduling sub-circuitries, wherein each of the first instruction scheduling sub-circuitries is communicatively coupled to a corresponding instruction executing circuitry in the at least two instruction executing circuitries, and

a first scheduling logic sub-circuitry communicatively coupled to the at least two first instruction scheduling sub-circuitries; and

wherein determining the instruction executing circuitry from the one or more instruction executing circuitries further comprises:

in the first scheduling logic sub-circuitry, determining, according to a difference between the numbers of instructions that have been allocated to each of the at least two instruction executing circuitries, the instruction executing circuitry to schedule the instruction for execution,

allocating the instruction to the first instruction scheduling sub-circuitry that corresponds to the determined instruction executing circuitry,

in each of the first instruction scheduling sub-circuitries, receiving the instruction allocated to the corresponding instruction executing circuitry, and

in each of the first instruction scheduling sub-circuitries, transmitting the instruction to the corresponding instruction executing circuitry for execution.

12. The method of claim 10 , wherein:

the instruction scheduling circuitry comprises a second instruction scheduling sub-circuitry communicatively coupled to the at least two instruction executing circuitries, the second instruction scheduling sub-circuitry comprising a second scheduling logic sub-circuitry; and

wherein determining the instruction executing circuitry from the one or more instruction executing circuitries further comprises:

in the second scheduling logic sub-circuitry, determining, according to the difference between the numbers of instructions that have been allocated to each of the at least two instruction executing circuitries, the instruction executing circuitry to schedule to execute the instruction, and

transmitting the instruction to the determined instruction executing circuitry by the second instruction scheduling sub-circuitry to execute the instruction.

13. The method of claim 9 , wherein:

the at least two instruction executing circuitries comprise a first instruction executing circuitry having a first priority and a second instruction executing circuitry having a second priority, wherein the first priority is higher than the second priority; and

wherein determining the instruction executing circuitry from the one or more instruction executing circuitries further comprises:

allocating the instruction to the first instruction executing circuitry in response to the difference between the number of instructions allocated to the first instruction executing circuitry and the number of instructions allocated to the second instruction executing circuitry is smaller than a predetermined threshold, and

allocating the instruction to the second instruction executing circuitry in response to the difference between the numbers of instructions is not smaller than the predetermined threshold.

14. The method of claim 9 , wherein the instructions that have been allocated to the instruction executing circuitry comprise an instruction that has been currently allocated and has not yet been executed and an instruction being executed in the instruction executing circuitry.

15. The method of claim 9 , further comprising

obtaining, from an instruction counter, the number of instructions allocated to each instruction executing circuitry.

16. A system on chip, comprising:

an instruction processing apparatus, comprising:

one or more instruction executing circuitries, wherein each instruction executing circuitry of the one or more instruction executing circuitries is configured to execute an instruction of a corresponding instruction type, wherein the instruction comprises an instruction identifier indicating an execution state of the instruction, the execution state of the instruction including a first state that indicates the instruction has been allocated and has not been executed and a second state that indicates the instruction has been executed or has not been allocated; and

an instruction scheduling circuitry that is communicatively coupled to the one or more instruction executing circuitries, the instruction scheduling circuitry is configured to:

count, for each instruction executing circuitry, a number of instructions having an instruction identifier indicating the first state;

determine, according to an instruction type of the instruction and the number of instructions that have been allocated to each of the one or more instruction executing circuitries, an instruction executing circuitry from the one or more instruction executing circuitries to schedule the instruction for execution;

allocate the instruction to the determined instruction executing circuitry to transmit the instruction to the allocated instruction executing circuitry for execution; and

change the instruction identifier of the allocated instruction from the first state to the second state.

17. An intelligent device, comprising:

a system on chip, comprising:

an instruction processing apparatus, comprising:

one or more instruction executing circuitries, wherein each instruction executing circuitry of the one or more instruction executing circuitries is configured to execute an instruction of a corresponding instruction type, wherein the instruction comprises an instruction identifier indicating an execution state of the instruction, the execution state of the instruction including a first state that indicates the instruction has been allocated and has not been executed and a second state that indicates the instruction has been executed or has not been allocated; and

an instruction scheduling circuitry that is coupled to the one or more instruction executing circuitries, the instruction scheduling circuitry is configured to:

count, for each instruction executing circuitry, a number of instructions having an instruction identifier indicating the first state;

determine, according to an instruction type of the instruction and the number of instructions that have been allocated to each of the one or more instruction executing circuitries, an instruction executing circuitry from the one or more instruction executing circuitries to schedule the instruction for execution;

allocate the instruction to the determined instruction executing circuitry to transmit the instruction to the allocated instruction executing circuitry for execution; and

change the instruction identifier of the allocated instruction from the first state to the second state.

18. A non-transitory computer readable medium that stores a set of instructions that is executable by one or more processors of an apparatus to cause the apparatus to initiate an instruction processing method, the method comprising:

receiving an instruction, wherein the instruction comprises an instruction identifier indicating an execution state of the instruction, the execution state of the instruction including a first state that indicates the instruction has been allocated and has not been executed and a second state that indicates the instruction has been executed or has not been allocated;

counting, for each instruction executing circuitry, a number of instructions having an instruction identifier indicating the first state;

determining, according to an instruction type of the instruction and the number of instructions that have been allocated to each of the one or more instruction executing circuitries, an instruction executing circuitry from the one or more instruction executing circuitries to schedule to the instruction for execution;

allocating the instruction to the determined instruction executing circuitry;

changing the instruction identifier of the allocated instruction from the first state to the second state; and

transmitting the instruction to the allocated instruction executing circuitry for execution.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2020
From: LIU, CHANG; JIANG, TAO
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 053641/0333 →
Priority Claims (1)
CN 201910900982.2 · Sep 23, 2019 · national
Continuity (1)
Related Publication 20210089317A1 · Mar 25, 2021