JP2008508586A - 非対称型異種混合マルチプロセッサ環境(asymmetricheterogeneousmultiprocessorenvironment)におけるメモリバリア要素(Primitive) - Google Patents

非対称型異種混合マルチプロセッサ環境(asymmetricheterogeneousmultiprocessorenvironment)におけるメモリバリア要素(Primitive) Download PDF

Info

Publication number
JP2008508586A
JP2008508586A JP2007523179A JP2007523179A JP2008508586A JP 2008508586 A JP2008508586 A JP 2008508586A JP 2007523179 A JP2007523179 A JP 2007523179A JP 2007523179 A JP2007523179 A JP 2007523179A JP 2008508586 A JP2008508586 A JP 2008508586A
Authority
JP
Japan
Prior art keywords
command
memory
memory barrier
barrier
bus operation
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
JP2007523179A
Other languages
English (en)
Other versions
JP4678623B2 (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 JP2008508586A publication Critical patent/JP2008508586A/ja
Application granted granted Critical
Publication of JP4678623B2 publication Critical patent/JP4678623B2/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Abstract

【解決手段】本発明は、DMAデバイスにおけるメモリバリア生成方法および装置に関する。メモリバリアコマンドとメモリコマンドが受信される。メモリコマンドはメモリバリアコマンドに基づいて実行される。バス操作は、メモリバリアコマンドに基づいて開始される。バス操作承認はバス操作に基づいて受信される。メモリバリアコマンドはバス操作承認に基づいて実行される。特には、メモリバリアコマンドはdmasyncコマンドやdmaeieioコマンドである。
【選択図】図1

Description

本発明は、概しては、DMA(Direct Memory Access)制御に関し、より詳細には、DMAのメカニズムを使って非対称型異種混合マルチプロセッサ環境におけるメモリバリア要素を提供するための技術、に関する。
従来のマルチプロセッサ(MP:Multi Processor)システムにおいては、複数のプロセッサが共有メモリにアクセスする。このようなシステムの処理効率を改善するために、ストレージへのアクセス順序制御に関するストレージ・モデルとして、ウィークリー・コンシステント(弱整合:Weakly Consistent)が採用される。ウィークリー・コンシステントにおいては、プロセッサによるアクセスの実行順序、プロセッサ・バスにおけるこれらのアクセスの実行順序、他のプロセッサや機構(mechanism)についてのアクセスの実行順序、ストレージにおけるこれらのアクセスの実行順序はまったくの別々となる可能性がある。
ウィークリー・コンシステントのストレージ・モデルの場合、2以上のプロセッサや機構の間で共有されるストレージに対するアクセス順序はプログラム側で制御しなければならない。従来の対称型マルチプロセッサ(SMP:Symmetric Multiprocessor)は、ソフトウェアプログラムが共有メモリに対するストレージ・アクセス順序を強制するための手段をいくつか提供している。たとえば、パワーPC(登録商標)は、「SYNC(「重量SYNC」とよばれることもある)」、「軽量SYNC」、「EIEIO(Enforce In-order Execution of I/O:入出力の強制イン・オーダー実行)」といった複数のメモリバリア命令を提供する。SYNC命令は、通常、メモリバリアを生成する。すなわち、あるプロセッサは、プログラム・シークェンスにおいてSYNC命令より前のLOAD命令やSTORE命令をそのプロセッサ以外の全てのプロセッサや機構について完了させた後でなければ、SYNC命令より後の命令を実行してはならない。
軽量SYNCが生成するメモリバリアもSYNC命令と同様の順序付け機能を提供する。ただし、軽量SYNC後の命令によるLOADは、軽量SYNC前の命令によるSTOREよりも先に実行されてもよく、I/Oメモリ(メモリマップドI/O)に対するアクセスについては順序制御が適用されない。EIEIO命令が生成するメモリバリアもSYNC命令と同様の順序づけ機能を提供する。ただし、I/Oメモリに対するアクセスも順序制御される。EIEIOはSTOREも順序づける。
従来のMPシステムにおいては、緊密に結合された(tightly coupled)プロセッサだけがメモリバリア命令を実行するように制約されている。このため、プロセッシング・ユニット(PU)のような制御プロセッサには、異種混合MPシステムにおける非対称型プロセッサやデバイスを管理する上で追加的な負担がかかる。このような制約により、場合によってはストレージに対する順序制御ができなくなり、非対称型プロセッサによるシステムリソース管理権限が制約されてしまう可能性がある。
従来のシステムや方法についての問題点や不都合の少なくともいくつかに対処できるメモリバリア命令を提供するための方法やシステムが必要である。
本発明は、ダイレクト・メモリ・アクセス(DMA)・デバイスにおいてメモリバリアを生成するための方法を提供する。メモリバリアコマンドが受信され、メモリコマンドも受信される。メモリコマンドはメモリバリアコマンドに基づいて実行される。バス操作(bus operation)はメモリバリアコマンドに基づいて開始される。バス操作承認(bus operation acknowledgement)はバス操作に基づいて受信される。メモリバリアコマンドはバス操作承認に基づいて実行される。
本発明とその優位性についてのより完全に理解するために、添付の図面とあわせて以下の記述を参照されたい。
以下の記述における多数の特定的に詳細な記述は、本発明の充分な理解を可能とするためのものである。しかし、当業者であれば、そのような特定的に詳細な記述がなくとも本発明を実現できるであろう。別の例においては、既知の要素についても模式図やブロック図のかたちで、不必要なほど詳細な部分についても本発明を隠すことなく示す。加えて、ほとんどの部分について、ネットワーク通信、電磁的信号技術などに関する詳細は、そのような詳細が本発明の完全な理解のためには不要であり、関連技術について通常のスキルを持つ人物の理解力の範囲内にあると考えられる限りは省略している。
特に断らない限りは、以下に述べられるすべての機能は、ハードウェアやソフトウェア、あるいはそれらの組み合わせによって実現される。しかし、特に断らない限りは、好ましくは、これらの機能は、コンピュータのプロセッサ、すなわち、コンピュータプログラムコードとしてのコードにしたがって電子データを処理するプロセッサ、ソフトウェア、および/あるいは、このような機能を実現するように設計された集積回路によって実行されるとする。
図1の参照符号の「100」は、DMAコントローラを備えるシステムを示す。システム100は、DMAコントローラ110、PU(Processing Unit)130、ローカルメモリ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コマンドキューのコマンドは、ストリクト・オーダー(strict order)の枠組みにおいては、到着順に実行されている。しかし、DMAコントローラ110は、ウィークリー・オーダー(ウィークリー・コンシステント)の枠組みを採用しており、DMAコマンドキュー140のコマンドをさまざまな順序で実行させることが可能である。更に、DMAコントローラ110は、一連の埋め込みフラグを利用する。埋め込まれたフラグは各コマンドの依存性を示し、コマンドの順次実行のために役に立つ。埋め込みフラグは、たとえば、高優先度のコマンドを低優先度のコマンドよりも先に実行させるために使われる。
より詳細には、コマンドには2つのフラグが埋め込まれる。バリアとフェンスである。どちらも同一タグのグループに属するコマンドだけに影響する。通常、埋め込まれたフェンスフラグは、そのフェンスフラグ付きのコマンドよりも前に発行されたコマンドのうち、同じタググループ内の全てのコマンドが完了するまで、コマンドの実行を抑止する。つまり、フェンスフラグは、フェンスフラグ付きのコマンドを実行する前に、フェンスフラグ付きのコマンドの前に発行された同じタググループに属する全てのコマンドが完了することを要求する。フェンスフラグは、キューにある後続のコマンドには影響しない。たとえば、フェンスフラグ付きコマンドの後に発行されたコマンドは、フェンスフラグ付きのコマンドよりも前に実行可能である。
一方、バリアフラグは、同じタググループであれば、先のコマンドにも後のコマンドにも影響する。通常、バリアフラグは、バリアフラグ付きコマンドよりも前に発行され、かつ、同じタググループに属するコマンドが実行される前に、バリアフラグ付きコマンド自体や同じタググループに属する後続コマンドが実行されるのを禁止する。たとえば、同じタググループに属し、かつ、バリアフラグ付きコマンドの後に発行されたコマンドは、バリアフラグ付きコマンドより前に実行できない。通常、バリアフラグ付きコマンドの前に発行されたコマンドのうち、同じタググループに属するコマンドの全てが完了したとき、バリアフラグ付きコマンドと、その同じタググループに属する後続のコマンドが実行可能となる。
PU130は、また、フェンスフラグやバリアフラグを埋め込む代わりに、バリアコマンドを発行することもできる。バリアコマンドは、タグに関わらず、キューにある全てのコマンドを操作する。バリアコマンドは、それ以前に発行されたコマンド全てが完了するまで、それ以後に発行されたコマンドすべての実行を禁止する。バリアコマンド以前に発行された全コマンドは、キューにある後続のコマンドが実行される前に完了することになる。バリアコマンド以前に発行された全コマンドが完了すると、後続のコマンドが実行可能となる。
DMAコントローラ110は、また、メモリバリアコマンドを受信し、実行できる。メモリバリアコマンドは、システム内における2以上のプロセッサやデバイスについて、MP干渉バスにおけるメモリ操作(memory transaction)の順序を制御する。図示の実施例においては、DMAコントローラ110は、ダイレクト・メモリ・アクセス・SYNC(dmasync)コマンドと、ダイレクト・メモリ・アクセス・EIEIO(dmaeieio)コマンドを受信する。DMAコントローラ110は、たとえば、ダイレクト・メモリ・アクセス・軽量SYNC(dmalwsync)コマンドも含め、他のダイレクト・メモリ・アクセス・メモリバリアコマンドも受信できてもよいことは、当業者には理解されるところである。
dmasyncコマンドは、通常、システム内におけるすべてのプロセッサや機構について、先行するDMAコマンドの結果が出ているようにするための仕組みを提供する。dmaeieioコマンドは、通常、システム内におけるすべてのプロセッサや機構について、バス操作の順序を制御するための仕組みを提供する。dmasyncコマンドもバス操作の順序を制御するための仕組みを提供するが、dmaeieioコマンドに比べるとパフォーマンスが落ちることが多い。dmasyncコマンドとdmaeieioコマンドは、コマンドバリアと協働することが多い。図示の実施例におけるdmasyncコマンドやdmaeieioコマンドは、そのタグに特有のバリアを含む。DMAコントローラ110は、その他の形式のダイレクト・メモリ・アクセス・メモリバリアコマンドを受信してもよいことは当業者には理解されるところである。たとえば、フェンスを含むdmasyncコマンドやフェンスを含むdmaeieioコマンドなどが挙げられる。
更に詳細には、dmasyncコマンドは、システム内における別のプロセッサについて以前に発行されたDMAメモリ書き込みが実行されることをソフトウェアの側から保証するための仕組みを提供する。dmasyncコマンドは、強い順序づけ(strong ordering)が必要なときに採用され、既知のパワーPC(登録商標)のSYNC命令がプロセッサのロードやストアのために実行するのと同様にして、DMAアクセスの順序を制御する。特に、順序制御にとっては、DMA・GETコマンド(DMA Get commands)によるアクセスはロード、DMA・PUTコマンド(DMA Put commands)によるアクセスはストアと捉えることができる。以前に発行されたすべてのDMA・PUTコマンド(たとえば、メモリ書き込み)の実行を保証するために、バリアコマンドはdmasyncコマンドに先行する。図示の実施例においては、dmasyncコマンドにはタグが付与され、そのタグに特有のバリアを含む。変形例において、バリアコマンドはdmasyncコマンドに先行する。更に変形例として、フェンスコマンドはdmasyncコマンドに先行する。
dmaeieieoコマンドは、要・ライトスルー(Write-Through)、あるいは、キャッシュ禁止を示す印のついていないコヒーレント(coherent:一貫性の維持される)・ストレージに対するDMAメモリ書き込みの順序をソフトウェアプログラム側で制御するための仕組みを提供する。また、dmaeieioコマンドは、キャッシュ禁止かつガードされているストレージに対するDMAメモリ読み出し・書き込みの順序や、要・ライトスルーを示す印のついているメモリへの保存の順序をソフトウェアプログラム側にて制御するための仕組みを提供する。dmaeieioコマンドは、特定タイプのアクセスだけを順序制御する必要があるときに採用される。dmaeieioコマンドは、既知のパワーPC(登録商標)のEIEIO命令がプロセッサのロードやストアのために実行するのと同様にして、DMAアクセスの順序を制御する。特に、順序制御にとっては、DMA・GETコマンドによるアクセスはロード、DMA・PUTコマンドによるアクセスはストアと捉えることができる。以前に発行されたすべてのDMAコマンドの実行を保証するため、バリアコマンドはdmaeieioコマンドに先行する。図示の実施例においては、dmaeieioコマンドにはタグが付与され、そのタグに特有のバリアを含む。変形例において、バリアコマンドはdmaeieioコマンドに先行する。更に変形例として、フェンスコマンドはdmaeieioコマンドに先行する。
DMAコントローラ110は、展開/変換論理回路160を介して、DMAコマンド(およびその関連パラメータ)が示すDMA操作を、伝送長分いっぱいまで、1つ、またはそれ以上の数のバス操作に分解する。ウィークリー・コンシステントのメモリモデルにおいては、展開/変換論理回路160が生成する小さなバス操作は、MP干渉バス190によってアウト・オブ・オーダー(順不同)に処理されてもよい。システム内における他のプロセッサについても同様である。また、他コマンドから生成される小さなバス操作についても同様である。処理効率を改善するため、DMAコマンドキュー140への投入順序とは異なる順序にてDMAコマンドを実行してもよい。いずれにしても、ソフトウェアからは、DMAコマンドキュー140への投入順序と同じ順序にてDMAコマンドが開始しているようにみえる。
DMAシステム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と接続される。タグキュー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キャッシュ222、第1DMAコントローラ224、第2DMAコントローラ226、第2PU228、第2キャッシュ230を含む。図示の実施例においては、第1キャッシュ222と第2キャッシュ230はシステムキャッシュであり、既知のものであり、各プロセッサのための外部メモリインタフェースとして機能する。
MPシステム200における複数のプロセッサは、独立して、あるいは、協働して、さまざまなメモリデバイスを対象としてデータの読み書きを実行できる。第1PU220は、読み出しコマンドや書き込みコマンド、dmasyncコマンド、dmaeieioコマンドを第1DMAコントローラ224に送出する。第2PU228も、読み出しコマンドや書き込みコマンド、dmasyncコマンド、dmaeieioコマンドを第2DMAコントローラ226に送出する。第1DMAコントローラ224や第2DMAコントローラ226は、ローカルメモリ212と共有メモリ210を対象としたデータの読み出しや書き込みを実行する。図示の実施例においては、一つのDMAコントローラに一つのPUが対応づけられる。
稼働中において、第1DMAコントローラ224は、第1PU220から、共有メモリ210とローカルメモリ212の間でのデータ移動指示コマンドを受信する。同様に、第2DMAコントローラ226は、第2PU228から、共有メモリ210とローカルメモリ212の間でのデータ移動指示コマンドを受信する。DMAコマンドの伝送方向は、常にPU側から参照されるため、共有メモリ210からローカルメモリ212にデータを転送するコマンドはGETコマンドと考えることができるし、ローカルメモリ212から共有メモリ210にデータを転送するコマンドはPUTコマンドと考えられる。DMAコマンドのパラメータは、データ伝送サイズ、タグ、アドレス情報などのデータ転送に関する追加的な情報である。
第1DMAコントローラ224がdmasyncコマンドに出会うと、dmasyncコマンドと同じタグが付与され、かつ、dmasyncコマンドの前にDMAコマンドキューに投入されたコマンドすべてを終了させる。特に、dmasyncコマンドと同じタグを付与されている全PUTコマンドによる書き込みデータはMP干渉バスに伝送され、プロトコルにおいて再送処理が発生する可能性のある地点を通り抜けなければならない。dmasyncコマンドと同じタグを付与されている全GETコマンドによる読み出しデータは、ローカルメモリ212において見えていなければならない。
いったん、dmasyncと同じタグを付与されている先行コマンドがすべて完了すると、DMAコントローラ224は、SYNC(同期)バス操作(SYNC bus transaction)を開始する。SYNCバス操作は、システム内における他のプロセッサや機構に対するバリアポイント(防壁点)として機能する。他のプロセッサや機構は、SYNCバス操作を承認する前に、dmasync発行元プロセッサによる操作をすべての終了させなければならない。システム内におけるプロセッサや機構のすべてがSYNCバス操作を承認すると、DMAコントローラ224だけがdmasyncコマンドを完了させることができる。このように、dmasyncコマンドは、dmasyncと同じタグのDMAコマンドすべての結果を確定させ、システム内のすべてのプロセッサや機構から見えるようにする。第2DMAコントローラ226は、第1DMAコントローラ224と同様の方式にてdmasyncコマンドを処理する。
第1DMAコントローラ224がdmaeieioコマンドに出会うと、dmaeieioコマンドと同じタグが付与され、かつ、dmaeieioコマンドの前にDMAコマンドキューに投入されたコマンドすべてを終了させる。特に、dmaeieioコマンドと同じタグを付与されている全PUTコマンドによる書き込みデータはMP干渉バスに伝送され、プロトコルにおいて再送処理が発生する可能性のある地点を通り抜けなければならない。dmaeieioコマンドと同じタグを付与されている全GETコマンドによる読み出しデータは、ローカルメモリ212において見えていなければならない。
いったん、dmaeieioと同じタグを付与されている先行コマンドがすべて完了すると、DMAコントローラ224は、EIEIOバス操作(Eieio bus transaction)を開始する。EIEIOバス操作は、特定のタイプのアクセスを順序制御するために、システム内における他のプロセッサや機構に対するバリアポイント(防壁点)として機能する。特定のタイプのアクセスとは、たとえば、要・ライトスルー、あるいは、キャッシュ禁止を示す印がついていないコヒーレント・ストレージに対するDMAメモリ書き込みや、キャッシュ禁止かつガードされているストレージに対するDMAメモリ読み出しや書き込みである。他のプロセッサや機構は、それ以前のバス操作すべてについての順序付けが確定するように、EIEIOバス操作の承認を待機する。システム内のすべてのプロセッサや機構がEIEIOバス操作を承認すると、DMAコントローラ224だけがdmaeieioコマンドを完了させることができる。このように、dmaeieioコマンドは、DMA処理の可視性(わかりやすさ)の代わりに、強制的な順序制御によってシステムの処理効率を向上させる。第2DMAコントローラ226は、第1DMAコントローラ224と同様の方式にてdmaeieioコマンドを処理する。
dmasyncコマンドやdmaeieioコマンドにより、従来型MPシステムのウィークリー・コンシステント・ストレージ・モデルに非対称型プロセッサやデバイスを導入することが可能となり、これにより処理効率を向上させることができる。更に、dmasyncコマンドとdmaeieioコマンドにより、PUがストレージに対するアクセス順序制御について責任を負うこととなり、制御プロセッサはそのような責任から解放されることになる。そして、PUは、制御プロセッサからのサポートをほとんど、あるいは全く受けなくても、制御プロセッサと同様の方式にてリソースを制御できる。加えて、ストレージに対するアクセス順序制御についての責任から制御プロセッサを解放することにより、制御プロセッサやDMAコントローラの利用性や処理効率を大きく改善し、複数の非対称ユニットから制御プロセッサに過度の負荷がかからないようにしやすくなっている。
それゆえ、dmasyncコマンドやdmaeieioコマンドは、従来型MPシステムにおけるウィークリー・オーダーのストレージモデル概念を、DMAのメカニズムを使って共有ストレージにアクセスするプロセッサやデバイスによる非対称型異種混合マルチプロセッサ環境にまで拡張できる。更に、ローカルメモリやプライベートメモリを備える従来の対称型MPシステムや、その他の非対称型デバイスにもdmasyncコマンドやdmaeieioコマンドを採用してもよい。システムメモリ上のデータをシステムメモリ上の別の位置に移動させるDMAコントローラにおいてもdmasyncコマンドやdmaeieioコマンドを採用してもよい。
MPシステム200を動作させるために、一連の必要な接続がなされる。PU220は、図示しない第12通信チャネルを介して第1キャッシュ222と接続される。PU220は、第13通信チャネル242を介して第1DMAコントローラ224と接続される。第1キャッシュ222は、第14通信チャネル240を介して共有メモリ210と接続される。第1DMAコントローラ224は、第15通信チャネル244を介して共有メモリ210と接続される。第1DMAコントローラ224は、また、第16通信チャネル248を介してローカルメモリ212と接続される。第2PU228は、図示しない第17通信チャネルを介して第2キャッシュ230と接続される。第2キャッシュ230は、第18通信チャネル254を介してローカルメモリ212と接続される。第2PU228は、また、第19通信チャネル252を介して第2DMAコントローラ226と接続される。第2DMAコントローラ226は、第20通信チャネル250を介してローカルメモリ212と接続される。第2DMAコントローラ226は、また、第21通信チャネル246を介して共有メモリ210と接続される。
図3の参照符号「300」は、dmasyncコマンドの通常の動作のフローチャートを示す。この処理はステップ301から開始し、DMAコントローラは、タグ付きdmasyncコマンドを受信する。たとえば、ステップ310は、図1のDMAコントローラ110が図1のPU130からのタグ付きdmasyncコマンドを受信することによって実行される。説明のため、図3の全ステップは図1のDMAコントローラ110が実行するものとする。図3の各ステップは、図2の第1DMAコントローラ224や第2DMAコントローラ226によって実行されてもよいことは理解されるあろう。
次に、判定ステップ305において、DMAコントローラは、ステップ301にて受信されたタグ付きdmasyncコマンドと同じタグを付与され、かつ、それ以前に受信されたDMAコマンドをDMAコマンドキューから検出する。そのような同タグのDMAコマンドがあれば、処理はYESに分岐してステップ310に移行する。ステップ310において、DMAコントローラが上記した同タグDMAコマンドを実行すると、処理はステップ305に戻る。先行する同タグDMAコマンドがなければ、処理はNOに分岐してステップ315に移行する。
ステップ315において、DMAコントローラは、SYNCバス操作を発行する。次に、判定ステップ320において、DMAコントローラはSYNCバス操作が、システム内のプロセッサやデバイスにより承認されたかを判定する。SYNCバス操作承認が受信されていなければ、処理はNOに分岐してステップ325に移行する。ステップ325においてDMAコントローラは待機する。一例として、DMAコントローラは、所定の期間、たとえば、0.5マイクロ秒ほど動作停止して待機する。別例として、DMAコントローラは、タグ付きdmasyncコマンドと同じタグではないDMAコマンドを実行しつつ待機してもよい。それから、処理は判定ステップ320に戻る。
判定ステップ320においてSYNCバス操作承認が受信されていれば、処理はYESに分岐して判定ステップ330に移行する。判定ステップ330において、DMAコントローラは、システム内のすべてのプロセッサやデバイスがSYNCバス操作を承認しているか判定する。システム内のすべてのプロセッサやデバイスによってSYNCバス操作が承認されているのでなければ、処理はNOに分岐してステップ325に移行する。
判定ステップ325において、SYNCバス操作がシステム内のすべてのプロセッサやデバイスによって承認されていれば、処理はYESに分岐してステップ335に移行する。ステップ335において、DMAコントローラはdmasyncコマンドを完了させて、処理は終了する。dmasyncの後続コマンドがこれで実行可能となる。
図4の参照符号「400」は、dmaeieioコマンドの通常の動作のフローチャートを示す。この処理はステップ401から開始し、DMAコントローラは、タグ付きdmaeieioコマンドを受信する。たとえば、ステップ401は、図1のDMAコントローラ110が図1のPU130からタグ付きdmaeieioコマンドを受信することによって実行される。説明のため、図4の全ステップステップは、図1のDMAコントローラ110が実行するものとする。図4の各ステップは、図2の第1DMAコントローラ224や第2DMAコントローラ226によって実行されてもよいことは理解されるであろう。
次に、判定ステップ405において、DMAコントローラは、ステップ401にて受信されたタグ付きdmaeieioコマンドと同じタグを付与され、かつ、それ以前に受信されたDMAコマンドをDMAコマンドキューから検出する。そのような同タグのDMAコマンドがあれば、処理はYESに分岐してステップ410に移行する。ステップ410において、DMAコントローラが上記した同タグのDMAコマンドを実行すると、処理はステップ405に戻る。先行する同タグのDMAコマンドがなければ、処理はNOに分岐してステップ415に移行する。
ステップ415において、DMAコントローラはEIEIOバス操作を発行する。次に、判定ステップ420において、DMAコントローラは、EIEIOバス操作が、システム内のプロセッサやデバイスにより承認されたかを判定する。EIEIOバス操作承認が受信されていなければ、処理はNOに分岐してステップ425に移行する。ステップ425において、DMAコントローラは待機する。一例として、DMAコントローラは、所定の期間、たとえば、0.5マイクロ秒ほど動作停止して待機する。別例として、DMAコントローラは、タグ付きdmaeieioコマンドと同じタグではないDMAコマンドを実行しつつ待機してもよい。処理は判定ステップ420に戻る。
判定ステップ420においてEIEIOバス操作承認が受信されていれば、処理はYESに分岐して判定ステップ430に移行する。判定ステップ430において、DMAコントローラは、システム内のすべてのプロセッサやデバイスがEIEIOバス操作を承認しているか判定する。システム内のすべてのプロセッサやデバイスによってEIEIOバス操作が承認されているのでなければ、処理はNOに分岐してステップ425に移行する。
判定ステップ425において、EIEIOバス操作がシステム内のすべてのプロセッサやデバイスによって承認されていれば、処理はYESに分岐してステップ435に移行する。ステップ435において、DMAコントローラはdmaeieioコマンドを完了させて、処理は終了する。
(dmasyncとdmaeieioという)2つの特殊なメモリバリアコマンドについてだけ述べてきたが、他のメモリバリアコマンドやメモリバリアコマンドの別形式を定義できることは当業者には理解されるところである。たとえば、DMAコントローラは、ダイレクト・メモリ・アクセス・軽量SYNC(dmalwsync)や、フェンスを埋め込んだdmaeieioコマンドを受信できてもよい。
更に、パワーPC(登録商標)・アーキテクチャに関連して以下の特殊なメモリバリアコマンドについて説明してきたが、他のアーキテクチャに関わる他のメモリバリアコマンドを定義してもよいことは当業者には理解されるところである。したがって、DMAコントローラは、他のアーキテクチャにおけるメモリバリア命令と同様のDMAアクセス順序制御方法を提供するメモリバリアコマンドを受信してもよい。
非対称型異種混合MP環境、かつ、ウィークリー・オーダーのメモリモデルにおける特殊なメモリバリアコマンドの動作について説明したが、メモリバリアコマンドは、他のメモリモデルや対称MP環境でも採用できることは当業者には理解されるところである。
さまざまな変形や変更が、上記した本発明の実施例においても本発明の思想範囲から逸脱しない程度に可能であることは明らかなところである。それゆえ、これらの記述は、発明の例証を目的としたものであり、限定的な意味に解釈してはならない。本発明の範囲は、あくまでも、請求項の文言によってのみ解釈されるべきである。
DMAコントローラを備えるシステムのブロック図である。 マルチプロセッサ(MP)・システムのブロック図である。 ダイレクト・メモリ・アクセス・SYNC(dmasync:direct memory access sync)・コマンドの実行を示すフローチャートである。 ダイレクト・メモリ・アクセス・の強制インオーダー入出力実行(dmaeieio:direct memory access enforce in-order execution of input/output)コマンドの実行を示すフローチャートである。

Claims (26)

  1. メモリバリアコマンドを受信するステップと、
    メモリコマンドを受信するステップと、
    前記メモリバリアコマンドに基づいて前記メモリコマンドを実行するステップと、
    前記メモリバリアコマンドに基づいてバス操作を開始するステップと、
    前記バス操作に基づくバス操作承認を受信するステップと、
    前記バス操作承認に基づいてメモリバリアコマンドを実行するステップと、
    を備えることを特徴とするDMA(Direct Memory Access)デバイスにおけるメモリバリア生成方法。
  2. 前記メモリバリアコマンドは、dmasyncコマンドであることを特徴とする請求項1に記載のメモリバリア生成方法。
  3. 前記メモリバリアコマンドは、dmaeieioコマンドであることを特徴とする請求項1に記載のメモリバリア生成方法。
  4. 前記メモリコマンドは、前記メモリバリアコマンドよりも先に実行されることを特徴とする請求項1に記載のメモリバリア生成方法。
  5. 前記メモリコマンドは、前記メモリバリアコマンドよりも後に実行されることを特徴とする請求項1に記載のメモリバリア生成方法。
  6. 前記バス操作は、SYNCバス操作であることを特徴とする請求項1に記載のメモリバリア生成方法。
  7. 前記バス操作は、入出力強制イン・オーダー実行(EIEIO:enforce in-order execution of input/output)バス操作であることを特徴とする請求項1に記載のメモリバリア生成方法。
  8. 前記メモリバリアコマンドは、少なくとも、メモリコマンドバリアタグを含み、前記メモリコマンドは、少なくとも、メモリコマンドタグを含むことを特徴とする請求項1に記載のメモリバリア生成方法。
  9. 前記メモリコマンドは、前記メモリコマンドバリアタグと前記メモリコマンドタグに基づいて実行されることを特徴とする請求項8に記載のメモリバリア生成方法。
  10. メモリコマンドとメモリバリアコマンドを受信する第1通信チャネルと、
    前記第1通信チャネルと接続され、前記メモリバリアコマンドに基づいてバス操作を開始する展開論理回路と、
    前記展開論理回路に接続され、前記バス操作を転送し、バス操作承認を受信する第2通信チャネルと、
    前記第1通信チャネル、前記第2通信チャネルおよび前記展開論理回路と接続され、メモリコマンドを実行し、前記バス操作承認に基づいてメモリバリアコマンドを実行するDMAコントローラと、
    を備えることを特徴とするDMA(Direct Memory Access)操作におけるメモリバリア生成装置。
  11. 前記メモリバリアコマンドは、dmasyncコマンドであることを特徴とする請求項10に記載のメモリバリア生成装置。
  12. 前記メモリバリアコマンドは、dmaeieioコマンドであることを特徴とする請求項10に記載のメモリバリア生成装置。
  13. 前記バス操作は、SYNCバス操作であることを特徴とする請求項10に記載のメモリバリア生成装置。
  14. 前記バス操作は、EIEIOバス操作であることを特徴とする請求項10に記載のメモリバリア生成装置。
  15. 前記メモリコマンドは、少なくとも、関連するメモリコマンドタグを含み、前記メモリバリアコマンドは、少なくとも、関連するメモリバリアコマンドタグを含むことを特徴とする請求項10に記載のメモリバリア生成装置。
  16. 前記DMAコントローラは、更に、関連するメモリコマンドタグと関連するメモリバリアコマンドタグに基づいてメモリコマンドを実行することを特徴とする請求項15に記載のメモリバリア生成装置。
  17. 前記第1通信チャネルおよび前記展開論理回路と接続されるDMAコマンドキューを更に備え、
    前記DMAコマンドキューは、メモリコマンドとメモリバリアコマンドを順序づけして保持することを特徴とする請求項10に記載のメモリバリア生成装置。
  18. 複数のデータバッファを更に備え、
    前記複数のデータバッファは、少なくともメモリに接続されることを特徴とする請求項10に記載のメモリバリア生成装置。
  19. 前記複数のデータバッファは、少なくとも前記第2通信チャネルに接続されることを特徴とする請求項18に記載のメモリバリア生成装置。
  20. コンピュータプログラム自体が格納される媒体をもつコンピュータプログラム製品であって、
    メモリバリアコマンドを受信するコンピュータプログラムコードと、
    メモリコマンドを受信するコンピュータプログラムコードと、
    前記メモリバリアコマンドに基づいて前記メモリコマンドを実行するコンピュータプログラムコードと、
    前記メモリバリアコマンドに基づいてバス操作を開始するコンピュータプログラムコードと、
    前記バス操作に基づくバス操作承認を受信するコンピュータプログラムコードと、
    前記バス操作承認に基づくメモリバリアコマンドを実行するコンピュータプログラムコードと、
    を備えることを特徴とするDMA(Direct Memory Access)デバイスにおけるメモリバリア生成プログラム。
  21. 前記メモリバリアコマンドはdmasyncコマンドであることを特徴とする請求項20に記載のメモリバリア生成プログラム。
  22. 前記メモリバリアコマンドは、dmaeieioコマンドであることを特徴とする請求項20に記載のメモリバリア生成プログラム。
  23. 前記バス操作は、SYNCバス操作であることを特徴とする請求項20に記載のメモリバリア生成プログラム。
  24. 前記バス操作は、EIEIOバス操作であることを特徴とする請求項20に記載のメモリバリア生成プログラム。
  25. 前記メモリバリアコマンドは、少なくとも、一のメモリバリアタグを含み、前記メモリコマンドは、少なくとも、一のメモリコマンドタグを含むことを特徴とする請求項20に記載のメモリバリア生成プログラム。
  26. 前記メモリバリアタグと前記メモリコマンドタグに基づいて前記メモリコマンドを実行するプログラムコード、を更に備えることを特徴とする請求項25に記載のメモリバリア生成プログラム。
JP2007523179A 2004-07-29 2005-07-18 非対称型異種混合マルチプロセッサ環境(asymmetric heterogeneous multiprocessor environment)におけるメモリバリア要素(Primitive) Active JP4678623B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/902,474 US7725618B2 (en) 2004-07-29 2004-07-29 Memory barriers primitives in an asymmetric heterogeneous multiprocessor environment
PCT/IB2005/003974 WO2006040692A1 (en) 2004-07-29 2005-07-18 Memory barriers primitives in an asymmetric heterogeneous mutliprocessor environment

Publications (2)

Publication Number Publication Date
JP2008508586A true JP2008508586A (ja) 2008-03-21
JP4678623B2 JP4678623B2 (ja) 2011-04-27

Family

ID=35733704

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007523179A Active JP4678623B2 (ja) 2004-07-29 2005-07-18 非対称型異種混合マルチプロセッサ環境(asymmetric heterogeneous multiprocessor environment)におけるメモリバリア要素(Primitive)

Country Status (9)

Country Link
US (1) US7725618B2 (ja)
EP (1) EP1782220B1 (ja)
JP (1) JP4678623B2 (ja)
KR (1) KR100866714B1 (ja)
CN (1) CN101052954B (ja)
AT (1) ATE403905T1 (ja)
DE (1) DE602005008747D1 (ja)
TW (1) TWI391826B (ja)
WO (1) WO2006040692A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010026577A (ja) * 2008-07-15 2010-02-04 Seiko Epson Corp マルチプロセッサシステム及びそれを搭載した流体吐出装置
JP2016532950A (ja) * 2013-07-23 2016-10-20 クアルコム,インコーポレイテッド I/oプロトコルまたはターゲットデバイスによってサポートされないときにキューバリアを設けること

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7243200B2 (en) 2004-07-15 2007-07-10 International Business Machines Corporation Establishing command order in an out of order DMA command queue
US7725618B2 (en) 2004-07-29 2010-05-25 International Business Machines Corporation Memory barriers primitives in an asymmetric heterogeneous multiprocessor environment
DE102004046438B4 (de) * 2004-09-24 2006-07-06 Infineon Technologies Ag Vorrichtung zum Steuern des Zugriffs von Verarbeitungseinrichtungen auf Speicher in einem eingebetteten System
US9026744B2 (en) * 2005-03-23 2015-05-05 Qualcomm Incorporated Enforcing strongly-ordered requests in a weakly-ordered processing
US7716387B2 (en) * 2005-07-14 2010-05-11 Canon Kabushiki Kaisha Memory control apparatus and method
GB2433333B (en) * 2005-12-13 2011-07-13 Advanced Risc Mach Ltd Distributed direct memory access provision within a data processing system
JP4446968B2 (ja) * 2006-02-22 2010-04-07 シャープ株式会社 データ処理装置
US7917676B2 (en) * 2006-03-10 2011-03-29 Qualcomm, Incorporated Efficient execution of memory barrier bus commands with order constrained memory accesses
US7610458B2 (en) * 2006-04-25 2009-10-27 International Business Machines Corporation Data processing system, processor and method of data processing that support memory access according to diverse memory models
US7454580B2 (en) * 2006-04-25 2008-11-18 International Business Machines Corporation Data processing system, processor and method of data processing that reduce store queue entry utilization for synchronizing operations
US7783817B2 (en) * 2006-08-31 2010-08-24 Qualcomm Incorporated Method and apparatus for conditional broadcast of barrier operations
US7941627B2 (en) * 2008-02-01 2011-05-10 International Business Machines Corporation Specialized memory move barrier operations
US8327101B2 (en) * 2008-02-01 2012-12-04 International Business Machines Corporation Cache management during asynchronous memory move operations
US8015380B2 (en) * 2008-02-01 2011-09-06 International Business Machines Corporation Launching multiple concurrent memory moves via a fully asynchronoous memory mover
US8275963B2 (en) * 2008-02-01 2012-09-25 International Business Machines Corporation Asynchronous memory move across physical nodes with dual-sided communication
US8095758B2 (en) * 2008-02-01 2012-01-10 International Business Machines Corporation Fully asynchronous memory mover
US8245004B2 (en) * 2008-02-01 2012-08-14 International Business Machines Corporation Mechanisms for communicating with an asynchronous memory mover to perform AMM operations
US8356151B2 (en) * 2008-02-01 2013-01-15 International Business Machines Corporation Reporting of partially performed memory move
US7991981B2 (en) * 2008-02-01 2011-08-02 International Business Machines Corporation Completion of asynchronous memory move in the presence of a barrier operation
GB2469299B (en) * 2009-04-07 2011-02-16 Imagination Tech Ltd Ensuring consistency between a data cache and a main memory
US8352682B2 (en) * 2009-05-26 2013-01-08 Qualcomm Incorporated Methods and apparatus for issuing memory barrier commands in a weakly ordered storage system
US8997103B2 (en) * 2009-09-25 2015-03-31 Nvidia Corporation N-way memory barrier operation coalescing
US8832403B2 (en) * 2009-11-13 2014-09-09 International Business Machines Corporation Generation-based memory synchronization in a multiprocessor system with weakly consistent memory accesses
WO2012036954A2 (en) * 2010-09-15 2012-03-22 Rambus Inc. Scheduling amongst multiple processors
CN108139903B (zh) * 2015-07-21 2019-11-15 安培计算有限责任公司 依dmb操作用加载/存储操作实施加载撷取/存储释放指令
KR101892357B1 (ko) * 2016-10-11 2018-08-27 한국과학기술원 실리콘 반도체를 기반으로 하는 광 빔 포밍 네트워크 칩
KR102262209B1 (ko) * 2018-02-09 2021-06-09 한양대학교 산학협력단 더미 입출력 요청을 이용한 배리어 명령 전달 방법 및 그 장치
DE102020127704A1 (de) 2019-10-29 2021-04-29 Nvidia Corporation Techniken zum effizienten transferieren von daten an einem prozessor
US11803380B2 (en) 2019-10-29 2023-10-31 Nvidia Corporation High performance synchronization mechanisms for coordinating operations on a computer system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5911051A (en) * 1996-03-29 1999-06-08 Intel Corporation High-throughput interconnect allowing bus transactions based on partial access requests
US6209073B1 (en) * 1998-04-27 2001-03-27 International Business Machines Corp. System and method for interlocking barrier operations in load and store queues
US6347349B1 (en) * 1998-12-28 2002-02-12 International Business Machines Corp. System for determining whether a subsequent transaction may be allowed or must be allowed or must not be allowed to bypass a preceding transaction
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

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW320701B (ja) * 1996-05-16 1997-11-21 Resilience Corp
US5887134A (en) * 1997-06-30 1999-03-23 Sun Microsystems System and method for preserving message order while employing both programmed I/O and DMA operations
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
US6647468B1 (en) * 1999-02-26 2003-11-11 Hewlett-Packard Development Company, L.P. Method and system for optimizing translation buffer recovery after a miss operation within a multi-processor environment
US6738836B1 (en) * 2000-08-31 2004-05-18 Hewlett-Packard Development Company, L.P. Scalable efficient I/O port protocol
US6658520B1 (en) * 2000-09-26 2003-12-02 Intel Corporation Method and system for keeping two independent busses coherent following a direct memory access
US6947049B2 (en) * 2001-06-01 2005-09-20 Nvidia Corporation Method and system for synchronizing updates of vertex data with a graphics processor that is fetching vertex data
US7673304B2 (en) * 2003-02-18 2010-03-02 Microsoft Corporation Multithreaded kernel for graphics processing unit
US8301844B2 (en) * 2004-01-13 2012-10-30 Hewlett-Packard Development Company, L.P. Consistency evaluation of program execution across at least one memory barrier
US7725618B2 (en) 2004-07-29 2010-05-25 International Business Machines Corporation Memory barriers primitives in an asymmetric heterogeneous multiprocessor environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5911051A (en) * 1996-03-29 1999-06-08 Intel Corporation High-throughput interconnect allowing bus transactions based on partial access requests
US6209073B1 (en) * 1998-04-27 2001-03-27 International Business Machines Corp. System and method for interlocking barrier operations in load and store queues
US6347349B1 (en) * 1998-12-28 2002-02-12 International Business Machines Corp. System for determining whether a subsequent transaction may be allowed or must be allowed or must not be allowed to bypass a preceding transaction
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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010026577A (ja) * 2008-07-15 2010-02-04 Seiko Epson Corp マルチプロセッサシステム及びそれを搭載した流体吐出装置
JP2016532950A (ja) * 2013-07-23 2016-10-20 クアルコム,インコーポレイテッド I/oプロトコルまたはターゲットデバイスによってサポートされないときにキューバリアを設けること

Also Published As

Publication number Publication date
US20060026309A1 (en) 2006-02-02
CN101052954A (zh) 2007-10-10
TWI391826B (zh) 2013-04-01
EP1782220B1 (en) 2008-08-06
US7725618B2 (en) 2010-05-25
DE602005008747D1 (de) 2008-09-18
JP4678623B2 (ja) 2011-04-27
EP1782220A1 (en) 2007-05-09
CN101052954B (zh) 2011-10-19
KR20070038518A (ko) 2007-04-10
WO2006040692A1 (en) 2006-04-20
TW200617685A (en) 2006-06-01
ATE403905T1 (de) 2008-08-15
KR100866714B1 (ko) 2008-11-03

Similar Documents

Publication Publication Date Title
JP4678623B2 (ja) 非対称型異種混合マルチプロセッサ環境(asymmetric heterogeneous multiprocessor environment)におけるメモリバリア要素(Primitive)
JP4553936B2 (ja) アウト・オブ・オーダーのdmaコマンドキューにおけるコマンド順序の設定に関する技術
JP5047542B2 (ja) マルチスレッドプロセッサのディスパッチ時にスレッドをブロックする方法、コンピュータプログラム、および装置(精細なマルチスレッドディスパッチロックメカニズム)
US7620749B2 (en) Descriptor prefetch mechanism for high latency and out of order DMA device
TW581950B (en) Multiple logical interfaces to a shared coprocessor resource
EP3049924B1 (en) Method and apparatus for cache occupancy determination and instruction scheduling
US20100045682A1 (en) Apparatus and method for communicating between a central processing unit and a graphics processing unit
DE112012005058T5 (de) Variablenübertragungsnetzwerk mit geringer Latenzzeit für feingranulierte Parallelität virtueller Threads zwischen mehreren Hardware-Threads
TWI221250B (en) Multi-processor system
KR20040045035A (ko) 힌트 버퍼를 이용한 메모리 액세스 대기시간 숨김
JP3010400B2 (ja) 共有メモリ制御方法及び共有メモリ制御装置
US10782896B2 (en) Local instruction ordering based on memory domains
CN110908716B (zh) 一种向量聚合装载指令的实现方法
JP2021197155A (ja) 優先度スケジューリングを備える実行キューを有する機能ユニットを備えるマイクロプロセッサ
WO2017088456A1 (zh) 多输入多输出处理器流水线数据同步装置及方法
US20090007124A1 (en) Method and mechanism for memory access synchronization
US9418024B2 (en) Apparatus and method for efficient handling of critical chunks
US11687344B2 (en) Method and system for hard ware-assisted pre-execution
CN105912485B (zh) 一种基于AHB-Lite协议的访存队列设计方法及其装置
JP2007102447A (ja) 演算処理装置
JP2002198987A (ja) ハブおよびポート付き転送コントローラのアクティブ・ポート
US20080282051A1 (en) Methods and arrangements for controlling results of memory retrival requests
US7895608B1 (en) Virtual processing chains
US7523468B1 (en) Virtual processing chains
JP6138482B2 (ja) 組み込みシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100324

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20101124

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4678623

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

Year of fee payment: 3

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