JP4847036B2 - バスアクセスを調停する制御装置およびデータ処理装置の制御方法 - Google Patents

バスアクセスを調停する制御装置およびデータ処理装置の制御方法 Download PDF

Info

Publication number
JP4847036B2
JP4847036B2 JP2005099420A JP2005099420A JP4847036B2 JP 4847036 B2 JP4847036 B2 JP 4847036B2 JP 2005099420 A JP2005099420 A JP 2005099420A JP 2005099420 A JP2005099420 A JP 2005099420A JP 4847036 B2 JP4847036 B2 JP 4847036B2
Authority
JP
Japan
Prior art keywords
bus
request
access
master
read
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.)
Expired - Fee Related
Application number
JP2005099420A
Other languages
English (en)
Other versions
JP2006277620A (ja
JP2006277620A5 (ja
Inventor
尚 石川
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 JP2005099420A priority Critical patent/JP4847036B2/ja
Priority to US11/378,005 priority patent/US8086776B2/en
Priority to CNB2006100665585A priority patent/CN100504825C/zh
Publication of JP2006277620A publication Critical patent/JP2006277620A/ja
Publication of JP2006277620A5 publication Critical patent/JP2006277620A5/ja
Priority to US13/304,115 priority patent/US8706939B2/en
Application granted granted Critical
Publication of JP4847036B2 publication Critical patent/JP4847036B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Description

本発明は、バスアクセスを調停する制御装置およびデータ処理装置の制御方法に関する。
バスマスタのバスアクセスを調停するアービタは、DRAMなどのメモリバスをアクセスする複数のバスマスタからのバス使用要求に対して、そのうちの一つのバスマスタに対してバス使用権を与えるバス使用権の管理制御(調停)を行う。各バスマスタに対するバス使用権の優先順位はハードウェア的に決められているので、複数のバスマスタから同時にバス使用要求があった場合、バスアービタは、予め決められている優先順位に従い、必ず、優先順位が高いバスマスタにバス使用権を与えるようにバス使用許可信号を出力する(例えば、特許文献1参照)。
従って、高い優先順位に位置付けされたバスマスタから頻繁にバス使用要求が出力されると、そのバスマスタのバス使用権の獲得割合が多くなり、低い優先順位に位置付けされたバスマスタがバス使用権を獲得するのが困難になるという問題点がある。
また、バス使用要求の受け付けを制限し、一度受け付けたバス使用要求のすべてに対してバス使用権を与えてから、次のバス使用要求を受け付けるようにすることができる。しかし、多数のバスマスタからバス使用要求が出る場合、たとえ高い優先順位に位置付けされたバスマスタでも、低い優先順位に位置付けされたバスマスタと同程度のアクセスしか実行できないという問題がある。
さらに、バースト転送がサポートされたバスや、DRAMなどのメモリバスにおいて、バス使用権を獲得したバスマスタが頻繁に入れ替わると、アドレス設定のためのオーバヘッドが増加し、バスの使用効率が低下するという問題点がある。
また、一つのアービタにバス使用権の調停を集中させると、バスマスタ数の増加に伴い調停処理が複雑化して回路の増大を招くだけでなく、バスの高速性も損われる欠点がある。
特開平09-062579号公報
本発明は、バス使用権を動的に管理して、バスの使用効率を向上することを目的とする。
また、バス使用権の調停を分散処理して、バスマスタ数の増加に伴う回路規模の増大を防ぎ、バスの高速性を維持することを他の目的とする。
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
本発明にかかる制御装置は、バスのアクセスを調停する制御装置であって、前記アクセスの対象であるバスに接続されたメモリに対してリードアクセスを要求する第一のマスタと、前記メモリに対してライトアクセスを要求する第二のマスタを含む複数のマスタ、並びに、前記第二のマスタのライトアクセスの要求を、前記第一のマスタのリードアクセスの要求よりも優先して前記調停を行う第一のアービタを備え、前記アクセスの対象であるバスに接続された複数のバスマスタと、前記バスにアクセスしたバスマスタを識別する識別手段と、前記識別手段の識別結果に応じて前記複数のバスマスタの優先順位を設定する第二のアービタとを有することを特徴とする。
本発明によれば、バス使用権を動的に管理することで、バスの使用効率を向上することができる。
また、バス使用権の調停を分散処理することで、バスマスタ数の増加に伴う回路規模の増大を防ぎ、バスの高速性を維持することができる。
以下、本発明にかかる実施例を図面を参照して詳細に説明する。勿論、以下の実施例は、本発明の技術分野における当業者による実施を容易にするための開示を提供するものであり、特許請求の範囲によって確定される本発明の技術的範囲に含まれるほんの一部の実施例に過ぎない。従って、本明細書に直接的に記載されていない実施例であっても、技術思想が共通する限り、本発明の技術的範囲に包含されることは、当業者にとって自明である。
また、便宜上、複数の実施例を記載するが、これらは個別に発明として成り立つだけではなく、勿論、複数の実施例を適宜組み合わせることでも発明が成り立つことは、当業者であれば容易に理解できる。
[装置の構成]
まず、各種画像処理を行った後、画像を出力する画像処理装置を例に説明する。図1は実施例1の画像処理装置の構成例を示すブロック図である。
図1において、CPU 1は、ROM 2に格納されたプログラムに従い、DRAM 7をワークメモリとして、画像処理装置全体を制御する。また、CPU 1は、CPUバス1aを介してROM 2、バスブリッジ3およびI/Oポート9に接続する。
アービタ5は、バスブリッジ3を介したCPU 1によるDRAM 7のアクセス、および、n(n≧1、整数)個の画像処理モジュール4によるDRAM 7のアクセスを調停する。また、DRAM 7は、DRAMインタフェイス(I/F) 6を有する。
また、画像処理モジュール1の一つ(図1ではモジュール4n)は、例えばインクジェットプリンタのプリントヘッドに接続するためのヘッドI/F 8が備わる。
なお、図1には、DRAM 7がCPU 1および複数の画像処理モジュール4に共有される例を示したが、パフォーマンスの維持または向上のために、CPU 1用のRAMをCPUバス1aに接続する構成としてもよい。
[処理動作]
CPU 1は、ROM 2に格納されたプログラムに従い、I/Oポート9より処理すべき画像データを受け取り、バスブリッジ3、アービタ5、DRAM I/F 6を経てDRAM 7へ格納する。次に、CPU 1は画像処理モジュール4aのコンフィグレーションレジスタを設定し、画像処理モジュール4aを動作させる。
画像処理モジュール4aは、所定の処理を実行し、コンフィグレーションレジスタに設定された処理すべきデータの読出処理が終了するか、あるいは、コンフィグレーションレジスタに設定された処理データの書込処理が終了すると、割り込みを発生して、処理の終了をCPU 1へ通知する。
CPU 1は、割り込みを受けると、その要因を解析し、画像処理モジュール4aの読出処理が終了した場合は、次に処理すべきデータの設定を行い、画像処理モジュール4aに処理を続行させる。また、画像処理モジュール4aの書込処理が終了した場合は、次の処理データの格納先を設定し、画像処理モジュール4aに処理を続行させるとともに、次の画像処理モジュール4bのコンフィグレーションレジスタを設定して、画像処理モジュール4bを動作させる。
画像処理モジュール4bは、所定の処理を実行し、コンフィグレーションレジスタに設定された処理すべきデータの読出処理が終了するか、あるいは、コンフィグレーションレジスタに設定された処理データの書込処理が終了すると、割り込みを発生して、処理の終了をCPU 1へ通知する。
CPU 1は、割り込みを受けると、その要因を解析し、画像処理モジュール4bの読出処理が終了した場合は、次に処理すべきデータの設定を行い、画像処理モジュール4bに処理を続行させる。また、画像処理モジュール4bの書込処理が終了した場合は、次の処理データの格納先を設定し、画像処理モジュール4bに処理を続行させるとともに、次の画像処理モジュール4cのコンフィグレーションレジスタを設定して、画像処理モジュール4cを動作させる。
このように、前の処理が終わった直後に、次の画像処理モジュールを起動し、処理データを次々と画像処理モジュールに受け渡すことで、画像処理モジュール単位のパイプラインを構成することができる。
そして、画像処理モジュール4mまでの処理が進み、所定量以上のビットマップデータを生成すると、CPU 1は図示しないプリンタエンジンを起動し、プリンタエンジンの同期信号に合わせて画像処理モジュール4nに処理を開始させ、ヘッドI/F 8を介してビットマップデータをプリンタエンジンに送り、プリントさせる。
●画像処理モジュールの構成
図2は画像処理モジュールの詳細な構成例を説明するブロック図で、リードバッファ10、m(m≧1、整数)個のサブモジュール11、ライトバッファ12、アービタ13、リードアドレス発生器14、割込コントローラ15、ライトアドレス発生器16を備える。
CPU 1は、画像処理モジュール4のコンフィグレーションレジスタの設定により、リードアドレス発生器14にリードの開始および終了アドレスを設定し、リードイネーブル信号Renをセットする。また、ライトアドレス発生器16にライトの開始および終了アドレスを設定し、ライトイネーブル信号Wenをセットする。
アービタ13はリードバッファ10の空き容量Rpおよびリードアドレス発生器14のイネーブル信号Renを検出し、リードアドレスが有効(Ren=‘1’)で、リードバッファ10にデータが格納可能(Rp≧Rn)であれば、アービタ5へリードリクエスト(PREQ=‘1’、PNRW=‘0’、PNUM=Rn、PADD=Rad)を発行する。
一方、ライトバッファ12のデータ蓄積数Wpが所定のワード数以上(Wp≧Wn)になると、アービタ13は、ライトアドレス発生器16のイネーブル信号Wenを検出し、ライトアドレスが有効(Wen=‘1’)であれば、アービタ5へライトリクエスト(PREQ=‘1’、PNRW=‘1’、PNUM=Wn、PADD=Wad)を発行する。
アービタ5は、画像処理モジュール4からリクエスト信号PREQを受け取ると、PNRWでリード/ライトを判別し、PNUMでワード数を、PADDでアドレスを検知する。CPU 1および他の画像処理モジュール4からのリクエストがなければ、アービタ5は、DRAM I/F 6を通じてDRAM 7の該当データのアクセスを開始する。DRAM I/F 6にリクエストが受け付けられると、アービタ5は、受領信号PACKを要求元の画像処理モジュール4に返す。一方、CPU 1および他の画像処理モジュール4からリクエストがある場合は、優先順位に従って、リクエストを受け付ける。
アービタ13は、受領信号PACKを受け取ると、リードリクエストの場合は受領信号Rackを要求元のリードアドレス発生器14に返し、ライトリクエストの場合は受領信号Wackを要求元のライトアドレス発生器16に返す。
受領信号Rackを受け取ったリードアドレス発生器14は、次のアドレスを生成するが、リクエストしたアドレスがリード終了アドレスの場合は、リードイネーブル信号Renをリセットし、リード終了信号Rendを割込コントローラ15に出力する。また、受領信号Wackを受け取ったライトアドレス発生器16は、次のアドレスを生成すが、リクエストしたアドレスがライト終了アドレスの場合は、ライトイネーブル信号Wenをリセットし、ライト終了信号Wendを割込コントローラ15に出力する。
割込コントローラ15は、コンフィグレーションレジスタによってリード終了割込マスクおよびライト終了割込マスクの設定が可能で、各割込マスクの設定が割込イネーブルとなっている場合は、リード終了信号Rendまたはライト終了信号Wendによって割込信号INTを生成してCPU 1へ通知する。
CPU 1は、割り込みを受付けると、割込コントローラ15のステータスを読み取り、割り込みの要因がリード終了の場合は、リード終了割込マスクをリセットして割り込みを解除する。さらに処理を続行する場合は、リード開始および終了アドレスを再設定し、リードイネーブル信号Renのセットなどを行った後、リード終了割込マスクをセットする。同様に、割り込み要因がライト終了の場合は、ライト終了割込マスクをリセットして割り込みを解除する。さらに処理を続行する場合は、ライト開始および終了アドレスを再設定し、ライトイネーブル信号Wenのセットなどを行った後、ライト終了割込マスクをセットする。
次に、DRAM 7よりデータが読み出されるとアービタ5は、DRAMデータ有効信号PVALIDを要求元の画像処理モジュール4に返す。要求元の画像処理モジュール4のアービタ13は、リードバッファ10へデータ有効信号Rvalidを返す。リードバッファ10は、データ有効信号Rvalidがセットされている期間、DRAMデータ出力信号PDIN上のデータを格納する。この操作により、DRAM 7のデータがリードバッファ10へ格納される。
一方、DRAM 7にデータを書込む場合は、DRAM 7の書込タイミングに合わせて、アービタ5は、DRAMデータ有効信号PVALIDを要求元の画像処理モジュール4に返す。要求元の画像処理モジュール4のアービタ13は、ライトバッファ12へデータ有効信号Wvalidを返す。ライトバッファ12は、データ有効信号Wvalidがセットされている期間、DRAMデータ入力信号PDOUTとしてDRAM 7に書き込むデータを出力する。この操作により、ライトバッファ12のデータがDRAM 7へ格納される。
リードバッファ10は、サブモジュール11aの処理に必要なデータが揃うと有効信号valid_0をセットし、サブモジュール11aの処理に必要なデータが揃っていなければ有効信号valid_0をリセットする。
そして、サブモジュール11aからの保持要求信号stall_0がセットされていない場合、リードバッファ10は、格納したデータをクロックに同期して出力する。もし、保持要求信号stall_0がセットされている場合は、データを更新しない。
サブモジュール11aは、有効信号valid_0がセットされているデータのみを受け取る。なお、データの受け取りが不可能な場合は、保持要求信号stall_0をセットし、リードバッファ10の出力をホールドする。なお、入力データの並べ替えが不要な場合、リードバッファ10はFIFO (First In First Out)メモリでよい。同様に、出力データの並べ替えが不要な場合、ライトバッファ12はFIFOメモリでよい。
画像処理モジュール4の内部は、画像処理を行う一つ以上のサブモジュール11によって構成され、各サブモジュール間では、上記と同様の動作(有効信号valid_xと保持要求信号stall_xによるハンドシェーク)によってデータdata_xの受け渡しを行う。
●サブモジュール間のデータ転送
図3はサブモジュール11間のデータ転送を説明するタイミングチャートである。
データ送信側のサブモジュール11は、データが出力可能であればクロックclkの立ち上がりに同期してデータ信号d1および有効信号validをセットする(T1)。次のクロックの立ち上がりで受信側から保持要求信号stallがセットされていなければデータ信号d1が受信されたとみなし、次のデータが出力可能であればデータ信号d2および有効信号validをセットする(T2)。もし、次のデータが出力不能であれば有効信号validをリセットする(T3)。また、次のクロックの立ち上がりで受信側から保持要求信号stallがセットされていた場合は、データ信号が受信されなかったとみなし、データ信号d5および有効信号validをホールドする(T7)。なお、受信側から保持要求信号stallがセットされていても有効信号validをセットしていなければ(T8)、無効データであるからデータ信号および有効信号validをホールドせずに、次の有効データとしてデータ信号d6を出力し、有効信号validをセットする(T9)。言い換えれば、有効信号validをセットしていない場合の保持要求信号stallは無視する。
データ受信側のサブモジュール11は、受信可能であれば有効信号validがセットされているデータ信号をクロックclkの立ち上がりに同期して受け取る(T1、T2、T4、T5)。また、受信不能であれば保持要求信号stallをセットし、送信側にデータ信号d5および有効信号validを保持させる(T6)。そして、受信可能になると保持要求信号stallをリセットし、データ出力d5を受信する(T7)。
また、ライトバッファ12は、バッファに空きがあれば、サブモジュール11からの有効信号valid_nがセットされたときのデータ信号data_nをバッファに格納する。もし、バッファに空きがなければ、保持要求信号stall_nをセットし、サブモジュール11に出力をホールドさせる。
●アービタ13のアルゴリズム
図4はアービタ13のアルゴリズムを説明するフローチャートである。なお、以下の説明においては、リクエストキューに蓄積されたリクエストの数をPp、リクエストキューに蓄積されたリクエストが実行された場合のライトバッファ12のデータ蓄積数(評価値)をPw、リクエストキューに蓄積されたリクエストが実行された場合のリードバッファ10の空き容量(評価値)をPrとする。なお、リクエストキューに蓄積されたリクエストの数Ppはアービタ5がリクエストを受け付ける(PACK=‘1’)と一つ減じられる。また、以下の説明では、(リードリクエストの頻度)>(ライトリクエストの頻度)と仮定し、バスアクセスのリクエスト発生頻度が低いモジュールの順に、後述するバッファの空き状態の検出を行う。
ライトリクエストWreqは、ライトバッファ12の蓄積数の評価値Pwが所定のワード数以上Pw≧Wnになり、ライトアドレスが有効Wen=‘1’であるならばWreq=‘1’になり、リードリクエストRreqは、リードバッファ10の空き容量の評価値Prが所定のワード数以上Pr≧Rnになり、リードアドレスが有効Ren=‘1’であるならばRreq=‘1’になるものとする。
まず、ライトリクエストWreq=‘1’で、ライトバッファ12のデータ蓄積数の評価値Pwと所定値Wthの関係がPw≧Wth、または、直前にリクエストキューに格納したリクエストがライトリクエスト(ID1=IDw)か否かを判定し(S201)、そうであればライトリクエストをリクエストキューに蓄積する(S205)。
上記の条件が成立しない場合は、リードリクエストRreq=‘1’で、リードバッファ10の空き容量の評価値Prと所定値Rthの関係がPr≧Rth、または、直前にリクエストキューに格納したリクエストがリードリクエスト(ID1=IDr)か否かを判定し(S202)、そうであればリードリクエストをリクエストキューに蓄積する(S206)。
上記の二つの条件が成立せず、リードリクエストRreq=‘1’の場合は(S203)、リードリクエストをリクエストキューに蓄積し(S206)、ライトリクエストWreq=‘1’の場合は(S204)、ライトリクエストをリクエストキューに蓄積する(S205)。
リクエストキューへのライトリクエストの蓄積(S205)は、現在のリクエスト識別コードIDを直前のリクエスト識別コードレジスタID1に格納し、現在のリクエスト識別コードIDをライトリクエスト識別コードIDwに更新する。同時に、ライトバッファ12の蓄積数の評価値Pwからライトデータ数Wnを減算して評価値Pwを更新し、リクエストキューに蓄積されているリクエスト数Ppを一つ増やす。
同様に、リクエストキューへのリードリクエストの蓄積(S206)は、現在のリクエスト識別コードIDを直前のリクエスト識別コードレジスタID1に格納し、現在のリクエスト識別コードIDをリードリクエスト識別コードIDrに更新する。同時に、リードバッファ10の空き容量の評価値Prからリードデータ数Rnを減算して評価値Prを更新し、リクエストキューに蓄積されているリクエスト数Ppを一つ増やす。
上記処理が終了すると、処理をステップS201に戻し、上記の処理を繰り返す。
なお、ここではバッファの容量、アービタ5のシーケンスなどによりリクエストキューに蓄積されるリクエスト数Ppの上限が決まるため、リクエスト数Ppを制限しないが、システムによって制限が必要な場合は、リクエスト数Ppが最大値となった時点で、Rreq=Wreq=0とすればよい。
●アービタ5のアルゴリズム
図5はアービタ5のアルゴリズムを説明するフローチャートである。なお、以下の説明では、三つの画像処理モジュールM1、M2、M3と、エンジン処理モジュールM4、バスブリッジB0が接続されているとする。エンジン処理モジュールM4には、リアルタイム制御のために、最高の優先順位を設定する。また、バスブリッジB0は、エンジン処理モジュールM4に次いで高い優先順位に設定する。三つの画像処理もジュールの優先順位は同じである。従って、各モジュールの優先順位は下記のようになる。
M4 > B0 > M1, M2, M3
アービタ5は、まず、優先順位の一番高いエンジン処理モジュールM4からバス使用権のリクエストreq4がある(つまりreq4=‘1’)か否かを判定する(S211)。req4=‘1’ならばリクエストreq4を受け付け、現在のリクエスト識別コードIDを直前のリクエスト識別コードレジスタID1に格納し、現在のリクエスト識別コードIDをエンジン処理モジュールM4のリクエスト識別コードID_4に更新し、エンジン処理モジュールM4に受領信号PACKを返し(S216)、処理をステップS211に戻す。
エンジン処理モジュールM4のリクエストがなければ、バスブリッジB0のリクエストreq0がある(つまりreq0=‘1’)か否かを判定する(S212)。req0=‘1’ならばリクエストreq0を受け付け、現在のリクエスト識別コードIDを直前のリクエスト識別コードレジスタID1に格納し、現在のリクエスト識別コードIDをバスブリッジB0のリクエスト識別コードID_0に更新し、バスブリッジB0に受領信号PACKを返し(S217)、処理をステップS211に戻す。
バスブリッジB0のリクエストもなければ、画像処理モジュールM1のリクエストreq1がある(つまりreq1=‘1’)か否かを判定する(S213)。req1=‘1’で、さらに、リクエストキューに蓄積されている画像処理モジュールM1のリクエスト数P1が三つの画像処理モジュールM1、M2、M3の中で一番多い(つまりP1=Pmax)、あるいは、直前に受け付けたリクエストが画像処理モジュールM1のリクエスト(つまりID1=ID_1)であれば、リクエストreq1を受け付け、現在のリクエスト識別コードIDを直前のリクエスト識別コードレジスタID1に格納し、現在のリクエスト識別コードIDを画像処理モジュールM1のリクエスト識別コードID_1に更新し、画像処理モジュールM1に受領信号PACKを返し(S218)、処理をステップS211に戻す。
また、req1=‘0’あるいはP1≠PmaxかつID1≠ID_1ならば、他の画像処理モジュールM2、M3のリクエストreq2、req3がある(つまりreq2=‘1’、req3=‘1’)か否かを判定する(S214、S215)。リクエストがあり、さらに、リクエストキューに蓄積されている画像処理モジュールが三つの画像処理モジュールM1、M2、M3の中で一番多い(つまりP2=PmaxまたはP3=Pmax)、あるいは、直前に受け付けたリクエストが画像処理モジュールM2またはM3のリクエスト(つまりID1=ID_2またはID1=ID_3)であれば、リクエストreq2またはreq3を受け付け、現在のリクエスト識別コードIDを直前のリクエスト識別コードレジスタID1に格納し、現在のリクエスト識別コードIDを画像処理モジュールM2またはM3のリクエスト識別コードID_2またはID_3に更新し、画像処理モジュールM2またはM3に受領信号PACKを返し(S219またはS220)、処理をステップS211に戻す。
上記のアルゴリズムは、一部固定の優先順位を用いているので、高い優先順位に位置付けされているバスマスタ(エンジン処理モジュールM4やバスブリッジB0)から頻繁にバス使用権が要求されると、そのバスマスタにバスが占有されてしまう可能性がある。とくに、上記の例では、バスブリッジB0よりもエンジン処理モジュールM4の優先順位が高く設定されているため、タイミングによってCPU 1のリクエストに対する応答性が悪化する。また、画像処理モジュールM1、M2、M3においても、直前に受け付けたリクエストを優先するため、特定の画像処理モジュールにバスを占有されてしまう可能性がある。そこで、特定のバスマスタがバスを占有しないように、連続アクセス数に制限を付ける。
図6は連続したバスアクセスをカウントするアルゴリズムを説明するフローチャートである。
まず、現在リクエストを出しているモジュール数Nrを検出し(S221)、現在のリクエスト識別コードIDと直前のリクエスト識別コードレジスタID1の値を比較し(S222)、Nr≦1またはID1≠IDであればカウンタCを零にリセットする(S223)。また、Nr>1かつID1=IDであれば、ステップS224の判定により、対象モジュールに受領信号PACKを返す度にカウンタCをインクリメントする(S224)。
図6の処理を繰り返すことで、カウンタCには同一モジュールによる連続したバスアクセスの回数(以下「連続バスアクセス数」と呼ぶ)がカウントされる。そして、アービタ5は、カウンタCが所定値になる(C<Cth)と(S226)、直前のリクエスト識別コードレジスタID1が示すモジュールのリクエストをマスクする(S227)。
このように、次には必ず異なるモジュールのリクエストが受け付けられるため、連続バスアクセス数は制限されることになる。なお、一度、異なるモジュールにバスの使用権が移れば、ステップS221〜S223によってカウンタCがリセットされるので、リクエストのマスクは解除される(S228)。
なお、図6には、連続バスアクセス数をカウントするカウンタを全モジュールで共通に使用する例を説明したが、モジュールごとにカウンタを設けてもよい。この場合、モジュールごとに連続バスアクセス数を制限することができる。例えばバスブリッジB0の制限値をCPU 1のキャッシュのラインサイズに合わせておけば、効率的にキャッシュを更新することができる。
また、各モジュールがDRAM 7のそれぞれ異なるバンクをアクセスする場合、バスアクセスの連続性を考慮する必要はない。従って、現在のリクエスト識別コードIDと直前のリクエスト識別コードレジスタID1の比較は不要になる。
このように、バッファの空き状態、直前のアクセス、連続アクセス数に応じてバスアクセスの優先順位を動的に変更(制御)することで、バスアクセスの連続性を向上させつつ、バスマスタのバス使用頻度に合わせた調停が可能になる。
また、アービタ5だけではなく各モジュール内で調停を実行する(調停の分散処理)ため、モジュールに最適な調停が可能である。例えば、上述したように、各バスマスタのリクエスト発生頻度が異なる場合は、発生頻度の低い順にポインタ評価と連続アクセス数の評価を行う。これは、発生頻度の低い方を優先することで、発生頻度の低い方のバス使用権の獲得確率を高め、処理の平準化を図るためである。ただし、発生頻度がほぼ同じ場合は、ライト側を優先する。これは、一般にライト処理の方がレイテンシ(待ち時間)が少なく、メモリバスが放されるまでの時間が短いためである。
以下、本発明にかかる実施例2の画像処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
図7は実施例2の画像処理モジュールの詳細な構成例を説明するブロック図で、図2に示す画像処理モジュールとの違いは、リードバッファ10、ライトバッファ12、リードアドレス発生器14およびライトアドレス発生器16がそれぞれ二つずつあることである。
アービタ13は、リードバッファ10aのバッファの空き容量R0pおよびリードアドレス発生器14aのイネーブル信号R0enを検出し、リードアドレスが有効(R0en=‘1’)でリードバッファ10aにデータが格納可能(R0p≧R0n)であれば、アービタ5へリードリクエスト(PREQ=‘1’、PNRW=‘0’、PNUM=Rn、PADD=Rad)を発行する。同様に、リードバッファ10bのバッファの空き容量R1pおよびリードアドレス発生器14bのイネーブル信号R1enを検出し、リードアドレスが有効(R1en=‘1’)でリードバッファ10bにデータが格納可能(R1p≧R1n)であれば、アービタ5へリードリクエスト(PREQ=‘1’、PNRW=‘0’、PNUM=Rn、PADD=Rad)を発行する。
一方、ライトバッファ12aのデータ蓄積数W0pが所定のワード数以上(W0p≧W0n)になると、アービタ13は、ライトアドレス発生器16bのイネーブル信号W0enを検出し、ライトアドレスが有効(W0en=‘1’)であれば、アービタ5へライトリクエスト(PREQ=‘1’、PNRW=‘1’、PNUM=Wn、PADD=Wad)を発行する。同様に、ライトバッファ12bのデータ蓄積数W0pが所定のワード数以上(W1p≧W1n)になると、ライトアドレス発生器16bのイネーブル信号W1enを検出し、ライトアドレスが有効(W1en=‘1’)であれば、アービタ5へライトリクエスト(PREQ=‘1’、PNRW=‘1’、PNUM=Wn、PADD=Wad)を発行する。
図8は実施例2のアービタ13のアルゴリズムを説明するフローチャートである。実施例1と同様に、リクエストキューに蓄積されているリクエストが実行された場合のライトバッファ12aのデータ蓄積数(評価値)をPw0、ライトバッファ12bのデータ蓄積数(評価値)をPw1、リクエストキューに蓄積されているリクエストが実行された場合のリードバッファ10aの空き容量(評価値)をPr0、リードバッファ10bの空き容量(評価値)をPr1とする。なお、リクエストキューに蓄積されているリクエスト数Ppは、アービタ5がリクエストを受け付ける(PACK=‘1’)と一つ減じられる。以下の説明では(リードバッファ10aのリクエストの頻度)>(リードバッファ10bのリクエストの頻度)=(ライトバッファ12bのリクエストの頻度)>(ライトバッファ12aリクエストの頻度)であると仮定し、バスアクセスのリクエスト発生頻度が低いモジュールの順に、バッファの空き状態の検出を行う。
ライトバッファ12aのリクエストW0reqは、ライトバッファ12aの蓄積数の評価値Pw0が所定のワード数以上(Pw0≧W0n)になり、ライトアドレスが有効(W0en=‘1’)ならば、W0req=‘1’になる。同様に、ライトバッファ12bのリクエストW1reqは、ライトバッファ12bの蓄積数の評価値Pw1が所定のワード数以上(Pw1≧W1n)になり、ライトアドレスが有効(W1en=‘1’)ならば、W1req=‘1’になる。
また、リードバッファ10aのリクエストR0reqは、リードバッファ10aの空き容量の評価値Pr0が所定のワード数以上(Pr0≧R0n)になり、リードアドレスが有効(R0en=‘1’)ならば、R0req=‘1’になる。同様に、リードバッファ10bのリクエストR1reqは、リードバッファ10bの空き容量の評価値Pr1が所定のワード数以上(Pr1≧R1n)になり、リードアドレスが有効(R1en=‘1’)ならば、R1re=‘1’になる。
まず、ライトリクエストW0req=‘1’で、ライトバッファ12aのデータ蓄積数の評価値P0wと所定値W0thの関係がP0w≧W0th、または、直前にリクエストキューに格納したリクエストがライトバッファ12aのライトリクエスト(ID1=IDw0)か否かを判定し(S231)、そうであればライトバッファ12aのライトリクエストをリクエストキューに蓄積する(S239)。
上記の条件が成立しない場合は、ライトリクエストW1req=‘1’で、ライトバッファ12bのデータ蓄積数の評価値P1wと所定値W1thの関係がP1w≧W1th、または、直前にリクエストキューに格納したリクエストがライトバッファ12bのライトリクエスト(ID1=IDw1)か否かを判定し(S232)、そうであればライトバッファ12bのライトリクエストをリクエストキューに蓄積する(S240)。
上記の二つの条件が成立せず、リードリクエストR1req=‘1’で、リードバッファ10bの空き容量の評価値Pr1と所定値R1thの関係がPr1≧R1th、または、直前にリクエストキューに格納したリクエストがリードバッファ10bのリードリクエスト(ID1=IDr1)か否かを判定し(S233)、そうであればリードバッファ10bのリードリクエストをリクエストキューに蓄積する(S242)。
上記の三つの条件が成立せず、リードリクエストR0req=‘1’で、リードバッファ10aの空き容量の評価値Pr0と所定値R0thの関係がPr≧R0th、または、直前にリクエストキューに格納したリクエストがリードバッファ10aのリードリクエスト(ID1=IDr0)か否かを判定し(S234)、そうであればリードバッファ10aのリードリクエストをリクエストキューに蓄積する(S241)。
上記の四つの条件が成立せず、リードリクエストR0req=‘1’の場合は(S235)、リードバッファ10aのリードリクエストをリクエストキューに蓄積し(S241)、リードリクエストR1req=‘1’の場合は(S236)、リードバッファ10bのリードリクエストをリクエストキューに蓄積し(S242)、ライトリクエストW1req=‘1’の場合は(S237)、ライトバッファ12bのライトリクエストをリクエストキューに蓄積し(S240)、ライトリクエストW0req=‘1’の場合は(S238)、ライトバッファ12aのライトリクエストをリクエストキューに蓄積する(S239)。
リクエストキューへのライトバッファ12aのライトリクエストの蓄積(S239)は、現在のリクエスト識別コードIDを直前のリクエスト識別コードレジスタID1に格納し、現在のリクエスト識別コードIDをライトリクエスト識別コードIDw0に更新する。同時に、ライトバッファ12aの蓄積数の評価値Pw0からライトデータ数W0nを減算して評価値Pw0を更新し、リクエストキューに蓄積されているリクエスト数Ppを一つ増やす。
同様に、リクエストキューへのライトバッファ12bのライトリクエストの蓄積(S240)は、現在のリクエスト識別コードIDを直前のリクエスト識別コードレジスタID1に格納し、現在のリクエスト識別コードIDをライトリクエスト識別コードIDw1に更新する。同時に、ライトバッファ12bの蓄積数の評価値Pw1からライトデータ数W1nを減算して評価値Pw1を更新し、リクエストキューに蓄積されているリクエスト数Ppを一つ増やす。
同様に、リクエストキューへのリードバッファ10aのリードリクエストの蓄積(S241)は、現在のリクエスト識別コードIDを直前のリクエスト識別コードレジスタID1に格納し、現在のリクエスト識別コードIDをリードリクエスト識別コードIDr0に更新する。同時に、リードバッファ10aの空き容量の評価値Pr0からリードデータ数R0nを減算して評価値Pr0を更新し、リクエストキューに蓄積されているリクエスト数Ppを一つ増やす。
同様に、リクエストキューへのリードバッファ10bのリードリクエストの蓄積(S242)は、現在のリクエスト識別コードIDを直前のリクエスト識別コードレジスタID1に格納し、現在のリクエスト識別コードIDをリードリクエスト識別コードIDr1に更新する。同時に、リードバッファ10bの空き容量の評価値Pr1からリードデータ数R1nを減算して評価値Pr1を更新し、リクエストキューに蓄積されているリクエスト数Ppを一つ増やす。
上記処理が終了すると、処理をステップS231に戻し、上記の処理を繰り返す。
上記のモジュールにはデータパスが二つ存在する。例えば、誤差拡散回路の誤差バッファをDRAM 7上に構成するようなモジュールは、画像データのデータパスと誤差バッファのデータバスが存在する。この場合、バスマスタの数は二個から四個に増加し、このままではメモリバスに接続することができない。このような場合、モジュール内で調停を実行して接続すれば、上層の回路を一切変更することなしに、モジュールとメモリバスを接続することが可能になる。
また、上述したように、アービタ5だけではなく各モジュール内で調停を実行する(調停の分散処理)ため、モジュールに最適な調停が可能である。例えば、上述したように、各バスマスタのリクエスト発生頻度が異なる場合は、発生頻度の低い順にポインタ評価と連続アクセス数の評価を行う。これは、発生頻度の低い方を優先することで、発生頻度の低い方のバス使用権の獲得確率を高め、処理の平準化を図るためである。ただし、発生頻度がほぼ同じ場合は、ライト側を優先する。これは、一般にライト処理の方がレイテンシ(待ち時間)が少なく、メモリバスが放されるまでの時間が短いためである。
また、各モジュール内で、図6に示した連続アクセス数をカウントするカウンタを用いて、連続アクセス数を制限するようにしてもよい。この場合、上記の発生頻度を考慮しなくとも、処理の平準化を図ることができる。
さらに、上記評価値(Pw0、Pw1、Pr0、Pr1)との比較のための閾値(W0th、W1th、R0th、R1th)を複数設定し、より細やかな調停を行うことも可能である。この場合は、閾値の大きさ順に優先順位を設定し、最も大きな閾値との比較時に連続アクセス数を判定すればよい。このように、モジュール単位の最適化が可能になるので、容易にメモリバスの使用効率を向上させることができる。
以上では、メモリバスのアクセスを調停する例を実施例として説明したが、本発明は、メモリバスに限らず、様々なバスの使用権のアービトレーションに適用可能である。
[他の実施例]
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
また、本発明の目的は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
実施例1の画像処理装置の構成例を示すブロック図、 画像処理モジュールの詳細な構成例を説明するブロック図、 サブモジュール間のデータ転送を説明するタイミングチャート、 アービタ13のアルゴリズムを説明するフローチャート、 アービタ5のアルゴリズムを説明するフローチャート、 連続したバスアクセスをカウントするアルゴリズムを説明するフローチャート、 実施例2の画像処理モジュールの詳細な構成例を説明するブロック図、 実施例2のアービタ13のアルゴリズムを説明するフローチャートである。

Claims (14)

  1. バスのアクセスを調停する制御装置であって、
    前記アクセスの対象であるバスに接続されたメモリに対してリードアクセスを要求する第一のマスタと、前記メモリに対してライトアクセスを要求する第二のマスタを含む複数のマスタ、並びに、前記第二のマスタのライトアクセスの要求を、前記第一のマスタのリードアクセスの要求よりも優先して前記調停を行う第一のアービタを備え、前記アクセスの対象であるバスに接続された複数のバスマスタと、
    前記バスにアクセスしたバスマスタを識別する識別手段と、
    前記識別手段の識別結果に応じて前記複数のバスマスタの優先順位を設定する第二のアービタとを有することを特徴とする制御装置。
  2. 前記第一のアービタは、前記複数のマスタそれぞれに対応するバッファの空き状態に応じて、前記複数のマスタのバスアクセスの要求を受け付けることを特徴とする請求項1に記載の制御装置。
  3. 前記第一のアービタは、前記複数のマスタそれぞれのバッファの空き状態が前記複数のバスマスタごとに規定された条件を満たさない場合は、前記バスアクセスの要求の発生頻度が高いマスタのバスアクセスを優先して前記調停を行うことを特徴とする請求項1または請求項2に記載の制御装置。
  4. 前記第一のアービタは、さらに、レイテンシの短いバスアクセスを要求するマスタのバスアクセスを優先して前記調停を行うことを特徴とする請求項2または請求項3に記載の制御装置。
  5. 前記第一のアービタは、前記複数のマスタからリードアクセスまたはライトアクセスの種別のバスアクセス要求を受け付け、直前に受け付けたバスアクセス要求の種別と同じ種別のバスアクセス要求を優先して前記調停を行うことを特徴とする請求項1から請求項4の何れか一項に記載の制御装置。
  6. 前記複数のマスタの少なくとも一つはライトアクセスによってDRAMに書き出すデータを保持するライトバッファに対応し、前記複数のマスタの少なくとも一つはリードアクセスによって前記DRAMから読み出すデータを保持するリードバッファに対応し、
    前記ライトバッファが保持するデータ量が所定量以上の場合、前記第一のアービタは、当該ライトバッファに対応するマスタの要求を、前記リードバッファに対応するマスタのリードアクセスの要求よりも優先して前記調停を行うことを特徴とする請求項1から請求項4の何れか一項に記載の制御装置。
  7. 前記ライトバッファが保持するデータは、前記リードバッファから読み出したデータに処理を施したデータであることを特徴とする請求項6に記載の制御装置。
  8. 前記第二のアービタは、直前に前記バスにアクセスしたとして前記識別手段によって識別されたバスマスタを優先して前記調停を行うことを特徴とする請求項1に記載の制御装置。
  9. 一つのバスマスタによる前記バスの連続アクセスの回数をカウントする計数手段を更に有し、
    前記第二のアービタは、前記連続アクセスの回数が所定値に達したバスマスタの前記バスアクセスの要求を無視することを特徴とする請求項1または請求項8に記載の制御装置。
  10. 前記計数手段は、直前に前記バスにアクセスしたバスマスタとは異なるバスマスタのアクセスが許可された場合、または、前記バスアクセスの要求を出しているバスマスタの数が一つ以下の場合、前記カウントの値を零にリセットすることを特徴とする請求項9に記載の制御装置。
  11. 前記バスおよびCPUバスに接続されたバスブリッジを更に有し、
    前記第二のアービタは、前記複数のバスマスタのバスアクセスの要求よりも、前記バスに対する前記バスブリッジのバスアクセスの要求を優先して前記調停を行うことを特徴とする請求項1、または、請求項8から請求項10の何れか一項に記載の制御装置。
  12. 前記複数のバスマスタのうち少なくとも一つは、画像データのデータパスに使用する少なくとも二つのマスタ、および、前記画像データの処理において発生した誤差のデータパスに使用する少なくとも二つのマスタを有する画像処理手段であることを特徴とする請求項1、または、請求項8から請求項11の何れか一項に記載の制御装置。
  13. 前記複数のバスマスタのうち少なくとも一つは、プリンタエンジンの同期信号に合わせて画像処理を開始する画像処理手段であり、
    前記第二のアービタは、前記画像処理手段のバスアクセスの要求を最優先して前記調停を行うことを特徴とする請求項1、または、請求項8から請求項12の何れか一項に記載の制御装置。
  14. バスアクセスを調停するデータ処理装置の制御方法であって、
    前記アクセスの対象であるバスに接続されたメモリに対してリードアクセスを要求する第一のマスタと、前記メモリに対してライトアクセスを要求する第二のマスタを含む複数のマスタのうち、前記第二のマスタのライトアクセスの要求を、前記第一のマスタのリードアクセスの要求よりも優先して前記調停を行う第一の調停工程と
    前記アクセスの対象であるバスに接続され、前記第一、第二のマスタを備える複数のバスマスタのうち、前記バスにアクセスしたバスマスタを識別する識別工程と
    前記識別工程の識別結果に応じて前記複数のバスマスタの優先順位を設定する調停工程とを有することを特徴とする制御方法。
JP2005099420A 2005-03-30 2005-03-30 バスアクセスを調停する制御装置およびデータ処理装置の制御方法 Expired - Fee Related JP4847036B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2005099420A JP4847036B2 (ja) 2005-03-30 2005-03-30 バスアクセスを調停する制御装置およびデータ処理装置の制御方法
US11/378,005 US8086776B2 (en) 2005-03-30 2006-03-17 Device for arbitrating bus accesses and method for controlling same
CNB2006100665585A CN100504825C (zh) 2005-03-30 2006-03-30 仲裁器和控制仲裁器的方法以及信息处理装置
US13/304,115 US8706939B2 (en) 2005-03-30 2011-11-23 Device for arbitrating bus accesses and method for controlling same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005099420A JP4847036B2 (ja) 2005-03-30 2005-03-30 バスアクセスを調停する制御装置およびデータ処理装置の制御方法

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP2011019126A Division JP4847614B2 (ja) 2011-01-31 2011-01-31 バスアクセスを調停する制御装置
JP2011019127A Division JP4847615B2 (ja) 2011-01-31 2011-01-31 バスアクセスを調停する制御装置およびその方法

Publications (3)

Publication Number Publication Date
JP2006277620A JP2006277620A (ja) 2006-10-12
JP2006277620A5 JP2006277620A5 (ja) 2008-05-08
JP4847036B2 true JP4847036B2 (ja) 2011-12-28

Family

ID=37030387

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005099420A Expired - Fee Related JP4847036B2 (ja) 2005-03-30 2005-03-30 バスアクセスを調停する制御装置およびデータ処理装置の制御方法

Country Status (3)

Country Link
US (2) US8086776B2 (ja)
JP (1) JP4847036B2 (ja)
CN (1) CN100504825C (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4847036B2 (ja) * 2005-03-30 2011-12-28 キヤノン株式会社 バスアクセスを調停する制御装置およびデータ処理装置の制御方法
JP2009266152A (ja) * 2008-04-30 2009-11-12 Toshiba Corp コントローラ、ハードディスクドライブおよびコントロール方法
WO2010016169A1 (ja) * 2008-08-07 2010-02-11 日本電気株式会社 マルチプロセッサシステム及びその制御方法
JP5125890B2 (ja) * 2008-08-28 2013-01-23 富士通セミコンダクター株式会社 調停装置及び電子機器
US8849452B2 (en) * 2009-08-03 2014-09-30 Honda Motor Co., Ltd. Robot and control system
JP5413098B2 (ja) * 2009-09-29 2014-02-12 日本電気株式会社 調停優位性の切り替え方法、調停装置、及びプロセッサ
JP5418193B2 (ja) * 2009-12-14 2014-02-19 富士ゼロックス株式会社 調停装置、画像処理装置、及び画像形成システム
JP5707911B2 (ja) * 2010-01-27 2015-04-30 富士通セミコンダクター株式会社 データ転送制御装置
JP5509151B2 (ja) * 2011-05-26 2014-06-04 京セラドキュメントソリューションズ株式会社 Dma制御装置及びこれを含む画像形成装置
WO2013094031A1 (ja) * 2011-12-21 2013-06-27 キヤノン株式会社 情報処理装置、その装置を用いた記録装置
JP6056363B2 (ja) * 2012-10-12 2017-01-11 株式会社ソシオネクスト 処理装置及び処理装置の制御方法
US8995455B1 (en) * 2012-11-15 2015-03-31 Qlogic, Corporation Memory devices for network devices and associated methods
US8959266B1 (en) * 2013-08-02 2015-02-17 Intel Corporation Dynamic priority control based on latency tolerance
JP6297853B2 (ja) * 2014-02-18 2018-03-20 ルネサスエレクトロニクス株式会社 マルチプロセッサシステム
CN106469126B (zh) * 2015-08-12 2020-07-07 北京忆恒创源科技有限公司 处理io请求的方法及其存储控制器
US9775035B2 (en) * 2015-09-14 2017-09-26 GM Global Technology Operations LLC Architecture and apparatus for controller secure message processing
EP3358468B1 (en) * 2015-10-01 2020-12-09 Renesas Electronics Corporation Semiconductor device
CN107844442A (zh) * 2016-09-19 2018-03-27 深圳市中兴微电子技术有限公司 请求源响应的仲裁方法及装置
US10372642B2 (en) * 2016-09-29 2019-08-06 Intel Corporation System, apparatus and method for performing distributed arbitration
CN107918620B (zh) * 2016-10-10 2022-04-19 阿里巴巴集团控股有限公司 一种数据库的写入方法及装置、电子设备
CN108667740B (zh) * 2017-03-29 2022-02-15 腾讯科技(深圳)有限公司 流量控制的方法、装置及系统
CN110959038A (zh) 2017-05-15 2020-04-03 C-乐克塔股份有限公司 酶产物
WO2019043823A1 (ja) * 2017-08-30 2019-03-07 オリンパス株式会社 メモリアクセス装置、画像処理装置、および撮像装置
US11262942B2 (en) * 2018-07-16 2022-03-01 ScaleFlux, Inc. Integrating host-side storage device management with host-side non-volatile memory
KR20200141338A (ko) * 2019-06-10 2020-12-18 삼성전자주식회사 이미지 신호 프로세서, 상기 이미지 신호 프로세서의 동작 방법 및 상기 이미지 신호 프로세서를 포함하는 이미지 처리 시스템
CN114185823B (zh) * 2022-02-17 2022-05-24 深圳比特微电子科技有限公司 仲裁器、仲裁方法、控制器和芯片
CN115080468A (zh) * 2022-05-12 2022-09-20 珠海全志科技股份有限公司 一种非阻塞的信息传输方法和装置

Family Cites Families (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4161779A (en) * 1977-11-30 1979-07-17 Burroughs Corporation Dynamic priority system for controlling the access of stations to a shared device
US4191997A (en) * 1978-04-10 1980-03-04 International Business Machines Corporation Circuits and methods for multiple control in data processing systems
US4761807A (en) * 1982-09-29 1988-08-02 Vmx, Inc. Electronic audio communications system with voice authentication features
US4751671A (en) * 1983-02-14 1988-06-14 Prime Computer, Inc. Size configurable data storage system
EP0203165B1 (en) * 1984-12-03 1992-11-04 The University Of Western Australia Queueing protocol
US4682284A (en) * 1984-12-06 1987-07-21 American Telephone & Telegraph Co., At&T Bell Lab. Queue administration method and apparatus
EP0206743A3 (en) * 1985-06-20 1990-04-25 Texas Instruments Incorporated Zero fall-through time asynchronous fifo buffer with nonambiguous empty/full resolution
US4805128A (en) * 1985-11-22 1989-02-14 Geophysical Service Inc. Format conversion system
US5025370A (en) * 1986-09-02 1991-06-18 Koegel Robert J Circuit for preventing lock-out of high priority requests to a system controller
US5068782A (en) * 1987-02-02 1991-11-26 Unisys Corp. Accessing control with predetermined priority based on a feedback arrangement
JPS63251854A (ja) * 1987-04-09 1988-10-19 Mitsubishi Electric Corp マルチポ−トメモリコントロ−ラ
JPS6482248A (en) * 1987-09-25 1989-03-28 Nec Corp Priority level deciding circuit
JPH01320555A (ja) * 1988-06-22 1989-12-26 Hitachi Ltd バッファ記憶装置
US4924380A (en) * 1988-06-20 1990-05-08 Modular Computer Systems, Inc. (Florida Corporation) Dual rotating priority arbitration method for a multiprocessor memory bus
JPH0210459A (ja) 1988-06-29 1990-01-16 Oki Electric Ind Co Ltd バス使用権決定方式
US5155810A (en) * 1989-01-10 1992-10-13 Bull Hn Information Systems Inc. Dual FIFO peripheral with combinatorial logic circuitry
JP2772823B2 (ja) * 1989-06-06 1998-07-09 日立マクセル株式会社 半導体記憶装置のアクセス調停回路
US5179662A (en) * 1989-08-31 1993-01-12 International Business Machines Corporation Optimized i/o buffers having the ability to increase or decrease in size to meet system requirements
JP3227575B2 (ja) * 1990-03-08 2001-11-12 株式会社日立製作所 共有資源アクセス制御装置
JPH04114389A (ja) * 1990-09-05 1992-04-15 Matsushita Electric Ind Co Ltd 先入先出バッファ回路
US5210829A (en) * 1990-12-12 1993-05-11 Digital Equipment Corporation Adjustable threshold for buffer management
JPH04322353A (ja) 1991-04-23 1992-11-12 Nec Corp バス・システム
JP3027445B2 (ja) * 1991-07-31 2000-04-04 株式会社高取育英会 メモリーコントロールデバイス
JPH0594409A (ja) 1991-10-02 1993-04-16 Nec Eng Ltd バス調停システム
US5440691A (en) * 1992-02-27 1995-08-08 Digital Equipment Corporation, Pat. Law Group System for minimizing underflowing transmit buffer and overflowing receive buffer by giving highest priority for storage device access
JP2806678B2 (ja) * 1992-03-09 1998-09-30 日本電気株式会社 バス制御装置
US5444855A (en) * 1992-04-17 1995-08-22 International Business Machines Corporation System for guaranteed CPU bus access by I/O devices monitoring separately predetermined distinct maximum non CPU bus activity and inhibiting I/O devices thereof
JPH06131307A (ja) * 1992-10-20 1994-05-13 Fujitsu Ltd マルチcpuシステムにおける負荷分散方式
GB2277816B (en) * 1993-05-04 1997-09-03 Motorola Inc Data communication system
US5537128A (en) * 1993-08-04 1996-07-16 Cirrus Logic, Inc. Shared memory for split-panel LCD display systems
US5548796A (en) * 1993-11-02 1996-08-20 National Semiconductor Corporation Method of automatic retransmission of frames in a local area network
JP2806771B2 (ja) * 1993-12-24 1998-09-30 甲府日本電気株式会社 バス調停回路
TW400483B (en) * 1994-03-01 2000-08-01 Intel Corp High performance symmetric arbitration protocol with support for I/O requirements
US5561823A (en) * 1994-03-14 1996-10-01 Conner Peripherals, Inc. Monitor system for determining the available capacity of a READ buffer and a WRITE buffer in a disk drive system
JPH07319630A (ja) * 1994-05-27 1995-12-08 Nec Corp バッファ容量決定方式
US5687316A (en) * 1994-07-29 1997-11-11 International Business Machines Corporation Communication apparatus and methods having P-MAC, I-MAC engines and buffer bypass for simultaneously transmitting multimedia and packet data
US6154826A (en) * 1994-11-16 2000-11-28 University Of Virginia Patent Foundation Method and device for maximizing memory system bandwidth by accessing data in a dynamically determined order
US6178475B1 (en) * 1994-12-19 2001-01-23 Advanced Micro Devices Inc. Multimedia system employing timers to properly allocate bus access
US5649157A (en) * 1995-03-30 1997-07-15 Hewlett-Packard Co. Memory controller with priority queues
US5666494A (en) * 1995-03-31 1997-09-09 Samsung Electronics Co., Ltd. Queue management mechanism which allows entries to be processed in any order
EP0752666A3 (en) * 1995-07-06 2004-04-28 Sun Microsystems, Inc. Method and apparatus for fast-forwarding slave requests in a packet-switched computer system
US5860110A (en) 1995-08-22 1999-01-12 Canon Kabushiki Kaisha Conference maintenance method for cache memories in multi-processor system triggered by a predetermined synchronization point and a predetermined condition
JPH0962579A (ja) 1995-08-22 1997-03-07 Canon Inc 情報処理装置及び情報処理システム
US6418148B1 (en) * 1995-10-05 2002-07-09 Lucent Technologies Inc. Burst-level resource allocation in cellular systems
US5781927A (en) * 1996-01-30 1998-07-14 United Microelectronics Corporation Main memory arbitration with priority scheduling capability including multiple priorty signal connections
GB2312058B (en) * 1996-04-12 2000-08-09 Sony Uk Ltd Data buffer
US5761445A (en) * 1996-04-26 1998-06-02 Unisys Corporation Dual domain data processing network with cross-linking data queues and selective priority arbitration logic
US5845097A (en) * 1996-06-03 1998-12-01 Samsung Electronics Co., Ltd. Bus recovery apparatus and method of recovery in a multi-master bus system
JPH1011337A (ja) * 1996-06-24 1998-01-16 Hitachi Ltd 記憶装置におけるデータ制御方法
JPH10187601A (ja) * 1996-12-26 1998-07-21 Kobe Nippon Denki Software Kk 優先順位決定回路
US5933413A (en) * 1997-01-13 1999-08-03 Advanced Micro Devices, Inc. Adaptive priority determination for servicing transmit and receive in network controllers
US5950229A (en) * 1997-03-12 1999-09-07 Micron Electronics, Inc. System for accelerating memory bandwidth
US6141715A (en) * 1997-04-03 2000-10-31 Micron Technology, Inc. Method and system for avoiding live lock conditions on a computer bus by insuring that the first retired bus master is the first to resubmit its retried transaction
US5987621A (en) * 1997-04-25 1999-11-16 Emc Corporation Hardware and software failover services for a file server
US6094696A (en) * 1997-05-07 2000-07-25 Advanced Micro Devices, Inc. Virtual serial data transfer mechanism
US5996037A (en) * 1997-06-03 1999-11-30 Lsi Logic Corporation System and method for arbitrating multi-function access to a system bus
US6230219B1 (en) * 1997-11-10 2001-05-08 International Business Machines Corporation High performance multichannel DMA controller for a PCI host bridge with a built-in cache
US6208703B1 (en) * 1998-05-15 2001-03-27 Hewlett Packard Company First-in-first-out synchronizer
JPH11338820A (ja) * 1998-05-29 1999-12-10 Matsushita Electric Ind Co Ltd バス・アービタ
JP3581601B2 (ja) * 1998-12-18 2004-10-27 松下電器産業株式会社 データ転送装置、データ転送システムおよび記録媒体
JP2000201161A (ja) * 1999-01-08 2000-07-18 Nec Eng Ltd ア―ビトレ―ション制御回路
US6189061B1 (en) * 1999-02-01 2001-02-13 Motorola, Inc. Multi-master bus system performing atomic transactions and method of operating same
US6385671B1 (en) * 1999-03-29 2002-05-07 Intel Corporation Method/apparatus for flushing DMA transmit packet in FIFO when self-ID code generated by counter after bus reset is different than FIFO message self-ID field
US6629220B1 (en) * 1999-08-20 2003-09-30 Intel Corporation Method and apparatus for dynamic arbitration between a first queue and a second queue based on a high priority transaction type
US6246256B1 (en) * 1999-11-29 2001-06-12 Broadcom Corporation Quantized queue length arbiter
KR100321784B1 (ko) * 2000-03-20 2002-02-01 오길록 중재 지연 내성의 분산형 입력 버퍼 스위치 시스템 및그를 이용한 입력 데이터 처리 방법
US6715011B1 (en) * 2000-05-31 2004-03-30 International Business Machines Corporation PCI/PCI-X bus bridge with performance monitor
TW515960B (en) * 2000-08-11 2003-01-01 Via Tech Inc Architecture and method of extended bus and bridge thereof
US6810470B1 (en) * 2000-08-14 2004-10-26 Ati Technologies, Inc. Memory request interlock
JP3615478B2 (ja) * 2000-10-25 2005-02-02 京セラミタ株式会社 メモリアクセス調停方法
US6804736B2 (en) * 2000-11-30 2004-10-12 Hewlett-Packard Development Company, L.P. Bus access arbitration based on workload
US20020146023A1 (en) * 2001-01-09 2002-10-10 Regan Myers Transport stream multiplexer utilizing smart FIFO-meters
US20020176430A1 (en) * 2001-01-25 2002-11-28 Sangha Onkar S. Buffer management for communication systems
US7110359B1 (en) * 2001-03-05 2006-09-19 Advanced Micro Devices, Inc. System and method for dynamically updating weights of weighted round robin in output queues
US6907479B2 (en) * 2001-07-18 2005-06-14 Integrated Device Technology, Inc. Integrated circuit FIFO memory devices that are divisible into independent FIFO queues, and systems and methods for controlling same
US6832280B2 (en) * 2001-08-10 2004-12-14 Freescale Semiconductor, Inc. Data processing system having an adaptive priority controller
US7107374B1 (en) * 2001-09-05 2006-09-12 Xilinx, Inc. Method for bus mastering for devices resident in configurable system logic
US6938133B2 (en) * 2001-09-28 2005-08-30 Hewlett-Packard Development Company, L.P. Memory latency and bandwidth optimizations
US6839784B1 (en) * 2001-10-15 2005-01-04 Advanced Micro Devices, Inc. Control unit of an I/O node for a computer system including a plurality of scheduler units each including a plurality of buffers each corresponding to a respective virtual channel
US6754772B2 (en) * 2001-11-15 2004-06-22 Micron Technology, Inc. Distributed cache
JP2003228512A (ja) * 2002-02-05 2003-08-15 Fujitsu Ltd データ転送装置
US7080177B2 (en) * 2002-03-01 2006-07-18 Broadcom Corporation System and method for arbitrating clients in a hierarchical real-time DRAM system
US7206857B1 (en) * 2002-05-10 2007-04-17 Altera Corporation Method and apparatus for a network processor having an architecture that supports burst writes and/or reads
GB2388929B (en) * 2002-05-23 2005-05-18 Advanced Risc Mach Ltd Handling of a multi-access instruction in a data processing apparatus
US20040003164A1 (en) * 2002-06-27 2004-01-01 Patrick Boily PCI bridge and data transfer methods
US7099972B2 (en) * 2002-07-03 2006-08-29 Sun Microsystems, Inc. Preemptive round robin arbiter
KR100480605B1 (ko) * 2002-07-25 2005-04-06 삼성전자주식회사 네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를제어하는 방법 및 네트워크 제어기
CN1200344C (zh) * 2002-10-18 2005-05-04 威盛电子股份有限公司 具有并行仲裁机制的多重允许控制器及其方法
SE524201C2 (sv) * 2002-12-17 2004-07-06 Lars-Berno Fredriksson Anordning vid distribuerat styr- och övervakningssystem
US7266083B2 (en) * 2003-02-26 2007-09-04 International Business Machines Corporation Method and apparatus for implementing queue pair connection protection over infiniband
US7809252B2 (en) * 2003-04-09 2010-10-05 Corel Inc. Systems and methods for caching multimedia data
DE60307798T2 (de) * 2003-05-30 2006-12-14 Agilent Technologies, Inc., Palo Alto Arbitrierung von gemeinsamen Speicher
US7836447B2 (en) * 2003-07-15 2010-11-16 Intel Corporation Method of efficient performance monitoring for symmetric multi-threading systems
JP4276094B2 (ja) * 2004-01-26 2009-06-10 エヌ・ティ・ティ・コミュニケーションズ株式会社 パケットの優先制御を行う通信装置及び優先制御方法
US7188219B2 (en) * 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
JP2005258576A (ja) * 2004-03-09 2005-09-22 Mitsubishi Electric Corp 二重系cpu切替システム
US7418540B2 (en) * 2004-04-28 2008-08-26 Intel Corporation Memory controller with command queue look-ahead
US7606269B1 (en) * 2004-07-27 2009-10-20 Intel Corporation Method and apparatus for detecting and managing loss of alignment in a virtually concatenated group
US8219745B2 (en) * 2004-12-02 2012-07-10 International Business Machines Corporation Memory controller to utilize DRAM write buffers
JP4847036B2 (ja) * 2005-03-30 2011-12-28 キヤノン株式会社 バスアクセスを調停する制御装置およびデータ処理装置の制御方法
JP2006295819A (ja) * 2005-04-14 2006-10-26 Sony Corp データ送信装置、データ送信方法及びデータ送信プログラム
US8082396B2 (en) * 2005-04-28 2011-12-20 International Business Machines Corporation Selecting a command to send to memory
KR20080022140A (ko) * 2005-05-30 2008-03-10 엔엑스피 비 브이 데이터 파이프라인 관리 시스템, 데이터 파이프라인 관리시스템을 이용하기 위한 방법, 컴퓨터 프로그램, 컴퓨터장치 및 컴퓨터 판독가능 매체
CN101647002A (zh) * 2007-03-28 2010-02-10 Nxp股份有限公司 多处理系统及方法

Also Published As

Publication number Publication date
JP2006277620A (ja) 2006-10-12
CN1841350A (zh) 2006-10-04
US20060224807A1 (en) 2006-10-05
CN100504825C (zh) 2009-06-24
US20120110230A1 (en) 2012-05-03
US8086776B2 (en) 2011-12-27
US8706939B2 (en) 2014-04-22

Similar Documents

Publication Publication Date Title
JP4847036B2 (ja) バスアクセスを調停する制御装置およびデータ処理装置の制御方法
US6006303A (en) Priority encoding and decoding for memory architecture
JP4715801B2 (ja) メモリアクセス制御装置
JP5666722B2 (ja) メモリ・インターフェース
JP5576030B2 (ja) データ応答を順序変更するためのシステム
JP2002530742A (ja) 外部デバイスへのアクセスを優先順序付けるための方法および装置
KR100347473B1 (ko) 버스시스템
JPH0728758A (ja) ダイナミックタイムループ調停及び装置
US20040225774A1 (en) Enhancing a pci-x split completion transaction by aligning cachelines with an allowable disconnect boundary's ending address
JP4847614B2 (ja) バスアクセスを調停する制御装置
US6826644B1 (en) Peripheral component interconnect arbiter implementation with dynamic priority scheme
JP4847615B2 (ja) バスアクセスを調停する制御装置およびその方法
US20060218313A1 (en) DMA circuit and computer system
US7028116B2 (en) Enhancement of transaction order queue
JP6036806B2 (ja) バスアクセス調停回路およびバスアクセス調停方法
JP4151362B2 (ja) バス調停方式、データ転送装置、及びバス調停方法
US20050066097A1 (en) Resource management apparatus
JP4327081B2 (ja) メモリアクセス制御回路
JP7292044B2 (ja) 制御装置および制御方法
JP2004185451A (ja) メモリアクセス調停方法およびメモリアクセス調停ユニット
JPH0844661A (ja) 情報処理装置
JP2004145593A (ja) ダイレクトメモリアクセス装置およびバスアービトレーション制御装置、ならびにそれらの制御方法
JP2006277363A (ja) 情報転送方式,画像形成装置
JP2001175589A (ja) バス調停システムおよび方法、記録媒体
JP2004258985A (ja) マルチプロセッサシステム及びその入出力制御方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080326

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100906

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110131

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110520

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110822

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110829

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: 20111011

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111013

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees