JPH07210427A - メモリアクセス監視装置およびメモリアクセス監視方法 - Google Patents

メモリアクセス監視装置およびメモリアクセス監視方法

Info

Publication number
JPH07210427A
JPH07210427A JP6003738A JP373894A JPH07210427A JP H07210427 A JPH07210427 A JP H07210427A JP 6003738 A JP6003738 A JP 6003738A JP 373894 A JP373894 A JP 373894A JP H07210427 A JPH07210427 A JP H07210427A
Authority
JP
Japan
Prior art keywords
memory access
instruction
access instruction
information
memory
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
JP6003738A
Other languages
English (en)
Inventor
Tetsushi Matsuda
哲史 松田
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.)
Sumitomo Electric Industries Ltd
Original Assignee
Sumitomo Electric Industries Ltd
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 Sumitomo Electric Industries Ltd filed Critical Sumitomo Electric Industries Ltd
Priority to JP6003738A priority Critical patent/JPH07210427A/ja
Publication of JPH07210427A publication Critical patent/JPH07210427A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【構成】メモリアクセス命令によりCPUがストールす
ると、その原因となった命令の論理アドレスが、FIF
O20に入力される。所定時間間隔で発生するタイマ割
込みにより、FIFO20に記録された論理アドレス
は、第1のレジスタ群11に保持される。また、タイマ
割込み発生時にメモリアクセスを実行中の命令の論理ア
ドレスが、第2のレジスタ群12に保持される。割込み
ルーチンでは、第1および第2のレジスタ群11,12
に保持された論理アドレスに相当するメモリアクセス命
令の出現頻度が記録される。各メモリアクセス命令の出
現頻度と当該命令の実行回数とに基づき、CPUのスト
ールまたはキャッシュミスを頻繁に起こさせるメモリア
クセス命令が検出される。 【効果】少ない記憶容量で、CPUのストールまたはキ
ャッシュミスを高頻度で生じさせるメモリアクセス命令
を検出できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、情報処理装置の演算処
理手段が行うメモリアクセスを監視する装置および方法
に関する。
【0002】
【従来の技術】計算機が実行するメモリアクセスを監視
する方法に関する先行技術は、たとえば、特開昭60− 2
7037号公報に開示されている。この先行技術では、CP
U(中央処理装置)がメモリアクセス命令をフェッチし
たことを検出し、メモリアクセスのトレースを行う。よ
り具体的には、命令フェッチのアドレス情報が記憶回路
に記憶されることによって、メモリアクセスのトレース
が達成される。
【0003】上記の先行技術では、指定された所定のア
ドレス空間に対しては全てのメモリアクセスがトレース
され、それ以外のアドレス空間に対してはN回に1回メ
モリアクセスがサンプリングされる。これによって、ア
ドレス情報の記録に必要な記憶容量の削減が図られてい
る。
【0004】
【発明が解決しようとする課題】しかしながら、上記の
先行技術では、アドレス情報を記録するために、メモリ
アクセス回数に比例したサイズの記憶領域が必要であ
る。そのため、実行時間の長いプログラムを監視しよう
とすると、記憶回路内の大きな記憶領域が使用されるこ
とになる。したがって、或る有限の大きさの記憶領域を
アドレス情報の記録のために用意している場合には、プ
ログラムの開始から終了までのメモリアクセスのモニタ
を行えないおそれがある。この問題は記憶回路内の大き
な記憶領域をメモリアクセスのトレースのために用いれ
ば解決されると思われるが、プログラムが使用できる記
憶容量を圧迫したり、大容量の記憶回路を用意する必要
が生じたりするため、あまり好ましくない。
【0005】また、現在主流のCPUは、大抵の場合キ
ャッシュメモリを内蔵した形で1つのLSI(大規模集
積回路)として作られている。このようなCPUが用い
られる装置では、CPUがメモリアクセスを実行したと
きにキャッシュメモリにそのデータが存在すると、CP
Uが行ったメモリアクセスに関する情報はLSIの外部
には現れないのが通常である。トレース情報を記録する
外部回路がメモリアクセスをプログラムのソースコード
に対応付けるために必要な情報を得るためには、LSI
のピンをそのためのデータ線に割り当てる必要がある。
このことは、ピンが貴重な資源となっている現在のLS
Iにおいては、極めて重要な問題を生じさせる。
【0006】そこで、本発明の目的は、上述の技術的課
題を解決し、大きな記憶容量を要することなくメモリア
クセスを監視することができるメモリアクセス監視装置
を提供することである。また、本発明の他の目的は、大
きな記憶容量を要することなくメモリアクセスを監視す
ることができる構成を備えた処理装置を提供することで
ある。
【0007】本発明のさらなる目的は、大きな記憶容量
を要することなく、メモリアクセスを監視することがで
きるメモリアクセス監視方法を提供することである。
【0008】
【課題を解決するための手段】上記の目的を達成するた
めの請求項1記載の発明は、演算処理手段と、演算処理
手段によりアクセスされる主メモリとを含む情報処理装
置に適用されるメモリアクセス監視装置であって、演算
処理手段の動作が停滞したときに、その原因となる命令
がメモリアクセス命令であるかどうかを調べる手段と、
演算処理手段の動作の停滞の原因がメモリアクセス命令
であるときに、そのメモリアクセス命令を表す情報を記
録する記録手段と、所定の割込み信号に応答して、上記
記録手段に記録されている情報を取り込んで保持する第
1保持手段と、所定時間間隔で上記所定の割込み信号を
発生する手段と、上記第1保持手段に保持された情報に
相当する各メモリアクセス命令の出現頻度を記録する手
段と、上記情報処理装置によって実行されるプログラム
に含まれている各メモリアクセス命令の実行回数を計数
する手段と、上記記録された各メモリアクセス命令の出
現頻度と、当該メモリアクセス命令の実行回数とに基づ
いて、演算処理手段の動作を高頻度で停滞させるメモリ
アクセス命令を特定する手段とを含むことを特徴とする
メモリアクセス監視装置である。
【0009】請求項2記載の発明は、キャッシュメモリ
を使用する演算処理手段と、演算処理手段によりアクセ
スされる主メモリとを含む情報処理装置に適用されるメ
モリアクセス監視装置であって、所定の割込み信号に応
答して、当該割込み信号発生時にメモリアクセスを実行
中である命令を表す情報を取り込んで保持する第2保持
手段と、所定時間間隔で上記所定の割込み信号を発生す
る手段と、上記第2保持手段に保持された情報に相当す
る各メモリアクセス命令の出現頻度を記録する手段と、
上記情報処理装置によって実行されるプログラムに含ま
れている各メモリアクセス命令の実行回数を計数する手
段と、上記記録された各メモリアクセス命令の出現頻度
と、当該メモリアクセス命令の実行回数とに基づいて、
キャッシュミスを高頻度で起こすメモリアクセス命令を
特定する手段とを含むことを特徴とするメモリアクセス
監視装置である。
【0010】請求項3記載の発明は、主メモリにアクセ
スしながら情報を処理する演算処理手段と、演算処理手
段の動作が停滞したときに、その原因となる命令がメモ
リアクセス命令であるかどうかを調べる手段と、演算処
理手段の動作の停滞の原因がメモリアクセス命令である
ときに、そのメモリアクセス命令を表す情報を記録する
記録手段と、所定の割込み信号に応答して、上記記録手
段に記録されている情報を取り込んで保持する第1保持
手段とを含むことを特徴とする処理装置である。
【0011】請求項4記載の発明は、キャッシュメモリ
を使用するとともに、主メモリにアクセスしながら情報
を処理する演算処理手段と、所定の割込み信号に応答し
て、当該割込み信号発生時にメモリアクセスを実行中で
ある命令を表す情報を取り込んで保持する第2保持手段
とを含むことを特徴とする処理装置である。
【0012】請求項5記載の発明は、演算処理手段と、
演算処理手段によりアクセスされる主メモリとを含む情
報処理装置に適用されるメモリアクセス監視方法であっ
て、演算処理手段の動作が停滞したときに、その原因と
なる命令がメモリアクセス命令であるかどうかを調べる
こと、演算処理手段の動作の停滞の原因がメモリアクセ
ス命令であるときに、そのメモリアクセス命令を表す情
報を記録手段に記録すること、所定時間間隔で、上記記
録手段に記録されている情報を第1保持手段に保持させ
ること、上記第1保持手段に保持された情報に相当する
各メモリアクセス命令の出現頻度を記録すること、上記
情報処理装置によって実行されるプログラムに含まれて
いる各メモリアクセス命令の実行回数を計数すること、
および上記記録された各メモリアクセス命令の出現頻度
と、当該メモリアクセス命令の実行回数とに基づいて、
演算処理手段の動作を高頻度で停滞させるメモリアクセ
ス命令を特定することを含むことを特徴とするメモリア
クセス監視方法である。
【0013】請求項6記載の発明は、キャッシュメモリ
を使用する演算処理手段と、演算処理手段によりアクセ
スされる主メモリとを含む情報処理装置に適用されるメ
モリアクセス監視方法であって、所定時間間隔で、メモ
リアクセス実行中の命令を表す情報を第2保持手段に保
持させること、上記第2保持手段に保持された情報に相
当する各メモリアクセス命令の出現頻度を記録するこ
と、上記情報処理装置によって実行されるプログラムに
含まれているメモリアクセス命令の実行回数を計数する
こと、および上記記録された各メモリアクセス命令の出
現頻度と、当該メモリアクセス命令の実行回数とに基づ
いて、キャッシュミスを高頻度で起こすメモリアクセス
命令を特定することを含むことを特徴とするメモリアク
セス監視方法である。
【0014】
【作用】請求項1または5記載の発明によれば、演算処
理手段の動作がメモリアクセス命令によって停滞する
と、このメモリアクセス命令を表す情報は記録手段に記
録される。記録手段に記録された情報は、所定時間間隔
で第1保持手段に保持される。この第1保持手段に保持
された情報に相当するメモリアクセス命令の出現頻度が
記録される。一方、情報処理装置が実行するプログラム
に含まれている各メモリアクセス命令の実行回数が計数
される。そして、各メモリアクセス命令の上記出現頻度
と当該メモリアクセス命令の実行回数とに基づいて、演
算処理手段の動作を高頻度で停滞させるメモリアクセス
命令が特定される。
【0015】記録手段または第1保持手段には、演算処
理手段の動作の停滞の原因となったメモリアクセス命令
に対応する情報が記録または保持されるが、これらの情
報は一次的に記録または保持されれば足り、最終的には
演算処理手段の動作が停滞する原因となったメモリアク
セス命令の第1保持手段に対する出現頻度が得られれば
充分である。そのため、記録手段や第1保持手段は多く
の情報を記録または保持できるものである必要はない。
また、メモリアクセ命令の出現頻度の記録には多くの記
憶容量を要することがない。
【0016】したがって、大きな記憶容量を要すること
なく、演算処理手段の動作を停滞させる原因となったメ
モリアクセス命令を特定することができる。なお、情報
処理のために請求項3に記載されている構成の処理装置
を用いれば、請求項1または5に記載の発明を好適に実
施できる。請求項2または6記載の発明によれば、所定
時間間隔でメモリアクセス実行中の命令が調べられ、そ
のメモリアクセス命令を表す情報が第2保持手段に保持
される。この第2保持手段に保持された情報に相当する
メモリアクセス命令の出現頻度が記録される。一方、情
報処理装置が実行するプログラムに含まれているメモリ
アクセス命令の実行回数が計数される。そして、各メモ
リアクセス命令の出現頻度と、当該メモリアクセス命令
の実行回数とに基づいて、キャッシュミスを高頻度で起
こす命令が特定される。
【0017】第2保持手段の保持内容は、この第2保持
手段に保持された情報に相当するメモリアクセス命令の
出現頻度が記録された後には、失われてもよい。したが
って、第2保持手段は大きな容量を有するものである必
要がない。メモリアクセス命令の出現頻度の記録には大
きな記憶容量が必要となることはないから、結局、少な
い記憶容量でキャッシュミスを高頻度で生じさせるメモ
リアクセス命令を特定することができる。
【0018】なお、情報処理のために請求項4に記載さ
れている構成の処理装置を用いれば、請求項2または6
に記載の発明を好適に実施できる。
【0019】
【実施例】以下では、本発明の実施例を、添付図面を参
照して詳細に説明する。図2は本発明の一実施例が適用
される情報処理装置の構成を示すブロック図である。こ
の情報処理装置は、CPU3および主メモリ5を有する
もので、CPU3は主メモリ5にアクセスしながら情報
処理を行う。CPU3の内部には、演算処理部7と、主
メモリ5の記憶内容の一部を記憶しておくためのキャッ
シュメモリ9とが備えられている。主メモリ5にアクセ
スする必要がある命令が実行されるときには、演算処理
部7は、まずキャッシュメモリ9にアクセスし、キャッ
シュメモリ9に必要な情報が存在すれば(このような場
合のことを「キャッシュにヒットした」などとい
う。)、主メモリ5へのアクセスは行わない。必要な情
報がキャッシュメモリ9にないときには(このような場
合のことを「キャッシュミス」という。)、キャッシュ
メモリ9へのアクセスに引き続いて、主メモリ5へのア
クセスが行われる。主メモリ5のアクセス対象アドレス
およびその周辺のアドレスの情報は、キャッシュメモリ
9に書き込まれる。
【0020】図1は上記の演算処理部7の詳細な構成を
示す概念図である。CPU3が実行するパイプライン
は、命令のフェッチ(Fetch)、命令のデコード(Decod
e)、演算の実行(Execute)、演算に必要なデータを読
み出すためのメモリアクセス(Memory Access) 、および
演算結果の情報の書込(Write Back)の各ステージを有し
ている。メモリアクセスステージMにあるメモリアクセ
ス待ちの命令のアドレスは、アドレスタグ10に現れ
る。アドレスタグ10に現れたアドレスは、割込み信号
に応答して第2保持手段としての第2のレジスタ群12
に保持される。第2のレジスタ群12はCPU3のパイ
プラインの数分のレジスタを有している。すなわち、本
実施例ではCPU3のパイプラインは1個なので、レジ
スタ群12は1個のレジスタを有していればよい。
【0021】CPU3が新たな命令をパイプラインの実
行ステージEへ送るのを停止した状態に陥ったとき(こ
のような状態となることを「CPU3がストールする」
という。)、CPU3がストールする原因となった命令
のアドレスは、バッファ15に書き込まれている。この
バッファ15に保持されたアドレスは、入力制御回路1
7を介して選択的に記録手段としてのFIFO(先入れ
先出し型メモリ)20に入力される。FIFO20は有
限サイズの記憶領域を有しており、記憶領域が一杯にな
っているときには、一番古いデータを捨てて新しいデー
タが格納される。このFIFOに代えて、レジスタが用
いられてもよい。
【0022】入力制御回路17には、バッファ15に保
持されているアドレスに相当する命令がメモリアクセス
命令(たとえば、ロード(load)命令やストア(store) 命
令)であるかどうかを判定する判定回路19からの判定
信号と、CPU3がストールしたことを表すストール信
号とが入力されている。入力制御回路17は、判定回路
19がバッファ15内のアドレスに対応する命令がメモ
リアクセス命令であると判定し、かつ、ストール信号が
入力された場合に、バッファ15内のアドレスをFIF
O20に書き込む。したがって、FIFO20には、C
PU3のストールの原因となった命令のアドレスが書き
込まれることになる。FIFO20の各段に保持された
アドレスは、割込信号に応答して第1保持手段としての
第1のレジスタ群11にラッチされる。この第1のレジ
スタ群は、FIFO20の段数と等しい個数のレジスタ
を有している。なお、FIFO20に命令のアドレスの
代わりに、各命令を区別することができるアドレス以外
の識別情報を記録するようにしてもよい。
【0023】上記の構成によれば、割込みが発生する
と、第1のレジスタ群11には、CPU3のストールの
原因となった命令のアドレスが保持されることになる。
また、第2のレジスタ群12には、割込み発生時にメモ
リアクセスを実行中の命令のアドレスが保持される。C
PU3が実行する或る特定のプログラムについてメモリ
アクセスがキャッシュミスを起こしているかどうかを調
べたい場合には、そのプログラムを実行するに当たり、
所定時間間隔(たとえば50ミリ秒)でタイマ割込みが
発生するように設定される。タイマ割込みルーチンで
は、第1および第2のレジスタ群11および12の内容
が読み出される。そして、第1および第2のレジスタ群
11に保持されている命令アドレスの出現頻度が、主メ
モリ5に記録される。第1のレジスタ群11の内容は、
その読み出しの後に、タイマ割込みルーチンによって空
にされる。一方、実行されるプログラムには、ベーシッ
クブロックの実行回数を計数するための命令が付加され
る。
【0024】プログラムの実行終了時には、ベーシック
ブロックの実行回数に関する情報と、割込み処理ルーチ
ンが収集した第1および第2のレジスタ群11,12に
対する命令アドレスの出現頻度との情報とが、主メモリ
5に記録される。そして、メモリアクセス命令が頻繁に
CPU3のストールを生じさせていたかどうか、および
メモリアクセス命令が頻繁にキャッシュミスを起こして
いたかどうかが、次のフローに基づいて、全てのメモリ
アクセス命令OPに関して判定される。
【0025】 メモリアクセス命令OPのアドレスの
レジスタ群11に対する出現頻度C1の、メモリアクセ
ス命令OPの実行回数(メモリアクセス命令OPを含む
ベーシックブロックの実行回数)に対する割合が充分に
大きいかどうかを判定する。 出現頻度C1のメモリアクセス命令OPの実行回数
に対する割合が充分に大きいときには、そのメモリアク
セス命令OPが頻繁にCPU3をストールさせていたも
のと判定する。出現頻度C1のメモリアクセス命令OP
の実行回数に対する割合が充分に大きい場合とは、たと
えば出現頻度C1がOPの実行回数の50%以上のよう
な場合をいう。
【0026】 出現頻度C1のメモリアクセス命令O
Pの実行回数に対する割合が充分に大きくないときに
は、そのメモリアクセス命令OPはCPU3を頻繁にス
トールさせていないものと判定する。 メモリアクセス命令OPの第2のレジスタ群12に
対する出現頻度をC2としたときに、メモリアクセス命
令OPがメモリアクセス完了を待っていた時間Tmem の
上限および下限が次のように定められる。
【0027】 T×(C2−1)<Tmem <T×(C2+1) ただし、Tはタイマ割込みが発生する時間間隔である。
また、メモリアクセス命令OPによるメモリアクセスが
すべてキャッシュにヒットした場合にメモリアクセス命
令OPがメモリアクセス完了を待つ時間Tideal が、次
の計算式に従って求められる。
【0028】Tideal =(キャッシュヒットの場合にメ
モリアクセスステージに存在する時間(たとえば20ナ
ノ秒))×(メモリアクセス命令OPを含むベーシック
ブロックの実行回数) Tideal がTmem の下限(=T×(C2−1))よ
りも充分に小さい場合には、メモリアクセス命令OPが
頻繁にキャッシュミスを生じていたものと判定される。
Tideal がTmem の下限よりも充分に小さい場合とは、
たとえば、Tideal がTmem の下限の50%以下のよう
な場合をいう。
【0029】 Tideal がTmem の下限よりも充分に
小さくない場合には、メモリアクセス命令OPは頻繁に
キャッシュミスを生じさせていないものと判定する。上
記の〜のフローによって、CPU3が実行するメモ
リアクセス命令の中で、CPU3のストールを高頻度で
生じさせるもの、およびキャッシュメモリにヒットしな
いために実行時間が長くなるものを検出することができ
る。
【0030】タイマ割込みは、通常の計算機の場合に
は、タイマ割込みを発生するIC(集積回路)を用いて
実現される。タイマ割込みの時間間隔は、このICのレ
ジスタに値を設定することによって変更できる。通常の
プログラムのなかから、プログラム実行開始時に上記I
Cのレジスタに値を設定するには、OS(オペレーティ
ングシステム)がそのシステムコールをサポートしてい
る必要がある。たとえば、UNIXでは、setitimer()
というシステムコールが用意されており、通常のプログ
ラムからタイマ割込みの時間間隔が設定できるようにな
っている。
【0031】以上のように本実施例によれば、CPU3
の内部に少量のハードウエアを付加し、ソフトウェア処
理との組合せによって、CPU3のストールやキャッシ
ュミスを頻繁に生じさせるメモリアクセス命令が検出さ
れる。この検出された情報は、たとえば、プログラムが
使用するデータの配置等の検討材料として用いることが
でき、プログラムの実行時間の短縮などのために活用さ
れる。
【0032】本実施例では、CPU3が実行するメモリ
アクセスに関する情報を記録するために必要な記憶容
量、すなわち、FIFO20、第1および第2のレジス
タ群11,12の記憶容量は、固定サイズであり、メモ
リアクセスの実行回数やプログラムが用いるデータのサ
イズ(プログラムの命令部分のサイズ)には依存しな
い。レジスタ群11,12におけるメモリアクセス命令
の出現頻度とベーシックブロックの実行回数とを記録す
るための主メモリ5中における記憶容量は、プログラム
の命令部分のサイズにのみ比例する。そのため、実行時
間の長いプログラムのメモリアクセス命令を監視する場
合でも、記憶容量が不足するなどということはなく、勿
論、大きな記憶領域をメモリアクセスの監視のために用
意する必要もない。CPU3のストールやキャッシュミ
スを頻繁に生じさせるメモリアクセス命令の出現頻度の
記録に大きな記憶容量が必要となることはないから、結
局、少ない記憶容量でメモリアクセス命令を監視するこ
とができる。
【0033】また、メモリアクセスに関する情報を外部
回路が得るためにCPU3のLSIパッケージのピンを
データ線に割り当てる必要もない。すなわち、ピン数を
増加させることなく、CPU3のストールやキャッシュ
ミスを頻繁に生じさせるメモリアクセス命令を検出でき
る。なお、CPU3をストールさせたメモリアクセス命
令を全て記録するためには、FIFO20の段数は、タ
イマ割込みの時間間隔中に発生する可能性のある、スト
ールを生じるメモリアクセス命令の数(具体的には、タ
イマ割込みの時間間隔を、キャッシュミスを起こしたメ
モリアクセス命令の実行にかかる時間で割ったもの。)
だけ必要となる。しかし、キャッシュミスを起こしたメ
モリアクセス命令の実行にかかる時間が100ナノ秒程
度であることと、タイマ割込み時間間隔をあまり短くす
ると割込み処理のオーバーヘッドが大きくなりすぎるこ
ととから、それだけの段数のFIFO(タイマ割込み時
間間隔が500ミリ秒であれば、500段のFIFO)
をマイクロプロセッサ上に確保することは現実的ではな
い。そこで、本実施例では、タイマ割込み時間間隔に関
係なくFIFO20の段数を設定しており、CPU3を
ストールさせたメモリアクセス命令をいわばサンプリン
グすることにより、ストールを生じさせるメモリアクセ
ス命令の出現頻度を近似的に検出するようにしている。
【0034】図3は本発明の第2実施例が適用された場
合の内部構成を示すブロック図である。この図3におい
て上記の図1の各部に相当する部分には同一の参照符号
を付して示す。また、本実施例の説明では、上記の図2
を再び参照する。図3に示された構成は、図2に示され
たCPU3内の演算処理部7の構成である。本実施例で
は、CPU3は2つのパイプラインP1およびP2をも
ち、リオーダバッファ(reorder buffer)15を用いて、
アウトオブオーダーイシュー(out of order issue)、ア
ウトオブオーダーコンプレッション(out of order comp
letion) の制御を行うスーパースカラープロセッサであ
る。リオーダバッファ15には、現在パイプライン中に
存在する命令のアドレスが、パイプラインのステージ
W,M,Eにあるものを先頭として保持される。
【0035】図4はCPU3がストールしたときの状態
を示す図である。CPU3がストールした場合には、リ
オーダバッファ15の先頭にあるアドレスに対応する命
令がストールの原因であるものとされる。CPU3がス
トールすると、リオーダバッファ15の先頭のアドレス
Xに対応する命令(たとえばロード命令:Load R1,0x10
0 )がメモリアクセス命令であるかどうかが判定され
る。メモリアクセス命令であるときには、その命令のア
ドレスXがFIFO20に挿入される。
【0036】図5は割込みが発生したときの状態を示す
図である。割込みが発生した場合には、FIFO20の
内容が第1のレジスタ群11にコピーされ、同時に、各
パイプラインのメモリアクセスステージMに存在する命
令のアドレスが第2のレジスタ群12にコピーされる。
本実施例では、パイプラインが2つあるので、第2のレ
ジスタ群12は、2つのレジスタを有している。
【0037】割込みがタイマ割込みであった場合、タイ
マ割込みに対する処理ルーチンにおいて、レジスタ群1
1,12の値が読み出される。割込み処理ルーチンは、
命令のアドレスのプログラム開始アドレスからのオフセ
ットをインデックスとする構造体の配列(COUNTER)を管
理している。この構造体は、次のような構造を有してい
る。
【0038】 割込み処理ルーチンは、レジスタ群11,12の内容を
読み出して以下の処理を行う。
【0039】 レジスタ群11の中に格納されている
命令アドレスに対応する構造体のcount1を「1」増や
す。 同様に、レジスタ群12の中に格納されている命令
アドレスに対応する構造体のcount2を「1」増やす。 FIFO20の内容を全てEmpty (空)に書き換え
る。
【0040】メモリアクセスがキャッシュミスを起こし
ているかどうかを調べる際には、プログラム実行開始に
当たり、所定時間間隔(=T:たとえばT=50ミリ
秒)でタイマ割込みが発生するように設定される。プロ
グラム実行中に当該プログラムを構成する各ベーシック
ブロックが何回実行されたのかの情報は、ベーシックブ
ロックの実行回数を数えるための命令をプログラム中に
付加することによって収集する。
【0041】各メモリアクセス命令OP1に対応する構
造体 COUNTER[OP1]のcounter1の値を調べ、OP1
を含むベーシックブロックの実行回数(=OP1の実行
回数)と比較すれば、OP1を実行した場合にどの程度
の割合でCPU3がストールしていたかが判る。したが
って、たとえば、counter1の値がOP1の実行回数の5
0%以上の場合に、メモリアクセス命令OP1がCPU
2のストールを高頻度で生じさせていたものと判定され
る。
【0042】また、メモリアクセス命令OP1に対応す
る構造体 COUNTER[OP1]のcounter2の値をC2とす
ると、命令OP1がパイプラインのメモリアクセスステ
ージにいた時間Tmem は、 T×(C2−1)<Tmem <T×(C2+1) となる。一方、OP1によるメモリアクセスが全てキャ
ッシュにヒットした場合にOP1がパイプラインのメモ
リアクセスステージに存在していた時間Tidealは、Ti
deal =(キャッシュヒットの場合にメモリアクセスス
テージに存在する時間(たとえば20ナノ秒))×(O
P1を含むベーシックブロックの実行回数)となる。T
ideal がTmem の下限(=T×(C2−1))よりも充
分に小さい場合、OP1は頻繁にキャッシュミスを生じ
ていたと判断できる。Tideal がTmem の下限よりも充
分に小さい場合とは、Tideal がTmem の下限の50%
以下のような場合である。
【0043】このようにして、上記の第1実施例と同様
な作用および効果が達成される。本発明の実施例の説明
は以上のとおりであるが、本発明は上記の実施例に限定
されるものではない。たとえば、上記の第1実施例では
CPU3は1つのパイプラインを持ち、第2実施例では
CPU3は2個のパイプラインを有しているが、CPU
3が持つパイプラインの数はこれらに限定されるもので
はない。
【0044】また、上記の実施例では、プログラム中の
ベーシックブロックの実行回数を計数することによっ
て、プログラムに含まれているメモリアクセス命令の実
行回数が間接的に計数されているが、メモリアクセス命
令の実行回数を直接的に計数するようにしてもよい。さ
らに、上記の実施例では、CPU3を高頻度でストール
させるメモリアクセス命令と、キャッシュミスを頻繁に
起こすメモリアクセス命令との両方が検出されている
が、いずれか一方のみを検出するようにしてもよい。す
なわち、FIFO20や第1のレジスタ群11などのみ
を設け、第2レジスタ群12を設けない構成としもよ
い。また、FIFO20および第1のレジスタ群11な
どは設けずに、第2レジスタ群12に関連する構成のみ
を設けるようにしてもよい。
【0045】その他、特許請求の範囲に記載された技術
的事項の範囲内で種々の変更を施すことができる。
【0046】
【発明の効果】請求項1または5記載の発明によれば、
演算処理手段の動作の停滞の原因となったメモリアクセ
ス命令の出現頻度が最終的に記録されればよいので、動
作の停滞の原因となったメモリアクセス命令に対応する
情報を記録または保持するための記録手段または第1保
持手段は、多くの情報を記録または保持するものである
必要はない。また、メモリアクセス命令の出現頻度の記
録には大きな記憶容量が必要とされることはないから、
結局、少ない記憶容量で、演算処理手段の動作を高頻度
で停滞させるメモリアクセス命令を特定できる。
【0047】請求項3記載の処理装置を情報の処理のた
めに適用すれば、請求項1または請求項5記載の発明を
好適に実施できる。請求項2または6記載の発明によれ
ば、メモリアクセス命令の出現頻度が最終的に記録され
ればよいため、所定時間隔のタイミングでメモリアクセ
ス実行中のメモリアクセス命令に相当する情報を保持す
る第2保持手段は、大きな記憶容量を有している必要は
ない。出現頻度の記録にはわずかな記憶容量を要するに
過ぎないから、結局、少ない記憶容量でキャッシュミス
を高頻度で生じさせるメモリアクセス命令を特定するこ
とができる。
【0048】請求項4記載の処理装置を情報の処理のた
めに適用すれば、請求項2または請求項6記載の発明を
好適に実施できる。
【図面の簡単な説明】
【図1】本発明の一実施例が適用される演算処理部の概
念的な構成を示すブロック図である。
【図2】本発明の実施例が適用される情報処理部の構成
を簡略化して示すブロック図である。
【図3】本発明の他の実施例が適用される演算処理部の
概念的な構成を示すブロック図である。
【図4】CPUがストールしたときの状態を示すブロッ
ク図である。
【図5】割込み発生時の状態を示すブロック図である。
【符号の説明】
3 CPU 5 主メモリ 7 演算処理部 9 キャッシュメモリ 10 アドレスタグ 11 第1のレジスタ群 12 第2のレジスタ群 15 バッファ 17 入力制御回路 19 判定回路 20 FIFO

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】演算処理手段と、演算処理手段によりアク
    セスされる主メモリとを含む情報処理装置に適用される
    メモリアクセス監視装置であって、 演算処理手段の動作が停滞したときに、その原因となる
    命令がメモリアクセス命令であるかどうかを調べる手段
    と、 演算処理手段の動作の停滞の原因がメモリアクセス命令
    であるときに、そのメモリアクセス命令を表す情報を記
    録する記録手段と、 所定の割込み信号に応答して、上記記録手段に記録され
    ている情報を取り込んで保持する第1保持手段と、 所定時間間隔で上記所定の割込み信号を発生する手段
    と、 上記第1保持手段に保持された情報に相当する各メモリ
    アクセス命令の出現頻度を記録する手段と、 上記情報処理装置によって実行されるプログラムに含ま
    れている各メモリアクセス命令の実行回数を計数する手
    段と、 上記記録された各メモリアクセス命令の出現頻度と、当
    該メモリアクセス命令の実行回数とに基づいて、演算処
    理手段の動作を高頻度で停滞させるメモリアクセス命令
    を特定する手段とを含むことを特徴とするメモリアクセ
    ス監視装置。
  2. 【請求項2】キャッシュメモリを使用する演算処理手段
    と、演算処理手段によりアクセスされる主メモリとを含
    む情報処理装置に適用されるメモリアクセス監視装置で
    あって、 所定の割込み信号に応答して、当該割込み信号発生時に
    メモリアクセスを実行中である命令を表す情報を取り込
    んで保持する第2保持手段と、 所定時間間隔で上記所定の割込み信号を発生する手段
    と、 上記第2保持手段に保持された情報に相当する各メモリ
    アクセス命令の出現頻度を記録する手段と、 上記情報処理装置によって実行されるプログラムに含ま
    れている各メモリアクセス命令の実行回数を計数する手
    段と、 上記記録された各メモリアクセス命令の出現頻度と、当
    該メモリアクセス命令の実行回数とに基づいて、キャッ
    シュミスを高頻度で起こすメモリアクセス命令を特定す
    る手段とを含むことを特徴とするメモリアクセス監視装
    置。
  3. 【請求項3】主メモリにアクセスしながら情報を処理す
    る演算処理手段と、 演算処理手段の動作が停滞したときに、その原因となる
    命令がメモリアクセス命令であるかどうかを調べる手段
    と、 演算処理手段の動作の停滞の原因がメモリアクセス命令
    であるときに、そのメモリアクセス命令を表す情報を記
    録する記録手段と、 所定の割込み信号に応答して、上記記録手段に記録され
    ている情報を取り込んで保持する第1保持手段とを含む
    ことを特徴とする処理装置。
  4. 【請求項4】キャッシュメモリを使用するとともに、主
    メモリにアクセスしながら情報を処理する演算処理手段
    と、 所定の割込み信号に応答して、当該割込み信号発生時に
    メモリアクセスを実行中である命令を表す情報を取り込
    んで保持する第2保持手段とを含むことを特徴とする処
    理装置。
  5. 【請求項5】演算処理手段と、演算処理手段によりアク
    セスされる主メモリとを含む情報処理装置に適用される
    メモリアクセス監視方法であって、 演算処理手段の動作が停滞したときに、その原因となる
    命令がメモリアクセス命令であるかどうかを調べるこ
    と、 演算処理手段の動作の停滞の原因がメモリアクセス命令
    であるときに、そのメモリアクセス命令を表す情報を記
    録手段に記録すること、 所定時間間隔で、上記記録手段に記録されている情報を
    第1保持手段に保持させること、 上記第1保持手段に保持された情報に相当する各メモリ
    アクセス命令の出現頻度を記録すること、 上記情報処理装置によって実行されるプログラムに含ま
    れている各メモリアクセス命令の実行回数を計数するこ
    と、および上記記録された各メモリアクセス命令の出現
    頻度と、当該メモリアクセス命令の実行回数とに基づい
    て、演算処理手段の動作を高頻度で停滞させるメモリア
    クセス命令を特定することを含むことを特徴とするメモ
    リアクセス監視方法。
  6. 【請求項6】キャッシュメモリを使用する演算処理手段
    と、演算処理手段によりアクセスされる主メモリとを含
    む情報処理装置に適用されるメモリアクセス監視方法で
    あって、 所定時間間隔で、メモリアクセス実行中の命令を表す情
    報を第2保持手段に保持させること、 上記第2保持手段に保持された情報に相当する各メモリ
    アクセス命令の出現頻度を記録すること、 上記情報処理装置によって実行されるプログラムに含ま
    れているメモリアクセス命令の実行回数を計数するこ
    と、および上記記録された各メモリアクセス命令の出現
    頻度と、当該メモリアクセス命令の実行回数とに基づい
    て、キャッシュミスを高頻度で起こすメモリアクセス命
    令を特定することを含むことを特徴とするメモリアクセ
    ス監視方法。
JP6003738A 1994-01-18 1994-01-18 メモリアクセス監視装置およびメモリアクセス監視方法 Pending JPH07210427A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6003738A JPH07210427A (ja) 1994-01-18 1994-01-18 メモリアクセス監視装置およびメモリアクセス監視方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6003738A JPH07210427A (ja) 1994-01-18 1994-01-18 メモリアクセス監視装置およびメモリアクセス監視方法

Publications (1)

Publication Number Publication Date
JPH07210427A true JPH07210427A (ja) 1995-08-11

Family

ID=11565573

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6003738A Pending JPH07210427A (ja) 1994-01-18 1994-01-18 メモリアクセス監視装置およびメモリアクセス監視方法

Country Status (1)

Country Link
JP (1) JPH07210427A (ja)

Similar Documents

Publication Publication Date Title
US6052708A (en) Performance monitoring of thread switch events in a multithreaded processor
US6026501A (en) Data processing system for controlling execution of a debug function and method thereof
JP4094724B2 (ja) ソフトウェアをデバッグする際に例外を識別するための装置および方法
JP4190114B2 (ja) マイクロコンピュータ
US6223228B1 (en) Apparatus for synchronizing multiple processors in a data processing system
KR100280732B1 (ko) 데이터처리시스템의성능모니터링방법및장치
EP0084431A2 (en) Monitoring computer systems
US7941652B2 (en) Apparatus and computer program product for implementing atomic data tracing
USRE47851E1 (en) Data processing system having cache memory debugging support and method therefor
US9201749B2 (en) Diagnosing code using single step execution
KR100309615B1 (ko) 고속프로그램가능로직컨트롤러(plc)
JPH096680A (ja) キャッシュフラッシュ装置
US5515521A (en) Circuit and method for reducing delays associated with contention interference between code fetches and operand accesses of a microprocessor
JPH05204709A (ja) プロセッサ
EP0869434A2 (en) Method for outputting trace information of a microprocessor
JPS63193239A (ja) 命令順序監視装置と方法
JP3088129B2 (ja) マイクロプロセッサ
US5287483A (en) Prefetched operand storing system for an information processor
JPH1124959A (ja) マイクロプロセッサのトレース情報出力方法
US5287522A (en) External procedure invocation apparatus utilizing internal branch vector interrupts and vector address generation, in a RISC chip
JPH07210427A (ja) メモリアクセス監視装置およびメモリアクセス監視方法
JPS6383841A (ja) プログラムテスト可能な計算機中央処理装置
JP2760228B2 (ja) キャッシュメモリを内蔵したマイクロプロセッサとそのトレースアナライザ
JP3349911B2 (ja) マイクロプロセッサ及びその開発支援装置
JPH08335177A (ja) プロセッサ動作観察方法及び装置