US20040221075A1 - Method and interface for improved efficiency in performing bus-to-bus read data transfers - Google Patents
Method and interface for improved efficiency in performing bus-to-bus read data transfers Download PDFInfo
- Publication number
- US20040221075A1 US20040221075A1 US10/863,335 US86333504A US2004221075A1 US 20040221075 A1 US20040221075 A1 US 20040221075A1 US 86333504 A US86333504 A US 86333504A US 2004221075 A1 US2004221075 A1 US 2004221075A1
- Authority
- US
- United States
- Prior art keywords
- read
- read data
- bus
- response
- transaction bus
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
Definitions
- the field of the present invention generally pertains to the transfer of digital information in a computer system and, more particularly, to the transfer of digital information between buses in a computer system.
- bus generally refers to a set of hardwire lines, or conductors, used for transferring digital information among the components of a computer system.
- a bus may be used, for example, to transfer digital information between chips, expansion boards, and processor/memory subsystems within a computer system.
- a bus transaction typically involves an initiator device (the bus master), and a target device (the bus slave), each of which are interfaced to the bus.
- the initiator device initiates a transaction by sending command and address information over the bus to the target device, which services the transaction.
- the host processor may initiate bus transactions to read data from or write data to the target memory.
- Bus transactions may be executed in a “single-transaction” mode or a “split-transaction” mode.
- the initiator device In a single-transaction mode, the initiator device must remain committed to a given transaction until the transaction has fully completed. Consequently, an initiator device performing a write on a single-transaction bus cannot perform further transactions on the bus until the designated target device has accepted the write data. Similarly, an initiator device performing a read on a single-transaction bus cannot perform further transactions on the bus until the designated target device has returned the requested read data.
- each bus transaction is split into two largely independent parts: a request that is issued by the initiator device and a reply that is issued by the target device. As a result, an initiator device operating on a split-transaction bus is free to perform other transactions on the bus after issuing a request, even though a reply has not yet been received from the designated target device.
- the PCI bus as defined by the PCI Local Bus Specification Rev. 2.2 (published by the PCI Special Interest Group), is an example of a bus architecture that utilizes a single-transaction method of operation.
- a target device when a target device requires an extended period of time to respond to a transaction, it may suspend the transaction so that the PCI bus can be used by other devices to perform other transfer operations in the interim.
- the suspension of the transaction by the target is termed a “disconnect.” Because the PCI bus is a single-transaction bus, the initiator device will continue to “retry” the transaction in response to the disconnect until such time as the transaction may complete.
- the initiator device is the bridge between a CPU or other host device and the PCI bus
- the inability of the initiator device to make further PCI bus accesses until the transaction has completed can result in a degradation of system bandwidth.
- conventional PCI bus bridges offer the ability to post, or queue, write operations from the initiator device, thus permitting a host CPU to issue writes and then continue on to issue other bus transactions without delay.
- the read path is not amenable to such a solution. If the desired data from the target device is not read-cacheable, as in the case of data from real-time status registers or read-modified memories such as FIFOs, the host must wait for the read data to be produced by the target device before it can perform further transactions on the PCI bus. As a result, a target device that is slow to respond to PCI reads will essentially force the CPU to wait while the host-PCI bus bridge retries the read until it completes.
- FIG. 1 depicts a conventional single-transaction to split-transaction bus bridge application 100 .
- a host CPU 102 resides on a single-transaction bus 104 and a set of registers 106 resides on a split-transaction bus 108 .
- the single-transaction bus 104 is interfaced to the split-transaction bus 108 via the conventional bus bridge 110 .
- the conventional bus bridge 110 includes a bridge control state machine 114 that provides the necessary handshaking functionality between the single-transaction bus 104 and the split-transaction bus 108 , and a read FIFO 112 for the temporary buffering of requested read data retrieved from the split-transaction bus 108 for immediate transfer over the single-transaction bus 104
- FIG. 2 depicts the potential latencies involved when the host CPU 102 of FIG. 1 performs a direct read access to the bus bridge 110 to obtain data from the registers 106 .
- FIG. 2 shows potential bus activity on the single transaction bus 104 and the split-transaction bus 108 during such an access.
- the bus bridge 110 responds by issuing a read request on the split-transaction bus 108 , shown in block 206 . Because the bus bridge 110 must wait to receive a read response from the registers 106 , the bus bridge 110 eventually issues a disconnect to the host CPU 102 .
- the host CPU 102 will continue issuing reads to the bus bridge 110 in accordance with a single-transaction mode of operation. If the time required for the bus bridge 110 to receive a read response from the registers 106 is long, the host CPU 102 may receive numerous disconnects. These attempted reads and disconnects are denoted as blocks 202 a through 202 n in FIG. 2. Eventually, the bus bridge 110 receives a read response from the registers 106 , as shown in block 208 , and the requested data is transferred from the registers 106 to the read FIFO 112 in the bus bridge 110 . Because the data is now available in the bus bridge 110 , the data will be transferred from the bus bridge 100 to the host CPU 102 during the next attempted read by the host CPU 102 and the read will complete, as shown in block 204 .
- the total latency for this example read data transfer is equal to the time periods d1+d2+d3 denoted in FIG. 2.
- the time period d1 corresponds to the latency involved in issuing the read request on the split-transaction bus 108 .
- the time period d2 is the latency involved in receiving a response and read data from the registers 106 over the split-transaction bus 108 .
- the time period d3 is the latency between the time that the bus bridge 10 receives the response and read data from the registers 106 and the time that the host CPU 102 retries the read access and the read completes.
- the time period d2 represents the largest portion of the total latency and is roughly equal to the amount of CPU processing time wasted waiting for the read data to emerge.
- This waste of bandwidth becomes significant in applications where a memory on the split-transaction bus is read repeatedly and often by a host CPU.
- CMTS cable modem termination system
- IC BCM3212 CMTS MAC integrated circuit
- MIB Management Information Base
- the present invention provides a novel method and interface for conducting read data transfers between an initiator device on a single-transaction bus, such as a PCI bus, and a target device on a split-transaction bus.
- the interface includes a command register, read request generation logic, read response routing logic, and a read data memory.
- the initiator device writes a read command to the command register over the single-transaction bus.
- the read request generation logic generates a read request and issues it over the split-transaction bus.
- the read response routing logic receives a response to the read request from the target device over the split-transaction bus and routes read data associated with the response to the read data memory for storage purposes.
- the read data stored in the read data memory is then read accessible to the initiator device over the single-transaction bus.
- the command information specifies a quantity of requested data words and the request generated by the read request generation logic includes the specified quantity of requested data words.
- the interface also includes an address register that is written to by the initiator device over the single transaction bus, and the read request generated by the read request generation logic includes address information written to the address register by the initiator device.
- the read request generated by the read request generation logic includes a unique source identifier assigned by the read request generation logic.
- the unique source identifier is also included in the response to the read request and is used by the read response routing logic to route the read data associated with the response to the read data memory.
- the read data memory comprises a random access memory.
- the interface also includes write control logic that receives the read data associated with the response from the read response routing logic and, for each of one or more data words within the read data, generates a value corresponding to an address in the read data memory and stores the data word at that address in the read data memory.
- the write control logic may also write status information to a status register within the interface that indicates that the read data associated with the response is available in the read data memory.
- the write control logic may transmit an interrupt signal over an interrupt line within the interface in response to receiving the read data associated with the response, the interrupt signal for alerting the initiator device that the read data associated with the response is available in the read data memory.
- the invention is advantageous in that it improves the efficiency of read data transfers between an initiator device on a single-transaction bus and a target device on a split-transaction bus.
- embodiments of the present invention avoid the latency due to disconnects and retries that occur in a conventional single-transaction to split-transaction bus bridge application.
- FIG. 1 is a depiction of a conventional single-transaction to split-transaction bus bridge application.
- FIG. 2 illustrates potential latencies involved in conducting a read data transfer across a conventional single-transaction to split-transaction bus bridge.
- FIG. 3 depicts a single-transaction to split-transaction bus bridge application in accordance with embodiments of the present invention.
- FIG. 4 depicts an interface between a split-transaction bus and a single-transaction bus in accordance with embodiments of the present invention.
- FIG. 5 depicts a flowchart of a method for conducting read data transfers in accordance with embodiments of the present invention
- FIG. 6 depicts a flowchart of an alternate method for conducting read data transfers in accordance with embodiments of the present invention.
- FIG. 7 illustrates latencies involved in conducting a read data transfer in accordance with embodiments of the present invention.
- FIG. 8 depicts an interface between a split-transaction bus and a single-transaction bus in accordance with embodiments of the present invention.
- Embodiments of the present invention utilize a novel method and interface for conducting read data transfers between an initiator device on a single-transaction bus and a target device on a split-transaction bus.
- embodiments of the present invention permit the initiator device to “post” a read request for a specified amount of data from a specified address on the split-transaction bus to an interface that resides between the single-transaction bus and the split-transaction bus.
- the requested read data is then retrieved over the split-transaction bus and presented in a high-speed memory within the interface for direct access by the initiator device over the single-transaction bus.
- Latency is avoided because the initiator device is not required to wait for the emergence of the requested read data from the split-transaction bus but, instead, may continue to perform other activities on the single-transaction bus and then obtain the requested read data at a later time.
- the ability of the initiator device to perform other bus operations before the completion of the read is due to the fact that the “posting” of reads actually entails performing write operations over the single-transaction bus.
- FIG. 3 depicts an example single-transaction to split-transaction bus bridge application 300 in accordance with embodiments of the present invention.
- the example application 300 includes an initiator device 302 interfaced to a single transaction bus 304 and a target device 306 interfaced to a split-transaction bus 308 .
- the initiator device 302 comprises a bridge between a host CPU and the single-transaction bus 304 and the target device 306 comprises a set of registers or other memory that stores data of interest to the host CPU.
- the posted read interface 310 is a bridge between the single-transaction bus 304 and the split-transaction bus 308 that facilitates read data transfers between the target device 306 and the initiator device 302 in accordance with embodiments of the present invention.
- the single-transaction bus 304 comprises a PCI bus, as defined by the PCI Local Bus Specification Rev. 2.2.
- the split-transaction bus 304 may be any bus that operates in a single-transaction mode.
- the split-transaction bus 304 is a proprietary split-transaction bus internal to an integrated circuit device, such as the BCM3212 CMTS MAC IC manufactured by Broadcom Corporation of Irvine, Calif.
- the split-transaction bus 304 may be a PCI-X bus, as defined by the PCI-X Bus Specification Rev 1.0 (published by PCI-SIG), that is operating in a split-transaction mode.
- the invention is not so limited, and the split-transaction bus 304 may be any bus that operates in a split-transaction mode.
- FIG. 4 illustrates the posted read interface 310 of FIG. 3 in more detail.
- the posted read interface 310 is utilized to conduct read data transfers between the single-transaction bus 304 and the split-transaction bus 308 in accordance with embodiments of the present invention.
- the posted read interface 310 includes a single-transaction bus interface 402 , a split-transaction bus interface 404 , an address register 406 , a command register 408 , a status register 418 , read request generation logic 410 , read response routing logic 412 , a FIFO write control 414 , a read data memory 416 , and an optional interrupt line 420 .
- Each of these components will now be briefly described.
- the single-transaction bus interface 402 comprises a standard interface for transferring address, command and data information to and from the single-transaction bus 304 .
- the single-transaction bus interface 402 decodes address information on the single-transaction bus 304 and, when appropriate, passes write information from the single-transaction bus 304 to the address register 406 and the command register 408 .
- the single-transaction bus interface 402 also provides a read path between the single-transaction bus 304 and the read data memory 416 , the status register 418 and, optionally, the address register 406 and the command register 408 .
- the single transaction bus 304 comprises a PCI bus
- the single-transaction bus interface 402 comprises a standard PCI bus interface.
- the split-transaction bus interface 308 comprises an interface for transferring address, command and data information to and from the split-transaction bus 308 .
- the split-transaction bus interface 308 provides a path for issuing read requests from the read request generation logic 410 to the split-transaction bus 308 and a path for transferring read responses and associated read data from the split-transaction bus 308 to the read response routing logic 412 .
- the address register 406 , the command register 408 , and the status register 418 each comprise a high-speed register for temporarily storing address, command and status information, respectively.
- the command register 406 and the status register 418 comprise the same physical register, with the register appearing as a command register on the write path from the single-transaction bus 304 and as a status register on the read path from the single-transaction bus 304 .
- the address register 406 , the command register 408 , and the status register 418 may each comprise unique storage locations in a single high-speed memory device, such as, but not limited, to a random access memory (RAM).
- RAM random access memory
- the read request generation logic 410 comprises circuitry that generates and issues read requests via the split-transaction bus interface 404 to the split-transaction bus 308 in response to the loading of command information into the command register 408 .
- the operation of the read request generation logic 410 will be described in more detail herein.
- the read response routing logic 412 comprises circuitry that receives read responses and associated read data from the split-transaction bus 308 via the split-transaction bus interface 404 and routes it to either the FIFO write control 414 or directly to the single-transaction bus interface 402 .
- the operation of the read response routing logic 412 will be described in more detail herein.
- the FIFO write control 414 is logic that receives read data associated with read responses received by the read response routing logic 412 and generates addresses for writing the read data to the read data memory 416 in a first-in-first-out fashion.
- the optional interrupt line 420 permits the FIFO write control 414 to send an interrupt signal over the single-transaction bus in response to the receipt of the read data.
- the read data memory 416 is a high-speed memory device that stores read data associated with read responses received by the read response routing logic 412 .
- the read data memory 416 appears as a window of local memory that may be directly accessed by devices on the single-transaction bus 304 .
- the read data memory 416 comprises a high-speed dual port RAM device.
- the read data memory 416 may be any type of high-speed memory device for storing read data.
- the read data memory 416 is capable of storing 16 individually-addressable 32-bit words of read data.
- the invention is not so limited, and the read data memory 416 is scalable to accommodate any desired amount of read data.
- FIG. 5 depicts a flowchart 500 of a method for conducting read data transfers between an initiator device on a single-transaction bus and a target device on a split-transaction bus in accordance with embodiments of the present invention.
- the invention is not limited to the description provided by the flowchart 500 . Rather, it will be apparent to persons skilled in the relevant art(s) from the teachings provided herein that other functional flows are within the scope and spirit of the present invention.
- the flowchart 500 will be described with continued reference to the single-transaction to split-transaction bus bridge application 300 of FIG. 3 and the posted read interface 310 previously described in reference to FIGS. 3 and 4.
- the read data transfer begins at step 502 when the initiator device 302 writes address information to the address register 406 within the posted read interface 310 over the single-transaction bus 304 .
- the address information specifies a read address corresponding to a target device on the split-transaction bus 308 , which, for the purposes of the present example, is target device 306 .
- the initiator device 302 also writes command information to the command register 408 within the posted read interface 310 via the single-transaction bus 304 .
- the command information comprises a read command.
- the process by which the initiator writes address information and command information to the address register 406 and the command register 408 , respectively, may be termed a “posting a read.”
- the read request generation logic 410 In response to the writing of the command register 408 , the read request generation logic 410 generates a read request for issuance on the split-transaction bus 308 as shown at step 512 .
- the read request includes the previously-written address information from the address register 406 , as well as a source identifier (ID) generated by the read request generation logic 410 that uniquely identifies the read request.
- the read request may also include other information derived from the command information in the command register 408 , such as routing information, the amount of data to retrieve (e.g., a number of words of data to retrieve), and the like.
- the read request is issued to the target device 306 on the split-transaction bus 308 via the split-transaction bus interface 404 .
- a read response is received by the posted read interface 310 over the split-transaction bus 308 and is transferred to the read response routing logic 412 .
- the read response routing logic 412 receives the read response and determines if it corresponds to the read request issued in step 514 . In embodiments, the read response routing logic 412 makes this determination by checking to see if the read response includes the same source ID as that included in the read request issued in step 514 .
- the read response does not correspond to the read request issued in step 514 , then the read response is treated as a response to a regular read transaction on the single-transaction bus 304 (as opposed to a posted read) and is routed directly to the single-transaction bus interface 402 , as shown in step 520 .
- the read data associated with the read response is stored in the read data memory 416 as shown in step 522 .
- the read data is comprised of a series of words.
- the read data is received by the FIFO write control 414 , which operates to generate values that identify storage addresses in the read data memory 416 and to store the read data at the identified addresses.
- the FIFO write control 414 As each word of the read data is received by the FIFO write control 414 , the FIFO write control 414 generates an incrementing value that identifies an address within the read data memory 416 and stores the word to the identified address in a first-in-first-out fashion.
- the FIFO write control 414 also writes status information to the status register 418 that indicates that the read data has been stored in the read data memory 416 and is, therefore, directly available to devices on the single-transaction bus 304 .
- This status information may comprise a single “posted read done” bit, which, when set, indicates that the requested read data is available in the read data memory 416 .
- the FIFO write control 414 writes the status information to the status register 418 concurrently with the storing of the read data in the read data memory 416 . In alternate embodiments, the FIFO write control 414 writes the status information to the status register 418 after it has stored the read data in the read data memory 416 .
- the initiator device 302 while the posted read interface 310 retrieves and stores the requested read data as described in reference to steps 512 , 514 , 516 , 518 , 520 , 522 and 524 , above, the initiator device 302 is free to initiate other transactions on the single-transaction bus 304 . This is because the initiator device 302 initiates the read data transfer by performing single-transaction writes to the address register 406 and the command register 408 . Because writes are performed, the initiator device 302 is not occupied for the entire time it takes to extract the read data from the split-transaction bus, as it would be in the case of a conventional single-transaction read. Instead, the initiator device 302 is free to retrieve the requested read data from the read data memory 416 at some later point in time.
- the initiator 302 polls the status register to determine if the read data is available at some point in time after writing to the command register 408 , as shown at step 506 .
- the polling may occur periodically at a predefined interval or, alternately, during periods when the initiator device 302 has sufficient available bandwidth. The polling may occur concurrently with any of steps 512 , 514 , 516 , 518 , 520 , 522 and 524 as described above.
- the polling process continues. However, if the read data is available, the initiator device 302 reads the read data directly from the read data memory 416 , as shown at step 510 , and the read data transfer is completed.
- the read data memory 416 comprises a RAM that stores a specified number of individually-addressable words of read data that are directly accessible by the initiator device 302 .
- the initiator device 302 can access the words stored in the read data memory 416 in any order, read selected words, and skip undesired words. This presents a distinct advantage over, for example, a FIFO, in which each preceding word of data must be read in order to access a desired word of data.
- FIG. 6 depicts a flowchart 600 of an alternate method for conducting read data transfers between an initiator device on a single-transaction bus and a target device on a split-transaction bus in accordance with embodiments of the present invention.
- the method depicted in flowchart 600 is identical to that described in reference to the flowchart 500 , above, except that an interrupt technique, as opposed to a polling technique, is used to alert the initiator device 302 to the presence of the requested read data in the read data memory 416 .
- the FIFO write control 414 issues an interrupt signal to the initiator device 302 via the interrupt line 420 and the single-transaction bus interface 402 , as shown at step 602 .
- the initiator device 302 Upon receiving the interrupt signal at step 604 , the initiator device 302 performs a direct read to the read data memory 416 to obtain the requested read data, thus completing the read transfer as shown in step 606 .
- FIG. 7 illustrates the latency reduction that results from conducting a read data transfer in accordance with embodiments of the present invention.
- FIG. 7 shows the bus activity on the single-transaction bus 304 and the split-transaction bus 308 during a read data transfer in accordance with the method described above in reference to flowchart 500 .
- the read data transfer is initiated when the initiator device 302 writes a read command to the command register 408 over the single-transaction bus 304 .
- the writing of the command register causes the read request generation logic 410 to issue a read request on the split-transaction bus 308 .
- a read response is received by the posted read interface 310 over the split-transaction bus 308 , as depicted in block 710 .
- the initiator device 302 polls the status register 418 to determine if the requested read data is available, and, since the data is available, the initiator device 302 obtains the read data from the read data memory 416 , as shown in blocks 704 and 706 .
- the total latency on the single-transaction bus 304 is equal only to the time required for the initiator device to write to the command register 408 , to poll the status register 418 , and to retrieve the requested data from the local memory 416 when it becomes available. Note that this latency is substantially less than that involved in conventional read transfers between a split-transaction and single-transaction bus, as described in reference to FIG. 2, above. This is due, in part, to the fact that no disconnects and retries are induced on the single-transaction bus 304 . As a result, the initiator device 302 is free to handle other tasks in the system during the interval between the issuance of the read request and the scheduled polling of the status register 418 .
- FIG. 8 depicts an alternate embodiment of the posted read interface 310 of FIG. 4, denoted 310 ′, that concurrently accommodates four posted reads rather than one This is achieved by utilizing four times the number of address registers, command registers, status registers, FIFO write controls, and read data memories as utilized in the posted read interface embodiment described above in reference to FIG. 4.
- the posted read interface 310 ′ depicted in FIG. 8 includes four address registers 406 a , 406 b , 406 c , and 406 d and four corresponding command registers 418 a , 418 b , 418 c , and 418 d .
- Each address and command register pair supports a single posted read.
- the read request generation logic 410 ′ generates and issues a separate read request in response to the population of each of the four command registers.
- the read request generation logic 410 ′ also assigns a unique source ID to each of the four read requests so that responses to the requests may be properly routed by the read response routing logic 412 ′.
- the read response routing logic 412 ′ routes each response to one of four FIFO write controls 414 a , 414 b , 414 c , 414 d for storage to a corresponding one of four read data memories 416 a , 416 b , 416 c , and 416 d .
- each FIFO write control writes to a corresponding one of four status registers 408 a , 408 b , 408 c , 408 d to indicate that requested data is available.
- each FIFO may generate one of four interrupt signals 420 a , 420 b , 420 c , and 420 d to interrupt an initiator device to indicate that requested data is available.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Abstract
Description
- 1. Field of the Invention
- The field of the present invention generally pertains to the transfer of digital information in a computer system and, more particularly, to the transfer of digital information between buses in a computer system.
- 2. Background Art
- The term “bus,” as used herein, generally refers to a set of hardwire lines, or conductors, used for transferring digital information among the components of a computer system. A bus may be used, for example, to transfer digital information between chips, expansion boards, and processor/memory subsystems within a computer system. A bus transaction typically involves an initiator device (the bus master), and a target device (the bus slave), each of which are interfaced to the bus. The initiator device initiates a transaction by sending command and address information over the bus to the target device, which services the transaction. For example, in a system where the initiator device is a host processor and the target device is a memory, the host processor may initiate bus transactions to read data from or write data to the target memory.
- Bus transactions may be executed in a “single-transaction” mode or a “split-transaction” mode. In a single-transaction mode, the initiator device must remain committed to a given transaction until the transaction has fully completed. Consequently, an initiator device performing a write on a single-transaction bus cannot perform further transactions on the bus until the designated target device has accepted the write data. Similarly, an initiator device performing a read on a single-transaction bus cannot perform further transactions on the bus until the designated target device has returned the requested read data. In contrast, in a split-transaction mode, each bus transaction is split into two largely independent parts: a request that is issued by the initiator device and a reply that is issued by the target device. As a result, an initiator device operating on a split-transaction bus is free to perform other transactions on the bus after issuing a request, even though a reply has not yet been received from the designated target device.
- The PCI bus, as defined by the PCI Local Bus Specification Rev. 2.2 (published by the PCI Special Interest Group), is an example of a bus architecture that utilizes a single-transaction method of operation. In accordance with PCI bus protocols, when a target device requires an extended period of time to respond to a transaction, it may suspend the transaction so that the PCI bus can be used by other devices to perform other transfer operations in the interim. The suspension of the transaction by the target is termed a “disconnect.” Because the PCI bus is a single-transaction bus, the initiator device will continue to “retry” the transaction in response to the disconnect until such time as the transaction may complete.
- Where the initiator device is the bridge between a CPU or other host device and the PCI bus, the inability of the initiator device to make further PCI bus accesses until the transaction has completed can result in a degradation of system bandwidth. To address this issue, conventional PCI bus bridges offer the ability to post, or queue, write operations from the initiator device, thus permitting a host CPU to issue writes and then continue on to issue other bus transactions without delay. Unfortunately, the read path is not amenable to such a solution. If the desired data from the target device is not read-cacheable, as in the case of data from real-time status registers or read-modified memories such as FIFOs, the host must wait for the read data to be produced by the target device before it can perform further transactions on the PCI bus. As a result, a target device that is slow to respond to PCI reads will essentially force the CPU to wait while the host-PCI bus bridge retries the read until it completes.
- When bridging a single transaction bus, such as the PCI bus, to a split-transaction bus, the latency for producing read data can be substantial since a request for read data must be sent and a response received on the split-transaction bus before the read data can be presented to the PCI side of the bridge. This latency equates directly to a loss of CPU bandwidth when a host CPU on the PCI bus is attempting to read registers or other memories on the split-transaction bus that store non-cacheable data.
- This concept may be illustrated in reference to FIG. 1, which depicts a conventional single-transaction to split-transaction
bus bridge application 100. As shown in FIG. 1, ahost CPU 102 resides on a single-transaction bus 104 and a set ofregisters 106 resides on a split-transaction bus 108. The single-transaction bus 104 is interfaced to the split-transaction bus 108 via theconventional bus bridge 110. Theconventional bus bridge 110 includes a bridgecontrol state machine 114 that provides the necessary handshaking functionality between the single-transaction bus 104 and the split-transaction bus 108, and a readFIFO 112 for the temporary buffering of requested read data retrieved from the split-transaction bus 108 for immediate transfer over the single-transaction bus 104 - FIG. 2 depicts the potential latencies involved when the
host CPU 102 of FIG. 1 performs a direct read access to thebus bridge 110 to obtain data from theregisters 106. In particular, FIG. 2 shows potential bus activity on the single transaction bus 104 and the split-transaction bus 108 during such an access. As shown in FIG. 2, after thehost CPU 102 initiates a read to thebus bridge 110 atblock 202 a, thebus bridge 110 responds by issuing a read request on the split-transaction bus 108, shown inblock 206. Because thebus bridge 110 must wait to receive a read response from theregisters 106, thebus bridge 110 eventually issues a disconnect to thehost CPU 102. In response to the disconnect, thehost CPU 102 will continue issuing reads to thebus bridge 110 in accordance with a single-transaction mode of operation. If the time required for thebus bridge 110 to receive a read response from theregisters 106 is long, thehost CPU 102 may receive numerous disconnects. These attempted reads and disconnects are denoted asblocks 202 a through 202 n in FIG. 2. Eventually, thebus bridge 110 receives a read response from theregisters 106, as shown inblock 208, and the requested data is transferred from theregisters 106 to the read FIFO 112 in thebus bridge 110. Because the data is now available in thebus bridge 110, the data will be transferred from thebus bridge 100 to thehost CPU 102 during the next attempted read by thehost CPU 102 and the read will complete, as shown inblock 204. - The total latency for this example read data transfer is equal to the time periods d1+d2+d3 denoted in FIG. 2. The time period d1 corresponds to the latency involved in issuing the read request on the split-
transaction bus 108. The time period d2 is the latency involved in receiving a response and read data from theregisters 106 over the split-transaction bus 108. Finally, the time period d3 is the latency between the time that the bus bridge 10 receives the response and read data from theregisters 106 and the time that thehost CPU 102 retries the read access and the read completes. - As illustrated by FIG. 2, the time period d2 represents the largest portion of the total latency and is roughly equal to the amount of CPU processing time wasted waiting for the read data to emerge. This waste of bandwidth becomes significant in applications where a memory on the split-transaction bus is read repeatedly and often by a host CPU. An example of this may be found in a cable modem termination system (CMTS) line card application in which a host processor is coupled via a PCI bus to a BCM3212 CMTS MAC integrated circuit (IC) manufactured by Broadcom Corporation of Irvine, Calif. In such an application, it is contemplated that the host processor will issue thousands of reads per second to obtain statistical MIB (Management Information Base) data from memory devices residing on the internal split-transaction bus of the CMTS MAC IC.
- What is desired then, is a method and interface for improving the efficiency of read data transfers between an initiator device on a single-transaction bus and a target device on a split-transaction bus. In particular, the desired method and interface should avoid the latency due to disconnects and retries that occur in a conventional single-transaction to split-transaction bus bridge application.
- The present invention provides a novel method and interface for conducting read data transfers between an initiator device on a single-transaction bus, such as a PCI bus, and a target device on a split-transaction bus. In embodiments, the interface includes a command register, read request generation logic, read response routing logic, and a read data memory. The initiator device writes a read command to the command register over the single-transaction bus. In response to the writing of the read command, the read request generation logic generates a read request and issues it over the split-transaction bus. The read response routing logic receives a response to the read request from the target device over the split-transaction bus and routes read data associated with the response to the read data memory for storage purposes. The read data stored in the read data memory is then read accessible to the initiator device over the single-transaction bus.
- In embodiments, the command information specifies a quantity of requested data words and the request generated by the read request generation logic includes the specified quantity of requested data words.
- In further embodiments, the interface also includes an address register that is written to by the initiator device over the single transaction bus, and the read request generated by the read request generation logic includes address information written to the address register by the initiator device.
- In still further embodiments, the read request generated by the read request generation logic includes a unique source identifier assigned by the read request generation logic. The unique source identifier is also included in the response to the read request and is used by the read response routing logic to route the read data associated with the response to the read data memory.
- In alternate embodiments, the read data memory comprises a random access memory.
- In other alternate embodiments, the interface also includes write control logic that receives the read data associated with the response from the read response routing logic and, for each of one or more data words within the read data, generates a value corresponding to an address in the read data memory and stores the data word at that address in the read data memory. The write control logic may also write status information to a status register within the interface that indicates that the read data associated with the response is available in the read data memory. Additionally, the write control logic may transmit an interrupt signal over an interrupt line within the interface in response to receiving the read data associated with the response, the interrupt signal for alerting the initiator device that the read data associated with the response is available in the read data memory.
- The invention is advantageous in that it improves the efficiency of read data transfers between an initiator device on a single-transaction bus and a target device on a split-transaction bus. In particular, embodiments of the present invention avoid the latency due to disconnects and retries that occur in a conventional single-transaction to split-transaction bus bridge application.
- Additional features and advantages of the invention will be set forth in the description that follows, and in part will be apparent from the description, or may be learned by practice of the invention. The objectives and other advantages of the invention will be realized and attained by the system and method particularly pointed out in the written description and claims hereof as well as the appended drawings.
- The accompanying drawings, which are incorporated herein and form a part of the specification, illustrate the present invention and, together with the description, further serve to explain the principles of the invention and to enable a person skilled in the pertinent art to make and use the invention.
- FIG. 1 is a depiction of a conventional single-transaction to split-transaction bus bridge application.
- FIG. 2 illustrates potential latencies involved in conducting a read data transfer across a conventional single-transaction to split-transaction bus bridge.
- FIG. 3 depicts a single-transaction to split-transaction bus bridge application in accordance with embodiments of the present invention.
- FIG. 4 depicts an interface between a split-transaction bus and a single-transaction bus in accordance with embodiments of the present invention.
- FIG. 5 depicts a flowchart of a method for conducting read data transfers in accordance with embodiments of the present invention
- FIG. 6 depicts a flowchart of an alternate method for conducting read data transfers in accordance with embodiments of the present invention.
- FIG. 7 illustrates latencies involved in conducting a read data transfer in accordance with embodiments of the present invention.
- FIG. 8 depicts an interface between a split-transaction bus and a single-transaction bus in accordance with embodiments of the present invention.
- The present invention will now be described with reference to the accompanying drawings. In the drawings, like reference numbers indicate identical or functionally similar elements. Additionally, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears.
- A. Introduction
- B. Example Single-Transaction to Split-Transaction Bus Bridge Application in Accordance with Embodiments of the Present Invention
- C. Single-Transaction to Split-Transaction Bus Interface in Accordance with Embodiments of the Present Invention
- D. Method for Executing Read Transactions in Accordance with Embodiments of the Present Invention
- E. Conclusion
- A. Introduction
- Embodiments of the present invention utilize a novel method and interface for conducting read data transfers between an initiator device on a single-transaction bus and a target device on a split-transaction bus. In particular, embodiments of the present invention permit the initiator device to “post” a read request for a specified amount of data from a specified address on the split-transaction bus to an interface that resides between the single-transaction bus and the split-transaction bus. The requested read data is then retrieved over the split-transaction bus and presented in a high-speed memory within the interface for direct access by the initiator device over the single-transaction bus. Latency is avoided because the initiator device is not required to wait for the emergence of the requested read data from the split-transaction bus but, instead, may continue to perform other activities on the single-transaction bus and then obtain the requested read data at a later time. The ability of the initiator device to perform other bus operations before the completion of the read is due to the fact that the “posting” of reads actually entails performing write operations over the single-transaction bus.
- B. Example Single-Transaction to Split-Transaction Bus Bridge Application in Accordance with Embodiments of the Present Invention
- FIG. 3 depicts an example single-transaction to split-transaction
bus bridge application 300 in accordance with embodiments of the present invention. Theexample application 300 includes aninitiator device 302 interfaced to asingle transaction bus 304 and atarget device 306 interfaced to a split-transaction bus 308. In embodiments, theinitiator device 302 comprises a bridge between a host CPU and the single-transaction bus 304 and thetarget device 306 comprises a set of registers or other memory that stores data of interest to the host CPU. As will be described in more detail herein, the posted readinterface 310 is a bridge between the single-transaction bus 304 and the split-transaction bus 308 that facilitates read data transfers between thetarget device 306 and theinitiator device 302 in accordance with embodiments of the present invention. - In embodiments, the single-
transaction bus 304 comprises a PCI bus, as defined by the PCI Local Bus Specification Rev. 2.2. However, the invention is not so limited and the single-transaction bus 304 may be any bus that operates in a single-transaction mode. In further embodiments, the split-transaction bus 304 is a proprietary split-transaction bus internal to an integrated circuit device, such as the BCM3212 CMTS MAC IC manufactured by Broadcom Corporation of Irvine, Calif. Alternately, the split-transaction bus 304 may be a PCI-X bus, as defined by the PCI-X Bus Specification Rev 1.0 (published by PCI-SIG), that is operating in a split-transaction mode. However, the invention is not so limited, and the split-transaction bus 304 may be any bus that operates in a split-transaction mode. - C. Single-Transaction to Split-Transaction Bus Interface in Accordance with Embodiments of the Present Invention
- FIG. 4 illustrates the posted read
interface 310 of FIG. 3 in more detail. The posted readinterface 310 is utilized to conduct read data transfers between the single-transaction bus 304 and the split-transaction bus 308 in accordance with embodiments of the present invention. The posted readinterface 310 includes a single-transaction bus interface 402, a split-transaction bus interface 404, anaddress register 406, acommand register 408, astatus register 418, readrequest generation logic 410, readresponse routing logic 412, aFIFO write control 414, aread data memory 416, and an optional interruptline 420. Each of these components will now be briefly described. - The single-
transaction bus interface 402 comprises a standard interface for transferring address, command and data information to and from the single-transaction bus 304. In particular, the single-transaction bus interface 402 decodes address information on the single-transaction bus 304 and, when appropriate, passes write information from the single-transaction bus 304 to theaddress register 406 and thecommand register 408. The single-transaction bus interface 402 also provides a read path between the single-transaction bus 304 and the readdata memory 416, thestatus register 418 and, optionally, theaddress register 406 and thecommand register 408. In embodiments where thesingle transaction bus 304 comprises a PCI bus, the single-transaction bus interface 402 comprises a standard PCI bus interface. - The split-
transaction bus interface 308 comprises an interface for transferring address, command and data information to and from the split-transaction bus 308. In particular, the split-transaction bus interface 308 provides a path for issuing read requests from the readrequest generation logic 410 to the split-transaction bus 308 and a path for transferring read responses and associated read data from the split-transaction bus 308 to the readresponse routing logic 412. - The
address register 406, thecommand register 408, and thestatus register 418 each comprise a high-speed register for temporarily storing address, command and status information, respectively. In alternate embodiments, thecommand register 406 and thestatus register 418 comprise the same physical register, with the register appearing as a command register on the write path from the single-transaction bus 304 and as a status register on the read path from the single-transaction bus 304. In still further embodiments, theaddress register 406, thecommand register 408, and thestatus register 418 may each comprise unique storage locations in a single high-speed memory device, such as, but not limited, to a random access memory (RAM). - The read
request generation logic 410 comprises circuitry that generates and issues read requests via the split-transaction bus interface 404 to the split-transaction bus 308 in response to the loading of command information into thecommand register 408. The operation of the readrequest generation logic 410 will be described in more detail herein. - The read
response routing logic 412 comprises circuitry that receives read responses and associated read data from the split-transaction bus 308 via the split-transaction bus interface 404 and routes it to either theFIFO write control 414 or directly to the single-transaction bus interface 402. The operation of the readresponse routing logic 412 will be described in more detail herein. - The
FIFO write control 414 is logic that receives read data associated with read responses received by the readresponse routing logic 412 and generates addresses for writing the read data to the readdata memory 416 in a first-in-first-out fashion. The optional interruptline 420 permits theFIFO write control 414 to send an interrupt signal over the single-transaction bus in response to the receipt of the read data. - The read
data memory 416 is a high-speed memory device that stores read data associated with read responses received by the readresponse routing logic 412. The readdata memory 416 appears as a window of local memory that may be directly accessed by devices on the single-transaction bus 304. In embodiments, the readdata memory 416 comprises a high-speed dual port RAM device. However, the invention is not so limited, and the readdata memory 416 may be any type of high-speed memory device for storing read data. In further embodiments, the readdata memory 416 is capable of storing 16 individually-addressable 32-bit words of read data. However, the invention is not so limited, and the readdata memory 416 is scalable to accommodate any desired amount of read data. - D. Method for Executing Read Transactions in Accordance with Embodiments of the Present Invention
- FIG. 5 depicts a
flowchart 500 of a method for conducting read data transfers between an initiator device on a single-transaction bus and a target device on a split-transaction bus in accordance with embodiments of the present invention. The invention, however, is not limited to the description provided by theflowchart 500. Rather, it will be apparent to persons skilled in the relevant art(s) from the teachings provided herein that other functional flows are within the scope and spirit of the present invention. Theflowchart 500 will be described with continued reference to the single-transaction to split-transactionbus bridge application 300 of FIG. 3 and the posted readinterface 310 previously described in reference to FIGS. 3 and 4. - The read data transfer begins at
step 502 when theinitiator device 302 writes address information to theaddress register 406 within the posted readinterface 310 over the single-transaction bus 304. In embodiments, the address information specifies a read address corresponding to a target device on the split-transaction bus 308, which, for the purposes of the present example, istarget device 306. Atstep 504, theinitiator device 302 also writes command information to thecommand register 408 within the posted readinterface 310 via the single-transaction bus 304. In embodiments, the command information comprises a read command. The process by which the initiator writes address information and command information to theaddress register 406 and thecommand register 408, respectively, may be termed a “posting a read.” - In response to the writing of the
command register 408, the readrequest generation logic 410 generates a read request for issuance on the split-transaction bus 308 as shown atstep 512. In embodiments, the read request includes the previously-written address information from theaddress register 406, as well as a source identifier (ID) generated by the readrequest generation logic 410 that uniquely identifies the read request. The read request may also include other information derived from the command information in thecommand register 408, such as routing information, the amount of data to retrieve (e.g., a number of words of data to retrieve), and the like. Atstep 514, the read request is issued to thetarget device 306 on the split-transaction bus 308 via the split-transaction bus interface 404. - At
step 516, a read response is received by the posted readinterface 310 over the split-transaction bus 308 and is transferred to the readresponse routing logic 412. Atstep 518, the readresponse routing logic 412 receives the read response and determines if it corresponds to the read request issued instep 514. In embodiments, the readresponse routing logic 412 makes this determination by checking to see if the read response includes the same source ID as that included in the read request issued instep 514. If the read response does not correspond to the read request issued instep 514, then the read response is treated as a response to a regular read transaction on the single-transaction bus 304 (as opposed to a posted read) and is routed directly to the single-transaction bus interface 402, as shown instep 520. - If the read response corresponds to the read request issued in
step 514, then the read data associated with the read response is stored in the readdata memory 416 as shown instep 522. In embodiments, the read data is comprised of a series of words. In order to store the read data in the readdata memory 416, the read data is received by theFIFO write control 414, which operates to generate values that identify storage addresses in the readdata memory 416 and to store the read data at the identified addresses. In embodiments, as each word of the read data is received by theFIFO write control 414, theFIFO write control 414 generates an incrementing value that identifies an address within the readdata memory 416 and stores the word to the identified address in a first-in-first-out fashion. - As indicated at
step 524, theFIFO write control 414 also writes status information to thestatus register 418 that indicates that the read data has been stored in the readdata memory 416 and is, therefore, directly available to devices on the single-transaction bus 304. This status information may comprise a single “posted read done” bit, which, when set, indicates that the requested read data is available in the readdata memory 416. In embodiments, theFIFO write control 414 writes the status information to thestatus register 418 concurrently with the storing of the read data in the readdata memory 416. In alternate embodiments, theFIFO write control 414 writes the status information to thestatus register 418 after it has stored the read data in the readdata memory 416. - In accordance with embodiments of the present invention, while the posted read
interface 310 retrieves and stores the requested read data as described in reference tosteps initiator device 302 is free to initiate other transactions on the single-transaction bus 304. This is because theinitiator device 302 initiates the read data transfer by performing single-transaction writes to theaddress register 406 and thecommand register 408. Because writes are performed, theinitiator device 302 is not occupied for the entire time it takes to extract the read data from the split-transaction bus, as it would be in the case of a conventional single-transaction read. Instead, theinitiator device 302 is free to retrieve the requested read data from the readdata memory 416 at some later point in time. - In the method depicted by
flowchart 500, theinitiator 302 polls the status register to determine if the read data is available at some point in time after writing to thecommand register 408, as shown atstep 506. In embodiments, the polling may occur periodically at a predefined interval or, alternately, during periods when theinitiator device 302 has sufficient available bandwidth. The polling may occur concurrently with any ofsteps step 508, if the read data is not available, then the polling process continues. However, if the read data is available, theinitiator device 302 reads the read data directly from the readdata memory 416, as shown atstep 510, and the read data transfer is completed. - As discussed above, in embodiments, the read
data memory 416 comprises a RAM that stores a specified number of individually-addressable words of read data that are directly accessible by theinitiator device 302. In accordance with such embodiments, theinitiator device 302 can access the words stored in the readdata memory 416 in any order, read selected words, and skip undesired words. This presents a distinct advantage over, for example, a FIFO, in which each preceding word of data must be read in order to access a desired word of data. - FIG. 6 depicts a
flowchart 600 of an alternate method for conducting read data transfers between an initiator device on a single-transaction bus and a target device on a split-transaction bus in accordance with embodiments of the present invention. The method depicted inflowchart 600 is identical to that described in reference to theflowchart 500, above, except that an interrupt technique, as opposed to a polling technique, is used to alert theinitiator device 302 to the presence of the requested read data in the readdata memory 416. - In particular, after the requested read data has been stored in the read
data memory 416, theFIFO write control 414 issues an interrupt signal to theinitiator device 302 via the interruptline 420 and the single-transaction bus interface 402, as shown atstep 602. Upon receiving the interrupt signal atstep 604, theinitiator device 302 performs a direct read to the readdata memory 416 to obtain the requested read data, thus completing the read transfer as shown instep 606. - While two techniques have been described herein for alerting the
initiator device 302 to the presence of requested read data in the readdata memory 416, it is expected that in most applications the polling technique described in reference toflowchart 500 will operate more efficiently than the interrupt technique described in reference toflowchart 600. This expectation is based on the fact that, in most systems, interrupts cause a context switch that entails register swapping and other data transfers that may substantially degrade overall system bandwidth. - FIG. 7 illustrates the latency reduction that results from conducting a read data transfer in accordance with embodiments of the present invention. In particular, FIG. 7 shows the bus activity on the single-
transaction bus 304 and the split-transaction bus 308 during a read data transfer in accordance with the method described above in reference toflowchart 500. As shown inblock 702, the read data transfer is initiated when theinitiator device 302 writes a read command to thecommand register 408 over the single-transaction bus 304. As shown inblock 708, the writing of the command register causes the readrequest generation logic 410 to issue a read request on the split-transaction bus 308. Subsequently, a read response is received by the posted readinterface 310 over the split-transaction bus 308, as depicted inblock 710. Finally, at some later time, theinitiator device 302 polls thestatus register 418 to determine if the requested read data is available, and, since the data is available, theinitiator device 302 obtains the read data from the readdata memory 416, as shown inblocks - As shown by FIG. 7, the total latency on the single-
transaction bus 304 is equal only to the time required for the initiator device to write to thecommand register 408, to poll thestatus register 418, and to retrieve the requested data from thelocal memory 416 when it becomes available. Note that this latency is substantially less than that involved in conventional read transfers between a split-transaction and single-transaction bus, as described in reference to FIG. 2, above. This is due, in part, to the fact that no disconnects and retries are induced on the single-transaction bus 304. As a result, theinitiator device 302 is free to handle other tasks in the system during the interval between the issuance of the read request and the scheduled polling of thestatus register 418. - E. Conclusion
- While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. Alternate implementations are within the spirit and scope of the present invention. For example, FIG. 8 depicts an alternate embodiment of the posted read
interface 310 of FIG. 4, denoted 310′, that concurrently accommodates four posted reads rather than one This is achieved by utilizing four times the number of address registers, command registers, status registers, FIFO write controls, and read data memories as utilized in the posted read interface embodiment described above in reference to FIG. 4. - In particular, the posted read
interface 310′ depicted in FIG. 8 includes fouraddress registers request generation logic 410′ generates and issues a separate read request in response to the population of each of the four command registers. The readrequest generation logic 410′ also assigns a unique source ID to each of the four read requests so that responses to the requests may be properly routed by the readresponse routing logic 412′. - Upon receiving responses to the read requests, the read
response routing logic 412′ routes each response to one of four FIFO write controls 414 a, 414 b, 414 c, 414 d for storage to a corresponding one of four readdata memories signals - As demonstrated by the above example, various changes in form and details may be made to the above-described embodiments without departing from the spirit and scope of the present invention as defined in the appended claims. Accordingly, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
Claims (26)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/863,335 US20040221075A1 (en) | 2001-08-28 | 2004-06-09 | Method and interface for improved efficiency in performing bus-to-bus read data transfers |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/939,800 US6766386B2 (en) | 2001-08-28 | 2001-08-28 | Method and interface for improved efficiency in performing bus-to-bus read data transfers |
US10/863,335 US20040221075A1 (en) | 2001-08-28 | 2004-06-09 | Method and interface for improved efficiency in performing bus-to-bus read data transfers |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/939,800 Continuation US6766386B2 (en) | 2001-08-28 | 2001-08-28 | Method and interface for improved efficiency in performing bus-to-bus read data transfers |
Publications (1)
Publication Number | Publication Date |
---|---|
US20040221075A1 true US20040221075A1 (en) | 2004-11-04 |
Family
ID=25473753
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/939,800 Expired - Fee Related US6766386B2 (en) | 2001-08-28 | 2001-08-28 | Method and interface for improved efficiency in performing bus-to-bus read data transfers |
US10/863,335 Abandoned US20040221075A1 (en) | 2001-08-28 | 2004-06-09 | Method and interface for improved efficiency in performing bus-to-bus read data transfers |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/939,800 Expired - Fee Related US6766386B2 (en) | 2001-08-28 | 2001-08-28 | Method and interface for improved efficiency in performing bus-to-bus read data transfers |
Country Status (3)
Country | Link |
---|---|
US (2) | US6766386B2 (en) |
EP (1) | EP1288785B1 (en) |
AT (1) | ATE538437T1 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070250659A1 (en) * | 2006-04-19 | 2007-10-25 | Lexmark International Inc. | Addressing, command protocol, and electrical interface for non-volatile memories utilized in recording usage counts |
US7549004B1 (en) * | 2004-08-20 | 2009-06-16 | Altera Corporation | Split filtering in multilayer systems |
US7610431B1 (en) * | 2005-10-14 | 2009-10-27 | Sun Microsystems, Inc. | Configuration space compaction |
US20120047306A1 (en) * | 2010-08-19 | 2012-02-23 | Sony Corporation | Bus system and bridge circuit connecting bus system and connection apparatus |
US20140189451A1 (en) * | 2005-06-16 | 2014-07-03 | Lexmark International, Inc. | Addressing, Command Protocol, and Electrical Interface for Non-volatile Memories Utilized in Recording Usage Counts |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6892259B2 (en) * | 2001-09-29 | 2005-05-10 | Hewlett-Packard Development Company, L.P. | Method and apparatus for allocating computer bus device resources to a priority requester and retrying requests from non-priority requesters |
US6807593B1 (en) * | 2001-11-01 | 2004-10-19 | Lsi Logic Corporation | Enhanced bus architecture for posted read operation between masters and slaves |
US7051145B2 (en) * | 2001-12-10 | 2006-05-23 | Emulex Design & Manufacturing Corporation | Tracking deferred data transfers on a system-interconnect bus |
US6731292B2 (en) * | 2002-03-06 | 2004-05-04 | Sun Microsystems, Inc. | System and method for controlling a number of outstanding data transactions within an integrated circuit |
US6766405B2 (en) * | 2002-03-28 | 2004-07-20 | International Business Machines Corporation | Accelerated error detection in a bus bridge circuit |
US7124230B2 (en) * | 2002-04-30 | 2006-10-17 | Intel Corporation | Use of bus transaction identification codes |
US6931473B2 (en) * | 2002-07-16 | 2005-08-16 | International Business Machines Corporation | Data transfer via Host/PCI-X bridges |
US7054971B2 (en) * | 2002-08-29 | 2006-05-30 | Seiko Epson Corporation | Interface between a host and a slave device having a latency greater than the latency of the host |
US7363412B1 (en) * | 2004-03-01 | 2008-04-22 | Cisco Technology, Inc. | Interrupting a microprocessor after a data transmission is complete |
US20050232302A1 (en) * | 2004-04-15 | 2005-10-20 | Tillotson Timothy N | Translation between SCPI protocol communications and .NET protocol communications |
US7532636B2 (en) * | 2005-10-07 | 2009-05-12 | Intel Corporation | High bus bandwidth transfer using split data bus |
JP2011081551A (en) * | 2009-10-06 | 2011-04-21 | Panasonic Corp | Data processing system |
US8893146B2 (en) * | 2009-11-13 | 2014-11-18 | Hewlett-Packard Development Company, L.P. | Method and system of an I/O stack for controlling flows of workload specific I/O requests |
Citations (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5535340A (en) * | 1994-05-20 | 1996-07-09 | Intel Corporation | Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge |
US5535345A (en) * | 1994-05-12 | 1996-07-09 | Intel Corporation | Method and apparatus for sequencing misaligned external bus transactions in which the order of completion of corresponding split transaction requests is guaranteed |
US5574868A (en) * | 1993-05-14 | 1996-11-12 | Intel Corporation | Bus grant prediction technique for a split transaction bus in a multiprocessor computer system |
US5592631A (en) * | 1995-05-02 | 1997-01-07 | Apple Computer, Inc. | Bus transaction reordering using side-band information signals |
US5594882A (en) * | 1995-01-04 | 1997-01-14 | Intel Corporation | PCI split transactions utilizing dual address cycle |
US5655102A (en) * | 1993-09-29 | 1997-08-05 | Silicon Graphics, Inc. | System and method for piggybacking of read responses on a shared memory multiprocessor bus |
US5664151A (en) * | 1993-09-29 | 1997-09-02 | Silicon Graphics, Inc. | System and method of implementing read resources to maintain cache coherency in a multiprocessor environment permitting split transactions |
US5708794A (en) * | 1993-08-10 | 1998-01-13 | Dell Usa, L.P. | Multi-purpose usage of transaction backoff and bus architecture supporting same |
US5761443A (en) * | 1995-06-07 | 1998-06-02 | Advanced Micro Systems, Inc. | Computer system employing a bus conversion bridge for interfacing a master device residing on a multiplexed peripheral bus to a slave device residing on a split-address, split-data multiplexed peripheral bus |
US5793996A (en) * | 1995-05-03 | 1998-08-11 | Apple Computer, Inc. | Bridge for interconnecting a computer system bus, an expansion bus and a video frame buffer |
US5793994A (en) * | 1996-01-31 | 1998-08-11 | 3Com Corporation | Synchronous event posting by a high throughput bus |
US5870567A (en) * | 1996-12-31 | 1999-02-09 | Compaq Computer Corporation | Delayed transaction protocol for computer system bus |
US5944805A (en) * | 1997-08-21 | 1999-08-31 | Advanced Micro Devices, Inc. | System and method for transmitting data upon an address portion of a computer system bus during periods of maximum utilization of a data portion of the bus |
US5949981A (en) * | 1995-05-02 | 1999-09-07 | Apple Computer, Inc. | Deadlock avoidance in a bridge between a split transaction bus and a single envelope bus |
US5996036A (en) * | 1997-01-07 | 1999-11-30 | Apple Computers, Inc. | Bus transaction reordering in a computer system having unordered slaves |
US6098134A (en) * | 1996-12-31 | 2000-08-01 | Compaq Computer Corp. | Lock protocol for PCI bus using an additional "superlock" signal on the system bus |
US6243778B1 (en) * | 1998-10-13 | 2001-06-05 | Stmicroelectronics, Inc. | Transaction interface for a data communication system |
US6266723B1 (en) * | 1999-03-29 | 2001-07-24 | Lsi Logic Corporation | Method and system for optimizing of peripheral component interconnect PCI bus transfers |
US6366989B1 (en) * | 1998-09-17 | 2002-04-02 | Sun Microsystems, Inc. | Programmable memory controller |
US6370585B1 (en) * | 1997-09-05 | 2002-04-09 | Sun Microsystems, Inc. | Multiprocessing computer system employing a cluster communication launching and addressing mechanism |
US6425024B1 (en) * | 1999-05-18 | 2002-07-23 | International Business Machines Corporation | Buffer management for improved PCI-X or PCI bridge performance |
US6493776B1 (en) * | 1999-08-12 | 2002-12-10 | Mips Technologies, Inc. | Scalable on-chip system bus |
US6647450B1 (en) * | 1999-10-06 | 2003-11-11 | Cradle Technologies, Inc. | Multiprocessor computer systems with command FIFO buffer at each target device |
-
2001
- 2001-08-28 US US09/939,800 patent/US6766386B2/en not_active Expired - Fee Related
-
2002
- 2002-08-28 EP EP02255959A patent/EP1288785B1/en not_active Expired - Lifetime
- 2002-08-28 AT AT02255959T patent/ATE538437T1/en active
-
2004
- 2004-06-09 US US10/863,335 patent/US20040221075A1/en not_active Abandoned
Patent Citations (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5574868A (en) * | 1993-05-14 | 1996-11-12 | Intel Corporation | Bus grant prediction technique for a split transaction bus in a multiprocessor computer system |
US5708794A (en) * | 1993-08-10 | 1998-01-13 | Dell Usa, L.P. | Multi-purpose usage of transaction backoff and bus architecture supporting same |
US5655102A (en) * | 1993-09-29 | 1997-08-05 | Silicon Graphics, Inc. | System and method for piggybacking of read responses on a shared memory multiprocessor bus |
US5664151A (en) * | 1993-09-29 | 1997-09-02 | Silicon Graphics, Inc. | System and method of implementing read resources to maintain cache coherency in a multiprocessor environment permitting split transactions |
US5535345A (en) * | 1994-05-12 | 1996-07-09 | Intel Corporation | Method and apparatus for sequencing misaligned external bus transactions in which the order of completion of corresponding split transaction requests is guaranteed |
US5535340A (en) * | 1994-05-20 | 1996-07-09 | Intel Corporation | Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge |
US5594882A (en) * | 1995-01-04 | 1997-01-14 | Intel Corporation | PCI split transactions utilizing dual address cycle |
US5949981A (en) * | 1995-05-02 | 1999-09-07 | Apple Computer, Inc. | Deadlock avoidance in a bridge between a split transaction bus and a single envelope bus |
US5592631A (en) * | 1995-05-02 | 1997-01-07 | Apple Computer, Inc. | Bus transaction reordering using side-band information signals |
US5793996A (en) * | 1995-05-03 | 1998-08-11 | Apple Computer, Inc. | Bridge for interconnecting a computer system bus, an expansion bus and a video frame buffer |
US5761443A (en) * | 1995-06-07 | 1998-06-02 | Advanced Micro Systems, Inc. | Computer system employing a bus conversion bridge for interfacing a master device residing on a multiplexed peripheral bus to a slave device residing on a split-address, split-data multiplexed peripheral bus |
US5793994A (en) * | 1996-01-31 | 1998-08-11 | 3Com Corporation | Synchronous event posting by a high throughput bus |
US5870567A (en) * | 1996-12-31 | 1999-02-09 | Compaq Computer Corporation | Delayed transaction protocol for computer system bus |
US6098134A (en) * | 1996-12-31 | 2000-08-01 | Compaq Computer Corp. | Lock protocol for PCI bus using an additional "superlock" signal on the system bus |
US5996036A (en) * | 1997-01-07 | 1999-11-30 | Apple Computers, Inc. | Bus transaction reordering in a computer system having unordered slaves |
US5944805A (en) * | 1997-08-21 | 1999-08-31 | Advanced Micro Devices, Inc. | System and method for transmitting data upon an address portion of a computer system bus during periods of maximum utilization of a data portion of the bus |
US6370585B1 (en) * | 1997-09-05 | 2002-04-09 | Sun Microsystems, Inc. | Multiprocessing computer system employing a cluster communication launching and addressing mechanism |
US6366989B1 (en) * | 1998-09-17 | 2002-04-02 | Sun Microsystems, Inc. | Programmable memory controller |
US6243778B1 (en) * | 1998-10-13 | 2001-06-05 | Stmicroelectronics, Inc. | Transaction interface for a data communication system |
US6266723B1 (en) * | 1999-03-29 | 2001-07-24 | Lsi Logic Corporation | Method and system for optimizing of peripheral component interconnect PCI bus transfers |
US6425024B1 (en) * | 1999-05-18 | 2002-07-23 | International Business Machines Corporation | Buffer management for improved PCI-X or PCI bridge performance |
US6493776B1 (en) * | 1999-08-12 | 2002-12-10 | Mips Technologies, Inc. | Scalable on-chip system bus |
US6647450B1 (en) * | 1999-10-06 | 2003-11-11 | Cradle Technologies, Inc. | Multiprocessor computer systems with command FIFO buffer at each target device |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7549004B1 (en) * | 2004-08-20 | 2009-06-16 | Altera Corporation | Split filtering in multilayer systems |
US20110264850A1 (en) * | 2005-06-16 | 2011-10-27 | James Ronald Booth | Addressing, Command Protocol, and Electrical Interface for Non-Volatile Memories Utilized in Recording Usage Counts |
US20140146626A1 (en) * | 2005-06-16 | 2014-05-29 | Lexmark International, Inc. | Addressing, Command Protocol, and Electrical Interface for Non-Volatile Memories Utilized in Recording Usage Counts |
US20140189451A1 (en) * | 2005-06-16 | 2014-07-03 | Lexmark International, Inc. | Addressing, Command Protocol, and Electrical Interface for Non-volatile Memories Utilized in Recording Usage Counts |
US8966193B2 (en) * | 2005-06-16 | 2015-02-24 | Lexmark International, Inc. | Addressing, command protocol, and electrical interface for non-volatile memories utilized in recording usage counts sensor |
US9245591B2 (en) * | 2005-06-16 | 2016-01-26 | Lexmark International, Inc. | Addressing, command protocol, and electrical interface for non-volatile memories utilized in recording usage counts |
US9400764B2 (en) * | 2005-06-16 | 2016-07-26 | Lexmark International, Inc. | Addressing, command protocol, and electrical interface for non-volatile memories utilized in recording usage counts |
US7610431B1 (en) * | 2005-10-14 | 2009-10-27 | Sun Microsystems, Inc. | Configuration space compaction |
US20070250659A1 (en) * | 2006-04-19 | 2007-10-25 | Lexmark International Inc. | Addressing, command protocol, and electrical interface for non-volatile memories utilized in recording usage counts |
US8521970B2 (en) | 2006-04-19 | 2013-08-27 | Lexmark International, Inc. | Addressing, command protocol, and electrical interface for non-volatile memories utilized in recording usage counts |
US20120047306A1 (en) * | 2010-08-19 | 2012-02-23 | Sony Corporation | Bus system and bridge circuit connecting bus system and connection apparatus |
US8762616B2 (en) * | 2010-08-19 | 2014-06-24 | Sony Corporation | Bus system and bridge circuit connecting bus system and connection apparatus |
Also Published As
Publication number | Publication date |
---|---|
ATE538437T1 (en) | 2012-01-15 |
EP1288785A3 (en) | 2006-04-05 |
US6766386B2 (en) | 2004-07-20 |
EP1288785B1 (en) | 2011-12-21 |
US20030046473A1 (en) | 2003-03-06 |
EP1288785A2 (en) | 2003-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6766386B2 (en) | Method and interface for improved efficiency in performing bus-to-bus read data transfers | |
US5535340A (en) | Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge | |
KR100245818B1 (en) | Shared bus system with transaction and destination id | |
US8244950B2 (en) | Buffering non-posted read commands and responses | |
US5870567A (en) | Delayed transaction protocol for computer system bus | |
KR100253753B1 (en) | Method and apparatus for performing deferred transactions | |
US5848279A (en) | Mechanism for delivering interrupt messages | |
US5918028A (en) | Apparatus and method for smart host bus adapter for personal computer cards | |
US6598103B2 (en) | Transmission of signals synchronous to a common clock and transmission of data synchronous to strobes in a multiple agent processing system | |
US5919254A (en) | Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple processing system | |
US7016994B2 (en) | Retry mechanism for blocking interfaces | |
US20040024948A1 (en) | Response reordering mechanism | |
EP0908826A2 (en) | Packet protocol and distributed burst engine | |
US6675251B1 (en) | Bridge device for connecting multiple devices to one slot | |
JP2004185639A (en) | Method for supporting multiple width memory subsystem | |
US7181561B2 (en) | Ordering rule controlled command storage | |
US6301632B1 (en) | Direct memory access system and method to bridge PCI bus protocols and hitachi SH4 protocols | |
US5845145A (en) | System for generating and sending a critical-world-first data response packet by creating response packet having data ordered in the order best matching the desired order | |
US6266723B1 (en) | Method and system for optimizing of peripheral component interconnect PCI bus transfers | |
US7096290B2 (en) | On-chip high speed data interface | |
US5983299A (en) | Priority request and bypass bus | |
KR20030048415A (en) | Streamlining ata device initialization | |
JPH1055331A (en) | Programmable read and write access signal and its method | |
US6301627B1 (en) | Method/system for identifying delayed predetermined information transfer request as bypassable by subsequently-generated information transfer request using bypass enable bit in bridge translation control entry | |
US6662258B1 (en) | Fly-by support module for a peripheral bus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: BROADCOM CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DOBSON, WILLIAM G.K.;DANZIG, JOEL;REEL/FRAME:015450/0091 Effective date: 20011107 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:037806/0001 Effective date: 20160201 Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:037806/0001 Effective date: 20160201 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:041706/0001 Effective date: 20170120 Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:041706/0001 Effective date: 20170120 |
|
AS | Assignment |
Owner name: BROADCOM CORPORATION, CALIFORNIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041712/0001 Effective date: 20170119 |