JP2012104160A - 調停装置、画像形成装置、調停方法及びプログラム - Google Patents

調停装置、画像形成装置、調停方法及びプログラム Download PDF

Info

Publication number
JP2012104160A
JP2012104160A JP2012032377A JP2012032377A JP2012104160A JP 2012104160 A JP2012104160 A JP 2012104160A JP 2012032377 A JP2012032377 A JP 2012032377A JP 2012032377 A JP2012032377 A JP 2012032377A JP 2012104160 A JP2012104160 A JP 2012104160A
Authority
JP
Japan
Prior art keywords
transfer
request
dmac
time
arbitration
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.)
Granted
Application number
JP2012032377A
Other languages
English (en)
Other versions
JP5424138B2 (ja
Inventor
Shinya Nagasaki
伸哉 長崎
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2012032377A priority Critical patent/JP5424138B2/ja
Publication of JP2012104160A publication Critical patent/JP2012104160A/ja
Application granted granted Critical
Publication of JP5424138B2 publication Critical patent/JP5424138B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】優先順位の異なる複数のDMACからの転送要求を調停するときに、システム全体のパフォーマンスを向上させる。
【解決手段】第1のライトDMAC15は、1ライン単位で入力されるデータを1ライン期間内にメモリに転送させる必要がある。アービタ113内の必要転送時間計算部121は、バースト長と、バス幅と、必要転送レートRaとから、要求されたデータの転送に必要な時間T2を計算する。また、ラインスタート信号により起動されるタイマーにより、1ラインの開始からの経過時間T1を計測する。T1の方がT2より長ければ、T1とT2が等しくなるまで、第1のライトDMAC15からの転送要求に対して、ウェイト要求信号をアサートする。
【選択図】図1

Description

本発明は、優先順位の異なる複数のDMAC(ダイレクト・メモリ・アクセス・コントローラ)からの転送要求を調停する調停装置(アービタ)、調停方法及びプログラムに関し、より詳しくは、優先順位の高いDMACからの転送要求を適宜制限することにより、システム全体のパフォーマンスを向上させるようにした調停装置、調停方法及びプログラムに関する。
従来、CPUと複数のモジュールとを備えたシステムにおいて、それらのモジュールとCPUバス上のメモリとの間などのデータ転送を高速で行う手法として、CPUの介入なしでデータ転送を行うDMA転送が知られている。各モジュールはDMA転送を行う際、DMACがアービタに対し転送要求(リクエスト)を発行し、アービタから転送許可を受けた後に、メモリに対する転送(リード又はライト)を行う。このとき、複数のDMACの転送要求が競合した場合、アービタは予め設定されている優先順位に基づいて転送順序を決定する(特許文献1参照)。
このような、複数のモジュールとCPUバス上のメモリ間でDMA転送を行うシステムとして、文献に記載されたものではないが、図8に示すマルチファンクションプリンタ(以下、MFPと言う)がある。
このMFPは、ASIC(Application Specific Integrated Circuit:特定用途向けIC)1と、CPU2と、メモリ3と、スキャナ4とを備えている。ASIC1とCPU2とはPCI Express I/F(インタフェース)5により接続され、CPU2とメモリ3とはDDR(Double Data Rate)2 I/F6により接続されている。
第1の画像処理モジュール11は、スキャナ4から入力された画像データに対し、シェーディング補正、ライン間補正などの補正処理を施す機能を有する。また、補正処理後の画像データをメモリ3に書き込むための制御を行う第1のライトDMAC(WDMAC1)15を備えている。
第2の画像処理モジュール12は、メモリ3から読み出された画像データに対し、変倍処理、階調処理などの画像処理を施す機能を有する。また、メモリ3から画像データを読み出すための第1のリードDMAC(RDMAC1)16、画像処理を施した画像データをメモリに書き込むための第2のライトDMAC(RDMAC2)17を備えている。
アービタ13は、第1及び第2のライトDMAC15及び17、並びに第1のリードDMAC16からの転送要求を調停する。アービタ13から転送の許可を受けたDMACは、アービタ13、PCI Express ENDP(エンドポイント)14、PCI Express I/F5、及びDDR2 I/F6を介してメモリ3にアクセスする(CPU2は介在しない)。
このMFPによれば、スキャナ4からASIC1の第1の画像処理モジュール11に入力された画像データを第1のライトDMAC15により一旦メモリ3に書き込み、その後、第1のリードDMAC16によりメモリ3から読み出し、第2の画像処理モジュール12で画像処理を行い、第2のライトDMAC17により再びメモリ3に書き込むことにより、スキャナ入力と、画像処理の速度差を吸収することができるように構成されている。この構成により、例えば拡大変倍時など、入力データ数に対して処理するデータ数が多くなる場合、スキャナ4からの入力に対し、拡大変倍処理が間に合わなくなり、システムが破綻してしまう事態を防止することができる。
図9は、図8に示す第1及び第2のライトDMAC15及び17、並びに第1のリードDMAC16の動作に関連して、アービタ13とPCI Express ENDP14との間を流れるデータを示すタイミングチャートの一例である。ここで、3つのDMACの優先順位は、第1のライトDMAC15が一位、第1のリードDMAC16が二位、第2のライトDMAC17が三位である。
第1のライトDMAC15は、スキャナ4から第1の画像処理モジュール11に入力され、そこで処理された1ライン分の18ブロックの画像データ(W1〜W18)をメモリ3に転送するとき、個々の画像データの先頭のタイミングでアービタ13に転送要求を送出し、直ちに画像データを送出する。アービタ13は優先順位が一位である第1のライトDMAC15からの転送要求を6回続けて処理した後、優先順位が二位である第1のリードDMAC16の転送要求を2回続けて処理する(R1,R2)。第1のリードDMAC16の転送要求の処理により、メモリ3から画像データC1,C2が読み出される。転送要求のタイミングと、画像データが転送されるタイミングとの間には、遅延(Read Delay)がある。このため、第1のライトDMAC15が画像データW9,W10を書き込んでいるときと、第1のリードDMAC16が画像データC1,C2を読み出しているときとが重なっており、この重複期間はPCI Express I/F5上の双方向に画像データが流れる。
以上の処理を繰り返し、第1のライトDMAC15が1ライン分の画像データの転送を終了した後に、優先順位が三位である第2のライトDMAC17からの転送要求を許可する。
しかしながら、図9に示すタイミングチャートの場合、スキャナ4の1ライン時間(図のlsync期間)より短時間で第1のWDMAC15は1ライン分の画像データ(W1〜W18)をメモリ3に転送しているのに対し、第1のリードDMAC16は略半分しか転送していないし、第2のライトDMAC17は1/3しか転送していない。つまり、第1のWDMAC15のパフォーマンスが必要以上に高い反面、他のDMACのパフォーマンスが不十分である。
そこで、第1のリードDMAC16の優先順位を上げることが考えられる。しかし、これには以下の問題がある。ライトDMACとリードDMACの動作を比較すると、リードDMACは転送要求が受け付けられてからその応答(画像データ)が返ってくるまでのレイテンシ(遅延)が大きい。このため、第1のリードDMAC16の優先順位を上げたとしても、第1のリードDMAC16の転送要求を処理する間に隙間なく第1のライトDMAC15から転送要求が発行されるため、第1のライトDMAC15の転送要求を処理する回数が増加し、必要以上のパフォーマンスとなってしまう。また、第1のライトDMAC15の転送
要求の処理を終了してから第1のリードDMAC16の転送要求を受け付けるという動作になってしまうため、結果的に要求するパフォーマンスを満たせない状況になってしまう。
本発明は、このような問題を解決するためになされたものであり、その目的は、優先順位の異なる複数のDMACからの転送要求を調停するときに、システム全体のパフォーマンスを向上させることである。
本願の第1の発明は、優先順位の異なる複数のDMACからの転送要求を調停する調停装置において、所定時間毎に入力される所定量のデータを前記所定時間内に転送可能であり、かつ優先順位が最も高く設定されている第1のDMACにより前記所定時間内に前記所定量のデータの一部毎に順次発行される転送要求を受け付ける手段と、それらの転送要求による処理を実行する手段と、それらの転送要求による転送量の累積値を算出する手段と、前記累積値を前記第1のDMACに対して設定された転送速度で除算することにより、前記累積値のデータの必要転送時間を算出する手段と、前記所定の時間毎の経過時間を計測する手段と、前記経過時間と前記必要転送時間とを比較する手段と、その比較結果に基づいて、前記転送要求による処理を実行させるか待機させるかを決定する手段とを有することを特徴とする。
本願の第2の発明は、第1の発明において、前記経過時間が前記必要転送時間以内の場合で、かつ前記第1のDMAC以外のDMACから転送要求がある場合は、第1のDMACからの転送要求を待機させ、第1のDMAC以外のDMACからの転送要求による処理を実行させることを特徴とする。
本願の第3の発明は、第1の発明において、前記第1のDMAC以外のDMACに対しても、前記各手段が設けられていることを特徴とする。
本願の第4の発明は、第1の発明において、前記決定する手段は、転送要求による処理を待機させるためのウェイト要求信号を発生した後、転送要求による処理を完了した前記実行する手段から処理完了信号を受けたとき、前記ウェイト要求信号をネゲートすることを特徴とする。
本願の第5の発明は、第3の発明において、複数のDMACの転送要求を待機させている場合、一つの待機処理が終了した際に、他にも待機させているDMACの有無を判断し、ある場合にはその処理を監視しながら、他のDMACからの転送要求を処理することを特徴とする。
本願の第6の発明は、優先順位の異なる複数のDMACからの転送要求を調停する調停方法において、所定時間毎に入力される所定量のデータを前記所定時間内に転送可能であり、かつ優先順位が最も高く設定されている第1のDMACにより前記所定時間内に前記所定量のデータの一部毎に順次発行される転送要求を受け付ける工程と、それらの転送要求による処理を実行する工程と、それらの転送要求による転送量の累積値を算出する工程と、前記累積値を前記第1のDMACに対して設定された転送速度で除算することにより、前記累積値のデータの必要転送時間を算出する工程と、前記所定の時間毎の経過時間を計測する工程と、前記経過時間と前記必要転送時間とを比較する工程手段と、その比較結果に基づいて、前記転送要求による処理を実行させるか待機させるかを決定する工程とを有することを特徴とする。
本発明によれば、優先順位の異なる複数のDMACからの転送要求を調停するときに、優先順位の高いDMACからの転送要求を適宜制限することにより、システム全体のパフォーマンスを向上させることができる。
本発明の第1の実施形態のMFPにおけるアービタの構成を示すブロック図である。 図1の必要転送時間計算部の内部構成を示すブロック図である。 本発明の第1の実施形態のアービタの動作を示すフローチャートである。 本発明の第1の実施形態のアービタの動作を示すタイミングチャートである。 本発明の第1の実施形態のアービタの動作を示す別のタイミングチャートである。 本発明の第2の実施形態のMFPにおけるアービタの構成を示すブロック図である。 本発明の第2の実施形態のアービタの動作を示すフローチャートである。 従来のMFPの構成を示すブロック図である。 図8におけるアービタの動作を示すタイミングチャートである。
以下、本発明の実施形態について図面を参照しながら説明する。
[第1の実施形態]
図1は本発明の第1の実施形態のMFPにおけるアービタの構成を示すブロック図である。本実施形態のMFPの全体の構成は図8と同じであり、アービタ113は図8に示すアービタ13と同様、MFP内のASIC1内に設けられている。
アービタ113は、必要転送時間計算部121及びリクエスト調停部122を備えている。必要転送時間計算部121には、第1のライトDMAC15から、転送要求発行時にデータのバースト長が入力される。また、ラインスタート信号、及びラインエンド信号が入力される。さらに、必要転送レート保持部123から必要転送レート情報Raが入力される。バースト長及び必要転送レートはシステムを検討した段階で、予め分かっている必要がある値である。リクエスト調停部122には、第1のライトDMAC15及び第2のライトDMAC17並びに第1のリードDMAC16から転送要求が入力され、必要転送時間計算部121からウェイト要求信号が入力される。ここで、3つのDMACの優先順位は、第1のライトDMAC15が一位、第1のリードDMAC16が二位、第2のライトDMAC17が三位である。
必要転送レート保持部123はASIC1内に設けられている。必要転送レート情報Raは、第1のリードDMAC15が必ずデータ転送を完了しなければならない時間であるlsync期間の80%程度に設定する。若しくは一回の転送要求で処理する時間の最大値を加味した値を設定することが望ましい。その理由は、第1のリードDMAC15からの1ライン内の最後の転送要求に対して、後述するウェイト処理を行った場合でも、lsync期間を超えることなく転送を完了させるためである。
図2は、図1の必要転送時間計算部121の内部構成を示すブロック図である。必要転送時間計算部121は、必要転送時間T2演算部及び時間比較部1211、タイマー1212、並びにウェイト要求信号生成部1213を備えている。
タイマー1212にはラインスタート信号及びラインエンド信号が入力される。そして、ラインスタート信号により起動され、ラインエンド信号によりリセットされるまでの間、ラインスタート信号からの経過時間T1をカウント(計測)する。
必要転送時間T2演算部及び時間比較部1211には、バースト長BL及び経過時間T1が入力される。必要転送時間T2演算部及び時間比較部1211は、第1のライトDMAC15とアービタ113との間のバス幅DWの情報を保持している。
必要転送時間T2演算部及び時間比較部1211は以下のように動作する。
転送要求の発行時に受け取ったバースト長BLと、保持しているバス幅DWとに基づいて、まず下記式[1]により転送データ量BW(k)を算出する。この式において、kは1ライン内の転送要求の順番を示す。
BW(k)=BL(k)×DW・・・式[1]
次いでこの転送データ量BW(k)を1ライン内で転送要求毎に累積し、下記式[2]に示す累積転送量BW’(n)を算出する。
BW’(n) =BW(1)+BW(2)+・・・BW(n)・・・式[2]
次に下記式[3]により、累積転送量BW’(n)のデータ転送が完了していなければならない時間である必要転送時間T2を算出する。
T2=BW’(n)/Ra・・・式[3]
次いで必要転送時間T2と経過時間T1とを比較し、その長短関係をウェイト要求信号生成部1213に出力する。
ウェイト要求信号生成部1213は、T1の方がT2より長ければ、T1とT2が等しくなるまで、第1のライトDMAC15からの転送要求に対して、ウェイト要求信号をアサートし、リクエスト調停部122へ出力する。リクエスト調停部122は、ウェイト要求信号がアサートされている間は、第1のライトDMAC15からの転送要求に対してウェイト処理(転送要求の発行を制限する)を実行する。
次にアービタ113の動作について、図3に示すフローチャートを参照しながら説明する。
データ転送が開始されると、図3のステップST1にて、リクエスト調停部122がリクエスト(転送要求)を受け付ける。次いで、ステップST2にて、リクエスト調停部122は優先順位が一位である第1のライトDMAC15からのリクエストの有無を判断し、ある場合は(ST2:Yes)、ステップST3にて、必要転送時間計算部121が必要転送時間T2を算出する。ここで、リクエスト調停部122は、各DMACから転送要求時に送出されるDMACID等から、ステップST2の判断が可能である。
次にステップST4にて、必要転送時間計算部121は、経過時間T1が必要転送時間T2より長いか否かを判断し、長い場合は(ST4:Yes)、ステップST7にて、リクエスト調停部122は第1のライトDMAC15からのリクエストを処理する。
一方、経過時間T1が必要転送時間T2以内の場合は(ST4:No)、ステップST5にて、その他のDMAC(ここでは第1のリードDMAC16、第2のライトDMAC17)からのリクエストの有無を判断する。そして、ある場合は(ST5:Yes)、ステップST6にてその他のDMACからのリクエストを処理した後にステップST4に戻る。ない場合は(ST5:No)、ステップST7にて第1のライトDMAC15からのリクエストを処理する。
第1のライトDMAC15からのリクエストの有無を判断し、ない場合は(ST2:No)、リクエストを発行した第1のリードDMAC16又は第2のライトDMAC17に対して、通常のアービトレーション及びリクエスト処理を行う(ステップST8)。
ステップST9で全データの転送が完了したと判断するまで、以上の処理を繰り返す。
以上説明した図3のフローチャートの処理を要約すると以下のようになる。
DMACからリクエストが発行されると、アービタ113は、どのDMACからのリクエストであるかを判断する。判断の結果、第1のライトDMAC15からのリクエストでなければ、通常のアービトレーション及びリクエスト処理を行う。第1のライトDMAC15からのリクエストであった場合は必要転送時間T2を算出する。そして、現在のラインのスタートからの経過時間T1と比較し、T1の方がT2よりも長い場合は、そのまま第1のライトDMAC15からのリクエストを処理する。T2の方が長い場合は、その間は他のDMACからのリクエストがあればそれを優先して処理し、なければ第1のライトDMAC15からのリクエストを処理し、全データの転送が完了していれば終了、そうでなければ次のリクエストを待つ。
次に図4に示すタイミングチャートに基づいて説明する。
第1のライトDMAC15は、1ライン分の18ブロックの画像データ(W1〜W18)をメモリ3に転送するとき、個々の画像データの先頭のタイミングでアービタ113に転送要求を発行する。画像データW1〜W4のそれぞれの転送要求を受け付けた時点では、他のDMACからの転送要求がないため、図3のステップST7により、第1のライトDMAC15からの処理(画像データW1〜W4の転送)を実行する。
画像データW5の転送要求を受け付けた時点では、第1のリードDMAC16も転送要求R1を発行している。このとき、T1がT2より短いため、ステップST4:No →ST5:Yes→ST6と進み、第1のリードDMAC16の転送要求を処理し、第1のライトDMAC15からの画像データW5の転送要求は待機させる。同様にして、第1のリードDMAC16からの転送要求R2を処理する。これにより、メモリ3から画像データC1,C2が読み出される。
次の転送要求R3を受け付けた時点では、第1のライトDMAC15からの画像データW5の転送要求を待機させ続けた結果、T1がT2以上となったため、ステップST4:Yes →ST7と進み、第1のライトDMAC15からの画像データW5の転送要求を処理し、第1のリードDMAC16からの転送要求R3は待機させる。同様にして、第1のライトDMAC15からの画像データW6〜W8の転送要求を処理する。そして、画像データW8の転送が完了すると、ステップST2:No →ST8と進み、第1のリードDMAC16からの転送要求R3を処理する。
その後、第1のリードDMAC16からの転送要求R4の処理が完了した時点で、第1のライトDMAC15からの画像データW9の転送要求が発行される。以後、アービタ113は、第1のライトDMAC15及び第1のリードDMAC16からの転送要求の有無、及びT1とT2との長短関係に応じて、第1のライトDMAC15及び第1のリードDMAC16からの転送要求の一方を処理するときは他方を待機させる処理を行う。
第1のライトDMAC15が1ライン分の画像データW1〜W18の転送を完了すると、1sync時間の終わり(ラインエンド信号のタイミング)までは、第1のライトDMAC15は転送要求を発行しない。1sync時間の終わりから、第2のライトDMAC17の転送要求の処理を開始するとともに、引き続き第1のリードDMAC16からの転送要求を処理する。
図5は、図4のタイミングチャートに示されているデータをアービタ113とPCI Express ENDP14との間で見た場合、即ち図9に対応するタイミングチャートを示している。
図5に示すように、本実施形態では、優先順位が一位である第1のライトDMAC15からの転送要求を4回続けて処理した後、優先順位が二位である第1のリードDMAC16の転送要求を2回続けて処理する。このため、第1のライトDMAC15が1ライン分の画像データW1〜W18の転送を完了するタイミングは図9の場合より遅れる。しかし、第1のリードDMAC16及び第2のライトDMAC17からの転送要求に対しては、1sync時間の終わりの時点にて、本実施形態の方がより多くのデータの転送を完了していることが分かる。
つまり、本実施形態は、優先順位が最高である第1のライトDMAC15の転送要求に適宜制限をかけることにより、第1のライトDMAC15のパフォーマンスが過剰となることを防止するとともに、第1のリードDMAC16及び第2のライトDMAC17のパフォーマンスを向上させ、その結果、システム全体のパフォーマンスを向上させている。
以上のように、本発明の第1の実施形態のアービタ113は、下記(1)、(2)の効果を有する。
(1)必要転送時間計算部121と必要転送レート保持部123とを持つことによって、優先度の最も高い第1のライトDMAC15からのデータの転送状況を把握し、適宜ウェイト要求を発生させることが可能である。
(2)優先順位の最も高い第1のライトDMAC15からの厳守しなければならないデータ転送量は間違いなく転送しつつ、他のDMACからのリクエストも処理可能にすることによって、全体としてのデータ転送量を増加させ効率的なデータ転送が可能となる。
[第2の実施形態]
図6は本発明の第2の実施形態のMFPにおけるアービタの構成を示すブロック図である。本実施形態のMFPの全体の構成は図9と同じであり、アービタ213は図9に示すアービタ13と同様、MFP内のASIC1内に設けられている。
アービタ213は、第1の必要転送時間計算部(必要転送時間計算部1)2211、第2の必要転送時間計算部(必要転送時間計算部2)2212、第3の必要転送時間計算部(必要転送時間計算部3)2213、及びリクエスト調停部222を備えている。
第1の必要転送時間計算部2211には、第1のライトDMAC15から、転送要求発行時にデータの第1のバースト長(バースト長1)が入力される。また、ラインスタート信号、及びラインエンド信号が入力される。さらに、必要転送レート保持部123から必要転送レート情報Ra1が入力される。同様に第2の必要転送時間計算部2212には、第1のリードDMAC16から、データの第2のバースト長(バースト長2)、ラインスタート信号、及びラインエンド信号が入力され、必要転送レート保持部123から必要転送レート情報Ra2が入力される。また、第3の必要転送時間計算部2213には、第2のライトDMAC17から、データの第3のバースト長(バースト長3)、ラインスタート信号、及びラインエンド信号が入力され、必要転送レート保持部123から必要転送レート情報Ra3が入力される。
リクエスト調停部222には、第1のライトDMAC15及び第2のライトDMAC17並びに第1のリードDMAC16から転送要求が入力される。また、第1の必要転送時間計算部2211、第2の必要転送時間計算部2212、及び第3の必要転送時間計算部2213から、それぞれ第1のウェイト要求信号(ウェイト要求信号1)S1、第2のウェイト要求信号(ウェイト要求信号2)S2、及び第3のウェイト要求信号(ウェイト要求信号3)S3が入力される。さらに、第1の必要転送時間計算部2211、第2の必要転送時間計算部2212、及び第3の必要転送時間計算部2213に対し、それぞれ第1のリクエスト処理完了信号(リクエスト処理完了信号1)S4、第2のリクエスト処理完了信号(リクエスト処理完了信号2)S5、及び第3のリクエスト処理完了信号(リクエスト処理完了信号3)S6を送出する。
ここで、第1の必要転送時間計算部2211、第2の必要転送時間計算部2212、及び第3の必要転送時間計算部2213は、それぞれ第1の実施形態における必要転送時間計算部121と同様な構成を有しており、それぞれ式[1]〜[3]と同様な式を用いて、それぞれ必要転送時間T21、T22、T23を算出する。
つまり、第1の実施形態のアービタ113では第1のライトDMAC15に対してのみ必要転送時間計算部を設けたが、本実施形態では全てのDMACに対して必要転送時間計算部を設け、各DMACに対する必要転送時間計算部に必要な転送レート情報Ra1、Ra2、Ra3を供給し、各DMACが必要転送レートを守ることができるようにアービトレーションを実施する。
ここでも、第1の実施形態と同じく、3つのDMACの優先順位は、第1のライトDMAC15が一位、第1のリードDMAC16が二位、第2のライトDMAC17が三位である。そして、各DMACに対して転送レートを計算し、それが必要転送レートを超えていた場合には、各DMACに対してウェイト要求信号をアサート可能である。
次にアービタ213の動作について、図7に示すフローチャートを参照しながら説明する。
まずステップST11にて、リクエスト調停部222がリクエストを受け付ける。次いで、ステップST12にて、リクエスト調停部122は優先順位が一位である第1のライトDMAC15からのリクエストの有無を判断し、ある場合は(ST12:Yes)、ステップST13にて、第1の必要転送時間計算部2211が必要転送時間T21を算出する。
次にステップST14にて、第1の必要転送時間計算部2211は、経過時間T1が必要転送時間T21より長いか否かを判断し、長い場合は(ST14:Yes)、ステップST16にて、リクエスト調停部222が第1のライトDMAC15からのリクエストを処理する。
一方、経過時間T1が必要転送時間T21以内の場合は(ST14:No)、ステップST15にて、その他のDMACからのリクエストの有無を判断する。そして、ない場合は(ST15:No)、ステップST16にて、第1のライトDMAC15からのリクエストを処理する。
一方、その他のDMACからのリクエストがある場合は(ST15:Yes)、ステップST19に進んで、優先順位が二位である第1のリードDMAC16からのリクエストの有無を判断する。先のステップST12にて、第1のライトDMAC15からのリクエストがないと判断した場合も(ST12:No)、ステップST19を実行する。
そして、第1のリードDMAC16からのリクエストが有ると判断した場合は、ステップST20にて、第2の必要転送時間計算部2212が必要転送時間T22を算出する。次にステップST21にて、第2の必要転送時間計算部2211は、経過時間T1が必要転送時間T22より長いか否かを判断し、長い場合は(ST21:Yes)、ステップST22にて、リクエスト調停部222は第1のリードDMAC16からのリクエストを処理する。
一方、経過時間T1が必要転送時間T22以内の場合は(ST21:No)、ステップST23にて、経過時間T1が必要転送時間T21より長いか否かを判断する。判断の結果、長い場合はステップST16に進んで、第1のライトDMAC15からのリクエストを処理する。また、長くない場合は、ステップST24にてその他(第1のライトDMAC15及び第1のリードDMAC16以外)のDMACからのリクエストの有無を判断する。判断の結果、ない場合は(ST24:No)、ステップST22にて第1のリードDMAC16からのリクエストを処理する。
その他のDMACからのリクエストがある場合は(ST24:Yes)、ステップST25に進んで、優先順位が三位である第2のライトDMAC17に対して設けた第3の必要転送時間計算部2213が必要転送時間T23を算出する。先のステップST19にて、第1のリードDMAC16からのリクエストがないと判断した場合も(ST19:No)、ステップST25を実行する。
次にステップST26にて、第3の必要転送時間計算部2213は、経過時間T1が必要転送時間T23より長いか否かを判断し、長い場合は(ST26:Yes)、ステップST27にて、リクエスト調停部222が第2のライトDMAC17からのリクエストを処理する。
一方、経過時間T1が必要転送時間T23以内の場合は(ST26:No)、ステップST28にて、経過時間T1が必要転送時間T21より長いか否かを判断する。そして、長い場合は、ステップST16に進んで、第1のライトDMAC15からのリクエストを処理する。また、長くない場合は、ステップST29にて、経過時間T1が必要転送時間T22より長いか否かを判断する。そして、長い場合は、ステップST22に進んで、第1のリードDMAC16からのリクエストを処理する。
第1のライトDMAC15からのリクエストの処理(ステップST16)、第1のリードDMAC16からのリクエストの処理(ステップST22)、或いは第2のライトDMAC17からのリクエストの処理(ステップST27)を実行した後、ステップST17で、待機させている(ウェイト処理中)リクエストの有無を判断し、なければ、ステップST18で全データの転送が完了したと判断するまで、ステップST11から繰り返す。
待機させているリクエストがある場合は(ST17:Yes)、それが第1のライトDMAC15からのリクエストであれば(ST30:Yes)、ステップST14に進み、第1のライトDMAC15ではなく第1のリードDMAC16からのリクエストであれば(ST30:No→ST31:Yes)、ステップST21に進む。
以上説明した図7のフローチャートの処理を要約すると以下のようになる。
DMACからリクエストが発行されると、アービタ213は、まず第1のライトDMAC15からのリクエストか否かを判断する。判断の結果、そうであった場合は必要転送時間T2を算出する。そして、T2を現在のラインのスタートからの経過時間T1と比較し、T1の方がT2よりも長い場合は、そのまま第1のライトDMAC15からのリクエストを処理する。T2の方が長い場合は、その間は他のDMACからのリクエストがあればそれを優先して処理し、なければ第1のライトDMAC15からのリクエストを処理し、全データの転送が完了していれば終了、そうでなければ次のリクエストを待つ。
リクエストの発行元が第1のライトDMAC15でなかった場合は、優先順位が次に高い第1のリードDMAC16が発行元か否かを判断し、そうであれば第1のライトDMAC15と同様な必要転送時間を計算し、ウェイトが必要であればウェイト処理を行う。リクエストの発行元が第1のリードDMAC16でなかった場合は、残りは第2のライトDMAC17のみであるから、第2のライトDMAC17について同様の計算を実行する。
第1のライトDMAC15に対するウェイト処理中に、他のDMACからのリクエストが発行された場合は、「第1のリードDMAC16からの処理か否か」の判定処理に移る。そこからは必要転送時間の計算となり、第1のリードDMAC16でウェイト処理が必要と判断され、それが実行されると、第1のライトDMAC15のウェイト時間が経過していないか否かを確認する処理を実行する。確認の結果、ウェイト期間が終了しているか若しくは他のDMACからのリクエストがなければ、第1のライトDMAC15からのリクエストを処理する。
この処理が終了すると、他にウェイト中のDMACがないかどうかを判別する処理を行う。この判別はウェイト要求信号(“1”でウェイト要求有り)に基づいて行うことができる。各DMACに対するウェイト要求信号の論理を確認し、ウェイト中のDMACがあれば、そのリクエストの処理に移る。ウェイト中のDMACがなければ、全データ転送完了か否かを判断し、完了していれば終了、そうでなければ次のリクエストの受け付けへと移る。ウェイト要求信号は一旦アサートされると、そのリクエストが処理されるまでネゲートされない。リクエストが処理されると、リクエスト調停部222よりリクエスト処理完了信号がアサートされ、それを受けてウェイト要求信号がネゲートされる。
以上のように、本発明の第2の実施形態のアービタ113は、下記(1)〜(4)の効果を有する。
(1)全てのDMACに対して、データ転送状況を把握できるとともに、適宜ウェイト要求を発生させることができる。
(2)全てのDMACのデータ転送量を監視しながらアービトレーションすることによって、より精度よく効率的にデータ転送を行うことができる。
(3)ウェイト処理中のDMACを放置することなく、確実に処理することができる。
(4)複数のDMACに対してウェイト状態にあっても、正常に監視し、かつ確実にリクエストを処理することができる。
15・・・第1のライトDMAC、16・・・第1のリードDMAC、17・・・第2のライトDMAC、113,213・・・アービタ、121・・・必要転送時間計算部、122,222・・・リクエスト調停部、123,223・・・必要転送レート保持部、1211,2211,2212,2213・・・必要転送時間T2演算部及び時間比較部、1212・・・タイマー、1213・・・ウェイト要求信号生成部。
特開平7−13923号公報
本発明は、優先順位の異なる複数のDMAC(ダイレクト・メモリ・アクセス・コントローラ、DMAコントローラ)からの転送要求を調停する調停装置(アービタ)、画像形成装置、調停方法及びプログラムに関し、より詳しくは、優先順位の高いDMACからの転送要求を適宜制限することにより、システム全体のパフォーマンスを向上させるようにした調停装置、画像形成装置、調停方法及びプログラムに関する。
本願の第1の発明は、優先順位の異なる複数のDMAコントローラからの転送要求を調停する調停装置であって、前記複数のDMAコントローラのうちのいずれかのDMAコントローラにより順次発行される転送要求を受け付ける転送要求受付手段と、前記順次発行される転送要求毎に入力されるデータの累積転送量を算出する累積転送量算出手段と、前記累積転送量に対応するデータを所定時間内に転送完了するために必要な転送レートを保持する転送レート保存手段と、前記累積転送量および前記転送レートに基づいて、前記累積転送量に対応するデータを転送するための必要転送時間を算出する必要転送時間算出手段と、前記転送要求毎に入力されるデータの転送に要する経過時間を計測する経過時間計測手段と、前記経過時間と前記必要転送時間とを比較する比較手段と、前記複数のDMAコントローラからの転送要求に対する対応を判断する判断手段と、を備え、前記判断手段は、前記複数のDMAコントローラのうち優先順位が最も高く設定されているDMAコントローラからの転送要求である場合に、前記比較した結果に応じて前記転送要求に対する処理の実行または待機を決定するとを特徴とする。
本願の第2の発明は、優先順位の異なる複数のDMAコントローラからの転送要求を調停する画像形成装置の調停方法であって、前記複数のDMAコントローラのうちのいずれかのDMAコントローラにより順次発行される転送要求を受け付ける工程と、前記順次発行される転送要求毎に入力されるデータの累積転送量を算出する工程と、前記累積転送量に対応するデータを所定時間内に転送完了するために必要な転送レートを保持する工程と、前記累積転送量および前記転送レートに基づいて、前記累積転送量に対応するデータを転送するための必要転送時間を算出する工程と、前記転送要求毎に入力されるデータの転送に要する経過時間を計測する工程と、前記必要転送時間と前記経過時間とを比較する工程と、前記複数のDMAコントローラからの転送要求に対する対応を判断する判断工程と、を備え、前記判断工程は、前記複数のDMAコントローラのうち優先順位が最も高く設定されているDMAコントローラからの転送要求である場合に、前記比較した結果に応じて前記転送要求に対する処理の実行または待機を決定することを特徴とする

Claims (8)

  1. 優先順位の異なる複数のDMACからの転送要求を調停する調停装置において、
    所定時間毎に入力される所定量のデータを前記所定時間内に転送可能であり、かつ優先順位が最も高く設定されている第1のDMACにより前記所定時間内に前記所定量のデータの一部毎に順次発行される転送要求を受け付ける手段と、それらの転送要求による処理を実行する手段と、それらの転送要求による転送量の累積値を算出する手段と、前記累積値を前記第1のDMACに対して設定された転送速度で除算することにより、前記累積値のデータの必要転送時間を算出する手段と、前記所定の時間毎の経過時間を計測する手段と、前記経過時間と前記必要転送時間とを比較する手段と、その比較結果に基づいて、前記転送要求による処理を実行させるか待機させるかを決定する手段とを有することを特徴とする調停装置。
  2. 請求項1記載の調停装置において、
    前記決定する手段は、前記経過時間が前記必要転送時間を越えている場合は、前記転送要求による処理を実行させ、前記経過時間が前記必要転送時間以内の場合は、前記転送要求による処理を待機させることを特徴とする調停装置。
  3. 請求項2記載の調停装置において、
    前記決定する手段は、前記経過時間が前記必要転送時間以内の場合で、かつ前記第1のDMAC以外のDMACから転送要求がある場合は、その転送要求による処理を実行させることを特徴とする調停装置。
  4. 請求項1記載の調停装置おいて、
    前記第1のDMAC以外のDMACに対しても、前記各手段が設けられていることを特徴とする調停装置。
  5. 請求項1記載の調停装置において、
    前記決定する手段は、転送要求による処理を待機させるためのウェイト要求信号を発生した後、転送要求による処理を完了した前記実行する手段から処理完了信号を受けたとき、前記ウェイト要求信号をネゲートすることを特徴とする調停装置。
  6. 請求項4記載の調停装置において、
    複数のDMACの転送要求を待機させている場合、一つの待機処理が終了した際に、他にも待機させているDMACの有無を判断し、ある場合にはその処理を監視しながら、他のDMACからの転送要求を処理することを特徴とする調停装置。
  7. 優先順位の異なる複数のDMACからの転送要求を調停する調停方法において、
    所定時間毎に入力される所定量のデータを前記所定時間内に転送可能であり、かつ優先順位が最も高く設定されている第1のDMACにより前記所定時間内に前記所定量のデータの一部毎に順次発行される転送要求を受け付ける工程と、それらの転送要求による処理を実行する工程と、それらの転送要求による転送量の累積値を算出する工程と、前記累積値を前記第1のDMACに対して設定された転送速度で除算することにより、前記累積値のデータの必要転送時間を算出する工程と、前記所定の時間毎の経過時間を計測する工程と、前記経過時間と前記必要転送時間とを比較する工程手段と、その比較結果に基づいて、前記転送要求による処理を実行させるか待機させるかを決定する工程とを有することを特徴とする調停方法。
  8. コンピュータに請求項7記載の調停方法の各工程を実行させるためのプログラム。
JP2012032377A 2012-02-17 2012-02-17 調停装置、画像形成装置、調停方法及びプログラム Expired - Fee Related JP5424138B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012032377A JP5424138B2 (ja) 2012-02-17 2012-02-17 調停装置、画像形成装置、調停方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012032377A JP5424138B2 (ja) 2012-02-17 2012-02-17 調停装置、画像形成装置、調停方法及びプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007266815A Division JP4934000B2 (ja) 2007-10-12 2007-10-12 調停装置、調停方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2012104160A true JP2012104160A (ja) 2012-05-31
JP5424138B2 JP5424138B2 (ja) 2014-02-26

Family

ID=46394381

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012032377A Expired - Fee Related JP5424138B2 (ja) 2012-02-17 2012-02-17 調停装置、画像形成装置、調停方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5424138B2 (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63172359A (ja) * 1987-01-12 1988-07-16 Fujitsu Ltd 直接メモリアクセスシステム
JPH05204832A (ja) * 1992-01-29 1993-08-13 Nec Corp Dmaバス調停方式
JPH0713923A (ja) * 1993-06-24 1995-01-17 Ricoh Co Ltd バス制御方法
JP2002207691A (ja) * 2001-01-11 2002-07-26 Matsushita Electric Ind Co Ltd データ転送制御装置
JP2002351815A (ja) * 2001-05-23 2002-12-06 Fuji Photo Film Co Ltd バス制御方法及び装置
JP2003018376A (ja) * 2001-07-05 2003-01-17 Ricoh Co Ltd 画像形成装置
JP2005004563A (ja) * 2003-06-13 2005-01-06 Canon Inc Dma転送制御装置
JP2005044202A (ja) * 2003-07-24 2005-02-17 Sharp Corp 画像データ転送制御装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63172359A (ja) * 1987-01-12 1988-07-16 Fujitsu Ltd 直接メモリアクセスシステム
JPH05204832A (ja) * 1992-01-29 1993-08-13 Nec Corp Dmaバス調停方式
JPH0713923A (ja) * 1993-06-24 1995-01-17 Ricoh Co Ltd バス制御方法
JP2002207691A (ja) * 2001-01-11 2002-07-26 Matsushita Electric Ind Co Ltd データ転送制御装置
JP2002351815A (ja) * 2001-05-23 2002-12-06 Fuji Photo Film Co Ltd バス制御方法及び装置
JP2003018376A (ja) * 2001-07-05 2003-01-17 Ricoh Co Ltd 画像形成装置
JP2005004563A (ja) * 2003-06-13 2005-01-06 Canon Inc Dma転送制御装置
JP2005044202A (ja) * 2003-07-24 2005-02-17 Sharp Corp 画像データ転送制御装置

Also Published As

Publication number Publication date
JP5424138B2 (ja) 2014-02-26

Similar Documents

Publication Publication Date Title
EP2807567B1 (en) Systems and methods for dynamic priority control
US20080270658A1 (en) Processor system, bus controlling method, and semiconductor device
US9330025B2 (en) Information processing apparatus, memory control apparatus, and control method thereof
TWI470439B (zh) 在以正交時脈操作的中央處理器及至少一直接記憶存取週邊設備之間單一埠靜態隨機存取記憶體之頻寬分享
JP4198376B2 (ja) バスシステム及びバスシステムを含む情報処理システム
TW452696B (en) Method for arbitrating multiple memory access requests in a unified memory architecture via a non unified memory controller
JP4934000B2 (ja) 調停装置、調停方法及びプログラム
JP4846482B2 (ja) バスアービトレーション装置
US20070260791A1 (en) Data processing device
WO2006024193A1 (fr) Procede et systeme pour transfert de donnees
US7913013B2 (en) Semiconductor integrated circuit
JP5424138B2 (ja) 調停装置、画像形成装置、調停方法及びプログラム
WO2021075076A1 (ja) 情報処理装置、及び情報処理方法
JP2011065359A (ja) メモリシステム
JP2006215621A (ja) Dma制御装置
JP4327081B2 (ja) メモリアクセス制御回路
US8713205B2 (en) Data transfer device and data transfer method
US11842071B2 (en) Data transfer device and data transfer method
US20100153610A1 (en) Bus arbiter and bus system
JP7226084B2 (ja) 情報処理装置
JP4249741B2 (ja) バスシステム及びバスシステムを含む情報処理システム
JP2017162431A (ja) メモリ制御装置及び撮像装置
JPH0844661A (ja) 情報処理装置
EP2261810A1 (en) Data check circuit
JP2012137844A (ja) 半導体装置及び制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120313

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130731

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131101

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131114

R151 Written notification of patent or utility model registration

Ref document number: 5424138

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees