JP2012502332A - マルチプレーン型フラッシュメモリへのデータのプログラミング - Google Patents

マルチプレーン型フラッシュメモリへのデータのプログラミング Download PDF

Info

Publication number
JP2012502332A
JP2012502332A JP2011525287A JP2011525287A JP2012502332A JP 2012502332 A JP2012502332 A JP 2012502332A JP 2011525287 A JP2011525287 A JP 2011525287A JP 2011525287 A JP2011525287 A JP 2011525287A JP 2012502332 A JP2012502332 A JP 2012502332A
Authority
JP
Japan
Prior art keywords
data
page
programming
plane
subset
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.)
Granted
Application number
JP2011525287A
Other languages
English (en)
Other versions
JP5360214B2 (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 JP2012502332A publication Critical patent/JP2012502332A/ja
Application granted granted Critical
Publication of JP5360214B2 publication Critical patent/JP5360214B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2245Memory devices with an internal cache buffer
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/14Circuits or methods to write a page or sector of information simultaneously into a nonvolatile memory, typically a complete row or word line in flash memory

Abstract

【解決手段】 マルチプレーン型メモリデバイスへデータをプログラミングするシステム、方法、および、コンピュータプログラム製品は、マルチプレーンデータオーダを利用する。ページバッファのサイズを大きくすることなく複数のデータページをプログラミングできるように、一部の実施例によると、データページをプログラミングするデータ転送方式を操作するとしてよい。具体的には、全てのチャネルにわたるデータを最初に、マルチプレーン型フラッシュメモリデバイスの第1のプレーンに並行にプログラミングすることができる。データ転送プログラミング動作の進行中、次のプレーン(例えば、プレーン「1」)にプログラミングされるべきデータを読み出して1以上のページバッファにキャッシュすることができる。第1のプレーンについてデータ転送プログラミングが完了した後、ページバッファにキャッシュされているデータを即座にラッチしてマルチプレーン型フラッシュメモリデバイスにプログラミングすることができる。
【選択図】 図1A

Description

本願の主題は概して、メモリデバイスに関する。
[関連出願]
本願は、米国特許仮出願第61/093,872号(発明の名称:「マルチプレーン型データオーダ(MULTI−PLANE DATA ORDER)、出願日:2008年9月3日」)に基づく優先権を主張する。当該仮出願の開示内容は全て、参照により本願に組み込まれる。
フラッシュメモリは、消費者向け電子機器で格納デバイスとして一般的に利用されている不揮発性メモリの一種である。フラッシュメモリは、デジタルオーディオ/ビデオプレーヤー、携帯電話、および、デジタルカメラ等の人気の高い消費者向け製品においてアプリケーションデータおよび/またはメディアデータを格納するために広く利用されている。フラッシュメモリは、電力供給がなくても格納されたデータを保持する機能を有し、消費者向け製品において電力節約と言う利点が得られる。フラッシュメモリはさらに、専用ストレージデバイスとしても利用することができる。一例として、パーソナルコンピュータのユニバーサル・シリアル・バス(USB)ポートに着脱可能なポータブル・フラッシュ・ドライブ、および、磁気ハード・ディスク・ドライブ(HDD)代替品としても利用することができる。
近年、複数のメモリアレイまたはメモリプレーンを含む構成のフラッシュメモリデバイスがさまざまなメーカーから発表されている。マルチプレーン型メモリデバイスは、シングルレベルセル(SLC)メモリデバイスおよびマルチレベルセル(MLC)メモリデバイスで実装されている。しかし、マルチプレーン型メモリデバイスは、読出し、プログラミング、および、消去の速度が遅いことが多い。マルチプレーン型メモリデバイスの速度は、メモリプレーンの数が多くなるにつれて、性能を左右する重要な問題となり得る。マルチプレーン構成によれば、あるチャネルに対応付けられているデータ転送時間を改善するべく、読出/プログラミング待機間隔の間に、このチャネルからのデータをバッファに転送することが可能になる一方、複数のチャネルからデータが転送される場合にはシステム性能が低減する可能性がある。
マルチプレーン型メモリデバイスへデータをプログラミングするシステム、方法、および、コンピュータプログラム製品は、マルチプレーンデータオーダを利用する。ページバッファのサイズを大きくすることなく複数のデータページをプログラミングできるように、一部の実施例によると、データページをプログラミングするデータ転送方式を操作するとしてよい。具体的には、全てのチャネルにわたるデータを最初に、マルチプレーン型フラッシュメモリデバイスの第1のプレーンに並行にプログラミングすることができる。データ転送プログラミング動作の進行中、次のプレーン(例えば、プレーン「1」)にプログラミングされるべきデータを読み出して1以上のページバッファにキャッシュすることができる。第1のプレーンについてデータ転送プログラミングが完了した後、ページバッファにキャッシュされているデータを即座にラッチしてマルチプレーン型フラッシュメモリデバイスにプログラミングすることができる。
一部の実施例によると、第1のデータおよび第2のデータを受信する段階と、第1のデータを第1のページバッファに格納し、且つ、第2のデータを第2のページバッファに格納する段階と、マルチプレーン型メモリデバイスの1のメモリプレーンに対応付けられている第1のページに、格納されている第1のデータをプログラミングする段階と、格納されている第1のデータをプログラミングする段階と並行して、メモリプレーンに対応付けられている第2のページに、格納されている第2のデータをプログラミングする段階とを備える方法が利用され得る。
一部の実施例によると、第1のデータは、第1のサブセットの第1のデータおよび第2のサブセットの第1のデータを含むとしてよく、第2のデータは、第1のサブセットの第2のデータおよび第2のサブセットの第2のデータを含むとしてよい。
一部の実施例によると、メモリプレーンに対応付けられている第1のページに、第1のサブセットの第1のデータをプログラミングしてよく、メモリプレーンに対応付けられている第2のページに、第1のサブセットの第2のデータをプログラミングするとしてよい。
一部の実施例によると、メモリプレーンは第1のメモリプレーンであってよく、マルチプレーン型メモリデバイスの第2のメモリプレーンに対応付けられている第1のページに、第2のサブセットの第1のデータをプログラミングしてよく、第2のメモリプレーンに対応付けられている第2のページに、第2のサブセットの第2のデータをプログラミングするとしてよい。
一部の実施例によると、第2のメモリプレーンに対応付けられている第1のページに、第2のサブセットの第1のデータをプログラミングする段階は、第1のメモリプレーンに対応付けられている第2のページに、第1のサブセットの第2のデータをプログラミングする段階の後に実行されるとしてよい。
一部の実施例によると、第2のメモリプレーンに対応付けられている第2のページに、第2のサブセットの第2のデータをプログラミングする段階は、第2のメモリプレーンに対応付けられている第1のページに、第2のサブセットの第1のデータをプログラミングする段階の後に実行されるとしてよい。
一部の実施例によると、第1のチャネルから第1のデータを受信して第1のデータを格納する第1のページバッファと、第2のチャネルから第2のデータを受信して第2のデータを格納する第2のページバッファと、第1のメモリプレーンに対応付けられている第1のページに格納されている第1のデータをプログラミングするのと並行して、メモリプレーンに対応付けられている第2のページに格納されている第2のデータをプログラミングする回路とを備えるデバイスが利用され得る。
一部の実施例によると、第1のデータは、第1のサブセットの第1のデータおよび第2のサブセットの第1のデータを含むとしてよく、第2のデータは、第1のサブセットの第2のデータおよび第2のサブセットの第2のデータを含むとしてよい。
一部の実施例によると、回路は、メモリプレーンに対応付けられている第1のページに第1のサブセットの第1のデータをプログラミングし、且つ、メモリプレーンに対応付けられている第2のページに第1のサブセットの第2のデータをプログラミングする。
一部の実施例によると、メモリプレーンは、第1のメモリプレーンであってよく、回路は、第2のメモリプレーンに対応付けられている第1のページに第2のサブセットの第1のデータをプログラミングしてよく、且つ、第2のメモリプレーンに対応付けられている第2のページに第2のサブセットの第2のデータをプログラミングするとしてよい
一部の実施例によると、回路は、第1のメモリプレーンに対応付けられている第2のページに第1のサブセットの第2のデータがプログラミングされた後、第2のメモリプレーンに対応付けられている第1のページに第2のサブセットの第1のデータをプログラミングするとしてよい。
一部の実施例によると、回路は、第2のメモリプレーンに対応付けられている第1のページに第2のサブセットの第1のデータがプログラミングされた後、第2のメモリプレーンに対応付けられている第2のページに第2のサブセットの第2のデータをプログラミングするとしてよい。
一部の実施例によると、1のメモリプレーンを有するメモリアレイと、第1のチャネルから第1のデータを受信して第1のデータを格納する第1のページバッファと、第2のチャネルから第2のデータを受信して第2のデータを格納する第2のページバッファと、メモリプレーンに対応付けられている第1のページに格納されている第1のデータをプログラミングすることに並行して、格納されている第2のデータをメモリプレーンに対応付けられている第2のページにプログラミングするコントローラとを備えるシステムが利用され得る。
一部の実施例によると、コントローラは、格納されている第1のデータのプログラミングを完了する前に、格納されている第2のデータに対応付けられているプログラミング動作を初期化するとしてよい。
一部の実施例によると、メモリプレーンは、第1のメモリプレーンであってよく、メモリアレイは、第2のメモリプレーンを有してよく、第1のデータは、第1のサブセットおよび第2のサブセットを含み、コントローラは、第1のメモリプレーンに対応付けられている第1のページに第1のサブセットをプログラミングし、且つ、第2のメモリプレーンに対応付けられている第1のページに第2のサブセットをプログラミングするとしてよい。
一部の実施例によると、第2のデータは、第1のサブセットおよび第2のサブセットを含むとしてよく、コントローラは、第1のメモリプレーンに対応付けられている第2のページに第1のサブセットの第2のデータをプログラミングし、且つ、第2のメモリプレーンに対応付けられている第2のページに第2のサブセットの第2のデータをプログラミングするとしてよい。
一部の実施例によると、コントローラは、第2のサブセットの第1のデータに対応付けられているプログラミング動作を初期化する前、且つ、第1のサブセットの第1のデータに対応付けられているプログラミング動作を初期化した後に、第1のサブセットの第2のデータに対応付けられているプログラミング動作を初期化するとしてよい。
本発明の一以上の実施形態の詳細な内容を添付図面および以下の部分に記載する。本発明の上記以外の特徴、目的、および利点は、以下に記載する説明、図面、および、請求項から明らかとなる。
ソリッドステートドライブシステムの一例を示す図である。
マルチプレーン型フラッシュメモリデバイスの一例を示す図である。
読出動作について、NAND型フラッシュインターフェースの各ピンに対応付けられているタイミングチャートの一例を示す図である。
プログラミング動作について、NAND型フラッシュインターフェースの各ピンに対応付けられているタイミングチャートの一例を示す図である。
消去動作について、NAND型フラッシュインターフェースの各ピンに対応付けられているタイミングチャートの一例を示す図である。
プレーンを2つ有するフラッシュメモリデバイスの水平データ転送方式の一例を示す図である。
図3Aに示す水平データ転送方式に対応付けられるタイミングチャートの一例を示す図である。
垂直データ転送方式の一例を示す図である。
図4Aに示す垂直データ転送方式に対応付けられるタイミングチャートの一例を示す図である。
垂直データ転送方式を実行する方法の一例を示す図である。
複数の図面にわたって同様の参照符号を使用している場合、同様の構成要素を指し示すものとする。
不揮発性ソリッドステートメモリ、特に、フォームファクターの小さいカードとしてパッケージングされた電気的消去可能およびプログラム可能リードオンリーメモリ(EEPROM)およびフラッシュEEPROMは、電気的にデータを消去して、新しいデータをプログラミングまたは再プログラミングすることができる。EEPROMメモリの動作には一般的に、メモリセルにデータを書き込むプログラミングモード、メモリセルに格納されているデータを読み出す読出モード、および、格納されているデータを消去する消去モードが含まれる。
フラッシュメモリデバイスにおいて、消去動作は、メモリブロックまたはメモリセクタ毎に実行され、プログラミング動作は、通常1本のワードラインに結合されている複数のメモリセルに対応するページ毎に実行され得る。フラッシュメモリデバイスは、ビットラインと接地電極との間で複数のセルトランジスタが並列に結合されるNAND型フラッシュメモリデバイスとして構成され得る。
フラッシュメモリデバイスは、マルチプレーン型メモリデバイスとして構成され得る。具体的に説明すると、マルチプレーン型メモリデバイスは、複数のメモリプレーンを有することができる(例えば、1つのメモリプレーンは、対応する行デコーダ、ページバッファ、および、列デコーダを備える1つのメモリアレイを含むとしてよい)。各メモリプレーンは、列方向に並べられた1以上のメモリブロックを含むとしてよく、各ブロックはメモリプレーンに対応するとしてよい。
マルチプレーン型フラッシュメモリデバイスは、マルチプレーンプログラミングコマンドまたはマルチプレーン読出コマンドをサポートすることができる。このようなコマンドは、複数の異なるプレーンに対応付けられている複数のページとの間でデータのプログラミングまたはデータの読出を実行するためのコマンドである。例えば、マルチプレーン型フラッシュメモリデバイスは、8個のデータページを8個の対応するメモリプレーンに書き込むマルチプレーンコマンドをサポートすることができる。複数のプレーンおよびマルチプレーンプログラミングコマンドを利用することによって、マルチプレーン型メモリデバイスは複数のプログラミング動作を並行して実行することができるようになり、マルチプレーン型メモリデバイスのプログラミング速度が高まる。
複数のチャネルを介して受信したデータをマルチプレーン型メモリデバイスのそれぞれのページにプログラミングする場合、データの各メモリプレーンへのロードおよびプログラミングは一度に1つとされ得る。例えば、第1のチャネルからのデータをあるプレーンのページにプログラミングした後、第2のチャネルからのデータを同じ手順でマルチプレーン型メモリデバイスへとロードおよびプログラミングすることができる。しかし、このような方法では、複数のチャネルにわたって並列に処理することが出来ないので、プログラミング動作時間が長くなってしまう可能性がある。具体的には、この方法では一度にプログラミングが可能なのは1個のデータページのみであり、他のチャネルのプログラミング動作は、先行するチャネルのプログラミング動作が終了した後でのみ開始され得る。このような制限が課されているために、プログラミング動作が長くなってしまい、マルチプレーン型メモリデバイスの速度に悪影響を及ぼしかねない。
さらに、マルチプレーン型メモリデバイスは通常、処理中のデータを一時的に格納するためのページバッファを備えている。プログラミングの対象となるデータページの数が増えるに従って、データ負荷の増加に対応するべくページバッファのサイズを大きくする必要性も高くなる。しかし、ページバッファのサイズを大きくすると、ページバッファのコストが高くなると共にマルチプレーン型メモリデバイスの構成が複雑になってしまう可能性があり、製造コストが全体的に値上がりしてしまう。
ページバッファのサイズを大きくすることなく複数のデータページにプログラミングするためには、一部の実施例によると、垂直データ転送順序を規定している垂直データ転送方式をプログラミング動作で利用することができる。具体的には、全てのチャネルにわたるデータを最初に、マルチプレーン型フラッシュメモリデバイスの第1のプレーン(例えば、プレーン「0」)に対応付けられている複数のページに並行してプログラミングすることができる。プログラミング動作が実行されている間、次のプレーン(例えば、プレーン「1」)に対応付けられている複数のページにプログラミングされるべきデータを読み出して1以上のページバッファにキャッシュしておくことができる。第1のプレーンに対するプログラミング動作が完了すると、次のプレーンに対するデータをページバッファからロードして、ラッチして、マルチプレーン型メモリデバイスにプログラミングすることができる。このような「垂直」データ転送方式によれば、プレーン毎(チャネル毎、に対して)に他のプレーンとは無関係に「垂直方向に」プログラミングすることができるようになり、特定のチャネルに対応付けられるページバッファのサイズが格納する必要があるページは、複数のプレーンの複数のページではなく、1つのみである。以下でより詳細に説明する。
図1Aは、ソリッドステートドライブシステム100の一例を示す図である。図1Aに示すように、システム100は、ホスト102およびソリッドステートドライブ104を備える。ソリッドステートドライブ104は、ホストインターフェース110、中央演算処理装置(CPU)123、メモリインターフェース128、メモリコントローラ130、ならびに、フラッシュメモリデバイス106a、106b、106cおよび106dを有するとしてよい。
ホスト102は、ホストインターフェース110を介してソリッドステートドライブ104と通信を行うことができる。ホストインターフェース110は、一部の実施例によると、シリアル・アドバンスド・テクノロジー・アタッチメント(SATA)インターフェースまたはパラレル・アドバンスド・テクノロジー・アタッチメント(PATA)インターフェースを有するとしてよい。SATAインターフェースまたはPATAインターフェースは、シリアルデータまたはパラレルデータをそれぞれ、パラレルデータまたはシリアルデータに変換するべく利用され得る。例えば、ホストインターフェース110がSATAインターフェースを有する場合、SATAインターフェースは、バス103(例えば、SATAバス)を介してホスト102から転送されたシリアルデータを受信して、受信したシリアルデータをパラレルデータに変換することができる。別の実施例によると、ホストインターフェース110は、ハイブリッドインターフェースを有することもできる。このような実施例によると、ハイブリッドインターフェースは、例えば、シリアルインターフェースと組み合わせて利用することができる。
ホストインターフェース110は、一部の実施例によると、ホスト102からの動作コマンドおよびアドレスが一時的に格納される1以上のレジスタを含むとしてよい。ホストインターフェース110は、レジスタに格納されている情報に応じて、ソリッドステートコントローラ108にプログラミングコマンドまたは読出コマンドを通知するとしてよい。
一部の実施例によると、ソリッドステートドライブ104は、1以上のチャネル126a、126b、126c、および126dを有するとしてよく、各チャネル126a−126dは、1以上の制御信号(例えば、4つのチップイネーブル信号)、または、読出、プログラミングあるいは消去の対象となるデータ、あるいは、読出、プログラミングあるいは消去用のコマンドをホスト102またはフラッシュメモリ106a−106dから受信することができる。
ソリッドステートコントローラ108は、フラッシュメモリデバイス106a−106dへのアクセスについての任意のコマンド、ステータス、または、制御要求を処理し得る。例えば、ソリッドステートコントローラ108は、フラッシュメモリデバイス106a−106dにおけるデータの格納および検索を管理および制御し得る。読出動作、プログラミング動作、または、消去動作を初期化する場合、ソリッドステートコントローラ108は、ホスト102(または、メモリコントローラ130)から1以上のサービス要求またはサービスコマンド(例えば、読出要求、プログラミング要求、および、消去要求)を受信し得る。
一部の実施例によると、ソリッドステートコントローラ108は、マイクロプロセッサ(不図示)の制御下にあるマイクロコンピュータシステムの一部であってよい。ソリッドステートコントローラ108は、ホスト102とソリッドステートドライブ104との間におけるコマンドおよびデータの流れを制御し得る。一部の実施例によると、ソリッドステートコントローラ108は、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、および、その他の内部回路を含み得る。ソリッドステートコントローラ108は、一部の実施例によると、フラッシュメモリデバイス106a−106dに対応付けられているさまざまな機能をサポートし得る。例えば、これらに限定されないが、フラッシュメモリデバイス106a−106dの診断、フラッシュメモリデバイス106a−106dへのコマンドの送信(例えば、アクティブ化コマンド、読出コマンド、プログラミングコマンド、消去コマンド、プリチャージコマンド、および、リフレッシュコマンド)、および、フラッシュメモリデバイス106a−106dからのステータスの受信が挙げられる。ソリッドステートコントローラ108は、フラッシュメモリデバイス106a−106dと同じまたは異なるチップに形成され得る。また、ソリッドステートコントローラ108は、ソリッドステートドライブ104と同じまたは異なるチップに形成され得る。
フラッシュメモリデバイス106a−106dは、メモリインターフェース128に結合され得る。一部の実施例によると、フラッシュメモリデバイス106a−106dがNAND型メモリデバイスを含む場合、メモリインターフェース128はNAND型フラッシュ入出力インターフェースであってよい。
図1Aに示すように、ソリッドステートコントローラ108は、エラーチェックコード(ECC)モジュール112、インターフェースロジック114、シーケンサ116、および、フォーマッタ118を含むとしてよい。一部の実施例によると、ソリッドステートコントローラ108は、組み込みファームウェア124を含むCPU123に結合され得る。尚、組み込みファームウェア124によって、ソリッドステートコントローラ108が制御され得る。CPU123は、マイクロプロセッサ、シグナルプロセッサ(例えば、デジタルシグナルプロセッサ)、または、マイクロコントローラを含むとしてよい。一部の実施例によると、組み込むファームウェア124を有するCPU123は、ソリッドステートドライブ104の外部にあるとしてよい。
一部の実施例によると、ソリッドステートドライブ104(および/または、ホスト102)は、システムオンチップ(SOC)に搭載され得る。このような実施例では、SOCは、例えばデジタルプロセスを用いて製造することができる。SOCは、ソリッドステートドライブ104に含まれるCPU123とは別個に設けられる組み込みプロセスシステム(例えば、組み込みCPU)を含むとしてよい。SOCはさらに、プログラミング用のコードおよびデータを処理するSRAM(スタティック・ランダム・アクセス・メモリ)、システムロジック、キャッシュメモリ、および、キャッシュコントローラを含むとしてよい。組み込みプロセスシステムに対応付けられるプログラミング用のコードおよびデータは、フラッシュメモリデバイス106a−106dに格納され、例えば、SOCインターフェース(不図示)を介してSOCに送られるとしてよい。SOCインターフェースは、SOCの内部バス構造とインターフェースとの間を流れる情報を変換するべく変換器によって利用されるとしてよい。読出動作においては、制御信号がSOCからフラッシュメモリデバイス106a−106dに送信される一方、命令およびデータはフラッシュメモリデバイス106a−106dからSOCに送信される。命令およびデータはさらに、プログラミング動作時には、フラッシュメモリデバイス106a−106dに送信され得る。
一部の実施例によると、フラッシュメモリデバイス106a−106dはメモリコントローラ130によって制御され得る。ホスト102は、メモリコントローラ130を介してフラッシュメモリデバイス106a−106dと通信し得る。メモリコントローラ130は、対応するピンまたは端末を介して、フラッシュメモリデバイス106a−106dに接続され得る。このような実施例によると、メモリコントローラ130は、特定用途向け集積回路(ASIC)またはSOCとして実現され得る。
これに代えて、ホスト102は、ソリッドステートコントローラ108を介して、フラッシュメモリデバイス106a−106dと通信するとしてもよい。例えば、ホスト102は、ソリッドステートコントローラ108に1以上のコマンドを送信することができ、メモリインターフェース128を介して、ソリッドステートコントローラ108は、ホストからのコマンドをフラッシュメモリデバイス106a−106dに送ることができる。メモリインターフェース128は、NAND型フラッシュ入出力インターフェースであってよい。NAND型フラッシュインターフェースは、1以上のピンを含むとしてよく、各ピンが特定の機能に対応している。この点については以下でより詳細に説明する。
一部の実施例によると、フラッシュメモリデバイス106a−106dは、複数のページバッファ132a、132b、132c、および132dに結合され得る。一部の実施例によると、フラッシュメモリデバイス106a−106dはそれぞれ、ページバッファ132a−132dのうち1つに対応付けられているとしてよい。例えば、図1Aに示すように、フラッシュメモリデバイス106aはページバッファ132aに対応付けられており、フラッシュメモリデバイス106bはページバッファ132bに対応付けられており、フラッシュメモリデバイス106cはページバッファ132cに対応付けられており、フラッシュメモリデバイス106dはページバッファ132dに対応付けられている。所望される場合は、フラッシュメモリデバイス106a−106dをそれぞれ、複数のページバッファに対応付けることも可能である。
以下でより詳細に説明するが、ページバッファ132a−132dは、選択されたページのメモリセルに対するプログラミング動作/読出動作において、一時的な格納部として利用され得る。ページバッファ132a−132dのそれぞれの格納容量は少なくとも、1つのメモリページの格納容量(例えば、2kB)に等しいとしてよい。
ページバッファ132a−132dはそれぞれ、1ページ分のフラッシュメモリセルにプログラミングされるべき1ページ分の書込みデータを格納することができる。ページバッファ132a−132dはそれぞれ、これらに限定されないが、レジスタ、1ページ分のフラッシュメモリセルから読み出したデータをセンスするセンス回路、確認ロジック、ラッチ回路、または、書込みドライバを含むとしてよい。プログラミング動作において、ページバッファ132a−132dはそれぞれ、チャネル126a−126dのうち対応する1つを介して受信したプログラミングデータをラッチして、ラッチしたデータをフラッシュメモリデバイス106a−106dのうち対応する1つに転送するとしてよい。さらに、ページバッファ132a−132dはそれぞれ、プログラミングされたデータがフラッシュメモリデバイス106a−106dに適切にプログラミングされたことを確認するべく、プログラミング確認動作を実行することができる。
上述したように、ページバッファ132a−132dは、対応するチャネル126a−126dを介して、ソリッドステートコントローラ108に接続され得る。一部の実施例によると、ページバッファ132a−132dはさらに、対応するチャネル134a、134b、134c、および134dを介してメモリインターフェース128に接続し得ると共に、チャネル136a、136b、136c、および136dを介してフラッシュメモリデバイス106a−106dに接続され得る。一部の実施例によると、メモリインターフェース128およびページバッファ132a−132dは共に、ソリッドステートドライブ104またはソリッドステートコントローラ108の内部構成要素として形成され得る。その他の実施例によると、ページバッファ132a−132dは、ソリッドステートドライブ104またはソリッドステートコントローラ108の外部構成要素として形成され得る。
プログラミングデータを格納する目的で1つの特定のページバッファ132a−132dを選択する場合、入力(例えば、ユーザ入力またはソフトウェアプログラムからの入力)は、ダブル・データ・レート(DDR)インターフェース(不図示)を介して受信されるとしてよく、ECCモジュール112によってエラーチェックが行われるとしてよい。読出データについては、フラッシュメモリデバイス106a−106dから取り出した読出データに含まれ得るエラーを訂正するべくECCモジュール112を用いるとしてよい。プログラミングデータについては、1以上の冗長ビットをプログラミングデータに追加するべくECCモジュール112を用いるとしてよい。プログラミングデータが書き込まれると、冗長ビットによって、書き込まれたプログラミングデータのその後の読出サイクルにおいてエラー訂正が実行され得る。ECCモジュール112は、最初にフラッシュメモリデバイス106a−106dに書き込まれるべきデータセットを選択して、選択されたデータセットに冗長データを追加して、冗長情報を含む選択されたデータセットを、対応するチャネル126a−126dを介して(例えば、ファームウェア124が発行したファームウェア要求命令に続いて)、フラッシュメモリデバイス106a−106dに渡す。ECCモジュール112の出力は、特定のプログラミング動作についてページバッファ132a−132dのうち1つを指定する選択信号として利用され得る。
一部の実施例によると、フラッシュメモリデバイス106a−106dは、例えば4つのプレーンを持つマルチプレーン型メモリデバイスであってよい。図1Bは、マルチプレーン型フラッシュメモリデバイス138の一例を示す図である。図1Bを参照しつつ説明すると、マルチプレーン型メモリデバイス138は、4つのメモリプレーン、つまり、プレーン「0」、プレーン「1」、プレーン「2」、および、プレーン「3」を持つとしてよい。図示されているのは4つのプレーンであるが、プレーンの数は用途に応じて変更可能であり、図示されているプレーン数よりも増減し得る。
プレーン「0」、プレーン「1」、プレーン「2」、および、プレーン「3」はそれぞれ、1以上のメモリセルブロックを含み得る。各メモリセルブロックは、1以上のページを含み得る(例えば、各ページは1以上のワードラインで制御されている)。図示されているように、プレーン「0」は、メモリセルブロック140を含み、メモリセルブロック140の最初のページとしてページ148を含むとしてよい。プレーン「1」は、メモリセルブロック142を含み、メモリセルブロック142の最初のページとしてページ150を含むとしてよい。プレーン「2」は、メモリセルブロック144を含み、メモリセルブロック144の最初のページとしてページ152を含むとしてよい。プレーン「3」は、メモリセルブロック146を含み、メモリセルブロック146の最初のページとしてページ154を含むとしてよい。
一部の実施例によると、各プレーンは内部バッファ(例えば、フラッシュメモリデバイスの内部にあるバッファ)と対応付けられているとしてよい。例えば、プレーン「0」は内部バッファ162aに対応付けられているとしてよく、プレーン「1」は内部バッファ162bに対応付けられているとしてよく、プレーン「2」は内部バッファ162cに対応付けられているとしてよく、プレーン「3」は内部バッファ162dに対応付けられているとしてよい。図示されている内部バッファ162a−162dは4つのみであるが、当業者であれば、プレーン「0」、プレーン「1」、プレーン「2」、および、プレーン「3」はそれぞれ、複数の内部バッファ、または、ビットライン対と同数の内部バッファに対応付けられ得ることに容易に想到するであろう。
データは、プレーン「0」、プレーン「1」、プレーン「2」、および、プレーン「3」のそれぞれに対応付けられている内部バッファ162a−162dのそれぞれに順次ロードされ得る。垂直データ転送方式は、例えば、ソリッドステートコントローラ108によって実行され、プレーン「0」、プレーン「1」、プレーン「2」、および、プレーン「3」のそれぞれのページをプログラミングするべく利用され得る。具体的には、第1のチャネル「CH0」(例えば、チャネル126a)を介して受信されたデータは、内部バッファ162aにロードされ、プレーン「0」の第1のページ148にプログラミングされるとしてよい。第1のチャネル「CH0」についてのプログラミング動作が実行されている間、第2のチャネル「CH1」(例えば、チャネル126b)を介して受信されるデータが内部バッファ162aにロードされ、プレーン「0」の第2のページ156にプログラミングされるとしてよい。同様に、第1のチャネル「CH0」および第2のチャネル「CH1」についてのプログラミング動作が実行されている間、第3のチャネル「CH2」(例えば、チャネル126c)を介して受信されるデータが内部バッファ162aにロードされ、プレーン「0」の第3のページ158にプログラミングされるとしてよい。上述したプログラミング処理は、(例えば、最後のチャネル「CH7」までの)全てのチャネルから受信したデータがプレーン「0」のそれぞれのページ(例えば、ページ160)にプログラミングされるまで繰り返されるとしてよい。
各フラッシュメモリデバイス106a−106dは、不揮発性(または、揮発性)メモリ(例えば、シングルレベルフラッシュメモリまたはマルチレベルフラッシュメモリ)を含むとしてよい。一部の実施例によると、不揮発性メモリは、NAND型フラッシュメモリモジュールを含むとしてよい。NAND型フラッシュメモリモジュールは、コマンド、データ、および、アドレスが対応する入出力ピンから供給されるように、コマンド/アドレス/データ多重化インターフェースを含むとしてよい。NAND型フラッシュメモリデバイスをフラッシュメモリデバイス106a−106dとして利用する利点としては、これらに限定されないが、ブート時間およびレジューム時間が高速化されること、電池が長寿命化すること、および、データの信頼性が高まることが挙げられる。
フラッシュメモリデバイス106a−106dはそれぞれ、チャネル126a−126dのうち対応する1つに接続され得る。チャネル126a−126dはそれぞれ、例えば、1以上の入力ラインおよび出力ライン、チップ選択信号ライン、チップイネーブル信号ライン等をサポートするとしてよい。チャネルはさらに、その他の信号ライン、例えば、これらに限定されないが、書込イネーブル信号ライン、読出イネーブル信号ライン、レディ/ビジー出力信号ライン、および、リセット信号ラインをサポートするとしてよい。並列処理の度合いを高めるべく、フラッシュメモリデバイス126a−126dはそれぞれ、図1Aに示すように、ソリッドステートドライブ104に接続されている独自のチャネルを持つとしてよい。例えば、フラッシュメモリデバイス106aはチャネル126aを用いてソリッドステートドライブ104に接続されているとしてよく、フラッシュメモリデバイス106bはチャネル126bを用いてソリッドステートドライブ104に接続されているとしてよく、フラッシュメモリデバイス106cはチャネル126cを用いてソリッドステートドライブ104に接続されているとしてよく、フラッシュメモリデバイス106dはチャネル126dを用いてソリッドステートドライブ104に接続されているとしてよい。他の実施例によると、フラッシュメモリデバイス106a−106dは、共通のチャネルを持つとしてもよい。
フラッシュメモリデバイス106a−106dは、標準的なコネクタを用いてソリッドステートドライブ104に接続されているとしてよい。標準的なコネクタの例を挙げると、これらに限定されないが、SATA、USB(ユニバーサル・シリアル・バス)、SCSI(スモール・コンピュータ・システム・インターフェース)、PCMCIA(パーソナル・コンピュータ・メモリ・カード・インターナショナル・アソシエーション)、および、IEEE−1394(ファイヤワイヤ)が含まれるとしてよい。一部の実施例によると、フラッシュメモリデバイス106a−106dは標準的なコネクタにより離脱可能に構成されてよい。
フラッシュメモリデバイス106a−106dはそれぞれ、1つのバンク内に配列されている1以上のソリッドステート記憶素子(またはセル)を含むとしてよい。ソリッドステート記憶素子は、複数のページに分割されるとしてよい。一部の実施例によると、ソリッドステート記憶素子は、1ページに対応する2000バイトの容量を持つとしてよい。ソリッドステート記憶素子は、一部の実施例によると、合計容量が4000バイト(つまり、4kB)になるとしてよい。フラッシュメモリデバイス106a−106dはそれぞれ、さらに1以上のバンクを含むとしてよく、各バンクはチップイネーブル信号またはチップ選択信号を用いて選択される。チップイネーブル信号またはチップ選択信号は、ホストコマンドに応じて、1以上のソリッドステート記憶素子を選択するとしてよい。
一部の実施例によると、各ソリッドステート記憶素子は、1以上のシングルレベルセル(SLC)デバイスおよび/またはマルチレベルセル(MLC)デバイスを含むとしてよい。具体的には、フラッシュメモリデバイス106a−106dのそれぞれに含まれる各記憶素子は、1セル当たり1ビットまたは複数ビットとしてプログラミングされるとしてよい。各セルのしきい値電圧は一般的に、当該セルに格納されるデータの種類を決定する要因となる。例えば、SLCメモリデバイスでは、しきい値電圧が0.5Vの場合、プログラミングされたセル(例えば、論理状態「0」)であることを指し示す一方、しきい値電圧が−0.5Vは消去済みのセル(例えば、論理状態「1」)であることを指し示す。SLCデバイスまたはMLCデバイスのいずれであるかは、チップイネーブル信号またはチップ選択信号を用いて選択されるとしてよい。チップイネーブル信号またはチップ選択信号は、ホスト102から受信する制御情報およびアドレス情報の組み合わせに基づきソリッドステートコントローラ108によって生成されるとしてよい。
複数のソリッドステート記憶素子から成るバンクが複数用いられる場合、一部の実施例によると、ソリッドステートドライブ104は、同じフラッシュメモリデバイス内の複数のバンクのソリッドステート記憶素子に同時にアクセスすることができる。ソリッドステートドライブ104はさらに、複数の異なるフラッシュメモリデバイスに含まれる複数の異なるバンクに同時にアクセスすることもできる。ソリッドステートドライブ104は、複数のバンクにアクセスすることができるので、利用可能なリソースおよびチャネル126a−126dを十分に利用して、ソリッドステートドライブ104の性能を全体的に向上させることができる。さらに、フラッシュメモリデバイス106a−106dがメモリ入出力ラインおよび制御信号(例えば、チップイネーブル信号)を共有している場合、ソリッドステートコントローラ108のピンの数は減少し、ソリッドステートドライブ104の製造コストがさらに抑えられる。
フラッシュメモリデバイス106a−106dのそれぞれのフラッシュメモリアレイは通常、ビットで編成することができる。例えば、メモリアレイは8ビットの深さを持つことができる。フラッシュメモリアレイはさらに、バイトでも編成することができる。例えば、フラッシュメモリアレイは、2kバイト(または2kB)を持つ部分と、64バイトを持つ部分とを含むことができる。メモリアレイはさらに、ページ単位でも編成することができる。例えば、フラッシュメモリアレイは、512Kのページを含むことができる。1つのページは、2つの部分から編成することができ、第1の部分(例えば、2kBを表す部分)と、第2の部分(例えば、64バイトを表す部分)とから編成することができる。第2の部分は通常、8ビットの幅を持つデータ入出力(I/O)経路(例えば、I/O[0]からI/O[7])に対応するとしてよい。またさらに、フラッシュメモリアレイは、ブロック単位でも配列され得る。例えば、フラッシュメモリアレイは、64ページに等しい1ブロックを含むとしてよい。まとめると、フラッシュメモリデバイスは、上述したビット、バイト、ページ、および、ブロックを用いて編成することができる。
フラッシュメモリデバイス106a−106dはそれぞれ、マルチプレーンNAND型フラッシュメモリデバイスであってよい。NAND型フラッシュメモリデバイスは通常、NOR型フラッシュメモリデバイスに比べて、プログラミング時間、読出時間および消去時間が短く、高密度化されており、1ビット当たりのコストが低く、耐久性が高い。NAND型フラッシュメモリは、データへのシーケンシャルアクセスを可能とするNAND型フラッシュI/Oインターフェースに結合され得る。NAND型フラッシュI/Oインターフェースは、複数のピンを含むとしてよく、各ピンが特定の機能に対応している。インターフェースの一例を表1に示す。
Figure 2012502332
上の表1に示すように、インターフェースのピンにはさまざまなピン機能が対応するとしてよい。一部の実施例によると、上述したNAND型フラッシュI/Oインターフェースはメモリインターフェース128として利用され得る。
本明細書においてフラッシュメモリデバイス106a−106dはNAND型メモリデバイスとして説明されているが、フラッシュメモリデバイス106a−106dは、NORフラッシュEEPROM、ANDフラッシュEEPROM、DiNORフラッシュEEPROM、シリアルフラッシュEEPROM、DRAM、SRAM、ROM、EPROM、FRAM(登録商標)、MRAM、または、PCRAMのうちいずれの形式であってもよい。
図2Aは、読出動作について、NAND型フラッシュインターフェースの各ピンに対応付けられているタイミングチャートの一例を示す図である。図2Aを参照しつつ説明すると、領域202は、1以上のコマンドがNAND型フラッシュメモリデバイスに送られている期間を表すとしてよい。一方、領域204は、NAND型フラッシュメモリデバイスとの間でデータがやり取りされている期間を表すとしてよい。図示しているように、書込イネーブル信号「WE_」のパルスが(例えば、25ns周期で)発生しており、行アドレス(例えば、RA1、RA2、および、RA3)および列アドレス(例えば、CA1およびCA2)の情報をNAND型フラッシュメモリデバイスにラッチさせている。データ入出力I/O[7:0]ピンに現れているコマンド「00h」は読出アドレス入力を示している一方、コマンド「30h」は読出開始を表しているとしてよい。
その他のコマンドも利用可能である。例えば、その他のメモリコマンドとしては、これらに限定されないが、読出動作、プログラミング動作、消去動作、読出ステータス動作、読出ID動作、書込設定登録動作、書込アドレス動作、および、リセット動作が挙げることができる。例を挙げると、コマンド「05h」はランダムデータ読出コマンドを表し、コマンド「10h」はページプログラミングコマンドを表し、コマンド「20h」はチップ消去コマンドを表し、コマンド「21h」はセクタ消去コマンドを表し、コマンド「30h」は読出開始コマンドを表し、コマンド「35h」はコピー用ページ読出コマンドを表し、コマンド「39h」は書込デバイスアドレスコマンドを表し、コマンド「60h」はブロック消去コマンドを表し、コマンド「70h」は読出ステータスコマンドを表し、コマンド「80h」はシリアルデータ入力(バッファへの書込)コマンドを表し、コマンド「85h」はランダムデータ入力コマンドを表し、コマンド「8Fh」はコピー用ターゲットアドレス入力コマンドを表し、コマンド「90h」は読出デバイス種類コマンドを表し、コマンド「A0h」は書込設定レジスタコマンドを表し、コマンド「C0h」はプログラミング/消去一時停止コマンドを表し、コマンド「D0h」はプログラミング/消去コマンドを表し、コマンド「FFh」はリセットコマンドを表すとしてよい。
読出イネーブル信号「RE_」のパルスが発生することによって、DoutN、DoutN+1、DoutN+2、・・・、DoutM等のデータをNANDフラッシュメモリデバイスから読み出すことができる。レディ/ビジー出力信号「R/B_」が特定の論理状態にあると、出力がビジー状態であるか否かを示すとしてよい。例えば、レディ/ビジー出力信号「R/B_」の論理状態がLowの場合、出力がビジー状態であることを示すとしてよい。この例では、書込イネーブル信号「WE_」の最後の立ち上がりエッジの後所定時間が経過すると、レディ/ビジー出力信号「R/B_」の論理状態がHigh(つまり、レディ状態を示す論理High)になるとしてよい。
図2Aに示すように、セルから内部ページバッファへの読出データのデータ転送時間を示す「tR」期間は、読出開始コマンド「30h」からレディ/ビジー出力信号「R/B_」の立ち上がりエッジまでの期間であり、読出データの読出時間を示す。一部の実施例によると、「tR」期間によって、特定の読出動作に関するソリッドステートドライブシステム(例えば、ソリッドステートドライブシステム100)の性能が決まり得る。一部の実施例によると、「tR」期間が長くなると、読出データがソリッドステートコントローラにおいて利用可能となるまでのソリッドステートコントローラ(例えば、ソリッドステートコントローラ108)の待機時間が長くなる可能性がある。
データの準備が整う前に、NAND型フラッシュI/Oインターフェースはアイドル状態となり不要な帯域幅を消費する可能性がある。このため、帯域幅を最大にするためにはNAND型フラッシュI/Oインターフェースを常にビジー状態に維持することが望ましい。例えば、NAND型フラッシュI/OインターフェースがtRC=25nsで動作している場合、実現可能な帯域幅の上限は40MB/sであってよい(例えば、8ビットデータバスが利用され、NAND型フラッシュメモリからソリッドステートコントローラへと常にデータが送信されるようにNAND型フラッシュメモリの帯域幅は無制限であるという仮定に基づく)。しかし、読出データをソリッドステートコントローラ(例えば、ソリッドステートコントローラ108)に渡す前にNAND型フラッシュメモリ内のメモリセルから内部バッファにページを読み出す「tR」期間があることを考えると、このような値は実現が難しいと考えられる。
このため、一部の実施例によると、同じNAND型フラッシュI/Oインターフェースを共有しつつ複数のデバイス(例えば、複数のチップイネーブル信号を1つのチャネルにまとめることができるので、同じチャネルの少なくとも1つのデバイスからデータを利用可能な状態としつつ「tR」時間をできるかぎりカバーすることができる。
一部の実施例によると、データ転送時間は、SLCデバイスについては約25μsであり、MLCデバイスについては約60μsとなり得る。「tR」期間中、レディ/ビジー出力信号「R/B_」は論理「0」でアサートすることができ、フラッシュメモリデバイスが、例えばデータの書込または消去ができない期間であるビジー状態にあることを示す。
図2Bは、プログラミング動作について、NAND型フラッシュインターフェースの各ピンに対応付けられているタイミングチャートの一例を示す図である。図2Bを参照しつつ説明すると、領域206は、1以上のコマンドをフラッシュメモリデバイスに送ることができる期間を表し、期間208は、プログラミングデータをフラッシュメモリデバイスに送ることができる期間を表し、領域210はフラッシュメモリデバイスのステータスをチェックするべくステータスチェックをフラッシュメモリデバイスに送ることができる期間を表すとしてよい。
図示しているように、データ入出力I/O[7:0]ピンに現れているコマンド「80h」は、シリアルデータ入力(例えば、DinN、・・・、DinM)を示すとしてよい。コマンド「10h」は、自動プログラミングを示すとしてよく、その後にはコマンド「70h」で示されるステータス読出が続く。I/O[0]=「0」はエラー無し状態を示す一方、I/O[0]=「1」は自動プログラミングにおいてエラーが発生したことを示すとしてよい。
また、既に説明したように、レディ/ビジー出力信号「R/B_」は、論理値がLowの場合にビジー状態を示すとしてよい。一部の実施形態によると、レディ/ビジー出力信号「R/B_」の論理状態がLowの期間は数百μsのオーダの範囲であってよい。また、読出イネーブル信号「RE_」の立ち上がりエッジは、書込イネーブル信号「WE_」の立ち上がりエッジから所定期間が経過すると発生するとしてよい。一部の実施例によると、この所定期間は、約60nsであるとしてよい。
また、図2Bに示すように、レディ/ビジー出力信号「R/B_」の立ち下がりエッジから立ち上がりエッジまでの期間「tPRG」は、データをプログラミングするためのプログラミング時間を示すとしてよい。一部の実施例によると、プログラミング時間「tPRG」は、SLCデバイスの場合約200μsから約700μsの範囲内であるとしてよく、MLCデバイスの場合約800μsから約3msの範囲内であるとしてよい。
一部の実施例によると、プログラミング期間「tPRG」は、「tR」期間と同様であるとしてよく、データを読み出す代わりにデータをプログラミングする期間であるとしてよい。「tPRG」期間中、レディ/ビジー出力信号「R/B_」は論理「0」でアサートすることができ、フラッシュメモリが、例えばデータの読出または消去ができない期間であるビジー状態にあることを示す。プログラミング期間「tPRG」が長くなると、当該期間中は通常であればフラッシュメモリデバイスに対するアクセスが許可されないので、フラッシュメモリデバイスの性能が低減してしまう。
図2Cは、ブロック消去動作について、NAND型フラッシュインターフェースの各ピンに対応付けられているタイミングチャートの一例を示す図である。図2Cを参照しつつ説明すると、領域212は、1以上のコマンドをフラッシュメモリデバイスに送ることが出来る期間を表し、領域214は、フラッシュメモリデバイス106a−106dのステータスをチェックするためにフラッシュメモリデバイスにステータスチェックが送られる期間を表すとしてよい。
図示しているように、データ入出力I/O[7:0]ピンに現れているコマンド「60h」は、ブロック消去動作を示すとしてよく、行アドレス(例えば、RA1、RA2、およびRA3が順次供給される。コマンド「D0h」は、2サイクルブロック消去動作を示すとしてよい。ブロック消去動作は、ステータス読出(コマンド「70h」)によってチェックすることができ、I/O[0]=「0」はエラー無し状態を示す一方、I/O[0]=「1」はブロック消去においてエラーが発生したことを示すとしてよい。
本例では、レディ/ビジー出力信号「R/B_」は、約1ミリ秒(例えば、所定の最大値を持つ)等、所定の期間にわたって論理Lowとすることができる。同様に、読出イネーブル信号「RE_」の立ち上がりエッジは、書込イネーブル信号「WE_」の立ち上がりエッジから所定期間が経過すると発生するとしてよい。別の例を挙げると、「D0h」コマンドに対応する書込イネーブル信号「WE_」の立ち上がりエッジ、および/または、レディ/ビジー出力信号「R/B_」の立ち下がりエッジは、約100nsであってよい。
また、図2Cに示すように、レディ/ビジー出力信号「R/B_」の立ち下がりエッジから立ち上がりエッジまでの期間「tBERS」は、ブロックデータを消去するためのブロック消去期間を示すとしてよい。
一部の場合、ブロック消去動作では、1以上のブロック消去コマンドを送る(または、レディ/ビジー出力信号「R/B_」を利用しない場合は、ステータスコマンドを読出す)以外はNAND型フラッシュI/Oインターフェースにアクセスする必要がない。ソリッドステートドライブシステム100の性能と、ブロック消去動作との間には間接的な関係があるとしてよい。ある場合には、ソリッドステートドライブシステム100は、ブロック消去動作の最初の時点において、複数の消去されたページがデータプログラミング用に利用可能であると判断するとしてよい。この結果、ソリッドステートドライブシステム100は、ブロック消去動作を実行することなく、プログラミング動作を継続することができる。しかし、ソリッドステートドライブシステム100に格納されているデータがソリッドステートドライブシステム100の動作に応じて変更されると、データプログラミングに利用できるページが少なくなり、ソリッドステートドライブシステム100は、データプログラミング用に空いたページを得るために1以上のブロック消去動作を実行する必要が出てくる。このため、「tBERS」期間が長くなると、ソリッドステートドライブシステム100がプログラミングコマンドを引き受けるまでの待機期間が長くなってしまう。言い換えると、ブロック消去動作がドライブの全体的な性能に与える影響は、ファームウェア(例えば、ファームウェア124)が処理するガベージコレクションメカニズムに大きく左右される。
一部の実施例によると、ブロック消去時間「tBERS」は、SLCデバイスについて、約1.5msから約2msの範囲内であり、MLCデバイスについて約1.5msから約10msの範囲内である。「tBERS」期間中、レディ/ビジー出力信号「R/B_」は論理「0」でアサートすることができ、フラッシュメモリが、例えばデータの読出または書込ができない期間であるビジー状態にあることを示す。
図3Aは、プレーンを2つ有するフラッシュメモリデバイスの水平データ転送方式の一例を示す図である。図3Aに示すように、フラッシュメモリデバイスユニット300は、プレーンを2つ有するフラッシュメモリデバイスを4つ(300a、300b、300c、および、300d)備える。プレーンを2つ有するフラッシュメモリデバイス300a、300b、300c、および、300dはそれぞれ、図1Aに示すフラッシュメモリデバイス106a−106dに対応するとしてよい。
プレーンを2つ有するフラッシュメモリデバイス300a−300dはそれぞれ、プレーン「0」およびプレーン「1」を有し、4つの異なるチャネル、つまり、「CH0」、「CH1」、「CH2」、および、「CH3」を介してデータを受信する。ページバッファ302、304、306、および、308はそれぞれ、先行する期間に開始されたプログラミング動作を実行している間、対応するチャネル「CH0」、「CH1」、「CH2」、および、「CH3」を介して受信するデータを格納するための一時的な格納部として利用され得る。
ページバッファ302−308はそれぞれ、1ページが1プレーンに対応するページサイズに設定され得る(例えば、ページバッファ302−308はそれぞれ、ページバッファサイズがメモリセルサイズに等しいとしてよい)。ページバッファ302、304、306、および、308は、プレーン「0」およびプレーン「1」でのデータのプログラミング、読出、または、消去に対応付けられているプログラミング/読出/消去動作を制御するソリッドステートコントローラ(例えば、ソリッドステートコントローラ108)の構成要素であってよく、メモリインターフェース(例えば、メモリインターフェース128)を介して、2つのプレーンを有するフラッシュメモリデバイス300a−300dと通信するとしてよい。
プログラミング動作において、チャネル「CH0」、「CH1」、「CH2」、および、「CH3」から受信するデータワードは、ページバッファ302−308にロードされる。書き込むべき各データワードは、シリアルに(例えば、ビット群単位で)受信するとしてよく、ページバッファ302−308には一連のステップによってデータが入れられるとしてよい。
図3Aに示すような2プレーンメモリアレイ構成では、1ページ分のデータは、ページバッファ302−308にデータをロードして、ロードされたデータをプレーン「0」およびプレーン「1」の対応するページにプログラミングすることによって、「水平に」プログラミングされるとしてよい。例えば、ホスト102から合計8kBのデータを受信する場合に、4kBのデータはチャネル「CH0」を介して受信し、4kBのデータはチャネル「CH1」を介して受信すると仮定すると、データの半分(例えば、4kB)は、チャネル「CH0」に対応付けられているページバッファ302に格納され(例えば、2kBのデータがプレーン「0」に、2kBのデータがプレーン「1」に格納される)、残りの半分(例えば、4kB)はチャネル「CH1」に対応付けられているページバッファ304に格納され得る(例えば、2kBのデータがプレーン「0」に、2kBのデータがプレーン「1」に格納される)。
図3Aに示すように、水平データ転送方式(点線の矢印で示す)は、チャネル「CH0」から受信する第1のデータ群(例えば、最大4kB)をページバッファ302にロードして、ロードされたデータをプレーン「0」のページ310に書き込むことから開始される。第1のデータ群の書込と同時またはその後に、チャネル「CH0」からの第2のデータ群もまたページバッファ302にロードするとしてよい。第1のデータ群のプログラミング動作が完了した後、第2のデータ群をページバッファ302からラッチしてプレーン「1」のページ312にプログラミングするとしてよい。この時点において、ページバッファ304はチャネル「CH1」からデータを受信するべく利用することができる。チャネル「CH0」から受信した第2のデータ群のプログラミング動作が完了すると、チャネル「CH1」からのデータをページバッファ304から取得してプレーン「0」のページ314にプログラミングするとしてよい。この後、残りのデータをページバッファ304からロードしてプレーン「1」のページ316にプログラミングするとしてよい。同様に、チャネル「CH1」からの第2のデータ群のプログラミング動作が完了すると、チャネル「CH2」からのデータをページバッファ306から取得して、プレーン「0」のページ318にプログラミングするとしてよい。この後、残りのデータをページバッファ306からロードしてプレーン「1」のページ320にプログラミングするとしてよい。上述したプログラミング動作は、チャネル「CH3」から受信したデータがプレーン「0」のページ322およびプレーン「1」のページ324に無事にロードおよびプログラミングされるまで繰り返される。
図3Bは、図3Aに示す水平データ転送方式に対応付けられるタイミングチャートの一例を示す図である。図3Bに示すように、チャネル「CH1」のプレーン「0」およびプレーン「1」のデータは、チャネル「CH0」のプレーン「0」およびプレーン「1」のデータのプログラミング動作がそれぞれ完了した後でのみ、プログラミングすることができる。同様に、チャネル「CH2」のプレーン「0」およびプレーン「1」のデータは、チャネル「CH1」のプレーン「0」およびプレーン「1」のデータのプログラミング動作がそれぞれ完了した後でのみ、プログラミングすることができ、チャネル「CH3」のプレーン「0」のデータは、チャネル「CH2」のプレーン「0」およびプレーン「1」のデータのプログラミング動作がそれぞれ完了した後でのみ、プログラミングすることができる。水平データ転送方式ではこのようにタイミングに制約があるので、チャネル「CH0」、「CH1」、「CH2」、および、「CH3」にわたってプログラミング動作を同時に並行して開始することはできず、プログラミング時間「tPRG」が長くなってしまう可能性がある。しかし、プログラミング時間が長くなると、ファームウェア(例えば、ファームウェア124)が、フラッシュメモリデバイスへアクセスするよう求めるアクセス要求を処理中であっても、フラッシュメモリデバイスにアクセスできない期間が長くなってしまう可能性がある。
さらに、ページ310−324のサイズならびにチャネル「CH0」、「CH1」、「CH2」、および、「CH3」を介して送信されるデータ負荷によっては、厳しいチャネルバッファサイズ要求に対応するべく、ページバッファ302−308のサイズを大きくする必要性が高まり得る。例えば、各ページを4kBとすると、ページバッファ302−308のそれぞれのサイズは、プレーンを2つ有するフラッシュメモリデバイス300a−300dのそれぞれについて最低でも8kBは必要となり(例えば、各ページ/プレーンについて4kB)、合計で32kBのフラッシュページバッファサイズが必要となる。別の例を挙げると、1つのプレーンが4kBの1ページに対応し、プレーンを8個有するフラッシュメモリデバイスの場合、合計で128kBのフラッシュページバッファサイズが必要となるであろう(例えば、各チャネルが32kBに対応し、4つのチャネルが設けられる)。
ページバッファ302−308がこのようなフラッシュページバッファサイズに対応できない場合、図3Aに示す水平データ転送順序に応じてプログラミング動作を十分且つ効率的に実行するためには、ページバッファ302−308のサイズを大きくする必要がある。しかし、ページバッファのサイズを大きくしたとしても、フラッシュメモリデバイスの性能が必ずしも改善するわけではない場合もある。図3Aに示すプレーンを2つ有するフラッシュメモリデバイス300a−300dを一例として説明すると、ページバッファ302−308のサイズを大きくしても(例えば、ページバッファ302−308のそれぞれのサイズを1ページバッファサイズの4kBから2ページバッファサイズの8kBに大きくしても)、水平データ転送方式における制約のために、プレーンを2つ有するフラッシュメモリデバイス300a−300dのプログラミング速度が全体的に必ずしも向上するわけではない。チャネル「CH1」からのデータは、チャネル「CH0」からのデータのプログラミング動作が完了するまではプログラミングできないので、チャネル「CH0」、「CH1」、「CH2」、および、「CH3」のプログラミング動作を完了するためにかかる時間「tPRG」は長いままである。「tPRG」期間が長くなると、ソリッドステートコントローラがプログラミングデータにアクセスできるようになるまでの期間であるソリッドステートコントローラ(例えば、ソリッドステートコントローラ108)の待機時間が長くなる可能性があり、フラッシュメモリデバイスにアクセスするアクセス速度が遅くなるという問題点がある。
ページバッファ302−308のサイズを大きくすることなくページ310−324にプログラミングを行うべく、一部の実施例によると、垂直データ転送方式を用いてプレーン「0」およびプレーン「1」のページ310−324をプログラミングするとしてよい。一部の実施例によると、垂直データ転送方式では、第1のプレーンのページに対するプログラミングを、他のプレーンのページに対するプログラミングより前に実行することができる。第1のプレーンのページに対してプログラミングを実行した後、次のプレーンのページに対するプログラミングを開始することができる。図4Aは、垂直データ転送方式の一例を示す図である。
図4Aを参照しつつ説明すると、プレーンを2つ有するフラッシュメモリデバイス400は、プレーン「0」およびプレーン「1」を持つとしてよい。図示しているのは2つのプレーンのみであるが、当業者であれば、フラッシュメモリデバイス400が3つ以上のプレーンを有し得ること、および、その場合でも以下に記載する垂直データ転送方式が同様に利用可能であることを認めるであろう。
図3Aに示したプレーンを2つ有するフラッシュメモリデバイス300a−300dと同様に、プレーンを2つ有するフラッシュメモリデバイス400は、チャネル「CH0」、「CH1」、「CH2」、および、「CH3」を介してデータを受信するとしてよい。ページバッファ402、404、406、および、408はそれぞれ、チャネル「CH0」、「CH1」、「CH2」、および、「CH3」を介して受信するデータを格納するための一時的な格納部として利用され得る。
データはページバッファ402−408のそれぞれに順次ロードされるとしてよい。具体的に説明すると、ページバッファ402は、プレーン「0」のページ410aにプログラミングされるべきチャネル「CH0」からの第1のデータ群、および、プレーン「1」のページ410bにプログラミングされるべきチャネル「CH0」からの第2のデータ群を受信するとしてよく、ページバッファ404は、プレーン「0」のページ412aにプログラミングされるべきチャネル「CH1」からの第1のデータ群、および、プレーン「1」のページ412bにプログラミングされるべきチャネル「CH1」からの第2のデータ群を受信するとしてよく、ページバッファ406は、プレーン「0」のページ414aにプログラミングされるべきチャネル「CH2」からの第1のデータ群、および、プレーン「1」のページ414bにプログラミングされるべきチャネル「CH2」からの第2のデータ群を受信するとしてよく、ページバッファ408は、プレーン「0」のページ416aにプログラミングされるべきチャネル「CH3」からの第1のデータ群、および、プレーン「1」のページ416bにプログラミングされるべきチャネル「CH3」からの第2のデータ群を受信するとしてよい。
上述したように、ページバッファ402−408に格納されたデータは、垂直データ転送方式に従って、プレーン「0」およびプレーン「1」のそれぞれのページにプログラミングされるとしてよい。点線で示しているように、チャネル「CH0」からの第1のデータ群がページバッファ402にロードされた後、チャネル「CH0」からの第1のデータ群をプレーン「0」のページ410aにプログラミングするとしてよい。このプログラミング動作が実行されている間に、ページバッファ404−408に格納されているデータもまた、プレーン「0」の対応するページ412a、414a、および、416aにロードおよびプログラミングされるとしてよい。一例を挙げると、チャネル「CH1」からの第1のデータ群をページバッファ404にロードした後、チャネル「CH1」からの第1のデータ群は即座に、チャネル「CH0」に対応付けられているプログラミング動作と並行して、プレーン「0」のページ412aにプログラミングされるとしてよい。同様に、チャネル「CH2」および「CH3」からの第1のデータ群も即座に、プレーン「0」の対応するページ414aおよび416aにロードおよびプログラミングされるとしてよい。
チャネル「CH0」、「CH1」、「CH2」、および、「CH3」からの第1のデータ群をプレーン「0」の対応するページ410a、412a、414a、および、416aにプログラミングした後、チャネル「CH0」、「CH1」、「CH2」、および、「CH3」からの第2のデータ群をページバッファ402−408にロードして、プレーン「1」の対応するページ410b、412b、414b、および、416bにプログラミングするとしてよい。例えば、チャネル「CH3」からの第1のデータ群をプレーン「0」のページ416aにプログラミングした後、チャネル「CH0」からの第2のデータ群をロードして、プレーン「1」のページ410bにプログラミングするとしてよい。この時点において、チャネル「CH1」、「CH2」、および、「CH3」からの第2のデータ群もまたそれぞれ、ページバッファ404−408にロードされている。ページバッファ404−408から第2のデータ群をロードした後、第2のデータ群をプレーン「1」のページ412b、414b、および、416bにプログラミングする。垂直データ転送方式によって、第2のデータ群をプレーン「1」のページにプログラミングする前に、第1のデータ群をプレーン「0」のページにプログラミングすることができる。
一部の実施例によると、プレーン「0」のページ410a、412a、414a、および、416aは並行してプログラミングされ、プレーン「1」のページ410b、412b、414b、および、416bは並行してプログラミングされるとしてよい。当業者であれば、このように複数のページにプログラミングするといってもそれぞれのプログラミング動作が全く同時に開始するわけではないことに想到するであろう。例えば、プレーン「0」のページ410a、412a、414a、および、416aに対するプログラミングに対応付けられているプログラミング動作はそれぞれ、所定のタイミングオフセットが経過すると、初期化されるとしてよい。一例を挙げると、ページ410aに対するプログラミングに対応付けられているプログラミング動作は、特定の基準時間に初期化されるとしてよい。(例えば、基準時間から)所定の時間が経過すると、ページ412aに対するプログラミングに対応付けられているプログラミング動作が開始するとしてよい。一部の実施例によると、この所定のタイミングオフセットは、各ページバッファへのデータのロードに対応する時間によって決まるとしてよい。例えば、ページ410aのプログラミングに対応付けられているプログラミング動作の初期化とページ412aのプログラミングに対応付けられているプログラミング動作との時間差は、ページバッファ402からのデータのロードが開始された後にページバッファ404からのデータのロードを初期化するのにソリッドステートドライブが必要な時間である。同様に、プレーン「1」のページ410b、412b、414b、および、416bのそれぞれのプログラミングに対応付けられているプログラミング動作も、所定のタイミングオフセットが経過した後、初期化されるとしてよい。
図4Bは、図4Aに示す垂直データ転送方式に対応付けられるタイミングチャートの一例を示す図である。図4Bに示すように、チャネル「CH0」、「CH1」、「CH2」、および「CH3」から受信したデータのプログラミング動作は並列に実行されるとしてよい。具体的には、チャネル「CH0」、「CH1」、「CH2」、および「CH3」から受信したデータは、プレーン「0」に並列にプログラミングされるとしてよい。プレーン「0」のページのプログラミングの後、ソリッドステートコントローラ108は、図4Aに示す垂直データ転送方式に従って、プレーン「1」のページに対するプログラミングを開始するとしてよい。垂直データ転送方式では、図3Bに示す水平データ転送方式のタイミングチャートと比べると、全てのチャネルを並行してプログラミングすることができるので、プログラミング期間「tPRG」が大幅に短くなり、プログラミング動作の速度が全体的に改善している。垂直データ転送方式によれば、プログラミング期間「tPRG」を、SLCデバイスの倍は200μs未満、MLCデバイスについては800μs未満に短縮することができる。
図5は、垂直データ転送方式を実行する方法500の一例を示す図である。方法500は、例えば、ソリッドステートシステム100またはソリッドステートコントローラ104によって実行することができ、説明の便宜上、以下の方法500の説明では基本的にソリッドステートコントローラ104を例として用いる。しかし、別のシステム、または、デバイスおよびシステムの別の組み合わせもまた、方法500を実行するべく利用され得る。
図5を参照しつつ説明すると、502において、第1のデータおよび第2のデータを受信するとしてよい。504において、第1のデータを第1のページバッファに格納して、第2のデータを第2のページバッファに格納するとしてよい。506において、第1のページバッファに格納されている第1のデータを第1のメモリプレーンに対応付けられている第1のページにプログラミングするとしてよい。508において、第1のデータをプログラミングしつつ、第2のページバッファに格納されている第2のデータを第1のメモリプレーンに対応付けられている第2のページにプログラミングするとしてよい。
一部の実施例によると、動作502−508は、図示されている順序で実行されるとしてもよいし、並行して実行されるとしてもよく(例えば、実質的に、または、非シリアル方式で同一プロセスまたは異なるプロセスで実行するとしてよい)どちらの場合も同じ結果が得られる。また、動作502−508を実施する実体またはシステムはそれぞれ、同じであってもよいし、別々であってもよい。
上述した実施例ではチャネル「CH0」、「CH1」、「CH2」、および「CH3」からのデータを並列してプログラミングするものして説明したが、先行するチャネルのプログラミング動作が終了した後で、プログラミング動作を開始するとしてもよい。例えば、チャネル「CH1」からの第1のデータ群は、チャネル「CH0」からのデータを用いたページ410aのプログラミング動作が完了すると、開始されるとしてよい。別の例を挙げると、チャネル「CH2」からの第1のデータ群は、チャネル「CH1」からのデータを用いたページ412aのプログラミング動作が完了すると、開始されるとしてよい。さらに別の例を挙げると、チャネル「CH3」からの第1のデータ群は、チャネル「CH2」からのデータを用いたページ414aのプログラミング動作が完了すると、開始されるとしてよい。
図4Aおよび図4Bに図示しているプレーンは2つのみであるが、垂直データ転送方式は、プレーンの数が3つ以上であるマルチプレーン型メモリデバイスにも適用可能であるとしてよい。例えば、垂直データ転送方式は、4つのプレーンを有するマルチプレーン型メモリデバイスに適用可能である。本例では、垂直データ転送方式によると、ページ416bのプログラミング動作が完了した後、チャネル「CH0」からの第3のデータ群を第3のプレーンの第1のページにプログラミングするとしてよい(つまり、プレーン「2」)。
図1Aに示す一例であるソリッドステートドライブシステム100は、概念を分かりやすく説明することのみを目的としており、システム構成の一例である。ほかの任意の適切なメモリシステム構成を利用することもできる。本明細書に記載する主題の原理を理解するために不要な構成要素、例えば、さまざまなインターフェース、アドレス指定回路、タイミング回路および配列決定回路、ならびに、デバッグ回路は、分かりやすいように図示されていない。
ソリッドステートコントローラ108およびメモリコントローラ130を含むソリッドステートドライブ104またはソリッドステートドライブシステム100は、パッケージ内に搭載されているとしてよい。当該パッケージにはさらに、機能ブロックおよび周辺回路が含まれるとしてよい。例えば、ソリッドステートドライブシステム100またはソリッドステートドライブ104は、パッケージ・オン・パッケージ(PoP)、ボール・グリッド・アレイ(BGA)、チップ・スケール・パッケージ(CSP)、プラスチック・リーデッド・チップ・キャリア(PLCC)、プラスチック・デュアル・インライン・パッケージ(PDIP)、ダイ・イン・ワッフル・パッケージ、ダイ・イン・ウェハ・フォーム、チップ・オン・ボード(COB)、セラミック・デュアル・インライン・パッケージ(CERDIP)、プラスチック・メトリック・クワッド・フラット・パッケージ(MQFP)、シン・クワッド・フラット・パッケージ(TQFP)、スモール・アウトライン・インテグレーテッド・サーキット(SOIC)、シュリンク・スモール・アウトライン・パッケージ(SSOP)、シン・スモール・アウトライン・パッケージ(TSOP)、シン・クワッド・フラット・パッケージ(TQFP)、システム・イン・パッケージ(SIP)、マルチ・チップ・パッケージ(MCP)、ウェハレベル・ファブリケーテッド・パッケージ(WFP)、ウェハレベル・プロセスド・スタック・パッケージ(WSP)等のパッケージに搭載されるとしてよい。
ソリッドステートコントローラ108およびメモリコントローラ130を含むソリッドステートドライブ104またはソリッドステートドライブシステム100は、メモリカード内に設けられるとしてもよい。メモリカードは、ユニバーサル・シリアル・バス(USB)、マルチメディアカード(MMC)、ペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCI−E)、シリアル・アドバンスド・テクノロジー・アタッチメント(SATA)、パラレル・アドバンスド・テクノロジー・アタッチメント(PATA)、スモール・コンピュータ・システム・インターフェース(SCSI)、エンハンスド・スモール・デバイス・インターフェース(ESDI)、インテグレーテッド・ドライブ・エレクトロニクス(IDE)等のうち少なくとも1つのインターフェースを介して外部デバイス(例えば、ホスト)と通信するとしてよい。
ソリッドステートコントローラ108およびメモリコントローラ130を含むソリッドステートドライブ104またはソリッドステートドライブシステム100は、携帯電話、携帯情報端末(PDA)、デジタルカメラ、ポータブルゲーム機、および、MP3プレーヤ等のモバイルデバイスに設けられるとしてもよい。ソリッドステートドライブシステム100またはソリッドステートドライブ104がモバイルデバイスで実装される場合、フラッシュメモリデバイス106a−106dは当該モバイルデバイスの内部に設けられるとしてもよいし、外部に設けられるとしてもよく、当該モバイルデバイスを動作させるためのコードおよびデータを格納するとしてよい。
ソリッドステートコントローラ108およびメモリコントローラ130を含むソリッドステートドライブ104またはソリッドステートドライブシステム100は、高精細テレビ(HDTV)、デジタルビデオディスク、デジタル・バーサティル・ディスク(DVD)、ルータ、グローバル・ポジショニング・システム(GPS)等、家庭向け用途に適応可能であるとしてよい。
ソリッドステートコントローラ108およびメモリコントローラ130を含むソリッドステートドライブ104またはソリッドステートドライブシステム100は、コンピューティングシステム用に適応可能であるとしてよい。ソリッドステートドライブシステム100またはソリッドステートドライブ104がコンピューティングシステムで実装される場合、ソリッドステートドライブシステム100またはソリッドステートドライブ104はさらに、バスに電気的に結合されているマイクロプロセッサ、ユーザインターフェース、および、ベースバンドチップセット等のモデムを含むとしてよい。フラッシュメモリデバイス106a−106dは、コンピューティングシステムの内部構成要素または外部構成要素として設けられるとしてよく、メモリコントローラ130を介してマイクロプロセッサが処理するデータを格納するとしてよい。コンピューティングシステムがモバイルデバイスの場合、コンピューティングシステムの動作電圧を供給する電池をさらに備えるとしてよい。当業者であれば、コンピューティングシステムはさらに、アプリケーションチップセット、カメライメージプロセッサ(CIS)、および/または、モバイルDRAMを備えるものと理解するであろう。
フラッシュメモリデバイス106a−106dは、電力供給が停止してもデータを格納し続けることが可能な不揮発性メモリデバイスである。このため、当業者であれば、フラッシュメモリデバイス106a−106dはさまざまなデバイス、装置、および、システムと同様にアプリケーションに応じて変更され得るものと理解するであろう。
上述したように、フラッシュメモリデバイスが備える複数のプレーンに対して、プログラミング時間「tPRG」を短縮するべく、垂直データ転送方式を用いてプログラミングを実行して、ページバッファ132a−132dのサイズを大きくすることなく、フラッシュメモリデバイス106a−106dおよびソリッドステートシステム100の性能を改善するとしてよい。
幾つかの実施例を詳細に説明してきたが、さまざまな点で変更が可能である。開示された主題は、本明細書に記載された機能的動作も含め、電子回路、コンピュータハードウェア、ファームウェア、ソフトウェア、または、これらの組み合わせ、例えば、本明細書で開示された構造的手段およびそれらの構造的均等物で実装されるとしてよい。1以上のデータ処理装置に上述した動作を実行させるプログラム(メモリデバイス、ストレージデバイス、機械可読格納基板あるいはその他の物理的な機械可読媒体、または、これらのうち1以上の組み合わせであるコンピュータ可読媒体において符号化されたプログラム等)を含むとしてよい。
「システム」という用語は、データを処理する全ての装置、デバイス、および、機械を含むものとし、一例として、プログラミング可能プロセッサ、コンピュータ、または、複数のプロセッサあるいはコンピュータを含む。システムは、ハードウェアに加えて、問題のコンピュータプログラムのための実行環境を形成するコードを含むとしてよい。例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、または、これらのうち1以上の組み合わせを構成するコードを含むとしてよい。
プログラム(または、コンピュータプログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、または、コードとも呼ばれる)は、コンパイラ型言語あるいはインタプリタ型言語、または、宣言型言語あるいはプロシージャ型言語を含む任意の形式のプログラミング言語で書き込まれるとしてよい。また、スタンドアロン型プログラムあるいはモジュール、コンポーネント、サブルーチン、または、コンピューティング環境での利用に適したその他のユニット等として、任意の形式で展開するとしてよい。プログラムは必ずしも、ファイルシステムのファイルに対応するものではない。プログラムは、他のプログラムまたはデータを保持するファイルの一部分に格納されるとしてよく(例えば、1以上のスクリプトがマークアップ言語ドキュメントに格納される)、問題のプログラムに専用の1つのファイルに格納されるとしてもよく、または、複数の協働するファイル(例えば、1以上のモジュール、サブプログラム、または、コードの一部分を格納する複数のファイル)に格納されるとしてもよい。プログラムは、1つのコンピュータで実行されるように展開されるとしてもよいし、一箇所にまとめられている複数のコンピュータまたは複数の箇所に分散して設けられ、通信ネットワークで相互接続されている複数のコンピュータによって実行されるように展開されるとしてもよい。
本明細書では数多く具体的な内容を含むが、請求の対象となる範囲を限定するものと解釈されるべきではなく、特定の実施例に固有の特徴を説明しているものと解釈されたい。複数の別個の実施例の特徴として本明細書で説明したものは、組み合わせて1つの実施例で実施するとしてもよい。逆に、1つの実施例の特徴として説明したさまざまな特徴を、複数の実施例で別々に実施するとしてもよいし、適切なサブコンビネーションで実施するとしてもよい。さらに、複数の特徴が特定の組み合わせで実施されるものとして上述され、その組み合わせで請求されているとしても、請求されている組み合わせから1以上の特徴を除外して、請求の対象をサブコンビネーションまたはサブコンビネーションの変形とするとしてもよい。
同様に、図面では特定の順序で実行されるものとして複数の動作を説明しているが、所望の結果を得るためには、これらの動作を図示されている特定の順序または順次実行する必要がある、または、図示されている動作を全て実行する必要があるものと理解されるべきではない。状況によっては、マルチタスキングおよび並列処理が効果的であるとしてよい。また、上述した実施例においてさまざまなシステム構成要素を分割することは、全ての実施例においてそのように分割する必要があるものと理解されるべきではない。
上記以外の実施例も特許請求の範囲に含まれるものとする。

Claims (20)

  1. 第1のデータおよび第2のデータを受信する段階と、
    前記第1のデータを第1のページバッファに格納し、且つ、前記第2のデータを第2のページバッファに格納する段階と、
    マルチプレーン型メモリデバイスの1のメモリプレーンに対応付けられている第1のページに、格納されている前記第1のデータをプログラミングする段階と、
    前記格納されている第1のデータをプログラミングする段階と並行して、前記メモリプレーンに対応付けられている第2のページに、格納されている前記第2のデータをプログラミングする段階と
    を備える方法。
  2. 前記第1のデータを受信する段階は、第1のチャネルを介して前記第1のデータを受信する段階を有し、
    前記第2のデータを受信する段階は、前記第1のチャネルとは異なる第2のチャネルを介して前記第2のデータを受信する段階を有する請求項1に記載の方法。
  3. 前記第1のデータを受信する段階は、第1のサブセットの第1のデータおよび第2のサブセットの第1のデータを受信する段階を有し、
    前記第2のデータを受信する段階は、第1のサブセットの第2のデータおよび第2のサブセットの第2のデータを受信する段階を有する請求項1に記載の方法。
  4. 前記メモリプレーンに対応付けられている前記第1のページに、前記格納されている第1のデータをプログラミングする段階は、前記メモリプレーンに対応付けられている前記第1のページに、前記第1のサブセットの第1のデータをプログラミングする段階を有し、
    前記メモリプレーンに対応付けられている前記第2のページに、前記格納されている第2のデータをプログラミングする段階は、前記メモリプレーンに対応付けられている前記第2のページに、前記第1のサブセットの第2のデータをプログラミングする段階を有する請求項3に記載の方法。
  5. 前記メモリプレーンは第1のメモリプレーンであり、前記方法はさらに、
    前記マルチプレーン型メモリデバイスの第2のメモリプレーンに対応付けられている第1のページに、前記第2のサブセットの第1のデータをプログラミングする段階と、
    前記第2のメモリプレーンに対応付けられている前記第2のページに、前記第2のサブセットの第2のデータをプログラミングする段階とを備える請求項4に記載の方法。
  6. 前記第2のメモリプレーンに対応付けられている前記第1のページに、前記第2のサブセットの第1のデータをプログラミングする段階は、前記第1のメモリプレーンに対応付けられている前記第2のページに、前記第1のサブセットの第2のデータをプログラミングする段階の後に実行される請求項5に記載の方法。
  7. 前記第2のメモリプレーンに対応付けられている前記第2のページに、前記第2のサブセットの第2のデータをプログラミングする段階は、前記第2のメモリプレーンに対応付けられている前記第1のページに、前記第2のサブセットの第1のデータをプログラミングする段階の後に実行される請求項5に記載の方法。
  8. 前記格納されている第1のデータをプログラミングする段階と並行して、前記メモリプレーンに対応付けられている第2のページに、前記格納されている第2のデータをプログラミングする段階は、前記格納されている第1のデータのプログラミングを完了する前に前記格納されている第2のデータに対応付けられているプログラミング動作を初期化する段階を有する請求項1に記載の方法。
  9. 第1のチャネルから第1のデータを受信して前記第1のデータを格納する第1のページバッファと、
    第2のチャネルから第2のデータを受信して前記第2のデータを格納する第2のページバッファと、
    1のメモリプレーンに対応付けられている第1のページに格納されている前記第1のデータをプログラミングするのと並行して、前記メモリプレーンに対応付けられている第2のページに格納されている前記第2のデータをプログラミングする回路と
    を備えるデバイス。
  10. 前記第1のデータは、第1のサブセットの第1のデータおよび第2のサブセットの第1のデータを含み、
    前記第2のデータは、第1のサブセットの第2のデータおよび第2のサブセットの第2のデータを含む請求項9に記載のデバイス。
  11. 前記回路は、前記メモリプレーンに対応付けられている前記第1のページに前記第1のサブセットの第1のデータをプログラミングし、且つ、前記メモリプレーンに対応付けられている前記第2のページに前記第1のサブセットの第2のデータをプログラミングする請求項10に記載のデバイス。
  12. 前記メモリプレーンは、第1のメモリプレーンであり、
    前記回路は、第2のメモリプレーンに対応付けられている第1のページに前記第2のサブセットの第1のデータをプログラミングし、且つ、前記第2のメモリプレーンに対応付けられている前記第2のページに前記第2のサブセットの第2のデータをプログラミングする請求項11に記載のデバイス。
  13. 前記回路は、前記第1のメモリプレーンに対応付けられている前記第2のページに前記第1のサブセットの第2のデータがプログラミングされた後、前記第2のメモリプレーンに対応付けられている前記第1のページに前記第2のサブセットの第1のデータをプログラミングする請求項12に記載のデバイス。
  14. 前記回路は、前記第2のメモリプレーンに対応付けられている前記第1のページに前記第2のサブセットの第1のデータがプログラミングされた後、前記第2のメモリプレーンに対応付けられている前記第2のページに前記第2のサブセットの第2のデータをプログラミングする請求項12に記載のデバイス。
  15. 前記回路は、前記格納されている第1のデータのプログラミングに対応付けられているプログラミング動作を完了する前に、前記格納されている第2のデータのプログラミングに対応付けられているプログラミング動作を初期化する請求項9に記載のデバイス。
  16. 1のメモリプレーンを有するメモリアレイと、
    第1のチャネルから第1のデータを受信して前記第1のデータを格納する第1のページバッファと、
    第2のチャネルから第2のデータを受信して前記第2のデータを格納する第2のページバッファと、
    前記メモリプレーンに対応付けられている第1のページに格納されている前記第1のデータをプログラミングすることに並行して、格納されている前記第2のデータを前記メモリプレーンに対応付けられている第2のページにプログラミングするコントローラと
    を備えるシステム。
  17. 前記コントローラは、前記格納されている第1のデータのプログラミングを完了する前に、前記格納されている第2のデータに対応付けられているプログラミング動作を初期化する請求項16に記載のシステム。
  18. 前記メモリプレーンは、第1のメモリプレーンであり、
    前記メモリアレイは、第2のメモリプレーンを有し、
    前記第1のデータは、第1のサブセットおよび第2のサブセットを含み、
    前記コントローラは、前記第1のメモリプレーンに対応付けられている前記第1のページに前記第1のサブセットをプログラミングし、且つ、前記第2のメモリプレーンに対応付けられている第1のページに前記第2のサブセットをプログラミングする請求項16に記載のシステム。
  19. 前記第2のデータは、第1のサブセットおよび第2のサブセットを含み、
    前記コントローラは、前記第1のメモリプレーンに対応付けられている前記第2のページに前記第1のサブセットの第2のデータをプログラミングし、且つ、前記第2のメモリプレーンに対応付けられている第2のページに前記第2のサブセットの第2のデータをプログラミングする請求項18に記載のシステム。
  20. 前記コントローラはさらに、前記第2のサブセットの第1のデータに対応付けられているプログラミング動作を初期化する前、且つ、前記第1のサブセットの第1のデータに対応付けられているプログラミング動作を初期化した後に、前記第1のサブセットの第2のデータに対応付けられているプログラミング動作を初期化する請求項19に記載のシステム。
JP2011525287A 2008-09-03 2009-09-01 マルチプレーン型フラッシュメモリへのデータのプログラミング方法、これを用いたデバイスおよびシステム Expired - Fee Related JP5360214B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US9387208P 2008-09-03 2008-09-03
US61/093,872 2008-09-03
PCT/US2009/055632 WO2010027983A1 (en) 2008-09-03 2009-09-01 Progamming data into a multi-plane flash memory

Publications (2)

Publication Number Publication Date
JP2012502332A true JP2012502332A (ja) 2012-01-26
JP5360214B2 JP5360214B2 (ja) 2013-12-04

Family

ID=41354040

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011525287A Expired - Fee Related JP5360214B2 (ja) 2008-09-03 2009-09-01 マルチプレーン型フラッシュメモリへのデータのプログラミング方法、これを用いたデバイスおよびシステム

Country Status (6)

Country Link
US (1) US9773557B2 (ja)
EP (1) EP2347417B1 (ja)
JP (1) JP5360214B2 (ja)
KR (1) KR101684583B1 (ja)
TW (2) TWI607310B (ja)
WO (1) WO2010027983A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015215774A (ja) * 2014-05-12 2015-12-03 Tdk株式会社 メモリコントローラ、メモリシステム及びメモリ制御方法
US10175889B2 (en) 2016-03-10 2019-01-08 Toshiba Memory Corporation Memory system capable of accessing memory cell arrays in parallel

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8127091B2 (en) * 2008-10-30 2012-02-28 Micron Technology, Inc. Programming memory cells with additional data for increased threshold voltage resolution
US8255615B1 (en) 2009-01-08 2012-08-28 Marvell International Ltd. Flexible sequence design architecture for solid state memory controller
KR101636248B1 (ko) * 2009-12-10 2016-07-06 삼성전자주식회사 플래시 메모리 장치, 이를 포함하는 플래시 메모리 시스템 및 이의 프로그램 방법
US20110276775A1 (en) * 2010-05-07 2011-11-10 Mosaid Technologies Incorporated Method and apparatus for concurrently reading a plurality of memory devices using a single buffer
TWI452465B (zh) * 2010-08-19 2014-09-11 Zeroplus Technology Co Ltd Method of arranging and processing the electronic measuring device and its tandem parallel data
EP2656216B1 (en) * 2010-12-20 2018-12-19 Marvell World Trade Ltd. Device with descriptor scheduler and corresponding method and system
US8938583B1 (en) 2011-11-16 2015-01-20 Western Digital Technologies, Inc. System and method for concurrently executing data access requests
KR20130072667A (ko) * 2011-12-22 2013-07-02 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 동작방법
KR101942272B1 (ko) 2011-12-27 2019-01-28 삼성전자주식회사 비휘발성 메모리의 제어방법, 이를 구현한 비휘발성 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
KR20130076430A (ko) * 2011-12-28 2013-07-08 삼성전자주식회사 적응적 카피백 방법 및 이를 이용한 저장 장치
CN103426470B (zh) * 2012-05-21 2016-04-20 北京兆易创新科技股份有限公司 提高快闪存储器的页编程速度的方法
KR102025088B1 (ko) 2012-09-03 2019-09-25 삼성전자 주식회사 메모리 컨트롤러 및 상기 메모리 컨트롤러를 포함하는 전자장치
US10445229B1 (en) * 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
KR102128466B1 (ko) 2014-04-14 2020-06-30 삼성전자주식회사 메모리 시스템, 상기 메모리 시스템의 프로그램 방법 및 상기 메모리 시스템의 테스트 방법
KR20160007972A (ko) * 2014-07-10 2016-01-21 삼성전자주식회사 불 휘발성 메모리 장치 및 메모리 컨트롤러, 그리고 그것의 동작 방법
US9443617B2 (en) 2014-07-18 2016-09-13 Kabushiki Kaisha Toshiba Memory system and method of controlling memory system
KR102234592B1 (ko) * 2014-07-29 2021-04-05 삼성전자주식회사 불휘발성 메모리, 데이터 저장 장치, 및 데이터 저장 장치의 동작 방법
US9971647B2 (en) * 2014-07-31 2018-05-15 Winbond Electronics Corporation Apparatus and method for programming ECC-enabled NAND flash memory
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
KR102282196B1 (ko) 2015-04-28 2021-07-27 삼성전자 주식회사 비휘발성 메모리 장치, 메모리 시스템 및 그것의 동작 방법
US10466908B2 (en) * 2015-08-25 2019-11-05 Toshiba Memory Corporation Memory system that buffers data before writing to nonvolatile memory
US10096366B2 (en) 2016-01-28 2018-10-09 Toshiba Memory Corporation Memory system including multi-plane flash memory and controller
US9792995B1 (en) 2016-04-26 2017-10-17 Sandisk Technologies Llc Independent multi-plane read and low latency hybrid read
KR20180045102A (ko) * 2016-10-24 2018-05-04 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 저장 장치의 동작 방법
TWI658402B (zh) * 2017-07-20 2019-05-01 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置
US11188355B2 (en) * 2017-10-11 2021-11-30 Barefoot Networks, Inc. Data plane program verification
US10991445B2 (en) 2018-09-06 2021-04-27 Micron Technology, Inc. Memory sub-system including an in-package sequencer to perform error correction and memory testing operations
US12002525B2 (en) 2018-11-18 2024-06-04 NEO Semiconductor, Inc. Methods and apparatus for NAND flash memory
US11972811B2 (en) 2018-11-18 2024-04-30 NEO Semiconductor, Inc. Methods and apparatus for NAND flash memory
TWI705372B (zh) * 2018-12-26 2020-09-21 旺宏電子股份有限公司 快閃記憶體裝置及其控制方法
US10891077B2 (en) * 2018-12-26 2021-01-12 Macronix International Co., Ltd. Flash memory device and controlling method thereof
JP7293063B2 (ja) 2019-09-19 2023-06-19 キオクシア株式会社 メモリシステムおよび記憶装置
US11662942B2 (en) * 2021-03-16 2023-05-30 Kioxia Corporation Explicit buffer control
WO2023028410A1 (en) * 2021-08-26 2023-03-02 NEO Semiconductor, Inc. Methods and apparatus for nand flash memory
US11742004B2 (en) * 2021-11-24 2023-08-29 Macronix International Co., Ltd. Memory supporting multiple types of operations
US11967383B2 (en) 2022-01-20 2024-04-23 Western Digital Technologies, Inc. Non-volatile memory with enhanced program operation for last state on slow plane

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05281934A (ja) * 1984-07-23 1993-10-29 Texas Instr Inc <Ti> データ処理装置
US20070002621A1 (en) * 2005-06-30 2007-01-04 Hynix Semiconductor Inc. Non-volatile memory device, and multi-page program, read and copyback program method thereof
JP2007517320A (ja) * 2003-12-30 2007-06-28 サンディスク コーポレイション ホストの使用特性に基づいたフラッシュメモリのアドレスマッピングの適応的モード切り換え

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5519847A (en) 1993-06-30 1996-05-21 Intel Corporation Method of pipelining sequential writes in a flash memory
KR100389916B1 (ko) * 2000-08-28 2003-07-04 삼성전자주식회사 메모리 모듈 및 메모리 컨트롤러
DE10215362A1 (de) * 2002-04-08 2003-10-30 Infineon Technologies Ag Integrierter Speicher mit einem Speicherzellenfeld mit mehreren Speicherbänken und Schaltungsanordnung mit einem integrierten Speicher
US7162564B2 (en) * 2002-07-09 2007-01-09 Intel Corporation Configurable multi-port multi-protocol network interface to support packet processing
US8504798B2 (en) * 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US7120051B2 (en) * 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
KR100713984B1 (ko) 2005-09-15 2007-05-04 주식회사 하이닉스반도체 멀티-플레인 구조를 갖는 비휘발성 메모리 장치의 프로그램방법
KR100754226B1 (ko) * 2006-08-22 2007-09-03 삼성전자주식회사 비휘발성 데이터 저장장치의 프로그래밍 방법 및 그 장치
US7280398B1 (en) * 2006-08-31 2007-10-09 Micron Technology, Inc. System and memory for sequential multi-plane page memory operations
KR100806119B1 (ko) * 2006-10-23 2008-02-22 삼성전자주식회사 플래시 메모리 장치 및 플래시 메모리 장치의 멀티-페이지프로그램 방법
KR100773400B1 (ko) * 2006-10-26 2007-11-05 삼성전자주식회사 멀티 비트 플래시 메모리 장치
KR100843218B1 (ko) * 2006-12-18 2008-07-02 삼성전자주식회사 어드레스 쉬프팅을 이용하여 블럭 사이즈를 변경하는플래시 메모리 장치 및 방법
TW201504495A (zh) * 2013-07-24 2015-02-01 zhi-min Xu 洗衣機之除垢刷結構

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05281934A (ja) * 1984-07-23 1993-10-29 Texas Instr Inc <Ti> データ処理装置
JP2007517320A (ja) * 2003-12-30 2007-06-28 サンディスク コーポレイション ホストの使用特性に基づいたフラッシュメモリのアドレスマッピングの適応的モード切り換え
US20070002621A1 (en) * 2005-06-30 2007-01-04 Hynix Semiconductor Inc. Non-volatile memory device, and multi-page program, read and copyback program method thereof
JP2007012240A (ja) * 2005-06-30 2007-01-18 Hynix Semiconductor Inc 不揮発性メモリ装置とそのマルチページプログラム、読み出しおよびコピーバックプログラム方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015215774A (ja) * 2014-05-12 2015-12-03 Tdk株式会社 メモリコントローラ、メモリシステム及びメモリ制御方法
US10175889B2 (en) 2016-03-10 2019-01-08 Toshiba Memory Corporation Memory system capable of accessing memory cell arrays in parallel
US10521129B2 (en) 2016-03-10 2019-12-31 Toshiba Memory Corporation Memory system capable of accessing memory cell arrays in parallel
US10895990B2 (en) 2016-03-10 2021-01-19 Toshiba Memory Corporation Memory system capable of accessing memory cell arrays in parallel

Also Published As

Publication number Publication date
TWI607310B (zh) 2017-12-01
US20100058003A1 (en) 2010-03-04
WO2010027983A1 (en) 2010-03-11
US9773557B2 (en) 2017-09-26
KR20110069049A (ko) 2011-06-22
EP2347417A1 (en) 2011-07-27
TWI607311B (zh) 2017-12-01
TW201544954A (zh) 2015-12-01
EP2347417B1 (en) 2018-04-18
TW201019111A (en) 2010-05-16
JP5360214B2 (ja) 2013-12-04
WO2010027983A9 (en) 2011-03-10
KR101684583B1 (ko) 2016-12-08

Similar Documents

Publication Publication Date Title
JP5360214B2 (ja) マルチプレーン型フラッシュメモリへのデータのプログラミング方法、これを用いたデバイスおよびシステム
US9218284B2 (en) Storage device command interval controller
US7123521B1 (en) Random cache read
US7974139B2 (en) Non-volatile memory generating different read voltages
US9281068B2 (en) Nonvolatile memory and related reprogramming method
US8164952B2 (en) Nonvolatile memory device and related method of programming
US9524781B2 (en) Nonvolatile memory device and operating method thereof
US10296233B2 (en) Method of managing message transmission flow and storage device using the method
CN111104059A (zh) 存储器控制器及操作该存储器控制器的方法
KR20130060749A (ko) 불휘발성 메모리 장치, 그것의 읽기 방법 및 그것을 포함하는 데이터 저장 장치
US9152553B1 (en) Generic command descriptor for controlling memory devices
US8499134B2 (en) Selective register reset
US10073741B2 (en) Memory system with reduced program time and method of operating the same
US10599562B2 (en) Nonvolatile memory device configured to be accessed without block address and method of operating the same
US20230134281A1 (en) Shortened single-level cell memory programming
CN112053711B (zh) 存储器装置以及该存储器装置的操作方法
KR20160144557A (ko) 읽기 데이터를 전송 단위로 전송하는 불휘발성 메모리 모듈, 스토리지 장치, 및 전자 장치

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130403

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130430

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130716

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: 20130806

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130819

R150 Certificate of patent or registration of utility model

Ref document number: 5360214

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

LAPS Cancellation because of no payment of annual fees
R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350