WO2014156282A1 - バスマスタ、バスシステム及びバス制御方法 - Google Patents

バスマスタ、バスシステム及びバス制御方法 Download PDF

Info

Publication number
WO2014156282A1
WO2014156282A1 PCT/JP2014/051959 JP2014051959W WO2014156282A1 WO 2014156282 A1 WO2014156282 A1 WO 2014156282A1 JP 2014051959 W JP2014051959 W JP 2014051959W WO 2014156282 A1 WO2014156282 A1 WO 2014156282A1
Authority
WO
WIPO (PCT)
Prior art keywords
transfer
command information
bus
slave
output
Prior art date
Application number
PCT/JP2014/051959
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 CN201480017943.3A priority Critical patent/CN105190583A/zh
Priority to US14/768,021 priority patent/US20160062930A1/en
Priority to DE112014001621.7T priority patent/DE112014001621T5/de
Priority to JP2015508129A priority patent/JP6058122B2/ja
Publication of WO2014156282A1 publication Critical patent/WO2014156282A1/ja

Links

Images

Classifications

    • 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/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • 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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Definitions

  • the present invention relates to a bus master, a bus system, and a bus control method.
  • system LSIs that incorporate a CPU (Central Processing Unit), a graphic controller, and a cache memory of several hundred kilobytes or more are mounted on communication devices or image processing devices.
  • CPU Central Processing Unit
  • graphic controller a graphic controller
  • cache memory a cache memory of several hundred kilobytes or more
  • modules are connected by a system bus and data transfer is performed.
  • a structure conforming to the AXI protocol established by British ARM has become the mainstream.
  • a bus master represented by a CPU, a graphic controller, a DMA (Dynamic Memory Access) controller, etc., and an external memory represented by a cache memory, a DRAM (Dynamic Random Access Memory), etc. are connected point-to-point via a bus interconnect.
  • the bus master must wait until the write response channel signal or the read data channel signal is output from the bus slave in order to complete the write operation or read operation to the bus slave. For this reason, in order to improve the data transfer performance as a bus system, it is necessary to reduce the waiting time of the bus master.
  • Patent Document 1 describes a bus system including a bus master that performs a next access after receiving a write response signal indicating a data write result in a write access.
  • the bus system includes a signal generation unit that outputs a dummy write response channel signal to the bus master when the end of the write data signal output from the bus master is detected. Since the bus master in the bus system described in Patent Document 1 receives the dummy write response channel signal before receiving the original write response channel signal, preparation for the next access is started in response to the dummy write response channel signal. can do. Therefore, writing in the bus slave and preparation for the next access in the bus master can be processed in parallel. Therefore, in a bus master in which the number of write commands that can be issued simultaneously is defined as 1, it is possible to reduce the delay time when performing write or read access continuously after write access. That is, the data transfer performance can be improved when a write access is performed.
  • next write address channel signal and read address channel signal are masked during the period from when the dummy write response channel signal is issued until the original write response channel signal is obtained. Cannot be output. For this reason, the effect of improving the data transfer performance cannot be obtained by performing a plurality of data transfers such as the out-of-order transfer defined by AXI in parallel.
  • the present invention has been made to solve the above-described problems, and an object thereof is to improve the data transfer performance by controlling the order in which the command information of the transfer request is sent.
  • the bus master includes: an access generation unit that generates command information including a transfer type indicating a type of a transfer request for requesting data transfer and a transfer target address of a bus slave to which the transfer request is sent; A command queue for storing a plurality of command information generated by the access generation unit, and a first queue having a transfer target address included in the first command information among the plurality of command information stored in the command queue Transfer request output order control for selecting, as output target command information, second command information including a transfer target address possessed by a second bus slave having a slower response than the bus slave as output target command information. And the command information selected by the transfer request output order control unit are included in the selected command information.
  • a transfer request output section that outputs to the bus slave having a transfer target address that, characterized in that it comprises a.
  • a bus system is a bus system including at least one bus master and a plurality of bus slaves, wherein the at least one bus master includes a transfer type indicating a type of transfer request for requesting data transfer, and An access generation unit that generates command information including the transfer target address of one bus slave of the plurality of bus slaves to which the transfer request is sent, and a command that stores a plurality of command information generated by the access generation unit
  • the queue and the second bus slave having a slower response than the first bus slave having the transfer target address included in the first command information among the plurality of command information stored in the command queue
  • the second command information including the transfer target address is used as the output target command information.
  • a transfer request output order control unit that is selected prior to the command information of the bus, and a bus slave having the transfer target address included in the selected command information, the command information selected by the transfer request output order control unit And a transfer request output unit for outputting to the network.
  • the bus control method includes an access generation process for generating command information including a transfer type indicating a type of a transfer request for requesting data transfer and a transfer target address of a bus slave to which the transfer request is sent.
  • a command queuing process for storing a plurality of command information generated in the access generation process, and a transfer target address included in the first command information among the plurality of command information stored in the command queuing process
  • the second command information including the transfer target address possessed by the second bus slave whose response is slower than that of the first bus slave having, is selected prior to the first command information as the command information to be output.
  • the command information selected in the transfer request output order control process and the transfer request output order control process is selected.
  • the data transfer performance can be improved by controlling the order of sending the command information of the transfer request.
  • FIG. 3 is a block diagram schematically showing a configuration of a bus system according to Embodiments 1 to 3.
  • FIG. 3 is a block diagram schematically showing a configuration of a bus master 110 in the first embodiment.
  • FIG. 6 is a schematic diagram showing information stored in a command queue in Embodiment 1.
  • FIG. 6 is a schematic diagram illustrating an example of address map information according to Embodiment 1.
  • FIG. 6 is a schematic diagram illustrating an example of transfer order matching information according to Embodiment 1.
  • FIG. 6 is a flowchart illustrating processing in which a command queue residence time comparison unit according to Embodiment 1 updates transfer order matching information.
  • FIG. 6 is a flowchart illustrating processing when a transfer request output order control unit according to Embodiment 1 selects command information of any queue number stored in a command queue with reference to transfer order matching information.
  • 6 is a time chart showing an operation before transfer order matching information is updated in the first embodiment.
  • 6 is a time chart showing an operation after transfer order matching information is updated in the first embodiment.
  • FIG. 6 is a block diagram schematically showing a configuration of a bus master in a second embodiment.
  • 6 is a schematic diagram illustrating an example of transfer response input time information stored in a transfer response input time storage unit according to Embodiment 2.
  • FIG. FIG. 10 is a block diagram schematically showing a configuration of a bus master in the third embodiment. 10 is a timing chart showing the operation of the bus master in the third embodiment.
  • FIG. 10 is a block diagram schematically showing a configuration of a bus system according to a fourth embodiment.
  • FIG. 10 is a block diagram schematically showing a configuration of a bus master in a fourth embodiment.
  • it is a flowchart (the 1) which shows the process at the time of a queue number control part obtaining the transfer response input time signal from a bus master, and giving an output queue number control signal to a bus master.
  • it is a flowchart (the 2) which shows the process at the time of a queue number control part obtaining the transfer response input time signal from a bus master, and giving an output queue number control signal to a bus master.
  • FIG. 14 is a timing chart illustrating the operation of the bus master when the transfer request output order control unit in the fourth embodiment suppresses the upper limit of the number of transfer requests output to the bus slave.
  • FIG. 10 is a block diagram schematically showing a configuration of a bus system according to a fifth embodiment.
  • FIG. 10 is a block diagram schematically showing a configuration of a bus master in the fifth embodiment.
  • the processing when the transfer request output order controller in the fifth embodiment selects command information of any queue number stored in the command queue with reference to the transfer order matching information and the maximum number of transfer requests of the bus slave. It is a flowchart (the 1) shown.
  • the processing when the transfer request output order controller in the fifth embodiment selects command information of any queue number stored in the command queue with reference to the transfer order matching information and the maximum number of transfer requests of the bus slave. It is a flowchart (the 2) shown.
  • FIG. 1 is a block diagram schematically showing the configuration of the bus system 100 according to the first embodiment.
  • the bus system 100 includes bus masters 110A to 110C (referred to as the bus master 110 when it is not necessary to distinguish between them) and bus slaves 130A to 130C (referred to as the bus slave 130 when it is not necessary to distinguish between them). Are connected via the bus interconnect 150.
  • the bus system 100 is an on-chip bus according to the AXI protocol.
  • the reference numerals in parentheses in FIG. 1 indicate the configurations in the second and third embodiments.
  • a number described after “#” is a bus master number as bus master identification information for identifying the bus master 110.
  • the number described after “#” is a bus slave number as bus slave identification information for identifying the bus slave 130.
  • the bus master 110 is a CPU, a graphic controller, a DMA controller, or the like.
  • the bus slave 130 is a cache memory or a DRAM.
  • transfer between the bus master 110 and the bus slave 130 can be performed independently for each path.
  • data transfer between the bus master 110A and the bus slave 130A and data transfer between the bus master 110B and the bus slave 130B can be performed independently.
  • the AXI protocol defines five channels: a write address channel, a write data channel, a write response channel, a read address channel, and a read data channel.
  • Each channel can be operated independently even in the same route.
  • the write address channel signal may be issued continuously a plurality of times, and the transmission / reception of the write channel signal and the transmission / reception of the read channel signal may be performed simultaneously. That is, in the AXI protocol, a plurality of data transfers can be performed in parallel.
  • a different transfer ID is assigned to each channel for each transfer.
  • the bus master 110A outputs read address channel signals to two or more of the bus slaves 130A to 130C using different transfer IDs, two or more data transfers are performed in parallel at the bus slaves 130A to 130C. Executed.
  • the time required for the bus slaves 130A to 130C to process the transfer request input from the bus master 110A is the operating frequency for each of the bus slaves 130A to 130C and the reading of the memory etc. constituting the bus slaves 130A to 130C. Depends on the number of cycles.
  • the order in which the bus slaves 130A to 130C output the transfer response to the bus master 110A via the bus interconnect 150 does not necessarily match the order in which the transfer requests are received from the bus master 110A.
  • the AXI protocol supports such out-of-order transfer, and a plurality of data transfers can be efficiently performed in parallel.
  • each channel handshaking is performed between the bus master 110 and the bus slave 130 using the Valid signal and the Ready signal.
  • the bus master 110 outputs a Valid signal for the write address channel, the write data channel, and the read address channel, and the bus slave 130 outputs a Ready signal corresponding to each.
  • the bus slave 130 outputs a Valid signal of the write response channel and the read data channel, and the bus master 110 outputs a Ready signal in response to each.
  • the Valid signal and the Ready signal are given individual names for each channel in order to distinguish them from each other.
  • the bus master 110A when writing data from the bus master 110A to the bus slave 130A, the bus master 110A outputs a write address channel signal and a write data channel signal together with a Valid signal.
  • the bus slave 130A captures the write address channel signal and the write data channel signal input from the bus master 110A by outputting a Ready signal, and starts the write process.
  • the time required for writing by the bus slave 130 differs for each bus slave 130 depending on the operating frequency for driving the bus slave 130 and the data write flow.
  • the operating frequency is equal to or higher than that of the bus interconnect 150, and the bus slave 130A is one clock cycle at the fastest. To complete the writing process.
  • the bus slave 130A is an external serial interface or the like
  • the processing speed at the interface is relatively low and the bus signal needs to be divided into a plurality of times. The number of cycles is required.
  • the bus slave 130A When the bus slave 130A completes the writing process, the bus slave 130A outputs a write response channel signal together with the Valid signal to the bus master 110A.
  • the bus master 110A captures the write response channel signal by outputting the Ready signal, and completes a series of write operations.
  • the bus master 110A When data is read from the bus master 110A to the bus slave 130A, the bus master 110A outputs a read address channel signal together with a Valid signal.
  • the bus slave 130A takes in the read address channel signal input from the bus master 110A by outputting a Ready signal, and starts the read process.
  • the time required for the bus slave 130A to read differs for each bus slave 130A as described above.
  • the bus slave 130A completes the read process, the bus slave 130A outputs a read data channel signal together with the Valid signal to the bus master 110A.
  • the bus master 110A takes in the read data channel signal by outputting a Ready signal, and completes a series of read operations.
  • FIG. 2 is a block diagram schematically showing the configuration of the bus master 110 in the first embodiment.
  • the bus master 110 includes an access generation unit 111, a command queue 112, a data queue 113, a transfer request output order control unit 114, a transfer request output unit 115, a transfer response input unit 116, an address map storage unit 117, A command queue residence time comparison unit 118 and a transfer order matching information storage unit 119 are provided.
  • the bus master 110 is a module that transfers data to a memory or a peripheral device, such as a CPU or a DMA controller. Therefore, the access generation unit 111 generates a data transfer request and gives the transfer request to the command queue 112 and the data queue 113.
  • This transfer request includes command information composed of a transfer type of writing or reading, a transfer target address and a transfer data length (also referred to as a burst length), and write data when the transfer type is writing.
  • the access generation unit 111 stores command information including the transfer type, transfer target address, and transfer data length in the command queue 112, and stores write data in the data queue 113.
  • the access generation unit 111 generates command information including a transfer type indicating the type of transfer request for requesting data transfer and a transfer target address of the bus slave to which the transfer request is sent, and uses this command information as a command.
  • command information including a transfer type indicating the type of transfer request for requesting data transfer and a transfer target address of the bus slave to which the transfer request is sent, and uses this command information as a command.
  • the command queue 112 stores the command information generated by the access generation unit 111. Note that the command queue 112 stores management information for managing command information in addition to command information.
  • FIG. 3 is a schematic diagram showing information stored in the command queue 112. 3 shows an example in which the queue configuration number of the command queue 112 is “4” and information is stored in an area to which the queue numbers “0” to “3” are assigned. It may be configured with an arbitrary number of queues depending on the operation speed or the amount of transfer data.
  • the command information includes the transfer type, transfer target address, and transfer data length given from the access generation unit 111, respectively.
  • the transfer type is information indicating the type of transfer request for requesting data transfer.
  • the transfer types there are “write” for writing data to the bus slave 130 and “read” for reading data from the bus slave 130.
  • the transfer target address is the address of the bus slave 130 to which the transfer request is sent.
  • the transfer data length is information indicating the size of data to be transferred.
  • the management information includes queue valid / invalid information, transfer request output information, and transfer ID for each command information.
  • the queue valid / invalid information is information indicating whether the corresponding command information is valid or invalid. When the queue valid / invalid information indicates “invalid”, the corresponding command information is deleted.
  • the transfer request output information is information indicating whether or not corresponding command information has been output. When the transfer request output information is “not yet”, it indicates that the corresponding command information is not sent to the bus slave 130. When the transfer request output information is “completed”, the corresponding command information is sent. It shows that.
  • the transfer ID is transfer identification information for identifying each command information.
  • each command information and its management information are stored in the areas of the queue numbers “0” to “3” according to the order in which the command information is given from the access generation unit 111.
  • the command information and its management information given earliest to the command queue 112 are stored in the area of the queue number “0”, and the command information and its management information given next are stored in the area of the queue number “1”.
  • the queue number indicates the order in which command information is given from the access generation unit 111.
  • the transfer request output order control unit 114 has a slower response than the first bus slave having the transfer target address included in the first command information among the plurality of command information stored in the command queue 112.
  • the second command information including the transfer target address possessed by the two bus slaves is selected prior to the first command information as the output target command information.
  • the transfer request output order control unit 114 refers to the transfer order matching information stored in the transfer order matching information storage unit 119, selects command information to be output, and is stored in the command queue 112. Controls the order in which command information is output. More specifically, the transfer request output order control unit 114 outputs the command information stored in the command queue 112 to the bus interconnect 150 in the order in which they are stored, or the command information stored later is stored in the command information previously stored.
  • the transfer request output order control unit 114 selects command information to be output according to the determination result.
  • the selected command information is output from the transfer request output unit 115 to the bus interconnect 150.
  • the command information transfer type is “write”
  • the write data stored in the data queue 113 is also output.
  • the transfer request output unit 115 outputs the command information selected by the transfer request output order control unit 114 to the bus slave 130 having the transfer target address included in the selected command information. Specific processing in the transfer request output unit 115 is as follows.
  • the transfer request output unit 115 assigns a transfer ID when outputting the command information stored in the command queue 112 to the bus interconnect 150.
  • the transfer ID is independently identified for each writing and reading by the bus interconnect 150.
  • the queue number of the command queue 112 in which the command information is stored may be used as it is, or the minimum number (“0”) excluding the transfer ID of the command information that has been output for each writing and reading. "An integer greater than or equal to" may be used.
  • the transfer request output unit 115 stores the assigned transfer ID in the command queue 112 as management information of the address information to which the transfer ID is assigned.
  • the transfer request output unit 115 stores the write address channel signal WAC indicating the command information stored in the command queue 112 and the data queue 113 when the type of command information stored in the command queue 112 is “write”.
  • a write data channel signal WDC indicating the written data is output to the bus interconnect 150 together with the Valid signal.
  • the transfer request output unit 115 generates a read address channel signal RAC indicating the command information stored in the command queue 112 as a Valid signal. At the same time, it is sent to the bus interconnect 150.
  • a bus slave 130 is connected to the bus interconnect 150.
  • the bus interconnect 150 transfers the write address channel signal WAC, the write data channel signal WDC, and the read address channel signal RAC to the bus slave 130 corresponding to the transfer target address.
  • the bus slave 130 receives these signals by outputting a Ready signal indicating that signals can be received. If the transfer data length is greater than “1”, the write data channel signal WDC is output for the data length.
  • the transfer request output unit 115 outputs the Last signal together with the Valid signal.
  • the bus slave 130 that has received the write address channel signal WAC and the write data channel signal WDC outputs the write response channel signal WRC to the bus interconnect 150 together with the Valid signal.
  • the bus slave 130 when the transfer data length is larger than “1”, the bus slave 130 outputs the write response channel signal WRC when the reception of the last write data channel signal WDC is completed.
  • the bus slave 130 that has received the read address channel signal RAC outputs a read data channel signal RDC indicating the corresponding read data to the bus interconnect 150 together with the Valid signal.
  • the bus slave 130 when the transfer data length is larger than “1”, the bus slave 130 outputs the Last signal together with the Valid signal when outputting the last read data channel signal RDC.
  • Whether the bus slave 130 can accept the transfer request immediately is determined for each bus slave 130 depending on the operating frequency and the transfer data processing method. If the bus slave 130 cannot accept the transfer request immediately, the bus slave 130 delays the timing for outputting the Ready signal and postpones the acceptance to the bus interconnect 150.
  • the bus interconnect 150 transfers the Ready signal input from the bus slave 130 to the transfer request output unit 115 of the bus master 110, and the transfer request output unit 115 maintains the signal output until the Ready signal becomes valid.
  • the transfer response input unit 116 receives an input of a response from the bus slave 130 with respect to the command information output from the transfer request output unit 115. For example, the transfer response input unit 116 outputs a Ready signal to the bus interconnect 150, thereby receiving the write response channel signal WRC or the read data channel signal RDC from the bus interconnect 150. Then, the transfer response input unit 116 notifies the command queue residence time comparison unit 118 of the transfer ID of the received signal.
  • the address map storage unit 117 stores address map information including a transfer target address and a bus slave number of the bus slave 130 having the transfer target address.
  • FIG. 4 is a schematic diagram illustrating an example of address map information.
  • the address map information 117a is table information having a base address column 117b, an upper limit address column 117c, and a bus slave number column 117d.
  • the base address column 117b stores a transfer target address serving as a reference.
  • the upper limit address column 117c stores an upper limit transfer target address.
  • a transfer target address included between the reference transfer target address stored in the base address column 117b and the upper transfer target address stored in the upper limit address column 117c is allocated.
  • the bus slave number of the bus slave 130 is stored.
  • the transfer slave address included in the range of addresses specified by the base address column 117b and the upper limit address column 117c is held by the bus slave 130 having the bus slave number specified by the bus slave number column 117d of the record. To be. Therefore, the bus slave to which the transfer target address is allocated can be specified by the address map information 117a.
  • the command queue residence time comparison unit 118 compares the residence time from when the command information stored in the command queue 112 is output to when a response based on the command information is acquired, and the command information with a longer residence time is obtained.
  • the transfer order matching information stored in the transfer order matching information storage unit 119 is stored so that the command information to the bus slave 130 that is the transfer destination is output before the command information to the other bus slaves 130. Update.
  • the command queue residence time comparison unit 118 refers to the management information and command information stored in the command queue 112, and based on the transfer ID notified from the transfer response input unit 116, the command that has responded The information transfer target address and queue number are specified.
  • the command queue residence time comparison unit 118 identifies the bus slave 130 having the identified transfer target address by referring to the address map information 117a stored in the address map storage unit 117.
  • the command queue residence time comparison unit 118 is assigned to a queue number smaller than the specified queue number, and is still valid command information, in other words, output before the command information that has been responded, Check if there is any command information.
  • the command queue residence time comparison unit 118 refers to the address map information 117a stored in the address map storage unit 117, so that the command information transfer destination bus is stored.
  • the slave 130 is specified.
  • the command queue residence time comparison unit 118 receives the command information for the bus slave 130 specified from the command information without a response earlier than the command information for the bus slave 130 specified from the command information with a response.
  • the transfer order matching information stored in the transfer order matching information storage unit 119 is updated so as to be output.
  • the transfer order matching information storage unit 119 stores transfer order matching information including information indicating whether the response to the output command information is reversed for each combination of the bus slaves 130.
  • FIG. 5 is a schematic diagram illustrating an example of transfer order matching information.
  • the transfer order matching information 119a is table information including a preceding slave column 119b and a subsequent slave row 119c. In the preceding slave column 119b, the bus slave number of the bus slave 130 connected to the bus interconnect 150 is stored in each column. In the subsequent slave row 119c, the bus slave number of the bus slave 130 connected to the bus interconnect 150 is stored in each column.
  • the column 119d corresponding to the bus slave number stored in the preceding slave column 119b and each bus slave number stored in the subsequent slave row 119c is specified by the bus slave number stored in the preceding slave column 119b.
  • Information indicating the response acquisition order between the bus slave 130 and the bus slave 130 identified by the bus slave number stored in the subsequent slave row 119c is stored. For example, when this field 119d is “normal order”, the command information to the bus slave 130 specified by the bus slave number stored in the corresponding preceding slave column 119b is output first, and the corresponding succeeding slave When command information to the bus slave 130 specified by the bus slave number stored in the row 119c is output later, it indicates that responses are acquired in the output order.
  • the command information to the bus slave 130 specified by the bus slave number stored in the corresponding preceding slave column 119b is output first, and the corresponding subsequent slave row
  • command information to the bus slave 130 specified by the bus slave number stored in 119c is output later, it indicates that responses are input in the reverse order of the output order. Note that immediately after the activation of the bus system 100, the contents of the transfer order matching information 119a are initialized to “normal order” in all combinations.
  • FIG. 6 is a flowchart showing processing in which the command queue residence time comparison unit 118 updates the transfer order matching information 119a.
  • the command queue residence time comparison unit 118 refers to the command information and management information stored in the command queue 112, and has a queue number having a transfer ID that matches the transfer ID notified from the transfer response input unit 116. Is specified as Q (0 ⁇ Q ⁇ (number of queues ⁇ 1)). Then, the command queue residence time comparison unit 118 updates the queue valid / invalid information of the identified queue number Q from “valid” to “invalid” in the management information, and indicates that the transfer request output information has been output. Update from “done” to “not yet” indicating no output. Then, the command queue residence time comparison unit 118 starts the flow shown in FIG.
  • the command queue residence time comparison unit 118 refers to the address map information stored in the address map storage unit 117, and based on the transfer target address of the queue number Q, the bus slave that is the transfer destination of the queue number Q A bus slave number for identifying 130 is acquired. Then, the command queue residence time comparison unit 118 sets the acquired bus slave number as the subsequent slave number (S10).
  • the command queue residence time comparison unit 118 specifies the queue number storing the oldest command information from the command queue 112 as L (0 ⁇ L ⁇ (queue number ⁇ 1)) (S11).
  • the oldest command refers to the queue number stored in the command queue 112 earliest in the currently stored command information.
  • the command queue residence time comparison unit 118 compares the queue numbers Q and L to determine whether Q and L are equal (S12). When Q and L are equal (S12; Yes), since there is no command information stored before that, the command queue residence time comparison unit 118 ends the flow without updating the transfer order matching information. To do. On the other hand, when Q and L are not equal (S12; No), the process proceeds to step S13.
  • step S13 the command queue residence time comparison unit 118 refers to the address map information stored in the address map storage unit 117, and based on the transfer target address of the queue number L, the transfer destination of the queue number L. A bus slave number for identifying the bus slave 130 is acquired. Then, the command queue residence time comparison unit 118 sets the acquired bus slave number as the preceding slave number (S13).
  • the command queue residence time comparison unit 118 compares the preceding slave number with the subsequent slave number and determines whether or not they are the same (S14). If they are the same (S14; Yes), the process proceeds to step S18. If they are not the same (S14; No), the process proceeds to step S15.
  • step S15 the command queue residence time comparison unit 118 refers to the management information stored in the command queue 112 to determine whether or not the command information of the queue number L is “valid”.
  • the process proceeds to step S16, and when the command information of the queue number L is “invalid” (S15; No). The process proceeds to step S17.
  • step S16 since the transfer response input order is from the subsequent slave to the preceding slave, the output order of the transfer request (command information) does not match the input order of the transfer response. Therefore, the command queue residence time comparison unit 118 updates the value of the corresponding column 119d to “reverse order” in the transfer order matching information 119a stored in the transfer order matching information storage unit 119. Then, the process proceeds to step S18.
  • step S17 since the transfer response input order is from the preceding slave to the subsequent slave, the command queue residence time comparison unit 118 uses the transfer order matching information 119a stored in the transfer order matching information storage unit 119. , The value of the corresponding column 119d is updated to “normal order”. Then, the process proceeds to step S18.
  • step S18 the command queue residence time comparison unit 118 increments the queue number L by “1” and returns to the process of step S12. Then, the command queue residence time comparison unit 118 repeats the processing of steps S12 to S18 until the queue number L matches the queue number Q.
  • command information and management information stored in the command queue 112 are the information shown in FIG.
  • the command information is output in the order of the queue numbers “0” to “3” and the input order of the transfer responses is the order of the queue numbers “0”, “1”, “3”, and “2”, the preceding information
  • the transfer response from the bus slave 130A with the subsequent slave number “1” is input earlier than the bus slave 130C with the slave number “3”. In such a case, as shown in FIG.
  • the transfer order matching information 119a includes the preceding slave number “3” (bus slave # 3) and the subsequent slave number “1” (bus slave # 1).
  • the column 119d corresponding to the combination is updated to “reverse order”, and the column 119d corresponding to the other combinations is updated to “normal order”.
  • FIG. 7 is a flowchart showing processing when the transfer request output order controller 114 selects command information of any queue number stored in the command queue 112 with reference to the transfer order matching information 119a.
  • the transfer request output order control unit 114 searches for a queue number X in which the queue state is valid and the transfer request has not been output in order from the queue number “0” (S20 to S22). Specifically, the transfer request output order control unit 114 sets “0”, which is the minimum queue number, as the queue number X, and sets the number of command information that can be stored in the command queue 112 as the queue number N ( S20). Here, in the example illustrated in FIG. 3, the queue number N is “4”. Next, the transfer request output order control unit 114 refers to the management information stored in the command queue 112 to determine whether or not the command information of the queue number X is “valid” (S21).
  • step S22 the transfer request output order control unit 114 refers to the management information stored in the command queue 112, and determines whether or not the command information of the queue number X has been output. If the command information for queue number X has already been output (S22; Yes), the process proceeds to step S29. If the command information for queue number X has not been output (S22; No), the process proceeds to step S29. Proceed to S23.
  • step S24 the transfer request output order control unit 114 refers to the management information stored in the command queue 112 to determine whether or not the command information of the queue number (X + 1) has been output. If the command information for the queue number (X + 1) has been output (S24; Yes), the process proceeds to step S28, and if the command information for the queue number (X + 1) has not been output (S24; No). The process proceeds to step S25.
  • step S25 the transfer request output order control unit 114 refers to the management information stored in the command queue 112 and identifies the transfer target addresses of the queue number X and the queue number (X + 1). Then, the transfer request output order control unit 114 refers to the address map information 117a stored in the address map storage unit 117, so that the bus slave number corresponding to the transfer target address of the queue number X and the queue number (X + 1). To get. Then, the transfer request output order control unit 114 sets the bus slave number of the queue number (X + 1) as the preceding slave number and the bus slave number of the queue number X as the subsequent slave number.
  • the transfer request output order control unit 114 refers to the transfer order matching information 119a, and the relationship between the transfer request output order and the transfer response input order in the combination of the preceding slave number and the subsequent slave number specified in step S25 is “ It is confirmed whether or not it is “reverse order” (S26). If the confirmation result is “reverse order” (S26; Yes), the process proceeds to step S27. If the confirmation result is “normal order” (S26; No), the process proceeds to step S28. .
  • step S27 the transfer request output order control unit 114 gives the command information of the queue number (X + 1) to the transfer request output unit 115 to output this command information. Then, the process proceeds to step S28.
  • step S28 the transfer request output order control unit 114 gives the command information of the queue number X to the transfer request output unit 115 to output this command information. Then, the process proceeds to step S29.
  • the relationship between the transfer request output order and the transfer response input order is “reverse order”
  • the command information for the queue number X is output after the command information for the queue number (X + 1) is output.
  • the relationship between the transfer request output order and the transfer response input order is “normal order”
  • the command information of the queue number X is output.
  • the transfer request output order control unit 114 increments the queue number X by “1” (S29). Then, the transfer request output order control unit 114 checks whether the queue number X is equal to or greater than the queue number N (S30). When the queue number X is equal to or greater than the queue number N (S30; Yes), the transfer request output order control unit 114 ends the flow. On the other hand, when the queue number X is less than the queue number N (S30; No), the process returns to step S21. Note that the transfer request output order control unit 114 starts the flow of FIG. 7 again when the flow ends.
  • the transfer request output order control unit 114 has the bus having the transfer target address included in the command information stored first in the command information stored in the command queue 112.
  • the bus slave having the transfer target address included in the command information stored next is the subsequent slave, and information indicating that the response is reversed is included in the transfer order matching information 119a
  • the command information stored next can be selected as the command information to be output before the command information stored first.
  • FIG. 8 is a time chart showing the operation when the transfer order matching information is updated, in other words, the values in all the columns in the transfer order matching information are in “normal order”.
  • FIG. 9 is a time chart showing an operation when the transfer order matching information is updated to the transfer order matching information 119a shown in FIG. 5 after the transfer order matching information is updated. 8 and 9 each sequentially processes data transfer to a plurality of bus slaves 130 based on the command information and management information shown in FIG. 3, in which the bus master 110 is stored in the command queue 112. Shows the case.
  • time (T1) to time (T13) are times for the same unit time.
  • the write address channel signal WAC and the write data channel signal WDC are output from the bus master at the same time interval. 8 and 9, the time required to obtain a transfer response from the bus slave 130A and the bus slave 130B is 2 unit hours, and the time required to obtain a transfer response from the bus slave 130C is 7 unit hours. .
  • the transfer request output order control unit 114 extracts the transfer type, the transfer target address, and the transfer data length according to the order stored in the command queue 112, and the transfer request output unit 115. To give.
  • the transfer request output unit 115 performs time (T1), time (T3), time (T5), and time (T7).
  • write data channel signal WDC at time (T2), time (T4), time (T6), and time (T8), respectively, as transfer target address A21, transfer target address A11, and transfer target. Issued in the order of address A31 and transfer target address A12.
  • the bus slave 130A having the bus slave number “1”. Is a transfer target address.
  • the transfer target address A21 is a transfer target address included in the bus slave 130B having the bus slave number “2”.
  • the transfer target address A31 is a transfer target address included in the bus slave 130C having the bus slave number “3”.
  • the response to the address A31 stored in the queue number 2 of the command queue 112, that is, the transfer request to the bus slave 130C is obtained at a time (T13) that is seven unit times after the time (T6) at which the transfer request is issued.
  • T13 time
  • T6 time
  • the time required to obtain the transfer response is shorter than that of the bus slave 130C, and two units of time from the time (T8). After the elapse, a transfer response is obtained at time (T10).
  • the command queue residence time comparison unit 118 obtains a transfer response from the bus slave 130A corresponding to the queue number 3 at time (T10), the command queue residence time comparison unit 118 obtains the transfer destination slave numbers in order from the queue number 0. At this time, the command queue residence time comparison unit 118 sets the bus slave number “1” of the bus slave 130A as the subsequent slave number. Since the command information for the bus slave 130B (bus slave number “2”) is stored in the queue number 0, the bus slave number “2” is set as the preceding slave number (step S13 in FIG. 6).
  • the command queue residence time comparison unit 118 checks whether the command information of the queue number 0 is “valid” or “invalid” (step in FIG. 6). S15).
  • the transfer response to the command information of queue number 0 has already been input at time (T4), and the command information of queue number 0 is invalidated at time (T10). Therefore, the transfer response input order of the queue number 0 and the queue number 3 is the same as the transfer request output order and the transfer response input order because the bus slave 130B with the preceding slave number is ahead of the bus slave 130C with the subsequent slave number. . Therefore, the command queue residence time comparison unit 118 updates the value of the corresponding column to “normal order” in the transfer order matching information (step S17 in FIG. 6).
  • the transfer destination bus slave of the queue number 1 is the bus slave 130A of the bus slave “1” as in the queue number 3 (Yes in step S14 in FIG. 6), and the command queue residence time comparison unit 118 performs the transfer. Do not update order alignment information.
  • the transfer-destination bus slave of queue number 2 is the bus slave 130C of bus slave number “3”, and the queue valid state is still maintained at time (T10). Accordingly, the transfer response input order changes from the bus slave 130A having the subsequent slave number to the bus slave 130C having the preceding slave number, and the transfer request output order does not match the transfer response input order.
  • the value of the corresponding column is updated to “reverse order” (step S16 in FIG. 6). Only the combination of the preceding slave number “3” and the subsequent slave number “1” is “reverse order” as in the transfer order matching information 119a shown in FIG. "
  • the transfer request output order control unit 114 indicates that the command information of the oldest queue number 0 and the command information of the next oldest queue number 1 among the command information stored in the command queue 112 is “valid” and the transfer request Since it has not been output, the bus slave number “2” and the bus slave number “1” which are the respective transfer destination bus slaves are acquired.
  • the transfer request output order control unit 114 sets the bus slave number “2” as the subsequent slave number and the bus slave number “1” as the preceding slave number (step S25 in FIG. 7). Then, the transfer request output order control unit 114 refers to the transfer order matching information 119a and confirms that the combination of the preceding slave number “1” and the succeeding slave number “2” is “normal order” (step S1).
  • step S26 the queue number 0 is first selected in the order stored in the command queue 112 (step S28 in FIG. 7). Then, the transfer request output order control unit 114 causes the transfer request output unit 115 to output the write address channel signal WAC for the transfer target address A21 at time (T1).
  • the transfer request output order control unit 114 refers to the command information and management information stored in the command queue 112, and the queue number 1 and the queue number 2 are “valid” and the transfer request is not output. Therefore, the bus slave number “3” that is the transfer destination bus slave of the queue number 2 is the preceding slave number, and the bus slave number “1” that is the transfer destination bus slave of the queue number 1 is the subsequent slave number (step in FIG. 7). S25). Then, the transfer request output order control unit 114 refers to the transfer order matching information 119a, and the combination of the preceding slave number “3” and the subsequent slave number “1” is “reverse order”. It is determined that the time required to obtain the transfer response is longer than the time required to obtain the transfer response from the bus slave 130A.
  • the transfer request output order control unit 114 first selects the queue number 2 and gives it to the transfer request output unit 115. Then, the transfer request output order control unit 114 causes the transfer request output unit 115 to output the write address channel signal WAC for the transfer target address A31 at time (T3). Subsequently, the transfer request output order control unit 114 selects the queue number 1, and causes the transfer request output unit 115 to output the write address channel signal WAC to the transfer target address A11 at time (T5).
  • the transfer request output order control unit 114 selects the queue number 3 because the command information of the queue number 0 in which the transfer request is stored next to the queue number 3 is invalid (No in step S23 in FIG. 7). To do. Then, the transfer request output order control unit 114 causes the transfer request output unit 115 to output the write address channel signal WAC to the address A12 at time (T7).
  • the response to the transfer request to the address A31 stored in the queue number 2, that is, the bus slave 130C (bus slave number “3”) is the time when the transfer request is output. It is obtained at time (T11) after 7 unit hours from (T4). For this reason, compared with FIG. 8 which shows the operation
  • the transfer request output order and the transfer response input order for the bus slaves 130A to 130C are monitored, and the bus slave 130 that takes a long time to return a transfer response between the bus slaves 130 is specified.
  • the bus master 110 sends a transfer request to the bus slave 130 that takes a long time to return a transfer response based on a specific result between the target bus slaves 130 of successive transfer request commands to another bus slave 130. Output before.
  • the time for obtaining a transfer response from the bus slave 130 can be shifted forward compared to the case where the transfer requests are issued in the order of the command queue, and the time for which the transfer request stays in the command queue can be shortened.
  • the bus master 110 can shorten the time required to complete the processing for the transfer request stored in the command queue, and can efficiently perform data transfer.
  • the transfer request to the bus slave 130 is It is output before a transfer request to another bus slave 130.
  • the command queue residence time is continuously compared and the transfer order matching information is updated.
  • the first embodiment is configured. For this reason, it is possible to perform bus transfer suitable for the operation of the bus slave 130 without continuing unnecessary replacement of the transfer request output order.
  • the bus system 200 according to the second embodiment includes bus masters 210A to 210C (referred to as the bus master 210 when there is no need to distinguish each of them) and bus slaves 130A to 130C (in particular, When there is no need to distinguish between them, the bus slave 130 is connected via the bus interconnect 150.
  • the bus system 200 according to the second embodiment is different from the bus system 100 according to the first embodiment in a bus master 210.
  • FIG. 10 is a block diagram schematically showing the configuration of the bus master 210 in the second embodiment.
  • the bus master 210 includes an access generation unit 111, a command queue 112, a data queue 113, a transfer request output order control unit 214, a transfer request output unit 115, a transfer response input unit 116, an address map storage unit 117, A time measurement counter 220, a transfer response input time measurement unit 221, and a transfer response input time storage unit 222 are provided.
  • the bus master 210 according to the second embodiment performs processing in place of the processing in the transfer request output order control unit 214 and the command queue residence time comparison unit 118 and the transfer order matching information storage unit 119 according to the first embodiment.
  • the present embodiment is different from the bus master 110 in the first embodiment in that the counter 220, the transfer response input time measuring unit 221 and the transfer response input time storage unit 222 are provided.
  • the time measurement counter 220 generates a count value for measuring time by counting in a predetermined cycle. Then, the time measurement counter 220 gives the measured count value to the transfer response input time measurement unit 221.
  • the transfer response input time measuring unit 221 measures the time from when the transfer request is output until the response is input as the transfer response input time. For example, when the transfer request output unit 115 outputs the read address channel signal RAC or the write address channel signal WAC, the transfer response input time measurement unit 221 refers to the address map information 117a stored in the address map storage unit 117. The bus slave number of the transfer destination bus slave 130 is specified from the transfer target address. Further, the transfer response input time measuring unit 221 refers to the command information stored in the command queue 112 and corresponds to the transfer ID of the read address channel signal RAC or the write address channel signal WAC output from the transfer request output unit 115. The transfer type and transfer data length to be acquired are acquired.
  • the transfer response input time measurement unit 221 acquires the count value when the transfer request output unit 115 outputs the read address channel signal RAC or the write address channel signal WAC from the time measurement counter 220. Then, the transfer response input time measuring unit 221 acquires the specified bus slave number, the acquired transfer type, and the transfer ID of the read address channel signal RAC or the write address channel signal WAC output from the transfer request output unit 115. The transferred data length and the acquired count value are stored in the memory 221a. Thereafter, when the transfer ID of the read data channel signal RDC or the write response channel signal WRC is notified from the transfer response input unit 116, the transfer response input time measurement unit 221 acquires the count value from the time measurement counter 220. Then, the transfer response input time measuring unit 221 counts when the transfer request for the notified transfer ID stored in the memory 221a is output from the count value acquired when the transfer ID is notified. The transfer response input time for the transfer destination bus slave 130 is calculated.
  • the transfer response input time measurement unit 221 transfers the transfer response input stored in the transfer response input time storage unit 222 based on the calculated transfer response input time and the corresponding bus slave number, transfer type, and transfer data length. Update time information. For example, if the corresponding bus slave number, transfer type, and transfer data length are already stored in the transfer response input time information, the transfer response input time measurement unit 221 uses the already stored transfer response input time. Delete and store the transfer response input time calculated this time. On the other hand, when the corresponding bus slave number, transfer type, and transfer data length are not stored in the transfer response input time information, the transfer response input time measuring unit 221 and the transfer response input time calculated this time are stored. And store.
  • the transfer response input unit 116 waits for the read data channel signal RDC corresponding to the transfer data length to be input, and then transfers the transfer ID to the transfer response.
  • the input time measuring unit 221 is notified.
  • the transfer response input time storage unit 222 stores the transfer response input time measured by the transfer response input time measurement unit 221 for each bus slave 130.
  • the transfer response input time is from the read address channel signal RAD is output for each bus slave 130 until the read data channel signal RDC (last read data channel signal RDC in the case of burst read) is input.
  • the time from when the write address channel signal WAC is output to when the write response channel signal WRC is input is a value expressed by the measurement accuracy of the time measurement counter 220.
  • the transfer response input time stored for each bus slave 130 is different between writing and reading, and the time required for writing and the time required for reading may be individually stored.
  • FIG. 11 is a schematic diagram illustrating an example of transfer response input time information stored in the transfer response input time storage unit 222.
  • the transfer response input time information 222a includes a bus slave number column 222b that stores a bus slave number, a transfer type column 222c that stores a transfer type, and transfer data that stores a transfer data length.
  • the table information includes a long column 222d and a transfer response input time column 222e for storing a transfer response input time.
  • FIG. 11 shows transfer response input time information 222a for storing transfer response input time for each transfer destination slave by distinguishing write, read, and burst lengths.
  • the transfer request output order control unit 214 controls the order of sending the command information stored in the command queue 112 by selecting the command information to be output based on the transfer response input time information 222a. For example, the transfer request output order control unit 214 outputs command information requesting transfer to the bus slave 130 having a long transfer response input time before command information requesting transfer to another bus slave 130. Like that. Specifically, the transfer request output order control unit 214 refers to the transfer response input time information 222a, and specifies the transfer type, transfer data length, and transfer destination corresponding to the oldest command information stored in the command queue 112. The transfer response input time of the bus slave number of the bus slave 130 is acquired, and this transfer response input time is set as the response time of the preceding bus slave.
  • the transfer request output order control unit 214 refers to the transfer response input time information 222a, and corresponds to the second oldest command information, the transfer type, the transfer data length, and the bus slave number of the transfer destination bus slave 130. Transfer response input time is acquired, and this transfer response input time is set as the response time of the subsequent bus slave. When the response time of the preceding bus slave is shorter than the response time of the subsequent bus slave, the transfer request output order control unit 214 selects the queue number in which the oldest command information is stored. On the other hand, when the response time of the preceding bus slave is equal to or longer than the response time of the subsequent bus slave, the transfer request output order control unit 214 selects the queue number in which the second oldest command information is stored.
  • the transfer request output order control unit 214 gives the command information of the selected queue number to the transfer request output unit 115.
  • the transfer request output unit 115 generates the read address channel signal RAC or the write address channel signal WAC103 according to the contents of the given command information, and outputs the generated signal. Then, after outputting the generated signal, the transfer request output order control unit 214 updates the transfer request output information of the selected queue number from being not output to being output.
  • the transfer request output order control unit 214 in the second embodiment refers to the transfer response input time stored in the transfer response input time storage unit 222, and includes the command information stored in the command queue 112.
  • the transfer response input time of the bus slave having the transfer target address included in the command information stored next is the transfer response input time of the bus slave having the transfer target address included in the command information stored next.
  • the command information stored next can be selected as the command information to be output before the command information stored first.
  • the bus master 210 stores the time required until a transfer response is returned, and outputs a transfer request to the bus slave 130 having a long transfer time before the other bus slaves 130. Since the time for completing the transfer can be shifted forward, the data transfer of the bus master 210 can be performed efficiently.
  • the bus system 300 according to the third embodiment includes bus masters 310A to 310C (referred to as bus master 310 when there is no need to distinguish each of them) and bus slaves 130A to 130C (particularly, When there is no need to distinguish between them, the bus slave 130 is connected via the bus interconnect 150.
  • the bus system 300 according to the third embodiment is different from the bus system 200 according to the second embodiment in the bus master 310.
  • FIG. 12 is a block diagram schematically showing the configuration of the bus master 310 in the third embodiment.
  • the bus master 310 includes an access generation unit 111, a command queue 112, a data queue 113, a transfer request output order control unit 314, a transfer request output unit 115, a transfer response input unit 116, an address map storage unit 117, A time measurement counter 220, a transfer response input time measurement unit 221, a transfer response input time storage unit 222, and a timer counter 323 are provided.
  • the bus master 310 according to the third embodiment is different from the bus master 210 according to the second embodiment in that the transfer request output order control unit 314 is further provided with a timer counter 323.
  • the timer counter 323 generates a count value for measuring time by counting in a predetermined cycle according to an instruction from the transfer request output order control unit 314. Then, the timer counter 323 gives the measured count value to the transfer request output order control unit 314.
  • the transfer request output order control unit 314 causes the timer counter 323 to start counting when referring to the command queue 112. Then, the transfer request output order control unit 314 refers to the transfer response input time information 222a stored in the transfer response input time storage unit 222, so that the transfer destinations of all command information stored in the command queue 112 are transferred.
  • the bus slave 130 acquires the transfer response input time corresponding to the access type and burst length.
  • the transfer request output order control unit 314 sets the bus slave 130 that is the transfer destination of the oldest command information among the command information for which transfer request output information has not been output as the preceding slave, and the commands stored after the oldest command queue. Each of the bus slaves 130 to which information is transferred is made a subsequent slave.
  • the transfer request output order control unit 314 calculates a value Trev for each of all subsequent slaves by the following equation (1).
  • Trev FRT ⁇ (PRT + TT) (1)
  • FRT is the transfer response input time of the subsequent slave
  • PRT is the transfer response input time of the preceding slave
  • TT is the count value of the timer counter 323.
  • the transfer request output order control unit 314 selects a queue number that maximizes the Trev value. select. If there is no queue number satisfying Trev> 0, a transfer request to the preceding slave is selected.
  • the transfer request output order control unit 314 gives the command information of the selected queue number to the transfer request output unit 115.
  • the transfer request output unit 115 generates a read address channel signal RAC or a write address channel signal WAC according to the contents of the given command information, and outputs the generated signal. Then, after the output of the generated signal, the transfer request output order control unit 314 updates the transfer request output information of the selected queue number from being not output to being output.
  • the timer counter 323 and the time measurement counter 220 are assumed to have the same measurement accuracy.
  • the value of Trev is calculated by the equation (1) using a value that matches any measurement accuracy.
  • FIG. 13 is a timing chart showing the operation of the bus master 310 when the transfer response input time of each bus slave 130 is the transfer response input time stored in the transfer response input time information 222a shown in FIG. It is.
  • the measurement accuracy in the timer counter 323 and the time measurement counter 220 is equal to one unit time of (T1) to (T10) shown in FIG.
  • the transfer request output order control unit 314 refers to the transfer response input time information 222a, and transfers to the destination bus slave 130B (bus slave) in the command information of queue number 0 shown in FIG. Number “2”), transfer type “write”, and transfer data length “1”, 2 unit times are acquired as the transfer response input time. The two unit times are set as the transfer response input time PRT of the preceding slave. Similarly, the transfer request output order control unit 314 sets the transfer destination bus slave 130A (bus slave number “1”), transfer type “write”, and transfer data length “1” in the command information of queue number 1. 2 unit time is acquired as the corresponding transfer response input time. Therefore, the transfer response input time FRT of the subsequent slave corresponding to the queue number 1 is “2”.
  • the transfer request output order control unit 314 sets the transfer destination bus slave 130C (bus slave number “3”), transfer type “write”, and transfer data length “1” in the command information of queue number 2. 7 unit time is acquired as the corresponding transfer response input time. Therefore, the transfer response input time FRT of the subsequent slave corresponding to the queue number 2 is “7”. Similarly, the transfer request output order control unit 314 uses the transfer destination bus slave 130A (bus slave number “1”), the transfer type “write”, and the transfer data length “1” in the command information of queue number 3. 2 unit time is acquired as the transfer response input time corresponding to. Therefore, the transfer response input time FRT of the subsequent slave corresponding to the queue number 3 is “2”.
  • the transfer request output order control unit 314 instructs the timer counter 323 to start counting from “0”.
  • T1 since the transfer response input time PRT of the preceding slave is “2” and the count value of the timer counter 323 is “0”, the transfer request output order control unit 314 satisfies the above equation (1). Based on this, it is confirmed whether there is a queue number satisfying the following expression (2) using each FRT of the queue numbers 1 to 3.
  • Trev FRT ⁇ (2 + 0)> 0 (2)
  • the transfer request output order control unit 314 sets the queue number 2 at the time (T1). select.
  • the transfer request output unit 115 outputs the write address channel signal WAC according to the command information of the queue number 2 based on the selection result of the transfer request output order control unit 314, and then does not output the transfer request output information of the queue number 2 Update from to output.
  • the transfer request output order control unit 314 sets the transfer response input time PRT of the preceding slave to “2” and the count value of the timer counter 323 to “3”, and based on the above equation (1), the queue number 1 and Using each of the three FRTs, it is confirmed whether there is a queue number satisfying the following expression (3).
  • Trev FRT ⁇ (2 + 3)> 0 (3)
  • the transfer request output order control unit 314 performs the queue at time (3). Select the number 0.
  • the transfer request output unit 115 outputs the write address channel signal WAC according to the command information of the queue number 0 based on the selection result of the transfer request output order control unit 314, and then does not output the transfer request output information of the queue number 0 Update from to output.
  • the transfer request output order control unit 314 sets the transfer response input time PRT of the preceding slave to “2” and the count value of the timer counter 323 to “5”, and sets the queue number 3 based on the above equation (1).
  • FRT FRT ⁇ (2 + 5)> 0 (4)
  • the transfer request output order control unit 314 selects the queue number 1 at time (T5).
  • the transfer request output unit 115 outputs the write address channel signal WAC according to the command information of queue number 1 based on the selection result of the transfer request output order control unit 314, and then does not output the transfer request output information of queue number 1 Update from to output.
  • the transfer request output order control unit 314 selects queue number 3.
  • the transfer request output unit 115 outputs the write address channel signal WAC according to the command information of the queue number 3 based on the selection result of the transfer request output order control unit 314, and then does not output the transfer request output information of the queue number 3 Update from to output.
  • transfer responses to transfer requests output at time (T1), time (T3), time (T5), and time (T7) are respectively time (T9) and time (T6). ), Time (T8) and time (T10).
  • the time required to complete the transfer request can be reduced by 3 unit hours.
  • the transfer request output order control unit 314 refers to the transfer response input time stored in the transfer response input time storage unit 222 and stores the command information stored in the command queue 112.
  • the transfer response input time of the bus slave having the transfer target address included in any one command information except the command information stored first is included in the command information stored first. Any one command information prior to the first stored command information when the transfer response input time of the bus slave having the target address is longer than the time obtained by adding the elapsed time from a predetermined time. Can be selected as command information to be output.
  • a transfer request to a bus slave having a long transfer time can be output before other bus slaves, and the time for completing the transfer can be shifted forward. Data transfer can be performed efficiently.
  • the bus system 300 when comparing the response time of the preceding slave and the subsequent slave stored in the command queue, takes into account the elapsed time since the start of the comparison. It is possible to avoid that the transfer completion of is delayed later than the transfer completion to the subsequent slave.
  • FIG. 14 is a block diagram schematically showing the configuration of the bus system 400 according to the fourth embodiment.
  • the bus system 400 includes bus masters 410A to 410C (referred to as the bus master 410 when it is not necessary to distinguish each of them) and bus slaves 130A to 130C (referred to as the bus slave 130 when it is not necessary to distinguish between them). Are connected via the bus interconnect 150.
  • a queue number control unit 470 is connected to the bus master 410.
  • the bus system 400 according to the fourth embodiment is different from the bus system 300 according to the third embodiment in that processing is performed by the bus master 410 and a queue number control unit 470 is further provided.
  • the queue number control unit 470 outputs the command information to the bus slave 130 whose transfer response input time tends to increase based on the transfer response input time of each bus slave 130 measured by the transfer response input time measurement unit 221.
  • the transfer request output order control unit 414 is instructed to limit the number.
  • the queue number control unit 470 outputs the output queue number control signal OQN to the bus master 410 with reference to the transfer response input time signal TRT output from the bus master 410.
  • the queue number control unit 470 monitors the transfer response input time of each bus slave 130 based on the transfer response input time signal TRT output from the bus master 410, and the bus slave 130 whose transfer response input time has increased.
  • An output queue number control signal OQN is given to each bus master 410 so as to reduce the number of outputs of transfer requests to the bus master 410.
  • FIG. 15 is a block diagram schematically showing the configuration of the bus master 410 in the fourth embodiment.
  • the bus master 410 includes an access generation unit 111, a command queue 112, a data queue 113, a transfer request output order control unit 414, a transfer request output unit 115, a transfer response input unit 116, an address map storage unit 117, A time measurement counter 220, a transfer response input time measurement unit 221, a transfer response input time storage unit 222, and a timer counter 323 are provided.
  • the bus master 410 according to the fourth embodiment is different from the bus master 310 according to the third embodiment in terms of processing in the transfer request output order control unit 414.
  • the transfer response input time signal TRT which is an output from the transfer response input time storage unit 222 in the fourth embodiment, is given to the transfer request output order control unit 414 and the queue number control unit 470.
  • the transfer request output order control unit 414 includes the transfer response input time FRT of the subsequent slave, the transfer response input time PRT of the preceding slave, and a timer counter.
  • the queue number storing the command information to be output is selected based on the count value TT of H.323, but the command to be output to each bus slave 130 according to the output queue number control signal OQR from the queue number control unit 470 Control the number of information outputs. For example, when the upper limit suppression of the transfer request to the specific bus slave 130 is instructed by the output queue number control signal OQR from the queue number control unit 470, the transfer request output order control unit 414 A plurality of transfer requests to the slave 130 are not output.
  • the transfer request output order control unit 414 performs the normal operation. Returning to FIG. 8, a plurality of transfer requests to the specific bus slave 130 can be output.
  • 16 and 17 are flowcharts showing processing when the queue number control unit 470 obtains the transfer response input time signal TRT from the bus master 410 and gives the output queue number control signal OQN to the bus master 410.
  • the queue number control unit 470 refers to the transfer response input time signal TRT every time a predetermined time elapses (S40). Next, the queue number control unit 470 assigns “1” as an initial value to the bus slave number “S” (S41). The bus slave number “1” indicates the bus slave 130A. Next, the queue number control unit 470 sets the value of Tcurrent [S], which is the total value of the transfer response input time of the bus slave 130 indicated by the bus slave number “S”, to an initial value “0” (S42). Next, the queue number control unit 470 assigns “1” as an initial value to the bus master number “M” (S43). The bus master number “1” indicates the bus master 110A.
  • the queue number control unit 470 acquires the transfer response input time of the bus slave number “S” based on the transfer response input time signal TRT sent from the bus master 410 of the bus master number “M” (S44). . Then, the queue number control unit 470 sets the acquired response time as the value TR.
  • the queue number control unit 470 sets the total value of all the distinguished transfer response input times as the value TR.
  • the queue number control unit 470 adds the value TR to the value of Tcurrent [S] (S45).
  • the queue number control unit 470 increments the bus master number “M” by “1” (S46).
  • the queue number control unit 470 determines whether or not the bus master number “M” is equal to or less than the number of bus masters 410 connected to the bus interconnect 150 (S47). If the bus master number “M” is less than or equal to the number of bus masters 410 (S47; Yes), the process returns to step S44. On the other hand, if the bus master number “M” is larger than the number of bus masters 410 (S47; No), the process proceeds to step S48 in FIG.
  • the queue number control unit 470 can calculate the total value of the transfer response input times of the bus slave 130 with the bus slave number “S”.
  • the total value is the sum of transfer response input times calculated by the plurality of bus masters 410.
  • the transfer response input time of each bus slave 130 is distinguished by the transfer type and transfer data length, the transfer response input of each bus slave 130 is made without distinguishing the transfer type and transfer data length. Time is added up.
  • step S48 of FIG. 17 the queue number control unit 470 reads the total value Tlast [S] of the transfer response input time of the bus slave number “S” that was previously referred from the memory 470a. Then, the queue number control unit 470 determines whether or not the value of Tcurrent [S] is larger than the value of Tlast [S]. When the value of Tcurrent [S] is larger than the value of Tlast [S] (S48; Yes), the process proceeds to step S49, and when the value of Tcurrent [S] is equal to or less than the value of Tlast [S] (S48). ; No), the process proceeds to step S53.
  • step S49 the queue number control unit 470 determines that the transfer response time of the bus slave 130 with the bus slave number “S” has increased, and adds “1” to the continuous increase number to obtain the value of the continuous decrease number. Is returned to the initial value “0”.
  • the queue number control unit 470 determines whether or not the number of continuous increases is equal to or greater than a predetermined first threshold (S50). If the number of continuous increases is equal to or greater than the first threshold (S50; Yes), the process proceeds to step S51. If the number of continuous increases is smaller than the first threshold (S50; No), the process proceeds to step S59. move on.
  • step S51 the queue number control unit 470 determines that the transfer load of the bus slave 130 having the bus slave number “S” is high. Then, the queue number control unit 470 provides all the bus masters 410 with an output queue number control signal OQN that instructs to suppress the upper limit of the number of transfer requests to be output. Upon receiving such an instruction, the transfer request output order control unit 414 of the bus master 410 prevents a plurality of transfer requests to the bus slave 130 with the bus slave number “S” from being output.
  • the queue number control unit 470 returns the continuous increase count to the initial value “0” (S52). Then, the process proceeds to step S59.
  • step S48 determines whether or not the value of Tcurrent [S] is smaller than the value of Tlast [S].
  • the queue number control unit 470 determines whether or not the value of Tcurrent [S] is smaller than the value of Tlast [S].
  • step S54 the queue number control unit 470 returns the continuous increase count and the continuous decrease count to the initial value “0”.
  • step S55 the queue number control unit 470 determines that the transfer response time of the bus slave 130 with the bus slave number “S” has decreased, and adds “1” to the number of consecutive decreases, Is returned to the initial value “0”.
  • the queue number control unit 470 determines whether or not the number of consecutive decreases is equal to or greater than a predetermined second threshold (S56). If the number of consecutive decreases is equal to or greater than the second threshold (S56; Yes), the process proceeds to step S57. If the number of consecutive decreases is smaller than the second threshold (S56; No), the process proceeds to step S59. move on.
  • step S57 the queue number control unit 470 determines that the transfer load of the bus slave 130 having the bus slave number “S” has decreased. Then, the queue number control unit 470 gives an output queue number control signal OQN to all the bus masters 410 for instructing release of suppression of upper limit suppression of the number of transfer requests to be output. Upon receiving such an instruction, the transfer request output order control unit 414 of the bus master 410 does not wait for a transfer response to be obtained from the bus slave 130 with the bus slave number “S”. Is output. Next, the queue number control unit 470 returns the number of consecutive decreases to the initial value “0” (S58). Then, the process proceeds to step S59.
  • step S59 the queue number control unit 470 updates the value of Tlast [S] stored in the memory 470a with the value of Tcurrent [S] calculated this time. Then, the queue number control unit 470 increments the bus slave number “S” by “1” (S60). Next, the queue number control unit 470 determines whether or not the bus slave number “S” is equal to or less than the number of bus slaves (S61). When the bus slave number “S” is equal to or less than the number of bus slaves (S61; Yes), the process proceeds to step S42 in FIG. On the other hand, if the bus slave number “S” is larger than the number of bus slaves (S61; No), the process proceeds to step S40 in FIG.
  • FIG. 18 is a timing chart showing the operation of the bus master 410 when the transfer request output order control unit 414 suppresses the upper limit of the number of transfer requests output to the bus slave 130A.
  • the transfer request output order control unit 414 outputs the write response channel signal WAC to the bus slave 130A at time (T5), and then acquires the transfer response at time (T8). Until this is done, a transfer request is not output to the bus slave 130A.
  • the transfer request output order control unit 414 avoids a state in which a plurality of transfer requests to the bus slave 130A are output, and reduces the transfer load of the bus slave 130A.
  • the number of transfer requests of the bus master 410 to the bus slave 130 whose transfer load is temporarily increased is limited, and the transfer load of the bus slave 130 is reduced. Therefore, the time from when the bus master 410 outputs a transfer request until it obtains a transfer response can be shortened.
  • FIG. FIG. 19 is a block diagram schematically showing the configuration of the bus system 500 according to the fifth embodiment.
  • the bus system 500 includes bus masters 510A to 510C (referred to as bus master 510 when it is not necessary to distinguish each of them) and bus slaves 530A to 530C (referred to as bus slave 530 when it is not necessary to distinguish between them).
  • bus master 510 when it is not necessary to distinguish each of them
  • bus slave 530A to 530C referred to as bus slave 530 when it is not necessary to distinguish between them.
  • the maximum transfer request numbers that can be accepted by the bus slaves 530A to 530C are notified to the bus master 510 as 540A to 540C (referred to as the maximum transfer request number 540 when there is no need to distinguish each of them). .
  • the bus system 500 according to the fifth embodiment is different from the bus system 100 according to the first embodiment in that processing is performed by the bus master 510 and that the maximum transfer request number 540 is notified from the bus slave 530 to the bus master 510.
  • the maximum transfer request number 540 is the maximum number of transfer requests that each bus slave 530 can store therein.
  • This maximum transfer request number 540 is predetermined in the system, and is stored in the memories 531A to 531C included in each bus slave 530 (referred to as the memory 531 when there is no need to distinguish between them). To do.
  • the bus slave 530 receives the write address channel signal and the write data channel signal or the read address channel signal issued from the bus masters 510A to 510C via the bus interconnect 150.
  • the bus slave 530 generates a control signal according to the received channel signal. For example, when the bus slave 530 is an SRAM, an SRAM write or read signal is generated, and when the write or read is completed, the write response channel signal or the read data channel signal is sent to the bus master 510 via the bus interconnect 150. hand over.
  • the write address channel signal and the write data channel signal or the read address channel signal are converted into a serial signal, output to the external device, and input from the external device
  • the serial signal is converted into a write response channel signal or a read data channel signal and passed to the bus interconnect 150 in the same manner as described above.
  • the bus slave 530 has a buffer for accumulating transfer requests, and a free capacity for accumulating the transfer requests in the buffer can be secured, the bus slave 530 has a write address channel signal, a write data channel signal, Alternatively, the read address channel signal is fetched by outputting a Ready signal and stored in a buffer in the bus slave 530.
  • the bus slave 530 does not include the buffer as described above, or if the free space for storing the transfer request in the buffer cannot be secured, the bus slave 530 does not validate the Ready signal and does not capture the transfer request. This is notified to the bus interconnect 150.
  • the bus interconnect 150 receives the notification of the hold hold from the bus slave 530, the bus interconnect 150 does not make a new transfer request to the bus slave 530 until the hold is released, and the transfer to the bus slave 530 in the system is not performed. Stay.
  • the bus slave 530 When the bus slave 530 completes the transfer being executed and there is no transfer request to be processed by the bus slave 530 or when the buffer capacity for storing the transfer request is secured, the bus slave 530 enables the Ready signal. Thus, a transfer request whose holding is suspended is obtained from the bus interconnect 150.
  • FIG. 20 is a block diagram schematically showing a configuration of the bus master 510 in the fifth embodiment.
  • the bus master 510 according to the fifth embodiment is different from the bus master 110 according to the first embodiment in that the transfer request output order control unit 514 receives the maximum transfer request numbers 540A to 540C of the bus slaves 530A to 530C. .
  • FIGS. 21 and 22 are flowcharts illustrating processing when the transfer request output order control unit 514 according to the fifth embodiment selects command information of any queue number stored in the command queue 112.
  • the same reference numerals as those in FIG. 7 are assigned to the same processes as those shown in FIG.
  • the processing in steps S20 to S22 in FIG. 21 is the same as the processing in steps S20 to S22 in FIG.
  • the command information of the queue number X has not been output in step S22 of FIG. 21 (S22; No)
  • the process proceeds to step S62.
  • step S62 the transfer request output order control unit 514 refers to the command queue 112, and among the transfer requests to the same bus slave 530 as the bus slave 530 having the transfer target address of the queue number X, the queue is valid and transfer is performed.
  • the number of requests that have been output is counted and used as the number of accesses before transfer response input.
  • the transfer request output order control unit 514 confirms whether the access count before transfer response input has reached the maximum transfer request count 540 of the bus slave 530.
  • the process proceeds to step S23, and thereafter, similarly to the transfer request output order control unit 114 in the first embodiment, Next, the output order of the stored commands is determined.
  • the process proceeds to step S63 in FIG.
  • step S63 of FIG. 22 the transfer request output order control unit 514 sets an initial value (here, “1”) to the variable Y for specifying the comparison queue.
  • the transfer request output order control unit 514 refers to the management information stored in the command queue 112 to determine whether the command information of the queue number (X + Y) is “valid” (S64). ).
  • the process proceeds to step S65, and when the command information of the queue number (X + Y) is “invalid” (S64; No).
  • step S68 the process proceeds to step S68.
  • step S65 the transfer request output order control unit 514 refers to the management information stored in the command queue 112 to determine whether or not the command information of the queue number (X + Y) has been output. If the command information for the queue number X has been output (S65; Yes), the process proceeds to step S68, and if the command information for the queue number (X + Y) has not been output (S65; No), the process is performed. Advances to step S66.
  • step S66 the transfer request output order control unit 514 refers to the command information stored in the command queue 112, so that the transfer target bus slave 530 with the queue number X and the transfer target bus slave with the queue number (X + Y). It is determined whether or not 530 is the same. If they are the same (S66; Yes), the process proceeds to step S68, and if they are different (S66; No), the process proceeds to step S67.
  • the transfer request output order control unit 514 indicates that the queue is valid (S64; Yes) and not output (S65; No) among the transfer requests stored after the queue number X.
  • a transfer request (S66; No) to a bus slave 530 different from the transfer target bus slave 530 of the queue number X can be detected in the order stored in the queue.
  • step S67 among the transfer requests to the same bus slave 530 as the bus slave 530 having the transfer target address of the queue number (X + Y), the number of queues that are valid and transfer requests have been output is counted. Then, the transfer request output order control unit 514 confirms whether the counted number has reached the maximum transfer request number 540 of the bus slave 530.
  • step S68 the counted number is the maximum transfer request number 540 of the bus slave 530. If not reached (S67; Yes), the process proceeds to step S70.
  • step S68 the transfer request output order control unit 514 increments the variable Y by “1”. Then, the transfer request output order control unit 514 confirms whether the queue number (X + Y) is equal to or greater than the queue number N (S69). If the queue number (X + Y) is equal to or greater than the queue number N (S69; Yes), the process returns to step S62 in FIG. 21, and the queue number (X + Y) is not equal to or greater than the queue number N (S69). ; No), the process returns to step S64.
  • step S70 the transfer request output order control unit 514 gives the command information of the queue number (X + Y) to the transfer request output unit 115 to output this command information.
  • the command information of the queue number (X + Y) is output before the command information of the queue number X.
  • command information is not output to the bus slave 530 that has reached the maximum transfer request count, and the bus slave 530 to which the command information stored after that is sent is requested to transfer the maximum transfer request. If the number has not been reached, the command information for the bus slave 530 is output first.
  • bus transfer that does not exceed the data transfer capacity of the bus slave 530 can be performed, and a state in which the bus slave 530 suspends fetching of a transfer request can be avoided. Then, bus transfer suitable for the data transfer load state of the bus slave 530 can be performed.
  • the bus master 510 has been described based on the bus master 110 according to the first embodiment. However, the transfer request output order control units 214 and 314 of the bus masters 210, 310, and 410 according to other embodiments.
  • the maximum transfer request number 540A to 540C may be input to 414. With this configuration, the bus master 210, 310, 410 does not select a command that causes a transfer request capture suspension in the bus slave 530 in advance, thereby performing bus transfer that does not exceed the data transfer capacity of the bus slave 530. be able to.
  • the maximum transfer request number 540 of the bus slave 530 is notified to the bus master 510.
  • the present invention is not limited to such an example.
  • a value obtained by subtracting the currently accumulated request number from the maximum transfer request number is sequentially notified to the bus master 510 as the maximum transfer request number. May be.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

 データの転送を要求する転送要求の種別を示す転送種別及び当該転送要求の送り先のバススレーブの転送対象アドレスを含むコマンド情報を生成するアクセス生成部(111)と、アクセス生成部(111)で生成されたコマンド情報を複数記憶するコマンドキュー(112)と、コマンドキュー(112)に記憶されている複数のコマンド情報の内、第1のコマンド情報に含まれている転送対象アドレスを有する第1のバススレーブよりも応答の遅い第2のバススレーブが有する転送対象アドレスを含む第2のコマンド情報を、出力対象のコマンド情報として、第1のコマンド情報よりも先に選択する転送要求出力順序制御部(114)と、転送要求出力順序制御部(114)で選択されたコマンド情報を出力する転送要求出力部(115)と、を備える。

Description

バスマスタ、バスシステム及びバス制御方法
 本発明は、バスマスタ、バスシステム及びバス制御方法に関する。
 近年プロセスの微細化が進み、LSIにCPU(Central Processing Unit)、グラフィックコントローラ及び数百キロバイト以上のキャッシュメモリを内蔵したシステムLSIが、通信機器又は画像処理装置等に搭載されている。このようなシステムLSIにおいては、システムバスにてモジュール間が接続され、データ転送が行われている。
 システムLSI向けのオンチップ・バス規格としては、英国ARM社が策定したAXIプロトコルに従った構造が主流となっている。AXIプロトコルに従ったオンチップ・バスの構造では、CPU、グラフィックコントローラ、DMA(Dynamic Memory Accsess)コントローラ等に代表されるバスマスタと、キャッシュメモリ、DRAM(Dynamic Random Access Memory)等に代表される外部メモリ等のバススレーブとが、バスインターコネクトを介してポイントツーポイントに接続される。そして、バスマスタが、バススレーブへの書き込み動作又は読み出し動作を完了するには、バススレーブから書き込み応答チャネル信号又は読み出しデータチャネル信号が出力されるまで待たなければならない。このため、バスシステムとして、データ転送性能を向上するためには、バスマスタの待ち時間を少なくする必要がある。
 ここで、特許文献1には、書き込みアクセスにおけるデータの書き込み結果を示す書き込み応答信号を受けた後に次のアクセスを行うバスマスタを備えるバスシステムが記載されている。そして、このバスシステムは、バスマスタから出力される書き込みデータ信号の終了を検出した場合に、ダミー書き込み応答チャネル信号をバスマスタに出力する信号生成部を備えている。
 特許文献1に記載されたバスシステムにおけるバスマスタは、本来の書き込み応答チャネル信号を受け取る前に、ダミー書き込み応答チャネル信号を受け取るため、このダミー書き込み応答チャネル信号に応じて、次のアクセスの準備を開始することができる。このため、バススレーブにおける書き込みと、バスマスタにおける次のアクセスの準備とを並列に処理することができる。従って、同時に発行できる書き込みコマンド数が1つと規定されるバスマスタにおいては、書き込みアクセス後に連続して書き込み又は読み出しアクセスを行う場合における遅延時間を削減することができる。つまり、書き込みアクセスを行った場合において、データ転送性能を向上することができる。
特開2011-95978号公報(段落0032~0052、第2図)
 しかしながら、従来の技術では、ダミー書き込み応答チャネル信号の発行から本来の書き込み応答チャネル信号が得られるまでの期間、次の書き込みアドレスチャネル信号及び読み出しアドレスチャネル信号がマスクされるので、データ転送要求を連続して出力することができない。このため、AXIで規定されるアウトオブオーダ転送のような複数のデータ転送を並行して行うことで、データ転送性能を向上させる効果を得ることができない。
 そこで、この発明は、上述のような課題を解決する為になされたものであり、転送要求のコマンド情報を送る順番を制御することで、データ転送性能を向上させることを目的とする。
 本発明の一態様に係るバスマスタは、データの転送を要求する転送要求の種別を示す転送種別及び当該転送要求の送り先のバススレーブの転送対象アドレスを含むコマンド情報を生成するアクセス生成部と、前記アクセス生成部で生成されたコマンド情報を複数記憶するコマンドキューと、前記コマンドキューに記憶されている複数のコマンド情報の内、第1のコマンド情報に含まれている転送対象アドレスを有する第1のバススレーブよりも応答の遅い第2のバススレーブが有する転送対象アドレスを含む第2のコマンド情報を、出力対象のコマンド情報として、当該第1のコマンド情報よりも先に選択する転送要求出力順序制御部と、前記転送要求出力順序制御部で選択されたコマンド情報を、当該選択されたコマンド情報に含まれている転送対象アドレスを有するバススレーブに出力する転送要求出力部と、を備えることを特徴とする。
 本発明の一態様に係るバスシステムは、少なくとも1つのバスマスタ及び複数のバススレーブを備えるバスシステムであって、前記少なくとも1つのバスマスタは、データの転送を要求する転送要求の種別を示す転送種別及び当該転送要求の送り先の、前記複数のバススレーブの内の1つのバススレーブの転送対象アドレスを含むコマンド情報を生成するアクセス生成部と、前記アクセス生成部で生成されたコマンド情報を複数記憶するコマンドキューと、前記コマンドキューに記憶されている複数のコマンド情報の内、第1のコマンド情報に含まれている転送対象アドレスを有する第1のバススレーブよりも応答の遅い第2のバススレーブが有する転送対象アドレスを含む第2のコマンド情報を、出力対象のコマンド情報として、当該第1のコマンド情報よりも先に選択する転送要求出力順序制御部と、前記転送要求出力順序制御部で選択されたコマンド情報を、当該選択されたコマンド情報に含まれている転送対象アドレスを有するバススレーブに出力する転送要求出力部と、を備えることを特徴とする。
 本発明の一態様に係るバス制御方法は、データの転送を要求する転送要求の種別を示す転送種別及び当該転送要求の送り先のバススレーブの転送対象アドレスを含むコマンド情報を生成するアクセス生成過程と、前記アクセス生成過程で生成されたコマンド情報を複数記憶するコマンドキューイング過程と、前記コマンドキューイング過程で記憶された複数のコマンド情報の内、第1のコマンド情報に含まれている転送対象アドレスを有する第1のバススレーブよりも応答の遅い第2のバススレーブが有する転送対象アドレスを含む第2のコマンド情報を、出力対象のコマンド情報として、当該第1のコマンド情報よりも先に選択する転送要求出力順序制御過程と、前記転送要求出力順序制御過程で選択されたコマンド情報を、当該選択されたコマンド情報に含まれている転送対象アドレスを有するバススレーブに出力する転送要求出力過程と、を有することを特徴とする。
 本発明の一態様によれば、転送要求のコマンド情報を送る順番を制御することで、データ転送性能を向上させることができる。
実施の形態1~3に係るバスシステムの構成を概略的に示すブロック図である。 実施の形態1におけるバスマスタ110の構成を概略的に示すブロック図である。 実施の形態1におけるコマンドキューに記憶される情報を示す概略図である。 実施の形態1におけるアドレスマップ情報の一例を示す概略図である。 実施の形態1における転送順序整合情報の一例を示す概略図である。 実施の形態1におけるコマンドキュー滞留時間比較部が転送順序整合情報を更新する処理を示すフローチャートである。 実施の形態1における転送要求出力順序制御部が転送順序整合情報を参照して、コマンドキューに記憶された何れかのキュー番号のコマンド情報を選択する際の処理を示すフローチャートである。 実施の形態1における転送順序整合情報が更新される前の動作を示すタイムチャートである。 実施の形態1における転送順序整合情報が更新された後の動作を示すタイムチャートである。 実施の形態2におけるバスマスタの構成を概略的に示すブロック図である。 実施の形態2における転送応答入力時間記憶部に記憶されている転送応答入力時間情報の一例を示す概略図である。 実施の形態3におけるバスマスタの構成を概略的に示すブロック図である。 実施の形態3におけるバスマスタの動作を示すタイミングチャートである。 実施の形態4に係るバスシステムの構成を概略的に示すブロック図である。 実施の形態4におけるバスマスタの構成を概略的に示すブロック図である。 実施の形態4において、キュー数制御部がバスマスタから転送応答入力時間信号を得て、出力キュー数制御信号をバスマスタに与える際の処理を示すフローチャート(その1)である。 実施の形態4において、キュー数制御部がバスマスタから転送応答入力時間信号を得て、出力キュー数制御信号をバスマスタに与える際の処理を示すフローチャート(その2)である。 実施の形態4における転送要求出力順序制御部が、バススレーブへ出力する転送要求数の上限を抑制した場合のバスマスタの動作を示すタイミングチャートである。 実施の形態5に係るバスシステムの構成を概略的に示すブロック図である。 実施の形態5におけるバスマスタの構成を概略的に示すブロック図である。 実施の形態5における転送要求出力順序制御部が転送順序整合情報とバススレーブの最大転送要求数を参照して、コマンドキューに記憶された何れかのキュー番号のコマンド情報を選択する際の処理を示すフローチャート(その1)である。 実施の形態5における転送要求出力順序制御部が転送順序整合情報とバススレーブの最大転送要求数を参照して、コマンドキューに記憶された何れかのキュー番号のコマンド情報を選択する際の処理を示すフローチャート(その2)である。
実施の形態1.
 図1は、実施の形態1に係るバスシステム100の構成を概略的に示すブロック図である。バスシステム100は、バスマスタ110A~110C(特に各々を区別する必要がないときは、バスマスタ110という)と、バススレーブ130A~130C(特に各々を区別する必要がないときは、バススレーブ130という)とが、バスインターコネクト150を介して接続されている。バスシステム100は、AXIプロトコルに従ったオンチップ・バスである。なお、図1の括弧内の符号は、実施の形態2及び3における構成を示している。
 図1に示されているバスマスタ110において、「#」の後に記載された数字は、バスマスタ110を識別するためのバスマスタ識別情報としてのバスマスタ番号である。また、図1に示されているバススレーブ130において、「#」の後に記載された数字は、バススレーブ130を識別するためのバススレーブ識別情報としてのバススレーブ番号である。
 バスマスタ110は、CPU、グラフィックコントローラ又はDMAコントローラ等である。また、バススレーブ130は、キャッシュメモリ又はDRAM等である。
 まず、図1を用いて、AXIプロトコルについて説明する。
 AXIプロトコルでは、バスマスタ110とバススレーブ130との間の転送は、経路毎に独立して行うことができる。例えば、図1において、バスマスタ110A及びバススレーブ130Aの間のデータ転送と、バスマスタ110B及びバススレーブ130Bとの間のデータ転送とは、独立して行うことができる。
 また、AXIプロトコルでは、書き込みアドレスチャネル、書き込みデータチャネル、書き込み応答チャネル、読み出しアドレスチャネル、読み出しデータチャネルの5つチャネルが規定されている。そして、各チャネルは、同一経路内であっても独立して動作させることができる。例えば、書き込みアドレスチャネル信号が複数回連続して発行されてもよいし、書き込みチャネル信号の送受信と、読み出しチャネル信号の送受信とが同時に行われてもよい。即ち、AXIプロトコルでは、複数のデータ転送を並行して行うことができる。
 さらに、各チャネルには転送毎に異なる転送IDが付与される。例えば、バスマスタ110Aが、異なる転送IDを使用して、読み出しアドレスチャネル信号をバススレーブ130A~130Cの2つ以上に出力した場合、2つ以上のデータ転送が並行してバススレーブ130A~130Cにて実行される。
 ここで、バススレーブ130A~130Cがバスマスタ110Aより入力された転送要求を処理するのに要する時間は、バススレーブ130A~130C毎の動作周波数、及び、バススレーブ130A~130Cを構成するメモリ等の読み出しサイクル数に依存する。従って、バススレーブ130A~130Cがバスインターコネクト150を経由してバスマスタ110Aに転送応答を出力する順序は、バスマスタ110Aから転送要求を受け取った順序とは必ずしも一致しない。AXIプロトコルでは、このようなアウトオブオーダ転送に対応しており、複数のデータ転送を並行して効率よく行うことができる。
 各チャネルでは、バスマスタ110とバススレーブ130との間で、Valid信号及びReady信号を用いて、ハンドシェイクが行われる。バスマスタ110は、書き込みアドレスチャネル、書き込みデータチャネル及び読み出しアドレスチャネルのValid信号を出力し、バススレーブ130は、それぞれに対応するReady信号を出力する。また、バススレーブ130は、書き込み応答チャネル及び読み出しデータチャネルのValid信号を出力し、バスマスタ110は、それぞれに応答するReady信号を出力する。なお、Valid信号及びReady信号には、それぞれを区別するために、チャネル毎に個別の名称が付けられる。
 例えば、バスマスタ110Aからバススレーブ130Aへのデータ書き込みは、バスマスタ110Aが書き込みアドレスチャネル信号及び書き込みデータチャネル信号をそれぞれValid信号とともに出力する。バススレーブ130Aは、バスマスタ110Aから入力された書き込みアドレスチャネル信号及び書き込みデータチャネル信号を、Ready信号を出力して取り込み、書き込み処理を開始する。
 バススレーブ130が書き込みに要する時間は、バススレーブ130を駆動する動作周波数及びデータの書き込みフロー等により、バススレーブ130毎に異なる。例えば、バススレーブ130AがSRAM(Static Random Access Memory)で構成される高速アクセス可能なキャッシュメモリの場合、動作周波数はバスインターコネクト150と同等又はそれ以上であり、バススレーブ130Aは、最速で1クロックサイクルで書き込み処理を完了する。
 一方、バススレーブ130Aが外部とのシリアルインターフェース等である場合、インターフェースでの処理速度が比較的低速な上に、バス信号を複数回に分割する必要があるため、書き込み処理を完了するまでに多くのサイクル数を要する。
 バススレーブ130Aは、書き込み処理を完了すると、バスマスタ110Aに書き込み応答チャネル信号をValid信号とともに出力する。バスマスタ110Aは書き込み応答チャネル信号をReady信号を出力して取り込み、一連の書き込み動作を完了する。
 バスマスタ110Aからバススレーブ130Aへのデータ読み出しは、バスマスタ110Aが読み出しアドレスチャネル信号をValid信号とともに出力する。バススレーブ130Aは、バスマスタ110Aから入力された読み出しアドレスチャネル信号を、Ready信号を出力して取り込み、読み出し処理を開始する。
 バススレーブ130Aが読み出しに要する時間は、前述と同様に、バススレーブ130A毎に異なる。バススレーブ130Aは、読み出し処理を完了すると、バスマスタ110Aに読み出しデータチャネル信号をValid信号とともに出力する。バスマスタ110Aは読み出しデータチャネル信号を、Ready信号を出力して取り込み、一連の読み出し動作を完了する。
 図2は、実施の形態1におけるバスマスタ110の構成を概略的に示すブロック図である。バスマスタ110は、アクセス生成部111と、コマンドキュー112と、データキュー113と、転送要求出力順序制御部114と、転送要求出力部115と、転送応答入力部116と、アドレスマップ記憶部117と、コマンドキュー滞留時間比較部118と、転送順序整合情報記憶部119とを備える。
 バスマスタ110は、例えば、CPU又はDMAコントローラのように、メモリ又は周辺機器へデータ転送を行うモジュールである。このため、アクセス生成部111は、データの転送要求を生成して、この転送要求をコマンドキュー112及びデータキュー113に与える。この転送要求は、書き込み又は読み出しの転送種別、転送対象アドレス及び転送データ長(バースト長ともいう)にて構成されるコマンド情報と、転送種別が書き込みの場合における書き込みデータとを含む。アクセス生成部111は、転送種別、転送対象アドレス及び転送データ長を含むコマンド情報をコマンドキュー112に記憶させ、書き込みデータをデータキュー113に記憶させる。言い換えると、アクセス生成部111は、データの転送を要求する転送要求の種別を示す転送種別及び当該転送要求の送り先のバススレーブの転送対象アドレスを含むコマンド情報を生成して、このコマンド情報をコマンドキュー112に記憶させる。
 コマンドキュー112は、アクセス生成部111で生成されたコマンド情報を記憶する。なお、コマンドキュー112は、コマンド情報の他、コマンド情報を管理するための管理情報も記憶する。図3は、コマンドキュー112に記憶される情報を示す概略図である。なお、図3では、コマンドキュー112のキュー構成数を「4」としており、キュー番号「0」~「3」が割り当てられている領域へ情報を記憶する例を示しているが、バスマスタ110の動作速度又は転送データ量等によって、任意のキュー数にて構成してよい。
 コマンド情報は、各々、アクセス生成部111より与えられた転送種別、転送対象アドレス及び転送データ長を含む。
 転送種別は、データの転送を要求する転送要求の種別を示す情報である。ここでは、転送種別として、バススレーブ130にデータを書き込む「書き込み」と、バススレーブ130からデータを読み出す「読み出し」とがある。
 転送対象アドレスは、転送要求の送り先のバススレーブ130のアドレスである。
 転送データ長は、転送を行うデータのサイズを示す情報である。
 管理情報は、コマンド情報毎に、キュー有効無効情報、転送要求出力情報及び転送IDを含む。
 キュー有効無効情報は、対応するコマンド情報が有効か無効かを示す情報である。キュー有効無効情報が「無効」を示す場合には、対応するコマンド情報が削除されたことになる。
 転送要求出力情報は、対応するコマンド情報が出力されたか否かを示す情報である。転送要求出力情報が「未」の場合には、対応するコマンド情報がバススレーブ130に送られていないことを示し、転送要求出力情報が「済」の場合には、対応するコマンド情報が送られたことを示す。
 転送IDは、各々のコマンド情報を識別するための転送識別情報である。
 コマンドキュー112では、コマンド情報がアクセス生成部111から与えられた順番に従って、各コマンド情報及びその管理情報がキュー番号「0」~「3」の領域に記憶される。言い換えると、コマンドキュー112に最も早く与えられたコマンド情報及びその管理情報がキュー番号「0」の領域に格納され、次に与えられたコマンド情報及びその管理情報がキュー番号「1」の領域に格納される。即ち、キュー番号は、コマンド情報がアクセス生成部111から与えられた順番を示す。
 転送要求出力順序制御部114は、コマンドキュー112に記憶されている複数のコマンド情報の内、第1のコマンド情報に含まれている転送対象アドレスを有する第1のバススレーブよりも応答の遅い第2のバススレーブが有する転送対象アドレスを含む第2のコマンド情報を、出力対象のコマンド情報として、当該第1のコマンド情報よりも先に選択する。例えば、転送要求出力順序制御部114は、転送順序整合情報記憶部119に記憶されている転送順序整合情報を参照して、出力対象のコマンド情報を選択することで、コマンドキュー112に記憶されたコマンド情報を出力する順序を制御する。より詳細には、転送要求出力順序制御部114は、コマンドキュー112に記憶されたコマンド情報を記憶された順にバスインターコネクト150に出力するか、後に記憶されたコマンド情報を前に記憶されたコマンド情報よりも先にバスインターコネクト150に出力するかを判定する。そして、転送要求出力順序制御部114は、その判定結果に応じて、出力するコマンド情報を選択する。選択されたコマンド情報は、転送要求出力部115よりバスインターコネクト150に出力される。なお、コマンド情報の転送種別が「書き込み」の場合は、データキュー113に記憶された書き込みデータも出力される。
 転送要求出力部115は、転送要求出力順序制御部114で選択されたコマンド情報を、この選択されたコマンド情報に含まれている転送対象アドレスを有するバススレーブ130に出力する。転送要求出力部115での具体的な処理は、以下の通りである。
 転送要求出力部115は、コマンドキュー112に記憶されたコマンド情報をバスインターコネクト150へ出力する際に転送IDを付与する。転送IDは、バスインターコネクト150にて書き込み、読み出し毎に独立して識別される。付与される転送IDは、コマンド情報が記憶されたコマンドキュー112のキュー番号がそのまま用いられてもよく、また、書き込み、読み出し毎に出力済みのコマンド情報の転送IDを除く最小の番号(「0」以上の整数)が用いられてもよい。なお、転送要求出力部115は、転送IDを付与した場合には、転送IDを付与したアドレス情報の管理情報として、付与した転送IDをコマンドキュー112に格納する。
 転送要求出力部115は、コマンドキュー112に記憶されたコマンド情報の種別が「書き込み」である場合には、コマンドキュー112に記憶されたコマンド情報を示す書き込みアドレスチャネル信号WAC及びデータキュー113に記憶された書き込みデータを示す書き込みデータチャネル信号WDCを、Valid信号とともに、バスインターコネクト150に出力する。
 また、転送要求出力部115は、コマンドキュー112に記憶されたコマンド情報の種別が「読み出し」である場合には、コマンドキュー112に記憶されたコマンド情報を示す読み出しアドレスチャネル信号RACを、Valid信号とともに、バスインターコネクト150に送る。
 図1に示されているように、バスインターコネクト150には、バススレーブ130が接続されている。
 バスインターコネクト150は、書き込みアドレスチャネル信号WAC、書き込みデータチャネル信号WDC及び読み出しアドレスチャネル信号RACを、転送対象アドレスに対応するバススレーブ130に転送する。バススレーブ130は、信号を受け取れることを示すReady信号を出力することで、これらの信号を受信する。なお、転送データ長が「1」よりも大きい場合には、書き込みデータチャネル信号WDCは、そのデータ長分出力される。最後の書き込みデータチャネル信号WDCを出力する際には、転送要求出力部115は、Valid信号とともにLast信号を出力する。
 書き込みアドレスチャネル信号WAC及び書き込みデータチャネル信号WDCを受け取ったバススレーブ130は、書き込み応答チャネル信号WRCを、Valid信号とともにバスインターコネクト150に出力する。ここで、転送データ長が「1」よりも大きい場合には、最後の書き込みデータチャネル信号WDCの受信が完了した際に、バススレーブ130は、書き込み応答チャネル信号WRCを出力する。
 また、読み出しアドレスチャネル信号RACを受け取ったバススレーブ130は、対応する読み出しデータを示す読み出しデータチャネル信号RDCを、Valid信号とともにバスインターコネクト150に出力する。ここで、転送データ長が「1」よりも大きい場合には、最後の読み出しデータチャネル信号RDCを出力する際に、バススレーブ130は、Valid信号とともにLast信号を出力する。
 バススレーブ130が、転送要求を即時に受け付けられるかどうかは、個々のバススレーブ130毎にその動作周波数及び転送データの処理方法に依存して決定される。バススレーブ130にて即時に転送要求を受け付けられない場合は、そのバススレーブ130は、Ready信号を出力するタイミングを遅延させて、バスインターコネクト150への受け付けを延期する。バスインターコネクト150は、バススレーブ130から入力されたReady信号をバスマスタ110の転送要求出力部115に転送し、転送要求出力部115は、Ready信号が有効になるまで、信号の出力を維持する。
 図2の説明に戻り、転送応答入力部116は、転送要求出力部115から出力されたコマンド情報に対する、バススレーブ130からの応答の入力を受ける。例えば、転送応答入力部116は、バスインターコネクト150にReady信号を出力することで、バスインターコネクト150より書き込み応答チャネル信号WRC又は読み出しデータチャネル信号RDCを受け取る。そして、転送応答入力部116は、受け取った信号の転送IDを、コマンドキュー滞留時間比較部118に通知する。
 アドレスマップ記憶部117は、転送対象アドレスと、当該転送対象アドレスを有するバススレーブ130のバススレーブ番号とを含むアドレスマップ情報を記憶する。
 図4は、アドレスマップ情報の一例を示す概略図である。
 アドレスマップ情報117aは、ベースアドレス欄117bと、上限アドレス欄117cと、バススレーブ番号欄117dとを有するテーブル情報である。
 ベースアドレス欄117bは、基準となる転送対象アドレスを格納する。
 上限アドレス欄117cは、上限となる転送対象アドレスを格納する。
 バススレーブ番号欄117dは、ベースアドレス欄117bに格納された基準となる転送対象アドレスと、上限アドレス欄117cに格納された上限となる転送対象アドレスとの間に含まれる転送対象アドレスが割り振られたバススレーブ130のバススレーブ番号を格納する。
 即ち、ベースアドレス欄117bと、上限アドレス欄117cとで特定されるアドレスの範囲に含まれる転送対象アドレスは、そのレコードのバススレーブ番号欄117dで特定されるバススレーブ番号を有するバススレーブ130が保有するものとなる。従って、アドレスマップ情報117aで、転送対象アドレスが割り振られているバススレーブを特定することができる。
 コマンドキュー滞留時間比較部118は、コマンドキュー112に記憶されたコマンド情報が出力されてから、このコマンド情報に基づく応答が取得されるまでの滞留時間を比較して、この滞留時間が長いコマンド情報の転送先であるバススレーブ130へのコマンド情報が、他のバススレーブ130へのコマンド情報よりも先に出力されるように、転送順序整合情報記憶部119に記憶されている転送順序整合情報を更新する。
 例えば、コマンドキュー滞留時間比較部118は、コマンドキュー112に記憶されている管理情報及びコマンド情報を参照することで、転送応答入力部116から通知された転送IDに基づいて、応答のあったコマンド情報の転送対象アドレス及びキュー番号を特定する。そして、コマンドキュー滞留時間比較部118は、アドレスマップ記憶部117に記憶されているアドレスマップ情報117aを参照することで、特定された転送対象アドレスを有するバススレーブ130を特定する。次に、コマンドキュー滞留時間比較部118は、特定されたキュー番号よりも小さいキュー番号に割り当てられ、未だ有効なコマンド情報、言い換えると、応答のあったコマンド情報よりも先に出力され未だ応答のないコマンド情報があるか否かを確認する。このようなコマンド情報がある場合には、コマンドキュー滞留時間比較部118は、アドレスマップ記憶部117に記憶されているアドレスマップ情報117aを参照することで、このようなコマンド情報の転送先のバススレーブ130を特定する。そして、コマンドキュー滞留時間比較部118は、応答のあったコマンド情報から特定されたバススレーブ130へのコマンド情報よりも、応答のないコマンド情報から特定されたバススレーブ130へのコマンド情報が先に出力されるように、転送順序整合情報記憶部119に記憶されている転送順序整合情報を更新する。
 転送順序整合情報記憶部119は、バススレーブ130の組み合わせ毎に、出力されたコマンド情報への応答が逆転したか否かを示す情報を含む転送順序整合情報を記憶する。
 図5は、転送順序整合情報の一例を示す概略図である。
 転送順序整合情報119aは、先行スレーブ列119bと、後続スレーブ行119cとを備えるテーブル情報である。
 先行スレーブ列119bには、バスインターコネクト150に接続されているバススレーブ130のバススレーブ番号が、各々の欄に格納されている。
 後続スレーブ行119cには、バスインターコネクト150に接続されているバススレーブ130のバススレーブ番号が、各々の欄に格納されている。
 そして、先行スレーブ列119bに格納されたバススレーブ番号及び後続スレーブ行119cに格納されたそれぞれのバススレーブ番号に対応する欄119dには、先行スレーブ列119bに格納されたバススレーブ番号で特定されるバススレーブ130と、後続スレーブ行119cに格納されたバススレーブ番号で特定されるバススレーブ130との間の応答の取得順序を示す情報が格納される。
 例えば、この欄119dが「正順」である場合には、対応する先行スレーブ列119bに格納されたバススレーブ番号で特定されるバススレーブ130へのコマンド情報が先に出力され、対応する後続スレーブ行119cに格納されたバススレーブ番号で特定されるバススレーブ130へのコマンド情報が後で出力されたときに、出力された順序で応答が取得されたことを示す。一方、この欄119dが「逆順」である場合には、対応する先行スレーブ列119bに格納されたバススレーブ番号で特定されるバススレーブ130へのコマンド情報が先に出力され、対応する後続スレーブ行119cに格納されたバススレーブ番号で特定されるバススレーブ130へのコマンド情報が後で出力されたときに、出力された順番とは逆の順番で応答が入力されたことを示す。
 なお、バスシステム100の起動直後においては、転送順序整合情報119aの内容は、全ての組合せにおいて「正順」に初期化される。
 図6は、コマンドキュー滞留時間比較部118が転送順序整合情報119aを更新する処理を示すフローチャートである。
 ここで、コマンドキュー滞留時間比較部118は、コマンドキュー112に記憶されているコマンド情報及び管理情報を参照して、転送応答入力部116から通知された転送IDと一致する転送IDを有するキュー番号をQ(0≦Q≦(キュー数-1))として特定する。そして、コマンドキュー滞留時間比較部118は、管理情報において、特定されたキュー番号Qのキュー有効無効情報を「有効」から「無効」に更新し、また、転送要求出力情報を、出力済みを示す「済」から未出力を示す「未」に更新する。そして、コマンドキュー滞留時間比較部118は、図6に示すフローを開始する。
 まず、コマンドキュー滞留時間比較部118は、アドレスマップ記憶部117に記憶されているアドレスマップ情報を参照して、キュー番号Qの転送対象アドレスをもとに、キュー番号Qの転送先のバススレーブ130を識別するためのバススレーブ番号を取得する。そして、コマンドキュー滞留時間比較部118は、取得されたバススレーブ番号を、後続スレーブ番号とする(S10)。
 次に、コマンドキュー滞留時間比較部118は、コマンドキュー112から最も古いコマンド情報が格納されているキュー番号をL(0≦L≦(キュー数-1))として特定する(S11)。ここで最も古いコマンドとは、現在記憶されているコマンド情報の中で、一番早くコマンドキュー112に格納されたキュー番号を指す。
 次に、コマンドキュー滞留時間比較部118は、キュー番号QとLを比較して、QとLとが等しいか否かを判断する(S12)。QとLが等しい場合(S12;Yes)には、それよりも前に記憶されたコマンド情報が存在しないので、コマンドキュー滞留時間比較部118は、転送順序整合情報を更新せず、フローを終了する。一方、QとLとが等しくない場合(S12;No)には、処理はステップS13に進む。
 ステップS13では、コマンドキュー滞留時間比較部118は、アドレスマップ記憶部117に記憶されているアドレスマップ情報を参照して、キュー番号Lの転送対象アドレスをもとに、キュー番号Lの転送先のバススレーブ130を識別するためのバススレーブ番号を取得する。そして、コマンドキュー滞留時間比較部118は、取得されたバススレーブ番号を、先行スレーブ番号とする(S13)。
 次に、コマンドキュー滞留時間比較部118は、先行スレーブ番号と、後続スレーブ番号とを比較して、これらが同一であるか否かを判断する(S14)。これらが同一である場合(S14;Yes)には、処理はステップS18に進み、これらが同一ではない場合(S14;No)には、処理はステップS15に進む。
 ステップS15では、コマンドキュー滞留時間比較部118は、コマンドキュー112に記憶されている管理情報を参照することで、キュー番号Lのコマンド情報が「有効」か否かを判断する。そして、キュー番号Lのコマンド情報が「有効」である場合(S15;Yes)には、処理はステップS16に進み、キュー番号Lのコマンド情報が「無効」である場合(S15;No)には、処理はステップS17に進む。
 ステップS16では、転送応答の入力順序が後続スレーブから先行スレーブとなっているため、転送要求(コマンド情報)の出力順序と、転送応答の入力順序とが一致しない。このため、コマンドキュー滞留時間比較部118は、転送順序整合情報記憶部119に記憶されている転送順序整合情報119aにおいて、対応する欄119dの値を「逆順」に更新する。そして、処理はステップS18に進む。
 一方、ステップS17では、転送応答の入力順序が先行スレーブから後続スレーブとなっているため、コマンドキュー滞留時間比較部118は、転送順序整合情報記憶部119に記憶されている転送順序整合情報119aにおいて、対応する欄119dの値を「正順」に更新する。そして、処理はステップS18に進む。
 ステップS18では、コマンドキュー滞留時間比較部118は、キュー番号Lに「1」をインクリメントして、ステップS12の処理に戻る。そして、コマンドキュー滞留時間比較部118は、キュー番号Lがキュー番号Qと一致するまでステップS12~S18の処理を繰り返す。
 例えば、コマンドキュー112に記憶されているコマンド情報及び管理情報が、図3に示されている情報であるものとする。そして、キュー番号「0」から「3」の順にコマンド情報が出力され、転送応答の入力順序がキュー番号「0」、「1」、「3」及び「2」の順番となった場合、先行スレーブ番号「3」のバススレーブ130Cよりも、後続スレーブ番号「1」のバススレーブ130Aからの転送応答がより早く入力されている。このような場合には、転送順序整合情報119aは、図6に示されているように、先行スレーブ番号「3」(バススレーブ#3)及び後続スレーブ番号「1」(バススレーブ#1)の組合せに対応する欄119dが「逆順」に更新され、それ以外の組み合わせに対応する欄119dは「正順」に更新される。
 図7は、転送要求出力順序制御部114が転送順序整合情報119aを参照して、コマンドキュー112に記憶された何れかのキュー番号のコマンド情報を選択する際の処理を示すフローチャートである。
 まず、転送要求出力順序制御部114は、キュー番号「0」から順に、キュー状態が有効かつ転送要求出力済みでないキュー番号Xを探す(S20~S22)。
 具体的には、転送要求出力順序制御部114は、キュー番号の最小値である「0」をキュー番号Xとし、コマンドキュー112にコマンド情報を格納することのできる数をキュー数Nとする(S20)。ここで、図3に示された例では、キュー数Nは「4」である。
 次に、転送要求出力順序制御部114は、コマンドキュー112に記憶されている管理情報を参照することで、キュー番号Xのコマンド情報が「有効」であるか否かを判断する(S21)。キュー番号Xのコマンド情報が「有効」である場合(S21;Yes)には、処理はステップS22に進み、キュー番号Xのコマンド情報が「無効」である場合(S21;No)には、処理はステップS29に進む。
 ステップS22では、転送要求出力順序制御部114は、コマンドキュー112に記憶されている管理情報を参照することで、キュー番号Xのコマンド情報が出力済みであるか否かを判断する。キュー番号Xのコマンド情報が出力済みである場合(S22;Yes)には、処理はステップS29に進み、キュー番号Xのコマンド情報が出力済みではない場合(S22;No)には、処理はステップS23に進む。
 ステップS23では、転送要求出力順序制御部114は、キュー番号(X+1)のコマンド情報が「有効」か否かを判断する。キュー番号(X+1)のコマンド情報が「有効」である場合(S23;Yes)には、処理はステップS24に進み、キュー番号(X+1)のコマンド情報が「無効」である場合(S23;No)には、処理はステップS28に進む。
 なお、キュー番号(X+1)がキュー数N以上となった場合には、キュー番号(X+1)は、キュー番号「0」(=X+1-N)とする。以下のステップでも同様である。
 ステップS24では、転送要求出力順序制御部114は、コマンドキュー112に記憶されている管理情報を参照することで、キュー番号(X+1)のコマンド情報が出力済みであるか否かを判断する。キュー番号(X+1)のコマンド情報が出力済みである場合(S24;Yes)には、処理はステップS28に進み、キュー番号(X+1)のコマンド情報が出力済みではない場合(S24;No)には、処理はステップS25に進む。
 ステップS25では、転送要求出力順序制御部114は、コマンドキュー112に記憶された管理情報を参照して、キュー番号X及びキュー番号(X+1)の転送対象アドレスを特定する。そして、転送要求出力順序制御部114は、アドレスマップ記憶部117に記憶されているアドレスマップ情報117aを参照することで、キュー番号X及びキュー番号(X+1)の転送対象アドレスに対応するバススレーブ番号を取得する。そして、転送要求出力順序制御部114は、キュー番号(X+1)のバススレーブ番号を先行スレーブ番号、キュー番号Xのバススレーブ番号を後続スレーブ番号とする。
 次に、転送要求出力順序制御部114は、転送順序整合情報119aを参照して、ステップS25特定した先行スレーブ番号及び後続スレーブ番号の組み合わせにおける転送要求出力順序と転送応答入力順序との関係が「逆順」であるか否かを確認する(S26)。その確認結果が「逆順」である場合(S26;Yes)には、処理はステップS27に進み、その確認結果が「正順」である場合(S26;No)には、処理はステップS28に進む。
 ステップS27では、転送要求出力順序制御部114は、キュー番号(X+1)のコマンド情報を転送要求出力部115に与えて、このコマンド情報を出力させる。そして、処理はステップS28に進む。
 ステップS28では、転送要求出力順序制御部114は、キュー番号Xのコマンド情報を転送要求出力部115に与えて、このコマンド情報を出力させる。そして、処理はステップS29に進む。
 言い換えると、転送要求出力順序と転送応答入力順序との関係が「逆順」である場合には、キュー番号(X+1)のコマンド情報を出力した後に、キュー番号Xのコマンド情報が出力される。一方、転送要求出力順序と転送応答入力順序との関係が「正順」である場合には、キュー番号Xのコマンド情報が出力される。
 次に、転送要求出力順序制御部114は、キュー番号Xに「1」をインクリメントする(S29)。そして、転送要求出力順序制御部114は、キュー番号Xがキュー数N以上となっていないかを確認する(S30)。キュー番号Xがキュー数N以上となっている場合(S30;Yes)には、転送要求出力順序制御部114は、フローを終了する。一方、キュー番号Xがキュー数N未満である場合(S30;No)には、処理はステップS21に戻る。なお、転送要求出力順序制御部114は、フローを終了した場合には、再び、図7のフローを開始する。
 図7に示されているフローチャートにより、転送要求出力順序制御部114は、コマンドキュー112に記憶されているコマンド情報の内、最初に記憶されたコマンド情報に含まれている転送対象アドレスを有するバススレーブを先行スレーブとし、次に記憶されたコマンド情報に含まれている転送対象アドレスを有するバススレーブを後続スレーブとして、応答が逆転したことを示す情報が転送順序整合情報119aに含まれている場合に、最初に記憶されたコマンド情報よりも先に、次に記憶されたコマンド情報を、出力対象のコマンド情報として選択することができる。
 実施の形態1に係るバスシステム100におけるバスマスタ110の動作について、転送順序整合情報が更新される前と更新された後の違いを図8及び図9を用いて説明する。図8は、転送順序整合情報が更新される前、言い換えると、転送順序整合情報における全ての欄の値が「正順」になっている際の動作を示すタイムチャートである。図9は、転送順序整合情報が更新された後、言い換えると、転送順序整合情報が図5に示されている転送順序整合情報119aのようになっている際の動作を示すタイムチャートである。図8及び図9は、いずれもバスマスタ110がコマンドキュー112に記憶されている、図3に示されているコマンド情報及び管理情報に基づいて、複数のバススレーブ130へのデータ転送を順に処理する場合を示している。
 図8及び図9において、時刻(T1)~時刻(T13)は、同一の単位時間毎の時刻である。また、書き込みアドレスチャネル信号WACと書き込みデータチャネル信号WDCは、バスマスタから同じ時間間隔で出力されるものとする。さらに、図8及び図9では、バススレーブ130A及びバススレーブ130Bから転送応答を得るまでに要する時間は、2単位時間、バススレーブ130Cから転送応答を得るまでに要する時間は、7単位時間とする。
 転送順序整合情報は、バスシステム100の起動直後又はリセット直後では、全ての欄が「正順」に初期化される。転送順序整合情報が初期化された状態では、転送要求出力順序制御部114は、コマンドキュー112に記憶された順序に従って、転送種別、転送対象アドレス及び転送データ長を取り出して、転送要求出力部115に与える。コマンドキュー112aに記憶されている情報が、図3に示されているようになっている場合、転送要求出力部115は、時刻(T1)、時刻(T3)、時刻(T5)及び時刻(T7)にて書き込みアドレスチャネル信号WACを、時刻(T2)、時刻(T4)、時刻(T6)及び時刻(T8)にて書き込みデータチャネル信号WDCをそれぞれ転送対象アドレスA21、転送対象アドレスA11、転送対象アドレスA31及び転送対象アドレスA12の順に発行する。
 なお、転送対象アドレスA11及び転送対象アドレスA12は、図4に示されているアドレスマップ情報における、ベースアドレスA1S以上、上限アドレスA1E未満の値であるため、バススレーブ番号「1」のバススレーブ130Aが有する転送対象アドレスである。同様に、転送対象アドレスA21は、バススレーブ番号「2」のバススレーブ130Bが有する転送対象アドレスである。さらに、転送対象アドレスA31は、バススレーブ番号「3」のバススレーブ130Cが有する転送対象アドレスである。
 コマンドキュー112のキュー番号2に記憶されたアドレスA31、即ち、バススレーブ130Cへの転送要求に対する応答は、転送要求を発行した時刻(T6)から7単位時間後の時刻(T13)に得られる。一方、キュー番号3に記憶されたアドレスA12、即ち、バススレーブ130Aへの転送要求に対しては、転送応答を得るまでに要する時間がバススレーブ130Cより小さく、時刻(T8)から2単位時間分経過した後、時刻(T10)にて転送応答が得られる。
 コマンドキュー滞留時間比較部118は、時刻(T10)にてキュー番号3に対応するバススレーブ130Aからの転送応答を得ると、キュー番号0から順に転送先スレーブ番号を求める。この際、コマンドキュー滞留時間比較部118は、バススレーブ130Aのバススレーブ番号「1」を後続スレーブ番号とする。キュー番号0には、バススレーブ130B(バススレーブ番号「2」)へのコマンド情報が記憶されているので、バススレーブ番号「2」を先行スレーブ番号とする(図6のステップS13)。先行スレーブ番号「2」と後続スレーブ番号「1」とは異なるので、コマンドキュー滞留時間比較部118は、キュー番号0のコマンド情報が「有効」か「無効」かを確認する(図6のステップS15)。キュー番号0のコマンド情報に対する転送応答は、時刻(T4)に入力済みであり、時刻(T10)時点では、キュー番号0のコマンド情報は、無効化されている。従って、キュー番号0とキュー番号3の転送応答入力順序は、先行スレーブ番号のバススレーブ130Bが後続スレーブ番号のバススレーブ130Cよりも先となるため、転送要求出力順序と転送応答入力順序が一致する。このため、コマンドキュー滞留時間比較部118は、転送順序整合情報において、対応する欄の値を「正順」に更新する(図6のステップS17)。
 次に、キュー番号1の転送先のバススレーブは、キュー番号3と同じくバススレーブ「1」のバススレーブ130Aであり(図6のステップS14でYes)、コマンドキュー滞留時間比較部118は、転送順序整合情報を更新しない。
 次に、キュー番号2の転送先のバススレーブは、バススレーブ番号「3」のバススレーブ130Cであり、時刻(T10)時点では、まだキュー有効状態を維持している。従って、転送応答入力順序が後続スレーブ番号のバススレーブ130Aから先行スレーブ番号のバススレーブ130Cとなり、転送要求出力順序と転送応答入力順序が一致しないので、コマンドキュー滞留時間比較部118は、転送順序整合情報において、対応する欄の値を「逆順」に更新する(図6のステップS16)。時刻(T10)において更新された転送順序整合情報は、図5に示されている転送順序整合情報119aのように、先行スレーブ番号「3」と後続スレーブ番号「1」との組合せのみが「逆順」となっている。
 次に、転送順序整合情報が、図5に示されている転送順序整合情報119aのように更新された後のバスマスタ110の動作を、図9を用いて説明する。
 転送要求出力順序制御部114は、コマンドキュー112に記憶されたコマンド情報のうち最も古いキュー番号0のコマンド情報と、次に古いキュー番号1のコマンド情報が「有効」であり、かつ、転送要求出力済みではない状態であるので、それぞれの転送先バススレーブであるバススレーブ番号「2」及びバススレーブ番号「1」を取得する。そして、転送要求出力順序制御部114は、バススレーブ番号「2」を後続スレーブ番号、バススレーブ番号「1」を先行スレーブ番号とする(図7のステップS25)。そして、転送要求出力順序制御部114は、転送順序整合情報119aを参照して、先行スレーブ番号「1」と後続スレーブ番号「2」との組合せが「正順」であることを確認すると(ステップS26においてNo)、コマンドキュー112に記憶された順序通り、まずキュー番号0を選択する(図7のステップS28)。そして、転送要求出力順序制御部114は、転送対象アドレスA21に対して、時刻(T1)において、転送要求出力部115に書き込みアドレスチャネル信号WACを出力させる。
 次に、転送要求出力順序制御部114は、コマンドキュー112に記憶されているコマンド情報及び管理情報を参照して、キュー番号1及びキュー番号2が「有効」、かつ、転送要求未出力であるので、キュー番号2の転送先バススレーブであるバススレーブ番号「3」を先行スレーブ番号、キュー番号1の転送先バススレーブであるバススレーブ番号「1」を後続スレーブ番号とする(図7のステップS25)。そして、転送要求出力順序制御部114は、転送順序整合情報119aを参照して、先行スレーブ番号「3」と後続スレーブ番号「1」との組合せが「逆順」であるので、バススレーブ130Cからの転送応答を得るまでに要する時間が、バススレーブ130Aからの転送応答を得るまでに要する時間よりも長いと判断する。このため、転送要求出力順序制御部114は、先にキュー番号2を選択して、転送要求出力部115に与える。そして、転送要求出力順序制御部114は、転送対象アドレスA31に対して、時刻(T3)において、転送要求出力部115に書き込みアドレスチャネル信号WACを出力させる。転送要求出力順序制御部114は、続いてキュー番号1を選択し、時刻(T5)において、転送要求出力部115に転送対象アドレスA11への書き込みアドレスチャネル信号WACを出力させる。
 最後に、転送要求出力順序制御部114は、キュー番号3の次に転送要求が記憶されるキュー番号0のコマンド情報が無効であるので(図7のステップS23においてNo)、キュー番号3を選択する。そして、転送要求出力順序制御部114は、時刻(T7)において、転送要求出力部115にアドレスA12への書き込みアドレスチャネル信号WACを出力させる。
 ここで、図9に示されているように、キュー番号2に記憶されたアドレスA31、即ち、バススレーブ130C(バススレーブ番号「3」)への転送要求に対する応答は、転送要求を出力した時刻(T4)から7単位時間後の時刻(T11)に得られる。このため、転送順序整合情報が初期化された状態での動作を示す図8と比較して、転送要求を処理し終えるまでに要する時間が2単位時間分短縮できる。
 実施の形態1では、バススレーブ130A~130Cに対する転送要求出力順序と転送応答入力順序を監視して、バススレーブ130間において転送応答を返すまでに要する期間が長いバススレーブ130を特定する。バスマスタ110は、連続する転送要求コマンドの対象バススレーブ130間の特定結果をもとに、転送応答を返すまでに要する期間が長いバススレーブ130への転送要求を他のバススレーブ130への転送要求よりも先に出力する。これにより、コマンドキューの順序通りに転送要求を発行した場合に比べて、当該バススレーブ130から転送応答を得る時間も前にシフトでき、転送要求がコマンドキューに滞留する時間を短くすることができる。バスマスタ110は、コマンドキューに蓄積された転送要求に対する処理を完了するまでにかかる時間を短くでき、データ転送を効率よく行うことができる。
 また、あるバススレーブ130において、例えば、DRAMリフレッシュ、外部電源又はクロックの一端停止、又は、転送負荷の集中等で、一時的に転送処理時間が長くなると、このバススレーブ130への転送要求は、他のバススレーブ130への転送要求よりも先に出力されるようになる。その後、このバススレーブ130が通常状態に戻り、転送要求を先に出力する必要がなくなった場合にも、継続してコマンドキュー滞留時間の比較が行われ、転送順序整合情報が更新されるように実施の形態1は構成されている。このため、転送要求出力順序の不要な入れ換えが継続することなく、バススレーブ130の動作に適したバス転送を行うことができる。
実施の形態2.
 図1に示されているように、実施の形態2に係るバスシステム200は、バスマスタ210A~210C(特に各々を区別する必要がないときは、バスマスタ210という)と、バススレーブ130A~130C(特に各々を区別する必要がないときは、バススレーブ130という)とが、バスインターコネクト150を介して接続されている。実施の形態2に係るバスシステム200は、バスマスタ210において、実施の形態1に係るバスシステム100と異なっている。
 図10は、実施の形態2におけるバスマスタ210の構成を概略的に示すブロック図である。バスマスタ210は、アクセス生成部111と、コマンドキュー112と、データキュー113と、転送要求出力順序制御部214と、転送要求出力部115と、転送応答入力部116と、アドレスマップ記憶部117と、時間計測カウンタ220と、転送応答入力時間計測部221と、転送応答入力時間記憶部222とを備える。実施の形態2におけるバスマスタ210は、転送要求出力順序制御部214での処理の点、並びに、実施の形態1におけるコマンドキュー滞留時間比較部118及び転送順序整合情報記憶部119の代わりに、時間計測カウンタ220、転送応答入力時間計測部221及び転送応答入力時間記憶部222を備える点において、実施の形態1におけるバスマスタ110と異なっている。
 時間計測カウンタ220は、予め定められた周期でカウントを行うことで、時間を計測するためのカウント値を生成する。そして、時間計測カウンタ220は、計測されたカウント値を転送応答入力時間計測部221に与える。
 転送応答入力時間計測部221は、転送要求が出力されてから、その応答が入力されるまでの時間を転送応答入力時間として計測する。
 例えば、転送応答入力時間計測部221は、転送要求出力部115が読み出しアドレスチャネル信号RAC又は書き込みアドレスチャネル信号WACを出力すると、アドレスマップ記憶部117に記憶されているアドレスマップ情報117aを参照して、転送対象アドレスより転送先のバススレーブ130のバススレーブ番号を特定する。また、転送応答入力時間計測部221は、コマンドキュー112に記憶されているコマンド情報を参照して、転送要求出力部115が出力した読み出しアドレスチャネル信号RAC又は書き込みアドレスチャネル信号WACの転送IDに対応する転送種別及び転送データ長を取得する。さらに、転送応答入力時間計測部221は、転送要求出力部115が読み出しアドレスチャネル信号RAC又は書き込みアドレスチャネル信号WACを出力した際のカウント値を時間計測カウンタ220より取得する。そして、転送応答入力時間計測部221は、転送要求出力部115が出力した読み出しアドレスチャネル信号RAC又は書き込みアドレスチャネル信号WACの転送IDとともに、特定されたバススレーブ番号、取得された転送種別、取得された転送データ長及び取得されたカウント値をメモリ221aに記憶しておく。その後、転送応答入力部116より読み出しデータチャネル信号RDC又は書き込み応答チャネル信号WRCの転送IDが通知されると、転送応答入力時間計測部221は、時間計測カウンタ220からカウント値を取得する。そして、転送応答入力時間計測部221は、転送IDが通知された際に取得されたカウント値から、メモリ221aに記憶されている、通知された転送IDの転送要求が出力された際のカウント値を減算することにより、転送先のバススレーブ130に対する転送応答入力時間を算出する。
 転送応答入力時間計測部221は、算出された転送応答入力時間と、対応するバススレーブ番号、転送種別及び転送データ長とに基づいて、転送応答入力時間記憶部222に記憶されている転送応答入力時間情報を更新する。例えば、転送応答入力時間計測部221は、既に、対応するバススレーブ番号、転送種別及び転送データ長が転送応答入力時間情報に格納されている場合には、既に格納されている転送応答入力時間を削除して、今回算出された転送応答入力時間を格納する。一方、転送応答入力時間計測部221は、対応するバススレーブ番号、転送種別及び転送データ長が転送応答入力時間情報に格納されていない場合には、これらの情報と今回算出された転送応答入力時間とを格納する。
 ここで、転送応答入力部116は、入力された信号が読み出しデータチャネル信号RDCである場合には、転送データ長分の読み出しデータチャネル信号RDCが入力されるのを待って、転送IDを転送応答入力時間計測部221に通知する。
 転送応答入力時間記憶部222は、転送応答入力時間計測部221で計測された転送応答入力時間を、バススレーブ130毎に記憶する。ここで、転送応答入力時間は、バススレーブ130毎に、読み出しアドレスチャネル信号RADが出力されてから読み出しデータチャネル信号RDC(バースト読み出しの場合には最後の読み出しデータチャネル信号RDC)が入力されるまでの時間、又は、書き込みアドレスチャネル信号WACが出力されてから書き込み応答チャネル信号WRCが入力されるまでの時間を、時間計測カウンタ220の計測精度で表現した値である。
 バススレーブ130毎に記憶される転送応答入力時間は、一般に、書き込みと読み出しとで異なり、書き込みにかかる時間と読み出しにかかる時間とが個別に記憶されてもよい。さらに、バースト転送が許容される場合には、転送データ数により転送応答入力時間が異なるため、転送データ数毎に個別に転送応答入力時間が記憶されてもよい。
 図11は、転送応答入力時間記憶部222に記憶されている転送応答入力時間情報の一例を示す概略図である。図11に示されているように、転送応答入力時間情報222aは、バススレーブ番号を格納するバススレーブ番号欄222bと、転送種別を格納する転送種別欄222cと、転送データ長を格納する転送データ長欄222dと、転送応答入力時間を格納する転送応答入力時間欄222eとを有するテーブル情報である。図11では、転送先スレーブ毎に、書き込み、読み出し及びバースト長を区別して、転送応答入力時間を格納する転送応答入力時間情報222aが示されている。
 転送要求出力順序制御部214は、転送応答入力時間情報222aに基づいて、出力対象のコマンド情報を選択することで、コマンドキュー112に記憶されたコマンド情報を送る順序を制御する。例えば、転送要求出力順序制御部214は、転送応答入力時間が長いバススレーブ130への転送を要求するコマンド情報が、他のバススレーブ130への転送を要求するコマンド情報よりも先に出力されるようにする。具体的には、転送要求出力順序制御部214は、転送応答入力時間情報222aを参照して、コマンドキュー112に記憶された最も古いコマンド情報に対応する、転送種別、転送データ長及び転送先のバススレーブ130のバススレーブ番号の転送応答入力時間を取得して、この転送応答入力時間を、先行バススレーブの応答時間とする。次に、転送要求出力順序制御部214は、転送応答入力時間情報222aを参照して、二番目に古いコマンド情報に対応する、転送種別、転送データ長及び転送先のバススレーブ130のバススレーブ番号の転送応答入力時間を取得して、この転送応答入力時間を、後続バススレーブの応答時間とする。
 そして、転送要求出力順序制御部214は、先行バススレーブの応答時間が後続バススレーブの応答時間よりも短い場合には、最も古いコマンド情報が格納されているキュー番号を選択する。一方、転送要求出力順序制御部214は、先行バススレーブの応答時間が後続バススレーブの応答時間以上である場合には、二番目に古いコマンド情報が格納されているキュー番号を選択する。そして、転送要求出力順序制御部214は、選択されたキュー番号のコマンド情報を、転送要求出力部115に与える。転送要求出力部115は、与えられたコマンド情報の内容に従って読み出しアドレスチャネル信号RAC又は書き込みアドレスチャネル信号WAC103を生成して、生成された信号を出力する。そして、転送要求出力順序制御部214は、生成された信号の出力後、選択されたキュー番号の転送要求出力情報を未出力から出力済みに更新する。
 言い換えると、実施の形態2における転送要求出力順序制御部214は、転送応答入力時間記憶部222に記憶されている転送応答入力時間を参照して、コマンドキュー112に記憶されているコマンド情報の内、最初に記憶されたコマンド情報に含まれている転送対象アドレスを有するバススレーブの転送応答入力時間が、次に記憶されたコマンド情報に含まれている転送対象アドレスを有するバススレーブの転送応答入力時間よりも短い場合に、最初に記憶されたコマンド情報よりも先に、次に記憶されたコマンド情報を、出力対象のコマンド情報として選択することができる。
 実施の形態2においては、バスマスタ210は、転送応答が返されるまでに要する時間を記憶して、転送時間が長いバススレーブ130への転送要求を他のバススレーブ130よりも先に出力して、転送を完了する時刻を前にシフトできるので、バスマスタ210のデータ転送を効率よく行うことができる。
 実施の形態3.
 図1に示されているように、実施の形態3に係るバスシステム300は、バスマスタ310A~310C(特に各々を区別する必要がないときは、バスマスタ310という)と、バススレーブ130A~130C(特に各々を区別する必要がないときは、バススレーブ130という)とが、バスインターコネクト150を介して接続されている。実施の形態3に係るバスシステム300は、バスマスタ310において、実施の形態2に係るバスシステム200と異なっている。
 図12は、実施の形態3におけるバスマスタ310の構成を概略的に示すブロック図である。バスマスタ310は、アクセス生成部111と、コマンドキュー112と、データキュー113と、転送要求出力順序制御部314と、転送要求出力部115と、転送応答入力部116と、アドレスマップ記憶部117と、時間計測カウンタ220と、転送応答入力時間計測部221と、転送応答入力時間記憶部222と、タイマカウンタ323とを備える。実施の形態3におけるバスマスタ310は、転送要求出力順序制御部314での処理の点、及び、タイマカウンタ323がさらに備えられている点において、実施の形態2におけるバスマスタ210と異なっている。
 タイマカウンタ323は、転送要求出力順序制御部314からの指示に応じて、予め定められた周期でカウントを行うことで、時間を計測するためのカウント値を生成する。そして、タイマカウンタ323は、計測されたカウント値を転送要求出力順序制御部314に与える。
 転送要求出力順序制御部314は、コマンドキュー112を参照する際にタイマカウンタ323にカウントを開始させる。そして、転送要求出力順序制御部314は、転送応答入力時間記憶部222に記憶されている転送応答入力時間情報222aを参照することで、コマンドキュー112に記憶された全てのコマンド情報の転送先のバススレーブ130、アクセス種別及びバースト長に対応する転送応答入力時間を取得する。そして、転送要求出力順序制御部314は、転送要求出力情報が未出力であるコマンド情報のうち、最も古いコマンド情報の転送先のバススレーブ130を先行スレーブ、最も古いコマンドキュー以降に記憶されたコマンド情報の転送先のバススレーブ130の各々を後続スレーブする。そして、転送要求出力順序制御部314は、以下の(1)式により、全ての後続スレーブの各々につき、値Trevを算出する。
 Trev=FRT-(PRT+TT)     (1)
 ここで、FRTは、後続スレーブの転送応答入力時間であり、PRTは、先行スレーブの転送応答入力時間である。また、TTは、タイマカウンタ323のカウント値である。
 そして、転送要求出力順序制御部314は、(1)式で求められたTrevの値が「0」よりも大きくなる後続スレーブがある場合には、その後続スレーブへのコマンド情報を格納したキュー番号を選択する。ここで、(1)式で求められたTrevの値が「0」よりも大きくなる後続スレーブが複数ある場合には、転送要求出力順序制御部314は、Trevの値が最大となるキュー番号を選択する。Trev>0となるキュー番号が1つも存在しない場合は、先行スレーブへの転送要求を選択する。
 そして、転送要求出力順序制御部314は、選択されたキュー番号のコマンド情報を、転送要求出力部115に与える。転送要求出力部115は、与えられたコマンド情報の内容に従って読み出しアドレスチャネル信号RAC又は書き込みアドレスチャネル信号WACを生成して、生成された信号を出力する。そして、転送要求出力順序制御部314は、生成された信号の出力後、選択されたキュー番号の転送要求出力情報を未出力から出力済みに更新する。
 なお、本実施の形態では、タイマカウンタ323と時間計測カウンタ220とは、同じ計測精度をもつものとする。タイマカウンタ323と時間計測カウンタ220との計測精度が異なる場合は、いずれかの計測精度に合わせた値にて、(1)式でTrevの値が算出される。
 実施の形態3に係るバスシステム300におけるバスマスタ310の動作について、図13を用いて説明する。図13において、バススレーブ130から転送応答を得るまでに要する時間は、図8及び図9と同じく、バススレーブ130A(バススレーブ番号「1」)及びバススレーブ130B(バススレーブ番号「2」)では2単位時間、バススレーブ130C(バススレーブ番号「3」)では7単位時間とする。図13は、各バススレーブ130の転送応答入力時間が、図11に示されている転送応答入力時間情報222aに格納されている転送応答入力時間であった場合のバスマスタ310の動作を示すタイミングチャートである。なお、ここでは、タイマカウンタ323と、時間計測カウンタ220とにおける計測精度が、図13に示されている(T1)~(T10)の1単位時間と等しいものとする。
 時刻(T1)にて、転送要求出力順序制御部314は、転送応答入力時間情報222aを参照して、図3に示されているキュー番号0のコマンド情報における転送先のバススレーブ130B(バススレーブ番号「2」)、転送種別「書き込み」及び転送データ長「1」に対応する転送応答入力時間として、2単位時間を取得する。そして、この2単位時間を、先行スレーブの転送応答入力時間PRTとする。また、同様にして、転送要求出力順序制御部314は、キュー番号1のコマンド情報における転送先のバススレーブ130A(バススレーブ番号「1」)、転送種別「書き込み」及び転送データ長「1」に対応する転送応答入力時間として2単位時間を取得する。従って、キュー番号1に対応する後続スレーブの転送応答入力時間FRTは、「2」となる。さらに、同様にして、転送要求出力順序制御部314は、キュー番号2のコマンド情報における転送先のバススレーブ130C(バススレーブ番号「3」)、転送種別「書き込み」及び転送データ長「1」に対応する転送応答入力時間として7単位時間を取得する。従って、キュー番号2に対応する後続スレーブの転送応答入力時間FRTは、「7」となる。さらにまた、同様にして、転送要求出力順序制御部314は、キュー番号3のコマンド情報における転送先のバススレーブ130A(バススレーブ番号「1」)、転送種別「書き込み」及び転送データ長「1」に対応する転送応答入力時間として2単位時間を取得する。従って、キュー番号3に対応する後続スレーブの転送応答入力時間FRTは、「2」となる。
 転送要求出力順序制御部314は、タイマカウンタ323に指示することにより、「0」からカウントを開始させる。そして、時刻(T1)では、先行スレーブの転送応答入力時間PRTが「2」、タイマカウンタ323のカウント値が「0」であるため、転送要求出力順序制御部314は、上記(1)式に基づいて、キュー番号1~3のぞれぞれのFRTを用いて、下記の(2)式を満たすキュー番号があるか否かを確認する。
 Trev=FRT-(2+0)>0      (2)
 上述した例では、キュー番号2に対応する後続スレーブ転送応答入力時間が「7」で、(2)式を満たすため、転送要求出力順序制御部314は、時刻(T1)において、キュー番号2を選択する。転送要求出力部115は、転送要求出力順序制御部314の選択結果に基づいて、キュー番号2のコマンド情報に従って、書き込みアドレスチャネル信号WACを出力した後、キュー番号2の転送要求出力情報を未出力から出力済みに更新する。
 次に、時刻(T3)では、時刻(T1)と同様に、最も古いコマンド情報は、キュー番号0のコマンド情報となる。このため、転送要求出力順序制御部314は、先行スレーブの転送応答入力時間PRTを「2」、タイマカウンタ323のカウント値を「3」として、上記(1)式に基づいて、キュー番号1及び3のぞれぞれのFRTを用いて、下記の(3)式を満たすキュー番号があるか否かを確認する。
 Trev=FRT-(2+3)>0      (3)
 図3に記載された例では、(3)式を満たし、かつ、転送要求出力情報が未出力であるキュー番号が存在しないので、転送要求出力順序制御部314は、時刻(3)において、キュー番号0を選択する。転送要求出力部115は、転送要求出力順序制御部314の選択結果に基づいて、キュー番号0のコマンド情報に従って、書き込みアドレスチャネル信号WACを出力した後、キュー番号0の転送要求出力情報を未出力から出力済みに更新する。
 次に、時刻(T5)では、最も古いコマンド情報は、キュー番号1のコマンド情報となる。このため、転送要求出力順序制御部314は、先行スレーブの転送応答入力時間PRTを「2」、タイマカウンタ323のカウント値を「5」として、上記(1)式に基づいて、キュー番号3のFRTを用いて、下記の(4)式を満たすか否かを確認する。
 Trev=FRT-(2+5)>0      (4)
 図3に記載された例では、キュー番号3は、(4)式を満たさないため、転送要求出力順序制御部314は、時刻(T5)において、キュー番号1を選択する。転送要求出力部115は、転送要求出力順序制御部314の選択結果に基づいて、キュー番号1のコマンド情報に従って、書き込みアドレスチャネル信号WACを出力した後、キュー番号1の転送要求出力情報を未出力から出力済みに更新する。
 次に、時刻(T7)では、転送要求出力順序制御部314は、キュー番号3を選択する。転送要求出力部115は、転送要求出力順序制御部314の選択結果に基づいて、キュー番号3のコマンド情報に従って、書き込みアドレスチャネル信号WACを出力した後、キュー番号3の転送要求出力情報を未出力から出力済みに更新する。
 図13に示されているように、時刻(T1)、時刻(T3)、時刻(T5)及び時刻(T7)にて出力された転送要求に対する転送応答は、それぞれ時刻(T9)、時刻(T6)、時刻(T8)及び時刻(T10)に入力される。図13に示されている場合では、実施の形態1で説明した図8と比較して、転送要求を処理し終えるまでに要する時間が3単位時間分短縮できる。
 以上のように、実施の形態3における転送要求出力順序制御部314は、転送応答入力時間記憶部222に記憶されている転送応答入力時間を参照して、コマンドキュー112に記憶されたコマンド情報の内、最初に記憶されたコマンド情報を除いた何れか一つのコマンド情報に含まれている転送対象アドレスを有するバススレーブの転送応答入力時間が、最初に記憶されたコマンド情報に含まれている転送対象アドレスを有するバススレーブの転送応答入力時間に予め定められた時刻からの経過時間を加算した時間よりも長い場合に、最初に記憶されたコマンド情報よりも先に、その何れか一つのコマンド情報を、出力対象のコマンド情報として選択することができる。
 実施の形態3に係るバスシステム300によれば、転送時間が長いバススレーブへの転送要求をほかのバススレーブよりも先に出力して、転送を完了する時刻を前にシフトできるので、バスマスタのデータ転送を効率よく行える。
 また、実施の形態3に係るバスシステム300は、コマンドキューに格納された先行スレーブと後続スレーブの応答時間を比較する際に、比較を開始してからの経過時間を加味するため、先行スレーブへの転送完了が後続スレーブへの転送完了より遅くなることを回避することができる。
実施の形態4.
 図14は、実施の形態4に係るバスシステム400の構成を概略的に示すブロック図である。バスシステム400は、バスマスタ410A~410C(特に各々を区別する必要がないときは、バスマスタ410という)と、バススレーブ130A~130C(特に各々を区別する必要がないときは、バススレーブ130という)とが、バスインターコネクト150を介して接続されている。また、バスマスタ410には、キュー数制御部470が接続されている。実施の形態4に係るバスシステム400は、バスマスタ410での処理の点、及び、キュー数制御部470がさらに備えられている点において、実施の形態3に係るバスシステム300と異なっている。
 キュー数制御部470は、転送応答入力時間計測部221で計測された、バススレーブ130毎の転送応答入力時間に基づいて、転送応答入力時間が増加傾向にあるバススレーブ130へのコマンド情報の出力数を制限するように、転送要求出力順序制御部414に指示する。
 例えば、キュー数制御部470は、バスマスタ410が出力する転送応答入力時間信号TRTを参照して、バスマスタ410に出力キュー数制御信号OQNを出力する。そして、キュー数制御部470は、バスマスタ410が出力する転送応答入力時間信号TRTに基づいて、各バススレーブ130の転送応答入力時間を監視して、転送応答入力時間が増加しているバススレーブ130への転送要求の出力数を減らすように、各バスマスタ410に出力キュー数制御信号OQNを与える。
 図15は、実施の形態4におけるバスマスタ410の構成を概略的に示すブロック図である。バスマスタ410は、アクセス生成部111と、コマンドキュー112と、データキュー113と、転送要求出力順序制御部414と、転送要求出力部115と、転送応答入力部116と、アドレスマップ記憶部117と、時間計測カウンタ220と、転送応答入力時間計測部221と、転送応答入力時間記憶部222と、タイマカウンタ323とを備える。実施の形態4におけるバスマスタ410は、転送要求出力順序制御部414での処理の点において、実施の形態3におけるバスマスタ310と異なっている。なお、実施の形態4における転送応答入力時間記憶部222からの出力である転送応答入力時間信号TRTは、転送要求出力順序制御部414及びキュー数制御部470に与えられる。
 転送要求出力順序制御部414は、実施の形態3に記載された転送要求出力順序制御部314と同様に、後続スレーブの転送応答入力時間FRTと、先行スレーブの転送応答入力時間PRTと、タイマカウンタ323のカウント値TTとに基づいて、出力するコマンド情報が格納されているキュー番号を選択するが、キュー数制御部470からの出力キュー数制御信号OQRに従って、各々のバススレーブ130へ出力するコマンド情報の出力数を制御する。
 例えば、キュー数制御部470からの出力キュー数制御信号OQRにより、特定のバススレーブ130への転送要求の上限抑制が指示された場合には、転送要求出力順序制御部414は、その特定のバススレーブ130への転送要求を複数出力しないようにする。一方、キュー数制御部470からの出力キュー数制御信号OQRにより、特定のバススレーブ130への転送要求の上限抑制の解除が指示された場合には、転送要求出力順序制御部414は、通常動作に戻り、その特定のバススレーブ130への転送要求を複数出力することができる。
 図16及び図17は、キュー数制御部470がバスマスタ410から転送応答入力時間信号TRTを得て、出力キュー数制御信号OQNをバスマスタ410に与える際の処理を示すフローチャートである。
 キュー数制御部470は、予め定められた時間が経過する毎に転送応答入力時間信号TRTを参照する(S40)。次に、キュー数制御部470は、バススレーブ番号「S」に初期値として「1」を代入する(S41)。バススレーブ番号「1」は、バススレーブ130Aを示す。
 次に、キュー数制御部470は、バススレーブ番号「S」で示されるバススレーブ130の転送応答入力時間の合計値であるTcurrent[S]の値を初期値「0」にする(S42)。
 次に、キュー数制御部470は、バスマスタ番号「M」に初期値として「1」を代入する(S43)。バスマスタ番号「1」は、バスマスタ110Aを示す。
 次に、キュー数制御部470は、バスマスタ番号「M」のバスマスタ410から送られてきた転送応答入力時間信号TRTに基づいて、バススレーブ番号「S」の転送応答入力時間を取得する(S44)。そして、キュー数制御部470は、取得された応答時間を値TRとする。ここで、転送応答入力時間が、転送種別及び転送データ長により区別されている場合には、キュー数制御部470は、区別された全ての転送応答入力時間の合計値を値TRとする。
 次に、キュー数制御部470は、Tcurrent[S]の値に、値TRを加算する(S45)。
 次に、キュー数制御部470は、バスマスタ番号「M」に「1」をインクリメントする(S46)。
 そして、キュー数制御部470は、バスマスタ番号「M」がバスインターコネクト150に接続されているバスマスタ410の数以下であるか否かを判断する(S47)。バスマスタ番号「M」がバスマスタ410の数以下である場合(S47;Yes)には、処理は、ステップS44に戻る。一方、バスマスタ番号「M」がバスマスタ410の数よりも大きい場合(S47;No)には、処理は、図17のステップS48に進む。
 ステップS42~S47の処理により、キュー数制御部470は、バススレーブ番号「S」のバススレーブ130の転送応答入力時間の合計値を算出することができる。この合計値は、バスマスタ410が複数ある場合には、複数のバスマスタ410で算出された転送応答入力時間が合算されている。また、各々のバススレーブ130の転送応答入力時間が、転送種別及び転送データ長により区別されている場合には、転送種別及び転送データ長を区別せずに、各々のバススレーブ130の転送応答入力時間が合算される。
 図17のステップS48では、キュー数制御部470は、メモリ470aから前回参照した、バススレーブ番号「S」の転送応答入力時間の合計値Tlast[S]を読み出す。そして、キュー数制御部470は、Tcurrent[S]の値がTlast[S]の値よりも大きいか否かを判断する。Tcurrent[S]の値がTlast[S]の値よりも大きい場合(S48;Yes)には、処理はステップS49に進み、Tcurrent[S]の値がTlast[S]の値以下の場合(S48;No)には、処理はステップS53に進む。
 ステップS49では、キュー数制御部470は、バススレーブ番号「S」のバススレーブ130の転送応答時間が増加したと判断して、連続増加回数に「1」を加算して、連続減少回数の値を初期値「0」に戻す。
 次に、キュー数制御部470は、連続増加回数が予め定められた第1閾値以上であるか否かを判断する(S50)。連続増加回数が第1閾値以上である場合(S50;Yes)には、処理はステップS51に進み、連続増加回数が第1閾値よりも小さい場合(S50;No)には、処理はステップS59に進む。
 ステップS51では、キュー数制御部470は、バススレーブ番号「S」のバススレーブ130の転送負荷が高いと判断する。そして、キュー数制御部470は、出力する転送要求数の上限抑制を指示する出力キュー数制御信号OQNを全てのバスマスタ410に与える。
 なお、このような指示を受けたバスマスタ410の転送要求出力順序制御部414は、バススレーブ番号「S」のバススレーブ130への転送要求が複数出力されないようにする。
 次に、キュー数制御部470は、連続増加回数を初期値「0」に戻す(S52)。そして、処理はステップS59に進む。
 一方、ステップS48において、Tcurrent[S]の値がTlast[S]の値以下と判断された場合(S48;No)には、処理はステップS53に進む。
 ステップS53では、キュー数制御部470は、Tcurrent[S]の値がTlast[S]の値よりも小さい否かを判断する。Tcurrent[S]の値がTlast[S]の値よりも小さくない場合(S53;No)、即ち、Tcurrent[S]の値とTlast[S]の値とが同じ値である場合には、処理はステップS54に進む。また、Tcurrent[S]の値がTlast[S]の値よりも小さい場合(S53;Yes)には、処理はステップS55に進む。
 ステップS54では、キュー数制御部470は、連続増加回数及び連続減少回数を初期値「0」に戻す。
 一方、ステップS55では、キュー数制御部470は、バススレーブ番号「S」のバススレーブ130の転送応答時間が減少したと判断して、連続減少回数に「1」を加算して、連続増加回数の値を初期値「0」に戻す。
 次に、キュー数制御部470は、連続減少回数が予め定められた第2閾値以上であるか否かを判断する(S56)。連続減少回数が第2閾値以上である場合(S56;Yes)には、処理はステップS57に進み、連続減少回数が第2閾値よりも小さい場合(S56;No)には、処理はステップS59に進む。
 ステップS57では、キュー数制御部470は、バススレーブ番号「S」のバススレーブ130の転送負荷が下がったと判断する。そして、キュー数制御部470は、出力する転送要求数の上限抑制の抑制解除を指示する出力キュー数制御信号OQNを全てのバスマスタ410に与える。
 なお、このような指示を受けたバスマスタ410の転送要求出力順序制御部414は、バススレーブ番号「S」のバススレーブ130から転送応答が得られるのを待つことなく、このバススレーブ130へ転送要求を出力させる。
 次に、キュー数制御部470は、連続減少回数を初期値「0」に戻す(S58)。そして、処理はステップS59に進む。
 ステップS59では、キュー数制御部470は、今回算出したTcurrent[S]の値により、メモリ470aに保存されているTlast[S]の値を更新する。
 そして、キュー数制御部470は、バススレーブ番号「S」に「1」をインクリメントする(S60)。
 次に、キュー数制御部470は、バススレーブ番号「S」がバススレーブ数以下であるか否かを判断する(S61)。そして、バススレーブ番号「S」がバススレーブ数以下である場合(S61;Yes)には、処理は図16のステップS42に進む。一方、バススレーブ番号「S」がバススレーブ数よりも大きい場合(S61;No)には、処理は図16のステップS40に進む。
 図18は、転送要求出力順序制御部414が、バススレーブ130Aへ出力する転送要求数の上限を抑制した場合のバスマスタ410の動作を示すタイミングチャートである。
 図18に示されているように、転送要求出力順序制御部414は、時刻(T5)において、バススレーブ130Aへの書き込みアドレスチャネル信号WACを出力した後、その転送応答が時刻(T8)において取得されるまで、このバススレーブ130Aへ転送要求を出力していない。このような動作を行うことにより、転送要求出力順序制御部414は、バススレーブ130Aへの転送要求が複数出力されている状態を回避して、バススレーブ130Aの転送負荷を下げる。
 以上のように、実施の形態4に係るバスシステム400によれば、転送負荷が一時的に大きくなったバススレーブ130に対するバスマスタ410の転送要求数を制限して、そのバススレーブ130の転送負荷を下げるので、バスマスタ410が転送要求を出力してから転送応答を得るまでの時間を短くすることができる。
実施の形態5.
 図19は、実施の形態5に係るバスシステム500の構成を概略的に示すブロック図である。バスシステム500は、バスマスタ510A~510C(特に各々を区別する必要がないときは、バスマスタ510という)と、バススレーブ530A~530C(特に各々を区別する必要がないときは、バススレーブ530という)とが、バスインターコネクト150を介して接続されている。また、バススレーブ530A~530Cにおいて受け付けることのできる最大転送要求数が、それぞれ540A~540C(特に各々を区別する必要がないときは、最大転送要求数540という)として、バスマスタ510に通知されている。実施の形態5に係るバスシステム500は、バスマスタ510での処理の点、及び、バススレーブ530から最大転送要求数540がバスマスタ510に通知されている点において、実施の形態1に係るバスシステム100と異なっている。ここで、最大転送要求数540は、各々のバススレーブ530が内部に蓄積し得る転送要求の最大数である。この最大転送要求数540は、システムで予め定められており、各々のバススレーブ530が備えるメモリ531A~531C(特に各々を区別する必要がないときは、メモリ531という)に記憶されているものとする。
 バススレーブ530は、バスマスタ510A~510Cから発行される書き込みアドレスチャネル信号及び書き込みデータチャネル信号、又は、読み出しアドレスチャネル信号を、バスインターコネクト150を介して受け取る。バススレーブ530は、受け取ったチャネル信号に従って、制御信号を生成する。例えば、バススレーブ530がSRAMである場合は、SRAMの書き込み又は読み出し信号を生成し、書き込み又は読み出しが完了すると、書き込み応答チャネル信号又は読み出しデータチャネル信号を、バスインターコネクト150を経由してバスマスタ510に渡す。
 また、バススレーブ530が外部とのシリアルインターフェース等である場合、書き込みアドレスチャネル信号及び書き込みデータチャネル信号、又は、読み出しアドレスチャネル信号をシリアル信号に変換して、外部デバイスへ出力し、外部デバイスから入力されるシリアル信号を書き込み応答チャネル信号又は読み出しデータチャネル信号に変換して、上記と同様にバスインターコネクト150に渡す。
 バススレーブ530がバスマスタ510A~510Cからの書き込みアドレスチャネル信号又は読み出しアドレスチャネル信号、即ち、転送要求を受け取ってから、書き込み応答チャネル信号又は読み出しデータチャネル信号を発行するまでの期間に、さらに別の書き込みアドレスチャネル信号又は読み出しアドレスチャネル信号がバススレーブ530に入力された場合、この信号をバススレーブ530が取り込むかどうかはバススレーブ530の構成によって異なる。例えば、バススレーブ530の内部に転送要求を蓄積するバッファを有しており、そのバッファへ転送要求を蓄積する空き容量が確保できる場合、バススレーブ530は、書き込みアドレスチャネル信号と書き込みデータチャネル信号、または読み出しアドレスチャネル信号を、Ready信号を出力して取り込み、バススレーブ530内部のバッファへ格納する。
 一方、バススレーブ530が上述のようなバッファを備えていない、あるいはバッファに転送要求を蓄積するだけの空き容量が確保できない場合、バススレーブ530は、Ready信号を有効にせず、転送要求を取り込まないことをバスインターコネクト150に通知する。バスインターコネクト150は、バススレーブ530からこの取り込み保留の通知を受けると、保留が解除されるまでの期間、バススレーブ530への新たな転送要求を行わず、システム内のバススレーブ530への転送は滞留する。
 バススレーブ530において実行中の転送が完了し、バススレーブ530が処理すべき転送要求がない、あるいは転送要求を蓄積するバッファの空き容量が確保できた時点で、バススレーブ530はReady信号を有効にして、取り込みを保留した転送要求をバスインターコネクト150から得る。
 バスマスタ510は、バススレーブ530の最大転送要求数540を得て、コマンドキュー112に記憶されたコマンド情報を選択する。図20は、実施の形態5におけるバスマスタ510の構成を概略的に示すブロック図である。実施の形態5に係るバスマスタ510は、転送要求出力順序制御部514にバススレーブ530A~530Cの最大転送要求数540A~540Cが入力される点で、実施の形態1に係るバスマスタ110と異なっている。
 図21及び22は、実施の形態5に係る転送要求出力順序制御部514が、コマンドキュー112に記憶された何れかのキュー番号のコマンド情報を選択する際の処理を示すフローチャートである。図21及び22に示されているフローにおいて、図7に示されている処理と同様の処理については、図7と同じ符号が付されている。
 図21におけるステップS20~S22の処理については、図7におけるステップS20~S22の処理と同様である。但し、図21のステップS22において、キュー番号Xのコマンド情報が出力済みではない場合(S22;No)には、処理はステップS62に進む。
 ステップS62では、転送要求出力順序制御部514は、コマンドキュー112を参照して、キュー番号Xの転送対象アドレスをもつバススレーブ530と同じバススレーブ530への転送要求のうち、キューが有効かつ転送要求が出力済みのものの数を計数して、転送応答入力前アクセス数とする。そして、転送要求出力順序制御部514は、転送応答入力前アクセス数がバススレーブ530の最大転送要求数540に達していないかどうかを確認する。その数がバススレーブ530の最大転送要求数540に達していない場合(S26;Yes)には、処理はステップS23に進み、以降、実施の形態1における転送要求出力順序制御部114と同様に、次に記憶されたコマンドとの出力順序を決定する。一方、その数がバススレーブ530の最大転送要求数540に達している場合(S26;No)には、処理は図22のステップS63に進む。
 図22のステップS63では、転送要求出力順序制御部514は、比較キューを特定するための変数Yに初期値(ここでは、「1」)を設定する。
 次に、転送要求出力順序制御部514は、コマンドキュー112に記憶されている管理情報を参照することで、キュー番号(X+Y)のコマンド情報が「有効」であるか否かを判断する(S64)。キュー番号(X+Y)のコマンド情報が「有効」である場合(S64;Yes)には、処理はステップS65に進み、キュー番号(X+Y)のコマンド情報が「無効」である場合(S64;No)には、処理はステップS68に進む。
 ステップS65では、転送要求出力順序制御部514は、コマンドキュー112に記憶されている管理情報を参照することで、キュー番号(X+Y)のコマンド情報が出力済みであるか否かを判断する。キュー番号Xのコマンド情報が出力済みである場合(S65;Yes)には、処理はステップS68に進み、キュー番号(X+Y)のコマンド情報が出力済みではない場合(S65;No)には、処理はステップS66に進む。
 ステップS66では、転送要求出力順序制御部514は、コマンドキュー112に記憶されているコマンド情報を参照することで、キュー番号Xの転送対象バススレーブ530と、キュー番号(X+Y)の転送対象バススレーブ530とが同じであるか否かを判断する。これらが同じである場合(S66;Yes)には、処理はステップS68に進み、これらが異なる場合(S66;No)には、処理はステップS67に進む。
 ステップS63~S66までの処理により、転送要求出力順序制御部514は、キュー番号X以降に記憶された転送要求の内、キューが有効(S64;Yes)で、未出力(S65;No)で、キュー番号Xの転送対象バススレーブ530と異なるバススレーブ530への転送要求(S66;No)であるものを、キューに記憶された順に検出することができる。
 そして、ステップS67では、キュー番号(X+Y)の転送対象アドレスをもつバススレーブ530と同じバススレーブ530への転送要求のうち、キューが有効かつ転送要求出力済みの数を計数する。そして、転送要求出力順序制御部514は、計数された数がそのバススレーブ530の最大転送要求数540に達していないかを確認する。計数された数がそのバススレーブ530の最大転送要求数540に達している場合(S67;No)には、処理はステップS68に進み、計数された数がそのバススレーブ530の最大転送要求数540に達していない場合(S67;Yes)には、処理はステップS70に進む。
 ステップS68では、転送要求出力順序制御部514は、変数Yに「1」をインクリメントする。
 そして、転送要求出力順序制御部514は、キュー番号(X+Y)がキュー数N以上となっていないかを確認する(S69)。キュー番号(X+Y)がキュー数N以上となっている場合(S69;Yes)には、処理は図21のステップS62に戻り、キュー番号(X+Y)がキュー数N以上となっていない場合(S69;No)には、処理はステップS64に戻る。
 一方、ステップS70では、転送要求出力順序制御部514は、キュー番号(X+Y)のコマンド情報を転送要求出力部115に与えて、このコマンド情報を出力させる。言い換えると、キュー番号(X+Y)のコマンド情報をキュー番号Xのコマンド情報よりも先に出力させる。
 以上のように、実施の形態5では、最大転送要求数に達したバススレーブ530へは、コマンド情報を出力せず、それよりも後に記憶されたコマンド情報の転送対象バススレーブ530が最大転送要求数に達していない場合は、そのバススレーブ530へのコマンド情報を先に出力する。これにより、バススレーブ530のデータ転送容量を超えないバス転送を行なうことができ、バススレーブ530が転送要求の取り込みを保留する状態を回避することができる。そして、バススレーブ530のデータ転送負荷状態に適したバス転送を行なうことができる。
 以上、実施の形態5に係るバスマスタ510を実施の形態1に係るバスマスタ110をもとに説明したが、その他の実施の形態に係るバスマスタ210、310、410の転送要求出力順序制御部214、314、414に最大転送要求数540A~540Cが入力される構成としてもよい。このように構成することで、バススレーブ530にて転送要求の取り込み保留が発生するコマンドを予めバスマスタ210、310、410が選択しないことで、バススレーブ530のデータ転送容量を超えないバス転送を行うことができる。
 また、実施の形態5に係るバスシステム500では、バススレーブ530の最大転送要求数540をバスマスタ510に通知する構成としたが、このような例に限定されない。例えば、最大転送要求数540の代わりにバススレーブ530の転送要求受け付け状態を鑑みて、最大転送要求数から現在蓄積されている要求数を減算した値を、最大転送要求数としてバスマスタ510に逐次通知してもよい。逐次変化するバススレーブ530の最大転送要求数を参照することで、さらにバススレーブ530のデータ転送負荷状態に適したバス転送を行うことができる。
 100,200,300,400,500 バスシステム、 110,210,310,410,510 バスマスタ、 111 アクセス生成部、 112 コマンドキュー、 113 データキュー、 114,214,314,414,514 転送要求出力順序制御部、 115 転送要求出力部、 116 転送応答入力部、 117 アドレスマップ記憶部、 118 コマンドキュー滞留時間比較部、 119 転送順序整合情報記憶部、 220 時間計測カウンタ、 221 転送応答入力時間計測部、 222 転送応答入力時間記憶部、 323 タイマカウンタ、 130,530 バススレーブ、 150 バスインターコネクト、 470 キュー数制御部。

Claims (17)

  1.  データの転送を要求する転送要求の種別を示す転送種別及び当該転送要求の送り先のバススレーブの転送対象アドレスを含むコマンド情報を生成するアクセス生成部と、
     前記アクセス生成部で生成されたコマンド情報を複数記憶するコマンドキューと、
     前記コマンドキューに記憶されている複数のコマンド情報の内、第1のコマンド情報に含まれている転送対象アドレスを有する第1のバススレーブよりも応答の遅い第2のバススレーブが有する転送対象アドレスを含む第2のコマンド情報を、出力対象のコマンド情報として、当該第1のコマンド情報よりも先に選択する転送要求出力順序制御部と、
     前記転送要求出力順序制御部で選択されたコマンド情報を、当該選択されたコマンド情報に含まれている転送対象アドレスを有するバススレーブに出力する転送要求出力部と、を備えること
     を特徴とするバスマスタ。
  2.  前記転送要求出力部から出力されたコマンド情報に対する、当該コマンド情報に含まれている転送対象アドレスを有するバススレーブからの応答の入力を受ける転送応答入力部と、
     前記転送要求出力部から出力されたコマンド情報への応答が、当該コマンド情報よりも先に出力されたコマンド情報への応答よりも先に前記転送応答入力部に入力された場合に、当該先に出力されたコマンド情報の転送対象アドレスを有するバススレーブを先行スレーブとし、当該後に出力されたコマンド情報の転送対象アドレスを有するバススレーブを後続スレーブとして特定し、当該先行スレーブと当該後続スレーブとの応答が逆転したと判断するコマンドキュー滞留時間比較部と、
     前記コマンドキュー滞留時間比較部での判断結果に応じて、前記先行スレーブと前記後続スレーブとの応答が逆転したことを示す情報を含む転送順序整合情報を記憶する転送順序整合情報記憶部と、をさらに備え、
     前記転送要求出力順序制御部は、前記転送順序整合情報記憶部に記憶されている転送順序整合情報を参照して、前記出力対象のコマンド情報を選択すること
     を特徴とする請求項1に記載のバスマスタ。
  3.  前記転送要求出力順序制御部は、前記コマンドキューに記憶されているコマンド情報の内、最初に記憶されたコマンド情報に含まれている転送対象アドレスを有するバススレーブを前記先行スレーブとし、次に記憶されたコマンド情報に含まれている転送対象アドレスを有するバススレーブを前記後続スレーブとして、応答が逆転したことを示す情報が前記転送順序整合情報に含まれている場合に、当該最初に記憶されたコマンド情報よりも先に、当該次に記憶されたコマンド情報を、前記出力対象のコマンド情報として選択すること
     を特徴とする請求項2に記載のバスマスタ。
  4.  前記転送要求出力順序制御部は、前記コマンドキューに記憶されているコマンド情報の内、最初に記憶されたコマンド情報に含まれている転送対象アドレスを有する一のバススレーブに出力したコマンド情報の中で、転送応答を得る前のコマンド情報の数が、当該一のバススレーブが蓄積し得るコマンド情報の数の最大値に達している場合、転送応答を得る前のコマンド情報の数が、蓄積し得るコマンド情報の数の最大値に達していない他のバススレーブの転送対象アドレスを含むコマンド情報を、前記最初に記憶されたコマンド情報より先に出力対象のコマンド情報として選択すること
     を特徴とする請求項2に記載のバスマスタ。
  5.  前記転送要求出力部から出力されたコマンド情報に対する、当該コマンド情報に含まれている転送対象アドレスを有するバススレーブからの応答の入力を受ける転送応答入力部と、
     前記転送要求出力部が前記コマンド情報を出力してから、前記転送応答入力部が前記応答の入力を受けるまでの転送応答入力時間を計測する転送応答入力時間計測部と、
     前記転送応答入力時間計測部で計測された転送応答入力時間を、前記バススレーブ毎に記憶する転送応答入力時間記憶部と、をさらに備え、
     前記転送要求出力順序制御部は、前記転送応答入力時間記憶部に記憶されている転送応答入力時間に基づいて、前記出力対象のコマンド情報を選択すること
     を特徴とする請求項1に記載のバスマスタ。
  6.  前記転送要求出力順序制御部は、前記転送応答入力時間記憶部に記憶されている転送応答入力時間を参照して、前記コマンドキューに記憶されているコマンド情報の内、最初に記憶されたコマンド情報に含まれている転送対象アドレスを有するバススレーブの転送応答入力時間が、次に記憶されたコマンド情報に含まれている転送対象アドレスを有するバススレーブの転送応答入力時間よりも短い場合に、前記最初に記憶されたコマンド情報よりも先に、前記次に記憶されたコマンド情報を、前記出力対象のコマンド情報として選択すること
     を特徴とする請求項5に記載のバスマスタ。
  7.  前記転送要求出力順序制御部は、前記転送応答入力時間記憶部に記憶されている転送応答入力時間を参照して、前記コマンドキューに記憶されたコマンド情報の内、最初に記憶されたコマンド情報を除いた何れか一つのコマンド情報に含まれている転送対象アドレスを有するバススレーブの転送応答入力時間が、当該最初に記憶されたコマンド情報に含まれている転送対象アドレスを有するバススレーブの転送応答入力時間に予め定められた時刻からの経過時間を加算した時間よりも長い場合に、当該最初に記憶されたコマンド情報よりも先に、当該何れか一つのコマンド情報を、前記出力対象のコマンド情報として選択すること
     を特徴とする請求項5に記載のバスマスタ。
  8.  前記転送要求出力順序制御部は、キュー数制御部から指示されたバススレーブへの前記コマンド情報の出力数を制限し、
     前記キュー数制御部は、前記転送応答入力時間計測部で計測された、前記バススレーブ毎の転送応答入力時間に基づいて、当該転送応答入力時間が増加傾向にあるバススレーブへの前記コマンド情報の出力数を制限するように、前記転送要求出力順序制御部に指示すること
     を特徴とする請求項5から7に記載のバスマスタ。
  9.  少なくとも1つのバスマスタ及び複数のバススレーブを備えるバスシステムであって、
     前記少なくとも1つのバスマスタは、
     データの転送を要求する転送要求の種別を示す転送種別及び当該転送要求の送り先の、前記複数のバススレーブの内の1つのバススレーブの転送対象アドレスを含むコマンド情報を生成するアクセス生成部と、
     前記アクセス生成部で生成されたコマンド情報を複数記憶するコマンドキューと、
     前記コマンドキューに記憶されている複数のコマンド情報の内、第1のコマンド情報に含まれている転送対象アドレスを有する第1のバススレーブよりも応答の遅い第2のバススレーブが有する転送対象アドレスを含む第2のコマンド情報を、出力対象のコマンド情報として、当該第1のコマンド情報よりも先に選択する転送要求出力順序制御部と、
     前記転送要求出力順序制御部で選択されたコマンド情報を、当該選択されたコマンド情報に含まれている転送対象アドレスを有するバススレーブに出力する転送要求出力部と、を備えること
     を特徴とするバスシステム。
  10.  前記バスマスタは、
     前記転送要求出力部から出力されたコマンド情報に対する、当該コマンド情報に含まれている転送対象アドレスを有するバススレーブからの応答の入力を受ける転送応答入力部と、
     前記転送要求出力部から出力されたコマンド情報への応答が、当該コマンド情報よりも先に出力されたコマンド情報への応答よりも先に前記転送応答入力部に入力された場合に、当該先に出力されたコマンド情報の転送対象アドレスを有するバススレーブを先行スレーブとし、当該後に出力されたコマンド情報の転送対象アドレスを有するバススレーブを後続スレーブとして特定し、当該先行スレーブと当該後続スレーブとの応答が逆転したと判断するコマンドキュー滞留時間比較部と、
     前記コマンドキュー滞留時間比較部での判断結果に応じて、前記先行スレーブと前記後続スレーブとの応答が逆転したことを示す情報を含む転送順序整合情報を記憶する転送順序整合情報記憶部と、をさらに備え、
     前記転送要求出力順序制御部は、前記転送順序整合情報記憶部に記憶されている転送順序整合情報を参照して、前記出力対象のコマンド情報を選択すること
     を特徴とする請求項9に記載のバスシステム。
  11.  前記転送要求出力順序制御部は、前記コマンドキューに記憶されているコマンド情報の内、最初に記憶されたコマンド情報を前記先行スレーブとし、次に記憶されたコマンド情報を前記後続スレーブとして、応答が逆転したことを示す情報が前記転送順序整合情報に含まれている場合に、当該最初に記憶されたコマンド情報よりも先に、当該次に記憶されたコマンド情報を、前記出力対象のコマンド情報として選択すること
     を特徴とする請求項10に記載のバスシステム。
  12.  前記転送要求出力順序制御部は、前記コマンドキューに記憶されているコマンド情報の内、最初に記憶されたコマンド情報に含まれている転送対象アドレスを有する一のバススレーブに出力したコマンド情報の中で、転送応答を得る前のコマンド情報の数が、当該一のバススレーブが蓄積し得るコマンド情報の数の最大値に達している場合、転送応答を得る前のコマンド情報の数が、蓄積し得るコマンド情報の数の最大値に達していない他のバススレーブの転送対象アドレスを含むコマンド情報を、前記最初に記憶されたコマンド情報より先に出力対象のコマンド情報として選択すること
     を特徴とする請求項10に記載のバスシステム。
  13.  前記転送要求出力部から出力されたコマンド情報に対する、当該コマンド情報に含まれている転送対象アドレスを有するバススレーブからの応答の入力を受ける転送応答入力部と、
     前記転送要求出力部が前記コマンド情報を出力してから、前記転送応答入力部が前記応答の入力を受けるまでの転送応答入力時間を計測する転送応答入力時間計測部と、
     前記転送応答入力時間計測部で計測された転送応答入力時間を、前記バススレーブ毎に記憶する転送応答入力時間記憶部と、をさらに備え、
     前記転送要求出力順序制御部は、前記転送応答入力時間記憶部に記憶されている転送応答入力時間に基づいて、前記出力対象のコマンド情報を選択すること
     を特徴とする請求項9に記載のバスシステム。
  14.  前記転送要求出力順序制御部は、前記転送応答入力時間記憶部に記憶されている転送応答入力時間を参照して、前記コマンドキューに記憶されているコマンド情報の内、最初に記憶されたコマンド情報に含まれている転送対象アドレスを有するバススレーブの転送応答入力時間が、次に記憶されたコマンド情報に含まれている転送対象アドレスを有するバススレーブの転送応答入力時間よりも短い場合に、前記最初に記憶されたコマンド情報よりも先に、前記次に記憶されたコマンド情報を、前記出力対象のコマンド情報として選択すること
     を特徴とする請求項13に記載のバスシステム。
  15.  前記転送要求出力順序制御部は、前記転送応答入力時間記憶部に記憶されている転送応答入力時間を参照して、前記コマンドキューに記憶されたコマンド情報の内、最初に記憶されたコマンド情報を除いた何れか一つのコマンド情報に含まれている転送対象アドレスを有するバススレーブの転送応答入力時間が、当該最初に記憶されたコマンド情報に含まれている転送対象アドレスを有するバススレーブの転送応答入力時間に予め定められた時刻からの経過時間を加算した時間よりも長い場合に、当該最初に記憶されたコマンド情報よりも先に、当該何れか一つのコマンド情報を、前記出力対象のコマンド情報として選択すること
     を特徴とする請求項13に記載のバスシステム。
  16.  前記転送応答入力時間計測部で計測された、前記バススレーブ毎の転送応答入力時間に基づいて、当該転送応答入力時間が増加傾向にあるバススレーブへの前記コマンド情報の出力数を制限するように、前記転送要求出力順序制御部に指示するキュー数制御部をさらに備え、
     前記転送要求出力順序制御部は、前記キュー数制御部から指示されたバススレーブへの前記コマンド情報の出力数を制限すること
     を特徴とする請求項13から15の何れか一項に記載のバスシステム。
  17.  データの転送を要求する転送要求の種別を示す転送種別及び当該転送要求の送り先のバススレーブの転送対象アドレスを含むコマンド情報を生成するアクセス生成過程と、
     前記アクセス生成過程で生成されたコマンド情報を複数記憶するコマンドキューイング過程と、
     前記コマンドキューイング過程で記憶された複数のコマンド情報の内、第1のコマンド情報に含まれている転送対象アドレスを有する第1のバススレーブよりも応答の遅い第2のバススレーブが有する転送対象アドレスを含む第2のコマンド情報を、出力対象のコマンド情報として、当該第1のコマンド情報よりも先に選択する転送要求出力順序制御過程と、
     前記転送要求出力順序制御過程で選択されたコマンド情報を、当該選択されたコマンド情報に含まれている転送対象アドレスを有するバススレーブに出力する転送要求出力過程と、を有すること
     を特徴とするバス制御方法。
PCT/JP2014/051959 2013-03-25 2014-01-29 バスマスタ、バスシステム及びバス制御方法 WO2014156282A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201480017943.3A CN105190583A (zh) 2013-03-25 2014-01-29 总线主设备、总线系统以及总线控制方法
US14/768,021 US20160062930A1 (en) 2013-03-25 2014-01-29 Bus master, bus system, and bus control method
DE112014001621.7T DE112014001621T5 (de) 2013-03-25 2014-01-29 Bus-Master, Bussystem und Bussteuerungsverfahren
JP2015508129A JP6058122B2 (ja) 2013-03-25 2014-01-29 バスマスタ、バスシステム及びバス制御方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013-061994 2013-03-25
JP2013061994 2013-03-25

Publications (1)

Publication Number Publication Date
WO2014156282A1 true WO2014156282A1 (ja) 2014-10-02

Family

ID=51623284

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/051959 WO2014156282A1 (ja) 2013-03-25 2014-01-29 バスマスタ、バスシステム及びバス制御方法

Country Status (5)

Country Link
US (1) US20160062930A1 (ja)
JP (1) JP6058122B2 (ja)
CN (1) CN105190583A (ja)
DE (1) DE112014001621T5 (ja)
WO (1) WO2014156282A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7476640B2 (ja) 2020-04-17 2024-05-01 株式会社リコー 情報処理装置、インタフェース制御回路および情報処理装置の制御方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6395647B2 (ja) * 2015-03-18 2018-09-26 ルネサスエレクトロニクス株式会社 半導体装置
DE102017000932B3 (de) * 2016-05-02 2017-08-10 Sew-Eurodrive Gmbh & Co Kg Verfahren zur Initialisierung eines Bussystems und Bussystem
US11385612B2 (en) * 2017-07-26 2022-07-12 Metropolitan Industries, Inc. System and method for digital motor identification and control
DE102017008186B4 (de) * 2017-08-31 2022-12-15 WAGO Verwaltungsgesellschaft mit beschränkter Haftung Master eines Bussystems
JP6708677B2 (ja) * 2018-03-01 2020-06-10 ファナック株式会社 数値制御装置
KR20210012439A (ko) * 2019-07-25 2021-02-03 삼성전자주식회사 마스터 지능 소자 및 이의 제어 방법
KR20210097938A (ko) 2020-01-31 2021-08-10 에스케이하이닉스 주식회사 클록변조를 통해 리드 데이터의 신뢰성을 검증하는 메모리 장치 및 메모리 장치를 포함하는 메모리 시스템
US11501808B2 (en) 2019-09-02 2022-11-15 SK Hynix Inc. Memory controller and operating method thereof
US11507310B2 (en) * 2019-09-02 2022-11-22 SK Hynix Inc. Memory controller and operating method thereof
KR20210061174A (ko) 2019-11-19 2021-05-27 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR102713219B1 (ko) 2019-09-02 2024-10-07 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US12051470B2 (en) 2019-09-02 2024-07-30 SK Hynix Inc. Memory controller and operating method thereof
TWI730465B (zh) * 2019-10-22 2021-06-11 新唐科技股份有限公司 串聯式雙向通訊電路及其方法
US20220036238A1 (en) * 2020-07-30 2022-02-03 Tektronix, Inc. Mono channel burst classification using machine learning
CN112395011B (zh) * 2020-11-24 2022-11-29 海宁奕斯伟集成电路设计有限公司 命令响应信息的返回方法、返回控制装置和电子设备
DE112021006204T5 (de) * 2021-02-03 2023-10-12 Mitsubishi Electric Corporation Daten-Transfereinrichtung, Daten-Transferverfahren und Daten-Transferprogramm

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1145227A (ja) * 1997-07-29 1999-02-16 Nec Ic Microcomput Syst Ltd データ転送方式およびデータ転送装置
JP2006094331A (ja) * 2004-09-27 2006-04-06 Mitsubishi Electric Corp 光多分岐通信システム、親局装置及び子局装置
JP2009193260A (ja) * 2008-02-13 2009-08-27 Nec Corp ストレージシステム、ストレージ装置、優先度制御装置および優先度制御方法
JP2012038325A (ja) * 2005-02-10 2012-02-23 Qualcomm Inc スイッチマトリックス経由のデータ転送を改善するフロー制御方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04352272A (ja) * 1991-05-30 1992-12-07 Toshiba Corp 実行制御装置
US5471590A (en) * 1994-01-28 1995-11-28 Compaq Computer Corp. Bus master arbitration circuitry having improved prioritization
JP4007642B2 (ja) * 1997-07-11 2007-11-14 富士通株式会社 携帯電話のデータ転送装置
WO1999019785A1 (en) * 1997-10-10 1999-04-22 Rambus Incorporated Apparatus and method for generating a distributed clock signal using gear ratio techniques
TWI282057B (en) * 2003-05-09 2007-06-01 Icp Electronics Inc System bus controller and the method thereof
JP5175200B2 (ja) * 2005-10-06 2013-04-03 ラテゼ・リモート・エム・ジー・エム・テイ・エル・エル・シー リソースコマンドメッセージを送受信するシステムにおいて使用される装置及び方法
US7805558B2 (en) * 2005-10-31 2010-09-28 Hewlett-Packard Development Company, L.P. Method and system of controlling transfer speed of bus transactions
JP4895183B2 (ja) * 2006-07-21 2012-03-14 キヤノン株式会社 メモリコントローラ
JP2008293487A (ja) * 2007-04-27 2008-12-04 Panasonic Corp プロセッサシステム、バス制御方法および半導体装置
US8156273B2 (en) * 2007-05-10 2012-04-10 Freescale Semiconductor, Inc. Method and system for controlling transmission and execution of commands in an integrated circuit device
JP2009093423A (ja) * 2007-10-09 2009-04-30 Delta Electronics Inc キュー機能を備えるプログラマブル論理制御装置とその方法
JP2011095978A (ja) * 2009-10-29 2011-05-12 Renesas Electronics Corp バスシステム及びバス制御方法
TWI547784B (zh) * 2011-04-22 2016-09-01 緯創資通股份有限公司 動態調整匯流排時脈的方法及其裝置
US8842122B2 (en) * 2011-12-15 2014-09-23 Qualcomm Incorporated Graphics processing unit with command processor
US20130191572A1 (en) * 2012-01-23 2013-07-25 Qualcomm Incorporated Transaction ordering to avoid bus deadlocks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1145227A (ja) * 1997-07-29 1999-02-16 Nec Ic Microcomput Syst Ltd データ転送方式およびデータ転送装置
JP2006094331A (ja) * 2004-09-27 2006-04-06 Mitsubishi Electric Corp 光多分岐通信システム、親局装置及び子局装置
JP2012038325A (ja) * 2005-02-10 2012-02-23 Qualcomm Inc スイッチマトリックス経由のデータ転送を改善するフロー制御方法
JP2009193260A (ja) * 2008-02-13 2009-08-27 Nec Corp ストレージシステム、ストレージ装置、優先度制御装置および優先度制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7476640B2 (ja) 2020-04-17 2024-05-01 株式会社リコー 情報処理装置、インタフェース制御回路および情報処理装置の制御方法

Also Published As

Publication number Publication date
DE112014001621T5 (de) 2015-12-24
JPWO2014156282A1 (ja) 2017-02-16
JP6058122B2 (ja) 2017-01-11
US20160062930A1 (en) 2016-03-03
CN105190583A (zh) 2015-12-23

Similar Documents

Publication Publication Date Title
JP6058122B2 (ja) バスマスタ、バスシステム及びバス制御方法
JP4737438B2 (ja) 複数の処理ユニットでリソースを共有する情報処理装置
WO2011089660A1 (ja) バス調停装置
JP2010282405A (ja) データ処理システム
CN105988968B (zh) 半导体装置
JP2020109642A (ja) メモリ制御装置、メモリ制御方法及び画像形成装置
KR100644596B1 (ko) 버스 시스템 및 그 버스 중재방법
JP2008276391A (ja) メモリアクセス制御装置
US9798492B2 (en) Semiconductor device including a plurality of function blocks
JP5911548B1 (ja) 共有メモリへのアクセス要求をスケジューリングするための装置、方法およびコンピュータプログラム
JP4902640B2 (ja) 集積回路、及び集積回路システム
JP5304815B2 (ja) マイクロコンピュータ
JP2001134542A (ja) 集合的メモリを共有する複数のプロセッサの配列
US11354263B2 (en) Bus system permitting parallel access by a master to a plurality of slaves and method of controlling the same
JP2007172112A (ja) メモリコントローラ
JP2009116702A (ja) 半導体集積回路
JP6142783B2 (ja) メモリコントローラ,情報処理装置及びメモリコントローラの制御方法
JP2001282704A (ja) データ処理装置及びデータ処理方法とデータ処理システム
CN115964982A (zh) 加速器的拓扑结构
US20090106466A1 (en) Design structure for piggybacking multiple data tenures on a single data bus grant to achieve higher bus utilization
US8713205B2 (en) Data transfer device and data transfer method
JP7292044B2 (ja) 制御装置および制御方法
JP2004348745A (ja) 高速の帯域幅のシステムバスを仲裁するためのバスシステム及びその方法
JP4593220B2 (ja) メモリアクセス制御方式と方法、及び共有メモリアクセス制御方式と方法
JP2006065453A (ja) データ処理装置

Legal Events

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

Ref document number: 201480017943.3

Country of ref document: CN

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

Ref document number: 14775441

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015508129

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14768021

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 112014001621

Country of ref document: DE

Ref document number: 1120140016217

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14775441

Country of ref document: EP

Kind code of ref document: A1