US20060095604A1 - Implementing bufferless DMA controllers using split transactions - Google Patents
Implementing bufferless DMA controllers using split transactions Download PDFInfo
- Publication number
- US20060095604A1 US20060095604A1 US10/975,803 US97580304A US2006095604A1 US 20060095604 A1 US20060095604 A1 US 20060095604A1 US 97580304 A US97580304 A US 97580304A US 2006095604 A1 US2006095604 A1 US 2006095604A1
- Authority
- US
- United States
- Prior art keywords
- write command
- read
- identifier
- command
- read data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present embodiments of the invention relate generally to input/output (I/O) processors and, more specifically, relate to direct memory access (DMA) controllers.
- I/O input/output
- DMA direct memory access
- I/O processors allow servers, workstations, and storage subsystems to transfer data faster, reduce communication bottlenecks, and improve overall system performance by offloading I/O processing functions from a host central processing unit (CPU).
- CPU central processing unit
- the CPU(s) in the I/O processors program direct memory access (DMA) controller(s) to move data between specified sources and destinations, such as between local memory and host memory.
- DMA controller direct memory access
- the DMA controller Once the DMA controller is programmed, it will generate a read command to the source's interface or controller. This controller or interface will generate the read command for the source, and once it obtains the read data will place that data on the bus to the DMA controller.
- Typical DMA controllers include buffers to temporarily store data when the data is moved between sources and destinations, such as between host and local memories. The DMA controller will accept the read data and store it in the DMA controller data buffers. At this time, the DMA controller will generate a write command to the destination's interface or controller. The destination interface or controller will accept this write command. Finally, the DMA controller provides the write data being stored in the DMA controller data buffers to the destination interface or controller in order to be written to the destination.
- DMA controller direct memory access
- DMA controller data buffers can lead to increased area requirements, increased power requirements, and added complexity to the I/O processor.
- the use of DMA controller data buffers also slows down performance and increases costs for I/O processors.
- FIG. 1 illustrates a block diagram of one embodiment of a computer system
- FIG. 2 illustrates a flow diagram of one embodiment for implementing bufferless DMA controllers
- FIG. 3 illustrates a flow diagram of another embodiment for implementing bufferless DMA controllers
- FIG. 4 illustrates a flow diagram of another embodiment for implementing bufferless DMA controllers.
- FIG. 5 illustrates a flow diagram of another embodiment for implementing bufferless DMA controllers.
- DMA bufferless direct memory access
- FIG. 1 is a block diagram of one embodiment of a computer system 100 to implement bufferless DMA controllers using split transactions.
- the system 100 includes a local memory 110 , an I/O processor 120 , an external bus 132 , a host system 140 , and a host memory 145 .
- Embodiments of the invention are not limited to being implemented with local and host memories, but may generally be implemented between any source and destination units accessed by an I/O processor.
- the I/O processor 120 further includes a memory controller 122 , a split transaction bus 124 , a CPU 126 , a DMA controller 128 , and an external bus interface 130 .
- a memory controller 122 receives data from the I/O processor 120 and determines whether a processor is accessed from the I/O processor 120 .
- the I/O processor 120 provides for intelligent I/O with the help of the CPU 126 and memory controller 122 coupled to the split transaction bus 124 .
- CPU 126 is a processor in the Pentium® family of processors including the Pentium® II processor family, Pentium® III processors, and Pentium® IV processors available from Intel Corporation of Santa Clara, Calif. Alternatively, other CPUs may be used.
- the memory controller interfaces the local memory 110 , and that local memory 110 may include random access memory (RAM) such as Synchronous Dynamic RAM (SDRAM).
- RAM random access memory
- SDRAM Synchronous Dynamic RAM
- the local memory 154 includes the instructions and data for execution and use by the CPU 126 .
- split transaction bus 124 is a bus that is capable of supporting explicit split transactions of both read and write commands.
- split transaction bus 124 is a XSI on-chip-bus.
- other split-transaction-capable buses may be used.
- split transactions split the address and data information phases of a data transfer. Splitting these phases is implemented by using an identifier, for example a Sequence ID. The address and data phases of the split transaction are coupled using the identifier. During the address phase, the requesting unit provides an identifier with command and attributes.
- the unit supplying data uses the same identifier in order to tie the commands together at each unit.
- the agent which claimed the read command will supply data, while during writes the agent that generated the write command provides data. Additionally, a byte count may be used, along with the identifier, to couple the address and data phases of a split transaction.
- the DMA controller 128 moves data from local memory 110 to host memory 145 , or alternatively, from host memory 145 to local memory 110 .
- the data transfer may take place without the use of data buffers in the DMA controller.
- the CPU 126 first programs the DMA controller 128 to perform the data transfer.
- the DMA controller 128 will then generate a write command to the memory controller 122 .
- This write command includes an Identifier (ID) and, in some embodiments, a Byte Count.
- the DMA controller 128 then generates a read command to the external interface 130 with the same ID and Byte Count information.
- the external interface 130 will then claim the read command and generate the read command on the external bus 132 .
- the external interface 130 receives the read data from host system 140 , it places the read data, with the corresponding ID and Byte Count, on the split transaction bus 124 .
- memory controller 122 will accept the read data because the ID and Byte Count of the read data match the ID and Byte Count of the write command the memory controller 122 previously received from the DMA controller 128 .
- the CPU 126 first programs the DMA controller 128 to perform the data transfer.
- the DMA controller 128 will then generate a write command to the external bus interface 130 .
- This write command includes an Identifier (ID) and, in some embodiments, a Byte Count.
- the DMA controller 128 then generates a read command to the memory controller 122 with the same ID and Byte Count information.
- the memory controller 122 will then claim the read command and place the read data from local memory 110 , with corresponding ID and Byte Count, on to the split transaction bus 124 .
- external bus interface 130 accepts the read data on the split transaction bus 124 because the ID and Byte Count match the ID and Byte Count of the write command the external bus interface 130 previously received from the DMA controller 128 .
- the CPU 126 first programs the DMA controller 128 to perform the data transfer.
- the DMA controller 128 will then generate a write command to the memory controller 122 .
- This write command includes an Identifier (ID) and, in some embodiments, a Byte Count.
- the DMA controller 128 then generates a read command to the memory controller 122 with the same ID and Byte Count information.
- the memory controller 122 will then claim the read command and place the read data from local memory 110 , with corresponding ID and Byte Count, on to the split transaction bus 124 . Finally, the memory controller 122 accepts the read data on the split transaction bus 124 because the ID and Byte Count match the ID and Byte Count of the write command the memory controller 122 previously received from the DMA controller 128 .
- the CPU 126 first programs the DMA controller 128 to perform the data transfer.
- the DMA controller 128 will then generate a write command to the external bus interface 130 .
- This write command includes an Identifier (ID) and, in some embodiments, a Byte Count.
- the DMA controller 128 then generates a read command to the external bus interface 130 with the same ID and Byte Count information.
- the external interface 130 will then claim the read command and generate the read command on the external bus 132 .
- the external interface 130 receives the read data from host system 140 , it places the read data, with the corresponding ID and Byte Count, on the split transaction bus 124 .
- external bus interface 130 accepts the read data on the split transaction bus 124 because the ID and Byte Count match the ID and Byte Count of the write command the external bus interface 130 previously received from the DMA controller 128 .
- FIG. 2 depicts a flow diagram of one embodiment of implementing bufferless DMA controllers using split transactions. More specifically, the flow diagram depicts a data transfer from a host memory to a local memory, under one embodiment of the invention.
- the CPU programs the DMA controller to perform a data transfer.
- the DMA controller uses the split transaction functionality of the bus the DMA controller generates a write command to the memory controller with a unique ID and a Byte Count at processing block 220 .
- the DMA controller generates a read command to the external interface (using the source address) with the same ID and Byte Count as the write command that was previously given to the memory controller.
- the external interface claims the read command at processing block 240 and generates the read command on the external bus at processing block 250 .
- the external interface receives the read data from the host system at processing block 260 , it places this data on the split transaction bus at processing block 270 .
- the memory controller accepts the read data found on the split transaction bus that matches the ID and Byte Count of the write command earlier given to it by the DMA controller.
- FIG. 3 depicts a flow diagram of one embodiment of implementing bufferless DMA controllers using split transactions. More specifically, the flow diagram depicts a data transfer from a local memory to a host memory, under one embodiment of the invention.
- the CPU programs the DMA controller to perform a data transfer.
- the DMA then generates a write command (using the destination address) to the external interface with a unique ID and Byte Count at processing block 320 .
- the DMA controller generates a read command (using the source address) to the memory controller with the same ID and Byte Count found in the write command at processing block 330 .
- the memory controller claims the read command, and, at processing block 350 , returns the read data onto the split transaction bus.
- the external interface accepts the read data found on the split transaction bus that matches the ID and Byte Count of the write command it accepted previously.
- FIG. 4 depicts a flow diagram of one embodiment of implementing bufferless DMA controllers using split transactions. More specifically, the flow diagram depicts a data transfer from one location in local memory to another location in local memory, under one embodiment of the invention.
- the CPU programs the DMA controller to perform a data transfer.
- the DMA controller uses the split transaction functionality of the bus, the DMA controller generates a write command to the memory controller with a unique ID and a Byte Count at processing block 420 .
- the DMA controller then generates a read command to the memory controller with the same ID and Byte Count found in the write command at processing block 430 .
- the memory controller claims the read command, and, at processing block 450 , returns the read data onto the split transaction bus.
- the memory controller accepts the read data found on the split transaction bus that matches the ID and Byte Count of the write command it accepted previously.
- FIG. 5 depicts a flow diagram of one embodiment of implementing bufferless DMA controllers using split transactions. More specifically, the flow diagram depicts a data transfer from one location in host memory to another location in host memory, under one embodiment of the invention.
- the CPU programs the DMA controller to perform a data transfer.
- the DMA controller uses the split transaction functionality of the bus, the DMA controller generates a write command to the external interface with a unique ID and a Byte Count at processing block 520 .
- the DMA controller generates a read command to the external interface with the same ID and Byte Count as the write command that was previously given to the external interface.
- the external interface claims the read command at processing block 540 and generates the read command on the external bus at processing block 550 .
- the external interface receives the read data from the host system at processing block 560 , it places this data on the split transaction bus at processing block 570 .
- the external interface accepts the read data found on the split transaction bus that matches the ID and Byte Count of the write command earlier given to it by the DMA controller.
- FIGS. 2 through 5 present implementing bufferless DMA controllers using split transactions in the context of data transfers between and within host and local memories, other embodiments may be implemented, such as transferring data between a peripheral and the host memory. Generally the apparatus and methods presented can be implemented between any source and destination units between which an I/O processor transfers data.
- Embodiments of the invention use split transaction functionality provided by split-transaction-capable buses to implement DMA controllers without data buffers. Removing data buffers from the DMA controller may result in increased performance and lower costs, as data is moved directly from one memory to the other memory, instead of being intermediately stored in the DMA data buffer.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
Description
- The present embodiments of the invention relate generally to input/output (I/O) processors and, more specifically, relate to direct memory access (DMA) controllers.
- Many storage, networking, and embedded applications require fast input/output (I/O) throughput for optimal performance. I/O processors allow servers, workstations, and storage subsystems to transfer data faster, reduce communication bottlenecks, and improve overall system performance by offloading I/O processing functions from a host central processing unit (CPU).
- Typically, the CPU(s) in the I/O processors program direct memory access (DMA) controller(s) to move data between specified sources and destinations, such as between local memory and host memory. Once the DMA controller is programmed, it will generate a read command to the source's interface or controller. This controller or interface will generate the read command for the source, and once it obtains the read data will place that data on the bus to the DMA controller. Typical DMA controllers include buffers to temporarily store data when the data is moved between sources and destinations, such as between host and local memories. The DMA controller will accept the read data and store it in the DMA controller data buffers. At this time, the DMA controller will generate a write command to the destination's interface or controller. The destination interface or controller will accept this write command. Finally, the DMA controller provides the write data being stored in the DMA controller data buffers to the destination interface or controller in order to be written to the destination.
- The use of DMA controller data buffers can lead to increased area requirements, increased power requirements, and added complexity to the I/O processor. The use of DMA controller data buffers also slows down performance and increases costs for I/O processors.
- The present invention will be understood more fully from the detailed description given below and from the accompanying drawings of various embodiments of the invention. The drawings, however, should not be taken to limit the invention to the specific embodiments, but are for explanation and understanding only.
-
FIG. 1 illustrates a block diagram of one embodiment of a computer system; -
FIG. 2 illustrates a flow diagram of one embodiment for implementing bufferless DMA controllers; -
FIG. 3 illustrates a flow diagram of another embodiment for implementing bufferless DMA controllers; -
FIG. 4 illustrates a flow diagram of another embodiment for implementing bufferless DMA controllers; and -
FIG. 5 illustrates a flow diagram of another embodiment for implementing bufferless DMA controllers. - A method and apparatus to implement bufferless direct memory access (DMA) controllers using split transactions are described. Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
- In the following description, numerous details are set forth. It will be apparent, however, to one skilled in the art, that the embodiments of the invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present invention.
-
FIG. 1 is a block diagram of one embodiment of acomputer system 100 to implement bufferless DMA controllers using split transactions. Thesystem 100 includes alocal memory 110, an I/O processor 120, an external bus 132, ahost system 140, and ahost memory 145. Embodiments of the invention are not limited to being implemented with local and host memories, but may generally be implemented between any source and destination units accessed by an I/O processor. - The I/
O processor 120 further includes amemory controller 122, a split transaction bus 124, aCPU 126, aDMA controller 128, and anexternal bus interface 130. Although embodiments of the invention reference the use of DMA controllers, alternatively other disk controllers may be used. The I/O processor 120 provides for intelligent I/O with the help of theCPU 126 andmemory controller 122 coupled to the split transaction bus 124. In one embodiment, CPU 126 is a processor in the Pentium® family of processors including the Pentium® II processor family, Pentium® III processors, and Pentium® IV processors available from Intel Corporation of Santa Clara, Calif. Alternatively, other CPUs may be used. - The memory controller interfaces the
local memory 110, and thatlocal memory 110 may include random access memory (RAM) such as Synchronous Dynamic RAM (SDRAM). The local memory 154 includes the instructions and data for execution and use by theCPU 126. - The split transaction bus 124 is a bus that is capable of supporting explicit split transactions of both read and write commands. In one embodiment, split transaction bus 124 is a XSI on-chip-bus. Alternatively, other split-transaction-capable buses may be used.
- Generally, split transactions split the address and data information phases of a data transfer. Splitting these phases is implemented by using an identifier, for example a Sequence ID. The address and data phases of the split transaction are coupled using the identifier. During the address phase, the requesting unit provides an identifier with command and attributes.
- During the data transfer phase, the unit supplying data uses the same identifier in order to tie the commands together at each unit. During reads, the agent which claimed the read command will supply data, while during writes the agent that generated the write command provides data. Additionally, a byte count may be used, along with the identifier, to couple the address and data phases of a split transaction.
- In one embodiment, the
DMA controller 128 moves data fromlocal memory 110 to hostmemory 145, or alternatively, fromhost memory 145 tolocal memory 110. The data transfer may take place without the use of data buffers in the DMA controller. - For example, to perform a data transfer from the
host memory 145 to thelocal memory 110, theCPU 126 first programs theDMA controller 128 to perform the data transfer. TheDMA controller 128 will then generate a write command to thememory controller 122. This write command includes an Identifier (ID) and, in some embodiments, a Byte Count. TheDMA controller 128 then generates a read command to theexternal interface 130 with the same ID and Byte Count information. - The
external interface 130 will then claim the read command and generate the read command on the external bus 132. Once theexternal interface 130 receives the read data fromhost system 140, it places the read data, with the corresponding ID and Byte Count, on the split transaction bus 124. Finally,memory controller 122 will accept the read data because the ID and Byte Count of the read data match the ID and Byte Count of the write command thememory controller 122 previously received from theDMA controller 128. - In another embodiment, to perform a data transfer from the
local memory 110 to hostmemory 145, theCPU 126 first programs theDMA controller 128 to perform the data transfer. TheDMA controller 128 will then generate a write command to theexternal bus interface 130. This write command includes an Identifier (ID) and, in some embodiments, a Byte Count. TheDMA controller 128 then generates a read command to thememory controller 122 with the same ID and Byte Count information. - The
memory controller 122 will then claim the read command and place the read data fromlocal memory 110, with corresponding ID and Byte Count, on to the split transaction bus 124. Finally,external bus interface 130 accepts the read data on the split transaction bus 124 because the ID and Byte Count match the ID and Byte Count of the write command theexternal bus interface 130 previously received from theDMA controller 128. - In another embodiment, to perform a data transfer from one
local memory location 110 to anotherlocal memory location 110, theCPU 126 first programs theDMA controller 128 to perform the data transfer. TheDMA controller 128 will then generate a write command to thememory controller 122. This write command includes an Identifier (ID) and, in some embodiments, a Byte Count. TheDMA controller 128 then generates a read command to thememory controller 122 with the same ID and Byte Count information. - The
memory controller 122 will then claim the read command and place the read data fromlocal memory 110, with corresponding ID and Byte Count, on to the split transaction bus 124. Finally, thememory controller 122 accepts the read data on the split transaction bus 124 because the ID and Byte Count match the ID and Byte Count of the write command thememory controller 122 previously received from theDMA controller 128. - In another embodiment, to perform a data transfer from one
host memory location 145 to anotherhost memory location 145, theCPU 126 first programs theDMA controller 128 to perform the data transfer. TheDMA controller 128 will then generate a write command to theexternal bus interface 130. This write command includes an Identifier (ID) and, in some embodiments, a Byte Count. TheDMA controller 128 then generates a read command to theexternal bus interface 130 with the same ID and Byte Count information. - The
external interface 130 will then claim the read command and generate the read command on the external bus 132. Once theexternal interface 130 receives the read data fromhost system 140, it places the read data, with the corresponding ID and Byte Count, on the split transaction bus 124. Finally,external bus interface 130 accepts the read data on the split transaction bus 124 because the ID and Byte Count match the ID and Byte Count of the write command theexternal bus interface 130 previously received from theDMA controller 128. -
FIG. 2 depicts a flow diagram of one embodiment of implementing bufferless DMA controllers using split transactions. More specifically, the flow diagram depicts a data transfer from a host memory to a local memory, under one embodiment of the invention. Atprocessing block 210, the CPU programs the DMA controller to perform a data transfer. Using the split transaction functionality of the bus the DMA controller generates a write command to the memory controller with a unique ID and a Byte Count atprocessing block 220. - At
processing block 230, the DMA controller generates a read command to the external interface (using the source address) with the same ID and Byte Count as the write command that was previously given to the memory controller. The external interface claims the read command atprocessing block 240 and generates the read command on the external bus at processing block 250. Once the external interface receives the read data from the host system atprocessing block 260, it places this data on the split transaction bus at processing block 270. Finally, at processing block 280, the memory controller accepts the read data found on the split transaction bus that matches the ID and Byte Count of the write command earlier given to it by the DMA controller. -
FIG. 3 depicts a flow diagram of one embodiment of implementing bufferless DMA controllers using split transactions. More specifically, the flow diagram depicts a data transfer from a local memory to a host memory, under one embodiment of the invention. Atprocessing block 310, the CPU programs the DMA controller to perform a data transfer. The DMA then generates a write command (using the destination address) to the external interface with a unique ID and Byte Count atprocessing block 320. - The DMA controller generates a read command (using the source address) to the memory controller with the same ID and Byte Count found in the write command at
processing block 330. Atprocessing block 340, the memory controller claims the read command, and, at processing block 350, returns the read data onto the split transaction bus. Atprocessing block 360, the external interface accepts the read data found on the split transaction bus that matches the ID and Byte Count of the write command it accepted previously. -
FIG. 4 depicts a flow diagram of one embodiment of implementing bufferless DMA controllers using split transactions. More specifically, the flow diagram depicts a data transfer from one location in local memory to another location in local memory, under one embodiment of the invention. Atprocessing block 410, the CPU programs the DMA controller to perform a data transfer. Using the split transaction functionality of the bus, the DMA controller generates a write command to the memory controller with a unique ID and a Byte Count atprocessing block 420. - The DMA controller then generates a read command to the memory controller with the same ID and Byte Count found in the write command at
processing block 430. Atprocessing block 440, the memory controller claims the read command, and, at processing block 450, returns the read data onto the split transaction bus. At processing block 460, the memory controller accepts the read data found on the split transaction bus that matches the ID and Byte Count of the write command it accepted previously. -
FIG. 5 depicts a flow diagram of one embodiment of implementing bufferless DMA controllers using split transactions. More specifically, the flow diagram depicts a data transfer from one location in host memory to another location in host memory, under one embodiment of the invention. Atprocessing block 510, the CPU programs the DMA controller to perform a data transfer. Using the split transaction functionality of the bus, the DMA controller generates a write command to the external interface with a unique ID and a Byte Count atprocessing block 520. - At
processing block 530, the DMA controller generates a read command to the external interface with the same ID and Byte Count as the write command that was previously given to the external interface. The external interface claims the read command atprocessing block 540 and generates the read command on the external bus at processing block 550. Once the external interface receives the read data from the host system atprocessing block 560, it places this data on the split transaction bus at processing block 570. Finally, at processing block 580, the external interface accepts the read data found on the split transaction bus that matches the ID and Byte Count of the write command earlier given to it by the DMA controller. - Although
FIGS. 2 through 5 present implementing bufferless DMA controllers using split transactions in the context of data transfers between and within host and local memories, other embodiments may be implemented, such as transferring data between a peripheral and the host memory. Generally the apparatus and methods presented can be implemented between any source and destination units between which an I/O processor transfers data. - Embodiments of the invention use split transaction functionality provided by split-transaction-capable buses to implement DMA controllers without data buffers. Removing data buffers from the DMA controller may result in increased performance and lower costs, as data is moved directly from one memory to the other memory, instead of being intermediately stored in the DMA data buffer.
- Whereas many alterations and modifications of the present invention will no doubt become apparent to a person of ordinary skill in the art after having read the foregoing description, it is to be understood that any particular embodiment shown and described by way of illustration is in no way intended to be considered limiting. Therefore, references to details of various embodiments are not intended to limit the scope of the claims, which in themselves recite only those features regarded as the invention.
Claims (24)
Priority Applications (8)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/975,803 US7447810B2 (en) | 2004-10-28 | 2004-10-28 | Implementing bufferless Direct Memory Access (DMA) controllers using split transactions |
| JP2007539263A JP4676990B2 (en) | 2004-10-28 | 2005-10-27 | Implementation of bufferless DMA controller using split transaction |
| GB0706011A GB2432944B (en) | 2004-10-28 | 2005-10-27 | Implementing bufferless DMA controllers using split transactions |
| TW094137650A TWI285320B (en) | 2004-10-28 | 2005-10-27 | Implementing bufferless DMA controllers using split transactions |
| DE112005002372T DE112005002372T5 (en) | 2004-10-28 | 2005-10-27 | Implementing bufferless DMA controllers using split transactions |
| PCT/US2005/039317 WO2006050287A2 (en) | 2004-10-28 | 2005-10-27 | Implementing bufferless dma controllers using split transactions |
| CN2005800331658A CN101031898B (en) | 2004-10-28 | 2005-10-27 | Implementing bufferless dma controllers using split transactions |
| US12/264,902 US7698476B2 (en) | 2004-10-28 | 2008-11-04 | Implementing bufferless direct memory access (DMA) controllers using split transactions |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/975,803 US7447810B2 (en) | 2004-10-28 | 2004-10-28 | Implementing bufferless Direct Memory Access (DMA) controllers using split transactions |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US12/264,902 Continuation US7698476B2 (en) | 2004-10-28 | 2008-11-04 | Implementing bufferless direct memory access (DMA) controllers using split transactions |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20060095604A1 true US20060095604A1 (en) | 2006-05-04 |
| US7447810B2 US7447810B2 (en) | 2008-11-04 |
Family
ID=36102643
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US10/975,803 Expired - Fee Related US7447810B2 (en) | 2004-10-28 | 2004-10-28 | Implementing bufferless Direct Memory Access (DMA) controllers using split transactions |
| US12/264,902 Expired - Fee Related US7698476B2 (en) | 2004-10-28 | 2008-11-04 | Implementing bufferless direct memory access (DMA) controllers using split transactions |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US12/264,902 Expired - Fee Related US7698476B2 (en) | 2004-10-28 | 2008-11-04 | Implementing bufferless direct memory access (DMA) controllers using split transactions |
Country Status (7)
| Country | Link |
|---|---|
| US (2) | US7447810B2 (en) |
| JP (1) | JP4676990B2 (en) |
| CN (1) | CN101031898B (en) |
| DE (1) | DE112005002372T5 (en) |
| GB (1) | GB2432944B (en) |
| TW (1) | TWI285320B (en) |
| WO (1) | WO2006050287A2 (en) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110208891A1 (en) * | 2010-02-25 | 2011-08-25 | Fresco Logic, Inc. | Method and apparatus for tracking transactions in a multi-speed bus environment |
| US20110208892A1 (en) * | 2010-02-25 | 2011-08-25 | Fresco Logic, Inc. | Method and apparatus for scheduling transactions in a multi-speed bus environment |
| GB2529217A (en) * | 2014-08-14 | 2016-02-17 | Advanced Risc Mach Ltd | Transmission control checking for interconnect circuitry |
| CN113296899A (en) * | 2021-06-04 | 2021-08-24 | 海光信息技术股份有限公司 | Transaction master machine, transaction slave machine and transaction processing method based on distributed system |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7447810B2 (en) * | 2004-10-28 | 2008-11-04 | Intel Corporation | Implementing bufferless Direct Memory Access (DMA) controllers using split transactions |
| JP4845674B2 (en) * | 2006-10-26 | 2011-12-28 | キヤノン株式会社 | Data processing apparatus and method, communication apparatus, and program |
| JP5029513B2 (en) * | 2008-06-30 | 2012-09-19 | ソニー株式会社 | Information processing apparatus, information processing apparatus control method, and program |
| US10430210B2 (en) * | 2014-12-30 | 2019-10-01 | Micron Technology, Inc. | Systems and devices for accessing a state machine |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5191649A (en) * | 1990-12-21 | 1993-03-02 | Intel Corporation | Multiprocessor computer system with data bus and ordered and out-of-order split data transactions |
| US5659669A (en) * | 1995-06-26 | 1997-08-19 | Brother Kogyo Kabushiki Kaisha | Host based printer and a print control method of the same |
| US5918070A (en) * | 1996-10-18 | 1999-06-29 | Samsung Electronics Co., Ltd. | DMA controller with channel tagging |
| US5928346A (en) * | 1996-09-11 | 1999-07-27 | Hewlett-Packard Company | Method for enhanced peripheral component interconnect bus split data transfer |
| US6748479B2 (en) * | 2001-11-20 | 2004-06-08 | Broadcom Corporation | System having interfaces and switch that separates coherent and packet traffic |
| US6832279B1 (en) * | 2001-05-17 | 2004-12-14 | Cisco Systems, Inc. | Apparatus and technique for maintaining order among requests directed to a same address on an external bus of an intermediate network node |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| AU1671688A (en) * | 1987-06-03 | 1988-12-08 | Honeywell Bull Inc. | Peripheral controller and adapter interface |
| US5276684A (en) | 1991-07-22 | 1994-01-04 | International Business Machines Corporation | High performance I/O processor |
| JPH05134973A (en) * | 1991-11-14 | 1993-06-01 | Toshiba Corp | Data transfer device |
| JP3466214B2 (en) * | 1992-11-13 | 2003-11-10 | 株式会社日立製作所 | Information processing device |
| US5974480A (en) * | 1996-10-18 | 1999-10-26 | Samsung Electronics Co., Ltd. | DMA controller which receives size data for each DMA channel |
| US7447810B2 (en) | 2004-10-28 | 2008-11-04 | Intel Corporation | Implementing bufferless Direct Memory Access (DMA) controllers using split transactions |
-
2004
- 2004-10-28 US US10/975,803 patent/US7447810B2/en not_active Expired - Fee Related
-
2005
- 2005-10-27 GB GB0706011A patent/GB2432944B/en not_active Expired - Fee Related
- 2005-10-27 JP JP2007539263A patent/JP4676990B2/en not_active Expired - Fee Related
- 2005-10-27 CN CN2005800331658A patent/CN101031898B/en not_active Expired - Fee Related
- 2005-10-27 TW TW094137650A patent/TWI285320B/en not_active IP Right Cessation
- 2005-10-27 DE DE112005002372T patent/DE112005002372T5/en not_active Withdrawn
- 2005-10-27 WO PCT/US2005/039317 patent/WO2006050287A2/en not_active Ceased
-
2008
- 2008-11-04 US US12/264,902 patent/US7698476B2/en not_active Expired - Fee Related
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5191649A (en) * | 1990-12-21 | 1993-03-02 | Intel Corporation | Multiprocessor computer system with data bus and ordered and out-of-order split data transactions |
| US5659669A (en) * | 1995-06-26 | 1997-08-19 | Brother Kogyo Kabushiki Kaisha | Host based printer and a print control method of the same |
| US5928346A (en) * | 1996-09-11 | 1999-07-27 | Hewlett-Packard Company | Method for enhanced peripheral component interconnect bus split data transfer |
| US5918070A (en) * | 1996-10-18 | 1999-06-29 | Samsung Electronics Co., Ltd. | DMA controller with channel tagging |
| US6832279B1 (en) * | 2001-05-17 | 2004-12-14 | Cisco Systems, Inc. | Apparatus and technique for maintaining order among requests directed to a same address on an external bus of an intermediate network node |
| US6748479B2 (en) * | 2001-11-20 | 2004-06-08 | Broadcom Corporation | System having interfaces and switch that separates coherent and packet traffic |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110208891A1 (en) * | 2010-02-25 | 2011-08-25 | Fresco Logic, Inc. | Method and apparatus for tracking transactions in a multi-speed bus environment |
| US20110208892A1 (en) * | 2010-02-25 | 2011-08-25 | Fresco Logic, Inc. | Method and apparatus for scheduling transactions in a multi-speed bus environment |
| US8549204B2 (en) * | 2010-02-25 | 2013-10-01 | Fresco Logic, Inc. | Method and apparatus for scheduling transactions in a multi-speed bus environment |
| GB2529217A (en) * | 2014-08-14 | 2016-02-17 | Advanced Risc Mach Ltd | Transmission control checking for interconnect circuitry |
| US9880898B2 (en) | 2014-08-14 | 2018-01-30 | Arm Limited | Transmission control checking for interconnect circuitry |
| CN113296899A (en) * | 2021-06-04 | 2021-08-24 | 海光信息技术股份有限公司 | Transaction master machine, transaction slave machine and transaction processing method based on distributed system |
Also Published As
| Publication number | Publication date |
|---|---|
| US20090063726A1 (en) | 2009-03-05 |
| JP4676990B2 (en) | 2011-04-27 |
| US7447810B2 (en) | 2008-11-04 |
| US7698476B2 (en) | 2010-04-13 |
| CN101031898B (en) | 2012-02-08 |
| CN101031898A (en) | 2007-09-05 |
| TW200629077A (en) | 2006-08-16 |
| WO2006050287A3 (en) | 2006-06-15 |
| GB2432944B (en) | 2007-12-27 |
| GB0706011D0 (en) | 2007-05-09 |
| WO2006050287A2 (en) | 2006-05-11 |
| GB2432944A (en) | 2007-06-06 |
| TWI285320B (en) | 2007-08-11 |
| DE112005002372T5 (en) | 2007-09-13 |
| JP2008519333A (en) | 2008-06-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7698476B2 (en) | Implementing bufferless direct memory access (DMA) controllers using split transactions | |
| US7748006B2 (en) | Loading software on a plurality of processors | |
| US8549521B2 (en) | Virtual devices using a plurality of processors | |
| US7093104B2 (en) | Processing modules for computer architecture for broadband networks | |
| US6260081B1 (en) | Direct memory access engine for supporting multiple virtual direct memory access channels | |
| US6889266B1 (en) | Method for delivering packet boundary or other metadata to and from a device using direct memory controller | |
| CN101539902A (en) | DMA device for nodes in multi-computer system and communication method | |
| US20090006690A1 (en) | Providing universal serial bus device virtualization with a schedule merge from multiple virtual machines | |
| CN1307569C (en) | Method and apparatus for transferring data at high speed using direct memory access in multi-processor environments | |
| EP2284702A1 (en) | Operating cell processors over a network | |
| US20060090016A1 (en) | Mechanism to pull data into a processor cache | |
| US20140149528A1 (en) | Mpi communication of gpu buffers | |
| EP0969384A2 (en) | Method and apparatus for processing information, and providing medium | |
| US20030033454A1 (en) | Direct memory access controller | |
| US20080209085A1 (en) | Semiconductor device and dma transfer method | |
| US20060155955A1 (en) | SIMD-RISC processor module | |
| JP2002123420A (en) | Memory access device | |
| JP3307331B2 (en) | Network file system data transfer method | |
| US20140146065A1 (en) | Mpi communication of gpu buffers | |
| JPH0322073A (en) | Data transfer controller | |
| JPH07334453A (en) | Memory access system | |
| JPS59123973A (en) | Vector data storage control system | |
| JPS6165342A (en) | Pseudo disk device transfer processor | |
| JPH07129519A (en) | Dual CPU system | |
| JPH11224232A (en) | Computer system capable of transferring simultaneous data and simultaneous data transfer method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: INTEL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:EDIRISOORIYA, SAMANTHA J.;REEL/FRAME:016199/0940 Effective date: 20050117 |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| FPAY | Fee payment |
Year of fee payment: 4 |
|
| FPAY | Fee payment |
Year of fee payment: 8 |
|
| FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
| FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20201104 |