トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 トレース回路、メモリ試験方法及び記録媒体
【発明者】 【氏名】田川 耕太郎

【要約】 【課題】FIFOメモリのメモリ試験に使用する任意の試験用ビットパターンデータの生成を容易に行うことを可能にする。

【解決手段】CPUのトレースデータを出力するトレース回路1において、トレースデータの出力のタイミングを調整する出力調整用メモリであるFIFOメモリ20と、CPUのアクセスデータをFIFOメモリの1ワード分のビット幅に変換し、FIFOメモリの試験に用いる試験用ビットパターンデータを生成する展開器11とを有する。
【特許請求の範囲】
【請求項1】 CPUのトレースデータを出力するトレース回路において、前記トレースデータの出力のタイミングを調整する出力タイミング調整用メモリと、前記CPUのアクセスデータを前記出力タイミング調整用メモリの1ワード分のビット幅に変換し、前記出力タイミング調整用メモリのメモリ試験に用いる試験用ビットパターンデータを生成する展開器と、を有することを特徴とするトレース回路。
【請求項2】 前記出力タイミング調整用メモリの1ワード分のビット幅は、前記アクセスデータのビット幅よりも広く、前記展開器は、前記メモリ試験時に、前記アクセスデータを前記出力タイミング調整用メモリの1ワード分のビット幅に拡張することを特徴とする請求項1記載のトレース回路。
【請求項3】 前記CPUは、前記メモリ試験時に、所定のユーザメモリ空間に任意のデータを書き込み、前記アクセスデータは、前記任意のデータの前記ユーザメモリ空間への書き込み時におけるアクセスデータであることを特徴とする請求項1記載のトレース回路。
【請求項4】 前記メモリ試験時において、前記試験用ビットパターンデータを書き込む前記出力タイミング調整用メモリのライトアドレスは、前記アクセスデータのデータアドレス情報を伝送するデータアドレスバスの一部から提供されるアドレスであることを特徴とする請求項1記載のトレース回路。
【請求項5】 前記試験用ビットパターンデータは、ユーザープログラムの実行をトレースした結果として、前記出力タイミング調整用メモリに書き込まれることを特徴とする請求項1記載のトレース回路。
【請求項6】 生成したトレースデータの出力のタイミングを調整する出力タイミング調整用メモリのメモリ試験方法において、CPUのアクセスデータを前記出力タイミング調整用メモリの1ワード分のビット幅に変換し、前記出力タイミング調整用メモリのメモリ試験に用いる試験用ビットパターンデータを生成することを特徴とするメモリ試験方法。
【請求項7】 前記CPUは、前記メモリ試験時に、所定のユーザメモリ空間に任意のデータを書き込み、前記アクセスデータは、前記ユーザメモリ空間への前記任意のデータ書き込み時におけるアクセスデータであることを特徴とする請求項6記載のメモリ試験方法。
【請求項8】 前記試験用ビットパターンデータは、ユーザープログラムの実行をトレースした結果として、前記出力タイミング調整用メモリに書き込まれることを特徴とする請求項6記載のメモリ試験方法。
【請求項9】 CPUのアクセスデータを前記出力タイミング調整用メモリの1ワード分のビット幅に変換し、前記出力タイミング調整用メモリのメモリ試験に用いる試験用ビットパターンデータを生成する機能をコンピュータに行わせるプログラムを格納したコンピュータ読みとり可能な記録媒体。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、メモリ試験の支援機能を有するトレース装置、そのメモリ試験方法及びその機能をコンピュータに行わせるプログラムを格納したコンピュータ読みとり可能な記録媒体に関し、特に、トレースデータの出力のタイミングを調整するFIFOメモリのメモリ試験を支援するトレース装置、メモリ試験方法及びその機能をコンピュータに行わせるプログラムを格納したコンピュータ読みとり可能な記録媒体に関する。
【0002】
【従来の技術】図4は、CPU(Central Processing Unit:中央処理装置)102のトレースデータを出力するトレース回路101を有するマイクロコンピュータ100の基本構成を示したブロック図である。
【0003】マイクロコンピュータ100は、CPU102、CPU102が実行するプログラムの命令情報を伝送する命令バス103、処理するデータの情報を伝送するデータバス104、及びCPU102のトレースデータをICE(In Circuit Emulator)へ出力するトレース回路101によって構成されており、トレース回路101は、トレースデータの生成を行うトレースデータ生成回路110、トレースデータの出力のタイミングを調整する2ポートRAM(Random Access Memory)であるFIFOメモリ130、FIFOメモリ130から出力されたトレースデータをICEに出力するトレースデータ出力回路140、及び生成されたトレースデータを伝送するデータライトバス150、データリードバス160によって構成されている。
【0004】図5は、トレースデータ生成回路110の構成を示したブロック図である。トレースデータ生成回路110は、命令バス103を構成する命令アドレスバス103a、データバス104を構成するデータアドレスバス104a及びアクセスデータバス104b、トレースデータの生成タイミングやトレースデータの形式を決める制御回路113、トレースデータを生成するエンコーダ112、トレースデータのライトアドレスを提供するライトポインタ114、FIFOメモリ130にトレースデータのライトアドレスを伝送するトレースデータライトアドレス出力バス151、及びトレースデータを伝送するトレースデータ出力バス152によって構成されている。
【0005】トレース回路101においてCPU102の処理動作のトレースを行う場合、まず、制御回路113の制御に従い、エンコーダ112によって、CPU102の処理動作を示す命令アドレス情報、データアドレス情報、アクセスデータからトレースデータを生成する。生成したトレースデータは、ライトポインタ114が順次インクリメントすることによって設定したFIFOメモリ130のライトアドレスに順次格納され、FIFOメモリ130に格納されたトレースデータは、格納された順番に、トレースデータ出力回路140からICEに出力される。
【0006】このようなトレース回路101の製造試験の1つに、FIFOメモリ130内部に試験専用の端子を設け、この端子を用いて、FIFOメモリ130内のラッチ等を所定の値に設定し、各設定条件ごとに、順次、FIFOメモリ130の試験を行っていくスキャン方式のメモリ試験がある。
【0007】しかし、スキャン方式によってメモリ試験を行う場合、スキャン方式ではFIFOメモリ130内のラッチ等への条件設定は、1クロックあたり1ビットペースでしか行えないため、試験時間が増大してしまうという問題点がある。
【0008】そこで、このような問題が生じないメモリ試験方法として、CPU102に、エンコーダ112が0x55、0xAAといった試験用のビットパターンデータを生成するような動作を実行させ、これによって生成された試験用ビットパターンデータをFIFOメモリ130に書き込み、その後、FIFOメモリ130から読み出した試験用ビットパターンデータをチェックし、その試験用ビットパターンデータが期待したビットパターンデータと一致するか否かによってFIFOメモリ130の良否判定を行う試験方法をとる場合もある。
【0009】
【発明が解決しようとする課題】しかし、エンコーダ112が行うトレースデータ生成動作は、CPU102の直接的な制御下になく、また、データアドレス情報、アクセスデータ、及びアクセスデータのリードライトの区別等に必要な付加ビット等が複合的に配置する複雑なものである。そのため、従来のトレース回路101において、特定の試験用ビットパターンデータを生成するためには、CPU102が、その制御下にないエンコーダ112の複雑な動作を考慮し、そのエンコーダ112が特定の試験用ビットパターンデータを出力できるような指示をエンコーダ112に対して与えなければならず、任意の試験用ビットパターンデータを生成することが、大変困難であったという問題点がある。
【0010】本発明はこのような点に鑑みてなされたものであり、FIFOメモリのメモリ試験に使用する任意の試験用ビットパターンデータの生成を容易に行うことが可能なトレース装置、メモリ試験方法及びその機能をコンピュータに行わせるプログラムを格納したコンピュータ読みとり可能な記録媒体を提供することを目的とする。
【0011】
【課題を解決するための手段】本発明では上記課題を解決するために、図1における、CPUのトレースデータを出力するトレース回路1において、前記トレースデータの出力のタイミングを調整する出力タイミング調整用メモリであるFIFOメモリ20と、前記CPUのアクセスデータを前記出力タイミング調整用メモリの1ワード分のビット幅に変換し、前記出力タイミング調整用メモリのメモリ試験に用いる試験用ビットパターンデータを生成する展開器11とを有することを特徴とするトレース回路が提供される。
【0012】ここで、展開器は、CPUのアクセスデータを出力タイミング調整用メモリの1ワード分のビット幅に変換し、出力タイミング調整用メモリのメモリ試験に用いる試験用ビットパターンデータを生成する。
【0013】また、生成したトレースデータの出力のタイミングを調整する出力タイミング調整用メモリのメモリ試験方法において、CPUのアクセスデータを前記出力タイミング調整用メモリの1ワード分のビット幅に変換し、前記出力タイミング調整用メモリのメモリ試験に用いる試験用ビットパターンデータを生成することを特徴とするメモリ試験方法が提供される。
【0014】このようにすることにより、CPUが行ったユーザメモリ空間へのデータ書き込み処理のアクセスデータから試験用ビットパターンデータを生成することが可能となる。
【0015】さらに、CPUのアクセスデータを前記出力タイミング調整用メモリの1ワード分のビット幅に変換し、前記出力タイミング調整用メモリのメモリ試験に用いる試験用ビットパターンデータを生成する機能をコンピュータに行わせるプログラムを格納したコンピュータ読みとり可能な記録媒体が提供される。
【0016】
【発明の実施の形態】以下、本発明の実施の形態を図面を参照して説明する。図1は、本形態におけるトレース装置であるトレース回路1の構成を示したブロック図である。
【0017】トレース回路1は、トレースデータの生成を行うトレースデータ生成回路10、提供されたライトアドレスにトレースデータを格納し、格納された順番にトレースデータを出力してトレースデータの出力のタイミングを調整する出力タイミング調整用メモリであるFIFOメモリ20、及びトレースデータをICEへ出力するトレースデータ出力回路30によって構成されている。
【0018】ここでトレースデータ生成回路10は、主に、中央処理装置であるCPUの処理情報である命令アドレス情報、データアドレス情報、アクセスデータからトレースデータを生成するエンコーダ12、トレースデータの生成タイミングやトレースデータの形式を決める制御回路13、生成されたトレースデータのライトアドレスを提供するライトポインタ14、中央処理装置のアクセスデータを出力タイミング調整用メモリの1ワード分のビット幅に変換し、出力タイミング調整用メモリのメモリ試験に用いる試験用ビットパターンデータを生成する展開器11、ライトアドレスの指定方法を選択するセレクタ15、及びトレース回路1がメモリ試験モードであることを指示するレジスタ16によって構成されている。
【0019】エンコーダ12は、CPUが実行するプログラムの命令アドレス情報を伝送するバス幅32ビットの命令アドレスバス17a、及びCPUが取り扱うデータの読み込み元或いは書き込み先のアドレスを示すデータアドレス情報を伝送するバス幅32ビットのデータアドレスバス17bを介し、また、展開器11、及び読み込み或いは書き込みを行うデータ内容であるアクセスデータを伝送するバス幅32ビットのアクセスデータバス17cを介してCPUと電気的に接続されている。さらに、エンコーダ12は、制御回路13を介してライトポインタ14と、また、トレースデータを伝送するバス幅69ビットのトレースデータ出力バス17eを介してFIFOメモリ20とそれぞれ電気的に接続され、ライトポインタ14はセレクタ15と、セレクタ15は、レジスタ16及び展開器11と、また、バス幅16ビットのセレクタ接続データアドレスバス17baを介してデータアドレスバス17bと、さらに、ライトアドレスを伝送するバス幅16ビットのトレースデータライトアドレス出力バス17dを介してFIFOメモリ20と、それぞれ電気的に接続されている。また、FIFOメモリ20は、トレースデータ出力回路30と、トレースデータ出力回路30は、データアドレスバス17b、アクセスデータバス17c、ICEと、それぞれ電気的に接続されている。
【0020】エンコーダ12は、複数の入力端子及び出力端子を持つ符号器であり、入力端子から入力された命令アドレス情報、データアドレス情報、アクセスデータを所定のトレースデータに変換し、そのトレースデータを出力端子から出力する。
【0021】制御回路13は、エンコーダ12がトレースデータを生成するタイミング(例えば、エンコーダ12にデータアドレス情報及びアクセスデータが競合して入力された場合、どちらのデータを優先するか等)、生成するトレースデータの形式(エンコーダ12に入力された命令アドレスをすべてトレースデータに変換する形式にするか、プログラム上の分岐点とそこからのプログラム上の飛び先までの差分情報のみをトレースデータに変換する形式にするか等)を制御する。
【0022】ライトポインタ14は、生成されたトレースデータを格納するFIFOメモリ20上のライトアドレスを提供するものであり、具体的には、それぞれのトレースデータに対応させ、順次インクリメントしていくことによって決定されたライトアドレスをそのトレースデータのライトアドレスとして提供する。
【0023】レジスタ16は、フリップフロップ回路によって構成され、トレース回路1がメモリ試験モードであることを指示する。セレクタ15は、FIFOメモリ20のライトアドレスを、ライトポインタ14によって提供されたライトアドレスを用いて設定するか、アクセスデータのデータアドレス情報を伝送するデータアドレスバスの一部から提供されるアドレスを用いて設定するか、を選択する素子である。
【0024】FIFOメモリ20は、いわゆる2ポートRAMであり、入力端子から入力されたトレースデータを格納し、格納されたトレースデータを格納された順番に出力端子から出力していくことにより、トレースデータの出力タイミングの調整を行う。本形態では、一例として69ビット、128ワードのFIFOメモリ20を用いる。
【0025】トレースデータ出力回路30は、FIFOメモリ20で生成されたトレースデータをICEへ出力する。図2は、FIFOメモリ20に書き込まれるトレースデータのフォーマットを例示した図である。
【0026】図2では、命令トレース時、データトレース時、及びトレースデータの切れ目を示すなどの特別なデータである特殊フォーマットにおけるトレースデータのフォーマットを示している。トレースデータは全体として69ビットのデータであり、その詳細は、命令トレース時のトレースデータの場合、0〜31ビットまでが、実行したプログラムの分岐先の命令アドレスを、32〜47ビットまでが、分岐命令間の実行命令数を、66〜68ビットが、命令トレースデータ出力であることをそれぞれ示している。また、データトレース時のトレースデータの場合、0〜31ビットまでが、データバス上のアクセスデータを、32〜63ビットまでが、データアドレスを、65ビットが、データのリード/ライトの種別であるアクセスの種別を、66、67ビットが、アクセスデータのデータサイズをそれぞれ示している。特殊フォーマット時のトレースデータの場合、0〜31ビットまでが、トレースを開始した命令アドレスを、32〜47ビットまでが、ブレーク直前の分岐命令からブレークまでに実行した命令数を、64、65ビットがデータ種別を、66〜68ビットが特殊フォーマットであることをそれぞれ示している。
【0027】次に、図1を用いてトレース回路1のトレース動作について説明する。まず、命令トレース動作について説明する。ユーザープログラムの実行に伴い、命令アドレスバス17aによって命令アドレスがエンコーダ12に伝送されると、エンコーダ12は、その命令アドレスを用い、トレースデータの生成を行う。トレースデータの生成は、制御回路13の指示に従って行われ、ここでのトレースデータの生成は、伝送された命令アドレスから、分岐先の命令アドレス及び分岐命令間の実行命令数を抽出し、これらの情報等を上述した図2に示したように69ビットのビット幅に配置することによって行われる。
【0028】また、この際、制御回路は、ライトポインタ14に制御信号を与え、この制御信号を受けたライトポインタ14は、ライトアドレスを1つインクリメントし、生成されたトレースデータを格納するためのライトアドレスを設定し、設定したライトアドレスを、ビット幅16ビットのトレースデータライトアドレス出力バス17dを介し、FIFOメモリ20に提供する。なお、FIFOメモリ20は128ワードであるため、実際には、トレースデータライトアドレス出力バス17dにおける16ビットのアドレスのうち下位7ビットのみがライトアドレスの提供に用いられる。
【0029】一方、上述のようにエンコーダ12によって生成されたトレースデータは、ビット幅69ビットのトレースデータ出力バス17eを介し、FIFOメモリ20に送られ、FIFOメモリ20は、送られたトレースデータを、ライトポインタ14によって提供されたライトアドレスに格納する。
【0030】FIFOメモリ20に格納されたトレースデータは、格納された順番に、順次、FIFOメモリ20から読み出され、トレースデータ出力回路30を介し、ICEへ出力される。
【0031】データトレース時には、エンコーダ12は、データアドレスバス17bによって伝送されたデータアドレス情報、及びアクセスデータバス17cによって伝送されたアクセスデータを用い、トレースデータの生成を行う。命令トレース時と同様、トレースデータの生成は、制御回路13の指示に従って行われ、ここでのトレースデータの生成は、伝送されたデータアドレス情報、アクセスデータ、アクセス種別等を上述した図2に示したように69ビットのビット幅に配置することによって行われる。以下の動作は、命令トレース動作時と同様である。
【0032】次に、FIFOメモリ20をトレースメモリとして使用する場合におけるトレース回路1の動作について説明する。FIFOメモリ20をトレースメモリとして使用する場合、ユーザープログラム実行中にはトレースデータ出力回路30は動作せず、FIFOメモリ20は、トレースデータの書き込みのみを行い、その出力は行われない。この際、FIFOメモリ20はリングバッファ構造をとることとし、ユーザ要求によってユーザープログラムの実行がブレークされるまでトレース動作を継続することとしてもよく、また、FIFOメモリ20がフルの状態となった際にCPUにブレーク信号を送り、実行中のユーザープログラムを強制的に停止させることとしてもよい。
【0033】ユーザープログラムの実行がブレークされた後、FIFOメモリ20に格納されているトレースデータを、エミュレータプログラムを実行することにより、トレースデータ出力回路30を介してCPU側へ読み出す。具体的には、このエミュレータプログラムの実行により、CPUが所定のデータアドレス情報をデータアドレスバス17bに出力し、データアドレスバス17bに出力されたデータアドレス情報は、トレースデータ出力回路30を介し、アドレス出力としてFIFOメモリ20の入力端子に入力される。このアドレス出力が入力されたFIFOメモリ20は、FIFOメモリ20に格納されているトレースデータを、トレースデータ出力回路30に出力し、トレースデータ出力回路30は、出力された69ビットのトレースデータから、アドレス出力のデータアドレス情報に該当する32ビットのアクセスデータを選択し、アクセスデータバス17cを介し、CPUへ出力する。CPUへ出力されたトレースデータは、ツールバスによってICEへ出力される。
【0034】次に、トレース回路1におけるFIFOメモリ20のメモリ試験動作について説明する。メモリ試験を行う場合、まず、エミュレータモードにおけるエミュレータプログラムの実行により、レジスタ16をセットし、トレース回路1をメモリ試験モードに切り替えることを指示する。この指示により、セレクタ15は、ライトポインタ14によって生成されたライトアドレスをFIFOメモリ20に提供するのではなく、データアドレスバス17bのアドレスの一部を、試験用ビットパターンデータを書き込むライトアドレスとしてFIFOメモリ20に提供する。この場合、例えば、セレクタ接続データアドレスバス17baが、データアドレスバス17bの0〜15ビット部分に接続され、16〜31ビット部分には未接続であった場合、0〜0xFFFF番地がライトアドレスとして提供されることとなる。
【0035】トレース回路1がメモリ試験モードに入ると、次に、ユーザープログラムの実行を行うユーザモードに切り替えられ、FIFOメモリ20への試験用ビットパターンデータの書き込みが行われる。
【0036】トレース回路1における試験用ビットパターンデータの書き込みは、ユーザープログラムの実行をトレースした結果、生成されたトレースデータを試験用ビットパターンデータとして書き込むことによって行う。具体的には、任意のデータを書き込んでも他の回路に影響を及ぼさない適当な64KBのユーザメモリ空間を選択し、ユーザープログラムの実行により、CPUが、このユーザメモリ空間に任意のデータを書き込み、その際のアクセスデータをアクセスデータバス17cから展開器11に取り込み、取り込まれたアクセスデータを展開することによって生成された試験用ビットパターンデータを、セレクタ接続データアドレスバス17baが、ビット幅32ビットのデータアドレスバス17bのどの一部分に接続されているかによって決定されるFIFOメモリ20のライトアドレスに書き込む。
【0037】なお、ここでの試験用ビットパターンデータの生成は、アクセスデータバス17cによって伝送されたビット幅32ビットのアクセスデータを、FIFOメモリ20の1ワード分のビット幅である69ビットに展開することによって行われる。
【0038】図3は、このようにアクセスデータ41を展開することによって試験用ビットパターンデータ42が生成される様子を示した図である。なお、ここで、アクセスデータ41及び試験用ビットパターンデータ42に記されている数字は、各データにおけるビット番号を示している。
【0039】図3に示すように、展開器11は、ビット幅32ビットのアクセスデータ41を0〜31ビットの領域42a及び32〜63ビットの領域42bに配置し、さらに、64〜68ビットの領域42cに、アクセスデータ41における0〜4ビットの領域41aのデータを配置することにより、アクセスデータ41の展開を行う。
【0040】このような試験用ビットパターンデータとして、例えば、FIFOメモリ20の0番地から奇数アドレスに対して0x55555555を、偶数アドレスに対して0xAAAAAAAAをそれぞれ書き込んだ場合、FIFOメモリ20内には市松模様のビットが配置されることとなる。
【0041】試験用ビットパターンデータのFIFOメモリ20全領域への書き込みが終了すると、再び、エミュレータモードに戻り、前述した、FIFOメモリ20をトレースメモリとして使用する場合と同様に、FIFOメモリ20内の試験用ビットパターンデータを読み出し、読み出された試験用ビットパターンデータが期待したデータであるか否かを検査することによって、FIFOメモリ20の良否判定を行う。
【0042】このように、本形態では、CPUのアクセスデータをFIFOメモリ20の1ワード分のビット幅に変換し、FIFOメモリ20のメモリ試験に用いる試験用ビットパターンデータを生成することとしたため、CPUがユーザメモリ空間のアドレスにデータを書き込むことにより、そのアクセスデータから試験用ビットパターンデータを生成することができ、任意の試験用ビットパターンデータの生成を容易に行うことが可能となる。
【0043】また、本形態では、メモリ試験時におけるFIFOメモリ20への試験用ビットパターンデータの書き込みを、ICEから狭いバス幅のツールバスを使用して供給されるエミュータプログラムによる書き込み命令ではなく、バス幅の広い外部バス端子から供給されるユーザープログラムの実行をトレースした結果として行うこととしたため、試験用ビットパターンデータの書き込み処理を高速化することが可能となり、試験時間を短縮することが可能となる。
【0044】なお、上記の処理機能は、コンピュータによって実現することができる。その場合、トレース回路1が有すべき機能の処理内容は、コンピュータで読みとり可能な記録媒体に記録されたプログラムに記述しておく。そして、このプログラムをコンピュータで実行することにより、上記処理がコンピュータで実現される。コンピュータで読みとり可能な記録媒体としては、磁気記録装置や半導体メモリ等がある。市場に流通させる場合には、CD−ROM(Compact Disk Read OnlyMemory)やフロッピー(登録商標)ディスク等の可搬型記録媒体にプログラムを格納して流通させたり、ネットワークを介して接続されたコンピュータの記憶装置に格納しておき、ネットワークを通じて他のコンピュータに転送することもできる。コンピュータで実行する際には、コンピュータ内のハードディスク装置等にプログラムを格納しておき、メインメモリにロードして実行する。
【0045】なお、本形態では、展開器11が、アクセスデータをFIFOメモリ20のビット幅に拡張することにより、試験用ビットパターンデータを生成することとしたが、アクセスデータバスのバス幅よりも、FIFOメモリ20の1ワードあたりのビット数が狭い或いは同じ場合には、アクセスデータを拡張することなく試験用ビットパターンデータの生成を行うこととしてもよい。
【0046】
【発明の効果】以上説明したように本発明では、CPUのアクセスデータを出力タイミング調整用メモリの1ワード分のビット幅に変換し、出力タイミング調整用メモリのメモリ試験に用いる試験用ビットパターンデータを生成することとしたため、任意の試験用ビットパターンデータの生成を容易に行うことが可能となる。
【出願人】 【識別番号】000005223
【氏名又は名称】富士通株式会社
【出願日】 平成12年9月27日(2000.9.27)
【代理人】 【識別番号】100092152
【弁理士】
【氏名又は名称】服部 毅巖
【公開番号】 特開2002−108641(P2002−108641A)
【公開日】 平成14年4月12日(2002.4.12)
【出願番号】 特願2000−293244(P2000−293244)