WO2017023681A1 - Systèmes et procédés pour agréger des paquets de données dans un système mochi - Google Patents

Systèmes et procédés pour agréger des paquets de données dans un système mochi Download PDF

Info

Publication number
WO2017023681A1
WO2017023681A1 PCT/US2016/044428 US2016044428W WO2017023681A1 WO 2017023681 A1 WO2017023681 A1 WO 2017023681A1 US 2016044428 W US2016044428 W US 2016044428W WO 2017023681 A1 WO2017023681 A1 WO 2017023681A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
soc
packets
header
buffer
Prior art date
Application number
PCT/US2016/044428
Other languages
English (en)
Inventor
Jerry Hongming ZHENG
Original Assignee
Marvell World Trade Ltd.
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
Priority claimed from US15/220,546 external-priority patent/US10318453B2/en
Application filed by Marvell World Trade Ltd. filed Critical Marvell World Trade Ltd.
Priority to TW105124515A priority Critical patent/TWI705327B/zh
Priority to TW105124514A priority patent/TWI703437B/zh
Priority to TW105124512A priority patent/TWI703445B/zh
Priority to TW105124513A priority patent/TWI695268B/zh
Priority to TW105124510A priority patent/TWI695262B/zh
Publication of WO2017023681A1 publication Critical patent/WO2017023681A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/407Bus networks with decentralised control
    • H04L12/413Bus networks with decentralised control with random access, e.g. carrier-sense multiple-access with collision detection [CSMA-CD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40019Details regarding a bus master
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Definitions

  • a protocol referred to as either the hopping bus protocol or the MoChi protocol, has been developed for optimizing the efficiency of intra-chip and interchip communications of System-on-Chips ("SoCs").
  • SoCs System-on-Chips
  • Background of how the hopping bus protocol enables intra-chip and inter-chip communications between discrete SoCs and their components is described in commonly owned U.S. Patent Application No. 14/564,499 (published as U.S. Patent Application Publication No. 2015/0169495) (Referred to herein as the "Hopping Bus Reference"), the contents of which are hereby incorporated by reference herein in their entirety. Further improvements to the MoChi protocol are the subject of this disclosure.
  • AXI AMB A extensible Interface
  • AMBA Advanced Microcontroller Bus Architecture
  • a master SoC may detect, prior to boot-up of an operating system that uses the master SoC, an initialization command, and, in response to detecting the initialization command, the master SoC may assign a first chip identifier to the master SoC. The master SoC may then transmit a discovery communication from the master SoC to a slave SoC that is one hop away from the master SoC.
  • the slave SoC may determine, upon receiving the discovery
  • the slave SoC may transmit a reply communication to the master SoC.
  • the reply communication may identify (1) the slave SoC, (2) a cross-chip interface component of the slave SoC, and (3) each internal sharable component of the slave SoC.
  • the master SoC may assign, based on the reply communication, a second chip identifier to the slave SoC.
  • the master SoC may identify a plurality of slave SoCs, where, upon identifying the slave SoCs, the master SoC may assign a respective chip identifier to each respective slave SoC of the plurality of slave SoCs.
  • the master SoC may assign a cross- chip interface component identifier to the cross-chip interface component of the slave SoC.
  • the master SoC may subsequently assign a respective internal sharable component identifier to each internal sharable component of the slave SoC.
  • the master SoC and the slave SoC may refrain from any further inter-communicating between the master SoC and the slave SoC (i.e., beyond the discovery and reply communications) until each respective internal sharable component identifier has been assigned to each internal sharable component of the slave SoC by the master SoC.
  • the master SoC may generate a data structure that catalogues chip identifiers, cross-chip interface component identifiers, and sharable internal component identifiers that are assigned by the master SoC, and may store the data structure to a register located in memory of the master SoC.
  • the data structure may catalogue functionality offered by each sharable component identified by the sharable component identifiers.
  • the master SoC may detect a command that requires execution of a specific functionality, may access the data structure from the register, may identify a sharable internal component that has the specific functionality from the data structure, and may identify an address corresponding to the sharable internal component. The master SoC may then use this information to transmit the command to the sharable internal component based on the address.
  • the assigning, by the master SoC, of the second chip identifier to the slave SoC does not recur unless an additional initialization command is detected at the master SoC.
  • the register may be accessed subsequent to the assigning.
  • the slave SoC may transmit the discovery communication to a next slave SoC, where the next slave SoC is at a next hop that is two hops away from the master SoC.
  • the next slave SoC may determine that the next slave SoC is a last hop SoC, and, in response to determining that the next slave SoC is the last hop SoC, the next slave SoC may transmit the reply communication to the master SoC.
  • the reply communication when received by the master SoC, may include information pertaining to both the slave SoC and the next slave SoC.
  • a buffer of a System-on-Chip may receive a plurality of packets for output.
  • the SoC may determine, when each packet of the plurality of output packets is received, whether the buffer has reached a predetermined capacity.
  • the SoC may identify a subset of packets of the plurality of packets that share a common characteristic, aggregate the subset into a jumbo packet, and transmit the jumbo packet to a destination SoC.
  • the SoC may further, in response to determining that the buffer has not reached the predetermined capacity, transmit each packet of the plurality of packets on-the-fly as each packet is received. Transmitting each packet of the plurality of packets on-the-fly as each packet is received may include first generating, at the SoC, a respective header comprising an address for each packet of the plurality of packets, and then determining whether the combined size of the respective header plus the size of a payload of a given packet exceeds a maximum packet size. In response to the SoC determining that the combined size does not exceed the maximum packet size, the SoC may transmit the header and the payload together in a single line.
  • the SoC may generate a second header, transmit the first header and a portion of the payload together in a first line, and transmit the second header and a remainder of the payload together in a second line.
  • the buffer of the SoC may include a plurality of sub-buffers that each correspond to a different characteristic.
  • the SoC when determining whether the buffer has reached a predetermined capacity, may determine whether a sub-buffer of the plurality of sub-buffers has reached the predetermined capacity.
  • the subset may include packets of the sub-buffer, and aggregating the subset into a jumbo packet may include performing the aggregating in parallel with transmitting packets of a different sub-buffer.
  • the common characteristic may be an address of a destination component.
  • aggregating the subset into the jumbo packet may include generating a header for the jumbo packet that indicates the address of the destination component.
  • the common characteristic may be a characteristic other than an address of a destination component.
  • the SoC may first determine a respective destination address of each packet of the plurality of packets that share the common characteristic, and may then identify a most common destination address of the respective destination addresses. Finally, the SoC may limit the subset to packets that share the most common destination address.
  • the SoC when aggregating the subset into the jumbo packet, may aggregate respective payloads of each packet of the subset into a combined payload, may generate a header, and may combine the combined payload with the header to form the jumbo packet. Further, the SoC, when generating the header, may generate the header with a destination address field, a flow control field, and a cyclic redundancy check field, and wherein transmitting the jumbo packet to the destination SoC comprises transmitting the jumbo packet to an SoC that corresponds to a destination address indicated in the destination address field.
  • the jumbo packet may be any size of a plurality of sizes. Further, the
  • SoC may determine a size of the plurality of sizes that the jumbo packet will comprise based on a fullness of the buffer.
  • a first SoC may transmit a first discovery packet from a downlink MoChi port of a first System-on-Chip ("SoC") to an uplink MoChi port of a second SoC.
  • SoC System-on-Chip
  • the first SoC may receive, at the downlink MoChi port of the first SoC, from the uplink MoChi port of the second SoC, a first reply packet.
  • the first SoC may then determine whether the reply packet indicates that the second SoC is a known SoC or an unknown SoC.
  • the first SoC may assign a first address mask to the first SoC that identifies that the second SoC can be reached by way of the first SoC.
  • the first SoC in response to determining that the reply packet indicates that the second SoC is a known SoC, may cause the second SoC to transmit a discovery packet from a downlink MoChi port of the second SoC to an uplink MoChi port of a third SoC.
  • the first SoC may then receive, at the downlink
  • the first SoC may determine that the third SoC is an unknown SoC, and, in response to determining that the third SoC is an unknown SoC, the first SoC may assign a second address mask to the second SoC that identifies that the third SoC can be reached by way of the second SoC.
  • the first SoC may be a master SoC
  • the assigning of the second address mask may include associating, by the master SoC, the assigned address mask with a chip identifier of the second SoC, in an address register that is stored at the master SoC.
  • the assigning of the first address mask and of the second address mask may include establishing a hierarchy of masks, where the second address mask comprises indicia that the uplink Mochi port of the second SoC is to be accessed by way of the downlink MoChi port of the first SoC.
  • the downlink MoChi port of the first SoC may include an enter value, and the enter value may indicate a global address of the downlink MoChi port that, if included in an address field of a downstream packet that is traveling upstream, indicates to downstream MoChi ports that the packet is to travel all the way upstream to the downlink MoChi port of the first SoC.
  • the downlink MoChi port of the first SoC may further include an exit value, where the exit value may indicate a range of addresses that, if detected in an outbound packet, should be transmitted through the downlink MoChi port of the first SoC, as opposed to being transmitted through a different downlink MoChi port of the first SoC.
  • Each uplink MoChi port and downlink MoChi port of the MoChi system may include a respective enter value and a respective exit value, and each respective enter value may indicate a range of hops of SoCs from which a downstream SoC is away from a master SoC.
  • each uplink MoChi port and downlink MoChi port of the MoChi system further comprise a respective common value, where the respective common value may be a global address stored in memory of main random access memory (“RAM”) that can be used to reach the respective MoChi port.
  • RAM main random access memory
  • each uplink MoChi port of the MoChi system may include an offset value that indicates, by way of a hierarchical scheme, a number of components included on a respective SoC on which a respective uplink MoChi port is embedded.
  • the uplink MoChi port of the second SoC may include an exit value, and the exit value may include a prefix that indicates all MoChi chip spaces that are downstream of the uplink MoChi port.
  • FIG. 1 depicts an illustrative topology of a MoChi system, and depicts a topology-based identification process, in accordance with some embodiments of the disclosure
  • FIG. 2 depicts an illustrative example of internal components of an SoC in a MoChi system, in accordance with some embodiments of the disclosure
  • FIG. 3 depicts an illustrative example of a data structure that associates various chips and their components with auxiliary information, in accordance with some embodiments of the disclosure
  • FIG. 4 is an illustrative flow chart that depicts a process for initializing a
  • FIG. 5 depicts several illustrative examples of data packets that may be processed by a chip of a MoChi system, in accordance with some embodiments of the disclosure
  • FIG. 6 depicts several illustrative examples of aggregated packets that may be processed by a chip of a MoChi system, in accordance with some embodiments of the disclosure;
  • FIG. 7 is an illustrative flow chart that depicts a process for generating an aggregated packet, in accordance with some embodiments of the disclosure;
  • FIG. 8 depicts an illustrative topology of SoCs in a MoChi system, including some details of uplink ports of the SoCs, in accordance with some embodiments of the disclosure;
  • FIG. 9 depicts an illustrative topology of SoCs in a MoChi system, including some details of uplink ports and downlink ports of the SoCs, in accordance with some embodiments of the disclosure.
  • FIG. 10 depicts an illustrative flow chart that depicts a process for discovering an unknown SoC, in accordance with some embodiments of the disclosure.
  • systems and methods are provided herein for a process of identifying each chip, and each component of a chip, in a system, based on the topology of the system.
  • SoC SoC
  • Chip Chip
  • MoChi refers to a system or component that utilizes the mechanisms described in this disclosure.
  • FIG. 1 depicts a topology of a MoChi system, and depicts a topology- based identification process, in accordance with some embodiments of the disclosure.
  • MoChi system 100 includes a master SoC 102, and slave SoCs 104 and 106.
  • Slave SoCs 104 are one hop away from master SoC 102, and slave SoC 106 is two hops away from master SoC 102.
  • Master SoC 102 is designated as "master” because master SoC 102 initiates and guides the identification of, and assignment of addresses for, each chip and each chip component of MoChi System 100.
  • Slave SoCs 104 and Slave SoC 106 are designated as "slave" because, for the purpose of the identification process, they receive commands from master SoC 102 and reply to the commands from master SoC 102.
  • master SoC 102 may begin an identification process in order to identify each chip of MoChi system 100.
  • master SoC 102 may assign itself a global identifier, such as a Chip identifier ("ID").
  • ID Chip identifier
  • Master SoC 102 may then transmit discovery communication 108 to slave SoCs 104, which are one hop away from master SoC 102.
  • Each slave SoC 104 may then determine whether it is a last hop SoC - that is, whether it sits between master SoC 102 and another chip on a communications path, or not. If a slave SoC 104 is a last hop SoC, then the slave SoC 104 may generate and transmit a reply
  • communication 1 10 may also convey additional information, such as information about cross-chip interfaces and internal sharable components within SoC 104. This additional information will be discussed further with respect to FIGS. 2 and 3 below.
  • slave SoC 104 may transmit discovery communication 108 to a next hop slave SoC, and this process may continue until a last hop SoC is encountered.
  • each non-last slave SoC 104 may add information that identifies itself, as well as the above- mentioned information, to discovery communication 108.
  • each non- last hop slave SoC 104 may refrain from adding this information, and may simply forward discovery communication 108 to the last hop slave SoC 106.
  • Last hop slave SoC 106 may then generate and transmit reply communication 1 10 back to master SoC 102.
  • reply communication 1 10 may be generated. In addition to the information described above, reply
  • communication 1 10 may include information pertaining to the non-last hop SoCs
  • reply communication 1 10 may, as it passes through each slave SoC 104 between master SoC 102 and last hop slave SoC 106, have information pertaining to each respective slave SoC 104 added to it as it passes through each respective slave SoC 104.
  • master SoC 102 may assign local identifiers ("IDs") to each cross-chip component of a given slave SoC identified by reply communication 1 10.
  • IDs local identifiers
  • cross-chip component describes an interface that translates between the protocol used by MoChi System 100 (sometimes referred to herein as the MoChi protocol), and a local protocol used by the given slave SoC. This functionality is further described in the Hopping Bus Reference mentioned above.
  • local ID is used to describe an identifier for a component that is local to a given chip. After all cross-chip components are assigned respective local IDs, master SoC 102 may assign local IDs to the other internal sharable components of the given slave SoC.
  • the topology based identification process described above should only be run once after a reset of MoChi system 100.
  • Register access of the addresses assigned by master SoC 102 can be performed any time. In this preferred embodiment, intercommunication between chips and/or components will not begin or be allowed until such a time that all chips and components of MoChi system 100 are identified by master SoC 102, and thus, the topology of MoChi system 100 is fixed.
  • FIG. 1 depicts a fixed master SoC 102
  • any chip of MoChi system 100 that has a central processing unit (“CPU") may designate itself as the master SoC, thus causing the other chips of MoChi system 100 to be slave SoCs. This designation may be pre-programmed, may be randomly assigned upon receipt of an initialization command, or may occur for any other reason.
  • FIG. 2 depicts internal components of an SoC in a MoChi system, in accordance with some embodiments of the disclosure.
  • MoChi system 200 contains two chips - master SoC 202, and slave SoC 204.
  • Master SoC 202 contains CPU 206 and cross-chip interface component 208.
  • Cross-chip interface component 208 of master SoC 202 may, as described above, translate communications from CPU 206 into a protocol understood by MoChi system 200.
  • cross-chip interface component 208 of slave SoC 204 may translate communications received from master SoC 202 into a protocol understood by components of slave SoC 204.
  • Slave SoC 204 includes internal sharable components 210. Various functionality and communications capabilities of internal sharable components 210 are described in at least paragraph 25 of the Hopping Bus Reference, and this functionality is within the scope of this disclosure.
  • FIG. 3 depicts a data structure that associates various chips and their components with auxiliary information, in accordance with some embodiments of the disclosure.
  • Table 300 represents a data structure that tracks the information assigned by master SoC 102 to slave SoCs 104 and 106, and tracks other auxiliary information.
  • Chip IDs reflect an identifier assigned by the master SoC to each chip of MoChi System 100.
  • Chip ID 0 is assigned to master SoC 102 itself, and consecutive numbered chip IDs are assigned to each discovered slave SoC 104 and 106.
  • Device IDs 304 may be device identifiers assigned by a manufacturer to a device, and all chips embedded on a single device will reflect the same device ID 304.
  • device ID 304 will not necessarily be uniform in a fully configured system.
  • Columns 306 and 308 track the number of cross-chip components and internal sharable components, respectively, that are within a given chip.
  • Column 316 may include any other information relating to the chips or components of MoChi System 100.
  • FIG. 4 is an illustrative flow chart that depicts a process for initializing a MoChi system, in accordance with some embodiments of the disclosure.
  • a master SoC e.g., master SoC 102
  • master SoC 102 may detect, prior to boot-up of an operating system that uses the master SoC, an initialization command.
  • Process 400 may continue to 404, where, in response to detecting the initialization command, master SoC 102 may assign a first chip identifier to the master SoC (e.g., a "0" assignment as depicted in 302).
  • Process 400 may continue to 406, where the master SoC may transmit a discovery communication (e.g., discovery communication 108 from the master SoC to a slave SoC that is one hop away from the master SoC (e.g., slave SoC 104 or slave SoC 106).
  • a discovery communication e.g., discovery communication 108 from the master SoC to a slave SoC that is one hop away from the master SoC (e.g., slave SoC 104 or slave SoC 106).
  • Process 400 may then continue to 408, where the slave SoC may determine whether it is a last hop SoC.
  • the slave SoC may, in response to determining that the slave SoC is a last hop SoC, transmit, by the slave SoC, a reply communication (e.g., reply communication 110) to the master SoC.
  • the master SoC may assign, based on the reply communication, a second chip identifier to the slave SoC (e.g., Chip ID "1" as indicated in 302).
  • data packets can be sent across a MoChi system (e.g., MoChi system 100).
  • MoChi cross-chip interface components e.g., cross-chip interface component 208
  • the communications may take place over varying modes, such as a line mode and an aggregated mode, both of which will be described in further detail below.
  • FIG. 5 depicts several illustrative examples of data packets that may be processed by a chip of a MoChi system, in accordance with some embodiments of the disclosure.
  • Each packet 510, 520, 540, and 550 is transmitted in line mode.
  • each data transaction e.g., AXI transaction
  • is packetized on-the-fly e.g., in real time, as commands are received.
  • An exemplary packet e.g., packets
  • 510, 520, 540, and 550 is transmitted with 80 bits in each line, though packets may be transmitted with more bits or less bits than 80 bits.
  • Packet 510 is a packet with a single line header.
  • Single line headers for example, may be used when transmitting read data or acknowledgments.
  • Payload 511 has 69 bits.
  • Payload 511 may include any relevant data, including command data, address data, and the like.
  • Transfer layer/link layer (“T/L") component 512 may include control information, and may comprise 1 bit of information.
  • Sequence number 513 describes a sequence number of packet 510, and may be used to ensure packets are transmitted or received in order.
  • Flow control component 514 may comprise 3 bits of information, and may be used to determine a flow control parameter of packet 510.
  • Error check component 515 may be a cyclic redundancy check (CRC) field, and may comprise 3 bits. In sum, packet 510 has 80 bits of information.
  • CRC cyclic redundancy check
  • Packet 520 comprises a two-line header where a 142 bit payload is distributed across two lines that are to be separately transmitted.
  • Payloads 521 and 531 have similar functionality to payload 51 1.
  • Transfer layer/link layer components 522 and 532 have similar functionality to transfer layer/link layer component 512.
  • Sequence number 523 dictates the sequence numbers for both lines of packet 520 - there is no need to include a sequence number in both lines, which saves space in the second line.
  • Flow control components 524 and 534 have similar functionality to flow control component 514.
  • Error check components 525 and 535 have similar functionality to error check component 515.
  • Each line of packet 520 has the same number of bits - namely, 80 bits, as illustrated.
  • Packet 540 illustrates a data line that may be transmitted with any header of the MoChi system, such the headers illustrated in packet 510 and packet 520.
  • Payload 541, Transfer layer/link layer component 542, flow control component 544, and error check component 545 have similar functionality to their counterpart components described with respect to packet 510.
  • Padding bit 546 is used to ensure that packet 540 has the same number of packets as the other packets used in the system for consistent processing (namely, 80 packets, in the illustration of FIG. 5).
  • packet 540 is illustrated as only being one line long, a packet may have multiple data lines, and thus a single packet may use a multi-line header or single- line header (e.g., packets 520 and 510 respectively) in addition to multiple data lines 540.
  • Packet 550 illustrates a single line link layer control packet that may be used for register access, system discovery, and other control functions.
  • Payload 551, transfer layer/link layer component 552, sequence component 553, flow control component 554, and error check component 555 have similar functionality to their counterpart components described with respect to packet 510.
  • block mode (interchangeably used with
  • aggregation mode in this disclosure may be employed to transmit packets.
  • Line mode is generally used when the transmission buffer of a MoChi chip or component is very low, and so there is no bandwidth issue or bottleneck.
  • a bottleneck or bandwidth issue e.g., in a cross-chip interface component, such as cross-chip interface component 208
  • a block mode a single header may used to transmit a large number of aggregated packets, thus reducing required bandwidth, as compared to bandwidth needed to transmit packets in line mode, each with a separate header.
  • smaller packets may be aggregated to ensure that most of, or an entire width, of a packet is used in a single data transmission.
  • FIG. 6 depicts several illustrative examples of aggregated packets that may be processed by a chip of a MoChi system, in accordance with some embodiments of the disclosure.
  • FIG. 6 depicts 64-byte aggregated packet 610, and 256 byte aggregated packet 620, each aggregated in block mode. It is estimated that transmission efficiency improves by about ten percent when 64-byte aggregated packet 610 is used for data transfers, and by about twenty percent when 256 byte aggregated packet 620 is used for data transfers.
  • 64-byte aggregated packet 610 comprises six 10-byte payloads 61 1, as well as a header comprising a four byte payload 612, a thirty-three bit padding bit component 613, a three-bit flow control component 614, and a twelve bit error check component 615.
  • header payload 612, padding bit component 613, flow control component 614, and error check component 615 have similar functionality to that described with respect to their respective counterpart components described above with reference to FIG. 5.
  • Each of the ten-byte payloads 61 1 may have similar functionality to data line 540 or payload 541, and may each relate to separate data transmissions that pertain to a similar
  • 256-Byte aggregated packet 620 comprises thirty-one 10-byte payloads
  • header payload 622 may have similar functionality to data line 540, and may each relate to separate data transmissions that pertain to a similar communication, as will be described further with respect to FIG. 7.
  • FIG. 7 is an illustrative flow chart that depicts a process for generating an aggregated packet, in accordance with some embodiments of the disclosure.
  • Process 700 begins at 702, where a buffer within an SoC (e.g., within cross-chip interface component 208 of master SoC 202) receives a plurality of packets for output.
  • control circuitry e.g., of master SoC 202 determines, when each packet of the plurality of output packets is received, whether the buffer has reached a predetermined capacity.
  • control circuitry of the SoC makes the determination as to whether the buffer has reached a predetermined capacity, and, if the buffer has not reached the predetermined capacity, process 700 loops back to 704 to continue monitoring whether the predetermined capacity is reached as next packets are received. If a buffer or sub-buffer has reached a predetermined capacity, however, process 700 continues to 708.
  • control circuitry of the SoC may identify a subset of packets of the plurality of packets that share a common characteristic.
  • the subset may comprise packets with a same command, or packets addressed to a same component of MoChi system 100.
  • the control circuitry of the SoC may aggregate the subset into a jumbo packet (e.g., 64-byte aggregated packet 610 or 256-btye aggregated packet 620.
  • control circuitry of the SoC may cause the jumbo packet to be transmitted to a destination SoC (e.g., slave SoC 204, which may route the jumbo packet to a given packet, or may deconstruct the packet for transmission to different components of slave SoC 204).
  • a destination SoC e.g., slave SoC 204, which may route the jumbo packet to a given packet, or may deconstruct the packet for transmission to different components of slave SoC 204.
  • an SoC may be unknown to a master SoC of a MoChi system.
  • control circuitry e.g., of a master SoC
  • may establish a hierarchical, or cone, topology e.g., during initialization
  • FIG. 8 depicts an illustrative topology of SoCs in a MoChi system, including some details of uplink ports of the SoCs, in accordance with some embodiments of the disclosure.
  • Chip 802 is a master SoC, which has assigned itself a chip ID of "0" in accordance with the assignments described above with respect to FIG. 3. As illustrated in FIG. 1, chip 802 has eleven internal nodes, or components (e.g., cross-chip and sharable components). The term “node” and “component” is used interchangeably in this disclosure.
  • Chip 802 includes two downlink MoChi ports 814 and 816. Downlink MoChi ports 814 and 816 extend connectivity of MoChi system 800 to additional chips in MoChi system 800 (e.g., chips 804, 806, 808, 810, and 812).
  • An uplink MoChi port is a port that received initialization commands from upper level chips.
  • Chip 802 does not have uplink MoChi ports because chip 802 is a master SoC and thus has no need to transmit information upstream. To the extent that additional MoChi ports exist on chip 802, these chips are not connected, and are thus referred to as inactive ports.
  • Chip 804 includes uplink MoChi port 818 for transmitting information upstream to chip 802, and also includes downlink MoChi ports 820, 822, and 824 for transmitting information downstream to chips 806, 808, and 810. Consistent with the description above with respect to FIG. 3, chip 804 has been assigned a chip ID of " 1," and includes ten total nodes.
  • the term "offset” as used herein describes the number of components that are assigned addresses ahead of a given chip. Thus, chip 804 has an offset of 1 1 - meaning, the components of chip 804 are offset by the total number of upstream nodes (i.e., the 1 1 total nodes of chip 802).
  • Chips 806, 808, 810, and 812 each have 2, 3, 4, and 2 nodes, respectively. While not depicted, they also each have uplink ports. Their offsets and chip IDs are described in FIG. 8. As one can see, MoChi system 800 uses a "cone" architecture, where a hierarchy is established such that a master SoC (e.g., chip 802) does not directly interface with most chips (e.g., chips 806, 808, and 810), but rather passes communications through an intermediary chip (e.g., 804).
  • a master SoC e.g., chip 802
  • a MoChi system ends at one point - namely, at the master SoC, and broadens out as one goes down the cone, with an increasing number of chips in any given layer of the cone as one goes further downstream from the master SoC.
  • chips that are in the middle of a MoChi cone generally only have one uplink MoChi port, but may have many downlink MoChi ports (e.g., downlink MoChi ports 820, 822, and 824 of chip 804).
  • FIG. 9 depicts an illustrative topology of SoCs in a MoChi system, including some details of uplink ports and downlink ports of the SoCs, in accordance with some embodiments of the disclosure.
  • MoChi system 900 includes chips 902, 904, 906, 908, 910, and 912, each of which correspond to their respective counterparts of FIG. 8' s MoChi system 800.
  • Chip 902 which is a master SoC, comprises an enter address comprising an enter prefix of " 10" and an enter mask of "00.”
  • An enter prefix and mask, together, comprise a global address assignment for a chip. If a packet has an address that is consonant with a given MoChi port' s prefix and enter mask, the packet will be directed to a chip corresponding to the given MoChi port.
  • the enter prefix defines a range in relation to the master SoC.
  • the enter prefix of downlink MoChi ports 914 and 916 of chip 902 have a same prefix of " 10," because they are at the same range from the master SoC, whereas the enter prefix of ports 918, 920, 922, and 924 of chip 904 is " 1001," which defines a next level of range.
  • an additional two bits are added to the enter prefix.
  • the enter prefix of the uplink MoChi ports of chips 906, 908, and 910 are of the range lOOlxx, where the xx bits vary depending on which uplink MoChi port each chip is connected to.
  • the enter mask is two bits, and varies by chip.
  • a mask of "00" corresponds to a downlink MoChi port of an upstream chip
  • a mask of 01 or 10 may correspond to an uplink MoChi port of a downstream chip (where the mask varies depending on which downstream chip a packet is intended to travel to).
  • Exit prefixes and exit masks function identically to the enter masks and enter prefixes - packets exiting a given MoChi port will travel to an address that corresponds to the range (i.e., prefix) and specific chip (i.e., mask) indicated by the exit address that the exit prefixes and exit masks form.
  • a packet with an address of 1001 1 1 (i.e., having an exit prefix of 1001 and a mask of 1 1) will travel from port 914 (with an exit of address of 1001) of chip 902 to port 918 of chip 904 (with an enter prefix of 1001), and will then be routed through port 924, which has an exit address of 1001 1 1, to the uplink port of 910, which has an enter address of 1001 1 1.
  • a packet is able to easily be navigated through a MoChi cone by following the hierarchy of enter/exit prefixes and enter/exit masks, whether traveling upstream or downstream.
  • a packet traveling upstream from a downstream chip (e.g., chip 910) need only be addressed to any port other than the upstream port' s own address to be transmitted upstream to the next intermediate node for further processing, as indicated by the function ! (1001 1 1).
  • Each MoChi port of MoChi system 900 has three sets of address prefixes and mask registers.
  • the first set is the enter prefixes and masks, which, as described above, together form a global address assignment for a chip.
  • the next is the exit prefixes and masks, which, together, define the address range that should exit a given MoChi port.
  • the decoding for the exit address depends on whether it is traveling through an uplink or downlink MoChi port.
  • For a downlink MoChi port if the address of the downlink MoChi port matches a prefix and mask, the packet will exit that port.
  • For an uplink port based on the MoChi cone concept described above, if an address does not match an address belonging to the port, the unmatched address shall simply exit the port upward through the cone until it finds a chip who has a port with a matching address.
  • the final set of address prefixes and address registers is the common prefix and mask. Together, these form a global address for main memory (e.g., a main double data rate random access memory ("DDR")). Any packet that has an address with a common prefix and mask will simply be sent to a port or chip corresponding to an address listed in a common DDR global register.
  • DDR main double data rate random access memory
  • FIG. 10 depicts an illustrative flow chart that depicts a process for discovering an unknown SoC, in accordance with some embodiments of the disclosure.
  • Process 1000 begins at 1002, where control circuitry (e.g., of a master SoC, such as chip 902) may transmit a first discovery packet from a downlink MoChi port (e.g., downlink MoChi port 914) to an uplink MoChi port (e.g., uplink MoChi port 918) of a second SoC (e.g., chip 904).
  • the discovery packet e.g., control packet 550
  • Process 1000 may continue to 1004, where the first SoC (e.g., chip 902) may receive, at the downlink MoChi port of the first SoC (e.g., downlink MoChi port 914), from the uplink MoChi port of the second SoC (e.g., uplink MoChi port 918 of chip 904), a first reply packet (e.g., control packet 550).
  • the control circuitry e.g., of chip 902 may determine whether the reply packet indicates that the second SoC (e.g., chip 904) is a known SoC or an unknown SoC.
  • process 1000 may proceed to 1008, where the control circuitry may assign a first address mask to the first SoC that identifies that the second SoC can be reached by way of the first SoC (e.g., assign exit mask 01 for accessing chip 904, or assign exit mask 10 for accessing chip 912). If, the SoC is known, process 1000 may proceed to 1010, where the control circuitry may iterate process 1000 to the next downstream SoC to determine whether to assign exit masks to, e.g., downstream MoChi ports 920, 922, and/or 924.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

L'invention concerne des systèmes, des procédés et des appareils pour agréger des paquets et transmettre les paquets agrégés à un dispositif dans un circuit intégré. Ces systèmes, procédés et appareils peuvent consister à recevoir, au niveau d'une mémoire tampon d'un système sur puce (« SoC »), une pluralité de paquets pour une délivrance. Le SoC peut déterminer, lorsque chaque paquet de la pluralité de paquets de sortie est reçu, si la mémoire tampon a atteint ou non une capacité prédéterminée. En réponse à la détermination du fait que la mémoire tampon a atteint la capacité prédéterminée, le SoC peut identifier un sous-ensemble de paquets de la pluralité de paquets qui partagent une caractéristique commune, peut agréger le sous-ensemble dans un énorme paquet, et peut transmettre l'énorme paquet à un SoC de destination.
PCT/US2016/044428 2015-08-03 2016-07-28 Systèmes et procédés pour agréger des paquets de données dans un système mochi WO2017023681A1 (fr)

Priority Applications (5)

Application Number Priority Date Filing Date Title
TW105124515A TWI705327B (zh) 2015-08-03 2016-08-02 用於加速清單比較操作之方法及設備
TW105124514A TWI703437B (zh) 2015-08-03 2016-08-02 用於在mochi空間中進行未知位址發現之系統及方法
TW105124512A TWI703445B (zh) 2015-08-03 2016-08-02 用於在mochi系統中對資料封包進行聚集之系統及方法
TW105124513A TWI695268B (zh) 2015-08-03 2016-08-02 用於在節點之間傳輸中斷的系統及方法
TW105124510A TWI695262B (zh) 2015-08-03 2016-08-02 用於在mochi環境中實現基於拓撲之識別過程的系統及方法

Applications Claiming Priority (20)

Application Number Priority Date Filing Date Title
US201562200436P 2015-08-03 2015-08-03
US201562200444P 2015-08-03 2015-08-03
US201562200452P 2015-08-03 2015-08-03
US201562200462P 2015-08-03 2015-08-03
US62/200,436 2015-08-03
US62/200,462 2015-08-03
US62/200,444 2015-08-03
US62/200,452 2015-08-03
US201562218296P 2015-09-14 2015-09-14
US62/218,296 2015-09-14
US15/220,916 2016-07-27
US15/220,923 2016-07-27
US15/220,684 2016-07-27
US15/220,546 US10318453B2 (en) 2015-08-03 2016-07-27 Systems and methods for transmitting interrupts between nodes
US15/220,898 US10339077B2 (en) 2015-08-03 2016-07-27 Systems and methods for implementing topology-based identification process in a MoChi environment
US15/220,684 US10198376B2 (en) 2015-08-03 2016-07-27 Methods and apparatus for accelerating list comparison operations
US15/220,898 2016-07-27
US15/220,916 US10552350B2 (en) 2015-08-03 2016-07-27 Systems and methods for aggregating data packets in a mochi system
US15/220,546 2016-07-27
US15/220,923 US10474597B2 (en) 2015-08-03 2016-07-27 Systems and methods for performing unknown address discovery in a MoChi space

Publications (1)

Publication Number Publication Date
WO2017023681A1 true WO2017023681A1 (fr) 2017-02-09

Family

ID=56616069

Family Applications (5)

Application Number Title Priority Date Filing Date
PCT/US2016/044428 WO2017023681A1 (fr) 2015-08-03 2016-07-28 Systèmes et procédés pour agréger des paquets de données dans un système mochi
PCT/US2016/044431 WO2017023682A1 (fr) 2015-08-03 2016-07-28 Systèmes et procédés pour réaliser une découverte d'adresse inconnue dans un espace mochi
PCT/US2016/044425 WO2017023678A1 (fr) 2015-08-03 2016-07-28 Systèmes et procédés pour mettre en œuvre un processus d'identification en fonction de la topologie dans un environnement mochi
PCT/US2016/044360 WO2017023661A1 (fr) 2015-08-03 2016-07-28 Systèmes et procédés pour transmettre des interruptions entre des noeuds
PCT/US2016/044358 WO2017023659A1 (fr) 2015-08-03 2016-07-28 Procédé et appareil pour processeur ayant une mémoire cache et une mémoire principale

Family Applications After (4)

Application Number Title Priority Date Filing Date
PCT/US2016/044431 WO2017023682A1 (fr) 2015-08-03 2016-07-28 Systèmes et procédés pour réaliser une découverte d'adresse inconnue dans un espace mochi
PCT/US2016/044425 WO2017023678A1 (fr) 2015-08-03 2016-07-28 Systèmes et procédés pour mettre en œuvre un processus d'identification en fonction de la topologie dans un environnement mochi
PCT/US2016/044360 WO2017023661A1 (fr) 2015-08-03 2016-07-28 Systèmes et procédés pour transmettre des interruptions entre des noeuds
PCT/US2016/044358 WO2017023659A1 (fr) 2015-08-03 2016-07-28 Procédé et appareil pour processeur ayant une mémoire cache et une mémoire principale

Country Status (1)

Country Link
WO (5) WO2017023681A1 (fr)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1458166A1 (fr) * 2003-03-13 2004-09-15 Samsung Electronics Co., Ltd. Procédé et appareil d'augmentation du débit pour des transmissions sans fil de paquets sous contrainte de qualité de service
US6907042B1 (en) * 1999-05-18 2005-06-14 Fujitsu Limited Packet processing device
EP2314024A1 (fr) * 2008-06-26 2011-04-27 QUALCOMM Incorporated Procédés et appareils pour réduire une commutation de contexte durant une transmission et une réception de données dans un dispositif à multiples processeurs
US20150169495A1 (en) 2013-12-12 2015-06-18 Marvell World Trade Ltd. Method and apparatus for transferring information within and between system-on-chips via intra-chip and inter-chip hopping buses

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179704A (en) * 1991-03-13 1993-01-12 Ncr Corporation Method and apparatus for generating disk array interrupt signals
US5845327A (en) * 1995-05-03 1998-12-01 Apple Computer, Inc. Cache coherency where multiple processors may access the same data over independent access paths
US7295552B1 (en) * 1999-06-30 2007-11-13 Broadcom Corporation Cluster switching architecture
US7330467B2 (en) * 2003-03-26 2008-02-12 Altera Corporation System and method for centralized, intelligent proxy driver for a switch fabric
US7336284B2 (en) * 2004-04-08 2008-02-26 Ati Technologies Inc. Two level cache memory architecture
TWI256591B (en) * 2004-08-11 2006-06-11 Benq Corp Method of reducing interrupts
US7788434B2 (en) * 2006-12-15 2010-08-31 Microchip Technology Incorporated Interrupt controller handling interrupts with and without coalescing
US8725919B1 (en) * 2011-06-20 2014-05-13 Netlogic Microsystems, Inc. Device configuration for multiprocessor systems
JP5916355B2 (ja) * 2011-11-21 2016-05-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation プログラムの命令を実行する装置および命令をキャッシュするシステム
JP5791529B2 (ja) * 2012-01-19 2015-10-07 ルネサスエレクトロニクス株式会社 メモリ制御装置及び制御方法並びに情報処理装置
US9170971B2 (en) * 2012-12-26 2015-10-27 Iii Holdings 2, Llc Fabric discovery for a cluster of nodes
EP3080708B1 (fr) * 2013-12-12 2020-02-05 Marvell World Trade Ltd. Procédé et appareil pour transférer des informations dans et entre des systèmes sur puce par l'intermédiaire de bus de saut intra-puce et inter-puces

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6907042B1 (en) * 1999-05-18 2005-06-14 Fujitsu Limited Packet processing device
EP1458166A1 (fr) * 2003-03-13 2004-09-15 Samsung Electronics Co., Ltd. Procédé et appareil d'augmentation du débit pour des transmissions sans fil de paquets sous contrainte de qualité de service
EP2314024A1 (fr) * 2008-06-26 2011-04-27 QUALCOMM Incorporated Procédés et appareils pour réduire une commutation de contexte durant une transmission et une réception de données dans un dispositif à multiples processeurs
US20150169495A1 (en) 2013-12-12 2015-06-18 Marvell World Trade Ltd. Method and apparatus for transferring information within and between system-on-chips via intra-chip and inter-chip hopping buses

Also Published As

Publication number Publication date
WO2017023659A1 (fr) 2017-02-09
WO2017023678A1 (fr) 2017-02-09
WO2017023682A1 (fr) 2017-02-09
WO2017023661A1 (fr) 2017-02-09

Similar Documents

Publication Publication Date Title
CN109698788B (zh) 流量转发方法、装置及计算机可读介质
US10084692B2 (en) Streaming bridge design with host interfaces and network on chip (NoC) layers
JP5360607B2 (ja) Pciエクスプレススイッチ、pciエクスプレスシステム、及びネットワーク制御方法
US10474597B2 (en) Systems and methods for performing unknown address discovery in a MoChi space
US9294403B2 (en) Mechanism to control resource utilization with adaptive routing
US9025495B1 (en) Flexible routing engine for a PCI express switch and method of use
US7643477B2 (en) Buffering data packets according to multiple flow control schemes
US20150103822A1 (en) Noc interface protocol adaptive to varied host interface protocols
WO2014059024A1 (fr) Capacités de canal hétérogène dans une interconnexion
EP2721779B1 (fr) Mécanisme de communication pour des nuds de réseaux d'interface multiples
US8477777B2 (en) Bridge apparatus and communication method
KR101883723B1 (ko) 인터커넥트 네트워크에서의 가변 폭 데이터 채널에 대한 효과적인 지원
KR20170129150A (ko) 데카르트 어드레싱을 이용한 저전력 및 저 지연 디바이스 열거
US8885673B2 (en) Interleaving data packets in a packet-based communication system
CN113452475B (zh) 数据传输方法、装置及相关设备
WO2017023681A1 (fr) Systèmes et procédés pour agréger des paquets de données dans un système mochi
CN104967564A (zh) 从vlan至trill网络的报文转发方法和设备
US20160112318A1 (en) Information processing system, method, and information processing apparatus
US20140112141A1 (en) Backbone channel management method and backbone channel management apparatus
CN116781453A (zh) 报文隔离方法及装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16748440

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16748440

Country of ref document: EP

Kind code of ref document: A1