WO2013168427A1 - バス制御装置、バス制御システム、およびネットワークインタフェース - Google Patents
バス制御装置、バス制御システム、およびネットワークインタフェース Download PDFInfo
- Publication number
- WO2013168427A1 WO2013168427A1 PCT/JP2013/002973 JP2013002973W WO2013168427A1 WO 2013168427 A1 WO2013168427 A1 WO 2013168427A1 JP 2013002973 W JP2013002973 W JP 2013002973W WO 2013168427 A1 WO2013168427 A1 WO 2013168427A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- route
- flow
- bus
- path
- node
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7825—Globally asynchronous, locally synchronous, e.g. network on chip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L12/462—LAN interconnection over a bridge based backbone
- H04L12/4625—Single bridge functionality, e.g. connection of two networks over a single bridge
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present application relates to a technology for controlling a communication bus in a semiconductor chip including a networked communication bus.
- NoC Network-on-Chip
- FIG. 1 shows the configuration of the bus of Patent Document 1.
- each of the transmission function modules A can select one of four paths R1 to R4 for transferring data to the reception-side function module B.
- Each of the transmission function modules A obtains the flow rates of the four paths R1 to R4 from the reception function module B prior to the transfer of data to the reception function module B, and the flow rates of the paths R1 to R4 can be obtained. It selects its own data transfer path so as to be uniform only.
- Each of the transmission function modules A performs such an operation independently, thereby minimizing the flow rate deviation between the four paths R1 to R4, and performing wideband data transfer while operating the bus at a low operating frequency. be able to.
- FIG. 2 shows a configuration of a general SoC system.
- a CPU as a processor
- an encoding engine ENC as a media processing DSP
- a decoding engine DEC decoding engine
- an IO as a data input / output ASIC
- an ASIC for graphic processing FIG. 2
- a number of initiators such as (not shown) are connected to the shared memory via a forward bus (write bus) and a backward bus (read bus).
- the assignment of the path from the initiator to the data transferred to the memory using the forward bus needs to be performed in a manner reflecting the priority relationship between the initiators determined at the time of design.
- ENC, DEC, IO, and the like that perform real-time signal processing are rate-guaranteed initiators, and do not transfer data to a memory beyond the design band.
- a CPU that is a non-rate-guaranteed initiator requests a large amount of data to the memory instantaneously due to the activation of a large number of tasks based on the user's operation of the device or a miss hit of the internal cache. There is.
- a bus control system for a semiconductor circuit, wherein data is transmitted between a first node and a second node via a networked bus.
- a bus control device directly connected to a node, wherein the bus control device sets two or more routes from the first node to the second node as a forward route group and goes from the second node to the first node.
- a route load detection unit that detects a load of each route with respect to at least one of the forward route group and the return route group, and a route load of the at least one route group is uniform.
- a route candidate extraction unit that extracts candidate routes from the route group, a selection rule storage unit that stores a predetermined selection rule, and the route candidate extraction unit Based on the extraction result and the selection rule stored in the selection rule storage unit, a route determination unit that determines a route for transmitting data, and a header that generates header information that stores the route information indicating the determined route
- a bus control device comprising: a construction unit; and a data transmission / reception unit that transmits data between the first node and the second node using the path specified based on the header information.
- bus control device According to the bus control device according to an embodiment of the present invention, more efficient data transfer is realized.
- 1 is a diagram showing an SoC system 400 according to an embodiment of the present invention. It is a figure which shows the request
- 2 is a diagram mainly illustrating an example of a configuration of a network interface (NI) 110 on an initiator side.
- NI network interface
- FIG. It is a figure which shows the example of the route selection rule of NI413 local bus.
- FIG. It is a figure which shows the example of the information acquired from each band information management part of the path
- FIG. It is a figure which shows the example of the route allocation which the arrival order between flows breaks. It is a figure which shows the example of a storing of the route allocation result of an outward path and a return path. It is a figure which shows the structural example of the notification packet of flow related information. It is a figure which shows the processing flow in NI by the side of an initiator concerning 1st Embodiment which is an example of this invention. It is a figure which shows the SoC system concerning 2nd Embodiment which is an example of this invention.
- FIG. 5 is a diagram illustrating an example of a route selection rule referred to by NI 2011, NI 2012, and NI 2013.
- FIG. FIG. 11 is a diagram illustrating an example of information acquired from the bandwidth information management unit of the path A and the path C when the initiator 2001 requests the allocation of the flow 200101.
- FIG. 11 is a diagram illustrating an example of information acquired from bandwidth information management units of a route A and a route C when an initiator 2002 requests allocation of a flow 200201. It is a figure which shows the structural example of the notification packet of flow related information. It is a figure which shows the structural example of the SoC system concerning 3rd Embodiment which is an example of this invention. It is a figure which shows the characteristic of the flow which each initiator produces
- Route selection for real-time rate-guaranteed initiators is preferably performed so that the required bandwidth is uniform between routes.
- route selection for a non-rate-guaranteed initiator is preferably assigned to a different route without regard to the uniformity of the required bandwidth. The reason is to eliminate interference between the rate guarantee system and the rate non-guaranteed system and mutual interference between the rate non-guaranteed system. In this way, when the forward bus route is allocated, it is necessary to consider the transfer data characteristics for each initiator.
- the data returned from the memory controller to each initiator using the return path has already been arbitrated according to the priority between the initiators in the forward path and is read from the memory based on the arbitration order. Therefore, it is only necessary to assign the return route so that the return bandwidth between routes is uniform.
- the required bandwidth of each initiator is designed separately for the required bandwidth in the forward path (write bandwidth) and the required bandwidth in the backward path (read bandwidth).
- the bus bandwidth can be fully utilized by selecting the route.
- ENC1 when ENC1 operates as a bus initiator and performs writing and reading of data to and from memory E, ENC1 acquires the flow rate in the forward path from paths R1 to R4 prior to the transfer of data to memory E. Data is transferred to the memory E after selecting an optimum route. The selected path is stored on the ENC1 side, and this path is used for subsequent data transfer to the memory E.
- the memory controller C that has received the transfer data from the ENC 1 performs an access process to the memory E and returns the resulting data to the ENC 1. Prior to returning the data, the memory controller C acquires the flow rate in the return path from the paths R1 to R4, selects the optimum path, and transfers the data to the ENC1. The selected path is stored in the memory controller C, and the path is used for subsequent data transfer to the ENC1.
- the second point to note is that if there is a change in the number of initiators when developing the SoC product type, etc., the design change also affects the memory controller that manages the return path information to the initiator, and the design man-hours and verification man-hours are reduced. To increase. There is also a need to suppress such an increase in design and verification man-hours.
- the inventors of the present application have developed a technology for assigning a route in consideration of transfer data characteristics such as a forward route and a return route, a rate guaranteed system and a rate non-guaranteed system while improving scalability and ease of design change.
- a bus control device directly transmits data between a first node and a second node via a networked bus to a first node in a semiconductor circuit bus control system. Connected.
- the bus control device has two or more routes from the first node to the second node as the forward route group, and two or more routes from the second node to the first node as the return route group.
- a route load detection unit that detects the load of each route with respect to at least one route group, and a route candidate extraction that extracts candidate routes from the route group so that the route load of at least one route group is equalized
- a selection rule storage unit that stores a predetermined selection rule, a route for determining a route for transmitting data based on the extraction result of the route candidate extraction unit and the selection rule stored in the selection rule storage unit
- a determination unit a header construction unit that generates header information that stores route information indicating the determined route, and a path specified based on the header information, between the first node and the second node And a data transceiver to transmit data.
- the bus control system using the above-described bus control device, it is possible to reduce the bus operating frequency in at least one of the forward path and the return path, thereby facilitating power consumption reduction, mounting area reduction, and layout.
- the data transfer path of the forward path and the return path can be managed on the first node (initiator) side, it is possible to cope with the enlargement of the system, the design at the time of product development, and the reduction of verification man-hours. In a system having a plurality of memories, the memory usage rate can also be improved.
- a bus control system for a semiconductor circuit, wherein data is transmitted between a first node and a second node via a networked bus.
- a bus control device directly connected to a node, wherein the bus control device sets two or more routes from the first node to the second node as a forward route group and goes from the second node to the first node.
- a route load detection unit that detects a load of each route with respect to at least one of the forward route group and the return route group, and a route load of the at least one route group is uniform.
- a route candidate extraction unit that extracts candidate routes from the route group, a selection rule storage unit that stores a predetermined selection rule, and the route candidate extraction unit Based on the extraction result and the selection rule stored in the selection rule storage unit, a route determination unit that determines a route for transmitting data, and a header that generates header information that stores the route information indicating the determined route
- a bus control device comprising: a construction unit; and a data transmission / reception unit that transmits data between the first node and the second node using the path specified based on the header information.
- the path load detecting unit detects a use band of a bus allocated to at least one of the forward path group and the return path group as the path load.
- the at least one route group is the outbound route group
- the route candidate extraction unit selects a route with the smallest route load among the routes of the outbound route group as the candidate route. Extract as
- the at least one route group is the return route group
- the route candidate extraction unit selects a route having the smallest route load among the routes in the return route group as the candidate route. Extract as
- the selection rule storage unit includes a selection rule that does not have a restriction on a route, a selection rule that uses a specific route, and a selection that indicates a flow order when there are a plurality of flows that are data transmission units. Store at least one of a rule and a selection rule indicating that the rate is a non-guaranteed flow.
- the selection rule storage unit stores a selection rule indicating a flow order when there are a plurality of flows that are data transmission units, and the ordering relationship with a new flow is maintained.
- the route candidate extraction unit is the same as the route of the other flow Are extracted as candidate routes.
- the selection rule storage unit stores a selection rule indicating a non-rate-guaranteed flow, a path of the non-rate-guaranteed flow has already been determined, and In the case where the selection rule indicating that the flow is a non-rate guaranteed type flow is applied to a new flow, the route candidate extraction unit selects a route different from the existing non-rate guaranteed type flow route, The route is extracted as the candidate route.
- the selection rule storage unit stores a selection rule that uses a specific route
- the selection rule that uses the specific route is applied to a new flow.
- the route determination unit determines a route specified by the selection rule as a route for transmitting the data regardless of the extraction result of the route candidate extraction unit.
- the selection rule storage unit stores a selection rule indicating that the flow is a non-rate guaranteed flow, and In the case where a selection rule indicating that the rate is a non-guaranteed flow is applied to a new flow, the route candidate extraction unit selects a route different from the route of the existing non-rate guaranteed flow, Extract as a candidate route.
- the selection rule storage unit further holds priority information indicating a priority of the flow of the first node, and the route candidate extraction unit is based on the priority information. Then, a route to which a flow having a lower priority is assigned is extracted as the candidate route.
- the data transmission / reception unit transmits and receives the data in a packet manner, and the header construction unit stores the header information in a packet header.
- a bus control system includes at least one first node, at least one second node, and any of those described above directly connected to the at least one first node. And a networked bus forming a plurality of paths between the bus control device and the at least one second node, the bus control device according to any of the exemplary embodiments, And transmitting data between the at least one first node and the at least one second node.
- the bus control system further comprises a migrator that exchanges a flow of data assigned to each of a plurality of memories, the plurality of memories being the at least one second node; A plurality of paths are provided between the at least one first node and the plurality of memories, and the migrator uses a bandwidth of a bus allocated to the plurality of paths, and is used on each memory. The flow of data allocated to each of the plurality of memories is exchanged based on the capacity to be used.
- the plurality of paths in the bus control system are configured as a plurality of spatially separated buses.
- the plurality of paths in the bus control system are configured by a single signal line on the bus.
- the plurality of paths in the bus control system are configured by time-division multiplexing a single signal line on the bus.
- the networked bus in the bus control system includes a local bus provided with the plurality of paths, and a system bus, and the bus control system includes the local bus.
- a bus bridge connecting the bus and the system bus is further provided.
- a network interface is used in any of the bus control systems described above.
- the network interface is a bandwidth information management unit that manages bandwidth information
- the bandwidth information is a bandwidth information management unit that is information related to a bandwidth of a flow that is a data transmission unit that is currently assigned to a corresponding route.
- a data transmission / reception unit that transmits / receives data from the first node to the second node and data from the second node to the first node.
- the bandwidth information management unit responds to a request from a path load detection unit of the bus control device included in the bus control system, via the data transmission / reception unit. Is output.
- the network interface generates information for specifying the return path based on path information indicating the return path stored in the header information, and includes information for specifying a destination in a header of a packet.
- a return path header construction unit is further provided.
- bus control device and a communication system according to an embodiment of the present invention will be described with reference to the accompanying drawings.
- the bus control device will be described as being a network interface.
- a plurality of nodes that transmit data to each other will be described as an initiator and a memory.
- FIG. 3 shows the SoC system 400 according to the present embodiment.
- Each of the initiators 401 to 404 transfers data to and from the shared memory 461 via the local bus 470 and the system bus 480.
- data transfer on the local bus 470 and the system bus 480 is performed in units of packets.
- the connection relationship for realizing data transfer is as follows.
- initiators 401 to 404 are connected to a local bus 470 via network interfaces NI (Network Interface) 411 to 414.
- the memory 461 is connected to the system bus 480 via the memory controller 451 and the NI 441.
- Each NI transfers data by performing packetization and depacketization processing.
- the local bus 470 and the system bus 480 are connected to each other via a bus bridge 431.
- the bus bridge 431 has two input / output interfaces on the local bus side, and is connected to paths A and B, respectively.
- the local bus 470 is networked by routers 421 to 424, and has a configuration in which the route A and the route B can be selected from any initiator in data transfer with the memory 461.
- the bus bridge 431 has interface units 120a and 120b corresponding to the paths A and B, respectively. The configuration of the interface units 120a and 120b will be described later with reference to FIG.
- the solid line arrow represents the forward bus 471 for transferring data from each initiator to the bus bridge 431
- the dotted line arrow represents the return bus 472 for returning data from the bus bridge 431 to each initiator.
- the system bus 480 includes an outward bus 481 for transferring data from the bus bridge 431 to the memory 461 and a return bus 482 for returning data from the memory 461 to the bus bridge 431.
- the system buses 481 and 482 are each 32 bits wide and 200 MHz buses, and the connectable bandwidth is 800 MB / s.
- the local buses 471 and 472 are each 32 bits wide and 100 MHz buses, and the connectable bandwidth is 400 MB / s for the route A and 400 MB / s for the route B, and the total of the two routes is 800 MB / s. It is.
- the local bus 470 is configured to operate at half the bus operating frequency compared to the system bus 480 by using two paths A and B having a low operating frequency of 100 MHz evenly. As will be described later, this configuration does not simply mean that the bus width is doubled and the transfer speed is halved. By allowing data to be transmitted through a plurality of paths, the flow is intended to be transmitted independently for each path. By providing a plurality of paths, the bus width is substantially enlarged, and it is possible to suppress local concentration of wiring and data transmitted on the wiring.
- FIG. 4 shows the requested bandwidth of the initiators 401 to 404.
- the unit of the requested bandwidth is represented by the number of megabytes that can be transferred per second. This value is not an instantaneous measurement value, but indicates a design value of a required bandwidth for each initiator or a required bandwidth over a relatively long time as determined for each use case of a device.
- the time tc is a value representing the time with the number of cycles based on the bus operating frequency, starting from the system startup.
- the NI 411 acquires the forward route of the route A, the return route of the route A, the forward route of the route B, and the assigned bandwidth of the return route from the bus bridge 431. No assignment has been made at this point. Therefore, an allocation request for a bandwidth of 300 MB / s for the route A on the forward route and a 100 MB / s bandwidth for the route A on the return route is made to the bus bridge 431.
- the fourth column of FIG. 5 shows the bandwidth of each path after the bandwidth of the initiator 401 is allocated.
- the initiator 402 starts accessing the memory 461.
- the NI 412 acquires the forward route of the route A, the return route of the route A, the forward route of the route B, and the assigned bandwidth of the return route from the bus bridge 431.
- the allocation state is as shown in the fourth column of FIG. Therefore, in order to make the allocated bandwidth uniform between the two routes, the NI 412 requests the bus bridge 431 to allocate a bandwidth of 200 MB / s to the route B in the forward route and 300 MB / s to the route B in the return route.
- the fifth column in FIG. 5 shows the bandwidth of each path after the bandwidth of the initiator 402 is further allocated.
- the initiator 403 starts access to the memory 461.
- the NI 413 acquires from the bus bridge 431 the forward route of the route A, the forward route of the route B and the forward route of the route B, and the allocated bandwidth of the return route.
- the allocation state is as shown in the fifth column of FIG. Therefore, in order to make the allocated bandwidth uniform between the two routes, the NI 413 requests the bus bridge 431 to allocate a bandwidth of 200 MB / s to the route B on the forward route and 300 MB / s to the route A on the return route.
- the sixth column in FIG. 5 shows the bandwidth of each path after the bandwidth of the initiator 403 is further allocated.
- the NI 414 acquires the forward route of the route A, the forward route of the route A, the forward route of the route B, and the assigned bandwidth of the return route from the bus bridge 431.
- the allocation state is as shown in the sixth column of FIG. Therefore, in order to equalize the allocated bandwidth between the two routes, the NI 414 requests the bus bridge 431 to allocate a bandwidth of 100 MB / s to the route A on the forward route and 100 MB / s to the route B on the return route.
- the seventh column in FIG. 5 shows the bandwidth of each path after the bandwidth of the initiator 404 is further allocated.
- the transfer data amount is uniformly distributed between the path A and the path B in both the forward path and the return path.
- the route assignment results of the forward path and the return path performed for each initiator are stored by the NI connected to each initiator, and when packetizing the transfer data received from the initiator, the forward and return path assignments are performed in the packet header. Stores route information.
- FIG. 6 is a configuration example of a packet header generated by the NI on the initiator side (described later).
- the routers 421 to 424 of the local bus perform packet transfer using the second field of the packet header as the destination in the forward path, and the router (not shown) of the system bus performs packet transfer using the first field as the destination.
- a packet arriving at the NI 441 on the memory side is depacketized, and at the same time, a packet header to be attached to a return packet to the return path is generated from the stored information of the forward packet header.
- FIG. 7 shows an example of a return packet header.
- the transfer data read from the memory 461 is packetized using the packet header shown in FIG. 7 and transferred using the system bus return path 482.
- the bus bridge 431 that has received the packet from the system bus return path 482 determines the return path of the local bus with reference to the second field of the packet header, and sends a return packet to the local bus return path 472.
- the reply packet is transferred with the first field of the packet header as the destination, delivered to the initiator side NI, depacketized, and then passed to the initiator to complete the memory access.
- FIG. 8 shows an example of the configuration of the network interface (NI) 110 on the initiator side.
- the NI 110 is an interface directly connected to the initiator, and corresponds to the NIs 411 to 414 shown in FIG.
- the NI 413 in FIG. 3 will be described as an example of the NI 110.
- the NI 110 includes a selection rule storage unit 111, a route load detection unit 112, a route determination unit 115, a header construction unit 116, a data transmission / reception unit 117, and a route candidate extraction unit 118.
- a selection rule storage unit 111 includes a selection rule storage unit 111, a route load detection unit 112, a route determination unit 115, a header construction unit 116, a data transmission / reception unit 117, and a route candidate extraction unit 118.
- load distribution is performed on both the forward path from the initiator as the first node to the memory as the second node and the return path from the memory to the initiator.
- load distribution may be performed only on either the forward path or the return path. That is, this embodiment assumes that load distribution is performed on at least one of the forward path and the return path. The same applies to other embodiments that use the description of this embodiment.
- the selection rule storage unit 111 stores a selection rule used for selecting a path between the initiator and each memory.
- FIG. 9 shows an example of a local bus route selection rule related to the NI 413.
- the first column shows a unique ID (a numeric string in this embodiment) on the system given to the NI 413
- the second column shows a number for distinguishing the flow from the initiator 401. Yes.
- a flow ID that is an identifier for distinguishing unique flows in the system is obtained.
- the flow ID is represented by “41301”, “41302”, and the like, for example.
- flow represents a unit of bandwidth required for memory access at the time of design or operation.
- the initiator 403 is a codec engine
- the encoding process task is given a required design bandwidth of 200 MB / s for the forward path and 300 MB / s for the return path
- the decoding process task is given a required design band for the outgoing path of 100 MB / s and the return path of 100 MB / s.
- These two tasks in this case correspond to the two flows of the initiator.
- the third and fourth columns represent the selection rules for assigning the outbound route on the local bus and the route on the return route, respectively.
- An example of the selection rule applied to the flow having the flow ID 41301 will be described. In this flow, an unlimited rule is applied to both the forward path and the backward path, and no path restriction is provided. This indicates that either route A or route B can be allocated so that the data transfer amount between the routes becomes uniform.
- the selection rule applied to the flow 41302 indicates that the forward path and the backward path are fixed to the path B and the path A is not selected. This is effective when, for example, the average required bandwidth is designed on the system, but there are other rate non-guaranteed initiators whose maximum required bandwidth is limited to the physical bandwidth of the bus. When a plurality of initiators select the same route, there is a possibility that the maximum required bandwidth interferes with each other, and the performance of the initiator suddenly decreases. By providing a rule for fixing the flow path, such a decrease in performance can be avoided.
- one rate non-guaranteed initiator may be a selection rule that fixes both the forward and return routes to path A
- the other rate non-guaranteed initiator may be a selection rule that fixes both the forward and return routes to path B. Good.
- the selection rule applied to the flows with flow IDs 41303 and 41304 indicates that the arrival order to the initiator 403 needs to be observed for response packets from the memories belonging to these two flows.
- the registration of the flow in the selection rule storage unit 111 may be performed as an initialization process before the system is started or before the system operation is switched, or may be performed by the initiator at the start of each flow.
- the route load detection unit 112 requests bandwidth information from the bandwidth information management unit 101 on each route that is a route selection candidate, and is transmitted from the bandwidth information management unit 101 via the data transmission / reception unit 122 for each current route. Get bandwidth allocation status. The bandwidth allocation status is acquired at the timing when the flow transmission start request from the initiator is received.
- FIG. 10 shows an example of information acquired from each band information management unit of route A and route B.
- FIG. 10 shows the flow of the NI 413 encoding processing task, in which the bandwidths of 200 MB / s and 300 MB / s are already allocated to the forward path and the backward path of path B, respectively.
- the acquisition of the bandwidth from the bandwidth information management unit 101 may be performed by exchanging control packets on the bus, or may be performed by a handshake of a dedicated control signal.
- the control packet may be transmitted as a unicast packet or a broadcast packet from the NI 413 to the bandwidth information management unit on each path.
- the control packet for obtaining the forward band information and the control packet for obtaining the backward band information may be processed as the same control packet or may be processed as separate control packets.
- the route candidate extraction unit 118 extracts candidate routes from the route group so that the route load of at least one of the forward route group and the backward route group is equalized. Information on the loads on various routes acquired by the route load detection unit 112 is used to extract candidate routes.
- the phrase “so that the route load of the route group is made uniform” is used in the following meaning.
- this term is used to mean that the difference in load is reduced across the entire route group when bandwidth is newly allocated in a situation where bandwidth is already assigned to at least one of the route group. It is done. It suffices if the bandwidth is allocated so that the load difference is reduced in the entire route group. Most preferably, there is no load difference in the path group, but in practice there may be a load difference. The presence of such load differences is acceptable.
- the term “uniformization” in “equalize the flow bandwidth” is also used to mean that the load difference is reduced in the entire route group, and the load difference is completely eliminated. Note that it is not necessary.
- the route candidate extraction unit 118 includes an outbound route candidate extraction unit 113 and a return route candidate extraction unit 114.
- the outbound route candidate extraction unit 113 extracts a candidate route.
- the return route candidate extraction unit 114 extracts a candidate route.
- the forward path candidate extraction unit 113 receives the value U i of the forward allocated bandwidth for each path i acquired from the bandwidth information management unit 101 by the path load detection unit 112 and the forward request bandwidth u j of the flow j to be allocated. Then, the value E ij of the forward path allocated bandwidth of the path i when the flow j is allocated to the path i is calculated.
- Fwd in Equation 1 is a subscript indicating the forward path.
- FIG. 10 shows an example of the value of the forward allocated bandwidth (U i ).
- E ij is calculated for all selection candidate routes, and a route R j having the smallest value of E ij among the routes is selected as a candidate for an assigned route to the flow j.
- the return path candidate extraction unit 114 is obtained by the path load detection unit 112 from the bandwidth information management unit 101.
- the return path allocated bandwidth value U i for each path i and the return path request bandwidth u j of the allocation target flow j From this, the return route bandwidth value E ij of the route i when the flow j is assigned to the route i is calculated.
- “Back” in Equation 1 is a subscript indicating a return path.
- FIG. 10 also shows an example of the value of the return allocated bandwidth (U i ).
- E ij is calculated for all selection candidate routes, and a route R j having the smallest value of E ij among the routes is selected as a candidate for an assigned route to the flow j.
- the route determination unit 115 detects a flow start request from the initiator 413, searches the selection rule storage unit 111 using the flow ID as a search key, and extracts a route selection rule related to the flow. An example of processing for the flow with the flow ID 41301 (FIG. 9) will be described.
- the route determination unit 115 causes the route load detection 112 to acquire bandwidth information, and the forward route candidate extraction unit 113 and the return route candidate extraction unit 114. Get the result. Since the forward route selection rule of the flow is unlimited, the output route of the forward route candidate extraction unit 113 that has the highest uniformity of the allocated bandwidth between the forward routes is determined as the forward route assigned route.
- the output route of the return route candidate extraction unit 114 with the highest uniformity of the allocated bandwidth between the return routes is determined as the assigned route of the return route. Since there is no restriction on the selection rule for the forward path and the return path, the flow in which the allocated bandwidth is the most uniform is selected independently. An example of processing for a flow with flow ID 41302 (FIG. 9) will be described. Since both the forward path and the return path are selection rules with fixed allocation routes, there is no need to acquire bandwidth information. The route designated for both the return route and the assigned route is determined.
- the router that relays the data is also uniquely determined. Therefore, in this embodiment, if the transmission order of packets is determined, the order can be maintained.
- transmission destination means a bus bridge path interface, not a memory that is a final transmission destination.
- FIG. 11 shows an example of route allocation in which the arrival order between flows is broken.
- the response packet 41303a belonging to the flow 41303 and the response packet 41304a belonging to the flow 41304 arrive at the bus bridge 1102 from the memory 1101 according to the access order. If the route A is assigned to the flow 41303 on the return route of the local bus and the route B is assigned to the flow 41304 on the return route of the local bus, and the route B is transferred faster than the route A. Since the order of arrival at the initiator 1103 is opposite to the access order as in 41304c and 41303c, the allocation state is prohibited by the selection rule of the flow.
- the assignment to the flow 41303 is selected independently for the forward path and the return path as in the flow 41301. Thereafter, when allocation to the flow 41304 occurs, the forward path is determined based on the forward allocated bandwidth of each path in the same way as the forward path of the flow 41301. For the allocation of the return path, The return path of the related flow 41303 allocated in advance is determined as the return path of the allocation destination to the flow 41304 without being based on the return allocated band. Reversal of the arrival order at the initiator due to the difference in timing of data transfer between the route A and the route B can be prevented.
- the route assignment result of each flow determined according to the selection rule is stored by the route determination unit 115 and is referred to by the header construction unit 116 when a memory access belonging to each flow is performed, and packet header generation is performed. Used for
- FIG. 12 shows an example of storing the route assignment results for the forward and return routes.
- the route determination unit 115 notifies the bandwidth information management unit 101 on the assigned route of flow related information that is information regarding the assigned flow.
- the flow related information includes at least information related to the requested bandwidth of the flow.
- FIG. 13 shows a configuration example of a flow related information notification packet. Since this packet is not a memory access request packet, NULL is stored as the ID of the memory side NI in the field of the first column.
- the field in the second column is the ID of the route that is the result of the assignment of the outbound path
- the field of the third column is the ID of the initiator side NI that is the transmission source
- the field in the fourth column is the allocation of the return path
- the resulting route ID is stored.
- the field indicating the requested bandwidth allocated to the forward path is stored in the field of the fifth column
- the value indicating the requested bandwidth allocated to the backward path is stored in the field of the sixth column. Is transmitted to the bandwidth information management unit 101 by the packet, so that the bandwidth information management unit 101 on each route manages the requested bandwidths of all flows allocated on the route. Is possible.
- the path determination unit 115 When the memory access is completed, the path determination unit 115 outputs a forward / return release notification. Based on this notification, the bandwidth information management unit 101 releases the forward and return routes and updates the values of the forward assigned bandwidth and the return assigned bandwidth.
- the header construction unit 116 constructs a packet header of a memory access request packet to be transmitted to the memory by referring to the forward / return route allocation result for each flow stored in the route determination unit 115.
- FIG. 6 shows a construction example of a packet header.
- a value indicating the ID of the destination memory to be accessed is stored in the first column of the packet field.
- the destination memory ID may be received every time a memory access request is output from the initiator 403 to the NI 413, and a conversion table for converting the access destination memory address to the destination memory ID is held in the NI 413. It may be solved by referring to it.
- FIG. 12 shows an example of the route assignment result.
- the header construction unit 116 searches the storage area for the route assignment result shown in FIG. 12 based on the flow ID, thereby extracting a value indicating the forward route assignment result, and stores it in the second column of the packet field.
- an ID indicating the initiator 403 is stored in the third column of the packet field.
- the ID of the initiator 403 may be set from the initiator 403 to the NI 403 using a register or the like when the NI 403 is initialized. Further, the ID of the NI 403 unique in the system may be stored in advance in the NI 403.
- a value indicating the return route assignment result extracted by searching the storage area of the route assignment result shown in FIG. 12 based on the flow ID is stored. In addition, information necessary for systems other than these may be stored by providing a field in the header.
- the data transmission / reception unit 117 that has received a write or read access request to the memory from the initiator 403 identifies the flow ID of the access and notifies the header construction unit 116 of the access request packet for transmission to the memory. Get the packet header.
- the request packet is transmitted to the first stage router 422 together with the packet header. If a response packet is received from the router 422, the packet header is removed from the response packet. If read data is received, the packet is transmitted to the initiator 403.
- conversion processing to a bus protocol supported by the initiator is also performed as necessary.
- FIG. 8 is an example of the configuration of the NI 441 in FIG. As shown in FIG. 8, when there are a plurality of memories, a plurality of memory side interface units 120 are also provided. That is, if the route is different, an interface unit is provided for each route.
- the interface unit 120 having the same configuration as the memory-side interface unit 120 is provided as the interface units 120a and 120b (FIG. 3) for each of the paths A and B.
- the interface unit 120 in FIG. 8 will be described as corresponding to the NI 441 in FIG. 3, but it should be noted that the configurations of the interface units 120 a and 120 b (FIG. 3) are also equivalent.
- the memory side interface unit 120 includes a bandwidth information management unit 101, a return path header construction unit 121, and a data transmission / reception unit 122.
- a bandwidth information management unit 101 includes a bandwidth information management unit 101, a return path header construction unit 121, and a data transmission / reception unit 122.
- the return path header construction unit 121 constructs a packet header of a response packet that stores a memory access result based on the packet header of the memory access request packet received from the NI 411 to the NI 414 on the initiator side. Since the response packet allocation route in the local bus is managed in the NI 411 to NI 414 on the initiator side, information on the return route that the response packet should take is stored in the packet header of the request packet and is stored in the NI 441 on the memory side. Will be notified.
- FIG. 7 shows an example of the configuration of the packet header of the response packet.
- the NI ID on the initiator side that is the final destination of the response packet is copied and stored from the field of the third column of the packet header of the request packet shown in FIG. .
- the field in the second column of the response packet is an ID indicating the return path of the local bus, and is copied and stored from the field in the fourth column of the request packet.
- the field in the third column of the response packet is the ID of the NI 441 on the memory side that is the transmission source of the response packet, and stores the same value as the field in the first column of the request packet.
- the field in the fourth column of the response packet is the ID of the local bus outbound path, and is copied and stored from the second field of the request packet.
- the ID of the local bus outbound path may not be provided.
- the data transmitter / receiver 122 receives the request packet via the system bus forward path 481.
- the data transmission / reception unit 122 separates the packet header from the request packet, and transmits write data or a read request to the memory controller 451. Further, the data transmitting / receiving unit 122 notifies the return header construction unit 121 of the packet header separated from the request packet header. Further, when a write or read access response to the memory 461 is received from the memory controller 451, the packet header of the response packet is acquired from the return path header construction unit 121, and included in the access response to generate a response packet. It transmits to the initiator via the system bus return path 482. Regarding data transmission / reception with the memory controller 451, conversion processing to a bus protocol supported by the memory controller 451 is also performed as necessary.
- the bandwidth information management unit 101 is configured to exist on the local bus side interface of the bus bridge 431. However, any location on the route can be used as long as the bandwidth information of each route can be managed. Also good.
- the bandwidth information management unit 101 on the route i manages the allocated bandwidth U i of the flow currently assigned to the route i, and updates U i based on the notification of the assignment result received from the route determination unit 115. To do. In a state where no flow is allocated yet, such as when the system is activated, the allocated bandwidth U i is initialized according to Equations 5 and 6. In the expression, fwd represents the forward path, and back is a subscript representing the return path.
- FIG. 13 shows an example of an assignment result notification packet received from the route determination unit 115 upon completion of the flow j assignment process. If the ID of the forward path stored in the second column of the packet is an ID corresponding to the path i managed by the bandwidth information management unit 101, the forward path of the flow j stored in the field of the fifth column of the packet Using the allocated bandwidth value u j , the allocated bandwidth U i is updated according to Equation 7.
- the allocated bandwidth U i is updated according to the equation (8).
- the bandwidth information management unit 101 can manage the requested bandwidth allocated to the forward and return routes of the route i. Become. The bandwidth information management unit 101 notifies the value of the allocated bandwidth U i according to the request from the path load detection unit 112.
- FIG. 14 shows a processing flow in the NI on the initiator side of this embodiment.
- the route determination unit 115 detects a flow start request from the initiator.
- the route determination unit 115 reads the selection rule from the selection rule storage unit 111.
- the forward path candidate extraction unit 113 acquires an allocated bandwidth (outbound path) for each path. Specifically, the forward path candidate extraction unit 113 acquires the forward allocated bandwidth value U i for each path i acquired from the bandwidth information management unit 101 by the path load detection unit 112 and the forward path request of the allocation target flow j. From the band u j , the value E ij ( Equation 1) of the forward path allocated band of the path i when the flow j is allocated to the path i is calculated.
- the return path candidate extraction unit 114 acquires the allocated bandwidth (return path) for each path. Specifically, the return path candidate extraction unit 114 acquires the return allocated bandwidth value U i for each path i acquired from the bandwidth information management unit 101 by the path load detection unit 112 and the return path of the allocation target flow j. From the requested bandwidth u j , a return route allocated bandwidth value E ij of the route i when the flow j is assigned to the route i is calculated.
- step S1405 the route determination unit 115 obtains the results of the forward route candidate extraction unit 113 and the backward route candidate extraction unit 114, searches the selection rule storage unit 111, and determines a route (outbound route, return route) according to the selection rule.
- step S1406 the route determination unit 115 notifies the bandwidth information management unit 101 of the memory-side interface unit 120 on the assigned route of the determination result of the route (forward route, return route).
- Memory access is started in step S1407, and memory access is terminated in step S1408.
- step S1409 the route determination unit 115 outputs a route (outward route, return route) release notification.
- the bandwidth information management unit 101 releases the forward and return routes, and updates the values of the forward assigned bandwidth and the return assigned bandwidth.
- the data transfer destination of the initiator has been described as the system memory, but it may be a local memory or graphic memory, an input / output port, a buffer, a device, or direct communication between initiators. Also good.
- the NI 414 ID on the initiator side may be specified as the packet destination. In that case, the request packet transmitted from the NI 411 is looped back by the bus bridge 431 and sent to the NI 414. The response packet sent from the NI 414 is looped back by the bus bridge 431 and returned to the NI 411.
- the flow assignment for direct communication may be performed in the same manner as the route assignment processing for the memory access flow. According to such a configuration, it is possible to optimally control the use band of the bus for each of the forward path and the backward path, and it is possible to perform broadband data transfer using a bus having a parallel configuration with a low bus operating frequency.
- non-rate-guaranteed initiators regardless of the processor and memory access performance when configuring an actual SoC system.
- the average required bandwidth may be definable.
- a large amount of data transfer may be instantaneously requested to the memory due to, for example, activation of a large number of tasks based on the user's device operation or a miss hit of the internal cache.
- the upper limit of the maximum required bandwidth at this time is the physical bandwidth of the bus.
- the bus bandwidth is sometimes reduced. Division multiplexing is performed, or priority control is performed during packet transfer in the router.
- FIG. 15 shows the SoC system in the present embodiment.
- Initiators 2001-2003 are all rate non-guaranteed initiators. Although the description of the real-time initiator is omitted, it may exist on the system as long as the time division multiplexing of the bandwidth and the packet priority control are performed.
- the rate non-guaranteed initiator 2001-2003 transfers data to and from the shared memories 2051, 2052 via the bus.
- Initiators 2001-2003 are connected to routers 2021-2023 via NI 2011, 2012, 2013, which are network interfaces.
- the memories 2051 and 2052 are connected to the routers 2024 and 2025 via the memory controllers 2041 and 2042 and the NIs 2031 and 2032 which are network interfaces.
- Routers 2021-2025 form a bus connected between adjacent neighbors.
- Initiators 2001, 2002, and 2003 can access any of memories 2051 and 2052.
- the initiator 2001 passes through the bus indicated by the solid line from the initiator 2001 via the interface on the path A side of the router 2024 to the memory 2051 with a dotted line. It is possible to select two routes B that reach the memory 2051 through the interface on the route B side of the router 2024 through the bus shown.
- two paths of the path C and the path D can be selected.
- two paths can be selected for accessing the memories 2051 and 2052, respectively.
- FIG. 16 shows an example of a route selection rule referred to by NI2011, NI2012, and NI2013.
- Flows 200101, 200201, and 200301 are all non-rate guaranteed flows.
- Flows 200101 and 200201 have the same priority.
- the priority of the flow 200301 is lower than the priority of the flows 200101 and 200201. This priority information is held together with the selection rule by the selection rule storage unit.
- the buses indicated by the solid line and the dotted line in FIG. 15 are each composed of an outward path and a return path, but are not shown in FIG. 15 because they are the same as in the first embodiment.
- the physical bandwidth of the bus is a 32-bit bus of 200 MHz for both the forward path and the return path, and the connectable bandwidth is 800 MB / s.
- the initiator 2003 Prior to the initiator 2001, the initiator 2003 starts an allocation request for a non-rate-guaranteed flow 200301 for accessing the memory 2052. At this time, other rate non-guaranteed flows 200101 and 200201 have not yet been allocated. For example, the allocation status of other rate-guaranteed flows, the path C to the memory 2052, and the number of hops between paths D In consideration of the difference, the route C is assigned.
- the NI 2011 receives a non-rate guaranteed flow from the bandwidth information management unit on each selectable path. The allocation status is acquired, and route A is selected instead of route B.
- both the flow 200101 and flow 200301 can access the memory with the upper limit of the physical bandwidth.
- the NI 2012 sends a non-rate-guaranteed flow from the bandwidth information management unit on each selectable path.
- the non-rate-guaranteed high-priority flow 200101 is assigned to the route A
- the non-rate-guaranteed low-priority flow 200301 is assigned to the route B.
- the NI 2012 assigns the flow 200201 to the route B in order to prevent interference between the high priority flows.
- the initiator-side network interface (NI) 110 in FIG. 8 is an example of the configuration of the NI 2011, NI 2012, and NI 2013 in FIG. Description of components having the same functions as those of the NI 110 of the first embodiment will be omitted, and components having different functions will be described in detail.
- selection rule storage unit 111 Since either flow is a rate non-guaranteed type and the maximum required bandwidth cannot be defined, the selection rule stored in the selection rule storage unit 111 stores information indicating that the rate is not guaranteed. If a priority relationship exists between non-rate guaranteed flows, information indicating the priority is also stored.
- the route load detection unit 112 acquires the current status of rate non-guaranteed flow allocation for each route from the bandwidth information management unit 101 on each route that is a route selection candidate.
- FIG. 17 illustrates an example of information acquired from the bandwidth information management unit of the path A and the path C when the initiator 2001 requests the allocation of the flow 20011. Since no rate non-guaranteed flow is assigned to route A, both the forward and return routes are in a state of 0. On the other hand, since one non-rate-guaranteed flow of the initiator 2003 has already been assigned to the path C, both the forward path and the return path are in the state of 1.
- FIG. 18 shows an example of information acquired from the bandwidth information management unit of the route A and the route C when the initiator 2002 requests the allocation of the flow 200201. Since one non-rate-guaranteed flow of the initiator 2001 has already been assigned to the path A, both the forward path and the return path are in the state of 1. Since one non-rate-guaranteed flow of the initiator 2003 has already been assigned to the path C, both the forward path and the return path are in the state of 1.
- the value indicating the allocation status is the number of non-rate-guaranteed flows allocated to the route, but it may be a binary value indicating whether the allocation has been made or a rate non-guaranteed.
- a value weighted by the average required bandwidth may be used.
- the route candidate extraction unit 118 operates at least one of the forward route candidate extraction unit 113 and the backward route candidate extraction unit 114 so that the route load of at least one of the forward route and the backward route is made uniform from among the route group. Extract candidate paths. Specifically, as will be described next, the forward path candidate extraction unit 113 and the return path candidate extraction unit 114 are operated.
- the forward path candidate extraction unit 113 first performs rate non-guaranteed flow allocation based on the forward rate non-guaranteed allocation status of each path i acquired from the bandwidth information management unit 101 by the path load detection unit 112. Select a route that has not been made. When such a route does not exist, the outbound route candidate extraction unit 113 selects a route to which only a flow with a priority lower than the priority of the allocation target flow is assigned. When such a route does not exist, the forward route candidate extraction unit 113 assigns a route i having the smallest number of flows with a priority equal to or higher than the priority of the allocation target flow to the flow. Select as a route candidate.
- the return path candidate extraction unit 114 first performs rate non-guaranteed flow allocation based on the forward rate non-guaranteed allocation status of each path i acquired from the bandwidth information management unit 101 by the path load detection unit 112. Select a route that has not been made. When such a route does not exist, the return route candidate extraction unit 114 selects a route to which only a flow having a priority lower than the priority of the flow to be assigned is assigned. When such a route does not exist, the return route candidate extraction unit 114 assigns a route i having the smallest number of assigned flows with a priority equal to or higher than the priority of the flow to be assigned to the flow as an outgoing route assignment. Select as a route candidate.
- the route determination unit 115 detects a start request for a rate non-guaranteed flow from the initiator 2001, searches the selection rule storage unit 111 using the flow ID as a search key, and extracts a route selection rule related to the flow. As an example of the processing for the flow with the flow ID of 200101, the route load detection unit 112 is made to acquire the rate non-guaranteed allocation status, and the results of the forward path candidate extraction unit 113 and the return path candidate extraction unit 114 are obtained. Since the forward route selection rule of the flow is of a non-rate guaranteed type, the output route of the forward route candidate extraction unit 113 with the highest uniformity of the number of assigned flows between the forward routes is determined as the forward route allocation route.
- the return route selection rule is also a rate non-guaranteed type
- the output route of the return route candidate extraction unit 114 with the highest uniformity of the number of assigned flows between the return routes is determined as the assigned route of the return route.
- the path determination unit 115 notifies the bandwidth information management unit 101 on the allocation path of flow related information that is information regarding the allocated flow. To do.
- the flow related information includes at least information indicating that the flow is a rate non-guaranteed flow.
- FIG. 19 shows a configuration example of a flow related information notification packet. Since this packet is not a memory access request packet, NULL is stored as the ID of the memory side NI in the field of the first column.
- the field in the second column is the ID of the route that is the result of the assignment of the outbound path
- the field of the third column is the ID of the initiator side NI that is the transmission source
- the field in the fourth column is the allocation of the return path
- the resulting route ID is stored.
- 1 indicates that one rate non-guaranteed flow is newly assigned to the forward path
- the field in the sixth column the flow allocated to the forward path.
- the field of the 7th column indicates 1 that one rate non-guaranteed flow is newly assigned to the return path, and the field of the 8th column indicates the return path.
- the priority of the assigned flow is stored and transmitted as a notification packet to the bandwidth information management unit 101, so that the bandwidth information management unit 101 on each route can receive a rate non-guaranteed flow on the route.
- the allocation status can be managed.
- the bandwidth information management unit 101 is configured to be located in the interface unit on the route A side of the router 2024 and the interface unit on the route C side of the router 2025, but can manage the bandwidth information of each route. If it is a place, it may be anywhere on the route.
- the bandwidth information management unit 101 on the path i manages the allocation status A i of the non-rate-guaranteed flow currently allocated to the path i for each flow priority, and the allocation received from the path determination unit 115 A i is updated based on the notification of the result.
- a i indicating the number of non-rate-guaranteed flows assigned is initialized according to Equations 11 and 12.
- fwd represents the forward path
- back is a subscript representing the return path.
- FIG. 19 shows an example of an assignment result notification packet received from the route determination unit 115 upon completion of the flow j assignment processing. If the ID of the forward path stored in the second column of the packet is an ID corresponding to the path i managed by the bandwidth information management unit 101, the forward path of the flow j stored in the field of the fifth column of the packet Using the allocation status value a j , the value of the allocation status A i of the rate non-guaranteed system is updated according to Equation 13.
- the ID of the return path stored in the fourth column of the packet is an ID corresponding to the path i managed by the bandwidth information management unit 101
- the return path of the flow j stored in the field of the sixth column of the packet Using the allocation status value a j , the value of the allocation status A i of the rate non-guaranteed system is updated according to Equation 14.
- the rate non-guaranteed allocation status release notification received from the route determination unit 115 is used.
- the allocated bandwidth A i is updated according to Equations 15 and 16.
- the bandwidth status management unit 101 can manage the allocation status.
- the bandwidth information management unit 101 notifies the value of the allocation status A i for each priority of the rate non-guaranteed flow according to the request from the path load detection unit 112.
- the bus usage bandwidth can be optimally controlled for each forward path and backward path.
- wideband data transfer can be performed using a parallel bus having a low bus operating frequency.
- the flow allocation process may be performed only in one of the forward path and the return path.
- FIG. 20 shows a configuration example of the SoC system in the present embodiment.
- the memory 2051 and the memory 2052 are connected by a migrator 2061. Description of components having the same functions as those of the SoC system described in connection with the second embodiment is omitted.
- FIG. 21 shows the characteristics of the flow generated by each initiator.
- the initiator 2001 and the initiator 2002 are both real-time initiators whose request bandwidth can be defined.
- the bandwidth information management unit 101 is on the interface of the route A and route B of the migrator 2061 and manages the assigned bandwidth information and the assigned capacity of the flows assigned to the memory 2051 and the memory 2052, respectively.
- Each flow when the start time shown in FIG. 21 is reached, issues a flow allocation request and allocates a memory to be used.
- the process of allocating each flow to the memory is performed in order of time.
- FIG. 22 shows an example of the flow allocation state.
- a bandwidth of 200 MB / s is allocated to the memory 2051 and a bandwidth of 200 MB / s is allocated to the memory 2052 for both forward and backward paths. It has been. That is, the allocated bandwidth between the memories becomes uniform.
- the memory 2051 uses the 200 MB area, and the memory 2052 uses the 800 MB area.
- 600 MB of the usable capacity of the memory 2051 is unused.
- the migrator 2061 detects that the available capacity of the memory is in an unbalanced state by comparing the allocated capacities, and updates the flow allocation state. Specifically, the flow 200101 and the flow 200102 having the same required bandwidth are selected, the flow 200101 is moved from the memory 2051 to the memory 2052, and the flow 200102 is moved from the memory 2052 to the memory 2051, thereby using the memory 2051.
- the capacity is set to 500 MB, and the use capacity of the memory 2052 is set to 500 MB. Thereby, both the allocated bandwidth and the allocated capacity are optimal between the memory 2051 and the memory 2052.
- the configurations of NI 2011 and NI 2012 in FIG. 20 are the same as those of the initiator-side network interface (NI) 110 in FIG.
- the bandwidth information management unit 101 manages both the requested bandwidth and the requested capacity of the flow for each flow ID, and allocated between the memories based on the information
- the flow to be exchanged is selected so that both the bandwidth and the allocated capacity are optimal.
- the migrator 2061 transmits a change notification to the related NI on the initiator side, and the NI on the initiator side that has received the change notification updates the route allocation result.
- FIG. 23 shows a configuration example of a network according to the present embodiment.
- the initiators 2001, 2002, and 2003 are connected to the router 2021 through the NI 2011, 2012, and 2013, and the router 2021 is connected to the router 2022 through the broadband link 2081.
- the broadband link 2081 may be widened by extending the bus width, or may be widened by increasing the operating frequency for data transfer. When the bandwidth is widened by expanding the bus width, the bus width of the link 2081 may be double the bus width of the link connecting the initiator and the router 2021.
- Half of the signal lines of the link 2081 are assigned to the route A and the other half are assigned to the route B, and the router 2022 has two bandwidth information management units 101 for managing the bandwidth information of the route A and the route B.
- FIGS. 24A to 24D show examples of route separation methods.
- the link 2081 has a data transfer capability that is twice the bandwidth of the output link of each initiator (FIG. 24A). Therefore, as shown in FIG. 24B, the bus clock of the link 2081 may be divided by two, and the data transfer of the paths A and B may be performed at the rising and falling timings of the divided clock. For example, FIG. 24A
- FIG. 24C shows an example in which the data transfer of the path A is performed at the rising timing of the clock divided by 2
- FIG. 24D shows the path B at the falling timing of the clock divided by two.
- An example of performing data transfer is shown.
- the present invention can be used for a network bus control device, a control method, and a control program having a data transfer path control technique in an on-chip bus in a SoC for embedded devices, a general-purpose processor, and a local bus on a DSP. .
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
Abstract
SoC(System-on-Chip)の通信バスにおいて低いバス動作周波数で広帯域な通信を実現する。 バス制御装置は、ネットワーク化されたバスを介して第1ノードと第2ノードとの間でデータを伝送する半導体回路のバス制御システムの、当該第1ノードに直接接続される。バス制御装置は、第1ノードから第2ノードに向かう往路群、および第2ノードから第1ノードに向かう復路群の少なくとも一方の経路群に関して各経路の負荷を検出する経路負荷検出部と、当該経路群の経路負荷が均一化されるように、経路群の中から候補となる経路を抽出する経路候補抽出部と、抽出結果、および予め定められた選択規則に基づいて、データの伝送経路を決定する経路決定部と、当該経路を示す経路情報を格納したヘッダ情報を利用して、第1ノードと第2ノードとの間でデータを伝送するデータ送受信部とを備えている。
Description
本願は、ネットワーク化された通信バスを備える半導体チップにおいて、通信バスの制御を行うための技術に関する。
NoC(Network-on-Chip)は、ネットワーク化された通信バスであり、NoC上で効率的に転送データを分散させる従来の方法として、特許文献1に記載の方法がある。図1は、特許文献1のバスの構成を示す。図1において、送信機能モジュールAの各々は、受信側機能モジュールBにデータを転送するためのR1からR4の4つの経路のうちのいずれかを選択できる。送信機能モジュールAの各々は、受信側機能モジュールBへのデータの転送に先立ち、受信側機能モジュールBから経路R1からR4の4つの経路それぞれの流量を取得し、経路R1からR4の流量が出来るだけ均一になるように自らのデータ転送経路を選択する。送信機能モジュールAの各々が独立にこのような動作を行うことにより、4つの経路R1からR4の間の流量の偏りが最小化され、バスを低い動作周波数で動作させながら広帯域なデータ転送を行うことができる。
図2は、一般的なSoCシステムの構成を示す。図2に示すように、一般的なSoCでは、プロセッサとしてのCPU、メディア処理用DSPとしてのエンコードエンジンENC、デコードエンジンDEC、外部とのデータ入出力用ASICであるIO、グラフィック処理用ASIC(図示せず)など多数のイニシエータが往路バス(ライトバス)、復路バス(リードバス)を介して共有メモリと接続される。イニシエータから往路バスを用いてメモリに転送されるデータへの経路の割当は、設計時に決定されたイニシエータ間の優先度関係を反映させた形で行われる必要がある。リアルタイム系の信号処理を行うENC、DEC、IOなどは、レート保証型のイニシエータであり、設計帯域以上のメモリへのデータ転送は行わない。しかしながら、レート非保証のイニシエータであるCPUなどは、例えばユーザの機器操作に基づく多数のタスクの起動や、内部キャッシュのミスヒットなどにより、メモリに対して瞬間的に大量のデータ転送を要求することがある。
レート非保証のイニシエータが存在する場合には、最大要求帯域を事前に定義することはできない。したがって、上述した特許文献1の技術を利用したとしても、より効率的なデータ転送が依然として求められる。
上記課題を解決するために、本発明の一態様は、ネットワーク化されたバスを介して第1ノードと第2ノードとの間でデータを伝送する、半導体回路のバス制御システムにおいて、前記第1ノードに直接接続されるバス制御装置であって、前記バス制御装置は、前記第1ノードから前記第2ノードに向かう2以上の経路を往路群とし、前記第2ノードから前記第1ノードに向かう2以上の経路を復路群としたときにおいて、前記往路群および前記復路群の少なくとも一方の経路群に関して各経路の負荷を検出する経路負荷検出部と、前記少なくとも一方の経路群の経路負荷が均一化されるように、前記経路群の中から候補となる経路を抽出する経路候補抽出部と、予め定められた選択規則を記憶した選択規則記憶部と、前記経路候補抽出部の抽出結果、および前記選択規則記憶部に記憶された選択規則に基づいて、データを伝送する経路を決定する経路決定部と、決定された前記経路を示す経路情報を格納したヘッダ情報を生成するヘッダ構築部と、前記ヘッダ情報に基づいて特定される前記経路を利用して、前記第1ノードと前記第2ノードとの間でデータを伝送するデータ送受信部とを備えたバス制御装置を含む。
上述の一般的かつ特定の態様は、システム、方法およびコンピュータプログラムを用いて実装され、またはシステム、方法およびコンピュータプログラムの組み合わせを用いて実現され得る。
本発明のある実施形態にかかるバス制御装置によれば、より効率的なデータ転送が実現される。
近年、SoC(System on Chip)が利用される組込機器分野や汎用プロセッサ分野において、半導体チップの高機能化への要求が高まっている。半導体チップの高機能化に伴い、チップ上の通信バスを介して転送されるデータの要求帯域が増加し、通信バスの広帯域化が必要となってきている。通信バスの広帯域化のためには、バスの動作周波数を上げることで、単位時間あたりのデータ転送量を増やすことが考えられる。しかしながら、動作周波数の増加により消費電力の増加、実装面積の増加、レイアウト実装の複雑化の課題が生じる。動作周波数を上げずに通信バスの広帯域化を行う為には、低速な通信経路を並列的に用いて、転送データ負荷を並列バス上で効率的に分散することが有効である。
リアルタイム系のレート保証型のイニシエータに対する経路選択は、要求帯域が経路間で均一となるように行うのが望ましい。一方、レート非保証型のイニシエータに対する経路選択は、要求帯域の均一性を重視せず異なる経路に割り当てることが望ましい。その理由は、レート保証系とレート非保証系の干渉及びレート非保証系の相互干渉を排除するためである。このように往路でのバスの経路を割り当てる場合には、イニシエータ毎の転送データの特性も加味した上で行う必要がある。
一方、復路を用いてメモリコントローラから各イニシエータに返信されるデータは、往路でイニシエータ間の優先度に応じた調停が既に行われ、調停順序に基づいてメモリから読み出されたものである。よって、単純に経路間の返信の帯域が均一となるように復路の経路を割り当てれば良い。また各イニシエータの要求帯域の設計が往路での要求帯域(ライトの帯域)と復路での要求帯域(リードの帯域)に分離して設計される場合もあり、往路と復路それぞれの要求帯域に基づいて、経路選択を行うことでバス帯域を充分に利用可能となる。
ここでさらに留意すべき事項が2つある。
第1の留意事項は、システムの大規模化に対するスケーラビリティである。図2において、ENC1がバスイニシエータとして動作し、メモリEへのデータの書き込みと読み出しを行う場合、ENC1はメモリEへのデータの転送に先立ち、経路R1からR4の往路での流量を取得し、最適な経路を選択した上で、メモリEに対してデータの転送を行う。選択された経路はENC1側に記憶され、以降のメモリEへのデータ転送は該経路が用いられる。ENC1から転送データを受理したメモリコントローラCは、メモリEへのアクセス処理を行い、結果のデータをENC1に返信する。メモリコントローラCは、データ返信に先立ち、経路R1からR4の復路での流量を取得し、最適な経路を選択した上で、ENC1に対してデータの転送を行う。選択された経路はメモリコントローラCに記憶され、以降のENC1へのデータ転送は該経路が用いられる。
一般的なSoCの構成では、多数のイニシエータがメモリを共用する構成であるため、メモリコントローラCが管理すべき復路の情報は、イニシエータの増加に従い増大し、メモリコントローラのリソースの増加と処理負荷の増加をもたらす。また更に復路の経路選択には、各復路の流量を取得するための制御情報交換の遅延が生じるため、メモリEへのアクセスレイテンシの増加や、その間メモリEから読み出されたデータを一時的に蓄積するためのバッファも必要となり、メモリコントローラのリソースの増加と処理遅延の増加をもたらす。よって、イニシエータの増加に対し、共用メモリ側のメモリコントローラのスケーラビリティを確保できるような構成が必要とされている。
第2の留意事項は、SoCの品種展開時などにイニシエータの個数などの変更があった場合、イニシエータへの復路の情報を管理するメモリコントローラへも設計変更が波及し、設計工数と検証工数を増大させることである。そのような設計工数および検証工数の増大の抑制もまた必要とされている。
本願発明者らは、スケーラビリティおよび設計変更の容易さを向上させつつ、往路と復路、レート保証系とレート非保証系などの転送データの特性を考慮した経路割当を行う技術を開発した。
たとえば本願発明のある実施形態によるバス制御装置は、ネットワーク化されたバスを介して第1ノードと第2ノードとの間でデータを伝送する、半導体回路のバス制御システムにおいて、第1ノードに直接接続される。バス制御装置は、第1ノードから第2ノードに向かう2以上の経路を往路群とし、第2ノードから第1ノードに向かう2以上の経路を復路群としたときにおいて、往路群および復路群の少なくとも一方の経路群に関して各経路の負荷を検出する経路負荷検出部と、少なくとも一方の経路群の経路負荷が均一化されるように、経路群の中から候補となる経路を抽出する経路候補抽出部と、予め定められた選択規則を記憶した選択規則記憶部と、経路候補抽出部の抽出結果、および選択規則記憶部に記憶された選択規則に基づいて、データを伝送する経路を決定する経路決定部と、決定された経路を示す経路情報を格納したヘッダ情報を生成するヘッダ構築部と、ヘッダ情報に基づいて特定される経路を利用して、第1ノードと第2ノードとの間でデータを伝送するデータ送受信部とを備えている。
上述のバス制御装置を用いたバス制御システムでは、往路または復路の少なくとも一方の経路においてバス動作周波数の低減が可能になり、消費電力削減、実装面積削減、レイアウトが容易となる。また往路、復路のデータ転送経路を第1ノード(イニシエータ)側で管理できるため、システムの大規模化と品種展開時の設計、検証工数の削減に対応可能となる。また複数のメモリを有するシステムにおいて、メモリの使用率も向上させることができる。
上記課題を解決するために、本発明の一態様は、ネットワーク化されたバスを介して第1ノードと第2ノードとの間でデータを伝送する、半導体回路のバス制御システムにおいて、前記第1ノードに直接接続されるバス制御装置であって、前記バス制御装置は、前記第1ノードから前記第2ノードに向かう2以上の経路を往路群とし、前記第2ノードから前記第1ノードに向かう2以上の経路を復路群としたときにおいて、前記往路群および前記復路群の少なくとも一方の経路群に関して各経路の負荷を検出する経路負荷検出部と、前記少なくとも一方の経路群の経路負荷が均一化されるように、前記経路群の中から候補となる経路を抽出する経路候補抽出部と、予め定められた選択規則を記憶した選択規則記憶部と、前記経路候補抽出部の抽出結果、および前記選択規則記憶部に記憶された選択規則に基づいて、データを伝送する経路を決定する経路決定部と、決定された前記経路を示す経路情報を格納したヘッダ情報を生成するヘッダ構築部と、前記ヘッダ情報に基づいて特定される前記経路を利用して、前記第1ノードと前記第2ノードとの間でデータを伝送するデータ送受信部とを備えたバス制御装置を含む。
例示的なある実施形態において、前記経路負荷検出部は、前記往路群および前記復路群の少なくとも一方の経路群に割り当てられているバスの利用帯域を、前記経路負荷として検出する。
例示的なある実施形態において、前記少なくとも一方の経路群は前記往路群であり、前記経路候補抽出部は前記往路群の経路のうち、前記経路負荷が最も小さくなる経路を、前記候補となる経路として抽出する。
例示的なある実施形態において、前記少なくとも一方の経路群は前記復路群であり、前記経路候補抽出部は前記復路群の経路のうち、前記経路負荷が最も小さくなる経路を、前記候補となる経路として抽出する。
例示的なある実施形態において、前記選択規則記憶部は、経路に関する制限が無い選択規則、特定の経路を利用する選択規則、データ伝送単位であるフローが複数存在する場合におけるフローの順序を示す選択規則、およびレート非保証型のフローであることを示す選択規則の少なくとも1つを記憶する。
例示的なある実施形態において、前記選択規則記憶部は、データ伝送単位であるフローが複数存在する場合におけるフローの順序を示す選択規則を記憶しており、新たなフローとの間で順序性を有する他のフローの経路が既に決定されており、かつ、フローの順序性を示す前記選択規則が新たなフローに適用される場合において、前記経路候補抽出部は、前記他のフローの経路と同一の経路を、前記候補となる経路として抽出する。
例示的なある実施形態において、前記選択規則記憶部は、レート非保証型のフローであることを示す選択規則を記憶しており、レート非保証型のフローの経路が既に決定されており、かつ、レート非保証型のフローであることを示す前記選択規則が新たなフローに適用される場合において、前記経路候補抽出部は、既存の前記レート非保証型のフローの経路とは異なる経路を、前記候補となる経路として抽出する。
例示的なある実施形態において、前記選択規則記憶部が、特定の経路を利用する選択規則を記憶しており、かつ、前記特定の経路を利用する選択規則が新たなフローに適用される場合において、前記経路決定部は、前記経路候補抽出部の抽出結果に拘わらず、前記選択規則によって特定される経路を、前記データを伝送する経路として決定する。
例示的なある実施形態において、レート非保証型のフローの経路が既に決定されており、前記選択規則記憶部がレート非保証型のフローであることを示す選択規則を記憶しており、かつ、前記レート非保証型のフローであることを示す選択規則が新たなフローに適用される場合において、前記経路候補抽出部は、既存の前記レート非保証型のフローの経路とは異なる経路を、前記候補となる経路として抽出する。
例示的なある実施形態において、前記選択規則記憶部は、さらに前記第1ノードのフローの優先度を示す優先度情報を保持しており、前記経路候補抽出部は、前記優先度情報に基づいて、優先度がより低いフローが割り当てられた経路を、前記候補となる経路として抽出する。
例示的なある実施形態において、前記データ送受信部は、パケット方式で前記データを送受信し、前記ヘッダ構築部は、パケットのヘッダに前記ヘッダ情報を格納する。
本発明のある例示的な実施形態にかかるバス制御システムは、少なくとも1つの第1ノードと、少なくとも1つの第2ノ―ドと、前記少なくとも1つの第1ノードに直接接続された、上述したいずれかの例示的な実施形態にかかるバス制御装置と、前記バス制御装置および前記少なくとも1つの第2ノ―ドとの間に複数の経路を形成するネットワーク化されたバスと、を備え、前記バスを介して前記少なくとも1つの第1ノードと前記少なくとも1つの第2ノードとの間でデータを伝送する。
ある例示的な実施形態において、前記バス制御システムは、複数のメモリの各々に割り当てられたデータのフローを交換するマイグレータをさらに備え、前記複数のメモリは、前記少なくとも1つの第2ノードであり、前記少なくとも1つの第1ノードから前記複数のメモリとの間には複数の経路が設けられており、前記マイグレータは、前記複数の経路に割り当てられているバスの利用帯域と、各メモリ上で利用される容量とに基づいて、複数のメモリの各々に割り当てられたデータのフローを交換する。
例示的なある実施形態において、前記バス制御システム中の前記複数の経路は空間的に分離された複数のバスとして構成される。
例示的なある実施形態において、前記バス制御システム中の前記複数の経路はバス上の単一の信号線によって構成される。
例示的なある実施形態において、前記バス制御システム中の前記複数の経路はバス上の単一の信号線を時分割多重することによって構成される。
例示的なある実施形態において、前記バス制御システム中のネットワーク化された前記バスは、前記複数の経路が設けられたローカルバスと、システムバスとを備えており、前記バス制御システムは、前記ローカルバスと前記システムバスとを接続するバスブリッジをさらに備えている。
本発明のある実施形態にかかるネットワークインタフェースは、上述のいずれかに記載のバス制御システムにおいて用いられる。前記ネットワークインタフェースは、帯域情報を管理する帯域情報管理部であって、前記帯域情報は、対応する経路に現在割り当てられている、データ伝送単位であるフローの帯域に関する情報である、帯域情報管理部と、前記第1ノードから前記第2ノードへのデータ、および前記第2ノードから前記第1ノードへのデータを送受信するデータ送受信部とを備えている。
例示的なある実施形態において、前記帯域情報管理部は、前記バス制御システムに包含される前記バス制御装置の経路負荷検出部からの要求に応答して、前記データ送受信部を介して前記帯域情報を出力する。
例示的なある実施形態において、前記ネットワークインタフェースは、前記ヘッダ情報に格納された前記復路を示す経路情報に基づいて、前記復路を特定する情報を生成し、宛先を特定する情報とともにパケットのヘッダに格納する復路ヘッダ構築部をさらに備えている。
以下、添付の図面を参照しながら、本発明のある実施形態によるバス制御装置および通信システムを説明する。以下の実施形態の説明では、バス制御装置は、ネットワークインタフェースであるとして説明する。また、データを相互に伝送する複数のノードは、イニシエータおよびメモリであるとして説明する。
(実施形態1)
図3は、本実施形態にかかるSoCシステム400を示す。イニシエータ401-404の各々は、ローカルバス470およびシステムバス480を介して共用メモリ461との間でデータの転送を行う。SoCシステムを構成するNoCバスでは、ローカルバス470およびシステムバス480上でのデータの転送は、パケット単位で行われる。データの転送を実現するための接続関係は以下のとおりである。
図3は、本実施形態にかかるSoCシステム400を示す。イニシエータ401-404の各々は、ローカルバス470およびシステムバス480を介して共用メモリ461との間でデータの転送を行う。SoCシステムを構成するNoCバスでは、ローカルバス470およびシステムバス480上でのデータの転送は、パケット単位で行われる。データの転送を実現するための接続関係は以下のとおりである。
まず、イニシエータ401から404は、ネットワークインタフェースNI(Network Interface)411から414を介してローカルバス470に接続される。メモリ461はメモリコントローラ451およびNI441を介してシステムバス480に接続される。各NIは、パケット化や脱パケット化の処理を行ってデータを転送する。
ローカルバス470とシステムバス480はバスブリッジ431を介して相互に接続されている。バスブリッジ431は、ローカルバス側に2つの入出力インタフェースを持ち、それぞれ経路AとBに接続される。
ローカルバス470は、ルータ421から424によってネットワーク化され、いずれのイニシエータからもメモリ461とのデータ転送において、経路Aと経路Bが選択可能な構成となっている。バスブリッジ431には、経路AおよびBの各々に対応してインタフェース部120aおよび120bを有している。インタフェース部120aおよび120bの構成は後に図8に関連して説明する。
ローカルバス470において、実線の矢印は各イニシエータからバスブリッジ431にデータを転送するための往路バス471を表し、点線の矢印はバスブリッジ431から各イニシエータにデータを返信するための復路バス472を表す。
システムバス480は、バスブリッジ431からメモリ461にデータを転送するための往路バス481と、メモリ461からバスブリッジ431にデータを返信するための復路バス482から構成される。
本実施形態では、システムバス481、482は各32ビット幅、200MHzのバスであり、接続可能なバンド幅は、800MB/sである。またローカルバス471、472は各32ビット幅、100MHzのバスであり、接続可能なバンド幅は、経路Aで400MB/s、経路Bで400MB/sであり、2つの経路の合計で800MB/sである。
ローカルバス470では、100MHzの低動作周波数の2つの経路AとBを均等に用いることで、システムバス480と比較して半分のバス動作周波数で動作可能な構成となっている。この構成は、後述するように、単純にバス幅を2倍にして転送速度を半分に落とすことのみを意味しているのではない。複数の経路でデータを伝送可能とすることで、経路毎に独立してフローを伝送できることを意図している。複数の経路を設けることにより、バス幅が実質的に拡大し、配線および当該配線上を伝送されるデータが局所的に集中することを抑制可能となる。
図4は、イニシエータ401から404の要求帯域を示す。要求帯域の単位は1秒間に転送可能なメガバイト数で表している。この値は瞬間的な計測値ではなく、イニシエータ毎の要求帯域の設計値または、機器のユースケース毎に定められるような比較的長い時間に渡る要求帯域を示している。
上述した構成のSoCシステム400を用いて、メモリアクセス動作の概要を説明する。
本実施形態では、イニシエータ401、402、403、404の順に、それぞれ時刻tc=1000、2000、3000、4000にメモリ461へのアクセスを開始するものとする。時刻tcはシステム起動時を起点とし、バス動作周波数を基準としたサイクル数で時刻を表した値とする。
tc=0のシステム起動時点では未だどのイニシエータもメモリ461へのアクセスを行っていないため、いずれの経路にも帯域が割り当てられていない状態である。
図5は、フロー割当状況の時間変化を示す。図5の第3列に示されるように、tc=0においては要求帯域は全て0である。
tc=1000において、イニシエータ401がメモリ461へのアクセスを開始する際、NI411はバスブリッジ431から、経路Aの往路、復路と経路Bの往路、復路の割当帯域を取得する。この時点ではいずれも割当が行われていない。そのため、往路では経路Aに対して300MB/s、復路では経路Aに対して100MB/sの帯域の割当要求をバスブリッジ431に対して行う。図5の第4列には、イニシエータ401の帯域が割り当てられた後の各径路の帯域が示されている。
次に、tc=2000において、イニシエータ402がメモリ461へのアクセスを開始する。このとき、NI412はバスブリッジ431から、経路Aの往路、復路と経路Bの往路、復路の割当帯域を取得する。この時点では図5の第4列に示すような割当状態となっている。そこで、2つの経路間で割当帯域を均一化すべく、NI412はバスブリッジ431に対し、往路では経路Bに対して200MB/s、復路では経路Bに対して300MB/sの帯域の割当要求を行う。図5の第5列は、イニシエータ402の帯域がさらに割り当てられた後の各径路の帯域が示されている。
次に、tc=3000において、イニシエータ403がメモリ461へのアクセスを開始する。このとき、NI413はバスブリッジ431から、経路Aの往路、復路と経路Bの往路、復路の割当帯域を取得する。この時点では図5の第5列に示すような割当状態となっている。そこで、2つの経路間で割当帯域を均一化すべく、NI413はバスブリッジ431に対し、往路では経路Bに対して200MB/s、復路では経路Aに対して300MB/sの帯域の割当要求を行う。図5の第6列は、イニシエータ403の帯域がさらに割り当てられた後の各径路の帯域が示されている。
最後に、tc=4000において、イニシエータ404がメモリ461へのアクセスを開始する。このとき、NI414はバスブリッジ431から、経路Aの往路、復路と経路Bの往路、復路の割当帯域を取得する。この時点では図5の第6列に示すような割当状態となっている。そこで、2つの経路間で割当帯域を均一化すべく、NI414はバスブリッジ431に対し、往路では経路Aに対して100MB/s、復路では経路Bに対して100MB/sの帯域の割当要求を行う。図5の第7列は、イニシエータ404の帯域がさらに割り当てられた後の各径路の帯域が示されている。
tc=4000以降は、図5の第7列に示した割当状態により、経路Aと経路B間で転送データ量が往路、復路ともに均一に分散された状態となる。各イニシエータに対して行われた往路及び復路の経路割当結果は、各イニシエータに接続されたNIによって記憶され、イニシエータから受理した転送データのパケット化を行う際に、パケットのヘッダに往路及び復路の経路情報を格納する。
図6はイニシエータ側のNIで生成されるパケットヘッダの構成例である(後述)。ローカルバスのルータ421から424は、往路ではパケットヘッダの第2フィールドを宛先としてパケット転送を行い、システムバスのルータ(図示せず)は第1フィールドを宛先としてパケット転送を行う。メモリ側のNI441に到着したパケットは脱パケット化されると同時に、復路への返信パケットに付与するパケットヘッダを往路パケットヘッダの格納情報から生成する。
図7は復路パケットヘッダの例である。メモリ461から読み出した転送データは、図7に示されるパケットヘッダを用いてパケット化され、システムバス復路482を用いて転送される。システムバス復路482からパケットを受理したバスブリッジ431は、パケットヘッダの第2フィールドを参照し、ローカルバスの復路の経路を決定し、ローカルバス復路472に返信パケットを送出する。返信パケットは、パケットヘッダの第1フィールドを宛先として転送され、イニシエータ側NIまで届けられ、脱パケット化された後にイニシエータに渡されることでメモリアクセスが完了する。
図8は、イニシエータ側のネットワークインタフェース(NI)110の構成の例を示す。このNI110は、イニシエータに直接接続されるインタフェースであり、図3に示すNI411から414に対応する。以下、NI110の例として図3のNI413を挙げて説明する。
NI110は、選択規則記憶部111と、経路負荷検出部112と、経路決定部115と、ヘッダ構築部116と、データ送受信部117と、経路候補抽出部118とを備えている。以下、NI110の各構成要素およびその動作を詳細に説明する。
なお、本実施形態では、第1ノードであるイニシエータから第2ノードであるメモリまでの往路、および、メモリからイニシエータまでの復路の両方に関して、負荷分散を行う例を説明する。しかしながら、往路または復路のいずれかのみに関して負荷分散を行ってもよい。すなわち本実施形態は、往路および復路の少なくとも一方に関して負荷分散を行うことを想定している。これは、本実施形態の説明を援用する他の実施形態に関しても同様である。
(選択規則記憶部111)
選択規則記憶部111は、イニシエータと各メモリとの間の経路を選択するために利用される選択規則を格納する。
選択規則記憶部111は、イニシエータと各メモリとの間の経路を選択するために利用される選択規則を格納する。
図9は、NI413に関するローカルバスの経路選択規則の例を示す。第1列にはNI413に与えられたシステム上で一意のID(本実施形態では数字列)が示されており、第2列にはイニシエータ401からのフローを区別するための番号が示されている。第1列のIDの数字列と第2列のフロー番号とを合わせると、システムで一意なフローを区別するための識別子であるフローIDが得られる。本実施形態においては、フローIDは、たとえば「41301」、「41302」などと表される。
ここで「フロー」とは、設計時あるいは動作時におけるメモリへのアクセスの要求帯域の単位を表す。例えばイニシエータ403がコーデックエンジンであり、エンコード処理タスクに往路200MB/s、復路300MB/sの要求設計帯域が与えられ、デコード処理タスクに往路100MB/s、復路100MB/sの要求設計帯域が与えられているとする。この場合のこれら2つのタスクが、イニシエータの2つのフローに対応する。
第3列および第4列はそれぞれローカルバスでの往路と復路での経路を割り当てる際の選択規則を表す。フローIDが41301のフローに適用される選択規則を例に挙げて説明すると、このフローには往路、復路とも制限無の規則が適用されており、経路の制限も設けられていない。これは、経路間のデータ転送量が均一となるように、経路A、経路Bのいずれの経路の割当も可能であることを示す。
他の例として、フロー41302のフローに適用される選択規則は、往路、復路とも経路Bに固定され経路Aは選択されないことを示す。これは、例えばシステム上に平均要求帯域は設計されているが、最大要求帯域はバスの物理帯域を上限とするようなレート非保証系のイニシエータが他にも存在する場合に有効である。複数のイニシエータが同一の経路を選択することで、最大要求帯域が相互に干渉し、イニシエータのパフォーマンスが瞬間的に急低下する可能性がある。フローの経路を固定する規則を設けることにより、そのようなパフォーマンスの低下を回避することができる。そのような状況では、一方のレート非保証系のイニシエータは往路、復路とも経路Aに固定する選択規則とし、他方のレート非保証系のイニシエータは往路、復路とも経路Bに固定する選択規則としてもよい。
またシステム上に、メモリへのアクセス・レイテンシが非常に短いイニシエータが存在する場合、割当帯域が制限された特定の優遇経路を設け、該経路に該イニシエータの経路割当を固定する場合の選択規則として利用してもよい。
フローIDが41303と41304のフローに適用される選択規則では、これら2つのフローに属するメモリからの応答パケットに対して、イニシエータ403への到着順序が守られる必要があることを示す。選択規則記憶部111へのフローの登録は、初期化処理としてシステム起動前や、システム動作の切換前に行われてもよいし、各フローの開始時点でイニシエータによって行われてもよい。
(経路負荷検出部112)
経路負荷検出部112は、経路選択候補となる各経路上の帯域情報管理部101に帯域情報を要求し、データ送受信部122を介して帯域情報管理部101から送信された、現在の経路毎の帯域割当状況を取得する。帯域割当状況の取得は、イニシエータからのフローの送信開始要求を受信したタイミングで行われる。
経路負荷検出部112は、経路選択候補となる各経路上の帯域情報管理部101に帯域情報を要求し、データ送受信部122を介して帯域情報管理部101から送信された、現在の経路毎の帯域割当状況を取得する。帯域割当状況の取得は、イニシエータからのフローの送信開始要求を受信したタイミングで行われる。
図10は経路A、経路Bの各帯域情報管理部から取得された情報の例を示す。図10は、NI413のエンコード処理タスクのフローに関し、経路Bの往路、復路には、それぞれ200MB/s、300MB/sの帯域が既に割り当てられている状態であることを示している。帯域情報管理部101からの帯域上の取得は、バス上での制御パケットの交換によって行ってもよいし、専用の制御信号のハンドシェイクによって行ってもよい。バス上での制御パケットの交換によって行う場合は、NI413から各経路上の帯域情報管理部に対して、制御パケットをユニキャストパケットとして送信してもよいし、ブロードキャストパケットとして送信してもよい。また往路の帯域情報を取得する制御パケットと復路の帯域情報を取得する制御パケットを同一の制御パケットとして処理してもよいし、別個の制御パケットとして処理してもよい。
(経路候補抽出部118)
経路候補抽出部118は、往路群および復路群のうちの少なくとも一方の経路群の経路負荷が均一化されるように、経路群の中から候補となる経路を抽出する。候補となる経路の抽出には、経路負荷検出部112によって取得された種々の経路の負荷の情報が利用される。
経路候補抽出部118は、往路群および復路群のうちの少なくとも一方の経路群の経路負荷が均一化されるように、経路群の中から候補となる経路を抽出する。候補となる経路の抽出には、経路負荷検出部112によって取得された種々の経路の負荷の情報が利用される。
なお、本願明細書では、「経路群の経路負荷が均一化されるように」という文言は、以下の意味で用いられる。すなわちこの文言は、経路群の少なくとも1つに既に帯域が割り当てられている状況において、新たに帯域を割り当てようとするときに、経路群全体で負荷の差が小さくなるように、という意味で用いられる。経路群全体で負荷の差が小さくなるように帯域の割り当てが行われていればよい。経路群の負荷の差が存在しないことが最も好ましいが、実際には負荷の差は存在し得る。そのような負荷の差の存在は許容される。なお、「フローの帯域を均一化する」などにおける「均一化」という意味も同様に、経路群全体で負荷の差が小さくなるように、という意味で用いられ、負荷の差が完全になくなることを必要としないことに留意されたい。
経路候補抽出部118は、往路候補抽出部113および復路候補抽出部114を有する。往路に関しては、往路候補抽出部113が候補となる経路を抽出する。復路に関しては、復路候補抽出部114が候補となる経路を抽出する。
(往路候補抽出部113)
往路候補抽出部113は、経路負荷検出部112によって、帯域情報管理部101から取得された、経路i毎の往路割当済帯域の値Uiと、割当対象のフローjの往路要求帯域ujとから、経路iにフローjの割当を行った場合の経路iの往路割当帯域の値Eijを算出する。数1内のfwdは往路を示す添字である。
往路候補抽出部113は、経路負荷検出部112によって、帯域情報管理部101から取得された、経路i毎の往路割当済帯域の値Uiと、割当対象のフローjの往路要求帯域ujとから、経路iにフローjの割当を行った場合の経路iの往路割当帯域の値Eijを算出する。数1内のfwdは往路を示す添字である。
ここで、図10は、往路割当済帯域(Ui)の値の例を示す。
(復路候補抽出部114)
復路候補抽出部114は、経路負荷検出部112によって、帯域情報管理部101から取得された、経路i毎の復路割当済帯域の値Uiと、割当対象のフローjの復路要求帯域ujとから、経路iにフローjの割当を行った場合の経路iの復路割当帯域の値Eijを算出する。数1内のbackは復路を示す添字である。
復路候補抽出部114は、経路負荷検出部112によって、帯域情報管理部101から取得された、経路i毎の復路割当済帯域の値Uiと、割当対象のフローjの復路要求帯域ujとから、経路iにフローjの割当を行った場合の経路iの復路割当帯域の値Eijを算出する。数1内のbackは復路を示す添字である。
図10はまた、復路割当済帯域(Ui)の値の例を示す。
(経路決定部115)
経路決定部115は、イニシエータ413からのフロー開始要求を検出し、フローIDを検索キーとして選択規則記憶部111を検索し、該フローに関する経路選択規則を抽出する。フローIDが41301のフロー(図9)に対する処理の例を説明すると、経路決定部115は、経路負荷検出112に対して帯域情報の取得を行わせ、往路候補抽出部113と復路候補抽出部114の結果を得る。該フローの往路選択規則は、制限無となっているため、往路間の割当帯域の均一性が最も高くなる往路候補抽出部113の出力経路を往路の割当経路として決定する。また復路選択規則も、制限無となっているため、復路間の割当帯域の均一性が最も高くなる復路候補抽出部114の出力経路を復路の割当経路として決定する。該フローには、往路、復路とも選択規則に制限が無いため、それぞれ独立に割当帯域が最も均一となる経路が選択される。またフローIDが41302のフロー(図9)に対する処理の例を説明すると、往路、復路のいずれも割当経路が固定された選択規則となっているため、帯域情報を取得する必要はなく、往路、復路ともに指定された経路を割当経路として決定する。
経路決定部115は、イニシエータ413からのフロー開始要求を検出し、フローIDを検索キーとして選択規則記憶部111を検索し、該フローに関する経路選択規則を抽出する。フローIDが41301のフロー(図9)に対する処理の例を説明すると、経路決定部115は、経路負荷検出112に対して帯域情報の取得を行わせ、往路候補抽出部113と復路候補抽出部114の結果を得る。該フローの往路選択規則は、制限無となっているため、往路間の割当帯域の均一性が最も高くなる往路候補抽出部113の出力経路を往路の割当経路として決定する。また復路選択規則も、制限無となっているため、復路間の割当帯域の均一性が最も高くなる復路候補抽出部114の出力経路を復路の割当経路として決定する。該フローには、往路、復路とも選択規則に制限が無いため、それぞれ独立に割当帯域が最も均一となる経路が選択される。またフローIDが41302のフロー(図9)に対する処理の例を説明すると、往路、復路のいずれも割当経路が固定された選択規則となっているため、帯域情報を取得する必要はなく、往路、復路ともに指定された経路を割当経路として決定する。
またフローIDが41303と41304のフロー(図9)に関しては、往路での選択規則に制限は無いが、復路の選択規則はフロー間での応答パケットの到着順序が崩れない条件の下で経路選択を行うべきことを示している。これはアクセスに順序性を有する単一のフローを、送信帯域を確保するために2つの経路を用いて並列的に送信する場合などに該当する。
なお、本実施形態のNoCでは、送信元と送信先がそれぞれ決まると、そのデータを中継するルータも一意に定まる構成であることを想定している。したがって、本実施形態では、パケットの送信順序を決定すれば順序を維持できる。なお、上述した「送信先」とは、最終的な送信宛先であるメモリではなく、バスブリッジの経路インタフェースを意味することに留意されたい。
図11は、フロー間での到着順序が崩れる経路割当の例を示す。フロー41303に属する応答パケット41303aと、フロー41304に属する応答パケット41304aは、メモリ1101からバスブリッジ1102にアクセス順序に従って到着する。もしフロー41303に対してローカルバスの復路で経路Aが、フロー41304に対してローカルバスの復路で経路Bが割り当てられた状態であり、経路Aよりも経路Bのほうが転送が速かった場合には、イニシエータ1103に到着する順序は、41304c、41303cのようにアクセス順序とは逆になるため、該フローの選択規則により該割当状態を禁止する。具体的には、フロー41303に対する割当が、フロー41304に対する割当前に発生した場合には、フロー41303に対する割当は、フロー41301と同様に、往路、復路に対して独立に経路が選択される。しかる後にフロー41304に対する割当が発生した際には、往路に対してはフロー41301の往路と同様に各経路の往路割当済帯域に基づいて往路を決定するが、復路の割当については、各経路の復路割当済帯域に基づくことなく、先行して割り当てられた関連フロー41303の復路を、フロー41304への割当先の復路として決定する。経路A、経路B間のデータ転送のタイミングの差によるイニシエータへの到着順序の逆転が防止できる。選択規則に従って決定された各フローの往路、復路の経路割当結果は、経路決定部115によって記憶され、各フローに属するメモリアクセスが行われる際に、ヘッダ構築部116によって参照され、パケットヘッダの生成に利用される。
図12は往路、復路の経路割当結果の格納例を示す。経路決定部115は、該フローに対する往路、復路の割当が完了すると、該割当経路上の帯域情報管理部101に対して、割当を行ったフローに関する情報であるフロー関連情報を通知する。フロー関連情報には、少なくとも該フローの要求帯域に関する情報が含まれる。
図13はフロー関連情報の通知パケットの構成例を示す。該パケットは、メモリアクセスの要求パケットではないため、第1列目のフィールドのメモリ側NIのIDはNULLが格納される。第2列目のフィールドには、往路の割当結果である経路のID、第3列目のフィールドには、送信元であるイニシエータ側NIのID、第4列目のフィールドには、復路の割当結果である経路のIDが格納される。また第5列目のフィールドには、往路に対して割り当てられた要求帯域を示す値が、第6列目のフィールドには、復路に対して割り当てられた要求帯域を示す値が格納され、これらの要求帯域に関する情報が、該パケットにより、帯域情報管理部101に伝達されることにより、各経路上の帯域情報管理部101は、経路上に割り当てられた全てのフローの要求帯域を管理することが可能となる。
経路決定部115は、メモリ・アクセスが完了すると、往路および復路の解放通知を出力する。この通知に基づいて、帯域情報管理部101は、往路および復路の経路を解放し、往路割当済帯域および復路割当済帯域の各値を更新する。
(ヘッダ構築部116)
ヘッダ構築部116は、経路決定部115に記憶されたフロー毎の往路、復路の経路割当結果を参照することで、メモリに対して送信するメモリアクセスの要求パケットのパケットヘッダを構築する。
ヘッダ構築部116は、経路決定部115に記憶されたフロー毎の往路、復路の経路割当結果を参照することで、メモリに対して送信するメモリアクセスの要求パケットのパケットヘッダを構築する。
図6は、パケットヘッダの構築例を示す。
パケットフィールドの第1列には、アクセスする宛先メモリのIDを示す値が格納される。宛先メモリのIDは、イニシエータ403からNI413に対してメモリアクセス要求を出力する度に受信してもよいし、アクセス先のメモリアドレスから宛先メモリのIDに変換するための変換テーブルをNI413に保持し、それを参照することで解決してもよい。
パケットフィールドの第2列には、往路割当結果を示す値が格納される。図12は、経路割当結果の例を示す。ヘッダ構築部116は、フローIDに基づいて図12に示した経路割当結果の記憶領域を検索することで、往路割当結果を示す値を抽出し、パケットフィールドの第2列に格納する。
パケットフィールドの第3列には、イニシエータ403を示すIDが格納される。イニシエータ403のIDは、NI403の初期化時にイニシエータ403からNI403に対してレジスタ等を用いて設定してもよい。またシステムで一意なNI403のIDとしてNI403内に事前に記憶していてもよい。パケットフィールドの第4列には、フローIDに基づいて図12に示した経路割当結果の記憶領域を検索することで抽出した復路割当結果を示す値が格納される。またこれら以外のシステムで必要とされる情報もヘッダ内にフィールドを設けて格納してもよい。
(データ送受信部117)
イニシエータ403から、メモリへのライトまたはリードのアクセス要求を受理したデータ送受信部117は、該アクセスのフローIDを特定し、ヘッダ構築部116に通知することで、メモリに送信するためのアクセス要求パケットのパケットヘッダを獲得する。またイニシエータ403からライトデータを受理した場合には、パケットヘッダと共に初段のルータ422に対して要求パケットの送信を行う。またルータ422から応答パケットを受信した場合は、応答パケットからパケットヘッダを除去し、リードデータを受理した場合には、イニシエータ403に対して送信する。イニシエータ403とのデータの送受信については、イニシエータが対応するバスプロトコルへの変換処理も必要に応じて行う。
イニシエータ403から、メモリへのライトまたはリードのアクセス要求を受理したデータ送受信部117は、該アクセスのフローIDを特定し、ヘッダ構築部116に通知することで、メモリに送信するためのアクセス要求パケットのパケットヘッダを獲得する。またイニシエータ403からライトデータを受理した場合には、パケットヘッダと共に初段のルータ422に対して要求パケットの送信を行う。またルータ422から応答パケットを受信した場合は、応答パケットからパケットヘッダを除去し、リードデータを受理した場合には、イニシエータ403に対して送信する。イニシエータ403とのデータの送受信については、イニシエータが対応するバスプロトコルへの変換処理も必要に応じて行う。
ここで図8および図3を参照する。
図8のメモリ側インタフェース部120は、図3のNI441の構成の例である。また図8に示すように、メモリが複数存在する場合にはメモリ側インタフェース部120も複数設けられる。つまり、経路が異なれば、経路ごとにインタフェース部が設けられる。
同様の理由で、メモリ側インタフェース部120と同等の構成を有するインタフェース部120が、各経路AおよびBについてインタフェース部120aおよび120b(図3)として設けられる。以下では、図8のインタフェース部120が、図3のNI441に対応するとして説明するが、インタフェース部120aおよび120b(図3)の構成も同等であることに留意されたい。
メモリ側インタフェース部120は、帯域情報管理部101と、復路ヘッダ構築部121と、データ送受信部122とを備えている。以下、メモリ側インタフェース部120の構成要素およびその動作を詳細に説明する。
(復路ヘッダ構築部121)
復路ヘッダ構築部121は、イニシエータ側のNI411からNI414より受信したメモリアクセスの要求パケットのパケットヘッダに基づいて、メモリアクセス結果を格納する応答パケットのパケットヘッダを構築する。ローカルバス内の応答パケットの割当経路は、イニシエータ側のNI411からNI414内で管理されるため、応答パケットがとるべき復路の経路に関する情報は、要求パケットのパケットヘッダ内に格納されてメモリ側のNI441に通知される。
復路ヘッダ構築部121は、イニシエータ側のNI411からNI414より受信したメモリアクセスの要求パケットのパケットヘッダに基づいて、メモリアクセス結果を格納する応答パケットのパケットヘッダを構築する。ローカルバス内の応答パケットの割当経路は、イニシエータ側のNI411からNI414内で管理されるため、応答パケットがとるべき復路の経路に関する情報は、要求パケットのパケットヘッダ内に格納されてメモリ側のNI441に通知される。
図7は、応答パケットのパケットヘッダの構成の例を示す。応答パケットの第1列目のフィールドは、応答パケットの最終的な宛先となるイニシエータ側のNIのIDが、図6に示す要求パケットのパケットヘッダの第3列目のフィールドから複製され格納される。応答パケットの第2列目のフィールドは、ローカルバスの復路を示すIDであり、要求パケットの第4列目のフィールドから複製され格納される。応答パケットの第3列目のフィールドは、応答パケットの送信元であるメモリ側のNI441のIDであり、要求パケットの第1列目のフィールドと同一の値が格納される。応答パケットの第4列目のフィールドは、ローカルバス往路のIDであり、要求パケットの第2フィールドから複製され格納される。なお、復路においてはローカルバス往路の情報は特に必要はないため、ローカルバス往路のIDを設けなくてもよい。
(データ送受信部122)
データ送受信部122は、システムバス往路481を介して、要求パケットを受信する。データ送受信部122は、要求パケットからパケットヘッダを分離し、ライトデータまたはリード要求を、メモリコントローラ451に送信する。またデータ送受信部122は、要求パケットヘッダから分離したパケットヘッダを復路ヘッダ構築部121に通知する。また、メモリコントローラ451から、メモリ461へのライトまたはリードのアクセス応答を受理した場合は、復路ヘッダ構築部121から応答パケットのパケットヘッダを獲得し、該アクセス応答に含めて応答パケットを生成し、システムバス復路482を介してイニシエータに対して送信する。メモリコントローラ451とのデータの送受信については、メモリコントローラ451が対応するバスプロトコルへの変換処理も必要に応じて行う。
データ送受信部122は、システムバス往路481を介して、要求パケットを受信する。データ送受信部122は、要求パケットからパケットヘッダを分離し、ライトデータまたはリード要求を、メモリコントローラ451に送信する。またデータ送受信部122は、要求パケットヘッダから分離したパケットヘッダを復路ヘッダ構築部121に通知する。また、メモリコントローラ451から、メモリ461へのライトまたはリードのアクセス応答を受理した場合は、復路ヘッダ構築部121から応答パケットのパケットヘッダを獲得し、該アクセス応答に含めて応答パケットを生成し、システムバス復路482を介してイニシエータに対して送信する。メモリコントローラ451とのデータの送受信については、メモリコントローラ451が対応するバスプロトコルへの変換処理も必要に応じて行う。
(帯域情報管理部101)
帯域情報管理部101は、本実施形態では、バスブリッジ431のローカルバス側インタフェース上に存在する構成をとっているが、各経路の帯域情報が管理できる場所であれば、経路上のどこにあってもよい。経路i上の帯域情報管理部101は、経路iに対して現在割り当てられているフローの割当済帯域Uiを管理し、経路決定部115から受理した割当結果の通知に基づいてUiを更新する。システム起動時などの未だフローが何も割り当てられていない状態において、割当済帯域Uiは数5、数6に従い初期化される。式中のfwdは往路を表し、backは復路を表す添字である。
帯域情報管理部101は、本実施形態では、バスブリッジ431のローカルバス側インタフェース上に存在する構成をとっているが、各経路の帯域情報が管理できる場所であれば、経路上のどこにあってもよい。経路i上の帯域情報管理部101は、経路iに対して現在割り当てられているフローの割当済帯域Uiを管理し、経路決定部115から受理した割当結果の通知に基づいてUiを更新する。システム起動時などの未だフローが何も割り当てられていない状態において、割当済帯域Uiは数5、数6に従い初期化される。式中のfwdは往路を表し、backは復路を表す添字である。
図13は、フローjの割当処理完了に伴い、経路決定部115から受理する割当結果の通知のパケットの例を示す。パケットの第2列目に格納された往路のIDが、帯域情報管理部101が管理する経路iに対応するIDであれば、パケットの第5列目のフィールドに格納された該フローjの往路割当帯域の値ujを用いて、数7に従って割当済帯域Uiの値を更新する。
パケットの第4列目に格納された復路のIDが、帯域情報管理部101が管理する経路iに対応するIDであれば、パケットの第6列目のフィールドに格納された該フローjの復路割当帯域の値ujを用いて、数8に従って割当済帯域Uiの値を更新する。
経路iへのフローの割当、解放に伴って常に割当済帯域Uiを更新することにより、経路iの往路、復路に割り当てられている要求帯域を帯域情報管理部101で管理することが可能となる。帯域情報管理部101は、経路負荷検出部112からの要求に従い、割当済帯域Uiの値を通知する。
図14は、本実施形態のイニシエータ側のNIにおける処理フローを示す。まずステップS1401において、経路決定部115はイニシエータからのフロー開始要求を検出する。ステップS1402において、経路決定部115は、選択規則記憶部111から、選択規則を読み出す。
ステップS1403において、往路候補抽出部113は、経路毎の割当済帯域(往路)を取得する。具体的には、往路候補抽出部113は、経路負荷検出部112によって帯域情報管理部101から取得された、経路i毎の往路割当済帯域の値Uiと、割当対象のフローjの往路要求帯域ujとから、経路iにフローjの割当を行った場合の経路iの往路割当帯域の値Eij(数1)を算出する。
ステップS1404において、復路候補抽出部114は、経路毎の割当済帯域(復路)を取得する。具体的には、復路候補抽出部114は、経路負荷検出部112によって、帯域情報管理部101から取得された、経路i毎の復路割当済帯域の値Uiと、割当対象のフローjの復路要求帯域ujとから、経路iにフローjの割当を行った場合の経路iの復路割当帯域の値Eijを算出する。
ステップS1405において、経路決定部115は、往路候補抽出部113と復路候補抽出部114の結果を得て選択規則記憶部111を検索し、選択規則に従った経路(往路、復路)を決定する。
ステップS1406において、経路決定部115は、割当経路上のメモリ側インタフェース部120の帯域情報管理部101に、経路(往路、復路)の決定結果を通知する。
ステップS1407においてメモリ・アクセスが開始され、ステップS1408においてメモリ・アクセスが終了する。
そしてステップS1409において、経路決定部115は経路(往路、復路)の解放通知を出力する。この結果、帯域情報管理部101は、往路および復路の経路を解放し、往路割当済帯域および復路割当済帯域の各値を更新する。
本実施形態では、イニシエータのデータ転送先はシステムメモリとして説明したが、ローカルメモリやグラフィックメモリなどでもよいし、入出力ポートやバッファ、デバイスであってもよいし、イニシエータ間の直接通信であってもよい。例えばイニシエータ401からイニシエータ404へ、メモリ461を介さず、ローカルバス内で直接通信する場合には、パケットの宛先としてイニシエータ側のNI414のIDを指定すればよい。その場合、NI411から送信された要求パケットは、バスブリッジ431でループバックされ、NI414に送られる。またNI414から送られた応答パケットは、バスブリッジ431でループバックされ、NI411に返される。直接通信のためのフローの割当も、メモリ・アクセスのフローに対する経路割当の処理と同様に行えばよい。かかる構成によればバスの利用帯域を往路、復路毎に最適に制御することが可能となり、低いバス動作周波数の並列構成のバスを用いて、広帯域なデータ転送を行うことができる。
(実施形態2)
実施形態1においては、各イニシエータが発生させるフローjの最大要求帯域ujが定義可能な場合の例を説明した。フロー毎の最大要求帯域は、SoCの帯域設計の方法により粒度は異なるものの、メモリアクセス性能の保証の必要性から、レート保証型のイニシエータについては設計時に定義される設計パラメータと考えてよい。
実施形態1においては、各イニシエータが発生させるフローjの最大要求帯域ujが定義可能な場合の例を説明した。フロー毎の最大要求帯域は、SoCの帯域設計の方法により粒度は異なるものの、メモリアクセス性能の保証の必要性から、レート保証型のイニシエータについては設計時に定義される設計パラメータと考えてよい。
しかし実際のSoCシステムの構成時には、プロセッサやメモリアクセス性能を問わないレート非保証型のイニシエータも存在する。レート非保証型のイニシエータでは、平均要求帯域は定義可能な場合もある。しかしながら、例えばユーザの機器操作に基づく多数のタスクの起動や、内部キャッシュのミスヒットなどにより、メモリに対して瞬間的に大量のデータ転送を要求することがある。このときの最大要求帯域の上限はバスの物理帯域となる。
このようなレート非保証型の広帯域なメモリアクセスが、メモリアクセス性能の保証が必要なリアルタイム系のイニシエータのメモリアクセスと相互に干渉するのを防ぐため、本実施形態においては、バスの帯域を時分割多重したり、またはルータでのパケット転送時における優先度制御を行う。
図15は、本実施形態におけるSoCシステムを示す。
イニシエータ2001-2003はいずれもレート非保証系のイニシエータである。リアルタイム系のイニシエータの記載は省略するが、帯域の時分割多重やパケット優先度制御が行われているのであれば、システム上に存在していても良い。
レート非保証系のイニシエータ2001-2003はバスを介して共用メモリ2051、2052との間でデータの転送を行う。イニシエータ2001-2003は、ネットワーク・インタフェースであるNI2011、2012、2013を介してルータ2021-2023にそれぞれ接続される。メモリ2051、2052は、メモリコントローラ2041、2042、ネットワーク・インタフェースであるNI2031、2032を介してルータ2024、2025に接続される。ルータ2021-2025は、各隣接間で接続されたバスを形成する。
イニシエータ2001、2002、2003はメモリ2051、2052のいずれにもアクセスが可能である。例えばイニシエータ2001からメモリ2051へアクセスを行う際には、イニシエータ2001は、イニシエータ2001から実線で示したバスを通ってルータ2024の経路A側のインタフェースを経由しメモリ2051に至る経路Aと、点線で示したバスを通ってルータ2024の経路B側のインタフェースを経由しメモリ2051に至る経路Bの2つの経路を選択可能である。イニシエータ2001からメモリ2052へのアクセスについても同様に、経路C、経路Dの2つの経路を選択可能である。またイニシエータ2002、2003についても同様に、メモリ2051、2052へのアクセスにおいて、それぞれ2つの経路を選択可能である。
図16は、NI2011、NI2012、NI2013が参照する経路選択規則の例を示す。フロー200101、200201、200301は、いずれもレート非保証型のフローである。フロー200101と200201は同じ優先度を持つ。フロー200301の優先度はフロー200101、200201の優先度より低い。この優先度の情報は、選択規則記憶部によって選択規則と共に保持されている。
図15に実線及び点線で示したバスは、それぞれ往路と復路から構成されるが、実施形態1と同様であるため図15には図示していない。本実施形態では、バスの物理帯域は、往路、復路とも、各32ビット幅、200MHzのバスであり、接続可能なバンド幅は、800MB/sである。該構成のSoCシステムを用いて、レート非保証系のイニシエータにおける経路割当の詳細な方法を、実施形態1と同様の部分については省略し、異なる部分についてのみ行う。
イニシエータ2003は、イニシエータ2001に先立ち、メモリ2052へのアクセスを行うためのレート非保証系のフロー200301の割当要求を開始する。この時点では他のレート非保証系のフロー200101、200201は未だ割当が行われていないため、たとえば、他のレート保証型のフローの割当状況、メモリ2052に至る経路C、経路D間のホップ数の差を加味して、経路Cが割り当てられる。次にイニシエータ2001から、メモリ2051にアクセスするためのレート非保証系のフロー200101の割当要求が出されると、NI2011は、選択可能な各経路上の帯域情報管理部からレート非保証系のフローの割当状況を取得し、経路Bではなく、経路Aを選択する。これにより、イニシエータ2003が行うレート非保証系のメモリアクセスと点線の経路上で干渉することを防ぎ、フロー200101、フロー200301の双方とも、物理帯域を上限とするメモリへのアクセスが可能となる。またその後、イニシエータ2002から、メモリ2052にアクセスするためのレート非保証型のフロー200201の割当要求が出されると、NI2012は、選択可能な各経路上の帯域情報管理部からレート非保証系のフローの割当状況を取得し、経路Aにレート非保証系の高優先度のフロー200101が割当済であり、経路Bにレート非保証系の低優先度のフロー200301が割当済であることを検出する。フロー200201の優先度は、フロー200101と同様で高いため、NI2012は、高優先度のフロー間での干渉を防ぐため、フロー200201を経路Bに割り当てる。
図8のイニシエータ側ネットワーク・インタフェース(NI)110は、図15のNI2011、NI2012、NI2013の構成の例である。実施形態1のNI110と同じ機能を有する構成要素の説明は省略し、機能が異なる構成要素を詳細に説明する。
(選択規則記憶部111)
いずれのフローもレート非保証型であり、最大要求帯域が定義できないため、選択規則記憶部111が格納する選択規則にはレート非保証であることを示す情報が格納される。またレート非保証型のフロー間に優先度関係が存在する場合は、優先度を示す情報も格納される。
いずれのフローもレート非保証型であり、最大要求帯域が定義できないため、選択規則記憶部111が格納する選択規則にはレート非保証であることを示す情報が格納される。またレート非保証型のフロー間に優先度関係が存在する場合は、優先度を示す情報も格納される。
(経路負荷検出部112)
経路負荷検出部112は、経路選択候補となる各経路上の帯域情報管理部101から、現在の経路毎のレート非保証型のフローの割当状況を取得する。
経路負荷検出部112は、経路選択候補となる各経路上の帯域情報管理部101から、現在の経路毎のレート非保証型のフローの割当状況を取得する。
図17は、イニシエータ2001によるフロー200101の割当要求時に、経路A、経路Cの帯域情報管理部から取得された情報の例を示す。経路Aにはレート非保証型のフローは割り当てられていないため、往路、復路とも0の状態である。一方、経路Cには既にイニシエータ2003のレート非保証型のフローが1本割り当てられているため、往路、復路とも1の状態である。
また図18は、イニシエータ2002によるフロー200201の割当要求時に、経路A、経路Cの帯域情報管理部から取得された情報の例を示す。経路Aには既にイニシエータ2001のレート非保証型のフローが1本割り当てられているため、往路、復路とも1の状態である。経路Cには既にイニシエータ2003のレート非保証型のフローが1本割り当てられているため、往路、復路とも1の状態である。
割当状況を表す値については、本実施形態では、該経路に割り当てられたレート非保証型のフローの本数としているが、割当が為されているかどうかを示すバイナリ値としてもよいし、レート非保証型のフローに平均要求帯域が定義できる場合には、平均要求帯域で重み付けをした値としてもよい。
(経路候補抽出部118)
経路候補抽出部118は、往路候補抽出部113および復路候補抽出部114の少なくとも一方を動作させ、往路および復路の少なくとも一方の経路群の経路負荷が均一化されるように、経路群の中から候補となる経路を抽出する。具体的には、次に説明するように、往路候補抽出部113および復路候補抽出部114を動作させる。
経路候補抽出部118は、往路候補抽出部113および復路候補抽出部114の少なくとも一方を動作させ、往路および復路の少なくとも一方の経路群の経路負荷が均一化されるように、経路群の中から候補となる経路を抽出する。具体的には、次に説明するように、往路候補抽出部113および復路候補抽出部114を動作させる。
(往路候補抽出部113)
往路候補抽出部113は、経路負荷検出部112によって、帯域情報管理部101から取得された、経路i毎の往路のレート非保証型の割当状況に基づいて、先ずレート非保証型のフロー割当が為されていない経路を選択する。そして、そのような経路が存在しない場合には、往路候補抽出部113は、割当対象のフローの優先度よりも低い優先度のフローのみが割り当てられている経路を選択する。そのような経路も存在しない場合には、往路候補抽出部113は、割当対象のフローの優先度と同等かそれ以上の優先度のフローの割当数が最小の経路iを該フローへの往路割当経路の候補として選択する。
往路候補抽出部113は、経路負荷検出部112によって、帯域情報管理部101から取得された、経路i毎の往路のレート非保証型の割当状況に基づいて、先ずレート非保証型のフロー割当が為されていない経路を選択する。そして、そのような経路が存在しない場合には、往路候補抽出部113は、割当対象のフローの優先度よりも低い優先度のフローのみが割り当てられている経路を選択する。そのような経路も存在しない場合には、往路候補抽出部113は、割当対象のフローの優先度と同等かそれ以上の優先度のフローの割当数が最小の経路iを該フローへの往路割当経路の候補として選択する。
(復路候補抽出部114)
復路候補抽出部114は、経路負荷検出部112によって、帯域情報管理部101から取得された、経路i毎の往路のレート非保証型の割当状況に基づいて、先ずレート非保証型のフロー割当が為されていない経路を選択する。そして、そのような経路が存在しない場合には、復路候補抽出部114は、割当対象のフローの優先度よりも低い優先度のフローのみが割り当てられている経路を選択する。そのような経路も存在しない場合には、復路候補抽出部114は、割当対象のフローの優先度と同等かそれ以上の優先度のフローの割当数が最小の経路iを該フローへの往路割当経路の候補として選択する。
復路候補抽出部114は、経路負荷検出部112によって、帯域情報管理部101から取得された、経路i毎の往路のレート非保証型の割当状況に基づいて、先ずレート非保証型のフロー割当が為されていない経路を選択する。そして、そのような経路が存在しない場合には、復路候補抽出部114は、割当対象のフローの優先度よりも低い優先度のフローのみが割り当てられている経路を選択する。そのような経路も存在しない場合には、復路候補抽出部114は、割当対象のフローの優先度と同等かそれ以上の優先度のフローの割当数が最小の経路iを該フローへの往路割当経路の候補として選択する。
(経路決定部115)
経路決定部115は、イニシエータ2001からのレート非保証型のフローの開始要求を検出し、フローIDを検索キーとして選択規則記憶部111を検索し、該フローに関する経路選択規則を抽出する。フローIDが200101のフローに対する処理の例としては、経路負荷検出部112に対してレート非保証系の割当状況の取得を行わせ、往路候補抽出部113と復路候補抽出部114の結果を得る。該フローの往路選択規則としては、レート非保証型となっているため、往路間の割当フロー数の均一性が最も高くなる往路候補抽出部113の出力経路を往路の割当経路として決定する。また復路選択規則としても、レート非保証型となっているため、復路間の割当フロー数の均一性が最も高くなる復路候補抽出部114の出力経路を復路の割当経路として決定する。経路決定部115は、該レート非保証系フローに対する往路、復路の割当が完了すると、該割当経路上の帯域情報管理部101に対して、割当を行ったフローに関する情報であるフロー関連情報を通知する。フロー関連情報には、少なくとも該フローがレート非保証系のフローであることを示す情報が含まれる。
経路決定部115は、イニシエータ2001からのレート非保証型のフローの開始要求を検出し、フローIDを検索キーとして選択規則記憶部111を検索し、該フローに関する経路選択規則を抽出する。フローIDが200101のフローに対する処理の例としては、経路負荷検出部112に対してレート非保証系の割当状況の取得を行わせ、往路候補抽出部113と復路候補抽出部114の結果を得る。該フローの往路選択規則としては、レート非保証型となっているため、往路間の割当フロー数の均一性が最も高くなる往路候補抽出部113の出力経路を往路の割当経路として決定する。また復路選択規則としても、レート非保証型となっているため、復路間の割当フロー数の均一性が最も高くなる復路候補抽出部114の出力経路を復路の割当経路として決定する。経路決定部115は、該レート非保証系フローに対する往路、復路の割当が完了すると、該割当経路上の帯域情報管理部101に対して、割当を行ったフローに関する情報であるフロー関連情報を通知する。フロー関連情報には、少なくとも該フローがレート非保証系のフローであることを示す情報が含まれる。
図19は、フロー関連情報の通知パケットの構成例を示す。該パケットは、メモリアクセスの要求パケットではないため、第1列目のフィールドのメモリ側NIのIDはNULLが格納される。第2列目のフィールドには、往路の割当結果である経路のID、第3列目のフィールドには、送信元であるイニシエータ側NIのID、第4列目のフィールドには、復路の割当結果である経路のIDが格納される。また第5列目のフィールドには、往路に対して新たに1本のレート非保証型のフローが割り当てられたことを示す1が、第6列目のフィールドには、往路に割り当てられたフローの優先度が、第7列目のフィールドには、復路に対して新たに1本のレート非保証型のフローが割り当てられたことを示す1が、第8列目のフィールドには、復路に割り当てられたフローの優先度が格納され、通知用パケットとして、帯域情報管理部101に伝達されることにより、各経路上の帯域情報管理部101は、経路上でのレート非保証型のフローの割当状況を管理することが可能となる。
(帯域情報管理部101)
帯域情報管理部101は、本実施形態では、ルータ2024の経路A側のインタフェース部と、ルータ2025の経路C側のインタフェース部に位置する構成をとっているが、各経路の帯域情報が管理できる場所であれば、経路上のどこにあってもよい。経路i上の帯域情報管理部101は、経路iに対して現在割り当てられているレート非保証型のフローの割当状態Aiをフローの優先度毎に管理し、経路決定部115から受理した割当結果の通知に基づいてAiを更新する。システム起動時などの未だフローが何も割り当てられていない状態において、レート非保証型フローの割当本数などを示すAiは数11、数12に従い初期化される。式中のfwdは往路を表し、backは復路を表す添字である。
帯域情報管理部101は、本実施形態では、ルータ2024の経路A側のインタフェース部と、ルータ2025の経路C側のインタフェース部に位置する構成をとっているが、各経路の帯域情報が管理できる場所であれば、経路上のどこにあってもよい。経路i上の帯域情報管理部101は、経路iに対して現在割り当てられているレート非保証型のフローの割当状態Aiをフローの優先度毎に管理し、経路決定部115から受理した割当結果の通知に基づいてAiを更新する。システム起動時などの未だフローが何も割り当てられていない状態において、レート非保証型フローの割当本数などを示すAiは数11、数12に従い初期化される。式中のfwdは往路を表し、backは復路を表す添字である。
図19は、フローjの割当処理完了に伴い、経路決定部115から受理する割当結果の通知のパケットの例を示す。パケットの第2列目に格納された往路のIDが、帯域情報管理部101が管理する経路iに対応するIDであれば、パケットの第5列目のフィールドに格納された該フローjの往路割当状況の値ajを用いて、数13に従ってレート非保証系の割当状況Aiの値を更新する。
パケットの第4列目に格納された復路のIDが、帯域情報管理部101が管理する経路iに対応するIDであれば、パケットの第6列目のフィールドに格納された該フローjの復路割当状況の値ajを用いて、数14に従ってレート非保証系の割当状況Aiの値を更新する。
また一方、経路iに割当済であるレート非保証型フローjが、イニシエータの状態変化などにより消滅した場合には、経路決定部115から受理するレート非保証系の割当状況の解放通知などに基づき、割当済帯域Aiを数15、数16に従い更新する。
経路iへのレート非保証型のフローの割当、解放に伴って常に優先度毎の割当状況Aiを更新することにより、経路iの往路、復路に割り当てられているレート非保証型のフローの割当状況を帯域情報管理部101で管理することが可能となる。帯域情報管理部101は、経路負荷検出部112からの要求に従い、レート非保証型のフローの優先度毎の割当状況Aiの値を通知する。
上述の構成によればシステム上にバスの物理帯域上限までのメモリアクセスを行うレート非保証系のイニシエータが複数存在する状況下でも、バスの利用帯域を往路、復路毎に最適に制御することが可能となり、低いバス動作周波数の並列構成のバスを用いて、広帯域なデータ転送を行うことができる。また往路もしくは復路のいずれか一方だけで、フローの割当処理を行っても良い。
(実施形態3)
イニシエータからメモリへのアクセスに注目すると、同等の要求帯域を有する複数のフローがあった場合でも、各フローがメモリ上で使用する容量には差があるのが一般的である。そのため、メモリへ至る経路のフローの帯域を均一化するだけではなく、該フローが占有するメモリ領域の容量についても考慮する必要がある。
イニシエータからメモリへのアクセスに注目すると、同等の要求帯域を有する複数のフローがあった場合でも、各フローがメモリ上で使用する容量には差があるのが一般的である。そのため、メモリへ至る経路のフローの帯域を均一化するだけではなく、該フローが占有するメモリ領域の容量についても考慮する必要がある。
図20は、本実施形態におけるSoCシステムの構成例を示す。メモリ2051およびメモリ2052は、マイグレータ2061により接続されている。実施形態2に関連して説明したSoCシステムの構成要素と同じ機能を有する構成要素の説明は省略する。
また図21は、各イニシエータが生成するフローの特性を示す。イニシエータ2001、イニシエータ2002は、いずれも要求帯域が定義可能なリアルタイム系のイニシエータである。
本実施形態では、帯域情報管理部101は、マイグレータ2061の経路A、経路Bのインタフェース上にあり、それぞれメモリ2051、メモリ2052に割り当てられたフローの割当済帯域情報と割当済容量を管理する。各フローは、図21に示された開始時刻になると、フローの割当要求を出して利用するメモリの割当を行う。
実施形態1と同様に各フローのメモリへの割当処理が時間順に行われる。
図22は、フローの割当状態の例を示す。時刻tc=4000cycleにおいて、最後のフロー200202へのメモリの割当が完了した時点では、往路、復路とも、メモリ2051には200MB/sの帯域が割り当てられ、メモリ2052には200MB/sの帯域が割り当てられている。すなわち、メモリ間での割当済帯域が均一となった状態となる。
一方、各メモリでの割当済容量を比較すると、メモリ2051では200MBの領域が使用され、メモリ2052では800MBの領域が使用される状態となる。これでは、800MBの物理容量を有する2つのメモリで構成したシステムにおいては、メモリ2051の利用可能容量のうちの600MBが未使用となってしまう。
マイグレータ2061は、割当済容量を比較することによってメモリの利用可能容量が不均衡の状態にあることを検出し、フローの割当状態の更新を行う。具体的には、要求帯域が同等であるフロー200101とフロー200102を選択し、フロー200101をメモリ2051からメモリ2052へ移動させ、フロー200102をメモリ2052からメモリ2051へ移動させることで、メモリ2051の利用容量を500MBとし、メモリ2052の利用容量を500MBとする。これにより、メモリ2051、メモリ2052間で、割当済帯域、割当済容量が共に最適となる。
図20のNI2011、NI2012の構成は、図8のイニシエータ側ネットワーク・インタフェース(NI)110と同じである。メモリ間で交換するためのフローを決定するため、帯域情報管理部101は、フローID毎に該フローの要求帯域と要求容量の両方を管理し、それらの情報に基づいて、メモリ間の割当済帯域と割当済容量が共に最適となるように交換対象のフローを選択する。交換が完了すると、マイグレータ2061は、関係するイニシエータ側のNIに対して変更通知を送信し、変更通知を受信したイニシエータ側のNIは、経路割当結果を更新する。
(実施形態4)
実施形態2では、図15においてイニシエータからメモリに至る選択経路は空間的に分離された構成として示したが、本発明はこの構成に限らない。
実施形態2では、図15においてイニシエータからメモリに至る選択経路は空間的に分離された構成として示したが、本発明はこの構成に限らない。
図23は、本実施形態にかかるネットワークの構成例を示す。イニシエータ2001、2002、2003は、NI2011、2012、2013を介してルータ2021に接続され、ルータ2021はルータ2022と広帯域リンク2081で接続される。広帯域リンク2081はバス幅の拡張により広帯域化されていても良いし、データ転送のための動作周波数を高くすることにより広帯域化されていても良い。バス幅の拡張により広帯域化する場合は、リンク2081のバス幅を、イニシエータとルータ2021間を結ぶリンクのバス幅の2倍にしても良い。リンク2081の信号線のうちの半分は経路Aに、残りの半分は経路Bに割り当てられ、ルータ2022上に経路Aと経路Bの帯域情報を管理する2つの帯域情報管理部101を有する。
またリンク2081のデータ転送のための動作周波数を高くすることにより広帯域化する場合は、ルータ2021、2022は、半分に分周された動作周波数をバスクロックとして使用し、クロックの立ち上がりで経路Aを、立ち下がりで経路Bを認識しても良い。たとえば図24(a)~(d)は、経路分離の方法例を示す。リンク2081は、各イニシエータの出力リンクの帯域の2倍のデータ転送能力を有する(図24(a))。そこで、図24(b)に示すようにリンク2081のバスクロックを2分周し、2分周したクロックの立ち上がりおよび立ち下がりのタイミングで、経路AおよびBのデータ転送を行えばよい。たとえば図24(c)は、2分周したクロックの立ち上がりのタイミングで経路Aのデータ転送を行う例を示し、図24(d)は、2分周したクロックの立ち下がりのタイミングで経路Bのデータ転送を行う例を示す。このように構成することにより、実施形態1と同様の経路分散効果が得られる。
本発明は、組込機器向けのSoCにおけるオンチップバスや、汎用プロセッサ、DSP上のローカルバスにおける、データ転送経路の制御技術を備えたネットワークバス制御装置、制御方法、制御プログラムに利用可能である。
110 イニシエータ側ネットワーク・インタフェース(NI)
111 選択規則記憶部
112 経路負荷検出部
113 往路候補抽出部
114 復路候補抽出部
115 経路決定部
116 ヘッダ構築部
117 データ送受信部
118 経路候補抽出部
120 メモリ側ネットワーク・インタフェース(NI)
121 復路ヘッダ構築部
122 データ送受信部
101 帯域情報管理部
400 SoCシステム
401-404 イニシエータ
411-414 イニシエータ側ネットワーク・インタフェース(NI)
421-424 ルータ
431 バスブリッジ
441 メモリ側ネットワーク・インタフェース(NI)
451 メモリコントローラ
461 メモリ
470 ローカルバス
471 往路ローカルバス
472 復路ローカルバス
480 システムバス
481 往路システムバス
482 復路システムバス
1101 メモリ
1102 バスブリッジ
1103 イニシエータ
2001-2003 イニシエータ
2011-2013 イニシエータ側ネットワーク・インタフェース(NI)
2021-2025 ルータ
2031-2032 メモリ側ネットワーク・インタフェース(NI)
2041-2042 メモリコントローラ
2051-2052 メモリ
2061 マイグレータ
2081 広帯域リンク
111 選択規則記憶部
112 経路負荷検出部
113 往路候補抽出部
114 復路候補抽出部
115 経路決定部
116 ヘッダ構築部
117 データ送受信部
118 経路候補抽出部
120 メモリ側ネットワーク・インタフェース(NI)
121 復路ヘッダ構築部
122 データ送受信部
101 帯域情報管理部
400 SoCシステム
401-404 イニシエータ
411-414 イニシエータ側ネットワーク・インタフェース(NI)
421-424 ルータ
431 バスブリッジ
441 メモリ側ネットワーク・インタフェース(NI)
451 メモリコントローラ
461 メモリ
470 ローカルバス
471 往路ローカルバス
472 復路ローカルバス
480 システムバス
481 往路システムバス
482 復路システムバス
1101 メモリ
1102 バスブリッジ
1103 イニシエータ
2001-2003 イニシエータ
2011-2013 イニシエータ側ネットワーク・インタフェース(NI)
2021-2025 ルータ
2031-2032 メモリ側ネットワーク・インタフェース(NI)
2041-2042 メモリコントローラ
2051-2052 メモリ
2061 マイグレータ
2081 広帯域リンク
Claims (20)
- ネットワーク化されたバスを介して第1ノードと第2ノードとの間でデータを伝送する、半導体回路のバス制御システムにおいて、前記第1ノードに直接接続されるバス制御装置であって、
前記第1ノードから前記第2ノードに向かう2以上の経路を往路群とし、前記第2ノードから前記第1ノードに向かう2以上の経路を復路群としたときにおいて、前記往路群および前記復路群の少なくとも一方の経路群に関して各経路の負荷を検出する経路負荷検出部と、
前記少なくとも一方の経路群の経路負荷が均一化されるように、前記経路群の中から候補となる経路を抽出する経路候補抽出部と、
予め定められた選択規則を記憶した選択規則記憶部と、
前記経路候補抽出部の抽出結果、および前記選択規則記憶部に記憶された選択規則に基づいて、データを伝送する経路を決定する経路決定部と、
決定された前記経路を示す経路情報を格納したヘッダ情報を生成するヘッダ構築部と、
前記ヘッダ情報に基づいて特定される前記経路を利用して、前記第1ノードと前記第2ノードとの間でデータを伝送するデータ送受信部と
を備えた、バス制御装置。 - 前記経路負荷検出部は、前記往路群および前記復路群の少なくとも一方の経路群に割り当てられているバスの利用帯域を、前記経路負荷として検出する、請求項1に記載のバス制御装置。
- 前記少なくとも一方の経路群は前記往路群であり、
前記経路候補抽出部は前記往路群の経路のうち、前記経路負荷が最も小さくなる経路を、前記候補となる経路として抽出する、請求項1に記載のバス制御装置。 - 前記少なくとも一方の経路群は前記復路群であり、
前記経路候補抽出部は前記復路群の経路のうち、前記経路負荷が最も小さくなる経路を、前記候補となる経路として抽出する、請求項1に記載のバス制御装置。 - 前記選択規則記憶部は、経路に関する制限が無い選択規則、特定の経路を利用する選択規則、データ伝送単位であるフローが複数存在する場合におけるフローの順序を示す選択規則、およびレート非保証型のフローであることを示す選択規則の少なくとも1つを記憶する、請求項1に記載のバス制御装置。
- 前記選択規則記憶部は、データ伝送単位であるフローが複数存在する場合におけるフローの順序を示す選択規則を記憶しており、
新たなフローとの間で順序性を有する他のフローの経路が既に決定されており、かつ、フローの順序性を示す前記選択規則が新たなフローに適用される場合において、前記経路候補抽出部は、前記他のフローの経路と同一の経路を、前記候補となる経路として抽出する、請求項1に記載のバス制御装置。 - 前記選択規則記憶部は、レート非保証型のフローであることを示す選択規則を記憶しており、
レート非保証型のフローの経路が既に決定されており、かつ、レート非保証型のフローであることを示す前記選択規則が新たなフローに適用される場合において、
前記経路候補抽出部は、既存の前記レート非保証型のフローの経路とは異なる経路を、前記候補となる経路として抽出する、請求項1に記載のバス制御装置。 - 前記選択規則記憶部が、特定の経路を利用する選択規則を記憶しており、かつ、前記特定の経路を利用する選択規則が新たなフローに適用される場合において、
前記経路決定部は、前記経路候補抽出部の抽出結果に拘わらず、前記選択規則によって特定される経路を、前記データを伝送する経路として決定する、請求項5に記載のバス制御装置。 - レート非保証型のフローの経路が既に決定されており、
前記選択規則記憶部がレート非保証型のフローであることを示す選択規則を記憶しており、かつ、前記レート非保証型のフローであることを示す選択規則が新たなフローに適用される場合において、
前記経路候補抽出部は、既存の前記レート非保証型のフローの経路とは異なる経路を、前記候補となる経路として抽出する、請求項5に記載のバス制御装置。 - 前記選択規則記憶部は、さらに前記第1ノードのフローの優先度を示す優先度情報を保持しており、
前記経路候補抽出部は、前記優先度情報に基づいて、優先度がより低いフローが割り当てられた経路を、前記候補となる経路として抽出する、請求項5に記載のバス制御装置。 - 前記データ送受信部は、パケット方式で前記データを送受信し、
前記ヘッダ構築部は、パケットのヘッダに前記ヘッダ情報を格納する、請求項1に記載のバス制御装置。 - 少なくとも1つの第1ノードと、
少なくとも1つの第2ノ―ドと、
前記少なくとも1つの第1ノードに直接接続された、請求項1から11のいずれかに記載のバス制御装置と、
前記バス制御装置および前記少なくとも1つの第2ノ―ドとの間に複数の経路を形成するネットワーク化されたバスと、
を備え、前記バスを介して前記少なくとも1つの第1ノードと前記少なくとも1つの第2ノードとの間でデータを伝送する、バス制御システム。 - 複数のメモリの各々に割り当てられたデータのフローを交換するマイグレータをさらに備え、
前記複数のメモリは、前記少なくとも1つの第2ノードであり、
前記少なくとも1つの第1ノードから前記複数のメモリとの間には複数の経路が設けられており、
前記マイグレータは、前記複数の経路に割り当てられているバスの利用帯域と、各メモリ上で利用される容量とに基づいて、複数のメモリの各々に割り当てられたデータのフローを交換する、請求項12に記載のバス制御システム。 - 前記複数の経路は空間的に分離された複数のバスとして構成される、請求項12に記載のバス制御システム。
- 前記複数の経路はバス上の単一の信号線によって構成される、請求項12に記載のバス制御システム。
- 前記複数の経路はバス上の単一の信号線を時分割多重することによって構成される、請求項15に記載のバス制御システム。
- ネットワーク化された前記バスは、前記複数の経路が設けられたローカルバスと、システムバスとを備えており、
前記ローカルバスと前記システムバスとを接続するバスブリッジをさらに備えた、請求項12に記載のバス制御システム。 - 請求項12から17のいずれかに記載のバス制御システムにおいて用いられるネットワークインタフェースであって、
前記ネットワークインタフェースは、
帯域情報を管理する帯域情報管理部であって、前記帯域情報は、対応する経路に現在割り当てられている、データ伝送単位であるフローの帯域に関する情報である、帯域情報管理部と、
前記第1ノードから前記第2ノードへのデータ、および前記第2ノードから前記第1ノードへのデータを送受信するデータ送受信部と
を備えている、ネットワークインタフェース。 - 前記帯域情報管理部は、前記バス制御システムに包含される前記バス制御装置の経路負荷検出部からの要求に応答して、前記データ送受信部を介して前記帯域情報を出力する、請求項18に記載のネットワークインタフェース。
- 前記ヘッダ情報に格納された前記復路を示す経路情報に基づいて、前記復路を特定する情報を生成し、宛先を特定する情報とともにパケットのヘッダに格納する復路ヘッダ構築部をさらに備えた、請求項18に記載のネットワークインタフェース。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201380002031.4A CN103635894A (zh) | 2012-05-11 | 2013-05-09 | 总线控制装置、总线控制系统以及网络接口 |
US14/155,660 US9678905B2 (en) | 2012-05-11 | 2014-01-15 | Bus controller, bus control system and network interface |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012109835 | 2012-05-11 | ||
JP2012-109835 | 2012-05-11 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/155,660 Continuation US9678905B2 (en) | 2012-05-11 | 2014-01-15 | Bus controller, bus control system and network interface |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2013168427A1 true WO2013168427A1 (ja) | 2013-11-14 |
Family
ID=49550490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2013/002973 WO2013168427A1 (ja) | 2012-05-11 | 2013-05-09 | バス制御装置、バス制御システム、およびネットワークインタフェース |
Country Status (4)
Country | Link |
---|---|
US (1) | US9678905B2 (ja) |
JP (1) | JPWO2013168427A1 (ja) |
CN (1) | CN103635894A (ja) |
WO (1) | WO2013168427A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7527910B2 (ja) * | 2020-09-16 | 2024-08-05 | キオクシア株式会社 | 通信システム、デバイス及び通信方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05204876A (ja) * | 1991-10-01 | 1993-08-13 | Hitachi Ltd | 階層型ネットワークおよび階層型ネットワークを用いたマルチプロセッサシステム |
US5471580A (en) * | 1991-10-01 | 1995-11-28 | Hitachi, Ltd. | Hierarchical network having lower and upper layer networks where gate nodes are selectively chosen in the lower and upper layer networks to form a recursive layer |
JP2000244559A (ja) * | 1999-02-24 | 2000-09-08 | Atr Adaptive Communications Res Lab | ルーチング方法、ルータ装置及びルーチングプログラムを記録した記録媒体 |
JP2001197118A (ja) * | 2000-01-11 | 2001-07-19 | Nec Corp | データグラム中継装置及びその方法 |
JP2002518958A (ja) * | 1998-06-19 | 2002-06-25 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 移動体通信システムの通信状態の動的適合方法及び装置 |
US6594238B1 (en) * | 1998-06-19 | 2003-07-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for dynamically adapting a connection state in a mobile communications system |
JP2005303828A (ja) * | 2004-04-14 | 2005-10-27 | Ntt Docomo Inc | 無線ブリッジ、無線通信システム、およびパケット転送経路へのリソース割当制御方法 |
WO2011004566A1 (ja) * | 2009-07-07 | 2011-01-13 | パナソニック株式会社 | バス制御装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3721784B2 (ja) | 1998-05-27 | 2005-11-30 | 富士電機機器制御株式会社 | ネットワークシステム、送信装置、中継装置、および、記録媒体 |
US6510135B1 (en) * | 1998-12-18 | 2003-01-21 | Nortel Networks Limited | Flow-level demultiplexing within routers |
JP2000196677A (ja) | 1998-12-28 | 2000-07-14 | Fujitsu Ltd | ネットワ―クシステムに用いられる中継装置 |
US7353362B2 (en) * | 2003-07-25 | 2008-04-01 | International Business Machines Corporation | Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus |
US7412588B2 (en) | 2003-07-25 | 2008-08-12 | International Business Machines Corporation | Network processor system on chip with bridge coupling protocol converting multiprocessor macro core local bus to peripheral interfaces coupled system bus |
JP4820466B2 (ja) | 2010-01-25 | 2011-11-24 | パナソニック株式会社 | 半導体システム、中継器およびチップ回路 |
JP2011193258A (ja) | 2010-03-15 | 2011-09-29 | Renesas Electronics Corp | 半導体集積回路装置、経路決定回路及び経路決定方法 |
-
2013
- 2013-05-09 WO PCT/JP2013/002973 patent/WO2013168427A1/ja active Application Filing
- 2013-05-09 CN CN201380002031.4A patent/CN103635894A/zh active Pending
- 2013-05-09 JP JP2013549632A patent/JPWO2013168427A1/ja active Pending
-
2014
- 2014-01-15 US US14/155,660 patent/US9678905B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05204876A (ja) * | 1991-10-01 | 1993-08-13 | Hitachi Ltd | 階層型ネットワークおよび階層型ネットワークを用いたマルチプロセッサシステム |
US5471580A (en) * | 1991-10-01 | 1995-11-28 | Hitachi, Ltd. | Hierarchical network having lower and upper layer networks where gate nodes are selectively chosen in the lower and upper layer networks to form a recursive layer |
JP2002518958A (ja) * | 1998-06-19 | 2002-06-25 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 移動体通信システムの通信状態の動的適合方法及び装置 |
US6594238B1 (en) * | 1998-06-19 | 2003-07-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for dynamically adapting a connection state in a mobile communications system |
JP2000244559A (ja) * | 1999-02-24 | 2000-09-08 | Atr Adaptive Communications Res Lab | ルーチング方法、ルータ装置及びルーチングプログラムを記録した記録媒体 |
JP2001197118A (ja) * | 2000-01-11 | 2001-07-19 | Nec Corp | データグラム中継装置及びその方法 |
JP2005303828A (ja) * | 2004-04-14 | 2005-10-27 | Ntt Docomo Inc | 無線ブリッジ、無線通信システム、およびパケット転送経路へのリソース割当制御方法 |
WO2011004566A1 (ja) * | 2009-07-07 | 2011-01-13 | パナソニック株式会社 | バス制御装置 |
Also Published As
Publication number | Publication date |
---|---|
US9678905B2 (en) | 2017-06-13 |
US20140129750A1 (en) | 2014-05-08 |
JPWO2013168427A1 (ja) | 2016-01-07 |
CN103635894A (zh) | 2014-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9009648B2 (en) | Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of IP cores using high level specification | |
US7643477B2 (en) | Buffering data packets according to multiple flow control schemes | |
CN105022717B (zh) | 附加请求数优先级的片上网络资源仲裁方法及仲裁单元 | |
US10757031B2 (en) | Technologies for aligning network flows to processing resources | |
CN106063206A (zh) | 基于优先级和带宽分配的通信量类别仲裁 | |
WO2016065643A1 (zh) | 一种网卡配置方法及资源管理中心 | |
JP5793690B2 (ja) | インタフェース装置、およびメモリバスシステム | |
CN102263698B (zh) | 虚拟通道的建立方法、数据传输的方法及线卡 | |
JP5853211B2 (ja) | バスインタフェース装置、中継装置、およびそれらを備えたバスシステム | |
JP2009502080A (ja) | 電子装置及び通信リソース割り当て方法 | |
JP2007529808A (ja) | 集積回路及び通信サービスマッピング方法 | |
JP5975446B2 (ja) | アクセス制御装置、中継装置、アクセス制御方法、コンピュータプログラム | |
US10305825B2 (en) | Bus control device, relay device, and bus system | |
US10007625B2 (en) | Resource allocation by virtual channel management and bus multiplexing | |
JP4677222B2 (ja) | サーバ装置 | |
US9413654B2 (en) | System, relay device, method, and medium | |
CN117421122A (zh) | 一种数据传输方法、一种网卡和一种cpu | |
WO2013168427A1 (ja) | バス制御装置、バス制御システム、およびネットワークインタフェース | |
TW201630385A (zh) | 具有由多個封包處理引擎共用的本地查閱資料表的可重新配置的互連元件 | |
EP2939382B1 (en) | Distributed data processing system | |
US20210250385A1 (en) | Axi interconnect module communication network platform | |
JP5891494B2 (ja) | 通信システム、通信方法 | |
CN117880076A (zh) | 用于在片上网络(noc)与外部接口之间传送配置、管理、调试信息和异步事件的系统和方法 | |
CN116132352A (zh) | 数据传输方法、装置及计算机系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2013549632 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: 13787293 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: 13787293 Country of ref document: EP Kind code of ref document: A1 |