The disclosure of Japanese Patent Application No. 2022-166499 filed on Oct. 17, 2022 including the specification, drawings and abstract is incorporated herein by reference in its entirety.
The present disclosure relates to a semiconductor device, and is applicable to, for example, a semiconductor device including a plurality of bus masters.
There is disclosed a technique listed below.
In a semiconductor device such as a micro controller unit (MCU), a bus system in which a plurality of bus masters is connected to a common bus is used. The bus master is, for example, a central processing unit (CPU), a direct memory access controller (DMAC), or the like. In such a bus system, it is necessary to arbitrate requests from the plurality of bus masters to the common bus. Non-Patent Document 1 discloses an example of a technique for performing arbitration on the basis of quality of service (QoS) information regarding priority. Hereinafter, the bus master is simply referred to as a master.
Due to factors such as an increase in the number of masters, the band may be limited or the priority may be lowered even in urgent processing (for example, error processing). Therefore, there is a possibility that urgent processing is not completed within a predetermined time.
Other problems and novel features of the present disclosure will become apparent from the description of the present specification and the accompanying drawings.
An outline of representative ones of the present disclosure will be briefly described below. That is, a semiconductor device includes a bus control circuit that controls access to a slave shared by a plurality of masters. The bus control circuit includes a plurality of priority determination circuits corresponding to the plurality of masters. The priority determination circuit is configured to, when receiving an urgent access from a corresponding master, change a priority level signal included in an access request from the corresponding master to allocate a high priority level for emergency and allocate a low priority level to a master other than the corresponding master.
With the semiconductor device described above, it is possible to improve responsiveness of urgent processing.
Hereinafter, an embodiment and a modification will be described with reference to the drawings. However, in the following description, the same components are denoted by the same reference signs, and repeated description may be omitted.
A semiconductor device according to an embodiment will be described with reference to
A semiconductor device 10 according to the embodiment includes a plurality of masters (MST) 100a, 100b, and 100c, a bus control circuit (BCNT) 200, slaves (SLV) 300a and 300b, buses 400a, 400b, and 400c, and buses 500a and 500b.
Here, the masters 100a, 100b, and 100c may be collectively referred to as a master 100, and the slaves 300a and 300b may be collectively referred to as a slave 300. The buses 400a, 400b, and 400c may be collectively referred to as a bus 400, and the buses 500a and 500b may be collectively referred to as a bus 500. Note that, in the example illustrated in
The master 100 is, for example, a CPU, a DMAC, a graphics processing unit (GPU), or the like. The slave 300 is, for example, flash memory, SRAM, a memory controller, a peripheral circuit, or the like. The semiconductor device 10 is, for example, an MCU. The semiconductor device 10 is formed on one or a plurality of semiconductor substrates. The semiconductor substrate is, for example, a silicon substrate. In a case where the semiconductor device 10 includes a memory controller, for example, memory such as double data rate synchronous dynamic random access memory (DDR SDRAM) is connected to the outside of the semiconductor device 10 to constitute an electronic device.
The plurality of masters 100a, 100b, and 100c is connected to the bus control circuit 200 via the buses 400a, 400b, and 400c, respectively. The plurality of masters 100a, 100b, and 100c outputs requests (access requests) for the slaves 300a and 300b to the bus control circuit 200 via the buses 400a, 400b, and 400c, respectively.
The bus control circuit 200 is also called an interconnect, and controls access from the plurality of masters 100a, 100b, and 100c to the shared slaves 300a and 300b.
The response (access result: read data, sideband signal, or the like) to the slaves 300a and 300b is transmitted to the masters 100a, 100b, and 100c via the buses 500a and 500b, the bus control circuit 200, and the buses 400a, 400b, and 400c.
The bus control circuit 200 includes priority determination circuits (QLJ) 210a, 210b, and 210c, band adjustment circuits (BR) 220a, 220b, and 220c, bus arbitration circuits (ARB) 230a and 230b, priority control registers (QL_R) 240a, 240b, and 240c, and band control registers (BR_R) 250a, 250b, and 250c.
The priority determination circuits 210a, 210b, and 210c are connected to the buses 400a, 400b, and 400c, respectively. The operation of the priority determination circuits 210a, 210b, and 210c is controlled by the priority control registers 240a, 240b, and 240c, respectively. Since the configurations of the priority determination circuits 210a, 210b, and 210c are similar to each other, the priority determination circuits 210a, 210b, and 210c may be collectively referred to as a priority determination circuit 210.
The band adjustment circuits 220a, 220b, and 220c are connected to the priority determination circuits 210a, 210b, and 210c. The operation of the band adjustment circuits 220a, 220b, and 220c is controlled by the band control registers 250a, 250b, and 250c, respectively. Since the configurations of the band adjustment circuits 220a, 220b, and 220c are similar to each other, the band adjustment circuits 220a, 220b, and 220c may be collectively referred to as a band adjustment circuit 220.
The bus arbitration circuits 230a and 230b are connected to the priority determination circuits 210a, 210b, and 210c. The bus arbitration circuits 230a and 230b are connected to the buses 500a and 500b, respectively. Since the configurations of the bus arbitration circuits 230a and 230b are similar to each other, the bus arbitration circuits 230a and 230b may be collectively referred to as a bus arbitration circuit 230.
Since the configurations of the priority control registers 240a, 240b, and 240c are similar to each other, the priority control registers 240a, 240b, and 240c may be collectively referred to as a priority control register 240. The priority control register 240 is set by the master 100.
Since the configurations of the band control registers 250a, 250b, and 250c are similar to each other, the band control registers 250a, 250b, and 250c may be collectively referred to as a band control register 250. The band control register 250 is set by the master 100.
The priority determination circuit 210 receives an access request through the bus 400. The access request includes an address signal (AD) and a priority level signal (PL). The priority level signal (PL) is a signal indicating a priority level based on QoS information of the master 100 or the like. The higher the priority level value, the higher the priority, and the priority level value=0 is not a target of priority control.
When receiving an urgent access request from the master 100a, the priority determination circuit 210a changes the priority level signal (PLa) from the master 100a connected to the bus 400a. The priority determination circuit 210a outputs the changed priority level signal (PLWa) to the band adjustment circuit 220a and the bus arbitration circuit 230a in order to allocate a high priority level for emergency to the master 100a, which is an own master. In this case, the priority determination circuit 210a outputs a priority level signal (PLTa) to the band adjustment circuits 220b and 220c in order to allocate a priority level lower than that of the master 100a to the masters 100b and 100c, which are other masters.
When receiving an urgent access request from the master 100b, the priority determination circuit 210b changes the priority level signal (PLb) from the master 100b connected to the bus 400b. The priority determination circuit 210b outputs the changed priority level signal (PLWb) to the band adjustment circuit 220b and the bus arbitration circuit 230b in order to allocate a high priority level for emergency to the master 100b, which is an own master. In this case, the priority determination circuit 210b outputs a priority level signal (PLTb) to the band adjustment circuits 220a and 220c in order to allocate a priority level lower than that of the master 100b to the masters 100a and 100c, which are other masters. When receiving an urgent access request from the master 100c, the priority determination circuit 210c changes the priority level signal (PLc) from the master 100c connected to the bus 400c. The priority determination circuit 210c outputs the changed priority level signal (PLWc) to the band adjustment circuit 220c and the bus arbitration circuit 230c in order to allocate a high priority level for emergency to the master 100c, which is an own master. In this case, the priority determination circuit 210c outputs a priority level signal (PLTc) to the band adjustment circuits 220a and 220b in order to allocate a priority level lower than that of the master 100c to the masters 100a and 100b, which are other masters.
The band adjustment circuit 220 controls the bus band to be allocated to the access request from the master 100 on the basis of the priority level signals input from the plurality of priority determination circuits 210.
The band adjustment circuit 220a controls the bus band to be allocated to the access request from the master 100a on the basis of the priority level signal (PLWa), the priority level signal (PLTb), and the priority level signal (PLTc). The band adjustment circuit 220b controls the bus band to be allocated to the access request from the master 100b on the basis of the priority level signal (PLWb), the priority level signal (PLTa), and the priority level signal (PLTc). The band adjustment circuit 220c controls the bus band to be allocated to the access request from the master 100c on the basis of the priority level signal (PLWc), the priority level signal (PLTa), and the priority level signal (PLTb).
The priority level signals given to the access requests from the plurality of masters 100 to the slave 300 are changed by the priority determination circuit 210, and the bus arbitration circuit 230 arbitrates the priority order of each access request on the basis of the changed priority level signals.
The bus arbitration circuit 230a arbitrates the priority order of the access requests from the masters 100a, 100b, and 100c to the slave 300a on the basis of the priority level signal (PLWa), the priority level signal (PLWb), and the priority level signal (PLWc). The bus arbitration circuit 230b arbitrates the priority order of the access requests from the masters 100a, 100b, and 100c to the slave 300b on the basis of the priority level signal (PLWa), the priority level signal (PLWb), and the priority level signal (PLWc).
The priority control register 240 stores control information for the priority determination circuit 210. The band control register 250 stores control information for the band adjustment circuit 220.
Note that depending on the bus configuration, a sideband signal (SB) may be required. This bus configuration will be described with reference to
The masters 100a, 100b, and 100c are connected to a bus control circuit 200a via the buses 400a, 400b, and 400c, respectively. The bus control circuit 200a and masters 100d and 100e are connected to a bus control circuit 200b via buses 500a, 400d, and 400e, respectively. The masters 100a, 100b, and 100c output access requests for the slave 300 to the bus control circuit 200b via the buses 400a, 400b, and 400c, the bus control circuit 200a, and the bus 500a.
In such a bus configuration, it may be necessary to identify a specific master among the plurality of masters 100a, 100b, and 100c that accesses via the bus 500a. Therefore, identification information (BMID) of a master for identifying a specific master from among a plurality of masters is included in the sideband signal (SB). In other words, in bus control circuits connected in multiple stages, when access requests from a plurality of masters are input, identification information (BMID) of a sideband signal (SB) is used to identify a specific master from among the plurality of masters. In the example illustrated in
The description will be given with reference to
The priority determination circuit 210 determines a priority level value on the basis of an address signal (AD) of an access request from the master 100 to the slave 300, identification information (BMID) included in a sideband signal (SB), and the like. The priority determination circuit 210 overwrites the priority level value of the priority level signal (PL) included in the access request with the determined priority level value. Thus, the priority level is temporarily increased or decreased.
On the basis of the priority level from the priority determination circuit 210, the band adjustment circuit 220 performs band control (relaxation) to expand the band of the own master or band control (enhancement) to narrow the band of other masters during the access by the master 100. The bus arbitration circuit 230 performs arbitration on the basis of the priority level from the priority determination circuit 210.
In this manner, the bus control circuit 200 can quickly shift to an emergency-time priority level (E-QoS) by relatively expanding the band of the own master or increasing the priority level.
Next, a configuration example of the priority determination circuit 210 will be described with reference to
In the priority determination circuit 210 of the present configuration example, an urgent access request is determined by access to an address area designated by a start address and an end address. In addition, as illustrated in
The priority determination circuit 210 determines an area (high priority level area (HQLA)) having a high priority level from the address signal (AD) and the sideband signal (SB), and sets (updates) the priority level for each high priority level area (HQLA). Here, a priority level signal (PL[N:0]) is a (N+1)-bit signal. N is an integer of 1 or more. That is, the priority level is from 0 to (2N+1−1). The priority level signal (PL[N:0]) is the priority level signal (PLa, PLb, PLc) in
As illustrated in
As illustrated in
Among the areas accessed by the master 100, (M+1) high priority level areas (HQLA) can be set, and these high priority level areas (HQLA) are set as areas (A0 to AM). For example, the start address register (SA(A0)) 241 is a start address register for the area (A0), and stores an address indicating the head of the area (A0). The end address register (EA(A0)) 242 is an end address register for the area (A0), and stores an address indicating the end of the area (A0). The address range of the area (A0) is set by the start address register 241 and the end address register 242 for the area (A0). Similarly, the address range of the area (AM) is set by the start address register 241 and the end address register 242 for the area (AM).
The sideband register 243 is a register for setting a specific master, and identification information (BMID) is set.
The own master priority level register (QLW(A0)) 244 is a priority level register for the area (A0), and the priority level of the area (A0) is set. The own master priority level register (QLW(AM)) 244 is a priority level register for the area (AM), and the priority level of the area (AM) is set.
The other master priority level register (QLT(A0)) 245 is a priority level register for the area (A0), and the priority level of the area (A0) is set. The other master priority level register (QLT(AM)) 245 is a priority level register for the area (AM), and the priority level of the area (AM) is set.
The (M+1) comparison circuits 211 determine whether the address signal (AD) is included in the high priority level area (HQLA). The comparison circuit (ACM(A0)) 211 for the area (A0) determines whether the address signal (AD) is included in the area (A0). The comparison circuit (ACM(AM)) 211 for the area (AM) determines whether the address signal (AD) is included in the area (AM).
The comparison circuit 211 for the area (A0) compares the address signal (AD) with the addresses stored in the start address register 241 and the end address register 242 for the area (A0). When the address signal (AD) is included in the area (A0), the comparison circuit 211 for the area (A0) sets an area selection signal (ASL[0]) to the high level.
The comparison circuit 211 for the area (AM) compares the address signal (AD) with the addresses stored in the start address register 241 and the end address register 242 for the area (AM). When the address signal (AD) is included in the area (AM), the comparison circuit 211 for the area (AM) sets an area selection signal (ASL[M]) to the high level.
The area selection signal (ASL[0]) to the area selection signal (ASL[M]) are collectively referred to as an area selection signal (ASL[M:0]). That is, the area selection signal (ASL[M:0]) is a (M+1)-bit signal.
The comparison circuit 212 determines whether the master 100 is a specific master. The comparison circuit 212 compares the identification information (BMID) included in the sideband signal (SB) with the identification information (BMID) stored in the sideband register 243, and when the identification information matches the identification information, for example, sets a match signal (SBMT) to the high level.
The AND circuit 213 performs logical conjunction of each area selection signal (ASL[M:0]) and the match signal (SBMT) and outputs (M+1)-bit area selection valid signals (ASLV[M:0]). In a case where the match signal (SBMT) is at the high level, when any of the area selection signals (ASL[M:0]) is at the high level, any of the area selection valid signals (ASLV[M:0]) is at the high level.
The OR circuit 214 performs logical disjunction of the (M+1)-bit area selection valid signals (ASLV[M:0]). The OR circuit 214 outputs the high level when any of the area selection valid signals (ASLV[M:0]) is at the high level. When a specific master accesses the high priority level area (HQLA), an emergency signal (EMG) goes to the high level. The emergency signal (EMG) goes to the high level when the address signal (AD) is in the high priority level area (HQLA), and indicates that the priority level signal (PL[N:0] is at the emergency-time priority level (E-QoS). When the emergency signal (EMG) is at the low level, it indicates that the priority level signal (PL[N:0]) is at a normal-time priority level (N-QoS).
The selector 215 selects the priority level stored in the own master priority level registers (QLW (AM) to QLW(A0)) 244 according to the area selection valid signals (ASLV[M:0]). When all the area selection valid signals (ASLV[M:0]) are at the low level, “0” is selected.
The selector 216 selects the priority level stored in the other master priority level registers (QLT(AM) to QLT(A0)) 245 according to the area selection valid signals (ASLV[M:0]) and outputs the priority level as the other master priority level signal (PLT[N:0]). When all the area selection valid signals (ASLV[M:0]) are at the low level, “0” is selected. That is, when the address signal (AD) is not in the high priority level area (HQLA), PLT[N:0] becomes 0. Here, the priority level signal (PLT[N:0]) is the priority level signal (PLTa, PLTb, PLTc) in
The comparison circuit 217 compares the priority level indicated by the priority level signal (PL[N:0]) with the priority level that is the output of the selector 215, and outputs the higher priority level as the own master priority level signal (PLW[N:0]). Here, the priority level signal (PLW[N:0]) is the priority level signal (PLWa, PLWb, PLWc) in
The priority determination circuit 210 changes the priority level signal (PL[N:0]) included in the access request on the basis of the address signal (AD) included in the access request and outputs the priority level signal (PLW[N:0]). In addition, the priority determination circuit 210 outputs the priority level signal (PLT[N:0]) for controlling the band of the other masters on the basis of the address signal (AD) included in the access request.
Next, a configuration example of the band adjustment circuit 220 will be described with reference to
The band adjustment circuit 220 receives the priority level (PLW[N:0]) from the priority determination circuit 210 corresponding to the master (own master) from which the access request is received and the priority levels (PLT[N:0]) from the priority determination circuits 210 corresponding to other masters (other masters). Then, the band adjustment circuit 220 compares the priority levels, selects one of the priority levels, and performs band control on the basis of the priority level.
More specifically, in a case where the emergency signal (EMG) from the own master is at the low level, when the priority levels (PLT[N:0]) from the other masters are 1 or more, the band adjustment circuit 220 compares the input priority level (PLT[N:0]) of the own master with the priority levels (PLW[N:0]) of the other masters and selects the lowest priority level. When the priority levels (PLT[N:0]) from the other masters are 0, the priority level (PLW[N:0]) of the own master is selected. The band adjustment circuit 220 performs band control on the basis of the selected priority level.
When the emergency signal (EMG) from the own master is at the high level, the band adjustment circuit 220 selects the priority level (PLW[N:0]) of the own master. The band adjustment circuit 220 performs band control on the basis of the selected priority level (priority level (PLW[N:0]) of the own master).
The band adjustment circuit 220 performs band control of the number of request transfers per unit time on the basis of the selected own master priority level signal (PLW[N:0]) or other master priority level signal (PLT[N:0]) by masking a valid signal (VLD) and a ready signal (RDY).
Here, in the bus protocol in the semiconductor device 10, the master 100 always makes a data transfer request, but the actual data may be sent from the master 100 to the slave 300 or may be sent from the slave 300 to the master 100. A base of data transfer in this bus protocol is the protocol using a data signal, a valid signal (VLD), and a ready signal (RDY) as described below.
The valid signal (VLD) indicates that the transmitting side is presenting valid data in the data signal. The ready signal (RDY) indicates that the receiving side can receive the data of the data signal. Transmission and reception are established at the time point when the valid signal (VLD) and the ready signal (RDY) simultaneously go to the high level. Note that, in
As illustrated in
As illustrated in
The selection circuit 221 selects one of the (n+1) period registers 251 on the basis of the emergency signal (EMG), the own master priority level signal (Mx), a first other master priority level signal (My), and a second other master priority level signal (Mz). Here, the own master priority level signal (Mx), the first other master priority level signal (My), and the second other master priority level signal (Mz) will be described.
In the band adjustment circuit 220a, the priority level signal (PLW[N:0]) from the priority determination circuit 210a is the own master priority level signal (Mx). The priority level signal (PLT[N:0]) from the priority determination circuit 210b is the first other master priority level signal (My). The priority level signal (PLT[N:0]) from the priority determination circuit 210c is the second other master priority level signal (Mz).
In the band adjustment circuit 220b, the priority level signal (PLW[N:0]) from the priority determination circuit 210b is the own master priority level signal (Mx). The priority level signal (PLT[N:0]) from the priority determination circuit 210a is the first other master priority level signal (My). The priority level signal (PLT[N:0]) from the priority determination circuit 210c is the second other master priority level signal (Mz).
In the band adjustment circuit 220c, the priority level signal (PLW[N:0]) from the priority determination circuit 210c is the own master priority level signal (Mx). The priority level signal (PLT[N:0]) from the priority determination circuit 210a is the first other master priority level signal (My). The priority level signal (PLT[N:0]) from the priority determination circuit 210b is the second other master priority level signal (Mz).
When the emergency signal (EMG) is at the high level (in the case of the emergency-time priority level (E-QoS)), the selection circuit 221 selects the period register 251 corresponding to the priority level value indicated by the priority level signal (Mx). When the own master is at the emergency-time priority level, interference from other masters is not received.
When the emergency signal (EMG) is at the low level (in the case of the normal-time priority level (N-QoS)), the selection circuit 221 compares the priority level signal (Mx) with the priority level signal (MyMz) and selects the period register as indicated in (a) to (c) below. Here, the priority level signal (MyMz) is the smaller one of the priority levels indicated by the priority level signal (My) and the priority level signal (Mz), and is “1” or more. That is, the selection is made such that the priority level is equal to or lower than the priority level indicated by the other master priority level signal (MyMz).
Note that when the priority level signal (MyMz) from the other masters is 1 or more, the other masters are at the emergency-time priority level (E-QoS). When the priority level signal (MyMz) is 0, the other masters are at the normal-time priority level (N-QoS). The selection circuit 221 can make a determination without an emergency signal (EMG) from the other masters.
When both the priority levels indicated by the priority level signal (My) and the priority level signal (Mz) are “0”, the priority level signal (MyMz) is “0”. In this case, the period registers (PQL0 to PQLn) corresponding to the priority level indicated by the priority level signal (Mx) are selected. The other masters are also at the normal-time priority level (N-QoS) and do not interfere.
The period counter 222 includes, for example, a down counter that decreases (−1) the preset number every time the number of pulses of the clock is counted. The value (mask period) stored in the period register selected by the selection circuit 221 is preset (set) in the period counter 222 at the timing when a valid output signal (VLD OUT) and a ready output signal (RDY_OUT) go to the high level. The period counter 222 sets a bus stop request signal (BSR) to the high level when the count value is 1 or more, and sets the bus stop request signal (BSR) to the low level when the count value is 0. The period counter 222 counts a period for masking a valid input signal (VLD_IN) and a ready input signal (RDY_IN).
When the bus stop request signal (BSR), the valid input signal (VLD_IN), and the ready input signal (RDY_IN) are at the high level, the mask generation circuit (MGNR) 223 sets a mask signal (MSK) to the high level in the next cycle. When the mask signal (MSK) is at the high level, the AND circuit 224 masks the valid input signal (VLD_IN) and sets the valid output signal (VLD OUT), which is the output signal thereof, to the low level. When the mask signal (MSK) is at the low level, the AND circuit 224 outputs the valid input signal (VLD_IN). When the mask signal (MSK) is at the high level, the AND circuit 225 masks the ready input signal (RDY_IN) and sets the ready output signal (RDY_OUT), which is the output signal thereof, to the low level. When the mask signal (MSK) is at the low level, the AND circuit 225 outputs the ready input signal (RDY_IN).
The band control operation will be described with reference to
In
In
Thus, even in the case of access to the high priority level area (HQLA), a uniform interval period (PERIOD) is inserted between accesses. As a result, the four accesses in the high priority level area (HQLA) take 18 cycles (18CYC).
In
Thus, no interval is set while the own master accesses the high priority level area (HQLA). As a result, the four accesses in the high priority level area (HQLA) take seven cycles (7CYC).
In
Thus, the access to AD=0x1014 by the other masters is the access during the access by the own master to the high priority level area (HQLA), and the interval period is extended. As a result, the access to AD=0x1014 by the other masters takes eight cycles (8 CYC). Note that “7CYC” in
A configuration of the bus arbitration circuit 230 will be described with reference to
The bus arbitration circuit 230 receives the priority level signals (PLW[N:0]) from the priority determination circuits 210a, 210b, and 210c. In addition, the bus arbitration circuit 230 arbitrates the access request using the received priority level signals (PLW[N:0]). An access request having a large priority level value is preferentially arbitrated.
Therefore, the bus arbitration circuit 230 includes decode circuits (MUX) 231a, 231b, and 231c, (n+1) arbitration circuits (RRA) 232, and an arbitration circuit (FRA) 233. The arbitration circuit (RRA) 232 includes a round robin-type arbitration circuit for a normal priority level (NPL0), a high priority level 1 (HPL1), . . . , and a high priority level n (HPLn). The arbitration circuit (FRA) 233 is a fixed priority-type arbitration circuit.
The decode circuits (MUX) 231a, 231b, and 231c decode the priority level signal (PL[N:0]), and select the arbitration circuit (RRA) 232 corresponding to the priority level. That is, the arbitration circuit (RRA) 232 performs arbitration among the same priority levels in a round-robin manner. The arbitration circuit (FRA) 233 prioritizes outputs of the (n+1) arbitration circuits (RRA) 232 in a fixed priority manner.
In order to make the embodiment clearer, problems in a bus control circuit having a configuration (comparative example) different from that of the embodiment will be described with reference to
As illustrated in
When the management of the priority level is not appropriately performed, the band is limited or the priority is lowered even in urgent processing (for example, error processing). That is, when the management of the priority level is not appropriately performed in the bus control circuit 200, there is a possibility that the error processing is not completed within a predetermined time.
For example, as illustrated in
As illustrated in
As illustrated in
Error processing using the bus control circuit in the embodiment will be described with reference to
In the control (EC) of the present embodiment, as illustrated in
According to the embodiment, the one or a plurality of effects described below are obtained.
<Modification>
Hereinafter, a representative modification of the embodiment will be exemplified. In the following description of the modification, the same reference signs as those in the above-described embodiment can be used for portions having the same configurations and functions as those described in the above-described embodiment. For the description of such portions, the description in the above-described embodiment can be appropriately used within a scope not technically contradictory. In addition, a part of the above-described embodiment and whole or a part of the modification can be applied in combination as appropriate within a scope not technically contradictory.
A modification of the priority determination circuit 210 will be described with reference to
In the priority determination circuit 210 of the present configuration example, an urgent access request is determined by a designated period from a time point when access to a specific address is detected. The specific address is, for example, the handler address (HAD) for the error processing illustrated in
The priority determination circuit 210 determines an address (high priority level address (HQAD)) having a high priority level from the address signal (AD) and the sideband signal (SB), and sets (updates) the priority level for each high priority level address (HQAD).
As illustrated in
As illustrated in
In the embodiment, an address area having a high priority level is set, but in the present modification, a specific address is set. In the embodiment, the own master priority level registers and the other master priority level registers are associated with address areas, but in the present modification, the own master priority level registers and the other master priority level registers are associated with specific addresses.
Among the areas accessed by the master 100, (M+1) high priority level addresses (HQAD) can be set, and these high priority level addresses (HQAD) are set as addresses (AD0 to ADM).
The sideband register 243 is a register for setting a specific master, and identification information (BMID) is set. The own master priority level register (QLW(AD0)) 247 is a priority level register for the address (AD0), and the priority level of the address (AD0) is set. The own master priority level register (QLW(ADM)) 247 is a priority level register for the address (ADM), and the priority level of the address (ADM) is set.
The other master priority level register (QLT(AD0)) 248 is a priority level register for the address (AD0), and the priority level of the address (AD0) is set. The other master priority level register (QLT(ADM)) 248 is a priority level register for the address (ADM), and the priority level of the address (ADM) is set.
The (M+1) comparison circuits 211 determine whether the address signal (AD) is the high priority level address (HQAD). The comparison circuit (ACM(AD0)) 211 for the address (AD0) determines whether the address signal (AD) is the address (AD0). The comparison circuit (ACM(ADM)) 211 for the address (ADM) determines whether the address signal (AD) is the address (ADM).
The comparison circuit 211 for the address (AD0) compares the address signal (AD) with the address stored in an address register 246 for the address (AD0). When the address signal (AD) matches the address of the address register 246 for the address (AD0), the comparison circuit 211 for the address (AD0) sets an address selection signal (ADSL[0]) to the high level.
The comparison circuit 211 for the address (ADM) compares the address signal (AD) with the address stored in an address register 246 for the address (ADM). When the address signal (AD) matches the address of the address register 246 for the address (ADM), the comparison circuit 211 for the address (ADM) sets an address selection signal (ADSL[M]) to the high level.
The address selection signal (ADSL[0]) to the address selection signal (ADSL[M]) are collectively referred to as an address selection signal (ADSL[M:0]). That is, the address selection signal (ADSL[M:0]) is a (M+1)-bit signal.
The comparison circuit 212 determines whether the master 100 is a specific master. The comparison circuit 212 compares the identification information (BMID) included in the sideband signal (SB) with the identification information (BMID) stored in the sideband register (PS), and when the identification information matches the identification information, for example, sets a match signal (SBMT) to the high level.
The AND circuit 213 performs logical conjunction of each address selection signal (ADSL[M:0]) and the match signal (SBMT) and outputs (M+1)-bit address selection valid signals (ADSLV[M:0]). In a case where the match signal (SBMT) is at the high level, when any of the address selection signals (ADSL[M:0]) is at the high level, any of the address selection valid signals (ADSLV[M:0]) is at the high level.
The OR circuit 214 performs logical disjunction of (M+1)-bit address selection valid signals (ADSLV[M:0]). The OR circuit 214 outputs the high level when any of the address selection valid signals (ADSLV[M:0]) is at the high level. When a specific master accesses the high priority level address (HQAD), an emergency signal (EMG) goes to the high level. The emergency signal (EMG) goes to the high level when the address signal (AD) is the high priority level address (HQAD), and indicates that the priority level signal (PL[N:0] is at the emergency-time priority level (E-QoS). When the emergency signal (EMG) is at the low level, it indicates that the priority level signal (PL[N:0]) is at a normal-time priority level (N-QoS).
The selector 215 selects the priority level stored in the own master priority level registers (QLW(AD0) to QLW(ADM)) 247 according to the address selection valid signal (ADSLV[M:0]). When all the address selection valid signals (ADSLV[M:0]) are at the low level, “0” is selected.
In addition, the selector 215 selects a timer threshold stored in the timer threshold registers (TMRth(AD0) to TMRth(ADM)) 249 according to the address selection valid signal (ADSLV[M:0]).
The selector 216 selects the priority level stored in the other master priority level register (QLT(AD0) to QLT(ADM)) 248 according to the address selection valid signals (ADSLV[M:0]) and outputs the priority level as the other master priority level signal (PLT[N:0]). When all the address selection valid signals (ADSLV[M:0]) are at the low level, “0” is selected. That is, when the address signal (AD) is not the high priority level address (HQAD), PLT[N:0] becomes 0.
In addition, the selector 216 selects a timer threshold stored in the timer threshold registers (TMRth(AD0) to TMRth(ADM)) 249 according to the address selection valid signal (ADSLV[M:0]).
The timer 218 outputs the priority level selected by the selector 215 and the emergency signal, which is the output of the OR circuit 214, during the period of the threshold selected by the selector 215.
The timer 219 outputs the priority level selected by the selector 216 during the period of the threshold selected by the selector 216.
The comparison circuit 217 compares the priority level indicated by the priority level signal (PL[N:0]) with the priority level that is the output of the timer 218, and outputs the higher priority level as the own master priority level signal (PLW[N:0]).
The priority determination circuit 210 changes the priority level signal (PL[N:0]) included in the access request on the basis of the address signal (AD) included in the access request and outputs the priority level signal (PLW[N:0]) and outputs the priority level signal (PLT[N:0]) for controlling the band of other masters.
In a case where processing with high priority is performed over a plurality of address areas, in the embodiment, it is necessary to set each address area and priorities of the areas. In the present modification, a first address of processing with high priority is set, a designated period is measured by a timer when access to the address is detected, and the priority level is increased during the period. The address is, for example, a handler address when an error occurs. According to the present modification, setting can be performed more easily than setting of a plurality of address areas and respective priorities in the embodiment.
Although the disclosure made by the present discloser has been specifically described above on the basis of the embodiment, the present disclosure is not limited to the above-described embodiment, and it goes without saying that various changes may be made without departing from the gist of the present disclosure.
For example, in the embodiment, the example in which the urgent access request is determined on the basis of the address signal and the sideband signal has been described, but the urgent access request may be determined on the basis of the address signal without using the sideband signal.
In addition, in the embodiment, the example of determining the priority level value on the basis of the identification information (BMID) included in the sideband signal (SB) has been described, but information indicating a special mode may be included in the sideband signal (SB) and the priority level value may be determined on the basis of this information. Here, the special mode is, for example, a supervisor mode, a debug mode, or a secure mode.
Number | Date | Country | Kind |
---|---|---|---|
2022-166499 | Oct 2022 | JP | national |