JP6086230B2 - 中央演算装置、情報処理装置、および仮想コア内レジスタ値取得方法 - Google Patents
中央演算装置、情報処理装置、および仮想コア内レジスタ値取得方法 Download PDFInfo
- Publication number
- JP6086230B2 JP6086230B2 JP2013075895A JP2013075895A JP6086230B2 JP 6086230 B2 JP6086230 B2 JP 6086230B2 JP 2013075895 A JP2013075895 A JP 2013075895A JP 2013075895 A JP2013075895 A JP 2013075895A JP 6086230 B2 JP6086230 B2 JP 6086230B2
- Authority
- JP
- Japan
- Prior art keywords
- core
- virtual
- virtual core
- instruction
- cores
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims description 120
- 238000000034 method Methods 0.000 title claims description 98
- 230000010365 information processing Effects 0.000 title claims description 17
- 238000004458 analytical method Methods 0.000 claims description 111
- 238000002360 preparation method Methods 0.000 claims description 40
- 238000012546 transfer Methods 0.000 claims description 14
- 238000000638 solvent extraction Methods 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 description 48
- 238000012795 verification Methods 0.000 description 35
- 230000006870 function Effects 0.000 description 18
- 238000005516 engineering process Methods 0.000 description 9
- 238000012544 monitoring process Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 102000004137 Lysophosphatidic Acid Receptors Human genes 0.000 description 4
- 108090000642 Lysophosphatidic Acid Receptors Proteins 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000011835 investigation Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
Description
中央演算装置内の仮想化は、ハードウェアマルチスレッディング技術などと呼ばれている。
プログラムをデバッグする際、通常はデバッガを用いてインタラクティブに調査したり、メモリダンプを使用して静的な情報から調査を行なったりする。このいずれの方法も、検証対象とするプログラム(以下、対象プログラムと記載)の挙動に影響を与えるために運用中のサーバなどでは使用することが難しい。また、OS(Operating System)自体がストール状態で操作ができない場合に、検証方法がさらに限定される。
このような場合に際して、ハードウェアの機能でレジスタやメモリの状態を参照できる機能が提供されれば検証に有用である。この機能を提供する手法として既にJTAG(Joint Test Action Group)やICE(In-Circuit Emulator)がある。他方、通常運用時には必要としないハードウェア装置であるため、開発用途の特殊な例を除き、価格を上昇等のために、一般的なサーバ装置には現状実装されていない。
特許文献1や特許文献2には、チップ外部からレジスタ情報を読み出せるCPU(Central Processing Unit)装置が提案されている。これらは、チップの外部からレジスタ内容を読み出す際、動作中のCPUの実行コンテキストによるレジスタ更新と外部からの参照を同期させるコストや複雑さを避けるため、あらかじめ別の領域にコピーしておいたレジスタ情報を外部から読み出すというものである。
特許文献3や特許文献4には、メインCPUからレジスタ内容を拡張演算装置に引き渡して処理を継続するコプロセッサが提案されている。
また、特許文献5では、CPU間でレジスタを共有する実装方法として、ベクトルプロセッサ上での方法を提案している。これは、高速かつ大容量のレジスタがCPU外部にあり、複数のCPUやコアからレジスタ領域を共用してベクトル計算をするためのものである。
また、特許文献6には、1台の情報処理装置を成す1組のハードウェア上に複数のOSを同居させて、プログラムによりメモリに記録される値を診断用OSにより検証させる手法が提案されている。
また、特許文献7には、複数のCPUを並列動作させると共に、1つのCPUを障害処理用プロセッサコアとして動作させる障害処理手法が記載されている。
また、一般的に、OS起動処理の途中であったり、何らかの障害によりOSがストール状態にあったりした場合には使用できない。また、カーネルデバッガの中には、OSストール中に使用できるものも存在するが、カーネルを停止して解析する手法であるためにデバッグ作業中にOS全体が停止する問題を内在している。このため、運用中のシステムに対する検証手法としてカーネルデバッガを安易に用いることができないとの側面を有する。
また、実装形態によらず、対象プログラムが動作している物理コアの外部から一貫性のあるレジスタ情報を読み出すためには、対象コアを一時的に停止してデバッグモードに移行した後にレジスタ情報を転送することを必要としており、オーバヘッドが大きい問題もある。
しかし、この装置で参照できるレジスタ値は過去の内容であるため、読み出した内容に基づいた次の解析処理を実行してもこの時点で既にCPUは先の処理に実行を進めており、リアルタイムなデバッグに使用することはできない。
しかし、これらのコプロセッサは浮動小数点演算などの特定の処理を目的とした専用ハードウェアである。付加的に設けることの問題や検証用プログラムの自由度に課題を有する。
しかし、価格が高くなりすぎる傾向が高いため、現状の一般的なCPU周囲のアーキテクチャには採用できない。
しかし、CPU内のレジスタ値や、カーネル解析などが行なえない問題がある。
各仮想コア2には、仮想コア用レジスタ3、命令実行権限設定部4が設けられている。なお、必ずしも各仮想コア2は対照的な構成を有する必要はない。
また、任意の仮想コア2は、自仮想コアで用いる現在のレジスタ値を直接参照するための参照命令が他の仮想コア2で実行された際に、他の仮想コア2から値の参照を論理的に受ける。
また、命令実行権限設定部4が権限設定する各命令(各仮想コア2で扱われる各命令)は、OSやアプリケーションよりも高速に処理が完遂される。
また、仮想コア2相互は、同じ物理コアであるため、各実行スレッドを同期させるコストが、異なる物理コア間で同期する場合に比べて非常に小さい。
・自仮想コアでの処理を停止する参照準備命令
・他仮想コアでの処理を停止する参照準備命令
・参照準備命令によって停止した状態を解除する参照準備解除命令
・参照命令を送出するポイントを設定する設定命令
・参照準備命令を送出するポイントを設定する設定命令
・参照準備解除命令を送出するポイントを設定する設定命令
・参照命令を送出させるポイントを設定する設定命令
・参照準備命令を送出させるポイントを設定する設定命令
・参照準備解除命令を送出させるポイントを設定する設定命令
・命令実行権限を設定する設定命令
上記命令実行権限設定部4はそれぞれ、参照命令を受け付けるか否かと共に上記各命令を受け付けるか否か設定可能に構成する。なお、個々の命令毎に権限設定することとしてもよいし、参照命令セットとして一体的に受け付けて参照命令を実行する権限設定することとしてもよい。また、3以上の仮想コアが物理コアに構築されることを踏まえ、任意の仮想コアのみに上記各命令を実行可能とする権限を設定可能に構築してもよい。
この際に、同一物理コアで成る複数の仮想コアのうち、検証プログラムを走らせる仮想コアと異なる仮想コア 又は 複数の仮想コア上で動作させるOS上から、上記参照命令等を使用して、解析・デバッグ・並列処理などを、行って検証を行えば、利便性が高いツールとなり得る。
以下、検証対象となるプログラム(対象プログラム)を走らせる仮想コアを被解析仮想コアと呼び、その対象プログラムの動作検証を行なうプログラム(解析プログラム)を走らせる仮想コアを解析用仮想コアと呼ぶ。この被解析仮想コアと解析用仮想コアは、同一の物理コア内に構築される。
・構成例1・・・被解析仮想コアと解析用仮想コアで異なるOSをそれぞれ動作させる
・構成例2・・・被解析仮想コアと解析用仮想コアで同じOSを動作させ、解析用仮想コアで解析プロセスを常駐させる
・構成例3・・・被解析仮想コアと解析用仮想コアで同じOSを動作させ、解析用仮想コアに参照命令を通知させる設定命令に応じて実行する検証用コードを予め登録する
・実施例1・・・CPU内にI/Oコントローラを複数実装し、メインOSと解析用OSでそれぞれ物理的に異なるI/Oコントローラを使用させる
・実施例2・・・LPAR(Logical PARtitioning)を用いて一つのI/Oコントローラを論理的に複数のI/Oコントローラとして使用することにより、メインOSと解析OSとにI/Oコントローラを共用させる
・実施例1・・・ブレークポイントを設定することにより、任意の条件でのレジスタ情報を読み出して利用
・実施例2・・・解析用仮想コア側から定期的にサンプリングすることにより、リアルタイムトレース
・実施例3・・・同一物理コア内の仮想コアが互いにレジスタを参照しあうことにより、レジスタ参照機能を高速なプロセス間通信として使用する並列処理
・実施例4・・・イベント通知機能のオーバヘッドの低さを利用した性能ボトルネック調査
解析用仮想コアから、実装された機能を使用して被解析仮想コアのレジスタを直接参照するため、被解析仮想コア上ではコンテキストスイッチによるレジスタ退避や、デバッガ起動などの動作を実行することを省くことができる。このため、レジスタ参照処理に伴うオーバヘッドが非常に小さく、被解析仮想コアについてレジスタ情報の採取が終了した後に即座に処理を再開させることが可能になる。
別の観点によれば、汎用仮想プロセッサの一部リソースを検証処理に使用することとなり、専用の検証・解析用ハードウェアをCPU内外に実装する既存技術に比べてリソースが無駄にならない利点がある。
これを実行するにあたって、より詳細な実装構成及び動作例を示して、上記実施形態にかかる情報処理装置を用いたそれぞれのプログラム検証方法について説明する。以下では2つの処理形態を詳細に説明する。一つは、解析対象のプログラムを実行する仮想コアとデバッガを動作させる仮想コアそれぞれにおいて、別のOSを稼動させる形態である。もう一つは、両方の仮想コア上で一つの同じOSを稼動させる形態である。
本形態の説明では、同じ物理コア上の仮想コアをサーバOS用仮想コアと解析用仮想コアとしてそれぞれ位置づけ、リソースパーティショニングによりそれぞれの仮想コアで異なるOSを稼動させる。
リソースパーティショニングとは、単一のハードウェア上で複数のOSが動作できるように、CPU、メモリ、およびI/Oデバイスなどをアクセス制御し、それぞれのOSが必要とするリソースにアクセスを許可して、必要なOSにハードウェアリソースへのアクセス権を割り振るという既存技術である。
この実施形態では、被解析プロセスを仮想コアの1つで動作させ、解析プロセスを同一物理コアの別の仮想コアに割り当てることにより、解析処理を行なう。
こちらの実施形態はOSが起動中・ストール中には使用できないものの、実装が容易となる側面があり、上記実施形態よりも利便性が優れた点を有しており、解析対象がカーネルではなくプロセスの場合にはこちらが有用ともいえる。
図2は、他の仮想コアのレジスタ参照機能を有するCPUコアの概念的構成を示したブロック図である。
CPUコア10は、サーバ装置の中央演算装置として動作して、CPU外部に独立したコアとして認識される仮想コア11と仮想コア12とを有している。
仮想コア11は上記被解析仮想コアであり、サーバOSを動作させ、仮想コア12は解析用仮想コアであり、デバッガを動作させる。これらの仮想コアの実体は実行パイプラインを共有したスレッドであり、それぞれがアーキテクチャステートを保持するための専用のレジスタ(データレジスタ21、22等)を有している。
仮想コア11及び12はそれぞれ独立して参照機能のEnable/Disableを切り替えられるレジスタ(解析権限切替レジスタ41、42)を有しており、その内容により他の仮想コアのレジスタへのアクセス権を制御する。
図2に示した構成では、仮想コア12の解析権限切替レジスタ42がEnableになっており、仮想コア12が仮想コア11のデータレジスタ21を参照でき、またデバッグレジスタ31を更新することができる。一方、仮想コア11の解析権限切替レジスタ41はDisableに設定されており、仮想コア11には仮想コア12のレジスタにアクセスする権限がない。
BIOS70は、サーバOS用に、ACPIテーブル71を生成する。ACPIテーブル71には、サーバOSコア用の仮想コア11、I/Oコントローラ51、およびメモリ61のうちサーバOS用に割り当てる領域をEnableとして列挙される。サーバOSはACPIテーブル71を参照して各リソースの初期化を実行し、OSを起動する。
他方、BIOS70は、解析OS用に、ACPIテーブル72を生成する。ACPIテーブル72には、解析OS用の仮想コア12、I/Oコントローラ52、およびメモリ61のうち解析OS用に割り当てる領域をEnableとして列挙される。サーバOS用ACPIテーブル71との差として、解析OSはサーバOSのメモリを読み込むことのみ許可されている。これは、解析処理のためにサーバOS側のメモリも参照する必要があるためである。解析OSは、これらの情報をもとに各リソースの初期化を実行し、OSを起動する。
それぞれのI/Oコントローラ(51、52)には、例えばNIC81、NIC82などのネットワークインターフェースなどがそれぞれ接続され、互いのOSの状態に関わらず、それぞれのOSと外部とを接続して操作することを可能に構成される。
図4に、本実施形態で追加するCPU命令を列挙する。なお、この列挙する各命令は、上記した幾つかの命令を組み合わせて構成された命令群であり、利用目的に合わせて統合や分割、参照範囲指定などの変更を加えてもよい。
・命令A は、任意の仮想コアにレジスタを参照させる準備をさせ、別の仮想コアに処理を移すための参照準備命令である。一貫性のある情報を読み出すため、命令Aを実行した仮想コア(自仮想コア)は、スペキュレーティブロードや、割り込みなどのレジスタを変更する可能性のある処理の全てを停止する。また、更新中のレジスタが電気信号的に安定するまで待ち合わせ、レジスタを読み出し可能な状態に遷移した後に、解析用仮想コアに割り込み信号をアサートして通知する。この命令Aは主に、プログラムに設定されたブレークポイントに到達して、デバッグ例外が生成された際に実行すればよいが、任意のタイミングで実行可能にすることもできる。
・命令Bは、他の仮想コアを停止してレジスタを読み出し可能な状態に遷移させるための参照準備命令である。この命令Bは、解析する側の仮想コアから、解析される側の仮想コアに対して発行される。解析対象の仮想コアがレジスタ参照を可能とする準備が完了するまで待ち合わせるため、実行した仮想コアをブロックする役割も持つ。
・命令Cは、命令Aまたは命令Bによって停止した仮想コアの処理動作を再開するための参照準備解除命令である。
命令Dは、対象の仮想コアから任意のレジスタの内容を読み出すための参照命令である。
命令Eは、対象の仮想コアのデバッグレジスタの内容を書き換えるための設定命令である。ハードウェアブレークポイントを設定することにより、解析する仮想コア側から命令Aを発生させるタイミングを制御するために使用する。
ここで、命令Eの使い方について以下に補足する。指定したアドレスの命令を実行したとき、または指定したアドレスのデータにアクセスしたとき、などのように一定の条件を満たしたタイミングで命令Aを発行させる目的で、ブレークポイントを設定する。
ブレークポイントには、デバッガから設定するソフトウェアブレークポイントとデバッグレジスタで設定するハードウェアブレークポイントがある。いずれもデバッグ例外を発生させる点では同じだが、各々の仮想コア上で異なるOSを動作させる形態では、他のOS上のプログラムに対してソフトウェアブレークポイントの設定が既存の命令群ではできず、ハードウェアブレークポイントしか使用できない。また、各々の仮想コア上で同じOSを動作させる形態であっても、解析対象のプログラムが実行中である場合には、後からソフトウェアブレークポイントを設定することは難しい。そのため、対象の仮想コアの状態に依存せず、任意の条件で命令Aを発行させるように外部から制御する目的で命令Eを使用する。
この構成には、解析用コードを実行していない場合には他の処理に解析用仮想コアを使用することができ、リソースを無駄にしない利点がある。このため、デバッグ目的ではなく、通常運用時におけるイベントベースのプログラム起動手段としても応用しやすい。
図6と図7を比較すると、解析用仮想コアでデバッガを実行してインタラクティブに解析を行いたい場合に図6が適しており、実行したい内容があらかじめ決まっており、ブレークポイントに到達した場合に自動的に処理したい場合には図7が適している。
次に、図8から図12を用いて処理動作を説明する。
図8(a)、図8(b)では、ブレークポイントに到達すると、プログラムを実行するコア上でコンテキストスイッチを実行してレジスタを退避し、デバッガを起動している。
その後の処理は、解析処理を行なうコアがプログラムを実行しているコアと同じかどうかで、図8(a)と図8(b)に分かれる。
プログラムを実行していたコア自身で解析を行う場合は、図8(a)に示したように、プログラムは解析処理を行い終えるまでの間中長時間停止したままとなり、解析処理終了後に再度コンテキストスイッチを実行してプログラムを再開する。
物理的に異なるコアから解析する場合、図8(b)に示したように、解析対象のプログラムは、解析処理と並行して動作を再開して処理を継続できる。しかし退避したレジスタ情報を、解析処理をするコアに引き渡すために、異なるコア間での同期や転送がやはり必要となる。この処理が同一物理コア上の仮想コア間で行うよりも様々な点でコストの高い処理となる。
この一連の処理では、被解析仮想コア上でコンテキストスイッチやデバッガの起動を不要としたこと、および物理コア間の同期やデータ転送を必要としない構成としたことにより、低コスト且つ高速に実行できる。
この処理は同一の物理コア内での処理であるため、被解析コア上で動作するプログラムに与える影響をごくわずかに限定することができるというメリットがある。
様々なプログラムの中には、処理結果が妥当であるかどうかを検証したり、処理内容に応じた暗号キーを生成したりするなど、ある処理を実行すると同時に、その処理に関連する独立した処理を並列して実行させたいものがある。
このようなプログラムに対して、本発明によるレジスタ参照機能を低コストの通信手段として使用する並列プログラムを作成することができる。
被解析仮想コアでは、あらかじめ処理Xの開始部分にブレークポイントを設定したうえでプログラムを開始する。被解析仮想コアでブレークポイントに到達すると、命令Aにより解析用仮想コアにそのことが通知される(S11)。
次に、解析用仮想コアから被解析仮想コアのレジスタを命令Dを使用して読み出すと共に実行中の処理に応じた検証プログラムを起動する(S21)。この時、検証処理Yに必要なデータも被解析仮想コアのレジスタやメモリ・キャッシュから読み出しておく。
その後、命令Cにより被解析仮想コアの停止状態を解除(S22)することにより、それぞれの仮想コアが処理Xと検証処理Yを並列で実行する。
被解析仮想コア上で処理Xが完了すると、再び命令Aを使用してそのことを解析用仮想コアに通知する(S12)。
解析用仮想コアは、命令Dを使用して処理Xの結果を取得(S23)し、命令Cを実行して被解析仮想コアの処理を再開(S24)させる。
次に検証処理として、解析用仮想コア上で処理Xと検証処理Yの結果の比較を実施する(S25)。解析用仮想コアでは、比較結果が一致していればその結果のみ記録(S26)して解析用仮想コア上の検証処理は終了し、被解析仮想コア上のプログラムは邪魔されること無く処理を継続する。他方、解析用仮想コアは、比較結果が一致していない場合に、命令Aにより被解析仮想コアに対してそのことを通知(S27)する。
比較結果が一致していないことの通知を受けたことを識別(S13)して、被解析仮想コアは、命令Dにより解析用仮想コアのレジスタから検証結果を読み出す(S14)。読み出した内容により、処理を継続すべきか終了すべきかを判断(S15)する。
この並列処理において、プロセス間通信等のメモリ経由のデータ転送を伴わずにイベントの通知やデータの転送を行なっており、高速な並列処理プログラムを実現できている。
本発明にかかるCPUでは、任意の箇所にブレークポイントを動的に設定し、対象プログラムへの影響を最小限にして動作を解析することができる。このため、どこで停止しているかに加え、どの処理に時間がかかっているか まで調査することが可能になる。
まず解析したい対象プログラムに対して、性能ボトルネックを監視したい任意の箇所にブレークポイントを設定する。図12では、死活監視メッセージの受信処理にブレークポイントを設定している。解析用仮想コアから対象プログラムに対して死活監視用のメッセージを送信すると、被解析仮想コア上でデバッグ例外が発生し、命令Aによって解析用仮想コアに通知する。この通知があった場合、解析用仮想コアは対象プログラムがメッセージを受信したことを知ることができ、通知が来ない場合、死活監視メッセージが途中で失われたか、解析対象プログラムがメッセージの受信処理を実行できない状態であると判断することができる。対象プログラムはメッセージ受信後、死活監視に対する応答メッセージを送信する。前述の通知があったうえでこの応答メッセージが無い場合には、その間に停止する要因があると判断することができる。
次に、本発明の中央演算装置を用いたサーバなどの情報処理装置で提供できる幾つかの効果を例示する。
これに対し、本発明では、実行パイプラインを共有する仮想コア間でレジスタ情報を読み出すため、他方の仮想コア(スレッド)をわずかな短時間のみ停止して読み出し中にレジスタを更新しないように同期することが容易であり、コピー領域を必要とせずに低コストでレジスタを参照可能である。結果、リアルタイム性が向上したデバッグ・トレースを実現できる。
また、より細かい粒度でプログラムやカーネルを解析・デバッグできる。
また、本発明によれば、所定の仮想コアで使用しているレジスタ情報を中央演算装置の内部動作により低オーバヘッドで取得する仮想コア内レジスタ値取得方法、及びその方法を用いたプログラムの検証方法を提供できる。
[付記1]
物理コア上に複数の仮想コアを構築可能である中央演算装置であって、
任意の仮想コアの実行コンテキストに影響を与えることなく、該仮想コアで用いる現在のレジスタ値を同一物理コア上の他の仮想コアから直接参照する参照命令を自仮想コアで実行する或いは他仮想コアに実行させる手段と、
前記レジスタ値を参照する前記参照命令を実行する権限を仮想コアごとに切り替え得る手段と、
を有する
ことを特徴とする中央演算装置。
前記参照命令によって参照され得るレジスタ値の変更を伴い得る自他の仮想コアでの処理を停止することを実施する参照準備命令を自仮想コアで実行する或いは他仮想コアに実行させる手段を更に有することを特徴とする上記付記記載の中央演算装置。
前記参照準備命令によって停止された仮想コアの停止状態を解除する参照準備解除命令を自仮想コアで実行する或いは他仮想コアに実行させる手段を更に有することを特徴とする上記付記記載の中央演算装置。
同一物理コアに属する他の仮想コアから通知を受けた際に、自仮想コアのデバッグレジスタに前記参照命令、参照準備命令、参照準備解除命令の何れかを実行又は実行し合うポイントを設定する設定命令を自仮想コアで実行する或いは他仮想コアに実行させる手段を更に有することを特徴とする上記付記記載の中央演算装置。
1つの物理コア上に仮想コアを複数実装可能であり、前記物理コア内に構築される各レジスタが外部の記憶要素とのデータ転送よりも高速動作する構成を有する中央演算装置であって、
解析対象とする仮想コアの実行コンテキストに影響を与えることなく、該仮想コアで動作させるプログラム実行にかかる現在のレジスタ値を同一物理コア上の他の仮想コアから直接参照する参照命令を自仮想コアで実行する或いは他仮想コアに実行させる手段と、
前記参照命令によって参照され得るレジスタ値の変更を伴い得る自他の仮想コアでの処理を停止することを実施する参照準備命令を自仮想コアで実行する或いは他仮想コアに実行させる手段と
前記参照準備命令によって停止された仮想コアの停止状態を解除する参照準備解除命令を自仮想コアで実行する或いは他仮想コアに実行させる手段と、
同一物理コアに属する他の仮想コアから通知を受けた際に、自仮想コアのデバッグレジスタに前記参照命令、参照準備命令、参照準備解除命令の何れかを実行又は実行し合うポイントを設定する設定命令を自仮想コアで実行する或いは他仮想コアに実行させる手段と、
前記レジスタ値を参照する前記参照命令を実行する権限を仮想コアごとに切り替え得る手段と、
を有する
ことを特徴とする中央演算装置。
前記各命令を実行或いは実行させる仮想コアそれぞれに、該仮想コアが構築される同一物理コアをパーティショニングすることによってハードウェアリソースをそれぞれ割り当て、独立したOSを動作させ得る機能を有することを特徴とする上記付記記載に記載の中央演算装置。
前記各命令の受け渡しを行う仮想コアに跨ったOSを動作させ得る機能を有することを特徴とする上記付記記載に記載の中央演算装置。
上記付記記載の中央演算装置を搭載すると共に、
同一物理コア上の複数の仮想コアの1つ若しくは2以上(最大仮想コア数以下)をプログラム実行主体として使用するプログラムを対象に、前記複数の仮想コアの何れか又は複数を実行主体とみなして動作するOS上から、少なくとも 任意の仮想コアの実行コンテキストに影響を与えることなく、該仮想コアで用いる現在のレジスタ値を同一物理コア上の他の仮想コアから直接参照する参照命令を使用して解析・デバッグ・並列処理の何れか又は組み合わせを実行する
ことを特徴とする情報処理装置。
上記付記記載の中央演算装置における物理コア内の各仮想コアに対して、それぞれの仮想コア上で異なるOSが起動できるようにパーティショニングを可能とした異なるACPIテーブルを生成することを特徴とするBIOSシステム。
1つの物理コア上に複数の仮想コアが構築された環境下で、
任意の仮想コアが使用するレジスタを参照する権限を、同一の物理コアに属する他の仮想コアにも与え得る設定を有効に設定するステップと、
前記任意の仮想コアの実行コンテキストに影響を与えることなく、該仮想コアで用いる現在のレジスタ値を前記同一物理コア上の他の仮想コアから直接参照する参照命令を、前記同一物理コアに属する任意の他の仮想コアから実行して、該任意の他の仮想コアが 参照を受ける前記任意の仮想コアが使用した現レジスタ値を識別するステップと、
を含むことを特徴とする中央演算装置の内部動作による仮想コア内レジスタ値取得方法。
前記参照命令によって参照され得るレジスタ値の変更を伴い得る自他の仮想コアでの処理を停止することを実施する参照準備命令を実行するステップ又は他仮想コアに実行させるステップを前記参照命令に先だって実行することを特徴とする上記付記記載の仮想コア内レジスタ値取得方法。
前記参照準備命令によって停止された仮想コアの停止状態を解除する参照準備解除命令を自仮想コアで実行するステップ又は他仮想コアに実行させるステップを前記参照命令の後に実行することを特徴とする上記付記記載の仮想コア内レジスタ値取得方法。
同一物理コアに属する他の仮想コアから通知を受けた際に、自仮想コアのデバッグレジスタに前記参照命令、参照準備命令、参照準備解除命令の何れかを実行又は実行し合うポイントを設定する設定命令を自仮想コアで実行するステップ又は他仮想コアに実行させるステップを前記参照命令を実行する条件設定に用いることを特徴とする上記付記記載の仮想コア内レジスタ値取得方法。
1つの物理コア上に複数の仮想コアを構築され、且つ、任意の仮想コアが使用するレジスタを参照する権限を 同一の物理コアに属する他の仮想コアにも与え得る設定を有効に設定し、該環境下で、
前記同一物理コア上の複数の仮想コアの1つ若しくは2以上(最大仮想コア数以下)をプログラム実行主体として使用するプログラムを対象に、前記複数の仮想コアの何れか又は複数を実行主体とみなして動作するOS上から、少なくとも 任意の仮想コアの実行コンテキストに影響を与えることなく、該仮想コアで用いる現在のレジスタ値を同一物理コア上の他の仮想コアから直接参照する参照命令を実行し、
前記参照命令を用いて得た仮想コアのレジスタ値を用いて解析・デバッグ・並列処理の何れか又は組み合わせを実行する
ことを特徴とするプログラムの検証方法。
前記参照命令によって参照され得るレジスタ値の変更を伴い得る自他の仮想コアでの処理を停止することを実施する参照準備命令を自仮想コアで実行又は他仮想コアに実行させることを前記参照命令に先だって実行することを特徴とする上記付記記載のプログラムの検証方法。
前記参照準備命令によって停止された仮想コアの停止状態を解除する参照準備解除命令を自仮想コアで実行又は他仮想コアに実行させることを前記参照命令の後に実行することを特徴とする上記付記記載のプログラムの検証方法。
同一物理コアに属する他の仮想コアから通知を受けた際に、自仮想コアのデバッグレジスタに前記参照命令、参照準備命令、参照準備解除命令の何れかを実行又は実行し合うポイントを設定する設定命令を自仮想コアで実行又は他仮想コアに実行させることを前記参照命令を実行する条件設定に用いることを特徴とする上記付記記載のプログラムの検証方法。
2 仮想コア
3 仮想コア用レジスタ
4 命令実行権限設定部
10 CPUコア
11、12 仮想コア
21、22 データレジスタ
31、32 デバッグレジスタ
41、42 解析権限切替レジスタ
51、52 I/Oコントローラ
61 メモリ
62 メモリコントローラ
70 BIOS
71、72 ACPIテーブル
81、82 NIC
Claims (10)
- 物理コア上に複数の仮想コアを構築可能である中央演算装置であって、
任意の仮想コアの実行コンテキストに影響を与えることなく、該仮想コアで用いる現在のレジスタ値を同一物理コア上の他の仮想コアから直接参照する参照命令を、自仮想コアで実行する或いは他仮想コアに実行させる手段と、
前記レジスタ値を参照する前記参照命令を実行する権限を仮想コアごとに与える手段と、
を有する
ことを特徴とする中央演算装置。 - 前記参照命令によって参照され得るレジスタ値の変更を伴い得る自他の仮想コアでの処理を停止することを実施する参照準備命令を自仮想コアで実行する或いは他仮想コアに実行させる手段を更に有することを特徴とする請求項1記載の中央演算装置。
- 前記参照準備命令によって停止された仮想コアの停止状態を解除する参照準備解除命令を自仮想コアで実行する或いは他仮想コアに実行させる手段を更に有することを特徴とする請求項2記載の中央演算装置。
- 同一物理コアに属する他の仮想コアから通知を受けた際に、自仮想コアのデバッグレジスタに前記参照命令、参照準備命令、参照準備解除命令の何れかを実行又は実行し合うポイントを設定する設定命令を自仮想コアで実行する或いは他仮想コアに実行させる手段を更に有することを特徴とする請求項1ないし3の何れか一項に記載の中央演算装置。
- 1つの物理コア上に仮想コアを複数実装可能であり、前記物理コア内に構築される各レジスタが外部の記憶要素とのデータ転送よりも高速動作する構成を有する中央演算装置であって、
解析対象とする仮想コアの実行コンテキストに影響を与えることなく、該仮想コアで動作させるプログラム実行にかかる現在のレジスタ値を同一物理コア上の他の仮想コアから直接参照する参照命令を自仮想コアで実行する或いは他仮想コアに実行させる手段と、
前記参照命令によって参照され得るレジスタ値の変更を伴い得る自他の仮想コアでの処理を停止することを実施する参照準備命令を自仮想コアで実行する或いは他仮想コアに実行させる手段と
前記参照準備命令によって停止された仮想コアの停止状態を解除する参照準備解除命令を自仮想コアで実行する或いは他仮想コアに実行させる手段と、
同一物理コアに属する他の仮想コアから通知を受けた際に、自仮想コアのデバッグレジスタに前記参照命令、参照準備命令、参照準備解除命令の何れかを実行又は実行し合うポイントを設定する設定命令を自仮想コアで実行する或いは他仮想コアに実行させる手段と、
前記レジスタ値を参照する前記参照命令を実行する権限を仮想コアごとに与える手段と、
を有する
ことを特徴とする中央演算装置。 - 前記各命令を実行或いは実行させる仮想コアそれぞれに、該仮想コアが構築される同一物理コアをパーティショニングすることによってハードウェアリソースをそれぞれ割り当て、独立したOSを動作させ得る機能を有することを特徴とする請求項1ないし5の何れか一項に記載の中央演算装置。
- 請求項1ないし6の何れか一項に記載の中央演算装置を搭載すると共に、
同一物理コア上の複数の仮想コアの1つ若しくは2以上(最大仮想コア数以下)をプログラム実行主体として使用するプログラムを対象に、前記複数の仮想コアの何れか又は複数を実行主体とみなして動作するOS上から、少なくとも 任意の仮想コアの実行コンテキストに影響を与えることなく、該仮想コアで用いる現在のレジスタ値を同一物理コア上の他の仮想コアから直接参照する参照命令を使用して解析・デバッグ・並列処理の何れか又は組み合わせを実行する
ことを特徴とする情報処理装置。 - 請求項1ないし6の何れか一項に記載の中央演算装置における物理コア内の各仮想コアに対して、それぞれの仮想コア上で異なるOSが起動できるようにパーティショニングを可能とした異なるACPIテーブルを生成することを特徴とするBIOSシステム。
- 1つの物理コア上に複数の仮想コアが構築された環境下で、
任意の仮想コアが使用するレジスタを参照する権限を、同一の物理コアに属する他の仮想コアにも与え得る設定を有効に設定するステップと、
前記任意の仮想コアの実行コンテキストに影響を与えることなく、該仮想コアで用いる現在のレジスタ値を前記同一物理コア上の他の仮想コアから直接参照する参照命令を、前記同一物理コアに属する任意の他の仮想コアから実行して、該任意の他の仮想コアが 参照を受ける前記任意の仮想コアが使用した現レジスタ値を識別するステップと、
を含むことを特徴とする中央演算装置の内部動作による仮想コア内レジスタ値取得方法。 - 1つの物理コア上に複数の仮想コアを構築され、且つ、任意の仮想コアが使用するレジスタを参照する権限を 同一の物理コアに属する他の仮想コアにも与え得る設定を有効に設定し、該環境下で、
前記同一物理コア上の複数の仮想コアの1つ若しくは2以上(最大仮想コア数以下)をプログラム実行主体として使用するプログラムを対象に、前記複数の仮想コアの何れか又は複数を実行主体とみなして動作するOS上から、少なくとも 任意の仮想コアの実行コンテキストに影響を与えることなく、該仮想コアで用いる現在のレジスタ値を同一物理コア上の他の仮想コアから直接参照する参照命令を実行し、
前記参照命令を用いて得た仮想コアのレジスタ値を用いて解析・デバッグ・並列処理の何れか又は組み合わせを実行する
ことを特徴とするプログラムの検証方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013075895A JP6086230B2 (ja) | 2013-04-01 | 2013-04-01 | 中央演算装置、情報処理装置、および仮想コア内レジスタ値取得方法 |
EP14161744.9A EP2787444B1 (en) | 2013-04-01 | 2014-03-26 | Central processing unit, information processing apparatus, and intra-virtual-core register value acquisition method |
US14/229,076 US9690603B2 (en) | 2013-04-01 | 2014-03-28 | Central processing unit, information processing apparatus, and intra-virtual-core register value acquisition method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013075895A JP6086230B2 (ja) | 2013-04-01 | 2013-04-01 | 中央演算装置、情報処理装置、および仮想コア内レジスタ値取得方法 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2014203106A JP2014203106A (ja) | 2014-10-27 |
JP2014203106A5 JP2014203106A5 (ja) | 2016-03-31 |
JP6086230B2 true JP6086230B2 (ja) | 2017-03-01 |
Family
ID=50486751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013075895A Active JP6086230B2 (ja) | 2013-04-01 | 2013-04-01 | 中央演算装置、情報処理装置、および仮想コア内レジスタ値取得方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9690603B2 (ja) |
EP (1) | EP2787444B1 (ja) |
JP (1) | JP6086230B2 (ja) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9619214B2 (en) | 2014-08-13 | 2017-04-11 | International Business Machines Corporation | Compiler optimizations for vector instructions |
US10169014B2 (en) | 2014-12-19 | 2019-01-01 | International Business Machines Corporation | Compiler method for generating instructions for vector operations in a multi-endian instruction set |
US9588746B2 (en) | 2014-12-19 | 2017-03-07 | International Business Machines Corporation | Compiler method for generating instructions for vector operations on a multi-endian processor |
CN104572468A (zh) * | 2015-01-20 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种基于NeoKylin的快速认证测试方法 |
US10169044B2 (en) | 2015-06-26 | 2019-01-01 | Microsoft Technology Licensing, Llc | Processing an encoding format field to interpret header information regarding a group of instructions |
US11755484B2 (en) | 2015-06-26 | 2023-09-12 | Microsoft Technology Licensing, Llc | Instruction block allocation |
US10346168B2 (en) | 2015-06-26 | 2019-07-09 | Microsoft Technology Licensing, Llc | Decoupled processor instruction window and operand buffer |
US9946548B2 (en) | 2015-06-26 | 2018-04-17 | Microsoft Technology Licensing, Llc | Age-based management of instruction blocks in a processor instruction window |
US9952867B2 (en) | 2015-06-26 | 2018-04-24 | Microsoft Technology Licensing, Llc | Mapping instruction blocks based on block size |
US10409599B2 (en) | 2015-06-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Decoding information about a group of instructions including a size of the group of instructions |
US10175988B2 (en) | 2015-06-26 | 2019-01-08 | Microsoft Technology Licensing, Llc | Explicit instruction scheduler state information for a processor |
US10409606B2 (en) | 2015-06-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Verifying branch targets |
US10191747B2 (en) | 2015-06-26 | 2019-01-29 | Microsoft Technology Licensing, Llc | Locking operand values for groups of instructions executed atomically |
US10802852B1 (en) * | 2015-07-07 | 2020-10-13 | Cadence Design Systems, Inc. | Method for interactive embedded software debugging through the control of simulation tracing components |
US10089212B2 (en) | 2015-07-20 | 2018-10-02 | Toshiba Memory Corporation | Memory system, information processing system, and host device outputting debugging information through a host interface |
US9880821B2 (en) | 2015-08-17 | 2018-01-30 | International Business Machines Corporation | Compiler optimizations for vector operations that are reformatting-resistant |
US9594668B1 (en) * | 2015-09-04 | 2017-03-14 | International Business Machines Corporation | Debugger display of vector register contents after compiler optimizations for vector instructions |
US11126433B2 (en) | 2015-09-19 | 2021-09-21 | Microsoft Technology Licensing, Llc | Block-based processor core composition register |
US11016770B2 (en) | 2015-09-19 | 2021-05-25 | Microsoft Technology Licensing, Llc | Distinct system registers for logical processors |
US10768936B2 (en) | 2015-09-19 | 2020-09-08 | Microsoft Technology Licensing, Llc | Block-based processor including topology and control registers to indicate resource sharing and size of logical processor |
CN105868003B (zh) * | 2016-03-25 | 2019-08-13 | 浙江大学 | 一种基于tms320c6747的任务上下文切换优化方法 |
US11531552B2 (en) | 2017-02-06 | 2022-12-20 | Microsoft Technology Licensing, Llc | Executing multiple programs simultaneously on a processor core |
US11087428B2 (en) * | 2018-03-23 | 2021-08-10 | Canon Kabushiki Kaisha | Image processing apparatus, data processing apparatus, and image processing method |
CN110781430B (zh) * | 2019-09-27 | 2022-03-25 | 同济大学 | 互联网新型虚拟数据中心系统及其构造方法 |
US11928045B1 (en) * | 2021-04-21 | 2024-03-12 | Cadence Design Systems, Inc. | System and method for non-intrusive debugging at an embedded software breakpoint |
CN113254286B (zh) * | 2021-05-28 | 2021-11-19 | 苏州浪潮智能科技有限公司 | 一种服务器的日志输出方法、系统及相关装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0389001B1 (en) | 1983-04-25 | 1997-06-04 | Cray Research, Inc. | Computer vector multiprocessing control |
JP3206960B2 (ja) | 1991-05-17 | 2001-09-10 | 株式会社リコー | 拡張中央演算処理装置 |
JP2868114B2 (ja) | 1994-06-07 | 1999-03-10 | 三菱電機株式会社 | 監視診断機能付計算機 |
JP2003085124A (ja) | 2001-09-12 | 2003-03-20 | Seiko Epson Corp | 外部からの読み出し信号に応答して内部レジスタのデータを読み出す回路を有する集積回路装置及びそれを有するシステム |
JP3867804B2 (ja) | 2005-03-22 | 2007-01-17 | セイコーエプソン株式会社 | 集積回路装置 |
US8370806B2 (en) * | 2006-11-15 | 2013-02-05 | Qualcomm Incorporated | Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor |
JP2008310693A (ja) | 2007-06-15 | 2008-12-25 | Panasonic Corp | 情報処理装置 |
JP4926009B2 (ja) | 2007-11-21 | 2012-05-09 | 三菱電機株式会社 | 情報処理装置の障害処理システム |
JP5491102B2 (ja) | 2009-08-27 | 2014-05-14 | ルネサスエレクトロニクス株式会社 | データプロセッサ |
GB2483906C (en) * | 2010-09-24 | 2019-10-09 | Advanced Risc Mach Ltd | Selection of debug instruction set for debugging of a data processing apparatus |
CN103547993B (zh) * | 2011-03-25 | 2018-06-26 | 英特尔公司 | 通过使用由可分割引擎实例化的虚拟核来执行指令序列代码块 |
EP2689326B1 (en) * | 2011-03-25 | 2022-11-16 | Intel Corporation | Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines |
CN108376097B (zh) * | 2011-03-25 | 2022-04-15 | 英特尔公司 | 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段 |
-
2013
- 2013-04-01 JP JP2013075895A patent/JP6086230B2/ja active Active
-
2014
- 2014-03-26 EP EP14161744.9A patent/EP2787444B1/en active Active
- 2014-03-28 US US14/229,076 patent/US9690603B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP2787444A2 (en) | 2014-10-08 |
US20140298336A1 (en) | 2014-10-02 |
EP2787444B1 (en) | 2022-08-17 |
JP2014203106A (ja) | 2014-10-27 |
EP2787444A3 (en) | 2015-09-02 |
US9690603B2 (en) | 2017-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6086230B2 (ja) | 中央演算装置、情報処理装置、および仮想コア内レジスタ値取得方法 | |
US7600155B1 (en) | Apparatus and method for monitoring and debugging a graphics processing unit | |
US8903703B2 (en) | Dynamically adjusting speed versus accuracy of computer platform simulation | |
US7711990B1 (en) | Apparatus and method for debugging a graphics processing unit in response to a debug instruction | |
JP4222370B2 (ja) | デバッグ支援装置及びデバッグ処理方法をコンピュータに実行させるためのプログラム | |
US7716031B2 (en) | Interface converter for unified view of multiple computer system simulations | |
US8612937B2 (en) | Synchronously debugging a software program using a plurality of virtual machines | |
US20080256339A1 (en) | Techniques for Tracing Processes in a Multi-Threaded Processor | |
KR20070109432A (ko) | 커널 인지 디버깅 장치 및 방법 | |
US20070226740A1 (en) | Method and apparatus for global breakpoint for parallel debugging on multiprocessor systems | |
KR102025078B1 (ko) | 단일 스텝 실행을 이용한 코드 진단 | |
US20140129784A1 (en) | Methods and systems for polling memory outside a processor thread | |
US20110185153A1 (en) | Simultaneous execution resumption of multiple processor cores after core state information dump to facilitate debugging via multi-core processor simulator using the state information | |
JP2009080563A (ja) | 仮想マシンモニタをモニタするコンピュータとその方法、および仮想マシンモニタモニタプログラム | |
US20160188456A1 (en) | Nvram-aware data processing system | |
US9069891B2 (en) | Hardware enabled performance counters with support for operating system context switching | |
CN115576734B (zh) | 一种多核异构日志存储方法和系统 | |
CN111506395B (zh) | 一种混合仿真的全数字虚拟运行环境的实现方法及装置 | |
WO2012137239A1 (ja) | 計算機システム | |
Tröger et al. | Software-implemented fault injection at firmware level | |
JP6104671B2 (ja) | マルチプロセッサシステム、装置、及び方法 | |
Benbachir et al. | Hypertracing: Tracing through virtualization layers | |
Pouget et al. | User level DB: a debugging API for user-level thread libraries | |
WO2023169289A1 (zh) | 一种进程的执行状态切换方法及装置 | |
WO2006093762A1 (en) | Computer platform simulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20151217 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160216 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160308 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161219 |
|
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: 20170105 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170118 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6086230 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |