JP5118562B2 - デバッグ支援装置 - Google Patents
デバッグ支援装置 Download PDFInfo
- Publication number
- JP5118562B2 JP5118562B2 JP2008162358A JP2008162358A JP5118562B2 JP 5118562 B2 JP5118562 B2 JP 5118562B2 JP 2008162358 A JP2008162358 A JP 2008162358A JP 2008162358 A JP2008162358 A JP 2008162358A JP 5118562 B2 JP5118562 B2 JP 5118562B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- cache memory
- memory
- data
- tag
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
に関する。
して処理性能を向上させるものが多い。しかしながら、回路規模や消費電力などの制約か
ら、キャッシュメモリ構成や制御を複雑にしてキャッシュメモリの性能の向上を図るので
はなく、メインメモリのブロックとキャッシュメモリのブロックの対応方式もダイレクト
マップ方式や2−wayセットアソシエティブ方式として、キャッシュメモリの制御回路
などを簡素化することが多い。
グラムで制御できるようにして、不要なデータ転送を削減したりしてマイクロプロセッサ
を含むシステム全体の性能向上を図ることができるようになっている。このような場合、
プログラム開発のデバッグ作業において、キャッシュメモリに記憶されたデータを解析す
る必要があり、マイクロプロセッサのキャッシュメモリのデータを表示できるデバッガが
提供されている(例えば、非特許文献1参照。)。
"SuperH(TM) RISC engine シミュレータ/デバッガ ユーザーズマニュアル"、[online]、2007年7月25日、株式会社 ルネサス テクノロジーズ、[平成19年9月19日検索]、インターネット<URL:http://documentation.renesas.com/jpn/products/tool/rjj10b0218_sh.pdf>(第97−102頁)
ャッシュメモリをインデックスアドレス順にタグアドレス情報とともに記憶されたデータ
を並べて表示するようになっていて、記憶されたデータの例えばメインメモリアドレスと
の関係を、一意的に把握することは難しい状況があった。
メモリに記憶されたプログラムやデータを解析する場合に、キャッシュメモリの物理的な
メモリ構成要素ではなく、メインメモリアドレスによってキャッシュメモリのデータを指
定するようにすることで、キャッシュメモリの記憶内容にかかわるプログラムや処理性能
未達などの不具合のデバッグを容易に行えるデバッグ支援装置を提供することを目的とす
る。
デバッグ作業において、キャッシュメモリに読み込まれたデータ解析の必要からキャッシ
ュメモリの内容表示を行わせる場合に、キャッシュメモリのハードウェア構成に基づいて
メインメモリアドレスをキャッシュメモリのアクセスアドレスに変換することなく表示さ
せることが可能となるため、プログラムデバッグの効率を向上させることができる。
ウェア構成を示すブロック図である。
グラムを実行するCPU2、CPU2が実行するプログラムを展開記憶するメモリユニッ
ト3、メモリユニット3に展開記憶されるプログラムやデータを保存記憶する記憶装置/
補助記憶装置4、CPU2がプログラム実行時に文字やアイコンや画像情報を表示する画
像表示装置5、CPU2がプログラム実行時に文字入力や位置指定などの入力を行うキー
ボード/マウス6がデータ、アドレス、制御バスを含むシステムバス7を介して相互に接
続されている。また、記憶装置/補助記憶装置4には取り外し可能な不揮発性記憶媒体を
含むことができる。
ールされ実行されることによって構成されるもので、デバッグ対象のプロセッサシステム
のメインメモリのアドレス情報とデバッグ動作指示コマンドとが入力されるコマンド/ア
ドレス入力部20と、デバッグ対象のプロセッサシステムのキャッシュメモリの構成情報
が入力されるキャッシュメモリ構成情報入力部30と、入力されたアドレス情報を入力さ
れたキャッシュメモリ構成情報を用いてキャッシュメモリアクセスアドレス情報に変換す
るアドレス変換部40と、変換されたキャッシュメモリアクセスアドレス情報でキャッシ
ュメモリにアクセスして、データが存在すれば記憶されたデータを読み出すキャッシュメ
モリ読出し部50と、入力されたアドレス情報と変換されたキャッシュメモリアクセスア
ドレス情報でキャッシュメモリにアクセスした時のデータの有無情報とデータが存在した
時に読み出したデータとを表示するキャッシュメモリ表示部60から構成されている。
ついて説明する。デバッグ対象のプロセッサシステムは、図3のブロック図に概略構成を
示すように、プロセッサ100がメモリバス400を介してメインメモリ500と接続さ
れている。
300から構成され、メモリバス400を介してプロセッサコア200に読み込まれ実行
されるプログラムやデータが記憶されるメインメモリ500と接続されている。
メモリを用いて構成され、プロセッサコア200がメインメモリ500に記憶された/す
るプログラムやデータへアクセスする時に、プログラムやデータを一時蓄えて、プロセッ
サコア200のプログラムやデータへのアクセスを高速化する。また、プロセッサ100
には図示を省略するがIOポートやバスインターフェースなど外部とのインターフェース
回路を含むことができる。
(2002年4月30日発行:丸善株式会社)の170頁乃至173頁に基本原理が説明
されているキャッシュメモリである。そして、プロセッサコア200とメインメモリ50
0との間のメモリアクセス動作に介在してプロセッサコア200の高速動作を実現するた
め、メインメモリ500などとは異なるメモリ構成や読み出し書き込み制御回路を有して
いるが、本発明の実施例の説明に関係の深い読み出し動作に係る構成とその動作の様子を
以下に詳しく説明する。
る。この実施例のキャッシュメモリ300は、メモリサイズ1Kバイト、ラインサイズ3
2バイト、連想度1のダイレクトマップ方式のキャッシュメモリである。プロセッサコア
200が出力する読み出しアドレスを入力して、該当アドレスのデータがキャッシュメモ
リ300に記憶されている(以下「ヒット」と表現する)場合に、その該当アドレスから
のデータをプロセッサコア200に出力する。キャッシュメモリ300は、図4に示すよ
うにデコーダ310と、タグアドレスを記憶するタグアドレス部320とデータを記憶す
るデータ部330とから成るメモリセル部340と、読み出しアドレスのデータがキャッ
シュメモリに記憶されて「ヒット」しているか、記憶されていない(以下「ミス」と表現
する)かを判定するタグアドレス比較回路350と、「ヒット」した時にデータ部330
から該当アドレスのデータを選択出力する選択回路360から構成される。
ータが記憶されている時の、メモリセル部340に記憶されたデータの状態を示す図であ
る。
出し命令(LB:Load Byte)を実行してメインメモリ500からデータを読み
出す時を例に、キャッシュメモリ300の動作を説明する。プロセッサコア200は、デ
ータ読み出し命令を読み込み(フェッチ)、解釈(デコード)して、データ読み出し命令
で設定された方法によりアクセスするメモリアドレスを計算し、32ビット長のメモリア
ドレスを出力してメモリ読み出し動作を開始する。プロセッサコア200から図4に示す
メモリアドレス210が出力されると、最初に、プロセッサ100に内蔵されているキャ
ッシュメモリ300にアクセスが行われる。
クセスが行われると、メモリアドレス210に含まれる5ビット長のインデックス(In
dex)アドレス「0x1F」がキャッシュメモリ300のデコーダ310に入力される
。
ル部340のタグアドレス部320から「0x00FACC」が読み出されて、タグアド
レス比較回路350に入力される。一方、タグアドレス比較回路350の他方の入力には
メモリアドレス210に含まれる22ビット長のタグアドレス(Tag)として「0x0
0FACC」が入力される。
リセル部340にアクセスされたアドレスのデータが存在していることを示す「ヒット」
信号(例えば、High)がキャッシュメモリ300から出力される。そして、選択回路
360にはメモリアドレス210に含まれる5ビット長のオフセットアドレス(Bof)
として「0x00」が入力されているので、デコーダ310の出力310[0x1F]が
アクティブとなってメモリセル部340から読み出されたデータ部330[0x00]の
内容「0x28」(図5を参照)がバイト長のデータとしてプロセッサコア200へ出力
される。
当するアドレスのデータがキャッシュメモリ300に存在しないことを示す「ミス」信号
(例えば、Low)がキャッシュメモリ300から出力されて、プロセッサコア200は
メインメモリ500からのデータ読み出し動作を行う。このメインメモリ500からのデ
ータの読み出しは、読出し処理速度が遅いことやメモリバス400の信号伝達速度が遅い
ことなどからキャッシュメモリ300からの読み出しに比べて読み出し速度が遅くなる。
また、キャッシュメモリ300へのアクセスで「ミス」が発生した場合、プロセッサシス
テムの構成方法により異なるが「ミス」の信号を割込み信号として用いて、メモリアクセ
スの局所性などを利用したキャッシュメモリ300のヒット率(キャッシュメモリからの
読み出し回数/メモリ読み出し回数)を高めるために、例えば連続するアドレスのデータ
をメインメモリ500からキャッシュメモリ300にあらかじめ読み込む処理を行って、
キャッシュメモリ300を内蔵することによるシステム性能向上が図られる。
プロセッサ100が実行するプログラムの開発は、プログラム開発環境を構成する以下の
各種アプリケーションプログラム群(エディタ、コンパイラ、リンカ、シミュレータなど
)が用意されたコンピュータ1上で行われる。まず、プロセッサ100上で実行されて所
望の機能を実現するプログラムは、エディタを用いてC言語やアセンブラ言語などで記述
したソースプログラム[ファイル]が作成される。次に、ソースプログラム[ファイル]
はコンパイラでコンパイルされて、プロセッサ100上で実行される(オブジェクト)プ
ログラム[ファイル]が作成される。そして、必要に応じてリンカでプログラムのリンク
が行われて最終的に実行可能な(オブジェクト)プログラム[ファイル]が作成される。
次に、(オブジェクト)プログラム[ファイル]は、プロセッサ100のシステム環境の
動作を模擬するシミュレータに読み込み展開(ロード)される。そして、シミュレータに
よってプロセッサ100上でプログラムが実行される様子を模擬(シミュレーション)動
作させて、プログラムの検証作業を行い、検証作業で不具合が発見されると、デバッグ作
業が行われる。
行される(オブジェクト)プログラムの動作が所望と異なり不具合が発生したと判定され
る時点で、デバッグ支援装置10の図示しないブロックで入力設定したブレークポイント
やコマンドによって、シミュレータの模擬動作を停止させる。そしてデバッグ作業者は、
デバッグ支援装置10を用いて、シミュレータ停止時点のプロセッサシステムの図示しな
い状態記憶部にアクセスして各種情報を表示させ、必要に応じて情報の書き換えを行い、
そして指定したプログラムの実行時点からシミュレータの模擬動作を再開させたりしてデ
バッグ作業を行う。各種情報としては、プロセッサ100のレジスタやキャッシュメモリ
300やメインメモリ500上のデータや実行中のプログラムコードなどがある。
合の処理手順を説明する。
入力され、そのデータ表示指定アドレスとしてメインメモリ500のメモリアドレスが入
力された時の処理手順を示すフローチャートである。図7および図8はコマンド実行結果
の表示例である。図7は入力されたメモリアドレスに対応するデータがキャッシュメモリ
300に記憶されていて「ヒット」した場合で、図8は入力されたメモリアドレスに対応
するデータがキャッシュメモリ300に記憶されていなくて「ミス」した時の表示例であ
る。
リ300の読み出しコマンドとキャッシュメモリ300のデータ表示指定アドレス情報と
なるメインメモリアドレスとが入力される(ステップS100)。
キャッシュメモリ構成情報が読み込まれて、その構成情報に従って入力されたメインメモ
リアドレスをアドレス変換部40でキャッシュメモリアクセス情報(タグアドレスおよび
インデックスアドレスおよびオフセットアドレス)に変換する(ステップS200)。
ズ1Kバイト、ラインサイズ32バイト、連想度1などの構成情報から、32ビット長の
メインメモリアドレス[31:0]([N:M]は、Nビット目(Nは2のN乗を示す)
からMビット目までのビットレンジがあることを示す)の中の31ビット目〜10ビット
目までの22ビット長のタグアドレスに変換され、9ビット目〜5ビット目までの5ビッ
ト長のインデックスアドレスに変換され、4ビット目〜0ビット目までの5ビット長のオ
フセットアドレスに変換される。
の「0x10300022」が入力されると、タグアドレスは「0x040C00」に、
インデックスアドレスは「00001」(2進表示)に、オフセットアドレスは「000
10」(2進表示)に変換される。
メモリアクセス情報を用いてキャッシュメモリ300のメモリ読み出しアクセス動作を行
う(ステップS300)。
合、まず、キャッシュメモリ読出し部50では、デコーダ310[0x01]の出力で指
定されるメモリセル部340に記憶されたデータが読み出される。例えば、図5に示すよ
うなデータが記憶されているメモリセル部340の場合は、デコーダ310[0x01]
の出力がアクティブとなって読み出し指定されるタグアドレス部320の第2行目の「0
x040C0」と、データ部330の第2行目の「0x0A」、「0x67」、「0x0
0」、・・・、「0x2A」、「0x02」の1ライン分のデータ(32バイト)が読み
出される。
回路350に入力される2つのタグアドレスの値を比較し、比較結果からキャッシュメモ
リアクセスが「ヒット」したかを調べる(ステップS400)。2つのタグアドレスが不
一致でキャッシュメモリアクセスが「ミス」の時はステップS500に進み、2つのタグ
アドレスが一致してキャッシュメモリアクセスが「ヒット」した時はステップS600に
進む。
リアドレス210より変換された22ビットのタグアドレスTag(メモリアドレス21
0[31:10])情報と、デコーダ310[01]がアクティブとなって選択されるメ
モリセル部340のタグアドレス部320より出力される22ビット長のタグアドレス情
報とをタグアドレス比較回路350で比較して、その比較結果によって判定を行う。すな
わち、2つのタグアドレスの値が異なる場合は、メモリアドレス210のデータがキャッ
シュメモリ300に記憶されていない「ミス」であるとし、2つのタグアドレスの値が一
致する場合はメモリアドレス210のデータがキャッシュメモリ300に記憶されている
「ヒット」であるとする。
0にコマンドで指定されたメインメモリアドレス210のデータがキャッシュメモリ30
0に無いことを表示し(ステップS500)、キャッシュメモリ300の内容を表示する
コマンドの処理を終了する。
ャッシュメモリ300に存在しない時に、キャッシュメモリ表示部60に表示される例を
示している。すなわち、キャッシュメモリ300のメモリセル部340に図5に示す内容
のデータが記憶されている場合に、メモリアドレスとして「0x10500022」が入
力されると、変換されたインデックスアドレス(Index)は「00001」で、デコ
ーダ310[0x01]の出力がアクティブとなって指定されるメモリセル部340の第
2行目のタグアドレス部320から読み出されるタグアドレス(Tag)は「0x040
C00」となる。一方、メモリアドレス210から変換されたタグアドレスは「0x04
1400」であるので、タグアドレス比較回路350では2つのタグアドレスの値は不一
致となり、指定したメモリアドレス210のデータはキャッシュメモリ300には記憶さ
れていないと判定され、その判定結果がキャッシュメモリ表示部60にメッセージ8Gが
表示される。なお、表示画面の内容は、例示であってメモリアクセスが「ミス」したこと
を示す内容であれば、他の表現を用いてもよい。
60にコマンドで指定されたメインメモリアドレス210とともに、該当アドレスのキャ
ッシュメモリ300に記憶されたデータを表示し(ステップS600)、キャッシュメモ
リ300の内容を表示するコマンドの処理を終了する。
、メモリアドレス「0x10300022」7Aを表示するとともに、該当するアドレス
のデータ(この例では1ライン分のキャッシュメモリのデータを同時に表示していて、オ
フセットアドレス「00010」で指定されるデータ、即ち図7のデータ「0x00」7
Bが強調表示されている例を示している。
、メモリアドレス「0x10300022」が入力されると、変換されたインデックスア
ドレス(Index)は「0x01」7Cで、デコーダ310[0x01]の出力がアク
ティブとなって指定されたメモリセル部340の第2行目のタグアドレス部320から読
み出されるタグアドレス(Tag)は「0x040C00」となる。一方、メモリアドレ
スから変換されたタグアドレス(Tag)も「0x040C00」であるので、タグアド
レス比較回路350では2つのタグアドレス値は一致して、指定されたメモリアドレス「
0x10300022」がキャッシュメモリ300に記憶されていると判定される。そし
て、デコーダ310[0x01]の出力がアクティブとなって指定されるメモリセル部3
40の第2行目の1ライン分(32バイト)のデータ部330の中からオフセットアドレ
ス「00010」で指定されたデータ部330[0x02]の「0x00」がシミュレー
タのプロセッサ100の状態記憶部より読み出される。なお、表示の内容は、例示であっ
てメモリアクセスが「ヒット」し、そのデータが「0x00」であることを示す内容であ
れば、他の表現を用いてもよい。
行えるようになり、キャッシュメモリに記憶されたデータを考慮しながらプログラムのデ
バッグ作業を行う場合にも、メインメモリ上にロードされ展開されるオブジェクトプログ
ラムのデバッグ作業と同様に作業することができる。そして、キャッシュメモリの内容を
確認する場合にキャッシュメモリの構成情報から、タグアドレスやインデックスアドレス
などへの煩雑な変換と比較作業を行う必要がなくなり、デバッグ作業の効率が向上する。
図9乃至図12を参照して説明する。図9は、実施例2のデバッグ支援装置11の構成を
示すブロック図である。図10は、デバッグ支援装置11にキャッシュメモリ300の内
容を表示するコマンドが入力され、そのデータ表示指定アドレスとしてレジスタ番号また
はソースプログラムで使用されたシンボルが入力された時の処理手順を示すフローチャー
トである。図11および図12はコマンド実行結果の表示例である。
係るデバッグ支援装置10と同一部分には同一符号を付し、詳細な説明を省略する。また
、デバッグ対象のキャッシュメモリ300を内蔵するプロセッサ100と、その内蔵され
たキャッシュメモリ300に記憶されたデータも同一であるとする。
内容を表示するコマンド処理において、プロセッサ100のレジスタ番号またはソースプ
ログラム記述で使用されたシンボルを用いてメモリアドレスが指定されることである。
ストールされ実行されることによって構成されるもので、図9に示すように、シンボルと
メモリアドレスの対応関係を示すデバッグ情報を入力するデバッグ情報入力部70と、メ
インメモリのアドレス情報とデバッグ動作指示コマンドが入力され、アドレス情報として
レジスタ番号やシンボルなどが入力された場合に入力されたデバッグ情報を用いて数値表
現のアドレス情報に変換するコマンド/アドレス入力部21と、キャッシュメモリの構成
情報が入力されるキャッシュメモリ構成情報入力部30と、入力または変換された数値表
現のアドレス情報を入力されたキャッシュメモリ構成情報を用いてキャッシュメモリアク
セスアドレス情報に変換するアドレス変換部40と、変換されたキャッシュメモリアクセ
スアドレス情報でキャッシュメモリにアクセスしてデータが存在すれば記憶されたデータ
を読み出すキャッシュメモリ読出し部50と、入力されたアドレス情報(および変換され
た数値表現のアドレス情報)と変換されたキャッシュメモリアクセスアドレス情報でキャ
ッシュメモリにアクセスした時のデータの有無情報とデータが存在した時に読み出したデ
ータを表示するキャッシュメモリ表示部60から構成されている。
パイラでコンパイルしてオブジェクトプログラム[ファイル]を作成する時に、デバッグ
オプションを指定すると、デバッグ支援装置などに参照されてデバッグ作業を支援する情
報[ファイル]として作成される。デバッグ情報には、例えば、ソースプログラム記述で
使用されたシンボルとメモリアドレス情報との対応を示す情報などがある。なお、以下の
説明で使用するデバッグ情報は、シンボルに対応するアドレス情報が相対アドレス情報の
場合は、リンカによって最終的な実行プログラムを作成する時のリンク情報などを用いて
、数値表現されたメモリアドレス情報に変換されているものとする。
合の処理手順を説明する。
が入力され、そのデータ表示指定アドレスとしてメインメモリ500のメモリアドレスま
たはレジスタ番号またはシンボルが入力された時の処理手順を示すフローチャートである
。
ムで使用されたシンボルで指定されたメモリアドレスのデータがキャッシュメモリ300
に記憶されていて「ヒット」した場合の表示例で、図12は、プロセッサ100のレジス
タ番号10が指定されレジスタ番号10に記憶されているデータをメモリアドレスとした
時のデータがキャッシュメモリ300に記憶されていて「ヒット」した場合の表示例であ
る。
300の読み出しコマンドと、データ表示指定アドレス情報とが入力される(ステップS
110)。
そして、メインメモリアドレスの場合はステップS200に進み、レジスタ番号の場合は
ステップS113に進み、シンボルの場合はステップS112に進む。
アドレス指定部の文字列をあらかじめ定められた順序に従って比較することで行う。即ち
、入力された文字列が2進や16進表現のあらかじめ定められた識別子(例えば、本実施
例の説明の数値表現では、2進表現の場合はかぎ括弧で括って識別子を省略可能とし、1
6進表現の場合はかぎ括弧で括って”0x”を識別子としている)から始まる数値の場合
はメインメモリアドレスとして判定し、「$r」で始まる場合はレジスタ番号として判定
し、その他の場合はシンボルとして判定する。デバッグ支援装置の仕様で、8進や10進
表現の識別子や、識別子の省略可能な数値表現が定められている場合は、そのように判定
できるように文字列比較を行い識別子に続く文字列が数値変換処理される。また、プロセ
ッサのレジスタを番号以外で指定が可能な場合は、例えばその指定文字列の先頭に「$」
が付与されて入力された場合は、その指定レジスタの内容を指定アドレス情報とするよう
に処理される。
サ100に内蔵されるレジスタ情報記憶部より、指定された番号のレジスタ情報を読み出
し(ステップS113)、ステップS200に進む。
記憶部の情報を読み出す手順を用いて、プロセッサ100の指定されたレジスタ番号のレ
ジスタに記憶されている数値をメモリアドレス情報として読み出す。
ス610(図10を参照:図9にも記載)よりデバッグ情報を読み出して、シンボルをメ
インメモリアドレス情報に変換し(ステップS112)、ステップS200に進む。
いるので、デバッグ支援装置11はソフトウェア処理で一般的に用いられるテキストサー
チなどの手法を用いてデバッグ情報データベース610を探索して、シンボルと一致する
シンボルに対応するメインメモリアドレスを読み出す。
ッシュメモリ構成情報が読み込まれて、その構成情報に従って入力されたメインメモリア
ドレスをアドレス変換部40でキャッシュメモリアクセス情報(タグアドレスおよびイン
デックスアドレスおよびオフセットアドレス)に変換する(ステップS200)。
てキャッシュメモリ300のメモリ読み出しアクセス動作を行う(ステップS300)。
回路350に入力される2つのタグアドレスの値を比較し、比較結果からキャッシュメモ
リアクセスが「ヒット」したかを調べる(ステップS400)。2つのタグアドレスが不
一致でキャッシュメモリアクセスが「ミス」の時は、ステップS510に進み、2つのタ
グアドレスが一致してキャッシュメモリアクセスが「ヒット」した時はステップS610
に進む。
0にコマンドで指定されたメインメモリアドレス(およびデータ表示指定アドレス情報)
のデータがキャッシュメモリ300に無いことを表示し(ステップS510)、キャッシ
ュメモリ300の内容を表示するコマンドの処理を終了する。
60にコマンドで指定されたメインメモリアドレス(およびデータ表示指定アドレス情報
)を表示するとともに、該当アドレスのキャッシュメモリ300に記憶されたデータを表
示し(ステップS610)、キャッシュメモリ300の内容を表示するコマンドの処理を
終了する。
変換されたメインメモリアドレスで指定されたメモリアドレスのデータがキャッシュメモ
リ300に存在する場合に、例えば、関数func_aを定義するプログラムの開始アド
レスを示すシンボル「func_a」11Aを表示するとともに、シンボルの対応するメ
モリアドレス「0x10300022」のデータが表示装置に表示される例を示している
。この例では、1ライン分のキャッシュメモリ300のデータを同時に表示していて、オ
フセットアドレスで指定されるデータ「0x00」11Bが強調表示されている。なお、
表示の内容は、例示であってメモリアクセスが「ヒット」し、そのデータが「0x00」
であることを示す内容であれば、他の表現を用いてもよい。
該当レジスタに記憶されているメモリアドレスがキャッシュメモリ300に存在する場合
に、レジスタ番号「$r10」を表示するとともに、該当するアドレスのデータが表示さ
れる例を示している。この例では、1ライン分のキャッシュメモリのデータを同時に表示
していて、オフセットアドレスで指定されるデータ「0x00」12Bが強調表示されて
いる。なお、表示の内容は、例示であってメモリアクセスが「ヒット」し、そのデータが
「0x00」であることを示す内容であれば、他の表現を用いてもよい。
加えてソースプログラムで使用したシンボルによる指定、およびレジスタの内容による指
定で行えるようになり、キャッシュメモリの内容を確認する場合にキャッシュメモリの構
成情報から、タグアドレスやインデックスアドレスなどへの煩雑な変換と比較作業を行う
必要がなくなるだけでなく、プログラム解析をよりデバッグ担当者に理解しやすい表現で
行うことができて、デバッグ効率が向上する。
作業を行う場合に、ソースプログラム作成時に使用したシンボルによって参照することが
できるので、オブジェクトプログラムのロードされたメモリアドレスなどを確認すること
なく、プログラム作成時に使用した情報を利用したデバッグ作業とすることができる。ま
た、デバッグで停止させた時点のプロセッサのレジスタの内容に基づいて、キャッシュメ
モリに記憶されたデータを参照することができるので、その時点のプログラムで割り付け
られたレジスタの機能などを考慮しながら解析作業に集中できるので、デバッグ効率が向
上する。
定アドレス情報を単一の表示形式のものとして説明したが、メモリアドレスやシンボルや
プログラムで定義された変数(この値はデバッグ情報を用いて変数に割り付けられたメモ
リアドレスやレジスタの内容を読み出すことで得られる)やレジスタ番号や定数などを四
則演算子で結合した数式表現であってもよく、その演算結果をキャッシュメモリのデータ
表示指定アドレス情報とすることで、ソースプログラム記述表現に従ってデバッグ作業を
容易に進めることができるので、更にデバッグ効率が向上する。
図13乃至図15を参照して説明する。図13は、実施例3のデバッグ支援装置12の構
成を示すブロック図である。図14は、デバッグ支援装置12にキャッシュメモリ300
の内容を表示するコマンドが入力され、そのデータ表示指定アドレスとしてメモリアドレ
スが入力された時の処理手順を示すフローチャートである。図15は、コマンド実行結果
の表示例である。
係るデバッグ支援装置10と同一部分には同一符号を付し、詳細な説明を省略する。また
、デバッグ対象のキャッシュメモリを内蔵するプロセッサ100とその内蔵されたキャッ
シュメモリ300に記憶されたデータも同一であるとする。
内容を表示するコマンド処理において、入力されたメモリアドレスのデータをキャッシュ
メモリ300から読み出すとともにメインメモリ500からも読み出して、データ比較を
行い、比較結果を表示することである。
ログラムがインストールされ実行されることによって構成されるもので、デバッグ対象の
プロセッサシステムのメインメモリのアドレス情報とデバッグ動作指示コマンドが入力さ
れるコマンド/アドレス入力部20と、キャッシュメモリの構成情報が入力されるキャッ
シュメモリ構成情報入力部30と、入力されたアドレス情報を入力されたキャッシュメモ
リ構成情報を用いてキャッシュメモリアクセスアドレス情報に変換するアドレス変換部4
0と、変換されたキャッシュメモリアクセスアドレス情報によりキャッシュメモリにアク
セスして、データが存在すれば記憶されたデータを読み出すキャッシュメモリ読出し部5
0と、入力されたメインメモリのアドレス情報でメインメモリにアクセスしてデータを読
み出すメインメモリ読み出し部80と、キャッシュメモリ読み出し部50で読み出された
データとメインメモリ読み出し部80で読み出されたデータとを比較する読み出しデータ
比較部90と、入力されたアドレス情報と変換されたキャッシュメモリアクセスアドレス
情報でキャッシュメモリにアクセスした時のデータの有無情報とデータが存在した時に読
み出したデータとメインメモリから読み出したデータとを比較した比較結果とを表示する
キャッシュメモリ表示部60から構成されている。
合の処理手順を説明する。
が入力され、そのデータ表示指定アドレスとしてメインメモリ500のメモリアドレスが
入力された時の処理手順を示すフローチャートである。図15は、コマンド実行結果の表
示例で、入力されたメモリアドレスのデータはキャッシュメモリ300に記憶されていて
「ヒット」したが、そのキャッシュメモリ300に記憶されているデータがメインメモリ
500から読み出されたデータと一致しない時の表示例である。
300の読み出し表示及びメインメモリとのデータ比較コマンドと、キャッシュメモリ3
00のデータ表示指定アドレス情報であるメインメモリアドレスとが入力される(ステッ
プS120)。
ッシュメモリ構成情報が読み込まれて、その構成情報に従って入力されたメインメモリア
ドレスをアドレス変換部40でキャッシュメモリアクセス情報(タグアドレスおよびイン
デックスアドレスおよびオフセットアドレス)に変換する(ステップS200)。
クセス情報を用いて、キャッシュメモリ300のメモリ読み出しアクセス動作を行う(ス
テップS300)。
回路350に入力される2つのタグアドレスの値を比較し、比較結果からキャッシュメモ
リアクセスが「ヒット」したかを調べる(ステップS400)。2つのタグアドレスが不
一致でキャッシュメモリアクセスが「ミス」の場合はステップS520に進み、2つのタ
グアドレスが一致してキャッシュメモリアクセスが「ヒット」した場合はステップS70
0に進む。
0にコマンドで指定されたメインメモリアドレスのデータがキャッシュメモリに無いこと
を表示し(ステップS520)、キャッシュメモリ300の読み出し表示及びメインメモ
リとのデータ比較コマンドの処理を終了する。
80がコマンド/アドレス入力部20から入力されたメモリアドレスをメインメモリ50
0から読み出す(ステップS700)。
データとメインメモリ読み出し部80で読み出したデータとが比較される(ステップS8
00)。比較した結果データが一致した場合はステップS620に進み、不一致の場合は
ステップS630に進む。
0にコマンドで指定されたメインメモリアドレスを表示するとともに、該当アドレスのキ
ャッシュメモリ300に記憶されたデータの表示及びキャッシュメモリ300のデータが
メインメモリ500のデータと一致している(ハザード状態でない)ことを表示し(ステ
ップS620)、キャッシュメモリ300の読み出し表示及びメインメモリとのデータ比
較コマンドの処理を終了する。
部60にコマンドで指定されたメインメモリアドレスを表示するとともに、該当アドレス
のキャッシュメモリ300に記憶されたデータの表示及びキャッシュメモリ300のデー
タとメインメモリ500のデータとが一致していない(ハザード状態である)ことを表示
し(ステップS630)、キャッシュメモリ300の読み出し表示及びメインメモリとの
データ比較コマンドの処理を終了する。
メモリアドレス「10300022」15Aを表示するとともに、該当するアドレスのデ
ータが表示される。この例では1ライン分のキャッシュメモリ300のデータを同時に表
示していて、オフセットアドレスで指定されるデータ「0x00」15Bが強調表示され
ている。また、キャッシュメモリ300のデータがメインメモリアドレスの指し示すメイ
ンメモリ500上のデータとは一致せず、ハザード状態であることが表示される例を示し
ている。図15にはハザード状態の有無を示す欄15Dが設けられていて、ハザード状態
の場合はその表示欄に「Hazard」15Eのチェックマークが表示される。なお、表
示の内容は、例示であってメモリアクセスが「ヒット」し、そのデータが「0x00」で
あり、そのキャッシュメモリ300から読み出されたデータが同じアドレスのメインメモ
リ500上のデータと不一致であることを示す内容であれば、他の表現を用いてもよい。
行えるようになり、キャッシュメモリに記憶されたデータを考慮しながらプログラムのデ
バッグ作業を行う場合にも、メインメモリ上にロードされ展開されるオブジェクトプログ
ラムのデバッグ作業と同様に作業することができる。そして、キャッシュメモリの内容を
確認する場合にキャッシュメモリの構成情報から、タグアドレスやインデックスアドレス
などへの煩雑な変換と比較作業を行う必要がなくなり、デバッグ作業の効率が向上する。
セッサ以外の周辺回路などからメインメモリへデータの書き込みが行われた場合に、プロ
セッサのキャッシュメモリに読み込まれたデータとの整合性を管理維持する回路を備えて
いないことがあり、周辺回路などからのメインメモリへのアクセス制御プログラムの不具
合や、プロセッサが演算結果などのデータをメモリに書き込む場合に、高速なキャッシュ
メモリにのみ書き込みを行い、その後プログラムでキャッシュメモリからメインメモリに
書き戻すような制御手順としている場合のプログラム処理の不具合などで、本来一致すべ
きキャッシュメモリとメインメモリのデータに不一致が生じてハザード状態となることが
あるので、その不一致の有無をキャッシュメモリの内容表示と同時に行わせるようにする
ことができて、不具合発生時のデータ解析が容易となってデバッグ作業の効率が向上する
。
図16乃至図20を参照して説明する。図16は、実施例4のデバッグ支援装置13の構
成を示すブロック図である。図17は、デバッグ支援装置13のデバッグ対象の第1のプ
ロセッサ100#1と第2のプロセッサ100#2とがメモリバス400を介してメイン
メモリ500に接続されるプロセッサシステムの概略構成を示すブロック図である。図1
8は、デバッグ支援装置13に第1のプロセッサ100#1に内蔵されるキャッシュメモ
リ300#1の内容を表示するコマンドが入力され、そのデータ表示指定アドレスとして
メモリアドレスが入力された時の処理手順を示すフローチャートである。図19および図
20は、コマンド実行結果の表示例である。
係るデバッグ支援装置10と同一部分には同一符号を付し、詳細な説明を省略する。また
、図17に示すデバッグ対象のキャッシュメモリを内蔵する第1のプロセッサ100#1
と第2のプロセッサ100#2は、実施例1のプロセッサ100と同一の構成で、そして
プロセッサ100#1に内蔵されたキャッシュメモリ300#1に記憶されたデータは実
施例1のキャッシュメモリ300と同一であるとする。
サのキャッシュメモリの内容を表示するコマンド処理において、入力されたメモリアドレ
スが入力された番号のプロセッサのキャッシュメモリから読み出すとともに、異なる番号
のプロセッサのキャッシュメモリからも読み出して、そのデータ比較を行い、比較結果を
表示することである。
ストールされ実行されることによって構成されるもので、図16に示すように、デバッグ
対象のプロセッサ番号とプロセッサシステムのメインメモリのアドレス情報とデバッグ動
作指示コマンドが入力されるコマンド/アドレス/プロセッサ番号入力部22と、プロセ
ッサに応じたキャッシュメモリの構成情報が入力されるキャッシュメモリ構成情報入力部
30および31と、入力されたアドレス情報を入力されたキャッシュメモリ構成情報を用
いてプロセッサに応じたキャッシュメモリアクセスアドレス情報に変換するアドレス変換
部40および41と、プロセッサに応じて変換されたキャッシュメモリアクセスアドレス
情報でそれぞれのプロセッサ番号のプロセッサに内蔵されたキャッシュメモリにアクセス
してデータが存在すれば記憶されたデータを読み出すキャッシュメモリ読出し部50およ
び51と、キャッシュメモリ読み出し部50で読み出されたデータとキャッシュメモリ読
み出し部51で読み出されたデータとを比較する読み出しデータ比較部91と、入力され
たメインメモリアドレス情報と変換されたキャッシュメモリアクセスアドレス情報で入力
されたプロセッサ番号のプロセッサのキャッシュメモリにアクセスした時のデータの有無
情報とデータが存在した時に読み出したデータと、変換されたキャッシュメモリアクセス
アドレス情報で入力されたプロセッサ番号と異なるプロセッサのキャッシュメモリにアク
セスした時のデータの有無情報とデータが存在した時に読み出したデータとを比較した比
較結果とを表示するキャッシュメモリ表示部60から構成されている。
#1のキャッシュメモリ300#1の内容を表示する場合の処理手順を説明する。
サ100#1に内蔵する第1キャッシュメモリ300#1の内容を表示するコマンドが入
力され、そのデータ表示指定アドレスとしてメインメモリ500のメモリアドレスが入力
された時の処理手順を示すフローチャートである。図19および図20は、コマンド実行
結果の表示例で、図19は、入力指定されたメモリアドレスが入力された番号の第1プロ
セッサ100#1の第1キャッシュメモリ300#1に記憶されていて「ヒット」し、入
力された番号と異なるプロセッサ番号2の第2プロセッサ100#2の第2キャッシュメ
モリ300#2には入力されたメモリアドレスのデータが記憶されていなくて「ミス」し
た場合の表示例である。図20は、入力されたメモリアドレスのデータが、プロセッサ番
号1の第1プロセッサ100#1の第1キャッシュメモリ300#1とプロセッサ番号2
の第2プロセッサ100#2の第2キャッシュメモリ300#2でそれぞれ「ヒット」し
、それぞれ読み出された2つのデータの値が異なっていた場合の表示例である。
キャッシュメモリの読み出し表示、及びデータ比較コマンドとキャッシュメモリのデータ
表示指定アドレス情報であるメインメモリアドレスと、プロセッサ番号とが入力される(
ステップS130)。
たプロセッサ番号「1」で指定された第1プロセッサ100#1に内蔵される第1キャッ
シュメモリ300#1のキャッシュメモリ構成情報が読み込まれて、その構成情報に従っ
て入力されたメインメモリアドレスをアドレス変換部40でキャッシュメモリアクセス情
報(タグアドレスおよびインデックスアドレスおよびオフセットアドレス)に変換する(
ステップS200)。
クセス情報を用いて第1キャッシュメモリ300#1のメモリ読み出しアクセス動作を行
う(ステップS300)。
レス比較回路350に入力される2つのタグアドレスの値を比較し、比較結果からキャッ
シュメモリアクセスが「ヒット」したかを調べる(ステップS400)。2つのタグアド
レスが不一致でキャッシュメモリアクセスが「ミス」の場合はステップS530に進み、
2つのタグアドレスが一致してキャッシュメモリアクセスが「ヒット」した場合はステッ
プS210に進む。
場合、デバッグ支援装置13は、キャッシュメモリ表示部60にコマンドで指定されたメ
インメモリアドレスのデータが指定されたプロセッサのキャッシュメモリ300#1に無
いことを表示し(ステップS530)、指定された番号のプロセッサのキャッシュメモリ
300#1の読み出し表示、及び指定と異なる番号のプロセッサのキャッシュメモリのデ
ータ比較コマンドの処理を終了する。
た場合、デバッグ支援装置13は、キャッシュメモリ構成情報入力部31によってデータ
ベース600よりコマンドで入力指定されたプロセッサ番号と異なるプロセッサ100#
2に内蔵されるキャッシュメモリ300#2のキャッシュメモリ構成情報が読み込まれて
、その構成情報に従って入力されたメインメモリアドレスをアドレス変換部41でキャッ
シュメモリアクセス情報(タグアドレスおよびインデックスアドレスおよびオフセットア
ドレス)に変換する(ステップS210)。
クセス情報を用いてキャッシュメモリ300#2のメモリ読み出しアクセス動作を行う(
ステップS310)。
比較回路350に入力される2つのタグアドレスの値を比較し、比較結果からキャッシュ
メモリアクセスが「ヒット」したかを調べる(ステップS410)。2つのタグアドレス
が不一致でキャッシュメモリアクセスが「ミス」の場合はステップS640に進み、2つ
のタグアドレスが一致してキャッシュメモリアクセスが「ヒット」した場合はステップS
900に進む。
い場合、デバッグ支援装置13は、指定された番号「1」のプロセッサのキャッシュメモ
リアクセスは「ヒット」しているので、キャッシュメモリ表示部60にコマンドで指定さ
れたプロセッサ番号とメインメモリアドレスを表示するとともに、該当アドレスのキャッ
シュメモリ300#1に記憶されたデータを表示するとともに、コマンドで指定されたメ
インメモリアドレスのデータが指定と異なる番号「2」のプロセッサのキャッシュメモリ
300#2に無いことを表示し(ステップS640)、指定された番号のプロセッサのキ
ャッシュメモリの読み出し表示、及び指定と異なる番号のプロセッサのキャッシュメモリ
のデータ比較コマンドの処理を終了する。
リ読み出し部50で読み出したデータ(キャッシュメモリ300#1のデータ)とキャッ
シュメモリ読み出し部51で読み出したデータ(キャッシュメモリ300#2のデータ)
を比較する(ステップS900)。比較した結果データが一致した場合はステップS65
0に進み、データが不一致の場合はステップS660に進む。
記憶されたデータが一致した場合、デバッグ支援装置13は、キャッシュメモリ表示部6
0にコマンドで指定されたプロセッサ番号「1」とメインメモリアドレスを表示するとと
もに、キャッシュメモリ300#1のメインメモリアドレスに対応して記憶されたデータ
を表示するとともに、キャッシュメモリ300#1のデータとキャッシュメモリ300#
2のデータとが一致している(ハザード状態でない)ことを表示し(ステップS650)
、指定された番号のプロセッサのキャッシュメモリの読み出し表示、及び指定と異なる番
号のプロセッサのキャッシュメモリのデータ比較コマンドの処理を終了する。
リに記憶されたデータが不一致の場合、デバッグ支援装置13は、キャッシュメモリ表示
部60にコマンドで指定されたプロセッサ番号「1」とメインメモリアドレスを表示する
とともに、該当アドレスのキャッシュメモリ300#1に記憶されたデータを表示すると
ともに、キャッシュメモリ300#1のデータとキャッシュメモリ300#2のデータと
が一致していない(ハザード状態である)ことを表示し(ステップS660)、指定され
た番号のプロセッサのキャッシュメモリの読み出し表示、及び指定と異なる番号のプロセ
ッサのキャッシュメモリのデータ比較コマンドの処理を終了する。
モリ300#1に存在して、メモリアドレス「10300022」19Aと、プロセッサ
番号「1」19Fを表示するとともに、該当するアドレスのデータの表示例を示している
。この例では、1ライン分のキャッシュメモリ300#1のデータを同時に表示していて
、オフセットアドレスで指定されるデータ「0x00」19Bが強調表示されている。ま
た、指定されたメインメモリアドレスのデータが指定されないプロセッサ(この実施例で
はプロセッサ100#2)のキャッシュメモリ300#2には存在しないことを示すメッ
セージ19Gが表示される。なお、表示の内容は、例示であって指定された番号のプロセ
ッサのキャッシュメモリアクセスが「ヒット」し、そのデータが「0x00」であり、プ
ロセッサシステムで指定されなかった番号のプロセッサのキャッシュメモリアクセスが「
ミス」であることを示す内容であれば、他の表現を用いてもよい。
モリ300#1に存在して、メモリアドレス「10300022」20Aと、プロセッサ
番号「1」20Fを表示するとともに、該当するアドレスのデータの表示例を示している
。この例では、1ライン分のキャッシュメモリ300#1のデータを同時に表示していて
、オフセットアドレスで指定されるデータ「0x00」20Bが強調表示されている。ま
た、指定されたメインメモリアドレスのデータが指定されないプロセッサ(この実施例で
はプロセッサ100#2)のキャッシュメモリ300#2に存在したものの、キャッシュ
メモリ300#1、300#2からの2つのデータが一致しない(ハザード状態である)
ことが表示される。この例では、ハザード状態は、ハザード表示欄20Dに、ハザードが
生じているプロセッサ番号はメッセージ欄20Gに表示されている。なお、表示の内容は
、例示であって指定されたメモリアドレスで複数のプロセッサのキャッシュメモリアクセ
スで「ヒット」し、指定されたプロセッサ番号のプロセッサのキャッシュメモリのデータ
が「0x00」であり、「ヒット」した指定と異なる番号のプロセッサのキャッシュメモ
リアクセスで読み出されたデータの値が指定されたプロセッサのキャッシュメモリのデー
タと異なっていてハザード状態であることを示す内容であれば、他の表現を用いてもよい
。
で行えるようになり、キャッシュメモリに記憶されたデータを考慮しながらプログラムの
デバッグ作業を行う場合にも、メインメモリ上にロードされ展開されるオブジェクトプロ
グラムのデバッグ作業と同様に作業することができる。そして、キャッシュメモリの内容
を確認する場合にキャッシュメモリの構成情報から、タグアドレスやインデックスアドレ
スなどへの煩雑な変換と比較作業を行う必要がなくなり、デバッグ作業の効率が向上する
。
加を抑制するためなどの理由で複数のプロセッサ間のキャッシュメモリに記憶されたデー
タの整合性を管理維持する回路を備えていないことが多く、このような場合、複数のプロ
セッサがメインメモリ上のデータを共有しながら並列動作する時には、プログラムの不具
合やプロセッサの処理順序などで、本来一致すべき各プロセッサのキャッシュメモリのデ
ータ間で不一致が生じてハザード状態となることがあるので、その不一致の有無をキャッ
シュメモリの内容表示と同時に行わせることができて、複数のプロセッサの並列動作状態
のデータ解析が容易となってデバッグ作業の効率が向上する。
たが、メモリバス400に接続されるキャッシュメモリを内蔵する全てのプロセッサを対
象とするようにしても良いし、各プロセッサやキャッシュメモリが異なる構成であっても
良い。
ものとしたが、従来のデバッグ支援装置でメインメモリやレジスタなどのデータを表示し
、表示されたデータを更新コマンドで指定された値に書き換えるのと同様に、更新コマン
ドで表示されたキャッシュメモリのデータを指定された値に書き換えられるようにしても
良い。このようにすることで、キャッシュメモリに読み込まれたデータを任意の値に書き
換えられるので、例えば不具合と推定されるデータを期待値にしてシミュレーションを再
開させてその結果を確認することが可能となりデバッグ作業の効率が向上する。
記憶部より読み出すとしたが、キャッシュメモリへのアクセスを特殊な命令などで可能と
するプロセッサでは、その命令などを用いたアクセス方法でデータを読み出すようにして
も良い。このようにすることで、シミュレータの状態記憶部の記憶形式からの変換プログ
ラムや処理手順が不要となり、デバッグ支援装置の信頼性を向上させることができる。本
発明は以上の構成に限定されるものではなく、種々の変形が可能である。
2 CPU
3 メモリユニット
4 記憶装置/補助記憶装置
5 画像表示装置
6 キーボード/マウス
7 システムバス
10、11、12、13 デバッグ支援装置
20、21 コマンド/アドレス入力部
22 コマンド/アドレス/プロセッサ番号入力部
30、31 キャッシュメモリ構成情報入力部
40、41 アドレス変換部
50、51 キャッシュメモリ読み出し部
60、61 キャッシュメモリ表示部
70 デバッグ情報入力部
80 メインメモリ読み出し部
90、91 データ比較部
100 プロセッサ
200 プロセッサコア
210 メモリアドレスレジスタ
300 キャッシュメモリ
310 デコーダ
320 タグアドレス部
330 データ部
340 メモリセル部
350 タグアドレス比較回路
360 選択回路
400 メモリバス
500 メインメモリ
600 キャッシュメモリ構成情報データベース
610 デバッグ情報データベース
Claims (4)
- メインメモリに接続されキャッシュメモリを有するプロセッサで実行されるプログラムのデバッグ支援装置であって、
前記キャッシュメモリからデータを読み出し表示するためのコマンドを入力するコマンド入力手段と、
メインメモリアドレスを入力するメモリアドレス入力手段と、
前記キャッシュメモリの構成情報を入力するメモリ構成情報入力手段と、
前記メモリ構成情報入力手段によって入力されたキャッシュメモリ構成情報に基づいて前記メインメモリアドレスを第1タグアドレスとキャッシュメモリのアクセスアドレスとに変換するアドレス変換手段と、
前記アドレス変換手段で変換された前記アクセスアドレスによって前記キャッシュメモリをアクセスするアクセス手段と、
前記アクセス手段によってアクセスされた前記キャッシュメモリから前記アクセスアドレスに対応するデータに含まれる第2タグアドレスおよび記憶データを読み出すデータ読み出し手段と、
前記データ読み出し手段によって読み出された前記第2タグアドレスと前記アドレス変換手段で変換された前記第1タグアドレスとを比較するタグアドレス比較手段と、
前記タグアドレス比較手段の比較結果が一致して前記キャッシュメモリがヒットしていると判定した場合、前記キャッシュメモリから読み出した前記記憶データを、前記メインメモリアドレスとともに表示するキャッシュメモリ表示手段と、
を有することを特徴とするデバッグ支援装置。
- 前記メモリアドレス入力手段から数値表現以外のメモリアドレス情報が入力され、
前記メモリアドレス情報がソースプログラムに含まれるシンボルの場合は、前記ソース
プログラムをコンパイルするコンパイラが出力するデバッグ情報を用いて、前記シンボル
を第2メインメモリアドレスに変換し、
前記メモリアドレス情報が前記プロセッサのレジスタを指定している場合は、前記プロ
セッサの該当するレジスタのデータを読み出して第3メインメモリアドレスに変換し、
キャッシュメモリ表示手段は、前記第2メインメモリアドレスおよび又は前記第3メイ
ンメモリアドレスを用いて前記キャッシュメモリにアクセスし、前記キャッシュメモリが
ヒットしていると判定された場合、前記キャッシュメモリに記憶されたデータを表示する
と共に、前記シンボルおよびまたは前記レジスタを含むメモリアドレス情報を表示するこ
とを特徴とする請求項1に記載のデバッグ支援装置。 - メインメモリに接続されキャッシュメモリを有するプロセッサで実行されるプログラムのデバッグ支援装置であって、
前記キャッシュメモリからデータを読み出し表示するためのコマンドを入力するコマンド入力手段と、
メインメモリアドレスを入力するアドレス入力手段と、
前記キャッシュメモリの構成情報を入力するメモリ構成情報入力手段と、
前記メモリ構成情報入力手段によって入力されたキャッシュメモリ構成情報に基づいて前記メインメモリアドレスを第1タグアドレスとキャッシュメモリのアクセスアドレスに変換するアドレス変換手段と、
前記アドレス変換手段で変換された前記アクセスアドレスによって前記キャッシュメモリをアクセスするアクセス手段と、
前記アクセス手段によってアクセスされた前記キャッシュメモリから前記アクセスアドレスに対応するデータに含まれる第2タグアドレスを読み出すデータ読み出し手段と、
前記データ読み出し手段によって読み出された前記第2タグアドレスと前記アドレス変換手段で変換された前記第1タグアドレスとを比較するタグアドレス比較手段と、
前記タグアドレス比較手段の比較結果が一致して前記キャッシュメモリがヒットしていると判定された場合、前記キャッシュメモリから第1データを読み出すと共に、メインメモリから前記メインメモリアドレスの第2データを読み出して、前記第1データと前記第2データとを比較するデータ比較手段と、
前記キャッシュメモリから読み出した前記第1データ、前記メインメモリアドレスと、
前記データ比較手段における結果情報を表示するキャッシュメモリ表示手段と、
を有することを特徴とするデバッグ支援装置。
- メインメモリに接続されキャッシュメモリを有する少なくとも第1、第2のプロセッサで実行されるプログラムのデバッグ支援装置であって、
前記第1、第2のプロセッサの一つを指定する入力手段と、
前記入力手段で指定されたプロセッサが有するキャッシュメモリのデータを読み出し表示するコマンドを入力するコマンド入力手段と、
メインメモリアドレスを入力するアドレス入力手段と、
前記入力手段で指定された第1プロセッサの第1キャッシュメモリの構成情報を入力する第1のメモリ構成情報入力手段と、
前記第1のメモリ構成情報入力手段で入力された第1のキャッシュメモリ構成情報に基づいて前記メインメモリアドレスを第1タグアドレスと前記第1キャッシュメモリの第1アクセスアドレスに変換する第1のアドレス変換手段と、
前記第1アクセスアドレスを用いて前記第1キャッシュメモリをアクセスする第1のアクセス手段と、
前記第1のアクセス手段によってアクセスされた前記第1キャッシュメモリの前記第1アクセスアドレスに対応するデータに含まれる第2タグアドレスを読み出す第1のデータ読み出し手段と、
前記第1のデータ読み出し手段によって読み出された前記第2タグアドレスと前記アドレス変換手段で変換された前記第1タグアドレスとを比較する第1のタグアドレス比較手段と、
前記第1のタグアドレス比較手段の比較結果が一致して前記第1キャッシュメモリがヒットしていると判定された時、前記入力手段で指定されなかった第2プロセッサの第2キャッシュメモリの構成情報を入力する第2のメモリ構成情報入力手段と、
前記第2のメモリ構成情報入力手段で入力された前記第2キャッシュメモリ構成情報に基づいて前記メインメモリアドレスを第3タグアドレスと前記第2キャッシュメモリの第2アクセスアドレスに変換する第2のアドレス変換手段と、
前記第2のアクセスアドレスを用いて前記第2キャッシュメモリにアクセスする第2のアクセス手段と、
前記第2のアクセス手段によってアクセスされた前記第2キャッシュメモリの前記第2のアクセスアドレスに対応するデータに含まれる第4タグアドレスを読み出す第2のデータ読み出し手段と、
前記第2のデータ読み出し手段によって読み出された前記第4タグアドレスと前記第2のアドレス変換手段で変換された前記第3タグアドレスとを比較する第2のタグアドレス比較手段と、
前記第2のタグアドレス比較手段の比較結果が一致して第2プロセッサの第2キャッシュメモリがヒットしていると判定された場合、前記第1キャッシュメモリから読み出した第1データと前記第2キャッシュメモリから読み出した第2データとを比較するデータ比較手段と、
前記第1のタグアドレス比較手段によって前記第1キャッシュメモリがヒットし、前記第2のタグアドレス比較手段によって前記第2キャッシュメモリがヒットしていると判定された場合、前記第1プロセッサの第1キャッシュメモリから読み出した前記第1データ、前記メインメモリアドレス、および前記データ比較手段による比較結果情報とを表示するキャッシュメモリ表示手段と、
を有することを特徴とするデバッグ支援装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008162358A JP5118562B2 (ja) | 2008-06-20 | 2008-06-20 | デバッグ支援装置 |
US12/483,675 US8612942B2 (en) | 2008-06-20 | 2009-06-12 | System for debugging computer program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008162358A JP5118562B2 (ja) | 2008-06-20 | 2008-06-20 | デバッグ支援装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010003171A JP2010003171A (ja) | 2010-01-07 |
JP5118562B2 true JP5118562B2 (ja) | 2013-01-16 |
Family
ID=41432617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008162358A Expired - Fee Related JP5118562B2 (ja) | 2008-06-20 | 2008-06-20 | デバッグ支援装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8612942B2 (ja) |
JP (1) | JP5118562B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7379078B2 (ja) | 2019-10-23 | 2023-11-14 | シャープ株式会社 | 加熱調理器 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10372590B2 (en) * | 2013-11-22 | 2019-08-06 | International Business Corporation | Determining instruction execution history in a debugger |
CN109390027B (zh) * | 2017-08-08 | 2021-05-07 | 慧荣科技股份有限公司 | 解码方法及相关的闪存控制器与电子装置 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3848234A (en) * | 1973-04-04 | 1974-11-12 | Sperry Rand Corp | Multi-processor system with multiple cache memories |
JPS60169956A (ja) * | 1984-02-15 | 1985-09-03 | Hitachi Ltd | デ−タ処理装置 |
JP2589713B2 (ja) * | 1987-11-20 | 1997-03-12 | 株式会社日立製作所 | データプロセッサ及びデータ処理システム |
JPH05289904A (ja) | 1992-04-09 | 1993-11-05 | Nec Corp | キャッシュメモリのデバッグツール |
US5845125A (en) * | 1993-06-21 | 1998-12-01 | Kabushiki Kaisha Toshiba | Debugger using class information and dynamic instance inter-relationships |
US5768591A (en) * | 1995-09-08 | 1998-06-16 | Iq Systems | Method of de-bugging host-processor software in a distributed processing system having a host processor and at least one object oriented processor |
US5809562A (en) * | 1996-05-20 | 1998-09-15 | Integrated Device Technology, Inc. | Cache array select logic allowing cache array size to differ from physical page size |
JPH1078917A (ja) * | 1996-09-04 | 1998-03-24 | Oki Electric Ind Co Ltd | キャッシュメモリ装置とその診断方法 |
JPH1173329A (ja) * | 1997-06-24 | 1999-03-16 | Matsushita Electric Ind Co Ltd | ソフトウエア開発支援システム |
JPH11194957A (ja) * | 1998-01-07 | 1999-07-21 | Matsushita Electric Ind Co Ltd | デバッグ支援装置、並列実行情報生成装置、及びこれらに適用されるプログラムを記録した記録媒体 |
TW451132B (en) * | 1998-12-15 | 2001-08-21 | Nippon Electric Co | System and method for cache processing |
JP3612294B2 (ja) * | 2001-08-06 | 2005-01-19 | 松下電器産業株式会社 | デバッグ方法およびデバッグ装置 |
JP4272371B2 (ja) * | 2001-11-05 | 2009-06-03 | パナソニック株式会社 | デバッグ支援装置、コンパイラ装置、デバッグ支援プログラム、コンパイラプログラム、及びコンピュータ読取可能な記録媒体。 |
GB2417798A (en) * | 2004-09-02 | 2006-03-08 | Hewlett Packard Development Co | Tracking variable values during program execution |
US20070033577A1 (en) * | 2005-08-08 | 2007-02-08 | Arackal Paulose K | Method and apparatus for debugging program code |
US8176475B2 (en) * | 2006-10-31 | 2012-05-08 | Oracle America, Inc. | Method and apparatus for identifying instructions associated with execution events in a data space profiler |
US20080288725A1 (en) * | 2007-05-14 | 2008-11-20 | Moyer William C | Method and apparatus for cache transactions in a data processing system |
US9092570B2 (en) * | 2007-07-28 | 2015-07-28 | Sam Michael | Memory management for remote software debuggers and methods |
JP5289904B2 (ja) | 2008-11-18 | 2013-09-11 | 三協立山株式会社 | マグネシウム合金押出形材の製造方法 |
-
2008
- 2008-06-20 JP JP2008162358A patent/JP5118562B2/ja not_active Expired - Fee Related
-
2009
- 2009-06-12 US US12/483,675 patent/US8612942B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7379078B2 (ja) | 2019-10-23 | 2023-11-14 | シャープ株式会社 | 加熱調理器 |
Also Published As
Publication number | Publication date |
---|---|
US8612942B2 (en) | 2013-12-17 |
JP2010003171A (ja) | 2010-01-07 |
US20090319994A1 (en) | 2009-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2610104B2 (ja) | 命令オペレーション・コードの検査装置及び方法 | |
JP3612294B2 (ja) | デバッグ方法およびデバッグ装置 | |
JP4718901B2 (ja) | 命令実行装置、デバッグ方法、デバッグ装置及びデバッグプログラム | |
US6141791A (en) | Debug aid device, program compiler device, storage medium storing computer-readable debugger program, and storage medium storing program compiler program | |
US9092570B2 (en) | Memory management for remote software debuggers and methods | |
JP5118562B2 (ja) | デバッグ支援装置 | |
US7043717B2 (en) | Debugging apparatus and method | |
JP2009075965A (ja) | ソフトウェア開発方法及びソフトウェア開発装置 | |
JP5813600B2 (ja) | アプリケーション開発装置及びアプリケーション開発ツール | |
CN112732254A (zh) | 网页开发方法、装置、计算机设备和存储介质 | |
JP2888242B2 (ja) | マイクロプロセッサのプログラム開発システム | |
WO2024069730A1 (ja) | デバッグ装置及びデバッグ方法 | |
JP2012018641A (ja) | ソフトウェア開発システム | |
WO2007131089A2 (en) | Code translation and pipeline optimization | |
Studio | Getting Started Guide | |
JP3716635B2 (ja) | 情報処理装置、及びその割込み制御方法 | |
JP3130421B2 (ja) | プログラム解析方法および装置 | |
JPS6113615B2 (ja) | ||
JP2015095016A (ja) | データ処理システム、入力支援方法、及び入力支援プログラム | |
JP5456457B2 (ja) | プログラム開発支援装置及びプログラム開発支援方法 | |
KR20130021002A (ko) | 전자책을 이용한 프로그램 코드 관련 정보 제공 방법 및 장치 | |
JP2000242529A (ja) | プログラム開発支援装置および開発支援システムおよび記録媒体 | |
JP5100604B2 (ja) | システムシミュレーション装置 | |
JP5045934B2 (ja) | 情報処理装置、情報処理装置におけるエミュレーション方法及びエミュレーションプログラム | |
CN114691204A (zh) | 执行新增指令的系统及执行新增指令的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101101 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20111125 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20111205 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111213 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120706 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120828 |
|
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: 20120921 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121019 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151026 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |