JP4457168B2 - 資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム - Google Patents

資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム Download PDF

Info

Publication number
JP4457168B2
JP4457168B2 JP2009070097A JP2009070097A JP4457168B2 JP 4457168 B2 JP4457168 B2 JP 4457168B2 JP 2009070097 A JP2009070097 A JP 2009070097A JP 2009070097 A JP2009070097 A JP 2009070097A JP 4457168 B2 JP4457168 B2 JP 4457168B2
Authority
JP
Japan
Prior art keywords
resource
request
memory access
issued
unit
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
JP2009070097A
Other languages
English (en)
Other versions
JP2009134766A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2009070097A priority Critical patent/JP4457168B2/ja
Publication of JP2009134766A publication Critical patent/JP2009134766A/ja
Application granted granted Critical
Publication of JP4457168B2 publication Critical patent/JP4457168B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing

Description

本発明は、資源要求調停装置及びその方法に関し、特に、調停対象となる複数の資源要求装置それぞれへのサービス品質を管理する技術に関する。
従来、複数の資源要求装置から、バスやユニファイドメモリといった共有資源へのアクセスを可能に構成した情報処理装置がある。各資源要求装置は、共有資源をアクセスするために、他の資源要求装置の状態を関知することなく、随時資源要求を発行する。このような情報処理装置は、同時期に複数の資源要求が発行された場合にそのうち一つを承認する調停と呼ばれる作業を行うことによって、共有資源へのアクセスの衝突を防止している。
この調停は、簡便には、複数の資源要求装置それぞれの優先順位を固定的に定め、最も高い優先順位の資源要求装置から発行された資源要求を承認することによって実現される。また、各資源要求装置の優先順位を巡回的に入れ替えることによって各資源要求装置間の公平性を確保する、ラウンドロビン方式と呼ばれる技術も知られている。
さらに、高度な実時間性が要求されるデータ、例えば動画像データ、を処理する資源要求装置については、公平性のみならず、例えばデータ転送レートや最大待ち時間で表されるサービス品質を良好に管理したいという要請がある。
この要請に応える調停装置の一つが例えば特許文献1に開示されている。ここで開示されている装置は、調停対象となる複数の資源要求装置それぞれについて、実際に転送したデータ量と所期の基準量とを比較し、基準よりも遅れている資源要求装置と、基準よりも進んでいる資源要求装置とがある場合に、前者が発行した資源要求を承認することによって、サービス品質を管理する。
特開平10−289203号公報
しかしながら、この技術によれば、サービス品質を管理するために、各資源要求装置の状態を比較判断して動的に優先順位を組み替えるので、調停対象となる資源要求装置の数が増えると、その組み合わせに応じて、処理が急激に複雑になるという問題がある。
上記の問題に鑑み、本発明は、予め固定された優先順位を用い、かつ当該優先順位の他には資源要求装置間の関係を関知することなく、各資源要求装置へのサービス品質を管理する資源要求調停装置、資源要求調停方法、及びプログラムの提供を目的とする。
上記問題を解決するため、本発明の資源要求調停装置は、予め順位付けされた複数の資源要求装置から発行される資源要求をタイムスロット毎に調停する資源要求調停装置であって、前記複数の資源要求装置それぞれについて第1数と第2数とが予め定められ、それぞれの資源要求装置が発行し承認された資源要求の個数をカウントし、連続する第1数のタイムスロットごとにカウント値がリセットされるカウンタと、前記カウント値が第2数を超えた場合に、前記第1数のタイムスロットの残余期間に前記第2数を超えて発行された資源要求を保留する保留手段と、前記複数の資源要求装置から発行された資源要求のうち、前記保留手段によって保留されておらず、かつ発行した資源要求装置の順位が最も高い一つを承認する承認手段と、を備え、前記保留手段は前記複数の資源要求装置それぞれに対応して、資源要求を保持するコマンドキューと、数Kを記憶しているパラメータ記憶部と、前記コマンドキューに保持されている未実行の資源要求が前記数Kに達したタイムスロットにおいて、マスク信号を発行するマスク信号発行部とを備え、前記保留手段は、当該マスク信号が発行されている間対応する資源要求装置からの資源要求をマスクすることを特徴とする。
この構成によれば、承認後、資源利用の開始が待たされる資源要求の最大個数を、発行元である資源要求手段毎に管理するので、資源利用の開始待ち時間の最大値が保証される。
<第1の実施形態>
第1の実施形態の資源要求調停装置は、予め順位付けされた複数の資源要求装置それぞれから発行された資源要求を周期的に調停する。当該資源要求装置はそれぞれ、他の資源要求装置の状態を関知することなく、資源要求を随時発行する。当該資源要求調停装置は、資源要求装置ごとに定まる所定の期間内に、該当する資源要求装置から所定の数を超えて発行された資源要求をマスクする。このマスク処理が、請求項に言う保留処理に相当する。そして、マスクされていない資源要求の一つを、前記複数の資源要求装置に予め付けられた順位を固定的に用いて承認する。
第1の実施形態では、資源の一具体例として共有メモリを取り上げ、当該共有メモリに対するメモリアクセス要求を調停する資源要求調停装置について説明する。ここで言うメモリアクセス要求は資源要求の一種であり、メモリアクセス要求の一例として、転送元アドレス、転送先アドレス、及び転送バイト数を示したデータ転送コマンドが挙げられる。
以下、当該資源要求調停装置の詳細を、図面を参照しながら説明する。
<全体構成>
図1は、第1の実施形態の資源要求調停装置1の構成を表す機能ブロック図である。同図には、資源要求調停装置1と共に、メモリアクセス要求部80及び81、コマンドキュー30、メモリアクセス実行部20、並びに共有メモリ10を記載している。
資源要求調停装置1は、リクエストマスク部50及び51、並びに調停部40から構成される。リクエストマスク部50及び51は、それぞれメモリアクセス要求部80及び81に対応して設けられる。
資源要求調停装置1は、具体的には、プロセッサ、プログラムを格納しているROM(Read Only Memory)等から成り、当該プロセッサが当該ROMに格納されているプログラムを実行することによって前記各部の機能を実現してもよい。また、資源要求調停装置1は、前記各部の機能を実現するワイヤードロジック、ASIC(Application Specific Integrated Circuit)等のハードウェア回路であってもよい。
メモリアクセス要求部80、81は、それぞれ随時に、メモリアクセスコマンドCMD0、CMD1を発行すると共に、有効なメモリアクセスコマンドが発行されていることを示すメモリアクセス要求信号REC0、REC1をアサートする。
資源要求調停装置1は、メモリアクセス要求信号をアサートしているメモリアクセス要求部の一つへ承認信号ACK0又はACK1をアサートする処理を周期的に行う。その周期は、図示しない調停クロック信号によって表示され、資源要求調停装置1は、当該調停クロック信号に同期して動作する。以降、当該調停クロック信号の1周期をタイムスロットと言う。
コマンドキュー30は、メモリアクセスコマンドCMD0、CMD1のうち承認信号ACK0及びACK1によって示された何れか一方と、承認信号ACK0及びACK1とを、承認順に記憶する。
メモリアクセス実行部20は、取得信号FETCHをアサートして、コマンドキュー30に最も古く記憶されたメモリアクセスコマンド、承認信号ACK0、ACK1を、それぞれメモリアクセスコマンドCMD、発行元識別信号UNIT0、UNIT1として取得し、取得されたメモリアクセスコマンドCMDを実行する。
図2は、コマンドキュー30の構成を示す機能ブロック図である。コマンドキュー30は、セレクタ501とFIFOレジスタ502とから構成される。FIFOレジスタ502は、承認信号ACK0又はACK1がアサートされた場合に、セレクタ501によって選択されたメモリアクセスコマンドCMD0又はCMD1と共に、承認信号ACK0及びACK1を記憶する。当該承認信号ACK0及びACK1は、発行元識別信号UNIT0、UNIT1として読み出され、メモリアクセスコマンドを発行したメモリアクセス要求部を識別する。
<リクエストマスク部50の詳細構成>
リクエストマスク部50は、メモリアクセス要求部80について定められた第2数のタイムスロット内に、メモリアクセス要求部80から発行された第1数までのメモリアクセス要求信号REQ0を制限済要求信号RREQ0へ伝達する。
しかし、当該第2数のタイムスロット内に当該第1数を超えて発行されたメモリアクセス要求信号REQ0をマスクし制限済要求信号RREQ0へは伝達しない。
リクエストマスク部51は、メモリアクセス要求部81から発行されたメモリアクセス要求信号REQ1を対象として、同様の処理を行う。
図3は、リクエストマスク部50及び51の構成の一具体例を示す機能ブロック図である。同図に見られるように、リクエストマスク部50及び51は、セレクタ101、レジスタ102、加算器103、レジスタ104、比較器105、及びゲート106を用いて同一に構成される。図中の信号名に付した添え字iは、リクエストマスク部毎に異なる値であり、リクエストマスク部毎に異なる信号を識別する。以下では添え字iを0とし、リクエストマスク部50を代表して説明する。
レジスタ102は、図示しない調停クロック信号に同期して、セレクタ101の出力信号をラッチする。レジスタ102、セレクタ101、及び加算器103は、実質的に、承認信号ACK0がアサートされたタイムスロットにおいて0にリセットされ、その後、承認信号ACK0が連続してネゲートされているタイムスロットの個数をカウントするカウンタである。
レジスタ104は、承認信号ACK0がアサートされた場合に、後続してメモリアクセス要求信号REQ0をマスクすべきタイムスロットの数M0を、予め取得して記憶している。比較器105は、レジスタ102にカウントされる数がレジスタ104に保持されている数M0よりも小さいタイムスロットにおいて、マスク信号MASK10をアサートする。
ゲート106は、マスク信号MASK10がネゲートされているタイムスロットにはメモリアクセス要求信号REQ0を制限済要求信号RREQ0へ伝達するが、マスク信号MASK10がアサートされているタイムスロットにはメモリアクセス要求信号REQ0をマスクし制限済要求信号RREQ0へは伝達しない。
リクエストマスク部50は、この構成によって、連続する(M0+1)個のタイムスロットにおいて発行される2個目以降のメモリアクセス要求信号REQ0をマスクするから、メモリアクセス要求信号REQ0が制限済要求信号RREQ0へ伝達されるタイムスロットは(M0+1)個に付き高々1個となる。以降、この比率を指して活性スロット比と言い1/(M0+1)などと表記する。
従って、リクエストマスク部50が活性スロット比1/(M0+1)で伝達した制限済要求信号に応じて、メモリアクセス要求部80に必要なデータ転送レートがもたらされるように数M0を選択すれば、メモリアクセス要求部80は自身が必要とするデータ転送レートを手に入れると同時に、必要な最小個数のタイムスロットを除いたタイムスロットにおいて他のメモリアクセス要求が承認されることを保証する。
また、リクエストマスク部51が活性スロット比1/(M1+1)で伝達した制限済要求信号に応じて、メモリアクセス要求部81に必要なデータ転送レートがもたらされるように数M1を選択すれば、メモリアクセス要求部81もまた同様に、自身が必要とするデータ転送レートを手に入れると同時に、必要な最小個数のタイムスロットを除いたタイムスロットにおいて他のメモリアクセス要求が承認されることを保証する。
その結果、各メモリアクセス要求部が要求するデータ転送レートの合計が、共有メモリの最大データ転送レートを超えない限り、制限済要求信号に応じて各メモリアクセス要求部が要求するデータ転送レートが保証される。
しかも、このような動作を行うために、リクエストマスク部50は、リクエストマスク部51及びメモリアクセス要求部81の何れの状態をも関知する必要がなく、また、リクエストマスク部51は、リクエストマスク部50及びメモリアクセス要求部80の何れの状態をも関知する必要がない。
なお、前述した構成のリクエストマスク部が3個以上ある場合にも、それぞれが独立した制御を行うことによって同様の効果が得られることは明らかである。
<調停部の詳細構成>
図4は、調停部40の構成の一例を示す機能ブロック図である。同図には、説明の便宜上、リクエストマスク部50及び51をも記載している。
調停部40は、プライオリティベースアービタ401及び402、並びに承認結果選択回路403及び404から構成される。
プライオリティベースアービタ401は、制限済要求信号RREQ0を、制限済要求信号RREQ1よりも常に高い優先順位で承認する極めて簡易な調停回路である。この優先順位は固定されており、動的な入れ替えは行われない。
プライオリティベースアービタ402もまた、メモリアクセス要求信号REQ0を、メモリアクセス要求信号REQ1よりも常に高い優先順位で承認する極めて簡易な調停回路である。この優先順位も固定されており、動的な入れ替えは行われない。
承認結果選択回路403及び404は、プライオリティベースアービタ401の承認結果、及びプライオリティベースアービタ402の承認結果の何れかを、前者を優先して、承認信号ACK0及びACK1へ出力する。
前述したように、活性スロット比を個々に管理することによって、各メモリアクセス要求部には必要なデータ転送レートが確実にもたらされるから、プライオリティベースアービタ401の承認結果を単に承認信号ACK0及びACK1へ出力するだけで、各メモリアクセス要求部のデータ転送レートを保証した調停が実現される。従って、調停部40は、プライオリティベースアービタ401のみで構成されてもよい。
調停部40の残余の回路は、各メモリアクセス要求部に分配可能なデータ転送レートの総量が実質的に目減りする不都合を回避するために設けられる。この不都合は、全てのメモリアクセス要求信号がマスクされるタイムスロットにはプライオリティベースアービタ401へ制限済要求信号が伝わらないので、承認信号がアサートされないことから生じる。
該当するタイムスロットには、プライオリティベースアービタ402が、メモリアクセス要求信号の一つをマスク信号にかかわらず承認し、承認結果選択回路403及び404が当該承認結果を承認信号ACK0及びACK1へ出力することによって、この不都合を回避する。
なお、便宜上、調停部40を、それぞれ2つのメモリアクセス要求信号、及び制限済要求信号を処理する構成を用いて説明したが、P(3≦P)個のメモリアクセス要求信号、及び制限済要求信号を処理する構成に容易に拡張できる。
すなわち、その場合には、プライオリティベースアービタ401、402を、優先順位がより高い信号によって閉じられる(P−1)個のゲートをそれぞれ用いて構成し、承認結果選択回路403を、プライオリティベースアービタ401が承認信号をアサートした場合に閉じられるP個のゲートを用いて構成し、承認結果選択回路404をP個の論理和ゲートを用いて構成すればよい。
<資源要求調停装置1の動作>
図5は、資源要求調停装置1における主要な信号の時間変化を示すタイミングチャートである。当該タイミングチャートを参照して、主要なタイムスロットにおける動作を説明する。
ここでは、下位の優先順位を付された図示しないメモリアクセス要求部が存在するとし、また、メモリアクセス要求部80が必要なデータ転送レートを得るために、数M0は2であり、MASK0がACK0に後続して2個のタイムスロットにアサートされ、メモリアクセス要求部81が必要なデータ転送レートを得るために、数M1は3であり、MASK1はACK1に後続して3個のタイムスロットにアサートされるとする。
タイムスロット0(T0と略記、以下同様)では、REQ0及びREQ1がアサートされ、何れもマスクされないので、RREQ0が承認され、ACK0がアサートされる。ACK0のアサートにより、T1〜T2にわたってMASK0がアサートされる。
T1では、REQ0及びREQ1がアサートされるが、REQ0はマスクされるので、RREQ1が承認され、ACK1がアサートされる。ACK1のアサートにより、T2〜T4にわたってMASK1がアサートされる。
T2では、REQ0及びREQ1がアサートされるが、何れもマスクされる。ここで、図示しない下位のメモリアクセス要求部がREQ*をアサートし、REQ*がマスクされていないと考えれば、当該REQ*が承認される。
T3では、REQ0及びREQ1がアサートされ、MASK0がネゲートされるので、再びRREQ0が承認される。
これらのタイムスロットでは、各メモリアクセス要求部からのメモリアクセス要求を、活性スロット比を超えるタイムスロットにおいてマスクすることで、他のメモリアクセス部からのメモリアクセス要求が確実に承認される動作が示されている。
T7では、REQ0がネゲートされ、REQ1がアサートされる。REQ1はマスクされるが、ここで、図示しない下位のメモリアクセス要求部からのREQ*がネゲートされているか又はマスクされていると考えれば、REQ1が承認され、ACK1がアサートされる。
T8では、REQ0がアサートされ、REQ1がネゲートされる。REQ0はマスクされるが、T7と同様に考えれば、REQ0が承認され、ACK0がアサートされる。
これらのタイムスロットでは、アサートされたメモリアクセス要求が全てマスクされている場合に、その一つをマスク信号にかかわらず承認することにより、タイムスロットの使用率が低下して分配可能なデータ転送レートが目減りする問題を回避する動作が示されている。
<リクエストマスク部の他の構成例>
図6は、リクエストマスク部50及び51の他の具体例を示す機能ブロック図である。表記法は図3に準じる。また、前述した説明と重複する事項の説明を省略する。
この具体例におけるリクエストマスク部50は、大別して、M0個につき1個のタイムスロットにリセット信号RESET0をアサートする第1のカウンタ部と、当該M0個のタイムスロットのうち承認信号ACK0がアサートされたタイムスロットの個数をカウントし、当該カウント値がN0に達した場合にセット信号SET0をアサートする第2のカウンタ部と、セット信号SET0でマスク信号MASK20をアサートし、リセット信号RESET0でマスク信号MASK20をネゲートするフリップフロップ部と、マスク信号MASK20に応じてメモリアクセス要求信号REQ0をマスクするゲートから構成される。
図6において、レジスタ207、セレクタ206、加算器208、比較器210、及びレジスタ209が、第1のカウンタ部を構成し、ゲート214、加算器216、セレクタ217、セレクタ215、レジスタ202、レジスタ204、及び比較器205が、第2のカウンタ部を構成し、そして、レジスタ218、ゲート211、及びゲート212が、フリップフロップ部を構成する。
この構成のリクエストマスク部50は、連続するM0個のタイムスロット内に発行される(N0+1)個目以降のメモリアクセス要求信号REQ0をマスクするから、活性スロット比はN0/M0に管理される。
従って、リクエストマスク部50が活性スロット比N0/M0で伝達した制限済要求信号に応じて、メモリアクセス要求部80に必要なデータ転送レートがもたらされるように数M0及び数N0を選択すれば、メモリアクセス要求部80は自身が必要とするデータ転送レートを手に入れると同時に、必要な最小個数のタイムスロットを除いたタイムスロットにおいて他のメモリアクセス要求が承認されることを保証する。
図7は、リクエストマスク部50のさらに他の具体例を示す機能ブロック図である。この具体例におけるリクエストマスク部50において、セレクタ301、レジスタ302、加算器303、及びゲート306は、承認信号ACK0が連続してアサートされているタイムスロットの個数をカウントする。当該カウント値は、承認信号ACK0がネゲートされるか、又は当該カウント値がレジスタ304に保持されている数Miに達した場合に、後続するタイムスロットにおいて0にリセットされる。
比較器305は、当該カウント値がM0に達したタイムスロットにおいてのみマスク信号MASK30をネゲートし、それ以外のタイムスロットではマスク信号MASK30をアサートする。ゲート307は、マスク信号MASK30に応じてメモリアクセス要求信号REQ0をマスクする。
この構成のリクエストマスク部50は、連続する(M0+1)個のタイムスロット内に発行される(M0+1)個目のメモリアクセス要求信号REQ0をマスクするから、活性スロット比はM0/(M0+1)に管理される。
従って、リクエストマスク部50が活性スロット比M0/(M0+1)で伝達した制限済要求信号に応じて、メモリアクセス要求部80に必要なデータ転送レートがもたらされるように数M0を選択すれば、メモリアクセス要求部80は自身が必要とするデータ転送レートを手に入れると同時に、必要な最小個数のタイムスロットを除いたタイムスロットにおいて他のメモリアクセス要求が承認されることを保証する。
なお、各リクエストマスク部に、図3、図6、及び図7の何れかに示した構成を統一して用いてもよいし、また、リクエストマスク部毎に、異なる構成を用いてもよい。
ここで次の点に注意する。すなわち、図3において数M0を1として構成したリクエストマスク部は活性スロット比を1/2に管理し、図6において数M0を10、数N0を5として構成したリクエストマスク部は活性スロット比を5/10に管理し、いずれも半数のタイムスロットが使用されるように管理するが、後者は5個までのタイムスロットが連続して使用されることを妨げない。このことは、優先順位が上位のメモリアクセス要求部に後者を用いた場合、下位のメモリアクセス要求部は、5個のタイムスロットを連続して待たされる可能性があるが、前者を用いれば、活性スロット比を維持したまま、下位のメモリアクセス要求部が待たされるタイムスロットの個数を1個に短縮できることを意味している。
<まとめ>
以上説明したように、第1の実施形態の資源要求調停装置において、各リクエストマスク部は、対応するメモリアクセス要求部が必要とする最小個数を超えるメモリアクセス要求信号をマスクし、調停部40は、予め固定された優先順位を用いて、マスクされなかったメモリアクセス要求信号の一つを承認する。
この資源要求調停装置によれば、予め固定された優先順位を用い、かつ当該優先順位の他には各メモリアクセス要求部間の関係を関知することなく、各メモリアクセス要求部が必要とするデータ転送レートを保証できる。
<第2の実施形態>
第2の実施形態の資源要求調停装置は、各メモリアクセス要求部が発行したメモリアクセスコマンドの実行開始が待たされる時間である実行待ち時間の最大値を管理する点で、第1の実施形態の資源要求調停装置と異なる。
<全体構成>
図8は、第2の実施形態の資源要求調停装置2の構成を表す機能ブロック図である。同図には、資源要求調停装置2と共に、メモリアクセス要求部80及び81、コマンドキュー30、メモリアクセス実行部21、並びに共有メモリ10を記載している。第1の実施形態と同一の構成要素には同一の符号を付して説明を省略し、以下では主に第1の実施形態と異なる点について説明する。
メモリアクセス実行部21は、取得されたメモリアクセスコマンドCMDの実行を開始する際に、取得された発行元識別信号UNIT0及びUNIT1を、それぞれ実行開始通知信号DEQ0及びDEQ1に出力する。実行開始通知信号DEQ0及びDEQ1は、それぞれメモリアクセス要求部80又は81によって発行されコマンドキュー30に保持されているメモリアクセスコマンドの個数が、1つ減少したことを表示する。
<リクエストマスク部60の詳細構成>
リクエストマスク部60は、メモリアクセス要求部80によって発行されコマンドキュー30に保持されているメモリアクセスコマンドの個数が第1数以下であるか、又はそのようなメモリアクセスコマンドが保持されていない場合、メモリアクセス要求部80によって発行されたメモリアクセス要求信号REQ0を制限済要求信号RREQ0へ伝達し、その他の場合、メモリアクセス要求部80から発行されたメモリアクセス要求信号REQ0をマスクして制限済要求信号RREQ0へは伝達しない。
図9は、リクエストマスク部60の構成の一具体例を示す機能ブロック図である。
レジスタ601、加算器602、セレクタ607、減算器603、及びセレクタ608は、ACK0がアサートされたタイムスロットの個数を加算し、DEQ0がアサートされたタイムスロットの個数を減算するカウンタを構成する。レジスタ601の初期値を0とすれば、レジスタ601は、メモリアクセス要求部80によって発行されコマンドキュー30に保持されているコマンドの個数を表示する。
レジスタ604は、メモリアクセス要求部80によって発行されコマンドキューに保持されているコマンドの個数に関して、メモリアクセス要求信号REQ0がマスクされないための上限数K0を、予め取得して記憶している。
比較器605は、レジスタ601カウントされる数がレジスタ604に保持されている数K0に達したタイムスロットにおいて、マスク信号MASK40をアサートし、ゲート606は、マスク信号MASK40に応じてメモリアクセス要求信号REQ0をマスクする。
リクエストマスク部60は、この構成によって、メモリアクセス要求部80によって発行されたメモリアクセスコマンドがコマンドキュー30に保持される個数を高々K0個に制限する。
従って、メモリアクセス要求部80によって発行されコマンドキュー30に保持されているメモリアクセスコマンドが、他のメモリアクセスコマンドの実行開始を待たせる時間の最大値は、K0×t0(t0はメモリアクセス要求部80から発行されたメモリアクセスコマンドの最大実行時間)、であることが保証される。
この構成によれば、メモリアクセス要求部毎に、該当するメモリアクセス要求部によって発行されたメモリアクセスコマンドが、新たに発行される他のメモリアクセスコマンドの実行開始を待たせる時間の最大値を保証できる。従って、各メモリアクセス要求部についての当該最大値の総和が、メモリアクセスコマンドの実行待ち時間の最大値であることが保証される。
<まとめ>
以上説明したように、第2の実施形態の資源要求調停装置において、各リクエストマスク部は、対応するメモリアクセス要求部によって発行された所定数のメモリアクセスコマンドが開始待ちにある間、当該メモリアクセス要求部からの新たなメモリアクセス要求信号をマスクするので、メモリアクセスコマンドの実行待ち時間の最大値が保証される。
この資源要求調停装置によれば、予め固定された優先順位を用い、かつ当該優先順位の他には各メモリアクセス要求部間の関係を関知することなく、各メモリアクセス要求部から発行されるメモリアクセスコマンドの実行待ち時間の最大値を保証できる。
<第3の実施形態>
第3の実施形態の資源要求調停装置は、メモリアクセス要求部それぞれから発行された、所定量を超える資源を要求するメモリアクセスコマンドを、各々が所定量以下の資源を要求する複数の分割メモリアクセスコマンドに分割する。そして、当該分割の対象とならなかったメモリアクセスコマンドと、当該分割によって得られた分割メモリアクセスコマンドとを調停対象とする点で、第1の実施形態の資源要求調停装置と異なる。
<全体構成>
図10は、第3の実施形態の資源要求調停装置3の構成を表す機能ブロック図である。同図には、資源要求調停装置3と共に、メモリアクセス要求部80及び81、コマンドキュー30、メモリアクセス実行部20、並びに共有メモリ10を記載している。第1の実施形態と同一の構成要素には同一の符号を付して説明を省略し、以下では主に第1の実施形態と異なる点について説明する。
資源要求調停装置3は、コマンド分割部70及び71を資源要求調停装置1に追加して構成される。コマンド分割部70及び71は、それぞれメモリアクセス要求部80及び81に対応して設けられる。
メモリアクセス要求部80、81は、随時に、それぞれコマンド分割部70、71に対してメモリアクセスコマンドACMD0、ACMD1を発行すると共に、メモリアクセス要求信号AREC0、AREC1をアサートする。
コマンド分割部70は、メモリアクセス要求部80から取得したメモリアクセスコマンドACMD0を、各々が所定量以下の資源を要求するメモリアクセスコマンドCMD0に分割すると共に、分割して得られた個々のメモリアクセスコマンドCMD0毎にメモリアクセス要求信号REQ0をアサートする。そして、全てのメモリアクセス要求信号REQ0に承認信号ACK0がアサートされた場合に、メモリアクセス要求部80に対して承認信号AACK0をアサートする。
<コマンド分割部70の詳細>
図11は、コマンド分割部70が行う処理の詳細を示すフローチャートである。以下、理解の便宜のため、メモリアクセスコマンドACMD0及びACMD1の一種としてデータ転送コマンドを取り上げて説明する。ここで、データ転送コマンドは、転送元アドレスSRC、転送先アドレスDST、及び転送バイト数Nを示してデータ転送を命令するコマンドを言う。
コマンド分割部70は、メモリアクセス要求部80からデータ転送コマンドを取得する(S10)。
転送バイト数Nが、所定のしきい値THよりも大きければ(S11:YES)、残部データのうちしきい値THバイトのデータの転送を命令するデータ転送コマンドを作成し(S12)、REQ0をアサートし(S13)、ACK0がアサートされるのを待ち(S14)、その後、転送元アドレスSRC、転送先アドレスDST、及び転送バイト数Nを更新して、データ転送コマンド発行済となったデータを残部データから除外し(S15)、S11からコマンド分割処理を続行する。
転送バイト数Nが、本来所定のしきい値TH以下であったか、又は分割の結果そうなれば(S11:NO)、本来のデータ転送コマンドか、又は残部データの転送を命令するデータ転送コマンドを作成し(S16)、REQ0をアサートし(S17)、ACK0がアサートされるのを待ち(S18)、その後AACK0をアサートする(S19)。
コマンド分割部71は、メモリアクセス要求部81に対応して、同様の処理を行う。
<まとめ>
以上説明したように、メモリアクセスコマンドACMD0及びACMD1がしきい値を超えるバイト数のデータ転送を命令する場合に、第3の実施形態の資源要求調停装置を適用すれば、当該メモリアクセスコマンドは、各々が所定のしきい値以下のバイト数のデータ転送を命令する複数のメモリアクセスコマンドに分割されて発行されるので、メモリアクセスコマンドの実行待ち時間の最大値を低減させることができる。
<その他の変形例>
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
本発明は、各実施形態で説明したマスク信号を組み合わせて生成される新たなマスク信号を用いる資源要求調停装置であるとしてもよい。また、実施の形態で説明した資源要求調停装置が実行する処理ステップを含む方法であるとしてもよい。また、その方法を、コンピュータシステムを用いて実現するためのコンピュータプログラムであるとしてもよいし、前記プログラムを表すデジタル信号であるとしてもよい。
また、本発明は、前記プログラム又は前記デジタル信号を記録したコンピュータ読取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD、MO、DVD、半導体メモリ等であるとしてもよい。
また、本発明は、電気通信回線、無線又は有線通信回線、若しくはインターネットに代表されるネットワーク等を経由して伝送される前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
また、前記プログラム又は前記デジタル信号は、前記記録媒体に記録されて移送され、若しくは、前記ネットワーク等を経由して移送され、独立した他のコンピュータシステムにおいて実施されるとしてもよい。
本発明は、複数の資源要求装置からの、バスやユニファイドメモリといった共有資源へのアクセスを、各資源要求装置へのサービス品質を保ちながら調停する情報処理装置として活用できる。
資源要求調停装置の機能ブロック図 コマンドキューの機能ブロック図 リクエストマスク部の機能ブロック図 調停部の機能ブロック図 資源要求調停装置の動作タイミングチャート例 リクエストマスク部の他の機能ブロック図 リクエストマスク部の他の機能ブロック図 資源要求調停装置の他の機能ブロック図 リクエストマスク部の他の機能ブロック図 資源要求調停装置の他の機能ブロック図 コマンド分割部の動作を示すフローチャート
10 共有メモリ
20、21 メモリアクセス実行部
30 コマンドキュー
40 調停部
50、51、60、61 リクエストマスク部
70、71 コマンド分割部
80、81 メモリアクセス要求部
101 セレクタ
102、104 レジスタ
103 加算器
105 比較器
106 ゲート
202、204、207、209、218 レジスタ
205、210 比較器
206、215、217 セレクタ
208、216 加算器
211、212、214 ゲート
301 セレクタ
302、304 レジスタ
303 加算器
305 比較器
306、307 ゲート
401、402 プライオリティベースアービタ
403、404 承認結果選択回路
501 セレクタ
502 FIFOレジスタ
601、604 レジスタ
602 加算器
603 減算器
605 比較器
606 ゲート
607、608 セレクタ

Claims (3)

  1. 予め順位付けされた複数の資源要求装置から発行される資源要求をタイムスロット毎に調停する資源要求調停装置であって、
    前記複数の資源要求装置それぞれについて第1数と第2数とが予め定められ、
    それぞれの資源要求装置が発行し承認された資源要求の個数をカウントし、連続する第1数のタイムスロットごとにカウント値がリセットされるカウンタと、
    前記カウント値が第2数を超えた場合に、前記第1数のタイムスロットの残余期間に前記第2数を超えて発行された資源要求を保留する保留手段と、
    前記複数の資源要求装置から発行された資源要求のうち、前記保留手段によって保留されておらず、かつ発行した資源要求装置の順位が最も高い一つを承認する承認手段と、
    前記承認手段から承認された資源要求を保持するコマンドキューと、
    を備え、
    前記保留手段は前記複数の資源要求装置それぞれに対応して
    Kを記憶しているパラメータ記憶部と、
    前記コマンドキューに保持されている未実行の資源要求が前記数Kに達したタイムスロットにおいて、マスク信号を発行するマスク信号発行部とを備え、
    前記保留手段は、当該マスク信号が発行されている間対応する資源要求装置からの資源要求をマスクする
    ことを特徴とする資源要求調停装置。
  2. 予め順位付けされた複数の資源要求装置から発行される資源要求をタイムスロット毎に調停する資源要求調停方法であって、
    前記複数の資源要求装置それぞれについて第1数と第2数とが予め定められ、
    それぞれの資源要求装置が発行し承認された資源要求の個数をカウントし、連続する第1数のタイムスロットごとにカウント値がリセットされるカウントステップと、
    前記カウント値が第2数を超えた場合に、前記第1数のタイムスロットの残余期間に前記第2数を超えて発行された資源要求を保留する保留ステップと、
    前記複数の資源要求装置から発行された資源要求のうち、前記保留ステップにおいて保留されておらず、かつ発行した資源要求装置の順位が最も高い一つを承認する承認ステップと、
    を含み、
    前記保留ステップは、前記複数の資源要求装置それぞれに対応して、
    コマンドキューに資源要求を保持する保持サブステップと、
    数Kを取得するパラメータ取得サブステップと、
    前記コマンドキューに保持されている未実行の資源要求が前記数Kに達したタイムスロットにおいて、マスク信号を発行するマスク信号発行サブステップとを含み、
    前記保留ステップは、当該マスク信号が発行されている間対応する資源要求装置からの資源要求をマスクする
    ことを特徴とする資源要求調停方法。
  3. 予め順位付けされた複数の資源要求装置から発行される資源要求をタイムスロット毎に調停する資源要求調停方法を実施するための処理手順を示したコンピュータ実行可能なプログラムであって、
    前記処理手順は、
    前記複数の資源要求装置それぞれについて第1数と第2数とが予め定められ、
    それぞれの資源要求装置が発行し承認された資源要求の個数をカウントし、連続する第1数のタイムスロットごとにカウント値がリセットされるカウントステップと、
    前記カウント値が第2数を超えた場合に、前記第1数のタイムスロットの残余期間に前記第2数を超えて発行された資源要求を保留する保留ステップと、
    前記複数の資源要求装置から発行された資源要求のうち、前記保留ステップにおいて保留されておらず、かつ発行した資源要求装置の順位が最も高い一つを承認する承認ステップと、
    を含み、
    前記保留ステップは、前記複数の資源要求装置それぞれに対応して、
    コマンドキューに資源要求を保持する保持サブステップと、
    数Kを取得するパラメータ取得サブステップと、
    前記コマンドキューに保持されている未実行の資源要求が前記数Kに達したタイムスロットにおいて、マスク信号を発行するマスク信号発行サブステップとを含み、
    前記保留ステップは、当該マスク信号が発行されている間対応する資源要求装置からの資源要求をマスクする
    ことを特徴とするプログラム。
JP2009070097A 2002-04-17 2009-03-23 資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム Expired - Fee Related JP4457168B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009070097A JP4457168B2 (ja) 2002-04-17 2009-03-23 資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002114550 2002-04-17
JP2009070097A JP4457168B2 (ja) 2002-04-17 2009-03-23 資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003112205A Division JP4344163B2 (ja) 2002-04-17 2003-04-16 資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2009134766A JP2009134766A (ja) 2009-06-18
JP4457168B2 true JP4457168B2 (ja) 2010-04-28

Family

ID=30767634

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009070097A Expired - Fee Related JP4457168B2 (ja) 2002-04-17 2009-03-23 資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム

Country Status (2)

Country Link
US (1) US7007138B2 (ja)
JP (1) JP4457168B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003316523A (ja) * 2002-04-12 2003-11-07 Internatl Business Mach Corp <Ibm> データ記憶装置、実行コマンドの選択方法およびデータ処理方法
JP2004213414A (ja) * 2003-01-06 2004-07-29 Matsushita Electric Ind Co Ltd 記憶デバイス制御装置
WO2005076549A1 (ja) * 2004-02-09 2005-08-18 Vodafone Kabushiki Kaisha 配信要求管理方法及び装置並びに配信要求管理方法のプログラム
US7802022B2 (en) * 2004-04-29 2010-09-21 Microsoft Corporation Generic USB drivers
JP4436367B2 (ja) * 2004-06-24 2010-03-24 パナソニック株式会社 低バンド幅で局所集中アクセスを保証する調停装置、調停方法、及び調停装置を含む動画処理装置
JP4485574B2 (ja) * 2005-07-06 2010-06-23 パナソニック株式会社 アクセス制御装置、アクセス制御集積回路、及びアクセス制御方法
KR100784385B1 (ko) * 2005-08-10 2007-12-11 삼성전자주식회사 공유 자원에 대한 접근 요청을 중재하는 시스템 및 방법
TWI318348B (en) * 2006-09-22 2009-12-11 Realtek Semiconductor Corp Memory management method
US7512723B2 (en) * 2006-12-29 2009-03-31 Freescale Semiconductor, Inc. Queued interface devices, multi-core peripheral systems, and methods for sharing a peripheral in a multi-core system
US20080270658A1 (en) * 2007-04-27 2008-10-30 Matsushita Electric Industrial Co., Ltd. Processor system, bus controlling method, and semiconductor device
CN101520749B (zh) * 2008-02-29 2012-08-29 瑞昱半导体股份有限公司 管理存储器的方法
JPWO2009139109A1 (ja) * 2008-05-13 2011-09-15 パナソニック株式会社 メモリ制御装置、およびこれを備えた情報処理装置
JP5677007B2 (ja) * 2010-10-04 2015-02-25 キヤノン株式会社 バス調停装置、バス調停方法
US9684633B2 (en) 2013-01-24 2017-06-20 Samsung Electronics Co., Ltd. Adaptive service controller, system on chip and method of controlling the same
US10805424B2 (en) 2017-06-29 2020-10-13 Bank Of America Corporation System for sending digital requests for resource transfers

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10A (en) * 1836-08-10 Gtttlslto andi
US4949247A (en) * 1988-02-23 1990-08-14 Stellar Computer, Inc. System for transferring multiple vector data elements to and from vector memory in a single operation
US4969120A (en) * 1989-02-13 1990-11-06 International Business Machines Corporation Data processing system for time shared access to a time slotted bus
US5072363A (en) * 1989-12-22 1991-12-10 Harris Corporation Multimode resource arbiter providing round robin arbitration or a modified priority arbitration
US5430848A (en) * 1992-08-14 1995-07-04 Loral Fairchild Corporation Distributed arbitration with programmable priorities
US5894586A (en) * 1997-01-23 1999-04-13 Xionics Document Technologies, Inc. System for providing access to memory in which a second processing unit is allowed to access memory during a time slot assigned to a first processing unit
JPH10289203A (ja) 1997-04-14 1998-10-27 Matsushita Electric Ind Co Ltd バス調停装置
US6240475B1 (en) * 1997-12-30 2001-05-29 Adaptec, Inc. Timer based arbitrations scheme for a PCI multi-function device
US6205524B1 (en) * 1998-09-16 2001-03-20 Neomagic Corp. Multimedia arbiter and method using fixed round-robin slots for real-time agents and a timed priority slot for non-real-time agents
US6868486B1 (en) * 2000-08-25 2005-03-15 Ncr Corporation Providing multiple memory controllers on a memory bus

Also Published As

Publication number Publication date
US7007138B2 (en) 2006-02-28
US20040019749A1 (en) 2004-01-29
JP2009134766A (ja) 2009-06-18

Similar Documents

Publication Publication Date Title
JP4457168B2 (ja) 資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム
JP4480427B2 (ja) リソース管理装置
US6006303A (en) Priority encoding and decoding for memory architecture
JP4778199B2 (ja) データ転送装置及びデータ転送方法
US8312229B2 (en) Method and apparatus for scheduling real-time and non-real-time access to a shared resource
EP1403773B1 (en) Resource management device
JP4485574B2 (ja) アクセス制御装置、アクセス制御集積回路、及びアクセス制御方法
US7467245B2 (en) PCI arbiter
WO2005073864A1 (en) A method and apparatus to manage memory access requests
US7500038B2 (en) Resource management
JP5662585B2 (ja) ストリームトランザクションに関連する情報に基づくストリームトランザクションのアービトレーション
JP2002073527A (ja) Dmaコントローラ
JP4344163B2 (ja) 資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム
JP2004246862A (ja) リソース管理装置
EP1513069B1 (en) Resource management apparatus
JP2004078508A (ja) バス調停回路、バス調停方法およびそのプログラム
JP6036806B2 (ja) バスアクセス調停回路およびバスアクセス調停方法
JP4549458B2 (ja) Dma転送装置
JP4898527B2 (ja) リソース使用管理装置、リソース使用管理システム及びリソース使用管理装置の制御方法
JP2007164713A (ja) リソース管理装置及びリソース管理方法
JP2004062333A (ja) 画像処理装置
JP2005056239A (ja) 半導体集積回路
JP5494925B2 (ja) 半導体集積回路、情報処理装置およびプロセッサ性能保証方法
JP2004220309A (ja) マルチプロセッサシステム
JP2004185451A (ja) メモリアクセス調停方法およびメモリアクセス調停ユニット

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091211

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

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

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

Free format text: PAYMENT UNTIL: 20130212

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4457168

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130212

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140212

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees