Quiesce reconfigurable data processor
US-2021011770-A1 · Jan 14, 2021 · US
US12072836B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12072836-B2 |
| Application number | US-202318105187-A |
| Country | US |
| Kind code | B2 |
| Filing date | Feb 2, 2023 |
| Priority date | Feb 9, 2022 |
| Publication date | Aug 27, 2024 |
| Grant date | Aug 27, 2024 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A reconfigurable processor includes an array of configurable units connected by a bus system. Each configurable unit has a configuration data store, organized as a shift register, to store configuration data. The configuration data store also includes individually addressable argument registers respectively made up of word-sized portions of the shift register to provide arguments to the configurable unit. The configurable unit also includes program load logic shift data into the configuration data store, and argument load logic to directly load data into the argument registers without shifting the received argument data through the shift register. A program load controller is associated with the array to respond to a program load command by executing a program load process, and a fast argument load (FAL) controller is associated with the array to respond to an FAL command by executing an FAL process.
Opening claim text (preview).
The invention claimed is: 1. A reconfigurable processor comprising: an array of configurable units connected by a bus system, a configurable unit in the array of configurable units including a configuration data store, organized as a shift register, to store configuration data, the configuration data store also including individually addressable argument registers respectively comprising word-sized portions of the shift register adapted to provide arguments to the configurable unit, the configurable unit further including program load logic to receive sub-files of the configuration data via the bus system and to load the received sub-files into the configuration data store, including the argument registers, by sequentially shifting the received sub-files into the shift register, the configurable unit further including argument load logic to receive argument data via the bus system and load the received argument data into the argument registers without shifting the received argument data through the shift register; a program load controller associated with the array to respond to a program load command by executing a program load process, including sending a first signal to the configurable unit, and subsequently distributing a configuration file comprising the sub-files of configuration data to the configurable unit in the array as specified in the configuration file; and a fast argument load (FAL) controller associated with the array to respond to an FAL command by executing an FAL process, including sending a second signal to the configurable unit, and subsequently distributing (value, control) tuples to the configurable unit as specified in an argument load file. 2. The reconfigurable processor of claim 1 , wherein the shift register comprises a multi-bit wide shift chain that includes the individually addressable argument registers, and the configurable unit is configured to provide multiple access modes to an argument register of the individually addressable argument registers, the multiple access modes including: a first access mode of sequentially shifting argument data into the argument register via the multi-bit wide shift chain; and a second access mode of accessing the argument register directly without changing data loaded into other parts of the shift register. 3. The reconfigurable processor of claim 1 , wherein the configurable units in the array of configurable units are further connected in an interconnect topology, separate from, and in addition to, the bus system, the interconnect topology comprising a daisy chain used by the configurable unit to indicate completion of at least a portion of loading the received sub-files of the configuration data or loading the received argument data. 4. The reconfigurable processor of claim 1 , wherein the configurable unit is configurable to transition to an IDLE state, to abandon execution of the FAL process, and to set an error bit of a tile status register in response to receiving an error during a memory access. 5. The reconfigurable processor of claim 1 , wherein the argument load logic in the configurable unit is configured to cause a component state machine in the configurable unit to transition from a current state to an argument load state in response to receiving the second signal. 6. The reconfigurable processor of claim 5 , wherein the current state of the configurable unit is one of idle, program load, checkpoint, execute, or quiesce. 7. The reconfigurable processor of claim 5 , wherein the configurable unit is configured to, while in the argument load state, receive a (value, control) tuple, and write a value included in the (value, control) tuple to an argument register of the individually addressable argument registers identified by a register identifier included in the (value, control) tuple, and signal completion of the write of the value to the argument register by sending a response packet to the FAL controller. 8. The reconfigurable processor of claim 7 , wherein the FAL controller is configured to send the (value, control) tuple to the configurable unit over a vector network of the bus system using dimension order routing, and the configurable unit is configured to send the response packet including a set control bit to the FAL controller over a scalar network of the bus system. 9. The reconfigurable processor of claim 7 , wherein the configurable unit remains in the argument load state until it receives a different command. 10. The reconfigurable processor of claim 1 , wherein the argument load file includes a list of (value, control) tuples specifying values to be written to argument registers, the list containing a (value, control) tuple for argument registers to be written by the FAL controller during a single invocation of the FAL process. 11. The reconfigurable processor of claim 10 , wherein each (value, control) tuple includes a value word of data to be written to an argument register and a control word of data indicating a location of an argument register of the argument registers to be written. 12. The reconfigurable processor of claim 11 , wherein the control word of data includes an ID of the argument register to be written and a destination identification of the configurable unit containing the argument register to be written. 13. The reconfigurable processor of claim 12 , wherein the destination identification identifies a row in the array of configurable units containing the configurable unit, a column in the array of configurable units containing the configurable unit, and a type of the configurable unit, the type being one of memory unit, compute unit, switch, and interface unit. 14. A method for operating a reconfigurable processor that includes an array of configurable units connected by a bus system to a program load controller and a fast argument load (FAL) controller, a configurable unit in the array of configurable units including a configuration data store, organized as a shift register, to store configuration data, the configuration data store also including individually addressable argument registers respectively comprising word-sized portions of the shift register adapted to provide arguments to the configurable unit, the method comprising: receiving a program load command and responding by: obtaining a configuration file including sub-files of the configuration data; sending a first signal from the program load controller to the configurable unit; and distributing the sub-files of configuration data to the configurable unit; receiving the sub-files of the configuration data via the bus system at the configurable unit; and loading the received sub-files into the configuration data store, including the argument registers, by sequentially shifting data of the received sub-files into the shift register; and receiving an FAL command and responding by executing an FAL process that includes: sending a second signal from the FAL controller to the configurable unit; obtaining argument load information including one or more argument values to be loaded into respective argument registers in the configurable unit; distributing the argument load information to the configurable unit; receiving the argument load information via the bus system at the configurable unit; and loading the one or more argument values into the respective argument registers without shifting the one or more argument values through the shift register. 15. The method of claim 14 , wherein the argument load information includes one or more (value, control) tuples that respectively provide one argument value and an identifier of a respective argument
with reconfigurable architecture · CPC title
Configuring for program initiating, e.g. using registry, configuration files · CPC title
according to data content, e.g. floating-point registers, address registers · CPC title
Runtime interface, e.g. data exchange, runtime control · CPC title
Register stacks; shift registers · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.