(57)【要約】【課題】情報処理装置のレジスタ診断の効率及び性能を高める。【解決手段】ＣＰＵ１からレジスタに対するライトデータ及びリードデータのアドレスをアドレスバス２から取り出して記憶するアドレス記憶６１４、６１９と、ＣＰＵ１からレジスタに対するライトデータ及びリードデータをデータバス５から取り出して記憶するデータ記憶６１５、６２０とを有している。そして、アドレス記憶６１４、６１９で記憶したアドレス及びデータ記憶６１５、６２０で記憶したデータをＣＲＣ演算するＣＲＣ演算器６１７、６２２と、そのＣＲＣ演算器６１７、６２２の結果を記憶するレジスタＥ（６０７）及びレジスタＧ（６０９）とを持つ。そして、レジスタＥ（６０７）及びレジスタＧ（６０９）が記憶するライトデータ及びリードデータを比較する診断部６５５を備えている。【選択図】図１
2010272089.tif 000002
【特許請求の範囲】
【請求項１】
データの処理を実行する中央処理部と、
前記中央処理部とバスで接続している複数のレジスタと、
前記中央処理部からレジスタに対する、ライトデータ及びリードデータのアドレスを、アドレスバスから取り出して記憶するアドレス記憶部と、
前記中央処理部から前記レジスタに対する、ライトデータ及びリードデータを、データバスから取り出して記憶するデータ記憶部と、
前記アドレス記憶部で記憶したアドレス、及び前記データ記憶部で記憶したデータをチェック演算する演算部と、
前記演算部の結果を記憶する格納部と
前記格納部に記憶するライトデータ及びリードデータを比較する診断制御部とを備えたレジスタ診断装置。
【請求項２】
さらに、前記アドレス記憶部で記憶したアドレス及び前記データ記憶部で記憶したデータを選択する選択部を備えた請求項１記載のレジスタ診断装置。
【請求項３】
前記演算部でのチェック演算処理に、ＣＲＣ符号によるチェックサム演算を用いる請求項１記載のレジスタ診断装置。
【請求項４】
さらに、前記中央処理部からライトアクセスおよびリードアクセスしても、情報処理に影響を与えないダミーレジスタを備えた請求項１記載のレジスタ診断装置。
【請求項５】
データの処理を実行するデータ処理と、
前記データ処理とバスで接続している複数のレジスタと、
前記データ処理からレジスタに対する、ライトデータ及びリードデータのアドレスを、アドレスバスから取り出して記憶するアドレス記憶処理と、
前データ処理から前記レジスタに対する、ライトデータ及びリードデータを、データバスから取り出して記憶するデータ記憶処理と、
前記アドレス記憶処理で記憶したアドレス、及び前記データ記憶処理で記憶したデータをチェック演算する演算処理と、
前記演算処理の結果を記憶する格納処理と
前記格納処理に記憶するライトデータ及びリードデータを比較する診断制御処理とを行うレジスタ診断方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レジスタ診断装置、及びレジスタ診断方法に関する。特に集積回路内に設けられたレジスタの記憶状態の診断を、ソフトウェアで動作する中央処理装置と、集積回路内に設けられたレジスタライト及びレジスタリード診断回路で実施するレジスタ診断処理技術に関する。
【背景技術】
【０００２】
情報処理装置を構成する集積回路内には、アドレスデータやライトデータ等の複数のデータを一時的に記憶するレジスタと呼ばれる記憶部がある。ＣＰＵ（Central Processing Unit）は、このレジスタに必要なデータを適宜格納し、その後適宜読み出して処理を進めている。
【０００３】
ところが、集積回路内に障害が発生した場合は、障害原因を究明する上で、レジスタを診断する必要がある。そこで、従来のレジスタを診断する方法は、レジスタ診断部を診断したい装置に接続し、スキャンパステストによりレジスタのデータを順次に読み出して、レジスタ診断部で各データのパリティチェックを行っている。
【０００４】
なお、スキャンパステストは、テスト容易化設計手法の１つで、順序回路の状態を外部端子から容易に設定／読み出すことができることである。そして、パリティチェックは、通信処理で用いられる単純な誤り検出方法で、データ中の“１”の個数を常に奇数（奇数パリティ）または偶数（偶数パリティ）になるように、検査用のビット（パリティビット）を付加して送信する。受信側において“１”の個数を数えることにより、受信したデータが正しいか検証できることである。
【０００５】
特許文献１には、レジスタの出力データに対してパリティチェックを行い、そのチェック結果を保持し、その保持した結果スキャンパステストにより読み出して診断を行うという技術についての記載がある。そして、特許文献２には、レジスタに入出力するデータの入力時と出力時との比較チェックすることについての技術についての記載がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０４−１０７７４７号公報
【特許文献２】特開昭６１−２２８５３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一般的な集積回路のレジスタ診断方式は、ＣＰＵ（Central Processing Unit）からレジスタに対して設定値を書き込み、その後ＣＰＵから同レジスタを読み込んで、その値と設定値とが同じであるかをレジスタごとに確認する方式である。そのため、レジスタ数分の比較処理が必要になり、診断に多くの時間がかかっている。さらに、現在の集積回路はより複雑になってきており、それに伴ってデータの設定を必要とするレジスタの数が増大、あわせて設定されるデータをも複雑化しているために、より診断に時間が掛かるようになってきている。
【０００８】
また、設定値（期待値）をレジスタ数分記憶しなくてはならないため、診断用にメモリエリアを確保する必要があるため、処理速度が遅くなってしまう。また、アドレスを誤って他のレジスタを読み込んでも、同じ設定値のレジスタであれば、レジスタの故障を検出できないという可能性がある。
【０００９】
本発明はかかる点に鑑みてなされたものであり、情報処理装置のレジスタ診断の効率及び性能を高めることを目的にする。
【課題を解決するための手段】
【００１０】
上記課題を解決するための本発明は、ＣＰＵからレジスタに対する、ライトデータ及びリードデータのアドレスをアドレスバスから取り出して記憶するアドレス記憶と、ライトデータ及びリードデータをデータバスから取り出して記憶するデータ記憶とを有している。そして、アドレス記憶で記憶したアドレス及びデータ記憶で記憶したデータをＣＲＣ演算するＣＲＣ演算器と、そのＣＲＣ演算器の結果を記憶するレジスタＥ、Ｇとを持つ。さらに、レジスタＥ、Ｇに記憶するライトデータ及びリードデータを比較する診断部とを備えている。
【００１１】
このようにしたことで、レジスタライト診断処理でレジスタのアドレス値及びライトデータからライト時のＣＲＣ値を生成し、レジスタリード診断処理でレジスタのアドレス値及びリードデータからリード時のＣＲＣ値を生成する。そして、そのライト時のＣＲＣ値及びリード時のＣＲＣ値が同一であるかどうかの診断を行える。
【発明の効果】
【００１２】
本発明により、診断するレジスタの中に同じ設定値のレジスタがいくつかあっても、ライト時のＣＲＣ値及びリード時のＣＲＣ値が同一である場合はレジスタ正常、同一でない場合はレジスタの故障とわかる。これにより、レジスタ診断やマイクロプログラムの正当性を検証することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施の形態の例の情報処理装置の内部構成を示すブロック図である。
【図２】本発明の一実施の形態の例の情報処理装置のレジスタＡ回路を示す回路図である。
【図３】本発明の一実施の形態の例の情報処理装置のレジスタライトタイミングを示す説明図である。
【図４】本発明の一実施の形態の例の情報処理装置のレジスタリードタイミングを示す説明図である。
【図５】本発明の一実施の形態の例の情報処理装置のライト診断用アドレス記憶及びデータ記憶回路を示す説明図である。
【図６】本発明の一実施の形態の例の情報処理装置のリード診断用アドレス記憶及びデータ記憶回路を示す説明図である。
【図７】本発明の一実施の形態の例の情報処理装置のＣＲＣ演算器回路を示す説明図である。
【図８】本発明の一実施の形態の例の情報処理装置のレジスタＤ、Ｅ回路を示す説明図である。
【図９】本発明の一実施の形態の例の情報処理装置のレジスタＦ、Ｇ回路を示す説明図である。
【図１０】本発明の一実施の形態の例の情報処理装置のライト診断制御状態遷移を示す説明図である。
【図１１】本発明の一実施の形態の例の情報処理装置のライト診断制御動作タイミングを示す説明図である。
【図１２】本発明の一実施の形態の例の情報処理装置のリード診断制御状態遷移を示す説明図である。
【図１３】本発明の一実施の形態の例の情報処理装置のリード診断制御動作タイミングを示す説明図である。
【図１４】本発明の一実施の形態の例の情報処理装置のＣＰＵのレジスタ診断処理を示すフローチャートである。
【図１５】本発明の一実施の形態の例の情報処理装置のレジスタ診断異常時の故障原因調査処理を示すフローチャートである。
【図１６】本発明の一実施の形態の例の情報処理装置のＣＰＵのＣＲＣ演算器診断処理を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の一実施の形態の例について、以下の順序で説明する。
１．情報処理装置の内部構成（図１〜図１３）
２．レジスタ診断処理動作（図１４〜図１５）
３．ＣＲＣ演算器の診断処理動作（図１６）
４．変形例の説明
【００１５】
［１．情報処理装置の内部構成］
図１は、一実施の形態の例を示すブロック図で、本実施の形態の情報処理装置において必要な一部分の構成を示すものである。
図１において、ソフトウェアで動作するＣＰＵ１と、集積回路６内の動作制御用設定レジスタＡ〜Ｊ（６０３〜６１２）（以下レジスタ）が、バス（アドレスバス２、ライト信号３、リード信号４、データバス５）で接続されている。そして、ＣＰＵ１からレジスタＡ〜Ｊ（６０３〜６１２）に対し、ライトまたはリードアクセスできる情報処理装置である。
【００１６】
まず、基本構成である、アドレスデコーダ６０１、データセレクタ６０２、論理和素子６１３、レジスタＡ〜Ｃ（６０３〜６０５）の説明を行う。
アドレスデコーダ６０１は、ＣＰＵ１からのアドレスを解読して、レジスタを選択するレジスタセレクト信号６２４Ａ〜６２４Ｊを生成する回路である。
データセレクタ６０２は、ライト時にＣＰＵ１からのデータバス５をライトデータ６２５方向に出力し、リード時はレジスタ出力であるリードデータ６２６をデータバス５方向に入力する機能を持つ。
【００１７】
論理和素子６１３は、レジスタＡ〜Ｃ、Ｅ、Ｇ〜Ｊ（６０３〜６０５、６０７、６０９〜６１２）からのレジスタ出力データＡ〜Ｃ、Ｅ、Ｇ〜Ｊ（６４３〜６４５、６５０、６４９、６４６〜６４８）を論理和してリードデータ６２６を生成している。
【００１８】
レジスタＡ〜Ｃ（６０３〜６０５）は、集積回路６の動作モード等を設定する設定レジスタであり、ＣＰＵ１からの設定値を記憶する記憶部で、ＣＰＵ１はこのレジスタＡ〜Ｃ（６０３〜６０５）に必要なデータを適宜格納し、その後適宜読出して処理を進める。
【００１９】
なお、レジスタライト回路６５３及びレジスタリード回路６５４については、後述する。
【００２０】
ここで、レジスタＡ（６０３）の回路図について、図２を用いて説明する。レジスタＡ（６０３）は、クロック７４が供給されるフリップフロップ７２と、セレクタ７１と、論理積素子７０及び７３とでデータ記憶回路を構成している。フリップフロップ７２はＤフリップフロップであり、１ビットの情報をクロックに同期して一時的に“０”または“１”の状態として保持する（記憶する）ことができる論理回路である。
レジスタセレクトＡ（６２４Ａ）及びライト信号３を論理積素子７０にて論理積することで、信号７５が生成される。その信号７５は、データを記憶するかライトデータ６２５を記憶するかを選択するセレクト信号となる。
そして、セレクタ７１に信号７５が入力し、セレクタ７１で選択された信号がフリップフロップ７２に入力されることで、レジスタ内Ａデータ７６が生成される。レジスタ内Ａデータ７６は、論理積素子７３に供給する。
【００２１】
そして、リード信号４と、レジスタセレクトＡ（６２４Ａ）と、レジスタ内Ａデータ７６とを論理積素子７３にて論理積することで、レジスタＡ出力データ６４３が生成されて出力される。レジスタＡ出力データ６４３は、自分のレジスタが選択されかつリードされた時のみデータを出力する。
【００２２】
図２の回路図は、レジスタＡ（６０３）を示したが、レジスタＢ（６０４）及びレジスタＣ（６０５）も同様な構成である。レジスタＢ（６０４）及びレジスタＣ（６０５）は、それぞれレジスタＢ出力データ６４４、レジスタＣ出力データ６４５が生成されて出力される。
【００２３】
次に、ＣＰＵ１からレジスタへのライトタイミングを図３で示す。ここではレジスタＡ〜Ｃ（６０３〜６０５）への連続ライトアクセスとする。
まず、ＣＰＵ１からアドレスバス２（図３（ｂ））、データバス５（図３（ｃ））、ライト信号３（図３（ｅ））を、図３（ａ）に示したクロックの１クロック期間アサートさせる。そして、アドレスデコーダ６０１は、アドレスバス２からレジスタを判定し、レジスタセレクトＡ（６２４Ａ）（図３（ｆ））をアサートさせる。その後、データセレクタ６０２はライトアクセスなので、図３（ｃ）のデータバス５をライトデータ６２５方向に出力する。
【００２４】
これにより、レジスタＡ（６０３）の記憶回路は、次のクロックでライト信号３とレジスタセレクトＡ（６２４Ａ）により、ライトデータ６２５（図３（ｄ））をレジストＡ内データ７６に“Ｄ０”を記憶する（図３（ｉ））。なお、他のレジスタＢ（６０４）及びレジスタＣ（６０５）へのライトアクセスも同一タイミングとするので、順にレジストＢ内データ７７に“Ｄ１”を、レジストＣ内データ７８に“Ｄ２”を記憶する（図３（ｊ）及び（図３（ｋ））。ちなみに、アサートとは、システムバスの信号線などにおいて、それが有効な状態にあることを言う。
【００２５】
ＣＰＵ１からレジスタへのリ−ドタイミングを図４で示す。ここではレジスタＡ、Ｂ、Ｃへの連続リードアクセスとする。
まず、ＣＰＵ１からアドレスバス２（図４（ｂ））をアサートさせ、次サイクルでリード信号４（図４（ｅ））を、図４（ａ）に示したクロックの１クロック期間アサートさせる。そして、アドレスデコーダ６０１は、アドレスバス２からレジスタを判定し、レジスタセレクトＡ（６２４Ａ）（図４（ｆ））をアサートする。その後、レジスタＡ（６０３）は自分のレジスタが選択されかつリードされたため、レジスタＡ出力データ６４３（図４（ｉ））に出力する。そして、データセレクタ６０２はリードアクセスなので、レジスタ出力であるリードデータ６２６（図４（ｄ））をデータバス５方向に入力し、次のクロックでＣＰＵ１がリードデータを記憶する。他のレジスタＢ（６０４）及びレジスタＣ（６０５）へのリードアクセスも同一タイミングで、レジスタＢ出力データ６４４（図４（ｊ））及びレジスタＢ出力データ６４５（図４（ｋ））を出力する。
【００２６】
次に、図１に示した診断回路であるレジスタライト診断回路６５３について説明する。図１に示したように、レジスタライト診断回路６５３は、アドレス記憶６１４と、データ記憶６１５と、アドレス／データセレクタ６１６と、ＣＲＣ演算器６１７と、レジスタＤ（６０６）と、レジスタＥ（６０７）と、ライト診断制御６１８とで構成されている。
【００２７】
まず、アドレス記憶６１４及びデータ記憶６１５を、図５を用いて説明する。図５（ａ）はアドレス記憶６１４、図５（ｂ）はデータ記憶６１５の回路図を示す。
【００２８】
図５（ａ）のアドレス記憶６１４は、クロック７４で同期したフリップフロップ１１０と、セレクタ１１１と、論理積素子１１２と、論理和素子１１３とでデータ記憶回路を構成している。
レジスタセレクト６２４Ａ〜６２４Ｃ、６２４Ｈ〜６２４Ｊが論理和素子１１３にて論理和することで、信号８２が生成される。そして、この信号８２と、レジスタライト診断のスタート指示（診断スタート６３１）と、レジスタＡ〜Ｃ、Ｈ〜Ｊ（６０３〜６０５、６１０〜６１２）へのライトアクセス（ライト信号３）を、論理積素子１１２で論理積することで、信号８３が生成される。その信号８３は、データを記憶するかアドレスバス２を記憶するかを選択するセレクト信号となり、セレクタ１１１に供給する。
そして、信号８３の入力により、セレクタ１１１で選択された信号がフリップフロップ１１０に入力されることで、アドレス記憶出力６２７が生成される。
【００２９】
図５（ｂ）のアドレス記憶６１５は、クロック７４で同期したフリップフロップ１１４と、セレクタ１１５と、論理積素子１１６と、論理和素子１１７とでデータ記憶回路を構成している。
レジスタセレクト６２４Ａ〜６２４Ｃ、６２４Ｈ〜６２４Ｊが論理和素子１１７にて論理和することで、信号８４が生成される。そして、この信号８４と、レジスタライト診断のスタート指示（診断スタート６３１）と、レジスタＡ〜Ｃ、Ｈ〜Ｊ（６０３〜６０５、６１０〜６１２）へのライトアクセス（ライト信号３）を、論理積素子１１６で論理積することで、信号８５が生成される。その信号８５は、データを記憶するかライトデータ６２５を記憶するかを選択するセレクト信号となり、セレクタ１１５に供給する。
そして、信号８５の入力により、セレクタ１１５で選択された信号がフリップフロップ１１４に入力されることで、データ記憶出力６２８が生成される。
【００３０】
なお、レジスタＤ〜Ｇ（６０６〜６０９）は、レジスタ診断回路用レジスタであるので、アクセスが発生してもアドレス記憶６１４及びデータ記憶６１５は行わず、レジスタ診断の対象としない。このアドレス記憶６１４及びデータ記憶６１５は、アドレス及びデータを取り出しているだけなので、ＣＰＵ１からのレジスタアクセスに影響を与えることはない。
【００３１】
レジスタＤ（６０６）について、図８（ａ）を用いて説明する。レジスタＤ（６０６）は、クロック７４で同期したフリップフロップ１２９と、セレクタ１３０と、論理積素子１３１とでデータ記憶回路を構成している。レジスタセレクトＤ（６２４Ｄ）及びライト信号３を論理積素子１３１にて論理積することで、信号９２が生成される。その信号９２は、データを記憶するかライトデータ６２５を記憶するかを選択するセレクト信号となる。
そして、セレクタ１３０への信号９２の入力により、セレクタ１３０で選択された信号がフリップフロップ１２９に入力されることで、診断スタート６３１が生成される。ただし、ライトアクセス不可のレジスタである。
【００３２】
次に、図１に示したレジスタライト診断回路６５３内のライト診断制御６１８について、図１０を用いて説明する。図１０は、ライト診断制御６１８の状態遷移図を示す。ライト診断制御６１８の入力信号は、ＣＰＵ１からのライト信号３と、アドレスデコーダ６０１からのレジスタセレクト６２４と、レジスタＤ（６０６）からの診断スタート６３１である。そして、出力信号は、アドレス／データセレクタ６１６を制御するデータセレクト６３２と、ＣＲＣ演算器６１７のＣＲＣ初期化６５１信号及びＣＲＣ演算イネーブル６３３と、ＣＲＣ演算結果格納イネーブル６３４である。
この状態遷移は、アイドル（Ｓ０）、初期化（Ｓ１）、アドレスＣＲＣ演算（Ｓ２）、データＣＲＣ演算（Ｓ３）、ウエイト（Ｓ４）、ＣＲＣ結果格納（Ｓ５）がある。図中「＆」は論理積記号を示し、「｜」は論理和記号を示す。また、線上の入力信号名が遷移条件を示し、ステート上の枠内が出力信号を示す。このライト診断制御動作は、後述の図１１のレジスタライト診断制御動作タイミングの中で説明する。
【００３３】
アドレス／データセレクタ６１６は、上記で記憶したアドレス記憶出力６２７かデータ記憶出力６２８を選択するセレクタである。ライト診断制御６１８からのデータセレクト６３２によりセレクト制御を行う。
【００３４】
次に、図１に示したレジスタライト診断回路６５３内のＣＲＣ演算器６１７を、図７を用いて説明する。ＣＲＣ演算器６１７は、クロック７４で同期したフリップフロップ１２６と、セレクタ１２７及び１２８と、ＣＲＣ演算回路８１とで構成している。ＣＲＣ演算イネーブル６３３がアサートされた時のみＣＲＣ（Cyclic Redundancy Check：巡回冗長検査）演算を行う。アドレス／データセレクタ６１６からのセレクタ出力６２９をＣＲＣ演算回路８１に入力してＣＲＣ演算を行って、信号９０を生成する。ここでのＣＲＣ演算は、例えば８ビットＣＲＣ生成多項式＝ｘ８＋ｘ２＋ｘ１＋１を使用する。
次に、ＣＲＣ演算イネーブル６３３の入力により、セレクタ１２８で選択された信号９１が、セレクタ１２７に入力される。そして、ライト診断制御６１８からのＣＲＣ初期化６５１アサートにより、セレクタ１２７で選択された信号がフリップフロップ１２６に入力されることで、ＣＲＣ演算結果６３０が生成される。そのＣＲＣ初期化６５１は、データを記憶するか初期値（０ｘＦＦ）８０を記憶するかを選択するセレクト信号となる。
【００３５】
次に、図１に示したレジスタライト診断回路６５３内のレジスタＥ（６０７）について、図８（ｂ）を用いて説明する。まず、レジスタＥ（６０７）は、クロック７４で同期したフリップフロップ１３２と、セレクタ１３３と、論理積素子１３４とでデータ記憶回路を構成している。
ライト診断制御６１８からのＣＲＣ演算結果格納イネーブル６３４がアサートされた時にＣＲＣ演算結果６３０を格納する。ただし、ライトアクセス不可のレジスタである。そして、セレクタ１３３で選択された信号がフリップフロップ１３２に入力されることで、信号９３が生成され、論理積素子１３４に供給する。
そして、リード信号４と、レジスタセレクトＥ（６２４Ｅ）と、信号９３とを論理積素子１３４にて論理積することで、レジスタＥ出力データ６５０が生成されて出力される。なお、レジスタＥ出力データ６５０は、自分のレジスタが選択されかつリードされた時のみデータを出力する。
【００３６】
ここから、レジスタライト診断回路６５３の制御動作について、図１０及び図１１を用いて説明する。制御動作タイミングは、以下の手順に従って動作する。
【００３７】
［手順１］
開始直後は、図１０に示すようにライト診断制御６１８のアイドル（Ｓ０）は、ＣＲＣ初期化＜＝“０”、ＣＲＣ演算イネーブル＜＝“０”、データセレクト＜＝”０”、ＣＲＣ演算結果格納イネーブル＜＝“０”となっている。そのため、何も動作しないアイドル状態となっている。
【００３８】
［手順２］
ＣＰＵ１からレジスタＤ（６０６）に対して、診断スタート６３１の指示を行う。診断スタート６３１がアサートされると、図１０が示すようにライト診断制御６１８は初期化（Ｓ１）に遷移し、ＣＲＣ初期化＜＝“１”にする。ＣＲＣ初期化６５１のアサートにより、ＣＲＣ演算器６１７は演算回路に初期値を設定する。
【００３９】
［手順３］
ＣＰＵ１からレジスタＡ（６０３）に対し、データ“Ｄ０”をライトアクセスする。その時のアドレス記憶６１４とデータ記憶６１５は、レジスタライト診断のスタート指示があり、かつ、レジスタＡ、Ｂ、Ｃ、Ｈ、Ｉ、Ｊへのライトアクセスが発生しているので、その時のアドレス及びライトデータを記憶する。そして、ライト診断制御６１８は、レジスタＡ、Ｂ、Ｃ、Ｈ、Ｉ、Ｊへのライトアクセスが発生すると、図１０が示すようにアドレスＣＲＣ演算（Ｓ２）に遷移している。それから、ＣＲＣ初期化＜＝“０”、ＣＲＣ演算イネーブル＜＝“１”、データセレクト＜＝“０”にする。次に、ＣＲＣ演算イネーブル６３３により、ＣＲＣ演算器６１７は初期値とアドレス記憶出力６２７の“Ａ”をＣＲＣ演算し、ＣＲＣ演算結果値６３０は“ＣＲＣ００”を算出する。
【００４０】
［手順４］
続いて、ライト診断制御６１８は、図１０が示すようにデータＣＲＣ演算（Ｓ３）に遷移し、データセレクト＜＝“１”にする。アドレス／データセレクタ６１６は、データセレクト６３２のアサートにより、記憶したデータ記憶出力６２８を出力する。そして、ＣＲＣ演算イネーブル６３３により、ＣＲＣ演算器６１７は“ＣＲＣ００”とデータ記憶出力６２８の“Ｄ０”をＣＲＣ演算し、ＣＲＣ演算結果値６３０は“ＣＲＣ０１”を算出する。
【００４１】
［手順５］
レジスタのライトアクセスが連続して行われる場合、[手順４]を繰り返す。ここでは、以下のようになる。
ＣＲＣ演算器６１７は“ＣＲＣ０１”とアドレス記憶出力６２７の“Ｂ”をＣＲＣ演算し、ＣＲＣ演算結果値６３０は“ＣＲＣ１０”を算出する。
ＣＲＣ演算器６１７は“ＣＲＣ１０”とデータ記憶出力６２８の“Ｄ１”をＣＲＣ演算し、ＣＲＣ演算結果値６３０は“ＣＲＣ１１”を算出する。
ＣＲＣ演算器６１７は“ＣＲＣ１１”とアドレス記憶出力６２７の“Ｃ”をＣＲＣ演算し、ＣＲＣ演算結果値６３０は“ＣＲＣ２０”を算出する。
ＣＲＣ演算器６１７は“ＣＲＣ２０”とデータ記憶出力６２８の“Ｄ２”をＣＲＣ演算し、ＣＲＣ演算結果値６３０は“ＣＲＣ２１”を算出する。
これで、ＣＲＣ演算結果値６３０のリード値は“ＣＲＣ２１”となる。
【００４２】
［手順６］
レジスタのライトアクセスの間隔が２クロック以上空いた場合は、ライト診断制御６１８は、図１０が示すようにウエイト（Ｓ４）に遷移し、データセレクト＜＝“０”、ＣＲＣ演算イネーブル＜＝“０”にし、待ち状態になる。
【００４３】
［手順７］
ＣＰＵ１からレジスタＤ（６０６）（レジスタライト診断制御レジスタ）に対し、レジスタライト診断のストップ指示を行う。診断スタート６３１がデアサートされるとライト診断制御６１８は図１０が示すようにＣＲＣ結果格納（Ｓ５）に遷移し、ＣＲＣ演算結果格納イネーブル＜＝“１”にする。ＣＲＣ演算結果格納イネーブル６３４により、レジスタＥ（６０７）（ライトＣＲＣ演算結果格納レジスタ）に算出したＣＲＣ演算結果値６３０“ＣＲＣ２１”を格納する。
【００４４】
［手順８］
そして、ライト診断制御６１８は、アイドル（Ｓ０）に遷移し、レジスタライト診断を終了する。
【００４５】
［手順９］
ＣＰＵ１からレジスタＥ（６０７）（ライトＣＲＣ演算結果格納レジスタ）に対し、ライトＣＲＣ演算結果値をリードする。
【００４６】
次に、図１に示した診断回路であるレジスタリード診断回路６５４について説明する。レジスタリード診断回路６５４は、アドレス記憶６１９と、データ記憶６２０と、アドレス／データセレクタ６２１と、ＣＲＣ演算器６２２と、レジスタＦ（６０８）と、レジスタＧ（６０９）と、リード診断制御６２３とで構成されている。
【００４７】
まず、アドレス記憶６１９及びデータ記憶６２０を、図６を用いて説明する。図６（ａ）はアドレス記憶６１９、図６（ｂ）はデータ記憶６２０の回路図を示す。
【００４８】
図６（ａ）のアドレス記憶６１９は、クロック７４で同期したフリップフロップ１１８と、セレクタ１１９と、論理積素子１２０と、論理和素子１２１とでデータ記憶回路を構成している。
レジスタセレクト６２４Ａ〜６２４Ｃ、６２４Ｈ〜６２４Ｊが論理和素子１２１にて論理和することで、信号８６が生成される。そして、この信号８６と、レジスタライト診断のスタート指示（診断スタート６３９）と、レジスタＡ〜Ｃ、Ｈ〜Ｊ（６０３〜６０５、６１０〜６１２）へのリードアクセス（リード信号４）を論理積素子１２０で論理積することで、信号８７が生成される。その信号８７は、データを記憶するかアドレスバス２を記憶するかを選択するセレクト信号となり、セレクタ１１９に供給する。
そして、信号８７の入力により、セレクタ１１９で選択された信号がフリップフロップ１１８に入力されることで、アドレス記憶出力６３５が生成される。
【００４９】
図６（ｂ）のアドレス記憶６２０は、クロック７４で同期したフリップフロップ１２２と、セレクタ１２３と、論理積素子１２４と、論理和素子１２５とでデータ記憶回路を構成している。
レジスタセレクト６２４Ａ〜６２４Ｃ、６２４Ｈ〜６２４Ｊが論理和素子１２５にて論理和することで、信号８８が生成される。そして、この信号８８と、レジスタライト診断のスタート指示（診断スタート６３９）と、レジスタＡ〜Ｃ、Ｈ〜Ｊ（６０３〜６０５、６１０〜６１２）へのリードアクセス（リード信号４）を論理積素子１２４で論理積することで、信号８９が生成される。その信号８９は、データを記憶するかリードデータ６２６を記憶するかを選択するセレクト信号となり、セレクタ１２３に供給する。
そして、信号８９の入力により、セレクタ１２３で選択された信号がフリップフロップ１２２に入力されることで、データ記憶出力６３６が生成される。
【００５０】
なお、レジスタＤ〜Ｇ（６０６〜６０９）は、レジスタ診断回路用レジスタであるので、アクセスが発生してもアドレス記憶（６１９）及びデータ記憶（６２０）は行わず、レジスタ診断の対象としない。このアドレス記憶（６１９）及びデータ記憶（６２０）は、アドレス及びデータを取り出しているだけなので、ＣＰＵ１からのレジスタアクセスに影響を与えることはない。
【００５１】
レジスタＦ（６０８）について、図９（ａ）を用いて説明する。レジスタＦ（６０８）は、クロック７４で同期したフリップフロップ１３５と、セレクタ１３６と、論理積素子１３７とでデータ記憶回路を構成している。レジスタセレクトＦ（６２４Ｆ）及びライト信号３を論理積素子１３７にて論理積することで、信号９４が生成される。その信号９４は、データを記憶するかライトデータ６２５を記憶するかを選択するセレクト信号となり、セレクタ１３５に供給する。
そして、信号９４の入力により、セレクタ１３６で選択された信号がフリップフロップ１３５に入力されることで、診断スタート６３９が生成される。ただし、ライトアクセス不可のレジスタである。
【００５２】
次に、図１に示したリード診断制御６２３について、図１２を用いて説明する。図１２は、リード診断制御６２３の状態遷移図を示す。リード診断制御６２３の入力信号は、ＣＰＵ１からのリード信号４と、アドレスデコーダ６０１からのレジスタセレクト６２４と、レジスタＦ（６０８）からの診断スタート６３９である。そして、出力信号は、アドレス／データセレクタ６２１を制御するデータセレクト６４０と、ＣＲＣ演算器６２２のＣＲＣ初期化６５２信号及びＣＲＣ演算イネーブル６４１と、ＣＲＣ演算結果格納イネーブル６４２である。
【００５３】
この状態遷移は、アイドル（Ｓ６）、初期化（Ｓ７）、アドレスＣＲＣ演算（Ｓ８）、データＣＲＣ演算（Ｓ９）、ウエイト（Ｓ１０）、ＣＲＣ結果格納（Ｓ１１）がある。図中「＆」は論理積記号を示し、「｜」は論理和記号を示す。また、線上の入力信号名が遷移条件を示し、ステート上の枠内が出力信号を示す。このリード診断制御動作は、図１３のレジスタリード診断制御動作タイミングの中で説明する。
【００５４】
アドレス／データセレクタ６２１は、上記で記憶したアドレス記憶出力６３５かデータ記憶出力６３６を選択するセレクタである。リード診断制御６２３からのデータセレクト６４０によりセレクト制御を行う。
【００５５】
ＣＲＣ演算器６２２は、図７を用いて説明する。ＣＲＣ演算器６２２は、クロック７４で同期したフリップフロップ１２６と、セレクタ１２７及び１２８と、ＣＲＣ演算回路８１とで構成している。ＣＲＣ演算イネーブル６３３がアサートされた時のみＣＲＣ演算を行う。アドレス／データセレクタ６２１からのセレクタ出力６３７をＣＲＣ演算回路８１に入力してＣＲＣ演算を行って、信号９０を生成し、セレクタ９１に供給する。ここでのＣＲＣ演算は、例えば８ビットＣＲＣ生成多項式＝ｘ８＋ｘ２＋ｘ１＋１を使用する。
ＣＲＣ演算イネーブル６４１の入力により、セレクタ１２８で選択された信号９１が、セレクタ１２７に入力される。そして、ライト診断制御６２３からのＣＲＣ初期化６５２アサートにより、セレクタ１２７で選択された信号がフリップフロップ１２６に入力されることで、ＣＲＣ演算結果６３８が生成される。ＣＲＣ演算結果６３８は、ＣＲＣ演算回路８１とセレクタ１２８に戻される。なお、そのＣＲＣ初期化６５２は、データを記憶するか初期値（０ｘＦＦ）８０を記憶するかを選択するセレクト信号となる。
【００５６】
レジスタＧ（６０９）について、図９（ｂ）を用いて説明する。まず、レジスタＧ（６０９）は、クロック７４で同期したフリップフロップ１３８と、セレクタ１３９と、論理積素子１４０とでデータ記憶回路を構成している。
リード診断制御６２３からのＣＲＣ演算結果格納イネーブル６４２がアサートされた時にＣＲＣ演算結果６３８を格納する。ただし、ライトアクセス不可のレジスタである。そして、セレクタ１３９で選択された信号がフリップフロップ１３８に入力されることで、信号９５が生成される。
次に、リード信号４、レジスタセレクトＧ（６２４Ｇ）、信号９５とを論理積素子１４０にて論理積することで、レジスタＧ出力データ６４９が生成されて出力される。なお、レジスタＧ出力データ６４９は、自分のレジスタが選択されかつリードされた時のみデータを出力する。
【００５７】
ここから、レジスタリード診断回路６５４の制御動作について、図１２及び図１３を用いて説明する。制御動作タイミングは、以下の手順に従って動作する。
【００５８】
［手順１］
開始直後は、図１２が示すようにリード診断制御６２３のアイドル（Ｓ６）は、ＣＲＣ初期化＜＝“０”、ＣＲＣ演算イネーブル＜＝“０”、データセレクト＜＝”０”、ＣＲＣ演算結果格納イネーブル＜＝“０”となっている。そのため、何も動作しないアイドル状態となっている。
【００５９】
［手順２］
ＣＰＵ１からレジスタＦ（６０８）（レジスタリード診断制御レジスタ）に対して、レジスタリード診断のスタート指示を行う。診断スタート６３９がアサートされると、図１２が示すようにリード診断制御６２３は初期化（Ｓ７）に遷移し、ＣＲＣ初期化＜＝“１”にする。ＣＲＣ初期化６５２のアサートにより、ＣＲＣ演算器６２２は演算回路に初期値を設定する。
【００６０】
［手順３］
ＣＰＵ１からレジスタＡ（６０３）に対し、データ「Ｄ０」をリードアクセスする。その時のアドレス記憶６１９とデータ記憶６２０は、レジスタリード診断のスタート指示があり、かつ、レジスタＡ、Ｂ、Ｃ、Ｈ、Ｉ、Ｊへのリードアクセスが発生しているので、その時のアドレス及びリードデータを記憶する。そして、リード診断制御６２３は、レジスタＡ、Ｂ、Ｃ、Ｈ、Ｉ、Ｊへのライトアクセスが発生すると、図１２が示すようにアドレスＣＲＣ演算（Ｓ８）に遷移している。それから、ＣＲＣ初期化＜＝“０”、ＣＲＣ演算イネーブル＜＝“１”、データセレクト＜＝“０”にする。次に、ＣＲＣ演算イネーブル６４１により、ＣＲＣ演算器６２２は初期値とアドレス記憶出力６３５の“Ａ”をＣＲＣ演算し、ＣＲＣ演算結果値６３８は“ＣＲＣ００”を算出する。
【００６１】
［手順４］
続いて、リード診断制御６２３は、図１２が示すようにデータＣＲＣ演算（Ｓ９）に遷移し、データセレクト＜＝“１”にする。アドレス／データセレクタ６２１は、データセレクト６４０のアサートにより、記憶したデータ記憶出力６３６を出力する。そして、ＣＲＣ演算イネーブル６４１により、ＣＲＣ演算器６２２は“ＣＲＣ００”とデータ記憶出力６３６の“Ｄ０”をＣＲＣ演算し、ＣＲＣ演算結果値６３８は“ＣＲＣ０１”を算出する。
【００６２】
［手順５］
レジスタのリードアクセスが連続して行われる場合、[手順４]を繰り返す。ここでは、以下のようになる。
ＣＲＣ演算器６２２は“ＣＲＣ０１”とアドレス記憶出力６３５の“Ｂ”をＣＲＣ演算し、ＣＲＣ演算結果値６３８は“ＣＲＣ１０”を算出する。
ＣＲＣ演算器６２２は“ＣＲＣ１０”とデータ記憶出力６３６の“Ｄ１”をＣＲＣ演算し、ＣＲＣ演算結果値６３８は“ＣＲＣ１１”を算出する。
ＣＲＣ演算器６２２は“ＣＲＣ１１”とアドレス記憶出力６３５の“Ｃ”をＣＲＣ演算し、ＣＲＣ演算結果値６３８は“ＣＲＣ２０”を算出する。
ＣＲＣ演算器６２２は“ＣＲＣ２０”とデータ記憶出力６３６の“Ｄ２”をＣＲＣ演算し、ＣＲＣ演算結果値６３０は“ＣＲＣ２１”を算出する。
これで、ＣＲＣ演算結果値６３８のリード値は“ＣＲＣ２１”となる。
【００６３】
［手順６］
レジスタのリードアクセスの間隔が１クロック以上空いた場合は、リード診断制御６２３は、図１２が示すようにウエイト（Ｓ１０）に遷移し、データセレクト＜＝“０”、ＣＲＣ演算イネーブル＜＝“０”にし、待ち状態になる。
【００６４】
［手順７］
ＣＰＵ１からレジスタＦ（６０８）（レジスタリード診断制御レジスタ）に対し、レジスタリード診断のストップ指示を行う。診断スタート６３９がデアサートされるとリード診断制御６２３は図１２が示すようにＣＲＣ結果格納（Ｓ１１）に遷移し、ＣＲＣ演算結果格納イネーブル＜＝“１”にする。ＣＲＣ演算結果格納イネーブル６４２により、レジスタＧ（６０９）（リードＣＲＣ演算結果格納レジスタ）に算出したＣＲＣ演算結果値６３８は“ＣＲＣ２１”を格納する。
【００６５】
［手順８］
そして、リード診断制御６２３は、アイドル（Ｓ０’）に遷移し、レジスタリード診断を終了する。
【００６６】
［手順９］
ＣＰＵ１からレジスタＧ（６０９）（リードＣＲＣ演算結果格納レジスタ）に対し、リードＣＲＣ演算結果値をリードする。
【００６７】
そして、診断部６５５では、レジスタＥ（６０７）及びレジスタＦ（６０９）に格納したデータを用いて、比較診断を行う。また、ＣＲＣ演算器の診断処理では、レジスタＨ（６１０）、レジスタＩ（６１１）、レジスタＪ（６１２）のデータを用いて、ＣＰＵで演算したＣＲＣ値、ライトＣＲＣ演算結果値、リードＣＲＣ演算結果値が演算し、その値をレジスタごとに比較診断を行う。
【００６８】
［２．レジスタ診断処理動作］
図１４のフローチャートを参照して、本発明の一実施の形態の例による情報処理装置のレジスタ診断処理についての動作を説明する。この図１４のフローチャートの処理は、本発明の一実施の形態の例による情報処理装置のレジスタ診断を行う場合に実行される。
【００６９】
まず、レジスタライト診断制御レジスタ（レジスタＤ（６０６））にスタート指示を行って（ステップＦ１０１）、順に、レジスタＡ、Ｂ、Ｃにライトアクセスを行う（ステップＦ１０２−Ｆ１０４）。そして、レジスタライト診断制御レジスタ（レジスタＤ（６０６））にストップ指示を行う（ステップＦ１０５）。その後、ライトＣＲＣ演算結果レジスタ（レジスタＥ（６０７））にリードを行い（ステップＦ１０６）、ライトＣＲＣ演算結果値を保管する（ステップＦ１０７）。
【００７０】
次に、レジスタリード診断制御レジスタ（レジスタＦ（６０８））にスタート指示を行って（ステップＦ１０８）、順に、レジスタＡ、Ｂ、Ｃにリードアクセスを行う（ステップＦ１０９−Ｆ１１１）。そして、レジスタライト診断制御レジスタ（レジスタＦ（６０８））にストップ指示を行う（ステップＦ１１２）。その後、リードＣＲＣ演算結果レジスタ（レジスタＧ（６０９））にリードを行う（ステップＦ１１３）。
【００７１】
ライトＣＲＣ演算結果値とリードＣＲＣ演算結果値が一致するか判定する（ステップＦ１１４）。一致しいていれば、レジスタ正常と判定する（ステップＦ１１５）。しかし、不一致であれば、レジスタ診断異常と判定する（ステップＦ１１６）。
【００７２】
なお、ステップＦ１０１〜Ｆ１０７はレジスタライト診断手順を示し、ステップＦ１０８〜Ｆ１１３はレジスタリード診断手順を示している。
【００７３】
このレジスタ異常は、ライトＣＲＣ演算結果値とリードＣＲＣ演算結果値が不一致な場合の２通りの故障が考えられる。ハードウェア的にレジスタが故障した時と、レジスタのライトまたはリードする順番が違うというソフトウェア異常故障である。そこで、故障原因を特定するための処理を、図１５のフローチャートを用いて説明する。このフローチャートの処理は、図１４のステップＦ１１６を検出した場合に実行される。
【００７４】
まず、ライトＣＲＣ演算結果値とリードＣＲＣ演算結果値が不一致のためレジスタ診断異常と判定される（ステップＦ２０１）。そして、ハードウェア本体を停止する（オフライン）。
【００７５】
それから、レジスタＡ−Ｃまでをライト又はリード作業を繰り返す。
ＣＰＵ１からレジスタＡ（６０３）にライトアクセスを行い（ステップＦ２０３）、ＣＰＵ１からレジスタＡ（６０３）にリードアクセスを行う（ステップＦ２０４）。
ＣＰＵ１からレジスタＢ（６０４）にライトアクセスを行い（ステップＦ２０５）、ＣＰＵ１からレジスタＢ（６０４）にリードアクセスを行う（ステップＦ２０６）。
ＣＰＵ１からレジスタＣ（６０５）にライトアクセスを行い（ステップＦ２０７）、ＣＰＵ１からレジスタＣ（６０５）にリードアクセスを行う（ステップＦ２０８）。
【００７６】
そして、レジスタＡ-Ｃそれぞれのライト値及びリード値が一致するかどうかを判断する（ステップＦ２０９）。一致していれば、レジスタのライトまたはリードする順番が異常であるというソフトウェア異常となる（ステップＦ２１０）。不一致であれば、レジスタ故障というハードウェア故障となる。
【００７７】
このようにして、本発明の一実施の形態の例によると、診断するレジスタの中に同じ設定値のレジスタがいくつかあっても、ライト時のＣＲＣ値及びリード時のＣＲＣ値が同一である場合はレジスタ正常、同一でない場合はレジスタの故障とわかる。これにより、レジスタ診断やマイクロプログラムの正当性を検証することができる。
そして、レジスタ異常の場合、ハード本体をオフラインさせて、レジスタＡ〜Ｃにライト／リードアクセスを繰り返す。これにより、各レジスタのライト値及びリード値が不一致である場合はレジスタ故障、一致している場合レジスタのライトまたはリードする順番が違っていると判断することができる。
【００７８】
また、ＣＲＣ診断回路をハードで実現することで、より高速になり、マイクロプログラムの複雑化を抑えることも出来る。そして、ライト用とリード用で、別の診断回路も持つことでライトアクセスとリードアクセスが混在していても、独立に診断することができる。
さらに、ＣＲＣは、診断スタート指示からストップ指示があるまでのレジスタアクセスをすべて累積する構造とすることで、最終的な照合を１度にすることが出来る。
【００７９】
［３．ＣＲＣ演算器の診断処理動作］
本発明の一実施の形態の例による情報処理装置内にあるＣＲＣ演算器が故障していないかの診断処理動作を、図１６のフローチャートを用いて説明する。この図１６のフローチャートの処理は、ＣＰＵ１からライトおよびリードアクセスしても情報処理に影響を与えないＣＲＣ演算器診断用ダミーレジスタＨ〜Ｊ（６１０〜６１２）を用いて処理する。
【００８０】
まず、レジスタライト診断制御レジスタ（レジスタＤ（６０６））にスタート指示を行って（ステップＦ３０１）、順に、レジスタＨ、Ｉ、Ｊにライトアクセスを行う（ステップＦ３０２−Ｆ３０４）。そして、レジスタライト診断制御レジスタ（レジスタＤ（６０６））にストップ指示を行う（ステップＦ３０５）。その後、ライトＣＲＣ演算結果レジスタ（レジスタＥ（６０７））にリードを行い（ステップＦ３０６）、ライトＣＲＣ演算結果値を保管する（ステップＦ３０７）。
【００８１】
次に、レジスタリード診断制御レジスタ（レジスタＦ（６０８））にスタート指示を行って（ステップＦ３０８）、順に、レジスタＨ、Ｉ、Ｊにリードアクセスを行う（ステップＦ３０９−Ｆ３１１）。そして、レジスタリード診断制御レジスタ（レジスタＦ（６０８））にストップ指示を行う（ステップＦ３１２）。その後、リードＣＲＣ演算結果レジスタ（レジスタＧ（６０９））にリードを行い（ステップＦ１１３）、リードＣＲＣ演算結果値を保管する（ステップＦ３１４）。
【００８２】
そして、ＣＰＵ１の中で、レジスタＨ、Ｉ，ＪごとにアドレスとライトデータをＣＲＣ演算する（ステップＦ３１５-Ｆ３１７）。それらのＣＲＣ演算結果値を保管する（ステップＦ３１８）
【００８３】
ＣＰＵ１で演算したＣＲＣ値とライトＣＲＣ演算結果値とリードＣＲＣ演算結果値が一致するかどうかを判定する（ステップＦ３１９）。一致しいていれば、ＣＲＣ演算器は正常と判定する（ステップＦ３２０）。不一致であれば、ＣＲＣ演算器故障と判定する（ステップＦ３２１）。
【００８４】
これにより、ＣＲＣ演算器が故障していないか診断を行うことができるため、レジスタ診断の信頼性を上げることができる。
【００８５】
［４．変形例の説明］
なお、上述した実施の形態では、診断回路であるレジスタライト回路及びレジスタリード回路を別々に存在しており、専用として用いるようになっている。しかし、これらのレジスタライト回路及びレジスタリード回路の回路構成及び動作は同等である。そのため、これらのレジスタライト回路とレジスタリード回路をハードウェア的にひとつの回路にするようにしてもよい。これにより、低コストで生産が可能となる効果を有する。
また、演算処理には、ＣＲＣ演算を利用しているが、より仕組みが単純なチェックサム演算を使用してもよい。このチェックサム演算を用いることで、ＣＲＣ演算より早い演算処理が可能となる。
【符号の説明】
【００８６】
１…ＣＰＵ、２…アドレスバス、３…ライト信号、４…リード信号、５…データバス、６…集積回路、７０…論理積素子、７１…セレクタ、７２…フリップフロップ、７３…論理積素子、７４…クロック、７５…信号、７６…レジスタＡ内データ、７７…レジスタＢ内データ、７８…レジスタＣ内データ、８０…初期値、８１…ＣＲＣ演算回路、８２〜９５…信号、１１０…フリップフロップ、１１１…セレクタ、１１２…論理積素子、１１３…論理和素子、１１４…フリップフロップ、１１５…セレクタ、１１６…論理積素子、１１７…論理和素子、１１８…フリップフロップ、１１９…セレクタ、１２０…論理積素子、１２１…論理和素子、１２２…フリップフロップ、１２３…セレクタ、１２４…論理積素子、１２５…論理和素子、１２６…フリップフロップ、１２７…セレクタ、１２８…セレクタ、１２９…フリップフロップ、１３０…セレクタ、１３１…論理積素子、１３２…フリップフロップ、１３３…セレクタ、１３４…論理積素子、１３５…レジスタＦ（６０８）用フリップフロップ、１３６…セレクタ、１３７…論理積素子、１３８…フリップフロップ、１３９…セレクタ、１４０…論理積素子、６０１…アドレスデコーダ、６０２…データセレクト、６０３…レジスタＡ、６０４…レジスタＢ、６０５…レジスタＣ、６０６…レジスタＤ（レジスタライト診断制御レジスタ）、６０７…レジスタＥ（ライトＣＲＣ演算結果格納レジスタ）、６０８…レジスタＦ（レジスタリード診断制御レジスタ）、６０９…レジスタＧ（リードＣＲＣ演算結果格納レジスタ）、６１０…レジスタＨ（ＣＲＣ演算器診断用ダミーレジスタ）、６１１…レジスタＩ（ＣＲＣ演算器診断用ダミーレジスタ）、６１２…レジスタＪ（ＣＲＣ演算器診断用ダミーレジスタ）、６１３…論理和素子、６１４…アドレス記憶、６１５…データ記憶、６１６…アドレス／データセレクタ、６１７…ＣＲＣ演算器、６１８…ライト診断制御、６１９…アドレス記憶、６２０…データ記憶、６２１…アドレス／データセレクタ、６２２…ＣＲＣ演算器、６２３…リード診断制御、６２４，６２４Ａ〜６２４Ｊ…レジスタセレクト信号、６２５…ライトデータ、６２６…リードデータ、６２７…アドレス記憶出力、６２８…データ記憶出力、６２９…セレクタ出力、６３０…ＣＲＣ演算結果値、６３１…診断スタート、６３２…データセレクト、６３３…ＣＲＣ演算イネーブル、６３４…ＣＲＣ演算結果格納イネーブル、６３５…アドレス記憶出力、６３６…データ記憶出力、６３７…セレクタ出力、６３８…ＣＲＣ演算結果値、６３９…診断スタート、６４０…データセレクト、６４１…ＣＲＣ演算イネーブル、６４２…ＣＲＣ演算結果格納イネーブル、６４３…レジスタＡ出力データ、６４４…レジスタＢ出力データ、６４５…レジスタＣ出力データ、６４６…レジスタＨ出力データ、６４７…レジスタＩ出力データ、６４８…レジスタＪ出力データ、６４９…レジスタＧ出力データ、６５０…レジスタＥ出力データ、６５１…ＣＲＣ初期化、６５２…ＣＲＣ初期化、６５３…レジスタライト診断回路、６５４…レジスタリード診断回路、６５５…診断部
【図１】
2010272089.tif 000003
【図２】
2010272089.tif 000004
【図３】
2010272089.tif 000005
【図４】
2010272089.tif 000006
【図５】
2010272089.tif 000007
【図６】
2010272089.tif 000008
【図７】
2010272089.tif 000009
【図８】
2010272089.tif 000010
【図９】
2010272089.tif 000011
【図１０】
2010272089.tif 000012
【図１１】
2010272089.tif 000013
【図１２】
2010272089.tif 000014
【図１３】
2010272089.tif 000015
【図１４】
2010272089.tif 000016
【図１５】
2010272089.tif 000017
【図１６】
2010272089.tif 000018