【手続補正書】
【提出日】令和2年7月6日(2020.7.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリアクセス要求を受信して記憶するコマンドキュー（５２０）と、
前記コマンドキューに接続され、メモリコマンドのシーケンスをメモリチャネル（１３０／１４０）に提供するアービタ（５３８）と、
前記メモリコマンドのシーケンスを前記メモリチャネル（１３０／１４０）に記憶し、前記メモリチャネル（１３０／１４０）からの応答を未だ受信していないメモリアクセスコマンドを記憶し続けるリプレイキュー（５３０）と、
を備えるメモリコントローラ（５００）であって、
対応するメモリコマンドがエラーなく完了したことが応答によって示された場合、前記リプレイキュー（５３０）は、さらなるアクションを行わずに、前記対応するメモリコマンドを削除し、
エラーが応答によって示され、前記メモリチャネルが第１タイプのメモリを備える場合、前記リプレイキュー（５３０）は、前記エラーが発生した前記対応するメモリコマンドをリプレイし、前記メモリが第２タイプの場合、前記リプレイキューは、前記エラーが発生した可能性がある、連続する、以前に発行されたメモリコマンドのシーケンスをリプレイする、
メモリコントローラ（５００）。
【請求項２】
前記対応するメモリコマンドのエラー訂正コード（ＥＣＣ）を計算し、計算したＥＣＣを、前記メモリチャネル（１３０／１４０）から返されたＥＣＣと比較するために前記リプレイキュー（５３０）に接続されたＥＣＣチェックブロック（５４２）をさらに備える、
請求項１のメモリコントローラ（５００）。
【請求項３】
メモリアクセス要求を受信し記憶するために前記コマンドキュー（５２０）に接続されたメモリインタフェースキュー（５１４）をさらに備え、
前記メモリインタフェースキュー（５１４）は、前記メモリチャネル（１３０／１４０）にディスパッチされたコマンドと、前記コマンドに応じて前記メモリチャネル（１３０／１４０）から受信した応答と、を提供するために前記リプレイキュー（５３０）に接続されている、
請求項１のメモリコントローラ（５００）。
【請求項４】
前記リプレイキュー（５３０）は、前記メモリインタフェースキュー（５１４）からの応答の受信に応じて、エラー訂正コードを計算し、前記エラー訂正コードを前記メモリチャネル（１３０／１４０）から受信したエラー訂正コードと比較することによって、前記応答にエラーが存在することを判別する、
請求項３のメモリコントローラ（５００）。
【請求項５】
前記リプレイキュー（５３０）は、前記メモリインタフェースキュー（５１４）からのエラーを含む応答の受信に応じて、前記対応するメモリコマンドと、前記対応するメモリコマンドの後に前記メモリインタフェースキュー（５１４）が前記メモリチャネル（１３０／１４０）に提供した追加のコマンドと、をリプレイする、
請求項３のメモリコントローラ（５００）。
【請求項６】
メモリアクセス要求を受信して記憶するコマンドキュー（５２０）と、
前記コマンドキュー（５２０）に接続され、メモリコマンドのシーケンスをメモリチャネル（１３０／１４０）に提供するアービタ（５３８）と、
前記コマンドキュー（５２０）に接続され、メモリアクセス要求を受信して記憶するメモリインタフェースキュー（５１４）と、
前記メモリインタフェースキュー（５１４）に接続され、前記メモリコマンドのシーケンスを前記メモリチャネル（１３０／１４０）に記憶し、前記メモリチャネル（１３０／１４０）からの応答を未だ受信していないメモリアクセスコマンドを記憶し続けるリプレイキュー（５３０）と、
を備えるメモリコントローラ（５００）であって、
前記メモリコントローラ（５００）は、エラーを検出しない限り通常状態に留まり、前記メモリインタフェースキュー（５１４）は、前記通常状態において、前記アービタ（５３８）によって選択されたコマンドを前記コマンドキュー（５２０）から受信し続け、
前記メモリコントローラ（５００）は、エラーと、前記メモリチャネルが第１タイプのメモリを備えることと、を検出したことに応じてリカバリ状態（６３０／６４０）に移行し、前記リプレイキュー（５３０）は、前記リカバリ状態において、前記エラーが発生した対応するメモリコマンドの何れかをリプレイし、前記メモリが第２タイプの場合、前記リプレイキューは、前記エラーが発生した可能性がある、連続する、以前に発行されたコマンドのシーケンスをリプレイする、
メモリコントローラ（５００）。
【請求項７】
前記メモリコントローラ（５００）は、前記リプレイキュー（５３０）が、メモリエラーを発生させた全てのメモリコマンドをさらなるエラーなしにリプレイするまで、前記リカバリ状態（６３０／６４０）に留まる、
請求項６のメモリコントローラ（５００）。
【請求項８】
前記メモリコントローラ（５００）は、コマンド及びアドレスエラーに応じてエラーリカバリ状態（６４０）に移行し、データエラーに応じてコマンドリプレイ状態（６３０）に移行する、
請求項６のメモリコントローラ（５００）。
【請求項９】
前記メモリコントローラ（５００）は、エラーが発生した可能性があるコマンドのリプレイに応じて、前記エラーリカバリ状態（６４０）から前記コマンドリプレイ状態（６３０）に移行し、
前記メモリコントローラ（５００）は、全てのリプレイされたコマンドに対する応答をエラーなしに受信したことに応じて、前記コマンドリプレイ状態（６３０）から前記通常状態（６１０）に移行する、
請求項８のメモリコントローラ（５００）。
【請求項１０】
前記メモリコントローラ（５００）は、エラーが発生した可能性があるコマンドのリプレイに応じて、前記エラーリカバリ状態（６４０）から前記コマンドリプレイ状態（６３０）に移行し、
前記メモリコントローラ（５００）は、さらなるエラーに応じて、前記さらなるエラーがコマンド／アドレスエラーである場合に前記エラーリカバリ状態（６４０）に移行し、それ以外の場合に前記コマンドリプレイ状態（６３０）に移行する、
請求項８のメモリコントローラ（５００）。
【請求項１１】
前記メモリコントローラ（５００）は、前記対応するメモリコマンドをリプレイして所定回数のエラーを受信したことに応じて、システムエラーを示す、
請求項７のメモリコントローラ（５００）。
【請求項１２】
メモリアクセス要求を提供するメモリアクセスエージェント（１１０／２１０／２２０）と、
メモリシステム（１２０）と、
請求項１〜１１の何れかのメモリコントローラ（２９０／５００）と、
を備えるデータ処理システム（１００）であって、
前記メモリコントローラ（２９０／５００）は、前記メモリアクセスエージェント（１１０／２１０／２２０）及び前記メモリシステム（１２０）に接続されている、
データ処理システム（１００）。
【請求項１３】
メモリアクセス要求を受信して記憶することと、
記憶されたメモリアクセス要求からのメモリコマンドのシーケンスをメモリチャネル（１３０／１４０）に提供することと、
前記メモリコマンドのシーケンスを前記メモリチャネル（１３０／１４０）に記憶し、前記メモリチャネル（１３０／１４０）からエラーなしの応答を未だ受信していないメモリコマンドを記憶し続けることと、
前記メモリチャネル（１３０／１４０）から受信した応答にエラーが発生したか否かを検出することと、
メモリエラーが検出されなかったことに応じて通常状態（６１０）に留まり、前記通常状態（６１０）の間、記憶されたメモリアクセス要求からコマンドを提供し続けることと、
エラーの検出に応じてリカバリ状態（６３０／６４０）に移行し、前記リカバリ状態（６３０／６４０）の間、記憶されたメモリコマンドを、前記エラーが発生した対応するメモリコマンドからリプレイし始めることと、を含み、
前記リプレイすることは、前記メモリチャネルが第１タイプのメモリを備える場合に、前記エラーが発生した可能性がある前記対応するメモリコマンドをリプレイし、又は、前記メモリが第２タイプの場合に、前記エラーが発生した可能性がある、連続する、以前に発行されたコマンドのシーケンスをリプレイすることを含む、
方法。
【請求項１４】
前記リカバリ状態（６３０／６４０）に移行する前に、少なくとも１つのメモリがパワーダウン状態から起動したという確認を待つことをさらに含む、
請求項１３の方法。
【請求項１５】
メモリエラーを生じた全てのメモリコマンドがさらなるエラーなしにリプレイされるまで前記リカバリ状態（６３０／６４０）に留まることをさらに含む、
請求項１３の方法。