JP2008009721A - 評価システム及びその評価方法 - Google Patents
評価システム及びその評価方法 Download PDFInfo
- Publication number
- JP2008009721A JP2008009721A JP2006179625A JP2006179625A JP2008009721A JP 2008009721 A JP2008009721 A JP 2008009721A JP 2006179625 A JP2006179625 A JP 2006179625A JP 2006179625 A JP2006179625 A JP 2006179625A JP 2008009721 A JP2008009721 A JP 2008009721A
- Authority
- JP
- Japan
- Prior art keywords
- error
- read
- address
- storage device
- value
- 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
Links
- 238000011156 evaluation Methods 0.000 title claims abstract description 133
- 238000000034 method Methods 0.000 claims description 59
- 238000012795 verification Methods 0.000 claims description 22
- 238000010586 diagram Methods 0.000 description 16
- 238000001514 detection method Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 7
- 230000000630 rising effect Effects 0.000 description 7
- 239000004065 semiconductor Substances 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000001771 impaired effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
- G06F11/366—Debugging of software using diagnostics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2215—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
【課題】従来の評価システムでは、記憶装置で発生するエラーを忠実に再現することができない問題があった。
【解決手段】本発明にかかる評価システムは、読出しクロックに基づき読出しデータを出力する記憶装置30と、記憶装置30に対して、読出しアドレスを出力し、読出し処理を実行するマイクロコンピュータ10と、記憶装置30とマイクロコンピュータ10との間で送受信される読出しアドレス及びモード信号に基づきエラー信号を生成し、エラー信号を出力するエラー発生回路20とを有し、マイクロコンピュータ10は、エラー信号が読出しデータの誤りを示す状態において、記憶装置30から受信した読出しデータに関わらず読出しデータを誤りと判定するものである。
【選択図】図1
【解決手段】本発明にかかる評価システムは、読出しクロックに基づき読出しデータを出力する記憶装置30と、記憶装置30に対して、読出しアドレスを出力し、読出し処理を実行するマイクロコンピュータ10と、記憶装置30とマイクロコンピュータ10との間で送受信される読出しアドレス及びモード信号に基づきエラー信号を生成し、エラー信号を出力するエラー発生回路20とを有し、マイクロコンピュータ10は、エラー信号が読出しデータの誤りを示す状態において、記憶装置30から受信した読出しデータに関わらず読出しデータを誤りと判定するものである。
【選択図】図1
Description
本発明は評価システム及びその評価方法に関し、特に半導体装置が用いる記憶装置で発生するエラーを擬似的に再現するエラー発生回路を有する評価システム及びその評価方法に関する。
マイクロコンピュータ(以下、マイコンと称す)では、制御プログラムやユーザープログラムなどを格納するために記憶装置を搭載するものがある。近年、この記憶装置として、フラッシュメモリが多く用いられている。フラッシュメモリは、半導体装置の製造後であっても格納するプログラムを変更することが可能であるため、半導体装置の少量多品種生産において有効である。
また、フラッシュメモリは、電源を切っても記憶された情報が消去されないことから、
ユーザープログラム等に加えてデータを保存する用途でも用いられることがある。この場合、制御プログラムとして、フラッシュメモリの書込み及び消去を制御するフラッシュファームウェア等の制御ソフトを予めマイコン内のフラッシュメモリに書込む必要がある。
ユーザープログラム等に加えてデータを保存する用途でも用いられることがある。この場合、制御プログラムとして、フラッシュメモリの書込み及び消去を制御するフラッシュファームウェア等の制御ソフトを予めマイコン内のフラッシュメモリに書込む必要がある。
このフラッシュファームウェアを作成する場合には、プログラムの不具合を修正するデバッグ作業が必要になる。このデバッグ作業においては、頻繁にプログラムを書き換えてプログラムの修正を行う。しかしながら、フラッシュメモリには書き換え回数の制限がある。そのためこの書き換え回数が制限となり、十分なデバッグ作業が行えない場合がある。
そこで、このフラッシュメモリに代えて代替RAM(Random Access Memory)を搭載したインサーキットエミュレータ(ICE:In Circuit Emulator)を用いてプログラムのデバッグを行う。ICEを用いてプログラムのデバッグを行う技術の一例が特許文献1に開示されている。
この従来例にかかる評価システムのブロック図を図16に示す。従来の評価システムは、評価用マイコン100と代替RAM108を有している。評価用マイコン100は、CPU(中央処理装置)101、制御レジスタ103、支援回路105を有している。CPU101は、代替RAM108に格納されたユーザープログラムを読み込んで実行する。このユーザープログラムを実行することで、代替RAM108に対するアクセス制御が行われる。制御レジスタ103は、フラッシュメモリへのデータの書込みやデータの消去等の動作を示すデータが設定される。このデータに基づいて、支援回路105は、CPU101による消去や書込み制御の規則違反を検出する。つまり、従来の評価システムでは、この検出結果に基づいてユーザープログラムのデバッグを行うことが可能である。
一方、特許文献2に開示されるような、代替RAMを用いたプログラムのデバッグ方法もある。
特開平09−244915号公報
特開平11−110244号公報
しかしながら、フラッシュメモリは、動作電圧や使用温度等の条件によって正常にデータの書込みが行われない場合がある。従って、フラッシュファームウェアの動作には、書込み処理とベリファイ処理がある。書込み処理では、フラッシュメモリへのデータの書込みが行われ、ベリファイ処理では、読出しデータとその読出しデータの期待値とを比較し、読出しデータが正しいものかを確認する。フラッシュメモリでは、ベリファイ処理によって、エラーが検出された場合に、同じ領域に再度書込みを行う、あるいは、データの書込み箇所を他の領域に移し再度書込みを行う等のエラー処理が行われる。
このフラッシュファームウェアの動作のフローチャートを図17に示す。図17に示すように、フラッシュファームウェアが実行されると、まず制御レジスタに書込み処理を示す制御データがセットされる(ステップS101)。続いて、書込みコマンド1を実行する(ステップS102)。そして、書込み結果のベリファイ処理を行う(ステップS103)。このベリファイ処理の結果エラーがなければ、次の書込みコマンド2を実行する。(ステップS105)。一方、ベリファイ処理においてエラーが検出された場合にはエラー処理を行う(ステップS108)。このようにして、例えば書込みコマンド1〜3を実行し、その結果の検証を行う。
しかしながら、フラッシュメモリで発生する書込みエラーは、条件によって発生するものであって、必ず発生するものではない。従って、従来の評価システムにおいては、例えば、書込み処理とベリファイ処理とを行うステップS101〜S107(以降、処理Aと称す)と、エラー処理を行うステップS108〜S110(以降、処理B)とをそれぞれに実行し、検証する必要がある。
処理Aと処理Bとを検証する場合には、処理Aと処理Bとを個別に実行する場合と、処理Aと処理Bとを1つのプログラムとして実行する場合とがある。処理Aと処理Bとを個別に実行する場合、処理Aに対するデバッグ作業と処理Bに対するデバッグ作業を個別に行わなければならず、また処理Aと処理Bとを結合しなければならないため手順が煩雑になる問題がある。また、処理Aにかかるプログラムと処理Bにかかるプログラムとを結合する場合には、処理Aと処理Bとの結合部分の検証ができないためにヒューマンエラー等が発生し、プログラムの信頼性を損ねる問題がある。
また、処理Aと処理Bとを1つのプログラムとして実行する場合、書込みエラーが発生するまでプログラムを実行し続けるか、代替RAMから読出したデータを評価システムの外部から操作し、強制的にエラーが発生した状態を再現する必要がある。書込みエラーが発生するまでプログラムを実行し続けた場合、エラーの発生がどのタイミングで発生するかが不明であるため、作業効率は極端に悪化する。また、強制的にエラーが発生した状態を再現する場合、例えば代替RAMからの読出しデータを評価システムの外部に読出し、その読出しデータを書き換え、書き換え後の読出しデータを用いて評価システムはベリファイ処理を行う。つまり、この場合においても、評価システム上でのベリファイ処理を忠実に再現できるわけではないため、プログラムの正確なデバッグを行うことができず、プログラムの信頼性を損ねる問題がある。
本発明にかかる評価システムは、読出しクロックに基づき読出しデータを出力する記憶装置と、前記記憶装置に対して、前記読出しアドレスを出力し、読出し処理を実行するマイクロコンピュータと、前記記憶装置と前記マイクロコンピュータとの間で送受信されるモード信号及び前記読出しアドレスに基づきエラー信号を生成し、前記エラー信号を出力するエラー発生回路とを有し、前記マイクロコンピュータは、前記エラー信号が前記読出しデータの誤りを示す状態において、前記記憶装置から受信した前記読出しデータに関わらず当該読出しデータを誤りと判定するものである。
本発明にかかる評価システムによれば、エラー発生回路が、読出しアドレス及びモード信号に基づきエラー信号を生成する。つまり、エラー発生回路は、プログラムの実行中に擬似的なエラー信号を生成する。これによって、生成されるエラー信号は、本来記憶装置でエラーが発生するタイミングと同様のタイミングでマイクロコンピュータに送信される。従って、マイクロコンピュータは、エラー信号に基づいた疑似エラーの検出を、本来記憶装置で発生するエラーの検出手順と同様の手順で行うことが可能である。
また、エラー信号は、プログラムを実行中に適宜発生させることが可能であるため、本発明にかかるプログラムの評価システムは、従来例のように処理Aと処理Bとを個別のプログラムとして実行する必要がない。つまり、被評価プログラムを1つのプログラムとして実行することが可能である。
一方、本発明にかかるプログラムの評価方法は、被評価プログラムをマイクロコンピュータで実行し、前記被評価プログラムの動作を検証するプログラムの評価方法であって、前記マイクロコンピュータから出力される読出しクロックに基づき記憶装置から読出しデータを受信し、前記記憶装置と前記マイクロコンピュータとの間で送受信されるモード信号及び前記読出しアドレスに基づき生成されるエラー信号を出力し、前記マイクロコンピュータは、前記エラー信号が前記読出しデータの誤りを示す状態において、前記記憶装置からの前記読出しデータに関わらず前記読出しデータを誤りと判定するものである。
本発明にかかるプログラムの評価方法は、上記評価システムにおけるプログラムの実行方法であって、上記評価システムと同様に、マイクロコンピュータは、エラー信号に基づいた疑似エラーの検出を、本来記憶装置で発生するエラーの検出手順と同様の手順で行うことが可能である。
本発明にかかる評価システム及びその評価方法によれば、記憶装置で発生するエラーの忠実な再現と、プログラムの信頼性の向上が可能である。
実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。本発明にかかる評価システムは、例えばフラッシュファームウェア等のプログラムの実行と評価を行うものである。プログラムの評価とは、被評価プログラムの不具合の発見及び修正を行う工程であって、以下の説明においてはデバッグ作業とも称する。また、この評価システム1は、インサーキットシミュレータとも称され、複数の半導体装置が評価基板上に配置されるものである。本発明においては、半導体装置として評価用マイクロコンピュータ(以下、評価用マイコンと称す)、エラー発生回路、代替RAM、外部アクセス回路が配置される。
以下、図面を参照して本発明の実施の形態について説明する。本発明にかかる評価システムは、例えばフラッシュファームウェア等のプログラムの実行と評価を行うものである。プログラムの評価とは、被評価プログラムの不具合の発見及び修正を行う工程であって、以下の説明においてはデバッグ作業とも称する。また、この評価システム1は、インサーキットシミュレータとも称され、複数の半導体装置が評価基板上に配置されるものである。本発明においては、半導体装置として評価用マイクロコンピュータ(以下、評価用マイコンと称す)、エラー発生回路、代替RAM、外部アクセス回路が配置される。
図1に実施の形態1にかかる評価システム1のブロック図を示す。図1に示すように、評価システム1は、評価用マイコン10、エラー発生回路20、代替RAM30、外部アクセス回路40を有している。評価用マイコン10は、代替RAM30からプログラムを読出して、それを実行する。エラー発生回路20は、代替RAM30で発生する読出しデータのエラーを擬似的に生成する。代替RAM30は、例えば出荷製品に搭載されるフラッシュメモリに代えて搭載される記憶装置であって、被評価プログラムの格納と評価用マイコン10から送信されるデータとを記憶する。外部アクセス回路40は、エラー発生回路20と図示しない外部の装置とを接続するインタフェース回路である。
ここで、評価用マイコン10について詳細に説明する。評価用マイコン10は、CPU11、内蔵RAM12、周辺回路13、条件設定レジスタ14、メモリアクセス制御回路15、エミュレータインタフェース16を有している。CPU11は、プログラムの実行や各種演算処理を行う。内蔵RAM12は、CPU11が処理するデータの一時記憶を行う。周辺回路13は、例えば図示しない装置とCPU11との間のインタフェース回路など、CPU11によって制御される回路群である。
条件設定レジスタ14は、CPU11が直接制御可能なデータの記憶領域である。条件設定レジスタ14は、アドレス設定レジスタ141及びデータ設定レジスタ142を有している。条件設定レジスタ14は、これらのレジスタに格納される値に基づき、エラー発生回路がエラー信号を生成するための条件を設定する。条件設定レジスタ14の詳細については後述する。
メモリアクセス制御回路15は、例えば代替RAM30のアクセスモードの制御と読出しデータのベリファイ処理を行う。ここで、ベリファイ処理とは、読出しデータとその読出しデータの期待値とを比較し、読出しデータが正しいものかを確認する処理である。メモリアクセス制御回路15の詳細については後述する。エミュレータインタフェース16は、CPU11とエラー発生回路20及び代替RAM30との間のインタフェースである。
また、エラー発生回路20について詳細に説明する。エラー発生回路20は、エラー出力回路21、比較回路22、エラー設定レジスタ23を有している。エラー出力回路21は、エラー信号を評価用マイコン10に出力する。ここで、エラー信号とは、評価用マイコン10に読出しデータがエラーであったことを通知する信号であるが、読出しデータの成否とは関係なく、評価用マイコン10によって設定された条件設定レジスタ14が生成する読出しアドレスとモード信号(例えば、ベリファイ用読出しモード信号)とに基づき生成されるものである。
比較回路22は、エラー設定レジスタ23に格納された値と、評価用マイコン10から出力される読出しアドレスとを比較する。また、比較回路22は、エラー設定レジスタ23に格納された値とモード信号とを比較する。そして、2つの比較結果に基づいてエラー出力回路21に条件一致信号を出力する。エラー設定レジスタ23は、エラー発生モード設定レジスタ231とエラー発生アドレス設定レジスタ232とを有している。このエラー発生モード設定レジスタ231とエラー発生アドレス設定レジスタ232とには、エラー信号を出力する場合の読出しアドレスとモード信号に対応した値とがそれぞれ格納される。
ここで、条件設定レジスタ14とエラー設定レジスタ23とについて詳細に説明する。条件設定レジスタ14とエラー設定レジスタ23との関係を図2に示す。図2に示すように、条件設定レジスタ14のアドレス設定レジスタ141とデータ設定レジスタ142とは、CPU11のアドレスマップ上において、未使用・予約領域に定義されるレジスタである。つまり、アドレス設定レジスタ141とデータ設定レジスタ142とは、CPU11から直接制御可能なレジスタである。このアドレス設定レジスタ141には、CPU11から制御データを格納するエラー設定レジスタ23上の領域を指定するアドレスが格納される。つまり、アドレス設定レジスタ141が16ビットのデータ格納領域を有している場合、エラー設定レジスタ23上のアドレス"0000h"から"FFFFh"までの領域を指定することが可能である。また、データ設定レジスタ142には、CPU11からエラー設定レジスタ23に格納する制御データが格納される。
また、エラー設定レジスタ23は、エラー発生モード設定レジスタとエラー発生アドレス設定レジスタとを1組のレジスタとし、この組になったレジスタを複数有している。本実施の形態においては、エラー設定レジスタ23上のアドレス"0000h"にエラー発生モード設定レジスタ1が設定され、エラー設定レジスタ23上のアドレス"0001h"にエラー発生アドレス設定レジスタ1が設定される。また、エラー設定レジスタ23上のアドレス"0002h"にエラー発生モード設定レジスタ2が設定され、エラー設定レジスタ23上のアドレス"0004h"にエラー発生アドレス設定レジスタ2が設定される。なお、図1では、図面の簡単化のために、エラー設定レジスタ23のエラー発生モード設定レジスタとエラー発生アドレス設定レジスタとの組を1組のみ示した。しかし、エラー発生モード設定レジスタとエラー発生アドレス設定レジスタとの組は、エラー設定レジスタ23のアドレスの上限まで増加させることが可能である。
アドレス設定レジスタ141とデータ設定レジスタ142とに格納された値に基づき、エラー設定レジスタ23に値が格納される。この動作について説明する。一例として、エラー発生モード設定レジスタ1とエラー発生アドレス設定レジスタ1とに値を設定する場合について説明する。この場合、まずCPU11が、アドレス設定レジスタ141に値"0000h"を格納する。続いて、データ設定レジスタ142にベリファイ用読出しモードに対応した値が格納される。ベリファイ用読出しモードに対応した値は、例えば、ベリファイ用読出しモードとして4つのモードを持っている場合、4ビットの値として与えられる。4ビットの信号は、例えば、モード1に対して値"0001h"、モード2に対して値"0002h"、モード3に対して値"0004h"、モード4に対して値"0008h"を設定する。それぞれのモードを1ビットの信号として扱い、4本のビット線のそれぞれに対応させて各モードを定義することで、1つのモードがアクティブの場合に他のモードは非アクティブとなる。また、このように多ビットの信号線のそれぞれに各モードを対応させることで、比較回路22におけるモード比較が容易になる。
そして、データ設定レジスタ142に値が格納されたのに応じて、エラー発生モード設定レジスタ1(アドレス"0000h")が選択される。その後エラー発生モード設定レジスタ1にモード設定値が格納される。
続いて、CPU11が、アドレス設定レジスタ141に値"0001h"を格納する。その後、データ設定レジスタ142にエラーを発生させる読出しデータが格納される代替RAM30上のアドレス(読出しアドレス)を格納する。そして、データ設定レジスタ142に値が格納されたのに応じて、エラー発生アドレス設定レジスタ1(アドレス"0001h")が選択され、エラー発生モード設定レジスタ1にエラーを発生させる読出しデータが格納される代替RAM30上のアドレスが格納される。その他のエラー発生モード設定レジスタとエラー発生アドレス設定レジスタとにも、上記手順と同様の手順で値が格納される。
ここで、メモリアクセス制御回路15とエラー発生回路20とについて詳細に説明し、評価システム1の動作について説明する。図3にメモリアクセス制御回路15とエラー発生回路20とについての詳細なブロック図を示す。図3に示すように、メモリアクセス制御回路15は、アクセス制御レジスタ151と、エラーフラグ生成回路155とを有している。
アクセス制御レジスタ151は、エラーフラグ格納レジスタ152、期待値レジスタ153、アクセスモード格納レジスタ154を有している。エラーフラグ格納レジスタ152には、読出しデータが期待値と一致していれば"1"が格納され、不一致であれば"0"が格納される。なお、エラーフラグ格納レジスタ152の値は、エラーフラグ生成回路155から入力される。また、エラーフラグ格納レジスタ152に格納された値は、CPU11によって読出され、ベリファイ処理の結果とされる。期待値レジスタ153は、CPU11から入力される読出しデータに対する期待値を保持する。また、この期待値は、エラーフラグ生成回路155に送信される。アクセスモード格納レジスタ154は、CPU11から送信されるモード信号に対応した値を保持する。モード信号に対応した値とは、例えば代替RAM30の書込み、消去、読出し等の各動作に対して与えられる値であって、この値は、モード信号としてエミュレータインタフェース16を介して代替RAM30に与えられる。代替RAM30は、モード信号の値に基づき各種の動作を行う。
エラーフラグ生成回路155は、期待値比較器156、AND回路157を有している。期待値比較器156は、期待値レジスタ153に格納された期待値と、代替RAM30から読み出されエミュレータインタフェース16を介して入力される読出しデータとを比較し、ベリファイ結果を出力する。ベリファイ結果は、期待値と読出しデータとが一致した場合にハイレベルとなり、不一致だった場合にロウレベルとなる。
AND回路157には、ベリファイ結果とエミュレータインタフェース16を介してエラー発生回路から入力されるエラー信号とが入力される。AND回路157は、ベリファイ結果とエラー信号の反転論理との論理積を出力する。このAND回路157の出力がエラーフラグ生成回路155の出力となる。つまり、エラーフラグ生成回路155は、エラー信号が第1の状態(例えば、ハイレベルであって、エラー発生状態を示す論理値)の場合にエラーフラグ格納レジスタ152に"0"を格納し、第2の状態(例えば、ロウレベルであって、エラーが発生していない状態を示す論理値)の場合は、期待値比較器156の出力に基づいた値をエラーフラグ格納レジスタ152に格納する。
エラー発生回路は、エラー出力回路21、比較回路22、エラー設定レジスタ23を有している。エラー設定レジスタ23は、エラー発生モード設定レジスタ231とエラー発生アドレス設定レジスタ232を有している。エラー発生モード設定レジスタ231は、格納された値に基づきエラー信号を発生させるアクセスモードに対応したエラー発生モード信号を出力する。エラー発生アドレス設定レジスタ232は、格納された値に基づきエラー信号を発生させる読出しデータが格納される代替RAM30上のアドレスを示すエラー発生アドレスを出力する。
比較回路22は、モード比較器221、アドレス比較器222、AND回路223を有している。モード比較器221は、エラー発生モード設定レジスタ231に格納されたエラー発生モード値と、エミュレータインタフェース16から代替RAM30に送信されるモード信号の値とを比較し、モード比較結果Mcompを出力する。モード比較結果Mcompは、エラー発生モード値とモード信号の値とが一致した場合にハイレベルとなり、不一致だった場合にロウレベルとなる。アドレス比較器222は、エラー発生アドレス設定レジスタ232に格納されたエラー発生アドレスと、エミュレータインタフェース16から代替RAM30に送信される読出しアドレスとを比較し、アドレス比較結果Acompを出力する。アドレス比較結果Acompは、エラー発生アドレスと読出しアドレスとが一致した場合にハイレベルとなり、不一致だった場合にロウレベルとなる。AND回路223は、モード比較結果Mcompと、アドレス比較結果Acompとの論理積を出力する。AND回路223は、比較回路22の出力であって、この出力を条件一致信号と称す。なお、エラー発生モード設定レジスタ231とエラー発生アドレス設定レジスタ232とは、上述したエラー設定レジスタ23のレジスタである。
なお、図3では、簡単化のため、エラー発生モード設定レジスタとエラー発生アドレス設定レジスタとは、1組のみを示した。複数組のエラー発生モード設定レジスタとエラー発生アドレス設定レジスタとを用いる場合、複数のレジスタの組のそれぞれに対して比較回路22が準備される。そして、複数の比較回路22の出力の論理和をエラー出力回路21に入力する。
エラー出力回路21は、AND回路211、ラッチ回路212を有している。AND回路211は、一方の入力にシステムリセット信号が入力され、他方の入力に条件一致信号が入力されている。AND回路211は、この2つの入力の論理積を出力する。ラッチ回路212は、例えばDラッチ回路であって、データ入力端子Dはハイレベル(1'b1)に固定されている。また、ラッチ回路212のリセット入力端子RSTには、AND回路211が接続されており、AND回路211の出力がロウレベルの状態でラッチ回路212はリセット状態となる。ラッチ回路212は、リセット状態では、出力端子Qからロウレベルを出力し、リセット解除状態(AND回路211の出力がハイレベル)では、読出しクロックの立ち上がりに応じてデータ入力端子Dに入力されるハイレベルを出力する。このラッチ回路212の出力はエラー信号となる。つまり、エラー出力回路21は、読出しクロックに同期してエラー信号のエラー状態(例えば、読出しデータの誤り状態)を設定し、比較回路22の出力に基づきエラー信号のエラー状態を解除する。なお、システムリセット信号は、例えば、エラー発生回路20の外部から入力される信号であって、エラー発生回路20を動作させるか否かを設定する信号である。
本実施の形態にかかる評価システム1の動作について説明する。以下の説明では、動作の一例として、読出しデータのベリファイ処理について説明する。このベリファイ処理には、読出しデータにエラーがない状態での動作と、読出しデータにエラーが発生した場合の動作とがある。
まず、読出しデータにエラーがない状態での動作について説明する。なお、この状態では、システムリセット信号がロウレベルであって、エラー発生回路20はエラー信号をロウレベルとする。図4に読出しデータにエラーがない状態における動作のタイミングチャートを示す。この場合、まず、タイミングT4でベリファイ処理モードを示すWriteErrCheckModeがモード信号として評価用マイコン10から出力される。続いて、タイミングT5でアドレス"1234h"を示す読出しアドレスが評価用マイコン10から出力され、タイミングT6で期待値レジスタ153に読出しデータの期待値"FF00h"が設定される。次に、タイミングT7で、読出しクロックが評価用マイコン10から出力され、これに応じて読出しデータ"FF00h"が代替RAM30から出力される。代替RAM30から出力された読出しデータは、期待値比較器156で期待値と比較される。このとき、期待値と読出しデータとの値が一致しているため、ベリファイ結果はハイレベルとなる。ここで、エラー信号はロウレベルであるため、AND回路157の出力は、ベリファイ結果と同じ論理レベルとなる。つまり、エラーフラグ格納レジスタ152には"1"が格納される。評価用マイコン10は、このエラーフラグ値をタイミングT9のCPUクロックの立ち上がりで読み込むことで、読出しデータが正しいことを認識する。
次に、読出しデータにエラーが発生した場合の動作について説明する。なお、この状態では、システムリセット信号がロウレベルであって、エラー発生回路20はエラー信号をロウレベルとする。図5に読出しデータにエラーが発生した状態における動作のタイミングチャートを示す。この場合、まず、タイミングT4でベリファイ処理モードを示すWriteErrCheckModeがモード信号として評価用マイコン10から出力される。続いて、タイミングT5でアドレス"1234h"を示す読出しアドレスが評価用マイコン10から出力され、タイミングT6で期待値レジスタ153に読出しデータの期待値"FF00h"が設定される。次に、タイミングT7で、読出しクロックが評価用マイコン10から出力され、これに応じて読出しデータ"F0F0h"が代替RAM30から出力される。代替RAM30から出力された読出しデータは、期待値比較器156で期待値と比較される。このとき、期待値と読出しデータとの値が一致しないため、ベリファイ結果はロウレベルとなる。ここで、エラー信号はロウレベルであるため、AND回路157の出力は、ベリファイ結果と同じ論理レベルとなる。つまり、エラーフラグ格納レジスタ152には"0"が格納される。評価用マイコン10は、このエラーフラグ値をタイミングT9のCPUクロックの立ち上がりで読み込むことで、読出しデータが誤りであることを認識する。
一方、エラー信号に基づき読出しデータがエラー状態となった場合の動作について説明する。図6にエラー信号に基づき読出しデータがエラー状態となった場合におけるタイミングチャートを示す。この場合、まず、タイミングT0でエラー発生モード設定レジスタ231にエラーを発生させるモード信号の値を設定する。ここでは、モード信号の値としてWriteErrCheckModeが設定される。次に、タイミングT1で、エラー発生アドレス設定レジスタ232にエラーを発生させる読出しデータが格納される代替RAM30のアドレスを設定する。ここでは、このアドレスとして"1234h"が設定される。
そして、タイミングT4でベリファイ処理モードを示すWriteErrCheckModeがモード信号として評価用マイコン10から出力される。これによって、エラー発生モードの値とモード信号との値が一致するため、モード比較結果Mcompがハイレベルになる。続いて、タイミングT5でアドレス"1234h"を示す読出しアドレスが評価用マイコン10から出力される。これによって、エラー発生アドレスの値と読出しアドレスの値とが一致するため、アドレス比較結果Acompがハイレベルになる。また、モード比較結果Mcompとアドレス比較結果Acompとが共にハイレベルとなるため、条件一致信号がハイレベルとなる。条件一致信号は、モード比較結果Mcompとアドレス比較結果Acompとのうちいずれか一方がロウレベルとなるまでハイレベルを維持する。
その後、タイミングT6で期待値レジスタ153に読出しデータの期待値"FF00h"が設定される。そして、タイミングT7で、読出しクロックが評価用マイコン10から出力され、これに応じて読出しデータ"FF00h"が代替RAM30から出力される。代替RAM30から出力された読出しデータは、期待値比較器156で期待値と比較される。このとき、期待値と読出しデータとの値が一致するため、ベリファイ結果はハイレベルとなる。しかしながら、条件一致信号がハイレベルであるため、エラー出力回路21が出力するエラー信号は、読出しクロックに基づきハイレベルとなる。従って、AND回路157の出力は、ベリファイ結果に関わらずロウレベルとなる。つまり、エラーフラグ格納レジスタ152には"0"が格納される。評価用マイコン10は、このエラーフラグ値をタイミングT9のCPUクロックの立ち上がりで読み込むことで、読出しデータが誤りであることを認識する。
なお、タイミングT11からT12の間で一時的にエラーフラグ値がハイレベルとなる。これは、タイミングT11で読出しアドレスが変化するために、エラー信号がハイレベルからロウレベルに変化し、ベリファイ結果のマスクが一時的に解除されるためである。しかし、エラーフラグ値はタイミングT9で評価用マイコン10に取り込まれているため、この変化はベリファイ処理の結果には影響しない。
上記説明より、本実施の形態の評価システム1は、エラー発生回路20がモード信号と読出しアドレスとに基づき、エラー信号を生成し、読出しクロックに基づき出力する。また、このエラー信号によって、読出しデータの期待値と読出しデータとに基づき生成されるベリファイ結果をマスクし、エラーフラグ格納レジスタ152に読出しエラーが発生した状態を示すエラーフラグを格納する。これによって、評価用マイコン10は、読出しエラーの有無に関係なく、同じ手順でベリファイ処理の結果をCPU11で読出すことができる。また、CPU11は、エラーの発生を確実に認識することが可能である。一方、従来の評価システムでは、代替RAMからの読出しデータを評価システムの外部に読出し、その読出しデータを書き換え、書き換え後の読出しデータを用いてベリファイ処理によるエラー判定を行う必要があった。しかしながら、本実施の形態の評価システム1は読出しデータのベリファイ結果をマスクするのみであって、読出しデータを書き換える手順を必要としない。従って、評価システム1は、本来発生する読出しエラーを忠実に再現することが可能である。
また、従来の評価システムでは、フラッシュメモリ等で偶発的に発生するエラーの再現は困難であったが、評価システム1では、強制的に発生させたエラー信号によってエラーの検出を忠実に再現することが可能である。一方、評価システム1のエラー発生回路の接続先を変更し、適宜エラー設定レジスタの値を設定することで、代替RAMだけではなく、不揮発性メモリに対するエラー信号を生成することも可能である。つまり、不揮発性メモリにおいて偶発的にしか発生しないエラーをエラー発生回路によって生成することが可能である。これによって、不揮発性メモリの制御において行わなければならないエラー処理に関するプログラムを効率よくデバッグすることが可能になる。
さらに、本実施の形態の評価システム1ではエラー発生モード設定レジスタ231とエラー発生アドレス設定レジスタ232の値を変更することで、任意の状態及び読出しアドレスにおいてエラーを再現することが可能である。また、エラー発生モード設定レジスタ231、エラー発生アドレス設定レジスタ232、比較回路22の組を複数用意することで、複数の条件において発生する読出しエラーを再現することが可能である。これによって、例えば、全ての読出しアドレスでエラーが発生する状態を設定することも可能である。このような条件において、被評価プログラムを実行することで、あるアドレスで発生するエラーのみを検出できない不具合を発見することが容易になる。つまり、本実施の形態の評価システム1で被評価プログラムの評価を行うことで、被評価プログラムの信頼性を向上させることが可能である。
ここで、評価システム1を用いたフラッシュファームウェアのデバッグ作業について説明する。フラッシュファームウェアは、例えば、ユーザープログラムが記憶装置に対してデータの書込み等の操作を行う場合に呼び出され、ユーザープログラムの命令に従い記憶装置を制御するプログラムである。また、フラッシュファームウェアは、機能の一つとして、ベリファイ処理を行う。以下では、ユーザープログラムに代えて、フラッシュファームウェアのデバッグ用に準備されたデバッグ用プログラムを用いた場合のフラッシュファームウェアのデバッグ作業について説明する。つまり、以下の例では被評価プログラムはフラッシュファームウェアである。フラッシュファームウェアをデバッグする場合のフローチャートを図7に示す。
図7に示すように、フラッシュファームウェアをデバッグする場合、まずCPU11が、デバッグ用プログラムを代替RAM30から読出し、デバッグ用プログラムを実行する(ステップS1)。エラー情報の設定ステップは、デバッグ用プログラムの先頭部分に記述されているため、ステップS1に続いてエラー情報の設定が行われる(ステップS2)。このステップS2では、デバッグ用プログラムによって定義される情報に基づいて、CPU11が条件設定レジスタ14を介して、エラー設定レジスタ23に格納される値を設定する。続いて、デバッグ用プログラムは、フラッシュファームウェアを代替RAM30から呼び出し、例えば内蔵RAM12に格納する(ステップS3)。そして、CPU11は、内蔵RAM12に格納されたフラッシュファームウェアを実行する(ステップS4)。
続いて、フラッシュファームウェアを用いて、CPU11は、代替RAM30を制御する(ステップS5)。このとき、制御に応じて、その動作にエラーが発生したか否かを判断する(ステップS6)。本実施の形態の評価システム1は、このステップS6において、エラー発生回路を用いて、エラー状態を生成することが可能である。ステップS6において、エラーが発生していないと判断された場合、CPU11は、例えば代替RAM30上の次のアドレスへのアクセスを行う等の次の処理へ進む(ステップS7)。
一方、読出しエラーが生じた場合、あるいはエラー発生回路20によってエラー信号が生成された場合、読出しデータのエラーを示すエラーフラグがエラーフラグ格納レジスタ152に格納され、CPU11がエラーの発生状態を示すエラーステータスを生成する。(ステップS8)。このエラーステータスとは、例えばモード1でエラーが発生した場合には"1Ah"、モード2でエラーが発生した場合には"1Bh"といった値である。また、フラッシュファームウェアが、例えばエラー発生時にエラーが発生したアドレスに再書込みを行う等のエラー処理機能を有している場合は、このようなエラー処理を行うステップを含んでいても良い。ステップS8に続いて、エラーステータスを内蔵RAM12に保持する(ステップS9)。その後、CPU11は、処理をステップS7に進める。
そして、CPU11は、フラッシュファームウェアの動作が全て完了したかを判断する(ステップS10)。ステップS10の判断によって、フラッシュファームウェアの実行が未完了であった場合は、ステップS5に戻る。一方、ステップS10で、フラッシュファームウェアの実行が完了した場合は、CPU11は、内蔵RAM12に保持されているエラーステータスをデバッグ用プログラムに戻り値として返し、デバッグ用プログラムを実行するモードに動作を切り替える(ステップS11)。
つまり、エラー発生回路20によってエラー信号を生成することで、フラッシュファームウェアのエラー処理コードを実行し、実行後に生成されたエラーステータスが所望の値になっているか否かを判断することで、フラッシュファームウェアのデバッグが可能である。また、上記説明のように、評価システム1を用いることで、従来のようにエラー処理部分と書込み処理及びベリファイ処理部分のプログラムを個別に実行することなく、1つのプログラムとして実行可能である。これによって、分離されたプログラムを結合する際に起こる不具合の発生を防ぎ、プログラムの信頼性を向上させることが可能である。
一方、本実施の形態の評価システム1は、ユーザーが作成するユーザープログラムをデバッグする場合にも有効である。つまり、ここでは被評価プログラムはユーザープログラムである。ユーザープログラムをデバッグする手順の一例を説明する。以下では、ユーザープログラムは、フラッシュファームウェアを呼び出す機能を有しており、代替RAM30に格納されているものとする。CPU11は、代替RAM30に格納されるユーザープログラムを実行する。また、ICEにおいてユーザープログラムをデバッグする場合には、デバッグ用プログラムとしてスーパーバイザプログラムを用いる。スーパーバイザプログラムは、例えば代替RAM30内、あるいは代替RAM30とは異なる記憶装置内に格納されるプログラムである。ICEは、CPU11が実行中のプログラムを一時停止するブレーク機能を有している。スーパーバイザプログラムは、このブレーク機能によって、ユーザープログラムの動作が一時停止した状態で、CPU11がアクセス可能なレジスタ、あるいは記憶領域に格納されるデータを操作することができるプログラムである。
ユーザープログラムのデバッグを行う場合のフローチャートを図8に示す。この場合、まず、ICEのブレーク機能を実行することによって、スーパーバイザプログラムが起動する(ステップS20)。続いて、スーパーバイザプログラムによって、エラー発生の設定処理が呼び出される(ステップS21)。このステップS21の動作に応じてCPU11は、条件設定レジスタ14を介して、エラー設定レジスタ23に格納される値を設定する(ステップS2)。
その後、CPU11は、ICEのブレーク状態を解除し、ユーザープログラムを実行する(ステップS22)。そして、ユーザープログラムは、フラッシュファームウェアを代替RAM30から呼び出す(ステップS3)ステップS3によって呼び出されたフラッシュファームウェアは、内蔵RAM12に格納され、CPU11は、このフラッシュファームウェアを用いて代替RAM30を制御する(ステップS4)。その後に行われるステップS5〜S10のフラッシュファームウェアを用いた動作は図7に示すフラッシュファームウェアの動作と実施的に同じである。
続いて、フラッシュファームウェアによって生成されたエラーステータスは、ユーザープログラムにフラッシュファームウェアの実行結果として送信される。また、CPU11は、ユーザープログラムを実行するモードに切り替わる(ステップS11)。続いて、CPU11は、ユーザープログラムを実行し、ステップS11で受信したエラーステータスの判断を行う(ステップS23)。ステップS23の判断によって、エラーステータスがその後の処理を必要としないものであればユーザープログラムを終了する。一方、エラーステータスが、その後の処理においてエラー処理を必要とするものであれば、そのエラー処理を実行し、ユーザープログラムを終了する(ステップS24)。ステップS24において実行されるエラー処理とは、例えばエラーが発生した領域とは異なる領域へのデータの再書込みや、外部に接続される表示装置へのエラーステータスの表示などである。
上記説明より、本実施の形態の評価システム1を用いて、プログラムのデバッグを行うことで、プログラムの実行中に読出しデータ、あるいはエラーステータスを変更することなくプログラムのデバッグを行うことが可能である。つまり、本実施の形態の評価システム1によれば、ICEのブレーク機能やスーパーバイザプログラムを用いて任意のエラー発生条件を設定し、その任意の条件に基づいたエラー信号の生成が可能である。そして、このエラー信号に基づきフラッシュファームウェアのエラー処理コードを実行し、実行後に生成されたエラーステータスを用いてユーザープログラムをデバッグすることが可能である。これによって、プログラムのデバッグ作業を従来の評価システムよりもスムーズに行うことが可能である。従来の評価システムでは、例えばエラーを発生させる場合に、読出しデータを評価システムの外部に読出し、その読出しデータを書き換え、書き換え後の読出しデータを用いて評価システムにベリファイ処理を行わせる必要があった。そのため、デバッグ作業を効率よく進めることができない問題があった。
実施の形態2
実施の形態2にかかる評価システム2のブロック図を図9に示す。なお、図9において、実施の形態1と同じものについては、実施の形態1と同様の符号を付して説明を省略する。
実施の形態2にかかる評価システム2のブロック図を図9に示す。なお、図9において、実施の形態1と同じものについては、実施の形態1と同様の符号を付して説明を省略する。
実施の形態1にかかる評価システム1と実施の形態2にかかる評価システム2とでは、エラー発生回路が異なる。実施の形態1にかかるエラー発生回路20は、モード信号と読出しアドレスとに基づいてエラー信号を生成していたのに対し、実施の形態2にかかるエラー発生回路50は、モード信号と読出しアドレスと当該読出しアドレスへのアクセス回数とに基づいてエラー信号を生成する。
図9に示すように、エラー発生回路50は、エラー発生回路20に対して、アクセスカウンタ54とアクセス回数設定レジスタ531を追加したものである。なお、アクセス回数設定レジスタ531は、エラー設定レジスタ53内の領域に定義される。このエラー発生回路50の詳細なブロック図を図10に示す。
実施の形態2にかかるエラー発生回路50は、エラー発生モード設定レジスタ231とエラー発生アドレス設定レジスタ232で設定される条件へのアクセスが所定の回数に達するまでは、エラー信号を出力する。また、この条件へのアクセスが所定の回数に達するとエラー信号を停止(エラー状態を解除)する。図10に示すように、エラー発生回路50は、エラー出力回路51、比較回路52、エラー設定レジスタ53、アクセスカウンタ54を有している。
アクセスカウンタ54は、カウンタ541、AND回路542を有している。カウンタ541は、カウンタリセット信号がハイレベルである場合にリセット解除状態となり、リセット解除後の読出しクロックの数を計数してカウント値CNTとして出力する。また、カウンタリセット信号がロウレベルである場合、リセット状態となり、読出しクロックの計数を停止し、カウント値CNTを"0"にリセットする。カウンタリセット信号は、AND回路542が生成する信号である。AND回路542は、システムリセット信号がロウレベルである場合にはロウレベルを出力し、システムリセット信号がハイレベルである場合には条件一致信号と同じ論理レベルを出力する。つまり、カウンタリセット信号は、システムリセット信号がハイレベルである場合、条件一致信号と同じ論理レベルとなる。
エラー設定レジスタ53は、実施の形態1にかかるエラー設定レジスタ23に対して、アクセス回数設定レジスタ531を加えたものである。アクセス回数設定レジスタ531に格納される値は、エラー発生モード設定レジスタ231及びエラー発生アドレス設定レジスタ232と同様の手順で、評価用マイコン10の条件設定レジスタ14の値に基づき設定される。アクセス回数設定レジスタ531は、格納される値に基づいて比較カウント値RefCNTを出力する。
比較回路52は、実施の形態1にかかる比較回路22に対して、比較カウント値検出回路524、アクセス回数比較器525、AND回路526を追加したものである。比較カウント値検出回路524は、比較カウント値RefCNTが"0"を示す値であれば、ロウレベルを出力し、比較カウント値RefCNTが"0"以外を示す値であれば、ハイレベルを出力する。アクセス回数比較器525は、カウント値CNTと比較カウント値RefCNTとを比較する。アクセス回数比較器525は、カウント値CNTと比較カウント値RefCNTとが不一致である状態ではロウレベルを出力し、カウント値CNTと比較カウント値RefCNTとが一致した状態ではハイレベルを出力する。AND回路526は、比較カウント値検出回路524の出力と、アクセス回数比較器525の出力との論理積を出力する。つまり、比較カウント値検出回路524の出力がハイレベルである場合、AND回路526は、アクセス回数比較器525の出力と同じ論理レベルとなる。AND回路526の出力は、マスク信号としてエラー出力回路51に出力される。
エラー出力回路51は、実施の形態1にかかるエラー出力回路21に対して、AND回路511を追加したものである。また、実施の形態2では、ラッチ回路212の出力をマスク前エラー信号と称する。AND回路511は、マスク信号の反転信号とマスク前エラー信号との論理積を出力する。つまり、AND回路511の出力は、マスク信号がロウレベルである場合、マスク前エラー信号と同じ論理レベルとなる。一方、マスク信号がハイレベルの場合、マスク前エラー信号の論理レベルに関わらずロウレベルを出力する。このAND回路511の出力は、エラー信号となる。
ここで、実施の形態2のエラー発生回路50の動作を説明する。図11にエラー発生回路50を動作させた場合の評価システム2の動作のタイミングチャートを示す。この場合、まず、タイミングT0でエラー発生モード設定レジスタ231にエラーを発生させるモード信号の値を設定する。ここでは、モード信号の値としてWriteErrCheckModeが設定される。次に、タイミングT1で、エラー発生アドレス設定レジスタ232にエラーを発生させる読出しデータが格納される代替RAM30上のアドレスを設定する。ここでは、このアドレス(読出しアドレス)として"1234h"が設定される。また、タイミングT2で所定のカウント回数がカウント回数設定レジスタに設定される。本実施の形態においては、所定の回数として8回を示す"0008h"が設定される。
そして、タイミングT4でベリファイ処理モードを示すWriteErrCheckModeがモード信号として評価用マイコン10から出力される。これによって、エラー発生モードの値とモード信号との値が一致するため、モード比較結果Mcompがハイレベルになる。続いて、タイミングT5でアドレス"1234h"を示す読出しアドレスが評価用マイコン10から出力される。これによって、エラー発生アドレスの値と読出しアドレスとの値が一致するため、アドレス比較結果Acompがハイレベルになる。また、モード比較結果Mcompとアドレス比較結果Acompとが共にハイレベルとなるため、条件一致信号がハイレベルとなる。条件一致信号は、モード比較結果Mcompとアドレス比較結果Acompとのうちいずれか一方がロウレベルとなるまでハイレベルを維持する。また、実施の形態2では、アクセス回数が所定の回数に達するまでは、モード信号と読出しアドレスとはそれぞれ値が維持されるものとする。また、条件一致信号がハイレベルとなるのに応じて、カウンタリセット信号がハイレベルとなる。これによって、カウンタ541は読出しクロックの計数が可能な状態となる。
その後、タイミングT6で期待値レジスタ153に読出しデータの期待値"FF00h"が設定される。そして、タイミングT7で、読出しクロックが評価用マイコン10から出力され、これに応じて読出しデータ"FF00h"が代替RAM30から出力される。代替RAM30から出力された読出しデータは、期待値比較器156で期待値と比較される。このとき、期待値と読出しデータとの値が一致するため、ベリファイ結果はハイレベルとなる。また、条件一致信号がハイレベルであるため、ラッチ回路212が出力するマスク前エラー信号は、読出しクロックに基づきハイレベルとなる。一方、カウンタ541は、読出しクロックを計数し、値"0001h"を有するカウント値CNTを出力する。しかし、このカウント値は、比較カウント値RefCNTとは一致しないため、アクセス回数比較器525が出力するマスク信号はロウレベルとなる。従って、AND回路511の出力はマスク前エラー信号と同じハイレベルとなる。これによって、AND回路157の出力は、ベリファイ結果に関わらずロウレベルとなる。つまり、エラーフラグ格納レジスタ152には"0"が格納される。評価用マイコン10は、このエラーフラグ値をタイミングT9のCPUクロックの立ち上がりで読み込むことで、読出しデータが誤りであることを認識する。
続いて、タイミングT13以降で条件のアクセスが繰り返され、カウント値CNTは"0007h"までカウントアップされる。また、その間エラー信号はロウレベルとなるため、エラーフラグ格納レジスタ152には"0"が格納される。その後、タイミングT15で8回目の読出しクロックが入力されると、カウント値CNTは"0008h"となる。これによって、アクセス回数比較器525の出力がハイレベルとなるため、マスク信号がハイレベルになる。これによって、AND回路511が出力するエラー信号は、ロウレベルとなる。そして、AND回路157の出力は、ベリファイ結果と同じハイレベルとなり、エラーフラグ値が"1"となる。このエラーフラグ値はタイミングT17のCPUクロックの立ち上がりで読み込まれ、読出しデータが正常であることがCPU11に認識される。
上記説明より、実施の形態2にかかる評価システム2によれば、エラーが発生した読出しアドレスに対して複数回のアクセスを試みて、所定の回数のアクセスを繰り返した後に書込みを成功させることが可能である。つまり、実施の形態2にかかる評価システムによれば、実施の形態1よりも複雑なエラー処理を再現することが可能である。これによって、様々なアクセスモード、あるいはエラーモードを再現できる評価システムを実現することが可能である。なお、実施の形態2にかかる評価システム2において、1回のアクセスに対してエラー信号を生成する場合、アクセス回数設定レジスタ531に、"0"を設定しておけば良い。これによって、比較カウント値検出回路の出力はロウレベルとなり、AND回路526が出力するマスク信号は、常にロウレベルとなる。これによって、エラー出力回路51のAND回路511の出力は、マスク前エラー信号と同じ論理となる。つまり、マスク前エラー信号のマスクが常に解除される状態となり、実施の形態1と同じ動作が可能である。
実施の形態3
実施の形態3にかかる評価システム2のブロック図を図12に示す。なお、図12において、実施の形態1と同じものについては、実施の形態1と同様の符号を付して説明を省略する。
実施の形態3にかかる評価システム2のブロック図を図12に示す。なお、図12において、実施の形態1と同じものについては、実施の形態1と同様の符号を付して説明を省略する。
実施の形態1にかかる評価システム1と実施の形態3にかかる評価システム3とでは、エラー発生回路が異なる。実施の形態1にかかるエラー発生回路20は、エラーを発生させるエラー発生モードとエラー発生アドレスとを記憶するレジスタを有しているのに対し、実施の形態3にかかるエラー発生回路60は、代替RAM30のアドレスの数と同じ個数のエラー発生モードの記憶領域を有するエラー設定RAM62を有している
図12に示すように、エラー発生回路60は、比較回路61とエラー設定RAM62とを有している。まず、エラー設定RAM62について説明する。エラー設定RAM62に設定されるエラー発生モード記憶領域と代替RAM30上のアドレスとの関係を図13に示す。図13に示すように、例えば代替RAM30のアドレスが"0000h"〜"FFFFh"まで設定されていた場合、エラー設定RAM62にはこのアドレスに対応して"0000h"〜"FFFFh"までの領域(アドレス)が設定される。そして、エラー設定RAM62の各アドレスによって指定される領域にエラー設定モード値が格納される。
一方、このエラー発生回路60の詳細なブロック図を図14に示す。図14に示すように、エラー設定RAM62には読出しアドレスと読出しクロックが入力される。エラー設定RAM62は、読出しクロックに同期して、読出しアドレスで指定されたエラー設定RAM62のアドレスのエラー発生モード値を出力する。また、比較回路61は、モード比較器611を有しており、エラー発生モード値とモード信号との値を比較する。そして、2つの値が一致していれば、エラー状態(例えば、ハイレベル)を示すエラー信号を出力する。
実施の形態3にかかる評価システム3の動作のタイミングチャートを図15に示し、評価システム3の動作について説明する。ここでは、エラー発生回路60によってエラー信号が生成される場合の動作について説明する。この場合、まず、タイミングT4でベリファイ処理モードを示すWriteErrCheckModeがモード信号として評価用マイコン10から出力される。続いて、タイミングT5でアドレス"1234h"を示す読出しアドレスが評価用マイコン10から出力され、タイミングT6で期待値レジスタ153に読出しデータの期待値"FF00h"が設定される。
次に、タイミングT7で、読出しクロックが評価用マイコン10から出力され、これに応じて読出しデータ"FF00h"が代替RAM30から出力される。代替RAM30から出力された読出しデータは、期待値比較器156で期待値と比較される。このとき、期待値と読出しデータとの値が一致しているため、ベリファイ結果はハイレベルとなる。一方、タイミングT7の読出しクロック立ち上がりに応じて、読出しアドレスによって指定されたエラー設定RAM62に記憶されたエラー発生モードが出力される。このエラー発生モード値は、モード信号と同じWriteErrCheckModeである。従って、エラー信号がタイミングT7で立ち上がる。つまり、エラー信号はハイレベルとなるため、AND回路157の出力は、ベリファイ結果に関わらず強制的にロウレベルとなる。これによって、エラーフラグ格納レジスタ152には"0"が格納される。評価用マイコン10は、このエラーフラグ値をタイミングT9のCPUクロックの立ち上がりで読み込むことで、読出しデータがエラーであることを認識する。
上記説明より、実施の形態3にかかる評価システム3によれば、エラー設定レジスタ23に代えて代替RAM30と同じアドレス数を有するエラー設定RAM62を用いることでも、実施の形態1と同様にエラーを再現することが可能である。また、エラー設定RAM62を用いることで、エラー発生アドレス設定レジスタへの値の設定が不要になるため、値設定にかかる手間を省略することが可能である。
また、実施の形態3の評価システム3では、エラー設定RAM62を装置の外部に接続することも可能である。この場合、代替RAM30の容量に応じてエラー設定RAM62の容量を設定できる。つまり、評価システム3に予め搭載された容量以上の代替RAM30に対して被評価プログラムを実行する場合であっても、外部に接続するエラー設定RAM62の容量を適宜選択することで、プログラムを実行することが可能である。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、エラー信号は、読出しクロックに同期したものではなくCPUクロックに同期したものであっても良い。また、実施の形態1、2では、エラー出力回路を用いて、読出しクロックに同期したエラー信号を出力したが、エラー出力回路を用いずに、比較回路の出力をエラー信号とすることも可能である。さらに、上記実施の形態では、フラッシュメモリの代わりに代替RAMを使用したが、本発明はメモリの種類に関係なく使用することが可能である。
1〜3 評価システム
10 評価用マイコン
11 CPU
12 内部RAM
13 周辺回路
14 条件設定レジスタ
15 メモリアクセス制御回路
16 エミュレータインタフェース
20、50、60 エラー発生回路
21、51 エラー出力回路
22、52、61 比較回路
23、53 エラー設定レジスタ
30 代替RAM
40 外部アクセス回路
54 アクセスカウンタ
62 エラー設定RAM
141 アドレス設定レジスタ
142 データ設定レジスタ
151 アクセス制御レジスタ
152 エラーフラグ格納レジスタ
153 期待値レジスタ
154 アクセスモード格納レジスタ
155 エラーフラグ生成回路
156 期待値比較器
157、211、223、511、526、542 AND回路
212 ラッチ回路
221 モード比較器
222 アドレス比較器
231 エラー発生モード設定レジスタ
232 エラー発生アドレス設定レジスタ
524 比較カウント値検出回路
525 アクセス回数比較器
531 アクセス回数設定レジスタ
541 カウンタ
611 モード比較器
Acomp アドレス比較結果
CNT カウント値
Mcomp モード比較結果
RefCNT 比較カウント値
10 評価用マイコン
11 CPU
12 内部RAM
13 周辺回路
14 条件設定レジスタ
15 メモリアクセス制御回路
16 エミュレータインタフェース
20、50、60 エラー発生回路
21、51 エラー出力回路
22、52、61 比較回路
23、53 エラー設定レジスタ
30 代替RAM
40 外部アクセス回路
54 アクセスカウンタ
62 エラー設定RAM
141 アドレス設定レジスタ
142 データ設定レジスタ
151 アクセス制御レジスタ
152 エラーフラグ格納レジスタ
153 期待値レジスタ
154 アクセスモード格納レジスタ
155 エラーフラグ生成回路
156 期待値比較器
157、211、223、511、526、542 AND回路
212 ラッチ回路
221 モード比較器
222 アドレス比較器
231 エラー発生モード設定レジスタ
232 エラー発生アドレス設定レジスタ
524 比較カウント値検出回路
525 アクセス回数比較器
531 アクセス回数設定レジスタ
541 カウンタ
611 モード比較器
Acomp アドレス比較結果
CNT カウント値
Mcomp モード比較結果
RefCNT 比較カウント値
Claims (20)
- 読出しクロックに基づき読出しデータを出力する記憶装置と、
前記記憶装置に対して、前記読出しアドレスを出力し、読出し処理を実行するマイクロコンピュータと、
前記記憶装置と前記マイクロコンピュータとの間で送受信されるモード信号及び前記読出しアドレスに基づきエラー信号を生成し、前記エラー信号を出力するエラー発生回路とを有し、
前記マイクロコンピュータは、前記エラー信号が前記読出しデータの誤りを示す状態において、前記記憶装置から受信した前記読出しデータに関わらず当該読出しデータを誤りと判定することを特徴とする評価システム。 - 前記エラー発生回路は、前記エラー信号を生成する前記記憶装置へのアクセス条件を設定するエラー設定レジスタと、前記エラー設定レジスタに設定された値と前記読出しアドレスの値あるいは前記モード信号の値とを比較する比較回路と、を有することを特徴とする請求項1に記載の評価システム。
- 前記エラー設定レジスタは、前記エラー信号を生成する前記モード信号の値を記憶するエラー発生モード設定レジスタと、前記エラー信号を生成する前記読出しアドレスの値を記憶するエラー発生アドレス設定レジスタとの組を少なくとも1つ以上有していることを特徴とする請求項2に記載の評価システム。
- 前記エラー発生回路は、前記比較回路の出力に応じて前記エラー信号を出力するエラー出力回路を有し、前記エラー出力回路は、前記読出しクロックに同期して前記エラー信号のエラー状態を設定し、前記比較回路の出力に基づき前記エラー信号のエラー状態を解除することを特徴とする請求項2に記載の評価システム。
- 前記マイクロコンピュータは、前記記憶装置から読出した前記読出しデータと当該読出しデータに対する期待値とを比較する期待値比較器を有し、前記エラー信号が前記読出しデータに誤りがない状態を示す場合に、前記期待値比較器の出力に基づいて、前記読出しデータの誤りを検出することを特徴とする請求項1に記載の評価システム。
- 前記記憶装置には、前記記憶装置を制御するプログラムを含む被評価プログラムが格納されることを特徴とする請求項1に記載の評価システム。
- 前記記憶装置は、被評価プログラムの検証においてのみ用いられる代替RAMであることを特徴とする請求項1に記載の評価システム。
- 被評価プログラムをマイクロコンピュータで実行し、前記被評価プログラムの動作を検証するプログラムの評価方法であって、
前記マイクロコンピュータから出力される読出しクロックに基づき記憶装置から読出しデータを受信し、
前記記憶装置と前記マイクロコンピュータとの間で送受信されるモード信号及び前記読出しアドレスに基づき生成されるエラー信号を出力し、
前記マイクロコンピュータは、前記エラー信号が前記読出しデータの誤りを示す状態において、前記記憶装置からの前記読出しデータに関わらず前記読出しデータを誤りと判定することを特徴とするプログラムの評価方法。 - 記憶装置と、
前記記憶装置に対して、読出しアドレスを出力し、読出し処理を実行するマイクロコンピュータとを備え、
前記マイクロコンピュータは、前記記憶装置から出力される読出しデータと該読出しデータの期待値とを比較して前記読出しデータの誤りを検出するベリファイ処理を行う評価システムであって、
前記読出しアドレスに基づいてエラー信号を生成するエラー発生回路を有し、
前記マイクロコンピュータは、前記エラー信号が第1の状態を示すときには、前記ベリファイ処理の結果に関わらず、前記読出しデータを誤りと判断することを特徴とする評価システム。 - 前記エラー発生回路は、前記エラー信号を生成する前記記憶装置へのアクセス条件を設定するエラー設定レジスタと、前記エラー設定レジスタに設定された値と前記読出しアドレスの値あるいは前記記憶装置へのアクセスモードを指定するモード信号の値とを比較する比較回路と、を有することを特徴とする請求項9に記載の評価システム。
- 前記マイクロコンピュータは、条件設定レジスタを有し、前記条件設定レジスタに設定された値に基づいて前記エラー設定レジスタの値を設定することを特徴とする請求項10に記載の評価システム。
- 前記エラー設定レジスタは、前記エラー信号を生成する前記モード信号の値を記憶するエラー発生モード設定レジスタと、前記エラー信号を生成する前記読出しアドレスの値を記憶するエラー発生アドレス設定レジスタとの組を少なくとも1つ以上有していることを特徴とする請求項10又は11に記載の評価システム。
- 前記エラー発生回路は、前記エラー発生モード設定レジスタの値と前記マイクロコンピュータが出力する前記モード信号とを比較するモード比較器と、前記エラー発生アドレス設定レジスタに値と前記読出しアドレスとを比較するアドレス比較器と、を有することを特徴とする請求項12に記載の評価システム。
- 前記エラー発生回路は、前記モード比較器と前記アドレス比較器との出力に基づきエラー信号を生成するエラー信号出力回路を有することを特徴とする請求項13に記載の評価システム。
- 前記エラー発生回路は、前記エラー設定レジスタに設定された値によって指定される条件へのアクセス回数をカウントするアクセスカウンタを有し、前記エラー発生回路は、前記アクセス回数が所定の値に達した場合に前記エラー信号を第2の状態とすることを特徴とする請求項10に記載の評価システム。
- 前記エラー発生回路は、前記読出しアドレスに対応したアドレスのそれぞれに前記エラー信号を生成する前記記憶装置へのアクセスモードを指定するモード信号の値が記憶されるエラー設定RAMを有することを特徴とする請求項9に記載の評価システム。
- 前記エラー設定RAMは、前記記憶装置のアドレスと同数のアドレスを有することを特徴とする請求項16に記載の評価システム。
- 前記記憶装置には、被評価プログラムが格納され、前記マイクロコンピュータは、前記被評価プログラムを読出して実行することにより、前記記憶装置に対する読出し処理と前記ベリファイ処理を行うことを特徴とする請求項9に記載の評価システム。
- 前記記憶装置は、被評価プログラムの検証においてのみ用いられる代替RAMであることを特徴とする請求項9に記載の評価システム。
- マイクロコンピュータは、エラーアドレスを設定し、
記憶装置に対して前記マイクロコンピュータから出力される読出しアドレスと前記エラーアドレスとを比較し、
前記比較の結果、前記読出しアドレスと前記エラーアドレスとが一致する場合には、エラー信号を生成し、
前記マイクロコンピュータは、前記エラー信号に基づいて、前記記憶装置の前記読出しアドレスから読出した読出しデータをエラーと判断することを特徴とするエラー発生方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006179625A JP2008009721A (ja) | 2006-06-29 | 2006-06-29 | 評価システム及びその評価方法 |
US11/819,394 US20080016415A1 (en) | 2006-06-29 | 2007-06-27 | Evaluation system and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006179625A JP2008009721A (ja) | 2006-06-29 | 2006-06-29 | 評価システム及びその評価方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008009721A true JP2008009721A (ja) | 2008-01-17 |
Family
ID=38950657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006179625A Pending JP2008009721A (ja) | 2006-06-29 | 2006-06-29 | 評価システム及びその評価方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20080016415A1 (ja) |
JP (1) | JP2008009721A (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8495583B2 (en) | 2009-09-11 | 2013-07-23 | International Business Machines Corporation | System and method to determine defect risks in software solutions |
US8893086B2 (en) | 2009-09-11 | 2014-11-18 | International Business Machines Corporation | System and method for resource modeling and simulation in test planning |
US8578341B2 (en) | 2009-09-11 | 2013-11-05 | International Business Machines Corporation | System and method to map defect reduction data to organizational maturity profiles for defect projection modeling |
US8527955B2 (en) | 2009-09-11 | 2013-09-03 | International Business Machines Corporation | System and method to classify automated code inspection services defect output for defect analysis |
US10235269B2 (en) * | 2009-09-11 | 2019-03-19 | International Business Machines Corporation | System and method to produce business case metrics based on defect analysis starter (DAS) results |
US8539438B2 (en) | 2009-09-11 | 2013-09-17 | International Business Machines Corporation | System and method for efficient creation and reconciliation of macro and micro level test plans |
CN101854259B (zh) * | 2010-06-04 | 2014-03-19 | 中兴通讯股份有限公司 | 一种数据包的计数方法及系统 |
US10389379B2 (en) * | 2017-05-12 | 2019-08-20 | Qualcomm Incorporated | Error correcting code testing |
JP6981920B2 (ja) * | 2018-05-25 | 2021-12-17 | ルネサスエレクトロニクス株式会社 | 半導体装置、およびデバッグ方法 |
CN110046105B (zh) * | 2019-04-26 | 2021-10-22 | 中国科学院微电子研究所 | 一种3D NAND Flash |
KR102766657B1 (ko) | 2019-05-31 | 2025-02-12 | 에스케이하이닉스 주식회사 | 반도체장치 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0535611A (ja) * | 1991-07-29 | 1993-02-12 | Nec Corp | 情報処理装置 |
JPH09244915A (ja) * | 1996-03-06 | 1997-09-19 | Hitachi Ltd | マイクロコンピュータ及びデバッグ支援装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4327408A (en) * | 1979-04-17 | 1982-04-27 | Data General Corporation | Controller device with diagnostic capability for use in interfacing a central processing unit with a peripheral storage device |
US5872910A (en) * | 1996-12-27 | 1999-02-16 | Unisys Corporation | Parity-error injection system for an instruction processor |
US5958072A (en) * | 1997-01-13 | 1999-09-28 | Hewlett-Packard Company | Computer-system processor-to-memory-bus interface having repeating-test-event generation hardware |
US6948100B1 (en) * | 1999-02-24 | 2005-09-20 | Hitachi, Ltd. | Computer system and method of handling trouble of computer system |
US6886116B1 (en) * | 2001-07-26 | 2005-04-26 | Emc Corporation | Data storage system adapted to validate error detection logic used in such system |
US7234081B2 (en) * | 2004-02-04 | 2007-06-19 | Hewlett-Packard Development Company, L.P. | Memory module with testing logic |
-
2006
- 2006-06-29 JP JP2006179625A patent/JP2008009721A/ja active Pending
-
2007
- 2007-06-27 US US11/819,394 patent/US20080016415A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0535611A (ja) * | 1991-07-29 | 1993-02-12 | Nec Corp | 情報処理装置 |
JPH09244915A (ja) * | 1996-03-06 | 1997-09-19 | Hitachi Ltd | マイクロコンピュータ及びデバッグ支援装置 |
Also Published As
Publication number | Publication date |
---|---|
US20080016415A1 (en) | 2008-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008009721A (ja) | 評価システム及びその評価方法 | |
US8176281B2 (en) | Controlling access to an embedded memory of a microcontroller | |
CN105320553A (zh) | 一种基于国产处理器平台更新网卡固件的方法及系统 | |
CN113377586A (zh) | 一种服务器自动化检测方法、装置及存储介质 | |
US20130080751A1 (en) | Method and device for updating bios program for computer system | |
US20070067520A1 (en) | Hardware-assisted device configuration detection | |
CN115495275A (zh) | 一种存储系统及其控制方法 | |
US20050060690A1 (en) | Microprocessor system with software emulation processed by auxiliary hardware | |
US20030084232A1 (en) | Device and method capable of changing codes of micro-controller | |
JP2016038599A (ja) | マイクロコンピュータ及びマイクロコンピュータシステム | |
JP2004234720A (ja) | 半導体装置およびその状態遷移チェック方法 | |
US20010052114A1 (en) | Data processing apparatus | |
CN108334351A (zh) | 一种修改启动顺序的方法及装置 | |
CN100445949C (zh) | 只读存储器内建程序代码内容的修改方法 | |
KR100580071B1 (ko) | 메모리 오류 검출방법 | |
JP2008140124A (ja) | データ処理装置 | |
US20010049794A1 (en) | Write protection software for programmable chip | |
CN112905235B (zh) | 一种mcu程序执行方法和芯片 | |
CN112912958A (zh) | 使用内置自测控制器测试只读存储器 | |
JP2007058450A (ja) | 半導体集積回路 | |
TWI783176B (zh) | 用來管理支援資料儲存的安全程式庫的方法與電子裝置 | |
JP2003099333A (ja) | フラッシュメモリ管理システム | |
JP2008234358A (ja) | 記憶装置、情報処理装置及び不正書込検出方法 | |
KR20080044652A (ko) | Cpu에서의 스택을 이용한 디버깅 방법 | |
CN117724938A (zh) | 存储器的控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090515 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110119 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110830 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120110 |