JPH07253908A - メモリアクセス装置 - Google Patents

メモリアクセス装置

Info

Publication number
JPH07253908A
JPH07253908A JP6042982A JP4298294A JPH07253908A JP H07253908 A JPH07253908 A JP H07253908A JP 6042982 A JP6042982 A JP 6042982A JP 4298294 A JP4298294 A JP 4298294A JP H07253908 A JPH07253908 A JP H07253908A
Authority
JP
Japan
Prior art keywords
memory
data
address
output
signal
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.)
Withdrawn
Application number
JP6042982A
Other languages
English (en)
Inventor
Fumihiko Anzai
文彦 安西
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.)
Fuji Electric Co Ltd
Fuji Facom Corp
Original Assignee
Fuji Electric Co Ltd
Fuji Facom 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 Fuji Electric Co Ltd, Fuji Facom Corp filed Critical Fuji Electric Co Ltd
Priority to JP6042982A priority Critical patent/JPH07253908A/ja
Publication of JPH07253908A publication Critical patent/JPH07253908A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】メモリ内容の変化をより正確に把握し、メモリ
の内容を任意の時点の状態に復元してメモリに記憶され
た内容を通して各部の動作状態の推移に対する確認を容
易にすることにより、プログラム開発等の作業を容易に
し、また、各トレースメモリに論理回路等を用いてメモ
リアクセス情報を自動的に書き込むことにより、プログ
ラムの変更、開発といった手間を省くとともに、他の装
置に対して容易に適用させることを目的とする。 【構成】メモリアクセス実行手段2がメモリ1にデータ
を書き込むとき、該データが書き込まれるアドレスから
自動的にデータを読み出し、メモリアクセス情報をアク
セス情報記憶手段3に書き込む自動読出手段4と、アク
セス情報記憶手段3に記憶されたメモリアクセス情報
を、メモリ1のアドレス毎に対応せて比較する比較手段
5と、比較手段5の比較結果に基づいて、アクセス情報
記憶手段3に記憶されたデータをメモリ1に書き込む復
元手段6とを具備している。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、メモリからのデータの
読み出し、メモリへのデータの書き込みのメモリアクセ
スにおける各種情報を記憶し、該記憶した各種情報に基
づいて、メモリに記憶された内容の変化を把握するメモ
リアクセス装置に関する。
【0002】
【従来の技術】メモリに対してデータの書き込み、読み
出しを行うメモリアクセス装置は、現代において殆どの
機器が備えている。図9は、一般的なメモリアクセス装
置(第1の従来例)の構成を示すブロック図であり、同
図を参照して、その動作を説明する。
【0003】CPU(CENTRAL PROCESSOR UNIT)81が
メモリ82のデータを読み出す場合、データを読み出す
アドレスをアドレスバス83に出力し、RE(リードイ
ネーブル)信号をアクティブ(=1)にする。DEC
(デコーダ)84は、CPU81がアドレスバス83に
出力した上位アドレスの値をデコードしてCS信号を生
成し、メモリ82に出力する。
【0004】CS信号を入力したメモリ82は、アドレ
スバス83からCPU81が出力したアドレスの下位の
ビットを入力することにより、データを読み出すアドレ
スを確定し、RE信号を入力して確定したアドレスのデ
ータをデータバス85に出力する。データバス85にデ
ータが出力されると、WAIT回路86は、READY
信号をCPU81に出力する。CPU81は、READ
Y信号を入力すると、データバス85に出力されたデー
タを取り込み、次の処理に移行する。
【0005】一方、CPU81がメモリ82にデータを
書き込む場合、データを書き込むアドレスをアドレスバ
ス83、書き込むデータをデータバス85に各々出力
し、WE(ライトイネーブル)信号をアクティブ(=
1)にする。DEC84は、CPU81がアドレスバス
83に出力した上位アドレスの値をデコードしてCS信
号を生成し、メモリ82に出力する。
【0006】CS信号を入力したメモリ82は、アドレ
スバス83からCPU81が出力したアドレスの下位の
ビットを入力することにより、データを書き込むアドレ
スを確定し、WE信号を入力してデータバス85上のデ
ータを取り込み、取り込んだデータを確定したアドレス
に上書きすることにより、メモリ82のデータを書き換
える。データの書き込みが終了すると、WAIT回路8
6は、READY信号をCPU81に出力する。CPU
81は、READY信号を入力すると、データバス85
に対するデータの出力を終了し、次の処理に移行する。
【0007】このようなメモリアクセス装置は、メモリ
へのデータの書き込み、データの読み出しといったメモ
リアクセスを実行するだけであり、メモリアクセスが実
際に実行されたか否かを確認することができないという
不都合があった。このため、メモリアクセスの実行状態
を確認するトレース機能を備えたメモリアクセス装置が
提供されている。図10は、トレース機能を備えたメモ
リアクセス装置(第2の従来例)の構成を示すブロック
図であり、同図を参照して、第2の従来例について説明
する。図10において、図9に示した構成と同じもの
は、同一の符号を用いている。
【0008】図10に示す如く、第2の従来例では、図
9に示した第1の従来例の構成に加え、メモリ82に対
するアクセス情報を記憶するアドレストレースメモリ9
1、データトレースメモリ92、及びWE信号トレース
メモリ93の各トレースメモリと、各トレースメモリを
駆動するためのトレース回路94とを具備している。ト
レース回路94は、ORゲート94aと、各トレースメ
モリのアドレスを指定するカウンタ94bとから構成さ
れ、カウンタ94bがカウントした値は、バス95を介
して各トレースメモリに入力される。
【0009】以上の構成において、先ず、CPU81が
メモリ82からデータを読み出す場合の動作について説
明する。CPU81は、データを読み出すアドレスをア
ドレスバス83に出力し、RE信号をアクティブにす
る。DEC84は、CPU81がアドレスバス83に出
力したアドレスの値をデコードしてCS信号を生成し、
メモリ82、及び各トレースメモリに出力する。
【0010】CS信号を入力したメモリ82は、アドレ
スバス83からCPU81が出力したアドレスの下位の
ビットを入力することにより、データを読み出すアドレ
スを確定し、RE信号を入力して確定したアドレスのデ
ータをデータバス85に出力する。
【0011】トレース回路94のORゲート94aは、
CPU81から出力されたRE信号とWE信号の論理和
をとり、各トレースメモリにWE信号として出力する。
各トレースメモリは、CS信号、WE信号を入力する
と、カウンタ94bのカウント値をアドレスとして、ア
ドレストレースメモリ91はアドレスバス83上のデー
タ、データトレースメモリ92はデータバス85上のデ
ータ、WE信号トレースメモリ93はCPU81が出力
しているWE信号(このとき、ノンアクティブ=0)を
各々書き込む。
【0012】各トレースメモリへのデータの書き込みが
終了すると、カウンタ94bはカウント値をインクリメ
ントし(この値が各トレースメモリに書き込む次のアド
レスになる)、WAIT回路86は、READY信号を
CPU81に出力する。CPU81は、READY信号
を入力すると、データバス85に出力されたデータを取
り込み、次の処理に移行する。
【0013】次に、CPU81がメモリ82にデータを
書き込む場合について説明する。CPU81は、データ
を書き込むアドレスをアドレスバス83、書き込むデー
タをデータバス85に各々出力し、WE信号をアクティ
ブにする。DEC84は、CPU81がアドレスバス8
3に出力したアドレスの値をデコードしてCS信号を生
成し、メモリ82、及び各トレースメモリに出力する。
【0014】CS信号を入力したメモリ82は、アドレ
スバス83からCPU81が出力したアドレスの下位の
ビットを入力することにより、書き込むデータのアドレ
スを確定し、WE信号を入力してデータバス85上のデ
ータを取り込み、取り込んだデータを確定したアドレス
に上書きすることにより、メモリ82のデータを書き換
える。
【0015】CPU81から出力されたWE信号がアク
ティブになると、ORゲート94aの出力(WE信号)
もアクティブに切り換わる。各トレースメモリは、CS
信号、WE信号を入力すると、カウンタ94bのカウン
ト値をアドレスとして、アドレストレースメモリ91は
アドレスバス83上のデータ、データトレースメモリ9
2はデータバス85上のデータ、WE信号トレースメモ
リ93はCPU81が出力しているWE信号(このと
き、アクティブ=1)を各々書き込む。
【0016】各トレースメモリへの書き込みが終了する
と、カウンタ94bはカウント値をインクリメントし、
WAIT回路86は、READY信号をCPU81に出
力する。CPU81は、READY信号を入力すると、
データバス85へのデータの出力を終了し、次の処理に
移行する。
【0017】このように、メモリアクセスを実行する毎
に各トレースメモリにアドレス、データ、WE信号をメ
モリアクセス情報として書き込むので、CPU81は、
メモリ82のアドレス毎に対応させ、これらの書き込ま
れたデータを読み出して確認することにより、メモリア
クセスが実際に実行されたか否か判断することができ
る。
【0018】
【発明が解決しようとする課題】しかしながら、前述し
た第2の従来例のようなメモリアクセス装置によれば、
特定した対象によるメモリアクセスが実際に実行された
か否か判断することができるが、特定した対象以外によ
ってもメモリアクセスは実行できるため、特定した対象
によるメモリアクセス情報だけではメモリに書き込まれ
ている内容の変化を正確に把握できないという問題点が
あった。
【0019】前述した問題点について、図10に示した
第2の従来例を例にとって具体的に説明する。第2の従
来例において、特定された(トレースされる)対象はC
PU81であり、CPU81によるメモリアクセスは、
例えば、図11に示すように各トレースメモリに格納さ
れる。図11において、時間経過は上から下に向かって
おり、シーケンス番号は発生した事象の順序を示す。従
って、図11に示す内容は、メモリ82の1000番地
のアドレスからデータとして30を読み出した後、20
00番地のアドレスにデータの40を書き込み、以下、
同様に、3000番地から50を読み出し、4000番
地に60を書き込み、2000番地から40を読み出
し、4000番地から60を読み出し、2000番地に
100を書き込むことが、シーケンス番号順に行われた
ことを表している。
【0020】メモリ82からデータを読み出す場合、読
み出したデータ、データが読み出されたアドレス等のメ
モリアクセス情報は、各トレースメモリに記憶されてい
るので、各トレースメモリに記憶されているメモリアク
セス情報を読み出し、メモリ82のアドレス毎に対応さ
せて読み出したデータを比較することにより、メモリの
内容の変化を把握することができる。しかし、データを
書き込む場合、データを書き込むアドレスに記憶されて
いたデータを把握することができない。
【0021】最近では、DMAC(DIRECT MEMORY ACCE
SS CONTROLLER )の他に、多重処理、各処理を専用に実
行させる、システムの信頼性を向上させる等の目的で複
数のCPU(マルチCPU)を備えた機器も増えてきて
いる。これらは、各自メモリアクセスを実行することが
できるので、一つのCPUだけをトレースしてもメモリ
の内容の変化を正確に把握することができないことを意
味している。例えば、図11に示した例において、シー
ケンス番号9で2000番地に100を書き込んでいる
が、2000番地に書き込まれていたデータを把握する
ことはできない。
【0022】このように、メモリの内容の変化を正確に
把握するには、第2の従来例のように各トレースメモリ
にメモリアクセス情報を記憶させるだけでは足りないこ
とがわかる。メモリの内容の変化を正確に把握するに
は、備えられたCPU及びDMAC等の全てのメモリア
クセス実行手段をトレースしなければならないが、この
方法では、メモリアクセスに要する時間がこれらを備え
る程長くかかり、処理速度が低下するので実用的ではな
い。特にDMACは、多量のデータを短い時間で転送す
るためのものであり、この方法ではDMACを搭載する
必要がないことにもなる。
【0023】しかし、指定したアドレスにデータを書き
込む前に、このアドレスに記憶されたデータを読み出
し、読み出したデータ、データを読み出したアドレス等
をメモリアクセス情報として各トレースメモリに記憶さ
せれば、処理速度をあまり低下させることなく、メモリ
の内容の変化をより正確に把握することができる。
【0024】また、第2の従来例では、メモリアクセス
情報の各トレースメモリへの書き込みをトレース回路9
4により行っているが、第2の従来例の構成において、
メモリ82へデータを書き込むときに、データを書き込
むメモリ82のアドレスからデータを読み出す機能を付
加させる場合、プログラムの修正等の新たなプログラム
開発を伴うことになるため、煩雑な作業が必要となり、
面倒であるという問題点がある。これは、第2の従来例
のような構成のメモリアクセス装置に対して、容易にこ
の機能を付加することができないことを意味する。
【0025】また、メモリへの誤った書き込みは、一般
に、ソフト上、ハード上の誤動作等により発生する。こ
のため、メモリへの誤った書き込みが行われた場合、こ
の誤った書き込みが行われた原因を分析しなければなら
ないが、メモリへ誤って書き込まれたデータ、誤った書
き込みが行われた時期等が特定できない場合、原因の分
析が容易ではなく、プログラムのデバック等が難しいと
いう問題点がある。
【0026】本発明は、上記問題点に鑑みてなされたも
ので、メモリ内容の変化をより正確に把握することを目
的とする。また、メモリの内容を任意の時点の状態に復
元し、メモリに記憶された内容を通して各部の動作状態
の推移に対する確認を容易にすることにより、プログラ
ム開発等の作業を容易にすることを目的とする。
【0027】また、各トレースメモリに論理回路等を用
いてメモリアクセス情報を自動的に書き込むことによ
り、プログラムの変更、開発といった手間を省くととも
に、他の装置に対して容易に本発明を適用させることを
目的とする。
【0028】
【課題を解決するための手段】図1を参照して、本発明
のメモリアクセス装置について説明する。本発明のメモ
リアクセス装置は、メモリ1からのデータの読み出し、
メモリ1へのデータの書き込みのメモリアクセスを実行
するメモリアクセス実行手段2と、メモリ1から読み出
したデータ、該データが読み出されたアドレス等のメモ
リアクセス情報を記憶するアクセス情報記憶手段3と、
メモリアクセス実行手段2がメモリ1にデータを書き込
むとき、該データが書き込まれるアドレスから自動的に
データを読み出してアクセス情報記憶手段3に書き込む
自動読出手段4と、アクセス情報記憶手段3に記憶され
たメモリアクセス情報を、メモリ1のアドレス毎に対応
させて比較する比較手段5とを具備している。
【0029】また、本発明のメモリアクセス装置は、前
述した構成に加えて、比較手段5の比較結果に基づい
て、アクセス情報記憶手段3からデータを読み出してメ
モリ1に書き込む復元手段6を備えている。
【0030】なお、前述した構成において、自動読出手
段4は、論理回路と、論理回路の出力により、メモリア
クセス実行手段2へ出力されるデータ、メモリアクセス
実行手段2からメモリ1へ出力されるデータを管理する
管理手段とからなることが望ましい。
【0031】
【作用】本発明のメモリアクセス装置は、メモリアクセ
ス実行手段2がメモリ1にデータを書き込む場合、デー
タを書き込む前に、自動読出手段4がデータを書き込む
アドレスに記憶されているデータを自動的に読み出し、
読み出したデータ、アドレス等のメモリアクセス情報を
アクセス情報記憶手段3に記憶させる。アクセス情報記
憶手段3に記憶されたデータは、メモリ1のアドレス毎
に対応させて比較手段が読み出して比較することによ
り、メモリ1に記憶された内容の変化を検出する。復元
手段6は、比較手段5の比較結果に従い、メモリ1に記
憶された内容の変化に応じてアクセス情報記憶手段3に
記憶されたデータをメモリ1に書き込むことにより、メ
モリ1に記憶された内容を任意の時点の状態に復元す
る。また、自動読出手段4は、論理回路等により構成さ
れ、これにより、メモリ1からのデータの読み出し、ア
クセス情報記憶手段3へのメモリアクセス情報の書き込
みを自動的に実行する。
【0032】
【実施例】以下、本発明の実施例について、図面を参照
して詳細に説明する。図2は、本実施例によるメモリア
クセス装置の構成を示すブロック図である。
【0033】図2に示す如く、メモリアクセス装置は、
各種信号、データを出力し、メモリアクセスを実行する
CPU(CENTRAL PROCESSOR UNIT)11と、データの書
き込み、及び読み出しが行われるメモリ12と、CPU
11により指定されたメモリ12のアドレスを駆動する
ためのDEC(デコーダ)13と、所定のタイミングで
READY信号を出力するWAIT回路14と、ORゲ
ート15a、及びカウンタ(リングカウンタ)15bと
からなるトレース回路15と、メモリアクセスにおける
各種データを格納するアドレストレースメモリ16、デ
ータトレースメモリ17、及びWE信号トレースメモリ
18の各トレースメモリと、メモリ12のデータが書き
込まれるアドレスからデータを自動的に読み出す自動読
出回路19と、データの転送に使用されるデータバス2
0、アドレスバス21、及びバス22とから構成され
る。
【0034】図3は、図2に示した自動読出回路19を
示すブロック図であり、JKフリップフロップ31と、
ANDゲート32、33、34、及び35と、ORゲー
ト36及び37と、バッファ38とが、図示の如く接続
されている。このJKフリップフロップ31は、CP入
力端子から入力するクロック(CLK)によって動作す
るエッジトリガ型のものである。
【0035】以上の構成において、CPU11がメモリ
12からデータを読み出す場合、CPU11がメモリ1
2にデータを書き込む場合の順序で、その動作を説明す
る。CPU11がメモリ12からデータを読み出す場
合、CPU11は、先ず、データを読み出すアドレスを
アドレスバス21に出力し、RE(リードイネーブル)
信号をアクティブ(=1)にする。DEC13は、CP
U11がアドレスバス21に出力したアドレスの値をデ
コードしてCS信号を生成し、メモリ12、及び各トレ
ースメモリに出力する。
【0036】CS信号を入力したメモリ12は、アドレ
スバス21からCPU11が出力したアドレスの下位の
ビットを入力することにより、データを読み出すアドレ
スを確定し、RE信号を入力して確定したアドレスに記
憶されているデータをデータバス20に出力する。
【0037】トレース回路15のORゲート15aは、
自動読出回路19から出力されたRE信号とWE信号の
論理和をとり、各トレースメモリにWE信号として出力
する。CPU11から出力されたRE信号は、図3に示
す如く、ORゲート36にそのまま入力されており、従
って、自動読出回路19は、CPU11から入力したR
E信号をそのまま出力することになる。
【0038】各トレースメモリは、CS信号、WE信号
を入力すると、カウンタ15bのカウント値をアドレス
として、アドレストレースメモリ16はアドレスバス2
1上のデータ、データトレースメモリ17はデータバス
20上のデータ、WE信号トレースメモリ18は自動読
出回路19が出力しているWE信号を各々書き込む。
【0039】CPU11から出力されたWE信号(ノン
アクティブ=0)はANDゲート32に入力され、この
ANDゲート32の出力が自動読出回路19から出力さ
れるWE信号となる。従って、このとき、WE信号トレ
ースメモリ18には“0”が書き込まれる。
【0040】また、自動読出回路19は、CPU11と
データバス20間のデータの流れをバッファ38により
管理する。バッファ38は、RE信号がアクティブにな
ると、データバス20からCPU11へデータを通し、
ANDゲート32の出力であるWE信号がアクティブに
なるとCPU11からデータバス20へデータを通す。
このバッファ38により、データの流れを管理し、デー
タバス20上におけるデータの衝突を回避している。
【0041】各トレースメモリへのデータの書き込みが
終了すると、カウンタ15bはカウント値をインクリメ
ントし(この値が各トレースメモリの次のアドレスにな
る)、WAIT回路14は、READY信号を自動読出
回路19、即ち、ANDゲート34及び35、JKフリ
ップフロップ31のJ入力端子に出力する。ANDゲー
ト34には、他にCPU11からRE信号が入力され、
ANDゲート34の出力はORゲート37に入力され
る。このとき、CPU11から出力されているRE信号
はアクティブであり、従って、WAIT回路14が出力
したアクティブのREADY信号は、そのままCPU1
1に入力されることになる。なお、JKフリップフロッ
プ31は、CPU11から出力されたWE信号(このと
きはノンアクティブ=0である)の否定をR入力端子か
ら入力しているので、そのQ出力端子の出力は“0”の
ままである。
【0042】CPU11は、自動読出回路19からRE
ADY信号を入力すると、データバス20に出力された
データをバッファ38を介して取り込み、次の処理に移
行する。
【0043】次に、CPU11がメモリ12にデータを
書き込む場合の動作について説明する。データを書き込
む場合、CPU11は、先ず、データを書き込むアドレ
スをアドレスバス21、書き込むデータを自動読出回路
19に各々出力し、WE信号をアクティブにする。
【0044】CPU11が自動読出回路19にデータを
出力したとき、ANDゲート32の出力は“0”であ
り、このため、CPU11が出力したデータはバッファ
38の所で止められる。一方、CPU11から出力され
たWE信号は、ANDゲート32、33、及び35に入
力され、JKフリップフロップ31のR入力端子に否定
されて入力される。これによりJKフリップフロップ3
1は、J入力端子から入力した信号により動作(K入力
端子は接地されている)する状態に移行する。
【0045】CPU11がアクティブのWE信号を出力
した時点におけるJKフリップフロップ31のQ出力端
子の出力は“0”である。Q出力端子の出力は、AND
ゲート32に入力され、その否定がANDゲート33に
入力される。このため、ANDゲート32の出力、即
ち、自動読出回路19から出力されたWE信号は“0”
であり、ANDゲート33の出力は“1”である。AN
Dゲート33の出力はORゲート36に入力されている
ので、自動読出回路19から出力されるRE信号は
“1”となる。
【0046】一方、DEC13は、CPU11がアドレ
スバス21に出力したアドレスの値をデコードしてCS
信号を生成し、メモリ12、及び各トレースメモリに出
力する。CS信号を入力したメモリ12は、アドレスバ
ス21からCPU11が出力したアドレスの下位のビッ
トを入力することにより、メモリ12のアドレスを確定
する。
【0047】自動読出回路19からはアクティブのRE
信号が出力されているので、メモリ12から確定したア
ドレスのデータがデータバス20に出力され、各トレー
スメモリに対してアクティブのWE信号が入力される。
これにより、各トレースメモリは、バス22に出力され
ているカウンタ15bのカウント値をアドレスとして、
アドレスバス21上のデータ、データバス20上のデー
タ、及び自動読出回路19から出力されているWE信号
を各々格納する。
【0048】各トレースメモリがデータの格納を終了す
ると、カウンタ15bはカウント値をインクリメント
し、WAIT回路14は、READY信号を自動読出回
路19に出力する。
【0049】自動読出回路19に出力されたREADY
信号により、JKフリップフロップ31はターンオンす
るが、このターンオンはCP入力端子から入力するクロ
ックの立ち上がりに同期するので、WAIT回路14が
出力したREADY信号よりも遅れてターンオンする
(図4参照)。このため、CPU11は、このときWA
IT回路14から出力されたREADY信号により次の
処理に移行することなく、メモリ12へのデータの書き
込み処理を実行している状態を維持する。
【0050】JKフリップフロップ31がターンオンす
ると、ANDゲート32は“1”、ANDゲート33は
“0”に各々出力が切り換わり、また、ORゲート36
の出力は“0”に切り換わる。これにより、自動読出回
路19からは、アクティブのWE信号、ノンアクティブ
のRE信号が出力され、CPU11からは、バッファ3
8を介してデータがデータバス20に出力される。
【0051】このように、CPU11とデータバス20
間は、バッファ38を用いてデータが流れる方向を切り
換えるため、CPU11から出力されたデータと、メモ
リ12から出力されたデータとがデータバス20上で衝
突するのを防止できる。
【0052】メモリ12は、自動読出回路19から出力
されたWE信号を入力すると、データバス20上のデー
タを取り込み、データを読み出したアドレスに取り込ん
だデータを上書きする。トレース回路15から出力され
るWE信号はアクティブであるので、各トレースメモリ
は、インクリメントされたカウンタ15bのカウント値
をアドレスとして、アドレスバス21上のデータ、デー
タバス20上のデータ、自動読出回路19が出力してい
るWE信号を各々書き込む。
【0053】各トレースメモリの書き込みが終了する
と、カウンタ15bはカウント値を再度インクリメント
し、WAIT回路14は、READY信号を再び自動読
出回路19に出力する。このとき、ANDゲート35に
は、CPU11及びANDゲート32から“1”が入力
されているので、ANDゲート35の出力は“1”とな
る。このため、ORゲート37の出力が“1”に切り換
わり、CPU11に“1”のREADY信号が出力され
る。CPU11は、READY信号を入力すると、自動
読出回路19へのデータの出力を終了し、次の処理に移
行する。
【0054】図4は、前述した一連の各部における動作
状態例を示すタイミングチャートである。同図におい
て、CLKはクロック、WE入力及びRE入力は自動読
出回路19がCPU11から入力した信号、READY
入力は自動読出回路19がWAIT回路14から入力し
たREADY信号、WE出力はANDゲート32の出
力、RE出力はORゲート36の出力、READY出力
はORゲート37の出力、JKQ出力はJKフリップフ
ロップ31のQ出力端子の出力を各々示している。ま
た、バッファ38は、CPU11からみたデータが出力
される方向、即ち、入はデータバス20からCPU11
にデータが出力され、出はCPU11からデータバス2
0にデータが出力され、Zは何方の方向に対してもデー
タが出力されないことを各々示している。
【0055】図4に示すように、CPU11がメモリ1
2にデータを書き込む場合、メモリ12から自動読出回
路19がデータを読み出した後にWAIT回路14から
1回目のREADY信号が出力されると、JKフリップ
フロップ31はクロックの立ち上がりで動作(このとき
はターンオン)するので、WAIT回路14から入力し
たREADY信号の立ち上がりよりも遅れてターンオン
していることがわかる。本実施例のCPU11は、クロ
ック(CLK)の立ち上がりで動作するものである。こ
のため、このターンオンのタイミングにより、CPU1
1はWAIT回路14から出力された1回目のREAD
Y信号で次の処理に移行せず、メモリ12へのデータの
書き込み処理を実行している状態を維持することにな
る。
【0056】図5は、本実施例において各トレースメモ
リに書き込まれた内容例を示す説明図であり、図中に示
したシーケンス番号は、各トレースメモリに書き込まれ
た順序を表す。
【0057】図5に示す如く、シーケンス番号が3、
6、及び10ではWE信号として“1”が書き込まれて
おり、シーケンス番号3において、2000番地のアド
レスに40が書き込まれ、同様に、4000番地に6
0、2000番地に100が書き込まれたことを示して
いる。これらのシーケンス番号の一つ前の番号は、本実
施例により新たに追加されて書き込まれたものであり、
各々同一のアドレス、且つ、WE信号は“0”である。
これにより、指定のアドレスにデータを書き込む前に、
この指定されたアドレスからデータが読み出され、各ト
レースメモリにメモリアクセス情報として書き込まれて
いることがわかる。
【0058】図6は、特定のアドレス(2000番地)
において各トレースメモリに書き込まれた(記憶)内容
例を示す説明図であり、これは、図5に示した内容例か
ら抜粋したものである。図6に示す如く、2000番地
には最初に10が書き込まれており、10から40、4
0から100に内容を書き換えたことがわかる。また、
シーケンス番号3で10から40に書き換えた内容は、
100に書き換えるまで(シーケンス番号10)変化し
なかった、即ち、他のメモリアクセス実行手段であるD
MAC等による書き込みが行われなかったことがわか
る。
【0059】第2の従来例(図10参照)では、メモリ
82にデータを書き込む場合、このデータを書き込むア
ドレスに記憶されていた内容を把握することができな
い。一方、このように、指定したアドレスの内容を書き
換える前に、この指定したアドレスの内容を読み出し、
各トレースメモリにメモリアクセス情報として書き込む
ことにより、第2の従来例と比較すると、メモリの内容
の変化をより正確に把握することができる。
【0060】また、図2に示したように、自動読出回路
19は、CPU11とトレース回路15、データバス2
0、及びWAIT回路14間に介在し、各種信号を新た
に生成したり、データの流れを管理している。このた
め、CPU11がメモリ12にデータを書き込むときに
おいて、メモリ12、各トレースメモリ等の他の構成要
素から見た場合、CPU11がメモリ12の読み出しを
行った後、書き込みを行っていることになり、反対に、
CPU11からみた場合、動作が遅いメモリに書き込み
を行っている状態となる。この自動読出回路19によ
り、メモリ12のデータが書き込まれるアドレスから自
動的にデータが読み出され、各種情報が各トレースメモ
リに記憶されるため、各トレースメモリに記憶される内
容の追加に対応させてプログラムを開発するといった作
業を回避できる。
【0061】また、図3に示したように、自動読出回路
19は、論理回路等を組み合わせた簡易な構成であるた
め、コストがあまりかからず、装置のコスト高を抑える
ことができる。これは、各トレースメモリに記憶される
内容の追加に対応させてプログラムを開発する必要がな
いことと合わせ、本発明が既に機器に搭載されているト
レース機能を備えたメモリアクセス装置に対して、容易
に適用できることを意味している。
【0062】次に、メモリ12に誤った書き込みが行わ
れたことを検出する誤書込検出処理について説明する。
誤書込検出処理は、何らかの異常が発生したことにより
CPU11が停止、或いはトレースが停止した場合等に
おいて、ユーザ(作業員)の指定によりCPU11が実
行する処理であり、特に発生した異常の原因解析等に用
いることを想定したものである。図7は、誤書込検出処
理を示すフローチャートであり、同図を参照して、その
動作を説明する。
【0063】先ず、各トレースメモリにおいてカウンタ
15bのカウント値が示すアドレスからデータを各々読
み出す(S1〜S3)。本実施例では、CPU11の図
示しないワークレジスタに、カウンタ15bのカウント
値が示すアドレスから読み出された各トレースメモリの
データを対応させて、即ち、メモリ12に記憶された、
或いは書き込んだデータをメモリ12のアドレス毎に対
応させて記憶している。各トレースメモリからデータを
読み出すと、アドレストレースメモリ16から読み出し
たアドレスが記憶データとしてこのワークレジスタにあ
るか否か判断する(S4)。
【0064】記憶データがあると判断すると、次に読み
出したWE信号データの値が0、且つ記憶データにおけ
るWE信号データの値が1であるか否か判断する(S
5)。本実施例による誤書込検出処理は、現在から過去
にさかのぼって各トレースメモリに記憶された内容を見
ている。本実施例では、メモリ12にデータを書き込む
場合、データを書き込む前に、データが書き込まれるメ
モリ12のアドレスのデータを読み出している。このた
め、記憶されたWE信号データの値と読み出したWE信
号データの値がそれぞれ“1”、“0”であったとする
と、データトレースメモリ17から読み出したデータと
記憶されているデータとは通常異なることになる。
【0065】ステップS5において、読み出したWE信
号データの値が0ではない、或いは記憶データにおける
WE信号データの値が1ではないと判断すると、今回デ
ータトレースメモリ17から読み出したデータを記憶さ
れているデータと比較し(S6)、一致するか否か判断
する(S7)。
【0066】一致すると判断すると、カウンタ15bの
カウント値をデクリメントすることにより更新し(S
8)、更新したカウント値がこの誤書込検出処理を開始
した時点でのカウント値であるか否か、即ちカウントが
終了したか否か判断する(S9)。ここで、カウンタ1
5bはリングカウンタなので、誤書込検出処理において
各トレースメモリのアドレスを指定するカウンタ15b
のカウント値が、この誤書込検出処理を開始したときの
カウント値に戻ることは、各トレースメモリの内容を全
て確認したことである。また、このときステップS8で
は、読み出したWE信号データを記憶データとする処理
も同時に行われる。
【0067】ステップS9において、カウントを終了し
たと判断すると、ここで一連の処理を終了し、反対にカ
ウントを終了していないと判断すると、ステップS1に
戻り、以降の処理を実行する。
【0068】ステップS4において、記憶データがない
と判断すると、このときアドレストレースメモリ16か
ら読み出したアドレス、データトレースメモリ17から
読み出したデータ等を対応させて新たにワークレジスタ
に記憶データとして記憶し(S10)、ステップS8の
処理に移行する。
【0069】ステップS5において、今回WE信号トレ
ースメモリ18から読み出したデータの値が0、且つ記
憶データのWE信号トレースメモリ18に該当するデー
タの値が1であると判断すると、読み出したデータを記
憶データとして新たに記憶し(S11)、後述するメモ
リ復元処理を実行して(S12)、ステップS8の処理
に移行する。
【0070】ステップS7において、読出データと記憶
データが一致しないと判断すると、ステップS11の処
理に移行し、以降の処理を実行する。ここで、読出デー
タと記憶データが一致しないことは、メモリ12のこの
アドレス(アドレストレースメモリ16から読み出した
アドレス)に対して誤った書き込みが行われたことであ
る。
【0071】このように、各トレースメモリに記憶され
ているデータを用いて誤書込検出処理を実行することに
より、メモリ12に対しての誤った書き込みを検出する
ことができる。これにより、メモリ12に記憶された内
容の変化(各部の動作状態の履歴である)を通して発生
した異常等の原因解析を行うことができる。また、メモ
リ12へデータを書き込むときに、データが書き込まれ
るアドレスからデータを読み出すので、第2の従来例と
比較して、誤った書き込みをより正確に把握することが
できる。
【0072】次に、メモリ復元処理について説明する。
メモリ復元処理は、誤書込検出処理において、誤った書
き込みを検出したとき、或いはメモリの内容が変化する
ときに実行され、現在から過去にさかのぼってメモリ1
2の内容を復元するものである。図8は、メモリ復元処
理を示すフローチャートであり、同図を参照してその処
理動作を説明する。
【0073】先ず、アドレストレースメモリ16から読
み出したアドレスをメモリ12にデータを書き込むアド
レスとして設定し(S21)、カウンタ15bのカウン
ト値を設定する(S22)。ここで、カウンタ15bの
カウント値を設定するのは、メモリ12にアクセスする
場合、各トレースメモリにメモリアクセス情報が自動的
に記憶されるためであり、設定するカウント値は、既に
内容を確認したトレースメモリのアドレス等である。
【0074】カウント値を設定すると、設定したメモリ
12のアドレスに、データトレースメモリ17から読み
出したデータを書き込み(S23)、メモリ復元処理を
終了する。なお、誤書込検出処理では、このメモリ復元
処理を実行した後のステップS8の処理において、各ト
レースメモリから読み出したときのカウンタ15bのカ
ウント値をデクリメントした値にカウンタ15bの更新
を行う。
【0075】このように、各トレースメモリにメモリア
クセス情報が記憶されているので、メモリ復元処理を実
行することにより、メモリ12の内容を現在から過去に
さかのぼって順次復元することができる。これにより、
メモリに記憶された内容を通して各部の動作状態の推移
に対する確認を容易に行うことができ、プログラムのデ
バック等が容易になり、プログラム開発等の作業を容易
にできる。
【0076】また、本実施例では、詳述していないが、
誤書込検出処理(メモリ復元処理を含む)の進行をユー
ザが指定できるようになっている。このため、メモリ1
2の内容を任意の時点の状態に順次復元することができ
る。また、本実施例では、誤書込検出処理の実行結果
(メモリ12に記憶された内容等)を表示画面(図示せ
ず)に表示している。このため、ユーザは、カウンタ1
5bのカウント値を1つずつデクリメントしながらメモ
リ12に記憶されている内容を順次確認することがで
き、メモリ12に記憶された内容の変化における異常
(誤った書き込み等)を目で見つけることができる。
【0077】なお、本実施例では、誤書込検出処理を実
行することにより順次メモリ12の内容を復元してその
内容を表示しているが、誤った書き込みが行われたメモ
リ12のアドレス、そのアドレスに記憶されていたデー
タ、誤った書き込みが行われた時期等の情報を選択して
表示するようにしても良い。また、本実施例のように、
1ステップずつ各トレースメモリに記憶された内容を読
み出してメモリ12に記憶された内容を確認するのでは
なく、例えば、メモリ12に記憶された内容を、特定の
アドレスに対して特別なデータを書き込んだ時点、CP
U11が命令フェッチで命令を図示しないメモリから読
み出した時点等の特定の時点毎にスキップさせて復元す
るようにしても良い。
【0078】また、本実施例では、CPU11とデータ
バス20間のデータの流れをバッファ38により管理し
ているが、バッファ38の他に、例えば、リレー、トラ
ンジスタ等を用いてもデータの流れを制御できる。
【0079】
【発明の効果】以上、説明したように本発明のメモリア
クセス装置は、メモリにデータを書き込む場合、データ
を書き込む前に、データを書き込むアドレスに記憶され
ているデータを読み出し、読み出したデータ、アドレス
等のメモリアクセス情報を各トレースメモリに記憶させ
るため、メモリから読み出したデータを各トレースメモ
リに記憶されたデータと対応させて比較することによ
り、メモリの内容の変化をより正確に把握することがで
きると共に、誤った書き込みをより正確に検出すること
ができる。
【0080】また、本発明は、各トレースメモリに記憶
されたデータを読み出し、この読み出したデータを用い
てメモリ内容を任意の時点の状態に正確に復元するた
め、メモリに記憶された内容を通して各部の動作状態の
推移の確認が容易になる。これにより、発生した異常等
における原因解析を容易に行うことができるので、プロ
グラムのデバック等が容易になり、プログラム開発等の
作業を容易にすることができる。
【0081】また、各トレースメモリへのメモリアクセ
ス情報の書き込みを論理回路等により自動的に実行する
ため、メモリアクセス情報を各トレースメモリに書き込
むために伴うプログラムの変更、開発といった手間を省
くことができ、他の装置に対して本発明を容易に適用さ
せることができる。
【図面の簡単な説明】
【図1】本発明の構成を示す原理説明図である。
【図2】本実施例によるメモリアクセス装置の構成を示
すブロック図である。
【図3】自動読出回路の構成を示すブロック図である。
【図4】本実施例における各部の動作状態例を示すタイ
ミングチャートである。
【図5】各トレースメモリに記憶された内容例を示す説
明図である。
【図6】特定のアドレスにおいて各トレースメモリに記
憶された内容例を示す説明図である。
【図7】本実施例による誤書込検出処理を示すフローチ
ャートである。
【図8】本実施例によるメモリ復元処理を示すフローチ
ャートである。
【図9】第1の従来例のメモリアクセス装置の構成を示
すブロック図である。
【図10】第2の従来例のメモリアクセス装置の構成を
示すブロック図である。
【図11】第2の従来例において各トレースメモリに記
憶された内容例を示す説明図である。
【符号の説明】
1 メモリ 2 メモリアクセス実行手段 3 アクセス情報記憶手段 4 自動読出手段 5 比較手段 6 復元手段 11 CPU 12 メモリ 13 DEC 14 WAIT回路 15 トレース回路 15a、36、37 ORゲート 15b カウンタ 16 アドレストレースメモリ 17 データトレースメモリ 18 WE信号トレースメモリ 19 自動読出回路 20 データバス 21 アドレスバス 22 バス 31 JKフリップフロップ 32〜35 ANDゲート 38 バッファ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】メモリ(1)からのデータの読み出し、前
    記メモリ(1)へのデータの書き込みのメモリアクセス
    を実行するメモリアクセス実行手段(2)と、 前記メモリ(1)から読み出したデータ、該データが読
    み出されたアドレス等のメモリアクセス情報を記憶する
    アクセス情報記憶手段(3)と、 前記メモリアクセス実行手段(2)が前記メモリ(1)
    にデータを書き込むとき、該データが書き込まれるアド
    レスから自動的にデータを読み出して前記アクセス情報
    記憶手段(3)に書き込む自動読出手段(4)と、 前記アクセス情報記憶手段(3)に記憶されたメモリア
    クセス情報を、前記メモリ(1)のアドレス毎に対応さ
    せて比較する比較手段(5)とを具備したことを特徴と
    するメモリアクセス装置。
  2. 【請求項2】前記請求項1に記載した構成において、前
    記比較手段(5)の比較結果に基づいて、前記アクセス
    情報記憶手段(3)からデータを読み出して前記メモリ
    (1)に書き込む復元手段(6)を備えたことを特徴と
    するメモリアクセス装置。
  3. 【請求項3】前記自動読出手段(4)は、論理回路と、
    前記論理回路の出力により、前記メモリアクセス実行手
    段(2)へ出力されるデータ、前記メモリアクセス実行
    手段(2)から前記メモリ(1)へ出力されるデータを
    管理する管理手段とからなることを特徴とするメモリア
    クセス装置。
JP6042982A 1994-03-15 1994-03-15 メモリアクセス装置 Withdrawn JPH07253908A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6042982A JPH07253908A (ja) 1994-03-15 1994-03-15 メモリアクセス装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6042982A JPH07253908A (ja) 1994-03-15 1994-03-15 メモリアクセス装置

Publications (1)

Publication Number Publication Date
JPH07253908A true JPH07253908A (ja) 1995-10-03

Family

ID=12651251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6042982A Withdrawn JPH07253908A (ja) 1994-03-15 1994-03-15 メモリアクセス装置

Country Status (1)

Country Link
JP (1) JPH07253908A (ja)

Similar Documents

Publication Publication Date Title
JP4094724B2 (ja) ソフトウェアをデバッグする際に例外を識別するための装置および方法
JPH11110255A (ja) ソフトウェアをデバッグするための装置および方法
JPH0155505B2 (ja)
JP2000132430A (ja) 信号処理装置
JPS60159951A (ja) 情報処理装置におけるトレ−ス方式
JPH07253908A (ja) メモリアクセス装置
JPH08171504A (ja) エミュレ−ション装置
JPS5840772B2 (ja) デ−タ比較一致表示方式
JP2731047B2 (ja) プログラムのオペランドチェック方式
JPH0581087A (ja) プロセサのモニタ方式
JPS59112350A (ja) プログラム監視制御方式
JPH0644098A (ja) メモリ・アクセス・バス・コンパレータ
JP2940000B2 (ja) シングルチップマイクロコンピュータ
JPS626341A (ja) 情報処理装置
JPS6391756A (ja) 記憶装置の部分書き込み命令処理方式
JPS60193046A (ja) 命令例外検出方式
JPH0475147A (ja) 情報処理システムにおける時間監視装置
JP2729126B2 (ja) デバッグ・システムのアドレス・トレース回路
JP2967741B2 (ja) Cpu互換性テスト装置
JPH0213334B2 (ja)
JPH01142948A (ja) マイクロコンピュータのシンボリックデバッガ
JPH05108550A (ja) 中央処理装置
JPH0333940A (ja) 評価用マイクロプロセッサ
JP2001265619A (ja) データトレース方式
JPS61190636A (ja) トレ−ス機能を有する情報処理装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20010605