JP2019200732A - Data processing device, bandwidth guarantee method in data processing device, and program - Google Patents
Data processing device, bandwidth guarantee method in data processing device, and program Download PDFInfo
- Publication number
- JP2019200732A JP2019200732A JP2018096517A JP2018096517A JP2019200732A JP 2019200732 A JP2019200732 A JP 2019200732A JP 2018096517 A JP2018096517 A JP 2018096517A JP 2018096517 A JP2018096517 A JP 2018096517A JP 2019200732 A JP2019200732 A JP 2019200732A
- Authority
- JP
- Japan
- Prior art keywords
- band
- limit threshold
- priority
- threshold
- detected
- 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.)
- Pending
Links
Images
Abstract
Description
本発明は、データ処理装置とデータ処理装置における帯域保証方法、及びプログラムに関するものである。 The present invention relates to a data processing device, a bandwidth guarantee method in the data processing device, and a program.
近年、電子写真プロセスの高速化に伴い、デジタル複合機のコントローラの処理速度要求が高まっている。また、半導体プロセスの進化に伴い、スキャン、プリント、レンダリングといった各種画像処理機能及びシステム制御機能がSoC(System on Chip)として1つのチップに集約されるようになっている。同様に、SoCに接続されるDRAM等のメモリも1つのチップに集約されてきている。よって、多数の機能が一つのメモリに対して同時に、かつ高速でアクセスするようになり、メモリ帯域が逼迫している。 In recent years, with the speeding up of the electrophotographic process, the processing speed requirement of the controller of the digital multi-function peripheral is increasing. Further, along with the evolution of semiconductor processes, various image processing functions such as scanning, printing, and rendering and system control functions are integrated into one chip as SoC (System on Chip). Similarly, memories such as DRAMs connected to the SoC have been integrated into one chip. Therefore, a large number of functions access a single memory simultaneously and at high speed, and the memory bandwidth is tight.
しかしながら、このような状況であっても、スキャン画像処理、プリント画像処理、UI描画処理といったリアルタイム性を要する処理では、処理に必要なメモリ帯域を保証することが求められる。リアルタイム処理のメモリ帯域を保証する方法としては、システムバスを介してメモリに接続されるバスマスタのアクセスを、各バスマスタの優先度を基にアービトレーションする手法がよく知られる。即ち、帯域保証が必要なバスマスタに対しては高い優先度を付加することで、そのバスマスタは、優先的にメモリ帯域を使用することが可能となる。 However, even in such a situation, it is required to guarantee a memory bandwidth necessary for processing in processing that requires real-time properties such as scan image processing, print image processing, and UI drawing processing. As a method for guaranteeing a memory bandwidth for real-time processing, a method of arbitrating access of a bus master connected to a memory via a system bus based on the priority of each bus master is well known. That is, by adding a high priority to a bus master that requires bandwidth guarantee, the bus master can use the memory bandwidth preferentially.
ところで、デジタル複合機の生産性を高めるためには、非リアルタイム処理であっても、可能な限りメモリ帯域を付与することで、システム全体の処理速度が低下しないようにすることが求められる。しかしながら、上述の優先度を付加するバスアービトレーションでは、高い優先度が付加されたリアルタイム処理用のバスマスタが、自身の動作中であってもメモリ帯域を占有するという問題が生じてしまう可能性がある。 By the way, in order to increase the productivity of the digital multi-function peripheral, it is required to prevent the processing speed of the entire system from being lowered by providing a memory bandwidth as much as possible even in non-real-time processing. However, in the bus arbitration to which the above-described priority is added, there is a possibility that the bus master for real-time processing to which the high priority is added occupies a memory band even during its own operation. .
従来、このような問題に対して、例えば特許文献1では、高い優先度に設定されたバスマスタであっても、一定以上帯域を占有した場合は、そのバスマスタによるアクセスを制限するという手法が記載されている。このような手法を採用することにより、リアルタイム処理などを行う高い優先度のバスマスタの帯域を保証しつつ、非リアルタイム処理などを行う低い優先度のバスマスタに対しても効率よくメモリアクセスさせることが可能となる。 Conventionally, for example, Patent Document 1 describes a technique for restricting access by a bus master set to a high priority when such a problem occupies a certain band or more when the band occupies a certain bandwidth or more. ing. By adopting such a method, it is possible to efficiently access memory even to low-priority bus masters that perform non-real-time processing while guaranteeing the bandwidth of high-priority bus masters that perform real-time processing and the like. It becomes.
しかしながら、近年の集約されたメモリ、バスシステムでは、リアルタイム処理用のバスマスタが同時に複数存在するため、従来のように優先度を付加するだけでは、高い優先度のバスマスタ同士のアクセス競合時に帯域保証を行うことができない場合がある。 However, in recent integrated memory and bus systems, there are multiple real-time bus masters at the same time. Therefore, simply adding priority as in the prior art guarantees bandwidth when there is an access conflict between high-priority bus masters. It may not be possible.
一方で、SoCに搭載されるSRAM等のバッファメモリ容量が増えていることから、リアルタイム処理用のバスマスタであっても、バッファの空き状況等によっては占有するメモリ帯域を抑えることが可能である。しかしながら、従来の優先度が固定されたバスシステムでは、各バスマスタの動作状況に合わせて、効率よくメモリ帯域を配分することができないという課題があった。 On the other hand, since the buffer memory capacity of an SRAM or the like mounted on the SoC has increased, even a bus master for real-time processing can suppress the occupied memory bandwidth depending on the buffer availability. However, the conventional bus system in which the priority is fixed has a problem that the memory bandwidth cannot be efficiently allocated in accordance with the operation status of each bus master.
本発明の目的は、上記従来技術の問題点の少なくとも一つを解決することにある。 An object of the present invention is to solve at least one of the problems of the prior art.
本発明の目的は、複数のバスマスタによるバスへのアクセスの帯域を保証しつつ、各バスマスタに効率良く帯域を割り当てることができる技術を提供することにある。 An object of the present invention is to provide a technique capable of efficiently allocating a bandwidth to each bus master while guaranteeing a bandwidth of access to the bus by a plurality of bus masters.
上記目的を達成するために本発明の一態様に係るデータ処理装置は以下のような構成を備える。即ち、
データ処理装置であって、
各バスマスタによるバスへのアクセスの度合いを示す帯域を検出する帯域検出手段と、
前記帯域の閾値を設定する設定手段と、
前記設定手段により設定された前記閾値と前記帯域検出手段により検出された前記帯域を比較する比較手段と、
前記比較手段による比較に基づいて、前記各バスマスタの優先度を決定し、当該決定された優先度に基づいて、前記各バスマスタのアクセス要求を調停する調停手段と、を有することを特徴とする。
In order to achieve the above object, a data processing apparatus according to an aspect of the present invention has the following arrangement. That is,
A data processing device,
Band detection means for detecting a band indicating the degree of access to the bus by each bus master;
Setting means for setting a threshold of the band;
A comparing means for comparing the threshold set by the setting means with the band detected by the band detecting means;
Arbitration means for determining the priority of each bus master based on the comparison by the comparison means and arbitrating the access request of each bus master based on the determined priority.
本発明によれば、複数のバスマスタによるバスへのアクセスの帯域を保証しつつ、各バスマスタに効率良く帯域を割り当てることができるという効果がある。 According to the present invention, there is an effect that a bandwidth can be efficiently allocated to each bus master while guaranteeing a bandwidth of access to the bus by a plurality of bus masters.
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。 Other features and advantages of the present invention will become apparent from the following description with reference to the accompanying drawings. In the accompanying drawings, the same or similar components are denoted by the same reference numerals.
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。 Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. The following embodiments do not limit the present invention according to the claims, and all combinations of features described in the embodiments are not necessarily essential to the solution means of the present invention. .
図1は、実施形態に係るデータ処理装置のコントローラ(制御部)180の構成を説明するブロック図である。 FIG. 1 is a block diagram illustrating a configuration of a controller (control unit) 180 of the data processing apparatus according to the embodiment.
メモリコントローラ190は、コントローラ180のシステム制御、及びデータ処理に係るワークメモリとして機能するメモリ191を制御するためのコントローラである。CPU101は、データ処理装置のシステム全体を制御するプロセッサであり、UI(ユーザインタフェース)105からのユーザによる操作指示や、LAN104上に存在する不図示の外部装置からのジョブ実行命令に応じてデータ処理装置を統括的に制御する。UIC(ユーザインタフェース・コントローラ)102は、UI105からの操作受け付けをCPU101へ通知する。LANC(ネットワーク制御部)103は、LAN104上へのネットワークパケットの送受信を行う。レジスタIF(インタフェース)106は、コントローラ180内の各モジュールに対してレジスタ設定等を行うためのインターフェースである。CPU101は、インターコネクト100、レジスタIF106を経由して、各モジュールのレジスタ設定を行う。インターコネクト100は、CPU101,UIC102,LANC103からのバスアクセスをラウンドロビン方式等によって調停した後、アドレス情報に応じてメモリ191、又はレジスタIF106へアクセスする。
The
スキャナ111は、ラインセンサを用いて原稿の画像を読み取り、それにより得られた画像データを同期信号とともにスキャナIF112へ出力する。スキャナIF112は同期信号に同期して画像データを受信し、後段のモジュールへ出力する。またスキャナIF112は、CPU101からの制御に従って、スキャナ111へ画像の読み取り開始を指示する。補正処理部113は、スキャナ111が読み取って得られた画像データに対して、シェーディング補正、MTF補正、ガンマ補正等の画像補正処理を行う。圧縮部114は、JPEG等の符号化処理により画像データを圧縮する。DMAC110は、CPU101によってメモリ191に確保されたワーク領域へ、圧縮部114により圧縮された画像データをDMAで書き込む。
The
ここで、スキャナIF112、補正処理部113、圧縮部114、DMAC110による一連のデータ処理は、スキャナ111の画像読み取り動作に合わせて行うリアルタイム処理である。即ち、CPU101からの原稿の読み取り開始指示後は、スキャナ111は自立的に画像読み取り動作を行う。よって、スキャナ111からの画像データ入力速度に対して、一連のデータ処理の速度が上回る必要があり、処理速度が下回った場合には画像データの消失(オーバーラン)が生じてしまう。より詳細には、一連の処理モジュール112〜114の不図示の内部SRAMバッファがフルでかつ、DMAC110が画像データを出力できない状況で、新たな画像データがスキャナ111から入力されるとオーバーランとなる。ここで、DMAC110が画像データを出力できない状況とは、アービタ160によって、DMAC110からメモリ191へのアクセス要求が待たされていることを示している。DMAC111からのアクセスが待たされる要因としては、その他のバスマスタによるメモリアクセスがある。アービタ160については、図3を参照して詳しく説明する。
Here, a series of data processing by the
レンダラ121は、LAN104上の不図示の外部装置から入力されたPDL(Print Description Language)を、RIP(Raster Image Processing)によってレンダリングする。圧縮部122は、レンダリングされた画像データを圧縮する。DMAC120は、CPU101によってメモリ191上に展開されたPDLを読み出し、また圧縮されたレンダリング画像データをメモリ191の所定の領域へ書き戻す。尚、レンダラ121、圧縮部122による一連のデータ処理は非リアルタイム処理である。しかしながら、データ処理装置としての生産性を向上させるためには、上記一連のレンダリング処理において、高速にメモリ191へアクセスできることが望ましい。
The
ディスクIF131は、DMAC130を介して、前述の圧縮されたスキャン画像データ、或いはレンダリング画像データを、メモリ191からディスク132へスプールする。スプールされた圧縮データは、再度メモリ191に展開される。
The disk IF 131 spools the above-described compressed scanned image data or rendered image data from the
伸張部141は、DMAC140を介して、メモリ191に展開された圧縮データを読み出して伸張する。変換処理部142は、RGB、YUVなどの任意の色空間からCMYK色空間へと変換する色空間変換処理や、画像データの階調表現を、濃度階調から面積階調へと変換するハーフトーン処理を行って印刷用の画像データを生成する。プリンタ144は、例えばタンデム方式の電子写真プリンタエンジンであり、例えば、Y,M,C,Kの順番で並ぶ、4つの不図示の感光体ドラムを持つ。プリンタIF143は、プリンタ144からの同期信号に従って、印刷用の画像データをプリンタ144へ転送する。プリンタ144は、転写体へ最初にトナー像を転写するYから順に、M,C,Kの順番で露光タイミングを事前にずらすことで、転写体が各感光体ドラムへと到達するまでの時間差、即ち色ずれを吸収する。このため、プリンタIF143は、DMAC150を介して、印刷用画像データをメモリ191へ一旦書き出した後に、Y,M,C,Kの順番で色版ごとにタイミングをずらして印刷用画像データを読み出してプリンタ144へと出力する。
The decompressing
ここで伸張部141、変換処理部142、プリンタIF143、及びDMAC140,150による一連の処理は、プリンタ144からの画像データ転送要求に合わせて行うリアルタイム処理である。よって、プリンタ144からの画像データの転送要求に対して、一連のデータ処理速度が上回る必要があり、処理速度が下回った場合には画像データの消失(アンダーラン)が生じてしまう。前述したスキャン処理の場合と同様に、一連の処理モジュール141〜143の不図示の内部SRAMバッファの状態、及びDMAC140,150のアクセス要求がどの程度待たされるかどうかがアンダーランの発生要因となる。印刷処理においては、一度、印刷用画像データをメモリ191へスプールさせることが可能であるため、特にDMAC150による印刷用画像データの読み出しがプリンタ144の画像データの転送要求に間に合うかどうか重要となる。
Here, a series of processing by the
優先度制御部170は、アービタ160を介してメモリコントローラ190に接続される各バスマスタ(M0〜M5)のバストランザクションをモニタし、またアービタ160に対して優先度制御を行う。
The
図2は、実施形態に係る優先度制御部170の構成を説明するブロック図である。
FIG. 2 is a block diagram illustrating the configuration of the
帯域検出部200は、各バスマスタ(M0〜M5)のバストランザクションをモニタし、各バスマスタがバスにアクセスする度合いを示す帯域を算出する。このバス帯域の算出には、事前にCPU101によって設定された測定期間内において、成立したトランザクションの転送バイト数を合計することで算出する。このようにして算出された帯域値は、一定の期間当たりの平均転送量となる。更に、この転送量をサイクルごとに更新し続けることにより、あるジョブ(例えばコピーやプリント)の実行中における、バスマスタのデータ転送量の移動平均を算出する。或いは、サイクルごとの更新ではなく、特定の間隔ごとで更新しても良い。帯域検出部200はCPU101によって開始が指示されることで帯域の検出を開始する。尚、帯域検出部200は、リードチャネルとライトチャネルがそれぞれ分かれているバスプロトコルであれば、リード、ライトチャネル毎に帯域検出を行っても良い。
The
閾値設定部210は、CPU101によって各バスマスタ、もしくは各チャネルの帯域閾値が設定される。閾値設定部210については図4を参照して詳しく説明する。比較部220は、バスマスタ毎、もしくはチャネル毎に検出されたバス帯域を、閾値設定部210に設定された閾値と比較する。優先度決定部230は、比較部220の比較結果に基づき、各バスマスタ、もしくは各チャネルの優先度を決定して、アービタ160へ通知する。優先度制御部170による、バス帯域の検出から優先度を決定する制御フローについては図5を参照して詳しく説明する。
The
図3は、実施形態に係るアービタ160の構成を説明するブロック図である。
FIG. 3 is a block diagram illustrating the configuration of the
アービタ160は、各バスマスタに割り当て可能な優先度として「#0」から「#2」までの3段階の優先度を持つ。尚、実施形態では、優先度「#0」を最も高い優先度とし、優先度「#2」を最も低い優先度とする。アービタ160は、優先度「#0」〜「#2」にそれぞれ対応したキュー310,311,312を持つ。スイッチ300は、優先度制御部170によって設定された優先度に応じて、各バスマスタ(M0〜M5)からのアクセス要求をキュー310〜312へ振り分ける。キュー310〜312は、アクセス要求をキューイングするための多段のFIFOを含んでいる。
The
尚、実施形態では、キュー310〜312は、実施形態ではFIFOを含んで構成されているが、同一の優先度を持つアクセス要求に関してはFIFOではなく、ラウンドロビン方式等によってキューイングされる順番を調停しても良い。また、キューの段数は優先度毎に異なっていても良い。
In the embodiment, the
バスアクセス要求が発生すると、キューがフルでなければ、アクセス要求は受理され、キューがフルであればアクセス要求は受理されない。同一の優先度を持つバスマスタについては、均等にアクセス要求を受け付けることが可能であり、これは、同一の優先度を持つバスマスタへ帯域を均等に割り当てていることを意味する。但し、実際のデータ転送において、どの程度の帯域が得られるかは、バスマスタがアクセス要求を発行する頻度や、1回のアクセス要求に含まれるデータ量に依存する。 When a bus access request occurs, the access request is accepted if the queue is not full, and the access request is not accepted if the queue is full. For bus masters having the same priority, it is possible to accept access requests evenly, which means that the bandwidth is equally allocated to bus masters having the same priority. However, how much bandwidth can be obtained in actual data transfer depends on the frequency with which the bus master issues an access request and the amount of data included in one access request.
あるバスマスタにおいて、アクセス要求が受理されないことは、言い換えるとアクセスが待たされる状態である。この状態で、パイプラインで処理を行っているバスマスタ(例えばDMAC110〜圧縮部114)の内部SRAMバッファがフルとなれば、パイプラインストールが起きる。更に、スキャナ111やプリンタ144から新たなデータの入力やデータの転送要求があれば、オーバーラン、アンダーランを引き起こすことは前述した通りである。
In some bus masters, an access request is not accepted, in other words, a state where access is awaited. In this state, if the internal SRAM buffer of the bus master (for example,
メモリコントローラ190は、アクセス要求を受け付け可能であれば、セレクタ320を介して、何れかのキューに対してキューイングされたアクセス要求を受け付け可能であることを示すリクエストを通知する。各キューは、メモリコントローラ190からのリクエストを受けると、自身が空でなければ、キューイングされたアクセス要求を読み出してメモリコントローラ190へ転送する。セレクタ320は、優先度の高いキューが空でない限り、優先度の低いキューに対して、メモリコントローラ190からのリクエストを通知しない。即ち、優先度の最も高いキュー310は、他の優先度の低いキューの状態に依らず、メモリコントローラ190からのリクエスト通知を受け取ることができる。一方で、優先度の低いキュー311,312は、自身より優先度が高いキューが全て空きでない限り、メモリコントローラ190からのリクエスト通知を受け取ることができない。尚、図3に示したアービタの構成はあくまで一例であり、実施形態の構成に限定されるものではない。
If the access request can be accepted, the
図4は、実施形態に係る閾値設定部210に設定される帯域の閾値例を示す図である。 図4(A)〜(D)は、閾値の設定例を示しており、各バスマスタに対する下限閾値と上限閾値がそれぞれ設定される。上限閾値とは、あるバスマスタが許容される上限の使用帯域幅であり、下限閾値とは、あるバスマスタが保証される最低の帯域幅である。優先度制御部170は、各バスマスタの使用帯域幅が上限、下限閾値内に収まるようにバスマスタの優先度を動的に制御する。
FIG. 4 is a diagram illustrating an example of a bandwidth threshold set in the
図4(A)は、帯域閾値の第一の設定例を示す図である。 FIG. 4A is a diagram illustrating a first setting example of the band threshold value.
図4(A)では、各マスタ(M0〜M5)に対して、下限閾値と上限閾値がそれぞれ設定される。例として、レンダリングM2のように、非リアルタイム処理のバスマスタについては、下限閾値を低い値「0」に設定している。一方で、非リアルタイム処理のバスマスタであっても、上限の閾値として高い値を設定することで、データ処理装置の生産性を落とさないようにする。スキャンM1やプリンタM5といった、リアルタイム処理を行うマスタについては、下限閾値を高い値に設定することで、帯域を保証している。実際に設定される値は、スキャナ111やプリンタ144が必要とするデータ転送レート、各モジュールのスループット、及び各モジュールが内部に持つSRAMバッファ容量等に対して、ある程度のマージンを加味した値である。0[MB/s]よりも大きい下限閾値を設定されたバスマスタ(例えばM5)は、帯域検出部200による検出帯域が下限閾値を下回ると、優先度決定部230により、そのバスマスタM5の優先度が動的に上げられる。優先度が上がると、他のバスマスタM0〜M4に対して優先してアクセス要求を発行することが可能となることで、帯域の最低値が保証される。
In FIG. 4A, a lower limit threshold and an upper limit threshold are set for each master (M0 to M5). As an example, the lower threshold is set to a low value “0” for a bus master for non-real-time processing, such as rendering M2. On the other hand, even in the case of a bus master for non-real-time processing, a high value is set as the upper limit threshold so that the productivity of the data processing apparatus is not lowered. For masters that perform real-time processing, such as scan M1 and printer M5, the bandwidth is guaranteed by setting the lower threshold value to a high value. The values that are actually set are values that add some margin to the data transfer rate required by the
尚、上記のような制御を行った場合、バスマスタM5がアクセス要求を発行していない期間が続くと、優先度が際限なく上がってしまう。しかしながら、バスマスタM5の優先度が上がったところで、アクセス要求を発行していなければ、他のバスマスタM0〜M4の帯域を逼迫させるといった状況にはならない。或いは、優先度決定部230において、有効なトランザクションが発生しているバスマスタに対してのみ優先度を変更するような構成であっても良い。
In the case of performing the control as described above, if the period in which the bus master M5 has not issued an access request continues, the priority will endlessly increase. However, if the access request is not issued when the priority of the bus master M5 is increased, the situation does not cause a situation in which the bandwidth of the other bus masters M0 to M4 is tightened. Alternatively, the
優先度が上げられたバスマスタM5は、動作状況や内部SRAMバッファの状況によっては、本来必要とする帯域以上の帯域を、一時的ないし慢性的に占有してしまうおそれが生じる。例えば、プリンタIF143の内部SRAMバッファの空きを埋めるために、必要以上に読み出しのアクセス要求を発行するといった場合である。そこで優先度制御部170は、バスマスタM5の使用帯域が上限閾値を上回った場合、そのバスマスタM5の優先度を動的に下げる。これにより、バスマスタM5の優先度は、他のバスマスタM0〜M4と等しくなる。その結果、そのバスマスタM5が占有していたメモリ帯域が、他のバスマスタへも割り当てられることになる。また、もしここで他のバスマスタ(例えばM1)の中で、使用帯域が下限値を下回っていた場合には、そのバスマスタM1の優先度が動的に上げられる。このように、優先度制御部170によって、帯域が足りていないバスマスタが高優先度となるように、動的に優先度の入れ替えがなされる。
The bus master M5 whose priority has been raised may temporarily or chronically occupy a band that is higher than the band that is originally required depending on the operation state and the state of the internal SRAM buffer. For example, in order to fill the empty space in the internal SRAM buffer of the printer IF 143, a read access request is issued more than necessary. Therefore, when the use bandwidth of the bus master M5 exceeds the upper limit threshold, the
図4(B)〜(D)は、閾値のその他の設定例を示す。何れの例にしても、図4(A)と同様に上限閾値と下限閾値が設定される。 4B to 4D show other setting examples of threshold values. In any example, the upper limit threshold and the lower limit threshold are set in the same manner as in FIG.
図4(B)は、上限閾値、下限閾値について、複数の閾値を持つように設定した例である。実施形態では、中間閾値と最大閾値の2つを設定している。図中に太線下線を引いた値について、バスマスタM5については、中間閾値、最大閾値がそれぞれ異なる値に設定されている。また中間閾値、最大閾値にはそれぞれ重みが与えられている。 FIG. 4B shows an example in which the upper threshold and the lower threshold are set to have a plurality of thresholds. In the embodiment, two values, the intermediate threshold value and the maximum threshold value, are set. Regarding the values underlined with bold lines in the drawing, the intermediate threshold value and the maximum threshold value are set to different values for the bus master M5. Weights are given to the intermediate threshold value and the maximum threshold value, respectively.
優先度制御部170は、バスマスタM5について、上限閾値、下限閾値の範囲を超えた場合については、重みに応じて、そのバスマスタM5の優先度を変更する。例えば、重みが「1」である中間閾値の範囲を超えた場合には、優先度を1段階変更する。更に、重みが「2」である最大閾値の範囲を超えた場合には、優先度を2段階変更する。このように、段階的に閾値を設定することにより、優先度制御部170による優先度制御を、より細やかに行うことができる。
The
図4(C)〜(D)は、条件のタイプ毎に上限、下限閾値を設定した例である。 4C to 4D are examples in which an upper limit and a lower limit threshold are set for each condition type.
図4(C)は、条件タイプとして、アクセス要求の種別が設定されており、リード要求か、ライト要求かに応じて、それぞれ個別に上限、下限閾値をもつ。例えば、バスマスタM5については、印刷用画像データはメモリ191にある程度スプールされるため、ライト要求が滞ったとしても問題とならない場合がある。このような場合はライト要求の使用帯域を下げるように設定する。
In FIG. 4C, the type of access request is set as the condition type, and each has an upper limit and a lower limit threshold depending on whether it is a read request or a write request. For example, for the bus master M5, the print image data is spooled to some extent in the
図4(D)は、条件タイプとして、2つの期間が設定されており、それぞれの期間で上限、下限閾値を切り替えている例である。例えば、2つのリアルタイム処理バスマスタM1、M5について、各期間におけるバスマスタM1,M5の合計値が一定以下になるように設定されている。この結果、バスマスタM1、M5に対して割り当てる帯域を時分割多重化することが可能となる。また、上記2つの期間を、各モジュールの内部SRAMバッファ容量、更にはスキャナ111やプリンタ144の画像の読み取り速度、印刷速度等を考慮して設定する。これにより、バスマスタM1,M5の合計帯域がメモリ191の許容帯域を超えないように制御することが可能となる。
FIG. 4D is an example in which two periods are set as the condition type, and the upper limit and the lower limit threshold are switched in each period. For example, for the two real-time processing bus masters M1 and M5, the total value of the bus masters M1 and M5 in each period is set to be a certain value or less. As a result, the bandwidth allocated to the bus masters M1 and M5 can be time-division multiplexed. Further, the above two periods are set in consideration of the internal SRAM buffer capacity of each module, the image reading speed of the
以上、図4(A)〜(D)のように、上限、下限閾値にはいくつかの設定方法が考えられる。図4(A)を最も基本的な閾値の設定方法とした場合、図4(A)と比較して図4(B)では段階的に閾値を設定することにより、優先度をより細かく制御することが可能となる。また、図4(A)と比較して図4(C)ではリード、ライトのアクセス種別に応じて閾値を設定することにより、データ処理装置の動作に即した帯域の割り当てが可能となる。更に、図4(A)と比較して図4(D)では、期間を区切り、それぞれの期間ごとに閾値を設定することにより、帯域を時分割多重させて、複数のリアルタイム処理バスマスタの帯域を保証することが可能となる。 As described above, as shown in FIGS. 4A to 4D, several setting methods are conceivable for the upper limit and the lower limit threshold. When FIG. 4A is the most basic threshold value setting method, priority is controlled more finely by setting threshold values stepwise in FIG. 4B than in FIG. 4A. It becomes possible. Compared to FIG. 4A, in FIG. 4C, by setting a threshold according to the read / write access type, it is possible to allocate a band in accordance with the operation of the data processing apparatus. Further, in FIG. 4D compared to FIG. 4A, the period is divided and a threshold value is set for each period, so that the bands are time-division multiplexed and the bands of a plurality of real-time processing bus masters are increased. It can be guaranteed.
図5は、実施形態に係る優先度制御部170による優先度制御の手順を説明するフローチャートである。尚、図5に示す手順は、全て優先度制御部170によって実行される処理である。また図5に示す手順は、あるバスマスタ単体についての優先度制御手順であり、本実施形態のようにバスマスタがM0〜M5まである場合は、同一の手順を各バスマスタについて並列に実行する。
FIG. 5 is a flowchart illustrating a priority control procedure by the
S501では、バスマスタの優先度を初期値に設定する。ここでの優先度の初期値は任意であり、一例として、全てのバスマスタの優先度初期値を、最も低い優先度に設定する。次にS502に進み、図4を参照して説明した上限、下限閾値を決定する。尚、図4で説明した通り、閾値は、優先度制御部170の閾値設定部210に保持されているが、設定する閾値はCPU101によって事前に設定しても良く、例えばROM等から読み出すように構成されていても良い。次にS503に進み、バスマスタの帯域の検出を開始する。
In S501, the priority of the bus master is set to an initial value. The initial priority value here is arbitrary, and as an example, the initial priority values of all the bus masters are set to the lowest priority. In step S502, the upper and lower threshold values described with reference to FIG. 4 are determined. As described with reference to FIG. 4, the threshold value is held in the threshold
次にS504に進み、検出された帯域を取得する。尚、図2で説明したように、帯域を取得するタイミングは毎サイクルでもよく、一定のサイクルおきに取得するように構成しても良い。次にS505に進み、S504で取得した帯域、及びS502で決定された閾値を基に優先度を決定する。S505の処理については、図6のフローチャートを参照して詳しく説明する。そしてS506に進み、S505で決定した優先度をアービタ160へ通知する。そしてS507に進み、帯域の検出処理を終了するかどうかを判定し、帯域の検出処理を継続する場合はS504へ戻り、帯域の検出処理を終了する場合は、この処理を終了する。
In step S504, the detected band is acquired. As described with reference to FIG. 2, the timing for acquiring the band may be every cycle or may be acquired every certain cycle. In step S505, the priority is determined based on the bandwidth acquired in step S504 and the threshold value determined in step S502. The process of S505 will be described in detail with reference to the flowchart of FIG. In step S506, the priority determined in step S505 is notified to the
図6は、図5のS505の優先度を決定する処理を説明するフローチャートである。 FIG. 6 is a flowchart for explaining the process of determining the priority in S505 of FIG.
図6(A)は、S502において、一組の上限、下限値が設定された場合における優先度決定処理を示し、これは図4(A)の場合に対応している。 FIG. 6A shows a priority determination process when a set of upper and lower limits is set in S502, which corresponds to the case of FIG. 4A.
S601では、検出した帯域が下限閾値を下回っているかどうかを判定する。S601で、検出された帯域が下限閾値を下回っていると判定するとS602に進み優先度を1段階上げる。一方、S601で、検出された帯域が下限閾値を下回っていないと判定するとS603へ進む。S603では、検出された帯域が上限閾値を上回っているかを判定する。S603で、検出された帯域が上限閾値を上回っていると判定するとS604に進み、優先度を一段階下げる。一方、S603で、検出された帯域が上限閾値を上回っていないと判定すると、この処理を終了する。 In S601, it is determined whether the detected band is below the lower limit threshold. If it is determined in S601 that the detected band is below the lower limit threshold, the process proceeds to S602 and the priority is increased by one level. On the other hand, if it is determined in S601 that the detected band is not lower than the lower limit threshold, the process proceeds to S603. In S603, it is determined whether the detected band exceeds the upper threshold. If it is determined in S603 that the detected bandwidth exceeds the upper limit threshold, the process proceeds to S604 and the priority is lowered by one level. On the other hand, if it is determined in S603 that the detected bandwidth does not exceed the upper limit threshold value, this process ends.
図6(B)は、S502において、重みW付きで複数の上限、下限閾値が設定された場合における優先度決定処理を示し、これは図4(B)の場合に対応している。 FIG. 6B shows a priority determination process when a plurality of upper and lower thresholds are set with a weight W in S502, and this corresponds to the case of FIG. 4B.
S610では、以降のS611〜614の処理を、ループ変数を重みWとし、全ての重みについて繰り返す。図4(B)の例では、重みが2つ設定されているため、重みW=1、W=2の二通りについて処理を繰り返す。S611では、検出された帯域が、重みWにおける下限閾値を下回っているかどうかを判定する。S611で、検出された帯域が重みWにおける下限閾値を下回っていると判定するとS612に進み、優先度をW段階上げる。一方、S611で、検出された帯域が重みWにおける下限閾値を下回っていないと判定するとS613へと進む。S613では、検出された帯域が重みWにおける上限閾値を上回っているかを判定する。S613で、検出された帯域が重みWにおける上限閾値を上回っていると判定するとS614に進み、優先度をW段階下げてS610に進む。一方、S613で、検出された帯域が重みWにおける上限閾値を上回っていないと判定するとS610へ戻る。S610では、重みWを更新してS611〜S613の制御フローを繰り返し、全ての重みについて処理が完了すると、この処理を終了する。 In step S610, the subsequent processing in steps S611 to 614 is repeated for all weights with the loop variable as the weight W. In the example of FIG. 4B, since two weights are set, the process is repeated for two types of weights W = 1 and W = 2. In S611, it is determined whether or not the detected band is below the lower limit threshold in the weight W. If it is determined in S611 that the detected band is below the lower limit threshold for the weight W, the process proceeds to S612 and the priority is increased by W levels. On the other hand, if it is determined in S611 that the detected band is not below the lower limit threshold in the weight W, the process proceeds to S613. In S613, it is determined whether the detected band exceeds the upper limit threshold value in the weight W. If it is determined in S613 that the detected band is higher than the upper limit threshold value for the weight W, the process proceeds to S614, the priority is lowered by W levels, and the process proceeds to S610. On the other hand, if it is determined in S613 that the detected band does not exceed the upper limit threshold in the weight W, the process returns to S610. In S610, the weight W is updated, the control flow in S611 to S613 is repeated, and when the processing is completed for all weights, this processing is terminated.
図6(C)は、S502において、条件のタイプ毎に複数の上限、下限閾値が設定された場合における優先度決定処理を示し、図4(C)、図4(D)の場合に対応する。 FIG. 6C shows a priority determination process when a plurality of upper and lower threshold values are set for each condition type in S502, and corresponds to the cases of FIGS. 4C and 4D. .
S620では、以降のS621〜S624の処理を、ループ変数をタイプTとし、全ての条件タイプについて繰り返す。図4(C)の例では、トランザクションのタイプT=リード、T=ライトの二通りについて処理を繰り返す。 In S620, the subsequent processing in S621 to S624 is repeated for all condition types with the loop variable as type T. In the example of FIG. 4C, the processing is repeated for two types of transaction types T = read and T = write.
S621では、検出された帯域がタイプTにおける下限閾値を下回っていると判定するとS622に進み優先度を1段階上げてS622に進む。S621で、検出された帯域がタイプTにおける下限閾値を下回っていないと判定するとS623へと進む。S623では、検出された帯域がタイプTにおける上限閾値を上回っているかどうか判定する。S623で、検出された帯域がタイプTにおける上限閾値を上回っていると判定するとS624に進み、優先度を1段階下げてS620に進む。一方、S623で、検出された帯域がタイプTにおける上限閾値を上回っていないと判定するとS620へ戻る。S620では、タイプTを更新してS621〜S623の制御フローを繰り返し、全てのタイプについて処理が完了するとこの処理を終了する。 In S621, if it is determined that the detected band is below the lower limit threshold in Type T, the process proceeds to S622, and the priority is increased by one step, and the process proceeds to S622. If it is determined in S621 that the detected band is not lower than the lower limit threshold in type T, the process proceeds to S623. In S623, it is determined whether or not the detected band exceeds the upper limit threshold value for Type T. If it is determined in S623 that the detected band exceeds the upper limit threshold value for Type T, the process proceeds to S624, the priority is lowered by one step, and the process proceeds to S620. On the other hand, if it is determined in S623 that the detected band does not exceed the upper limit threshold for Type T, the process returns to S620. In S620, the type T is updated, and the control flow in S621 to S623 is repeated. When the processing is completed for all types, this processing ends.
以上説明したように実施形態によれば、各バスマスタの優先度を動的に制御することが可能となる。これにより、従来であれば静的に高優先度と設定されていたバスマスタが競合した場合においても、各バスマスタの実帯域に従って優先度が変更される。これにより、バスマスタによる不要な帯域の占有を抑えて、帯域保証が可能となる。更に、従来であれば静的に低優先度と設定されていたバスマスタに対しても、効率良く、帯域を割り当てることが可能となる。 As described above, according to the embodiment, the priority of each bus master can be dynamically controlled. As a result, even when bus masters that have been statically set as high priority in the past compete with each other, the priority is changed according to the actual bandwidth of each bus master. As a result, it is possible to guarantee bandwidth while suppressing unnecessary bandwidth occupation by the bus master. Furthermore, it is possible to efficiently allocate a bandwidth to a bus master that has been statically set to have a low priority.
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
(Other embodiments)
The present invention supplies a program that realizes one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in a computer of the system or apparatus read and execute the program This process can be realized. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。 The present invention is not limited to the above-described embodiment, and various changes and modifications can be made without departing from the spirit and scope of the present invention. Therefore, in order to make the scope of the present invention public, the following claims are attached.
160…アービタ、170…優先度制御部、200…帯域検出部、210…閾値設定部、220…比較部、230…優先度決定部 160 ... Arbiter, 170 ... Priority control unit, 200 ... Bandwidth detection unit, 210 ... Threshold setting unit, 220 ... Comparison unit, 230 ... Priority determination unit
Claims (11)
各バスマスタによるバスへのアクセスの度合いを示す帯域を検出する帯域検出手段と、
前記帯域の閾値を設定する設定手段と、
前記設定手段により設定された前記閾値と前記帯域検出手段により検出された前記帯域を比較する比較手段と、
前記比較手段による比較に基づいて、前記各バスマスタの優先度を決定し、当該決定された優先度に基づいて、前記各バスマスタのアクセス要求を調停する調停手段と、
を有することを特徴とするデータ処理装置。 A data processing device,
Band detection means for detecting a band indicating the degree of access to the bus by each bus master;
Setting means for setting a threshold of the band;
A comparing means for comparing the threshold set by the setting means with the band detected by the band detecting means;
Arbitration means for determining the priority of each bus master based on the comparison by the comparison means, and for arbitrating the access request of each bus master based on the determined priority;
A data processing apparatus comprising:
前記比較手段は、前記帯域検出手段により検出された前記帯域と、前記上限閾値と前記下限閾値のそれぞれと比較し、
前記調停手段は、前記検出された前記帯域が前記上限閾値を上回るときは前記優先度を下げ、前記検出された前記帯域が前記下限閾値を下回るときは前記優先度を上げることを特徴とする請求項1に記載のデータ処理装置。 The threshold includes an upper limit threshold and a lower limit threshold of the band,
The comparing means compares the band detected by the band detecting means with each of the upper threshold and the lower threshold;
The mediation means lowers the priority when the detected band exceeds the upper limit threshold, and increases the priority when the detected band falls below the lower limit threshold. Item 4. The data processing device according to Item 1.
前記比較手段は、前記帯域検出手段により検出された前記帯域と、前記重みづけがなされた複数の帯域の上限閾値と下限閾値のそれぞれと比較し、
前記調停手段は、前記検出された前記帯域が前記上限閾値を上回るときは前記優先度を下げ、前記検出された前記帯域が前記下限閾値を下回るときは前記優先度を上げることを特徴とする請求項2に記載のデータ処理装置。 The threshold value includes an upper limit threshold value and a lower limit threshold value of the plurality of weighted bands,
The comparing means compares the band detected by the band detecting means with each of an upper limit threshold value and a lower limit threshold value of the plurality of weighted bands,
The mediation means lowers the priority when the detected band exceeds the upper limit threshold, and increases the priority when the detected band falls below the lower limit threshold. Item 3. A data processing apparatus according to Item 2.
前記比較手段は、前記帯域検出手段により検出された前記帯域と、前記アクセスの種別に応じた前記帯域の上限閾値と下限閾値のそれぞれと比較し、
前記調停手段は、前記検出された前記帯域が前記上限閾値を上回るときは前記優先度を下げ、前記検出された前記帯域が前記下限閾値を下回るときは前記優先度を上げることを特徴とする請求項2に記載のデータ処理装置。 The threshold includes an upper limit threshold and a lower limit threshold of the band according to the type of access,
The comparison unit compares the band detected by the band detection unit with each of an upper limit threshold and a lower limit threshold of the band according to the type of access,
The mediation means lowers the priority when the detected band exceeds the upper limit threshold, and increases the priority when the detected band falls below the lower limit threshold. Item 3. A data processing apparatus according to Item 2.
前記比較手段は、前記帯域検出手段により検出された前記帯域と、前記アクセスの期間に応じた前記帯域の上限閾値と下限閾値のそれぞれと比較し、
前記調停手段は、前記検出された前記帯域が前記上限閾値を上回るときは前記優先度を下げ、前記検出された前記帯域が前記下限閾値を下回るときは前記優先度を上げることを特徴とする請求項2に記載のデータ処理装置。 The threshold includes an upper limit threshold and a lower limit threshold of the band according to the period of access,
The comparison unit compares the band detected by the band detection unit with each of an upper limit threshold and a lower limit threshold of the band according to the period of access;
The mediation means lowers the priority when the detected band exceeds the upper limit threshold, and increases the priority when the detected band falls below the lower limit threshold. Item 3. A data processing apparatus according to Item 2.
各バスマスタによるバスへのアクセスの度合いを示す帯域を検出する帯域検出工程と、
前記帯域の閾値を設定する設定工程と、
前記設定工程で設定された前記閾値と前記帯域検出工程で検出された前記帯域を比較する比較工程と、
前記比較工程による比較に基づいて、前記各バスマスタの優先度を決定し、当該決定された優先度に基づいて、前記各バスマスタのアクセス要求を調停する調停工程と、
を有することを特徴とする帯域保証方法。 A bandwidth guarantee method in a data processing device including a plurality of bus masters,
A band detection step of detecting a band indicating the degree of access to the bus by each bus master;
A setting step for setting a threshold of the band;
A comparison step of comparing the threshold set in the setting step with the band detected in the band detection step;
Based on the comparison by the comparison step, the priority of each bus master is determined, and based on the determined priority, an arbitration step of arbitrating the access request of each bus master;
A bandwidth guarantee method comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018096517A JP2019200732A (en) | 2018-05-18 | 2018-05-18 | Data processing device, bandwidth guarantee method in data processing device, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018096517A JP2019200732A (en) | 2018-05-18 | 2018-05-18 | Data processing device, bandwidth guarantee method in data processing device, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019200732A true JP2019200732A (en) | 2019-11-21 |
Family
ID=68612214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018096517A Pending JP2019200732A (en) | 2018-05-18 | 2018-05-18 | Data processing device, bandwidth guarantee method in data processing device, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019200732A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115378762A (en) * | 2022-10-25 | 2022-11-22 | 芯动微电子科技(珠海)有限公司 | Dynamic scheduling method and device for bus transmission performance |
-
2018
- 2018-05-18 JP JP2018096517A patent/JP2019200732A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115378762A (en) * | 2022-10-25 | 2022-11-22 | 芯动微电子科技(珠海)有限公司 | Dynamic scheduling method and device for bus transmission performance |
CN115378762B (en) * | 2022-10-25 | 2023-06-20 | 芯动微电子科技(珠海)有限公司 | Bus transmission performance dynamic scheduling method and device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102372289B1 (en) | Memory access system, method for controlling the same, computer-readable storage medium, and image forming apparatus | |
US5907688A (en) | Smart arbitration for non-symmetric data streams | |
JP6175794B2 (en) | Data processing apparatus and data processing method | |
JP2019200732A (en) | Data processing device, bandwidth guarantee method in data processing device, and program | |
US20100057962A1 (en) | Arbitration device, arbitration method, and electronic apparatus | |
US8468282B2 (en) | Arbitration device, arbitration method, image processing device, and image forming system | |
JP5718305B2 (en) | Image forming apparatus | |
US11010114B2 (en) | Read/write direction-based memory bank control for imaging | |
JP4175974B2 (en) | Image data transfer control device | |
JP3714840B2 (en) | Data transfer method and data transfer control device | |
JP2004287576A (en) | Bus controller | |
US10614001B1 (en) | Memory control method, memory control apparatus, and image forming method that uses memory control method | |
US10579317B1 (en) | Memory control method, memory control apparatus, and image forming method that uses memory control method | |
JP4909839B2 (en) | Image processing apparatus and image processing method | |
JP4034323B2 (en) | Image data processing method, image data processing apparatus, and image forming apparatus | |
JP6582598B2 (en) | Arbitration circuit | |
US9197782B2 (en) | Image processing device and image processing method | |
JP7098955B2 (en) | Controller and image forming device | |
JP2019197299A (en) | Memory system of information processing equipment, and control method and program of memory system of information processing equipment | |
JPH11331528A (en) | Image processor | |
JP2004185451A (en) | Memory access arbitration method and memory access arbitration unit | |
JP2019200679A (en) | Image forming apparatus, band monitoring device, and band monitoring method | |
JP2023135315A (en) | Controller, image forming apparatus, and access arbitration method | |
JP2002359739A (en) | Image processing unit, image processing method and program to allow computer to perform the method, and computer-readable recording medium for recording the program | |
JP2020035263A (en) | Memory controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20210103 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210113 |