IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 旺宏電子股▲ふん▼有限公司の特許一覧

<>
  • 特許-非順次的ページ連続リード 図1
  • 特許-非順次的ページ連続リード 図2
  • 特許-非順次的ページ連続リード 図3
  • 特許-非順次的ページ連続リード 図4
  • 特許-非順次的ページ連続リード 図5
  • 特許-非順次的ページ連続リード 図6
  • 特許-非順次的ページ連続リード 図7
  • 特許-非順次的ページ連続リード 図8
  • 特許-非順次的ページ連続リード 図9
  • 特許-非順次的ページ連続リード 図10
  • 特許-非順次的ページ連続リード 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-22
(45)【発行日】2023-01-05
(54)【発明の名称】非順次的ページ連続リード
(51)【国際特許分類】
   G11C 16/26 20060101AFI20221223BHJP
   G11C 16/04 20060101ALI20221223BHJP
   G06F 11/10 20060101ALI20221223BHJP
   G06F 12/00 20060101ALI20221223BHJP
【FI】
G11C16/26 110
G11C16/04 170
G06F11/10 668
G06F12/00 560B
G06F12/00 597U
【請求項の数】 16
(21)【出願番号】P 2021167299
(22)【出願日】2021-10-12
(62)【分割の表示】P 2019185125の分割
【原出願日】2019-10-08
(65)【公開番号】P2022002164
(43)【公開日】2022-01-06
【審査請求日】2021-10-12
(31)【優先権主張番号】62/746,911
(32)【優先日】2018-10-17
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/746,770
(32)【優先日】2018-10-17
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/533,463
(32)【優先日】2019-08-06
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/544,055
(32)【優先日】2019-08-19
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】599129074
【氏名又は名称】旺宏電子股▲ふん▼有限公司
(74)【代理人】
【識別番号】100107423
【弁理士】
【氏名又は名称】城村 邦彦
(74)【代理人】
【識別番号】100120949
【弁理士】
【氏名又は名称】熊野 剛
(74)【代理人】
【識別番号】100155457
【弁理士】
【氏名又は名称】野口 祐輔
(72)【発明者】
【氏名】洪 碩男
【審査官】小林 紀和
(56)【参考文献】
【文献】米国特許出願公開第2014/0258811(US,A1)
【文献】特開2009-158015(JP,A)
【文献】米国特許出願公開第2014/0269065(US,A1)
【文献】特開2013-235642(JP,A)
【文献】特開2014-038593(JP,A)
【文献】特開2016-035795(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 16/26
G11C 16/04
G06F 11/10
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
複数のビット線を含むメモリアレイと、
ページ幅を有する前記複数のビット線に結合されるページバッファと、
前記ページ幅未満のI/O幅を有するI/Oデータユニットの入力/出力インターフェースと、
前記ページバッファおよび前記入力/出力インターフェースの間に接続されるキャッシュを含むデータパス回路と、
前記入力/出力インターフェースにおいて受信されたコマンドに応答して、ページのストリームを前記入力/出力インターフェースにおいて出力するための連続ページリード動作を含むメモリ動作を制御するコントローラであって、前記連続ページリード動作はコマンドのシリーズに応答することを含み、前記シリーズは前記連続ページリード動作を開始するための第1のコマンドおよび前記キャッシュから前記入力/出力インターフェースにデータを移動させるための1つまたは複数のストリーム内コマンドを含み、前記第1のコマンドは、順次に、ページアドレスからページを前記ページバッファにロードし、前記ページを前記キャッシュに移動させ、次のページアドレスから次のページを前記ページバッファにロードするための、前記連続ページリード動作を開始するための前記ページアドレスを含み、前記コントローラは、前記次のページアドレスとして非順次アドレスを使用して、前記ページのストリーム内の非順次ページを提供するように構成され、前記非順次アドレスは、前記ページのストリーム内の先行ページの前記キャッシュからデータを読み込むために、前記1つまたは複数のストリーム内コマンド内の1つのストリーム内コマンドで提供される、コントローラと
を備え
前記キャッシュは、前記ページバッファに結合される第2バッファレベルと、前記第2バッファレベルに結合される第3バッファレベルとを含み、前記データパス回路は、前記第3バッファレベルを前記入力/出力インターフェースに接続する、メモリデバイス。
【請求項2】
前記コントローラは、前記非順次アドレスを含む前記ストリーム内コマンドが受信されない限り、前記次のページアドレスとして順次アドレスを使用して、前記ページのストリームを提供するように構成される、請求項1に記載のデバイス。
【請求項3】
前記データパス回路に接続されるECC回路であって、前記データパス回路内のページに対して、前記ページを前記入力/出力インターフェースにおいて出力できるようにする前に、ECC機能を実行する、ECC回路を含む、請求項1に記載のデバイス。
【請求項4】
前記ECC回路は、前記ページ幅未満であって前記I/O幅を超えるECCチャンク幅を有するデータチャンクを使用して動作する、請求項に記載のデバイス。
【請求項5】
前記データパス回路に接続されるECC回路であって、前記ページ幅未満であって前記I/O幅を超えるECCチャンク幅を有するデータチャンクを使用してECC機能を実行する、ECC回路
を含み、
前記第3バッファレベルは、第1の部分および第2の部分と、前記第3バッファレベルの前記第1の部分を前記ECC回路および前記入力/出力インターフェースに交互に接続し、前記第3バッファレベルの前記第2の部分を前記ECC回路および前記入力/出力インターフェースに交互に接続するデータパスとを含む、請求項1に記載のデバイス。
【請求項6】
前記入力/出力インターフェースは、アドレスおよびデータの両方を運ぶように構成されるシリアル入力線を含む、請求項1に記載のデバイス。
【請求項7】
複数のビット線を含むメモリアレイと、
ページ幅を有する前記複数のビット線に結合されるページバッファと、
前記ページ幅未満のI/O幅を有するI/Oデータユニットの入力/出力インターフェースと、
前記ページバッファおよび前記入力/出力インターフェースの間に接続され、キャッシュを含むデータパス回路と、
前記入力/出力インターフェースにおいて受信されたコマンドに応答して、ページのストリームを前記入力/出力インターフェースにおいて出力するための連続ページリード動作を含むメモリ動作を制御するコントローラであって、前記連続ページリード動作はコマンドのシリーズに応答することを含み、前記シリーズは第1のコマンドおよび1つまたは複数のストリーム内コマンドを含み、前記1つまたは複数のストリーム内コマンド内の前記ストリーム内コマンドは、前記ストリーム内の先行ページの出力を完了する前に受信され、前記第1のコマンドは前記連続ページリード動作を開始するためのアドレスを含み、前記1つまたは複数のストリーム内コマンド内の少なくとも1つのストリーム内コマンドは、前記ページのストリーム内の非順次ページを提供するための、前記ページのストリーム内の前記非順次ページの非順次アドレスを含む、コントローラと
を備え、
前記データパス回路に接続されるECC回路であって、前記ページ幅未満であって前記I/O幅を超えるECCチャンク幅を有するデータチャンクを使用してECC機能を実行する、ECC回路
を含み、
前記データパス回路は、前記ページバッファに結合される第2バッファレベルと、前記第2バッファレベルに結合される第3バッファレベルとを含み、前記第3バッファレベルは、第1の部分および第2の部分と、前記第3バッファレベルの前記第1の部分を前記ECC回路および前記入力/出力インターフェースに交互に接続し、前記第3バッファレベルの前記第2の部分を前記ECC回路および前記入力/出力インターフェースに交互に接続するデータパスとを含み、
前記第3バッファレベルの前記第1および第2の部分は前記ページ幅未満のバッファ幅を有し、前記第3バッファレベルの前記第1および第2の部分を前記ECC回路および前記入力/出力インターフェースに交互に接続する前記データパスは、前記バッファ幅未満のバス幅を有する、メモリデバイス
【請求項8】
データおよび関連するエラー検出訂正(ECC)コードを記憶する、複数のビット線を含むメモリアレイと、
データおよび関連するECCコードのページを記憶するための、ページ幅を有する前記複数のビット線に結合されるページバッファと、
前記ページ幅未満のI/O幅を有するI/Oデータユニットの入力/出力インターフェースと、
前記ページバッファおよび前記入力/出力インターフェースの間に接続されるキャッシュを含むデータパス回路と、
前記入力/出力インターフェースにおいて受信されたコマンドに応答して、ページのストリームを前記入力/出力インターフェースにおいて出力するための連続ページリード動作を含むメモリ動作を制御するコントローラであって、前記連続ページリード動作はコマンドのシリーズに応答することを含み、前記シリーズは前記連続ページリード動作を開始するための第1のコマンドおよび前記キャッシュから前記入力/出力インターフェースにデータを移動させるための1つまたは複数のストリーム内コマンドを含み、前記第1のコマンドは、順次に、ページアドレスからページを前記ページバッファにロードし、前記ページを前記キャッシュに移動させ、次のページアドレスから次のページを前記ページバッファにロードするための、前記連続ページリード動作を開始するための前記ページアドレスを含み、前記コントローラは、前記次のページアドレスとして非順次アドレスを使用して、前記ページのストリーム内の非順次ページを提供するように構成され、前記非順次アドレスは、前記キャッシュからデータを前記ページのストリーム内の先行ページの前記入力/出力インターフェースに移動させるために、前記1つまたは複数のストリーム内コマンド内の1つのストリーム内コマンドで提供される、コントローラと
前記データパス回路に接続されるエラー検出訂正(ECC)回路であって、前記ページのストリーム内のページに対して、前記ページを出力する前にECC機能を実行し、前記ページ幅未満であって前記I/O幅を超えるECCチャンク幅を有するデータチャンクを使用して動作する、ECC回路と
を備え、
前記キャッシュは、前記ページバッファに結合される第2バッファレベルと、前記第2バッファレベルに結合される第3バッファレベルとを含み、前記第3バッファレベルは、第1の部分および第2の部分と、前記第3バッファレベルの前記第1の部分を前記ECC回路および前記入力/出力インターフェースに交互に接続し、前記第3バッファレベルの前記第2の部分を前記ECC回路および前記入力/出力インターフェースに交互に接続するデータパスとを含み、
前記第3バッファレベルの前記第1および第2の部分は前記ページ幅未満のバッファ幅を有し、前記第3バッファレベルの前記第1および第2の部分を前記ECC回路および前記入力/出力インターフェースに交互に接続する前記データパスは、前記バッファ幅未満のバス幅を有する集積回路メモリデバイス。
【請求項9】
前記第2バッファレベルは、前記ページバッファの第1の部分に結合される第1の部分と、前記ページバッファの第2の部分に結合される第2の部分とを含、前記第2バッファレベルの前記第1および第2の部分は前記ページ幅未満のバッファ幅を有前記データパスは、前記第1の部分を前記ECC回路および前記入力/出力インターフェースに交互に接続し、前記第2の部分を前記ECC回路および前記入力/出力インターフェースに交互に接続する、請求項に記載のデバイス。
【請求項10】
前記メモリアレイはNANDフラッシュメモリを備える、請求項に記載のデバイス。
【請求項11】
前記入力/出力インターフェースはシリアルペリフェラルインターフェースポートを備える、請求項に記載のデバイス。
【請求項12】
前記入力/出力インターフェースは、アドレスおよびデータの両方を運ぶように構成されるシリアル入力線を含む、請求項8に記載のデバイス。
【請求項13】
ページのストリームを読み込むようにメモリデバイスを動作させるための方法であって、
メモリから前記メモリデバイスの入力/出力インターフェースにデータにページのストリームを出力するためのコマンドのシリーズに応答することであって、前記シリーズは、順次に、ページアドレスからページをページバッファにロードし、前記ページを前記ページバッファに結合されるキャッシュの第2バッファレベルおよび前記キャッシュの前記第2バッファレベルに結合される第3バッファレベルに移動させ、次のページアドレスから次のページを前記ページバッファにロードすることを含む連続ページリード動作を開始するための、前記ページアドレスを含む第1のコマンドおよび前記キャッシュの前記第3バッファレベルから前記入力/出力インターフェースにデータを移動させるための1つまたは複数のストリーム内コマンドを含む、応答することと、
前記1つまたは複数のストリーム内コマンド内の少なくとも1つのストリーム内コマンドを受信することであって、前記少なくとも1つのストリーム内コマンドは、前記キャッシュの前記第3バッファレベルから前記入力/出力インターフェースに前記ページのストリーム内の先行ページのデータを移動させるための、非順次ページアドレスを含む、受信することと
前記連続ページリード動作において前記次のページアドレスとして前記非順次ページアドレスを使用することと
を含む、方法。
【請求項14】
前記メモリデバイスはNANDフラッシュメモリを備える、請求項13に記載の方法。
【請求項15】
前記入力/出力インターフェースはシリアルペリフェラルインターフェースポートである、請求項13に記載の方法。
【請求項16】
前記入力/出力インターフェースは、アドレスおよびデータの両方を運ぶように構成されるシリアル入力線を含む、請求項13に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
優先出願
本出願は2018年10月17日に出願された米国仮特許出願第62/746,911号(MXIC2271-0)の利益を主張し、その出願は引用により本明細書に組み込まれている。
【0002】
本発明は連続リード動作、より詳細には連続ページリード動作をサポートするNANDフラッシュデバイスなどの集積回路メモリデバイスに関する。
【背景技術】
【0003】
tRとして指定される場合があるリードレイテンシは、リードコマンドの受信と、リードコマンドによって要求されたデータが出力において利用可能になる時刻との間の時間である。
【0004】
このタイプのレイテンシは、NANDフラッシュデバイスでは比較的長くなり得る。結果として、NANDフラッシュはいくつかの動作に関してNORフラッシュなどの他のタイプのメモリよりもかなり低速になり得る。
【0005】
NANDフラッシュデバイスのこのレイテンシに対処するために、キャッシュリードおよび連続リードとして知られているコマンドシーケンスが開発されている。
【0006】
キャッシュリードコマンドシーケンスでは、キャッシュまたはデバイス上の他のバッファメモリ構造を使用してプロシージャの一部、たとえば、エラー検出訂正などをオーバーラップさせることによって、レイテンシtRを短縮することができる。キャッシュリードコマンドシーケンスに見られるレイテンシは、tRCBSYとして指定される場合がある。これにより、NANDフラッシュを使用するシステムのスループットを向上させることができる。連続コマンドシーケンスでは、NANDフラッシュデバイスは、順次ページがページ間の遅延なく利用可能となるように、初期レイテンシ(tR)の後に順次ページを出力するよう構成されている。NANDフラッシュの連続リード動作は、以下のような3つの基本ステップを含み得る。
(ステップ1)開始フェーズ:ホストはページリード(C1)コマンドを発行して新たなページアドレスのデータをキャッシュに読み出す必要がある。ページデータを読み出すのにリードレイテンシtRを要する。
(ステップ2)順次的連続リードフェーズ:ホストはこのフェーズにおいてメモリデバイス上のインターフェースからデータを連続的に読み出す。
(ステップ3)終了フェーズ:リードプロトコルに応じて、ホストは「終了」(C3)コマンドを発行するか(一部の一般的なNANDフラッシュデバイス)、またはチップ選択制御信号CSを0から1に上げて(SPI NANDフラッシュデバイス)、順次的連続リード動作を終了させる必要がある。順次的連続リード動作を終了させるのにリセットレイテンシtRSTを要する。
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、非順次ページが要求される場合、新たなコマンドシーケンスが導入されなければならず、その新たなシーケンスの開始に関わるレイテンシが付随する。
【0008】
NANDフラッシュおよび他のタイプのメモリデバイスについての非順次ページ間の長いレイテンシを克服することができる技術を提供することが望ましい。
【課題を解決するための手段】
【0009】
ページバッファと、ページ幅未満のI/O幅を有するI/Oデータユニットの入力/出力インターフェースとを含む、ページモードNANDフラッシュなどのメモリデバイスは、非順次アドレスを有する連続ページリードをサポートする。入力/出力インターフェースは、シリアルインターフェース(たとえば、SPI)、またはパラレルインターフェースを備えることができる。
【0010】
非順次アドレスを有する連続リードをサポートするためのコマンドプロトコルが提供される。コマンドプロトコルは、開始アドレスおよびその後の順次アドレスを有するページのストリームの連続リードを開始するための第1のコマンドと、ページのストリームのキャッシュリードを開始するための第2のコマンドまたは制御イベントと、シーケンス内の先行ページが出力される前に非順次アドレスを提供するためのストリーム内コマンドとを含むことができる。結果として、順次ページから非順次ページへの遷移を含む連続リードを、ページのストリームの出力中にインターフェースにおける待ち状態なく、または待ち状態がほとんどなく実施することができる。
【0011】
コントローラは、ページのストリームをI/Oインターフェースにおいて出力するための連続ページリード動作を制御する。連続リード動作は、連続するページのストリームを出力するためのコマンドのシリーズに応答することを含む。コマンドのシリーズは、第1のコマンドと、ストリーム内の先行ページの出力を完了する前に受信される1つまたは複数のストリーム内コマンドとを含み、ストリーム内コマンドは、ページのストリームの出力を差し挟むことができるように受信およびデコードされる。非順次的連続ページリード動作では、第1のコマンドは、順次アドレスを有する複数のページの連続ページリード動作を開始するためのアドレスを含むことができ、少なくとも1つのストリーム内コマンドは、ページのストリーム内の非順次アドレスを有するページを提供するための非順次アドレスを含む。
【0012】
メモリデバイスがコントローラを有し、コントローラが、非順次ページをページバッファに転送するためのリードを開始することと、非順次アドレスを含むストリーム内コマンドの最後のI/Oサイクルに連続するまたは素早く続くことができるように、先行ページを入力/出力インターフェースに提供することとによって、非順次アドレスを含むストリーム内コマンドに応答する技術を説明する。また、非順次ページコマンドは、ストリーム内の先行ページに続くことができ、ここで先行ページは、ストリームにおいてそのページに1ページ先行するストリーム内コマンドのシリーズ内の先行ストリーム内コマンドに含まれるページアドレスを有する。他の実施形態では、非順次ページは、ストリームにおいてそのページに2ページ先行するストリーム内の先行ページに続くことができ、ここで、非順次アドレスを含むストリーム内コマンドの後に入力/出力インターフェースに提供される先行ページは、コマンドのシリーズにおいて2コマンド分だけ非順次アドレスを含むストリーム内コマンドに先行する先行ストリーム内コマンドによって運ばれるページアドレスを有する。
【0013】
コントローラが、第1のコマンドに応答して3レベルバッファリングを含むデバイスに対する連続ページリード動作を開始し、ストリーム内の最初にアドレス指定されたページをメモリアレイからページバッファに転送し、最初にアドレス指定されたページをデータパス回路を経由してインターフェースに移動させる技術の例を説明する。また、コントローラは、次のページアドレスを含む第1のリードレイテンシ後の第1のストリーム内コマンドに応答して、ストリーム内の次にアドレス指定されたページをメモリアレイからページバッファに転送し、次にアドレス指定されたページをデータパス回路を経由してインターフェースに移動させる。また、コントローラは、インターフェースから最初にアドレス指定されたページを出力する前に、第2の次のページアドレスを含む第2のリードレイテンシ後の第2のストリーム内コマンドに応答することができる。
【0014】
本明細書に記載の実施形態では、データパス回路はバッファメモリを含むことができる。また、デバイスは、データパス回路に接続されるエラー検出訂正ECC回路を含むことができる。ECC回路は、データパス回路内のページに対して、そのページをデバイスの入力/出力インターフェースにおいて出力できるようにする前に、ECC機能を実行する。ECC回路は、ページ幅未満であってI/O幅を超えるECCチャンク幅を有するデータチャンクを使用して動作することができる。
【0015】
データパス回路は、第1の部分および第2の部分を含むバッファメモリと、バッファメモリの第1の部分をECC回路およびI/Oインターフェースに交互に接続し、バッファメモリの第2の部分をECC回路およびI/Oインターフェースに交互に接続するデータパスとを含むことができる。
【0016】
また、データパス回路は、ページ幅(X)を有するページバッファに加えて、第2バッファレベルおよび第3バッファレベルを含むマルチレベルバッファメモリを含むことができる。第3バッファレベルは、第1の部分および第2の部分と、第3バッファレベルの第1の部分をECC回路およびI/Oインターフェースに交互に接続し、第3バッファレベルの第2の部分をECC回路およびI/Oインターフェースに交互に接続するデータパスとを含むことができる。第3バッファレベルの第1および第2の部分は、ページ幅未満のバッファ幅(Y)を有することができ(たとえば、ECCチャンクの幅の倍数)、データパスは、第3バッファレベルの第1および第2の部分をECC回路およびI/Oインターフェースに交互に接続するためのバッファ幅未満のバス幅(Z)を有することができる。
【0017】
非順次ページを含むページのストリームを読み込むようにメモリを動作させるための方法であって、メモリからページのストリームを出力するためのコマンドのシリーズに応答することであって、シリーズは第1のコマンドおよび1つまたは複数のストリーム内コマンドを含む、応答することと、最初のページアドレス用に第1のコマンドを使用し、後続のページアドレス用に1つまたは複数のストリーム内コマンドを使用して、ページのストリーム内のページのアドレスを決定することと、ストリーム内の先行ページの出力を完了する前に、1つまたは複数のストリーム内コマンド内の少なくとも1つのストリーム内コマンドを受信することであって、1つまたは複数のストリーム内コマンド内の少なくとも1つのストリーム内コマンドは、先行ページに対して順次的でないアドレスを含む、受信することとを含む、方法を説明する。
【0018】
メモリアレイがページモードNANDフラッシュを備える実施形態を説明する。本明細書に記載の技術は、他のタイプのメモリデバイスにも適用することができる。
【0019】
本発明の他の態様および利点は、以下の図面、詳細な説明、および特許請求の範囲を検討すると理解することができる。
【図面の簡単な説明】
【0020】
図1】本明細書に記載の非順次的ページ連続リードをサポートする集積回路メモリデバイスの簡略ブロック図である。
図2】本明細書に記載の非順次的ページ連続リードのためのコマンドシーケンスの図である。
図3】本明細書に記載の非順次的ページ連続リードのための代替的なコマンドシーケンスの図である。
図4】ECCを使用する、本明細書に記載の非順次的ページ連続リードをサポートするデバイスのための2レベルバッファリングを示すブロック図である。
図5】2レベルバッファリングを使用する、本明細書に記載の非順次的ページ連続リードの一実施形態のパイプラインデータフロー図である。
図6】2レベルバッファリングを使用する、本明細書に記載の非順次的ページ連続リードの代替的な実施形態のパイプラインデータフロー図である。
図7】ECCを使用する、本明細書に記載の非順次的ページ連続リードをサポートするデバイスのための3レベルバッファリングを示すブロック図である。
図8】3レベルバッファリングを使用する、本明細書に記載の非順次的ページ連続リードの一実施形態のパイプラインデータフロー図である。
図9】3レベルバッファリングを使用する、本明細書に記載の非順次的ページ連続リードの代替的な実施形態のパイプラインデータフロー図である。
図10】3レベルバッファリングを使用する、本明細書に記載の非順次的ページ連続リードの他の代替的な実施形態のパイプラインデータフロー図である。
図11図10に示す代替例についての、本明細書に記載の非順次的ページ連続リードのためのコマンドシーケンスの図である。
【発明を実施するための形態】
【0021】
図1図11を参照して、本発明の実施形態の詳細な説明を提供する。
【0022】
図1は、一実施形態による集積回路メモリデバイスの簡略化したチップのブロック図である。集積回路メモリデバイス100は、データをECCと共に記憶するメモリアレイ160、たとえば、NANDフラッシュアレイを単一の集積回路基板上に含む。本明細書に記載のメモリデバイスは、マルチチップモジュール、積層チップ、および他の構成を使用して実装することもできる。
【0023】
コマンドデコーダ108を有する制御ロジック110は、本明細書に記載の非順次的ページ連続リード動作を実行するためのコマンドの受信に応答して、以下でより詳細に説明するようにランダムなページアドレスを有する連続リードをサポートするステートマシンなどのロジックを集積回路メモリデバイス100上に含む。制御ロジック110は、図で矢印によって表す制御信号と、アドレスとをバス130上に出力する。バス130上に供給されるアドレスは、たとえば、制御ロジック110内のアドレスカウンタの出力(たとえば、順次アドレス)、または非順次アドレスを含み得る受信したコマンド内で運ばれるアドレスを含むことができる。
【0024】
デコーダ140は、複数のワード線145に結合され、ECC付きメモリアレイ160内の行に沿って配置され、またページバッファ171に結合される。ページバッファ171は、ECC付きメモリアレイ160に対してデータを読み書きするための、ECC付きメモリアレイ160内の列に沿って配置される複数のビット線165に結合される。
【0025】
ページバッファ171は、ビット線ごとに1つまたは複数の記憶素子を含むことができる。アドレスデコーダ140は、アレイ160内の特定のメモリセルを選択し、それぞれの接続用のビット線を介してページバッファ171に結合することができる。ページバッファ171は、これらの特定のメモリセルに対して並列に読み書きされるデータを記憶することができる。ページバッファ171は、数千ビット、たとえば、2Kビットもしくは4Kビットまたはそれ以上を、関連するECCコードを含む追加ビットと共に含むページのページ幅を有することができる。1ページは複数のECCチャンクを含むことができ、ECCチャンクはデータのセグメントと、関連するECCコード(すなわち、データのセグメントに対するECC用に計算されたもの)とを含む。実施形態では、各ページは、2分の1ページまたは4分の1ページに、関連するECCコードのサイズを加えた値に等しいECC幅を有する2つのECCチャンクを含む。いくつかの実施形態では、1ページあたり3つ以上のECCチャンクがあってもよい。
【0026】
この実施形態では、ページバッファからインターフェースへのデータパス回路内のバッファメモリ構造は、この例ではバッファBUF_A181およびバッファBUF_B182と命名した2つの部分を含む第2バッファレベルを有するページバッファを含む2レベルバッファリングを含み、第2バッファレベルの各部分は、ページバッファの中身の一部分、たとえば2分の1を記憶することができ、ページバッファの中身の一部分は、1つまたは複数のECCチャンクを含むことが好ましい。また、第2バッファレベルの各部分は独立して読み書きすることができる。いくつかの実施形態では、バッファBUF_A、BUF_Bは、異なるアドレスへの独立した読み書きを可能にするデュアルポートまたはマルチポートメモリ技術を使用して実装することができ、または別々のアドレスデコード回路および読み出し回路を有する複数のメモリのバンクを使用して実装することができる。
【0027】
ページバッファ171はX本のデータ線を介してメモリアレイ160に結合され、ここでXはページ+ECCコードの幅であり、また、それぞれYビットのバス175、176を介してバッファ構造の第2レベルバッファ181、182(BUF_A、BUF_B)に結合され、ここでYはページバッファ171の幅Xの2分の1以上に等しい幅とすることができる。第2レベルバッファBUF_A、BUF_Bはそれぞれ、たとえば、1行×複数列のアーキテクチャを有するSRAM(スタティックランダムアクセスメモリ)メモリ構造を使用するキャッシュメモリによって実装することができる。たとえば、1ページは2048ビット+ECCコードを含むことができ、BUF_Aは1024(+ECCビット)列の1つの行を有し、すなわち、1024+ECCビットの幅を有することができる。バッファBUF_AおよびBUF_Bは、ページバッファ内のデータのページをバッファBUF_AおよびBUF_Bに並列に、1バッファメモリサイクルを使用して並列に転送できるように動作させることができる。また、バッファBUF_AおよびBUF_Bは、ページバッファ内のデータのページの1部分をバッファBUF_AおよびBUF_Bのそれぞれに並列に転送できるように動作させることができ、それによって、同一または異なるバッファメモリサイクル内で、ページの第1の部分を第2バッファレベルの第1の部分(たとえばBUF_A)に転送し、ページの第2の部分を第2バッファレベルの第2の部分(たとえばBUF_B)に転送することが可能になる。
【0028】
他の実施形態は、ページバッファ171および2つの追加のバッファレベルを含む3レベルバッファ構造を含むことができる。また、ページバッファおよびインターフェースの間のデータパス回路内のバッファメモリ構造の他の配置構成を使用することができる。
【0029】
第3レベルバッファは、複数行×複数列のアーキテクチャを有するSRAMベースのキャッシュメモリ構造を使用して実装することができる。後述の第3レベルバッファの第1のメモリユニットおよび第2のメモリユニットは、データパスの幅に等しい幅を有することができる。
【0030】
エラー検出訂正ECC回路190は、データバス184およびデータバス185によってバッファメモリ構造(181、182)に結合される。データバス184および185は、1バイトまたは1ワードなどの、ECCチャンク未満のバス幅を有することができ、これらをECC回路190が使用して、ECCチャンクを循環的に切り替えることによって、エラー検出およびエラー訂正のECC演算(たとえば、シンドローム計算、キー計算、チェン(Chien)探索)を実行する。ECC回路はデータバス191によってバッファメモリ構造(181、182)に結合され、必要に応じてデータを行き来させるようにする。
【0031】
I/Oインターフェース105はデータバス191によってECC回路およびバッファメモリ構造(181、182)に結合される。
【0032】
入力/出力データおよび制御信号は、インターフェース105、コマンドデコーダ108および制御ロジック110、ならびに集積回路メモリデバイス100上の入力/出力ポート195、または集積回路メモリデバイス100の内外の他のデータソースの間で移動させる。いくつかの実施形態では、ポート195はオンチップホスト回路、たとえば、汎用プロセッサもしくは専用用途回路、またはメモリアレイ160によってサポートされるシステムオンチップ機能を提供するモジュールの組み合わせに接続することができる。
【0033】
一実施形態では、インターフェース105は、コマンド、アドレス、およびデータが伝達されるI/Oポート195のセットを含むシリアルインターフェースである。シリアルインターフェースは、コマンドチャネルがアドレスおよびデータにより使用されるI/Oピンを共有するシリアルペリフェラルインターフェース(SPI)バス仕様に基づくまたは準拠することができる。たとえば、集積回路メモリデバイス100は、SPIバス信号を送受信するためのピンを使用する入力/出力ポートを含むことができる。あるピンを、コマンドにも使用可能なシリアル入力データ/アドレス信号SIを運ぶ入力データ線に接続することができる。1つまたは複数の他のピンを、シリアル出力データ信号SOを運ぶ1つまたは複数の出力データ線に接続することができる。他のピンを、シリアルクロック信号SCLKを運ぶクロック線に接続することができる。さらに他のピンを、チップ有効化またはチップ選択信号CS#を運ぶ制御線に接続することができる。
【0034】
他のタイプのインターフェース、たとえば、パラレルインターフェースおよび他のタイプのシリアルインターフェースを使用することもできる。特定の集積回路メモリデバイス100上のI/Oポート195は、I/Oデータ幅を有する出力データを提供するように構成することができ、I/Oデータ幅は、いくつかの例では、インターフェースクロック(たとえば、SCLK)サイクルあたり、並列の1、4、8、16、32ビットまたはそれ以上とすることができる。I/Oインターフェース105は、FIFOバッファ、シフトレジスタバッファ、または他のサポート回路を、SPIインターフェースのSCLKレートなどのポートクロックレートのポートにおいてインターフェースで受信したデータを送信するための送信器と共に含むことができる。
【0035】
図1に示す例では、バイアス調整(bias arrangement)ステートマシンを使用する制御ロジック110は、メモリアレイ内のページからページバッファにデータを転送するページリードを含む、リード電圧、プログラム電圧、および消去電圧などの、ブロック120の1つまたは複数の電圧源を介して生成または提供されるバイアス調整供給電圧の印加を制御する。制御ロジック110は、マルチレベルバッファ構造、ECC回路190、およびECC付きメモリアレイ160に結合される。
【0036】
制御ロジック110およびコマンドデコーダ108は、ステートマシンおよびサポートロジックを含む専用ロジック回路を使用して実装することが可能なコントローラを構成する。代替的な実施形態では、制御ロジックは、デバイスの動作を制御するためのコンピュータプログラムを実行する、同一の集積回路上で実装することが可能な汎用プロセッサを備える。さらに他の実施形態では、専用ロジック回路および汎用プロセッサの組み合わせを利用して、制御ロジックを実装することができる。
【0037】
コントローラのコマンドデコーダ108および制御ロジック110は、非順次ページの連続リード動作を実行するように構成され、これにより連続リード中のランダムなページアドレスへのシフトが可能になる。本明細書に記載の実施形態では、コントローラは、入力/出力インターフェースにおいて受信されたコマンドに応答して、ページのストリームをI/Oインターフェースにおいて出力するための連続ページリード動作を含むメモリ動作を制御する。連続リード動作の実行はコマンドのシリーズに応答することを含み、シリーズは第1のコマンドおよび1つまたは複数のストリーム内コマンドを含み、ここでストリーム内コマンドは本明細書では、第1のコマンドの後のコマンドであって、ストリーム内の先行ページの出力を完了する前に、ストリーム内の先行ページがバッファメモリ構造を含むデータパス回路を通過している間に受信されるコマンドと定義する。ストリーム内コマンドは、ページがバッファメモリ構造を通過する前のストリーム内の先行ページの最後の出力バイトに連続する、またはこれに素早く続く、たとえば4インターフェースクロックサイクル未満のクロックサイクルに受信することができる。
【0038】
図2に、2つのレベルを有する非順次的ページ連続リードを示す。上位レベルは、非順次的ページ連続リードのための、I/Oインターフェースにおいてページのストリーム内のデータのページが差し挟まれたコマンドのシリーズを示す。コマンドのシリーズは、第1のコマンドC1と、複数のストリーム内コマンドC2およびC3とを含む。下位レベルは、非順次的ページ連続リードの実行中のページバッファの動作を示す。
【0039】
この例では、非順次的ページ連続リードは、I/Oインターフェースにおいてインターバル200内に第1のコマンドC1を受信することによって開始される。第1のコマンドC1は連続リードを開始し、ページXの開始アドレスを提供する。コマンドC1のデコードに応答して、アレイはインターバル201中にページXを読み込むように動作し、ページXのデータはインターバル202中にページバッファにおいて利用可能になる。ページXのデータがメモリアレイからページバッファにロードされ、インターフェースに向かってデータパス回路を通過するリードレイテンシtRの後に、次のページアドレスを提供する第2のコマンドC2がインターバル203中に受信される。第2のコマンドの時点で、初期ページ(このページのストリーム内の最初のページ)のデータは、I/Oインターフェースに向かってバッファメモリ構造を含むデータパス回路を通過している。この実施形態では、最初のページは、インターバル204の開始時の、インターバル203内の第2のコマンドC2の終了に連続するI/Oサイクル内に、インターフェースにおいて利用可能になる。この例では、インターバル203中にC2内で運ばれる次のページアドレスは、順次アドレスであるページX+1である。
【0040】
インターバル204中にページXのデータを出力した後、インターフェースにおけるインターフェース待ち状態のアイドルサイクルなしで、次のページアドレスを含む第2のコマンドC2がインターバル206中に受信される。第2のコマンドに続いて、先行ページX+1(すなわち、前のコマンドでアドレス指定されたページ)が出力される。この例では、インターバル206中に受信された次のページアドレスは、非順次アドレスであるページYである。インターバル206中のコマンドC2は、ページX+1のデータがインターバル205中にインターフェースにおいて出力される前に受信される。インターバル207中に、メモリはページYからページバッファにデータを移動させるように動作する。インターバル206内のコマンドC2に続くインターバル中にI/Oインターフェースにおいて利用可能な先行ページは、ページX+1である。
【0041】
ページX+1のデータを出力した後、先行ページであるページYを出力する前に、次のページアドレスであるページY+1を提供する次のコマンドC2がI/Oインターフェースにおいて受信される。次のページアドレスY+1が受信された後、アレイはインターバル208中にページY+1のデータをページバッファに移動させるように動作する。このシーケンスは無限に続くことができる。連続リードシーケンスを終了させるために、この例では第3のコマンドC3が、この例ではインターバル209中に、I/OインターフェースにおけるページYのデータの出力の終了時に受信される。第3のコマンドC3はアドレスを提供せず、先行ページY+1からのデータを、その後のインターバル210においてI/Oインターフェースに移動させることができる。
【0042】
本明細書に記載の実施形態では、集積回路メモリデバイスは、バッファメモリ構造を含むデータパス回路と、I/Oインターフェースとに接続されたECC回路を含む。ページバッファからI/Oインターフェースへのデータの転送中に、ECC回路を利用してエラー検出訂正を行う。ECC回路がその機能を実行するのに必要な時間は、データパス回路へのバッファリングによって隠される。このバッファリングは、データをデータパス回路のバッファメモリ内に移動させ、外に移動させることによって、提供することができる。
【0043】
図2に示す例では、ストリーム内コマンドC2(連続ページキャッシュリードコマンド)は、シーケンス内の次のアドレスを識別し、ページのストリーム内の各ページの先行ページを出力するためのアドレスを含む。このように、この実施形態では、アドレスを有するストリーム内コマンドを受信することによって、連続リード動作中にI/Oインターフェースのリソースの少なくとも一部が消費される。しかしながら、連続リードプロシージャによって、コマンドを提供しているホストがシーケンス内のあるページの出力の終了時に待機している場合、次のページのコマンドをインターフェースにおけるアイドルサイクルなしで提供することができ、コマンドの最後のサイクルに連続して(すなわち、I/Oインターフェースにおけるアイドルサイクルなしで)、またはこれに素早く続いて、バッファ内のページを出力することができる。
【0044】
図3に代替例を示す。図2と同様に、図3は2つのレベルを含む。上位レベルは、非順次的ページ連続リードのための、I/Oインターフェースにおいてページのストリーム内のデータのページが差し挟まれたコマンドのシリーズを示す。コマンドのシリーズは、第1のコマンドC1と、複数のストリーム内コマンドC2およびC3とを含む。下位レベルは、非順次的ページ連続リードの実行中のページバッファの動作を示す。図示のように、この例において順次ページに対しては、各ページを出力するためにストリーム内コマンドを提供する必要がない。その代わりに、コントローラは次のアドレスを運ぶコマンドをチェックすることができ、そのときに何も存在しない場合、アドレスカウンタを使用して自動的に、順次アドレスを有するストリーム内のページを提供し続けることができる。ページの出力の間にコマンドをチェックするのに必要な時間は非常に短くすることができ、たとえば、1インターフェースクロックサイクル、または4インターフェースクロックサイクル未満とすることができる。
【0045】
図3の例では、非順次的ページ連続リードは、I/Oインターフェースにおいてインターバル300内に第1のコマンドC1を受信することによって開始される。第1のコマンドC1は連続リードを示し、ページXの開始アドレスを提供する。コマンドC1のデコードに応答して、アレイはインターバル301中にページXを読み込むように動作し、ページXのデータはインターバル302中にページバッファにおいて利用可能になる。ページのデータがメモリアレイからページバッファにロードされ、バッファメモリシステムを経由してインターフェースに移動されるリードレイテンシtRの後に、次のページアドレスを提供する第2のコマンドC2がインターバル303中に受信され、それに続いて最初のページのデータが連続するインターバル304中にI/Oインターフェースによって出力される。この例では、次のページは順次アドレスであるページX+1を有する。インターバル303中に第2のコマンドC2を受信した後、メモリはインターバル305内にページX+1のデータをページバッファにロードするように動作し、そのデータはデータパス回路を経由してI/Oインターフェースに移動されてインターバル306中に出力され、これはインターバル304に連続する。この例では、出力される次のアドレスは順次アドレスであるページX+2であり、これをインターバル307内にページバッファにロードすることができる。アドレスX+1およびX+2は順次的であるので、アドレスは追加のコマンドによってではなく、コントローラ内のアドレスカウンタによって提供することができるので、I/Oインターフェースにおけるリソースが節約される。コントローラは、アレイからのページリードを開始して次のページをページバッファに移動させる前に、ストリーム内コマンドについてコマンドインターフェースを監視するように動作することができる。ページアドレスがストリーム内コマンドによって提供された場合、そのアドレスが利用される。ストリーム内コマンドがない場合、コントローラはアドレスカウンタの出力を使用して順次ページを選択することができる。
【0046】
非順次アドレスを提供するために、次のストリーム内コマンドC2が、インターバル306終了時のインターバル308中に、先行ページX+2を出力する前に提供される。この例では、インターバル308内の次のコマンドC2は、非順次アドレスであるページYを運ぶ。ページYのデータは、インターバル309中にページバッファにロードされ、I/Oインターフェースに移動されてインターバル310中に出力され、これは先行ページであるページX+2に連続する。インターバル310中にページYが出力されている間に、メモリはインターバル311内に次のページY+1のデータをページバッファにロードするように動作することができる。そして、順次リードを終了させる第3のコマンドC3を、この例ではインターバル312内に受信し、シーケンス内の最終ページ、この例ではページY+1をインターバル313中に出力するまで、ページをこのように順次的に出力することができる。
【0047】
図4は、2レベルバッファリング(ページバッファ/バッファBUF_A、バッファBUF_B)を使用する、図2および図3を参照して説明した非順次的ページ連続リードのために動作可能な、メモリアレイと、ECC回路を含むデータパス回路とを示すブロック図である。これは、図1に示す集積回路メモリデバイス100などにおいて利用可能な回路編成の一例である。
【0048】
図4では、メモリアレイ400、たとえば、NANDフラッシュアレイがページバッファ401に結合されている。データは単一のページリード動作中にメモリアレイ400からページバッファ401に並列に移動することができる。ページバッファ401は、バッファBUF_A402およびバッファBUF_B403を含むデータパス回路に、それぞれバス404およびバス405によって結合される。単一のサイクル内にページバッファ401からバッファBUF_Aに2分の1ページを転送するために、バス404はページバッファ401の幅+ECCの半分であるデータ幅を有することができる。同様に、単一のサイクル内にページバッファ401からバッファBUF_Bに2分の1ページを転送するために、バス405はページバッファ401の幅の半分であるデータ幅を有することができる。ECCビットはBUF_AおよびバッファBUF_Bに含めることができ、またはBUF_AおよびバッファBUF_Bと並列した追加のメモリ素子をECCビットに使用することができる。
【0049】
バッファBUF_AおよびバッファBUF_Bは、有利な実施形態では、データおよびデータに関連するECCコードを含む少なくとも1つのECCチャンクを保持するように構成され、これにより他のバッファ内のデータとは独立してECC回路416により作用することができる。
【0050】
図示のように、データパス回路は、バッファBUF_Aに接続されたバス410と、バッファBUF_Bに接続されたバス411とを含む。バス410はマルチプレクサ412およびマルチプレクサ413に接続される。同様に、バス411はマルチプレクサ412およびマルチプレクサ413に接続される。マルチプレクサ412の出力は線414によってECC回路416に接続される。マルチプレクサ413の出力は線415によってI/Oインターフェース417に接続され、I/Oインターフェース417はアドレス指定されたページの出力データを提供する。データを、バス410、411によってサポート可能な、バイトまたはワードなどのアドレス指定可能な単位でバス410およびバス411上で移動させることによって、ECC回路416によって使用することができ、インターフェース417によってI/Oポート418に出力することができる。
【0051】
図5は、図4のような2つのバッファレベル(ページバッファ/バッファBUF_A、バッファBUF_B)を有するデータパス回路を利用する非順次的ページ連続リードのために、デバイス用のコントローラ内のステートマシンおよびサポートロジックを使用して実装される、図2のような非順次的ページ連続リードのパイプラインデータフローを示す図である。この図では、水平軸は時間を表し、各垂直レベルは以下のような詳細なデータ移動に対応する。
0-1:新たなページのページリードコマンドC1を受信する。
0-2:データを読み込むためのリードフロムキャッシュ(read from cache)ストリーム内コマンドC2を受信する。
1:ページデータおよびECCをメモリアレイからページバッファに移動させる(両半分)。
2-1:ページバッファの前半からバッファBUF_Aにデータを移動させる。
2-2:ページバッファの後半からバッファBUF_Bにデータを移動させる。
3-1:バッファBUF_Aにおいてエラー検出訂正用のECCロジックを適用する。
3-2:バッファBUF_Bにおいてエラー検出訂正用のECCロジックを適用する。
4-1:バッファBUF_AからI/Oインターフェースのデータパスにデータを移動させる。
4-2:バッファBUF_BからI/Oインターフェースのデータパスにデータを移動させる。
【0052】
シーケンス終了コマンドは図5には示していない。これは上述のように実装することができる。また、他の実施形態は、コマンド以外の制御信号によってシーケンスの終了をシグナリングすることができる。
【0053】
図5では、ページXの先頭アドレスを提供する第1のコマンドC1が、レベル0-1の開始時に受信される。ページXについて領域500内の要素によって示すようにレベル4-2まで対角線上に下っていくと、レベル1においてページXのデータがページバッファにロードされる。ページバッファから、レベル2-1においてページの前半X(1)がバッファBUF_Aにロードされる。また、後で(または同時に)、レベル2-2においてページの後半X(2)がバッファBUF_Bにロードされる。
【0054】
図面では、(1)および(2)の表記は、それぞれページの第1および第2の部分を表す。したがって、X(1)はページXの第1の部分であり、X(2)はページXの第2の部分である。
【0055】
シーケンス内の最初のページについて、バッファBUF_Bが利用可能であると仮定すると、レベル2-2におけるBUF_Bへの最初のページの後半のこの転送は、箱509によって示すようにレベル2-1におけるBUF_Aへの最初のページの前半の転送と同時に実行することができ、または箱510によって示すように後で行うことができる。レベル3-1において、ページXの前半がバッファBUF_A内にある間に、ECC回路がページの前半内の1つまたは複数のECCチャンクに対して作動する。その後レベル3-2において、ページXの後半がバッファBUF_B内にある間に、ECCがページの後半内の1つまたは複数のECCチャンクに対して作動する。最後に、レベル0-2においてキャッシュリードコマンドC2が受信されたときに、レベル4-1においてページXの前半がI/Oインターフェースに提供されて、出力として提供される。レベル4-2において、ページの後半が、前半に連続してI/Oインターフェースに提供される。
【0056】
本明細書に記載のように、ストリーム内コマンドC2(リードフロムキャッシュ)は、連続リードシーケンスにおける次のページのアドレスを運ぶことができる。ページのストリームを出力するためのコマンドのシリーズに応答して、連続リードのシーケンス(領域501、502、503、504...)をこの順序で実行することができる。レベル4-1におけるページXからインターフェースへのデータの出力を開始する前に、このフローではレベル0-2において、アドレスX+1を含むコマンドC2が受信される。また、レベル4-1におけるページXからインターフェースへのデータの出力は、C2コマンドの終了に連続して始まる。
【0057】
ストリーム内コマンドC2をこのように使用することによって、連続リードシーケンスを維持しながら非順次アドレスを提供することができる。図5において、これはページX(500)から始まるアドレスシーケンスによって示しており、次のC2コマンドはアドレスX+1(501)を提供し、次のC2コマンドは非順次アドレスY(502)を提供する。その後のC2コマンドはこの例ではアドレスY+1(503)を提供する。この例における連続リードは、アドレスY+2(504)を提供する次のC2コマンドを続ける。連続リードは終了まで継続することができる。
【0058】
図5に示すプロシージャは、コントローラがページのストリームを出力するためのコマンドのシリーズに応答する一例である。コントローラは、第1のコマンドに応答して連続ページリード動作を開始し、ストリーム内の最初にアドレス指定されたページをメモリアレイからページバッファに転送し、最初にアドレス指定されたページをデータパス回路を経由してインターフェースに移動させる。コントローラは、リードレイテンシの後に受信され、次のページアドレスを含む第1のストリーム内コマンドに応答して、メモリにアクセスして次のページを取得し、これをデータパス回路内を通過させながら、最初にアドレス指定されたページをI/Oデータユニットのインターフェースから出力する。コントローラは、次のページアドレスを含み得る後続のストリーム内コマンドに応答して、インターフェースからの先行ページの出力中にメモリにアクセスする。2レベルバッファリングを使用するこの例では、先行ページは、ページのストリームにおいて非順次アドレスを含むストリーム内コマンドに1ページ先行する、複数のストリーム内コマンド内の先行ストリーム内コマンドに含まれるページアドレスを有する。
【0059】
図6は、図4のような2つのバッファレベル(ページバッファ/バッファBUF_A、バッファBUF_B)を有するデータパス回路を利用する非順次的ページ連続リードのために、デバイス用のコントローラ内のステートマシンおよびサポートロジックを使用して実装される、図2のような非順次的ページ連続リードのパイプラインデータフローを示す図であり、第1のストリーム内コマンド601の後のストリーム内コマンドは、順次アドレスを提供するために使用されない。この図では、水平軸は時間を表し、各垂直レベルは以下のような詳細なデータ移動に対応する。
0-1:新たなページのページリードコマンドC1を受信する。
0-2:データを読み込むためのリードフロムキャッシュストリーム内コマンドC2を受信する。
1:ページデータおよびECCをメモリアレイからページバッファに移動させる(両半分)。
2-1:ページバッファの前半からバッファBUF_Aにデータを移動させる。
2-2:ページバッファの後半からバッファBUF_Bにデータを移動させる。
3-1:バッファBUF_Aにおいてエラー検出訂正用のECCロジックを適用する。
3-2:バッファBUF_Bにおいてエラー検出訂正用のECCロジックを適用する。
4-1:バッファBUF_AからI/Oインターフェースのデータパスにデータを移動させる。
4-2:バッファBUF_BからI/Oインターフェースのデータパスにデータを移動させる。
【0060】
シーケンス終了コマンドは図6には示していない。これは、ページリードコマンド600と、それに続く1つまたは複数のストリーム内コマンド601、602、603、604、605とを含めて、上述のように実装することができる。また、他の実施形態は、コマンド以外の制御信号によってシーケンスの終了をシグナリングすることができる。
【0061】
図6図5と異なるのは、C2コマンド602の後に、ページのストリームが順次アドレスY、Y+1、およびY+2と、その後の非順次アドレス605 Zとを含むという点である。したがって、アドレスYを提供するC2コマンド602の後に、コントローラは、コマンドなしで内部のアドレスカウンタを使用してアドレスY+1のページにアクセスし、次いでコマンドなしで内部のアドレスカウンタを使用してアドレスY+2のページにアクセスする。これにより、データフローが中断されず、または時刻609および610においてコマンドを受信するのに十分なほど長くは中断されないので、より優れたスループットが可能になる。
【0062】
図7は、3レベルバッファリング(ページバッファ/バッファBUF_2_A、バッファBUF_2_B/バッファBUF_3_A、バッファBUF_3_B)を使用する、本明細書において説明している非順次的ページ連続リードのために動作可能な、メモリアレイと、ECC回路を含むデータパス回路とを示すブロック図である。これは、図1の集積回路メモリデバイス100などにおいて利用可能な回路編成の他の例である。第2および第3バッファレベルは、図1に関連して上述したSRAMおよびキャッシュ技術を使用して実装することができる。
【0063】
図7では、メモリアレイ700、たとえば、NANDフラッシュアレイがページバッファ701に結合されている。データは単一のリード動作中にメモリアレイ700からページバッファ701に並列に移動することができる。ページバッファ701は、バッファBUF_2_A(702)およびバッファBUF_2_B(703)を含む第2レベルバッファを含むデータパス回路に、バス704およびバス705によって結合される。単一のサイクル内にページバッファ701からバッファBUF_2_Aに2分の1ページを転送するために、バス704はページバッファ701の幅(ECCビットを含む)の半分であるデータ幅を有することができる。同様に、単一のサイクル内にページバッファ701からバッファBUF_2_Bに2分の1ページを転送するために、バス705はページバッファ701の幅の半分であるデータ幅を有することができる。
【0064】
第2レベルバッファであるバッファBUF_2_Aは、バス704と同一の幅(すなわち、2分の1ページ)を有し得るデータパスによって、第3レベルバッファであるバッファBUF_3_A(711)に結合され、これにより単一のサイクル内でバッファBUF_2_AからバッファBUF_3_Aにデータを転送することが可能になる。同様に、バッファBUF_2_Bは、バス705と同一の幅(すなわち、2分の1ページ)を有し得るデータパスによって、バッファBUF_3_B(712)に結合され、これにより1サイクル内でバッファBUF_2_BからバッファBUF_3_Bにデータを転送することが可能になる。いくつかの実施形態では、第2レベルバッファはページバッファと同一の幅を有することができ、ここに図示した分割された構造ではなく単一のバッファ構造を含んでもよい。
【0065】
図示のように、データパス回路は、バッファBUF_3_Aに接続されたバス720と、バッファBUF_3_Bに接続されたバス721とを含む。バス720はマルチプレクサ714およびマルチプレクサ715に接続される。同様に、バス721はマルチプレクサ714およびマルチプレクサ715に接続される。マルチプレクサ714の出力は線716によってECC回路718に接続される。マルチプレクサ715の出力は線717によってI/Oインターフェース719に接続され、I/Oインターフェース719はアドレス指定されたページの出力データをポート725に提供する。データを、バス720、721によってサポート可能な、バイトまたはワードなどのアドレス指定可能な単位でバス720およびバス721上で移動させることによって、ECC回路718によって使用することができ、インターフェース719によってポート725に出力することができる。ECC回路718は第1のECC機能回路および第2のECC機能回路を含むことができ、これらはバッファBUF_2_A/バッファBUF_2_B、バッファBUF_3_A/バッファBUF_3_B構造を使用して交互に利用することができる。いくつかの実施形態では、バス720およびバス721は、バッファBUF_2_A/バッファBUF_2_B、およびバッファBUF_3_A/バッファBUF_3_B構造を含む第2および第3バッファレベルの両方に結合することができる。
【0066】
図7のような3レベルバッファリングシステムでは、図11に示すような3ステージの非順次的ページ連続リード動作を実行することができ、これにより、たとえば、I/Oインターフェースにおいて高速出力クロックを使用することが可能になる。
【0067】
図8は、図7のような3つのバッファレベル(ページバッファ/バッファBUF_2_A、バッファBUF_2_B/バッファBUF_3_A、バッファBUF_3_B)を有するデータパス回路を利用する非順次的ページ連続リードのために、デバイス用のコントローラ内のステートマシンおよびサポートロジックを使用して実装される、図7のような非順次的ページ連続リードのデータフローを示す図である。この図では、水平軸は時間を表し、各垂直レベルは以下のような詳細なデータ移動に対応する。
0-1:最初のページ用の最初ページリードコマンドC1を受信する。
0-2:ページアドレスを有するストリーム内ページリードコマンドC2を受信する。
1:ページデータおよびECCをメモリアレイからページバッファに移動させる(両半分)。
2:ページデータをページバッファからバッファBUF_2_AおよびバッファBUF_2_Bに移動させる。
3-1:バッファBUF_2_A内のページの前半からバッファBUF_3_Aにデータを移動させる。
3-2:バッファBUF_2_B内のページの後半からバッファBUF_3_Bにデータを移動させる。
4-1:バッファBUF_3_Aにおいてエラー検出訂正用のECCロジックを適用する。
4-2:バッファBUF_3_Bにおいてエラー検出訂正用のECCロジックを適用する。
5-1:バッファBUF_3_AからI/Oインターフェースのデータパスにデータを移動させる。
5-2:バッファBUF_3_BからI/Oインターフェースのデータパスにデータを移動させる。
【0068】
シーケンス終了コマンドは図8には示していない。これは上述のように実装することができる。
【0069】
図8では、シーケンスの最初のページであるページXを識別する第1の連続リードコマンドC1が、レベル0-1のインターバル800において受信される。ページXについてレベル5-2まで対角線上に下っていくと、レベル1においてページXのデータがページバッファにロードされる。この実施形態では、次のページからのデータがページバッファにロードされる前に、この図のレベル2において、ページXのデータがページバッファからバッファBUF_2_AおよびバッファBUF_2_Bを含む第2バッファレベルに1回の転送でロードされる。続いて、レベル3-1において、第2バッファレベルにて、データX(1)がバッファBUF_2_AからバッファBUF_3_Aに転送される。その後でまたは同時に、レベル3-2において、第2バッファレベルにて、データX(2)がバッファBUF_2_BからバッファBUF_3_Bに転送される。
【0070】
レベル4-1において、ECC回路は、バッファBUF_3_A内のページXのECCチャンクX(1)に作用する。レベル4-2において、ECC回路は、バッファBUF_3_B内のページXのECCチャンクX(2)に作用する。
【0071】
その後、レベル5-1において、バッファBUF_3_A内のページXのデータX(1)が、この例ではインターバル802におけるストリーム内コマンドC2の受信と同期するように、インターフェースにおいて利用可能になる。
【0072】
レベル5-2において、バッファBUF_3_B内のページXのデータX(2)が、バッファBUF_3_AからのページXのデータの出力と同期するように、インターフェースにおいて利用可能になる。
【0073】
インターバル800の第1の連続リードコマンドC1の後に、レベル2においてページXのデータが第2レベルバッファに素早く移動され、その後レベル3-1においてページXの前半が第3レベルバッファに移動される。これによりページバッファがクリアされ、コントローラによって提供される順次アドレスを使用してアクセスされるページX+1が受信される。
【0074】
インターバル802、803、804および805内のC2コマンドを含む複数の連続リードコマンドC2が続く。この例におけるインターバル802内の第2の連続リードコマンドC2は、ページX+2の順次ページアドレスを運ぶ。ページX+1のデータがページバッファからデータパス回路に移動された後、ページX+2のデータがページバッファに移動される。
【0075】
第2の連続リードコマンドC2が受信された後、次のアドレス(この例では、ページYの非順次アドレス)を含む第3の連続リードコマンドC2が、インターバル803において受信される。C2コマンドの後に、第1の連続リードコマンドC1によってアドレス指定されたページ(ストリームにおいてYに2ページ先行するもの)の第1の部分が、バッファBUF_3_Aから読み出される。ページX+1はまだデータパス内にある。
【0076】
図8に示すように、ページX+1のデータは、データパス回路を通過して、ECC回路の作用後に、インターバル803において受信されるC2コマンドと同期するように、I/Oインターフェースにおいて利用可能になる。
【0077】
このプロシージャは、連続リード動作が終了されるまで、図8に示すようにデータパス回路を経由するパイプライン形式で続く。
【0078】
図8に、C1コマンド、または非順次アドレスを有するC2コマンドを発行した後から、C2コマンドを発行する前までホストが待機するレイテンシtRと、ページをインターフェースに出力するのに必要なインターバルtread1とを示す。いくつかの実施形態では、tRはtread1より長い場合があり、その場合、非順次アドレスを導入すると、スループットがわずかに損なわれる可能性がある。
【0079】
図9は、図7のような3つのバッファレベルを有するデータパス回路を利用する非順次的ページ連続リードのために、デバイス用のコントローラ内のステートマシンおよびサポートロジックを使用して実装されるパイプラインデータフローを示す図であり、ページリードコマンド900と、それに続く1つまたは複数のストリーム内コマンド901、902、903、904、906とを含み、第1のストリーム内コマンド902の後、または非順次アドレスに続くストリーム内コマンド904の後のストリーム内コマンドは、順次アドレスを提供するために使用されない。したがって、ページY+2は、インターバル905においてストリーム内コマンドなしでページバッファにロードされる。この図では、水平軸は時間を表し、各垂直レベルは以下のような詳細なデータ移動に対応する。
0-1:最初のページ用の最初ページリードコマンドC1を受信する。
0-2:ページアドレスを有するストリーム内ページリードコマンドC2を受信する。
1:ページデータおよびECCをメモリアレイからページバッファに移動させる(両半分)。
2:ページデータをページバッファからバッファBUF_2_AおよびバッファBUF_2_Bに移動させる。
3-1:バッファBUF_2_A内のページの前半からバッファBUF_3_Aにデータを移動させる。
3-2:バッファBUF_2_B内のページの後半からバッファBUF_3_Bにデータを移動させる。
4-1:バッファBUF_3_Aにおいてエラー検出訂正用のECCロジックを適用する。
4-2:バッファBUF_3_Bにおいてエラー検出訂正用のECCロジックを適用する。
5-1:バッファBUF_3_AからI/Oインターフェースのデータパスにデータを移動させる。
5-2:バッファBUF_3_BからI/Oインターフェースのデータパスにデータを移動させる。
【0080】
シーケンス終了コマンドは図9には示していない。これは上述のように実装することができる。また、他の実施形態は、コマンド以外の制御信号によってシーケンスの終了をシグナリングすることができる。
【0081】
図9図8と異なるのは、C2コマンド903の後に、ページのストリームが順次アドレスY、Y+1、およびY+2と、その後の非順次アドレス906 Zとを含むという点である。したがって、アドレスYを提供するC2コマンド903の後に、コントローラは、アドレスY+1を含むコマンドC2の前に内部のアドレスカウンタを使用してアドレスY+1のページにアクセスし、次いでコマンドなしで内部のアドレスカウンタを使用してアドレスY+2のページにアクセスする。これにより、データフローが中断されず、または時刻909と、ストリーム内の順次的にアドレス指定されたページ間の他の時刻とにおいてコマンドを受信するのに十分なほど長くは中断されないので、より優れたスループットが可能になる。
【0082】
図10は、図7のような3つのバッファレベルを有するデータパス回路を利用する非順次的ページ連続リードのさらに他の実施形態のパイプラインデータフローであり、3つのコマンドレベルを使用してスループットを向上させることができる。この図では、水平軸は時間を表し、各垂直レベルは以下のような詳細なデータ移動に対応する。
0-1:最初のページ用の最初ページリードコマンドC1をホストが発行し、コントローラが受信する。
0-2:第2のページのアドレスを有するストリーム内連続ページリードコマンドC2をホストが発行し、コントローラが受信する。
0-3:次の後続のページアドレスのページアドレスを有するストリーム内連続ページリードコマンドC3をホストが発行し、コントローラが受信する。
1:ページデータおよびECCをメモリアレイからページバッファに移動させる(両半分)。
2:ページデータをページバッファからバッファBUF_2_AおよびバッファBUF_2_Bに移動させる。
3-1:バッファBUF_2_A内のページの前半からバッファBUF_3_Aにデータを移動させる。
3-2:バッファBUF_2_B内のページの後半からバッファBUF_3_Bにデータを移動させる。
4-1:バッファBUF_3_Aにおいてエラー検出訂正用のECCロジックを適用する。
4-2:バッファBUF_3_Bにおいてエラー検出訂正用のECCロジックを適用する。
5-1:バッファBUF_3_AからI/Oインターフェースのデータパスにデータを移動させる。
5-2:バッファBUF_3_BからI/Oインターフェースのデータパスにデータを移動させる。
【0083】
デバイス用のコントローラ内のステートマシンおよびサポートロジックを使用して実装されるこのパイプラインフローでは、アドレスXを運ぶ第1のリードコマンドC1 1000が受信され、そしてレイテンシtRの後に、アドレスX+1を運ぶ第2の連続リードコマンドC2 1002が受信される。このように、コマンドC2 1002が受信およびデコードされるまで、アレイはページX+1についてアクセスされない。その後、ホストはレイテンシtR2の間待機し、ストリームの次のアドレスを運ぶ第3の連続リードコマンドC3 1003を発行する。コマンドC3はホストにより時刻1004、1005および1006において、非順次アドレスであっても、コマンド間のインターバルtread1で繰り返し発行することができ、終了までストリームの次のアドレスを取得することができる。
【0084】
図11に、図2および図3のようなフォーマットの、3レベルバッファリングシステムのための非順次的ページ連続リード動作の、図10の実施形態のような一実施形態のデータフローを示す。したがって、図11は2つのレベルを含む。上位レベルは、非順次的ページ連続リードのためのコマンドのシリーズを示す。下位レベルは、非順次的ページ連続リードの実行中のページバッファの動作を示す。
【0085】
図11の例では、非順次的連続リードは、I/Oインターフェースにおいてインターバル1100内で第1のコマンドを受信することによって開始される。第1のコマンドC1は連続リードを開始し、ページXの開始アドレスを提供する。コマンドC1のデコードに応答して、アレイはインターバル1101中にページXを読み込むように動作し、ページXのデータはインターバル1102中にページバッファにおいて利用可能になる。ページXのデータがメモリアレイからページバッファにロードされるリードレイテンシtRの後に、ストリーム内コマンドC2がインターバル1103中にI/Oインターフェースを使用して受信される。この例では、アレイがシーケンス内の次のページについてアクセスされる前に、次のページアドレスが、ページX+1を示すストリーム内コマンドC2によって運ばれる。インターバル1103中にストリーム内コマンドC2を受信した後、メモリはインターバル1105内にページX+1のデータをページバッファにロードするように動作する。その間に、ページXのデータは、データパス回路(たとえば、バッファBUF_2_A、バッファBUF_2_B、バッファBUF_3_A、バッファBUF_3_B)を通過する。データが3レベルデータパス回路を通過可能になる第2のレイテンシtR2の後に、第2のストリーム内コマンドC3(キャッシュリード)が、インターバル1104においてI/O回路を使用して受信される。第2のストリーム内コマンドC3は、連続ページ動作における次のページアドレスを運び、これはこの例ではページX+2であって、先行ページに順次的である。その間に、インターバル1105において、ページX+1のデータがページバッファに移動される。第2のストリーム内コマンドC3の後に、インターバル1106においてキャッシュリード動作が実行されて、ページXのデータがI/Oインターフェースに提供される。インターバル1106の終了時に、アレイがシーケンス内の次のページについてアクセスされる前に、インターバル1108において次のアドレス(ページY)を含む次のストリーム内コマンドC3(キャッシュリード)がI/Oインターフェースにおいて受信され、ページX+1のデータの出力が始まり、これは、現在のコマンドの2コマンド前に受信されたインターバル1103におけるコマンドによってアドレス指定されたものである。
【0086】
この例では、インターバル1108のキャッシュリードストリーム内コマンド内で運ばれる次のアドレスは、非順次ページYである。ページX+1のデータがインターフェースに出力されている間に、次のページX+2のデータは、インターバル1107においてページバッファにロードされ、データパス回路を通過し始める。ページYのデータは、インターバル1109中にページバッファにロードされる。このようにして、次のコマンドC3はページY+1のアドレスを運ぶことができ、ページY+1のデータは、インターバル1111中にページバッファにロードすることができる。
【0087】
図11に示すように、ページの出力の間に、次のページアドレス(たとえば、ページY+1)を含む次のストリーム内コマンドC3(キャッシュリード)が、ページのストリーム内の(2ページ分の)先行ページ(たとえばページX+1)の、I/Oインターフェースへの出力に連続して提供される。この例では、先行ページは、コマンドのシリーズにおいて2コマンド分だけ非順次アドレスを含むストリーム内コマンドに先行する、複数のストリーム内コマンド内の先行ストリーム内コマンドに含まれるページアドレスを有する。
【0088】
このプロシージャは、第1の終了コマンドが受信されるまで継続される(図示せず)。
【0089】
非順次ページを含む連続リードのためのコマンドシーケンスに応答する、コントローラを有するデバイスおよび方法を本明細書で説明する。
【0090】
非順次ページの連続リードのための、コントローラを有するデバイスおよび方法であって、開始アドレスを指定する第1のコマンドを受け付け、それに応答して第1の開始アドレスから開始する順次ページを出力しつつ、第1の開始アドレスに応答して順次ページを出力し、第1のコマンドの順次ページに対して順序通りでない第2の開始アドレスを指定する第2のコマンドを受け付け、第2のコマンドを受け付けて第1のシーケンスからのページが完了した後、それに応答して第2の開始アドレスから開始する順次ページを出力することを含む、デバイスおよび方法を説明する。
【0091】
非順次ページ間のリードレイテンシを省くために、連続リード(キャッシュリードと同様)に挿入可能なページアドレス入力を有するコマンドを含む連続リード動作を含む、コントローラを有するデバイスおよび方法を説明する。
【0092】
連続リードに挿入可能なページアドレス入力を有するコマンドを含む連続リード動作を含む、コントローラを有するデバイスおよび方法であって、そのコマンドはページバッファにダウンロードされる次のページアドレスを有する、デバイスおよび方法を説明する。
【0093】
連続リードに挿入可能なページアドレス入力を有するコマンドを含む連続リード動作を含む、コントローラを有するデバイスおよび方法であって、そのコマンドはページバッファにダウンロードされる次のページアドレスを有し、そのコマンドは各ページについて発行される、デバイスおよび方法を説明する。
【0094】
連続リードに挿入可能なページアドレス入力を有するコマンドを含む連続リード動作を含む、コントローラを有するデバイスおよび方法であって、そのコマンドはページバッファにダウンロードされる次のページアドレスを有し、そのコマンドは非順次ページの場合にのみ発行される、デバイスおよび方法を説明する。
【0095】
本発明は上記で詳述した好適な実施形態および例を参照して開示しているが、これらの例は限定的な意味ではなく例示的な意味で意図されたものであるということを理解されたい。修正および組み合わせは当業者には容易に思いつくものであり、これらの修正および組み合わせは本発明の趣旨および以下の特許請求の範囲内にあることを企図している。
【符号の説明】
【0096】
100 集積回路メモリデバイス
105、417、719 I/Oインターフェース
108 コマンドデコーダ
110 制御ロジック
120 ブロック
140 デコーダ
145 ワード線
160 メモリアレイ
165 ビット線
171、401、701 ページバッファ
184、185、191 データバス
190、416、718 ECC回路
400、700 メモリアレイ
418 I/Oポート
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11