(58)【調査した分野】(Int.Cl.,DB名)
前記システムデータバス上においてN/2ビットのデータを送信する段階は、前記複数のメモリアレイのM/2個のみからデータを送信する段階を更に含む、請求項5に記載の方法。
前記N/2ビットのデータを、前記M/2個のメモリアレイにルーティングする段階は、前記N/2ビットのデータを、M/2個のメモリアレイの1つのグループに内部でルーティングし、任意の複数のビットのデータを、M/2個のメモリアレイの別のグループにルーティングしない段階を更に含む、請求項7に記載の方法。
前記システムデータバス上において前記データを転送する段階は、複数の転送モードのうちの1つに従って実行され、第1のモードに従って、前記データを転送する段階は、前記バースト長の全ての転送期間中に前記転送帯域幅のデータ量を転送する段階を含み、第2のモードに従って、前記データを転送する段階は、前記バースト長の全ての転送期間中に前記システムデータバス上において前記利用可能な帯域幅のデータ量を転送する段階を含む、請求項1から8のいずれか一項に記載の方法。
前記バースト長を設定する段階を更に備え、前記システムデータバス上において前記データを転送する段階は、前記バースト長の設定に基づいて、前記転送帯域幅を変更する段階を含む、請求項1から9のいずれか一項に記載の方法。
前記ロジックは、前記N/2ビットのデータを、M/2個のメモリアレイの1つのグループに内部でルーティングし、任意の複数のビットのデータを、M/2個のメモリアレイの別のグループにルーティングしない、請求項19に記載のメモリデバイス。
前記ロジックは、複数の転送モードのうちの1つに従って、前記システムデータバス上に前記データを転送し、第1のモードに従って、前記ロジックは、前記バースト長の全ての転送期間中に前記転送帯域幅のデータ量を転送し、第2のモードに従って、前記ロジックは、前記バースト長の全ての転送期間中に前記システムデータバス上において前記利用可能な帯域幅のデータ量を転送する、請求項13から20のいずれか一項に記載のメモリデバイス。
前記バースト長を設定するロジックを更に備え、前記システムデータバス上において前記データを転送することは、前記バースト長の設定に基づいて、前記転送帯域幅を変更することを含む、請求項13から21のいずれか一項に記載のメモリデバイス。
【発明を実施するための形態】
【0016】
本明細書で説明されるように、メモリデバイスは、全帯域幅の実装、及び狭帯域幅の実装の両方をサポートする。メモリデバイス、及びメモリコントローラは、システムデータバス上においてインタフェースする。全帯域幅、及び狭帯域幅のシステムバスの実装の両方をサポートするメモリデバイスは、同一のメモリデバイスが、より大きい又はより小さい帯域幅を提供するシステムデータバスを有する異なる構成に用いられることを可能とする。狭帯域幅の実装をサポートすべく、メモリデバイス、及びメモリコントローラは、転送期間のバースト長分、システムデータバス上においてデータを転送し得る。転送は、全ての転送期間上の実際のデータではあるが、全帯域幅の実装において転送されるビットより少ないビットを含む。より小さい帯域幅の実装は、メモリデバイスの内部の転送容量を最大化する必要のある、より少ない帯域幅を有する。例えば、読み取り又は書き込み上でNデータビットをサポートするメモリデバイスに対して、メモリデバイス及びメモリコントローラは、全帯域幅の実装においてNデータビットを、又は部分的若しくは低帯域幅の実装においてN/2データビットを交換し得る。メモリデバイスにより用いられる帯域幅の量を制限するモードを提供することは、チャネルごとのメモリデバイスの数が増加し得、全体のシステム容量を増すことを意味する。個別の全帯域幅及び部分的帯域幅モードを提供することは、異なる実装に対して共通のメモリデバイスを用いることを可能とする。本明細書において用いられるように、Nビット又はN/2ビットの転送、又は他の指定への言及は、特段指摘がない限り、データビットの転送を指すものとして理解される。従って、読み取り又は書き込みについてNビットをサポートするデバイスは、データバス上においてNビットのデータを転送し、コマンド又は制御情報又はメタデータに対して他のビットを交換し得る。
【0017】
メモリデバイスの前の実装は、それぞれ異なるメモリの実装に対して別個のデバイス、又は別個の集積回路(I/C)ダイを有する。従って、x16の実装に対してパッケージされたメモリは、x32の実装において用いるのにパッケージされる同一容量のメモリとは異なるダイを含む。x16は、16ビット幅のデータI/O(入/出力)インタフェースを有するデバイスを指し、x32は、32ビット幅のデータI/Oインタフェースを有するデバイスを指すことが理解されよう。x16、x32、又は他としてのデバイスの指定は、データバス帯域幅を指し、異なるコネクタ又はバス上において同一のサイクル上で、他のビットのデータを交換すべくデバイスを限定しないことが理解されよう。他の共通のメモリデバイスの構成は、x8及びx4デバイスを含む。本明細書で説明されるように、メモリダイは、複数の異なる実装(例えば、x16及びx32の実装)に対するサポートを含み得る。従って、共通のメモリダイは、異なる実装に対して用いられ得る。共通のメモリダイは、異なる実装に対してパッケージされ得、及び/又は、異なる帯域幅のデータバスとインタフェースするシステムオンチップ(SOC)デザイン又はマルチチップパッケージデザインにおいて用いられ得る。
【0018】
低電力(LP)メモリデバイスは従来、モバイルデバイスにおいて用いられ、(携帯電話のような)小容量のものが消費者の期待を満たしていた。しかしながら、LPメモリデバイスの低電力への集中は、(ラップトップ及びタブレットのような)高容量の期待を有するコンピューティングデバイスに対するメモリへの関心を高めた。LPメモリは従来、x32デバイスとして利用可能で、容量を限定する。従って、LPメモリの容量を増やすことは従来、メモリデバイスをより深くスタックすることにより可能とされるのみで、それにより、負荷を増し、高速メモリアクセスに悪影響を及ぼす。一実施形態において、狭帯域幅バス又は広帯域幅バスとのインタフェースを可能とするメモリダイは、x16メモリデバイスの実装、又はx32メモリデバイスの実装のいずれかに用いられ得る。従って、LPメモリダイは、x16の実装をサポートし得るが、x32実装をなおサポートしている。x16の実装を提供することは、システムレベルで同じ数のデータピンを用いることにより容量を2倍にし得、同時にランクごとのデバイスの数を2倍にする。メモリのランクは、共に並列に連動される複数のデバイスを指し、それらがメモリアクセスオペレーション上で共に選択及びアクセスされることが理解されよう。本明細書において説明される技術は、LPメモリにおける実装に限定されないことが理解されよう。
【0019】
メモリデバイスの言及は、異なるメモリタイプに適用し得る。メモリデバイスは概して、揮発性メモリの技術を指す。揮発性メモリは、電力がデバイスに遮断される場合、その状態(及び従って、そこに格納されるデータ)が不定になるメモリである。ダイナミック揮発性メモリは、状態を維持すべく、デバイスに格納されるデータを更新することを要求する。ダイナミック揮発性メモリの一例は、DRAM(ダイナミックランダムアクセスメモリ)、又は同期DRAM(SDRAM)のようないくつかの変形を含む。本明細書で説明されるようなメモリサブシステムは、多数のメモリ技術と互換性を有し得る。そのようなものとしては、DDR3(デュアルデータレートバージョン3、2007年6月27日にJEDEC(電子機器技術評議会)によるオリジナルリリース、現在はリリース21)、DDR4(DDRバージョン4、初期の仕様はJEDECによって2012年9月に公開された)、LPDDR3(低電力DDRバージョン3、JESD209−3B、2013年8月、JEDECによる)、LPDDR4(LOW POWER DATA RATE(LPDDR)バージョン4、JESD209−4、当初はJEDECによって2014年8月に公開された)、WIO2(Wide I/O2(WideIO2)、JESD229−2、当初はJEDECによって2014年8月に公開された)及び/又はその他のもの、並びにそのような仕様の派生物又は拡張物に基づく技術等が挙げられる。
【0020】
図1は、異なる帯域幅のシステムデータバスとインタフェースするように構成され得る、メモリデバイスを有するシステムの実施形態のブロック図である。システム100は、コンピューティングデバイスにおけるメモリサブシステムの要素を含む。ホスト110は、オペレーティングシステム(OS)及びアプリケーションを実行するホストコンピューティングプラットフォームを表す。OS及びアプリケーションは、メモリアクセスをもたらす動作を実行する。ホスト110は、単一、又はマルチコアプロセッサとなり得る、プロセッサ又は処理ユニットを含む。システム100は、SOCとして実装され得、又はスタンドアロンコンポーネントで実装され得る。
【0021】
メモリコントローラ112は、プロセッサによる動作の実行に応答して、メモリアクセスコマンドを生成する制御ロジックを表す。一実施形態において、システム100は、複数のメモリコントローラを含む。一実施形態において、システム100は、チャネルごとに1又は複数のメモリコントローラを含み、チャネルは多数のメモリデバイスにアクセスすべく結合する。各チャネルは、メモリへの独立したアクセスパスである。一実施形態において、メモリコントローラ112は、同一のダイ又はパッケージ空間上でホストプロセッサとして実装されるロジックのような、ホスト110の一部である。
【0022】
メモリコントローラ112は、システムバス130に結合する、I/Oインタフェースロジック114を含む。システムバス130は、帯域幅を有するデータバスを有する。システム100のデザイン、及び/又は実装に基づき、システムバス130は、メモリデバイスごとに多少の帯域幅を有し得る。例えば、システムバス130は、固定のサイズからなり得るが、x32、又はx16インタフェースのいずれかを有するメモリデバイスを用い得る。メモリデバイスのインタフェースサイズは、どれだけのメモリデバイスがシステム100において同時に用いられ得るかについての制御要因である。
【0023】
メモリデバイス120は、システム100に対するメモリリソースを表す。各メモリデバイス120は、デバイスの実装により決定される帯域幅(例えば、x16であるか否か、又はいくつかの他のインタフェース帯域幅を有するか否か)を有するI/Oインタフェースロジック124を含む。I/Oインタフェースロジック124及び114は、ピン、コネクタ、信号ライン、及び/又はデバイスに接続する他のハードウェアを含み得る。システムバス130は、メモリコントローラ112をメモリデバイス120に結合する複数の信号ラインとして実装され得る。システムバス130は、少なくとも、コマンド及びアドレス(C/A)部分、及びデータ部分を含む。C/A部分は、「C/Aバス」と称され得、データ部分も同様に、「データバス」と称され得る。
【0024】
メモリデバイス120はそれぞれ、複数のメモリアレイ122を含む。メモリアレイ122は、メモリデバイス120がデータビットを格納するロジックを表す。一実施形態において、メモリデバイス120は、内部のデータバスを有すると言われ得る。内部のデータバスは、単一の読み取りプリフェッチにおいて生成される多数のビットを指し、又は、書き込みコマンドに対して書き込まれ得る。内部のデータバスの帯域幅は、メモリアレイの数、及びメモリアレイのデザインに依存する。システム100において具体的に示さないが、各メモリデバイス120はまた、何のデータを送信し、そのデータを送信するのにバス130の信号ラインをどのように駆動するかを決定するロジック、並びに、実行のためコマンド及びアドレスをメモリアレイ122にデコード及びルーティングするロジックを送信及び受信することを含む。
【0025】
メモリデバイス120はそれぞれ、モードロジック126を含む。モードロジック126は、モードレジスタ、又は構成設定を格納するメモリデバイス内の他の機構を指し得る。一実施形態において、特定のメモリデバイスに対する実装は、モードロジック126内に設定される。モードロジック126における設定に基づき、メモリデバイス120は、メモリアクセストランザクションの転送期間ごとのデータ量を制限するような方法で動作し得る。メモリアクセストランザクションは、メモリデバイスにコマンドを送信するメモリコントローラの動作を指し、メモリデバイスは、コマンドにおける要求を満たす。例えば、書き込みトランザクションは、書き込みコマンドをメモリデバイス120に送信するメモリコントローラ112を含み、メモリデバイス120は、それから、データをコマンドにおいて要求された位置に格納する。同様に、読み取りトランザクションは、読み取りコマンドをメモリデバイス120に送信するメモリコントローラ112を含み、メモリデバイス120は、データにアクセスして、データバス上においてそれをメモリコントローラ112に戻す。メモリアクセストランザクションは通常、完了するのに複数のサイクルを要する。例えば、読み取り及び書き込みは、バースト長により制御され得、システムバス130上においてデータを送/受信又は入/出力する多数の連続する転送期間を示す。転送期間は、1又はそれより少ない又はそれより多くのクロックサイクルの期間であって、システムバス130の信号ライン上において信号を送信するものである。システム100のために、モードロジック126はまた、バースト長及び転送タイミングを示すロジックを表し得、それはI/Oインタフェースモードを示すのに用いられるロジックとは異なるロジックであり得る。
【0026】
説明のために、I/Oインタフェースモード(例えば、x16モード)は、転送帯域幅を決定し得る。転送帯域幅は、各メモリデバイス130へ、又は各メモリデバイス130からシステムバス130上に転送されるデータ量を指す。一実施形態において、転送帯域幅は、各転送期間で考慮され得、従って、各転送期間でメモリコントローラとデータを交換するのに用いられるI/Oコネクタ又はピンの数を指す。一実施形態において、転送帯域幅は、メモリアクセストランザクションに対して転送される総データ量を指し得、バースト長を乗じるI/Oコネクタの数、又は、メモリアクセストランザクションを完了する転送期間の総数である。一実施形態において、メモリデバイス120は、制限された帯域幅インタフェースをサポートし、そこでは、メモリアクセストランザクションに対するシステムバス130上における交換は、メモリデバイスの内部のデータバスのビットの数の半分のみである。より詳細な例が、
図2から
図5に関して提供される。
【0027】
一実施形態において、メモリデバイス120は、読み取りに対してプリフェッチされたものより少ないビットを送信し、書き込みのために書き込まれ得るものより少ない位置に書き込む処理により、制限された帯域幅の交換を提供すると見なされ得る。読み取りトランザクションに対して、メモリデバイスは、「内部バーストチョップ」動作を実行すると見なされ得る。バーストチョップは、メモリデバイスに、BLの限られた転送期間の数のみデータを転送させる機構として理解される。例えば、通常8のBLに対して、バーストチョップモードは、転送期間の4つの期間上のみでデータの転送をもたらし得、他の4つの転送期間で、メモリデバイスをアイドルとする(データを転送しない)。しかしながら、システム構成は、BLの終わりまでメモリデバイスにアクセスすることを防ぐので、従来のバーストチョップはなお、他の4つの転送期間に対して、メモリデバイスへのアクセスを防ぐ。従って、メモリデバイスは、アイドルとなるが、利用不可能である。
【0028】
本明細書で言及される「内部バーストチョップ」は、BLの全ての転送期間上のデータを転送するメモリデバイスを含むが(全体の時間に対して、システム構成により利用不可能である)、BL上においてそのデータビットの全てを転送するものではない。従って、読み取り上で、メモリデバイスは全てのプリフェッチされたデータを選択的に送信しないが、いくつかの(例えば、半分)のプリフェッチされたデータをドロップする。説明される内部バーストチョップは、メモリデバイスが転送期間の半分の間アイドルではない点で従来のバーストチョップと異なり、それにより実装の効率性を上げ得ることが理解されるだろう。
【0029】
一実施形態において、モード126は、メモリデバイス120とメモリコントローラ112との間のインタフェースに対する、バースト長についての情報を含む。例えば、モード126は、2つの異なるバースト長(例えば、BL16又はBL32)のうちの1つを指定するモードレジスタを含み得る。一実施形態において、動作の異なるモードのそれぞれは、異なるバースト長のそれぞれと動作し得る。
【0030】
一実施形態において、DDR DRAMチップは、チャネルごとに256ビットをプリフェッチする。一実施形態において、DRAMチップは、32のバースト長と、16のバースト長との2つのバースト長オプションを有し、x32オプションと、x16オプションとの2つの異なるI/Oインタフェースオプションを有する。一実施形態において、共通ダイの実装は、x32実装において、チャネルごと及びダイごとに16DQピンを、x16実装において、チャネルごと及びダイごとに8DQピンを可能とする。両方の実装に関して、DRAMチップは、チャネルごとに256ビットの内部読み取りプリフェッチを生成する。x32実装において、DRAMチップは、BL16を用いて、16DQピン上において256ビット(16BL実装において、16DQピン×16転送期間)を転送し得る。そのような実施形態において、システムは、それぞれ256ビットの2つの内部プリフェッチをもたらすBL32要求を生成し得る。x16モードにおいて、同一のダイは、32転送期間上において、全ての256ビット(8DQ×32BL)を転送し得る。一実施形態において、外部データ転送は、コアサイクル時間の2倍長く要するので、システムは、DRAMチップのコア周波数を遅らせ得る。従って、コアの周波数は、電力を保存すべく、半分にカットされ得る。そのようなオプションは、ランクにおけるデバイスの数を、2(16ビット幅のランク)に限定し得る。そのようなオプションはまた、システムにおいてより多くのホストコントローラを要求し得る。
【0031】
別のオプションは、16のバースト長を用いる。そのようなオプションは、ランク(32ビット幅のランク)において4デバイスを用いることを可能とする。そのようなオプションにおいて、メモリデバイスは、プリフェッチされたデータ(内部バーストチョップ)のいくつかをドロップする。一実施形態において、読み取りコマンドの信号(例えば、CA5)は、メモリデバイスが上位又は下位128ビットのデータを送信するか否かを選択し得る。上位128ビットは、メモリアレイの1つのグループからプリフェッチされ、下位128ビットは、メモリアレイの別のグループからプリフェッチされる。書き込みに関して、メモリコントローラは、128ビットのデータを書き込み、読み取りと同様に、そのビットが上位のビットにマッピングされるか下位のビットにマッピングされるかを制御信号で示し得る。従って、メモリコントローラは、どのメモリアレイが、書き込みされた128ビットのデータを格納するのかを決定し得る。
【0032】
図2は、異なる帯域幅のシステムデータバスとインタフェースし得る、メモリデバイスの実施形態のブロック図である。メモリデバイス200は、システム100のメモリデバイス120の一例となり得る。一実施形態において、メモリデバイス200は、示されるものより、より多くの要素を含む。より具体的には、メモリデバイス200は、単一のI/Oチャネルを図示し、各チャネルが、Nビット(例えば、256ビット)を内部でルーティングする。一実施形態において、メモリデバイス200は、2つの別個のチャネルを含み得、それぞれがNビットを内部でルーティングすることが可能である。
【0033】
メモリデバイス200は、M個のメモリアレイ212を含む。M個のメモリアレイ212は、グループ210の一部である。メモリアレイ212は、多数の異なるやり方のいずれかにおいて複数のグループに構成され得る。一実施形態において、グループ210は、Nデータビットまで読み取り又は書き込みが可能な多数のメモリアレイを含む。一実施形態において、グループ210は、N/2データビットまで読み取り又は書き込みが可能な多数のメモリアレイを含む。バス220は、メモリデバイス200内の内部バスを表す。バス220は、Nビットの利用可能な帯域幅を有する。一実施形態において、Nビットの利用可能な帯域幅は、全てのM個のメモリアレイ212からのビットを表す。
【0034】
ロジック222は、メモリデバイス200内の信号ライン、ロジック回路、及び/又は、他の要素を表し、メモリデバイス200が、2つの別個のI/O出力位置に向けて、バス220のNビットをルーティングすることを可能とする。一実施形態において、ロジック222は、メモリアレイ212へのインタフェースを含み、どのメモリアレイ、及びアレイ内のどの位置が、各メモリアクセストランザクションに対して読み取り又は書き込みされるかを選択し得る。従って、メモリアレイ内の特定の位置は、各トランザクションに対する読み取り、及び/又は、書き込みのために選択され得る。一実施形態において、ロジック222は、特定のメモリアクセストランザクションに対して一方のパス、又は他方のパスを終了し得る。例えば、読み取りトランザクション上で、メモリデバイス200は、Nビットをプリフェッチし得、N/2ビットは、送信されることなくドロップされ得る。一実施形態において、ロジック222は、書き込みトランザクションに対して一方のパス、又は他方のパスを無効にする。
【0035】
ロジック232及び234は、メモリデバイスに対してデータI/Oコネクタ又はピンとインタフェースするメモリデバイス200内の信号ライン、ロジック回路、及び/又は、他の要素を表す。具体的には、ロジック232は、メモリアレイ212をDQ I/O252と選択的にインタフェースし、ロジック234は、メモリアレイ212をDQ I/O254と選択的にインタフェースする。指定のDQ I/Oは、データバスインタフェースを指す。ロジックエレメントは、I/Oをメモリアレイに選択的にインタフェースし、ロジックエレメントは、選択されたメモリアレイ212にルーティング又は書き込みされるI/Oコネクタで受信されるデータビットを選択し得る。ロジックエレメントは、I/Oをメモリアレイに選択的にインタフェースし、ロジックエレメントは、DQ I/O252、及び/又はDQ I/O254からルーティング及び送信されるメモリアレイ212から受信されるデータビットを選択し得る。
【0036】
一実施形態において、DQ I/O252及びDQ I/O254は、コマンド/アドレス(C/A) I/Oコネクタ又はピン240をストラドルする。データI/Oコネクタは、C/A I/Oコネクタをストラドルし、データI/Oコネクタは、全てダイ又はパッケージに物理的に隣接しているとは限らないが、C/A I/Oコネクタ240により物理的に離される2つのグループのデータI/Oコネクタがある。そのような構成は、デコードロジック(具体的には示されない)が、データI/Oコネクタ(252、254)からメモリアレイ212まで信号ラインに対して、メモリデバイス200内に「中心に」位置されることを可能とする。
【0037】
データI/Oコネクタ252及び254は、システムデータバス250の信号ラインとインタフェースする。バス250は、N/2ビットの帯域幅を有すると示され、一方でバス220は、Nビットの帯域幅を有することが観察される。従って、バス250は、バス220の利用可能な合計の内部の帯域幅と比べて、メモリデバイス200とインタフェースするための低帯域幅を有する。バス250は、複数の他のメモリデバイス、及び/又は、他のメモリデバイスチャネル(例えば、メモリデバイス200が、個別のグループのメモリアレイを有する別のチャネルを含む場合)に接続し得ることが理解されよう。従って、異なるメモリデバイスに個別に接続すべくバス250の信号ラインが離された場合、バス250は実際に、バス220と比べて高帯域幅を有し得る。しかしながら、メモリデバイス200とインタフェースする目的で、メモリデバイス200とインタフェースするバス250の信号ラインの数が、バス220が転送期間のバースト長内で転送可能であるものと比べて低帯域幅を有する場合、バス250は低帯域幅を有すると見なされる。
【0038】
更に、バス250は、データI/O252及びデータI/O254のそれぞれとインタフェースするよう図示された、同じビット数であるN/2ビットの帯域幅を有していると示されていることが観察される。メモリデバイス200をバス250とインタフェースするよう提供され得る、任意の多数の異なる構成がある。一実施形態において、特定のトランザクションに対して、メモリデバイス200及び関連付けられたメモリコントローラ(具体的に示されない)との間で交換される(読み取り又は書き込みのいずれか)全てのN/2ビットは、I/O252又はI/O254のいずれかを介して交換され、一方で、他方のI/Oは、トランザクションのための任意のビットを交換しない。従って、I/O252及びI/O254は、同一のN/2信号ラインに接続し得、ロジック(例えば、ロジック232、234、222、及び/又は、他のロジック)は、どのI/Oを特定のメモリアクセストランザクションに用いるかを選択し得る。
【0039】
一実施形態において、I/O252及びI/O254の両方は、N/4個のI/Oコネクタをそれぞれバス250とインタフェースすべく提供する。従って、バス250は、I/O252及びI/O254間で離される。内部で、I/O252からロジック232に、及び/又は、I/O254からロジック234にルーティングされるN/2の可能なデータビットは、示されるように、N/2ビットの代わりに、N/4ビットとなり得る。一実施形態において、ロジック234は、N/4ビットを選択し得、それらを、I/O252にルーティングし得、I/O254を迂回し得る。従って、I/O252は、全てのN/2個のI/Oインタフェースを提供するが、N/4ビットはロジック232を介してルーティングされ、N/4ビットはロジック234を介してルーティングされる。同様に、ロジック232は、N/4ビットを選択し得、I/O252を迂回して、I/O254にルーティングすることが理解されよう。従って、一実施形態において、ロジック232、及び/又はロジック234は、異なるメモリアレイ間の信号ラインを、同一のI/Oコネクタに選択的にルーティングする多重化ロジックを含み得る。
【0040】
一実施形態において、メモリデバイス200は、全てのM個のメモリアレイ又はコアからデータビットにアクセスすることにより、読み取りのためのNビットを常に生成する。メモリデバイス200は、NビットのうちN/2を選択し、任意の他のプリフェッチされたビットをドロップすることにより、バス250上においてN/2ビットを交換し得る。一実施形態において、メモリデバイス200は、M/2個のメモリアレイ212の2つの異なるグループからN/4ビットを選択する(及び、メモリアレイの2つのグループのそれぞれからアクセスされた他のN/4ビットをドロップする)ことにより、バス250上においてN/2ビットを交換し得る。一実施形態において、メモリデバイス200は、M/2個のメモリアレイ212の一方のグループからN/2ビットを選択し、M/2個のメモリアレイ212の他方のグループからアクセスされたN/2ビットをドロップすることにより、バス250上においてN/2ビットを交換し得る。
【0041】
同様に、メモリデバイス200は、データビットを全てのM個のメモリアレイ又はコア212に書き込むことにより、Nビットを書き込むことが可能である。一実施形態において、メモリデバイス200は、書き込むべきM/2個のメモリアレイを選択し、他のM/2個のメモリアレイには書き込まないことにより、Nビットの代わりに、N/2ビットを書き込む。一実施形態において、メモリデバイス200は、N/4ビットを、M/2個のメモリアレイ212の1つの選択されたグループに書き込み、N/4ビットを、M/2個のメモリアレイ212の別の選択されたグループに書き込む。そのような場合、メモリアレイにおけるロジックは、何ビットを書き込むかを決定し得、及び/又は、どのメモリアレイを書き込み、及びどのメモリが特定のメモリアクセストランザクション上に書き込まれないかを選択し得る。従って、読み取り及び書き込みに対して、メモリデバイス200は、一方の共通のDQ I/O、又は他方の共通のDQ I/O(252、254)で、N/2ビットを交換し得、又は、両方のDQ I/OからN/4ビットを交換し得る。メモリデバイス200は、書き込む又は読み取るM個のメモリアレイの異なるグループを選択し得、N/2ビットを1つのグループ又は別(及び、選択されないグループには1つもない)に、又はN/4ビットをそれぞれ両方のグループにルーティングし得る。
【0042】
一実施形態において、C/A I/O240により離されるDQ I/O252及びDQ I/O254を有するメモリデバイス200の構成は、「コア」からNビットを提供し、メモリアレイを参照し、ビットをコアから、「上部」及び「下部」のニブル、又は合計のI/Oの部分にルーティングするものとして言及され得る。「上部」及び「下部」へのそのような参照は、どのI/Oコネクタが、物理的パッケージの空間的な向きではなく、MSB(最上位ビット)及びLSB(最下位ビット)としてメモリデバイス200に指定されるか参照することで理解されるであろう。メモリアレイ又はメモリコアをどのように分割するか、及び、どのようにアレイをI/Oにルーティングするか、及びどのI/Oを物理的にどのパッケージ上に位置するか、設計上の選択である。当業者により理解されるであろう任意の多数の構成がある。
【0043】
図3は、ニブルモードの実装において、システムデータバスとインタフェースするメモリデバイスの実施形態のブロック図である。メモリデバイス300は、
図2のメモリデバイス200に従って、メモリデバイスの一例となり得る。一実施形態において、メモリデバイス300は、16コア又はメモリアレイを有するx32ダイである。16コアは、それぞれ8コア(302、304)の2つのグループとして構成され得、8コアの各グループは、それぞれ4コア(302−0及び302−1、304−0及び304−1)の2つのグループと更に見なされ得る。従って、一実施形態において、メモリデバイス300は、x16の2つのチャネル(A及びB)として構成されるx32ダイである。
【0044】
示されるように、内部のプリフェッチは、チャネルごとに、256ビットを生成する。従って、各読み取り/書き込みトランザクションは、通常動作においてデータ転送の256ビットをもたらす。メモリデバイスが完全な256ビット未満のデータを転送する動作モードに対して、メモリデバイス300は、ニブルモードで動作すると言われ得る。一実施形態において、メモリデバイス300は、128ビットのデータを各I/Oインタフェース、DQ_Aニブル0、及びDQ_Aニブル1に内部でルーティングする。一実施形態において、メモリデバイス300は、BL16のバースト長上で動作する。一実施形態において、メモリデバイス300は、BL32のバースト長の動作をサポートし、読み取りに対する内部トランザクションごとにプリフェッチされた256ビットのデータを有する2つの内部トランザクションをもたらす。BL32における書き込みは、動作の低帯域幅モードにおいて、それぞれ128ビットの2つの内部の書き込みトランザクションをもたらす。
【0045】
ニブル0は、メモリデバイス300、及び関連付けられたメモリコントローラのI/Oに対するLSBニブルであると見なす。BL16において、低帯域幅モードに対する動作は、DQ_Aニブル0及びDQ_Aニブル1が両方とも4ビット幅(128ビット/16BL=8ビット/転送期間、又は、転送期間ごとのニブルごとの4ビット)であることを示す。C/Aバスごとに離されるI/Oを2つの別個のニブルに離すことは、LSB及びMSBニブル信号ライン間のタイミング相をもたらし得ることが理解されるだろう。従って、ニブルモードは、上位(上)及び下位(下部)ニブルに対する個別のストローブ又はクロック信号を要求し得る。従って、ニブルモードは、メモリデバイス300外部の追加のクロック又はストローブ信号を要求し得、信号をパッケージ及びコントローラ(システム)レベルに上げる。
【0046】
一実施形態において、ニブルモードにおいて、メモリデバイス300は、何のデータを送信し、何のデータを読み取りトランザクションにドロップするかを選択すべく、各チャネルにロジックを含む。書き込みトランザクション上で、ロジックは、何のコア(302−0、及び/又は302−1)が書き込みデータを受信するか選択し得る。メモリデバイス300は、データを、バースト長の各転送期間における関連付けられたメモリコントローラと交換し、合計の交換は、メモリコア(302)のグループの内部容量(256ビット)より少ないビット(128ビット)である。メモリコア302、及びチャネルAについて参照するが、メモリデバイス300は、メモリコア304、及びチャネルBにおいて同一の動作をサポートし得ることが理解されよう。
【0047】
図4は、バイトモードの実装において、システムデータバスとインタフェースするメモリデバイスの実施形態のブロック図である。メモリデバイス400は、
図2のメモリデバイス200に従って、メモリデバイスの一例となり得る。一実施形態において、メモリデバイス400は、16コア、又はメモリアレイを有するx32ダイである。
図3のメモリデバイス300と同様、メモリデバイス400の16コアは、それぞれ8コア(402、404)の2つのグループとして構成され得、8コアの各グループは、それぞれ4コア(402−0及び402−1、404−0及び404−1)の2つのグループとして更に見なされ得る。従って、一実施形態において、メモリデバイス400は、x16の2つのチャネル(A及びB)として構成されるx32ダイである。
【0048】
示されるように、内部のプリフェッチは、チャネルごとに256ビットを生成する。従って、各読み取り/書き込みトランザクションは、通常動作においてデータ転送の256ビットをもたらす。メモリデバイスが完全な256ビット未満のデータを転送する動作モードに対して、メモリデバイス400は、バイトモードで動作すると言われ得る。一実施形態において、メモリデバイス400は、128ビットのデータを、チャネルごとの1つの共通のI/Oインタフェース、DQ_Aバイト0、及びDQ_Aバイト1に内部でルーティングする。一実施形態において、メモリデバイス400は、BL16のバースト長上で動作する。一実施形態において、メモリデバイス300は、BL32のバースト長の動作をサポートし、読み取りのための内部トランザクションごとにプリフェッチされた256ビットのデータを有する2つの内部トランザクションをもたらす。BL32における書き込みは、動作の低帯域幅モードにおいて、それぞれ128ビットの2つの内部の書き込みトランザクションをもたらす。
【0049】
DQ_Aバイト0は、メモリデバイス400、及び関連付けられたメモリコントローラのI/Oに対するLSBバイトであると見なす。別のバイトインタフェースがメモリデバイスに示されるが、アクティブではないと列挙される。一実施形態において、バイトモードにおいて、メモリデバイス400は、2つの可能なハードウェアインタフェースセグメントのうちの選択された1つの上において128データビットを交換する。BL16において、低帯域幅モードに対する動作は、DQ_Aバイト0が8ビット幅(128ビット/16BL=8ビット/転送期間)であることを示す。単一バスのインタフェース上のみのデータを送信することにより、全体のデータが、単一ストローブ又はクロック信号と共に転送され得る。メモリデバイス400は、アクティブではないと分類されるDQ_Aバイト1上のデータを出力するように構成され得ることが理解されよう。
【0050】
一実施形態において、バイトモードにおいて、メモリデバイス400は、全てのM個のコア402を、DQ_Aバイト0と(又は、実装に応じて、バイト1と)インタフェースすべく、各チャネルにロジックを含む。従って、コア402−0及び402−1の両方は、共通のI/Oコネクタを介して、関連付けられたメモリコントローラとインタフェースし得る。メモリデバイス400内でロジックにより選択されるように、読み取りトランザクション上でプリフェッチされた追加の128ビットは用いられない。同様に、メモリデバイス400内のロジックは、書き込みトランザクションにおいて受信されたその128データビットを、どのコア402が書き込むのかを選択する。メモリコア402、及びチャネルAについて参照するが、メモリデバイス400は、メモリコア404、及びチャネルBにおいて同一の動作をサポートし得ることが理解されよう。
【0051】
一実施形態において、メモリデバイス400は、バイト0又はバイト1が、関連付けられたメモリコントローラと共にI/Oに用いられるか否かのダイナミックな選択を可能とするロジックを含む。従って、一実施形態において、DQ_Aバイト0、及びDQ_Aバイト1に対するコネクタは、合わせて拘束又は多重化され得る。メモリデバイス400内のロジックは、I/Oに用いる一方のバイト又は他方のバイトの選択を可能とし得る。一実施形態において、選択は、デバイスの動作に固定されている。一実施形態において、選択は、レジスタの設定(例えば、モードレジスタ)により制御される。一実施形態において、メモリアクセスコマンド内の信号は、どのバイトを用いるかを決定し得る。
【0052】
図5は、バイトモードの実装において、システムデータバスとインタフェースすることを容易にすべく、内部のルーティングを有するメモリデバイスの実施形態のブロック図である。メモリデバイス500は、
図2のメモリデバイス200の一例となり得る。一実施形態において、メモリデバイス500は、
図4のメモリデバイス400の一例となり得る。メモリデバイス400は、DQ_Aバイト0に内部でルーティングされる128ビット、及び用いられない128ビットを単純化したものを図示する。メモリデバイス500は、コア502−0のグループからの64ビット、及びコア502−1のグループからの64ビットを内部でルーティングする。各それぞれのグループからの他方の64ビットは、用いられないことが理解されよう。
【0053】
より具体的には、コア502−0は、読み取り上で128ビットを生成し、コア502−1はまた、読み取り上で128ビットを生成する。一実施形態において、コア502−1からの128ビットは、DQ_Aバイト1にルーティングされ、コア502−0からの128ビットは、DQ_Aバイト0にルーティングされる。一実施形態において、メモリデバイス500内のロジックは、コア502−1から64ビットを選択し、それらをDQ_Aバイト1からDQ_Aバイト0へと内部でルーティングし、他方の64ビットを送信しない。一実施形態において、ロジックは、読み取りトランザクションに応じて、64ビットの任意のグループの選択を可能とする。一実施形態において、メモリデバイス500におけるロジックは、コア502−0から64ビットを選択し、それらの64ビットを、DQ_Aバイト0から送信し、一方で他方の64ビットを用いない。従って、一実施形態において、DQ_Aバイト0は、読み取りトランザクションに対して128ビットを、そのうち64ビットはコア502−0から、64ビットはコア502−1から送信する。同一のパスは、着信する128ビットの64をDQ_Aバイト0から、DQ_Aバイト1に、それからコア502−1に内部でルーティングすべく、書き込みに用いられ得る。同一のロジック及び動作は、コア504、及びI/O DQ_Bバイト0且つDQ_Bバイト1について、チャネルBにおいて同様の動作を可能にし得ることが理解されよう。一実施形態において、経路はまた、システム構成及び動作に応じて、128ビットのDQ_Aバイト1、DQ_Bバイト1へのルーティングを可能にし得る。
【0054】
メモリデバイス500のルーティングを実装する追加のロジックが、内部のルーティングにロジックの遅延を生じ得ることが理解されよう。内部のルーティングは実際、メモリデバイス500をメモリコントローラに結合する外部のデータ交換よりも遅いクロックで実行され得る。内部のルーティングは、多重化要素、及び/又は、特定のI/Oコネクタをメモリデバイス500内の内部の信号ラインにどのようにルーティングするかを選択する、他のロジックエレメント含み得る。明示的には示されないが、
図6でより明示的に示めされるものと同様、I/Oインタフェースは、マルチプレクサ、又は、同一のI/Oコネクタに結合された複数のパス間で選択する同等のロジックを含み得ることが理解されよう。従って、一実施形態において、システム500は、内部でルーティングし、どの内部ビットが、どのI/Oコネクタ上において交換され得るかを選択する追加のロジックを含む。
【0055】
図4及び
図5のメモリデバイス400及び500のx32ダイのx16構成は、それぞれ、
図3のメモリデバイス300のx32ダイのx16構成よりも、DRAMでより多くの変更を必要とし得ることが理解されよう。しかしながら、メモリデバイス300の実装は、DRAMの外部のシステムレベルで、追加のクロック信号を必要とし得る。従って、メモリデバイス400及び500の実装は、個々のメモリダイ内でロジックを増大させながら、より簡易なシステムのアプローチの利点を提供し得る。
【0056】
図6は、バイトモードの実装において、システムデータバスとインタフェースすることを容易にすべく、内部ルーティング及び多重化を有するメモリデバイスの実施形態のブロック図である。メモリデバイス600は、
図2のメモリデバイス200の一例となり得る。一実施形態において、メモリデバイス600は、
図4のメモリデバイス400の一例となり得る。メモリデバイス400は、DQ_Aバイト0に内部でルーティングされる128ビット、及び用いられない128ビットを単純化したものを図示する。メモリデバイス600は、コア602−0のグループからの128ビット、及びコア602−1のグループからの128ビットを内部でルーティングする。他方のグループからの他の128ビットは、用いられないことが理解されよう。
【0057】
より具体的には、コア602−0は、読み取り上で128ビットを生成し、コア602−1はまた、読み取り上で128ビットを生成する。一実施形態において、コア602−1からの128ビットは、DQ_Aバイト1にルーティングされ、コア602−0からの128ビットは、DQ_Aバイト0にルーティングされる。一実施形態において、メモリデバイス600内のロジックは、コア602−1から128ビットを選択し、それらをDQ_Aバイト1からDQ_Aバイト0へと内部でルーティングする。一実施形態において、DQ_Aバイト0でのI/Oロジックは、多重化ロジック610−Aを含み、それは、コア602−0からの128ビット、又はコア602−1からの128ビットから選択し得る任意のロジック、又は切り替え回路を表す。従って、2つの物理的バンク又はグループのそれぞれは、128ビットのデータを提供し得、それぞれが1つのロジック的バンクとして動作する。各グループは、1Kのページサイズを有し、2Kの有効なページサイズを与える。読み取りトランザクションに対して、一実施形態において、DQ_Aバイト0は、128を送信し、それらのビットは、コアの一方のグループ、又は他方のいずれかから選択されたものである。同一のパスは、コア602−1を用いる場合、着信する128ビットのデータをDQ_Aバイト1に内部でルーティングすべく、書き込みに用いられ得る。同一のロジック及び動作は、コア604、I/O DQ_Bバイト0、及びDQ_Bバイト1について、チャネルBにおいて同様の動作を可能にし得ることが理解されよう。また、DQ バイト0及びDQ バイト1の役割が逆になり得ることが理解されよう。
【0058】
図7は、異なる帯域幅のバスに対してデータを交換すべく、メモリコントローラとメモリデバイスとの間のインタフェースを行うためのプロセスの実施形態のフロー図である。より具体的には、処理700は、共通のメモリダイが、x32及びx16モードのような、2つの異なるシステムバス帯域幅モードのうちの1つにおいて、メモリコントローラとインタフェースすることを可能にする。メモリコントローラ及びメモリデバイスを有するメモリサブシステムを含むコンピューティングシステムはまた、コンピューティングシステムの動作を実行するプロセッササブシステムを含む。702で、プロセッササブシステムは、ホストプロセッサ、及び/又は、メモリアクセスをもたらす動作を実行する様々な他のプロセッサ回路を含む。コンピューティングシステムは、ラップトップ又はタブレットのようなスタンドアロンシステムになり得、又はより大きなシステムの一部となり得る。
【0059】
704で、メモリコントローラは、メモリアクセスを実現する1又は複数のメモリアクセスコマンドを生成する。一実施形態において、メモリコントローラは、ホストの一部である。706で、メモリデバイスは、メモリコントローラからメモリアクセスコマンドを受信及びデコードする。コマンドが、メモリデバイスを対象としているか否か、及び対象とされたメモリデバイスであることを仮定して、コマンドに応答して何の動作を実行するかを決定すべく、メモリデバイスは、メモリアクセスコマンドをデコードする。
【0060】
708で、一実施形態において、メモリデバイスは、全帯域幅モード/構成、又は部分的帯域幅モード/構成で動作すべきかを決定する。一実施形態において、メモリデバイスは、モードレジスタ又は他の構成ロジックにアクセスすることにより、全帯域幅モード又は部分的帯域幅モードを決定する。710で、動作のモードが全帯域幅である場合(YESの分岐)、712で、メモリデバイスは、転送期間上の完全な内部の帯域幅を交換する。全帯域幅は、メモリデバイスが1つのメモリアクセストランザクションにおいてメモリコアへ書き込み、又はメモリコアから読み取り可能である、データ量であると理解される。従って、読み取りトランザクション上で、メモリデバイスは、メモリコアからプリフェッチされた完全なデータ量を送信する。書き込みトランザクション上で、メモリデバイスは、メモリコントローラからデータの全帯域幅を受信し、データの全帯域幅をメモリコアにルーティングする。
【0061】
710で、動作のモードが部分的帯域幅である場合(NOの分岐)、714で、メモリデバイスは、転送期間中に全帯域幅の一部のみを交換し、各転送期間上のいくつかのデータを転送する。一実施形態において、メモリデバイスは、転送のためのバースト長を決定する。一実施形態において、メモリデバイスは、全帯域幅の転送、並びに部分的帯域幅の転送に対してバースト長を決定し得、より長いバースト長は、2つの連続する内部のメモリアクセスオペレーションをもたらし得る。部分的帯域幅の交換において、異なるバースト長のオプションは、どのようにデータを転送するのかを決定すべく、異なる幅のI/Oインタフェースで用いられ得る。
【0062】
メモリデバイスは、データをメモリコントローラと交換すべく、メモリアクセストランザクションを実行する。718で、メモリアクセストランザクションが読み取りである場合(読み取りの分岐)、720で、メモリデバイスは、Nデータビットをメモリアレイ、又はコアからプリフェッチする。メモリデバイスは、Nデータビットを生成すべく、チャネルにおける全てのメモリアレイにアクセスし得る。722で、メモリデバイスは、データビットを、メモリデバイスを、システムデータバスを介してメモリコントローラに結合するハードウェアのI/Oインタフェースに内部でルーティングする。内部のルーティングは、本明細書で説明される実施形態のいずれかに従ってなされ得、メモリデバイスが、N/2ビットを、I/Oコネクタの共通のグループにルーティングし、及び/又は、N/4ビットを、I/Oコネクタの2つのグループのそれぞれにルーティングすることを可能とする。従って、724で、メモリデバイスは、システムデータバス上においてN/2データビットを送信し、全体の決定されたバースト長にわたり、N/2BLビットを各転送期間中に転送する。
【0063】
718で、メモリアクセストランザクションが書き込みである場合(書き込みの分岐)、726で、メモリデバイスは、システムデータバス上においてN/2データビットを受信し、全てのバースト長にわたり、各転送期間上でN/2BLビットを受信する。728で、メモリデバイスは、N/2データビットを選択されたメモリアレイに内部でルーティングする。内部のルーティングは、本明細書で説明される実施形態のいずれかに従ってなされ得、メモリデバイスが、I/Oコネクタの共通のグループから、メモリアレイの任意の組み合わせまで、N/2ビットとして、N/2ビットをルーティングし、及び/又は、I/Oコネクタの2つのグループのそれぞれから、メモリアレイの任意の組み合わせまで、N/4ビットをルーティングすることを可能とする。
【0064】
図8は、異なる帯域幅のデータバスにインタフェースする共通のダイが実装され得る、コンピューティングシステムの実施形態のブロック図である。システム800は、本明細書で説明される任意の実施形態の何れかに従ってコンピューティングデバイスを表し、それはラップトップコンピュータ、デスクトップコンピュータ、サーバ、ゲーム若しくはエンタテイメント制御システム、スキャナ、コピー機、プリンタ、ルーティング若しくは切り替えデバイス、又は他の電子デバイスであり得る。システム800はプロセッサ820を含み、プロセッサ820は、システム800の命令の処理、動作管理、及び実行を提供する。プロセッサ820は、システム800のための処理を提供すべく、任意のタイプのマイクロプロセッサ、中央処理ユニット(CPU)、処理コア、又は他の処理ハードウェアを含み得る。プロセッサ820は、システム800の動作全体を制御し、1又は複数のプログラマブルな汎用又は特定用途マイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、プログラマブルなコントローラ、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)等、又は、そのようなデバイスの組み合わせであり得る。又は、それらを含み得る。
【0065】
メモリサブシステム830は、システム800のメインメモリを表し、プロセッサ820によって実行されるコード、又はルーチンを実行する際に用いられるデータ値の一時的なストレージを提供する。メモリサブシステム830は、リードオンリメモリ(ROM)、フラッシュメモリ、1又は複数の様々なランダムアクセスメモリ(RAM)、又は他のメモリデバイスのような1又は複数のメモリデバイス、若しくは、そのようなデバイスの組み合わせを含み得る。メモリサブシステム830は、特に、システム800において命令を実行するためのソフトウェアプラットフォームを提供すべく、オペレーティングシステム(OS)836を格納し、ホストとなる。更に、その他の命令838が、メモリサブシステム830に格納され、及び、メモリサブシステム830から実行され、システム800のロジック及び処理を提供する。OS836及び命令838は、プロセッサ820によって実行される。メモリサブシステム830は、データ、命令、プログラム、又は他のアイテムを格納するメモリデバイス832を含む。一実施形態において、メモリサブシステムは、メモリデバイス832へのコマンドを生成して発するためのメモリコントローラである、メモリコントローラ834を含む。メモリコントローラ834は、プロセッサ820の物理的な一部分であり得ることが理解されよう。
【0066】
プロセッサ820及びメモリサブシステム830は、バス/バスシステム810に結合される。バス810は、適切なブリッジ、アダプタ、及び/又はコントローラによって接続された、任意の1又は複数の個別の物理的なバス、通信ライン/インタフェース、及び/又はポイントツーポイント接続を表す抽象化である。従って、バス810は、例えば、システムバス、ペリフェラルコンポーネントインターコネクト(PCI)バス、ハイパートランスポート、又は業界標準アーキテクチャ(ISA)バス、スモールコンピュータシステムインタフェース(SCSI)バス、ユニバーサルシリアルバス(USB)、又は、電気電子技術者協会(IEEE)規格1394バス(一般には"ファイヤワイヤ"と称される)のうちの1又は複数を含み得る。バス810の複数のバスはまた、ネットワークインタフェース850における複数のインタフェースに対応し得る。
【0067】
システム800はまた、1又は複数の入/出力(I/O)インタフェース840、ネットワークインタフェース850、1又は複数の内蔵大容量ストレージデバイス860、及び、バス810に結合された周辺機器インタフェース870を含む。I/Oインタフェース840は、1又は複数のインタフェースコンポーネント(例えば、ビデオ、オーディオ、及び/又は、英数字インタフェース)を含み得る。ユーザは、これらを通じて、システム800とやり取りする。一実施形態において、I/Oインタフェース840は、ユーザに対する出力を提供する高精細(HD)ディスプレイを含み得る。高精細は、およそ100PPI(ピクセルごとのインチ)以上の画素密度を有するディスプレイを指し得、フルHD(例えば、1080p)、retinaディスプレイ、4K(超高精細又はUHD)、又は他のようなフォーマットを含み得る。高精細はまた、画素ディスプレイと同等な視覚的品質を有する投影型ディスプレイ(例えば、ヘッドマウントディスプレイ)を指し得る。ネットワークインタフェース850は、1又は複数のネットワーク上においてリモートデバイス(例えば、サーバ、他のコンピューティングデバイス)と通信する能力を、システム800に対して提供する。ネットワークインタフェース850は、イーサネット(登録商標)アダプタ、無線相互接続コンポーネント、USB(ユニバーサルシリアルバス)、若しくは、他の有線又は無線規格に準拠したインタフェース、若しくはプロプライエタリインタフェースを含み得る。
【0068】
ストレージ860は、1又は複数の磁気ディスク、ソリッドステート、又は光学ベースのディスク、若しくはそれらの組み合わせのような、大量のデータを不揮発性の態様で格納するための任意の従来の媒体であり得、又はそれらを含み得る。ストレージ860は、コード又は命令及びデータ862を、永続的な状態で保持する(すなわち、システム800への電力の遮断にもかかわらず値が保持される)。メモリ830は、プロセッサ820に命令を提供するための実行又は動作メモリであるが、ストレージ860は、一般的に「メモリ」であると見なされ得る。ストレージ860が不揮発性である一方で、メモリ830は、揮発性メモリ(すなわち、システム800への電力が遮断されると、データの値又は状態が不定となる)を含み得る。
【0069】
周辺機器インタフェース870は、具体的には上述されていない任意のハードウェアインタフェースを含み得る。周辺機器とは、一般的に、システム800に対して従属的に接続するデバイスを指す。従属的な接続とは、システム800がソフトウェア及び/又はハードウェアのプラットフォームを提供する接続であり、このプラットフォームでオペレーションを実行し、このプラットフォームを用いてユーザがやり取りする。
【0070】
一実施形態において、システム800は、システムが、オペレーションの全帯域幅又は部分的帯域幅モードにおいてメモリ832を動作することを可能とする、モードコントロール880を含む。従って、システム800は、メモリサブシステム830において、メモリ832によりサポートされる複数の異なる帯域幅システムデータバスのうちの1つを含み得る。同一のメモリチップは、メモリデバイスの全内部の帯域幅を交換し得るメモリサブシステムデータバスを有する、又は、メモリデバイスを有する、部分的な内部の帯域幅のデータ量のみを交換し得るメモリサブシステムデータバスを有するシステム800において用いられ得る。モードコントロール880は、メモリ832が何のオペレーションモードを用いるかという設定を提供する構成ロジックを表し得、及び、メモリが、メモリのハードウェアのI/Oコネクタ、及びメモリアレイ又はメモリコア(明示的には示されない)の間でインタフェースすべく、適切な内部のルーティングを選択することを可能とする、メモリ832内部へのロジックを表し得る。
【0071】
図9は、異なる帯域幅のデータバスにインタフェースする共通のダイが実装され得る、モバイルデバイスの実施形態のブロック図である。デバイス900が、コンピューティングタブレット、携帯電話又はスマートフォン、無線可能な電子書籍リーダ、ウェアラブルコンピューティングデバイス、又は他のモバイルデバイスのようなモバイルコンピューティングデバイスを表す。複数のコンポーネントのうちのいくつかが一般的にに示され、そのようなデバイスの全てのコンポーネントがデバイス900中に示されるわけではないことが理解されよう。
【0072】
デバイス900は、デバイス900の主要な処理動作を実行するプロセッサ910を含む。プロセッサ910は、マイクロプロセッサ、アプリケーションプロセッサ、マイクロコントローラ、プログラマブルロジックデバイス、又は他の処理手段のような、1又は複数の物理的デバイスを含み得る。プロセッサ910によって実行される複数の処理動作は、アプリケーション、及び/又はデバイス機能が実行されるオペレーティングプラットフォーム又はオペレーティングシステムの実行を含む。これらの処理動作は、人間であるユーザ又は他のデバイスとのI/O(入/出力)に関連する動作、電力管理に関連する動作、及び/又は、デバイス900を別のデバイスに接続することに関連する動作を含む。処理動作はまた、オーディオI/O及び/又はディスプレイI/Oに関連する動作を含み得る。
【0073】
一実施形態において、デバイス900は、コンピューティングデバイスに対してオーディオ機能を提供することに関連付けられたハードウェア(例えば、オーディオハードウェア及びオーディオ回路)及びソフトウェア(例えば、ドライバ、コーデック)のコンポーネントを表す、オーディオサブシステム920を含む。オーディオ機能は、スピーカ及び/又はヘッドフォン出力、並びにマイク入力を含み得る。そのような機能のためのデバイスが、デバイス900に統合され、又は、デバイス900に接続され得る。一実施形態において、プロセッサ910によって受信され、処理されるオーディオコマンドを提供することによって、ユーザはデバイス900とやり取りする。
【0074】
ディスプレイサブシステム930は、ユーザがこのコンピューティングデバイスとやり取りするための視覚的及び/又は触覚ディスプレイを提供する、ハードウェア(例えば、ディスプレイデバイス)及びソフトウェア(例えば、ドライバ)のコンポーネントを表す。ディスプレイサブシステム930は、ユーザに対してディスプレイを提供するために用いられる特定のスクリーン又はハードウェアデバイスを含む、ディスプレイインタフェース932を含む。一実施形態において、ディスプレイインタフェース932は、ディスプレイに関連した少なくともいくつかの処理を実行すべく、プロセッサ910から独立したロジックを含む。一実施形態において、ディスプレイサブシステム930は、ユーザに対する出力及び入力の両方を提供するタッチスクリーンデバイスを含む。一実施形態において、ディスプレイサブシステム930は、ユーザに対する出力を提供する高精細(HD)ディスプレイを含む。高精細は、およそ100PPI(ピクセルごとのインチ)以上の画素密度を有するディスプレイを指し得、フルHD(例えば、1080p)、retinaディスプレイ、4K(超高精細又はUHD)、又は他のようなフォーマットを含み得る。
【0075】
I/Oコントローラ940は、ユーザとのやり取りに関連したハードウェアデバイス及びソフトウェアコンポーネントを表す。I/Oコントローラ940は、オーディオサブシステム920及び/又はディスプレイサブシステム930の一部であるハードウェアを管理するように動作し得る。更に、I/Oコントローラ940は、ユーザがそれを通じてシステムとやり取りし得るようにするための、デバイス900に接続する追加のデバイスのための接続ポイントを示す。例えば、デバイス900に取り付けられ得るデバイスは、マイクデバイス、スピーカ又はステレオシステム、ビデオシステム、又は他のディスプレイデバイス、キーボード又はキーパッドデバイス、若しくは、カードリーダ又はその他のデバイスのような特定のアプリケーションと共に用いるための他のI/Oデバイスを含み得る。
【0076】
上述されたように、I/Oコントローラ940は、オーディオサブシステム920、及び/又はディスプレイサブシステム930とやり取りし得る。例えば、マイク又は他のオーディオデバイスを通じた入力は、デバイス900の1又は複数のアプリケーション又は機能に対する入力又はコマンドを提供し得る。更に、ディスプレイ出力に代わり、又はディスプレイ出力に加えて、オーディオ出力が提供され得る。別の例において、ディスプレイサブシステムがタッチスクリーンを含む場合、このディスプレイデバイスはまた、I/Oコントローラ940によって少なくとも部分的に管理され得る入力デバイスとしても動作する。デバイス900には、I/Oコントローラ940によって管理されるI/O機能を提供する追加のボタン又はスイッチもまた存在し得る。
【0077】
一実施形態において、I/Oコントローラ940は、加速度計、カメラ、光センサ又は他の環境センサ、ジャイロスコープ、全地球測位システム(GPS)、又は、デバイス900に含まれ得る他のハードウェアのような、デバイスを管理する。この入力は、直接的なユーザのやり取りの一部分であり得ると共に、(ノイズのフィルタリング、輝度検出のためにディスプレイを調整すること、カメラにフラッシュを適用すること、又は他の機能のような)その動作に影響を及ぼす環境入力をシステムへ提供することであり得る。一実施形態において、デバイス900は、バッテリ電力使用量、バッテリの充電、及び省電力動作に関連した機能を管理する、電力管理950を含む。
【0078】
メモリサブシステム960は、デバイス900に情報を格納するためのメモリデバイス962を含む。メモリサブシステム960は、不揮発性(メモリデバイスへの電力が遮断された場合にも状態が変化しない)及び/又は揮発性(メモリデバイスへの電力が遮断された場合には状態が不定である)の、メモリデバイスを含み得る。メモリ960は、アプリケーションデータ、ユーザデータ、音楽、写真、文書、又は他のデータ、並びに、システム900のアプリケーション及び機能の実行に関連したシステムデータ(長期間であろうと一時的であろうと)を格納し得る。一実施形態において、メモリサブシステム960は、(システム900の制御の一部ともまた見なされ得、プロセッサ910の一部と潜在的に見なされ得る)メモリコントローラ964を含む。メモリコントローラ964は、メモリデバイス962へのコマンドを生成及び発するスケジューラを含む。
【0079】
接続970は、ハードウェアデバイス(例えば、無線及び/又は有線コネクタ及び通信ハードウェア)及びソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)を含むことで、デバイス900は外部デバイスと通信することが可能である。この外部デバイスは、他のコンピューティングデバイス、無線アクセスポイント又は基地局のような別個のデバイス、並びに、ヘッドセット、プリンタ、又は他の複数のデバイスのような周辺機器であり得る。
【0080】
接続970は、複数の異なるタイプの接続を含み得る。一般化すべく、デバイス900は、セルラ接続972及び無線接続974を伴うものとして示されている。セルラ接続972は、一般的に、GSM(登録商標)(グローバルシステムフォーモバイルコミュニケーションズ)又はその変形規格又は派生規格、CDMA(符号分割多重アクセス)又はその変形規格又は派生規格、TDM(時分割多重)又はその変形規格又は派生規格、LTE(ロングタームエボリューション、また「4G」とも称される)、又は他のセルラサービス規格を介して提供されるもののような、無線キャリアによって提供されるセルラネットワーク接続を指す。無線接続974は、セルラ方式ではない無線接続を指し、(Bluetooth(登録商標)のような)パーソナルエリアネットワーク、(WiFi(登録商標)のような)ローカルエリアネットワーク、及び/又は、(WiMax(登録商標)のような)ワイドエリアネットワーク、又はその他の無線通信を含み得る。無線通信とは、非固体の媒体を介した、変調された電波放射の使用によるデータの転送を指す。有線通信は、固体の通信媒体を介して生じる。
【0081】
周辺接続980は、ハードウェアインタフェース及びコネクタ、並びに、周辺接続を形成するソフトウェアコンポーネント(例えば、ドライバ、プロトコルスタック)を含む。デバイス900は、他のコンピューティングデバイスに対する周辺デバイスであり得る(「出」(to)982)と共に、自身に接続された周辺デバイスを有し得る(「入」(from)984)ものの両方であることが理解されよう。デバイス900は一般に、デバイス900上でコンテンツを管理(例えば、ダウンロード及び/又はアップロード、変更、同期)すること等のために、他のコンピューティングデバイスに接続するための「ドッキング」コネクタを有する。更に、ドッキングコネクタは、例えば、オーディオビジュアル又は他のシステムへと出力されるコンテンツをデバイス900が制御することを可能にするいくつかの周辺機器に、デバイス900が接続することを可能にし得る。
【0082】
プロプライエタリドッキングコネクタ又は他のプロプライエタリ接続ハードウェアに加えて、デバイス900は、一般的な又は規格に準拠したコネクタを介して、周辺接続980を形成し得る。一般的なタイプのものとして、ユニバーサルシリアルバス(USB)コネクタ(多数の異なるハードウェアインタフェースのいずれかを含み得る)、MiniDisplayPort(MDP)を含むDisplayPort、高精細マルチメディアインタフェース(HDMI(登録商標))、ファイヤワイヤ、又は他のタイプを含み得る。
【0083】
一実施形態において、システム900は、システムが、オペレーションの全帯域幅又は部分的帯域幅モードにおいてメモリ962を動作することを可能とする、モードコントロール966を含む。従って、システム900は、メモリサブシステム960において、メモリ962によりサポートされる複数の異なる帯域幅システムデータバスのうちの1つを含み得る。同一のメモリチップは、メモリデバイスの全内部の帯域幅を交換し得るメモリサブシステムデータバスを有する、又は、メモリデバイスを有する、部分的な内部の帯域幅のデータ量のみを交換し得るメモリサブシステムデータバスを有するシステム900において用いらされ得る。モードコントロール966は、メモリ962が何のオペレーションモードを用いするかという設定を提供する構成ロジックを表し得、及び、メモリが、メモリのハードウェアのI/Oコネクタ、及びメモリアレイ又はメモリコア(明示的には示されない)の間でインタフェースすべく、適切な内部のルーティングを選択することを可能とする、メモリ962内部へのロジックを表し得る。
【0084】
一態様において、メモリサブシステムにおいてインタフェースするための方法は、複数のメモリアレイを有するメモリデバイスで、メモリアクセスコマンドをメモリコントローラから受信する段階であって、メモリアクセスコマンドは、メモリデバイスとメモリコントローラとの間のシステムデータバス上においてデータの交換を含む段階と、メモリアクセスコマンドと関連付けられたバースト長の全ての転送期間中にシステムデータバス上においてデータを転送する段階であって、システムデータバス上において転送帯域幅のデータ量を転送する段階を含み、転送帯域幅は、メモリデバイスの内部のデータバスの利用可能な帯域幅のサブセットのみであって、利用可能な帯域幅は、アレイのグル―プにおいて全てのメモリアレイからのデータを含み、転送帯域幅は、グループにおけるメモリアレイのサブセットのみからのデータを含む段階とを含む。
【0085】
一実施形態において、メモリアクセスコマンドを受信する段階は、メモリ読み取りコマンドを受信する段階を含み、転送する段階は、内部のデータバス上のM個のメモリアレイから、Nビットのデータにアクセスする段階と、転送期間中にシステムデータバス上においてN/2ビットのアクセスされたデータを送信する段階とを更に含む。一実施形態において、システムデータバス上においてN/2ビットのデータを送信する段階は、メモリアレイのM/2個のみからデータを送信する段階を更に含む。一実施形態において、システムデータバス上においてN/2ビットのデータを送信する段階は、N/4ビットのデータを、M/2個のメモリアレイの1つのグループから内部でルーティングする段階と、N/4ビットのデータを、M/2個のメモリアレイの別のグループからN/2個のI/O(入/出力)コネクタの共通のグループに内部でルーティングする段階とを更に含む。一実施形態において、システムデータバス上においてN/2ビットのデータを送信する段階は、N/2ビットのデータを、M/2個のメモリアレイの1つのグループからN/2個のI/O(入/出力)コネクタのグループに内部でルーティングし、N/2ビットのデータを、M/2個のメモリアレイの別のグループから送信しない段階を更に含む。一実施形態において、メモリアクセスコマンドを受信する段階は、メモリ書き込みコマンドを受信する段階を含み、メモリデバイスは、M個のメモリアレイを含み、利用可能な帯域幅は、Nビットであって、転送帯域幅は、N/2ビットであって、転送する段階は、転送期間中にシステムデータバス上においてN/2ビットのデータを受信する段階と、N/2ビットのデータを、M/2個のメモリアレイにルーティングする段階とを更に含む。一実施形態において、N/2ビットのデータを、M/2個のメモリアレイにルーティングする段階は、N/4ビットのデータを、M/2個のメモリアレイの1つのグループに内部でルーティングし、N/4ビットのデータを、N/2個のI/O(入/出力)コネクタの共通のグループからM/2個のメモリアレイの別のグループに内部でルーティングする段階を更に含む。一実施形態において、N/2ビットのデータを、M/2個のメモリアレイにルーティングする段階は、N/2ビットのデータを、M/2個のメモリアレイの1つのグループに内部でルーティングし、任意のビットのデータを、M/2個のメモリアレイの別のグループにルーティングしない段階を更に含む。一実施形態において、システムデータバス上においてデータを転送する段階は、複数の転送モードのうちの1つに従って実行され、第1のモードに従って、データを転送する段階は、バースト長の全ての転送期間中に転送帯域幅のデータ量を転送する段階を含み、第2のモードに従って、データを転送する段階は、バースト長の全ての転送期間中にシステムデータバス上において利用可能な帯域幅のデータ量を転送する段階を含む。一実施形態において、バースト長を設定する段階を更に備え、システムデータバス上においてデータを転送する段階は、バースト長の設定に基づいて、転送帯域幅を変更する段階を含む。
【0086】
一態様において、メモリサブシステムにインタフェースするメモリデバイスは、複数のメモリアレイであって、それぞれがデータを格納するメモリストレージ要素を含むメモリアレイと、システムデータバス上においてメモリコントローラに結合するハードウェアのI/O(入/出力)コネクタと、複数のメモリアレイを、I/Oコネクタに結合する内部のメモリバスと、メモリアクセスコマンドを、メモリコントローラから受信し、メモリアクセスコマンドと関連付けられたバースト長の全ての転送期間中にシステムデータバス上においてデータを転送することであって、システムデータバス上において転送帯域幅のデータ量を転送することを含むロジックであって、メモリアクセスコマンドは、システムデータバス上においてデータの交換を含み、転送帯域幅は、メモリデバイスの内部のデータバスの利用可能な帯域幅のサブセットのみであり、利用可能な帯域幅は、アレイのグループにおいて全てのメモリアレイからのデータを含み、転送帯域幅は、グループにおけるメモリのサブセットのみからのデータを含むロジックとを含む。
【0087】
一実施形態において、ロジックは、メモリ読み取りコマンドを受信し、転送することは、内部のデータバス上でM個のメモリアレイからNビットのデータにアクセスし、転送期間中にシステムデータバス上においてN/2ビットのアクセスされたデータを送信するロジックを更に含む。一実施形態において、ロジックは、N/4ビットのデータを、M/2個のメモリアレイの1つのグループから内部でルーティングし、N/4ビットのデータを、M/2個のメモリアレイの別のグループからN/2個のI/Oコネクタの共通のグループに内部でルーティングする。一実施形態において、ロジックは、N/2ビットのデータを、M/2個のメモリアレイの1つのグループからN/2個のI/Oコネクタのグループに内部でルーティングし、N/2ビットのデータを、M/2個のメモリアレイの別のグループから送信しない。一実施形態において、ロジックは、メモリアレイのM/2個のみからデータを送信する。一実施形態において、ロジックは、メモリ書き込みコマンドを受信し、メモリデバイスは、M個のメモリアレイを含み、利用可能な帯域幅は、Nビットであって、転送帯域幅は、N/2ビットであって、転送することは、転送期間中にシステムデータバス上においてN/2ビットのデータを受信し、N/2ビットのデータを、M/2個のメモリアレイにルーティングするロジックを更に含む。一実施形態において、ロジックは、N/4ビットのデータを、M/2個のメモリアレイの1つのグループに内部でルーティングし、N/4ビットのデータを、N/2個のI/Oコネクタの共通のグループから、M/2個のメモリアレイの別のグループに内部でルーティングする。一実施形態において、ロジックは、N/2ビットのデータを、M/2個のメモリアレイの1つのグループに内部でルーティングし、任意のビットのデータを、M/2個のメモリアレイの別のグループにルーティングしない。一実施形態において、ロジックは、複数の転送モードのうちの1つに従って、システムデータバス上においてデータを転送し、第1のモードに従って、ロジックは、バースト長の全ての転送期間中に転送帯域幅のデータ量を転送し、第2のモードに従って、ロジックは、バースト長の全ての転送期間中にシステムデータバス上において利用可能な帯域幅のデータ量を転送する。一実施形態において、バースト長を設定するロジックを更に備え、システムデータバス上においてデータを転送することは、バースト長の設定に基づいて、転送帯域幅を変更することを含む。
【0088】
一態様において、メモリサブシステムを有する電子デバイスは、メモリコントローラと、メモリコントローラとインタフェースするメモリデバイスと、メモリデバイスからアクセスされたデータに基づいてディスプレイを生成すべく結合されたタッチスクリーンディスプレイとを含み、メモリデバイスは、複数のメモリアレイであって、それぞれがデータを格納するメモリストレージ要素を含むメモリアレイと、システムデータバス上においてメモリコントローラに結合するハードウェアのI/O(入/出力)コネクタと、複数のメモリアレイを、I/Oコネクタに結合する内部のメモリバスと、メモリアクセスコマンドを、メモリコントローラから受信し、メモリアクセスコマンドと関連付けられたバースト長の全ての転送期間中にシステムデータバス上においてデータを転送し、システムデータバス上において転送帯域幅のデータ量を転送することを含むロジックであって、メモリアクセスコマンドは、システムデータバス上においてデータの交換を含み、転送帯域幅は、メモリデバイスの内部のデータバスの利用可能な帯域幅のサブセットのみであって、利用可能な帯域幅は、アレイのグループにおいて全てのメモリアレイからのデータを含み、転送帯域幅は、グループにおけるメモリアレイのサブセットのみからのデータを含むロジックとを含む。
【0089】
一実施形態において、ロジックは、メモリ読み取りコマンドを受信し、転送することは、内部のデータバス上のM個のメモリアレイからNビットのデータにアクセスし、転送期間中にシステムデータバス上においてN/2ビットのアクセスされたデータを送信するロジックを更に含む。一実施形態において、ロジックは、N/4ビットのデータを、M/2個のメモリアレイの1つのグループから内部でルーティングし、N/4ビットのデータを、M/2個のメモリアレイの別のグループからN/2個のI/Oコネクタの共通のグループに内部でルーティングする。一実施形態において、ロジックは、N/2ビットのデータを、M/2個のメモリアレイの1つのグループからN/2個のI/Oコネクタのグループに内部でルーティングし、N/2ビットのデータを、M/2個のメモリアレイの別のグループから送信しない。一実施形態において、ロジックは、データをメモリアレイのM/2個のみから送信する。一実施形態において、ロジックは、メモリ書き込みコマンドを受信し、メモリデバイスは、M個のメモリアレイを含み、利用可能な帯域幅は、Nビットであって、転送帯域幅は、N/2ビットであって、転送する段階は、転送期間中にシステムデータバス上においてN/2ビットのデータを受信し、N/2ビットのデータをM/2個のメモリアレイにルーティングするロジックを更に含む。一実施形態において、ロジックは、N/4ビットのデータを、M/2個のメモリアレイの1つのグループに内部でルーティングし、M/4ビットのデータを、N/2個のI/Oコネクタの共通のグループからM/2個のメモリアレイの別のグループに内部でルーティングする。一実施形態において、ロジックは、N/2ビットのデータを、M/2個のメモリアレイの1つのグループに内部でルーティングし、任意のビットのデータを、M/2個のメモリアレイの別のグループにルーティングしない。一実施形態において、ロジックは、複数の転送モードのうちの1つ従って、システムデータバス上にデータを転送し、第1のモードに従って、ロジックは、バースト長の全ての転送期間中に転送帯域幅のデータ量を転送し、第2のモードに従って、ロジックは、バースト長の全ての転送期間中にシステムデータバス上において利用可能な帯域幅のデータ量を転送する。一実施形態において、バースト長を設定するロジックを更に備え、システムデータバス上においてデータを転送することは、バースト長の設定に基づいて転送帯域幅を変更することを含む。
【0090】
一態様において、実行される時にメモリサブシステムにおいてインタフェースするための動作を実行する格納された内容を有するコンピュータ可読記憶媒体を備える製造物品は、複数のメモリアレイを有するメモリデバイスで、メモリアクセスコマンドをメモリコントローラから受信することと、メモリアクセスコマンドと関連付けられたバースト長の全ての転送期間中にシステムデータバス上においてデータを転送することであって、システムデータバス上において転送帯域幅のデータ量を転送することとを含み、メモリアクセスコマンドは、メモリデバイスとメモリコントローラとの間のシステムデータバス上においてデータの交換を含み、転送帯域幅は、メモリデバイスの内部のデータバスの利用可能な帯域幅のサブセットのみであって、利用可能な帯域幅は、アレイのグループにおいて全てのメモリアレイからのデータを含み、転送帯域幅は、グループにおけるメモリアレイのサブセットのみからのデータを含む。
【0091】
一実施形態において、メモリアクセスコマンドを受信するための内容は、メモリ読み取りコマンドを受信するための内容を含み、転送するための内容は、内部のデータバス上のM個のメモリアレイからNビットのデータにアクセスし、転送期間中にシステムデータバス上においてN/2ビットのアクセスされたデータを送信するための内容を更に含む。一実施形態において、システムデータバス上においてN/2ビットのデータを送信するための内容は、メモリアレイのM/2個のみからデータを送信するための内容を更に含む。一実施形態において、システムデータバス上においてN/2ビットのデータを送信するための内容は、N/4ビットのデータを、M/2個のメモリアレイの1つのグループから内部でルーティングするためのコンテンツと、N/4ビットのデータを、M/2個のメモリアレイの別のグループからN/2個のI/O(入/出力)コネクタの共通のグループに内部でルーティングするための内容を更に含む。一実施形態において、システムデータバス上においてN/2ビットのデータを送信するための内容は、N/2ビットのデータを、M/2個のメモリアレイの1つのグループからN/2個のI/O(入/出力)コネクタのグループに内部でルーティングし、N/2ビットのデータを、M/2個のメモリアレイの別のグループから送信しないための内容を更に含む。一実施形態において、メモリアクセスコマンドを受信するための内容は、メモリ書き込みコマンドを受信するための内容を含み、メモリデバイスは、M個のメモリアレイを含み、利用可能な帯域幅は、Nビットであって、転送帯域幅は、N/2ビットであって、転送するための内容は、転送期間中にシステムデータバス上においてN/2ビットのデータを受信し、N/2ビットのデータを、M/2個のメモリアレイにルーティングするための内容を更に含む。一実施形態において、N/2ビットのデータを、M/2個のメモリアレイにルーティングするための内容は、N/4ビットのデータを、M/2個のメモリアレイの1つのグループに内部でルーティングするための内容と、N/4ビットのデータを、N/2個のI/O(入/出力)コネクタの共通のグループからM/2個のメモリアレイの別のグループに内部でルーティングするための内容とを更に含む。一実施形態において、N/2ビットのデータを、M/2個のメモリアレイにルーティングするための内容は、N/2ビットのデータを、M/2個のメモリアレイの1つのグループに内部でルーティングし、任意のビットのデータを、M/2個のメモリアレイの別のグループにルーティングしないための内容を更に含む。一実施形態において、システムデータバス上においてデータを転送するための内容は、複数の転送モードのうちの1つに従って実行され、第1のモードに従って、データを転送するための内容は、バースト長の全ての転送期間中に転送帯域幅のデータ量を転送するための内容を含み、第2のモードに従って、データを転送するための内容は、バースト長の全ての転送期間中にシステムデータバス上において利用可能な帯域幅のデータ量を転送するための内容を含む。一実施形態において、バースト長を設定するための内容を更に備え、システムデータバス上においてデータを転送するための内容は、バースト長の設定に基づいて、転送帯域幅を変更するための内容を含む。
【0092】
一態様において、メモリサブシステムにおいてインタフェースするための装置は、複数のメモリアレイを有するメモリデバイスで、メモリコントローラからメモリアクセスコマンドを受信するための手段と、メモリアクセスコマンドと関連付けられたバースト長の全ての転送期間中にシステムデータバス上においてデータを転送するための手段であって、システムデータバス上において転送帯域幅のデータ量を転送するための手段を含む手段とを備え、メモリアクセスコマンドは、メモリデバイスとメモリコントローラとの間のシステムデータバス上においてデータの交換を含み、転送帯域幅は、メモリデバイスの内部のデータバスの利用可能な帯域幅のサブセットのみであって、利用可能な帯域幅は、アレイのグループにおいて全てのメモリアレイからのデータを含み、転送帯域幅は、グループにおけるメモリアレイのサブセットのみからのデータを含む。
【0093】
一実施形態において、メモリアクセスコマンドを受信するための手段は、メモリ読み取りコマンドを受信するための手段を含み、転送するための手段は、Nビットのデータを、内部のデータバス上でM個のメモリアレイからNビットのデータにアクセスし、転送期間中にシステムデータバス上においてN/2ビットのアクセスされたデータを送信するための手段を更に含む。一実施形態において、システムデータバス上においてN/2ビットのデータを送信するための手段は、メモリアレイのM/2個のみからデータを送信するための手段を更に含む。一実施形態において、システムデータバス上においてN/2ビットのデータを送信するための手段は、N/4ビットのデータをM/2個のメモリアレイの1つのグループから内部でルーティングするための手段と、N/4ビットのデータを、M/2個のメモリアレイの別のグループからN/2個のI/O(入/出力)コネクタの共通のグループに内部でルーティングするための手段とを更に含む。一実施形態において、システムデータバスの上においてN/2ビットのデータを送信するための手段は、N/2ビットのデータを、M/2個のメモリアレイの1つのグループからN/2個のI/O(入/出力)コネクタのグループに内部でルーティングし、N/2ビットのデータを、M/2個のメモリアレイの別のグル―プから送信しないための手段を更に含む。一実施形態において、メモリアクセスコマンドを受信するための手段は、メモリ書き込みコマンドを受信するための手段を含み、メモリデバイスは、M個のメモリアレイを含み、利用可能な帯域幅は、Nビットであって、転送帯域幅は、N/2ビットであって、転送するための手段は、転送期間中にシステムデータバス上においてN/2ビットのデータを受信し、N/2ビットのデータをM/2個のメモリアレイにルーティングするための手段を更に含む。一実施形態において、N/2ビットのデータを、M/2個のメモリアレイにルーティングするための手段は、N/4ビットのデータを、M/2個のメモリアレイの1つのグループに内部でルーティングするための手段と、N/4ビットのデータを、N/2個のI/O(入/出力)コネクタの共通のグループからM/2個のメモリアレイの別のグループに内部でルーティングするための手段とを更に含む。一実施形態において、N/2ビットのデータを、M/2個のメモリアレイにルーティングするための手段は、N/2ビットのデータを、M/2個のメモリアレイの1つのグループに内部でルーティングし、任意のビットのデータを、M/2個のメモリアレイの別のグループにルーティングしないための手段を更に含む。一実施形態において、システムデータバス上においてデータを転送するための手段は、複数の転送モードのうちの1つに従って実行され、第1のモードに従って、データを転送するための手段は、バースト長の全ての転送期間中に転送帯域幅のデータ量を転送するための手段を含み、第2のモードに従って、データを転送するための手段は、バースト長の全ての転送期間中にシステムデータバス上において利用可能な帯域幅のデータ量を転送するための手段を含む。一実施形態において、バースト長を設定するための手段を更に備え、システムデータバス上においてデータを転送するための手段は、バースト長の設定に基づいて転送帯域幅を変更するための手段を含む。
【0094】
本明細書において示されるフロー図は、様々な処理動作のシーケンスの例を提供する。フロー図は、ソフトウェア、及び/又はファームウェアルーチンにより実行される動作、並びにハードウェアロジックにより実行される動作のような物理的動作を示し得る。一実施形態において、フロー図は、ハードウェア及び/又はソフトウェアで実装され得る有限ステートマシン(FSM)の状態を示し得る。特定のシーケンスまたは順序について示しているが、別途明記されない限り、動作の順序は、修正され得る。従って、示されている実施形態は、例としてのみ理解されるべきであり、このプロセスは、異なる順序で実行され得、いくつかの動作は並列に実行され得る。更に、様々な実施形態において、1又は複数の動作が省略され得る。従って、あらゆる実施形態において、全ての動作が必要なわけではない。他のプロセスフローが可能である。
【0095】
様々な動作または機能が本明細書で説明された程度において、それらは、ソフトウェアコード、複数の命令、構成、及び/又はデータとして説明、又は定義され得る。そのコンテンツは、直接的実行可能物(「オブジェクト」又は「実行可能な」形式)、ソースコード、又は差分コード(「デルタ」又は「パッチ」コード)であり得る。本明細書に説明される実施形態のソフトウェアコンテンツは、そのコンテンツが格納された製造物品を介して提供され得る。又は、通信インタフェースを介してデータを送信するための通信インタフェースを動作させる方法を介して提供され得る。機械可読記憶媒体は、説明される機能又は動作を機械に実行させ得、記録可能/記録不可能な媒体(例えば、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学式記憶媒体、フラッシュメモリデバイス、等)のように、機械(例えば、コンピューティングデバイス、電子システム、等)によってアクセス可能な形式で情報を格納する任意の機構を含む。通信インタフェースは、メモリバスインタフェース、プロセッサバスインタフェース、インターネット接続、ディスクコントローラ、等のように、別のデバイスと通信するための、ハードワイヤード、無線、光、等の媒体の任意のものにインタフェースする任意の機構を含む。通信インタフェースは、構成パラメータを提供することにより、及び/又は、ソフトウェアコンテンツを記述したデータ信号を提供するための通信インタフェースを準備する信号を送信することにより構成され得る。通信インタフェースは、通信インタフェースに送信される1又は複数のコマンド又は信号を介してアクセスされ得る。
【0096】
本明細書で説明される様々なコンポーネントは、説明された動作又は機能を実行するための手段であり得る。本明細書で説明された各コンポーネントは、ソフトウェア、ハードウェア、またはこれらの組み合わせを含む。これらのコンポーネントは、ソフトウェアモジュール、ハードウェアモジュール、特定用途ハードウェア(例えば、アプリケーション特定のハードウェア、特定用途向け集積回路(ASIC)、デジタルシグナルプロセッサ(DSP)、等)、組み込みコントローラ、ハードワイヤード回路、等として実装され得る。
【0097】
本明細書に説明されているものに加えて、開示されている本発明の実施形態および実施態様に対し、これらの範囲から逸脱することなく、様々な変更がなされ得る。従って、本明細書における例示および例は、限定的な意味ではなく、例示的な意味に解釈されるべきである。本発明の範囲は、以下の請求項のみを参照して評価されるべきである。
本実施形態の例を下記の各項目として示す。
[項目1]
メモリサブシステムにおいてインタフェースするための方法であって、
複数のメモリアレイを有するメモリデバイスで、メモリアクセスコマンドをメモリコントローラから受信する段階であって、前記メモリアクセスコマンドは、前記メモリデバイスと前記メモリコントローラとの間のシステムデータバス上においてデータの交換を含む段階と、
前記メモリアクセスコマンドと関連付けられたバースト長の全ての転送期間中に前記システムデータバス上においてデータを転送する段階であって、前記システムデータバス上において転送帯域幅のデータ量を転送する段階を含み、前記転送帯域幅は、前記メモリデバイスの内部のデータバスの利用可能な帯域幅のサブセットのみであって、前記利用可能な帯域幅は、複数のアレイのグル―プにおいて全てのメモリアレイからのデータを含み、前記転送帯域幅は、前記グループにおける複数のメモリアレイのサブセットのみからのデータを含む段階と
を備える方法。
[項目2]
前記メモリアクセスコマンドを受信する段階は、メモリ読み取りコマンドを受信する段階を含み、前記転送する段階は、
前記内部のデータバス上のM個の複数のメモリアレイから、Nビットのデータにアクセスする段階と、
前記複数の転送期間中に前記システムデータバス上においてN/2ビットのアクセスされたデータを送信する段階とを更に含む、項目1に記載の方法。
[項目3]
前記システムデータバス上においてN/2ビットのデータを送信する段階は、前記複数のメモリアレイのM/2個のみからデータを送信する段階を更に含む、項目2に記載の方法。
[項目4]
前記システムデータバス上においてN/2ビットのデータを送信する段階は、N/4ビットのデータを、M/2個のメモリアレイの1つのグループから内部でルーティングする段階と、N/4ビットのデータを、M/2個のメモリアレイの別のグループからN/2個のI/O(入/出力)コネクタの共通のグループに内部でルーティングする段階とを更に含む、項目2に記載の方法。
[項目5]
前記システムデータバス上においてN/2ビットのデータを送信する段階は、N/2ビットのデータを、M/2個のメモリアレイの1つのグループからN/2個のI/O(入/出力)コネクタのグループに内部でルーティングし、N/2ビットのデータを、M/2個のメモリアレイの別のグループから送信しない段階を更に含む、項目2に記載の方法。
[項目6]
前記メモリアクセスコマンドを受信する段階は、メモリ書き込みコマンドを受信する段階を含み、前記メモリデバイスは、M個のメモリアレイを含み、前記利用可能な帯域幅は、Nビットであって、前記転送帯域幅は、N/2ビットであって、前記転送する段階は、
前記複数の転送期間中に前記システムデータバス上においてN/2ビットのデータを受信する段階と、
前記N/2ビットのデータを、M/2個のメモリアレイにルーティングする段階とを更に含む、項目1から5のいずれか一項に記載の方法。
[項目7]
前記N/2ビットのデータを、前記M/2個のメモリアレイにルーティングする段階は、N/4ビットのデータを、M/2個のメモリアレイの1つのグループに内部でルーティングし、N/4ビットのデータを、N/2個のI/O(入/出力)コネクタの共通のグループからM/2個のメモリアレイの別のグループに内部でルーティングする段階を更に含む、項目6に記載の方法。
[項目8]
前記N/2ビットのデータを、前記M/2個のメモリアレイにルーティングする段階は、前記N/2ビットのデータを、M/2個のメモリアレイの1つのグループに内部でルーティングし、任意の複数のビットのデータを、M/2個のメモリアレイの別のグループにルーティングしない段階を更に含む、項目6に記載の方法。
[項目9]
前記システムデータバス上において前記データを転送する段階は、複数の転送モードのうちの1つに従って実行され、第1のモードに従って、前記データを転送する段階は、前記バースト長の全ての転送期間中に前記転送帯域幅のデータ量を転送する段階を含み、第2のモードに従って、前記データを転送する段階は、前記バースト長の全ての転送期間中に前記システムデータバス上において前記利用可能な帯域幅のデータ量を転送する段階を含む、項目1から8のいずれか一項に記載の方法。
[項目10]
前記バースト長を設定する段階を更に備え、前記システムデータバス上において前記データを転送する段階は、前記バースト長の設定に基づいて、前記転送帯域幅を変更する段階を含む、項目1から9のいずれか一項に記載の方法。
[項目11]
実行される時に、項目1から10のいずれか一項に記載の、メモリサブシステムにおいてインタフェースするための方法を実行する格納された内容を有するコンピュータ可読記憶媒体を備える、製造物品。
[項目12]
項目1から10のいずれか一項に記載の方法を実行する複数の動作を実行するための手段を備える、メモリサブシステムにおいてインタフェースするための装置。
[項目13]
複数のメモリアレイであって、それぞれがデータを格納する複数のメモリストレージ要素を含む前記複数のメモリアレイと、
システムデータバス上においてメモリコントローラに結合する複数のハードウェアのI/O(入/出力)コネクタと、
前記複数のメモリアレイを、前記複数のI/Oコネクタに結合する内部のメモリバスと、
メモリアクセスコマンドを、前記メモリコントローラから受信し、前記メモリアクセスコマンドと関連付けられたバースト長の全ての転送期間中に前記システムデータバス上においてデータを転送することであって、前記システムデータバス上において転送帯域幅のデータ量を転送することを含むロジックと
を備え、
前記メモリアクセスコマンドは、前記システムデータバス上においてデータの交換を含み、前記転送帯域幅は、メモリデバイスの内部のデータバスの利用可能な帯域幅のサブセットのみであり、前記利用可能な帯域幅は、複数のアレイのグループにおいて全てのメモリアレイからのデータを含み、前記転送帯域幅は、前記グループにおける複数のメモリアレイのサブセットのみからのデータを含む、メモリサブシステムにインタフェースするメモリデバイス。
[項目14]
前記ロジックは、メモリ読み取りコマンドを受信し、前記転送することは、
前記内部のデータバス上でM個のメモリアレイからNビットのデータにアクセスし、
前記複数の転送期間中に前記システムデータバス上においてN/2ビットのアクセスされたデータを送信する前記ロジックを更に含む、項目13に記載のメモリデバイス。
[項目15]
前記ロジックは、N/4ビットのデータを、M/2個のメモリアレイの1つのグループから内部でルーティングし、N/4ビットのデータを、M/2個のメモリアレイの別のグループからN/2個のI/Oコネクタの共通のグループに内部でルーティングする、項目14に記載のメモリデバイス。
[項目16]
前記ロジックは、N/2ビットのデータを、M/2個のメモリアレイの1つのグループからN/2個のI/Oコネクタのグループに内部でルーティングし、N/2ビットのデータを、M/2個のメモリアレイの別のグループから送信しない、項目14に記載のメモリデバイス。
[項目17]
前記ロジックは、前記複数のメモリアレイのM/2個のみからデータを送信する、項目14に記載のメモリデバイス。
[項目18]
前記ロジックは、メモリ書き込みコマンドを受信し、前記メモリデバイスは、M個のメモリアレイを含み、前記利用可能な帯域幅は、Nビットであって、前記転送帯域幅は、N/2ビットであって、前記転送することは、
前記複数の転送期間中に前記システムデータバス上においてN/2ビットのデータを受信し、
前記N/2ビットのデータを、M/2個のメモリアレイにルーティングする前記ロジックを更に含む、項目13から17のいずれか一項に記載のメモリデバイス。
[項目19]
前記ロジックは、N/4ビットのデータを、M/2個のメモリアレイの1つのグループに内部でルーティングし、N/4ビットのデータを、N/2個のI/Oコネクタの共通のグループからM/2個のメモリアレイの別のグループに内部でルーティングする、項目13から18のいずれか一項に記載のメモリデバイス。
[項目20]
前記ロジックは、前記N/2ビットのデータを、M/2個のメモリアレイの1つのグループに内部でルーティングし、任意の複数のビットのデータを、M/2個のメモリアレイの別のグループにルーティングしない、項目18に記載のメモリデバイス。
[項目21]
前記ロジックは、複数の転送モードのうちの1つに従って、前記システムデータバス上に前記データを転送し、第1のモードに従って、前記ロジックは、前記バースト長の全ての転送期間中に前記転送帯域幅のデータ量を転送し、第2のモードに従って、前記ロジックは、前記バースト長の全ての転送期間中に前記システムデータバス上において前記利用可能な帯域幅のデータ量を転送する、項目13から20のいずれか一項に記載のメモリデバイス。
[項目22]
前記バースト長を設定するロジックを更に備え、前記システムデータバス上において前記データを転送することは、前記バースト長の設定に基づいて、前記転送帯域幅を変更することを含む、項目13から21のいずれか一項に記載のメモリデバイス。
[項目23]
メモリコントローラと、
前記メモリコントローラとインタフェースするメモリデバイスと、
前記複数のメモリデバイスからアクセスされたデータに基づいてディスプレイを生成すべく結合されたタッチスクリーンディスプレイと
を備え、
前記メモリデバイスは、
複数のメモリアレイであって、それぞれがデータを格納する複数のメモリストレージ要素を含む、複数のメモリアレイと、
システムデータバス上においてメモリコントローラに結合する複数のハードウェアのI/O(入/出力)コネクタと、
前記複数のメモリアレイを、前記複数のI/Oコネクタに結合する内部のメモリバスと、
メモリアクセスコマンドを、前記メモリコントローラから受信し、前記メモリアクセスコマンドと関連付けられたバースト長の全ての転送期間中に前記システムデータバス上においてデータを転送し、前記システムデータバス上において転送帯域幅のデータ量を転送することを含むロジックと
を含み、
前記メモリアクセスコマンドは、前記システムデータバス上におけるデータの交換を含み、前記転送帯域幅は、前記メモリデバイスの内部のデータバスの利用可能な帯域幅のサブセットのみであって、前記利用可能な帯域幅は、複数のアレイのグループにおいて全てのメモリアレイからのデータを含み、前記転送帯域幅は、前記グループにおける複数のメモリアレイのサブセットのみからのデータを含む、メモリサブシステムを有する電子デバイス。