(57)【特許請求の範囲】
【請求項１】
記憶媒体に書き込まれた複製データがマスターデータと同一か否かを照合するための記憶媒体の照合装置であって、
前記マスターデータに基づいて予め算出された基準となる第１の合計値を設定する基準値設定手段、
前記記憶媒体から複製データを読み出して、被照合データとして出力する読出手段、
前記読出手段の被照合データの読み出しに関連して、予め定める規則性に従って変化するカウントデータを発生するカウント手段、
前記被照合データの各ビットデータと前記カウント手段によって発生されたカウントデータとのそれぞれのビット位置に対応するデータの排他的論理和を求める排他的論理和算出手段、
前記排他的論理和算出手段によって求められた全ビットの論理値を合計した第２の合計値を求める加算手段、および前記基準値設定手段によって設定された第１の合計値と、前記加算手段によって求められた第２の合計値とを比較照合することにより、前記記憶媒体の複製データが適正に書き込まれたか否かを判定する判定手段を備え、
前記カウント手段は、前記読出手段に含まれるアドレスカウンタの読出アドレスの歩進に同期しかつ被照合データのビット数で表現できる最大数よりも小さな一定数になる毎にリセットされるカウンタによって構成される、記憶媒体の照合装置。
【請求項２】
前記記憶媒体は、複製データを記憶保持する不揮発性半導体メモリであり、
前記読出手段は、前記半導体メモリの読出アドレスを指定するアドレスカウンタと、アドレスカウンタのアドレス値を歩進させるためのクロック信号を発生するクロック発振器と、半導体メモリから読み出された被照合データを前記排他的論理和手段に与える接続手段とを含む、請求項１に記載の記憶媒体の照合装置。
【請求項３】
前記カウント手段は、前記アドレスカウンタで兼用されることを特徴とする、請求項２に記載の記憶媒体の照合装置。
【請求項４】
前記排他的論理和算出手段は、被照合データの読み出しに関連するアドレスデータのビット数が被照合データのビット数より大きいとき、アドレスデータのうち被照合データのビット数に等しい下位のアドレスデータと被照合データとの排他的論理和を算出することを特徴とする、請求項３に記載の記憶媒体の照合装置。
【請求項５】
前記リセットされる一定値は、被照合データのビット数で表現できる最大の素数から１減じた値である、請求項１に記載の記憶媒体の照合装置。
【請求項６】
前記カウント手段は、カウント値を保持する第１のレジスタであり、
前記基準値設定手段は、基準値を設定記憶する第２のレジスタであり、
前記判定手段は、照合用プログラムに基づいて演算処理する処理手段を含み、
前記処理手段は、前記加算手段によって求められた第２の合計値と、前記第２のレジスタに記憶されている基準値とを照合する、請求項１に記載の記憶媒体の照合装置。
【０００１】
【発明の詳細な説明】
【産業上の利用分野】
この発明は記憶媒体の照合装置に関し、特に例えば半導体メモリやＣＤ−ＲＯＭのような不揮発性記憶媒体又は固定的記憶媒体に書き込まれた複製データがマスタデータと同一か否かを比較照合するために使用される記憶媒体の照合装置に関する。
【０００２】
【従来技術】
マスターデータを半導体メモリやＣＤ−ＲＯＭ等の記憶媒体に複製した場合、正しいデータが書き込まれたかどうかを照合する必要がある。従来の照合方法としては、ベリファイ方法、サムチェック方法、ＣＲＣ(Cyclic Redundancy Check)方法等が知られている。
ベリファイ方法は、マスターデータと複製データとの間でバイト単位で全ビットを比較照合する方法である。サムチェック方法は、各アドレスのデータを順次加算して全データの総和を求め、全データの総和がマスターデータの総和と一致するか否かを比較照合することにより、書き込まれた複製データの適否を判断する方法である。ＣＲＣ方法は、予め定める量のデータ単位毎にチェック用のデータ（チェックビット）を付加しておき、データ単位毎に比較して誤りを検出する方法である。
【０００３】
【発明が解決しようとする課題】
上述の照合方法は、それぞれ以下の問題点を含んでいる。すなわち、ベリファイ方法は、最も確実で正確に判断できる反面、検査・照合のためには各バイト毎に比較しなければならず、照合のための時間が長くなり、記憶媒体の容量が増大する程に検査時間も長くなる。サムチェック方法は、マスターデータの書き込まれたフロッピーディスクを半導体メーカ（又はＣＤ−ＲＯＭメーカ）に提供して、マスターデータを複製した半導体メモリ（又はＣＤ−ＲＯＭ）を製造する場合に、データ量が大きいと、フロッピーディスクが複数枚に分割されるときがあり、フロッピーディスクの順番の間違いによってデータの順番を誤って入れ替えられた複製上の誤りがあっても、チェックサムさえ同一であれば誤りを検出できないという問題点がある。また、半導体メモリの内部はいくつかのメモリブロックに分けて形成されるが、メモリセレクタの不良によりメモリブロック単位でデータが入れ替わる場合もあり、その場合にチェックサムが同じであれば複製誤りを検出できない。ＣＲＣ方法は、誤り検出能力が高い反面、誤り検出のための計算処理の負担がサムチェックに比べて１０倍程度であり、照合に時間がかかり、また照合のための回路構成が複雑になる。
【０００４】
それゆえに、この発明の主たる目的は、検出精度が高く、比較照合のための時間を短縮でき、データの順番の入れ替えによる誤りも検出できる、記憶媒体の照合装置を提供することである。
【０００５】
【課題を解決するための手段】
この発明は、記憶媒体に書き込まれた複製データがマスターデータと同一か否かを照合するための記憶媒体の照合装置であって、マスターデータに基づいて予め算出された基準となる第１の合計値を設定する基準値設定手段と、記憶媒体から複製データを読み出して被照合データとして出力する読出手段と、読出手段の被照合データの読み出しに関連しかつ予め定める規則性に従って変化するカウントデータを発生するカウント手段と、被照合データの各ビットデータとカウント手段によって発生されたカウントデータとのそれぞれのビット位置に対応するデータの排他的論理和を求める排他的論理和算出手段と、排他的論理和算出手段によって求められた全ビットの論理値を合計した第２の合計値を求める加算手段と、基準値設定手段によって設定された第１の合計値と加算手段によって求められた第２の合計値とを比較照合して記憶媒体の複製データが適正に書き込まれたか否かを判定する判定手段を備える。
【０００６】
【作用】
予め、マスターデータに基づく基準となる第１の合計値を算出し、それを基準値設定手段に設定する。この第１の合計値は、この発明の照合装置と同じ原理（マスターデータとカウントデータの対応ビットの排他的論理和）によって算出しておく。
次に、照合対象となる半導体メモリ又はＣＤ−ＲＯＭ等の記憶媒体を読出（又は読取）手段にセットして、照合動作をスタートさせる。排他的論理和算出手段は、読出手段によって記憶媒体から読み出された被照合データと、カウント手段によって生成されたカウントデータとのそれぞれの対応ビットの排他的論理和を求める。このとき、カウント手段は、読出手段における被照合データの読み出しに同期して、その計数値を予め定める規則性に従って変化させる。加算手段は、全被照合データについての排他的論理和の合計値（第２の合計値）を算出する。判定手段は、第１の合計値と第２の合計値とを比較照合して、記憶媒体の複製データが適正に書き込まれたか否かを判定する。
【０００７】
【発明の効果】
この発明によれば、単なるデータの総和ではなく、データとその読み出しに関連するカウントデータとの排他的論理和の総和を利用して比較照合しているため、データの順番の入れ替えによる誤りも検出できる。また、照合に必要な計算のための負担が従来技術に比べて小さいので、照合時間を短縮でき、さらに、照合装置の回路構成を簡単にすることができる。
【０００８】
【発明の実施の形態】
図１はこの発明の一実施例の記憶媒体の照合装置のブロック図である。なお，本実施例では、マスターデータの記憶媒体および照合対象の記憶媒体がＲＯＭであり、被照合データのビット数が１６ビットの場合を例として説明する。
図１において、記憶媒体の照合装置１０は、ＲＯＭ３０から被照合データを読み出すための読出回路１１と、排他的論理和回路１２と、累算器１３と、ゲート回路１４と、終了検出回路１５と、第１の合計値を記憶するためのレジスタ１６（基準値設定手段）と、照合判定のための比較器１７と、ＣＰＵ１８と、表示装置１９と、入力用キーボード２０と、制御プログラムが記憶されたＲＯＭ２１を含んで構成される。
【０００９】
具体的には、読出回路１１は、クロック発振器１１１と、アドレスカウンタ１１２と、ＲＯＭを接続するコネクタ１１３と、遅延回路１１４を含む。排他的論理和回路１２は、ＲＯＭの出力端子数に相当する数の排他的論理和ゲートＧ０〜Ｇ１５を含む。各排他的論理和ゲートＧ０〜Ｇ１５には、一方入力として読出回路１１によって読み出されたデータＤ０〜Ｄ１５が与えられ、他方入力としてアドレスカウンタ１１２の計数値（アドレスデータ）の下位１６ビットのデータＡ０〜Ａ１５が与えられる。各排他的論理和ゲートＧ０〜Ｇ１５は、一方入力データＤ０〜Ｄ１５と他方入力データＡ０〜Ａ１５のそれぞれ対応するビットの排他的論理和を求め、不一致のとき論理「1 」、一致したとき論理「０」を出力する。累算器１３は、遅延回路１１４によって必要な時間だけ遅延されたクロック信号が与えられる毎に、直前の累算値と排他的論理和回路１２からの出力値とを加算して、累算値を求める。終了検出回路１５は、ＲＯＭの最終アドレス値を記憶するためのレジスタ１５１と、比較器１５２と、遅延回路１５３とを含む。この遅延回路１５３は、比較器１５２においてＲＯＭの全データの読み出し終了を検出した後、ＣＰＵにＥｎｄ信号を送る前に、データ読み出し以降の処理（排他的論理和回路１２，累算器１３，ゲート回路１４および比較器１７による処理）に必要な時間を待つための回路である。ＲＯＭ２１は、予め第１の合計値を算出するためのプログラムおよび照合プログラムを記憶している。
この照合装置１０は、マスターデータに基づく基準となる第１の合計値を算出するモードと照合モードを有す。そのため、ゲート回路１４はモードによって出力を切替えるものであって、第１の合計値算出モード時でありかつＥｎｄ信号が与えられとき、累算器１３の累算結果をＣＰＵ１８に与え、照合モード時でありかつＥｎｄ信号が与えられたとき、累算結果を比較器１７に与えるように切り替える。以下の説明では、第１の合計値算出モードを「０」とし、照合モードを
「１」とする。
なお、マスターデータがフロッピーディスクに書き込まれている場合は、フロッピーディスク読取装置２２ａおよびＲＡＭ２３が設けられ、ＲＡＭ２３の記憶データに基づいて第１の合計値の算出が行われる。また、被照合データがＣＤ−ＲＯＭに書き込まれている場合は、ＣＤ−ＲＯＭ読取装置２２ｂおよびＲＯＭ３０に代えてＲＡＭ２３が設けられ、ＲＡＭ２３の記憶データに基づいて第２の合計値の算出が行われる。ＣＤ−ＲＯＭの場合は、ＲＡＭ２３の記憶容量単位でデータを分割して、順次各単位ごとに照合作業を行う。
【００１０】
図２は図１の実施例におけるＲＯＭ２１に記憶された第１の合計値算出プログラムのフローチャートである（但し、ステップ１２ないしステップ１４におけるかっこ内の処理は、後述の図６の実施例の場合の説明であるので、本実施例では除く）。
次に、図１および図２を参照して、照合作業に先立ち、第１の合計値の算出を行う場合を説明する。具体的には、操作者はマスターデータの記憶されたＲＯＭをコネクタ１１３に装着して、図２に示す第１の合計値算出プログラムを実行する。まず、ステップ１１において、モード切替信号「０」がゲート回路１４に与えられるが、この状態ではＥｎｄ信号が与えられていないため、ゲート回路１４は何ら出力を導出しない。そして、ステップ１２において、ＲＯＭの最終アドレス値の入力指示が行われる。ステップ１３において、その入力値がレジスタ１５１にロードされる。ＣＰＵ１８は、ステップ１４においてアドレスカウンタ１１２と累算器１３をリセットした後、ステップ１５において、終了検出回路１５からのＥｎｄ信号（第１の合計値の算出終了の信号）が与えられるのを待つ。
【００１１】
第１の合計値は、ステップ１４においてアドレスカウンタ１１２と累算器１３がリセットされた後、読出回路１１，排他的論理和回路１２および累算器１３から成るハード回路の以下のような動作によって算出される。すなわち、読出回路１１のアドレスカウンタ１１２は、クロック発振器１１１からクロックが与えられる毎にその計数値を歩進して、その計数値をマスターデータの記憶されたＲＯＭに読出アドレスとして与え、これに応じて、ＲＯＭから指定されたアドレスに対応するデータＤ０〜Ｄ１５が読出され、このデータＤ０〜Ｄ１５が排他的論理和回路１２の排他的論理和（以下ＥＸＯＲ）ゲートＧ０〜Ｇ１５の一方入力として与えられる。これと同時に、アドレスカウンタ１１２の計数値のアドレスデータ（下位１６ビット）Ａ０〜Ａ１５が、ＥＸＯＲゲートの他方入力として与えられる。各ＥＸＯＲゲートは、一方入力Ｄ０〜Ｄ１５と他方入力Ａ０〜Ａ１５の対応するビットの２入力が不一致のとき論理「１」を出力し、 ２入力が一致したとき論理「０」を出力する。累算器１３は、クロック信号が与えられるごとにＥＸＯＲゲートＧ０〜Ｇ１５からの出力を累算する。マスターデータの記憶されたＲＯＭの全番地について上記動作が繰り返されることによって、累算器１３により第１の合計値が算出される。
【００１２】
終了検出回路１５は、レジスタ１５１に記憶されているＲＯＭの最終アドレス値とアドレスカウンタ１１２の計数値（アドレスデータ）を常時比較し、ＲＯＭの全データの読み出し終了を検出する。この読出終了検出信号が、遅延回路１５３によって一定時間遅延されて、Ｅｎｄ信号としてＣＰＵ１８およびゲート回路１４に与えられると、ゲート回路１４は累算器１３によって求められた第１の合計値をＣＰＵ１８へ与える。
そして、ステップ１５において、終了検出回路１５からのＥｎｄ信号があったことが判断される。ステップ１６において、ＣＰＵ１８は、ゲート回路１４を介して与えられる第１の合計値を読み込み、ステップ１７において、第１の合計値がレジスタ１６にロードされるとともに表示装置１９に表示される。このようにして、第１の合計値算出プログラムの処理が終了する。
なお、第１の合計値の算出モードにおいて、マスターデータがフロッピーディスクに書き込まれている場合は、まず初めに、フロッピーディスク読取装置２２ａによってフロッピーディスクから全データが読み出されて、ＣＰＵ１８によってＲＡＭ２３に転送され、ＲＡＭ２３から読み出されたデータＤ０〜Ｄ１５が排他的論理和回路１２に与えられることになる。
【００１３】
図３は図１の実施例におけるＲＯＭ２１に記憶された照合プログラムのフローチャートである（但し、ステップ２２におけるかっこ内の処理は、後述の図６の実施例の場合の説明であるので、本実施例では除く）。
次に、照合モードの動作を説明する。なお、照合動作の開始に先立ち、レジスタ１６には第１の合計値が、レジスタ１５１にはＲＯＭの最終アドレス値が記憶されているものとする。
図３に示す照合プログラムの開始に先立ち、照合対象のＲＯＭ３０をコネクタ１１３に装着する。ステップ２１において、モード切替信号「１」がゲート回路１４に与えられるが、この状態ではＥｎｄ信号が与えられていないので、ゲート回路１４は何ら出力を導出しない。ステップ２２において、アドレスカウンタ１１２と累算器１３がリセットされる。ステップ２３において、終了検出回路１５からＥｎｄ信号（照合終了の検出信号）が与えられるのを待つ。
【００１４】
この待機状態において、前述の第１の合計値の算出と同様にして、読出回路１１，排他的論理和回路１２および累算器１３から成るハード回路によって第２の合計値の算出動作が行われる。すなわち、ＲＯＭ３０から読み出された被照合データＤ０〜Ｄ１５と、アドレスカウンタ１１２の計数値であるアドレスデータＡ０〜Ａ１５のそれぞれ対応するビットが排他的論理和回路１２のＥＸＯＲゲートＧ０〜Ｇ１５に入力されて、各ゲートにおいて排他的論理和値が算出される。ＥＸＯＲゲートＧ０〜Ｇ１５によって求められた各番地毎の排他的論理和が累算器１３によって累算される。この動作がＲＯＭ３０の全番地について繰り返されることによって、第２の合計値が算出される。
【００１５】
一方、アドレスカウンタ１１２の計数値（アドレスデータ）が、レジスタ１５１に記憶されているＲＯＭの最終アドレス値になると、終了検出回路１５はＲＯＭ３０の全データの読み出し終了を検出し、Ｅｎｄ信号を発生する。Ｅｎｄ信号に応じて、ゲート回路１４が累算器１３で算出された合計値を比較器１７に与える。比較器１７は、累算値（第２の合計値）とレジスタ１６に記憶されている第１の合計値を比較し、その比較結果を照合結果としてＣＰＵ１８に与える。
これに応じて、ステップ２３においてＥｎｄ信号のあったことが検出されて、ステップ２４へ進む。ステップ２４において、照合結果が読み込まれ、ステップ２５において、照合結果が判断される。照合結果が一致した場合は、ステップ２６において表示装置１９に“合格”と表示される。不一致の場合は、ステップ２７において表示装置１９に“不合格”と表示される。
なお、照合モードにおいて、被照合データがＣＤ−ＲＯＭに書き込まれている場合は、まず初めに、ＣＤ−ＲＯＭ読取装置２２ｂによってＣＤ−ＲＯＭからデータが読み出されて、ＣＰＵ１８によってＲＡＭ２３に転送され、ＲＡＭ２３から読み出されたデータＤ０〜Ｄ１５が排他的論理和回路１２に与えられることになる。ＣＤ−ＲＯＭの場合は、ＲＡＭ２３の記憶容量単位でデータを分割して、順次各単位ごとに照合作業を行う。
【００１６】
次に、図１の実施例を採用した場合に、データの順番の入れ替えによる誤りが検出できる理由を説明する。例えば、図４のようなマスターデータ（ビット数は４ビット）をＲＯＭに複製した場合に、０番地のデータと４番地のデータが入れ替わるという誤りに起因して、図５のような複製データとなったと仮定する。この場合は単にデータの順番が入れ替わっただけなので、サムチェック方法では誤りを検出できない。これに対して、図１の実施例の照合装置によれば、図４に示すように第１の合計値は「１１０１０１」となり、第２の合計値は図５に示すように「１１１１０１」となるので、合計値の不一致が生じ、誤りを検出できる。
【００１７】
図６はこの発明の他の実施例の記憶媒体の照合装置のブロック図である。なお、本実施例も、マスターデータの記憶媒体および照合対象の記憶媒体がＲＯＭであり、被照合データのビット数が１６ビットの場合を例として説明する。
図６において、この実施例の記憶媒体の照合装置４０が、図１の実施例と異なる点は、排他的論理和回路１２に与えるカウントデータのために、カウンタ回路２４を追加したことである。カウンタ回路２４は、カウンタ２４１と、比較器２４２と、カウントデータの最大値を記憶するためのレジスタ２４３を含む。カウンタ２４１の計数値Ｃ０〜Ｃ１５は、アドレスカウンタ１１２の計数値を示すデータＡ０〜Ａ１５に代えて、排他的論理和回路１２のＥＸＯＲゲートＧ０〜Ｇ１５に与えられる。
【００１８】
カウンタ回路２４の動作は次の通りである。カウンタ２４１は、クロック発振器１１１のクロック信号（Ｃｌ）によって歩進する。比較器２４２は、カウンタ２４１の値がレジスタ２４３に予め設定されている値と同じになったとき、リセット信号を発生してカウンタ２４１に与える。ここで、レジスタ２４３に設定される値（すなわちカウンタ２４１のカウントデータの最大値）は、被照合データのビット数で表現できる最大の素数から１減じた値を選ぶとよい（理由は後述する）。ビット数が１６ビットの場合、カウントデータの最大値は６５５２０（１６ビットで表現できる最大の素数６５５２１から１減じた値）である。カウントデータの最大値をこのように決めることによって、ＲＯＭ３０が容量の小さな複数のメモリブロックによって構成されていても、メモリブロック毎に異なるカウント値が与えられることになるので、メモリブロックの順序を入れ間違った場合に第１の合計値と第２の合計値が異なった値となり、誤りを検出できる。
【００１９】
図６の実施例の照合装置４０は、図１の実施例の照合装置と同様にマスターデータに基づく基準となる第１の合計値を算出するモードと、照合モードの２つのモードがあり、照合モードに先立って、第１の合計値の算出が行われる。具体的には、マスターデータの記憶されたＲＯＭをコネクタ１１３に装着して、図２に示す第１の合計値算出プログラムが実行される（なお、本実施例の場合は、ステップ１２ないしステップ１４における動作としてかっこ内に記載の処理も実行される）。
第１の合計値の算出は、ステップ１４においてアドレスカウンタ１１２，累算器１３およびカウンタ２４１がリセットされた後、読出回路１１，排他的論理和回路１２，累算器１３およびカウンタ回路２４のハード回路によって行われる。この場合、排他的論理和回路１２のＥＸＯＲゲートＧ０〜Ｇ１５の他方入力として与えられるカウントデータは、カウンタ２４１の計数値Ｃ０〜Ｃ１５である。カウンタ２４１は、クロック信号が与えられる毎にその計数値を歩進し、比較器２４２からリセット信号が与えられると計数値をリセットすることにより、０からレジスタ２４３に設定された最大値までの値を繰り返して計数する。この状態において、各ＥＸＯＲゲートは、一方入力のＤ０〜Ｄ１５と他方入力Ｃ０〜Ｃ１５の対応するビットの排他的論理和を求め、累算器１３によって第１の合計値が算出される。
【００２０】
次に照合モードを実行する。具体的には、照合対象のＲＯＭ３０をコネクタ１１３に装着して、図３に示す照合プログラムが実行される（なお、本実施例の場合は、ステップ２２における動作としてかっこ内に記載の処理も実行される）。照合の処理は、図１の実施例と同様であるので説明を省略する。
【００２１】
図６の実施例を採用した場合、図１の実施例に比べて、データの順番の入れ替えに対する誤り検出力が高い。マスターデータを複製する場合、次のような誤りが起こりやすい。すなわち、マスターデータを複数のフロッピーディスクに分けて書き込み、それを半導体メーカに提供し、半導体メーカがフロッピーディスクの順序を間違ってＲＯＭに複製する場合がある。また、大容量の半導体メモリは内部においていくつかのメモリブロックに分かれているが、メモリセレクタの不良によりメモリブロック単位でデータが入れ替わる場合がある。これらの場合、図１の実施例では複製誤りを検出できない場合もあるが、図６の実施例によれば、以下に説明する理由によって複製誤りを検出できる。
【００２２】
図７は、照合対象のＲＯＭを構成する各メモリブロックとカウントデータとの対応関係を示したものである。“図１の実施例”の部分には図１の実施例の場合のカウントデータが、“図６の実施例”の部分には図６の実施例の場合のカウントデータが示されている。なお、この例において、一つのメモリブロックは１２８バイトであり、１データのビット数は８ビットの場合を示す。ＲＯＭを照合しようとするとき、図１の実施例では、０番目のブロック，２番目のブロック，４番目のブロック…，２５０番目のブロック，…についてメモリブロック内の同じアドレスに対して同じカウント値が与えられるので、これらのメモリブロックが入れ替わった場合に第１の合計値と第２の合計値は同じとなって、誤りを検出できない。同様に、１番目のブロック，３番目のブロック，５番目のブロック…，２４９番目のブロック，…が入れ替わった場合も誤りを検出できない。
これに対して、図６の実施例では、カウントデータの最大値は２５０（８ビットで表現できる最大の素数２５１から１減じた値）であるが、図７から明らかなように、メモリブロック内の同じアドレスに対して同じカウント値が与えられるのは、ブロック番号０に対してブロック番号２５１で初めて現れる。このように、図６の実施例は、図１の実施例と比較して入れ替わりの誤りを検出できないメモリブロックの組み合わせが少ない。
一般的に、ＲＯＭの照合作業者は照合対象のＲＯＭを構成しているメモリブロックの大きさを知らない場合が多いので、カウントデータの最大値を被照合データのビット数で表現できる最大の素数から１減じた値とすることによって、入れ替わりの誤りを検出できないメモリブロックの組み合わせを最も少なくすることができる。
【００２３】
なお、マスターデータがフロッピーディスクに書き込まれている場合や、被照合データがＣＤ−ＲＯＭに書き込まれている場合は、図１の実施例において説明したのと同様に、まず初めに、フロッピーディスク読取装置２２ａまたはＣＤ−ＲＯＭ読取装置２２ｂによってフロッピーディスクまたはＣＤ−ＲＯＭからデータが読み出されて、ＣＰＵ１８によってＲＡＭ２３に転送され、ＲＡＭ２３から読み出されたデータＤ０〜Ｄ１５が排他的論理和回路１２に与えられることになる。ＣＤ−ＲＯＭの場合は、ＲＡＭ２３の記憶容量単位でデータを分割して、順次各単位ごとに照合作業を行う。
【００２４】
図８はこの発明のさらに他の実施例の記憶媒体の照合装置のブロック図である。この実施例は、図６の実施例の照合装置４０と同じ処理をソフトウェアで実現した実施例である。なお、本実施例も、マスターデータの記憶媒体および照合対象の記憶媒体がＲＯＭであり、被照合データのビット数が１６ビットの場合を例として説明する。
図８において、記憶媒体の照合装置５０は、コネクタ５１と、表示装置５２と、ＣＰＵ５３と、入力用キーボード５４と、制御プログラムが記憶されたＲＯＭ５５と、ＲＡＭ５６を含んで構成される。ＲＯＭ５５は、予め第１の合計値算出プログラムおよび照合プログラムを記憶している。
図９は、図８の実施例におけるＲＡＭ５６内のメモリマップである。
【００２５】
図１０は、ＲＯＭ５５に記憶された第１の合計値算出プログラムのフローチャートである。
次に、図８ないし図１０を参照して、 第１の合計値の算出を行う場合を説明する。
具体的には、操作者がマスターデータの記憶されたＲＯＭをコネクタ５１に装着して、図１０に示す第１の合計値を算出するプログラムを実行する。まず、ステップ３１において、各レジスタおよびカウンタの設定またはリセットが行われる。具体的には、ＲＯＭの最終アドレス値およびカウントデータの最大値の入力が操作者に要求され、入力された値がそれぞれのレジスタに設定される。さらに、第１の合計値レジスタとカウントデータ用カウンタとアドレスカウンタがリセットされる。ステップ３２において、アドレスカウンタの計数値に基づいてＲＯＭからデータが読み出され、ステップ３３において、読み出されたデータとカウントデータから排他的論理和が算出されて第１の合計値が累算される。そして、ステップ３４において、第１の合計値の算出終了が判定される。ここで、第１の合計値の算出が未終了と判定された場合は、ステップ３５において、アドレスカウンタが歩進され、ステップ３６において、カウントデータが更新される。ステップ３６においては、まず、ステップ３６１において、カウントデータが歩進される。そして、ステップ３６２において、カウントデータの最大値判定がされる。ここで、カウントデータがステップ３１において操作者が入力したカウントデータの最大値より大きい場合は、ステップ３６３においてカウントデータが０にされて、ステップ３２に戻る。ステップ３６２の判定において、カウントデータが最大値以下の場合は、そのままステップ３２に戻る。
ステップ３４の判定において、第１の合計値の算出が終了と判定された場合は、ステップ３７に進み、算出された第１の合計値が表示装置５２に表示される。
【００２６】
図１１は、ＲＯＭ５５に記憶された照合プログラムのフローチャートである。図８，図９および図１１を参照して、照合を行う場合を説明する。なお、照合を開始する時点において、第１の合計値レジスタ，最終アドレス値レジスタ，カウントデータ最大値レジスタにはそれぞれの値が記憶されている。
具体的には、照合対象のＲＯＭ３０をコネクタ５１に装着して、図１１に示す照合プログラムを実行する。まず、ステップ４１において、各レジスタおよびカウンタのリセットが行われる。具体的には、第２の合計値レジスタとカウントデータ用カウンタとアドレスカウンタがリセットされる。ステップ４２において、アドレスカウンタの計数値に基づいてＲＯＭ３０から被照合データが読み出される。ステップ４３において、読み出された被照合データとカウントデータから排他的論理和が算出されて第２の合計値が累算される。そして、ステップ４４において、第２の合計値の算出終了が判定される。ここで、第２の合計値の算出が未終了と判定された場合は、ステップ４５において、アドレスカウンタが歩進される。ステップ４６において、カウントデータが更新される。このステップ４６の動作を詳細に説明すると、ステップ４６１においてカウントデータが歩進され、ステップ４６２においてカウントデータの最大値判定がされる。ここで、カウントデータがステップ４１において操作者が入力した最大値より大きい場合は、ステップ４６３においてカウントデータが０にされて、ステップ４２に戻る。ステップ４６２の判定において、カウントデータが最大値以下の場合は、そのままステップ４２に戻る。
一方、ステップ４４の判定において、第２の合計値の算出が終了と判定された場合は、ステップ４７に進み、第１の合計値と第２の合計値が比較される。比較の結果が一致した場合は、ステップ４８において表示装置５２に“合格”と表示される。不一致の場合は、ステップ４９において表示装置５２に“不合格”と表示される。
【００２７】
なお、マスターデータの記憶された記憶媒体や照合対象の記憶媒体がフロッピーディスクやＣＤ−ＲＯＭのようなディスクの場合は、ハードウェア構成として、さらに、フロッピーディスク読取装置５７ａまたはＣＤ−ＲＯＭ読取装置５７ｂが設けられる。マスターデータが記憶された記憶媒体がフロッピーディスクのようなディスクの場合には、まず初めに、フロッピーディスク読取装置５７ａによってフロッピーディスクからＲＡＭ５６内のデータ領域Ｄ１に全データが転送される。また、照合対象のＲＯＭがＣＤ−ＲＯＭの場合も同様に、まず初めに、ＣＤ−ＲＯＭ読取装置５７ｂによってＣＤ−ＲＯＭからＲＡＭ５６内のデータ領域Ｄ１にデータが転送される。ＣＤ−ＲＯＭの場合は、ＲＡＭ２３の記憶容量単位でデータを分割して、順次各単位ごとに照合作業を行う。
また、図８の実施例と同様にして、図１の実施例の照合装置と同じ処理をソフトウェアで行うことも可能である。
【００２８】
上述の３つの実施例（図１の実施例，図６の実施例，図８の実施例）において、ＲＯＭの最終アドレス値とカウントデータの最大値の設定は操作者の入力によることとしたが、照合装置が備える固定的記憶媒体に予め記憶しておいて、これから読み出す方法でもよい。
また、第１の合計値の算出は照合の度に行う必要はなく、一度算出した後はその値を固定的記憶媒体等に記憶しておいて、その後の照合作業ではその値を読み取って使用することにより、第１の合計値の算出を省略することができる。
【図面の簡単な説明】
【図１】この発明の一実施例の記憶媒体の照合装置のブロック図である。
【図２  】図１の実施例の第１の合計値算出プログラムのフローチャートである。
【図３  】図１の実施例の照合プログラムのフローチャートである。
【図４】図１の実施例の効果を説明するための表である。
【図５】図１の実施例の効果を説明するための表である。
【図６】この発明の他の実施例の記憶媒体の照合装置のブロック図である。
【図７】図６の実施例の効果を説明するための表である。
【図８】この発明のさらに他の実施例の照合装置であって、図６の実施例の照合装置と同じ処理をソフトウェアで実現した実施例のハードウェアブロック図である。
【図９】図８の実施例のＲＡＭのメモリマップである。
【図１０】図８の実施例の第１の合計値算出プログラムのフローチャートである。
【図１１】図８の実施例の照合プログラムのフローチャートである。
【符号の説明】
１０：図１の実施例の記憶媒体の照合装置
１１：読出回路
１２：排他的論理和算出回路
１３：累算器
１４：ゲート回路
１５：終了検出回路
１６：第１の合計値設定用レジスタ
１７：比較器
１８：ＣＰＵ
１９：表示装置
２０：入力用キーボード
２１：制御プログラムが記憶されたＲＯＭ
２２ａ：フロッピーディスク読取装置
２２ｂ：ＣＤ−ＲＯＭ読取装置
２３：ＲＡＭ
２４：カウンタ回路
３０：照合対象のＲＯＭ
４０：図６の実施例の記憶媒体の照合装置
５０：図８の実施例の記憶媒体の照合装置
【図１】
0004206161.tif 000002
【図２】
0004206161.tif 000003
【図３】
0004206161.tif 000004
【図４】
0004206161.tif 000005
【図５】
0004206161.tif 000006
【図６】
0004206161.tif 000007
【図７】
0004206161.tif 000008
【図８】
0004206161.tif 000009
【図９】
0004206161.tif 000010
【図１０】
0004206161.tif 000011
【図１１】
0004206161.tif 000012