Systems and methods for implementing a machine perception and dense algorithm integrated circuit and enabling a flowing propagation of data within the integrated circuit
Abstract
Systems and methods of propagating data within an integrated circuit includes: identifying a coarse data propagation path for distinct subsets of data of an input dataset that includes: setting inter-core data movements for the distinct subsets of data, the inter-core data movements defining a predetermined propagation of a given subset of data between two or more of a plurality of cores of an integrated circuit array of the integrated circuit; identifying a granular data propagation path for each distinct subset of data that includes: setting intra-core data movements for each distinct subset of data, the intra-core data movements defining a predetermined propagation of the given subset of data within one or more of the plurality of cores of the integrated circuit array of the integrated circuit; enabling a flow of the input dataset within the integrated circuit based on the coarse data propagation path and the granular propagation path.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A method for moving data within an integrated circuit, the method comprising:
executing data movement instructions that move a dataset rotationally within a processing core of an array of processing cores, the processing core comprising a plurality of distinct register files arranged along sides of the processing core, wherein executing the data movement instructions include:
moving the dataset within the processing core in a degree of rotation between zero and three hundred sixty, from a starting register file of the plurality of distinct register files to a terminal register file of the plurality of distinct register files of the processing core.
2 . The method according to claim 1 , wherein:
(i) the data movement instructions further include a sequence of discrete data rotation instructions, and (ii) each discrete data rotation instruction of the sequence comprises a rotational movement value that is a degree of rotation between zero and three hundred sixty.
3 . The method according to claim 1 , wherein
(i) the data movement instructions further include instructions for moving a target dataset directly from a data port of a distinct processing core that neighbors the processing core to the starting register file of the processing core, and (ii) executing the data movement instructions further causes an entry of the target dataset into the processing core via a transmission of the target dataset from the port of the distinct processing core directly to the starting register file of the processing core.
4 . The method according to claim 1 , wherein
(i) the data movement instructions include instructions for moving a target dataset directly from a data loading controller of an integrated circuit that neighbors the processing core to the starting register file of the processing core, and (ii) executing the data movement instructions further causes an entry of the target dataset into the processing core via an injection of the target dataset from the data loading controller directly to the starting register file of the processing core.
5 . The method according to claim 1 , wherein
(i) the data movement instructions further include instructions for moving the dataset directly from the terminal register file of the processing core to a data port of a distinct processing core that neighbors the processing core, and (ii) executing the data movement instructions further causes an exit of the dataset from the processing core via a transmission of the dataset from the terminal register file of the processing core directly to the data port of the distinct processing core.
6 . The method according to claim 1 , wherein:
(i) the data movement instructions further include instructions for moving the dataset directly from the starting register file of the processing core to a data loading controller of an integrated circuit that neighbors the processing core, and (ii) executing the data movement instructions further causes an exit of the dataset from the processing core via a transmission of the dataset from the terminal register file of the processing core directly to the data loading controller.
7 . The method according to claim 1 , wherein
(i) the data movement instructions further include instructions for moving a dataset from the starting register file of the processing core through an intermediary within the processing core to the terminal register file of the processing core, and (ii) executing the data movement instructions further causes a movement of the dataset from the starting register file via the intermediary to the terminal register file of the processing core.
8 . A method for moving data within an integrated circuit, the method comprising:
executing data movement instructions that move a dataset rotationally within a processing core of an array of processing cores, the processing core comprising a plurality of distinct data ports arranged along sides of the processing core, each of the plurality of distinct data ports having a register file, wherein executing the data movement instructions include:
moving the dataset, within the processing core in a degree of rotation between zero and three hundred sixty, from a starting position at a register file of one data port of the plurality of distinct data ports to a terminal position at a register file of another data port of the plurality of distinct data ports of the processing core.
9 . The method according to claim 8 , wherein:
(i) the data movement instructions further include a sequence of discrete data rotation instructions, and (ii) each discrete data rotation instruction of the sequence comprises a rotational movement value that is a degree of rotation between zero and three hundred sixty.
10 . The method according to claim 8 , wherein
(i) the data movement instructions further include instructions for moving a target dataset directly from a data port of a distinct processing core that neighbors the processing core to the starting position of the processing core, and (ii) executing the data movement instructions further causes an entry of the target dataset into the processing core via a transmission of the target dataset from the port of the distinct processing core directly to the starting position of the processing core.
11 . The method according to claim 8 , wherein
(i) the data movement instructions include instructions for moving a target dataset directly from a data loading controller of an integrated circuit that neighbors the processing core to the starting position of the processing core, and (ii) executing the data movement instructions further causes an entry of the target dataset into the processing core via an injection of the target dataset from the data loading controller directly to the starting position of the processing core.
12 . The method according to claim 8 , wherein
(i) the data movement instructions further include instructions for moving the dataset directly from the terminal position of the processing core to a data port of a distinct processing core that neighbors the processing core, and (ii) executing the data movement instructions further causes an exit of the dataset from the processing core via a transmission of the dataset from the terminal position of the processing core directly to the data port of the distinct processing core.
13 . The method according to claim 8 , wherein:
(i) the data movement instructions further include instructions for moving the dataset directly from the starting position of the processing core to a data loading controller of an integrated circuit that neighbors the processing core, and (ii) executing the data movement instructions further causes an exit of the dataset from the processing core via a transmission of the dataset from the terminal position of the processing core directly to the data loading controller.
14 . The method according to claim 8 , wherein
(i) the data movement instructions further include instructions for moving a dataset from the starting position of the processing core through an intermediary within the processing core to the terminal position of the processing core, and (ii) executing the data movement instructions further causes a movement of the dataset from the starting position via the intermediary to the terminal position of the processing core.
15 . A method for moving data within an integrated circuit, the method comprising:
storing each of a plurality of distinct datasets at a register file of one of a plurality of distinct data ports of a processing core of an array of processing cores; and executing data movement instructions that move the plurality of datasets rotationally within the processing core, wherein executing the data movement instructions includes:
moving each of the plurality of datasets stored within the plurality of distinct data ports of the processing core, in a rotation, from a starting position of the plurality of distinct data ports to a terminal position of the plurality of distinct data ports of the processing core.
16 . The method according to claim 15 , wherein:
(i) the data movement instructions further include a sequence of discrete data rotation instructions, and (ii) each discrete data rotation instruction of the sequence comprises a rotational movement value that is a degree of rotation between zero and three hundred sixty.
17 . The method according to claim 15 , wherein
(i) the data movement instructions further include instructions for moving a target dataset directly from a data port of a distinct processing core that neighbors the processing core to the starting position of the processing core, and (ii) executing the data movement instructions further causes an entry of the target dataset into the processing core via a transmission of the target dataset from the port of the distinct processing core directly to the starting position of the processing core.
18 . The method according to claim 15 , wherein
(i) the data movement instructions include instructions for moving a target dataset directly from a data loading controller of an integrated circuit that neighbors the processing core to the starting position of the processing core, and (ii) executing the data movement instructions further causes an entry of the target dataset into the processing core via an injection of the target dataset from the data loading controller directly to the starting position of the processing core.
19 . The method according to claim 15 , wherein
(i) the data movement instructions further include instructions for moving the dataset directly from the terminal position of the processing core to a data port of a distinct processing core that neighbors the processing core, and (ii) executing the data movement instructions further causes an exit of the dataset from the processing core via a transmission of the dataset from the terminal position of the processing core directly to the data port of the distinct processing core.
20 . The method according to claim 15 , wherein
(i) the data movement instructions further include instructions for moving a dataset from the starting position of the processing core through an intermediary within the processing core to the terminal position of the processing core, and (ii) executing the data movement instructions further causes a movement of the dataset from the starting position via the intermediary to the terminal position of the processing core.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.