JP2009026301A - ソリッドステートディスクコントローラ及びソリッドステートディスクコントローラのデータ処理方法 - Google Patents

ソリッドステートディスクコントローラ及びソリッドステートディスクコントローラのデータ処理方法 Download PDF

Info

Publication number
JP2009026301A
JP2009026301A JP2008156807A JP2008156807A JP2009026301A JP 2009026301 A JP2009026301 A JP 2009026301A JP 2008156807 A JP2008156807 A JP 2008156807A JP 2008156807 A JP2008156807 A JP 2008156807A JP 2009026301 A JP2009026301 A JP 2009026301A
Authority
JP
Japan
Prior art keywords
sector
memory
solid state
bitmap value
read
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
JP2008156807A
Other languages
English (en)
Other versions
JP5368735B2 (ja
Inventor
Tae Hack Lee
太 學 李
Kyu Wook Han
奎 旭 韓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2009026301A publication Critical patent/JP2009026301A/ja
Application granted granted Critical
Publication of JP5368735B2 publication Critical patent/JP5368735B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

【課題】最適化された性能を有するソリッドステートディスクコントローラを提供する。
【解決手段】ディスクコントローラは、セクタビットマップ値を保存するメモリ領域を含む揮発性メモリと、メモリコントローラと、を含む。メモリコントローラは、読み取り動作時、ポインタが指示するメモリ領域に保存されたセクタビットマップ値を読み取り、該読み取られたセクタビットマップ値に基づいて外部の不揮発性メモリのページを構成する多数のセクタのうち、少なくとも一つのセクタをランダムデータ出力動作で選択的に読み取る。
【選択図】図1

Description

本発明は、データ保存装置の制御技術に係り、特に、ソリッドステートディスクコントローラとソリッドステートディスクコントローラのデータ処理方法とに関する。
コンピュータシステムのような電子システムのデータ保存装置として磁気ディスクが伝統的に使われてきた。しかし、半導体技術の発展につれてコンピュータシステムと携帯用装置で磁気ディスクの代わりにEEPROM基盤(例えば、NAND型EEPROMまたはNOR型EEPROM)の不揮発性メモリをデータ保存装置として使うソリッドステートディスク(Solid State Disk:以下、SSD)が次第に広く使われている。
SSDは、ハードディスクドライブ(Hard Disk Drive:以下、HDD)で必須的に使われるモータのような機械的な駆動装置を含んでいないので、動作時にSSDでは、熱とノイズとがほとんど発生しない。また、SSDは、速いアクセスレート(fast access rate)、高集積度、及び外部衝撃に対する安定性のためにデータ保存装置として脚光を浴びている。また、SSDのデータ伝送速度は、HDDのデータ伝送速度よりかなり早い。
データ保存装置としてSSDが使われる時、コントローラは、ホストとEEPROM基盤の不揮発性メモリとの間でデータ伝送を制御する。しかし、コントローラは、毎ページ(page)のデータを処理する度にファームウェア(firmware)の制御下で不揮発性メモリとデータを送受信するので、SSDの性能は低下する。
本発明が果たそうとする技術的な課題は、最適化された性能を有するソリッドステートディスクコントローラとソリッドステートディスクコントローラのデータ処理方法とを提供することである。また、本発明が果たそうとする技術的な課題は、ファームウェアの介入なしにハードウェアのみでインターリービング動作を実行することができるデータ処理方法とデータ処理装置とを提供することである。
前記技術的課題を果たすためのソリッドステートディスクコントローラのデータ処理方法は、読み取り動作時、ポインタが指示する揮発性メモリのメモリ領域に保存されたセクタビットマップ値を読み取る段階と、読み取られたセクタビットマップ値に基づいて、外部の不揮発性メモリのページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取る段階と、を含む。
前記技術的課題を果たすためのソリッドステートディスクコントローラのデータ処理方法は、読み取り動作時、ポインタが指示する揮発性メモリ内の第1メモリ領域に保存された第1セクタビットマップ値に基づいて、第1不揮発性メモリの第1ページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取る(a)段階と、前記揮発性メモリ内の第2メモリ領域に保存された第2セクタビットマップ値に基づいて、第2不揮発性メモリの第2ページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取る(b)段階と、を含む。
前記ソリッドステートディスクコントローラのデータ処理方法は、インターリービング読み取り動作のために、読み取り命令を前記第1不揮発性メモリと前記第2不揮発性メモリとが接続されたチャンネルに伝送する段階をさらに含む。
前記(a)段階は、前記第1メモリ領域に保存された前記第1セクタビットマップ値を読み取る段階と、読み取られた第1セクタビットマップ値を解析し、該解析結果に基づいて前記第1ページを構成する前記多数のセクタのうち、前記少なくとも一つのセクタを少なくとも一つの第1ランダムデータ出力命令に基づいて選択的に読み取る段階と、を含む。
前記(b)段階は、前記第2メモリ領域に保存された前記第2セクタビットマップ値を読み取る段階と、読み取られた第2セクタビットマップ値を解析し、該解析結果に基づいて前記第2ページを構成する前記多数のセクタのうち、前記少なくとも一つのセクタを少なくとも一つの第2ランダムデータ出力命令に基づいて選択的に読み取る段階と、を含む。
前記技術的課題を果たすためのソリッドステートディスクコントローラのデータ処理方法は、プログラム動作時、ポインタが指示する揮発性メモリのメモリ領域に保存されたセクタビットマップ値を読み取る段階と、読み取られたセクタビットマップ値に基づいて、ホストから出力されたデータの少なくとも一つのセクタを外部の不揮発性メモリのページに選択的にプログラムする段階と、を含む。
前記技術的課題を果たすためのソリッドステートディスクコントローラは、セクタビットマップ値を保存するメモリ領域を含む揮発性メモリと、メモリコントローラと、を含む。前記メモリコントローラは、読み取り動作時、ポインタが指示する前記メモリ領域に保存された前記セクタビットマップ値に基づいて、外部の不揮発性メモリのページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取る。
前記メモリコントローラは、前記ポインタを保存するための第1レジスタと、第2レジスタと、ステートマシンと、を含む。前記ステートマシンは、前記ポインタに基づいて前記セクタビットマップ値を前記メモリ領域から前記第2レジスタに読み取り、前記第2レジスタに保存されたセクタビットマップ値を解析し、該解析結果に基づいて前記多数のセクタのうち、前記少なくとも一つのセクタを少なくとも一つのランダムデータ出力命令に基づいて、前記外部の不揮発性メモリから読み取る。
前記技術的課題を果たすためのソリッドステートディスクコントローラは、セクタビットマップ値を保存するメモリ領域を含む揮発性メモリと、メモリコントローラと、を含む。前記メモリコントローラは、プログラム動作時、ポインタが指示する前記メモリ領域に保存された前記セクタビットマップ値に基づいて、ホストから出力されたデータの少なくとも一つのセクタを外部の不揮発性メモリのページに選択的にプログラムする。
前記技術的課題を果たすためのソリッドステートディスクコントローラは、第1セクタビットマップ値を保存する第1メモリ領域と第2セクタビットマップ値を保存する第2メモリ領域とを含む揮発性メモリと、メモリコントローラと、を含む。前記メモリコントローラは、読み取り動作時、ポインタが指示する前記第1メモリ領域に保存された前記第1セクタビットマップ値に基づいて、第1外部の不揮発性メモリの第1ページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取り、前記第2メモリ領域に保存された前記第2セクタビットマップ値に基づいて、第2外部の不揮発性メモリの第2ページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取る。
前記技術的課題を果たすためのデータ保存装置は、不揮発性メモリと、ソリッドステートディスクコントローラと、前記不揮発性メモリと前記ソリッドステートディスクコントローラとの間に接続されたチャンネルと、を含む。前記ソリッドステートディスクコントローラは、セクタビットマップ値を保存するメモリ領域を含む揮発性メモリと、メモリコントローラと、を含む。前記メモリコントローラは、読み取り動作時、ポインタが指示する前記メモリ領域に保存された前記セクタビットマップ値に基づいて、前記不揮発性メモリのページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取る。
本発明の実施形態によるソリッドステートディスクコントローラは、インターリービング読み取り動作時にファームウェアの介入なしに揮発性メモリの多数のメモリ領域のそれぞれに保存されたセクタビットマップ値を自動で読み取り、特定のページから特定の一つのセクタまたはそれ以上のセクタのみを選択的に読み取ることができる。したがって、ソリッドステートディスクコントローラの性能は向上する。
また、本発明の実施形態によるソリッドステートディスクコントローラは、インターリービング書き込み動作時にファームウェアの介入なしに揮発性メモリの多数のメモリ領域のそれぞれに保存されたセクタビットマップ値を自動で読み取り、該読み取られたセクタビットマップ値に基づいて、ホストから出力されたデータのうちから一つのセクタまたはそれ以上のセクタを選択的に特定のページに書き込むかプログラムすることができる。したがって、コントローラの性能が向上する効果がある。
以下、添付した図面を参照して、本発明を詳しく説明する。
図1は、本発明の実施形態によるソリッドステートコントローラを含むシステムのブロック図である。図1を参照すれば、コンピュータシステムまたは移動装置のようなシステム10は、ホスト20、SSDコントローラ30、及び不揮発性メモリ装置50を含む。SSDは、不揮発性メモリ装置50、またはSSDコントローラ30と不揮発性メモリ装置50とを含む。
ホスト20は、動作命令(例えば、読み取り命令、プログラム命令、または消去命令など)とアドレス(addresses)とをホストインターフェース49とシステムバス(BUS)とを介してSSDコントローラ30に出力する。他の実施形態において、ホスト20は、動作命令とアドレスとをホストインターフェース49を介して直接SSDコントローラ30に出力することもできる。SSDコントローラ30は、揮発性メモリ31、メモリコントローラ(または、フラッシュメモリコントローラ)39、バッファメモリ47、及びホストインターフェース49を含む。
DRAMまたはSRAMとして具現可能な揮発性メモリ31は、それぞれがセクタビットマップ値を保存する多数のメモリ領域(33、35、37、…)を含む。多数のメモリ領域(33、35、37、…)のそれぞれに保存されたセクタビットマップ値は、別途のハードウェアまたは別途のファームウェアを用いてプログラム(または、設定)される。
メモリコントローラ39は、セクタビットマップポインタを保存する第1レジスタ(または、セクタビットマップポインタレジスタ)41、セクタビットマップポインタに基づいて、揮発性メモリ31から出力されたセクタビットマップ値を保存する第2レジスタ(または、セクタビットマップレジスタ)43、及びステートマシン(state machine)45を含む。
ステートマシン45は、多数の制御信号(CLE(Command Latch Enable signal)、CE(Chip Enable signal)、WE(Write Enable signal)、ALE(Address Latch Enable signal)、R/B(Ready/Busy Output signal)、RE(Write Enable signal)、など)を使って多数のチャンネル51、57、63、及び69のうちから対応する少なくとも一つのチャンネルを介して不揮発性メモリ装置50にデータDATAを書き込むか、不揮発性メモリ装置50からデータDATAを読み出す。
ステートマシン45によって不揮発性メモリ装置50から読み取られたデータDATAは、システムバスBUSを介してバッファメモリ47に臨時に保存することができる。バッファメモリ47は、ホスト20と不揮発性メモリ装置50との間で伝送されるデータDATAを臨時に保存する。ホストインターフェース49は、ホスト20との間でデータDATAを送受信する。例えば、ホストインターフェース49は、直列ATA(Serial Advanced Technology Attachment)方式、並列ATA(Parallel Advanced Technology Attachment)方式、または他の通信プロトコルを使うことができる。
SSDコントローラ30と不揮発性メモリ装置50は、多数のチャンネル51、57、63、及び69のうちから対応する少なくとも一つのチャンネルを介してデータDATAを送受信する。例えば、それぞれのチャンネル51、57、63、及び69には、二つのチップ53と55、59と61、65と67、及び71と73が接続可能である。しかし、それぞれのチャンネル51、57、63、及び69に接続されるチップの数は、一つまたは二つ以上にもなり得る。
それぞれのチップ53、55、59、61、65、67、71、及び73は、多数のメモリセルを含むメモリセルアレイ(図示せず)とページバッファ(図示せず)とを含む。これら多数のメモリセルのそれぞれは、フラッシュEEPROMとして具現可能である。フラッシュEEPROMは、SLC(Signle Level Cell)またはMLC(Multi Level Cell)として具現可能である。
図2は、図1に図示されたSSDコントローラのデータ処理方法を説明するためのフローチャートであり、図3は、図1に図示されたSSDコントローラのランダムデータ出力動作を説明するための図である。ここで、tRは、メモリセルアレイのメモリセルからページバッファまでのデータ伝送時間と定義される。
図1、図2、及び図3を参照して、第1チャンネル51に接続された第1チップ53の第1ページを構成するn(nは自然数、例えば、n=8)個のセクタのうちからセクタビットマップ値が“1”である少なくとも一つのセクタのみを読み取るランダムデータ出力動作(random data output operation)を説明すれば、次の通りである。ここで、一つのセクタは、m(mは自然数、例えば、m=512、または1024)バイトであり得る。ステートマシン45は、ホスト20から出力された読み取り命令に応答して第1チャンネル51に接続された第1チップ53の第1ページに保存されたデータDATAを読み取るために、多数の制御信号CLE、CE、WE、ALE、R/B、RE、などを発生させる。第1チップ53は、多数の制御信号CLE、CE、WE、ALE、R/B、RE、などを解析して読み取り命令READを実行する。
ステートマシン45は、第1レジスタ41に保存されたセクタビットマップポインタを読み取り、該読み取られたセクタビットマップポインタが指示する揮発性メモリ31の第1メモリ領域33に保存されたセクタビットマップ値(例えば、01100010)を読み取り、これらを第2レジスタ43に保存する(図2のS10)。例えば、セクタビットマップ値(例えば、01100010)のうちから“1”は有効なセクタ(valid sector)を意味し、“0”は無効なセクタ(invalid sector)を意味する。しかし、その反対であり得る。
ステートマシン45は、第2レジスタ43に保存されたセクタビットマップ値(例えば、01100010)を読み取って解析し、該解析結果に基づいて第1ページ(または、第1チップ53のページバッファ)からセクタ2、セクタ6、及びセクタ7を順次に読み取るために、セクタアドレスとランダムデータ出力命令(Random Data Output)とを順次に出力する(図2のS20、及び図3の(a))。すなわち、ステートマシン45は、第2レジスタ43に保存されたセクタビットマップ値(例えば、01100010)のうちからセクタビットマップ値が“1”であるセクタ(例えば、セクタ2、セクタ6、及びセクタ7)のみを第1ページ(または、第1チップ53のページバッファ)からランダムデータ出力動作によって読み取る。
ステートマシン45は、読み取られたセクタ2、セクタ6、及びセクタ7をバッファメモリ47に保存するために、システムバスBUSを介してバッファメモリ47に伝送することができる。また、ステートマシン45は、読み取られたセクタ2、セクタ6、及びセクタ7をバッファメモリ47に保存するために、直接バッファメモリ47に伝送することもできる。したがって、本発明の実施形態によるSSDコントローラ30は、一つのページからすべてのセクタを読み取るのではなく、セクタビットマップ値に基づいて一つのページから少なくとも一つの有効なセクタのみを選択的に読み取ることができるので、SSDコントローラ30の性能は向上する。
図4は、図1に図示されたSSDコントローラによって実行されるハードウェアインターリービング読み取り動作を説明するためのフローチャートであり、図5は、図1に図示されたSSDコントローラのハードウェアインターリービング読み取り動作のためのランダムデータ出力動作を説明するための図である。図1、図4、及び図5を参照して、第1チャンネル51に接続された第1チップ53の第1ページを構成するn個のセクタのうちからセクタビットマップ値が“1”であるセクタと第1チャンネル51に接続された第5チップ55の第2ページを構成するn個のセクタのうちからセクタビットマップ値が“1”であるセクタのみとをインターリービング動作(interleaving operation)で読み取るランダムデータ出力動作(random data output operation)を説明すれば、次の通りである。
ステートマシン45は、ホスト20から出力された読み取り命令(例えば、図5のREADに相応する)に応答して第1チップ53の第1ページに保存されたデータと第5チップ55の第2ページに保存されたデータとを読み取るために、多数の制御信号CLE、CE、WE、ALE、R/B、RE、などを第1チャンネル51に出力する(図5(a)、及び図4のS11)。
ステートマシン45は、第1レジスタ41に保存されたセクタビットマップポインタを読み取り、該読み取られたセクタビットマップポインタが指示する揮発性メモリ31の第1メモリ領域33に保存された第1セクタビットマップ値(例えば、01100010)を読み取り、これらを第2レジスタ43に保存し、第2レジスタ43に保存された第2セクタビットマップ値(例えば、10101000)に基づいて、第1チップ53の第1ページを構成するn個のセクタのうちからセクタ2、セクタ6、及びセクタ7をランダムデータ出力動作で読み取る(図5(a)、及び図4のS21)。
すなわち、ステートマシン45は、第2レジスタ43に保存されたセクタビットマップ値(例えば、01100010)のうちからセクタビットマップ値が“1”であるセクタ(例えば、セクタ2、セクタ6、及びセクタ7)のみを第1ページ(または、第1チップ53のページバッファ、例えば、図5(b))からランダムデータ出力動作で読み取る。ステートマシン45は、読み取られたセクタ2、セクタ6、及びセクタ7をバッファメモリ47に保存するために、システムバスBUSを介してまたは直接バッファメモリ47に伝送することができる。
第1ページに対するランダムデータ出力動作が終われば、ステートマシン45は、揮発性メモリ31の第2メモリ領域35に保存された第2セクタビットマップ値(例えば、10101000)を読み取り、これらを第2レジスタ43に保存し、第2レジスタ43に保存された第2セクタビットマップ値(例えば、10101000)に基づいて、第2チップ55の第2ページを構成するn個のセクタのうちからセクタ12、セクタ14、及びセクタ16のみを第2ページ(または、第2チップ55のページバッファ)からランダムデータ出力動作で読み取る(図5(b)、及びS31)。第2メモリ領域35は、第1メモリ領域33を指示するセクタビットマップポインタを+1または−1に増加または減少させて指示されるメモリ領域であり得る。
すなわち、ステートマシン45は、第2レジスタ43に保存されたセクタビットマップ値(例えば、10101000)のうちからセクタビットマップ値が“1”であるセクタ(例えば、セクタ12、セクタ14、及びセクタ16)のみを第2ページ(または、第2チップ55のページバッファ)からランダムデータ出力動作で読み取る。ステートマシン45は、読み取られたセクタ12、セクタ14、及びセクタ16をバッファメモリ47に保存するために、システムバスBUSを介してまたは直接バッファメモリ47に伝送する。
したがって、本発明の実施形態によるSSDコントローラ30は、インターリービング読み取り動作時にファームウェアの介入なしに揮発性メモリ31の多数のメモリ領域のそれぞれに保存されたセクタビットマップ値を自動で読み取り、特定のページから特定の一つのセクタまたはそれ以上のセクタのみを選択的に読み取ることができるので、コントローラ30の性能は向上する。本明細書では、説明の便宜上、読み取り動作を中心に説明したが、本発明の実施形態によるポインタを利用したデータ処理方法は、書き込み動作(write operation)またはプログラム動作(program operation)にそのまま適用可能である。
例えば、書き込み動作(または、プログラム動作)時、ステートマシン45は、第1レジスタ41に保存されたセクタビットマップポインタを読み取り、該読み取られたセクタビットマップポインタが指示する揮発性メモリ31の第1メモリ領域33に保存されたセクタビットマップ値(例えば、01100010)を読み取り、これらを第2レジスタ43に保存する。
そして、ステートマシン45は、第2レジスタ43に保存されたセクタビットマップ値(例えば、01100010)を読み取って解析し、該解析結果(例えば、セクタビットマップ値が“1”であるかまたは“0”であるか)に基づいて、ホスト20から出力されたデータのうちからセクタ2、セクタ6、及びセクタ7のみをチャンネル51を介して第1チップ53に選択的に書き込み(または、プログラム)をすることができる。
また、ステートマシン45は、第1チャンネル51に接続された第1チップ53の第1ページにセクタビットマップ値が“1”である少なくとも一つのセクタと第1チャンネル51に接続された第5チップ55の第2ページにセクタビットマップ値が“1”である少なくとも一つのセクタのみとをインターリービング動作で書き込み動作(または、プログラム動作)を実行しうる。
例えば、ステートマシン45は、ホスト20から出力された書き込み命令(または、プログラム命令)に応答して第1レジスタ41に保存されたセクタビットマップポインタを読み取る。そして、ステートマシン45は、読み取られたセクタビットマップポインタが指示する揮発性メモリ31の第1メモリ領域33に保存された第1セクタビットマップ値(例えば、01100010)を読み取り、これらを第2レジスタ43に保存し、第2レジスタ43に保存された第2セクタビットマップ値(例えば、01100010)に基づいて、ホスト20から出力されたデータのセクタ2、セクタ6、及びセクタ7を選択的に第1チップ53の第1ページに書き込むことができる。
そして、第1ページに対する書き込み(または、プログラム)動作が終われば、ステートマシン45は、揮発性メモリ31の第2メモリ領域35に保存された第2セクタビットマップ値(例えば、10101000)を読み取り、これらを第2レジスタ43に保存し、第2レジスタ43に保存された第2セクタビットマップ値(例えば、10101000)に基づいて、ホスト20から出力されたデータのセクタ12、セクタ14、及びセクタ16のみを選択的に第2チップ55の第2ページに書き込むことができる。
したがって、本発明の実施形態によるSSDコントローラ30は、インターリービング書き込み(または、プログラム)動作時にファームウェアの介入なしに揮発性メモリ31の多数のメモリ領域のそれぞれに保存されたセクタビットマップ値を自動で読み取り、該読み取られたセクタビットマップ値に基づいてホストから出力されたデータのうちから一つのセクタまたはそれ以上のセクタを選択的に特定のページに書き込むかプログラムすることができる。したがって、すべてのデータを特定のページに不要に書き込まなくてもよく、プログラムしなくても良いので、コントローラ30の性能は向上する。
本発明は、図面に図示された一実施形態を参考にして説明されたが、これは例示的なものに過ぎず、当業者ならば、これより多様な変形及び均等な他実施形態が可能であるという点を理解できるであろう。したがって、本発明の真の技術的保護範囲は、特許請求の範囲の技術的思想によって決まるべきである。
本発明の実施形態による装置と方法は、コントローラ及びデータ保存装置で利用できる。
本発明の詳細な説明で引用される図面をより十分に理解するために、各図面の詳細な説明が提供される。
本発明の実施形態によるソリッドステートディスクコントローラを含むシステムのブロック図である。 図1に図示されたソリッドステートディスクコントローラのデータ処理方法を説明するためのフローチャートである。 図1に図示されたソリッドステートディスクコントローラのランダムデータ出力動作を説明するための図である。 図1に図示されたソリッドステートディスクコントローラによって実行されるハードウェアインターリービング読み取り動作を説明するためのフローチャートである。 図1に図示されたソリッドステートディスクコントローラのハードウェアインターリービング読み取り動作のためのランダムデータ出力動作を説明するための図面である。
符号の説明
30:SSDコントローラ
31:揮発性メモリ
39:メモリコントローラ
41:第1レジスタ
43:第2レジスタ
45:ステートマシン
47:バッファメモリ

Claims (15)

  1. 読み取り動作時、ポインタが指示する揮発性メモリのメモリ領域に保存されたセクタビットマップ値を読み取る段階と、
    読み取られたセクタビットマップ値に基づいて、外部の不揮発性メモリのページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取る段階と、を含むことを特徴とするソリッドステートディスクコントローラのデータ処理方法。
  2. 前記少なくとも一つのセクタを選択的に読み取る段階は、少なくとも一つのランダムデータ出力命令に基づいて実行されることを特徴とする請求項1に記載のソリッドステートディスクコントローラのデータ処理方法。
  3. 前記セクタビットマップ値のそれぞれは、前記多数のセクタのそれぞれが有効なデータであるか否かを表わすことを特徴とする請求項1に記載のソリッドステートディスクコントローラのデータ処理方法。
  4. 前記ソリッドステートディスクコントローラのデータ処理方法は、選択的に読み取られた少なくとも一つのセクタをバッファメモリに保存する段階をさらに含むことを特徴とする請求項1に記載のソリッドステートディスクコントローラのデータ処理方法。
  5. 読み取り動作時、ポインタが指示する揮発性メモリ内の第1メモリ領域に保存された第1セクタビットマップ値に基づいて、第1不揮発性メモリの第1ページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取る(a)段階と、
    前記揮発性メモリ内の第2メモリ領域に保存された第2セクタビットマップ値に基づいて、第2不揮発性メモリの第2ページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取る(b)段階と、を含むことを特徴とするソリッドステートディスクコントローラのデータ処理方法。
  6. 前記ソリッドステートディスクコントローラのデータ処理方法は、インターリービング読み取り動作のために、読み取り命令を前記第1不揮発性メモリと前記第2不揮発性メモリとが接続されたチャンネルに伝送する段階をさらに含むことを特徴とする請求項5に記載のソリッドステートディスクコントローラのデータ処理方法。
  7. 前記(a)段階は、
    前記第1メモリ領域に保存された前記第1セクタビットマップ値を読み取る段階と、
    読み取られた第1セクタビットマップ値を解析し、該解析結果に基づいて前記第1ページを構成する前記多数のセクタのうち、前記少なくとも一つのセクタを少なくとも一つの第1ランダムデータ出力命令に基づいて選択的に読み取る段階と、を含むことを特徴とする請求項5に記載のソリッドステートディスクコントローラのデータ処理方法。
  8. 前記(b)段階は、
    前記第2メモリ領域に保存された前記第2セクタビットマップ値を読み取る段階と、
    読み取られた第2セクタビットマップ値を解析し、該解析結果に基づいて前記第2ページを構成する前記多数のセクタのうち、前記少なくとも一つのセクタを少なくとも一つの第2ランダムデータ出力命令に基づいて選択的に読み取る段階と、を含むことを特徴とする請求項7に記載のソリッドステートディスクコントローラのデータ処理方法。
  9. プログラム動作時、ポインタが指示する揮発性メモリのメモリ領域に保存されたセクタビットマップ値を読み取る段階と、
    読み取られたセクタビットマップ値に基づいて、ホストから出力されたデータの少なくとも一つのセクタを外部の不揮発性メモリのページに選択的にプログラムする段階と、を含むことを特徴とするソリッドステートディスクコントローラのデータ処理方法。
  10. セクタビットマップ値を保存するメモリ領域を含む揮発性メモリと、
    読み取り動作時、ポインタが指示する前記メモリ領域に保存された前記セクタビットマップ値に基づいて、外部の不揮発性メモリのページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取るメモリコントローラと、を含むことを特徴とするソリッドステートディスクコントローラ。
  11. 前記メモリコントローラは、
    前記ポインタを保存するための第1レジスタと、
    第2レジスタと、
    前記ポインタに基づいて前記セクタビットマップ値を前記メモリ領域から前記第2レジスタに読み取り、前記第2レジスタに保存されたセクタビットマップ値を解析し、該解析結果に基づいて前記多数のセクタのうち、前記少なくとも一つのセクタを少なくとも一つのランダムデータ出力命令に基づいて、前記外部の不揮発性メモリから読み取るステートマシンと、を含むことを特徴とする請求項10に記載のソリッドステートディスクコントローラ。
  12. セクタビットマップ値を保存するメモリ領域を含む揮発性メモリと、
    プログラム動作時、ポインタが指示する前記メモリ領域に保存された前記セクタビットマップ値に基づいて、ホストから出力されたデータの少なくとも一つのセクタを外部の不揮発性メモリのページに選択的にプログラムするメモリコントローラと、を含むことを特徴とするソリッドステートディスクコントローラ。
  13. 第1セクタビットマップ値を保存する第1メモリ領域と第2セクタビットマップ値を保存する第2メモリ領域とを含む揮発性メモリと、
    読み取り動作時、ポインタが指示する前記第1メモリ領域に保存された前記第1セクタビットマップ値に基づいて、第1外部の不揮発性メモリの第1ページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取り、前記第2メモリ領域に保存された前記第2セクタビットマップ値に基づいて、第2外部の不揮発性メモリの第2ページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取るメモリコントローラと、を含むことを特徴とするソリッドステートディスクコントローラ。
  14. 前記読み取り動作がインターリービング読み取り動作である場合、前記メモリコントローラは、前記第1外部の不揮発性メモリと前記第2外部の不揮発性メモリとが接続されたチャンネルに読み取り命令を出力することを特徴とする請求項13に記載のソリッドステートディスクコントローラ。
  15. 不揮発性メモリと、
    ソリッドステートディスクコントローラと、
    前記不揮発性メモリと前記ソリッドステートディスクコントローラとの間に接続されたチャンネルと、を含み、
    前記ソリッドステートディスクコントローラは、
    セクタビットマップ値を保存するメモリ領域を含む揮発性メモリと、
    読み取り動作時、ポインタが指示する前記メモリ領域に保存された前記セクタビットマップ値に基づいて、前記不揮発性メモリのページを構成する多数のセクタのうち、少なくとも一つのセクタを選択的に読み取るメモリコントローラと、を含むことを特徴とするデータ保存装置。
JP2008156807A 2007-07-19 2008-06-16 ソリッドステートディスクコントローラ及びソリッドステートディスクコントローラのデータ処理方法 Active JP5368735B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2007-0071998 2007-07-19
KR1020070071998A KR101424782B1 (ko) 2007-07-19 2007-07-19 솔리드 스테이트 디스크 컨트롤러 및 솔리드 스테이트디스크 컨트롤러의 데이터 처리 방법

Publications (2)

Publication Number Publication Date
JP2009026301A true JP2009026301A (ja) 2009-02-05
JP5368735B2 JP5368735B2 (ja) 2013-12-18

Family

ID=40176125

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008156807A Active JP5368735B2 (ja) 2007-07-19 2008-06-16 ソリッドステートディスクコントローラ及びソリッドステートディスクコントローラのデータ処理方法

Country Status (6)

Country Link
US (1) US8738842B2 (ja)
JP (1) JP5368735B2 (ja)
KR (1) KR101424782B1 (ja)
CN (1) CN101349963B (ja)
DE (1) DE102008033518B4 (ja)
TW (1) TWI479502B (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101070511B1 (ko) * 2009-03-20 2011-10-05 (주)인디링스 Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
US20110252435A1 (en) * 2009-07-13 2011-10-13 Juhnho Park Disk drive
US8164936B2 (en) * 2009-10-14 2012-04-24 Seagate Technology Llc Switched memory devices
US9229809B2 (en) 2011-09-11 2016-01-05 Microsoft Technology Licensing Llc Nonvolatile media journaling of verified data sets
US8456972B2 (en) * 2011-09-12 2013-06-04 Microsoft Corporation Efficient access to storage devices with usage bitmaps
CN103377130A (zh) * 2012-04-13 2013-10-30 日立(中国)研究开发有限公司 数据存储设备以及相应的数据存储方法
CN106155578A (zh) * 2015-04-27 2016-11-23 四川效率源信息安全技术有限责任公司 手机闪存芯片数据重组的方法
KR102465321B1 (ko) 2016-03-02 2022-11-11 에스케이하이닉스 주식회사 데이터 저장 장치
KR102535104B1 (ko) * 2018-03-19 2023-05-23 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20190128392A (ko) * 2018-05-08 2019-11-18 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN110262753A (zh) * 2019-05-30 2019-09-20 合肥致存微电子有限责任公司 一种加快命令响应的方法、系统以及ssd
CN114063933B (zh) * 2021-12-02 2022-06-28 深圳市宝佳乐电子科技有限公司 区块管理方法、存储器控制器和存储器存储装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6481028A (en) * 1987-09-22 1989-03-27 Fanuc Ltd Data memory system
JPH0877099A (ja) * 1994-09-02 1996-03-22 Fuji Xerox Co Ltd Dmaコントローラ
JPH1165941A (ja) * 1997-08-11 1999-03-09 Sony Corp 記憶装置
JP2000285017A (ja) * 1999-03-31 2000-10-13 Seiko Epson Corp 記憶装置
JP2002109490A (ja) * 2000-09-29 2002-04-12 Toshiba Corp メモリカードおよびクロック制御回路
JP2005196764A (ja) * 2003-12-31 2005-07-21 Samsung Electronics Co Ltd データをセクタ単位にランダムに入出力することができるフラッシュメモリシステム
US20050193161A1 (en) * 2004-02-26 2005-09-01 Lee Charles C. System and method for controlling flash memory
JP2006178535A (ja) * 2004-12-20 2006-07-06 Sony Corp 暗号化データ記録装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628261A (ja) 1992-04-17 1994-02-04 Hitachi Ltd データ転送方法及び装置
JPH07262059A (ja) 1994-03-25 1995-10-13 Sony Corp ファイル管理方法
JPH07319636A (ja) 1994-05-27 1995-12-08 Fuji Xerox Co Ltd 磁気ディスクのデータ格納制御装置
GB2291990A (en) * 1995-09-27 1996-02-07 Memory Corp Plc Flash-memory management system
JP3063669B2 (ja) 1997-04-04 2000-07-12 三菱電機株式会社 情報処理システム
US5956743A (en) * 1997-08-25 1999-09-21 Bit Microsystems, Inc. Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations
US7702831B2 (en) * 2000-01-06 2010-04-20 Super Talent Electronics, Inc. Flash memory controller for electronic data flash card
US20050114587A1 (en) 2003-11-22 2005-05-26 Super Talent Electronics Inc. ExpressCard with On-Card Flash Memory with Shared Flash-Control Bus but Separate Ready Lines
US7394661B2 (en) 2004-06-30 2008-07-01 Super Talent Electronics, Inc. System and method for providing a flash memory assembly
US20060075395A1 (en) * 2004-10-01 2006-04-06 Lee Charles C Flash card system
US7089379B1 (en) * 2002-06-28 2006-08-08 Emc Corporation Large high bandwidth memory system
TWI278851B (en) 2003-02-25 2007-04-11 Lg Electronics Inc Recording medium having data structure for managing at least a data area of the recording medium and recording and reproducing methods and apparatuses
EP1607879A1 (en) * 2004-06-14 2005-12-21 Dialog Semiconductor GmbH Memory interleaving in a computer system
KR100621631B1 (ko) 2005-01-11 2006-09-13 삼성전자주식회사 반도체 디스크 제어 장치

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6481028A (en) * 1987-09-22 1989-03-27 Fanuc Ltd Data memory system
JPH0877099A (ja) * 1994-09-02 1996-03-22 Fuji Xerox Co Ltd Dmaコントローラ
JPH1165941A (ja) * 1997-08-11 1999-03-09 Sony Corp 記憶装置
JP2000285017A (ja) * 1999-03-31 2000-10-13 Seiko Epson Corp 記憶装置
JP2002109490A (ja) * 2000-09-29 2002-04-12 Toshiba Corp メモリカードおよびクロック制御回路
JP2005196764A (ja) * 2003-12-31 2005-07-21 Samsung Electronics Co Ltd データをセクタ単位にランダムに入出力することができるフラッシュメモリシステム
US20050193161A1 (en) * 2004-02-26 2005-09-01 Lee Charles C. System and method for controlling flash memory
JP2006178535A (ja) * 2004-12-20 2006-07-06 Sony Corp 暗号化データ記録装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNB199700296001; 青木 由直 YOSHINAO AOKI: マイクロコンピュータ講義 第1版, 19831124, p.105-107,111-112,128, 株式会社昭晃堂 *
JPN6013010347; 青木 由直 YOSHINAO AOKI: マイクロコンピュータ講義 第1版, 19831124, p.105-107,111-112,128, 株式会社昭晃堂 *

Also Published As

Publication number Publication date
DE102008033518A1 (de) 2009-02-05
JP5368735B2 (ja) 2013-12-18
KR20090008766A (ko) 2009-01-22
TW200905696A (en) 2009-02-01
CN101349963A (zh) 2009-01-21
KR101424782B1 (ko) 2014-08-04
US8738842B2 (en) 2014-05-27
US20090024791A1 (en) 2009-01-22
DE102008033518B4 (de) 2021-10-14
CN101349963B (zh) 2013-03-06
TWI479502B (zh) 2015-04-01

Similar Documents

Publication Publication Date Title
JP5368735B2 (ja) ソリッドステートディスクコントローラ及びソリッドステートディスクコントローラのデータ処理方法
KR101581857B1 (ko) 불휘발성 메모리 시스템 및 그것의 인터리브 유닛 구성 방법
KR101891164B1 (ko) 프로그램 스케줄러를 포함하는 플래시 메모리 장치
KR101431205B1 (ko) 캐시 메모리 장치 및 캐시 메모리 장치의 데이터 처리 방법
US11086568B2 (en) Memory system for writing fractional data into nonvolatile memory
US20100030948A1 (en) Solid state storage system with data attribute wear leveling and method of controlling the solid state storage system
US9524781B2 (en) Nonvolatile memory device and operating method thereof
JP2012505472A (ja) ソリッドステート記憶装置におけるトランスレーションレイヤ
US20190163623A1 (en) Memory system and operating method thereof
US10168951B2 (en) Methods for accessing data in a circular block mode and apparatuses using the same
KR20190102781A (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US20140372831A1 (en) Memory controller operating method for read operations in system having nonvolatile memory device
JP2007080474A (ja) フラッシュメモリチップを動作させる方法
TW201320072A (zh) 記憶體儲存裝置、記憶體控制器與其資料傳輸方法
KR20210024269A (ko) 빠른 읽기 페이지를 포함하는 불휘발성 메모리 장치 및 이를 포함하는 스토리지 장치
KR20170059702A (ko) 패브릭 네트워크를 이용한 파워 관리 방법 및 이를 적용하는 패브릭 네트워크 시스템
KR101543433B1 (ko) 반도체 메모리 장치 및 그것을 포함하는 메모리 시스템
KR20140011667A (ko) 복수의 불휘발성 메모리 칩들을 포함하는 저장 장치 및 그것의 제어 방법
US20170147235A1 (en) Memory system controlling interleaving write to memory chips
US9733832B2 (en) Buffer memory accessing method, memory controller and memory storage device
US8954662B2 (en) SSD controller, and method for operating an SSD controller
US11461238B2 (en) Storage device, memory controller, and method for fetching write commands from submission queues to perform full page writes
US20180113803A1 (en) Operation method of memory controller and operation method of storage device including the same
US9152348B2 (en) Data transmitting method, memory controller and data transmitting system
US11688472B2 (en) Memory device for passing verify operation and operating method of the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110629

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121228

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130704

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130711

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130913

R150 Certificate of patent or registration of utility model

Ref document number: 5368735

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

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