(57)【要約】  本発明を適用した１システムは、第１の記憶部、及び第１の記憶部の代替とする第２の記憶部を備えた主記憶装置と、動作の内容を表す動作情報を生成する情報生成手段と、主記憶装置の第１の記憶部、及び第２の記憶部にアクセス可能なアクセス手段と、第２の記憶部を第１の記憶部の代替とするか否かを判定し、該判定結果を用いてアクセス手段を制御することにより、第２の記憶部を第１の記憶部の代替としない場合、動作情報を第２の記憶部に、動作情報以外の主記憶装置に格納すべきデータを第１の記憶部にそれぞれ格納させ、第２の記憶部を第１の記憶部の代替とする場合、動作情報を第１の記憶部に、動作情報以外の主記憶装置に格納すべきデータを第２の記憶部にそれぞれ格納させる代替判定手段と、を有する。
2014020749.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶部、及び前記第１の記憶部の代替とする第２の記憶部を備えた主記憶装置と、
動作の内容を表す動作情報を生成する情報生成手段と、
前記主記憶装置の前記第１の記憶部、及び前記第２の記憶部にアクセス可能なアクセス手段と、
前記第２の記憶部を前記第１の記憶部の代替とするか否かを判定し、該判定結果を用いて前記アクセス手段を制御することにより、前記第２の記憶部を前記第１の記憶部の代替としない場合、前記動作情報を前記第２の記憶部に、前記動作情報以外の前記主記憶装置に格納すべきデータを前記第１の記憶部にそれぞれ格納させ、前記第２の記憶部を前記第１の記憶部の代替とする場合、前記動作情報を前記第１の記憶部に、前記動作情報以外の前記主記憶装置に格納すべきデータを前記第２の記憶部にそれぞれ格納させる代替判定手段と、
を有することを特徴とするデータ処理装置。
【請求項２】
前記代替制御手段は、前記第１の記憶部のアドレス別に、前記第２の記憶部を前記第１の記憶部の代替とすべき固定故障の発生の有無を判定する故障判定手段、及び前記固定故障が発生していると前記故障判定手段が判定したアドレスを表すアドレスデータを保持する保持手段、を有し、
前記アクセス手段は、前記第１の記憶部に前記動作情報を格納する場合、前記保持手段に保持されたアドレスデータが表すアドレス以外に前記動作情報を格納する、
ことを特徴とする請求項１記載のデータ処理装置。
【請求項３】
動作の内容を表す動作情報を生成する情報生成手段と、
第１の記憶部、及び前記第１の記憶部の代替とする第２の記憶部を備えた主記憶装置にアクセス可能なアクセス手段と、
前記第２の記憶部を前記第１の記憶部の代替とするか否かを判定し、該判定結果を用いて前記アクセス手段を制御することにより、前記第２の記憶部を前記第１の記憶部の代替としない場合、前記動作情報を前記第２の記憶部に、前記動作情報以外の前記主記憶装置に格納すべきデータを前記第１の記憶部にそれぞれ格納させ、前記第２の記憶部を前記第１の記憶部の代替とする場合、前記動作情報を前記第１の記憶部に、前記動作情報以外の前記主記憶装置に格納すべきデータを前記第２の記憶部にそれぞれ格納させる代替判定手段と、
を有することを特徴とするプロセッサ。
【請求項４】
データ処理装置に、第１の記憶部、及び前記第１の記憶部の代替とする第２の記憶部を備えた主記憶装置を採用し、
前記主記憶装置が採用されたデータ処理装置に、
動作の内容を表す動作情報を生成させ、
前記第２の記憶部を前記第１の記憶部の代替とするか否かを判定させ、
前記第２の記憶部を前記第１の記憶部の代替とするか否かの判定結果に従って、前記動作を前記第２の記憶部、及び前記第１の記憶部のうちの一方に格納させる、
ことを特徴とする動作履歴記録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置において、動作の内容を表す動作情報を履歴として保存するための技術に関する。
【背景技術】
【０００２】
コンピュータ等のデータ処理装置では、処理に必要なデータは主記憶装置上に読出されて用いられる。主記憶装置では、アクセスはアドレス別に行われる。それにより、主記憶装置のエラーは各アドレスで発生する可能性がある。このことから、高い信頼性が要求されるデータ処理装置の多くは、ＥＣＣ（Error Correcting Code）を格納可能な主記憶装置をサポートしている。ＥＣＣを格納可能な主記憶装置は以降、便宜的に「ＥＣＣメモリ」と表記する。【０００３】
ＥＣＣメモリの各アドレスには、データと共に、ＥＣＣが格納される。ＥＣＣは、データと共に読出され、発生したエラーの検出、発生したエラーの訂正に用いられる。このことから、ＥＣＣメモリを採用したデータ処理装置では、より高い信頼性を実現させることができる。【０００４】
ＥＣＣメモリを採用したデータ処理装置では、訂正可能なエラーが検出された場合、そのエラーが検出されたアドレスにリライトアクセスが行われるのが普通である。このリライトアクセスは、訂正可能なエラーが固定故障によるものか否かを確認するためのアクセスである。リライトアクセスでは、データの書込み、及び書込んだデータの読出しが行われる。従来のデータ処理装置の多くは、そのリライトアクセスにより再度、訂正可能なエラーが検出された場合、主記憶装置に固定故障が発生していると判定する。【０００５】
主記憶装置は、通常、データを記憶する記憶装置であるメモリチップが複数、プリント基板に実装されたメモリモジュールである。メモリモジュールのなかには、通常は使用しないメモリチップ（以降「冗長メモリチップ」と表記）を１個以上、実装したものがある。メモリモジュールでは、実装されたメモリチップをグループ化し、グループ別にメモリチップにアクセスするようになっているものがある。それにより、１つ以上のグループを冗長用とすることも行われている。【０００６】
データ処理装置では、発生した障害の原因を特定するために、動作内容を表す動作情報を履歴として保存することも行われている。履歴として保存する動作情報は、より多いほうが望ましい。メモリチップには、多くの動作情報を保存することができる。このことから、従来のデータ処理装置のなかには、動作情報の保存に冗長メモリチップを使用するものがある。【０００７】
動作情報の保存に冗長メモリチップを使用する従来のデータ処理装置では、使用しているメモリチップに発生した固定故障により、固定故障が発生したメモリチップの代替として冗長メモリチップを使用する。固定故障が発生したメモリチップの代替として使用する冗長メモリチップには、動作情報を格納することができない。このため、従来のデータ処理装置のなかには、動作情報を格納する別の記憶装置を設けているものがある。【０００８】
固定故障が発生したメモリチップの代替として冗長メモリチップを使用することにより、データ処理装置は処理の実行を継続させることができる。しかし、別の記憶装置を備えた従来のデータ処理装置では、冗長メモリチップを代替用とした後、動作情報は別の記憶装置にしか保存することはできない。別の記憶装置は、冗長メモリチップに格納する動作情報を一時的に保存するために用いていることから、容量はメモリチップと比較して非常に小さい。そのため、従来のデータ処理装置は、十分な動作情報を確保することが非常に困難となっている。【０００９】
別の記憶装置として十分な容量の記憶装置を採用した場合、動作情報は冗長メモリチップに格納する必要はないことになる。十分な容量の記憶装置は、１個の部品として実装するのが普通である。そのため、十分な容量の記憶装置を採用すると、部品点数が増え、データ処理装置の製造コストを大きく増大させることになる。このようなことから、製造コストの上昇を抑えることは、十分な動作情報を蓄積できるようにすることと共に重要と思われる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平６−４４１４５号公報
【特許文献２】特開２００８−２５０７８４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
１側面では、本発明は、製造コストの上昇を抑えつつ、十分な動作情報を蓄積可能なデータ処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明を適用した１システムは、第１の記憶部、及び第１の記憶部の代替とする第２の記憶部を備えた主記憶装置と、動作の内容を表す動作情報を生成する情報生成手段と、主記憶装置の第１の記憶部、及び第２の記憶部にアクセス可能なアクセス手段と、第２の記憶部を第１の記憶部の代替とするか否かを判定し、該判定結果を用いてアクセス手段を制御することにより、第２の記憶部を第１の記憶部の代替としない場合、動作情報を第２の記憶部に、動作情報以外の主記憶装置に格納すべきデータを第１の記憶部にそれぞれ格納させ、第２の記憶部を第１の記憶部の代替とする場合、動作情報を第１の記憶部に、動作情報以外の主記憶装置に格納すべきデータを第２の記憶部にそれぞれ格納させる代替判定手段と、を有する。
【発明の効果】
【００１３】
本発明を適用した１システムでは、製造コストの上昇を抑えつつ、十分な動作情報を蓄積することができる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態によるデータ処理装置の構成例を説明する図である。
【図２Ａ】メモリアクセス制御部の構成例を説明する図である。
【図２Ｂ】メモリアクセス制御部の構成例を説明する図である（続き）。
【図３】動作履歴制御部の詳細な構成例を説明する図である。
【図４】動作情報の構成例を説明する図である。
【図５】モード切替部によって行われるモード切り替えを説明する図である。
【図６】モード毎、及びアクセス種別毎に、通常メモリ及びスペアメモリにそれぞれ行われるアクセスの内容を説明する図である。
【図７】通常メモリから読出されたデータに訂正可能なエラーが発生した場合のメモリアクセス制御部の動作を説明する図である。
【図８】通常メモリからデータを読出す場合のメモリアクセス制御部の動作を表すフローチャートである。
【図９】メモリアクセス制御部における動作情報の書込み動作を表すフローチャートである。
【図１０】メモリアクセス制御部における動作情報の読出し動作を表すフローチャートである。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図１は、本実施形態によるデータ処理装置の構成例を説明する図である。本実施形態によるデータ処理装置は、例えばサーバとして用いられるコンピュータであり、図１に表すように、プロセッサ１、サービスプロセッサ（ＳＶＰ）２、主記憶装置３、及びＩ／Ｏ（Input/Output）装置４を備えている。【００１６】
図１に表す構成例は、本実施形態によるデータ処理装置が備える特に主要な構成要素を抜粋して表した場合の構成例である。本実施形態によるデータ処理装置の構成は、図１に表す構成例に限定されない。例えば、プロセッサ１は複数、搭載されていても良い。主記憶装置３は、プロセッサ１毎に設けても良いが、１つ以上のプロセッサ１にそれぞれ接続された主記憶装置３を複数のプロセッサ３で共有させても良い。【００１７】
上記ＳＶＰ２は、データ処理装置を管理するための管理装置であり、不図示の端末装置とネットワークを介して接続されている。データ処理装置の保守・運用は、ＳＶＰ２を用いて行うことができる。【００１８】
Ｉ／Ｏ装置４は、例えばプロセッサ１が実行する各種プログラム、プログラムの実行に必要なデータ等を格納した外部記憶装置である。Ｉ／Ｏ装置４がそのような外部記憶装置であった場合、Ｉ／Ｏ装置４に格納されたプログラムのなかで実行の対象となるプログラム、実行中のプログラムの処理に必要なデータは主記憶装置３に読出される。【００１９】
プロセッサ１は、本実施形態によるプロセッサであり、ＳＶＰ２からのコマンドに従い、そのコマンドによって指定される処理を実行する。このプロセッサ１は、図１に表すように、命令処理部１１、キャッシュ制御部１２、Ｉ／Ｏ制御部１３、ＳＶＰコマンド制御部１４、及びメモリアクセス制御部１５を備える。【００２０】
命令処理部１１は、プログラムの実行により処理を行う。この命令処理部１１は、実際には１つ以上のプロセッサ・コアである。キャッシュ制御部１２は、例えばプログラムの命令、及びデータをそれぞれ格納する２つのキャッシュメモリを備え、各キャッシュメモリの各エントリに格納する命令、或いはデータを制御する。Ｉ／Ｏ制御部１３、及びメモリアクセス制御部１５は、キャッシュ制御部１２の制御に応じて動作する。Ｉ／Ｏ制御部１３は、キャッシュ制御部１２により指定されたデータをＩ／Ｏ装置４から読出す、或いはＩ／Ｏ装置４に書込むアクセスを行う。メモリアクセス制御部１５も同様に、キャッシュ制御部１２により指定されたデータを主記憶装置３から読出す、或いは主記憶装置３に書込むアクセスを行う。【００２１】
図２Ａ及び図２Ｂは、メモリアクセス制御部の構成例を説明する図である。ここでは、説明上、便宜的に、主記憶装置３は、通常時、命令処理部１１に供給するデータの格納に使用されるメモリチップ３１、及びメモリチップ３１の代替用であるメモリチップ３２がそれぞれ１つ実装されたメモリモジュールとして表している。主記憶装置３として採用されるメモリモジュールは、例えばＤＩＭＭ（Dual Inline Memory Module）である。図２Ｂ中、メモリチップ３１は「通常メモリ」、メモリチップ３２は「スペアメモリ」とそれぞれ表記している。以降、この表記を用いる。通常メモリ３１、及びスペアメモリ３２として使用するメモリチップの個数は、特に限定されない。【００２２】
通常メモリ３１は、上記のように、固定故障が発生しない限り、プロセッサ１の命令処理部１１が処理の実行に必要なデータの格納に用いられる。固定故障が発生した場合、通常メモリ３１の代替としてスペアメモリ３２が用いられる。それにより、スペアメモリ３２は、通常メモリ３１に固定故障が発生しない限り使用されず、通常メモリ３１に固定故障が発生した場合、通常メモリ３１は使用されなくなる。本実施形態では、このことに着目し、プロセッサ１の動作内容を表す動作情報の蓄積は、通常メモリ３１に固定故障が発生したか否かにより、スペアメモリ３２、或いは通常メモリ３１に対して行うようにしている。【００２３】
主記憶装置３としては、訂正可能なエラーの検出、エラー検出時における訂正を可能とするために、各アドレスにデータとＥＣＣが格納されるＥＣＣメモリを採用している。ＥＣＣメモリを主記憶装置３として採用したことから、主記憶装置３から読出したデータに訂正可能なエラーを検出した場合、データ処理装置はリライトアクセスを行うようになっている。それにより、本実施形態では、リライトアクセス時に再度、訂正可能なエラーが検出された場合、固定故障が発生していると見なすようにしている。【００２４】
動作情報の蓄積に用いられるスペアメモリ３２、及び通常メモリ３１は、共に主記憶装置３に実装された構成要素である。そのため、動作情報の蓄積用の記憶装置を別に設ける場合と比較して、部品点数の増大、部品点数の増大に伴うデータ処理装置の製造コストの上昇は共に抑えることができる。【００２５】
スペアメモリ３２を通常メモリ３１の代替とする場合、通常メモリ３１に格納されているデータはスペアメモリ３２にコピーされる。それにより、スペアメモリ３２に蓄積されていた動作情報は全て消去される。しかし、コピー後は、通常メモリ３１に動作情報を蓄積することができる。固定故障は、アドレス毎に発生するのが普通であることから、固定故障が発生した通常メモリ３１には、動作情報を蓄積するうえで十分な容量が存在する。このようなことから、コピー後、直ぐに動作情報が必要となる状況とならない限り、十分な動作情報を蓄積することができる。【００２６】
メモリアクセス制御部１５は、通常メモリ３１に発生する訂正可能なエラーを監視し、固定故障の発生に対応する。メモリアクセス制御部１５は、図２Ａ及び図２Ｂに表すように、内部論理部１５１、アクセス制御部１５２、スペア制御部１５３、読出し制御部１５３、及び動作履歴制御部１５５を備えている。【００２７】
内部論理部１５１は、キャッシュ制御部１２からのコマンドを処理し、主記憶装置３へのアクセスを制御する。内部論理部１５１は、実行部２０１、動作履歴データ生成部２０２、及びエラーチェック部２０３を備える。【００２８】
キャッシュ制御部１２は、キャッシュミスにより、必要なデータを主記憶装置３から読出すためのリードコマンドを発行する。このとき、キャッシュメモリの全てのエントリにデータが格納されていた場合、キャッシュ制御部１２は、データを追い出すエントリを決定する。決定したエントリに格納されているデータが主記憶装置３上のデータと一致しない状態であれば、キャッシュ制御部１２は、決定したエントリに格納されているデータを主記憶装置３に書込ませるライトバックのためのライトコマンドも発行する。そのようにキャッシュ制御部１２が発行するコマンドが内部論理部１５１のメモリアクセス実行部２０１に入力される。【００２９】
メモリアクセス実行部２０１は、例えば入力したコマンドを種類別に格納する複数のキュー（メモリ）、各キューに格納されたコマンドのなかから一つを選択する調停部、選択されたコマンドを処理するコマンド処理部、等を備えている。【００３０】
リードコマンドには、例えばコマンドの種類を表す命令コード、データを読出すべきアドレスを表すアドレスデータ、が格納される。ライトコマンドには、命令コード、及びアドレスデータの他に、書込むべきデータが格納される。コマンド処理部は、例えば調停部から入力したコマンドを、命令コードとアドレスデータ、及びその他に分け、アクセス制御部１５２に出力する。それにより、書込むべきデータは命令コード、及びアドレスデータとは分けてアクセス制御部１５２に出力される。【００３１】
動作履歴データ生成部２０２は、データ処理装置の動作内容を表す動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡを生成する。動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡは、周知の構成のデータであり、例えば図４に表すような構成である。図４に表記の「Ｖ」「ＯＰＣ」「ＡＤＲＳ［３１：００］」「ＩＮＴＬ＿ＳＴＳ［６３：００］」「ＬＯＧ＿ＣＮＴＲ［１５：００］」は、それぞれ以下のような情報を表している。【００３２】
「Ｖ」は、当該動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡが有効か否かを表すフラグである。「ＯＰＣ」は、主記憶装置３へのアクセスの種別を表す操作コードである。この操作コードは、例えば上記命令コードである。「ＡＤＲＳ［３１：００］」は、アドレスデータである。「［３１：００］」は、アドレスデータが３２ビットデータであることを表している。【００３３】
「ＩＮＴＬ＿ＳＴＳ［６３：００］」は、内部論理部１５１の内部状態を表す状態データである。状態データとしては、内部論理部１５１が備えた各種レジスタの値、各キューの状態を表すデータ、等が含まれる。「［６３：００］」は、状態データが６４ビットデータであることを表している。「ＬＯＧ＿ＣＮＴＲ［１５：００］」は、コマンドが発行された間隔を表す発行間隔データである。「［１５：００］」は、発行間隔データが１６ビットデータであることを表している。以降も同様に、［］、及び［］内にコロンを挟む２つの数字を含むシンボル列はビット数を表すために用いる。【００３４】
エラーチェック部２０３は、例えばメモリアクセス実行部２０１に入力されるコマンド、及びそのメモリアクセス実行部２０１の動作を監視し、重大なエラーの検出を行う。検出の対象となるエラーとしては、主記憶装置３からのデータに発生した訂正不可能なエラーが含まれる。訂正不可能なエラーが発生した場合、通常、データ処理装置は行うべき処理を停止させなければならない。【００３５】
アクセス制御部１５２は、内部論理部１５１によるコマンドの処理に対応して、主記憶装置３にアクセスを行う。内部論理部１５１のコマンド処理部が出力する命令コード、及びアドレスデータは、アクセス制御部１５２のアドレスキュー２１１に格納される。コマンド処理部が出力するデータは、ライトデータキュー２１４に格納される。【００３６】
アドレスキュー２１１から読出された命令コード、及びアドレスデータは、選択部（図２Ｂ中「プライオリティ」と表記）２１２に出力される。選択部２１２には、他に、スペア制御部１５３からのアドレスデータＣＯＰＹ＿ＡＤＲＳ［３１：００］が出力される。選択部２１２は、スペア制御部１５３からのアドレスデータＣＯＰＹ＿ＡＤＲＳ［３１：００］を優先的に選択して、メモリアクセスパイプライン２１３に出力する。メモリアクセスパイプライン２１３は、選択部２１２がスペア制御部１５３からのアドレスデータＣＯＰＹ＿ＡＤＲＳ［３１：００］を選択した場合、選択部２１２から出力されるアドレスデータＣＯＰＹ＿ＡＤＲＳ［３１：００］を優先的に処理する。図２Ｂ中に表記の「ＭＥＭ＿ＡＣＣ＿ＡＤＲＳ［３１：００］」は、メモリアクセスパイプライン２１３から出力されるアドレスデータを表している。【００３７】
ライトデータキュー２１４から読出されたデータは、書込みデータ選択部２１５に出力される。書込みデータ選択部２１５には、他に、読出し制御部１５４から読出されたデータが出力される。書込みデータ選択部２１５は、２つのデータのうちの何れかをメモリアクセスパイプライン２１３の指示に従って選択する。図２Ｂ中に表記の「ＭＥＭ＿ＷＴ＿ＤＡＴＡ」は書込みデータ選択部２１５が出力するデータを表している。【００３８】
上記のように、メモリアクセスパイプライン２１３は、選択部２１２がスペア制御部１５３からのアドレスデータＣＯＰＹ＿ＡＤＲＳ［３１：００］を選択した場合、選択部２１２から出力されるアドレスデータＣＯＰＹ＿ＡＤＲＳ［３１：００］を優先的に処理する。メモリアクセスパイプライン２１３は、選択部２１３から出力されるアドレスデータＣＯＰＹ＿ＡＤＲＳ［３１：００］を処理する場合、書込みデータ選択部２１５に指示して、書込みデータ選択部２１５に読出し制御部１５４からのデータを選択させる。この結果、スペア制御部１５３からアドレスデータＣＯＰＹ＿ＡＤＲＳ［３１：００］が出力される場合、そのアドレスデータＣＯＰＹ＿ＡＤＲＳ［３１：００］によって指定されるアドレスに、読出し制御部１５４からのデータを書込むアクセスが行われる。それにより、リライトアクセス時におけるデータの書込みが実現される。【００３９】
スペア制御部１５３からのアドレスデータＣＯＰＹ＿ＡＤＲＳ［３１：００］には、命令コードが付加されていない。それにより、メモリアクセスパイプライン２１３は、命令コードの有無により、選択部２１２から出力されたアドレスデータがスペア制御部１５３から出力されたものか否かを特定することができる。リライトアクセスでは、データの書込みを行った後、書込んだデータの読出しを行う。そのために、メモリアクセスパイプライン２１３は、例えば選択部２１２から出力されたアドレスデータＣＯＰＹ＿ＡＤＲＳ［３１：００］にライトコマンドの命令コードを付加して出力し、次にそのアドレスデータＣＯＰＹ＿ＡＤＲＳ［３１：００］にリードコマンドの命令コードを付加して出力する。【００４０】
書込みデータ選択部２１５から出力されるデータＭＥＭ＿ＷＴ＿ＤＡＴＡは、ライトコマンドの処理時に必要となる。このことから、メモリアクセスパイプライン２１３は、ライトコマンドのアドレスデータＭＥＭ＿ＡＣＣ＿ＡＤＲＳ［３１：００］を出力する場合に、書込みデータ選択部２１５への選択指示を行う。ライトコマンドの命令コードを自ら付加していないアドレスデータＭＥＭ＿ＡＣＣ＿ＡＤＲＳ［３１：００］を出力する場合、メモリアクセスパイプライン２１３は、書込みデータ選択部２１５に、ライトデータキュー２１４からのデータを選択させる。【００４１】
メモリアクセスパイプライン２１３から出力されたアドレスデータＭＥＭ＿ＡＣＣ＿ＡＤＲＳ［３１：００］はセレクタ２１６及び２１８に入力される。各セレクタ２１６及び２１８には、他に動作履歴制御部１５５から出力されるアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］が入力される。各セレクタ２１６及び２１８は、スペア制御部１５３から出力されるモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］に従って、一つのアドレスデータを選択する。セレクタ２１６によって選択されたアドレスデータは制御信号生成部２２０に出力され、セレクタ２１８によって選択されたアドレスデータは制御信号生成部２２１に出力される。【００４２】
制御信号生成部２２０は、セレクタ２１６から入力したアドレスデータを用いて、通常メモリ３１にアクセスするための各種制御信号を生成する。他方の制御信号生成部２２１は、セレクタ２１８から入力したアドレスデータを用いて、スペアメモリ３２にアクセスするための各種制御信号を生成する。アドレスデータからは、行アドレスを指定するＲＡＳ（Row Address Strobe signal）、及び列アドレスを指定するＣＡＳ（Column Address Strobe signal）が生成される。他に制御信号としては、チップセレクト信号、ＷＥ（Write enable）信号、等を各生後信号生成部２２０及び２２１は生成する。ＷＥ信号は、命令コードがライトコマンドを表していた場合に生成、つまりアクティブとなる。【００４３】
書込みデータ選択部２１５から出力されたデータＭＥＭ＿ＷＴ＿ＤＡＴＡは、セレクタ２１７及び２１９に入力される。各セレクタ２１７及び２１９には、他に動作履歴データ生成部２０２から動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡが入力される。各セレクタ２１７及び２１９は、スペア制御部１５３から出力されるモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］に従って、データＭＥＭ＿ＷＴ＿ＤＡＴＡ、或いは動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡを選択する。セレクタ２１７によって選択されたデータはＥＣＣ生成部２２２に出力され、セレクタ２１９によって選択されたデータはＥＣＣ生成部２２３に出力される。【００４４】
各ＥＣＣ生成部２２２及び２２３は、入力したデータを用いてＥＣＣを生成し、入力したデータと共に、生成したＥＣＣを出力する。ＥＣＣ生成部２２２から出力されるデータ、及びＥＣＣは通常メモリ３１に入力され、ＥＣＣ生成部２２３から出力されるデータ、及びＥＣＣはスペアメモリ３２に入力される。【００４５】
上記のような構成により、アクセス制御部１５２は、通常メモリ３１及びスペアメモリ３２の両方に、データＭＥＭ＿ＷＴ＿ＤＡＴＡ及び動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの何れも書込むことができるようになっている。各セレクタ２１６〜２１９は、スペア制御部１５３から出力されるモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］により、選択動作が制御される。それにより、データＭＥＭ＿ＷＴ＿ＤＡＴＡ及び動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの格納先はモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］により切り替えられるようになっている。【００４６】
読出し制御部１５４は、通常メモリ３１及びスペアメモリ３２から読出されたデータを処理する。通常メモリ３１及びスペアメモリ３２から読出されたデータ及びＥＣＣは、読出し制御部１５４の各セレクタ２３１及び２３２に出力される。各セレクタ２３１及び２３２は、モード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］により、選択動作が制御される。セレクタ２３２によって選択されたデータ及びＥＣＣはＳＶＰコマンド制御部１４に出力され、セレクタ２３１によって選択されたデータ及びＥＣＣはＥＣＣチェック部２３３に出力される。【００４７】
ＥＣＣチェック部２３３は、入力されたＥＣＣを用いて、入力されたデータに発生したエラーの検出、及び訂正可能なエラーの訂正を行う。訂正可能なエラーが検出された場合、ＥＣＣチェック部２３３は、その旨を表すエラー情報をスペア制御部１５３に出力する。ＥＣＣチェック部２３３は、その場合、例えば論理値が１のエラー情報を出力する。エラーが検出されなかったデータ、或いはエラーを訂正したデータはアクセス制御部１５２の書込みデータ選択部２１５、及び内部論理部１５１のメモリアクセス実行部２０１に出力される。【００４８】
メモリアクセス実行部２０１に出力されたデータは、リードコマンドによって読出されたデータとして扱われる。書込みデータ選択部２１５に入力されたデータは、訂正可能なエラーが検出された場合に選択されることになる。【００４９】
ＥＣＣチェック部２３３から出力されたエラー情報は、スペア制御部１５３のスペア切替判定部２４１に出力される。スペア制御部１５３は、着込みデータ選択部２１５から出力されるデータＭＥＭ＿ＷＴ＿ＤＡＴＡの格納先を通常メモリ３１からスペアメモリ３２に切り換える制御を行う。【００５０】
メモリアクセスパイプライン２１３から出力されたアドレスデータＭＥＭ＿ＡＣＣ＿ＡＤＲＳ［３１：００］は、コピーアドレス生成部２４３及びエラーアドレス保持部２４４に出力される。スペア切替判定部２４１は、エラー情報がアクティブとなった場合、コピーアドレス生成部２４３にアドレスデータＭＥＭ＿ＡＣＣ＿ＡＤＲＳ［３１：００］を保持させる。【００５１】
コピーアドレス生成部２４３は、カウンタ２５１及び判定部２５２を備えている。メモリアクセスパイプライン２１３からのアドレスデータＭＥＭ＿ＡＣＣ＿ＡＤＲＳ［３１：００］は、カウンタ２５１の初期値として保持される。カウンタ２５１のカウント値は、アクセス制御部１５２の選択部２１２に出力される。それにより、スペア切替判定部２４１は、例えば選択部２１２による選択動作を制御し、選択部２１２にカウンタ２５１のカウント値を選択させる。【００５２】
通常メモリ３１に固定故障が発生した場合、この通常メモリ３１の代替としてスペアメモリ３２が用いられる。通常メモリ３１の代替としてスペアメモリ３２を用いる場合、通常メモリ３１に格納されている全てのデータはスペアメモリ３２にコピーしなければならない。上記カウンタ２５１のカウント値は、そのコピーを行う際にアドレスデータＣＯＰＹ＿ＡＤＲＳ［３１：００］として用いられる。【００５３】
カウンタ２５１によるカウントは、初期値として０を設定するカウント値をインクリメントしていくことで行うようになっている。判定部２５２は、カウンタ２５１のカウント値を、通常メモリ３１の最大アドレス値と比較し、そのカウント値が最大アドレス値を超えたか否かを判定する。カウント値が最大アドレス値を超えている場合、判定部２５２は、コピーが完了した旨を表すコピー完了信号を出力する。コピー完了信号の出力は、例えばコピー完了信号をアクティブにすることで行われる。ここでは、アクティブ時のコピー完了信号の論理値は１、つまりアクティブ時のコピー完了信号のレベルはＨ（High）と想定する。【００５４】
選択部２１２からカウンタ２５１のカウント値を入力したメモリアクセスパイプライン２１３は、上記のように、書込みデータ選択部２１５に読出し制御部１５４からのデータ（エラーが訂正されたデータ）を選択させる。読出し制御部１５４からのデータを通常メモリ３１に書込ませるために、メモリアクセスパイプライン２１３は、入力したカウント値であるアドレスデータＣＯＰＹ＿ＡＤＲＳ［３１：００］をアドレスデータＭＥＭ＿ＡＣＣ＿ＡＤＲＳ［３１：００］として、ライトコマンドの命令コードを付加し出力する。次に、メモリアクセスパイプライン２１３は、このアドレスデータＭＥＭ＿ＡＣＣ＿ＡＤＲＳ［３１：００］に、リードコマンドの命令コードを付加して出力する。このようにして、訂正可能なエラーが検出された通常メモリ３１のアドレスには、エラーを訂正したデータの書込み、書込んだデータの読出しによるリライトアクセスが行われる。【００５５】
このリライトアクセスでのデータ読出し時に訂正可能なエラーをＥＣＣチェック部２３３が検出すると、ＥＣＣチェック部２３３は再度、論理値が１のヒット情報を出力する。スペア切替判定部２４１は、リライトアクセスでヒット情報の論理値が１となった場合、固定故障が通常メモリ３１に発生していると見なし、コピーモードへの移行を指示するための信号であるコピーモード移行信号をモード切替部２４２に出力する。ここでは、アクティブ時のコピーモード移行信号の論理値は１、つまりアクティブ時のコピーモード移行信号のレベルはＨ（High）と想定する。【００５６】
コピーモードは、通常メモリ３１に格納されている全てのデータをスペアメモリ３２にコピーするためのモードである。コピーモードの設定時に、エラーアドレス生成部２４３のカウンタ２５１のカウント値は、通常メモリ３１からのデータの読出し、読出したデータのスペアメモリ３２への書込みに用いるアドレスデータＣＯＰＹ＿ＡＤＲＳ［３１：００］として用いられる。【００５７】
本実施形態では、このコピーモードの他に、通常モード、及びスペアモードが存在する。通常モードは、通常メモリ３１の代替としてスペアメモリ３２を用いないモードであり、スペアモードは、通常メモリ３１の代替としてスペアメモリ３２を用いるモードである。通常メモリ３１に固定故障が発生した場合、通常メモリ３１のデータを全てスペアメモリ３２にコピーするために、モードは、通常モード→コピーモード→スペアモード、の順序で移行する。コピーアドレス生成部２４３の判定部２５２から出力されるコピー完了信号は、モード切替部２４２にコピーモードからスペアモードに移行させるために用いられる。【００５８】
図５は、モード切替部によって行われるモード切り替えを説明する図である。
図５に表すように、モード切替部２４２が出力する切り替えモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］の２ビットの値は、モードの移行により変化する。２ビットの値は、通常モード時では“００”である。その２ビットの値は、コピーモード時では“０１”、スペアモード時では“１０”である。モード切替部２４２は、コピーモード移行信号がアクティブ、つまりその論理値が１となった場合に、切り替えモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］の値を“００”から“０１”に変化させる。その後、コピー完了信号がアクティブ、つまりその論理値が１となった場合、モード切替部２４２は、切り替えモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］の値を“０１”から“１０”に変化させる。【００５９】
アクセス制御部１５２の各セレクタ２１６〜２１９は、上記のように、スペア制御部１５３から出力されるモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］により、選択動作が制御される。【００６０】
このモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］が“００”であった場合、つまり通常モードが設定されていた場合、セレクタ２１６は、メモリアクセスパイプライン２１３からのアドレスデータＭＥＭ＿ＡＣＣ＿ＡＤＲＳ［３１：００］を選択する。セレクタ２１７は、書込みモード選択部２１５からのデータＭＥＭ＿ＷＴ＿ＤＡＴＡを選択する。一方、セレクタ２１８は、動作履歴制御部１５５からのアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］を選択し、セレクタ２１９は動作履歴データ生成部２０２からの動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡを選択する。【００６１】
このようなことから、通常モード時は、通常メモリ３１にはキャッシュ制御部１２により指示されたデータが書込まれ、スペアメモリ３２には動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡが書込まれる。モード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］が“１０”であった場合、つまりスペアモードが設定されていた場合、逆に、通常メモリ３１には動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡが書込まれ、スペアメモリ３２にはキャッシュ制御部１２により指示されたデータが書込まれる。【００６２】
通常モード、及びスペアモードでは、各セレクタ２１６〜２１９は、モード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］の値によって指示される方のデータを選択して出力する。しかし、モード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］の値が“０１”であるコピーモードでは、通常メモリ３１からのデータの読出し、読出したデータのスペアメモリ３２への書込みを行わなければならない。それにより、各セレクタ２１６〜２１９の選択動作は、メモリアクセスパイプライン２１３がアドレスデータＭＥＭ＿ＡＣＣ＿ＡＤＲＳ［３１：００］に付加する命令コードに応じて制御しなければならない。このことから、コピーモード時には、各セレクタ２１６〜２１９の選択動作は例えばメモリアクセスパイプライン２１３によって制御される。メモリアクセスパイプライン２１３は、リードコマンドの命令コードを付加したアドレスデータＭＥＭ＿ＡＣＣ＿ＡＤＲＳ［３１：００］を出力する場合、通常メモリ３１からデータが読出されるように各セレクタ２１６〜２１９を制御する。ライトコマンドの命令コードを付加したアドレスデータＭＥＭ＿ＡＣＣ＿ＡＤＲＳ［３１：００］を出力する場合、メモリアクセスパイプライン２１３は、スペアメモリ３２にデータＭＥＭ＿ＷＴ＿ＤＡＴＡが書込まれるように各セレクタ２１６〜２１９を制御する。【００６３】
図６は、モード毎、及びアクセス種別毎に、通常メモリ及びスペアメモリにそれぞれ行われるアクセスの内容を説明する図である。
図６において、モードはモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］の値により表している。アクセス種別としては、「通常のメモリアクセス（リード）」「通常のメモリアクセス（ライト）」「動作情報の書込み」「動作情報の読出し」「コピーリード」及び「コピーライト」の６種類を表している。通常のメモリアクセス（リード）及び通常のメモリアクセス（ライト）は、キャッシュ制御部１２の制御によって行われるアクセスである。動作情報の書込み、及び動作情報の読出しは、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの書込み、或いは読出しのためのアクセスである。コピーリード及びコピーライトは、リライトアクセスによって行われるアクセスである。【００６４】
図６では、モード毎、及びアクセス種別毎に、アクセス制御部１５２がアクセスに用いるデータ、及び読出し制御部１５４が出力する読出されたデータ（リードデータ）を表している。図６中の「−」は、対応するデータが存在しないことを表している。図６に表すように、通常メモリ３１及びスペアメモリ３２には、モード毎、及びアクセス種別毎に、上述したようなアクセスが行われる。【００６５】
図７は、通常メモリから読出されたデータに訂正可能なエラーが発生した場合のメモリアクセス制御部の動作を説明する図である。この図７では、訂正可能なエラーが検出された通常メモリ３１からのデータの読出し、その後にリライトアクセスが続けて行われる場合を例にとって、動作のシーケンスを表している。【００６６】
図７には、「メモリアクセス命令」「パイプライン」「ＤＩＭＭアクセス」「リードデータ」「ＥＣＣチェック」「エラーアドレス」「訂正書込み」「訂正書込みデータ」「再読出し」及び「モード」を表記している。これらは、それぞれ以下のような動作を表している。【００６７】
メモリアクセス命令は、キャッシュ制御部１２によって発行されたコマンドである。その表記の横に配置した矩形は、メモリアクセスパイプライン２１３によってコマンドの命令コード、及びアドレスデータＭＥＭ＿ＡＣＣ＿ＡＤＲＳ［３１：００］が出力されるタイミングを表している。その矩形が表すコマンドは、リードコマンドである。【００６８】
パイプラインでは、コマンドによる通常メモリ３１へのアクセス時に、その通常メモリ３１に供給されるクロック信号を表している。その表記の横に配置した各矩形は、それぞれクロック信号の１周期を表している。【００６９】
ＤＩＭＭアクセスでは、アクセスのために通常メモリ３１に出力される信号を表している。その表記の横に配置した各矩形は、信号が出力されるタイミングを表している。その信号としては、ＲＡＳ、ＣＡＳ及びＷＴのみを表している。ＷＴは、通常メモリ３１に書込まれるデータの信号を表している。【００７０】
リードデータでは、通常メモリ３１からデータが読出されるタイミングを表している。そのタイミングは、その表記の横に配置した矩形で表している。「ＲＤ」はリードデータの略記である。【００７１】
ＥＣＣチェックでは、読出し制御部１５４のＥＣＣチェック部２３３がエラー情報を出力するタイミングを矩形の位置で表している。「ＥＲＲ」は、訂正可能なエラーが検出された旨を表すエラー情報が出力されたことを表している。【００７２】
上記のように、訂正可能なエラーの検出によって、メモリアクセスパイプライン２１３から出力されたアドレスデータＭＥＭ＿ＡＣＣ＿ＡＤＲＳ［３１：００］はコピーアドレス生成部２４３に保持され、選択部２１２に出力される。エラーアドレスでは、コピーアドレス生成部２４３からアドレスデータが出力される期間、及びそのアドレスデータの内容を矩形の長さ、及び位置により表している。「ＥＲＲ＿ＡＤＲＳ」は、訂正可能なエラーの検出によってコピーアドレス生成部２４３からアドレスデータＣＯＰＹ＿ＡＤＲＳ［３１：００］として出力されるアドレス値を表している。【００７３】
訂正書込みでは、リライトアクセス時のライトコマンドの命令コード、及びアドレスデータＭＥＭ＿ＡＣＣ＿ＡＤＲＳ［３１：００］（ＥＲＲ＿ＡＤＲＳ）がメモリアクセスパイプライン２１３から出力されるタイミングを矩形の位置により表している。訂正書込みデータでは、エラーを訂正したデータの出力をＥＣＣチェック部２３３が維持する期間を矩形の長さ、及び位置により表している。訂正されたデータは「ＲＥＷＲＩＴＥ＿ＤＡＴＡ」と表記している。【００７４】
再読出しでは、リライトアクセス時のリードコマンドの命令コード、及びアドレスデータＭＥＭ＿ＡＣＣ＿ＡＤＲＳ［３１：００］（ＥＲＲ＿ＡＤＲＳ）がメモリアクセスパイプライン２１３から出力されるタイミングを矩形の位置により表している。【００７５】
モードでは、通常モード、及びコピーモードがそれぞれ設定される期間を各矩形の長さ、及び位置により表している。【００７６】
図７に表すように、訂正可能なエラーの検出によって、リライトアクセスのためのライトコマンド、及びリードコマンドがメモリアクセスパイプライン２１３によって発行・処理される。そのリライトアクセスでのリードコマンドの実行によって通常メモリ３１から読出されたデータに訂正可能なエラーが発生していたため、モードは通常モードからコピーモードに移行し、コピーアドレス生成部２４３に保持された値はＥＲＲ＿ＡＤＲＳから０に変更される。【００７７】
動作履歴制御部１５５は、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの格納、及び読出しを制御するものであり、カウント更新部２６１、及びレジスタ２６２を備える。図３を参照し、この動作履歴制御部１５５の構成、及び動作について詳細に説明する。この図３は、動作履歴制御部１５５の詳細な構成例を説明する図である。【００７８】
図３では、外部からの信号として、切り替えモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］、及びアドレスデータＥＲＲ＿ＡＤＲＳ［３１：００］の他に、「履歴書込み指示」「フリーズ要求」「フリーズ解除要求」及び「読出し要求」を表記している。始めに、これらの信号について説明する。【００７９】
動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡは、動作履歴データ生成部２０２が生成し出力する。動作履歴データ生成部２０２は、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡを出力する場合、出力する動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの書込みを動作履歴制御部１５５に指示する。履歴書込み指示は、動作履歴データ生成部２０２が動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの書込みを行わせるために出力する信号である。【００８０】
エラーチェック部２０３は、重大なエラーを検出した場合、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの書込み停止を動作履歴制御部１５５に指示する。フリーズ要求は、その指示のための信号である。このフリーズ要求を動作履歴制御部１５５に出力する場合、内部論理部１５１は、重大なエラーの発生を例えばキャッシュ制御部１２を介して命令処理部１１に通知すると共に、ＳＶＰコマンド制御部１４を介してＳＶＰ２に通知する。【００８１】
ＳＶＰ２とネットワークを介して接続された端末装置を操作するオペレータは、重大なエラーの発生を確認すると、そのエラーの原因を特定するために、履歴として蓄積された動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの収集を行う。その後、データ処理装置に処理を継続させる場合、オペレータは、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの蓄積を再開させる。フリーズ解除要求は、動作履歴制御部１５５に動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの蓄積を再開させるための信号であり、ＳＶＰ２からの指示によってＳＶＰコマンド制御部１４が出力する。このフリーズ解除要求は、内部論理部１５１にも入力され、このフリーズ解除要求の入力により、エラーチェック部２０３は、フリーズ要求の出力を停止させる。ここでは、フリーズ要求、及びフリーズ解除要求の出力は共に、信号レベルをアクティブにすることで行われると想定する。アクティブの信号レベルはＨと想定する。【００８２】
読出し要求は、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの読出しを指示するための信号である。履歴として蓄積された動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの収集は、読出し要求をアクティブにすることで実現される。フリーズ解除要求と同様に、読出し要求は、ＳＶＰ２からの指示によってＳＶＰ制御部１４が出力する。アクティブの信号レベルはＨと想定する。【００８３】
図３において、レジスタ２６２は「ＦＦ」（フリップフロップ）と表記している。レジスタ２６２以外は全てカウント更新部２６１の構成要素である。カウント更新部２６１は、レジスタ２６２に保持されるアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］の値の更新、及び動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの書込み、或いは読出しのための信号生成を行う。次に、各構成要素の接続関係、及びその接続関係によって実現される動作について詳細に説明する。【００８４】
フリーズ要求の否定は、ＡＮＤゲート３２１に入力される。ＡＮＤゲート３２１は、フリーズ要求の否定と、フリップフロップ（ＦＦ）３２３が出力するデータとの論理積をＯＲゲート３２２に出力する。ＯＲゲート３２２は、ＡＮＤゲート３２１からの論理積と、フリーズ要求との論理和を出力する。ＯＲゲート３２２から出力される論理和がフリップフロップ３２３にデータとして保持される。【００８５】
ＡＮＤゲート３２４は、フリップフロップ３２３からのデータの否定と、履歴書込み指示との論理積を出力する。ＡＮＤゲート３２４から出力される論理積は、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの書込みを制御するための信号ＨＩＳ＿ＷＴ＿ＥＮＢとなる。動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの書込みは、信号ＨＩＳ＿ＷＴ＿ＥＮＢがアクティブとなった場合に可能となる。アクティブの信号レベルはＨである。【００８６】
動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡを書込むには、履歴書込み指示の信号レベルに信号ＨＩＳ＿ＷＴ＿ＥＮＢの信号レベルを連動させる必要がある。つまり、履歴書込み指示のアクティブにより信号ＨＩＳ＿ＷＴ＿ＥＮＢもアクティブとなる必要がある。そのような連動は、フリーズ要求がインアクティブであり、且つフリーズ解除要求がアクティブの場合に実現される。【００８７】
上記読出し要求は、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの読出しを制御するための信号ＨＩＳ＿ＲＤ＿ＥＮＢとして用いられる。【００８８】
アドレスデータＥＲＲ＿ＡＤＲＳ［３１：００］は、比較器３０１に出力される。比較器３０１は、アドレスデータＥＲＲ＿ＡＤＲＳ［３１：００］の値を加算器３０３の加算結果と比較し、それらが一致する場合に、論理値が１の比較結果をＡＮＤゲート３０４に出力する。【００８９】
図３では、ＡＮＤゲート３０４に切り替えモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］が入力されるように表している。ＡＮＤゲート３０４に入力される論理値は、切り替えモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］の値が“１０”、つまりスペアモードが設定されている場合に１となる。これは、通常モード時、及びコピーモード時には、比較器３０１の比較結果は不要だからである。このようなことから、ＡＮＤゲート３０４が出力する論理積の値は、スペアモードの設定時であり、且つアドレスデータＥＲＲ＿ＡＤＲＳ［３１：００］の値が加算器３０３の加算結果と一致する場合にのみ１となる。【００９０】
加算器３０３の加算結果は加算器３０２に入力され、加算器３０２は入力した加算結果に１を加えた加算結果を出力する。図３では、加算器３０２の加算結果はＡＮＤゲート３０５に入力され、加算器３０３の加算結果はＡＮＤゲート３０６に入力されるように表している。ＡＮＤゲート３０５にはＡＮＤゲート３０４の出力する論理積が入力され、ＡＮＤゲート３０６にはＡＮＤゲート３０４の出力する論理積の否定が入力される。【００９１】
ＡＮＤゲート３０５及び３０６は共に、実際にはＡＮＤゲート３０４の出力する論理積により、加算器３０２及び３０３の加算結果を出力するマスク回路である。それにより、ＡＮＤゲート３０４の出力する論理積の値が１であった場合、ＡＮＤゲート３０５から加算器３０２の加算結果が出力され、ＡＮＤゲート３０４の出力する論理積の値が０であった場合、ＡＮＤゲート３０６から加算器３０３の加算結果が出力される。ＡＮＤゲート３０５或いは３０６から出力された加算結果は、ＯＲゲート３０７を介してＡＮＤゲート３０８に入力される。【００９２】
ＡＮＤゲート３０８及び３０９も、上記ＡＮＤゲート３０５及び３０６と同様に、実際にはマスク回路である。ＡＮＤゲート３０８には、ＯＲゲート３０７からの加算結果の他に、ＯＲゲート３２５からの論理和が入力される。ＡＮＤゲート３０９には、レジスタ２６２に保持されたアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］と、ＯＲゲート３２５からの論理和の否定とが入力される。ＯＲゲート３２５が出力する論理和は、信号ＨＩＳ＿ＲＤ＿ＥＮＢと信号ＨＩＳ＿ＷＴ＿ＥＮＢとの論理和である。【００９３】
ＯＲゲート３２５の出力する論理和の値が１であった場合、ＡＮＤゲート３０８から加算器３０２の加算結果が出力され、ＯＲゲート３２５の出力する論理和の値が０であった場合、ＡＮＤゲート３０９からアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］が出力される。ＡＮＤゲート３０８から出力される加算結果、或いはＡＮＤゲート３０９から出力されるアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］は、ＯＲゲート３１０を介してレジスタ２６２に入力される。【００９４】
ＯＲゲート３２５の出力する論理和の値が０となるのは、信号ＨＩＳ＿ＷＴ＿ＥＮＢ及びＨＩＳ＿ＲＤ＿ＥＮＢが共にインアクティブの場合である。そのため、信号ＨＩＳ＿ＷＴ＿ＥＮＢ及びＨＩＳ＿ＲＤ＿ＥＮＢが共にインアクティブの場合、レジスタ２６２は、同じ値のアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］を保持することになる。それにより、レジスタ２６２に保持されたアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］は必要に応じて更新される。信号ＨＩＳ＿ＷＴ＿ＥＮＢ及びＨＩＳ＿ＲＤ＿ＥＮＢが共にインアクティブの場合とは、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの書込み、及び読出しの何れも行わない場合である。【００９５】
信号ＨＩＳ＿ＷＴ＿ＥＮＢ及びＨＩＳ＿ＲＤ＿ＥＮＢは、アドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］と共にセレクタ２１６及び２１８に出力される。それにより、信号ＨＩＳ＿ＷＴ＿ＥＮＢ及びＨＩＳ＿ＲＤ＿ＥＮＢ、並びにアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］は、制御信号生成部２２０或いは２２１によって処理される。このため、各制御信号生成部２２０及び２２１は、例えば信号ＨＩＳ＿ＷＴ＿ＥＮＢ及びＨＩＳ＿ＲＤ＿ＥＮＢを命令コードのように扱う。【００９６】
上記のように、動作履歴制御部１５５は、メモリアクセス制御部１５外から信号としてフリーズ解除要求、及び読出し要求を入力し、入力した信号に応じて動作する。しかし、フリーズ解除要求、及び読出し要求は共に、ＳＶＰ２の制御によって入力される信号であり、命令処理部１１或いはキャッシュ制御部１２等からの信号は入力されない。それにより、動作履歴制御部１５５は、フリーズ解除要求、及び読出し要求にそれぞれ対応する動作を、メモリアクセス制御部１５内で送受信される信号により自律的に行う。アクセス制御部１５２、スペア制御部１５３、及び読出し制御部１５４もメモリアクセス制御部１５内で送受信される信号により、自律的に動作する。【００９７】
このようなことから、命令処理部１１及びキャッシュ制御部１２等の何れにも、通常メモリ３１での固定故障の発生の有無に応じて、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの書込み先を変更するための機能を搭載させる必要は基本的にない。そのため、既に存在するプロセッサには、メモリアクセス制御部を本実施形態のようなメモリアクセス制御部１５に置き換えることにより、本実施形態を適用することが可能である。本実施形態において、個別にアクセス可能な通常メモリ３１、及びスペアメモリ３２を備えた主記憶装置３を採用したのは、メモリアクセス制御部１５による自律的な動作により、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの書込み先を変更可能とするためである。命令処理部１１或いはキャッシュ制御部１２等に新たな機能を追加する場合には、バンク指定により通常メモリ３１或いはスペアメモリ３２を選択可能な主記憶装置３を採用しても良い。このようなことから、主記憶装置３として採用する記憶装置は特に限定されない。【００９８】
動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡを書込む、或いは読出すアクセスは、通常メモリ３１、及びスペアメモリ３２に存在するアドレスを対象にしなければならない。このため、特には図示していないが、ＯＲゲート３１０から出力されるデータの値が通常メモリ３１の最大アドレス値を超える場合、そのデータの値を０（最小アドレス値）にする仕組みが動作履歴制御部１５５には備えられている。【００９９】
以降は、図８〜図１０に表すフローチャートを参照して、メモリアクセス制御部１５の動作について詳細に説明する。
図８は、通常メモリからデータを読出す場合のメモリアクセス制御部の動作を表すフローチャートである。始めに図８を参照して、通常メモリ３１からデータを読出す動作、及びその読出しによって得られたデータに訂正可能なエラーが発生しているか否かに応じた動作について、詳細に説明する。【０１００】
通常モードでは、上記のように、メモリアクセスパイプライン２１３から出力された命令コード、及びアドレスデータＭＥＭ＿ＡＣＣ＿ＡＤＲＳ［３１：００］はセレクタ２１６を介して制御信号生成部２２０に入力される。その結果、制御信号生成部２２０は、通常メモリ３１からデータを読出すアクセスを行う（Ｓ１）。そのアクセスにより通常メモリ３１から読出されたＥＣＣ、及びデータは、セレクタ２３１を介してＥＣＣチェック部２３３に入力される。それにより、ＥＣＣチェック部２３３は、ＥＣＣを用いてデータに発生したエラーの検出を行い、訂正可能なエラーを検出した場合、エラー情報をアクティブにする。スペア切替判定部２４１は、エラー情報を監視することにより、読出されたデータに訂正可能なエラーが検出されたか否かを判定する（Ｓ２）。【０１０１】
訂正可能なエラーが検出されなかった場合、Ｓ２の判定はＮｏとなり、スペア切替判定部２４１は制御を行わない。それにより、通常メモリ３１への次のアクセスが行われる（Ｓ１４）。訂正可能なエラーが検出された場合、Ｓ２の判定はＹｅｓとなる。それにより、スペア切替判定部２４１は、メモリアクセスパイプライン２１３から出力されているアドレスデータＭＥＭ＿ＡＣＣ＿ＡＤＲＳ［３１：００］をアドレスデータＥＲＲ＿ＡＤＲＳ［３１；００］としてコピーアドレス生成部２４３に保持させる（Ｓ３）。【０１０２】
コピーアドレス生成部２４３に保持されたアドレスデータＥＲＲ＿ＡＤＲＳ［３１：００］は、選択部２１２を介してメモリアクセスパイプライン２１３に入力される。ＥＣＣチェック部２３３から出力される、エラーが訂正されたデータは書込みデータ選択部２１５に入力される。それにより、メモリアクセスパイプライン２１３は、アドレスデータＥＲＲ＿ＡＤＲＳ［３１：００］に、ライトコマンド及びリードコマンドの命令コードを順次、付加して出力する。この結果、通常メモリ３１のアドレスデータＥＲＲ＿ＡＤＲＳ［３１：００］によって指定されるアドレスに対し、データ、及びＥＣＣを書込み、書込んだデータ、及びＥＣＣを読出すリライトアクセスが行われる（Ｓ４、Ｓ５）。【０１０３】
読出されたデータは、ＥＣＣチェック部２３３により、エラー検出が行われる。それにより、スペア切替判定部２４１は、エラー情報を監視することにより、読出されたデータに訂正可能なエラーが再度、検出されたか否かを判定する（Ｓ６）。【０１０４】
訂正可能なエラーが再度、検出されなかった場合、Ｓ６の判定はＮｏとなり、スペア切替判定部２４１は制御を行わない。それにより、通常メモリ３１への次のアクセスが行われる（Ｓ１４）。訂正可能なエラーが再度、検出された場合、Ｓ６の判定はＹｅｓとなる。それにより、スペア切替判定部２４１は、メモリアクセスパイプライン２１３から出力されているアドレスデータＥＲＲ＿ＡＤＲＳ［３１：００］をエラーアドレス保持部２４４に保持させ、コピーモード移行信号をアクティブにする（Ｓ７）。この結果、モード切替部２４２は、値が“０１”の切り替えモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］を出力する。【０１０５】
スペア切替制御部２４１は、次に、コピーアドレス生成部２４３のカウンタ２５１に０をセットし、通常メモリ３１のデータを全てスペアメモリ３２に移すコピーを開始させる（Ｓ８）。以降、スペア切替制御部２４１は、例えばＥＣＣチェック部２３３の動作を通して、アドレス毎に行われるデータのコピーの完了を監視する。【０１０６】
コピーアドレス生成部２４３のカウンタ２５１のカウント値は、コピーを行うアドレスを表すアドレスデータとして、選択部２１２を介してメモリアクセスパイプライン２１３に入力される。メモリアクセスパイプライン２１３は、上記のように、アドレスデータに付加する命令コードに応じて、各セレクタ２１６〜２１９の選択動作を制御する。それにより、通常メモリ３１からのデータの読出し、読出したデータのスペアメモリ３２への書込みが行われる（Ｓ９、Ｓ１０）。【０１０７】
スペア切替判定部２４１は、スペアメモリ３２へのデータの書込みが完了すると、その完了をコピーアドレス生成部のカウンタ２５１に通知する。その通知により、カウンタ２５１は、カウント値をインクリメントする（Ｓ１１）。【０１０８】
インクリメント後のカウント値は、判定部２５２によって、通常メモリ３１の最大アドレス値を超えるか否か判定される。その判定結果は、コピー完了信号としてモード切替部２４２に出力される。【０１０９】
カウンタ２５１のカウント値が通常メモリ３１の最大アドレス値を超えていた場合、Ｓ１２の判定はＹｅｓとなり、判定部２５２はコピー完了信号をアクティブにする。その結果、モード切替部２４２は、切り替えモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］の値を“０１”から“１０”に変化させ、コピーモードからスペアモードに移行させる（Ｓ１３）。その後は、通常メモリ３１の代替としてスペアメモリ３２が用いられ、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡは通常メモリ３１に蓄積される。【０１１０】
カウンタ２５１のカウント値が通常メモリ３１の最大アドレス値以下だった場合、Ｓ１２の判定はＮｏとなり、判定部２５２はコピー完了信号をインアクティブのままとする。その結果、アドレスを変えて、通常メモリ３１からのデータの読出し、読出したデータのスペアメモリ３２への書込みが行われる（Ｓ９、Ｓ１０）。【０１１１】
図９は、メモリアクセス制御部における動作情報の書込み動作を表すフローチャートである。次に図９を参照し、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの書込み動作について詳細に説明する。【０１１２】
動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの書込みは、システムの立ち上げ、つまりデータ処理装置の電源のオンによって開始される。システムの立ち上げ時では、フリーズ要求はインアクティブ、フリーズ解除要求はアクティブとなっている。また、動作履歴制御部１５５のレジスタ２６２には、アドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］の初期値が設定される（Ｓ２１）。初期値の設定は、例えば命令処理部１１等に行わせても良いが、不揮発性の不図示のメモリに初期値を格納させ、そのメモリに格納されている初期値をレジスタ２６２に保持させるようにしても良い。【０１１３】
動作履歴データ生成部２０２は、例えばメモリアクセス実行部２０１の指示により、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの生成を行う。このことから、動作履歴データ生成部２０１は、メモリアクセス実行部２０１から動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの書込み指示があるか否かの判定を行う（Ｓ２２）。【０１１４】
書込み指示がなかった場合、Ｓ２２の判定はＮｏとなり、後述するＳ２９に移行する。それにより、フリーズ要求がアクティブとなるまでの間、メモリアクセス実行部２０１からの書込み指示に対応できる状態が維持される。図９中、フリーズ要求は「ＨＩＳ＿ＦＲＺ＿ＳＴＳ」と表記している。【０１１５】
一方、書込み指示があった場合、Ｓ２２の判定はＹｅｓとなり、動作履歴データ生成部２０２は、次に切り替えモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］の値が“０１”か否か、つまりコピーモードが設定されているか否かを判定する（Ｓ２３）。コピーモードが設定されていた場合、Ｓ２３の判定はＹｅｓとなり、後述するＳ２９に移行する。それにより、メモリアクセス実行部２０１からの書込み指示は無視される。【０１１６】
一方、コピーモードが設定されていない場合、Ｓ２３の判定はＮｏとなり、動作履歴データ生成部２０２は、メモリアクセス実行部２０１から必要な情報を収集して、図４に表すような動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡを生成する。動作履歴データ生成部２０２は、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡを生成・出力した後、動作履歴制御部１５５に書込み指示を行う（Ｓ２４）。この書込み指示により、信号ＨＩＳ＿ＷＴ＿ＥＮＢはアクティブ、ＯＲゲート３２５の出力する論理和の値は１となり、加算器３０３の加算結果が新たにレジスタ２６２に保持される結果、アドレスデータＥＲＲ＿ＡＤＲＳ［３１：００］の値はインクリメントされる（Ｓ２５）。【０１１７】
動作履歴制御部１５５は、ＡＮＤゲート３０４により、切り替えモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］の値が“００”、或いは“１０”であった場合に、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの書込みのための動作を行う。切り替えモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］の値が“００”の場合、つまり通常モードが設定されていた場合、ＡＮＤゲート３０４の出力する論理積の値は常に０となり、スペアメモリ３２の全てのアドレスは動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡを書込む対象となる。このことから、動作履歴制御部１５５は、切り替えモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］の値が“１０”か否か判定する（Ｓ２６）。切り替えモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］の値が“００”であった場合、Ｓ２６の判定はＮｏとなる。その結果、動作履歴制御部１５５は、加算器３０３の加算結果を用いて動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡを書込むためのコマンドを作成し（Ｓ２７）、そのコマンドによって、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡをスペアメモリ３２に書込ませる（Ｓ２８）。その後は、フリーズ要求ＨＩＳ＿ＦＲＺ＿ＳＴＳがインアクティブであれば、Ｓ２９の判定がＮｏとなってＳ２２に戻ることになる。それにより、メモリアクセス実行部２０１の次の書込み指示に対応することができる。一方、フリーズ要求ＨＩＳ＿ＦＲＺ＿ＳＴＳがアクティブであれば、Ｓ２９の判定がＹｅｓとなって、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの書込みは終了する（Ｓ３０）。【０１１８】
切り替えモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］の値が“１０”であった場合、Ｓ２５の判定はＹｅｓとなる。その場合、動作履歴制御部１５５は、アドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］の値をインクリメントした値、つまり加算器３０３の加算結果がアドレスデータＥＲＲ＿ＡＤＲＳ［３１：００］と一致するか否か判定する。加算器３０３の加算結果がアドレスデータＥＲＲ＿ＡＤＲＳ［３１：００］と一致しない場合、Ｓ３１の判定はＮｏとなる。その結果、動作履歴制御部１５５は、加算器３０３の加算結果を用いて動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡを書込むためのコマンドを作成し（Ｓ３２）、そのコマンドによって、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡを通常メモリ３１に書込ませる（Ｓ２３）。その後は、上記Ｓ２９に移行する。【０１１９】
加算器３０３の加算結果がアドレスデータＥＲＲ＿ＡＤＲＳ［３１：００］と一致する場合、Ｓ３１の判定はＹｅｓとなり、ＡＮＤゲート３０４の出力する論理積の値は１となる。このため、レジスタ２６２には、加算器３０３の加算結果ではなく、加算器３０２の加算結果が保持される。その結果、レジスタ２６２から出力されるアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］の値は更にインクリメントされた値となる（Ｓ３４）。その後は、上記Ｓ３２に移行する。【０１２０】
図１０は、メモリアクセス制御部における動作情報の読出し動作を表すフローチャートである。最後に図１０を参照し、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの読出し動作について詳細に説明する。動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの読出しは、ＳＶＰ２からの指示により、ＳＶＰコマンド制御部１４が読出し要求をアクティブにすることで行われる。図１０では、読出し要求がアクティブになった後のメモリアクセス制御部１５の動作を表している。【０１２１】
読出し要求がアクティブとなった場合、蓄積された全ての動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの読出しが行われる。動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの読出しは、現在のアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］の値から開始しても良いが、予め定めた固定値から開始しても良い。蓄積された全ての動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの読出しは、全てのアドレスから動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡを読出すことで終了する。ここでは、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの読出しは、フリーズ要求がアクティブとなった後に、現在のアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］の値から開始されると想定する。【０１２２】
上記想定では、読出し要求がアクティブとなった場合に、レジスタ２６２へのデータの格納は行われない。また、動作履歴制御部１５５は、図３に表す構成要素に加えて、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの読出しの完了を判定するための完了判定部を備える。その完了判定部は、例えばレジスタ、比較器、及び通知部を少なくとも備える。レジスタは、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの読出しを開始する前にレジスタ２６２に格納されていたアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］を保持する。比較器は、レジスタに保持されたアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］の値を、ＯＲゲート３１０から出力されているデータの値と比較し、その比較結果を出力する。通知部は、比較結果が両者の一致を表していた場合に、ＳＶＰコマンド制御部１４を介して、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの読出しの完了を通知する。その通知により、読出し要求はインアクティブとなって、動作履歴制御部１５５による動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの読出し動作が終了する。【０１２３】
読出し要求がアクティブになると、動作履歴制御部１５５の完了判定部はレジスタ２６２に現在、格納されているアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］を保持する（Ｓ４１）。動作履歴制御部１５５は、切り替えモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］の値が“０１”か否か、つまりコピーモードが設定されているか否か判定する（Ｓ４２）。上記のように、コピーモードの設定時には、メモリアクセスパイプライン２１３の制御により、通常メモリ３１のデータがスペアメモリ３２にコピーされる。そのため、通常メモリ３１、及びスペアメモリ３２共に、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの読出しのためのアクセスは行えない。このことから、読出し要求がアクティブになると（Ｓ４１）、メモリアクセス制御部１５は、切り替えモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］の値が“０１”か否か、つまりコピーモードが設定されているか否か判定する形となる（Ｓ４２）。コピーモードが設定されていた場合、Ｓ４２の判定はＹｅｓとなる。その場合、メモリアクセス制御部１５の完了判定部は、ＳＶＰコマンド制御部１４を介して、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの読み取りが行えない旨をＳＶＰ２に通知する。その通知により、ＳＶＰ２は、ＳＶＰコマンド制御部１４にアクティブのフリーズ解除要求を出力させ、読出し要求をインアクティブにする（Ｓ４９）。その読出し要求がインアクティブとなることで、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの読出し動作が終了する（Ｓ５０）。【０１２４】
コピーモードが設定されていない場合、Ｓ４２の判定はＮｏとなる。読出し要求がアクティブとなることに伴い、上記ＯＲゲート３２５の出力する論理和の値は１となり、レジスタ２６２には加算器３０２或いは３０３の加算結果が保持される。そのため、レジスタ２６２に新たに保持されるアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］の値は、それまでの値より少なくともインクリメントされた値となる（Ｓ４３）。【０１２５】
切り替えモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］の値が“００”、つまり通常モードが設定されている場合（Ｓ４４のＮｏ）、動作履歴制御部１５５は、アドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］及びアクティブの信号ＨＩＳ＿ＲＤ＿ＥＮＢを出力する（Ｓ４５）。その結果、アクセス制御部１５２は、スペアメモリ３２のアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］によって指定されるアドレスから動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡを読出す（Ｓ４６）。読出された動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡは、読出し制御部１５４、及びＳＶＰコマンド制御部１４を介してＳＶＰ２に出力される（Ｓ４７）。このときのアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］は、加算器３０３の加算結果である。【０１２６】
動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの出力時に、ＯＲゲート３１０からはレジスタ２６２に次に保持すべきアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］が出力されている。完了判定部は、そのアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］の値を、保持したアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］の値と比較することにより、全ての動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡを読出したか否か判定する（Ｓ４８）。それらの値が一致した場合、Ｓ４８の判定はＹｅｓとなり、完了判定部は、ＳＶＰコマンド制御部１４を介して、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの読出しが完了したことをＳＶＰ２に通知する。その通知により、ＳＶＰ２は、ＳＶＰコマンド制御部１４にアクティブのフリーズ解除要求を出力させ、読出し要求をインアクティブにする（Ｓ４９）。【０１２７】
切り替えモード信号ＳＰＡＲＥ＿ＳＴＳ［１：０］の値が“１０”、つまりスペアモードが設定されている場合（Ｓ４４のＹｅｓ）、加算器３０３の加算結果とアドレスデータＥＲＲ＿ＡＤＲＳ［３１：００］の値とが一致する可能性がある。それらの値が一致しない場合（Ｓ５１のＮｏ）、レジスタ２６２には加算器３０３の加算結果がアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］として保持される。動作履歴制御部１５５は、アドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］及びアクティブの信号ＨＩＳ＿ＲＤ＿ＥＮＢを出力する（Ｓ５２）。その結果、アクセス制御部１５２は、通常メモリ３１のアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］によって指定されるアドレスから動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡを読出す（Ｓ５３）。その後は上記Ｓ４７に移行する。【０１２８】
加算器３０３の加算結果とアドレスデータＥＲＲ＿ＡＤＲＳ［３１：００］の値とが一致する場合（Ｓ５１のＹｅｓ）、動作履歴制御部１５５は、加算器３０３の加算結果ではなく、加算器３０２の加算結果をレジスタ２６２に保持させる。それにより、レジスタ２６２に格納されるアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］の値は、Ｓ４３の処理後のアドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］の値を更にインクリメントした値となる（Ｓ５４）。このため、次に移行するＳ５２では、アドレスデータＨＩＳ＿ＡＤＲＳ［３１：００］として加算器３０２の加算結果が出力される。【０１２９】
なお、本実施形態では、プロセッサ１に動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの書込み、及び読出しの両方を行わせているが、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの書込み、及び読出しのうちの少なくとも一方をプロセッサ１以外の構成要素に行わせるようにしても良い。複数のプロセッサ１を搭載したデータ処理装置では、１つ以上のプロセッサ１に、動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの書込み、及び読出しを行わせるようにしても良い。このようなこともあり、本実施形態は様々な変形を行うことができる。本実施形態において、プロセッサ１に動作情報ＨＩＳ＿ＷＴ＿ＤＡＴＡの書込み、及び読出しを行わせているのは、プロセッサ１に搭載された主記憶装置３へのアクセス機能を有効に利用し、データ処理装置全体での製造コストをより抑えられるようにするためである。
【図１】
2014020749.tif 000003
【図２Ａ】
2014020749.tif 000004
【図２Ｂ】
2014020749.tif 000005
【図３】
2014020749.tif 000006
【図４】
2014020749.tif 000007
【図５】
2014020749.tif 000008
【図６】
2014020749.tif 000009
【図７】
2014020749.tif 000010
【図８】
2014020749.tif 000011
【図９】
2014020749.tif 000012
【図１０】
2014020749.tif 000013
【国際調査報告】
2014020749.tif 000014
2014020749.tif 000015
2014020749.tif 000016
2014020749.tif 000017