IP Library Granted Patent US 11,977,894
Granted Patent B2
US 11,977,894 · App. 17/770,553 · Granted May 7, 2024

Method and system for distributing instructions in reconfigurable processor and storage medium

Inventors: Baochuan Fei (Beijing, CN); Peng Ouyang (Beijing, CN); Shibin Tang (Beijing, CN); Liwei Deng (Beijing, CN)
Assignee: BEIJING TSINGMICRO INTELLIGENT TECHNOLOGY CO., LTD.
G06F9/3836G06F9/3802G06F9/3838G06F15/7867
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,977,894
App. No.
17/770,553
Granted
May 7, 2024
Kind
B2
Abstract

The disclosure provides a method for distributing instructions in a reconfigurable processor. The reconfigurable processor includes an instruction fetch module, an instruction sync control module and an instruction queue module. The method includes: configuring a format of a Memory Sync ID Table of each instruction type, obtaining a first memory identification field and a second memory identification field of each instruction, obtaining one-hot encodings of first and second memory identification fields, obtaining a sync table and executing each instruction of a plurality of to-be-run instructions.

Claims (46)

1. A method for distributing instructions in a reconfigurable processor, wherein the reconfigurable processor comprises a plurality of instruction queues; each instruction queue is provided with a plurality of instruction units sequentially arranged; each instruction queue corresponds to one instruction type; the method comprises:

step S 101 , configuring, by the reconfigurable processor, a Memory Sync ID Table of each instruction type; wherein each Memory Sync ID Table comprises a plurality of storage units sequentially configured; each storage unit comprises a first memory identification field storage bit and/or a second memory identification field storage bit; each instruction type corresponding to a set number of first memory identification fields and/or second memory identification fields;

step S 102 , sequentially, by the reconfigurable processor, extracting a first memory identification field and a second memory identification field of each instruction in a plurality of to-be-run instructions;

step S 103 , obtaining, by the reconfigurable processor, one-hot encoding of the first memory identification field and/or one-hot encoding of the second memory identification field of each instruction;

storing, by the reconfigurable processor, the one-hot encoding of the first memory identification field and the one-hot encoding of the second memory identification field of each instruction into a corresponding Memory Sync ID Table based on an execution order of the plurality of to-be-run instructions;

sending, by the reconfigurable processor, an instruction parameter of each instruction to a corresponding instruction unit of a corresponding instruction queue;

step S 104 , obtaining, by the reconfigurable processor, dependency identification information of any one instruction type and other two instruction types based on one-hot encoding of first memory identification fields and one-hot encoding of second memory identification fields of each instruction type in each Memory Sync ID Table; generating, by the reconfigurable processor, a sync table along a first data dimension based on the dependency identification information; the sync table comprising the first data dimension and a second data dimension converged with each other; the first data dimension of each instruction type corresponding to a storage bit number of each Memory Sync ID Table of each instruction type; and

step S 105 , executing, by the reconfigurable processor, a corresponding instruction based on dependency of each type of instructions along the second data dimension of the sync table; a number of the second data dimension of each instruction type corresponding to a number of instruction units in a corresponding instruction queue; and calling, by the reconfigurable processor, the instruction parameter corresponding to each instruction in a corresponding instruction unit through the sync table while executing each instruction in the plurality of to-be-run instructions.

2. The method of claim 1 , wherein,

each instruction type comprises one of a loading instruction, a computing instruction and a storage instruction;

each Memory Sync ID Table comprises one of a Memory Sync ID Table of loading instructions, a Memory Sync ID Table of computing instructions and a Memory Sync ID Table of storage instructions; and

each instruction queue comprises one of a loading instruction queue corresponding to loading instructions, a computing instruction queue corresponding to computing instructions and a storage instruction queue corresponding to storage instructions.

3. The method of claim 1 , wherein, each Memory Sync ID Table comprises 8 storage units configured in sequence; and

each instruction queue comprises 8 instruction units.

4. The method of claim 3 , wherein,

each storage unit of the Memory Sync ID Table of loading instructions comprises a first memory identification field and a second memory identification field;

each storage unit of the Memory Sync ID Table of computing instructions comprises a first memory identification field and a second memory identification field; and

each storage unit of the Memory Sync ID Table of storage instructions comprises a second memory identification field.

5. The method of claim 1 , wherein, the step S 103 further comprises:

judging whether each instruction unit of each instruction queue is full or not;

in response to that each instruction unit of each instruction queue is full, returning to the step of judging whether each instruction unit of each instruction queue is full or not until there is an idle instruction unit in each instruction queue; and

in response to that each instruction unit of each instruction queue is not full, executing step S 104 .

6. A system comprising:

a reconfigurable processor, wherein the reconfigurable processor comprises a plurality of instruction queues; each instruction queue is provided with a plurality of instruction units sequentially arranged; each instruction queue corresponds to one instruction type; and

a memory for storing instructions executable by the reconfigurable processor, wherein the reconfigurable processor is configured to:

configure a Memory Sync ID Table of each instruction type; wherein each Memory Sync ID Table comprises a plurality of storage units sequentially configured; each storage unit comprises a first memory identification field storage bit and/or a second memory identification field storage bit; each instruction type corresponding to a set number of first memory identification fields and/or second memory identification fields;

sequentially extract a first memory identification field and a second memory identification field of each instruction in a plurality of to-be-run instructions;

obtain one-hot encoding of the first memory identification field and/or one-hot encoding of the second memory identification field of each instruction;

store the one-hot encoding of the first memory identification field and the one-hot encoding of the second memory identification field of each instruction into a corresponding Memory Sync ID Table based on an execution order of the plurality of to-be-run instructions; and

send an instruction parameter of each instruction to a corresponding instruction unit of a corresponding instruction queue;

dependency identification information of any one instruction type and other two instruction types based on one-hot encoding of first memory identification fields and one-hot encoding of second memory identification fields of each instruction type in each Memory Sync ID Table; and generate a sync table along a first data dimension based on the dependency identification information; the sync table comprising the first data dimension and a second data dimension converged with each other; the first data dimension of each instruction type corresponding to a storage bit number of each Memory Sync ID Table of each instruction type; and

execute a corresponding instruction based on dependency of each type of instructions along the second data dimension of the sync table; a number of the second data dimension of each instruction type corresponding to a number of instruction units in a corresponding instruction queue; and call, by the instruction sync control module, the instruction parameter corresponding to each instruction in a corresponding instruction unit through the sync table while executing each instruction in the plurality of to-be-run instructions.

7. The system of claim 6 , wherein,

each instruction type comprises one of a loading instruction, a computing instruction and a storage instruction;

each Memory Sync ID Table comprises one of a Memory Sync ID Table of loading instructions, a Memory Sync ID Table of computing instructions and a Memory Sync ID Table of storage instructions; and

each instruction queue comprises one of a loading instruction queue corresponding to loading instructions, a computing instruction queue corresponding to computing instructions and a storage instruction queue corresponding to storage instructions.

8. The system of claim 6 , wherein, each Memory Sync ID Table comprises 8 storage units sequentially configured; and

each instruction queue comprises 8 instruction units.

9. The system of claim 8 , wherein,

each storage unit of the Memory Sync ID Table of loading instructions comprises a first memory identification field and a second memory identification field;

each storage unit of the Memory Sync ID Table of computing instructions comprises a first memory identification field and a second memory identification field; and

each storage unit of the Memory Sync ID Table of storage instructions comprises a second memory identification field.

10. The system of claim 6 , wherein, the reconfigurable processor is configured to:

judge whether each instruction unit of each instruction queue is full or not;

in response to that each instruction unit of each instruction queue is full, return to judge whether each instruction unit of each instruction queue is full or not until there is an idle instruction unit in each instruction queue; and

in response to that each instruction unit of each instruction queue is not full, obtain dependency identification information.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2022
From: FEI, BAOCHUAN; OUYANG, PENG; TANG, SHIBIN; DENG, LIWEI
To: BEIJING TSINGMICRO INTELLIGENT TECHNOLOGY CO., LTD.
Reel/Frame 059736/0884 →
Priority Claims (1)
CN 202011539672.1 · Dec 23, 2020 · national
Continuity (1)
Related Publication 20230068463A1 · Mar 2, 2023