Claims
- 1. An interface for integrating reconfigurable processors into a computer system comprising:
control logic which manages the interaction between at least one reconfigurable processor and a computer system; command processor commands organized into command lists; memory which stores the current command list; registers which store data and settings; common memory; direct memory access logic which coordinates the transfer of the reconfigurable processor instructions and data; address translation buffer which store translation data and translating virtual memory addresses to physical memory addresses; and memory dedicated to the reconfigurable processor.
- 2. The processor interface of claim 1, wherein the registers further comprise:
data registers; user data registers; and flag registers.
- 3. The processor interface of claim 1, wherein the common memory storage includes at least one command list area for storing command lists that are available for processing.
- 4. The processor interface of claim 1, wherein the common memory storage includes a status and control area for storing status and control data.
- 5. The processor interface of claim 4, wherein the status and control data includes address translation data.
- 6. The processor interface of claim 1, wherein the dedicated memory includes at least one data bus.
- 7. The processor interface of claim 1 further comprising input/output logic.
- 8. The processor interface of claim 1 further comprising application specific user logic.
- 9. A method for processing command processor commands compiled from a user application, said method comprising the steps of:
storing command lists into an area of common memory; receiving a fetch command sent by the user application; fetching a command list from the common memory; loading the command list into a command list memory within the interface; processing of the command list; interacting with user logic to exchange data and control signals; determining if a second command list is ready for processing; and
wherein if a second command list is ready for processing, processing the second command list in the same method as the command list, and wherein otherwise await a second fetch command.
- 10. The method of claim 9, wherein the loading of the command list further comprises receiving a fetch done signal when the entire command list has been loaded.
- 11. The method of claim 9, wherein the processing of the command list further comprises the step of determining if the command list length exceeds a length limit,
wherein if the command list length exceeds the length limit, an interrupt is generated and processing of the command list is halted.
- 12. The method of claim 9 further comprising the step of halting execution.
- 13. The method of claim 12, wherein the halting execution further comprises the steps of:
terminating the execution of control logic; saving control state data in dedicated memory; saving status and control data; saving translation look-aside data; if halt request was not received via a direct command, and if interrupts are enabled, sending an interrupt; and halting further execution.
- 14. The method of claim 12 further comprising the step of continuing execution.
- 15. The method of claim 14 wherein continuing execution further comprises the steps of:
determining reason for halting execution; and restarting execution.
- 16. The method of claim 15, wherein if processing is to be continued from a partially processed instruction, the step of restarting execution further comprises the steps of:
making necessary changes to parameters in the status and control data, and translation look-aside data; reloading control state data in dedicated memory; reloading status and control data; reloading translation look-aside data; issuing a continue from saved command; and processing instructions.
- 17. The method of claim 15, wherein if processing is to be continued from a fully processed instruction, the step of restarting execution further comprises the steps of:
reloading control state data in dedicated memory; reloading status and control data; reloading translation look-aside data; issuing a continue command; and processing instructions.
- 18. The method of claim 15, wherein if a new sequence is to be started, the step of restarting execution further comprises the steps of:
loading a command list; issuing a direct command to start execution; and processing the command list.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Patent Application No. 60/286,979 filed Apr. 30, 2001, and entitled “Delivering Acceleration: The Potential for Increased HPC Application Performance Using Reconfigurable Logic,” which is hereby incorporated by reference in its entirety.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60286979 |
Apr 2001 |
US |