WO2011004566A1 - バス制御装置 - Google Patents

バス制御装置 Download PDF

Info

Publication number
WO2011004566A1
WO2011004566A1 PCT/JP2010/004290 JP2010004290W WO2011004566A1 WO 2011004566 A1 WO2011004566 A1 WO 2011004566A1 JP 2010004290 W JP2010004290 W JP 2010004290W WO 2011004566 A1 WO2011004566 A1 WO 2011004566A1
Authority
WO
WIPO (PCT)
Prior art keywords
bus
output
transmission
control device
bus control
Prior art date
Application number
PCT/JP2010/004290
Other languages
English (en)
French (fr)
Inventor
石井友規
山口孝雄
吉田篤
Original Assignee
パナソニック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニック株式会社 filed Critical パナソニック株式会社
Priority to JP2011521806A priority Critical patent/JP4796668B2/ja
Priority to CN201080018978.0A priority patent/CN102415059B/zh
Priority to EP20100796880 priority patent/EP2453612B1/en
Publication of WO2011004566A1 publication Critical patent/WO2011004566A1/ja
Priority to US13/247,163 priority patent/US8301823B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40019Details regarding a bus master

Definitions

  • the present invention relates to an apparatus, method, and program for controlling a communication bus in a semiconductor chip having a networked communication bus.
  • a bus control method is used in which bus masters are connected to each other via a broadband centralized bus and the bus bar is assigned to a data transfer target bus master pair by switching the crossbar switch.
  • this bus control system has problems such as an increase in wiring delay due to the routing of the bus wiring, an increase in the area of the crossbar switch, and an increase in power consumption.
  • the centralized bus design there is a problem that the average bus utilization efficiency is not improved, the bus operating frequency is increased, and the power consumption of the bus portion is increased. The reason is that the operating frequency of the bus is designed so as to guarantee the maximum data transfer amount requested by each bus master.
  • NoC Network on Chip
  • FIGS. 1A and 1B show a part of the configuration of the NoC bus.
  • FIG. 1A is a diagram illustrating a hardware connection configuration example
  • FIG. 1B is a schematic diagram thereof. 1A and 1B show that the bus masters 1a to 1c provided on the chip 10 are connected to the bus 3 via the bus control device (R) 2, respectively. .
  • bath of the following drawing of this application is described with the schematic diagram shown in FIG.1 (b).
  • FIG. 2 shows a configuration example of a NoC bus in which bus masters are coupled in a two-dimensional mesh type.
  • bus master such as a microprocessor, a DSP, a memory, and an input / output circuit
  • a bus control device R that controls the data transfer path is arranged, and the bus control devices R are connected (linked) with a short wiring.
  • FIG. 3 shows three routes (1) to (3) from the transmission source to the transmission destination.
  • FIG. 4 shows routes from one transmission source to three transmission destinations (1) to (3).
  • Patent Document 1 discloses a method for selecting a plurality of data transfer paths in accordance with a bus state on a bus connecting a plurality of bus masters.
  • data to be transferred is transferred in frame units from a transmission source bus master to a reception destination bus master. If the frame is normally received at the receiving destination, acknowledge data is returned, otherwise no acknowledge data is returned.
  • the transmission source bus master does not return the acknowledge data, it detects a frame transfer failure, selects another transmission path, and retransmits the frame. This makes it possible to continue communication. If an error is detected in the header of the received frame, the frame is discarded by the destination bus master, so that the transmission source bus master does not receive the acknowledge data.
  • the bus master of the transmission source uses a transfer delay time, an error occurrence state, etc. as an evaluation index, and uses a self-directed path that provides the best data transfer status. Make a selection.
  • the first problem is that the operation load of the bus control devices at both ends of the link becomes high and the data transfer latency increases in a link with a large flow rate.
  • the latency of data transfer between the bus masters determines the operation speed of the bus master. For example, in the case of data transfer between the processor and the memory, the processing performance is lowered due to an increase in the wait cycle of the processor corresponding to the memory access latency.
  • the second problem is that it is necessary to design the bus operating frequency higher in accordance with the high flow rate link. As the bus operating frequency increases, it becomes difficult to control the wiring delay and crosstalk, and the design man-hours and verification man-hours increase.
  • the third problem is that the power consumption of the link increases as the bus operating frequency increases.
  • the power consumption P of the transistors constituting the link is expressed by Equation 1 when the switching rate ⁇ , the circuit capacitance C, the power supply voltage V, and the operating frequency f are used.
  • the power supply voltage can be reduced according to the relationship shown in Equation 2.
  • the present invention has been made to solve the above-described problems, and an object of the present invention is to provide a bus control device capable of eliminating the uneven data flow rate between links.
  • a bus control device is a bus control device that is provided between a bus master and a networked communication bus and controls a transmission path of a packet that flows through the communication bus.
  • a data receiving unit that receives information related to the output status from a plurality of other bus control devices existing above, and a route that calculates a uniformization index indicating variation in the transmission flow rate of each transmission route based on the information related to the output status
  • a load detection unit a route determination unit that determines a plurality of transmission routes in which the transmission flow rate is adjusted based on the equalization index, a packet configuration unit that generates a packet based on data received from the bus master,
  • a data output unit for outputting the packet from any one of a plurality of output ports each connected to a different communication bus; and the plurality of output ports. From the bets, and a header analysis unit for determining one to the connected output port of the selected transmission path based on the destination information of the packet.
  • the bus control device may further include an output monitoring unit that notifies information related to a data output status of the data output unit in accordance with requests from the plurality of other bus control devices.
  • the path load detection unit may calculate a uniformization index based on the average value in an output situation from the output monitoring unit, including at least an average value of transfer frequencies for each priority of flows to be output. .
  • the path load detection unit includes at least an average value and a maximum value of transfer frequencies for each priority of flows to be output, and a uniformization index based on the average value and the maximum value in the output status from the output monitoring unit May be calculated.
  • the path load detection unit may include a parameter that defines the reliability of the evaluation value caused by the statistical multiplexing effect included in the uniformization index.
  • the path load detection unit detects deterioration of the transfer status of the packet, adjusts the parameter that defines the reliability, and adjusts the parameter stochastically when the transfer status is not improved by adjusting the parameter May be.
  • the output monitoring unit may notify the information using a reception of a request for information on the output status issued at a predetermined timing as a trigger.
  • the path load detection unit transmits an output status notification transmission condition to the output monitoring unit in advance, and the output monitoring unit is previously notified of a condition for transmitting a request for information on the output status, When the transmission condition is satisfied, the information may be notified.
  • the path load detection unit calculates an evaluation value related to the transmission flow rate of each transmission path by adding a weight according to the priority of the flow of each transmission path to the information related to the output status, You may calculate the equalization parameter
  • the path load detecting unit calculates a statistical value using an evaluation value related to a transmission flow rate of each transmission path, and determines whether or not a relationship between the transmission paths is uniform using the statistical value. Also good.
  • the path load detection unit may calculate a uniformization index indicating a variation in the transmission flow rate of each transmission path based on the information on the output status and the information on the data characteristics of the transmission path to be selected.
  • a simulation program is a simulation program for a bus control device that is provided between a bus master and a networked communication bus and controls a transmission path of a packet flowing through the communication bus.
  • the bus control device monitors the output status of other bus control devices on a plurality of available transmission paths, and uses it as a uniformization index that is a variation in the transmission flow rate between the transmission paths. Based on this, the data transmission path is switched. As a result, the flow rate deviation between the links that make up the NoC bus is automatically suppressed, so the data transfer load is made uniform across the entire bus and the increase in communication delay time and latency due to load concentration on specific links is suppressed. It is done.
  • the link operating frequency is reduced, the bus design can be facilitated and the power consumption of the bus during data transfer can be reduced. Further, by combining with a link frequency dynamic control technique, the power consumption of the bus can be further efficiently reduced.
  • the load distribution effect of the bus master can be obtained by equalizing the path load to the bus master providing the equivalent function in consideration of the statistical multiplexing effect. Therefore, by applying the present invention to a distributed memory architecture, it is possible to avoid bottlenecks due to access concentration while ensuring reliability with respect to the allowable latency of memory access.
  • FIG. 3 is a diagram showing three routes (1) to (3) from a transmission source to a reception destination. It is a figure which shows each path
  • (A) is a figure which shows the data transfer path
  • (b) is a figure which shows the data transfer path
  • (c) is a figure of a network game. It is a figure which shows the data transfer path
  • FIG. 9 is a diagram showing a state where data transfer A is newly added to FIG. 8. It is a figure which shows the adjustment result of the data transfer amount by Embodiment 1. It is a figure which shows the partial route figure for demonstrating the operation
  • FIG. 5 shows an example in which a system semiconductor mounted on a mobile phone terminal is configured using a NoC bus.
  • the description format of the drawing is in accordance with FIG.
  • the bus masters are connected to the respective bus control devices R on a one-to-one basis.
  • bus control devices that do not connect the bus masters and perform only relay processing may be mixed.
  • bus master When a bus master is connected to the bus control device R, a unique address is given to each bus master, but when no bus master is connected, a virtual unique address is assigned to the bus control device. An address may be given. In this specification, both cases are expressed as a bus master address.
  • FIG. 6A shows a data transfer path in an application for watching 1Seg TV.
  • Data transfer processing B with the bus master M11 as the transmission source and the bus master M14 as the reception destination is performed along the path indicated by the arrow.
  • FIG. 6B shows a data transfer path in the network communication thread of the full browser for mobile phones. This shows that the data transfer process C with the bus master M21 as the transmission source and the bus master M24 as the reception destination is performed along the path indicated by the arrow.
  • FIG. 6C shows a data transfer path when the network game client program communicates with a remote server. It shows that the data transfer process D with the bus master M23 as the transmission source and the bus master M34 as the reception destination is performed along the path indicated by the arrow.
  • the data transfer processes B, C and D are executed simultaneously in parallel by a multi-threaded OS or hardware having a parallel processing configuration.
  • FIG. 7 shows that three selection candidate routes that can be used are defined when data is transferred from the transmission source M21 to the reception destination M24.
  • each selection candidate route is expressed as route (1), route (2), and route (3).
  • FIG. 8 shows the data transfer amount for each selection candidate path between the bus masters M21 to M24 in a state where the data transfer processes B, C, and D occur simultaneously.
  • the data transfer amount of the route may be the maximum value of the data transfer amount of each link on the route. For example, if the data transfer amount of the link between the bus control devices R33 and R34 shown in FIG. 6C is larger than the data transfer amount of each of the other links on the route (3), the route (3) The data transfer amount is defined as the data transfer amount of the link between R33 and R34.
  • FIG. 9 shows a data transfer path during moving image reproduction. As shown in FIG. 9, the data transfer process A with the bus master M12 as the transmission source and the bus master M23 as the reception destination is started along the path indicated by the arrow.
  • FIG. 10 shows a state in which a plurality of data transfer processes occur simultaneously on the chip.
  • FIG. 11 shows a state in which data transfer A is newly added to FIG. According to FIG. 11, the route (2) with the smallest data transfer amount in FIG. 8 is selected as the data transfer route of the moving image playback thread.
  • the data transfer amount is adjusted so that the data transfer amount of the plurality of paths is uniform.
  • FIG. 12 shows the adjustment result of the data transfer amount according to the present embodiment. As shown in FIG. 12, by controlling the data transfer amounts of the three paths so as to be uniform, data transfer can be performed at a lower operating frequency, and power consumption can be reduced.
  • FIG. 13 shows a partial route diagram for explaining the details of the operation for eliminating the deviation of the route flow rate between the links and equalizing.
  • a part of FIG. 10 is taken out and described.
  • the configuration of the entire system semiconductor is as shown in FIG. Wiring, a bus master, and a bus control device that are not depicted in FIG. 13 are merely omitted, and exist as shown in FIG.
  • the bus control device R21 connected to the transmission source bus master M21 performs three predefined routes (1), (2), and (3) with the bus master M24 that is a data transfer target as a reception destination. To collect the route load status. The route load status is performed by collecting output information managed by each bus control device. When the collection of the output information of each route is completed, the bus control device R21 evaluates the uniformity of the route by calculating and comparing the flow rate evaluation value of each route. In the non-uniform state, the bus control device R21 prevents the data transfer from being biased by switching the data transfer path to the path having the highest uniformity, and the transfer data is transferred to the entire bus. Is controlled to be distributed.
  • FIG. 14 shows the configuration of the bus control device 2 according to the present embodiment.
  • the bus control device 2 includes a route load detection unit 101, a route determination unit 102, a packet configuration unit 103, a data reception unit 104, a header analysis unit 105, a data output unit 106, and an output monitoring unit 107. ing. Hereinafter, the function of each component will be described.
  • Packet configuration unit 103 Data transfer on the networked NoC bus is performed in units of packets.
  • the packet configuration unit 103 generates a packet based on data received from a bus master connected to itself.
  • FIG. 15 shows a configuration example of a packet.
  • the packet is configured by a trailer that stores a header, a payload that is a substance of data to be exchanged between the bus masters, an error detection code, and the like. Of these, payloads and trailers are not essential.
  • the header includes the following information. However, the address other than the address of the receiving bus master is not essential.
  • Protocol type ⁇ Address assigned to destination bus master and bus controller ⁇ Address assigned to source bus master and bus controller ⁇ Label information assigned to the same application or a series of packets for the same purpose ⁇ Same label Packet sequence number, which is number information that is unique to the packet group having information and assigned in order of transmission time, priority and additional information that is the level of latency that the packet allows at the time of transfer, and -Payload length indicating the presence or absence of the following payload and the length of the payload
  • the protocol type is an identification code indicating whether the packet is for the purpose of data transfer between bus masters, a request for output information for the purpose of path load detection, or a notification.
  • transfer data packet output information request packet
  • output information notification packet output information notification packet
  • the packet configuration unit 103 configures a transfer data packet in accordance with the format shown in FIG. 15 according to the data transfer request issued from the bus master connected to the packet configuration unit 103, and sends it to the header analysis unit 105.
  • the packet configuration unit 103 configures an output information request packet in accordance with the format shown in FIG. 15 according to the output information collection request issued from the path load detection unit 101, and sends it to the header analysis unit 105. Further, the packet configuration unit 103 configures an output information notification packet in accordance with the format shown in FIG. 15 according to the output information notification request issued from the output monitoring unit 107, and sends it to the header analysis unit 105.
  • the data receiving unit 104 receives a transfer data packet and an output information notification packet from one or a plurality of input links to which the data receiving unit 104 is connected, and sends the packet to the header analysis unit 105.
  • the data receiving unit 104 receives a transfer data packet and an output information notification packet from one or a plurality of input links to which the data receiving unit 104 is connected, and sends the packet to the header analysis unit 105.
  • four input ports E, W, S, and N are shown, but any number of input ports may be used as long as it is one or more. Each input port is connected to an output port of a different other bus control device.
  • the header analysis unit 105 collates the protocol type of the packet passed by the data reception unit 104 and specifies the type of packet.
  • the packet is any one of a transfer data packet, an output information request packet, and an output information notification packet.
  • the header analysis unit 105 refers to an address (reception destination address) indicating a destination bus master. As a result, if the destination is a packet to the bus master to which it is connected, the header analysis unit 105 extracts the payload portion and sends it to the bus master. If the destination is not a packet to the bus master to which it is connected, the header analysis unit 105 presents the address of the destination bus master to the route determination unit 102 and determines an output port to which the packet is to be output.
  • the header analysis unit 105 refers to the reception destination address.
  • the header analysis unit 105 requests the output monitoring unit 107 to notify the output information, and the transmission source stored in the packet header is requested.
  • the header analysis unit 105 presents the address of the destination bus master to the route determination unit 102 and receives a notification of the output port that should output the packet. .
  • the header analysis unit 105 selects an output port.
  • an output port to which a packet is to be output may be selected based on them.
  • the header analysis unit 105 refers to the destination bus master address. As a result, when the destination is a packet to the bus master to which it is connected, the header analysis unit 105 stores the source bus master address and payload stored in the packet header in the path load detection unit 101. Send output information. On the other hand, if the destination is not a packet to the bus master to which it is connected, the header analysis unit 105 presents the address of the destination bus master to the route determination unit 102, and the port notified from the route determination unit 102 Determine the output port to output the packet.
  • the data output unit 106 switches the wiring to the output port presented by the header analysis unit 105 and sends the packet as a signal onto the bus. In addition, when the transmission delay of the data transfer packet occurs due to the congestion of the route, the data output unit 106 delays the transfer of the low-priority data transfer packet, so that the data transfer packet is prioritized in descending order of priority Perform the transfer.
  • the output monitoring unit 107 monitors the status of each output port of the data output unit 106 in response to the output information notification request received from the header analysis unit 105. Data transfer packets sent from a plurality of bus masters are mixedly output to each output port, and data transfer packets having the same label information can be identified as the same flow.
  • flow refers to a series of data transfer packets transmitted from the transmission source bus master to the reception destination bus master for the same purpose such as execution of applications and tasks, and has different allowable latencies for each flow.
  • the level of allowable latency required by the flow is indicated by the priority stored in the packet header. For example, it has a high priority for signal processing applications that require real-time performance, and a low priority for file transfer applications using a background process.
  • the priority may be fixed for each application, may be changed for each thread constituting the application, or may be changed for each smaller processing unit determined by a programmer or a compiler.
  • the transmission rate of each flow is not constant and usually varies depending on the flow. Further, even in the same flow, the transmission rate usually varies with time.
  • FIG. 16 shows an example of information described in the payload of the output information notification packet.
  • the output monitoring unit 107 creates the information shown in FIG. 16 for the corresponding output port when receiving the output information request packet addressed to itself from another bus control device, and notifies the transmission source bus control device. To do.
  • the output information is composed of a plurality of entries, and each entry corresponds to the priority of the packet. For each priority level, the time average, maximum value, and minimum value of the number of bus cycles of the output port required to transmit a packet of such priority are reported.
  • the output port information to be reported may be a value calculated based on an actual measurement value measured by the output monitoring unit 107 as shown in the present embodiment, or based on a flow specification notified as additional information by the bus master. Value may be used.
  • FIG. 17 shows an example of a protocol used when the bus control device R21 collects output information on the route (2) leading to the bus master M24.
  • “MA” in the figure is a unique address on the NoC assigned to the bus master. The bus control device can also be specified by this address.
  • the output information request packet transmitted on the route (2) by the transmission source bus control device R21 is forwarded to the bus control device R24 at the route end point through the bus control devices R22 and R23 on the route (2).
  • Each bus control device R22, R23 returns an output information notification packet related to the output port connected to the link to the next bus control device on the route (2) and sends an output information request packet on the route (2). Forward to the next bus controller.
  • the bus control device R24 at the end of the route discards the output information request packet.
  • the path load detection unit 101 transmits output information request packets to all transmission candidate paths by using the reception destination address and transmission candidate path information of each flow sent by the bus master connected to the path load detection unit 101.
  • the timing for transmitting the output information request packet may be periodically performed at regular intervals.
  • the path load detection unit 101 stores the return condition of the output information notification packet in the output information request packet, and returns the output information notification packet when each bus control device on the path satisfies the return condition.
  • a trap method may be used.
  • the reply condition may be that the amount of change in the number of occupied cycles of the data transfer packet exceeds a certain threshold.
  • each bus control device on each path returns an output information notification packet to the bus control device R21 according to the protocol shown in FIG. Therefore, the bus control unit R21 from i th j th bus controller on the path, for each priority [delta], it is possible to collect the output information omega ij shown in FIGS 16.
  • P be the weighting coefficient matrix and p ij represent the elements of the matrix.
  • Each row of P corresponds to each element of the output information vector ⁇ ij , and each column corresponds to a priority ⁇ .
  • time average, maximum value, and minimum value the number of rows of P is 3, and flows are assigned high priority, medium priority, and low priority.
  • the number of columns of P is 3.
  • Equation 5 the flow rate evaluation value ⁇ ij of the j-th link on the route i is expressed by Equation 5.
  • Equation 5 e is a vector in which all elements are 1.
  • the flow rate evaluation value ⁇ i of the route i may be defined as the maximum value of the flow rate evaluation values of the links on the route.
  • the path load detection unit 101 can appropriately evaluate the flow rate of each path.
  • the path load detection unit 101 controls the flow path so as to equalize the flow rate evaluation value, so that the data transfer amount is equalized over the entire bus, and the bus operating frequency is reduced and the power consumption is reduced. can get.
  • the path load detection unit 101 may determine each coefficient value of the weighting coefficient matrix based on the information. For example, if it is known that each bus master generates only flows that do not vary in time, the average, maximum, and minimum values of each flow match, so only the average value can be reflected in the flow evaluation. It ’s fine.
  • the weighting coefficient matrix P can be defined as in Expression 7.
  • Equation 9 The flow rate evaluation value ⁇ i of the path i when using the weighting coefficient matrix of Equation 8 is as shown in Equation 9 from Equation 5 and Equation 6.
  • ⁇ self in the equation is a priority of the control target flow.
  • the flow rate has the maximum value among the time variation characteristics, and the flow rate is detected by the path load detection unit 101. It is shown that it is evaluated by. Further, this weighting coefficient matrix indicates that an average value evaluation based on the priority control performed by the data output unit 106 is performed for a flow having a lower priority than the control target flow itself.
  • the weighting coefficient matrix shows that the mode evaluation is performed on the premise that the time variation characteristic follows the beta distribution for the flow having the same priority as the self. Equations (7) and (8) do not limit the method of defining the weighting coefficient matrix, and an optimal P may be defined in accordance with the assumed flow characteristics.
  • a threshold may be introduced as an index for determining whether the relationship between the three selection candidate paths is uniform or not.
  • the statistical value ⁇ shown in Equation 10 may be used.
  • R in the formula indicates the number of selection candidate routes.
  • the route load detection unit 101 may determine that the uniformity between routes is impaired.
  • the path load detection unit 101 detects that the control target flow itself has moved to a selection candidate path other than the transmission path that is currently transmitting the data transfer packet. Calculate a virtual value of ⁇ . Then, the route load detection unit 101 compares them, determines a selection candidate route having the largest value of ⁇ as a switching destination route, presents it to the route determination unit 102, updates the route table, and switches the route. To do.
  • FIG. 18 is a diagram showing the above processing flow of the path load detection unit 101.
  • step S1 the path load detection unit 101 starts an automatic path switching process.
  • step S2 the route load detecting unit 101 transmits output information request packets to all the transmission candidate routes, so that output information regarding each transmission candidate route is obtained from each relay router on the route. collect.
  • steps S3 to S5 processing for each route is performed. Specifically, in step S4, the path load detection unit 101 calculates a flow rate evaluation value ⁇ i for each path.
  • step S6 the path load detection unit 101 calculates a uniformity index ⁇ between paths.
  • step S7 the path load detection unit 101 determines whether or not the uniformity index ⁇ has fallen below a predefined threshold value ⁇ th. That is, when the uniformity index ⁇ falls below the threshold ⁇ th, it is determined that the path switching is necessary because the uniformity is impaired. At this time, the process proceeds to step S8. On the other hand, if the uniformity index ⁇ is not less than the threshold ⁇ th, the process proceeds to step S11, and the process is terminated without switching the path at that time.
  • step S8 the path load detection unit 101 calculates a value of the virtual uniformity index ⁇ when the flow of the user moves to the selection candidate path, and compares them.
  • step S9 the route load detection unit 101 determines a selection candidate route having the largest value of ⁇ as a switching destination route. As a result, the route load detection unit 101 issues a processing request to the route determination unit in step S10.
  • step S11 the path load detecting unit 101 repeats the processing from step S1 again.
  • the uniformity index ⁇ is calculated using a flow rate evaluation value ⁇ weighted in consideration of priority. When it is determined that the uniformity is impaired based on the index ⁇ , the path is switched appropriately. Thereby, it is possible to prevent the occurrence of bias in data transfer.
  • feedback control is performed on each element of the weighting coefficient matrix P by monitoring the time ratio in which the value of ⁇ indicating the uniformity between the transmission candidate paths is below the threshold and detecting that the uniformity control is not effective. May work.
  • the route determination unit 102 manages the route table, searches the route table based on the destination address presented by the packet configuration unit 103, and notifies the packet configuration unit 103 of the output port associated with the bus control device to be the next hop. .
  • FIG. 19 shows an example of a route table managed by the route determination unit 102 of the bus control device R21.
  • Three selection candidate routes are defined as routes to the bus master M24 located at the destination address MA24.
  • the address of the bus control device that becomes each next hop of this selection candidate route, the corresponding output port, the list of addresses of the bus control device that hops until reaching the end point address, the route on which the data transfer packet is actually transmitted The selection information indicating is recorded and managed.
  • the route determination unit 102 presents a destination address, a list of selection candidate routes, and a hop list in accordance with a request from the route load detection unit 101, and provides information on a route necessary for transmission of the output information request packet. Further, according to the information of the switching destination route presented from the route load detecting unit 101, the route table transmission information is changed by updating the selection information of the route table.
  • the bus control device 2 since the flow rate deviation between the links constituting the NoC bus is automatically suppressed, the data transfer load is made uniform over the entire bus, and communication by load concentration on a specific link is performed. Increase in delay time and latency can be suppressed.
  • the link operating frequency By reducing the link operating frequency, the bus design can be facilitated and the power consumption of the bus during data transfer can be reduced.
  • the power consumption of the bus can be further efficiently reduced.
  • the load distribution effect of the bus master can be obtained by equalizing the path load to the bus master providing the equivalent function in consideration of the statistical multiplexing effect. Therefore, by applying the present invention to a distributed memory architecture, it is possible to avoid bottlenecks due to access concentration while ensuring reliability with respect to allowable latency of memory access.
  • FIG. 20 shows an example of a configuration in which the present invention is applied to a distributed memory architecture.
  • Three processors UP11, UP12, UP13 and three shared memory modules MEM31, MEM32, MEM33 are connected via a network of 3 ⁇ 3 mesh type bus control devices.
  • the processor allocates a memory area required at the time of starting the task on one of the memory modules, and releases the allocated area at the end of the task.
  • the access rate varies among the memory modules, the operating frequency of the access bus to the memory module where the access is concentrated increases, and there are problems in terms of design and power consumption. It becomes.
  • By performing the allocation process so that the access rate between the memory modules is as uniform as possible when the memory is allocated by the processor, it is possible to obtain the effect of reducing the operating frequency of the access bus and reducing the power consumption.
  • the configuration of the bus control device constituting the distributed memory network according to the present embodiment is the same as the configuration of the bus control device 2 of the first embodiment shown in FIG. 14 except for the points specifically described below. Description of common functions is omitted.
  • Packet configuration unit 103 In the present embodiment, as a precondition, it is assumed that an average rate and a maximum rate, which are rate characteristics of each flow between the processor and the memory module, are pre-designed, and each flow has the same priority. When flows corresponding to a plurality of priorities coexist, they may be handled in the same manner as in the first embodiment. As shown in FIG. 15, the packet configuration unit 103 in the processor-side bus control device stores the flow rate characteristics presented from the task on the processor as additional information in the header of the data transfer packet and transmits it. . As a result, the rate characteristic of the access flow is transmitted to the bus controller on the memory module side.
  • Output monitoring unit 107 The output monitoring unit 107 in the memory module side bus control device manages the evaluation formulas shown in Equations 11 and 12 based on the rate characteristics for each access flow transmitted from the processor side bus control device.
  • ⁇ ij is the average rate and maximum rate value for the j th access flow of the i th memory module
  • p ij is the total number of access flows assigned to the i th memory module
  • ⁇ i and p i are an average rate evaluation formula and a maximum rate evaluation formula of the i-th memory module.
  • the rate characteristics of the access flow transmitted from the bus control device may include information that can be calculated in advance at the time of design.
  • Such information includes, for example, applications running on the SoC, average rates generated by signal processing modules, maximum rates, minimum rates, standard deviations of access rates, processing priorities, and acceptable access latencies. it can.
  • Equations 11 and 12 may be calculated by actually measuring the average value or maximum value of the rates.
  • the output monitoring unit 107 in the bus controller on the memory module side may measure and manage the access latency to the connected memory.
  • the access latency may be represented by the number of cycles required from when the data receiving unit 104 receives a data transfer packet indicating a data read or write request from the processor to when the corresponding read or write operation is completed.
  • the output monitoring unit 107 detects a state in which a sufficient margin cannot be secured for the access flow latency request specified by the priority stored in the header of the data transfer packet, the requesting processor By urgently transmitting an output information notification with the bus control device address as the reception destination address, the processor side may be notified of a decrease in access quality.
  • the path load detection unit 101 transmits an output information request packet to the bus control device of each memory module, triggered by a memory area securing event for the processor to allocate a memory access flow with an average rate ⁇ t and a maximum rate pt. With this output information request packet, the evaluation values shown in FIG. 21 are collected. An example of a protocol for collecting output information is shown in FIG.
  • the flow rate evaluation value ⁇ i of the i-th memory considering the time variation of the flow is expressed by Equation 13.
  • M in the equation is an adjustment coefficient for balancing the strength and reliability of the statistical multiplexing effect between a plurality of flows assigned to the same memory.
  • N in the formula represents the number of memory modules.
  • the statistical multiplexing effect considering the time variation of the flow can be most expected, and the uniformity of the access rate between the memories can be improved.
  • the path load detection unit 101 notifies the processor that the qth memory has been allocated to the corresponding task.
  • the task on the processor recognizes the transmission destination address when transmitting the data transfer packet to the memory as the address of the qth memory.
  • the flow rates Si of each memory after virtual allocation as represented by Equations 14 and 15. are compared to determine the memory to which the actual flow is allocated.
  • the relationship between the already assigned flow group and the access flow to be assigned can be considered for each memory, so that a more appropriate assignment destination memory can be selected. For example, consider a situation in which an access flow with a large time fluctuation is newly allocated. Even if the flow rate before allocation is large, it is better to select a route that has been assigned a flow group with a large time fluctuation than a memory to which a flow group with a small time fluctuation is assigned, because of the statistical multiplexing effect. Utilization efficiency can be improved. By determining the allocation destination memory based on the uniformity after the virtual allocation, it is possible to cope with such a situation.
  • the path load detection unit 101 that has received the emergency output information notification packet for degradation in access quality transmitted from the output monitoring unit 107 in the bus control device on the memory module side, uses Equation 13 and Formula 14 based on the information.
  • the value of the included adjustment coefficient m is dynamically controlled. Thereby, the reliability regarding access quality can be improved.
  • An initial value of the adjustment coefficient m managed by the path load detection unit 101 is defined by Equation 19. The initial value of m may be set to 5, for example.
  • is initialized by Equation 20 as a parameter variable for controlling m.
  • the initial value may be set to 1, for example.
  • the path load detection unit 101 that has detected a decrease in access quality due to the reception of an urgent output information notification packet changes the value of ⁇ according to Equation 21.
  • is a positive change due to reception of N emergency output information notifications determined in advance.
  • the value of N may be set to 1 and the value of ⁇ may be set to 0.5.
  • the value of the adjustment coefficient m is controlled by the dynamics shown in Equation 22.
  • M max and m min in the equation are the maximum and minimum values determined in advance of the adjustment coefficient m, and may be set to 7 and 5, for example.
  • k is an adjustment parameter, and may be set to 100, for example.
  • is a Kronecker delta function, and ⁇ is a random positive integer.
  • the adjustment coefficient m may be updated as shown in Equation 23 using Equation 22.
  • the value of m increases as the value of ⁇ m increases as the data becomes difficult to flow.
  • the topology of NoC is a two-dimensional mesh type, but this is an example.
  • the flow control according to the present embodiment can be applied to other topologies.
  • a two-dimensional torus type topology may be adopted.
  • a topology in which a set of bus masters and corresponding bus control devices is arranged in a ring shape, and adjacent bus control devices and bus control devices facing each other on the ring may be connected by a bus.
  • the topology is not limited to the two-dimensional type, and a topology in which a bus master and a corresponding bus control device are die-stacked and the bus control devices are three-dimensionally connected may be adopted.
  • the bus control device As in the second embodiment, the bus control device according to the present embodiment can be applied to the distributed memory architecture shown in FIG. Since the description of the distributed memory architecture shown in FIG. 20 is the same as that of the second embodiment, the description thereof is omitted.
  • the configuration of the bus control device constituting the distributed memory network according to the present embodiment is the same as the configuration of the bus control device 2 according to the second embodiment described with reference to FIG. 14 except for the points specifically described below. is there. Description of common functions is omitted.
  • a memory module to be assigned a flow using the uniformity of the flow rate as a priority index is determined by Equation 25.
  • memory module located closest is not necessarily q 0.
  • the “memory module located closest” (hereinafter referred to as “nearest memory module”) means a memory module that is assumed to be accessible with the lowest latency from the processor by design.
  • the shared memory module MBM31 can be defined as the closest memory module of the processor UP11.
  • Identifier q 1 nearest memory module defined for each processor, for example, is defined as the design information SoC.
  • the identifier q 1 may be hard-coded in advance in the corresponding processor or the path load detection unit of the NoC router connected to the processor, or selected by transmitting and receiving the measurement packet for the initialization operation. Also good.
  • ⁇ i shown in Expression 24 indicates the uniformity after the allocation target flow is allocated to the memory module i.
  • an index indicating the actual uniformity in a state where no allocation is performed, that is, at that time, is given by Equation 26.
  • is a positive number not exceeding 1.
  • ⁇ shown in Equation 27 can be calculated based on ⁇ i shown in Equation 13 calculated as the current flow rate evaluation value for each memory module.
  • b represents the bus width
  • c represents the bus operating frequency.
  • represents the number of flits accessed in one cycle time. None exceed.
  • can be an index indicating the allocation amount in the memory module having the largest allocation amount among the memory modules.
  • the path load detection unit determines the memory module q to which the flow is assigned based on the values of ⁇ and ⁇ .
  • the conditional expression of Equation 28 may be followed.
  • ⁇ th and ⁇ th are threshold values, and values defined in advance may be used.
  • the nearest memory module is selected as the flow allocation destination, and the closest low latency (for example, the latency is low). From a is) memory module q 1 is selected.
  • the memory module q0 is selected with emphasis on the uniformity of the flow rate.
  • the throughput is improved by changing the weight of the uniformity of the flow rate according to the situation.
  • q 0 or q 1 may be selected autonomously for each processor.
  • ⁇ in the formula is a random noise.
  • the dynamics of ⁇ in Equation 29, Equation 30, and Equation 31 are controlled by Equation 32.
  • ⁇ and K are constants.
  • the allocation destination memory module may be determined by the determination formula of Equation 33.
  • switching between the selection of q 0 and q 1 proceeds autonomously and stepwise between the processors, so that the use band is not wasted and the throughput is improved.
  • the path load detection unit 101 notifies the processor that the qth memory module has been assigned to the corresponding task.
  • the task on the processor recognizes the transmission destination address when transmitting the data transfer packet to the memory module as the address of the qth memory module.
  • FIG. 24 shows time variations of m 1 and m 2 when ⁇ i is random noise according to a uniform distribution that fluctuates in the range of the closed interval [ ⁇ 0.05, +0.05] in Equation 29.
  • the horizontal axis represents the time axis. It can be seen that the magnitude relationship between m 1 and m 2 changes as ⁇ changes.
  • q0 is selected when the m 1 is below m 2
  • q1 is selected if m 1 is above the m 2.
  • numerical processing for forcibly entering 0 is included when the value is shifted to a negative number by ⁇ i .
  • FIG. 25 is a diagram showing the configuration of NoC used in the simulation. It is composed of NoC of 5 ⁇ 5 square mesh topology to which five processors UP11 to UP15 and three memory modules MEM51, MEM53, and MEM55 are connected.
  • a flow of transmitting one packet of data to the memory module MEM every fixed cycle was generated.
  • the packet length is fixed at 4 flits.
  • 20 flows are generated from each processor UP, and the amount of data generated by each flow is set to 5 for 1 ⁇ flow, 5 for 10 ⁇ flow, and 10 for 100 ⁇ flow.
  • “10 times flow” is a flow that transmits 1 packet while 100 times flow transmits 10 packets
  • “1 time flow” is a flow that transmits 1 packet while 10 times flow transmits 10 packets.
  • the packet transmission interval of the 1 ⁇ flow is 10 times of the 10 ⁇ flow
  • the packet transmission interval of the 10 ⁇ flow is 10 times of the 100 ⁇ flow.
  • the routing protocol is XY dimension order routing
  • the switching protocol is wormhole switching
  • the router configuration is 4 virtual channels and 4 virtual channel size.
  • the flow transmission start timing was shifted by several cycles, so that congestion at the mesh network entrance did not occur.
  • FIG. 26 and FIG. 27 show the relationship between the throughput and latency on the memory module side compiled from simulation data by the present inventors.
  • the throughput shown on the horizontal axis is the sum of the individual throughputs of the memory modules MEM51, MEM53, and MEM55.
  • the single throughput of each memory module is obtained as a value obtained by dividing the number of flits received within the simulation time by the total number of cycles within the simulation time. It is 0 when no flits are received during the simulation, and 1 when flits are constantly received. When 1 flit is received every other cycle, it becomes 0.5.
  • the maximum value of throughput is three.
  • the latency shown on the vertical axis is the difference between the time stamp value when the flit is generated by the processor and the time stamp value when the flit is received on the memory module side. All the time stamps at the time of generating the four flits constituting one packet have the same value.
  • FIG. 26 is a graph of simulation results over 4000 cycles. With this graph, it is possible to compare the performance due to the difference in allocation method.
  • the line representing “uniform allocation” shows the result of always selecting q0 regardless of the value of ⁇ .
  • the line indicating “selective assignment” indicates the result of selecting q0 and q1 according to the value of ⁇ . In either case, it can be confirmed that the saturation throughput is about 2.7. Since the available physical bandwidth in this simulation is 3.0, a throughput of about 90% of the physical bandwidth can be used.
  • FIG. 27 shows the result of paying attention to the relationship between the throughput and the latency in the low load region in the same simulation.
  • this graph it is possible to compare the performance due to the difference in the allocation method in the low load region.
  • the latency is improved by about 5 cycles compared to the case where only q0 is always selected. It can be seen that the selection at the time of assignment improves the throughput and latency characteristics including the low load state.
  • the topology of NoC is a two-dimensional mesh type, but this is an example.
  • the flow control according to the present embodiment can be applied to other topologies.
  • a two-dimensional torus type topology may be adopted.
  • a topology in which a set of bus masters and corresponding bus control devices is arranged in a ring shape, and adjacent bus control devices and bus control devices facing each other on the ring may be connected by a bus.
  • the topology is not limited to the two-dimensional type, and a topology in which a bus master and a corresponding bus control device are die-stacked and the bus control devices are three-dimensionally connected may be adopted.
  • the present invention is implemented not only on a chip but also as a simulation program for performing design and verification for mounting on a chip.
  • a simulation program is executed by a computer.
  • each component shown in FIG. 14 is implemented as an object class on the simulation program.
  • Each class implements an operation corresponding to each component of the above-described embodiment on a computer by reading a predetermined simulation scenario. In other words, the operation corresponding to each component is executed in series or in parallel as a processing step of the computer.
  • the class implemented as a bus master reads the simulation scenario defined by the simulator to determine conditions such as the timing for virtually transmitting packets to the bus controller class. Then, the transmission state in each path shown in FIG. 13 is simulated, and the transmission state is compared in the same manner as in the first and second embodiments, thereby performing an operation for determining the transmission path.
  • the class implemented as a bus master operates until the simulation termination conditions described in the simulation scenario are satisfied, and the throughput and latency during operation, the state of fluctuations in the bus flow rate, the operating frequency, and the power consumption Estimate values etc. are calculated and provided to program users. Based on these, the program user evaluates the topology and performance, and performs design and verification.
  • each line of the simulation scenario normally describes information such as the ID of the transmission source bus master, the ID of the destination bus master, the size of the packet to be transmitted, and the transmission timing.
  • the network configuration most suitable for the simulation scenario can be specified. Any of Embodiments 1 to 3 can be applied as the design and verification tool of this aspect. The present invention is also applicable when implemented as a design and verification tool.
  • the present invention can be used for a network bus control device, a control method, and a control program having a technology for controlling a data transfer path in an on-chip bus in an SoC for embedded devices, a general-purpose processor, and a local bus on a DSP. .

Abstract

 リンク間のデータ流量の偏りをなくすことが可能なバス制御装置を提供する。 バス制御装置は、バスマスタと、ネットワーク化された通信バスとの間に設けられ、通信バスに流れるパケットの送信経路を制御する。バス制御装置は、利用可能な複数の送信経路上に存在する複数の他のバス制御装置から、出力状況に関する情報を受信するデータ受信部と、出力状況に関する情報に基づいて各送信経路の送信流量のばらつきを示す均一化指標を算出する経路負荷検出部と、均一化指標に基づいて、送信流量が調整された複数の送信経路を決定する経路決定部と、パケットを生成するパケット構成部と、いずれかの出力ポートからパケットを出力するデータ出力部と、パケットの送信先の情報に基づいて選択された送信経路に接続されている出力ポートを決定するヘッダ解析部と、当該出力ポートからパケットを出力するデータ出力部とを備えている。

Description

バス制御装置
 本発明は、ネットワーク化された通信バスを備える半導体チップにおいて、通信バスの制御を行うための装置、方法及びプログラムに関する。
 近年、SoC(System on Chip)が利用される組込機器分野や汎用プロセッサ分野において、半導体チップの高機能化への要求が高まっている。半導体チップの高機能化に伴い、チップ上の通信バスに接続されるバスマスタ数が増加し、バス上を流れる転送データのトラフィック制御が複雑化してきた。
 たとえば、近年の携帯電話端末は、電子メール送受信、ウェブブラウジング、「ワンセグ」と呼ばれる地上波デジタル放送の受信などが可能であり、多機能化が進んでいる。各機能に対応する一部または全部の処理を行う専用ICはバスマスタとして機能するため、それらを接続する通信バス上のデータのトラフィックを適切に制御する必要がある。また、マイクロプロセッサ(MPU)チップにおいてもマルチコア化が進んでいる。バスマスタとして機能する各プロセッサコアを同期させ、協調させるためには、各プロセッサコアを接続する通信バス上のデータのトラフィックを適切に制御する必要がある。
 トラフィック制御に関する従来の設計方法として、各バスマスタを広帯域な集中型のバスで相互に接続し、クロスバースイッチを切り換えることで、データ転送対象のバスマスタ対にバスの利用権を割り当てるバス制御方式が用いられてきた。しかしながら、このバス制御方式では、バス配線の引き回しによる配線遅延の増加や、クロスバースイッチの面積の増加、消費電力の増加等が問題となっている。また、集中型のバス設計では、平均的なバスの利用効率が向上せず、バスの動作周波数も高くなり、バス部分の消費電力が増加してしまうという問題点も存在する。その理由は、各バスマスタが要求する最大データ転送量を保証するようにバスの動作周波数が設計されるためである。
 集中型バスの問題点を解決するために、NoC(Network on Chip)と呼ばれる通信バスのネットワーク化が進みつつある。
 たとえば図1(a)および(b)は、NoCバスの一部の構成を示す。図1(a)はハードウェア接続構成例を示す図であり、図1(b)はその模式図である。図1(a)および(b)によれば、チップ10上に設けられたバスマスタ1a~1cが、それぞれバス制御装置(R)2を介してバス3に接続されていることが示されている。なお、以下の本願図面のNoCバスは、図1(b)に示す模式図で記載する。
 図2は、2次元メッシュ型でバスマスタを結合したNoCバスの構成例を示す。マイクロプロセッサやDSP、メモリ、入出力回路等のバスマスタ毎に、データ転送経路の制御を行うバス制御装置Rが配置され、バス制御装置R間を短配線で接続(リンク)する。
 このような構成では、送信元のバスマスタから、受信先のバスマスタに対してデータ転送を行うための通信経路が複数存在する。たとえば図3は、送信元から送信先までの3本の経路(1)~(3)を示す。
 また、同等機能を提供するバスマスタが複数存在する場合には、受信先及び受信先に至る経路が複数存在する。たとえば図4は、1つの送信元から3つの送信先(1)~(3)までの各経路を示す。
 複数の選択候補経路の中から、バスの負荷状況に合わせて、最適な経路を選択することで、チップ全体のデータ転送遅延時間(レイテンシ)やバスの動作周波数を低減することが可能となる。そのため、NoCバスの性能を最大限引き出すことのできる複数経路制御技術が必要となる。
 複数のバスマスタを相互に接続するバス上で、複数のデータ転送経路をバスの状態に合わせて選択する方法が特許文献1に開示されている。特許文献1の技術によれば、送信元のバスマスタから受信先のバスマスタ迄、転送対象のデータをフレーム単位で転送する。受信先でフレームが正常に受信された場合には、アクノリッジデータを返信し、そうでない場合にはアクノリッジデータを返信しない。送信元のバスマスタはアクノリッジデータの返信がなかったことをもって、フレーム転送の不具合を検出し、他の送信経路を選択してフレームを再送信する。これにより、通信を継続することを可能としている。受信したフレームのヘッダにエラーが検出された場合には、受信先のバスマスタでフレームが破棄されるため、送信元のバスマスタがアクノリッジデータを受信することはない。また利用中のデータ転送経路において、フレームの転送遅延が大きくなり、規定時間内にフレームが受信先に着信しない場合にも、送信元のバスマスタは規定時間内にアクノリッジデータを受信することができない。このときも、経路の切換が発生する。データ転送経路の状態に合わせて経路がダイナミックに切り換えられることにより、転送遅延やエラーが少ない経路で通信することが可能となる。
日本国特許第3816531号明細書
 従来から知られている複数経路制御技術を用いる場合、送信元のバスマスタは、転送遅延時間やエラー発生状況等を評価指標として、自らのデータ転送の状態が最良となるような利己的な経路の選択を行う。
 その結果、バスマスタ間を接続するバス(リンク)間を流れる転送データの流量に偏りが生じることがある。その理由は、NoCに存在する複数のバスマスタが競合して最良経路を選択しようとすることで、データ転送経路及びリンク資源の奪い合いが生じ、いくつかのリンクに複数の送信元からのデータ転送が集中するためである。
 この偏りによって3つの課題が発生する。
 第一の課題は、流量の大きなリンクにおいて、リンク両端のバス制御装置の動作負荷が高くなり、データ転送のレイテンシが増加することである。バスマスタ間のデータ転送のレイテンシはバスマスタの動作速度を律速し、例えばプロセッサとメモリ間のデータ転送の場合には、メモリアクセスレイテンシに対応したプロセッサのウエイトサイクル増大による処理性能低下に繋がる。
 第二の課題は、流量の大きなリンクに合わせてバスの動作周波数をより高く設計する必要が生じることである。バスの動作周波数が高速になるにつれ、配線遅延やクロストークの制御が困難となり、設計工数や検証工数が増大する。
 第三の課題は、バスの動作周波数が高くなるほど、リンクの消費電力が増加することである。リンクを構成するトランジスタの消費電力Pは、スイッチングレートα、回路の容量C、電源電圧V、動作周波数fとすると、数1で表される。
Figure JPOXMLDOC01-appb-M000001
 また、動作周波数を抑えることにより、電源電圧も数2に示す関係で低減することが可能となる。
Figure JPOXMLDOC01-appb-M000002
 数2中のηはトランジスタの動作スレッショルド電圧と電源電圧の比であり、γはプロセスルールに依存する定数である。例えばγ=2とした場合、動作周波数の低減は、3乗のオーダーで消費電力に寄与するため、流量の偏りによっては、高い転送レートを収容するためのリンクの消費電力は非常に大きくなる。
 本発明は、上記課題を解決するためになされたものであり、その目的は、リンク間のデータ流量の偏りをなくすことが可能なバス制御装置を提供することにある。
 本発明によるバス制御装置は、バスマスタと、ネットワーク化された通信バスとの間に設けられ、前記通信バスに流れるパケットの送信経路を制御するバス制御装置であって、利用可能な複数の送信経路上に存在する複数の他のバス制御装置から、出力状況に関する情報を受信するデータ受信部と、前記出力状況に関する情報に基づいて各送信経路の送信流量のばらつきを示す均一化指標を算出する経路負荷検出部と、前記均一化指標に基づいて、前記送信流量が調整された複数の送信経路を決定する経路決定部と、前記バスマスタから受け取ったデータに基づいてパケットを生成するパケット構成部と、各々が異なる通信バスに接続された複数の出力ポートのいずれか一つから前記パケットを出力するデータ出力部と、前記複数の出力ポートの中から、前記パケットの送信先の情報に基づいて選択された送信経路の一つに接続されている出力ポートを決定するヘッダ解析部とを備えている。
 前記バス制御装置は、前記複数の他のバス制御装置からの要求に従って、前記データ出力部のデータ出力状況に関する情報を通知する出力監視部をさらに備えていてもよい。
 前記経路負荷検出部は、出力するフローの優先度毎の転送頻度の平均値を少なくとも含む、前記出力監視部からの出力状況の中で前記平均値を基に均一化指標を算出してもよい。
 前記経路負荷検出部は、出力するフローの優先度毎の転送頻度の平均値および最大値を少なくとも含む、前記出力監視部からの出力状況の中で前記平均値および最大値に基づいて均一化指標を算出してもよい。
 前記経路負荷検出部は、均一化指標に含まれる統計多重効果に起因する評価値の信頼度を規定するパラメータを含んでいてもよい。
 前記経路負荷検出部は、前記パケットの転送状況の劣化を検出して、前記信頼度を規定するパラメータを調整し、前記パラメータの調整で転送状況が改善しない場合には、確率的にパラメータを調整してもよい。
 前記出力監視部は、予め定められたタイミングで発行される前記出力状況に関する情報の要求の受信をトリガとして、前記情報を通知してもよい。
 前記経路負荷検出部は、事前に出力状況通知の送信条件を出力監視部に伝達し、前記出力監視部には、予め前記出力状況に関する情報の要求が送信される条件が通知されており、前記送信条件が成立した場合には前記情報を通知してもよい。
 前記経路負荷検出部は、前記出力状況に関する情報に対して、前記各送信経路のフローの優先度に応じた重みを加えることにより、前記各送信経路の送信流量に関する評価値を算出し、各送信経路の送信流量のばらつきを示す均一化指標を算出してもよい。
 前記経路負荷検出部は、前記各送信経路の送信流量に関する評価値を利用して統計値を算出し、前記統計値を利用して前記各送信経路間の関係が均一か否かを判断してもよい。
 前記経路負荷検出部は、前記出力状況に関する情報と選択対象の送信経路のデータ特性に関する情報とに基づいて各送信経路の送信流量のばらつきを示す均一化指標を算出してもよい。
 本発明によるシミュレーションプログラムは、バスマスタと、ネットワーク化された通信バスとの間に設けられ、前記通信バスに流れるパケットの送信経路を制御するバス制御装置のためのシミュレーションプログラムであって、前記シミュレーションプログラムは、コンピュータに対し、前記シミュレーションプログラム上のオブジェクト化された複数の他のバス制御装置のクラスであって、利用可能な複数の送信経路上に存在する複数の他のバス制御装置のクラスから、出力状況に関する情報を受信するステップと、前記出力状況に関する情報に基づいて各送信経路の送信流量のばらつきを示す均一化指標を算出するステップと、前記均一化指標に基づいて、前記送信流量が調整された複数の送信経路を決定するステップと、前記バスマスタとして実装されたクラスから受け取ったデータに基づいてパケットを生成するステップと、各々が異なる通信バスに接続された複数の出力ポートのいずれか一つから前記パケットを出力するステップと、前記複数の出力ポートの中から、前記パケットの送信先の情報に基づいて選択された送信経路の一つに接続されている出力ポートを決定するステップと、前記決定された出力ポートから前記パケットを出力するステップとを実行させる。
 本発明によれば、バス制御装置は、利用可能な複数の送信経路上の他のバス制御装置に対して出力状況の監視を行い、各送信経路間の送信流量のばらつきである均一化指標に基づいてデータの送信経路を切り換える。これにより、NoCバスを構成するリンク間の流量の偏りが自動的に抑制されるため、データ転送負荷がバス全体で均一化され、特定リンクへの負荷集中による通信遅延時間、レイテンシの増加が抑えられる。
 また、リンクの動作周波数が低減されるので、バス設計を容易にし、データ転送時のバスの消費電力を削減することが可能となる。またリンクの動作周波数の動的制御技術と組み合わせることにより、バスの消費電力を更に効率的に削減することが可能となる。
 また、同等機能を提供するバスマスタへの経路負荷を、統計多重効果を考慮した上で均一化することにより、バスマスタの負荷分散効果も得られる。このため、分散型のメモリ・アーキテクチャに本発明を適用することにより、メモリアクセスの許容レイテンシに対する信頼性を確保した上で、アクセス集中によるボトルネックを回避することが可能となる。
(a)はハードウェア接続構成例を示す図であり、(b)はその模式図である。 2次元メッシュ型でバスマスタを結合したNoCバスの構成例を示す図である。 送信元から受信先までの3本の経路(1)~(3)を示す図である。 1つの送信元から3つの受信先(1)~(3)までの各経路を示す図である。 携帯電話端末に搭載されるシステム半導体をNoCバスを用いて構成した例を示す図である。 (a)はワンセグTV視聴のアプリケーションにおけるデータ転送経路を示す図であり、(b)は携帯電話用フルブラウザのネットワーク通信用スレッドにおけるデータ転送経路を示す図であり、(c)はネットワークゲームのクライアントプログラムが遠隔のサーバーと通信する際のデータ転送経路を示す図である。 送信元M21から受信先M24へデータ転送を行う場合に、利用可能な3本の選択候補経路が定義されていることを示す図である。 データ転送処理B,C,Dが同時に発生している状態でのバスマスタM21-M24間での選択候補経路毎のデータ転送量を示す図である。 動画再生時のデータ転送経路を示す図である。 チップ上で複数のデータ転送処理が同時的に発生している状態を示す図である。 図8に対して、データ転送Aが新たに追加された状態を示す図である。 実施形態1によるデータ転送量の調整結果を示す図である。 リンク間の経路流量の偏りをなくし、均一化を行うための動作詳細を説明するための部分経路図を示す図である。 本発明の実施形態によるバス制御装置2の構成を示す図である。 パケットの構成例を示す図である。 出力情報通知パケットのペイロードに記述される情報の例を示す図である。 バス制御装置R21がバスマスタM24に至る経路(2)上の出力情報を収集する際のプロトコルの例を示す図である。 経路負荷検出部101の以上の処理の流れを示す図である。 バス制御装置R21の経路決定部102が管理する経路表の例を示す図である。 分散型のメモリ・アーキテクチャに本発明を適用した構成の例を示す図である。 出力情報の例を示す図である。 出力情報を収集するためのプロトコルの例を示す図である。 実施形態3のバス制御装置の性能評価をNoCのシミュレータを用いて行った結果を示す図である。 数29において、ηiを閉区間[-0.05, +0.05]の範囲で変動する一様分布に従うランダムノイズとしたときの、m1及びm2の時間変化を示す図である。 シミュレーションに用いたNoCの構成を示す図である。 メモリモジュール側でのスループットとレイテンシとの関係を示す図である。 メモリモジュール側でのスループットとレイテンシとの関係を示す図である。
 以下、添付の図面を参照しながら、本発明によるバス制御装置の実施形態を説明する。
 (実施形態1)
 本実施形態によるバス制御装置を具体的に説明するに先立って、NoC(Network on Chip)と呼ばれる通信バス、その通信バスで利用可能な送信経路、および、各送信経路におけるデータ転送量を説明する。併せて本実施形態によるバス制御装置の動作原理を説明する。
 図5は、携帯電話端末に搭載されるシステム半導体を、NoCバスを用いて構成した例である。図面の記載形式は、図1(b)に準じている。なお、図中には各バス制御装置Rと1対1でバスマスタが接続されているが、バスマスタが接続されておらず中継処理のみを行うバス制御装置が混在していても良い。
 バス制御装置Rにバスマスタが接続されている場合には、各バスマスタに対して一意のアドレスが付与されるが、バスマスタが接続されていない場合には、バス制御装置に対して仮想的な一意のアドレスを付与すればよい。本明細書では、いずれの場合もバスマスタアドレスと表現する。
 携帯電話端末は、本来的な機能としての音声通話に加えて、電子メールやWebブラウジング、ワンセグTVの視聴、ネットワークを利用したゲームなどの、豊富な機能が要求される典型的な例と考えられる。図6(a)はワンセグTV視聴のアプリケーションにおけるデータ転送経路を示す。バスマスタM11を送信元、バスマスタM14を受信先とするデータ転送処理Bが矢印に示された経路で行われている。また図6(b)は携帯電話用フルブラウザのネットワーク通信用スレッドにおけるデータ転送経路を示す。バスマスタM21を送信元、バスマスタM24を受信先とするデータ転送処理Cが矢印に示された経路で行われていることを示す。また図6(c)はネットワークゲームのクライアントプログラムが遠隔のサーバーと通信する際のデータ転送経路を示す。バスマスタM23を送信元、バスマスタM34を受信先とするデータ転送処理Dが矢印に示された経路で行われていることを示す。
 図6(a)、(b)および(c)中のデータ転送処理B,CおよびDは、マルチスレッド型のOSや並列処理構成のハードウェアにより、同時並行的に実行されるものである。
 図7は、送信元M21から受信先M24へデータ転送を行う場合に、利用可能な3本の選択候補経路が定義されていることを示している。以下、それぞれの選択候補経路を経路(1)、経路(2)、経路(3)と表現する。
 図8は、データ転送処理B,C,Dが同時に発生している状態でのバスマスタM21-M24間での選択候補経路毎のデータ転送量を示している。経路のデータ転送量は、経路上の各リンクのデータ転送量の最大値としても良い。例えば、図6(c)に示すバス制御装置R33-R34間のリンクのデータ転送量が、経路(3)上の他の各リンクのデータ転送量よりも大きい場合には、経路(3)のデータ転送量は、R33-R34間のリンクのデータ転送量として定義される。
 たとえば、ユーザが携帯電話の画面上のフルブラウザアプリケーションを操作し、動画サイトへのアクセスを行い、動画コンテンツの再生を指示したとする。このとき、動画再生用のスレッドが起動される。図9は、動画再生時のデータ転送経路を示す。図9に示すように、バスマスタM12を送信元、バスマスタM23を受信先とするデータ転送処理Aが矢印に示された経路で開始される。
 いま、図8のデータ転送処理B、CおよびDが存在している状況下で、上述のデータ転送処理Aが追加されたと仮定する。
 図10は、チップ上で複数のデータ転送処理が同時的に発生している状態を示す。そして図11は、図8に対して、データ転送Aが新たに追加された状態を示す。図11によれば、動画再生用スレッドのデータ転送経路として、図8において最もデータ転送量の少ない経路(2)が選択されている。
 しかしながら、図10に示すように、バス制御装置R22とR23との間のリンクには、データ転送処理AおよびCが競合している。バス制御装置R22とR23との間のリンクでは、データ転送処理AおよびCが並列的に行われる。よって、データ転送量が多くなるため、動作周波数を高くせざるを得ない。その結果、図11に示すように、結果として3本の経路のデータ転送量が不均一な状態となっている。リンクの動作周波数が図11に示す点線のレベルにある場合には、経路(2)は高負荷な状態であり、リンクの消費するエネルギーも大きい。
 そこで、本実施形態では、複数経路のデータ転送量が均一になるように、データ転送量を調整する。たとえば図12は、本実施形態によるデータ転送量の調整結果を示す。図12に示すように、3本の経路のデータ転送量を均一な状態になるように制御することによって、より低い動作周波数でデータ転送を行うことが可能となり、消費電力も低減できる。
 図13は、リンク間の経路流量の偏りをなくし、均一化を行うための動作詳細を説明するための部分経路図を示す。説明を簡略化するため、図10の一部分を取り出して記載している。システム半導体全体の構成は図10に示された通りである。図13に描かれていない配線やバスマスタ、バス制御装置は、省略されているだけであり、図10に示された通り存在する。
 送信元のバスマスタM21に接続されたバス制御装置R21は、データ転送対象であるバスマスタM24を受信先とする予め定義された3本の経路(1)、経路(2)、経路(3)に対して、経路負荷状況を収集する。経路負荷状況は、各バス制御装置が管理する出力情報を収集することによって行われる。各経路の出力情報の収集が完了すると、バス制御装置R21は、各経路の流量評価値を算出し比較することによって、経路の均一性を評価する。不均一な状態となっている場合には、バス制御装置R21は、最も均一性が高くなる経路にデータ転送経路を切り換えることで、データ転送に偏りが発生することを防ぎ、バス全体に転送データを分散するように制御する。
 以下、図14を参照しながら、この動作を行うためのバス制御装置の構成例を説明する。
 図14は、本実施形態によるバス制御装置2の構成を示す。
 バス制御装置2は、経路負荷検出部101と、経路決定部102と、パケット構成部103と、データ受信部104と、ヘッダ解析部105と、データ出力部106と、出力監視部107とを備えている。以下、各構成要素の機能を説明する。
(パケット構成部103)
 ネットワーク化されたNoCバス上のデータ転送は、パケットの単位で行われる。パケット構成部103は、自身に接続されたバスマスタから受け取ったデータに基づいてパケットを生成する。
 図15はパケットの構成例を示す。パケットはヘッダ、バスマスタ間で交換するためのデータの実体であるペイロード、誤り検出符号等を格納するトレイラーによって構成される。このうち、ペイロードやトレイラーは必須ではない。
 ヘッダは、以下の情報を含んでいる。ただし、受信先のバスマスタのアドレス以外は必須ではない。
・プロトコル種別
・受信先のバスマスタとバス制御装置に割り当てられたアドレス
・送信元のバスマスタとバス制御装置に割り当てられたアドレス
・同一アプリケーションまたは同一目的の一連のパケット群に割り当てられるラベル情報
・同一ラベル情報を持つパケット群に対して一意であり送信時刻順に割り当てられる番号情報であるパケット連番
・パケットが転送時に許容するレイテンシのレベルである優先度
・付加情報、および、
・後続するペイロードの有無やペイロードの長さを示すペイロード長
 なお、プロトコル種別は、そのパケットがバスマスタ間でのデータ転送目的であるか、経路負荷検出を目的とした出力情報の要求であるか、通知であるかを示す識別コードである。以下では、それぞれの種別のパケットを、「転送データパケット」、「出力情報要求パケット」、および、「出力情報通知パケット」という。
 パケット構成部103は、自身に接続されたバスマスタから発せられたデータ転送要求に従い、図15に示すフォーマットに準拠して転送データパケットを構成し、ヘッダ解析部105に送る。
 またパケット構成部103は、経路負荷検出部101から発せられた出力情報収集要求に従い、図15に示すフォーマットに準拠して出力情報要求パケットを構成し、ヘッダ解析部105に送る。またパケット構成部103は、出力監視部107から発せられた出力情報通知要求に従い、図15に示すフォーマットに準拠して出力情報通知パケットを構成し、ヘッダ解析部105に送る。
(データ受信部104)
 データ受信部104は、自身が接続された単数または複数の入力リンクから、転送データパケットや出力情報通知パケットを受信し、ヘッダ解析部105に送る。図14では入力ポートはE、W、S、Nの4本を記載しているが、1本以上であれば何本でも良い。各入力ポートは、異なる他のバス制御装置の出力ポートに接続される。
(ヘッダ解析部105)
 ヘッダ解析部105は、データ受信部104によって渡されたパケットのプロトコル種別を照合し、パケットの種別を特定する。本実施形態では、パケットは、転送データパケット、出力情報要求パケット、または、出力情報通知パケットのいずれかであるとしている。
 パケットの種別が転送データパケットである場合には、ヘッダ解析部105は、受信先のバスマスタを示すアドレス(受信先アドレス)を参照する。その結果、受信先が、自身が接続されたバスマスタへのパケットである場合には、ヘッダ解析部105はペイロード部分を抽出してバスマスタに送る。また、受信先が、自身が接続されたバスマスタへのパケットでない場合には、ヘッダ解析部105は受信先バスマスタのアドレスを経路決定部102に提示し、パケットを出力すべき出力ポートを決定する。
 次に、パケットの種別が出力情報要求パケットである場合には、ヘッダ解析部105は、受信先アドレスを参照する。その結果、受信先が、自身が接続されたバスマスタへのパケットである場合には、ヘッダ解析部105は出力監視部107に出力情報の通知を要請し、パケットヘッダに格納されていた送信元のバスマスタアドレス(送信元アドレス)を提示する。また、受信先が、自身が接続されたバスマスタへのパケットでない場合には、ヘッダ解析部105は受信先バスマスタのアドレスを経路決定部102に提示し、パケットを出力すべき出力ポートの通知を受け取る。それにより、ヘッダ解析部105は出力ポートを選択する。なお、パケット構成部103が経路決定部102から選択候補経路のリスト及びホップリストを受け取っている場合には、それらに基づいて、パケットを出力すべき出力ポートを選択してもよい。
 一方、パケットの種別が出力情報通知パケットである場合にも、ヘッダ解析部105は、受信先バスマスタアドレスを参照する。その結果、受信先が、自身が接続されたバスマスタへのパケットである場合には、ヘッダ解析部105は経路負荷検出部101にパケットヘッダに格納された送信元のバスマスタアドレスとペイロードに格納された出力情報を送る。一方、受信先が、自身が接続されたバスマスタへのパケットでない場合には、ヘッダ解析部105は受信先バスマスタのアドレスを経路決定部102に提示し、経路決定部102から通知されたポートを、パケットを出力すべき出力ポートとして決定する。
(データ出力部106)
 データ出力部106は、ヘッダ解析部105によって提示された出力ポートへの配線の切換を行い、パケットを信号としてバス上に送出する。また経路の輻輳によって、データ転送パケットの送出遅延が発生した場合には、データ出力部106は、優先度の低いデータ転送パケットの転送を遅延させることで、優先度の高いデータ転送パケットから順に優先転送を行う。
(出力監視部107)
 出力監視部107は、ヘッダ解析部105から受けた出力情報通知要請に応答するために、データ出力部106の各出力ポートの状態監視を行う。各出力ポートには、複数のバスマスタが送出したデータ転送パケットが混在して出力されており、同一のラベル情報を持つデータ転送パケットは同一のフローであると識別することができる。
 ここで「フロー」とは、アプリケーションやタスクの実行等の同一目的のために、送信元バスマスタから受信先バスマスタに送信される一連のデータ転送パケット群を指し、フロー毎に異なる許容レイテンシを持つ。フローが要求する許容レイテンシのレベルは、パケットヘッダに格納された優先度によって示される。例えば、リアルタイム性が要求される信号処理用途では高優先度であり、バックグラウンドプロセスによるファイル転送用途では低優先度となる。
 優先度は、アプリケーション毎に固定であっても良いし、アプリケーションを構成するスレッド毎に変化させても良いし、プログラマやコンパイラが決定する更に細かい処理単位毎に変化させても良い。また各フローの送信レートは一定ではなく、フローによって異なるのが通常であり、さらに同一フローであっても、送信レートは時間変動するのが通常である。
 図16は、出力情報通知パケットのペイロードに記述される情報の例を示す。出力監視部107は、図16に示す情報を、他のバス制御装置から自身宛の出力情報要求パケットを受理した際に、該当する出力ポートに関して作成し、送信元のバス制御装置に対して通知する。出力情報は複数のエントリーから構成され、各エントリーはパケットの優先度に対応する。各優先度レベル毎に、かかる優先度のパケットを送信するために要した出力ポートのバスサイクル数の時間平均、最大値、最小値がレポートされる。
 本実施形態では、同一優先度の複数のフローがレポート対象の出力ポート上で混在している場合において、それらを区別していないが、より詳細にフロー毎に監視しても良い。またレポートする出力ポートの情報は、本実施形態に示す通り、出力監視部107が計測した実測値に基づいて算出された値でも良いし、バスマスタにより付加情報として通知されるフローのスペックに基づいた値でも良い。
 図17は、バス制御装置R21がバスマスタM24に至る経路(2)上の出力情報を収集する際のプロトコルの例を示す。図中の「MA」は、バスマスタに付与されたNoC上の一意のアドレスである。バス制御装置もこのアドレスにより特定できる。
 送信元のバス制御装置R21が経路(2)上に送信した出力情報要求パケットは、経路(2)上のバス制御装置R22及びR23を通って、経路終点のバス制御装置R24に回送される。各バス制御装置R22、R23は、経路(2)上の次段のバス制御装置へのリンクにつながる出力ポートに関する出力情報通知パケットの返信を行うと共に、出力情報要求パケットを経路(2)上の次段のバス制御装置に対して回送する。経路終点のバス制御装置R24は、出力情報要求パケットを破棄する。
(経路負荷検出部101)
 経路負荷検出部101は、自身に接続されたバスマスタが送出する各フローの受信先アドレスと送信候補経路の情報を用いて、全ての送信候補経路に対して、出力情報要求パケットを送信する。出力情報要求パケットを送信するタイミングは、一定時間毎に定期的に行っても良い。また経路負荷検出部101は、出力情報要求パケット内に出力情報通知パケットの返信条件を格納しておき、経路上の各バス制御装置が返信条件を満たした際に、出力情報通知パケットを返信するトラップ方式を用いても良い。この場合、返信条件はデータ転送パケットの占有サイクル数の変化量が一定の閾値を超えた場合としても良い。
 以下、図13において、バス制御装置R21にある経路負荷検出部101から、経路(1)、経路(2)、経路(3)に対して、定期的に出力情報要求パケットを発行する場合について説明する。各経路上の各バス制御装置は、図17に示すプロトコルに従って、バス制御装置R21に出力情報通知パケットを返信する。そのため、バス制御装置R21は、i番目の経路上のj番目のバス制御装置から、優先度δ毎に、それぞれ図16に示す出力情報ωijを収集することができる。
Figure JPOXMLDOC01-appb-M000003
 重み係数行列をPとし、行列の要素をpijと表すとする。Pの各行は出力情報ベクトルωijの各要素に対応し、各列は優先度δに対応する。本実施形態では、出力情報として、時間平均、最大値、最小値の3種類の情報を収集するため、Pの行数は3であり、フローを高優先度、中優先度、低優先度の3種類に分類するため、Pの列数は3である。
Figure JPOXMLDOC01-appb-M000004
 このとき、経路i上のj番目のリンクの流量評価値βijは、数5で示される。eは全要素が1のベクトルである。
Figure JPOXMLDOC01-appb-M000005
 経路iの流量評価値βは、経路上のリンクの流量評価値の最大値として定義して良い。
Figure JPOXMLDOC01-appb-M000006
 重み係数行列の要素を調整することにより、経路負荷検出部101は各経路の流量を適切に評価することができる。そして経路負荷検出部101は、流量評価値を均一化するようにフローの経路を制御することで、データ転送量がバス全体に均一化され、バスの動作周波数低減と、消費電力削減の効果が得られる。
 経路負荷検出部101は、各バスマスタが送信するフローの特性が事前設計的に想定可能であれば、その情報を基にして重み係数行列の各係数値を決定しても良い。例えば、各バスマスタが時間的に変動しないフローのみしか発生させないことが分かっている場合には、各フローの平均値、最大値、最小値は一致するため、平均値のみを流量評価に反映させれば良い。このとき、重み係数行列Pを数7のように定義できる。
Figure JPOXMLDOC01-appb-M000007
 しかしながら、各フローは時間的に変動する特性を有するのが通常であるため、経路毎の流量の比較は単純な平均値比較とはならない。また低優先度のフローが高優先度のフローを阻害しないように、フローの優先度も適切に考慮して流量評価を行う必要がある。フローの時間変動も考慮した重み係数行列Pの例を数8に示す。
Figure JPOXMLDOC01-appb-M000008
 数8の重み係数行列を用いた場合の経路iの流量評価値βは、数5及び数6より、数9のようになる。式中のδselfは、制御対象フローの持つ優先度である。
Figure JPOXMLDOC01-appb-M000009
 数8によって定義された重み係数行列によれば、数9によって分かる通り、自身よりも高優先度のフローに対しては、その時間変動特性のうちの最大値をもって、流量が経路負荷検出部101によって評価されることを示している。またこの重み係数行列によれば、制御対象フロー自身よりも低優先度のフローに対しては、データ出力部106が行う優先度制御を前提とした平均値評価が行われることを示している。そしてこの重み係数行列によれば、自身と同一優先度のフローに対しては、時間変動特性がベータ分布に従うことを前提とした最頻値評価が行われることを示している。数7及び数8は、重み係数行列の定義の方法を制限するものではなく、想定されるフローの特性に合わせて、最適なPを定義して良い。
 3本の選択候補経路間の関係が均一かそうでないかの判断を行うための指標として、閾値を導入しても良い。閾値判定の例として、数10に示す統計値ρを用いても良い。式中のRは選択候補経路数を示す。
Figure JPOXMLDOC01-appb-M000010
 ρの値が事前に定義された閾値ρthを下回った場合には、経路負荷検出部101は経路間の均一性が損なわれたという判断をしても良い。経路間の均一性が損なわれた状態を検出した場合には、経路負荷検出部101は、制御対象フロー自身が現在データ転送パケットを伝送している送信経路以外の選択候補経路に移動した場合の仮想的なρの値を計算する。そして、経路負荷検出部101はそれらを比較し、最もρの値が大きくなる選択候補経路を切換先経路として決定し、経路決定部102に提示することで、経路表を更新し、経路の切換を行わせる。
 図18は、経路負荷検出部101の以上の処理の流れを示す図である。
 ステップS1において、経路負荷検出部101は、自動経路切り換え処理を開始する。
 具体的には、ステップS2において、経路負荷検出部101は、全ての送信候補経路に対して出力情報要求パケットを送信することにより、経路上の各中継ルータから、各送信候補経路に関する出力情報を収集する。
 ステップS3からS5では、各経路に対する処理が行われる。具体的には、ステップS4において、経路負荷検出部101は各経路の流量評価値βを算出する。
 ステップS6において、経路負荷検出部101は経路間の均一性指標ρを算出する。そして次のステップS7において、経路負荷検出部101は均一性指標ρが事前に定義された閾値ρthを下回ったか否かを判定する。すなわち、均一性指標ρが閾値ρthを下回った場合には、均一性が損なわれたとして、経路切り替えが必要であると判定する。このとき処理はステップS8に進む。一方、均一性指標ρが閾値ρthを下回っていない場合には、処理はステップS11に進み、その時点での経路切り換えは行わず、処理を終了する。
 ステップS8において、経路負荷検出部101は、自身のフローが選択候補経路に移動したとした場合の仮想的な均一性指標ρの値を計算して、それらを比較する。そしてステップS9において、経路負荷検出部101は最もρの値が大きくなる選択候補経路を切換先経路として決定する。その結果、経路負荷検出部101は、ステップS10において経路決定部への処理要求を発行する。
 ステップS11まで到達すると、経路負荷検出部101は、再びステップS1からの処理を繰り返す。
 均一性指標ρは、優先度を考慮して重み付けられた流量評価値βを利用して算出される。そして、その指標ρに基づいて均一性が損なわれたと判定された場合には経路が適切に切り換えられる。これにより、データ転送に偏りが発生することを防ぐことができる。
 なお、送信候補経路間の均一性を示すρの値が閾値を下回る時間割合を監視し、均一性制御が功を奏していないことを検知することで、重み係数行列Pの各要素にフィードバック制御を働かせても良い。
(経路決定部102)
 経路決定部102は、経路表を管理し、パケット構成部103が提示する宛先アドレスに基づいて経路表を検索し、ネクストホップとするバス制御装置に関連した出力ポートをパケット構成部103に通知する。
 図19は、バス制御装置R21の経路決定部102が管理する経路表の例を示す。宛先アドレスMA24に位置するバスマスタM24への経路として、3本の選択候補経路が定義されている。この選択候補経路のそれぞれのネクストホップとなるバス制御装置のアドレスとそれに対応する出力ポート、終点アドレスに至る迄にホップするバス制御装置のアドレスのリスト、データ転送パケットが実際に送信されている経路を示す選択情報が記録され管理される。
 経路決定部102は、経路負荷検出部101からの要求に従い、受信先アドレスと選択候補経路のリスト及びホップリストを提示し、出力情報要求パケットの送信に必要な経路に関する情報を提供する。また経路負荷検出部101から提示された切換先経路の情報に従い、経路表の選択情報の更新を行うことで、データ転送パケットが送信される経路を変更する。
 以上説明したバス制御装置2によれば、NoCバスを構成するリンク間の流量の偏りが自動的に抑制されるため、データ転送負荷がバス全体で均一化され、特定リンクへの負荷集中による通信遅延時間、レイテンシの増加が抑えられる。リンクの動作周波数を低減することで、バス設計を容易にし、データ転送時のバスの消費電力を削減することが可能となる。またリンクの動作周波数の動的制御技術と組み合わせることにより、バスの消費電力を更に効率的に削減することが可能となる。また同等機能を提供するバスマスタへの経路負荷を、統計多重効果を考慮した上で均一化することにより、バスマスタの負荷分散効果も得られる。このため、分散型のメモリ・アーキテクチャに本発明を適用することにより、メモリアクセスの許容レイテンシに対する信頼性を確保した上で、アクセス集中によるボトルネックを回避することが可能となる。
 (実施形態2)
 図20は、分散型のメモリ・アーキテクチャに本発明を適用した構成の例を示す。3つのプロセッサUP11、UP12、UP13と、3つの共有メモリモジュールMEM31、MEM32、MEM33が、3×3のメッシュ型のバス制御装置のネットワークを介して接続されている。プロセッサは、タスク起動時に必要なメモリ領域をいずれかのメモリモジュール上に割り当て、タスク終了時に割り当てた領域を解放する。しかし、特定のメモリモジュールへの割当が集中した場合、メモリモジュール間でアクセスレートにばらつきが発生し、アクセスが集中したメモリモジュールへのアクセスバスの動作周波数が上がり、設計面、消費電力面で課題となる。プロセッサでのメモリ割当時に、メモリモジュール間のアクセスレートができるだけ均一になるように割当処理を行うことで、アクセスバスの動作周波数低減と、消費電力削減の効果が得られる。
 本実施形態による分散型メモリネットワークを構成するバス制御装置の構成は、以下に特に説明する点を除いては、図14に示す実施形態1のバス制御装置2の構成と同じである。共通する機能の説明は省略する。
(パケット構成部103)
 本実施形態では、前提条件として、プロセッサとメモリモジュール間の各フローのレート特性である平均レートと最大レートが事前設計されており、各フローは同一の優先度を有する場合を想定する。複数の優先度に対応するフローが混在する場合には、実施形態1と同様に扱えば良い。プロセッサ側のバス制御装置内にあるパケット構成部103は、図15に示すように、プロセッサ上のタスクから提示されたフローのレート特性を、付加情報としてデータ転送パケットのヘッダに格納して送信する。これにより、メモリモジュール側のバス制御装置に対して、アクセスフローのレート特性を伝達する。
(出力監視部107)
 メモリモジュール側のバス制御装置内にある出力監視部107は、プロセッサ側のバス制御装置から伝達されるアクセスフロー毎のレート特性を基に、数11、数12に示す評価式を管理する。
Figure JPOXMLDOC01-appb-M000011
Figure JPOXMLDOC01-appb-M000012
 式中で、μijは、pijは、i番目のメモリモジュールのj番目のアクセスフローに対する平均レート及び最大レートの値であり、nはi番目のメモリモジュールに割り当てられたアクセスフローの総数、μi、pはi番目のメモリモジュールの平均レート評価式と最大レート評価式である。他のバス制御装置から出力情報要求パケットを受理した出力監視部107は、図21に示される出力情報を含んだ出力情報通知パケットを返信する。
 バス制御装置から伝達されるアクセスフローのレート特性は、設計時に予め算定できる情報を含んでも良い。そのような情報として、たとえばSoC上で動作するアプリケーション、信号処理のモジュールが生成する平均レート、最大レート、最小レート、アクセスレートの標準偏差、処理の優先度、許容されるアクセスレイテンシを挙げることができる。
 またユーザの機器操作などによって発生するメモリアクセスのように、設計段階でアクセスレート特性が予め算定ができないメモリアクセスのフローに関しては、実施の形態1に示したようにメモリ側のバス制御装置でアクセスレートの平均値や最大値を実測することで数11、数12を計算しても良い。
 設計時特性と実測値のいずれも利用可能である場合には、設計時特性を使用したほうが良い。実測値をベースにした制御では、瞬間的な負荷減少に対して、各バスマスタが集中的に当該メモリへのアクセスフローの割当を行おうとする傾向が強まる。そのため、割当可能なメモリの余剰帯域に比して、過剰なフローを収容する結果となり、直後の負荷上昇とアクセスレイテンシの増大が起こった際に、各バスマスタが再度アクセスフローの割当直しを行わざるを得ない状況に繋がり易い。このような現象は、「ルートフラッピング」として知られており、ネットワークのスループットやアクセスレイテンシを著しく劣化させる。フローの設計時特性をベースに割当制御を行った場合には、瞬間的な負荷状態に依存しない割当量を管理できるため、ルートフラッピングの発生を避けることができる。
 メモリモジュール側のバス制御装置内にある出力監視部107において、接続されたメモリへのアクセスレイテンシを計測、管理しても良い。アクセスレイテンシは、プロセッサからのデータ読出あるいは書込要求を示すデータ転送パケットをデータ受信部104が受信してから、対応する読出あるいは書込動作が完了する迄に要したサイクル数で表しても良い。データ転送パケットのヘッダに格納された優先度によって規定されるアクセスフローのレイテンシ要求に対して、充分なマージンが確保できていない状態を出力監視部107が検出した場合には、要求元のプロセッサのバス制御装置アドレスを受信先アドレスとする出力情報通知を緊急送信することで、アクセス品質の低下をプロセッサ側に通知しても良い。
(経路負荷検出部101)
 経路負荷検出部101は、プロセッサが平均レートμt、最大レートptのメモリアクセスフローを割り当てるためのメモリ領域確保のイベントをトリガとして、出力情報要求パケットを各メモリモジュールのバス制御装置宛に送信する。この出力情報要求パケットにより、図21に示された評価値を収集する。出力情報を収集するためのプロトコルの例を図22に示す。フローの時間変動を考慮したi番目のメモリの流量評価値βiは、数13で表される。式中のmは同一メモリに割り当てられた複数フロー間の統計多重効果の強さと信頼性をバランスさせるための調整係数である。
Figure JPOXMLDOC01-appb-M000013
 また新たな割当対象フローの割当後のi番目のメモリの流量評価値β'は、数14で表される。
Figure JPOXMLDOC01-appb-M000014
 割当対象フローをi番目のメモリに割り当てた場合の各メモリの流量の状態をSとすると、数15のようになる。
Figure JPOXMLDOC01-appb-M000015
 状態Sにおけるメモリ間の流量均一性を数16、数17で評価しても良い。式中のnはメモリモジュールの個数を表す。
Figure JPOXMLDOC01-appb-M000016
Figure JPOXMLDOC01-appb-M000017
 フローの割当対象のメモリモジュールを数18によって決定することで、フローの時間変動を考慮した統計多重効果が最も期待でき、メモリ間のアクセスレートの均一性を向上させることができる。
Figure JPOXMLDOC01-appb-M000018
 経路負荷検出部101は、該当するタスクに対してq番目のメモリが割り当てられたことを、プロセッサに通知する。プロセッサ上のタスクはメモリへのデータ転送パケット送信時の送信先アドレスをq番目のメモリのアドレスとして認識する。
 このように、数13で示される割当対象フローの割当前の各メモリの流量βを比較するのではなく、数14及び数15で示すように、仮想的な割当後の各メモリの流量Siを比較して、実際のフローの割当先のメモリを決定する。これにより、各メモリに対して、既に割当済のフロー群と割当対象のアクセスフローとの関係も考慮することができるため、より適切な割当先メモリを選択できるようになる。例えば、時間変動の激しいアクセスフローを新規に割り当てる状況を考える。割当前の流量は大きかったとしても、時間変動の少ないフロー群を割当済のメモリよりも、時間変動の大きなフロー群を割当済の経路を選択したほうが、統計多重効果によって、割当実施後の帯域利用効率を向上させることができる。仮想的な割当後の均一性を基に割当先メモリを決定することで、このような状況にも対応可能となる。
 またメモリモジュール側のバス制御装置内にある出力監視部107が発信する、アクセス品質低下の緊急出力情報通知パケットを受信した経路負荷検出部101は、その情報を基に、数13及び数14に含まれる調整係数mの値を動的に制御する。これにより、アクセス品質に関する信頼性を向上させることができる。経路負荷検出部101が管理する調整係数mの初期値を数19で定義する。mの初期値は例えば5に設定しておいても良い。
Figure JPOXMLDOC01-appb-M000019
 またmを制御するためのパラメータ変数として、αを数20で初期化する。初期値は例えば、1に設定しておいても良い。
Figure JPOXMLDOC01-appb-M000020
 緊急の出力情報通知パケットの受信によって、アクセス品質の低下を検知した経路負荷検出部101は、αの値を数21に従って変更する。Δαは、事前に定められたN回の緊急出力情報通知の受信による正の変化分である。例えば、Nの値を1に、Δαの値を0.5に設定しておいても良い。
Figure JPOXMLDOC01-appb-M000021
 調整係数mの値を、数22に示すダイナミクスで制御する。式中のmmax、mminは調整係数mの事前に決定された最大値及び最小値であり、例えば、7及び5に設定しておいても良い。kは調整パラメータであり、例えば100に設定しておいても良い。δはクロネッカのデルタ関数であり、ηはランダムな正の整数である。
Figure JPOXMLDOC01-appb-M000022
 数22により、調整係数mを、数23のように更新すれば良い。
Figure JPOXMLDOC01-appb-M000023
 上述の数式に基づく処理によれば、データが流れにくくなるにつれて、Δmの値が大きくなるため、mの値が大きくなる。
 更新した結果、mの値が最大値を超えた場合には、α=0とすることで、ランダムな調整係数選択を行わせると良い。調整係数mの更新が完了した時点で、数20に従って、再びαの初期化を行えば良い。調整係数mを制御することによって、各フローのレート変動特性が想定する確率分布に従わない場合であっても、メモリ割当の均一性と統計多重効果をバランスさせ、フローを収容可能なバスの動作周波数を引き下げる効果が得られる。
 以上、本発明の実施形態を説明した。
 上述の実施形態では、NoCのトポロジは2次元メッシュ型であるとしたが、これは一例である。本実施形態によるフロー制御は、他のトポロジであっても適用可能である。他のトポロジとして、たとえば2次元トーラス型のトポロジを採用してもよい。また、バスマスタおよび対応するバス制御装置の組をリング状に配置し、隣接するバス制御装置同士、および、リング上対向するバス制御装置同士をバスで接続するトポロジを採用してもよい。さらに2次元型に限られず、バスマスタおよび対応するバス制御装置をダイスタッキングし、バス制御装置を3次元接続するトポロジを採用してもよい。
(実施形態3)
 本実施形態によるバス制御装置は、実施形態2と同様、図20に示す分散型のメモリ・アーキテクチャに適用することが可能である。図20に示す分散型のメモリ・アーキテクチャの説明は実施形態2と同じであるため、その説明は省略する。
 本実施形態による分散型メモリネットワークを構成するバス制御装置の構成は、以下に特に説明する点を除いては、図14に関連して説明した実施形態2によるバス制御装置2の構成と同じである。共通する機能の説明は省略する。
(経路負荷検出部101)
 本実施形態では、実施形態2における数16に代えて、下記数24を採用してもよい。
Figure JPOXMLDOC01-appb-M000024
 流量の均一性を優先指標としたフローの割当対象のメモリモジュールは数25によって決定される。
Figure JPOXMLDOC01-appb-M000025
 一方、割当対象のフローを発生させたプロセッサからみて、最近接に位置するメモリモジュールはqであるとは限らない。ここでいう「最近接に位置するメモリモジュール」(以下「最近接メモリモジュール」と記述する。)とは、設計上、プロセッサから最も低いレイテンシでアクセス可能と想定されるメモリモジュールを意味する。
 図20の例では、プロセッサUP11から3つの共有メモリモジュールMBM31、MBM32、MBM33へは、それぞれ2ホップ、3ホップ、4ホップとなっている。よって、設計上は、共有メモリモジュールMBM31がプロセッサUP11の最近接メモリモジュールとして定義できる。プロセッサ毎に定義される最近接メモリモジュールの識別子qは、例えばSoCの設計情報として定義される。当該識別子qは、予め該当するプロセッサ、または、プロセッサに接続されたNoCルータの経路負荷検出部の内部にハードコードされていても良いし、初期化動作に計測パケットを送受信して選択しても良い。
 数24で示されるρは、メモリモジュールiに割当対象フローの割当を行った後の均一性を示している。一方、割当を行わない状態での、つまりその時点における実際の均一性を示す指標は、数26で与えられる。ρは1を越えない正の数である。
Figure JPOXMLDOC01-appb-M000026
 また、各メモリモジュール毎の、現在の流量評価値として算出された数13で示されるβを基にして、数27に示すγを計算できる。式中のbはバス幅、cはバスの動作周波数を表すとすれば、γは、1サイクル時間にアクセスされたフリット数を示し、物理帯域を越えるアクセスが発生していない状況下では、1を越えることはない。γは、各メモリモジュールの中で、最も割当量の大きいメモリモジュールにおける、割当量を示す指標と成り得る。
Figure JPOXMLDOC01-appb-M000027
 経路負荷検出部は、ρ及びγの値を基に、フローの割当先のメモリモジュールqを決定する。最も単純な決定方法の例としては、数28の条件式に従えば良い。
Figure JPOXMLDOC01-appb-M000028
 Γth及びΡthは、閾値であり事前に定義された値を用いれば良い。メモリモジュールへのアクセス量が少なく、メモリモジュール間の均一性が殆ど問題にならない低負荷領域では、フローの割当先として最近接メモリモジュールが選択され、最も近接に位置する低レイテンシな(たとえばレイテンシが最低である)メモリモジュールqが選択される。メモリへの割当フローが増加し、メモリモジュール間のアクセスのばらつきが性能に影響を及ぼす中負荷から高負荷の領域では、流量の均一性を重視してメモリモジュールq0が選択される。このように状況に応じて流量の均一性の重みを変更することで、スループットが向上する。
 qを決定する際の他の方法として、プロセッサ毎に自律的にqまたはqを選択させてもよい。下記数29は、変数mのダイナミクスを支配し、式中のηは、ランダムノイズである。数29、数30、数31中のαのダイナミクスは、数32で制御される。δ、Kは定数である。
Figure JPOXMLDOC01-appb-M000029
Figure JPOXMLDOC01-appb-M000030
Figure JPOXMLDOC01-appb-M000031
Figure JPOXMLDOC01-appb-M000032
 割当先のメモリモジュールは、数33の判定式によって決定すれば良い。
Figure JPOXMLDOC01-appb-M000033
 これによって、qとqの選択の切換が、プロセッサ間で自律的かつ段階的に進行するため、利用帯域の無駄がなくなり、スループットが向上する。
 経路負荷検出部101は、該当するタスクに対してq番目のメモリモジュールが割り当てられたことを、プロセッサに通知する。プロセッサ上のタスクはメモリモジュールへのデータ転送パケット送信時の送信先アドレスをq番目のメモリモジュールのアドレスとして認識する。
 図23は、本実施形態にかかるバス制御装置の性能評価をNoCのシミュレータを用いて行った結果を示す。この結果は、数32において、Kγ=Kρ=100、Γth=0.5、Ρth=0.75としたときのαのプロファイルを示している。γ及びρが閉区間[0,1]を動く場合に、αは閉区間[0.5,1.0]の範囲を変動することが分かる。
 図24は、数29において、ηiを閉区間[-0.05, +0.05]の範囲で変動する一様分布に従うランダムノイズとしたときの、m及びmの時間変化を示す。横軸は時間軸を示している。αの変化に従って、mとmの大小関係が変化していることが分かる。数33に従って、mがmより下にある場合にはq0が選択され、mがmより上にある場合にはq1が選択される。常にm、mの符号が負にならないように、ηによって負数に振れたときは、強制的に0とする数値処理が入っている。
 時刻[500,1000]及び時刻[2000,2500]の範囲では、α=1.0に伴い、mがmより大きくなり、均一性による割当先の選択が行われている。一方、時刻[1500,1700]ではこのような変化はなく、レイテンシを重視した最近接割当を維持している。これにより、他のプロセッサの変化によるαの低下によって、最近接割当を継続していることが分かる。
 この方法によれば、全てのプロセッサが一斉に割当先を変更することによって、一部のメモリモジュールにアクセスピークが発生することを回避することが可能となり、過渡時の性能を悪化させることなく、流量の均一性とレイテンシを重視した割当方法の切換動作を徐々に進行させることができる。
 図25は、シミュレーションに用いたNoCの構成を示す図である。5個のプロセッサUP11~UP15、および、3個のメモリモジュールMEM51、MEM53、MEM55が接続された5x5の正方メッシュトポロジーのNoCで構成される。
 プロセッサUPからは、一定サイクル毎に1パケットのデータをメモリモジュールMEMに対して送信するフローを発生させた。パケット長は4フリットに固定である。また各プロセッサUPから20本のフローを発生させ、各フローの発生するデータ量を、1倍フローが5本、10倍フローが5本、100倍フローが10本となるようにした。「10倍フロー」とは、100倍フローが10パケット送信する間に1パケットを送信するフローであり、「1倍フロー」とは10倍フローが10パケット送信する間に1パケットを送信するフローを意味する。1倍フローのパケット送信間隔は、10倍フローの10倍であり、10倍フローのパケット送信間隔は、100倍フローの10倍である。
 またルーティングプロトコルは、XY次元順ルーティングを用い、スイッチングプロトコルは、ワームホールスイッチングとし、ルータの構成は、仮想チャンネル数4、仮想チャンネルサイズ4とした。フローの送信開始のタイミングは数サイクルずつずらし、メッシュネットワーク入り口での輻輳は発生しないように配慮した。図26および図27は、本願発明者らがシミュレーションデータからまとめた、メモリモジュール側でのスループットとレイテンシとの関係を示す。横軸に示すスループットは、各メモリモジュールMEM51、MEM53、MEM55の単独のスループットの総和である。各メモリモジュールの単独のスループットは、シミュレーション時間内に受信したフリット数をシミュレーション時間内の全サイクル数毎で除した値として得られる。シミュレーション中に全くフリットを受信しなかった場合は0であり、絶えずフリットを受信した場合は1となる。また1サイクルおきに1フリットを受信した場合には、0.5となる。
 図25に示す例ではメモリモジュールは3個存在するため、スループットの最大値は3である。縦軸に示すレイテンシは、プロセッサでフリットを生成した時点のタイムスタンプ値とメモリモジュール側でフリットを受信した時点のタイムスタンプ値との差である。1つのパケットを構成する4つのフリットの生成時のタイムスタンプは全て同じ値である。
 図26は、4000サイクルに渡るシミュレーション結果のグラフである。このグラフにより、割当方式の相違による性能を比較することが可能である。「均一割当」を表すラインは、αの値に拘わらず、常にq0を選択しつづけた結果を示している。「選択割当」を表すラインは、αの値によって、q0とq1の選択を行った結果を示す。いずれの場合でも、飽和スループットとして、2.7程度の性能が出ていることが確認できる。このシミュレーションにおける利用可能な物理帯域は3.0であるため、物理帯域の約90%のスループットを利用可能となっている。
 また図27は、同一のシミュレーションにおいて、低負荷領域におけるスループットとレイテンシとの関係に着目した結果を示す。このグラフにより、低負荷領域における割当方式の相違による性能を比較することが可能である。q0とq1を切り換えることにより、常にq0のみを選択した場合と比べ、レイテンシが5サイクル程度向上している。割当時の選択を行ったほうが、低負荷の状態も含めてスループットとレイテンシの特性を改善できていることが分かる。
 上述の実施形態では、NoCのトポロジは2次元メッシュ型であるとしたが、これは一例である。本実施形態によるフロー制御は、他のトポロジであっても適用可能である。他のトポロジとして、たとえば2次元トーラス型のトポロジを採用してもよい。また、バスマスタおよび対応するバス制御装置の組をリング状に配置し、隣接するバス制御装置同士、および、リング上対向するバス制御装置同士をバスで接続するトポロジを採用してもよい。さらに2次元型に限られず、バスマスタおよび対応するバス制御装置をダイスタッキングし、バス制御装置を3次元接続するトポロジを採用してもよい。
 (実施形態4)
 上述の実施形態では、本願発明がチップ上で実装された際の構成を説明した。
 本願発明は、チップ上に実装されるだけでなく、チップ上に実装するための設計及び検証を行うシミュレーションプログラムとしても実施される。そのようなシミュレーションプログラムは、コンピュータによって実行される。本実施形態においては、図14に示される各構成要素は、シミュレーションプログラム上のオブジェクト化されたクラスとして実装される。各クラスは、予め定められたシミュレーションシナリオを読み込むことにより、上述した実施形態の各構成要素に対応する動作をコンピュータ上で実現する。言い換えると、各構成要素に対応する動作は、コンピュータの処理ステップとして直列的または並列的に実行される。
 バスマスタとして実装されたクラスは、シミュレータで定義されたシミュレーションシナリオを読み込むことにより、バス制御装置のクラスにパケットを仮想的に送信するタイミング等の条件を決定する。そして、図13で示される各経路での送信状態をシミュレーションし、実施の形態1、2と同様に送信状態を比較することで、送信経路を決定する動作を行う。
 バスマスタとして実装されたクラスは、シミュレーションシナリオに記述されたシミュレーションの終了条件が成立する迄の間、動作を行い、動作中のスループットやレイテンシ、バスの流量の変動の様子、動作周波数、消費電力の見積値等を算出しプログラムの利用者に提供する。これらに基づき、プログラムの利用者はトポロジーや性能の評価を行い、設計及び検証を行う。
 例えばシミュレーションシナリオの各行には、送信元バスマスタのID、宛先バスマスタのID、送信するパケットのサイズ、送信するタイミング等の情報が記述されるのが普通である。また複数のシミュレーションシナリオをバッチ処理的に評価することで、想定した全てのシナリオで所望の性能が保証できているか否かを効率的に検証できる。またバスのトポロジーやノード数、プロセッサやDSP、メモリ、周辺IOの配置を変化させて性能比較することにより、シミュレーションシナリオに最も適したネットワーク構成を特定することもできる。実施形態1から3のいずれもが本態様の設計及び検証ツールとしても適用可能である。本願発明は、設計及び検証ツールとして実施される際にも適用可能である。
 本発明は、組込機器向けのSoCにおけるオンチップバスや、汎用プロセッサ、DSP上のローカルバスにおける、データ転送経路の制御技術を備えたネットワークバス制御装置、制御方法、制御プログラムに利用可能である。
 101 経路負荷検出部
 102 経路決定部
 103 パケット構成部
 104 データ受信部
 105 ヘッダ解析部
 106 データ出力部
 107 出力監視部

Claims (12)

  1.  バスマスタと、ネットワーク化された通信バスとの間に設けられ、前記通信バスに流れるパケットの送信経路を制御するバス制御装置であって、
     利用可能な複数の送信経路上に存在する複数の他のバス制御装置から、出力状況に関する情報を受信するデータ受信部と、
     前記出力状況に関する情報に基づいて各送信経路の送信流量のばらつきを示す均一化指標を算出する経路負荷検出部と、
     前記均一化指標に基づいて、前記送信流量が調整された複数の送信経路を決定する経路決定部と、
     前記バスマスタから受け取ったデータに基づいてパケットを生成するパケット構成部と、
     各々が異なる通信バスに接続された複数の出力ポートのいずれか一つから前記パケットを出力するデータ出力部と、
     前記複数の出力ポートの中から、前記パケットの送信先の情報に基づいて選択された送信経路の一つに接続されている出力ポートを決定するヘッダ解析部と
     を備えた、バス制御装置。
  2.  前記複数の他のバス制御装置からの要求に従って、前記データ出力部のデータ出力状況に関する情報を通知する出力監視部をさらに備えた、請求項1に記載のバス制御装置。
  3.  前記経路負荷検出部は、出力するフローの優先度毎の転送頻度の平均値を少なくとも含む、前記出力監視部からの出力状況の中で前記平均値を基に均一化指標を算出する、請求項2に記載のバス制御装置。
  4.  前記経路負荷検出部は、出力するフローの優先度毎の転送頻度の平均値および最大値を少なくとも含む、前記出力監視部からの出力状況の中で前記平均値および最大値に基づいて均一化指標を算出する、請求項2に記載のバス制御装置。
  5.  前記経路負荷検出部は均一化指標に含まれる統計多重効果に起因する評価値の信頼度を規定するパラメータを含む、請求項4に記載のバス制御装置。
  6.  前記経路負荷検出部は、前記パケットの転送状況の劣化を検出して、前記信頼度を規定するパラメータを調整し、前記パラメータの調整で転送状況が改善しない場合には、確率的にパラメータを調整する、請求項5に記載のバス制御装置。
  7.  前記出力監視部は、予め定められたタイミングで発行される前記出力状況に関する情報の要求の受信をトリガとして、前記情報を通知する、請求項2に記載のバス制御装置。
  8.  前記経路負荷検出部は、事前に出力状況通知の送信条件を出力監視部に伝達し、
     前記出力監視部には、予め前記出力状況に関する情報の要求が送信される条件が通知されており、前記送信条件が成立した場合には前記情報を通知する、請求項2に記載のバス制御装置。
  9.  前記経路負荷検出部は、前記出力状況に関する情報に対して、前記各送信経路のフローの優先度に応じた重みを加えることにより、前記各送信経路の送信流量に関する評価値を算出し、前記各送信経路の送信流量のばらつきを示す均一化指標を算出する、請求項1に記載のバス制御装置。
  10.  前記経路負荷検出部は、前記各送信経路の送信流量に関する評価値を利用して算出した統計値を、前記均一化指標として算出する、請求項9に記載のバス制御装置。
  11.  前記経路負荷検出部は、前記出力状況に関する情報と選択対象の送信経路のデータ特性に関する情報とに基づいて各送信経路の送信流量のばらつきを示す均一化指標を算出する、請求項1に記載のバス制御装置。
  12.  バスマスタと、ネットワーク化された通信バスとの間に設けられ、前記通信バスに流れるパケットの送信経路を制御するバス制御装置のためのシミュレーションプログラムであって、
     前記シミュレーションプログラムは、コンピュータに対し、
     前記シミュレーションプログラム上のオブジェクト化された複数の他のバス制御装置のクラスであって、利用可能な複数の送信経路上に存在する複数の他のバス制御装置のクラスから、出力状況に関する情報を受信するステップと、
     前記出力状況に関する情報に基づいて各送信経路の送信流量のばらつきを示す均一化指標を算出するステップと、
     前記均一化指標に基づいて、前記送信流量が調整された複数の送信経路を決定するステップと、
     前記バスマスタとして実装されたクラスから受け取ったデータに基づいてパケットを生成するステップと、
     各々が異なる通信バスに接続された複数の出力ポートのいずれか一つから前記パケットを出力するステップと、
     前記複数の出力ポートの中から、前記パケットの送信先の情報に基づいて選択された送信経路の一つに接続されている出力ポートを決定するステップと、
     前記決定された出力ポートから前記パケットを出力するステップと
     を実行させる、バス制御装置のためのシミュレーションプログラム。
PCT/JP2010/004290 2009-07-07 2010-06-29 バス制御装置 WO2011004566A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2011521806A JP4796668B2 (ja) 2009-07-07 2010-06-29 バス制御装置
CN201080018978.0A CN102415059B (zh) 2009-07-07 2010-06-29 总线控制装置
EP20100796880 EP2453612B1 (en) 2009-07-07 2010-06-29 Bus control device
US13/247,163 US8301823B2 (en) 2009-07-07 2011-09-28 Bus controller arranged between a bus master and a networked communication bus in order to control the transmission route of a packet that flows through the communication bus, and simulation program to design such a bus controller

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009-161029 2009-07-07
JP2009161029 2009-07-07
JP2009-234538 2009-10-08
JP2009234538 2009-10-08

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/247,163 Continuation US8301823B2 (en) 2009-07-07 2011-09-28 Bus controller arranged between a bus master and a networked communication bus in order to control the transmission route of a packet that flows through the communication bus, and simulation program to design such a bus controller

Publications (1)

Publication Number Publication Date
WO2011004566A1 true WO2011004566A1 (ja) 2011-01-13

Family

ID=43428997

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/004290 WO2011004566A1 (ja) 2009-07-07 2010-06-29 バス制御装置

Country Status (5)

Country Link
US (1) US8301823B2 (ja)
EP (1) EP2453612B1 (ja)
JP (1) JP4796668B2 (ja)
CN (1) CN102415059B (ja)
WO (1) WO2011004566A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012175480A (ja) * 2011-02-23 2012-09-10 Oki Electric Ind Co Ltd 通信制御装置、通信制御方法、および、通信制御プログラム
JP2013531424A (ja) * 2010-06-01 2013-08-01 ブル・エス・アー・エス 静的な通信リンクを備えるクラスタにおける擬似動的ルーティング方法およびこの方法を実行するコンピュータプログラム
WO2013168427A1 (ja) * 2012-05-11 2013-11-14 パナソニック株式会社 バス制御装置、バス制御システム、およびネットワークインタフェース
JP5834178B2 (ja) * 2012-11-08 2015-12-16 パナソニックIpマネジメント株式会社 半導体回路のバスシステム
JP2016502700A (ja) * 2012-10-18 2016-01-28 クアルコム,インコーポレイテッド プロセッサベースシステムハイブリッドリングバス相互接続、ならびに関連デバイス、プロセッサベースシステム、および方法
JP2017500810A (ja) * 2013-12-19 2017-01-05 ネットスピード システムズ タイミング及び/又は性能を満たすnocチャネルの自動パイプライニング

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9344358B2 (en) * 2012-03-12 2016-05-17 Utah State University Aging-aware routing for NoCs
JP5838365B2 (ja) * 2012-07-24 2016-01-06 パナソニックIpマネジメント株式会社 バスシステムおよび中継器
US8885510B2 (en) 2012-10-09 2014-11-11 Netspeed Systems Heterogeneous channel capacities in an interconnect
GB2507124A (en) * 2012-10-22 2014-04-23 St Microelectronics Grenoble 2 Controlling data transmission rates based on feedback from the data recipient
US9571402B2 (en) * 2013-05-03 2017-02-14 Netspeed Systems Congestion control and QoS in NoC by regulating the injection traffic
US9471726B2 (en) 2013-07-25 2016-10-18 Netspeed Systems System level simulation in network on chip architecture
US9473388B2 (en) 2013-08-07 2016-10-18 Netspeed Systems Supporting multicast in NOC interconnect
US9699079B2 (en) 2013-12-30 2017-07-04 Netspeed Systems Streaming bridge design with host interfaces and network on chip (NoC) layers
US9473415B2 (en) 2014-02-20 2016-10-18 Netspeed Systems QoS in a system with end-to-end flow control and QoS aware buffer allocation
US9742630B2 (en) 2014-09-22 2017-08-22 Netspeed Systems Configurable router for a network on chip (NoC)
US9571341B1 (en) 2014-10-01 2017-02-14 Netspeed Systems Clock gating for system-on-chip elements
US9660942B2 (en) 2015-02-03 2017-05-23 Netspeed Systems Automatic buffer sizing for optimal network-on-chip design
US9444702B1 (en) 2015-02-06 2016-09-13 Netspeed Systems System and method for visualization of NoC performance based on simulation output
US9568970B1 (en) 2015-02-12 2017-02-14 Netspeed Systems, Inc. Hardware and software enabled implementation of power profile management instructions in system on chip
US9928204B2 (en) 2015-02-12 2018-03-27 Netspeed Systems, Inc. Transaction expansion for NoC simulation and NoC design
US10050843B2 (en) 2015-02-18 2018-08-14 Netspeed Systems Generation of network-on-chip layout based on user specified topological constraints
US10348563B2 (en) 2015-02-18 2019-07-09 Netspeed Systems, Inc. System-on-chip (SoC) optimization through transformation and generation of a network-on-chip (NoC) topology
US9864728B2 (en) 2015-05-29 2018-01-09 Netspeed Systems, Inc. Automatic generation of physically aware aggregation/distribution networks
US9825809B2 (en) 2015-05-29 2017-11-21 Netspeed Systems Dynamically configuring store-and-forward channels and cut-through channels in a network-on-chip
US10218580B2 (en) 2015-06-18 2019-02-26 Netspeed Systems Generating physically aware network-on-chip design from a physical system-on-chip specification
US10452124B2 (en) 2016-09-12 2019-10-22 Netspeed Systems, Inc. Systems and methods for facilitating low power on a network-on-chip
US20180159786A1 (en) 2016-12-02 2018-06-07 Netspeed Systems, Inc. Interface virtualization and fast path for network on chip
US10313269B2 (en) 2016-12-26 2019-06-04 Netspeed Systems, Inc. System and method for network on chip construction through machine learning
US10063496B2 (en) 2017-01-10 2018-08-28 Netspeed Systems Inc. Buffer sizing of a NoC through machine learning
US10084725B2 (en) 2017-01-11 2018-09-25 Netspeed Systems, Inc. Extracting features from a NoC for machine learning construction
US10469337B2 (en) 2017-02-01 2019-11-05 Netspeed Systems, Inc. Cost management against requirements for the generation of a NoC
US10298485B2 (en) 2017-02-06 2019-05-21 Netspeed Systems, Inc. Systems and methods for NoC construction
US10983910B2 (en) 2018-02-22 2021-04-20 Netspeed Systems, Inc. Bandwidth weighting mechanism based network-on-chip (NoC) configuration
US11144457B2 (en) 2018-02-22 2021-10-12 Netspeed Systems, Inc. Enhanced page locality in network-on-chip (NoC) architectures
US10547514B2 (en) 2018-02-22 2020-01-28 Netspeed Systems, Inc. Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US10896476B2 (en) 2018-02-22 2021-01-19 Netspeed Systems, Inc. Repository of integration description of hardware intellectual property for NoC construction and SoC integration
US11176302B2 (en) 2018-02-23 2021-11-16 Netspeed Systems, Inc. System on chip (SoC) builder
US11023377B2 (en) 2018-02-23 2021-06-01 Netspeed Systems, Inc. Application mapping on hardened network-on-chip (NoC) of field-programmable gate array (FPGA)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0936893A (ja) * 1995-07-13 1997-02-07 Internatl Business Mach Corp <Ibm> 経路決定方法
JP2002247087A (ja) * 2001-02-15 2002-08-30 Nippon Telegr & Teleph Corp <Ntt> Ipネットワーク負荷分散方法、ipネットワーク、ipルーティング装置及びルートサーバ装置
JP3816531B2 (ja) 1996-02-22 2006-08-30 富士通株式会社 非同期パケット交換
JP2007074074A (ja) * 2005-09-05 2007-03-22 Nippon Telegr & Teleph Corp <Ntt> トラヒック分散制御装置、パケット通信ネットワークおよびプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6510135B1 (en) * 1998-12-18 2003-01-21 Nortel Networks Limited Flow-level demultiplexing within routers
JP2002305541A (ja) 2001-04-04 2002-10-18 Kddi Research & Development Laboratories Inc メッシュ網におけるロードバランシング方法
US7561526B2 (en) * 2002-12-17 2009-07-14 Nortel Networks Limited Communication network route determination
EP2041661B1 (en) 2006-07-05 2014-02-12 Synopsys, Inc. Electronic device, system on chip and method for monitoring a data flow
JP2008293487A (ja) * 2007-04-27 2008-12-04 Panasonic Corp プロセッサシステム、バス制御方法および半導体装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0936893A (ja) * 1995-07-13 1997-02-07 Internatl Business Mach Corp <Ibm> 経路決定方法
JP3816531B2 (ja) 1996-02-22 2006-08-30 富士通株式会社 非同期パケット交換
JP2002247087A (ja) * 2001-02-15 2002-08-30 Nippon Telegr & Teleph Corp <Ntt> Ipネットワーク負荷分散方法、ipネットワーク、ipルーティング装置及びルートサーバ装置
JP2007074074A (ja) * 2005-09-05 2007-03-22 Nippon Telegr & Teleph Corp <Ntt> トラヒック分散制御装置、パケット通信ネットワークおよびプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
See also references of EP2453612A4
SHINGO WAKITA: "Delay Reduction Algorithm by Balancing Distribution of Traffic for Odd-Even Turn Model in NoC", IEICE TECHNICAL REPORT, vol. 108, no. 478, 4 March 2009 (2009-03-04), pages 153 - 158 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013531424A (ja) * 2010-06-01 2013-08-01 ブル・エス・アー・エス 静的な通信リンクを備えるクラスタにおける擬似動的ルーティング方法およびこの方法を実行するコンピュータプログラム
JP2012175480A (ja) * 2011-02-23 2012-09-10 Oki Electric Ind Co Ltd 通信制御装置、通信制御方法、および、通信制御プログラム
WO2013168427A1 (ja) * 2012-05-11 2013-11-14 パナソニック株式会社 バス制御装置、バス制御システム、およびネットワークインタフェース
JPWO2013168427A1 (ja) * 2012-05-11 2016-01-07 パナソニックIpマネジメント株式会社 バス制御システム、およびネットワークインタフェース
US9678905B2 (en) 2012-05-11 2017-06-13 Panasonic Intellectual Property Management Co., Ltd. Bus controller, bus control system and network interface
JP2016502700A (ja) * 2012-10-18 2016-01-28 クアルコム,インコーポレイテッド プロセッサベースシステムハイブリッドリングバス相互接続、ならびに関連デバイス、プロセッサベースシステム、および方法
JP5834178B2 (ja) * 2012-11-08 2015-12-16 パナソニックIpマネジメント株式会社 半導体回路のバスシステム
JP2017500810A (ja) * 2013-12-19 2017-01-05 ネットスピード システムズ タイミング及び/又は性能を満たすnocチャネルの自動パイプライニング

Also Published As

Publication number Publication date
EP2453612A1 (en) 2012-05-16
CN102415059B (zh) 2014-10-08
EP2453612A4 (en) 2013-03-06
CN102415059A (zh) 2012-04-11
US8301823B2 (en) 2012-10-30
JP4796668B2 (ja) 2011-10-19
JPWO2011004566A1 (ja) 2012-12-20
US20120079147A1 (en) 2012-03-29
EP2453612B1 (en) 2014-12-03

Similar Documents

Publication Publication Date Title
JP4796668B2 (ja) バス制御装置
US10129043B2 (en) Apparatus and method for network flow scheduling
US8670310B2 (en) Dynamic balancing priority queue assignments for quality-of-service network flows
US9571402B2 (en) Congestion control and QoS in NoC by regulating the injection traffic
CN107231662B (zh) 一种sdn网络中多流传输的方法和设备
TWI389475B (zh) 光纖通道傳輸之動態負載平衡
EP2720422A1 (en) Queue monitoring to filter the trend for enhanced buffer management and dynamic queue threshold in 4G IP network/equipment for better traffic performance
US7929440B2 (en) Systems and methods for capacity planning using classified traffic
Deng et al. An application-aware QoS routing algorithm for SDN-based IoT networking
Guz et al. Efficient link capacity and QoS design for network-on-chip
CN106341346A (zh) 基于SDN的数据中心网络中一种保障QoS的路由算法
US20110261688A1 (en) Priority Queue Level Optimization for a Network Flow
US9436642B2 (en) Bus system for semiconductor circuit
CN114286413A (zh) Tsn网络联合路由选择与流分配方法及相关设备
US11863322B2 (en) Communication method and apparatus
CN109274589B (zh) 业务传输的方法和装置
KR20170033179A (ko) 소프트웨어 정의 네트워크 기반 가상 네트워크 사용 대역폭 관리 방법 및 가상 네트워크 관리장치
Kesselman et al. Game-theoretic analysis of internet switching with selfish users
CN111817985A (zh) 业务处理方法及装置
KR101311572B1 (ko) 가상 네트워크에서 사전 지식없이 승인을 제어하고 데이터 플로우에 리소스를 할당하기 위한 방법
CN112714081B (zh) 一种数据处理方法及其装置
Guo et al. TDM based optical bypass for intra-rack elephant flow with a DPDK based online timeslot allocator
Okafor et al. Synthesis VLAN Approach to Congestion Management in DataCenter Ethernet Networks
Sedaghat et al. R2T-DSDN: reliable real-time distributed controller-based SDN
Varyani et al. Fair Share of Latency in Inter-Data-Center Backbone Networks

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080018978.0

Country of ref document: CN

DPE2 Request for preliminary examination filed before expiration of 19th month from priority date (pct application filed from 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10796880

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2011521806

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2010796880

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE