JP2004110811A - マルチプロセッサ・メモリ整合性の効率のよいエミュレーションのための方法およびシステム - Google Patents
マルチプロセッサ・メモリ整合性の効率のよいエミュレーションのための方法およびシステム Download PDFInfo
- Publication number
- JP2004110811A JP2004110811A JP2003302164A JP2003302164A JP2004110811A JP 2004110811 A JP2004110811 A JP 2004110811A JP 2003302164 A JP2003302164 A JP 2003302164A JP 2003302164 A JP2003302164 A JP 2003302164A JP 2004110811 A JP2004110811 A JP 2004110811A
- Authority
- JP
- Japan
- Prior art keywords
- write
- memory
- read
- shared
- determined
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1072—Decentralised address translation, e.g. in distributed shared memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/656—Address space sharing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/682—Multiprocessor TLB consistency
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
Abstract
【解決手段】 マルチプロセッサ・システムにおけるエミュレーションの方法(およびシステム)は、マルチプロセッサ・システムのホスト・マルチプロセッシング・システムが弱い整合性モデルをサポートし、マルチプロセッサ・システムのターゲット・マルチプロセッシング・システムが強い整合性モデルをサポートするエミュレーションを実行するステップを含む。
【選択図】 図8
Description
1998年2月発表のStephenA. Herrodの「Using Complete MachineSimulation to Understand Computer System Behavior」というスタンフォード大学博士論文 1987年10月4〜8日にオーランドで開催されたObject Oriented Programming Systems Languages and ApplicationsConference (OOPSLA)の会議録ならびにSpecialIssue of Sigplan Notices, vol. 22, No. 12, Dec. 1987, vol. 22, No. 7, Jun. 24におけるCathy Mayによる「Mimic: A Fast System/370 Simulator」という論文 1996年12月発行のIEEEComputer, vol. 29, no. 12の66〜76ページに掲載されたSaritaAdve他の「Shared MemoryConsistency Models: A Tutorial」という論文 1979年9月発行のIEEETransactions on Computers, C-28, 9の690〜691ページに掲載されたL. Lamportの「How to Make aMultiprocessor Computer That Correctly Executes Multiprocess Programs」という論文
1.マッピングなし
2.排他読取り
3.排他書込み
4.共用読取り
5.共用書込み
前記マルチプロセッサ・システムのホスト・マルチプロセッシング・システムが弱い整合性モデルをサポートし、前記マルチプロセッサ・システムのターゲット・マルチプロセッシング・システムが強い整合性モデルをサポートするエミュレーションを実行するステップを具備する方法。
(2)あるページの共用状況を決定するステップをさらに具備し、前記決定ステップが、
ルックアップ・テーブル内のルックアサイド・マスクに複数のビットが設定されているかどうかを判定するステップと、
前記ルックアサイド・マスクに複数のビットが設定されていると判定された場合に、前記ルックアップ・テーブル内の読取り/書込みマスク・フィールドに何らかのビットが設定されているかどうかを判定するステップと、
前記読取り/書込みマスクに何らかのビットが設定されていると判定された場合に、前記状況を「共用書込み」に設定するステップと、
前記読取り/書込みマスクにいずれのビットも設定されていないと判定された場合に、前記状況を「共用読取り」に設定するステップとを具備する、上記(1)に記載の方法。
(3)前記決定ステップが、
前記ルックアサイド・マスクに複数のビットが設定されていないと判定された場合に、前記読取り/書込みマスクに何らかのビットが設定されているかどうかを判定するステップと、
前記読取り/書込みマスクにビットが設定されていると判定された場合に、前記状況を「排他書込み」に設定するステップとをさらに具備する、上記(2)に記載の方法。
(4)前記決定ステップが、
前記読取り/書込みマスクにいずれのビットも設定されていないと判定された場合に、前記状況を「排他読取り」に設定するステップをさらに具備する、上記(2)に記載の方法。
(5)現在参照中の位置に関する情報を共有することにより維持されるテーブルを設けるステップをさらに具備する、上記(1)に記載の方法。
(6)前記テーブルがルックアサイド・マスク・フィールドと読取り/書込みマスク・フィールドとを含み、あるプロセッサが読取りモードまたは書込みモードのいずれでページにアクセスしているかに関する情報を含む、上記(5)に記載の方法。
(7)あるページをシステムに取り込んだときに、前記ページがどの状態を備えているかを決定するステップをさらに具備し、
前記ページが共用書込み状態を備えている場合、このような状態にフラグが立てられる、上記(6)に記載の方法。
(8)前記テーブルがルックアップ・テーブルを具備し、前記方法が、
あるページの共用状況を決定するステップをさらに具備し、前記決定ステップが、
前記ルックアップ・テーブル内の前記ルックアサイド・マスクに複数のビットが設定されているかどうかを判定するステップと、
前記ルックアサイド・マスクに複数のビットが設定されていると判定された場合に、前記テーブル内の読取り/書込みマスク・フィールドに何らかのビットが設定されているかどうかを判定するステップと、
前記読取り/書込みマスクに何らかのビットが設定されていると判定された場合に、前記状況を「共用書込み」に設定するステップと、
前記読取り/書込みマスクにいずれのビットも設定されていないと判定された場合に、前記状況を「共用読取り」に設定するステップとを具備する、上記(6)に記載の方法。
(9)前記決定ステップが、
前記ルックアサイド・マスクに複数のビットが設定されていないと判定された場合に、前記読取り/書込みマスクに何らかのビットが設定されているかどうかを判定するステップと、
前記読取り/書込みマスクにビットが設定されていると判定された場合に、前記状況を「排他書込み」に設定するステップと、
前記読取り/書込みマスクにいずれのビットも設定されていないと判定された場合に、前記状況を「排他読取り」に設定するステップと、
複数の命令を一度に1つずつエミュレートするときに、順次整合性を保証するステップとをさらに具備する、上記(8)に記載の方法。
(10)ターゲット・マルチプロセッサ・コンピューティング・システムの挙動をエミュレートするためのエミュレータを含むマルチプロセッサ・コンピューティング・システムにおいて、前記ターゲット・マルチプロセッサ・コンピューティング・システムのメモリ整合性挙動をエミュレートするための方法において、
メモリ・アクションの前にメモリ・バリア命令を実行するステップであって、前記メモリ・バリア命令の実行前に実行されたメモリ・アクションの結果がホスト・コンピューティング・システム内のすべてのプロセッサによって入手されていることを前記メモリ・バリア命令が保証するステップを具備し、
前記マルチプロセッサ・コンピューティング・システムの前記ホスト・コンピューティング・システムが弱い整合性モデルをサポートし、前記マルチプロセッサ・コンピューティング・システムの前記ターゲット・マルチプロセッサ・システムが強い整合性モデルをサポートする方法。
(11)メモリ・アクションの前に実行されたメモリ・バリア命令が、特定の状態を有するものとして識別されたメモリ位置へのアクセスの直後に実行される、上記(10)に記載の方法。
(12)前記特定の状態が共用書込み状態を具備する、上記(11)に記載の方法。
(13)前記ターゲット・マルチプロセッサ・コンピューティング・システムからの複数命令のグループ内の命令がホストに変換されるときにリオーダされる場合に、メモリ整合性を保証するステップをさらに含む、上記(10)に記載の方法。
(14)マルチプロセッサ・メモリ整合性の効率のよいエミュレーションのための方法において、
メモリ・バリア命令の実行前に実行されたメモリ・アクションがマルチプロセッサ・システムのホスト・コンピューティング・システム内のすべてのプロセッサによって登録されていることを保証するメモリ・バリア命令を形成するステップを具備し、
前記ホスト・コンピューティング・システムが緩やかな整合性モデルをサポートし、前記マルチプロセッサ・システムのターゲット・コンピューティング・システムが強い整合性モデルを指定する方法。
(15)前記ホスト・コンピューティング・システムが、メモリ・コヒーレンスを備えた前記緩やかな整合性モデルをサポートする、上記(14)に記載の方法。
(16)バリア命令後のすべてのメモリ動作が、すべてのプロセッサによって登録された前記バリア命令前のすべてのメモリ動作の後で実行されることを前記メモリ・バリア命令が保証する、上記(14)に記載の方法。
(17)前記ターゲット・コンピューティング・システムおよび前記ホスト・コンピューティング・システムにより現在参照中の位置に関する情報を共有することにより維持されるテーブルを設けるステップをさらに具備する、上記(14)に記載の方法。
(18)前記テーブルがルックアサイド・マスク・フィールドと読取り/書込みマスク・フィールドとを含み、あるプロセッサが読取りモードまたは書込みモードのいずれでページにアクセスしているかに関する情報を含む、上記(17)に記載の方法。
(19)あるページをシステムに取り込んだときに、前記ページがどの状態を備えているかを決定するステップをさらに具備し、
前記ページが共用書込み状態を備えている場合、このような状態にフラグが立てられる、上記(14)に記載の方法。
(20)あるページの共用状況を決定するステップをさらに具備し、前記決定ステップが、
ルックアップ・テーブル内のルックアサイド・マスクに複数のビットが設定されているかどうかを判定するステップと、
前記ルックアサイド・マスクに複数のビットが設定されていると判定された場合に、前記テーブル内の読取り/書込みマスク・フィールドに何らかのビットが設定されているかどうかを判定するステップと、
前記読取り/書込みマスクに何らかのビットが設定されていると判定された場合に、前記状況を「共用書込み」に設定するステップと、
前記読取り/書込みマスクにいずれのビットも設定されていないと判定された場合に、前記状況を「共用読取り」に設定するステップとを具備する、上記(14)に記載の方法。
(21)前記決定ステップが、
前記ルックアサイド・マスクに複数のビットが設定されていないと判定された場合に、前記読取り/書込みマスクに何らかのビットが設定されているかどうかを判定するステップと、
前記読取り/書込みマスクにビットが設定されていると判定された場合に、前記状況を「排他書込み」に設定するステップとをさらに具備する、上記(19)に記載の方法。
(22)前記決定ステップが、
前記読取り/書込みマスクにいずれのビットも設定されていないと判定された場合に、前記状況を「排他読取り」に設定するステップをさらに具備する、上記(21)に記載の方法。
(23)複数の命令を一度に1つずつエミュレートするときに、順次整合性を保証するステップをさらに具備する、上記(14)に記載の方法。
(24)マルチプロセッシング・システムにおけるメモリ整合性を保証する方法において、
命令がロードまたはストアであるかどうかを判定するステップと、
前記命令がロードまたはストアであると判定された場合に、前記命令のアドレスを解明し、前記アドレスがローカル・ルックアサイド・バッファ(LLB)に記憶されているかどうかを判定するステップと、
前記アドレスが前記LLB内にある場合に、その位置が共用読取り状態になっているかどうかを判定するステップと、
前記位置が共用読取り状態になっていると判定された場合に、現行アドレスが書込みであるかどうかを判定するステップと、
前記現行アドレスが書込みではない場合に、前記命令のエミュレーションを実行するステップとを具備する方法。
(25)前記アドレスが前記LLBに記憶されていない場合に、LLBミスに関する手順を開始し、前記方法が、
前記現行アクセスが書込みであると判定された場合に、前記位置を共用書込みに設定し、前記命令をエミュレートし、メモリ・バリア命令をそこに置くステップをさらに具備する、上記(24)に記載の方法。
(26)前記位置が共用読取り状態になっていないと判定された場合に、前記位置が共用書込みであるかどうかを判定するステップと、
前記位置が共用書込み状態であると判定された場合に、前記命令をエミュレートし、前記メモリ・バリア命令をそこに置くステップとをさらに具備する、上記(25)に記載の方法。
(27)前記アドレスが共用書込みであるかどうかまたは前記命令が共用書込みになるかどうかを判定するステップと、
共用書込み命令および共用書込みになりうる命令に関するメモリ・バリア命令を置くステップとをさらに具備する、上記(24)に記載の方法。
(28)命令動作をリオーダして、メモリ・バリア命令の数を最小限にするステップをさらに具備する、上記(24)に記載の方法。
(29)前記リオーダが存在する場合でもエミュレーション中にメモリ動作において必要な整合性を維持するためのメモリ・オーダ・バッファ(MOB)を設けるステップをさらに具備する、上記(28)に記載の方法。
(30)複数命令のグループをまとめて変換すべきときに、前記変換の先頭にスタブ・コードを付加し、潜在的に前記グループ内の命令によって変更されるターゲット・プロセッサのすべてのレジスタを保管するステップと、
前記複数命令のグループ内の各ロードおよび各ストアを、一連のメモリ参照内のその位置を示すメモリ順序番号と、一連のストア参照サブセット内のその位置を示すストア順序番号に関連付けるステップとをさらに具備する、上記(28)に記載の方法。
(31)メモリ・オーダ・バッファ(MOB)テーブルを構築するステップであって、その各項目が、それがロードであるかまたはストアであるかの表示と、前記参照のアドレスと、前記参照の長さと、前記参照に関連する値とを含む、複数のフィールドを有するステップをさらに具備し、
前記テーブル内の項目の数がシーケンス内のメモリ参照の数に等しく、
共用メモリ・アクセスを前記MOBテーブルにマッピングするステップをさらに具備する、上記(30)に記載の方法。
(32)ストア参照の数と同数の項目を含むストア回復テーブル(SRT)を構築するステップであって、その各項目が、アドレス・フィールドと旧値フィールドとを含む複数のフィールドを含むステップをさらに具備し、
回復のためにストアが前記SRTに保管され、ある位置の現行値が間違っていると判定され、正しい値が必要であるときに、前記SRTがアクセスされ、
前記ストアのそれぞれを一度に1つずつ通ってループバックし、前記位置と、旧値が何であったかを決定し、前記旧値をそこに挿入することにより、前記SRTにより修正動作が実行される、上記(31)に記載の方法。
(33)マルチプロセッサ・システムにおいて複数命令のグループ内の整合性を維持するためのコードを挿入する方法において、
命令がロードまたはストアであるかどうかを判定するステップと、
前記命令がロードまたはストアであると判定された場合に、前記命令のアドレスを解明し、前記アドレスがローカル・ルックアサイド・バッファ(LLB)内にあるどうかを判定するステップと、
前記アドレスが前記LLB内にある場合に、その位置が共用読取り状態になっているかどうかを判定するステップと、
前記位置が共用読取り状態になっていると判定された場合に、現行アクセスが書込みであるかどうかを判定するステップと、
前記現行アクセスが書込みであると判定された場合に、前記位置を共用書込みに設定し、前記現行アクセスがロード命令であるかどうかを判定するステップと、
前記現行アクセスがロードであると判定された場合に、ロードを実行し、前記ロードがメモリ・オーダ・バッファ(MOB)テーブルにより満足されたかどうかを判定するステップと、
前記ロードが前記MOBテーブルにより満足されていない場合に、メモリ順序番号で索引が付けられた前記MOBテーブルに対応する項目を挿入するステップとを具備する方法。
(34)前記現行アクセスがロードではないと判定された場合に、メモリ順序番号によって索引が付けられた前記MOBテーブルに前記項目を挿入するステップをさらに具備する、上記(33)に記載の方法。
(35)前記位置が共用書込み状態ではないと判定された場合に、前記アクセスが書込みであるかどうかを判定するステップと、
前記アクセスが書込みではないと判定された場合に、前記命令をエミュレートするステップとをさらに具備する、上記(34)に記載の方法。
(36)前記アクセスが書込みであると判定された場合に、前記位置の旧値が読み取られ、ストアが実行され、ストア順序番号によって索引が付けられた記憶域参照テーブル(SRT)に前記旧値が挿入される、上記(35)に記載の方法。
(37)参照した位置に対応するページが「共用書込み」であるかどうかを判定し、そうである場合にスタブ・コードに分岐するステップをさらに具備し、
前記スタブ・コードが、前記メモリ参照の順序番号を使用してメモリ・オーダ・バッファ(MOB)に索引を付け、それがロードまたはストアであるかどうかと、前記メモリ参照のアドレスを記録し、
前記メモリ参照がストアである場合に、記憶すべき値が記録され、それがロードである場合に、前記ロードが実行され、ロードした値が記録される、上記(33)に記載の方法。
(38)ロードが変換時に前のストアのターゲットであった共用書込み位置に対するものであるときに、前記ロードが前記MOBからその内容を受け取り、前記ロードが前記MOBに記録されず、
前記参照が「共用書込み」位置に対するものではなく、それがストアである場合に、前記ストアが実行される前に、前記位置の旧値が読み取られ、前記SRTに記録される、上記(37)に記載の方法。
(39)複数命令のグループ実行の終了時に共用書込みをメモリにコミットする方法において、
変換の終了時に、あるブロックがアクセスした「共用書込み」位置への値をマルチプロセッサ・システムの他のどのプロセッサも変更していないことをチェックして保証するスタブ・コードを追加するステップを具備する方法。
(40)他のプロセッサによるアクセスから共用メモリ位置をロックするステップと、
各ロード位置を再ロードし、対応するメモリ・オーダ・バッファ(MOB)項目内に記憶された値と比較するステップとをさらに具備し、
すべての再ロードが元のロードと同じであると判明した場合に、前記MOBからのすべてのストアがメモリ内のそれぞれの実際の位置に対して行われる、上記(39)に記載の方法。
(41)ロード妥当性検査プロセス中に不一致が発生した場合に、すべてのレジスタをそれぞれの旧状態に復元し、ストア回復テーブル(SRT)内の操作をアンドゥすることによって非「共用書込み」位置に対して行った前記ストアを逆転することにより、前記グループの実行全体を取り消すステップをさらに具備する、上記(39)に記載の方法。
(42)前記システムを前に有効だった状態に戻した後、実行を再試行するステップをさらに具備する、上記(41)に記載の方法。
(43)共用メモリ位置へのアクセスをロックするステップと、
メモリ・オーダ・バッファ(MOB)内の第1の項目にポインタを設定し、前記MOBの終わりに達したかどうかを判定するステップと、
前記終わりに達していない場合に、前記MOB内のその項目が空であるかどうかを判定するステップと、
前記項目がロードではないと判定された場合に、前記MOBへのポインタを増分するステップとをさらに具備する、上記(39)に記載の方法。
(44)前記項目がロードであると判定された場合に、前記項目内のアドレスから前記項目を再ロードするステップと、
再ロードした値が前記項目内の値と一致するかどうかを判定するステップと、
前記値が一致した場合に、前記MOBへのポインタを増分するステップと、
前記値が一致しない場合に、前記ロックを解除し、前記状態を復元し、ストア回復テーブル(SRT)を使用して非共用書込みを復元することにより、前記グループの先頭まで回復を実行するステップとをさらに具備する、上記(43)に記載の方法。
(45)前記MOBの終わりに達している場合に、前記MOB内の前記第1の項目に前記ポインタを設定し、前記MOBの終わりに達したかどうかを判定するステップと、
前記終わりに達していない場合に、前記MOB内の前記項目が空であるかどうかを判定するステップと、
前記MOB内の前記項目がストアであるかどうかを判定するステップと、
前記項目がストアである場合に、前記値をメモリに書き込み、前記MOB内の前記ポインタを増分するステップとをさらに具備する、上記(44)に記載の方法。
(46)前記MOB内の前記項目がストアではない場合に、前記MOB内の前記ポインタが増分される、上記(45)に記載の方法。
(47)複数の命令を1つずつ処理するステップをさらに具備する、上記(39)に記載の方法。
(48)メモリ・オーダ・バッファ(MOB)とストア回復テーブル(SRT)とを使用することにより、複数命令のグループ内の命令を処理するステップをさらに具備する、上記(39)に記載の方法。
(49)共用マルチプロセッサ・システム用の記憶域参照テーブル(SRT)において、
ストア参照の数と同数の項目を含むテーブルを具備し、各項目が、アドレス・フィールドと、回復のために元の値を記憶するための旧値フィールドとを含む複数のフィールドを含み、
前記テーブルが前記項目の共用書込み状況に関する情報を記憶する、記憶域参照テーブル。
(50)共用マルチプロセッサ・システム用のメモリ・オーダ・バッファ(MOB)において、
現在参照中の位置に関する情報を共有することにより維持されるテーブルを具備し、
前記情報が、ある項目の特定の状態が共用書込み状態を具備するかどうかを区別する情報を含む、メモリ・オーダ・バッファ。
(51)前記テーブルが、ルックアサイド・マスク・フィールドと読取り/書込みマスク・フィールドとを含み、あるプロセッサが読取りモードまたは書込みモードのいずれでページにアクセスしているかに関する情報を含み、
前記テーブルが、妥当性/状況ビット・フィールドと、プロセスIDフィールドと、仮想アドレス・フィールドと、実アドレス・フィールドと、保護ビット・フィールドとをさらに含む、上記(50)に記載のMOB。
(52)マルチプロセッサ・システムにおけるエミュレーションのためのシステムにおいて、
前記マルチプロセッサ・システムのホスト・マルチプロセッシング・システムが弱い整合性モデルをサポートし、前記マルチプロセッサ・システムのターゲット・マルチプロセッシング・システムが強い整合性モデルをサポートするエミュレーションを実行するためのエミュレータを具備するシステム。
(53)マルチプロセッサ・システムにおけるエミュレーションの方法を実行するためにディジタル処理装置により実行可能な複数の機械可読命令からなるプログラムを具体的に実施する信号運搬媒体において、
前記マルチプロセッサ・システムのホスト・マルチプロセッシング・システムが弱い整合性モデルをサポートし、前記マルチプロセッサ・システムのターゲット・マルチプロセッシング・システムが強い整合性モデルをサポートするエミュレーションを実行するステップを具備する信号運搬媒体。
202、430B プロセッサ2
1418 I/Oアダプタ
1422 ユーザ・インタフェース・アダプタ
1434 通信アダプタ
1436 ディスプレイ・アダプタ
1439 プリンタ
Claims (53)
- マルチプロセッサ・システムにおけるエミュレーションの方法において、
前記マルチプロセッサ・システムのホスト・マルチプロセッシング・システムが弱い整合性モデルをサポートし、前記マルチプロセッサ・システムのターゲット・マルチプロセッシング・システムが強い整合性モデルをサポートするエミュレーションを実行するステップを具備する方法。 - あるページの共用状況を決定するステップをさらに具備し、前記決定ステップが、
ルックアップ・テーブル内のルックアサイド・マスクに複数のビットが設定されているかどうかを判定するステップと、
前記ルックアサイド・マスクに複数のビットが設定されていると判定された場合に、前記ルックアップ・テーブル内の読取り/書込みマスク・フィールドに何らかのビットが設定されているかどうかを判定するステップと、
前記読取り/書込みマスクに何らかのビットが設定されていると判定された場合に、前記状況を「共用書込み」に設定するステップと、
前記読取り/書込みマスクにいずれのビットも設定されていないと判定された場合に、前記状況を「共用読取り」に設定するステップとを具備する、請求項1に記載の方法。 - 前記決定ステップが、
前記ルックアサイド・マスクに複数のビットが設定されていないと判定された場合に、前記読取り/書込みマスクに何らかのビットが設定されているかどうかを判定するステップと、
前記読取り/書込みマスクにビットが設定されていると判定された場合に、前記状況を「排他書込み」に設定するステップとをさらに具備する、請求項2に記載の方法。 - 前記決定ステップが、
前記読取り/書込みマスクにいずれのビットも設定されていないと判定された場合に、前記状況を「排他読取り」に設定するステップをさらに具備する、請求項2に記載の方法。 - 現在参照中の位置に関する情報を共有することにより維持されるテーブルを設けるステップをさらに具備する、請求項1に記載の方法。
- 前記テーブルがルックアサイド・マスク・フィールドと読取り/書込みマスク・フィールドとを含み、あるプロセッサが読取りモードまたは書込みモードのいずれでページにアクセスしているかに関する情報を含む、請求項5に記載の方法。
- あるページをシステムに取り込んだときに、前記ページがどの状態を備えているかを決定するステップをさらに具備し、
前記ページが共用書込み状態を備えている場合、このような状態にフラグが立てられる、請求項6に記載の方法。 - 前記テーブルがルックアップ・テーブルを具備し、前記方法が、
あるページの共用状況を決定するステップをさらに具備し、前記決定ステップが、
前記ルックアップ・テーブル内の前記ルックアサイド・マスクに複数のビットが設定されているかどうかを判定するステップと、
前記ルックアサイド・マスクに複数のビットが設定されていると判定された場合に、前記テーブル内の読取り/書込みマスク・フィールドに何らかのビットが設定されているかどうかを判定するステップと、
前記読取り/書込みマスクに何らかのビットが設定されていると判定された場合に、前記状況を「共用書込み」に設定するステップと、
前記読取り/書込みマスクにいずれのビットも設定されていないと判定された場合に、前記状況を「共用読取り」に設定するステップとを具備する、請求項6に記載の方法。 - 前記決定ステップが、
前記ルックアサイド・マスクに複数のビットが設定されていないと判定された場合に、前記読取り/書込みマスクに何らかのビットが設定されているかどうかを判定するステップと、
前記読取り/書込みマスクにビットが設定されていると判定された場合に、前記状況を「排他書込み」に設定するステップと、
前記読取り/書込みマスクにいずれのビットも設定されていないと判定された場合に、前記状況を「排他読取り」に設定するステップと、
複数の命令を一度に1つずつエミュレートするときに、順次整合性を保証するステップとをさらに具備する、請求項8に記載の方法。 - ターゲット・マルチプロセッサ・コンピューティング・システムの挙動をエミュレートするためのエミュレータを含むマルチプロセッサ・コンピューティング・システムにおいて、前記ターゲット・マルチプロセッサ・コンピューティング・システムのメモリ整合性挙動をエミュレートするための方法において、
メモリ・アクションの前にメモリ・バリア命令を実行するステップであって、前記メモリ・バリア命令の実行前に実行されたメモリ・アクションの結果がホスト・コンピューティング・システム内のすべてのプロセッサによって入手されていることを前記メモリ・バリア命令が保証するステップを具備し、
前記マルチプロセッサ・コンピューティング・システムの前記ホスト・コンピューティング・システムが弱い整合性モデルをサポートし、前記マルチプロセッサ・コンピューティング・システムの前記ターゲット・マルチプロセッサ・システムが強い整合性モデルをサポートする方法。 - メモリ・アクションの前に実行されたメモリ・バリア命令が、特定の状態を有するものとして識別されたメモリ位置へのアクセスの直後に実行される、請求項10に記載の方法。
- 前記特定の状態が共用書込み状態を具備する、請求項11に記載の方法。
- 前記ターゲット・マルチプロセッサ・コンピューティング・システムからの複数命令のグループ内の命令がホストに変換されるときにリオーダされる場合に、メモリ整合性を保証するステップをさらに含む、請求項10に記載の方法。
- マルチプロセッサ・メモリ整合性の効率のよいエミュレーションのための方法において、
メモリ・バリア命令の実行前に実行されたメモリ・アクションがマルチプロセッサ・システムのホスト・コンピューティング・システム内のすべてのプロセッサによって登録されていることを保証するメモリ・バリア命令を形成するステップを具備し、
前記ホスト・コンピューティング・システムが緩やかな整合性モデルをサポートし、前記マルチプロセッサ・システムのターゲット・コンピューティング・システムが強い整合性モデルを指定する方法。 - 前記ホスト・コンピューティング・システムが、メモリ・コヒーレンスを備えた前記緩やかな整合性モデルをサポートする、請求項14に記載の方法。
- バリア命令後のすべてのメモリ動作が、すべてのプロセッサによって登録された前記バリア命令前のすべてのメモリ動作の後で実行されることを前記メモリ・バリア命令が保証する、請求項14に記載の方法。
- 前記ターゲット・コンピューティング・システムおよび前記ホスト・コンピューティング・システムにより現在参照中の位置に関する情報を共有することにより維持されるテーブルを設けるステップをさらに具備する、請求項14に記載の方法。
- 前記テーブルがルックアサイド・マスク・フィールドと読取り/書込みマスク・フィールドとを含み、あるプロセッサが読取りモードまたは書込みモードのいずれでページにアクセスしているかに関する情報を含む、請求項17に記載の方法。
- あるページをシステムに取り込んだときに、前記ページがどの状態を備えているかを決定するステップをさらに具備し、
前記ページが共用書込み状態を備えている場合、このような状態にフラグが立てられる、請求項14に記載の方法。 - あるページの共用状況を決定するステップをさらに具備し、前記決定ステップが、
ルックアップ・テーブル内のルックアサイド・マスクに複数のビットが設定されているかどうかを判定するステップと、
前記ルックアサイド・マスクに複数のビットが設定されていると判定された場合に、前記テーブル内の読取り/書込みマスク・フィールドに何らかのビットが設定されているかどうかを判定するステップと、
前記読取り/書込みマスクに何らかのビットが設定されていると判定された場合に、前記状況を「共用書込み」に設定するステップと、
前記読取り/書込みマスクにいずれのビットも設定されていないと判定された場合に、前記状況を「共用読取り」に設定するステップとを具備する、請求項14に記載の方法。 - 前記決定ステップが、
前記ルックアサイド・マスクに複数のビットが設定されていないと判定された場合に、前記読取り/書込みマスクに何らかのビットが設定されているかどうかを判定するステップと、
前記読取り/書込みマスクにビットが設定されていると判定された場合に、前記状況を「排他書込み」に設定するステップとをさらに具備する、請求項19に記載の方法。 - 前記決定ステップが、
前記読取り/書込みマスクにいずれのビットも設定されていないと判定された場合に、前記状況を「排他読取り」に設定するステップをさらに具備する、請求項21に記載の方法。 - 複数の命令を一度に1つずつエミュレートするときに、順次整合性を保証するステップをさらに具備する、請求項14に記載の方法。
- マルチプロセッシング・システムにおけるメモリ整合性を保証する方法において、
命令がロードまたはストアであるかどうかを判定するステップと、
前記命令がロードまたはストアであると判定された場合に、前記命令のアドレスを解明し、前記アドレスがローカル・ルックアサイド・バッファ(LLB)に記憶されているかどうかを判定するステップと、
前記アドレスが前記LLB内にある場合に、その位置が共用読取り状態になっているかどうかを判定するステップと、
前記位置が共用読取り状態になっていると判定された場合に、現行アドレスが書込みであるかどうかを判定するステップと、
前記現行アドレスが書込みではない場合に、前記命令のエミュレーションを実行するステップとを具備する方法。 - 前記アドレスが前記LLBに記憶されていない場合に、LLBミスに関する手順を開始し、前記方法が、
前記現行アクセスが書込みであると判定された場合に、前記位置を共用書込みに設定し、前記命令をエミュレートし、メモリ・バリア命令をそこに置くステップをさらに具備する、請求項24に記載の方法。 - 前記位置が共用読取り状態になっていないと判定された場合に、前記位置が共用書込みであるかどうかを判定するステップと、
前記位置が共用書込み状態であると判定された場合に、前記命令をエミュレートし、前記メモリ・バリア命令をそこに置くステップとをさらに具備する、請求項25に記載の方法。 - 前記アドレスが共用書込みであるかどうかまたは前記命令が共用書込みになるかどうかを判定するステップと、
共用書込み命令および共用書込みになりうる命令に関するメモリ・バリア命令を置くステップとをさらに具備する、請求項24に記載の方法。 - 命令動作をリオーダして、メモリ・バリア命令の数を最小限にするステップをさらに具備する、請求項24に記載の方法。
- 前記リオーダが存在する場合でもエミュレーション中にメモリ動作において必要な整合性を維持するためのメモリ・オーダ・バッファ(MOB)を設けるステップをさらに具備する、請求項28に記載の方法。
- 複数命令のグループをまとめて変換すべきときに、前記変換の先頭にスタブ・コードを付加し、潜在的に前記グループ内の命令によって変更されるターゲット・プロセッサのすべてのレジスタを保管するステップと、
前記複数命令のグループ内の各ロードおよび各ストアを、一連のメモリ参照内のその位置を示すメモリ順序番号と、一連のストア参照サブセット内のその位置を示すストア順序番号に関連付けるステップとをさらに具備する、請求項28に記載の方法。 - メモリ・オーダ・バッファ(MOB)テーブルを構築するステップであって、その各項目が、それがロードであるかまたはストアであるかの表示と、前記参照のアドレスと、前記参照の長さと、前記参照に関連する値とを含む、複数のフィールドを有するステップをさらに具備し、
前記テーブル内の項目の数がシーケンス内のメモリ参照の数に等しく、
共用メモリ・アクセスを前記MOBテーブルにマッピングするステップをさらに具備する、請求項30に記載の方法。 - ストア参照の数と同数の項目を含むストア回復テーブル(SRT)を構築するステップであって、その各項目が、アドレス・フィールドと旧値フィールドとを含む複数のフィールドを含むステップをさらに具備し、
回復のためにストアが前記SRTに保管され、ある位置の現行値が間違っていると判定され、正しい値が必要であるときに、前記SRTがアクセスされ、
前記ストアのそれぞれを一度に1つずつ通ってループバックし、前記位置と、旧値が何であったかを決定し、前記旧値をそこに挿入することにより、前記SRTにより修正動作が実行される、請求項31に記載の方法。 - マルチプロセッサ・システムにおいて複数命令のグループ内の整合性を維持するためのコードを挿入する方法において、
命令がロードまたはストアであるかどうかを判定するステップと、
前記命令がロードまたはストアであると判定された場合に、前記命令のアドレスを解明し、前記アドレスがローカル・ルックアサイド・バッファ(LLB)内にあるどうかを判定するステップと、
前記アドレスが前記LLB内にある場合に、その位置が共用読取り状態になっているかどうかを判定するステップと、
前記位置が共用読取り状態になっていると判定された場合に、現行アクセスが書込みであるかどうかを判定するステップと、
前記現行アクセスが書込みであると判定された場合に、前記位置を共用書込みに設定し、前記現行アクセスがロード命令であるかどうかを判定するステップと、
前記現行アクセスがロードであると判定された場合に、ロードを実行し、前記ロードがメモリ・オーダ・バッファ(MOB)テーブルにより満足されたかどうかを判定するステップと、
前記ロードが前記MOBテーブルにより満足されていない場合に、メモリ順序番号で索引が付けられた前記MOBテーブルに対応する項目を挿入するステップとを具備する方法。 - 前記現行アクセスがロードではないと判定された場合に、メモリ順序番号によって索引が付けられた前記MOBテーブルに前記項目を挿入するステップをさらに具備する、請求項33に記載の方法。
- 前記位置が共用書込み状態ではないと判定された場合に、前記アクセスが書込みであるかどうかを判定するステップと、
前記アクセスが書込みではないと判定された場合に、前記命令をエミュレートするステップとをさらに具備する、請求項34に記載の方法。 - 前記アクセスが書込みであると判定された場合に、前記位置の旧値が読み取られ、ストアが実行され、ストア順序番号によって索引が付けられた記憶域参照テーブル(SRT)に前記旧値が挿入される、請求項35に記載の方法。
- 参照した位置に対応するページが「共用書込み」であるかどうかを判定し、そうである場合にスタブ・コードに分岐するステップをさらに具備し、
前記スタブ・コードが、前記メモリ参照の順序番号を使用してメモリ・オーダ・バッファ(MOB)に索引を付け、それがロードまたはストアであるかどうかと、前記メモリ参照のアドレスを記録し、
前記メモリ参照がストアである場合に、記憶すべき値が記録され、それがロードである場合に、前記ロードが実行され、ロードした値が記録される、請求項33に記載の方法。 - ロードが変換時に前のストアのターゲットであった共用書込み位置に対するものであるときに、前記ロードが前記MOBからその内容を受け取り、前記ロードが前記MOBに記録されず、
前記参照が「共用書込み」位置に対するものではなく、それがストアである場合に、前記ストアが実行される前に、前記位置の旧値が読み取られ、前記SRTに記録される、請求項37に記載の方法。 - 複数命令のグループ実行の終了時に共用書込みをメモリにコミットする方法において、
変換の終了時に、あるブロックがアクセスした「共用書込み」位置への値をマルチプロセッサ・システムの他のどのプロセッサも変更していないことをチェックして保証するスタブ・コードを追加するステップを具備する方法。 - 他のプロセッサによるアクセスから共用メモリ位置をロックするステップと、
各ロード位置を再ロードし、対応するメモリ・オーダ・バッファ(MOB)項目内に記憶された値と比較するステップとをさらに具備し、
すべての再ロードが元のロードと同じであると判明した場合に、前記MOBからのすべてのストアがメモリ内のそれぞれの実際の位置に対して行われる、請求項39に記載の方法。 - ロード妥当性検査プロセス中に不一致が発生した場合に、すべてのレジスタをそれぞれの旧状態に復元し、ストア回復テーブル(SRT)内の操作をアンドゥすることによって非「共用書込み」位置に対して行った前記ストアを逆転することにより、前記グループの実行全体を取り消すステップをさらに具備する、請求項39に記載の方法。
- 前記システムを前に有効だった状態に戻した後、実行を再試行するステップをさらに具備する、請求項41に記載の方法。
- 共用メモリ位置へのアクセスをロックするステップと、
メモリ・オーダ・バッファ(MOB)内の第1の項目にポインタを設定し、前記MOBの終わりに達したかどうかを判定するステップと、
前記終わりに達していない場合に、前記MOB内のその項目が空であるかどうかを判定するステップと、
前記項目がロードではないと判定された場合に、前記MOBへのポインタを増分するステップとをさらに具備する、請求項39に記載の方法。 - 前記項目がロードであると判定された場合に、前記項目内のアドレスから前記項目を再ロードするステップと、
再ロードした値が前記項目内の値と一致するかどうかを判定するステップと、
前記値が一致した場合に、前記MOBへのポインタを増分するステップと、
前記値が一致しない場合に、前記ロックを解除し、前記状態を復元し、ストア回復テーブル(SRT)を使用して非共用書込みを復元することにより、前記グループの先頭まで回復を実行するステップとをさらに具備する、請求項43に記載の方法。 - 前記MOBの終わりに達している場合に、前記MOB内の前記第1の項目に前記ポインタを設定し、前記MOBの終わりに達したかどうかを判定するステップと、
前記終わりに達していない場合に、前記MOB内の前記項目が空であるかどうかを判定するステップと、
前記MOB内の前記項目がストアであるかどうかを判定するステップと、
前記項目がストアである場合に、前記値をメモリに書き込み、前記MOB内の前記ポインタを増分するステップとをさらに具備する、請求項44に記載の方法。 - 前記MOB内の前記項目がストアではない場合に、前記MOB内の前記ポインタが増分される、請求項45に記載の方法。
- 複数の命令を1つずつ処理するステップをさらに具備する、請求項39に記載の方法。
- メモリ・オーダ・バッファ(MOB)とストア回復テーブル(SRT)とを使用することにより、複数命令のグループ内の命令を処理するステップをさらに具備する、請求項39に記載の方法。
- 共用マルチプロセッサ・システム用の記憶域参照テーブル(SRT)において、
ストア参照の数と同数の項目を含むテーブルを具備し、各項目が、アドレス・フィールドと、回復のために元の値を記憶するための旧値フィールドとを含む複数のフィールドを含み、
前記テーブルが前記項目の共用書込み状況に関する情報を記憶する、記憶域参照テーブル。 - 共用マルチプロセッサ・システム用のメモリ・オーダ・バッファ(MOB)において、
現在参照中の位置に関する情報を共有することにより維持されるテーブルを具備し、
前記情報が、ある項目の特定の状態が共用書込み状態を具備するかどうかを区別する情報を含む、メモリ・オーダ・バッファ。 - 前記テーブルが、ルックアサイド・マスク・フィールドと読取り/書込みマスク・フィールドとを含み、あるプロセッサが読取りモードまたは書込みモードのいずれでページにアクセスしているかに関する情報を含み、
前記テーブルが、妥当性/状況ビット・フィールドと、プロセスIDフィールドと、仮想アドレス・フィールドと、実アドレス・フィールドと、保護ビット・フィールドとをさらに含む、請求項50に記載のMOB。 - マルチプロセッサ・システムにおけるエミュレーションのためのシステムにおいて、
前記マルチプロセッサ・システムのホスト・マルチプロセッシング・システムが弱い整合性モデルをサポートし、前記マルチプロセッサ・システムのターゲット・マルチプロセッシング・システムが強い整合性モデルをサポートするエミュレーションを実行するためのエミュレータを具備するシステム。 - マルチプロセッサ・システムにおけるエミュレーションの方法を実行するためにディジタル処理装置により実行可能な複数の機械可読命令からなるプログラムを具体的に実施する信号運搬媒体において、
前記マルチプロセッサ・システムのホスト・マルチプロセッシング・システムが弱い整合性モデルをサポートし、前記マルチプロセッサ・システムのターゲット・マルチプロセッシング・システムが強い整合性モデルをサポートするエミュレーションを実行するステップを具備する信号運搬媒体。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/244,434 US9043194B2 (en) | 2002-09-17 | 2002-09-17 | Method and system for efficient emulation of multiprocessor memory consistency |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006281049A Division JP4658894B2 (ja) | 2002-09-17 | 2006-10-16 | マルチプロセッサ・メモリ整合性の効率のよいエミュレーションのための方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004110811A true JP2004110811A (ja) | 2004-04-08 |
JP3980538B2 JP3980538B2 (ja) | 2007-09-26 |
Family
ID=32092308
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003302164A Expired - Fee Related JP3980538B2 (ja) | 2002-09-17 | 2003-08-26 | マルチプロセッシング・システムにおけるメモリ整合性を保証する方法、マルチプロセッサ・システムにおいて複数命令のグループ内の整合性を維持するためのコードを挿入する方法、複数命令のグループ実行の終了時に共用書込みをメモリにコミットする方法 |
JP2006281049A Expired - Fee Related JP4658894B2 (ja) | 2002-09-17 | 2006-10-16 | マルチプロセッサ・メモリ整合性の効率のよいエミュレーションのための方法 |
JP2010087222A Expired - Fee Related JP5116794B2 (ja) | 2002-09-17 | 2010-04-05 | マルチプロセッサ・メモリ整合性の効率のよいエミュレーションのための方法 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006281049A Expired - Fee Related JP4658894B2 (ja) | 2002-09-17 | 2006-10-16 | マルチプロセッサ・メモリ整合性の効率のよいエミュレーションのための方法 |
JP2010087222A Expired - Fee Related JP5116794B2 (ja) | 2002-09-17 | 2010-04-05 | マルチプロセッサ・メモリ整合性の効率のよいエミュレーションのための方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9043194B2 (ja) |
JP (3) | JP3980538B2 (ja) |
CN (1) | CN100495342C (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010510599A (ja) * | 2006-11-22 | 2010-04-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・コンピューティング・システムでのメモリ一貫性保護 |
JP2010524054A (ja) * | 2007-03-30 | 2010-07-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | エミュレートされた処理環境でメモリ・アクセスを管理する方法、システム、およびそのためのコンピュータ・プログラム |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070198816A1 (en) * | 2005-11-10 | 2007-08-23 | Chuan-Po Ling | Emulation system for a single-chip multiple-microcontroller and emulation method thereof |
US7596781B2 (en) | 2006-10-16 | 2009-09-29 | International Business Machines Corporation | Register-based instruction optimization for facilitating efficient emulation of an instruction stream |
US8155207B2 (en) * | 2008-01-09 | 2012-04-10 | Cisco Technology, Inc. | Processing and managing pictures at the concatenation of two video streams |
US8873932B2 (en) | 2007-12-11 | 2014-10-28 | Cisco Technology, Inc. | Inferential processing to ascertain plural levels of picture interdependencies |
US8875199B2 (en) * | 2006-11-13 | 2014-10-28 | Cisco Technology, Inc. | Indicating picture usefulness for playback optimization |
US8416859B2 (en) * | 2006-11-13 | 2013-04-09 | Cisco Technology, Inc. | Signalling and extraction in compressed video of pictures belonging to interdependency tiers |
US7685381B2 (en) * | 2007-03-01 | 2010-03-23 | International Business Machines Corporation | Employing a data structure of readily accessible units of memory to facilitate memory access |
US8958486B2 (en) * | 2007-07-31 | 2015-02-17 | Cisco Technology, Inc. | Simultaneous processing of media and redundancy streams for mitigating impairments |
US8804845B2 (en) * | 2007-07-31 | 2014-08-12 | Cisco Technology, Inc. | Non-enhancing media redundancy coding for mitigating transmission impairments |
WO2009052262A2 (en) * | 2007-10-16 | 2009-04-23 | Cisco Technology, Inc. | Conveyance of concatenation properties and picture orderness in a video stream |
US8416858B2 (en) * | 2008-02-29 | 2013-04-09 | Cisco Technology, Inc. | Signalling picture encoding schemes and associated picture properties |
CN101572598B (zh) * | 2008-04-28 | 2013-03-06 | 国际商业机器公司 | 用于可靠的快速集成的方法和装置 |
US8886022B2 (en) | 2008-06-12 | 2014-11-11 | Cisco Technology, Inc. | Picture interdependencies signals in context of MMCO to assist stream manipulation |
US8699578B2 (en) | 2008-06-17 | 2014-04-15 | Cisco Technology, Inc. | Methods and systems for processing multi-latticed video streams |
US8971402B2 (en) | 2008-06-17 | 2015-03-03 | Cisco Technology, Inc. | Processing of impaired and incomplete multi-latticed video streams |
US8705631B2 (en) * | 2008-06-17 | 2014-04-22 | Cisco Technology, Inc. | Time-shifted transport of multi-latticed video for resiliency from burst-error effects |
EP2297964A4 (en) * | 2008-06-25 | 2017-01-18 | Cisco Technology, Inc. | Support for blocking trick mode operations |
JP2010102623A (ja) * | 2008-10-27 | 2010-05-06 | Nec Electronics Corp | キャッシュメモリ及びその制御方法 |
US8681876B2 (en) * | 2008-11-12 | 2014-03-25 | Cisco Technology, Inc. | Targeted bit appropriations based on picture importance |
US8326131B2 (en) * | 2009-02-20 | 2012-12-04 | Cisco Technology, Inc. | Signalling of decodable sub-sequences |
US20100218232A1 (en) * | 2009-02-25 | 2010-08-26 | Cisco Technology, Inc. | Signalling of auxiliary information that assists processing of video according to various formats |
US8782261B1 (en) | 2009-04-03 | 2014-07-15 | Cisco Technology, Inc. | System and method for authorization of segment boundary notifications |
US8949883B2 (en) | 2009-05-12 | 2015-02-03 | Cisco Technology, Inc. | Signalling buffer characteristics for splicing operations of video streams |
US8279926B2 (en) | 2009-06-18 | 2012-10-02 | Cisco Technology, Inc. | Dynamic streaming with latticed representations of video |
CN102597972B (zh) * | 2010-05-24 | 2016-06-08 | 松下电器(美国)知识产权公司 | 虚拟计算机系统、区域管理方法 |
CA2867302A1 (en) | 2012-03-14 | 2013-09-19 | Convergent .Io Technologies Inc. | Systems, methods and devices for management of virtual memory systems |
CN102866957B (zh) * | 2012-07-31 | 2014-07-30 | 中国人民解放军国防科学技术大学 | 面向多核多线程微处理器的虚拟活跃页缓冲方法及装置 |
CN103365776B (zh) * | 2013-06-28 | 2016-04-13 | 中国科学院计算技术研究所 | 基于确定性重放的并行系统弱一致性的验证方法和系统 |
US10073902B2 (en) | 2014-09-24 | 2018-09-11 | Microsoft Technology Licensing, Llc | Snapshot and replication of a multi-stream application on multiple hosts at near-sync frequency |
GB2533414B (en) * | 2014-12-19 | 2021-12-01 | Advanced Risc Mach Ltd | Apparatus with shared transactional processing resource, and data processing method |
CN106155853B (zh) * | 2015-03-23 | 2018-09-14 | 龙芯中科技术有限公司 | 处理器ip的验证方法、装置和系统 |
US9619396B2 (en) * | 2015-03-27 | 2017-04-11 | Intel Corporation | Two level memory full line writes |
KR102509988B1 (ko) | 2015-12-15 | 2023-03-14 | 삼성전자주식회사 | 커넥션 기반 로드 밸런싱을 위한 저장 시스템 및 방법 |
KR102457183B1 (ko) * | 2016-01-05 | 2022-10-21 | 한국전자통신연구원 | 공유 번역 블록 캐시 기반의 멀티-코어 시뮬레이션 시스템 및 방법 |
CN114217809B (zh) * | 2021-04-14 | 2024-04-30 | 无锡江南计算技术研究所 | 一种无横向一致性的众核精简Cache协议实现方法 |
Family Cites Families (88)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4392196A (en) | 1980-08-11 | 1983-07-05 | Harris Corporation | Multi-processor time alignment control system |
US4564903A (en) * | 1983-10-05 | 1986-01-14 | International Business Machines Corporation | Partitioned multiprocessor programming system |
JPS63226740A (ja) | 1986-12-08 | 1988-09-21 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | マルチプロセツサ・コンピユータ・システムの並列シミユレーシヨン方法 |
US5055999A (en) * | 1987-12-22 | 1991-10-08 | Kendall Square Research Corporation | Multiprocessor digital data processing system |
US5155809A (en) * | 1989-05-17 | 1992-10-13 | International Business Machines Corp. | Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware |
US6920416B1 (en) * | 1989-08-28 | 2005-07-19 | Texas Instruments Incorporated | Electronic systems testing employing embedded serial scan generator |
US5307477A (en) * | 1989-12-01 | 1994-04-26 | Mips Computer Systems, Inc. | Two-level cache memory system |
US5179702A (en) * | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
JP2839201B2 (ja) * | 1990-07-30 | 1998-12-16 | 株式会社日立製作所 | 仮想計算機システム |
EP0550286A3 (en) * | 1992-01-03 | 1993-11-03 | Amdahl Corp | 2-level multi-processor synchronization protocol |
US5675762A (en) * | 1992-04-03 | 1997-10-07 | International Business Machines Corporation | System for locking down part of portion of memory and updating page directory with entry corresponding to part of portion of the memory locked down |
JPH0784883A (ja) * | 1993-09-17 | 1995-03-31 | Hitachi Ltd | 仮想計算機システムのアドレス変換バッファパージ方法 |
US5392408A (en) * | 1993-09-20 | 1995-02-21 | Apple Computer, Inc. | Address selective emulation routine pointer address mapping system |
US5983012A (en) * | 1993-09-28 | 1999-11-09 | Bull Hn Information Systems Inc. | Executing programs of a first system on a second system |
US5581705A (en) | 1993-12-13 | 1996-12-03 | Cray Research, Inc. | Messaging facility with hardware tail pointer and software implemented head pointer message queue for distributed memory massively parallel processing system |
US5481684A (en) * | 1994-01-11 | 1996-01-02 | Exponential Technology, Inc. | Emulating operating system calls in an alternate instruction set using a modified code segment descriptor |
US5440710A (en) * | 1994-03-08 | 1995-08-08 | Exponential Technology, Inc. | Emulation of segment bounds checking using paging with sub-page validity |
US5692193A (en) | 1994-03-31 | 1997-11-25 | Nec Research Institute, Inc. | Software architecture for control of highly parallel computer systems |
US5574922A (en) * | 1994-06-17 | 1996-11-12 | Apple Computer, Inc. | Processor with sequences of processor instructions for locked memory updates |
JPH0887424A (ja) | 1994-09-16 | 1996-04-02 | Toshiba Corp | 電子計算機 |
US5699538A (en) | 1994-12-09 | 1997-12-16 | International Business Machines Corporation | Efficient firm consistency support mechanisms in an out-of-order execution superscaler multiprocessor |
US5692153A (en) | 1995-03-16 | 1997-11-25 | International Business Machines Corporation | Method and system for verifying execution order within a multiprocessor data processing system |
US5751982A (en) * | 1995-03-31 | 1998-05-12 | Apple Computer, Inc. | Software emulation system with dynamic translation of emulated instructions for increased processing speed |
US5655100A (en) * | 1995-03-31 | 1997-08-05 | Sun Microsystems, Inc. | Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system |
US5619665A (en) * | 1995-04-13 | 1997-04-08 | Intrnational Business Machines Corporation | Method and apparatus for the transparent emulation of an existing instruction-set architecture by an arbitrary underlying instruction-set architecture |
US5678032A (en) * | 1995-09-06 | 1997-10-14 | Bull Hn Information Systems Inc. | Method of optimizing the execution of program instuctions by an emulator using a plurality of execution units |
US6047323A (en) * | 1995-10-19 | 2000-04-04 | Hewlett-Packard Company | Creation and migration of distributed streams in clusters of networked computers |
US6091897A (en) * | 1996-01-29 | 2000-07-18 | Digital Equipment Corporation | Fast translation and execution of a computer program on a non-native architecture by use of background translator |
US5768593A (en) * | 1996-03-22 | 1998-06-16 | Connectix Corporation | Dynamic cross-compilation system and method |
US6031992A (en) * | 1996-07-05 | 2000-02-29 | Transmeta Corporation | Combining hardware and software to provide an improved microprocessor |
US5761734A (en) * | 1996-08-13 | 1998-06-02 | International Business Machines Corporation | Token-based serialisation of instructions in a multiprocessor system |
US5832205A (en) * | 1996-08-20 | 1998-11-03 | Transmeta Corporation | Memory controller for a microprocessor for detecting a failure of speculation on the physical nature of a component being addressed |
US6075938A (en) * | 1997-06-10 | 2000-06-13 | The Board Of Trustees Of The Leland Stanford Junior University | Virtual machine monitors for scalable multiprocessors |
US6134515A (en) * | 1997-06-13 | 2000-10-17 | Telefonaktiebolaget Lm Ericsson | Controlling a first type telecommunications switch upon translating instructions for a second type telecommunications switch |
CA2283772C (en) | 1997-07-11 | 2002-10-15 | Transmeta Corporation | Host microprocessor with apparatus for temporarily holding target processor state |
JP3675623B2 (ja) | 1997-10-31 | 2005-07-27 | 株式会社東芝 | プログラム開発支援装置及び方法並びにプログラム開発支援用ソフトウェアを記録した記録媒体 |
US6381682B2 (en) * | 1998-06-10 | 2002-04-30 | Compaq Information Technologies Group, L.P. | Method and apparatus for dynamically sharing memory in a multiprocessor system |
JP2002505471A (ja) | 1998-02-26 | 2002-02-19 | サンマイクロシステムズ インコーポレーテッド | 遠隔処理の中断および継続の方法と装置 |
US6289419B1 (en) * | 1998-03-06 | 2001-09-11 | Sharp Kabushiki Kaisha | Consistency control device merging updated memory blocks |
JPH11259437A (ja) | 1998-03-12 | 1999-09-24 | Hitachi Ltd | 不要バリア命令の削減方式 |
US6075937A (en) * | 1998-03-18 | 2000-06-13 | International Business Machines Corporation | Preprocessing of stored target routines for controlling emulation of incompatible instructions on a target processor and utilizing target processor feedback for controlling non-sequential incompatible instruction emulation |
US6189141B1 (en) * | 1998-05-04 | 2001-02-13 | Hewlett-Packard Company | Control path evaluating trace designator with dynamically adjustable thresholds for activation of tracing for high (hot) activity and low (cold) activity of flow control |
US6240490B1 (en) * | 1998-07-20 | 2001-05-29 | International Business Machines Corporation | Comprehensive multilevel cache preloading mechanism in a multiprocessing simulation environment |
US6158049A (en) * | 1998-08-11 | 2000-12-05 | Compaq Computer Corporation | User transparent mechanism for profile feedback optimization |
US6289369B1 (en) * | 1998-08-25 | 2001-09-11 | International Business Machines Corporation | Affinity, locality, and load balancing in scheduling user program-level threads for execution by a computer system |
US6738974B1 (en) * | 1998-09-10 | 2004-05-18 | International Business Machines Corporation | Apparatus and method for system resource object deallocation in a multi-threaded environment |
US6430657B1 (en) * | 1998-10-12 | 2002-08-06 | Institute For The Development Of Emerging Architecture L.L.C. | Computer system that provides atomicity by using a tlb to indicate whether an exportable instruction should be executed using cache coherency or by exporting the exportable instruction, and emulates instructions specifying a bus lock |
US6463582B1 (en) * | 1998-10-21 | 2002-10-08 | Fujitsu Limited | Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method |
EP0997815A3 (en) * | 1998-10-29 | 2004-05-26 | Texas Instruments Incorporated | Interactive translation system and method |
US6351844B1 (en) * | 1998-11-05 | 2002-02-26 | Hewlett-Packard Company | Method for selecting active code traces for translation in a caching dynamic translator |
GB9825102D0 (en) * | 1998-11-16 | 1999-01-13 | Insignia Solutions Plc | Computer system |
US6339752B1 (en) * | 1998-12-15 | 2002-01-15 | Bull Hn Information Systems Inc. | Processor emulation instruction counter virtual memory address translation |
US7065633B1 (en) * | 1999-01-28 | 2006-06-20 | Ati International Srl | System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU |
US6826748B1 (en) * | 1999-01-28 | 2004-11-30 | Ati International Srl | Profiling program execution into registers of a computer |
US7941647B2 (en) * | 1999-01-28 | 2011-05-10 | Ati Technologies Ulc | Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination |
US8121828B2 (en) * | 1999-01-28 | 2012-02-21 | Ati Technologies Ulc | Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions |
US6341371B1 (en) * | 1999-02-23 | 2002-01-22 | International Business Machines Corporation | System and method for optimizing program execution in a computer system |
US6470492B2 (en) * | 1999-05-14 | 2002-10-22 | Hewlett-Packard Company | Low overhead speculative selection of hot traces in a caching dynamic translator |
US6529862B1 (en) * | 1999-06-30 | 2003-03-04 | Bull Hn Information Systems Inc. | Method and apparatus for dynamic management of translated code blocks in dynamic object code translation |
US6263302B1 (en) | 1999-10-29 | 2001-07-17 | Vast Systems Technology Corporation | Hardware and software co-simulation including simulating the cache of a target processor |
US6345351B1 (en) * | 1999-11-12 | 2002-02-05 | Telefonaktiebolaget Lm Ericsson(Publ) | Maintenance of speculative state of parallel executed jobs in an information processing system |
US6986128B2 (en) | 2000-01-07 | 2006-01-10 | Sony Computer Entertainment Inc. | Multiple stage program recompiler and method |
US6934832B1 (en) * | 2000-01-18 | 2005-08-23 | Ati International Srl | Exception mechanism for a computer |
US6587964B1 (en) * | 2000-02-18 | 2003-07-01 | Hewlett-Packard Development Company, L.P. | Transparent software emulation as an alternative to hardware bus lock |
JP2001249824A (ja) * | 2000-03-02 | 2001-09-14 | Hitachi Ltd | 論理エミュレーションプロセッサおよびそのモジュールユニット |
US6978233B1 (en) * | 2000-03-03 | 2005-12-20 | Unisys Corporation | Method for emulating multi-processor environment |
US6539464B1 (en) * | 2000-04-08 | 2003-03-25 | Radoslav Nenkov Getov | Memory allocator for multithread environment |
US6480845B1 (en) * | 2000-06-14 | 2002-11-12 | Bull Hn Information Systems Inc. | Method and data processing system for emulating virtual memory working spaces |
US6763328B1 (en) * | 2000-06-15 | 2004-07-13 | Bull Hn Information Systems Inc. | Method and data processing system for emulating virtual memory utilizing threads |
US6931636B2 (en) | 2000-08-08 | 2005-08-16 | Texas Instruments Incorporated | Multiprocessor emulation support using dynamic linking |
US6883165B1 (en) * | 2000-09-28 | 2005-04-19 | International Business Machines Corporation | Apparatus and method for avoiding deadlocks in a multithreaded environment |
US20020069402A1 (en) * | 2000-10-05 | 2002-06-06 | Nevill Edward Colles | Scheduling control within a system having mixed hardware and software based instruction execution |
US6993754B2 (en) * | 2001-11-13 | 2006-01-31 | Hewlett-Packard Development Company, L.P. | Annotations to executable images for improved dynamic optimization functions |
US7085705B2 (en) * | 2000-12-21 | 2006-08-01 | Microsoft Corporation | System and method for the logical substitution of processor control in an emulated computing environment |
US6728846B2 (en) * | 2000-12-22 | 2004-04-27 | Bull Hn Information Systems Inc. | Method and data processing system for performing atomic multiple word writes |
US6728858B2 (en) * | 2001-03-30 | 2004-04-27 | Intel Corporation | Method and apparatus including heuristic for sharing TLB entries |
JP2002312180A (ja) * | 2001-04-11 | 2002-10-25 | Hitachi Ltd | 動的命令変換機能を有するプロセッサシステム、該プロセッサシステムを備えたコンピュータにて実行されるバイナリートランスレーションプログラム及びそのプロセッサシステムを実装した半導体デバイス |
GB2376099B (en) * | 2001-05-31 | 2005-11-16 | Advanced Risc Mach Ltd | Program instruction interpretation |
US7047521B2 (en) * | 2001-06-07 | 2006-05-16 | Lynoxworks, Inc. | Dynamic instrumentation event trace system and methods |
TW499049U (en) * | 2001-08-03 | 2002-08-11 | Hon Hai Prec Ind Co Ltd | Light source assembly |
US6915513B2 (en) * | 2001-11-29 | 2005-07-05 | Hewlett-Packard Development Company, L.P. | System and method for dynamically replacing code |
US6961806B1 (en) * | 2001-12-10 | 2005-11-01 | Vmware, Inc. | System and method for detecting access to shared structures and for maintaining coherence of derived structures in virtualized multiprocessor systems |
US20030171907A1 (en) * | 2002-03-06 | 2003-09-11 | Shay Gal-On | Methods and Apparatus for Optimizing Applications on Configurable Processors |
US20030182653A1 (en) * | 2002-03-22 | 2003-09-25 | Giuseppe Desoli | Systems and methods for verifying correct execution of emulated code via dynamic state verification |
US7107585B2 (en) * | 2002-07-29 | 2006-09-12 | Arm Limited | Compilation of application code in a data processing apparatus |
JP2006520034A (ja) * | 2003-02-20 | 2006-08-31 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 一連のコンピュータ命令の変換 |
US7093231B2 (en) * | 2003-05-06 | 2006-08-15 | David H. Alderson | Grammer for regular expressions |
US7735073B1 (en) * | 2004-02-28 | 2010-06-08 | Oracle International Corporation | Method and apparatus for data object profiling |
-
2002
- 2002-09-17 US US10/244,434 patent/US9043194B2/en not_active Expired - Fee Related
-
2003
- 2003-08-26 JP JP2003302164A patent/JP3980538B2/ja not_active Expired - Fee Related
- 2003-09-09 CN CNB031570208A patent/CN100495342C/zh not_active Expired - Fee Related
-
2006
- 2006-10-16 JP JP2006281049A patent/JP4658894B2/ja not_active Expired - Fee Related
-
2010
- 2010-04-05 JP JP2010087222A patent/JP5116794B2/ja not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010510599A (ja) * | 2006-11-22 | 2010-04-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・コンピューティング・システムでのメモリ一貫性保護 |
JP2010524054A (ja) * | 2007-03-30 | 2010-07-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | エミュレートされた処理環境でメモリ・アクセスを管理する方法、システム、およびそのためのコンピュータ・プログラム |
JP4738548B2 (ja) * | 2007-03-30 | 2011-08-03 | インターナショナル・ビジネス・マシーンズ・コーポレーション | エミュレートされた処理環境でメモリ・アクセスを管理する方法、システム、およびそのためのコンピュータ・プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP4658894B2 (ja) | 2011-03-23 |
JP5116794B2 (ja) | 2013-01-09 |
JP2007042134A (ja) | 2007-02-15 |
JP3980538B2 (ja) | 2007-09-26 |
JP2010182331A (ja) | 2010-08-19 |
US20040078186A1 (en) | 2004-04-22 |
CN1492324A (zh) | 2004-04-28 |
CN100495342C (zh) | 2009-06-03 |
US9043194B2 (en) | 2015-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5116794B2 (ja) | マルチプロセッサ・メモリ整合性の効率のよいエミュレーションのための方法 | |
US6006033A (en) | Method and system for reordering the instructions of a computer program to optimize its execution | |
Adve et al. | Shared memory consistency models: A tutorial | |
KR100334479B1 (ko) | 컴퓨터 처리 시스템에서 로드 동작의 순서 변경 방법 및 장치 | |
Wood et al. | An in-cache address translation mechanism | |
US8868837B2 (en) | Cache directory lookup reader set encoding for partial cache line speculation support | |
US7844802B2 (en) | Instructions for ordering execution in pipelined processes | |
US20090217020A1 (en) | Commit Groups for Strand-Based Computing | |
JPS6337432A (ja) | 関数言語を持つ並列処理システムおよび方法 | |
JP2575598B2 (ja) | マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム | |
US20030028757A1 (en) | Concurrent modification and execution of instructions | |
JP2951580B2 (ja) | 非プログラム順序の命令実行をサポートする方法及びデータ処理システム | |
Bila et al. | Modularising verification of durable opacity | |
Kristien et al. | Fast and correct load-link/store-conditional instruction handling in DBT systems | |
US11960922B2 (en) | System, apparatus and method for user space object coherency in a processor | |
US8417508B2 (en) | Multiprocessor development environment | |
JPH02214937A (ja) | データ処理装置 | |
Sun et al. | Using execution graphs to model a prefetch and write buffers and its application to the Bostan MPPA | |
Degenbaev et al. | Pervasive theory of memory | |
Papadimitriou et al. | Exploring thread-level speculation in software: The effects of memory access tracking granularity | |
Nagarajan et al. | Introduction to Consistency and Coherence | |
Wu et al. | Rapid transaction-undo recovery using twin-page storage management | |
JPH04340145A (ja) | キャッシュメモリ装置 | |
Bruner | The S-1 AAP architecture | |
Sanchez | CS 752 Project proposal Improving the performance and hardware requirements of LogTM-SE |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051006 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051101 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20060123 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20060126 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060424 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060718 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061016 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061205 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070301 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070306 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070528 |
|
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: 20070619 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070627 |
|
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: 20100706 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110706 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110706 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120706 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130706 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |