Data flow control for adaptive integrated circuitry
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-009/46
G06F-009/40
G06F-009/44
출원번호
US-0641976
(2003-08-14)
등록번호
US-7353516
(2008-04-01)
발명자
/ 주소
Heidari Bateni,Ghobad
Sambhwani,Sharad D.
출원인 / 주소
NVIDIA Corporation
대리인 / 주소
Patterson & Sheridan, L.L.P.
인용정보
피인용 횟수 :
18인용 특허 :
4
초록▼
The present invention concerns data flow control in adaptive integrated circuitry which utilizes a data flow model for data processing. The present invention controls task initiation and execution based upon data consumption measured in data buffer units. In the various embodiments, when a first ta
The present invention concerns data flow control in adaptive integrated circuitry which utilizes a data flow model for data processing. The present invention controls task initiation and execution based upon data consumption measured in data buffer units. In the various embodiments, when a first task of a plurality of tasks is initiated, buffer parameter is determined and a buffer count is initialized for the first task. For each iteration of the first task using a data buffer unit of input data, the buffer count is correspondingly adjusted, such as incremented or decremented. When the buffer count meets the buffer parameter requirements, the state of the first task is changed, which may including stopping the first task, and a next action is determined, such as initiating a second task. The various apparatus embodiments include a hardware task manager, a node sequencer, a programmable node, and use of a monitoring task within an adaptive execution unit.
대표청구항▼
It is claimed: 1. An apparatus for providing data flow control in an adaptive computing circuit, the apparatus comprising: a reconfigurable node capable of executing a first task and a second task of a plurality of tasks the reconfigurable node comprising: a wrapper having a hardware task manager;
It is claimed: 1. An apparatus for providing data flow control in an adaptive computing circuit, the apparatus comprising: a reconfigurable node capable of executing a first task and a second task of a plurality of tasks the reconfigurable node comprising: a wrapper having a hardware task manager; and an adaptive execution unit coupled to the wrapper, the adaptive execution unit comprising: a plurality of computational elements, wherein a first computational element of the plurality of computational elements has a first fixed architecture and a second computational element of the plurality of computational elements has a second fixed architecture, the first fixed architecture being different from the second fixed architecture; a plurality of switching elements coupled to the plurality of computational elements, the plurality of switching elements capable of configuring the plurality of computational elements for performance of the first task in response to first configuration information, and the plurality of switching elements further capable of reconfiguring the plurality of computational elements for performance of the second task in response to second configuration information, the first task being different than the second task; the hardware task manager and the adaptive execution unit communicating through a shared memory to track states of the first and second tasks and to define the configuration of the computational elements; and a programmable node coupled to the reconfigurable node, the programmable node capable of initiating the first task, determining a buffer parameter defining the number of buffers to be consumed in execution of the first task; initializing a buffer count for the first task; for each iteration of the first task by the reconfigurable node using a data buffer unit of the number of buffers of input data, correspondingly adjusting a buffer count; and when the buffer count meets the buffer parameter requirements, changing a state of the first task and initiating the second task utilizing a new buffer parameter. 2. The apparatus of claim 1 wherein the reconfigurable node is further capable of providing a message to the programmable node, the message indicating use of a data buffer unit of input data, for each iteration of the first task by the reconfigurable node. 3. The apparatus of claim 1 wherein the programmable node is further capable of providing a message to the reconfigurable node, the message indicating the change of state of the first task. 4. The apparatus of claim 1 wherein the programmable node is further capable of providing a message to the reconfigurable node, the message indicating the initiation of the second task as the next action. 5. The apparatus of claim 4, wherein the programmable node is further capable of signaling the reconfigurable node to stop the second task and resume of execution of the first task. 6. The apparatus of claim 5, wherein when the next action is a second task, the monitoring task is further capable of stopping the first task and initiating the second task. 7. The apparatus of claim 1, wherein when the next action is a second task, the programmable node is further capable signaling the reconfigurable node to stop the first task and initiate the second task. 8. An apparatus comprising: an adaptive execution unit capable of executing a first task and a second task of a plurality of tasks, the adaptive execution unit further capable of executing a monitoring task; a plurality of computational elements, wherein a first computational element of the plurality of computational elements has a first fixed architecture and a second computational element of the plurality of computational elements has a second fixed architecture, the first fixed architecture being different from the second fixed architecture; and an interconnection network coupled to the plurality of computational elements, the interconnection network capable of configuring the plurality of computational elements for performance of the first task in response to first configuration information; the interconnection network further capable of reconfiguring the plurality of computational elements for performance of the second task in response to second configuration information, the first task being different than the second task; and the interconnection network further capable of reconfiguring the plurality of compational elements for performance of a monitoring task in response to third configuration information, the monitoring task being different than the first task and the second task; and a hardware task manager coupled to the adaptive execution unit, the hardware task manager capable of initiating the first task for execution by the adaptive execution unit; the hardware task manager and the adaptive execution unit communicating through a shared memory to track states of the first and second tasks and to define the configuration of the computational elements; wherein the hardware task manager is adopted to determine a buffer parameter defining a number of buffers to be consumed in expectation of the first task; initializing a buffer count for the first task; for each iteration of the first task by the adaptive execution unit using a data buffer unit of input data, correspondingly adjusting the buffer count; and when the buffer count meets the buffer parameter requirements, changing a state of the first task initiating each of the second and third tasks utilizing a uniquely determined buffer parameter. 9. The apparatus of claim 8, wherein the monitoring task is further capable of stopping the second task and initiating the resumption of execution of the first task. 10. The apparatus of claim 9, wherein the node sequencer is an instruction processor. 11. The apparatus of claim 10, wherein the node sequencer is further capable of stopping the second task and initiating the resumption of execution of the first task. 12. The apparatus of claim 9, wherein when the next action is a second task, the node sequencer is further capable of stopping the first task and initiating the second task. 13. The apparatus of claim 9, wherein the changing the state of the task by the node sequencer further comprises stopping the execution of the first task. 14. The apparatus of claim 9, wherein the buffer parameter is an integer multiple of the data buffer unit. 15. The apparatus of claim 9, wherein the buffer parameter is a non-integer multiple of the data buffer unit. 16. The apparatus of claim 9, wherein the node sequencer is further capable of initializing the buffer count to equal the buffer parameter; adjusting the buffer count by decrementing from the buffer count; and determining that the buffer count meets the buffer parameter requirements when the buffer count has been decremented to zero. 17. The apparatus of claim 9, wherein the node sequencer is further capable of initializing the buffer count to zero; adjusting the buffer count by incrementing the buffer count; and determining that the buffer count meets the buffer parameter requirements when the buffer count has been incremented to equal the buffer parameter. 18. The apparatus of claim 9, wherein the buffer parameter is determined dynamically by the node sequencer or is a predetermined value. 19. The apparatus of claim 9, wherein the plurality of tasks comprise at least two of the following tasks: power control, channel estimation, rake reception, channel searching, modulation, demodulation, pseudo-noise sequence generation, messaging, signaling, and waiting. 20. An adaptive execution unit comprising: a plurality of computational elements, wherein a first computational element of the plurality of computational elements has a first fixed architecture and a second computational element of the plurality of computational elements has a second fixed architecture, the first fixed architecture being different from the second fixed architecture; an interconnection network coupled to the plurality of computational elements, the interconnection network capable of configuring the plurality of computational elements for performance of a first task of a plurality of tasks in response to first configuration information, and the interconnection network further capable of reconfiguring the plurality of computational elements for performance of a second task of the plurality of tasks in response to second configuration information, the first task being different than the second task; and a node sequencer coupled to the interconnection network, the node sequencer capable of initiating the first task for execution by the adaptive execution unit, determining a buffer parameter defining a number of buffers to be consumed in the execution of the first task; initializing a buffer count for the first task; for each iteration of the first task by the adaptive execution unit using a data buffer unit of the number of buffers of input data, correspondingly adjusting the buffer count; and when the buffer count meets the buffer parameter requirements, changing a state of the first task and initiating the second task utilizing a new buffer parameter corresponding to a number of buffers to be consumed in the second task, wherein a hardware task manager communicates with the adaptive execution unit through a shared memory to track states of the first and second tasks and to define the configuration of the computational elements.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (4)
Master, Paul L.; Hogenauer, Eugene; Scheuermann, Walter James, Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements.
Pian Chao-Kuang (Anaheim CA) Nguyen Minh-Tram D. (Anaheim CA) Posch Theodore E. (Fullerton CA) Juhre Jeffrey E. (Arlington Heights IL), Distributed data driven process.
Ching, Alvin Y.; Wong, Jennifer; New, Bernard J.; Simkins, James M.; Thendean, John M.; Wong, Anna Wing Wah; Vadi, Vasisht Mantra, Architectural floorplan for a digital signal processing circuit.
Wong, Anna Wing Wah; Wong, Jennifer; New, Bernard J.; Ching, Alvin Y.; Thendean, John M.; Simkins, James M.; Vadi, Vasisht Mantra; Schultz, David P., Arithmetic logic unit circuit.
New, Bernard J.; Vadi, Vasisht Mantra; Wong, Jennifer; Ching, Alvin Y.; Thendean, John M.; Wong, Anna Wing Wah; Simkins, James M., Digital signal processing block having a wide multiplexer.
Simkins, James M.; Ching, Alvin Y.; Thendean, John M.; Vadi, Vasisht M.; Poon, Chi Fung; Rab, Muhammad Asim, Digital signal processing block with preadder stage.
Simkins, James M.; Wong, Jennifer; New, Bernard J.; Ching, Alvin Y.; Thendean, John M.; Wong, Anna Wing Wah; Vadi, Vasisht Mantra, Digital signal processing circuit having a SIMD circuit.
Vadi, Vasisht Mantra; Wong, Jennifer; New, Bernard J.; Ching, Alvin Y.; Thendean, John M.; Wong, Anna Wing Wah; Simkins, James M., Digital signal processing circuit having a pattern circuit for determining termination conditions.
Vadi, Vasisht Mantra; Wong, Jennifer; New, Bernard J.; Ching, Alvin Y.; Thendean, John M.; Wong, Anna Wing Wah; Simkins, James M., Digital signal processing circuit having a pattern detector circuit.
New, Bernard J.; Wong, Jennifer; Simkins, James M.; Ching, Alvin Y.; Thendean, John M.; Wong, Anna Wing Wah; Vadi, Vasisht Mantra, Digital signal processing circuit having a pattern detector circuit for convergent rounding.
Simkins, James M.; Thendean, John M.; Vadi, Vasisht Mantra; New, Bernard J.; Wong, Jennifer; Wong, Anna Wing Wah; Ching, Alvin Y., Digital signal processing circuit having a pre-adder circuit.
Thendean, John M.; Wong, Jennifer; New, Bernard J.; Ching, Alvin Y.; Simkins, James M.; Wong, Anna Wing Wah; Vadi, Vasisht Mantra, Digital signal processing circuit having an adder circuit with carry-outs.
Simkins, James M.; Wong, Jennifer; New, Bernard J.; Ching, Alvin Y.; Thendean, John M.; Wong, Anna Wing Wah; Vadi, Vasisht Mantra, Digital signal processing circuit having input register blocks.
Simkins, James M.; Wong, Jennifer; New, Bernard J.; Ching, Alvin Y.; Thendean, John M.; Wong, Anna Wing Wah; Vadi, Vasisht Mantra; Schultz, David P., Digital signal processing element having an arithmetic logic unit.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.