US7447205B2 - Systems and methods to insert broadcast transactions into a fast data stream of transactions - Google Patents

Systems and methods to insert broadcast transactions into a fast data stream of transactions Download PDF

Info

Publication number
US7447205B2
US7447205B2 US10/435,639 US43563903A US7447205B2 US 7447205 B2 US7447205 B2 US 7447205B2 US 43563903 A US43563903 A US 43563903A US 7447205 B2 US7447205 B2 US 7447205B2
Authority
US
United States
Prior art keywords
transaction
header
transactions
data
packets
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.)
Active, expires
Application number
US10/435,639
Other versions
US20040223492A1 (en
Inventor
Huai-Ter Victor Chong
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Valtrus Innovations Ltd
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Priority to US10/435,639 priority Critical patent/US7447205B2/en
Assigned to HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. reassignment HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHONG, HUAI-TER VICTOR
Priority to SG200400465A priority patent/SG120141A1/en
Publication of US20040223492A1 publication Critical patent/US20040223492A1/en
Application granted granted Critical
Publication of US7447205B2 publication Critical patent/US7447205B2/en
Assigned to HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP reassignment HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Assigned to OT PATENT ESCROW, LLC reassignment OT PATENT ESCROW, LLC PATENT ASSIGNMENT, SECURITY INTEREST, AND LIEN AGREEMENT Assignors: HEWLETT PACKARD ENTERPRISE COMPANY, HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Assigned to VALTRUS INNOVATIONS LIMITED reassignment VALTRUS INNOVATIONS LIMITED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: OT PATENT ESCROW, LLC
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges

Definitions

  • a core electronics complex also known as a “chipset,” provides communications between processors and various support devices (e.g., random access memory and disk drives etc.).
  • the support devices communicate with the chipset using a plurality of fast data streams over one or more busses.
  • Information in the data streams is contained in transactions constructed from one header packet and zero, one or more data packets.
  • the chipset operates to combine the fast data streams into a single fast data stream. As the chipset processes transactions of the fast data streams, it may determine that a transaction is to be broadcast to multiple destinations, and repeatedly broadcast the transaction within the single fast data stream. The repeated broadcast of the transaction must be done without corrupting or significantly delaying other transactions.
  • the repeated broadcast of a transaction is difficult, in part because the chipset receives transactions from two or more fast data streams simultaneously and interleaves header and data packets. Since the relative ordering of data packets within a transaction must be maintained, the repeated transaction broadcast cannot affect ordering of the interleaved transactions; the data packets of each repeated transaction broadcast must also be contiguous.
  • Prior art solutions typically repeat header and data packets for broadcast transactions without regard to how such action affects in-progress transactions. These solutions can compromise steady-state processing of input data streams and the relative ordering of neighboring transactions. Such solutions also utilize complicated logic and are expensive to implement.
  • a method inserts broadcast transactions into a fast data stream of transactions. Header packets of transactions of one or more fast data streams are processed into a single fast data stream. Header packets of one of the transactions are generated if the one transaction is a broadcast transaction. Data packets of the transactions of the fast data streams are processed into the single fast data stream such that data packets associated with the one transaction are generated according to a header packet of the one transaction.
  • One system inserts broadcast transactions into a fast data stream of transactions.
  • a header processor processes header packets of transactions from one or more fast data streams into a single fast data stream.
  • the header processor is operable to determine if one of the transactions is a broadcast transaction and to generate a header packet of the one transaction.
  • a data processor is responsive to the header processor to process data packets of the transactions into the single fast data stream, such that data packets associated with the one transaction are generated by the data processor.
  • a system inserts broadcast transactions into a fast data stream of transactions, and includes: means for processing header packets of transactions of one or more fast data streams into a single fast data stream; means for generating header packets of one of the transactions if the one transaction is a broadcast transaction; and means for processing data packets of the transactions of the fast data streams into the single fast data stream, wherein data packets associated with the one transaction are in accordance with a header packet of the one transaction.
  • FIG. 1 is a block diagram showing one system for inserting broadcast transactions into a fast data stream of transactions.
  • FIG. 2 is a block diagram illustrating three exemplary transactions constructed from header packets and data packets.
  • FIG. 3 is a block schematic diagram showing exemplary detail of the processor interface block of FIG. 1 .
  • FIG. 4 is a diagram showing exemplary state machine logic that handles insertion of broadcast transactions into a fast data stream of transactions.
  • FIG. 5 is a block schematic diagram illustrating exemplary data processed with the state machine logic of FIG. 4 .
  • FIG. 6 is a flowchart illustrating one process for inserting broadcast transactions into a fast data stream of transactions.
  • FIG. 1 is a block diagram showing one system 10 that inserts broadcast transactions into a fast data stream of transactions.
  • System 10 combines three fast data streams, 32 ( 1 ), 32 ( 2 ) and 32 ( 3 ) to form a single fast data stream 36 , and is illustratively shown with three processors 20 ( 1 ), 20 ( 2 ) and 20 ( 3 ) connected to a processor bus 22 , two high speed devices 28 ( 1 ) and 28 ( 2 ) connected to a first high speed bus 26 , and a third high speed device 28 ( 3 ) connected to a second high speed bus 24 .
  • Data streams 32 and 36 represent data communications from devices 28 to processors 20 over buses 22 , 24 and 26 .
  • a chipset 30 has a processor interface block (“PIB”) 31 that connects to processor bus 22 , high speed buses 26 and 24 , and operates to facilitate data communication between devices 28 and processors 20 .
  • PIB processor interface block
  • high speed device 28 ( 1 ) communicates data to PIB 31 in data stream 32 ( 1 ) over high speed bus 26 .
  • High speed device 28 ( 2 ) communicates data to PIB 31 in data stream 32 ( 2 ) over high speed bus 26 .
  • High speed device 28 ( 3 ) communicates data to PIB 31 in data stream 32 ( 3 ) over high speed bus 24 .
  • PIB 31 communicates data from devices 28 to processor 20 ( 3 ) in single fast data stream 36 over processor bus 22 .
  • High speed devices 28 ( 1 ), 28 ( 2 ) and 28 ( 3 ) are, for example, random access memory, disk drives and graphical interfaces.
  • FIG. 1 shows only four data streams 32 ( 1 ), 32 ( 2 ), 32 ( 3 ) and 36 for clarity of illustration.
  • a transaction is a data structure that contains information transferred within data streams 32 and 36 .
  • Each transaction has a header packet and, optionally, one or more data packets, as illustrated in FIG. 2 .
  • FIG. 2 shows a block diagram of three exemplary transactions 40 used to transfer information within data streams 32 ( 1 ), 32 ( 2 ), 32 ( 3 ) and 36 .
  • Transaction 40 has a header packet 42 and zero data packets.
  • Transaction 40 ′ has a header packet 42 ′ and one data packet 44 ( 1 ).
  • Transaction 40 ′′ has a header packet 42 ′′ and four data packets 44 ( 2 ), 44 ( 3 ), 44 ( 4 ) and 44 ( 5 ).
  • Header packets 42 , 42 ′ and 42 ′′ may each respectively contain a transaction ID 45 , a transaction type 46 , an address 47 , and additional information 48 , as illustrated.
  • Transaction ID 45 is a unique identifier, used by system 10 to identify transaction 40 .
  • Transaction type 46 indicates the type of information and the number of data packets that are included in transaction 40 .
  • Address 47 defines a location in memory if transaction 40 is a data transfer. For example, if device 28 ( 1 ) is a device containing random access memory, address 47 may define a location within the random access memory.
  • Additional information 48 in header packet 42 may include, for example, error codes that operate to verify that information has been transferred without corruption.
  • Transactions 40 , 40 ′ and 40 ′′ are given as examples of transactions. Transactions may consist of other combinations of header and data packets without departing from the scope hereof.
  • FIG. 3 An exemplary embodiment of PIB 31 , FIG. 1 , is shown in FIG. 3 , illustrating data communication from devices 28 to processor 20 ( 3 ).
  • PIB 31 combines fast data streams 32 into single fast data stream 36 .
  • PIB 31 is illustratively shown with a general purpose transaction processing block 54 , which includes a header processor 60 and a data processor 58 .
  • Header processor 60 and data processor 58 operate according to control signals 64 , 66 between one another to process header packet 42 and data packets 44 , respectively. This controlled operation reduces latency and maximizes bandwidth associated with processing transactions 40 within PIB 31 , thereby improving performance of system 10 .
  • PIB 31 also includes an input queue 68 that stores transactions 40 received from fast data streams 32 ( 1 ), 32 ( 2 ) and 32 ( 3 ).
  • Input queue 68 is, for example, a latch array within PIB 31 .
  • Input queue 68 is monitored by data processor 58 , via a data path 72 , to determine the packet type (header packet 42 or data packet 44 ) at the front of input queue 68 . If, for example, header packet 42 is at the front of input queue 68 , data processor 58 informs header processor 60 , through control signal 66 , to read header packet 42 from input queue 68 ; header processor 60 in turn reads the header packet of input queue 68 over data path 73 . If, on the other hand, data packet 44 is at the front of input queue 68 , data processor 58 reads data packet 44 from input queue 68 over data path 72 .
  • header processor 60 reformats header packet 42 to match the format of fast data stream 36 , if necessary, and sends header packet 42 to a header output queue 50 via a header port 56 .
  • Header output queue 50 is, for example, a latch array within PIB 31 .
  • Header port 56 is an interface between general purpose transaction processing block 54 and header output queue 50 ; it may include ratio logic to facilitate transferring data from one clock frequency domain to another (e.g., from within block 54 to outside block 54 ).
  • Header output queue 50 stores header packets 42 prior to output to single fast data stream 36 (i.e., over bus 22 , FIG. 1 ).
  • data processor 58 reformats data packets 44 to the format of fast data stream 36 , if necessary, and sends data packets 44 to a data output queue 52 via a data port 57 .
  • Data output queue 52 is, for example, a latch array within PIB 31 .
  • Data port 57 is an interface between general purpose transaction processing block 54 and data output queue 52 ; it may include ratio logic to facilitate transferring data from one clock frequency domain to another (e.g., from within block 54 to outside block 54 ).
  • Data output queue 52 stores data packets 44 prior to output to single fast data stream 36 .
  • Fast data stream 36 conveys the combined header and data packets to processor 20 over bus 22 of FIG. 1 .
  • FIG. 3 Communication within FIG. 3 may also occur in reverse order, from processors 20 to devices 28 .
  • PIB 31 may also include functionality that facilitates such reverse data communication; however such functionality is not shown for clarity.
  • devices 28 , FIG. 1 also typically include interface blocks to process transactions to and from PIB 31 .
  • Header processor 60 uses transaction type 46 , within each header packet 42 of transaction 40 , to determine if a particular transaction 40 should be broadcast to multiple destinations.
  • a broadcast transaction is a transaction that is delivered to a plurality of destinations connected to processor bus 22 (e.g., to processors 20 ( 1 ), 20 ( 2 ) and 20 ( 3 )). The broadcast transaction is repeatedly output to fast data stream 36 such that one version is sent to each destination.
  • header processor 60 and data processor 58 cooperate to insert such broadcast transactions into single fast data stream 36 .
  • Header processor 60 includes a header counter 61 that counts header packets 42 for the broadcast transactions.
  • Data processor 58 includes a data counter 59 that counts data packets 44 for the broadcast transactions.
  • FIG. 4 is a diagram illustrating exemplary state machine logic 80 used within header processor 60
  • FIG. 3 is a block diagram illustrating exemplary data used within state machine logic 80
  • fast data stream 32 ( 1 ) has one transaction 104 constructed of one header packet HA and four data packets D 1 A, D 2 A, D 3 A and D 4 A
  • fast data stream 32 ( 2 ) has one transaction 106 constructed of one header packet HB and two data packets D 1 B and D 2 B
  • fast data stream 32 ( 3 ) has one transaction 108 constructed of one header packet HC and one data packet D 1 C.
  • transactions 104 , 106 and 108 arrive at input queue 68 concurrently; therefore individual packets of transactions 104 , 106 and 108 become interleaved and stored as header packets HA′, HB′, HC′ and data packets D 1 A′, D 1 B′, D 1 C′, D 2 A′, D 2 B′, D 3 A′ and D 4 A′ in input queue 68 , as shown in FIG. 5 .
  • transaction 106 is a broadcast transaction; its header packet HB has a transaction type 46 data field identifying four destinations for transaction 106 .
  • transaction type 46 may specify transaction 106 as a transaction to be delivered to all processors 20 ; in this alternative embodiment, PIB 31 is aware of the number of processors 20 on bus 22 and outputs one version of transaction 106 to each processor 20 .
  • data processor 58 instructs header processor 60 (via control signal 66 ) to process header packets HA′, HB′ and HC′ from input queue 68 .
  • Header processor 60 sends processed header packet HA′′, HB 1 ′′, HB 2 ′′, HB 3 ′′, HB 4 ′′ and HC′′ to header output queue 50 , as shown; in doing so, header counter 61 of header processor 60 is used to generate three extra versions of HB (i.e., HB 2 ′′, HB 3 ′′, HB 4 ′) for header output queue 50 .
  • Header processor 60 also instructs data processor 58 , via control signal 64 , to repeat data packets D 1 B and D 2 B four times.
  • Data processor 58 processes data packets D 1 A′, D 1 B′, D 2 A′, D 2 B′, D 3 A′, D 4 A′ and D 1 C′ from input queue 68 and sends processed data packets D 1 A′′, D 2 A′′, D 3 A′′, D 4 A′′, D 1 B 1 ′′, D 2 B 1 ′′, D 1 B 2 ′′, D 2 B 2 ′′, D 1 B 3 ′′, D 2 B 3 ′′, D 1 B 4 ′′, D 2 B 4 ′′ and D 1 C′′ to data output queue 52 ; in doing so, data counter 59 of data processor 58 is used to generate three extra versions of D 1 B, D 2 B (i.e., D 1 B 2 ′′, D 2 B 2 ′′, D 1 B 3 ′′, D 2 B 3 ′′, D 1 B 4 ′′, D 2 B 4 ′) for data output queue 52 .
  • processing and repeated generation of header and data packets may include reformatting of the header and data packets, such as to accommodate changes in transaction packet formats between fast data streams 32 and fast data stream 36 .
  • the use of the words “process” and “generate” should not be considered limiting but rather are illustrative of operation.
  • the processing time for individual header and data packets may differ; and the order in which header packets HA′′ HB 1 ′′, HB 2 ′′, HB 3 ′′, HB 4 ′′ and HC′′ are sent to single fast output data stream 36 , relative to data packets D 1 A′′, D 2 A′′, D 3 A′′, D 4 A′′, D 1 B 1 ′′, D 2 B 1 ′′, D 1 B 2 ′′, D 2 B 2 ′′, D 1 B 3 ′′, D 2 B 3 ′′, D 1 B 4 ′′, D 2 B 4 ′′ and D 1 C′′, may be indeterminate.
  • header packet HA′′ is sent to header output queue 50 prior to header packet HB 1 ′′.
  • data packets D 1 A′′, D 2 A′′, D 3 A′′, D 4 A′′, D 1 B 1 ′′, D 2 B 1 ′′, D 1 B 2 ′′, D 2 B 2 ′′, D 1 B 3 ′′, D 2 B 3 ′′, D 1 B 4 ′′, D 2 B 4 ′′ and D 1 C′′ are sent to data output queue 52 in the order in which they are received.
  • State machine logic 80 FIG. 4 thus illustrates an exemplary communication protocol between header processor 60 and data processor 58 to insert broadcast transaction 106 to single fast data stream 36 , FIG. 3 .
  • Header processor 60 transitions to an idle state 82 after processing a header packet from data streams 32 .
  • header processor 60 transitions to idle state 82 after processing header packet HA′.
  • Data processor 58 instructs header processor 60 , via control signal 66 , to read header packet HB′ from input queue 68 .
  • Header processor 60 analyzes header packet HB′ and determines that transaction 106 of fast data stream 32 ( 2 ) is a broadcast transaction with four destinations. Header processor 60 informs data processor 58 , via control signal 64 , to broadcast data packets from transaction 106 four times. Header processor 60 sets header counter 61 to three and then transitions from idle state 82 to a sending broadcast packets state 84 .
  • Header processor 60 outputs all except the last header packet of the broadcast (i.e., in the example, header processor 60 outputs HB 1 ′′, HB 2 ′′ and HB 3 ′′ to header output queue 50 ) and then transitions to a ready to POP last header state 86 .
  • Data processor 58 receives instruction from header processor 60 , via control signal 64 , identifying two packets, D 1 B and D 2 B, to be repeatedly output as a broadcast transaction. Data processor 58 completes processing of data packets D 1 A, D 2 A, D 3 A and D 4 A of transaction 104 before processing data packets D 1 B and D 2 B of data stream 32 ( 2 ). Data processor 58 then sets data counter 59 to four and outputs data packets D 1 B′ and D 2 B′, four times to data output queue 52 , as D 1 B 1 ′′, D 2 B 1 ′′, D 1 B 2 ′′, D 2 B 2 ′′, D 1 B 3 ′′, D 2 B 3 ′′, D 1 B 4 ′′ and D 2 B 4 ′′. Data processor 58 then notifies header processor 60 , via control signal 66 , that it has completed the multiple broadcast data packets, and then resumes processing of data packet D 1 C′ of input queue 68 .
  • new transactions arriving at input queue 68 , FIG. 3 , during data processor state 86 are not processed by data processor 58 until completion the broadcast transaction.
  • header processor 60 Upon receipt of the notification from data processor 58 , header processor 60 transitions to a ready to POP last header state 88 where it outputs the final header packet HB 4 ′′ of the broadcast transaction to header output queue 50 . Header processor 60 then transitions to idle state 82 where it begins processing of HC′ from input queue 68 or from an overflow register in header processor 60 .
  • transactions 104 , 106 and 108 from fast data streams 32 ( 1 ), 32 ( 2 ) and 32 ( 3 ), respectively, are processed by header processor 60 and data processor 58 such that ordering of header packets HA′, HB′ and HC′ and data packets D 1 A′, D 2 A′, D 3 A′, D 4 A′, D 1 B′, D 2 B and D 1 C′ conform to round robin arbitration.
  • FIG. 6 is a flowchart illustrating one process 150 for inserting broadcast transactions into a fast data stream of transactions.
  • header processor 60 processes header packets of transactions of one or more fast data streams (e.g., data streams 32 , FIG. 1 ) into a fast data stream (e.g., data stream 36 , FIG. 1 ).
  • header processor 60 generates header packets of one of the transactions if the one transaction is a broadcast transaction.
  • data processor 58 processes data packets of the transactions of the fast data streams into the fast data stream such that data packets associated with the one transaction are generated in response to one or more generated header packets.

Abstract

Systems and methods insert broadcast transactions into a fast data stream of transactions. Header packets of transactions of one or more fast data streams are processed into a single fast data stream. Header packets of one of the transactions are generated if the one transaction is a broadcast transaction. Data packets of the transactions of the fast data streams are processed into the single fast data stream such that data packets associated with the one transaction are generated in accordance with a header packet of the one transaction.

Description

RELATED APPLICATIONS
This application is related to the following commonly owned and co-filed U.S. patent applications, filed May 9, 2003 and incorporated herein by reference: SYSTEMS AND METHODS FOR GENERATING TRANSACTION IDENTIFIERS having Ser. No. 10/434,657; SYSTEMS AND METHODS FOR DELETING TRANSACTIONS FROM MULTIPLE FAST DATA STREAMS having Ser. No. 10/434,637; SYSTEMS AND METHODS FOR COMBINING A SLOW DATA STREAM AND A FAST DATA STREAM INTO A SINGLE FAST DATA STREAM having Ser. No. 10/434,656; and SYSTEMS AND METHODS FOR INCREASING TRANSACTION ENTRIES IN A HARDWARE QUEUE having Ser. No. 10/434,655.
BACKGROUND
In a high speed server consisting of multiple processors, a core electronics complex, also known as a “chipset,” provides communications between processors and various support devices (e.g., random access memory and disk drives etc.). The support devices communicate with the chipset using a plurality of fast data streams over one or more busses. Information in the data streams is contained in transactions constructed from one header packet and zero, one or more data packets.
The chipset operates to combine the fast data streams into a single fast data stream. As the chipset processes transactions of the fast data streams, it may determine that a transaction is to be broadcast to multiple destinations, and repeatedly broadcast the transaction within the single fast data stream. The repeated broadcast of the transaction must be done without corrupting or significantly delaying other transactions.
The repeated broadcast of a transaction is difficult, in part because the chipset receives transactions from two or more fast data streams simultaneously and interleaves header and data packets. Since the relative ordering of data packets within a transaction must be maintained, the repeated transaction broadcast cannot affect ordering of the interleaved transactions; the data packets of each repeated transaction broadcast must also be contiguous.
Prior art solutions typically repeat header and data packets for broadcast transactions without regard to how such action affects in-progress transactions. These solutions can compromise steady-state processing of input data streams and the relative ordering of neighboring transactions. Such solutions also utilize complicated logic and are expensive to implement.
SUMMARY OF THE INVENTION
In various embodiments, a method inserts broadcast transactions into a fast data stream of transactions. Header packets of transactions of one or more fast data streams are processed into a single fast data stream. Header packets of one of the transactions are generated if the one transaction is a broadcast transaction. Data packets of the transactions of the fast data streams are processed into the single fast data stream such that data packets associated with the one transaction are generated according to a header packet of the one transaction.
One system inserts broadcast transactions into a fast data stream of transactions. A header processor processes header packets of transactions from one or more fast data streams into a single fast data stream. The header processor is operable to determine if one of the transactions is a broadcast transaction and to generate a header packet of the one transaction. A data processor is responsive to the header processor to process data packets of the transactions into the single fast data stream, such that data packets associated with the one transaction are generated by the data processor.
In one embodiment, a system inserts broadcast transactions into a fast data stream of transactions, and includes: means for processing header packets of transactions of one or more fast data streams into a single fast data stream; means for generating header packets of one of the transactions if the one transaction is a broadcast transaction; and means for processing data packets of the transactions of the fast data streams into the single fast data stream, wherein data packets associated with the one transaction are in accordance with a header packet of the one transaction.
BRIEF DESCRIPTION OF THE FIGURES
FIG. 1 is a block diagram showing one system for inserting broadcast transactions into a fast data stream of transactions.
FIG. 2 is a block diagram illustrating three exemplary transactions constructed from header packets and data packets.
FIG. 3 is a block schematic diagram showing exemplary detail of the processor interface block of FIG. 1.
FIG. 4 is a diagram showing exemplary state machine logic that handles insertion of broadcast transactions into a fast data stream of transactions.
FIG. 5 is a block schematic diagram illustrating exemplary data processed with the state machine logic of FIG. 4.
FIG. 6 is a flowchart illustrating one process for inserting broadcast transactions into a fast data stream of transactions.
DETAILED DESCRIPTION OF THE FIGURES
FIG. 1 is a block diagram showing one system 10 that inserts broadcast transactions into a fast data stream of transactions. System 10 combines three fast data streams, 32(1), 32(2) and 32(3) to form a single fast data stream 36, and is illustratively shown with three processors 20(1), 20(2) and 20(3) connected to a processor bus 22, two high speed devices 28(1) and 28(2) connected to a first high speed bus 26, and a third high speed device 28(3) connected to a second high speed bus 24. Data streams 32 and 36 represent data communications from devices 28 to processors 20 over buses 22, 24 and 26. A chipset 30 has a processor interface block (“PIB”) 31 that connects to processor bus 22, high speed buses 26 and 24, and operates to facilitate data communication between devices 28 and processors 20.
By way of example, high speed device 28(1) communicates data to PIB 31 in data stream 32(1) over high speed bus 26. High speed device 28(2) communicates data to PIB 31 in data stream 32(2) over high speed bus 26. High speed device 28(3) communicates data to PIB 31 in data stream 32(3) over high speed bus 24. PIB 31 communicates data from devices 28 to processor 20(3) in single fast data stream 36 over processor bus 22. High speed devices 28(1), 28(2) and 28(3) are, for example, random access memory, disk drives and graphical interfaces.
Additional data streams may exist within system 10, for example to facilitate data communication from processors 20 to devices 28 over busses 22, 24 and 26. FIG. 1 shows only four data streams 32(1), 32(2), 32(3) and 36 for clarity of illustration.
A transaction is a data structure that contains information transferred within data streams 32 and 36. Each transaction has a header packet and, optionally, one or more data packets, as illustrated in FIG. 2. In particular, FIG. 2 shows a block diagram of three exemplary transactions 40 used to transfer information within data streams 32(1), 32(2), 32(3) and 36. Transaction 40 has a header packet 42 and zero data packets. Transaction 40′ has a header packet 42′ and one data packet 44(1). Transaction 40″ has a header packet 42″ and four data packets 44(2), 44(3), 44(4) and 44(5). Header packets 42, 42′ and 42″ may each respectively contain a transaction ID 45, a transaction type 46, an address 47, and additional information 48, as illustrated. Transaction ID 45 is a unique identifier, used by system 10 to identify transaction 40. Transaction type 46 indicates the type of information and the number of data packets that are included in transaction 40. Address 47 defines a location in memory if transaction 40 is a data transfer. For example, if device 28(1) is a device containing random access memory, address 47 may define a location within the random access memory. Additional information 48 in header packet 42 may include, for example, error codes that operate to verify that information has been transferred without corruption.
Transactions 40, 40′ and 40″ are given as examples of transactions. Transactions may consist of other combinations of header and data packets without departing from the scope hereof.
An exemplary embodiment of PIB 31, FIG. 1, is shown in FIG. 3, illustrating data communication from devices 28 to processor 20(3). As shown, PIB 31 combines fast data streams 32 into single fast data stream 36. PIB 31 is illustratively shown with a general purpose transaction processing block 54, which includes a header processor 60 and a data processor 58. Header processor 60 and data processor 58 operate according to control signals 64, 66 between one another to process header packet 42 and data packets 44, respectively. This controlled operation reduces latency and maximizes bandwidth associated with processing transactions 40 within PIB 31, thereby improving performance of system 10.
PIB 31 also includes an input queue 68 that stores transactions 40 received from fast data streams 32(1), 32(2) and 32(3). Input queue 68 is, for example, a latch array within PIB 31. Input queue 68 is monitored by data processor 58, via a data path 72, to determine the packet type (header packet 42 or data packet 44) at the front of input queue 68. If, for example, header packet 42 is at the front of input queue 68, data processor 58 informs header processor 60, through control signal 66, to read header packet 42 from input queue 68; header processor 60 in turn reads the header packet of input queue 68 over data path 73. If, on the other hand, data packet 44 is at the front of input queue 68, data processor 58 reads data packet 44 from input queue 68 over data path 72.
In one embodiment, header processor 60 reformats header packet 42 to match the format of fast data stream 36, if necessary, and sends header packet 42 to a header output queue 50 via a header port 56. Header output queue 50 is, for example, a latch array within PIB 31. Header port 56 is an interface between general purpose transaction processing block 54 and header output queue 50; it may include ratio logic to facilitate transferring data from one clock frequency domain to another (e.g., from within block 54 to outside block 54). Header output queue 50 stores header packets 42 prior to output to single fast data stream 36 (i.e., over bus 22, FIG. 1).
In one embodiment, data processor 58 reformats data packets 44 to the format of fast data stream 36, if necessary, and sends data packets 44 to a data output queue 52 via a data port 57. Data output queue 52 is, for example, a latch array within PIB 31. Data port 57 is an interface between general purpose transaction processing block 54 and data output queue 52; it may include ratio logic to facilitate transferring data from one clock frequency domain to another (e.g., from within block 54 to outside block 54). Data output queue 52 stores data packets 44 prior to output to single fast data stream 36. Fast data stream 36 conveys the combined header and data packets to processor 20 over bus 22 of FIG. 1.
Communication within FIG. 3 may also occur in reverse order, from processors 20 to devices 28. Accordingly, PIB 31 may also include functionality that facilitates such reverse data communication; however such functionality is not shown for clarity. Moreover, those skilled in the art appreciate devices 28, FIG. 1, also typically include interface blocks to process transactions to and from PIB 31.
Header processor 60 uses transaction type 46, within each header packet 42 of transaction 40, to determine if a particular transaction 40 should be broadcast to multiple destinations. A broadcast transaction is a transaction that is delivered to a plurality of destinations connected to processor bus 22 (e.g., to processors 20(1), 20(2) and 20(3)). The broadcast transaction is repeatedly output to fast data stream 36 such that one version is sent to each destination. As described in more detail below, header processor 60 and data processor 58 cooperate to insert such broadcast transactions into single fast data stream 36. Header processor 60 includes a header counter 61 that counts header packets 42 for the broadcast transactions. Data processor 58 includes a data counter 59 that counts data packets 44 for the broadcast transactions.
FIG. 4 is a diagram illustrating exemplary state machine logic 80 used within header processor 60, FIG. 3. FIG. 5 is a block diagram illustrating exemplary data used within state machine logic 80. In an illustrative example, fast data stream 32(1) has one transaction 104 constructed of one header packet HA and four data packets D1A, D2A, D3A and D4A; fast data stream 32(2) has one transaction 106 constructed of one header packet HB and two data packets D1B and D2B; and fast data stream 32(3) has one transaction 108 constructed of one header packet HC and one data packet D1C. In the example, transactions 104, 106 and 108 arrive at input queue 68 concurrently; therefore individual packets of transactions 104, 106 and 108 become interleaved and stored as header packets HA′, HB′, HC′ and data packets D1A′, D1B′, D1C′, D2A′, D2B′, D3A′ and D4A′ in input queue 68, as shown in FIG. 5. In the example, transaction 106 is a broadcast transaction; its header packet HB has a transaction type 46 data field identifying four destinations for transaction 106. Alternatively, transaction type 46 may specify transaction 106 as a transaction to be delivered to all processors 20; in this alternative embodiment, PIB 31 is aware of the number of processors 20 on bus 22 and outputs one version of transaction 106 to each processor 20.
In illustrative operation, data processor 58 instructs header processor 60 (via control signal 66) to process header packets HA′, HB′ and HC′ from input queue 68. Header processor 60 sends processed header packet HA″, HB1″, HB2″, HB3″, HB4″ and HC″ to header output queue 50, as shown; in doing so, header counter 61 of header processor 60 is used to generate three extra versions of HB (i.e., HB2″, HB3″, HB4′) for header output queue 50. Header processor 60 also instructs data processor 58, via control signal 64, to repeat data packets D1B and D2B four times. Data processor 58 processes data packets D1A′, D1B′, D2A′, D2B′, D3A′, D4A′ and D1C′ from input queue 68 and sends processed data packets D1A″, D2A″, D3A″, D4A″, D1B1″, D2B1″, D1B2″, D2B2″, D1B3″, D2B3″, D1B4″, D2B4″ and D1C″ to data output queue 52; in doing so, data counter 59 of data processor 58 is used to generate three extra versions of D1B, D2B (i.e., D1B2″, D2B2″, D1B3″, D2B3″, D1B4″, D2B4′) for data output queue 52.
In the foregoing example, it should be apparent that processing and repeated generation of header and data packets may include reformatting of the header and data packets, such as to accommodate changes in transaction packet formats between fast data streams 32 and fast data stream 36. The use of the words “process” and “generate” should not be considered limiting but rather are illustrative of operation.
The processing time for individual header and data packets may differ; and the order in which header packets HA″ HB1″, HB2″, HB3″, HB4″ and HC″ are sent to single fast output data stream 36, relative to data packets D1A″, D2A″, D3A″, D4A″, D1B1″, D2B1″, D1B2″, D2B2″, D1B3″, D2B3″, D1B4″, D2B4″ and D1C″, may be indeterminate. However, if header packet HA′ is received by PIB 31 before header packet HB′, header packet HA″ is sent to header output queue 50 prior to header packet HB1″. Likewise, data packets D1A″, D2A″, D3A″, D4A″, D1B1″, D2B1″, D1B2″, D2B2″, D1B3″, D2B3″, D1B4″, D2B4″ and D1C″ are sent to data output queue 52 in the order in which they are received.
State machine logic 80, FIG. 4, thus illustrates an exemplary communication protocol between header processor 60 and data processor 58 to insert broadcast transaction 106 to single fast data stream 36, FIG. 3. Header processor 60 transitions to an idle state 82 after processing a header packet from data streams 32.
In one example, header processor 60 transitions to idle state 82 after processing header packet HA′. Data processor 58 instructs header processor 60, via control signal 66, to read header packet HB′ from input queue 68. Header processor 60 analyzes header packet HB′ and determines that transaction 106 of fast data stream 32(2) is a broadcast transaction with four destinations. Header processor 60 informs data processor 58, via control signal 64, to broadcast data packets from transaction 106 four times. Header processor 60 sets header counter 61 to three and then transitions from idle state 82 to a sending broadcast packets state 84. Header processor 60 outputs all except the last header packet of the broadcast (i.e., in the example, header processor 60 outputs HB1″, HB2″ and HB3″ to header output queue 50) and then transitions to a ready to POP last header state 86.
Data processor 58 receives instruction from header processor 60, via control signal 64, identifying two packets, D1B and D2B, to be repeatedly output as a broadcast transaction. Data processor 58 completes processing of data packets D1A, D2A, D3A and D4A of transaction 104 before processing data packets D1B and D2B of data stream 32(2). Data processor 58 then sets data counter 59 to four and outputs data packets D1B′ and D2B′, four times to data output queue 52, as D1B1″, D2B1″, D1B2″, D2B2″, D1B3″, D2B3″, D1B4″ and D2B4″. Data processor 58 then notifies header processor 60, via control signal 66, that it has completed the multiple broadcast data packets, and then resumes processing of data packet D1C′ of input queue 68.
In one embodiment, new transactions arriving at input queue 68, FIG. 3, during data processor state 86 are not processed by data processor 58 until completion the broadcast transaction.
Upon receipt of the notification from data processor 58, header processor 60 transitions to a ready to POP last header state 88 where it outputs the final header packet HB4″ of the broadcast transaction to header output queue 50. Header processor 60 then transitions to idle state 82 where it begins processing of HC′ from input queue 68 or from an overflow register in header processor 60.
In one embodiment, transactions 104, 106 and 108 from fast data streams 32(1), 32(2) and 32(3), respectively, are processed by header processor 60 and data processor 58 such that ordering of header packets HA′, HB′ and HC′ and data packets D1A′, D2A′, D3A′, D4A′, D1B′, D2B and D1C′ conform to round robin arbitration.
FIG. 6 is a flowchart illustrating one process 150 for inserting broadcast transactions into a fast data stream of transactions. In step 152, header processor 60 processes header packets of transactions of one or more fast data streams (e.g., data streams 32, FIG. 1) into a fast data stream (e.g., data stream 36, FIG. 1). In step 154, header processor 60 generates header packets of one of the transactions if the one transaction is a broadcast transaction. In step 156, data processor 58 processes data packets of the transactions of the fast data streams into the fast data stream such that data packets associated with the one transaction are generated in response to one or more generated header packets.
Changes may be made in the above methods and systems without departing from the scope hereof. It should thus be noted that the matter contained in the above description or shown in the accompanying drawings should be interpreted as illustrative and not in a limiting sense. The following claims are intended to cover all generic and specific features described herein, as well as all statements of the scope of the present method and system, which, as a matter of language, might be said to fall there between.

Claims (12)

1. A method for inserting broadcast transactions into a fast data stream of transactions, comprising:
processing header packets of transactions of two or more fast data streams into a single fast data stream of a processor bus;
generating header packets of one of the transactions if the one transaction is a broadcast transaction, the step of generating comprising utilizing a counter to count a number of generated header packets to determine completion of the step of generating; and
processing data packets of the transactions of the fast data streams into the single fast data stream such that data packets associated with the one transaction are generated in accordance with a header packet of the one transaction;
the header packets being output to the fast data stream in the order in which they are received and the data packets being output to the fast data stream in the order in which they are received.
2. The method of claim 1, further comprising determining whether the one transaction is the broadcast transaction, the step of processing responsive to the step of determining to generate the data packets of the one transaction.
3. The method of claim 2, further comprising reading a transaction type data field of the header packet to determine whether the one transaction is the broadcast transaction.
4. The method of claim 2, further comprising signaling a data processor to generate the data packets according to information specified within the header packet after determining that the one transaction is the broadcast transaction.
5. The method of claim 4, further comprising signaling a header processor after generating the data packets.
6. The method of claim 1, the step of processing comprising utilizing a counter to count a number of generated data packets to determine completion of the step of processing.
7. A system that inserts broadcast transactions into a fast data stream of transactions, comprising:
a header processor for processing header packets of transactions from two or more fast data streams into a single fast data stream of a processor bus, the header processor operable to determine if one of the transactions is a broadcast transaction and to generate a header packet of the one transaction; and
a data processor responsive to the header processor for processing data packets of the transactions into the single fast data stream such that data packets associated with the one transaction are generated in the single fast data stream;
the header packets being output to the fast data stream in the order in which they are received and the data packets being output to the fast data stream in the order in which they are received,
the data processor signaling the header processor, after generating the data packets associated with the one transaction, to process subsequent header packets of the one or more fast data streams.
8. The system of claim 7, the header processor signaling the data processor, after reading a header packet of the one transaction, to generate data packets associated with the one transaction.
9. A system that inserts broadcast transactions into a fast data stream of transactions, comprising:
means for processing header packets of transactions of two or more fast data streams into a single fast data stream of a processor bus;
means for generating header packets of one of the transactions if the one transaction is a broadcast transaction;
means for processing data packets of the transactions of the fast data streams into the single fast data stream, wherein data packets associated with the one transaction are in accordance with a header packet of the one transaction;
the header packets being output to the fast data stream in the order in which they are received and the data packets being output to the fast data stream in the order in which they are received;
means for counting a number of generated header packets associated with the one transaction; and
means for counting a number of generated data packets associated with the one transaction.
10. The system of claim 9, further comprising means for determining whether the one transaction is the broadcast transaction.
11. The system of claim 10, further comprising means for reading a header packet of the one transaction.
12. The system of claim 10, the means for processing responsive to the means for generating to generate the data packets associated with the one transaction.
US10/435,639 2003-05-09 2003-05-09 Systems and methods to insert broadcast transactions into a fast data stream of transactions Active 2025-12-25 US7447205B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/435,639 US7447205B2 (en) 2003-05-09 2003-05-09 Systems and methods to insert broadcast transactions into a fast data stream of transactions
SG200400465A SG120141A1 (en) 2003-05-09 2004-01-30 Systems and methods to insert broadcast transactions into a fast data stream of transactions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/435,639 US7447205B2 (en) 2003-05-09 2003-05-09 Systems and methods to insert broadcast transactions into a fast data stream of transactions

Publications (2)

Publication Number Publication Date
US20040223492A1 US20040223492A1 (en) 2004-11-11
US7447205B2 true US7447205B2 (en) 2008-11-04

Family

ID=33416983

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/435,639 Active 2025-12-25 US7447205B2 (en) 2003-05-09 2003-05-09 Systems and methods to insert broadcast transactions into a fast data stream of transactions

Country Status (2)

Country Link
US (1) US7447205B2 (en)
SG (1) SG120141A1 (en)

Citations (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4615001A (en) 1984-03-29 1986-09-30 At&T Bell Laboratories Queuing arrangement for initiating execution of multistage transactions
EP0201252A2 (en) 1985-05-06 1986-11-12 AT&T Corp. Packet switch trunk circuit queueing arrangement
EP0583965A2 (en) 1992-08-17 1994-02-23 International Business Machines Corporation Network priority management
US5317720A (en) 1990-06-29 1994-05-31 Digital Equipment Corporation Processor system with writeback cache using writeback and non writeback transactions stored in separate queues
US5892766A (en) * 1996-02-22 1999-04-06 Fujitsu, Ltd. Method and apparatus for coordinating access to an output of a routing device in a packet switching network
US5898687A (en) * 1996-07-24 1999-04-27 Cisco Systems, Inc. Arbitration mechanism for a multicast logic engine of a switching fabric circuit
JPH11252137A (en) 1998-03-02 1999-09-17 Canon Inc Data communication system, equipment and method
US5970072A (en) * 1997-10-02 1999-10-19 Alcatel Usa Sourcing, L.P. System and apparatus for telecommunications bus control
US6160809A (en) * 1997-12-17 2000-12-12 Compaq Computer Corporation Distributed packet data with centralized snooping and header processing router
EP1089500A2 (en) 1999-09-30 2001-04-04 Nortel Networks Limited Fair packet scheduler and scheduling method for packet data radio
US6272134B1 (en) * 1997-11-20 2001-08-07 International Business Machines Corporation Multicast frame support in hardware routing assist
EP1128612A2 (en) 1992-08-07 2001-08-29 International Business Machines Corporation Transmission of high-priority, real-time traffic on low-speed communications links
US6333902B1 (en) * 1998-04-17 2001-12-25 Samsung Electronics., Ltd. Method for generating land/groove switching signal from POLG type disc and apparatus therefor
US6345352B1 (en) 1998-09-30 2002-02-05 Apple Computer, Inc. Method and system for supporting multiprocessor TLB-purge instructions using directed write transactions
US20020019903A1 (en) 2000-08-11 2002-02-14 Jeff Lin Sequencing method and bridging system for accessing shared system resources
US6493776B1 (en) 1999-08-12 2002-12-10 Mips Technologies, Inc. Scalable on-chip system bus
US6496520B1 (en) 2000-01-21 2002-12-17 Broadcloud Communications, Inc. Wireless network system and method
US20030079073A1 (en) 2001-09-29 2003-04-24 Richard Elizabeth Anne Transaction generator for initialization, rebuild, and verify of memory
US20030095561A1 (en) * 2001-11-16 2003-05-22 Hwang Chan-Soo Apparatus and method for efficiently transmitting and receiving multicast data
US6724761B1 (en) * 1999-09-29 2004-04-20 Northrop Grumman Corporation Method and apparatus for serial cell replication for multicast in a cell switch
US20040202148A1 (en) * 2001-01-31 2004-10-14 Thomas Kuehnel System and method of data stream transmission over MPLS
US20040213284A1 (en) * 2003-04-25 2004-10-28 Alcatel Ip Networks, Inc. Frame processing
US6996654B2 (en) * 2003-05-09 2006-02-07 Hewlett-Packard Development Company, L.P. Systems and methods for generating multiple transaction identifiers to reduced latency in computer architecture
US7050455B2 (en) * 1999-12-14 2006-05-23 Juniper Networks, Inc. Frame construction method, frame construction device and data transfer system capable of accommodating STM traffic and best effort traffic in common frame format
US7154916B2 (en) * 2001-07-26 2006-12-26 The Directv Group, Inc. Method for real-time insertion of auxiliary data packets into DSS bitstream in the presence of one or more service channels

Patent Citations (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4615001A (en) 1984-03-29 1986-09-30 At&T Bell Laboratories Queuing arrangement for initiating execution of multistage transactions
EP0201252A2 (en) 1985-05-06 1986-11-12 AT&T Corp. Packet switch trunk circuit queueing arrangement
US5317720A (en) 1990-06-29 1994-05-31 Digital Equipment Corporation Processor system with writeback cache using writeback and non writeback transactions stored in separate queues
EP1128612A2 (en) 1992-08-07 2001-08-29 International Business Machines Corporation Transmission of high-priority, real-time traffic on low-speed communications links
EP0583965A2 (en) 1992-08-17 1994-02-23 International Business Machines Corporation Network priority management
US5892766A (en) * 1996-02-22 1999-04-06 Fujitsu, Ltd. Method and apparatus for coordinating access to an output of a routing device in a packet switching network
US5898687A (en) * 1996-07-24 1999-04-27 Cisco Systems, Inc. Arbitration mechanism for a multicast logic engine of a switching fabric circuit
US5970072A (en) * 1997-10-02 1999-10-19 Alcatel Usa Sourcing, L.P. System and apparatus for telecommunications bus control
US6272134B1 (en) * 1997-11-20 2001-08-07 International Business Machines Corporation Multicast frame support in hardware routing assist
US6160809A (en) * 1997-12-17 2000-12-12 Compaq Computer Corporation Distributed packet data with centralized snooping and header processing router
JPH11252137A (en) 1998-03-02 1999-09-17 Canon Inc Data communication system, equipment and method
US6333902B1 (en) * 1998-04-17 2001-12-25 Samsung Electronics., Ltd. Method for generating land/groove switching signal from POLG type disc and apparatus therefor
US6345352B1 (en) 1998-09-30 2002-02-05 Apple Computer, Inc. Method and system for supporting multiprocessor TLB-purge instructions using directed write transactions
US6493776B1 (en) 1999-08-12 2002-12-10 Mips Technologies, Inc. Scalable on-chip system bus
US6724761B1 (en) * 1999-09-29 2004-04-20 Northrop Grumman Corporation Method and apparatus for serial cell replication for multicast in a cell switch
EP1089500A2 (en) 1999-09-30 2001-04-04 Nortel Networks Limited Fair packet scheduler and scheduling method for packet data radio
US7050455B2 (en) * 1999-12-14 2006-05-23 Juniper Networks, Inc. Frame construction method, frame construction device and data transfer system capable of accommodating STM traffic and best effort traffic in common frame format
US6496520B1 (en) 2000-01-21 2002-12-17 Broadcloud Communications, Inc. Wireless network system and method
US20020019903A1 (en) 2000-08-11 2002-02-14 Jeff Lin Sequencing method and bridging system for accessing shared system resources
US20040202148A1 (en) * 2001-01-31 2004-10-14 Thomas Kuehnel System and method of data stream transmission over MPLS
US7154916B2 (en) * 2001-07-26 2006-12-26 The Directv Group, Inc. Method for real-time insertion of auxiliary data packets into DSS bitstream in the presence of one or more service channels
US20030079073A1 (en) 2001-09-29 2003-04-24 Richard Elizabeth Anne Transaction generator for initialization, rebuild, and verify of memory
US20030095561A1 (en) * 2001-11-16 2003-05-22 Hwang Chan-Soo Apparatus and method for efficiently transmitting and receiving multicast data
US20040213284A1 (en) * 2003-04-25 2004-10-28 Alcatel Ip Networks, Inc. Frame processing
US6996654B2 (en) * 2003-05-09 2006-02-07 Hewlett-Packard Development Company, L.P. Systems and methods for generating multiple transaction identifiers to reduced latency in computer architecture

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Affidavit of Richard W. Adkisson, Feb. 17, 2005, 4 pages.

Also Published As

Publication number Publication date
SG120141A1 (en) 2006-03-28
US20040223492A1 (en) 2004-11-11

Similar Documents

Publication Publication Date Title
US8718065B2 (en) Transmission using multiple physical interface
US7363396B2 (en) Supercharge message exchanger
JP3816530B2 (en) Low latency, high clock frequency, pre-geo asynchronous packet-based crossbar switching chip system and method
CN1608255B (en) Communicating transaction types between agents in a computer system using packet headers including an extended type/extended length field
US20080126569A1 (en) Network on chip (NoC) response signal control apparatus and NoC response signal control method using the apparatus
US7613849B2 (en) Integrated circuit and method for transaction abortion
US7162546B2 (en) Reordering unrelated transactions from an ordered interface
JPH06511338A (en) Method and apparatus for parallel packet bus
CN102984123A (en) Communicating message request transaction types between agents in a computer system using multiple message groups
JP2002508100A (en) Packet routing switch to control access to shared memory at different data rates
JP2014526859A (en) Packet transmission using extension header
GB2376315A (en) Data bus system including posted reads and writes
AU2003234641B2 (en) Inter-chip processor control plane
US6622183B1 (en) Data transmission buffer having frame counter feedback for re-transmitting aborted data frames
US20030005344A1 (en) Synchronizing data with a capture pulse and synchronizer
JP2001160815A (en) Connection port for interconnection module in integrated circuit
JPH10228445A (en) Ring bus input-output controller
US7424653B2 (en) System and method for error capture and logging in computer systems
US7447205B2 (en) Systems and methods to insert broadcast transactions into a fast data stream of transactions
US20040236982A1 (en) System and method for in-order queue draining
US20040225707A1 (en) Systems and methods for combining a slow data stream and a fast data stream into a single fast data stream
US20070127484A1 (en) Data transfer operations and buffer memories
RU175049U1 (en) COMMUNICATION INTERFACE DEVICE SpaceWire
US6378017B1 (en) Processor interconnection
KR101041704B1 (en) Systems and methods for deleting transactions from multiple fast data streams

Legal Events

Date Code Title Description
AS Assignment

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CHONG, HUAI-TER VICTOR;REEL/FRAME:013961/0019

Effective date: 20030820

STCF Information on status: patent grant

Free format text: PATENTED CASE

REMI Maintenance fee reminder mailed
FPAY Fee payment

Year of fee payment: 4

SULP Surcharge for late payment
AS Assignment

Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;REEL/FRAME:037079/0001

Effective date: 20151027

REMI Maintenance fee reminder mailed
FPAY Fee payment

Year of fee payment: 8

SULP Surcharge for late payment

Year of fee payment: 7

FEPP Fee payment procedure

Free format text: 11.5 YR SURCHARGE- LATE PMT W/IN 6 MO, LARGE ENTITY (ORIGINAL EVENT CODE: M1556); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12

AS Assignment

Owner name: OT PATENT ESCROW, LLC, ILLINOIS

Free format text: PATENT ASSIGNMENT, SECURITY INTEREST, AND LIEN AGREEMENT;ASSIGNORS:HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP;HEWLETT PACKARD ENTERPRISE COMPANY;REEL/FRAME:055269/0001

Effective date: 20210115

AS Assignment

Owner name: VALTRUS INNOVATIONS LIMITED, IRELAND

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:OT PATENT ESCROW, LLC;REEL/FRAME:056157/0492

Effective date: 20210503