JP6082752B2 - メモリ応答の順序付けのためのメモリ装置、コンピュータシステムおよび方法 - Google Patents

メモリ応答の順序付けのためのメモリ装置、コンピュータシステムおよび方法 Download PDF

Info

Publication number
JP6082752B2
JP6082752B2 JP2014547242A JP2014547242A JP6082752B2 JP 6082752 B2 JP6082752 B2 JP 6082752B2 JP 2014547242 A JP2014547242 A JP 2014547242A JP 2014547242 A JP2014547242 A JP 2014547242A JP 6082752 B2 JP6082752 B2 JP 6082752B2
Authority
JP
Japan
Prior art keywords
responses
memory
commands
response
ordering
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014547242A
Other languages
English (en)
Other versions
JP2015500541A (ja
Inventor
エム. ウォーカー,ロバート
エム. ウォーカー,ロバート
Original Assignee
マイクロン テクノロジー, インク.
マイクロン テクノロジー, インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by マイクロン テクノロジー, インク., マイクロン テクノロジー, インク. filed Critical マイクロン テクノロジー, インク.
Publication of JP2015500541A publication Critical patent/JP2015500541A/ja
Application granted granted Critical
Publication of JP6082752B2 publication Critical patent/JP6082752B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control

Description

本発明は、メモリ装置に関し、より具体的には、一実施形態では、複数のメモリチャネルの同時使用を可能にするメモリコントローラに関する。
近年のメモリデバイスの入出力の高速化に伴って、最新の実装は性能限界に近づきつつあり、それによって従来型アーキテクチャの有用性が尽きようとしている。
その結果として、その代わりに、いくつかの手法は、メモリユニットが個別の独立な論理チャネルを介して同時のコマンドによりアクセスされ得る多チャネルメモリアーキテクチャの採用に向かっている。このことは、チャネルが利用可能になるとすぐにコマンドが提供され得るため、コマンドがより効率的な速度でコマンドキューを通過するのを可能にする。つまり、コマンドがキューに保持される時間が削減される。
しかしながら、この手法は欠点がないわけではない。従来、メモリコントローラによるコマンドの順序付けは、トランザクションキューレベルで実施されてきた。つまり、コマンドをメモリユニットに提供して、メモリユニットから返される応答の順序が所望の応答順に従うようにするために、順序付けロジックが用いられて、コマンドキュー上で特定の順序付け規則を実施する。したがって、このスキームの下では、多チャネルメモリアクセススキームの性能は、チャネルが利用可能である場合でさえ、一部のコマンドが提供(例えば、発行)され得ないという事実によって妨げられる。これは、場合によって、先のコマンドに対応する応答が、待ちコマンドが提供され得る前に、メモリユニットから受信されなければならないためである。この実装は、応答が正しい順序で返されることを確実にするが、メモリコントローラがメモリユニットから応答を受信するのを待機する間、利用可能なチャネルが未使用のままになる。
したがって、多チャネルメモリアクセスを利用し、いつ応答が提供されるかに関係なく、コマンドを利用可能なチャネルを介してメモリユニットに提供する改良されたメモリ装置および方法が求められている。
本発明の実施形態によるメモリ装置のブロック図である。 本発明の実施形態による、図1において使用され得るメモリコントローラを含むメモリ装置のブロック図である。 本発明の実施形態による、図2のメモリコントローラにおいて使用され得る順序付けロジックユニットのブロック図である。 本発明の実施形態による、メモリ装置の動作中の様々な信号を示すタイミング図である。 本発明の代替的な実施形態によるメモリ装置のブロック図である。 本発明の実施形態によるコンピュータシステムのブロック図である。
本発明の実施形態が十分に理解されるように、特定の詳細を以下に説明する。しかしながら、当業者には、これらの具体的な詳細なしでも本発明の実施形態が実施され得ることが理解される。さらに、本明細書に説明される本発明の具体的な実施形態は、例示のために提供されるのであり、本発明の範囲をこれらの具体的な実施形態に限定するために用いられてはならない。他の例では、本発明を不必要に不明瞭にするのを避けるために、良く知られる回路、制御信号、タイミングプロトコル、およびソフトウェア動作は、詳細に示されていない。
図1は、本発明の一実施形態によるメモリ装置100を示す。メモリ装置は、例えば、単一のメモリデバイスであってもよいし、または個別のデバイスの組み合わせであってもよい。単一の半導体ダイまたはダイの組み合わせの形態であり得、また、単一のパッケージ、またはパッケージの組み合わせの中にあり得る。メモリ装置100は、データバス110、アドレスバス112、およびコマンドバス114に連結されて、それぞれからデータ、アドレス、およびコマンド信号を受信するメモリコントローラ102を含んでもよい。メモリコントローラは、通信バス120を介して複数のメモリユニット104にさらに連結されてもよい。メモリコントローラは、メモリユニット104にメモリコマンドを提供するなどの様々なメモリ機能を実行するように構成され、それに応じてメモリユニット104が対応するメモリ応答を生成する。メモリコントローラは、少なくとも部分的にシステムバスプロトコルによって命令される順序に基づいてメモリ応答を提供するようにさらに構成される。少なくとも一つの実施形態では、メモリ応答は、読み出しコマンドに対応する読み出しデータ、および書き込みコマンドに対応する書き込み確認データの両方、またはいずれか一方を備えてもよい。メモリ応答は、その他のタイプのデータをさらに備えてもよく、本明細書の説明によって限定されない。
メモリユニット104は、任意の数のメモリユニットを備えてもよく、また任意の数の論理メモリパーティションをさらに備えてもよい。加えて、通信バス120は、任意の数のビット線および任意の数の論理チャネルを備えてもよい。例えば、一実施形態では、各メモリユニットは、ユニット毎に8チャネルなどの同じ数の論理チャネルに対応してもよい。さらに、少なくとも一つの実施形態では、メモリユニット104における論理メモリパーティションの数、および通信バス120の論理チャネルの数の両方、またはいずれか一方は、例えば、メモリユニット104を制御するのに用いられる独立したチップセレクト信号の数を増減することによって変えられてもよい。当業者には当然のことながら、本発明の範囲から逸脱することなく、各メモリユニット104に関係するチャネルの数を増減するように構成される別々の制御ロジックユニットなどのその他の実装もまた用いられてもよい。
動作中、メモリコントローラ102は、コマンドバス114を介してコマンドを受信し、受信されたコマンドをメモリユニット104に提供してもよい。例えば、コマンドは、システムバススレーブ(図示せず)によって、コマンドバス114を介してメモリコントローラ102に提供されてもよい。コマンドは、その他のデバイスによって同様に提供されてもよい。メモリコントローラ102によって受信される各コマンドは、待ち行列(キュー)に入れられて、引き続いて、読み書きハザード競合に関して順序付けロジックによってチェックされてもよい。ハザード競合は、メモリユニット104の同じ行に提供された読み出しコマンドと書き込みコマンドとの間のページ競合などのコマンドの特定の順序(例えば、シーケンス)によって生じる動作エラーを指すこともある。順序付けロジックは、メモリコントローラ102に含まれてもよいし、また代替的な実施形態では、順序付けロジックは、メモリコントローラ102とは分離されてもよい。
ハザードチェックに加えて、メモリコントローラ102における順序付けロジックは、待ち行列に入れられたコマンドがバリアコマンドの後にあるかどうかを判定する。バリアコマンドの受信に応じて、バリアコマンドの受信前に受信したコマンドに対応する応答が、メモリコントローラ102における順序付けロジックによって制御されるように、メモリユニット104からシステムバススレーブ(またはメモリコントローラ102にコマンドを提供するその他のデバイス)に要求された順序で提供されるまで、順序付けロジックは、引き続いて受信したコマンドをメモリユニット104に提供するのを先延ばしにしてもよい。最後に、順序付けロジックはまた、待ち行列に入れられたコマンドがページヒットを生成し得るかどうかを判定してもよい。つまり、メモリコントローラ102は、メモリユニット104の同じ行が、2つまたは3つ以上の待ち行列に入れられたコマンドによって、各コマンドをメモリユニット104に提供する間に行を閉じたり再開したりすることなく、アクセスされ得るかどうかを判定してもよい。ページヒットが検出された場合、順序付けロジックは、キューにあるコマンドを順序付けて(例えば、再順序付け)、例えば、キューにある1つまたは2つ以上のコマンドを前進または後退させて、特定の行が開閉されるべき回数を減らしてもよい。
先述のように、メモリコントローラ102は、少なくとも部分的にシステムバスプロトコルに基づいてメモリ応答を順序付けする(例えば、再順序付けする)ように構成されてもよく、またメモリコントローラ102は、受信されたコマンドがハザード競合またはページヒットを生み出さない、あるいはバリアコマンドの後にはないという条件で、コマンドを、それらがコマンドバス114を介して受信されたように、メモリユニット104に提供するように構成されてもよい。結果として、メモリコントローラ102にメモリユニット104から提供されるメモリ応答は、対応するコマンドがメモリユニット104に提供される順序に一致しない、あるいは、システムプロトコルによって要求される順序に一致しない可能性がある。メモリユニット104からメモリコントローラ102に応答が提供される順序に関係なく、要求される順序にしたがってメモリ応答をデバイス(例えば、システムバススレーブ)に提供するために、メモリコントローラ102は、メモリコントローラによって提供される応答の順序を制御して、応答が要求される順序で返されるようにしてもよい。
以下に詳述するように、一部のコマンド(例えば、ハザード、ページヒット、およびバリアコマンド)を除いて、コマンドは、待ち行列に入れられた直後にメモリユニット104に提供されてもよく、それは、順序付けロジックは、コマンドが事実上任意のシーケンスでメモリユニット104に提供されるのを可能にするためである。手短に言えば、コマンドは、メモリユニット104に対応するメモリチャネルが利用可能になり次第、メモリユニット104に提供されてもよい。少なくとも一つの実施形態では、各ユニットが一般に多チャネルに対応することから、複数のメモリコマンドは、同時に同じメモリユニット104に提供され得る。
メモリコントローラ102によって受信されるコマンドは、コマンドの発行を要求するシステムバスマスタを示すマスタ識別ビット(マスタID)と、要求マスタ内のトランザクションストリームを示すトランザクション識別ビット(トランザクションID)とを含んでもよい。システムバススレーブ202(図2)を介して、システムバスマスタが複数のコマンドを同じトランザクションストリームに対応するコマンドでメモリコントローラ102に提供する場合、要求システムバスマスタは、応答が提供される順序に頼ることなしには応答を区別できないこともある。つまり、正しい動作が生じるためには、応答の順序は、マスタによって命令される要求される順序に対応すべきである。このように、コマンドをメモリユニット104に提供した後、対応するメモリ応答がメモリユニット104からメモリコントローラ102に要求された順序で提供されない場合、メモリコントローラ102は、応答を、それらをシステムバススレーブ202に提供する際に、再順序付けしなければならない。
図2は、本発明の実施形態によるメモリ装置200を示す。メモリ装置200は、少なくとも一つの実施形態では、図1のメモリ装置100において用いられ得るメモリコントローラ201を含んでもよい。メモリコントローラ201は、バンク状態機械206および順序付けロジック210に連結されるキュー204を含んでもよい。キュー204は、システムバススレーブ202からコマンドバス214を介してコマンドを受信するように構成される。バンク状態機械206は、通信バス220によってメモリユニット208a−nに連結されてもよい。加えて、メモリコントローラ201は、応答ロジック212および読み出しデータバッファ218a−nをさらに備えてもよい。読み出しデータバッファ218a−nは、通信バス225によって、それぞれメモリユニット208a−nに連結されてもよく、また各読み出しデータバッファ218a−nは、バッファバス230によって、応答ロジック212にさらに連結されてもよい。最後に、応答ロジック212は、応答バス235によって、システムバススレーブ202に連結されてもよい。少なくとも一つの実施形態では、応答バス235は、その他のバスから物理的に分離されていてもよいし、あるいは、コマンドバス214などのその他のバスと多重化されてもよい。
動作中、コマンドは、コマンドバス214を介して、システムバススレーブ202からメモリコントローラ201のキュー204に提供されてもよい。そこで、順序付けロジック210は、先述のように、ハザード競合、バリアコマンド、およびページヒットに関して、受信されたコマンドをチェックしてもよい。図2に示されるものなどの少なくとも一つの実施形態では、キュー204が用いられて、複数のメモリユニット208a−nに関して、受信されたコマンドを記憶する。別の実施形態では、各メモリユニット208a−nは、それぞれのキュー204a−nに連結されてもよい。
待ち行列に入れられたコマンドは、バンク状態機械206に提供されてもよく、各コマンドは、ひとたびチャネルがメモリユニット208a−nがアクセスされるために利用可能になったならば、メモリユニット208a−nに提供されてもよい。一実施形態では、バンク状態機械206は、制御ロジックを含んで、チャネルが利用可能かどうかを判定してもよいし、あるいは、別の実施形態では、バンク状態機械206は、コマンドに対して特定のチャネルが利用可能であることを示す信号を外部制御ロジックから受信してもよい。さらに、一実施形態では、複数のバンク状態機械206が用いられてもよい。例えば、メモリコントローラ201は、各メモリバンク208a−nの各チャネルに対応するバンク状態機械206を含んでもよい。あるいは、メモリコントローラ201は、チャネル毎に任意の数のバンク状態機械206を用いてもよい。
ひとたびコマンドがメモリユニット208に提供されたならば、メモリユニット208は、応答を対応する読み出しデータバッファ218に提供してもよい。一実施形態では、各メモリユニット208a−nが読み出しバッファ218a−nに対応し得る一方で、別の実施形態では、メモリユニット208a−nは、単一の読み出しデータバッファ218(図示せず)に連結され、応答を提供してもよい。当業者には当然のことながら、読み出しデータバッファ218a−nの実装における変形は、本発明の範囲から逸脱することなしになされてもよく、また、実施形態は、本明細書に説明される具体的な実施形態に限定されない。
応答は、読み出しデータバッファ208a−nから提供され、バッファバス230を介して応答ロジック212によって受信されてもよい。ひとたび応答ロジック212によって受信されたならば、上述のように、順序付けロジック210は、応答が順序付けされるようにして、それらが要求システムバスマスタによって要求された順序(例えば、シーケンス)に配置されるようにしてもよい。例えば、順序付けロジック210は、応答ロジック212に記憶された応答にバスプロトコル規則を実施して、応答が、まず、応答バス235を介してシステムバススレーブ202に、そして最終的に、要求システムバスマスタに、正しい順序で提供されるのを確保するように構成され得る。順序付けロジック210は、少なくとも部分的に応答が応答ロジック212によって受信される順序とは独立の順序に基づいて、応答ロジック212によって受信される応答を提供されるようにする。
図3は、本発明の実施形態による順序付けロジック300を示すブロック図である。順序付けロジック300は、図2のメモリ装置200における順序付けロジック210として用いられてもよい。順序付けロジック300は、順序付け制御ロジック301と、受信キュー310と、応答キュー312とを含んでもよく、これらすべては、応答ロジック305に連結されてもよい。受信キュー310は、マスタID、トランザクションID、および読み出し識別ビット(読み出しID)を記憶するように構成されてもよく、応答キュー312は、チャネルセレクトビットおよび読み出しIDを記憶するように構成されてもよい。さらに、少なくとも一つの実施形態では、受信キュー310は、シフトバッファとして実装されてもよい。
動作中、システムバススレーブ202がコマンドをキュー204(図2)に提供する場合、受信キュー310もまた、コマンドを受信して、コマンドに対応するマスタIDおよびトランザクションIDを記憶してもよい。さらに、受信キュー310はまた、コマンドに対して固有の読み出しIDを生成してもよく、コマンドが同じマスタIDおよびトランザクションIDに対応するコマンドと区別されるのを可能にする。コマンドがメモリユニット208a−nに提供され、対応する応答が上述のように提供されると、各応答は、応答ロジック305に記憶されてもよい。加えて、各応答に対応する読み出しIDおよびチャネルセレクトビットは、応答キュー312に提供されて、各応答が対応するコマンド、ならびに応答を提供したチャネルを識別してもよい。一部のコマンドが複数のチャネルの使用を要求し得るため、チャネルセレクトビットの使用は、応答キュー312が、完全な応答が各コマンドに提供されるのを確保させる。一部の実施形態では、チャネルセレクトビットは、ワンホットエンコーディングされていてもよいし、あるいはチャネル識別にバイナリを用いてもよい。
上述のように、応答が応答ロジック305に蓄積されると、順序付け制御ロジック301は、応答ロジック305に、少なくとも部分的に要求マスタによって要求された順序に基づいて、システムバススレーブ202に対して応答を提供させる。例えば、少なくとも一つの実施形態では、応答ロジック305に記憶された応答が、同じマスタIDおよびトランザクションIDを備える場合、応答は、メモリコントローラ201によってコマンド受信時に生成された読み出しIDのみに基づいて区別され得る。その他の方法では要求マスタは応答を互いに区別できないため、この方法で区別された応答は、要求された順序でシステムバススレーブ202に提供されるはずである。
図4は、本発明の実施形態による、図2のメモリ装置201の動作を示すタイミング図である。システムバススレーブ202(図2)は、コマンド401およびコマンド402をメモリコントローラ201にコマンドバス214を介して提供してもよく、これは、それぞれ時刻T0およびT1で受信され得る。コマンドは、メモリユニット208a−nに提供され得、引き続いて、時刻T2で、応答403は、コマンド401に対する応答として、バッファバス230を介して応答ロジック212で受信され得る。
応答410は、コマンド402に対応してもよく、バッファバス230を介して、図4においてそれぞれ時刻T3−、T3、およびT3+で応答410によって示されるように、時刻T2の前、同時、または後に応答ロジック212によって受信されてもよい。図4に示されるものなどの一実施形態では、応答ロジック212は、応答403の前に(例えば、時刻T3−で)応答410を受信してもよい。別の実施形態では、応答ロジック212は、応答403の後で(例えば、時刻T3+で)応答410を受信してもよい。さらに別の実施形態では、応答410および403は、ほぼ同時に(例えば、時刻T3で)受信されてもよい。
上述のように、コマンドは、メモリコントローラ201によって受信されたままの順序で、メモリユニット208a−nに提供されてもよく、また応答は、要求マスタによって要求される順序で、システムバススレーブ202に提供されてもよい。結果として、応答410が応答403に関して応答ロジック212によって受信される時刻に関わらず、応答が応答バス235を介してシステムバススレーブ202に提供される順序は、同じままであってもよい。応答420および421は、例えば、要求マスタによって要求された順序に再順序付けされた応答403および410に対応し、またそれぞれ時刻T4およびT5で提供されてもよい。つまり、応答403および410が応答ロジック212によってメモリユニット208a−nから受信される順序に関わらず(例えば、時刻T3−、T3、またはT+)、応答420および421は、図4に示される順序で提供されてもよい。さらに、上述のように、応答は、対応するコマンドが受信された順序で提供される必要はない。例えば、別の実施形態では、必要に応じて、応答420および421は、システムバススレーブに提供されて、応答421は応答420の前に提供されるようにしてもよい。
図5は、本発明の代替的な実施形態によるメモリ装置500を示す。メモリ装置500は、図2のメモリ装置に関して先に説明してきた要素を含む。これらの要素は、図2において用いられたものと同じ参照番号を用いて図5に示されており、共通の要素の動作は、先に説明したとおりである。それ故、簡略にするために、これらの要素の動作の詳細な説明は繰り返さない。
メモリ装置200とは対照的に、メモリ装置500は、メモリユニット208a−nに連結され、書き込み応答を記憶するように構成され得る書き込みバッファ518a−nをさらに備える。書き込みバッファ518a−nは、応答ロジック212にさらに連結されてもよく、一実施形態では、メモリユニット208a−nの各ユニットにそれぞれ対応してもよい。別の実施形態では、書き込みバッファ518a−nは、各チャネルに対応してもよい。さらに別の実施形態では、単一の書き込みバッファ518(図示せず)は、すべてのメモリユニット208a−nおよび応答ロジック212に連結されてもよい。当業者は、本発明の範囲から逸脱することなく、読み出し応答および書き込み応答の両方を記憶するように構成される単一のバッファなどのその他の実装もまた用いられてもよいことを理解するであろう。
動作中、メモリユニット208a−nは、書き込みコマンドを提供され、引き換えに書き込み応答を提供してもよい。各書き込み応答は、書き込みバッファ518に引き続いて提供されてもよく、これは、その後、応答を応答ロジック212に提供する。応答ロジック212は、書き込み応答をシステムスレーブバス202に要求された順序で提供してもよい。一実施形態では、順序付けロジック210は、応答ロジック212に、読み出し応答が提供された順序とは関係なく、システムバススレーブ202に対して書き込み応答を提供させてもよい。別の実施形態では、順序付けロジック210は、少なくとも部分的に読み出し応答が提供された順序に基づいて、書き込み応答を提供させてもよい。
図6は、本発明の実施形態によるコンピューティングシステム600を示す。コンピューティングシステム600は、様々なコンピューティング機能を実行するように構成されるプロセッサ605と、メモリ装置603とを含んでもよい。メモリ装置603は、バス606によってプロセッサ605に連結されてもよく、通信バス620によって連結されるメモリコントローラ601とメモリユニット608とをさらに含んでもよい。少なくとも一つの実施形態では、メモリコントローラ601は、図2の実施形態におけるメモリコントローラ201であってもよい。一部の実施形態では、コンピューティングシステム600は、デスクトップコンピュータ、ラップトップ、電話、携帯端末(PDA)、メディアプレーヤ(すなわち、MP3プレーヤ)、サーバ、電化製品、ゲーム機、ネットワーキングデバイス(すなわち、ルータ)、テレビ、または本明細書に説明されたプロセスの任意の1つの少なくとも一部を実行するように構成されるその他の装置を備えてもよい。コンピューティングシステム600はまた、これらの装置の任意の組み合わせを備えてもよい。
動作中、図2を参照して上述したように、システムバススレーブ(図示せず)は、システムバスマスタ(図示せず)からメモリコマンドを受信してもよい。図2を参照して上述したように、メモリコントローラ601は、システムバススレーブからコマンドを受信して、メモリユニット608に提供してもよい。一部の実施形態では、システムバスマスタは、プロセッサ605に含まれてもよいし、あるいは、システムコントローラ(図示せず)に含まれて、プロセッサ605からコマンドを受信してもよい。さらに、少なくとも一つの実施形態では、メモリコントローラ601はまた、システムコントローラに含まれてもよい。
上記から当然のことながら、本明細書において本発明の具体的な実施形態を説明の目的で記述してきたが、様々な修正が本発明の精神および範囲から逸脱することなくなされ得る。例えば、メモリコントローラにおける応答の順序付けの文脈で本発明の実施形態を説明してきたが、当然のことながら、応答は、ひとたびメモリコントローラからシステムバスに提供されたならば、順序付けられてもよい。したがって、本発明は、特許請求の範囲による場合を除き、限定されない。

Claims (14)

  1. コンピューティングシステムであって、
    複数のメモリユニットと、
    システムバススレーブと、
    前記メモリユニットおよび前記システムバススレーブに連結されるメモリコントローラと
    前記メモリコントローラと前記複数のメモリユニットとの間に複数のチャネルをそれぞれ構成する通信バスと、
    を備えるコンピューティングシステムであって、
    前記メモリコントローラが、
    複数のコマンドを受け取るキューと、
    複数の応答を前記複数のメモリユニットから、ある順序で受信するように構成される応答ロジックと、
    前記応答ロジックに連結され、前記複数の応答を、前記複数の応答が前記応答ロジックによって受信される前記順序とは独立の順序で、前記システムバススレーブに提供させるように構成される順序付けロジックとを備え、
    前記メモリコントローラは、前記複数のコマンドを対応するメモリユニットに提供する際に、前記複数のチャネルが利用可能か否かを判定し、利用可能と判定されたチャネルのメモリユニットに前記複数のコマンドの中の対応するコマンドを提供することを特徴とする、コンピューティングシステム。
  2. 前記複数のメモリユニットの各々が、前記複数のチャネルのうちの対応する複数個と接続することを特徴とする、請求項1に記載のコンピューティングシステム。
  3. 前記複数のメモリユニットのそれぞれが、それぞれのチャネルに対応する、請求項2に記載のコンピューティングシステム。
  4. 前記システムバススレーブが、システムバスマスタに連結され、前記システムバスマスタから前記複数のコマンドを受信し、前記複数の応答を前記システムバスマスタに提供するように構成される、請求項1乃至3のいずれかに記載のコンピューティングシステム。
  5. 前記複数の応答が、それぞれ前記複数のコマンドに対応する、請求項1乃至4のいずれかに記載のコンピューティングシステム。
  6. 前記複数の応答が、読み出し応答および書き込み応答を含み、前記読み出し応答が、読み出しデータを含み、前記書き込み応答が、書き込み確認データを含み、前記順序付けロジックが、前記読み出しデータと前記書き込み確認データとを互いに独立の順序で前記システムバススレーブに供給させるように構成される、請求項1乃至5のいずれかに記載のコンピューティングシステム。
  7. 前記複数の応答が、前記応答ロジックによって受信される前記複数の応答を再順序付けするのに少なくとも部分的に応じて、前記システムバスマスタに提供される、請求項1に記載のコンピューティングシステム。
  8. 前記順序付けロジックが、更に、前記複数のコマンドの各々に対し、少なくともページヒットのチェックを実行するように構成されることを特徴とする、請求項1乃至7のいずれかに記載のコンピューティングシステム。
  9. メモリ応答を順序付けする方法であって、
    メモリコントローラと複数のメモリユニットとを接続する通信バスよって、前記メモリコントローラと前記複数のメモリユニットとの間にそれぞれ構成される複数のチャネルが利用可能か否かを判定し、利用可能と判定されたチャネルのメモリユニットに複数のコマンドの中の対応するコマンドを提供することと、
    前記メモリユニットに提供される前記複数のコマンドに対応する複数のメモリ応答を生成することと、
    前記コマンドが前記メモリユニットに提供された順序とは独立に、前記複数の応答を順序付けすることと、
    前記複数の応答を、前記順序付けすることに少なくとも部分的に基づいてシステムバスに提供することと
    含む、メモリ応答を順序付けする方法。
  10. 前記複数のコマンドのうちの少なくとも1つが、ハザード競合およびページヒットのうちの少なくとも1つを生じる、請求項に記載の方法。
  11. 前記複数のコマンドのうちの少なくとも1つが、バリアコマンドである、請求項または10に記載の方法。
  12. 前記複数の応答を順序付けすることが、システムプロトコルに少なくとも部分的に基づいて前記複数の応答を順序付けすることを含む、請求項乃至11のいずれかに記載の方法。
  13. 前記複数のコマンドのうちの少なくとも1つが、読み出しコマンドである、請求項乃至12のいずれかに記載の方法。
  14. 前記複数の応答をシステムバスに提供することが、前記複数の応答をシステムバススレーブに提供することを含む、請求項乃至13のいずれかに記載の方法。
JP2014547242A 2011-12-13 2012-11-02 メモリ応答の順序付けのためのメモリ装置、コンピュータシステムおよび方法 Active JP6082752B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/324,877 2011-12-13
US13/324,877 US8880819B2 (en) 2011-12-13 2011-12-13 Memory apparatuses, computer systems and methods for ordering memory responses
PCT/US2012/063327 WO2013089937A1 (en) 2011-12-13 2012-11-02 Memory apparatuses, computer systems and methods for ordering memory responses

Publications (2)

Publication Number Publication Date
JP2015500541A JP2015500541A (ja) 2015-01-05
JP6082752B2 true JP6082752B2 (ja) 2017-02-15

Family

ID=48573086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014547242A Active JP6082752B2 (ja) 2011-12-13 2012-11-02 メモリ応答の順序付けのためのメモリ装置、コンピュータシステムおよび方法

Country Status (7)

Country Link
US (2) US8880819B2 (ja)
EP (1) EP2791941A4 (ja)
JP (1) JP6082752B2 (ja)
KR (1) KR101709385B1 (ja)
CN (1) CN103999159B (ja)
TW (1) TWI496003B (ja)
WO (1) WO2013089937A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8880819B2 (en) 2011-12-13 2014-11-04 Micron Technology, Inc. Memory apparatuses, computer systems and methods for ordering memory responses
JP5842174B2 (ja) * 2013-03-13 2016-01-13 パナソニックIpマネジメント株式会社 バス制御装置、中継装置およびバスシステム
WO2014193376A1 (en) * 2013-05-30 2014-12-04 Hewlett-Packard Development Company, L.P. Separate memory controllers to access data in memory
US10007435B2 (en) 2015-05-21 2018-06-26 Micron Technology, Inc. Translation lookaside buffer in memory
TWI575384B (zh) * 2015-09-04 2017-03-21 慧榮科技股份有限公司 通道控制裝置
US20170160929A1 (en) * 2015-12-02 2017-06-08 Hewlett Packard Enterprise Development Lp In-order execution of commands received via a networking fabric
US10817528B2 (en) * 2015-12-15 2020-10-27 Futurewei Technologies, Inc. System and method for data warehouse engine
US10152237B2 (en) 2016-05-05 2018-12-11 Micron Technology, Inc. Non-deterministic memory protocol
US10534540B2 (en) * 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
US10585624B2 (en) 2016-12-01 2020-03-10 Micron Technology, Inc. Memory protocol
US11003602B2 (en) 2017-01-24 2021-05-11 Micron Technology, Inc. Memory protocol with command priority
US10635613B2 (en) 2017-04-11 2020-04-28 Micron Technology, Inc. Transaction identification
US20180373653A1 (en) * 2017-06-21 2018-12-27 Hewlett Packard Enterprise Development Lp Commitment of acknowledged data in response to request to commit
DE102017008186B4 (de) * 2017-08-31 2022-12-15 WAGO Verwaltungsgesellschaft mit beschränkter Haftung Master eines Bussystems
KR20190032809A (ko) * 2017-09-20 2019-03-28 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR102262209B1 (ko) * 2018-02-09 2021-06-09 한양대학교 산학협력단 더미 입출력 요청을 이용한 배리어 명령 전달 방법 및 그 장치
US10764455B2 (en) * 2018-12-31 2020-09-01 Kyocera Document Solutions Inc. Memory control method, memory control apparatus, and image forming method that uses memory control method
US10956166B2 (en) * 2019-03-08 2021-03-23 Arm Limited Instruction ordering
US11093244B2 (en) * 2019-08-28 2021-08-17 Micron Technology, Inc. Command delay
CN112395011B (zh) * 2020-11-24 2022-11-29 海宁奕斯伟集成电路设计有限公司 命令响应信息的返回方法、返回控制装置和电子设备

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05151171A (ja) 1991-11-29 1993-06-18 Fuji Facom Corp マルチプロセツサシステムにおけるプロセツサ結合方式
JP2556268B2 (ja) 1993-07-20 1996-11-20 日本電気株式会社 プログラムダウンロード方式
US6272600B1 (en) 1996-11-15 2001-08-07 Hyundai Electronics America Memory request reordering in a data processing system
US6510474B1 (en) * 1998-11-16 2003-01-21 Infineon Technologies Ag Methods and apparatus for re-reordering command and data packets in order to restore an original order of out-of-order memory requests
US6453370B1 (en) * 1998-11-16 2002-09-17 Infineion Technologies Ag Using of bank tag registers to avoid a background operation collision in memory systems
US6748493B1 (en) 1998-11-30 2004-06-08 International Business Machines Corporation Method and apparatus for managing memory operations in a data processing system using a store buffer
US6477610B1 (en) * 2000-02-04 2002-11-05 International Business Machines Corporation Reordering responses on a data bus based on size of response
US6820181B2 (en) * 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US7188219B2 (en) * 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US8060670B2 (en) * 2004-03-17 2011-11-15 Super Talent Electronics, Inc. Method and systems for storing and accessing data in USB attached-SCSI (UAS) and bulk-only-transfer (BOT) based flash-memory device
DE602004012106T2 (de) * 2004-10-11 2009-02-19 Texas Instruments Inc., Dallas Multikanal-DMA mit gemeinsamem FIFO-Puffer
US7587521B2 (en) 2005-06-23 2009-09-08 Intel Corporation Mechanism for assembling memory access requests while speculatively returning data
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
US20080104352A1 (en) 2006-10-31 2008-05-01 Advanced Micro Devices, Inc. Memory system including a high-speed serial buffer
US9021482B2 (en) * 2007-05-04 2015-04-28 International Business Machines Corporation Reordering data responses using ordered indicia in a linked list
CN101802795B (zh) * 2007-09-14 2013-03-13 富士通株式会社 信息处理装置及其控制方法
JP2010027032A (ja) 2008-06-17 2010-02-04 Nec Electronics Corp Fifo装置及びfifoバッファへのデータ格納方法
JP5474327B2 (ja) * 2008-10-02 2014-04-16 ピーエスフォー ルクスコ エスエイアールエル 半導体記憶装置及びこれを備えるデータ処理システム
US8412880B2 (en) 2009-01-08 2013-04-02 Micron Technology, Inc. Memory system controller to manage wear leveling across a plurality of storage nodes
JP2010287058A (ja) 2009-06-11 2010-12-24 Canon Inc メモリシステム
US8838853B2 (en) * 2010-01-18 2014-09-16 Marvell International Ltd. Access buffer
US8458406B2 (en) * 2010-11-29 2013-06-04 Apple Inc. Multiple critical word bypassing in a memory controller
US8607003B2 (en) * 2011-07-15 2013-12-10 International Business Machines Corporation Memory access to a dual in-line memory module form factor flash memory
US8880819B2 (en) 2011-12-13 2014-11-04 Micron Technology, Inc. Memory apparatuses, computer systems and methods for ordering memory responses

Also Published As

Publication number Publication date
US8880819B2 (en) 2014-11-04
CN103999159A (zh) 2014-08-20
TW201342067A (zh) 2013-10-16
KR101709385B1 (ko) 2017-02-22
EP2791941A4 (en) 2015-03-11
KR20140102738A (ko) 2014-08-22
CN103999159B (zh) 2017-07-25
US20130151741A1 (en) 2013-06-13
US9575907B2 (en) 2017-02-21
WO2013089937A1 (en) 2013-06-20
JP2015500541A (ja) 2015-01-05
US20150052318A1 (en) 2015-02-19
EP2791941A1 (en) 2014-10-22
TWI496003B (zh) 2015-08-11

Similar Documents

Publication Publication Date Title
JP6082752B2 (ja) メモリ応答の順序付けのためのメモリ装置、コンピュータシステムおよび方法
US7337293B2 (en) Streaming reads for early processing in a cascaded memory subsystem with buffered memory devices
CN100481043C (zh) 用于处理输入/输出命令的方法、系统和程序
US7934070B2 (en) Streaming reads for early processing in a cascaded memory subsystem with buffered memory devices
KR101883155B1 (ko) 메모리 콘트롤러와 이 메모리 콘트롤러의 작동방법
JP4861339B2 (ja) スイッチマトリックス経由のデータ転送を改善するフロー制御方法
JP2009508247A (ja) バス調停に関する方法及びシステム
JPS6218949B2 (ja)
CN106021141B (zh) 半导体设备
US8533377B2 (en) System and method for allocating transaction ID in a system with a plurality of processing modules
US20080235707A1 (en) Data processing apparatus and method for performing multi-cycle arbitration
US9798492B2 (en) Semiconductor device including a plurality of function blocks
US10095643B2 (en) Direct memory access control device for at least one computing unit having a working memory
CN106815176B (zh) 用于经由柔性寄存器访问总线传输访问请求的系统和方法
CN1705929B (zh) 用于将数据返回给通过总线接收的读请求的方法和系统
JP2014170361A (ja) 情報処理装置、バス分割方法、及びバス分割プログラム
JP5383159B2 (ja) バス中継装置及び制御方法
JP4193746B2 (ja) マトリックス状バス接続システム
US11301410B1 (en) Tags for request packets on a network communication link
KR101414453B1 (ko) 메모리 제어장치 및 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
JPWO2018003244A1 (ja) メモリコントローラ、メモリシステムおよび情報処理システム
JP4593220B2 (ja) メモリアクセス制御方式と方法、及び共有メモリアクセス制御方式と方法
CN115114215A (zh) 高速外围组件互连接口装置及其操作方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150526

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150527

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150727

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150908

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170123

R150 Certificate of patent or registration of utility model

Ref document number: 6082752

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250