Claims
- 1. An input/output (I/O) system that transfers control and data between a core-processing engine and a plurality of bus types including direct memory access (DMA) bus and a streaming data bus, the system comprising:
a streaming interface to transfer streamed data between the streaming data bus and the core-processing engine; a DMA interface to transfer DMA data between the DMA data bus and the core-processing engine; and an arbiter for coordinating data transfer between the core-processing engine and both the streaming interface and the DMA interface.
- 2. The system of claim 1 wherein the arbiter:
receives a request to process data from the core-processing engine indicating when the core-processing engine is ready to process data; selects either the streaming interface or the DMA interface; enters into an address phase with the core-processing engine; and enters into a data phase with the core-processing engine to transfer data from the selected interface to the core-processing engine.
- 3. The system of claim 2 wherein the request to process data is received on one of a plurality of request signal lines, each request signal line being associated with each of a plurality of channels through which the processing core engine processes data.
- 4. The system of claim 2 wherein when the DMA interface is selected, a host address, a local address and a byte count are identified as part of the address phase.
- 5. The system of claim 4 wherein when the streaming interface is selected, during the address phase, a dummy address is used for a host source address for reading data, and a dummy address is used as a host destination address when writing data.
- 6. The system of claim 4 wherein the arbiter operates in a split-bus-type mode wherein the arbiter performs the address phase for at least one channel of a plurality of channels prior to entering into the data phase for the one of the channels.
- 7. The system of claim 4 wherein the arbiter operates in a split-bus-type mode wherein the arbiter performs the address phase for more than one channel of a plurality of channels prior to entering into the data phase for a first one of the channels.
- 8. The system of claim 1 further comprising a common address bus and data bus between the core-processing engine and each of the interfaces.
- 9. The system of claim 1 further comprising:
a switching fabric; a first address bus and data bus coupling the streaming interface with the core-processing engine through the switching fabric; and a second address bus and data bus coupling the DMA interface with the core-processing engine through the switching fabric.
- 10. The system of claim 1 further comprising:
a streaming I/O core between the streaming data bus and the streaming interface; and a DMA I/O core coupled between the DMA data bus and the DMA interface, wherein the streaming I/O core is a state machine for interfacing with a streamed data bus and implementing a streaming data protocol, and wherein the DMA I/O core is a state machine interfacing with a DMA-type bus and implementing a DMA protocol.
- 11. The system of claim 10 wherein the DMA I/O core implements a DMA protocol for one of either a PCI, PCI 2.0, PCI 2.1, PCI 2.2, PCIX, Infiniband, or HyperTransport interface, and
wherein the streaming I/O core implements a streaming data protocol for one of either a PL3, SPI 4, or GMII packet interface.
- 12. The system of claim 3 wherein each channel of the plurality is associated with either streamed data or DMA data, and wherein the arbiter selects either the streaming interface or the DMA interface based on type of data associated with the channel from which the request is received, and wherein in response to the request to process data, the arbiter selects one of the interfaces which has data available for processing.
- 13. The system of claim 1 wherein the streaming interface is a first interface and the DMA interface is a second interface, and the system further comprises a third interface, and wherein the arbiter coordinates data transfer between the core-processing engine and each of the interfaces
- 14. The system of claim 13 wherein the third interface is one of either a second streaming interface for transferring streamed data with the core-processing engine or a second DMA interface for transferring DMA data with the core-processing engine.
- 15. An arbiter for coordinating data communications between a plurality of interfaces and a processing core comprising:
control logic for selecting one of said interfaces for a data transfer with a processing core; and a multiplexing element receiving a plurality of communication signals from the processing core and providing the communication signals to the selected interface element in response to the control logic.
- 16. The arbiter of claim 15 wherein the control logic selects either a direct memory access (DMA) interface or a streaming interface, coordinates an address phase and coordinates a data phase for a subsequent transfer of data with the selected interface.
- 17. The arbiter of claim 16 where when the selected interface is the streaming interface, during the address phase, a dummy address is used for a host source address for reading data, and a dummy address is used as a host destination address when writing data.
- 18. The arbiter of claim 17 wherein the arbiter operates in a split-bus-type mode wherein the arbiter performs the address phase for at least one channel of a plurality of channels prior to entering into the data phase for the one of the channels.
- 19. The arbiter of claim 17 wherein the arbiter operates in a split-bus-type mode wherein the arbiter performs the address phase for more than one channel of a plurality of channels prior to entering into the data phase for a first one of the channels.
- 20. The arbiter of claim 15 wherein the multiplexing element includes signal lines for receiving a request for data from each of a plurality of channels of the processing core.
- 21. The arbiter of claim 20 further comprising a programmable register for storing channel control bits indicating for each channel, a type of interface for each channel, the type being either a direct memory access interface or a streaming interface.
- 22. The arbiter of claim 21 wherein the programmable register is reconfigured by a host by receiving new channel control bits for one of the channels, and wherein the control logic is response the new channel control bits after a complete data packet transfer is completed for the one channel.
- 23. The arbiter of claim 16 wherein the DMA interface is one of either a PCI, PCI 2.0, PCI 2.1, PCI 2.2, PCIX, Infiniband, or HyperTransport interface, and wherein the streaming interface is one of either a PL3, SPI 4, or GMII packet interface.
- 24. A method of transferring control and data between a core-processing engine and a plurality of bus types including direct memory access (DMA) bus and a streaming data bus, the method comprising:
transferring streamed data from the streaming data bus to the core-processing engine using a streaming interface; transferring DMA data from the DMA data bus to the core-processing engine using a DMA interface; and coordinating data transfer with the core-processing engine between the streaming interface and the DMA interface using an arbiter.
- 25. The method of claim 24 further comprising:
receiving a request for data from the core-processing engine indicating when the core-processing engine is ready to process data; selecting either the streaming interface or the DMA interface; entering into an address phase with the core-processing engine; and entering into a data phase with the core-processing engine to transfer data from the selected interface to the core-processing engine.
- 26. The method of claim 25 wherein the request to process data is received on one of a plurality of request signal lines, each request signal line being associated with each of a plurality of channels through which the processing core engine processes data.
- 27. The method of claim 25 wherein when the DMA interface is selected, the method includes identifying a host address, a local address and a byte count as part of the address phase.
- 28. The method of claim 25 wherein when the streaming interface is selected, during the address phase, a dummy address is used for a host source address for reading data, and a dummy address is used as a host destination address when writing data.
- 29. The method of claim 24 further comprising the arbiter performing the address phase for at least one channel of a plurality of channels prior to entering into the data phase for the one of the channels.
- 30. The method of claim 24 further comprising the arbiter performing the address phase for more than one channel of a plurality of channels prior to entering into the data phase for a first one of the channels.
- 31. The method of claim 24 each channel is associated with either streamed data or DMA data, and wherein the method comprises selecting either the streaming interface or the DMA interface based on type of data associated with the channel from which the request is received.
- 32. The method of claim 24 wherein in response to the request to process data, the method includes selecting one of the interfaces which has data available for processing.
- 33. The method of claim 24 wherein the streaming interface is a first interface and the DMA interface is a second interface, and wherein a third interface is provided, and wherein the method further includes coordinating data transfer between the core-processing engine and each of the interfaces.
- 34. The method of claim 24 wherein the DMA interface is one of either a PCI, PCI 2.0, PCI 2.1, PCI 2.2, PCIX, Infiniband, or HyperTransport interface, and wherein the streaming interface is one of either a PL3, SPI 4, or GMII packet interface.
- 35. The method of claim 24 wherein a common address bus and data bus between the core-processing engine and each of the interfaces.
- 36. The method of claim 24 wherein a first address bus and data bus couple the streaming interface with the core-processing engine through a switching fabric, and a second address bus and data bus coupling the DMA interface with the core-processing engine through the switching fabric.
PRIORITY CLAIM UNDER 35 U.S.C. 119
[0001] This patent application claims priority under 35 U.S.C. 119(e) claiming the benefit of earlier filed U.S. provisional patent application serial number 60/297975, filed Jun. 13, 2001.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60297975 |
Jun 2001 |
US |