WO2014115207A1 - バスインタフェース装置、中継装置、およびそれらを備えたバスシステム - Google Patents

バスインタフェース装置、中継装置、およびそれらを備えたバスシステム Download PDF

Info

Publication number
WO2014115207A1
WO2014115207A1 PCT/JP2013/006823 JP2013006823W WO2014115207A1 WO 2014115207 A1 WO2014115207 A1 WO 2014115207A1 JP 2013006823 W JP2013006823 W JP 2013006823W WO 2014115207 A1 WO2014115207 A1 WO 2014115207A1
Authority
WO
WIPO (PCT)
Prior art keywords
bus
packet
buffer
transmission
bits
Prior art date
Application number
PCT/JP2013/006823
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 JP2014528729A priority Critical patent/JP5853211B2/ja
Publication of WO2014115207A1 publication Critical patent/WO2014115207A1/ja
Priority to US14/492,181 priority patent/US10104006B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • 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 improving the utilization efficiency of a buffer provided in a relay device that transmits data transmitted and received between a bus master and a bus slave in a semiconductor integrated circuit including a networked semiconductor bus.
  • NoC network on chip
  • Patent Document 1 discloses an example of a method for improving the buffer utilization efficiency of the relay apparatus.
  • Patent Document 1 relates to a general network technology using an IP (Internet Protocol) packet.
  • IP Internet Protocol
  • Patent Document 1 when the buffer of the relay device is in a congested state, the low-priority class packet is discarded, and the use of the buffer is prioritized over the high-priority class packet. This improves the utilization efficiency of the limited buffer of the relay apparatus.
  • the conventional technology targets a network in which flow control is performed between transmitting and receiving nodes on the assumption that packet loss occurs on a transmission path such as the Internet. For this reason, it is allowed to discard the packet in order to improve the utilization efficiency of the buffer.
  • the networked bus on the semiconductor circuit is designed so that flow control is performed between relay devices on the transmission path and packet loss on the transmission path basically does not occur. That is, discarding a packet is not considered in principle. Therefore, the buffer utilization efficiency cannot be improved only by applying the conventional technique such as Patent Document 1 to the relay apparatus. If the data transmitted from the bus master is discarded on the transmission path, it is necessary to expand the function for resending data on the bus master side. This means that the existing bus master cannot be reused as it is.
  • an aspect of the present invention is a bus system in which a plurality of bus interface devices and a relay device are connected by a packet-switched bus built on an integrated circuit.
  • Each of the bus interface devices is connected to a plurality of transmission nodes having different numbers of bits of data transmitted in one operation cycle of the bus system, and each of the plurality of bus interface devices receives data received from the connected transmission node.
  • a reception buffer that stores the size information indicating the number of bits related to the connected transmission node, a header information generation unit that generates header information including the size information, the header information, and the data
  • a packetizing unit for generating a packet from the network, and transmitting the packet to the relay device.
  • a transmission control unit for controlling, the relay device analyzes the packet received from the bus interface device and stores the received packet, and a packet analysis unit for obtaining the size information from the header information A buffer, a relay control unit that determines a transmission destination of the received packet, an output control unit that controls transmission of the packet from the buffer, and a storage amount in the buffer based on the acquired size information
  • a bus system including a packet storage control unit to be set.
  • the relay device recognizes the bus width on the bus master side attached to the packet, and performs appropriate addressing for storing the packet in the buffer based on the bus width and for transmission from the buffer. Since this can be done automatically, the buffer utilization efficiency can be improved. This eliminates the need for individual settings for each relay device and simplifies the design of the semiconductor integrated circuit.
  • the transmission path throughput is improved, so it is possible to reduce the bus operating frequency and bus width necessary for guaranteeing the performance of semiconductor integrated circuits, thereby reducing power consumption and area. I can expect.
  • FIG. 3 is a diagram illustrating a configuration of a relay device 403. It is a figure which shows the operation
  • FIG. 6 is a diagram illustrating an example of content stored in a storage unit 407.
  • FIG. 6 is a diagram illustrating an example of content stored in a storage unit 407.
  • FIG. It is a figure which shows an example of a structure of the packet 610 produced
  • FIG. FIG. 6 is a diagram illustrating an operation flow of the relay device 403. It is a figure which shows the operation
  • FIG. 10 is a diagram illustrating an operation flow of a switch assignment unit 415.
  • FIG. 10 is a diagram illustrating an operation flow of the bus I / F 402 when the bus width dynamically changes during data transmission from the bus master 401. It is a figure which shows the structure of bus
  • FIG. 1 shows a buffer utilization method of a relay apparatus provided in a conventional NoC.
  • a bus master 201 and a bus master 202 having different bus widths are connected to a relay device 205 via bus interface devices (hereinafter referred to as “bus I / F”) 203 and 204, respectively.
  • the relay device 205 is connected to the relay device 206.
  • bus I / F bus interface devices
  • bus widths bus widths
  • the bus width used by the bus master 201 is 64 bits
  • the bus width used by the bus master 202 is 32 bits.
  • relay apparatuses 205 and 206 manage the buffer in 64-bit units.
  • the “bus width” means the number of bits of data transmitted in one operation cycle of the bus system.
  • information indicating the bus width of the bus master may be referred to as “size information”.
  • data is packetized when transmitted over NoC. Therefore, even if the bus master outputs 64-bit data, the data is not sent as it is to the relay device at once.
  • the data is divided into a plurality of pieces, each having a header and the like, and transmitted in the form of a packet having a 64-bit size.
  • Bus I / Fs 203 and 204 are circuits that convert data transmitted from the bus master into packets.
  • the bus I / F 203 packetizes data transmitted from the bus master 201 having a bus width of 64 bits as 64-bit data, and transmits the packetized data to the relay device 205.
  • the bus I / F 204 packetizes the data transmitted from the bus master 202 having a bus width of 32 bits to match the 64-bit bus width, and transmits the packet to the relay device 205.
  • the bus I / F 204 corresponds to the difference in bus width when transmitting to the relay device 205 having a bus width of 64 bits.
  • the dummy data is assigned.
  • the data bus width can be adjusted to 64 bits.
  • the 64-bit data is packetized in the bus I / F 204 and transmitted to the relay device 205.
  • packets transmitted by the bus master 201 and the bus master 202 having different bus widths can be handled as packets in which all 64-bit data is stored.
  • the buffer of the relay device for example, the buffer 207 of the relay device 206.
  • a packet including data from the bus master 202 and dummy data transmitted from the bus I / F 204 is stored as it is in the buffer 207 as a 64-bit packet, a part of the buffer is occupied by the dummy data. Since dummy data is not used as information, the use efficiency of the buffer 207 decreases as the dummy data is stored in the buffer 207.
  • packet 1 and packet 3 are packets including data transmitted from the bus master 202. Therefore, dummy data occupies half of the packet.
  • One packet 2 is a packet including data transmitted from the bus master 201. In such a case, about 1/3 of the buffer 207 is occupied by dummy data. This reduces the utilization efficiency of the buffer 207.
  • the bus I / F 204 integrates two pieces of 32-bit data two by 64 bits. Can be configured. By integrating in this way, dummy data can be reduced. However, not all data can be handled that way. The reason is that data having a small size such as command data can be transmitted. If small data is transmitted, it is still necessary to add dummy data. Therefore, it is impossible to eliminate buffer occupation due to dummy data.
  • a buffer for temporarily storing data and a dedicated circuit are required.
  • a relay device on NoC in which a 64-bit bus width is used imposes a restriction that the bus I / F needs to transmit a packet as 64-bit data. It has been.
  • a bus system is a bus system in which a plurality of bus interface devices and a relay device are connected by a packet-switched bus built on an integrated circuit, and the plurality of bus interface devices are Are connected to a plurality of transmission nodes having different bit numbers of data to be transmitted in one operation cycle of the bus system, and each of the plurality of bus interface devices stores data received from the connected transmission nodes.
  • a buffer a storage unit that stores size information indicating the number of bits related to the connected transmission node, a header information generation unit that generates header information including the size information, and a packet generated from the header information and the data
  • a packetizing unit that controls transmission of the packet to the relay device A relay controller, wherein the relay device analyzes the packet received from the bus interface device and obtains the size information from the header information; and a buffer for storing the received packet
  • a relay control unit that determines a transmission destination of the received packet, an output control unit that controls transmission of the packet from the buffer, and a storage amount in the buffer based on the acquired size information And a packet storage control unit.
  • the packet storage control unit of the relay device allocates an address of the buffer to the packet in units of the number of bits indicated by the size information, and the buffer is assigned to the address allocated by the packet storage control unit. Therefore, the received packet is stored.
  • the plurality of transmission nodes include a first transmission node that transmits data with a first number of bits and a second transmission node that transmits data with a second number of bits less than the first number of bits.
  • the buffer address is assigned as a unit, and the buffer of the relay apparatus stores the packet of the second number of bits.
  • the packet storage control unit of the relay device further controls the transmission amount of packets transmitted from the buffer based on the acquired size information.
  • the size information is variable, and when the size information indicating the number of bits for a predetermined transmission node changes, a header information generation unit of a bus interface device connected to the predetermined transmission node, The size information included in the header information is changed.
  • the predetermined transmission node has a plurality of operation modes with different power consumptions, and the change in the size information indicating the number of bits occurs in response to the change in the operation mode.
  • the predetermined transmission node switches between a data transfer mode for transferring with a first number of bits and a data transfer mode for transferring with a second number of bits narrower than the first bus width.
  • the change of the size information indicating the number of bits is generated in response to the switching of the data transfer mode.
  • the bus interface device further includes a required quality specifying unit that specifies the required quality of a connected transmission node, and the header information generating unit of the bus interface device further includes the required quality information.
  • the packet analysis unit of the relay device acquires the size information and the information indicating the required quality described in the header information of the received packet, and the packet storage control unit of the relay device Sets a storage amount in the buffer based on the size information and the required quality.
  • the packet storage control unit of the relay device sets the storage amount in the buffer based on the size information included in the header information for each packet.
  • the required quality specifying unit acquires information specifying the required quality of the transmitting node from the connected transmitting node, and the required quality has a restriction on delay time that is more severe than a predetermined value.
  • the packet storage control unit of the relay device controls the storage amount in the buffer and the transmission amount from the buffer based on a predetermined number of bits.
  • the constraint on the delay time is represented by at least one of a class expressing a strictness with respect to the required quality and a deadline time that is an allowable delay time with the required quality.
  • the header information generation unit of the bus interface device generates the header information in the order of relay device information used by the relay device and bus interface information used by the bus interface device.
  • the relay control unit of the relay device determines the received packet based on the size information acquired by the packet analysis unit and a use situation of a buffer of another device that is the transmission destination of the packet. Select the other device's buffer to store.
  • the usage status of a buffer of another device that is the transmission destination of the packet is at least one of how the flit is stored in the buffer, the type of bit number of the stored flit, and the free capacity of the buffer.
  • a bus interface apparatus includes a packet-switched bus constructed on an integrated circuit, a transmission node that transmits data to the bus, and transmission of the data provided on the bus.
  • a bus interface device used in a bus system having a relay device that relays data, a reception buffer that is connected to a transmission node and stores data received from the transmission node, and size information indicating the number of bits related to the transmission node
  • a storage unit that stores information, a header information generation unit that generates header information including the size information, a packetization unit that generates a packet from the header information and the data, and control of transmission of the packet to the relay device A transmission control unit.
  • the bus and the relay device transmit data of a first bit number in one operation cycle, and the transmission node transmits data of a second bit number different from the first bit number.
  • the header information generation unit generates header information including size information indicating the second number of bits used for setting a storage amount of a packet received in the relay apparatus in a buffer.
  • a relay device is a relay device used in a bus system, and the bus system transmits a packet-switched bus built on an integrated circuit and data to the bus. And a bus interface device that connects the transmission node and the bus, the bus interface device including data received from the transmission node and size information indicating the number of bits related to the transmission node
  • the packet generated from the header information is output, and the relay device analyzes the packet received from the bus interface device and stores the received packet by the packet analysis unit that acquires the size information from the header information A buffer, a relay control unit that determines a transmission destination of the received packet, and the buffer.
  • An output control unit that controls the transmission of packets from ⁇ , based on the obtained the size information, and a packet storing control unit that sets the storage amount to the buffer.
  • FIG. 2 is an example of a configuration of a semiconductor integrated circuit in which the bus system 400 according to the present embodiment is constructed.
  • This embodiment is intended for a semiconductor integrated circuit in which a bus system configured by connecting a plurality of bus masters having different bit widths of input / output accesses from the bus master and communication protocols is targeted.
  • Each bus master is connected to a shared memory via a networked system bus having a bus I / F and a relay device.
  • the bus I / F is a circuit that performs processing for converting data transmitted by the bus master into packets, and processing for extracting data from the packets.
  • the relay device is a circuit that transfers packetized data to a destination node.
  • FIG. 2 shows a configuration in which relay devices are connected in a ring shape
  • the semiconductor integrated circuit targeted by the present disclosure is not limited to a configuration connected in a ring shape.
  • Other configurations such as a mesh type in which relay devices are arranged in a grid pattern and a hierarchical type in which relay devices are connected in multiple stages are also objects of the present disclosure.
  • FIG. 2 shows an example in which a plurality of bus masters are connected to one shared memory.
  • the number of shared memories is not limited to one, and a plurality of shared memories may be connected.
  • an I / O (Input Output) with an external circuit may be connected.
  • FIG. 3 shows an outline of the operation of the bus system according to this embodiment.
  • the value of the bus width on the bus master side is described in the packet header.
  • the relay apparatuses 205 and 206 can determine the values of actual data and dummy data included in the packet by reading the value indicating the bus width described in the packet header.
  • the “dummy data” here is actually transmitted when 32-bit data is transmitted through a bus having a bus width unified to 64 bits (for example, the system bus shown in FIG. 2). This data is inevitably transmitted in addition to bit data. Since the bus is driven with a 64-bit width, not only the 32 bits actually transmitted but also the remaining 32 bits are transmitted as a result. This dummy data is an invalid value. For example, data in which predetermined values (only “0” or “1”) are arranged may be used.
  • the relay device 205 and the relay device 206 store only the actual data included in the packet in the buffer 207 based on the bus width value described in the received packet header.
  • the packet 1 and packet 3 from the bus master 202 having a bus width of 32 bits only the actual data portion from which the dummy data is removed is stored in the buffer. Further, for the packet of the bus master 201 having a bus width of 64 bits, the packet is stored by filling the empty space of 32 bits generated by removing the dummy data from the packet 1. Thereby, compared with the example of FIG. 1, in this embodiment, the usage amount in the buffer 207 can be reduced to about 2/3, and the utilization efficiency of the buffer can be improved.
  • the packet 2 since packets are packed and stored from the 0th address of the buffer in the order of arrival, the packet 2 is stored separately at 0th address and 1st address by 32 bits. In this case, it is necessary to access the addresses 0 and 1 twice for storing and retrieving the packet 2, and the delay time increases. Therefore, packet 2 having a bus width of 64 bits is stored together in address 1 so that all packets can be accessed once, and packet 1 and packet 3 having a bus width of 32 bits are stored at address 0. May be stored.
  • the relay apparatus side automatically stores the packet in the buffer 207 based on the bus width at the time of access from the transmission source bus master to the bus I / F described in the packet header. By changing automatically, the buffer usage efficiency is improved.
  • FIG. 4 shows a specific connection example of the bus system 400 according to the present embodiment.
  • a bus master 401 a bus I / F 402, a relay device (group) 403, a bus I / F 404, and a bus slave 405 are connected in this order.
  • the bus I / F 402 and the relay device 403 of the present disclosure are assumed to be used in a network-on-chip that connects a plurality of bus masters 401 having different bus widths and a plurality of bus slaves 405.
  • an existing processing circuit for example, a DSP for media processing and a CPU for performing high-speed file transfer can be used.
  • a shared memory, a common IO (input / output), or the like can be used as the bus slave 405.
  • the bus I / Fs 402 and 404 may be operated so as to be compatible with existing processing circuits.
  • a path through which data passes from the bus master 401 to the bus slave 405 is defined as an outbound path, and a path through which data passes from the slave to the bus master is defined as a return path.
  • the bus master 401 becomes a transmission node that transmits data.
  • the bus I / F 402 is a circuit that connects the bus master 401 and the relay device 403, and converts data transmitted from the bus master 401 into a packet that can be received by the relay device 403.
  • the bus I / F 404 is a circuit that connects the relay device 403 and the bus slave 405.
  • the bus I / F 404 receives the packet transmitted from the relay device 403, converts it into data that can be received by the bus slave 405, and transmits the data to the bus slave 405.
  • the bus slave 405 On the return path, the bus slave 405 becomes a transmission node that transmits data.
  • the bus I / F 404 receives data transmitted from the bus slave 405, converts the data into a packet that can be received by the relay device 403, and transmits the packet to the relay device 403.
  • the bus I / F 402 receives a packet from the relay device 403, converts the packet into data that can be received by the bus master 401, and transmits the data to the bus master 401.
  • the forward path in which the bus master 401 is a transmission node will be described as an example.
  • FIG. 5 shows the configuration of the bus I / F 402.
  • the bus I / F 402 includes a reception buffer 406, a storage unit 407, a header information generation unit 408, a packetization unit 409, and a transmission control unit 410.
  • the reception buffer 406 is a memory that temporarily stores a destination address, a control signal, and data transmitted by the bus master 401.
  • the storage unit 407 is a memory that stores the bus width used by the bus master 401 when transmitting data.
  • the header information generation unit 408 is a circuit that generates header information to be added to the packet based on the address of the destination transmitted from the bus master 401, the contents of the control signal, and the bus width information stored in the storage unit 407.
  • the packetization unit 409 is a circuit that packetizes data by adding the packet header generated by the header information generation unit 408 to the data stored in the reception buffer 406.
  • the transmission control unit 410 is a circuit that divides the packet generated by the packetizing unit 408 into flits (data units that can be transmitted in one cycle) and transmits the flit to the relay device 403 one by one.
  • FIG. 6 shows the configuration of the relay device 403.
  • the relay device 403 is a device that transmits the packet transmitted from the bus I / F 402 to the destination bus slave 405.
  • the relay apparatus 403 includes a packet analysis unit 411, a buffer 412, a packet storage control unit 413, and an output control unit 417.
  • the packet analysis unit 411 is a circuit that acquires the packet destination address and the bus width value from the received packet header information.
  • the buffer 412 is a memory that temporarily stores packets.
  • the packet storage control unit 413 is a circuit that performs flit storage processing to the buffer 412 and addressing setting at the time of flit transmission from the buffer 412 based on the bus width information acquired by the packet analysis unit 411.
  • addressing refers to a process of allocating a storage area in order to store data in a storage area such as a buffer.
  • addressing in relation to transmission processing refers to processing for determining an area from which data to be sent to a transmission destination (destination) is extracted from a storage area.
  • the relay control unit 414 is a circuit that determines a buffer for storing a packet to be transmitted by the relay device 403 at the destination relay device based on the destination address of the packet.
  • the output control unit 417 controls packet transmission from the buffer.
  • the output control unit 417 includes a switch assignment unit 415 and a crossbar switch 416.
  • the crossbar switch 416 is a switch circuit that switches connection between a plurality of buffers and the output destination of the relay device 403.
  • the switch assignment unit 415 is a circuit for switching the connection of the crossbar switch 416.
  • bus I / F 404 connected to the bus slave is a circuit that connects the relay device 403 and the bus slave 405, and converts the packet transmitted from the relay device 403 into data that can be received by the bus slave 405.
  • FIG. 7 shows an operation flow of the bus I / F 402.
  • the bus I / F 402 converts the data received from the bus master 401 into a packet including a bus width value between the bus master 401 and the bus I / F 402, and transmits the packet to the relay device 403 in the following steps. Execute.
  • step 501 the bus I / F 402 determines whether data is transmitted from the bus master 401. If there is data transmission from the bus master 401, the routine proceeds to step 502. If there is no data transmission from the bus master 401, step 501 is repeated.
  • step 502 when there is data transmission from the bus master 401, the bus I / F 402 stores the data transmitted from the bus master in the reception buffer 406.
  • the header information generation unit 408 In step 503, when the data is stored in the reception buffer 406, the header information generation unit 408 generates header information including the bus width value of the data transmitted by the bus master. The detailed operation of the header information generation unit 408 will be described later with reference to FIG.
  • the packetizing unit 409 adds the header information generated by the header information generating unit 408 to the data transmitted by the bus master 401, and creates a packet.
  • step 505 the transmission control unit 410 transmits the packet generated by the packetizing unit 409 at a transmission interval based on a predetermined transmission rate.
  • the bus IF 402 converts the data transmitted from the bus master 401 into a packet including the value of the bus width between the bus master 401 and the bus I / F 402 by performing the operations from step 501 to step 505, and relays the data. To 403.
  • FIG. 8 shows the configuration of the input / output signal lines of the bus I / F 402.
  • a signal line 601 for notifying a data destination address, a signal line 602 for controlling the bus protocol on the bus master side, and a signal line 603 for transmitting actual data Connected with.
  • bus I / F 402 and the relay device 403 are connected by a signal line 604 for controlling the NoC side device and a signal line 605 for transmitting packetized data.
  • the signal line of the bus I / F 402 connected to the bus master 401 is different from the signal line of the bus I / F 402 connected to the relay device 403.
  • the bus width of the signal line connected to the relay device 403 is determined in advance. Therefore, the bus I / F 402 transmits data having a predetermined data width (size). As described above, even if the data width is determined, not all data flowing through the signal line is required. Effective data of some bits (for example, 32 bits for a bus width of 64 bits) may be transmitted. As described above, the transmitted data includes a simple command and data to be stored in the memory. The sizes of the data flowing through the signal lines may be different from each other depending on the contents of the transmitted data.
  • FIGS. 9A and 9B show an example of contents stored in the storage unit 407.
  • the storage unit 407 records the bus width value of the data line between the bus master 401 and the bus I / F 402.
  • a bus having a 64-bit bus width is set in the storage unit 407 as a bus connecting the bus master 401 and the bus I / F 402.
  • the bus width value is preset for each bus I / F 402.
  • a bus having a bus width of 32 bits is set in the storage unit 407.
  • the value of the bus width stored in the storage unit 407 is not limited to the preset value.
  • the bus width is transmitted as part of the control signal from the bus master 401 to the bus I / F 402.
  • the bus I / F 402 side may identify the wiring actually notified of the signal from the data lines connected to the bus master 401, and acquire the bus width value.
  • FIG. 10 shows an example of the configuration of the packet 610 generated by the packetizing unit.
  • the configuration of the packet 610 shown in FIG. 10 shows an example in the case where the bus width is transmitted through a 64-bit bus.
  • the packet 610 is divided into a header area 611 and a data area 612.
  • the header area 611 is provided at the beginning of the packet.
  • the header area 611 stores header information shown in FIG. This header information is generated by the header information generation unit 408.
  • packet transmission is performed in units of flits obtained by further dividing the packet.
  • a flit is data that can be transmitted by the bus in one cycle of a clock for operating the bus system 400.
  • the flits are classified into one or a plurality of header flits 613 including header information stored in the packet and one or a plurality of data flits 614 including data stored in the packet. Processing for dividing the packet into flits is performed by the transmission control unit 410.
  • FIG. 10 shows a packet including both the header area 611 and the data area 612
  • the packet 610 may be composed of only the header area 611. For example, when a read request is made from the bus master to the memory, only the control signal not including data is stored in the header area and transmitted.
  • header information generation unit 408 generates header information stored in the header area of the packet.
  • FIG. 11 shows an operation flow of the header information generation unit 408.
  • the header information generation unit 408 generates header information based on the signal notified from the bus master 401 and information on the bus width stored in the storage unit 407.
  • the “signal notified from the bus master 401” is a signal transmitted via the signal line 601 shown in FIG. 8, and is a signal indicating a data destination address.
  • Specific processing of the header information generation unit 408 is the following steps 801 to 803.
  • the data structure of the header information generated by the header information generation unit 408 is shown in FIG. First, a process for generating header information will be described with reference to FIG.
  • FIG. 11 is a flowchart showing an operation procedure of the header information generation unit 408.
  • step 801 the header information generation unit 408 acquires information on the destination address transmitted from the bus master 401 via the signal line 601. If necessary, the control information of the bus protocol used on the bus master side, which is transmitted via the signal line 602, is acquired.
  • step 802 the header information control unit 408 acquires the bus width value from the storage unit 407.
  • the header information control unit 408 generates a packet header including the acquired destination address, bus protocol control information, and bus width value.
  • the header information generation unit 408 generates header information including information on the bus width.
  • the bus width value included in the header information defines the type of bus width used in advance between the bus I / F 402 and the relay device 403 in addition to directly describing the actual bus width value. Any information may be used as long as the value of the bus width actually used on the relay device 403 side can be specified, for example, the information specifying the type is described in the header information.
  • the bus I / F 402 and the relay device 403 each hold a table in which the identifier of the bus master 401 is associated with the bus width value in advance, and the master identifier is described in the header information instead of the bus width value. Also good.
  • the header information generation unit 408 may not acquire information indicating the bus width from the bus master 401 every time communication is performed. For example, when the bus width of the bus used by the bus master 401 is unchanged, information indicating the bus width is held in the storage unit 407, and the header information generation unit 408 refers to the value once at the start of operation. Good.
  • FIG. 12 shows an example of information described in the packet header.
  • the first is relay device information 901 used for controlling the relay device 403.
  • the destination address information and the bus width value are information necessary for the relay apparatus 403 and are described in the relay apparatus information.
  • the second is bus IF information 902 used by the bus IF 404 on the bus slave 405 side.
  • bus IF information a source address necessary for creating a reply packet from the bus slave 405, a packet ID for specifying the correspondence between the transmission packet and the reply packet, and the like are recorded.
  • the third is bus protocol information 903 describing unique information such as AXI (Advanced eXtensible Interface) and OPC (Open Core Protocol).
  • AXI Advanced eXtensible Interface
  • OPC Open Core Protocol
  • the header information includes the relay device information used in the relay device, the bus I / F information used in the bus I / F 404, and the bus master 401 in the order of the devices through which the packet passes on the transmission path.
  • the bus protocol information used by the bus slave 405 is described in order.
  • the time required for the relay apparatus 403 and the bus I / F 404 to read necessary information from the header information is shortened, and the processing can be speeded up.
  • FIG. 13 shows an operation flow of the transmission control unit 410.
  • the transmission control unit 410 performs the following steps in order to transmit the packet generated by the packetizing unit 409 to the relay device 403.
  • step 1101 the transmission control unit 410 adjusts the packet transmission interval based on a preset transmission rate.
  • step 1102 the transmission control unit 410 divides the packet generated by the packetizing unit 409 into flits.
  • step 1103 the transmission control unit 410 transmits the divided flits in order from the header flits.
  • the bus I / F 402 transmits the packet to the relay device 403 at a predetermined transmission rate.
  • FIG. 14 shows an operation flow of the relay device 403.
  • the relay device 403 receives the packet output from the bus I / F 402 in units of flits. At this time, the relay apparatus 403 performs processing for increasing the buffer utilization efficiency based on the bus width value described in the received packet. Specifically, the following steps are executed.
  • step 1201 the packet analysis unit 411 determines whether there is a flit to be received. If no flit is received, step 1201 is repeated until the flit is received. If a flit has been received, the process moves to step 1202.
  • the packet analysis unit 411 determines whether or not the received packet is a header flit.
  • the determination of whether or not it is a header flit may be made, for example, by assigning an identifier for identifying the type of flit to each flit and determining whether or not there is an identifier indicating that it is a header flit.
  • the determination may be made based on whether or not the header flit includes a part of the data structure shown in FIG. For example, even if there are a plurality of header flits, the relay apparatus information 901 shown in FIG. 12 is stored in the first header flit.
  • the packet analysis unit 411 can determine whether the received packet is a header flit based on whether the relay apparatus information 901 is stored or not. If it is a header flit, the routine proceeds to step 1203. If it is not a header flit, step 1204 is entered.
  • step 1203 the packet analysis unit 411 acquires the bus width value and the destination address information from the header information described in the header frit.
  • step 1204 the packet storage control unit 413 stores the received flits in the buffer and sets addressing for transmission from the buffer based on the bus width information acquired by the packet analysis unit 411. Details of the operation of the packet storage control unit 413 will be described later with reference to FIGS. 15 and 16.
  • the relay control unit 414 determines the transmission destination relay device 403 based on the destination address information acquired by the packet analysis unit 411, and further stores the buffer 412 of the relay device 403 for storing the packet. select. Details of the operation of the relay control unit 414 will be described later with reference to FIG.
  • step 1206 the packet storage control unit 413 stores the flits in the buffer based on the addressing set in step 1204.
  • step 1207 the switch allocation unit 415 determines one buffer for transmitting flits for each output of the relay apparatus 403.
  • step 1208 the switch allocation unit 415 switches the connection of the crossbar switch 416 and transmits a flit from the buffer 412 based on the addressing set in step 1204.
  • the relay apparatus 403 stores the packet so that the utilization efficiency of the buffer 412 is increased based on the bus width value described in the received packet.
  • Each relay apparatus operates in the same manner, so that the packet is transmitted to the destination node.
  • FIG. 15 shows an operation flow of the packet storage control unit 413.
  • the packet storage control unit 413 stores the received flit in the buffer 412 based on the bus width value described in the header flit, and sets the addressing for transmission from the buffer 412. 1304 is executed.
  • step 1301 the packet storage control unit 413 acquires the bus width value described in the header frit from the packet analysis unit 411.
  • step 1302 the packet storage control unit 413 acquires identification information (buffer ID) for specifying the buffer 412 for storing the received flits.
  • step 1303 the packet storage control unit 413 first stores the received flit in the buffer 412 based on the bus width value acquired in step 1301 and the buffer ID acquired in step 1302, and the flit is buffered. Reference is made to addressing settings for transmission from 412. Then, the packet storage control unit 413 determines whether or not the current addressing setting of the buffer for storing the received flits matches the bus width value. If they do not match, the process proceeds to step 1304. If they match, the process ends. At the start of the operation, a preset addressing value is applied as the “current addressing setting”.
  • step 1304 according to the bus width value of the received flit, the addressing settings for storage in the buffer 412 and transmission from the buffer 412 are changed.
  • the packet storage control unit 413 stores the received flit in the buffer 412 and transmits the transmission from the buffer 412 based on the bus width value described in the header flit. Change the addressing settings for
  • FIG. 16 shows an example of addressing settings when the reception flit is stored in the buffer 412 and when the flit is transmitted from the buffer 412.
  • (A) of FIG. 16 is an example of addressing when storing a flit having a bus width of 64 bits described in the header information of the received packet.
  • the packet storage control unit 413 allocates an address for storing flits to the buffer 412 every 64 bits.
  • the packet storage control unit 413 stores the received flits as they are.
  • the packet storage control unit 413 extracts the flits from the buffer with a size of 64 bits, and transmits the flits as they are via the output control unit 417.
  • (B) in FIG. 16 is an example of addressing when a flit having a bus width of 32 bits described in the header information of the received packet is stored.
  • the buffer 412 When the bus width is 32 bits, the buffer 412 is assigned an address so that flits are stored every 32 bits.
  • the packet storage control unit 413 stores only the actual data 615 a from the reception flits 615, from which the dummy data 615 b is removed, in the buffer 412.
  • the packet storage control unit 413 When transmitting flits from the buffer 412, the packet storage control unit 413 extracts the flits (data 615 a) from the buffer with a 32-bit size, and further adds 32-bit dummy data 616 b. Accordingly, the subsequent output control unit 417 can transmit the packet 616 having an access size of 64 bits.
  • the packet storage control unit 413 uses the bus width information described in the reception flit to change the method for storing the flit in the buffer 412 and the addressing method for transmission from the buffer. . Thereby, the utilization efficiency of the buffer 412 is greatly improved.
  • FIG. 16 shows an example of addressing when the bus width is 32 bits and 64 bits, but the bus width may be other than the bus width shown in FIG. 16, such as 16 bits or 256 bits.
  • FIG. 16 shows an example in which addressing is assigned from the beginning of the buffer 412.
  • 32-bit address assignment to the buffer 412 is performed.
  • 64-bit address assignment may be mixed. For example, when one 32-bit flit and one 64-bit flit enter the same buffer, one flit from the beginning of the buffer is assigned an address with 32 bits, and thereafter, an address is assigned with 64 bits. .
  • FIG. 17 shows an operation flow of the relay control unit 414.
  • the relay control unit 414 Based on the packet destination address information, the relay control unit 414 sends the packet received by the relay device 403 to the transmission destination relay device 403 (or the bus I / F 404 on the bus slave 405 side in FIG. 4), and The relay apparatus 403 (or the bus I / F 404 on the bus slave 405 side) determines a buffer for storing the packet. For this purpose, the following steps 1501 and 1502 are executed.
  • step 1501 the relay control unit 414 determines an output destination to which a packet is next transmitted based on the destination address information.
  • a routing table that defines the relationship between the destination address and the output of the relay device 403 may be prepared, and output may be selected according to the value of the destination address of the packet.
  • any method that can uniquely determine the output for the destination address may be used.
  • the relay control unit 414 specifies the buffer 412 that can be used in the output destination relay device 403 (FIG. 6) or the bus I / F 404 selected in step 1501, and selects one of them. Select as a buffer to store packets.
  • the relay device 414 By performing step 1501 and step 1502, the relay device 414, based on the information of the destination address of the packet, relay device 403 to which the received packet is transmitted next, or bus I / F 404 on the bus slave 405 side, and its relay In step 403, a buffer for storing the packet is determined.
  • FIG. 18 shows an operation flow of the switch assignment unit 415.
  • the switch assignment unit 415 repeats the following steps 1601 to 1603 in order to transmit the flits stored in the buffer 412.
  • step 1601 the switch assignment unit 415 determines whether or not a flit is stored in the buffer 412. If the flit is not stored, step 1601 is repeated, and if the flit is stored, the process proceeds to step 1602.
  • step 1602 when there is a buffer with which the output destination competes, the switch allocation unit 415 selects one buffer for transmitting flits among the buffers with which the output destination competes.
  • step 1603 the switch allocation unit 416 transmits a flit based on the addressing setting set for each buffer from the selected buffer.
  • the flits stored in the buffer 412 are transmitted by repeating Step 1601 to Step 1603.
  • the relay apparatus 403 of the present disclosure recognizes the bus width on the bus master 401 side attached to the packet, and stores the packet in the buffer based on the bus width and transmits it from the buffer. Appropriate addressing can be performed automatically. Thereby, the utilization efficiency of the buffer 412 can be improved. This eliminates the need for individual settings for each relay device and simplifies the design of the semiconductor integrated circuit.
  • each relay apparatus recognizes the bus width on the bus master 401 side individually assigned to the packet, and stores the packet in the buffer based on the bus width and performs addressing for transmission from the buffer.
  • An example was explained.
  • the packet storage control unit 413 does not divide the plurality of flits stored at the same address of the buffer as they are. You may transmit to the next relay apparatus.
  • two flits having a bus width of 32 bits are stored in the buffer two by two.
  • the two flits can be transmitted simultaneously via a 64-bit bus without dividing the two flits. Good. Thereby, since two flits can be sent at a time, transmission delay can be reduced.
  • the packet storage control unit 413 can determine whether the destinations of the flits stored at the same address are the same by comparing the destination addresses described in the header information acquired by the packet analysis unit 411.
  • the case where the bus width from the bus master to the slave is constant has been described as an example. However, this is an example.
  • the packet storage control unit 413 may collectively transmit the data stored at consecutive addresses in accordance with the wide bus width of the transmission destination.
  • the transmission destination bus width is a 128-bit bus
  • the destination relay devices of the flits stored in consecutive addresses in the buffer are the same.
  • 32-bit or 64-bit data stored in two consecutive addresses is collected into 128-bit data and transmitted via a bus having a bus width of 128 bits.
  • flits for two addresses can be sent at a time, so that transmission delay can be reduced.
  • the determination of whether the destinations of flits stored at consecutive addresses performed by the packet storage control unit 413 are the same can be realized by comparing the destination addresses described in the header information acquired by the packet analysis unit 411. . Whether the transmission destination bus of the relay device is a local bus or a backbone bus is recorded in advance in the packet storage control unit 413 for each relay device.
  • the data transmission from the bus master 401 to the bus I / F 402 has been described on the assumption that the bus width does not change.
  • the bus I / F 402 and the relay device 403 of the present disclosure can cope with a case where the bus width dynamically changes in data transmission from the bus master 401 to the bus I / F.
  • the processor in the data transmission from the bus master 401 to the bus I / F 402, as an example in which the data bus width changes, for example, the processor operates in the normal mode and the power saving mode in which power consumption differs. This corresponds to the case of switching.
  • the processor when the processor is operated from the normal mode to the power saving mode, power consumption is reduced by dynamically changing the bus width of the internal bus in the processor and stopping power supply to the unused bus.
  • Such a change in the bus width used on the bus master 401 side is notified to the bus I / F 402 as a part of the control signal.
  • the bus width is similarly changed when shifting from the power saving mode to the normal mode.
  • FIG. 19 shows an operation flow of the bus I / F 402 when the bus width dynamically changes during data transmission from the bus master 401.
  • the header information generation unit 408 of the bus I / F 402 acquires bus width information from the control information notified from the bus master 401. Even if the bus width is dynamically changed, information on the bus width at that time can be obtained from the control information each time. By performing the operation of FIG. 19, the bus I / F 402 can change the value of the bus width described in the header information in accordance with the change of the bus width set by the bus master 401.
  • the bus width value at which data is transmitted from the bus master 401 is notified as part of the control information.
  • the bus width in the power mode and the bus width in the normal mode are stored in advance, and a signal for determining whether the power saving mode or the normal mode is received from the bus master 401 as part of the control signal. Can be determined.
  • examples of changes in the bus width of transmission data from the bus master 401 include switching between narrow transfer processing and normal transfer processing from the bus master 401.
  • Narrow transfer is a function that can be used in a bus protocol such as AXI (Advanced Extensible Interface).
  • AXI Advanced Extensible Interface
  • a bus slave 405 for example, 8 bits or 16 bits
  • the bus width of the bus master 401 for example, 32 bits.
  • the bus slave 405 is a memory and it is desired to access only a part (for example, 8 bits) in one word, the data transfer is performed using only a part of the data line.
  • the bus width value used during narrow transfer is notified from the bus master 401 to the bus I / F 402 as part of the control signal. Therefore, the bus I / F 402 can change the bus width value described in the header information in accordance with the bus width value notified from the bus master 401.
  • the bus width value described in the header information may be changed based on the bus width information notified from the bus master 401 even for purposes other than power saving.
  • header information 900 can include information other than information related to the destination address and bus width. For example, in order to perform the control that guarantees the required quality for each packet in the relay device 403, header information such as class information expressing the severity of the required quality, deadline time information that is allowable delay with the required quality, etc. 900.
  • the relay apparatus 403 stores the received flits in the buffer based on the information on the class and deadline time in addition to the bus width value, and You may change the addressing setting for transmitting from the buffer.
  • FIG. 20 shows the configuration of the bus I / F 422 in which information related to the class and deadline time is described in the header information in addition to the bus width value.
  • the same components as those in FIG. 5 are denoted by the same reference numerals, and description thereof is omitted.
  • the bus I / F 422 has a required quality specifying unit 1801.
  • the required quality specifying unit 1801 is a circuit that specifies a class expressing the severity of required quality of a packet transmitted by the bus master 401 and a deadline time that is a delay time allowed by the quality request.
  • the value of the class and deadline time is directly notified from the bus master 401 to the required quality specifying unit 1801.
  • the class value of the bus master 401 may be stored in the storage unit 407 in advance, and the class value may be specified with reference to the storage unit 407.
  • the delay time allowed by the quality request is stored in the storage unit 407, and the deadline time is specified by adding the delay time allowable by the quality request to the time when the data is transmitted from the bus master 401 to the reception buffer 406. You may do it.
  • the header information generation unit 408 creates packet header information including information related to the class and deadline specified by the required quality specification unit 1801 in addition to the transmission destination address and bus width.
  • FIG. 21 shows an operation flow of the bus I / F 422 in which the required quality class and deadline time are described.
  • step 1901 the required quality specifying unit 1801 specifies the required quality of the bus master. Thereafter, the process proceeds to step 803.
  • the bus IF 402 generates and transmits a packet including information on the packet class and the deadline time.
  • FIG. 22 shows a packet storage control unit 413 of the relay device 403 that stores the received flits in a buffer and sets addressing for transmission from the buffer based on information on the packet class and deadline time in addition to the bus width.
  • movement flow of FIG. 6) is shown.
  • the same operations as those in FIG. 15 are denoted by the same reference numerals, and description thereof is omitted.
  • step 2001 the packet storage control unit 413 acquires the class and deadline time described in the header information from the packet analysis unit 411, and proceeds to step 2002.
  • step 2002 based on the class and deadline time described in the received packet, it is determined whether the packet has a restriction on the delay time. If there is a restriction on the delay time, the process proceeds to step 2003. If there is no restriction on the delay time, the process proceeds to step 1303.
  • buffer addressing is performed as a packet having a bus width of 64 bits regardless of the bus width value described in the header information.
  • the packet storage control unit 413 stores the received flit in the buffer and transmits it from the buffer based on the information about the packet class and the deadline time in addition to the bus width. Set the addressing.
  • a packet of a class having a restriction on delay time (deadline time) such as a voice call and a packet of a class having a restriction on delay time (deadline time) processed at best effort such as GPU processing are mixed in the relay apparatus 403.
  • the packets of each class are stored separately in the independent buffer 412, and the voice call quality can be guaranteed by preferentially transmitting the voice call packets.
  • the addressing may be set according to the bus width.
  • the addressing setting is changed depending on the type of packet class is shown.
  • the addressing may be changed based on the length of the remaining time until the deadline time.
  • the buffer may be selected based on the usage status of the destination buffer.
  • the “transmission destination” is an adjacent repeater or the bus I / F 404 on the bus slave 405 side.
  • the transmission destination relay apparatus has two buffers (buffer A and buffer B) having an access width of 64 bits, the buffer A is empty, and the buffer B stores a 32-bit flit. Assuming the situation.
  • the relay control unit 414 selects the buffer B as the storage destination in order to improve the use efficiency of the destination buffer.
  • the packet to be transmitted is a 64-bit flit and the buffer B is selected as the flit storage destination, the flit is divided and stored at different addresses in the buffer as in the packet 2 shown in FIG. .
  • the relay control unit 414 selects the buffer A as a storage destination in order to avoid the flits being divided and stored. It should be noted that as the usage status, instead of using the way in which the flits are stored in the buffer, the buffer free space or free space may be used.
  • the buffer may be selected based on the type of bus width of the flits stored in the buffer.
  • the transmission destination relay apparatus has two buffers (buffer A and buffer B) having an access width of 64 bits.
  • the buffer A stores only a 32-bit flit. Assume that only 64-bit flits are stored.
  • the relay control unit 414 selects the buffer A that stores only the 32-bit flit as the transmission destination buffer, and the packet to be transmitted is 64 In the case of bit flits, the buffer B in which only 64-bit flits are stored is selected as the destination buffer. In this way, by collecting flits of the same size for each buffer, it is easier to store and retrieve the flits and to improve the buffer utilization efficiency compared to the case where flits of various sizes are mixed.
  • the relay control unit 414 selects the buffer to be stored in the transmission destination relay apparatus based on the bus width of the flit to be transmitted and the usage status of the transmission destination buffer, thereby using the transmission efficiency of the transmission destination buffer. Can be further improved.
  • relay control unit 414 manages the use status of the relay measures buffer at the transmission destination by the control signal 604 on the NoC side.
  • the buffer selection for two types of flits having a bus width of 32 bits and 64 bits has been described as an example.
  • the transmission of data in the forward path in which the bus master 401 is a transmission node in FIG. 4 has been described as an example.
  • the bus I / F 404 on the bus slave 405 side has the same configuration as the bus I / F 402 on the bus master 401 side, and the data transmitted from the bus slave 405 is transferred to the bus slave.
  • bus masters and bus IFs
  • a system bus having the same bus width has been described as an example.
  • the present disclosure is not limited to having the same bus width for the entire system.
  • a bus system in which the bus width of the system bus is different from the bus width of the local bus when the system bus and the local bus are connected via a relay device (gateway) is also within the scope of the present disclosure. is there.
  • FIG. 23 shows an example of a system bus composed of a plurality of buses having different bus widths.
  • a local bus A with a bus width of 32 bits and a system bus with a bus width of 256 bits are connected via a relay device A (gateway A), and a bus width of 128 is connected via a relay device B (gateway B).
  • the bit local bus B and the system bus are connected.
  • FIG. 2 described above is an example in which the bus width is 32 bits and 256 bits, respectively, between the bus master and the bus IF, and the bus IF is connected to the relay device of the system bus.
  • a system (local bus) between the system bus and the system bus.
  • the relay device A receives a packet of data transmitted from a bus master (bus IF) having a bus width of 64 bits via the local bus A and transmits the packet to a system bus having a bus width of 256 bits.
  • the operation of relay device A at this time is the same as that of relay devices 205 and 206 in FIG.
  • the relay apparatus B receives a data packet transmitted from a bus master (bus IF) having a bus width of 128 bits via the local bus B and transmits the packet to a 256-bit system bus.
  • the operation of relay device B at this time is the same as that of relay devices 205 and 206 in FIG. Thereby, the utilization efficiency of the buffer of the relay apparatus which comprises a system bus can be improved.
  • the relay device can be used to improve the utilization efficiency of the buffer of the relay device in an integrated circuit including a distributed bus. For this reason, for example, when integrating a plurality of media processing DSPs with different bus widths or a CPU that performs high-speed file transfer on a single SoC (System on Chip) using a distributed bus. It is useful for realizing both resource saving of resources necessary for implementation and low processing delay.
  • SoC System on Chip
  • Bus system 401 Bus master 402, 422 Bus interface device (bus I / F) on the bus master side 403 Relay device 404 Bus I / F on the bus slave side 405 Bus slave 406 Reception buffer 407 Storage unit 408 Header information generation unit 409 Packetization unit 410 Transmission control unit 411 Packet analysis unit 412 Buffer 413 Packet storage control unit 414 Relay control unit 415 Switch allocation unit 416 Crossbar switch 417 Output control unit 1801 Request Quality Identification Department

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

 ネットワーク化された半導体バスを備える集積回路のバスシステムにおいて、中継装置内に設けられたバッファの利用効率を改善する。 バスシステムでは、複数のバスインタフェース装置および中継装置が、集積回路上に構築されたパケット交換方式のバスによって接続されている。各バスインタフェース装置は、バスシステムの1動作サイクルで送信するデータのビット数が異なる複数の送信ノードと接続されている。各バスインタフェース装置は、接続された送信ノードから受信したデータと、接続された送信ノードに関するビット数を示すサイズ情報を含むヘッダ情報とからパケットを生成して送信する。中継装置は、当該パケットを解析して、ヘッダ情報からサイズ情報を取得し、取得したサイズ情報に基づいてバッファへの格納量を設定し、受信したパケットをバッファに格納する。

Description

バスインタフェース装置、中継装置、およびそれらを備えたバスシステム
 本願は、ネットワーク化された半導体バスを備える半導体集積回路において、バスマスタとバススレーブとの間で送受信するデータを伝送する中継装置内に設けられたバッファの利用効率の改善技術に関する。
 集積回路の開発において、目的の機能や性能を実現するために、既存のバスマスタを再利用し繋ぎ合わせることで効率的に開発を行う取り組みがある。このような開発では、バス幅やバスプロトコル、要求品質の異なる多種多様なバスマスタを容易に接続できることが求められる。
 多種多様なバスマスタを容易に接続させる方法として、複数のバスマスタ間を、ネットワーク化したバスにより接続するネットワーク・オン・チップ(Network on Chip;以下「NoC」と記述する。)技術を利用した開発がある。NoCでは、バス幅やバスプロトコルの異なるバスマスタが送受信するデータがパケットに変換される。各パケットは、パケット交換方式により、中継装置を介して宛先のノードまで伝送される。
 パケット交換方式では、多種多様なデータがパケット化して送信される。これにより、共通の伝送路を介した伝送が実現される。しかしながら、伝送中に、中継装置が備えるパケットを格納するバッファの空容量が不足すると、伝送路の性能が低下するという課題がある。
 NoCに限らず、パケット交換方式の伝送路では、伝送性能を低下させることなく、限られたバッファの利用効率の改善することが求められる。
 特許文献1は、中継装置のバッファの利用効率を改善する方法の一例を開示する。ただし特許文献1は、IP(Internet Protocol)パケットを利用した、一般的なネットワーク技術に関している。特許文献1では、中継装置のバッファが輻輳状態にある場合には、優先度の低いクラスのパケットを廃棄し、優先度の高いクラスのパケットに対しバッファの利用を優先させる。これにより、中継装置の限られたバッファの利用効率が改善される。
特開2002-290455号公報
 従来技術では、インターネット等のように伝送経路上でのパケットロスの発生を前提とし、送受信ノード間でフロー制御が行われるネットワークを対象としている。このため、バッファの利用効率を改善するためにパケットを廃棄することが許容されていた。
 これに対し、半導体回路上のネットワーク化されたバスは、伝送経路上の中継装置間でフロー制御が行われ、伝送経路上でのパケットロスは基本的に発生しないよう設計されている。つまり、パケットを廃棄することは原則として考えられていない。そのため、中継装置に、特許文献1のような従来技術を適用するだけではバッファの利用効率を改善できない。仮に、バスマスタから送信されたデータを伝送路上で廃棄する場合には、バスマスタ側にデータの再送を行うための機能拡張が必要となる。これは、既存のバスマスタをそのまま再利用できないことを意味する。
 上記課題を解決するために、本発明の一態様は、複数のバスインタフェース装置および中継装置が、集積回路上に構築されたパケット交換方式のバスによって接続されたバスシステムであって、前記複数のバスインタフェース装置は、それぞれ、前記バスシステムの1動作サイクルで送信するデータのビット数が異なる複数の送信ノードと接続され、前記複数のバスインタフェース装置の各々は、接続された送信ノードから受信したデータを格納する受信バッファと、接続された前記送信ノードに関する前記ビット数を示すサイズ情報を記憶する記憶部と、前記サイズ情報を含むヘッダ情報を生成するヘッダ情報生成部と、前記ヘッダ情報および前記データからパケットを生成するパケット化部と、前記中継装置への前記パケットの送信を制御する送信制御部とを備え、前記中継装置は、前記バスインタフェース装置から受信した前記パケットを解析して、前記ヘッダ情報から前記サイズ情報を取得するパケット解析部と、受信した前記パケットを格納するバッファと、受信した前記パケットの送信先を決定する中継制御部と、前記バッファからの前記パケットの送信を制御する出力制御部と、取得した前記サイズ情報に基づいて、前記バッファへの格納量を設定するパケット格納制御部とを備えたバスシステムを含む。
 上述の一般的かつ特定の態様は、システム、方法およびコンピュータプログラムを用いて実装され、またはシステム、方法およびコンピュータプログラムの組み合わせを用いて実現され得る。
 本開示による一実施形態にかかる中継装置は、パケットに付与されたバスマスタ側のバス幅を認識し、バス幅に基づくパケットのバッファへの格納と、バッファからの送信のために、適切なアドレッシングを自動的に行えるため、バッファの利用効率の改善が行える。このため、中継装置毎の個別の設定が不要となり半導体集積回路の設計の簡略が行える。
 また、バッファの利用効率の改善により、伝送路のスループットが向上することで、半導体集積回路の性能保証に必要となるバスの動作周波数やバス幅の削減が可能となり、省電力化や面積削減を期待できる。
従来のNoCに設けられた中継装置のバッファ利用方法を示す図である。 例示的な本実施形態にかかるバスシステム400が構築された半導体集積回路の構成の一例を示す図である。 例示的な本実施形態によるバスシステムの動作の概要を示す図である。 本実施形態によるバスシステム400の具体的な接続例を示す図である。 バスI/F402の構成を示す図である。 中継装置403の構成を示す図である。 バスI/F402の動作フローを示す図である。 バスI/F402の入出力信号線の構成を示す図である。 記憶部407に記憶される内容の一例を示す図である。 記憶部407に記憶される内容の一例を示す図である。 パケット化部で生成されるパケット610の構成の一例を示す図である。 ヘッダ情報生成部408の動作フローを示す図である。 パケットヘッダに記載される情報の一例を示す図である。 送信制御部410の動作フローを示す図である。 中継装置403の動作フローを示す図である。 パケット格納制御部413の動作フローを示す図である。 受信フリットをバッファ412に格納する場合、及びバッファ412からフリットを送信する場合のアドレッシングの設定の一例を示す図である。 中継制御部414の動作フローを示す図である。 スイッチ割当部415の動作フローを示す図である。 バスマスタ401からのデータ送信において、動的にバス幅が変化する場合のバスI/F402の動作フローを示す図である。 バス幅の値に加えて、クラスや締切時刻に関する情報をヘッダ情報に記載するバスI/F422の構成を示す図である。 要求品質のクラスや締切時刻を記載するバスI/F422の動作フローを示す図である。 バス幅に加えて、パケットのクラスや締切時刻に関する情報に基づき、受信したフリットをバッファへ格納し、バッファから送信するためのアドレッシングを設定する中継装置403のパケット格納制御部413(図6)の動作フローを示す図である。 バス幅の異なる複数のバスから構成されるシステムバスの例を示す図である。
 図1は、従来のNoCに設けられた中継装置のバッファ利用方法を示す。図1では、バス幅が異なるバスマスタ201およびバスマスタ202が、それぞれバスインタフェース装置(以下「バスI/F」と記述する。)203および204を介して、中継装置205に接続されている。中継装置205は中継装置206と接続されている。後述する図2との関係では、中継装置205および中継装置206はシステムバスに設けられており、そのシステムバスのバス幅は64ビットに統一されているとする。
 本開示においては、出力に利用するバスの幅(バス幅)が異なる複数のバスマスタがNoC上に存在しているとする。図1では、バスマスタ201が利用するバス幅は64ビットであり、バスマスタ202が利用するバス幅は32ビットである。中継装置205および206は、64ビット単位でバッファを管理しているとする。この「バス幅」とは、バスシステムの1動作サイクルで送信するデータのビット数を意味する。本開示においては、バスマスタのバス幅を示す情報を、「サイズ情報」と呼ぶこともある。
 なお後述するように、NoC上を伝送される際、データはパケット化される。そのため、バスマスタが64ビットのデータを出力してもそのデータが一度にそのまま中継装置まで送られることはない。データは複数に分割され、それぞれにヘッダ等が付与されて、64ビットのサイズを有するパケットの形態で伝送される。
 バスI/F203、204は、バスマスタから送信されたデータをパケットに変換する回路である。
 バスI/F203は、バス幅が64ビットのバスマスタ201から送信されたデータを、64ビットのデータとしてパケット化し、中継装置205へ送信する。
 これに対し、バスI/F204は、バス幅が32ビットのバスマスタ202から送信されたデータを、64ビットのバス幅に合わせる処理を行ってパケット化し、中継装置205へ送信する。具体的にはバスI/F204は、バス幅が64ビットの中継装置205へ送信する際に、バス幅の違いに対応するため、32ビットのバス幅で送信されたデータに対し、32ビット分のダミーデータを付与する。これにより、データのバス幅を64ビットに合わせることが可能になる。この64ビットのデータはバスI/F204においてパケット化され、中継装置205に送信される。これにより、中継装置205および206側では、バス幅の異なるバスマスタ201とバスマスタ202が送信したパケットを、全て64ビットのデータが格納されたパケットとして扱うことが可能となる。
 いま、中継装置のバッファ(たとえば中継装置206のバッファ207)に注目する。バスI/F204から送信された、バスマスタ202からのデータ、およびダミーデータを含むパケットを、64ビットのパケットとしてそのままバッファ207に格納すると、バッファの一部がダミーデータによって占有される。ダミーデータは情報として利用されないため、ダミーデータがバッファ207に格納されるほど、バッファ207の利用効率が低下する。
 例えば、図1の例では、パケット1およびパケット3は、バスマスタ202から送信されたデータを含むパケットである。そのため、パケットの半分をダミーデータが占めている。一方のパケット2は、バスマスタ201から送信されたデータを含むパケットである。このような場合、バッファ207の約1/3がダミーデータに占有されていることになる。これでは、バッファ207の利用効率が低下する。
 なお、バス幅が32ビットで送られたデータであっても、データ全体で見たときのサイズが大きい場合には、バスI/F204において、32ビットのデータを2つずつ統合して64ビットのデータを構成することが可能である。このように統合するとダミーデータを削減することができる。しかしながら、全てのデータをそのように取り扱うことはできない。その理由は、コマンドデータのようにサイズの小さいデータが送信され得るからである。サイズの小さいデータが送信された場合には、依然としてダミーデータを付与することが必要である。よって、ダミーデータによるバッファの占有をなくすことができない。
 また、バスI/F204において、32ビットのコマンドデータを含むパケットが連続して送信される場合には、コマンドパケットを2つずつ統合し、64ビットのパケットを構成して送信することでダミーデータを削減する方法が考えられる。しかし、コマンドを統合して送信するためには、バスマスタ202から送信されるコマンドが連続して送信されるのか、単発で送信されるのかによって、複数のコマンドを統合して送信すべきか、ダミーデータを付与して送信すべきかの判断が必要となる。このため、バスマスタ202からバスI/F204に対して、これから送信されるコマンドの数や送信間隔を通知するための機能拡張が必要となる。
 さらに、バスI/F204側でパケットの統合を行うためには、データを一旦蓄えるためのバッファと専用の回路が必要となる。このような個別の対応をバスマスタやバスI/Fに対して行うと、多種多様なバスマスタを接続した開発が容易に行えなくなる。
 データを統合するいずれの変形例に関しても、64ビットのバス幅が利用されるNoC上の中継装置では、バスI/Fは、64ビットのデータとしてパケットを伝送する必要がある、という制約が課せられている。
 本発明の一態様の概要は以下のとおりである。
 本発明の一態様であるバスシステムは、複数のバスインタフェース装置および中継装置が、集積回路上に構築されたパケット交換方式のバスによって接続されたバスシステムであって、前記複数のバスインタフェース装置は、それぞれ、前記バスシステムの1動作サイクルで送信するデータのビット数が異なる複数の送信ノードと接続され、前記複数のバスインタフェース装置の各々は、接続された送信ノードから受信したデータを格納する受信バッファと、接続された前記送信ノードに関する前記ビット数を示すサイズ情報を記憶する記憶部と、前記サイズ情報を含むヘッダ情報を生成するヘッダ情報生成部と、前記ヘッダ情報および前記データからパケットを生成するパケット化部と、前記中継装置への前記パケットの送信を制御する送信制御部とを備え、前記中継装置は、前記バスインタフェース装置から受信した前記パケットを解析して、前記ヘッダ情報から前記サイズ情報を取得するパケット解析部と、受信した前記パケットを格納するバッファと、受信した前記パケットの送信先を決定する中継制御部と、前記バッファからの前記パケットの送信を制御する出力制御部と、取得した前記サイズ情報に基づいて、前記バッファへの格納量を設定するパケット格納制御部とを備えている。
 ある実施形態において、前記中継装置のパケット格納制御部は、前記サイズ情報によって示されるビット数を単位として前記パケットに前記バッファのアドレスを割り振り、前記バッファは、前記パケット格納制御部が割り振ったアドレスにしたがって、受信した前記パケットを格納する。
 ある実施形態において、前記複数の送信ノードは、第1のビット数でデータを送信する第1送信ノードと、第1のビット数よりも少ない第2のビット数でデータを送信する第2送信ノードとを含み、前記バスでは、前記第1および第2のビット数以上の第3のビット数で前記データが伝送される場合に、前記第2送信ノードと接続されたバスインタフェース装置の送信制御部は、前記第2のビット数のデータを含む第3のビット数で前記パケットを前記中継装置に送信し、前記中継装置のパケット格納制御部は、前記サイズ情報が示す前記第2のビット数を単位として前記バッファのアドレスを割り振り、前記中継装置のバッファは、前記第2のビット数のパケットを格納する。
 ある実施形態において、前記中継装置のパケット格納制御部は、取得した前記サイズ情報に基づいて、前記バッファから送信されるパケットの送信量をさらに制御する。
 ある実施形態において、前記サイズ情報は可変であり、所定の送信ノードに関して前記ビット数を示すサイズ情報が変化したときは、前記所定の送信ノードに接続されたバスインタフェース装置のヘッダ情報生成部は、前記ヘッダ情報に含まれるサイズ情報を変更する。
 ある実施形態において、前記所定の送信ノードは、電力の消費が異なる複数の動作モードを有しており、前記ビット数を示すサイズ情報の変化は、前記動作モードの変化に応答して発生する。
 ある実施形態において、前記所定の送信ノードは、第1のビット数で転送するデータ転送モードと、前記第1のバス幅よりも狭い第2のビット数で転送するデータ転送モードとを切り替えることが可能であり、前記ビット数を示すサイズ情報の変化は、前記データ転送モードの切り替えに応答して発生する。
 ある実施形態において、前記バスインタフェース装置は、接続された送信ノードの要求品質を特定する要求品質特定部をさらに備えており、前記バスインタフェース装置のヘッダ情報生成部は、前記要求品質の情報をさらに含むヘッダ情報を生成し、前記中継装置のパケット解析部は、受信した前記パケットのヘッダ情報に記載された、前記サイズ情報と前記要求品質を示す情報を取得し、前記中継装置のパケット格納制御部は、前記サイズ情報および前記要求品質に基づいて、前記バッファへの格納量を設定する。
 ある実施形態において、前記要求品質特定部は、接続された前記送信ノードから、前記送信ノードの要求品質を特定する情報を取得し、前記要求品質が遅延時間に関する制約がないことを示しているときは、前記中継装置のパケット格納制御部は、パケット毎に前記ヘッダ情報に含まれるサイズ情報に基づき、前記バッファへの格納量を設定する。
 ある実施形態において、前記要求品質特定部は、接続された前記送信ノードから、前記送信ノードの要求品質を特定する情報を取得し、前記要求品質が遅延時間に関する制約が所定値以上に厳しいことを示しているときは、前記中継装置のパケット格納制御部は、前記バッファへの格納量とバッファからの送信量を、予め定めた一定のビット数に基づき制御する。
 ある実施形態において、前記遅延時間に対する制約は、要求品質に対する厳しさを表現したクラス、および要求品質で許容できる遅延時間である締切時刻の少なくとも一方によって表される。
 ある実施形態において、前記バスインタフェース装置のヘッダ情報生成部は、中継装置が利用する中継装置情報、およびバスインタフェース装置が利用するバスインタフェース情報の順に前記ヘッダ情報を生成する。
 ある実施形態において、前記中継装置の中継制御部は、前記パケット解析部によって取得された前記サイズ情報と、前記パケットの送信先である他の装置のバッファの利用状況に基づき、受信した前記パケットを格納するための前記他の装置のバッファを選択する。
 ある実施形態において、前記パケットの送信先である他の装置のバッファの利用状況は、前記バッファにおけるフリット格納のされ方、格納しているフリットのビット数の種類、およびバッファの空容量の少なくとも1つである。
 本発明の他の一態様であるバスインタフェース装置は、集積回路上に構築されたパケット交換方式のバスと、前記バスにデータを送信する送信ノードと、前記バス上に設けられて前記データの伝送を中継する中継装置とを有するバスシステムにおいて用いられるバスインタフェース装置であって、送信ノードと接続され、前記送信ノードから受信したデータを格納する受信バッファと、前記送信ノードに関するビット数を示すサイズ情報を記憶する記憶部と、前記サイズ情報を含むヘッダ情報を生成するヘッダ情報生成部と、前記ヘッダ情報および前記データからパケットを生成するパケット化部と、前記中継装置への前記パケットの送信を制御する送信制御部とを備えている。
 ある実施形態において、前記バスおよび前記中継装置は、1動作サイクルで第1ビット数のデータを送信し、前記送信ノードは、前記第1ビット数と異なる第2ビット数のデータを送信する場合に、前記ヘッダ情報生成部は、前記中継装置において受信したパケットのバッファへの格納量の設定に用いる前記第2ビット数を示すサイズ情報を含むヘッダ情報を生成する。
 本発明のさらに他の一態様である中継装置は、バスシステムにおいて用いられる中継装置であって、前記バスシステムは、集積回路上に構築されたパケット交換方式のバスと、前記バスにデータを送信する送信ノードと、前記送信ノードと前記バスとを接続するバスインタフェース装置とを有し、前記バスインタフェース装置は、前記送信ノードから受信したデータ、および前記送信ノードに関するビット数を示すサイズ情報を含むヘッダ情報から生成したパケットを出力し、前記中継装置は、前記バスインタフェース装置から受信したパケットを解析して、前記ヘッダ情報から前記サイズ情報を取得するパケット解析部と、受信した前記パケットを格納するバッファと、受信した前記パケットの送信先を決定する中継制御部と、前記バッファからの前記パケットの送信を制御する出力制御部と、取得した前記サイズ情報に基づいて、前記バッファへの格納量を設定するパケット格納制御部とを備えている。
 以下、添付の図面を参照しながら、本開示による通信システム、中継装置、およびインタフェース装置の実施形態を説明する。
 本開示の各実施形態の説明に先立って、まず、本開示において対象とする半導体集積回路を説明する。
 図2は、本実施形態にかかるバスシステム400が構築された半導体集積回路の構成の一例である。
 本実施形態では、バスマスタからの入出力のアクセスのビット幅や、通信のプロトコルの異なる複数のバスマスタを接続して構成されるバスシステムが構築された半導体集積回路を対象としている。各バスマスタは、バスI/Fおよび中継装置を有するネットワーク化されたシステムバスを介して共有メモリと接続される。バスI/Fは、バスマスタが送信したデータをパケットに変換する処理を行い、またパケットからデータを抽出する処理を行う回路である。中継装置は、パケット化されたデータを宛先のノードへと転送する回路である。
 なお、図2では中継装置をリング状に接続した構成を示しているが、本開示が対象とする半導体集積回路はリング状に接続された構成に限定されない。中継装置を格子状に配置したメッシュ型や、中継装置を多段に接続した階層型などその他の構成も本開示の対象である。また、図2では、複数のバスマスタが1つの共有メモリに接続する例を示したが、共有メモリの数は1つに限定されるものではなく、複数の共有メモリと接続しても良い。また、メモリ以外にも外部回路とのI/O(Input Output)と接続しても良い。
 図3は、本実施形態によるバスシステムの動作の概要を示す。
 本実施形態では、バスマスタが送信したデータを、バスI/Fがパケットに変換する際に、パケットヘッダにバスマスタ側のバス幅の値を記載する。中継装置205および206は、パケットヘッダに記載されたバス幅を示す値を読み出すことにより、パケットに含まれる実際のデータとダミーデータの値を判定できる。
 なお、ここでいう「ダミーデータ」とは、たとえば64ビットに統一されたバス幅を有するバス(たとえば図2に示すシステムバス)で32ビットのデータを送信する際に、実際に伝送される32ビットのデータに加えて必然的に送信されてしまうデータである。バスを64ビット幅で駆動するため、実際に伝送される32ビットだけでなく、残りの32ビットも結果として何らかのデータが送信されていることになる。このダミーデータは無効な値であり、たとえば予め定められた値(「0」または「1」のみ)を並べたデータを用いても良い。
 また、中継装置205および中継装置206は、受信したパケットヘッダに記載されたバス幅の値に基づき、パケットに含まれる実際のデータのみをバッファ207に格納する。
 例えば、図3の例では、バス幅32ビットのバスマスタ202からのパケット1とパケット3に対しては、ダミーデータを取り除いた実際のデータ部分だけをバッファに格納する。また、バス幅が64ビットのバスマスタ201のパケットについては、パケット1からダミーデータを取り除いたことで発生した32ビットの空きを詰めてパケットを格納する。これにより、図1の例との比較では、本実施形態ではバッファ207内の利用量を約2/3に削減し、バッファの利用効率を改善することができる。
 また、図3の例では、パケットが届いた順に、バッファの0番地から詰めて格納したためパケット2が0番地と1番地に32ビットずつ別れて格納されている。この場合、パケット2の格納、及び取り出しには0番地と1番地に2回アクセスする必要があり、遅延時間が増加する。このため、全てのパケットに対して1回でアクセスができるように、バス幅が64ビットのパケット2を番地1にまとめて格納し、番地0にはバス幅が32ビットのパケット1とパケット3を格納するようにしても良い。
 このように、本開示では、パケットヘッダに記載された、送信元のバスマスタからバスI/Fへのアクセス時のバス幅に基づき、中継装置側が、自動的にパケットのバッファ207への格納方法を自動的に変更することで、バッファの利用効率の改善を行う。
 以下、図を参照しながら実施の形態を説明する。
 図4は、本実施形態によるバスシステム400の具体的な接続例を示す。図4に示すように、バスマスタ401、バスI/F402、中継装置(群)403、バスI/F404、およびバススレーブ405がこの順で接続されている。
 本開示のバスI/F402と中継装置403は、バス幅の異なる複数のバスマスタ401と、複数のバススレーブ405を接続するネットワーク・オン・チップでの利用を前提としている。
 なお、バスシステム400に組み込まれるバスマスタ401として、既存の処理回路、たとえばメディア処理用のDSP、高速なファイル転送を行うCPUを利用することができる。また、バススレーブ405として共有メモリや共通のIO(input output)等が利用できる。このとき、既存の処理回路に適合するようバスI/F402および404を動作させればよい。
 なお、バススマスタ401からバススレーブ405に至るまでにデータが通過する経路を往路とし、スレーブからバスマスタに至るまでにデータが通過する経路を復路とする。往路では、バスマスタ401がデータを送信する送信ノードになる。バスI/F402は、バスマスタ401と中継装置403を接続する回路であり、バスマスタ401から送信されたデータを、中継装置403が受信できるパケットに変換する。また、バスI/F404は、中継装置403とバススレーブ405とを接続する回路である。バスI/F404は、中継装置403から送信されたパケットを受け取り、バススレーブ405が受信できるデータに変換し、バススレーブ405に送信する。
 復路では、バススレーブ405がデータを送信する送信ノードになる。バスI/F404は、バススレーブ405から送信されたデータを受け取り、そのデータを中継装置403が受信できるパケットに変換し、中継装置403に送信する。また、バスI/F402は、中継装置403からパケットを受け取り、バスマスタ401が受信できるデータに変換して、バスマスタ401に送信する。
 なお、以下の説明では、バスマスタ401が送信ノードとなる往路を例に説明する。
 図5は、バスI/F402の構成を示す。
 バスI/F402は、受信バッファ406、記憶部407、ヘッダ情報生成部408、パケット化部409、送信制御部410を有している。
 受信バッファ406は、バスマスタ401が送信する宛先アドレス、制御信号、データを一時的に記憶するメモリである。
 記憶部407は、バスマスタ401がデータの送信時に利用するバス幅を記憶しているメモリである。
 ヘッダ情報生成部408は、バスマスタ401から送信された宛先のアドレス、制御信号の内容、及び記憶部407に記憶されたバス幅情報に基づき、パケットに付与するヘッダ情報を生成する回路である。
 パケット化部409は、受信バッファ406に格納されたデータに対し、ヘッダ情報生成部408で生成したパケットヘッダを付与することで、データのパケット化を行う回路である。
 送信制御部410は、パケット化部408で生成されたパケットを、フリット(1サイクルで送れるデータ単位)に分割し、1フリットずつ中継装置403へ送信を行う回路である。
 図6は、中継装置403の構成を示す。
 中継装置403は、バスI/F402から送信されたパケットを、宛先のバススレーブ405まで送信する装置である。中継装置403は、パケット解析部411、バッファ412、パケット格納制御部413、出力制御部417を有している。
 パケット解析部411は、受信したパケットヘッダ情報から、パケットの宛先アドレスとバス幅の値を取得する回路である。
 バッファ412は、パケットを一時的に記憶するメモリである。
 パケット格納制御部413は、パケット解析部411で取得したバス幅の情報に基づいて、バッファ412へのフリットの格納処理、及びバッファ412からのフリット送信時におけるアドレッシングの設定を行う回路である。格納処理に関して「アドレッシング」とは、バッファ等の記憶領域にデータを格納するため、記憶領域を割り当てる処理をいう。一方、送信処理に関して「アドレッシング」とは、記憶領域の中から送信先(宛先)へ送るデータを取り出す領域を決定する処理をいう。
 中継制御部414は、パケットの宛先アドレスに基づき、中継装置403が送信するパケットを送信先の中継装置で格納するバッファを決定する回路である。
 出力制御部417は、バッファからのパケットの送信を制御する。出力制御部417は、スイッチ割当部415およびクロスバスイッチ416を含む。
 クロスバスイッチ416は、複数のバッファと中継装置403の出力先との接続を切り替えるスイッチ回路である。
 スイッチ割当部415は、クロスバスイッチ416の接続を切り替える回路である。
 最後に、バススレーブと接続するバスI/F404は、中継装置403とバススレーブ405を接続する回路であり、中継装置403から送信されたパケットをバススレーブ405が受信できるデータに変換する。
 図7は、バスI/F402の動作フローを示す。
 バスI/F402は、バスマスタ401から受信したデータを、バスマスタ401とバスI/F402との間のバス幅の値を含むパケットに変換し、パケットを中継装置403に送信するために、以下のステップを実行する。
 ステップ501において、バスI/F402は、バスマスタ401からデータ送信の有無を判定する。バスマスタ401からデータ送信があればステップ502へ移る。バスマスタ401からのデータ送信がなければステップ501を繰り返す。
 ステップ502において、バスマスタ401からデータ送信がある場合、バスI/F402は、バスマスタから送信されたデータを受信バッファ406内に格納する。
 ステップ503において、受信バッファ406にデータが格納されると、ヘッダ情報生成部408は、バスマスタが送信したデータのバス幅の値を含むヘッダ情報を生成する。なお、ヘッダ情報生成部408の詳細な動作については、図11を参照しながら後に説明する。
 ステップ504において、パケット化部409は、ヘッダ情報生成部408で生成されたヘッダ情報をバスマスタ401が送信したデータに付与し、パケットの作成を行う。
 ステップ505において、送信制御部410は、所定の送信レートに基づく送信間隔で、パケット化部409で生成されたパケットを送信する。
 以上、バスIF402は、ステップ501からステップ505の動作を行うことで、バスマスタ401から送信されたデータを、バスマスタ401とバスI/F402の間のバス幅の値を含むパケットに変換し、中継装置403へ送信する。
 図8は、バスI/F402の入出力信号線の構成を示す。
 バスマスタ401とバスI/F402の間は、データの宛先のアドレスを通知するための信号線601、バスマスタ側のバスプロトコルを制御するための信号線602、実際のデータを伝送するための信号線603で接続されている。
 また、バスI/F402と中継装置403の間は、NoC側の機器の制御を行うための信号線604、パケット化されたデータを送信する信号線605で接続されている。
 上述のように、バスマスタ401に接続されるバスI/F402の信号線と、中継装置403に接続されるバスI/F402の信号線とは異なっている。中継装置403に接続される信号線のバス幅は予め定められている。よってバスI/F402は、予め定められたデータ幅(サイズ)のデータを送信する。なお、上述のように、データ幅が定められているとしても、その信号線を流れるデータの全てが必要とされるわけではない。全体のうちの、一部のビット(たとえば64ビットのバス幅に対し32ビット)の実効データを送信してもよい。上述したように、送信されるデータには、単なるコマンドもあれば、メモリに記憶させるべきデータもある。送信されるデータの内容によって信号線を流れるデータのサイズも互いに異なり得る。
 図9Aおよび9Bは、記憶部407に記憶される内容の一例を示す。記憶部407は、バスマスタ401とバスI/F402とのデータ線のバス幅の値を記録している。
 図9Aの例では、バスマスタ401とバスI/F402を接続するバスとして、記憶部407には、バス幅が64ビットのバスが設定されている。バス幅の値は、バスI/F402毎に予め設定されている。また、図9Bの例では、記憶部407にはバス幅が32ビットのバスが設定されている。
 なお、記憶部407に記憶されるバス幅の値は、予め設定する以外にも、例えば、バスマスタ401がデータを送信する際に、バスマスタ401からバスI/F402へ制御信号の一部としてバス幅の値を通知する方法や、バスI/F402側がバスマスタ401と接続するデータ線の中から実際に信号が通知された配線を識別し、バス幅の値を取得しても良い。
 図10は、パケット化部で生成されるパケット610の構成の一例を示す。図10に示すパケット610の構成は、バス幅が64ビットのバスで伝送される場合の例を示している。パケット610はヘッダ領域611とデータ領域612とに分けられる。
 ヘッダ領域611は、パケットの先頭に設けられる。ヘッダ領域611には、後述する図12に示されるヘッダ情報が格納される。このヘッダ情報は、ヘッダ情報生成部408によって生成される。
 一方、データ領域612には、バスマスタ401から送信されたデータが格納される。
 なお、半導体集積回路のバスシステム400では、パケットの送信は、パケットをさらに分割したフリット単位で行われる。フリットとは、バスシステム400を動作させるクロックの1サイクルでバスが送信可能なデータである。フリットは、パケットに格納されたヘッダ情報を含む、1または複数のヘッダフリット613と、パケットに格納されたデータを含む、1または複数のデータフリット614とに分類される。パケットをフリットに分割する処理は、送信制御部410によって行われる。
 なお、図10では、ヘッダ領域611とデータ領域612の双方を含むパケットを示したが、パケット610は、ヘッダ領域611だけから構成されていてもよい。例えば、バスマスタからメモリに対し、リード要求を行う場合には、データを含まない制御信号のみがヘッダ領域に格納されて送信される。
 以下、ヘッダ情報生成部408が、パケットのヘッダ領域に格納されるヘッダ情報を生成する処理を説明する。
 図11は、ヘッダ情報生成部408の動作フローを示す。
 ヘッダ情報生成部408は、バスマスタ401から通知された信号と、記憶部407に記憶されたバス幅に関する情報とに基づいて、ヘッダ情報を生成する。ここでいう「バスマスタ401から通知された信号」とは、図8に示される信号線601を介して伝送される信号であり、データの宛先のアドレスを示す信号である。ヘッダ情報生成部408の具体的な処理が、以下のステップ801からステップ803である。そして、ヘッダ情報生成部408によって生成されたヘッダ情報のデータ構造が、後述する図12に示されている。まず図11を参照しながら、ヘッダ情報を生成する処理を説明する。
 図11は、ヘッダ情報生成部408の動作の手順を示すフローチャートである。
 ステップ801において、ヘッダ情報生成部408は、バスマスタ401から信号線601を介して送信された宛先アドレスの情報を取得する。また必要に応じて、信号線602を介して伝送される、バスマスタ側で利用されているバスプロトコルの制御情報を取得する。
 ステップ802において、ヘッダ情報制御部408は、記憶部407からバス幅の値を取得する。
 ステップ803において、ヘッダ情報制御部408は、取得した宛先アドレス、バスプロトコルの制御情報、バス幅の値を含むパケットヘッダを生成する。
 以上、ステップ801からステップ803を実行することにより、ヘッダ情報生成部408は、バス幅に関する情報を含むヘッダ情報を生成する。
 なお、ヘッダ情報に含まれるバス幅の値は、実施のバス幅の値を直接記載する以外にも、予め利用されるバス幅の種類をバスI/F402と中継装置403の間で定義し、その種類を特定する情報をヘッダ情報に記載するなど、中継装置403側で実際に利用されるバス幅の値が特定できる情報であれば良い。
 例えば、事前にバスマスタ401の識別子とバス幅の値を対応づけたテーブルを、バスI/F402と中継装置403がそれぞれ保持し、バス幅の値の代わりにマスタの識別子をヘッダ情報に記載しても良い。
 または、ヘッダ情報生成部408は、通信の度にバスマスタ401からバス幅を示す情報を取得しなくてもよい。たとえばバスマスタ401が利用するバスのバス幅が不変である場合には、記憶部407にそのバス幅を示す情報を保持させておき、動作開始時にヘッダ情報生成部408が一度その値を参照すればよい。
 図12は、パケットヘッダに記載される情報の一例を示す。
 パケットヘッダに記載される情報として、大きく3種類の情報が記載される。
 1つ目は、中継装置403の制御に利用する中継装置情報901である。宛先アドレス情報、及びバス幅の値は、中継装置403で必要な情報であり中継装置情報に記載される。
 2つ目は、バススレーブ405側のバスIF404で利用されるバスIF情報902である。バスIF情報には、バススレーブ405からの返信用のパケットを作成するために必要となる送信元のアドレスや、送信パケットと返信パケットの対応関係を特定するためのパケットIDなどが記録される。
 3つ目は、AXI(Advanced eXtensible Interface)やOPC(Open Core Protocol)などの独自情報を記述するバスプロトコル情報903である。
 ヘッダ情報は、パケットが伝送経路上で通過する装置の順に合わせて、まず中継装置で利用される中継装置情報、次にバスI/F404で利用されるバスI/F情報、最後にバスマスタ401とバススレーブ405で利用されるバスプロトコル情報の順に記載する。
 この順序でヘッダ情報を構成することで、中継装置403やバスI/F404が、ヘッダ情報からの必要な情報を読み込むまでの時間が短縮され、処理を高速化できる。
 図13は、送信制御部410の動作フローを示す。
 送信制御部410は、パケット化部409で生成されたパケットを中継装置403に送信するために、以下のステップを行う。
 まずステップ1101において、送信制御部410は、予め設定された送信レートに基づき、パケットの送信間隔を調整する。
 ステップ1102において、送信制御部410は、パケット化部409で生成されたパケットをフリットに分割する。
 ステップ1103において、送信制御部410は、分割したフリットをヘッダフリットから順番に送信する。
 以上、ステップ1101からステップ1103を繰り返し行うことで、バスI/F402は、所定の送信レートでパケットを中継装置403へと送信する。
 次に、バスI/F402から出力されたパケットを、中継装置403がどのように処理するかを説明する。
 図14は、中継装置403の動作フローを示す。
 中継装置403は、バスI/F402から出力されたパケットをフリット単位で受信する。このとき中継装置403は、受信パケットに記載されたバス幅の値に基づいて、バッファの利用効率を高くするための処理を行う。具体的には以下のステップを実行する。
 ステップ1201において、パケット解析部411は、受信するフリットが存在するかどうかを判定する。フリットを受信しない場合はフリットを受信するまでステップ1201を繰り返す。フリットを受信した場合にはステップ1202に移る。
 ステップ1202において、パケット解析部411は、受信したパケットがヘッダフリットであるかどうかを判定する。ヘッダフリットであるかどうかの判断は、たとえば、各フリットに対してフリットの種類を識別する識別子を付与しておき、ヘッダフリットであることを示す識別子の有無により判断すればよい。あるいは、ヘッダフリットに図12に示すデータ構造の一部が含まれているかどうかによって判断してもよい。たとえば、ヘッダフリットが複数存在する場合であっても、最初のヘッダフリットには図12に示す中継装置情報901が格納されている。パケット解析部411は、中継装置情報901が格納されているフリットかどうかによって、受信したパケットがヘッダフリットであるかどうかを判定することができる。ヘッダフリットである場合にはステップ1203に移る。ヘッダフリットでない場合には、ステップ1204に移る。
 ステップ1203において、パケット解析部411は、ヘッダフリットに記載されるヘッダ情報から、バス幅の値と宛先アドレスの情報を取得する。
 ステップ1204において、パケット格納制御部413は、パケット解析部411で取得したバス幅の情報に基づき、受信したフリットをバッファへ格納し、及びバッファから送信するためのアドレッシングを設定する。パケット格納制御部413の動作の詳細は、図15および図16を参照しながら、後に説明する。
 ステップ1205において、中継制御部414は、パケット解析部411で取得した宛先アドレスの情報に基づき、送信先の中継装置403を決定し、さらにそのパケットを格納するためのその中継装置403のバッファ412を選択する。中継制御部414の動作の詳細は図17を参照しながら後に説明する。
 ステップ1206において、パケット格納制御部413は、ステップ1204で設定したアドレッシングに基づきフリットをバッファに格納する。
 ステップ1207において、スイッチ割当部415は、中継装置403の出力毎に、フリットを送信するバッファを1つ決定する。
 ステップ1208において、スイッチ割当部415は、クロスバスイッチ416の接続を切り替えて、ステップ1204で設定したアドレッシングに基づきフリットをバッファ412から送信する。
 以上、ステップ1201からステップ1208を行うことで、中継装置403は、受信パケットに記載されたバス幅の値に基づいて、バッファ412の利用効率が高くなるように、パケットを格納する。各中継装置が同様に動作することにより、パケットが宛先のノードまで送信される。
 図15は、パケット格納制御部413の動作フローを示す。
 パケット格納制御部413は、ヘッダフリットに記載されたバス幅の値に基づいて、受信したフリットをバッファ412へ格納し、バッファ412からの送信のためのアドレッシングを設定するために、ステップ1301からステップ1304を実行する。
 ステップ1301において、パケット格納制御部413は、パケット解析部411から、ヘッダフリットに記載されたバス幅の値を取得する。
 ステップ1302において、パケット格納制御部413は、受信したフリットを格納するバッファ412を特定する識別情報(バッファID)を取得する。
 ステップ1303において、パケット格納制御部413は、まず、ステップ1301で取得したバス幅の値、およびステップ1302で取得したバッファIDに基づいて、受信したフリットをバッファ412に格納し、及びそのフリットをバッファ412から送信するためのアドレッシングの設定を参照する。そしてパケット格納制御部413は、受信したフリットを格納するバッファの、現在のアドレッシングの設定が、バス幅の値と一致するかどうかを判定する。一致しない場合にはステップ1304に移る。一致する場合には処理を終了する。なお、動作開始時には、「現在のアドレッシングの設定」として予め設定されたアドレッシングの設定値が適用される。
 ステップ1304において、受信したフリットのバス幅の値に合わせて、バッファ412への格納、及びバッファ412からの送信のためのアドレッシングの設定を変更する。
 以上、ステップ1301からステップ1304を実行することにより、パケット格納制御部413は、ヘッダフリットに記載されたバス幅の値に基づいて、受信したフリットをバッファ412へ格納、及びバッファ412からの送信のためのアドレッシングの設定を変更する。
 図16は、受信フリットをバッファ412に格納する場合、及びバッファ412からフリットを送信する場合のアドレッシングの設定の一例を示す。
 図16の(A)は、受信パケットのヘッダ情報に記載されているバス幅が64ビットのフリットを格納する場合のアドレッシングの例である。
 バス幅が64ビットの場合、パケット格納制御部413は、バッファ412には、64ビット毎にフリットを格納するアドレスを割り振る。パケット格納制御部413は、受信したフリットをそのまま格納する。また、バッファ412からフリットを送信する場合は、パケット格納制御部413は、64ビットのサイズでバッファからフリットを取り出し、出力制御部417を介してそのまま送信する。
 図16の(B)は、受信パケットのヘッダ情報に記載されているバス幅が32ビットのフリットを格納する場合のアドレッシングの例である。
 バス幅が32ビットの場合、バッファ412には、32ビット毎にフリットを格納するようにアドレスが割り振られている。パケット格納制御部413は、受信フリット615のうち、ダミーデータ615bを取り除いた、実際のデータ615aのみをバッファ412に格納する。
 また、バッファ412からフリットを送信する場合には、パケット格納制御部413は、32ビットのサイズでバッファからフリット(データ615a)を取り出し、さらに32ビットのダミーデータ616bを付与する。これにより、続く出力制御部417が、アクセスサイズが64ビットのパケット616として送信することができる。
 以上のように、パケット格納制御部413が、受信フリットに記載されたバス幅の情報を利用することにより、フリットのバッファ412への格納方法、及びバッファからの送信のためのアドレッシング方法を変更する。これにより、バッファ412の利用効率が大きく改善される。
 なお、図16では、バス幅が32ビットと64ビットの場合についてアドレッシングの例を示したが、例えばバス幅が16ビットや256ビットなど図16に示したバス幅以外のであっても良い。
 また、図16では、バッファ412の先頭からアドレッシングの割りてる例を示したが、1つのバッファにバス幅の異なるパケット(フリット)が混在する場合には、バッファ412に対し、32ビットのアドレス割り当てと、64ビットのアドレス割り当てが混在しても良い。例えば、32ビットのフリット1個と、64ビットのフリット1個が同じバッファに入る場合には、バッファの先頭から1フリット分は、32ビットでアドレスを割り当て、それ以降は64ビットでアドレスを割り当てる。
 図17は、中継制御部414の動作フローを示す。
 中継制御部414は、パケットの宛先アドレスの情報に基づき、中継装置403が受信したパケットを送信先の中継装置403(又は図4に記載の、バススレーブ405側のバスI/F404)と、その中継装置403(又はバススレーブ405側のバスI/F404)でパケットを格納するバッファを決定する。そのために、以下のステップ1501とステップ1502を実行する。
 ステップ1501において、中継制御部414は、宛先アドレスの情報に基づき次にパケットを送信する出力先を決定する。
 パケットの出力先の決定方法としては、例えば、宛先アドレスと中継装置403の出力との関係を定義したルーティングテーブルを用意し、パケットの宛先アドレスの値に応じて出力を選択すればよい。なお、ルーティングテーブルを利用する方法以外にも、宛先アドレスに対して出力を一意に決定できる方法であれば良い。
 ステップ1502において、中継制御部414は、ステップ1501で選択された出力先の中継装置403(図6)又はバスI/F404の中で利用可能なバッファ412を特定し、その中から1つを、パケットを格納するバッファとして選択する。
 ステップ1501とステップ1502を行うことで、中継装置414はパケットの宛先アドレスの情報に基づき、受信パケットを次に送信する先の中継装置403、又はバススレーブ405側のバスI/F404と、その中継措置403でパケットを格納するバッファを決定する。
 次に、図18を参照しながら、図6に記載されたスイッチ割当部415を説明する。
 図18は、スイッチ割当部415の動作フローを示す。
 スイッチ割当部415は、バッファ412に格納されたフリットを送信するために、以下のステップ1601からステップ1603を繰り返す。
 ステップ1601において、スイッチ割当部415は、バッファ412にフリットが格納されているかどうかを判定する。フリットが格納されていない場合はステップ1601を繰り返し、フリットが格納されている場合にはステップ1602に移る。
 ステップ1602において、スイッチ割当部415は、出力先が競合するバッファが存在する場合、出力先が競合するバッファ間で、フリットを送信するバッファを1つ選択する。
 ステップ1603において、スイッチ割当部416は、選択されたバッファからバッファ毎に設定されたアドレッシングの設定に基づきフリットを送信する。
 以上、ステップ1601からステップ1603を繰り返すことにより、バッファ412に格納されたフリットを送信する。
 以上、説明したように、本開示の中継装置403は、パケットに付与されたバスマスタ401側のバス幅を認識し、バス幅に基づくパケットのバッファへの格納と、バッファからの送信のために、適切なアドレッシングを自動的に行うことができる。これにより、バッファ412の利用効率を改善することができる。このため、中継装置毎の個別の設定が不要となり半導体集積回路の設計を簡略化できる。
 なお、本実施形態では、各中継装置が個別にパケットに付与されたバスマスタ401側のバス幅を認識し、バス幅に基づくパケットのバッファへの格納と、バッファからの送信のためのアドレッシングを行う例を説明した。しかしながら、バッファ内の同じ番地に格納される複数のフリットの送信先が同じ中継装置である場合には、パケット格納制御部413は、バッファの同じ番地に格納された複数のフリットを分割せずそのまま次の中継装置に送信しても良い。
 例えば、図16(B)の例では、バス幅が32ビットのフリットが、バッファ内に2個ずつ詰めて格納される。このとき、同じ番地に詰めて格納されたフリットの、それぞれの宛先の中継装置が同じであれば、2個のフリットを分割することなく、バス幅が64ビットのバスを介して同時に送信すればよい。これにより2個のフリットを1度に送ることができるため伝送遅延を削減することができる。
 なお、パケット格納制御部413において、同じ番地に格納されるフリットの宛先が同じかどうかの判定は、パケット解析部411により取得されるヘッダ情報に記載の宛先アドレスを比較することで実現できる。
 また、本実施形態では、バスマスタからスレーブまでのバス幅が一定である場合を例に説明した。しかしながらこれは一例である。他の例として、バス幅が異なるバスを接続する中継装置において、バス幅の狭いバスから、バス幅の広いバスへデータを送信する際に、バッファ内で連続する番地に格納される複数のフリットの送信先が同じ中継装置であれば、パケット格納制御部413は、送信先の広いバス幅に合わせて、連続する番地に格納されたデータを1つのデータにまとめて送信しても良い。
 例えば、図16(A)、(B)において、送信先のバス幅が128ビットのバスであり、バッファ内で連続する番地に格納されるフリットの宛先の中継装置が同じであるとする。この場合には、連続する2つの番地に格納される32ビット、又は64ビットのデータを128ビットのデータにまとめ、バス幅が128ビットのバスを介して送信する。これにより番地2個分のフリットを1度に送ることができるため伝送遅延を削減することができる。
 なお、パケット格納制御部413が行う、連続する番地に格納されるフリットの宛先が同じかどうかの判定は、パケット解析部411により取得されるヘッダ情報に記載の宛先アドレスを比較することで実現できる。また、中継装置の送信先のバスがローカルバスであるか、基幹バスであるかは、中継装置毎に予めパケット格納制御部413に記録されている。
 また、本実施形態では、バス幅が32ビットのバスマスタと64ビットのバスマスタを接続するために、32ビット分のダミーデータを付与して全て64ビットに揃える例を説明したが、これは一例である。他の例として、バス幅32ビットのバスマスタと256ビットのバスマスタとが接続されたバスシステムを考える。この場合には、全てのバスを256ビットに揃えるために付与されるダミーデータは224ビット必要となり、ダミーデータが占める割合が多くなる。このような場合には、上述した実施形態の効果が大きく現れる。本実施形態によるバッファの利用効率の改善は、バスマスタ間のバス幅の違いが大きいほどより大きくなるといえる。
 また、本開示では、1つのバッファ412内に、多くのパケットが格納される場合に、バッファの利用効率の改善が期待できる。このため、例えばバスマスタから共有メモリに対して、リード要求のためのコマンドを送信する場合など、サイズの小さいパケットを伝送する用途でより大きな効果が期待できる。
 上記の実施形態では、バスマスタ401からバスI/F402へのデータの送信は、バス幅が変化しないことを前提に説明した。しかしながら、本開示のバスI/F402と中継装置403は、バスマスタ401からバスI/Fへのデータ送信において、バス幅が動的に変化する場合にも対応できる。
 たとえば図4のバスシステムにおいて、バスマスタ401からバスI/F402へのデータ送信において、データのバス幅が変化する例としては、例えばプロセッサが、電力の消費が異なる通常モードと省電力モードの動作モードの切り替えた場合が該当する。例えばプロセッサを通常モードから省電力モードで動作させる際に、プロセッサ内の内部バスのバス幅を動的に変更し、利用しないバスへの給電を停止することで消費電力を削減する。このような、バスマスタ401側で利用するバス幅の変更は、制御信号の一部としてバスI/F402に通知される。省電力モードから通常モードへの移行時も同様にバス幅が変更される。
 図19は、バスマスタ401からのデータ送信において、動的にバス幅が変化する場合のバスI/F402の動作フローを示す。
 図11と同じ動作については同じ参照符号を付与し、説明を省略する。
 ステップ1701において、バスI/F402のヘッダ情報生成部408は、バスマスタ401から通知された制御情報からバス幅の情報を取得する。動的にバス幅が変動されたとしても、都度、その時点でのバス幅の情報が制御情報から得られる。図19の動作を行うことで、バスI/F402は、バスマスタ401が設定するバス幅の変化に応じてヘッダ情報に記載するバス幅の値を変更することができる。
 なお、図19の動作フローでは、バスマスタ401からデータを送信しているバス幅の値が制御情報の一部として通知される場合について説明を行ったが、これ以外にも、記憶部407に省電力モードでのバス幅と通常モードでのバス幅を事前に記憶しておき、バスマスタ401から制御信号の一部として、省電モードか通常モードかを判別する信号を受け取ることで、バス幅を決定することができる。
 また、省電力モード以外にも、バスマスタ401からの送信データのバス幅が変化する例としては、バスマスタ401からのナロー転送処理および通常転送処理の切り替えがある。ナロー転送は、AXI(Advanced eXtensible Interface)などのバスプロトコルなどで利用できる機能であり、例えばバスマスタ401のバス幅(例えば32ビット)よりも、バス幅が小さいバススレーブ405(例えば8ビットや16ビット)と通信する場合や、バススレーブ405がメモリであり、1word中の一部(例えば8ビット)にだけにアクセスしたい場合などに、データ線の一部分だけを利用してデータ転送する機能である。
 また、ナロー転送時に利用するバス幅の値は、バスマスタ401からバスI/F402に対して制御信号の一部として通知される。このため、バスI/F402は、バスマスタ401から通知されるバス幅の値に応じてヘッダ情報に記載するバス幅の値を変更することができる。
 このように、省電以外の目的であっても、バスマスタ401から通知されるバス幅の情報に基づき、ヘッダ情報に記載するバス幅の値を変更しても良い。
 また、ヘッダ情報900には宛先アドレス、バス幅に関する情報以外にも情報を含めることができる。たとえば、中継装置403においてパケット毎の要求品質を保証した制御を行うために、要求品質の厳しさを表現したクラスの情報や、要求品質で許容できる遅延時間である締切時刻の情報などをヘッダ情報900に含めることができる。
 このようなクラスや締切時刻に関する情報がヘッダ情報に含まれる場合には、中継装置403は、バス幅の値に加えて、クラスや締切時刻に関する情報に基づき、受信したフリットをバッファへ格納、及びバッファから送信するためのアドレッシングの設定を変更しても良い。
 図20は、バス幅の値に加えて、クラスや締切時刻に関する情報をヘッダ情報に記載するバスI/F422の構成を示す。図5と同じ構成に対しては同じ参照符号を付与し、説明を省略する。
 バスI/F422は、要求品質特定部1801を有している。
 要求品質特定部1801は、バスマスタ401が送信するパケットの要求品質の厳しさを表現したクラスや、品質要求で許容できる遅延時間である締切時刻を特定する回路である。
 クラスや締切時刻の値は、バスマスタ401から要求品質特定部1801へ直接通知される。また、予め記憶部407にバスマスタ401のクラスの値を記憶しておき、記憶部407を参照してクラスの値を特定しても良い。また、記憶部407に品質要求で許容できる遅延時間を記憶しておき、バスマスタ401から受信バッファ406にデータが送信された時刻に、品質要求で許容できる遅延時間を加算することで締切時刻を特定しても良い。
 ヘッダ情報生成部408は、送信先アドレス、バス幅に加え、要求品質特定部1801で特定されたクラスや締切時刻に関する情報を含むパケットヘッダ情報を作成する。
 図21は、要求品質のクラスや締切時刻を記載するバスI/F422の動作フローを示す。
 図11と同じ動作フローについては、同じ参照符号を付与し説明を省略する。
 ステップ802において、バスマスタと接続するバス幅の値を取得した後、ステップ1901において、要求品質特定部1801は、バスマスタの要求品質を特定する。その後処理は、ステップ803に移る。
 以上、図20の構成と、図21の動作フローにより、バスIF402は、パケットのクラスや締切時刻に関する情報を含むパケットを生成し、送信する。
 図22は、バス幅に加えて、パケットのクラスや締切時刻に関する情報に基づき、受信したフリットをバッファへ格納し、バッファから送信するためのアドレッシングを設定する中継装置403のパケット格納制御部413(図6)の動作フローを示す。図15と同じ動作については同じ参照符号を付与し、説明を省略する。
 ステップ2001において、パケット格納制御部413は、パケット解析部411からヘッダ情報に記載されたクラスや締切時刻を取得し、ステップ2002に移る。
 ステップ2002において、受信したパケットに記載されたクラスや締切時刻に基づき、遅延時間に対する制約があるパケットであるかどうかを判定する。遅延時間に対する制約がある場合にはステップ2003に移る。遅延時間に対する制約がない場合にはステップ1303に移る。
 ステップ2003において、遅延時間に対する制約があるパケットに対しては、ヘッダ情報に記載されたバス幅の値に依らず、バス幅64ビットのパケットとしてバッファのアドレッシングを行う。
 以上、図22の動作フローを行うことで、パケット格納制御部413は、バス幅に加えて、パケットのクラスや締切時刻に関する情報に基づき、受信したフリットをバッファへ格納、及びバッファから送信するためのアドレッシングを設定する。
 例えば、音声通話など遅延時間(締切時刻)に対して制約のあるクラスのパケットと、GPU処理などベストエフォートで処理され、遅延時間(締切時刻)に対する制約がないクラスのパケットが中継装置403で混在する場合には、各クラスのパケットを、独立したバッファ412に区別して格納し、音声通話用のパケットを優先的に送信することで音声通話の品質を保証できる。
 このように遅延時間に対する制約が異なるクラスのパケットが混在する場合、遅延時間に制約の厳しいクラスのパケットに対しては、バッファの利用効率の改善よりも、より早くフリットを格納し、次へ送信することが求められる。このため、遅延時間(締切時刻)に制約のあるパケットに対しては、バス幅に応じたアドレッシングの設定を行わず、常に64ビットのバス幅で格納と送信を行うことで処理を行う。
 これにより、図3の例で示したような、バッファの利用効率を優先することで、パケットがバッファ内の複数の番地に跨って格納され、フリットの格納や取り出しにかかる遅延時間の増加することを回避できる。
 一方、遅延時間に制約のないクラスのパケットに対しては、バッファ412の利用効率の改善を優先させるために、バス幅に応じたアドレッシングの設定を行えばよい。
 なお、上記の例では、パケットのクラスの種類によりアドレッシングの設定を変更する例を示した。これ以外にも、例えば締切時刻までの残り時間の長さに基づきアドレッシングを変更しても良い。
 ヘッダ情報に記載されたバス幅に加え、パケットのクラスや締切時刻の内容を加味したバッファ412のアドレッシングの設定を行うことで、パケット毎の要求品質を考慮しつつ、バッファ412の利用効率の改善を行うことができる。
 また、中継装置403にバッファ412が複数設けられている場合、中継制御部414により、送信先の中継装置403でフリットを格納するバッファを選択する際に、パケット解析部411で取得されたバス幅と、送信先のバッファの利用状況に基づいてバッファを選択しても良い。「送信先」とは、隣接する中継器、またはバススレーブ405側のバスI/F404である。
 例えば、送信先のバッファの利用状況として、バッファ内のフリットの格納のされ方を利用しても良い。具体的な例として、送信先の中継装置に、アクセス幅が64ビットの2つのバッファ(バッファA、バッファB)があり、バッファAは空状態で、バッファBには32ビットのフリットが格納されている状況を想定する。
 この状況において、中継制御部414は、これから送信するパケットが32ビットのフリットの場合は、送信先のバッファの利用効率を向上させるためにバッファBを格納先として選択する。
 また、これから送信するパケットが64ビットのフリットの場合、フリットの格納先としてバッファBを選択すると、図3で示したパケット2のように、バッファ内の異なる番地にフリットが分割して格納される。そのため、中継制御部414は、フリットが分割して格納されるのを回避するためバッファAを格納先として選択する。なお、利用状況として、バッファ内でのフリットの格納され方を利用する代わりに、バッファの空き方や空容量を利用しても良い。
 また、送信先のバッファの利用状況として、バッファ内に格納されているフリットのバス幅の種類に基づいてバッファを選択しても良い。具体的な例として、送信先の中継装置に、アクセス幅が64ビットの2つのバッファ(バッファA、バッファB)があり、バッファAには32ビットのフリットだけが格納されており、バッファBには64ビットのフリットのみが格納されている状況を想定する。
 この状況において、中継制御部414は、これから送信するパケットが32ビットのフリットの場合は、送信先のバッファとして32ビットのフリットだけが格納されているバッファAを選択し、これから送信するパケットが64ビットのフリットの場合は、送信先のバッファとして64ビットのフリットだけが格納されているバッファBを選択する。このようにバッファ毎に、サイズが同じフリットをまとめることで、様々なサイズのフリットが混在する場合に比べ、フリット格納や取出しが容易になり、またバッファの利用効率を改善しやすくなる。
 このように、中継制御部414により、これから送信するフリットのバス幅と、送信先のバッファの利用状況に基づき送信先の中継装置で格納するバッファを選択することで、送信先のバッファの利用効率をさらに向上させることができる。
 なお、中継制御部414は、送信先の中継措置のバッファの利用状況をNoC側の制御信号604によって管理している。
 また、上記の説明では、送信先の中継装置でフリットを格納するバッファを選択するために、バス幅が32ビットと64ビットの2種類のフリットに対するバッファ選択を例に説明したが、フリットのサイズは8ビットや256ビットなど様々なサイズのフリットにも適用可能であり、また、3種類以上のフリットが混在しても良い。
 なお、本実施形態では、図4においてバスマスタ401が送信ノードとなる往路でのデータの伝送を例に説明した。バススレーブ405が送信ノードとなる復路についても、バススレーブ405側のバスI/F404が、バスマスタ401側のバスI/F402と同じ構成を持ち、また、バススレーブ405から送信されたデータをバススレーブ405とバスI/F404の間のバス幅の値を含むパケットに変換して中継装置403へ送信することで、往路と同様に中継装置内に設けられたバッファの利用効率を改善できる。
 なお、上述の説明では、たとえば図1~図3に示すように、バス幅の異なる複数のバスマスタ(及びバスIF)が同じバス幅のシステムバスにより接続される場合を例に説明を行った。しかしながら、本開示はシステム全体のバス幅が同じであることに限定されない。例えば、システムバスとローカルバスとが中継装置(ゲートウェイ)を介して接続されている場合において、当該システムバスのバス幅と当該ローカルバスのバス幅とが異なるようなバスシステムも本開示の範疇である。
 図23は、バス幅の異なる複数のバスから構成されるシステムバスの例を示す。
 図23では、中継装置A(ゲートウェイA)を介して、バス幅32ビットのローカルバスAとバス幅256ビットのシステムバスとが接続され、中継装置B(ゲートウェイB)を介して、バス幅128ビットのローカルバスBとシステムバスとが接続されている。上述した図2は、バスマスタとバスIFとの間で、バス幅がそれぞれ32ビットおよび256ビットの例であり、バスIFがシステムバスの中継装置に接続されていたが、図23は、バスIFとシステムバスとの間にネットワーク(ローカルバス)が含まれる態様に拡張されている。
 図23の例において、中継装置Aは、バス幅64ビットのバスマスタ(バスIF)から送信されたデータのパケットを、ローカルバスAを介して受け取り、バス幅256ビットのシステムバスに送信する。このときの中継装置Aの動作は、図3における中継装置205および206と同様である。また中継装置Bは、バス幅128ビットのバスマスタ(バスIF)から送信されたデータのパケットを、ローカルバスBを介して受け取り、256ビットのシステムバスに送信する。このときの中継装置Bの動作も、図3における中継装置205および206と同様である。これにより、システムバスを構成する中継装置のバッファの利用効率を改善できる。
 本開示の一実施形態にかかる中継装置は、分散型のバスを備える集積回路において、中継装置のバッファの利用効率を改善するために利用することが可能である。このため、例えば、利用するバス幅が異なる複数のメディア処理用のDSPや、高速なファイル転送を行うCPUなどを、分散バスを用いて1つのSoC(System on Chip)上に集積化する際に、実装に必要なリソースの省資源化と、処理の低遅延化の双方を実現する上で有用である。
 400 バスシステム
 401 バスマスタ
 402、422 バスマスタ側のバスインタフェース装置(バスI/F)
 403 中継装置
 404 バススレーブ側のバスI/F
 405 バススレーブ
 406 受信バッファ
 407 記憶部
 408 ヘッダ情報生成部
 409 パケット化部
 410 送信制御部
 411 パケット解析部
 412 バッファ
 413 パケット格納制御部
 414 中継制御部
 415 スイッチ割当部
 416 クロスバスイッチ
 417 出力制御部
 1801 要求品質特定部

Claims (17)

  1.  複数のバスインタフェース装置および中継装置が、集積回路上に構築されたパケット交換方式のバスによって接続されたバスシステムであって、
     前記複数のバスインタフェース装置は、それぞれ、前記バスシステムの1動作サイクルで送信するデータのビット数が異なる複数の送信ノードと接続され、
     前記複数のバスインタフェース装置の各々は、
      接続された送信ノードから受信したデータを格納する受信バッファと、
      接続された前記送信ノードに関する前記ビット数を示すサイズ情報を記憶する記憶部と、
      前記サイズ情報を含むヘッダ情報を生成するヘッダ情報生成部と、
      前記ヘッダ情報および前記データからパケットを生成するパケット化部と、
      前記中継装置への前記パケットの送信を制御する送信制御部とを備え、
     前記中継装置は、
      前記バスインタフェース装置から受信した前記パケットを解析して、前記ヘッダ情報から前記サイズ情報を取得するパケット解析部と、
      受信した前記パケットを格納するバッファと、
      受信した前記パケットの送信先を決定する中継制御部と、
      前記バッファからの前記パケットの送信を制御する出力制御部と、
      取得した前記サイズ情報に基づいて、前記バッファへの格納量を設定するパケット格納制御部と
     を備えた、バスシステム。
  2.  前記中継装置のパケット格納制御部は、前記サイズ情報によって示されるビット数を単位として前記パケットに前記バッファのアドレスを割り振り、
     前記バッファは、前記パケット格納制御部が割り振ったアドレスにしたがって、受信した前記パケットを格納する、請求項1に記載のバスシステム。
  3.  前記複数の送信ノードは、第1のビット数でデータを送信する第1送信ノードと、第1のビット数よりも少ない第2のビット数でデータを送信する第2送信ノードとを含み、前記バスでは、前記第1および第2のビット数以上の第3のビット数で前記データが伝送される場合において、
     前記第2送信ノードと接続されたバスインタフェース装置の送信制御部は、前記第2のビット数のデータを含む第3のビット数で前記パケットを前記中継装置に送信し、
     前記中継装置のパケット格納制御部は、前記サイズ情報が示す前記第2のビット数を単位として前記バッファのアドレスを割り振り、
     前記中継装置のバッファは、前記第2のビット数のパケットを格納する、請求項2に記載のバスシステム。
  4.  前記中継装置のパケット格納制御部は、取得した前記サイズ情報に基づいて、前記バッファから送信されるパケットの送信量をさらに制御する、請求項1に記載のバスシステム。
  5.  前記サイズ情報は可変であり、
     所定の送信ノードに関して前記ビット数を示すサイズ情報が変化したときは、前記所定の送信ノードに接続されたバスインタフェース装置のヘッダ情報生成部は、前記ヘッダ情報に含まれるサイズ情報を変更する、請求項1に記載のバスシステム。
  6.  前記所定の送信ノードは、電力の消費が異なる複数の動作モードを有しており、
     前記ビット数を示すサイズ情報の変化は、前記動作モードの変化に応答して発生する、請求項5に記載のバスシステム。
  7.  前記所定の送信ノードは、第1のビット数で転送するデータ転送モードと、前記第1のバス幅よりも狭い第2のビット数で転送するデータ転送モードとを切り替えることが可能であり、
     前記ビット数を示すサイズ情報の変化は、前記データ転送モードの切り替えに応答して発生する、請求項5に記載のバスシステム。
  8.  前記バスインタフェース装置は、接続された送信ノードの要求品質を特定する要求品質特定部をさらに備えており、
     前記バスインタフェース装置のヘッダ情報生成部は、前記要求品質の情報をさらに含むヘッダ情報を生成し、
     前記中継装置のパケット解析部は、受信した前記パケットのヘッダ情報に記載された、前記サイズ情報と前記要求品質を示す情報を取得し、
     前記中継装置のパケット格納制御部は、前記サイズ情報および前記要求品質に基づいて、前記バッファへの格納量を設定する、請求項1または4に記載のバスシステム。
  9.  前記要求品質特定部は、接続された前記送信ノードから、前記送信ノードの要求品質を特定する情報を取得し、
     前記要求品質が遅延時間に関する制約がないことを示しているときは、
     前記中継装置のパケット格納制御部は、パケット毎に前記ヘッダ情報に含まれるサイズ情報に基づき、前記バッファへの格納量を設定する、請求項8に記載のバスシステム。
  10.  前記要求品質特定部は、接続された前記送信ノードから、前記送信ノードの要求品質を特定する情報を取得し、
     前記要求品質が遅延時間に関する制約が所定値以上に厳しいことを示しているときは、
     前記中継装置のパケット格納制御部は、前記バッファへの格納量とバッファからの送信量を、予め定めた一定のビット数に基づき制御する、請求項8に記載のバスシステム。
  11.  前記遅延時間に対する制約は、要求品質に対する厳しさを表現したクラス、および要求品質で許容できる遅延時間である締切時刻の少なくとも一方によって表される、請求項9または10に記載のバスシステム。
  12.  前記バスインタフェース装置のヘッダ情報生成部は、中継装置が利用する中継装置情報、およびバスインタフェース装置が利用するバスインタフェース情報の順に前記ヘッダ情報を生成する、請求項1に記載のバスシステム。
  13.  前記中継装置の中継制御部は、前記パケット解析部によって取得された前記サイズ情報と、前記パケットの送信先である他の装置のバッファの利用状況に基づき、受信した前記パケットを格納するための前記他の装置のバッファを選択する、請求項1に記載のバスシステム。
  14.  前記パケットの送信先である他の装置のバッファの利用状況は、前記バッファにおけるフリット格納のされ方、格納しているフリットのビット数の種類、およびバッファの空容量の少なくとも1つである、請求項13に記載のバスシステム。
  15.  集積回路上に構築されたパケット交換方式のバスと、前記バスにデータを送信する送信ノードと、前記バス上に設けられて前記データの伝送を中継する中継装置とを有するバスシステムにおいて用いられるバスインタフェース装置であって、
     送信ノードと接続され、前記送信ノードから受信したデータを格納する受信バッファと、
     前記送信ノードに関するビット数を示すサイズ情報を記憶する記憶部と、
     前記サイズ情報を含むヘッダ情報を生成するヘッダ情報生成部と、
     前記ヘッダ情報および前記データからパケットを生成するパケット化部と、
     前記中継装置への前記パケットの送信を制御する送信制御部とを備えた、バスインタフェース装置。
  16.  前記バスおよび前記中継装置は、1動作サイクルで第1ビット数のデータを送信し、前記送信ノードは、前記第1ビット数と異なる第2ビット数のデータを送信する場合において、
     前記ヘッダ情報生成部は、前記中継装置において受信したパケットのバッファへの格納量の設定に用いる前記第2ビット数を示すサイズ情報を含むヘッダ情報を生成する、請求項15に記載のバスインタフェース装置。
  17.  バスシステムにおいて用いられる中継装置であって、
     前記バスシステムは、集積回路上に構築されたパケット交換方式のバスと、前記バスにデータを送信する送信ノードと、前記送信ノードと前記バスとを接続するバスインタフェース装置とを有し、前記バスインタフェース装置は、前記送信ノードから受信したデータ、および前記送信ノードに関するビット数を示すサイズ情報を含むヘッダ情報から生成したパケットを出力し、
     前記バスインタフェース装置から受信したパケットを解析して、前記ヘッダ情報から前記サイズ情報を取得するパケット解析部と、
     受信した前記パケットを格納するバッファと、
     受信した前記パケットの送信先を決定する中継制御部と、
     前記バッファからの前記パケットの送信を制御する出力制御部と、
     取得した前記サイズ情報に基づいて、前記バッファへの格納量を設定するパケット格納制御部と
     を備えた、中継装置。
PCT/JP2013/006823 2013-01-25 2013-11-20 バスインタフェース装置、中継装置、およびそれらを備えたバスシステム WO2014115207A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014528729A JP5853211B2 (ja) 2013-01-25 2013-11-20 バスインタフェース装置、中継装置、およびそれらを備えたバスシステム
US14/492,181 US10104006B2 (en) 2013-01-25 2014-09-22 Bus interface apparatus, router, and bus system including them

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013011952 2013-01-25
JP2013-011952 2013-05-30

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/492,181 Continuation US10104006B2 (en) 2013-01-25 2014-09-22 Bus interface apparatus, router, and bus system including them

Publications (1)

Publication Number Publication Date
WO2014115207A1 true WO2014115207A1 (ja) 2014-07-31

Family

ID=51227028

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/006823 WO2014115207A1 (ja) 2013-01-25 2013-11-20 バスインタフェース装置、中継装置、およびそれらを備えたバスシステム

Country Status (3)

Country Link
US (1) US10104006B2 (ja)
JP (1) JP5853211B2 (ja)
WO (1) WO2014115207A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021005249A (ja) * 2019-06-26 2021-01-14 京セラドキュメントソリューションズ株式会社 情報処理装置、画像形成装置および省電力制御方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9250666B2 (en) 2012-11-27 2016-02-02 International Business Machines Corporation Scalable data collection for system management
US10283091B2 (en) * 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Buffer optimization
TWI727236B (zh) * 2018-12-12 2021-05-11 瑞昱半導體股份有限公司 資料位寬轉換器及其系統晶片
US10944696B2 (en) * 2019-02-19 2021-03-09 Pensando Systems Inc. Variable-length packet header vectors
US11412075B2 (en) 2020-08-31 2022-08-09 Micron Technology, Inc. Multiple protocol header processing
US11539623B2 (en) 2020-08-31 2022-12-27 Micron Technology, Inc. Single field for encoding multiple elements
US11418455B2 (en) 2020-08-31 2022-08-16 Micron Technology, Inc. Transparent packet splitting and recombining
US11360920B2 (en) 2020-08-31 2022-06-14 Micron Technology, Inc. Mapping high-speed, point-to-point interface channels to packet virtual channels
US11296995B2 (en) 2020-08-31 2022-04-05 Micron Technology, Inc. Reduced sized encoding of packet length field

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006135379A (ja) * 2004-11-02 2006-05-25 Fujitsu Ltd パケット処理装置及びパケット処理方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03216776A (ja) * 1990-01-22 1991-09-24 Mitsubishi Electric Corp 集積回路装置及びそれにより構成されたマイクロプロセッサ
US6900812B1 (en) * 2000-08-02 2005-05-31 Ati International Srl Logic enhanced memory and method therefore
JP2002290455A (ja) 2001-03-28 2002-10-04 Oki Electric Ind Co Ltd パケットバッファ装置
JP3506130B2 (ja) * 2001-06-19 2004-03-15 日本電気株式会社 バッファリング装置及びバッファリング方法
US20060182118A1 (en) * 2005-02-01 2006-08-17 Hong Kong Applied Science and Technology Research Institute Company Limited System And Method For Efficient Traffic Processing
JP4207912B2 (ja) * 2005-03-24 2009-01-14 セイコーエプソン株式会社 データ転送制御装置及び電子機器
EP1869845A1 (en) * 2005-04-07 2007-12-26 Koninklijke Philips Electronics N.V. Network-on-chip environment and method for reduction of latency
DE102005046702B4 (de) * 2005-09-29 2009-09-03 Infineon Technologies Ag Verfahren und Prozessor zum Klassifizieren von Datenpaketeinheiten
KR100912545B1 (ko) * 2007-09-21 2009-08-18 한국전자통신연구원 패킷 처리 장치 및 방법
JP5230665B2 (ja) * 2010-01-08 2013-07-10 株式会社日立情報制御ソリューションズ データ受信装置、データ受信方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006135379A (ja) * 2004-11-02 2006-05-25 Fujitsu Ltd パケット処理装置及びパケット処理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANDREAS GERSTLAUER: "Automatic Layer-Based Generation of System-On-Chip Bus Communicatior Models, Computer-Aided Design of Integrated Circuits and Systems", IEEE TRANSACTIONS ON, vol. 26, no. ISSUE:, September 2007 (2007-09-01) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021005249A (ja) * 2019-06-26 2021-01-14 京セラドキュメントソリューションズ株式会社 情報処理装置、画像形成装置および省電力制御方法
JP7306109B2 (ja) 2019-06-26 2023-07-11 京セラドキュメントソリューションズ株式会社 情報処理装置、画像形成装置および省電力制御方法

Also Published As

Publication number Publication date
JPWO2014115207A1 (ja) 2017-01-19
US20150010005A1 (en) 2015-01-08
US10104006B2 (en) 2018-10-16
JP5853211B2 (ja) 2016-02-09

Similar Documents

Publication Publication Date Title
JP5853211B2 (ja) バスインタフェース装置、中継装置、およびそれらを備えたバスシステム
JP5552196B2 (ja) 中継装置、中継装置の制御方法、およびコンピュータプログラム
US7940788B2 (en) System for transmitting data within a network between nodes of the network and flow control process for transmitting the data
JP5793690B2 (ja) インタフェース装置、およびメモリバスシステム
US9961005B2 (en) Bus system and computer program
JP4756158B2 (ja) 通信リソース割り当て電子デバイスおよび方法
WO2013014851A1 (ja) 中継装置
JP2008536391A (ja) 待ち時間の削減のためのネットワークオンチップ環境及び方法
JP5231400B2 (ja) マルチプロセッサ・ゲートウェイ
JP2008546298A (ja) 電子装置及び通信リソース割り当ての方法
EP1728364A1 (en) Integrated circuit and method of communication service mapping
JPWO2013046607A1 (ja) 制御装置
US20090323540A1 (en) Electronic device, system on chip and method for monitoring data traffic
JP5834178B2 (ja) 半導体回路のバスシステム
JP5842174B2 (ja) バス制御装置、中継装置およびバスシステム
JP2008520119A (ja) 電子デバイスおよび通信資源割り当て方法
JP2010500641A (ja) 電子装置及び通信同期方法
US7631137B2 (en) Data processing system and method for converting and synchronising data traffic
JP7044081B2 (ja) 車載用通信システム
JPWO2013168427A1 (ja) バス制御システム、およびネットワークインタフェース

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2014528729

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 13872438

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13872438

Country of ref document: EP

Kind code of ref document: A1