JP2006107528A - 不連続なデータ構造を事前取出しする方法 - Google Patents

不連続なデータ構造を事前取出しする方法 Download PDF

Info

Publication number
JP2006107528A
JP2006107528A JP2005343161A JP2005343161A JP2006107528A JP 2006107528 A JP2006107528 A JP 2006107528A JP 2005343161 A JP2005343161 A JP 2005343161A JP 2005343161 A JP2005343161 A JP 2005343161A JP 2006107528 A JP2006107528 A JP 2006107528A
Authority
JP
Japan
Prior art keywords
pointer
memory line
memory
child
parent
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
JP2005343161A
Other languages
English (en)
Other versions
JP4301520B2 (ja
Inventor
Matthias A Blumrich
ブルムリッチ、マサイアス、エー
Dong Chen
チェン、トン
Paul W Coteus
コテウス、ポール、ダブリュー
Alan G Gara
ガラ、アラン、ジー
Mark E Giampapa
ジャンパパ、マーク、イー
Philip Heidelberger
ハイデルベルガー、フィリップ
Dirk Hoenicke
ホーニック、ダーク
Martin Ohmacht
オーマチト、マーティン
Burhard D Steinmacher-Burow
スタインマクサー−バロー、バークハード、ディー
Todd E Takken
タッケン、トッド、イー
Pavlos M Vranas
ヴラナス、パヴロス、エム
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 JP2006107528A publication Critical patent/JP2006107528A/ja
Application granted granted Critical
Publication of JP4301520B2 publication Critical patent/JP4301520B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K7/00Constructional details common to different types of electric apparatus
    • H05K7/20Modifications to facilitate cooling, ventilating, or heating
    • H05K7/20709Modifications to facilitate cooling, ventilating, or heating for server racks or cabinets; for data centers, e.g. 19-inch computer racks
    • H05K7/20836Thermal management, e.g. server temperature control
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F04POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
    • F04DNON-POSITIVE-DISPLACEMENT PUMPS
    • F04D25/00Pumping installations or systems
    • F04D25/16Combinations of two or more pumps ; Producing two or more separate gas flows
    • F04D25/166Combinations of two or more pumps ; Producing two or more separate gas flows using fans
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F04POSITIVE - DISPLACEMENT MACHINES FOR LIQUIDS; PUMPS FOR LIQUIDS OR ELASTIC FLUIDS
    • F04DNON-POSITIVE-DISPLACEMENT PUMPS
    • F04D27/00Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids
    • F04D27/004Control, e.g. regulation, of pumps, pumping installations or pumping systems specially adapted for elastic fluids by varying driving speed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • 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
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • G09G5/008Clock recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • H04L7/033Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
    • H04L7/0337Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals
    • H04L7/0338Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals the correction of the phase error being performed by a feed forward loop
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F24HEATING; RANGES; VENTILATING
    • F24FAIR-CONDITIONING; AIR-HUMIDIFICATION; VENTILATION; USE OF AIR CURRENTS FOR SCREENING
    • F24F11/00Control or safety arrangements
    • F24F11/70Control systems characterised by their outputs; Constructional details thereof
    • F24F11/72Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure
    • F24F11/74Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure for controlling air flow rate or air velocity
    • F24F11/77Control systems characterised by their outputs; Constructional details thereof for controlling the supply of treated air, e.g. its pressure for controlling air flow rate or air velocity by controlling the speed of ventilators
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02BCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
    • Y02B30/00Energy efficient heating, ventilation or air conditioning [HVAC]
    • Y02B30/70Efficient control or regulation technologies, e.g. for control of refrigerant flow, motor or heating

Abstract

【課題】不連続に保管されるが同一の順序で繰り返してアクセスされる非常に長いデータ構造など、不連続なデータ構造の事前取出しの単純な機構を提供する。
【解決手段】不連続なデータ構造をポイントし、そのアクセス順序を示すポインタを各データ構造に組み込むステップと、ポインタによって示されるアクセス順序に基づいてターゲット・データ構造を事前取出しするステップとを含む不連続なデータ構造を事前取出しする方法を提供する。
【選択図】 図1

Description

本発明は、不連続なデータ構造の事前取出しの効率的で単純な方法を提供する。
本発明は、全般的に、たとえば生命科学の分野の計算に適用される、分散メモリ・メッセージ受渡並列コンピュータ設計の分野に関する。
重要な計算の大きいクラスを、大量並列コンピュータ・システムによって実行することができる。そのようなシステムは、多数の同一の計算ノードからなり、各計算ノードは、通常は、1つまたは複数のCPU、メモリ、およびそのノードを他のノードに接続する1つまたは複数のネットワーク・インターフェースからなる。
大量並列スーパーコンピュータに関する、2001年2月24日出願の米国仮出願番号60/271,124に記載のコンピュータでは、システムオンアチップ(SOC)技術を活用して、高いスループットを有する、スケーラブルでコスト効率のよいコンピューティング・システムが作成される。SOC技術によって、集積された第1レベル・キャッシュを伴うCPUコアを含む組込み構成要素のライブラリを使用して、単一のチップ上でマルチプロセッサ・ノード全体を作ることが可能になった。そのようなパッケージ化によって、ノードの構成要素カウントが大きく減り、信頼性がある大スケール計算機の作成が可能になる。第1レベル・キャッシュは、一般にプロセッサに非常に近いキャッシュであり、一般に、第2レベル・キャッシュと比較した時により小さく、高速であり、第2レベル・キャッシュは、プロセッサから遠く、一般に、より大きく、低速であり、さらに上のレベルのキャッシュについても同様である。
マルチプロセッサが直面する一般的な問題が、リソースの秩序だった共用である。これは、しばしば、ロックの使用を介して達成され、この場合に、プロセッサは、リソースに割り当てられたロックを獲得することによって、そのリソースを使用する使用許可を得る。プロセッサは、ロックを保持(所有)する限り、そのリソースに関する許可を保持し、ロックを解放することによってその許可を放棄する。非常に一般的なタイプのロックが、テストアンドセット・ロックであり、これは、実施が単純で、一般に、十分広範囲に応用できる。
テストアンドセット・ロックは、一般に、実装に関してハードウェアRMW(read-modify-write)動作に頼る。この動作を用いると、ある値をメモリ位置に書き込み、前にその位置にあった(書込の前)値を返せるようになる。すなわち、この動作は、読取と、その直後の割込みなしの書込からなる。
テストアンドセット・ロックのセマンティクスは、次の通りである。アンロック状態が0、ロック状態が1であるものとする。プロセッサは、ロックに対してRMW動作を実行することによってロックの獲得を試み、このRMW動作で書き込まれる値は、1である。返された値が0である場合には、そのロックは、RMWの前にロック解除されており、1の書込に起因してロックされている。返された値が1である場合には、そのロックは既にロックされており、書込は効果がなかった。ロックを解放するには、単純に0を書き込む。
本発明のもう1つの態様は、事前取出しを含むが、事前取出しは、特にアプリケーションが予測可能なアクセス・パターンを示す時に、キャッシュを含むメモリ・システムの性能を強化する周知の技法である。一般に、事前取出しは、ソフトウェア・ディレクティブの使用を介する、または特殊なハードウェアを介するいずれかで達成される。順次事前取出しなど、一部のハードウェア方式は、単純であるが、ストライデッド・ストリーム・バッファ(strided stream buffer)などの方式は、より洗練されている。しかし、ハードウェア技法のすべてが、アドレス・シーケンスの予測可能性に頼る。従来の事前取出し技法の完全な調査については、ファンダビール(Vanderwiel)およびリリア(Lilja)を参照されたい。
現代の仮想メモリ・システムは、ハードウェア事前取出しの有効性に影響する可能性がある。というのは、仮想メモリで連続する大きいデータ構造が、物理メモリで連続している必要がなく、ハードウェア事前取出しが、通常は物理メモリ・アドレスを扱うからである。大きいデータ構造が、連続的にトラバースされる場合であっても、しばしばそうであるように、実際のメモリ参照は、連続しておらず、したがって、予測が困難である。しかし、多くのアプリケーションが、非常に反復的に振る舞い、したがって、繰り返されるアクセス・パターンを学習できる機構によって、事前取出しが有効になる可能性がある。
そのような機構の1つが、ポマリン(Pomerene)他の米国特許第4807110号、PrefetchingSystem for a Cache Having a Second Directory for Sequentially Accessed Blocksに記載されている。この発想は、連続してアクセスされるキャッシュ・ライン間の関係を保管する大きい2レベル・テーブルを設け、これらの関係をキャッシュへの事前取出しに活用できるようにすることである。この関係を確立し、維持するさまざまな方法が記述されている。この手法の重要な短所は、テーブルのサイズが固定され、最終的に満杯になることである。その時点で、既知の関係を追い出して、新しい関係のための余地を作らなければならない。これは、テーブルが、実効ページ・セットを取り込むのに十分に大きい限り、問題ではないが、2001年2月24日出願の関連する米国仮出願番号60/271,124、MassivelyParallel Supercomputerに記載のスケーラブル・コンピュータで動作するものなどの多数の科学アプリケーションの実効ページ・セットは、主記憶ほどに大きくなる可能性がある。この場合に、キャッシュ・ライン間の後続の関係が、事前取出しに使用できるようになるよりかなり前に、制限された容量に起因して追い出されるので、テーブルは、ほとんど利益をもたらさない。
米国仮出願番号60/271,124 米国特許第4807110号
したがって、本発明の目的は、不連続に保管されるが同一の順序で繰り返してアクセスされる非常に長いデータ構造など、不連続なデータ構造の事前取出しの単純な機構を提供することである。基本的な発想は、データ構造にポインタを組み込んで、アクセスの順序を示し、ポインタのターゲットを事前取出しすることである。
事前取出しは、一般に、キャッシュ・ラインに基づき、ラインは、連続する物理メモリ位置の位置合せされたチャンクである。システムのメモリ全体を、ラインに分割されるものとみなすことができ、これらのラインの一部が、任意の所与の時にキャッシュに保管される(おそらくは修正される)。本発明では、メモリ・ラインを再定義し、その結果、通常の物理メモリ・データのほかに、すべてのラインに、メモリ内の他のラインをポイントするのに十分に大きいポインタを含める。データおよびポインタのほかに、ポインタをセットし、使用するアルゴリズムを実施するための追加ビットを設けることができる。たとえば、本明細書で説明する好ましい実施形態には、ポインタの状況を示す2つのビットが含まれる。基本的な発想は、他の予測アルゴリズムではなく、ポインタを使用して、事前取出しされるメモリ・ラインを判定することである。これによって、ハードウェアが、不連続だが反復的なメモリ・アクセス・パターンを効率的に事前取出しできるようになる。本発明の好ましい実施形態には、自動的にアクセス・パターンを検出し、メモリ・ライン・ポインタをセットする機構が含まれる。さらに、ある機構によって、ソフトウェアからポインタを静的にセットできるようになる。
本発明は、不連続に保管されるが同一の順序で繰り返してアクセスされる非常に大きいデータ構造の効率的な事前取出しの機構にも関し、これを提供する。基本的な発想は、アクセス順序を示すポインタをデータ構造に組み込み、ポインタのターゲットを事前取出しすることである。
事前取出しは、一般に、キャッシュ・ラインに基づき、ラインは、連続する物理メモリ位置の位置合せされたチャンクである。システムのメモリ全体を、ラインに分割されるものとみなすことができ、これらのラインの一部が、任意の所与の時にキャッシュに保管される(おそらくは修正される)。
図1に、メモリ・ラインが再定義され、その結果、通常の物理メモリ・データ31のほかに、すべてのラインに、メモリ内の他のラインをポイントするのに十分に大きいポインタ32が含まれるようになる、本発明の1つの概念を示す。図1のラインには、Mビットのデータが含まれ、このラインは、メモリ全体を構成する2^N(2のN乗)個のメモリ・ラインの1つである。データおよびポインタのほかに、ポインタをセットし、使用するアルゴリズムを実施するためのビットを設けることができる。たとえば、本明細書に記載の好ましい実施形態には、ポインタの状況を示す2つのビット33および34が含まれる。
基本的な発想は、他の予測アルゴリズムではなく、ポインタを使用して、事前取出しされるメモリ・ラインを判定することである。これによって、ハードウェアが、不連続だが反復的なメモリ・アクセス・パターンを効率的に事前取出しできるようになる。本発明の好ましい実施形態には、自動的にアクセス・パターンを検出し、メモリ・ライン・ポインタをセットする機構が含まれる。さらに、ある機構によって、ソフトウェアからポインタを静的にセットできるようになる。
メモリ・ラインおよびそれに関連するポインタは、ラインがメモリ階層の上に移動される際に、一緒のままになる。たとえば、事前取出しを使用して、CPUの近くの第2レベル・キャッシュのヒット率を改善することができ、したがって、第3レベルなど、その下の他のキャッシュは、単に、メモリ・ライン・データと共にポインタをキャッシングする。第2レベル・キャッシュも、下で説明するように、状況変更を実施するためにポインタを保管する。ポインタをセットする単純な機構は、すべてのポインタが「無効」とみなされる状態から自動的に開始する。無効なポインタは、事前取出しに絶対に使用されない。これは、追加のビットを用いて、または特定のポインタ値をこの状態の専用にすることによって、示すことができる。ラインがアクセスされ、ラインが有効なポインタを有しない時に、そのラインが、「親」状況に昇格される。次に取出しが要求されるラインが、その「子」とみなされる。子がわかったならば、親のポインタを、その子をポイントするように修正し、有効にする。さらに、「保護観察」ビットをセットして、そのポインタが推測であり、有用でない可能性があることを示す。子が別の後続ラインの親でもあるという点で、このアルゴリズムが再帰的であることに留意されたい。
保護観察ポインタがセットされたラインが参照され、おそらくは取り出される時に、そのラインが、もう一度親とみなされるが、子は取り出されない。次のラインが要求されたならば、そのアドレスが、保護観察の子ポインタと比較される。それらが一致する場合に、親のポインタが、「既知」状況に昇格される。一致しない場合には、親のポインタが無効とマークされる。というのは、事前取出しが有用でないと仮定されるからである。
既知ポインタを有するラインが参照され、おそらくは取り出される時に、ポイントされる子が、即座に事前取出しされる。次に参照されるラインが、その子でない場合には、親のポインタ状況が、また保護観察状況に降格される。
この単純な方式では、アクセス・パターンの変動の余地が許容されず、1を超える事前取出し深さ(すなわち、保留中の事前取出しの数、通常は3または4)がサポートされない。この単純な方式を機能強化して、ある期間にわたって親子関係を記憶する、小さい内容アドレス事前取出しテーブルを含めることができる。このテーブルは、3つのフィールドすなわち、親、子、および状況を有する。
ラインが取り出され、無効ポインタを有する時には、そのラインは、単純な方式と同一の形で扱われる。すなわち、次に取り出されるラインが子と見なされ、親のポインタに子がセットされ、ポインタ状況に保護観察がセットされる。既知ポインタを有するラインが、取り出されるか事前取出しされる時には、事前取出し深さを超えない限り、ポイントされる子が即座に事前取出しされる。
保護観察ポインタまたは既知ポインタを有するラインが取り出され、事前取出しテーブルでそのラインが親でないことがわかる時には、そのラインが、子ポインタおよびポインタ状況と共にテーブルに入力される。
ラインが参照され、おそらくは取り出される時に、必ず、そのラインのアドレスが、事前取出しテーブル内のすべての子ポインタと比較される。一致が見つかる場合には、関連する親の状況が、単純な方式と同様に更新される。すなわち、保護観察ポインタが、既知の状況に昇格される。さらに、事前取出しテーブル内の一致する項目が、除去される。複数の子項目が一致する場合には、そのそれぞれが同一の形で扱われる。
ある項目が、容量に起因して事前取出しテーブルから追い出される時に、親のポインタ状況が、単純な方式で次の参照が期待される子と一致しない時と同様に更新される。すなわち、有効ポインタは、保護観察ポインタにされ、保護観察ポインタは、無効化される。ラインがキャッシュから追い出され、そのラインが、事前取出しテーブルで親であることがわかる時には、そのテーブル項目も、無効化され、事前取出しテーブル追出しとして扱われる。
事前取出しハードウェアに、事前取出しポインタを事前設定し、事前設定された事前取出しポインタを尊重するが、その状況を変更しない動作モードが含まれる。すなわち、自動ポインタ設定機構が使用不可にされるが、ポインタに基づく事前取出し機構は使用不可にされない。これは、データ構造の仮想対物理マッピングが固定され、データ構造のトラバース順序が既知である時に有用である。この場合に、物理メモリ内のポインタを、アクセス順序に対応するようにセットすることができ、これによって、データ構造を効率的に事前取出しできるようになる。
不連続データ構造の単純な事前取出しに関する本発明の複数の実施形態および変形形態を、本明細書で詳細に説明したが、本発明の開示および教示によって、当業者に多数の代替設計が提案されることは明白である。
本実施形態の概念を示す図である。この図では、メモリ・ラインが再定義され、その結果、通常の物理メモリ・データのほかに、すべてのラインに、メモリ内の他のラインをポイントするのに十分に大きいポインタが含まれるようになる。
符号の説明
31・・・Mビットのデータ値、32・・・Nビットのポインタ、33、34・・・ポインタの状況を示すビット

Claims (11)

  1. 不連続なデータ構造を事前取出しする方法であって、
    前記不連続なデータ構造をポイントし、そのアクセス順序を示すポインタを各データ構造に組み込むステップと、
    前記ポインタによって示される前記アクセス順序に基づいてターゲット・データ構造を事前取出しするステップと
    を含む不連続なデータ構造を事前取出しする方法。
  2. 不連続に保管されるが同一の順序で繰り返してアクセスされる大きいデータ構造を事前取出しするステップをさらに含む、請求項1に記載の不連続なデータ構造を事前取出しする方法。
  3. 前記事前取出しが、メモリ・ラインに基づき、メモリ・ラインが、メモリがラインに分割されるように、連続する物理メモリ位置の位置合せされたセクションであり、前記ラインのある部分を、所与の時に少なくとも1つのキャッシュに保管することができ、通常の物理メモリ・データの他に、各メモリ・ラインが前記メモリ内の他のメモリ・ラインをポイントするのに十分に大きいポインタを含むように、各メモリ・ラインが、再定義される、請求項1に記載の不連続なデータ構造を事前取出しする方法。
  4. 各メモリ・ラインが、前記データおよび前記ポインタのほかに、前記ポインタを自動的にセットし、使用するアルゴリズムを実施する追加ビットを含む、請求項3に記載の不連続なデータ構造を事前取出しする方法。
  5. 各メモリ・ラインが、前記ポインタの状況を示す2つのビットを含む、請求項4に記載の不連続なデータ構造を事前取出しする方法。
  6. メモリ・ラインがアクセスされ、前記メモリ・ラインが有効なポインタを有しない時に、前記メモリ・ラインが親状況に昇格され、次に取出しを要求されるメモリ・ラインが、その子とみなされ、子メモリ・ラインが既知になった後に、前記親メモリ・ラインの前記ポインタが、前記子メモリ・ラインをポイントし、さらに、保護観察ビットが、前記ポインタが有用でない可能性があることを示すようにセットされるようにする機構によって、前記ポインタがセットされ、前記機構が、子メモリ・ラインが別の後続のメモリ・ラインの親メモリ・ラインでもあるという点で再帰的である、請求項3に記載の不連続なデータ構造を事前取出しする方法。
  7. 保護観察ポインタがセットされたメモリ・ラインが参照される時に、前記メモリ・ラインが親メモリ・ラインとみなされるが、子メモリ・ラインが取り出されず、次のメモリ・ラインが要求された後に、そのアドレスが前記保護観察子メモリ・ラインの前記ポインタと比較され、これらが一致する場合に、前記親のポインタが既知状況に昇格され、これらが一致しない場合に、前記親のポインタが無効とマークされ、既知ポインタを有するメモリ・ラインが参照される時に、ポイントされる子メモリ・ラインが、即座に事前取出しされ、次に参照されるメモリ・ラインが、その子メモリ・ラインでない場合に、前記親のポインタ状況が、保護観察状況に降格される、請求項6に記載の不連続なデータ構造を事前取出しする方法。
  8. 前記メモリが、複数の異なるレベルのキャッシュを含み、メモリ・ラインが、異なるレベルのキャッシュの間でメモリ階層の上に移動される際に、前記メモリ・ラインおよびそれに関連するポインタが、一緒のままになり、したがって、事前取出しを実施するキャッシュ・レベルより下のキャッシュ・レベル内のすべての他のキャッシュが、単純に、メモリ・ライン・データと共に前記ポインタをキャッシングする、請求項3に記載の不連続なデータ構造を事前取出しする方法。
  9. 親子関係を記憶する内容アドレス事前取出しテーブルをさらに含み、前記テーブルが、3つのフィールドすなわち親、子、および状況を有する、請求項6に記載の不連続なデータ構造を事前取出しする方法。
  10. メモリ・ラインが、取り出され、無効なポインタを有する時に、次に取り出されるメモリ・ラインが、その子とみなされ、親のポインタに、前記子メモリ・ラインがセットされ、前記ポインタ状況に、保護観察がセットされ、既知ポインタを有するラインが、取り出されるか事前取出しされる時に、ポイントされる前記子メモリ・ラインが、即座に事前取出しされ、
    保護観察ポインタまたは既知ポインタを有するメモリ・ラインが、取り出され、前記事前取出しテーブル内で親メモリ・ラインでないことがわかる時に、前記メモリ・ラインが、その子ポインタおよびポインタ状況と共に前記テーブルに入力され、
    メモリ・ラインが参照される時に、前記メモリのアドレスが、前記事前取出しテーブル内のすべての前記子ポインタと比較され、一致が見つかる場合に、関連する親の状況が更新され、保護観察ポインタが既知状況に昇格され、さらに、前記事前取出しテーブル内の一致する項目が除去され、複数の子項目が一致する場合に、各子項目が、同一の形で扱われる請求項9に記載の不連続なデータ構造を事前取出しする方法。
  11. 項目が、容量の欠如に起因して前記事前取出しテーブルから追い出される時に、前記親のポインタ状況が更新され、有効ポインタが保護観察にされ、保護観察ポインタが無効化され、メモリ・ラインが、キャッシュから追い出され、そのメモリ・ラインが、前記事前取出しテーブル内で親であることがわかる時に、前記テーブル項目も、無効化され、事前取出しテーブル追出しとして扱われる、請求項9に記載の不連続なデータ構造を事前取出しする方法。
JP2005343161A 2001-02-24 2005-11-29 不連続なデータ構造を事前取出しする方法 Expired - Fee Related JP4301520B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US27112401P 2001-02-24 2001-02-24
JP2002568154A JP3963372B2 (ja) 2001-02-24 2002-02-25 マルチプロセッサ・システム
PCT/US2002/005575 WO2002069098A2 (en) 2001-02-24 2002-02-25 Low latency memoray system access

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2002568154A Division JP3963372B2 (ja) 2001-02-24 2002-02-25 マルチプロセッサ・システム

Publications (2)

Publication Number Publication Date
JP2006107528A true JP2006107528A (ja) 2006-04-20
JP4301520B2 JP4301520B2 (ja) 2009-07-22

Family

ID=68463259

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2002568154A Expired - Fee Related JP3963372B2 (ja) 2001-02-24 2002-02-25 マルチプロセッサ・システム
JP2005343161A Expired - Fee Related JP4301520B2 (ja) 2001-02-24 2005-11-29 不連続なデータ構造を事前取出しする方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2002568154A Expired - Fee Related JP3963372B2 (ja) 2001-02-24 2002-02-25 マルチプロセッサ・システム

Country Status (9)

Country Link
US (1) US7174434B2 (ja)
EP (1) EP1379933A4 (ja)
JP (2) JP3963372B2 (ja)
KR (2) KR100714766B1 (ja)
CN (2) CN1537275A (ja)
AU (1) AU2002247206A1 (ja)
CA (1) CA2436474A1 (ja)
IL (1) IL157509A0 (ja)
WO (1) WO2002069098A2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL157510A0 (en) * 2001-02-24 2004-03-28 Ibm Arithmetic functions in torus and tree networks
US6928526B1 (en) * 2002-12-20 2005-08-09 Datadomain, Inc. Efficient data storage system
US7747843B2 (en) * 2004-06-02 2010-06-29 Broadcom Corporation Microprocessor with integrated high speed memory
US7216218B2 (en) * 2004-06-02 2007-05-08 Broadcom Corporation Microprocessor with high speed memory integrated in load/store unit to efficiently perform scatter and gather operations
US7296120B2 (en) * 2004-11-18 2007-11-13 International Business Machines Corporation Mechanism that provides efficient multi-word load atomicity
CN101061462B (zh) * 2004-11-26 2010-10-06 国际商业机器公司 多处理器系统以及其中的排他控制方法
CN100388209C (zh) * 2005-01-05 2008-05-14 英业达股份有限公司 防止数据处理混乱的方法
US9026744B2 (en) * 2005-03-23 2015-05-05 Qualcomm Incorporated Enforcing strongly-ordered requests in a weakly-ordered processing
US7356653B2 (en) * 2005-06-03 2008-04-08 International Business Machines Corporation Reader-initiated shared memory synchronization
US7267555B2 (en) * 2005-10-18 2007-09-11 Au Optronics Corporation Electrical connectors between electronic devices
US7752367B2 (en) * 2005-12-22 2010-07-06 International Business Machines Corporation File-based access control for shared hardware devices
US8104039B2 (en) * 2006-08-07 2012-01-24 International Business Machines Corporation Method for balancing resource sharing and application latency within a data processing system
CN100451972C (zh) * 2006-09-26 2009-01-14 杭州华三通信技术有限公司 提高多核系统访问临界资源速度的方法和装置
US7750923B2 (en) * 2007-04-05 2010-07-06 Microsoft Corporation Implementing limited function mode in a display device
JP2009104300A (ja) * 2007-10-22 2009-05-14 Denso Corp データ処理装置及びプログラム
CN101216781B (zh) * 2007-12-28 2011-03-23 中国科学院计算技术研究所 一种多处理器系统、装置及方法
JP2010044578A (ja) * 2008-08-12 2010-02-25 Toshiba Corp マルチコアプロセッサ
CN101673244B (zh) * 2008-09-09 2011-03-23 上海华虹Nec电子有限公司 多核或集群系统的存储器控制方法
US8719829B2 (en) * 2009-03-09 2014-05-06 International Business Machines Corporation Synchronizing processes in a computing resource by locking a resource for a process at a predicted time slot
CN103377086A (zh) * 2012-04-27 2013-10-30 华为技术有限公司 用于异步多核系统操作共享资源的方法、装置及系统
US10706051B1 (en) * 2012-06-15 2020-07-07 Open Text Corporation Methods for updating reference count and shared objects in a concurrent system
US10515141B2 (en) * 2012-07-18 2019-12-24 Software Ag Usa, Inc. Systems and/or methods for delayed encoding of XML information sets
US9760549B2 (en) * 2012-07-18 2017-09-12 Software Ag Usa, Inc. Systems and/or methods for performing atomic updates on large XML information sets
US9922089B2 (en) 2012-07-18 2018-03-20 Software Ag Usa, Inc. Systems and/or methods for caching XML information sets with delayed node instantiation
US9377954B2 (en) * 2014-05-09 2016-06-28 Advanced Micro Devices, Inc. System and method for memory allocation in a multiclass memory system
JP6252348B2 (ja) * 2014-05-14 2017-12-27 富士通株式会社 演算処理装置および演算処理装置の制御方法
CN104102547B (zh) * 2014-07-25 2017-12-26 珠海全志科技股份有限公司 多处理器系统的同步方法及其同步装置
GB2554442B (en) 2016-09-28 2020-11-11 Advanced Risc Mach Ltd Apparatus and method for providing an atomic set of data accesses
TWI650648B (zh) * 2018-02-09 2019-02-11 慧榮科技股份有限公司 系統晶片及存取系統晶片中記憶體的方法
CN111459547B (zh) * 2020-04-01 2021-10-08 腾讯科技(深圳)有限公司 一种函数调用链路的展示方法和装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4807110A (en) 1984-04-06 1989-02-21 International Business Machines Corporation Prefetching system for a cache having a second directory for sequentially accessed blocks
GB2216306A (en) * 1988-02-29 1989-10-04 Ardent Computer Corp Load and synchronize computer architecture and process
JPH02121053A (ja) 1988-10-31 1990-05-08 Toshiba Corp テスト・アンド・セット方式
JPH0391055A (ja) 1989-09-04 1991-04-16 Hitachi Ltd ハードウエアロックのセット方法、ハードウエアロック制御装置、ハードウエアロックの検出方法と装置
US5287503A (en) 1991-09-27 1994-02-15 Sun Microsystems, Inc. System having control registers coupled to a bus whereby addresses on the bus select a control register and a function to be performed on the control register
US5537573A (en) * 1993-05-28 1996-07-16 Rambus, Inc. Cache system and method for prefetching of data
JP3548616B2 (ja) * 1995-01-20 2004-07-28 株式会社日立製作所 情報処理装置
US5819079A (en) * 1995-09-11 1998-10-06 Intel Corporation Instruction fetch on demand for uncacheable memory which avoids memory mapped I/O side effects in a processor with speculative instruction fetch
US5860126A (en) * 1996-12-17 1999-01-12 Intel Corporation Controlling shared memory access ordering in a multi-processing system using an acquire/release consistency model
US5822788A (en) * 1996-12-20 1998-10-13 Intel Corporation Mechanism for prefetching targets of memory de-reference operations in a high-performance processor
US5983259A (en) 1997-02-19 1999-11-09 International Business Machines Corp. Systems and methods for transmitting and receiving data in connection with a communications stack in a communications system
US6247025B1 (en) * 1997-07-17 2001-06-12 International Business Machines Corporation Locking and unlocking mechanism for controlling concurrent access to objects
US6134579A (en) * 1997-08-15 2000-10-17 Compaq Computer Corporation Semaphore in system I/O space
US6151655A (en) 1998-04-30 2000-11-21 International Business Machines Corporation Computer system deadlock request resolution using timed pulses
US6148300A (en) * 1998-06-19 2000-11-14 Sun Microsystems, Inc. Hybrid queue and backoff computer resource lock featuring different spin speeds corresponding to multiple-states
US6782440B2 (en) * 2000-07-26 2004-08-24 T.N.S. Holdings, Inc. Resource locking and thread synchronization in a multiprocessor environment
US6715059B2 (en) * 2000-07-26 2004-03-30 Tas Holdings, Inc. Methods and systems for a shared memory unit with extendable functions
US6513100B1 (en) * 2000-10-30 2003-01-28 Microsoft Corporation System and method for fast referencing a reference counted item

Also Published As

Publication number Publication date
KR100598668B1 (ko) 2006-07-13
IL157509A0 (en) 2004-03-28
AU2002247206A1 (en) 2002-09-12
WO2002069098A2 (en) 2002-09-06
US20040073758A1 (en) 2004-04-15
CN1722110A (zh) 2006-01-18
CN100394407C (zh) 2008-06-11
KR20060024027A (ko) 2006-03-15
EP1379933A4 (en) 2007-10-17
CN1537275A (zh) 2004-10-13
WO2002069098A3 (en) 2002-10-17
JP3963372B2 (ja) 2007-08-22
CA2436474A1 (en) 2002-09-06
US7174434B2 (en) 2007-02-06
JP4301520B2 (ja) 2009-07-22
EP1379933A2 (en) 2004-01-14
KR100714766B1 (ko) 2007-05-08
KR20040004537A (ko) 2004-01-13
JP2004529415A (ja) 2004-09-24

Similar Documents

Publication Publication Date Title
JP4301520B2 (ja) 不連続なデータ構造を事前取出しする方法
US7529895B2 (en) Method for prefetching non-contiguous data structures
Anderson et al. Performance of the Cray T3E multiprocessor
US9244840B2 (en) Cache swizzle with inline transposition
Nai et al. Instruction offloading with hmc 2.0 standard: A case study for graph traversals
US5835950A (en) Self-invalidation method for reducing coherence overheads in a bus-based shared-memory multiprocessor apparatus
WO2014090087A1 (en) Translation management instructions for updating address translation data structures in remote processing nodes
JPH06510611A (ja) コンピュータシステムにおいてデータ処理速度を向上させる方法
US10108548B2 (en) Processors and methods for cache sparing stores
JP5255049B2 (ja) データをキャッシュ・メモリにプリフェッチする方法、コンピュータ・プログラム、及びシステム
Singh et al. SPX64: A scratchpad memory for general-purpose microprocessors
US9734072B2 (en) Main memory prefetch operation and multiple prefetch operation
Zhao et al. Design of write merging and read prefetching buffer in DRAM controller for embedded processor
US7234027B2 (en) Instructions for test & set with selectively enabled cache invalidate
Honarmand Memory Prefetching
Wang et al. Computer architecture
Zhang et al. Efficient address remapping in distributed shared-memory systems
Kumr et al. An Overview of Hardware Based Cache Optimization Techniques
Choi et al. Hardware and compiler-directed cache coherence in large-scale multiprocessors: Design considerations and performance study
Jain Memory Models for Embedded Multicore Architecture
Park et al. Aggressive superpage support with the shadow memory and the partial-subblock TLB
Mahjur et al. Two-phase prediction of L1 data cache misses
Al Hasib et al. Implementation and Evaluation of an Efficient Level-2 Cache Prefetching Algorithm
Mechri Stealing the shared cache for fun and profit
Pourdowlat et al. Hardware Prefetching Schemes

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090224

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20090408

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090417

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

Free format text: PAYMENT UNTIL: 20120501

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120501

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130501

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140501

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees