(57)【要約】コマンドの受信およびメモリ応答の順序付けに使用され得るメモリ装置が提供される。このようなメモリ装置の１つは、複数のチャネルによって複数のメモリユニットに連結され、複数のメモリユニットから複数のメモリ応答を受信するように構成され得る応答ロジックを含む。順序付けロジックは、応答ロジックに連結され、また、応答ロジックにおける複数のメモリ応答を少なくとも部分的にシステムプロトコルに基づく順序で提供させるように構成されてもよい。例えば、順序付けロジックは、応答ロジックに記憶された複数のメモリ応答にバスプロトコル規則を実施して、応答が、正しい順序でメモリ装置から提供されるのを確保する。【選択図】図２
2015500541.tif 000002
【特許請求の範囲】
【請求項１】
メモリ装置であって、
複数のメモリ応答を受信するように構成される応答ロジックと、
前記応答ロジックに連結され、また、前記複数のメモリ応答を少なくとも部分的にプロトコルに基づいて順序付けさせるように構成される順序付けロジックと
を備える、メモリ装置。
【請求項２】
前記複数のメモリ応答の個々の一つ一つが、読み出し識別ビットを備え、また前記順序付けロジックが、前記複数の応答を少なくとも部分的に前記それぞれの識別ビットに基づいて順序付けさせるようにさらに構成される、請求項１に記載の装置。
【請求項３】
前記順序付けロジックに連結されるキューをさらに備え、前記順序付けロジックが、前記キューにある複数のコマンドを少なくとも部分的にページヒットおよびハザード競合のうちの少なくとも１つの検出に基づいて順序付けさせるようにさらに構成される、請求項１に記載の装置。
【請求項４】
前記キューに連結され、前記複数のコマンドを前記キューから受信するように構成されるバンク状態機械をさらに備え、前記バンク状態機械が、前記複数のコマンドのうちの少なくとも１つを複数のメモリユニットのうちの少なくとも１つに、少なくとも部分的に、利用可能なチャネルを有する前記複数のメモリユニットのうちの少なくとも１つに基づいて提供するようにさらに構成される、請求項３に記載の装置。
【請求項５】
前記応答ロジックに連結され、前記複数の応答を前記応答ロジックに提供するように構成される複数のバッファをさらに備える、請求項１に記載の装置。
【請求項６】
前記応答ロジックに連結され、読み出しメモリ応答を提供するように構成される読み出しバッファと、
前記応答ロジックに連結され、書き込みメモリ応答を提供するように構成される書き込みバッファと
のうちの少なくとも１つをさらに備える、請求項１に記載の装置。
【請求項７】
前記応答ロジックが、読み出しおよび書き込みメモリ応答を記憶するようにさらに構成される、請求項１に記載の装置。
【請求項８】
前記順序付けロジックが、前記応答ロジックによって受信される読み出しおよび書き込みメモリ応答を、前記応答が前記応答ロジックによって受信される順序とは独立の順序で提供されるようにさらに構成される、請求項７に記載の装置。
【請求項９】
コンピューティングシステムであって、
複数のメモリユニットと、
システムバススレーブと、
前記メモリユニットおよび前記システムバススレーブに連結されるメモリコントローラと
を備えるコンピューティングシステムであって、前記メモリコントローラが、
複数の応答を前記複数のメモリユニットから、ある順序で受信するように構成される応答ロジックと、
前記応答ロジックに連結され、前記複数の応答を、前記複数の応答が前記応答ロジックによって受信される前記順序とは独立の順序で、前記システムバススレーブに提供させるように構成される順序付けロジックとを備える、
コンピューティングシステム。
【請求項１０】
前記メモリコントローラが、前記複数のメモリユニットに複数の論理チャネルを備えるバスによって連結される、請求項９に記載のコンピューティングシステム。
【請求項１１】
前記複数のメモリユニットのそれぞれが、それぞれの論理チャネルに対応する、請求項１０に記載のコンピューティングシステム。
【請求項１２】
前記システムバススレーブが、システムバスマスタに連結され、前記システムバスマスタからコマンドを受信し、応答を前記システムバスマスタに提供するように構成される、請求項９に記載のコンピューティングシステム。
【請求項１３】
前記複数の応答が、それぞれの複数のコマンドに対応する、請求項９に記載のコンピューティングシステム。
【請求項１４】
前記複数の応答が、読み出し応答および書き込み応答を備え、前記読み出し応答が、読み出しデータを備え、前記書き込み応答が、書き込み確認データを備える、請求項９に記載のコンピューティングシステム。
【請求項１５】
前記複数の応答が、少なくとも部分的に、前記応答ロジックによって受信される前記複数の応答を再順序付けするのに応じて、前記システムバスマスタに提供される、請求項９に記載のコンピューティングシステム。
【請求項１６】
コンピューティングシステムであって、
プロセッサと、
前記プロセッサに連結されるメモリ装置と
を備え、前記メモリ装置が、複数のメモリ応答を生成するように構成され、前記メモリ装置が、前記複数のメモリ応答を、前記メモリ装置が前記メモリ応答を生成する順序とは独立の順序で前記プロセッサに提供するようにさらに構成される、コンピューティングシステム。
【請求項１７】
前記メモリ装置が、
前記複数のメモリ応答を生成するように構成される複数のメモリユニットと、
前記メモリユニットに連結されるメモリコントローラと
を備え、前記メモリコントローラが、前記複数のメモリ応答を受信して、少なくとも部分的に順序付けロジックに基づいて順序付けするように構成される、請求項１６に記載のコンピューティングシステム。
【請求項１８】
前記プロセッサがシステムバスマスタを備え、前記システムバスマスタが、メモリコマンドをバスに提供して、前記複数のメモリ応答を前記バスから受信するように構成される、請求項１６に記載のコンピューティングシステム。
【請求項１９】
システムコントローラをさらに備え、前記システムコントローラが、前記プロセッサおよび前記メモリ装置に連結され、前記システムコントローラが、前記プロセッサからコマンドを受信し、前記コマンドを前記メモリコントローラに提供するように構成される、請求項１６に記載のコンピューティングシステム。
【請求項２０】
前記メモリコントローラが、システムバススレーブおよびシステムバスマスタのうちの少なくとも１つを備える、請求項１９に記載のコンピューティングシステム。
【請求項２１】
メモリ応答を順序付けする方法であって、
メモリユニットに提供される複数のコマンドに対応する複数のメモリ応答を生成することと、
前記コマンドが前記メモリユニットに提供された順序とは独立に、前記複数の応答を順序付けすることと、
前記複数の応答を、少なくとも部分的に前記順序付けすることに基づいてシステムバスに提供することと
を備える、メモリ応答を順序付けする方法。
【請求項２２】
前記複数のコマンドのうちの少なくとも１つが、ハザード競合およびページヒットのうちの少なくとも１つを生じる、請求項２１に記載の方法。
【請求項２３】
前記複数のコマンドのうちの少なくとも１つが、バッファコマンドである、請求項２１に記載の方法。
【請求項２４】
前記複数の応答を順序付けすることが、少なくとも部分的にシステムプロトコルに基づいて前記複数の応答を順序付けすることを備えることをさらに備える、請求項２１に記載の方法。
【請求項２５】
前記複数のコマンドのうちの少なくとも１つが、読み出しコマンドである、請求項２１に記載の方法。
【請求項２６】
前記複数の応答をシステムバスに提供することが、前記複数の応答をシステムバススレーブに提供することを備える、請求項２１に記載の方法。
【請求項２７】
メモリ応答を順序付けする方法であって、
第１のコマンドおよび第２のコマンドを受信することと、
前記第１のコマンドに対応する第１の応答および前記第２のコマンドに対応する第２の応答を生成するステップと、
前記第１の応答および前記第２の応答に順序付けロジックを実施するステップと、
前記第１の応答に対応する第１の順序付けされた応答および前記第２の応答に対応する第２の順序付けされた応答を出力に提供することと
を備える、メモリ応答を順序付けする方法。
【請求項２８】
前記第１の応答に対応する第１の順序付けされた応答および前記第２の応答に対応する第２の順序付けされた応答を出力に提供することが、
前記第２の順序付けされた応答をシステムバスに提供することと、
前記第２の順序付けされた応答を提供した後、前記第１の順序付けされた応答を前記システムバスに提供することと
を備える、請求項２７に記載の方法。
【請求項２９】
第１のコマンドおよび第２のコマンドを受信した後、前記第１のコマンドおよび前記第２のコマンドのうちの少なくとも１つをメモリユニットに提供することをさらに備える、請求項２７に記載の方法。
【請求項３０】
前記第１のコマンドおよび前記第２のコマンドのうちの少なくとも１つを提供することが、
前記メモリユニットの行を開けることと、
前記第１のコマンドに対応する前記メモリユニットにおける第１のデータセットにアクセスすることと、
前記第２のコマンドに対応する前記メモリユニットにおける第２のデータセットにアクセスすることと、
前記メモリユニットの前記行を閉じることを備える、
請求項２９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ装置に関し、より具体的には、一実施形態では、複数のメモリチャネルの同時使用を可能にするメモリコントローラに関する。
【背景技術】
【０００２】
近年のメモリデバイスの入出力の高速化に伴って、最新の実装は性能限界に近づきつつあり、それによって従来型アーキテクチャの有用性が尽きようとしている。
【０００３】
その結果として、その代わりに、いくつかの手法は、メモリユニットが個別の独立な論理チャネルを介して同時のコマンドによりアクセスされ得る多チャネルメモリアーキテクチャの採用に向かっている。このことは、チャネルが利用可能になるとすぐにコマンドが提供され得るため、コマンドがより効率的な速度でコマンドキューを通過するのを可能にする。つまり、コマンドがキューに保持される時間が削減される。
【０００４】
しかしながら、この手法は欠点がないわけではない。従来、メモリコントローラによるコマンドの順序付けは、トランザクションキューレベルで実施されてきた。つまり、コマンドをメモリユニットに提供して、メモリユニットから返される応答の順序が所望の応答順に従うようにするために、順序付けロジックが用いられて、コマンドキュー上で特定の順序付け規則を実施する。したがって、このスキームの下では、多チャネルメモリアクセススキームの性能は、チャネルが利用可能である場合でさえ、一部のコマンドが提供（例えば、発行）され得ないという事実によって妨げられる。これは、場合によって、先のコマンドに対応する応答が、待ちコマンドが提供され得る前に、メモリユニットから受信されなければならないためである。この実装は、応答が正しい順序で返されることを確実にするが、メモリコントローラがメモリユニットから応答を受信するのを待機する間、利用可能なチャネルが未使用のままになる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、多チャネルメモリアクセスを利用し、いつ応答が提供されるかに関係なく、コマンドを利用可能なチャネルを介してメモリユニットに提供する改良されたメモリ装置および方法が求められている。
【図面の簡単な説明】
【０００６】
【図１】本発明の実施形態によるメモリ装置のブロック図である。
【図２】本発明の実施形態による、図１において使用され得るメモリコントローラを含むメモリ装置のブロック図である。
【図３】本発明の実施形態による、図２のメモリコントローラにおいて使用され得る順序付けロジックユニットのブロック図である。
【図４】本発明の実施形態による、メモリ装置の動作中の様々な信号を示すタイミング図である。
【図５】本発明の代替的な実施形態によるメモリ装置のブロック図である。
【図６】本発明の実施形態によるコンピュータシステムのブロック図である。
【発明を実施するための形態】
【０００７】
本発明の実施形態が十分に理解されるように、特定の詳細を以下に説明する。しかしながら、当業者には、これらの具体的な詳細なしでも本発明の実施形態が実施され得ることが理解される。さらに、本明細書に説明される本発明の具体的な実施形態は、例示のために提供されるのであり、本発明の範囲をこれらの具体的な実施形態に限定するために用いられてはならない。他の例では、本発明を不必要に不明瞭にするのを避けるために、良く知られる回路、制御信号、タイミングプロトコル、およびソフトウェア動作は、詳細に示されていない。
【０００８】
図１は、本発明の一実施形態によるメモリ装置１００を示す。メモリ装置は、例えば、単一のメモリデバイスであってもよいし、または個別のデバイスの組み合わせであってもよい。単一の半導体ダイまたはダイの組み合わせの形態であり得、また、単一のパッケージ、またはパッケージの組み合わせの中にあり得る。メモリ装置１００は、データバス１１０、アドレスバス１１２、およびコマンドバス１１４に連結されて、それぞれからデータ、アドレス、およびコマンド信号を受信するメモリコントローラ１０２を含んでもよい。メモリコントローラは、通信バス１２０を介して複数のメモリユニット１０４にさらに連結されてもよい。メモリコントローラは、メモリユニット１０４にメモリコマンドを提供するなどの様々なメモリ機能を実行するように構成され、それに応じてメモリユニット１０４が対応するメモリ応答を生成する。メモリコントローラは、少なくとも部分的にシステムバスプロトコルによって命令される順序に基づいてメモリ応答を提供するようにさらに構成される。少なくとも一つの実施形態では、メモリ応答は、読み出しコマンドに対応する読み出しデータ、および書き込みコマンドに対応する書き込み確認データの両方、またはいずれか一方を備えてもよい。メモリ応答は、その他のタイプのデータをさらに備えてもよく、本明細書の説明によって限定されない。
【０００９】
メモリユニット１０４は、任意の数のメモリユニットを備えてもよく、また任意の数の論理メモリパーティションをさらに備えてもよい。加えて、通信バス１２０は、任意の数のビット線および任意の数の論理チャネルを備えてもよい。例えば、一実施形態では、各メモリユニットは、ユニット毎に８チャネルなどの同じ数の論理チャネルに対応してもよい。さらに、少なくとも一つの実施形態では、メモリユニット１０４における論理メモリパーティションの数、および通信バス１２０の論理チャネルの数の両方、またはいずれか一方は、例えば、メモリユニット１０４を制御するのに用いられる独立したチップセレクト信号の数を増減することによって変えられてもよい。当業者には当然のことながら、本発明の範囲から逸脱することなく、各メモリユニット１０４に関係するチャネルの数を増減するように構成される別々の制御ロジックユニットなどのその他の実装もまた用いられてもよい。
【００１０】
動作中、メモリコントローラ１０２は、コマンドバス１１４を介してコマンドを受信し、受信されたコマンドをメモリユニット１０４に提供してもよい。例えば、コマンドは、システムバススレーブ（図示せず）によって、コマンドバス１１４を介してメモリコントローラ１０２に提供されてもよい。コマンドは、その他のデバイスによって同様に提供されてもよい。メモリコントローラ１０２によって受信される各コマンドは、待ち行列に入れられて、引き続いて、読み書きハザード競合に関して順序付けロジックによってチェックされてもよい。ハザード競合は、メモリユニット１０４の同じ行に提供された読み出しコマンドと書き込みコマンドとの間のページ競合などのコマンドの特定の順序（例えば、シーケンス）によって生じる動作エラーを指すこともある。順序付けロジックは、メモリコントローラ１０２に含まれてもよいし、また代替的な実施形態では、順序付けロジックは、メモリコントローラ１０２とは分離されてもよい。
【００１１】
ハザードチェックに加えて、メモリコントローラ１０２における順序付けロジックは、待ち行列に入れられたコマンドがバリアコマンドの後にあるかどうかを判定する。バリアコマンドの受信に応じて、バリアコマンドの受信前に受信したコマンドに対応する応答が、メモリコントローラ１０２における順序付けロジックによって制御されるように、メモリユニット１０４からシステムバススレーブ（またはメモリコントローラ１０２にコマンドを提供するその他のデバイス）に要求された順序で提供されるまで、順序付けロジックは、引き続いて受信したコマンドをメモリユニット１０４に提供するのを先延ばしにしてもよい。最後に、順序付けロジックはまた、待ち行列に入れられたコマンドがページヒットを生成し得るかどうかを判定してもよい。つまり、メモリコントローラ１０２は、メモリユニット１０４の同じ行が、２つまたは３つ以上の待ち行列に入れられたコマンドによって、各コマンドをメモリユニット１０４に提供する間に行を閉じたり再開したりすることなく、アクセスされ得るかどうかを判定してもよい。ページヒットが検出された場合、順序付けロジックは、キューにあるコマンドを順序付けて（例えば、再順序付け）、例えば、キューにある１つまたは２つ以上のコマンドを前進または後退させて、特定の行が開閉されるべき回数を減らしてもよい。
【００１２】
先述のように、メモリコントローラ１０２は、少なくとも部分的にシステムバスプロトコルに基づいてメモリ応答を順序付けする（例えば、再順序付けする）ように構成されてもよく、またメモリコントローラ１０２は、受信されたコマンドがハザード競合またはページヒットを生み出さない、あるいはバリアコマンドの後にはないという条件で、コマンドを、それらがコマンドバス１１４を介して受信されたように、メモリユニット１０４に提供するように構成されてもよい。結果として、メモリコントローラ１０２にメモリユニット１０４から提供されるメモリ応答は、対応するコマンドがメモリユニット１０４に提供される順序に一致しない、あるいは、システムプロトコルによって要求される順序に一致しない可能性がある。メモリユニット１０４からメモリコントローラ１０２に応答が提供される順序に関係なく、要求される順序にしたがってメモリ応答をデバイス（例えば、システムバススレーブ）に提供するために、メモリコントローラ１０２は、メモリコントローラによって提供される応答の順序を制御して、応答が要求される順序で返されるようにしてもよい。
【００１３】
以下に詳述するように、一部のコマンド（例えば、ハザード、ページヒット、およびバリアコマンド）を除いて、コマンドは、待ち行列に入れられた直後にメモリユニット１０４に提供されてもよく、それは、順序付けロジックは、コマンドが事実上任意のシーケンスでメモリユニット１０４に提供されるのを可能にするためである。手短に言えば、コマンドは、メモリユニット１０４に対応するメモリチャネルが利用可能になり次第、メモリユニット１０４に提供されてもよい。少なくとも一つの実施形態では、各ユニットが一般に多チャネルに対応することから、複数のメモリコマンドは、同時に同じメモリユニット１０４に提供され得る。
【００１４】
メモリコントローラ１０２によって受信されるコマンドは、コマンドの発行を要求するシステムバスマスタを示すマスタ識別ビット（マスタＩＤ）と、要求マスタ内のトランザクションストリームを示すトランザクション識別ビット（トランザクションＩＤ）とを含んでもよい。システムバススレーブ２０２（図２）を介して、システムバスマスタが複数のコマンドを同じトランザクションストリームに対応するコマンドでメモリコントローラ１０２に提供する場合、要求システムバスマスタは、応答が提供される順序に頼ることなしには応答を区別できないこともある。つまり、正しい動作が生じるためには、応答の順序は、マスタによって命令される要求される順序に対応すべきである。このように、コマンドをメモリユニット１０４に提供した後、対応するメモリ応答がメモリユニット１０４からメモリコントローラ１０２に要求された順序で提供されない場合、メモリコントローラ１０２は、応答を、それらをシステムバススレーブ２０２に提供する際に、再順序付けしなければならない。
【００１５】
図２は、本発明の実施形態によるメモリ装置２００を示す。メモリ装置２００は、少なくとも一つの実施形態では、図１のメモリ装置１００において用いられ得るメモリコントローラ２０１を含んでもよい。メモリコントローラ２０１は、バンク状態機械２０６および順序付けロジック２１０に連結されるキュー２０４を含んでもよい。キュー２０４は、システムバススレーブ２０２からコマンドバス２１４を介してコマンドを受信するように構成される。バンク状態機械２０６は、通信バス２２０によってメモリユニット２０８ａ−ｎに連結されてもよい。加えて、メモリコントローラ２０１は、応答ロジック２１２および読み出しデータバッファ２１８ａ−ｎをさらに備えてもよい。読み出しデータバッファ２１８ａ−ｎは、通信バス２２５によって、それぞれメモリユニット２０８ａ−ｎに連結されてもよく、また各読み出しデータバッファ２１８ａ−ｎは、バッファバス２３０によって、応答ロジック２１２にさらに連結されてもよい。最後に、応答ロジック２１２は、応答バス２３５によって、システムバススレーブ２０２に連結されてもよい。少なくとも一つの実施形態では、応答バス２３５は、その他のバスから物理的に分離されていてもよいし、あるいは、コマンドバス２１４などのその他のバスと多重化されてもよい。
【００１６】
動作中、コマンドは、コマンドバス２１４を介して、システムバススレーブ２０２からメモリコントローラ２０１のキュー２０４に提供されてもよい。そこで、順序付けロジック２１０は、先述のように、ハザード競合、バリアコマンド、およびページヒットに関して、受信されたコマンドをチェックしてもよい。図２に示されるものなどの少なくとも一つの実施形態では、キュー２０４が用いられて、複数のメモリユニット２０８ａ−ｎに関して、受信されたコマンドを記憶する。別の実施形態では、各メモリユニット２０８ａ−ｎは、それぞれのキュー２０４ａ−ｎに連結されてもよい。
【００１７】
待ち行列に入れられたコマンドは、バンク状態機械２０６に提供されてもよく、各コマンドは、ひとたびチャネルがメモリユニット２０８ａ−ｎがアクセスされるために利用可能になったならば、メモリユニット２０８ａ−ｎに提供されてもよい。一実施形態では、バンク状態機械２０６は、制御ロジックを含んで、チャネルが利用可能かどうかを判定してもよいし、あるいは、別の実施形態では、バンク状態機械２０６は、コマンドに対して特定のチャネルが利用可能であることを示す信号を外部制御ロジックから受信してもよい。さらに、一実施形態では、複数のバンク状態機械２０６が用いられてもよい。例えば、メモリコントローラ２０１は、各メモリバンク２０８ａ−ｎの各チャネルに対応するバンク状態機械２０６を含んでもよい。あるいは、メモリコントローラ２０１は、チャネル毎に任意の数のバンク状態機械２０６を用いてもよい。
【００１８】
ひとたびコマンドがメモリユニット２０８に提供されたならば、メモリユニット２０８は、応答を対応する読み出しデータバッファ２１８に提供してもよい。一実施形態では、各メモリユニット２０８ａ−ｎが読み出しバッファ２１８ａ−ｎに対応し得る一方で、別の実施形態では、メモリユニット２０８ａ−ｎは、単一の読み出しデータバッファ２１８（図示せず）に連結され、応答を提供してもよい。当業者には当然のことながら、読み出しデータバッファ２１８ａ−ｎの実装における変形は、本発明の範囲から逸脱することなしになされてもよく、また、実施形態は、本明細書に説明される具体的な実施形態に限定されない。
【００１９】
応答は、読み出しデータバッファ２０８ａ−ｎから提供され、バッファバス２３０を介して応答ロジック２１２によって受信されてもよい。ひとたび応答ロジック２１２によって受信されたならば、上述のように、順序付けロジック２１０は、応答が順序付けされるようにして、それらが要求システムバスマスタによって要求された順序（例えば、シーケンス）に配置されるようにしてもよい。例えば、順序付けロジック２１０は、応答ロジック２１２に記憶された応答にバスプロトコル規則を実施して、応答が、まず、応答バス２３５を介してシステムバススレーブ２０２に、そして最終的に、要求システムバスマスタに、正しい順序で提供されるのを確保するように構成され得る。順序付けロジック２１０は、少なくとも部分的に応答が応答ロジック２１２によって受信される順序とは独立の順序に基づいて、応答ロジック２１２によって受信される応答を提供されるようにする。
【００２０】
図３は、本発明の実施形態による順序付けロジック３００を示すブロック図である。順序付けロジック３００は、図２のメモリ装置２００における順序付けロジック２１０として用いられてもよい。順序付けロジック３００は、順序付け制御ロジック３０１と、受信キュー３１０と、応答キュー３１２とを含んでもよく、これらすべては、応答ロジック３０５に連結されてもよい。受信キュー３１０は、マスタＩＤ、トランザクションＩＤ、および読み出し識別ビット（読み出しＩＤ）を記憶するように構成されてもよく、応答キュー３１２は、チャネルセレクトビットおよび読み出しＩＤを記憶するように構成されてもよい。さらに、少なくとも一つの実施形態では、受信キュー３１０は、シフトバッファとして実装されてもよい。
【００２１】
動作中、システムバススレーブ２０２がコマンドをキュー２０４（図２）に提供する場合、受信キュー３１０もまた、コマンドを受信して、コマンドに対応するマスタＩＤおよびトランザクションＩＤを記憶してもよい。さらに、受信キュー３１０はまた、コマンドに対して固有の読み出しＩＤを生成してもよく、コマンドが同じマスタＩＤおよびトランザクションＩＤに対応するコマンドと区別されるのを可能にする。コマンドがメモリユニット２０８ａ−ｎに提供され、対応する応答が上述のように提供されると、各応答は、応答ロジック３０５に記憶されてもよい。加えて、各応答に対応する読み出しＩＤおよびチャネルセレクトビットは、応答キュー３１２に提供されて、各応答が対応するコマンド、ならびに応答を提供したチャネルを識別してもよい。一部のコマンドが複数のチャネルの使用を要求し得るため、チャネルセレクトビットの使用は、応答キュー３１２が、完全な応答が各コマンドに提供されるのを確保させる。一部の実施形態では、チャネルセレクトビットは、ワンホットエンコーディングされていてもよいし、あるいはチャネル識別にバイナリを用いてもよい。
【００２２】
上述のように、応答が応答ロジック３０５に蓄積されると、順序付け制御ロジック３０１は、応答ロジック３０５に、少なくとも部分的に要求マスタによって要求された順序に基づいて、システムバススレーブ２０２に対して応答を提供させる。例えば、少なくとも一つの実施形態では、応答ロジック３０５に記憶された応答が、同じマスタＩＤおよびトランザクションＩＤを備える場合、応答は、メモリコントローラ２０１によってコマンド受信時に生成された読み出しＩＤのみに基づいて区別され得る。その他の方法では要求マスタは応答を互いに区別できないため、この方法で区別された応答は、要求された順序でシステムバススレーブ２０２に提供されるはずである。
【００２３】
図４は、本発明の実施形態による、図２のメモリ装置２０１の動作を示すタイミング図である。システムバススレーブ２０２（図２）は、コマンド４０１およびコマンド４０２をメモリコントローラ２０１にコマンドバス２１４を介して提供してもよく、これは、それぞれ時刻Ｔ０およびＴ１で受信され得る。コマンドは、メモリユニット２０８ａ−ｎに提供され得、引き続いて、時刻Ｔ２で、応答４０３は、コマンド４０１に対する応答として、バッファバス２３０を介して応答ロジック２１２で受信され得る。
【００２４】
応答４１０は、コマンド４０２に対応してもよく、バッファバス２３０を介して、図４においてそれぞれ時刻Ｔ３−、Ｔ３、およびＴ３＋で応答４１０によって示されるように、時刻Ｔ２の前、同時、または後に応答ロジック２１２によって受信されてもよい。図４に示されるものなどの一実施形態では、応答ロジック２１２は、応答４０３の前に（例えば、時刻Ｔ３−で）応答４１０を受信してもよい。別の実施形態では、応答ロジック２１２は、応答４０３の後で（例えば、時刻Ｔ３＋で）応答４１０を受信してもよい。さらに別の実施形態では、応答４１０および４０３は、ほぼ同時に（例えば、時刻Ｔ３で）受信されてもよい。
【００２５】
上述のように、コマンドは、メモリコントローラ２０１によって受信されたままの順序で、メモリユニット２０８ａ−ｎに提供されてもよく、また応答は、要求マスタによって要求される順序で、システムバススレーブ２０２に提供されてもよい。結果として、応答４１０が応答４０３に関して応答ロジック２１２によって受信される時刻に関わらず、応答が応答バス２３５を介してシステムバススレーブ２０２に提供される順序は、同じままであってもよい。応答４２０および４２１は、例えば、要求マスタによって要求された順序に再順序付けされた応答４０３および４１０に対応し、またそれぞれ時刻Ｔ４およびＴ５で提供されてもよい。つまり、応答４０３および４１０が応答ロジック２１２によってメモリユニット２０８ａ−ｎから受信される順序に関わらず（例えば、時刻Ｔ３−、Ｔ３、またはＴ＋）、応答４２０および４２１は、図４に示される順序で提供されてもよい。さらに、上述のように、応答は、対応するコマンドが受信された順序で提供される必要はない。例えば、別の実施形態では、必要に応じて、応答４２０および４２１は、システムバススレーブに提供されて、応答４２１は応答４２０の前に提供されるようにしてもよい。
【００２６】
図５は、本発明の代替的な実施形態によるメモリ装置５００を示す。メモリ装置５００は、図２のメモリ装置に関して先に説明してきた要素を含む。これらの要素は、図２において用いられたものと同じ参照番号を用いて図５に示されており、共通の要素の動作は、先に説明したとおりである。それ故、簡略にするために、これらの要素の動作の詳細な説明は繰り返さない。
【００２７】
メモリ装置２００とは対照的に、メモリ装置５００は、メモリユニット２０８ａ−ｎに連結され、書き込み応答を記憶するように構成され得る書き込みバッファ５１８ａ−ｎをさらに備える。書き込みバッファ５１８ａ−ｎは、応答ロジック２１２にさらに連結されてもよく、一実施形態では、メモリユニット２０８ａ−ｎの各ユニットにそれぞれ対応してもよい。別の実施形態では、書き込みバッファ５１８ａ−ｎは、各チャネルに対応してもよい。さらに別の実施形態では、単一の書き込みバッファ５１８（図示せず）は、すべてのメモリユニット２０８ａ−ｎおよび応答ロジック２１２に連結されてもよい。当業者は、本発明の範囲から逸脱することなく、読み出し応答および書き込み応答の両方を記憶するように構成される単一のバッファなどのその他の実装もまた用いられてもよいことを理解するであろう。
【００２８】
動作中、メモリユニット２０８ａ−ｎは、書き込みコマンドを提供され、引き換えに書き込み応答を提供してもよい。各書き込み応答は、書き込みバッファ５１８に引き続いて提供されてもよく、これは、その後、応答を応答ロジック２１２に提供する。応答ロジック２１２は、書き込み応答をシステムスレーブバス２０２に要求された順序で提供してもよい。一実施形態では、順序付けロジック２１０は、応答ロジック２１２に、読み出し応答が提供された順序とは関係なく、システムバススレーブ２０２に対して書き込み応答を提供させてもよい。別の実施形態では、順序付けロジック２１０は、少なくとも部分的に読み出し応答が提供された順序に基づいて、書き込み応答を提供させてもよい。
【００２９】
図６は、本発明の実施形態によるコンピューティングシステム６００を示す。コンピューティングシステム６００は、様々なコンピューティング機能を実行するように構成されるプロセッサ６０５と、メモリ装置６０３とを含んでもよい。メモリ装置６０３は、バス６０６によってプロセッサ６０５に連結されてもよく、通信バス６２０によって連結されるメモリコントローラ６０１とメモリユニット６０８とをさらに含んでもよい。少なくとも一つの実施形態では、メモリコントローラ６０１は、図２の実施形態におけるメモリコントローラ２０１であってもよい。一部の実施形態では、コンピューティングシステム６００は、デスクトップコンピュータ、ラップトップ、電話、携帯端末（ＰＤＡ）、メディアプレーヤ（すなわち、ＭＰ３プレーヤ）、サーバ、電化製品、ゲーム機、ネットワーキングデバイス（すなわち、ルータ）、テレビ、または本明細書に説明されたプロセスの任意の１つの少なくとも一部を実行するように構成されるその他の装置を備えてもよい。コンピューティングシステム６００はまた、これらの装置の任意の組み合わせを備えてもよい。
【００３０】
動作中、図２を参照して上述したように、システムバススレーブ（図示せず）は、システムバスマスタ（図示せず）からメモリコマンドを受信してもよい。図２を参照して上述したように、メモリコントローラ６０１は、システムバススレーブからコマンドを受信して、メモリユニット６０８に提供してもよい。一部の実施形態では、システムバスマスタは、プロセッサ６０５に含まれてもよいし、あるいは、システムコントローラ（図示せず）に含まれて、プロセッサ６０５からコマンドを受信してもよい。さらに、少なくとも一つの実施形態では、メモリコントローラ６０１はまた、システムコントローラに含まれてもよい。
【００３１】
上記から当然のことながら、本明細書において本発明の具体的な実施形態を説明の目的で記述してきたが、様々な修正が本発明の精神および範囲から逸脱することなくなされ得る。例えば、メモリコントローラにおける応答の順序付けの文脈で本発明の実施形態を説明してきたが、当然のことながら、応答は、ひとたびメモリコントローラからシステムバスに提供されたならば、順序付けられてもよい。したがって、本発明は、特許請求の範囲による場合を除き、限定されない。
【図１】
2015500541.tif 000003
【図２】
2015500541.tif 000004
【図３】
2015500541.tif 000005
【図４】
2015500541.tif 000006
【図５】
2015500541.tif 000007
【図６】
2015500541.tif 000008
【手続補正書】
【提出日】平成26年10月31日(2014.10.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピューティングシステムであって、
複数のメモリユニットと、
システムバススレーブと、
前記メモリユニットおよび前記システムバススレーブに連結されるメモリコントローラと
を備えるコンピューティングシステムであって、前記メモリコントローラが、
複数の応答を前記複数のメモリユニットから、ある順序で受信するように構成される応答ロジックと、
前記応答ロジックに連結され、前記複数の応答を、前記複数の応答が前記応答ロジックによって受信される前記順序とは独立の順序で、前記システムバススレーブに提供させるように構成される順序付けロジックとを備える、
コンピューティングシステム。
【請求項２】
前記メモリコントローラが、前記複数のメモリユニットに複数の論理チャネルを備えるバスによって連結される、請求項１に記載のコンピューティングシステム。
【請求項３】
前記複数のメモリユニットのそれぞれが、それぞれの論理チャネルに対応する、請求項２に記載のコンピューティングシステム。
【請求項４】
前記システムバススレーブが、システムバスマスタに連結され、前記システムバスマスタからコマンドを受信し、応答を前記システムバスマスタに提供するように構成される、請求項１乃至３のいずれかに記載のコンピューティングシステム。
【請求項５】
前記複数の応答が、それぞれの複数のコマンドに対応する、請求項１乃至４のいずれかに記載のコンピューティングシステム。
【請求項６】
前記複数の応答が、読み出し応答および書き込み応答を備え、前記読み出し応答が、読み出しデータを備え、前記書き込み応答が、書き込み確認データを備える、請求項１乃至５のいずれかに記載のコンピューティングシステム。
【請求項７】
前記複数の応答が、少なくとも部分的に、前記応答ロジックによって受信される前記複数の応答を再順序付けするのに応じて、前記システムバスマスタに提供される、請求項１に記載のコンピューティングシステム。
【請求項８】
メモリ応答を順序付けする方法であって、
メモリユニットに提供される複数のコマンドに対応する複数のメモリ応答を生成することと、
前記コマンドが前記メモリユニットに提供された順序とは独立に、前記複数の応答を順序付けすることと、
前記複数の応答を、少なくとも部分的に前記順序付けすることに基づいてシステムバスに提供することと
を備える、メモリ応答を順序付けする方法。
【請求項９】
前記複数のコマンドのうちの少なくとも１つが、ハザード競合およびページヒットのうちの少なくとも１つを生じる、請求項８に記載の方法。
【請求項１０】
前記複数のコマンドのうちの少なくとも１つが、バッファコマンドである、請求項８または９に記載の方法。
【請求項１１】
前記複数の応答を順序付けすることが、少なくとも部分的にシステムプロトコルに基づいて前記複数の応答を順序付けすることを備えることをさらに備える、請求項８乃至１０のいずれかに記載の方法。
【請求項１２】
前記複数のコマンドのうちの少なくとも１つが、読み出しコマンドである、請求項８乃至１１のいずれかに記載の方法。
【請求項１３】
前記複数の応答をシステムバスに提供することが、前記複数の応答をシステムバススレーブに提供することを備える、請求項８乃至１２のいずれかに記載の方法。
【国際調査報告】
2015500541.tif 000009
2015500541.tif 000010
2015500541.tif 000011