WO2017056132A1 - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
WO2017056132A1
WO2017056132A1 PCT/JP2015/005013 JP2015005013W WO2017056132A1 WO 2017056132 A1 WO2017056132 A1 WO 2017056132A1 JP 2015005013 W JP2015005013 W JP 2015005013W WO 2017056132 A1 WO2017056132 A1 WO 2017056132A1
Authority
WO
WIPO (PCT)
Prior art keywords
control unit
setting register
master
masters
transfer amount
Prior art date
Application number
PCT/JP2015/005013
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 CN201580018135.3A priority Critical patent/CN106856663B/zh
Priority to JP2016554520A priority patent/JP6513695B2/ja
Priority to KR1020167027043A priority patent/KR102344032B1/ko
Priority to CN202111655532.5A priority patent/CN114490457B/zh
Priority to US15/127,765 priority patent/US10108562B2/en
Priority to EP15885774.8A priority patent/EP3358468B1/en
Priority to PCT/JP2015/005013 priority patent/WO2017056132A1/ja
Publication of WO2017056132A1 publication Critical patent/WO2017056132A1/ja
Priority to US16/165,658 priority patent/US10831683B2/en
Priority to US17/066,998 priority patent/US11294835B2/en

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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width
    • 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
    • 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/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles

Definitions

  • the present invention relates to a semiconductor device, and more particularly to a semiconductor device in which a plurality of circuit blocks are connected via a bus.
  • Patent Document 1 when there is a request from a master designated as a priority master, if there is a slot with the highest priority in the priority master after the current slot, the slot of the priority master is reduced so as to reduce the latency of the priority master.
  • a technique for performing replacement is disclosed.
  • Patent Document 2 in a circuit composed of multi-master / multi-slave connected via an interconnect, tokens are exchanged between nodes on a virtual network before issuing a request on a physical network.
  • a technique for performing bus arbitration by performing is disclosed.
  • Patent Document 2 has a problem that the latency of a circuit increases because a request is issued on a physical network after arbitration is performed using a token triggered by the request. Further, in a multi-level interconnect, arbitration is performed for each level, so that a large amount of buffers for storing requests are required in each level.
  • the semiconductor device calculates the number of access rights that can be granted based on the free space information of the buffer of the memory controller, and the QoS (Quality of ⁇ Service) information of the plurality of masters and the rights can be granted. Based on the number, the master to which the access right is granted is selected, and the request of the master to which the access right has not been granted is not passed.
  • QoS Quality of ⁇ Service
  • FIG. 1 is a configuration diagram of a semiconductor device according to a first embodiment
  • 4 is a flowchart showing an example of processing of a memory controller related to access rights according to the first embodiment
  • 3 is a flowchart showing an example of processing of a central bus control unit related to an access right according to the first exemplary embodiment
  • 4 is a flowchart showing an example of processing of a sub-bus control unit related to access right according to the first exemplary embodiment
  • FIG. 3 is a configuration diagram of a semiconductor device according to a second embodiment
  • FIG. 6 is a configuration diagram of a central bus control unit according to a second embodiment
  • 3 is a configuration diagram of a memory controller according to a second embodiment
  • FIG. 10 is a diagram illustrating an example of setting information of a reservation type register group according to the second exemplary embodiment
  • FIG. 9 is a diagram showing a setting example of bandwidth in the setting of FIG. 8 according to the second embodiment
  • FIG. 10 is a diagram illustrating setting information examples of a reservation type register group and a refresh request subslot number setting register according to the second embodiment
  • FIG. 11 is a diagram showing a setting example of a bandwidth in the setting of FIG. 10 according to the second embodiment.
  • FIG. 10 is a configuration diagram of a central bus control unit according to a modification of the second embodiment.
  • 10 is a diagram illustrating an example of setting information of a reservation type register group according to a modification of the second embodiment.
  • FIG. 14 is a diagram illustrating a setting example of a bandwidth in the setting of FIG. 13 according to a modification of the second embodiment.
  • FIG. 9 is a configuration diagram of a central bus control unit according to a third embodiment. It is a figure which shows the example of the distribution priority about the master which issues a request
  • FIG. The first half according to the third embodiment is a diagram showing an example of distribution priorities for a master that issues a request only in the second half without making a request.
  • FIG. 6 is a configuration diagram of a semiconductor device according to a fourth embodiment;
  • FIG. 1 is a diagram illustrating the configuration of the semiconductor device according to the first embodiment.
  • the semiconductor device according to the first embodiment includes a plurality of masters 100, a plurality of sub-bus control units 200a, a bus arbiter 300, a memory controller 400a, a memory 500, The central bus control unit 600a, the bus 10, the bus 20, and the bus 30 are included.
  • the number of masters 100 is three.
  • the number of masters 100 is not limited as long as it is two or more.
  • the three masters 100 in FIG. 1 are also referred to as master A, master B, and master C, respectively.
  • the number of masters 100 and the number of sub-bus control units 200a are the same.
  • the plurality of masters 100 are each connected to the corresponding sub-bus control unit 200a via the bus 10.
  • the plurality of masters 100 output requests for the memory 500 to the sub-bus control unit 200a via the bus 10.
  • the sub-bus control unit 200a includes a request issue control unit 201a.
  • the request issuance control unit 201 a receives a request from the bus 10. Further, the request issuance control unit 201a receives the priority level signal 705 from the central bus control unit 600a.
  • the priority level signal 705 is a signal indicating a priority level based on the QoS information of the master 100.
  • the request issuance control unit 201a determines whether or not to output the received request to the bus 20. This determination is made based on whether or not the access right grant signal 700 indicating the grant of the access right is distributed from the central bus control unit 600a. The request issuance control unit 201a outputs the received request to the bus 20 when the access right grant signal 700 is distributed. The request issuance control unit 201a does not output the received request to the bus 20 when the access right grant signal 700 is not distributed, that is, when the access right is not granted. That is, the request issuance control unit 201a cannot pass the request of the master 100 until the access right is acquired.
  • the request issuance control unit 201a adds the priority level of the corresponding master 100 to the request and outputs the request.
  • the priority level is the priority level indicated by the priority level signal 705. If the request issuance control unit 201a has not received a request from the bus 10 when the access right is acquired, the request issuance control unit 201a returns the access right to the central bus control unit 600a by an access right return signal 710.
  • the bus arbiter 300 receives a request from the bus 20. In addition, the bus arbiter 300 performs request arbitration using the priority level added to the received request. Note that the request arbitration method using the priority level performed by the bus arbiter 300 is a generally known method and will not be described. As a result of the arbitration, the bus arbiter 300 outputs a request having the highest priority level among the requests from the plurality of masters 100 to the bus 30. Note that the arbitration performed by the bus arbiter 300 may be a round robin method or a fixed priority method.
  • the memory controller 400 a includes a buffer 401.
  • the memory controller 400 a receives a request from the bus 30.
  • the memory controller 400 a stores the received request in the buffer 401.
  • the memory controller 400 a performs request scheduling using the priority level added to the request stored in the buffer 401, and controls access to the memory 500.
  • the memory controller 400a constantly monitors the usage status of the buffer 401. When the buffer 401 is released due to the completion of the response processing, the release information of the buffer 401 is output as the buffer release notification signal 720 to the central bus control unit 600a.
  • the memory 500 is, for example, DDR SDRAM (Double-Data-Rate Synchronous Dynamic Random Access Memory), SRAM (Static Random Access Memory), or the like.
  • the memory 500 is not limited to DDRDSDRAM and SRAM, but may be other memory.
  • the central bus control unit 600a is a functional unit for controlling access rights.
  • the central bus control unit 600a includes a grantable maximum number setting register 601, a right grant number control unit 602, a right grant selection control unit 603a, and a QoS information register 610.
  • the maximum grantable number setting register 601 stores the maximum number of rights that can be granted access rights.
  • the maximum number of access rights that can be granted means the maximum number of access rights that can be granted. Note that the value of the maximum number of rights that can be granted stored in the maximum number of grantable setting register 601 can be changed.
  • the right grant number control unit 602 receives a buffer release notification signal 720 from the memory controller 400a. Then, the right grant number control unit 602 calculates the right grantable number of access rights based on the empty information in the buffer 401. Further, the right grant number control unit 602 outputs the calculated right grantable number to the right grant selection control unit 603a.
  • the right grant number control unit 602 reads the maximum number of rights grantable from the maximum grantable number setting register 601. Then, the right grant number control unit 602 calculates the right grantable number of access rights based on the empty information in the buffer 401, with the maximum number of right grantable being the upper limit.
  • the right grant number control unit 602 receives an access right return signal 710 from the request issuance control unit 201a. Then, the right grant number control unit 602 calculates the right grantable number of access rights based on the empty information in the buffer 401 and the number of returned access rights.
  • the right grant count control unit 602 uses the maximum number of grantable rights, the access right return signal 710, and the number of access rights to which the right can be granted. Can also be calculated. Specifically, when the access right grant signal 700 is distributed starting from the maximum number of rights that can be granted, the number of rights that can be granted is reduced by the number of distributions. In addition, the right grant number control unit 602 increases the number of grantable rights by receiving the buffer release notification signal 720 from the memory controller 400a or the access right return signal 710 from the request issuance control unit 201a. The right grant number control unit 602 may recognize the number of distributed access rights by receiving it from the right grant selection control unit 603a.
  • the right grant number control unit 602 may recognize the right grantable number output to the right grant selection control unit 603a as the number of distributed access rights. This is effective when the right grant selection control unit 603a always distributes all access rights corresponding to the number of rights that can be granted.
  • the QoS information register 610 stores QoS information of a plurality of masters 100.
  • the right grant selection control unit 603a reads QoS information of a plurality of masters 100 from the QoS information register 610. Also, the right grant selection control unit 603a receives the right grantable number from the right grant number control unit 602. Then, the right grant selection control unit 603a selects a master as a right grant destination of the access right based on the QoS information of the plurality of masters 100 and the number of grantable rights. Specifically, the right grant selection control unit 603a grants the right of the access right so that the right is preferentially distributed to the master 100 having a high priority level based on the QoS information within the range of the right grantable number. Select the master.
  • the right grant selection control unit 603a distributes the access right grant signal 700 to the master 100 selected as the right grant destination master of the access right. Specifically, the access right grant signal 700 is output to the sub-bus control unit 200a of the selected master 100. Note that the right grant selection control unit 603a selects the right to which the access right is granted and outputs the access right grant signal 700 every cycle. Furthermore, the right grant selection control unit 603a outputs a priority level signal 705 indicating a priority level based on the QoS information of the master 100 to the sub-bus control unit 200a of the master 100. Note that the output of the priority level signal 705 in the right grant selection control unit 603a is performed at the timing when the QoS information is stored in the QoS information register 610. Thereby, the priority level based on the QoS information stored in the QoS information register 610 is also reflected in the sub-bus control unit 200a.
  • the memory controller 400a monitors whether or not the buffer 401 is released (S101). If it is determined in S101 that the buffer 401 is not released, the monitoring in S101 is continued.
  • the memory controller 400a When it is determined in S101 that the buffer 401 is released, the memory controller 400a outputs the release information of the buffer 401 to the central bus control unit 600a as the buffer release notification signal 720 (S102), and returns to S101.
  • the right grant number control unit 602 determines whether or not a buffer release notification signal 720 has been received (S201). If it is determined in S201 that the buffer release notification signal 720 has been received, the right grant number control unit 602 increases the number of rights that can be granted (S202).
  • the right grant number control unit 602 determines whether an access right return signal 710 has been received (S203). If it is determined in S201 that the buffer release notification signal 720 has not been received, the process also proceeds to S203. If it is determined in S203 that the access right return signal 710 has been received, the right grant number control unit 602 increases the right grantable number (S204).
  • the right grant selection control unit 603a determines whether or not the right can be granted (S205). If it is determined in S203 that the access right return signal 710 has not been received, the process also proceeds to S205. The determination in S205 is performed by receiving the number of rights that can be granted from the rights grant number control unit 602. Note that the determination in S205 is performed every cycle.
  • the process returns to S201.
  • the right grant selection control unit 603a selects the right granting master (S206). After S206, the right grant selection control unit 603a distributes the access right grant signal 700 to the right grantee master (S207).
  • the number-of-rights control unit 602 reduces the number of rights that can be granted (S208), and returns to S201.
  • S201 is performed before S203, but either S201 or S203 may be performed first.
  • S208 is performed after S207, but S208 may be performed before S207.
  • the right granting number control unit 602 may reduce the right grantable number at the timing of outputting the right grantable number to the right grant selection control unit 603a.
  • the request issuance control unit 201a determines whether an access right has been acquired (S301). If it is determined in S301 that the access right has not been acquired, the request from the master 100 is not passed (S302), and the process returns to S301.
  • the request issuance control unit 201a determines whether or not the request received from the master 100 is held (S303). If it is determined in S303 that the request is not held, the access right is returned to the right grant number control unit 602 (S304). On the other hand, if it is determined in S303 that the request is held, the request is passed (S305). That is, a request is output to the bus 20. Thereafter, the process returns to S301.
  • the availability of the buffer 401 of the memory controller 400a is monitored, and the central bus control unit 600a performs request control of all the masters 100 using the access right. . As a result, overall optimum control can be realized.
  • the number of access rights distributed by the right grant number control unit 602 is controlled. As a result, the number of requests staying in the entire bus system can be controlled.
  • the maximum number of grantable access rights can be set by the maximum grantable number setting register 601.
  • the maximum number is set to the same number as the buffer 401 of the memory controller 400a, it is possible to control so that the bus is not always clogged. Further, by setting the maximum number to be larger than the buffer 401 of the memory controller 400a, it is possible to control in consideration of requests that can exist on the bus on the way.
  • the access right is returned.
  • the number of rights that can be granted can be increased by the number returned.
  • the semiconductor device according to the second embodiment includes a plurality of masters 100, a plurality of sub-bus control units 200a, a bus arbiter 300, a memory controller 400b, a memory 500, and a central bus control unit. 600 b, bus 10, bus 20, and bus 30.
  • the plurality of masters 100, the plurality of sub-bus control units 200a, the bus arbiter 300, the memory 500, the bus 10, the bus 20, and the bus 30 are the same as those shown in the first embodiment, and thus the description thereof is omitted. .
  • the central bus control unit 600b includes a maximum grantable number setting register 601, a right grant number control unit 602, a right grant selection control unit 603b, a slot setting register 604, and a refresh request subslot number.
  • a setting register 605, a refresh request controller 606, a mask signal generation unit 607, a reservation type register group 620a, and a transfer amount monitor 640a are provided.
  • the maximum grantable number setting register 601 and the right grant number control unit 602 are the same as those shown in the first embodiment, and thus the description thereof is omitted.
  • the reservation type register group may be referred to as a first setting register group.
  • the slot setting register 604 stores the number of subslots existing in one basic slot and the period of one subslot.
  • the basic slot indicates a refresh period of the memory 500.
  • the number of subslots existing in one basic slot stored in the slot setting register 604 and the period of one subslot can be changed.
  • the refresh request subslot number setting register 605 stores the subslot number from which the refresh request controller 606 outputs the refresh request signal 740. Note that the subslot number stored in the refresh request subslot number setting register 605 can be changed.
  • the refresh request controller 606 reads the sub slot number stored in the refresh request sub slot number setting register 605. In addition, the refresh request controller 606 outputs a refresh request signal 740 to the memory controller 400b in the sub slot indicated by the read sub slot number.
  • the transfer amount monitor 640a is a functional unit that measures the transfer amount of requests transferred from the plurality of masters 100 to the bus arbiter 300 via the corresponding sub-bus control units 200a.
  • the transfer amount monitor 640 a measures the transfer amounts of requests from the plurality of masters 100 based on the monitor signals 730 from the plurality of buses 20. Then, the transfer amount monitor 640 a outputs the measured transfer amounts of requests from the plurality of masters 100 to the mask signal generation unit 607.
  • the reserved type register group 620a includes a reserved bandwidth setting register 621, a reserved type priority level setting register 622, a basic slot period setting register 623, an operation basic slot number setting register 624, and a transfer operation subslot pattern setting register 625. It has.
  • the central bus control unit 600b includes the same number of reserved register groups 620a as the number of masters 100. Note that the relationship between the plurality of masters 100 and the reserved register group 620a may be any of the following relationships.
  • a dedicated reserved register group 620a may be used for each of the plurality of masters 100.
  • the central bus control unit 600b has a reserved register group 620a dedicated to master A, a reserved register group 620a dedicated to master B, and a master.
  • Three reserved type register groups 620a of the reserved type register group 620a dedicated to C may be provided.
  • each of the reservation type register groups 620a may not be a reservation type register group 620a dedicated to each master 100.
  • the central bus control unit 600b may include a plurality of reserved register groups 620a and associate the plurality of reserved register groups 620a with the plurality of masters 100.
  • the central bus control unit 600b may include one reservation type register group 620a, and each of the setting registers in the reservation type register group 620a may store information about a plurality of masters 100, respectively.
  • a setting register separately provided for each of the plurality of masters 100 and a setting register for storing information about the plurality of masters 100 in one setting register may be divided.
  • the reserved bandwidth setting register 621 stores reserved bandwidths of a plurality of masters 100.
  • the reserved bandwidth indicates, for example, a reserved transfer amount per sub-slot in the master 100.
  • the reservation type priority level setting register 622 stores priority levels of a plurality of masters 100.
  • the basic slot period setting register 623 stores the period of the basic slot that distributes the access right for each of the plurality of masters 100. For example, if 1 is stored in the basic slot period setting register 623, the distribution of access rights is valid every basic slot, and if 2 is stored, the distribution of access rights is valid once in two basic slots.
  • the operation basic slot number setting register 624 stores the basic slot number for distributing the access right for each of the plurality of masters 100. For example, if 1 is stored in the operation basic slot number setting register 624, access right distribution is valid in the first basic slot, and if 2 is stored, access right distribution is valid in the second basic slot.
  • the transfer operation subslot pattern setting register 625 stores a subslot pattern for distributing an access right for each of the plurality of masters 100. Specifically, whether or not the access right can be distributed in each sub slot constituting the basic slot is stored as a sub slot pattern for distributing the access right. For example, the transfer operation sub-slot pattern setting register 625 stores “ ⁇ ” in a sub-slot where the access right can be distributed and stores “X” in a sub-slot where the access right cannot be distributed.
  • the mask signal generation unit 607 receives the transfer amount of requests from the plurality of masters 100 from the transfer amount monitor 640a.
  • the mask signal generation unit 607 reads the number of subslots present in one basic slot and the period of one subslot from the slot setting register 604. Further, the mask signal generation unit 607 reads the reserved bandwidths of the plurality of masters 100 from the reserved bandwidth setting register 621.
  • the mask signal generation unit 607 uses the number of subslots present in one basic slot and the period of one subslot, the transfer amount of requests from the plurality of masters 100, and the reserved bandwidth of the plurality of masters 100. Then, a mask signal for the access right grant signal 700 is generated. Further, the mask signal generation unit 607 outputs the generated mask signal to the right grant selection control unit 603b.
  • the mask signal generation unit 607 uses the number of subslots present in one basic slot read from the slot setting register 604 and the period of one subslot to determine the number of subslots present in one basic slot and 1 Set subslot duration. Further, when the request transfer amount of any master 100 reaches the reserved transfer amount of the master 100, the mask signal generation unit 607 generates a mask signal for the remaining period of the subslot for the master 100. To do.
  • the right grant selection control unit 603b reads the reserved bandwidth of the plurality of masters 100 from the reserved bandwidth setting register 621. Also, the right grant selection control unit 603b reads the priority levels of the plurality of masters 100 from the reservation type priority level setting register 622. Further, the right grant selection control unit 603b reads the basic slot period for distributing the access right from the basic slot period setting register 623 for each of the plurality of masters 100. Further, the right grant selection control unit 603 b reads the basic slot number for distributing the access right from the operation basic slot number setting register 624 for each of the plurality of masters 100.
  • the right grant selection control unit 603b reads the sub slot pattern for distributing the access right from the transfer operation sub slot pattern setting register 625 for each of the plurality of masters 100. Further, the right grant selection control unit 603b receives the mask signal from the mask signal generation unit 607. Furthermore, the right grant selection control unit 603b receives the right grantable number from the right grant number control unit 602.
  • the right grant selection control unit 603b reserves bandwidths of the plurality of masters 100, priority levels of the plurality of masters 100, basic slot periods of the plurality of masters 100, basic slot numbers of the plurality of masters 100, and Using the subslot pattern, the mask signal, and the number of rights that can be granted, the master to which the access right is granted is selected. Note that the method of selecting the right-granting master of the access right by the right-granting selection control unit 603b will be described in detail later with reference to FIGS.
  • the right grant selection control unit 603b distributes the access right grant signal 700 to the master 100 selected as the right grant destination master of the access right. Specifically, the access right grant signal 700 is output to the sub-bus control unit 200a of the selected master 100. Note that the right grant selection control unit 603b performs the selection of a right granting destination master for the access right and the output of the access right grant signal 700 every cycle. Furthermore, the right grant selection control unit 603b outputs a priority level signal 705 indicating the priority level of the master 100 to the sub-bus control unit 200a of the master 100. Note that the priority level signal 705 is output from the right grant selection control unit 603b at the timing when the priority level is stored in the reservation type priority level setting register 622. As a result, the priority level stored in the reservation-type priority level setting register 622 is also reflected in the sub-bus control unit 200a.
  • the memory controller 400b includes a buffer 401 and a refresh controller 402.
  • the buffer 401 has the same configuration as that described in Embodiment 1, and thus the description thereof is omitted.
  • the refresh controller 402 receives the refresh request signal 740 from the refresh request controller 606. Upon receiving the refresh request signal 740, the refresh controller 402 refreshes the memory 500 by outputting a refresh command to the memory 500.
  • the reserved bandwidth setting register 621 stores 10 GB / s (gigabytes per second), 5 GB / s, 8 GB / s, and 3 GB / s as reserved bandwidths of master A, master B, master C, and master D, respectively. Yes.
  • the basic slot period setting register 623 stores 1, 1, 4, and 2 as the basic slot periods of master A, master B, master C, and master D, respectively.
  • the operation basic slot number setting register 624 stores 1, 1, 4, 1 as the operation basic slot numbers of master A, master B, master C, and master D, respectively.
  • the transfer operation subslot pattern setting register 625 stores ⁇ , ⁇ , ⁇ , ⁇ as transfer operation subslot patterns in subslot 0 (ss0), subslot 1, subslot 2, and subslot 3 of the master A. Yes.
  • the transfer operation subslot pattern setting register 625 stores ⁇ , ⁇ , ⁇ , and ⁇ as transfer operation subslot patterns in subslot 0, subslot 1, subslot 2, and subslot 3 of the master B. .
  • the transfer operation subslot pattern setting register 625 stores “O”, “O”, “O”, “O” as transfer operation subslot patterns in the subslot 0, subslot 1, subslot 2, and subslot 3 of the master C.
  • the transfer operation subslot pattern setting register 625 stores x, ⁇ , ⁇ , ⁇ as transfer operation subslot patterns in the subslot 0, subslot 1, subslot 2, and subslot 3 of the master D. .
  • the selection of the right grant destination master in the setting of FIG. 8 will be described.
  • description will be made on the assumption that the number of rights that can be granted is sufficient.
  • the master of the rights grant destination is selected using the table in FIG. 9 and the priority levels of the plurality of masters 100.
  • the right grant selection control unit 603b distributes the access right to the master A in each sub slot of each basic slot. Further, the right grant selection control unit 603b distributes access rights to the master B in the subslot 0 and subslot 2 of each basic slot. Further, the right grant selection control unit 603b distributes the access right to the master C in every subslot of the fourth basic slot in the four basic slot period. Further, the right grant selection control unit 603b distributes the access right to the master D in the subslots 1 to 3 of the first basic slot in the two basic slot periods.
  • the right grant selection control unit 603b selects master A and master B as the right granting master in the sub slot 0 of the first basic slot, and grants the right in the sub slot 1 of the first basic slot.
  • Master A and master D are selected as the previous master.
  • the master 100 in which the bandwidth is set is selected as the right granting master.
  • the right grant selection control unit 603b when the right grant selection control unit 603b receives a mask signal for any master 100, the right grant selection control unit 603b removes the master 100 from the access right distribution target for the remaining period of the subslot.
  • the basic slot period and the basic operation slot number are set to 0 for the sake of simplicity.
  • the reserved bandwidth setting register 621 stores 10 GB / s, 5 GB / s, 8 GB / s, and 3 GB / s as reserved bandwidths of master A, master B, master C, and master D, respectively.
  • the transfer operation subslot pattern setting register 625 stores “O”, “O”, “O”, and “O” as transfer operation subslot patterns in the subslot 0, subslot 1, subslot 2, and subslot 3 of the master A.
  • the transfer operation subslot pattern setting register 625 stores ⁇ , ⁇ , ⁇ , and ⁇ as transfer operation subslot patterns in subslot 0, subslot 1, subslot 2, and subslot 3 of the master B. .
  • the transfer operation subslot pattern setting register 625 stores x, ⁇ , ⁇ , ⁇ as transfer operation subslot patterns in subslot 0, subslot 1, subslot 2, and subslot 3 of the master C. .
  • the transfer operation subslot pattern setting register 625 stores x, o, x, o as transfer operation subslot patterns in the subslot 0, subslot 1, subslot 2, and subslot 3 of the master D. .
  • the refresh request subslot number setting register 605 stores 0 as a subslot number from which the refresh request controller 606 outputs the refresh request signal 740.
  • the right grant selection control unit 603b distributes the access right to the master A in each subslot. Further, the right grant selection control unit 603b distributes the access right to the master B in the subslot 0 and the subslot 2. Further, the right grant selection control unit 603b distributes the access right to the master C in the subslots 1 to 3. Further, the right grant selection control unit 603b distributes the access right to the master D in the subslot 1 and the subslot 3.
  • the right grant selection control unit 603b selects master A and master B as the right grant destination master in subslot 0.
  • the right grant selection control unit 603b selects master A, master C, and master D as the right grant destination master.
  • the right grant selection control unit 603b selects master A, master B, and master C as the right grant destination master.
  • the right grant selection control unit 603b selects master A, master C, and master D as the right grant destination master in the subslot 3.
  • the setting bandwidth of subslot 0 is 15 GB / s
  • the setting bandwidth of subslot 1 is 21 GB / s
  • the setting bandwidth of subslot 2 is 23 GB / s
  • the setting bandwidth of subslot 3 is 21 GB / s. Therefore, the set bandwidth of the subslot that performs refresh is smaller than the set bandwidth of the other subslots.
  • the set bandwidth in each subslot is limited by the transfer amount monitor 640a and the reserved bandwidth setting register 621. Thereby, it can restrict
  • the operation is performed so that the set bandwidth is acquired in the subslot, it is possible to guarantee a certain latency.
  • the mask signal generation unit 607 generates a mask signal for the remaining period of the subslot for the master 100 whose request transfer amount has reached the reserved transfer amount. As a result, it is possible to limit the request of the master 100 from being transferred beyond the reserved transfer amount.
  • a slot setting register 604, a basic slot cycle setting register 623, an operation basic slot number setting register 624, and a transfer operation subslot pattern setting register 625 are used to set subslots / basic slots that give access rights to a plurality of masters 100. ing. This makes it possible to program the order in which masters transfer requests and combinations of masters that simultaneously send requests, and to perform bandwidth control according to the system.
  • the refresh request controller 606, the refresh request subslot number setting register 605, and the refresh controller 402 can control the timing of issuing a refresh.
  • the sub-slot that cannot be accessed by memory by refreshing can reduce the overall required bandwidth and perform bandwidth control considering refresh.
  • a configuration can be adopted in which a plurality of reserved register groups 620a and a plurality of masters 100 are associated with each other. As a result, the same control can be performed without matching the number of reserved register groups 620a with the number of masters 100.
  • Embodiment 2 Subsequently, a modification of Embodiment 2 will be described.
  • a central bus control unit 600c is used instead of the central bus control unit 600b of the second embodiment. Since the configuration other than the central bus control unit is the same as the configuration shown in the second embodiment, the description thereof is omitted.
  • the central bus control unit 600c includes a grantable maximum number setting register 601, a right grant number control unit 602, a right grant selection control unit 603c, a slot setting register 604, and a refresh request subslot number.
  • a setting register 605, a refresh request controller 606, a mask signal generation unit 607, a reservation type register group 620b, and a transfer amount monitor 640a are provided.
  • the maximum grantable number setting register 601, the right granting number control unit 602, the slot setting register 604, the refresh request subslot number setting register 605, the refresh request controller 606, the mask signal generation unit 607, and the transfer amount monitor 640a Since it is the same as the structure shown in Embodiment 2, description is abbreviate
  • the reservation type register group 620b includes a reservation type priority level setting register 622, a basic slot period setting register 623, an operation basic slot number setting register 624, and a reserved bandwidth table setting register 626. Note that the reservation-type priority level setting register 622, the basic slot cycle setting register 623, and the operation basic slot number setting register 624 are the same as those shown in the second embodiment, and thus description thereof is omitted.
  • the relationship between the plurality of masters 100 and the reservation type register group 620b is the same as the relationship between the plurality of masters 100 and the reservation type register group 620a, and thus the description thereof is omitted.
  • the reserved bandwidth table setting register 626 stores the reserved bandwidth for each sub-slot in the basic slot for the plurality of masters 100.
  • the right grant selection control unit 603 c reads the priority levels of the plurality of masters 100 from the reservation type priority level setting register 622. Further, the right grant selection control unit 603 c reads the basic slot period for distributing the access right from the basic slot period setting register 623 for each of the plurality of masters 100. Further, the right grant selection control unit 603 c reads the basic slot number for distributing the access right from the operation basic slot number setting register 624 for each of the plurality of masters 100. Further, the right grant selection control unit 603 c reads the reserved bandwidth for each subslot in the plurality of masters 100 from the reserved bandwidth table setting register 626. Further, the right grant selection control unit 603 c receives the mask signal from the mask signal generation unit 607. Further, the right grant selection control unit 603 c receives the right grant number from the right grant number control unit 602.
  • the right grant selection control unit 603c determines the priority level of the plurality of masters 100, the basic slot period of the plurality of masters 100, the basic slot number of the plurality of masters 100, the reserved bandwidth for each sub-slot of the plurality of masters 100, the mask
  • the master to which the access right is granted is selected using the signal and the number of rights that can be granted.
  • the right grant selection control unit 603c distributes the access right grant signal 700 to the master 100 selected as the right grant destination master of the access right. Specifically, the access right grant signal 700 is output to the sub-bus control unit 200a of the selected master 100. Furthermore, the right grant selection control unit 603c outputs the priority level of the selected master 100 together with the access right grant signal 700 to the sub-bus control unit 200a of the selected master 100. The right grant selection control unit 603c selects the access right grant destination master and outputs the access right grant signal 700 every cycle. Furthermore, the right grant selection control unit 603c outputs a priority level signal 705 indicating the priority level of the master 100 to the sub-bus control unit 200a of the master 100.
  • the priority level signal 705 is output from the right grant selection control unit 603c at the timing when the priority level is stored in the reservation type priority level setting register 622.
  • the priority level stored in the reservation-type priority level setting register 622 is also reflected in the sub-bus control unit 200a.
  • the reserved bandwidth table setting register 626 stores 10 GB / s, 0 GB / s, 10 GB / s, and 10 GB / s as reserved bandwidths of the subslots 0 to 3 in the master A, respectively. Further, 13 GB / s, 10 GB / s, 5 GB / s, and 5 GB / s are stored as reserved bandwidths of the subslots 0 to 3 in the master B, respectively. Further, 8 GB / s, 8 GB / s, 8 GB / s, 8 GB / s, and 8 GB / s are stored as reserved bandwidths of the subslots 0 to 3 in the master C, respectively. Furthermore, 0 GB / s, 8 GB / s, 3 GB / s, and 3 GB / s are stored as reserved bandwidths of the subslots 0 to 3 in the master D, respectively.
  • the right grant selection control unit 603c sets different reserved bandwidths for each of the subslots that distribute access rights to the master B and the master D.
  • the basic slot period setting register 623 stores 1, 1, 4, and 2 as the basic slot periods of master A, master B, master C, and master D, respectively.
  • the operation basic slot number setting register 624 stores 1, 1, 4, 1 as the operation basic slot numbers of master A, master B, master C, and master D, respectively.
  • the selection of a right grant destination master in the setting of FIG. 13 will be described.
  • the description will be made on the assumption that the number of rights that can be granted is sufficient.
  • the master of the rights grant destination is selected using the table in FIG. 14 and the priority levels of the plurality of masters 100.
  • the right grant selection control unit 603c distributes the access right to the master A in subslot 0, subslot 2, and subslot 3 of each basic slot. Further, the right grant selection control unit 603c distributes the access right to the master B in each sub slot of each basic slot. Further, the right grant selection control unit 603c distributes the access right to the master C in every subslot of the fourth basic slot in the four basic slot period. Further, the right grant selection control unit 603c distributes the access right to the master D in the subslots 1 to 3 of the first basic slot in the two basic slot periods.
  • the right grant selection control unit 603c selects master A and master B as the right granting masters in subslot 0 of the first basic slot, and grants rights in subslot 1 of the first basic slot. Master B and master D are selected as the previous master. Similarly, for the remaining slots, the master 100 in which the bandwidth is set is selected as the right granting master.
  • the right grant selection control unit 603c when the right grant selection control unit 603c receives a mask signal for any master 100, the right grant selection control unit 603c removes the master 100 from the access right distribution target for the remaining period of the subslot.
  • the reserved bandwidth table setting register 626 stores the reserved bandwidth for each subslot for the plurality of masters 100. This makes it possible to set the bandwidth according to the system more flexibly than in the second embodiment.
  • Embodiment 3 Subsequently, Embodiment 3 will be described.
  • a central bus control unit 600d is used instead of the central bus control unit 600b of the second embodiment. Since the configuration other than the central bus control unit is the same as the configuration shown in the second embodiment, the description thereof is omitted.
  • the central bus control unit 600d includes a maximum grantable number setting register 601, a right grant number control unit 602, a right grant selection control unit 603d, a slot setting register 604, and a refresh request subslot number.
  • a setting register 605, a refresh request controller 606, a distribution priority calculation circuit 608, a best effort (BE) type register group 630, and a transfer amount monitor 640a are provided.
  • the maximum grantable number setting register 601, the right grant number control unit 602, the slot setting register 604, the refresh request subslot number setting register 605, and the refresh request controller 606 are the same as those shown in the second embodiment. Therefore, the description is omitted.
  • the best effort type register group may be referred to as a second setting register group.
  • the transfer amount monitor 640a of the third embodiment Since the basic function of the transfer amount monitor 640a of the third embodiment is the same as that of the transfer amount monitor 640a of the second embodiment, the description thereof is omitted. However, the transfer amount monitor 640a of the third embodiment outputs the measured transfer amounts of requests from the plurality of masters 100 to the distribution priority calculation circuit 608.
  • the best effort type register group 630 includes a target transfer amount setting register 631, an update transfer amount register 632, a distribution priority correction period setting register 633, a best effort priority level setting register 634, a distribution priority initialization interval setting register 635, a basic A slot cycle setting register 623, an operation basic slot number setting register 624, and a transfer operation subslot pattern setting register 625 are provided.
  • the basic slot cycle setting register 623, the operation basic slot number setting register 624, and the transfer operation subslot pattern setting register 625 are the same as those shown in the second embodiment, and thus description thereof is omitted.
  • the relationship between the plurality of masters 100 and the best effort type register group 630 is the same as the relationship between the plurality of masters 100 and the reservation type register group 620a, and thus the description thereof is omitted.
  • the target transfer amount setting register 631 stores a target transfer amount per sub-slot for a plurality of masters 100.
  • the update transfer amount register 632 stores the accumulated transfer amount indicating the accumulated value of the transfer amount for the plurality of masters 100.
  • the distribution priority correction period setting register 633 stores a distribution priority correction period.
  • the distribution priority indicates a priority related to distribution of access rights.
  • the distribution priority correction period is a period for correcting the target transfer amount of the plurality of masters 100. Specifically, the target transfer amount after the period indicated by the distribution priority correction period from the present time is set as the target transfer amount for calculating the distribution priority. Note that the value of the distribution priority correction period stored in the distribution priority correction period setting register 633 can be changed. Also, the distribution priority correction period may be in sub-slot units or not in sub-slot units.
  • the distribution priority correction period may be a common period for a plurality of masters, or may be a separate period for a plurality of masters.
  • the best effort type priority level setting register 634 stores priority levels for a plurality of masters 100.
  • the priority level stored in the best effort type priority level setting register 634 is added to the request by the request issuance control unit 201a.
  • the distribution priority initialization interval setting register 635 stores the number of subslots indicating an interval for initializing distribution priorities.
  • the initialization of the distribution priority is to initialize the cumulative transfer amount stored in the update transfer amount register 632.
  • the value of the interval for initializing the distribution priority stored in the distribution priority initialization interval setting register 635 can be changed.
  • the distribution priority initialization interval may be a common initialization interval for a plurality of masters, or may be a separate initialization interval for a plurality of masters.
  • the distribution priority calculation circuit 608 is a circuit that calculates a distribution priority indicating a priority related to access right distribution. For example, the distribution priority calculation circuit 608 calculates the distribution priority based on the target transfer amounts of a plurality of masters.
  • the distribution priority calculation circuit 608 will be specifically described.
  • the distribution priority calculation circuit 608 receives transfer amounts of requests from the plurality of masters 100 from the transfer amount monitor 640a. Also, the distribution priority calculation circuit 608 reads the target transfer amount per subslot for the plurality of masters 100 from the target transfer amount setting register 631. Further, the distribution priority calculation circuit 608 reads the accumulated transfer amount for the plurality of masters 100 from the update transfer amount register 632. Also, the distribution priority calculation circuit 608 reads the distribution priority correction period from the distribution priority correction period setting register 633. Further, the distribution priority calculation circuit 608 reads the distribution priority initialization interval from the distribution priority initialization interval setting register 635.
  • the distribution priority calculation circuit 608 then transfers the request transfer amount from the plurality of masters 100, the target transfer amount per sub-slot for the plurality of masters 100, the cumulative transfer amount for the plurality of masters 100, and distribution priority correction.
  • the distribution priority is calculated using the period and the distribution priority initialization interval. The distribution priority calculation method will be described in detail later with reference to FIGS. 16A and 16B.
  • the distribution priority calculation circuit 608 outputs the calculated distribution priority to the right grant selection control unit 603d.
  • the distribution priority calculation circuit 608 updates the accumulated transfer amount stored in the update transfer amount register 632 every time a subslot elapses. Specifically, the cumulative transfer amount up to the current subslot is calculated using the cumulative transfer amount up to the previous subslot read from the update transfer amount register 632 and the transfer amount of the current subslot received from the transfer amount monitor 640a. To do. Then, the distribution priority calculation circuit 608 stores the calculated cumulative transfer amount up to the current subslot in the update transfer amount register 632.
  • the right grant selection control unit 603d reads the number of subslots present in one basic slot and the period of one subslot from the slot setting register 604. Further, the right grant selection control unit 603d receives the distribution priority from the distribution priority calculation circuit 608. Further, the right grant selection control unit 603 d reads the basic slot period for distributing the access right from the basic slot period setting register 623 for each of the plurality of masters 100. Further, the right grant selection control unit 603 d reads the basic slot number for distributing the access right from the operation basic slot number setting register 624 for each of the plurality of masters 100.
  • the right grant selection control unit 603d reads, from each of the plurality of masters 100, the sub slot pattern for distributing the access right from the transfer operation sub slot pattern setting register 625. Further, the right grant selection control unit 603d receives the right grantable number from the right grant number control unit 602. Furthermore, the right grant selection control unit 603 d reads the priority levels of the plurality of masters 100 from the best effort type priority level setting register 634.
  • the right grant selection control unit 603d includes the number of subslots present in one basic slot, the period of one subslot, the distribution priority, the basic slot period of the plurality of masters 100, the basic slot number of the plurality of masters 100, Using the subslot patterns of the plurality of masters 100 and the number of grantable rights, a master to which a right of access right is granted is selected.
  • the right grant selection control unit 603d distributes the access right grant signal 700 to the master 100 selected as the right grant destination master of the access right. Specifically, the access right grant signal 700 is output to the sub-bus control unit 200a of the selected master 100. Further, the right grant selection control unit 603d outputs the priority level of the selected master 100 together with the access right grant signal 700 to the sub-bus control unit 200a of the selected master 100. The right grant selection control unit 603d selects the access right grant destination master and outputs the access right grant signal 700 every cycle. Furthermore, the right grant selection control unit 603d outputs a priority level signal 705 indicating the priority level of the master 100 to the sub-bus control unit 200a of the master 100.
  • the priority level signal 705 is output by the right grant selection control unit 603d at the timing when the priority level is stored in the best effort type priority level setting register 634.
  • the priority level stored in the best effort type priority level setting register 634 is also reflected in the sub-bus control unit 200a.
  • the distribution priority correction period in FIG. 16A is one subslot.
  • the dotted line shown in FIG. 16A is a line drawn based on the target transfer amount per sub-slot of the master A.
  • the length of the dotted line in the vertical axis direction indicates the target transfer amount for the execution time.
  • the slope of the arrows (1) to (4) shown in FIG. 16A is the distribution priority, and the distribution priority is higher as the slope is larger.
  • the slopes of the straight lines (5) to (8) shown in FIG. 16A indicate the acquired bandwidth of the master A.
  • the distribution priority calculation circuit 608 adds the transfer amount of the current subslot of the master A received from the transfer amount monitor 640a to the cumulative transfer amount up to the previous subslot of the master A read from the update transfer amount register 632. Now, calculate the cumulative transfer amount up to the subslot.
  • the distribution priority calculation circuit 608 uses the target transfer amount per sub-slot of the master A read from the target transfer amount setting register 631 and the distribution priority correction period read from the distribution priority correction period setting register 633. The target transfer amount after the distribution priority correction period is calculated. That is, the target transfer amount after one subslot, which is the distribution priority correction period, is obtained.
  • the distribution priority calculation circuit 608 calculates the distribution priority using the cumulative transfer amount up to the current subslot and the target transfer amount after one subslot.
  • the slope of the arrow is calculated when the execution time is 0.
  • the time point when the execution time is 0 is the start timing of the subslot immediately after the accumulated transfer amount of the master A stored in the update transfer amount register 632 is initialized.
  • the cumulative transfer amount of master A stored in the update transfer amount register 632 is initialized using the distribution priority initialization interval read from the distribution priority initialization interval setting register 635 by the distribution priority calculation circuit 608. Do it. That is, the cumulative transfer amount of the master A is initialized for each number of subslots indicated by the distribution priority initialization interval.
  • the slope of the arrow is calculated when the execution time is 1 subslot.
  • the slope of the straight line in (5) indicates the acquired bandwidth of master A in the execution time 0 to 1 subslot.
  • the cumulative transfer amount up to the previous subslot of Master A is 0.
  • the transfer amount of the current subslot of master A received from the transfer amount monitor 640a is the length in the vertical axis direction at the time of one subslot of the straight line of (5). Therefore, the length in the vertical axis direction when the execution time of the straight line in (5) is one subslot indicates the cumulative transfer amount of master A up to the current subslot.
  • the straight line connecting the point indicating the accumulated transfer amount up to the current sub-slot of the master A and the point indicated by the target transfer amount after one sub-slot (when the execution time is two sub-slots) is an arrow in (2). It becomes.
  • the cumulative transfer amount up to the current subslot of the master A when the execution time is 2 subslots is the length in the vertical axis direction when the execution time of the straight line in (6) is 2 subslots.
  • the straight line connecting the point indicating the cumulative transfer amount up to the current subslot of the master A and the point indicated by the target transfer amount after one subslot (when the execution time is three subslots) is the arrow in (3). It becomes.
  • FIG. 16B a distribution priority calculation method for a master that issues a request only in the second half without issuing a request in the first half according to the third embodiment will be described with reference to FIG. 16B.
  • the master in FIG. also, the distribution priority correction period of FIG. 16B is 1.7 subslots.
  • a dotted line shown in FIG. 16B is a line drawn based on the target transfer amount per sub-slot of the master B. The length of the dotted line in the vertical axis direction indicates the target transfer amount for the execution time.
  • the slope of the arrows (9) to (12) shown in FIG. 16B is the distribution priority.
  • the slope of the straight line (13) shown in FIG. 16B indicates the acquired bandwidth of the master B.
  • the slope of the arrow is calculated when the execution time is 1 subslot. Since master B has not issued a request, the bandwidth has not been acquired when the execution time is one subslot. Therefore, when the execution time is 1 subslot, the cumulative transfer amount of master B up to the current subslot is 0. Therefore, the point that the execution time is 0 and the transfer amount is 0, and the point indicated by the target transfer amount after 1.7 subslots (when the execution time is 2.7 subslots) that is the distribution priority correction period.
  • the connected straight line becomes the arrow (10). Note that the distribution priority calculation method indicated by the slopes of the arrows (11) and (12) shown in FIG.
  • the acquisition bandwidth of master B indicated by the slope of the straight line in (13) will be described.
  • the distribution priority indicated by the slope of the arrow in (12) is calculated as the distribution priority of master B. Further, it is assumed that the master B is selected as a master to which an access right is granted using the distribution priority of the master B. Then, after the master B issues a request, the master B acquires the bandwidth indicated by the slope of the straight line (13).
  • the distribution priority calculation circuit 608 calculates the distribution priority based on the target transfer amount of the master. This makes it possible to correct the acquired transfer amount over a long period of time.
  • the distribution priority correction period is stored by the distribution priority correction period setting register 633. Further, the value of the distribution priority correction period stored in the distribution priority correction period setting register 633 can be changed. This makes it possible to calculate the optimal distribution priority according to the system.
  • the distribution priority initialization interval setting register 635 stores the number of subslots indicating the interval for initializing the distribution priority. Further, the cumulative transfer amount stored in the update transfer amount register 632 is initialized by initializing the distribution priority. Thereby, accumulation of errors over a long period can be reduced. In addition, a reset interval can be set in accordance with the operation of the master.
  • a configuration in which a plurality of best effort type register groups 630 and a plurality of masters 100 are associated with each other may be employed.
  • the same control can be performed without matching the number of best effort type register groups 630 to the number of masters 100.
  • the semiconductor device includes a sub-bus control unit 200b and a central bus control unit 600e. Since the configuration other than the sub-bus control unit 200b and the central bus control unit 600e is the same as the configuration of the second and third embodiments, the description thereof is omitted.
  • the central bus control unit 600e includes a maximum grantable number setting register 601, a right grant number control unit 602, a right grant selection control unit 603e, a slot setting register 604, a refresh request subslot number setting register 605, and a refresh request.
  • a controller 606, a mask signal generation unit 607, a distribution priority calculation circuit 608, a reservation type register group 620a, a best effort type register group 630, and a transfer amount monitor 640b are provided. Since the configuration other than the right grant selection control unit 603e and the transfer amount monitor 640b is the same as the configuration of the second or third embodiment, the description thereof is omitted.
  • the right grant selection control unit 603e is configured to select the access right right granting master in the right grant selection control unit 603b according to the second embodiment and the right grant of access right in the right grant selection control unit 603d according to the third embodiment. This is a functional unit having both of the previous master selection functions. Note that the right grant selection control unit 603b selects the access right right grantee master as a selection process using the reservation type register group 620a. The right grant selection master selection process in the right grant selection control unit 603d is referred to as a selection process using the best effort register group 630. The right grant selection control unit 603e independently performs a selection process using the reservation type register group 620a and a selection process using the best effort type register group 630.
  • both selection processes are shared
  • the priority is set to either one.
  • both selection processes it means that one master is selected as a right granting master by both selection processes.
  • the selection process using the best effort type register group 630 is prioritized so that both of the selection processes are shared, the master unit is granted the right by the selection process using the best effort type register group 630. Select as the previous master.
  • the right grant selection control unit 603e distributes the access right grant signal 700 to the selected master 100. Specifically, the access right grant signal 700 is output to the sub-bus control unit 200b of the selected master 100. Further, the right grant selection control unit 603e outputs the priority level of the selected master 100 and the access right attribute signal 750 together with the access right grant signal 700 to the sub-bus control unit 200b of the master 100.
  • the access right attribute signal 750 is an access right granted by a selection process using the reservation type register group 620a or an access right given by a selection process using the best effort type register group 630. It is the identification information which shows.
  • the access right granted by the selection process using the reservation type register group 620a is referred to as the access right given using the reservation type register group 620a.
  • the access right granted by the selection process using the best effort type register group 630 is referred to as an access right given using the best effort type register group 630.
  • the sub-bus control unit 200b includes a request issuance control unit 201b. Since the control in the request issuance control unit 201b is the same as that in the request issuance control unit 201a except for the control related to the access right attribute signal 750, the description of the same parts is omitted.
  • the request issuance control unit 201b receives the access right attribute signal 750 from the right grant selection control unit 603e. Further, when outputting the request received from the bus 10 to the bus 20, the request issuance control unit 201b adds an access right attribute signal 750 to the request and outputs the request.
  • the transfer amount monitor 640b includes a reservation type transfer amount monitor 641 and a best effort transfer amount monitor 642.
  • the reservation-type transfer amount monitor 641 is a functional unit that measures the transfer amount of reservation-type requests transferred from the plurality of masters 100 to the bus arbiter 300 via the corresponding sub-bus control units 200b.
  • the reservation-type request indicates a request that has passed through the request issuance control unit 201b with the access right granted using the reservation-type register group 620a.
  • Reservation type transfer amount monitor 641 measures the transfer amount of reservation type requests from a plurality of masters 100 based on monitor signals 730 from a plurality of buses 20. Whether the request is a reservation type request is identified by the access right attribute signal 750 added to the monitor signal 730. Then, the reservation type transfer amount monitor 641 outputs the measured transfer amount of reservation type requests from the plurality of masters 100 to the mask signal generation unit 607.
  • the best-effort transfer amount monitor 642 is a functional unit that measures the transfer amount of the best-effort request transferred from the plurality of masters 100 to the bus arbiter 300 via the corresponding sub-bus control unit 200b.
  • the best effort type request indicates a request that has passed through the request issuance control unit 201b with the access right granted by using the best effort type register group 630.
  • the best-effort transfer amount monitor 642 measures the transfer amount of the best-effort request from the plurality of masters 100 based on the monitor signals 730 from the plurality of buses 20. Whether or not the request is a best effort type request is identified by the access right attribute signal 750 added to the monitor signal 730. Then, the best effort transfer amount monitor 642 outputs the measured transfer amount of the best effort request from the plurality of masters 100 to the distribution priority calculation circuit 608.
  • the right grant selection control unit 603e grants the access right granted using the reserved register group 620a and the best effort register group 630. Two types of access rights are distributed. This makes it possible to efficiently control a master that needs to acquire a certain bandwidth in a short period of time and a master that needs to acquire a certain bandwidth in a long period of time.
  • the access right using the reserved register group 620a of the second embodiment and the access right using the best effort register group 630 of the third embodiment are described.
  • the present invention is not limited to this.
  • the control for the access right using the reservation type register group 620b of the modification of the second embodiment and the control for the access right using the best effort type register group 630 of the third embodiment are combined. Also good.

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)
  • Microelectronics & Electronic Packaging (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

本発明に係る半導体装置は、複数のマスタ(100)と、メモリコントローラ(400a)と、複数のマスタ(100)とメモリコントローラ(400a)とを接続するバスと、複数のマスタ(100)のQoS情報を格納するQoS情報レジスタ(610)と、メモリコントローラ(400a)のバッファ(401)の空き情報に基づいて、アクセス権の権利付与可能数を計算する権利付与数制御部(602)と、QoS情報レジスタ(610)のQoS情報、及び権利付与数制御部(602)からの権利付与可能数に基づいて、アクセス権の権利付与先のマスタ(100)を選択する権利付与選択制御部(603a)と、権利付与選択制御部(603a)からのアクセス権が未付与であるマスタ(100)のリクエストを通さないリクエスト発行制御部(201a)と、を備える。

Description

半導体装置
 本発明は半導体装置に関し、特にバスを介して複数の回路ブロックが接続される半導体装置に関する。
 半導体装置では、複数のバスマスタが共通バスに接続するバスシステムが多く提案されている。このようなバスシステムでは、複数のバスマスタからの共通バスへのリクエストに対して調停を行うことが必要である。調停に関する技術の例が特許文献1及び2に開示されている。
 特許文献1には、優先マスタに指定されているマスタからのリクエストがある場合、優先マスタが最優先順位を有するスロットが現在のスロット以降にあると、優先マスタのレイテンシーを低減させるようにスロットの入れ替えを行う技術が開示されている。
 また、特許文献2には、インタコネクトを経由して接続されるマルチマスタ・マルチスレーブで構成される回路において、物理ネットワークでリクエストを発行する前に、仮想ネットワーク上でノード間のトークンのやり取りを行うことによってバス調停を行う技術が開示されている。
特開2005-258867号公報 国際公開第2012/049485号
 特許文献1の技術では、メモリコントローラのバッファの空き状況を見ずに、マスタからのリクエストをスロット毎に設定された優先マスタ情報に従って調停しているため、バス上でのリクエストが滞留する。このため、後続の優先度の高いリクエストが先行の優先度の低いリクエストによって流れなくなり、優先度の高いリクエストのレイテンシーが悪化するという問題があった。また、これを回避するためには、後続のリクエストが先行のリクエストを追い越せるように中間バッファを設ける必要があり、回路規模が増大してしまう。
 また、特許文献2の技術では、リクエストをトリガにしたトークンを用いて調停を行った後に物理ネットワークでリクエストを発行するため、回路のレイテンシーが増大するという問題があった。また、多階層のインタコネクトでは、階層毎に調停を行うため、リクエストを溜め込むバッファが各階層に大量に必要であった。
 その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
 一実施の形態によれば、半導体装置は、メモリコントローラのバッファの空き情報に基づいて、アクセス権の権利付与可能数を計算し、複数のマスタのQoS(Quality of Service)情報、及び権利付与可能数に基づいて、アクセス権の権利付与先のマスタを選択し、アクセス権が未付与であるマスタのリクエストを通さないものである。
 前記一実施の形態によれば、バス上でのリクエストの滞留をなくし、レイテンシーの改善及び回路規模の削減を実現することができる半導体装置を提供することができる。
実施の形態1にかかる半導体装置の構成図である。 実施の形態1にかかるアクセス権に関するメモリコントローラの処理の一例を示すフローチャートである。 実施の形態1にかかるアクセス権に関する中央バス制御部の処理の一例を示すフローチャートである。 実施の形態1にかかるアクセス権に関するサブバス制御部の処理の一例を示すフローチャートである。 実施の形態2にかかる半導体装置の構成図である。 実施の形態2にかかる中央バス制御部の構成図である。 実施の形態2にかかるメモリコントローラの構成図である。 実施の形態2にかかる予約型レジスタ群の設定情報例を示す図である。 実施の形態2にかかる図8の設定におけるバンド幅の設定例を示す図である。 実施の形態2にかかる予約型レジスタ群及びリフレッシュ要求サブスロット番号設定レジスタの設定情報例を示す図である。 実施の形態2にかかる図10の設定におけるバンド幅の設定例を示す図である。 実施の形態2の変形例にかかる中央バス制御部の構成図である。 実施の形態2の変形例にかかる予約型レジスタ群の設定情報例を示す図である。 実施の形態2の変形例にかかる図13の設定におけるバンド幅の設定例を示す図である。 実施の形態3にかかる中央バス制御部の構成図である。 実施の形態3にかかる一定間隔でリクエストを発行するマスタについての配布優先度の例を示す図である。 実施の形態3にかかる前半はリクエストを出さず後半にのみリクエストを出すマスタについての配布優先度の例を示す図である。 実施の形態4にかかる半導体装置の構成図である。
 以下、図面を参照しながら、実施の形態について説明する。以下の実施の形態に示す具体的な数値などは、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、それに限定されるものではない。また、以下の記載及び図面では、説明の明確化のため、当業者にとって自明な事項などについては、適宜、省略及び簡略化がなされている。
 また、以下の実施の形態には、様々な設定レジスタが存在するが、それぞれの設定レジスタが格納する値又は情報は、変更することが可能である。
 実施の形態1
 図1は、実施の形態1にかかる半導体装置の構成を示す図である。図1に示すように、実施の形態1にかかる半導体装置は、複数個のマスタ100と、複数個のサブバス制御部200aと、バスアービタ(Bus Arbiter)300と、メモリコントローラ400aと、メモリ500と、中央バス制御部600aと、バス10、バス20、バス30とを有する。なお、図1の例では、マスタ100の数を3つとしているが、マスタ100の数は、2つ以上であればいくつでもよい。以下、図1の3つのマスタ100を、それぞれマスタA、マスタB、マスタCとも呼ぶ。また、マスタ100の数とサブバス制御部200aの数は同数とする。
 複数のマスタ100は、それぞれバス10を介して対応するサブバス制御部200aに接続されている。複数のマスタ100は、メモリ500に対するリクエストを、バス10を介してサブバス制御部200aへ出力する。
 サブバス制御部200aは、リクエスト発行制御部201aを有する。リクエスト発行制御部201aは、バス10からリクエストを受け取る。また、リクエスト発行制御部201aは、中央バス制御部600aから優先レベル信号705を受け取る。ここで、優先レベル信号705とは、マスタ100のQoS情報に基づく優先レベルを示す信号である。
 また、リクエスト発行制御部201aは、受け取ったリクエストについて、バス20へ出力するか否かを判定する。当該判定は、中央バス制御部600aからアクセス権の付与を示すアクセス権付与信号700が配布されたか否かにより行う。リクエスト発行制御部201aは、アクセス権付与信号700が配布された場合、受け取ったリクエストをバス20へ出力する。また、リクエスト発行制御部201aは、アクセス権付与信号700が配布されていない場合、すなわちアクセス権が未付与である場合、受け取ったリクエストをバス20へ出力しない。すなわち、リクエスト発行制御部201aは、アクセス権を獲得するまでマスタ100のリクエストを通すことができない。
 そして、リクエスト発行制御部201aは、受け取ったリクエストをバス20へ出力する際には、対応するマスタ100の優先レベルを当該リクエストに付加して出力する。なお、当該優先レベルは、優先レベル信号705が示す優先レベルである。また、リクエスト発行制御部201aは、アクセス権を獲得したときに、バス10からリクエストを受け取っていないならば、アクセス権返却信号710により中央バス制御部600aへアクセス権を返却する。
 バスアービタ300は、バス20からリクエストを受け取る。また、バスアービタ300は、受け取ったリクエストに付加されている優先レベルを用いてリクエストの調停を行う。なお、バスアービタ300が行う優先レベルを用いたリクエストの調停手法は、一般に知られた手法であり説明は省略する。そして、バスアービタ300は、調停の結果、複数のマスタ100からのリクエストのうち、優先レベルが最も高いリクエストをバス30へ出力する。なお、バスアービタ300が行う調停は、ラウンドロビン方式や固定優先方式であってもよい。
 メモリコントローラ400aは、バッファ(Buffer)401を備えている。メモリコントローラ400aは、バス30からリクエストを受け取る。また、メモリコントローラ400aは、受け取ったリクエストをバッファ401に格納する。そして、メモリコントローラ400aは、バッファ401に格納されたリクエストに付加されている優先レベルを用いて、リクエストのスケジューリングを行い、メモリ500へのアクセスを制御する。また、メモリコントローラ400aは、バッファ401の使用状況を常に監視する。そして、レスポンス処理が終了したことにより、バッファ401が解放された場合、バッファ401の解放情報をバッファ解放通知信号720として中央バス制御部600aへ出力する。
 メモリ500は、例えば、DDR SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)、SRAM(Static Random Access Memory)等である。なお、メモリ500は、DDR SDRAM、SRAMに限らず他のメモリであってもよい。
 中央バス制御部600aは、アクセス権についての制御を行うための機能部である。中央バス制御部600aは、付与可能最大数設定レジスタ601と、権利付与数制御部602と、権利付与選択制御部603aと、QoS情報レジスタ610とを備えている。
 付与可能最大数設定レジスタ601は、アクセス権の権利付与可能数の最大数を格納する。ここで、アクセス権の権利付与可能数の最大数とは、付与することが可能なアクセス権の最大数を示す。なお、付与可能最大数設定レジスタ601が格納する権利付与可能数の最大数の値は、変更することができる。
 権利付与数制御部602は、バッファ401が解放された場合、バッファ解放通知信号720をメモリコントローラ400aから受け取る。そして、権利付与数制御部602は、バッファ401の空き情報に基づいて、アクセス権の権利付与可能数を計算する。また、権利付与数制御部602は、計算した権利付与可能数を権利付与選択制御部603aへ出力する。
 ここで、アクセス権の権利付与可能数の計算の具体例について説明する。権利付与数制御部602は、バッファ解放通知信号720の他に、権利付与可能数の最大数を付与可能最大数設定レジスタ601から読み出す。そして、権利付与数制御部602は、バッファ401の空き情報に基づいて、権利付与可能数の最大数を上限としてアクセス権の権利付与可能数を計算する。
 また、権利付与数制御部602は、バッファ解放通知信号720の他に、アクセス権返却信号710をリクエスト発行制御部201aから受け取る。そして、権利付与数制御部602は、バッファ401の空き情報及びアクセス権の返却数に基づいて、アクセス権の権利付与可能数を計算する。
 さらに、権利付与数制御部602は、バッファ解放通知信号720の他に、権利付与可能数の最大数、アクセス権返却信号710、及びアクセス権を配布した数を用いてアクセス権の権利付与可能数を計算することもできる。具体的には、権利付与可能数の最大数を起点として、アクセス権付与信号700を配布すると、配布した数だけ権利付与可能数を減らす。また、権利付与数制御部602は、メモリコントローラ400aからバッファ解放通知信号720を受け取る、又はリクエスト発行制御部201aからアクセス権返却信号710を受け取ることによって権利付与可能数を増やす。なお、権利付与数制御部602は、アクセス権を配布した数について、権利付与選択制御部603aから受け取ることにより認識してもよい。また、権利付与数制御部602は、権利付与選択制御部603aへ出力した権利付与可能数を、アクセス権を配布した数として認識するようにしてもよい。これは、権利付与選択制御部603aが、権利付与可能数分のすべてのアクセス権を必ず配布する場合に有効である。
 QoS情報レジスタ610は、複数のマスタ100のQoS情報を格納する。
 権利付与選択制御部603aは、複数のマスタ100のQoS情報をQoS情報レジスタ610から読み出す。また、権利付与選択制御部603aは、権利付与可能数を権利付与数制御部602から受け取る。そして、権利付与選択制御部603aは、複数のマスタ100のQoS情報、及び権利付与可能数に基づいて、アクセス権の権利付与先のマスタを選択する。具体的には、権利付与選択制御部603aは、権利付与可能数の範囲内で、QoS情報に基づく優先レベルが高いマスタ100に優先的にアクセス権を配布するように、アクセス権の権利付与先のマスタを選択する。
 また、権利付与選択制御部603aは、アクセス権の権利付与先のマスタとして選択したマスタ100に対してアクセス権付与信号700を配布する。具体的には、選択したマスタ100のサブバス制御部200aに対してアクセス権付与信号700を出力する。なお、権利付与選択制御部603aにおけるアクセス権の権利付与先のマスタ選択及びアクセス権付与信号700の出力は、毎サイクル行われる。さらに、権利付与選択制御部603aは、マスタ100のQoS情報に基づく優先レベルを示す優先レベル信号705を、当該マスタ100のサブバス制御部200aに対して出力する。なお、権利付与選択制御部603aにおける優先レベル信号705の出力は、QoS情報レジスタ610にQoS情報が格納されたタイミングで行われる。これにより、QoS情報レジスタ610に格納されたQoS情報に基づく優先レベルが、サブバス制御部200aにも反映される。
 続いて、実施の形態1にかかる半導体装置におけるアクセス権に関するメモリコントローラ400a、中央バス制御部600a、及びサブバス制御部200aのそれぞれの処理フローの例を、図2、図3、及び図4を用いて説明する。
 最初に、図2に示すフローチャートを用いてアクセス権に関するメモリコントローラ400aの処理フローについて説明する。
 まず、メモリコントローラ400aは、バッファ401が解放されたか否かを監視する(S101)。S101にて、バッファ401が解放されていないと判定された場合、S101の監視を続ける。
 S101にて、バッファ401が解放されたと判定された場合、メモリコントローラ400aは、バッファ401の解放情報をバッファ解放通知信号720として中央バス制御部600aへ出力し(S102)、S101に戻る。
 次に、図3に示すフローチャートを用いてアクセス権に関する中央バス制御部600aの処理フローについて説明する。
 まず、権利付与数制御部602は、バッファ解放通知信号720を受け取ったか否かを判定する(S201)。S201にて、バッファ解放通知信号720を受け取ったと判定された場合、権利付与数制御部602は、権利付与可能数を増やす(S202)。
 S202の後、権利付与数制御部602は、アクセス権返却信号710を受け取ったか否かを判定する(S203)。また、S201にて、バッファ解放通知信号720を受け取っていないと判定された場合もS203へ進む。S203にて、アクセス権返却信号710を受け取ったと判定された場合、権利付与数制御部602は、権利付与可能数を増やす(S204)。
 S204の後、権利付与選択制御部603aは、権利付与可能か否かを判定する(S205)。また、S203にて、アクセス権返却信号710を受け取っていないと判定された場合もS205へ進む。S205の判定は、権利付与数制御部602から権利付与可能数を受け取ることにより行う。なお、S205の判定は、毎サイクル行われる。
 S205にて、権利付与可能でないと判定された場合、S201に戻る。他方、S205にて、権利付与可能と判定された場合、権利付与選択制御部603aは、権利付与先のマスタを選択する(S206)。S206の後、権利付与選択制御部603aは、権利付与先のマスタに対してアクセス権付与信号700を配布する(S207)。
 S207の後、権利付与数制御部602は、権利付与可能数を減らし(S208)、S201に戻る。
 なお、図3では、S201をS203より前に行っているが、S201とS203は、どちらを先に行ってもよい。また、図3では、S208をS207の後に行っているが、S208は、S207より前に行ってもよい。例えば、権利付与数制御部602は、権利付与可能数を権利付与選択制御部603aへ出力するタイミングで、権利付与可能数を減らしてもよい。
 次に、図4に示すフローチャートを用いてアクセス権に関するサブバス制御部200aの処理フローについて説明する。
 まず、リクエスト発行制御部201aは、アクセス権を獲得したか否かを判定する(S301)。S301にて、アクセス権を獲得していないと判定された場合、マスタ100のリクエストを通さず(S302)、S301に戻る。
 他方、S301にて、アクセス権を獲得したと判定された場合、リクエスト発行制御部201aは、マスタ100から受け取ったリクエストを保持しているか否かを判定する(S303)。S303にて、リクエストを保持していないと判定された場合、アクセス権を権利付与数制御部602へ返却する(S304)。他方、S303にて、リクエストを保持していると判定された場合、リクエストを通す(S305)。すなわち、バス20へリクエストを出力する。その後、S301に戻る。
 以上、説明したように、実施の形態1にかかる半導体装置では、メモリコントローラ400aのバッファ401の空き状況を監視し、中央バス制御部600aによりアクセス権を使ってすべてのマスタ100のリクエスト制御を行う。これによって、全体最適な制御を実現することができる。
 また、権利付与数制御部602により配布するアクセス権の数を制御する。これによって、バスシステム全体で滞留するリクエストの数を制御することができる。
 また、付与可能最大数設定レジスタ601によりアクセス権の権利付与可能数の最大数を設定可能な構成としている。これによって、当該最大数をメモリコントローラ400aのバッファ401と同じ数に設定すれば必ずバスが詰まらないように制御することができる。また、当該最大数をメモリコントローラ400aのバッファ401より大きい数に設定することによって、途中経路のバスに存在できるリクエストを考慮して制御することができる。
 さらに、リクエスト発行制御部201aにより、アクセス権が付与されたマスタ100からのリクエストを保持していない場合、アクセス権を返却する構成としている。これによって、権利付与可能数を返却された数だけ増やすことができる。
 実施の形態2
 次に、実施の形態2にかかる半導体装置について説明する。図5に示すように、実施の形態2にかかる半導体装置は、複数個のマスタ100と、複数個のサブバス制御部200aと、バスアービタ300と、メモリコントローラ400bと、メモリ500と、中央バス制御部600bと、バス10、バス20、バス30とを有する。なお、複数個のマスタ100、複数個のサブバス制御部200a、バスアービタ300、メモリ500、バス10、バス20、バス30については、実施の形態1に示す構成と同じであるため、説明を省略する。
 次に、中央バス制御部600bについて図6を用いて説明する。図6に示すように、中央バス制御部600bは、付与可能最大数設定レジスタ601と、権利付与数制御部602と、権利付与選択制御部603bと、スロット設定レジスタ604と、リフレッシュ要求サブスロット番号設定レジスタ605と、リフレッシュ要求コントローラ606と、マスク信号生成部607と、予約型レジスタ群620aと、転送量モニタ640aとを備えている。なお、付与可能最大数設定レジスタ601と、権利付与数制御部602については、実施の形態1に示す構成と同じであるため、説明を省略する。なお、予約型レジスタ群は、第1の設定レジスタ群と呼んでもよい。
 スロット設定レジスタ604は、1基本スロット内に存在するサブスロットの数と1サブスロットの期間を格納する。ここで、基本スロットとは、メモリ500のリフレッシュ期間を示す。スロット設定レジスタ604が格納する1基本スロット内に存在するサブスロットの数、及び1サブスロットの期間は、変更することができる。
 リフレッシュ要求サブスロット番号設定レジスタ605は、リフレッシュ要求コントローラ606がリフレッシュ要求信号740を出力するサブスロット番号を格納する。なお、リフレッシュ要求サブスロット番号設定レジスタ605が格納するサブスロット番号は、変更することができる。
 リフレッシュ要求コントローラ606は、リフレッシュ要求サブスロット番号設定レジスタ605に格納されているサブスロット番号を読み出す。また、リフレッシュ要求コントローラ606は、読み出したサブスロット番号が示すサブスロットにてリフレッシュ要求信号740をメモリコントローラ400bへ出力する。
 転送量モニタ640aは、複数のマスタ100からそれぞれ対応するサブバス制御部200aを介してバスアービタ300へ転送されるリクエストの転送量を測定する機能部である。転送量モニタ640aは、複数のバス20からのモニタ信号730により複数のマスタ100からのリクエストの転送量を測定する。そして、転送量モニタ640aは、測定した複数のマスタ100からのリクエストの転送量をマスク信号生成部607へ出力する。
 予約型レジスタ群620aは、予約バンド幅設定レジスタ621と、予約型優先レベル設定レジスタ622と、基本スロット周期設定レジスタ623と、動作基本スロット番号設定レジスタ624と、転送動作サブスロットパタン設定レジスタ625とを備えている。
 図6の例では、中央バス制御部600bは、マスタ100の数と同数の予約型レジスタ群620aを備えている。なお、複数のマスタ100と予約型レジスタ群620aとの関係は、以下に示すいずれの関係であってもよい。
 例えば、複数のマスタ100に対してそれぞれ専用の予約型レジスタ群620aを用いるようにしてもよい。具体的には、マスタA、マスタB、マスタCの3つのマスタが存在する場合、中央バス制御部600bは、マスタA専用の予約型レジスタ群620a、マスタB専用の予約型レジスタ群620a、マスタC専用の予約型レジスタ群620aの3つの予約型レジスタ群620aを備えるようにしてもよい。また、予約型レジスタ群620aの各々は、各マスタ100専用の予約型レジスタ群620aとしなくてもよい。例えば、中央バス制御部600bは、複数の予約型レジスタ群620aを備え、複数の予約型レジスタ群620aと複数のマスタ100との対応付けを行う構成としてもよい。また、中央バス制御部600bは、予約型レジスタ群620aを1つ備え、当該予約型レジスタ群620a内の設定レジスタの各々が、それぞれ複数のマスタ100についての情報を格納するようにしてもよい。また、予約型レジスタ群620a内の各設定レジスタについて、複数のマスタ100の各々に対して別々に設ける設定レジスタと、複数のマスタ100についての情報を1つの設定レジスタ内に格納する設定レジスタとに分けてもよい。
 予約バンド幅設定レジスタ621は、複数のマスタ100の予約バンド幅を格納する。ここで、予約バンド幅とは、例えば、マスタ100における1サブスロットあたりの予約転送量を示す。
 予約型優先レベル設定レジスタ622は、複数のマスタ100の優先レベルを格納する。
 基本スロット周期設定レジスタ623は、複数のマスタ100のそれぞれについて、アクセス権を配布する基本スロットの周期を格納する。例えば、基本スロット周期設定レジスタ623に1を格納すると、アクセス権の配布が毎基本スロット有効となり、2を格納すると、2基本スロットに1回アクセス権の配布が有効となる。
 動作基本スロット番号設定レジスタ624は、複数のマスタ100のそれぞれについて、アクセス権を配布する基本スロット番号を格納する。例えば、動作基本スロット番号設定レジスタ624に1を格納すると、最初の基本スロットにてアクセス権の配布が有効となり、2を格納すると、2番目の基本スロットにてアクセス権の配布が有効となる。
 転送動作サブスロットパタン設定レジスタ625は、複数のマスタ100のそれぞれについて、アクセス権を配布するサブスロットパタンを格納する。具体的には、アクセス権を配布するサブスロットパタンとして、基本スロットを構成するそれぞれのサブスロットにおけるアクセス権の配布の可否を格納する。例えば、転送動作サブスロットパタン設定レジスタ625は、アクセス権の配布が可能であるサブスロットには○を格納し、アクセス権の配布が不可能であるサブスロットには×を格納する。
 マスク信号生成部607は、複数のマスタ100からのリクエストの転送量を転送量モニタ640aから受け取る。また、マスク信号生成部607は、1基本スロット内に存在するサブスロットの数と1サブスロットの期間をスロット設定レジスタ604から読み出す。また、マスク信号生成部607は、複数のマスタ100の予約バンド幅を予約バンド幅設定レジスタ621から読み出す。そして、マスク信号生成部607は、1基本スロット内に存在するサブスロットの数と1サブスロットの期間、複数のマスタ100からのリクエストの転送量、及び複数のマスタ100の予約バンド幅を用いて、アクセス権付与信号700のマスク信号を生成する。さらに、マスク信号生成部607は、生成したマスク信号を権利付与選択制御部603bへ出力する。
 ここで、アクセス権付与信号700のマスク信号の生成手法について説明する。マスク信号生成部607は、スロット設定レジスタ604から読み出した1基本スロット内に存在するサブスロットの数と1サブスロットの期間を用いて、自身における1基本スロット内に存在するサブスロットの数と1サブスロットの期間を設定する。また、マスク信号生成部607は、いずれかのマスタ100のリクエストの転送量が、そのマスタ100の予約転送量に到達した場合、そのマスタ100について、そのサブスロットの残り期間についてのマスク信号を生成する。
 権利付与選択制御部603bは、複数のマスタ100の予約バンド幅を予約バンド幅設定レジスタ621から読み出す。また、権利付与選択制御部603bは、複数のマスタ100の優先レベルを予約型優先レベル設定レジスタ622から読み出す。また、権利付与選択制御部603bは、複数のマスタ100のそれぞれについて、アクセス権を配布する基本スロット周期を基本スロット周期設定レジスタ623から読み出す。また、権利付与選択制御部603bは、複数のマスタ100のそれぞれについて、アクセス権を配布する基本スロット番号を動作基本スロット番号設定レジスタ624から読み出す。また、権利付与選択制御部603bは、複数のマスタ100のそれぞれについて、アクセス権を配布するサブスロットパタンを転送動作サブスロットパタン設定レジスタ625から読み出す。また、権利付与選択制御部603bは、マスク信号をマスク信号生成部607から受け取る。さらに、権利付与選択制御部603bは、権利付与可能数を権利付与数制御部602から受け取る。
 そして、権利付与選択制御部603bは、複数のマスタ100の予約バンド幅、複数のマスタ100の優先レベル、複数のマスタ100の基本スロット周期、複数のマスタ100の基本スロット番号、複数のマスタ100のサブスロットパタン、マスク信号、及び権利付与可能数を用いて、アクセス権の権利付与先のマスタを選択する。なお、権利付与選択制御部603bによるアクセス権の権利付与先のマスタを選択する手法については、後に図8及び図9を用いて詳述する。
 また、権利付与選択制御部603bは、アクセス権の権利付与先のマスタとして選択したマスタ100に対してアクセス権付与信号700を配布する。具体的には、選択したマスタ100のサブバス制御部200aに対してアクセス権付与信号700を出力する。なお、権利付与選択制御部603bにおけるアクセス権の権利付与先のマスタ選択及びアクセス権付与信号700の出力は、毎サイクル行う。さらに、権利付与選択制御部603bは、マスタ100の優先レベルを示す優先レベル信号705を、当該マスタ100のサブバス制御部200aに対して出力する。なお、権利付与選択制御部603bにおける優先レベル信号705の出力は、予約型優先レベル設定レジスタ622に優先レベルが格納されたタイミングで行われる。これにより、予約型優先レベル設定レジスタ622に格納された優先レベルが、サブバス制御部200aにも反映される。
 次に、メモリコントローラ400bについて図7を用いて説明する。図7に示すように、メモリコントローラ400bは、バッファ401とリフレッシュコントローラ402とを備えている。なお、バッファ401については、実施の形態1に示す構成と同じであるため、説明を省略する。
 リフレッシュコントローラ402は、リフレッシュ要求コントローラ606からリフレッシュ要求信号740を受け取る。そして、リフレッシュコントローラ402は、リフレッシュ要求信号740を受け取ると、リフレッシュコマンドをメモリ500へ出力することにより、メモリ500をリフレッシュする。
 続いて、権利付与選択制御部603bによるアクセス権の権利付与先のマスタを選択する手法について、図8及び図9を用いて説明する。なお、図8及び図9では、複数のマスタ100として、マスタA、マスタB、マスタC、マスタDの4つのマスタを用いている。
 まず、図8を用いて、実施の形態2にかかる予約型レジスタ群の設定情報の例について説明する。
 予約バンド幅設定レジスタ621は、マスタA、マスタB、マスタC、マスタDの予約バンド幅として、それぞれ10GB/s(gigabytes per second)、5GB/s、8GB/s、3GB/sを格納している。
 基本スロット周期設定レジスタ623は、マスタA、マスタB、マスタC、マスタDの基本スロット周期として、それぞれ1、1、4、2を格納している。
 動作基本スロット番号設定レジスタ624は、マスタA、マスタB、マスタC、マスタDの動作基本スロット番号として、それぞれ1、1、4、1を格納している。
 転送動作サブスロットパタン設定レジスタ625は、マスタAのサブスロット0(ss0)、サブスロット1、サブスロット2、サブスロット3における転送動作サブスロットパタンとして、○、○、○、○を格納している。また、転送動作サブスロットパタン設定レジスタ625は、マスタBのサブスロット0、サブスロット1、サブスロット2、サブスロット3における転送動作サブスロットパタンとして、○、×、○、×を格納している。また、転送動作サブスロットパタン設定レジスタ625は、マスタCのサブスロット0、サブスロット1、サブスロット2、サブスロット3における転送動作サブスロットパタンとして、○、○、○、○を格納している。さらに、転送動作サブスロットパタン設定レジスタ625は、マスタDのサブスロット0、サブスロット1、サブスロット2、サブスロット3における転送動作サブスロットパタンとして、×、○、○、○を格納している。
 次に、図9を用いて、図8の設定における権利付与先のマスタの選択について説明する。なお、図9の例では、権利付与可能数が足りていることを前提として説明する。権利付与可能数が不足している場合には、図9のテーブル及び複数のマスタ100の優先レベルを用いて権利付与先のマスタの選択を行う。
 権利付与選択制御部603bは、マスタAに対して、毎基本スロットの毎サブスロットでアクセス権の配布を行う。また、権利付与選択制御部603bは、マスタBに対して、毎基本スロットのサブスロット0及びサブスロット2でアクセス権の配布を行う。また、権利付与選択制御部603bは、マスタCに対して、4基本スロット周期の4番目の基本スロットの毎サブスロットでアクセス権の配布を行う。さらに、権利付与選択制御部603bは、マスタDに対して、2基本スロット周期の1番目の基本スロットのサブスロット1~3でアクセス権の配布を行う。
 すなわち、権利付与選択制御部603bは、1番目の基本スロットのサブスロット0では、権利付与先のマスタとして、マスタA及びマスタBを選択し、1番目の基本スロットのサブスロット1では、権利付与先のマスタとして、マスタA及びマスタDを選択する。残りのスロットについても同様に、バンド幅を設定しているマスタ100を権利付与先のマスタとして選択する。
 また、権利付与選択制御部603bは、いずれかのマスタ100についてのマスク信号を受け取った場合、そのマスタ100について、そのサブスロットの残り期間ではアクセス権の配布対象から外す。
 続いて、メモリのリフレッシュを考慮したバンド幅制御について、図10及び図11を用いて説明する。
 まず、図10を用いて、実施の形態2にかかる予約型レジスタ群及びリフレッシュ要求サブスロット番号設定レジスタの設定情報の例について説明する。なお、図10の例では、説明を簡単にするため、基本スロット周期及び動作基本スロット番号は0としている。
 予約バンド幅設定レジスタ621は、マスタA、マスタB、マスタC、マスタDの予約バンド幅として、それぞれ10GB/s、5GB/s、8GB/s、3GB/sを格納している。
 転送動作サブスロットパタン設定レジスタ625は、マスタAのサブスロット0、サブスロット1、サブスロット2、サブスロット3における転送動作サブスロットパタンとして、○、○、○、○を格納している。また、転送動作サブスロットパタン設定レジスタ625は、マスタBのサブスロット0、サブスロット1、サブスロット2、サブスロット3における転送動作サブスロットパタンとして、○、×、○、×を格納している。また、転送動作サブスロットパタン設定レジスタ625は、マスタCのサブスロット0、サブスロット1、サブスロット2、サブスロット3における転送動作サブスロットパタンとして、×、○、○、○を格納している。さらに、転送動作サブスロットパタン設定レジスタ625は、マスタDのサブスロット0、サブスロット1、サブスロット2、サブスロット3における転送動作サブスロットパタンとして、×、○、×、○を格納している。
 リフレッシュ要求サブスロット番号設定レジスタ605は、リフレッシュ要求コントローラ606がリフレッシュ要求信号740を出力するサブスロット番号として、0を格納している。
 次に、図11を用いて、図10の設定における権利付与先のマスタの選択について説明する。
 権利付与選択制御部603bは、マスタAに対して、毎サブスロットでアクセス権の配布を行う。また、権利付与選択制御部603bは、マスタBに対して、サブスロット0及びサブスロット2でアクセス権の配布を行う。また、権利付与選択制御部603bは、マスタCに対して、サブスロット1~3でアクセス権の配布を行う。さらに、権利付与選択制御部603bは、マスタDに対して、サブスロット1及びサブスロット3でアクセス権の配布を行う。
 すなわち、権利付与選択制御部603bは、サブスロット0では、権利付与先のマスタとして、マスタA及びマスタBを選択する。また、権利付与選択制御部603bは、サブスロット1では、権利付与先のマスタとして、マスタA、マスタC及びマスタDを選択する。また、権利付与選択制御部603bは、サブスロット2では、権利付与先のマスタとして、マスタA、マスタB及びマスタCを選択する。さらに、権利付与選択制御部603bは、サブスロット3では、権利付与先のマスタとして、マスタA、マスタC及びマスタDを選択する。
 したがって、サブスロット0の設定バンド幅は、15GB/s、サブスロット1の設定バンド幅は、21GB/s、サブスロット2の設定バンド幅は、23GB/s、サブスロット3の設定バンド幅は、21GB/sとなる。よって、リフレッシュを行うサブスロットの設定バンド幅は、他のサブスロットの設定バンド幅より小さくなる。
 以上、説明したように、実施の形態2にかかる半導体装置では、転送量モニタ640a、予約バンド幅設定レジスタ621によって、各サブスロットでの設定バンド幅を制限している。これによって、各マスタ100のリクエストを必要以上に転送しないように制限することができる。また、設定したバンド幅をサブスロット内で獲得させるように動作するため、一定のレイテンシーを保証することができる。
 また、マスク信号生成部607によって、リクエストの転送量が予約転送量に到達したマスタ100について、そのサブスロットの残り期間についてのマスク信号を生成している。これによって、マスタ100のリクエストを予約転送量以上に転送しないように制限することができる。
 また、スロット設定レジスタ604、基本スロット周期設定レジスタ623、動作基本スロット番号設定レジスタ624、転送動作サブスロットパタン設定レジスタ625によって、複数のマスタ100へアクセス権を付与するサブスロット・基本スロットを設定している。これによって、マスタがリクエストを転送する順番や同時にリクエストを送るマスタの組み合わせがプログラミング可能となり、システムに応じたバンド幅制御が可能となる。
 また、リフレッシュ要求コントローラ606、リフレッシュ要求サブスロット番号設定レジスタ605、リフレッシュコントローラ402によって、リフレッシュを発行するタイミングを制御することができる。これによって、リフレッシュによりメモリアクセスできないサブスロットは全体の要求バンド幅を減らして、リフレッシュを考慮したバンド幅制御が可能となる。
 さらに、複数の予約型レジスタ群620aと複数のマスタ100との対応付けを行う構成とすることもできる。これによって、予約型レジスタ群620aの数をマスタ100の数に合わせなくても同様の制御を行うことができる。
 実施の形態2の変形例
 続いて、実施の形態2の変形例について説明する。実施の形態2の変形例では、実施の形態2の中央バス制御部600bに代えて中央バス制御部600cを用いる。なお、中央バス制御部以外の構成については、実施の形態2に示す構成と同じであるため、説明を省略する。
 次に、中央バス制御部600cについて図12を用いて説明する。図12に示すように、中央バス制御部600cは、付与可能最大数設定レジスタ601と、権利付与数制御部602と、権利付与選択制御部603cと、スロット設定レジスタ604と、リフレッシュ要求サブスロット番号設定レジスタ605と、リフレッシュ要求コントローラ606と、マスク信号生成部607と、予約型レジスタ群620bと、転送量モニタ640aとを備えている。なお、付与可能最大数設定レジスタ601、権利付与数制御部602、スロット設定レジスタ604、リフレッシュ要求サブスロット番号設定レジスタ605、リフレッシュ要求コントローラ606、及びマスク信号生成部607、及び転送量モニタ640aについては、実施の形態2に示す構成と同じであるため、説明を省略する。
 予約型レジスタ群620bは、予約型優先レベル設定レジスタ622と、基本スロット周期設定レジスタ623と、動作基本スロット番号設定レジスタ624と、予約バンド幅テーブル設定レジスタ626とを備えている。なお、予約型優先レベル設定レジスタ622、基本スロット周期設定レジスタ623、及び動作基本スロット番号設定レジスタ624については、実施の形態2に示す構成と同じであるため、説明を省略する。また、複数のマスタ100と予約型レジスタ群620bとの関係は、複数のマスタ100と予約型レジスタ群620aとの関係と同じであるため、説明を省略する。
 予約バンド幅テーブル設定レジスタ626は、複数のマスタ100について、基本スロット中のサブスロット毎の予約バンド幅を格納する。
 権利付与選択制御部603cは、複数のマスタ100の優先レベルを予約型優先レベル設定レジスタ622から読み出す。また、権利付与選択制御部603cは、複数のマスタ100のそれぞれについて、アクセス権を配布する基本スロット周期を基本スロット周期設定レジスタ623から読み出す。また、権利付与選択制御部603cは、複数のマスタ100のそれぞれについて、アクセス権を配布する基本スロット番号を動作基本スロット番号設定レジスタ624から読み出す。また、権利付与選択制御部603cは、複数のマスタ100におけるサブスロット毎の予約バンド幅を予約バンド幅テーブル設定レジスタ626から読み出す。また、権利付与選択制御部603cは、マスク信号をマスク信号生成部607から受け取る。さらに、権利付与選択制御部603cは、権利付与可能数を権利付与数制御部602から受け取る。
 そして、権利付与選択制御部603cは、複数のマスタ100の優先レベル、複数のマスタ100の基本スロット周期、複数のマスタ100の基本スロット番号、複数のマスタ100のサブスロット毎の予約バンド幅、マスク信号、及び権利付与可能数を用いて、アクセス権の権利付与先のマスタを選択する。
 また、権利付与選択制御部603cは、アクセス権の権利付与先のマスタとして選択したマスタ100に対してアクセス権付与信号700を配布する。具体的には、選択したマスタ100のサブバス制御部200aに対してアクセス権付与信号700を出力する。さらに、権利付与選択制御部603cは、アクセス権付与信号700と共に、当該選択したマスタ100の優先レベルを、当該選択したマスタ100のサブバス制御部200aに対して出力する。なお、権利付与選択制御部603cにおけるアクセス権の権利付与先のマスタの選択及びアクセス権付与信号700の出力は、毎サイクル行う。さらに、権利付与選択制御部603cは、マスタ100の優先レベルを示す優先レベル信号705を、当該マスタ100のサブバス制御部200aに対して出力する。なお、権利付与選択制御部603cにおける優先レベル信号705の出力は、予約型優先レベル設定レジスタ622に優先レベルが格納されたタイミングで行われる。これにより、予約型優先レベル設定レジスタ622に格納された優先レベルが、サブバス制御部200aにも反映される。
 続いて、権利付与選択制御部603cによるアクセス権の権利付与先のマスタを選択する手法について、図13及び図14を用いて説明する。なお、図13及び図14では、複数のマスタ100として、マスタA、マスタB、マスタC、マスタDの4つのマスタを用いている。
 まず、図13を用いて、実施の形態2の変形例にかかる予約型レジスタ群の設定情報の例について説明する。
 予約バンド幅テーブル設定レジスタ626は、マスタAにおけるサブスロット0~3の予約バンド幅として、それぞれ10GB/s、0GB/s、10GB/s、10GB/sを格納している。また、マスタBにおけるサブスロット0~3の予約バンド幅として、それぞれ13GB/s、10GB/s、5GB/s、5GB/sを格納している。また、マスタCにおけるサブスロット0~3の予約バンド幅として、それぞれ8GB/s、8GB/s、8GB/s、8GB/sを格納している。さらに、マスタDにおけるサブスロット0~3の予約バンド幅として、それぞれ0GB/s、8GB/s、3GB/s、3GB/sを格納している。
 すなわち、権利付与選択制御部603cは、マスタB及びマスタDに対して、アクセス権の配布を行う各サブスロットで、異なる予約バンド幅を設定している。
 基本スロット周期設定レジスタ623は、マスタA、マスタB、マスタC、マスタDの基本スロット周期として、それぞれ1、1、4、2を格納している。
 動作基本スロット番号設定レジスタ624は、マスタA、マスタB、マスタC、マスタDの動作基本スロット番号として、それぞれ1、1、4、1を格納している。
 次に、図14を用いて、図13の設定における権利付与先のマスタの選択について説明する。なお、図14の例では、権利付与可能数が足りていることを前提として説明する。権利付与可能数が不足している場合には、図14のテーブル及び複数のマスタ100の優先レベルを用いて権利付与先のマスタの選択を行う。
 権利付与選択制御部603cは、マスタAに対して、毎基本スロットのサブスロット0、サブスロット2、及びサブスロット3でアクセス権の配布を行う。また、権利付与選択制御部603cは、マスタBに対して、毎基本スロットの毎サブスロットでアクセス権の配布を行う。また、権利付与選択制御部603cは、マスタCに対して、4基本スロット周期の4番目の基本スロットの毎サブスロットでアクセス権の配布を行う。さらに、権利付与選択制御部603cは、マスタDに対して、2基本スロット周期の1番目の基本スロットのサブスロット1~3でアクセス権の配布を行う。
 すなわち、権利付与選択制御部603cは、1番目の基本スロットのサブスロット0では、権利付与先のマスタとして、マスタA及びマスタBを選択し、1番目の基本スロットのサブスロット1では、権利付与先のマスタとして、マスタB及びマスタDを選択する。残りのスロットについても同様に、バンド幅を設定しているマスタ100を権利付与先のマスタとして選択する。
 また、権利付与選択制御部603cは、いずれかのマスタ100についてのマスク信号を受け取った場合、そのマスタ100について、そのサブスロットの残り期間ではアクセス権の配布対象から外す。
 以上、説明したように、実施の形態2の変形例にかかる半導体装置では、予約バンド幅テーブル設定レジスタ626が、複数のマスタ100について、サブスロット毎の予約バンド幅を格納している。これによって、実施の形態2と比べてさらに柔軟にシステムに応じたバンド幅の設定を行うことができる。
 実施の形態3
 続いて、実施の形態3について説明する。実施の形態3では、実施の形態2の中央バス制御部600bに代えて中央バス制御部600dを用いる。なお、中央バス制御部以外の構成については、実施の形態2に示す構成と同じであるため、説明を省略する。
 次に、中央バス制御部600dについて図15を用いて説明する。図15に示すように、中央バス制御部600dは、付与可能最大数設定レジスタ601と、権利付与数制御部602と、権利付与選択制御部603dと、スロット設定レジスタ604と、リフレッシュ要求サブスロット番号設定レジスタ605と、リフレッシュ要求コントローラ606と、配布優先度計算回路608と、ベストエフォート(BE)型レジスタ群630と、転送量モニタ640aとを備えている。なお、付与可能最大数設定レジスタ601、権利付与数制御部602、スロット設定レジスタ604、リフレッシュ要求サブスロット番号設定レジスタ605、及びリフレッシュ要求コントローラ606については、実施の形態2に示す構成と同じであるため、説明を省略する。なお、ベストエフォート型レジスタ群は、第2の設定レジスタ群と呼んでもよい。
 実施の形態3の転送量モニタ640aの基本的な機能は、実施の形態2の転送量モニタ640aと同じであるため、説明を省略する。但し、実施の形態3の転送量モニタ640aは、測定した複数のマスタ100からのリクエストの転送量を配布優先度計算回路608へ出力する。
 ベストエフォート型レジスタ群630は、目標転送量設定レジスタ631、更新転送量レジスタ632、配布優先度補正期間設定レジスタ633、ベストエフォート型優先レベル設定レジスタ634、配布優先度初期化間隔設定レジスタ635、基本スロット周期設定レジスタ623、動作基本スロット番号設定レジスタ624、転送動作サブスロットパタン設定レジスタ625を備えている。なお、基本スロット周期設定レジスタ623、動作基本スロット番号設定レジスタ624、及び転送動作サブスロットパタン設定レジスタ625については、実施の形態2に示す構成と同じであるため、説明を省略する。また、複数のマスタ100とベストエフォート型レジスタ群630との関係は、複数のマスタ100と予約型レジスタ群620aとの関係と同等であるため、説明を省略する。
 目標転送量設定レジスタ631は、複数のマスタ100について、1サブスロットあたりの目標転送量を格納する。
 更新転送量レジスタ632は、複数のマスタ100について、転送量の累積値を示す累積転送量を格納する。
 配布優先度補正期間設定レジスタ633は、配布優先度補正期間を格納する。ここで、配布優先度とは、アクセス権の配布に関する優先度を示す。また、配布優先度補正期間とは、複数のマスタ100の目標転送量を補正する期間である。具体的には、現時点から配布優先度補正期間が示す期間後の目標転送量を、配布優先度を計算するための目標転送量として設定する。なお、配布優先度補正期間設定レジスタ633が格納する配布優先度補正期間の値は、変更することができる。また、配布優先度補正期間は、サブスロット単位でもよいし、サブスロット単位でなくてもよい。また、配布優先度補正期間は、複数のマスタについて共通の期間でもよいし、複数のマスタで別々の期間でもよい。
 ベストエフォート型優先レベル設定レジスタ634は、複数のマスタ100について、優先レベルを格納する。なお、ベストエフォート型優先レベル設定レジスタ634に格納される優先レベルは、リクエスト発行制御部201aにてリクエストに付加されるものである。
 配布優先度初期化間隔設定レジスタ635は、配布優先度を初期化する間隔を示すサブスロット数を格納する。ここで、配布優先度の初期化とは、更新転送量レジスタ632に格納される累積転送量を初期化することである。なお、配布優先度初期化間隔設定レジスタ635が格納する配布優先度を初期化する間隔の値は、変更することができる。また、配布優先度初期化間隔は、複数のマスタについて共通の初期化間隔でもよいし、複数のマスタで別々の初期化間隔でもよい。
 配布優先度計算回路608は、アクセス権の配布に関する優先度を示す配布優先度を計算する回路である。例えば、配布優先度計算回路608は、複数のマスタの目標転送量に基づいて、配布優先度を計算する。
 配布優先度計算回路608について具体的に説明する。配布優先度計算回路608は、複数のマスタ100からのリクエストの転送量を転送量モニタ640aから受け取る。また、配布優先度計算回路608は、複数のマスタ100についての1サブスロットあたりの目標転送量を目標転送量設定レジスタ631から読み出す。また、配布優先度計算回路608は、複数のマスタ100についての累積転送量を更新転送量レジスタ632から読み出す。また、配布優先度計算回路608は、配布優先度補正期間を配布優先度補正期間設定レジスタ633から読み出す。さらに、配布優先度計算回路608は、配布優先度初期化間隔を配布優先度初期化間隔設定レジスタ635から読み出す。そして、配布優先度計算回路608は、複数のマスタ100からのリクエストの転送量、複数のマスタ100についての1サブスロットあたりの目標転送量、複数のマスタ100についての累積転送量、配布優先度補正期間、及び配布優先度初期化間隔を用いて、配布優先度を計算する。配布優先度の計算手法については、後に図16A及び図16Bを用いて詳述する。また、配布優先度計算回路608は、計算した配布優先度を権利付与選択制御部603dへ出力する。
 また、配布優先度計算回路608は、サブスロットが経過する毎に、更新転送量レジスタ632に格納される累積転送量を更新する。具体的には、更新転送量レジスタ632から読み出した前サブスロットまでの累積転送量と、転送量モニタ640aから受け取った今サブスロットの転送量を用いて、今サブスロットまでの累積転送量を計算する。そして、配布優先度計算回路608は、計算した今サブスロットまでの累積転送量を更新転送量レジスタ632に格納する。
 権利付与選択制御部603dは、1基本スロット内に存在するサブスロットの数と1サブスロットの期間をスロット設定レジスタ604から読み出す。また、権利付与選択制御部603dは、配布優先度を配布優先度計算回路608から受け取る。また、権利付与選択制御部603dは、複数のマスタ100のそれぞれについて、アクセス権を配布する基本スロット周期を基本スロット周期設定レジスタ623から読み出す。また、権利付与選択制御部603dは、複数のマスタ100のそれぞれについて、アクセス権を配布する基本スロット番号を動作基本スロット番号設定レジスタ624から読み出す。また、権利付与選択制御部603dは、複数のマスタ100のそれぞれについて、アクセス権を配布するサブスロットパタンを転送動作サブスロットパタン設定レジスタ625から読み出す。また、権利付与選択制御部603dは、権利付与可能数を権利付与数制御部602から受け取る。さらに、権利付与選択制御部603dは、複数のマスタ100の優先レベルをベストエフォート型優先レベル設定レジスタ634から読み出す。
 そして、権利付与選択制御部603dは、1基本スロット内に存在するサブスロットの数と1サブスロットの期間、配布優先度、複数のマスタ100の基本スロット周期、複数のマスタ100の基本スロット番号、複数のマスタ100のサブスロットパタン、及び権利付与可能数を用いて、アクセス権の権利付与先のマスタを選択する。
 また、権利付与選択制御部603dは、アクセス権の権利付与先のマスタとして選択したマスタ100に対してアクセス権付与信号700を配布する。具体的には、選択したマスタ100のサブバス制御部200aに対してアクセス権付与信号700を出力する。さらに、権利付与選択制御部603dは、アクセス権付与信号700と共に、当該選択したマスタ100の優先レベルを、当該選択したマスタ100のサブバス制御部200aに対して出力する。なお、権利付与選択制御部603dにおけるアクセス権の権利付与先のマスタの選択及びアクセス権付与信号700の出力は、毎サイクル行う。さらに、権利付与選択制御部603dは、マスタ100の優先レベルを示す優先レベル信号705を、当該マスタ100のサブバス制御部200aに対して出力する。なお、権利付与選択制御部603dにおける優先レベル信号705の出力は、ベストエフォート型優先レベル設定レジスタ634に優先レベルが格納されたタイミングで行われる。これにより、ベストエフォート型優先レベル設定レジスタ634に格納された優先レベルが、サブバス制御部200aにも反映される。
 続いて、配布優先度計算回路608による配布優先度の計算手法について、図16A及び図16Bを用いて説明する。
 まず、図16Aを用いて、実施の形態3にかかる一定間隔でリクエストを発行するマスタについての配布優先度の計算手法について説明する。図16AのマスタはマスタAとする。また、図16Aの配布優先度補正期間は1サブスロットとする。また、図16Aに示す点線は、マスタAの1サブスロットあたりの目標転送量を元に引いた線である。当該点線の縦軸方向の長さが、その実行時間における目標転送量を示す。また、図16Aに示す(1)~(4)の矢印の傾きが配布優先度であり、傾きが大きいほど配布優先度は高いこととする。また、図16Aに示す(5)~(8)の直線の傾きは、マスタAの獲得バンド幅を示す。
 配布優先度計算回路608は、更新転送量レジスタ632から読み出したマスタAの前サブスロットまでの累積転送量に、転送量モニタ640aから受け取ったマスタAの今サブスロットの転送量を加算することにより、今サブスロットまでの累積転送量を計算する。
 また、配布優先度計算回路608は、目標転送量設定レジスタ631から読み出したマスタAの1サブスロットあたりの目標転送量と、配布優先度補正期間設定レジスタ633から読み出した配布優先度補正期間を用いて、配布優先度補正期間後の目標転送量を計算する。すなわち、配布優先度補正期間である1サブスロット後の目標転送量を求める。
 そして、配布優先度計算回路608は、今サブスロットまでの累積転送量と、1サブスロット後の目標転送量とを用いて、配布優先度を計算する。
 次に、具体例として、図16Aに示す(1)の矢印の傾きが示す配布優先度の計算手法について説明する。
 (1)の矢印の傾きは、実行時間が0の時点で計算する。実行時間が0の時点とは、更新転送量レジスタ632に格納されるマスタAの累積転送量が初期化された直後のサブスロットの開始タイミングである。なお、更新転送量レジスタ632に格納されるマスタAの累積転送量の初期化は、配布優先度計算回路608が、配布優先度初期化間隔設定レジスタ635から読み出した配布優先度初期化間隔を用いて行う。すなわち、配布優先度初期化間隔が示すサブスロット数毎に、マスタAの累積転送量の初期化は行われる。
 実行時間が0の時点では、マスタAの今サブスロットまでの累積転送量は0である。よって、実行時間が0且つ転送量が0である点と、配布優先度補正期間である1サブスロット後(実行時間が1サブスロットの時点)の目標転送量が示す点とを結んだ直線が(1)の矢印となる。
 次に、具体例として、図16Aに示す(2)の矢印の傾きが示す配布優先度の計算手法について説明する。
 (2)の矢印の傾きは、実行時間が1サブスロットの時点で計算する。なお、(5)の直線の傾きは、実行時間が0~1サブスロットにおけるマスタAの獲得バンド幅を示す。
 実行時間が1サブスロットの時点では、マスタAの前サブスロットまでの累積転送量は0である。また、転送量モニタ640aから受け取ったマスタAの今サブスロットの転送量は、(5)の直線の1サブスロット時点の縦軸方向の長さである。よって、(5)の直線の実行時間が1サブスロットの時点の縦軸方向の長さは、マスタAの今サブスロットまでの累積転送量を示す。そして、マスタAの今サブスロットまでの累積転送量を示す点と、1サブスロット後(実行時間が2サブスロットの時点)の目標転送量が示す点とを結んだ直線が(2)の矢印となる。
 次に、具体例として、図16Aに示す(3)の矢印の傾きが示す配布優先度の計算手法について説明する。
 (3)の矢印の傾きは、実行時間が2サブスロットの時点で計算する。なお、(6)の直線の傾きは、実行時間が1~2サブスロットにおけるマスタAの獲得バンド幅を示す。
 実行時間が2サブスロットの時点におけるマスタAの今サブスロットまでの累積転送量は、(6)の直線の実行時間が2サブスロットの時点の縦軸方向の長さである。そして、マスタAの今サブスロットまでの累積転送量を示す点と、1サブスロット後(実行時間が3サブスロットの時点)の目標転送量が示す点とを結んだ直線が(3)の矢印となる。なお、図16Aに示す(4)の矢印の傾きが示す配布優先度の計算手法についても同様であるため説明を省略する。
 続いて、図16Bを用いて、実施の形態3にかかる前半はリクエストを出さず後半にのみリクエストを出すマスタについての配布優先度の計算手法について説明する。図16BのマスタはマスタBとする。また、図16Bの配布優先度補正期間は1.7サブスロットとする。また、図16Bに示す点線は、マスタBの1サブスロットあたりの目標転送量を元に引いた線である。当該点線の縦軸方向の長さが、その実行時間における目標転送量を示す。また、図16Bに示す(9)~(12)の矢印の傾きが配布優先度である。また、図16Bに示す(13)の直線の傾きは、マスタBの獲得バンド幅を示す。
 次に、具体例として、図16Bに示す(9)の矢印の傾きが示す配布優先度の計算手法について説明する。
 (9)の矢印の傾きは、実行時間が0の時点で計算する。実行時間が0の時点では、マスタBの今サブスロットまでの累積転送量は0である。よって、実行時間が0且つ転送量が0である点と、配布優先度補正期間である1.7サブスロット後(実行時間が1.7サブスロットの時点)の目標転送量が示す点とを結んだ直線が(9)の矢印となる。
 次に、具体例として、図16Bに示す(10)の矢印の傾きが示す配布優先度の計算手法について説明する。
 (10)の矢印の傾きは、実行時間が1サブスロットの時点で計算する。マスタBは、リクエストを出していないため、実行時間が1サブスロットの時点ではバンド幅を獲得していない。よって、実行時間が1サブスロットの時点では、マスタBの今サブスロットまでの累積転送量は0である。よって、実行時間が0且つ転送量が0である点と、配布優先度補正期間である1.7サブスロット後(実行時間が2.7サブスロットの時点)の目標転送量が示す点とを結んだ直線が(10)の矢印となる。なお、図16Bに示す(11)及び(12)の矢印の傾きが示す配布優先度の計算手法についても同様であるため説明を省略する。
 次に、(13)の直線の傾きが示すマスタBの獲得バンド幅について説明する。実行時間が3サブスロットの時点で、マスタBの配布優先度として、(12)の矢印の傾きが示す配布優先度が計算される。また、マスタBの配布優先度を用いて、アクセス権の権利付与先のマスタとしてマスタBが選択されたとする。そして、マスタBがリクエストを出した後、マスタBは(13)の直線の傾きが示すバンド幅を獲得する。
 以上、説明したように、実施の形態3にかかる半導体装置では、配布優先度計算回路608によって、マスタの目標転送量に基づいて配布優先度を計算する。これによって、長期間での獲得転送量補正が可能となる。
 また、配布優先度補正期間設定レジスタ633によって、配布優先度補正期間を格納する。また、配布優先度補正期間設定レジスタ633が格納する配布優先度補正期間の値は、変更することができる。これによって、システムに応じて最適な配布優先度を計算することができる。
 また、配布優先度初期化間隔設定レジスタ635によって、配布優先度を初期化する間隔を示すサブスロット数を格納する。また、配布優先度の初期化により、更新転送量レジスタ632に格納される累積転送量を初期化する。これによって、長期間での誤差の累積を軽減できる。また、マスタの動作に合わせたリセット間隔を設定することができる。
 さらに、複数のベストエフォート型レジスタ群630と複数のマスタ100との対応付けを行う構成とすることもできる。これによって、ベストエフォート型レジスタ群630の数をマスタ100の数に合わせなくても同様の制御を行うことができる。
 実施の形態4
 続いて、実施の形態4について説明する。実施の形態4では、実施の形態2の予約型レジスタ群620aを用いたアクセス権についての制御と、実施の形態3のベストエフォート型レジスタ群630を用いたアクセス権についての制御を複合的に行う。図17に示すように、実施の形態4にかかる半導体装置は、サブバス制御部200b及び中央バス制御部600eを備える。なお、サブバス制御部200b及び中央バス制御部600e以外の構成については、実施の形態2及び3の構成と同じであるため、説明を省略する。
 中央バス制御部600eは、付与可能最大数設定レジスタ601と、権利付与数制御部602と、権利付与選択制御部603eと、スロット設定レジスタ604と、リフレッシュ要求サブスロット番号設定レジスタ605と、リフレッシュ要求コントローラ606と、マスク信号生成部607と、配布優先度計算回路608と、予約型レジスタ群620aと、ベストエフォート型レジスタ群630と、転送量モニタ640bとを備えている。なお、権利付与選択制御部603e及び転送量モニタ640b以外の構成については、実施の形態2又は3の構成と同じであるため、説明を省略する。
 まず、権利付与選択制御部603eについて説明する。権利付与選択制御部603eは、実施の形態2の権利付与選択制御部603bにおけるアクセス権の権利付与先のマスタの選択機能と、実施の形態3の権利付与選択制御部603dにおけるアクセス権の権利付与先のマスタの選択機能の両方を備える機能部である。なお、権利付与選択制御部603bにおけるアクセス権の権利付与先のマスタの選択処理のことを、予約型レジスタ群620aを用いた選択処理と呼ぶ。また、権利付与選択制御部603dにおける権利付与先のマスタの選択処理のことを、ベストエフォート型レジスタ群630を用いた選択処理と呼ぶ。権利付与選択制御部603eは、予約型レジスタ群620aを用いた選択処理と、ベストエフォート型レジスタ群630を用いた選択処理とを独立して行う。
 また、双方の選択処理がかち合ったときには、どちらかを優先するように設定する。ここで、双方の選択処理がかち合ったときとは、双方の選択処理により1つのマスタを権利付与先のマスタとして選択することをいう。例えば、ベストエフォート型レジスタ群630を用いた選択処理を優先するように設定することにより、双方の選択処理がかち合ったとき、ベストエフォート型レジスタ群630を用いた選択処理により、当該マスタを権利付与先のマスタとして選択する。
 権利付与選択制御部603eは、選択したマスタ100に対してアクセス権付与信号700を配布する。具体的には、選択したマスタ100のサブバス制御部200bに対してアクセス権付与信号700を出力する。また、権利付与選択制御部603eは、アクセス権付与信号700と共に、当該選択したマスタ100の優先レベル及びアクセス権属性信号750を、当該マスタ100のサブバス制御部200bに対して出力する。
 ここで、アクセス権属性信号750について説明する。アクセス権属性信号750とは、付与されたアクセス権が、予約型レジスタ群620aを用いた選択処理により付与されたアクセス権か、ベストエフォート型レジスタ群630を用いた選択処理により付与されたアクセス権かを示す識別情報である。なお、予約型レジスタ群620aを用いた選択処理により付与されたアクセス権を、予約型レジスタ群620aを用いて付与されたアクセス権と呼ぶ。また、ベストエフォート型レジスタ群630を用いた選択処理により付与されたアクセス権を、ベストエフォート型レジスタ群630を用いて付与されたアクセス権と呼ぶ。
 次に、サブバス制御部200bについて説明する。サブバス制御部200bは、リクエスト発行制御部201bを有する。リクエスト発行制御部201bにおける制御について、アクセス権属性信号750に関する制御以外はリクエスト発行制御部201aと同じであるため、同じ部分については説明を省略する。
 リクエスト発行制御部201bは、アクセス権属性信号750を権利付与選択制御部603eから受け取る。また、リクエスト発行制御部201bは、バス10から受け取ったリクエストをバス20へ出力する際には、アクセス権属性信号750を当該リクエストに付加して出力する。
 次に、転送量モニタ640bについて説明する。転送量モニタ640bは、予約型用転送量モニタ641と、ベストエフォート用転送量モニタ642とを備える。
 予約型用転送量モニタ641は、複数のマスタ100から対応するサブバス制御部200bを介してバスアービタ300へ転送される予約型リクエストの転送量を測定する機能部である。ここで、予約型リクエストとは、予約型レジスタ群620aを用いて付与されたアクセス権により、リクエスト発行制御部201bを通過したリクエストのことを示す。
 予約型用転送量モニタ641は、複数のバス20からのモニタ信号730により複数のマスタ100からの予約型リクエストの転送量を測定する。予約型リクエストか否かは、モニタ信号730に付加されているアクセス権属性信号750により識別する。そして、予約型用転送量モニタ641は、測定した複数のマスタ100からの予約型リクエストの転送量をマスク信号生成部607へ出力する。
 ベストエフォート用転送量モニタ642は、複数のマスタ100から対応するサブバス制御部200bを介してバスアービタ300へ転送されるベストエフォート型リクエストの転送量を測定する機能部である。ここで、ベストエフォート型リクエストとは、ベストエフォート型レジスタ群630を用いて付与されたアクセス権により、リクエスト発行制御部201bを通過したリクエストのことを示す。
 ベストエフォート用転送量モニタ642は、複数のバス20からのモニタ信号730により複数のマスタ100からのベストエフォート型リクエストの転送量を測定する。ベストエフォート型リクエストか否かは、モニタ信号730に付加されているアクセス権属性信号750により識別する。そして、ベストエフォート用転送量モニタ642は、測定した複数のマスタ100からのベストエフォート型リクエストの転送量を配布優先度計算回路608へ出力する。
 以上、説明したように、実施の形態4にかかる半導体装置では、権利付与選択制御部603eは、予約型レジスタ群620aを用いて付与されたアクセス権と、ベストエフォート型レジスタ群630を用いて付与されたアクセス権の2種類のアクセス権を配布する。これによって、短期間に一定のバンド幅を獲得する必要のあるマスタと長期間で一定のバンド幅を獲得する必要のあるマスタを効率的に制御することができる。
 なお、上述の例では、実施の形態4では、実施の形態2の予約型レジスタ群620aを用いたアクセス権についての制御と、実施の形態3のベストエフォート型レジスタ群630を用いたアクセス権についての制御を複合的に行うことを例示して説明したが、これに限らない。実施の形態2の変形例の予約型レジスタ群620bを用いたアクセス権についての制御と、実施の形態3のベストエフォート型レジスタ群630を用いたアクセス権についての制御を複合的に行うようにしてもよい。
 以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
100  マスタ
200a、200b  サブバス制御部
201a、201b  リクエスト発行制御部
300  バスアービタ
400a、400b  メモリコントローラ
401  バッファ
402  リフレッシュコントローラ
500  メモリ
600a、600b、600c、600d、600e  中央バス制御部
601  付与可能最大数設定レジスタ
602  権利付与数制御部
603a、603b、603c、603d、603e  権利付与選択制御部
604  スロット設定レジスタ
605  リフレッシュ要求サブスロット番号設定レジスタ
606  リフレッシュ要求コントローラ
607  マスク信号生成部
608  配布優先度計算回路
610  QoS情報レジスタ
620a、620b  予約型レジスタ群
621  予約バンド幅設定レジスタ
622  予約型優先レベル設定レジスタ
623  基本スロット周期設定レジスタ
624  動作基本スロット番号設定レジスタ
625  転送動作サブスロットパタン設定レジスタ
626  予約バンド幅テーブル設定レジスタ
630  ベストエフォート型レジスタ群
631  目標転送量設定レジスタ
632  更新転送量レジスタ
633  配布優先度補正期間設定レジスタ
634  ベストエフォート型優先レベル設定レジスタ
635  配布優先度初期化間隔設定レジスタ
640a、640b  転送量モニタ
641  予約型用転送量モニタ
642  ベストエフォート用転送量モニタ

Claims (24)

  1.  複数のマスタと、
     メモリコントローラと、
     前記複数のマスタと前記メモリコントローラとを接続するバスと、
     前記複数のマスタのQoS情報を格納するQoS情報レジスタと、
     前記メモリコントローラのバッファの空き情報に基づいて、アクセス権の権利付与可能数を計算する権利付与数制御部と、
     前記QoS情報レジスタの前記QoS情報、及び前記権利付与数制御部からの前記権利付与可能数に基づいて、前記アクセス権の権利付与先のマスタを選択する権利付与選択制御部と、
     前記権利付与選択制御部からの前記アクセス権が未付与であるマスタのリクエストを通さないリクエスト発行制御部と、
     を備える半導体装置。
  2.  前記権利付与可能数の最大数を格納する付与可能最大数設定レジスタをさらに備え、
     前記権利付与数制御部は、前記メモリコントローラのバッファの空き情報に基づいて、前記付与可能最大数設定レジスタが格納する前記最大数を上限として前記権利付与可能数を計算する、請求項1に記載の半導体装置。
  3.  前記リクエスト発行制御部は、前記アクセス権が付与されたマスタからのリクエストを保持していない場合、前記アクセス権を返却し、
     前記権利付与数制御部は、前記メモリコントローラのバッファの空き情報及び前記アクセス権の返却数に基づいて、アクセス権の権利付与可能数を計算する、請求項1に記載の半導体装置。
  4.  複数のマスタと、
     メモリコントローラと、
     前記複数のマスタと前記メモリコントローラとを接続するバスと、
     前記複数のマスタの予約バンド幅を格納する予約バンド幅設定レジスタを備える第1の設定レジスタ群と、
     所定の期間を格納するスロット設定レジスタと、
     前記複数のマスタの転送量を測定する転送量モニタと、
     前記メモリコントローラのバッファの空き情報に基づいて、アクセス権の権利付与可能数を計算する権利付与数制御部と、
     前記第1の設定レジスタ群の設定情報、前記スロット設定レジスタの前記所定の期間、前記転送量モニタで測定された前記転送量、及び前記権利付与数制御部からの前記権利付与可能数に基づいて、前記アクセス権の権利付与先のマスタを選択する権利付与選択制御部と、
     前記権利付与選択制御部からの前記アクセス権が未付与であるマスタのリクエストを通さないリクエスト発行制御部と、
     を備える半導体装置。
  5.  前記第1の設定レジスタ群は、前記複数のマスタの優先レベルを格納する予約型優先レベル設定レジスタをさらに備える、請求項4に記載の半導体装置。
  6.  前記第1の設定レジスタ群は、前記複数のマスタのそれぞれについて、前記アクセス権を配布する基本スロットの番号を格納する動作基本スロット番号設定レジスタをさらに備える、請求項4に記載の半導体装置。
  7.  前記第1の設定レジスタ群は、前記複数のマスタのそれぞれについて、前記アクセス権を配布するサブスロットパタンを格納する転送動作サブスロットパタン設定レジスタをさらに備える、請求項6に記載の半導体装置。
  8.  前記第1の設定レジスタ群は、前記複数のマスタのそれぞれについて、前記アクセス権を配布する前記基本スロットの周期を格納する基本スロット周期設定レジスタをさらに備える、請求項6に記載の半導体装置。
  9.  前記第1の設定レジスタ群は、前記予約バンド幅設定レジスタに代えて、前記複数のマスタのそれぞれについて、サブスロット毎に予約バンド幅を格納する予約バンド幅テーブル設定レジスタを備える、請求項6に記載の半導体装置。
  10.  前記メモリコントローラに対して、メモリのリフレッシュ要求信号を出力するリフレッシュ要求コントローラをさらに備える、請求項4に記載の半導体装置。
  11.  前記リフレッシュ要求コントローラがリフレッシュ要求を発行するサブスロット番号を格納するリフレッシュ要求サブスロット番号設定レジスタをさらに備える、請求項10に記載の半導体装置。
  12.  前記第1の設定レジスタ群を複数個備え、複数の前記第1の設定レジスタ群と前記複数のマスタとの対応付けを行う、請求項4に記載の半導体装置。
  13.  前記リクエスト発行制御部は、前記アクセス権が付与されたマスタからのリクエストを保持していない場合、前記アクセス権を返却し、
     前記権利付与数制御部は、前記メモリコントローラのバッファの空き情報及び前記アクセス権の返却数に基づいて、アクセス権の権利付与可能数を計算する、請求項4に記載の半導体装置。
  14.  複数のマスタと、
     メモリコントローラと、
     前記複数のマスタと前記メモリコントローラとを接続するバスと、
     前記複数のマスタの目標転送量を格納する目標転送量設定レジスタを備える第2の設定レジスタ群と、
     所定の期間を格納するスロット設定レジスタと、
     前記目標転送量に基づいて、アクセス権の配布の優先度である配布優先度を計算する配布優先度計算回路と、
     前記メモリコントローラのバッファの空き情報に基づいて、前記アクセス権の権利付与可能数を計算する権利付与数制御部と、
     前記スロット設定レジスタの前記所定の期間、前記配布優先度計算回路で計算された前記配布優先度、及び前記権利付与数制御部からの前記権利付与可能数に基づいて、前記アクセス権の権利付与先のマスタを選択する権利付与選択制御部と、
     前記権利付与選択制御部からの前記アクセス権が未付与であるマスタのリクエストを通さないリクエスト発行制御部と、
     を備える半導体装置。
  15.  前記複数のマスタの転送量を測定する転送量モニタをさらに備え、
     前記第2の設定レジスタ群は、前記目標転送量を補正する期間を格納する配布優先度補正期間設定レジスタをさらに備え、
     前記配布優先度計算回路は、前記目標転送量、前記転送量モニタで測定された前記転送量の累積値、及び前記補正する期間に基づいて、アクセス権の配布の優先度である配布優先度を計算する、請求項14に記載の半導体装置。
  16.  前記第2の設定レジスタ群は、前記複数のマスタの優先レベルを格納するベストエフォート型優先レベル設定レジスタをさらに備える、請求項14に記載の半導体装置。
  17.  前記第2の設定レジスタ群は、前記配布優先度を初期化する間隔を格納する配布優先度初期化間隔設定レジスタをさらに備える、請求項14に記載の半導体装置。
  18.  前記第2の設定レジスタ群は、前記複数のマスタのそれぞれについて、前記アクセス権を配布する基本スロットの周期を格納する基本スロット周期設定レジスタをさらに備える、請求項14に記載の半導体装置。
  19.  前記第2の設定レジスタ群は、前記複数のマスタのそれぞれについて、前記アクセス権を配布する前記基本スロットを格納する動作基本スロット番号設定レジスタをさらに備える、請求項18に記載の半導体装置。
  20.  前記メモリコントローラに対して、メモリのリフレッシュ要求信号を出力するリフレッシュ要求コントローラをさらに備える、請求項14に記載の半導体装置。
  21.  前記リフレッシュ要求コントローラがリフレッシュ要求を発行するサブスロット番号を格納するリフレッシュ要求サブスロット番号設定レジスタをさらに備える、請求項20に記載の半導体装置。
  22.  前記第2の設定レジスタ群を複数個備え、複数の前記第2の設定レジスタ群と前記複数のマスタとの対応付けを行う、請求項14に記載の半導体装置。
  23.  前記リクエスト発行制御部は、前記アクセス権が付与されたマスタからのリクエストを保持していない場合、前記アクセス権を返却し、
     前記権利付与数制御部は、前記メモリコントローラのバッファの空き情報及び前記アクセス権の返却数に基づいて、アクセス権の権利付与可能数を計算する、請求項14に記載の半導体装置。
  24.  前記複数のマスタの予約バンド幅を格納する予約バンド幅設定レジスタを備える第1の設定レジスタ群と、
     前記複数のマスタの転送量を測定する転送量モニタと、をさらに備え、
     前記権利付与選択制御部は、
     前記第1の設定レジスタ群の設定情報、前記スロット設定レジスタの前記所定の期間、前記転送量モニタで測定された前記転送量、及び前記権利付与数制御部からの前記権利付与可能数、又は前記スロット設定レジスタの前記所定の期間、前記配布優先度計算回路で計算された前記配布優先度、及び前記権利付与数制御部からの前記権利付与可能数に基づいて、前記権利付与先のマスタを選択し、
     アクセス権付与信号と共に、前記第1の設定レジスタ群を用いて付与されたアクセス権か前記第2の設定レジスタ群を用いて付与されたアクセス権かを識別するアクセス権属性信号を配布し、
     前記転送量モニタは、前記アクセス権属性信号に合わせて、前記マスタの転送量を測定する機能を備える、請求項14に記載の半導体装置。
PCT/JP2015/005013 2015-10-01 2015-10-01 半導体装置 WO2017056132A1 (ja)

Priority Applications (9)

Application Number Priority Date Filing Date Title
CN201580018135.3A CN106856663B (zh) 2015-10-01 2015-10-01 半导体装置
JP2016554520A JP6513695B2 (ja) 2015-10-01 2015-10-01 半導体装置
KR1020167027043A KR102344032B1 (ko) 2015-10-01 2015-10-01 반도체 장치
CN202111655532.5A CN114490457B (zh) 2015-10-01 2015-10-01 半导体装置
US15/127,765 US10108562B2 (en) 2015-10-01 2015-10-01 Semiconductor device including a request issuing controller
EP15885774.8A EP3358468B1 (en) 2015-10-01 2015-10-01 Semiconductor device
PCT/JP2015/005013 WO2017056132A1 (ja) 2015-10-01 2015-10-01 半導体装置
US16/165,658 US10831683B2 (en) 2015-10-01 2018-10-19 Semiconductor device including bus controller
US17/066,998 US11294835B2 (en) 2015-10-01 2020-10-09 Semiconductor device including a bus arbiter

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/005013 WO2017056132A1 (ja) 2015-10-01 2015-10-01 半導体装置

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US15/127,765 A-371-Of-International US10108562B2 (en) 2015-10-01 2015-10-01 Semiconductor device including a request issuing controller
US16/165,658 Continuation US10831683B2 (en) 2015-10-01 2018-10-19 Semiconductor device including bus controller

Publications (1)

Publication Number Publication Date
WO2017056132A1 true WO2017056132A1 (ja) 2017-04-06

Family

ID=58422810

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/005013 WO2017056132A1 (ja) 2015-10-01 2015-10-01 半導体装置

Country Status (6)

Country Link
US (3) US10108562B2 (ja)
EP (1) EP3358468B1 (ja)
JP (1) JP6513695B2 (ja)
KR (1) KR102344032B1 (ja)
CN (2) CN114490457B (ja)
WO (1) WO2017056132A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018120490A (ja) * 2017-01-26 2018-08-02 キヤノン株式会社 メモリアクセスシステム、その制御方法、プログラム、及び画像形成装置
KR20190003374A (ko) 2017-06-30 2019-01-09 르네사스 일렉트로닉스 가부시키가이샤 반도체 장치 및 액세스 제어 방법
EP3502909A2 (en) 2017-12-22 2019-06-26 Renesas Electronics Corporation Semiconductor device with master, bus, cache and memory controller and bus generator
JP2019220060A (ja) * 2018-06-22 2019-12-26 ルネサスエレクトロニクス株式会社 半導体装置、及びバスジェネレータ
JP2019220061A (ja) * 2018-06-22 2019-12-26 ルネサスエレクトロニクス株式会社 半導体装置、及びバスジェネレータ
JP2021082103A (ja) * 2019-11-21 2021-05-27 ルネサスエレクトロニクス株式会社 調停回路、データ転送システム、及び、調停回路による調停方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019101446A (ja) * 2017-11-28 2019-06-24 ルネサスエレクトロニクス株式会社 半導体装置及びそれを備えた半導体システム
US11449249B2 (en) 2018-11-26 2022-09-20 Micron Technology, Inc. Configuring command/address channel for memory

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004171541A (ja) * 2002-11-08 2004-06-17 Matsushita Electric Ind Co Ltd データ記憶システムおよび転送制御方法
JP2005258867A (ja) 2004-03-12 2005-09-22 Matsushita Electric Ind Co Ltd リソース管理装置
JP2011095966A (ja) * 2009-10-29 2011-05-12 Yamaha Corp アクセスコントローラ
WO2012049485A1 (en) 2010-10-12 2012-04-19 Arm Limited Communication using integrated circuit interconnect circuitry
WO2014027445A1 (ja) * 2012-08-13 2014-02-20 パナソニック株式会社 アクセス制御装置、中継装置、アクセス制御方法、コンピュータプログラム

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0294499B1 (en) * 1987-06-09 1992-08-26 International Business Machines Corporation Control scheme for segmented buffers based on a shared reference count
JP2986176B2 (ja) * 1990-05-11 1999-12-06 株式会社日立製作所 バス権制御方式およびバスシステム
US5265211A (en) * 1992-01-02 1993-11-23 International Business Machines Corporation Arbitration control logic for computer system having dual bus architecture
JP2591502B2 (ja) * 1994-12-09 1997-03-19 日本電気株式会社 情報処理システムおよびそのバス調停方式
TW448363B (en) * 1997-02-17 2001-08-01 Ssd Co Ltd High speed processor system with bus arbitration
US6006303A (en) * 1997-08-28 1999-12-21 Oki Electric Industry Co., Inc. Priority encoding and decoding for memory architecture
JP3791005B2 (ja) * 2001-11-20 2006-06-28 日本電気株式会社 バスアクセス調停装置及びバスアクセス調停方法
EP1418506A3 (en) * 2002-11-08 2005-10-12 Matsushita Electric Industrial Co., Ltd. Data storing system and transmission control method
JP2004227049A (ja) * 2003-01-20 2004-08-12 Renesas Technology Corp データ転送装置、半導体集積回路及びマイクロコンピュータ
JP4748641B2 (ja) * 2004-12-06 2011-08-17 ルネサスエレクトロニクス株式会社 情報処理システム
JP2006195867A (ja) * 2005-01-17 2006-07-27 Matsushita Electric Ind Co Ltd バス調停方法及び半導体装置
JP4847036B2 (ja) * 2005-03-30 2011-12-28 キヤノン株式会社 バスアクセスを調停する制御装置およびデータ処理装置の制御方法
JP2008130056A (ja) * 2006-11-27 2008-06-05 Renesas Technology Corp 半導体回路
TW201017421A (en) * 2008-09-24 2010-05-01 Panasonic Corp Cache memory, memory system and control method therefor
JP2010282405A (ja) * 2009-06-04 2010-12-16 Renesas Electronics Corp データ処理システム
CN102207918B (zh) * 2011-06-07 2014-04-23 北京北大众志微***科技有限责任公司 一种片上总线仲裁方法及装置
KR101861768B1 (ko) 2011-09-16 2018-05-28 삼성전자주식회사 시스템 온칩, 이를 포함하는 전자 시스템, 및 그 동작 방법
US9772958B2 (en) * 2011-10-31 2017-09-26 Hewlett Packard Enterprise Development Lp Methods and apparatus to control generation of memory access requests
US9251108B2 (en) * 2012-11-05 2016-02-02 International Business Machines Corporation Managing access to shared buffer resources
CN103914413A (zh) * 2014-04-18 2014-07-09 东南大学 用于粗粒度可重构***的外存访问接口及其访问方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004171541A (ja) * 2002-11-08 2004-06-17 Matsushita Electric Ind Co Ltd データ記憶システムおよび転送制御方法
JP2005258867A (ja) 2004-03-12 2005-09-22 Matsushita Electric Ind Co Ltd リソース管理装置
JP2011095966A (ja) * 2009-10-29 2011-05-12 Yamaha Corp アクセスコントローラ
WO2012049485A1 (en) 2010-10-12 2012-04-19 Arm Limited Communication using integrated circuit interconnect circuitry
WO2014027445A1 (ja) * 2012-08-13 2014-02-20 パナソニック株式会社 アクセス制御装置、中継装置、アクセス制御方法、コンピュータプログラム

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018120490A (ja) * 2017-01-26 2018-08-02 キヤノン株式会社 メモリアクセスシステム、その制御方法、プログラム、及び画像形成装置
JP2021120909A (ja) * 2017-06-30 2021-08-19 ルネサスエレクトロニクス株式会社 半導体集積回路
KR20190003374A (ko) 2017-06-30 2019-01-09 르네사스 일렉트로닉스 가부시키가이샤 반도체 장치 및 액세스 제어 방법
EP3428803A1 (en) 2017-06-30 2019-01-16 Renesas Electronics Corporation Semiconductor device and access control method
JP2019012410A (ja) * 2017-06-30 2019-01-24 ルネサスエレクトロニクス株式会社 半導体装置及びアクセス制御方法
KR102537338B1 (ko) * 2017-06-30 2023-05-26 르네사스 일렉트로닉스 가부시키가이샤 반도체 장치 및 액세스 제어 방법
US11461253B2 (en) 2017-06-30 2022-10-04 Renesas Electronics Corporation Semiconductor device and access control method
JP7075528B2 (ja) 2017-06-30 2022-05-25 ルネサスエレクトロニクス株式会社 半導体集積回路
EP3872643A1 (en) 2017-06-30 2021-09-01 Renesas Electronics Corporation Semiconductor device and access control method
US10929317B2 (en) 2017-06-30 2021-02-23 Renesas Electronics Corporation Semiconductor device and access control method
KR20190076869A (ko) 2017-12-22 2019-07-02 르네사스 일렉트로닉스 가부시키가이샤 반도체 장치 및 버스 제너레이터
EP3872644A1 (en) 2017-12-22 2021-09-01 Renesas Electronics Corporation Semiconductor device with master, bus, cache and memory controller and bus generator
US11188488B2 (en) 2017-12-22 2021-11-30 Renesas Electronics Corporation Semiconductor device and bus generator
JP2019114015A (ja) * 2017-12-22 2019-07-11 ルネサスエレクトロニクス株式会社 半導体装置、及びバスジェネレータ
EP3502909A2 (en) 2017-12-22 2019-06-26 Renesas Electronics Corporation Semiconductor device with master, bus, cache and memory controller and bus generator
US11068425B2 (en) 2018-06-22 2021-07-20 Renesas Electronics Corporation Semiconductor device and bus generator
US11100019B2 (en) 2018-06-22 2021-08-24 Renesas Electronics Corporation Semiconductor device and bus generator
JP2019220061A (ja) * 2018-06-22 2019-12-26 ルネサスエレクトロニクス株式会社 半導体装置、及びバスジェネレータ
EP3879409A1 (en) 2018-06-22 2021-09-15 Renesas Electronics Corporation Semiconductor device and bus generator
JP7018833B2 (ja) 2018-06-22 2022-02-14 ルネサスエレクトロニクス株式会社 半導体装置
JP7018834B2 (ja) 2018-06-22 2022-02-14 ルネサスエレクトロニクス株式会社 半導体装置
JP2019220060A (ja) * 2018-06-22 2019-12-26 ルネサスエレクトロニクス株式会社 半導体装置、及びバスジェネレータ
JP2021082103A (ja) * 2019-11-21 2021-05-27 ルネサスエレクトロニクス株式会社 調停回路、データ転送システム、及び、調停回路による調停方法

Also Published As

Publication number Publication date
JP6513695B2 (ja) 2019-05-15
US11294835B2 (en) 2022-04-05
JPWO2017056132A1 (ja) 2018-07-19
US10831683B2 (en) 2020-11-10
US20190057052A1 (en) 2019-02-21
KR20180062915A (ko) 2018-06-11
CN106856663B (zh) 2022-01-07
EP3358468A1 (en) 2018-08-08
EP3358468A4 (en) 2019-06-12
US20170270063A1 (en) 2017-09-21
CN114490457B (zh) 2024-06-21
KR102344032B1 (ko) 2021-12-28
EP3358468B1 (en) 2020-12-09
CN106856663A (zh) 2017-06-16
CN114490457A (zh) 2022-05-13
US10108562B2 (en) 2018-10-23
US20210026788A1 (en) 2021-01-28

Similar Documents

Publication Publication Date Title
WO2017056132A1 (ja) 半導体装置
US8549199B2 (en) Data processing apparatus and a method for setting priority levels for transactions
EP1253518B1 (en) Memory access arbitration guaranteeing a desired data transfer rate
JP4436367B2 (ja) 低バンド幅で局所集中アクセスを保証する調停装置、調停方法、及び調停装置を含む動画処理装置
US7231475B1 (en) Advanced bandwidth allocation in PCI bus architecture
US7380040B2 (en) Software programmable dynamic arbitration scheme
US20190057047A1 (en) Data storage device and a method for controlling access to a memory device of a data storage device
CN112382321A (zh) 动态随机存取存储器的刷新方法及内存控制器、电子装置
KR20190076869A (ko) 반도체 장치 및 버스 제너레이터
US7054970B2 (en) Bus arbiter for integrated circuit systems
US20070245051A1 (en) System and method for bandwidth sharing in busses
US7080174B1 (en) System and method for managing input/output requests using a fairness throttle
US7555005B2 (en) Area efficient implementation of the consecutive access counter
JP2005316609A (ja) バス調停装置およびバス調停方法
JP5677007B2 (ja) バス調停装置、バス調停方法
US10002099B2 (en) Arbitrated access to resources among multiple devices
JP2011059915A (ja) 半導体装置
US7404025B2 (en) Software programmable dynamically reconfigurable scheme for controlling request grant and masking for ultra high priority accessor during arbitration
JP2000250853A (ja) バス調整制御装置
JP2010170473A (ja) バス調停装置
US20070245052A1 (en) System and method for bandwidth sharing in busses
KR20100118312A (ko) 버스 시스템의 버스 중재 장치 및 방법
JP2008117292A (ja) バス調停装置及びバス調停方法
JPH11232209A (ja) 計算機システム及びバス使用権割付方法

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2016554520

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15127765

Country of ref document: US

REEP Request for entry into the european phase

Ref document number: 2015885774

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2015885774

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 20167027043

Country of ref document: KR

Kind code of ref document: A

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

Ref document number: 15885774

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE