JP2012522311A - マージドメモリコマンドプロトコルをサポートするメモリシステム、コントローラ、およびデバイス - Google Patents
マージドメモリコマンドプロトコルをサポートするメモリシステム、コントローラ、およびデバイス Download PDFInfo
- Publication number
- JP2012522311A JP2012522311A JP2012503467A JP2012503467A JP2012522311A JP 2012522311 A JP2012522311 A JP 2012522311A JP 2012503467 A JP2012503467 A JP 2012503467A JP 2012503467 A JP2012503467 A JP 2012503467A JP 2012522311 A JP2012522311 A JP 2012522311A
- Authority
- JP
- Japan
- Prior art keywords
- command
- memory
- memory device
- bank
- access
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
Abstract
【課題】 メモリコマンドの伝達に用いる「要求ピン」の数をあまり増やすことなく、コマンド帯域幅を増やすことである。
【解決手段】 本実施形態は、独立した起動コマンドおよびプリチャージコマンドを含む要求をメモリコントローラからメモリデバイスに送信するように構成されたメモリシステムを提供する。起動コマンドは、起動コマンドの対象となる第1の行を識別する行アドレスに関連付けられる。起動コマンドに対する応答として、本システムは、メモリデバイスの第1のバンクの第1の行を起動する。同様に、プリチャージコマンドに対する応答として、本システムは、メモリデバイスの第2のバンクをプリチャージする。
【選択図】 図2
【解決手段】 本実施形態は、独立した起動コマンドおよびプリチャージコマンドを含む要求をメモリコントローラからメモリデバイスに送信するように構成されたメモリシステムを提供する。起動コマンドは、起動コマンドの対象となる第1の行を識別する行アドレスに関連付けられる。起動コマンドに対する応答として、本システムは、メモリデバイスの第1のバンクの第1の行を起動する。同様に、プリチャージコマンドに対する応答として、本システムは、メモリデバイスの第2のバンクをプリチャージする。
【選択図】 図2
Description
本実施形態は、メモリコントローラデバイスと1つ以上の集積回路メモリデバイスとの間で通信を行うシステムおよび技術に関する。
関連技術
プロセッサのクロックが高速化するにつれて、メモリシステムがデータを提供する際の転送レートも相応の高速化が、より強く求められるようになっている。用途によっては、これらのデータ転送レートの高速化に、対応する各データ転送の粒度(サイズ)の増加が追いついていなかった。結果として、データ転送レートの高速化は、「コマンド帯域幅」(メモリシステムにおいてコマンドが発行される際のレート)の増加につながっていた。メモリコントローラに対するピン配列およびその他の制約のため、このコマンド帯域幅を増やす際には、メモリコマンドの伝達に用いる「要求ピン」の数をあまり増やさないことが望ましい。
プロセッサのクロックが高速化するにつれて、メモリシステムがデータを提供する際の転送レートも相応の高速化が、より強く求められるようになっている。用途によっては、これらのデータ転送レートの高速化に、対応する各データ転送の粒度(サイズ)の増加が追いついていなかった。結果として、データ転送レートの高速化は、「コマンド帯域幅」(メモリシステムにおいてコマンドが発行される際のレート)の増加につながっていた。メモリコントローラに対するピン配列およびその他の制約のため、このコマンド帯域幅を増やす際には、メモリコマンドの伝達に用いる「要求ピン」の数をあまり増やさないことが望ましい。
詳細な説明
本開示の実施形態では、特に、メモリコマンドをメモリコントローラからメモリデバイスに伝達する、効率的な技術を利用する。本開示の実施形態では、それぞれが異なるスレッドに関連付けられた、独立したメモリコマンド機能性を単一コマンド(すなわち「要求」)としてマージする通信プロトコルを用いることにより、メモリシステムのコマンド帯域幅を増やすことが可能である。この技術を用いることにより、別々の独立したメモリアクセス要求に関連付けられた、複数の独立したメモリ要求機能が、単一のメモリコマンドによって実行される。たとえば、図1を参照すると、メモリシステム100において、メモリコントローラ102が、典型的には、いくつかの要求線RQA[1:0] 106およびRQB[1:0] 108を通して、(メモリデバイス104を含む)一連のメモリデバイスと通信する。これらの要求線は、複数のメモリコマンドを収容した要求パケットをメモリコントローラ102からメモリデバイス104に伝達する(本開示および添付の請求項では、用語の「コマンド」と「要求」を区別なく用いている。)したがって、「要求パケット」という用語は、「コマンドパケット」という用語と等価である)。「要求」も「コマンド」と呼んでよい。一実施形態では、「要求」がパケットフォーマットに含まれる。
本開示の実施形態では、特に、メモリコマンドをメモリコントローラからメモリデバイスに伝達する、効率的な技術を利用する。本開示の実施形態では、それぞれが異なるスレッドに関連付けられた、独立したメモリコマンド機能性を単一コマンド(すなわち「要求」)としてマージする通信プロトコルを用いることにより、メモリシステムのコマンド帯域幅を増やすことが可能である。この技術を用いることにより、別々の独立したメモリアクセス要求に関連付けられた、複数の独立したメモリ要求機能が、単一のメモリコマンドによって実行される。たとえば、図1を参照すると、メモリシステム100において、メモリコントローラ102が、典型的には、いくつかの要求線RQA[1:0] 106およびRQB[1:0] 108を通して、(メモリデバイス104を含む)一連のメモリデバイスと通信する。これらの要求線は、複数のメモリコマンドを収容した要求パケットをメモリコントローラ102からメモリデバイス104に伝達する(本開示および添付の請求項では、用語の「コマンド」と「要求」を区別なく用いている。)したがって、「要求パケット」という用語は、「コマンドパケット」という用語と等価である)。「要求」も「コマンド」と呼んでよい。一実施形態では、「要求」がパケットフォーマットに含まれる。
図1では、メモリコントローラ102はさらに、いくつかのデータ線DQA[7:0] 110、DQB[7:0] 112、DQC[7:0] 114、およびDQD[7:0] 116を通してメモリデバイス104と結合されている。書き込み動作中は、これらのデータ線は、データをメモリコントローラ102からメモリデバイス104に転送する。逆に、読み出し動作中は、これらの同じデータ線が、データを反対方向に、すなわち、メモリデバイス104からメモリコントローラ102に転送する。
本開示の実施形態では、異なるスレッドに関連付けられた複数のメモリコマンドを同じメモリ要求にマージすることにより、コマンド帯域幅を増やすことが可能である。ダイナミックランダムアクセスに基づくメモリシステムでは、メモリアクセスが開始されるのは、メモリコントローラが、「起動コマンド」を収容した要求をメモリデバイスに送信したときである。起動コマンドを受けて、メモリデバイスは、メモリデバイスの特定バンク内の特定行を開く。次に、メモリコントローラは、列アクセスコマンドを収容した1つ以上の要求をメモリデバイスに送信する。これらの列アクセスコマンドは、開かれた行に対する読み出しおよび/または書き込み動作を実行する。最後に、メモリコントローラは、プリチャージコマンドを含んだ要求をメモリデバイスに送信する。このプリチャージコマンドは、開いている行に関連付けられたメモリバンクのセンス増幅器をアイドル状態に戻すことにより、開いている行を閉じる。
図2は、それぞれが複数の独立したメモリ要求機能を実行する複数のメモリコマンド構造体を含むメモリプロトコルの一実施形態を示しており、これら複数のメモリ要求機能は、別々の独立したメモリアクセス要求(すなわち、異なるスレッド)に関連付けられている。たとえば、図2は、単一要求212が、それぞれが異なるスレッドに関連付けられた、独立した起動コマンド214およびプリチャージコマンド216を含むことが可能である様子を示している。一実施形態では、起動コマンド214は、バンクアドレス(たとえば、3ビット)および行アドレス(たとえば、11ビット)の両方を含むことが可能である。一方、プリチャージコマンド216は、バンクアドレス(3ビット)を指定するだけでよい。したがって、長いほうの起動コマンド214と、短いほうのプリチャージコマンド216とをマージして、単一要求212にすることが可能である。
同様に、単一要求218が、おそらくは異なるスレッドに関連付けられる2つの独立した列アクセスコマンド220および222を含むことが可能である。これら2つの列アクセスコマンド220および222は、同じバンクアドレスを共有している場合には、容易にマージ可能である。たとえば、第1の列アクセスコマンド220は、バンクアドレス(3ビット)および列アドレス(6ビット)の両方を含むことが可能であり、第2の列アクセスコマンド222は、列アドレス(6ビット)のみを含むことが可能である。
図3のフローチャートは、独立した起動コマンドおよびプリチャージコマンドを含む要求の一例が一実施形態に従って処理される様子を示す。動作中は、メモリデバイス104は、独立した起動コマンドおよびプリチャージコマンドを含む要求212を、メモリコントローラ102から受信する(ステップ302)。起動コマンドに対する応答として、メモリデバイスの第1のバンクの第1の行が起動される(すなわち、センスされる)(ステップ304)。次に、プリチャージコマンドに対する応答として、メモリデバイスの(既に起動済みの)第2のバンクがプリチャージされる(ステップ306)。
プリチャージコマンドを、関連付けられた列アクセスコマンドとは独立に指定できるようにすることにより、将来の要求によって、将来のある時点において、関連付けられたプリチャージ動作が行われることが指定される。これにより、本システムは、可変長の時間にわたって行を開いたままにすることが可能であり、これによって、本システムは、同じバンク内の別の行へのアクセスが実際に必要になる、可能な限り遅い時点で行のプリチャージを行うことが可能になる。これにより、関連付けられたプリチャージ動作が行われる前に、同じ行に対して多数の列アクセスコマンドを実行することが可能になる。このプロトコルは、追加のプリチャージ動作を独立に指定すること(ならびに、おそらくは、追加の起動動作を指定すること)を不要にすることが可能であり、これは、電力の節約ならびにコマンド帯域幅の温存につながる。本明細書に記載のメモリプロトコルはまた、独立した、プリチャージおよび/または列アクセスのコマンドまたは要求とのフレキシブルな混合が可能であり、これによって、レガシーシステムへの組み込みや、シングルスレッドコマンド/要求を必要とする異種メモリコントローラとの統合をフレキシブルに行うことが可能になる。
図4のフローチャートは、複数の列アクセスコマンドを含む要求の一例が一実施形態に従って処理される様子を示す。動作中は、メモリデバイス104が、第1の列アクセスコマンド220および第2の列アクセスコマンド222を含む要求218を、メモリコントローラ102から受信する(ステップ402)。第1の列アクセスコマンド220に対する応答として、メモリデバイス104は、第1の列アクセスを伴う第1のメモリ動作を実行する(ステップ404)。次に、第2の列アクセスコマンド222に対する応答として、メモリデバイス104は、第2の列アクセスを伴う第2のメモリ動作を実行する(ステップ406)。
メモリデバイス
図5は、一実施形態によるマージドメモリコマンド(merged memory commands)をサポートする一例示的メモリデバイス500を示す。図5では、メモリデバイスは、並列に動作する4つのメモリバンクグループ(または「クワッド」)(すなわち、バンククワッドA 536、バンククワッドB 538、バンククワッドC 540、およびバンククワッドD 542)を備え、各バンクは、それぞれ固有の、行アクセスおよび列アクセスの独立ストリームを受信する。
図5は、一実施形態によるマージドメモリコマンド(merged memory commands)をサポートする一例示的メモリデバイス500を示す。図5では、メモリデバイスは、並列に動作する4つのメモリバンクグループ(または「クワッド」)(すなわち、バンククワッドA 536、バンククワッドB 538、バンククワッドC 540、およびバンククワッドD 542)を備え、各バンクは、それぞれ固有の、行アクセスおよび列アクセスの独立ストリームを受信する。
各バンククワッドは、それぞれ固有のデータ線セットを介してデータを伝達する。より具体的には、バンククワッドA 536は、データ線DQA[7:0] 110およびDQAN[7:0] 510からなる8個の差動ペアを介してデータを伝達し、バンククワッドB 538は、データ線DQB[7:0] 112およびDQBN[7:0] 512を介してデータを伝達し、バンククワッドC 540は、データ線DQC[7:0] 114およびDQCN[7:0] 514を介してデータを伝達し、バンククワッドD 542は、データ線DQD[7:0] 116およびDQDN[7:0] 516を介してデータを伝達する。したがって、本システムは、メモリデバイスの4個のバンククワッドに関連付けられた、4個の独立したデータ線セットを含んでいる。図5に示したように、32バイトブロックのデータが、トランシーバ520および522を介してバンククワッドとそれぞれに関連付けられたデータ線との間を転送される際に、(マルチプレクサ528および532によって)多重化され、(デマルチプレクサ526および530によって)多重化解除される。
これら4つのメモリバンククワッドは、2つの要求線セットを介してコマンドを受信する。これら2つの要求線セットは、デマルチプレクサ534を通ってフィードされる、第1の要求線セットRQA[1:0] 106およびRQAN[1:0] 506、ならびにデマルチプレクサ536を通ってフィードされる、第2の要求線セットRQB[1:0] 108およびRQBN[1:0] 508である。第1の要求線セットRQA[1:0] 106およびRQAN[1:0] 506は、バンククワッドA 536およびバンククワッドC 540の両方にメモリコマンドを与え、第2の要求線セットRQB[1:0] 108およびRQBN[1:0] 508は、バンククワッドB 538およびバンククワッドD 542の両方にメモリコマンドを与える。一実施形態では、この、要求線の共用は、上述のように2つのコマンドをマージして各要求にすることにより容易になる。また、これらのコマンドは、バンククワッドA 536およびバンククワッドC 540をプリチャージするプリチャージ回路550と、バンククワッドB 538およびバンククワッドD 542をプリチャージするプリチャージ回路552とにフィードされる。いくつかの実施形態では、このプリチャージ回路550および552は、プリチャージコマンドの遅延フィールドを評価して、関連付けられたプリチャージ動作を遅延させるかどうかを決定する(なお、このプリチャージコマンドはコマンドレジスタに格納可能である)。書き込みコマンドは、書き込みマスクレジスタ544および546にフィードされる書き込みマスクビットを(書き込みマスクフィールドに)含んでいる。これらの書き込みマスクビットは、関連付けられた書き込み動作の間に書き込みを行わないデータバイトを識別する。
図1を参照すると、本開示の実施形態では、メモリコントローラ102は、メモリコマンドが、有効な順序で、かつ、メモリデバイス内の無競合動作を確実に命令する順序で発行されるように、要求をスケジュールする。具体的には、メモリコントローラ102は、所与のバンクのある行がプリチャージされてから、同じバンクの別の行が開かれるように、コマンドをスケジュールしなければならない。
さらに、記載の技術は、図5に示されたメモリデバイスの特定の実装には限定されない。具体的には、記載の技術は、データバンク、コマンドチャネル、およびデータチャネルの数が異なるメモリデバイスにも適用可能である。さらに、記載の技術は、様々なタイプのメモリデバイスに採用されているプロトコルのような、様々なプロトコルを用いるメモリデバイスに適用可能であり、様々なタイプのメモリデバイスとして、たとえば、XDR SDRAM、XDR2 SDRAM、ダブルデータレート(DDR)シンクロナスダイナミックランダムアクセスメモリ(SDRAM)、DDR2 SDRAM、DDR3 SDRAM、およびシングルデータレートSDRAM、ならびに次世代SDRAM、さらには不揮発性メモリ(NANDフラッシュやNORフラッシュなど)がある。
たとえば、一実施形態では、ダブルデータレートSDRAMデバイスは、いくつかの信号線、たとえば、行アドレスストローブ線(RAS)、列アクセスストローブ線(CAS)、書き込みイネーブル信号線(WE)、および他の信号を介して受信されるコマンドをデコードするコマンドインタフェースを含んでいる。これらの(コマンド)信号線は、クロック信号(CK)の立ち上がりエッジに同期してサンプルされる。上述のタイプのコマンドをDDR SDRAMで受信およびデコードすることにより、本明細書に記載のマージドメモリアクセス機能を実行することが可能である。
読み出しトランザクション
図6は、一実施形態による、インタリーブされた読み出しトランザクションのタイミング図を示す。図6に示すように、要求線RQA[1:0]およびRQAN[1:0]からなるコマンドチャネル602が、コマンドを搬送してメモリデバイスのバンククワッドAにアクセスし、バンククワッドAは、応答として、データチャネル608(データ線DQA[7:0]およびDQAN[7:0])でデータを伝達する。コマンドチャネル602はさらに、コマンドを搬送してメモリデバイスのバンククワッドCにアクセスし、バンククワッドCは、応答として、データチャネル612(データ線DQC[7:0]およびDQCN[7:0])でデータを伝達する。同様に、要求線RQB[1:0]およびRQBN[1:0]からなるコマンドチャネル604が、メモリデバイスのバンククワッドBにコマンドを搬送し、バンククワッドBは、応答として、データチャネル610(データ線DQB[7:0]およびDQBN[7:0])でデータを伝達する。コマンドチャネル604はさらに、メモリデバイスのバンククワッドBにコマンドを搬送し、バンククワッドBは、データチャネル614(データ線DQD[7:0]およびDQDN[7:0])でデータを伝達する。
図6は、一実施形態による、インタリーブされた読み出しトランザクションのタイミング図を示す。図6に示すように、要求線RQA[1:0]およびRQAN[1:0]からなるコマンドチャネル602が、コマンドを搬送してメモリデバイスのバンククワッドAにアクセスし、バンククワッドAは、応答として、データチャネル608(データ線DQA[7:0]およびDQAN[7:0])でデータを伝達する。コマンドチャネル602はさらに、コマンドを搬送してメモリデバイスのバンククワッドCにアクセスし、バンククワッドCは、応答として、データチャネル612(データ線DQC[7:0]およびDQCN[7:0])でデータを伝達する。同様に、要求線RQB[1:0]およびRQBN[1:0]からなるコマンドチャネル604が、メモリデバイスのバンククワッドBにコマンドを搬送し、バンククワッドBは、応答として、データチャネル610(データ線DQB[7:0]およびDQBN[7:0])でデータを伝達する。コマンドチャネル604はさらに、メモリデバイスのバンククワッドBにコマンドを搬送し、バンククワッドBは、データチャネル614(データ線DQD[7:0]およびDQDN[7:0])でデータを伝達する。
たとえば、図6において、太線で目立たせたボックスのメモリコマンドからなる読み出しトランザクションを考える。まず、読み出しトランザクションの対象となる行を開く起動コマンドACAr0が、メモリコントローラ102からメモリデバイス104に送信される。次に、時間間隔tRCD−Rを経て、列アクセス読み出しコマンドRDAr12がメモリデバイス104に送信される(上述のように、この列アクセス読み出しコマンドRDAr12は、おそらくは異なるスレッドに関連付けられた、2つの独立した列アクセスコマンドからなることが可能であり、これら2つの列アクセスコマンドは同じバンクアドレスを共用することが可能である)。時間間隔tCACを経て、読み出しデータQAr1およびQAr2が、データチャネル608で、メモリデバイス104からメモリコントローラ102に返される。
最後に、プリチャージコマンドPRAr5がメモリデバイス104に送信されて、関連付けられたメモリバンクのセンス増幅器をアイドル状態に戻すことにより、開いていた行が閉じられる。図6に示したように、このプリチャージ動作は、遅延tPRE−DLYを経て行われる(上述のように、この遅延は、プリチャージコマンドの遅延フィールドで指定可能である)。
さらに、このプリチャージコマンドPRAr5は、別のメモリ動作に関連付けられた、独立した起動コマンドと同じパケットで送信可能である。たとえば、図6を参照すると、プリチャージコマンドPRAr5は、独立した起動コマンドACAx0と同時に(同じパケットで)送信される。
また、上述の読み出しトランザクションは、図6の破線のボックスのメモリコマンドからなる第2の読み出しトランザクションと同時に行われる。この第2の読み出しトランザクションのコマンドも、コマンドチャネル602で伝達される。しかしながら、これらのコマンドは別のメモリバンククワッド、すなわち、バンククワッドCに向けられており、読み出しデータは、別のデータチャネル、すなわち、データチャネル612で返される。
書き込みトランザクション
図7は、一実施形態による、インタリーブされた書き込みトランザクションのタイミング図を示す。図7において、太線で目立たせたボックスのメモリコマンドからなる書き込みトランザクションを考える。まず、書き込みトランザクションの対象となる行を開く起動コマンドACAr0が、メモリコントローラ102からメモリデバイス104に送信される。次に、時間間隔tRCD−Wを経て、列アクセス書き込みコマンドWRAr12がメモリデバイス104に送信される(この列アクセス書き込みコマンドWRAr12は、おそらくは異なるスレッドに関連付けられた、2つの独立した列アクセスコマンドからなることが可能であり、これら2つの列アクセスコマンドは同じバンクアドレスを共用することが可能である)。時間間隔tCWDを経て、書き込みデータDAr1およびDAr2が、データチャネル608で、メモリコントローラ102からメモリデバイス104に返される。
図7は、一実施形態による、インタリーブされた書き込みトランザクションのタイミング図を示す。図7において、太線で目立たせたボックスのメモリコマンドからなる書き込みトランザクションを考える。まず、書き込みトランザクションの対象となる行を開く起動コマンドACAr0が、メモリコントローラ102からメモリデバイス104に送信される。次に、時間間隔tRCD−Wを経て、列アクセス書き込みコマンドWRAr12がメモリデバイス104に送信される(この列アクセス書き込みコマンドWRAr12は、おそらくは異なるスレッドに関連付けられた、2つの独立した列アクセスコマンドからなることが可能であり、これら2つの列アクセスコマンドは同じバンクアドレスを共用することが可能である)。時間間隔tCWDを経て、書き込みデータDAr1およびDAr2が、データチャネル608で、メモリコントローラ102からメモリデバイス104に返される。
最後に、書き込みコマンドの完了からしばらく経ってから、プリチャージコマンドPRAr5がメモリデバイス104に送信されて、開いていた行が閉じられる。このプリチャージコマンドPRAr5は、別のメモリ動作に関連付けられた、独立した起動コマンドと同じパケットで送信可能である。たとえば、図7を参照すると、プリチャージコマンドPRAr5は、独立した起動コマンドACAx0と同時に送信される。
また、上述の書き込みトランザクションは、図7の破線のボックスのメモリコマンドからなる第2の書き込みトランザクションと同時に行われる。この第2の書き込みトランザクションのコマンドも、コマンドチャネル602で伝達される。しかしながら、これらのコマンドは別のバンククワッド、すなわち、バンククワッドCに向けられており、書き込みデータは、別のデータチャネル、すなわち、データチャネル612で送信される。
メモリシステム
上述の実施形態は、一般に、図8に示すメモリシステムのようなメモリシステムにおいて使用可能である。このメモリシステムは、少なくとも1つのメモリコントローラ102と、1つ以上のメモリデバイス104とを含んでおり、これらは、1つ以上のメモリモジュール上に一緒に構成して配置することが可能である。図8に示したメモリシステム800は、1つのメモリコントローラ102および3つのメモリデバイス104を有しているが、メモリコントローラがこれより多く、メモリデバイス104がこれより少ないか多い実施形態も可能である。さらに、メモリシステム800ではメモリコントローラ102が複数のメモリデバイス104と結合されているが、2つ以上のメモリコントローラが互いに結合されている実施形態も可能である。なお、メモリコントローラ102および1つ以上のメモリデバイス104は、同じ集積回路に実装されてもよく、別々の集積回路に実装されてもよい。また、これらの1つ以上の集積回路をチップパッケージに含めてもよい。
上述の実施形態は、一般に、図8に示すメモリシステムのようなメモリシステムにおいて使用可能である。このメモリシステムは、少なくとも1つのメモリコントローラ102と、1つ以上のメモリデバイス104とを含んでおり、これらは、1つ以上のメモリモジュール上に一緒に構成して配置することが可能である。図8に示したメモリシステム800は、1つのメモリコントローラ102および3つのメモリデバイス104を有しているが、メモリコントローラがこれより多く、メモリデバイス104がこれより少ないか多い実施形態も可能である。さらに、メモリシステム800ではメモリコントローラ102が複数のメモリデバイス104と結合されているが、2つ以上のメモリコントローラが互いに結合されている実施形態も可能である。なお、メモリコントローラ102および1つ以上のメモリデバイス104は、同じ集積回路に実装されてもよく、別々の集積回路に実装されてもよい。また、これらの1つ以上の集積回路をチップパッケージに含めてもよい。
実施形態によっては、メモリコントローラ102は、(DRAMメモリコントローラなどの)ローカルメモリコントローラであり、かつ/または、(マイクロプロセッサ内に実装可能な)システムメモリコントローラである。
メモリコントローラ102は、入出力(I/O)インタフェース818−1および制御ロジック820−1を含むことが可能である。図1〜6を参照して説明したように、制御ロジック820−1を用いることにより、(たとえば、変調符号を用いて)データをインタフェース818−1から1つ以上のメモリデバイス104に送信するためにエンコードすること、および/または、1つ以上のメモリデバイス104からインタフェース818−1で受信したデータをデコードすることが可能である。
実施形態によっては、1つ以上のメモリデバイス104が、制御ロジック820と、少なくとも1つのインタフェース818とを含む。しかしながら、実施形態によっては、メモリデバイス104のいくつかは、制御ロジック820を含まなくてもよい。さらに、メモリコントローラ102および/または1つ以上のメモリデバイス104が2つ以上のインタフェース818を含んでもよく、これらのインタフェースは、1つ以上の制御ロジック820の回路を共用してもよい。なお、実施形態によっては、2つ以上のメモリデバイス104(たとえば、メモリデバイス104−1および104−2)が複数のメモリバンクグループを含んでもよい。
メモリコントローラ102およびメモリデバイス104は、チャネル822内の1つ以上のリンク814によって結合されている。メモリシステム800では3つのリンク814を示しているが、リンク814がこれより少ないか多い実施形態も可能である。これらのリンクは、有線、無線、および/または光通信などであってよい。さらに、リンク814は、メモリコントローラ102と1つ以上のメモリデバイス104との間の双方向通信および/または単方向通信に使用可能である。たとえば、メモリコントローラ102と所与のメモリデバイスとの間の双方向通信は、同時(全二重通信)であってよい。代替として、メモリコントローラ102は、(コマンドを含むデータパケットのような)情報を所与のメモリデバイスに送信することが可能であり、その所与のメモリデバイスは、その後、要求されたデータをメモリコントローラ102に提供することが可能であり、たとえば、1つ以上のリンク814における通信方向が交番してよい(半二重通信であってよい)。なお、1つ以上のリンク814ならびに対応する送信回路および/または受信回路は、(たとえば、制御ロジック820の回路の1つによって)双方向通信および/または単方向通信に関して動的に構成することが可能である。
データおよび/またはコマンド(データ要求コマンドなど)に対応する信号は、1つ以上のリンク814において、非同期に、または代替として、1つ以上のタイミング信号の一方または両方のエッジをタイミング基準として伝達可能である。これらのタイミング信号は、1つ以上のクロック信号に基づいて生成可能であり、(たとえば、フェーズロックループおよび周波数基準によって与えられる1つ以上の基準信号を用いて)オンチップで生成可能、かつ/またはオフチップで生成可能、かつ/または伝達された信号から復元可能である。
実施形態によっては、独立したコマンドリンクを用いて(たとえば、コマンドを伝達する、リンク814のサブセットを用いて)コマンドをメモリコントローラ102から1つ以上のメモリデバイス104に伝達する。この独立したコマンドリンクは、無線、光、および/または有線であってよい。しかしながら、実施形態によっては、チャネル822の同じ部分(すなわち、同じリンク814)を用いて、コマンドをデータとして伝達する。さらに、コマンドの伝達は、メモリコントローラ102と1つ以上のメモリデバイス104との間のデータの伝達に関連付けられたデータレートより低いデータレートを用いてよく、かつ/または、データの伝達に用いる搬送周波数と異なる搬送周波数を用いてよく、かつ/または、データの伝達に用いる変調方式と異なる変調方式を用いてよい。
各実施形態についてのここまでの記載は、例示および説明のみを目的としたものであった。これらは、網羅的であることを意図しておらず、本明細書を開示の形態に限定することも意図していない。したがって、当業者であれば、様々な修正および変形が自明であろう。さらに、上述の開示は、本明細書を限定することを意図するものではない。本明細書の範囲は、添付の請求項によって定義される。
Claims (29)
- 半導体メモリデバイスの動作方法であって、
前記メモリデバイスのインタフェースにおいて、独立した起動コマンドおよびプリチャージコマンドを含む要求をメモリコントローラから受信するステップであって、前記起動コマンドは、前記起動コマンドの対象となる第1の行を識別する行アドレスに関連付けられる、前記受信するステップと、
前記起動コマンドに対する応答として、前記メモリデバイスの第1のバンクの前記第1の行を起動するステップと、
前記プリチャージコマンドに対する応答として、前記メモリデバイスの第2のバンクをプリチャージするステップと、
を含む方法。 - 前記起動コマンドは、前記起動コマンドの対象となる前記第1のバンクを識別する第1のバンクアドレスを含む、請求項1に記載の方法。
- 前記プリチャージコマンドは、前記プリチャージコマンドの対象となる前記第2のバンクを識別する第2のバンクアドレスを含む、請求項1に記載の方法。
- メモリデバイスにおいて、第1の列アクセスコマンドおよび第2の列アクセスコマンドを含む第2の要求を、メモリコントローラから受信するステップと、
前記第1の列アクセスコマンドに対する応答として、前記メモリデバイスにおいて、第1の列アクセスを伴う第1のメモリ動作を実行するステップと、
前記第2の列アクセスコマンドに対する応答として、前記メモリデバイスにおいて、第2の列アクセスを伴う第2のメモリ動作を実行するステップと、
をさらに含む、請求項1に記載の方法。 - 前記第1および第2の列アクセスコマンドは、
2つの読み出しコマンド、
2つの書き込みコマンド、または
読み出しコマンドおよび書き込みコマンド
を含む、請求項4に記載の方法。 - 前記第2の要求は、
前記第1の列アクセスコマンドの対象となる第1の列アドレスと、
前記第2の列アクセスコマンドの対象となる第2の列アドレスと、
前記第1および第2の列アクセスコマンドによって共用されるバンクアドレスと、
を含む、請求項5に記載の方法。 - 前記第1および第2の列アクセスコマンドが両方とも書き込みコマンドである場合、前記第2の要求はさらに、前記関連付けられた書き込み動作の間に書き込みを行わないデータバイトを識別する共用書き込みマスクフィールドを含む、請求項5に記載の方法。
- 前記第1および第2の列アクセスは連続して実行される、請求項4に記載の方法。
- 前記プリチャージコマンドに関連付けられた遅延フィールドが設定された場合は、前記プリチャージコマンドの開始を遅延させるステップをさらに含む、請求項1に記載の方法。
- 前記メモリコントローラにおいて、対象行に対するプリチャージ動作のスケジューリングを、前記対象行に対する先行する列アクセスのスケジューリングと独立して行うステップをさらに含む、請求項1に記載の方法。
- 前記要求を受信するステップが、パケットプロトコルを用いて前記要求を受信することをさらに含むように、前記要求は、前記パケットプロトコルに含まれる、請求項1に記載の方法。
- 前記プリチャージコマンドは、前記メモリデバイスの第1のメモリアクセスに対応し、前記起動コマンドは、前記メモリデバイスの第2のメモリアクセスに対応し、前記第2のメモリアクセスは、前記第1のメモリアクセスの後に行われる、請求項1に記載の方法。
- メモリコントローラデバイスの動作方法であって、
独立した起動コマンドおよびプリチャージコマンドを含む要求を、前記メモリコントローラからメモリデバイスに送信するステップを含み、
前記起動コマンドは、前記起動コマンドの対象となる第1の行を識別する行アドレスに関連付けられ、
前記起動コマンドを受けて、前記メモリデバイスは、前記メモリデバイスの第1のバンク内の第1の行を起動し、
前記プリチャージコマンドを受けて、前記メモリデバイスは、前記メモリデバイスの第2のバンクをプリチャージする、
方法。 - メモリデバイスであって、
複数のメモリバンクと、
独立した起動コマンドおよびプリチャージコマンドを含む要求を受信するように構成された入力と、
を備え、
前記起動コマンドは、前記起動コマンドの対象となる第1の行を識別する行アドレスに関連付けられ、
前記起動コマンドに対する応答として、前記複数のメモリバンクの第1のバンク内の前記第1の行を起動するように構成され、
さらに、前記プリチャージコマンドに対する応答として、前記複数のメモリバンクの第2のバンクをプリチャージするように構成されたプリチャージ機構を備える、
メモリデバイス。 - 前記起動コマンドは、前記起動コマンドの対象となる前記第1のバンクを識別する第1のバンクアドレスを含む、請求項14に記載のメモリデバイス。
- 前記プリチャージコマンドは、前記プリチャージコマンドの対象となる前記第2のバンクを識別する第2のバンクアドレスを含む、請求項14に記載のメモリデバイス。
- 前記入力は、第1の列アクセスコマンドおよび第2の列アクセスコマンドを含む第2の要求を受信するように構成され、
前記第1の列アクセスコマンドに対する応答として、第1の列アクセスを伴う第1のメモリ動作を実行するように構成され、
前記第2の列アクセスコマンドに対する応答として、第2の列アクセスを伴う第2のメモリ動作を実行するように構成された、
請求項14に記載のメモリデバイス。 - 前記第1および第2の列アクセスコマンドのそれぞれは、
2つの読み出しコマンドと、
2つの書き込みコマンドと、
読み出しコマンドおよび書き込みコマンドと、
のうちの1つを含む、請求項17に記載のメモリデバイス。 - 前記第2の要求は、
前記第1の列アクセスコマンドの対象となる第1の列アドレスと、
前記第2の列アクセスコマンドの対象となる第2の列アドレスと、
前記第1および第2の列アクセスコマンドの両方に関連付けられたバンクアドレスと、
を含む、請求項17に記載のメモリデバイス。 - 前記第1および第2の列アクセスコマンドが両方とも書き込みコマンドである場合、前記第2の要求はさらに、前記関連付けられた書き込み動作の間に書き込みを行わないデータバイトを識別する共用書き込みマスクフィールドを含む、請求項19に記載のメモリデバイス。
- 前記第1の列アクセスの後に前記第2の列アクセスを行う順序で、前記第1および第2の列アクセスを実行する、請求項17に記載のメモリデバイス。
- 前記プリチャージコマンドに対する応答としてプリチャージ動作を開始する前に発生する遅延を表す値を格納するように構成されたコマンドレジスタをさらに備える、請求項14に記載のメモリデバイス。
- 前記プリチャージコマンドは、前記メモリデバイスの第1のメモリアクセスに対応し、前記起動コマンドは、前記メモリデバイスの第2のメモリアクセスに対応し、前記第2のメモリアクセスは、前記第1のメモリアクセスの後に行われる、請求項14に記載のメモリデバイス。
- 要求を受信するコマンドチャネルレシーバと、
前記コマンドチャネルレシーバに関連付けられた、複数のデータチャネルトランシーバであって、前記コマンドチャネルレシーバにおいて受信された前記要求によって指定された複数のメモリ動作のためにデータを並列転送するように構成された前記複数のデータチャネルトランシーバと、
を含む、請求項14に記載のメモリデバイス。 - 独立した起動コマンドおよびプリチャージコマンドを含む要求をメモリデバイスに送信するインタフェースを備え、
前記起動コマンドは、前記起動コマンドの対象となる第1の行を識別する行アドレスに関連付けられ、
前記起動コマンドを受けて、前記メモリデバイスは、前記メモリデバイスの第1のバンク内の前記第1の行を起動し、
前記プリチャージコマンドを受けて、前記メモリデバイスは、前記メモリデバイスの第2のバンクをプリチャージする、
メモリコントローラ。 - 対象行に対するプリチャージ動作のスケジューリングを、前記対象行に対する先行する列アクセスのスケジューリングと独立して行うように構成された、請求項25に記載のメモリコントローラ。
- 複数のメモリセルと、
プリチャージ動作およびセンス動作を実行するコマンドを受信するインタフェースと、を備え、前記プリチャージ動作は、前記複数のメモリセルのうちの先に起動された第1の行のメモリセルに対する第1のメモリアクセスに関連付けられ、前記センス動作は、前記第1のメモリアクセスに続く第2のメモリアクセスのために前記複数のメモリセルのうちの第2の行のメモリセルを起動することを対象とする、
集積回路メモリデバイス。 - 前記インタフェースは、前記複数のメモリセルの中の1つのグループのメモリセルを対象とする第1および第2の列アクセス動作を実行するコマンドを受信する、請求項27に記載の集積回路メモリデバイス。
- 前記インタフェースは、パケットプロトコルを用いてコマンドを受信し、前記1つのグループのメモリセルは、前記集積回路メモリデバイスの中の独立してアドレス指定可能なバンクである、請求項28に記載の集積回路メモリデバイス。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16465609P | 2009-03-30 | 2009-03-30 | |
US61/164,656 | 2009-03-30 | ||
PCT/US2010/026757 WO2010117535A2 (en) | 2009-03-30 | 2010-03-10 | Memory system, controller and device that supports a merged memory command protocol |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012522311A true JP2012522311A (ja) | 2012-09-20 |
Family
ID=42936778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012503467A Pending JP2012522311A (ja) | 2009-03-30 | 2010-03-10 | マージドメモリコマンドプロトコルをサポートするメモリシステム、コントローラ、およびデバイス |
Country Status (4)
Country | Link |
---|---|
US (1) | US20120011331A1 (ja) |
EP (1) | EP2414944A4 (ja) |
JP (1) | JP2012522311A (ja) |
WO (1) | WO2010117535A2 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014160538A (ja) * | 2004-11-29 | 2014-09-04 | Rambus Inc | マイクロスレッドメモリ |
JP2016517995A (ja) * | 2013-06-10 | 2016-06-20 | インテル・コーポレーション | 積層メモリデバイスにおける帯域幅の改善方法 |
JP2016541085A (ja) * | 2013-12-18 | 2016-12-28 | インテル・コーポレーション | ダイナミックランダムアクセスメモリアレイにアクセスするための技術 |
WO2018216081A1 (ja) * | 2017-05-22 | 2018-11-29 | ゼンテルジャパン株式会社 | 半導体記憶システム |
US10929023B2 (en) | 2016-06-22 | 2021-02-23 | Micron Technology, Inc. | Bank to bank data transfer |
US11514957B2 (en) | 2017-05-15 | 2022-11-29 | Micron Technology, Inc. | Bank to bank data transfer |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306917A (zh) * | 2019-07-29 | 2021-02-02 | 瑞昱半导体股份有限公司 | 存储器时分控制的方法及存储器*** |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030217223A1 (en) * | 2002-05-14 | 2003-11-20 | Infineon Technologies North America Corp. | Combined command set |
US7043599B1 (en) * | 2002-06-20 | 2006-05-09 | Rambus Inc. | Dynamic memory supporting simultaneous refresh and data-access transactions |
US6956782B2 (en) * | 2003-09-30 | 2005-10-18 | Infineon Technologies Ag | Selective bank refresh |
US7587655B2 (en) * | 2005-10-26 | 2009-09-08 | Infineon Technologies Ag | Method of transferring signals between a memory device and a memory controller |
US7673111B2 (en) * | 2005-12-23 | 2010-03-02 | Intel Corporation | Memory system with both single and consolidated commands |
US7969808B2 (en) * | 2007-07-20 | 2011-06-28 | Samsung Electronics Co., Ltd. | Memory cell structures, memory arrays, memory devices, memory controllers, and memory systems, and methods of manufacturing and operating the same |
-
2010
- 2010-03-10 US US13/141,881 patent/US20120011331A1/en not_active Abandoned
- 2010-03-10 WO PCT/US2010/026757 patent/WO2010117535A2/en active Application Filing
- 2010-03-10 EP EP10762052A patent/EP2414944A4/en not_active Withdrawn
- 2010-03-10 JP JP2012503467A patent/JP2012522311A/ja active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014160538A (ja) * | 2004-11-29 | 2014-09-04 | Rambus Inc | マイクロスレッドメモリ |
JP2016517995A (ja) * | 2013-06-10 | 2016-06-20 | インテル・コーポレーション | 積層メモリデバイスにおける帯域幅の改善方法 |
JP2016541085A (ja) * | 2013-12-18 | 2016-12-28 | インテル・コーポレーション | ダイナミックランダムアクセスメモリアレイにアクセスするための技術 |
US10929023B2 (en) | 2016-06-22 | 2021-02-23 | Micron Technology, Inc. | Bank to bank data transfer |
KR20210059803A (ko) * | 2016-06-22 | 2021-05-25 | 마이크론 테크놀로지, 인크 | 뱅크 대 뱅크 데이터 전달 |
KR102377926B1 (ko) | 2016-06-22 | 2022-03-23 | 마이크론 테크놀로지, 인크 | 뱅크 대 뱅크 데이터 전달 |
US11755206B2 (en) | 2016-06-22 | 2023-09-12 | Micron Technology, Inc. | Bank to bank data transfer |
US11514957B2 (en) | 2017-05-15 | 2022-11-29 | Micron Technology, Inc. | Bank to bank data transfer |
WO2018216081A1 (ja) * | 2017-05-22 | 2018-11-29 | ゼンテルジャパン株式会社 | 半導体記憶システム |
JPWO2018216081A1 (ja) * | 2017-05-22 | 2020-03-26 | ゼンテルジャパン株式会社 | 半導体記憶システム |
JP7130634B2 (ja) | 2017-05-22 | 2022-09-05 | ゼンテルジャパン株式会社 | 半導体記憶システム |
Also Published As
Publication number | Publication date |
---|---|
WO2010117535A3 (en) | 2011-02-03 |
EP2414944A2 (en) | 2012-02-08 |
WO2010117535A2 (en) | 2010-10-14 |
US20120011331A1 (en) | 2012-01-12 |
EP2414944A4 (en) | 2012-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6795899B2 (en) | Memory system with burst length shorter than prefetch length | |
KR100252048B1 (ko) | 반도체 메모리장치의 데이터 마스킹 회로 및 데이터 마스킹방법 | |
US8549209B2 (en) | Bridging device having a configurable virtual page size | |
JP2012522311A (ja) | マージドメモリコマンドプロトコルをサポートするメモリシステム、コントローラ、およびデバイス | |
US8406071B2 (en) | Strobe apparatus, systems, and methods | |
US7529273B2 (en) | Method and system for synchronizing communications links in a hub-based memory system | |
KR100295046B1 (ko) | 개선된싱크로너스디램과로직이하나의칩에병합된반도체장치 | |
US7555625B2 (en) | Multi-memory chip and data transfer method capable of directly transferring data between internal memory devices | |
EP1474749B1 (en) | Method and apparatus for supplementary command bus in a computer system | |
KR100846386B1 (ko) | 멀티포트 메모리 장치 | |
US20150370731A1 (en) | Memory system and method for operating the same | |
KR101157031B1 (ko) | 반도체 메모리 장치 및 이를 포함하는 반도체 시스템 | |
US9330034B2 (en) | Levelization of memory interface for communicating with multiple memory devices | |
JP2001067871A (ja) | 半導体メモリ装置及びライトデータマスキング方法 | |
KR20220114051A (ko) | 메모리 디바이스의 프레임-기반 통신을 위한 클록 고정 | |
KR20120109841A (ko) | 메모리 장치 및 이를 포함하는 메모리 시스템 | |
US7689763B2 (en) | Method and system for reducing pin count in an integrated circuit when interfacing to a memory | |
KR100438736B1 (ko) | 어드레스 라인을 이용해 데이터 쓰기를 수행하는 메모리제어 장치 | |
JP2005353060A (ja) | ハブ、メモリモジュール、及びメモリシステムとこれを通じた読み込み方法及び書き込み方法 | |
CN111630597B (zh) | 半宽度双泵数据路径 | |
CN102522113A (zh) | 一种sdram桥接电路 | |
CN108268390B (zh) | 存储器***及其操作方法 | |
KR20140029708A (ko) | 반도체 장치 및 그 동작 방법 | |
US20080229007A1 (en) | Enhancements to an XDR Memory Controller to Allow for Conversion to DDR2 |