JP5583409B2 - マルチプロセッサ・コンピューティング・システムでのメモリ一貫性保護 - Google Patents
マルチプロセッサ・コンピューティング・システムでのメモリ一貫性保護 Download PDFInfo
- Publication number
- JP5583409B2 JP5583409B2 JP2009537704A JP2009537704A JP5583409B2 JP 5583409 B2 JP5583409 B2 JP 5583409B2 JP 2009537704 A JP2009537704 A JP 2009537704A JP 2009537704 A JP2009537704 A JP 2009537704A JP 5583409 B2 JP5583409 B2 JP 5583409B2
- Authority
- JP
- Japan
- Prior art keywords
- target code
- memory
- address space
- target
- virtual address
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- 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]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- 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/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
まず、図示と説明の簡単さとのために、図3に、対象コードの別々の部分170a、170b(SC1およびSC2)を実行し、メモリ・サブシステム(MS)8内に格納されたデータにアクセスする複数のプロセッサ3a、3bを有するマルチプロセッサ対象コンピューティング・システム1を示す。
int a=*area1
第2プロセッサ13bは、ターゲット・コードの第2部分21bを実行し、この第2部分21bは、2つのメモリ位置に格納された値を変更する命令を含む。
*area2=1
直観的に、我々は、現在変数「a」に値「1」がセットされていなければならないと期待する。実際に、強く順序付けされたシーケンシャルに一貫したシステムでは、これが真になるはずである。しかし、メモリ一貫性エラーが生じ、その代わりに変数「a」に「0」がセットされる場合がある。このエラーは、2つの通常の理由から生じ得る。第1に、緩和されたストア順序付けは、第2のストア(*area2=1)が第1のストア(*area1=1)の前にメモリに達することを可能にする場合がある。その後、第1プロセッサ13aは、*area1の古い値を読み取ることができる。第2に、緩和されたロード順序付けは、投機的に実行されるロードを含むロードが、第1プロセッサ13a内の命令パイプライン内で順序外れで発行されることを可能にする。この場合に、第1プロセッサ13aが、*area2が変化するのを待っている間に、*area1の値が、既に投機的にロードされ、テストが成功したならば再ロードされない。これは、第2プロセッサ13bからのストアが正しく順序付けられる場合であっても、第1プロセッサ13aが、それでも、更新された値を異なる順序で読み取る可能性があることを意味する。
isync
int a=*area1
第2プロセッサ13bについて、シリアライゼーション命令SYNCが挿入され、その結果、ターゲット・コード21bは、次のようになる。
sync
*area2=1
ここで、メモリ一貫性エラーに対する保護を提供するもう1つの機構に移ると、一部のターゲット・コンピューティング・システムは、ページ・テーブル属性の操作を可能にする。特定の例として、IBM POWERアーキテクチャは、メモリ18のある種の区域を、キャッシング禁止とキャッシュ保護(以下ではストア順序付けされると呼ぶ)との両方として指定することを可能にする。別々のストア命令が、メモリのそのような保護された区域にアクセスする場合に、それらのストアは、プログラムによって指定される順序で実行される。便利なことに、メモリの一部のページは、ストア順序付けされるものとしてマークされ、メモリの他のページは、ストア順序付けされないものとしてマークされる。ストア順序付けされたページは、ターゲット・マシンのデフォルト・メモリ一貫性モデルとは異なるメモリ一貫性モデルをアサートするのに使用することができる。しかし、そのようなストア順序付けされたページへのアクセスは、ストア順序付けされないページへのアクセスと比較して、通常、性能ペナルティをこうむる。
r31=0x00000001 00000000;このVASRの64ビット・ベース・アドレス
add r3,r31,r6;アドレスをr3に組み合わせる
lwz r5,0(r3);r3の組み合わされたアドレスを使用してメモリにアクセスする
さらに、ASAU 196は、ターゲット・コード部分21a内のある種の命令に、割り振られたVASR 181のうちの異なる1つを参照するように指示するように構成される。具体的に言うと、共有メモリへのアクセスに関するある種の命令が、共有メモリ区域用に予約されたVASR 181dに向けられる。
図8の例は、対象コード・ブロック171および対応するターゲット・コード・ブロック211を示す。ターゲット・コード・ブロック211の実行中のある点で、例外が、共有メモリ区域に関して発生し、上で述べたように、メモリ一貫性を保護するためにASAU 196、SMDU 197、およびMPU 198と協力して例外ハンドラ195によってアクションが行われる。図8の例では、例外は、このブロックの実行の途中の命令部分に関して生じ、したがって、ブロック211は、例示のために半分に分割されており、ここで、上半分は、既に実行された命令を表し、下半分の残りは、まだ実行を開始されていない。ここで、メモリ保護機能は、まず、現在のブロック211の実行を完了することを試み、オン・ザ・フライでメモリ一貫性を保護する手段が講じられる。その後、適切な確立した状態を達成したとき、ターゲット・コードのこのブロックの将来の実行で例外を防ぐことを目指してブロック211全体を再生成するなど、より長期の変更が、ターゲット・コードに対して行われる。
1つの例示的実施形態(図8で丸に囲まれた1によってマークされる)では、ターゲット・コード21は、たとえばストアの各対の間など、適切な同期化ポイントでnull動作を含むように生成される。IBM POWER ISAのNOP命令などのこれらのnull動作は、プロセッサに特定の個数のクロック・サイクルの間に何も行わせないこと以外に何の効果も有しておらず、したがって、プレースホルダとして使用するのに便利である。null動作は、今や、アクティブ・シリアライゼーション命令(たとえば、SYNCおよびISYNC)に置換されて、ターゲット・コードにメモリ一貫性セーフティ・ネットを適用する。また、コードは、上で述べたように共有VASR 181dを参照するように変更される。したがって、この実施形態は、少なくとも部分的に、ブロック211の非実行部分を将来の実行の準備ができた状態に変更する。
呼出し側>memcopy>メモリ
は、
呼出し側1(プライベート)>memcopy_private>プライベート・メモリ
呼出し側2(共有)>memcopy_shared>共有メモリ
になる。
ステップ901で、第1および第2のコード部分を別々の仮想アドレス空間領域内で実行する。たとえば、第1および第2のターゲット・コード部分21a、21bが、それぞれ別個のオーバーラップしない第1および第2の仮想アドレス空間領域181a、181bに関して実行される。
Claims (25)
- 対象プログラム・コードがトランスレータによって変換されたターゲット・コードを実行するためのマルチプロセッサ・コンピューティング・システムであって、
少なくとも第1ターゲット・コード部分と第2ターゲット・コード部分とを含む複数のターゲット・コード部分を格納するメモリと、
前記メモリ内に格納された前記複数のターゲット・コード部分を実行する複数のターゲット・プロセッサであって、前記マルチプロセッサ・コンピューティング・システムの第1ターゲット・プロセッサが前記第1ターゲット・コード部分を実行し、且つ、前記マルチプロセッサ・コンピューティング・システムの第2ターゲット・プロセッサが前記第2ターゲット・コード部分を実行する、前記ターゲット・プロセッサと、
前記複数のターゲット・プロセッサによる前記複数のターゲット・コード部分の実行を制御するコントローラ・ユニットと
を備えており、
前記コントローラ・ユニットが、
前記メモリをアドレッシングするのに使用される仮想アドレス空間を複数の仮想アドレス空間領域に分割し、且つ前記複数のターゲット・コード部分の実行を制御して、最初に第1のメモリ一貫性モデルに従って前記複数の仮想アドレス空間領域を介して前記メモリにアクセスするアドレス空間割振りユニットと、
前記第1ターゲット・コード部分と少なくとも前記第2ターゲット・コード部分とによってアクセス可能な前記メモリ内の共有メモリ区域に対して前記第1ターゲット・コード部分を実行する際に生成されるメモリ・アクセス要求を検出し、且つ前記共有メモリ区域にアクセスする前記第1ターゲット・コード部分内の少なくとも1つの命令のグループを識別する共有メモリ検出ユニットと、
前記共有メモリ検出ユニットが前記命令のグループを識別することに応じて、メモリ一貫性保護を適用して、前記第1ターゲット・コード部分内の前記識別された命令のグループを実行する際に前記検出された共有メモリ区域へのアクセスに関して第2のメモリ一貫性モデルの下で実行するメモリ保護ユニットと
を含む、前記マルチプロセッサ・コンピューティング・システム。 - 前記コントローラ・ユニットが、前記メモリへのアクセスを順序付けるために、前記第1のメモリ一貫性モデルの下で実行する前記第1および第2のターゲット・コード部分を生成し、
前記メモリ保護ユニットが、前記メモリ一貫性保護を適用することによって、前記第1ターゲット・コード部分内の前記識別された命令のグループが前記共有メモリ区域にアクセスする際に前記第2のメモリ一貫性モデルの下で実行される、
請求項1に記載のマルチプロセッサ・コンピューティング・システム。 - 前記アドレス空間割振りユニットが、前記複数の仮想アドレス空間領域のうちの第1仮想アドレス空間領域を前記第1ターゲット・コード部分の実行に割り振り、前記複数の仮想アドレス空間領域のうちの異なる第2仮想アドレス空間領域を前記第2ターゲット・コード部分の実行に割り振る、請求項1に記載のマルチプロセッサ・コンピューティング・システム。
- 前記仮想アドレス空間が、前記マルチプロセッサ・コンピューティング・システム内における前記コントローラ・ユニットおよび前記複数のターゲット・コード部分の実行のために提供され、
前記アドレス空間割振りユニットが、前記コントローラ・ユニットおよび前記複数のターゲット・コード部分の実行のために提供された前記仮想アドレス空間を前記複数の仮想アドレス空間領域に分割する、
請求項1に記載のマルチプロセッサ・コンピューティング・システム。 - 前記アドレス空間割振りユニットが、2nビット(nは、正の整数)のサイズを有する前記仮想アドレス空間を、各々2nビット未満のサイズを有する前記複数の仮想アドレス空間領域に分割する、請求項1に記載のマルチプロセッサ・コンピューティング・システム。
- 前記アドレス空間割振りユニットが、264ビットのサイズを有する前記仮想アドレス空間を、各々232ビットのサイズを有する前記複数の仮想アドレス空間領域に分割する、請求項1に記載のマルチプロセッサ・コンピューティング・システム。
- 前記アドレス空間割振りユニットが、前記複数の仮想アドレス空間領域のそれぞれで前記第1および第2のターゲット・コード部分を実行させる、請求項1に記載のマルチプロセッサ・コンピューティング・システム。
- 前記アドレス空間割振りユニットが、前記複数の仮想アドレス空間領域のそれぞれの所定のベース・アドレスを前記ターゲット・コードの実行時に決定される前記仮想アドレス空間領域内のオフセットと組み合わせることによって、メモリ・アクセスを実行するための前記第1および第2のターゲット・コード部分をそれぞれ生成する、請求項1に記載のマルチプロセッサ・コンピューティング・システム。
- 前記アドレス空間割振りユニットが、少なくとも1つの共有仮想アドレス空間領域と少なくとも1つのプライベート仮想アドレス空間領域とを含む前記複数の仮想アドレス空間領域を提供し、かつ、
前記アドレス空間割振りユニットが、前記複数のターゲット・プロセッサの少なくとも第1および第2のレジスタを参照するターゲット・コード命令を有する少なくとも前記第1ターゲット・コード部分を生成し、
前記第1レジスタが、前記プライベート仮想アドレス空間領域の第1ベース・アドレスを格納し、前記第2レジスタが、前記共有仮想アドレス空間領域の第2ベース・アドレスを格納し、
前記第1ターゲット・コード部分内の少なくとも1つのターゲット・コード命令のグループが、前記第1ベース・レジスタ内に格納された前記第1ベース・アドレスを参照して前記プライベート仮想アドレス空間領域に対して前記メモリにアクセスし、かつ、前記第1ターゲット・コード部分内の少なくとも1つのターゲット・コード命令のグループが、前記第2ベース・レジスタ内に格納された前記第2ベース・アドレスを参照して前記共有仮想アドレス空間領域に対して前記メモリにアクセスする、
請求項1に記載のマルチプロセッサ・コンピューティング・システム。 - 前記共有メモリ検出ユニットが、前記複数のターゲット・プロセッサのそれぞれのターゲット・プロセッサでの実行中に前記第1ターゲット・コード部分によって実行され、共有メモリ区域のマッピングを明示的に要求するメモリ・マッピング・システム呼出しをインターセプトすることによって明示的に共有されるメモリ区域に関する要求を検出し、かつ、
前記共有メモリ検出ユニットが、前記要求された明示的に共有されるメモリ区域を前記複数の仮想アドレス空間領域の中の共有仮想アドレス空間領域にマッピングし、前記明示的に共有されるメモリ区域を表すために前記第1ターゲット・コード部分に割り振られた前記仮想アドレス空間領域のプライベート仮想アドレス空間領域内のポインタを返す、
請求項1に記載のマルチプロセッサ・コンピューティング・システム。 - 前記共有メモリ保護ユニットが、それぞれのターゲット・プロセッサ上での実行中に前記第1ターゲット・コード部分によって実行され、前記第1ターゲット・コード部分の実行から複製される前記第2ターゲット・コード部分の実行の開始を要求するクローンタイプ・システム呼出しをインターセプトすることによってプライベート・メモリ区域の間接的な共有を検出し、
前記アドレス空間割振りユニットが、前記第1ターゲット・コード部分に割り振られた第1仮想アドレス空間領域とは異なる第2仮想アドレス空間領域を前記第2ターゲット・コード部分に割り振る、
請求項1に記載のマルチプロセッサ・コンピューティング・システム。 - 前記複数の仮想アドレス空間領域のうちの第1仮想アドレス空間領域内でマッピングされていない区域へのアクセスを試みる前記第1ターゲット・コード部分内の命令内のフォールト・メモリ・アクセスに応答して生成される例外シグナルを受け取る例外ハンドラをさらに備えており、
前記共有メモリ検出ユニットは、前記フォールト・メモリ・アクセスが前記第2ターゲット・コード部分に関する前記複数の仮想アドレス空間領域のうちの第2仮想アドレス空間領域内にマッピングされるメモリ区域にアクセスする試みであることを前記例外シグナルに応答して判定し、前記メモリ区域を共有メモリ区域として共有仮想アドレス空間領域にマッピングし、
前記アドレス空間割振りユニットが、前記第1ターゲット・コード部分内の前記識別された命令のグループにより、前記共有仮想アドレス空間領域に対して前記共有メモリ空間にアクセスし、
前記メモリ保護ユニットが、前記識別された命令のグループによる前記共有メモリ区域へのアクセスに関してメモリ一貫性保護を適用する、
請求項1に記載のマルチプロセッサ・コンピューティング・システム。 - 前記共有メモリ検出ユニットが、前記複数の仮想アドレス空間領域のそれぞれにマッピングされるメモリ区域のマップを記録し、フォールト・メモリ・アクセスが前記複数の仮想アドレス空間領域のうちの1つまたは複数に既にマッピングされているメモリ区域にアクセスする試みであるかどうかを前記マップを参照して判定する、請求項1に記載のマルチプロセッサ・コンピューティング・システム。
- 前記第1および第2のターゲット・コード部分のそれぞれが、複数の命令のブロックに分割され、1つのブロックが、前記コントローラ・ユニットによって処理される最小コード単位であり、
前記メモリ保護ユニットは、例外シグナルが現在のブロックの実行途中で生成されるとき、前記現在のブロックの1つまたは複数の残りの命令にメモリ一貫性保護を適用しながら前記残りの命令の実行を完了させ、
前記コントローラ・ユニットが、前記ブロック全体にメモリ一貫性保護を適用するために前記現在のブロックを再生成する、
請求項1に記載のマルチプロセッサ・コンピューティング・システム。 - 前記メモリ保護ユニットが、前記メモリ内の1つまたは複数のメモリ・ページがキャッシュ禁止とキャッシュ保護との両方になるように前記メモリに関連するページ・テーブル内の属性を操作することによって、前記1つまたは複数のメモリ・ページをストア順序付けするべくマークする、
請求項1に記載のマルチプロセッサ・コンピューティング・システム。 - 前記コントローラ・ユニットが、バイナリ実行可能形式の対象コードをバイナリ実行可能形式の前記ターゲット・コード部分に変換する、請求項1に記載のマルチプロセッサ・コンピューティング・システム。
- 前記コントローラ・ユニットが、バイナリ実行可能形式の対象コードを、前記ターゲット・コードの実行に動的にインターリーブされるバイナリ実行可能形式の前記ターゲット・コード部分に変換する、請求項1に記載のマルチプロセッサ・コンピューティング・システム。
- 前記コントローラ・ユニットが、対象コードを前記複数のターゲット・コード部分に変換することによって前記対象コードをデバッグする、請求項1に記載のマルチプロセッサ・コンピューティング・システム。
- 前記コントローラ・ユニットが、バイナリ実行可能形式の対象コードを前記ターゲット・コード部分の実行中に動的にバイナリ実行可能形式の前記ターゲット・コード部分に変換することによって前記対象コードをデバッグする、請求項1に記載のマルチプロセッサ・コンピューティング・システム。
- 対象プログラム・コードがトランスレータによって変換されたターゲット・コードを実行するためのマルチプロセッサ・コンピューティング・システムでメモリ一貫性を保護する方法であって、前記マルチプロセッサ・コンピューティング・システムが、
第1のメモリ一貫性モデルの下で第1ターゲット・コード部分及び前記第2ターゲット・コード部分を実行する工程であって、前記実行する工程が、第1仮想アドレス空間領域に関して前記マルチプロセッサ・コンピューティング・システムの第1ターゲット・プロセッサ上で前記第1ターゲット・コード部分を実行すること、および第2仮想アドレス空間領域に関して前記マルチプロセッサ・コンピューティング・システムの第2ターゲット・プロセッサ上で前記第2ターゲット・コード部分を実行することを含み、前記第1および第2の仮想アドレス空間領域が、別々でかつオーバーラップしていない、前記実行する工程と、
前記第1ターゲット・コード部分と少なくとも第2ターゲット・コード部分との両方によってアクセス可能な、メモリ内の共有メモリ区域を検出する工程であって、前記第2仮想アドレス空間領域内でマッピングされてはいないが前記第1仮想アドレス空間領域内でマッピングされた区域であるメモリ区域への前記第2ターゲット・コード部分によるアクセス要求を検出することによって、前記第2ターゲット・コード部分が共有メモリ区域へのアクセスを試みようとしていることを検出することを含む、前記検出する工程と、
前記検出された共有メモリ区域にアクセスする前記第1ターゲット・コード部分内の少なくとも1つの命令のグループを識別する工程であって、前記検出された共有メモリ区域にアクセスする前記第2ターゲット・コード部分内の命令のグループを識別する工程を含む、前記識別する工程と、
前記命令のグループを識別することに応じて、メモリ一貫性保護を適用して、前記第1ターゲット・コード部分内の前記識別された命令のグループを実行する際に前記検出された共有メモリ区域へのアクセスに関して第2のメモリ一貫性モデルの下で実行する工程であって、前記適用することが、前記第2ターゲット・コード部分内の前記命令のグループが前記第2のメモリ一貫性モデルを実行する形で前記検出された共有メモリ区域にアクセスするように、前記メモリ一貫性保護を選択的に適用することを含む、前記実行する工程と
を実行する、前記方法。 - 前記第2のメモリ一貫性モデルが、前記第1のメモリ一貫性モデルよりも強いメモリ・アクセス順序付け制約を有する、請求項20に記載の方法。
- 前記マルチプロセッサ・コンピューティング・システムが、
前記第1ターゲット・コード部分を複数のブロックに分割する工程をさらに実行し、
前記適用する工程が、前記検出された共有メモリ区域にアクセスする前記命令を含む前記第1ターゲット・コード部分の前記ブロックだけに前記メモリ一貫性保護を選択的に適用することを含む、
請求項20に記載の方法。 - 前記実行する工程が、前記マルチプロセッサ・コンピューティング・システムのデフォルト・メモリ一貫性モデルとしての前記第1のメモリ一貫性モデルの下で前記第1ターゲット・コード部分および前記第2ターゲット・コード部分を実行することを含み、
前記検出する工程が、前記第1ターゲット・コード部分と前記第2ターゲット・コード部分との両方からアクセス可能な明示的に共有されるメモリ区域を起動する要求を検出することを含み、
前記適用する工程が、前記第1ターゲット・コード部分および前記第2ターゲット・コード部分のうちの選択された部分だけが、前記明示的に共有されるメモリ区域へのアクセスを異なる第2のメモリ一貫性モデルの下で実行するように、前記メモリ一貫性保護を適用することを含む、
請求項20に記載の方法。 - 前記マルチプロセッサ・コンピューティング・システムが、
前記第1および第2の仮想アドレス空間領域に対して別々でかつオーバーラップしていない第3仮想アドレス空間領域に、前記第1仮想アドレス空間領域から前記マッピングされた区域を再マッピングする工程と、
前記アクセス要求を含む前記第2ターゲット・コード部分内の少なくとも選択された命令のブロックを変更して、所定のメモリ順序付け制約の下で前記ブロックに実行させる前記メモリ一貫性保護を適用し、前記第3仮想アドレス空間領域内でマッピングされる共有メモリ区域にアクセスするように前記選択されたブロックに指示する工程と
をさらに実行する、請求項20に記載の方法。 - コンピュータ・プログラムであって、マルチプロセッサ・コンピューティング・システムに、請求項20〜24のいずれか1項に記載の方法の各ステップを実行させる、前記コンピュータ・プログラム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB0623276.3A GB0623276D0 (en) | 2006-11-22 | 2006-11-22 | Memory consistency protection in a multiprocessor computing system |
GB0623276.3 | 2006-11-22 | ||
US87983407P | 2007-01-11 | 2007-01-11 | |
US60/879,834 | 2007-01-11 | ||
PCT/GB2007/050700 WO2008062225A1 (en) | 2006-11-22 | 2007-11-20 | Memory consistency protection in a multiprocessor computing system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010510599A JP2010510599A (ja) | 2010-04-02 |
JP5583409B2 true JP5583409B2 (ja) | 2014-09-03 |
Family
ID=37636310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009537704A Expired - Fee Related JP5583409B2 (ja) | 2006-11-22 | 2007-11-20 | マルチプロセッサ・コンピューティング・システムでのメモリ一貫性保護 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7895407B2 (ja) |
EP (1) | EP2097817A1 (ja) |
JP (1) | JP5583409B2 (ja) |
KR (1) | KR101244014B1 (ja) |
CN (1) | CN101542441B (ja) |
GB (2) | GB0623276D0 (ja) |
TW (1) | TWI403898B (ja) |
WO (1) | WO2008062225A1 (ja) |
Families Citing this family (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8695000B1 (en) * | 2007-03-16 | 2014-04-08 | The Mathworks, Inc. | Data transfer protection in a multi-tasking modeling environment having a protection mechanism selected by user via user interface |
US7657695B1 (en) * | 2007-05-30 | 2010-02-02 | Paravirtual Corporation | Efficient processing of memory accesses to virtual hardware using runtime code patching |
US8893126B2 (en) * | 2008-02-01 | 2014-11-18 | International Business Machines Corporation | Binding a process to a special purpose processing element having characteristics of a processor |
GB2457341B (en) * | 2008-02-14 | 2010-07-21 | Transitive Ltd | Multiprocessor computing system with multi-mode memory consistency protection |
US8006055B2 (en) * | 2008-03-04 | 2011-08-23 | Microsoft Corporation | Fine granularity hierarchiacal memory protection |
JP5115332B2 (ja) * | 2008-05-22 | 2013-01-09 | 富士通株式会社 | エミュレーションプログラム、エミュレーション装置およびエミュレーション方法 |
US8607344B1 (en) * | 2008-07-24 | 2013-12-10 | Mcafee, Inc. | System, method, and computer program product for initiating a security action at an intermediate layer coupled between a library and an application |
GB0813833D0 (en) * | 2008-07-29 | 2008-09-03 | Transitive Ltd | Apparatus and method for handling page protection faults in a computing system |
US9026424B1 (en) * | 2008-10-27 | 2015-05-05 | Juniper Networks, Inc. | Emulation of multiple instruction sets |
US7613850B1 (en) | 2008-12-23 | 2009-11-03 | International Business Machines Corporation | System and method utilizing programmable ordering relation for direct memory access |
WO2010099529A1 (en) * | 2009-02-27 | 2010-09-02 | Keicy Chung | Central processing unit capable of multi-boot using disjoint memory spaces |
US20110066897A1 (en) * | 2009-09-11 | 2011-03-17 | William Bumgarner | Methods and apparatuses for determining permanent memory growth |
US20110119469A1 (en) | 2009-11-13 | 2011-05-19 | International Business Machines Corporation | Balancing workload in a multiprocessor system responsive to programmable adjustments in a syncronization instruction |
US8418156B2 (en) * | 2009-12-16 | 2013-04-09 | Intel Corporation | Two-stage commit (TSC) region for dynamic binary optimization in X86 |
KR101490468B1 (ko) * | 2010-02-04 | 2015-02-06 | 삼성전자 주식회사 | 데이터 처리 장치 및 방법 |
EP2581832A4 (en) * | 2010-06-08 | 2013-08-07 | Fujitsu Ltd | DEVICE, METHOD, AND PROGRAM FOR CONTROLLING ACCESS TO MEMORY, MULTI-HEART PROCESSOR SYSTEM |
US8954697B2 (en) * | 2010-08-05 | 2015-02-10 | Red Hat, Inc. | Access to shared memory segments by multiple application processes |
CN102135894B (zh) | 2010-10-13 | 2015-11-25 | 华为技术有限公司 | 一种多核在线补丁方法和装置 |
US10366100B2 (en) | 2012-07-26 | 2019-07-30 | Mongodb, Inc. | Aggregation framework system architecture and method |
US10740353B2 (en) | 2010-12-23 | 2020-08-11 | Mongodb, Inc. | Systems and methods for managing distributed database deployments |
US10346430B2 (en) | 2010-12-23 | 2019-07-09 | Mongodb, Inc. | System and method for determining consensus within a distributed database |
US9881034B2 (en) | 2015-12-15 | 2018-01-30 | Mongodb, Inc. | Systems and methods for automating management of distributed databases |
US10713280B2 (en) | 2010-12-23 | 2020-07-14 | Mongodb, Inc. | Systems and methods for managing distributed database deployments |
US11544288B2 (en) | 2010-12-23 | 2023-01-03 | Mongodb, Inc. | Systems and methods for managing distributed database deployments |
US8996463B2 (en) | 2012-07-26 | 2015-03-31 | Mongodb, Inc. | Aggregation framework system architecture and method |
US10262050B2 (en) | 2015-09-25 | 2019-04-16 | Mongodb, Inc. | Distributed database systems and methods with pluggable storage engines |
US10997211B2 (en) | 2010-12-23 | 2021-05-04 | Mongodb, Inc. | Systems and methods for database zone sharding and API integration |
US9805108B2 (en) | 2010-12-23 | 2017-10-31 | Mongodb, Inc. | Large distributed database clustering systems and methods |
US9740762B2 (en) | 2011-04-01 | 2017-08-22 | Mongodb, Inc. | System and method for optimizing data migration in a partitioned database |
US11615115B2 (en) | 2010-12-23 | 2023-03-28 | Mongodb, Inc. | Systems and methods for managing distributed database deployments |
US10614098B2 (en) | 2010-12-23 | 2020-04-07 | Mongodb, Inc. | System and method for determining consensus within a distributed database |
US10977277B2 (en) | 2010-12-23 | 2021-04-13 | Mongodb, Inc. | Systems and methods for database zone sharding and API integration |
US8572031B2 (en) | 2010-12-23 | 2013-10-29 | Mongodb, Inc. | Method and apparatus for maintaining replica sets |
CN102073533B (zh) * | 2011-01-14 | 2013-06-19 | 中国人民解放军国防科学技术大学 | 支持动态二进制翻译的多核体系结构 |
WO2012101538A1 (en) * | 2011-01-26 | 2012-08-02 | International Business Machines Corporation | Emulation of strongly ordered memory models |
JP5967073B2 (ja) * | 2011-02-21 | 2016-08-10 | 富士通株式会社 | プロセッサ管理方法 |
US8850417B2 (en) | 2011-04-15 | 2014-09-30 | International Business Machines Corporation | Method and framework for invisible code rewriting |
US9015027B2 (en) | 2011-04-21 | 2015-04-21 | International Business Machines Corporation | Fast emulation of virtually addressed control flow |
WO2012167533A1 (zh) * | 2011-10-31 | 2012-12-13 | 华为技术有限公司 | 一种构建内存访问模型的方法及装置 |
US20140068247A1 (en) * | 2011-12-12 | 2014-03-06 | Moose Loop Holdings, LLC | Security device access |
US8935513B2 (en) * | 2012-02-08 | 2015-01-13 | International Business Machines Corporation | Processor performance improvement for instruction sequences that include barrier instructions |
KR102040160B1 (ko) * | 2012-02-29 | 2019-11-04 | 삼성전자주식회사 | 대칭 멀티스레딩 환경의 공유 데이터 동기화를 위한 결합 락 할당 및 참조 |
GB2500707B (en) | 2012-03-30 | 2014-09-17 | Cognovo Ltd | Multiprocessor system, apparatus and methods |
WO2014002162A1 (ja) * | 2012-06-25 | 2014-01-03 | 富士通株式会社 | ストレージ制御装置、情報処理装置、ストレージ制御プログラム、及びストレージ制御方法 |
US10872095B2 (en) | 2012-07-26 | 2020-12-22 | Mongodb, Inc. | Aggregation framework system architecture and method |
US11403317B2 (en) | 2012-07-26 | 2022-08-02 | Mongodb, Inc. | Aggregation framework system architecture and method |
US11544284B2 (en) | 2012-07-26 | 2023-01-03 | Mongodb, Inc. | Aggregation framework system architecture and method |
US9304924B2 (en) * | 2012-08-17 | 2016-04-05 | Futurewei Technologies, Inc. | Cache coherent handshake protocol for in-order and out-of-order networks |
EP2951705A4 (en) * | 2013-01-29 | 2016-11-02 | Hewlett Packard Development Co | ASSIGNING PROCESSORS TO MEMORY TOPOGRAPHY CONFIGURATION |
WO2015016926A1 (en) * | 2013-07-31 | 2015-02-05 | Hewlett-Packard Development Company, L.P. | Versioned memory implementation |
US9336413B2 (en) * | 2013-11-22 | 2016-05-10 | Oracle International Corporation | Method and system for fast permission changes for virtual addresses |
US9413765B2 (en) * | 2014-03-25 | 2016-08-09 | Intel Corporation | Multinode hubs for trusted computing |
US20150370707A1 (en) * | 2014-06-24 | 2015-12-24 | Qualcomm Incorporated | Disunited shared-information and private-information caches |
GB2532777B (en) | 2014-11-28 | 2021-07-07 | Advanced Risc Mach Ltd | System error handling in a data processing apparatus |
US10055209B2 (en) * | 2015-01-12 | 2018-08-21 | Red Hat, Inc. | Resource closing |
US9886210B2 (en) * | 2015-06-09 | 2018-02-06 | Ultrata, Llc | Infinite memory fabric hardware implementation with router |
US10713275B2 (en) | 2015-07-02 | 2020-07-14 | Mongodb, Inc. | System and method for augmenting consensus election in a distributed database |
US11977891B2 (en) | 2015-09-19 | 2024-05-07 | Microsoft Technology Licensing, Llc | Implicit program order |
US11681531B2 (en) | 2015-09-19 | 2023-06-20 | Microsoft Technology Licensing, Llc | Generation and use of memory access instruction order encodings |
US10846411B2 (en) | 2015-09-25 | 2020-11-24 | Mongodb, Inc. | Distributed database systems and methods with encrypted storage engines |
US10673623B2 (en) | 2015-09-25 | 2020-06-02 | Mongodb, Inc. | Systems and methods for hierarchical key management in encrypted distributed databases |
US10423626B2 (en) | 2015-09-25 | 2019-09-24 | Mongodb, Inc. | Systems and methods for data conversion and comparison |
US10394822B2 (en) | 2015-09-25 | 2019-08-27 | Mongodb, Inc. | Systems and methods for data conversion and comparison |
US9514083B1 (en) * | 2015-12-07 | 2016-12-06 | International Business Machines Corporation | Topology specific replicated bus unit addressing in a data processing system |
WO2017155523A1 (en) * | 2016-03-09 | 2017-09-14 | Hewlett Packard Enterprise Development Lp | Server virtual address space |
US10671496B2 (en) | 2016-05-31 | 2020-06-02 | Mongodb, Inc. | Method and apparatus for reading and writing committed data |
US10776220B2 (en) | 2016-06-27 | 2020-09-15 | Mongodb, Inc. | Systems and methods for monitoring distributed database deployments |
US11442760B2 (en) * | 2016-07-01 | 2022-09-13 | Intel Corporation | Aperture access processors, methods, systems, and instructions |
US10380342B2 (en) * | 2016-07-29 | 2019-08-13 | Qualcomm Incorporated | Kernel-based detection of target application functionality using virtual address mapping |
US9852202B1 (en) * | 2016-09-23 | 2017-12-26 | International Business Machines Corporation | Bandwidth-reduced coherency communication |
US10235202B2 (en) | 2016-11-08 | 2019-03-19 | International Business Machines Corporation | Thread interrupt offload re-prioritization |
US10423446B2 (en) | 2016-11-28 | 2019-09-24 | Arm Limited | Data processing |
US10552212B2 (en) * | 2016-11-28 | 2020-02-04 | Arm Limited | Data processing |
US10671426B2 (en) | 2016-11-28 | 2020-06-02 | Arm Limited | Data processing |
US10262144B2 (en) | 2016-12-15 | 2019-04-16 | International Business Machines Corporation | Verifying proper operation of the instruction execution protection architecture |
US10474469B2 (en) * | 2017-04-12 | 2019-11-12 | Arm Limited | Apparatus and method for determining a recovery point from which to resume instruction execution following handling of an unexpected change in instruction flow |
US10866868B2 (en) | 2017-06-20 | 2020-12-15 | Mongodb, Inc. | Systems and methods for optimization of database operations |
US11436143B2 (en) * | 2017-12-22 | 2022-09-06 | Alibaba Group Holding Limited | Unified memory organization for neural network processors |
US10592431B2 (en) * | 2018-08-13 | 2020-03-17 | Hewlett Packard Enterprise Development Lp | Independent shared and process virtual address translations |
WO2020114937A1 (en) * | 2018-12-07 | 2020-06-11 | Koninklijke Philips N.V. | A computing device with increased resistance against address probing |
US11734192B2 (en) | 2018-12-10 | 2023-08-22 | International Business Machines Corporation | Identifying location of data granules in global virtual address space |
US11016908B2 (en) * | 2018-12-11 | 2021-05-25 | International Business Machines Corporation | Distributed directory of named data elements in coordination namespace |
US10877788B2 (en) * | 2019-03-12 | 2020-12-29 | Intel Corporation | Processing vectorized guest physical address translation instructions |
US11307981B1 (en) * | 2020-05-10 | 2022-04-19 | Juniper Networks, Inc | Systems and methods for sharing memory pointers across multiple processes |
CN114402304A (zh) * | 2020-08-19 | 2022-04-26 | 谷歌有限责任公司 | 存储器共享 |
TWI755112B (zh) * | 2020-10-23 | 2022-02-11 | 財團法人工業技術研究院 | 電腦程式碼之優化方法、優化系統及應用其之電子裝置 |
CN113111391B (zh) * | 2021-04-09 | 2022-07-08 | 支付宝(杭州)信息技术有限公司 | 用于内存完整性保护的方法和内存控制器 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US6263414B1 (en) * | 1998-07-17 | 2001-07-17 | Technion Research And Development Foundation, Ltd. | Memory for accomplishing lowered granularity of a distributed shared memory |
US6591355B2 (en) * | 1998-09-28 | 2003-07-08 | Technion Research And Development Foundation Ltd. | Distributed shared memory system with variable granularity |
EP1380946B1 (en) | 1998-10-10 | 2010-02-10 | International Business Machines Corporation | Program code conversion with reduced translation |
US6748493B1 (en) * | 1998-11-30 | 2004-06-08 | International Business Machines Corporation | Method and apparatus for managing memory operations in a data processing system using a store buffer |
TW548547B (en) * | 1999-06-18 | 2003-08-21 | Ibm | Method and system for maintaining cache coherency for write-through store operations in a multiprocessor system |
US6496917B1 (en) * | 2000-02-07 | 2002-12-17 | Sun Microsystems, Inc. | Method to reduce memory latencies by performing two levels of speculation |
US6725341B1 (en) * | 2000-06-28 | 2004-04-20 | Intel Corporation | Cache line pre-load and pre-own based on cache coherence speculation |
US7398376B2 (en) * | 2001-03-23 | 2008-07-08 | International Business Machines Corporation | Instructions for ordering execution in pipelined processes |
AU2003249977A1 (en) | 2002-07-05 | 2004-01-23 | Axxima Pharmaceuticals Ag | Imidazole compounds for the treatment of hepatitis c virus infections |
US9043194B2 (en) * | 2002-09-17 | 2015-05-26 | International Business Machines Corporation | Method and system for efficient emulation of multiprocessor memory consistency |
US6892286B2 (en) * | 2002-09-30 | 2005-05-10 | Sun Microsystems, Inc. | Shared memory multiprocessor memory model verification system and method |
US6892283B2 (en) * | 2002-12-05 | 2005-05-10 | International Business Machines Corporation | High speed memory cloner with extended cache coherency protocols and responses |
US7536682B2 (en) * | 2003-04-22 | 2009-05-19 | International Business Machines Corporation | Method and apparatus for performing interpreter optimizations during program code conversion |
GB2401217B (en) | 2003-05-02 | 2005-11-09 | Transitive Ltd | Improved architecture for generating intermediate representations for program code conversion |
GB0315844D0 (en) | 2003-07-04 | 2003-08-13 | Transitive Ltd | Method and apparatus for performing adjustable precision exception handling |
GB0316531D0 (en) * | 2003-07-15 | 2003-08-20 | Transitive Ltd | Method and apparatus for performing native binding |
US7434209B2 (en) | 2003-07-15 | 2008-10-07 | Transitive Limited | Method and apparatus for performing native binding to execute native code |
US7818724B2 (en) * | 2005-02-08 | 2010-10-19 | Sony Computer Entertainment Inc. | Methods and apparatus for instruction set emulation |
WO2006103395A1 (en) | 2005-03-30 | 2006-10-05 | Transitive Limited | Preparing instruction groups in a processor having multiple issue ports |
-
2006
- 2006-11-22 GB GBGB0623276.3A patent/GB0623276D0/en not_active Ceased
-
2007
- 2007-11-19 US US11/986,321 patent/US7895407B2/en not_active Expired - Fee Related
- 2007-11-20 GB GB0722686A patent/GB2444148B/en not_active Expired - Fee Related
- 2007-11-20 EP EP07824912A patent/EP2097817A1/en not_active Withdrawn
- 2007-11-20 WO PCT/GB2007/050700 patent/WO2008062225A1/en active Application Filing
- 2007-11-20 JP JP2009537704A patent/JP5583409B2/ja not_active Expired - Fee Related
- 2007-11-20 KR KR1020097012940A patent/KR101244014B1/ko not_active IP Right Cessation
- 2007-11-20 CN CN2007800434969A patent/CN101542441B/zh not_active Expired - Fee Related
- 2007-11-21 TW TW096144164A patent/TWI403898B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
WO2008062225A1 (en) | 2008-05-29 |
KR20090115118A (ko) | 2009-11-04 |
TWI403898B (zh) | 2013-08-01 |
TW200839513A (en) | 2008-10-01 |
GB2444148B (en) | 2009-03-04 |
CN101542441A (zh) | 2009-09-23 |
GB0722686D0 (en) | 2007-12-27 |
JP2010510599A (ja) | 2010-04-02 |
GB2444148A (en) | 2008-05-28 |
KR101244014B1 (ko) | 2013-03-25 |
US7895407B2 (en) | 2011-02-22 |
EP2097817A1 (en) | 2009-09-09 |
US20080140971A1 (en) | 2008-06-12 |
GB0623276D0 (en) | 2007-01-03 |
CN101542441B (zh) | 2012-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5583409B2 (ja) | マルチプロセッサ・コンピューティング・システムでのメモリ一貫性保護 | |
US7996629B2 (en) | Multiprocessor computing system with multi-mode memory consistency protection | |
EP1626338B1 (en) | System and method for providing exceptional flow control in protected code through watchpoints | |
US20160026488A1 (en) | Instruction set emulation for guest operating systems | |
US10990487B1 (en) | System and method for hybrid kernel- and user-space incremental and full checkpointing | |
US9053064B2 (en) | Method for saving virtual machine state to a checkpoint file | |
US11119918B2 (en) | Execution using multiple page tables | |
EP1626337A1 (en) | System and method for providing exceptional flow control in protected code through memory layers | |
US20220383988A1 (en) | Data processing system and method | |
US11061695B2 (en) | Unikernel provisioning | |
JP2015530662A5 (ja) | ||
US7769962B2 (en) | System and method for thread creation and memory management in an object-oriented programming environment | |
US20130159639A1 (en) | Optimizing for Page Sharing in Virtualized Java Virtual Machines | |
US11573868B1 (en) | System and method for hybrid kernel- and user-space incremental and full checkpointing | |
KR101244153B1 (ko) | 프로그램 코드 변환에 관한 프로세스 파일시스템을 관리하는 방법 및 기기 | |
US11989569B2 (en) | Unikernel provisioning | |
Aksenov et al. | Execution of nvram programs with persistent stack | |
JP2009223841A (ja) | 命令ログ取得プログラム及び仮想計算機システム | |
Arya | User-space process virtualization in the context of checkpoint-restart and virtual machines | |
CN118069403A (zh) | 一种异常指令的处理方法 | |
Olszewski | Aikido |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20091208 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120328 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20120622 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120622 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120802 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20120813 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120813 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20121218 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20130416 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130416 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20130423 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20130517 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20131018 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20140702 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20140702 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140716 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5583409 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |