(57)【特許請求の範囲】
【請求項１】
制御装置から出力されるアクセス要求に基づいて、メモリデバイスのアクセスを制御する記憶制御装置において、
前記制御装置から出力されるアクセス要求をそれぞれ保持する複数の要求保持部と、
前記複数の要求保持部にそれぞれ保持されたアクセス要求のいずれかを選択し、選択されたアクセス要求を、前記メモリデバイスを動作させる動作指示として前記メモリデバイスに出力するとともに、アクセス要求の削除が抑止された場合、削除が抑止されたアクセス要求である対象アクセス要求を再度選択し、前記動作指示として前記メモリデバイスに出力する要求選択部と、
前記要求選択部によるアクセス要求の選択から第１の時間が経過した場合、前記要求選択部が選択したアクセス要求を保持している要求保持部からアクセス要求を削除するとともに、前記動作指示がエラーを含むことを示すエラー情報を前記メモリデバイスから受信した場合、前記複数の要求保持部のうち、前記要求選択部による選択から前記第１の時間が経過していないアクセス要求を保持している要求保持部からのアクセス要求の削除を抑止する要求制御部を有することを特徴とする記憶制御装置。
【請求項２】
前記要求選択部により選択されたアクセス要求が前記メモリデバイスにデータを書き込むライト要求の場合、前記第１の時間の経過から第２の時間後に、前記メモリデバイスに書き込むライトデータを前記制御装置に要求するライトデータ要求を出力するライトデータ要求生成部を有し、
前記ライトデータ要求生成部は、前記エラー情報が前記メモリデバイスから出力された場合、前記要求選択部による選択から前記第１の時間が経過していないライト要求に対応する前記ライトデータ要求の出力を抑止することを特徴とする請求項１記載の記憶制御装置。
【請求項３】
前記ライトデータ要求に基づいて前記制御装置から出力されるライトデータを保持し、保持したライトデータを前記メモリデバイスに出力するライトデータ制御部と、
前記要求選択部により選択されたアクセス要求が前記ライト要求の場合、前記第１の時間および前記第２の時間の経過から第３の時間後に、前記ライトデータ制御部に保持されたライトデータを前記メモリデバイスに出力させるライトデータ制御信号を出力するライトデータ制御信号生成部を有し、
前記ライトデータ制御信号生成部は、前記エラー情報が前記メモリデバイスから出力された場合、前記要求選択部による選択から前記第１の時間が経過していないライト要求に対応する前記ライトデータ制御信号の出力を抑止することを特徴とする請求項２記載の記憶制御装置。
【請求項４】
前記メモリデバイスから読み出したデータを保持し、保持したデータを前記制御装置に出力するリードデータ制御部と、
前記要求選択部により選択されたアクセス要求が前記メモリデバイスからデータを読み出すリード要求の場合、前記第１の時間の経過から第４の時間後に、前記リードデータ制御部に保持されたデータを前記制御装置に出力させるリード制御信号を出力するリードデータ制御信号生成部を有し、
前記リードデータ制御信号生成部は、前記エラー情報が前記メモリデバイスから出力された場合、前記要求選択部による選択から前記第１の時間が経過していないリード要求に対応する前記リード制御信号の出力を抑止することを特徴とする請求項１ないし請求項３のいずれか１項記載の記憶制御装置。
【請求項５】
前記要求選択部によるアクセス要求の選択から前記第１の時間が経過したことに基づいて、前記要求選択部により選択されたアクセス要求を前記メモリデバイスが受け付けたことを示すアクセス要求リリース情報を前記制御装置に出力するリリース通知生成部を有し、
前記リリース通知生成部は、前記エラー情報が前記メモリデバイスから出力された場合、前記要求選択部による選択から前記第１の時間が経過していないアクセス要求に対応する前記アクセス要求リリース情報の出力を抑止することを特徴とする請求項１ないし請求項４のいずれか１項記載の記憶制御装置。
【請求項６】
前記メモリデバイス内のメモリセルが保持しているデータを再書き込みするリフレッシュ動作を前記メモリデバイスに実行させるリフレッシュ要求を生成するリフレッシュ制御部と、
前記リフレッシュ制御部が生成したリフレッシュ要求を保持するリフレッシュ要求保持部を有し、
前記要求選択部は、前記複数の要求保持部に保持されたアクセス要求のいずれか、または前記リフレッシュ要求保持部に保持されたリフレッシュ要求を選択し、前記動作指示として前記メモリデバイスに出力し、
前記要求制御部は、前記要求選択部によるアクセス要求の選択から前記第１の時間が経過した場合、前記要求選択部が選択したアクセス要求を前記複数の要求保持部のいずれかから削除し、前記要求選択部によるリフレッシュ要求の選択から前記第１の時間が経過した場合、前記要求選択部が選択したリフレッシュ要求を前記リフレッシュ要求保持部から削除するとともに、前記エラー情報が前記メモリデバイスから出力された場合、前記要求選択部による選択から前記第１の時間が経過していないアクセス要求を保持している要求保持部からのアクセス要求の削除および前記要求選択部による選択から前記第１の時間が経過していないリフレッシュ要求を保持しているリフレッシュ保持部からのリフレッシュ要求の削除を抑止することを特徴とする請求項１ないし請求項５のいずれか１項記載の記憶制御装置。
【請求項７】
前記メモリデバイスからの前記エラー情報の出力が停止された後、前記メモリデバイスをスタンバイ状態に設定するスタンバイ要求を生成するスタンバイ要求生成部を有し、
前記要求選択部は、前記メモリデバイスからの前記エラー情報の出力が停止された後、前記アクセス要求を選択する前に前記スタンバイ要求を選択し、前記動作指示として前記メモリデバイスに出力することを特徴とする請求項１ないし請求項５のいずれか１項記載の記憶制御装置。
【請求項８】
前記メモリデバイスは、ダイナミックメモリセルを有し、前記メモリデバイスをスタンバイ状態に設定する動作指示は、プリチャージコマンドであることを特徴とする請求項７記載の記憶制御装置。
【請求項９】
前記エラー情報の受信回数を計数するカウンタと、
前記カウンタのカウンタが所定値に達した場合に、前記制御装置にシステムエラーを示すシステムエラー情報を出力するシステムエラー検出部を有し、
前記システムエラー検出部は、前記エラー情報に基づいて削除を抑止したアクセス要求の全てが、前記要求選択部により再び選択され、前記メモリデバイスに受け付けられた場合、前記カウンタをリセットすることを特徴とする請求項１ないし請求項８のいずれか１項記載の記憶制御装置。
【請求項１０】
前記複数の要求保持部の各々は、前記要求選択部によるアクセス要求の選択から前記第１の時間が経過するまでの時間を計測する計測部を有することを特徴とする請求項１ないし請求項９のいずれか１項記載の記憶制御装置。
【請求項１１】
前記要求選択部は、前記エラー情報が前記メモリデバイスから出力されている間、アクセス要求の選択を抑止することを特徴とする請求項１ないし請求項１０のいずれか１項記載の記憶制御装置。
【請求項１２】
前記エラー情報は、前記要求選択部によるアクセス要求の選択から前記第１の時間が経過する前に、前記メモリデバイスから出力されることを特徴とする請求項１ないし請求項１１のいずれか１項記載の記憶制御装置。
【請求項１３】
前記要求選択部が選択したアクセス要求に基づいて、前記動作指示と、前記動作指示のエラーを前記メモリデバイスに検出させるエラー検出情報とを生成して前記メモリデバイスに出力する出力生成部を有することを特徴とする請求項１ないし請求項１２のいずれか１項記載の記憶制御装置。
【請求項１４】
前記要求選択部が選択したアクセス要求と、前記エラー情報とを順次に保持する複数のステージを含むシフトレジスタを有し、
前記複数のステージのうち、２段目からｍ段目のステージの各々は、前記メモリデバイスから出力される前記エラー情報が示す論理と前段のステージから出力されるエラー情報が示す論理との論理和をとった論理を保持することで、前記メモリデバイスから前記エラー情報が出力されたことに基づいて前記エラー情報を保持し、
前記ｍ段目のステージは、初段のステージに保持されたアクセス要求およびエラー情報が前記第１の時間の経過時に保持されるステージであり、
前記ライトデータ要求生成部は、前記ｍ段目より後のステージの１つから出力されるアクセス要求に基づいて前記ライトデータ要求を生成し、前記ｍ段目より後のステージの前記１つがエラー情報を保持する場合、前記ライトデータ要求の出力を抑止することを特徴とする請求項２記載の記憶制御装置。
【請求項１５】
制御装置から出力されるアクセス要求をそれぞれ保持する複数の要求保持部を含み、前記アクセス要求に基づいて、メモリデバイスのアクセスを制御する記憶制御装置の制御方法において、
前記記憶制御装置が有する要求選択部が、前記複数の要求保持部にそれぞれ保持されたアクセス要求のいずれかを選択し、選択されたアクセス要求を、前記メモリデバイスを動作させる動作指示として前記メモリデバイスに出力し、
前記記憶制御装置が有する要求制御部が、前記要求選択部によるアクセス要求の選択から第１の時間が経過した場合、前記要求選択部が選択したアクセス要求を保持している要求保持部からアクセス要求を削除するとともに、前記動作指示がエラーを含むことを示すエラー情報を前記メモリデバイスから受信した場合、前記複数の要求保持部のうち、前記要求選択部による選択から前記第１の時間が経過していないアクセス要求である対象アクセス要求を保持している要求保持部からのアクセス要求の削除を抑止し、
前記要求選択部は、削除が抑止された前記対象アクセス要求を再度選択し、前記動作指示として前記メモリデバイスに出力することを特徴とする記憶制御装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶制御装置および記憶制御装置の制御方法に関する。
【背景技術】
【０００２】
情報処理装置では、データと当該データのエラーを訂正するための冗長データとを複数のディスク装置に記憶することで、冗長データを用いない場合に比べてデータの信頼性を向上している。この種のディスク装置を含む情報処理装置は、書き込みコマンドを含むコマンド情報を記憶する不揮発性メモリを有する（例えば、特許文献１参照）。そして、情報処理装置は、データをディスク装置に書き込んだ後、冗長データを書き込む前に書き込みの完了通知をホストコンピュータに出力し、冗長データを完了通知の出力後に書き込む。これにより、データの書き込みの応答時間は短縮される。また、電源の異常等が発生した場合にも、不揮発性メモリに記憶されたコマンド情報に基づいて、ディスク装置にアクセスすることで、冗長データは再生される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平４−３１２１４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、情報処理装置に搭載されるＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）の一部の品種は、ノイズ等により発生するコマンドおよびアドレスのエラーを検出し、外部に通知する機能を有する。しかしながら、ＳＤＲＡＭのアクセスを制御する記憶制御装置が、ＳＤＲＡＭから受けるエラー通知に応答してアクセス要求を再発行する機能を持たない場合、エラーが発生すると不具合を回復することは困難であり、システムエラーとなってしまう。
【０００５】
本件開示の記憶制御装置および記憶制御装置の制御方法は、記憶装置が動作指示のエラーを検出した場合、記憶装置からのエラーの通知に基づいて動作指示を再発行することで、システムが停止することを抑止することを目的とする。
【課題を解決するための手段】
【０００６】
一つの観点によれば、制御装置から出力されるアクセス要求に基づいて、メモリデバイスのアクセスを制御する記憶制御装置は、制御装置から出力されるアクセス要求をそれぞれ保持する複数の要求保持部と、複数の要求保持部にそれぞれ保持されたアクセス要求のいずれかを選択し、選択されたアクセス要求を、メモリデバイスを動作させる動作指示としてメモリデバイスに出力するとともに、アクセス要求の削除が抑止された場合、削除が抑止されたアクセス要求である対象アクセス要求を再度選択し、動作指示としてメモリデバイスに出力する要求選択部と、要求選択部によるアクセス要求の選択から第１の時間が経過した場合、要求選択部が選択したアクセス要求を保持している要求保持部からアクセス要求を削除するとともに、動作指示がエラーを含むことを示すエラー情報をメモリデバイスから受信した場合、複数の要求保持部のうち、要求選択部による選択から第１の時間が経過していないアクセス要求を保持している要求保持部からのアクセス要求の削除を抑止する要求制御部を有する。
【０００７】
別の観点によれば、制御装置から出力されるアクセス要求をそれぞれ保持する複数の要求保持部を含み、アクセス要求に基づいて、メモリデバイスのアクセスを制御する記憶制御装置の制御方法は、記憶制御装置が有する要求選択部が、複数の要求保持部にそれぞれ保持されたアクセス要求のいずれかを選択し、選択されたアクセス要求を、メモリデバイスを動作させる動作指示としてメモリデバイスに出力し、記憶制御装置が有する要求制御部が、要求選択部によるアクセス要求の選択から第１の時間が経過した場合、要求選択部が選択したアクセス要求を保持している要求保持部からアクセス要求を削除するとともに、動作指示がエラーを含むことを示すエラー情報をメモリデバイスから受信した場合、複数の要求保持部のうち、要求選択部による選択から第１の時間が経過していないアクセス要求である対象アクセス要求を保持している要求保持部からのアクセス要求の削除を抑止し、要求選択部は、削除が抑止された対象アクセス要求を再度選択し、動作指示としてメモリデバイスに出力する。
【発明の効果】
【０００８】
本件開示の記憶制御装置および記憶制御装置の制御方法は、記憶装置が動作指示のエラーを検出した場合、記憶装置からのエラーの通知に基づいて動作指示を再発行することで、システムが停止することを抑止することができる。
【図面の簡単な説明】
【０００９】
【図１】記憶制御装置および記憶制御装置の制御方法の一実施形態を示す図である。
【図２】記憶制御装置および記憶制御装置の制御方法の別の実施形態を示す図である。
【図３】図２に示す記憶制御装置で使用される信号の構成の一例を示す図である。
【図４】図２に示すアクセス要求保持部の一例を示す図である。
【図５】図４に示すアクセス要求保持部の各エントリの動作の一例を示す図である。
【図６】図２に示すリフレッシュ要求保持部の一例を示す図である。
【図７】図６に示すリフレッシュ要求保持部のエントリの動作の一例を示す図である。
【図８】図４および図６に示すステート制御部のステートの遷移の一例を示す図である。
【図９】図２に示す要求選択部の動作の一例を示す図である。
【図１０】図２に示すパイプライン制御部の一例を示す図である。
【図１１】図２に示す要求発行リリース通知生成部の一例を示す図である。
【図１２】図２に示すエラー検出部の一例を示す図である。
【図１３】図１２に示すリトライ制御部によるモード情報の遷移の一例を示す図である。
【図１４】図２に示す記憶制御装置におけるコマンドパリティエラー情報の受信時の動作の一例を示す図である。
【図１５】図１４に示すステップＳ４００の動作の一例を示す図である。
【図１６】図１４に示すステップＳ５００の動作の一例を示す図である。
【図１７】図２に示す記憶制御装置の動作の一例を示す図である。
【図１８】図２に示す記憶制御装置の動作の一例を示す図である。
【図１９】図１７の動作の続きを示す図である。
【図２０】図１８の動作の続きを示す図である。
【図２１】図１０に示すパイプライン制御部の動作の一例を示す図である。
【図２２】記憶制御装置および記憶制御装置の制御方法の別の実施形態を示す図である。
【図２３】図２２に示すアクセス要求保持部の一例を示す図である。
【図２４】図２３に示すアクセス要求保持部の各エントリの動作の一例を示す図である。
【図２５】図２２に示すリフレッシュ要求保持部の一例を示す図である。
【図２６】図２５に示すリフレッシュ要求保持部のエントリの動作の一例を示す図である。
【図２７】図２３および図２５に示すステート制御部のステートの遷移の一例を示す図である。
【図２８】図２２に示すパイプライン制御部の一例を示す図である。
【図２９】図２２に示す要求発行リリース通知生成部の一例を示す図である。
【図３０】図２２に示すエラー検出部の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を用いて実施形態を説明する。
【００１１】
図１は、記憶制御装置および記憶制御装置の制御方法の一実施形態を示す。図１に示す記憶制御装置１００は、制御装置２００と記憶装置３００との間に接続され、制御装置２００から出力されるメモリアクセス要求ＭＲＱに基づいて記憶装置３００のアクセスを制御する。例えば、記憶制御装置１００、制御装置２００および記憶装置３００は、情報処理装置等のシステムに含まれる。
【００１２】
制御装置２００は、ＣＰＵ（Central Processing Unit）またはＤＳＰ（Digital Signal Processor）等のコントローラである。記憶装置３００は、ＳＤＲＡＭやＳＲＡＭ（Static Random Access Memory）等の半導体メモリである。なお、記憶装置３００は、メモリモジュールの形態であってもよい。
【００１３】
記憶制御装置１００は、複数の要求保持部１１０（１１０ａ、１１０ｂ、１１０ｃ）、要求選択部１２０、出力生成部１３０および要求制御部１４０を有する。各要求保持部１１０ａ、１１０ｂ、１１０ｃは、記憶装置３００にアクセスするために制御装置２００から出力されるメモリアクセス要求ＭＲＱをそれぞれ保持する。
【００１４】
要求選択部１２０は、要求保持部１１０ａ、１１０ｂ、１１０ｃにそれぞれ保持されたメモリアクセス要求ＭＲＱのいずれかを選択する。特に限定されないが、要求選択部１２０は、出力生成部１３０が生成するコマンドＣＭＤのエラーを検出したことを示すエラー情報ＥＲＲを記憶装置３００から受信している間、メモリアクセス要求ＭＲＱの選択を抑止する。コマンドＣＭＤは、記憶装置３００を動作させる動作指示の一例である。
【００１５】
出力生成部１３０は、要求選択部１２０が選択したメモリアクセス要求ＭＲＱに基づいて、記憶装置３００を動作させるコマンドＣＭＤと、コマンドＣＭＤのエラーを記憶装置３００に検出させるエラー検出情報Ｐとを生成して記憶装置３００に出力する。要求制御部１４０は、要求選択部１２０によるメモリアクセス要求ＭＲＱの選択から第１の時間Ｔ１が経過した場合、要求選択部１２０が選択したメモリアクセス要求ＭＲＱを要求保持部１１０のいずれかから削除する。要求制御部１４０は、エラー情報ＥＲＲを記憶装置３００から受信した場合、要求選択部１２０による選択から第１の時間Ｔ１が経過していないメモリアクセス要求ＭＲＱを保持している要求保持部１１０からのアクセス要求の削除を抑止する。
【００１６】
図１の下側のかぎ括弧内は、記憶制御装置１００の動作の一例を示す。この例では、制御装置２００がメモリアクセス要求ＭＲＱａ、ＭＲＱｂ、ＭＲＱｃを順次に記憶制御装置１００に出力する。記憶制御装置１００は、メモリアクセス要求ＭＲＱａ、ＭＲＱｂ、ＭＲＱｃを要求保持部１１０にそれぞれ保持する（図１（ａ）、（ｂ）、（ｃ））。
【００１７】
要求選択部１２０は、要求保持部１１０ａに保持されたメモリアクセス要求ＭＲＱａを選択し、出力生成部１３０および要求制御部１４０に出力する（図１（ｄ））。出力生成部１３０は、メモリアクセス要求ＭＲＱａに基づいてコマンドＣＭＤとエラー検出情報Ｐを生成し、記憶装置３００に出力する（図１（ｅ））。例えば、エラー検出情報Ｐは、コマンドＣＭＤを表す制御信号の論理のパリティである。なお、出力生成部１３０は、エラー検出情報Ｐを、コマンドＣＭＤとともに記憶制御装置１００から記憶装置３００に供給されるアドレスと、コマンドＣＭＤとから生成してもよい。また、要求選択部１２０が、出力生成部１３０の機能を有してもよい。
【００１８】
記憶装置３００は、エラー検出情報Ｐに基づいてコマンドＣＭＤにエラーがないことを検出し、コマンドＣＭＤにしたがって動作する。コマンドＣＭＤがライトコマンドの場合、記憶装置３００は、記憶制御装置１００を介して制御装置２００から受けるライトデータをメモリセルに書き込む。コマンドＣＭＤがリードコマンドの場合、記憶装置３００は、メモリセルからデータを読み出し、読み出したデータを、記憶制御装置１００を介して制御装置２００に出力する。
【００１９】
要求制御部１４０は、要求選択部１２０がメモリアクセス要求ＭＲＱａを選択した後、第１の時間Ｔ１の経過に基づいて、メモリアクセス要求ＭＲＱａを要求保持部１１０ａから削除する削除指示ＤＥＬを出力する（図１（ｆ））。要求保持部１１０ａは、削除指示ＤＥＬに基づいてメモリアクセス要求ＭＲＱａを削除する。そして、要求保持部１１０ａは、制御装置２００からの新たなメモリアクセス要求ＭＲＱを保持可能な状態になる（図１（ｇ））。
【００２０】
次に、要求選択部１２０は、要求保持部１１０ｂに保持されたメモリアクセス要求ＭＲＱｂを選択し、出力生成部１３０および要求制御部１４０に出力する（図１（ｈ））。出力生成部１３０は、メモリアクセス要求ＭＲＱｂに基づいてコマンドＣＭＤとエラー検出情報Ｐを生成し、記憶装置３００に出力する（図１（ｉ））。同様に、要求選択部１２０は、要求保持部１１０ｃに保持されたメモリアクセス要求ＭＲＱｃを選択し、出力生成部１３０および要求制御部１４０に出力する（図１（ｊ））。出力生成部１３０は、メモリアクセス要求ＭＲＱｃに基づいてコマンドＣＭＤとエラー検出情報Ｐを生成し、記憶装置３００に出力する（図１（ｋ））。
【００２１】
記憶装置３００は、エラー検出情報Ｐに基づいてメモリアクセス要求ＭＲＱｂに対応するコマンドＣＭＤのエラーを検出し、エラー情報ＥＲＲを出力する（図１（ｌ））。例えば、要求選択部１２０は、エラー情報ＥＲＲを受けている間、メモリアクセス要求ＭＲＱの選択を抑止する。これにより、コマンドＣＭＤのエラーが発生し、アクセス動作を停止している記憶装置３００に新たなコマンドＣＭＤが供給されることを抑止することができ、記憶制御装置１００および記憶装置３００の誤動作を抑止することができる。
【００２２】
要求制御部１４０は、エラー情報ＥＲＲを受信した場合、要求選択部１２０による選択から第１の時間Ｔ１が経過していないメモリアクセス要求ＭＲＱｂ、ＭＲＱｃの要求保持部１１０ｂ、１１０ｃからの削除を抑止する（図１（ｍ）、（ｎ））。すなわち、要求制御部１４０は、メモリアクセス要求ＭＲＱｂ、ＭＲＱｃの削除を指示する削除指示ＤＥＬを出力しない（図１（ｍ））。このため、要求保持部１１０ｂ、１１０ｃは、削除が抑止された抑止対象の対象アクセス要求であるメモリアクセス要求ＭＲＱｂ、ＭＲＱｃを削除することなく保持し続ける（図１（ｏ）、（ｐ)）。
【００２３】
エラー情報ＥＲＲの出力が停止された後、要求選択部１２０は、削除が抑止されたメモリアクセス要求ＭＲＱｂを選択する（図１（ｑ））。出力生成部１３０は、メモリアクセス要求ＭＲＱｂに基づいてコマンドＣＭＤとエラー検出情報Ｐを生成し、記憶装置３００に出力する（図１（ｒ））。記憶装置３００は、エラー検出情報Ｐに基づいてコマンドＣＭＤにエラーがないことを検出し、コマンドＣＭＤにしたがって動作する。
【００２４】
要求制御部１４０は、要求選択部１２０によるメモリアクセス要求ＭＲＱｂの選択から第１の時間Ｔ１が経過した後、メモリアクセス要求ＭＲＱｂを要求保持部１１０ｂから削除させる（図１（ｓ））。これにより、要求保持部１１０ｂは、制御装置２００からの新たなメモリアクセス要求ＭＲＱを保持可能な状態になる。
【００２５】
同様に、要求選択部１２０は、削除が抑止されたメモリアクセス要求ＭＲＱｃを選択し、出力生成部１３０は、メモリアクセス要求ＭＲＱｃに基づいてコマンドＣＭＤとエラー検出情報Ｐを生成し、記憶装置３００に出力する（図１（ｔ）、（ｕ））。そして、要求選択部１２０によるメモリアクセス要求ＭＲＱｃの選択から第１の時間Ｔ１が経過した後、メモリアクセス要求ＭＲＱｃは要求保持部１１０ｂから削除される（図１（ｖ））。
【００２６】
以上、図１では、記憶装置３００がコマンドＣＭＤのエラーを検出した場合、要求選択部１２０により選択済みのメモリアクセス要求ＭＲＱｂ、ＭＲＱｃは、第１の時間Ｔ１が経過した後も、削除されることなく要求保持部１１０ｂ、１１０ｃに保持される。これにより、記憶制御装置１００は、記憶装置３００で実行されなかったメモリアクセス要求ＭＲＱｂ、ＭＲＱｃを、記憶装置３００に再発行（リトライ）することができる。この結果、記憶制御装置１００、制御装置２００および記憶装置３００を含むシステムは、動作を停止させることなく継続することができる。すなわち、システムの信頼性が低下することを抑止することができ、システムの性能を向上することができる。
【００２７】
図２は、記憶制御装置および記憶制御装置の制御方法の別の実施形態を示す。図２において二重の四角印は、外部端子を示す。外部端子は、例えば、半導体チップ上のパッド、あるいは半導体チップが収納されるパッケージのリードである。外部端子を介して供給される信号には、端子名と同じ符号を使用する。なお、外部端子に接続されるバッファ回路等のＩ／Ｏ（Input/Output）回路は、記載を省略する。
【００２８】
図２に示す記憶制御装置ＭＡＣは、アクセス要求保持部１０、リフレッシュ制御部１２、リフレッシュ要求保持部１４、要求選択部１６、アクセス信号生成部１８、パイプライン制御部２０、要求発行リリース通知生成部２２を有する。また、記憶制御装置ＭＡＣは、エラー検出部２４、ライトデータ制御部２６、リードデータ制御部２８およびデータ入出力部３０を有する。
【００２９】
記憶制御装置ＭＡＣは、ＣＰＵとＤＩＭＭ（Dual Inline Memory Module）との間に接続される。ＤＩＭＭは、複数のＳＤＲＡＭを含む。ＳＤＲＡＭは、ワード線とビット線とに接続される複数のダイナミックメモリセルを有する。ＳＤＲＡＭは、複数のバンクを含んでもよい。ＳＤＲＡＭおよびＤＩＭＭは、アクセス要求に基づいて記憶制御装置ＭＡＣによりアクセスが制御される記憶装置の一例である。ＣＰＵは、ＳＤＲＡＭ（ＤＩＭＭ）にアクセスするアクセス要求を出力する制御装置の一例である。ＣＰＵ、記憶制御装置ＭＡＣおよびＤＩＭＭは、情報処理装置等のシステムに含まれる。
【００３０】
記憶制御装置ＭＡＣは、ＣＰＵからのメモリアクセス要求ＭＲＱに基づいて、コマンドＣＭＤと、アドレスＡＤと、コマンドＣＭＤおよびアドレスＡＤのパリティＰとをＳＤＲＡＭに出力し、ＳＤＲＡＭのアクセスを制御する。コマンドＣＭＤは、チップアドレス信号、クロックイネーブル信号、ロウアドレスストローブ信号、コラムアドレスストローブ信号およびライトイネーブル信号を含む。コマンドＣＭＤは、ＳＤＲＡＭおよびＤＩＭＭを動作させる動作指示の一例である。
【００３１】
ＣＰＵは、シングルコアタイプでもよく、マルチコアタイプでもよい。また、複数のＣＰＵが記憶制御装置ＭＡＣに接続されてもよく、ＤＳＰまたはＤＭＡＣ（Direct Memory Access Controller）等のバスマスタが記憶制御装置ＭＡＣに接続されてもよい。
【００３２】
ＳＤＲＡＭは、例えば、ＤＤＲ４（Double Data Rate 4） ＳＤＲＡＭ規格にしたがって設計されている。ＳＤＲＡＭは、パリティＰに基づいて、コマンドＣＭＤまたはアドレスＡＤのエラーを検出した場合、コマンドパリティエラー情報ＣＡＰＥを所定の期間出力し、コマンドＣＭＤに基づくメモリアクセス動作の実行を抑止する機能を有する。
【００３３】
コマンドパリティエラー情報ＣＡＰＥは、例えば、１ビットであり、パリティエラーが発生したコマンドＣＭＤおよびアドレスＡＤを識別する情報を含まない。このため、記憶制御装置ＭＡＣは、コマンドパリティエラー情報ＣＡＰＥを受信したときに要求選択部１６から出力済みであり、アクセス動作が開始されていないコマンドＣＭＤの全てを、パリティエラーの発生により影響を受けるコマンドＣＭＤと判断する。記憶制御装置ＭＡＣは、パリティエラーの発生により影響を受けると判断したコマンドＣＭＤを、コマンドパリティエラー情報ＣＡＰＥの出力が停止された後に再発行（リトライ）する。コマンドパリティエラー情報ＣＡＰＥの発生に伴う再発行処理（リトライ処理）は、図９、図１４等で説明する。
【００３４】
なお、ＳＤＲＡＭは、ＤＤＲ３ ＳＤＲＡＭ規格にしたがって設計されてもよい。この場合、ＤＩＭＭは、パリティＰに基づいて、コマンドＣＭＤまたはアドレスＡＤのエラーを検出した場合、コマンドパリティエラー情報ＣＡＰＥを出力し、ＳＤＲＡＭに、コマンドＣＭＤに基づくアクセス動作の実行を抑止させる機能を有する。
【００３５】
図２では、記憶制御装置ＭＡＣは、４枚のＤＩＭＭに接続されるが、接続されるＤＩＭＭの枚数は、１枚でも２枚でもよい。例えば、各ＤＩＭＭのデータバスの幅は、６４ビットであり、４枚のＤＩＭＭのデータのビット幅は、２５６ビットである。ＤＩＭＭ内のＳＤＲＡＭにデータのパリティ（例えば、８ビット）を記憶させる場合、７２ビット幅のＤＩＭＭが使用される。なお、記憶制御装置ＭＡＣは、ＳＤＲＡＭに直接接続されてもよい。
【００３６】
アクセス要求保持部１０は、ＣＰＵからのメモリアクセス要求ＭＲＱを保持する複数のエントリＥＮＴを有し、各エントリＥＮＴに保持したメモリアクセス要求ＭＲＱを示すアクセス要求情報ＡＲＱＩを要求選択部１６に出力する。各エントリＥＮＴは、ＣＰＵから出力されるメモリアクセス要求ＭＲＱを保持する要求保持部の一例である。
【００３７】
各エントリＥＮＴは、アクセス要求発行通知ＡＲＱＳに基づいて、要求選択部１６がメモリアクセス要求ＭＲＱを選択したことを検出する。また、各エントリＥＮＴは、メモリアクセス要求ＭＲＱがＳＤＲＡＭに受け付けられたことを示すアクセス要求完了通知ＡＲＱＥに基づいて、エントリＥＮＴに保持しているアクセス要求情報ＡＲＱＩを削除する。さらに、各エントリＥＮＴは、ＳＤＲＡＭからコマンドパリティエラー情報ＣＡＰＥを受信した場合、コマンドＣＭＤ（ライトコマンドまたはリードコマンド）をリトライするために、アクセス要求情報ＡＲＱＩの出力を維持する。アクセス要求保持部１０の一例は、図４に示し、アクセス要求保持部１０のエントリＥＮＴの動作の一例は、図５に示す。
【００３８】
リフレッシュ制御部１２は、ＳＤＲＡＭにリフレッシュ動作を実行させるリフレッシュ要求ＲＲＱを所定の周期で出力する。リフレッシュ要求保持部１４は、リフレッシュ要求ＲＲＱを保持する１つのエントリＥＮＴＲを有し、エントリＥＮＴＲに保持したリフレッシュ要求ＲＲＱを示すリフレッシュ要求情報ＲＲＱＩを要求選択部１６に出力する。また、エントリＥＮＴＲは、リフレッシュ要求ＲＲＱがＳＤＲＡＭに受け付けられたことを示すリフレッシュ要求完了通知ＲＲＱＥに基づいて、エントリＥＮＴＲに保持しているリフレッシュ要求情報ＲＲＱＩを削除する。さらに、エントリＥＮＴＲは、ＳＤＲＡＭからコマンドパリティエラー情報ＣＡＰＥを受信した場合、コマンドＣＭＤ（リフレッシュコマンド）をリトライするために、リフレッシュ要求情報ＲＲＱＩの出力を維持する。リフレッシュ要求保持部１４の一例は、図６に示し、エントリＥＮＴＲの動作の一例は、図７に示す。
【００３９】
要求選択部１６は、アクセス要求情報ＡＲＱＩまたはリフレッシュ要求情報ＲＲＱＩのいずれかを選択し、発行要求情報ＲＱＩＮＦとして出力する。要求選択部１６は、リトライ制御要求ＲＴＲＱに基づいてプリチャージ要求を示す発行要求情報ＲＱＩＮＦを出力する。その後、要求選択部１６は、コマンドＣＭＤをリトライするために、アクセス要求情報ＡＲＱＩまたはリフレッシュ要求情報ＲＲＱＩのいずれかを示す発行要求情報ＲＱＩＮＦを出力する。
【００４０】
要求選択部１６は、プリチャージ要求を示す発行要求情報ＲＱＩＮＦおよびリトライ要求（メモリアクセス要求ＭＲＱまたはリフレッシュ要求ＲＲＱ）を示す発行要求情報ＲＱＩＮＦの出力タイミングを、モード情報ＭＤに基づいて決定する。要求選択部１６の動作の一例は、図９に示す。プリチャージ要求は、アクセス信号生成部１８によりプリチャージコマンドに変換される。ＳＤＲＡＭは、プリチャージコマンドに基づいて、ワード線をリセットするとともに、ビット線を所定の電圧にプリチャージする。
【００４１】
アクセス信号生成部１８は、発行要求情報ＲＱＩＮＦに基づいて、ＳＤＲＡＭにアクセス動作を実行させるコマンドＣＭＤおよびアドレスＡＤを生成し、ＳＤＲＡＭに出力する。また、アクセス信号生成部１８は、コマンドＣＭＤおよびアドレスＡＤの少なくともいずれかのパリティＰを生成するパリティ生成器ＰＧＥＮを有し、生成したパリティＰを、コマンドＣＭＤおよびアドレスＡＤとともにＳＤＲＡＭに出力する。パリティＰは、コマンドＣＭＤのエラーをＳＤＲＡＭに検出させるエラー検出情報の一例である。アクセス信号生成部１８は、コマンドＣＭＤを生成する出力生成部の一例である。
【００４２】
特に限定されないが、アクセス信号生成部１８は、発行要求情報ＲＱＩＮＦがＳＤＲＡＭにデータを書き込むライト要求を示す場合、アクティブコマンドおよびオートプリチャージ付きのライトコマンドをＳＤＲＡＭに順次に出力する。これにより、ライト要求に応答するライト動作後、ＳＤＲＡＭは、プリチャージされたスタンバイ状態になる。
【００４３】
アクセス信号生成部１８は、発行要求情報ＲＱＩＮＦがＳＤＲＡＭからデータを読み出すリード要求を示す場合、アクティブコマンドおよびオートプリチャージ付きのリードコマンドをＳＤＲＡＭに順次に出力する。これにより、リード要求に応答するリード動作後、ＳＤＲＡＭは、プリチャージされたスタンバイ状態になる。
【００４４】
アクセス信号生成部１８は、発行要求情報ＲＱＩＮＦがリフレッシュ要求を示す場合、オートリフレッシュコマンドをＳＤＲＡＭに出力する。オートリフレッシュコマンドを受信したＳＤＲＡＭは、内蔵するリフレッシュアドレスカウンタを用いて、リフレッシュアドレスを受信することなくリフレッシュ動作を実行し、スタンバイ状態に戻る。リフレッシュ動作により、ＳＤＲＡＭ内のダイナミックメモリセルが保持しているデータは再書き込みされ、データは失われることなくダイナミックメモリセルに保持される。
【００４５】
このように、記憶制御装置ＭＡＣは、スタンバイ状態のＳＤＲＡＭにライト要求、リード要求またはリフレッシュ要求を供給する。記憶制御装置ＭＡＣは、ライト要求、リード要求またはリフレッシュ要求をリトライする場合、ＳＤＲＡＭをスタンバイ状態に設定するために、プリチャージコマンドをＳＤＲＡＭに供給する。これにより、ＳＤＲＡＭがアクティブコマンドを受けてアクティブ状態にある場合にも、ＳＤＲＡＭのリトライ動作を正しく実行することができる。リトライ動作およびリトライ用のプリチャージコマンドは、図９等で説明する。なお、記憶制御装置ＭＡＣは、オートプリチャージ付きのライトコマンドおよびリードコマンドを用いてＳＤＲＡＭにアクセスするため、リトライ以外でプリチャージコマンドを使用しない。
【００４６】
パイプライン制御部２０は、要求選択部１６からの発行要求情報ＲＱＩＮＦを受信した後、記憶制御装置ＭＡＣ内の各部の動作を制御する制御信号を、所定のクロックサイクル毎に出力するシーケンサの機能を有する。発行要求情報ＲＱＩＮＦがライト要求の場合、パイプライン制御部２０は、アクセス要求完了通知ＡＲＱＥ、ライトデータ要求ＷＤＲＱ、ライトデータ制御信号ＷＤＣＮＴを順次に出力する。発行要求情報ＲＱＩＮＦがリード要求の場合、パイプライン制御部２０は、アクセス要求完了通知ＡＲＱＥ、リードデータ制御信号ＲＤＣＮＴ、バリッド信号ＶＬＤ（Ｒ）、要求識別番号ＲＱＩＤ（Ｒ）を順次に出力する。発行要求情報ＲＱＩＮＦが通常のリフレッシュ要求の場合、パイプライン制御部２０は、リフレッシュ要求完了通知ＲＲＱＥを出力する。発行要求情報ＲＱＩＮＦがリトライ制御要求ＲＴＲＱに基づくプリチャージコマンドを示す場合、パイプライン制御部２０は、リトライ制御要求完了通知ＲＴＲＱＥを出力する。また、パイプライン制御部２０は、コマンドパリティエラー情報ＣＡＰＥに基づいて、リトライの対象のアクセス要求およびリトライの対象のリフレッシュ要求を検出する機能を有する。パイプライン制御部２０の一例は、図１０に示す。
【００４７】
要求発行リリース通知生成部２２は、発行要求情報ＲＱＩＮＦに基づいて、ＳＤＲＡＭにコマンドＣＭＤが出力されることを示すアクセス要求発行通知ＡＲＱＳまたはリフレッシュ要求発行通知ＲＲＱＳを出力する。また、要求発行リリース通知生成部２２は、アクセス要求完了通知ＡＲＱＥに基づいて、メモリアクセス要求ＭＲＱがＳＤＲＡＭに受け付けられたことを示すメモリアクセス要求リリース情報ＭＲＱＲをＣＰＵに出力する。なお、コマンドパリティエラー情報ＣＡＰＥの受信により、アクセス要求完了通知ＡＲＱＥが生成されない場合、要求発行リリース通知生成部２２は、メモリアクセス要求リリース情報ＭＲＱＲのＣＰＵへの出力を抑止する。これにより、ＣＰＵは、ＳＤＲＡＭが受け付けていないメモリアクセス要求ＭＲＱに対応するアクセス動作が開始されたことを誤認識すること（すなわち、誤動作）を抑制することができる。要求発行リリース通知生成部２２の一例は、図１１に示す。
【００４８】
エラー検出部２４は、コマンドパリティエラー情報ＣＡＰＥおよびリトライ制御要求完了通知ＲＴＲＱＥに基づいて、コマンドのリトライを制御するリトライ制御要求ＲＴＲＱと、エラー検出部２４が制御するモードを示すモード情報ＭＤを出力する。リトライ制御要求ＲＴＲＱ（プリチャージ要求）は、図８に示すステートＳＴが”発行済み”のメモリアクセス要求ＭＲＱまたはリフレッシュ要求ＲＲＱに対応して出力される。エラー検出部２４は、ＳＤＲＡＭからのコマンドパリティエラー情報ＣＡＰＥの出力が停止された後、ＳＤＲＡＭをスタンバイ状態（プリチャージ状態）に設定するスタンバイ要求（プリチャージ要求）を生成するスタンバイ要求生成部の一例である。
【００４９】
また、エラー検出部２４は、コマンドパリティエラー情報ＣＡＰＥの発生回数（すなわち、リトライ回数）が所定の値ＶＴになった場合、ＣＰＵにシステムエラー情報ＳＹＳＥを出力する。例えば、記憶制御装置ＭＡＣとＤＩＭＭとの間に配線されるコマンド線ＣＭＤが断線またはショートした場合、コマンドパリティエラー情報ＣＡＰＥが繰り返し発生される。この場合、ＣＰＵは、システムエラー情報ＳＹＳＥに基づいて故障を検出することができ、システムの信頼性が低下することを抑止することができる。
【００５０】
ライトデータ制御部２６は、ライトデータ制御信号ＷＤＣＮＴに基づいて、ＣＰＵから出力されるライトデータＷＤを、データ入出力部３０を介してＤＩＭＭに出力する。例えば、ライトデータ制御部２６は、ＣＰＵから１０２４ビット（１２８バイト）のライトデータＷＤを４回に分けて受信し、受信したライトデータＷＤを４回に分けて４つのＤＩＭＭに出力する（バースト長＝４）。なお、ライトデータのパリティをライトデータＷＤとともにＤＩＭＭに書き込む場合、ライトデータ制御部２６は、パリティを生成するパリティ生成器を有してもよい。
【００５１】
リードデータ制御部２８は、リードデータ制御信号ＲＤＮＴに基づいて、データ入出力部３０を介してＤＩＭＭから受信するリードデータＲＤＴをＣＰＵに出力する。例えば、リードデータ制御部２８は、４つのＤＩＭＭから１０２４ビット（８バイト）のリードデータＲＤＴを４回に分けて受信し（バースト長＝４）、受信したリードデータＲＤＴを４回に分けてＣＰＵに出力する。なお、リードデータＲＤＴとともにパリティをＤＩＭＭから受信する場合、リードデータ制御部２８は、パリティに基づいてリードデータＲＤＴのエラーを検出し、エラーを訂正する回路を有してもよい。
【００５２】
データ入出力部３０は、ＤＩＭＭのライトアクセス時にライトデータＷＤを、データ端子ＤＴを介してＤＩＭＭに出力し、ＤＩＭＭのリードアクセス時にリードデータＲＤＴを、データ端子ＤＴを介してＤＩＭＭから受信する。
【００５３】
図３は、図２に示す記憶制御装置ＭＡＣで使用される信号の構成の一例を示す。バリッドＶＬＤは、各信号が有効である場合に論理１に設定され、各信号が無効である場合に論理０に設定される。要求識別番号ＲＱＩＤは、個々のメモリアクセス要求ＭＲＱを識別するための固有の番号であり、ＣＰＵにより割り当てられる。ライトデータ識別番号ＷＤＩＤは、ライト要求を示すメモリアクセス要求ＭＲＱ毎にライトデータを識別するための固有の番号であり、ＣＰＵにより割り当てられる。アクセス要求情報ＡＲＱＩのステートＳＴは、アクセス要求保持部１０の各エントリＥＮＴの状態を示す。リフレッシュ要求情報ＲＲＱＩのステートＳＴは、リフレッシュ要求保持部１４のエントリＥＮＴＲの状態を示す。アクセス要求保持部１０およびリフレッシュ要求保持部１４のステートＳＴの遷移の一例は、図８に示す。
【００５４】
メモリアクセス要求ＭＲＱにおいて、コマンドは、ライトコマンドまたはリードコマンドを示し、アドレスは、アクセスするメモリ空間の先頭アドレスを示す。リフレッシュ要求ＲＲＱにおいて、コマンドは、リフレッシュコマンドを示し、アドレスは、リフレッシュするメモリ空間の先頭アドレスを示す。リトライ制御要求ＲＴＲＱにおいて、コマンドは、リトライするライトコマンド、リードコマンドまたはリフレッシュコマンドを示し、アドレスは、アクセスするメモリ空間またはリフレッシュするアドレス空間を示す。
【００５５】
発行要求情報ＲＱＩＮＦにおいて、コマンドは、ライトコマンド、リードコマンドまたはリフレッシュコマンドを示し、アドレスは、アクセスするメモリ空間またはリフレッシュするアドレス空間を示す。リードデータＲＤにおいて、要求識別番号ＲＱＩＤは、ＣＰＵが発行したメモリアクセス要求ＭＲＱ（リード要求）との対応付けのためにＣＰＵに出力される。ライトデータ要求ＷＤＲＱにおいて、ライトデータ識別番号ＷＤＩＤは、記憶制御装置ＭＡＣがＣＰＵに要求するライトデータを識別するために使用される。
【００５６】
図４は、図２に示すアクセス要求保持部１０の一例を示す。アクセス要求保持部１０は、ｎ個（ｎは２以上の整数）のエントリＥＮＴ（ＥＮＴ１、ＥＮＴ２、ＥＮＴ３、...、ＥＮＴｎ）を有する。各エントリＥＮＴは、互いに同一または同様であるため、以下では、エントリＥＮＴ１の構成を説明する。
【００５７】
エントリＥＮＴ１は、メモリアクセス要求ＭＲＱに含まれるバリッドＶＬＤ、コマンド、アドレス、要求識別番号ＲＱＩＤおよびライトデータ識別番号ＷＤＩＤを保持する保持領域ＨＬＤを有する。また、エントリＥＮＴ１は、ステートＳＴを保持する領域を有するステート制御部ＳＴＣＮＴを有する。ステート制御部ＳＴＣＮＴは、メモリアクセス要求ＭＲＱ、アクセス要求発行通知ＡＲＱＳ、コマンドパリティエラー情報ＣＡＰＥおよびアクセス要求完了通知ＡＲＱＥの受信に基づいて、ステートＳＴを遷移させる。ステートＳＴの遷移の一例は、図８に示す。アクセス要求保持部１０は、ＣＰＵからメモリアクセス要求ＭＲＱを受信した場合、ステートＳＴがアイドル状態のエントリＥＮＴ１の１つに受信したメモリアクセス要求ＭＲＱを保持させる。エントリＥＮＴ１は、保持しているバリッドＶＬＤ、コマンド、アドレス、要求識別番号ＲＱＩＤおよびライトデータ識別番号ＷＤＩＤと、ステートＳＴとを示すアクセス要求情報ＡＲＱＩを要求選択部１６に出力する。アクセス要求保持部１０の各エントリＥＮＴの動作の一例は、図５に示す。
【００５８】
図５は、図４に示すアクセス要求保持部１０の各エントリＥＮＴの動作の一例を示す。例えば、図５に示す処理は、各エントリＥＮＴのステート制御部ＳＴＣＮＴのハードウェアにより実行される。なお、図５は、説明を分かりやすくするために各エントリＥＮＴの動作を分解して示したものであり、実際の動作では、各ステップの幾つかは、並列に実行されてもよい。例えば、ステップＳ１０４、Ｓ１０６は、並列に実行されてもよく、ステップＳ１１８、Ｓ１２０は並列に実行されてもよい。
【００５９】
まず、ステップＳ１０２において、エントリＥＮＴは、アクセス要求保持部１０からメモリアクセス要求ＭＲＱの保持を指示されたか否かを判定する。エントリＥＮＴは、メモリアクセス要求ＭＲＱの保持を指示された場合、処理をステップＳ１０４に移行させ、メモリアクセス要求ＭＲＱの保持を指示されていない場合、ステップＳ１０２の処理を繰り返す。
【００６０】
ステップＳ１０４において、エントリＥＮＴは、メモリアクセス要求ＭＲＱに含まれるバリッドＶＬＤ、コマンド、アドレス、要求識別番号ＲＱＩＤおよびライトデータ識別番号ＷＤＩＤを保持領域ＨＬＤに保持する。保持領域ＨＬＤのバリッドＶＬＤの領域には、有効なメモリアクセス要求ＭＲＱの保持を示す論理１が格納される。
【００６１】
次に、ステップＳ１０６において、エントリＥＮＴは、ステートＳＴを”未発行”を示す情報に書き替える。”未発行”は、エントリＥＮＴに保持されたメモリアクセス要求ＭＲＱが要求選択部１６により選択されていないことを示す。すなわち、”未発行”は、エントリＥＮＴに保持されたメモリアクセス要求ＭＲＱが、ＤＩＭＭに供給されていないことを示す。
【００６２】
次に、ステップＳ１０８において、エントリＥＮＴは、エントリＥＮＴに保持されたメモリアクセス要求ＭＲＱに対応するアクセス要求発行通知ＡＲＱＳを受信したか否かを判定する。エントリＥＮＴは、対応するアクセス要求発行通知ＡＲＱＳを受信した場合、処理をステップＳ１１０に移行させ、対応するアクセス要求発行通知ＡＲＱＳを受信していない場合、ステップＳ１０８の処理を繰り返す。
【００６３】
ステップＳ１１０において、エントリＥＮＴは、ステートＳＴを”発行済み”を示す情報に書き替える。”発行済み”は、エントリＥＮＴに保持されたメモリアクセス要求ＭＲＱが要求選択部１６により選択されたことを示す。すなわち、”発行済み”は、エントリＥＮＴに保持されたメモリアクセス要求ＭＲＱが、ＤＩＭＭに供給されたことを示す。
【００６４】
次に、ステップＳ１１２において、エントリＥＮＴは、コマンドパリティエラー情報ＣＡＰＥを受信したか否かを判定する。エントリＥＮＴは、コマンドパリティエラー情報ＣＡＰＥを受信した場合、処理をステップＳ１１４に移行させ、コマンドパリティエラー情報ＣＡＰＥを受信していない場合、処理をステップＳ１１６に移行させる。
【００６５】
ステップＳ１１４において、エントリＥＮＴは、ステートＳＴを”リトライ”を示す情報に書き替え、処理をステップＳ１０８に戻す。”リトライ”は、コマンドパリティエラー情報ＣＡＰＥの発生により、エントリＥＮＴに保持されたメモリアクセス要求ＭＲＱをＤＩＭＭに再度発行することを示す。
【００６６】
アクセス要求発行通知ＡＲＱＳを受信後、アクセス要求完了通知ＡＲＱＥを受信していないメモリアクセス要求ＭＲＱは、ＳＤＲＡＭに受け付けられていないメモリアクセス要求ＭＲＱである。ＳＤＲＡＭがメモリアクセス要求ＭＲＱを受け付ける前にコマンドパリティエラーを検出し、コマンドパリティエラー情報ＣＡＰＥを出力した場合、そのメモリアクセス要求ＭＲＱは、リトライの対象になる。
【００６７】
コマンドパリティエラー情報ＣＡＰＥを受信しない場合、ステップＳ１１６において、エントリＥＮＴは、エントリＥＮＴに保持されたメモリアクセス要求ＭＲＱに対応するアクセス要求完了通知ＡＲＱＥを受信したか否かを判定する。エントリＥＮＴは、対応するアクセス要求完了通知ＡＲＱＥを受信した場合、エントリＥＮＴに保持されたメモリアクセス要求ＭＲＱがＳＤＲＡＭに受け付けられたと判断し、処理をステップＳ１１８に移行させる。一方、エントリＥＮＴは、対応するアクセス要求完了通知ＡＲＱＥを受信していない場合、エントリＥＮＴに保持されたメモリアクセス要求ＭＲＱがＳＤＲＡＭに受け付けられていないと判断し、処理をステップＳ１１２に戻す。なお、アクセス要求完了通知ＡＲＱＥは、図１０で説明するように、要求選択部１６が発行要求情報ＲＱＩＮＦを出力した後、所定のクロックサイクル後に生成される。
【００６８】
ステップＳ１１８において、エントリＥＮＴは、保持部ＨＬＤに保持されたバリッドＶＬＤをロウレベルＬ（論理０）にリセットし、エントリＥＮＴに保持されたメモリアクセス要求ＭＲＱを無効にする。次に、ステップＳ１２０において、エントリＥＮＴは、ステートＳＴを”アイドル”を示す情報に書き替える。”アイドル”は、エントリＥＮＴが有効なメモリアクセス要求ＭＲＱを保持しておらず、新たなメモリアクセス要求ＭＲＱを保持可能な空き状態であることを示す。エントリＥＮＴは、ステップＳ１２０の処理の後、処理をステップＳ１０２に戻す。そして、上述した動作が繰り返される。
【００６９】
図６は、図２に示すリフレッシュ要求保持部１２の一例を示す。リフレッシュ要求保持部１２は、１個のエントリＥＮＴＲを有する。エントリＥＮＴＲは、リフレッシュ要求ＲＲＱに含まれるバリッドＶＬＤ、コマンドおよびアドレスを保持する保持部ＨＬＤと、ステートＳＴを保持する領域を有するステート制御部ＳＴＣＮＴとを有する。ステート制御部ＳＴＣＮＴは、リフレッシュ要求ＲＲＱ、リフレッシュ要求発行通知ＲＲＱＳ、コマンドパリティエラー情報ＣＡＰＥおよびリフレッシュ要求完了通知ＲＲＱＥの受信に基づいて、ステートＳＴを遷移させる。ステートＳＴの遷移の一例は、図８に示す。エントリＥＮＴＲは、保持しているバリッドＶＬＤ、コマンドおよびアドレスと、ステートＳＴとを示すリフレッシュ要求情報ＲＲＱＩを出力する。リフレッシュ要求保持部１２のエントリＥＮＴＲの動作の一例は、図７に示す。
【００７０】
図７は、図６に示すリフレッシュ要求保持部１２のエントリＥＮＴＲの動作の一例を示す。図５に示す動作と同一または同様の動作は、図５と同じ符号を付し、詳細な説明は省略する。図７に示すフローは、図５に示すステップＳ１０２、Ｓ１０４、Ｓ１０８、Ｓ１１６が、ステップＳ１０２ｒ、Ｓ１０４ｒ、Ｓ１０８ｒ、Ｓ１１６ｒに置き換えられる。
【００７１】
ステップＳ１０２ｒにおいて、エントリＥＮＴＲは、リフレッシュ要求ＲＲＱを受信したか否かを判定する。エントリＥＮＴＲは、リフレッシュ要求ＲＲＱを受信した場合、処理をステップＳ１０４ｒに移行させ、リフレッシュ要求ＲＲＱを受信していない場合、ステップＳ１０２ｒの処理を繰り返す。
【００７２】
ステップＳ１０４ｒにおいて、エントリＥＮＴＲは、リフレッシュ要求ＲＲＱに含まれるバリッドＶＬＤ、コマンドおよびアドレスを保持部ＨＬＤに保持する。保持領域ＨＬＤのバリッドＶＬＤの領域には、有効なメモリアクセス要求ＭＲＱの保持を示す論理１が格納される。ステップＳ１０６の処理は、図５と同様である。ステートＳＴの”未発行”は、エントリＥＮＴＲに保持されたリフレッシュ要求ＲＲＱが要求選択部１６により選択されていないことを示す。すなわち、”未発行”は、エントリＥＮＴＲに保持されたリフレッシュ要求ＲＲＱが、ＤＩＭＭに供給されていないことを示す。
【００７３】
次に、ステップＳ１０８ｒにおいて、エントリＥＮＴＲは、エントリＥＮＴＲに保持されたリフレッシュ要求ＲＲＱに対応するリフレッシュ要求発行通知ＲＲＱＳを受信したか否かを判定する。エントリＥＮＴＲは、対応するリフレッシュ要求発行通知ＲＲＱＳを受信した場合、処理をステップＳ１１０に移行させ、対応するリフレッシュ要求発行通知ＲＲＱＳを受信していない場合、ステップＳ１０８ｒの処理を繰り返す。
【００７４】
ステップＳ１１０の処理は、図５と同様である。ステートＳＴの”発行済み”は、エントリＥＮＴＲに保持されたリフレッシュ要求ＲＲＱが要求選択部１６により選択されたことを示す。すなわち、”発行済み”は、エントリＥＮＴＲに保持されたリフレッシュ要求ＲＲＱが、ＤＩＭＭに供給されたことを示す。
【００７５】
ステップＳ１１２、Ｓ１１４の処理は、図５と同様である。ステップＳ１１４におけるステートＳＴの”リトライ”は、コマンドパリティエラー情報ＣＡＰＥの発生により、エントリＥＮＴに保持されたリフレッシュ要求ＲＲＱをＤＩＭＭに再度発行することを示す。
【００７６】
リフレッシュ要求発行通知ＲＲＱＳを受信後、リフレッシュ要求完了通知ＲＲＱＥを受信していないリフレッシュ要求ＲＲＱは、ＳＤＲＡＭに受け付けられていないリフレッシュ要求ＲＲＱである。ＳＤＲＡＭがリフレッシュ要求ＲＲＱを受け付ける前にコマンドパリティエラーを検出し、コマンドパリティエラー情報ＣＡＰＥを出力した場合、そのリフレッシュ要求ＲＲＱは、リトライの対象になる。
【００７７】
コマンドパリティエラー情報ＣＡＰＥを受信しない場合、ステップＳ１１６ｒにおいて、エントリＥＮＴＲは、エントリＥＮＴＲに保持されたリフレッシュ要求ＲＲＱに対応するリフレッシュ要求完了通知ＲＲＱＥを受信したか否かを判定する。エントリＥＮＴＲは、対応するリフレッシュ要求完了通知ＲＲＱＥを受信した場合、エントリＥＮＴに保持されたリフレッシュ要求ＲＲＱがＳＤＲＡＭに受け付けられたと判断し、処理をステップＳ１１８に移行させる。一方、エントリＥＮＴＲは、対応するリフレッシュ要求完了通知ＲＲＱＥを受信していない場合、エントリＥＮＴに保持されたリフレッシュ要求ＲＲＱがＳＤＲＡＭに受け付けられていないと判断し、処理をステップＳ１１２に戻す。ステップＳ１１８、Ｓ１２０の処理は、図５と同様である。そして、エントリＥＮＴＲは、ステップＳ１２０の処理の後、処理をステップＳ１０２ｒに戻す。
【００７８】
図８は、図４および図６に示すステート制御部ＳＴＣＮＴのステートＳＴの遷移の一例を示す。図８において、下線を付した文字は、アクセス要求保持部１０のステート制御部ＳＴＣＮＴの動作を示し、括弧内の文字は、リフレッシュ要求保持部１４のステート制御部ＳＴＣＮＴの動作を示す。以下では、アクセス要求保持部１０の各エントリＥＮＴのステート制御部ＳＴＣＮＴにおけるステートＳＴの遷移が説明される。リフレッシュ要求保持部１４のエントリＥＮＴＲのステート制御部ＳＴＣＮＴにおけるステートＳＴの遷移は、以下の説明を次のように読み替えることで説明される。メモリアクセス要求ＭＲＱは、リフレッシュ要求ＲＲＱに読み替え、アクセス要求発行通知ＡＲＱＳは、リフレッシュ要求発行通知ＲＲＱＳに読み替え、アクセス要求完了通知ＡＲＱＥは、リフレッシュ要求完了通知ＲＲＱＥに読み替える。
【００７９】
メモリアクセス要求ＭＲＱを受信する前、ステート制御部ＳＴＣＮＴは、ステートＳＴを”アイドル”に設定する。”アイドル”は、記憶制御装置ＭＡＣのパワーオン後またはリセット後の初期状態であり、メモリアクセス要求ＭＲＱの受信待ちの状態を示す。
【００８０】
”アイドル”中にメモリアクセス要求ＭＲＱを受信した場合、アクセス要求ＭＲＱを保持したエントリＥＮＴのステート制御部ＳＴＣＮＴは、ステートＳＴを”未発行”に設定する。”未発行”は、アクセス要求発行通知ＡＲＱＳの受信待ちの状態を示す。
【００８１】
”未発行”中にアクセス要求発行通知ＡＲＱＳを受信した場合、アクセス要求発行通知ＡＲＱＳに対応するメモリアクセス要求ＭＲＱを保持するエントリＥＮＴのステート制御部ＳＴＣＮＴは、ステートＳＴを”発行済み”に設定する。”発行済み”は、アクセス要求完了通知ＡＲＱＥの受信待ちの状態を示す。
【００８２】
”発行済み”中にアクセス要求完了通知ＡＲＱＥを受信した場合、アクセス要求完了通知ＡＲＱＥに対応するメモリアクセス要求ＭＲＱを保持するエントリＥＮＴのステート制御部ＳＴＣＮＴは、ステートＳＴを”アイドル”に戻す。一方、”発行済み”中にコマンドパリティエラー情報ＣＡＰＥを受信した場合、ステート制御部ＳＴＣＮＴは、ステートＳＴを”リトライ”に設定する。”リトライ”は、リトライの対象のアクセス要求ＭＲＱに対応するアクセス要求発行通知ＡＲＱＳの受信待ちの状態を示す。
【００８３】
”リトライ”中にアクセス要求発行通知ＡＲＱＳを受信した場合、アクセス要求発行通知ＡＲＱＳに対応するメモリアクセス要求ＭＲＱを保持するエントリＥＮＴのステート制御部ＳＴＣＮＴは、ステートＳＴを”発行済み”に設定する。
【００８４】
図９は、図２に示す要求選択部１６の動作の一例を示す。例えば、図９に示す処理は、要求選択部１６のハードウェアにより実現される。なお、図９は、説明を分かりやすくするために要求選択部１６の動作を分解して示したものであり、実際の動作では、各ステップの幾つかは、並列に実行されてもよい。例えば、ステップＳ２０２、Ｓ２０８、Ｓ２１０は、並列に実行されてもよい。
【００８５】
まず、ステップＳ２０２において、要求選択部１６は、エラー検出部２４からのモード情報ＭＤが通常モードを示す場合、処理をステップＳ２０４に移行し、モード情報ＭＤが通常モードを示さない場合、処理をステップＳ２０８に移行する。
【００８６】
ステップＳ２０４において、要求選択部１６は、”未発行”のステートＳＴを含むアクセス要求情報ＡＲＱＩまたはリフレッシュ要求情報ＲＲＱＩがあるか否かを判定する。”未発行”のステートＳＴを含むアクセス要求情報ＡＲＱＩまたはリフレッシュ要求情報ＲＲＱＩがある場合、処理はステップＳ２０６に移行される。”未発行”のステートＳＴを含むアクセス要求情報ＡＲＱＩおよびリフレッシュ要求情報ＲＲＱＩがない場合、処理はステップＳ２０２に戻る。
【００８７】
ステップＳ２０６において、要求選択部１６は、”未発行”のステートＳＴを含むアクセス要求情報ＡＲＱＩまたはリフレッシュ要求情報ＲＲＱＩのいずれか１つを選択し、発行要求情報ＲＱＩＮＦとして出力する。すなわち、アクセス要求ＭＲＱまたはリフレッシュ要求ＲＲＱがＤＩＭＭに出力され、アクセス動作またはリフレッシュ動作が実行される。ステップＳ２０６の後、処理は、ステップＳ２０２に戻る。
【００８８】
一方、ステップＳ２０８において、要求選択部１６は、モード情報ＭＤが再開待ちモードを示す場合、処理をステップＳ２０２に戻し、モード情報ＭＤが再開待ちモードを示さない場合、処理をステップＳ２１０に移行する。図１３で説明するように、再開待ちモードは、ＳＤＲＡＭがコマンドの受付を禁止するコマンドパリティエラー情報ＣＡＰＥのアサート期間であり、発行要求情報ＲＱＩＮＦの出力の再開待ちの状態である。このため、要求選択部１６は、アクセス要求ＭＲＱまたはリフレッシュ要求ＲＲＱを選択せず、コマンドＣＭＤはＳＤＲＡＭに供給されない。
【００８９】
ステップＳ２１０において、要求選択部１６は、モード情報ＭＤがリトライ前準備モードを示す場合、処理をステップＳ２１２に移行し、モード情報ＭＤがリトライ前準備モードを示さない場合、処理をステップＳ２１６に移行する。なお、モード情報ＭＤがリトライ前準備モードを示さない場合、要求選択部１６は、モード情報ＭＤがリトライモードであると判定する。
【００９０】
ステップＳ２１２において、要求選択部１６は、エラー検出部２４からリトライ制御要求ＲＴＲＱ（プリチャージ要求）を受信した場合、処理をステップＳ２１４に移行し、リトライ制御要求ＲＴＲＱを受信していない場合、処理をステップＳ２０２に戻す。ステップＳ２１４において、要求選択部１６は、リトライ制御要求ＲＴＲＱを選択して発行要求情報ＲＱＩＮＦとして出力する。なお、アクセス信号生成部１８は、リトライ制御要求ＲＴＲＱに対応する発行要求情報ＲＱＩＮＦに基づいて、例えば、オールバンクプリチャージコマンドをＤＩＭＭに出力する。ＤＩＭＭ内の全てのＳＤＲＡＭは、オールバンクプリチャージコマンドを受けて全てのバンクでプリチャージ動作を実行し、アクティブコマンドおよびリフレッシュコマンドを受信可能なスタンバイ状態になる。
【００９１】
一方、ステップＳ２１６において、要求選択部１６は、”リトライ”のステートＳＴを含むアクセス要求情報ＡＲＱＩまたはリフレッシュ要求情報ＲＲＱＩがあるか否かを判定する。”リトライ”のステートＳＴを含むアクセス要求情報ＡＲＱＩまたはリフレッシュ要求情報ＲＲＱＩがある場合、処理はステップＳ２１８に移行される。”リトライ”のステートＳＴを含むアクセス要求情報ＡＲＱＩおよびリフレッシュ要求情報ＲＲＱＩがない場合、処理はステップＳ２０２に戻る。
【００９２】
ステップＳ２１８において、要求選択部１６は、”リトライ”のステートＳＴを含むアクセス要求情報ＡＲＱＩまたはリフレッシュ要求情報ＲＲＱＩのいずれか１つを選択し、発行要求情報ＲＱＩＮＦとして出力する。すなわち、コマンドパリティエラーの発生により、ＳＤＲＡＭに実行されなかったコマンドをＳＤＲＡＭに再度発行するリトライ処理が実行される。ステップＳ２１８の後、処理はステップＳ２０２に戻る。
【００９３】
図１０は、図２に示すパイプライン制御部２０の一例を示す。パイプライン制御部２０は、発行要求情報ＲＱＩＮＦをクロックサイクル毎に順次に保持するシフトレジスタＳＦＴＲを有する。また、パイプライン制御部２０は、要求完了通知生成部ＲＱＥＧ、ライトデータ要求生成部ＷＤＲＱＧ、ライトデータ制御信号生成部ＷＤＣＮＴＧ、リードデータ制御信号生成部ＲＤＣＮＴＧおよびリードデータ生成部ＲＤＧを有する。
【００９４】
シフトレジスタＳＦＴＲは、発行要求情報ＲＱＩＮＦを発行順に保持する複数のステージＳＴＧ（ＳＴＧ１−ＳＴＧ２８）を有する。各ステージＳＴＧは、コマンドパリティエラー情報ＣＡＰＥと、発行要求情報ＲＱＩＮＦに含まれるライトデータ識別番号ＷＤＩＤ、要求識別番号ＲＱＩＤ、アドレスＡＤ、コマンドＣＭＤおよびバリッドＶＬＤとを保持する。各ステージＳＴＧに保持されたコマンドパリティエラー情報ＣＡＰＥおよび発行要求情報ＲＱＩＮＦは、クロックに同期して次段のステージＳＴＧに転送される。
【００９５】
例えば、図２に示す要求選択部１６がメモリアクセス要求ＭＲＱまたはリフレッシュ要求ＲＲＱを選択した後、メモリアクセス要求ＭＲＱまたはリフレッシュ要求ＲＲＱに対応するコマンドＣＭＤがＳＤＲＡＭに受け付けられるまで最大７クロックサイクル掛かる。すなわち、要求選択部１６が発行要求情報ＲＱＩＮＦを出力した後、ＳＤＲＡＭが発行要求情報ＲＱＩＮＦに対応するコマンドＣＭＤにエラーがないことを判定するまでに最大７クロックサイクル掛かる。換言すれば、要求選択部１６が発行要求情報ＲＱＩＮＦを出力した後、ＳＤＲＡＭが発行要求情報ＲＱＩＮＦに対応するコマンドＣＭＤのエラーを示すコマンドパリティエラー情報ＣＡＰＥを記憶制御装置ＭＡＣが受信するまで最大７クロックサイクル掛かる。
【００９６】
このため、要求完了通知生成部ＲＱＥＧは、コマンドＣＭＤにエラーがないことの判明後にステージＳＴＧ８に保持された情報に基づいて、アクセス要求完了通知ＡＲＱＥ、リフレッシュ要求完了通知ＲＲＱＥまたはリトライ制御要求完了通知ＲＴＲＱＥを出力する。リトライ制御要求完了通知ＲＴＲＱＥは、メモリアクセス要求ＭＲＱまたはリフレッシュ要求ＲＲＱをリトライする前に供給されるプリチャージコマンドがＳＤＲＡＭに受け付けられたことを示す。
【００９７】
このように、記憶制御装置ＭＡＣは、パイプライン制御部２０を利用することで、ＳＤＲＡＭからコマンドＣＭＤの受付状況の通知を受けることなく、コマンドがＳＤＲＡＭに受け付けられたことを判断する。なお、発行要求情報ＲＱＩＮＦの出力からコマンドＣＭＤがＳＤＲＡＭに受け付けられるまでの８クロックサイクルは、メモリ制御回路ＭＡＣの動作仕様と、ＤＩＭＭおよびＳＤＲＡＭの動作仕様とに基づいて決められる。
【００９８】
要求完了通知生成部ＲＱＥＧは、ステージＳＴＧ８の”ＣＡＰＥ”の領域に論理１が保持されている場合、アクセス要求完了通知ＡＲＱＥ、リフレッシュ要求完了通知ＲＲＱＥおよびリトライ制御要求完了通知ＲＴＲＱＥの出力を抑止する。これにより、ＳＤＲＡＭが受け付けていないメモリアクセス要求ＭＲＱがアクセス要求保持部１０から削除されることを抑止することができる。また、ＳＤＲＡＭが受け付けていないリフレッシュ要求ＲＲＱがリフレッシュ要求保持部１４から削除されることを抑止することができる。さらに、ＳＤＲＡＭが受け付けていないリトライ制御要求ＲＴＲＱ（プリチャージ要求）がエラー検出部２４から削除されることを抑止することができる。
【００９９】
要求完了通知生成部ＲＱＥＧおよび図４に示すステート制御部ＳＴＣＮＴは、エントリＥＮＴの保持部ＨＬＤに保持されたメモリアクセス要求ＭＲＱを削除し、あるいはメモリアクセス要求ＭＲＱの削除を抑止する要求制御部の一例である。また、要求完了通知生成部ＲＱＥＧおよび図６に示すステート制御部ＳＴＣＮＴは、エントリＥＮＴＲの保持部ＨＬＤに保持されたリフレッシュ要求ＲＲＱを削除し、あるいはリフレッシュ要求ＲＲＱの削除を抑止する要求制御部の一例である。
【０１００】
ライトデータ要求生成部ＷＤＲＱＧは、ステージＳＴＧ１２に保持された情報に基づいて、ライトデータ要求ＷＤＲＱを出力する。また、ライトデータ要求生成部ＷＤＲＱＧは、ステージＳＴＧ１２の”ＣＡＰＥ”の領域に論理１が保持されている場合、ライトデータ要求ＷＤＲＱの出力を抑止する。これにより、ＳＤＲＡＭがライトコマンドを受け付けていないにも拘わらず、ライトデータ要求ＷＤＲＱが出力され、ＣＰＵがライトデータを出力すること（すなわち、誤動作）を抑止することができる。
【０１０１】
ライトデータ制御信号生成部ＷＤＣＮＴＧは、ステージＳＴＧ１６に保持された情報に基づいて、ライトデータ制御信号ＷＤＣＮＴを出力する。また、ライトデータ制御信号生成部ＷＤＣＮＴＧは、ステージＳＴＧ１６の”ＣＡＰＥ”の領域に論理１が保持されている場合、ライトデータ制御信号ＷＤＣＮＴの出力を抑止する。これにより、ＳＤＲＡＭがライトコマンドを受け付けていないにも拘わらず、無効なライトデータがライトデータ制御部２６からＳＤＲＡＭに出力されること（すなわち、誤動作）を抑止することができる。
【０１０２】
リードデータ制御信号生成部ＲＤＣＮＴＧは、ステージＳＴＧ２４に保持された情報に基づいて、リードデータ制御信号ＲＤＣＮＴを出力する。また、リードデータ制御信号生成部ＲＤＣＮＴＧは、ステージＳＴＧ２４の”ＣＡＰＥ”の領域に論理１が保持されている場合、リードデータ制御信号ＲＤＣＮＴの出力を抑止する。これにより、ＳＤＲＡＭがリードコマンドを受け付けていないにも拘わらず、リードデータ制御信号ＲＤＣＮＴが出力され、無効なリードデータがリードデータ制御部２８からＣＰＵに出力されること（すなわち、誤動作）を抑止することができる。
【０１０３】
リードデータ生成部ＲＤＧは、ステージＳＴＧ２８に保持された情報に基づいて、バリッド信号ＶＬＤ（Ｒ）および要求識別番号ＲＱＩＤ（Ｒ）を出力する。また、リードデータ生成部ＲＤＧは、ステージＳＴＧ２８の”ＣＡＰＥ”の領域に論理１が保持されている場合、バリッド信号ＶＬＤ（Ｒ）および要求識別番号ＲＱＩＤ（Ｒ）の出力を抑止する。
【０１０４】
上述したように、要求選択部１６が発行要求情報ＲＱＩＮＦを出力した後、ＳＤＲＡＭが発行要求情報ＲＱＩＮＦに対応するコマンドＣＭＤのエラーを示すコマンドパリティエラー情報ＣＡＰＥを受信するまでの最大時間は、７クロックサイクルである。このため、発行要求情報ＲＱＩＮＦの発行から７クロックサイクルが経過する前にコマンドパリティエラー情報ＣＡＰＥを受信した場合、その発行要求情報ＲＱＩＮＦはリトライの対象となる。すなわち、コマンドパリティエラー情報ＣＡＰＥを受信した時点でステートＳＴが”発行済み”のメモリアクセス要求ＭＲＱおよびリフレッシュ要求ＲＲＱは、リトライの対象になる。
【０１０５】
リトライの対象の発行要求情報ＲＱＩＮＦに対応するアクセス要求完了通知ＡＲＱＥおよびリフレッシュ要求完了通知ＲＲＱＥの出力を抑制するために、ステージＳＴＧ１−ＳＴＧ８におけるコマンドパリティエラー情報ＣＡＰＥの入力経路に論理回路が挿入される。
【０１０６】
例えば、ステージＳＴＧ１は、ＤＩＭＭからのコマンドパリティエラー情報ＣＡＰＥとバリッドＶＬＤとの論理積（ＡＮＤ）をとった論理を受ける。ステージＳＴＧ２−ＳＴＧ８は、ＤＩＭＭからのコマンドパリティエラー情報ＣＡＰＥとバリッドＶＬＤとの論理積（ＡＮＤ）と、前段からのコマンドパリティエラー情報ＣＡＰＥとの論理和（ＯＲ）をとった論理を受ける。ステージＳＴＧ９−ＳＴＧ２８は、前段からのコマンドパリティエラー情報ＣＡＰＥを受ける。
【０１０７】
これにより、リトライの対象と判定されたメモリアクセス要求ＭＲＱ（ライトコマンド）に対応するライトデータ要求ＷＤＲＱおよびライトデータ制御信号ＷＤＣＮＴが出力されることを抑止することができる。また、リトライの対象と判定されたメモリアクセス要求ＭＲＱ（リードコマンド）に対応するリードデータ制御信号ＲＤＣＮＴ、バリッド信号ＶＬＤ（Ｒ）および要求識別番号ＲＱＩＤ（Ｒ）が出力されることを抑止することができる。パイプライン制御部２０の動作の一例は、図２１に示す。
【０１０８】
図１１は、図２に示す要求発行リリース通知生成部２２の一例を示す。要求発行リリース通知生成部２２は、要求リリース通知生成部２２１および要求発行通知生成部２２２を有する。要求リリース通知生成部２２１は、アクセス要求完了通知ＡＲＱＥの受信に基づいて、メモリアクセス要求リリース情報ＭＲＱＲをＣＰＵに出力する。すなわち、ＣＰＵからのメモリアクセス要求ＭＲＱに対応するコマンドＣＭＤがＳＤＲＡＭに受け付けられたこと示すメモリアクセス要求リリース情報ＭＲＱＲが出力される。
【０１０９】
要求発行通知生成部２２２は、発行要求情報ＲＱＩＮＦの受信に基づいて、アクセス要求発行通知ＡＲＱＳまたはリフレッシュ要求発行通知ＲＲＱＳを出力する。すなわち、メモリアクセス要求ＭＲＱがＤＩＭＭに供給されたことが、アクセス要求保持部１０に通知され、またはリフレッシュ要求ＲＲＱがＤＩＭＭに供給されたことが、リフレッシュ要求保持部１４に通知される。
【０１１０】
図１２は、図２に示すエラー検出部２４の一例を示す。エラー検出部２４は、リトライ制御部ＲＴＣＮＴを有する。リトライ制御部ＲＴＣＮＴは、メモリアクセス要求ＭＲＱまたはリフレッシュ要求ＲＲＱをリトライする場合に、リトライ処理の状態を示すモード情報ＭＤを保持するレジスタＭＤＲと、リトライ処理の回数を計数するカウンタＲＣＯＵＮＴとを有する。なお、カウンタＲＣＯＵＮＴは、エラー検出部２４の外部に配置されてもよい。レジスタＭＤＲによるモードの遷移の一例は、図１３に示す。
【０１１１】
リトライ制御部ＲＴＣＮＴは、メモリアクセス要求ＭＲＱまたはリフレッシュ要求ＲＲＱをリトライする場合に、ＳＤＲＡＭにプリチャージ動作を実行させるために、リトライ制御要求ＲＴＲＱ（プリチャージ要求）を出力する。また、リトライ制御部ＲＴＣＮＴは、コマンドパリティエラー情報ＣＡＰＥの受信毎にカウンタＲＣＯＵＮＴの計数値をカウントアップする。そして、リトライ制御部ＲＴＣＮＴは、コマンドパリティエラー情報ＣＡＰＥの受信回数（すなわち、リトライ回数）が所定値ＶＴになった場合、システムエラー情報ＳＹＳＥをＣＰＵに出力する。リトライ制御部ＲＴＣＮＴは、カウンタＲＣＯＵＮＴの計数値が所定値ＶＴに達した場合に、ＣＰＵにシステムエラーを示すシステムエラー情報ＳＹＳＥを出力するシステムエラー検出部の一例である。
【０１１２】
図１３は、図１２に示すリトライ制御部ＲＴＣＮＴによるモード情報ＭＤの遷移の一例を示す。コマンドパリティエラー情報ＣＡＰＥを受信する前、リトライ制御部ＲＴＣＮＴは、モード情報ＭＤを通常モードに設定する。通常モードは、記憶制御装置ＭＡＣのパワーオン後またはリセット後の初期状態であり、リトライ処理が発生していない状態を示す。
【０１１３】
通常モード中にコマンドパリティエラー情報ＣＡＰＥを受信した場合、リトライ制御部ＲＴＣＮＴは、モード情報ＭＤを再開待ちモードに遷移させる。発行要求情報ＲＱＩＮＦの出力は、”再開待ち”の間抑制される。再開待ちモードは、アサート状態のコマンドパリティエラー情報ＣＡＰＥがネゲートされるまでの状態であり、発行要求情報ＲＱＩＮＦの出力の再開待ちの状態である。
【０１１４】
再開待ちモード中にコマンドパリティエラー情報ＣＡＰＥがネゲートされた場合、リトライ制御部ＲＴＣＮＴは、モード情報ＭＤをリトライ前準備モードに遷移させる。リトライ前準備モードは、リトライ処理を実行する前にＳＤＲＡＭの動作状態をリセット（プリチャージ）する状態である。
【０１１５】
リトライ前準備モード中にリトライ制御要求完了通知ＲＴＲＱＥを受信した場合、リトライ制御部ＲＴＣＮＴは、モード情報ＭＤをリトライモードに遷移させる。すなわち、ＳＤＲＡＭのプリチャージ動作が完了した場合、リトライ制御部ＲＴＣＮＴは、メモリアクセス要求ＭＲＱまたはリフレッシュ要求ＲＲＱのリトライを実行するために、モード情報ＭＤをリトライモードに遷移する。リトライモード中にメモリアクセス要求ＭＲＱまたはリフレッシュ要求ＲＲＱのリトライが完了した場合、リトライ制御部ＲＴＣＮＴは、モード情報ＭＤを通常モードに遷移させる。
【０１１６】
図１４は、図２に示す記憶制御装置ＭＡＣにおけるコマンドパリティエラー情報ＣＡＰＥの受信時の動作の一例を示す。図１４は、記憶制御装置ＭＡＣの全体の動作を示す。なお、図１４は、説明を分かりやすくするために記憶制御装置ＭＡＣの動作を分解して示しており、実際の動作では、各ステップの幾つかは、並列に実行されてもよい。
【０１１７】
まず、ステップＳ３０２において、記憶制御装置ＭＡＣは、コマンドパリティエラー情報ＣＡＰＥがハイレベルＨにアサートされた場合、処理をステップＳ４００に移行する。コマンドパリティエラー情報ＣＡＰＥがアサートされない場合（ロウレベル）、記憶制御装置ＭＡＣは、ステップＳ３０２を繰り返す。ステップＳ４００において、記憶制御装置ＭＡＣは、図４および図６に示すステート制御部ＳＴＣＮＴのステートＳＴの設定動作を実行する。ステップＳ４００の一例は、図１５に示す。
【０１１８】
次に、ステップＳ３０６において、記憶制御装置ＭＡＣは、図１２に示すエラー検出部２４のカウンタＲＣＯＵＮＴの計数値をカウントアップする。次に、ステップＳ３０８において、記憶制御装置ＭＡＣは、エラー検出部２４のモードレジスタＭＤＲに再開待ちモードを示すモード情報ＭＤを格納する。
【０１１９】
次に、ステップＳ３１０において、記憶制御装置ＭＡＣは、コマンドパリティエラー情報ＣＡＰＥがロウレベルＬにネゲートされるのを待ち、コマンドパリティエラー情報ＣＡＰＥがネゲートされた場合、処理をステップＳ３１２に移行する。コマンドパリティエラー情報ＣＡＰＥのアサート期間は、ＳＤＲＡＭがコマンドを受け付けない期間である。
【０１２０】
ステップＳ３１２において、記憶制御装置ＭＡＣは、エラー検出部２４のモードレジスタＭＤＲにリトライ前準備モードを示すモード情報ＭＤを格納する。次に、ステップＳ３１４において、記憶制御装置ＭＡＣは、エラー検出部２４からリトライ制御要求ＲＴＲＱを発行し、ＳＤＲＡＭにプリチャージ動作を実行させる。
【０１２１】
次に、ステップＳ３１６において、記憶制御装置ＭＡＣは、コマンドパリティエラー情報ＣＡＰＥがハイレベルＨにアサートされた場合（ＣＡＰＥが連続して発生した場合）、処理をステップＳ３３２に移行する。コマンドパリティエラー情報ＣＡＰＥがアサートされない場合、記憶制御装置ＭＡＣは、処理をステップＳ３１８に移行する。
【０１２２】
ステップＳ３１８において、記憶制御装置ＭＡＣは、リトライ制御要求完了通知ＲＴＲＱＥが発生した場合、プリチャージコマンドがＳＤＲＡＭに受け付けられたため、処理をステップＳ３２０に移行する。リトライ制御要求完了通知ＲＴＲＱＥが発生しない場合、記憶制御装置ＭＡＣは、処理をステップＳ３１６に戻す。
【０１２３】
ステップＳ３２０において、記憶制御装置ＭＡＣは、エラー検出部２４のモードレジスタＭＤＲにリトライモードを示すモード情報ＭＤを格納する。
【０１２４】
次に、ステップＳ５００において、記憶制御装置ＭＡＣは、メモリアクセス要求ＭＲＱまたはリフレッシュ要求ＲＲＱのリトライ処理を実行する。ステップＳ５００の一例は、図１６に示す。
【０１２５】
次に、ステップＳ３２４において、記憶制御装置ＭＡＣは、コマンドパリティエラー情報ＣＡＰＥがハイレベルＨにアサートされた場合（リトライ用のコマンドＭＣＤに対するＣＡＰＥの発生）、処理をステップＳ３３２に移行する。コマンドパリティエラー情報ＣＡＰＥがアサートされない場合、記憶制御装置ＭＡＣは、処理をステップＳ３２６に移行する。
【０１２６】
ステップＳ３２６において、記憶制御装置ＭＡＣは、全てのリトライ処理が完了した場合、処理をステップＳ３２８に移行し、実行していないリトライ処理がある場合、処理をステップＳ５００に移行する。ステップＳ３２８において、記憶制御装置ＭＡＣは、カウンタＲＣＯＵＮＴの計数値を”０”等の初期値にリセットする。次に、ステップＳ３３０において、記憶制御装置ＭＡＣは、エラー検出部２４のモードレジスタＭＤＲに通常モードを示すモード情報ＭＤを格納し、処理をステップＳ３０２に戻す。
【０１２７】
一方、ステップＳ３２２において、記憶制御装置ＭＡＣは、カウンタＲＣＯＵＮＴの計数値が閾値ＶＴになったか否かを判定する。計数値が閾値ＶＴになった場合、記憶制御装置ＭＡＣは、処理をステップＳ３３４に移行する。計数値が閾値ＶＴに到達していない場合、記憶制御装置ＭＡＣは、処理をステップＳ４００に戻す。
【０１２８】
ステップＳ３３４において、記憶制御装置ＭＡＣは、ＳＤＲＡＭまたはＤＩＭＭの動作が正常でないことを示すシステムエラー情報ＳＹＳＥをＣＰＵに出力し、動作を終了する。
【０１２９】
図１５は、図１４に示すステップＳ４００の動作の一例を示す。まず、ステップＳ４０２において、記憶制御装置ＭＡＣは、変数ｋを”１”に初期化する。次に、ステップＳ４０４において、記憶制御装置ＭＡＣは、アクセス要求保持部１０においてｋ番目のエントリＥＮＴｋのステートＳＴが”発行済み”であるか否かを判定する。ｋ番目のエントリＥＮＴｋのステートＳＴが”発行済み”の場合、メモリアクセス要求ＭＲＱをリトライさせるため、処理をステップＳ４０６に移行する。ｋ番目のエントリＥＮＴｋのステートＳＴが”発行済み”でない場合、リトライの対象のメモリアクセス要求ＭＲＱでないため、処理をステップＳ４０８に移行する。
【０１３０】
ステップＳ４０６において、記憶制御装置ＭＡＣは、メモリアクセス要求ＭＲＱをリトライさせるため、ｋ番目のエントリＥＮＴｋのステートＳＴを”リトライ”に設定し、処理をステップＳ４０８に移行する。ステップＳ４０８において、記憶制御装置ＭＡＣは、変数ｋを”１”増加させ、処理をステップＳ４１０に移行する。
【０１３１】
ステップＳ４１０において、記憶制御装置ＭＡＣは、変数ｋがエントリＥＮＴの数ｎを超えた場合、処理をステップＳ４１２に移行し、変数ｋがエントリＥＮＴの数ｎ以下の場合、処理をステップＳ４０４に移行する。
【０１３２】
ステップＳ４１２において、記憶制御装置ＭＡＣは、リフレッシュ要求保持部１４のエントリＥＮＴＲのステートＳＴが”発行済み”であるか否かを判定する。エントリＥＮＴＲのステートＳＴが”発行済み”の場合、リフレッシュ要求ＲＲＱをリトライさせるため、処理をステップＳ４１４に移行する。エントリＥＮＴＲのステートＳＴが”発行済み”でない場合、リトライの対象のリフレッシュ要求ＲＲＱがないため、動作を終了する。
【０１３３】
ステップＳ４１４において、記憶制御装置ＭＡＣは、リフレッシュ要求ＲＲＱをリトライさせるため、エントリＥＮＴＲのステートＳＴを”リトライ”に設定し、動作を終了する。
【０１３４】
図１６は、図１４に示すステップＳ５００の動作の一例を示す。まず、ステップＳ５０２において、記憶制御装置ＭＡＣは、アクセス要求発行通知ＡＲＱＳが発生した場合、処理をステップＳ５０４に移行し、アクセス要求発行通知ＡＲＱＳが発生していない場合、処理をステップＳ５０６に移行する。
【０１３５】
ステップＳ５０４において、記憶制御装置ＭＡＣは、発生したアクセス要求発行通知ＡＲＱＳに含まれる要求識別番号ＲＱＩＤと同じ要求識別番号ＲＱＩＤを保持する該当エントリＥＮＴのステートＳＴを”発行済み”に設定する。記憶制御装置ＭＡＣは、ステップＳ５０４の後、処理をステップＳ５１０に移行する。
【０１３６】
ステップＳ５０６において、記憶制御装置ＭＡＣは、リフレッシュ要求発行通知ＲＲＱＳが発生した場合、処理をステップＳ５０８に移行し、リフレッシュ要求発行通知ＲＲＱＳが発生していない場合、処理をステップＳ５１０に移行する。ステップＳ５０８において、記憶制御装置ＭＡＣは、リフレッシュ要求保持部１４のエントリＥＮＴＲのステートＳＴを”発行済み”に設定し、処理をステップＳ５１０に移行する。
【０１３７】
ステップＳ５１０において、記憶制御装置ＭＡＣは、アクセス要求完了通知ＡＲＱＥが発生した場合、処理をステップＳ５１２に移行し、アクセス要求完了通知ＡＲＱＥが発生していない場合、処理をステップＳ５１６に移行する。
【０１３８】
ステップＳ５１２において、記憶制御装置ＭＡＣは、発生したアクセス要求完了通知ＡＲＱＥに含まれる要求識別番号ＲＱＩＤと同じ要求識別番号ＲＱＩＤを保持する該当エントリＥＮＴのステートＳＴを”アイドル”に設定する。次に、ステップＳ５１４において、記憶制御装置ＭＡＣは、ステートＳＴを”アイドル”に設定したエントリＥＮＴのバリッドＶＬＤを論理０に設定し、メモリアクセス要求ＭＲＱを削除し、動作を終了する。
【０１３９】
ステップＳ５１６において、記憶制御装置ＭＡＣは、リフレッシュ要求完了通知ＲＲＱＥが発生した場合、処理をステップＳ５１８に移行し、リフレッシュ要求完了通知ＲＲＱＥが発生していない場合、動作を終了する。ステップＳ５１８において、記憶制御装置ＭＡＣは、リフレッシュ要求保持部１４のエントリＥＮＴＲのステートＳＴを”アイドル”に設定し、処理をステップＳ５２０に移行する。
【０１４０】
ステップＳ５２０において、記憶制御装置ＭＡＣは、リフレッシュ要求保持部１４のエントリＥＮＴＲのバリッドＶＬＤを論理０に設定し、リフレッシュ要求ＲＲＱを削除し、動作を終了する。
【０１４１】
図１７および図１８は、図２に示す記憶制御装置ＭＡＣの動作の一例を示し、図１９および図２０は、図１７および図１８の動作の続きを示す。図１７から図２０は、図１７を左上、図１８を左下、図１９を右上、図２０を右下に並べることで、１つのタイミング図になる。
【０１４２】
図１７から図２０の上側に示す数字は、クロックサイクル数を示す。図１７から図２０において、符号Ｗ０、Ｗ３はライト要求（ライトコマンド）を示し、符号Ｒ１、Ｒ２はリード要求（リードコマンド）を示す。符号Ｒはリフレッシュ要求（リフレッシュコマンド）を示し、符号Ｐはプリチャージ要求（プリチャージコマンド）を示す。リード要求Ｒ１、Ｒ２の末尾の数字は、要求識別番号ＲＱＩＤを示し、ライト要求Ｗ０、Ｗ３の末尾の数字は、要求識別番号ＲＱＩＤおよびライトデータ識別番号ＷＤＩＤを示す。メモリアクセス要求ＭＲＱ、リフレッシュ要求ＲＲＱ、発行要求情報ＲＱＩＮＦ、アクセス要求発行通知ＡＲＱＳ等において、バリッドＶＬＤは、要求Ｗ０、Ｒ１、Ｒ２、Ｗ３、Ｒ、Ｐの発生時に論理１に設定される。アドレスＡＤの記載は省略する。
【０１４３】
アクセス要求保持部１０のエントリＥＮＴｋ（”ｋ”は、正の整数）、ＥＮＴｋ＋１、ＥＮＴｋ＋２、ＥＮＴｋ＋３のステートＳＴにおいて、符号ＩＤＬは”アイドル”を示し、”未”は”未発行”を示し、”済”は”発行済み”を示す。リフレッシュ要求保持部１４のエントリＥＮＴＲのステートＳＴの符号も、エントリＥＮＴｋ、ＥＮＴｋ＋１、ＥＮＴｋ＋２、ＥＮＴｋ＋３のステートＳＴの符号と同様である。
【０１４４】
記憶制御装置ＭＡＣは、４つのメモリアクセス要求ＭＲＱ（ライト要求Ｗ０、リード要求Ｒ１、Ｒ２およびライト要求Ｗ３）をＣＰＵから順に受けて動作する（図１７（ａ））。リフレッシュ制御部１２は、リード要求Ｒ２とライト要求Ｗ３の間に、リフレッシュ要求ＲＲＱを出力する（図１７（ｂ））。
【０１４５】
エントリＥＮＴｋは、ライト要求Ｗ０の保持に伴い、ステートＳＴをアイドルＩＤＬから”未発行”に遷移する（図１７（ｃ））。同様に、エントリＥＮＴｋ＋１、ＥＮＴｋ＋２、ＥＮＴｋ＋３の各々は、リード要求Ｒ１、Ｒ２およびライト要求Ｗ３の保持に伴い、ステートＳＴをアイドルＩＤＬから”未発行”に遷移する（図１７（ｄ）、（ｅ）、（ｆ））。エントリＥＮＴＲは、リフレッシュ要求Ｒの保持に伴い、ステートＳＴをアイドルＩＤＬから”未発行”に遷移する（図１７（ｇ））。
【０１４６】
要求選択部１６は、発行要求情報ＲＱＩＮＦとしてライト要求Ｗ０およびリード要求Ｒ１、Ｒ２を順次に出力し、ライト要求Ｗ０およびリード要求Ｒ１、Ｒ２に対応するコマンドＣＭＤは、ＤＩＭＭに順次に供給される（図１７（ｈ））。パイプライン制御部２０は、ライト要求Ｗ０およびリード要求Ｒ１、Ｒ２に対応するアクセス要求発行通知ＡＲＱＳを順次に出力する（図１７（ｉ））。
【０１４７】
エントリＥＮＴｋ、ＥＮＴｋ＋１、ＥＮＴｋ＋２のステートＳＴは、アクセス要求発行通知ＡＲＱＳ（Ｗ０、Ｒ１、Ｒ２）にそれぞれ基づいて”発行済み”に設定される（図１７（ｊ）、（ｋ）、（ｌ））。
【０１４８】
要求選択部１６は、リフレッシュ要求Ｒに対応する発行要求情報ＲＱＩＮＦを出力し、リフレッシュ要求Ｒ２に対応するコマンドＣＭＤは、ＤＩＭＭに供給される（図１７（ｍ））。パイプライン制御部２０は、リフレッシュ要求Ｒに対応するリフレッシュ要求発行通知ＲＲＱＳを出力する（図１７（ｎ））。エントリＥＮＴＲのステートＳＴは、リフレッシュ要求発行通知ＲＲＱＳ（Ｒ）に基づいて”発行済み”に設定される（図１７（ｏ））。
【０１４９】
図１８において、パイプライン制御部２０のステージＳＴＧ１−ＳＴＧ２８は、ライト要求Ｗ０およびリード要求Ｒ１、Ｒ２を順に転送する。そして、パイプライン制御部２０は、ステージＳＴＧ８がライト要求Ｗ０およびリード要求Ｒ１をそれぞれ保持したことに基づいて、ライト要求Ｗ０およびリード要求Ｒ１に対応するアクセス要求完了通知ＡＲＱＥを出力する（図１８（ａ）、（ｂ））。
【０１５０】
図１７に示すエントリＥＮＴｋ、ＥＮＴｋ＋１は、対応するアクセス要求完了通知ＡＲＱＥに基づいて、ステートＳＴをアイドルＩＤＬに設定する（図１７（ｐ）、（ｑ））。
【０１５１】
パイプライン制御部２０は、ステージＳＴＧ１２がライト要求Ｗ０を保持したことに基づいて、ライト要求Ｗ０に対応するライトデータ要求ＷＤＲＱをＣＰＵに出力する（図１８（ｃ））。パイプライン制御部２０は、ステージＳＴＧ１６がライト要求Ｗ０を保持したことに基づいて、ライトデータ制御信号ＷＤＣＮＴを４クロックサイクル出力する（図１８（ｄ））。ライトデータ制御部２６は、ライトデータ要求ＷＤＲＱの出力期間にＣＰＵから出力されるライトデータＤ０、Ｄ１、Ｄ２、Ｄ３をＤＩＭＭに転送する（図１８（ｅ））。そして、ライト要求Ｗ０に対応して実行されるＳＤＲＡＭのライト動作が実行される。
【０１５２】
パイプライン制御部２０は、ステージＳＴＧ２４がリード要求Ｒ１を保持したことに基づいて、リードデータ制御信号ＲＤＣＮＴを４クロックサイクル出力する（図１８（ｆ））。リードデータ制御部２８は、リードデータ制御信号ＲＤＣＮＴの出力期間にＤＩＭＭから出力されるデータをリードデータＤ４、Ｄ５、Ｄ６、Ｄ７としてＣＰＵに出力する（図１８（ｇ））。そして、リード要求Ｒ１に対応して実行されるＤＩＭＭのリード動作が完了する。
【０１５３】
一方、図１７において、ＤＩＭＭ（ＳＤＲＡＭ）は、リード要求Ｒ２のパリティエラーを検出し、９クロックサイクルの期間、コマンドパリティエラー情報ＣＡＰＥをアサートする（図１７（ｒ））。なお、コマンドパリティエラー情報ＣＡＰＥのアサート期間は、9クロックサイクルに限定されない。モード情報ＭＤは、コマンドパリティエラー情報ＣＡＰＥに基づいて再開待ちモードに遷移し、カウンタＲＣＯＵＮＴの計数値は、インクリメントされて”１”になる（図１７（ｓ））。再開待ちモードは、コマンドパリティエラー情報ＣＡＰＥを受信中であることを示し、要求選択部１６によるメモリアクセス要求ＭＲＱおよびリフレッシュ要求ＲＲＱの選択は抑止される。ＳＤＲＡＭは、コマンドパリティエラー情報ＣＡＰＥを出力中に、新たなコマンドＣＭＤを受け付けない。このため、再開待ちモード中にメモリアクセス要求ＭＲＱおよびリフレッシュ要求ＲＲＱの選択を抑止することで、無駄なコマンドＣＭＤがＳＤＲＡＭに供給されることを抑止することができる。
【０１５４】
ステートＳＴが”発行済み”のエントリＥＮＴｋ＋２、ＥＮＴｋ＋３が保持しているリード要求Ｒ２およびリフレッシュ要求Ｒは、リトライの対象になる。このため、エントリＥＮＴｋ＋２、ＥＮＴｋ＋３のステートＳＴは、”リトライ”に設定される（図１７（ｔ）、（ｕ））。
【０１５５】
図１８において、コマンドパリティエラー情報ＣＡＰＥがアサートされている期間にステージＳＴＧ１−ＳＴＧ８のいずれかに保持されたリード要求Ｒ２は、アクセス要求完了通知ＡＲＱＥの出力がマスクされる（図１８（ｈ））。また、コマンドパリティエラー情報ＣＡＰＥがアサートされている期間にステージＳＴＧ１−ＳＴＧ８のいずれかに保持されたリード要求Ｒ２は、リードデータ制御信号ＲＤＣＮＴの出力がマスクされる（図１８（ｉ））。同様に、コマンドパリティエラー情報ＣＡＰＥがアサートされている期間にステージＳＴＧ１−ＳＴＧ８のいずれかに保持されたリフレッシュ要求Ｒは、リフレッシュ要求完了通知ＲＲＱＥの出力がマスクされる（図１８（ｊ））。
【０１５６】
なお、エントリＥＮＴｋ＋２がリード要求Ｒ２の代わりにライト要求Ｗ２を保持し、ライト要求Ｗ２に対応してコマンドパリティエラーが発生した場合、対応するライトデータ要求ＷＤＲＱおよびライトデータ制御信号ＷＤＣＮＴの出力がマスクされる。
【０１５７】
図１７において、エラー検出部２４は、コマンドパリティエラー情報ＣＡＰＥのネゲートを待って、リトライ制御要求ＲＴＲＱ（プリチャージ要求Ｐ）を出力し、モード情報ＭＤをリトライ前準備モードに設定する（図１７（ｖ））。要求選択部１６は、リトライ制御要求ＲＴＲＱ（プリチャージ要求Ｐ）に基づいて、プリチャージコマンドＰをＤＩＭＭに出力する（図１７（ｗ））。
【０１５８】
図１８において、パイプライン制御部２０は、ステージＳＴＧ８がプリチャージ要求Ｐを保持したことに基づいて、プリチャージ要求Ｐに対応するリトライ制御要求完了通知ＲＴＲＱＥを出力する（図１８（ｋ））。
【０１５９】
図１７において、エラー検出部２４は、リトライ制御要求完了通知ＲＴＲＱＥに基づいて、モード情報ＭＤをリトライモードに設定する（図１７（ｘ））。要求選択部１６は、モード情報ＭＤがリトライモードを示すため、リトライ用の発行要求情報ＲＱＩＮＦとしてリード要求Ｒ２およびリフレッシュ要求Ｒを順次に出力する（図１７（ｙ）、（ｚ））。ＳＤＲＡＭは、リード要求Ｒ２に対応するアクティブコマンド、リードコマンドおよびリフレッシュ要求Ｒに対応するリフレッシュコマンドを順次に受け、リード動作およびリフレッシュ動作を開始する。なお、図１７に示す例では、リトライ用のリード要求Ｒ２およびリフレッシュ要求ＲＲＱのコマンドパリティエラーは発生しない。
【０１６０】
パイプライン制御部２０は、リトライ用のリード要求Ｒ２に対応するアクセス要求発行通知ＡＲＱＳを出力し、リトライ用のリフレッシュ要求Ｒに対応するリフレッシュ要求発行通知ＲＲＱＳを出力する（図１７（ａ１、ｂ１））。エントリＥＮＴｋ＋２のステートＳＴは、アクセス要求発行通知ＡＲＱＳ（Ｒ２）に基づいて”発行済み”に設定される（図１７（ｃ１））。エントリＥＮＴｋ＋３のステートＳＴは、リフレッシュ要求発行通知ＲＲＱＳ（Ｒ）に基づいて”発行済み”に設定される（図１７（ｄ１））。
【０１６１】
図１８において、パイプライン制御部２０は、ステージＳＴＧ８がリード要求Ｒ２を保持したことに基づいて、リード要求Ｒ２に対応するアクセス要求完了通知ＡＲＱＥを出力する（図１８（ｌ））。図１７において、エントリＥＮＴｋ＋２のステートＳＴは、アクセス要求完了通知ＡＲＱＥに基づいてアイドルＩＤＬに設定される（図１７（ｅ１））。
【０１６２】
図２０において、パイプライン制御部２０は、ステージＳＴＧ８がリトライ用のリフレッシュ要求Ｒを保持したことに基づいて、リフレッシュ要求Ｒに対応するリフレッシュ要求完了通知ＲＲＱＥを出力する（図２０（ａ））。
【０１６３】
図１９に示すエントリＥＮＴＲは、リフレッシュ要求完了通知ＲＲＱＥに基づいて、ステートＳＴをアイドルＩＤＬに設定する（図１９（ａ））。エラー検出部２４は、アクセス要求保持部１０からのアクセス要求情報ＡＲＱＩおよびリフレッシュ要求保持部１４からのリフレッシュ要求情報ＲＲＱＩに、”リトライ”を示すステートＳＴが存在しなくなった場合、全てのリトライが完了したことを検出する。そして、エラー検出部２４は、カウンタＲＣＯＵＮＴの計数値をリセットし、モード情報ＭＤを通常モードに設定する（図１９（ｂ））。
【０１６４】
要求選択部１６は、ライト要求Ｗ３に対応する発行要求情報ＲＱＩＮＦを出力し、ライト要求Ｗ３に対応するアクティブコマンドおよびライトコマンドは、ＤＩＭＭに供給される（図１９（ｃ））。パイプライン制御部２０は、ライト要求Ｗ３に対応するアクセス要求発行通知ＡＲＱＳを出力する（図１９（ｄ））。エントリＥＮＴｋ＋３のステートＳＴは、ライト要求Ｗ３に対応するアクセス要求発行通知ＡＲＱＳに基づいて”発行済み”に設定される（図１９（ｅ））。
【０１６５】
図２０において、パイプライン制御部２０は、ステージＳＴＧ８がライト要求Ｗ３を保持したことに基づいて、ライト要求Ｗ３に対応するアクセス要求完了通知ＡＲＱＥを出力する（図２０（ｂ））。
【０１６６】
パイプライン制御部２０は、ステージＳＴＧ１２がライト要求Ｗ３を保持したことに基づいて、ライト要求Ｗ３に対応するライトデータ要求ＷＤＲＱを出力する（図２０（ｃ））。パイプライン制御部２０は、ステージＳＴＧ１６がライト要求Ｗ３を保持したことに基づいて、ライトデータ制御信号ＷＤＣＮＴを４クロックサイクル出力する（図２０（ｄ））。ライトデータ制御部２６は、ライトデータ要求ＷＤＲＱの出力期間にＣＰＵから出力されるライトデータＤ８、Ｄ９、Ｄａ、ＤｂをＤＩＭＭに転送する（図２０（ｅ））。そして、ライト要求Ｗ３に対応して実行されるＳＤＲＡＭのライト動作が開始される。
【０１６７】
図１９に示すエントリＥＮＴｋ＋３は、対応するアクセス要求完了通知ＡＲＱＥ（Ｗ３）に基づいて、ステートＳＴをアイドルＩＤＬに設定する（図１９（ｆ））。そして、ＣＰＵから供給されるライト要求Ｗ０、リード要求Ｒ１、Ｒ２、ライト要求Ｗ３と、リフレッシュ制御部１２が生成するリフレッシュ要求Ｒに応答するライト動作、リード動作およびリフレッシュ動作が、ＳＤＲＡＭで実行される。
【０１６８】
図２１は、図１０に示すパイプライン制御部２０の動作の一例を示す。図２１は、図１７から図２０に示す動作に対応するパイプライン制御部２０の動作を示す。
【０１６９】
パイプライン制御部２０のシフトレジスタＳＦＴＲのステージＳＴＧ１に保持された発行要求情報ＲＱＩＮＦに含まれる情報は、クロックサイクル毎に後段のステージＳＧに順次に転送される。また、コマンドパリティエラー情報ＣＡＰＥのアサート期間にステージＳＴＧ１−ＳＴＧ８のいずれかに保持されているリード要求Ｒ２およびリフレッシュ要求Ｒは無効にされる。すなわち、２本の一点鎖線で挟まれた太枠で示すリード要求Ｒ２およびリフレッシュ要求Ｒは、無効にされ、リトライの対象にされる。
【０１７０】
このため、パイプライン制御部２０は、ステージＳＴＧ８が太枠のリード要求Ｒ２を保持した場合にも、アクセス要求完了通知ＡＲＱＥを出力しない（図２１（ａ））。パイプライン制御部２０は、ステージＳＴＧ８が太枠のリフレッシュ要求Ｒを保持した場合にも、リフレッシュ要求完了通知ＲＲＱＥを出力しない（図２１（ｂ））。
【０１７１】
さらに、パイプライン制御部２０は、ステージＳＴＧ２４が太枠のリード要求Ｒ２を保持した場合にも、リードデータ制御信号ＲＤＣＮＴを出力しない（図２１（ｃ））。パイプライン制御部２０は、ステージＳＴＧ２８が太枠のリード要求Ｒ２を保持した場合にも、バリッド信号ＶＬＤ（Ｒ）および要求識別番号ＲＱＩＤ（Ｒ）を出力しない（図２１（ｄ））。
【０１７２】
以上、図２から図２１に示す実施形態においても、図１に示す実施形態と同様の効果を得ることができる。すなわち、ＳＤＲＡＭがコマンドＣＭＤまたはアドレスＡＤのパリティエラーを検出した場合、要求選択部１６により選択済みのアクセス要求ＭＲＱは、ステージＳＴＧ８に保持された後も、削除されることなくアクセス要求保持部１０に保持される。同様に、ＳＤＲＡＭがコマンドＣＭＤまたはアドレスＡＤのパリティエラーを検出した場合、要求選択部１６により選択済みのリフレッシュ要求ＲＲＱは、ステージＳＴＧ８に保持された後も、削除されることなくリフレッシュ要求保持部１４に保持される。
【０１７３】
これにより、記憶制御装置ＭＡＣは、ＳＤＲＡＭで実行されなかったメモリアクセス要求ＭＲＱおよびリフレッシュ要求ＲＲＱを、ＳＤＲＡＭに再度発行することができる。この結果、記憶制御装置ＭＡＣ、ＣＰＵおよびＤＩＭＭを含むシステムは、コマンドパリティエラー情報ＣＡＰＥが発生した場合にも、動作を停止させることなく継続することができる。コマンドパリティエラーの発生によりＳＤＲＡＭに受け付けられなかったメモリアクセス要求ＭＲＱまたはリフレッシュ要求ＲＲＱは、その後リトライされため、システムの信頼性が低下することを抑止することができ、システムの性能の向上することができる。
【０１７４】
さらに、図２から図２１に示す実施形態では、ＳＤＲＡＭがコマンドＣＭＤを受け付けていないにも拘わらず、ＣＰＵまたは記憶制御装置ＭＡＣがコマンドＣＭＤの受け付け後の動作を実行することを抑止することができる。この結果、ＣＰＵおよび記憶制御装置ＭＡＣの誤動作を抑止することができる。
【０１７５】
記憶制御装置ＭＡＣは、コマンドパリティエラー情報ＣＡＰＥの受信後、メモリアクセス要求ＭＲＱまたはリフレッシュ要求ＲＲＱのリトライ前に、ＳＤＲＡＭにプリチャージコマンドを発行する。これにより、ＳＤＲＡＭを誤動作させることなく、ＳＤＲＡＭにリトライ動作を実行させることができる。
【０１７６】
図２２は、記憶制御装置および記憶制御装置の制御方法の別の実施形態を示す。図２から図２１で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。
【０１７７】
図２２に示す記憶制御装置ＭＡＣａは、図２に示す記憶制御装置ＭＡＣのアクセス要求保持部１０およびリフレッシュ要求保持部１４の代わりに、アクセス要求保持部１０Ａおよびリフレッシュ要求保持部１４Ａを有する。また、記憶制御装置ＭＡＣａは、図２に示す記憶制御装置ＭＡＣのパイプライン制御部２０の代わりに、パイプライン制御部２０Ａを有する。さらに、記憶制御装置ＭＡＣａは、図２に示す記憶制御装置ＭＡＣの要求発行リリース通知生成部２２およびエラー検出部２４の代わりに、要求発行リリース通知生成部２２Ａおよびエラー検出部２４Ａを有する。記憶制御装置ＭＡＣａのその他の構成は、図２に示す記憶制御装置ＭＡＣと同様である。
【０１７８】
アクセス要求保持部１０Ａは、アクセス要求完了通知ＡＲＱＥをパイプライン制御部２０Ａから受けるのではなく、エントリＥＮＴ毎にアクセス要求完了通知ＡＲＱＥを自ら生成する。そして、アクセス要求保持部１０Ａは、生成したアクセス要求完了通知ＡＲＱＥを要求発行リリース通知生成部２２に出力する。アクセス要求保持部１０Ａの一例は、図２３に示す。
【０１７９】
リフレッシュ要求保持部１４Ａは、リフレッシュ要求完了通知ＲＲＱＥ（図２）をパイプライン制御部２０Ａから受けることなく動作することを除き、図２に示すリフレッシュ要求保持部１４と同様の機能を有する。リフレッシュ要求保持部１４Ａの一例は、図２５に示す。
【０１８０】
パイプライン制御部２０Ａは、図２に示すパイプライン制御部２０からアクセス要求完了通知ＡＲＱＥ、リフレッシュ要求完了通知ＲＲＱＥおよびリトライ制御要求完了通知ＲＴＲＱＥを出力する機能を削除している。パイプライン制御部２０Ａの一例は、図２８に示す。
【０１８１】
エラー検出部２４Ａは、リトライ制御要求完了通知ＲＴＲＱＥ（図２）をパイプライン制御部２０Ａから受けることなく動作することを除き、図２に示すエラー検出部２４Ａと同様の機能を有する。エラー検出部２４Ａの一例は、図２９に示す。
【０１８２】
図２３は、図２２に示すアクセス要求保持部１０Ａの一例を示す。図４に示すアクセス要求保持部１０と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。
【０１８３】
アクセス要求保持部１０Ａは、各エントリＥＮＴ１−ＥＮＴｎのステート制御部ＳＴＣＮＴが、タイマＴＭを有し、アクセス要求完了通知ＡＲＱＥを出力する機能を有する。アクセス要求保持部１０Ａのその他の構成は、アクセス要求完了通知ＡＲＱＥを受信しないことを除き、図４に示すアクセス要求保持部１０と同様である。
【０１８４】
各エントリＥＮＴのステート制御部ＳＴＣＮＴは、エントリＥＮＴに保持されたメモリアクセス要求ＭＲＱに対応するアクセス要求発行通知ＡＲＱＳの受信に応答してタイマＴＭを起動する。また、各エントリＥＮＴのステート制御部ＳＴＣＮＴは、アクセス要求完了通知ＡＲＱＥ（図４）を受信することなく、タイマＴＭが所定時間を計測した場合、アクセス要求完了通知ＡＲＱＥを出力し、ステートＳＴを”発行済み”から”アイドル”に遷移させる。タイマＴＭが計測する所定時間は、要求選択部１６がメモリアクセス要求ＭＲＱを選択してから、図１０に示す要求完了通知生成部ＲＱＥＧがアクセス要求完了通知ＡＲＱＥを出力するまでの時間と同等である。すなわち、各ステート制御部ＳＴＣＮＴは、図２に示すパイプライン制御部２０によるアクセス要求完了通知ＡＲＱＥの出力タイミングと同様のタイミングを生成することができる。
【０１８５】
各ステート制御部ＳＴＣＮＴは、タイマＴＭが所定時間を計測する前にコマンドパリティエラー情報ＣＡＰＥを受信した場合、アクセス要求完了通知ＡＲＱＥを出力せず、ステートＳＴを”発行済み”に維持する。コマンドパリティエラー情報ＣＡＰＥが発生した場合に、ステートＳＴが”発行済み”に維持されるため、メモリアクセス要求ＭＲＱのリトライを実行することができる。
【０１８６】
なお、各ステート制御部ＳＴＣＮＴは、タイマＴＭの代わりに、所定の周期毎にカウントアップまたはカウントダウンするカウンタを有してもよい。この場合、カウンタは、アクセス要求発行通知ＡＲＱＳの受信に応答してカウント動作を開始し、所定の時間に対応する計数値を刻んだときにアクセス要求完了通知ＡＲＱＥに対応するタイミング信号を出力する。
【０１８７】
図２４は、図２３に示すアクセス要求保持部１０Ａの各エントリＥＮＴの動作の一例を示す。図５に示す動作と同一または同様の動作は、図５と同じ符号を付し、詳細な説明は省略する。図２４に示すフローは、図５に示すフローに対して、ステップＳ１１０、Ｓ１１２の間にステップＳ１１１が挿入され、ステップＳ１１６がステップＳ１１５、Ｓ１１７に置き換えられる。
【０１８８】
アクセス要求保持部１０ＡのエントリＥＮＴは、アクセス要求発行通知ＡＲＱＳを受信した後、ステップＳ１１１において、タイマＴＭを起動し、処理をステップＳ１１２に移行する。
【０１８９】
ステップＳ１１５において、エントリＥＮＴは、タイマＴＭが所定時間の計測を完了したか否かを判定する。タイマＴＭが所定時間の計測を完了した場合、処理はステップＳ１１７に移行し、タイマＴＭが所定時間の計測を完了していない場合、処理はステップＳ１１２に戻る。ステップＳ１１７において、エントリＥＮＴは、アクセス要求完了通知ＡＲＱＥを要求発行リリース通知生成部２２Ａに出力し、処理をステップＳ１１８に移行する。なお、要求発行リリース通知生成部２２Ａは、エントリＥＮＴからのアクセス要求完了通知ＡＲＱＥに基づいて、メモリアクセス要求リリース情報ＭＲＱＲをＣＰＵに出力する。
【０１９０】
以上の動作により、アクセス要求保持部１０Ａは、パイプライン制御部２０Ａを利用することなく、メモリアクセス要求リリース情報ＭＲＱＲをＣＰＵに出力するタイミングを生成することができる。
【０１９１】
図２５は、図２２に示すリフレッシュ要求保持部１２Ａの一例を示す。図６に示すリフレッシュ要求保持部１２と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。
【０１９２】
リフレッシュ要求保持部１２Ａは、エントリＥＮＴＲのステート制御部ＳＴＣＮＴが、タイマＴＭを有し、タイマＴＭによる所定時間の計測に基づいてステートＳＴを”発行済み”から”アイドル”に遷移させる機能を有する。リフレッシュ要求保持部１２Ａのその他の構成は、リフレッシュ要求完了通知ＲＲＱＥを受信しないことを除き、図６に示すリフレッシュ要求保持部１２と同様である。
【０１９３】
エントリＥＮＴＲのステート制御部ＳＴＣＮＴの動作は、図２３に示すアクセス要求保持部１０Ａのステート制御部ＳＴＣＮＴの動作と同様である。すなわち、ステート制御部ＳＴＣＮＴは、リフレッシュ要求発行通知ＲＲＱＳの受信に応答してタイマＴＭを起動する。また、ステート制御部ＳＴＣＮＴは、コマンドパリティエラー情報ＣＡＰＥを受信することなく、タイマＴＭが所定時間を計測した場合、ステートＳＴを”発行済み”から”アイドル”に遷移させる。タイマＴＭの所定時間は、アクセス要求保持部１０ＡのタイマＴＭと同様に、図２に示すパイプライン制御部２０が、リフレッシュ要求ＲＲＱを示す発行要求情報ＲＱＩＮＦを受信してからリフレッシュ要求完了通知ＲＲＱＥを出力するまでの時間に等しい。
【０１９４】
ステート制御部ＳＴＣＮＴは、タイマＴＭが所定時間を計測する前にコマンドパリティエラー情報ＣＡＰＥを受信した場合、ステートＳＴを”発行済み”に維持する。これにより、ステート制御部ＳＴＣＮＴは、図６に示すリフレッシュ要求保持部１４と同様に、コマンドパリティエラー情報ＣＡＰＥが発生した場合に、ステートＳＴを”発行済み”に維持し、リフレッシュ要求ＲＲＱのリトライを実行することができる。
【０１９５】
なお、ステート制御部ＳＴＣＮＴは、タイマＴＭの代わりに、所定の周期毎にカウントアップまたはカウントダウンするカウンタを有してもよい。この場合、ステート制御部ＳＴＣＮＴは、リフレッシュ要求発行通知ＲＲＱＳの受信に応答してカウンタにカウント動作を開始させ、カウンタが所定の時間に対応する計数値を刻んだときにステートＳＴを”アイドル”に変更する。
【０１９６】
図２６は、図２５に示すリフレッシュ要求保持部１２Ａの動作の一例を示す。図７および図２４に示す動作と同一または同様の動作は、図７および図２４と同じ符号を付し、詳細な説明は省略する。図２６に示すフローは、図７に示すフローに対して、ステップＳ１１０、Ｓ１１２の間にステップＳ１１１が挿入され、ステップＳ１１６ｒがステップＳ１１５に置き換えられる。
【０１９７】
リフレッシュ要求保持部１４ＡのエントリＥＮＴは、リフレッシュ要求発行通知ＲＲＱＳを受信した後、ステップＳ１１１において、タイマＴＭを起動し、処理をステップＳ１１２に移行する。
【０１９８】
ステップＳ１１５において、エントリＥＮＴは、タイマＴＭが所定時間の計測を完了した場合、処理をステップＳ１１８に移行し、タイマＴＭが所定時間の計測を完了していない場合、処理をステップＳ１１２に戻す。
【０１９９】
図２７は、図２３および図２５に示すステート制御部ＳＴＣＮＴのステートＳＴの遷移の一例を示す。図８と同様の遷移については、詳細な説明は省略する。図２７においても、図８と同様に、下線を付した文字は、アクセス要求保持部１０のステート制御部ＳＴＣＮＴの動作を示し、括弧内の文字は、リフレッシュ要求保持部１４のステート制御部ＳＴＣＮＴの動作を示す。
【０２００】
図２３および図２５に示すステート制御部ＳＴＣＮＴは、ステートＳＴが”発行済み”の期間に、タイマＴＭによる所定時間の計測の完了に基づいて、ステートＳＴを”アイドル”に遷移させる。その他の遷移は、図８と同様である。
【０２０１】
図２８は、図２２に示すパイプライン制御部２０Ａの一例を示す。図１０に示すパイプライン制御部２０と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。パイプライン制御部２０Ａは、図１０に示すパイプライン制御部２０から要求完了通知生成部ＲＱＥＧを削除している。パイプライン制御部２０Ａのその他の構成および機能は、図１０に示すパイプライン制御部２０と同様である。なお、図１０に示すパイプライン制御部２０の要求完了通知生成部ＲＱＥＧが生成するアクセス要求完了通知ＡＲＱＥは、図２２に示すアクセス要求保持部１０Ａが生成する。
【０２０２】
図２９は、図２２に示す要求発行リリース通知生成部２２Ａの一例を示す。図１１に示す要求発行リリース通知生成部２２と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。
【０２０３】
要求発行リリース通知生成部２２Ａの要求リリース通知生成部２２１は、アクセス要求保持部１０Ａの各エントリＥＮＴからのアクセス要求完了通知ＡＲＱＥに基づいて、メモリアクセス要求リリース情報ＭＲＱＲをＣＰＵに出力する。要求発行リリース通知生成部２２Ａのその他の構成および機能は、図１１に示す要求発行リリース通知生成部２２と同様である。
【０２０４】
図３０は、図２２に示すエラー検出部２４Ａの一例を示す。図１２に示すエラー検出部２４と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。
【０２０５】
エラー検出部２４Ａのリトライ制御部ＲＴＣＮＴは、リトライ制御要求ＲＴＲＱ（プリチャージ要求）の出力から所定時間を計測するタイマＴＭを有する。リトライ制御部ＲＴＣＮＴは、タイマＴＭが所定時間の計測を完了したことに基づいてリトライ制御要求完了通知ＲＴＲＱＥを発生する。リトライ制御部ＲＴＣＮＴは、リトライ制御要求完了通知ＲＴＲＱＥの発生に基づいて、モード情報ＭＤをリトライ前準備モードからリトライモードに遷移させる。エラー検出部２４Ａのその他の構成および機能は、リトライ制御要求完了通知ＲＴＲＱＥを受信しないことを除き、図１２に示すエラー検出部２４と同様である。リトライ制御部ＲＴＣＮＴによるモード情報ＭＤの遷移は、図１３と同一または同様である。
【０２０６】
図２２から図３０に示す記憶制御装置ＭＡＣａの動作は、図１７から図２０と同様である。すなわち、記憶制御装置ＭＡＣａは、コマンドパリティエラー情報ＣＡＰＥを受信した場合、ステートＳＴが”発行済み”のエントリＥＮＴ（またはＥＮＴＲ）に保持されたメモリアクセス要求ＭＲＱ（またはリフレッシュ要求ＲＲＱ）をリトライの対象にする。記憶制御装置ＭＡＣａは、リトライの対象のメモリアクセス要求ＭＲＱに対応するメモリアクセス要求リリース情報ＭＲＱＲのＣＰＵへの出力を抑止する。また、記憶制御装置ＭＡＣａは、リトライの対象のメモリアクセス要求ＭＲＱ（またはリフレッシュ要求ＲＲＱ）をＤＩＭＭに再発行する前にプリチャージコマンドをＤＩＭＭに発行する。
【０２０７】
以上、図２２から図３０に示す実施形態においても、図１から図２１に示す実施形態と同様の効果を得ることができる。すなわち、記憶制御装置ＭＡＣａ、ＣＰＵおよびＤＩＭＭを含むシステムは、コマンドパリティエラー情報ＣＡＰＥが発生した場合にも、動作を停止させることなく継続することができる。すなわち、システムの信頼性が低下することを抑止することができ、システムの性能の向上することができる。
【０２０８】
さらに、図２２から図３０に示す実施形態では、パイプライン制御部２０を経由することなく、アクセス要求完了通知ＡＲＱＥ、リフレッシュ要求完了通知ＲＲＱＥ、リトライ制御要求ＲＴＲＱ、あるいは、これらに代わるタイミング信号を生成することができる。この結果、記憶制御装置ＭＡＣａ内の制御を、図２に示す記憶制御装置ＭＡＣ内の制御に比べて簡易にすることができ、タイミング設計等を容易にすることができる。
【０２０９】
なお、図２から図２０に示す実施形態は、ＳＲＡＭ、強誘電体メモリ、ＭＲＡＭ（Magnetoresistive RAM）等の他の記憶装置のアクセスを制御する記憶制御装置に適用されてもよい。ＳＲＡＭは、プリチャージコマンドを受けることなく、アクセス動作後にスタンバイ状態に戻る。このため、ＳＲＡＭのアクセスを制御する記憶制御装置ＭＡＣ、ＭＡＣａのエラー検出部２４、２４Ａは、モード情報ＭＤとしてリトライ前準備モードを持たない。また、図２から図２０に示す実施形態がＳＲＡＭ、強誘電体メモリまたはＭＲＡＭに適用される場合、記憶制御装置ＭＡＣ、ＭＡＣａは、リフレッシュ制御部１２およびリフレッシュ要求保持部１４を持たない。
【０２１０】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０２１１】
１０、１０Ａ…アクセス要求保持部；１２、１２Ａ…リフレッシュ制御部；１４…リフレッシュ要求保持部；１６…要求選択部；１８…アクセス信号生成部；２０、２０Ａ…パイプライン制御部；２２、２２Ａ…要求発行リリース通知生成部；２４、２４Ａ…エラー検出部；２６…ライトデータ制御部；２８…リードデータ制御部；３０…データ入出力部；１００…記憶制御装置；１１０ａ、１１０ｂ、１１０ｃ…要求保持部；１２０…要求選択部；１３０…出力生成部；１４０…要求制御部；２００…制御装置；３００…記憶装置；ＡＤ…アドレス；ＡＲＱＥ…アクセス要求完了通知；ＡＲＱＩ…アクセス要求情報；ＡＲＱＳ…アクセス要求発行通知；ＣＡＰＥ…コマンドパリティエラー情報；ＣＭＤ…コマンド；ＥＮＴ、ＥＮＴＲ…エントリ；ＨＬＤ…保持部；ＭＡＣ…記憶制御装置；ＭＤ…モード情報；ＭＲＱ…メモリアクセス要求；ＭＲＱＲ…メモリアクセス要求リリース情報；Ｐ…パリティ；ＲＤＣＮＴ…リードデータ制御信号；ＲＤＣＮＴＧ…リードデータ制御信号生成部；ＲＤＧ…リードデータ生成部；ＲＤＴ…リードデータ；ＲＱＥＧ…要求完了通知生成部；ＲＱＩＮＦ…発行要求情報；ＲＣＯＵＮＴ…カウンタ；ＲＲＱ…リフレッシュ要求；ＲＲＱＥ…リフレッシュ要求完了通知；ＲＲＱＩ…リフレッシュ要求情報；ＲＲＱＳ…リフレッシュ要求発行通知；ＲＴＲＱ…リトライ制御要求；ＲＴＲＱＥ…リトライ制御要求完了通知；ＳＴＣＮＴ…ステート制御部；ＷＤ…ライトデータ；ＷＤＣＮＴ…ライトデータ制御信号；ＷＤＣＮＴＧ…ライトデータ制御信号生成部；ＷＤＲＱ…ライトデータ要求；ＷＤＲＱＧ…ライトデータ要求生成部
【図１】
0006439363.tif 000002
【図２】
0006439363.tif 000003
【図３】
0006439363.tif 000004
【図４】
0006439363.tif 000005
【図５】
0006439363.tif 000006
【図６】
0006439363.tif 000007
【図７】
0006439363.tif 000008
【図８】
0006439363.tif 000009
【図９】
0006439363.tif 000010
【図１０】
0006439363.tif 000011
【図１１】
0006439363.tif 000012
【図１２】
0006439363.tif 000013
【図１３】
0006439363.tif 000014
【図１４】
0006439363.tif 000015
【図１５】
0006439363.tif 000016
【図１６】
0006439363.tif 000017
【図１７】
0006439363.tif 000018
【図１８】
0006439363.tif 000019
【図１９】
0006439363.tif 000020
【図２０】
0006439363.tif 000021
【図２１】
0006439363.tif 000022
【図２２】
0006439363.tif 000023
【図２３】
0006439363.tif 000024
【図２４】
0006439363.tif 000025
【図２５】
0006439363.tif 000026
【図２６】
0006439363.tif 000027
【図２７】
0006439363.tif 000028
【図２８】
0006439363.tif 000029
【図２９】
0006439363.tif 000030
【図３０】
0006439363.tif 000031