JP5192233B2 - リングバス構造とフラッシュメモリシステムにおけるその使用法 - Google Patents

リングバス構造とフラッシュメモリシステムにおけるその使用法 Download PDF

Info

Publication number
JP5192233B2
JP5192233B2 JP2007525676A JP2007525676A JP5192233B2 JP 5192233 B2 JP5192233 B2 JP 5192233B2 JP 2007525676 A JP2007525676 A JP 2007525676A JP 2007525676 A JP2007525676 A JP 2007525676A JP 5192233 B2 JP5192233 B2 JP 5192233B2
Authority
JP
Japan
Prior art keywords
data
node
command
memory
controller
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.)
Expired - Fee Related
Application number
JP2007525676A
Other languages
English (en)
Other versions
JP2008509499A (ja
Inventor
ウェルシュ シンクレア,アラン
Original Assignee
サンディスク テクノロジィース インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by サンディスク テクノロジィース インコーポレイテッド filed Critical サンディスク テクノロジィース インコーポレイテッド
Publication of JP2008509499A publication Critical patent/JP2008509499A/ja
Application granted granted Critical
Publication of JP5192233B2 publication Critical patent/JP5192233B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Read Only Memory (AREA)
  • Bus Control (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、全般的には、バス構造と、電子システムのコンポーネント間の通信を行なうための電子システム内のバス構造の動作とに関し、より具体的には、特にフラッシュメモリシステムにおいて、そのようなことを行なうリングバスの使用法に関する。
特に小形のファクタカードの形態の、今日使用されている再プログラム可能な不揮発性メモリ製品の多くが商業的に成功を収めている。これらは、1つまたはそれより多い集積回路チップ状に形成されるフラッシュEEPROM(電気的に消去可能でプログラム可能なリードオンリメモリ)セルのアレイを採用している。必ずではないが通常は独立した集積回路チップ上に存在するメモリコントローラは、カードを着脱できるホストとインターフェイスして、カード内のメモリアレイの動作を制御する。そのようなコントローラは一般に、マイクロプロセッサと、何らかの不揮発性リードオンリメモリ(ROM)と、不揮発性ランダムアクセスメモリ(RAM)と、プログラミング中および読み出し中にデータがコントローラを通過するときにデータから誤り訂正符号(ECC)を計算するものなどの1つまたはそれより多い特別の回路とを備えている。
フラッシュメモリを利用する市販のカードのいくつかは、コンパクトフラッシュ(登録商標)(CF)カード、マルチメディアカード(MMC)、セキュアデジタル(SD)カード、ミニSDカード、スマートメディアカード、xDピクチャカード、トランスフラッシュカード、およびメモリスティックカードである。ホストには、パーソナルコンピュータ、ノートブック形パソコン、個人用携帯情報端末(PDA)、種々のデータ通信デバイス、デジタルカメラ、移動電話、ポータブルオーディオプレーヤ、自動車音響システム、および同様なタイプの設備などがある。多くのホストは、1つまたはそれより多い市販のメモリカード対応を受け入れるスロットを1つまたはそれより多く有し、および/またはユニバーサルシリアルバス(USB)の差込口などを介してカードリーダに接続できる。ホストのUSB差込口に直接差し込んでホストをドライブ内のメモリに接続するUSBフラッシュドライブも使用できる。また、メモリカードおよびフラッシュドライブの実施例のほかに、その代わりとして、フラッシュメモリシステムを種々のタイプのホストシステムに埋め込むことも可能である。前述したものならびに他のフラッシュメモリ製品は、本願の譲受人であるサンディスク コーポレイションから入手できる。
2種類の汎用メモリセルアレイアーキテクチャのNORおよびNANDが主として商品として実装されてきた。一般的なNORアレイでは、メモリセルは、隣接するビットラインソースと、セルの行に沿って延びるワードラインにコントロールゲートが接続された状態で列方向に延びるドレイン拡散部との間に接続される。メモリセルは、ソースとドレインの間のセルチャネル領域の少なくとも一部分の上に配置される少なくとも1つの蓄積素子を備えている。したがって、蓄積素子上にプログラムされる電荷レベルはセルの動作特性を制御し、アドレス指定されたメモリセルに適切な電圧を印加することによって読み出すことができる。このようなセルの例、メモリシステムにおけるそれらの使用法、およびそれらの製造方法は、米国特許第5,070,032号(特許文献1)、米国特許第5,095,344号(特許文献2)、米国特許第5,313,421号(特許文献3)、米国特許第5,315,541号(特許文献4)、米国特許第5,343,063号(特許文献5)、米国特許第5,661,053号(特許文献6)、および米国特許第6,222,762号(特許文献7)に記載されている。
NANDアレイは、セル列を形成するように、個々のビットラインと基準電位との間に、1つまたはそれより多い選択トランジスタと一緒に接続された、16個、36個などの、2より多いメモリセルから成る直列ストリングを利用する。ワードラインは、多数のこれら列内のセルを横切って延びる。ストリングを通る電流がアドレス指定されたセルに蓄積された電荷のレベルに依存するようにストリング内の残りのセルを強くオンに転換させることによって、プログラミング中に列内の個々のセルを読み出し、ベリファイする。NANDアーキテクチャのアレイの例およびメモリシステムの一部としてのその動作は、米国特許第5,570,315号(特許文献8)、米国特許第5,774,397号(特許文献9)、米国特許第6,046,935号(特許文献10)、米国特許第6,522,580号(特許文献11)、および米国公開特許出願第2003/014278号(特許文献12)に記載されている。
前述した援用されている特許に記載されているように、現在のフラッシュEEPROMアレイの電荷蓄積素子は、最も一般的には、導電性フローティングゲートである。フラッシュEEPROMシステムで有用な別のタイプのメモリセルは、不揮発式に電荷を蓄積する導電性フローティングゲートの代わりに、非導電性の誘電材料を利用する。誘電式の蓄積素子を採用するいくつかの特定のセル構造およびアレイは、米国公開特許出願第2003/0109093号(特許文献13)においてハラリらによって説明されている。
集積回路の応用例のほとんど全てにおいてそうであるように、いくつかの集積回路機能を実装するために必要なシリコン基板領域を小さくするという圧力はフラッシュメモリセルアレイにおいても存在する。一定サイズのメモリカードおよび他タイプのパッケージの記憶容量を増加させるために、または、記憶容量を増加させ且つサイズを縮小させるために、シリコン基板の特定領域に記憶できるデジタルデータ量を増やすことが絶えず望まれている。データの記憶密度を増加させるための方法の1つは、1つのメモリセルおよび/または1つの記憶素子すなわち蓄積素子に1ビットより多いデータを記憶させることである。これは、蓄積素子電荷レベル電圧のウィンドウを2より多いステートに分けることによって達成される。そのような4つのステートを使用することによって各セルに2ビットのデータを記憶させることができ、8つのステートを使用することによって各蓄積素子に3ビットのデータを記憶させることができ、等々となる。フローティングゲートを用いたマルチステートフラッシュEEPROM構造およびその動作は、米国特許第5,043,940号(特許文献14)および米国特許第5,172,338号(特許文献15)に記載され、また、誘電式フローティングゲートを用いた構造については前述した米国公開特許出願第2003/0109093号(特許文献13)に記載されている。マルチステートメモリセルの選択部分が、米国特許第5,930,167号(特許文献16)および米国特許第6,456,528号(特許文献17)に記載されているように、さまざまな理由のために2ステート(バイナリ)で作動される場合もある。
フラッシュメモリセルは再プログラミングの前に消去される。一般的なフラッシュメモリセルアレイのメモリセルは、一緒に消去される個別のセルブロックに分割される。すなわち、このブロックが消去単位であり、同時に消去可能な最小数のセルである。各ブロックは一般に1つまたはそれより多いページのデータを記憶している。ページはプログラミングおよび読み出しの最小単位であるが、メモリセルの別々のサブアレイまたはプレーンで、1つより多いページを並列にプログラムしたり、読み出したりすることができる。各ページは、一般に、1つまたはそれより多いデータセクタを格納し、セクタのサイズはホストシステムによって定められる。セクタの一例は、磁気ディスクドライブについて確立されている規格にしたがって512バイトのユーザデータと、ユーザデータおよび/またはユーザデータを記憶するブロックに関する数バイトのオーバーヘッド情報とを含んでいる。そのようなメモリは一般に各ブロック内の16ページ、32ページまたはそれより多いページで構成され、各ページは1つまたはそれより多いホストデータセクタを記憶している。
ユーザデータをメモリアレイにプログラミングしている間の並列処理の度合いを増加させ、メモリアレイからユーザデータを読み出すために、通常、アレイはサブアレイに分割される。サブアレイは一般にプレーンと呼ばれ、データセクタを同時にいくつかまたは全部のプレーンのそれぞれへプログラムしたり、それぞれから読み出したりできるような並列動作を可能とするために、それ自体のデータレジスタおよび他の回路を備えている。単一の集積回路上のアレイが物理的にいくつかのプレーンに分割されていてもよいし、各プレーンが別個の1つまたはそれより多い集積回路チップから形成されていてもよい。そのようなメモリの実装例は、米国特許第5,798,968号(特許文献18)および米国特許第5,890,192号(特許文献19)に記載されている。
メモリをさらに有効に管理するために、ブロックをリンクさせて仮想ブロックまたはメタブロックを形成してもよい。すなわち、各メタブロックは、いくつかまたは全部のプレーンのそれぞれから1つのブロックを含むように定められる。メタブロックの使用法は、米国公開特許出願第2002/0099904号(特許文献20)に記載されている。メタブロックは、データをプログラムし、且つ読み出す場合ための宛先としてホスト論理ブロックアドレスによって特定される。同様に、メタブロックの全ブロックは一般に一緒に消去される。
そのような大きなブロックおよび/またはメタブロックで動作されるメモリシステム内のコントローラは、効率的な動作を維持するために、ホストによって課せられる数多くの機能を実施する。また、メモリの記憶容量を有効利用するために、反復的なデータ整理統合(ガーベッジコレクション)が実施される。ガーベッジコレクションを実施している時、コントローラは一般にメモリに対するデータ転送というその主要機能を一時停止するため、システム性能に潜在的な悪影響を及ぼす。メモリアレイチップ自体に関するデータコピーの制限が、米国特許第6,266,273号(特許文献21)に記載されている。
一般的なフラッシュメモリシステムは1つまたはそれより多い、それぞれがメモリセルのアレイおよび関連する周辺回路を含んでいる集積回路チップと、コントローラを含んでいる別の集積回路チップとを備えている。いくつかの応用例では、1つのチップ上にコントローラおよびメモリアレイが含まれている。いずれの場合においても、データ、アドレス、コマンドおよびステータス情報は、全部のメモリシステムコンポーネントが作用的に接続された共通両方向システムバスを介し、コントローラと、1つまたはそれより多いフラッシュメモリセルアレイ、サブアレイ、プレーン、または集積回路チップとの間でやりとりされる。
米国特許第5,070,032号 米国特許第5,095,344号 米国特許第5,313,421号 米国特許第5,315,541号 米国特許第5,343,063号 米国特許第5,661,053号 米国特許第6,222,762号 米国特許第5,570,315号 米国特許第5,774,397号 米国特許第6,046,935号 米国特許第6,522,580号 米国公開特許出願第2003/014278号 米国公開特許出願第2003/0109093号 米国特許第5,043,940号 米国特許第5,172,338号 米国特許第5,930,167号 米国特許第6,456,528号 米国特許第5,798,968号 米国特許第5,890,192号 米国公開特許出願第2002/0099904号 米国特許第6,266,273号
フラッシュメモリシステムの動作速度はこのようなバスを使用することによって制限される。単一バスは比較的長いので、システムの動作周波数は、ラウンドトリップ遅延およびこのバスに特有の大容量性負荷によって限定される。バスを介した通信が、コントローラとフラッシュメモリチップのうちの1つとの間でしか行なわれない場合もある。システムのある記憶位置間の1データユニットの伝送でバスがふさがっているとき、システムの他のコンポーネントがデータ転送のためにバスを使えないことがある。データは通常、メモリセルの個々のユニット間(すなわち、個々のアレイ、サブアレイ、プレーン、またはチップ間)で直接転送されることはない。むしろ、そのようなデータ転送は、一般に、転送の一部としてバッファメモリに一次記憶させるために共通バスを介してデータをコントローラに渡すことを含む。
したがって、本願明細書に記載されている従来のバスに対する改善策として、コントローラと、メモリシステムのすべてのメモリセルアレイ、サブアレイ、プレーンおよび集積回路チップとは、個々のバスインターフェイス回路(ノード)を介して互いにループまたはリング状に接続される。ノード間のリングバスのセグメントを個別に駆動することにより、駆動される各セグメントのキャパシタンス量を大幅に減少させ、したがって許容できるバスの動作周波数が増加する。データは、メモリセルアレイ、サブアレイ、プレーンおよびチップ間、ならびにそれらのうちのいずれかとコントローラとの間で、直接通信できる。しかし、通信されるデータは、必ずしも最初にコントローラを通過しなくてもよい。バスは閉じられたループを形成し、データ、コマンド、ステータス情報はループを巡回して単一方向に転送されることが好ましい。データは、リングを完全に巡回してデータが送出されたノードまで転送されることが好ましく、この箇所において転送後のデータの有効性を任意に確認してもよい。本願明細書に記載されているリングバスは、前述した背景技術の欄に記載されているものをはじめとする従来のメモリシステムで使用されている一般的なバスと置換することも可能である。
好ましい実施例において、一般にシステムコントローラのものであるただ1つのマスタノードが、リングバスによって接続された他の全部のノードの動作を制御する。コントローラによって出される特定のコマンドは、アドレス指定されたノードだけにこのコマンドを実行させる追加ノードアドレスによって、1つまたはそれより多いノードにアドレス指定される。初期化コマンドおよび設定コマンドをはじめとするグローバルコマンドはすべてのノードに受け付けられる。データがバスを巡回してノード間で転送される前に、ノードは、特定の転送に対応するようにセットアップされる。例えば、1つのメモリユニット(例えば、チップ、サブアレイまたはプレーン)から別のものへデータが転送される場合、データがソースユニットから、そのノードに接続されたレジスタへ読み出され、宛先ノードはデータを受け入れるように設定される。次に、後続の転送コマンドにより、コマンドによって条件付けられたソースと宛先ノードとの間で計画された転送が行なわれる。このシステムおよび動作の利点は、そのようなデータ転送を、メモリとコントローラノードの間のように、メモリのユニット間で直接行なえることである。
リングバスの動作に含むことができる別の特徴は時分割多重方式である。すなわち、データは割当てられたタイムスロットまたはフレームでバスを巡回して転送される。したがって、多数のデータフレームを同時に転送することができる。使用されるタイムスロット数は、同時に転送されるデータフレームの数と等しくなるように動的に調節されることが好ましい。データフレームは、すべてがリングの周りの同一ソースまたは同一宛先ノードを有していなくてもよい。したがって、リングバスのデータ伝送速度の分数であるその個々のフレームレートで特定のコンポーネントに対してデータが転送されるので、バスノードと接続されるメモリシステムコンポーネントのデータ帯域幅の要件として、バスほど高くないことが要求される。具体例として、データ転送のためにノードをセットアップするのに用いられるコマンドは、時分割多重化なしで、添付された所期のノードのアドレスにより、バスを巡回して伝送される。その後、計画されたデータ転送が複数のタイムスロットを使用することによって実行される。タイムスロットのうちの1つを使用することによってステータス情報をバスに巡回させて送信することもできる。
別の特徴として、メモリから読み出されるデータの完全性は、一般にコントローラによって提供され、最も利便的には誤り訂正符号(ECC)を実行する専用回路によって提供される、誤り訂正機能にデータを通すことによって簡単に確認できる。望み通りにデータがリングを巡回して完全に転送されれば、ソースおよび宛先ノードがコントローラノードに対してどこに位置していようと、データは常にコントローラノードを通過する。データ転送を始めるノードは、転送によってデータが壊されていないことを保証するために、バス上に置かれたこのノードが受け取るバス巡回後のデータを任意にベリファイすることもできる。
さらに別の特徴として、プロセッサ、バッファメモリおよびECC回路を含む、コントローラのさまざまな機能およびコンポーネントを、ノードを介してシステムリングバスに個別に接続することもできる。ノード・ツー・ノードコマンドおよびデータ転送のフレキシビリティと並列性はさらに増大する。メモリシステムの他のコンポーネントが関係しないときに、その効率的な動作のためにコントローラのコンポーネント間でコマンドおよびデータを直接転送するために従来形のコントローラバスを備えることもできる。
既存の従来形のコントローラとの下位互換性を与えるために、メモリセルアレイ集積回路チップは、リングバスを使用するようになっているコントローラが用いられるときに前述したリングバスを接続することもできる、従来形バスと接続するためのインターフェイスを備えることができる。このデュアルモードのバスインターフェイスにより、他のタイプのコントローラを備えるメモリシステム内でこのフラッシュメモリチップを使用することが可能となる。
集積回路メモリチップの一実施例において、1つまたはそれより多いメモリデータノードが、外部入力バス接点と外部出力バス接点の間に直列接続される。次に、これらのバス接点を一緒に接続することによって、1つまたはそれより多いメモリチップがコントローラチップと直列接続されて、それらが閉ループ状に接続される。複数のメモリチップは、別のメモリチップのバス入力に接続されたあるチップのバス出力に接続される。1枚のプリント回路基板(PCB)を用いてさまざまな個数のメモリチップを有するメモリカードを従来通りに製造できるようにするために、個々のメモリチップは、直列に隣接するメモリチップと接続するためのバス出力パッドと、コントローラチップに戻すバス経路に接続するためのバス出力パッド、という2セットのバス出力パッドを備えることができる。PCBに装着されている各メモリチップの戻りバス出力パッドは、1から最大数までの任意の数のメモリチップのためのコントローラへの戻りバス経路を形成するPCB上の1セットの導体に接続される。よって、戻りバス出力パッドは、一連のメモリチップの最後で有効となって、PCB上の戻りバス導体と作用的に接続するが、他のすべてのメモリチップの戻りバス出力パッドは無効となる。正確に言えば、他のメモリチップの他の出力は別のメモリチップのバス入力と接続されて、メモリチップの直列接続およびリングバスを形成する。
本発明の他の態様、利点および特徴は、添付図面と組み合わせて解釈されるべきである以下の本発明の例示の実施例の説明に記載されている。本願明細書では、本発明を説明するために、1タイプのフラッシュメモリシステムの実施例しか説明しないが、本発明のさまざまな態様が、そのコンポーネント間でデータを転送する高い周波数のバスを必要とする多様なタイプのメモリシステムで実施され得る。また、本発明の多くの態様および特徴は、内部バスを利用する他のタイプの電子システムの同様な利点によって実施可能である。
本願明細書に記載されている、特許、特許出願、論文および他のタイプの出版物のすべては、いずれの場合においても、その全体が参照により本願明細書において援用されている。
図1を参照すると、以下の本発明の種々の態様および特徴の説明の背景技術を提供するために、従来のバスを備えた一般的なフラッシュメモリシステムが示されている。図1ではメモリチップ15は1つしか示されていないが、システムコントローラは、通常、システムバス13を介して1つまたはそれより多い集積回路メモリチップに並列接続される1つの集積回路チップ11に実装される。示されている特定のバス13は、データを搬送するための独立した導体セット17と、メモリアドレス用のセット19と、制御およびステータス信号用のセット21を備えている。あるいは、1セットの導体をこれら3つの機能の間で時分割することもできる。
一般的なコントローラチップ11は、インターフェイス回路25を介してシステムバス13とインターフェイスする、それ自体の従来式の内部バス23を有している。通常このバスに接続される一次機能は、(マイクロプロセッサまたはマイクロコントローラなどの)プロセッサ27、このシステムを初期化(「ブート」)するためのコードを含んでいるリードオンリメモリ(ROM)29、メモリとホストとの間で転送されるデータをバッファするために主として使用されるリードオンリメモリ(RAM)31、およびメモリとホストとの間のコントローラを通過するデータの誤り訂正符号(「ECC」)を計算して確認する回路33である。コントローラバス23は回路35を介してホストシステムとインターフェイスする。メモリカード内に含まれている図1のシステムの場合、これは、カードの外部接点37を介して行なわれる。クロック39がコントローラ11の他の各コンポーネントと接続されて利用される。
システムバス13に接続されている他のものと同様に、通常メモリチップ15は、複数のサブアレイまたはプレーンに構成されたメモリセルのアレイを備えている。分かりやすくするために、2つのそのようなプレーン41および43が示されているが、そのようなプレーンは4つまたは8つある方が一般的である。あるいは、メモリチップ15はプレーンに分割されないメモリセルアレイを備えていてもよい。しかし、そのように分割される場合、各プレーンはそれ自体の列制御回路45および47を有し、列制御回路45および47は互いに独立に動作できる。回路45および47は、システムバス13のアドレス部19からそのそれぞれのメモリセルアレイのアドレスを受け取り、それらを復号化して、特定の1つまたはそれより多いそれぞれのビットライン49および51をアドレス指定する。プレーン41および43は、アドレスバス19上で受信されたアドレスを受けて行制御回路55を通じてアドレス指定される共通ワードライン53を有する。現在のところ、メモリセルアレイ41および43のNANDアーキテクチャが好適である。Pウェル電圧制御回路61および63のように、ソース電圧制御回路57および59もそれぞれのプレーンに接続されている。
システムバス13のデータ部17に接続されているそれぞれのデータ入出力回路65および67を通って、プレーン41および43にデータが入出力される。回路65および67は、それぞれの列制御回路45および47を介してプレーンに接続されたライン69および71を介して、そのそれぞれのプレーンのメモリセルにデータをプログラムし、且つこのメモリセルからデータを読み出す両方の役割を果たす。
コントローラ11は、データをプログラムし、データを読み出し、種々のハウスキーピングマターを削除および追加するようにメモリチップ15の動作を制御するが、各メモリチップもまた、コントローラ11からのコマンドを実行してこのような機能を実施する何らかの制御用回路を備えている。インターフェイス回路73がシステムバス13の制御およびステータス部21に接続されている。コントローラからのコマンドはステートマシン75に供給され、その後、ステートマシン75はこれらのコマンドを実行するために他の回路を厳密に制御する。制御ライン77〜81は、ステートマシン75とこれら他の回路とを図1に示されているように接続する。ステートマシン75からのステータス情報は、ライン83を介してインターフェイス73に送られ、バス部21を介してコントローラ11に送信される。
コントローラチップ11とメモリチップ15の種々の部分との間の通信は、コントローラとメモリチップが並列接続されている単一システムバス13を介した通信の制限に左右されることが、図1のメモリシステムから分かる。
(例示的なリングバスの実施形態の詳細な説明)
前述した従来のバス15の代わりにリングバスを用いたメモリシステムの第1の実施形態が図2〜図9に示されている。最初に図2を参照すると、コントローラ集積回路チップ101と単一メモリチップ103がメモリシステムを形成しているが、別のメモリチップを含むことも可能である。メモリチップ103はメモリセルの4つのプレーン105〜108を有するように示されているが、そうではなく、使用されるメモリプレーンが、4つより少なくてもよいし、たとえ1つであってもよいし、または4つより多くてもよい。列制御回路110〜113がそれぞれのプレーン105〜108に接続されている。2つのデータレジスタAまたはBの一方を選択するそれぞれの多重化回路115〜118を介して、データがメモリプレーン105〜108へプログラムされ、また、メモリプレーン105〜108から読み出される。データのプログラミング中、そのマルチプレクサによって選択される特定プレーンのレジスタAまたはBの一方に記憶されているデータが、当該プレーンにプログラムされる。同様に、データの読み出し中、プレーンから読み出されたデータは、そのマルチプレクサによって選択されるレジスタAまたはBの一方に書き込まれる。これら2つのレジスタを使用することは要件ではなく、単一のレジスタを使用することも可能であるが、これら2つのレジスタは、メモリシステムの動作時のフレキシビリティおよび並列処理の度合いを増加させる。コマンドおよび制御回路121は、図1のシステムの制御回路のステートマシン75および種々のものと同様の機能を提供する。
図2の例において、メモリアレイプレーン105〜108のそれぞれは、プレーンから読み出されるデータおよびプレーンにプログラムされるデータを、リングバスインターフェイスノード123〜126の対応する1つを介して送受信する。各プレーンのデータレジスタAおよびBの両方が、このプレーンのノードに接続される。コントローラ101からのコマンドはリングバスインターフェイスノード127によって受け取られ、ステータス信号はこの同じノードを介してコントローラに送り戻される。ノード127はメモリ集積回路チップ103の制御回路121に接続されている。このシステムに追加のメモリチップ(図2には示されていない)が含まれる場合、この具体例では、各メモリチップが自己のコマンドインターフェイスノードを備えることになる。
同様に、コントローラチップ101はコントローラ130に接続されるリングバスノード128を備えている。図2のコントローラ130は、ノードインターフェイス128(図2)がメモリインターフェイス25に置き換わることを除き、図1のコントローラ11と同様とすることが可能である。
ノード123〜128は、データ、アドレス、コマンドおよびステータス情報をこれらノード間で転送するために、ループ状につなぎ合わされている。このループは、コントローラから130からのデータを搬送する1つのライン133と、コントローラ130からのコマンドを搬送する別のライン135とを有するリングバスによって形成されている。あるいは、情報転送帯域幅を広くするために2つまたはそれより多いラインを使用すること、および/または2つまたはそれより多いコマンドラインをリングバスに備えることが可能であるが、これは、バスノード回路構成と動作が複雑化して費用が強いられる。このバスには、クロック信号をノードに搬送するさらに別のライン137を備えることもできる。あるいは、データライン133上およびコマンドライン135上の情報に自動タイミングフォーマットが採用される場合には、クロックラインを省略することができる。
図2のシステムは、1クロックサイクルまたは数クロックサイクルの遅延が各ノードに好適に導入された状態で、データおよびコマンドがリングバス上をパイプライン式に転送されるように動作させられる。データライン133、コマンドライン135、およびクロックライン137は、集積回路チップ101および103上およびそれらの間で同じ経路をたどり、各ノード内で、3本のライン内の信号に同じ遅延が導入される。情報は、従来のバスでそうであったようにバス全体に存在するのではなく、隣接するノード間のバスのセグメントに沿ってポイントからポイントへ転送されるだけであり、それによってきわめて高い周波数のリングバス動作が可能となる。バス上の信号は、利用可能な電力供給電圧によってその振幅が設定された状態で、完全にデジタルとすることができる。しかし、動作周波数の増加および電力損の低減は、低電圧スイング信号送信、完全微分信号送信、擬微分信号送信、ダブルデータレート、または最新モードドライバの使用など、適切な高速信号送信技術を利用することによっても達成できる。
コマンドはコントローラノード128だけが発信することが好ましい。これによって、コントローラノード128がリングバスの単一マスタとなる。コマンドコードは、コマンドライン135上のコントローラノード128から送出され、1つまたはそれより多い他のノード123〜127によって実行される。1つのノードだけが、コマンド実行の対象とされる場合、このノードの対応識別コードがデータライン133上を同時に転送される。したがって、対象ノードは、実行用コマンドを受け入れる唯一のノードとなる。
データライン133上を転送されるデータは、いずれか1つのノード123〜128(ソースノード)から発信され、いずれか1つまたはそれより多い他のノード(宛先ノード)に向けられる。そのようなデータ転送の前に、ソースノードおよび宛先ノードがデータ転送用に設定される。その後、リングバスを巡回するデータ転送が行なわれる。転送されるデータは、リングバス全体を巡回して進み、発信ノードに戻ることが好ましい。これにより、ECCを用いることによってデータの有効性を確認するノードなど、そうするように設定されたいずれの他のノードも転送データを読み出すことができるように、徹底される。これにより、最初の転送データと比較することによって、または冗長パリティビットを使用することによって、リングバス巡回転送中に生じた誤りがないか、発信ノードが受信データを確認することも可能となる。
ほとんどの場合に好ましい図2のシステムのある特定の動作中、データは、時分割多重化を利用して、フレーム式またはタイムスロット式にデータライン133上にリングバスを巡回するように送出される。これにより、異なるデータセクタなど、異なるソースおよび/または宛先ノードを有する場合もある2つまたはそれより多い異なるデータチャネルのリングバスを巡回する同時転送が可能となる。各データ転送に使用されるタイムスロット数は、実行される同時データ転送数に対応するように選択される。これにより、個々のノードに接続されているメモリデータプログラミングおよび書き込回路と同様に、個々のノードの特定機能が、より少ない帯域幅で動作できるようにしながら、リングバスの帯域幅が十分に利用される。
図3Aのタイミング図を参照すると、同時に時分割多重化された3つのチャネル0〜2のデータ伝送が示されている。データライン133上の次に始まるフレームが有効データを含んでいることを示すマーカとして、1サイクルの「pip」がコマンドライン135に送出される。pipは、データライン133上のタイムフレームに挿入される、pipと同じクロックサイクル中に始まるデータのソースであるいずれかのノードによって、コマンドライン135に挿入されるのが最も一般的である。したがって、リングバスのデータライン133およびコマンドライン135は、同様に経路設定して同期するように動作させる必要がある。データタイムスロットのタイミングおよび定義は、そのようにするのにpipを利用しない以下に説明する態様で制御される。
図3Aの例では、データフレームA、BおよびCが、チャネル0、1および2でそれぞれ送出される。チャネル1は2サイクル用の有効データを搬送せず、その時間の後、イニシャルデータフレームBがリングバスで転送有効となる。1チャネルのデータがメモリフレームノード123〜127のいずれかの間をこのように転送されることにより、データがメモリとホストシステムとの間で転送されるときに、コントローラ130を通る必要なくメモリチップ103内のプレーン間でデータ転送が行なわれるか、または、1つ以上のそれらとコントローラノード128との間でデータ転送が行なわれる。
D個のノードを有するリングバスを巡回してデータを転送するために時分割多重化を行なう2通りの具体的な実施例が、図3Bおよび3Cのタイミング図によって概念的に示されている。各タイムフレームの持続時間(長さ)は、Aクロックサイクルである。以下に説明する具体例のデータバスタイムスロットは4クロックサイクルであるが、数字Aは、わずか1とすることも、8、16、32、またはそれより多い数とすることも可能である。データが通過するノードによるデータの遅延は、Bクロックサイクルとして示されている。パラメータAおよびBのそれぞれは、通常、メモリシステム内に作り込まれるので、システムの動作中に変更することはできない。C個のタイムスロットが使用される。
図3Bに示されているリングバス動作時、チャネル(タイムスロット)の個数Cはバス上のノード数Dと等しくされる。フレーム長Aもノード間のバス遅延Bと等しくなるようにされ、AおよびBの測定はいずれもクロックサイクル数で行なわれる。各ノードは、一般にB個の記憶レジスタステージを有することにより、各ノードを通過する、遅延Bに等しい数のビットを格納する。これらのパラメータを使用することにより、データをバス上の各データノードに同時に転送することが可能となる。すべてのタイムスロットの各データビット位置に対して1つの記憶レジスタがバスの周りに存在する。これにより、割当てられたC個のデータタイムスロットが各ノードを絶えず循環する。したがって、一般的なデータ転送動作に用いることができる最大数のチャネルが存在する。実際には、通常データを送受信しない各制御ノードのチャネルが含まれるので、結果的に1つまたはそれより多い余分のチャネルが出てくる。これらは、コントローラにステータス情報を送り戻すために使用できる。1つのチャネルは通常、システム内の各メモリチップのステータス情報を送るために使用される。
しかし、図3Bに示されているように時分割多重化を実施するのに便利ではあるが、この最大数のデータチャネルが必要なことは滅多にない。したがって、データバスの帯域幅を最大限に使用するために、特定のデータ転送動作に必要とされる程度の少ない数のタイムスロットCを使用することが好ましい。図3Cのタイミング図は、所期のデータ転送に必要なものになるように作ることができるが、図3Bに示されているように動作する場合に生じ得る多くの空タイムスロットを含む必要がない、動的に選択されたC個のチャネルを備えたバスの動作を示す。
図3Cには、バス上のD個のノードよりも少ない数のC個のチャネルが使用される場合が示されている。この例では、ノードからのデータの連続フレームは、同時に同じチャネルアイデンティティを備える少なくとも2つのタイムスロットでリングバスを巡回させられる。例えば、バス上にD=12個のノードが存在し、同時転送されるC=6個のデータチャネルを多重化によって動的に指定した場合、各チャネルはバスに2回出現する。D/Cが整数であり、この例では整数が2であるので、これは比較的単純明快である。しかし、D/Cが整数ではない、より頻繁に起こる事例が図3Cに示されている。このような場合、1つまたはそれより多い不使用のタイムスロットが挿入され、不使用のタイムスロットは「ヌルスロット」と呼ばれる。ノード数Dからヌルスロット数を減じた数字をタイムスロット数Cで割ったときに整数となるように、複数のヌルスロットが挿入される。すなわち、(D−ヌルスロット数)/Cを整数にする。
データバスを介して転送されるデータの全部でC個の一連のフレーム(タイムスロット)が、1「サイクル」を形成するように図3Cに示されている。この例では、データを通過させるバス上のD個のノードより少ない、バスを巡回するタイムスロットのグループを形成するために、サイクルが全部でN回繰り返される。一連のタイムスロットをノード数Dと等しくするために、このグループを実質的にNサイクル+ヌルスロットまで拡張するようにヌルスロットが加えられる。図3Cの例では、N=D−1であり、足りない1の分の埋め合わせは、示されているヌルスロットの挿入によって遂行される。N=D−2である別の事例では、例えば、2つのヌルスロットが挿入される。これにより、グループのデータを1度でバスを完全に1周移動させるのに必要な総クロックサイクル数が、このリングのまわりの1ビット格納位置の総数と等しくなる。数量NおよびCは、所期のデータ転送動作について、リングの周りを循環させる不使用のヌルスロットの数が最小限になるように選択される。というのは、ヌルスロットの使用により、バスのデータ転送帯域幅が幾分か少なくなるからである。必要な場合、ヌルスロットは関連するデータチャネルを有さず、リングのまわりをノード・ツー・ノードで連続的に循環する。「ドントケア」値を有するヌルデータは、ヌルスロット内でノード・ツー・ノードで渡される。
図2のデータノード123〜126のそれぞれの回路の実施例が図4に示されている。リングバスのデータライン133上の1ビットのデータの信号はレジスタステージ151によって受信され、直列式に連続するレジスタ152、154および156を通される。4クロックサイクルのタイムスロット長Aに合うように、4つのレジスタステージが示されている。最後のステージ156の出力および最初のステージ151の出力は、いずれもスイッチング回路153へ入力として接続されている。これにより、回路153は1遅延サイクルまたは4遅延サイクルで動作可能となる。スイッチング回路153の出力は、ドライバ155を介してデータライン133に戻るように接続されている。最も一般的な構成において、スイッチング回路153の入力が、その出力ドライバ155に接続されたレジスタ156からのものである場合、データノードのレジスタ151が受信する1ビットのデータは4クロックサイクル後にデータライン133上に戻され、リングバスの別のセグメントを介して次のデータノードに転送される。同様に、スイッチング回路153の入力が、その出力ドライバ155に接続されたレジスタ151からのものである場合、遅延は1クロックサイクルである。ノードによってそのレジスタAまたはBの一方からデータラインにデータが戻されるタイムスロット中、スイッチング回路153はこれらデータバス入力をその出力に接続させない。
データバスが、示されている単一ラインではなく、2本またはそれより多い並列なデータラインを使用する場合、各ラインごとに別個のレジスタステージが設けられ、スイッチング回路153はそれらを一緒に切り換える。例えば、データバスが4本のラインを含んでいる場合、データノードは各ラインに1つずつレジスタステージを備えている。そのような場合、各ノードがそれを介して1つのタイムスロットの4ビットを転送する場合の総遅延は、4クロックサイクルではなく1クロックサイクルである。これによってバスの帯域幅は大きくなって有利であるが、システムの回路構成および動作が複雑化する。
データノードへのコマンドライン135の入力は、他の一連の4つのレジスタ157、158、160および162に同様に接続されている。コマンドは、データライン133上のデータと同時に、すなわち同じ遅延が課せられた状態で、コマンドライン135に送られる。最後のレジスタ162の出力は、データレジスタ経路と同様、最初のレジスタステージ158の出力のようにスイッチング回路153に接続される。これらの入力はいずれもスイッチング回路153によってドライバ159に接続し、コマンド情報を1または4クロックサイクルの遅延を付けてリングバスの次のセグメントに送ることができる。ノードがコマンドライン135にpipを送出する必要があるとき、これらの入力はいずれもドライバに接続されない。これは、ノードによって、データバス133を通じて、次に生じるタイムスロットに有効データが置かれることを示す。データバスが2つまたはそれより多いラインを含む場合、2つのバスが同期して動作するように、コマンドバスは、並列レジスタの使用を含め、同様に構成されることが好ましい。
クロック信号ライン137はドライバ161と直接接続され、データとコマンドレジスタステージのために刻時を行い、また、データノードの残りの回路のためのクロック信号を供給する。
デコーダ163が、レジスタ157の出力でコマンドライン135からコントローラコマンドを受け取り、レジスタ151の出力でデータライン133上の関連データを受け取る。デコーダの機能の1つは、引き続いて起こるデータ伝送中にデータを受信または送信するようにそのノードを設定するコマンドを実行することである。データライン133に供給されるコマンドに関係するデータは、コマンドの対象となるノード識別番号、データの送信または受信に使用されるチャネル番号、レジスタAとBのどちらが使用されるか、転送されるデータ長、および他の設定情報などである。
レジスタ165は、メモリシステムの始動時または他の初期化時に記憶されるノードの固有識別番号を含んでいる。システムコントローラによって出されるグローバル初期化コマンドがこれを行なうことが好ましい。識別番号は、動作中、コントローラからのノード用のコマンドのアドレスとして使用される。リングバス上のすべてのノードがコマンドを受信するが、コマンドは、このコマンドの対象とされるノードの識別番号とともに、バスを通じて伝送される。そのため、識別番号でアドレス指定された1つまたは複数のノードだけがこのコマンドを記憶して、次に実行するように応答する。
別のレジスタ167は、特定のノードが通信している時分割多重化されたデータバスのチャネルの番号を含んでいる。このチャネル番号は、一般に、データバス133を通じた毎回のノードとのデータ伝送前にノードの設定の一部として書き直される。データ伝送中、データを送信または受信するためのノードに割当てられたチャネルのタイムスロットの出現を識別するために、記憶されたチャネル番号が使用される。現在の転送動作で転送されるデータの長さは別のレジスタ168に記憶され、レジスタAまたはBのどちらを転送に使用するかの指定はレジスタ170に記憶されている。レジスタ167、168および170のパラメータは、バスを巡回してコマンドライン135を通じて送られる、レジスタ165に記憶されるノード識別番号を含むコマンドによって、デコーダ163を通じてこれらのレジスタにロードされる。
図4のスイッチング回路153は、データバスライン133とレジスタAおよびB(図2に示されているもの)の一方との間に、それぞれのデータライン169および171の一方を通じて接続を確立する。制御回路は、一方のレジスタAまたはBとデータライン133との間でデータを転送するようにノードを設定する。ノードのメモリプレーンに記憶するためにバスからデータを転送するとき、回路153は、ライン182上の復号化された制御信号によって選択された通りにレジスタ151またはレジスタ156の一方の出力でバスライン133から、ライン177上の制御信号によって選択された通りにレジスタAおよびBの一方へ、データを送る。しかし、ノードに割当てられたタイムスロット中に、選択された一方のレジスタAまたはBからデータバスライン133へ逆方向にデータを転送するとき、スイッチング回路153は、レジスタ151とドライバ155の間のデータバスライン133のセグメントを切断する一方、選択されたレジスタの出力をドライバ155に接続する。それ以外のとき、スイッチング回路153は、1または4クロックサイクルの遅延を与えることを除き、データについては何もせずにデータをノードに通すように接続される。レジスタ151またはレジスタ156の一方とドライバ155との間のデータバスライン133のパススルー接続は、ノードがそのデータレジスタAまたはBの一方とデータバス133との間でデータを転送していないときに維持される。
適切な時間にこれらの接続を行なうようにスイッチング回路153を制御するのは、制御ライン175〜179および182を通じたデコーダ163からの信号および別の制御ライン180を通じたチャネルカウンタ181の出力からの信号である。カウンタ181は、デコーダ163によって、ライン183〜186を通じて4つの信号により制御される。ライン183は、ノードによるデータ転送動作の最初にカウンタ181をリセットする初期化信号を搬送する。ライン185は、データ伝送のためのノードのセットアップの一部としてコントローラによって伝えられる、現在のデータ伝送に使用されるチャネル数のデータを搬送する。リングバス上のノード数Dもライン186を通じてカウンタ181に供給され、サイクル数N(図3C参照)は回路184を通じて伝えられる。カウンタ181は、最大チャネル数まで数え、次に最小チャネル数にリセットされ、休止され、再び数えはじめる、といったことを行なう。現在の数、したがって現在のチャネル数が、ライン180を通じてスイッチング回路153に入力される。回路153は、この数と、レジスタ167から制御ライン175を通じてデコーダによって供給された、ノードに割当てられたチャネル数とを比較する。これらの数が同じであるとき、回路153は、レジスタ168から制御ライン176を通じて供給されたデータ伝送の長さから判断される通りに、転送が完了するまでデータバス133に対してデータを送受信するようにノードを切り換える。
ライン177上の制御信号は、ノードのレジスタAまたはレジスタBのどちらを使ってデータを転送するかを指定する。ライン178および179は回路153を次のように切り換える信号を搬送する。(1)データバス133からデータを受け取るように切り換える。この場合、データバスはノードを通り、制御ライン177によって識別されるレジスタがこのノードに接続されている。(2)ノードに割当てられたタイムスロット中に、識別されたレジスタからバスライン133にデータを転送するように切り換える。このタイムスロット中、バスライン133はノードを通らない。(3)レジスタAまたはBと接続せずに、データバスライン133がノードを通るように切り換える。
図4に関連して説明されているデータインターフェイスノードは、バス133とレジスタAおよびBとの間のデータ転送を制御する。バス133へ転送するための、メモリセルアレイプレーンからレジスタAまたはBへのデータの読み出し、または、レジスタAまたはBからメモリセルアレイへの、バス133から得られたデータのプログラミングは、コマンドリングバスインターフェイスノード127(図2)を通して制御される。コマンドノード回路の例が図5に示され、ここで、図4の構成要素に対応するものはプライム符号(’)を付けた同じ参照番号で識別されている。レジスタ193は、デコーダ197からのライン195内の制御信号によって使用可能とされるとすぐに、コマンドバス135から受信されるコマンドデータを記憶する。同様に、レジスタ199は、デコーダからのライン201内の信号によって使用可能とされると、データバス133から受信されるコマンドを記憶する。レジスタ199の主な用途は、読み出しまたはプログラミングのためにアクセスされるメモリセルアレイ内のアドレスを記憶することである。
レジスタ193および199内のデータは、それぞれのライン203および205を通じて出力される。ライン203および205は、ステータス信号ライン207とともに、信号パス209を通じてメモリアレイ制御回路121(図2)に接続されている。ライン203によって搬送される主なコマンドは、ライン205でアドレスによって指定される位置にある1つまたはそれより多いメモリプレーン105〜108およびレジスタAまたはBの一方に対してデータをプログラムするコマンドおよびデータを読み出すコマンドである。ライン203で搬送されるコマンドコードは、メモリチップ103内のコマンドおよび制御回路121(図2)のプロトコルによって指定されるものである。このプロトコルは、リングバス内で使用されるコマンドコードのプログラムと同じである必要はない。例えば、リングバスのコマンドコードは、メモリセルアレイで使用されるコマンドコードと異なる長さのものであってもよい。この場合、コード翻訳機(図示せず)をコマンドレジスタ193(図5)の出力に組み込むこともできる。あるプロトコルを別のプロトコルに変換するためのマッピング情報をシステム構成コマンドによって翻訳機にロードしてもよい。ステータスライン207は、制御回路121から出力されてスイッチング回路211を通ったステータス信号を、ノード間でデータを転送するためのメモリシステムをセットアップするときに指定される時分割多重化チャネルの1つで、データバスライン133へ供給する。
図5のスイッチング回路211は、図4のスイッチング回路153より機能が単純である。データライン133は、ライン207からのステータス情報をライン133に送るタイムスロット中を除き、ライン214の制御信号で選択されたレジスタ151’またはレジスタ156’とドライバ155’との間を常に通されている。設定されたタイムスロットの出現は、図4のスイッチング回路153と同様に、チャネルカウンタ181’からのスイッチング回路211と、ライン175’における割当てられたチャネル番号とによって確認される。別のノードに転送するためにデータをフラッシュメモリからレジスタAおよびBの一方または両方に読み出す前に、または、別のノードからレジスタ193および199に転送されてきたデータをフラッシュメモリにプログラムした後、システムコントローラからレジスタ193および199へのコマンドおよびアドレスの受信がデータ転送の前または後に生じているあいだ、ノード間のデータ転送中にステータス情報がバス133に供給される。
いずれもコントローラ130によってそのリングバスノード128(図2)を通じて発せられた、図2〜5のメモリシステムを動作させるためのコマンドセットが、図6A〜6Iに示されている。それぞれのバスライン135(CMND)および133(DATA)を介してリングバスの3つのノードを通るコマンドおよびデータの転送が、便利のために時系列で生じる通りに示されている。当然のことながら、メモリシステムは3つより多いリングバスノードを有する可能性が高い。その場合、図6A〜6Iに示されているパターンは各ノードの信号を示すように展開される。あるノードの信号は、直前のノードのものから1クロックサイクル遅延される。各コマンドの直前のクロックサイクルでコマンドラインにpipが送出されることに注意されたい。この具体例では、データラインを通じて送られるデータの冒頭にマーキングも施される。示されている1サイクルのpipではなく、各コマンドの前のpipが複数のクロックサイクルを占有してもよいし、また、後続のコマンドを使用可能にするために必要な固有コードとして定義されてもよい。これにより、送られてくるコマンドの誤検出が大幅に改善される。
図6A、6Bおよび6Cのコマンドは、リングバス上のあらゆるノードで実行される設定コマンドである。図6Aまたは図6Bの別のコマンドにより、各ノードのレジスタ165および165’(図4および5)に固有ノード識別(ID)番号が記憶される。図6Aにおいて、冒頭にpipが付せられた設定IDコマンドがコマンドライン153を通じて送られる。その後、固有識別(ID)番号がデータライン133上に続くが、この固有識別番号の冒頭にもコマンドライン上でpipが付される。コントローラノードの後のバス上の最初のノードによって受信されたID番号は、ノードスイッチング回路153または211(図4および5)の一部である回路によって増分され、増分された番号はリングバスを巡回して順々に次のノードに送信される。
図6Bにおいて、リングバスの連続ノードで使用される一連のID番号は、直前のノードの増分回路ではなく、コントローラ回路130(図2)によって決定される。これにより、ノードへのID番号の割当てに、より大きなフレキシビリティが与えられる。コントローラ130はリングバスの隣接する最初のノードの1つのID番号だけを送出するのではなく、バス上の各ノードについてID番号を1つずつ、ID番号ストリングとして送出する。各ノードは受けとった最初のID番号を取り除いて、残りをリングバス上の次のノードに順々に再送信する。
図6Cにはチャネルリセットコマンドが示され、コントローラはシステム上の各ノードが受け取って実行するコマンドをコマンドバスライン135を通じて送出する。ノードがこのコマンドを受け取ると、このノードの割当チャネル番号レジスタ167および167’(図4および5)がリセットされる。
図6D、6Eおよび6Fの3つのコマンドは、コマンドノード127(図2および5)など、リングバスシステム上の識別されたコマンドノードに送られて受信される。図6Dのアドレス入力コマンドは、アクセス対象のフラッシュメモリアドレスを識別する。このコマンドはコマンドライン135を通じてバスを巡回して送られ、一方、このコマンドを受信させたい1つのコマンドノードのID番号がデータライン133を通じて送られる。ノードIDに続くのは、その後のステップで何らかの動作が実施されるべきメモリセルアレイのアドレスである。次に、コントローラによって送出されたIDと一致するIDをそのレジスタ165’に有する1つのノードは、このアドレスをそのアドレスレジスタ199(図5)にロードする。バスを巡回してノードからノードへ同じIDよびアドレスが渡されるが、一致するIDを備えた1つのコマンドノードだけが、このアドレスを受け入れて記憶するように自己を許可する。
図6Dの1つまたはそれより多いアドレス入力コマンドによってアドレス指定されたフラッシュメモリの一部分を動作される関連するコマンドセットが図6Eに示されている。図6Eに列挙されているコマンドのうちの1つのコマンドの固有コードがコマンドライン135を通じて送られ、このコマンドの宛先とされる1つのコマンドノードのIDがデータライン133を通じて送られる。次に、このコマンドは、識別されたコマンドノードのコマンドレジスタ193(図5)にロードされ、すぐに実行される。図6Eの読み出しモードコマンドは、リングバスによるデータの転送に備えて、図6Dのコマンドで以前にロードされたアドレスにあるフラッシュメモリ内のデータをフラッシュメモリからレジスタに読み出させる。同様に、図6Eのマルチブロックプログラムコマンドは、レジスタから、図6Dのアドレスコマンドで以前に供給されたアドレスにあるフラッシュメモリの2つまたはそれより多いプレーンにデータを並列にプログラムするために使用できる。図6Eのコマンドのうちの1つを実行することが望まれるコマンドノードが1つより多くメモリシステムに存在する場合、図6Dおよび6Eのコマンドがそれぞれに別個に送られる。
読み出し、プログラミングまたは他の動作中にコマンドノードによってステータス信号を送出することが望まれる場合、そうするようにコマンドノードを設定するために図6Fのステータス読み出しコマンドが使用される。コマンドライン135を通じて固有コマンドが送られ、他方、このコマンドによるセットアップが望まれる1つのコマンドノードのIDがデータライン133を通じて送られる。ステータス情報が送られるチャネル番号が、データライン上のノードIDに続く。その後、このチャネル番号は割当てられたチャネル番号レジスタ167’(図5)にロードされる。
図6Gは、後続のデータコマンドを受けて、リングバスのデータライン133とレジスタAまたはBの一方とのあいだでデータを転送するためにデータノードを調整するために使用される関連する入力および出力コマンドを示す。入力または出力コマンドは、コントローラによってコマンドバスライン135を通じて送られ、その後、対象ノードのID、データを転送するチャネル番号(タイムスロット)、データ転送に使用されるレジスタAまたはB、およびデータ転送の長さが続く。その後、送られたチャネル番号がデータノードのレジスタ167(図4)にロードされ、選択されたレジスタAまたはBおよびデータ転送の長さがデコーダ163に一時的に記憶され、それぞれのデコーダ出力177および176によって供給される。
すべての関連するデータノードが、1度に1つずつ、図6Gのコマンドを受け取って実行することによってデータ転送が行なわれるように設定されると、図6Hのデータオンコマンドによって転送が行なわれる。データオンコマンドは、コントローラによってバスのコマンドライン135を通じて送られ、転送を実行するのに必要な設定パラメータはデータライン133を通じて送られる。これらのパラメータは、図3Cのタイミング図によって示されているグループ化されたチャネル転送に引き続き、データ転送に使用されるチャネル(タイムスロット)数C、1グループのタイムスロット内のサイクル数N、およびリングバス上のノード数Dなどである。これらのパラメータはデータノード(図4)に記憶され、データ転送中にライン184、185および186を通じてチャネルカウンタ181に供給される。その後、データは、図6Gの入力または出力コマンドに指定された各ノードの固有チャネルを通じて、このコマンドによって指定された通りに、このコマンドを受信した各ノードのレジスタAまたはBの一方へ、または一方から、転送される。
図6Hのデータオンコマンドは、割当てられた時分割多重化チャネルでリングバスに巡回させるようにデータを転送させる。各データチャネルで転送できるのは、チャネルの幅、すなわちそれぞれに割当てられた時間の長さに応じて、限られた量のデータである。図6Hでは、説明が簡単となるように、長さ4クロックサイクルとすることによって4ビットのデータを搬送するように個々のチャネル(データフレーム)が示されているが、実際は、もっとずっと大きくすることができる。各データノードは、図3Cに示されているグループ化チャネルサイクル技術にしたがって、以前に転送されたフレームがリングバス巡回回路を完了してノードに戻る前に、別のフレームのデータを転送してもよい。これは、ノードから転送されるすべてのデータがこのように転送されるまで続く。
データオンコマンドの実行中にデータが転送されるあいだにコントローラがリングバスを通じて別のコマンドノードまたはデータノードコマンドを送出する前に、転送を中断する必要がある。これを行なうためのデータオフコマンドが図6Iに示されている。データ転送中にソースデータノードがデータオフコマンドを受信すると、ソースデータノードはその後にデータオンコマンドを受信するまで、データ転送を中断する。しかし、データオフコマンドの後に他のチャネルに有効なデータが存在する場合があるので、転送されるデータの宛先ノードは関連するデータを受け取り続ける。単にデータをそれらに渡すように設定されたこれらのノードは、そのようにし続ける。データオフコマンドによってデータ転送を中断する理由の1つは、データオフコマンド後で、且つ、再設定されたデータ転送が後からのデータオンコマンドによって再開される前に、入力および/または出力コマンドの使用によって行なえるように、チャネルを追加する、データを送信または受信するように追加ノードを設定するなどができるからである。再設定されたデータ転送の新しいパラメータは、後続のデータオンコマンドの一部として指定される。
図6Iのデータオフコマンドは、関連するコマンドコードを有しないという点が他のすべてのコマンドと異なる。このコマンドは、先行するコマンドがデータオンコマンドであった場合のみ使用されてもよい。データオフコマンドは、コマンドラインを通じて任意のチャネルで拡張pipとしてコントローラによって出力される。データラインは、データオフコマンドとは関係のない、このチャネルに適切なデータを搬送する。
直前に説明したコマンドの使用によるノード間のデータ転送の全体のプロセスを図7に略説する。転送されるフラッシュメモリプレーン内のデータは最初にレジスタ、この例では1つまたはそれより多いプレーンのそれぞれのレジスタAまたはBの一方、に移動される。第1のステップ221により、フラッシュメモリアドレスが、1つまたはそれより多いメモリプレーンにそれぞれ対応付けられている個々のコマンドノードに順々に送られる。その後、プレーのアドレス指定された位置からその対応レジスタAまたはBへデータを読み出すステップ222が続く。
これらのデータソースノードも、ステップ223で示されているように、構成される各ノード毎に図6Gの出力コマンドを使用することによって、データを送信するように設定される。ステップ224において、データ宛先ノードが、設定される各ノード毎に入力コマンドを使用することによってこれらのデータを受信するように設定される。ステップ223および224は、ステップ222と同時に実施できる。バスを巡回するノード間のデータ転送が開始される前にノード間のステップ222の転送が完了したという確認を受け取るために、ステップ222が開始された後にステータス読み出しコマンド(図6F)が出されてもよい。
データ転送用のソースノードおよび宛先ノードをセットアップするためのステップ223および224の完了後、ステップ222が完了したことを確認時に、これがなされる場合、ステップ225で、図6Hのデータオンコマンドが出される。これにより、データがリングバスを通じてソースノードのレジスタから宛先ノードのレジスタに動かされる。ソースノードレジスタおよび宛先ノードレジスタは、コントローラ130を通じてホストとデータを送受信するために使用される、コントローラノード128(図2)のそれらを備えている。
次いで、宛先ノードのレジスタに記憶されたデータはフラッシュメモリにプログラムされる。ステップ226において、コマンドノードによって制御されるフラッシュメモリ内のアドレスが、図6Dのアドレス入力コマンドによってこのコマンドノードに送られる。コマンドノードが複数ある場合、このステップは、各コマンドノート毎に別々に実施される。次に、レジスタからフラッシュメモリへのプログラミングを最大可能並列処理で行なわせるために、図6Eのプログラミングコマンドの1つが送られる。これらの技術により、データを(1)コントローラ内のレジスタを介したホストとフラッシュメモリ内の記憶位置との間、(2)フラッシュメモリ内の記憶位置間、の一方または両方で動かすことができる。
ステップ226の開始はステップ225の完了を待つ必要はなく、むしろステップ225と同時に実施できる。コントロールノードの動作とデータノードの動作の場合、または別個のレジスタの2つのノードの動作の場合、同時動作が可能である。
図6A〜6Iのコマンドを使用することによるデータ転送の説明が図8および9に記載されている。図8は、この例で使用される特定の所望データソースおよび宛先を用いて、図2〜5のメモリシステムを概略的に示すものであり、図9は、所望の転送を実行するためのコマンドを順々に列挙してある。ホストシステムによって書き込まれたデータのセクタ19、20および21がコントローラバッファRAMから転送される。フラッシュメモリに書き込みがなされるようにコントローラを通じてホストシステムとメモリシステムが接続されている。これらのデータセクタは、それぞれ、メモリプレーンA、BおよびCに転送される。同時に、プレーンCのセクタR6がプレーンDに転送される。
図8および9の例は、まだ説明されていない終了コマンド(図6E)の使用法を示すものでもある。終了コマンドは、ここでは、コマンド#4で開始されたステータス読み出し動作を終了させるためのコマンド#10(図9)として使用される。また、データオフコマンドは、それぞれのデータオンコマンド#8および#13の実行を停止するためのコマンド#9および#14として、2回使用される。データオフコマンド#9の理由は、それぞれの出力および入力コマンド#11および#12によって行なわれる、セクタR6の転送のためにソースノードと宛先ノードを設定するためにデータ転送を中断するためである。これは、フラッシュメモリ読み出しコマンド#3の実行に比較的長い時間がかかり、この時間中にコントローラがコマンド#4〜#8を出すことができるので、必要である。次に別のデータオンコマンド#13が発せられる。これによって、チャネル0で、セクタR6が転送されるデータに追加され、チャネル1、2および3を通じたデータセクタ19、20および21の転送が再開される。後から開始されるデータセクタR6の転送が完了する前に生じるデータセクタ19、20および21の転送の完了後に、別のデータオフコマンド#14が発せられ、それによって後続のデータオンコマンド#15が、セクタR6の転送を終了させるために使用されるチャネル数を減少させる場合がある。ほとんど常に行なわれるデータ転送に必要なチャネル数だけを指定することにより、メモリの性能に悪影響を及ぼす空データのタイムスロットをなくすことが望ましい。
図8および9に示されているデータ転送の例が単一リングバス上で特定の動作を同時に実施することにも注意されたい。これは、前述したアーキテクチャおよびコマンド構造の特徴である。例えば、データオンコマンド#8を受けて、時分割多重化を用いている結果として、データの3つのセクタ19、20および21が同時に転送される。各セクタは異なるソースノードと宛先ノードを備えている。データオンコマンド#13を受けて、4つのデータセクタ19、20、21およびR6が一緒にバスを巡回して転送される。また、コマンド#4中、データセクタ19、20および21の転送がチャネル1、2および3を通じて行なわれるのと同時に、ステータス読み出しコマンドがチャネル0を通じて実行される。また、前述したように、コマンド#4〜#7およびコマンド#8の一部は、フラッシュメモリ読み出しコマンド#3が実行されている間に実行される。また、リングバスを巡回して転送されるデータは、コントローラのECC回路によってこれらのデータがコントローラノードを通るときにチェックしてもよい。これはデータ転送と同時に行なわれる。
コマンドを用いて前述したようにシステムを動作させながら作ることができる、図2のメモリシステムアーキテクチャの変形例は数多く存在する。4つのメモリプレーンを有するメモリチップの代わりに、図10に示されているように、メモリチップは単一の非分割形メモリセルアレイを有することもできる。ここでは、2つのメモリチップ231および233が、リングバス内のコントローラチップ101と接続されるように示されている。メモリチップ231および233のそれぞれが、前述したようにリング状のバスによって接続された単一コマンドノードと単一データノードを備えている。特定のシステムで2より多いメモリチップを使用することもできる。
別の可能な変形例が図11に示され、ここで、2つのメモリチップ235および237のそれぞれもリングバス上のコントローラチップ101と接続されているが、各メモリチップは単一の組み合わせられたコマンドおよびデータノード239および241をそれぞれ備えている。ノード239および241は、それぞれ、1つの回路に組み合わせられた図4および図5の別個のノード回路を備えている。このことの利点は、スイッチング、コマンドデコーダ、チャネルカウンタ、種々の記憶レジスタなどといった重複するコンポーネントを削除することによってノード回路を小さくできることである。
単一パラレルバスを通じてメモリチップと通信する従来形コントローラに下位互換性を有するメモリ集積回路チップを提供するために、メモリチップは従来のバスインターフェイスならびにリングバスノードおよび外部接続を備えることができる。そのようなメモリチップが図12に示されている。このメモリチップは4つのリングバスノード245〜248を含み、それぞれが4つのマルチプレクサ251〜254のうちの1つの、1つの入力に接続されている。マルチプレクサ251〜254のそれぞれの他の入力は、共通バス257を介して従来形のバスインターフェイス回路259に接続されている。これにより、メモリチップの外部接続パッドで終端する従来のバス261が提供される。次に、これらのバスパッドは、システムコントローラに接続され、任意で他のメモリチップに接続される。図1のコントローラ11と同様な従来形コントローラ263も、図2のコントローラチップ101と同様なリングバスノード付きコントローラ265も、これらのバスパッドに接続できる。
メモリアレイとそのコマンドと制御回路(図12には示されていない)の部分をそれぞれのリングバスノード245〜248に個別に接続するために、または、より一般的なバス257に並列に接続するために、メモリシステムに装着するとき、任意のチップのマルチプレクサ251〜254は永久に設定されることが好ましい。メモリシステムで使用されているものにしたがって、いずれかのタイプのコントローラ263または265にチップを接続するようにマルチプレクサ251〜254を設定するために、メモリチップの外部ピンを追加してもよい。チップのリングバスの入力267は、従来形のバスインターフェイス261の入力ラインセット、この事例では3本のラインのセット、に接続される。リングバスの出力269は、従来形バス269の3つの異なる導体の別のセットに接続される。したがって、コントローラ265がメモリシステムで使用される場合、バスが従来の方法で使用されないので、コントローラは従来形の外部バスの2セットのラインと接続される。そのため、いずれのタイプのコントローラとの接続にも対応させるために、メモリチップの外部パッドの数を増加させる必要がない。
マルチプレクサ251〜254を設定するためにメモリチップの追加の外部ピンを使用する代わりとなるのは、リングバスの入力および出力ラインとして使用されない従来のバス257のピンを使用することである。これらのピンは、リングバスノード245〜248を選択するようにマルチプレクサ251〜254を設定するための、予め定められた状態の組合せに永久に設定することもできる。状態の組合せは、従来形のバス257の正常動作時には起こらないイリーガルな組合せとなるように選択できる。
図2、10および11に示されているシステムの例では、リングバスノードインターフェイスがメモリインターフェイス25に置き換えられていることを除き、コントローラ130は図1の既存のコントローラ11と非常によく似ている。しかし、単一バスノードインターフェイスを介してコントローラの多数のコンポーネントおよび機能のそれぞれにアクセスするのではなく、それぞれが自己のノードを有することによって、これらのコンポーネントおよび機能をリングバスに分散させることができる。この例は図13に示されている。前に例示および説明されているものを含む多数の可能な構成の単一集積回路チップ上および複数の個別チップ上のメモリアレイのコマンドおよびデータノードを表すために、いくつかのリングバスノード275〜279が示されている。図13のシステムとの違いは、単一のコントローラノードが複数のそのようなノードに置き換わったことである。これらの複数のコントローラノードは、それぞれ、コントローラの全部の回路および機能より少ない回路および機能と接続されている。この具体例には、7つのコントローラリングバスノード281〜287が含まれている。これらは個別に、不揮発性メモリキャッシュ289、揮発性メモリキャッシュ291、ECC回路293、主としてメモリとホスト間で転送されるデータを一時記憶するための揮発性データバッファメモリ295、実行されるファームウェアコードを記憶するための揮発性メモリ297、プロセッサ299、およびホストインターフェイス回路301にそれぞれ接続されている。別のコントローラノードを使用することによって他の機能を追加することができるし、図13に示されている1つまたはそれより多いコントローラ機能を削除することもできるし、1つの共有バスノードを介してリングバスに接続するために特定のコンポーネントおよび機能を組み合わせることもできる。
コントローラ動作内のコマンドおよびデータの動作をリングバスの負担にしないために、プロセッサ299と図13に示されているような他の特定のコントローラ機能との間の直接交信を可能にする別個の並列コントローラバス303を備えることが望ましい。プロセッサ299にシステムのフラッシュメモリからメモリ297へファームウェアをロードさせるためにシステムの初期化中に使用されるブートコードを記憶するための追加の不揮発性メモリ305をコントローラバス303に接続することもできる。これにより、コントローラコンポーネントの1つとメモリノード275〜279に接続されたフラッシュメモリコンポーネントとの間でデータまたはコマンドが転送されるとき、主として使用するための、特定のコントローラコンポーネントとリングバスの接続が残る。前述した一例は、有効性を確認するために、バスに巡回させて転送される、特にフラッシュメモリから読み出されたデータをECC回路293に通すことである。修正するために使用されるECCアルゴリズムの機能内でECC回路293によって検出された誤りは、プロセッサ299で修正されることが好ましい。他の例は、リングバスをバッファメモリ295およびキャッシュメモリ289と291に直接接続することなどである。
メモリチップをそれ自身によってコントローラと、または1つ、2つまたはそれより多い他のメモリチップと接続しやすくすることが望ましい。メモリカードの製造時、コントローラおよび1つまたはそれより多いメモリチップが、チップとカードの外部接点とを相互接続する電気導体をも提供する小形のプリント回路基板(PCB)に物理的に装着される。PCB上で従来の並列バスが使用されるときに、種々の記憶機能を備えたカードを製造可能とするために、1つからある限定数までのさまざまな個数のメモリチップを含むような機能を備えたPCBを提供するというのは比較的明白である。しかし、1つまたはそれより多いチップがリングバスに接続されると、PCB上のリングバスの、メモリチップとコントローラチップをつなぎ合わせる部分は、さまざまな数の直列接続されたチップに対応できなくてはならない。列の最後のメモリチップの出力はコントローラに戻って接続されるので、さまざまな数のメモリチップでこれを簡単に行なえる何らかの方法が望ましい。
そのようにするそのような技術の1つが図14に示されている。コントローラチップ311と2つのメモリチップ313および315が、メモリカードの一部として1枚のPCB上でつなぎ合わされている。コントローラ311は少なくとも1つのバスノードを備え、各メモリチップは複数のバスノードを備えている。メモリチップ313は、コントローラチップ311のバス出力に接続されたバス入力317と、第2のメモリチップ315のバス入力に接続された第1の出力319とを有する。第2の出力321もメモリチップ313上に設けられ、列の最後のメモリチップの出力をコントローラチップ311のバス入力へ戻すように、PCB上のチップ間に含まれるバスの一部323に接続されている。しかし、メモリチップ313は列の最後ではないので、この戻り出力321はチップ上で無効とされ、出力319が有効状態に維持される。第2のメモリチップ315は同様に2つのバス出力325および327を有する。というのは、すべてのメモリチップはきわめて簡単に同じにされ、チップ315が列の最後であるので戻り出力327は有効状態に維持されるからである。そして、PCBバス戻り部分323とのその接続によってリングが完成する。次いで、チップ315の第2の出力325がチップ315上で無効とされ、何かと接続される必要はない。
図14の配置構成によれば、さまざまな数のチップを比較的簡単に直列接続することができるが、PCB上のバス部323の長さは、多くの場合、チップ上のバスセグメントよりはるかに高いキャパシタンスレベルを有する可能性がある。これは、リングバス全体の動作周波数を制限する可能性があるので、この効果を最小限にできるように戻りバス経路を提供することが強く望まれる。これは、図15のカードシステムでは、メモリチップ331および333上の戻り経路の大部分をそれ自身で形成し、個別に動作されるより短いセグメントへの戻り経路を遮断することによって達成される。これにより、リングバスのどのセグメントの最大キャパシタンスも低レベルに保たれる。
メモリチップ331を例にとると、このメモリチップは、(図15にあるように)1つだけある場合には、リングバス入力335と、次のメモリチップに直列接続するための出力337を有する。コントローラに戻すための第2の出力339がメモリチップ内に保持されている。戻り経路の一部分341は、PCB上ではなくメモリチップ内に含まれている。戻り経路341は、前述したノードと同様に、その入力および出力バスセグメントと戻り出力345を駆動するドライバとを切断するための1クロックサイクルの遅延を含むステージ343に接続される。例えば、チップ331は図15にはないが、このメモリチップが列の最後ではない場合、次の順番のメモリチップをその戻りバス出力に接続するための戻りバス入力347が提供される。
図15の2メモリチップの例では、第1のチップ331の出力337は、列の次のメモリチップ333の入力と接続できるように使用可能とされるが、その戻り出力339は無効にされる。第2のメモリチップ333は列の最後のチップであるので、このチップの戻り出力349は使用可能とされる。その後、バスは、回路343と同じレジスタおよびドライバ回路351を通って、第1のチップ331上の入力347までチップ333上の戻り経路をたどる。実のところ、一連の列内のどの位置にでも接続できるただ1つのメモリ集積回路チップを作ることが非常に望ましい。最後のメモリチップ333の第2の出力353は無効とされ、非接続のままである。言うまでもなく、最後のチップ333の戻りバス入力355には何も接続されない。
本発明のさまざまな態様をその例示の実施形態に関連し説明してきたが、本発明が、添付の特許請求の範囲の全範囲内においてその権利が保護されるべきであることが理解できよう。
従来のバスアーキテクチャを利用する既存の一般的なフラッシュメモリシステムの略ブロック図である。 リングバスアーキテクチャを利用するフラッシュメモリシステムの第1の実施形態の略ブロック図である。 図2のシステムのリングバスの時分割多重動作の一態様を示すタイミング図である。 図2のシステムのリングバスの時分割多重動作の別の態様を示すタイミング図である。 図2のシステムのリングバスの時分割多重動作のさらに別の態様を示すタイミング図である。 図2のシステムのリングバスデータインターフェイスブロックの略回路図である。 図2のシステムのリングバスコマンドインターフェイスブロックの略回路図である。 1つのコマンドを、図2のリングバスシステムにおける使用例を説明しながら示す。 別のコマンドを、図2のリングバスシステムにおける使用例を説明しながら示す。 さらに別のコマンドを、図2のリングバスシステムにおける使用例を説明しながら示す。 さらに別のコマンドを、図2のリングバスシステムにおける使用例を説明しながら示す。 さらに別のコマンドを、図2のリングバスシステムにおける使用例を説明しながら示す。 さらに別のコマンドを、図2のリングバスシステムにおける使用例を説明しながら示す。 さらに別のコマンドを、図2のリングバスシステムにおける使用例を説明しながら示す。 さらに別のコマンドを、図2のリングバスシステムにおける使用例を説明しながら示す。 代替コマンドを、図2のリングバスシステムにおける使用例を説明しながら示す。 図6A〜図6Iのコマンドを用いることによる図2のリングバスシステムの動作を説明するフローチャートである。 図2のシステムにおける具体的なデータ転送の例を示す。 図8に示されているデータ転送の例を実施するための、図6A〜図6Iで識別された一連のコマンドを示す表である。 リングバスアーキテクチャを利用するフラッシュメモリシステムの第2の実施形態の略ブロック図である。 リングバスアーキテクチャを利用するフラッシュメモリシステムの第3の実施形態の略ブロック図である。 リングバスアーキテクチャを利用するフラッシュメモリシステムの第4の実施形態の略ブロック図である。 リングバスアーキテクチャを利用するフラッシュメモリシステムの第5の実施形態の略ブロック図である。 リングバスアーキテクチャを利用するフラッシュメモリシステムの第6の実施形態の略ブロック図である。 リングバスアーキテクチャを利用するフラッシュメモリシステムの第7の実施形態の略ブロック図である。

Claims (38)

  1. データ通信ノードをそれぞれ含み、再プログラミングの前に同時に消去されるメモリセルのブロックにグループ化されたメモリ記憶セルをそれぞれ備える複数の再プログラム可能な不揮発性メモリユニットを備えるメモリシステムを、前記データ通信ノードとコントローラとをつなぎ合わせるリングバスにデータを巡回させて転送することによって、動作させる方法であって、
    ノード識別情報を含むコントローラにより構成される構成コマンドを、前記リングバスに一定方向に巡回させて前記コントローラから前記データ通信ノードへ渡すステップであって、前記構成コマンドのそれぞれのノード識別情報が、前記データ通信ノードを識別してソースノードまたは宛先ノードとして確立させる情報を含み、ノード識別情報によって識別されたデータ通信ノードだけが構成コマンドにより実行され、構成コマンドで識別された複数のメモリユニットのデータ通信ノードのうち、前記コントローラが出す次の転送コマンドを通じてデータが転送される前のデータ通信ノードをソースノードとして確立させ、次の転送コマンドを通じてデータが転送された先のデータ通信ノードを宛先ノードとして確立させるようになし、前記リングバスに巡回させて構成コマンドを渡している場合にはデータ転送を生じさせないようにするステップと、
    ソースノードを含む複数のメモリユニットかそのソースノードに設けられた一時データ記憶装置へ転送されるべきデータを読み出すステップと、
    その後、読み出されたデータを前記リングバスに一定方向に実質的に同時に巡回させて前記ソースノードに設けられた一時データ記憶装置からデータラインへ転送する前記次の転送コマンドを前記コントローラが出すステップと、
    前記宛先ノードに設けられた一時データ記憶装置に、前記データラインにある転送され、読み出されたデータを書き込むステップと、
    その後、前記宛先ノードに設けられた一時データ記憶装置からその宛先ノードを含む複数のメモリユニットへ転送されたデータを書き込むステップと、を含み、
    読み出されたデータの複数のチャネルを、前記次の転送コマンドに応じて、転送されているデータの複数のチャネルの数を含むようになっている複数の時分割多重化データフレームを通じて、前記リングバスに一方向に巡回させてソースノードと宛先ノードとの間で同時転送する方法。
  2. 請求項1記載の方法において、
    前記構成コマンドを渡すステップが、前記リングバスに接続されたコントローラノードを通って前記コントローラからコマンドを渡すことを含む方法。
  3. 請求項2記載の方法において、
    前記コントローラ内および前記コントローラノード内に含まれるバッファメモリを通って、ホストとデータをやり取りするステップをさらに含む方法。
  4. 請求項1記載の方法において、
    前記リングバスに接続された別のノードを通って、ホストとデータをやり取りするステップをさらに含む方法。
  5. 請求項1記載の方法において、
    読み出されたデータを転送することが、データを前記リングバスに巡回させて少なくとも2つの連続するタイムスロットで少なくとも2つのソースノードから転送することを含み、前記転送され、読み出されたデータを書き込むステップが、少なくとも2つの連続するタイムスロットとは別のものから少なくとも2つの宛先ノードへ転送されているデータを書き込むことを含む方法。
  6. 請求項5記載の方法において、
    読み出されたデータを転送することが、任意の不使用のタイムスロットの数を減らすために少なくとも2つの連続するタイムスロットの数を調節することをさらに含む方法。
  7. 請求項1記載の方法において、
    前記構成コマンドを渡すステップが、前記連続するタイムスロットの使用を含まない方法。
  8. 請求項1記載の方法において、
    読み出されたデータを転送することが、読み出されたデータを、少なくとも1つのソースノードからその少なくとも1つのソースノードに戻るまで、前記リングバスに完全に巡回させて転送することをさらに含む方法。
  9. 請求項8記載の方法において、
    前記リングバスに完全に巡回させて転送した後に、読み出されたデータの有効性を少なくとも1つのソースノードにおいてベリファイするステップをさらに含む方法。
  10. 請求項9記載の方法において、
    前記読み出されたデータの有効性をベリファイするステップが、前記リングバスに完全に巡回させて転送した後の読み出されたデータと、前記リングバスの少なくとも1つのソースノードに置かれている読み出されたデータとを比較することを含む方法。
  11. 請求項8記載の方法において、
    前記リングバス上の記憶位置において誤り訂正技術を用いて読み出されたデータをチェックするステップをさらに含む方法。
  12. 請求項11記載の方法において、
    前記誤り訂正技術を用いて読み出されたデータをチェックするステップが、前記コントローラ内で生じる方法。
  13. 請求項11記載の方法において、
    前記誤り訂正技術を用いて読み出されたデータをチェックするステップが、少なくとも1つのソースノードおよび少なくとも1つの宛先ノードのほかに、ノードを通って前記リングバスに接続された誤り訂正回路にデータを通すことを含む方法。
  14. 請求項1記載の方法において、
    前記データ通信ノードのうちのいくつかのノードを転送されるべきデータのソースとして確立し、前記データ通信ノードのうちのそれ以外のノードを転送されるべきデータの宛先として確立するように前記リングバスに巡回されたコマンドは、前記コントローラだけが発生する方法。
  15. 請求項1記載の方法において、
    読み出されたデータを転送することが、転送中の読み出されたデータと同期させるシステムクロックソースの1またはそれより多いサイクルの複数のノードの個々のものに遅延を課すことを含む方法。
  16. 請求項1記載の方法において、
    前記構成コマンドを渡すステップが、前記リングバスの少なくとも第1の導体でそのように行なうことを含み、読み出されたデータを転送することが、前記第1の導体とは異なる前記リングバスの少なくとも第2の導体でそのように行なうことを含む方法。
  17. 請求項1記載の方法において、
    前記転送されるべきデータを読み出すステップが、少なくとも1つのソースノードに接続された再プログラム可能な不揮発性メモリユニットのうちの少なくとも第1のユニットからデータを読み出すことを含む方法。
  18. 請求項1記載の方法において、
    前記転送され、読み出されたデータを書き込むステップが、少なくとも1つの宛先ノードに接続された再プログラム可能な不揮発性メモリユニットのうちの少なくとも第2のユニットへ転送されたデータを書き込むことを含む方法。
  19. 請求項17または18のいずれか記載の方法において、
    前記第1および第2のユニットが、1つの集積回路チップ上の全部のメモリセルより少ないそれぞれの第1および第2のプレーンを含む方法。
  20. 請求項17または18のいずれか記載の方法において、
    前記第1および第2のユニットが、それぞれの第1および第2の集積回路チップ上にメモリセルアレイ全体を含む方法。
  21. 請求項1記載の方法において、
    前記転送されるべきデータを読み出すステップが、ソースノードに設けられた少なくとも2つのデータレジスタのうちの1つに読み出されたデータを転送することを含む方法。
  22. 請求項1記載の方法において、
    前記転送され、読み出されたデータを書き込むステップが、宛先ノードに設けられた少なくとも2つのデータレジスタのうちの1つに転送されたデータを書き込むことを含む方法。
  23. 請求項1記載の方法において、
    複数のデータ通信ノードのうちの1つに接続されたメモリからの第2のデータセットを複数のデータ通信ノードのうちの1つにある一時データ記憶装置の一部分に読み出すことと、前記リングバスからの第3のデータセットを複数のデータ通信ノードのうちの1つにある一時データ記憶装置の別の一部分に書き込むこととを同時に行なうステップをさらに含む方法。
  24. 請求項1記載の方法において、
    読み出されたデータを転送することが、データを前記リングバスに巡回させて少なくとも2つの連続するタイムスロットの複数のソースノードから転送することを含み、少なくとも2つの連続するタイムスロットが、C個の連続するタイムスロットのサイクルと読み出されたデータの転送に使用されるN個のタイムスロットとを規定し、NとCは正の整数であり、読み出されたデータを転送することが、1つまたはそれより多い不使用のタイムスロットを挿入することをさらに含むので、Nは前記リングバス上のノードの総数から不使用のタイムスロットの数を引いたものと等しくなり、読み出されたデータを転送することが、任意の不使用のタイムスロットの数を減らすためにNとCとを調節することも含む方法。
  25. 請求項1記載の方法において、
    前記転送されるべきデータを読み出すステップは、前記コントローラによって出された読み出しコマンドによるものであり、データを読み出すための前記読み出しコマンドおよびソースノードを識別するノード識別情報を、まず少なくとも1つのコマンドノードに記憶し、次いでデータを前記一時データ記憶装置に転送させるように実行し、前記リングバスが、前記データ通信ノードと、少なくとも1つのコマンドノードと、前記コントローラとをつなぎ合わせる方法。
  26. 請求項25記載の方法において、
    前記リングバスが、前記ノードと、1つまたはそれより多いメモリプレーンの対応するセットにそれぞれ関連する複数のコマンドノードと、前記コントローラとをつなぎ合わせ、1つまたはそれより多いメモリプレーンの各セットのソースノードを識別するノード識別情報を対応するコマンドノードに記憶する方法。
  27. メモリシステムであって、
    データ通信ノードをそれぞれ含み、再プログラミングの前に同時に消去されるメモリセルのブロックにグループ化されたメモリ記憶セルをそれぞれ備える複数の再プログラム可能な不揮発性メモリユニットと、
    別のデータ通信ノードを有するホストデータ入出力回路と、
    それぞれのデータ通信ノードをリング状につなぎ合わせるリングバスと、
    複数のデータ通信ノードからのデータの複数のチャネルを、転送されているデータの複数のチャネルの数を含むようになっている複数の時分割多重化データフレームを通じて、前記リングバスに一方向に完全に巡回させて同時転送させるように、前記リングバスと作用的に接続されたマイクロコントローラを含むコントローラであって、ノード識別情報を含むコントローラにより構成される構成コマンドを、前記リングバスに一定方向に巡回させて前記コントローラから前記データ通信ノードへ前記コントローラが渡し、前記構成コマンドのそれぞれのノード識別情報が、前記データ通信ノードを識別してソースノードまたは宛先ノードとして確立させる情報を含み、ノード識別情報によって識別されたデータ通信ノードだけが構成コマンドにより実行され、構成コマンドで識別された複数のメモリユニットのデータ通信ノードのうち、前記コントローラが出す次の転送コマンドを通じてデータが転送される前のデータ通信ノードをソースノードとして確立させ、次の転送コマンドを通じてデータが転送された先のデータ通信ノードを宛先ノードとして確立させるようになし、前記リングバスに巡回させて構成コマンドを渡している場合にはデータ転送を生じさせないようにし、その後、データを前記リングバスに一定方向に巡回させてソースノードから宛先ノードへ転送する前記次の転送コマンドを前記コントローラが出すものであるコントローラと、
    を備えるメモリシステム。
  28. 請求項27記載のメモリシステムにおいて、
    少なくとも1つのメモリユニットが、設定回路と、前記リングバスおよび前記設定回路に接続され、前記コントローラから設定コマンドを受け取って実行するコマンドノードとをさらに備えるメモリシステム。
  29. 請求項27記載のメモリシステムにおいて、
    前記データ通信ノードのうちの少なくとも1つが、少なくとも1つのデータ通信ノードと前記リングバスとの間で転送される少なくとも2片のデータを同時に記憶するように接続される少なくとも2つのレジスタを備えるメモリシステム。
  30. 請求項27記載のメモリシステムにおいて、
    複数の再プログラム可能な不揮発性メモリユニットが、1つの集積回路チップ上に2つまたはそれより多いプレーンを備えるメモリシステム。
  31. 請求項27記載のメモリシステムにおいて、
    複数の再プログラム可能な不揮発性メモリユニットが、それぞれの2つまたはそれより多い別個の集積回路チップ上に形成されるメモリシステム。
  32. 請求項27記載のメモリシステムにおいて、
    複数のチャネルのデータが前記リングバスに巡回させて転送されるときに複数のチャネルのデータが通過できるように前記リングバスに作用的に接続された誤り訂正回路をさらに備えるメモリシステム。
  33. 請求項27記載のメモリシステムにおいて、
    前記コントローラが、前記誤り訂正回路を含むメモリシステム。
  34. 請求項27記載のメモリシステムにおいて、
    読み出されたデータを転送することが、データを前記リングバスに巡回させて少なくとも2つの連続するタイムスロットの複数のソースノードから転送することを含み、少なくとも2つの連続するタイムスロットが、C個の連続するタイムスロットのサイクルと読み出されたデータの転送に使用されるN個のタイムスロットとを規定し、NとCは正の整数であり、読み出されたデータを転送することが、1つまたはそれより多い不使用のタイムスロットを挿入することをさらに含むので、Nは前記リングバス上のノードの総数から不使用のタイムスロットの数を引いたものと等しくなり、読み出されたデータを転送することが、任意の不使用のタイムスロットの数を減らすためにNとCとを調節することも含むメモリシステム。
  35. 請求項27記載のメモリシステムにおいて、
    前記コントローラが、データを読み出すための読み出しコマンドをソースノードを含む複数のメモリユニットからそのソースノードに設けられた一時データ記憶装置へ送り、前記読み出しコマンドおよびソースノードを識別するノード識別情報を、まず少なくとも1つのコマンドノードに記憶し、次いでデータを前記一時データ記憶装置に転送させるように実行し、前記リングバスが、前記データ通信ノードと、少なくとも1つのコマンドノードと、前記コントローラとをつなぎ合わせるメモリシステム。
  36. 請求項35記載のメモリシステムにおいて、
    前記システムが複数のコマンドノードを備え、前記リングバスが、前記ノードと、1つまたはそれより多いメモリプレーンの対応するセットにそれぞれ関連する複数のコマンドノードと、前記コントローラとをつなぎ合わせ、1つまたはそれより多いメモリプレーンの各セットのソースノードを識別するノード識別情報を対応するコマンドノードに記憶するメモリシステム。
  37. フラッシュメモリシステムであって、
    フラッシュメモリセルのアレイと、データノードと、前記データノードと前記アレイとの間に接続される少なくとも1つのデータ記憶レジスタとをそれぞれ備える複数のフラッシュメモリデータ記憶ユニットと、
    前記フラッシュメモリデータ記憶ユニット間のアドレスおよびステータス情報の通信のためにフラッシュメモリデータ記憶ユニットに接続され、またコマンドノードに接続される少なくとも1つのコマンドユニットと、
    インターフェイスノードを有するコントローラと、
    データと、コマンドノードと、前記インターフェイスノードをリング状につなぎ合わせるバスと、を備え、
    前記コントローラが、記憶され、次いで実行されるコマンドを前記バスを通じて前記コマンドユニットに出すことによって前記フラッシュメモリデータ記憶ユニット間および前記フラッシュメモリデータ記憶ユニットと前記コントローラとの間でデータを転送するように作用し、少なくとも1つのレジスタが転送されたデータのソースまたは宛先であり、 読み出されたデータの複数のチャネルを、転送されているデータの複数のチャネルの数を含むようになっている複数の時分割多重化データフレームを通じて、前記リングバスに一方向に完全に巡回させて1つまたはそれより多いデータ通信ノードから同時転送するフラッシュメモリシステム。
  38. 請求項37記載のフラッシュメモリシステムにおいて、
    少なくとも1つのレジスタが2つまたはそれより多いレジスタを備え、前記コントローラが、アドレス指定されたフラッシュメモリデータ記憶ユニットの少なくとも2つのデータ記憶レジスタの一方を、転送されたデータのソースまたは宛先となるように前記バスを通じて選択するようにさらに作用するフラッシュメモリシステム。
JP2007525676A 2004-08-09 2005-08-03 リングバス構造とフラッシュメモリシステムにおけるその使用法 Expired - Fee Related JP5192233B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/915,039 US8375146B2 (en) 2004-08-09 2004-08-09 Ring bus structure and its use in flash memory systems
US10/915,039 2004-08-09
PCT/US2005/027866 WO2006017725A2 (en) 2004-08-09 2005-08-03 Ring bus structure and it's use in flash memory systems

Publications (2)

Publication Number Publication Date
JP2008509499A JP2008509499A (ja) 2008-03-27
JP5192233B2 true JP5192233B2 (ja) 2013-05-08

Family

ID=35695695

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007525676A Expired - Fee Related JP5192233B2 (ja) 2004-08-09 2005-08-03 リングバス構造とフラッシュメモリシステムにおけるその使用法

Country Status (7)

Country Link
US (1) US8375146B2 (ja)
EP (1) EP1787208B1 (ja)
JP (1) JP5192233B2 (ja)
KR (1) KR20070060080A (ja)
CN (1) CN101036132B (ja)
TW (1) TWI439866B (ja)
WO (1) WO2006017725A2 (ja)

Families Citing this family (287)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7373561B2 (en) * 2002-10-29 2008-05-13 Broadcom Corporation Integrated packet bit error rate tester for 10G SERDES
US7490283B2 (en) * 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US8375146B2 (en) 2004-08-09 2013-02-12 SanDisk Technologies, Inc. Ring bus structure and its use in flash memory systems
US7420847B2 (en) * 2004-12-14 2008-09-02 Sandisk Corporation Multi-state memory having data recovery after program fail
US7158421B2 (en) * 2005-04-01 2007-01-02 Sandisk Corporation Use of data latches in multi-phase programming of non-volatile memories
US7849381B2 (en) * 2004-12-21 2010-12-07 Sandisk Corporation Method for copying data in reprogrammable non-volatile memory
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US7389459B2 (en) * 2005-03-22 2008-06-17 Arm Limited Provision of debug via a separate ring bus in a data processing apparatus
US7293212B2 (en) * 2005-03-22 2007-11-06 Arm Limted Memory self-test via a ring bus in a data processing apparatus
US7206230B2 (en) * 2005-04-01 2007-04-17 Sandisk Corporation Use of data latches in cache operations of non-volatile memories
US7463521B2 (en) * 2005-04-01 2008-12-09 Sandisk Corporation Method for non-volatile memory with managed execution of cached data
US7457910B2 (en) * 2005-06-29 2008-11-25 Sandisk Corproation Method and system for managing partitions in a storage device
US7552271B2 (en) 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US7949845B2 (en) 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7480766B2 (en) * 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US7627733B2 (en) * 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US7558906B2 (en) 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
EP1932158A4 (en) 2005-09-30 2008-10-15 Mosaid Technologies Inc MEMORY WITH OUTPUT CONTROL
US20070165457A1 (en) * 2005-09-30 2007-07-19 Jin-Ki Kim Nonvolatile memory system
US7652922B2 (en) 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
US20070076502A1 (en) 2005-09-30 2007-04-05 Pyeon Hong B Daisy chain cascading devices
US11948629B2 (en) 2005-09-30 2024-04-02 Mosaid Technologies Incorporated Non-volatile memory device with concurrent bank operations
US7529905B2 (en) 2005-10-13 2009-05-05 Sandisk Corporation Method of storing transformed units of data in a memory system having fixed sized storage blocks
US7814262B2 (en) * 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US7877540B2 (en) * 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US7747837B2 (en) * 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US20070143561A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Methods for adaptive file data handling in non-volatile memories with a directly mapped file storage system
US7769978B2 (en) * 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7793068B2 (en) * 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US20070143566A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with data alignment in a directly mapped file storage system
US20070143378A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with adaptive file handling in a directly mapped file storage system
US20070156998A1 (en) * 2005-12-21 2007-07-05 Gorobets Sergey A Methods for memory allocation in non-volatile memories with a directly mapped file storage system
EP2242058B1 (en) * 2006-03-31 2014-07-16 Mosaid Technologies Incorporated Flash memory system control scheme
WO2007131062A2 (en) 2006-05-05 2007-11-15 Sandisk Corporation Non-volatile memory with background data latch caching during read operations and methods therefor
TWI427637B (zh) * 2006-05-05 2014-02-21 Sandisk Technologies Inc 在程式執行期間具有背景資料鎖存快取的非揮發性記憶體及方法
US7849256B2 (en) * 2006-07-11 2010-12-07 Advanced Micro Devices, Inc. Memory controller with ring bus for interconnecting memory clients to memory devices
US8407395B2 (en) 2006-08-22 2013-03-26 Mosaid Technologies Incorporated Scalable memory system
KR101476463B1 (ko) * 2006-08-22 2014-12-24 컨버전트 인텔렉츄얼 프로퍼티 매니지먼트 인코포레이티드 스케일러블 메모리 시스템
US7904639B2 (en) * 2006-08-22 2011-03-08 Mosaid Technologies Incorporated Modular command structure for memory and memory system
EP2487794A3 (en) * 2006-08-22 2013-02-13 Mosaid Technologies Incorporated Modular command structure for memory and memory system
KR101397229B1 (ko) * 2006-08-22 2014-05-20 컨버전트 인텔렉츄얼 프로퍼티 매니지먼트 인코포레이티드 메모리 시스템 및 메모리를 위한 모듈러 커맨드 스트럭처
US7606966B2 (en) * 2006-09-08 2009-10-20 Sandisk Corporation Methods in a pseudo random and command driven bit compensation for the cycling effects in flash memory
US7734861B2 (en) 2006-09-08 2010-06-08 Sandisk Corporation Pseudo random and command driven bit compensation for the cycling effects in flash memory
US7885112B2 (en) * 2007-09-07 2011-02-08 Sandisk Corporation Nonvolatile memory and method for on-chip pseudo-randomization of data within a page and between pages
US20080130667A1 (en) * 2006-11-30 2008-06-05 International Business Machines Corporation Distributed arbitration mechanism for ring networks
US7925854B2 (en) * 2006-12-06 2011-04-12 Mosaid Technologies Incorporated System and method of operating memory devices of mixed type
WO2008067658A1 (en) * 2006-12-06 2008-06-12 Mosaid Technologies Incorporated System and method of operating memory devices of mixed type
US7818464B2 (en) * 2006-12-06 2010-10-19 Mosaid Technologies Incorporated Apparatus and method for capturing serial input data
US8010709B2 (en) * 2006-12-06 2011-08-30 Mosaid Technologies Incorporated Apparatus and method for producing device identifiers for serially interconnected devices of mixed type
US8433874B2 (en) * 2006-12-06 2013-04-30 Mosaid Technologies Incorporated Address assignment and type recognition of serially interconnected memory devices of mixed type
US8271758B2 (en) 2006-12-06 2012-09-18 Mosaid Technologies Incorporated Apparatus and method for producing IDS for interconnected devices of mixed type
US7627718B2 (en) * 2006-12-13 2009-12-01 Intel Corporation Frozen ring cache
US8984249B2 (en) * 2006-12-20 2015-03-17 Novachips Canada Inc. ID generation apparatus and method for serially interconnected devices
US8046522B2 (en) * 2006-12-26 2011-10-25 SanDisk Technologies, Inc. Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks
US8209461B2 (en) 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
US20080155175A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Host System That Manages a LBA Interface With Flash Memory
US7739444B2 (en) 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface
US7917686B2 (en) 2006-12-26 2011-03-29 Sandisk Corporation Host system with direct data file interface configurability
US8166267B2 (en) * 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
US8122202B2 (en) * 2007-02-16 2012-02-21 Peter Gillingham Reduced pin count interface
US7796462B2 (en) 2007-02-22 2010-09-14 Mosaid Technologies Incorporated Data flow control in multiple independent port
US8086785B2 (en) 2007-02-22 2011-12-27 Mosaid Technologies Incorporated System and method of page buffer operation for memory devices
WO2008101316A1 (en) 2007-02-22 2008-08-28 Mosaid Technologies Incorporated Apparatus and method for using a page buffer of a memory device as a temporary cache
US8429352B2 (en) * 2007-06-08 2013-04-23 Sandisk Technologies Inc. Method and system for memory block flushing
US20090063786A1 (en) * 2007-08-29 2009-03-05 Hakjune Oh Daisy-chain memory configuration and usage
US8825939B2 (en) * 2007-12-12 2014-09-02 Conversant Intellectual Property Management Inc. Semiconductor memory device suitable for interconnection in a ring topology
US8594110B2 (en) 2008-01-11 2013-11-26 Mosaid Technologies Incorporated Ring-of-clusters network topologies
US8131913B2 (en) * 2008-02-04 2012-03-06 Mosaid Technologies Incorporated Selective broadcasting of data in series connected devices
US7430584B1 (en) * 2008-03-12 2008-09-30 Gene Fein Data forwarding storage
US9203928B2 (en) 2008-03-20 2015-12-01 Callahan Cellular L.L.C. Data storage and retrieval
US7599997B1 (en) * 2008-08-01 2009-10-06 Gene Fein Multi-homed data forwarding storage
US7673009B2 (en) * 2008-07-10 2010-03-02 Gene Fein Media delivery in data forwarding storage network
US7636759B1 (en) * 2008-09-29 2009-12-22 Gene Fein Rotating encryption in data forwarding storage
US7631051B1 (en) * 2008-09-29 2009-12-08 Gene Fein Geolocation assisted data forwarding storage
US7636758B1 (en) * 2008-07-10 2009-12-22 Gene Fein Advertisement forwarding storage and retrieval network
US7636760B1 (en) * 2008-09-29 2009-12-22 Gene Fein Selective data forwarding storage
US7636761B1 (en) * 2008-09-29 2009-12-22 Gene Fein Measurement in data forwarding storage
US8458285B2 (en) * 2008-03-20 2013-06-04 Post Dahl Co. Limited Liability Company Redundant data forwarding storage
US7877456B2 (en) * 2008-04-08 2011-01-25 Post Dahl Co. Limited Liability Company Data file forwarding storage and search
US7809873B2 (en) * 2008-04-11 2010-10-05 Sandisk Il Ltd. Direct data transfer between slave devices
US7668926B2 (en) * 2008-04-25 2010-02-23 Gene Fein Real-time communications over data forwarding framework
US8386585B2 (en) * 2008-04-25 2013-02-26 Tajitshu Transfer Limited Liability Company Real-time communications over data forwarding framework
US20090271562A1 (en) * 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device
US7668927B2 (en) * 2008-05-07 2010-02-23 Gene Fein Deletion in data file forwarding framework
US8452844B2 (en) * 2008-05-07 2013-05-28 Tajitshu Transfer Limited Liability Company Deletion in data file forwarding framework
KR101431760B1 (ko) 2008-06-25 2014-08-20 삼성전자주식회사 Ecc 알고리즘을 이용한 플래시 메모리 장치 및 그구동방법
US8139390B2 (en) * 2008-07-08 2012-03-20 Mosaid Technologies Incorporated Mixed data rates in memory devices and systems
US8370446B2 (en) 2008-07-10 2013-02-05 Tajitshu Transfer Limited Liability Company Advertisement forwarding storage and retrieval network
US8599678B2 (en) 2008-07-10 2013-12-03 Tajitshu Transfer Limited Liability Company Media delivery in data forwarding storage network
US8352635B2 (en) * 2008-09-29 2013-01-08 Tajitshu Transfer Limited Liability Company Geolocation assisted data forwarding storage
US7685248B1 (en) * 2008-09-29 2010-03-23 Gene Fein User interface in data forwarding network
US7636763B1 (en) * 2008-09-29 2009-12-22 Gene Fein Mixed network architecture in data forwarding storage
US7636762B1 (en) * 2008-09-29 2009-12-22 Gene Fein Disassembly/reassembly in data forwarding storage
US8478823B2 (en) * 2008-09-29 2013-07-02 Tajitshu Transfer Limited Liability Company Selective data forwarding storage
US8181056B2 (en) * 2008-09-30 2012-05-15 Mosaid Technologies Incorporated Serial-connected memory system with output delay adjustment
US8161313B2 (en) * 2008-09-30 2012-04-17 Mosaid Technologies Incorporated Serial-connected memory system with duty cycle correction
US8549209B2 (en) 2008-11-04 2013-10-01 Mosaid Technologies Incorporated Bridging device having a configurable virtual page size
US8880970B2 (en) * 2008-12-23 2014-11-04 Conversant Intellectual Property Management Inc. Error detection method and a system including one or more memory devices
TWI517174B (zh) * 2008-12-18 2016-01-11 諾瓦晶片加拿大公司 錯誤檢測方法及包含一或更多個記憶體裝置之系統
US8832353B2 (en) * 2009-04-07 2014-09-09 Sandisk Technologies Inc. Host stop-transmission handling
US8307241B2 (en) * 2009-06-16 2012-11-06 Sandisk Technologies Inc. Data recovery in multi-level cell nonvolatile memory
US8132045B2 (en) * 2009-06-16 2012-03-06 SanDisk Technologies, Inc. Program failure handling in nonvolatile memory
US8521980B2 (en) 2009-07-16 2013-08-27 Mosaid Technologies Incorporated Simultaneous read and write data transfer
US8473669B2 (en) * 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
US8582382B2 (en) * 2010-03-23 2013-11-12 Mosaid Technologies Incorporated Memory system having a plurality of serially connected devices
US8843692B2 (en) 2010-04-27 2014-09-23 Conversant Intellectual Property Management Inc. System of interconnected nonvolatile memories having automatic status packet
US8463959B2 (en) * 2010-05-31 2013-06-11 Mosaid Technologies Incorporated High-speed interface for daisy-chained devices
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US8452911B2 (en) 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
US8645588B2 (en) * 2010-11-01 2014-02-04 Advanced Micro Devices, Inc. Pipelined serial ring bus
KR101841622B1 (ko) * 2010-11-04 2018-05-04 삼성전자주식회사 온-다이 터미네이션 회로를 가지는 불휘발성 메모리 장치 및 그것의 제어 방법
US8472280B2 (en) 2010-12-21 2013-06-25 Sandisk Technologies Inc. Alternate page by page programming scheme
US8843693B2 (en) 2011-05-17 2014-09-23 SanDisk Technologies, Inc. Non-volatile memory and method with improved data scrambling
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
CN102346726A (zh) * 2011-09-20 2012-02-08 四川卫士通信息安全平台技术有限公司 板载多芯片高速环形互联方法
US8825967B2 (en) 2011-12-08 2014-09-02 Conversant Intellectual Property Management Inc. Independent write and read control in serially-connected devices
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
KR20140006344A (ko) * 2012-07-04 2014-01-16 에스케이하이닉스 주식회사 메모리 시스템 및 그것에 포함된 메모리 장치의 동작 방법
US9471484B2 (en) 2012-09-19 2016-10-18 Novachips Canada Inc. Flash memory controller having dual mode pin-out
US8873284B2 (en) 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling in a multi-layer memory
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9620181B2 (en) 2013-01-31 2017-04-11 Hewlett Packard Enterprise Development Lp Adaptive granularity row-buffer cache
JP2014179141A (ja) * 2013-03-14 2014-09-25 Toshiba Corp 半導体記憶装置
US9037902B2 (en) 2013-03-15 2015-05-19 Sandisk Technologies Inc. Flash memory techniques for recovering from write interrupt resulting from voltage fault
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9691452B2 (en) 2014-08-15 2017-06-27 Micron Technology, Inc. Apparatuses and methods for concurrently accessing different memory planes of a memory
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
EP3200450A4 (en) * 2014-09-26 2018-05-30 Olympus Corporation Transmission system and processing device
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US9910594B2 (en) 2015-11-05 2018-03-06 Micron Technology, Inc. Apparatuses and methods for concurrently accessing multiple memory planes of a memory during a memory access operation
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US9760297B2 (en) 2016-02-12 2017-09-12 Pure Storage, Inc. Managing input/output (‘I/O’) queues in a data storage system
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
JP6178909B1 (ja) * 2016-09-15 2017-08-09 ウィンボンド エレクトロニクス コーポレーション 不揮発性半導体記憶装置
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10860552B2 (en) * 2017-03-10 2020-12-08 Schweitzer Engineering Laboratories, Inc. Distributed resource parallel-operated data sorting systems and methods
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
CN107134294B (zh) * 2017-05-27 2020-04-24 北京东土军悦科技有限公司 一种ecc信息获取方法及系统
CN107239363B (zh) * 2017-05-27 2020-04-24 北京东土军悦科技有限公司 一种ecc信息上报方法及系统
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
CN109947605A (zh) * 2017-12-21 2019-06-28 北京比特大陆科技有限公司 故障诊断方法
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
TWI791244B (zh) * 2019-04-07 2023-02-01 新唐科技股份有限公司 監控系統開機之安全裝置及其方法
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
CN112286842B (zh) * 2019-07-22 2023-07-04 苏州库瀚信息科技有限公司 用于存储器控制器与存储器设备互连的总线
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
TWI759703B (zh) * 2020-03-20 2022-04-01 群聯電子股份有限公司 電路布局結構與記憶體儲存裝置
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
CN114064527A (zh) * 2020-07-30 2022-02-18 苏州库瀚信息科技有限公司 无单一失败点的存储装置
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
CN113722770B (zh) * 2021-08-18 2024-06-18 上海励驰半导体有限公司 基于分级的数据完整性的端到端的保护方法及系统
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3190530A (en) 1961-05-10 1965-06-22 Illinois Tool Works Thin wall container with thickened rim structure
US4034036A (en) * 1975-10-31 1977-07-05 Consupak, Inc. Parison control in longitudinal stretch
US4406004A (en) * 1980-11-05 1983-09-20 Anaconda-Ericsson, Inc. Ring scheduling apparatus for a digital multiplexed telecommunication system
US4527270A (en) * 1983-05-04 1985-07-02 Allen-Bradley Company Communications network with stations that detect and automatically bypass faults
JPS60141049A (ja) * 1983-12-28 1985-07-26 Hitachi Ltd ル−プネツトワ−ク制御方式
WO1987000674A2 (en) * 1985-07-12 1987-01-29 Anamartic Limited Wafer-scale integrated circuit memory
GB8606695D0 (en) * 1986-03-18 1986-04-23 Sinclair Res Ltd Random chip addressing algorithm for wsi
US5095344A (en) * 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5043940A (en) * 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
US5070032A (en) * 1989-03-15 1991-12-03 Sundisk Corporation Method of making dense flash eeprom semiconductor memory structures
US5172338B1 (en) * 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
JPH03179952A (ja) 1989-12-08 1991-08-05 Nec Corp 時分割多重ループ型バスシステム
JPH03262234A (ja) 1990-03-13 1991-11-21 Nec Corp パケット交換装置の転送制御方式
US5255371A (en) * 1990-04-02 1993-10-19 Unisys Corporation Apparatus for interfacing a real-time communication link to an asynchronous digital computer system by utilizing grouped data transfer commands
GB2244826A (en) 1990-06-08 1991-12-11 Anamartic Ltd Linking circuit modules
JPH04156741A (ja) 1990-10-19 1992-05-29 Nec Corp ループ・バス転送方式
US5343063A (en) * 1990-12-18 1994-08-30 Sundisk Corporation Dense vertical programmable read only memory cell structure and processes for making them
US5313421A (en) * 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
US6222762B1 (en) * 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5315541A (en) * 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
US5444695A (en) * 1993-01-11 1995-08-22 Forte Networks, Inc. Token ring local area network testing apparatus providing station history information
US5689678A (en) * 1993-03-11 1997-11-18 Emc Corporation Distributed storage array system having a plurality of modular control units
US5555204A (en) * 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (ko) * 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US5414762A (en) * 1994-01-18 1995-05-09 Q.Sys International, Inc. Telephony controller with functionality command converter
US5661053A (en) * 1994-05-25 1997-08-26 Sandisk Corporation Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers
DE4423372A1 (de) * 1994-07-04 1996-01-11 Ruppert Hans Peter Verfahren und Vorrichtung zum Anformen von Flanschen an Rohre aus teilkristallinen Thermoplasten
US5570425A (en) * 1994-11-07 1996-10-29 Digisonix, Inc. Transducer daisy chain
JPH11510929A (ja) * 1995-08-11 1999-09-21 シーメンス ニクスドルフ インフオルマチオーンスジステーメ アクチエンゲゼルシヤフト 周辺記憶装置を接続するための装置
US5903495A (en) * 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
US5798968A (en) * 1996-09-24 1998-08-25 Sandisk Corporation Plane decode/virtual sector architecture
US5890192A (en) * 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
JP3455040B2 (ja) * 1996-12-16 2003-10-06 株式会社日立製作所 ソースクロック同期式メモリシステムおよびメモリユニット
US5908468A (en) * 1997-10-24 1999-06-01 Advanced Micro Devices, Inc. Data transfer network on a chip utilizing a multiple traffic circle topology
US6237791B1 (en) * 1997-04-09 2001-05-29 Dtl Technology Limited Partnership Wide mouth hot fill container
US6611537B1 (en) * 1997-05-30 2003-08-26 Centillium Communications, Inc. Synchronous network for digital media streams
US6115756A (en) 1997-06-27 2000-09-05 Sun Microsystems, Inc. Electro-optically connected multiprocessor and multiring configuration for dynamically allocating time
US5930167A (en) * 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
WO1999010866A1 (en) * 1997-08-25 1999-03-04 Imagicolor Corp A system for distributing and controlling color reproduction at multiple sites
US6700899B1 (en) * 1998-02-03 2004-03-02 Broadcom Corporation Bit slice arbiter
IL130796A (en) * 1999-07-05 2003-07-06 Brightcom Technologies Ltd Packet processor
KR100363884B1 (ko) * 1999-12-27 2002-12-11 한국전자통신연구원 파장분할다중 기반 인터넷 프로토콜 망 구조와, 이러한 망구조에서의 패킷 송수신 시스템 및 방법
US6697373B1 (en) * 2000-01-18 2004-02-24 Mark Henrik Sandstrom Automatic method for dynamically matching the capacities of connections in a SDH/SONET network combined with fair sharing of network resources
US6640322B1 (en) * 2000-03-22 2003-10-28 Sun Microsystems, Inc. Integrated circuit having distributed control and status registers and associated signal routing means
US6842769B1 (en) * 2000-05-05 2005-01-11 Interland, Inc. Automatically configured network server
US6266273B1 (en) * 2000-08-21 2001-07-24 Sandisk Corporation Method and structure for reliable data copy operation for non-volatile memories
US6625687B1 (en) * 2000-09-18 2003-09-23 Intel Corporation Memory module employing a junction circuit for point-to-point connection isolation, voltage translation, data synchronization, and multiplexing/demultiplexing
US6658509B1 (en) * 2000-10-03 2003-12-02 Intel Corporation Multi-tier point-to-point ring memory interface
JP2002164941A (ja) * 2000-11-28 2002-06-07 Toshiba Corp 半導体装置及びデータ伝送システム
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
JP3631463B2 (ja) 2001-12-27 2005-03-23 株式会社東芝 不揮発性半導体記憶装置
US6522580B2 (en) 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
US6574719B2 (en) * 2001-07-12 2003-06-03 International Business Machines Corporation Method and apparatus for concurrently communicating with multiple embedded dynamic random access memory devices
US7239606B2 (en) * 2001-08-08 2007-07-03 Compunetix, Inc. Scalable configurable network of sparsely interconnected hyper-rings
US6456528B1 (en) * 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6925007B2 (en) 2001-10-31 2005-08-02 Sandisk Corporation Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements
JP2003186822A (ja) * 2001-12-19 2003-07-04 Canon Inc モジュール間通信方法および装置
US7099922B2 (en) 2002-01-23 2006-08-29 International Business Machines Corporation Method and system for simultaneous management of multiple tokens on a communication ring
US7485499B2 (en) * 2004-07-29 2009-02-03 Sandisk Corporation Customized non-volatile memory device packages
US8375146B2 (en) 2004-08-09 2013-02-12 SanDisk Technologies, Inc. Ring bus structure and its use in flash memory systems

Also Published As

Publication number Publication date
US20060031593A1 (en) 2006-02-09
TW200627174A (en) 2006-08-01
US8375146B2 (en) 2013-02-12
EP1787208A2 (en) 2007-05-23
EP1787208B1 (en) 2015-03-18
WO2006017725A3 (en) 2006-08-24
TWI439866B (zh) 2014-06-01
CN101036132A (zh) 2007-09-12
KR20070060080A (ko) 2007-06-12
JP2008509499A (ja) 2008-03-27
CN101036132B (zh) 2010-05-12
WO2006017725A2 (en) 2006-02-16

Similar Documents

Publication Publication Date Title
JP5192233B2 (ja) リングバス構造とフラッシュメモリシステムにおけるその使用法
KR101425957B1 (ko) 이씨씨 제어 회로 및 그것을 포함하는 멀티채널 메모리시스템
KR102113359B1 (ko) 이중 모드 핀아웃을 가진 플래시 메모리 제어기
US7409473B2 (en) Off-chip data relocation
KR101354341B1 (ko) 비휘발성 메모리 시스템들을 위한 다중 페이지 준비 명령들
US7831794B2 (en) Memory card and host device thereof
US20150309867A1 (en) Composite semiconductor memory device with error correction
US10095436B2 (en) Cache memory device and data processing method of the device
JP2008527586A (ja) オンチップデータのグループ化および整列
EP1929482A1 (en) Portable data storage using slc and mlc flash memory
Eshghi et al. Ssd architecture and pci express interface
KR20150079492A (ko) 멀티모드 핀아웃을 갖는 플래시 메모리 컨트롤러
US20160188502A1 (en) Ring Bus Architecture for Use in a Memory Module
WO2024082466A1 (zh) 存储系统及其操作方法、存储器控制器和存储器
CN113010093A (zh) 存储器系统以及存储器控制器
TWI774356B (zh) 記憶體元件、具有記憶體元件的系統及用於操作記憶體元件的方法
CN113168883B (zh) 具有使用冗余库的故障主库修复的存储器器件
CN114155889A (zh) 存储器系统中数据通信的校准设备和方法
TWI615713B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
CN112860004B (zh) 系统和操作系统的方法
US8037231B2 (en) Memory architecture for separation of code and data in a memory device
CN116153371A (zh) 半导体装置、存储器装置及其操作方法
CN115774682A (zh) 支持交织操作的存储器装置和存储器系统及其操作方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110531

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110819

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110826

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111130

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120727

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120730

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120727

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120817

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120911

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121205

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130131

R150 Certificate of patent or registration of utility model

Ref document number: 5192233

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160208

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees