JP7625802B2 - MEMORY ACCESS SYSTEM AND INFORMATION PROCESSING APPARATUS - Google Patents
MEMORY ACCESS SYSTEM AND INFORMATION PROCESSING APPARATUS Download PDFInfo
- Publication number
- JP7625802B2 JP7625802B2 JP2020119174A JP2020119174A JP7625802B2 JP 7625802 B2 JP7625802 B2 JP 7625802B2 JP 2020119174 A JP2020119174 A JP 2020119174A JP 2020119174 A JP2020119174 A JP 2020119174A JP 7625802 B2 JP7625802 B2 JP 7625802B2
- Authority
- JP
- Japan
- Prior art keywords
- processing device
- bandwidth
- processing
- memory
- bandwidth control
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 230000010365 information processing Effects 0.000 title claims description 36
- 238000012545 processing Methods 0.000 claims description 405
- 230000005540 biological transmission Effects 0.000 claims description 60
- 230000006870 function Effects 0.000 claims description 18
- 238000012546 transfer Methods 0.000 claims description 13
- 238000000034 method Methods 0.000 description 28
- 238000012806 monitoring device Methods 0.000 description 16
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 239000000284 extract Substances 0.000 description 6
- 238000004904 shortening Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Bus Control (AREA)
- Memory System (AREA)
Description
本発明は、メモリ・アクセス・システムおよび情報処理装置に関する。 The present invention relates to a memory access system and an information processing device.
情報処理システムにおいて、メモリに対するアクセス主体としての複数の装置(マスター)が、各々直接メモリにアクセス(DMA:Direct Memory Access)する構成が取られる場合がある。かかるメモリへのアクセス主体の装置には、リアルタイム性が要求される処理(以下、「リアルタイム処理」と呼ぶ)を行う装置と、リアルタイム性が要求されない処理(以下、「非リアルタイム処理」と呼ぶ)を行う装置とがある。リアルタイム処理とは、一度動作を開始すると一定の処理が完了するまで動作速度を変更したり停止したりすることができない処理である。このようなシステムでは、各装置によるメモリへのアクセスを監視し、リアルタイム処理を行う装置(以下、「リアルタイム系装置」と呼ぶ)のメモリ・アクセスにおける転送帯域が不足しないように、帯域制御が行われる。 In some information processing systems, multiple devices (masters) that access memory directly access the memory (DMA: Direct Memory Access). Such devices that access memory include devices that perform processes that require real-time performance (hereafter referred to as "real-time processing") and devices that perform processes that do not require real-time performance (hereafter referred to as "non-real-time processing"). Real-time processing is processing that, once started, cannot change its operating speed or be stopped until a certain amount of processing is completed. In such a system, access to memory by each device is monitored, and bandwidth control is performed to ensure that the transfer bandwidth for memory access by devices performing real-time processing (hereafter referred to as "real-time devices") is not insufficient.
特許文献1には、メモリと複数のマスターとの間で使用される所定時間あたりのデータ量を監視し、監視されたデータ量に関する所定の条件を満たすことに従って、監視された複数のマスターのうち優先度の低いマスター(非リアルタイムでのメモリへのアクセスによるデータ転送を実行するマスター)によるメモリへのアクセスを減少させるメモリ・アクセス・システムが開示されている。 Patent document 1 discloses a memory access system that monitors the amount of data used per given time between a memory and multiple masters, and reduces access to the memory by a master with a low priority among the multiple monitored masters (a master that executes data transfer by accessing the memory in non-real time) according to whether a given condition regarding the monitored data amount is satisfied.
特許文献2には、メモリに記憶されたデータにアクセスする第1マスター(リアルタイム性を確保されたマスター)および第2マスターによるアクセスを調停する第1サブアービタと、第1マスターおよび第2マスター以外の複数のマスターによるメモリに対するアクセスを調停する第2サブアービタと、第1サブアービタからメモリに対するアクセスを、第2サブアービタからメモリに対するアクセスより優先させるメインアービタと、第2マスターによるメモリに対するアクセス量を予め設定された範囲内に制限する制限部と、を備えるデータ処理装置が開示されている。 Patent document 2 discloses a data processing device that includes a first sub-arbiter that arbitrates access by a first master (a master that ensures real-time performance) and a second master that access data stored in a memory, a second sub-arbiter that arbitrates access to the memory by multiple masters other than the first and second masters, a main arbiter that prioritizes access to the memory from the first sub-arbiter over access to the memory from the second sub-arbiter, and a limiting unit that limits the amount of access to the memory by the second master to within a preset range.
メモリとアクセス主体の装置との間の接続構造において、例えば一の機能を担う装置ごとに複数の装置の伝送路がまとめられ、一のポートを共用してメモリに接続される構成を取る場合がある。このような構成では、ポート単位でデータ転送のボトルネックが発生する場合がある。この場合、ポートごとの接続関係に関わらず、単純に非リアルタイム処理を行う装置(以下、「非リアルタイム系装置」と呼ぶ)の転送帯域を制限したとしても、システム全体として有効な帯域調整が実現できるとは限らない。 In the connection structure between memory and the device that accesses it, for example, the transmission paths of multiple devices may be grouped together for each device that performs a single function, and one port may be shared to connect to the memory. In such a configuration, data transfer bottlenecks may occur on a port-by-port basis. In this case, simply limiting the transfer bandwidth of a device that performs non-real-time processing (hereafter referred to as a "non-real-time device"), regardless of the connection relationship between the ports, does not necessarily result in effective bandwidth adjustment for the system as a whole.
本発明は、メモリとアクセス主体の装置との接続構造に関わらず個々の装置の設定や動作状況に基づいて帯域制御を行う場合と比較して、効率の良い帯域制御を実現することを目的とする。 The present invention aims to achieve more efficient bandwidth control than bandwidth control based on the settings and operating conditions of individual devices, regardless of the connection structure between the memory and the device that is accessing it.
請求項1に係る本発明は、
メモリへのアクセス主体の一つであり、リアルタイム処理を行う第1の処理装置と、
前記メモリへのアクセス主体の一つであり、非リアルタイム処理を行う第2の処理装置と、
帯域制御を行う帯域制御装置と、を備え、
前記帯域制御装置は、
何れかの前記第1の処理装置において前記メモリにアクセスするために当該第1の処理装置に割り当てられた帯域が第1の閾値よりも小さい場合、当該第1の処理装置と同一のポートを使用する特定の前記第2の処理装置において前記メモリにアクセスするために当該第2の処理装置に割り当てられた帯域を制限し、当該第1の処理装置に割り当てる帯域を増加させる帯域制御を行い、
前記特定の第2の処理装置に割り当てられた帯域を制限した状態で当該特定の第2の処理装置と同一のポートを使用する前記第1の処理装置に割り当てられた帯域が第2の閾値よりも小さい場合、当該特定の第2の処理装置とは異なるポートを使用する前記第2の処理装置に割り当てられた帯域を制限し、当該第1の処理装置に割り当てる帯域を増加させる帯域制御を行うことを特徴とする、メモリ・アクセス・システムである。
請求項2に係る本発明は、
前記帯域制御装置は、前記特定の第2の処理装置とは異なるポートを使用する前記第2の処理装置が複数存在する場合、予め定められた順番で当該複数の第2の処理装置の一つを選択しながら、順次、選択した第2の処理装置に割り当てられた帯域を制限することを特徴とする、請求項1に記載のメモリ・アクセス・システムである。
請求項3に係る本発明は、
前記帯域制御装置は、前記第2の処理装置と前記メモリとの間でのデータの転送に要するクロック数を変更することにより、当該第2の処理装置に割り当てられた帯域を制御することを特徴とする、請求項1に記載のメモリ・アクセス・システムである。
請求項4に係る本発明は、
前記帯域制御装置は、帯域制御の対象である前記第2の処理装置の処理が一時的に止まる際に、当該第2の処理装置における前記データの転送に要するクロック数の変更を行うことを特徴とする、請求項3に記載のメモリ・アクセス・システムである。
請求項5に係る本発明は、
メモリと、
同一のポートから前記メモリにアクセスするアクセス主体である一または複数の処理装置を含み、当該一または複数の処理装置が、リアルタイム処理を行う第1の処理装置および非リアルタイム処理を行う第2の処理装置のいずれか一方または両方である複数のブロックと、
帯域制御を行う帯域制御装置と、を備え、
前記帯域制御装置は、
前記第1の処理装置および前記第2の処理装置の両方を含む前記ブロックにおいて、当該第1の処理装置において前記メモリにアクセスするために当該第1の処理装置に割り当てられた帯域が予め定められた第1の閾値よりも小さい場合に、当該ブロックに含まれる当該第2の処理装置において前記メモリにアクセスするために当該第2の処理装置に割り当てられた帯域を制限し、当該第1の処理装置に割り当てる帯域を増加させる帯域制御を行い、
前記第1の処理装置を含む前記ブロックにおいて、当該ブロックに含まれる処理装置が使用するポートに対して伝送可能に割り当てられた帯域が予め定められた第2の閾値よりも小さい場合に、当該ブロックとは異なるブロックに含まれる前記第2の処理装置に割り当てられた帯域を制限し、当該第1の処理装置に割り当てる帯域を増加させる帯域制御を行うことを特徴とする、情報処理装置である。
請求項6に係る本発明は、
前記帯域制御装置は、前記第1の処理装置を含む前記ブロックとは異なるブロックに含まれる前記第2の処理装置が複数存在する場合、予め定められた順番で当該複数の第2の処理装置の一つを選択しながら、順次、選択した第2の処理装置に割り当てられた帯域を制限することを特徴とする、請求項5に記載の情報処理装置である。
請求項7に係る本発明は、
個々の前記ブロックは、当該ブロックに含まれる一または複数の前記処理装置により特定の機能を実現し、
前記帯域制御装置は、前記特定の機能における処理が一時的に止まる際に、前記第2の処理装置に割り当てられた帯域の制御を行うことを特徴とする、請求項5に記載の情報処理装置である。
請求項8に係る本発明は、
前記帯域制御装置は、前記第2の処理装置と前記メモリとの間でのデータの転送に要するクロック数を変更することにより、当該第2の処理装置に割り当てられた帯域を制御することを特徴とする、請求項7に記載の情報処理装置である。
The present invention according to claim 1 is
a first processing device which is one of the devices that access the memory and performs real-time processing;
a second processing device which is one of the devices that access the memory and performs non-real-time processing;
A bandwidth control device that performs bandwidth control,
The bandwidth control device includes:
when a bandwidth allocated to any one of the first processing devices for accessing the memory is smaller than a first threshold value, performing bandwidth control to limit a bandwidth allocated to a specific second processing device using the same port as the first processing device for accessing the memory and to increase a bandwidth allocated to the first processing device ;
This memory access system is characterized in that, when the bandwidth allocated to the specific second processing device is restricted and the bandwidth allocated to the first processing device using the same port as the specific second processing device is smaller than a second threshold value, bandwidth control is performed to restrict the bandwidth allocated to the second processing device using a port different from the specific second processing device and increase the bandwidth allocated to the first processing device .
The present invention according to claim 2 is
The memory access system of claim 1, characterized in that, when there are multiple second processing devices using ports different from the specific second processing device, the bandwidth control device selects one of the multiple second processing devices in a predetermined order, and sequentially limits the bandwidth allocated to the selected second processing device.
The present invention according to claim 3 is
The memory access system of claim 1, wherein the bandwidth control device controls the bandwidth allocated to the second processing device by changing the number of clocks required to transfer data between the second processing device and the memory.
The present invention according to claim 4 is
The memory access system of claim 3, wherein the bandwidth control device changes the number of clocks required to transfer the data in the second processing device, which is the subject of bandwidth control, when processing of the second processing device is temporarily stopped.
The present invention according to claim 5 is
Memory,
a plurality of blocks including one or more processing devices which are access subjects accessing the memory from a same port, the one or more processing devices being either or both of a first processing device which performs real-time processing and a second processing device which performs non-real-time processing;
A bandwidth control device that performs bandwidth control,
The bandwidth control device includes:
performing bandwidth control in the block including both the first processing device and the second processing device, when a bandwidth allocated to the first processing device for accessing the memory in the first processing device is smaller than a predetermined first threshold, by limiting a bandwidth allocated to the second processing device included in the block for accessing the memory and increasing a bandwidth allocated to the first processing device ;
This information processing device is characterized in that, in the block including the first processing device, when the bandwidth allocated for transmission to a port used by the processing device included in the block is smaller than a predetermined second threshold, the bandwidth allocated to the second processing device included in a block different from the first processing device is limited and the bandwidth allocated to the first processing device is increased , thereby performing bandwidth control.
The present invention according to claim 6 is
The information processing device described in claim 5 is characterized in that, when there are multiple second processing devices included in a block different from the block including the first processing device, the bandwidth control device selects one of the multiple second processing devices in a predetermined order, and sequentially limits the bandwidth assigned to the selected second processing device.
The present invention according to claim 7 is
Each of the blocks realizes a specific function by one or more of the processing devices included in the block;
6. The information processing apparatus according to claim 5, wherein the bandwidth control device controls the bandwidth allocated to the second processing device when the processing in the specific function is temporarily stopped.
The present invention according to claim 8 is
The information processing device according to claim 7, characterized in that the bandwidth control device controls the bandwidth allocated to the second processing device by changing the number of clocks required to transfer data between the second processing device and the memory.
請求項1の発明によれば、メモリとアクセス主体の装置との接続構造に関わらず個々の装置の設定や動作状況に基づいて帯域制御を行う場合と比較して、同一ポートを使用する装置間での帯域調整のみでは第1の処理装置の帯域不足を解消し得ない場合に、さらに帯域調整を行うことができる。
請求項2の発明によれば、不特定の第2の処理装置の使用帯域を制限する場合と比較して、システム全体への影響を低減させることができる。
請求項3の発明によれば、第2の処理装置を停止したりバースト長を短くしたりする手法と比較して、第2の処理装置を稼働しながら、無駄なアクセスも生じさせずに帯域制御することができる。
請求項4の発明によれば、第2の処理装置を停止したりバースト長を短くしたりする手法と比較して、第2の処理装置を稼働しながら、帯域調整を要するタイミングで制御することができる。
請求項5の発明によれば、メモリとアクセス主体の装置との接続構造に関わらず個々の装置の設定や動作状況に基づいて帯域制御を行う場合と比較して、同一ブロック間での帯域調整のみでは第1の処理装置の帯域不足を解消し得ない場合に、さらに帯域調整を行うことができる。
請求項6の発明によれば、不特定の第2の処理装置の使用帯域を制限する場合と比較して、システム全体への影響を低減させることができる。
請求項7の発明によれば、第2の処理装置を停止したりバースト長を短くしたりする手法と比較して、第2の処理装置を稼働しながら、帯域調整を要するタイミングで制御することができる。
請求項8の発明によれば、第2の処理装置を停止したりバースト長を短くしたりする手法と比較して、第2の処理装置を稼働しながら、無駄なアクセスも生じさせずに帯域制御することができる。
According to the invention of claim 1, in comparison with the case where bandwidth control is performed based on the settings and operating status of each device regardless of the connection structure between the memory and the device that is the subject of access, when the bandwidth shortage of the first processing device cannot be resolved by only bandwidth adjustment between devices that use the same port, further bandwidth adjustment can be performed .
According to the second aspect of the present invention , the influence on the entire system can be reduced compared to the case where the bandwidth used by the unspecified second processing device is restricted.
According to the invention of claim 3 , compared to a method of stopping the second processing device or shortening the burst length, it is possible to control the bandwidth without causing unnecessary access while operating the second processing device.
According to the invention of claim 4 , compared to a method of stopping the second processing device or shortening the burst length, it is possible to control the bandwidth adjustment at the timing required while operating the second processing device.
According to the invention of claim 5 , in comparison with the case where bandwidth control is performed based on the settings and operating conditions of each device regardless of the connection structure between the memory and the device that is the subject of access, when the bandwidth shortage of the first processing device cannot be resolved by bandwidth adjustment only between the same blocks, further bandwidth adjustment can be performed .
According to the sixth aspect of the present invention , the influence on the entire system can be reduced compared to the case where the bandwidth used by the unspecified second processing device is restricted.
According to the seventh aspect of the present invention , compared to a method of stopping the second processing device or shortening the burst length, it is possible to control the bandwidth adjustment at the timing required while operating the second processing device.
According to the invention of claim 8 , compared to a method of stopping the second processing device or shortening the burst length, it is possible to control the bandwidth without causing unnecessary access while operating the second processing device.
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
<対象装置の構成>
図1は、本実施形態によるメモリ・アクセス・システムが適用される情報処理装置の構成を示す図である。この情報処理装置1は、複数の機能ブロック10(図1に示す構成例では10A、10B、10C)を備える。また、情報処理装置1は、CPU(Central Processing Unit)20と、キャッシュ・コヒーレンシ・インターコネクト30と、メモリコントローラ40と、メモリ50とを備える。
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
<Configuration of target device>
1 is a diagram showing the configuration of an information processing device to which a memory access system according to the present embodiment is applied. The information processing device 1 includes a plurality of functional blocks 10 (10A, 10B, and 10C in the configuration example shown in FIG. 1). The information processing device 1 also includes a CPU (Central Processing Unit) 20, a cache coherency interconnect 30, a memory controller 40, and a memory 50.
機能ブロック10は、一または複数の処理装置11、12を備え、個別に特定の機能を実現する。処理装置11、12は、リアルタイム処理を実行するリアルタイム系装置としての処理装置11と、非リアルタイム処理を実行する非リアルタイム系装置としての処理装置12とに分けられる。各機能ブロック10には、リアルタイム系装置および非リアルタイム系装置の両方が含まれる場合と、リアルタイム系装置のみが含まれる場合と、非リアルタイム系装置のみが含まれる場合とがある。なお、図1には記載していないが、各機能ブロック10には、処理装置11、12ごとにDMAを実行するためのDMAC(DMA Controller)が設けられている。 The functional block 10 includes one or more processing devices 11, 12, each of which individually realizes a specific function. The processing devices 11, 12 are divided into the processing device 11 as a real-time device that executes real-time processing, and the processing device 12 as a non-real-time device that executes non-real-time processing. Each functional block 10 may include both real-time and non-real-time devices, may include only real-time devices, or may include only non-real-time devices. Although not shown in FIG. 1, each functional block 10 is provided with a DMAC (DMA Controller) for executing DMA for each processing device 11, 12.
各機能ブロック10に含まれる処理装置11、12は、各々がDMAによりメモリ50にアクセスするアクセス主体である。各処理装置11、12は、CPU20を介さずに直接メモリ50にアクセスしてデータを読み書きする。一の機能ブロック10に複数の処理装置11、12が含まれる場合、各処理装置11、12のメモリ・アクセス用の伝送路は、インターコネクト13(図1に示す構成例では13A、13B、13C)によりまとめられる。言い換えれば、一の機能ブロック10に複数の処理装置11、12が含まれる場合、各処理装置11、12は、機能ブロック10ごとにメモリ・アクセス用の伝送路を共有する。ただし、各機能ブロック10のメモリ・アクセス用の伝送路は、1本とは限らない。例えば、図1に示す構成例において、機能ブロック10Cは、3個の処理装置11、12の伝送路をインターコネクト13Cによりまとめ、2本の伝送路としている。 The processing devices 11 and 12 included in each functional block 10 are the access subjects that access the memory 50 by DMA. Each processing device 11 and 12 directly accesses the memory 50 without going through the CPU 20 to read and write data. When one functional block 10 includes multiple processing devices 11 and 12, the memory access transmission paths of each processing device 11 and 12 are combined by an interconnect 13 (13A, 13B, and 13C in the configuration example shown in FIG. 1). In other words, when one functional block 10 includes multiple processing devices 11 and 12, each processing device 11 and 12 shares a memory access transmission path for each functional block 10. However, the memory access transmission path of each functional block 10 is not limited to one. For example, in the configuration example shown in FIG. 1, the functional block 10C combines the transmission paths of the three processing devices 11 and 12 by the interconnect 13C to form two transmission paths.
CPU20は、メモリ50に対するアクセス主体の一つである。CPU20は、情報処理装置1全体の動作を制御する。CPU20のメモリ・アクセス用の伝送路は、必要に応じて、他のアクセス主体の伝送路とまとめられる。例えば、図1に示す構成例では、CPU20の伝送路と機能ブロック10Cの伝送路の1本とが、キャッシュ・コヒーレンシ・インターコネクト30によりまとめられている。なお、CPU20は、リアルタイム系装置の一種であり、単独で一つの機能ブロック10(一つのリアルタイム系装置のみを含む機能ブロック10)を構成すると把握しても良い。 The CPU 20 is one of the entities that access the memory 50. The CPU 20 controls the operation of the entire information processing device 1. The memory access transmission path of the CPU 20 is combined with the transmission paths of other access entities as necessary. For example, in the configuration example shown in FIG. 1, the transmission path of the CPU 20 and one of the transmission paths of the functional block 10C are combined by the cache coherency interconnect 30. Note that the CPU 20 is a type of real-time system device, and may be understood to constitute one functional block 10 (functional block 10 including only one real-time system device) by itself.
キャッシュ・コヒーレンシ・インターコネクト30は、複数のキャッシュの一貫性(キャッシュ・コヒーレンシ)を保持しながら複数の伝送路をまとめるインターコネクトである。例えば、図1に示す構成例では、CPU20のキャッシュと、機能ブロック10Cに含まれる何れかの処理装置11、12のキャッシュとの一貫性を保持してメモリ・アクセスが実行される。 The cache coherency interconnect 30 is an interconnect that brings together multiple transmission paths while maintaining the consistency (cache coherency) of multiple caches. For example, in the configuration example shown in FIG. 1, memory access is performed while maintaining the consistency between the cache of the CPU 20 and the cache of any of the processing devices 11 and 12 included in the functional block 10C.
メモリコントローラ40は、メモリ50のインターフェイスを統括する制御装置である。メモリコントローラ40は、複数のポートを有し、このポートを介してメモリ50に対するアクセス主体であるCPU20および各処理装置11、12と接続される。上述したように、各処理装置11、12のメモリ・アクセス用の伝送路は機能ブロック10ごとにまとめられているので、各処理装置11、12は、機能ブロック10単位でポートに接続される。したがって、一の機能ブロック10に複数の処理装置11、12が含まれる場合、各処理装置11、12は、メモリコントローラ40の同一のポートを使用してメモリ50にアクセスする。 The memory controller 40 is a control device that manages the interface of the memory 50. The memory controller 40 has multiple ports, and is connected to the CPU 20 and each processing device 11, 12, which are the entities that access the memory 50, via these ports. As described above, the memory access transmission paths of each processing device 11, 12 are grouped together for each functional block 10, so each processing device 11, 12 is connected to a port on a functional block 10 basis. Therefore, when one functional block 10 includes multiple processing devices 11, 12, each processing device 11, 12 accesses the memory 50 using the same port of the memory controller 40.
図1に示す構成例では、機能ブロック10Aの伝送路および機能ブロック10Bの伝送路は、それぞれメモリコントローラ40の一つのポートを使用している。また、CPU20の伝送路と、機能ブロック10Cの伝送路の1本とが、キャッシュ・コヒーレンシ・インターコネクト30によりまとめられて、メモリコントローラ40の一つのポートを使用している。そして、機能ブロック10Cの他方の伝送路は、メモリコントローラ40の他の一つのポートを使用している。 In the configuration example shown in FIG. 1, the transmission path of functional block 10A and the transmission path of functional block 10B each use one port of the memory controller 40. In addition, the transmission path of CPU 20 and one of the transmission paths of functional block 10C are combined by cache coherency interconnect 30 and use one port of the memory controller 40. The other transmission path of functional block 10C uses another port of the memory controller 40.
メモリ50は、情報処理装置1の主記憶装置(メインメモリ)である。メモリ50としては、例えばDDR SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)等が用いられる。 The memory 50 is the main memory of the information processing device 1. For example, a DDR SDRAM (Double-Data-Rate Synchronous Dynamic Random Access Memory) is used as the memory 50.
情報処理装置1は、機能ブロック10により種々の機能を実現する装置である。機能ブロック10により実現される機能は、情報処理装置1の種類に応じて特定される。一例として、図1を参照し、本実施形態の情報処理装置1を、用紙等に記録された画像を読み取る画像読み取り機能や用紙等に画像を印刷する印刷機能等を複合的に備えた画像処理装置に適用した場合の機能構成例を説明する。 The information processing device 1 is a device that realizes various functions by means of the functional block 10. The functions realized by the functional block 10 are specified according to the type of the information processing device 1. As an example, referring to FIG. 1, a functional configuration example will be described in which the information processing device 1 of this embodiment is applied to an image processing device that has a combination of an image reading function for reading an image recorded on paper or the like and a printing function for printing an image on paper or the like.
この例では、画像処理装置(情報処理装置1)の機能ブロック10として、画像読み取り(SCAN)ブロック10Aと、画像処理ブロック10Bと、印刷(PRINT)ブロック10Cとが設けられている。このうち、画像読み取りブロック10Aと印刷ブロック10Cとは、リアルタイム系装置である処理装置11および非リアルタイム系装置である処理装置12の両方を備える。画像処理ブロック10Bは、非リアルタイム系装置である処理装置12のみを備える。 In this example, the functional blocks 10 of the image processing device (information processing device 1) are an image reading (SCAN) block 10A, an image processing block 10B, and a print (PRINT) block 10C. Of these, the image reading block 10A and the print block 10C are equipped with both a processing device 11, which is a real-time device, and a processing device 12, which is a non-real-time device. The image processing block 10B is equipped only with a processing device 12, which is a non-real-time device.
画像読み取りブロック10Aは、リアルタイム系装置であり処理装置11である画像読み取り装置11a(図1では「SCAN」と記載)と、非リアルタイム系装置である処理装置12a(図1では「IP」と記載)とを備える。画像読み取り装置11aは、用紙の反射光を受光素子で受光して得られた電気信号から画像データを読み取る装置(スキャナのコントローラ)である。この画像データを読み取る処理は、リアルタイム処理である。処理装置12aは、いわゆるIP(Intellectual Property)コアであり、画像読み取り装置11aによる処理に伴う動作設定等の非リアルタイム処理を実行する装置である。なお、上位概念的には処理装置11もIPコアの一種であり、以下では、処理装置11、12を区別せずにIPと記すことがある。画像読み取り装置11aおよび処理装置12aのメモリ・アクセス用の伝送路は、インターコネクト13Aによりまとめられ、画像読み取りブロック10Aにおける1本の伝送路となっている。この伝送路は、メモリコントローラ40の一つのポートに接続されている。 The image reading block 10A includes an image reading device 11a (referred to as "SCAN" in FIG. 1) which is a real-time device and a processing device 11, and a processing device 12a (referred to as "IP" in FIG. 1) which is a non-real-time device. The image reading device 11a is a device (scanner controller) that reads image data from an electrical signal obtained by receiving reflected light from a paper sheet with a light receiving element. The process of reading this image data is a real-time process. The processing device 12a is a so-called IP (Intellectual Property) core, and is a device that executes non-real-time processes such as operation settings associated with the processing by the image reading device 11a. In addition, the processing device 11 is also a type of IP core in a higher-level concept, and hereinafter, the processing devices 11 and 12 may be referred to as IP without distinguishing between them. The memory access transmission paths of the image reading device 11a and the processing device 12a are combined by an interconnect 13A to form a single transmission path in the image reading block 10A. This transmission path is connected to one port of the memory controller 40.
画像処理ブロック10Bは、非リアルタイム系装置である処理装置12bおよび処理装置12c(図1では何れも「IP」と記載)を備える。処理装置12bおよび処理装置12cは、いわゆるIPコアであり、画像読み取りブロック10Aにより読み取られた画像や印刷ブロック10Cの印刷対象の画像に対し、フィルタ処理や画像変換等の種々の画像処理を実行する装置である。この画像処理は、非リアルタイム処理である。画像処理ブロック10Bは、リアルタイム処理を実行する処理装置11を備えていない。処理装置12bおよび処理装置12cのメモリ・アクセス用の伝送路は、インターコネクト13Bによりまとめられ、画像処理ブロック10Bにおける1本の伝送路となっている。この伝送路は、メモリコントローラ40の一つのポートに接続されている。 The image processing block 10B includes the processing devices 12b and 12c (both of which are labeled "IP" in FIG. 1) that are non-real-time devices. The processing devices 12b and 12c are so-called IP cores that perform various image processing such as filter processing and image conversion on the image read by the image reading block 10A and the image to be printed by the printing block 10C. This image processing is non-real-time processing. The image processing block 10B does not include a processing device 11 that performs real-time processing. The memory access transmission paths of the processing devices 12b and 12c are combined by the interconnect 13B to form a single transmission path in the image processing block 10B. This transmission path is connected to one port of the memory controller 40.
印刷ブロック10Cは、リアルタイム系装置であり処理装置11である表示装置11b(図1では「LCD」と記載)と、リアルタイム系装置であり処理装置11である印刷装置11c(図1では「PRINT」と記載)と、非リアルタイム系装置である処理装置12d(図1では「IP」と記載)とを備える。表示装置11bは、用紙に印刷される画像等を表示する装置(LCDのコントローラ)である。この画像等を表示する処理は、リアルタイム処理である。印刷装置11cは、処理対象の画像データに基づき用紙等の記録媒体に画像を印刷する装置である。この画像を印刷する処理は、リアルタイム処理である。処理装置12dは、いわゆるIPコアであり、表示装置11bおよび印刷装置11cによる処理に伴う動作設定等の非リアルタイム処理を実行する装置である。表示装置11b、印刷装置11cおよび処理装置12dのメモリ・アクセス用の伝送路は、インターコネクト13Cによりまとめられ、印刷ブロック10Cにおける2本の伝送路となっている。この伝送路のうち1本は、キャッシュ・コヒーレンシ・インターコネクト30により、CPU20の伝送路とまとめられてメモリコントローラ40の一つのポートに接続されている。また、他の1本は、メモリコントローラ40の他の一つのポートに直接接続されている。 The printing block 10C includes a display device 11b (referred to as "LCD" in FIG. 1) which is a real-time device and a processing device 11, a printing device 11c (referred to as "PRINT" in FIG. 1) which is a real-time device and a processing device 11, and a processing device 12d (referred to as "IP" in FIG. 1) which is a non-real-time device. The display device 11b is a device (LCD controller) that displays images to be printed on paper. The process of displaying these images is a real-time process. The printing device 11c is a device that prints images on a recording medium such as paper based on image data to be processed. The process of printing these images is a real-time process. The processing device 12d is a so-called IP core, and is a device that executes non-real-time processes such as operation settings associated with the processing by the display device 11b and the printing device 11c. The transmission paths for memory access of the display device 11b, the printing device 11c, and the processing device 12d are combined by the interconnect 13C to form two transmission paths in the printing block 10C. One of these transmission paths is combined with the transmission path of the CPU 20 by the cache coherency interconnect 30 and connected to one port of the memory controller 40. The other path is directly connected to another port of the memory controller 40.
<機能ブロックにおける伝送帯域不足に対する対応>
図8は、本実施形態とは異なり、リアルタイム系装置と非リアルタイム系装置の区別のみに基づく処理装置11、12とメモリ50との接続構造を示す図である。図8に示す構成例において、情報処理装置2は、図1に示した情報処理装置1と同様に、リアルタイム系装置である3個の処理装置(SCAN、LCD、PRINT)11と、非リアルタイム系装置である4個の処理装置(IP)12とを備える。また、情報処理装置2は、CPU20と、メモリコントローラ40と、メモリ50とを備える。
<How to deal with insufficient transmission bandwidth in functional blocks>
Unlike the present embodiment, Fig. 8 is a diagram showing a connection structure between the processing devices 11, 12 and a memory 50 based only on the distinction between real-time and non-real-time devices. In the configuration example shown in Fig. 8, the information processing device 2 includes three processing devices (SCAN, LCD, PRINT) 11 which are real-time devices, and four processing devices (IP) 12 which are non-real-time devices, similar to the information processing device 1 shown in Fig. 1. The information processing device 2 also includes a CPU 20, a memory controller 40, and a memory 50.
図8に示す構成例において、処理装置11、12は、図1に示した情報処理装置1と異なり、機能ごとのブロックに分けられていない。ただし、各処理装置11は、図1に示した処理装置11a~11cに対応し、各処理装置12は、図1に示した処理装置12a~12dに対応する。したがって、個々の機能における動作では、図1に示した機能ブロック10A~10Cと同様に、機能ごとに各処理装置11、12が動作する。 In the configuration example shown in FIG. 8, unlike the information processing device 1 shown in FIG. 1, the processing devices 11 and 12 are not divided into blocks for each function. However, each processing device 11 corresponds to the processing devices 11a to 11c shown in FIG. 1, and each processing device 12 corresponds to the processing devices 12a to 12d shown in FIG. 1. Therefore, in the operation of each function, each processing device 11 and 12 operates for each function, similar to the function blocks 10A to 10C shown in FIG. 1.
図8に示す構成例では、リアルタイム系装置である処理装置11およびCPU20のメモリ・アクセス用の伝送路は、各々個別に、メモリコントローラ40のポートに接続されている。そして、非リアルタイム系装置である4個の処理装置12のメモリ・アクセス用の伝送路は、インターコネクト13により1本にまとめられて、メモリコントローラ40のポートに接続されている。この構成では、何れかの処理装置11においてメモリ・アクセスにおける使用帯域が不足する場合、処理装置12の使用帯域を制限し、該当する処理装置11において使用帯域の割り当てを増加させる。このとき、何れの処理装置12に対して使用帯域をどれだけ制限するかは、例えば、各処理装置12の動作状態等に基づいて予め定められた規則に従って決定される。この場合、何れの処理装置11において使用帯域が不足する場合でも、この規則にしたがって処理装置12の使用帯域が制限され、処理装置11に割り当てられる。 In the configuration example shown in FIG. 8, the memory access transmission paths of the processing device 11 and CPU 20, which are real-time devices, are each individually connected to the port of the memory controller 40. The memory access transmission paths of the four processing devices 12, which are non-real-time devices, are combined into one by the interconnect 13 and connected to the port of the memory controller 40. In this configuration, if the bandwidth used for memory access is insufficient in any of the processing devices 11, the bandwidth used by the processing device 12 is restricted, and the allocation of the bandwidth used by the corresponding processing device 11 is increased. At this time, the amount of the bandwidth used for each processing device 12 is determined according to a predetermined rule based on, for example, the operating state of each processing device 12. In this case, even if the bandwidth used is insufficient in any of the processing devices 11, the bandwidth used by the processing device 12 is restricted according to this rule and allocated to the processing device 11.
ここで、図1に示す本実施形態の構成において、上記と同様の帯域制御を行う場合を考える。一例として、何れかの処理装置11の使用帯域が不足する場合、処理装置12a、12b、12c、12dの順で使用帯域が制限され、処理装置11に割り当てられるものとする。この場合、処理装置11のうち機能ブロック(印刷ブロック)10Cに含まれる処理装置(印刷装置)11cの使用帯域が不足する場合であっても、この順で処理装置12の使用帯域が制限される。しかしながら、処理装置11cの使用帯域が不足する場合、情報処理装置1の全体では、メモリ・アクセスにおける伝送帯域の不足(いわゆるボトルネック)は、機能ブロック10Cの内部で発生している。このため、処理装置11cの使用帯域不足を解消するには、機能ブロック10Cに含まれる処理装置11、12の間で使用帯域を融通する必要がある。具体的には、機能ブロック10Cに含まれる処理装置12dの使用帯域を制限して処理装置11cの使用帯域を増加させなければならない。言い換えれば、上記の規則に基づき、処理装置12dに先立って、機能ブロック10Aの処理装置12aや、機能ブロック10Bの処理装置12b、12cの使用帯域を制限しても、処理装置11cの使用帯域を増加させることができない。 Here, consider a case where the same bandwidth control as described above is performed in the configuration of this embodiment shown in FIG. 1. As an example, when the bandwidth of any of the processing devices 11 is insufficient, the bandwidths are limited in the order of the processing devices 12a, 12b, 12c, and 12d, and are assigned to the processing device 11. In this case, even if the bandwidth of the processing device (printing device) 11c included in the functional block (printing block) 10C of the processing device 11 is insufficient, the bandwidth of the processing device 12 is limited in this order. However, when the bandwidth of the processing device 11c is insufficient, in the entire information processing device 1, a shortage of transmission bandwidth in memory access (so-called bottleneck) occurs inside the functional block 10C. Therefore, in order to resolve the shortage of bandwidth of the processing device 11c, it is necessary to accommodate the bandwidth between the processing devices 11 and 12 included in the functional block 10C. Specifically, the bandwidth of the processing device 12d included in the functional block 10C must be limited to increase the bandwidth of the processing device 11c. In other words, based on the above rules, even if the bandwidth used by the processing device 12a in function block 10A and the processing devices 12b and 12c in function block 10B is restricted prior to the processing device 12d, the bandwidth used by the processing device 11c cannot be increased.
次に、処理装置12dの使用帯域を制限して処理装置11cに割り当てても、処理装置11cの使用帯域の不足が解消されない場合を考える。この場合、情報処理装置1において機能ブロック10Cに割り当てられた伝送帯域が不足している。このため、上記のように機能ブロック10Cに含まれる処理装置11、12の間で使用帯域を融通しても、機能ブロック10C自体の伝送帯域の不足は解消されない。そこで、このときは、機能ブロック10Aの処理装置12aや、機能ブロック10Bの処理装置12b、12cの使用帯域を制限することにより、機能ブロック10Aや機能ブロック10Bに割り当てた伝送帯域を減少させ、機能ブロック10Cの伝送帯域の割り当てを増加させる。そして、割り当てが増加された機能ブロック10Cの伝送帯域に基づいて、処理装置11cの使用帯域をさらに増加させる。 Next, consider a case where the shortage of the bandwidth used by the processing device 11c is not resolved even if the bandwidth used by the processing device 12d is limited and allocated to the processing device 11c. In this case, the transmission bandwidth allocated to the functional block 10C in the information processing device 1 is insufficient. Therefore, even if the bandwidth used is shared between the processing devices 11 and 12 included in the functional block 10C as described above, the shortage of the transmission bandwidth of the functional block 10C itself is not resolved. Therefore, in this case, the bandwidth used by the processing device 12a of the functional block 10A and the processing devices 12b and 12c of the functional block 10B is limited, thereby reducing the transmission bandwidth allocated to the functional block 10A and the functional block 10B, and increasing the allocation of the transmission bandwidth of the functional block 10C. Then, based on the transmission bandwidth of the functional block 10C whose allocation has been increased, the bandwidth used by the processing device 11c is further increased.
このように、本実施形態では、機能ブロック10ごとに、その機能を実現するために用いられる処理装置11、12をまとめてメモリ・アクセスを行う装置構成を考慮し、第1段階の帯域制御として、機能ブロック10内で使用帯域を融通する。そして、この第1段階の帯域制御では対象の機能ブロック10の伝送帯域の不足を解消できない場合に、第2段階の帯域制御として、他の機能ブロック10との間で伝送帯域の割り当てを変更する。 In this way, in this embodiment, for each functional block 10, the device configuration is taken into consideration in which the processing devices 11, 12 used to realize the function of that functional block 10 access memory together, and the bandwidth used is accommodated within the functional block 10 as the first stage of bandwidth control. Then, if the shortage of transmission bandwidth of the target functional block 10 cannot be resolved by this first stage of bandwidth control, the allocation of transmission bandwidth between the target functional block 10 and other functional blocks 10 is changed as the second stage of bandwidth control.
<メモリ・アクセス・システム100の構成>
図2は、本実施形態のメモリ・アクセス・システムのシステム構成を示す図である。メモリ・アクセス・システム100は、監視装置110と、帯域制御装置120と、処理装置11、12ごとに設けられたゲート部130とを備える。図2では、一つの機能ブロック10と、その機能ブロック10に含まれる処理装置11、12とを制御対象として示しているが、実際には図1に示したように、情報処理装置1における各機能ブロック10の各処理装置11、12に対して制御を行う。
<Configuration of memory access system 100>
Fig. 2 is a diagram showing the system configuration of the memory access system of this embodiment. The memory access system 100 includes a monitoring device 110, a band control device 120, and a gate unit 130 provided for each of the processing devices 11 and 12. In Fig. 2, one functional block 10 and the processing devices 11 and 12 included in the functional block 10 are shown as objects to be controlled, but in reality, as shown in Fig. 1, control is performed for each of the processing devices 11 and 12 of each functional block 10 in the information processing device 1.
監視装置110は、メモリコントローラ40の各ポートの入出力(アクセス信号)を分岐して取り込み、各アクセス主体によるメモリ50へのアクセスを監視する装置である。なお、図1を参照して説明したように、メモリ50に対するアクセス主体は、処理装置11、12およびCPU20であるが、以下では、CPU20をリアルタイム系装置である処理装置11の一種として説明する。監視装置110は、特に、リアルタイム系装置である処理装置11によるメモリ50へのアクセス状況を把握する。このため、メモリ50に対するアクセス主体とメモリ50とを接続するバスには、アクセス主体を個別に識別可能なバスが用いられる。そのようなバスとしては、例えば、AXI(Advanced eXtensible Interface)に対応したバス等がある。 The monitoring device 110 is a device that branches and captures the input/output (access signals) of each port of the memory controller 40, and monitors access to the memory 50 by each access subject. As described with reference to FIG. 1, the subjects that access the memory 50 are the processing devices 11, 12, and the CPU 20, but in the following, the CPU 20 will be described as a type of processing device 11, which is a real-time device. The monitoring device 110 particularly grasps the access status to the memory 50 by the processing device 11, which is a real-time device. For this reason, a bus that can individually identify the access subjects is used as the bus that connects the access subjects to the memory 50 and the memory 50. An example of such a bus is a bus that supports AXI (Advanced eXtensible Interface).
帯域制御装置120は、監視装置110による監視結果に基づき、帯域制御における使用帯域の制限の対象である処理装置12に対する制御情報を設定する。本実施形態では、処理装置12の使用帯域の制限は、処理装置12のスループットを制御することにより実現する。したがって、帯域制御装置120は、制御情報として、制御対象の処理装置12に対するスループット設定値を生成する。 The bandwidth control device 120 sets control information for the processing device 12 that is the target of the bandwidth usage restriction in the bandwidth control based on the monitoring results by the monitoring device 110. In this embodiment, the restriction of the bandwidth usage of the processing device 12 is realized by controlling the throughput of the processing device 12. Therefore, the bandwidth control device 120 generates a throughput setting value for the processing device 12 to be controlled as the control information.
本実施形態では、上述したように、第1段階の帯域制御として同一の機能ブロック10内の処理装置11、12どうしの間で使用帯域を融通し、第2段階の帯域制御として異なる機能ブロック10の間で使用帯域を融通する。したがって、帯域制御装置120は、ある処理装置11の使用帯域不足に対応する制御を行う場合、まず、その処理装置11と同じ機能ブロック10に含まれる処理装置12を対象として、スループットを低下させるスループット設定値を生成する。このスループット制御によっても処理装置11の使用帯域不足が解消されない場合、次に帯域制御装置120は、処理装置11が含まれる機能ブロック10とは異なる機能ブロック10に含まれる処理装置12を対象として、スループットを低下させるスループット設定値を制御する。 As described above, in this embodiment, the first stage of bandwidth control involves sharing the bandwidth between the processing devices 11 and 12 in the same functional block 10, and the second stage of bandwidth control involves sharing the bandwidth between different functional blocks 10. Therefore, when the bandwidth control device 120 performs control to address a bandwidth shortage for a certain processing device 11, it first generates a throughput setting value that reduces the throughput for the processing device 12 included in the same functional block 10 as the processing device 11. If the bandwidth shortage for the processing device 11 is not resolved even by this throughput control, the bandwidth control device 120 then controls the throughput setting value that reduces the throughput for the processing device 12 included in a functional block 10 different from the functional block 10 that includes the processing device 11.
ゲート部130は、帯域制御装置120により生成されたスループット設定値で制御対象の処理装置12のスループットを設定する装置である。ゲート部130は、各処理装置11、12と、各処理装置11、12に対応するDMAC14との間に設けられる。DMAC14は、各処理装置11、12からメモリ50へのDMAを実行するDMAコントローラである。 The gate unit 130 is a device that sets the throughput of the processing device 12 to be controlled with a throughput setting value generated by the bandwidth control device 120. The gate unit 130 is provided between each processing device 11, 12 and the DMAC 14 corresponding to each processing device 11, 12. The DMAC 14 is a DMA controller that executes DMA from each processing device 11, 12 to the memory 50.
<監視装置110の構成>
図3は、監視装置110の構成を示す図である。監視装置110は、フィルタ111と、ポート別カウンタ112と、リアルタイム系装置別カウンタ113と、全体帯域カウンタ114と、カウンタ情報送信部115とを備える。監視装置110に入力されたメモリコントローラ40のポートごとのアクセス信号は、各ポートに対応して設けられたカウンタ群に送られ、アクセス数を計数される。
<Configuration of monitoring device 110>
3 is a diagram showing the configuration of the monitoring device 110. The monitoring device 110 includes a filter 111, a port counter 112, a real-time system device counter 113, a total bandwidth counter 114, and a counter information transmission unit 115. An access signal for each port of the memory controller 40 input to the monitoring device 110 is sent to a counter group provided corresponding to each port, and the number of accesses is counted.
フィルタ111は、メモリコントローラ40のポートごとのアクセス信号から、リアルタイム系装置である各処理装置11のアクセス信号を識別し、抽出する。図1を参照して説明したように、本実施形態では、各処理装置11、12は、機能ブロック10ごとにまとめられ、メモリコントローラ40の一つのポートに接続されている。このため、メモリコントローラ40のポートごとのアクセス信号は、機能ブロック10ごとの処理装置11、12によるアクセス信号である。したがって、フィルタ111は、機能ブロック10ごとのアクセス信号の中から、各機能ブロック10に含まれる各処理装置11のアクセス信号を識別して抽出する。情報処理装置1においてメモリ50にアクセスするためのバスとしてAXIに対応するバスが用いられている場合、バスを通るアクセス信号には、そのアクセス信号を出力したアクセス主体の識別情報が付されている。フィルタ111は、この識別情報により、アクセス主体としての処理装置11のアクセス信号を識別する。 The filter 111 identifies and extracts the access signals of each processing device 11, which is a real-time device, from the access signals for each port of the memory controller 40. As described with reference to FIG. 1, in this embodiment, the processing devices 11 and 12 are grouped together for each functional block 10 and connected to one port of the memory controller 40. Therefore, the access signals for each port of the memory controller 40 are access signals from the processing devices 11 and 12 for each functional block 10. Therefore, the filter 111 identifies and extracts the access signals of each processing device 11 included in each functional block 10 from the access signals for each functional block 10. When a bus corresponding to AXI is used as a bus for accessing the memory 50 in the information processing device 1, the access signal passing through the bus is assigned with identification information of the access subject that output the access signal. The filter 111 identifies the access signal of the processing device 11 as the access subject by this identification information.
ポート別カウンタ112は、メモリコントローラ40のポートごとのアクセス信号に基づき、各ポートに接続された機能ブロック10ごとのアクセス数を計数する。リアルタイム系装置別カウンタ113は、メモリコントローラ40のポートごとのアクセス信号から各フィルタ111により抽出されたアクセス信号に基づき、フィルタ111に対応する処理装置11ごとのアクセス数を計数する。全体帯域カウンタ114は、メモリコントローラ40の各ポートにおいて入出力される全てのアクセス信号に基づき、情報処理装置1の全てのアクセス主体によるメモリ50へのアクセス数を計数する。 The port counter 112 counts the number of accesses for each functional block 10 connected to each port based on the access signal for each port of the memory controller 40. The real-time system device counter 113 counts the number of accesses for each processing device 11 corresponding to the filter 111 based on the access signal extracted by each filter 111 from the access signal for each port of the memory controller 40. The total bandwidth counter 114 counts the number of accesses to the memory 50 by all access subjects of the information processing device 1 based on all access signals input/output at each port of the memory controller 40.
図3に示す例では、メモリコントローラ40のポート0、ポート1、……、ポートnの入出力が監視装置110に取り込まれる。また、特に図示していないが、メモリコントローラ40には、図1に示したように複数の機能ブロック10に分かれたm+1個の処理装置11が接続されているものとする。監視装置110に取り込まれたアクセス信号は、ポートごとに、各ポートを使用する機能ブロック10に対応して設けられたカウンタ群に送られる。ここで、図3に示す例において、ポート0を使用する機能ブロック10には二つの処理装置11が含まれ、これらの処理装置11をIP0、IP1とする。また、ポート1を使用する機能ブロック10には処理装置11が存在しない(処理装置12のみが存在する)ものとする。また、ポートnを使用する機能ブロック10には一つの処理装置11が含まれ、この処理装置11をIPmとする。 In the example shown in FIG. 3, inputs and outputs of ports 0, 1, ..., n of the memory controller 40 are taken into the monitoring device 110. Although not specifically shown, it is assumed that m+1 processing devices 11 divided into multiple functional blocks 10 as shown in FIG. 1 are connected to the memory controller 40. The access signals taken into the monitoring device 110 are sent to a counter group provided for each port corresponding to the functional block 10 using each port. Here, in the example shown in FIG. 3, the functional block 10 using port 0 includes two processing devices 11, and these processing devices 11 are IP0 and IP1. It is also assumed that no processing device 11 exists in the functional block 10 using port 1 (only processing device 12 exists). It is also assumed that the functional block 10 using port n includes one processing device 11, and this processing device 11 is IPm.
図3に示す例において、ポート0から取り込まれたアクセス信号は、ポート0に対応するポート別カウンタ112(図3では「ポート0カウンタ」と記載)に送られると共に、分岐してIP0、IP1に対応する二つのフィルタ111(図3では「IP0フィルタ」、「IP1フィルタ」と記載)に送られる。そして、IP0に対応するフィルタ111によりIP0のアクセス信号が抽出され、IP0に対応するリアルタイム系装置別カウンタ113(図3では「IP0カウンタ」と記載)に送られる。また、IP1に対応するフィルタ111によりIP1のアクセス信号が抽出され、IP1に対応するリアルタイム系装置別カウンタ113(図3では「IP1カウンタ」と記載)に送られる。ポート0に対応するポート別カウンタ112は、ポート0を使用する機能ブロック10の全ての処理装置11、12からのアクセス数を計数する。また、IP0に対応するリアルタイム系装置別カウンタ113は、ポート0を使用する機能ブロック10の処理装置11、12のうち、IP0からのアクセス数を計数する。ポート1に対応するポート別カウンタ112は、ポート1を使用する機能ブロック10の全ての処理装置12からのアクセス数を計数する。 In the example shown in FIG. 3, the access signal captured from port 0 is sent to the port counter 112 corresponding to port 0 (referred to as "port 0 counter" in FIG. 3) and is also branched and sent to two filters 111 corresponding to IP0 and IP1 (referred to as "IP0 filter" and "IP1 filter" in FIG. 3). Then, the filter 111 corresponding to IP0 extracts the access signal of IP0 and sends it to the real-time system device counter 113 corresponding to IP0 (referred to as "IP0 counter" in FIG. 3). Also, the filter 111 corresponding to IP1 extracts the access signal of IP1 and sends it to the real-time system device counter 113 corresponding to IP1 (referred to as "IP1 counter" in FIG. 3). The port counter 112 corresponding to port 0 counts the number of accesses from all the processing devices 11 and 12 of the functional block 10 that use port 0. Also, the real-time system device counter 113 corresponding to IP0 counts the number of accesses from IP0 among the processing devices 11 and 12 of the functional block 10 that use port 0. The port counter 112 corresponding to port 1 counts the number of accesses from all processing devices 12 of the functional block 10 that use port 1.
同様に、ポート1から取り込まれたアクセス信号は、ポート1に対応するポート別カウンタ112(図3では「ポート1カウンタ」と記載)に送られる。ポート1を使用する機能ブロック10には処理装置11が存在しないので、ポート1から取り込まれたアクセス信号を受け付けるフィルタ111およびリアルタイム系装置別カウンタ113は設けられていない。ポート1に対応するポート別カウンタ112は、ポート1を使用する機能ブロック10の全ての処理装置12からのアクセス数を計数する。 Similarly, the access signal received from port 1 is sent to the port counter 112 (shown as "port 1 counter" in FIG. 3) corresponding to port 1. Since the functional block 10 using port 1 does not have a processing device 11, the filter 111 that receives the access signal received from port 1 and the real-time system device counter 113 are not provided. The port counter 112 corresponding to port 1 counts the number of accesses from all processing devices 12 of the functional block 10 using port 1.
また、ポートnから取り込まれたアクセス信号は、ポートnに対応するポート別カウンタ112(図3では「ポートnカウンタ」と記載)に送られると共に、分岐してIPmに対応する一つのフィルタ111(図3では「IPmフィルタ」と記載)に送られる。そして、IPmに対応するフィルタ111によりIPmのアクセス信号が抽出され、IPmに対応するリアルタイム系装置別カウンタ113(図3では「IPmカウンタ」と記載)に送られる。ポートnに対応するポート別カウンタ112は、ポートnを使用する機能ブロック10の全ての処理装置11、12からのアクセス数を計数する。また、IPmに対応するリアルタイム系装置別カウンタ113は、ポートnを使用する機能ブロック10の処理装置11、12のうち、IPmからのアクセス数を計数する。 The access signal captured from port n is sent to the port counter 112 (referred to as "port n counter" in FIG. 3) corresponding to port n, and is also branched and sent to one filter 111 (referred to as "IPm filter" in FIG. 3) corresponding to IPm. The filter 111 corresponding to IPm then extracts the access signal of IPm, and sends it to the real-time system device counter 113 (referred to as "IPm counter" in FIG. 3) corresponding to IPm. The port counter 112 corresponding to port n counts the number of accesses from all the processing devices 11 and 12 of the functional block 10 that use port n. The real-time system device counter 113 corresponding to IPm counts the number of accesses from IPm among the processing devices 11 and 12 of the functional block 10 that use port n.
カウンタ情報送信部115は、各カウンタ112、113、114により計数された各種の計数値(アクセス数)をデバイス間通信により帯域制御装置120へ送信する。カウンタ情報送信部115は、例えば、監視装置110と帯域制御装置120とを接続するバスに対応するバス・インターフェイスにより実現される。 The counter information transmission unit 115 transmits various count values (number of accesses) counted by the counters 112, 113, and 114 to the bandwidth control device 120 via inter-device communication. The counter information transmission unit 115 is realized, for example, by a bus interface corresponding to the bus connecting the monitoring device 110 and the bandwidth control device 120.
上記のように、本実施形態では、非リアルタイム系装置である処理装置12のアクセス数については直接計数していない。しかしながら、ポート別カウンタ112の計数値とリアルタイム系装置別カウンタ113の計数値とから、各ポートを使用する機能ブロック10に含まれる処理装置12によるアクセス数の合計を算出することができる。また、リアルタイム系装置のみを含む機能ブロック10が使用するポートに対応するカウンタ群は、ポート別カウンタ112とリアルタイム系装置別カウンタ113とを含む。そして、ポート別カウンタ112の計数値とリアルタイム系装置別カウンタ113の計数値の総和とが同じ値となる。なお、図3を参照して説明した監視装置110の構成は例示に過ぎず、例えば、非リアルタイム系装置である処理装置12のアクセス信号を抽出するフィルタおよび処理装置12のアクセス数を計数するカウンタを備える構成としても良い。 As described above, in this embodiment, the number of accesses by the processing device 12, which is a non-real-time device, is not directly counted. However, the total number of accesses by the processing device 12 included in the functional block 10 using each port can be calculated from the count value of the port counter 112 and the count value of the real-time device counter 113. In addition, the counter group corresponding to the port used by the functional block 10 including only real-time devices includes the port counter 112 and the real-time device counter 113. The sum of the count value of the port counter 112 and the count value of the real-time device counter 113 is the same value. Note that the configuration of the monitoring device 110 described with reference to FIG. 3 is merely an example, and may be configured to include, for example, a filter that extracts the access signal of the processing device 12, which is a non-real-time device, and a counter that counts the number of accesses of the processing device 12.
<帯域制御装置120の構成>
図4は、帯域制御装置120の構成を示す図である。帯域制御装置120は、複数の動作フラグ格納部121と、カウンタ情報受信部122と、帯域計算部123と、設定判定部124と、閾値情報格納部125と、設定値送信部126と、設定値格納部127とを備える。
<Configuration of Bandwidth Control Device 120>
4 is a diagram showing the configuration of the band control device 120. The band control device 120 includes a plurality of operation flag storage units 121, a counter information receiving unit 122, a band calculation unit 123, a setting determination unit 124, a threshold information storage unit 125, a setting value transmission unit 126, and a setting value storage unit 127.
動作フラグ格納部121は、メモリ50に対するアクセス主体であって帯域制御の対象であるリアルタイム系装置の処理装置11(IP)の動作状態を表す動作フラグを格納する。動作フラグ格納部121は、各処理装置11に対し、個別に対応付けて設けられる。図4に示す例では、処理装置11の数をm+1とし、IP0、IP1、……、IPmにそれぞれ対応する動作フラグ格納部121(図では「IP0動作フラグ格納部」、「IP1動作フラグ格納部」、「IPm動作フラグ格納部」と記載)が示されている。 The operation flag storage unit 121 stores an operation flag indicating the operation state of the processing device 11 (IP) of the real-time system device that is the subject of access to the memory 50 and is the target of bandwidth control. The operation flag storage unit 121 is provided in association with each processing device 11 individually. In the example shown in FIG. 4, the number of processing devices 11 is m+1, and operation flag storage units 121 corresponding to IP0, IP1, ..., IPm respectively (in the figure, they are written as "IP0 operation flag storage unit", "IP1 operation flag storage unit", "IPm operation flag storage unit") are shown.
動作フラグは、対応する処理装置11が稼働状態か否かを示す。処理装置11の使用帯域の変更は、リアルタイム系装置である処理装置11の処理の実行中には行うことができない。そのため、帯域制御装置120は、動作フラグ格納部121に格納された動作フラグにより処理装置11が処理を実行中か否かを判断し、処理装置11による処理が一時的に止まるタイミングで帯域制御を実行する。具体例を挙げると、画像読み取り(スキャン)処理や印刷(プリント)処理において、走査線の行(主走査)ごとに処理を実行し(アクティブ)、次の行へ移行(副走査)するために処理が止まる(非アクティブ)場合、非アクティブとなった時に帯域制御を実行する。 The operation flag indicates whether the corresponding processing device 11 is in operation. The bandwidth used by the processing device 11 cannot be changed while the processing device 11, which is a real-time device, is executing a process. Therefore, the bandwidth control device 120 determines whether the processing device 11 is executing a process based on the operation flag stored in the operation flag storage unit 121, and executes bandwidth control when the processing by the processing device 11 temporarily stops. As a specific example, in image reading (scanning) processing or printing (printing) processing, if processing is executed (active) for each row of scanning lines (main scan) and processing stops (inactive) to move to the next row (sub-scan), bandwidth control is executed when it becomes inactive.
カウンタ情報受信部122は、監視装置110から処理装置11、12のアクセス情報をデバイス間通信により受信する。帯域計算部123は、カウンタ情報受信部122により取得した処理装置11、12のアクセス情報を用いて、制御対象の処理装置11、12の使用帯域を計算する。具体的には、例えば、情報処理装置1の全てのアクセス主体によるメモリ50へのアクセス数と、メモリコントローラ40のポートごとのアクセス数とに基づいて、各ポートを使用する各機能ブロック10の伝送帯域が得られる。そして、メモリコントローラ40のポートごとのアクセス数および各機能ブロック10の伝送帯域と、各処理装置11のアクセス数とに基づいて、各処理装置11の使用帯域が得られる。また、機能ブロック10ごとの伝送帯域と、各機能ブロック10に含まれる各処理装置11の使用帯域とに基づいて、機能ブロック10ごとの処理装置12の総使用帯域が得られる。 The counter information receiving unit 122 receives access information of the processing devices 11 and 12 from the monitoring device 110 through inter-device communication. The bandwidth calculation unit 123 calculates the bandwidth usage of the processing devices 11 and 12 to be controlled using the access information of the processing devices 11 and 12 acquired by the counter information receiving unit 122. Specifically, for example, the transmission bandwidth of each functional block 10 using each port is obtained based on the number of accesses to the memory 50 by all access subjects of the information processing device 1 and the number of accesses for each port of the memory controller 40. Then, the bandwidth usage of each processing device 11 is obtained based on the number of accesses for each port of the memory controller 40, the transmission bandwidth of each functional block 10, and the number of accesses of each processing device 11. In addition, the total bandwidth usage of the processing device 12 for each functional block 10 is obtained based on the transmission bandwidth for each functional block 10 and the bandwidth usage of each processing device 11 included in each functional block 10.
設定判定部124は、帯域計算部123により計算された各処理装置11の使用帯域および各機能ブロック10の伝送帯域に基づき、各処理装置11および各機能ブロック10の現在の帯域設定を判定する。帯域設定の判定は、各処理装置11の使用帯域および各機能ブロック10の伝送帯域の計算値を予め定められた閾値と比較することにより行う。また、設定判定部124は、何れかの処理装置11に関して使用帯域が不足していると判定した場合、処理装置12の使用帯域を制限して処理装置11の使用帯域不足を解消するための処理装置12の処理におけるスループット設定値を生成する。スループット設定値の生成の詳細については後述する。 The setting determination unit 124 determines the current bandwidth setting of each processing device 11 and each functional block 10 based on the bandwidth used by each processing device 11 and the transmission bandwidth of each functional block 10 calculated by the bandwidth calculation unit 123. The bandwidth setting is determined by comparing the calculated values of the bandwidth used by each processing device 11 and the transmission bandwidth of each functional block 10 with a predetermined threshold value. Furthermore, when the setting determination unit 124 determines that the bandwidth used for any processing device 11 is insufficient, it generates a throughput setting value for the processing of the processing device 12 to limit the bandwidth used by the processing device 12 and resolve the insufficient bandwidth used by the processing device 11. The generation of the throughput setting value will be described later in detail.
また、設定判定部124は、動作フラグ格納部121に格納された動作フラグを参照して、帯域制御の対象である処理装置11の稼働状態を判断する。そして、設定判定部124は、制御対象の処理装置11による処理が非アクティブとなるタイミングで、この処理装置11の帯域制御を行うために適用される処理装置12のスループット設定値を切り替えるための切り替え信号を出力する。 The setting determination unit 124 also refers to the operation flag stored in the operation flag storage unit 121 to determine the operating state of the processing device 11 that is the target of bandwidth control. Then, the setting determination unit 124 outputs a switching signal for switching the throughput setting value of the processing device 12 that is applied to perform bandwidth control of the processing device 11 at the timing when the processing by the processing device 11 that is the target of control becomes inactive.
閾値情報格納部125は、設定判定部124が各処理装置11および各機能ブロック10の現在の帯域設定を判定するのに用いる閾値を保持する。閾値としては、同一の機能ブロック10内の処理装置11、12どうしの間で帯域制御を行う場合に処理装置11の使用帯域を判定するのに用いる第1の閾値と、異なる機能ブロック10の間で帯域制御を行う場合に機能ブロック10の伝送帯域を判定するのに用いる第2の閾値とが設けられる。閾値情報格納部125は、例えば、ROM(Read Only Memory)により実現される。 The threshold information storage unit 125 holds thresholds used by the setting determination unit 124 to determine the current bandwidth settings of each processing device 11 and each functional block 10. The thresholds provided are a first threshold used to determine the bandwidth used by the processing device 11 when bandwidth control is performed between the processing devices 11 and 12 in the same functional block 10, and a second threshold used to determine the transmission bandwidth of the functional block 10 when bandwidth control is performed between different functional blocks 10. The threshold information storage unit 125 is realized, for example, by a ROM (Read Only Memory).
設定値送信部126は、設定判定部124により生成されたスループット設定値を、使用帯域の制限対象の処理装置12に付加されたゲート部130へデバイス間通信により送信する。また、設定値送信部126は、設定判定部124から出力された切り替え信号を制御対象の処理装置12へ送信する。設定値格納部127は、設定判定部124により生成されたスループット設定値を保持する。 The setting value transmission unit 126 transmits the throughput setting value generated by the setting determination unit 124 to the gate unit 130 attached to the processing device 12 that is the target of the restriction of the bandwidth used, by device-to-device communication. The setting value transmission unit 126 also transmits the switching signal output from the setting determination unit 124 to the processing device 12 that is the target of control. The setting value storage unit 127 holds the throughput setting value generated by the setting determination unit 124.
帯域制御装置120において、動作フラグ格納部121および設定値格納部127は、例えば、SRAM(Static Random Access Memory)により実現される。カウンタ情報受信部122は、例えば、監視装置110と帯域制御装置120とを接続するバスに対応するバス・インターフェイスにより実現される。帯域計算部123および設定判定部124は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等のプロセッサにより実現される。閾値情報格納部125は、例えば、ROM(Read Only Memory)により実現される。設定値送信部126は、例えば、帯域制御装置120とゲート部130とを接続するバスに対応するバス・インターフェイスにより実現される。 In the bandwidth control device 120, the operation flag storage unit 121 and the setting value storage unit 127 are realized, for example, by a static random access memory (SRAM). The counter information receiving unit 122 is realized, for example, by a bus interface corresponding to the bus connecting the monitoring device 110 and the bandwidth control device 120. The bandwidth calculation unit 123 and the setting determination unit 124 are realized, for example, by a processor such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA). The threshold information storage unit 125 is realized, for example, by a read only memory (ROM). The setting value transmission unit 126 is realized, for example, by a bus interface corresponding to the bus connecting the bandwidth control device 120 and the gate unit 130.
<ゲート部130の構成>
図5は、ゲート部130の構成を示す図である。図5には、ゲート部130と他の装置との物理的な接続関係ではなく、非リアルタイム系装置である処理装置12による処理およびDMAC14によるDMA制御の動作に対するゲート部130の位置付けを示している。図5に示す例では、処理装置12は、処理対象のデータを読み込み、読み込んだデータに対し、処理1~処理nを順次実行する。ここで、処理1~処理nの各々は、処理対象のデータの最小単位(以下、「処理単位」と呼ぶ)ごとに行われる。また、処理1~処理nは、例えばパイプライン処理等により並列に実行しても良い。そして、処理装置12は、処理結果のデータをメモリ50に書き込む。
<Configuration of Gate Section 130>
FIG. 5 is a diagram showing the configuration of the gate unit 130. FIG. 5 shows the positioning of the gate unit 130 with respect to the processing by the processing device 12, which is a non-real-time device, and the operation of DMA control by the DMAC 14, rather than the physical connection relationship between the gate unit 130 and other devices. In the example shown in FIG. 5, the processing device 12 reads data to be processed and sequentially executes processes 1 to n on the read data. Here, each of processes 1 to n is performed for each minimum unit of data to be processed (hereinafter referred to as a "processing unit"). In addition, processes 1 to n may be executed in parallel, for example, by pipeline processing. Then, the processing device 12 writes the data resulting from the processing to the memory 50.
具体例を挙げると、処理装置12が画像処理(画像に対するフィルタ処理等)を実行する場合、図5に示す処理装置12は、n画素分のデータを読み込み、1画素(ピクセル)ずつn画素分の画像処理(処理1~処理n)を行う。この場合、1画素のデータが処理単位である。 As a specific example, when the processing device 12 executes image processing (such as filtering an image), the processing device 12 shown in FIG. 5 reads data for n pixels and performs image processing (processing 1 to processing n) for n pixels one pixel at a time. In this case, data for one pixel is the processing unit.
処理装置12におけるデータの読み込みは、DMAC14の制御により行われる(図5では、左端のDMAC14から処理1への矢印で示されている)。また、処理装置12からメモリ50へのデータの書き込みは、DMAC14の制御により行われる(図5では、処理nからゲート部130を経て右端のDMAC14に至る矢印で示されている)。したがって、図5に示す二つのDMAC14は、実際には、メモリ50に対してデータの読み書きを行う一つのDMAC14(図2参照)である。 Data reading in the processing device 12 is performed under the control of the DMAC 14 (indicated in FIG. 5 by an arrow from the DMAC 14 on the left side to process 1). Data writing from the processing device 12 to the memory 50 is performed under the control of the DMAC 14 (indicated in FIG. 5 by an arrow from process n through the gate unit 130 to the DMAC 14 on the right side). Therefore, the two DMACs 14 shown in FIG. 5 are actually one DMAC 14 (see FIG. 2) that reads and writes data from and to the memory 50.
図5に示すように、ゲート部130は、処理装置12とDMAC14との間に介在し、処理装置12の処理結果を、スループットを制御して、DMAC14へ送る。ゲート部130は、情報格納部131と、制御タイマ132とを備える。ゲート部130は、帯域制御装置120により生成されたスループット設定値を受信し、受信したスループット設定値にしたがって処理装置12による処理結果のデータの出力タイミングを制御する。これにより、処理装置12のメモリ・アクセスにおける使用帯域が制御される。また、ゲート部130には、帯域制御装置120から出力された切り替え信号が入力されている。ゲート部130は、この切り替え信号を入力したタイミングで、スループットの切り替えを実行する。 As shown in FIG. 5, the gate unit 130 is interposed between the processing device 12 and the DMAC 14, and controls the throughput of the processing results of the processing device 12 and sends them to the DMAC 14. The gate unit 130 includes an information storage unit 131 and a control timer 132. The gate unit 130 receives a throughput setting value generated by the bandwidth control device 120, and controls the output timing of the data of the processing results by the processing device 12 according to the received throughput setting value. This controls the bandwidth used in memory access by the processing device 12. The gate unit 130 also receives a switching signal output from the bandwidth control device 120. The gate unit 130 switches the throughput at the timing when this switching signal is input.
情報格納部131は、帯域制御装置120から受信したスループット設定値を格納し保持する。情報格納部131は、例えば、SRAMにより実現される。情報格納部131に格納されたスループット設定値は、処理装置12の処理結果の出力間隔をクロック数で示す情報である。制御タイマ132は、情報格納部131に格納されたスループット設定値およびクロック信号に基づいて、処理装置12の処理結果の出力間隔を制御するための時間(クロック数)を計測する。 The information storage unit 131 stores and holds the throughput setting value received from the bandwidth control device 120. The information storage unit 131 is realized, for example, by an SRAM. The throughput setting value stored in the information storage unit 131 is information indicating the output interval of the processing result of the processing device 12 in terms of the number of clocks. The control timer 132 measures the time (number of clocks) for controlling the output interval of the processing result of the processing device 12 based on the throughput setting value stored in the information storage unit 131 and the clock signal.
図5に示す例において、情報格納部131に格納されたスループット設定値が、1処理単位あたりのクロック数をNクロック(clk)に設定するものとする。そして、処理1~処理nの各処理が、1処理単位あたり1クロックで実行されるものとする。この場合、DMAC14、処理1、処理2、……、処理nおよびゲート部130の各々の間の各データ転送では、それぞれ、1クロックごとに1処理単位のデータが転送される。そして、ゲート部130からDMAC14へのデータ転送は、Nクロックごとに1処理単位のデータが転送される。これにより、処理装置12のメモリ・アクセスにおける使用帯域は、スループット設定値による制御を行わない場合の1/Nとなる。 In the example shown in FIG. 5, the throughput setting value stored in the information storage unit 131 sets the number of clocks per processing unit to N clocks (clk). Each of processes 1 to n is executed at one clock per processing unit. In this case, in each data transfer between the DMAC 14, process 1, process 2, ..., process n, and gate unit 130, data for one processing unit is transferred per clock. Data transfer from gate unit 130 to DMAC 14 transfers data for one processing unit per N clocks. As a result, the bandwidth used in memory access by the processing device 12 becomes 1/N of that when control based on the throughput setting value is not performed.
<帯域制御装置120の動作>
図6は、帯域制御装置120による帯域制御の手順を示すフローチャートである。帯域制御装置120は、まず、情報処理装置1を構成する複数の処理装置11の一つに着目し、着目した処理装置11が動作中か否かを調べる。以下の動作の説明において、着目した処理装置11を「IP(x)」と呼ぶ。なお、IP(x)の「x」は、0≦x≦mとなる値である。そして、IP(x)は、図3および図4を参照して説明した処理装置11であるIP0~IPmの何れかであることを示す。
<Operation of Bandwidth Control Device 120>
6 is a flowchart showing the procedure of bandwidth control by the bandwidth control device 120. The bandwidth control device 120 first focuses on one of the multiple processing devices 11 constituting the information processing device 1, and checks whether the focused processing device 11 is in operation. In the following explanation of the operation, the focused processing device 11 is called "IP(x)". Note that "x" in IP(x) is a value such that 0≦x≦m. IP(x) indicates that it is any one of IP0 to IPm, which are the processing devices 11 described with reference to FIGS. 3 and 4.
着目した処理装置11であるIP(x)が動作中でない場合(S601でNO)、帯域制御を行う必要はないため、現在の帯域設定を維持する(S602)。一方、IP(x)が動作中である場合(S601でYES)、帯域制御装置120は、現在のIP(x)の使用帯域が第1の閾値よりも大きいか否かを調べる。第1の閾値は、IP(x)に対する帯域制御のためにIP(x)と同一の機能ブロック10内の処理装置12の使用帯域を制限するか否かを判定するために設定された閾値である。処理装置11のメモリ・アクセスにおける使用帯域に対して設定される第1の閾値は、個別制御条件の一例である。 If IP(x), which is the processing device 11 of interest, is not in operation (NO in S601), there is no need to perform bandwidth control, so the current bandwidth setting is maintained (S602). On the other hand, if IP(x) is in operation (YES in S601), the bandwidth control device 120 checks whether the current bandwidth used by IP(x) is greater than the first threshold. The first threshold is a threshold set to determine whether to limit the bandwidth used by the processing device 12 in the same functional block 10 as IP(x) for bandwidth control of IP(x). The first threshold set for the bandwidth used in memory access by the processing device 11 is an example of an individual control condition.
IP(x)の使用帯域が第1の閾値よりも大きい場合(S603でYES)、IP(x)の使用帯域を増加させる必要はない。したがって、現在の帯域設定を維持する(S602)。一方、IP(x)の使用帯域が第1の閾値以下である場合(S603でNO)、IP(x)の使用帯域をさらに増加させる必要がある。そこで、帯域制御装置120は、次に現在のIP(x)の使用帯域が第2の閾値よりも大きいか否かを調べる。第2の閾値は、IP(x)に対する帯域制御のためにIP(x)と異なる機能ブロック10の伝送帯域を制限するか否かを判定するために設定された閾値である。第2の閾値は、第1の閾値よりも小さい値である。処理装置11のメモリ・アクセスにおける使用帯域に対して設定される第2の閾値は、全体制御条件の一例である。 If the bandwidth used by IP(x) is greater than the first threshold (YES in S603), there is no need to increase the bandwidth used by IP(x). Therefore, the current bandwidth setting is maintained (S602). On the other hand, if the bandwidth used by IP(x) is equal to or less than the first threshold (NO in S603), it is necessary to further increase the bandwidth used by IP(x). Therefore, the bandwidth control device 120 next checks whether the current bandwidth used by IP(x) is greater than the second threshold. The second threshold is a threshold set to determine whether to limit the transmission bandwidth of a functional block 10 different from IP(x) for bandwidth control of IP(x). The second threshold is a value smaller than the first threshold. The second threshold set for the bandwidth used in memory access of the processing device 11 is an example of an overall control condition.
IP(x)の使用帯域が第2の閾値よりも大きい場合(S604でYES)、IP(x)の使用帯域を増加させるために、IP(x)と同一の機能ブロック10内の処理装置12の使用帯域を制限するだけで足りる。そこで、帯域制御装置120は、IP(x)と同一の機能ブロック10内の処理装置12のうち、使用帯域を制限する処理装置12を選択し、選択した処理装置12に対してスループットを低下させるためのスループット設定値を生成する。これにより、IP(x)を含む機能ブロック10内での帯域制御が行われる(S605) If the bandwidth used by IP(x) is greater than the second threshold (YES in S604), it is sufficient to limit the bandwidth used by the processing device 12 in the same functional block 10 as IP(x) in order to increase the bandwidth used by IP(x). Therefore, the bandwidth control device 120 selects the processing device 12 for which the bandwidth is to be limited among the processing devices 12 in the same functional block 10 as IP(x), and generates a throughput setting value for lowering the throughput for the selected processing device 12. This performs bandwidth control within the functional block 10 including IP(x) (S605).
IP(x)の使用帯域が第2の閾値以下である場合(S604でNO)、IP(x)の使用帯域を増加させるために、IP(x)と同一の機能ブロック10内の処理装置12の使用帯域を制限するだけでは足りず、異なる機能ブロック10の伝送帯域を制限する必要がある。そこで、帯域制御装置120は、IP(x)と同一の機能ブロック10内の処理装置12を制限対象装置とする帯域制御に加え、IP(x)と異なる機能ブロック10の処理装置12のうち、使用帯域を制限する処理装置12を選択し、選択した処理装置12に対してスループットを低下させるためのスループット設定値を生成する。これにより、機能ブロック10間で使用帯域を融通する、情報処理装置1のシステム全体での帯域制御が行われる(S606)。 If the bandwidth used by IP(x) is equal to or less than the second threshold (NO in S604), in order to increase the bandwidth used by IP(x), it is not enough to limit the bandwidth used by the processing device 12 in the same functional block 10 as IP(x); it is necessary to limit the transmission bandwidth of different functional blocks 10. Therefore, in addition to bandwidth control for the processing device 12 in the same functional block 10 as IP(x) as the device to be limited, the bandwidth control device 120 selects a processing device 12 to limit the bandwidth used among the processing devices 12 in functional blocks 10 other than IP(x), and generates a throughput setting value for reducing the throughput for the selected processing device 12. This allows bandwidth use between functional blocks 10, and performs bandwidth control for the entire system of the information processing device 1 (S606).
なお、上記の動作例では、S604において、IP(x)の使用帯域と第1の閾値および第2の閾値とを比較し、比較結果に応じて、IP(x)を含む機能ブロック10内での帯域制御またはシステム全体での帯域制御を行った。これに対し、使用帯域が不足するIP(x)に対し、まず同一の機能ブロック10内での帯域制御を行い、それでもIP(x)の使用帯域不足を解消しない場合に、改めてIP(x)と異なる機能ブロック10を対象とする帯域制御を行うようにしても良い。また、上記の動作例では、第1の閾値および第2の閾値を何れもIP(x)の使用帯域に対して設定した。これに対し、第2の閾値は、IP(x)を含む機能ブロック10自体の伝送帯域に対して設定し、機能ブロック10が接続されたメモリコントローラ40のポートの伝送帯域が第2の閾値以下である場合にシステム全体での帯域制御を行うようにしても良い。 In the above operation example, in S604, the bandwidth used by IP(x) is compared with the first threshold and the second threshold, and depending on the comparison result, bandwidth control is performed within the functional block 10 including IP(x) or the entire system. In contrast, for IP(x) with a bandwidth shortage, bandwidth control is first performed within the same functional block 10, and if the bandwidth shortage of IP(x) is still not resolved, bandwidth control may be performed again for a functional block 10 other than IP(x). In addition, in the above operation example, both the first threshold and the second threshold are set for the bandwidth used by IP(x). In contrast, the second threshold may be set for the transmission bandwidth of the functional block 10 itself including IP(x), and if the transmission bandwidth of the port of the memory controller 40 to which the functional block 10 is connected is equal to or less than the second threshold, bandwidth control may be performed for the entire system.
<使用帯域を制限する対象となる処理装置12の選択方法の具体例>
帯域制御装置120は、図6のS605およびS606の動作において、使用帯域を制限する処理装置12(以下、「制限対象装置」と呼ぶ)を選択してスループット設定値を生成した。この制限対象装置の選択方法の例を説明する。ここでは、図1に示した装置構成で、画像読み取りブロック10Aの処理装置11である画像読み取り装置11aの使用帯域が不足する場合と、印刷ブロック10Cの処理装置11である印刷装置11cの使用帯域が不足する場合について、制限対象装置を選択する例を説明する。
<Specific example of a method for selecting a processing device 12 to be limited in bandwidth usage>
In the operations of S605 and S606 in Fig. 6, the bandwidth control device 120 selects a processing device 12 (hereinafter referred to as a "restriction target device") for which the bandwidth usage is to be restricted, and generates a throughput setting value. An example of a method for selecting a restriction target device will be described. Here, an example of selecting a restriction target device will be described for a case in which the bandwidth usage of the image reading device 11a, which is the processing device 11 in the image reading block 10A, is insufficient, and a case in which the bandwidth usage of the printing device 11c, which is the processing device 11 in the printing block 10C, is insufficient, in the device configuration shown in Fig. 1.
一例として、使用帯域が不足する処理装置11の種類に応じて、制限対象装置として選択する処理装置12の順番(選択順)を予め定めておくものとする。本実施形態では、第1段階の帯域制御として、機能ブロック10内で使用帯域を融通し、第2段階の帯域制御として、他の機能ブロック10との間で伝送帯域の割り当てを変更することとした。したがって、第1段階の帯域制御において、使用帯域が不足する処理装置11と同一の機能ブロック10に複数の処理装置12がある場合、この複数の処理装置12に対して制限対象装置としての選択順を定めておく。また、第2段階の帯域制御において、使用帯域が不足する処理装置11とは異なる機能ブロック10に複数の処理装置12がある場合、この複数の処理装置12に対して制限対象装置としての選択順を定めておく。なお、制限対象装置の選択順の決定方法は特に限定しない。例えば、機能ブロック10の動作時に付加の低い処理装置12から順に制限対象装置とするように選択順を定めても良い。 As an example, the order (selection order) of the processing devices 12 to be selected as the restriction target devices is determined in advance according to the type of processing device 11 that is lacking in the bandwidth used. In this embodiment, the first stage of bandwidth control involves sharing the bandwidth used within the functional block 10, and the second stage of bandwidth control involves changing the allocation of the transmission bandwidth between the functional blocks 10. Therefore, in the first stage of bandwidth control, if there are multiple processing devices 12 in the same functional block 10 as the processing device 11 that is lacking in the bandwidth used, the selection order of the multiple processing devices 12 as the restriction target devices is determined. Also, in the second stage of bandwidth control, if there are multiple processing devices 12 in a functional block 10 different from the processing device 11 that is lacking in the bandwidth used, the selection order of the multiple processing devices 12 as the restriction target devices is determined. Note that the method of determining the selection order of the restriction target devices is not particularly limited. For example, the selection order may be determined so that the processing devices 12 with the lowest load during the operation of the functional block 10 are selected as the restriction target devices in order.
また、使用帯域が不足する処理装置11とは異なる機能ブロック10が複数ある場合、何れの機能ブロック10から制限対象装置を選択するかを特定するため、制限対象装置の選択対象となる機能ブロック10の選択順を定めておいても良い。この場合、リアルタイム系装置である処理装置11を有しない機能ブロック10が先に選択されるように選択順を定めても良い。また、使用帯域が不足する処理装置11が含まれる機能ブロック10の動作時に並列に実行されることの無い機能ブロック10が先に選択されるように選択順を定めても良い。 In addition, when there are multiple functional blocks 10 that are different from the processing device 11 that is insufficient in bandwidth usage, a selection order of the functional blocks 10 that are to be selected as the restricted device may be determined in order to identify which functional block 10 to select as the restricted device. In this case, the selection order may be determined so that the functional block 10 that does not have a processing device 11 that is a real-time device is selected first. In addition, the selection order may be determined so that the functional block 10 that is not executed in parallel during the operation of the functional block 10 that includes the processing device 11 that is insufficient in bandwidth usage is selected first.
図7は、制限対象装置の選択順の設定例を示す図である。帯域制御装置120は、図7に示すようなテーブルを保持しておき、制限対象装置の選択時に参照しても良い。図7に示す例では、図1に示した画像読み取りブロック10Aの画像読み取り装置11aに対して第1段階の帯域制御を行う場合、印刷ブロック10Cの印刷装置11cに対して第1段階の帯域制御を行う場合、第2段階の帯域制御を行う場合の各々に関して、制限対象装置の選択順が示されている。図7に示す例において、図1に示した処理装置12a~12dの符号に付した添え字a~dを用い、各処理装置12を「IP(a)」、「IP(b)」、「IP(c)」、「IP(d)」と記載している。例えば、図7のIP(a)は、図1に示した処理装置12aに対応する。 Figure 7 is a diagram showing an example of the selection order of devices to be restricted. The bandwidth control device 120 may hold a table as shown in Figure 7 and refer to it when selecting devices to be restricted. In the example shown in Figure 7, the selection order of devices to be restricted is shown for the first stage of bandwidth control for the image reading device 11a of the image reading block 10A shown in Figure 1, the first stage of bandwidth control for the printing device 11c of the printing block 10C, and the second stage of bandwidth control. In the example shown in Figure 7, the subscripts a to d are used to the reference characters of the processing devices 12a to 12d shown in Figure 1, and each processing device 12 is described as "IP(a)", "IP(b)", "IP(c)", and "IP(d)". For example, IP(a) in Figure 7 corresponds to the processing device 12a shown in Figure 1.
また、この例では、第2段階の帯域制御を行う場合、リアルタイム系装置である処理装置11を有しない画像処理ブロック10Bの処理装置12b、12c(図7ではIP(b)、IP(c))が先に制限対象装置として選択される。画像処理ブロック10Bには二つの処理装置12b、12cがあるため、これらの処理装置12b、12cに対しても制限対象装置としての選択順が定められる。また、図7に示す例では、処理装置12b(IP(b))、処理装置12c(IP(c))の順で制限対象装置に選択される。 In addition, in this example, when performing the second stage bandwidth control, the processing devices 12b and 12c (IP(b), IP(c) in FIG. 7) of the image processing block 10B, which does not have the processing device 11, which is a real-time device, are selected first as devices to be restricted. Since the image processing block 10B has two processing devices 12b and 12c, the selection order as devices to be restricted is also determined for these processing devices 12b and 12c. In the example shown in FIG. 7, the processing device 12b (IP(b)) is selected as the device to be restricted first, followed by the processing device 12c (IP(c)).
図1および図7に示す例において、画像読み取りブロック10Aの処理装置11である画像読み取り装置11aの使用帯域が不足する場合、帯域制御装置120は、まず画像読み取りブロック10Aを対象として第1段階の帯域制御を行う。この場合、帯域制御装置120は、画像読み取り装置11aと同じ画像読み取りブロック10Aの処理装置12a(IP(a))を制限対象装置として選択する。 In the examples shown in Figures 1 and 7, when the available bandwidth of the image reading device 11a, which is the processing device 11 of the image reading block 10A, is insufficient, the bandwidth control device 120 first performs a first stage of bandwidth control on the image reading block 10A. In this case, the bandwidth control device 120 selects the processing device 12a (IP(a)) of the same image reading block 10A as the image reading device 11a as the device to be restricted.
第1段階の帯域制御によっても画像読み取り装置11aの使用帯域不足が解消しない場合、帯域制御装置120は、画像処理ブロック10Bを対象として第2段階の帯域制御を行う。この場合、帯域制御装置120は、画像処理ブロック10Bの処理装置12b、12cのうち、図7に示す選択順に従い、まず処理装置12b(IP(b))を制限対象装置として選択する。処理装置12bを制限対象装置とした帯域制御によっても画像読み取り装置11aの使用帯域不足が解消しない場合、帯域制御装置120は、処理装置12c(IP(c))を制限対象装置として選択する。 If the bandwidth shortage of image reading device 11a is not resolved even by the first stage of bandwidth control, the bandwidth control device 120 performs a second stage of bandwidth control on image processing block 10B. In this case, the bandwidth control device 120 first selects processing device 12b (IP(b)) as the device to be restricted from among processing devices 12b and 12c of image processing block 10B in the selection order shown in FIG. 7. If the bandwidth shortage of image reading device 11a is not resolved even by bandwidth control with processing device 12b as the device to be restricted, the bandwidth control device 120 selects processing device 12c (IP(c)) as the device to be restricted.
処理装置12cを制限対象装置とした帯域制御によっても画像読み取り装置11aの使用帯域不足が解消しない場合、帯域制御装置120は、残りの機能ブロック10である印刷ブロック10Cを対象として第2段階の帯域制御を行う。この場合、帯域制御装置120は、印刷ブロック10Cの処理装置12d(IP(d))を制限対象装置として選択する。 If the bandwidth shortage of the image reading device 11a is not resolved even by bandwidth control with the processing device 12c as the device to be restricted, the bandwidth control device 120 performs a second stage of bandwidth control with the printing block 10C, which is the remaining functional block 10. In this case, the bandwidth control device 120 selects the processing device 12d (IP(d)) of the printing block 10C as the device to be restricted.
また、図1および図7に示す例において、印刷ブロック10Cの処理装置11である印刷装置11cの使用帯域が不足する場合、帯域制御装置120は、まず印刷ブロック10Cを対象として第1段階の帯域制御を行う。この場合、帯域制御装置120は、印刷装置11cと同じ印刷ブロック10Cの処理装置12d(IP(d))を制限対象装置として選択する。 In the example shown in FIG. 1 and FIG. 7, if the available bandwidth of the printing device 11c, which is the processing device 11 of the printing block 10C, is insufficient, the bandwidth control device 120 first performs the first stage of bandwidth control on the printing block 10C. In this case, the bandwidth control device 120 selects the processing device 12d (IP(d)) of the same printing block 10C as the printing device 11c as the device to be restricted.
第1段階の帯域制御によっても印刷装置11cの使用帯域不足が解消しない場合、帯域制御装置120は、画像処理ブロック10Bを対象として第2段階の帯域制御を行う。この場合、画像読み取り装置11aの使用帯域不足に対する帯域制御の場合と同様に、帯域制御装置120は、まず処理装置12b(IP(b))を制限対象装置として選択する。そして、処理装置12bを制限対象装置とした帯域制御によっても印刷装置11cの使用帯域不足が解消しない場合、帯域制御装置120は、処理装置12c(IP(c))を制限対象装置として選択する。 If the bandwidth shortage of printing device 11c is not resolved even by the first stage of bandwidth control, the bandwidth control device 120 performs a second stage of bandwidth control on image processing block 10B. In this case, as with the bandwidth control for the bandwidth shortage of image reading device 11a, the bandwidth control device 120 first selects processing device 12b (IP(b)) as the device to be restricted. Then, if the bandwidth shortage of printing device 11c is not resolved even by the bandwidth control with processing device 12b as the device to be restricted, the bandwidth control device 120 selects processing device 12c (IP(c)) as the device to be restricted.
処理装置12cを制限対象装置とした帯域制御によっても印刷装置11cの使用帯域不足が解消しない場合、帯域制御装置120は、残りの機能ブロック10である画像読み取りブロック10Aを対象として第2段階の帯域制御を行う。この場合、帯域制御装置120は、画像読み取りブロック10Aの処理装置12a(IP(a))を制限対象装置として選択する。 If the insufficient bandwidth used by the printing device 11c cannot be resolved by bandwidth control with the processing device 12c as the device to be restricted, the bandwidth control device 120 performs a second stage of bandwidth control on the remaining functional block 10, the image reading block 10A. In this case, the bandwidth control device 120 selects the processing device 12a (IP(a)) of the image reading block 10A as the device to be restricted.
図1および図7に示す例では、リアルタイム系装置である処理装置11を有する画像読み取りブロック10Aおよび印刷ブロック10Cのどちらも非リアルタイム装置である処理装置12を一つのみ有している。そのため、第1段階の帯域制御では、何れも制限対象装置として選択される処理装置12が特定されていた。これに対し、使用帯域が不足する処理装置11と同一の機能ブロック10に複数の処理装置12が存在する場合、図7に示した処理装置12b、12cと同様に、制限対象装置としての選択順が予め設定される。 In the examples shown in Figures 1 and 7, both the image reading block 10A and the printing block 10C, which have the processing device 11 that is a real-time device, have only one processing device 12 that is a non-real-time device. Therefore, in the first stage of bandwidth control, the processing device 12 to be selected as the device to be restricted was specified. In contrast, when multiple processing devices 12 exist in the same functional block 10 as the processing device 11 that has a shortage of available bandwidth, the selection order for the devices to be restricted is preset, similar to the processing devices 12b and 12c shown in Figure 7.
また、図1および図7に示す例では、リアルタイム系装置である処理装置11を有する機能ブロック10が二つのみであり、処理装置11を有しない機能ブロック10が一つのみであった。このため、第2段階の帯域制御を行う場合に、まず処理装置11を有しない機能ブロック10を対象として制限対象装置を選択し、さらに帯域制御を行う場合に、残りの処理装置11を有する機能ブロック10を対象として制限対象装置を選択した。これに対し、処理装置11を有しない機能ブロック10が複数ある場合、帯域制御装置120が制御対象装置を選択する機能ブロック10の順番を予め決めておく。同様に、処理装置11を有する機能ブロック10が三つ以上ある場合も、帯域制御装置120が制御対象装置を選択する機能ブロック10の順番を予め決めておく。また、第2段階の帯域制御を行う際に、機能ブロック10ごとに制限対象装置を選択するのではなく、使用帯域が不足する処理装置11とは異なる全ての機能ブロック10の処理装置12を対象として制限対象装置の選択順を決めておいても良い。 In the example shown in FIG. 1 and FIG. 7, there are only two functional blocks 10 having a processing device 11, which is a real-time device, and only one functional block 10 having no processing device 11. Therefore, when performing the second-stage bandwidth control, the functional blocks 10 not having a processing device 11 are first selected as the restriction target devices, and when performing further bandwidth control, the remaining functional blocks 10 having the processing devices 11 are selected as the restriction target devices. In contrast, when there are multiple functional blocks 10 not having a processing device 11, the order of the functional blocks 10 from which the bandwidth control device 120 selects the control target devices is determined in advance. Similarly, when there are three or more functional blocks 10 having a processing device 11, the order of the functional blocks 10 from which the bandwidth control device 120 selects the control target devices is determined in advance. In addition, when performing the second-stage bandwidth control, instead of selecting the restriction target device for each functional block 10, the selection order of the restriction target devices may be determined for the processing devices 12 of all functional blocks 10 other than the processing device 11 that has a shortage of bandwidth.
以上、本発明の実施形態について説明したが、本発明の技術的範囲は上記実施形態には限定されない。例えば、上記の実施形態では、図7に示すテーブルを参照して制限対象装置の選択順を説明したが、帯域制御装置120は、図7に示すようなテーブルを参照して制限対象装置を選択しても良いし、そのようなテーブルを用意せず、予め定められた規則に従って制限対象装置を選択しても良い。また、図1に示した構成例では、本実施形態を画像処理装置に本実施形態を適用した例を示したが、本実施形態は、図1に示す例には限定されず、機能ごとに設けられた複数の機能ブロック10を有する種々の情報処理装置に対して適用し得る。その他、本発明の技術思想の範囲から逸脱しない様々な変更や構成の代替は、本発明に含まれる。 Although the embodiment of the present invention has been described above, the technical scope of the present invention is not limited to the above embodiment. For example, in the above embodiment, the selection order of the restriction target devices was described with reference to the table shown in FIG. 7, but the band control device 120 may select the restriction target devices with reference to a table such as that shown in FIG. 7, or may select the restriction target devices according to predetermined rules without preparing such a table. In addition, in the configuration example shown in FIG. 1, an example of applying this embodiment to an image processing device is shown, but this embodiment is not limited to the example shown in FIG. 1 and may be applied to various information processing devices having multiple functional blocks 10 provided for each function. In addition, various modifications and alternative configurations that do not deviate from the scope of the technical concept of the present invention are included in the present invention.
1、2…情報処理装置、10…機能ブロック、11、12…処理装置、13…インターコネクト、14…DMAC、20…CPU、30…キャッシュ・コヒーレンシ・インターコネクト、40…メモリコントローラ、50…メモリ、100…メモリ・アクセス・システム、110…監視装置、111…フィルタ、112…ポート別カウンタ、113…リアルタイム系装置別カウンタ、114…全体帯域カウンタ、115…カウンタ情報送信部、120…帯域制御装置、121…動作フラグ格納部、122…カウンタ情報受信部、123…帯域計算部、124…設定判定部、125…閾値情報格納部、126…設定値送信部、127…設定値格納部、130…ゲート部、131…情報格納部、132…制御タイマ 1, 2...information processing device, 10...functional block, 11, 12...processing device, 13...interconnect, 14...DMAC, 20...CPU, 30...cache coherency interconnect, 40...memory controller, 50...memory, 100...memory access system, 110...monitoring device, 111...filter, 112...port counter, 113...real-time device counter, 114...total bandwidth counter, 115...counter information transmission unit, 120...bandwidth control device, 121...operation flag storage unit, 122...counter information reception unit, 123...bandwidth calculation unit, 124...setting judgment unit, 125...threshold information storage unit, 126...setting value transmission unit, 127...setting value storage unit, 130...gate unit, 131...information storage unit, 132...control timer
Claims (8)
前記メモリへのアクセス主体の一つであり、非リアルタイム処理を行う第2の処理装置と、
帯域制御を行う帯域制御装置と、を備え、
前記帯域制御装置は、
何れかの前記第1の処理装置において前記メモリにアクセスするために当該第1の処理装置に割り当てられた帯域が第1の閾値よりも小さい場合、当該第1の処理装置と同一のポートを使用する特定の前記第2の処理装置において前記メモリにアクセスするために当該第2の処理装置に割り当てられた帯域を制限し、当該第1の処理装置に割り当てる帯域を増加させる帯域制御を行い、
前記特定の第2の処理装置に割り当てられた帯域を制限した状態で当該特定の第2の処理装置と同一のポートを使用する前記第1の処理装置に割り当てられた帯域が第2の閾値よりも小さい場合、当該特定の第2の処理装置とは異なるポートを使用する前記第2の処理装置に割り当てられた帯域を制限し、当該第1の処理装置に割り当てる帯域を増加させる帯域制御を行うことを特徴とする、メモリ・アクセス・システム。 a first processing device which is one of the devices that access the memory and performs real-time processing;
a second processing device which is one of the devices that access the memory and performs non-real-time processing;
A bandwidth control device that performs bandwidth control,
The bandwidth control device includes:
when a bandwidth allocated to any one of the first processing devices for accessing the memory is smaller than a first threshold value, performing bandwidth control to limit a bandwidth allocated to a specific second processing device using the same port as the first processing device for accessing the memory and to increase a bandwidth allocated to the first processing device ;
A memory access system characterized in that, when the bandwidth allocated to the specific second processing device is restricted and the bandwidth allocated to the first processing device using the same port as the specific second processing device is smaller than a second threshold value, bandwidth control is performed to restrict the bandwidth allocated to the second processing device using a port different from the specific second processing device and increase the bandwidth allocated to the first processing device .
同一のポートから前記メモリにアクセスするアクセス主体である一または複数の処理装置を含み、当該一または複数の処理装置が、リアルタイム処理を行う第1の処理装置および非リアルタイム処理を行う第2の処理装置のいずれか一方または両方である複数のブロックと、
帯域制御を行う帯域制御装置と、を備え、
前記帯域制御装置は、
前記第1の処理装置および前記第2の処理装置の両方を含む前記ブロックにおいて、当該第1の処理装置において前記メモリにアクセスするために当該第1の処理装置に割り当てられた帯域が予め定められた第1の閾値よりも小さい場合に、当該ブロックに含まれる当該第2の処理装置において前記メモリにアクセスするために当該第2の処理装置に割り当てられた帯域を制限し、当該第1の処理装置に割り当てる帯域を増加させる帯域制御を行い、
前記第1の処理装置を含む前記ブロックにおいて、当該ブロックに含まれる処理装置が使用するポートに対して伝送可能に割り当てられた帯域が予め定められた第2の閾値よりも小さい場合に、当該ブロックとは異なるブロックに含まれる前記第2の処理装置に割り当てられた帯域を制限し、当該第1の処理装置に割り当てる帯域を増加させる帯域制御を行うことを特徴とする、情報処理装置。 Memory,
a plurality of blocks including one or more processing devices that are access subjects that access the memory from a same port, the one or more processing devices being either or both of a first processing device that performs real-time processing and a second processing device that performs non-real-time processing;
A bandwidth control device that performs bandwidth control,
The bandwidth control device includes:
performing bandwidth control in the block including both the first processing device and the second processing device, when a bandwidth allocated to the first processing device for accessing the memory in the first processing device is smaller than a predetermined first threshold, by limiting a bandwidth allocated to the second processing device included in the block for accessing the memory and increasing a bandwidth allocated to the first processing device ;
An information processing device characterized in that, in the block including the first processing device, when the bandwidth allocated for transmission to a port used by the processing device included in the block is smaller than a predetermined second threshold, the information processing device performs bandwidth control to limit the bandwidth allocated to the second processing device included in a block different from the first processing device and to increase the bandwidth allocated to the first processing device .
前記帯域制御装置は、前記特定の機能における処理が一時的に止まる際に、前記第2の処理装置に割り当てられた帯域の制御を行うことを特徴とする、請求項5に記載の情報処理装置。 Each of the blocks realizes a specific function by one or more of the processing devices included in the block;
6. The information processing apparatus according to claim 5, wherein said bandwidth control device controls the bandwidth allocated to said second processing apparatus when the processing in said specific function is temporarily stopped.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2020119174A JP7625802B2 (en) | 2020-07-10 | 2020-07-10 | MEMORY ACCESS SYSTEM AND INFORMATION PROCESSING APPARATUS |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2020119174A JP7625802B2 (en) | 2020-07-10 | 2020-07-10 | MEMORY ACCESS SYSTEM AND INFORMATION PROCESSING APPARATUS |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2022015964A JP2022015964A (en) | 2022-01-21 |
| JP7625802B2 true JP7625802B2 (en) | 2025-02-04 |
Family
ID=80121093
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2020119174A Active JP7625802B2 (en) | 2020-07-10 | 2020-07-10 | MEMORY ACCESS SYSTEM AND INFORMATION PROCESSING APPARATUS |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7625802B2 (en) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006189919A (en) | 2004-12-28 | 2006-07-20 | Canon Inc | Electronic device, control method, and computer program |
| JP2014160341A (en) | 2013-02-19 | 2014-09-04 | Ricoh Co Ltd | Data processing apparatus and data processing method |
| JP2018120490A (en) | 2017-01-26 | 2018-08-02 | キヤノン株式会社 | Memory access system, control method thereof, program, and image forming apparatus |
| JP2019212027A (en) | 2018-06-05 | 2019-12-12 | キヤノン株式会社 | Image processing system, control method therefor, and program |
-
2020
- 2020-07-10 JP JP2020119174A patent/JP7625802B2/en active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006189919A (en) | 2004-12-28 | 2006-07-20 | Canon Inc | Electronic device, control method, and computer program |
| JP2014160341A (en) | 2013-02-19 | 2014-09-04 | Ricoh Co Ltd | Data processing apparatus and data processing method |
| JP2018120490A (en) | 2017-01-26 | 2018-08-02 | キヤノン株式会社 | Memory access system, control method thereof, program, and image forming apparatus |
| JP2019212027A (en) | 2018-06-05 | 2019-12-12 | キヤノン株式会社 | Image processing system, control method therefor, and program |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2022015964A (en) | 2022-01-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10241721B2 (en) | Image processing device and image processing method | |
| CN105260331B (en) | A kind of dual bus Memory Controller Hub | |
| US20120042105A1 (en) | Bus arbitration apparatus | |
| US20140104967A1 (en) | Inter-memory data transfer control unit | |
| US8838862B2 (en) | Data transfer device, method of transferring data, and image forming apparatus | |
| US20120042110A1 (en) | Bus bandwidth monitoring device and bus bandwidth monitoring method | |
| JP6981057B2 (en) | Data transfer device and data transfer method | |
| US9070201B2 (en) | Image processing apparatus | |
| JP2006227836A (en) | Data transfer system and data transfer method | |
| EP1880297B1 (en) | Data transfer arbitration apparatus and data transfer arbitration method | |
| JP7625802B2 (en) | MEMORY ACCESS SYSTEM AND INFORMATION PROCESSING APPARATUS | |
| JP5418193B2 (en) | Arbitration device, image processing device, and image forming system | |
| CN110362519B (en) | Interface device and interface method | |
| US9767054B2 (en) | Data transfer control device and memory-containing device | |
| JP5360594B2 (en) | DMA transfer apparatus and method | |
| US11232027B2 (en) | Memory control apparatus, memory apparatus, information processing system, and memory control method | |
| CN113900978B (en) | Data transmission method, device and chip | |
| JP2021027435A (en) | Network control device, image forming apparatus, method for controlling network control device, and program for controlling network control device | |
| US10289581B2 (en) | Information processing device, information processing method, and recording media | |
| JP2014013506A (en) | Information processing apparatus, control method, and program | |
| KR20070082835A (en) | Direct Memory Access Controls and Methods | |
| JP2014154000A (en) | Memory control device, and control method and control program thereof | |
| JP3747020B2 (en) | Crossbar mediation system | |
| JP2021158490A (en) | Imaging apparatus and control method | |
| JP2007226374A (en) | Data processing device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230621 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240214 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240402 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240529 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240820 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20241017 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20241224 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250106 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7625802 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |