JP2013175077A - 情報処理装置および情報処理装置における異常分析方法、並びにコンピュータ・プログラム - Google Patents

情報処理装置および情報処理装置における異常分析方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP2013175077A
JP2013175077A JP2012039617A JP2012039617A JP2013175077A JP 2013175077 A JP2013175077 A JP 2013175077A JP 2012039617 A JP2012039617 A JP 2012039617A JP 2012039617 A JP2012039617 A JP 2012039617A JP 2013175077 A JP2013175077 A JP 2013175077A
Authority
JP
Japan
Prior art keywords
address
physical address
instruction
access
register
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.)
Pending
Application number
JP2012039617A
Other languages
English (en)
Inventor
Kiyoshi Ueda
清詩 上田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2012039617A priority Critical patent/JP2013175077A/ja
Publication of JP2013175077A publication Critical patent/JP2013175077A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】電子機器において障害が発生した場合、CPUが障害とは、無関係(非同期)の命令を実行中であっても、その障害に関する情報をメモリアクセス命令の処理効率を低下させることなく提示する。
【解決手段】命令実行部103は、第1の物理アドレスを格納するアクセス準備命令108を実行し、プログラムカウンタから読み出した第1のアドレスをアクセス命令110が格納されたアドレスと同一のアドレスとなるように第2のアドレスを生成し、第1の物理アドレスと第2のアドレスとに基づいて、第2の物理アドレスを生成し、前記第2の物理アドレスをレジスタ102に格納することによって、前記レジスタに格納されていた前記第1の物理アドレスを前記第2の物理アドレスに置き換える複数命令109を実行し、アクセス命令を実行し、第2の制御部106は、アクセスしたアドレスが異常であった場合に、第2の物理アドレスを外部に通知する。
【選択図】図1

Description

本発明は、電子機器等の情報処理装置に対して発生した異常の原因を分析する技術分野に関する。
近年、サーバやパーソナルコンピュータ等の電子機器は、高い信頼性を実現するために、オペレーティングシステム(Operating System;以降、「OS」と称する)上でエラーが発生することを抑えるだけでなく、発生したエラーの影響を極小化することが重要となっている。しかしながら、サーバやパーソナルコンピュータ等の電子機器は、ハードウェアおよびソフトウェアの不具合が起因して、致命的な障害が発生する。そのため、致命的な障害が発生した場合、サーバやパーソナルコンピュータ等の電子機器は、動作停止(ダウン)状態となる。
例えば、OS上でプログラムを実行する際、CPU(Central Processing Unit)は、メモリ(主記憶装置)に格納された命令を実行する。OSは、CPUが実行したプログラムによって、不正なメモリアドレスへアクセスするように指定された場合、システムを継続する上でリカバリ不能な障害を発生する。OSは、リカバリ不能な不具合によって、システムをダウンする。このような、システムダウンが発生した場合、システム管理者は、障害の原因を特定する必要がある。そのため、システム管理者は、障害の原因を特定するために、不具合が発生した時のCPUレジスタ値等の情報を解析する。
より具体的に、一般的な解析方法は、CPUレジスタやメモリの内容を記憶したダンプ情報を解析する方法やOSコードの実行パスをトレースする方法が存在する。これらの解析方法は、CPUの命令実行と同期的に発生する不具合および性能問題等に対しては有効な手段である。例えば、特許文献1は、情報処理装置の障害情報格納方法について開示する。
特許文献1に記載された情報処理装置は、バス上に制御部および各入出力装置の作動状態を示すステイタス情報を、送出するための信号線を有する。さらに、特許文献1は、上記バスに上記ステイタス情報を格納するステイタス情報格納部と、上記ステイタス情報をメモリアクセスの度にステイタス情報格納部に格納する格納制御手段とを有する。これにより、特許文献1は、メモリにアクセスが実行される度にアクセスされたメモリのアドレスに対応するステイタス情報をステイタス情報格納部に格納する。このため、情報処理装置に障害が発生した場合、特許文献1は、ステイタス情報格納部に格納された内容を読み出せば、メモリ部のどのアドレスにアクセスしたときに、障害が発生したかという情報を得ることができる。さらに、特許文献1は、制御部および入出力装置がどのようなアクセスを実行した時に、障害が発生したかという情報を得ることができる。
このように、特許文献1は、メモリに格納した情報が不良になり障害が発生したタイミングおよび入出力装置等の不良原因を特定する技術を開示する。
また、特許文献2は、一定間隔毎にデータバス、アドレスバス、制御線のデータをトレースメモリに格納し、格納したバス毎のデータを基にエラー原因の解析を行うコンピュータシステムのリトライ処理装置について開示する。
特許文献2に記載されたコンピュータシステムのリトライ処理装置は、レジスタ、プログラムカウンタ、スタックポインタを有するデータ処理手段(CPU)と、主記憶手段(主記憶装置)と、データバス、アドレスバス、制御線のデータを格納するトレースメモリと、主記憶手段へのアクセスおよびトレースメモリの制御を行うシステム制御部とを有する。特許文献2は、一定間隔毎にデータ処理手段からレジスタ、プログラムカウンタ、スタックポインタの値をチェックポイントとして、主記憶手段の所定のアドレスに書き出す。また、特許文献2は、バスサイクル毎のデータバス、アドレスバス、制御線のデータをデータバス用トレースメモリ、アドレスバス用トレースメモリ、制御線用トレースメモリに格納する。さらに、エラー発生時、特許文献2は、データバス、アドレスバス、制御線のデータを保持するために、各トレースメモリに格納することを停止する。これにより、特許文献2は、トレースメモリに格納されたデータバス、アドレスバス、制御線のデータを基にエラー原因の解析を行う。さらに、特許文献2は、エラー発生後のチェックポイントの値をエラー発生前にデータ処理手段から書き出したチェックポイントの値に戻すことにより、リトライ処理を可能にする。
このように、特許文献2は、トレースメモリに格納されたデータバス、アドレスバス、制御線のデータを基にエラー原因を解析する技術を開示する。
また、特許文献3に記載された情報処理装置は、メモリアクセス命令で指定されたアドレスに、当該命令実行時のレジスタ値を付加してアドレスを拡張(拡張アドレス)し、この拡張アドレスを用いてメモリアクセスを実施する。また、メモリアクセス命令に対するエラーが発生した場合、特許文献3は、拡張アドレスをユーザに提示する。これにより、特許文献3は、エラー発生時にCPUが別の命令を実行していたとしても、エラー発生の原因となった命令を実行した際のレジスタ値とメモリアクセス命令に指定されたアドレスを基にエラー原因を解析する技術を開示する。
特開昭63−231641号公報 特開平09−081405号公報 特開2011−164730号公報
ところで、近年、CPUは、例えば、プログラムで記述されている順序とは異なる順序でプログラム中の命令を実行するアウト・オブ・オーダー(Out−of−Order)実行等の処理効率を上げるための手法が採用されている。このため、CPUは、同時に複数の命令をメモリアクセス命令の完了を待たずに実行することが可能である。そのため、システム内部の致命的な障害が発生した場合、CPUは、障害の原因となったメモリアクセス命令とは無関係(非同期)の命令を実行することによって、障害の原因となったCPUレジスタ値を変更する。一例として、コンピュータシステムは、CPUにIA−64(Intel Architecture 64)を搭載すると共に、MCA(Machine Check Architecture)によって、エラーをリカバリ処理する場合などが、これに相当する。
そのため、上述した特許文献1および特許文献2に記載された解析方法では、CPUが障害の原因となったメモリアクセス命令とは無関係の命令を実行した場合、CPUレジスタ値が変更されているために、CPUレジスタ値を解析することが困難である。このため、システム管理者は、メモリアクセス命令の発行位置を特定することが不可能である。また、システム管理者は、CPUレジスタ値の解析に時間を要したにも関らず、原因を特定できない。
このため、コンピュータシステムは、OSやプログラム等のメモリアクセスに関するバグ(不具合)が増えた場合、修正できないバグが多く残ることによって、システムの安定的な運用が困難となる。
さらに、特許文献2では、バスサイクル毎のデータバス、アドレスバス、制御線のデータをデータバス用トレースメモリ、アドレスバス用トレースメモリ、制御線用トレースメモリに格納する。このため、エラー原因を解析する際、特許文献2は、必要に応じて各トレースメモリに格納したそれぞれのデータを解析する。そのため、特許文献2は、エラーの原因を特定するまでの解析に多大な時間を必要とする。また、特許文献2は、CPUが同時に複数の命令を実行した場合に関して何ら言及されていない。
また、特許文献3では、メモリアクセス命令で指定されたアドレスに、当該命令実行時のレジスタ値を付加することで、エラー発生の原因となったメモリアクセス命令とレジスタ値とを取得する。これにより、特許文献3は、エラー発生時にCPUが別の命令を実行していたとしても、エラー発生の原因となったメモリアクセス命令とレジスタ値を基にエラー原因を解析する。特許文献3は、エラーの原因を特定することができるが、メモリアクセス命令で指定されたアドレスにレジスタ値を付加するため、アドレス長が長くなる場合がある。そのため、特許文献3は、メモリアドレスバスを流れるデータ量が増加し、メモリアクセス命令の処理速度を低下させる等の影響を及ぼす場合がある。
本発明の主たる目的は、上述した致命的な障害が発生した場合、CPUが障害とは、無関係(非同期)の命令を実行中であっても、その障害に関する情報をメモリアクセス命令の処理効率を低下させることなく提示することが可能な情報処理装置等を提供することにある。
上記の課題を達成すべく、本発明に係る情報処理装置は、以下の構成を備えることを特徴とする。
即ち、本発明に係る情報処理装置は、
CPUの内部に命令実行部と、記憶デバイスに対するアクセス命令の実行によって、出力された第2の物理アドレスと出力先のデバイスとを基に前記第2の物理アドレスと第1の物理アドレスとの何れか一方を選択する第1の制御部とを有し、前記CPUの外部に、前記命令実行部によって、実行される命令を格納する主記憶装置と、前記第1の制御部によって選択された前記第2の物理アドレスに基づいて、前記記憶デバイスにアクセスする第2の制御部とを有し、前記命令実行部は、前記アクセス命令の実行に際し、指定された前記記憶デバイスにアクセスするところの、前記第1の物理アドレスをレジスタに格納するアクセス準備命令を実行し、前記アクセス準備命令の実行に応じて、プログラムカウンタから読み出した第1のアドレスを前記アクセス命令が格納されたアドレスと同一のアドレスとなるように第2のアドレスを生成し、前記第1の物理アドレスと前記第2のアドレスとに基づいて、前記第2の物理アドレスを生成し、前記第2の物理アドレスを前記レジスタに格納することによって、前記レジスタに格納されていた前記第1の物理アドレスを前記第2の物理アドレスに置き換える複数命令を実行し、前記アクセス命令を実行し、前記第2の制御部は、前記第1の制御部によって選択された前記第2の物理アドレスを基に前記記憶デバイスにアクセスした際に、アクセスしたアドレスが異常であった場合に、前記第2の物理アドレスを外部に通知することを特徴とする。
また、同目的を達成すべく、本発明に係る情報処理装置における異常分析方法は、以下の構成を備えることを特徴とする。
即ち、本発明に係る情報処理装置における異常分析方法は、
前記アクセス命令の実行に際し、指定された前記記憶デバイスにアクセスするところの、前記第1の物理アドレスをレジスタに格納するアクセス準備命令を実行し、前記アクセス準備命令の実行に応じて、プログラムカウンタから読み出した第1のアドレスを前記アクセス命令が格納されたアドレスと同一のアドレスとなるように第2のアドレスを生成し、前記第1の物理アドレスと前記第2のアドレスとに基づいて、前記第2の物理アドレスを生成し、前記第2の物理アドレスを前記レジスタに格納することによって、前記レジスタに格納されていた前記第1の物理アドレスを前記第2の物理アドレスに置き換える複数命令を実行し、前記アクセス命令を実行し、前記第2の物理アドレスと出力先のデバイスとを基に前記第2の物理アドレスと第1の物理アドレスとの何れか一方を選択し、選択された前記第2の物理アドレスを基に前記記憶デバイスにアクセスした際に、アクセスしたアドレスが異常であった場合に、前記第2の物理アドレスを外部に通知する。
尚、同目的は、上記の各構成を有する情報処理装置および情報処理装置における異常分析方法を、コンピュータによって実現するコンピュータ・プログラム、およびそのコンピュータ・プログラムが格納されている、読み取り可能な記憶媒体によっても達成される。
本発明によれば、致命的な障害が発生した場合、CPUが障害とは、無関係(非同期)の命令を実行中であっても、その障害に関する情報をメモリアクセス命令の処理効率を低下させることなく提示することが可能な情報処理装置等を提共することができる。
本発明の共通する実施形態における情報処理装置の構成を示すブロック図である。 本発明の第1の実施形態における情報処理装置の構成を示すブロック図である。 本発明の第2の実施形態における情報処理装置の構成を示すブロック図である。 本発明の第3の実施形態における情報処理装置の構成を示すブロック図である。 本発明の第3の実施形態の実施例における情報処理装置の構成を示すブロック図である。 本発明の第3の実施形態の実施例における情報処理装置が行う処理を示すフローチャート図である。 本発明の第4の実施形態における情報処理装置の構成を示すブロック図である。 本発明の第4の実施形態の実施例における情報処理装置の構成を示すブロック図である。 本発明の第4の実施形態の実施例における情報処理装置が行う処理を示すフローチャート図である。
以下、本発明の実施形態について図面を参照して詳細に説明する。
<共通する実施形態>
図1は、本発明の共通する実施形態における情報処理装置100の構成を示すブロック図である。
図1において、情報処理装置100は、大別して、CPU101、第2の制御部106、主記憶装置107を有する。
より具体的に、CPU101は、命令実行部103、第1の制御部104を有する。
命令実行部103は、OSが発行する命令に従って各種処理を実行可能である。また、命令実行部103は、主記憶装置107にアクセスすると共に、主記憶装置107に格納された各種命令を実行する。
レジスタ102は、命令実行部103によって、命令を実行する際に必要なレジスタ値を格納する記憶ユニットである。命令実行部103は、各種命令を実行するために必要なレジスタ値をレジスタ102から読み出す。また、命令実行部103は、各種命令を実行するために必要なレジスタ値をレジスタ102に格納する。
尚、レジスタは、例えば、命令実行部103が次に実行する命令を格納するプログラムカウンタ(プログラムレジスタ)や命令実行に必要な各種データを格納する汎用レジスタ等、現在ではレジスタについて一般的に知られているため、本実施形態における詳細な説明は省略する(以下の実施形態においても同様)。
主記憶装置107は、各種命令やデータを格納する記憶ユニットである。また、主記憶装置107は、CPU101によって実行される命令が格納されている。主記憶装置107に格納された命令は、CPU101によって、不図示の記憶装置等の記憶デバイスに格納しているソフトウェア・プログラム(コンピュータ・プログラム、以降「プログラム」と称する)を実行する際に主記憶装置107に格納される。また、CPU101は、主記憶装置107に格納された命令を実行する。
以下の説明において、説明の便宜上、一例として、各種命令は、プログラムを実行する際に、主記憶装置107に格納された場合について説明するが、これに限らず、各種命令は、不図示の記憶装置等の記憶デバイスに格納してもよい(以下の実施形態においても同様)。
記憶デバイス111は、各種命令やデータを格納する記憶ユニットである。
より具体的に、主記憶装置107に格納された命令は、アクセス準備命令108、複数命令109、アクセス命令110で構成されている。
以下の説明において、説明の便宜上、アクセス準備命令108にてレジスタに格納する物理アドレスを第1の物理アドレスと称する。また、アクセス準備命令108にて第1の物理アドレスを格納するレジスタを第1のレジスタと称する。さらに、複数命令109にてプログラムカウンタから読み出したアドレスを第1のアドレスと称する。複数命令109にて第1のアドレスを格納するレジスタを第2のレジスタと称する。複数命令109にて生成したアドレスを第2のアドレスと称する。複数命令109にて生成した物理アドレスを第2の物理アドレスと称する(以下の実施形態においても同様)。
アクセス準備命令108は、OSやプログラムの実行によって指定された、記憶デバイス111に対してアクセスするための第1の物理アドレスをレジスタ(第1のレジスタ)に格納する命令が含まれている。
一般的に知られた記憶デバイス111に対してアクセスする場合、命令実行部103は、第1の物理アドレスを用いてアクセス命令110を実行する。本実施形態では、第1の物理アドレスのビット列のうち上位側にアクセス命令が格納されたアドレス情報を格納するため、複数命令109を実行する。
より具体的に、複数命令109は、第1の物理アドレスが第1のレジスタに格納されるのに応じて、プログラムカウンタに格納されたアドレス(第1のアドレス)を取得すると共に、取得したアドレス(第1のアドレス)をレジスタ(第2のレジスタ)に格納する命令が含まれている。
尚、プログラムカウンタに格納されたアドレスは、命令実行部103が次に実行する命令の位置を指定することは、現在では一般的に知られているため、本実施形態における詳細な説明は省略する(以下の実施形態においても同様)。
次に、複数命令109は、第1のアドレスが第2のレジスタに格納されるのに応じて、第1のアドレスを、アクセス命令110が格納されているアドレスになるよう所定の演算によって、第2のアドレスを生成する。また、複数命令109は、第2のレジスタに格納した第1のアドレスを、生成した第2のアドレスに置換する命令が含まれている。
より具体的に、一例として、数値を例に説明する。複数命令109は、第1のアドレス(0x00001070)を、アクセス命令110が格納されているアドレス(0x00001088)になるように第1のアドレスに格納された命令とアクセス命令110との間で実行されるアクセス命令110を含む命令数分の命令長(3命令長、0x18)を第1のアドレス(0x00001070)に合算(加算)することによって、第2のアドレス(0x00001088)を算出する。
尚、本実施形態は、一例として、アクセス命令110が格納された位置を特定するために、アクセス命令110が格納されているアドレスになるように第2のアドレスを生成したが、これに限らず、格納された位置を特定したい命令や情報等が格納されているアドレスになるようにしてもよい。
また、第2のアドレスを算出する際、複数命令109は、格納された位置を特定したい命令や情報等によって、第1のアドレスに格納された命令と格納された位置を特定したい命令との間で実行される命令数が異なるため、第1のアドレスに格納された命令と格納された位置を特定したい命令との間で実行される命令数に応じて適切に算出する必要がある。
尚、第2のアドレスは、障害が発生した際、ユーザに各種命令の発行位置を提示することによって、障害の原因を容易に特定するために提示する情報であって、ユーザ自らが第1のアドレスを基に命令の発行位置を特定できるのであれば、省略してもよい。
複数命令109は、第2のレジスタに格納した第1のアドレスを、生成した第2のアドレスに置換されるのに応じて、第1のレジスタに格納された第1の物理アドレスと第2のレジスタに格納された第2のアドレスとを基に第2の物理アドレスを生成する。さらに、複数命令109は、第1のレジスタに格納された第1の物理アドレスを、生成した第2の物理アドレスに置換する命令が含まれている。
より具体的に、一例として、数値を例に説明する。第2の物理アドレスの生成方法は、第2のアドレス(0x00001088)のビット列のうち下位側の値を第1の物理アドレス(0x0000ffff)の上位ビット側に格納することによって、第2の物理アドレス(0x1088ffff)を生成する。
アクセス命令110は、第1のレジスタに格納された第2の物理アドレスを基に記憶デバイス111に対してアクセス要求する命令が含まれている。
第1の制御部104は、第2の物理アドレスを基に第1の物理アドレスを選択し、選択した第1の物理アドレスをキャッシュ105に出力する。
第1の制御部104は、キャッシュ105に所望のデータがあった場合、キャッシュ105から所望のデータを取得すると共に、取得した所望のデータを命令実行部103に出力する。一方、第1の制御部104は、キャッシュ105に所望のデータが無かった場合、第2の物理アドレスを選択し、選択した第2の物理アドレスを第2の制御部106に出力する。
キャッシュ105は、記憶デバイス111および主記憶装置107に格納されたデータにおいて、命令実行部103が頻繁に使用するデータを格納する。尚、キャッシュ105は、現在では一般的に知られているため、本実施形態における詳細な説明は省略する(以下の実施形態においても同様)。
第2の制御部106は、第1の制御部104から出力された第2の物理アドレスのビット列のうち下位側にあるアドレスを基に第1の物理アドレスを生成し、生成した第1の物理アドレスを基に記憶デバイス111にアクセスする。
また、第2の制御部106は、第1の物理アドレスを基にアクセスした範囲が記憶デバイス111の範囲外である場合等の異常を検知する。第2の制御部106は、異常を検知した場合、第2の物理アドレスを出力する。
次に、本発明の共通する実施形態に係るより具体的な情報処理装置100の動作について説明する。ここでは、OSが発行する命令において記憶デバイス111のアドレスを指定してアクセスする際に、アクセス命令の位置を特定する場合の動作について、詳細に説明する。
命令実行部103は、記憶デバイス111に格納されたデータ等を取得するために、アクセス命令110を実行するための準備を行う。
命令実行部103は、主記憶装置107に格納された命令を順に実行する。
アクセス命令110の実行に先立って、命令実行部103は、アクセス準備命令108を実行する。命令実行部103は、アクセス準備命令108を実行することによって、OSやプログラムの実行によって指定された、記憶デバイス111に対してアクセスするための第1の物理アドレスを第1のレジスタに格納する。
次に、命令実行部103は、第1の物理アドレスが第1のレジスタに格納されるのに応じて、複数命令109を実行する。命令実行部103は、複数命令109を実行することによって、プログラムカウンタに格納された第1のアドレスを取得すると共に、取得した第1のアドレスを第2のレジスタに格納する。
命令実行部103は、第1のアドレスが第2のレジスタに格納されるのに応じて、第2のレジスタに格納した第1のアドレスを、アクセス命令110が格納されているアドレスになるよう所定の演算によって、第2のアドレスを生成する。また、命令実行部103は、第2のレジスタに格納した第1のアドレスを、生成した第2のアドレスに置換する。
命令実行部103は、第2のレジスタに格納した第1のアドレスを、生成した第2のアドレスに置換されるのに応じて、第1のレジスタに格納された第1の物理アドレスと第2のレジスタに格納された第2のアドレスとを基に第2の物理アドレスを生成する。さらに、命令実行部103は、第1のレジスタに格納された第1の物理アドレスを、生成した第2の物理アドレスに置換する。
命令実行部103は、第1のレジスタに格納された第1の物理アドレスを、生成した第2の物理アドレスに置換されるのに応じて、アクセス命令110を実行する。命令実行部103は、アクセス命令110を実行することによって、第1のレジスタに格納された第2の物理アドレスを基に記憶デバイス111に対してアクセス要求する。
また、命令実行部103は、アクセス命令110を実行することによって、記憶デバイス111にアクセスするための第2の物理アドレスを、第1の制御部104に出力する。
第1の制御部104は、命令実行部103から出力された第2の物理アドレスを受信する。さらに、第1の制御部104は、受信した第2の物理アドレスを基に第1の物理アドレスを選択し、選択した第1の物理アドレスをキャッシュ105に出力する。
また、第1の制御部104は、第1の物理アドレスを基にキャッシュ105を参照し、キャッシュ105に所望のデータがあった場合、キャッシュ105から所望のデータを取得すると共に、取得した所望のデータを命令実行部103に出力する。一方、第1の制御部104は、キャッシュ105に所望のデータが無かった場合、第2の物理アドレスを選択し、選択した第2の物理アドレスを第2の制御部106に出力する。
第2の制御部106は、第1の制御部104から出力された第2の物理アドレスを受信すると共に、受信した第2の物理アドレスのビット列のうち下位側にあるアドレスを基に第1の物理アドレスを生成し、生成した第1の物理アドレスを基に記憶デバイス111にアクセスする。
第2の制御部106は、記憶デバイス111にアクセスした際、記憶デバイス111のアドレス範囲外等のリカバリ不可能な値である場合、アクセスエラーであると判別すると共に、エラー情報として、第2の物理アドレスを出力する。一方、第2の制御部106は、記憶デバイス111のアドレス範囲内であり正常である場合、記憶デバイス111からデータを読み出すと共に、読み出したデータを命令実行部103に出力する。
第2の制御部106は、アクセスエラーであると判別した場合、例えば、OSとインターフェイスを有する不図示の通知部を経由してOSに第2の物理アドレスを出力することによって、システム管理者やユーザに第2の物理アドレスを通知する。
このように本実施の形態に係る情報処理装置100によれば、障害が発生した場合、CPUが障害とは、無関係(非同期)の命令を実行中であっても、その障害に関する情報をメモリアクセス命令の処理効率を低下させることなく提示することができる。その理由は、本実施形態によれば、提示された第2の物理アドレスは、記憶デバイスにアクセスしたアドレスにアクセス命令を発行した位置を格納しているからである。そのため、システム管理者は、取得した情報を解析することが可能となるため、障害の原因を特定することができる。さらに、情報処理装置100は、引用文献3と比較して拡張アドレスのアドレス長が短くなるため、メモリアドレスバスを流れるデータ量が大幅に軽減される。そのため、情報処理装置100は、メモリアクセスの処理効率を低下させることなく実現することができる。
<第1の実施形態>
次に、上述した本発明の共通する実施形態に係る情報処理装置を基本とする第1の実施形態について説明する。以下の説明においては、本実施形態に係る特徴的な部分を中心に説明する。その際、上述した各実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明は省略する。
図2は、本発明の第1の実施形態における情報処理装置1の構成を示すブロック図である。
図2において、情報処理装置1は、大別して、CPU2、第2の制御部14、主記憶装置7を有する。
より具体的に、CPU2は、命令実行部3、第1の制御部5を有する。
尚、CPU2は、共通の実施形態におけるCPU101に相当する。命令実行部3は、共通の実施形態における命令実行部103に相当する。レジスタ4は、共通の実施形態におけるレジスタ102に相当する。第1の制御部5は、共通の実施形態における第1の制御部104に相当する。第2の制御部14は、共通の実施形態における第2の制御部106に相当する。主記憶装置7は、共通の実施形態の主記憶装置107に相当する。キャッシュ6は、共通の実施形態のキャッシュ105に相当する。
また、第1の命令9、第2の命令10、第4の命令12は、上述した共通の実施形態における複数命令109に相当し、複数命令109を命令単位で分割したものである(各命令の詳細については、後述する)。本実施形態では、共通の実施形態において説明した複数命令109を命令単位で分割すると共に、第3の命令11を適用した場合について説明する。
尚、アクセス準備命令8は、共通の実施形態におけるアクセス準備命令108に相当する。また、アクセス命令13は、共通の実施形態におけるアクセス命令110に相当する。
より具体的に、第1の命令9は、プログラムカウンタに格納された第1のアドレスを取得すると共に、取得した第1のアドレスを第2のレジスタに格納する命令が含まれている。
第2の命令10は、第2のレジスタに格納した第1のアドレスを、アクセス命令13が格納されているアドレスになるよう所定の演算によって、第2のアドレスを生成する。また、第2の命令10は、第2のレジスタに格納した第1のアドレスを、生成した第2のアドレスに置換する命令が含まれている。
以下の説明において、説明の便宜上、第3の命令11にて生成したアドレスを第3のアドレスと称する(以下の実施形態においても同様)。
第3の命令11は、第2のレジスタに格納された第2のアドレスのビット列のうち下位側の値を上位側にシフトすることによって、アドレス(第3のアドレス)を生成する。さらに、第3の命令11は、第2のレジスタに格納された第2のアドレスを、生成した第3のアドレスに置換する命令が含まれている。
第4の命令12は、第1のレジスタに格納された第1の物理アドレスと第2のレジスタに格納された第3のアドレスとを基に第2の物理アドレスを生成する。さらに、第4の命令12は、第1のレジスタに格納された第1の物理アドレスを、生成した第2の物理アドレスに置換する命令が含まれている。
より具体的に、一例として、第4の命令12は、第1の物理アドレスと第3のアドレスとを合算(加算)することによって、第2の物理アドレスを生成する。
次に、本発明の第1の実施形態に係るより具体的な情報処理装置1の動作について説明する。ここでは、OSが発行する命令において主記憶装置7のアドレスを指定してアクセスする際に、アクセス命令の位置を特定する場合の動作について、詳細に説明する。
命令実行部3は、主記憶装置7に格納されたデータ等を取得するために、アクセス命令13を実行するための準備を行う。
命令実行部3は、主記憶装置7に格納された命令を順に実行する。
アクセス命令13の実行に先立って、命令実行部3は、アクセス準備命令8を実行する。命令実行部3は、アクセス準備命令8を実行することによって、OSやプログラムの実行によって指定された、第1の物理アドレスを第1のレジスタに格納する。
次に、命令実行部3は、第1の命令9を実行する。命令実行部3は、第1の命令9を実行することによって、プログラムカウンタに格納された第1のアドレスを取得すると共に、取得した第1のアドレスを第2のレジスタに格納する。
命令実行部3は、第2の命令10を実行する。命令実行部3は、第2の命令10を実行することによって、第2のレジスタに格納した第1のアドレスを、アクセス命令13が格納されているアドレスになるよう所定の演算によって、第2のアドレスを生成する。
また、命令実行部3は、第2の命令10を実行することによって、第2のレジスタに格納した第1のアドレスを、生成した第2のアドレスに置換する。
命令実行部3は、第3の命令11を実行する。命令実行部3は、第3の命令11を実行することによって、第2のレジスタに格納された第2のアドレスのビット列のうち下位側の値を上位側にシフトすることによって、第3のアドレスを生成する。
さらに、命令実行部3は、第3の命令11を実行することによって、第2のレジスタに格納された第2のアドレスを、生成した第3のアドレスに置換する。
命令実行部3は、第4の命令12を実行する。命令実行部3は、第4の命令12を実行することによって、第1のレジスタに格納された第1の物理アドレスと第2のレジスタに格納された第3のアドレスとを基に第2の物理アドレスを生成する。
さらに、命令実行部3は、第4の命令12を実行することによって、第1のレジスタに格納された第1の物理アドレスを、生成した第2の物理アドレスに置換する。
命令実行部3は、アクセス命令13を実行する。命令実行部3は、アクセス命令13を実行することによって、第1のレジスタに格納された第2の物理アドレスを基に主記憶装置7に対してアクセス要求する。
また、命令実行部3は、アクセス命令13を実行することによって、主記憶装置7にアクセスするための第2の物理アドレスを、第1の制御部5に出力する。
第1の制御部5は、命令実行部3から出力された第2の物理アドレスを受信する。さらに、第1の制御部5は、受信した第2の物理アドレスを基に第1の物理アドレスを選択し、選択した第1の物理アドレスをキャッシュ6に出力する。
また、第1の制御部5は、第1の物理アドレスを基にキャッシュ6を参照し、キャッシュ6に所望のデータがあった場合、キャッシュ6から所望のデータを取得すると共に、取得した所望のデータを命令実行部3に出力する。一方、第1の制御部5は、キャッシュ6に所望のデータが無かった場合、第2の物理アドレスを選択し、選択した第2の物理アドレスを第2の制御部14に出力する。
第2の制御部14は、第1の制御部5から出力された第2の物理アドレスを受信すると共に、受信した第2の物理アドレスのビット列のうち下位側にあるアドレスを基に第1の物理アドレスを生成し、生成した第1の物理アドレスを基に主記憶装置7にアクセスする。
第2の制御部14は、主記憶装置7にアクセスした際、主記憶装置7のアドレス範囲外等のリカバリ不可能な値である場合、アクセスエラーであると判別すると共に、エラー情報として、第2の物理アドレスを出力する。一方、第2の制御部14は、主記憶装置7のアドレス範囲内であり正常である場合、主記憶装置7からデータを読み出すと共に、読み出したデータを命令実行部3に出力する。
第2の制御部14は、アクセスエラーであると判別した場合、例えば、OSとインターフェイスを有する不図示の通知部を経由してOSに第2の物理アドレスを出力することによって、システム管理者やユーザに第2の物理アドレスを通知する。
このように本実施の形態に係る情報処理装置1によれば、共通の実施形態において説明した効果を教授できると共に、さらに、効率よく第2の物理アドレスを算出することができる。その理由は、本実施形態は、第3の命令11を追加実行することによって、第4の命令12の実行に先立って、第2のアドレスのビット列のうち下位側の値を上位側にシフトされているため、効率よく第2の物理アドレスを算出することができるからである。
<第2の実施形態>
次に、上述した共通する実施形態および第1の実施形態に係る情報処理装置を基本とする第2の実施形態について説明する。以下の説明においては、本実施形態に係る特徴的な部分を中心に説明する。その際、上述した共通する実施形態および第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明は省略する。
図3は、本発明の第2の実施形態における情報処理装置1aの構成を示すブロック図である。
本実施形態では、OSによる主記憶装置を管理する方法の1つである仮想的なアドレス(仮想アドレス)を割り当てて管理する方法(以降、「仮想記憶」と称する)を、適用した場合について説明する。
また、説明の便宜上、第1の実施形態と本実施形態とを分けて説明するが、このような構成には限定されない。例えば、第1の実施形態と本実施形態とを合わせた構成において、実現してもよい。
ここで、一般的な仮想記憶は、主記憶装置7に対するアクセス命令が実行されると、仮想アドレスを物理アドレスに変換を行う。さらに、仮想記憶は、仮想アドレスと物理アドレスとを対応させた情報を、CPU内部に設けたトランスレーション・ルックアサイド・バッファ(Translation Look−aside Buffer;以降、「TLB」と称する)に保持する。これにより、CPUは、仮想アドレスを物理アドレスに変換する際、TLBを参照することで変換処理の高速化を実現する。尚、仮想記憶の技術自体は、一般的な手法を採用することができるので、本実施形態における詳細な説明は省略する。
また、一般的に知られた仮想記憶における主記憶装置7に対してアクセスする場合、命令実行部3は、アクセス準備命令8によって、算出された第1の物理アドレスを用いてTLB挿入命令22、アクセス命令13を順に実行する。しかし、本実施形態は、第1の物理アドレスのビット列のうち上位側に命令が格納されたアドレス情報を格納するために、第1の命令9乃至第4の命令12を実行する(以下の実施形態においても同様)。
本実施形態では、第1の実施形態において説明した情報処理装置1に、大別して、CPU20、主記憶装置7に格納された命令を適用した場合について説明する。
TLB21は、仮想アドレスと物理アドレスとを対応させた情報を保持すると共に、保持した情報を基に仮想アドレスを物理アドレスに変換する。
より具体的に、本実施形態に係る命令は、第1の実施形態において説明した主記憶装置7に格納した命令に、さらに、TLB挿入命令22を有する。
TLB挿入命令22は、仮想アドレスに対応する第2の物理アドレスを変換するための変換情報をTLB21に書き込む命令が含まれている。
次に、本発明の第2の実施形態に係るより具体的な情報処理装置1aの動作について説明する。
命令実行部3は、主記憶装置7に格納されたデータ等を取得するために、アクセス命令13を実行するための準備を行う。
命令実行部3は、主記憶装置7に格納された命令を順に実行する。
命令実行部3は、アクセス準備命令8を実行する。命令実行部3は、アクセス準備命令8を実行することによって、OSやプログラムの実行によって指定された、仮想アドレスを基に対応する第1の物理アドレスを算出する。さらに、命令実行部3は、アクセス準備命令8を実行することによって、第1の物理アドレスを第1のレジスタに格納する。
次に、命令実行部3は、第1の命令9を実行する。命令実行部3は、第1の命令9を実行することによって、プログラムカウンタに格納された第1のアドレスを取得すると共に、取得した第1のアドレスを第2のレジスタに格納する。
命令実行部3は、第2の命令10を実行する。命令実行部3は、第2の命令10を実行することによって、第2のレジスタに格納された第1のアドレスをTLB挿入命令22が格納されているアドレスになるように所定の演算によって、第2のアドレスを生成する。
また、命令実行部3は、第2の命令10を実行することによって、第2のレジスタに格納した第1のアドレスを、生成した第2のアドレスに置換する。
命令実行部3は、第3の命令11を実行する。命令実行部3は、第3の命令11を実行することによって、第2のレジスタに格納された第2のアドレスのビット列のうち下位側の値を上位側にシフトすることによって、第3のアドレスを生成する。
さらに、命令実行部3は、第3の命令11を実行することによって、第2のレジスタに格納された第2のアドレスを、生成した第3のアドレスに置換する。
命令実行部3は、第4の命令12を実行する。命令実行部3は、第4の命令12を実行することによって、第1のレジスタに格納された第1の物理アドレスと第2のレジスタに格納された第3のアドレスとを基に第2の物理アドレスを生成する。
さらに、命令実行部3は、第4の命令12を実行することによって、第1のレジスタに格納された第1の物理アドレスを、生成した第2の物理アドレスに置換する。
命令実行部3は、TLB挿入命令22を実行する。命令実行部3は、TLB挿入命令22を実行することによって、仮想アドレスに対応する第2の物理アドレスを変換するための情報を、TLB21に書き込む。
命令実行部3は、アクセス命令13を実行する。命令実行部3は、アクセス命令13を実行することによって、仮想アドレスを基に主記憶装置7に対してアクセス要求する。
また、命令実行部3は、アクセス命令13を実行することによって、主記憶装置7にアクセスするための仮想アドレスを、第1の制御部5に出力する。
第1の制御部5は、仮想アドレスを基にTLB21を参照する。第1の制御部5は、TLB21から変換情報を取得できなかった場合、例外処理(アクセス準備命令8からTLB挿入命令22までの命令)を実行する。
一方、第1の制御部5は、TLB21から変換情報(第2の物理アドレス)を取得できた場合、取得した第2の物理アドレスを基に第1の物理アドレスを選択し、選択した第1の物理アドレスをキャッシュ6に出力する。
また、第1の制御部5は、第1の物理アドレスを基にキャッシュ6を参照し、キャッシュ6に所望のデータがあった場合、キャッシュ6から所望のデータを取得すると共に、取得した所望のデータを命令実行部3に出力する。一方、第1の制御部5は、キャッシュ6に所望のデータが無かった場合、第2の物理アドレスを選択し、選択した第2の物理アドレスを第2の制御部14に出力する。
第2の制御部14は、第1の制御部5から出力された第2の物理アドレスを受信すると共に、受信した第2の物理アドレスのビット列のうち下位側にあるアドレスを基に第1の物理アドレスを生成し、生成した第1の物理アドレスを基に主記憶装置7にアクセスする。
第2の制御部14は、主記憶装置7にアクセスした際、主記憶装置7のアドレス範囲外等のリカバリ不可能な値である場合、アクセスエラーであると判別すると共に、エラー情報として、第2の物理アドレスを出力する。一方、第2の制御部14は、主記憶装置7のアドレス範囲内であり正常である場合、主記憶装置7からデータを読み出すと共に、読み出したデータを命令実行部3に出力する。
第2の制御部14は、アクセスエラーであると判別した場合、例えば、OSとインターフェイスを有する不図示の通知部を経由してOSに第2の物理アドレスを出力することによって、システム管理者やユーザに第2の物理アドレスを通知する。
このように本実施の形態に係る情報処理装置1aによれば、各実施形態において説明した効果を享受できると共に、さらに、仮想記憶を適用した場合であっても、障害に関する情報を提示することができる。その理由は、本実施形態によれば、提示された第2の物理アドレスは、主記憶装置にアクセスしたアドレスにTLB挿入命令を発行した位置を格納しているからである。そのため、システム管理者は、TLBに対して誤った変換情報が書き込まれた場合においても、TLB挿入命令を発行した位置を特定することができる。
<第3の実施形態>
次に、上述した各実施形態に係る情報処理装置を基本とする第3の実施形態について説明する。以下の説明においては、本実施形態に係る特徴的な部分を中心に説明する。その際、上述した各実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明は省略する。
まず、本発明の第3の実施形態における情報処理装置について、図4を参照して説明する。
図4は、本発明の第3の実施形態における情報処理装置1bの構成を示すブロック図である。
本実施形態では、第1の実施形態において説明した情報処理装置1に、大別して、CPU30を適用した場合について説明する。
より具体的に、CPU30は、第1の実施形態において説明した情報処理装置1に、さらに、処理部31を有する。
第2の制御部14は、主記憶装置7にアクセスした際、主記憶装置7のアドレス範囲外等のリカバリ不可能な値である場合、アクセスエラーであると判別すると共に、エラー情報として、第2の物理アドレスを処理部31に出力する。
処理部31は、第2の制御部14がアクセスエラーであると判別した場合、エラー情報として、第2の物理アドレスを第2の制御部14より受信する。さらに、処理部31は、第2の物理アドレスをユーザに提示する。また、処理部31は、異常処理を実行する。
この異常処理は、例えばコンピュータシステムをダウンする等、一般的な手法を採用することができるので、実施形態における詳細な説明は省略する(以下の実施形態においても同様)。
このように本実施の形態に係る情報処理装置1bによれば、第1の実施形態において説明した効果を享受できると共に、さらに、第1の実施形態において説明したアクセスエラーが発生した場合の通知方法に代わり、CPU内部に処理部31を設けることで、より効率的に取得した第2の物理アドレスをシステム管理者に提示する。そのため、システム管理者は、より効率的に障害の原因を解析することができる。さらに、本実施形態によれば、処理部31は、障害の原因を解析後に異常処理を実行することができる。
(実施例)
次に、上述した第3の実施形態に係るより具体的な実施例として、情報処理装置1cについて、図5乃至図6を参照して説明する。以下の説明においては、本実施例に係る特徴的な部分を中心に説明する。その際、上述した各実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明は省略する。
図5は、本発明の実施例における情報処理装置1cの構成を示すブロック図である。
図5において、情報処理装置1cは、大別して、CPU40、メモリコントローラ43、主記憶装置7を有する。
より具体的に、CPU40は、命令実行部3、メモリアクセス部41、エラー処理部42を有する。
尚、メモリアクセス部41は、第1の実施形態における第1の制御部5に相当する。エラー処理部42は、第3の実施形態における処理部31に相当する。メモリコントローラ43は、第1の実施形態における第2の制御部14に相当する。
図6は、本発明の実施例における情報処理装置1cが行う処理を示すフローチャートである。係るフローチャートに沿って情報処理装置の処理手順を説明する。係るフローチャートは、主記憶装置7に格納された命令をCPU40が実行することによって実現される。
ここでは、説明の便宜上、一例として、第1の物理アドレスは、例えば、0x0000ffffと設定し、設定した第1の物理アドレスの上位16ビットは、アーキテクチャとして未使用とする。また、第1の物理アドレスは、不正なアドレスであり、リカバリ不可能である場合について説明する。尚、本実施形態では、説明の便宜上、値を例に説明するが、これに限定されない。また、「0x」は、16進数表記であることを示す。尚、第1の物理アドレスの上位16ビットは、任意の値が入っていても良い。
命令実行部3は、主記憶装置7に格納されたデータ等を取得するために、主記憶装置7に対するアクセス命令13を実行するための準備を行う。
命令実行部3は、主記憶装置7に格納された命令を取り出して順に実行する。
アクセス命令13の実行に先立って、命令実行部3は、アクセス準備命令8を実行する。命令実行部3は、アクセス準備命令8を実行することによって、OSやプログラムの実行によって指定された、第1の物理アドレス(0x0000ffff)を第1のレジスタに格納する(ステップS1)。
次に、命令実行部3は、第1の命令9を実行する。命令実行部3は、第1の命令9を実行することによって、プログラムカウンタに格納された第1のアドレス(0x00001070)を取得すると共に、取得した第1のアドレス(0x00001070)を第2のレジスタに格納する(ステップS2)。
命令実行部3は、第2の命令10を実行する。命令実行部3は、第2の命令10を実行することによって、第2のレジスタに格納された第1のアドレス(0x00001070)を、アクセス命令13が格納されているアドレス(0x00001088)になるよう所定の演算によって、第2のアドレス(0x00001088)を生成する。また、命令実行部3は、第2の命令10を実行することによって、第2のレジスタに格納した第1のアドレス(0x00001070)を、生成した第2のアドレス(0x00001088)に置換する(ステップS3)。
命令実行部3は、第3の命令11を実行する。命令実行部3は、第3の命令11を実行することによって、第2のレジスタに格納された第2のアドレス(0x00001088)を基に第2のアドレスのビット列のうち下位側の値を上位側にシフトすることにより第3のアドレス(0x10880000)を生成する。
さらに、命令実行部3は、第3の命令11を実行することによって、第2のレジスタに格納された第2のアドレス(0x00001088)を生成した第3のアドレス(0x10880000)に置換する(ステップS4)。
命令実行部3は、第4の命令12を実行する。命令実行部3は、第4の命令12を実行することによって、第1のレジスタに格納された第1の物理アドレス(0x0000ffff)と第2のレジスタに格納された第3のアドレス(0x10880000)とを基に第2の物理アドレス(0x1088ffff)を生成する。
さらに、命令実行部3は、第4の命令12を実行することによって、第1のレジスタに格納された第1の物理アドレス(0x0000ffff)を、生成した第2の物理アドレス(0x1088ffff)に置換する(ステップS5)。
尚、一例として、第2の物理アドレスは、第1の物理アドレス(0x0000ffff)の上位16ビットと第3のアドレス(0x10880000)の下位16ビットとが全て0になるように準備したため、第1の物理アドレスと第3のアドレスとの和を取ることで実現する。さらに、第1の物理アドレスと第2のアドレスとは、それぞれが32ビットの情報であり、全ての情報を格納することができない。そのため、第1の物理アドレスと第2のアドレスとは、上位番地(上位ビット)は同じ値であると仮定することによって、第2のアドレス(0x00001088)の下位16ビット側の値を上位16ビット側にシフトすることで、第3のアドレス(0x10880000)を生成する方法を採用している。
命令実行部3は、アクセス命令13を実行する。命令実行部3は、アクセス命令13を実行することによって、第1のレジスタに格納された第2の物理アドレス(0x1088ffff)を基に主記憶装置7に対してアクセス要求する。
また、命令実行部3は、アクセス命令13を実行することによって、主記憶装置7にアクセスするための第2の物理アドレス(0x1088ffff)を、メモリアクセス部41に出力する(ステップS6)。
メモリアクセス部41は、命令実行部3から出力された第2の物理アドレス(0x1088ffff)を受信する。さらに、メモリアクセス部41は、受信した第2の物理アドレス(0x1088ffff)を基に第1の物理アドレス(0x0000ffff)を選択し、選択した第1の物理アドレス(0x0000ffff)をキャッシュ6に出力する。
メモリアクセス部41は、第1の物理アドレス(0x0000ffff)を基にキャッシュ6を参照し、キャッシュ6に所望のデータがあった場合(ステップS7において「YES」)、キャッシュ6から所望のデータを取得すると共に、取得した所望のデータを命令実行部3に出力する(ステップS8)。
一方、メモリアクセス部41は、キャッシュ6に所望のデータが無かった場合(ステップS7において「NO」)、第2の物理アドレス(0x1088ffff)を選択し、選択した第2の物理アドレス(0x1088ffff)をメモリコントローラ43に出力する(ステップS9)。
メモリコントローラ43は、メモリアクセス部41から出力された第2の物理アドレス(0x1088ffff)を受信する。さらに、メモリコントローラ43は、受信した第2の物理アドレス(0x1088ffff)のビット列のうち下位側にあるアドレスを基に第1の物理アドレス(0x0000ffff)を生成する。また、メモリコントローラ43は、生成した第1の物理アドレス(0x0000ffff)を基に主記憶装置7にアクセスする(ステップS10)。
メモリコントローラ43は、主記憶装置7にアクセスした際、主記憶装置7のアドレス範囲外等のリカバリ不可能な値である場合(ステップS11において「YES」)、アクセスエラーであると判別すると共に、エラー情報として、第2の物理アドレス(0x1088ffff)をエラー処理部42に出力する(ステップS12)。
一方、メモリコントローラ43は、主記憶装置7のアドレス範囲内であり正常である場合(ステップS11において「NO」)、主記憶装置7からデータを読み出すと共に、読み出したデータを命令実行部3に出力する(ステップS8)。
エラー処理部42は、メモリコントローラ43がアクセスエラーであると判別した場合、エラー情報として、第2の物理アドレス(0x1088ffff)をメモリコントローラ43より受信する。さらに、エラー処理部42は、第2の物理アドレス(0x1088ffff)をユーザに提示する(ステップS13)。また、エラー処理部42は、異常処理を実行する。
尚、異常が発生した際においても、命令実行部3は、アクセス命令13の完了を待たずに別の命令を実行する。そのため、レジスタ4に格納された値は、アクセス命令13を実行した際の値とは異なる。
システム管理者は、エラー処理部42によって提示された第2の物理アドレス(0x1088ffff)を基に、アドレス(0x00001088)に格納されたアクセス命令を実行することによって、主記憶装置7のアドレス(0x0000ffff)にアクセスしたことを特定することができる。
このように本実施の形態に係る情報処理装置1cによれば、各実施形態において説明した効果を享受できると共に、さらに、第3の実施形態にて説明した情報処理装置を集積回路等に利用して実現することができる。
<第4の実施形態>
次に、上述した各実施形態に係る情報処理装置を基本とする第4の実施形態について説明する。以下の説明においては、本実施形態に係る特徴的な部分を中心に説明する。その際、上述した各実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明は省略する。
上述した第3の実施形態おいて説明した処理部31は、第2の実施形態において説明した情報処理装置1aに適用可能である。
図7は、本発明の第2の実施形態において説明した情報処理装置1aに係る処理部31を適用する場合に採用可能な情報処理装置1dの構成を示すブロック図である。
情報処理装置1dは、第2の実施形態において説明した情報処理装置1aに、大別して、CPU50を有する。より具体的に、CPU50は、第2の実施形態において説明した情報処理装置1aに、さらに、処理部31を有する。
このように本実施の形態に係る情報処理装置1dによれば、第2の実施形態において説明した情報処理装置1aに第3の実施形態において説明した処理部31を適用することによって、第2の実施形態および第3の実施形態において説明した効果を享受できる。
(実施例)
次に、上述した第4の実施形態に係るより具体的な実施例として、情報処理装置1eについて、図8乃至図9を参照して説明する。以下の説明においては、本実施例に係る特徴的な部分を中心に説明する。その際、上述した各実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明は省略する。
図8は、本発明の実施例における情報処理装置1eの構成を示すブロック図である。
図8において、情報処理装置1eは、大別して、CPU60、メモリコントローラ43、主記憶装置7を有する。
より具体的に、CPU60は、命令実行部3、メモリアクセス部41、エラー処理部42を有する。
図9は、本発明の実施例における情報処理装置が行う処理を示すフローチャートである。係るフローチャートに沿って情報処理装置の処理手順を説明する。係るフローチャートは、主記憶装置7に格納された命令をCPU60が実行することによって実現される。
ここでは、説明の便宜上、一例として、第1の物理アドレスは、例えば、0x0000ffffと設定し、設定した第1の物理アドレスの上位16ビットは、アーキテクチャとして未使用とする。仮想アドレスは、0xffffffffと設定する。また、第1の物理アドレスは、不正なアドレスであり、リカバリ不可能である場合について説明する。尚、本実施形態では、説明の便宜上、値を例に説明するが、これに限定されない。また、「0x」は、16進数表記であることを示す。尚、第1の物理アドレスの上位16ビットは、任意の値が入っていても良い。
命令実行部3は、主記憶装置7に格納されたデータ等を取得するために、主記憶装置7に対するアクセス命令13を実行するための準備を行う。
命令実行部3は、主記憶装置7に格納された命令を取り出して順に実行する。
アクセス命令13の実行に先立って、命令実行部3は、アクセス準備命令8を実行する。命令実行部3は、アクセス準備命令8を実行することによって、OSやプログラムの実行によって指定された、仮想アドレス(0xffffffff)を基に対応する第1の物理アドレス(0x0000ffff)を算出すると共に、第1の物理アドレス(0x0000ffff)を第1のレジスタに格納する(ステップS21)。
次に、命令実行部3は、第1の命令9を実行する。命令実行部3は、第1の命令9を実行することによって、プログラムカウンタに格納された第1のアドレス(0x00001070)を取得すると共に、取得した第1のアドレス(0x00001070)を第2のレジスタに格納する(ステップS22)。
命令実行部3は、第2の命令10を実行する。命令実行部3は、第2の命令10を実行することによって、第2のレジスタに格納した第1のアドレス(0x00001070)を、TLB挿入命令22が格納されているアドレス(0x00001088)になるよう所定の演算によって、第2のアドレス(0x00001088)を生成する。
また、命令実行部3は、第2の命令10を実行することによって、第2のレジスタに格納した第1のアドレス(0x00001070)を、生成した第2のアドレス(0x00001088)に置換する(ステップS23)。
命令実行部3は、第3の命令11を実行する。命令実行部3は、第3の命令11を実行することによって、第2のレジスタに格納された第2のアドレス(0x00001088)を基に第2のアドレスのビット列のうち下位側の値を上位側にシフトすることにより第3のアドレス(0x10880000)を生成する。
さらに、命令実行部3は、第3の命令11を実行することによって、第2のレジスタに格納された第2のアドレス(0x00001088)を生成した第3のアドレス(0x10880000)に置換する(ステップS24)。
命令実行部3は、第4の命令12を実行する。命令実行部3は、第4の命令12を実行することによって、第1のレジスタに格納された第1の物理アドレス(0x0000ffff)と第2のレジスタに格納された第3のアドレス(0x10880000)とを基に第2の物理アドレス(0x1088ffff)を生成する。
さらに、命令実行部3は、第4の命令12を実行することによって、第1のレジスタに格納された第1の物理アドレス(0x0000ffff)を、生成した第2の物理アドレス(0x1088ffff)に置換する(ステップS25)。
命令実行部3は、TLB挿入命令22を実行する。命令実行部3は、TLB挿入命令22を実行することによって、仮想アドレス(0xffffffff)に対応する第2の物理アドレス(0x1088ffff)を変換するための情報をTLB21に書き込む(ステップS26)。
命令実行部3は、アクセス命令13を実行する。命令実行部3は、アクセス命令13を実行することによって、仮想アドレス(0xffffffff)を基に主記憶装置7に対してアクセス要求する。また、命令実行部3は、仮想アドレス(0xffffffff)をメモリアクセス部41に出力する(ステップS27)。
メモリアクセス部41は、仮想アドレス(0xffffffff)を基にTLB21を参照する。メモリアクセス部41は、TLB21から変換情報を取得できなかった場合(ステップS28において「NO」)、例外処理(アクセス準備命令8からTLB挿入命令22までの命令)を実行する。
一方、メモリアクセス部41は、TLB21から変換情報(第2の物理アドレス)を取得できた場合(ステップS28において「YES」)、取得した第2の物理アドレス(0x1088ffff)を基に第1の物理アドレス(0x0000ffff)を選択し、選択した第1の物理アドレス(0x0000ffff)をキャッシュ6に出力する。
メモリアクセス部41は、第1の物理アドレス(0x0000ffff)を基にキャッシュ6を参照し、キャッシュ6に所望のデータがあった場合(ステップS29において「YES」)、キャッシュ6から所望のデータを取得すると共に、取得した所望のデータを命令実行部3に出力する(ステップS30)。
一方、メモリアクセス部41は、キャッシュ6に所望のデータが無かった場合(ステップS29において「NO」)、第2の物理アドレス(0x1088ffff)を選択し、選択した第2の物理アドレス(0x1088ffff)をメモリコントローラ43に出力する(ステップS31)。
メモリコントローラ43は、メモリアクセス部41から出力された第2の物理アドレス(0x1088ffff)を受信すると共に、受信した第2の物理アドレス(0x1088ffff)のビット列のうち下位側にあるアドレスを基に第1の物理アドレス(0x0000ffff)を生成し、生成した第1の物理アドレス(0x0000ffff)を基に主記憶装置7にアクセスする(ステップS32)。
メモリコントローラ43は、主記憶装置7にアクセスした際、主記憶装置7のアドレス範囲外等のリカバリ不可能な値である場合(ステップS33において「YES」)、アクセスエラーであると判別すると共に、エラー情報として、第2の物理アドレスをエラー処理部42に出力する(ステップS34)。
一方、メモリコントローラ43は、主記憶装置7のアドレス範囲内であり正常である場合(ステップS33において「NO」)、主記憶装置7からデータを読み出すと共に、読み出したデータを命令実行部3に出力する(ステップS30)。
エラー処理部42は、メモリコントローラ43がアクセスエラーであると判別した場合、エラー情報として、第2の物理アドレス(0x1088ffff)をメモリコントローラ43より受信する。さらに、エラー処理部42は、第2の物理アドレス(0x1088ffff)をユーザに提示する(ステップS35)。また、エラー処理部42は、異常処理を実行する。
システム管理者は、エラー処理部42によって提示された第2の物理アドレス(0x1088ffff)を基に、アドレス(0x00001088)に格納されたTLB挿入命令を実行したことを特定することができる。また、主記憶装置7のアドレス(0x0000ffff)にアクセスしたことも特定することができる。
このように本実施の形態に係る情報処理装置1eによれば、各実施形態において説明した効果を享受できると共に、さらに、第4の実施形態にて説明した情報処理装置を集積回路等に利用して実現することができる。
本発明は、上述した各実施形態には限定されない。例えば、上述した各実施形態を例に説明した本発明は、説明の便宜上、CPUによって実行する命令において実現したが、これに限らず、CPU内部のハードウェアにおいて、実現してもよい。
尚、上述した各実施形態およびその変形例の一部又は全部は、以下の付記のようにも記載されうる。しかしながら、上述した実施形態及びその変形例により例示的に説明した本発明は、以下には限らない。即ち、
(付記1)
CPUの内部に命令実行部と、
記憶デバイスに対するアクセス命令の実行によって、出力された第2の物理アドレスと出力先のデバイスとを基に前記第2の物理アドレスと第1の物理アドレスとの何れか一方を選択する第1の制御部とを有し、
前記CPUの外部に、
前記命令実行部によって、実行される命令を格納する主記憶装置と、前記第1の制御部によって選択された前記第2の物理アドレスに基づいて、前記記憶デバイスにアクセスする第2の制御部とを有し、
前記命令実行部は、
前記アクセス命令の実行に際し、指定された前記記憶デバイスにアクセスするところの、前記第1の物理アドレスをレジスタに格納するアクセス準備命令を実行し、前記アクセス準備命令の実行に応じて、プログラムカウンタから読み出した第1のアドレスを前記アクセス命令が格納されたアドレスと同一のアドレスとなるように第2のアドレスを生成し、前記第1の物理アドレスと前記第2のアドレスとに基づいて、前記第2の物理アドレスを生成し、前記第2の物理アドレスを前記レジスタに格納することによって、前記レジスタに格納されていた前記第1の物理アドレスを前記第2の物理アドレスに置き換える複数命令を実行し、前記アクセス命令を実行し、
前記第2の制御部は、
前記第1の制御部によって選択された前記第2の物理アドレスを基に前記記憶デバイスにアクセスした際に、アクセスしたアドレスが異常であった場合に、前記第2の物理アドレスを外部に通知することを特徴とする情報処理装置。
(付記2)
前記複数命令は、
前記第2のアドレスのビット列のうち下位側の値を上位側方向にシフトすることによって、第3のアドレスを生成し、前記第3のアドレスと前記第1の物理アドレスに基づいて、前記第2の物理アドレスを生成する命令をさらに有することを特徴とする付記1に記載の情報処理装置。
(付記3)
前記命令実行部は、
前記アクセス命令の実行に先立って、さらに、仮想アドレスと前記第2の物理アドレスとを対応させた情報を前記CPU内部に設けたTLBに保持するところの、TLB挿入命令を実行し、
前記第1の制御部は、
前記アクセス命令の実行に応じて、出力された前記仮想アドレスを基に前記TLBから該仮想アドレスに対応した前記第2の物理アドレスを取得することを特徴とする付記1または付記2に記載の情報処理装置。
(付記4)
前記第2の制御部から、異常を通知する前記第2の物理アドレスが出力されるのに応じて、前記第2の物理アドレスを提示すると共に、異常処理を実行する処理部を
前記CPU内部にさらに備えることを特徴とする付記1乃至付記3の何れかに記載の情報処理装置。
(付記5)
前記第2の物理アドレスは、
前記第1の物理アドレスと前記第3のアドレスとを合算することで、前記第2の物理アドレスを生成することを特徴とする付記2に記載の情報処理装置。
(付記6)
前記第2のアドレスは、
前記第1のアドレスに格納された命令から前記アクセス命令の間に実行する前記アクセス命令を含む命令数分の命令長を前記第1のアドレスに加算することによって生成することを特徴とする付記1乃至付記5の何れかに記載の情報処理装置。
(付記7)
前記アクセス命令は、
前記命令実行部が実行することによって、前記第2の物理アドレスを基に前記記憶デバイスにアクセスするために用いる命令であることを特徴とする付記1に記載の情報処理装置。
(付記8)
前記アクセス命令の実行に際し、指定された前記記憶デバイスにアクセスするところの、前記第1の物理アドレスをレジスタに格納するアクセス準備命令を実行し、前記アクセス準備命令の実行に応じて、プログラムカウンタから読み出した第1のアドレスを前記アクセス命令が格納されたアドレスと同一のアドレスとなるように第2のアドレスを生成し、前記第1の物理アドレスと前記第2のアドレスとに基づいて、前記第2の物理アドレスを生成し、前記第2の物理アドレスを前記レジスタに格納することによって、前記レジスタに格納されていた前記第1の物理アドレスを前記第2の物理アドレスに置き換える複数命令を実行し、前記アクセス命令を実行し、前記第2の物理アドレスと出力先のデバイスとを基に前記第2の物理アドレスと第1の物理アドレスとの何れか一方を選択し、選択された前記第2の物理アドレスを基に前記記憶デバイスにアクセスした際に、アクセスしたアドレスが異常であった場合に、前記第2の物理アドレスを外部に通知する情報処理装置における異常分析方法。
(付記9)
前記複数命令は、
前記第2のアドレスのビット列のうち下位側の値を上位側方向にシフトすることによって、第3のアドレスを生成し、前記第3のアドレスと前記第1の物理アドレスに基づいて、第2の物理アドレスを生成する命令をさらに有することを特徴とする付記8に記載の情報処理装置における異常分析方法。
(付記10)
前記アクセス命令の実行に先立って、さらに、仮想アドレスと前記第2の物理アドレスとを対応させた情報を前記CPU内部に設けたTLBに保持するTLB挿入命令を実行し、前記アクセス命令の実行に応じて、出力された前記仮想アドレスを基に前記TLBから該仮想アドレスに対応した前記第2の物理アドレスを取得することを特徴とする付記8または付記9に記載の情報処理装置における異常分析方法。
(付記11)
異常を通知する前記第2の物理アドレスが出力されるのに応じて、前記第2の物理アドレスを提示すると共に、異常処理を実行することをさらに有することを特徴とする付記8乃至付記10の何れかに記載の情報処理装置における異常分析方法。
(付記12)
情報処理装置の動作制御のためのコンピュータ・プログラムであって、そのコンピュータ・プログラムにより、
前記アクセス命令の実行に際し、指定された前記記憶デバイスにアクセスする前記第1の物理アドレスをレジスタに格納するアクセス準備命令を実行し、前記アクセス準備命令の実行に応じて、プログラムカウンタから読み出した第1のアドレスを前記アクセス命令が格納されたアドレスと同一のアドレスとなるように第2のアドレスを生成し、前記第1の物理アドレスと前記第2のアドレスとに基づいて、前記第2の物理アドレスを生成し、前記第2の物理アドレスを前記レジスタに格納することによって、前記レジスタに格納されていた前記第1の物理アドレスを前記第2の物理アドレスに置き換える複数命令とを実行し、前記アクセス命令を実行し、前記第2の物理アドレスと出力先のデバイスとを基に前記第2の物理アドレスと第1の物理アドレスとの何れか一方を選択し、選択された前記第2の物理アドレスを基に前記記憶デバイスにアクセスした際に、アクセスしたアドレスが異常であった場合に、前記第2の物理アドレスを外部に通知する機能を備えることを特徴とするコンピュータ・プログラム。
本発明は、上述した各実施形態には限定されない。本発明は、パーソナルコンピュータ、POS(Point Of Sale)システム、サーバ、複写機、複合機等の演算処理装置および主記憶装置を搭載する各種の電子機器に適用可能である。
1 情報処理装置
1a 情報処理装置
1b 情報処理装置
1c 情報処理装置
1d 情報処理装置
1e 情報処理装置
2 CPU
3 命令実行部
4 レジスタ
5 第1の制御部
6 キャッシュ
7 主記憶装置
8 アクセス準備命令
9 第1の命令
10 第2の命令
11 第3の命令
12 第4の命令
13 アクセス命令
14 第2の制御部
20 CPU
21 TLB
22 TLB挿入命令
30 CPU
31 処理部
40 CPU
41 メモリアクセス部
42 エラー処理部
43 メモリコントローラ
50 CPU
60 CPU
100 情報処理装置
101 CPU
102 レジスタ
103 命令実行部
104 第1の制御部
105 キャッシュ
106 第2の制御部
107 主記憶装置
108 アクセス準備命令
109 複数命令
110 アクセス命令
111 記憶デバイス

Claims (10)

  1. CPUの内部に命令実行部と、
    記憶デバイスに対するアクセス命令の実行によって、出力された第2の物理アドレスと出力先のデバイスとを基に前記第2の物理アドレスと第1の物理アドレスとの何れか一方を選択する第1の制御部とを有し、
    前記CPUの外部に、
    前記命令実行部によって、実行される命令を格納する主記憶装置と、前記第1の制御部によって選択された前記第2の物理アドレスに基づいて、前記記憶デバイスにアクセスする第2の制御部とを有し、
    前記命令実行部は、
    前記アクセス命令の実行に際し、指定された前記記憶デバイスにアクセスするところの、前記第1の物理アドレスをレジスタに格納するアクセス準備命令を実行し、前記アクセス準備命令の実行に応じて、プログラムカウンタから読み出した第1のアドレスを前記アクセス命令が格納されたアドレスと同一のアドレスとなるように第2のアドレスを生成し、前記第1の物理アドレスと前記第2のアドレスとに基づいて、前記第2の物理アドレスを生成し、前記第2の物理アドレスを前記レジスタに格納することによって、前記レジスタに格納されていた前記第1の物理アドレスを前記第2の物理アドレスに置き換える複数命令を実行し、前記アクセス命令を実行し、
    前記第2の制御部は、
    前記第1の制御部によって選択された前記第2の物理アドレスを基に前記記憶デバイスにアクセスした際に、アクセスしたアドレスが異常であった場合に、前記第2の物理アドレスを外部に通知することを特徴とする情報処理装置。
  2. 前記複数命令は、
    前記第2のアドレスのビット列のうち下位側の値を上位側方向にシフトすることによって、第3のアドレスを生成し、前記第3のアドレスと前記第1の物理アドレスに基づいて、前記第2の物理アドレスを生成する命令をさらに有することを特徴とする請求項1に記載の情報処理装置。
  3. 前記命令実行部は、
    前記アクセス命令の実行に先立って、さらに、仮想アドレスと前記第2の物理アドレスとを対応させた情報を前記CPU内部に設けたTLBに保持するところの、TLB挿入命令を実行し、
    前記第1の制御部は、
    前記アクセス命令の実行に応じて、出力された前記仮想アドレスを基に前記TLBから該仮想アドレスに対応した前記第2の物理アドレスを取得することを特徴とする請求項1または請求項2に記載の情報処理装置。
  4. 前記第2の制御部から、異常を通知する前記第2の物理アドレスが出力されるのに応じて、前記第2の物理アドレスを提示すると共に、異常処理を実行する処理部を
    前記CPU内部にさらに備えることを特徴とする請求項1乃至請求項3の何れかに記載の情報処理装置。
  5. 前記第2の物理アドレスは、
    前記第1の物理アドレスと前記第3のアドレスとを合算することで、前記第2の物理アドレスを生成することを特徴とする請求項2に記載の情報処理装置。
  6. 前記第2のアドレスは、
    前記第1のアドレスに格納された命令から前記アクセス命令の間に実行する前記アクセス命令を含む命令数分の命令長を前記第1のアドレスに加算することによって生成することを特徴とする請求項1乃至請求項5の何れかに記載の情報処理装置。
  7. 前記アクセス命令は、
    前記命令実行部が実行することによって、前記第2の物理アドレスを基に前記記憶デバイスにアクセスするために用いる命令であることを特徴とする請求項1に記載の情報処理装置。
  8. 前記アクセス命令の実行に際し、指定された前記記憶デバイスにアクセスするところの、前記第1の物理アドレスをレジスタに格納するアクセス準備命令を実行し、前記アクセス準備命令の実行に応じて、プログラムカウンタから読み出した第1のアドレスを前記アクセス命令が格納されたアドレスと同一のアドレスとなるように第2のアドレスを生成し、前記第1の物理アドレスと前記第2のアドレスとに基づいて、前記第2の物理アドレスを生成し、前記第2の物理アドレスを前記レジスタに格納することによって、前記レジスタに格納されていた前記第1の物理アドレスを前記第2の物理アドレスに置き換える複数命令を実行し、前記アクセス命令を実行し、前記第2の物理アドレスと出力先のデバイスとを基に前記第2の物理アドレスと第1の物理アドレスとの何れか一方を選択し、選択された前記第2の物理アドレスを基に前記記憶デバイスにアクセスした際に、アクセスしたアドレスが異常であった場合に、前記第2の物理アドレスを外部に通知する情報処理装置における異常分析方法。
  9. 異常を通知する前記第2の物理アドレスが出力されるのに応じて、前記第2の物理アドレスを提示すると共に、異常処理を実行することをさらに有することを特徴とする請求項8に記載の情報処理装置における異常分析方法。
  10. 情報処理装置の動作制御のためのコンピュータ・プログラムであって、そのコンピュータ・プログラムにより、
    前記アクセス命令の実行に際し、指定された前記記憶デバイスにアクセスする前記第1の物理アドレスをレジスタに格納するアクセス準備命令を実行し、前記アクセス準備命令の実行に応じて、プログラムカウンタから読み出した第1のアドレスを前記アクセス命令が格納されたアドレスと同一のアドレスとなるように第2のアドレスを生成し、前記第1の物理アドレスと前記第2のアドレスとに基づいて、前記第2の物理アドレスを生成し、前記第2の物理アドレスを前記レジスタに格納することによって、前記レジスタに格納されていた前記第1の物理アドレスを前記第2の物理アドレスに置き換える複数命令とを実行し、前記アクセス命令を実行し、前記第2の物理アドレスと出力先のデバイスとを基に前記第2の物理アドレスと第1の物理アドレスとの何れか一方を選択し、選択された前記第2の物理アドレスを基に前記記憶デバイスにアクセスした際に、アクセスしたアドレスが異常であった場合に、前記第2の物理アドレスを外部に通知する機能を備えることを特徴とするコンピュータ・プログラム。
JP2012039617A 2012-02-27 2012-02-27 情報処理装置および情報処理装置における異常分析方法、並びにコンピュータ・プログラム Pending JP2013175077A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012039617A JP2013175077A (ja) 2012-02-27 2012-02-27 情報処理装置および情報処理装置における異常分析方法、並びにコンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012039617A JP2013175077A (ja) 2012-02-27 2012-02-27 情報処理装置および情報処理装置における異常分析方法、並びにコンピュータ・プログラム

Publications (1)

Publication Number Publication Date
JP2013175077A true JP2013175077A (ja) 2013-09-05

Family

ID=49267918

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012039617A Pending JP2013175077A (ja) 2012-02-27 2012-02-27 情報処理装置および情報処理装置における異常分析方法、並びにコンピュータ・プログラム

Country Status (1)

Country Link
JP (1) JP2013175077A (ja)

Similar Documents

Publication Publication Date Title
KR102645481B1 (ko) 상위 계층 캐시의 항목을 기반으로 하위 계층 캐시로의 유입을 로깅함으로써 트레이스 기록
TWI457759B (zh) 用於處理分頁錯誤的方法和裝置以及非暫時性的電腦可讀取媒體
EP2615551B1 (en) Abnormality inspection device, central processing unit, and abnormality inspection method
JP2008139908A (ja) メモリ制御装置、コンピュータシステム及びデータ再生記録装置
BR112020023084A2 (pt) pontos de interrupção de reprodução de rastreamento baseados em cache usando bits de campos de tags reservados
US8850273B2 (en) Dynamic hardware watchpoint
US20180267882A1 (en) Enabling breakpoints on entire data structures
JP6175958B2 (ja) メモリダンプ方法及びプログラム、並びに、情報処理装置
JP2013175077A (ja) 情報処理装置および情報処理装置における異常分析方法、並びにコンピュータ・プログラム
JP2013175076A (ja) 情報処理装置および情報処理装置における異常分析方法
US10748637B2 (en) System and method for testing processor errors
JP5843804B2 (ja) 演算装置およびエラー処理方法
JP3688285B2 (ja) パリティー検査を利用して命令モード切り換えを行なうプロセッサ及び方法
JP2011164730A (ja) Cpuでの命令実行と非同期的に発生するメモリアクセスエラーの原因究明のための情報処理装置、異常分析方法、および異常分析プログラム
US11907124B2 (en) Using a shadow copy of a cache in a cache hierarchy
JP7401751B2 (ja) 情報処理プログラム、情報処理方法及び情報処理システム
KR101225577B1 (ko) 어셈블리 언어 코드의 분석 장치 및 방법
JP5985121B1 (ja) プログラム実行装置及びプログラム実行システム及びプログラム実行方法
JP2009223841A (ja) 命令ログ取得プログラム及び仮想計算機システム
JP2008090969A (ja) リダンダンシ演算プログラムのデバッグシステムおよびプログラム
JP5467172B1 (ja) 情報処理システム、および情報処理方法
JP5447841B2 (ja) 情報処理装置、デバッグ情報取得方法、およびデバッグ情報取得プログラム
CN116225537A (zh) 栈修复方法、装置、电子设备及计算机可读存储介质
JP2014167683A (ja) 仮想計算機システム及び仮想計算機システムの障害模擬方法及び障害模擬プログラム
JP2010211391A (ja) Cpuの動作監視方法および装置