WO2013046607A1 - 制御装置 - Google Patents

制御装置 Download PDF

Info

Publication number
WO2013046607A1
WO2013046607A1 PCT/JP2012/005984 JP2012005984W WO2013046607A1 WO 2013046607 A1 WO2013046607 A1 WO 2013046607A1 JP 2012005984 W JP2012005984 W JP 2012005984W WO 2013046607 A1 WO2013046607 A1 WO 2013046607A1
Authority
WO
WIPO (PCT)
Prior art keywords
transmission
initiator
intermittent
information
control device
Prior art date
Application number
PCT/JP2012/005984
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 JP2013535881A priority Critical patent/JP6179812B2/ja
Publication of WO2013046607A1 publication Critical patent/WO2013046607A1/ja
Priority to US13/952,097 priority patent/US9189013B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/372Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a time-dependent priority, e.g. individually loaded time counters or time slot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Definitions

  • the present application relates to an apparatus, a method, and a program for controlling a communication bus in a semiconductor chip including a networked communication bus.
  • NoC network-on-chip
  • SoC System on Chip
  • FIG. 1 shows an example of a general connection configuration in which NoC is applied to the main bus between the initiators I1 to I4 and the targets T1 to T4.
  • the initiator include a DSP (Digital Signal Processor), a CPU (Central Processing Unit), and a DMAC (Direct Memory Access Controller).
  • the target is, for example, a memory controller connected to an external DRAM, an SRAM, or a buffer memory for input / output with the outside.
  • the initiator and the target are connected to each other through a network bus composed of NoC routers R1 to R4 via NIC1 to NIC8, which are network interface controllers (NICs). .
  • NIC network interface controllers
  • all data exchange on the bus is performed in packet units.
  • the NIC has a function of packetizing and depacketizing transaction data transmitted and received by the initiator and the target.
  • the links L1 to L8 connecting the routers are shared when packets are transmitted from the plurality of initiators I1 to I4 to the targets T1 to T4.
  • FIG. 2 shows a configuration example of the packet 100.
  • the packet is composed of a packet header in which transaction data and a memory address to be read / written are stored.
  • FIG. 3 shows a packet 100 composed of a plurality of flits 101.
  • a flit including the head portion of the packet is called a “header flit”.
  • the data width W of the flit 101 is usually the bit width of the signal line connecting the routers.
  • the links L1 to L8 connecting the routers are shared by a plurality of initiators accessing the target.
  • Performance guarantees include rate and latency guarantees.
  • the rate guarantee means that an acquisition bandwidth of 100% is given to the requested bandwidth of the initiator per unit time.
  • Latency guarantee is the initiator with the shortest allowable latency, the latency at the time of actual access (the time from when the initiator issues a request transaction on the bus to when the request is processed at the target and a reply transaction is received for it) ) Is less than the allowable latency.
  • FIG. 4 shows a communication form between the initiator and the target.
  • initiator A and target B are in a communication relationship.
  • the number of cycles required for a request transaction (for example, a memory access request) issued by the initiator to arrive at the target B is X cycles.
  • the number of cycles required for a reply transaction issued by the target B (for example, reply of a memory read result or the like) to arrive at the initiator A is Y cycles.
  • the latency allowable by the initiator A is within S cycles, the condition for guaranteeing the latency is to satisfy the relationship of the following formula (1).
  • S ⁇ X + Y (Equation 1)
  • Patent Document 1 discloses a method of estimating a peak bandwidth to be guaranteed for each initiator sharing a bus, and designing the bus operating frequency by adding the values to all initiators.
  • Patent Document 2 discloses a method for guaranteeing transmission performance by controlling transmission timing on the initiator side.
  • One non-limiting exemplary embodiment of the present application provides a control device that guarantees transmission performance while suppressing the operating frequency of the bus.
  • a control device is used in a system in which an initiator and a target are connected by a distributed bus, and controls transmission timing of an access request received from the initiator via the bus. To do.
  • the control device stores intermittent period information generated using system configuration information related to the configuration of the system and flow configuration information indicating specifications required for access from each initiator to the target in units of flows.
  • the transmission interval By controlling the transmission interval based on the transmission / reception characteristics of each initiator in a distributed communication bus in which multiple initiators and targets are connected, the data interference between the initiators is limited, and the rate guarantee and latency of each initiator are reduced. In addition to guaranteeing, it is possible to operate the bus at a low bus operating frequency. This enables application to various real-time uses including bus AV signal processing. In addition, since the operating frequency can be reduced, it is possible to save resources such as a mounting area.
  • FIG. 2 is a diagram illustrating a packet 100 including a plurality of flits 101.
  • FIG. 2 is a diagram illustrating the communication form between an initiator and a target.
  • FIG. 2 is a diagram showing a state of time fluctuation of request bands of initiators I1 to I4 shown in FIG.
  • FIG. 3 is a diagram illustrating a state where initiators A to C and a target memory are connected by a bus.
  • FIG. 10 is a diagram illustrating a timing t1 at which the initiators I1 to I4 simultaneously transmit packets to the target T1 with the maximum packet sizes N1 to N4. It is a figure which shows the mode of arrival of each packet which goes to the target T1. It is a figure which shows the timing when the flit produced
  • FIG. 2 is a diagram illustrating a basic configuration of a NIC 130 on an initiator (processor) side.
  • FIG. It is a figure which shows the example of system configuration information. It is a figure which shows the example of flow structure information. It is a figure which shows the flow which requires the performance guarantee regarding the memory T1 extracted from FIG.
  • FIG. 4 is a diagram showing flow configuration information of initiators I1 to I3 destined for a memory T2. It is a figure which shows the processing flow of the intermittent information generation part. It is a figure which shows the structural example of the management table of NIC1 connected to the processor I1.
  • FIG. 6 is a diagram illustrating a processing flow of a transmission interval determination unit 134. It is a figure which shows the modification of Embodiment 1. FIG. It is a figure which shows the example using the increment type counter.
  • FIG. 6 is a system configuration diagram of an exemplary embodiment 2. It is a figure which shows the flow structure information of port I1. It is a figure which shows the result of having extracted only the flow which makes a destination I3. It is a figure which shows the example of the management table of NIC1 connected to port I1. It is a figure which shows the timing of access in the flow 11 addressed to the memory T1 of the processor I1. It is a figure which shows the example of a management table. It is a figure which shows how the transmission interval of the flow 11 is controlled. It is a figure which shows the processing flow of the transmission interval determination part 134 concerning illustrative Embodiment 3. FIG.
  • Patent Document 1 When the bandwidth design of the bus is performed using the method of the above-mentioned Patent Document 1, the bus operating frequency required for guaranteeing the transmission performance is increased, the power consumption is increased, the design is difficult, and the bus is designed. Bandwidth utilization is low. When a general initiator is considered, the required bandwidth is not always constant in time due to the internal processing and the relationship with other initiators, and varies between the maximum required bandwidth and the minimum required bandwidth. In order to guarantee performance with all such time-varying initiators, Patent Document 1 estimates the peak bandwidth to be guaranteed for each initiator sharing the bus, and adds that value to all initiators. Design the operating frequency of the bus. Peak bandwidth was reserved on the bus for all initiators. As a result, the conditions for rate guarantee and latency guarantee are satisfied.
  • FIG. 5 shows how the required bandwidths of the initiators I1 to I4 shown in FIG. 1 vary over time.
  • the horizontal axis t indicates the bus clock cycle
  • the vertical axis r indicates the required bandwidth
  • p indicates the maximum required bandwidth
  • a indicates the average required bandwidth.
  • FIG. 6 shows the design process of the bus band.
  • FIG. 7 shows a state where the initiators A to C and the target memory are connected by a bus. Each initiator issues a memory access request on the bus according to the interval setting while referring to the attribute table for adjusting the transmission interval.
  • the attribute table the memory address to be accessed, the size of data, and the number of delay cycles until the next access is performed are set by the upper processor (not shown) at the time of DMA transfer setup.
  • FIG. 8 shows how the request bandwidths of the memory access requests of initiator A and initiator B change over time.
  • the transmission interval control whereby p1 and p2 are reduced as compared with FIG. 5, and the bus operating frequency is also reduced.
  • the transmission interval is delayed by the number of delay cycles in the attribute table. Therefore, there is a delay between the timing when the initiator tries to issue an access request and the timing when access is actually started on the bus, and the transmission timing is not adjusted with other initiators. Therefore, a delay due to interference occurs between accesses issued simultaneously on the bus.
  • FIG. 9 shows access interference occurring between initiators. Due to these factors, the technique disclosed in Patent Document 2 cannot maintain the latency that the initiator A can tolerate and cannot guarantee the latency.
  • a control device is a control device that is used in a system in which an initiator and a target are connected by a distributed bus, and controls transmission timing of an access request received from the initiator via the bus.
  • Intermittent information for storing intermittent period information generated using system configuration information related to the configuration of the system and flow configuration information indicating specifications required for access from each initiator to the target in units of flows.
  • the storage unit acquires a clock signal driven at a bus operating frequency that can guarantee the real-time performance of each initiator generated by using the system configuration information and the flow configuration information, and packetizes data input from the initiator.
  • the intermittent information storage unit indicates the number of bus cycles required for the target to finish receiving all the data when all the initiators transmit simultaneously with the maximum data length that can be transmitted simultaneously by each initiator. Store as a cycle.
  • the intermittent information storage unit stores a maximum latency required for packet transmission / reception calculated using at least the intermittent period, and the maximum latency is under a condition that does not exceed an allowable latency of an initiator having a minimum allowable latency.
  • the specified minimum bus operating frequency is stored as the bus operating frequency.
  • the transmission interval determining unit determines a transmission permission issuance time for the transmission request so that the intermittent period becomes a minimum transmission interval of continuous packets.
  • the transmission interval determination unit limits the number of transmissions within a rate guarantee period that is predetermined as a specification of the system to a predetermined number of times or less.
  • the transmission interval determination unit determines the transmission interval of successive packets so as to approach an average access interval that is predetermined as the specification of the system.
  • the intermittent information storage unit stores the intermittent period calculated based on the packet size of each initiator for each target and initiator to be transmitted.
  • the intermittent information storage unit stores an intermittent period calculated for each target to be transmitted.
  • a control apparatus is used in a system in which an initiator and a target are connected by a distributed bus, and controls the transmission timing of an access request received from the initiator via the bus.
  • An intermittent period that can limit interference between packets from system configuration information related to the configuration of the system and flow configuration information indicating specifications required for access from each initiator to the target in units of flows.
  • Information and an intermittent information generation unit for generating intermittent information including information on the bus operating frequency indicating the minimum bus operating frequency that can guarantee the real-time performance of each initiator, and clock generation for generating a clock according to the information on the bus operating frequency And the above-mentioned clock, and the input data is packetized
  • a transmission unit that records the transmission time of the input data, and the transmission time of the transmission request for the transmission request from the intermittent period, the detection time of the transmission request from the initiator, and the previous transmission time.
  • a transmission interval determination unit for determining.
  • the intermittent information generation unit determines the number of bus cycles required for the target to finish receiving all data as the intermittent period when all initiators transmit simultaneously with the maximum data length that can be transmitted simultaneously by each initiator. calculate.
  • the intermittent information generation unit calculates the maximum latency required for packet transmission / reception using at least the intermittent period, and is specified under a condition that the maximum latency does not exceed the allowable latency of the initiator having the smallest allowable latency.
  • the minimum bus operating frequency is determined as the bus operating frequency.
  • the transmission interval determining unit determines a transmission permission issuance time for the transmission request so that the intermittent period becomes a minimum transmission interval of continuous packets.
  • the transmission interval determination unit limits the number of transmissions within a rate guarantee period that is predetermined as a specification of the system to a predetermined number of times or less.
  • the transmission interval determination unit determines the transmission interval of successive packets so as to approach an average access interval that is predetermined as the specification of the system.
  • the intermittent information generation unit calculates the intermittent period based on the packet size of each initiator for each target and initiator to be transmitted.
  • the intermittent information generation unit calculates an intermittent period for each target to be transmitted.
  • the communication unit of the control device uses a counter value that counts the cycle of the clock signal in the system as the transmission time of the data input from the initiator.
  • the communication unit of the control device includes a counter that counts a cycle of a clock signal in the system, initializes the counter at a transmission time of data input from an initiator, and the counter value Is transmitted to the transmission interval determination unit as the elapsed time information, and the transmission interval determination unit determines that the elapsed time information has reached the intermittent period information or a predetermined count value, and transmits a transmission request from the initiator. Issue permission.
  • the transmission interval determination unit when the initiator continuously transmits access requests to the target, the transmission interval determination unit has a cycle indicated by the intermittent cycle information, The access request is transmitted to the target at regular intervals.
  • a method is a system design method for determining a bus frequency of a system in which an initiator and a target are connected by a distributed bus, the system relating to the configuration of the system prepared in advance.
  • a step of generating an intermittent period capable of limiting interference between packets from the configuration information and the flow configuration information indicating specifications required for access to the target from each initiator in units of flow, and at least based on the intermittent period The step of calculating the maximum latency required for packet transmission and reception and the step of determining the bus operating frequency that becomes the minimum under the condition that the maximum latency does not exceed the allowable latency of the initiator having the smallest allowable latency.
  • the control device is used in a system in which an initiator and a target are connected by a distributed bus, and controls the transmission timing of an access request received from the initiator via the bus.
  • This control device includes an intermittent information generation unit or an intermittent information storage unit, a clock generation unit, a communication unit, and a transmission interval determination unit.
  • the intermittent information generation unit generates intermittent information from the system configuration information related to the system configuration and the flow configuration information indicating the specifications required for accessing the target from each initiator in units of flows.
  • the intermittent information includes information on an intermittent period capable of limiting interference between packets and information on a bus operating frequency indicating a minimum bus operating frequency capable of guaranteeing real-time performance of each initiator.
  • the intermittent information storage unit stores intermittent information generated by a system designer, for example.
  • the clock generator generates a clock according to the bus operating frequency information.
  • the communication unit operates with a clock, packetizes the input data and transmits it, and records the transmission time of the input data.
  • the transmission interval determination unit determines a transmission permission issuance time for the transmission request from the intermittent period, the detection time of the transmission request from the initiator, and the previous transmission time.
  • FIG. 10 shows timing t1 when the initiators I1 to I4 simultaneously transmit packets to the target T1 with the maximum packet sizes N1 to N4.
  • FIG. 11 shows a state of arrival of each packet toward the target T1. If there is no interfering packet other than the packets transmitted simultaneously by the initiators I1 to I4, all packets arrive during the P cycle.
  • FIG. 11 shows the timing when a subsequent packet requested by each initiator is transmitted while maintaining a transmission interval of P cycles or more.
  • FIG. 12 shows how each packet arrives at the target T1. From FIG. 12, if each initiator transmits a packet at a transmission interval of P cycles or more, the first and second simultaneous transmission packets will not interfere with each other, so the latency due to interference may be limited to P cycles or less. it can.
  • the bus is driven at the minimum bus operating frequency that can maintain the allowable latency S required by the initiator I1.
  • FIG. 13 shows the effect of reducing the operating frequency.
  • the maximum required bandwidth is reduced. This is because there is no packet issued at a cycle interval shorter than the P cycle.
  • a rectangle indicated by a solid line in FIG. 13 indicates a requested bandwidth of each initiator when the transmission interval control according to the present disclosure is performed.
  • a rectangle indicated by a broken line is provided for comparison with FIG.
  • the delay amount in the time direction is determined so as to satisfy the allowable latency constraint of the initiator I1, there is no influence on the real-time property of each initiator.
  • the sum of the areas of the solid and dashed rectangles corresponding to each initiator indicates the amount of data transmitted by the initiator, and the areas of both are equal. In the present disclosure, as described above, it is possible to guarantee the transmission performance of each initiator and determine the minimum required bus operating frequency.
  • Embodiments 1 to 3 of the control device according to the present disclosure will be described respectively.
  • FIG. 1 shows an example of a general connection configuration in which NoC is applied to the main bus between the initiators I1 to I4 and the targets T1 to T4.
  • This configuration can also be adopted in the present embodiment and the embodiments described later.
  • each initiator I1, I2, I3, and I4 is described as a processor that executes real-time processing
  • each target T1, T2, T3, and T4 is described as a memory controller.
  • this is an example. The present disclosure is not limited to this.
  • the initiator can be anything as long as it operates as a bus master.
  • an initiator is a DSP (Digital Signal Processor), a CPU (Central Processing Unit), an ASIC (Application Specific IC), a DMAC (Direct Memory Access Controller), and a port connected to various devices.
  • DSP Digital Signal Processor
  • CPU Central Processing Unit
  • ASIC Application Specific IC
  • DMAC Direct Memory Access Controller
  • the target may be anything as long as it operates as a bus slave.
  • the target is a DRAM controller connected to an external DRAM, an SRAM, an input / output buffer memory, and an input / output port connected to various devices.
  • the processors I1, I2, I3, and I4 perform access request transactions for the memories T1, T2, T3, and T4 according to the program being executed and the allocation defined in the memory map. In this specification, attention is paid to access to the target T1 for the sake of simplicity.
  • the processors I1 to I4 realize the performance guarantee of the operation program that requires the performance guarantee executed on the processor. Therefore, the processors I1 to I4 attempt to issue access request transactions to the NIC1 to NIC4 in order to read data from the memory T1 and write data to the memory T1 at appropriate timing.
  • the maximum size of data required for one access to the memory T1 by each of the processors I1, I2, I3, and I4 is N1, N2, N3, and N4, respectively.
  • the unit is byte.
  • A1 to A4 and S1 to S4 have time units, but the bus operating frequency is F (Hz) and can be converted into bus cycle units by the following equations (3) and (4).
  • Ai ′ F ⁇ Ai (cycle) (Equation 3)
  • Si ′ F ⁇ Si (cycle) (Equation 4)
  • NIC1 to NIC4 on the initiator side and NIC5 to NIC8 on the target side are coupled to each other through routers R1 to R4 connected in a topology called a butterfly network so that they can communicate with each other.
  • the topology of the router network may be a mesh network, a tree network, a ring network, a star network, a torus network, or these networks extended in three dimensions.
  • the NIC1 to NIC8 are connected, for example, by bus protocol processing to which connected initiators and targets interface, packetizing processing (packetizing processing) and depacketizing processing (depacketizing processing) for transmitting and receiving data to and from the communication destination NIC.
  • packetizing processing packetizing processing
  • depacketizing processing depacketizing processing
  • a flitizing process friting process
  • defritizing process defriting process
  • N the number of cycles consumed by the NIC is represented by N.
  • the routers R1 to R4 perform buffer management processing for transmitting / receiving flited data to / from connected NICs or adjacent routers, switching processing for output ports, and the like. Since these processes generally require a fixed number of processing cycles, R represents the number of cycles consumed by the router.
  • Equation 5 is a calculation example when there are two stages of routers on the route.
  • each target is accessed for each initiator by including each number in the system configuration information. In this case, it is possible to calculate a fixed latency value.
  • the bus operating frequency F cannot be estimated quantitatively, and the real-time property required by the processor cannot be guaranteed.
  • the total latency V can be quantified, and the minimum bus operating frequency F at which the system operates can be designed. Then, by dynamically controlling the processor's access transaction issuance interval, specifying the maximum value of the fluctuation latency V due to waiting, and driving the bus at the operating frequency according to Equation 7, design of a bus bandwidth that is not wasted And achieve power saving.
  • FIG. 10 shows a case where the processors I1 to I4 in FIG. 1 simultaneously issue a request transaction 1 with the maximum size Ni to the same memory T1. At this time, the requested transactions issued by I1 to I4 are queued on the bus. For example, FIG. 11 shows a situation where the memory T1 is reached.
  • Equation 8 is a value representing the number of cycles consumed by the data transmitted simultaneously by the processor Ii. Therefore, if the processor Ii generates z transactions at the same time, the value on the right side of Equation 8 is also multiplied by z. .
  • FIG. 14 shows the timing when each processor Ii issues the request transaction 1 and the request transaction 2 with an interval of the number of cycles P.
  • FIG. 12 shows the timing at which the flits generated from these transactions are received by the memory T1.
  • Four request transactions 1 issued simultaneously by I1 to I4 at time t1 are received by the memory T1 in the order of the processors I2, I3, I4, and I1, and subsequently issued at time t2 with an interval P cycle.
  • Request transaction 2 is received by memory T1 in the order of processors I2, I4, I3, and I1.
  • the transactions issued at time t1 and the transactions issued at time t2 are queued according to the order received by the memory T1, and the latency Z when viewed from each processor varies. However, the fluctuation amount V is at most P.
  • FIG. 15 shows a basic configuration of the NIC 130 on the initiator (processor) side.
  • the NIC 130 is, for example, the NICs 1 to 4 in FIG.
  • the NIC 130 may be referred to as a “transmission interval control device” or a “control device”.
  • control device 130 in the present embodiment will be described.
  • the control device 130 includes an intermittent information generation unit 131, a clock generation unit 132, a communication unit 133, and a transmission interval determination unit 134.
  • the intermittent information generation unit 131 includes intermittent period information P that can limit interference between packets based on the system configuration information and the flow configuration information of the processors I1 to I4, and allowable latencies S1 to S4 to be protected by the processors I1 to I4.
  • the minimum bus operating frequency F that can guarantee the real-time performance specified in (1) is determined.
  • the clock generator 132 generates the bus operating frequency according to the minimum frequency F.
  • the communication unit 133 operates using the operating frequency F as a bus clock, outputs the input request transaction as a transmission packet, and records the transmission time of the previous request transaction.
  • the transmission interval determination unit 134 determines the transmission permission issue time for the transmission request from the intermittent period information P, the transmission request detection time, and the immediately preceding transmission time.
  • the intermittent information generation unit determines intermittent information based on system configuration information and flow configuration information defined in advance.
  • the intermittent information includes intermittent period information P that can limit interference between packets and a minimum bus operating frequency F that can guarantee the real-time performance of the processor.
  • the system configuration information is information relating to the configuration of a system configured by an initiator, a bus, a relay device, a router, and a target, for example, as shown in FIG. FIG. 16 shows an example of system configuration information.
  • the bus width W is the bus width of each link of NoC, and its unit is byte. Since a W-byte data signal can be transmitted in one cycle, W is equivalent to the frit size.
  • the processing delay of the NIC and the router is a fixed number of processing cycles consumed in processing such as packet transfer inside the NIC and the router.
  • the packet header size is generally preferably a multiple of W because the processing of the NIC and router is easier when the packet header and payload are separated in units of flits.
  • the initial value F0 of the bus operating frequency is an initial value when determining the minimum bus operating frequency for driving the bus.
  • the flow configuration information is information obtained by separating specifications required for access to a target (for example, memory) for each initiator (for example, processor) in units of processing (flow) such as task and memory allocation.
  • FIG. 17 shows an example of flow configuration information.
  • two flows are defined for each of the processors I1 to I4 that are initiators.
  • the processor I1 has a virtualization function, two types of OSs operate on each virtual machine, and access requested by each OS is managed by the flow IDs 11 and 12.
  • the flow IDs 21 and 22 correspond to them. It's okay.
  • the necessity of performance guarantee indicating the characteristics of the flow the node ID of the memory that is the access destination, the maximum size of the access transaction (in bytes), Specifications such as an average access interval (unit: sec), an allowable latency value (unit: sec), which is a time constraint for real-time processing, and a rate guarantee period (unit: sec) are defined.
  • the processor I4 is an example of a processor that does not perform real-time processing that does not require a performance guarantee, and an average access interval, an allowable latency, and the like are not defined.
  • An example of such a processor is a processor responsible for processing such as transferring a file on the back end.
  • the processors whose performance is to be guaranteed are I1 to I3, and there are six flows with flow IDs 11 to 32.
  • FIG. 18 shows a flow that requires performance guarantee related to the memory T1 extracted from FIG.
  • the intermittent interval P1 that can limit the interference of packets between the processors with respect to the memory T1 is obtained by the following equation 11 from the above equations 8 and 9.
  • FIG. 19 shows the flow configuration information of the initiators I1 to I3 destined for the memory T2.
  • the intermittent interval P2 with respect to the memory T2 is also obtained by the following formula 12 using FIG. 19 as in the case of P1.
  • the minimum bus operating frequency F (Hz) must be a value that can guarantee the rate and the latency for all the flows that require the performance guarantee for the memory T1 and the memory T2. For this reason, the intermittent information generation unit 131 uses F0 as an initial value of the frequency search for obtaining the minimum bus operating frequency F, and uses the frequency F1 and the memory T2 that can guarantee the performance for the flow related to the memory T1. A frequency F2 that can guarantee the performance for the associated flow is obtained. The larger value of the frequencies F1 and F2 is set as the bus operating frequency F. As a result, it is possible to guarantee performance in the flow related to all memories.
  • a method in which the intermittent information generation unit 131 obtains the minimum operating frequency F1 for the memory T1 will be described.
  • a performance-guaranteed flow destined for the memory T1 may be suspended for transmission for a maximum of P1 cycles. This is because the transmission interval determination unit 134 limits interference with subsequent access packets. Even if transmission is held for a maximum of P1 cycles, access to the average rate is possible, and the necessary condition for the flow 11 to keep the allowable latency is given by the following equation (13).
  • C1 in the equation is a fixed latency calculated by the above-mentioned formula 5.
  • the maximum amount of latency generated by interfering with the packet addressed to the memory T1 transmitted from the NIC1 and simultaneously transmitted from another processor after the requested transaction in the flow 11 is held for P1 cycles at the maximum is several 10 More P1 cycle. Therefore, in order for the access transaction belonging to the flow 11 to satisfy the allowable latency S1 requested by the processor I1, it is a necessary condition that the following relationship 14 holds.
  • the intermittent information generation unit 131 determines the minimum bus operating frequencies F21 and F31 that can guarantee the performance for all the remaining flows 21 and 31 destined for the memory T1. Equation 16 below obtains the minimum bus operating frequency F1 that can guarantee the performance in all flows destined for the memory T1.
  • the frequency F2 can be obtained.
  • the minimum bus operating frequency F of the system is determined by the following equation (17).
  • the determined frequency F is output to the clock generation unit 132 as the minimum frequency.
  • the rate guarantee period g1 of the processor I1 can be converted to a cycle-unit value G1 by multiplying by F.
  • the average access count M1 for the memory T1 in the G1 cycle is g1 / A11.
  • the average access count M2 for the memory T2 is g1 / A12.
  • the intermittent information generation unit 131 calculates the rate guarantee period value G1 and the average access count values M1 and M2 for all destination memories, and notifies the transmission interval determination unit 134 as rate management information. As is apparent from this description, the intermittent information generation unit 131 calculates rate management information after the minimum bus operating frequency F is obtained. Therefore, it can be said that the rate management information is information obtained as a secondary. In FIG. 15, the broken line indicates that the rate management information is information obtained as a secondary.
  • FIG. 20 shows a processing flow of the intermittent information generation unit 131.
  • FIG. 20 shows the procedure of the above-described processing. A description of the individual steps will be omitted.
  • the clock generation unit 132 generates a clock signal having the frequency of the minimum frequency value F (Hz) determined by the intermittent information generation unit 131.
  • the clock signal is supplied as an operation clock for bus components such as a NIC and a router through a clock wiring such as a clock tree on the chip.
  • the communication unit 133 receives a request transaction as transmission data from a bus interfaced with the processor side, configures it as a request packet by packetization processing, and transmits it as a request packet to the bus interfaced with the router side.
  • the communication unit 133 notifies the transmission interval determination unit 134 of the time when the leading flit of the request packet is transmitted to the router side and the destination memory as transmission time information.
  • the transmission interval determination unit 134 holds the intermittent period information and rate management information notified from the intermittent information generation unit 131 and the transmission time information for each destination notified from the communication unit 133 in the management table.
  • the management table is recorded, for example, in a built-in memory (not shown) of the transmission interval determination unit 134.
  • the transmission interval determining unit 134 controls the transmission interval by controlling the timing of accepting the request transaction from the processor.
  • FIG. 21 shows a configuration example of the management table of NIC1 connected to the processor I1.
  • the processor I1 two memories, ie, a memory T1 for the flow 11 and a memory T2 for the flow 12 are used as access destination memories.
  • next transmission time information D1 which is information on the time at which the currently pending request transaction is to be transmitted, is stored by controlling the transmission interval.
  • the transmission time information J1 and the next transmission time information D1 may use a system clock that counts the operating frequency F (Hz) of the bus.
  • F operating frequency
  • the unit of time of the transmission time information J1 and the next transmission time information D1 is It becomes a cycle. That is, the transmission interval is determined by using a counter value that counts the period of the clock signal in the system as the transmission time of the data input from the initiator.
  • FIG. 22 shows a state where the NIC 1 accepts an access transaction with an average access count M1 or less requested from the processor I1.
  • the rate guarantee period starts from time t0, and M1 accesses are issued within the interval of the G1 cycle from time t0 to time t0, so that the processor I1 operates to guarantee the rate.
  • the rate guarantee period G1, the average access interval M1, and the intermittent period information P1 in the management table are not changed during the rate guarantee period, but regarding the transmission time information J1, the number of accesses m1, and the next transmission time information D1.
  • the state variable for controlling the transmission interval is sequentially changed.
  • the transmission time information J1 includes the transmission of the request transaction addressed to the destination T1 last transmitted from the NIC1 during the rate guarantee period immediately before the start of the time t0-G1.
  • the time is recorded.
  • the access count m1 is initialized to zero.
  • the access transactions addressed to the memory T1 of the processor I1 requested within the rate guarantee period starting from the time t0 are numbered and represented as 1, 2, and 3.
  • the fourth and subsequent accesses are similarly processed until M1 times.
  • the request transaction 1 requested from the processor I1 is transmitted as a request packet from the NIC1 at the same time.
  • the number of accesses m1 1, and the transmission time t0 that is the transmission time is recorded in the transmission time information J1.
  • the request is immediately accepted and transmitted from the NIC1.
  • the access count m1 2
  • the time is stored in the transmission time information J1.
  • the transaction 3 requested from the processor I1 is put on hold because the time difference ⁇ t2 between the request time t2 (I) and the transmission time information J1 is less than the intermittent period information P1.
  • the next transmission time information D1 is determined by the following equation 18 and recorded in the management table.
  • D1 J1 + P1 (Equation 18)
  • the transmission time is stored as the transmission time information J1.
  • a P1 cycle is secured, so that interference between request packets before and after can be limited.
  • FIG. 23 shows a continuous request timing by the processor I1, an access request transmission timing by the NIC1, and a timing at which an access in the memory T1 is observed.
  • the transmission interval determination unit 134 converts the accesses to regular intervals indicated by the intermittent period information P1. Since there is no access by other processors, if there is no resource contention in the router, the access timing observed on the memory T1 side is also a fixed interval.
  • the rate guarantee period G1 cycle when it is desired to limit the number of accesses accepted by NIC1 to M1 times or less with respect to the number of accesses requested by the processor I1, the average number of accesses M1 and the number of requested transactions m1 transmitted by NIC1. It becomes possible by comparing.
  • FIG. 24 shows how the transmission interval of NIC 1 is adjusted when requested transactions exceeding the average number of accesses M 1 recorded in the management table are transmitted from processor I 1.
  • the management table according to the following equation 19 so that the next transmission time becomes the next rate guarantee period D1 in is updated.
  • D1 t0 + G1 (Equation 19)
  • FIG. 25 shows a processing flow of the transmission interval determination unit 134.
  • FIG. 25 shows the procedure of the above-described processing. A description of the individual steps will be omitted.
  • the intermittent information generation unit 131 calculates intermittent cycle information and minimum frequency information
  • the clock generation unit 132 dynamically adjusts the operating frequency of the bus sent to the communication unit 133 according to the minimum frequency information. Although shown, it is not necessary to do everything dynamically.
  • the intermittent information generation unit 131 may be implemented as a process in the design tool, and the circuit design of other components may be performed using the values of the intermittent period information and the minimum frequency information determined by the tool as design parameters.
  • the clock generation unit 132 does not have a function of dynamically changing the frequency of the clock signal such as VCXO, but oscillates at a fixed frequency according to the minimum frequency information determined as the design parameter. It may be configured as a generator. Alternatively, the clock generation unit 132 may acquire a clock signal driven at a predetermined frequency from the outside. The “predetermined frequency” at this time is the minimum frequency generated by calculation by the design tool.
  • the intermittent interval information and rate management information may be stored in a register file, a storage area constituted by a memory or a flip-flop, etc., so that the transmission interval determination unit 134 reads the information at the start of operation.
  • the bus bandwidth can be designed by a calculation program, etc., and the design and verification by the cut and try of the bus bandwidth by simulation and emulation becomes unnecessary, and the development man-hours Has an excellent effect that can be shortened.
  • FIG. 26 shows a modification of the configuration of the NIC 130 according to the first embodiment.
  • 26 differs from the NIC 130 shown in FIG. 15 in that an intermittent information storage unit 135 is provided instead of the intermittent information generation unit 131 of the NIC 130 shown in FIG.
  • the intermittent information storage unit 135 is configured as a register using, for example, a flip-flop, and stores intermittent cycle information calculated using a design tool.
  • a clock signal driven with the minimum frequency information calculated by the design tool is generated externally and applied to the communication unit 133.
  • the communication unit 133 performs data communication with the router according to the clock signal.
  • FIG. 26 The operations of the components according to the first embodiment described above are shown in FIG. 26 except that an intermittent information storage unit for storing intermittent information received from the outside is provided in place of the intermittent information generation unit 131 that generates intermittent information.
  • FIG. 26 The configuration shown in FIG.
  • the transmission time information may record the transmission time of the request packet, or may be initialized at each request packet transmission time and manage the value of a counter that increases or decreases over time.
  • FIG. 27 shows an example using an incremental counter.
  • the count value of the counter is initialized to 0 at the request packet transmission timing in the communication unit, and the counter value represents the elapsed time from the request packet transmission time.
  • the transmission interval determination unit 134 acquires the count value of the counter as elapsed time information, and issues a transmission permission in response to a transmission request from the initiator if the value is equal to or greater than the value of the intermittent period information.
  • a counter that manages the count value may be provided in the transmission interval determination unit 134. In that case, information indicating the timing of transmitting the request packet may be notified from the communication unit 133.
  • FIG. 28 shows an example using a decrementing counter.
  • the communication unit 133 notifies the transmission interval determination unit 134 of the timing at which the request packet is transmitted.
  • the transmission interval determination unit 134 initializes the counter value to the value of the intermittent period information at the timing of receiving the notification. If the count value is 0 or less, a transmission permission is issued in response to a transmission request from the initiator.
  • a counter that manages the count value may be provided in the communication unit 133. In that case, the communication unit 133 may read the intermittent period information from the intermittent information storage unit 131.
  • the communication unit 133 has a counter that counts the period of the clock signal in the system, initializes the counter at the transmission time of the data input from the initiator, and uses the counter value as elapsed time information to the transmission interval determination unit 134.
  • the transmission interval determination unit 134 may determine that the elapsed time information has reached intermittent period information or a predetermined count value, and issue a transmission permission for a transmission request from the initiator.
  • FIG. 29 is a system configuration diagram of the present embodiment. 29, the same reference numerals are used for the same components as in FIG. Since those descriptions have already been described in the first embodiment, description thereof is omitted here.
  • direct communication is performed between the initiator I1 and the initiator I3 without using a memory.
  • the following description will be given with reference to the NIC 130 having the configuration shown in FIG.
  • the NIC 130 illustrated in FIG. 15 corresponds to the NIC 1 illustrated in FIG. 29, for example. Hereinafter, it is described as NIC1 for convenience.
  • the router R3 in FIG. 29 has a routing table set so that when a packet destined for I3 is received, the packet is sent to the router R2 via the link L3.
  • an I / O port controller device for the initiator I1 and the initiator I3 to interface with an external hard disk drive can be considered.
  • a hard disk drive HDDA that is a data transfer source is connected to the port I1.
  • the port I3 is connected to a hard disk drive HDDB as a data transfer destination.
  • the connection interface of the hard disk drive is, for example, serial ATA.
  • FIG. 30 shows the flow configuration information of port I1. I4 is omitted because there is no change.
  • FIG. 31 shows the result of extracting only the flow having the destination I3. Even when there is direct communication between initiators, performance can be guaranteed only by treating the initiator of the communication destination as one destination.
  • the intermittent cycle information for the destination I3 is represented by P5
  • the intermittent cycle information is obtained by the following equation (20).
  • Equation 22 is used to determine the performance guarantee for the direct communication flow.
  • the intermittent information generation unit 131 determines the minimum frequency information by selecting the operating frequency F that satisfies Equation 22 for all direct communication flows in addition to all the memory-directed flows.
  • FIG. 32 shows an example of the management table of NIC1 connected to port I1.
  • the rate guarantee period G1, the intermittent period information P5, the transmission time information J5, and the next transmission time D5, which are parameters related to the flow of direct communication addressed to the port I3, are converted and stored in units of cycles with the minimum frequency information F.
  • the transmission interval determination unit 134 of the NIC 1 performs the same control as that of the first embodiment on the destination I 3 according to the management table of FIG.
  • the direct communication between initiators as shown in this embodiment has an excellent effect in that a communication throughput exceeding the physical bandwidth of the targets T1 to T4 can be obtained.
  • the physical bandwidth of the memory is inevitably increased in a configuration in which all flows pass through the system memory. Since the flow of direct communication between the initiators does not go through the memory, the throughput of the initiator can be improved independently of the physical bandwidth of the memory.
  • FIG. 33 shows the access timing in the flow 11 addressed to the memory T1 of the processor I1.
  • M1 10 accesses
  • Sparse periods in which access is interrupted are repeated.
  • a density fluctuation factor it is possible to consider a hit / miss hit in the internal cache of the initiator.
  • FIG. 33 also shows the timing of the access request transmitted by NIC1.
  • the transmission interval is adjusted so that the access interval continuously requested in the dense period converges to the average access interval of the flow 11.
  • the operation of the transmission interval determination unit 134 for realizing such transmission interval control will be described.
  • the configuration of the NIC according to the present embodiment is the same as that of the NIC 130 (FIG. 15) of the first embodiment with respect to the configuration other than the transmission interval determination unit 134.
  • FIG. 34 shows an example of a management table held by the transmission interval determination unit 134. It can be understood that the cumulative number of cycles for each destination is recorded in addition to the management table of the first embodiment (FIG. 21). The accumulated cycle number is initialized to zero at the start of the rate guarantee period, and is used for accumulating the deviation in cycle units between the transmission timing from the NIC and the average access interval during the rate guarantee period.
  • FIG. 35 shows how the transmission interval of the flow 11 is controlled. For the sake of explanation, numbers 1 to 6 are assigned to packets of the flow 11 that the processor I1 transmits to the memory T1. Assuming that the packet size is N1 flit, the number of cycles q required to transfer one packet is expressed by the following equation (23).
  • the size of the packet transmitted from the processors I1, I2, and I3 to the memory T1 is q.
  • the cycle accumulated value n1 is initialized to zero. It is assumed that the following relationship is established between the intermittent period information P1 and the average command interval A11.
  • the transmission interval determination unit 134 When the first transmission request is issued from the processor I1, the transmission interval determination unit 134 immediately starts when the interval from the transmission timing of the last transmission packet in the immediately preceding rate guarantee period is equal to or longer than the P1 cycle that is the intermittent period information.
  • the packet 1 is transmitted to the memory T1.
  • the packet 2 is transmitted with an interval of A11 which is an average command interval from the transmission timing of the immediately preceding packet 1. Due to the fluctuation of the access, the access request is not issued in the section from the transmission request 2 to the transmission request 3 from the processor I1, and the subsequent transmission request 3 is transmitted as the packet 3 to the memory T1.
  • the transmission interval determination unit 134 records the difference (deviation) between the elapsed time from the transmission timing of the packet 2 and the average command interval.
  • the difference (deviation) is 2q cycles.
  • the transmission interval determination unit 134 records the value of 2q cycles as n1 in the cycle accumulated value.
  • the transmission timing of the packet 4 is calculated according to the following equation 25, taking into account the cycle accumulated value n1 that is a deviation from the average command interval.
  • t3 and t4 represent times when the packet 3 and the packet 4 are transmitted, respectively.
  • t4 is calculated in the example of FIG. 35, the following equation 26 holds. Therefore, the packet 4 is transmitted at intervals of the intermittent cycle information P1.
  • n1 is updated by subtracting the number of used cycles from the cycle accumulated value n1, as shown in the following equation (27).
  • the value of n1 is updated from 2q to q.
  • the accumulated value q accumulated in the cycle accumulated value n1 is used to advance the transmission timing by q cycles from the average command interval A11.
  • the cycle accumulated value n1 is zero.
  • the transmission request 6 issued from the processor I1 is transmitted to the memory T1 as the packet 6 with an interval of the average command interval A11.
  • FIG. 36 shows a processing flow of the transmission interval determination unit 134 in the present embodiment.
  • FIG. 36 shows the procedure of the above-described processing. A description of the individual steps will be omitted.
  • the difference between the intermittent period information P1 and the average access interval (average command interval A11) of the processor is relatively small, and the access fluctuates at an interval equal to or greater than the average access interval. Also, the difference (deviation) between the elapsed time from the latest packet transmission timing and the average command interval is calculated, and the transmission timing of the next packet is advanced so as to reduce the difference. As a result, the average required bandwidth of the processor can be protected.
  • the present disclosure 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 a SoC for embedded devices, a general-purpose processor, and a local bus on a DSP. .
  • Control Device 131 Intermittent Information Generation Unit 132 Clock Generation Unit 133 Communication Unit 134 Transmission Interval Determination Unit 135 Intermittent Information Storage Unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)
  • Information Transfer Systems (AREA)

Abstract

 バスの動作周波数を抑制しつつ伝送性能の保証を行う制御装置を提供する。 制御装置は、イニシエータ、およびターゲットが分散型のバスで接続されたシステムにおいて、バスを介して受け取ったイニシエータからのアクセス要求の送信タイミングを制御するために使用される。制御装置は、システム構成情報、および各イニシエータからのターゲットへのアクセスに必要とされる仕様をフロー単位で示すフロー構成情報から生成された、パケット間の干渉を制限可能な間欠周期の情報、および各イニシエータのリアルタイム性能を保証可能な最小のバス動作周波数を示すバス動作周波数の情報を含む間欠情報を記憶する。制御装置は、バス動作周波数の情報に従いクロックを生成するクロック生成部と、通信部と、間欠周期、送信要求の検出時刻、および直前の送信時刻から、送信要求に対する送信許可の発行時刻を決定する送信間隔決定部とを備えている。

Description

制御装置
 本願は、ネットワーク化された通信バスを備える半導体チップにおいて、通信バスの制御を行うための装置、方法及びプログラムに関する。
 近年、システム・オン・チップ(System on Chip;以下「SoC」)やマルチコア・プロセッサ分野における通信バスとして、ネットワーク・オン・チップ(Network-on-Chip、以下「NoC」)が用いられるようになってきた。
 図1は、イニシエータI1~I4とターゲットT1~T4との間のメインバスにNoCを適用した一般的な接続構成の例を示す。イニシエータは、たとえば、DSP(Digital Signal Processor)、CPU(Central Processing Unit)、DMAC(Direct Memory Access Controller)などである。また、ターゲットは、たとえば、外部のDRAMに接続されるメモリコントローラ、SRAM、外部との入出力用のバッファメモリなどである。
 イニシエータおよびターゲットは、ネットワーク・インタフェース・コントローラ(Network Interface Controller;NIC)であるNIC1~NIC8を介して、NoCルータR1~R4で構成されるネットワークバスにより、相互に通信可能な状態に接続されている。NoCでは、バス上でのデータのやりとりは全てパケット単位で行われる。そのために、NICはイニシエータやターゲットが送受信するトランザクションデータをパケット化および脱パケット化する機能を有する。またNoCの構造上、ルータ間を接続するリンクL1~L8は、複数のイニシエータI1~I4からターゲットT1~T4へパケットが送信される際に共用される。
 図2は、パケット100の構成例を示す。パケットはトランザクションデータと読み書きの対象となるメモリアドレス等が格納されるパケットヘッダから構成される。パケットが実際にルータ網を転送される際には、フリットと呼ばれる単位に分割されて順次送信される。図3は、複数のフリット101から構成されるパケット100を示す。パケットの先頭部分を含むフリットは「ヘッダフリット」と呼ばれる。フリット101のデータ幅Wは、通常ルータ間を接続する信号線のビット幅となる。またNoCの構造上、ルータ間を接続するリンクL1~L8は複数のイニシエータからのターゲットへのアクセスで共用される。
 メディア処理をはじめとするリアルタイム用途に用いられるバスでは、イニシエータとターゲット間で性能保証を行う必要がある。性能保証としては、レートとレイテンシの保証が含まれる。レートの保証とは、単位時間あたりのイニシエータの要求帯域に対して、100パーセントの取得帯域が与えられることを意味する。レイテンシの保証とは、最も許容レイテンシの短いイニシエータで、実際のアクセス時のレイテンシ(イニシエータが要求トランザクションをバス上に発行してから、ターゲットで要求が処理され、それに対する返信トランザクションを受け取る迄の時間)が、許容レイテンシ以下となることを意味する。
 図4は、イニシエータとターゲット間の通信形態を示す。いま、イニシエータAとターゲットBが通信関係にあるとする。図4に示すように、イニシエータが発行した要求トランザクション(たとえばメモリアクセス要求)が、ターゲットBに到着するのに要したサイクル数をXサイクルとする。また、ターゲットBが発行した返信トランザクション(たとえばメモリ読み出し結果等の返信)が、イニシエータAに到着するのに要したサイクル数をYサイクルであるとする。そしてイニシエータAで許容できるレイテンシがSサイクル以内であるとすると、下記数1の関係を満たせることがレイテンシ保証の条件となる。
S≧X+Y     (数1)
 全てのイニシエータとターゲットの組合せに対して、上記に示した性能保証条件が満たされているとき、システムとして性能保証されていると定義する。
 いま、図1に示したような、複数のイニシエータとターゲットとが帯域資源を共用するバスで接続されたシステム上で、各イニシエータのレートやレイテンシを保証する場合を想定する。特許文献1は、バスを共用する各イニシエータ毎に保証したいピーク時のバンド幅を見積り、その値を全てのイニシエータについて加算した値でバスの動作周波数を設計する方法を開示する。また特許文献2は、イニシエータ側で送信タイミングの制御を行うことで伝送性能を保証する方法を開示する。
特開2008-171232号公報 特開2006-293799号公報
 上述した従来の技術では、バスの動作周波数の低下、消費電力の低減、設計の簡単化、および/またはバス帯域の利用率の少なくとも1つに関し、さらなる向上が求められていた。または、レイテンシが保証されることも求められていた。
 本願の、限定的ではない例示的なある実施形態は、バスの動作周波数を抑制しつつ伝送性能の保証を行う制御装置を提供するを提供する。
 本発明の例示的な一実施形態にかかる制御装置は、イニシエータ、およびターゲットが分散型のバスで接続されたシステムにおいて使用され、前記イニシエータから前記バスを介して受け取ったアクセス要求の送信タイミングを制御する。前記制御装置は、前記システムの構成に関するシステム構成情報、および各イニシエータからのターゲットへのアクセスに必要とされる仕様をフロー単位で示すフロー構成情報とを用いて生成された間欠周期情報を記憶する間欠情報記憶部と、前記システム構成情報および前記フロー構成情報を用いて生成された各イニシエータのリアルタイム性能を保証可能なバス動作周波数で駆動されるクロック信号を取得するとともに、イニシエータから入力されたデータをパケット化し、前記クロック信号に従い、ルータへの送信パケットの送信と、入力された前記データの送信時刻を記録する通信部と、前記間欠周期情報、イニシエータからの送信要求の検出時刻、および直前の送信時刻から、前記送信要求に対する送信許可の発行時刻を決定する送信間隔決定部とを備えている。
 上述の一般的かつ特定の態様は、システム、方法およびコンピュータプログラムを用いて実装され、またはシステム、方法およびコンピュータプログラムの組み合わせを用いて実現され得る。
 複数のイニシエータとターゲットが接続された分散型の通信バスにおいて、各イニシエータの送受信特性に基づいた送信間隔の制御を行うことで、イニシエータ間でのデータ干渉を制限し、各イニシエータのレート保証及びレイテンシ保証を行うと共に、低いバス動作周波数でバスを動作させることを可能とする。これにより、バスのAV信号処理を含む各種リアルタイム用途への適用を可能とする。また動作周波数が低減できるため、実装面積など省資源化が可能となる。
イニシエータI1~I4とターゲットT1~T4との間のメインバスにNoCを適用した一般的な接続構成の例を示す図である。 パケット100の構成例を示す図である。 複数のフリット101から構成されるパケット100を示す図である。 イニシエータとターゲット間の通信形態を示す図である。 図1内に示されたイニシエータI1~I4の要求帯域の時間変動の様子を示す図である。 バス帯域の設計過程を示す図である。 イニシエータA~Cとターゲットであるメモリがバスにより接続されている様子を示す図である。 イニシエータAとイニシエータBのメモリアクセス要求の要求帯域の時間変動の様子を示す図である。 イニシエータ間で発生しているアクセス干渉を示す図である。 イニシエータI1~I4が同時にターゲットT1宛に、最大のパケットサイズN1~N4でパケット送信を行ったタイミングt1を示す図である。 ターゲットT1に向かう各パケットの到着の様子を示す図である。 トランザクションから生成されたフリットが、メモリT1で受信されるタイミングを示す図である。 動作周波数低減の効果を示す図である。 各プロセッサIiが、サイクル数Pだけ間隔を空けて、要求トランザクション1と要求トランザクション2を発行した場合のタイミングを示す図である。 イニシエータ(プロセッサ)側のNIC130の基本的な構成を示す図である。 システム構成情報の例を示す図である。 フロー構成情報の例を示す図である。 図17から抜粋したメモリT1に関係する性能保証が必要なフローを示す図である。 メモリT2を宛先とする、イニシエータI1~I3のフロー構成情報を示す図である。 間欠情報生成部131の処理フローを示す図である。 プロセッサI1に接続されたNIC1の管理テーブルの構成例を示す図である。 NIC1がI1から要求される平均アクセス回数M1以下のアクセス・トランザクションを受け付けている様子を示す図である。 プロセッサI1以外の他のプロセッサがメモリへのアクセスを行っておらず、プロセッサI1のみがメモリT1に対して連続的にアクセスを行った場合のNIC1でのアクセス送信タイミングと、メモリT1側で観測されるアクセスタイミングとを示す図である。 管理テーブルに記録された平均アクセス数M1を越える回数の要求トランザクションがプロセッサI1から送信された場合のNIC1での送信間隔の調整の様子を示す図である。 送信間隔決定部134の処理フローを示す図である。 実施形態1の変形例を示す図である。 増加型のカウンタを用いた例を示す図である。 減少型のカウンタを用いた例を示す図である。 例示的な実施形態2のシステム構成図である。 ポートI1のフロー構成情報を示す図である。 宛先をI3とするフローだけを抽出した結果を示す図である。 ポートI1に接続されたNIC1の管理テーブルの例を示す図である。 プロセッサI1のメモリT1宛のフロー11におけるアクセスのタイミングを示す図である。 管理テーブルの例を示す図である。 フロー11の送信間隔がどのように制御されるかを示す図である。 例示的な実施形態3にかかる送信間隔決定部134の処理フローを示す図である。
 上述の特許文献1の方法を用いてバスの帯域設計を行った場合、伝送性能を保証するために必要となるバスの動作周波数が高くなり、消費電力も増加し、設計も難しくなる上、バス帯域の利用率が低くなる。一般的なイニシエータを考えた場合、内部の処理や他のイニシエータとの処理の関係により、要求帯域は時間的に常に一定ではなく、最大要求帯域と最小要求帯域の間で変動する。そのような時間変動する全てのイニシエータで性能保証を行うために、特許文献1では、バスを共用する各イニシエータ毎に保証したいピークのバンド幅を見積り、その値を全てのイニシエータについて加算した値でバスの動作周波数を設計する。全てのイニシエータに対して、ピークのバンド幅がバス上で確保されていた。これにより、レート保証とレイテンシ保証の条件は満たされる。しかし、全てのイニシエータが同時に最大要求帯域で動作しない限り、平均要求帯域を上回る部分のバス帯域は殆ど利用されないため、帯域資源が無駄になる。図5は、図1内に示されたイニシエータI1~I4の要求帯域の時間変動の様子を示す。横軸tはバスクロックのサイクル、縦軸rは要求帯域、pは最大要求帯域、aは平均要求帯域を示す。図6は、バス帯域の設計過程を示す。p1~p4の総和がバス帯域B(MB/s)となり、バス幅をWバイトとした場合、バスの動作周波数Fpeak(MHz)は、下記数2として設計される。
Fpeak=B/W     (数2)
 上述の特許文献2には、イニシエータ側で要求トランザクションの送信間隔を制御することで、最大要求帯域を調整し、バスの動作周波数を抑制する方法が示されている。図7はイニシエータA~Cとターゲットであるメモリがバスにより接続されている様子を示す。各イニシエータは送信間隔を調整するための属性表を参照しながら、その間隔設定に従って、バス上にメモリアクセス要求を発行する。属性表には、アクセス対象のメモリアドレス、データのサイズ、次のアクセスを行う迄の遅延サイクル数が上位のプロセッサ(図示せず)によりDMA転送のセットアップ時に設定される。図8は、イニシエータAとイニシエータBのメモリアクセス要求の要求帯域の時間変動の様子を示す。送信間隔制御によって最大要求帯域が抑制されることで、図5と比較してp1、p2が低減され、バスの動作周波数としても低減されていることが分かる。しかしながら特許文献2の方法では、送信間隔が属性表の遅延サイクル数により遅延させられる。よって、イニシエータがアクセス要求を出そうとしたタイミングと実際にバス上でアクセスが開始されるタイミングの間に遅延が発生し、また他のイニシエータとの間での送信タイミングの調整が行われていないために、同時にバス上に発行されたアクセス間でも干渉による遅延が発生する。図9は、イニシエータ間で発生しているアクセス干渉を示す。これらの要因により、特許文献2の技術ではイニシエータAが許容できるレイテンシを守れず、レイテンシ保証ができなかった。
 本発明の一態様の概要は以下のとおりである。
 本発明の一態様である制御装置は、イニシエータ、およびターゲットが分散型のバスで接続されたシステムにおいて使用され、前記イニシエータから前記バスを介して受け取ったアクセス要求の送信タイミングを制御する制御装置であって、前記システムの構成に関するシステム構成情報、および各イニシエータからのターゲットへのアクセスに必要とされる仕様をフロー単位で示すフロー構成情報とを用いて生成された間欠周期情報を記憶する間欠情報記憶部と、前記システム構成情報および前記フロー構成情報を用いて生成された各イニシエータのリアルタイム性能を保証可能なバス動作周波数で駆動されるクロック信号を取得するとともに、イニシエータから入力されたデータをパケット化し、前記クロック信号に従い、ルータへの送信パケットの送信と、入力された前記データの送信時刻を記録する通信部と、前記間欠周期情報、イニシエータからの送信要求の検出時刻、および直前の送信時刻から、前記送信要求に対する送信許可の発行時刻を決定する送信間隔決定部とを備えている。
 前記間欠情報記憶部は、たとえば、各イニシエータが同時に送信可能な最大データ長で、全てのイニシエータが同時に送信した場合において、ターゲットが全てのデータを受信し終えるまでに要するバスサイクル数を、前記間欠周期として記憶する。
 前記間欠情報記憶部は、少なくとも前記間欠周期を用いて算出された、パケットの送受信に要する最大レイテンシを記憶し、前記最大レイテンシが、最も小さい許容レイテンシを持つイニシエータの許容レイテンシを越えない条件下で特定される最小のバス動作周波数を、前記バス動作周波数として記憶する。
 前記送信間隔決定部は、前記間欠周期が、連続するパケットの最小の送信間隔となるよう、前記送信要求に対する送信許可の発行時刻を決定する。
 前記送信間隔決定部は、前記システムの仕様として予め定められたレート保証期間内の送信数を、予め定められた回数以下に制限する。
 前記送信間隔決定部は、連続するパケットの送信間隔を、前記システムの仕様として予め定められた平均アクセス間隔に近づけるように決定する。
 前記間欠情報記憶部は、送信対象となるターゲット及びイニシエータ毎に、各イニシエータのパケットサイズに基づいて算出された前記間欠周期を記憶する。
 前記間欠情報記憶部は、送信対象となるターゲット毎に算出された間欠周期を記憶する。
 本発明の他の一態様である制御装置は、イニシエータ、およびターゲットが分散型のバスで接続されたシステムにおいて使用され、前記イニシエータから前記バスを介して受け取ったアクセス要求の送信タイミングを制御する制御装置であって、前記システムの構成に関するシステム構成情報、および各イニシエータからのターゲットへのアクセスに必要とされる仕様をフロー単位で示すフロー構成情報から、パケット間の干渉を制限可能な間欠周期の情報、および各イニシエータのリアルタイム性能を保証可能な最小のバス動作周波数を示すバス動作周波数の情報を含む間欠情報を生成する間欠情報生成部と、前記バス動作周波数の情報に従いクロックを生成するクロック生成部と、前記クロックで動作し、入力されたデータをパケット化して送信し、入力された前記データの送信時刻を記録する通信部と、前記間欠周期、イニシエータからの送信要求の検出時刻、および直前の送信時刻から、前記送信要求に対する送信許可の発行時刻を決定する送信間隔決定部とを備えている。
 前記間欠情報生成部は、各イニシエータが同時に送信可能な最大データ長で、全てのイニシエータが同時に送信した場合において、ターゲットが全てのデータを受信し終えるまでに要するバスサイクル数を、前記間欠周期として算出する。
 前記間欠情報生成部は、少なくとも前記間欠周期を用いて、パケットの送受信に要する最大レイテンシを算出し、前記最大レイテンシが、最も小さい許容レイテンシを持つイニシエータの許容レイテンシを越えない条件下で特定される最小のバス動作周波数を、前記バス動作周波数として決定する。
 前記送信間隔決定部は、前記間欠周期が、連続するパケットの最小の送信間隔となるよう、前記送信要求に対する送信許可の発行時刻を決定する。
 前記送信間隔決定部は、前記システムの仕様として予め定められたレート保証期間内の送信数を、予め定められた回数以下に制限する。
 前記送信間隔決定部は、連続するパケットの送信間隔を、前記システムの仕様として予め定められた平均アクセス間隔に近づけるように決定する。
 前記間欠情報生成部は、送信対象となるターゲット及びイニシエータ毎に、各イニシエータのパケットサイズに基づいて前記間欠周期を算出する。
 前記間欠情報生成部は、送信対象となるターゲット毎に、間欠周期を算出する。
 上述のいずれかの態様にかかる制御装置の前記通信部は、イニシエータから入力されたデータの送信時刻として、システム内のクロック信号の周期を計数するカウンタ値を用いる。
 上述のいずれかの態様にかかる制御装置の前記通信部は、システム内のクロック信号の周期を計数するカウンタを有し、イニシエータから入力されたデータの送信時刻に前記カウンタを初期化し、前記カウンタ値を経過時刻情報として送信間隔決定部に供給し、前記送信間隔決定部は、前記経過時刻情報が前記間欠周期情報または所定の計数値に達したことを判定し、前記イニシエータからの送信要求に対する送信許可を発行する。
 上述のいずれかの態様にかかる制御装置では、前記イニシエータが前記ターゲットに対し、連続的にアクセス要求を送信している場合において、前記送信間隔決定部は、前記間欠周期情報によって示される周期で、前記アクセス要求を前記ターゲットに宛てて定間隔に送信する。
 本発明の他の一態様である方法は、イニシエータ、およびターゲットが分散型のバスで接続されたシステムのバス周波数を決定するシステム設計方法であって、予め用意された、前記システムの構成に関するシステム構成情報、および各イニシエータからのターゲットへのアクセスに必要とされる仕様をフロー単位で示すフロー構成情報から、パケット間の干渉を制限可能な間欠周期を生成するステップと、少なくとも前記間欠周期に基づいてパケットの送受信に要する最大レイテンシを算出するステップと、前記最大レイテンシが、最も小さい許容レイテンシを持つイニシエータの許容レイテンシを越えない条件下で最小となるバス動作周波数を決定するステップとを包含する。
 以下、添付の図面を参照しながら、本開示における制御装置の例示的な実施形態を説明する。
 本開示による制御装置は、イニシエータ、およびターゲットが分散型のバスで接続されたシステムにおいて使用され、イニシエータからバスを介して受け取ったアクセス要求の送信タイミングを制御する。
 この制御装置は、間欠情報生成部または間欠情報記憶部と、クロック生成部と、通信部と、送信間隔決定部とを備えている。
 間欠情報生成部は、システムの構成に関するシステム構成情報、および各イニシエータからのターゲットへのアクセスに必要とされる仕様をフロー単位で示すフロー構成情報から間欠情報を生成する。間欠情報は、パケット間の干渉を制限可能な間欠周期の情報、および各イニシエータのリアルタイム性能を保証可能な最小のバス動作周波数を示すバス動作周波数の情報を含む。間欠情報生成部に代えて間欠情報記憶部が設けられている場合には、間欠情報記憶部は、たとえばシステムの設計者が生成した間欠情報を記憶する。
 クロック生成部は、バス動作周波数の情報に従いクロックを生成する。通信部はクロックで動作し、入力されたデータをパケット化して送信し、入力されたデータの送信時刻を記録する。送信間隔決定部は、間欠周期、イニシエータからの送信要求の検出時刻、および直前の送信時刻から、送信要求に対する送信許可の発行時刻を決定する。
 本構成により、制御装置は各イニシエータ間のパケット干渉の制限を行うことが可能になる。以下、図面を参照して具体的に説明する。
 図10は、イニシエータI1~I4が同時にターゲットT1宛に、最大のパケットサイズN1~N4でパケット送信を行ったタイミングt1を示す。図11は、ターゲットT1に向かう各パケットの到着の様子を示している。イニシエータI1~I4が同時送信したパケット以外に干渉するパケットが無ければ、Pサイクルの間に全てのパケットが到着する。この図11は、各イニシエータが要求する後続のパケットを、送信間隔Pサイクル以上を保って、送信した場合のタイミングを示す。
 図12は、ターゲットT1における各パケットの到着の様子を示す。図12より、各イニシエータがPサイクル以上の送信間隔でパケットを送信すれば、1回目と2回目の同時送信パケット同士で干渉することが無いため、干渉によるレイテンシをPサイクル以下に制限することができる。
 また、各イニシエータの許容レイテンシを守るために、最も許容レイテンシの小さいイニシエータに着目する。図11に示したパケットの到着順の並びで、最も許容レイテンシの小さいイニシエータI1の送信したパケットが、最後に到着する場合が、最もレイテンシが厳しくなる条件である。その条件下でもイニシエータI1の要求する許容レイテンシSを守ることが可能な最小のバス動作周波数でバスを駆動する。
 図13は、動作周波数低減の効果を示す。パケットの送信間隔をPサイクル以上に調整することで、最大要求帯域が削減される。その理由は、Pサイクルより短いサイクル間隔で発行されるパケットが存在しないためである。図13の実線で示した矩形は、本開示の送信間隔制御を行った場合の各イニシエータの要求帯域を示す。破線で示した矩形は、図5と対比するために設けられている。最も許容レイテンシの小さいイニシエータI1に着目すると、パケット送信間隔がPサイクル以上に調整されることにより、時間方向には遅延される。しかしながら、最大要求帯域は低減される。また時間方向の遅延量は、イニシエータI1の許容レイテンシ制約を満たせるように決定されるため、各イニシエータのリアルタイム性への影響は無い。各イニシエータに対応する実線及び破線の矩形の面積の和は、イニシエータが送信するデータ量を示しており、両者の面積は等しい。本開示では、以上のように、各イニシエータの伝送性能の保証と、必要最低限のバス動作周波数の決定を行うことができる。
 以下、本開示による制御装置の実施形態1~3をそれぞれ説明する。
 (実施形態1)
 まず、図1に示すイニシエータI1~I4とターゲットT1~T4の通信形態とその諸元を説明する。図1は、イニシエータI1~I4とターゲットT1~T4との間のメインバスにNoCを適用した一般的な接続構成の例である。この構成は本実施形態および後述の実施形態においても採用され得る。本実施形態では、各イニシエータI1、I2、I3、I4を、リアルタイム処理を実行するプロセッサ、各ターゲットT1、T2、T3、T4をメモリコントローラとして説明を行う。ただしこれは一例である。本開示はこれに限定されるものではない。
 イニシエータは、バスのマスタとして動作するものであれば何でもよい。たとえば、イニシエータは、DSP(Digital Signal Processor)、CPU(Central Processing Unit)、ASIC(Application Specific IC)、DMAC(Direct Memory Access Controller)、各種デバイスに繋がる入出力ポートである。
 また、ターゲットは、バスのスレーブとして動作するものであれば何でもよい。たとえば、ターゲットは、外部のDRAMに接続されるDRAMコントローラ、SRAM、外部との入出力用のバッファメモリ、各種デバイスに繋がる入出力ポートである。
 プロセッサI1、I2、I3、I4は、実行中のプログラムとメモリマップで定義された割当に従い、メモリT1、T2、T3、T4に対してアクセス要求トランザクションを行う。本明細書では説明の簡略化のため、ターゲットT1へのアクセスに着目する。
 プロセッサI1~I4はプロセッサ上で実行される性能保証が必要な動作プログラムの性能保証を実現する。そこで、適切なタイミングで、メモリT1からのデータの読出やメモリT1へのデータの書き込みをおこなうため、プロセッサI1~I4はNIC1~NIC4に対してアクセス要求トランザクションを発行しようとする。ここでは、各プロセッサI1、I2、I3、I4がメモリT1に対する一回のアクセスに要するデータの最大サイズを、それぞれN1、N2、N3、N4とする。単位はバイトである。
 各プロセッサI1、I2、I3、I4の発行するメモリT1へのアクセスの時間間隔は一般的に変動すると考えられるため、平均アクセス間隔をそれぞれA1、A2、A3、A4とする。またI1、I2、I3、I4がリアルタイム処理を行うために要求する許容レイテンシをS1、S2、S3、S4とする。許容レイテンシSi(i=1~4)は、プロセッサIi(i=1~4)がメモリアクセスのための要求トランザクションを発行しようとしたタイミングから起算して、該要求トランザクションに対する返信トランザクションを受け取る迄に待つことのできる最長の時間である。A1~A4、S1~S4は時間の単位を持つが、バスの動作周波数がF(Hz)として、下記数3、数4によりバスサイクルの単位に変換可能である。
Ai‘=F×Ai (cycle)     (数3)
Si‘=F×Si  (cycle)     (数4)
 次に図1に示すNoCバスのトポロジーとその諸元を説明する。図ではイニシエータ側のNIC1~NIC4とターゲット側のNIC5~NIC8がバタフライ網と呼ばれるトポロジーで接続されたルータR1~R4を介して、相互に通信可能な状態に結合されている。ただし本開示はこれに限定されるものではない。ルータの網のトポロジーは、メッシュ網、ツリー網、リング網、スター網、トーラス網、または三次元に拡張されたこれらの網などであってもよい。
 NIC1~NIC8は、たとえば、接続されたイニシエータやターゲットがインタフェースするバスプロトコル処理、通信先のNICとデータを送受するためのパケッタイズ処理(パケット化処理)およびデパケッタイズ処理(脱パケット化処理)、接続されたルータとデータを送受するためのフリッタイズ処理(フリット化処理)およびデフリッタイズ処理(脱フリット化処理)などを行う。それらの処理には一般に固定の処理サイクル数を要するため、NICで消費されるサイクル数をNで表す。またルータR1~R4では接続されたNICまたは隣接のルータとフリット化されたデータの送受を行うためのバッファマネージメント処理、出力ポートのスイッチング処理などを行う。それらの処理には一般に固定の処理サイクル数を要すため、ルータで消費されるサイクル数をRで表す。
 図1では、いずれの場合もプロセッサから発行された要求トランザクションは、2個のNICと2個のルータを通過し、返信トランザクションは、2個のNICと2個のルータを通過する。そのためアクセスの往復のトランザクションで固定的に発生するレイテンシのサイクル数Cは、下記数5で表される。
C=2×(2×N+2×R) (cycle)     (数5)
 数5は経路上のルータが2段の場合の算出例である。イニシエータからターゲットに至る経路上で通過するNICやルータの個数が経路毎に異なるようなシステム構成の場合には、各々の個数をシステム構成情報に含めることで、各イニシエータ毎に各ターゲットにアクセスする場合の固定レイテンシの値の算出が可能である。
 プロセッサの実際のメモリアクセス時に発生するレイテンシは、レイテンシのサイクル数Cに加えて、ルータやNIC上での他のパケットとの待ち合わせによっても変動する。その変動量をVとすると、プロセッサが要求トランザクションを発行してから、該要求トランザクションに対する返信トランザクションを受信する迄に要する総レイテンシVは、下記数6で表される。
Z=C+V (cycle)     (数6)
 プロセッサの要求する許容レイテンシがS(sec)以内でアクセスが完了するためには、バスの動作周波数をF(Hz)を下記数7によって決定する必要がある。
S×F≧C+V     (数7)
 しかし総レイテンシVは他のアクセストランザクションとの干渉の度合いにより、変動する。よって、バスの動作周波数Fを定量的に見積もることが出来ず、プロセッサの要求するリアルタイム性を保証し得ない。
 本実施形態では、総レイテンシVを定量化可能とし、システムが動作する最小限のバス動作周波数Fを設計可能とする。そして、プロセッサのアクセストランザクションの発行間隔を動的に制御し、待ち合わせによる変動レイテンシVの最大値を規定し、数7に従った動作周波数でバスを駆動することで、無駄のないバス帯域の設計と省電力化を実現する。
 次に図1の構成で、各プロセッサが発行するアクセストランザクションのタイミングの制御を説明する。先ほど説明した図10および図11と、図14とを参照する。
 図10は、図1内のプロセッサI1~I4が同じメモリT1に対して、最大のサイズNiで要求トランザクション1を同時発行した場合を示す。このときI1~I4が発行した要求トランザクションはバス上で待ち合わせが発生する。例えば図11は、メモリT1に到着する様子を示す。
 プロセッサIiのトランザクションを構成するパケットをメモリT1が受信するために要するサイクル数P1(i)は、1フリットを1サイクルで送信するという条件の下で、下記数8で示される。
Figure JPOXMLDOC01-appb-M000001

ここでHはパケットヘッダのサイズ(単位はバイト)、LiはプロセッサIiのトランザクションの最大サイズ(単位はバイト)、Wはバス幅(単位はバイト)である。数8は、プロセッサIiが同時に送信するデータによって消費されるサイクル数を表す値であるため、もしプロセッサIiが同時にz個のトランザクションを生成する場合は,数8の右辺の値もz倍とする。
 プロセッサI1~I4が同時に発行した4個の要求トランザクションが全てメモリT1に受信されるために要するサイクル数Pは、下記数9で表される。
Figure JPOXMLDOC01-appb-M000002
 図14は、各プロセッサIiが、サイクル数Pだけ間隔を空けて、要求トランザクション1と要求トランザクション2を発行した場合のタイミングを示す。また図12は、これらのトランザクションから生成されたフリットが、メモリT1で受信されるタイミングを示す。I1~I4が時刻t1に同時に発行した4個の要求トランザクション1はプロセッサI2、I3、I4、I1の順でメモリT1に受信され、続いて間隔Pサイクルを空けて時刻t2に発行した4個の要求トランザクション2は、プロセッサI2、I4、I3、I1の順でメモリT1に受信される。時刻t1に発行されたトランザクション同士及び時刻t2に発行されたトランザクション同士はメモリT1に受信される順序により、待ち合わせが発生し、各プロセッサから見た場合のレイテンシZは変動する。だたし、その変動量Vは高々Pである。また時刻t1に発行されたトランザクションと時刻t2に発行されたトランザクションは、発行間隔Pだけ離されて発行されているため、相互に待ち合わせが発生することはなく、時刻t1に発行されたトランザクションの中で最後にメモリT1に到着したトランザクションが完全に受信された直後に、時刻t2に発行されたトランザクションの中で最初にメモリT1に到着したトランザクションの受信が開始される。このため、上述の数7は下記数10に置き換え可能であり、全てのプロセッサIiに対して下記数10の関係が成立する最小のバス動作周波数Fでバスを駆動すると共に、各プロセッサのトランザクション発行間隔が最小でもPサイクルとなるように制御することにより、全てのプロセッサのリアルタイム性を保証した周波数設計が可能となる。
 Si×F≧C+P     (数10)
 図15は、イニシエータ(プロセッサ)側のNIC130の基本的な構成を示す。NIC130は、たとえば図1のNIC1~4である。なお、以下に説明する機能に鑑みて、NIC130は「送信間隔制御装置」または「制御装置」と呼ぶこともある。
 以下、本実施形態における制御装置130の構成を説明する。
 制御装置130は、間欠情報生成部131と、クロック生成部132と、通信部133と、送信間隔決定部134とを備えている。
 間欠情報生成部131は、システム構成情報と各プロセッサI1~I4のフロー構成情報を基にパケット間の干渉を制限可能な間欠周期情報Pと、各プロセッサI1~I4で守るべき許容レイテンシS1~S4で規定されるリアルタイム性能を保証できる最小のバス動作周波数Fを決定する。
 クロック生成部132は、最小周波数Fに従いバスの動作周波数を生成する。
 通信部133は、動作周波数Fをバスクロックとして動作し、入力された要求トランザクションを送信パケットとして出力すると共に、直前の要求トランザクションの送信時刻を記録する。
 送信間隔決定部134は、間欠周期情報Pと送信要求の検出時刻と直前の送信時刻から送信要求に対する送信許可の発行時刻を決定する。
 以下、基本構成の各処理部毎に詳細な動作を説明する。
(間欠情報生成部131)
 間欠情報生成部は、事前に定義されたシステム構成情報とフロー構成情報を基に、間欠情報を決定する。間欠情報とは、パケット間の干渉を制限可能な間欠周期情報Pと、プロセッサのリアルタイム性能を保証できる最小のバス動作周波数Fを含む。
 システム構成情報は、たとえば図1に示すような、イニシエータ、バス、中継装置、ルータ、およびターゲットによって構成されるシステムの構成に関する情報である。図16は、システム構成情報の例を示す。バス幅WはNoCの各リンクのバス幅であり、単位はバイトである。Wバイトのデータ信号は1サイクルで送信することができるため、Wはフリットサイズと等価となる。NIC及びルータの処理遅延は、NIC及びルータの内部におけるパケット転送などの処理で消費される固定量の処理サイクル数である。パケットヘッダサイズは、パケットのヘッダとペイロードがフリット単位で分離されるほうがNIC及びルータでの処理が行い易いため、一般的にはWの倍数とするのが良い。バス動作周波数の初期値F0は、バスを駆動する最小バス動作周波数を決定する際の初期値である。
 一方、フロー構成情報は、イニシエータ(たとえばプロセッサ)毎のターゲット(たとえばメモリ)等に対するアクセスに必要とされる仕様を、タスクやメモリ割当等の処理(フロー)単位に分離した情報である。図17は、フロー構成情報の例を示す。図の例では、イニシエータであるプロセッサI1~I4には各2本のフローが定義されている。例えばプロセッサI1が仮想化機能を有しており、2種類のOSが各仮想マシン上で動作し、各OSの要求するアクセスをフローIDの11と12で管理されている状態などが考えられる。また別の例では、プロセッサI2に対して定義されたメモリマップにより、2つのメモリT1とT2の各領域が割り当てられている場合に、それらに対して、フローIDの21と22が対応しているとしても良い。
 フロー構成情報では、各プロセッサに対して定義されたフロー毎に、フローの特性を表す、性能保証の必要性、アクセスの宛先となるメモリのノードID、アクセストランザクションの最大サイズ(単位はバイト)、平均アクセス間隔(単位はsec)、リアルタイム処理の時間制約である許容レイテンシの値(単位はsec)、レート保証期間(単位はsec)などの諸元が定義される。またプロセッサI4は性能保証が不要なリアルタイム処理を行わないプロセッサの例であり、平均アクセス間隔や許容レイテンシなどは定義されていない。このようなプロセッサの例として、バックエンドでファイルの転送を行うような処理を担うプロセッサが挙げられる。図17では、性能保証の対象となるプロセッサはI1~I3であり、フローIDが11~32の6本のフローである。
 メモリT1に対する間欠間隔P1を求める方法を説明する。図18は、図17から抜粋したメモリT1に関係する性能保証が必要なフローを示す。メモリT1に対してプロセッサ間のパケットの干渉を制限可能な間欠間隔P1は、上記数8、数9より、下記数11で求められる。
Figure JPOXMLDOC01-appb-M000003
 図19は、メモリT2を宛先とする、イニシエータI1~I3のフロー構成情報を示す。メモリT2に対する間欠間隔P2についても、図19を用いて、P1と同様に下記数12で求められる。
Figure JPOXMLDOC01-appb-M000004
 最小のバス動作周波数F(Hz)は、メモリT1、メモリT2を宛先とする性能保証が必要な全てのフローに対して、レート保証とレイテンシ保証が可能な値でなければならない。このため、間欠情報生成部131は、最小のバス動作周波数Fを求めるための周波数探索の初期値としてF0を用い、メモリT1に関連したフローに対して性能保証が可能な周波数F1とメモリT2に関連したフローに対して性能保証が可能な周波数F2をそれぞれ求める。そして、周波数F1およびF2のうち大きいほうの値をバスの動作周波数Fとする。これにより、全てのメモリに関連するフローで性能保証が可能となる。以下、間欠情報生成部131が、メモリT1に対する最小動作周波数F1を求める方法を説明する。
 メモリT1を宛先とする性能保証型のフローは、最大でP1サイクルの間、送信を保留される可能性がある。送信間隔決定部134が後続のアクセスパケットとの干渉を制限するためである。送信が最大P1サイクル保留されても、平均レートでのアクセスが可能であり、かつ許容レイテンシを守れるためのフロー11に対する必要条件は、下記数13で与えられる。式中のC1は上述の数5で算出される固定レイテンシである。
Figure JPOXMLDOC01-appb-M000005
 またフロー11における要求トランザクションが最大でP1サイクルの間保留された後NIC1から送信され、他のプロセッサから同時に送信されたメモリT1宛のパケットと干渉することで発生するレイテンシの最大量は、数10よりP1サイクルとなる。よって、フロー11に属するアクセストランザクションがプロセッサI1が要求する許容レイテンシS1を満たすためには、下記数14の関係が成り立つことが必要条件である。
Figure JPOXMLDOC01-appb-M000006
 上述の数13及び数14より、フロー11に関して、下記数15の関係が成り立つことが性能保証が可能な条件となる。
Figure JPOXMLDOC01-appb-M000007
 数15の関係が成立しない場合には、成立するまで動作周波数F0の値を増加させる必要がある。数15の関係を成立させる最小の動作周波数F11が存在し、その値がフロー11に対して性能保証を行える最小のバス動作周波数の値となる。同様の方法で、間欠情報生成部131は、メモリT1を宛先とする残りの全てのフロー21、31に対しても、性能保証が可能な最小のバス動作周波数F21、F31を決定する。下記数16は、メモリT1を宛先とする全てのフローで性能保証が可能な最小のバス動作周波数F1を求める。
Figure JPOXMLDOC01-appb-M000008
 メモリT1に対して行った方法と同様の方法で、図19と数12を用いて、メモリT2を宛先とする全ての性能保証型のフロー12、22、32で性能保証可能な最小のバス動作周波数F2を求めることができる。F1、F2を用いて、システムの最小バス動作周波数Fは、下記数17で決定される。
Figure JPOXMLDOC01-appb-M000009
 決定された周波数Fは、最小周波数としてクロック生成部132に出力する。
 決定された最小のバス動作周波数Fを用いて、レート管理情報を計算する方法を説明する。プロセッサI1のレート保証期間g1はFを乗じることによりサイクル単位の値G1に変換可能である。またG1サイクル内のメモリT1に対する平均アクセス回数M1はg1/A11となる。またメモリT2に対する平均アクセス回数M2はg1/A12となる。間欠情報生成部131は、レート保証期間の値G1と全ての宛先メモリに対する平均アクセス回数の値M1、M2を算出し、レート管理情報として、送信間隔決定部134に通知する。この説明から明らかな通り、間欠情報生成部131は、最小のバス動作周波数Fが得られた後にレート管理情報を算出する。したがって、レート管理情報は副次的に得られる情報であると言える。図15では、破線によって、レート管理情報が副次的に得られる情報であることが示されている。
 図20は、間欠情報生成部131の処理フローを示す。図20は上述の処理の手順を表している。改めて個々のステップを説明することは省略する。
(クロック生成部132)
 クロック生成部132は、間欠情報生成部131によって決定された最小周波数の値F(Hz)を周波数とするクロック信号を発生させる。クロック信号はチップ上のクロックツリー等のクロック用配線により、NICやルータ等のバス構成要素の動作クロックとして供給される。
(通信部133)
 通信部133は、プロセッサ側とインタフェースされたバスから送信データとしての要求トランザクションを受け取り、パケット化の処理により要求パケットとして構成し、ルータ側とインタフェースされたバスに対してフリット単位で送信する。通信部133は、要求パケットの先頭のフリットをルータ側に送信した時刻と宛先のメモリを、送信時刻情報として送信間隔決定部134に通知する。
(送信間隔決定部134)
 送信間隔決定部134は、間欠情報生成部131から通知された間欠周期情報及びレート管理情報と、通信部133から通知された宛先毎の送信時刻情報を管理テーブルに保持する。管理テーブルは、たとえば送信間隔決定部134の内蔵メモリ(図示せず)に記録されている。送信間隔決定部134は、プロセッサから要求トランザクションを受け入れるタイミングを制御することで、送信間隔の制御を実行する。
 図21は、プロセッサI1に接続されたNIC1の管理テーブルの構成例を示す。プロセッサI1では、アクセス先のメモリとしてフロー11に対してはメモリT1、フロー12に対してはメモリT2の2つが利用されている。宛先メモリT1に関しては、G1サイクルの期間にM1回の要求トランザクションを送信するというプロセッサの要求帯域に関する諸元と、前後に送信された要求パケットとの干渉を制限するために確保すべき最小送信間隔である間欠周期情報P1(単位はサイクル)の値、直近の要求トランザクションの送信時刻の情報である送信時刻情報J1、レート保証期間G1サイクルの間に実際に送信された要求トランザクションの計数結果であるm1、送信間隔の制御により現在保留中の要求トランザクションが送信されるべき時刻の情報であるD1(「次回送信時刻情報D1」とも記述する。)を格納する。送信時刻情報J1、次回送信時刻情報D1はバスの動作周波数F(Hz)を計数するシステムクロック等を使用しても良く、その場合は送信時刻情報J1、次回送信時刻情報D1の時刻の単位はサイクルとなる。即ち、イニシエータから入力されたデータの送信時刻として、システム内のクロック信号の周期を計数するカウンタ値を用いることで送信間隔の決定が実現される。
 次に、プロセッサI1からメモリT1に対してアクセスされる要求トランザクションを例にとって、送信間隔決定部134が、NIC1で発行されるアクセスのタイミングをどのように調整されるかを説明する。図22は、NIC1がプロセッサI1から要求される平均アクセス回数M1以下のアクセス・トランザクションを受け付けている様子を示す。時刻t0からレート保証期間が開始され、時刻t0+G1に至る迄のG1サイクルの区間内でM1回のアクセスが発行されることで、プロセッサI1はレート保証がなされるように動作する。また管理テーブル内のレート保証期間G1、平均アクセス間隔M1、間欠周期情報P1は、レート保証期間中に変更されることはないが、送信時刻情報J1、アクセス回数m1、次回送信時刻情報D1に関しては、送信間隔の制御を行うための状態変数として逐次変更がなされるものとする。
 レート保証期間が開始される時刻t0の時点で、送信時刻情報J1には、時刻t0―G1に開始された直前のレート保証期間中で最後にNIC1から送信された宛先T1宛の要求トランザクションの送信時刻が記録されている。またアクセス回数m1はゼロに初期化されている。図22では、時刻t0から開始されるレート保証期間内に要求されたプロセッサI1のメモリT1宛のアクセス・トランザクションに番号を付して、1、2、3と表している。また4回目以降のアクセスも、M1回に達する迄は同様に処理される。プロセッサI1から要求された要求トランザクション1は、NIC1から同時刻に要求パケットとして送信される。これにより、アクセス回数m1=1となり、送信時刻情報J1にはその送信時刻であるt0が記録される。次にプロセッサI1から要求されたトランザクション2は、要求時刻t1(I)と送信時刻情報J1との時間差であるΔt1が間欠周期情報P1以上であるため、直ちに要求が受け付けられて、NIC1から送信される。これにより、アクセス回数m1=2となり、その時刻が送信時刻情報J1に格納される。次にプロセッサI1から要求されたトランザクション3は、要求時刻t2(I)と送信時刻情報J1の時間差であるΔt2が間欠周期情報P1未満のため、要求が保留される。そして、次回送信時刻情報D1が下記数18によって決定され、管理テーブルに記録される。
D1=J1+P1     (数18)
 図22の例では、次回時刻情報D1に、要求トランザクション3がNIC1から送信され、m1=3となる。送信時刻情報J1としてその送信時刻が格納される。NIC1から要求パケットを送信する間隔として、最小でもP1サイクルが確保されるため、前後の要求パケット間の干渉を制限できる。
 ここで、プロセッサI1以外の他のプロセッサがメモリへのアクセスを行っておらず、プロセッサI1のみがメモリT1に対して連続的にアクセスを行う例を考える。換言すれば、プロセッサI1のみがメモリT1に対して連続的にアクセスを行う例を考える。
 図23は、プロセッサI1による連続的な要求タイミングと、NIC1によるアクセス要求の送信タイミングと、メモリT1におけるアクセスが観測されるタイミングとを示す。プロセッサI1からの連続したアクセスがNIC1を通過する際、送信間隔決定部134は、間欠周期情報P1によって示される定間隔のアクセスに変換する。他のプロセッサのアクセスがないため、ルータでのリソース競合が無ければ、メモリT1側で観測されるアクセスのタイミングもまた定間隔となる。
 また、レート保証期間G1サイクル内で、プロセッサI1の要求するアクセス数に対して、NIC1で受け付けるアクセス数をM1回以下に制限したい場合には、平均アクセス回数M1とNIC1が送信した要求トランザクション数m1を比較することにより可能となる。
 図24は、管理テーブルに記録された平均アクセス数M1を越える回数の要求トランザクションがプロセッサI1から送信された場合のNIC1での送信間隔の調整の様子を示す。時刻tM(I)にプロセッサI1からメモリT1宛に要求されたアクセス・トランザクションは、図22で説明した制御の結果、時刻tM(N)にNIC1から送信され、m1=M1、J1=tM(N)が管理テーブル内に記録されている。続いて同一レート保証期間内にM+1回目のアクセスが要求された場合、条件m1=M1が既に成立しているため、次回送信時刻が次のレート保証期間となるように下記数19に従って、管理テーブル内のD1を更新する。
D1=t0+G1     (数19)
 フロー11がレート保証期間G1内に、M1回以上の過剰なアクセス要求を行うような場合に、他のフローの割当帯域を奪わないためには、実際のアクセス回数をM1以下に制限する機能が必要となる。
 図25は送信間隔決定部134の処理フローを示す。図25は上述の処理の手順を表している。改めて個々のステップを説明することは省略する。
 かかる構成によれば、最小のバス動作周波数でイニシエータの性能保証を行うことが可能となる。また本実施形態では、複数の宛先メモリが存在する場合を説明しているが、宛先メモリが単一の場合であっても同様である。また本実施形態では、間欠情報生成部131が間欠周期情報および最小周波数情報を算出し、クロック生成部132が通信部133に送るバスの動作周波数を、最小周波数情報に従い動的に調整する構成を示したが、全てを動的に行わなくてもよい。
 さらに、間欠情報生成部131を設計ツール内の処理として実装し、ツールによって決定された間欠周期情報や最小周波数情報の値を設計パラメータとして用いて、他の構成部分の回路設計を行っても良い。その場合、クロック生成部132は、VCXOなどのクロック信号の周波数を動的に変更できる機能を有していなくても、設計パラメータとして決定された最小周波数情報に従った固定の周波数で発振するクロックジェネレータとして構成されても良い。または、クロック生成部132は、外部から所定周波数で駆動されるクロック信号を取得しても良い。このときの「所定周波数」は、設計ツールによって計算で生成された、最小の周波数である。また間欠周期情報やレート管理情報については、レジスタファイルやメモリやフリップフロップで構成された記憶領域などに格納しておくことにより、送信間隔決定部134が動作開始時に読み込むようにしても良い。間欠情報生成部131を設計ツールとして実装することにより、バスの帯域設計を計算プログラム等で行えるようになり、シミュレーションやエミュレーションによるバス帯域のカット・アンド・トライによる設計と検証が不要となり、開発工数が短縮できるという優れた効果を有する。
 図26は、実施形態1によるNIC130の構成の変形例を示す。
 図26に示すNIC130と、図15に示すNIC130との相違点は、図15に示すNIC130の間欠情報生成部131に代えて、間欠情報記憶部135を設けた点にある。
 間欠情報記憶部135は、たとえばフリップフロップを用いたレジスタとして構成され、設計ツールを用いて算出された間欠周期情報を記憶する。設計ツールで算出された最小周波数情報で駆動されたクロック信号は、外部で生成され、通信部133に印加される。通信部133はクロック信号に従って、ルータとの間でデータの通信を行う。間欠情報を生成する間欠情報生成部131に代えて、外部から受け取った間欠情報を記憶する間欠情報記憶部を設けた点を除いては、上述した実施形態1にかかる構成要素の動作は図26に示す構成にも適用可能である。
 送信時刻情報は、要求パケットの送信時刻を記録しても良いし、要求パケット送信時刻毎に初期化され、経時的に増加または減少するカウンタの値を管理しても良い。
 図27は、増加型のカウンタを用いた例を示す。通信部での要求パケット送信のタイミングでカウンタの計数値は0に初期化され、カウンタの値は要求パケット送信時刻からの経過時間を表す。送信間隔決定部134は、経過時刻情報としてカウンタの計数値を取得し、間欠周期情報の値以上であれば、イニシエータからの送信要求に呼応して送信許可を発行する。計数値を管理するカウンタは、送信間隔決定部134に設けられていても良い。その場合には、要求パケットを送信したタイミングを示す情報を通信部133から通知すれば良い。
 図28は、減少形のカウンタを用いた例を示す。通信部133は、要求パケットを送信したタイミングを送信間隔決定部134に通知する。送信間隔決定部134は通知を受けたタイミングでカウンタ値を間欠周期情報の値に初期化する。計数値が0以下であれば、イニシエータからの送信要求に呼応して送信許可を発行する。計数値を管理するカウンタは通信部133に設けられていても良い。その場合には、通信部133が間欠周期情報を間欠情報記憶部131から読み出す構成とすれば良い。
 その結果、通信部133がシステム内のクロック信号の周期を計数するカウンタを有し、イニシエータから入力されたデータの送信時刻にカウンタを初期化し、カウンタ値を経過時刻情報として送信間隔決定部134に供給する。送信間隔決定部134は、経過時刻情報が間欠周期情報または所定の計数値に達したことを判定し、イニシエータからの送信要求に対する送信許可を発行すればよい。
 (実施形態2)
 図29は、本実施形態のシステム構成図である。図29では、図1と同じ構成要素については同じ符号を用いている。それらの説明は実施形態1において既に説明したので、ここでは説明を省略する。
 本実施形態では、実施形態1に加えて、イニシエータI1とイニシエータI3の間でメモリを介さない直接通信を行う。以下においても、図15に示す構成のNIC130を適宜参照しながら説明する。図15に示すNIC130は、たとえば図29に示すNIC1に対応する。以下では便宜的にNIC1と記述する。
 図29のルータR3は、I3を宛先とするパケットを受け取った際に、リンクL3を介してルータR2に送るように経路表が設定されている。このような通信形態の具体的な例としては、イニシエータI1及びイニシエータI3が外部のハードディスクドライブをインタフェースするための入出力ポートのコントローラデバイスなどが考えられる。
 以下、ポートI1に接続されたハードディスクドライブからポートI3に接続されたハードディスクドライブにメモリを介さずに高速に格納データをコピーする処理の例を説明する。
 図29において、ポートI1にはデータの転送元となるハードディスクドライブHDDAが接続されている。またポートI3にはデータの転送先となるハードディスクドライブHDDBが接続されている。ハードディスクドライブの接続インタフェースは、たとえばシリアルATAである。
 図30は、ポートI1のフロー構成情報を示す。I4については、変更が無いため省略している。また図31は、宛先をI3とするフローだけを抽出した結果を示す。イニシエータ間の直接通信がある場合であっても、通信先のイニシエータをひとつの宛先として扱うだけで性能を保証することができる。
 NIC1では、間欠情報生成部131における間欠周期情報の算出時には、T1、T2に加えて、I3の宛先についても算出を行う。宛先I3に対する間欠周期情報をP5で表すと、下記数20により間欠周期情報が求められる。
Figure JPOXMLDOC01-appb-M000010
 イニシエータ間での直接通信においては、通信経路上に存在するルータは、I1とI3の直接通信の場合が、ルータR1、R3、R2の3個であり、メモリを宛先とする場合よりも1段多くなるため、固定レイテンシC5は下記数21により算出する。
Figure JPOXMLDOC01-appb-M000011
 直接通信のフローに対する性能保証の判定には、下記数22を用いる。
Figure JPOXMLDOC01-appb-M000012
 間欠情報生成部131は、全てのメモリ宛のフローに加えて、全ての直接通信のフローについても数22が成り立つ動作周波数Fを選択することで最小周波数情報を決定する。図32は、ポートI1に接続されたNIC1の管理テーブルの例を示す。ポートI3宛の直接通信のフローに関するパラメータである、レート保証期間G1、間欠周期情報P5、送信時刻情報J5、次回送信時刻D5については、最小周波数情報Fでサイクル単位に変換され格納されている。NIC1の送信間隔決定部134は、図32の管理テーブルに従い、実施形態1と同様の制御を宛先I3に対しても行う。
 本実施形態に示したようなイニシエータ間の直接通信を行うことによって、ターゲットT1~T4の物理帯域を越えた通信スループットを得ることが出来る点で優れた効果を有する。とくにターゲットとして全てのイニシエータ間で共有するシステムメモリを考えた場合、全てのフローがシステムメモリを介する構成では、メモリの物理帯域が非常に大きくならざるを得ない。イニシエータ間の直接通信のフローは、メモリを介さないため、メモリの物理帯域とは独立に、イニシエータのスループットを向上することができる。
 (実施形態3)
 図1において、イニシエータのアクセスタイミングに揺らぎがある場合に、その揺らぎの幅が大きいと、揺らぎを吸収するためにターゲット側に必要なデジッタリング・バッファのサイズが大きくなる。その結果、面積へのインパクトが問題となったり、複数のプロセッサが密なアクセスを行っている期間に、I4のような非保証型のアクセスが処理され難くなることがある。その場合には、本実施形態に示す方法で、送信間隔決定部134(図15)を構成することで、これらの問題を回避することができる。
 図33は、プロセッサI1のメモリT1宛のフロー11におけるアクセスのタイミングを示す。フロー11は、レート保証期間であるG1サイクルの期間内に、10回のアクセス(M1=10)を行うが、そのアクセスタイミングには揺らぎがあり、アクセスがバースト的に連続する密な期間と、アクセスが中断する疎な期間が繰り返されている。このような疎密の揺らぎの要因の例として、イニシエータの内部キャッシュでのヒット/ミスヒットによるもの等が考えられる。
 図33には、NIC1が送信するアクセス要求のタイミングを併せて示している。密な期間に連続的に要求されたアクセスの間隔が、フロー11の平均アクセス間隔に収束するように送信間隔が調整されている。このような送信間隔制御を実現するための送信間隔決定部134の動作を説明する。
 本実施形態にかかるNICの構成は、送信間隔決定部134以外の部分の構成については実施形態1のNIC130(図15)と同じである。特に説明しない構成要素については、図15に示す実施形態1のNIC130の説明を援用し、説明を省略する。
(送信間隔決定部134)
 図34は、送信間隔決定部134が保持する管理テーブルの例を示す。実施形態1の管理テーブル(図21)に加えて、宛先毎の累積サイクル数が記録されていることが理解される。累積サイクル数は、レート保証期間の開始時に零に初期化され、レート保証期間中は、NICからの送信タイミングと平均アクセス間隔とのサイクル単位でのずれを累積するために使用される。図35は、フロー11の送信間隔がどのように制御されるかを示す。説明のため、プロセッサI1がメモリT1宛に送信するフロー11のパケットに1から6の番号を付した。パケットのサイズはN1フリットとすると、1個のパケットを転送するのに要するサイクル数qは、下記数23で表される。
Figure JPOXMLDOC01-appb-M000013
 説明を簡単化するため、プロセッサI1、I2、I3がメモリT1宛に送信するパケットのサイズは全てqであるとする。レート保証間隔G1の開始サイクルt0において、サイクル累積値n1は零に初期化されている。間欠周期情報P1と平均コマンド間隔A11の間には、下記数24の関係が成り立つとする。
Figure JPOXMLDOC01-appb-M000014
 プロセッサI1から最初の送信要求が発行されると、送信間隔決定部134は、直前のレート保証期間の最終送信パケットの送信タイミングからの間隔が間欠周期情報であるP1サイクル以上空いていれば、直ちにパケット1のメモリT1への送信を行う。続いて発行された送信要求2に対しては、直前のパケット1の送信タイミングから、平均コマンド間隔であるA11の間隔を空けて、パケット2の送信を行う。アクセスの揺らぎにより、プロセッサI1からの送信要求2から送信要求3までの区間にはアクセス要求は発行されず、続く送信要求3がパケット3としてメモリT1に送信される。このとき送信間隔決定部134は、パケット2の送信タイミングからの経過時間と平均コマンド間隔との差(ずれ)を記録する。図35に示す例では、差(ずれ)は2qサイクルである。送信間隔決定部134は、その2qサイクルの値をサイクル累積値としてn1に記録する。次にプロセッサI1から送信要求4が発行されると、平均コマンド間隔とのずれであるサイクル累積値n1を考慮し、下記数25に従い、パケット4の送信タイミングを計算する。
Figure JPOXMLDOC01-appb-M000015
 t3、t4は、それぞれパケット3及びパケット4を送信した時刻を表す。図35の例でt4を計算すると、下記数26が成り立つ。
Figure JPOXMLDOC01-appb-M000016

よって、間欠周期情報P1の間隔でパケット4が送信される。このとき、下記数27に示すようにサイクル累積値n1から使用したサイクル数を差し引くことでn1を更新する。
Figure JPOXMLDOC01-appb-M000017
 図35では、n1の値が2qからqに更新されている。続く送信要求5でも同様にサイクル累積値n1に累積された累積値qを使用して、送信タイミングを平均コマンド間隔A11よりもqサイクルだけ早めている。その結果、サイクル累積値n1は零となっている。このため、プロセッサI1から発行された送信要求6は、平均コマンド間隔A11の間隔を空けて、パケット6としてメモリT1に送信されている。
 以上のようなサイクル累積値の管理により、各プロセッサの送信要求を平均化し、揺らぎを吸収することが可能となる。図36は、本実施形態における送信間隔決定部134の処理フローを示す。図36は上述の処理の手順を表している。改めて個々のステップを説明することは省略する。
 本実施形態によれば、たとえば間欠周期情報P1とプロセッサの平均アクセス間隔(平均コマンド間隔A11)との差が比較的小さい場合で、かつ平均アクセス間隔以上の間隔でアクセスが揺らいだ場合であっても、直近のパケット送信タイミングからの経過時間と平均コマンド間隔との差(ずれ)を算出し、その差を減らすよう、次のパケットの送信タイミングを早くする。これにより、プロセッサの平均要求帯域を守ることが可能になる。
 本開示は、組込機器向けのSoCにおけるオンチップバスや、汎用プロセッサ、DSP上のローカルバスにおける、データ転送経路の制御技術を備えたネットワークバス制御装置、制御方法、制御プログラムに利用可能である。
 130 制御装置
 131 間欠情報生成部
 132 クロック生成部
 133 通信部
 134 送信間隔決定部
 135 間欠情報記憶部

Claims (20)

  1.  イニシエータ、およびターゲットが分散型のバスで接続されたシステムにおいて使用され、前記イニシエータから前記バスを介して受け取ったアクセス要求の送信タイミングを制御する制御装置であって、
     前記システムの構成に関するシステム構成情報、および各イニシエータからのターゲットへのアクセスに必要とされる仕様をフロー単位で示すフロー構成情報とを用いて生成された間欠周期情報を記憶する間欠情報記憶部と、
     前記システム構成情報および前記フロー構成情報を用いて生成された各イニシエータのリアルタイム性能を保証可能なバス動作周波数で駆動されるクロック信号を取得するとともに、イニシエータから入力されたデータをパケット化し、前記クロック信号に従い、ルータへの送信パケットの送信と、入力された前記データの送信時刻を記録する通信部と、
     前記間欠周期情報、イニシエータからの送信要求の検出時刻、および直前の送信時刻から、前記送信要求に対する送信許可の発行時刻を決定する送信間隔決定部と
     を備えた制御装置。
  2.  前記間欠情報記憶部は、各イニシエータが同時に送信可能な最大データ長で、全てのイニシエータが同時に送信した場合において、ターゲットが全てのデータを受信し終えるまでに要するバスサイクル数を、前記間欠周期として記憶する、請求項1に記載の制御装置。
  3.  前記間欠情報記憶部は、少なくとも前記間欠周期を用いて算出された、パケットの送受信に要する最大レイテンシを記憶し、前記最大レイテンシが、最も小さい許容レイテンシを持つイニシエータの許容レイテンシを越えない条件下で特定される最小のバス動作周波数を、前記バス動作周波数として記憶する、請求項1または2に記載の制御装置。
  4.  前記送信間隔決定部は、前記間欠周期が、連続するパケットの最小の送信間隔となるよう、前記送信要求に対する送信許可の発行時刻を決定する、請求項3に記載の制御装置。
  5.  前記送信間隔決定部は、前記システムの仕様として予め定められたレート保証期間内の送信数を、予め定められた回数以下に制限する、請求項4に記載の制御装置。
  6.  前記送信間隔決定部は、連続するパケットの送信間隔を、前記システムの仕様として予め定められた平均アクセス間隔に近づけるように決定する、請求項4に記載の制御装置。
  7.  前記間欠情報記憶部は、送信対象となるターゲット及びイニシエータ毎に、各イニシエータのパケットサイズに基づいて算出された前記間欠周期を記憶する、請求項1に記載の制御装置。
  8.  前記間欠情報記憶部は、送信対象となるターゲット毎に算出された間欠周期を記憶する、請求項1に記載の制御装置。
  9.  イニシエータ、およびターゲットが分散型のバスで接続されたシステムにおいて使用され、前記イニシエータから前記バスを介して受け取ったアクセス要求の送信タイミングを制御する制御装置であって、
     前記システムの構成に関するシステム構成情報、および各イニシエータからのターゲットへのアクセスに必要とされる仕様をフロー単位で示すフロー構成情報から、パケット間の干渉を制限可能な間欠周期の情報、および各イニシエータのリアルタイム性能を保証可能な最小のバス動作周波数を示すバス動作周波数の情報を含む間欠情報を生成する間欠情報生成部と、
     前記バス動作周波数の情報に従いクロックを生成するクロック生成部と、
     前記クロックで動作し、入力されたデータをパケット化して送信し、入力された前記データの送信時刻を記録する通信部と、
     前記間欠周期、イニシエータからの送信要求の検出時刻、および直前の送信時刻から、前記送信要求に対する送信許可の発行時刻を決定する送信間隔決定部と
     を備えた、制御装置。
  10.  前記間欠情報生成部は、各イニシエータが同時に送信可能な最大データ長で、全てのイニシエータが同時に送信した場合において、ターゲットが全てのデータを受信し終えるまでに要するバスサイクル数を、前記間欠周期として算出する、請求項9に記載の制御装置。
  11.  前記間欠情報生成部は、少なくとも前記間欠周期を用いて、パケットの送受信に要する最大レイテンシを算出し、前記最大レイテンシが、最も小さい許容レイテンシを持つイニシエータの許容レイテンシを越えない条件下で特定される最小のバス動作周波数を、前記バス動作周波数として決定する、請求項9または10に記載の制御装置。
  12.  前記送信間隔決定部は、前記間欠周期が、連続するパケットの最小の送信間隔となるよう、前記送信要求に対する送信許可の発行時刻を決定する、請求項11に記載の制御装置。
  13.  前記送信間隔決定部は、前記システムの仕様として予め定められたレート保証期間内の送信数を、予め定められた回数以下に制限する、請求項12に記載の制御装置。
  14.  前記送信間隔決定部は、連続するパケットの送信間隔を、前記システムの仕様として予め定められた平均アクセス間隔に近づけるように決定する、請求項12に記載の制御装置。
  15.  前記間欠情報生成部は、送信対象となるターゲット及びイニシエータ毎に、各イニシエータのパケットサイズに基づいて前記間欠周期を算出する、請求項9に記載の制御装置。
  16.  前記間欠情報生成部は、送信対象となるターゲット毎に、間欠周期を算出する、請求項9に記載の制御装置。
  17.  イニシエータ、およびターゲットが分散型のバスで接続されたシステムのバス周波数を決定するシステム設計方法であって、
     予め用意された、前記システムの構成に関するシステム構成情報、および各イニシエータからのターゲットへのアクセスに必要とされる仕様をフロー単位で示すフロー構成情報から、パケット間の干渉を制限可能な間欠周期を生成するステップと、
     少なくとも前記間欠周期に基づいてパケットの送受信に要する最大レイテンシを算出するステップと、
     前記最大レイテンシが、最も小さい許容レイテンシを持つイニシエータの許容レイテンシを越えない条件下で最小となるバス動作周波数を決定するステップと
     を包含する、システム設計方法。
  18.  前記通信部は、イニシエータから入力されたデータの送信時刻として、システム内のクロック信号の周期を計数するカウンタ値を用いる、請求項1または9に記載の制御装置。
  19.  前記通信部は、システム内のクロック信号の周期を計数するカウンタを有し、イニシエータから入力されたデータの送信時刻に前記カウンタを初期化し、前記カウンタ値を経過時刻情報として送信間隔決定部に供給し、
     前記送信間隔決定部は、前記経過時刻情報が前記間欠周期情報または所定の計数値に達したことを判定し、前記イニシエータからの送信要求に対する送信許可を発行する、請求項1から16のいずれかに記載の制御装置。
  20.  前記イニシエータが前記ターゲットに対し、連続的にアクセス要求を送信している場合において、
     前記送信間隔決定部は、前記間欠周期情報によって示される周期で、前記アクセス要求を前記ターゲットに宛てて定間隔に送信する、請求項1から16のいずれかに記載の制御装置。
PCT/JP2012/005984 2011-09-29 2012-09-20 制御装置 WO2013046607A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013535881A JP6179812B2 (ja) 2011-09-29 2012-09-20 制御装置
US13/952,097 US9189013B2 (en) 2011-09-29 2013-07-26 Controller using intermittent information

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011213869 2011-09-29
JP2011-213869 2011-09-29

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/952,097 Continuation US9189013B2 (en) 2011-09-29 2013-07-26 Controller using intermittent information

Publications (1)

Publication Number Publication Date
WO2013046607A1 true WO2013046607A1 (ja) 2013-04-04

Family

ID=47994692

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/005984 WO2013046607A1 (ja) 2011-09-29 2012-09-20 制御装置

Country Status (3)

Country Link
US (1) US9189013B2 (ja)
JP (1) JP6179812B2 (ja)
WO (1) WO2013046607A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017517978A (ja) * 2014-06-06 2017-06-29 ネットスピード システムズ ネットワーク・オン・チップ設計向けのトランザクショナル・トラフィック仕様

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US9742630B2 (en) 2014-09-22 2017-08-22 Netspeed Systems Configurable router for a network on chip (NoC)
US9660942B2 (en) * 2015-02-03 2017-05-23 Netspeed Systems Automatic buffer sizing for optimal network-on-chip design
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
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
US10063496B2 (en) 2017-01-10 2018-08-28 Netspeed Systems Inc. Buffer sizing of a NoC through machine learning
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
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
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
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)
US11176302B2 (en) 2018-02-23 2021-11-16 Netspeed Systems, Inc. System on chip (SoC) builder

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63280364A (ja) * 1987-05-13 1988-11-17 Fujitsu Ltd デ−タ転送制御方式
JPH0573483A (ja) * 1991-09-17 1993-03-26 Oki Electric Ind Co Ltd バス使用権制御方法
JP2009301588A (ja) * 2005-07-06 2009-12-24 Panasonic Corp アクセス制御装置、アクセス制御集積回路、及びアクセス制御方法
WO2012140848A1 (ja) * 2011-04-13 2012-10-18 パナソニック株式会社 制御装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2778258A1 (fr) * 1998-04-29 1999-11-05 Texas Instruments France Controleur d'acces de trafic dans une memoire, systeme de calcul comprenant ce controleur d'acces et procede de fonctionnement d'un tel controleur d'acces
JP4732632B2 (ja) * 2001-08-06 2011-07-27 株式会社フジクラ 通信システム
JP2006293799A (ja) 2005-04-13 2006-10-26 Sony Corp 情報処理装置、および情報処理方法
JP4873557B2 (ja) 2007-01-12 2012-02-08 ルネサスエレクトロニクス株式会社 データ処理装置及び半導体集積回路
US20080270658A1 (en) * 2007-04-27 2008-10-30 Matsushita Electric Industrial Co., Ltd. Processor system, bus controlling method, and semiconductor device
JP2009237763A (ja) * 2008-03-26 2009-10-15 Hitachi Ltd サーバシステム及びその制御方法
US8458409B2 (en) * 2008-03-27 2013-06-04 Panasonic Corporation Access controller
US8510606B2 (en) * 2010-02-04 2013-08-13 Randolph Eric Wight Method and apparatus for SAS speed adjustment
JP5535322B2 (ja) * 2010-06-02 2014-07-02 株式会社日立製作所 バックエンドでの通信の規格がsasであるストレージシステム
JP6184064B2 (ja) * 2012-07-19 2017-08-23 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation メモリサブシステム、コンピュータ・システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63280364A (ja) * 1987-05-13 1988-11-17 Fujitsu Ltd デ−タ転送制御方式
JPH0573483A (ja) * 1991-09-17 1993-03-26 Oki Electric Ind Co Ltd バス使用権制御方法
JP2009301588A (ja) * 2005-07-06 2009-12-24 Panasonic Corp アクセス制御装置、アクセス制御集積回路、及びアクセス制御方法
WO2012140848A1 (ja) * 2011-04-13 2012-10-18 パナソニック株式会社 制御装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
E. RIJPKEMA ET AL.: "Trade-offs in the design of a router with both guaranteed and best-effort services for networks on chip", COMPUTERS AND DIGITAL TECHNIQUES, IEE PROCEEDINGS, vol. 150, no. 5, 22 September 2003 (2003-09-22), INSTITUTION OF ELECTRICAL ENGINEERS. STEVENAGE, GB, pages 294 - 302, XP006021112 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017517978A (ja) * 2014-06-06 2017-06-29 ネットスピード システムズ ネットワーク・オン・チップ設計向けのトランザクショナル・トラフィック仕様

Also Published As

Publication number Publication date
JPWO2013046607A1 (ja) 2015-03-26
US20130311819A1 (en) 2013-11-21
JP6179812B2 (ja) 2017-08-16
US9189013B2 (en) 2015-11-17

Similar Documents

Publication Publication Date Title
JP6179812B2 (ja) 制御装置
CN111104775B (zh) 一种片上网络拓扑结构及其实现方法
JP5335892B2 (ja) パケット交換オンチップ相互接続ネットワークの高速仮想チャネル
US7308523B1 (en) Flow-splitting and buffering PCI express switch to reduce head-of-line blocking
US10193831B2 (en) Device and method for packet processing with memories having different latencies
JP4612094B2 (ja) バス間でのメッセージの自動ルーティングのためのゲートウェイ
JP5853211B2 (ja) バスインタフェース装置、中継装置、およびそれらを備えたバスシステム
JP5975446B2 (ja) アクセス制御装置、中継装置、アクセス制御方法、コンピュータプログラム
WO2019127597A1 (zh) 一种发送报文的方法、设备和系统
WO2014103144A1 (ja) インタフェース装置、およびメモリバスシステム
JP2009538069A (ja) マルチプロセッサ・ゲートウェイ
US11726928B2 (en) Network interface device with bus segment width matching
JP5776022B2 (ja) 制御装置
Becker et al. Partitioning and analysis of the network-on-chip on a COTS many-core platform
JP2022121525A (ja) 処理装置、処理方法及びプログラム
JP2018520434A (ja) Usb2.0帯域幅予約のための方法およびシステム
CN112867998A (zh) 运算加速器、交换器、任务调度方法及处理系统
US8103788B1 (en) Method and apparatus for dynamically reallocating buffers for use in a packet transmission
Abdallah et al. I/O contention aware mapping of multi-criticalities real-time applications over many-core architectures
JP5838367B2 (ja) 制御装置および演算回路の数を決定するための設計方法
CN110601996B (zh) 一种采用令牌保底分布式贪心算法的环网防饥饿流控方法
Hua et al. HOSA: Holistic scheduling and analysis for scalable fault-tolerant FlexRay design
JP5715458B2 (ja) 情報処理システム、調停方法
KR101061187B1 (ko) 버스 시스템 및 그 제어 장치
US9678905B2 (en) Bus controller, bus control system and network interface

Legal Events

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

Ref document number: 12835717

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013535881

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12835717

Country of ref document: EP

Kind code of ref document: A1