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 PDF

Info

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
Application number
JP2018096517A
Other languages
Japanese (ja)
Inventor
洋介 大林
Yosuke Obayashi
洋介 大林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2018096517A priority Critical patent/JP2019200732A/en
Publication of JP2019200732A publication Critical patent/JP2019200732A/en
Pending legal-status Critical Current

Links

Images

Abstract

To allocate bandwidth efficiently to each bus master while guaranteeing the bandwidth of each bus master which requires bandwidth guarantee.SOLUTION: Disclosed is a data processing device which includes the steps of: detecting a bandwidth indicating the degree of access to the bus by each bus master; comparing a threshold set as a bandwidth threshold with the detected bandwidth; determining the priority of each bus master based on the comparison; and arbitrating the access request of each bus master based on the determined priority.SELECTED DRAWING: Figure 2

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.

特開2014−160341号公報JP 2014-160341 A

しかしながら、近年の集約されたメモリ、バスシステムでは、リアルタイム処理用のバスマスタが同時に複数存在するため、従来のように優先度を付加するだけでは、高い優先度のバスマスタ同士のアクセス競合時に帯域保証を行うことができない場合がある。   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.

添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
実施形態に係るデータ処理装置のコントローラ(制御部)の構成を説明するブロック図。 実施形態に係る優先度制御部の構成を説明するブロック図。 実施形態に係るアービタの構成を説明するブロック図。 実施形態に係る閾値設定部に設定される帯域の閾値例を示す図。 実施形態に係る優先度制御部による優先度制御の手順を説明するフローチャート。 図5のS505の優先度を決定する処理を説明するフローチャート。
The accompanying drawings are included in the specification, constitute a part thereof, show an embodiment of the present invention, and are used together with the description to explain the principle of the present invention.
The block diagram explaining the structure of the controller (control part) of the data processor which concerns on embodiment. The block diagram explaining the structure of the priority control part which concerns on embodiment. The block diagram explaining the structure of the arbiter which concerns on embodiment. The figure which shows the threshold value example of the zone | band set in the threshold value setting part which concerns on embodiment. 6 is a flowchart for explaining a procedure of priority control by a priority control unit according to the embodiment. 6 is a flowchart for explaining processing for determining the priority in S505 of FIG.

以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。   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 memory controller 190 is a controller for controlling the memory 191 functioning as a work memory for system control of the controller 180 and data processing. The CPU 101 is a processor that controls the entire system of the data processing apparatus, and performs data processing in response to a user operation instruction from a UI (user interface) 105 or a job execution command from an external apparatus (not shown) on the LAN 104. Control the device centrally. A UIC (user interface controller) 102 notifies the CPU 101 of operation acceptance from the UI 105. A LANC (network control unit) 103 transmits and receives network packets on the LAN 104. The register IF (interface) 106 is an interface for register setting and the like for each module in the controller 180. The CPU 101 performs register setting for each module via the interconnect 100 and the register IF 106. The interconnect 100 arbitrates bus access from the CPU 101, UIC 102, and LANC 103 by a round robin method or the like, and then accesses the memory 191 or the register IF 106 in accordance with address information.

スキャナ111は、ラインセンサを用いて原稿の画像を読み取り、それにより得られた画像データを同期信号とともにスキャナIF112へ出力する。スキャナIF112は同期信号に同期して画像データを受信し、後段のモジュールへ出力する。またスキャナIF112は、CPU101からの制御に従って、スキャナ111へ画像の読み取り開始を指示する。補正処理部113は、スキャナ111が読み取って得られた画像データに対して、シェーディング補正、MTF補正、ガンマ補正等の画像補正処理を行う。圧縮部114は、JPEG等の符号化処理により画像データを圧縮する。DMAC110は、CPU101によってメモリ191に確保されたワーク領域へ、圧縮部114により圧縮された画像データをDMAで書き込む。   The scanner 111 reads an image of a document using a line sensor and outputs image data obtained thereby to the scanner IF 112 together with a synchronization signal. The scanner IF 112 receives the image data in synchronization with the synchronization signal, and outputs it to the subsequent module. Further, the scanner IF 112 instructs the scanner 111 to start reading an image according to the control from the CPU 101. The correction processing unit 113 performs image correction processing such as shading correction, MTF correction, and gamma correction on the image data obtained by the scanner 111 reading. The compression unit 114 compresses image data by an encoding process such as JPEG. The DMAC 110 writes the image data compressed by the compression unit 114 to the work area secured in the memory 191 by the CPU 101 by DMA.

ここで、スキャナ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 scanner IF 112, the correction processing unit 113, the compression unit 114, and the DMAC 110 is real-time processing performed in accordance with the image reading operation of the scanner 111. That is, after the original reading start instruction from the CPU 101, the scanner 111 performs an image reading operation independently. Therefore, it is necessary for the speed of a series of data processing to exceed the speed of image data input from the scanner 111, and when the processing speed falls, image data disappears (overrun). More specifically, when the internal SRAM buffer (not shown) of the series of processing modules 112 to 114 is full and the DMAC 110 cannot output image data, overrun occurs when new image data is input from the scanner 111. . Here, the situation where the DMAC 110 cannot output image data indicates that the arbiter 160 is waiting for an access request from the DMAC 110 to the memory 191. As a factor for waiting for access from the DMAC 111, there is memory access by other bus masters. The arbiter 160 will be described in detail with reference to FIG.

レンダラ121は、LAN104上の不図示の外部装置から入力されたPDL(Print Description Language)を、RIP(Raster Image Processing)によってレンダリングする。圧縮部122は、レンダリングされた画像データを圧縮する。DMAC120は、CPU101によってメモリ191上に展開されたPDLを読み出し、また圧縮されたレンダリング画像データをメモリ191の所定の領域へ書き戻す。尚、レンダラ121、圧縮部122による一連のデータ処理は非リアルタイム処理である。しかしながら、データ処理装置としての生産性を向上させるためには、上記一連のレンダリング処理において、高速にメモリ191へアクセスできることが望ましい。   The renderer 121 renders PDL (Print Description Language) input from an external device (not shown) on the LAN 104 by RIP (Raster Image Processing). The compression unit 122 compresses the rendered image data. The DMAC 120 reads the PDL expanded on the memory 191 by the CPU 101 and writes back the compressed rendering image data to a predetermined area of the memory 191. A series of data processing by the renderer 121 and the compression unit 122 is non-real time processing. However, in order to improve productivity as a data processing apparatus, it is desirable that the memory 191 can be accessed at high speed in the series of rendering processes.

ディスクIF131は、DMAC130を介して、前述の圧縮されたスキャン画像データ、或いはレンダリング画像データを、メモリ191からディスク132へスプールする。スプールされた圧縮データは、再度メモリ191に展開される。   The disk IF 131 spools the above-described compressed scanned image data or rendered image data from the memory 191 to the disk 132 via the DMAC 130. The spooled compressed data is expanded in the memory 191 again.

伸張部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 unit 141 reads and decompresses the compressed data expanded in the memory 191 via the DMAC 140. The conversion processing unit 142 is a color space conversion process that converts an arbitrary color space such as RGB or YUV to a CMYK color space, or a halftone that converts gradation representation of image data from density gradation to area gradation. Processing is performed to generate image data for printing. The printer 144 is, for example, a tandem electrophotographic printer engine, and has, for example, four photosensitive drums (not shown) arranged in the order of Y, M, C, and K. The printer IF 143 transfers the image data for printing to the printer 144 according to the synchronization signal from the printer 144. The printer 144 shifts the exposure timing in advance in the order of M, C, and K in order from Y that first transfers the toner image to the transfer body, so that the time difference until the transfer body reaches each photosensitive drum, That is, the color shift is absorbed. Therefore, the printer IF 143 once writes the print image data to the memory 191 via the DMAC 150, and then reads the print image data by shifting the timing for each color plate in the order of Y, M, C, and K. The data is output to the printer 144.

ここで伸張部141、変換処理部142、プリンタIF143、及びDMAC140,150による一連の処理は、プリンタ144からの画像データ転送要求に合わせて行うリアルタイム処理である。よって、プリンタ144からの画像データの転送要求に対して、一連のデータ処理速度が上回る必要があり、処理速度が下回った場合には画像データの消失(アンダーラン)が生じてしまう。前述したスキャン処理の場合と同様に、一連の処理モジュール141〜143の不図示の内部SRAMバッファの状態、及びDMAC140,150のアクセス要求がどの程度待たされるかどうかがアンダーランの発生要因となる。印刷処理においては、一度、印刷用画像データをメモリ191へスプールさせることが可能であるため、特にDMAC150による印刷用画像データの読み出しがプリンタ144の画像データの転送要求に間に合うかどうか重要となる。   Here, a series of processing by the decompression unit 141, the conversion processing unit 142, the printer IF 143, and the DMACs 140 and 150 is real-time processing performed in accordance with an image data transfer request from the printer 144. Therefore, a series of data processing speeds must be higher than the image data transfer request from the printer 144, and if the processing speed falls, image data disappears (underrun). As in the case of the scan processing described above, the state of the internal SRAM buffer (not shown) of the series of processing modules 141 to 143 and the extent to which the access request of the DMACs 140 and 150 is waited are the factors causing the underrun. In the printing process, since the printing image data can be spooled to the memory 191 once, it is particularly important whether the reading of the printing image data by the DMAC 150 is in time for the image data transfer request of the printer 144.

優先度制御部170は、アービタ160を介してメモリコントローラ190に接続される各バスマスタ(M0〜M5)のバストランザクションをモニタし、またアービタ160に対して優先度制御を行う。   The priority control unit 170 monitors the bus transaction of each bus master (M0 to M5) connected to the memory controller 190 via the arbiter 160 and performs priority control on the arbiter 160.

図2は、実施形態に係る優先度制御部170の構成を説明するブロック図である。   FIG. 2 is a block diagram illustrating the configuration of the priority control unit 170 according to the embodiment.

帯域検出部200は、各バスマスタ(M0〜M5)のバストランザクションをモニタし、各バスマスタがバスにアクセスする度合いを示す帯域を算出する。このバス帯域の算出には、事前にCPU101によって設定された測定期間内において、成立したトランザクションの転送バイト数を合計することで算出する。このようにして算出された帯域値は、一定の期間当たりの平均転送量となる。更に、この転送量をサイクルごとに更新し続けることにより、あるジョブ(例えばコピーやプリント)の実行中における、バスマスタのデータ転送量の移動平均を算出する。或いは、サイクルごとの更新ではなく、特定の間隔ごとで更新しても良い。帯域検出部200はCPU101によって開始が指示されることで帯域の検出を開始する。尚、帯域検出部200は、リードチャネルとライトチャネルがそれぞれ分かれているバスプロトコルであれば、リード、ライトチャネル毎に帯域検出を行っても良い。   The band detection unit 200 monitors the bus transaction of each bus master (M0 to M5), and calculates a band indicating the degree to which each bus master accesses the bus. The bus bandwidth is calculated by totaling the number of transfer bytes of the established transactions within the measurement period set by the CPU 101 in advance. The bandwidth value calculated in this way is an average transfer amount per fixed period. Further, by continuously updating this transfer amount for each cycle, the moving average of the data transfer amount of the bus master during execution of a certain job (for example, copying or printing) is calculated. Alternatively, it may be updated at specific intervals instead of updating every cycle. The band detection unit 200 starts the band detection when the CPU 101 instructs the start. Note that the bandwidth detection unit 200 may perform bandwidth detection for each read and write channel as long as the read protocol and the write channel are separate bus protocols.

閾値設定部210は、CPU101によって各バスマスタ、もしくは各チャネルの帯域閾値が設定される。閾値設定部210については図4を参照して詳しく説明する。比較部220は、バスマスタ毎、もしくはチャネル毎に検出されたバス帯域を、閾値設定部210に設定された閾値と比較する。優先度決定部230は、比較部220の比較結果に基づき、各バスマスタ、もしくは各チャネルの優先度を決定して、アービタ160へ通知する。優先度制御部170による、バス帯域の検出から優先度を決定する制御フローについては図5を参照して詳しく説明する。   The threshold setting unit 210 sets a bandwidth threshold for each bus master or each channel by the CPU 101. The threshold setting unit 210 will be described in detail with reference to FIG. The comparison unit 220 compares the bus bandwidth detected for each bus master or for each channel with the threshold set in the threshold setting unit 210. The priority determination unit 230 determines the priority of each bus master or each channel based on the comparison result of the comparison unit 220 and notifies the arbiter 160 of the priority. A control flow for determining the priority from the detection of the bus bandwidth by the priority control unit 170 will be described in detail with reference to FIG.

図3は、実施形態に係るアービタ160の構成を説明するブロック図である。   FIG. 3 is a block diagram illustrating the configuration of the arbiter 160 according to the embodiment.

アービタ160は、各バスマスタに割り当て可能な優先度として「#0」から「#2」までの3段階の優先度を持つ。尚、実施形態では、優先度「#0」を最も高い優先度とし、優先度「#2」を最も低い優先度とする。アービタ160は、優先度「#0」〜「#2」にそれぞれ対応したキュー310,311,312を持つ。スイッチ300は、優先度制御部170によって設定された優先度に応じて、各バスマスタ(M0〜M5)からのアクセス要求をキュー310〜312へ振り分ける。キュー310〜312は、アクセス要求をキューイングするための多段のFIFOを含んでいる。   The arbiter 160 has three levels of priority from “# 0” to “# 2” as priorities that can be assigned to each bus master. In the embodiment, the priority “# 0” is the highest priority, and the priority “# 2” is the lowest priority. The arbiter 160 has queues 310, 311 and 312 corresponding to the priorities “# 0” to “# 2”, respectively. The switch 300 distributes access requests from the bus masters (M0 to M5) to the queues 310 to 312 according to the priority set by the priority control unit 170. The queues 310 to 312 include multi-stage FIFOs for queuing access requests.

尚、実施形態では、キュー310〜312は、実施形態ではFIFOを含んで構成されているが、同一の優先度を持つアクセス要求に関してはFIFOではなく、ラウンドロビン方式等によってキューイングされる順番を調停しても良い。また、キューの段数は優先度毎に異なっていても良い。   In the embodiment, the queues 310 to 312 are configured to include a FIFO in the embodiment. However, for access requests having the same priority, the order in which the queues are queued by the round robin method or the like is not used for the FIFO. Mediation may be performed. Further, the number of stages in the queue may be different for each priority.

バスアクセス要求が発生すると、キューがフルでなければ、アクセス要求は受理され、キューがフルであればアクセス要求は受理されない。同一の優先度を持つバスマスタについては、均等にアクセス要求を受け付けることが可能であり、これは、同一の優先度を持つバスマスタへ帯域を均等に割り当てていることを意味する。但し、実際のデータ転送において、どの程度の帯域が得られるかは、バスマスタがアクセス要求を発行する頻度や、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, DMAC 110 to compression unit 114) performing processing in the pipeline becomes full, pipeline installation occurs. Further, as described above, if there is a new data input or data transfer request from the scanner 111 or the printer 144, an overrun or underrun is caused.

メモリコントローラ190は、アクセス要求を受け付け可能であれば、セレクタ320を介して、何れかのキューに対してキューイングされたアクセス要求を受け付け可能であることを示すリクエストを通知する。各キューは、メモリコントローラ190からのリクエストを受けると、自身が空でなければ、キューイングされたアクセス要求を読み出してメモリコントローラ190へ転送する。セレクタ320は、優先度の高いキューが空でない限り、優先度の低いキューに対して、メモリコントローラ190からのリクエストを通知しない。即ち、優先度の最も高いキュー310は、他の優先度の低いキューの状態に依らず、メモリコントローラ190からのリクエスト通知を受け取ることができる。一方で、優先度の低いキュー311,312は、自身より優先度が高いキューが全て空きでない限り、メモリコントローラ190からのリクエスト通知を受け取ることができない。尚、図3に示したアービタの構成はあくまで一例であり、実施形態の構成に限定されるものではない。   If the access request can be accepted, the memory controller 190 notifies the request indicating that the access request queued for any of the queues can be accepted via the selector 320. Upon receiving a request from the memory controller 190, each queue reads the queued access request and transfers it to the memory controller 190 if it is not empty. The selector 320 does not notify the request from the memory controller 190 to the low priority queue unless the high priority queue is empty. That is, the queue 310 having the highest priority can receive a request notification from the memory controller 190 regardless of the state of the other low priority queues. On the other hand, the low priority queues 311 and 312 cannot receive a request notification from the memory controller 190 unless all the queues with higher priority than the queues are empty. Note that the configuration of the arbiter shown in FIG. 3 is merely an example, and is not limited to the configuration of the embodiment.

図4は、実施形態に係る閾値設定部210に設定される帯域の閾値例を示す図である。 図4(A)〜(D)は、閾値の設定例を示しており、各バスマスタに対する下限閾値と上限閾値がそれぞれ設定される。上限閾値とは、あるバスマスタが許容される上限の使用帯域幅であり、下限閾値とは、あるバスマスタが保証される最低の帯域幅である。優先度制御部170は、各バスマスタの使用帯域幅が上限、下限閾値内に収まるようにバスマスタの優先度を動的に制御する。   FIG. 4 is a diagram illustrating an example of a bandwidth threshold set in the threshold setting unit 210 according to the embodiment. 4A to 4D show examples of threshold setting, and a lower threshold and an upper threshold for each bus master are set. The upper limit threshold is an upper limit use bandwidth allowed for a certain bus master, and the lower limit threshold is a minimum bandwidth guaranteed for a certain bus master. The priority control unit 170 dynamically controls the priority of the bus master so that the used bandwidth of each bus master falls within the upper and lower thresholds.

図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 scanner 111 and the printer 144, the throughput of each module, the SRAM buffer capacity of each module, and the like. . A bus master (for example, M5) set with a lower threshold value larger than 0 [MB / s], when the bandwidth detected by the bandwidth detector 200 falls below the lower threshold, the priority determiner 230 sets the priority of the bus master M5. Raised dynamically. When the priority increases, it becomes possible to issue an access request with priority to the other bus masters M0 to M4, thereby guaranteeing a minimum bandwidth value.

尚、上記のような制御を行った場合、バスマスタ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 priority determination unit 230 may change the priority only for a bus master in which a valid transaction has occurred.

優先度が上げられたバスマスタ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 priority control unit 170 dynamically lowers the priority of the bus master M5. Thereby, the priority of the bus master M5 becomes equal to the other bus masters M0 to M4. As a result, the memory band occupied by the bus master M5 is also assigned to other bus masters. Also, if the bandwidth used is below the lower limit value among other bus masters (for example, M1), the priority of the bus master M1 is dynamically raised. In this way, the priority control unit 170 dynamically switches the priority so that the bus master with insufficient bandwidth has a high priority.

図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 priority control unit 170 changes the priority of the bus master M5 according to the weight when the bus master M5 exceeds the range of the upper threshold and the lower threshold. For example, when the weight exceeds the range of the intermediate threshold value “1”, the priority is changed by one level. Furthermore, when the range of the maximum threshold value having a weight of “2” is exceeded, the priority is changed in two steps. Thus, by setting threshold values in stages, priority control by the priority control unit 170 can be performed more finely.

図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 memory 191, so there may be no problem even if the write request is delayed. In such a case, the write request bandwidth is set to be lowered.

図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 scanner 111 and the printer 144, the printing speed, and the like. As a result, it is possible to perform control so that the total bandwidth of the bus masters M1 and M5 does not exceed the allowable bandwidth of the memory 191.

以上、図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 priority control unit 170 according to the embodiment. 5 is a process executed by the priority control unit 170. The procedure shown in FIG. 5 is a priority control procedure for a certain bus master. When there are bus masters M0 to M5 as in this embodiment, the same procedure is executed in parallel for each bus master.

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 value setting unit 210 of the priority control unit 170. However, the threshold value to be set may be set in advance by the CPU 101, for example, read from a ROM or the like. It may be configured. In step S503, detection of the bus master band is started.

次に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 arbiter 160. The process advances to step S507 to determine whether or not to end the band detection process. If the band detection process is to be continued, the process returns to step S504. If the band detection process is to be ended, the process ends.

図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.
前記調停手段は、前記検出された前記帯域が前記上限閾値を上回るときは前記優先度を前記重みづけに応じて下げ、前記検出された前記帯域が前記下限閾値を下回るときは前記優先度を前記重みづけに応じて上げることを特徴とする請求項3に記載のデータ処理装置。   The arbitration means lowers the priority according to the weighting when the detected band exceeds the upper limit threshold, and reduces the priority when the detected band falls below the lower limit threshold. The data processing apparatus according to claim 3, wherein the data processing apparatus increases the weight according to weighting. 前記閾値は、前記アクセスの種別に応じた前記帯域の上限閾値と下限閾値とを含み、
前記比較手段は、前記帯域検出手段により検出された前記帯域と、前記アクセスの種別に応じた前記帯域の上限閾値と下限閾値のそれぞれと比較し、
前記調停手段は、前記検出された前記帯域が前記上限閾値を上回るときは前記優先度を下げ、前記検出された前記帯域が前記下限閾値を下回るときは前記優先度を上げることを特徴とする請求項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.
前記アクセスの種別は、リード、ライトを含むことを特徴とする請求項5に記載のデータ処理装置。   6. The data processing apparatus according to claim 5, wherein the access type includes read and write. 前記リードの場合の前記帯域の上限閾値と下限閾値は、前記ライトの場合の前記帯域の上限閾値と下限閾値よりも大きいことを特徴とする請求項6に記載のデータ処理装置。   The data processing apparatus according to claim 6, wherein an upper limit threshold and a lower limit threshold of the band in the case of the read are larger than an upper limit threshold and a lower limit threshold of the band in the case of the write. 前記閾値は、前記アクセスの期間に応じた前記帯域の上限閾値と下限閾値とを含み、
前記比較手段は、前記帯域検出手段により検出された前記帯域と、前記アクセスの期間に応じた前記帯域の上限閾値と下限閾値のそれぞれと比較し、
前記調停手段は、前記検出された前記帯域が前記上限閾値を上回るときは前記優先度を下げ、前記検出された前記帯域が前記下限閾値を下回るときは前記優先度を上げることを特徴とする請求項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.
前記帯域検出手段は、所定の期間における前記各バスマスタのバストランザクションの転送バイト数の合計に基づいて前記帯域を検出することを特徴とする請求項1乃至8のいずれか1項に記載のデータ処理装置。   The data processing according to any one of claims 1 to 8, wherein the bandwidth detection unit detects the bandwidth based on a total number of transfer bytes of bus transactions of the bus masters in a predetermined period. apparatus. 複数のバスマスタを含むデータ処理装置における帯域保証方法であって、
各バスマスタによるバスへのアクセスの度合いを示す帯域を検出する帯域検出工程と、
前記帯域の閾値を設定する設定工程と、
前記設定工程で設定された前記閾値と前記帯域検出工程で検出された前記帯域を比較する比較工程と、
前記比較工程による比較に基づいて、前記各バスマスタの優先度を決定し、当該決定された優先度に基づいて、前記各バスマスタのアクセス要求を調停する調停工程と、
を有することを特徴とする帯域保証方法。
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:
コンピュータを、請求項1乃至9のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。   The program for functioning a computer as each means of the information processing apparatus of any one of Claims 1 thru | or 9.
JP2018096517A 2018-05-18 2018-05-18 Data processing device, bandwidth guarantee method in data processing device, and program Pending JP2019200732A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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