【手続補正書】
【提出日】平成28年1月14日(2016.1.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１つまたは複数のホストシステムに結合するように構成された記憶コントローラであって、該記憶コントローラは、該記憶コントローラに結合された１つまたは複数の記憶デバイスのデータを管理するように構成されており、
前記記憶コントローラは、
接続されたホストシステムから受信した高速経路処理用にフォーマットされたＩ／Ｏ要求を処理するように構成された高速経路回路と、
前記コントローラのプロセッサにおいて動作するファームウェア処理スタックであって、任意のフォーマットのＩ／Ｏ要求を処理するように構成されたファームウェア処理スタックと、
前記高速経路回路に結合し、かつ前記ファームウェア処理スタックに結合した領域ロックモジュールであって、前記記憶コントローラのキャッシュメモリ内のブロックアドレスの指定された範囲をロックするために前記高速経路回路からのロック要求信号を処理するように構成され、ブロックアドレスの現在ロックされている範囲の状況に基づいて、受信した高速経路フォーマットＩ／Ｏ要求を前記ファームウェア処理スタックに転送すべきか否かを決定するようにさらに構成された領域ロックモジュール
とを備え、
前記記憶コントローラは、前記高速経路フォーマットＩ／Ｏの処理を前記ファームウェア処理スタックに転送すべきとの決定に応答して、前記高速経路フォーマットＩ／Ｏ要求を、処理のために前記ファームウェア処理スタックに転送するように構成され、
前記ファームウェア処理スタックは、ブロックアドレスのある範囲内にあるブロックにアクセスを試みている高速経路フォーマットＩ／Ｏ要求を前記ファームウェア処理スタックによって処理すべきとの決定に応答して、ブロックアドレスの前記範囲に対して転送タイプの領域ロックを確立するために、前記領域ロックモジュールにロック要求を与えるように構成され、
前記領域ロックモジュールはさらに、前記ファームウェア処理スタックからの前記ロック要求の受信に応答して、ブロックアドレスのある範囲に対して前記転送タイプの領域ロックを確立するように構成され、
前記コントローラはさらに、前記転送タイプの領域ロックが、受信した高速経路フォーマットＩ／Ｏ要求の高速経路回路処理によって影響を受けることになるブロックアドレスの範囲に対して確立されていることを検出したことに応答して、前記受信した高速経路フォーマットＩ／Ｏ要求を前記ファームウェア処理スタックに転送するように構成されることからなる、記憶コントローラ。
【請求項２】
前記キャッシュメモリは、前記ファームウェア処理スタックによる書込みＩ／Ｏ要求の処理によって影響を受けたブロックアドレスに対する書込みデータを記憶するように構成され、
前記ファームウェア処理スタックは、ブロックアドレスのある範囲内にあるブロックアドレスに関するデータを前記キャッシュメモリに記憶したことに応答して、ブロックアドレスの前記範囲に対する転送タイプの領域ロック要求を前記領域ロックモジュールに与えるようにさらに構成されることからなる、請求項１に記載のコントローラ。
【請求項３】
前記ファームウェア処理スタックが、ライトバック・キャッシュメモリとして前記キャッシュメモリを管理する、請求項２に記載のコントローラ。
【請求項４】
前記ファームウェア処理スタックに結合した不良ブロックメモリをさらに備え、
前記不良ブロックメモリは、前記記憶デバイスの潜在的な不良ブロックのブロックアドレスを識別する不良ブロック情報を記憶するように構成され、
前記ファームウェア処理スタックはさらに、ブロックアドレスのある範囲内にあるブロックアドレスを識別するエントリーを前記不良ブロックメモリに記憶したことに応答して、ブロックアドレスの前記範囲に対する転送タイプの領域ロック要求を前記領域ロックモジュールに与えるように構成されることからなる、請求項１に記載のコントローラ。
【請求項５】
前記高速経路回路は、前記高速経路フォーマットＩ／Ｏ要求に関するコンテキスト情報を前記領域ロックモジュールに与え、
前記領域ロックモジュールはさらに、前記コンテキスト情報に従って前記高速経路フォーマットＩ／Ｏ要求を、処理のために前記ファームウェア処理スタックに転送するように構成されることからなる、請求項１に記載のコントローラ。
【請求項６】
前記高速経路回路はさらに、前記高速経路フォーマットＩ／Ｏの処理が前記ファームウェア処理スタックに転送されるべきであることを示す前記領域ロックモジュールからの信号に応答して前記高速経路フォーマットＩ／Ｏ要求を、処理のために前記ファームウェア処理スタックに転送するように構成されることからなる、請求項１に記載のコントローラ。
【請求項７】
１つまたは複数のホストシステムに結合するように構成され、かつ１つまたは複数の記憶デバイスに結合するように構成された記憶コントローラ内で動作可能な方法であって、前記記憶コントローラは、ホストシステムから受信した高速経路フォーマットＩ／Ｏ要求を処理するための高速経路回路と、任意のフォーマットのＩ／Ｏ要求を処理するためのファームウェア処理スタックとを有し、
前記方法が、
前記記憶コントローラのキャッシュメモリ内のブロックアドレスのある範囲をロックするために、前記高速経路回路からロック要求を受信するステップと、
高速経路フォーマットＩ／Ｏ要求を受信するステップと、
前記コントローラの領域ロックモジュールの動作によって、前記キャッシュメモリ内のブロックアドレスの現在ロックされている範囲の状況に基づいて、前記受信した高速経路フォーマットＩ／Ｏを前記ファームウェア処理スタックに転送すべきか否かを決定するステップと、
前記高速経路フォーマットＩ／Ｏ要求を、処理のために前記ファームウェア処理スタックに転送すべきであるという決定に応答して、前記高速経路フォーマットＩ／Ｏ要求を、処理のために前記ファームウェア処理スタックに転送するステップと、
前記高速経路フォーマットＩ／Ｏ要求の受信に応答して、前記高速経路回路から前記領域ロックモジュールに高速経路ロック要求信号を与えるステップであって、前記高速経路ロック要求は、前記高速経路フォーマットＩ／Ｏ要求に関する情報を含むことからなる、ステップ
を含み、
前記決定するステップが、
領域ロックモジュールの動作によって、前記高速経路ロック要求信号と共に提供された前記情報に基づいて、前記受信した高速経路フォーマットＩ／Ｏ要求が、ロックされたブロックアドレスの範囲内のブロックアドレスを対象とするか否かを決定するステップと、
前記ファームウェア処理スタックの動作によって、ブロックアドレスのある範囲を識別するステップであって、該範囲へのアクセスを試みている高速経路フォーマットＩ／Ｏ要求は前記ファームウェア処理スタックに転送されるべきである、ステップと、
ブロックアドレスの前記識別された範囲に対して転送タイプのロックの確立を要求する転送タイプのロック要求信号を、前記ファームウェア処理スタックから前記領域ロックモジュールに与えるステップと、
前記領域ロックモジュールの動作によって、前記転送タイプのロック要求信号の受信に応答して、前記転送タイプのロック要求信号内で識別されたブロックアドレスの前記範囲に対して前記転送タイプのロックを確立するステップ
を含み、
前記決定するステップがさらに、
ブロックアドレスの現在ロックされている範囲の状況に基づいて前記受信した高速経路フォーマットＩ／Ｏ要求の処理が前記ファームウェア処理スタックに転送されるように、前記受信した高速経路フォーマットＩ／Ｏ要求が前記確立された転送タイプのロックに関連するブロックアドレスの前記範囲内のブロックアドレスを対象とするか否かを決定するステップ
を含むことからなる、方法。
【請求項８】
前記ファームウェア処理スタックがライトバック・キャッシュとして前記キャッシュメモリを管理し、
前記方法が、
前記ファームウェア処理スタックの動作によって、前記ファームウェア処理スタックによる書込みＩ／Ｏ要求の処理に応答して、書込みデータを前記キャッシュメモリに記憶するステップをさらに含み、
前記識別するステップが、
キャッシュメモリに記憶された前記書込みデータに関連するブロックアドレスを含むブロックアドレスの前記範囲を識別するステップ
をさらに含むことからなる、請求項７に記載の方法。
【請求項９】
前記コントローラが前記ファームウェア処理スタックに結合した不良ブロックメモリを有し、
前記方法が、
前記ファームウェア処理スタックの動作によって、前記記憶デバイスにおける潜在的な不良ブロックのブロックアドレスを識別する情報を前記不良ブロックメモリに記憶するステップをさらに含み、
前記識別するステップが、
前記不良ブロックメモリにおいて潜在的な不良ブロックのブロックアドレスを含むブロックアドレスの前記範囲を識別するステップ
をさらに含むことからなる、請求項７に記載の方法。
【請求項１０】
プログラムされた命令を格納しているコンピュータ可読媒体であって、
前記命令は、コンピュータによって実行されると、記憶コントローラ内で動作可能な方法を実行し、
前記記憶コントローラは、１つまたは複数のホストシステムに結合するように構成され、かつ１つまたは複数の記憶デバイスに結合するように構成され、
前記記憶コントローラは、ホストシステムから受信した高速経路フォーマットＩ／Ｏ要求を処理するための高速経路回路と、任意のフォーマットのＩ／Ｏ要求を処理するためのファームウェア処理スタックとを有し、
前記方法は、
前記高速経路回路からロック要求を受信して、前記記憶コントローラのキャッシュメモリ内のブロックアドレスのある範囲をロックするステップと、
高速経路フォーマットＩ／Ｏ要求を受信するステップと、
前記コントローラの領域ロックモジュールの動作によって、前記キャッシュメモリ内のブロックアドレスの現在ロックされている範囲の状況に基づいて、前記受信した高速経路フォーマットＩ／Ｏを前記ファームウェア処理スタックに転送すべきか否かを決定するステップと、
前記高速経路フォーマットＩ／Ｏ要求の処理を前記ファームウェア処理スタックに転送すべきであるという決定に応答して、前記高速経路フォーマットＩ／Ｏ要求を、処理のために前記ファームウェア処理スタックに転送するステップと、
前記高速経路フォーマットＩ／Ｏ要求の受信に応答して、前記高速経路回路から前記領域ロックモジュールに高速経路ロック要求信号を与えるステップであって、前記高速経路ロック要求は、前記高速経路フォーマットＩ／Ｏ要求に関する情報を含むことからなる、ステップ
を含み、
前記決定するステップが、
領域ロックモジュールの動作によって、前記高速経路ロック要求信号と共に提供された前記情報に基づいて、前記受信した高速経路フォーマットＩ／Ｏ要求が、ロックされたブロックアドレスの範囲内のブロックアドレスを対象とするか否かを決定するステップと、
前記ファームウェア処理スタックの動作によって、ブロックアドレスのある範囲を識別するステップであって、該範囲へのアクセスを試みている高速経路フォーマットＩ／Ｏ要求は前記ファームウェア処理スタックに転送されるべきであることからなる、ステップと、
ブロックアドレスの前記識別された範囲に対して転送タイプのロックの確立を要求する転送タイプのロック要求信号を、前記ファームウェア処理スタックから前記領域ロックモジュールに与えるステップと、
前記領域ロックモジュールの動作によって、前記転送タイプのロック要求信号の受信に応答して、前記転送タイプのロック要求信号内で識別されたブロックアドレスの前記範囲に対して前記転送タイプのロックを確立するステップ
を含み、
前記決定するステップがさらに、
ブロックアドレスの現在ロックされている範囲の状況に基づいて前記受信した高速経路フォーマットＩ／Ｏ要求の処理が前記ファームウェア処理スタックに転送されるように、前記受信した高速経路フォーマットＩ／Ｏ要求が前記確立された転送タイプのロックに関連するブロックアドレスの前記範囲内のブロックアドレスを対象とするか否かを決定するステップ
を含むことからなる、コンピュータ可読媒体。
【請求項１１】
前記ファームウェア処理スタックがライトバック・キャッシュとして前記キャッシュメモリを管理し、
前記方法が、
前記ファームウェア処理スタックの動作によって、前記ファームウェア処理スタックによる書込みＩ／Ｏ要求の処理に応答して、書込みデータを前記キャッシュメモリに記憶するステップをさらに含み、
前記識別するステップが、
キャッシュメモリに記憶された前記書込みデータに関連するブロックアドレスを含むブロックアドレスの前記範囲を識別するステップ
をさらに含むことからなる、請求項１０に記載の媒体。
【請求項１２】
前記コントローラが前記ファームウェア処理スタックに結合した不良ブロックメモリを有し、
前記方法が、
前記ファームウェア処理スタックの動作によって、前記記憶デバイスにおける潜在的な不良ブロックのブロックアドレスを識別する情報を前記不良ブロックメモリに記憶するステップをさらに含み、
前記識別するステップが、
前記不良ブロックメモリにおける潜在的な不良ブロックのブロックアドレスを含むブロックアドレスの前記範囲を識別するステップ
をさらに含むことからなる、請求項１０に記載の媒体。
【請求項１３】
ホストシステムから複数の記憶デバイスへのＩ／Ｏ（入出力）要求を処理するように動作可能な記憶コントローラであって、
前記Ｉ／Ｏ要求を記憶するように動作可能なキャッシュメモリと、
前記Ｉ／Ｏ要求を処理するように動作可能なファームウェア処理スタックと、
前記Ｉ／Ｏ要求のフォーマットに基づいて高速経路処理に関する前記Ｉ／Ｏ要求の一部を選択するように動作可能な高速経路回路と、
前記高速経路回路及び前記ファームウェア処理スタックに結合された領域ロックモジュール
を備え、
前記領域ロックモジュールは、前記高速経路回路からのロック要求を処理して前記キャッシュメモリ内のブロックアドレスの指定された範囲をロックするように動作可能であり、かつ前記ロック要求に基づいて、前記高速経路処理に関する前記Ｉ／Ｏ要求の前記一部を前記ファームウェア処理スタックに転送するように動作可能であり、
前記ファームウェア処理スタックは、前記ファームウェア処理スタックへの前記Ｉ／Ｏ要求の前記一部の転送に応答して、前記高速経路回路の代わりに前記記憶デバイスに対する前記Ｉ／Ｏ要求の前記一部を処理し、
前記ファームウェア処理スタックは、ブロックアドレスのある範囲内にあるブロックにアクセスを試みている高速経路フォーマットＩ／Ｏ要求を前記ファームウェア処理スタックによって処理すべきとの決定に応答して、ブロックアドレスの前記範囲に対して転送タイプの領域ロックを確立するために、前記領域ロックモジュールにロック要求を与えるように構成され、
前記領域ロックモジュールはさらに、前記ファームウェア処理スタックからの前記ロック要求の受信に応答して、ブロックアドレスのある範囲に対して前記転送タイプの領域ロックを確立するように構成され、
前記記憶コントローラはさらに、前記転送タイプの領域ロックが、受信した高速経路フォーマットＩ／Ｏ要求の高速経路回路処理によって影響を受けることになるブロックアドレスの範囲に対して確立されていることを検出したことに応答して、前記受信した高速経路フォーマットＩ／Ｏ要求を前記ファームウェア処理スタックに転送するように構成されることからなる、記憶コントローラ。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
図３は、領域ロックを使用することによって、高速経路フォーマットＩ／Ｏ要求を拡張記憶コントローラの高速経路回路からファームウェア処理スタックに転送するための、本発明の特徴および態様によるある方法の例示的な追加の詳細を説明する流れ図である。図３の方法は、拡張記憶コントローラの領域ロックモジュールと共に動作可能な拡張記憶コントローラの高速経路回路による処理を反映する。ステップ３００で、高速経路フォーマットＩ／Ｏ要求がホストシステムから受信される（すなわち、ホストから直接的に受信されるか、または拡張記憶コントローラの予備選択構成要素を介して間接的に受信される）。ステップ３０２は、次いで、高速経路フォーマットＩ／Ｏ要求によってアクセスするために識別されたブロックアドレスの範囲にアクセスすることを要求するロック要求信号を領域ロックモジュールに印加する。ブロックアドレスの範囲は、高速経路フォーマットＩ／Ｏ要求内で受信された情報によって識別される。したがって、領域ロックモジュールにそのように印加された信号は、アクセスロックの要求、ならびにＩ／Ｏ要求によって影響を受けるブロックアドレスの範囲の両方を示すことができる。いくつかの例示的な実施形態では、領域ロックモジュールにそのように印加された信号は、領域ロックモジュールがその要求を拡張記憶コントローラのファームウェア処理スタックに転送するために必要な可能性があるすべての情報を領域ロックモジュールに提供するために十分なコンテキスト情報をさらに含むことが可能である。ステップ３０４で、高速経路回路は、その要求されたロックが許可されたかどうかを判断する。いくつかの例示的な実施形態では、領域ロックモジュールは、その要求されたロックが許可されたか、または拒否されたかを示す信号を高速経路回路に返すことができる。要求された信号が許可された場合、高速経路回路の動作によって高速経路フォーマットＩ／Ｏ要求の処理を完了し（ステップ３０６）、次いで、適切な解放信号を領域ロックモジュールに印加することによって、許可されたアクセスロックを解放する（ステップ３１０）ためのステップ３０６および３０８が動作可能である。いくつかの実施形態では、ロックされることが要求されたブロックの範囲がファームウェア処理スタックによって獲得された転送タイプのロックと重複することにより、要求されたロックが拒否された場合、領域ロックモジュールは、ステップ３０２で印加されたロック要求信号内で提供されたコンテキスト情報に基づいて、Ｉ／Ｏ要求をファームウェア処理スタックに転送するために必要なすべての処理を実行する。そのような実施形態では、高速経路回路は、次の高速経路フォーマットＩ／Ｏ要求の受信を待つだけで、さらなるどんな処理も実行する必要はない。その他の例示的な実施形態では、領域ロックモジュールは、その領域ロック要求の拒否を示し、その拒否が先に許可された転送タイプの領域ロック要求に起因することをさらに示す信号を高速経路回路に返す。そのような例示的な実施形態では、高速経路フォーマットＩ／Ｏ要求をファームウェア処理スタックに移転（ｔｒａｎｓｆｅｒ）または転送する（例えば、Ｉ／Ｏ要求を領域ロックモジュール自体によってではなく、高速経路回路の動作によってファームウェア処理スタックに転送する）ために、次にステップ３１２が動作可能である。