JP2007529833A - アウト・オブ・オーダーのdmaコマンドキューにおけるコマンド順序の設定に関する技術 - Google Patents

アウト・オブ・オーダーのdmaコマンドキューにおけるコマンド順序の設定に関する技術 Download PDF

Info

Publication number
JP2007529833A
JP2007529833A JP2007504514A JP2007504514A JP2007529833A JP 2007529833 A JP2007529833 A JP 2007529833A JP 2007504514 A JP2007504514 A JP 2007504514A JP 2007504514 A JP2007504514 A JP 2007504514A JP 2007529833 A JP2007529833 A JP 2007529833A
Authority
JP
Japan
Prior art keywords
command
flag
commands
barrier
memory access
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
JP2007504514A
Other languages
English (en)
Other versions
JP4553936B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2007529833A publication Critical patent/JP2007529833A/ja
Application granted granted Critical
Publication of JP4553936B2 publication Critical patent/JP4553936B2/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)
  • Details Of Television Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

【解決手段】メモリアクセスを制御するための方法、装置、および、コンピュータプログラムに関する。DMAユニットは、多くのバスアーキテクチャにおいて一般化している。しかし、複数のDMAユニットについて限られたシステムリソースを管理するのは難しい。生成された複数のコマンドを管理したり、それらの依存性を維持するために、コマンドへのフラグの埋め込みやバリアコマンドを利用する。こういった操作により、依存性を維持するようにコマンドの実行順序を制御できる。
【選択図】図1

Description

本発明は、概しては、DMA(Direct Memory Access)制御に関し、より詳細には、DMAコントロールユニットにおいてコマンドの順序を維持するメカニズムを提供する技術、に関する。
従来システムにおけるDMAユニットは、メモリに直接的にアクセス可能なデバイスであり、メインプロセッサはバイパスされる。このようなタイプのシステムは、いくつかのバス・アーキテクチャ(bus architecture)に見受けられる。しかし、システム内のDMAユニットを効率的かつ秩序だって利用するためには、DMAのメモリ使用方法について制御や制約が必須となる。
DMAユニットはDMA転送の実行制御を行う。通常、メモリを使用するためのリクエストやコマンドが、DMAユニットに対して出力される。DMAユニットは仮想的なゲートキーバー(gatekeeper)として機能し、こういったリクエストやコマンドが秩序だって実行されるように制御する。しかし、リクエストやコマンドを発行するDMAユニットの数や、1つのDMAユニットから発行されるコマンドの数などはとても大きな数になり得る。多数のリクエストがシステム動作を鈍くするという問題を軽減するために、DMAユニットは、一連のリクエストやコマンドを保持するためのキューを備える。
通常、DMAユニットのリクエストやコマンドは、DMAユニットへの到着順に、すなわち、ストリクト・オーダー(strict order)にて実行される。しかし、ストリクトオーダーはとてもコストが高くつく可能性があり、その結果として、さまざまな問題が生起し得る。たとえば、高優先度のDMAコマンドが、低優先度のDMAコマンドのせいで遅延してしまう可能性がある。
ストリクト・オーダー方式がコスト高となる別の理由は、DMAのために仮想記憶システムを使うときにある。仮想アドレスから実アドレスへの変換ができなければ、DMAユニットは、変換ミスが解決されるまで待たなければならない。変換ミスはハードウェアによって解決できるときもあれば、ソフトウェアによって解決されなければならないときもある。いずれにしても、変換の失敗から回復するのに要する遅延時間は非常に長い。低速デバイスを対象としたDMA転送の場合には、キューの奥に存在するDMAコマンドは、現DMAコマンドとは関係がなくても実行をさまたげられることがある。
ロードやストアのために、PowerPC(登録商標)のような従来システムの中には、ウィークリー・オーダー(weakly order)や、ウィークリー・コンシステント・メモリモデル(weakly consistent memory model)を採用することでパフォーマンスを改善できるものもある。ウィークリー・オーダーのメモリモデルの概念は、DMAコマンドの実行にまで拡張可能である。DMAユニットに関するウィークリー・オーダー・モデルにおいては、各コマンドにはタグ(tag)が関連付けられる。コマンドは任意の順序にて実行完了することになるが、制御ソフトはその実行順序、関連グループ、あるいは、コマンドの依存関係をタグによって監視できる。
しかし、任意の順序でコマンドを実行すると、多くの問題が生じる。たとえば、あるコマンドが、後続コマンドが実行される前に完了しておかなければならない場合である。従来のDMAコマンド実行方法や実行装置に関連する問題の少なくともいくつかに対処するためのDMAコマンド順序設定方法や装置が必要とされている。
本発明は、メモリアクセス制御装置を提供する。この装置は、少なくとも、1つのプロセッサを備える。プロセッサは、少なくとも、コマンドを発行し、少なくとも、割り当てタグ番号と関連するコマンドに対し、少なくともフラグを付与することができる。この装置は、また、複数の通信ポートを備える。複数のコマンドは、複数の通信チャネルのうちの少なくとも第1の通信チャネルを介して、少なくとも1つのプロセッサにより入力される。この装置は、また、タグキューを備える。タグキューは、複数のタグ付きコマンドを生成するために、複数のコマンドのそれぞれにタグ番号を設定する。この装置は、また、複数のタグ付きコマンドを格納するコマンドキューを備える。コマンドキューは、コマンドをソート(sort)する機能を備える。
本発明とその優位性についてのより完全に理解するために、添付の図面とあわせて以下の記述を参照されたい。
以下の記述における多数の特定的に詳細な記述は、本発明の充分な理解を可能とするためのものである。しかし、当業者であれば、そのような特定的に詳細な記述がなくとも本発明を実現できるであろう。別の例においては、既知の要素についても模式図やブロック図のかたちで、不必要なほど詳細な部分についても本発明を隠すことなく示す。加えて、ほとんどの部分について、ネットワーク通信、電磁的信号技術などに関する詳細は、そのような詳細が本発明の完全な理解のためには不要であり、関連技術について通常のスキルを持つ人物の理解力の範囲内にあると考えられる限りは省略している。
さらに付け加えるならば、特に断らない限りは、以下に述べられるすべての機能は、ハードウェアやソフトウェア、あるいはそれらの組み合わせによって実現される。しかし、特に断らない限りは、好ましくは、これらの機能は、コンピュータのプロセッサ、すなわち、コンピュータプログラムコードとしてのコードにしたがって電子データを処理するプロセッサ、ソフトウェア、および/あるいは、このような機能を実現するように設計された集積回路によって実行されるとする。
図1の参照符号の「100」は、改良型DMAコントローラを備えるシステムを示す。システム100は、改良型DMAコントローラ110、PU130、メモリユニット132、メモリ120およびMP(Multiprocessor)干渉バス190を含む。改良型DMAコントローラ110は、更に、DMAコマンドキュー140、タグキュー150、展開/変換論理回路160、出力データバッファ170および入力データバッファ180を備える。
改良型DMAコントローラ110を備えるシステム100においては、コマンドが発行され、実行される。メモリユニット132を備えるPU130は、コマンドをDMAコマンドキュー140に発行する。PU130は、任意のタイプのプロセッサであればよく、メインPU(Main PU:MPU)やSPU(Synergistic PU)であってもよい。メモリユニット132はさまざまなタイプのメモリであってもよく、これに限る意図ではないが、キャッシュであってもよい。DMAコマンドキュー140に送られたコマンドはタグ付けされ、各コマンドのタグはタグキュー150において追跡される。タグはコマンドごとに割り当てられてもよいし、コマンドの種類を特定するものであってもよい。この場合には、タグに応じたグループが形成される。DMAコマンドキュー140からは、読み出し/書き込みコマンドが図示しないシステムメモリなどの各種コンポーネントに発行される。データの転送は、出力データバッファ170や入力データバッファ180を介して実行される。コマンドの実行に際しては、たとえば、デコード処理のようにこのほかにも多くの処理が含まれ得る。
ただし、DMAコマンドキュー140のコマンドは、単にランダムに実行されるのではない。従来システムでは、DMAコマンドキュー140のようなDMAコマンドキューのコマンドは、ストリクト・オーダーの枠組みにおいては到着順に実行されている。しかし、改良型DMAコントローラ110は、ウィークリー・オーダーの枠組みを採用しており、さまざまな順序での実行を可能としている。更に、改良型DMAコントローラ110は、一連の埋め込みフラグを利用する。PU130は、発行されたコマンドにフラグを埋め込む。DMAコマンドキュー140がフェンス(fence)フラグやバリア(barrier)フラグを埋め込むこともできるが、このようなやり方はより複雑となる。埋め込まれたフラグは各コマンドの依存性を示し、コマンドの順次実行のために役に立つ。埋め込みフラグを使う理由は他にもさまざまである。たとえば、高優先度のコマンドを低優先度のコマンドよりも先に実行する場合である。
より詳細には、コマンドには2つのフラグが埋め込まれる。バリアとフェンスである。どちらも同一タグのグループに属するコマンドだけに影響する。通常、埋め込まれたフェンスフラグは、そのフェンスフラグ付きのコマンドよりも前に発行されたコマンドのうち、同じタググループ内の全てのコマンドが完了するまで、そのコマンドの実行を抑止する。つまり、フェンスフラグは、フェンスフラグ付きのコマンドの実行の前に、フェンスフラグ付きのコマンドの前に発行された同じタググループに属する全てのコマンドが完了することを要求する。フェンスフラグは、キューにある後続のコマンドには影響しない。たとえば、フェンスフラグ付きコマンドの後に発行されたコマンドは、フェンスフラグ付きのコマンドよりも前に実行可能である。
一方、バリアフラグは、同じタググループであれば、先のコマンドにも後のコマンドにも影響する。通常、バリアフラグは、そのバリアフラグ付きコマンドよりも前に発行されたコマンドが実行される前に、同じタググループの後続コマンド(バリアフラグ付きコマンド自体も含む)が実行されるのを禁止する。たとえば、同じタググループに属し、バリアフラグ付きコマンドの後に発行されたコマンドは、バリアフラグ付きコマンドより前に実行できない。通常、バリアフラグ付きコマンドの前に発行されたコマンドのうち、同じタググループに属するコマンドの全てが完了したとき、バリアフラグ付きコマンドと、その同じタググループに属する後続のコマンドが実行可能となる。したがって、いったん、バリアがクリアされると、通常のアウト・オブ・オーダー処理が継続可能となる。
PU130は、また、フェンスフラグやバリアフラグを埋め込む代わりに、バリアコマンドを発行することもできる。バリアコマンドは、キューにある全てのコマンドを操作する。タグに関わらず、全ての後続コマンドは、バリアコマンド以前に発行されたコマンド全てが完了するまで実行不可となる。いったんバリアがクリアされると、通常のアウト・オブ・オーダー処理が継続可能となる。
バリアコマンドとフラグを比較すると、微妙だが意味深い違いがある。タグに対して特定的であって、コマンドの一部として埋め込まれるフラグは、文字通り同じタググループに属するコマンドにだけ作用するが、バリアコマンドは全てのタググループに作用する。けれども、バリアフラグとバリアコマンドは、先後に発行されたコマンドの両方に影響するという点で類似する特徴を持っている。ただし、2つのコマンドの影響範囲は異なる。
改良型DMAコントローラ110を持つシステム100を動作させるために、一連の必要な接続がなされる。PU130は、図示しない第1通信チャネルを介してメモリユニット132に接続される。また、PU130は、第2通信チャネル101を介して、DMAコマンドキュー140と接続される。メモリユニット132は、第3通信チャネル112を介してメモリと接続される。メモリ120は、第4通信チャネル102を介して出力データバッファ170と接続される。メモリ120は、また、第5通信チャネル103を介して入力データバッファ180と接続される。DMAコマンドキュー140は、第6通信チャネル104と第7通信チャネル105を介して展開/変換論理回路160と接続される。第6通信チャネル104は、コマンドを転送し、第7通信チャネル105は埋め込みフラグを転送する。タグキュー150は、第8通信チャネル106を介して展開/変換論理回路160と接続される。出力データバッファ170は、第9通信チャネル107を介してMP干渉バス190と接続される。入力データバッファ180は、第10通信チャネル108を介してMP干渉バス190と接続される。展開/変換論理回路160は、第11通信チャネル109を介してMP干渉バス190と接続される。
図2における参照符号「200」は、MPシステムを示す。MPシステムは、共有メモリ210、ローカルメモリ212、第1PU220、第1レベル2(L2)キャッシュ222、第1DMAコントローラ224、第2DMAコントローラ226、第2PU228、第2L2キャッシュ230を含む。第1L2キャッシュ222と第2L2キャッシュ230は既知のキャッシュであり、それぞれのプロセッサのための外部メモリインタフェースとして機能する。
MPシステム200においては、複数のプロセッサが独立に、あるいは、協働して、さまざまなメモリデバイスを対象としてデータの読み書きを実行できる。第1PU220は、さまざまなタイプのコマンド、たとえば、読み出しコマンドや書き込みコマンドなどを第1DMAコントローラ224に対して発行する。第2PU228も、読み出しコマンドや書き込みコマンドなどのさまざまなタイプのコマンドを第2DMAコントローラ226に発行可能である。第1DMAコントローラ224や第2DMAコントローラ226は、ローカルメモリ212と共有メモリ210のどちらに対してもデータの読み書きが可能である。図2に示すように、DMAコントローラごとに、複数のPUあるいは単一のPUが設置されてもよい。逆に、図2に示すように、複数のDMAコントローラ、あるいは、単一のDMAコントローラが設置されてもよい。また、図2に示すように、単一または複数のPUが設置されてもよい。
MPシステム200を動作させるために、一連の必要な接続がなされる。第1PU220は、図示しない第12通信チャネルを介して第1L2キャッシュ222と双方向接続される。第1PU220は、第13通信チャネル242を介して第1DMAコントローラ224と接続される。第1L2キャッシュ222は、第14通信チャネル240を介して共有メモリ210と接続される。第1DMAコントローラ224は、第15通信チャネル244を介して共有メモリ210と接続される。第1DMAコントローラ224は、また、第16通信チャネル248を介してローカルメモリ212と接続される。第2PU228は、図示しない第17通信チャネルを介して第2L2キャッシュ230と双方向接続される。第2L2キャッシュ230は、第18通信チャネル254を介してローカルメモリ212と接続される。第2PU228は、また、第19通信チャネル252を介して第2DMAコントローラ226と接続される。第2DMAコントローラ226は、第20通信チャネル250を介してローカルメモリ212と接続される。第2DMAコントローラ226は、また、第21通信チャネル246を介して共有メモリ210と接続される。
図3、4、5は、埋め込みフェンス、埋め込みバリアおよびバリアコマンドの動作をそれぞれ示すフローチャートである。これらのフローチャートは、単一の埋め込みフラグや単一のバリアコマンドだけが存在するとして単純化されているが、複数のフラグおよび/あるいは複数のコマンドは組み合わせ可能である。
図3の参照符号「300」は、通常、改良型DMAコントローラとフェンスフラグの動作のフローチャートを示す。なお、図3は、他の種類のフラグを利用しない場合を示す。
ステップ302と304においては、コマンドが発行され、フェンスフラグが埋め込まれる。図1のPU130は、ステップ302においてコマンドを発行する。コマンドは、読み出しコマンドや書き込みコマンドのようにさまざまなタイプのコマンドであってもよい。コマンドには、ステップ304においてフェンスフラグが埋め込まれる。フェンスフラグのコマンドへの埋め込みは、図1のPU130により、アプリケーションおよび/またはコンパイラを利用して実行される。フェンスフラグを埋め込む理由は、さまざまである。たとえば、フェンスフラグは、同じタグが付与されたコマンドのうち、以前に発行されたコマンドの全ての後に、そのコマンドを実行するために埋め込まれる。このフェンスフラグは、読み出しコマンドのように、さまざまなコマンドに埋め込み可能である。なお、フェンスフラグは、同じタググループに属するコマンドにのみ影響する。加えて、図1のPU130は、ステップ302における発行時に、コマンドにタグを割り当てる。
ステップ306と308においては、コマンドは転送され、タググループと関連付けられる。ステップ306において、図1のPU130は、一時的な保持のために、発行され、埋め込みがなされたコマンドをDMAコマンドキュー140に転送する。受信されると、ステップ308において、コマンドは、割り当てられたタグに基づいて特定のタググループと関連付けられる。
ステップ310、311および314においては、DMAコマンドキュー140から次の実行予定コマンドが検索される。ステップ310において、DMAコマンドキュー140から有効な次コマンドが探される。通常、コマンドは、コマンドキューにおける他のコマンドと比べた古さに応じて選択される。たとえば、コマンドキューの中で最も古いコマンドが選択される。次のコマンドが選択されると、ステップ311においてそのコマンドにフェンスフラグが埋め込まれているか判定される。もし、コマンドがフェンスフラグを埋め込まれていなければ、ステップ314においてコマンドが実行可能となる。しかし、もし、フェンスフラグが埋め込まれていれば、別処理に移行する。
ステップ311において、コマンドにフェンスフラグが埋め込まれていると判定されると、ステップ312において、そのコマンドの実行に必要な条件が検査される。フェンスフラグは、フェンスフラグ付きコマンドの前に発行されたコマンドのうち、同じタググループに属するコマンドの全てが、フェンスフラグ付きコマンドが実行される前に完了していることを実行条件とする。もしも実行条件が満たされていなければ、そのコマンドはDMAコマンドキューにとどまり、ステップ310とステップ311は、実行可能なコマンドを見つけるためにくり返される。コマンド実行条件を満たされるまで、そのコマンドはDMAコマンドキュー140に残る。したがって、ステップ310において、次に実行されるべきコマンドは、フェンスフラグ付きコマンドの発行の前に発行されたコマンドのうち、同じタグを持つコマンドとなる。次に予定されるコマンドが、フェンスフラグ付きコマンドの発行後に発行されたコマンドであるならば、図1のDMAコントローラ110は、タグにかかわらずその後続のコマンドを実行できる。しかし、図1のDMAコントローラ110は、事前発行されたコマンドをコマンドキューから探し続ける必要がある。もし、同じタググループに関して、事前に発行されたコマンドが存在しなければ、埋め込みフェンスについての実行条件は満たされ、フェンスフラグ付きコマンドは実行可能となる。ただし、フェンスフラグ付きコマンドは、それよりも前に発行され、未完了のコマンドが無くなるまで実行できない。
ステップ310からステップ314までの処理は、ステップ302からステップ308までの処理と並行して実行される。図1のPU130がコマンドを発行するときにも、ステップ302からステップ314の処理は繰り返される。ステップ310からステップ314までの処理は、DMAコマンドキュー140にコマンドが無くなるまで継続して実行される。
図4の参照符号「400」は、改良型DMAコントローラとバリアフラグの動作のフローチャートを示す。なお、図4は、他の種類のフラグを利用しない場合を示す。
ステップ402と404において、コマンドが発行され、バリアフラグが埋め込まれる。図1のPU130は、ステップ402においてコマンドを発行する。コマンドは、読み出しコマンドや書き込みコマンドのように、さまざまなタイプのコマンドであってよい。ステップ404において、コマンドにはバリアフラグが埋め込まれる。コマンドへのバリアフラグの埋め込みは、アプリケーションおよび/またはコンパイラを使って、図1のPU130により実行される。バリアフラグを埋め込む理由はさまざまである。たとえば、バリアフラグは、タグが同じで、かつ、以前に発行された全てのコマンドの後に、同じタググループに属する全ての後続コマンドと当該コマンドを実行するために埋め込まれる。バリアフラグは、読み出しコマンドのように、さまざまなコマンドに埋め込まれ得る。また、バリアフラグは、同じタググループに属するコマンドにしか影響しない。加えて、図1のPU130は、ステップ402における発行時に、コマンドにタグを割り当てる。
ステップ406と408において、コマンドは転送され、タググループと関連づけられる。ステップ406において、一時的に保持のために、図1のPU130は、発行され、埋め込まれたコマンドをDMAコマンドキュー140に転送する。受信されると、コマンドは、ステップ408において割り当てられたタグに基づいて、特定のタググループと関連づけられる。
ステップ410、411および414において、DMAコマンドキュー140から次に実行予定のコマンドが検索される。ステップ410において、DMAコマンドキュー140から、有効な次コマンドが探される。通常、コマンドは、コマンドキューにおける他のコマンドと比べた古さに応じて選択される。たとえば、コマンドキューの中で最も古いコマンドが選択される。次コマンドが選択されると、ステップ411においてそのコマンドにバリアフラグが埋め込まれているか判定される。もし、コマンドにバリアフラグが埋め込まれていなければ、コマンドは実行可能となる。しかし、もし、バリアフラグが埋め込まれていれば、別処理に移行する。
ステップ411において、コマンドにバリアフラグが埋め込まれていると判定されると、ステップ412において、コマンドの実行条件が検査される。バリアフラグは、バリアフラグ付きコマンドの前に発行されたコマンドのうち、同じタググループに属するコマンドの全てが、バリアフラグ付きコマンドの後に発行されたコマンドの実行前に完了することを要請する。もし、コマンドの実行条件が満たされなければ、コマンドはDMAコマンドキュー140に残り、ステップ410とステップ411は、実行可能なコマンドを探すために繰り返される。コマンドの実行条件がみたされるまで、コマンドはDMAコマンドキュー140に留まる。したがって、ステップ410において、次に実行すべきコマンドは、バリアフラグ付きコマンドの発行前に発行されたコマンドのうち、同じタグを持つコマンドであるべきである。もし、次に予定されるコマンドが同じタググループに属し、バリアフラグ付きコマンドの発行後に発行され、バリアフラグの要件が満たされていないときには、ステップ412のチェックはフェイルし、図1のDMAコントローラ110は、後続のコマンドを実行できない。図1のDMAコントローラ110は、以前に発行されたコマンドをコマンドキューから探し続ける。同じタググループについて、事前発行のコマンドが存在しなければ、埋め込みバリアフラグについての条件が成立し、バリアフラグ付きコマンド、および、同じタググループに属し、事後発行された全てのコマンドが実行可能となる。同じタググループ内に次の実行予定コマンドが存在しなければ、図1のDMAコントローラ110は、コマンドを実行できる。
ステップ410からステップ414の処理は、ステップ402からステップ408の処理と並行して実行される。ステップ402からステップ408の処理は、図1のPU130によるコマンド発行時に繰り返される。ステップ410からステップ414の処理は、DMAコマンドキュー140にコマンドが無くなるまで継続実行される。
図5の参照符号「500」は、改良型DMAコントローラ110とバリアコマンドの動作を示すフローチャートである。なお、図5は、他の種類のフラグを利用しない場合を示す。
ステップ502とステップ504においては、バリアコマンドが発行され、図1のDMAコマンドキュー140に転送される。図1のPU130は、ステップ502においてバリアコマンドを発行する。バリアは、以後に発行される全てのコマンドに対して依存性を設定する。この依存性により、バリアコマンドの前に発行されたすべてのコマンドが完了する必要が生じる。本質的には、バリアコマンドは、タググループに関わりなく、事前発行された全てのコマンドの実行が完了するまで、事後発行されたコマンドの実行を抑止する。バリアコマンドを利用する理由はさまざまである。たとえば、バリアコマンドは、事前発行された全てのコマンドの後に、当該コマンドとその全ての後続コマンドを実行するために利用される。ステップ504においては、図1のPU130は、発行されたバリアコマンドを一時保持のためにDMAコマンドキュー140に転送する。
ステップ506、508および510においては、DMAコマンドキュー140から次の実行予定コマンドが検索される。ステップ510においては、DMAコマンドキュー140からは次に有効なコマンドが検出される。通常、コマンドは、コマンドキューにおける他のコマンドと比べた古さに基づいて選択される。たとえば、コマンドキューの中で最も古いコマンドが選択される。ステップ508においては、コマンドの実行条件が検査される。バリアコマンドは、タググループに関わりなく、バリアコマンド以後に発行されたコマンドを実行する前には、バリアコマンド以前に発行された全てのコマンドが完了することを要求する。コマンドの実行条件が満たされていないならば、コマンドはDMAコマンドキュー140に留まり、ステップ506とステップ508は、実行可能なコマンドを探すために繰り返される。コマンドは、コマンド実行条件が満たされるまでDMAコマンドキュー140に留まる。したがって、ステップ506において、次に実行されるべきコマンドは、バリアコマンドの発行前に発行されたコマンドである。もし、つぎに実行予定のコマンドが、バリアコマンドの発行後に発行され、バリアコマンドについての条件が満たされないならば、ステップ508のチェックは失敗し、図1のDMAコントローラ110は、バリアコマンドを実行完了させたり、後続コマンドを実行させることはできない。図1のDMAコントローラ110は、以前に発行されたコマンドをコマンドキューから探し続ける。以前のコマンドがなければ、バリアコマンドとそれに続いて発行された全てのコマンドについての依存性に関する要件が満たされる。バリアコマンドによって生成された依存関係が解決されると、バリアコマンドの発行後に発行されたすべてのコマンドを実行可能となる。
ステップ506と510は、ステップ502と504と並行して実行される。ステップ502と504は、図1のPU130がバリアコマンドを発行するときに、繰り返される。ステップ506からステップ510は、DMAコマンドキュー140にコマンドが無くなるまで継続的に実行される。
さまざまな変形や変更が、上記した本発明の実施例においても本発明の思想範囲から逸脱しない程度に可能であることは明らかなところである。それゆえ、これらの記述は、発明の例証を目的としたものであり、限定的な意味に解釈してはならない。本発明の範囲は、あくまでも、請求項の文言によってのみ解釈されるべきである。
改良型DMAコントローラをもつシステムの機能ブロック図である。 マルチプロセッサ(MP)システムの機能ブロック図である。 改良型DMAコントローラシステムにおいてフェンスフラグの動作を示すフローチャートである。 改良型DMAコントローラシステムにおいてバリアフラグの動作を示すフローチャートである。 改良型DMAコントローラシステムにおいてバリアコマンドの動作を示すフローチャートである。

Claims (19)

  1. コマンドを発行する機能と
    割り当てタグ番号に関連するコマンドにフラグを埋め込む機能と、を備える少なくとも1のプロセッサと、
    複数の通信チャネルのうちの少なくとも第1の通信チャネルを介して、前記1のプロセッサにより複数のコマンドを入力される複数の通信ポートと、
    前記複数のコマンドのそれぞれに対してタグ番号を割り当て、複数のタグ付きコマンドを生成するタグキューと、
    前記複数のタグ付きのコマンドを格納し、それらのコマンドをソート可能なコマンドキューと、
    を含むことを特徴とするメモリアクセス制御装置。
  2. 前記コマンドキューから少なくとも1のタグ付きコマンドを、少なくとも第2の通信チャネルに転送する中間論理回路、を更に備えることを特徴とする請求項1に記載のメモリアクセス制御装置。
  3. 少なくとも、メモリと接続されるように形成された複数のデータバッファ、を更に備えることを特徴とする請求項2に記載のメモリアクセス制御装置。
  4. 前記複数のデータバッファは前記第2の通信チャネルに接続されるように形成されたことを特徴とする請求項3に記載のメモリアクセス制御装置。
  5. 前記タグ番号は、タググループとしてタグ番号の集合を形成可能であることを特徴とする請求項1に記載のメモリアクセス制御装置。
  6. 少なくとも1のフラグは、第1のフラグと第2のフラグを含むことを特徴とする請求項5に記載のメモリアクセス制御装置。
  7. 前記第1のフラグは、フェンスフラグを含み、
    第1のタググループにおいて、少なくともフェンスフラグ付きの1のコマンドは、少なくとも前記フェンスフラグ付きの1のコマンドよりも前に発行された全てのコマンドが実行されるまで、実行を抑止されることを特徴とする請求項6に記載のメモリアクセス制御装置。
  8. 前記第2のフラグは、バリアフラグを含み、
    第1のタググループにおいて、バリアフラグ付きの1のコマンドの後に発行された後続コマンドの実行を抑止することを特徴とする請求項6に記載のメモリアクセス制御装置。
  9. 前記プロセッサは、バリアコマンドを発行する機能を更に備え、
    バリアコマンドは、タググループに関わらず、バリアコマンドの後に発行された後続コマンドの実行を抑止することを特徴とする請求項1に記載のメモリアクセス制御装置。
  10. プロセッサから、メモリ操作を実行する制御モジュールに対して送出された第1のコマンドを受信するステップと、
    埋め込みフラグを生成するために、前記第1のコマンドにフラグを埋め込むステップと、
    前記第1のコマンドにタグ番号を付与するステップと、
    前記第1のコマンドをコマンドリストの待ち行列に投入するステップと、
    少なくとも前記制御モジュールに対するエントリー順と、少なくとも埋め込まれたフラグに基づいて、前記コマンドリストにおけるコマンドの順序を設定するステップと、
    前記設定された順序にしたがって、前記コマンドリストにおけるコマンドを実行するステップと、
    を備えることを特徴とするメモリアクセス制御方法。
  11. 同じタグ番号のコマンドをタググループとして関連づけるステップ、を更に含むことを特徴とする請求項10に記載のメモリアクセス制御方法。
  12. 前記フラグは、フェンスフラグを含み、
    第1のタググループにおいて、少なくともフェンスフラグ付きの1のコマンドは、少なくとも前記フェンスフラグ付きの1のコマンドよりも前に発行された全てのコマンドが実行されるまで、実行を抑止されることを特徴とする請求項11に記載のメモリアクセス制御方法。
  13. 前記フラグは、バリアフラグを含み、
    第1のタググループにおいて、バリアフラグ付きの1のコマンドの後に発行された後続コマンドの実行を抑止することを特徴とする請求項10に記載のメモリアクセス制御方法。
  14. プロセッサから、メモリ操作を実行する制御モジュールに対して送出された第1のコマンドを受信するステップと、
    前記第1のコマンドにタグ番号を付与するステップと、
    前記第1のコマンドをコマンドリストの待ち行列に投入するステップと、
    タググループに関わりなく、バリアコマンドの後に発行された後続コマンドの実行を抑止するために、バリアコマンドを発行するステップと、
    前記コマンドリストにおけるコマンドの順序を設定するステップと、
    前記設定された順序にしたがって、前記コマンドリストにおけるコマンドを実行するステップと、
    を備えることを特徴とするメモリアクセス制御方法。
  15. コンピュータプログラム自体が格納される媒体をもつコンピュータプログラム製品であって、
    プロセッサから、メモリ操作を実行する制御モジュールに対して送出された第1のコマンドを受信するコンピュータプログラムコードと、
    埋め込みフラグを生成するために、前記第1のコマンドにフラグを埋め込むコンピュータプログラムコードと、
    前記第1のコマンドにタグ番号を付与するコンピュータプログラムコードと、
    前記第1のコマンドをコマンドリストの待ち行列に投入するコンピュータプログラムコードと、
    前記制御モジュールに対するエントリー順と、埋め込まれたフラグに基づいて、前記コマンドリストにおけるコマンドの順序を設定するコンピュータプログラムコードと、
    前記設定された順序にしたがって、前記コマンドリストにおけるコマンドを実行するコンピュータプログラムコードと、
    を備えるメモリアクセス制御プログラム。
  16. 同じタグ番号のコマンドをタググループとして関連づけるコンピュータプログラムコード、を更に含むことを特徴とする請求項15に記載のメモリアクセス制御プログラム。
  17. 前記フラグは、フェンスフラグを含み、
    第1のタググループにおいて、少なくともフェンスフラグ付きの1のコマンドは、少なくとも前記フェンスフラグ付きの1のコマンドよりも前に発行された全てのコマンドが実行されるまで、実行を抑止されることを特徴とする請求項16に記載のメモリアクセス制御プログラム。
  18. 前記フラグは、バリアフラグを含み、
    第1のタググループにおいて、少なくとも1のバリアフラグ付きコマンドの後に発行された後続のコマンドの実行を抑止することを特徴とする請求項15に記載のメモリアクセス制御プログラム。
  19. コンピュータプログラム自体が格納される媒体をもつコンピュータプログラム製品であって、
    プロセッサから、メモリ操作を実行する制御モジュールに対して送出された第1のコマンドを受信するコンピュータプログラムコードと、
    前記第1のコマンドにタグ番号を付与するコンピュータプログラムコードと、
    前記第1のコマンドをコマンドリストの待ち行列に投入するコンピュータプログラムコードと、
    タググループに関わりなく、バリアコマンドの後に発行された後続のコマンドの実行を抑止するために、バリアコマンドを発行するコンピュータプログラムコードと、
    前記コマンドリストにおけるコマンドの順序を設定するコンピュータプログラムコードと、
    前記設定された順序にしたがって、前記コマンドリストにおけるコマンドを実行するコンピュータプログラムコードと、
    を備えることを特徴とするメモリアクセス制御プログラム。
JP2007504514A 2004-07-15 2005-07-06 アウト・オブ・オーダーのdmaコマンドキューにおけるコマンド順序の設定に関する技術 Active JP4553936B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/891,772 US7243200B2 (en) 2004-07-15 2004-07-15 Establishing command order in an out of order DMA command queue
PCT/IB2005/003169 WO2006006084A2 (en) 2004-07-15 2005-07-06 Establishing command order in an out of order dma command queue

Publications (2)

Publication Number Publication Date
JP2007529833A true JP2007529833A (ja) 2007-10-25
JP4553936B2 JP4553936B2 (ja) 2010-09-29

Family

ID=35478627

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007504514A Active JP4553936B2 (ja) 2004-07-15 2005-07-06 アウト・オブ・オーダーのdmaコマンドキューにおけるコマンド順序の設定に関する技術

Country Status (9)

Country Link
US (1) US7243200B2 (ja)
EP (1) EP1711899B1 (ja)
JP (1) JP4553936B2 (ja)
KR (1) KR100827510B1 (ja)
CN (1) CN100504827C (ja)
AT (1) ATE407403T1 (ja)
DE (1) DE602005009494D1 (ja)
TW (1) TWI294573B (ja)
WO (1) WO2006006084A2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013073425A (ja) * 2011-09-28 2013-04-22 Kyocera Document Solutions Inc 情報処理装置及び情報処理方法
JP2013242766A (ja) * 2012-05-22 2013-12-05 Denso Corp リクエスト処理装置
JP2016535337A (ja) * 2013-11-05 2016-11-10 オラクル・インターナショナル・コーポレイション ネットワーク環境における効率的なパケット処理モデルおよびパケット処理のための最適化されたバッファ利用をサポートするためのシステムおよび方法
JP2017504870A (ja) * 2013-12-02 2017-02-09 マイクロン テクノロジー, インク. 自律的メモリの方法及びシステム
US10769097B2 (en) 2009-09-11 2020-09-08 Micron Technologies, Inc. Autonomous memory architecture

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060090015A1 (en) * 2004-10-26 2006-04-27 Bradfield Travis A Pipelined circuit for tag availability with multi-threaded direct memory access (DMA) activity
US20060129764A1 (en) * 2004-12-09 2006-06-15 International Business Machines Corporation Methods and apparatus for storing a command
US7774512B2 (en) * 2005-02-08 2010-08-10 Sony Computer Entertainment Inc. Methods and apparatus for hybrid DMA queue and DMA table
US7596670B2 (en) * 2005-11-30 2009-09-29 International Business Machines Corporation Restricting access to improve data availability
GB2433333B (en) * 2005-12-13 2011-07-13 Advanced Risc Mach Ltd Distributed direct memory access provision within a data processing system
US8285923B2 (en) * 2008-12-08 2012-10-09 Western Digital Technologies, Inc. Disk drive and method using native command queuing tags to identify logical block size and implement protection information
US8627017B2 (en) * 2008-12-30 2014-01-07 Intel Corporation Read and write monitoring attributes in transactional memory (TM) systems
GB2469299B (en) * 2009-04-07 2011-02-16 Imagination Tech Ltd Ensuring consistency between a data cache and a main memory
US8316219B2 (en) 2009-08-31 2012-11-20 International Business Machines Corporation Synchronizing commands and dependencies in an asynchronous command queue
US8631284B2 (en) * 2010-04-30 2014-01-14 Western Digital Technologies, Inc. Method for providing asynchronous event notification in systems
US8762682B1 (en) 2010-07-02 2014-06-24 Western Digital Technologies, Inc. Data storage apparatus providing host full duplex operations using half duplex storage devices
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US9348775B2 (en) 2012-03-16 2016-05-24 Analog Devices, Inc. Out-of-order execution of bus transactions
US9288257B2 (en) 2013-05-01 2016-03-15 International Business Machines Corporation Managing file transfer commands
US9779138B2 (en) 2013-08-13 2017-10-03 Micron Technology, Inc. Methods and systems for autonomous memory searching
US10489158B2 (en) 2014-09-26 2019-11-26 Intel Corporation Processors, methods, systems, and instructions to selectively fence only persistent storage of given data relative to subsequent stores
US20160092118A1 (en) * 2014-09-26 2016-03-31 Intel Corporation Memory write management in a computer system
US20160092123A1 (en) * 2014-09-26 2016-03-31 Pankaj Kumar Memory write management in a computer system
US9715464B2 (en) * 2015-03-27 2017-07-25 Microsoft Technology Licensing, Llc Direct memory access descriptor processing
US9584378B1 (en) 2015-12-22 2017-02-28 International Business Machines Corporation Computer-implemented command control in information technology service environment
US10534540B2 (en) * 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
US10223307B2 (en) 2017-06-15 2019-03-05 International Business Machines Corporation Management of data transaction from I/O devices
KR102262209B1 (ko) * 2018-02-09 2021-06-09 한양대학교 산학협력단 더미 입출력 요청을 이용한 배리어 명령 전달 방법 및 그 장치
EP4081898A1 (en) * 2020-01-17 2022-11-02 Huawei Technologies Co., Ltd. A system and method for optimizing time overhead in multi-core synchronization
CN111522511B (zh) * 2020-04-22 2022-04-22 杭州宏杉科技股份有限公司 命令处理方法及装置
US11579801B2 (en) * 2020-06-09 2023-02-14 Samsung Electronics Co., Ltd. Write ordering in SSDs
WO2023235003A1 (en) * 2022-06-02 2023-12-07 Micron Technology, Inc. Command fencing for memory-based communication queues

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05120242A (ja) * 1991-10-30 1993-05-18 Toshiba Corp データ処理装置
JPH06508708A (ja) * 1992-04-24 1994-09-29 ヒューレット・パッカード・カンパニー ディスク記憶システム
JPH0883356A (ja) * 1994-09-13 1996-03-26 Ricoh Co Ltd 三次元形状生成方法及びその装置
JPH10105347A (ja) * 1996-10-02 1998-04-24 Hitachi Ltd ディスクアレイ制御システム
JPH11149443A (ja) * 1997-06-30 1999-06-02 Sun Microsyst Inc パーソナル・コンピュータとコンピュータ・ワークステーションとを相互接続するシステム
JP2000040057A (ja) * 1998-07-23 2000-02-08 Nec Eng Ltd 計算機システム、バッファ制御装置及び転送方法
JP2002049517A (ja) * 2000-05-25 2002-02-15 Hitachi Ltd 記憶システム
JP2002510079A (ja) * 1998-01-23 2002-04-02 サン・マイクロシステムズ・インコーポレーテッド メモリ・インタフェース間で読み書きの順序付けられた実行を強制する方法と装置
JP2002140234A (ja) * 2000-11-02 2002-05-17 Hitachi Ltd キャッシュ装置
JP2002183229A (ja) * 2001-12-03 2002-06-28 Ricoh Co Ltd 三次元形状生成装置
JP2002196975A (ja) * 1999-07-12 2002-07-12 Matsushita Electric Ind Co Ltd データ処理装置
JP2002324058A (ja) * 2001-03-23 2002-11-08 Internatl Business Mach Corp <Ibm> パイプライン処理内の実行を順序付ける命令
JP2003519833A (ja) * 2000-01-03 2003-06-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 依存性連鎖の発行および再発行が可能なスケジューラ
JP2004506981A (ja) * 2000-08-15 2004-03-04 エス・アール・シィ・コンピューターズ・インコーポレイテッド マルチプロセッサにおけるセマフォおよびアトミック動作の管理のためのシステムおよび方法
JP2004129129A (ja) * 2002-10-07 2004-04-22 Seiko Epson Corp 通信制御回路、通信制御装置、マイクロコンピュータ及び電子機器

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4739472A (en) * 1984-12-07 1988-04-19 Nec Corporation Information processing device capable of rapidly processing instructions of different groups
US6088772A (en) * 1997-06-13 2000-07-11 Intel Corporation Method and apparatus for improving system performance when reordering commands
US6047334A (en) * 1997-06-17 2000-04-04 Intel Corporation System for delaying dequeue of commands received prior to fence command until commands received before fence command are ordered for execution in a fixed sequence
US6205494B1 (en) * 1998-12-18 2001-03-20 Western Digital Corporation Controller with automatic generation of linked list of data transfer descriptors for sequential commands, with linked list being used for execution of sequential data transfers
US6513109B1 (en) * 1999-08-31 2003-01-28 International Business Machines Corporation Method and apparatus for implementing execution predicates in a computer processing system
US6694427B1 (en) * 2000-04-20 2004-02-17 International Business Machines Corporation Method system and apparatus for instruction tracing with out of order processors
US6609192B1 (en) * 2000-06-06 2003-08-19 International Business Machines Corporation System and method for asynchronously overlapping storage barrier operations with old and new storage operations
US7421694B2 (en) * 2003-02-18 2008-09-02 Microsoft Corporation Systems and methods for enhancing performance of a coprocessor
US7073043B2 (en) * 2003-04-28 2006-07-04 International Business Machines Corporation Multiprocessor system supporting multiple outstanding TLBI operations per partition
US7200688B2 (en) * 2003-05-29 2007-04-03 International Business Machines Corporation System and method asynchronous DMA command completion notification by accessing register via attached processing unit to determine progress of DMA command
US7480754B2 (en) * 2003-06-27 2009-01-20 Seagate Technology, Llc Assignment of queue execution modes using tag values
US7203811B2 (en) * 2003-07-31 2007-04-10 International Business Machines Corporation Non-fenced list DMA command mechanism
US7725618B2 (en) 2004-07-29 2010-05-25 International Business Machines Corporation Memory barriers primitives in an asymmetric heterogeneous multiprocessor environment

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05120242A (ja) * 1991-10-30 1993-05-18 Toshiba Corp データ処理装置
JPH06508708A (ja) * 1992-04-24 1994-09-29 ヒューレット・パッカード・カンパニー ディスク記憶システム
JPH0883356A (ja) * 1994-09-13 1996-03-26 Ricoh Co Ltd 三次元形状生成方法及びその装置
JPH10105347A (ja) * 1996-10-02 1998-04-24 Hitachi Ltd ディスクアレイ制御システム
JPH11149443A (ja) * 1997-06-30 1999-06-02 Sun Microsyst Inc パーソナル・コンピュータとコンピュータ・ワークステーションとを相互接続するシステム
JP2002510079A (ja) * 1998-01-23 2002-04-02 サン・マイクロシステムズ・インコーポレーテッド メモリ・インタフェース間で読み書きの順序付けられた実行を強制する方法と装置
JP2000040057A (ja) * 1998-07-23 2000-02-08 Nec Eng Ltd 計算機システム、バッファ制御装置及び転送方法
JP2002196975A (ja) * 1999-07-12 2002-07-12 Matsushita Electric Ind Co Ltd データ処理装置
JP2003519833A (ja) * 2000-01-03 2003-06-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 依存性連鎖の発行および再発行が可能なスケジューラ
JP2002049517A (ja) * 2000-05-25 2002-02-15 Hitachi Ltd 記憶システム
JP2004506981A (ja) * 2000-08-15 2004-03-04 エス・アール・シィ・コンピューターズ・インコーポレイテッド マルチプロセッサにおけるセマフォおよびアトミック動作の管理のためのシステムおよび方法
JP2002140234A (ja) * 2000-11-02 2002-05-17 Hitachi Ltd キャッシュ装置
JP2002324058A (ja) * 2001-03-23 2002-11-08 Internatl Business Mach Corp <Ibm> パイプライン処理内の実行を順序付ける命令
JP2002183229A (ja) * 2001-12-03 2002-06-28 Ricoh Co Ltd 三次元形状生成装置
JP2004129129A (ja) * 2002-10-07 2004-04-22 Seiko Epson Corp 通信制御回路、通信制御装置、マイクロコンピュータ及び電子機器

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10769097B2 (en) 2009-09-11 2020-09-08 Micron Technologies, Inc. Autonomous memory architecture
US11586577B2 (en) 2009-09-11 2023-02-21 Micron Technology, Inc. Autonomous memory architecture
JP2013073425A (ja) * 2011-09-28 2013-04-22 Kyocera Document Solutions Inc 情報処理装置及び情報処理方法
JP2013242766A (ja) * 2012-05-22 2013-12-05 Denso Corp リクエスト処理装置
JP2016535337A (ja) * 2013-11-05 2016-11-10 オラクル・インターナショナル・コーポレイション ネットワーク環境における効率的なパケット処理モデルおよびパケット処理のための最適化されたバッファ利用をサポートするためのシステムおよび方法
JP2017504870A (ja) * 2013-12-02 2017-02-09 マイクロン テクノロジー, インク. 自律的メモリの方法及びシステム
US10003675B2 (en) 2013-12-02 2018-06-19 Micron Technology, Inc. Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data
JP2018139118A (ja) * 2013-12-02 2018-09-06 マイクロン テクノロジー, インク. 自律的メモリの方法及びシステム
US10778815B2 (en) 2013-12-02 2020-09-15 Micron Technology, Inc. Methods and systems for parsing and executing instructions to retrieve data using autonomous memory

Also Published As

Publication number Publication date
WO2006006084A3 (en) 2006-07-20
US7243200B2 (en) 2007-07-10
KR20060132856A (ko) 2006-12-22
ATE407403T1 (de) 2008-09-15
EP1711899B1 (en) 2008-09-03
DE602005009494D1 (de) 2008-10-16
KR100827510B1 (ko) 2008-05-06
CN100504827C (zh) 2009-06-24
US20060015652A1 (en) 2006-01-19
EP1711899A2 (en) 2006-10-18
JP4553936B2 (ja) 2010-09-29
TWI294573B (en) 2008-03-11
WO2006006084A2 (en) 2006-01-19
CN101031897A (zh) 2007-09-05
TW200617680A (en) 2006-06-01
WO2006006084A8 (en) 2006-04-20

Similar Documents

Publication Publication Date Title
JP4553936B2 (ja) アウト・オブ・オーダーのdmaコマンドキューにおけるコマンド順序の設定に関する技術
JP4678623B2 (ja) 非対称型異種混合マルチプロセッサ環境(asymmetric heterogeneous multiprocessor environment)におけるメモリバリア要素(Primitive)
CN1294484C (zh) 利用重新调度的重放队列中断处理器中的重放依赖关系循环
US8135942B2 (en) System and method for double-issue instructions using a dependency matrix and a side issue queue
US9830189B2 (en) Multi-threaded queuing system for pattern matching
US20090113181A1 (en) Method and Apparatus for Executing Instructions
US20140129806A1 (en) Load/store picker
KR102524565B1 (ko) 로드 스토어 유닛들을 바이패싱하여 스토어 및 로드 추적
US8239661B2 (en) System and method for double-issue instructions using a dependency matrix
CN107851017B (zh) 用于传输多个数据结构的设备和方法
Baugh et al. Decomposing the load-store queue by function for power reduction and scalability
CN114168271B (zh) 一种任务调度方法、电子设备及存储介质
US20110153987A1 (en) Reverse simultaneous multi-threading
US20140310500A1 (en) Page cross misalign buffer
JP2002287957A (ja) キャッシュのような構造を使用してcpu設計におけるオペランド・アクセス・ステージを高速化するための方法及び装置
JP2022549493A (ja) リタイアキューの圧縮
US20230077629A1 (en) Assignment of microprocessor register tags at issue time
KR20140131781A (ko) 메모리 제어 장치 및 방법
US7900023B2 (en) Technique to enable store forwarding during long latency instruction execution
US7721145B2 (en) System, apparatus and computer program product for performing functional validation testing
US20080282050A1 (en) Methods and arrangements for controlling memory operations
KR20190031498A (ko) 어드레스 생성 시간에서 로드 및 스토어 큐 할당 시스템 및 방법
US20080282051A1 (en) Methods and arrangements for controlling results of memory retrival requests
KR102170966B1 (ko) 고성능 비순차 실행 코어의 리오더 버퍼 관리 장치 및 방법
US20220075624A1 (en) Alternate path for branch prediction redirect

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091120

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100517

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100607

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

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

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

Free format text: PAYMENT UNTIL: 20130723

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4553936

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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