JP2006048691A - ストリーミングidメソッドによるdmac発行メカニズム - Google Patents

ストリーミングidメソッドによるdmac発行メカニズム Download PDF

Info

Publication number
JP2006048691A
JP2006048691A JP2005220770A JP2005220770A JP2006048691A JP 2006048691 A JP2006048691 A JP 2006048691A JP 2005220770 A JP2005220770 A JP 2005220770A JP 2005220770 A JP2005220770 A JP 2005220770A JP 2006048691 A JP2006048691 A JP 2006048691A
Authority
JP
Japan
Prior art keywords
command
group
slot
bus
valid
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
JP2005220770A
Other languages
English (en)
Other versions
JP4440181B2 (ja
Inventor
Matthew E King
エドワード キング マシュー
Peichun Peter Liu
ピーター リュウ ペイチュン
David Mui
ムイ ディビッド
Takeshi Yamazaki
剛 山崎
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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment 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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Publication of JP2006048691A publication Critical patent/JP2006048691A/ja
Application granted granted Critical
Publication of JP4440181B2 publication Critical patent/JP4440181B2/ja
Active 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/3625Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a time dependent access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Liquid Developers In Electrophotography (AREA)
  • External Artificial Organs (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract


【課題】 DMA発行メカニズムを効率化するための方法及び/又は装置を提供する。
【解決手段】
プロセッシングエレメントからのストリーミングIDを用いたダイレクトメモリアクセスリクエストコマンドの発行システム100である。この発行システム100は、バス130と、メモリコントローラ122と、バスインターフェースユニット116,118,120を有し、BIU段は、前記バス手段と前記DMAC手段との間に接続される。また、メモリコントローラ122は、いずれのコマンドをコマンドバスリクエストとして展開するか否かを決定し、この決定は、スロット変更、ストリーミングID、及び前記コマンドの新旧の少なくとも一つを要素とする発行ポリシーの関数としてなされる。
【選択図】 図1

Description

本発明は、概して、ダイレクトメモリアクセス(Direct Memory Access:DMA)リクエストコマンドの発行に関し、より詳細には、コマンドキューの操作に関する。
過去数年間にわたって、DMAはコンピュータアーキテクチャの重要な一端を担うようになっている。DMAに加えて、更に処理能力を高速化するためにDMAを用いたマルチプロセッサシステムが開発されている。特にDMAに関しては、プロセッサからDMAコントローラ(DMAC)に対して発行可能でDMACでの実行を要求するリクエストあるいはコマンドとして、通常、二つのタイプ、即ち、読み出しと書き込みが存在する。しかし、システムに応じて、個々のプロセッサは、入出力(I/O)デバイス、他のプロセッサのローカルメモリ、メモリデバイス、及びその他に関して読み出し及び書き込みを行うこともできる。
しかしながら、最近では、マルチプロセッサ及びDMACが単一チップに組み込まれる。単一チップの小型化によって、高速化だけでなく、サイズの小型化も可能となっている。DMAC、プロセッサ、バスインターフェースユニット(Bus Interface Unit:BIU)、及びバスをすべて一つのチップに組み込むことができる。このようなシステムのデータフローは、DMAコマンドのディスパッチを行うプロセッサコアを起点とし、コマンドがDMAコマンドキューに格納される。各DMAコマンドは、BIUへの、より小さなバスリクエストに展開又はまたは分割することができる。その結果得られる展開されたリクエストは、BIUの保留中のバスリクエストキューに格納される。BIUは、その後、このリクエストをバスコントローラに送る。一般に、リクエストは、DMAから受信された順番で、BIUから送信される。バスリクエストが完了した後、BIUのバスリクエストキューエントリは、新たなDMAリクエストを受信可能な状態となる。
一方、ソースデバイス、即ち要求元デバイスにおけるBIUの保留中のバスリクエストキューと相手側デバイスにおけるスヌープキューの物理的サイズがボトルネックとなる場合もある。このボトルネックは、通常、実行コマンドのキューオーダー及び/又はディレイの関数となっている。他のプロセッサのローカルメモリから読み出しを行う第2コマンドを例にとると、ダイナミックランダムアクセスメモリ(Dynamic Randam Access Memory:DRAM)に格納される第1コマンドを待ち受けすることで、ディレイが発生する場合もある。従って、その結果生じるボトルネックにより、動作速度に劇的な遅れが生じるおそれもある。
DMAコマンドの実行順がボトルネックの原因となることもある。これは、ある種のコマンドは、他のコマンドよりも高速に実行されることによる。例えば、同一チップ内のプロセッサ間でデータの移動を行うDMAコマンド実行は、通常長時間を要する他の外部メモリあるいはI/OデバイスへのDMAコマンド実行よりも高速に完了させることができる。その結果、メモリあるいはI/Oデバイスに対するデータ移動のためのDMAコマンドは、BIU保留中のリクエストキューに、より長時間留まることになる。更に、BIU保留中のリクエストキューは、より遅いバスリクエストにより完全に占拠されて、DMAからの更なるバスリクエストに対して全く、あるいは殆ど実行の余地がなくなってしまうおそれがある。これにより、BIUの保留中のバスリクエストキューに空きがでるまで、プロセッサを停止状態にしなければならないことから、プロセッサのパフォーマンスが悪化してしまう。
ボトルネックの他の要因としてはリトライが挙げられる。複数の要求元デバイスが同じ相手側デバイスへのデータ移動、あるいは相手側デバイスからのデータ移動を行う場合、相手側のデバイスは、スヌープキューがフル状態の場合にはバスリクエストを拒否しなくてはならない。これにより、要求元デバイスは、同じバスリクエストのリトライを後に行うことになってしまう。
ボトルネックのさらに他の要因としては、同一の相手側デバイスにおけるコマンド実行順が挙げられる。従来のDRAMアクセスにおいて、DRAMデバイスは、連続するメモリバンクに対してパラレルに動作が可能である。更に、双方向バスは、通常、DRAMデバイスとのインタフェースに用いられている。データの移動方向が頻繁に変更される場合、バスの方向変更すなわちターンアラウンドに要するバスサイクルが更に必要になることから、バスバンド幅が減少する。また、より大きなパラレルDRAMアクセスを得るためには、同じメモリページに対して連続した読み出しあるいは書き込みを行うことが好ましい。
従って、上述の課題を解決するための、DMA発行メカニズムを効率化するための方法及び/又は装置が必要とされている。
本発明によれば、DMAC内のコマンドを実行するための方法及びコンピュータプログラムが提供される。最初にスロットが選択される。スロットが選択されると、選択されたスロットにおけるどのグループが有効であるかが判定される。有効なグループがない場合、他のスロットが選択される。しかし、有効なグループが少なくとも一つある場合、グループを選択するためにラウンドロビン調停スキームが用いられる。選択されたグループ内で、ペンディング状態にある、保留中のコマンドのうち最も古いものが選択され、展開される。展開されたバスリクエストは、その後、BIUへとディスパッチされる。展開後、DMAコマンドパラメータが更新され、DMAコマンドキューへと書き戻される。
また、本発明の一形態によれば、プロセッシングエレメントからのストリーミングIDを用いたダイレクトメモリアクセス(DMA)リクエストコマンドの発行システムであって、バス手段を有し、発行ロジック手段を備えたDMAコントローラ(DMAC)手段を有し、キュー保留手段を備えたバスインターフェースユニット(BIU)を有し、前記BIU手段は、前記バスと前記DMAC手段との間に接続されており、前記バス手段に接続され、外部メモリ、入出力(IO)手段、及びオンチップメモリを備えたバスターゲット手段を有し、前記バス手段は、前記BIUと前記バスターゲット手段との間に接続されたものであり、前記発行ロジック手段は、いずれのコマンドをコマンドバスリクエストとして展開するか否かを決定し、この決定は、スロット変更、ストリーミングID、前記コマンドの新旧の少なくともいずれか一つを要素とする発行ポリシーの関数としてなされ、前記キュー保留手段は、前記各バスリクエストを、前記バスに対して発行する前に保留状態とする、システムも提供される。
ラウンドロビンストリーミングIDグループでは、例えば、ストリーミングIDグループの選択は、ラウンドロビン式で行われる。
上述した発行ポリシーでは、コマンドの新旧に代えて、コマンドのDMACへの入力順を要素として用いることもできる。
また、DMAC内のコマンドの発行を行う方法であって、複数のスロットのうちから選択スロットを選出し、前記選択スロットのグループ有効性を判定し、有効なグループが存在しない場合には、前記複数のスロットのうちから他のスロットを選出し、少なくとも一つのスロットが有効である場合には、最も古い有効コマンドを選出し、前記最も古い有効コマンドが含まれるグループに対してグループ特性の更新を行う方法も提供される。
この方法において、前記キュー特性を更新するステップでは、最も古い有効コマンドが含まれていたグループに対するポインタを次のペンディング状態のバスリクエストへと移動させることもできる。例えば、グループを選択するためにラウンドロビン調停スキームを用い、このラウンドロビン調停において、最も古い有効コマンドが含まれていたグループに対するポインタを次のペンディング状態のバスリクエストへと移動すること、つまり、最も古い有効コマンドが含まれていたグループから次のペンディング状態のバスリクエストへと処理を進めることも可能である。
なお、オンチップメモリとしては、キャッシュメモリ、ローカルストア、メモリーマップドI/O(MMIO)が挙げられる。
以下、本発明を説明すると、それぞれ属性の異なるメモリアクセスを生成する複数のDMAコマンドがDMACのキューに存在するとき(例えば、読出しDMAコマンドと書込みDMAコマンド)、読出しと書込みとを交互に行った方が、読出しないしは書込みを連続して行う場合よりもメモリアクセスが向上する場合が存在する。通常、単独のDMAコマンドは複数のメモリアクセスに分解されて実行されるので、一度に一つずつのDMAコマンドを実行すると、読出しメモリアクセス、あるいは書込みメモリアクセスが連続して発行され、メモリシステムの効率を低下させる場合がある。
これを回避するため、本発明では、メモリアクセス発行タイミングを、「スロット」という概念でコントロールしている。例えば、連続した一定タイミングTごとにメモリアクセスが可能になる場合、時間2Tを読出しメモリアクセススロット、時間2T+1を書込みメモリアクセススロットとして規定し、読出しと書込みとを交互に発行するよう制御することが可能である。
たとえば、システムによっては、プロセッサからメモリへのアクセスは読出しアクセスと書込みアクセスのどちらかが連続しても効率は低下しないが、プロセッサからプロセッサ、プロセッサからI/Oへのアクセスでは、読出しあるいは書込みが連続すると、効率が低下する場合もある。
従って、メモリアクセス発行タイミングをスロット単位でコントロールすることにより、効率を損うことを防ぐことができる。
一方、ストリーミングIDを用いてメモリアクセス速度を高速に維持することもできる。ストリーミングIDは、属性の異なるアクセス対象、例えばメモリとI/Oへのアクセスを、メモリアクセス実行形において区別したいときに利用できる。例えば、メモリへのアクセスよりもI/Oへのアクセスが非常に長い処理時間を要する場合、メモリへのアクセスとI/Oへのアクセスを同一の比率でバスインターフェースユニットのキューに投入すると、I/Oへのアクセスと同程度の、本来よりも遅い速度でしかメモリアクセスを実施できなくなってしまうおそれがある。これを防ぐため、例えば、メモリアクセスとI/Oへのアクセスに別々のクォータを与えることができる。この場合、I/Oへのアクセスが自分のクォータを使い切ってI/Oへのアクセスが停止しても、メモリへのアクセスは別のクォータを用いて処理を継続できるため、性能の低下を回避することができる。
以上のように、スロットを用いたコントロールと、ストリーミングIDとは、別個に動作するものであり、後述の実施形態では、スロットを用いたコントロールとストリーミングIDとを組合わせた例を示すが、これらをそれぞれ別個に実施することも勿論可能である。
本発明及びその利点は、以下の図面を参照することでより一層理解されるであろう。
以下の説明において、本発明の理解を深めるために、種々の詳細が示されている。しかしながら、当業者であれば、本発明は、このような特定の詳細に束縛されることなく実施できることが理解されよう。他の例において、周知のエレメントが図示されているが、これらは本発明を不明瞭にしないよう、必須ではない細部まで示したものである。加えて、多くの場合、ネットワーク通信、電磁信号技術等は当業者にとって周知な範疇のものであり、本発明を完全に理解するに必須でない限りは省略するものとした。
更に、特に断りのない限り、ここに記述する全ての機能はハードウェア、ソフトウェア、及びこれらの組み合わせのいずれの形態において実現してもよいものである。しかしながら、好適実施形態において、特に断りのない限り、これらの機能は、このような機能を実現するようにコードされたコンピュータプログラムコード、ソフトウェア、及び/又は集積回路電子データプロセッサあるいはコンピュータのようなコードにより実行される。
図1において、参照符号100は、DMACを用いたマルチプロセッサコンピュータシステムを示す。このシステム100は、第1プロセッサ101、第2プロセッサ103、第3プロセッサ105、バス130、メモリコントローラ122、メモリデバイス124、I/Oコントローラ126、及びI/Oデバイス128を有する。加えて、システム100で使用可能な種々のタイプの記録デバイスあるいはメモリデバイスが含まれる。また、図1に示されるようにマルチプロセッサとしても、あるいは単一プロセッサとしてもよい。
各プロセッサ101、103、及び105は、データ通信形態が共通するように構成されている。各第1プロセッサ101、第2プロセッサ103、及び第3プロセッサ105は、第1プロセッサコア104、第2プロセッサコア106、第3プロセッサコア108をそれぞれ有する。第1プロセッサコア104は、第1読み出し通信チャンネル152及び第1書き込み通信チャンネル150を通じて第1DMAC110に結合されている。第2プロセッサコア106は、第2読み出し通信チャンネル156及び第2書き込み通信チャンネル154を通じて第2DMAC112に結合されている。第3プロセッサコア108は、第2読み出し通信チャンネル160及び第2書き込み通信チャンネル158を通じて第2DMAC112に結合されている。第1DMAC110は、第4書き込み通信チャンネル162及び第4読み出し通信チャンネル164を通じて第1BIU116に結合されている。第2DMAC112は、第5書き込み通信チャンネル166及び第5読み出し通信チャンネル168を通じて第2BIU118に結合されている。第3DMAC114は、第6書き込み通信チャンネル170及び第6読み出し通信チャンネル172を通じて第3BIU120に結合されている。
各プロセッサのそれぞれは、同様に動作する。コマンドは、読み出しあるいは書き込みにかかわらず、プロセッサコア内にある。与えられたプロセッサから発行され得るコマンドには様々なものがある。しかし、説明の都合上、これらは、それぞれ別個の3種のコマンドタイプに絞られる。つまり、プロセッサからプロセッサ、プロセッサからメモリデバイス、プロセッサからI/Oデバイス、の3種類である。これらのコマンドがプロセッサコアにより発行されると、コマンドはDMACに送られる。DMACは、その後、コマンドを展開してBIUへと送り、BIUでは、保留中のリクエストキューが、この展開されたバスリクエストを格納する。その後、バスリクエストはバスへと送られる。バスコントローラがリクエストを出すと、要求元デバイスと相手側デバイスとでデータ転送を行ってバスリクエストを完了させる。
DMACを用いたマルチプロセッサコンピュータシステム100は、データやバスリクエストの通信を種々のコンポーネント間で行うためにバス130を使用して動作する。第1プロセッサ101は、第7書き込み通信チャンネル174及び第7読み出し通信チャンネル176を通じてバス130に結合される。第2プロセッサ103は、第8書き込み通信チャンネル178及び第8読み出し通信チャンネル180を通じてバス130に結合される。第3プロセッサ105は、第9書き込み通信チャンネル182及び第9読み出し通信チャンネル184を通じてバス130に結合されている。
メモリコントローラ122は、双方向メモリバスを実装することで、メモリデバイス124と通信を行う。従って、メモリコントローラ122は、双方向メモリバスを実装し、第10書き込み通信チャンネル186及び第10読み出し通信チャンネル188を通じてバス130に結合されている。また、I/Oコントローラ126は、第11書き込み通信チャンネル190及び第11読み出し通信チャンネル192を通じてバス130に結合されている。
バスへの接続に加えて、他の種々のコンポーネント間においても接続が行われ得る。より詳細には、メモリコントローラ122やI/Oコントローラ126のようなコントローラにおいては、他のデバイスそれぞれへの接続が必要となる。メモリコントローラ122は、第1帯域幅制御通信チャンネル194を通じてメモリデバイス124に結合されている。I/Oコントローラ126は、第2帯域幅制御通信チャンネル196及び第3帯域幅制御通信チャンネル198を通じてI/Oデバイス128に対して結合されている。
図2A、図2Bに示されるように、参照符号200、250は、それぞれ、コマンドキュー及びDMACの制御レジスタを示す。DMAコマンドキュー200は、固定数のエントリを有し、各エントリは、3つのフィールド、即ちスロットフィールド210、ストリーミングIDフィールド220、コマンドフィールド230に分割されている。DMA制御レジスタ250は、スロットイネーブルレジスタ252及び割り当てレジスタ即ちクォータレジスタ(quota register)266を有する。
DMAC内、例えば図1のDMAC110内では、物理キュー内にコマンドキューを行うためのキューエントリ数は制限されている。入力されるDMAコマンドは、使用可能なコマンドキューエントリのどれに入れてもよい。各DMAコマンドに対するスロット指定は、スロットフィールド210に入力される。DMAコマンドは、コマンドオプコードや、例えばストリーミングIDのようなオペランドより構成されることから、ストリーミングIDは、ストリーミングIDフィールド220に配され、コマンドオペコード及びその他のオペランドは、コマンドフィールド230に配される。各ストリーミングIDは、シングルビットスロットイネーブルレジスタ252内のスロット機能をイネーブル又はディスエーブルとするよう構成されており、グループ0用のスロット254、グループ1用のスロット256、グループ2用のスロット258のそれぞれが、イネーブルとされた状態で示されている。更に、図中にグループ0用のクォータ260、グループ1用のクォータ262、グループ2用のクォータ264として示されるように、特定の割当て即ちクォータが存在する。これらクォータの合計は、BIUの保留中のバスリクエストキューのサイズによって制限される。
スロットのイネーブル又はディスエーブルは、バス帯域幅特性のマッチング(即ち、メモリバスのようにバスが双方向であればスロット機能がディスエーブルされる)に用いられる。ストリーミングIDグループに対してスロット機能がイネーブルにされていれば、読み出しコマンドに対しては、スロットフィールド210において、値「0」が割り当てられ、書き込みコマンドに対しては、スロットフィールド210において値「1」が割り当てられる。スロット機能がディスエーブルの場合、読み出しコマンド及び書き込みコマンドの双方に対して、スロットフィールド210で値「0」が割り当てられる。
しかしながら、通常は、3つのバスリクエスト動作が発生し得る。即ち、プロセッサからプロセッサ、プロセッサから外部又はシステムメモリ、及びプロセッサからI/Oデバイスである。3つの動作のそれぞれは、ストリーミングIDグループに割り当てることができる。
概して、プロセッサからプロセッサへのコマンドに対しては、ストリーミングIDグループ0が割り当てられ、プロセッサからメモリへのコマンドへはストリーミングID1が割り当てられ、プロセッサからIOへのコマンドにはストリーミングIDグループ2が割り当てられる。この場合、DMAコマンドに関するバス帯域幅特性をマッチングさせるために、スロット機能は、ストリーミングIDグループ0及び2に対してはイネーブルとされ、グループ1に対してはディスエーブルとされる。
DMAコマンドは、通常、BIUへの1つ以上のバスリクエストに展開される。このバスリクエストは、そのサイズが制限されている、BIUの保留中のDMAバスリクエストキューに入れられる。各ストリーミングIDグループにクォータを構成することで、このキューは、3つの仮想キューに分割される。ソフトウェアアプリケーションに応じて、3つの仮想キューのサイズは、ストリーミングIDクォータを通じてダイナミックに構成される。
図3に示されるように、参照符号300は、修正されたDMAC発行メカニズムからのコマンド発行フローチャートを表す。
図3のフローチャートにおいて300で示されるように、DMAコマンドがコマンドキューに入れられると、DMACは、プロセス300のような、コマンド発行プロセスを与えなければならない。ステップ302において、スロット0とスロット1との間でスロット変更を行う。DMACは、一方向バスタイプに対して使用可能な帯域幅の使用効率を向上させるように、スロットの変更を行う。
スロット0が次に実行されるよう選択された場合、DMACは、コマンドキューを発行するかの判定のために一連のチェックを行う。ステップ304において、DMACは、いずれのグループが、有効でペンディング状態にあるDMAコマンドを有するかを判定する。各グループには、最大発行カウントあるいはクォータが関連付けられている。クォータは、システムオーバーフローを起こすことなく発行可能となるようバスリクエスト数を制限する。システムの動作を適切に維持するために、DMACは、ステップ306において、スロット内の各グループがそれぞれのクォータを既に超過しているか否かを判定する。
有効性及びクォータの判定がなされた後に、DMACは、次のコマンドを選択する。ステップ308において、DMACは、コマンドグループに対してラウンドロビン選択システムを用いる。選択時には、ステップ310において、ペンディング状態のコマンドに関してそれぞれのクォータ制限を超えていない有効なグループがあるか否かの判定が行われる。ペンディング状態のコマンドに関してそれぞれのクォータ制限を超過していない有効なグループがない場合、他方のスロット、スロット1に変更される。しかし、ペンディング状態のコマンドに関してそれぞれのクォータ制限に達していない有効なグループが存在する場合、ステップ312において、選択されたグループから最も古いコマンドが展開される。その後、ステップ314においてラウンドロビンにおけるポインタは次のストリーミングIDコマンドグループに調整されるとともにキューのサイズが小さくされ、ステップ302においてスロットが変更される。
スロット1が次に実行されるよう選択されると、DMACは、コマンドキューを発行するかの判定のための一連のチェックを行う。ステップ316において、DMACは、どのグループが有効なペンディング状態にあるDMAコマンドを有するかを判定する。各グループには、最大発行カウントあるいはクォータが関連付けられている。クォータは、システムオーバーフローを起こすことなく発行可能となるようバスリクエスト数を制限する。システムの動作を適切に維持するために、DMACは、スロット内の各グループがそれぞれのクォータを既に超過しているか否かを判定する。
有効性及びクォータの判定がなされた後に、DMACは、次のコマンドを選択する。ステップ320において、DMACは、コマンドグループに対してラウンドロビン選択システムを用いる。選択時には、ステップ322において、ペンディング状態のコマンドに関してそれぞれのクォータ制限を超えていない有効なグループがあるか否かの判定が行われる。ペンディング状態のコマンドに関してそれぞれのクォータ制限を超過していない有効なグループがない場合、他方のスロット、スロット0に変更される。しかし、ペンディング状態のコマンドに関してそれぞれのクォータ制限に達していない有効なグループが存在する場合、ステップ324において、選択されたグループから最も古いコマンドが展開される。その後、ステップ326においてラウンドロビンにおけるポインタは次のストリーミングIDコマンドグループに調整されるとともにキューのサイズが小さくされ、ステップ302においてスロットが変更される。
なお、読み出しコマンドあるいは書き込みコマンドのいずれであるかにかかわらず、プロセッサからメモリへのすべてのコマンドは、スロット0を通じて展開される。このような多数のコマンドの発行は、効率向上のために行われる。双方向バスにおける通信方向の変更には、時間がかかる。更に、外部メモリに関しては、個々にプロセスリクエストを行い得る複数のバンクが存在し、従って、外部メモリは、複数のコマンドを受信可能となっている。また、リクエストを処理するためには非常に長時間を要する。従って、双方向バスにおける通信方向の変更を最小限にしてパラレル読み込みあるいはパラレル書き込みを最大限にするためには、外部メモリへのバースト読み出しあるいはバースト書き込みによって処理するリクエスト数をできる限り多数とすることが望ましい。
更に、以上の説明から、本発明の好適実施形態に対して、その真の趣旨を逸脱することなく、種々の修正及び変更が可能であることが理解されよう。この説明は、例示のみを目的とするものであり、本願の限定するものとして解釈すべものではない。本発明の範囲は、添付したクレームによってのみ限定されるものである。
以上、本発明を好適実施形態を参照して説明したが、ここに記載した実施形態は、例示的なものであり、本質的な限定となるものではない。従って、上述の例に関しては、広汎な変形、修正、変更、及び置き換えが可能であり、幾つかの例においては、本発明の幾つかのフィーチャーを、他の対応するフィーチャを使用することなく用いることが可能である。上述の説明及び実施形態を査読することによって、当業者であれば、これらの変形及び修正が望ましい場合もあることが理解されよう。従って、添付したクレームは、本発明の範囲に一致する範囲で広汎に解釈されるべきものである。
DMACを用いたマルチプロセッサコンピュータシステムの説明図。 改良されたDMACコマンドキューの説明図。 改良されたDMACコマンドキューの説明図。 DMAC発行メカニズムを通じたコマンド発行を示すフローチャート。
符号の説明
100 システム
101、103 プロセッサ
105 プロセッサ
104、106、108 プロセッサコア
122 メモリコントローラ
124 メモリデバイス
126 コントローラ
128 I/Oデバイス
130 バス
194、196、198 帯域幅制御通信チャンネル
200 コマンドキュー
210 スロットフィールド
230 コマンドフィールド
250 制御レジスタ
252 スロットイネーブルレジスタ
254、256、258 スロット
260、262、264 クォータ

Claims (17)

  1. プロセッシングエレメントからのストリーミングIDを用いたダイレクトメモリアクセスリクエストコマンドの発行システムであって、
    バス手段を有し、
    発行ロジック手段を備えたDMAコントローラ手段を有し、
    キュー保留手段を備えたバスインターフェースユニット手段を有し、このBIU手段は、前記バス手段と前記DMAC手段との間に接続されており、
    前記バス手段に接続され、外部メモリ、入出力手段、及びオンチップメモリの少なくとも一つをターゲットとするバスターゲット手段を有し、前記バス手段は、前記バスインターフェースユニット手段と前記バスターゲット手段との間に接続されたものであり、
    前記発行ロジック手段は、いずれのコマンドをコマンドバスリクエストとして展開するか否かを決定し、この決定は、スロット変更、ストリーミングID、及び前記コマンドの新旧の少なくとも一つを要素とする発行ポリシーの関数としてなされ、
    前記キュー保留手段は、前記各バスリクエストを、前記バスに対して発行する前に保留状態とする、システム。
  2. 前記DMAC手段は、更に、
    複数のエントリロケーションを有するコマンドコードフィールドと、
    少なくともコマンド指定に関連するよう構成され、かつ、それぞれ前記複数のエントリロケーションの少なくとも一つに対応する複数のスロットエントリを少なくとも有するように構成されたスロットフィールドと、
    前記複数のエントリロケーションの各エントリロケーションに対応するストリーミングID番号を含むように少なくとも構成された識別フィールドと、
    を有する、請求項1記載のシステム
  3. 前記コマンド指定には、読み出しコマンドと書き込みコマンドとから選択して指定を行うことが含まれる、請求項2記載のシステム。
  4. 前記発行ロジック手段は、双方向バスを備えた外部デバイスに対するスロット変更を少なくともディスエーブルとする、請求項1記載のシステム。
  5. DMACでコマンドの発行を行う方法であって、
    前記DMACが、
    複数のスロットのうちから選択スロットを選出し、
    前記選択スロットのグループ有効性を判定し、
    有効なグループが存在しない場合には、前記複数のスロットのうちから他のスロットを選出し、
    少なくとも一つのスロットが有効である場合には、最も古い有効コマンドを選出し、
    前記最も古い有効コマンドが含まれるグループに対してグループ特性の更新を行う、方法。
  6. 前記スロットを選出するステップでは、読み出しスロット又は書き込みスロットが選出される、請求項5記載の方法。
  7. 前記グループ有効性を判定するステップでは、
    複数のIDグループから有効なIDグループを判定し、
    有効なIDグループの少なくとも一つが予めプログラムされたクォータに達しているか否かを判定する、請求項5記載の方法。
  8. 前記グループ特性を更新するステップでは、最も古い有効コマンドが含まれていたグループに対するポインタを次のペンディング状態のバスリクエストへと移動させる、請求項5記載の方法。
  9. DMAC内のコマンドを発行するためのコンピュータプログラムであって、前記コンピュータプログラム製品は、コンピュータプログラムが記録されたメディアを有し、このコンピュータプログラムは、
    複数のスロットから選択スロットを選出するためのコンピュータコードと、
    前記選択スロットのグループ有効性を判定するためのコンピュータコードと、
    有効なグループが存在しない場合に、前記複数のスロットから他のスロットを選出するためのコンピュータコードと、
    少なくとも一つのグループが有効である場合に、最も古い有効コマンドを選出するためのコンピュータコードと、
    前記最も古い有効コマンドが存在するグループのグループ特性を更新するためのコンピュータコードと、を有する、コンピュータプログラム。
  10. 前記スロットを選出するためのコンピュータコードは、読み出しスロット又は書き込みスロットを選択するためのコンピュータコードを含む、請求項9記載のコンピュータプログラム。
  11. 前記グループ有効性を判定するためのコンピュータコードは、
    複数のIDグループから有効なIDグループを判定するためのコンピュータコードと、
    有効なIDグループの少なくとも一つが予めプログラムされたクォータに達しているか否かを判定するためのコンピュータコードと、を含む、請求項9記載のコンピュータプログラム。
  12. 前記キュー特性を更新するための前記コンピュータコードは、最も古い有効コマンドが含まれていたグループに対するポインタを次のペンディング状態のバスリクエストへと移動させる、請求項9記載のコンピュータプログラム。
  13. DMAC内のコマンドを発行するためのプロセッサであって、前記プロセッサはコンピュータプログラムを含み、このコンピュータプログラムは、
    複数のスロットから選択スロットを選出するためのコンピュータコードと、
    前記選択スロットのグループ有効性を判定するためのコンピュータコードと、
    有効なグループが存在しない場合に、前記複数のスロットから他のスロットを選出するためのコンピュータコードと、
    少なくとも一つのグループが有効である場合に、有効なコマンドのうち最も古い有効コマンドを選出するためのコンピュータコードと、
    前記最も古い有効コマンドが存在するグループのグループ特性を更新するためのコンピュータコードと、を有するプロセッサ。
  14. 前記スロットを選出するためのコンピュータコードには、更に、読み出しスロット又は書き込みスロットを選出するためのコンピュータコードが含まれる、請求項13記載のプロセッサ。
  15. 前記グループ有効性を判定するためのコンピュータコードには、更に、
    複数のIDグループから有効なIDグループを判定するためのコンピュータコードと、
    有効なIDグループの少なくとも一つが予めプログラムされたクォータに達しているか否かを判定するためのコンピュータコードと、が含まれる、請求項13記載のプロセッサ。
  16. 前記キュー特性を更新するコンピュータコードには、最も古い有効コマンドが含まれていたグループに対するポインタを次のペンディング状態のバスリクエストへと移動させるコンピュータコードが含まれる、請求項13記載のプロセッサ。
  17. DMACでコマンドバスリクエストを発行する方法であって、
    前記DMACが、プロセッシングエレメントによってストリーミングIDが割当てられたコマンドグループを受けとる過程と、
    前記DMACが、受けとったコマンドグループのうちいずれのコマンドグループ内のコマンドをコマンドバスリクエストとして展開するかを決定する過程を有し、
    前記決定する過程では、前記DMACが、前記ストリーミングIDが割当てられたコマンドグループに対してクォータを割当てるとともに、前記コマンドグループに関して割当てられた前記クォータを超過したか否かを判定し、その判定結果に応じて選択される前記コマンドグループ内のコマンドをコマンドバスリクエストとして展開する、方法。
JP2005220770A 2004-07-29 2005-07-29 ストリーミングidメソッドによるdmac発行メカニズム Active JP4440181B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/902,473 US20060026308A1 (en) 2004-07-29 2004-07-29 DMAC issue mechanism via streaming ID method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008260019A Division JP5058116B2 (ja) 2004-07-29 2008-10-06 ストリーミングidメソッドによるdmac発行メカニズム

Publications (2)

Publication Number Publication Date
JP2006048691A true JP2006048691A (ja) 2006-02-16
JP4440181B2 JP4440181B2 (ja) 2010-03-24

Family

ID=35717681

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2005220770A Active JP4440181B2 (ja) 2004-07-29 2005-07-29 ストリーミングidメソッドによるdmac発行メカニズム
JP2008260019A Expired - Fee Related JP5058116B2 (ja) 2004-07-29 2008-10-06 ストリーミングidメソッドによるdmac発行メカニズム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2008260019A Expired - Fee Related JP5058116B2 (ja) 2004-07-29 2008-10-06 ストリーミングidメソッドによるdmac発行メカニズム

Country Status (7)

Country Link
US (1) US20060026308A1 (ja)
EP (1) EP1704487B1 (ja)
JP (2) JP4440181B2 (ja)
CN (1) CN100573489C (ja)
AT (1) ATE373845T1 (ja)
DE (1) DE602005002533T2 (ja)
WO (1) WO2006011063A2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100677511B1 (ko) 2005-08-12 2007-02-02 엘지전자 주식회사 Bcast서비스 시스템 및 이를 이용한 콘텐츠 전송방법
US20080220047A1 (en) * 2007-03-05 2008-09-11 Sawhney Amarpreet S Low-swelling biocompatible hydrogels
CN103533090A (zh) * 2013-10-23 2014-01-22 中国科学院声学研究所 单个物理网口模拟为多个逻辑网口的映射方法与装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2628079B2 (ja) * 1988-11-25 1997-07-09 三菱電機株式会社 マルチプロセサシステムにおけるダイレクト・メモリ・アクセス制御装置
CA2069711C (en) * 1991-09-18 1999-11-30 Donald Edward Carmon Multi-media signal processor computer system
US5475850A (en) * 1993-06-21 1995-12-12 Intel Corporation Multistate microprocessor bus arbitration signals
US5619728A (en) * 1994-10-20 1997-04-08 Dell Usa, L.P. Decoupled DMA transfer list storage technique for a peripheral resource controller
US5826106A (en) * 1995-05-26 1998-10-20 National Semiconductor Corporation High performance multifunction direct memory access (DMA) controller
EP0804033A3 (en) * 1996-04-26 2003-12-10 Texas Instruments Incorporated Improvements in or relating to electronic devices
JPH1040211A (ja) * 1996-04-30 1998-02-13 Texas Instr Inc <Ti> パケット化されたデータ通信インタフェース機器内での直接メモリアクセス優先順位を割り当てるための方法ならびにdmaチャンネル回路
US6112265A (en) * 1997-04-07 2000-08-29 Intel Corportion System for issuing a command to a memory having a reorder module for priority commands and an arbiter tracking address of recently issued command
JP3602293B2 (ja) * 1997-04-22 2004-12-15 株式会社ソニー・コンピュータエンタテインメント データ転送方法及び装置
US7133940B2 (en) * 1997-10-14 2006-11-07 Alacritech, Inc. Network interface device employing a DMA command queue
US6347344B1 (en) * 1998-10-14 2002-02-12 Hitachi, Ltd. Integrated multimedia system with local processor, data transfer switch, processing modules, fixed functional unit, data streamer, interface unit and multiplexer, all integrated on multimedia processor
KR100708096B1 (ko) * 2000-07-21 2007-04-16 삼성전자주식회사 버스 시스템 및 그 실행 순서 조정방법
US6738836B1 (en) * 2000-08-31 2004-05-18 Hewlett-Packard Development Company, L.P. Scalable efficient I/O port protocol
US6874039B2 (en) * 2000-09-08 2005-03-29 Intel Corporation Method and apparatus for distributed direct memory access for systems on chip
JP2002163239A (ja) * 2000-11-22 2002-06-07 Toshiba Corp マルチプロセッサシステムおよびその制御方法
US7139306B2 (en) * 2001-03-14 2006-11-21 Mercury Computer Systems, Inc. Wireless communication systems and methods for long-code communications for regenerative multiple user detection involving pre-maximal combination matched filter outputs
US6981073B2 (en) * 2001-07-31 2005-12-27 Wis Technologies, Inc. Multiple channel data bus control for video processing
US20040073721A1 (en) * 2002-10-10 2004-04-15 Koninklijke Philips Electronics N.V. DMA Controller for USB and like applications

Also Published As

Publication number Publication date
DE602005002533T2 (de) 2008-06-26
JP5058116B2 (ja) 2012-10-24
WO2006011063A3 (en) 2006-06-15
CN1910562A (zh) 2007-02-07
JP2009037639A (ja) 2009-02-19
JP4440181B2 (ja) 2010-03-24
EP1704487B1 (en) 2007-09-19
WO2006011063A2 (en) 2006-02-02
EP1704487A2 (en) 2006-09-27
DE602005002533D1 (de) 2007-10-31
CN100573489C (zh) 2009-12-23
ATE373845T1 (de) 2007-10-15
US20060026308A1 (en) 2006-02-02

Similar Documents

Publication Publication Date Title
EP3729281B1 (en) Scheduling memory requests with non-uniform latencies
US9141568B2 (en) Proportional memory operation throttling
US10783104B2 (en) Memory request management system
JP4742116B2 (ja) アウトオブオーダdramシーケンサ
US20210073152A1 (en) Dynamic page state aware scheduling of read/write burst transactions
JP5787629B2 (ja) マシンビジョン用マルチプロセッサシステムオンチップ
US20120137090A1 (en) Programmable Interleave Select in Memory Controller
KR100847968B1 (ko) 컴퓨팅 시스템, 전자 통신 디바이스, 컴퓨팅 시스템 운영 방법 및 정보 처리 방법
WO2006059283A2 (en) Streaming memory controller
EP3732578B1 (en) Supporting responses for memory types with non-uniform latencies on same channel
JP7384806B2 (ja) 連動メモリデバイスに対するメモリ要求のスケジューリング
MX2012005183A (es) Linea de espera de comandos para componente periferico.
KR20050051672A (ko) 스케일러블 멀티채널 메모리 액세스를 위한 방법 및 메모리제어기
EP1522021A1 (en) Dram supporting different burst-length accesses without changing the burst length setting in the mode register
US8458406B2 (en) Multiple critical word bypassing in a memory controller
WO2006134550A2 (en) Memory controller
JP5058116B2 (ja) ストリーミングidメソッドによるdmac発行メカニズム
JP2008544348A (ja) メモリーコントローラ及びネットワークとメモリーの結合方法
JP2006268753A (ja) Dma回路及びコンピュータシステム
EP1431878A2 (en) Shared write buffer in a peripheral interface and method of operating
JP2005293596A (ja) データ要求のアービトレーション
US8706925B2 (en) Accelerating memory operations blocked by ordering requirements and data not yet received
US8856459B1 (en) Matrix for numerical comparison
JP2000227895A (ja) 画像データ転送装置および画像データ転送方法
JP2008509470A (ja) プロセッサと外部周辺装置との間の通信を制御するコントローラおよび方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080805

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081006

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090512

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090713

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

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

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

Free format text: PAYMENT UNTIL: 20130115

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4440181

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140115

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees