WO2014141692A1 - バス制御装置、中継装置およびバスシステム - Google Patents

バス制御装置、中継装置およびバスシステム Download PDF

Info

Publication number
WO2014141692A1
WO2014141692A1 PCT/JP2014/001367 JP2014001367W WO2014141692A1 WO 2014141692 A1 WO2014141692 A1 WO 2014141692A1 JP 2014001367 W JP2014001367 W JP 2014001367W WO 2014141692 A1 WO2014141692 A1 WO 2014141692A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
bus
node
order
unit
Prior art date
Application number
PCT/JP2014/001367
Other languages
English (en)
French (fr)
Inventor
篤 吉田
石井 友規
覚 得津
山口 孝雄
祐紀 曽我
Original Assignee
パナソニック株式会社
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 パナソニック株式会社 filed Critical パナソニック株式会社
Priority to JP2015505292A priority Critical patent/JP5842174B2/ja
Publication of WO2014141692A1 publication Critical patent/WO2014141692A1/ja
Priority to US14/641,197 priority patent/US9942174B2/en
Priority to US15/917,124 priority patent/US10305825B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • 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/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/102Packet switching elements characterised by the switching fabric construction using shared medium, e.g. bus or ring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present application relates to a technique for controlling the order of responses transmitted from a plurality of slaves to a bus master in response to a request transmitted by a bus master to a plurality of slaves in a semiconductor integrated circuit having a networked semiconductor bus.
  • Patent Document 1 discloses a technique for improving transmission performance between a bus master and a plurality of slaves. Patent document 1 makes it possible to increase the transmission band of access to the memory by physically increasing the bus interface of the bus master and using a logical bus composed of a plurality of physical buses.
  • One non-limiting exemplary embodiment of the present application provides a bus control device capable of ensuring required performance while reducing development man-hours as much as possible.
  • an aspect of the present invention provides a bus system in which a first node, a plurality of second nodes, and a plurality of relay devices are connected by a packet-switched bus built on an integrated circuit. And a bus control device provided on a transmission path of data transmitted / received between the first node and each of the plurality of second nodes, wherein the data is transmitted from the first node to each second node.
  • An order storage unit for storing the transmission order of the data, and receiving data transmitted from the second nodes to the first node, and determining a data distribution destination with reference to a predetermined distribution rule
  • a sorting unit a buffer unit that stores the sorted data for each second node that is a transmission source of the data, and a transmission unit that transmits the data from each second node to the first node.
  • a connection control unit for transmitting the data to the first node.
  • the bus control device when data from a plurality of memories is received, it is not necessary to create a bus interface for each bus master, and a plurality of data can be obtained simply by changing the setting of the bus control device. Since the response from the slave can be received, the design of the semiconductor integrated circuit can be simplified.
  • the mounting area and power consumption of the bus master can be reduced.
  • (A) is a diagram showing the bus interface 201a of the bus master 201 and the bus configuration
  • (B) is a diagram showing the bus interface 203a of the bus master 203 and the bus configuration. It is a figure explaining the outline
  • FIG. 1 It is a figure which shows the other example of the interchangeability information memorize
  • FIG. It is a figure which shows an example of IF information memorize
  • FIG. It is a figure which shows the operation
  • FIG. It is a figure which shows the outline
  • FIG. It is a figure which shows the operation
  • FIG. It is a figure which shows the example in which at least one part of the transmission line which connects the bus master 301 and the some memory 303 is shared. It is a figure which shows the structure of the bus control apparatus 401b provided with the function of NIC.
  • (A) And (B) is a figure which shows the example of the distribution rule memorize
  • FIG. It is a figure which shows the operation
  • FIG. It is a figure which shows the operation
  • FIG. It is a figure which shows the example of the order information which recorded data ID of the data which transmission to the bus master 402 was completed for every transaction. It is a figure which shows the structure which the some bus master 301 connected via the local bus communicates with the some memory 303 connected via the system bus. It is a figure which shows the structure which the some bus master 301 connected via the local bus communicates with the some memory 303 connected via the system bus.
  • (A) And (B) is a figure which shows the example of the distribution rule which the distribution rule memory
  • FIG. 10 is a diagram illustrating an operation procedure performed when a distribution unit 413 of the relay apparatus 1601 stores a packet in a buffer unit. It is a figure which shows the structure of the bus system 100c which can replace the order of the response data from a memory in a some element.
  • 3 is a diagram illustrating a configuration of a NIC 1003 connected to a memory controller 2601.
  • the transmission band can be expanded by increasing the number of bus interfaces according to the required performance.
  • the order of data returned from each memory depends on the distance from the bus master to the memory and the processing time in the memory. Replacement occurs. For this reason, when it is necessary to process the return data from the memory in the order of transmission from the bus master to the memory, it is necessary to take measures to rearrange the order of the received data by the bus master. This increases the functions to be implemented in the bus master, and also increases the development man-hours.
  • Patent Document 1 uses a logical bus composed of a plurality of physical buses by physically increasing the bus interface of the bus master. According to this configuration, it is possible to expand the transmission band of access to the memory.
  • FIG. 1A shows the bus interface 201a of the bus master 201 accessing the two memories 202 and the configuration of the bus.
  • FIG. 1B shows the bus interface 203a of the bus master 203 that accesses the m memories 204, and the bus configuration.
  • the bus interface is, for example, an input / output terminal for a bus master to exchange data.
  • the memory when accessing a plurality of memories via a physically different bus from the bus master, the memory depends on the distance from the bus master to the memory and the processing time in the memory. The order of the data sent from is changed. For this reason, when it is necessary to process return data from the memory in the order of transmission from the bus master to the memory, it is necessary to rearrange the order of the data from the memory in the bus master. As a result, it becomes necessary to rearrange the order of data, and the number of man-hours for expansion similarly increases.
  • FIG. 2 is a diagram for explaining an outline of a configuration for solving the problems of the prior art recognized by the inventors of the present application.
  • the bus control device 302 is provided between the bus master 301 and the plurality of memories 303 separately from the network interface controller (NIC) or integrated with the NIC.
  • the bus control device 302 classifies and stores data transmitted from the plurality of memories 303 to the bus master 301 once for each memory. Further, the bus control device 302 transmits data to each bus interface 304 of the bus master 301 in the same order as the data (request) is transmitted from the bus master to the memory. In other words, by providing the bus control device 302, it is possible to pass the data to each bus interface 304 while maintaining the order of the data sent from the memory 303. Since there is no need to change the bus master and the bus interface 304, the bus master 301 need not be expanded.
  • the bus control device 302 rearranges the data from the memory 303 to the bus master 301 so that the order of responses from the plurality of memories 303 is the same as the data transmitted from the bus master 301 to the memory 303, and Furthermore, in accordance with the bus interface 304 of the bus master 301, a function of determining which bus interface 304 the data from the memory 303 is transmitted to the bus master 301 is provided.
  • the data transmitted from the plurality of memories 303 is rearranged for each bus interface of the bus master 301, so that the bus interface of the existing bus master 301 can be expanded due to a specification change or the like. It can be handled only by changing the setting of the bus control device 302. Therefore, development can be simplified and man-hours can be reduced.
  • a bus control device is a bus system in which a first node, a plurality of second nodes, and a plurality of relay devices are connected by a packet-switched bus built on an integrated circuit.
  • a bus control device provided on a transmission path of data transmitted and received between a first node and each of the plurality of second nodes, wherein the transmission order of data transmitted from the first node to each second node
  • An order storage unit for storing data, and a distribution for receiving data transmitted from each of the second nodes to the first node, and determining a distribution destination of the data with reference to a predetermined distribution rule
  • a buffer unit that stores the sorted data separately for each second node that is the transmission source of the data, and the data when being transmitted from each second node to the first node With reference to the exchange availability information indicating whether the transmission order can be changed, with respect to data that is not allowed to change the order, the first node from the buffer unit in the same order as the transmission order stored in the order storage unit And a connection control
  • the replacement permission / inhibition information is NO
  • the replacement permission / inhibition information is not referred to
  • the first order from the buffer section is the same as the transmission order stored in the order storage section for all data. Send the data to the node.
  • the first node includes a plurality of bus interfaces
  • the connection control unit refers to interface information that specifies a bus interface to which the data is transmitted for each data, and from the buffer unit Send the data to the bus interface.
  • the interface information specifies a bus interface that is a transmission destination of the data for each data according to at least one of an application executed in the integrated circuit and a type of the second node.
  • the replacement availability information is determined according to at least one of an application executed in the integrated circuit and a type of the second node.
  • the allocating unit refers to a predetermined allocating rule, further distinguishes whether or not the data order can be changed, determines the allocating destination of the data, and the buffer unit is allocated The data is stored by further distinguishing whether or not the data order can be changed.
  • the allocating unit refers to a predetermined allocating rule, further distinguishes a data transmission path, determines the allocating destination of the data, and the buffer unit determines the allocated data as the allocating data.
  • the data transmission path is further distinguished and stored.
  • the distribution unit changes the data classification method to the buffer unit according to the size of the data.
  • the first node and the second node are any of a bus master, a memory, and an input / output device.
  • a relay device includes a first node and a plurality of second nodes connected to each other by a packet-switched bus constructed on an integrated circuit. And a relay device that relays data transmitted and received between each of the plurality of second nodes, the relay buffer storing data received from a bus, and the data stored in the relay buffer
  • a relay control unit that transmits to any one of the plurality of second nodes, an order storage unit that stores a transmission order of the data transmitted to each second node, and a transmission from each second node to the first node
  • the distribution unit receives the distributed data, refers to a predetermined distribution rule, determines a distribution destination of the data, and distributes the distributed data at the data transmission source.
  • a buffer unit that stores each second node separately, and replacement information that indicates whether the transmission order of data transmitted from each second node to the first node can be switched.
  • a connection control unit that controls transmission of the data from the buffer unit to the first node in the same order as the transmission order stored in the order storage unit with respect to data that is not allowed to be switched, and the connection control unit And a transmission control unit that outputs the data to the bus according to the control.
  • the distribution unit refers to a predetermined distribution rule and determines the data distribution destination by distinguishing the first node and the second node, and the buffer unit stores the distributed data Are stored separately in each second node that is the data transmission source and for each first node.
  • the replacement availability information is determined according to at least one of an application executed in the integrated circuit and a type of the second node.
  • the allocating unit refers to a predetermined allocating rule, further distinguishes whether or not the data order can be changed, determines the allocating destination of the data, and the buffer unit is allocated The data is stored by further distinguishing whether or not the data order can be changed.
  • the allocating unit refers to a predetermined allocating rule, further distinguishes a data transmission path, determines the allocating destination of the data, and the buffer unit determines the allocated data as the allocating data.
  • the data transmission path is further distinguished and stored.
  • the distribution unit refers to a predetermined distribution rule, and determines a distribution destination by distinguishing the second node, and a distribution destination by distinguishing both the second node and the first node. Can be selected.
  • the distribution unit changes the data classification method to the buffer unit according to the size of the data.
  • the first node and the second node are any of a bus master, a memory, and an input / output device.
  • a bus system is a bus system having a packet-switched bus constructed on an integrated circuit, and includes a first node, a plurality of second nodes, and a first relay.
  • a plurality of relay devices including a device and a second relay device; a first bus control device provided on a transmission path of data transmitted and received between the first node and the first relay device; A second bus control device provided on a transmission path of data transmitted and received between the two nodes and the second relay device, the plurality of relay devices, the first bus control device, and the second bus
  • At least one of the control devices transmits a relay buffer that stores data received from the bus and the data stored in the relay buffer to any of the plurality of second nodes.
  • a relay control unit an order storage unit for storing the transmission order of the data transmitted to each second node, and data transmitted from each of the second nodes to the first node;
  • a distribution unit that determines a distribution destination of the data, a buffer unit that stores the distributed data separately in each second node that is a transmission source of the data, With reference to exchangeability information indicating whether or not the transmission order of data when changing from each second node to the first node can be changed, data whose order is not allowed is stored in the order storage unit.
  • a connection control unit that controls transmission of the data from the buffer unit to the first node in the same order as the transmission order, and the data is transferred according to the control of the connection control unit. And a transmission controller for outputting to.
  • the plurality of relay devices further include an inter-bus relay device that connects a local bus and a system bus, the local bus includes the first control device and the first relay device, and the system bus includes the The connection control unit provided in the at least one device including a second relay device transfers the data from the buffer unit to the first node in the same order as the transmission order stored in the order storage unit. Control to send.
  • the bus system includes a third relay device, a plurality of third nodes, and a third bus control device provided on a transmission path of data transmitted and received between the plurality of third nodes and the third relay device.
  • the relay control unit further transmits the data stored in the relay buffer to any of the plurality of third nodes
  • the order storage unit includes: Further storing the transmission order of the data transmitted to each third node, the allocating unit receives data transmitted from each of the second nodes and each of the third nodes to the first node, The data distribution destination is determined with reference to a predetermined distribution rule, and the buffer unit transmits the distributed data to each of the second nodes that are the transmission source of the data and
  • the connection control unit stores exchangeability information indicating whether or not the transmission order of data when the data is transmitted from the second node and the third node to the first node is changed. Referring to the data whose order is not allowed to be changed, control is performed so that the data is transmitted from the buffer unit to the first node in the same
  • the third bus control device includes a relay buffer that stores data received from the bus, a relay control unit that transmits the data stored in the relay buffer to any of the plurality of third nodes, An order storage unit for storing the transmission order of the data transmitted to the third node; and data transmitted from each of the third nodes to the first node; and referring to a predetermined distribution rule A distribution unit that determines a distribution destination of the data, a buffer unit that stores the distributed data separately in each third node that is a transmission source of the data, and a third unit from each third node.
  • the exchange possibility information indicating whether or not the transmission order of data when changing to one node can be changed, data that is not allowed to be changed is stored in the order storage unit.
  • connection control unit that controls to transmit the data from the buffer unit to the first node in the same order as the transmission order that has been transmitted, and a transmission that outputs the data to the bus according to the control of the connection control unit
  • the connection control unit transmits the data from the buffer unit to the first node in the same order as the transmission order stored in the order storage unit. Control to send.
  • FIG. 3 shows a configuration example of the bus system 100a constructed on the semiconductor integrated circuit according to the present disclosure.
  • a plurality of bus masters and a plurality of memories are connected to the bus system 100a.
  • the plurality of bus masters have different input / output access bit widths and communication protocols.
  • FIG. 3 the description of the bus interface described above is omitted for the sake of brevity. The same applies to FIG. 4 described later.
  • Each bus master is connected to the system bus 110 via the bus control device and the network interface controller (Network Interface Controller; hereinafter may be referred to as “NIC”).
  • the NIC is a circuit that performs packetization processing for converting data into packets and depacketization processing for extracting data from packets received from the relay device in order to transmit data transmitted by the bus master to the relay device.
  • a bus protocol conversion process for transmitting data to the bus master is also performed.
  • FIG. 4 shows a configuration example of the bus system 100b constructed on the semiconductor integrated circuit according to the present disclosure.
  • the bus control device is incorporated in the NIC.
  • a configuration example of the bus control device in FIG. 4 will be described later with reference to FIG.
  • each bus master is connected to a plurality of memories via the bus control device, the NIC, and the networked system bus 110, and can transmit and receive data.
  • the above-described bus control device may be incorporated in one or a plurality of relay devices that connect the local bus and the system bus.
  • the local bus is a bus that connects a system master and a bus master having a physical distance close to each other in a partial area on the semiconductor integrated circuit, and operates with a bus width and an operating frequency different from the system bus.
  • 3 and 4 show the configuration of the system bus 110 in which the relay devices are connected in a ring shape, this is an example, and the semiconductor integrated circuit is not limited to the configuration connected in a ring shape.
  • the semiconductor integrated circuit is not limited to the configuration connected in a ring shape.
  • other configurations such as a mesh type in which relay devices are arranged in a grid pattern or a hierarchical type in which relay devices are connected in multiple stages may be employed.
  • 3 and 4 show an example in which a plurality of bus masters are connected to a plurality of shared memories, the connection destination of the bus masters is not limited to the shared memory.
  • the bus master may be connected to an input / output device I / O (Input / Output) with an external circuit (not shown).
  • the semiconductor integrated circuits 110a and 110b including the networked system bus 110 are shown.
  • Such a configuration in which a plurality of bus masters are connected by a networked bus is called a network on chip (NoC).
  • NoC network on chip
  • a semiconductor integrated circuit in which a bus master and a memory are directly connected may be used.
  • FIG. 5 shows a basic configuration of the bus control device 401a of the present disclosure.
  • the bus control device 401a corresponds to the bus control device shown in FIG. In FIG. 5, description of functions (packetization and depacketization) required in the packet switching method is omitted for the sake of brevity.
  • the NIC In the bus system 100b constructed on the semiconductor integrated circuit shown in FIG. 4, the NIC has a configuration for realizing packetization and depacketization necessary for the packet switching method in addition to the configuration of the bus control device. The configuration of the NIC will be described later with reference to FIG.
  • the system bus 110a in FIG. 3 transmits and receives data by a packet switching method. However, the configuration shown in FIG. 5 can be used even when data is exchanged using the circuit switching system without using the packet switching system.
  • the bus control device 401a is a device that connects a first node that transmits / receives data and a plurality of second nodes that receive / transmit the data.
  • a bus master, a memory, an input / output device I / O, and the like are used as the first node and the second node.
  • the bus control device 401 a is connected to the bus master 402 and further exchanges data with a plurality of memories existing on the system bus 110.
  • the bus master 402 is a first node and the memory 403 is a second node.
  • data transmission is performed by read / write access transmitted / received by the bus master 402 to the memory 403 by one address designation.
  • the bus master 402 is connected to the bus control device 401a via the transmission bus interface 404 and the reception bus interface 405.
  • the bus control device 401a includes a transmission control unit 406, an exchangeable / unusable information storage unit 407, an order storage unit 408, a buffer unit 409 prepared for each memory, a connection control unit 410, an IF information storage unit 411, and a distribution rule storage unit 412.
  • the distribution unit 413 is provided.
  • the transmission bus interface 404 is a circuit that controls transmission of data and commands from the bus master 402 to the bus control device 401a.
  • the reception bus interface 405 is a circuit that controls reception of data and commands from the bus control device 401 a to the bus master 402.
  • the transmission control unit 406 is a circuit that transmits data from the bus master 402 to the memory 403.
  • the replacement availability information storage unit 407 is a storage device (for example, SRAM) that stores replacement availability information.
  • the exchange enable / disable information is information indicating whether or not the bus master is allowed to change the order of the data on the transmission path when the bus master transmits a collection (transaction) of data related to a series of processes.
  • the change of the order of data on the transmission path refers to the order in which commands sent from the bus master to the memory and input / output device I / O (Input / Output), and from the memory or input / output device I / O to the bus master. This means that the order of data responses is changed.
  • bus master transmits / receives data to / from a plurality of memories and input / output equipment I / O.
  • transmission is performed by accessing multiple memories in parallel when the necessary transmission bandwidth is insufficient only by transmission / reception with a single memory. Band shortage can be resolved and low-delay transmission can be realized.
  • CG Computer Graphics
  • the exchange availability information may be provided for each type of bus master, or may be provided for each type of application or use case executed in the integrated circuit.
  • the order storage unit 408 is a storage device (for example, SRAM) that stores information on the order of data transmitted from the bus master 402 to the memory 403.
  • the buffer unit 409 is a storage device (for example, SRAM) that stores data transmitted from each memory 403 separately for each memory that is a transmission source.
  • the buffer unit 409 includes a plurality of partial buffers.
  • FIG. 5 illustrates a first buffer to an nth buffer that are partial buffers. Note that the buffer unit 409 may be physically divided into a plurality of partial buffers or may be logically divided as long as the data can be stored separately from the memory 403. In the following, unless there is a particular need to clearly indicate a partial buffer, it is generally referred to as a “buffer unit 409”.
  • the IF information storage unit 411 is a memory that stores bus interface information used when data is transmitted to the bus master 402 for each collection (transaction) of data related to a series of processes in the bus master.
  • the connection control unit 410 is a circuit that determines a buffer unit 409 as a data transmission destination for each bus interface. When determining the buffer unit 409, the connection control unit 410 changes the order of data stored in the order storage unit 408 and the order stored in the replacement possibility information storage unit 407 with respect to the data stored in the buffer unit 409. Information on whether or not the data is acceptable, and bus interface information used when transmitting to the bus master 402 recorded in the IF information storage unit.
  • the distribution rule storage unit 412 is a memory that stores a distribution rule that defines a correspondence relationship between a packet transmitted from the memory 403 and a storage destination of the buffer unit 409.
  • the distribution unit 413 is a circuit that stores data in the buffer unit 409 based on the distribution rule recorded in the distribution rule storage unit 412.
  • the allocating unit 413 identifies from which memory the data is transmitted, and stores it in the corresponding buffer.
  • the bus master 402 also notifies the bus control device 401a of a transaction ID for identifying a collection of data to be processed in association with each type of application and bus master together with the data.
  • FIG. 6 shows an example of replacement possibility information stored in the replacement possibility information storage unit 407.
  • a transaction ID for identifying a collection (transaction) of data related to a series of processing for each type of application or bus master, and whether or not it is permissible to change the order of data belonging to the transaction. To be recorded.
  • data identified by transaction IDs 0 and N is data that cannot be interchanged by the bus master 402 on the transmission path. Therefore, the change of order is recorded as “No” for each transaction ID.
  • the data identified by the transaction IDs 1 and 2 is data that allows the bus master 402 to change the order on the transmission path, and the order change is recorded as “possible” for the transaction ID.
  • the example of recording the availability for the transaction ID is shown, but the use is made for each slave (memory or input / output device I / O) that returned a data response.
  • the possibility of replacement may be defined based on the form. For example, in FIG. 7, the replacement is permitted for the response data from the memory 1 and the memory m that is always used by a single bus master, and the memory that is always used simultaneously with other slaves (the combination of the memory 1 and the memory 3, For the response data from the combination of the memory 2 and the memory 4, replacement enable / disable information may be defined so that replacement of data is not permitted.
  • FIG. 8 shows an example of order information stored in the order storage unit 408.
  • the order information includes a data ID for identifying the data in the order in which the bus master 402 transmits the data to the memory, and a transaction ID for identifying the transaction to which the data belongs.
  • the data ID is assigned by the transmission control unit 406 when data is transmitted.
  • the transaction ID is managed by the bus master 402, and is notified to the bus control device 401a at the same time as data transmission.
  • the data ID assigned to the data transmitted from the bus master 402 in the order in which the data is transmitted and the transaction ID notified from the bus master are stored in the order storage unit 408.
  • FIG. 9 shows an example of IF information stored in the IF information storage unit 411.
  • the IF information includes a transaction ID that identifies a transaction and a bus interface identification number that is used when data is transmitted to the bus master 402 for each transaction.
  • the correspondence relationship between the transaction ID for identifying a collection of data related to a series of processing and the bus interface ID is recorded for each type of application or bus master.
  • FIG. 10 shows an example of the distribution rule stored in the distribution rule storage unit 412.
  • the distribution rule defines a correspondence relationship between a memory ID for identifying a memory that has transmitted data and a storage destination of the buffer unit 409.
  • the memory ID can be acquired by referring to the value described in the header information part of the packet.
  • FIG. 11 shows an operation procedure of the bus control device 401 a when data is transmitted from the bus master 402 to the plurality of memories 403.
  • FIG. 11 illustrates an example in which the information storage unit 408 manages the order of data transmitted from the bus master 402.
  • step 701 the transmission control unit 407 of the bus control device 401a determines whether or not there is data transmission from the bus master 402. If there is data transmission, the process proceeds to step 702. If there is no data transmission, step 701 is repeated.
  • step 702 the transmission control unit 406 gives a data ID for identifying each data to the data transmitted from the bus master 402.
  • step 703 the transmission control unit 407 records the data ID assigned to the data and the transaction ID notified from the bus master 402 in the order storage unit 408 in the order in which the data is transmitted.
  • step 704 the transmission control unit 407 transmits the data to the destination memory 403.
  • the bus control device 401a can assign a data ID for identifying data to the data transmitted from the bus master 402, and store the data transmission order together with the transaction ID. is there.
  • FIG. 12 shows an outline of an operation procedure when the bus control device 401a receives data from a plurality of memories 403.
  • step 801 the distribution unit 413 stores the data transmitted from the memory 403 based on the distribution rule stored in the distribution rule storage unit 412 for each memory 403 in the partial buffer of the buffer unit 409. .
  • Step 801 will be described in detail as follows. That is, the distribution unit 413 receives the header information together with the data stored in the packet transmitted from the memory 403. The distribution unit 413 then refers to the header information and identifies the memory ID that transmitted the packet. Next, the allocating unit 413 refers to the sequence information (FIG. 8) in the sequence storage unit 408 and identifies the transaction ID from the data ID described in the packet header information.
  • the allocating unit 413 refers to the exchange availability information (FIG. 6 or FIG. 7) in the exchange availability information storage unit 407 and identifies whether or not the packet can be allowed to be reordered on the transmission path from the transaction ID.
  • the allocating unit 413 refers to the allocating rule (FIG. 10) of the allocating rule storage unit 412 and determines the packet storage destination based on the ID of the memory that transmitted the packet and whether the order on the transmission path is interchangeable.
  • the partial buffer of the buffer unit 409 is specified. As a result, the distribution unit 413 can store the packet transmitted from the memory 403 in the partial buffer of the buffer unit 409b.
  • the connection control unit 410 sequentially determines partial buffers of the buffer unit 409 for transmitting data for each bus interface of the bus master 402 according to whether or not the order of data can be changed. Specifically, the connection control unit 410 refers to the exchange availability information (FIG. 6 or 7) in the exchange availability information storage unit 407, and transmits data that cannot be reordered from the bus master 402 to the memory 403.
  • the partial buffers are sequentially determined so that the data stored in the partial buffers of the buffer unit 409 is transmitted to the bus master 402 in the same order as the order that has been set. For data that can be reordered, the data is transmitted in the order stored in the partial buffer.
  • connection control unit 410 Detailed operation of the connection control unit 410 will be described later with reference to FIG.
  • the reference of the exchange possibility information by the distribution unit 413 in step 801 and the reference of the exchange possibility information by the connection control unit 410 in step 803 may be omitted.
  • connection control unit 410 transmits data from the buffer unit 409 determined for each bus interface to the bus master 402.
  • Data is transmitted from the plurality of memories 403 to the bus master 402 by repeating the above steps.
  • a method of storing data transmitted from the memory 403 in the partial buffer of the buffer unit 409 based on the distribution rule stored in the distribution rule storage unit 412 is distinguished for each memory 403. explained.
  • the partial buffer of the storage destination of the buffer unit 409 is described in advance in the header information of the response data, and the allocating unit 413 stores the response data in the buffer unit based on the storage destination described in the header information. 409 may be stored.
  • the packetization unit 1101 stores in the distribution rule storage unit 412 as a method of describing the storage destination partial buffer of the buffer unit 409 in the header information.
  • a method may be considered in which the previous information is described in the header information, and the storage destination information is described in the header information of the response data to the bus master 402 in the memory 403.
  • FIG. 13 shows an operation procedure of the connection control unit 410.
  • the connection control unit 410 In order to transmit data transmitted from the memory 403 that cannot be reordered to the bus master 402 in the same order as that transmitted from the bus master 402 to the memory 403, the connection control unit 410 has a buffer unit for each bus interface. The data to be transmitted to the bus master 402 is determined. The connection control unit 410 executes the following steps 901 to 907 for the buffer unit 409 distinguished for each memory 403.
  • step 901 the connection control unit 410 determines whether data is stored in the buffer unit 409. If data is stored, the process proceeds to step 902. If no data is stored, the process proceeds to the buffer unit 409 of another memory 403.
  • connection control unit 410 refers to the order storage unit 411 and identifies the transaction ID from the data ID of the data stored in the buffer unit.
  • connection control unit 410 refers to the exchange possibility / non-permission information storage unit 407 and identifies whether or not the data can allow the change of order on the transmission path from the corresponding transaction ID.
  • step 904 the connection control unit 410 determines whether or not the data in the transmission path can permit the replacement of the data in the order. If the replacement can be permitted, the process proceeds to step 905. If the data cannot be reordered on the transmission line, the process proceeds to step 906.
  • connection control unit 410 refers to the IF information storage unit 411 and specifies a bus interface for transmitting data to the bus master 402 from the data transaction ID.
  • connection control unit 410 refers to the order storage unit 408 and confirms whether there is data to be transmitted to the bus master 402 earlier in the transmission time, among the data having the same transaction ID.
  • the reason for executing this step is that for data that is not allowed to be exchanged on the transmission line, it is necessary to transmit the data to the bus master 402 in the same order as the data is transmitted from the bus master 402 to the memory 403. That's why.
  • step 907 If there is no data to be transmitted to the bus master 402 in step 907, the process proceeds to step 905. If there is other response data to be transmitted to the bus master 402 first, the process proceeds to step 908.
  • connection control unit 410 refers to the IF information management unit 411 and determines a partial buffer of the buffer unit 409 that transmits data for each bus interface.
  • the data IDs stored in the partial buffers are compared, and the partial buffers that store the oldest data transmitted from the bus master 402 (time) Select.
  • a method for selecting a partial buffer for each bus interface a method other than the transmission time by comparing data IDs may be used. For example, when additional information such as priority and deadline time is given to the data, data with a high priority may be selected or data with a close deadline time may be selected.
  • step 909 the connection control unit 410 deletes the data ID of the data transmitted from the buffer unit 409 to the bus master 402 from the order storage unit 408, and proceeds to step 901.
  • connection control unit 910 transmits the data to the bus master 402 in the same order as that transmitted from the bus master 402 to the memory 403. Data to be transmitted from the partial buffer to the bus master 402 is determined.
  • FIG. 14 shows an example in which at least a part of a transmission path connecting the bus master 301 and a plurality of memories 303 is shared.
  • paths 1 and 2 are shown. Some of routes 1 and 2 use the same relay device and transmission line.
  • the transmission path is shared between the memories. It may be a configuration.
  • FIG. 14 shows a configuration in which the bus master 301 and a plurality of memories 303 are connected using NoC in which the transmission path is networked.
  • data transmitted / received by the bus master is converted into a packet by the NIC 1001 and transmitted to the destination memory 303 via the relay apparatus 1002 by a packet switching method.
  • the NIC 1003 provided between the relay device 1002 and the memory 303 performs a bus protocol conversion process when transmitting a packet received from the relay device 1002 to the memory 303.
  • the bus control device is provided between the bus master and the system bus.
  • FIG. 15 shows a configuration of a bus control device 401b having a NIC function.
  • the bus control device 401b corresponds to the bus control device shown in FIG.
  • the buffer unit 409 is a storage device (for example, SRAM) that distinguishes and stores packets including data transmitted from each memory 403.
  • the buffer unit 409 includes a plurality of partial buffers.
  • FIG. 15 illustrates a first buffer to an nth buffer, which are partial buffers. Note that the buffer unit 409 may be physically divided into a plurality of partial buffers or may be logically divided as long as the packet from each memory can be stored separately.
  • the packetizing unit 1101 is a circuit that converts data transmitted from the bus master 402 into packets for transmission to the NoC.
  • the packet includes header information, which is information necessary for relaying data on NoC, and data to be transmitted.
  • the header information is given an ID (address) for identifying a bus master and a memory to which packets are transmitted and received, and a data ID for identifying data.
  • the depacketization unit 1102 is a circuit that converts a packet transmitted from the memory 403 via the NoC into data to be transmitted to the bus master 402.
  • FIGS. 16A and 16B show examples of distribution rules stored in the distribution rule storage unit 412.
  • the distribution rule storage unit 412 may store the distribution rule shown in FIG. 10 described above.
  • the allocation of the buffer unit 409 for storing the packet may be performed by allocating a large number of allocations of the buffer unit 409 to one memory in accordance with the data size of the answer packet from the memory 403, for example. Further, the allocation may be performed so that one buffer unit 409 is shared by a plurality of memories.
  • packets whose order can be allowed to be changed by the bus master do not need to be rearranged, they may be stored in the buffer unit separately from packets whose order cannot be changed.
  • the storage destination of the buffer unit 409 is defined by further considering whether the packet from the memory 403 can be accepted by the bus master and the change of the order on the transmission path. is doing.
  • packets that can be changed in order can be handled by one buffer unit, so the number and size of the buffer units 409 required in the bus control device 401b are reduced. In addition, the mounting area and power consumption can be reduced.
  • FIG. 16B shows an example of the distribution rule recorded in the packet distribution rule storage unit 412 in the buffer unit by distinguishing the transmission path of the packet.
  • NoC As shown in FIG. 14, it is possible to construct a topology that can use a plurality of transmission path paths from the memory 303 to the bus master 301.
  • a plurality of paths can be used, a wider transmission band can be used by transmitting data in parallel via different paths.
  • the packet order may be changed if the packets reach the bus master 303 via different paths. For this reason, in order to cope with the change of the order of the packets due to the difference in the transmission path, in addition to the distinction of the memory ID, the route through which the packet has passed may be distinguished and stored in the buffer unit.
  • the storage destination of the buffer unit 409 is defined by further adding the memory ID and the packet transmission path to the packet from the memory 403.
  • the bus control device 401a can identify the route through which the packet has passed by referring to the header information of the packet.
  • FIG. 17 shows an operation procedure of the bus control device 401b when data is transmitted from the bus master 402 to the memory 403.
  • step 1301 the bus control device 401b adds header information including information necessary for relay processing on NoC to the data transmitted from the bus master 402 by the packetizing unit 1101, and packetizes the data.
  • step 1302 the bus control device 401b transmits the packet from the packetizing unit 1101 to the NoC.
  • the bus control device 401b transmits a packet with a data ID for identifying the data transmitted from the bus master 402, and records the data transmission order together with the transaction ID. To do.
  • FIG. 18 shows an operation procedure when the bus control device 401b receives the data transmitted from the memory 403.
  • step 1401 the allocating unit 413 distinguishes the packets transmitted from the memory 403 for each memory and stores them in the buffer unit 409. Detailed operation of the distribution unit 413 will be described later with reference to FIG.
  • step 1402 the depacketizer 1102 converts the data included in the received packet into a bus protocol used with the bus master 402 in order to transmit the data included in the received packet to the bus master 402.
  • the data of the packet transmitted from the memory 403 is transmitted to the bus master 402 by repeating steps 1401, 802, 1402, and 803.
  • FIG. 19 shows an operation procedure of the distribution unit 413.
  • the sorting unit 413 stores the packet transmitted from the memory 403 in the corresponding partial buffer of the buffer unit 409 based on the sorting rule (FIGS. 10 and 16) stored in the sorting rule storage unit 412.
  • the allocating unit 413 refers to the header information of the packet transmitted from the memory 403 or the sequence information stored in the sequence storage unit 408, and specifies the ID (memory ID) of the memory that transmitted the packet.
  • the ID memory ID
  • the distribution rule of FIG. 10 can be used.
  • the order information is used to specify the transaction ID.
  • the allocating unit 413 refers to the order storage unit 408, and identifies the transaction ID from the data ID described in the packet header information.
  • the allocating unit 413 refers to the interchangeability information storage unit 407 and identifies whether or not the packet can be allowed to be reordered on the transmission path from the transaction ID.
  • the allocating unit 413 refers to the allocating rule storage unit 412, and based on the ID of the memory that has transmitted the packet and whether or not the order on the transmission path can be changed, the buffer unit 409 serving as a packet storage destination Specifies the partial buffer.
  • step 1505 the distribution unit 1105 stores the packet transmitted from the memory 403 in the buffer unit 409.
  • Step 1501 to Step 1505 packets whose order change is not allowed in the bus master 402 can be distinguished and stored in the buffer unit 409 for each memory.
  • the order of data transmitted from the bus master 402 to the memory 403 is recorded by the order storage unit 408, and the connection control unit 410 is based on the order recorded in the order storage unit 408.
  • An example of selecting a buffer to transmit data to has been described.
  • the data ID is managed by a consecutive number for each transaction, the data ID of the transmitted data is not managed in the bus control device 401b, and the data that has been transmitted from the memory 403 to the bus master 402 for each transaction.
  • the ID number X may be managed, and data (ID number X + 1) to be transmitted next to the bus master 402 may be specified based on the number X.
  • FIG. 20 shows an example of order information in which the data ID of data that has been transmitted from the memory 403 to the bus master 402 is recorded for each transaction.
  • connection control unit 410 refers to the order management information 408 and selects, for each transaction ID, data with a data ID that is assigned the next number of the data ID that has been transmitted. Thus, data to be transmitted to the bus master 402 is selected.
  • connection control unit 410 transmits data to the bus master 402
  • the connection control unit 410 updates the data ID recorded in the order storage unit 408 to the ID of the data transmitted last.
  • the transaction ID is described in the header information of the packet and transmitted together, and the IF information storage unit 411, the exchangeable / unusable information storage unit 407, and the distribution unit 413 are respectively required from the transaction ID described in the packet. Get information.
  • bus control devices 401 a and 401 b are provided adjacent to the bus master 402 .
  • the bus control device may be provided as a part of a relay device that relays data from a plurality of memories on the transmission path.
  • FIG. 21 shows a configuration in which a plurality of bus masters 301 connected via a local bus communicate with a plurality of memories 303 connected via a system bus.
  • the same number is provided and description is abbreviate
  • the transmission bandwidth of the local bus is relatively narrow, and the transmission speed is relatively low.
  • the transmission band is relatively wide and the transmission speed is relatively high.
  • FIG. 22 shows the configuration of the relay device 1601 having the function of the bus control device according to the present disclosure.
  • the relay device 1601 includes components having functions equivalent to the components of the bus control device 401a illustrated in FIG. 5 and / or the bus control device 401b illustrated in FIG. They are given the same reference numerals and their description is omitted.
  • the connection control unit 410 of the relay device 1601 can switch connections for both the local bus and the system bus. For example, if the memory exists in the same local network as the bus master, and the bus master accesses both the memory connected via the system bus and the memory in the same local network, the connection control unit 410 changes the bus connection. By switching, the response data from the memory connected via the system bus can be transmitted from the system bus to the local bus, and the response data transmitted from the memory existing in the local bus. It is possible to transmit directly from the local bus to the local bus.
  • the relay buffer 1701 is a storage device (for example, SRAM) that stores packets transmitted from the local bus.
  • the relay control unit 1702 is a circuit that determines an output port directed to each destination for a packet received from the system bus stored in the buffer unit 409 and a packet received from the local bus stored in the buffer unit 1702. is there.
  • connection control unit 410 of the relay device 1601 determines the packet transmission order for each set of a plurality of packets stored in either the buffer unit 409 or the buffer unit 1701 and having the same output port.
  • the system bus transmission control unit 1703 is a circuit that transmits packets in accordance with the bus width and operating frequency of the system bus.
  • the local bus transmission control unit 1704 is a circuit that transmits packets in accordance with the bus width and operating frequency of the local bus.
  • the buffer unit 409 and the buffer unit 1701 may be realized by using a part of a buffer that stores a packet when the relay apparatus performs packet path control. Further, when packets are transmitted from the system bus to the local bus, a large speed difference absorbing buffer capable of storing all the packets transmitted from the memory 403 is used to absorb the speed difference of the bus. For this reason, a part of the storage area of the speed difference absorption buffer may be used as the buffer unit 409.
  • FIG. 23A and 23B show examples of distribution rules stored in the distribution rule storage unit 1102 of the relay device 1601.
  • FIG. 23A and 23B show examples of distribution rules stored in the distribution rule storage unit 1102 of the relay device 1601.
  • the relay device 1601 transmits and receives data between the plurality of bus masters 402 and the plurality of memories 403. Therefore, the distribution rule stored by the distribution rule control unit 1102 also includes an ID for identifying the bus master in addition to the memory ID.
  • FIG. 23A shows an example of a distribution rule based on the memory and the bus master. That is, in the distribution rule of FIG. 23A, the correspondence relationship between the storage destinations of the buffer unit 409 is defined for the combination of the memory ID that transmitted the packet and the bus master ID that is the destination of the packet. Further, since it is not necessary to rearrange the order of packets that the bus master can allow the change of order, the packets may be stored in the buffer unit 409 separately from the packets that cannot be changed.
  • FIG. 23B shows an example of a distribution rule that takes into account the type of packet.
  • the distribution rule of FIG. 23B in addition to the combination of the memory ID that transmitted the response packet and the bus master ID that is the destination, whether or not the data can tolerate a change in the order of the packets on the route is considered.
  • the storage location of the buffer unit 409 is defined.
  • the distribution rule at least one of memory ID, bus master ID, and whether or not the change of order can be permitted is included. You may use what defined the storage place of the buffer part 409 with respect to conditions.
  • FIG. 24 shows the operation of the relay device 1601 at the time of data transmission from the local bus to the system bus.
  • the operation of the relay device 1601 when transmitting a packet from the bus master 301 shown in FIG. 21 to the plurality of memories 303 will be described.
  • step 1901 the relay buffer 1701 of the relay device 1601 stores the received packet.
  • the relay control unit 1702 of the relay device 1601 refers to the header of the packet, and determines an output port toward the memory or bus master that is the destination of the packet based on the destination ID (address) described in the header. decide.
  • step 1903 the transmission control unit 1703 records the data ID and the transaction ID described in the packet in the order storage unit 408 in order.
  • the transaction ID is given by the bus master 402, and the data ID is given by the NIC 1001 to the header information of the packet.
  • the transaction ID and the data ID are each described in the header information of the packet by the NIC.
  • step 1904 the system bus transmission control unit 1703 transmits a packet in accordance with the bus width and bus operation speed of the system bus.
  • the order storage unit 408 of the relay device 1601 accumulates the data ID and the transaction ID in the order of packets transmitted from the bus master 402 to the plurality of memories 403.
  • FIG. 25 shows an outline of an operation procedure when the relay device 1601 receives data transmitted from the plurality of memories 403.
  • step 2001 the distribution unit 413 stores the packet transmitted from the memory 403 in the buffer unit 409 based on the distribution rule 413 recorded in the distribution rule storage unit 412.
  • the detailed operation of the distribution unit 413 in the relay device 1601 will be described later with reference to FIG.
  • step 2002 the relay control unit 1702 determines an output port connected to the transmission destination for delivering the response packet to the destination bus master.
  • step 2003 it is determined whether the transmission destination of the packet is the local bus or the system bus. If the transmission destination is the local bus, the process proceeds to step 2004. If the transmission destination is the system bus, the process proceeds to step 2006.
  • the connection control unit 410 determines the packet transmission order. Specifically, the connection control unit 410 determines a buffer unit 409 that transmits a packet to the local bus for each output port. The determination method of the buffer unit 409 that transmits a packet is the same as the operation described in FIG.
  • step 2005 the local bus transmission control unit 1704 transmits the packet to the local bus in accordance with the bus width and bus operating speed of the local bus. The process returns to step 2001 again.
  • step 2006 the system bus transmission control unit 1704 transmits a packet in accordance with the bus width and bus operating speed of the system bus. The process returns to step 2001 again.
  • data from the memory 403 can be transmitted to the bus master 402 in the order of transmission from the bus master 402 to the memory 403 for each output port.
  • FIG. 26 shows an operation procedure performed when the distribution unit 413 of the relay apparatus 1601 stores a packet in the buffer unit.
  • This operation procedure is the details of the process in which the distribution unit 413 stores the packet transmitted from the memory 403 in the corresponding buffer unit 409 based on the distribution rule stored in the distribution rule storage unit 412.
  • the allocating unit 413 refers to the header information described in the packet transmitted from the memory 403, and identifies the memory ID that transmitted the packet and the bus master ID that is the destination of the packet.
  • the allocating unit 413 refers to the order storage unit 408 and identifies the transaction ID from the data ID of the packet.
  • the allocating unit 413 refers to the exchange enable / disable information storage unit 407, and determines whether or not the packet can permit the change of order on the transmission path from the transaction ID.
  • the allocating unit 413 refers to the allocating rule storage unit 412, and based on the identified memory ID and bus master ID and whether or not the order on the transmission path is changed, the buffer unit serving as a packet storage destination 409 partial buffers are identified.
  • step 2105 the distribution unit 1105 stores the packet transmitted from the memory 403 in the buffer unit 409.
  • a plurality of memories are based on the memory ID that transmitted the packet data, the bus master ID that is the packet transmission destination, and whether or not the packet can be interchanged in order on the transmission path.
  • the packet transmitted from 403 can be distinguished and stored in the buffer unit 409.
  • a plurality of pieces of information are stored in advance for information stored in each of the interchangeability information storage unit 407, the IF information storage unit 411, and the distribution unit 413, so that when the bus master 402 is started up, applications, and use cases are stored. At the time of change, which information is used may be selected by a control signal from the bus master.
  • each of the interchangeability information storage unit 407, the IF information storage unit 411, and the distribution unit 413 may be changed directly from the bus master.
  • the distribution unit 413 of the relay device 1601 performs the distribution rule based only on the memory ID shown in FIG. 16A and the distribution rule based on both the memory ID and the bus master ID shown in FIG. If one bus master is transmitting data within the local bus, the distribution rule shown in FIG. 16A is used, and multiple bus masters can change the data by changing the use case. May be used, the distribution rule of FIG. Thereby, the utilization efficiency of the buffer part 409 can be improved according to a use case.
  • connection control unit 410 selects connection of the output port to the local bus for a packet transmitted from the system bus to the locus bus.
  • the connection control unit 410 may select connection of the output port to the system bus. Further, the connection control unit 410 may select connection of the output port to the local bus for a packet transmitted from both the system bus and the local bus to the local bus. Further, the connection control unit 410 may select connection of an output port to the system bus for a packet transmitted from both the local bus and the system bus to the system bus.
  • FIG. 27 shows a configuration of the bus system 100c that can change the order of response data from the memory in a plurality of elements.
  • the same number is provided and description is abbreviate
  • the bus system 100c in FIG. 27 shows a configuration in which a plurality of memories 303 are connected to the NIC 1003 connected to the slave.
  • the NIC 1003 in FIG. 27 transmits / receives data to / from the plurality of memories 303 via the memory controller 2601.
  • the memory controller 2601 is a circuit that performs control such as reading and writing of data with respect to the memory 303. 14 and 21, the memory controller 2601 is omitted.
  • the bus control device in the NIC 1003 or the relay device 2602 connected to the NIC 1003 can rearrange the order of the response data of the plurality of memories 303 controlled by the common memory controller 2601 in advance. “Preceding” means preceding the rearrangement on the local bus in FIG. That is, in this embodiment, either the bus control device in the NIC 1003 or the relay device 2602 connected to the NIC 1003 and the system bus receives response data from a plurality of memories controlled by the common memory controller 2601. Rearrange and flow to system bus.
  • response data from a plurality of memories controlled by different memory controllers reaches the local bus from the system bus, the NIC 1001 connected to the bus master, the relay device 1002 of the local bus, and the relay device 1601 that connects the system bus and the local bus.
  • the order of the response data may be rearranged.
  • the configuration may be provided only in a NIC or relay device that performs response data rearrangement processing, and the configuration may not be provided in a NIC or relay device that does not perform response data rearrangement processing.
  • the configuration may not be provided in a NIC or relay device that does not perform response data rearrangement processing.
  • the bus control device is provided in the NIC 1003 or the NIC 1001.
  • the bus control device and the NIC may be separate.
  • a function may be provided in which the memory controller 2601 rearranges response data from a plurality of memories 303 controlled by itself.
  • the rearrangement of response data from a memory group (a set of memories 1 and m1 and a set of memories 3 and m2) controlled by different memory controllers such as the memory controller 2601 and the memory controller 2701
  • Any of the NIC 1001, the relay device 1002, and the relay device 1601 on the bus may be performed.
  • the order of the request data transmitted to the set of the memories 1 and m1 and the request data transmitted to the set of the memories 3 and m2 is the NIC 1001, the relay apparatus 1002, or the relay apparatus 1601. Need to be held in either.
  • the configurations and operations of the memory controller 2701, NIC 1103, and relay device 2702 in FIG. 27 are the same as those of the memory controller 2601, NIC 1003, and relay device 2602, respectively.
  • FIG. 28 shows the configuration of the NIC 1003 connected to the memory controller 2601. About the same structure as FIG. 15, the same number is provided and description is abbreviate
  • the NIC 1003 is provided between the relay device 1602 and the memory controller 2601 and connects them.
  • the difference between the NIC 1003 and the NIC 401b (FIG. 15) is that the positions of the packetizing unit 1101 and the depacketizing unit 1102 are interchanged.
  • the depacketization unit 1102 of the NIC 1003 converts the data included in the request packet received from the relay device 1601 into a communication protocol used between the memory controller 2601 and transmits it to the memory controller 2601. Further, the packetizing unit 1101 of the NIC 1003 converts the response data received from the memory controller 2601 into a packet and transmits the packet to the relay device 2602. The processing for changing the order of response data is the same as that of the bus NIC 401b in FIG.
  • the present disclosure can be used for an interface device provided between a bus and a memory in an on-chip bus, a general-purpose processor, or a local bus on a DSP.
  • Bus interface for transmission 405 Bus interface for reception 406 Transmission control unit 407 Replacement information storage unit 408 Order storage unit 409 Buffer unit prepared for each memory 410 Connection control unit 411 IF information storage unit 412 Distribution rule storage unit 413 Distribution unit 1101 Packetization unit 1102 Depacketization unit 1601 Relay device 1701 Relay buffer 1702 Relay control unit 1703 Transmission control unit for system bus 1704 Transmission control unit for local bus

Abstract

 バス制御装置(401a)は、第1ノード(402)から各第2ノード(403)へ送信されたデータの送信順序を記憶する記憶部(408)と、各第2ノードから第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、データの振り分け先を決定する振分部(413)と、振り分けられたデータを、データの送信元である第2ノードごとに区別して格納するバッファ部(409)と、各第2ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、記憶部に記憶された送信順序と同じ順序で、バッファ部から第1ノードへデータを送信する接続制御部(410)とを備えている。

Description

バス制御装置、中継装置およびバスシステム
 本願は、ネットワーク化された半導体バスを備える半導体集積回路において、バスマスタが複数のスレーブに送信した要求に対し、複数のスレーブからバスマスタへ送信される応答の順序を制御する技術に関する。
 集積回路の開発において、目的の機能や性能を実現するために、既存のバスマスタを再利用し繋ぎ合わせることで効率的に開発を行う取り組みがある。このような開発では、バス幅やバスプロトコル、要求品質の異なる多種多様なバスマスタを容易に接続できることが求められる。
 その一方で、多種多様なバスマスタを接続する場合、バスマスタ毎にアクセスするスレーブの数が異なったり、バスマスタのバス・インターフェイスの数や、受信バッファのサイズが異なるため、バスマスタ毎に要求される伝送性能を確保できるようにバス・インターフェイスを設計することが必要となる。
 特許文献1は、バスマスタと複数のスレーブ間の伝送性能を改善する技術を開示する。特許文献1は、バスマスタのバス・インターフェイスを物理的に増やし、複数の物理的バスによって構成される論理バスを利用することで、メモリへのアクセスの伝送帯域を広げることを可能にする。
特許第3086261号明細書
 集積回路を効率的に開発するために、開発工数をできるだけ低減することが求められている。
 本願の、限定的ではない例示的なある実施形態は、開発工数をできるだけ低減しつつ、要求される性能を確保することが可能なバス制御装置を提供する。
 上記課題を解決するために、本発明の一態様は、第1ノード、複数の第2ノード、および複数の中継装置が、集積回路上に構築されたパケット交換方式のバスによって接続されたバスシステムにおいて、前記第1ノードと前記複数の第2ノードの各々との間で送受信されるデータの伝送経路上に設けられるバス制御装置であって、第1ノードから各第2ノードへ送信されたデータの送信順序を記憶する順序記憶部と、前記各第2ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定する振分部と、振り分けられた前記データを、前記データの送信元である前記第2ノードごとに区別して格納するバッファ部と、前記各第2ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信する接続制御部とを備えている。
 上述の一般的かつ特定の態様は、システム、方法およびコンピュータプログラムを用いて実装され、またはシステム、方法およびコンピュータプログラムの組み合わせを用いて実現され得る。
 本発明の一態様にかかるバス制御装置によれば、複数のメモリからのデータを受信した際に、バスマスタ毎にバス・インターフェイスの作りこみが不要となり、バス制御装置の設定を変更するだけで複数のスレーブからの応答の受信が可能となるため、半導体集積回路の設計を簡略化できる。
 また、複数のスレーブに対して、バスマスタ側のバス・インターフェイスを物理的に増やす必要がないため、バスマスタの実装面積と消費電力量を削減できる。
(A)はバスマスタ201のバス・インターフェイス201a、およびバスの構成を示す図であり、(B)はバスマスタ203のバス・インターフェイス203a、およびバスの構成を示す図である。 本願発明者らによって認識された従来技術の課題を解決するための構成の概要を説明する図である。 本開示にかかる半導体集積回路上に構築されたバスシステム100aの構成例を示す図である。 本開示にかかる半導体集積回路上に構築されたバスシステム100bの構成例を示す図である。 本開示のバス制御装置401aの基本的な構成を示す図である。 入替可否情報記憶部407に記憶される入替可否情報の一例を示す図である。 入替可否情報記憶部407に記憶される入替可否情報の他の例を示す図である。 順序記憶部408で記憶される順序情報の一例を示す図である。 IF情報記憶部411で記憶されるIF情報の一例を示す図である。 振分規則記憶部412に記憶される振分規則の例を示す図である。 バスマスタ402から複数のメモリ403に対してデータを送信する場合のバス制御装置401aの動作手順を示す図である。 バス制御装置401aが、複数のメモリ403からデータを受信した場合の動作手順の概要を示す図である。 接続制御部410の動作手順を示す図である。 バスマスタ301と複数のメモリ303とを接続する伝送路の少なくとも一部が共用される例を示す図である。 NICの機能を備えたバス制御装置401bの構成を示す図である。 (A)および(B)は振分規則記憶部412に記憶される振分規則の例を示す図である。 バスマスタ402からメモリ403へデータを送信する場合の、バス制御装置401bの動作手順を示す図である。 バス制御装置401bが、メモリ403から送信されたデータを受信した時の動作手順を示す図である。 振分部413の動作手順を示す図である。 メモリ403からバスマスタ402へ送信が完了したデータのデータIDをトランザクション毎に記録した順序情報の例を示す図である。 ローカルバスを介して接続された複数のバスマスタ301が、システムバスを介して接続された複数のメモリ303と通信を行う構成を示す図である。 ローカルバスを介して接続された複数のバスマスタ301が、システムバスを介して接続された複数のメモリ303と通信を行う構成を示す図である。 (A)および(B)は、中継装置1601の振分規則記憶部1102が記憶している振分規則の例を示す図である。 ローカルバスからシステムバスへのデータ送信時の中継装置1601の動作を示す図である。 中継装置1601が、複数のメモリ403から送信されたデータを受信した際の動作手順の概要を示す図である。 中継装置1601の振分部413がバッファ部にパケットを格納する際に行う動作手順を示す図である。 複数の要素においてメモリからの応答データの順序の入替えを行うことが可能なバスシステム100cの構成を示す図である。 メモリコントローラ2601と接続されるNIC1003の構成を示す図である。
 上述したように、特許文献1では、要求性能に応じてバス・インターフェイスを増やすことで伝送帯域を広げることができる。しかしながら、特許文献1の技術によれば、バスマスタの要求性能に応じて、個別にバス・インターフェイスを作り込む必要があり、開発の工数が増加する。
 また、あるバスマスタが、それぞれ異なるバス・インターフェイスを介して複数のメモリにアクセスする場合、バスマスタからメモリまでの距離やメモリ内での処理時間の違いによって、それぞれのメモリから返信されるデータの順序に入れ替わりが発生する。このため、バスマスタからメモリへ送信した順番で、メモリからの返信データを処理する必要がある場合には、受信したデータの順序をバスマスタが並び替える対策が必要となる。これでは、バスマスタに実装すべき機能が増加し、やはり開発工数が増加する。
 ここで図1を参照しながら、本願発明者らが見出した課題をより具体的に説明する。
 バスマスタと複数のスレーブ間の伝送性能を改善する方法として、特許文献1は、バスマスタのバス・インターフェイスを物理的に増やし、複数の物理的バスによって構成される論理バスを利用している。この構成によれば、メモリへのアクセスの伝送帯域を広げることが可能であるとされている。
 図1(A)は、2個のメモリ202にアクセスするバスマスタ201のバス・インターフェイス201a、およびバスの構成を示している。また、図1(B)は、m個のメモリ204にアクセスするバスマスタ203のバス・インターフェイス203a、およびバスの構成を示している。バス・インターフェイスは、たとえばバスマスタがデータの授受を行うための入出力端子である。
 図1(A)に示すように、各メモリとデータを送受信可能にするためには、特許文献1の技術では、バスマスタ毎にバス・インターフェイスを拡張することが必要である。また、メモリの数に応じて、バス・インターフェイスが増加する。これでは、拡張のために要する工数が増加する。
 また、図1(B)に示すように、バスマスタから物理的に異なるバスを介して、複数のメモリにアクセスを行う場合、バスマスタからメモリまでの距離や、メモリでの処理時間の違いによって、メモリから送信されたデータの順番の入れ替わりが発生する。このため、バスマスタからメモリへ送信した順番で、メモリからの返信データを処理する必要がある場合には、バスマスタにおいて、メモリからのデータの順序を並び替える必要がある。その結果、データの順序を並び替える必要が生じ、拡張の工数が同様に増加する。
 図2は、本願発明者らによって認識された従来技術の課題を解決するための構成の概要を説明する図である。
 本開示では、バスマスタ301と複数のメモリ303との間に、ネットワーク・インタフェイス・コントローラ(NIC)とは別体の、またはNICと一体化されたバス制御装置302を設けた。バス制御装置302は、複数のメモリ303からバスマスタ301へ送信されるデータを、一旦、メモリ毎に分類して格納する。さらにバス制御装置302は、バスマスタ301の各バス・インターフェイス304に宛てて、バスマスタからメモリへデータ(要求)を送信した順序と同じ順序で、データを送信する。つまり、バス制御装置302を設けることで、メモリ303から送られてきたデータの順序を維持して、データを各バス・インターフェイス304に渡すことができる。バスマスタおよびバス・インターフェイス304を変更する必要はないため、バスマスタ301の拡張は不要である。
 このため、バス制御装置302は、複数のメモリ303からの応答の順序がバスマスタ301からメモリ303へ送信したデータと同じ順序となるように、メモリ303からバスマスタ301へのデータを並び替える機能と、さらに、バスマスタ301のバス・インターフェイス304に合わせて、メモリ303からのデータを、どのバス・インターフェイス304を介してバスマスタ301へ送信するかを決定する機能とを備える。これらの機能を有するバス制御装置を用意し、システムバスに組み込むことにより、既存の種々のバスマスタを拡張する必要がなくなり、既存の資源を有効に活用した集積回路を得ることができる。
 このように、バス制御装置302において、複数のメモリ303から送信されたデータを、バスマスタ301のバス・インターフェイス毎に並び替えることで、仕様変更などに伴う既存のバスマスタ301のバス・インターフェイスの拡張を不要とし、バス制御装置302の設定の変更だけで対応ができる。よって、開発を簡略化し、工数を削減できる。
 本発明の一態様の概要は以下のとおりである。
 本発明の一態様であるバス制御装置は、第1ノード、複数の第2ノード、および複数の中継装置が、集積回路上に構築されたパケット交換方式のバスによって接続されたバスシステムにおいて、前記第1ノードと前記複数の第2ノードの各々との間で送受信されるデータの伝送経路上に設けられるバス制御装置であって、第1ノードから各第2ノードへ送信されたデータの送信順序を記憶する順序記憶部と、前記各第2ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定する振分部と、振り分けられた前記データを、前記データの送信元である前記第2ノードごとに区別して格納するバッファ部と、前記各第2ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信する接続制御部とを備えている。
 たとえば前記入替可否情報が全て否である場合には、入替可否情報を参照せず、全てのデータに対し前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信する。
 たとえば前記第1ノードは複数のバス・インターフェイスを備えており、前記接続制御部は、データごとに、前記データの送信先となるバス・インターフェイスを特定するインターフェイス情報を参照して、前記バッファ部から前記バス・インターフェイスへ前記データを送信する。
 たとえば前記インターフェイス情報は、前記集積回路において実行されるアプリケーション、および前記第2ノードの種別の少なくとも一方に応じて、データごとに、前記データの送信先となるバス・インターフェイスを特定する。
 たとえば前記入替可否情報は、前記集積回路において実行されるアプリケーション、および前記第2ノードの種別の少なくとも一方に応じて決定されている。
 たとえば前記振分部は、予め定められた振分規則を参照して、データの順序の入れ替わりの許容の可否をさらに区別して、前記データの振り分け先を決定し、前記バッファ部は、振り分けられた前記データを、前記データの順序の入れ替わりの許容の可否をさらに区別して格納する。
 たとえば前記振分部は、予め定められた振分規則を参照して、データの伝送経路をさらに区別して、前記データの振り分け先を決定し、前記バッファ部は、振り分けられた前記データを、前記データの伝送経路をさらに区別して格納する。
 たとえば前記振分部は、前記データのサイズに応じて前記バッファ部へのデータの分類方法を変更する。
 たとえば前記第1ノード、および前記第2ノードは、バスマスタ、メモリ、入出力機器のいずれかである。
 本発明の他の一実施形態にかかる中継装置は、第1ノード、および複数の第2ノードが、集積回路上に構築されたパケット交換方式のバスによって接続されたバスシステムにおいて、前記第1ノードと前記複数の第2ノードの各々との間で送受信されるデータを中継する中継装置であって、バスから受信したデータを格納する中継バッファと、前記中継バッファに格納されていた前記データを前記複数の第2ノードのいずれかに送信する中継制御部と、各第2ノードへ送信された前記データの送信順序を記憶する順序記憶部と、前記各第2ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定する振分部と、振り分けられた前記データを、前記データの送信元である前記各第2ノードに区別して格納するバッファ部と、前記各第2ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する接続制御部と、前記接続制御部の制御にしたがって、前記データを前記バスに出力する送信制御部とを備えている。
 たとえば前記振分部は、予め定められた振分規則を参照して、前記第1ノードおよび前記第2ノードを区別して前記データの振り分け先を決定し、前記バッファ部は、振り分けられた前記データを、前記データの送信元である前記各第2ノードに、および前記第1ノードごとに区別して格納する。
 たとえば前記入替可否情報は、前記集積回路において実行されるアプリケーション、および前記第2ノードの種別の少なくとも一方に応じて決定されている。
 たとえば前記振分部は、予め定められた振分規則を参照して、データの順序の入れ替わりの許容の可否をさらに区別して、前記データの振り分け先を決定し、前記バッファ部は、振り分けられた前記データを、前記データの順序の入れ替わりの許容の可否をさらに区別して格納する。
 たとえば前記振分部は、予め定められた振分規則を参照して、データの伝送経路をさらに区別して、前記データの振り分け先を決定し、前記バッファ部は、振り分けられた前記データを、前記データの伝送経路をさらに区別して格納する。
 たとえば前記振分部は、予め定められた振分規則を参照して、前記第2ノードを区別して振り分け先を決定する方法と、前記第2ノードおよび前記第1ノードの両方を区別して振り分け先を決定する方法とを選択可能である。
 たとえば前記振分部は、前記データのサイズに応じて前記バッファ部へのデータの分類方法を変更する。
 たとえば前記第1ノード、および前記第2ノードは、バスマスタ、メモリ、入出力機器のいずれかである。
 本発明のさらに他の一実施形態であるバスシステムは、集積回路上に構築されたパケット交換方式のバスを有するバスシステムであって、第1ノードと、複数の第2ノードと、第1中継装置および第2中継装置を含む複数の中継装置と、前記第1ノードおよび前記第1中継装置の間で送受信されるデータの伝送経路上に設けられた第1バス制御装置と、前記複数の第2ノードおよび前記第2中継装置の間で送受信されるデータの伝送経路上に設けられた第2バス制御装置とを備え、前記複数の中継装置、前記第1バス制御装置、および前記第2バス制御装置のうちの少なくとも1つの装置は、バスから受信したデータを格納する中継バッファと、前記中継バッファに格納されていた前記データを前記複数の第2ノードのいずれかに送信する中継制御部と、各第2ノードへ送信された前記データの送信順序を記憶する順序記憶部と、前記各第2ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定する振分部と、振り分けられた前記データを、前記データの送信元である前記各第2ノードに区別して格納するバッファ部と、前記各第2ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する接続制御部と、前記接続制御部の制御にしたがって、前記データを前記バスに出力する送信制御部とを有している。
 たとえば前記複数の中継装置は、ローカルバスおよびシステムバスを接続するバス間中継装置をさらに含み、前記ローカルバスは、前記第1制御装置、および前記第1中継装置を含み、前記システムバスは、前記第2中継装置を含み、前記少なくとも1つの装置に設けられた前記接続制御部は、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する。
 たとえばバスシステムは、第3中継装置と、複数の第3ノードと、前記複数の第3ノードおよび前記第3中継装置の間で送受信されるデータの伝送経路上に設けられた第3バス制御装置とをさらに備え、前記少なくとも1つの装置において、前記中継制御部は、前記中継バッファに格納されていた前記データを前記複数の第3ノードのいずれかにもさらに送信し、前記順序記憶部は、各第3ノードへ送信された前記データの送信順序をさらに記憶し、前記振分部は、前記各第2ノードおよび前記各第3ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定し、前記バッファ部は、振り分けられた前記データを、前記データの送信元である前記各第2ノードおよび各第3ノードに区別して格納し、前記接続制御部は、前記各第2ノードおよび前記各第3ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する。
 たとえば前記第3バス制御装置は、バスから受信したデータを格納する中継バッファと、前記中継バッファに格納されていた前記データを前記複数の第3ノードのいずれかに送信する中継制御部と、各第3ノードへ送信された前記データの送信順序を記憶する順序記憶部と、前記各第3ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定する振分部と、振り分けられた前記データを、前記データの送信元である前記各第3ノードに区別して格納するバッファ部と、前記各第3ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する接続制御部と、前記接続制御部の制御にしたがって、前記データを前記バスに出力する送信制御部とを有しており、前記第3バス制御装置において、前記接続制御部は、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する。
 以下では、本開示の各実施形態の説明に先立って、まず、本開示にかかる半導体集積回路を説明する。
 図3は、本開示にかかる半導体集積回路上に構築されたバスシステム100aの構成例を示す。バスシステム100aには、複数のバスマスタと複数のメモリが接続されている。複数のバスマスタは、入出力のアクセスのビット幅や通信のプロトコルが異なっている。なお、図3においては、上述したバス・インターフェイスの記載は、簡略化のため省略されている。後述する図4でも同様である。
 各バスマスタは、上述したバス制御装置およびネットワーク・インタフェイス・コントローラ(Network Interface Controller;以下「NIC」と記述する場合がある。)を介してシステムバス110に接続される。NICは、バスマスタが送信したデータを中継装置へ送信するために、データをパケットに変換するパケット化の処理、および中継装置から受信したパケットからデータを抽出するデパケット化の処理を行う回路である。なお、デパケット化の処理に当たっては、データをバスマスタへ送信するためのバスプロトコルの変換処理も行う。
 図3におけるバス制御装置の構成例は、図5を参照しながら後述する。
 また図4は、本開示にかかる半導体集積回路上に構築されたバスシステム100bの構成例を示す。この例では、バス制御装置はNIC内に組み込まれている。図4におけるバス制御装置の構成例は、図15を参照しながら後述する。
 図3および図4において、システムバス110上を伝送されるデータは、システムバス110に設けられた1以上の中継装置によって中継される。中継装置は、パケット化されたデータを宛先のノードへと転送する回路である。これにより、各バスマスタは、バス制御装置、NICおよびネットワーク化されたシステムバス110を介して複数のメモリと接続され、データを送受信することが可能となる。
 図3および図4とはさらに異なる構成例も考えられる。たとえば、ローカルバスとシステムバスとを接続する1または複数の中継装置のいずれかに、上述したバス制御装置が組み込まれてもよい。なお、ローカルバスとは、半導体集積回路上の一部の領域において物理的な距離が近いバスマスタとシステムバスを接続するバスであり、システムバスとは異なるバス幅や動作周波数で動作する。その構成例は、後に図22を参照しながら説明する。
 図3および図4では中継装置をリング状に接続したシステムバス110の構成を示しているが、これは一例であり、半導体集積回路はリング状に接続された構成に限定されない。たとえば、中継装置を格子状に配置したメッシュ型や、中継装置を多段に接続した階層型などその他の構成を採用してもよい。また、図3および図4では、複数のバスマスタが複数の共有メモリに接続する例を示したが、バスマスタの接続先は共有メモリに限定されない。たとえば、バスマスタは、外部回路(図示せず)との入出力機器I/O(Input/Output)と接続されてもよい。
 図3および図4において、ネットワーク化されたシステムバス110を含む半導体集積回路110aおよび110bを示した。このような、複数のバスマスタがネットワーク化したバスにより接続された構成は、ネットワーク・オン・チップ(Network on chip;NoC)と呼ばれる。なお、バスマスタとメモリが直接接続された半導体集積回路であってもよい。
 図5は、本開示のバス制御装置401aの基本的な構成を示す。このバス制御装置401aは、図3に示されるバス制御装置に対応する。図5では、パケット交換方式において必要な機能(パケット化とデパケット化)の記載は簡略化のため省略している。なお、図4に記載の、半導体集積回路上に構築されたバスシステム100bでは、NICが、バス制御装置の構成に加え、パケット交換方式に必要なパケット化とデパケット化を実現する構成を備える。NICの構成については、後に図15を参照しながら説明する。図3のシステムバス110aはパケット交換方式でデータを授受する。しかしながら、パケット交換方式を用いず、回線交換方式でデータを授受する場合であっても、図5に示す構成を利用することができる。
 バス制御装置401aは、データの送信/受信を行う第1ノードと、当該データの受信/送信を行う複数の第2ノードとを接続する装置である。第1ノードと第2ノードとして、バスマスタ、メモリ、入出力機器I/Oなどが利用される。図5では、バス制御装置401aは、バスマスタ402と接続され、さらにシステムバス110上に存在する複数のメモリとデータの授受を行う。
 以下の実施形態の説明では、バスマスタ402を第1ノードとし、メモリ403を第2ノードとする。また、以下の説明において「データの送信」は、バスマスタ402からメモリ403に対し、1回のアドレス指定で送受信されるリードやライトのアクセスによって行われるとする。
 バスマスタ402は、送信用バス・インターフェイス404および受信用バス・インターフェイス405を介してバス制御装置401aと接続されている。
 バス制御装置401aは、送信制御部406、入替可否情報記憶部407、順序記憶部408、メモリ毎に用意されたバッファ部409、接続制御部410、IF情報記憶部411、振分規則記憶部412、振分部413を備えている。
 送信用バス・インターフェイス404は、バスマスタ402からバス制御装置401aへデータやコマンドの送信を制御する回路である。受信用バス・インターフェイス405は、バス制御装置401aから、バスマスタ402へデータやコマンドの受信を制御する回路である。
 送信制御部406は、バスマスタ402からのデータをメモリ403へ送信する回路である。
 入替可否情報記憶部407は、入替可否情報を記憶する記憶装置(たとえばSRAM)である。入替可否情報とは、一連の処理に関連するデータの集まり(トランザクション)をバスマスタが送信した場合に、伝送路上でのデータの順序の入れ替りをバスマスタで許容可能かどうかを示す情報である。
 なお、伝送路上でのデータの順序の入れ替りとは、バスマスタからメモリや入出力機器I/O(Input/Output)へ送信したコマンドの発行順序と、メモリや入出力機器I/Oからバスマスタへのデータの応答の順序が入れ替わることを意味する。
 また、このような順序の入れ替わりは、バスマスタが複数のメモリや入出力機器I/Oに対してデータの送受信を行う場合に発生する。その具体例として、たとえば、遅延に対する要求が厳しい動画再生に関与するバスマスタでは、単一メモリとの送受信だけでは必要な伝送帯域が不足する場合、複数メモリに対して並列にアクセスを行うことで伝送帯域の不足を解消、低遅延伝送を実現することができる。
 また、別の例として、CG(Computer Graphics)を描画するグラフィックス・エンジンでは、単一のメモリでは伝送帯域が不足する場合に、複数のメモリに処理を負荷分散させることで、性能を出すことができる。
 また、同じバスマスタであっても、アプリケーションやユースケース(例えば動画再生やCGにおける解像度や画質など)の違いによって、単一メモリだけでは伝送帯域が不足し、複数のメモリとアクセスが必要となる。
 このように、入替可否情報は、バスマスタの種別毎に設けられてもよいし、集積回路において実行されるアプリケーションやユースケースの種別毎に設けられてもよい。
 順序記憶部408は、バスマスタ402からメモリ403へ送信したデータの順序の情報を記憶する記憶装置(たとえばSRAM)である。
 バッファ部409は、各メモリ403から送信されたデータを、送信元であるメモリごとに区別して格納する記憶装置(たとえばSRAM)である。バッファ部409は、複数の部分バッファを含む。図5には、部分バッファである第1バッファ~第nバッファが例示されている。なお、メモリ403を区別してデータを格納できる構成であれば、バッファ部409は、物理的に複数の部分バッファに分かれていてもよいし、論理的に分かれていてもよい。以下では、特に部分バッファを明示する必要がない限り、総括的に「バッファ部409」と呼ぶこととする。
 IF情報記憶部411は、バスマスタ内で一連の処理に関連するデータの集まり(トランザクション)毎に、データをバスマスタ402へ送信する際に利用するバス・インターフェイスの情報を記憶するメモリである。
 接続制御部410は、バス・インターフェイス毎に、データの送信先となるバッファ部409を決定する回路である。バッファ部409の決定に際し、接続制御部410は、バッファ部409に格納されたデータに対し、順序記憶部408で記録されるデータの順序情報、入替可否情報記憶部407に記憶される順序の入替を許容できるデータであるかの可否情報、IF情報記憶部に記録されるバスマスタ402へ送信する際に利用するバス・インターフェイス情報を参照する。
 振分規則記憶部412は、メモリ403から送信されたパケットとバッファ部409の格納先との対応関係を定義した振分規則を記憶したメモリである。
 振分部413は、振分規則記憶部412に記録された振分規則に基づいて、データをバッファ部409に格納する回路である。データをバッファ部409に格納する際、振分部413は、そのデータがどのメモリから送信されたかを識別し、対応するバッファに格納する。
 なお、バスマスタ402は、バス制御装置401aに対して、データと一緒にアプリケーションやバスマスタの種別毎に関連して処理されるデータの集まりを識別するためのトランザクションIDもバス制御装置に通知する。
 図6は、入替可否情報記憶部407に記憶される入替可否情報の一例を示す。入替可否情報では、アプリケーションやバスマスタの種別毎に一連の処理に関連するデータの集まり(トランザクション)を識別するためのトランザクションIDと、そのトランザクションに属するデータで順序の入れ替わりを許容できるかどうかの可否が記録される。
 図6の例では、トランザクションIDが0番とN番で識別されるデータは、伝送路上での順序の入れ替りをバスマスタ402で許容できないデータである。よって、それぞれのトランザクションIDに対して、順序の入れ替わりが「否」と記録される。一方、トランザクションIDが1番と2番で識別されるデータは、伝送路上での順序の入れ替りをバスマスタ402で許容できるデータであり、トランザクションIDに対して、順序の入れ替わりが「可」と記録される。
 なお、「否」、「可」という表現は一例に過ぎない。それぞれが識別可能であれば、たとえば0または1で表現されてもよい。順序の入れ替わりを認めるか、認めないかを表現可能な情報であればよい。
 また、入替可否情報について、図6の例では、トランザクションIDに対して可否を記録する例を示したが、データの応答を返したスレーブ(メモリや入出力機器I/O)毎に、その利用形態に基づき入替の可否を定義しても良い。例えば図7では、バスマスタが常に単一で利用するメモリ1及びメモリmからの応答データに対しては入替が許容し、常に他のスレーブと同時に利用されるメモリ(メモリ1とメモリ3の組合せ、メモリ2とメモリ4の組合せ)からの応答データに対しては、データの入替が許容しないように入替可否情報を定義しても良い。
 図8は、順序記憶部408で記憶される順序情報の一例を示す。
 順序情報は、図8に示すように、バスマスタ402がメモリにデータを送信した順序でそのデータを識別するデータIDと、そのデータが属するトランザクションを識別するトランザクションIDとを含む。
 なお、データIDは送信制御部406により、データを送信する際に付与される。またトランザクションIDは、バスマスタ402で管理し、データの送信と同時にバス制御装置401aへ通知される。
 図8の例では、データが送信された順番にバスマスタ402から送信されたデータに付与したデータIDと、バスマスタから通知されたトランザクションIDとが、順序記憶部408に記憶される。
 図9は、IF情報記憶部411で記憶されるIF情報の一例を示す。
 IF情報は、トランザクションを特定するトランザクションIDと、トランザクション毎に、データをバスマスタ402へ送信する際に利用するバス・インターフェイスの識別番号とを含む。
 図9の例では、アプリケーションやバスマスタの種別毎に一連の処理に関連するデータの集まりを識別するトランザクションIDとバス・インターフェイスのIDの対応関係が記録される。
 図10は、振分規則記憶部412に記憶される振分規則の例を示す。振分規則は、データを送信したメモリを識別するメモリIDとバッファ部409の格納先との対応関係を定義している。メモリIDは、パケットのヘッダ情報部に記載されている値を参照することで取得できる。図11は、バスマスタ402から複数のメモリ403に対してデータを送信する場合のバス制御装置401aの動作手順を示す。
 図11では、バスマスタ402から送信されたデータの順序を、情報記憶部408が管理する例を説明する。
 ステップ701において、バス制御装置401aの送信制御部407は、バスマスタ402からデータの送信があるかどうかを判定する。データの送信がある場合にはステップ702に移る。データの送信がない場合にはステップ701を繰り返す。
 ステップ702において、送信制御部406は、バスマスタ402から送信されたデータに対し、各データを識別するためのデータIDを付与する。
 ステップ703において、送信制御部407は、データに付与したデータIDとバスマスタ402から通知されたトランザクションIDを、データを送信した順番に順序記憶部408に記録する。
 ステップ704において、送信制御部407は、データを宛先のメモリ403へ送信する。
 以上のステップを繰り返すことにより、バス制御装置401aは、バスマスタ402から送信されるデータに対し、データを識別するデータIDを付与し、データの送信順序をトランザクションIDと一緒に記憶することが可能である。
 図12は、バス制御装置401aが、複数のメモリ403からデータを受信した場合の動作手順の概要を示す。
 ステップ801において、振分部413は、振分規則記憶部412に記憶される振分規則に基づき、メモリ403から送信されたデータを、メモリ403毎に区別してバッファ部409の部分バッファに格納する。
 ステップ801を詳細に説明すると、以下の通りである。すなわち振分部413は、メモリ403から送信されたパケットに格納されていたデータとともに、そのヘッダ情報を受け取る。そして振分部413は、ヘッダ情報を参照し、パケットを送信したメモリIDを特定する。次に振分部413は、順序記憶部408の順序情報(図8)を参照し、パケットのヘッダ情報に記載されたデータIDから、トランザクションIDを特定する。
 振分部413は、入替可否情報記憶部407の入替可否情報(図6または図7)を参照し、トランザクションIDから、パケットが伝送路上で順序の入れ替わりを許容できるかどうかの可否を特定する。振分部413は、振分規則記憶部412の振分規則(図10)を参照し、パケットを送信したメモリのIDと伝送路上での順序の入れ替わりの可否に基づいて、パケットの格納先となるバッファ部409の部分バッファを特定する。これにより、振分部413は、メモリ403から送信されたパケットをバッファ部409bの部分バッファに格納することができる。
 ステップ802において、接続制御部410は、バスマスタ402のバス・インターフェイス毎に、データ毎の順序入替の可否に応じて、データを送信するバッファ部409の部分バッファを順次決定する。具体的には、接続制御部410は、入替可否情報記憶部407の入替可否情報(図6または図7)を参照し、順序入替が許容出来ないデータに対して、バスマスタ402からメモリ403へ送信された順序と同じ順序で、バッファ部409の部分バッファに格納されているデータがバスマスタ402へ送信されるよう、部分バッファを順次決定する。また、順序入替が許容できるデータに対しては、部分バッファに格納された順序でデータを送信する。
 接続制御部410の詳細動作については、図13を参照しながら後に説明する。
 なお、バスマスタの種別や、アプリケーション、ユースケースの種別によって、予め全てのデータで入れ替わりを許容できないことが確定している場合がある。つまり、入替可否情報において、順序の入れ替りが全て否とされている場合がある。そのような場合には、ステップ801における振分部413による入替可否情報の参照、及びステップ803における接続制御部410による入替可否情報の参照を省略しても良い。
 ステップ803において、接続制御部410は、バス・インターフェイス毎に決定されたバッファ部409からバスマスタ402へデータを送信する。
 以上のステップを繰り返すことにより、複数のメモリ403からバスマスタ402へデータを送信する。
 なお、図12の説明では、振分規則記憶部412に記憶される振分規則に基づき、メモリ403から送信されたデータを、メモリ403毎に区別してバッファ部409の部分バッファに格納する方法を説明した。これ以外の方法として、予め応答データのヘッダ情報にバッファ部409の格納先の部分バッファを記載しておき、振分部413は、ヘッダ情報に記載された格納先に基づき、応答データをバッファ部409に格納しても良い。ヘッダ情報にバッファ部409の格納先の部分バッファを記載する方法として、たとえばバスマスタ402からメモリ403へデータを送信する際に、パケット化部1101により、振分規則記憶部412に記載されている格納先の情報を、ヘッダ情報に記載し、さらに、その格納先の情報を、メモリ403において、バスマスタ402への応答データのヘッダ情報に記載する、という方法が考えられる。
 図13は、接続制御部410の動作手順を示す。メモリ403から送信された順序入替を許容できないデータを、バスマスタ402からメモリ403へ送信された順序と同じ順序でバスマスタ402へ送信するために、接続制御部410は、バス・インターフェイス毎に、バッファ部からバスマスタ402へ送信するデータを決定する。接続制御部410は、メモリ403毎に区別されたバッファ部409に対して、以下のステップ901からステップ907を実行する。
 ステップ901において、接続制御部410は、バッファ部409にデータが格納されているかどうかを判定する。データが格納されている場合にはステップ902に移る。データが格納されていない場合には、他のメモリ403のバッファ部409の処理に移る。
 ステップ902において、接続制御部410は、順序記憶部411を参照し、バッファ部に格納されたデータのデータIDからトランザクションIDを特定する。
 ステップ903において、接続制御部410は、入替可否情報記憶部407を参照し、対応するトランザクションIDから、伝送路上で順序の入れ替わりを許容できるデータであるかどうかを特定する。
 ステップ904において、接続制御部410は、伝送路上で順序のデータの入れ替わりを許容できるデータであるか否かを判定し、入れ替わりを許容できる場合には処理はステップ905に移る。伝送路上で順序の入れ替わりを許容できないデータである場合には処理はステップ906に移る。
 ステップ905において、接続制御部410はIF情報記憶部411を参照し、データのトランザクションIDから、バスマスタ402へデータを送信するためのバス・インターフェイスを特定する。
 ステップ906において、接続制御部410は、順序記憶部408を参照し、同じトランザクションIDを持つデータの中で、送信時刻が古く先にバスマスタ402へ送信すべきデータが存在するかどうかを確認する。このステップを実行する理由は、伝送路上でデータの入れ替わりが許容されないデータに対しては、バスマスタ402からメモリ403へのデータの送信の順序と同じ順序で、データをバスマスタ402へ送信することが必要だからである。
 ステップ907において、バスマスタ402へ先に送信すべきデータがない場合には、処理はステップ905に移る。先にバスマスタ402へ送信すべき他の応答データが存在する場合には、処理はステップ908に移る。
 ステップ908において、接続制御部410は、IF情報管理部411を参照し、バス・インターフェイス毎にデータを送信するバッファ部409の部分バッファを決定する。同じバス・インターフェイスを利用する部分バッファが複数存在する場合には、各部分バッファに格納されているデータIDを比較し、バスマスタ402から送信された順序(時刻)が最も古いデータを格納する部分バッファを選択する。
 なお、バス・インターフェイス毎に部分バッファを選択する方法としては、データIDの比較による送信時刻以外の方法を用いてもよい。例えば、データに優先度や締切時刻などの付加情報が付与されている場合には、優先度の大きいデータを選択したり、締切時刻の近いデータを選択したりしてもよい。
 ステップ909において、接続制御部410は、バッファ部409からバスマスタ402へ送信したデータのデータIDを、順序記憶部408から削除し、ステップ901に移る。
 以上、ステップ901からステップ909の動作を繰り返すことにより、接続制御部910は、バスマスタ402からメモリ403へ送信された順序と同じ順序でデータをバスマスタ402へ送信するために、バス・インターフェイス毎に、部分バッファからバスマスタ402へ送信するデータを決定する。
 図14は、バスマスタ301と複数のメモリ303とを接続する伝送路の少なくとも一部が共用される例を示す。図14には、経路1および2が示されている。経路1および2の一部は同じ中継装置および伝送路を利用している。図5のバス制御装置401aの構成では、バス制御装置401aと複数のメモリ403が直接接続される場合を例に説明を行ったが、図14に示すように伝送路がメモリ間で共用される構成であってもよい。
 図14では、伝送路をネットワーク化したNoCを利用して、バスマスタ301と複数のメモリ303とが接続される構成が示されている。NoCでは、バスマスタが送受信するデータはNIC1001でパケットに変換され、中継装置1002を介してパケット交換方式により宛先のメモリ303まで送信される。
 また、中継装置1002とメモリ303との間に設けられたNIC1003は、中継装置1002から受信したパケットをメモリ303へ送信する際、バスプロトコルの変換処理を行う。
 以下、NICの機能を有するバス制御装置を説明する。当該バス制御装置は、バスマスタとシステムバスとの間に設けられることになる。
 図15は、NICの機能を備えたバス制御装置401bの構成を示す。このバス制御装置401bは、図4に示されるバス制御装置に対応する。
 図5に示されるバス制御装置401aの構成要素と同等の機能を有する構成要素には、同じ参照符号を付与してその説明を省略する。ただし、機能が同等であっても、理解の便宜上、その構成要素を説明することがある。
 バッファ部409は、各メモリ403から送信されたデータを含むパケットを区別して格納する記憶装置(たとえばSRAM)である。バッファ部409は、複数の部分バッファを含む。図15には、部分バッファである第1バッファ~第nバッファが例示されている。なお、各メモリからのパケットを区別して格納できる構成であれば、バッファ部409は、物理的に複数の部分バッファに分かれていてもよいし、論理的に分かれていてもよい。
 パケット化部1101は、バスマスタ402から送信されるデータを、NoCへ送信するためにパケットに変換する回路である。なお、パケットは、データをNoC上で中継する際に必要となる情報であるヘッダ情報と、送信対象となるデータとを有する。ヘッダ情報には、パケットの送受信先となるバスマスタとメモリを識別するID(アドレス)、およびデータを識別するためのデータIDが付与される。
 デパケット化部1102は、NoCを介してメモリ403から送信されたパケットをバスマスタ402へ送信するデータに変換する回路である。
 図16(A)および(B)は振分規則記憶部412に記憶される振分規則の例を示す。なお振分規則記憶部412は、図16に示される例のほか、先に説明した図10に示す振分規則を記憶してもよい。
 なお、パケットを格納するバッファ部409の割り当ては、例えばメモリ403からの答パケットのデータサイズに応じて、1つのメモリに対してバッファ部409の割り当てを多く割り当ててもよい。また、複数のメモリで1つのバッファ部409を共有するように割り当てを行ってもよい。
 また、バスマスタで順序の入れ替わりを許容できるパケットは、順序の並び替えが不要であるため、順序の入れ替わりを許容できないパケットと区別してバッファ部に格納してもよい。
 図16(A)の振分規則では、メモリ403からのパケットを、メモリIDと伝送路上での順序の入れ替わりをバスマスタで許容できるかどうかの可否をさらに加味し、バッファ部409の格納先を定義している。
 図16(A)の振分規則を用いた場合、順序の入れ替わりを許容できるパケットを1つのバッファ部で扱うことができるため、バス制御装置401b内で必要なバッファ部409の数やサイズを削減し、実装面積と消費電力の削減することができる。
 図16(B)は、パケットの伝送経路を区別してバッファ部にパケット振分規則記憶部412に記録される振分規則の例を示す。
 NoCでは、図14に示すように、メモリ303からバスマスタ301への伝送路の経路を複数利用できるトポロジーを構築することができる。複数の経路を利用できる場合、異なる経路を介して並列にデータを送信することで、より広い伝送帯域を利用することができる。しかし、同じバスマスタ303から送信されたパケットであっても、異なる経路を経由してバスマスタ303に届く場合には、パケットの順序の入れ替わりが発生する場合がある。このため、伝送経路の違いによるパケットの順序の入れ替わりに対応するために、メモリIDの区別に加え、パケットが経由した経路を区別して、パケットをバッファ部に格納してもよい。
 図16(B)の振分規則では、メモリ403からのパケットを、メモリIDとパケットの伝送経路をさらに加味し、バッファ部409の格納先を定義している。
 なお、複数の経路を利用できるトポロジーでは、パケットがいずれの経路を利用するかを送信時にヘッダ情報に記載する必要がある。このため、バス制御装置401aは、パケットのヘッダ情報を参照することで、パケットが通った経路を特定できる。
 図17は、バスマスタ402からメモリ403へデータを送信する場合の、バス制御装置401bの動作手順を示す。
 図11に含まれる動作と同じ動作については、同じ符号を付与し説明を省略する。
 ステップ1301において、バス制御装置401bは、パケット化部1101によりバスマスタ402から送信されたデータに対し、NoC上での中継処理に必要な情報を含むヘッダ情報を付与し、データのパケット化を行う。
 ステップ1302において、バス制御装置401bは、パケット化部1101より、パケットをNoCへ送信する。
 以上のステップを繰り返すことにより、バス制御装置401bは、バスマスタ402から送信されるデータに対し、データを識別するデータIDを付与したパケットを送信し、さらにデータの送信順序をトランザクションIDと一緒に記録する。
 図18は、バス制御装置401bが、メモリ403から送信されたデータを受信した時の動作手順を示す。
 図12に含まれる動作と同じ動作については、同じ符号を付与し、説明を省略する。
 ステップ1401において、振分部413は、メモリ403から送信されたパケットをメモリ毎に区別してバッファ部409に格納する。振分部413の詳細な動作については、図19を用いて後に説明する。
 ステップ1402において、デパケット化部1102は、受信したパケットに含まれるデータをバスマスタ402へ送信するために、受信したパケットに含まれるデータを、バスマスタ402との間で利用されるバスプロトコルに変換する。
 以上、ステップ1401、802、1402、803を繰り返すことにより、メモリ403から送信されたパケットのデータがバスマスタ402へ送信される。
 図19は、振分部413の動作手順を示す。
 振分部413は、振分規則記憶部412に記憶される振分規則(図10、図16)に基づき、メモリ403から送信されたパケットを対応するバッファ部409の部分バッファに格納する。
 ステップ1501において、振分部413は、メモリ403から送信されたパケットのヘッダ情報または順序記憶部408が記憶する順序情報を参照し、パケットを送信したメモリのID(メモリID)を特定する。パケットのヘッダ情報を利用する場合には、たとえば図10の振分規則を利用できる。順序情報は、トランザクションIDを特定するために利用される。トランザクションIDが特定されると、どのメモリとの間でデータが授受されているかを特定することが可能である。ステップ1502において、振分部413は、順序記憶部408を参照し、パケットのヘッダ情報に記載されたデータIDから、トランザクションIDを特定する。
 ステップ1503において、振分部413は、入替可否情報記憶部407を参照し、トランザクションIDから、パケットが伝送路上で順序の入れ替わりを許容できるかどうかの可否を特定する。
 ステップ1504において、振分部413は、振分規則記憶部412を参照し、パケットを送信したメモリのIDと伝送路上での順序の入れ替わりの可否に基づいて、パケットの格納先となるバッファ部409の部分バッファを特定する。
 ステップ1505において、振分部1105は、メモリ403から送信されたパケットをバッファ部409格納する。
 以上、ステップ1501からステップ1505を実行することにより、バスマスタ402で順序の入れ替わりが許容されないパケットを、メモリ毎に区別してバッファ部409に格納できる。
 なお、本実施形態では、バスマスタ402からメモリ403へ送信されたデータの順序を、順序記憶部408で記録し、順序記憶部408に記録された順序に基づいて、接続制御部410が、バスマスタ402へデータを送信するバッファを選択する例を説明した。しかしながら、データIDがトランザクション毎に連続する番号で管理される場合には、送信したデータのデータIDをバス制御装置401b内では管理せず、トランザクション毎にメモリ403からバスマスタ402へ送信が完了したデータIDの番号Xを管理し、この番号Xに基づき次にバスマスタ402へ送信するデータ(IDの番号X+1)を特定してもよい。
 図20は、メモリ403からバスマスタ402へ送信が完了したデータのデータIDをトランザクション毎に記録した順序情報の例を示す。
 図20の順序情報を利用する場合、接続制御部410は、順序管理情報408を参照し、トランザクションID毎に、送信が完了したデータIDの次の番号を付与されたデータIDのデータを選択することで、バスマスタ402へ送信するデータを選択する。
 また、接続制御部410は、バスマスタ402へデータを送信すると、順序記憶部408で記録されるデータIDを、最後に送信したデータのIDに更新する。
 また、トランザクションIDは、パケットのヘッダ情報に記載し、一緒に送信され、IF情報記憶部411、入替可否情報記憶部407、振分部413は、パケットに記載されたトランザクションIDから、それぞれ必要な情報を取得する。
 これまでは、バス制御装置401a、および401bが、バスマスタ402と隣接して設けられる例を説明した。しかしながら、バス制御装置は、伝送路上で複数のメモリからのデータが中継される中継装置にその一部として設けられてもよい。
 図21は、ローカルバスを介して接続された複数のバスマスタ301が、システムバスを介して接続された複数のメモリ303と通信を行う構成を示している。図14と同じ構成については、同じ番号を付与し説明を省略する。この例では、ローカルバスの伝送帯域は相対的に狭く、その伝送速度は相対的に低速である。一方、システムバスでは、伝送帯域は相対的に広く、伝送速度は相対的に高速である。
 以下、ローカルバスとシステムバスとを接続する中継装置1601内に、バス制御装置401を構築する例を説明する。
 図22は、本開示によるバス制御装置の機能を備えた中継装置1601の構成を示す。
 中継装置1601は、図5に示されるバス制御装置401a、および/または図15に示されるバス制御装置401bの構成要素と同等の機能を有する構成要素を備えている。それらには、同じ参照符号を付与してその説明を省略する。
 中継装置1601の接続制御部410は、ローカルバスとシステムバスの双方に関して接続を切り替えることが可能である。例えば、バスマスタと同じローカルネットワーク内にメモリが存在し、バスマスタが、システムバスを介して接続されるメモリと、同じローカルネットワーク内のメモリの双方にアクセスする場合、接続制御部410はバスの接続を切り替えることにより、システムバスを介して接続するメモリからの応答データに関しては、システムバスからローカルバスへ送信することが可能であり、また、ローカルバス内に存在するメモリから送信される応答データに関しては、ローカルバスからローカルバスへと直接送信することが可能である。
 中継バッファ1701は、ローカルバスから送信されたパケットを格納する記憶装置(たとえばSRAM)である。
 中継制御部1702は、バッファ部409に格納されるシステムバスから受信したパケット、及びバッファ部1702に格納されるローカルバスから受信したパケットに対し、それぞれの宛先へと向かう出力ポートを決定する回路である。
 また、中継装置1601の接続制御部410は、バッファ部409とバッファ部1701のいずれかに格納され、出力ポートが同じ複数のパケットの集合毎に、パケットの送信順序を決定する。
 システムバス用送信制御部1703は、システムバスのバス幅や動作周波数に合わせてパケットを送信する回路である。ローカルバス用送信制御部1704は、ローカルバスのバス幅や動作周波数に合わせてパケットを送信する回路である。
 なお、バッファ部409、及びバッファ部1701は、中継装置がパケットの経路制御を行う際に、パケットを格納するバッファの一部を利用して実現されてもよい。また、システムバスからローカルバスに対してパケットを送信する場合、バスの速度差を吸収するためにメモリ403から送信されるパケットを全て格納できる容量の大きな速度差吸収バッファが利用される。このため、速度差吸収バッファの記憶領域の一部をバッファ部409として利用してもよい。
 図23(A)および(B)は、中継装置1601の振分規則記憶部1102が記憶している振分規則の例を示している。
 中継装置1601では、複数のバスマスタ402と複数のメモリ403の間でデータを送受信する。そのため、振分規則制御部1102が記憶する振分規則もまた、メモリIDに加え、バスマスタを識別するIDが加味されている。
 図23(A)は、メモリとバスマスタとに基づく振分規則の一例を示す。すなわち図23(A)の振分規則では、パケットを送信したメモリIDとパケットの宛先となるバスマスタIDの組合せに対し、バッファ部409の格納先の対応関係を定義している。また、バスマスタが順序の入れ替わりを許容できるパケットに関しては順序の並び替えが不要であるため、順序の入れ替わりを許容できないパケットと区別してバッファ部409に格納してもよい。
 図23(B)は、パケットの種別を加味した振分規則の一例を示す。図23(B)の振分規則では、応答パケットを送信したメモリIDと宛先となるバスマスタIDの組合せに加え、経路上でパケットの順序の入れ替わりを許容できるデータであるかどうかの可否を加味し、バッファ部409の格納先を定義している。
 なお、振分規則として、図23(A)および(B)に示した振分規則以外にも、メモリID、バスマスタID、順序の入れ替わりを許容できるかどうかの可否情報のいずれかの少なくとも1つの条件に対し、バッファ部409の格納先を定義したものを用いてもよい。
 図24は、ローカルバスからシステムバスへのデータ送信時の中継装置1601の動作を示す。例として、図21に示すバスマスタ301から複数のメモリ303に対してパケットを伝送する際の中継装置1601の動作を説明する。
 図11、および/または図17に含まれる動作と同じ動作については同じ符号を付与し、説明を省略する。
 ステップ1901において、中継装置1601の中継バッファ1701は、受信したパケットを格納する。
 ステップ1902において、中継装置1601の中継制御部1702は、パケットのヘッダを参照して、当該ヘッダに記載された宛先のID(アドレス)に基づき、パケットの宛先となるメモリやバスマスタへ向かう出力ポートを決定する。
 ステップ1903において、送信制御部1703は、パケットに記載されたデータIDおよびトランザクションIDを順番に順序記憶部408に記録する。
 なお、トランザクションIDはバスマスタ402によって付与され、データIDはNIC1001によってパケットのヘッダ情報に付与される。トランザクションIDおよびデータIDは、それぞれNICでパケットのヘッダ情報に記載される。
 ステップ1904において、システムバス用送信制御部1703は、システムバスのバス幅やバス動作速度に合わせてパケットを送信する。
 以上のステップを繰り返すことにより、中継装置1601の順序記憶部408は、バスマスタ402から複数のメモリ403へ送信されたパケットの順にデータIDおよびトランザクションIDを蓄積する。
 図25は、中継装置1601が、複数のメモリ403から送信されたデータを受信した際の動作手順の概要を示す。
 ステップ2001において、振分部413は、メモリ403から送信されたパケットを振分規則記憶部412に記録されている振分規則413に基づいて、バッファ部409に格納する。なお、中継装置1601における振分部413の詳細な動作については図26を用いて後に説明する。
 ステップ2002において、中継制御部1702は、応答パケットを宛先となるバスマスタへ届けるための送信先に接続される出力ポートを決定する。
 ステップ2003において、パケットの送信先がローカルバスか、またはシステムバスかを判定する。送信先がローカルバスの場合はステップ2004に移る。送信先がシステムバスの場合はステップ2006に移る。
 ステップ2004において、接続制御部410は、パケットの送信順序を決定する。具体的には、接続制御部410は、出力ポート毎にローカルバスにパケットを送信するバッファ部409を決定する。パケットを送信するバッファ部409の決定方法は、図13で説明した動作と同様である。
 ステップ2005において、ローカルバス用送信制御部1704は、ローカルバスのバス幅やバス動作速度に合わせてパケットをローカルバスに送信する。処理は再びステップ2001に戻る。
 ステップ2006において、システムバス用送信制御部1704は、システムバスのバス幅やバス動作速度に合わせてパケットを送信する。処理は再び、ステップ2001に戻る。
 以上のステップを繰り返すことにより、出力ポート毎にバスマスタ402からメモリ403へ送信した順序で、メモリ403からのデータをバスマスタ402へ送信できる。
 図26は、中継装置1601の振分部413がバッファ部にパケットを格納する際に行う動作手順を示す。この動作手順は、振分部413が、振分規則記憶部412に記憶される振分規則に基づき、メモリ403から送信されたパケットを対応するバッファ部409に格納する処理の詳細である。
 ステップ2101において、振分部413は、メモリ403から送信されたパケットに記載されたヘッダ情報を参照し、パケットを送信したメモリIDとパケットの宛先となるバスマスタIDを特定する。
 ステップ2102において、振分部413は、順序記憶部408を参照し、パケットのデータIDからトランザクションIDを特定する。
 ステップ2103において、振分部413は、入替可否情報記憶部407を参照し、トランザクションIDから、伝送路上で順序の入れ替わりを許容できるパケットであるかどうかの可否を特定する。
 ステップ2104において、振分部413は、振分規則記憶部412を参照し、特定したメモリのIDとバスマスタID、伝送路上での順序の入れ替わりの有無に基づいて、パケットの格納先となるバッファ部409の部分バッファを特定する。
 ステップ2105において、振分部1105は、メモリ403から送信されたパケットをバッファ部409に格納する。
 以上のステップを実行することにより、パケットのデータを送信したメモリIDとパケットの送信先であるバスマスタIDと、伝送路上での順序の入れ替わりを許容できるパケットかどうかの可否情報に基づき、複数のメモリ403から送信されたパケットを区別してバッファ部409に格納することができる。
 なお、入替可否情報記憶部407、IF情報記憶部411、振分部413のそれぞれで記憶される情報については、予め複数の情報を記憶しておき、バスマスタ402の起動時や、アプリケーションやユースケースの変更時において、バスマスタからの制御信号によっていずれの情報を利用するかを選択してもよい。
 また、バスマスタから直接、入替可否情報記憶部407、IF情報記憶部411、振分部413のそれぞれで記憶される情報の内容を変更してもよい。
 例えば、中継装置1601の振分部413は、図16(A)に示したメモリIDだけに基づく振分規則と、図23(A)に示すメモリIDとバスマスタIDの両方に基づく振分規則を記憶しておき、ローカルバス内で、1個のバスマスタがデータを送信している場合には、図16(A)に示した振分規則を利用し、ユースケースの変更により複数のバスマスタがデータを送信している場合には図23(A)の振分規則を利用してもよい。これにより、ユースケースに合わせてバッファ部409の利用効率を改善できる。
 なお、図22の中継装置1601の実施形態の説明では、システムバスからローカスバスへ送信されるパケットに対して、接続制御部410が、ローカルバスへの出力ポートの接続を選択するとした。しかしながらこれは一例である。ローカルバスからシステムバスへ送信されるパケットに対して、接続制御部410が、システムバスへの出力ポートの接続を選択してもよい。また、システムバスとローカルバスの両方からローカルバスへ送信されるパケットに対し、接続制御部410が、ローカルバスへの出力ポートの接続を選択してもよい。また、ローカルバスとシステムバスの両方からシステムバスへ送信されるパケットに対し、接続制御部410が、システムバスへの出力ポートの接続を選択してもよい。
 また、図14および図21の構成では、メモリからの応答データの順序の入替えを経路上の一箇所で行う場合について説明したが、半導体集積回路上のバスの複数の要素が順序の入替えを分散して(独立して)行っても良い。また、図14および図21では、説明を簡略化するために、スレーブと接続するNIC1003にメモリ303が1個ずつ接続される構成を用いて説明を行ったが、1個には限られない。
 図27は、複数の要素においてメモリからの応答データの順序の入替えを行うことが可能なバスシステム100cの構成を示す。なお、図14および図21と同じ構成については、同じ番号を付与し説明を省略する。
 さらに図27のバスシステム100cは、スレーブと接続するNIC1003に対し、複数のメモリ303が接続される構成を示している。図27のNIC1003は、メモリコントローラ2601を介して、複数のメモリ303とデータの送受信を行う。メモリコントローラ2601は、メモリ303の対しデータの読み書きなどの制御を行う回路である。なお、図14および図21ではメモリコントローラ2601は省略されている。
 図27において、往路のシステムバス上で応答データの順序に入替りが発生しない場合を考える。このとき、NIC1003内のバス制御装置、またはNIC1003に接続された中継装置2602は、共通のメモリコントローラ2601により制御される複数のメモリ303の応答データの順序を、先行して並び替えることができる。「先行して」とは、図27におけるローカルバスでの並び替えに先行して、という意味である。つまり、本実施形態においては、NIC1003内のバス制御装置、または、NIC1003およびシステムバスに接続された中継装置2602のいずれかが、共通のメモリコントローラ2601により制御される複数のメモリからの応答データを並び替えてシステムバスに流す。異なるメモリコントローラにより制御される複数のメモリからの応答データがシステムバスからローカルバスに到達したときには、バスマスタに接続するNIC1001、ローカルバスの中継装置1002、及びシステムバスとローカルバスを接続する中継装置1601のいずれかで、応答データの順序を並び替えればよい。
 このように、複数のメモリ303からの応答データの並べ替え処理を、伝送路上の複数の要素において分散して行うことで、それぞれのNICや中継装置で行う応答データの並替処理の負荷を低減し、また、データの順番の記憶に必要な記憶容量を減らすことができる。
 なお、全てのNICや中継装置等に応答データの並べ替えに関する構成を設けてもよい。または、応答データの並べ替え処理を行うNICや中継装置等にのみ当該構成を設け、応答データの並べ替え処理を行わないNICや中継装置等には、当該構成を設けなくてもよい。全てのNICや中継装置等に当該構成を設ける場合には、並べ替えを行うNICや中継装置等を動的に変化させることが可能である。なお、全てのNICや中継装置等に当該構成を設けた場合であっても、設計時または実装時等において決定された特定のNICや中継装置等にのみ並べ替えを行わせてもよい。
 上述の例では、バス制御装置がNIC1003またはNIC1001内に設けられていることを前提としている。しかしながらこれは一例である。図3に示すように、バス制御装置とNICとは別体であってもよい。
 さらに、メモリコントローラ2601に上述したバス制御装置を組み込むことにより、自身が制御する複数のメモリ303からの応答データをメモリコントローラ2601が並べ替える機能を設けてもよい。その場合には、メモリコントローラ2601とメモリコントローラ2701のような異なるメモリコントローラにより制御されるメモリ群(メモリ1およびm1の組と、メモリ3およびm2の組)からの応答データの並び替えは、ローカルバス上のNIC1001、中継装置1002、または中継装置1601のいずれかが行えばよい。ただしその並び替えの前提として、メモリ1およびm1の組へ送信される要求のデータ、およびメモリ3およびm2の組へ送信される要求のデータの順序が、NIC1001、中継装置1002、または中継装置1601のいずれかにおいて保持されている必要がある。
 なお本実施形態では、図27におけるメモリコントローラ2701、NIC1103、および中継装置2702の構成および動作は、それぞれメモリコントローラ2601、NIC1003、および中継装置2602と同じであるとする。
 図28は、メモリコントローラ2601と接続されるNIC1003の構成を示す。図15と同じ構成については、同じ番号を付与し説明を省略する。また、NIC1003と中継装置1601との間にはシステムバスが存在するが、図面上、明示的な記載は省略している。
 NIC1003は、中継装置1602とメモリコントローラ2601との間に設けられてそれらを接続する。NIC1003とNIC401b(図15)との相違点は、パケット化部1101とデパケット化部1102の位置が入れ替わっている点である。
 NIC1003のデパケット化部1102は、中継装置1601から受信した要求のパケットに含まれるデータを、メモリコントローラ2601との間で利用される通信プロトコルに変換して、メモリコントローラ2601に送信する。また、NIC1003のパケット化部1101は、メモリコントローラ2601から受信した応答データをパケットに変換し、中継装置2602へと送信する。なお、応答データの順序の入れ替えの処理については、図15のバスNIC401bと同様である。
 本開示は、オンチップバス、汎用プロセッサやDSP上のローカルバスにおける、バスとメモリとの間に設けられるインターフェイス装置等に利用可能である。
 100a~100c バスシステム
 301 バスマスタ
 302 バス制御装置
 303 メモリ
 304 バス・インターフェイス
 401a、401b バス制御装置
 402 バスマスタ
 403 メモリ
 404 送信用バス・インターフェイス
 405 受信用バス・インターフェイス
 406 送信制御部
 407 入替可否情報記憶部
 408 順序記憶部
 409 メモリ毎に用意されたバッファ部
 410 接続制御部
 411 IF情報記憶部
 412 振分規則記憶部
 413 振分部
 1101 パケット化部
 1102 デパケット化部
 1601 中継装置
 1701 中継バッファ
 1702 中継制御部
 1703 システムバス用送信制御部
 1704 ローカルバス用送信制御部

Claims (21)

  1.  第1ノード、複数の第2ノード、および複数の中継装置が、集積回路上に構築されたパケット交換方式のバスによって接続されたバスシステムにおいて、前記第1ノードと前記複数の第2ノードの各々との間で送受信されるデータの伝送経路上に設けられるバス制御装置であって、
     第1ノードから各第2ノードへ送信されたデータの送信順序を記憶する順序記憶部と、
     前記各第2ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定する振分部と、
     振り分けられた前記データを、前記データの送信元である前記第2ノードごとに区別して格納するバッファ部と、
     前記各第2ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信する接続制御部と
     を備えた、バス制御装置。
  2.  前記入替可否情報が全て否である場合には、入替可否情報を参照せず、全てのデータに対し前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信する、請求項1に記載のバス制御装置。
  3.  前記第1ノードは複数のバス・インターフェイスを備えており、
     前記接続制御部は、データごとに、前記データの送信先となるバス・インターフェイスを特定するインターフェイス情報を参照して、前記バッファ部から前記バス・インターフェイスへ前記データを送信する、請求項1に記載のバス制御装置。
  4.  前記インターフェイス情報は、前記集積回路において実行されるアプリケーション、および前記第2ノードの種別の少なくとも一方に応じて、データごとに、前記データの送信先となるバス・インターフェイスを特定する、請求項3に記載のバス制御装置。
  5.  前記入替可否情報は、前記集積回路において実行されるアプリケーション、および前記第2ノードの種別の少なくとも一方に応じて決定されている、請求項1に記載のバス制御装置。
  6.  前記振分部は、予め定められた振分規則を参照して、データの順序の入れ替わりの許容の可否をさらに区別して、前記データの振り分け先を決定し、
     前記バッファ部は、振り分けられた前記データを、前記データの順序の入れ替わりの許容の可否をさらに区別して格納する、請求項1に記載のバス制御装置。
  7.  前記振分部は、予め定められた振分規則を参照して、データの伝送経路をさらに区別して、前記データの振り分け先を決定し、
     前記バッファ部は、振り分けられた前記データを、前記データの伝送経路をさらに区別して格納する、請求項1に記載のバス制御装置。
  8.  前記振分部は、前記データのサイズに応じて前記バッファ部へのデータの分類方法を変更する、請求項1、6および7のいずれかに記載のバス制御装置。
  9.  前記第1ノード、および前記第2ノードは、バスマスタ、メモリ、入出力機器のいずれかである、請求項1から8のいずれかに記載のバス制御装置。
  10.  第1ノード、および複数の第2ノードが、集積回路上に構築されたパケット交換方式のバスによって接続されたバスシステムにおいて、前記第1ノードと前記複数の第2ノードの各々との間で送受信されるデータを中継する中継装置であって、
     バスから受信したデータを格納する中継バッファと、
     前記中継バッファに格納されていた前記データを前記複数の第2ノードのいずれかに送信する中継制御部と、
     各第2ノードへ送信された前記データの送信順序を記憶する順序記憶部と、
     前記各第2ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定する振分部と、
     振り分けられた前記データを、前記データの送信元である前記各第2ノードに区別して格納するバッファ部と、
     前記各第2ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する接続制御部と、
     前記接続制御部の制御にしたがって、前記データを前記バスに出力する送信制御部と
     を備えた、中継装置。
  11.  前記振分部は、予め定められた振分規則を参照して、前記第1ノードおよび前記第2ノードを区別して前記データの振り分け先を決定し、
    前記バッファ部は、振り分けられた前記データを、前記データの送信元である前記各第2ノードに、および前記第1ノードごとに区別して格納する、請求項10に記載の中継装置。
  12.  前記入替可否情報は、前記集積回路において実行されるアプリケーション、および前記第2ノードの種別の少なくとも一方に応じて決定されている、請求項10に記載の中継装置。
  13.  前記振分部は、予め定められた振分規則を参照して、データの順序の入れ替わりの許容の可否をさらに区別して、前記データの振り分け先を決定し、
     前記バッファ部は、振り分けられた前記データを、前記データの順序の入れ替わりの許容の可否をさらに区別して格納する、請求項10に記載の中継装置。
  14.  前記振分部は、予め定められた振分規則を参照して、データの伝送経路をさらに区別して、前記データの振り分け先を決定し、
     前記バッファ部は、振り分けられた前記データを、前記データの伝送経路をさらに区別して格納する、請求項10に記載の中継装置。
  15.  前記振分部は、予め定められた振分規則を参照して、前記第2ノードを区別して振り分け先を決定する方法と、前記第2ノードおよび前記第1ノードの両方を区別して振り分け先を決定する方法とを選択可能である、請求項10に記載の中継装置。
  16.  前記振分部は、前記データのサイズに応じて前記バッファ部へのデータの分類方法を変更する、請求項10または11に記載の中継装置。
  17.  前記第1ノード、および前記第2ノードは、バスマスタ、メモリ、入出力機器のいずれかである、請求項10から16のいずれかに記載の中継装置。
  18.  集積回路上に構築されたパケット交換方式のバスを有するバスシステムであって、
     第1ノードと、
     複数の第2ノードと、
     第1中継装置および第2中継装置を含む複数の中継装置と、
     前記第1ノードおよび前記第1中継装置の間で送受信されるデータの伝送経路上に設けられた第1バス制御装置と、
     前記複数の第2ノードおよび前記第2中継装置の間で送受信されるデータの伝送経路上に設けられた第2バス制御装置と
     を備え、
     前記複数の中継装置、前記第1バス制御装置、および前記第2バス制御装置のうちの少なくとも1つの装置は、
     バスから受信したデータを格納する中継バッファと、
     前記中継バッファに格納されていた前記データを前記複数の第2ノードのいずれかに送信する中継制御部と、
     各第2ノードへ送信された前記データの送信順序を記憶する順序記憶部と、
     前記各第2ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定する振分部と、
     振り分けられた前記データを、前記データの送信元である前記各第2ノードに区別して格納するバッファ部と、
     前記各第2ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する接続制御部と、
     前記接続制御部の制御にしたがって、前記データを前記バスに出力する送信制御部と
     を有している、バスシステム。
  19.  前記複数の中継装置は、ローカルバスおよびシステムバスを接続するバス間中継装置をさらに含み、
     前記ローカルバスは、前記第1制御装置、および前記第1中継装置を含み、
     前記システムバスは、前記第2中継装置を含み、
     前記少なくとも1つの装置に設けられた前記接続制御部は、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する、請求項18に記載のバスシステム。
  20.  第3中継装置と、
     複数の第3ノードと、
     前記複数の第3ノードおよび前記第3中継装置の間で送受信されるデータの伝送経路上に設けられた第3バス制御装置と
     をさらに備え、
     前記少なくとも1つの装置において、
     前記中継制御部は、前記中継バッファに格納されていた前記データを前記複数の第3ノードのいずれかにもさらに送信し、
     前記順序記憶部は、各第3ノードへ送信された前記データの送信順序をさらに記憶し、
     前記振分部は、前記各第2ノードおよび前記各第3ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定し、
     前記バッファ部は、振り分けられた前記データを、前記データの送信元である前記各第2ノードおよび各第3ノードに区別して格納し、
     前記接続制御部は、前記各第2ノードおよび前記各第3ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する、請求項19に記載のバスシステム。
  21.  前記第3バス制御装置は、
     バスから受信したデータを格納する中継バッファと、
     前記中継バッファに格納されていた前記データを前記複数の第3ノードのいずれかに送信する中継制御部と、
     各第3ノードへ送信された前記データの送信順序を記憶する順序記憶部と、
     前記各第3ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定する振分部と、
     振り分けられた前記データを、前記データの送信元である前記各第3ノードに区別して格納するバッファ部と、
     前記各第3ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する接続制御部と、
     前記接続制御部の制御にしたがって、前記データを前記バスに出力する送信制御部と
     を有しており、
     前記第3バス制御装置において、前記接続制御部は、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する、請求項20に記載のバスシステム。
PCT/JP2014/001367 2013-03-13 2014-03-11 バス制御装置、中継装置およびバスシステム WO2014141692A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2015505292A JP5842174B2 (ja) 2013-03-13 2014-03-11 バス制御装置、中継装置およびバスシステム
US14/641,197 US9942174B2 (en) 2013-03-13 2015-03-06 Bus control device, relay device, and bus system
US15/917,124 US10305825B2 (en) 2013-03-13 2018-03-09 Bus control device, relay device, and bus system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013-050945 2013-03-13
JP2013050945 2013-03-13

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/641,197 Continuation US9942174B2 (en) 2013-03-13 2015-03-06 Bus control device, relay device, and bus system

Publications (1)

Publication Number Publication Date
WO2014141692A1 true WO2014141692A1 (ja) 2014-09-18

Family

ID=51536371

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/001367 WO2014141692A1 (ja) 2013-03-13 2014-03-11 バス制御装置、中継装置およびバスシステム

Country Status (3)

Country Link
US (2) US9942174B2 (ja)
JP (1) JP5842174B2 (ja)
WO (1) WO2014141692A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016088371A1 (ja) * 2014-12-05 2016-06-09 日本電気株式会社 管理ノード、端末、通信システム、通信方法、および、プログラム記録媒体
JP2020004208A (ja) * 2018-06-29 2020-01-09 サイレックス・テクノロジー株式会社 デバイスサーバ及びデバイスサーバの制御方法
JP2021057884A (ja) * 2019-07-29 2021-04-08 ウルトラソック、テクノロジーズ、リミテッドUltraSoC Technologies Ltd. ネットワークオンチップにおけるブロードキャストのエミュレート

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015029406A1 (ja) * 2013-08-29 2015-03-05 セイコーエプソン株式会社 送信システム、送信装置、及び、データ送信方法
US10140222B1 (en) 2017-07-06 2018-11-27 Micron Technology, Inc. Interface components

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10228417A (ja) * 1996-11-15 1998-08-25 Hyundai Electron America Inc データ処理システムにおけるメモリリクエスト再順序付け法
JP2012073851A (ja) * 2010-09-29 2012-04-12 Sony Corp バスシステムおよびそのデッドロック回避回路

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0760979A1 (en) 1995-03-27 1997-03-12 International Business Machines Corporation Bus structure for a multiprocessor system
JP2785005B2 (ja) 1995-10-25 1998-08-13 株式会社超高速ネットワーク・コンピュータ技術研究所 Fc/atm網相互変換装置における多重/分離方式
KR100259082B1 (ko) * 1997-04-02 2000-06-15 김영환 네트워크 트래픽 우선순위 결정방법
JP4705489B2 (ja) * 2006-03-07 2011-06-22 富士通株式会社 デバイスドライバプログラムを記録したコンピュータ読取可能なポータブル記録媒体、記憶装置アクセス方法および記憶装置アクセスシステム
JP5100672B2 (ja) 2009-01-28 2012-12-19 株式会社エヌ・ティ・ティ・ドコモ ルータ装置
JP4856790B2 (ja) 2010-03-05 2012-01-18 パナソニック株式会社 中継器
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US8880819B2 (en) * 2011-12-13 2014-11-04 Micron Technology, Inc. Memory apparatuses, computer systems and methods for ordering memory responses

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10228417A (ja) * 1996-11-15 1998-08-25 Hyundai Electron America Inc データ処理システムにおけるメモリリクエスト再順序付け法
JP2012073851A (ja) * 2010-09-29 2012-04-12 Sony Corp バスシステムおよびそのデッドロック回避回路

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016088371A1 (ja) * 2014-12-05 2016-06-09 日本電気株式会社 管理ノード、端末、通信システム、通信方法、および、プログラム記録媒体
JPWO2016088371A1 (ja) * 2014-12-05 2017-09-14 日本電気株式会社 管理ノード、端末、通信システム、通信方法、および、プログラム記録媒体
US10270701B2 (en) 2014-12-05 2019-04-23 Nec Corporation Management node, terminal, communication system, communication method, and program storage medium
JP2020004208A (ja) * 2018-06-29 2020-01-09 サイレックス・テクノロジー株式会社 デバイスサーバ及びデバイスサーバの制御方法
JP2021057884A (ja) * 2019-07-29 2021-04-08 ウルトラソック、テクノロジーズ、リミテッドUltraSoC Technologies Ltd. ネットワークオンチップにおけるブロードキャストのエミュレート
JP7369102B2 (ja) 2019-07-29 2023-10-25 シーメンス インダストリー ソフトウェア インコーポレイテッド ネットワークオンチップにおけるブロードキャストのエミュレート

Also Published As

Publication number Publication date
JP5842174B2 (ja) 2016-01-13
US10305825B2 (en) 2019-05-28
JPWO2014141692A1 (ja) 2017-02-16
US20150180805A1 (en) 2015-06-25
US20180198739A1 (en) 2018-07-12
US9942174B2 (en) 2018-04-10

Similar Documents

Publication Publication Date Title
US10305825B2 (en) Bus control device, relay device, and bus system
US11003604B2 (en) Procedures for improving efficiency of an interconnect fabric on a system on chip
JP4880802B1 (ja) 中継装置
US9426099B2 (en) Router, method for controlling router, and program
JP5603481B2 (ja) 中継装置
JP4808513B2 (ja) システムオンチップの大域的非同期通信アーキテクチャ
CN111104775B (zh) 一种片上网络拓扑结构及其实现方法
JP4756158B2 (ja) 通信リソース割り当て電子デバイスおよび方法
US9961005B2 (en) Bus system and computer program
JP5552196B2 (ja) 中継装置、中継装置の制御方法、およびコンピュータプログラム
JP5838365B2 (ja) バスシステムおよび中継器
JP5853211B2 (ja) バスインタフェース装置、中継装置、およびそれらを備えたバスシステム
US20100057953A1 (en) Data processing system
US20180183672A1 (en) System and method for grouping of network on chip (noc) elements
US10547514B2 (en) Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
JPWO2006129789A1 (ja) スイッチ装置、スイッチング方法およびスイッチ制御用プログラム
US9678905B2 (en) Bus controller, bus control system and network interface
JP2016181070A (ja) 管理装置、スイッチ装置、優先度管理方法、およびコンピュータ・プログラム
KR20150102538A (ko) 시스템 온칩 통신 네트워크

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: 14763590

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015505292

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14763590

Country of ref document: EP

Kind code of ref document: A1