JP2010146326A - 記憶装置、その制御方法及びその記憶装置を用いた電子装置 - Google Patents

記憶装置、その制御方法及びその記憶装置を用いた電子装置 Download PDF

Info

Publication number
JP2010146326A
JP2010146326A JP2008323406A JP2008323406A JP2010146326A JP 2010146326 A JP2010146326 A JP 2010146326A JP 2008323406 A JP2008323406 A JP 2008323406A JP 2008323406 A JP2008323406 A JP 2008323406A JP 2010146326 A JP2010146326 A JP 2010146326A
Authority
JP
Japan
Prior art keywords
address
data
logical address
logical
group
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.)
Pending
Application number
JP2008323406A
Other languages
English (en)
Inventor
Shinichiro Nakazumi
眞一郎 中住
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.)
Toshiba Storage Device Corp
Original Assignee
Toshiba Storage Device Corp
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 Toshiba Storage Device Corp filed Critical Toshiba Storage Device Corp
Priority to JP2008323406A priority Critical patent/JP2010146326A/ja
Priority to US12/641,254 priority patent/US20100161887A1/en
Publication of JP2010146326A publication Critical patent/JP2010146326A/ja
Pending legal-status Critical Current

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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】アドレス変換マップの容量を低減すること。
【解決手段】並列に接続され且つ記憶領域をセクタ毎の複数のブロックに分割された複数のフラッシュメモリ夫々のブロックからなるブロック群を指す物理アドレスの中から、ホストから論理アドレスと共に入力されたデータを書き込む先の物理アドレスを特定する物理アドレス特定部と、ホストから入力された論理アドレスに基づき、複数の論理アドレスからなる論理アドレス群を特定する論理アドレス群特定部と、物理アドレス特定部で特定された物理アドレスに、論理アドレス群特定部で特定された論理アドレス群のデータを書き込むデータ書き込み部と、データが書き込まれた物理アドレスとデータを書き込んだ論理アドレス群とを関連付けて記憶させる記憶制御部と、備える。
【選択図】図8

Description

本発明は、記憶装置、その制御方法及びその記憶装置を用いた電子装置に関し、特に、フラッシュメモリを用いた記憶装置、その制御方法及びその記憶装置を用いた電子装置に関する。
パーソナルコンピュータ等に用いられる記憶装置として、磁気ディスク装置(HDD:Hard Disk Drive)が主に使用されている。しかし、HDDは、ヘッドやモーターといった駆動部品を有するため耐衝撃性が弱く、物理的な衝撃が加わることにより、誤動作や故障が発生する場合があった。また、HDDは、ヘッドを移動させるためのシーク時間やディスクの回転数を高めるスピンアップ時間を要するため、時間的ロスも生じていた。そこで、近年、HDDに変わりに、不揮発性メモリであるフラッシュメモリを用いたSSD(Solid State Drive)と呼ばれる記憶装置が開発されている。
フラッシュメモリを用いた記憶装置は、ホストから入力される論理アドレスに対応したフラッシュメモリの物理アドレスにアクセスできるよう、論理アドレスを物理アドレスに変換するアドレス変換マップを備えている(例えば、特許文献1から3)。これにより、フラッシュメモリの内部においてデータの記憶位置が変更されたとしても、ホストからは意識することなくアクセスが行える形態となっている。
アドレス変換マップは、工場出荷時又は初期化コマンド実行時に、全ての論理アドレスに対し物理アドレスを割り当てた状態で運用する方法が一般的に用いられている。また、フォーマット時間の短縮を図るため、工場出荷時又は初期化コマンド実行時には、全ての論理アドレスに対し物理アドレスを割り当てず、初めて書き込みコマンドが来た時点で、その論理アドレスに対して物理アドレスを割り当てる方法もまた一般的に用いられている。
また、フラッシュメモリを用いた記憶装置では、フラッシュメモリ単体での転送速度はHDDよりも劣るため、転送速度を向上させるために、複数のフラッシュメモリを並列接続させる方法が用いられている(例えば、特許文献1)。
特開平6−119128号公報 特開2005−108304号公報 特開2001−67258号公報
近年、フラッシュメモリを用いた記憶装置の大容量化の進歩が著しく、これに伴い、アドレス変換マップの容量も増大し、無視できない程の大きさとなってきている。例えば、512GBの記憶容量を有する記憶装置の場合において、セクタサイズが512Byteである場合を考えると、論理アドレスの総数は、512GB/512Byteで求められ、1×10個となる。ここで、アドレス変換マップで、単位物理アドレス当り4Byteを使用すると仮定すると、アドレス変換マップの容量は、4GBもの大きさになってしまう。
そこで、本発明は、アドレス変換マップの容量を低減することが可能な記憶装置、その制御方法及びその記憶装置を用いた電子装置を提供することを目的とする。
本明細書に記載の記憶装置は、並列に接続され且つ記憶領域をセクタ毎の複数のブロックに分割された複数のフラッシュメモリ夫々の前記ブロックからなるブロック群を示す物理アドレスの中から、ホストから論理アドレスと共に入力されたデータを書き込む先の物理アドレスを特定する物理アドレス特定部と、前記ホストから入力された前記論理アドレスに基づき、複数の論理アドレスからなる論理アドレス群を特定する論理アドレス群特定部と、前記物理アドレス特定部により特定された物理アドレスに含まれるブロック夫々に、前記論理アドレス群特定部で特定された論理アドレス群に含まれる論理アドレス夫々のデータを書き込むデータ書き込み部と、前記データ書き込み部によりデータが書き込まれた物理アドレスとデータを書き込んだ論理アドレス群とを関連付けてアドレス変換マップに記憶する記憶制御部と、を有している。
これによれば、複数の論理アドレスからなる論理アドレス群に対し、1つの物理アドレスを割り当てることになる。このため、論理アドレス夫々に対し1つの物理アドレスを割り当てる場合に比べ、物理アドレスの総数を減らすことができる。これにより、アドレス変換マップの容量を低減することができる。
本明細書に記載の記憶装置の制御方法は、並列に接続され且つ記憶領域をセクタ毎の複数のブロックに分割された複数のフラッシュメモリ夫々の前記ブロックからなるブロック群を示す物理アドレスの中から、ホストから論理アドレスと共に入力されたデータを書き込む先の物理アドレスを特定する物理アドレス特定工程と、前記ホストから入力された前記論理アドレスに基づき、複数の論理アドレスからなる論理アドレス群を特定する論理アドレス群特定工程と、前記物理アドレス特定工程により特定された物理アドレスに含まれるブロック夫々に、前記論理アドレス群特定工程で特定された論理アドレス群に含まれる論理アドレス夫々のデータを書き込むデータ書き込み工程と、前記データ書き込み工程によりデータが書き込まれた物理アドレスとデータを書き込んだ論理アドレス群とを関連付けてアドレス変換マップに記憶する記憶制御工程と、を有する。
これによれば、複数の論理アドレスからなる論理アドレス群に対し、1つの物理アドレスを割り当てることになる。このため、論理アドレス夫々に対し1つの物理アドレスを割り当てる場合に比べ、物理アドレスの総数を減らすことができる。これにより、アドレス変換マップの容量を低減することができる。
本明細書に記載の電子装置は、本明細書に記載の記憶装置を備えている。
これによれば、アドレス変換マップの容量が小さな記憶装置を備えた電子装置を得ることができる。
本明細書に記載の記憶装置及びその制御方法によれば、アドレス変換マップの容量を低減することができるという効果を奏する。また、本明細書に記載の電子装置によれば、アドレス変換マップの容量が小さな記憶装置を備えた電子装置が得られるという効果を奏する。
まず初めに、本発明の理解を助けるために、比較例とその課題について説明する。図1は、比較例1に係る記憶装置100のブロック図である。記憶装置100は、例えば、Flash SSD(Flash Solid State Drive)である。
図1のように、記憶装置100は、4個のフラッシュメモリ10、ROM(Read Only Memory)12、MPU(Micro Processing Unit)14、及びデータバッファ16とアドレス変換マップ18とを有するRAM(Random Access Memory)20、を有する。
フラッシュメモリ10は、ホスト22から入力されたデータを記憶するデータ記憶用素子として用いられる。フラッシュメモリ10が有する記憶領域は、セクタ毎の複数のブロックに分割されていて、分割されたブロック単位で、データの書き込みや読み出しを実行することができる。比較例1及び下記の比較例2では、ブロック毎に物理アドレスが付与される。また、4個のフラッシュメモリ10は、RAM20に対して互いに並列に接続されている。これにより、前述の背景技術で説明したように、4個のフラッシュメモリ10は同時読み出し/同時書き込み(並列処理)が可能となり、記憶装置100の転送速度を向上させることができる。例えば、図1のように、4個のフラッシュメモリ10が並列に接続している場合、1個のフラッシュメモリ10の転送速度が20MB/sであるとすると、記憶装置100としては、80MB/sの転送速度を実現することが可能となる。なお、並列に接続されるフラッシュメモリ10の個数は4個に限られない。複数個並列に接続されている場合に、RAM20の有する最大の帯域の範囲内で、転送速度の向上を図ることができる。
ROM12は、MPU14によって実行される制御プログラムが予め格納されている。MPU14は、フラッシュメモリ10へのデータの書き込み、フラッシュメモリ10からのデータの読み出し等、記憶装置100全体の制御を行う。
データバッファ16は、ホスト22から入力された書き込みデータやフラッシュメモリ10から読み出されたデータを一時的に記憶する。
アドレス変換マップ18は、ホスト22から入力された論理アドレスと、フラッシュメモリ10の物理アドレスと、を関連付けるアドレス変換テーブルを記憶している。これにより、ホスト22から入力された論理アドレスに対応したフラッシュメモリ10の物理アドレスにアクセスすることが可能となる。なお、アドレス変換テーブルの情報は、記憶装置100の電源がOFFされる際に、少なくとも1つのフラッシュメモリ10に転送され記憶される。そして、記憶装置100の電源がONされた際に、フラッシュメモリ10に記憶されていたアドレス変換テーブルの情報が、再度アドレス変換マップ18に転送される。
ここで、アドレス変換マップ18が記憶するアドレス変換テーブル19は、例えば、図2のように、工場出荷時や初期化コマンド実行時に、予め、全ての論理アドレス夫々に対して、1つの物理アドレスを割り当てて運用される。ここで、ホスト22からのアクセスは、1セクタ単位ではなく、複数セクタまとめてアクセスされることが一般的である。このため、図3のように、論理アドレス(以下、LBAとする)のアドレス番号の小さい方から順に、4個のフラッシュメモリ10夫々のブロックに交互に配置されるようにすることが好ましい。この場合、例えば、LBA0からシーケンシャルにアクセスをする場合に、RAM20の有する最大の帯域を利用することが可能となる。
また、アドレス変換テーブル19は、例えば、工場出荷時や初期化コマンド実行時には、全ての論理アドレスに対して物理アドレスを割り当てず、ホスト22から書き込みコマンドが入力された時点で、ホスト22から入力された論理アドレスに物理アドレスを割り当ててもよい(比較例2)。例えば、図4では、ホスト22からLBA2の書き込みコマンドが入力された場合に、LBA2に対して物理アドレスを割り当てた場合を示している。このような方法では、アドレス変換テーブル19をクリアするだけで、フォーマットするのと同じ効果が得られるため、前述の背景技術で説明したように、フォーマット時間の短縮を図ることができる。
ここで、比較例2の場合における、データの書き込み処理及び読み出し処理について詳しく説明する。図5は、MPU14が、LBA5、LBA1の順に、ホスト22から1セクタ分づつの書き込みコマンドを受信した場合について示している。
図5のように、MPU14が、LBA5、LBA1の順に、1セクタ分づつのデータを受信した場合、物理アドレスの先頭から順にLBA5、LBA1を割り当てて、データを書き込むことが一般的である。次に、図6を用い、図5のように論理アドレスのデータが書き込まれた場合において、MPU14が、ホスト22からLBA0〜3の4セクタの読み出しコマンドを受信した場合について説明する。
図6のように、LBA0、2、3のデータは書き込まれていない。このため、LBA0、2、3については、MPU14は、フラッシュメモリ10に設けられている初期化データ用専用領域23から初期データ(0x00)を読み出し、LBA1から読み出したデータと組み合わせてRAM20に一時的に記憶させる。そして、MPU14は、LBA0〜3のデータをホスト22に送信する。なお、初期化データ用専用領域23は、4個のフラッシュメモリ10夫々に設けられている場合でも、4個のフラッシュメモリ10のうち1つのフラッシュメモリ10に設けられている場合でもよい。
比較例1及び比較例2の記憶装置では、全ての論理アドレス夫々に対し、1つの物理アドレスを割り当てている。このため、記憶装置100の大容量化が進んだ場合、アドレス変換マップ18の容量が無視できない程増大するという課題が生じる。そこで、以下に、このような課題を解決することが可能な実施例を説明する。
以下、本発明の記憶装置の実施例を説明する。本実施例に係る記憶装置100は、例えば、Flash SSD(Flash Solid State Drive)であり、ブロック図は比較例1と同じであり、図1に示しているため、ここでは説明を省略する。
本実施例に係る記憶装置100が有するMPU14は、図7のように、コマンド受信部24、物理アドレス特定部26、論理アドレス群特定部28、データ書き込み部30、記憶制御部32、判断部34、及びデータ読み出し部36を備えている。これらコマンド受信部24、物理アドレス特定部26、論理アドレス群特定部28、データ書き込み部30、記憶制御部32、判断部34、及びデータ読み出し部36は、システムバス38により互いに接続している。また、コマンド受信部24、物理アドレス特定部26、論理アドレス群特定部28、データ書き込み部30、記憶制御部32、判断部34、及びデータ読み出し部36は、ROM12に予め格納されている制御プログラムをMPU14が読み出して実行することにより行われる。
コマンド受信部24は、ホスト22から入力される書き込みコマンド及び読み出しコマンドを受信する。物理アドレス特定部26は、コマンド受信部24で書き込みコマンドを受信した場合に、ホスト22から入力された論理アドレスのデータを書き込む先の物理アドレスの特定を行う。本実施例において、物理アドレスは、4個並列に接続されたフラッシュメモリ夫々が有するブロックを1つづつ含むブロック群のことを示す点で、比較例1及び比較例2と異なる。つまり、4個のブロックが1つの物理アドレスにより特定される。論理アドレス群特定部28は、コマンド受信部24で書き込みコマンドを受信した場合に、ホスト22から入力された論理アドレスに基づき、論理アドレス群を特定する。論理アドレス群は、ホスト22から入力された論理アドレスを含み、並列に接続されたフラッシュメモリの個数の論理アドレスからなる。即ち、本実施例では、論理アドレス群は4つの論理アドレスからなる。なお、物理アドレス特定部26による物理アドレスの特定及び論理アドレス群特定部28による論理アドレス群の特定については、図8のフローチャートを説明する際に詳細に述べる。
データ書き込み部30は、物理アドレス特定部26で特定された物理アドレスに含まれるブロック夫々に、論理アドレス群特定部28で特定された論理アドレス群に含まれる論理アドレス夫々のデータをまとめて書き込む。記憶制御部32は、物理アドレス特定部26で特定され、各ブロック夫々にデータが書き込まれた物理アドレスと、論理アドレス群特定部28で特定され、データを書き込んだ論理アドレスからなる論理アドレス群と、を関連付けたアドレス変換テーブル19をアドレス変換マップ18に記憶する。
判断部34は、コマンド受信部24で読み出しコマンドを受信した場合に、ホスト22から入力された論理アドレスが、アドレス変換マップ18で既に物理アドレスが割り当てられているか判断する。データ読み出し部36は、判断部34で物理アドレスが割り当てられていると判断された場合、その物理アドレスに含まれるブロック夫々に書き込まれているデータをまとめて読み出す。また、データ読み出し部36は、判断部34で物理アドレスが割り当てられていないと判断された場合、フラッシュメモリ10に設けられている初期化データ用専用領域23から初期データを読み出す。
次に、図8のフローチャートを用い、データの書き込み処理について説明する。なお、書き込み処理を説明するにあたり、具体例として、MPU14が、LBA5の書き込みコマンドをホスト22から受信した場合について説明する。
図8を参照に、MPU14が、ホスト22からLBA5の書き込みコマンドを受信する(ステップS10)と、RAM20(データバッファ16)は、ホスト22から入力されたLBA5のデータを受信し、記憶する(ステップS12)。
MPU14は、並列に接続するフラッシュメモリ10夫々のブロックを含むブロック群の中から、データが記憶されていない空きブロック群を探し、その空きブロック群を示す物理アドレスを、書き込み先の物理アドレスとして特定する(ステップS14)。即ち、データの書き込み処理の場合、MPU14は、アドレス変換マップ18に記憶されたアドレス変換テーブル19を参照しない。つまり、ホスト22から入力された論理アドレスに対し、既に物理アドレスが割り当てられているか否かに関わらず、MPU14は、常に空きブロック群を探し、空きブロック群を指す物理アドレスを、書き込み先の物理アドレスとして特定する。
次に、MPU14は、ステップS14で特定された物理アドレスのブロック群にデータをまとめて書き込む論理アドレス群の特定を行う(ステップS16)。論理アドレス群の特定は以下の方法により行う。まず、MPU14は、ホスト22から入力されたLBA5のアドレス番号5を、並列に接続されたフラッシュメモリ10の個数4で割り、商1を求める。その商1に対して並列に接続されたフラッシュメモリ10の個数4を掛ける。その結果値4をアドレス番号としたLBA4を、論理アドレス群の先頭の論理アドレスとする。そして、先頭の論理アドレスであるLBA4から、並列に接続されたフラッシュメモリ10の個数4に相当するブロック分の論理アドレスを、論理アドレス群として特定する。つまり、LBA4〜7が論理アドレス群として特定される。
次に、MPU14は、ステップS16で特定された論理アドレス群(LBA4〜7)に含まれる論理アドレスのうち、ホスト22からデータを受信していない論理アドレス(LBA4、6、7)について、フラッシュメモリ10に設けられている初期化データ用専用領域23から初期データ(0x00)をRAM20上に補完する(ステップS18)。
次に、MPU14は、RAM20上に記憶された、ホスト22から受信したデータ(LBA5のデータ)と初期化データ用専用領域23から補完された初期データ(LBA4、6、7のデータ)とを、ステップS14で特定された物理アドレスに含まれるブロック夫々に対し、まとめて書き込みを行う(ステップS20)。物理アドレスに含まれる各ブロックのうち、どのブロックにどの論理アドレスのデータを書き込むかは、以下の方法で特定される。図9のように、並列に接続された4個のフラッシュメモリ10を、例えば、フラッシュ1〜4と番号を付与する。ホスト22から入力されたLBA5のアドレス番号5を、並列に接続されたフラッシュメモリ10の個数4で割り、その余り1を求める。ここで、予め、フラッシュ1〜4と上記算出方法による余り0〜3との対応関係を定めておく。例えば、フラッシュ1は余り0の論理アドレスのデータを、フラッシュ2は余り1の論理アドレスのデータを、フラッシュ3は余り2の論理アドレスのデータを、フラッシュ4は余り3の論理アドレスのデータを書き込むと定めておく。これにより、図9のように、LBA5のデータは、フラッシュ2のブロックに書き込むということが特定される。この方法を用いることで、LBA4〜7のデータは、アドレス番号の小さい番号から順に並ぶように書き込むことができる。
次に、MPU14は、データが書き込まれた物理アドレスと、データを書き込んだ論理アドレス群(LBA4〜7)と、を関連付けた新たなアドレス変換テーブル19を作成し、アドレス変換マップ18に記憶する(ステップS22)。これにより、図10のように、LBA4〜7に対して1つの物理アドレスが割り当てられる。以上により、1セクタのデータの書き込み処理が完了する。
ここで、ステップS10を実行するMPUは、図7におけるコマンド受信部24に相当する。ステップS14を実行するMPUは、図7における物理アドレス特定部26に相当する。ステップS16を実行するMPUは、図7における論理アドレス群特定部28に相当する。ステップS18及びステップS20を実行するMPUは、図7におけるデータ書き込み部30に相当する。ステップS22を実行するMPUは、図7における記憶制御部32に相当する。
次に、図11を用い、データの読み出し処理について説明する。なお、読み出し処理を説明するにあたり、図9、図10のように論理アドレスに対し物理アドレスが割り当てられ、データが書き込まれている場合を例に説明する。
図11を参照に、MPU14は、ホスト22から論理アドレスが指定された読み出しコマンドを受信すると(ステップS30)、ホスト22から入力された論理アドレスがアドレス変換マップ18に既に割り当てられているか判断する(ステップS32)。例えば、ホスト22からLBA0〜3の4セクタの読み出しコマンドを受信した場合は、MPU14は、アドレス変換マップ18に割り当てられていないと判断し(No)、ホスト22からLBA4〜7の4セクタの読み出しコマンドを受信した場合は、MPU14は、アドレス変換マップ18に既に割り当てられていると判断する(Yes)。
ステップS32でYesと判断された場合、MPU14は、アドレス変換マップ18のアドレス変換テーブル19を参照し、アドレス変換テーブル19が示す物理アドレスのブロック群からデータをまとめて読み出し、RAM20上に転送して記憶させる(ステップS34)。ステップS32でNoと判断された場合は、MPU14は、フラッシュメモリ10の初期化データ用専用領域23から初期データを読み出し、RAM20上に転送して記憶させる(ステップS36)。
次に、MPU14は、RAM20上に記憶されたデータを、ホスト22に送信する(ステップS38)。これにより、データの読み出し処理が完了する。
ここで、ステップS30を実行するMPUは、図7におけるコマンド受信部24に相当する。ステップS32を実行するMPUは、図7における判断部34に相当する。ステップS34及びS36を実行するMPUは、図7におけるデータ読み出し部36に相当する。
以上説明したように、本実施例によれば、フラッシュメモリ10が並列に4個接続されている場合に、図10のように、4個の論理アドレスに対し、1つの物理アドレスを割り当てるだけで済むようになる。即ち、N個のフラッシュメモリが並列に接続されている場合は、N個の論理アドレスに対し、1つの物理アドレスを割り当てるだけで済むようになる。これにより、比較例1及び比較例2の場合に比べ、アドレス変換マップ18の容量を1/Nに低減することができる。
前述したように、記憶装置100の電源をOFFする際に、アドレス変換テーブル19の情報は、フラッシュメモリ10に転送され記憶される。つまり、フラッシュメモリ10には、アドレス変換テーブル19の情報を記憶するための領域を予め確保しておく必要がある。したがって、本実施例のように、アドレス変換テーブル19の情報が少なくなり、アドレス変換マップ18の容量が減ることで、フラッシュメモリ10に確保しておく領域も減らすことができる。換言すると、本実施例によれば、フラッシュメモリ10の記憶領域の中で、ホスト22との間でやりとりされるデータを格納するための領域を増やすことができる。なお、アドレス変換テーブル19の情報を格納するための領域は、4個のフラッシュメモリ10夫々が有していてもよいし、4個のフラッシュメモリ10のうち1つのフラッシュメモリ10が有している場合でもよい。
また、ホスト22から書き込みコマンドを受信してから、論理アドレス群に対し物理アドレスを割り当てたアドレス変換テーブル19を作成している。このため、アドレス変換テーブル19をクリアするだけでフォーマットをしたことと同じになるため、フォーマット時間を短縮することができる。
また、図9のように、1つの物理アドレスに含まれるブロック夫々は、並列に接続されたフラッシュメモリ10夫々の記憶領域に属している。したがって、1つの物理アドレスに含まれるブロック夫々へのデータの書き込みはまとめて行うことが可能であり、データの書き込みに要する時間は、1ブロックにデータを書き込む場合と変わらなくて済む。
また、図9のように、1つの物理アドレスに含まれるブロック夫々に、論理アドレスのアドレス番号順にデータが格納されている。したがって、例えば、LBA4〜7の連続したデータを読み出す場合に、RAM20の有する最大の帯域を利用することができ、読み出しに要する時間を短縮することができる。
また、本実施例によれば、4個の論理アドレスに対し、1つの物理アドレスが割り当てられている。したがって、連続したデータを読み出す場合に、論理アドレスに対し割り当てられた物理アドレスを、アドレス変換マップ18に確認するのに要する時間を短縮することができる。例えば、LBA4〜7の連続したデータを読み出す場合に、比較例1や比較例2では、LBA4〜7夫々について割り当てられた物理アドレスを、アドレス変換マップ18で確認する必要があった。しかしながら、本実施例では、LBA4〜7を一まとめにして1つの物理アドレスが割り当てられているため、アドレス変換マップ18に確認するのに要する時間を短縮することができる。
また、ホスト22からのデータの書き込み先の物理アドレスを特定する際に、ホスト22から入力された論理アドレスに、既に物理アドレスが割り当てられているか否かに関わらず、常に、空きブロック群を探し、空きブロック群を示す物理アドレスを、書き込み先の物理アドレスとして特定する。これにより、フラッシュメモリ10の記憶領域を分割したブロック全てに対して、書き込み回数を平準化することができる。
また、本実施例に係る記憶装置100は、図12のように、電子装置200に備わっていることが好ましい。電子装置200の例としては、電話機、オーディオ機、パソコン、HDDレコーダー等のデータを記憶する装置が挙げられる。背景技術で説明したように、フラッシュメモリを用いた記憶装置は、耐衝撃性に優れているため、携帯型電話機、携帯型オーディオ機、ノートパソコン等の持ち運びを行う電子装置に、本実施例に係る記憶装置100が備わることが好適である。
本実施例において、並列に接続されているフラッシュメモリ10は4個の場合を例に示したがこれに限られる訳ではなく、任意の個数とすることができる。フラッシュメモリ10を並列に接続することで、RAM20の有する最大の帯域の範囲内で、データの転送速度の向上を図ることができる。
上述した実施例は、本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の趣旨を逸脱しない範囲内において種々の変形実施が可能である。
図1は比較例1、2及び実施例に係る記憶装置の構成を説明するブロック図である。 図2は比較例1に係る記憶装置のアドレス変換マップに記憶されたアドレス変換テーブルを説明する図である。 図3は比較例1に係る記憶装置に関し、物理アドレスが割り当てられた論理アドレスの配置を説明する図である。 図4は比較例2に係る記憶装置のアドレス変換マップに記憶されたアドレス変換テーブルを説明する図である。 図5は比較例2に係る記憶装置に関し、書き込み処理を説明するための図である。 図6は比較例2に係る記憶装置に関し、読み出し処理を説明するための図である。 図7は実施例に係る記憶装置のMPUの機能ブロック図である。 図8は実施例に係る記憶装置の書き込み処理を説明するフローチャートである。 図9は実施例に係る記憶装置に関し、書き込み処理を説明するための図である。 図10は実施例に係る記憶装置のアドレス変換マップに記憶されたアドレス変換テーブルを説明する図である。 図11は実施例に係る記憶装置の読み出し処理を説明するフローチャートである。 図12は実施例に係る記憶装置を備えた電子装置の構成を説明するブロック図である。
符号の説明
10 フラッシュメモリ
12 ROM
14 MPU
16 データバッファ
18 アドレス変換マップ
19 アドレス変換テーブル
20 RAM
22 ホスト
23 初期化データ用専用領域
24 コマンド受信部
26 物理アドレス特定部
28 論理アドレス群特定部
30 データ書き込み部
32 記憶制御部
34 判断部
36 データ読み出し部
38 システムバス
100 記憶装置
200 電子装置

Claims (8)

  1. 並列に接続され且つ記憶領域をセクタ毎の複数のブロックに分割された複数のフラッシュメモリ夫々の前記ブロックからなるブロック群を指す物理アドレスの中から、ホストから論理アドレスと共に入力されたデータを書き込む先の物理アドレスを特定する物理アドレス特定部と、
    前記ホストから入力された前記論理アドレスに基づき、複数の論理アドレスからなる論理アドレス群を特定する論理アドレス群特定部と、
    前記物理アドレス特定部により特定された物理アドレスに含まれるブロック夫々に、前記論理アドレス群特定部で特定された論理アドレス群に含まれる論理アドレス夫々のデータを書き込むデータ書き込み部と、
    前記データ書き込み部によりデータが書き込まれた物理アドレスとデータを書き込んだ論理アドレス群とを関連付けてアドレス変換マップに記憶させる記憶制御部と、を備えることを特徴とする記憶装置。
  2. 前記論理アドレス群特定部は、前記ホストから入力された前記論理アドレスのアドレス番号を、並列に接続された前記複数のフラッシュメモリの個数で割った商に、前記複数のフラッシュメモリの個数を掛けて求まる値を先頭の論理アドレスのアドレス番号とし、前記先頭の論理アドレスのアドレス番号から前記複数のフラッシュメモリの個数分のアドレス番号までの論理アドレスを論理アドレス群として特定することを特徴とする請求項1記載の記憶装置。
  3. 前記データ書き込み部は、前記ホストから入力されていない論理アドレスのデータについては初期データを補完して、前記論理アドレス群に含まれる論理アドレス夫々のデータをまとめて書き込むことを特徴とする請求項1または2記載の記憶装置。
  4. 前記データ書き込み部は、前記論理アドレス群特定部で特定された論理アドレス群に含まれる論理アドレスのアドレス番号を、並列に接続された前記複数のフラッシュメモリの個数で割った余りを求め、前記複数のフラッシュメモリのうち、前記余りに基づいて定められたフラッシュメモリが有するブロックに前記論理アドレスのデータを記憶することを特徴とする請求項1から3のいずれか一項記載の記憶装置。
  5. 前記物理アドレス特定部は、データが記憶されていないブロック群を指す物理アドレスを特定することを特徴とする請求項1から4のいずれか一項記載の記憶装置。
  6. 前記ホストからデータの読み出しコマンドを受信した場合、前記ホストから入力された論理アドレスと関連付けられた物理アドレスが、前記アドレス変換マップに記憶されているか判断する判断部と、
    前記判断部により前記物理アドレスが記憶されていると判断された場合、前記物理アドレスが示すブロック群に記憶されているデータをまとめて読み出し、前記判断部により前記物理アドレスが記憶されていないと判断された場合、前記フラッシュメモリから初期データを読み出すデータ読み出し部と、を更に備えることを特徴とする請求項1から5のいずれか一項記載の記憶装置。
  7. 並列に接続され且つ記憶領域をセクタ毎の複数のブロックに分割された複数のフラッシュメモリ夫々の前記ブロックからなるブロック群を指す物理アドレスの中から、ホストから論理アドレスと共に入力されたデータを書き込む先の物理アドレスを特定する物理アドレス特定工程と、
    前記ホストから入力された前記論理アドレスに基づき、複数の論理アドレスからなる論理アドレス群を特定する論理アドレス群特定工程と、
    前記物理アドレス特定工程により特定された物理アドレスに含まれるブロック夫々に、前記論理アドレス群特定工程で特定された論理アドレス群に含まれる論理アドレス夫々のデータを書き込むデータ書き込み工程と、
    前記データ書き込み工程によりデータが書き込まれた物理アドレスとデータを書き込んだ論理アドレス群とを関連付けてアドレス変換マップに記憶する記憶制御工程と、を備えることを特徴とする記憶装置の制御方法。
  8. 請求項1から6のいずれか一項に記載の記憶装置を備えることを特徴とする電子装置。
JP2008323406A 2008-12-19 2008-12-19 記憶装置、その制御方法及びその記憶装置を用いた電子装置 Pending JP2010146326A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008323406A JP2010146326A (ja) 2008-12-19 2008-12-19 記憶装置、その制御方法及びその記憶装置を用いた電子装置
US12/641,254 US20100161887A1 (en) 2008-12-19 2009-12-17 Storage device, control method thereof, and electronic device using storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008323406A JP2010146326A (ja) 2008-12-19 2008-12-19 記憶装置、その制御方法及びその記憶装置を用いた電子装置

Publications (1)

Publication Number Publication Date
JP2010146326A true JP2010146326A (ja) 2010-07-01

Family

ID=42267766

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008323406A Pending JP2010146326A (ja) 2008-12-19 2008-12-19 記憶装置、その制御方法及びその記憶装置を用いた電子装置

Country Status (2)

Country Link
US (1) US20100161887A1 (ja)
JP (1) JP2010146326A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016042644A1 (ja) * 2014-09-18 2016-03-24 株式会社フィックスターズ メモリへのデータの書き込みを制御する制御装置、プログラム、および記憶装置
US10686468B2 (en) 2017-12-08 2020-06-16 Toshiba Memory Corporation Data processing apparatus, memory system, and method of processing data

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9128762B2 (en) 2009-12-15 2015-09-08 Micron Technology, Inc. Persistent content in nonvolatile memory
TWI451439B (zh) * 2010-12-10 2014-09-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與資料寫入方法
CN102543184B (zh) * 2010-12-22 2016-06-08 群联电子股份有限公司 存储器储存装置、其存储器控制器与数据写入方法
TWI479359B (zh) * 2013-08-01 2015-04-01 Phison Electronics Corp 指令執行方法、記憶體控制器與記憶體儲存裝置
US20150212884A1 (en) * 2014-01-27 2015-07-30 Kabushiki Kaisha Toshiba Memory controller, storage device, and memory control method
US9830084B2 (en) * 2015-12-03 2017-11-28 Sandisk Technologies Llc Writing logical groups of data to physical locations in memory using headers
US10013179B2 (en) 2015-12-03 2018-07-03 Sandisk Technologies Llc Reading logical groups of data from physical locations in memory using headers
US11263124B2 (en) 2018-08-03 2022-03-01 Micron Technology, Inc. Host-resident translation layer validity check
US10852964B2 (en) * 2018-09-25 2020-12-01 Micron Technology, Inc. Host-resident translation layer validity check techniques
US11226907B2 (en) 2018-12-19 2022-01-18 Micron Technology, Inc. Host-resident translation layer validity check techniques
US11226894B2 (en) 2018-12-21 2022-01-18 Micron Technology, Inc. Host-based flash memory maintenance techniques
TWI688956B (zh) * 2019-08-28 2020-03-21 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3105092B2 (ja) * 1992-10-06 2000-10-30 株式会社東芝 半導体メモリ装置
JP2005108304A (ja) * 2003-09-29 2005-04-21 Toshiba Corp 半導体記憶装置及びその制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016042644A1 (ja) * 2014-09-18 2016-03-24 株式会社フィックスターズ メモリへのデータの書き込みを制御する制御装置、プログラム、および記憶装置
US10686468B2 (en) 2017-12-08 2020-06-16 Toshiba Memory Corporation Data processing apparatus, memory system, and method of processing data

Also Published As

Publication number Publication date
US20100161887A1 (en) 2010-06-24

Similar Documents

Publication Publication Date Title
JP2010146326A (ja) 記憶装置、その制御方法及びその記憶装置を用いた電子装置
US9753847B2 (en) Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US9229876B2 (en) Method and system for dynamic compression of address tables in a memory
KR102584018B1 (ko) 압축된 데이터 백그라운드를 캐싱하는 장치, 시스템 및 방법
KR100923990B1 (ko) 플래시 저장 장치의 특성을 기반으로 한 컴퓨팅 시스템
JP5580311B2 (ja) 多性能モードメモリシステム
US11270734B2 (en) Method for accessing shingled magnetic recording SMR disk, and server
US20170344423A1 (en) Data storage device and data access-method
US9671961B2 (en) Memory controller, storage apparatus, information processing system, and control method for the same
US20150026390A1 (en) Garbage collection control method for solid state drive
US11029873B2 (en) Storage device with expandable logical address space and operating method thereof
KR20170036075A (ko) 데이터 압축을 채용하는 캐싱 기술들
WO2009096180A1 (ja) メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム
US10019398B2 (en) System with solid state drive and control method thereof
US20170220462A1 (en) Data storage method and system thereof
US20150234595A1 (en) Storage device
US20190146926A1 (en) Storage device and operating method of storage device
US8380920B2 (en) Flash storage device and data access method of flash memory
JP2011090460A (ja) データ記憶装置およびデータ記憶装置における制御方法
US20210382621A1 (en) Attribute Mapping in Multiprotocol Devices
JP4561246B2 (ja) メモリ装置
US10528360B2 (en) Storage device, information processing system, method of activating storage device and program
US9047959B1 (en) Data storage device, memory control method, and electronic device with data storage device
JP2008198221A5 (ja)
TWI616755B (zh) 儲存裝置及其資料映射方法