INCORPORATING A SPATIAL ARRAY INTO ONE OR MORE PROGRAMMABLE PROCESSOR CORES
First Claim
1. A method of operating a processor comprising a plurality of functional units arranged in one or more cores, comprising:
- configuring the functional units to operate in one of two discrete operational modes, a first discrete operational mode being implemented with the functional units in a standard core configuration using a first datapath, and a second discrete mode being implemented with the functional units in a spatial array configuration using a second datapath;
receiving a block of operating instructions, the operating instructions including an indication of the operational mode to be utilized for the block; and
dynamically reconfiguring the functional units at runtime to operate in one or the other discrete operational mode according to the received block of operating instructions.
3 Assignments
0 Petitions
Accused Products
Abstract
Functional units disposed in one or more processor cores are communicatively coupled using both a shared bypass network and a switched network. The shared bypass network enables the functional units to be operated conventionally for general processing while the switched network enables specialized processing in which the functional units are configured as a spatial array. In the spatial array configuration, operands produced by one functional unit can only be sent to a subset of functional units to which dependent instructions have been mapped a priori. The functional units may be dynamically reconfigured at runtime to toggle between operating in the general configuration and operating as the spatial array. Information to control the toggling between operating configurations may be provided in instructions received by the functional units.
72 Citations
20 Claims
-
1. A method of operating a processor comprising a plurality of functional units arranged in one or more cores, comprising:
-
configuring the functional units to operate in one of two discrete operational modes, a first discrete operational mode being implemented with the functional units in a standard core configuration using a first datapath, and a second discrete mode being implemented with the functional units in a spatial array configuration using a second datapath; receiving a block of operating instructions, the operating instructions including an indication of the operational mode to be utilized for the block; and dynamically reconfiguring the functional units at runtime to operate in one or the other discrete operational mode according to the received block of operating instructions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A microarchitecture, comprising:
-
a plurality of arithmetic logic units (ALUs) distributed across one or more cores of a programmable processor; a pipelined datapath providing inter-ALU connectivity while the processor is configured to perform standard processing; a switched network providing inter-ALU connectivity configured to provide switchable configurations of ALUs, the ALUs switchably configurable for standard operations and for spatial array processing; and an instruction set interface configured for receiving instructions, the instructions including operating instructions and control information for dynamically reconfiguring the ALUs during runtime. - View Dependent Claims (15, 16)
-
-
17. A method for operating one or more processor cores, comprising:
-
implementing a plurality of arithmetic logic units (ALUs) instantiated in the one or more processor cores; implementing one or more fixed spatial arrays external to the one or more processor cores; simultaneously interconnecting the ALUs using two sets of datapaths, a first set of datapaths being implemented at least in part using a bypass network, a second set of datapaths being implemented at least in part by a switched network; and configuring the ALUs to operate (a) as a spatial array with inter-ALU communications being conducted over the switched network or (b) for general processing with inter-ALU communications being conducted over the bypass network. - View Dependent Claims (18, 19, 20)
-
Specification