(57)【特許請求の範囲】
【請求項１】
外部から入力される入力データに、誤り訂正情報を付加して誤り訂正情報付データを生成する誤り訂正情報付加手段と、
前記誤り訂正情報付加手段から誤り訂正情報付データを入力し、前記誤り訂正情報付データを出力する主記憶手段と、
前記主記憶手段から前記誤り訂正情報付データを入力し、前記誤り訂正情報付データに含まれる前記訂正情報に基づいて誤り訂正を行い、前記入力データに相当する誤り訂正後データを生成する誤り訂正手段と、
前記誤り訂正手段から前記誤り訂正後データを入力する第１データ経路と、前記入力データを前記主記憶手段及び前記誤り訂正手段を介さずに入力する第２データ経路が接続された緩衝用バッファと、
前記第１データ経路を介して前記緩衝用バッファに前記誤り訂正後データを入力する第１動作と、前記第２データ経路を介して前記緩衝用バッファに前記入力データを入力する第２動作の開始及び停止を制御すると共に、外部から入力されるリードアドレスに従って、前記緩衝用バッファに格納された前記誤り訂正後データ及び前記入力データを出力データとして出力するよう前記緩衝用バッファを制御する緩衝用バッファ制御手段と、を備えた情報処理装置。
【請求項２】
前記緩衝用バッファ制御手段は、前記第１動作によって前記緩衝用バッファに入力された前記誤り訂正後データが、外部から入力される前記リードアドレスのタイミングによって前記出力データとして読み出せない場合には、前記第２動作によって前記緩衝用バッファに入力された前記入力データを、前記出力データとして前記緩衝用バッファから出力するよう前記緩衝用バッファの前記第１動作及び前記第２動作の開始及び停止を制御する、請求項１に記載の情報処理装置。
【請求項３】
前記緩衝用バッファに格納することができるデータ単位数は、前記主記憶手段へ前記入力データが書き込まれてから、その入力データを前記主記憶手段から前記緩衝用バッファに読み出すまでにかかるクロック数と、前記誤り訂正後データ又は前記入力データが前記緩衝用バッファに入力されてから読み出されるまでにかかるクロック数の和以上である、請求項１又は２に記載の情報処理装置。
【請求項４】
前記緩衝用バッファ制御手段は、外部から入力されたライトアドレス数から、前記第１動作によって直接前記緩衝用バッファに入力された前記入力データのデータ単位数を減じた値に基づいて、前記緩衝用バッファの前記第１動作及び前記第２動作の開始及び停止を制御する、請求項１乃至３のうちいずれか１項に記載の情報処理装置。
【請求項５】
前記緩衝用バッファ制御手段は、前記主記憶手段から読み出す誤り訂正情報付データを指定する主記憶手段リードアドレスを生成する、請求項１乃至４のうちいずれか１項に記載の情報処理装置。
【請求項６】
外部から入力される入力データに、誤り訂正情報を付加して誤り訂正情報付データを生成し、
前記誤り訂正情報付データを主記憶手段に入力し、
前記主記憶手段から前記誤り訂正情報付データを入力し、前記誤り訂正情報付データに含まれる前記訂正情報に基づいて誤り訂正を行って、前記入力データに相当する誤り訂正後データを生成し、
前記誤り訂正後データを入力する第１データ経路と、前記入力データを前記主記憶手段を介さずに入力する第２データ経路が接続された緩衝用バッファに対し、前記第１データ経路を介して前記緩衝用バッファに前記誤り訂正後データを入力する第１動作と、前記第２データ経路を介して前記緩衝用バッファに前記入力データを入力する第２動作の開始及び停止を制御し、
外部から入力されるリードアドレスに従って、前記緩衝用バッファに格納された前記誤り訂正後データ及び前記入力データを出力データとして出力する、情報処理方法。
【請求項７】
前記第１動作によって前記緩衝用バッファに入力された前記誤り訂正後データが、外部から入力される前記リードアドレスのタイミングによって前記出力データとして読み出せない場合には、前記第２動作によって前記緩衝用バッファに入力された前記入力データを、前記出力データとして前記緩衝用バッファから出力するよう前記緩衝用バッファの前記第１動作及び前記第２動作の開始及び停止を制御する、請求項６に記載の情報処理方法。
【請求項８】
前記緩衝用バッファに格納することができるデータ単位数は、前記主記憶手段へ前記入力データが書き込まれてから、その入力データを前記主記憶手段から前記緩衝用バッファに読み出すまでにかかるクロック数と、前記誤り訂正後データ又は前記入力データが前記緩衝用バッファに入力されてから読み出されるまでにかかるクロック数の和以上である、請求項６又は７に記載の情報処理方法。
【請求項９】
前記緩衝用バッファ制御手段は、外部から入力されたライトアドレス数から、前記第１動作によって直接前記緩衝用バッファに入力された前記入力データのデータ単位数を減じた値に基づいて、前記緩衝用バッファの前記第１動作及び前記第２動作の開始及び停止を制御する、請求項６乃至８のうちいずれか１項に記載の情報処理方法。
【請求項１０】
前記主記憶手段から読み出される誤り訂正情報付データを指定する主記憶手段リードアドレスを生成する、請求項６乃至９のうちいずれか１項に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理方法に関し、特に、内蔵ＲＡＭに格納されるデータの誤り訂正を行なう機能を備えた情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
一般的に、情報処理装置の論理回路は、データ信号を、例えば１ビットの誤り訂正可能なＥＣＣ（Ｅｒｒｏｒ  Ｄｅｔｅｃｔｉｏｎ  ａｎｄ  Ｃｏｒｒｅｃｔｉｏｎ）で保護し、持ち回る。また、制御系の信号については、誤り検出のみを目的としたパリティで保護することが多い。ここで、制御系のデータをバッファ等に格納するにあたって、ファーストインファーストアウトのようなバッファを使用する場合、レジスタではなく遅延や面積に有利な内蔵ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）が使用される。しかしながら、ＦＩＴ数（故障率）が悪いＲＡＭを使用すると、パリティ等の誤り検出用の回路では誤りの訂正ができず、１ビットの誤りでシステムダウンする可能性がある。
【０００３】
そのため、ＲＡＭのデータを保護する対策の１つとして、ＲＡＭに格納するときにＥＣＣを追加して、読み出すときにＥＣＣチェックを行い、誤り訂正を行う方法が知られている（例えば、特許文献１）。しかしながら、読み出しデータは、ＥＣＣチェック後の訂正後のデータを使用しなければならず、遅延が悪化することとなる。そのため、内蔵ＲＡＭのＦＩＴ数の救済策としては、レジスタを１個追加して遅延性能低下を許容するか、コストの高い高速テクノロジを使用するか選択を迫られることが多い。一方、テクノロジの微細化が進むにつれて、紫外線等によるエラーの可能性が高くなる中、高信頼性や高性能性に加え、低価格化が求められており、全ての条件満たす情報処理装置が要求されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１０３００５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
情報処理装置の論理回路でＲＡＭを使用する際、故障率の高いＲＡＭであれば、ビット誤りが発生する確立が高くなる。よって、高い信頼性が求められる場合にＲＡＭを使用するときは、ＥＣＣ等の誤り訂正符号を付加する。ＥＣＣにより誤り訂正を行う場合は、１ビットのビット誤りが発生しても訂正可能になるため、システムダウンの危険性を回避することができる。しかしながら、ＲＡＭの読み出し遅延に加えて、誤り訂正回路による遅延が追加されるため、出力データをそのまま直接論理に使用できないことがあり、その場合はレジスタを挟んで使用せざるをえず１タイミング分、レイテンシが遅くなる。
【０００６】
この問題点を具体的に説明する。情報処理装置に、図２に示す構成のＲＡＭが設けられているとする。また、図２に示すＲＡＭは、図３に示すように、Ｔ３でリードアドレス（ＲＡＭリードアドレス１２）を入力するとＴ４でデータ（出力データ１５）が出力されるような仕様であるとする。この場合、図２のＲＡＭ２２に、ＥＣＣを追加することで、図７に示すような情報処理装置を構成する場合には、ＲＡＭ２２に格納する前に、ＥＣＣ生成部２１によりＥＣＣ生成を行い、ＲＡＭ２２の読み出し後に、ＥＣＣ誤り訂正部２３によりＥＣＣ誤り訂正を行う。
【０００７】
しかし、図７のＲＡＭ２２読み出しから信号線３４、ＥＣＣ誤り訂正部２３、信号線３５までの遅延が大きく、出力データをこのまま使用することができない場合は、レジスタ２７を追加せざるを得ない。しかしながら、レジスタ２７を追加すると、図８で示すようにＴ３でリードアドレス（ＲＡＭリードアドレス１２）を入力してもＴ５にならないと読み出しデータ（出力データ１５）を使用できない。このように、レイテンシが増加すると、制御機能によっては性能悪化につながる恐れがあり、信頼性と性能のどちらを優先するのか判断が難しい場合があった。
【０００８】
本発明は、このような問題点に対してなされたものであり、レイテンシを増加することなくＲＡＭのデータを保護できる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る情報処理装置は、外部から入力される入力データに、誤り訂正情報を付加して誤り訂正情報付データを生成する誤り訂正情報付加手段と、前記誤り訂正情報付加手段から誤り訂正情報付データを入力し、前記誤り訂正情報付データを出力する主記憶手段と、前記主記憶手段から前記誤り訂正情報付データを入力し、前記誤り訂正情報付データに含まれる前記訂正情報に基づいて誤り訂正を行い、前記入力データに相当する誤り訂正後データを生成する誤り訂正手段と、前記誤り訂正手段から前記誤り訂正後データを入力する第１データ経路と、前記入力データを前記主記憶手段及び前記誤り訂正手段を介さずに入力する第２データ経路が接続された緩衝用バッファと、前記第１データ経路を介して前記緩衝用バッファに前記誤り訂正後データを入力する第１動作と、前記第２データ経路を介して前記緩衝用バッファに前記入力データを入力する第２動作の開始及び停止を制御すると共に、外部から入力されるリードアドレスに従って、前記緩衝用バッファに格納された前記誤り訂正後データ及び前記入力データを出力データとして出力するよう前記緩衝用バッファを制御する緩衝用バッファ制御手段と、を備えたことを特徴とする。
ことを特徴とする。
【００１０】
また、本発明に係る情報処理方法は、外部から入力される入力データに、誤り訂正情報を付加して誤り訂正情報付データを生成し、前記誤り訂正情報付データを主記憶手段に入力し、前記主記憶手段から前記誤り訂正情報付データを入力し、前記誤り訂正情報付データに含まれる前記訂正情報に基づいて誤り訂正を行って、前記入力データに相当する誤り訂正後データを生成し、前記誤り訂正後データを入力する第１データ経路と、前記入力データを前記主記憶手段を介さずに入力する第２データ経路が接続された緩衝用バッファに対し、前記第１データ経路を介して前記緩衝用バッファに前記誤り訂正後データを入力する第１動作と、前記第２データ経路を介して前記緩衝用バッファに前記入力データを入力する第２動作の開始及び停止を制御し、外部から入力されるリードアドレスに従って、前記緩衝用バッファに格納された前記誤り訂正後データ及び前記入力データを出力データとして出力する、ことを特徴とする。
【発明の効果】
【００１１】
本発明に係る情報処理装置及び情報処理方法によれば、ＲＡＭ読み出しデータのＥＣＣ誤り訂正回路の遅延を隠蔽することより、レイテンシを増加することなくＲＡＭのデータを保護できるようになり、システムダウンの減少が図れるため、性能低下を伴わずに信頼性を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態にかかる情報処理装置の全体構成を示す図である。
【図２】本発明の実施の形態にかかる情報処理装置に含まれる、ＲＡＭの構成例を示す図である。
【図３】図２に示すＲＡＭの動作を示すタイミングチャートである。
【図４】本発明の実施の形態に係る情報処理装置の動作を示すタイミングチャートである。
【図５】本発明の実施の形態に係る情報処理装置の動作を示すタイミングチャートである。
【図６】本発明の実施の形態に係る情報処理装置の動作を示すタイミングチャートである。
【図７】従来の情報処理装置の全体構成を示す図である。
【図８】従来の情報処理装置の動作を示すタイミングチャートである。
【発明を実施するための形態】
【００１３】
実施の形態．
以下、添付した図面を参照し、本発明の最良な実施の形態について説明する。図１は、本発明の実施の形態に係る情報処理装置の全体構成を示す図であり、図２は、その情報処理装置に含まれるＲＡＭの一例を示す図である。まず、本実施形態の構成の説明にあたり、情報処理装置に内蔵されるＲＡＭ２２の一例について図２を用いて説明する。ＲＡＭ２２に入力される入力信号は、ＲＡＭ２２への書き込みデータであるＲＡＭ入力データ１１、ＲＡＭ２２の読み出しアドレスであるＲＡＭリードアドレス１２、ＲＡＭ２２の書き込みアドレスであるＲＡＭライトアドレス１３、ＲＡＭ２２への書き込みを指示するＲＡＭライトイネーブル１４である。ＲＡＭ２２への書き込みは、ＲＡＭライトイネーブル１４が有効なときにＲＡＭライトアドレス１３が示すＲＡＭ２２のワードに、ＲＡＭ入力データ１１を書き込む。
【００１４】
ＲＡＭ２２からの読み出しは、ＲＡＭリードアドレス１２によって指定されるワードのデータが読み出される。この読み出されたデータは、出力データ１５として出力される。ＲＡＭ２２は、ＦＩＦＯファーストインファーストアウト構成を対象としている。そのため、ＲＡＭライトアドレス１３は、書き込み指示（ＲＡＭライトイネーブル１４）が有効になる度に１加算されて、最大ワード数に達すると０に戻り、以降も同様の動作を繰り返す。
【００１５】
また、ＲＡＭリードアドレス１２についても同様に、読み出す度に１加算され、最大ワード数になると０に戻る動作を繰り返す。なお、本説明では、ＲＡＭ２２の入力信号から出力信号（出力データ１５）の間の部分を、バッファ１と規定する。
【００１６】
次に、本発明の実施の全体構成について図１を用いて説明する。図１中のＲＡＭ２２は、図２に記載されたものであるとする。図１の情報処理装置では、図２のバッファ１の入出力信号やタイミングはそのままとし、ＥＣＣ機能を追加しながらもＲＡＭ読み出し後のＥＣＣ訂正回路の遅延を、出力データ１５に見せないようにする機能を持つＦＩＦＯバッファである。
【００１７】
バッファ１は、入力信号として、ＲＡＭ入力データ１１、ＲＡＭリードアドレス１２、ＲＡＭライトアドレス１３、ＲＡＭライトイネーブル１４を入力し、出力信号として出力データ１５を出力する。バッファ１は、ＲＡＭ２２、ＥＣＣ生成部２１、ＥＣＣ誤り訂正部２３、緩衝用バッファ２４、及び緩衝用バッファ制御部２５を有している。
【００１８】
ＥＣＣ生成部２１は、ＲＡＭ入力データ１１を入力し、ＲＡＭ入力データ１１に、ＥＣＣを付加してＥＣＣ付きデータ３１を生成する。
【００１９】
ＲＡＭ２２は、ＥＣＣ生成部２１によって生成された、ＥＣＣ付きデータ３１が格納可能なビット幅を有している。ＲＡＭ２２への書き込みは、ＲＡＭライトイネーブル１４が有効なときに、ＲＡＭライトアドレス１３が示すワードに、ＥＣＣ付きデータ３１が格納される。ＲＡＭ２２からの読み出しは、バッファ１に入力されるＲＡＭリードアドレス１２ではなく、後述する緩衝用バッファ制御部２５で生成されたバッファ内ＲＡＭリードアドレス４１によって指定されるワードのデータが読み出される。
【００２０】
ＲＡＭリードアドレス１２をＲＡＭ２２の読み出しアドレスとして使用しないのは、以下の理由による。すなわち、本実施の形態では、緩衝用バッファ２４の出力を、出力データ１５としているが、緩衝用バッファ２４には、ＲＡＭ２２、ＥＣＣ誤り訂正部２３及びを経由してＲＡＭ入力データ１１に相当する誤り訂正後データ３３を入力する第１のデータ経路と、ＲＡＭ２２及びＥＣＣ誤り訂正部２３を介さずにＲＡＭ入力データ１１を直接緩衝用バッファ２４に入力する第２のデータ経路が接続されている。そして、出力データ１５として出力されるべきタイミングに対し、第１のデータ経路を介した出力データが遅れる場合には、遅延の小さい第２のデータ経路を介した出力データを、出力データ１５として採用する。そのため、この制御を実現するために、ＲＡＭリードアドレス１２をＲＡＭ２２の読み出しアドレスとして使用せず、緩衝用バッファ制御部２５によってバッファ内ＲＡＭリードアドレス４１を生成し、ＲＡＭ２２の読み出しアドレスとして用いている。
【００２１】
ＥＣＣ誤り訂正部２３は、ＲＡＭ２２から読み出したＲＡＭ出力データ３２をＥＣＣチェックする。ＥＣＣ誤り訂正部２３は、誤りがない場合は読み出したデータをそのまま使用し、１ビット誤りなど訂正可能な範囲のビット誤りがある場合は誤りを訂正する。ＥＣＣ誤り訂正部２３は、このデータをＥＣＣ誤り訂正後データ３３として緩衝用バッファ２４に送出する。なお、ＥＣＣ誤り訂正部２３は、ＥＣＣ部分は送出せず、ＲＡＭ入力データ１１に相当するデータのみをＥＣＣ誤り訂正後データ３３として出力する。
【００２２】
緩衝用バッファ２４は、ＥＣＣ誤り訂正部２３の遅延を出力データ１５に見せないために設けられている。前述したように、緩衝用バッファ２４には、ＲＡＭ２２及びＥＣＣ誤り訂正部２３（第１のデータ経路）を介して、ＲＡＭ入力データ１１に相当するデータが入力されると共に、ＲＡＭ２２及びＥＣＣ誤り訂正部２３を介さずに（第２のデータ経路を介して）直接ＲＡＭ入力データ１１が入力される。緩衝用バッファ２４は、ＲＡＭ入力データ１１と同じビット幅をもち、数ワードからなるレジスタ構成をとる。緩衝用バッファ２４は、レジスタ構成であるため、故障率は低いのでＥＣＣ保護は行わない。緩衝用バッファ２４には、ＲＡＭ２２書き込みデータであるＲＡＭ入力データ１１またはＲＡＭ２２読み出し後のＥＣＣ誤り訂正後データ３３が書き込まれ、緩衝用バッファ２４の読み出しデータはバッファ１としての出力データ１５になる。
【００２３】
緩衝用バッファ２４に必要な最小ワード数は、緩衝用バッファ２４によるレイテンシを隠蔽できる数が必要である。具体的には、緩衝用バッファ２４に必要な最小ワード数は、ＲＡＭライトイネーブル１４が有効になってＲＡＭ入力データ１１がＲＡＭ２２に書き込まれてから、書き込まれた同一ワードをＲＡＭ２２から読み出せるまでにかかるクロック数と、緩衝用バッファ２４に入力されたデータが、緩衝用バッファ２４から読み出されるまでにかかるクロック数を足した数である。緩衝用バッファ２４の読み出しワードは、ＦＩＦＯとしてのバッファ１の読み出し順と一致するように、初期値０から始まり、読み出し毎に１加算して最大ワードになったところで初期値に戻り繰り返す。
【００２４】
書き込みワードに関しては読み出し順と書き込み順が一致しない場合もあるため、読み出し順のワードに対応するように書き込むワードを決定する。ここで、緩衝用バッファ２４の書き込み制御には二種類ある。１つめは、ＲＡＭ２２にＲＡＭ入力データ１１を書き込む際に、ＲＡＭ２２に書き込まれるＲＡＭ入力データ１１を、ＲＡＭ２２への書き込みに並行して緩衝用バッファ２４に格納する制御である。２つめは、ＲＡＭ読み出し時に、ＲＡＭ２２及びＥＣＣ誤り訂正部２３を経由したＲＡＭ入力データ１１に相当するＥＣＣ訂正後データ３３を、緩衝用バッファ２４に書き込む制御である。
【００２５】
そこで、ＲＡＭ書き込み時に緩衝用バッファ２４に並行して緩衝用バッファ２４に書き込む場合の緩衝用バッファ２４のライトイネーブルを、バッファライトイネーブル（ＲＡＭライト）４４、そのときの書き込みワードを示すアドレスをバッファライトアドレス（ＲＡＭライト）４２と呼ぶ。また、ＲＡＭ２２の読み出し後のＥＣＣ誤り訂正後データ３３を緩衝用バッファ２４に書き込む場合の緩衝用バッファ２４のライトイネーブルを、バッファライトイネーブル（ＲＡＭリード）４５、そのときの書き込みワードを示すアドレスをＲＡＭリード時のバッファライトアドレス（ＲＡＭリード）４３と呼ぶこととする。
【００２６】
すなわち、本実施の形態の構成では、バッファライトイネーブル（ＲＡＭライト）４４が有効なときは、バッファライトアドレス（ＲＡＭライト）４２が示すワードにＲＡＭ入力データ１１を書き込む。また、バッファライトイネーブル（ＲＡＭリード）４５が有効なときはバッファライトアドレス（ＲＡＭリード）４３が示すワードにＲＡＭ読み出し後のＥＣＣ誤り訂正後データ３３を書き込む。この二つの書き込み制御は、ＲＡＭ本来の読み出しタイミングを守るために同時に起こることがある。
【００２７】
緩衝用バッファ２４からの読み出しについては、バッファリードアドレス４６が示すワードのデータを選択して出力する。この緩衝用バッファ２４の読み出しデータがバッファ１の出力データ１５になるため、出力データ１５の遅延は緩衝用バッファ２４の読み出し遅延だけになる。
【００２８】
緩衝用バッファ制御部２５は、ＲＡＭ２２の読み出しワードを示すバッファ内ＲＡＭリードアドレス４１、緩衝用バッファ２４の書き込みワードを示すバッファライトアドレス（ＲＡＭライト）４２、バッファライトアドレス（ＲＡＭリード）４３と、書き込み指示であるバッファライトイネーブル（ＲＡＭライト）４４、バッファライトイネーブル（ＲＡＭリード）４５、読み出しワードを示すバッファリードアドレス４６を生成する機能を持つ。
【００２９】
バッファ内ＲＡＭリードアドレス４１は、ＲＡＭ２２に有効データが格納されているときに、緩衝用バッファ２４にまだ書き込まれていない有効データの先頭のワードに向けておくことで、緩衝用バッファ２４に空きができたときにすぐに書き込めるようにしておく。ここで、有効データとは、ＲＡＭ２２に格納されたＥＣＣ付きデータ３１のうち、いまだＲＡＭ２２から緩衝用バッファ２４に読み出されておらず、かつ、緩衝用バッファ２４に先読みされた（直接入力された）ＲＡＭ入力データ１１に相当するＥＣＣ付きデータ３１を除くデータのことを示すものとする。
【００３０】
ここで、バッファライトイネーブル（ＲＡＭライト）４４が有効になる、すなわち、緩衝用バッファ２４に直接入力されるＲＡＭ入力データ１１が出力データ１５として採用されるのは、条件（１）〜（３）を全て満たす場合である。
条件（１）ＲＡＭライトイネーブル１４が有効であり、
条件（２）次のクロックにおいて緩衝用バッファ２４に空きがあることが判明し、
条件（３）ＲＡＭ２２に格納されている有効データの数（ワード数）が、緩衝用バッファ２４の空きワード数より少ないか、もしくは空の場合である。
【００３１】
また、バッファライトイネーブル（ＲＡＭリード）４５が有効になる、すなわち、ＲＡＭ２２及びＥＣＣ誤り訂正部２３を経由したＥＣＣ誤り訂正後データ３３が出力データ１５として採用されるのは、条件（４）乃至（６）をいずれも満たす場合である。
条件（４）ＲＡＭ２２に格納されている有効データのワード数があるとき、
条件（５）次のクロックにおいて緩衝用バッファ２４に空きが生じると判明したとき、
条件（６）ＲＡＭ２２の読み出しデータが有効なときである。
【００３２】
なお、前述したように、同時書き込みが行なわれる、すなわち、バッファライトイネーブル（ＲＡＭライト）４４及びバッファライトイネーブル（ＲＡＭリード）４５が同時に有効になるのは、条件（１）乃至（３）と条件（４）乃至（６）がそれぞれ同時に成り立つときである。
【００３３】
バッファライトアドレス４２、４３については、バッファ構造によっては必ずしも緩衝用バッファ２４の読み出し順通りに緩衝用バッファ２４に書き込めるとは限らないため、ＦＩＦＯのバッファの読み出し順序に追随しているバッファリードアドレス４６に適合したワードを探して指定する。バッファリードアドレス４６については、ＲＡＭリードアドレス１２の変化点で１加算していき、最大ワード値に到達したら初期値に戻り、これを繰り返すことでＲＡＭのＦＩＦＯバッファの読み出し順を守る。
【００３４】
以上の機能により、ＲＡＭの読み出し後にＥＣＣ誤り訂正回路を追加しても、その回路遅延がその後の出力データに見えることなくＲＡＭのＦＩＴ数救済につなげることができる。
【００３５】
次に、このように構成された情報処理装置の動作について説明する。まず、情報処理装置に含まれるＲＡＭ２２（図２）の読み出しにかかるクロック数、つまりレイテンシについては、一例として図３に示す場合を対象とする。図３に示すように、ＲＡＭ２２は、ＲＡＭ２２への書き込みタイミング（Ｔ２）の次のタイミング（Ｔ３）から書き込みデータが有効になり、読み出しアドレスを受け取ったタイミング（Ｔ３）の次のタイミング（Ｔ４）で読み出しデータを出力できる仕様であるとする。
【００３６】
さらに具体的に説明すると、ＲＡＭ２２への書き込みは、Ｔ２のタイミングでＲＡＭライトイネーブル１４が有効になると、Ｔ２のＲＡＭライトアドレス１３が示すワード０にＴ２のＲＡＭ入力データ１１を書き込む制御を行い、次のタイミングのＴ３からデータが有効になる。ＲＡＭ２２の読み出しは、Ｔ３でワード０を示すＲＡＭリードアドレス１２が入力されると、読み出しデータはＴ４で出力データ１５として送出される。ここで、Ｔ２でＲＡＭリードアドレス１２がワード０を指していても、Ｔ３の出力データ１５が期待通りではないのは、Ｔ２ではワード０にまだ最新のデータが書き込まれていないからである。よって、書き込み指示後に書き込んだデータを読み出せるのは、ＲＡＭライトイネーブル１４が有効になったタイミングから２クロック後になる。
【００３７】
以降では、図３のタイミングを持つＲＡＭ２２に、本実施の形態に係る機能を追加して情報処理装置を構成した場合の情報処理装置の動作を説明する。なお、図３に示す、ＲＡＭ２２の読み出しタイミングを守りながらＥＣＣ誤り訂正回路による遅延影響を出力に見せないようにするために最低限必要な緩衝用バッファ２４のワード数は、前述したように、ＲＡＭライトイネーブル１４が有効になってから（ＲＡＭ入力データ１１が書き込まれてから）、書き込まれた同一ワードを読み出せるまでにかかるクロック数と、緩衝用バッファ２４に入力されたデータが読み出されるまでにかかるクロック数の和となる。具体的には、図３の仕様のＲＡＭ２２では、緩衝用バッファ２４として最低限必要なワード数は、ＲＡＭライトイネーブル１４が有効になってから、書き込まれた同一ワードを読み出せるまでにかかる２タイミング分に、緩衝用バッファ２４に入力されたデータが読み出されるまでにかかるクロック数１を足した３タイミング分、つまり３ワード分となる。
【００３８】
［ＲＡＭへの書き込み動作］
はじめに、ＲＡＭ２２への書き込みまでの動作について図４を使って説明する。ＲＡＭ２２への書き込みは、ＲＡＭ２２及びＥＣＣ誤り訂正部２３を経由したＥＣＣ誤り訂正後データ３３が出力データ１５として採用されるか否かに関わらず、ＲＡＭライトイネーブル１４が有効なときに、ＲＡＭライトアドレス１３が示すワードに、ＲＡＭ入力データ１１にＥＣＣを付加したＥＣＣ付きデータ３１を書き込む。具体的には、図４に示すように、Ｔ２のタイミングでＲＡＭライトイネーブル１４が有効であるため、Ｔ２のＲＡＭライトアドレス１３が示すワード０に、Ｔ２のＲＡＭ入力データ１１（ａ）とＥＣＣ生成部２１で生成したＴ２のＲＡＭ入力データ１１（ａ）のＥＣＣをあわせたＥＣＣ付きデータ３１（ａ＋）をＲＡＭ２２に書き込む。
【００３９】
［緩衝用バッファへの書き込み動作］
次に、緩衝用バッファ２４への書き込み動作について説明する。緩衝用バッファ２４への書き込み動作には、（動作１）ＲＡＭ２２及び誤り訂正部２３を介さずにＲＡＭ入力データ１１だけを直接書き込む動作と、（動作２）ＲＡＭ２２から読み出された後のＥＣＣ誤り訂正後データ３３を書き込む動作と、（動作３）ＲＡＭ入力データ１１とＥＣＣ誤り訂正後データ３３の両方を同時に書き込む場合がある。
【００４０】
（動作１）ＲＡＭ２２及びＥＣＣ誤り訂正部２３を介さずにＲＡＭ入力データ１１だけを直接書き込む場合を、図４を用いて説明する。図４のＴ２のタイミングでは、ＲＡＭライトイネーブル１４が有効であり（条件１）、ＲＡＭ２２と緩衝用バッファ２４は共に空であるので（条件２、３）、条件（１）〜（３）を全て満たすため、バッファライトイネーブル（ＲＡＭライト）４４が有効になる。そのため、バッファライトアドレス（ＲＡＭライト）４２が示す緩衝用バッファ２４のワード０に、ＲＡＭ入力データ１１を書き込む。また、これと同時に、ＲＡＭ入力データ１１にＥＣＣデータを付加したＥＣＣ付きデータ３１を、ＲＡＭ２２にも書き込む。
【００４１】
Ｔ３、Ｔ４でも同様に、ＲＡＭライトイネーブル１４が有効であり（条件１）、緩衝用バッファ２４に空きがあり（条件２）、ＲＡＭ２２の有効ワード数も緩衝用バッファ２４のワード数以下であるため（条件３）、Ｔ２と同様の動作を行う。
【００４２】
Ｔ５についても、ＲＡＭライトイネーブル１４が有効であり（条件１）、前のタイミングのＴ４で緩衝用バッファ２４のワード０が読み出されているため空きができており（条件２）、かつ、ＲＡＭ２２内に格納されているデータは、相当するＲＡＭ入力データ１１が全てＲＡＭ２２を介さずに直接緩衝用バッファ２４に格納されていているため、有効データのワード数は０であり、緩衝用バッファ２４のワード数よりも少ない（条件３）。よって、条件（１）〜（３）を全て満たすため、バッファライトイネーブル（ＲＡＭライト）４４が有効になり、ＲＡＭ入力データ１１が、緩衝用バッファ２４に直接格納される。
【００４３】
（動作２）ＲＡＭ読み出し後のＥＣＣ誤り訂正後データ３３だけを書き込む場合について図５を用いて説明する。図５のＴ５では、緩衝用バッファ２４は全て使われていて、Ｔ５以降もＲＡＭ２２への書き込みが続いているが、緩衝用バッファ２４の読み出しがなく空きができないため、（条件２）を満たさない。そのため、Ｔ５からＴ７では緩衝用バッファ２４にＲＡＭ入力データ１１は書き込めず、バッファライトイネーブル（ＲＡＭライト）４４は無効となる。
【００４４】
ここで、バッファライトイネーブル（ＲＡＭライト）４４が無効となる間でも（Ｔ５〜Ｔ７）、ＲＡＭライトイネーブル１４はＴ５〜Ｔ７で有効となっているので、ＲＡＭ２２には継続して、ＥＣＣ付きデータ（ｄ＋）、（ｅ＋）、（ｆ＋）を書き込む。よって、Ｔ８のタイミングでは緩衝用バッファ２４に書き込まれていないＲＡＭ２２の有効データ（ｄ＋）、（ｅ＋）、（ｆ＋）が３ワード分存在している。すなわち、Ｔ７〜Ｔ１０までのＲＡＭ２２の有効データの数は３であり、緩衝用バッファ２４の持つワード数３と同じである（条件４）。なお、有効データのワード数は、ＲＡＭライトアドレス、ＲＡＭリードアドレスを元に求められるＲＡＭの格納ワード数から、緩衝用バッファ２４に直接格納したワード数を引くことにより求めることができる。
【００４５】
このとき、バッファ内ＲＡＭリードアドレス４１は、緩衝用バッファ２４に書き込まれていないワードの中で先頭アドレスであるワード３にあらかじめ向けておき、先読みできるようにしておく。その後、Ｔ１０で、ＲＡＭリードアドレス１２が次のアドレスに移行することにより、ワード０から出力データ（ａ）が出力されるため、緩衝用バッファ２４のワード０が次のタイミング（Ｔ１１）で空きができることが判明する（条件５）。そのため、Ｔ１０で（条件４）及び（条件５）が満たされるので、ＦＩＦＯで次のワードとなるＲＡＭ２２の読み出しデータを格納するために、バッファライトイネーブル（ＲＡＭリード）４５が有効になる。
【００４６】
Ｔ１０において、バッファライトアドレス（ＲＡＭリード）４３が示す緩衝用バッファ２４のワード０に、ＲＡＭ２２のワード３（ｄ＋）を読み出し、ＥＣＣ誤り訂正したＥＣＣ誤り訂正後データ３３（ｄ）を書き込む。これにより、次のタイミングＴ１１において、緩衝用バッファ２４のワード０にＥＣＣ誤り訂正後データ３３（ｄ）が格納される。また、Ｔ１０では、ＲＡＭ２２の次のワードを読み出すため、バッファ内ＲＡＭリードアドレス４１を１加算してワード４に変更する。Ｔ１１、Ｔ１２についても同様である。
【００４７】
（動作３）ＲＡＭ入力データ１１とＲＡＭ読み出し後のＥＣＣ誤り訂正後データ３３を両方同時に書き込む制御について図６を用いて説明する。Ｔ６では、ＲＡＭライトアドレス１３として入力されたアドレス数は４であり、緩衝用バッファ２４に直接格納されたＲＡＭ入力データ１１のワード数は３であるため、ＲＡＭ２２内に格納されている有効データ数は１（＝４−３）である。よって、ＲＡＭ２２内に格納されている有効データ数は、緩衝用バッファ２４の有するワード数よりも少ないこととなる（条件４）。また、ＲＡＭリードアドレス１２がインクリメントされるため、次のタイミングで緩衝用バッファ２４のワード０に空きがでることが判明する（条件５）。従って、（条件４）及び（条件５）を満たすため、バッファリードイネーブル（ＲＡＭリード）４５が有効になり、ＲＡＭ２２及びＥＣＣ誤り訂正部２３を介した誤り訂正後データ３３の緩衝用バッファ２４への書き込みが可能になる。
【００４８】
ここで、Ｔ７において、バッファリードイネーブル（ＲＡＭリード）４５を有効にしてＲＡＭ２２のワード３から読み出してＥＣＣ誤り訂正したＥＣＣ誤り訂正後データ３３（ｄ）を緩衝用バッファ２４に書き込むと共に、ＲＡＭライト時のバッファライトイネーブル４６を有効にしてＲＡＭ入力データ１１（ｅ）についても直接緩衝用バッファ２４に書き込む。
【００４９】
すなわち、Ｔ７において、バッファライトイネーブル（ＲＡＭリード）４５とバッファライトイネーブル（ＲＡＭライト）４４の両方がそれぞれ同時に有効になり、ＲＡＭのＦＩＦＯ順序を損なわないようにバッファライトアドレス（ＲＡＭリード）４３はワード０に、バッファライトアドレス（ＲＡＭライト）４２はワード１に向け、ワード０にはＥＣＣ誤り訂正後データ３３（ｄ）をワード１にはＥＣＣ付きデータ３１（ｅ）をそれぞれ書き込む。
【００５０】
ここで、もし、この二種類の同時書き込みを許さないとすると、Ｔ７でＲＡＭライトアドレス１３がワード４を示すＲＡＭ書き込みデータ（ｅ）については一旦ＲＡＭ２２に格納してから読み出さないとならないため、最短でも緩衝用バッファ２４に書き込み指示が出来るのはＴ９になる。その場合、Ｔ９でＲＡＭライトアドレス１３がワード５を示すＲＡＭ書き込みデータについても同様に最短で緩衝用バッファ２４に書き込み指示ができるのがＴ１１になる。そのため、Ｔ１０でＲＡＭリードアドレス１２が示すワード５（データｆ）の読み出しに間に合わなくなる。よって、このような場合では、二種類の同時書き込みが必要となる。
【００５１】
［ＲＡＭから緩衝用バッファへの読み出し動作］
ＲＡＭ２２から緩衝用バッファ２４への読み出し動作を、図５を用いて説明する。Ｔ９のタイミングで読み出したいＲＡＭ２２のワード、ここではワード３をバッファ内ＲＡＭリードアドレス４１で示すと、Ｔ１０でＲＡＭ２２からデータが読みだされる。Ｔ１０でＲＡＭ２２から読み出されたワード３のＲＡＭ出力データ３２（ｄ＋）をＥＣＣ誤り訂正部２３でＥＣＣチェックし、誤りがない場合はそのままで、誤りがある場合は訂正して、ＥＣＣ誤り訂正後データ３３（ｄ）として緩衝用バッファ２４に送出する。
【００５２】
［緩衝用バッファから出力データを読み出す動作］
緩衝用バッファ２４の読み出し動作は、図４を用いて説明する。Ｔ３のタイミングではＲＡＭリードアドレス１２とバッファリードアドレス４６は、ともに初期状態のワード０を示しているため、Ｔ４では緩衝用バッファ２４のワード０のデータが選択されバッファ１の出力データ１５となる。次に、Ｔ４でＲＡＭリードアドレス１２が０から１に変化するため、Ｔ５ではバッファリードアドレス４６が１加算されてワード１に変わる。よって、Ｔ５ではバッファ１の出力データ１５は緩衝用バッファ２４のワード１のデータになる。Ｔ６も同様であり、ワード２まで到達すると次はワード０に戻り、以降繰り返される。
【００５３】
次に、このように構成された情報処理装置の効果について説明する。本実施の形態では、ＲＡＭ２２及びＥＣＣ誤り訂正部２３を介してＥＣＣ誤り訂正後データ３３を入力する第１のデータ経路と、ＲＡＭ２２及びＥＣＣ誤り生成部２３を介さず直接ＲＡＭ入力データ１１を入力する第２のデータ経路を、緩衝用バッファ２４に接続し、緩衝用バッファ２４の出力を、バッファ１の出力データ１５として構成する。これにより、第１のデータ経路を介した出力データ１５が外部から入力されるＲＡＭリードアドレス１２に対して遅れる場合には、遅延の小さい第２のデータ経路を介して直接ＲＡＭ入力データ１１を緩衝用バッファ２４に格納する。これにより、出力データ１５のＥＣＣ誤り訂正回路の遅延を隠蔽することができる。
【００５４】
また、ＲＡＭ周りに緩衝用のレジスタ構成のバッファを付加して、ＲＡＭ読み出しデータのＥＣＣ誤り訂正回路の遅延を隠蔽することより、レイテンシを増加することなくＲＡＭのデータを保護できるようになり、システムダウンの減少が図れるため、性能低下を伴わずに信頼性を向上させることができる。
【００５５】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００５６】
１    バッファ
１１    ＲＡＭ入力データ
１２    ＲＡＭリードアドレス
１３    ＲＡＭライトアドレス
１４    ＲＡＭライトイネーブル
１５    出力データ
２１    ＥＣＣ生成部
２３    ＥＣＣ誤り訂正部
２４    緩衝用バッファ
２５    緩衝用バッファ制御部
３１    ＥＣＣ付きデータ
３２    ＲＡＭ出力データ
３３    ＥＣＣ誤り訂正後データ
３４、３５    信号線
４１    リードアドレス
４２、４３    バッファライトアドレス
４４、４５    バッファライトイネーブル
４６    バッファリードアドレス
【図１】
0005339467.tif 000002
【図２】
0005339467.tif 000003
【図３】
0005339467.tif 000004
【図４】
0005339467.tif 000005
【図５】
0005339467.tif 000006
【図６】
0005339467.tif 000007
【図７】
0005339467.tif 000008
【図８】
0005339467.tif 000009