JP2009211192A - メモリシステム - Google Patents

メモリシステム Download PDF

Info

Publication number
JP2009211192A
JP2009211192A JP2008051285A JP2008051285A JP2009211192A JP 2009211192 A JP2009211192 A JP 2009211192A JP 2008051285 A JP2008051285 A JP 2008051285A JP 2008051285 A JP2008051285 A JP 2008051285A JP 2009211192 A JP2009211192 A JP 2009211192A
Authority
JP
Japan
Prior art keywords
data
address
parallel operation
storage unit
interface
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
JP2008051285A
Other languages
English (en)
Inventor
Yasushi Nagatomi
靖 長冨
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 Corp
Original Assignee
Toshiba 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 Corp filed Critical Toshiba Corp
Priority to JP2008051285A priority Critical patent/JP2009211192A/ja
Priority to KR1020097018225A priority patent/KR101132497B1/ko
Priority to CN2009800001088A priority patent/CN101681302B/zh
Priority to PCT/JP2009/051139 priority patent/WO2009107426A1/en
Priority to EP09713662A priority patent/EP2248024A4/en
Priority to US12/528,816 priority patent/US8364884B2/en
Priority to TW098104988A priority patent/TWI397815B/zh
Publication of JP2009211192A publication Critical patent/JP2009211192A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0656Data buffering arrangements
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • 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/7206Reconfiguration of flash memory system
    • 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/7207Details relating to flash memory management management of metadata or control data
    • 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)
  • Human Computer Interaction (AREA)
  • Read Only Memory (AREA)
  • Dram (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】ブロックサイズに比して小さいデータでもブロックサイズに比して大きいデータでも、書込効率を悪化させることなく記憶することができるメモリシステムを提供する。
【解決手段】DRAM11と、NANDメモリ12と、データアクセス時に使用されるNANDメモリ12内の並列動作要素120A〜120Dを示す並列動作要素指定情報とデータのアドレスをNANDインタフェース140に対して指定するNANDコントローラ制御レジスタ150、各並列動作要素120A〜120Dと並列に接続され、指定された並列動作要素指定情報とアドレスに基づき選択された1または複数の並列動作要素120A〜120D中のアドレスにアクセスするNANDインタフェース140、およびアクセスするデータの種類に応じて並列動作要素指定情報をNANDコントローラ制御レジスタ150に設定するCPU131を有するコントローラと、を備える。
【選択図】 図1

Description

本発明は、不揮発性半導体記憶装置を用いて構成されるメモリシステムに関する。
近年では、不揮発性半導体記憶装置として、NOR型フラッシュメモリに比して書込/消去動作が速いNAND型フラッシュメモリが注目されている。また、半導体装置の製造技術の進展によって、半導体素子の微細化が進行し、単位面積当たりの記憶容量が増大しており、NAND型フラッシュメモリを使用した大容量のメモリシステムも製品化されている。
NAND型フラッシュメモリでは、一般的に複数のページが集まって1つのブロックを構成している。そして、書込/読出処理はページ単位で行われ、消去処理はブロック単位で行われる(たとえば、特許文献1参照)。
また、近年の情報技術の発達によって、画像ファイルや音楽ファイル、映像ファイルなどのように、たとえば数MBを超えるようなサイズの大きなファイルがパーソナルコンピュータなどの2次記憶装置に多数保存されるようになっている。この2次記憶装置にたとえばページサイズが4KBのNAND型フラッシュメモリを使用したメモリシステムを適用した場合で、このNAND型フラッシュメモリの書込単位であるページサイズに比して十分に大きなファイルを書込む場合には、1ページ(4KB)ずつ書込まなければならず、ファイル書込に時間がかかってしまうという問題点があった。一方、このような大容量のファイルの書込みを効率化させるために、1ページ当りの書込サイズを大きくすると、逆にページサイズに対して容量の小さなファイルの書込時には、ページ内で未使用領域が発生してしまう。
さらに、NAND型フラッシュメモリのデータの書換処理は、書換えを行うデータが含まれるブロック中の書換えを行うページの更新を行い、その後更新を行ったページを含むブロックを構成するデータを、現在格納されているブロックとは別の新たなブロックに書込み、元のブロックを消去するという処理が必要になる。そのため、ブロックサイズに比して容量が小さくかつ書換頻度の高いファイルの書込時には、ページ内で未使用領域が発生するとともに、無駄な消去回数が増えてしまう。そのため、書込データ量に対するデータ消去量の比率である書込効率が悪くなり、ブロックを構成するセルが劣化してしまうという問題点があった。
特開2007−279402号公報
本発明は、ブロックサイズに比して小さいデータでもブロックサイズに比して大きいデータでも、書込効率を悪化させることなく記憶することができるメモリシステムを提供することを目的とする。
本発明の一態様によれば、揮発性の第1の記憶部と、ホスト装置から前記第1の記憶部を介して送られてくるデータを格納し、記憶領域が複数の並列動作要素で構成される不揮発性の第2の記憶部と、前記第1の記憶部と前記第2の記憶部との間の、または前記第2の記憶部内でのデータ転送を行うコントローラと、を備えるメモリシステムであって、前記コントローラは、前記データのアクセスで使用される前記第2の記憶部内の前記並列動作要素を示す並列動作要素指定情報と、アクセスする前記データのアドレスと、をインタフェース手段に対して指定するインタフェース指定手段と、前記第2の記憶部の前記各並列動作要素と並列に接続され、前記インタフェース指定手段で指定された前記並列動作要素指定情報およびアドレスに基づき選択された前記第2の記憶部内の1または複数の並列動作要素中の前記アドレスにアクセスするインタフェース手段と、前記データアクセス時に、アクセスする前記データの種類に応じて前記データアクセスに使用される前記並列動作要素指定情報を前記インタフェース指定手段に設定する制御手段と、を備えることを特徴とするメモリシステムが提供される。
また、本発明の一態様によれば、揮発性の第1の記憶部と、ホスト装置から前記第1の記憶部を介して送られてくるデータを格納し、記憶領域が複数の並列動作要素で構成される不揮発性の第2の記憶部と、前記データのアクセスで使用されるアドレスをインタフェース手段に対して指定するインタフェース指定手段と、前記第2の記憶部の前記各並列動作要素と並列に接続され、前記インタフェース指定手段で指定された前記アドレスに基づいてアクセスするインタフェース手段と、前記データアクセス時に、前記第2の記憶部内のアクセス先の前記アドレスを前記インタフェース指定手段に設定する制御手段と、を有し、前記第1の記憶部と前記第2の記憶部との間の、または前記第2の記憶部内でのデータの転送を制御するコントローラと、を備えるメモリシステムであって、前記制御手段は、前記データアクセス時にアクセスする前記データの種類に応じて、前記インタフェース手段と前記第2の記憶部との間の前記データアクセスに使用する前記並列動作要素を決定し、前記インタフェース指定手段に対して、使用する前記並列動作要素には有効な前記アドレスを設定し、使用しない前記並列動作要素には無効なアドレスを設定する機能を有することを特徴とするメモリシステムが提供される。
本発明によれば、ブロックサイズに比して小さいデータでもブロックサイズに比して大きいデータでも、書込効率を悪化させることなく記憶することができるという効果を奏する。
以下に添付図面を参照して、本発明にかかるメモリシステムの最良な実施の形態を詳細に説明する。なお、これらの実施の形態により本発明が限定されるものではない。
(第1の実施の形態)
このメモリシステムは、不揮発性半導体記憶装置を含み、たとえば、パーソナルコンピュータなどのホスト装置の2次記憶装置(SSD:Solid State Drive)として使用され、ホスト装置から書込要求が出されたデータを記憶し、またホスト装置から読出要求のあったデータを読出してホスト装置に出力する機能を有する。図1は、本発明の第1の実施の形態にかかるメモリシステムの構成の一例を示すブロック図である。このメモリシステム10は、第1の記憶部としてのDRAM(Dynamic Random Access Memory)11と、第2の記憶部としてのNAND型フラッシュメモリ(以下、NANDメモリという)12と、ドライブ制御回路(図中、ASICと表記)13と、を備える。
DRAM11は、データ転送用または管理情報記録用の記憶部として使用される。具体的には、データ転送用の記憶部としては、ホスト装置から書込要求があったデータをNANDメモリ12に書込む前に一時的に保存したり、ホスト装置から読出要求があったデータをNANDメモリ12から読出して一時的に保存したりするために使用される。また、管理情報記録用の記憶部としては、DRAM11およびNANDメモリ12に記憶されるデータの格納位置を管理するための管理情報を格納するために使用される。
NANDメモリ12は、データ保存用の記憶部として使用される。具体的には、ホスト装置側からのデータを記憶したり、DRAM11で管理される管理情報をバックアップ用に記憶したりする。この図1では、NANDメモリ12が4つの並列動作要素120A〜120Dによって構成されている場合が示されている。1つの並列動作要素120A〜120Dは、所定のサイズの記憶容量を有する8個のチップ122が1つにまとめられたパッケージ121を2つ含んでいる。1つの並列動作要素内の2つのパッケージ121は、後述するようにNANDコントローラ134の制御ピン141と入出力ピン142とを共用して、ドライブ制御回路13とバスを介して並列に接続されている。ここで、各並列動作要素120A〜120Dに接続されたバスは、データ転送時のチャネル15A〜15Dとして機能する。なお、以下の説明では、各並列動作要素120A〜120Dに接続される各バスの幅は8bitであるものとする。
ドライブ制御回路13は、DRAM11とNANDメモリ12を制御する。この実施の形態では、ドライブ制御回路13は、管理プログラム(ファームウェア)に基づいて、種々の処理を行うCPU(Central Processing Unit)131と、ホスト装置などの外部装置との間でデータの受け渡しを行う外部インタフェース(図中、外部IFと表記)132と、DRAM11を制御するDRAMコントローラ133と、NANDメモリ12を制御するNANDコントローラ134と、が内部バス135を介して接続された構成を有する。
NANDコントローラ134は、NANDメモリ12との間でデータの受け渡しを行うNANDインタフェース(図中、NAND−IFと表記)140と、NANDコントローラ134の動作の制御を行うNANDコントローラ制御レジスタ150と、を備える。NANDインタフェース140は、NANDメモリ12を構成する並列動作要素120A〜120Dごとに制御ピン141と入出力(IO)ピン142を有し、並列動作要素120A〜120Dとチャネル15A〜15Dを介して接続される。また、NANDインタフェース140は、チップイネーブル信号出力部143を有し、各並列動作要素120A〜120Dに接続されている。図1の例では、各並列動作要素120A〜120Dのチップ122−0〜122−3に接続されるチップイネーブル信号線CE0と、チップ122−4〜122−7に接続されるチップイネーブル信号線CE1と、チップ122−8〜122−11に接続されるチップイネーブル信号線CE2と、チップ122−12〜122−15に接続されるチップイネーブル信号線CE3が設けられている。
ここで、NANDメモリ12の構成について説明する。NANDメモリ12は、データ消去の単位であるブロックを基板上に複数配列して構成される。図2は、NANDメモリに含まれる1個のブロックの構成の一例を示す回路図である。なお、この図2において、紙面上の左右方向をX方向とし、紙面上のX方向に垂直な方向をY方向としている。
NANDメモリ12の各ブロックBLKは、X方向に沿って順に配列された(m+1)個(mは0以上の整数)のNANDストリングNSを備えている。各NANDストリングNSは、Y方向に隣接するメモリセルトランジスタMT間で拡散領域(ソース領域またはドレイン領域)を共有してY方向に直列に接続された(n+1)個(nは0以上の整数)のメモリセルトランジスタMT0〜MTnと、この(n+1)個のメモリセルトランジスタMT0〜MTnの列の両端に配置される選択トランジスタST1,ST2と、を有する。
各メモリセルトランジスタMT0〜MTnは、半導体基板上に形成された積層ゲート構造を有する電界効果型トランジスタから構成される。ここで、積層ゲート構造には、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層(浮遊ゲート電極)と、この電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極と、が含まれる。メモリセルトランジスタMT0〜MTnは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じて2ビット以上のデータを記憶することができる多値メモリである。なお、以下に示す実施の形態では、メモリセルトランジスタMTはこの多値メモリである場合を例に挙げて説明するが、1ビット(2値)を記憶するように構成した構造であってもよい。
NANDストリングNSを構成するメモリセルトランジスタMT0〜MTnの制御ゲート電極には、それぞれワード線WL0〜WLnが接続されており、また各NANDストリングNS中のメモリセルトランジスタMTi(i=0〜n)間は、同一のワード線WLi(i=0〜n)によって共通接続されている。つまり、ブロックBLK内において同一行にあるメモリセルトランジスタMTiの制御ゲート電極は、同一のワード線WLiに接続される。この同一のワード線WLiに接続される(m+1)個のメモリセルトランジスタMTiは1ページとして取り扱われ、NANDメモリ12では、このページがデータの書込みと読出しの最小単位となる。
1つのブロックBLK内の(m+1)個の選択トランジスタST1のドレインにはそれぞれビット線BL0〜BLmが接続され、ゲートには選択ゲート線SGDが共通接続されている。また、選択トランジスタST1のソースはメモリセルトランジスタMT0のドレインと接続されている。同様に、1つのブロックBLK内の(m+1)個の選択トランジスタST2のソースにはソース線SLが共通接続され、ゲートには選択ゲート線SGSが共通接続されている。また、選択トランジスタST2のドレインはメモリセルトランジスタMTnのソースと接続されている。
なお、図示されていないが、1つのブロックBLK内のビット線BLj(j=0〜m)は、他のブロックBLKのビット線BLjとの間で、選択トランジスタST1のドレインを共通に接続している。つまり、複数のブロックBLK内において同一列にあるNANDストリングNS間は、同一のビット線BLjによって接続される。
NANDメモリ12では、上記したように、書込/読出の最小単位が同一のワード線WLiに接続されたメモリセルトランジスタMTiからなるページであり、消去の最小単位が所定の数のページからなる1つのブロック(物理ブロック)である。また、このブロックが複数集まってプレーンを構成し、プレーンが複数集まって1つの並列動作要素120A〜120Dを構成する。そして、この並列動作要素120A〜120Dが複数集まって、1つのNANDメモリ12が構成される。図1の例では、並列動作要素の数(すなわちチャネル数)が4であり、プレーン数が2である場合を示している。なお、チップ122は、並列動作要素120A〜120Dを構成するものであるが、1つのチップ122内にプレーンとブロックが存在している。
ここで、NANDメモリ12を構成する各並列動作要素120A〜120Dは、書込/読出時にノーマルモードと倍速モードのいずれかで動作することが可能な構成を有する。ノーマルモードは、データの書込/読出を1つの並列動作要素120A〜120D内の1つのブロック毎に行うモードである。たとえば、1つの並列動作要素内の第1のプレーンに対応するブロックへの書込みは、第1のプレーン用のバッファにデータを1ページ分蓄積した後、指示されたブロックへページ単位の書込みが行われる。同様に、第2のプレーンに対応するブロックへの書込みは、第2のプレーン用のバッファに1ページ分のデータを蓄積した後、指示されたブロックへページ単位の書込みが行われる。なお、データの読出しも同じように1ページずつ行われる。
一方の倍速モードは、2個分のブロックのデータの書込/読出を1つの並列動作要素120A〜120D内の2つのプレーンのそれぞれのブロックを用いて同時に行うモードである。たとえば、1つの並列動作要素に2個分のブロックのデータの書込みを行う場合では、第1のプレーン用のバッファに第1のブロックの1ページ分のデータを蓄積し、続けて第2のプレーン用のバッファに第2のブロックの1ページ分のデータを蓄積し、その後、第1および第2のプレーン用のバッファに蓄積されたデータをそれぞれ第1のプレーンの第1のブロックおよび第2のプレーンの第2のブロックに書込む(プログラムを行う)。このように、1回のプログラム時間で2ページ分のデータを書込むことができる。なお、データの読出しも同様にして行われる。
また、並列動作要素120A〜120Dは、それぞれチャネルを介して複数並列してドライブ制御回路13に接続される構成となっているため、複数並列動作要素120A〜120Dに並行して並列動作要素にアクセスしたり、1チャネルのみにデータを転送させて並列動作要素にアクセスしたりすることが可能である。
そこで、この実施の形態では、図1の場合において、データの書込/読出速度とチャネルの並列度とを組み合わせることによって、以下の2種類のアクセスモードが提供されるものとする。
(1)8ビットノーマルモード
ドライブ制御回路13に接続される4チャネルのうち1チャネルだけ動作させ、1つの並列動作要素のブロックに対して8ビット単位で読み書きを行うモード。データの書込/読出サイズの1単位はページサイズであり、消去サイズの1単位は1物理ブロックサイズである。
(2)32ビット倍速モード
ドライブ制御回路13に接続される4チャネルを並列で動作させ、さらに各並列動作要素の2つのプレーンを用いて倍速モードを利用して読み書きを行うモード。データの書込/読出サイズの1単位はページサイズ×4チャネル×2であり、消去サイズの1単位は8物理ブロックサイズである。
上記の2種類のアクセスモードのほかに、NANDメモリ12に書込む際のアドレスを指定することで、NANDメモリ12への書込/読出が可能となる。図3は、第1の実施の形態によるNANDコントローラ制御レジスタの構成の一例を示す図である。このNANDコントローラ制御レジスタ150は、並列度指定レジスタ151と、チャネル指定レジスタ152と、アドレス指定レジスタ153と、を備える。
並列度指定レジスタ151は、一度に書込/読出を行うチャネルの数、すなわち並列度を設定するレジスタである。この場合には、1チャネルか4チャネルのいずれかが設定可能な構成とする。また、ここでは、1チャネルが設定された場合には、必然的に読み書きの速度はノーマルモードとなり、4チャネルが設定された場合には、読み書きの速度は倍速モードとなるものとする。つまり、並列度指定レジスタ151で1チャネルが設定された場合は、8ビットノーマルモードであり、4チャネルが設定された場合は、32ビット倍速モードとなる。
チャネル指定レジスタ152は、すべてのチャネルを同時に使用しないでアクセスする場合に使用するチャネルを設定する。この例では、並列度指定レジスタ151で1チャネルが設定された場合に、チャネル15A〜15Dの中から書込/読出処理または消去処理を行う1つのチャネルが設定される。また、並列度指定レジスタ151で4チャネル15A〜15Dが設定された場合には、このチャネル指定レジスタ152は「指定なし」となる。
アドレス指定レジスタ153は、書込/読出処理または消去処理を行う並列動作要素120A〜120D上のアドレスを設定する。
つぎに、NANDコントローラ制御レジスタ150に設定するCPU131の機能について説明する。図4は、CPUの機能構成の一例を示すブロック図である。CPU131は、DRAM11とNANDメモリ12との間でデータ転送を行うデータ転送処理部1311と、DRAM11およびNANDメモリ12に記憶されるデータの変更に伴って管理情報の変更や保存を行う管理情報管理部1312と、電源オン時などにNANDメモリ12に保存された管理情報に基づいて最新の管理情報を復元する管理情報復元部1313と、NANDメモリ12に対するアクセス条件の設定をNANDコントローラ制御レジスタ150に対して行う処理条件設定部1314と、をさらに備える。
ここで、処理条件設定部1314は、NANDメモリ12に書込まれるデータの種類またはNANDメモリ12から読出されるデータの種類に応じて、NANDコントローラ制御レジスタ150に対する設定を行う。以下に説明する例では、ホスト装置側からアクセスを指示されたデータの場合には、32ビット倍速モードで処理を行い、メモリシステム10内部で生じたデータの書込/読出を行う場合には、8ビットノーマルモードで処理を行うように設定することができる。
8ビットノーマルモードで処理を行う場合のメモリシステム10内部で生じたデータとして、NANDメモリ12に保存するデータの格納位置を管理するための管理情報のバックアップである管理情報保存情報がある。この管理情報は、CPU131の管理情報管理部1312によってDRAM11上で管理される。管理情報管理部1312は、ある時点における管理情報のコピーであるスナップショットと、管理情報に変更が生じる場合の変更前後の管理情報の差分情報であるログと、を管理情報保存情報としてNANDメモリ12に保存する。通常、メモリシステム10が稼動中の状態にある場合には、ホスト装置側から瞬断対策として、DRAM11上の管理情報をNANDメモリ12に退避させるためのコマンド(フラッシュキャッシュコマンド)が頻繁に発行され、このとき管理情報の更新分であるログをNANDメモリ12に書込む。また、電源オフ時には、DRAM11上の管理情報をスナップショットとしてNANDメモリ12に書込む。
つぎに、このメモリシステム10のデータ転送処理動作について説明する。図5は、メモリシステムにおけるデータ転送処理の一例を示す図である。この例では、DRAM11とNANDメモリ12との間でデータ転送を行う場合を例に挙げている。まず、CPU131の処理条件設定部1314は、DRAM11とNANDメモリ12との間でデータ転送されるデータの種類と、NANDメモリ12上でのアクセスされるアドレス(チップ122)とを取得する。
ついで、処理条件設定部1314は、データの種類を判定して、NANDコントローラ制御レジスタ150の並列度指定レジスタ151に対して並列度(「1」か「4」か)を設定する。つまり、ホスト装置側からの要求のあったデータの場合には並列度を「4」に設定し、メモリシステム10内部で生じたデータの書込/読出の場合には並列度を「1」に設定する。また、データのアクセス先アドレスに基づいて、チャネル指定レジスタ152に対して、NANDメモリ12の使用するチャネル(並列度が「1」の場合にはチャネルのいずれかであり、並列度が「4」の場合には「指定なし」である)を設定し、アドレス指定レジスタ153に対してアクセス先のアドレスを設定する(ステップS11)。処理条件設定部1314によるNANDコントローラ制御レジスタ150への設定が終了すると、データ転送処理部1311によるDRAM11とNANDメモリ12との間のデータ転送処理が開始される。
その後、NANDコントローラ制御レジスタ150は、並列度指定レジスタ151の値とチャネル指定レジスタ152の値とをNANDインタフェース140に伝える(ステップS12)。NANDインタフェース140は、並列度指定レジスタ151とチャネル指定レジスタ152で指定されたチャネルを制御する。そして、アドレス指定レジスタ153で指定されたアドレスのデータにアクセスするための制御を行う(ステップS13)。これによって、DRAM11とNANDメモリ12との間でやり取りされるデータの転送が制御される。
このステップS12〜S13でのNANDコントローラ134によるデータアクセス制御の処理について、8ビットノーマルモードの場合と32ビット倍速モードの場合について順に説明する。図6は、8ビットノーマルモードの場合のデータアクセス制御の処理状態を示す図であり、(a)はNANDコントローラとNANDメモリとの間のデータアクセス制御状態の概要を示す図であり、(b)は、NANDメモリを構成する各チップへの信号の入力状態を示す図である。ここでは、並列度に「1」が設定され(すなわち、8ビットノーマルモードが設定され)、チャネルに「Ch1」(並列動作要素120B)が指定され、アドレスに「チップ122−10」が指定された場合を例に挙げる。なお、実際には、アドレスとして、チップではなくチップ122(並列動作要素120A〜120D)内のアドレスが指定される。
図6(a)に示されるように、NANDインタフェース140は、NANDコントローラ制御レジスタ150からの並列度指定レジスタ151の値とチャネル指定レジスタ152の値とを受け、Ch1にのみ信号が伝送されるように制御ピン141Aと入出力ピン142Aを制御する。また、図6(b)に示されるように、NANDインタフェース140中のチップイネーブル信号出力部143は、アドレス指定レジスタ153で指定されたチップ122−10内のアドレスのみに、チップイネーブル信号線CE2を介してチップイネーブル信号を供給する。これによって、DRAM11とNANDメモリ12内の並列動作要素120Bのチップ122−10内の所定のアドレスとの間で、並列なしのノーマルモードでのデータ転送が行われる。
図7は、32ビット倍速モードの場合のデータアクセス制御の処理状態を示す図であり、(a)はNANDコントローラとNANDメモリとの間のデータアクセス制御状態の概要を示す図であり、(b)は、NANDメモリを構成する各チップへの信号の入力状態を示す図である。ここでは、並列度に「4」が設定され(すなわち、32ビット倍速モードが設定され)、チャネルに「指定なし」が指定され、アドレスに「チップ122−5」が指定された場合を例に挙げる。
図7(a)に示されるように、NANDインタフェース140は、NANDコントローラ制御レジスタ150からの並列度指定レジスタ151の値とチャネル指定レジスタ152の値とを受け、すべての並列動作要素120A〜120Dに信号が伝送されるように、すべての制御ピン141と入出力ピン142を制御する。なお、この際、データの書込/読出は倍速モードで行うように、NANDインタフェース140は各並列動作要素120A〜120Dを制御する。また、図7(b)に示されるように、NANDインタフェース140中のチップイネーブル信号出力部143は、アドレス指定レジスタ153で指定されたチップ122−5内のアドレスのみに、チップイネーブル信号線CE1を介してチップイネーブル信号を供給する。これによって、DRAM11とNANDメモリ12内のすべての並列動作要素120A〜120Dのチップ122−5内の所定のアドレスとの間で、4並列の倍速モードでデータ転送が行われる。
以上のように、NANDコントローラ制御レジスタ150で指定された条件で指定されたデータの転送が終了すると、データ転送処理が終了する。
なお、上述した説明では、並列度指定レジスタ151に、チャネルの並列度に加えてデータの転送速度を含めてNANDメモリ12の各チャネルを制御するようにしたが、並列度指定レジスタ151では、チャネルの並列度のみを指定するようにし、転送速度を指定する転送速度指定レジスタを別途設けるようにしてもよい。このようにすることで、両者を別々に指定して並列度とデータの転送速度の組み合わせをさらに幅広いものとすることができる。また、上述した説明では、並列度を「1」と「4」のいずれかしか選択することができなかったが、最大チャネル数の範囲で選択可能とすることもできる。
また、上述した説明では、処理条件設定部1314は、ホスト装置側からアクセスされるデータは、32ビット倍速モードでアクセスし、NANDメモリ12内部で生じるデータは、8ビットノーマルモードでアクセスするように設定する場合を例に挙げた。しかし、数十GB以上の記憶容量を有するNANDメモリ12の場合、管理情報のサイズは大きくなり、その管理情報のバックアップであるスナップショットは、ブロックサイズ×2×4チャネル前後の大きさを有するが、これに対して、ログは、差分情報であるためにページサイズ前後の大きさを有することが一般的である。そこで、処理条件設定部1314は、ホスト側装置からアクセスされるデータと管理情報保存情報中のスナップショットの書込/読出を行う場合には、32ビット倍速モードでアクセスし、管理情報保存情報中のログの書込/読出を行う場合には、8bitノーマルモードでアクセスするように設定してもよい。これは、以下の実施の形態でも同様である。
この第1の実施の形態によれば、データの種類に応じて、NANDコントローラ134内でNANDメモリ12へデータアクセスする際のチャネル15A〜15Dの並列度と転送速度とを並列度指定レジスタ151で指定し、すべてのチャネル15A〜15Dを使用しない場合に使用するチャネルをチャネル指定レジスタ152で指定するようにした。その結果、たとえばメモリシステム10内で生じるデータのログのように、所定のサイズよりも小さいデータの書込みを行う場合には、8ビットノーマルモードで選択された1つのチャネルを用いて並列動作要素120A〜120Dの1つの選択されたブロックにページ単位で書込むことができ、書込効率を上げることができる。また、書換えが必要なデータの場合には、並列度を落とすことで書換えを行わない物理ブロックの無駄な消去を回避することができる。一方、ホスト装置側から指示されるデータやスナップショットのように、所定のサイズ以上のデータの書込/読出を行ったり、書換えたりする場合には、転送速度をノーマルモードの2倍とし、さらに並列度を上げる(たとえば、4並列とする)ことで、8ビットノーマルモードの場合に比して4倍の量のデータを2倍の速さで書込/読出を行うことができる。このように、アクセスするデータのサイズに応じて効率のよい書込/読出処理を行うことができ、さらに書換えの場合に無駄な消去を回避することでメモリシステム10の寿命を延ばすことができるという効果を有する。
(第2の実施の形態)
第1の実施の形態では、NANDコントローラ制御レジスタ内の並列度指定レジスタでチャネルの並列度を指定し、チャネル指定レジスタで指定された並列度に応じて使用するチャネルを指定していた。この第2の実施の形態では、データ転送処理部によるデータ転送を行う際のアドレスの設定方法を工夫することで、NANDコントローラ制御レジスタ内に設定する条件の数を削減する方法について説明する。
図8は、第2の実施の形態によるアドレス割付方法の一例を示す図である。第1の実施の形態において、NANDメモリ12を構成する並列動作要素120A〜120Dごとに独立して物理アドレスが割付けられ、その物理アドレスの範囲が0〜5000である場合を例に挙げる。このとき、CPU131中のデータ転送処理部1311は、アクセスを行いたい並列動作要素120A〜120Dに接続されるチャネルのみ上記の有効なアドレス範囲である0〜5000の中の値をアドレスとして指定し、アクセスを行わない並列動作要素120A〜120Dに接続されるチャネルには有効なアドレス範囲以外の数値、たとえば5001、をアドレスとして指定する機能を有する。
このデータ転送処理部1311のアドレスの指定によって、データ転送処理時のチャネルの並列度と、使用するチャネルとが指定されることになる。その結果、NANDコントローラ制御レジスタ150には、並列度指定レジスタ151とチャネル指定レジスタ152が不要となり、アドレス指定レジスタ153のみ設けられていればよい。また、処理条件設定部1314は、データ転送処理部1311がアクセスするアドレスをアドレス指定レジスタ153のみ指定すればよい。
図9は、第2の実施の形態によるアドレス指定方法の一例を示す図である。なお、この例では、データ転送処理部1311は並列度を「1」と「4」のいずれかしか選択することができず、しかも並列度にはデータの転送速度に関する情報も含まれているものとする。つまり、並列度「1」となるようなアドレス指定がなされた場合には、8ビットノーマルモードが選択されたものとみなされ、並列度「4」となるようなアドレス指定がなされた場合には、32ビット倍速モードが選択されたものとみなされる。なお、以下の説明では、チャネルの指定に使用されるチャネルの識別子をそれぞれCh0,Ch1,Ch2,Ch3とする。
図9(a)では、データ転送処理部1311によるデータをアクセスする際のアドレス指示情報において、チャネルCh0,Ch1,Ch3への指示に無効なアドレス(5001)が指定され、チャネルCh2への指示のみに有効なアドレスが指定されているので、並列度「1」が指定され、チャネルとして「Ch2」が指定されたものとなる。その結果、NANDコントローラ134では、チャネルCh2のみを用いる並列度「1」でデータアクセス速度がノーマルモードのデータアクセス処理と判断して、処理を行う。なお、このとき、処理条件設定部1314は、指定されたアドレスをアドレス指定レジスタ153に設定する。このように、並列度「1」で処理を行う場合には、アドレス指示情報において、使用するチャネルにのみ有効なアドレス範囲のアドレスを設定し、他のチャネルには有効なアドレス範囲外のアドレスを指定すればよい。
また、図9(b)では、データ転送処理部1311によるアクセス指示情報において、すべてのチャネルCh0〜3に有効なアドレスが設定されているので、並列度「4」が指定され、チャネルとして「指定なし」が指定されたものとなる。その結果、NANDコントローラ134では、すべてのチャネルCh0〜Ch3を用いる並列度「4」でデータアクセス速度が倍速モードのデータアクセス処理と判断して、処理を行う。また、このとき、処理条件設定部1314は、指定されたアドレスをアドレス指定レジスタ153に設定する。
なお、上述した説明では、データ転送処理部1311によるアドレスの設定の並列度の指定に、データの転送速度が含まれるようにしたが、データ転送処理部1311によるアドレスの設定の並列度の指定には、データの転送速度が含まれない純粋な並列度のみとし、データの転送速度はNANDコントローラ制御レジスタ150に転送速度指定レジスタを別途設けて処理条件設定部1314によって設定されるようにしてもよい。
この第2の実施の形態によれば、データ転送処理部1311がアクセスするデータについてのアクセス指示情報中にアドレスを設定する際に、アクセスしない並列動作要素120A〜120Dには無効なアドレス範囲の値を設定するようにしたので、NANDコトンローラ制御レジスタ150に並列度を指定する並列度指定レジスタ151を設ける必要がなく、メモリシステム10の装置構成を簡略化することができるという効果を有する。
(第3の実施の形態)
第2の実施の形態では、各並列動作要素にたとえばそれぞれ0〜5000までの範囲のアドレスを割付けて、データ転送処理を行わない並列動作要素に接続されるチャネルに対しては上記有効なアドレス範囲以外のアドレス値を指定することで、並列度の設定を行い、並列度指定レジスタとチャネル指定レジスタを設けない構成とした。この第3の実施の形態では、他のアドレス指定方法によって並列度の設定を行い、並列度指定レジスタとチャネル指定レジスタを設けない構成を実現する場合について説明する。
図10は、第3の実施の形態によるNANDメモリのアドレス割付方法の一例を示す図である。第2の実施の形態では、図8に示されるように、NANDメモリ12を構成する並列動作要素120A〜120Dごとにアドレス割付を行っていた。しかし、第3の実施の形態では、図10に示されるように、並列動作要素120A,120B,120C,120Dの先頭から順に、0,1,2,3とアドレスを割付け、以後この順でアドレスを割付けていき、NANDメモリ12全体で1つのアドレスの割付けを行うようにしている。つまり、nを0以上の整数とし、10進数表記でアドレスを表記すると、並列動作要素120A(Ch0)では、アドレスが0,4,8,・・・,2n,・・・となり、並列動作要素120B(Ch1)では、アドレスが1,5,9,・・・,2n+1,・・・となり、並列動作要素120C(Ch2)では、アドレスが2,6,10,・・・,2n+2,・・・となり、並列動作要素120D(Ch3)では、アドレスが3,7,11,・・・,2n+3,・・・となる。
このようにアドレスの割付けを行うことによって、10進数表記で、アドレスを4で割った余りが、「0」のときは並列動作要素120A(Ch0)を表し、「1」のときは並列動作要素120B(Ch1)を表し、「2」のときは並列動作要素120C(Ch2)を表し、「3」のときは並列動作要素120D(Ch3)を表すことになる。すなわち、2進数表記のアドレスの下2桁は、Ch0では「00」となり、Ch1では「01」となり、Ch2では「10」となり、Ch3では「11」となる。そこで、これを、チャネルを識別するチャネル識別情報(特許請求の範囲の並列動作要素識別情報に対応)とすることができる。チャネル識別情報の有無によってチャネルの使用の有無および並列度を設定することができる。
つまり、データ転送処理部1311は、アクセスを行いたい並列動作要素120A〜120Dのデータに対しては、そのチャネルのチャネル識別情報を含むようにアドレス指定を行い、アクセスを行わない並列動作要素120A〜120Dに対しては、そのチャネルのチャネル識別情報を含まないようにアドレス指定を行う。具体的には、アドレスを2進数表記した場合に、アクセスを行いたい並列動作要素120A〜120Dのデータのアドレスの下2桁は、そのチャネル(並列動作要素)を識別する値(チャネル識別情報)となり、アクセスを行わない並列動作要素120A〜120Dのアドレスの下2桁は、そのチャネル(並列動作要素)を識別する値(チャネル識別情報)とならない値となるように指定する。
図11は、第3の実施の形態によるアドレス指定方法の一例を示す図である。なお、この例では、データ転送処理部1311は並列度を「1」と「4」のいずれかしか選択することができず、しかも並列度にはデータの転送速度も含まれているものとする。つまり、並列度「1」となるようなアドレス指定がなされた場合には、8ビットノーマルモードが選択されたものとみなされ、並列度「4」となるようなアドレス指定がなされた場合には、32ビット倍速モードが選択されたものとみなされる。
図11(a)では、データ転送処理部1311によるアクセス指示情報において、チャネルCh0,Ch1,Ch3のアドレスに無効なアドレスが指定されている。つまり、チャネルCh0,Ch1,Ch3に対して指定されるそれぞれのアドレスは、本来ならば10進数表記の場合には4で割ったときの余りがそれぞれ0,1,3でなければならないが、この場合にはすべて2となっている。その一方で、チャネルCh2のみに有効なアドレスが指定されている。つまり、チャネルCh2の10進数表記のアドレスを、4で割ったときの余りが2となっている。その結果、NANDコントローラ134では、チャネルCh2のみを用いる並列度「1」でデータアクセス速度がノーマルモードのデータアクセス処理と判断して処理を行う。このように、並列度「1」で処理を行う場合には、使用するチャネルのみを、そのチャネルに設定されたチャネル識別情報を含むようアドレスを設定し(すなわち、本来アクセスすべきアドレスを設定し)、他の並列動作要素にはその並列動作要素のチャネル識別情報を含まないアドレスを設定すればよい。
また、図11(b)では、データ転送処理部1311によるアクセス指示情報において、すべてのチャネルCh0〜3に有効なアドレスが指定されている。つまり、すべてのチャネルCh0〜Ch3に指示されたアドレスは、それぞれのチャネルCh0〜Ch3で有効なチャネル識別情報を含んでいる。さらに詳細には、チャネルCh0,Ch1,Ch2,Ch3のそれぞれの10進数表記のアドレスを4で割ったときの余りが、0,1,2,3となっている。その結果、NANDコントローラ134では、すべてのチャネルCh0〜Ch3を用いる並列度「4」でデータアクセス速度が倍速モードのデータアクセス処理と判断して、処理を行う。
なお、上述した説明では、データ転送処理部1311によるアドレスの設定の並列度の指定に、データの転送速度が含まれるようにしたが、データ転送処理部1311によるアドレスの設定の並列度の指定は、データの転送速度が含まれない純粋な並列度のみとし、データの転送速度はNANDコントローラ制御レジスタ150に転送速度指定レジスタを設けて処理条件設定部1314によって設定されるようにしてもよい。
この第3の実施の形態によれば、データ転送処理部1311がアドレスを設定する際に、アクセスしない並列動作要素にはその並列動作要素のチャネル識別情報を含まない無効なアドレスを設定するようにしたので、NANDコトンローラ制御レジスタ150に並列度を指定する並列度指定レジスタ151と、使用するチャネルを指定するチャネル指定レジスタ152とを設ける必要がなく、メモリシステム10の装置構成を簡略化することができるという効果を有する。
(第4の実施の形態)
この第4の実施の形態では、NANDメモリ内に並列度の低いデータを格納する専用の領域を定義する場合について説明する。
図12は、NANDメモリ内の並列度による領域分割の一例を示す図である。この図に示されるように、NANDメモリ12内に、並列度の低いデータを格納する低並列度格納領域1210と、並列度の高いデータを格納する高並列度格納領域1220とを設けている。つまり、低並列度格納領域1210を区切るようにアドレスを指定している。ここでは、低並列度格納領域1210はアドレス0〜200までの範囲であり、高並列度格納領域1220はアドレス201〜XXXまでの範囲となる。なお、この低並列度格納領域1210と高並列度格納領域1220の境界となるアドレスは予め決められているものとする。この低並列度格納領域1210の具体例としては、たとえば管理情報保存情報を保存する領域、さらに具体的には管理情報保存情報中のログを保存する領域を挙げることができ、高並列度格納領域1220の具体例としては、ホスト装置から保存を指示されたデータを保存する領域や管理情報保存情報中のスナップショットを保存する領域を挙げることができる。
また、この例では、並列度が「1」と「4」のいずれかに設定される場合を示しており、並列度にはデータの転送速度も含まれているものとする。つまり、並列度「1」の低並列度格納領域1210へは8ビットノーマルモードの速度でアクセスされ、並列度「4」の高並列度格納領域1220へは32ビット倍速モードの速度でアクセスされる。
このように並列度の違いによってアクセスする領域を分けることによって、NANDコントローラ134側でアドレスをデコードし、転送の並列度を認識することができる。つまり、NANDインタフェース140は、アクセス先のアドレスが0〜200の場合には、低並列度格納領域1210なので、並列度「1」の8ビットノーマルモードでアクセスを行い、アクセス先のアドレスが201〜XXXの場合には、高並列度格納領域1220なので、並列度「4」の32ビット倍速モードでアクセスを行う。
つぎに、このような構成のメモリシステム10におけるデータ転送処理動作について説明する。図13は、第4の実施の形態にかかるメモリシステムのデータ転送処理の一例を示す図である。この例では、DRAM11とNANDメモリ12との間でデータ転送を行う場合を例に挙げている。まず、CPU131の処理条件設定部1314は、DRAM11とNANDメモリ12との間で転送されるデータの種類とアドレスを取得する。
ついで、処理条件設定部1314は、データの種類とアドレスに基づいて、NANDコントローラ制御レジスタ150のチャネル指定レジスタ152に対してアクセス先のアドレスに対応する並列動作要素120A〜120Dを設定し、アドレス指定レジスタ153に対してアクセス先のアドレスを設定する(ステップS31)。処理条件設定部1314によるNANDコントローラ制御レジスタ150への設定が終了すると、データ転送処理部1311によるDRAM11とNANDメモリ12との間のデータ転送処理が開始される(ステップS32)。
ついで、NANDコントローラ134のNANDインタフェース140は、NANDコントローラ制御レジスタ150のチャネル指定レジスタ152で指定されたチャネルと、アドレス指定レジスタ153で指定されたアドレスとからデータアクセスを行う並列度を判断し、使用する並列動作要素120A〜120Dを制御する(ステップS32)。つまり、アドレスが0〜200の間の場合には、アクセス先が低並列度格納領域1210にあるので、8ビットノーマルモードでのアクセスを行い、アドレスが201〜xxxの間の場合には、アクセス先が高並列度格納領域1220にあるので、32ビット倍速モードでのアクセスを行う。これによって、DRAM11とNANDメモリ12との間でやり取りされるデータの転送が制御される。そして、データのアクセスが終了すると、データ転送処理が終了する。
なお、ステップS32では、NANDインタフェース140が並列度を判定し、NANDメモリ12の各チャネルへのアクセスを制御するようにしたが、NANDコントローラ制御レジスタ150が、チャネル指定レジスタ152に設定されているチャネルの値と、アドレス指定レジスタ153に設定されているアクセス先のアドレスとをNANDインタフェース140に伝え、NANDコントローラ制御レジスタ150側でチャネルを制御するようにしてもよい(ステップS32’)。
なお、上述した説明では、並列度の指定に、データの転送速度が含まれるようにしたが、データのアクセス先の指定には、データの転送速度が含まれない純粋な並列度のみを指定するようにし、データの転送速度の設定は、NANDコントローラ制御レジスタ150に転送速度指定レジスタを別途設けて処理条件設定部1314によって設定するようにしてもよい。
この第4の実施の形態によれば、NANDメモリ12をアクセスするデータの並列度の違いによって領域に分けるようにしたので、アクセス先のアドレスによって並列度を設定することができ、NANDコトンローラ制御レジスタ150に並列度を指定する並列度指定レジスタ151を設ける必要がなく、メモリシステム10の装置構成を簡略化することができるという効果を有する。
(第5の実施の形態)
第4の実施の形態では、NANDメモリに低並列度格納領域と高並列度格納領域とを設ける場合を示したが、この第5の実施の形態では、NANDメモリ中での低並列度格納領域と高並列度格納領域の大きさを可変にすることができる構成について説明する。
図14は、第5の実施の形態によるNANDコントローラ制御レジスタの構成の一例を模式的に示す図である。このNANDコントローラ制御レジスタ150は、チャネル指定レジスタ152とアドレス指定レジスタ153に加えて、低並列度のデータを格納する低並列度格納領域1210のアドレス領域を可変にできる低並列度格納領域指定レジスタ154を備えている。この低並列度格納領域指定レジスタ154は、CPU131の処理条件設定部1314によって設定され、低並列度格納領域1210のサイズを可変にすることができる。
図15は、低並列度格納領域の大きさを変えた場合の一例を示す図である。(a)では、低並列度格納領域指定レジスタ154は、低並列度格納領域1210をアドレス0〜200の範囲に設定している。これに対して、(b)では、低並列度格納領域指定レジスタ154は、低並列度格納領域1210をアドレス0〜300の範囲に設定している。このように、処理条件設定部1314によって、低並列度格納領域指定レジスタ154の値を任意に設定することで、低並列度格納領域1210のサイズを変えることができる。
なお、上述した説明では、低並列度格納領域1210のアドレス範囲を変える低並列度格納領域指定レジスタ154を設ける場合を示したが、これに限定されるものではない。たとえば、任意の並列度s(sは自然数)のデータを格納する格納領域の大きさを変える並列度格納領域設定レジスタを設けることができる。また、この第5の実施の形態におけるデータ転送処理は、第4の実施の形態と同様であるので、その説明を省略する。
この第5の実施の形態によれば、ある並列度のデータを格納する並列度格納領域のアドレス範囲を変える並列度格納領域設定レジスタを設けるようにしたので、ある並列度のデータを格納するのに必要な領域を任意に設定することができるという効果を有する。
上述した説明では、第2の記憶部としてNANDメモリを使用したメモリシステムの場合を例に挙げて説明したが、これに限定されるものではなく、NANDメモリが2値を記憶可能なメモリセルトランジスタで構成される場合でなく、2ビット以上の多値を記憶可能なメモリセルトランジスタで構成されるものであってもよい。また、他の不揮発性半導体記憶装置を第2の記憶部に用いたメモリシステムの場合にも上述した実施の形態を適用することができる。また、上述した説明では、NANDメモリ12でのデータの書込/読出単位をページサイズ単位とし、消去単位と管理単位をブロックサイズ単位としたが、これに限定される趣旨ではなく、それぞれ任意の単位を用いることが可能である。
また、上述した説明では、メモリシステムは、第1の記憶部が揮発性メモリであるDRAM11からなり、第2の記憶部が不揮発性メモリであるNANDメモリ12からなる場合を例に挙げて説明したが、これに限定されるものではない。たとえば、メモリシステムが、第1の記憶部が不揮発性メモリであり、第2の記憶部も不揮発性メモリであるような場合にも上述してきた実施の形態を適用することができる。この場合には、第1の記憶部(不揮発性メモリ)で管理される管理情報のバックアップであるスナップショットやログなどの管理情報保存情報を第2の記憶部(NANDメモリ)に記憶する処理は必要なくなるが、データサイズによって並列度やデータの転送速度などを可変にすることができる。
第1の実施の形態によるメモリシステムの構成の一例を示すブロック図である。 NANDメモリに含まれる1個のブロックの構成の一例を示す回路図である。 第1の実施の形態によるNANDコントローラ制御レジスタの構成の一例を示す図である。 CPUの機能構成の一例を示すブロック図である。 メモリシステムにおけるデータ転送処理の一例を示す図である。 8ビットノーマルモードの場合のデータアクセス制御の処理状態を示す図である。 32ビット倍速モードの場合のデータアクセス制御の処理状態を示す図である。 第2の実施の形態によるアドレス割付方法の一例を示す図である。 第2の実施の形態によるアドレス指定方法の一例を示す図である。 第3の実施の形態によるNANDメモリのアドレス割付方法の一例を示す図である。 第3の実施の形態によるアドレス指定方法の一例を示す図である。 NANDメモリ内の並列度による領域分割の一例を示す図である。 第4の実施の形態にかかるメモリシステムのデータ転送処理の一例を示す図である。 第5の実施の形態によるNANDコントローラ制御レジスタの構成の一例を模式的に示す図である。 低並列度格納領域の大きさを変えた場合の一例を示す図である。
符号の説明
10…メモリシステム、11…DRAM、12…NANDメモリ、13…ドライブ制御回路、15A〜15D…チャネル、120A〜120D…並列動作要素、122…チップ、133…DRAMコントローラ、134…NANDコントローラ、135…内部バス、140…NANDインタフェース、141…制御ピン、142…入出力ピン、143…チップイネーブル信号出力部、150…NANDコトンローラ制御レジスタ、151…並列度指定レジスタ、152…チャネル指定レジスタ、153…アドレス指定レジスタ、154…低並列度格納領域指定レジスタ、1210…低並列度格納領域、1220…高並列度格納領域、1311…データ転送処理部、1312…管理情報管理部、1313…管理情報復元部、1314…処理条件設定部。

Claims (5)

  1. 揮発性の第1の記憶部と、
    ホスト装置から前記第1の記憶部を介して送られてくるデータを格納し、記憶領域が複数の並列動作要素で構成される不揮発性の第2の記憶部と、
    前記第1の記憶部と前記第2の記憶部との間の、または前記第2の記憶部内でのデータ転送を行うコントローラと、
    を備えるメモリシステムであって、
    前記コントローラは、
    前記データのアクセスで使用される前記第2の記憶部内の前記並列動作要素を示す並列動作要素指定情報と、アクセスする前記データのアドレスと、をインタフェース手段に対して指定するインタフェース指定手段と、
    前記第2の記憶部の前記各並列動作要素と並列に接続され、前記インタフェース指定手段で指定された前記並列動作要素指定情報およびアドレスに基づき選択された前記第2の記憶部内の1または複数の並列動作要素中の前記アドレスにアクセスするインタフェース手段と、
    前記データアクセス時に、アクセスする前記データの種類に応じて前記データアクセスに使用される前記並列動作要素指定情報を前記インタフェース指定手段に設定する制御手段と、
    を備えることを特徴とするメモリシステム。
  2. 揮発性の第1の記憶部と、
    ホスト装置から前記第1の記憶部を介して送られてくるデータを格納し、記憶領域が複数の並列動作要素で構成される不揮発性の第2の記憶部と、
    前記データのアクセスで使用されるアドレスをインタフェース手段に対して指定するインタフェース指定手段と、前記第2の記憶部の前記各並列動作要素と並列に接続され、前記インタフェース指定手段で指定された前記アドレスに基づいてアクセスするインタフェース手段と、前記データアクセス時に、前記第2の記憶部内のアクセス先の前記アドレスを前記インタフェース指定手段に設定する制御手段と、を有し、前記第1の記憶部と前記第2の記憶部との間の、または前記第2の記憶部内でのデータの転送を制御するコントローラと、
    を備えるメモリシステムであって、
    前記制御手段は、前記データアクセス時にアクセスする前記データの種類に応じて、前記インタフェース手段と前記第2の記憶部との間の前記データアクセスに使用する前記並列動作要素を決定し、前記インタフェース指定手段に対して、使用する前記並列動作要素には有効な前記アドレスを設定し、使用しない前記並列動作要素には無効なアドレスを設定する機能を有することを特徴とするメモリシステム。
  3. 前記第2の記憶部内の前記各並列動作要素を識別可能な並列動作要素識別情報を含むように、前記第2の記憶部全体に対してアドレスを割付けた場合に、
    前記制御手段は、前記インタフェース指定手段に対して、前記データアクセスに使用する前記並列動作要素には該並列動作要素の並列動作要素識別情報を含む有効な前記アドレスを設定し、使用しない並列動作要素には該並列動作要素の並列動作要素識別情報を含まない無効なアドレスを設定することを特徴とする請求項2に記載のメモリシステム。
  4. 前記第2の記憶部の前記各並列動作要素は、前記データアクセス時に使用される前記並列動作要素の数に応じてアクセスする記憶領域が設定された並列度別データ格納領域を有し、
    前記制御手段は、前記データアクセス時に前記データの種類に応じた前記並列度別データ格納領域を選択し、該並列度別データ格納領域内のアドレスを前記インタフェース指定手段に設定し、
    前記インタフェース手段は、前記インタフェース指定手段に設定された前記アドレスから前記並列動作要素の数を判定して、前記第2の記憶部との間で前記データアクセスを行うことを特徴とする請求項2に記載のメモリシステム。
  5. 前記インタフェース指定手段は、前記第2の記憶部の前記各並列動作要素に設けられる前記並列度別データ格納領域の範囲を指定する機能をさらに備えることを特徴とする請求項4に記載のメモリシステム。
JP2008051285A 2008-02-29 2008-02-29 メモリシステム Pending JP2009211192A (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2008051285A JP2009211192A (ja) 2008-02-29 2008-02-29 メモリシステム
KR1020097018225A KR101132497B1 (ko) 2008-02-29 2009-01-20 메모리 시스템
CN2009800001088A CN101681302B (zh) 2008-02-29 2009-01-20 存储器系统
PCT/JP2009/051139 WO2009107426A1 (en) 2008-02-29 2009-01-20 Memory system
EP09713662A EP2248024A4 (en) 2008-02-29 2009-01-20 STORAGE SYSTEM
US12/528,816 US8364884B2 (en) 2008-02-29 2009-01-20 Memory system with a memory controller controlling parallelism of driving memories
TW098104988A TWI397815B (zh) 2008-02-29 2009-02-17 記憶體系統

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008051285A JP2009211192A (ja) 2008-02-29 2008-02-29 メモリシステム

Publications (1)

Publication Number Publication Date
JP2009211192A true JP2009211192A (ja) 2009-09-17

Family

ID=41015832

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008051285A Pending JP2009211192A (ja) 2008-02-29 2008-02-29 メモリシステム

Country Status (7)

Country Link
US (1) US8364884B2 (ja)
EP (1) EP2248024A4 (ja)
JP (1) JP2009211192A (ja)
KR (1) KR101132497B1 (ja)
CN (1) CN101681302B (ja)
TW (1) TWI397815B (ja)
WO (1) WO2009107426A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011081754A (ja) * 2009-10-09 2011-04-21 Chiba Univ 記録装置
CN102193748A (zh) * 2010-03-18 2011-09-21 株式会社东芝 控制器、数据存储装置以及程序产品
JP2014029737A (ja) * 2013-11-13 2014-02-13 Chiba Univ 記録装置
JPWO2015114829A1 (ja) * 2014-02-03 2017-03-23 株式会社日立製作所 情報処理装置

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2396729B1 (en) 2009-02-12 2019-05-22 Toshiba Memory Corporation Memory system and method of controlling memory system
JP2013077278A (ja) * 2011-09-16 2013-04-25 Toshiba Corp メモリ・デバイス
US9213645B2 (en) * 2011-12-29 2015-12-15 Sandisk Technologies Inc. Command aware partial page programming
CN102968280B (zh) * 2012-11-21 2015-12-02 华为技术有限公司 一种存储系统及存储设备、控制设备
EP3176688B1 (en) * 2012-12-31 2022-01-26 SanDisk Technologies LLC Method and system for asynchronous die operations in a non-volatile memory
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US8873284B2 (en) 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling in a multi-layer memory
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
KR102108839B1 (ko) 2013-06-12 2020-05-29 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법
US9177654B2 (en) * 2014-03-26 2015-11-03 Burst Corporation Solid-state memory device with plurality of memory cards
CN104216836B (zh) * 2014-08-28 2018-01-23 华为技术有限公司 一种存储系统的并行读写方法和装置
KR102401600B1 (ko) 2015-08-31 2022-05-25 삼성전자주식회사 데이터 양에 기초하여 복수의 데이터 스트림을 관리하도록 구성되는 스토리지 장치
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
KR20180031412A (ko) 2016-09-20 2018-03-28 삼성전자주식회사 메모리 컨트롤러의 동작 방법과, 이를 포함하는 장치들의 동작 방법들
KR20180061851A (ko) 2016-11-30 2018-06-08 삼성전자주식회사 바이트 액세서블 인터페이스 및 블록 액세서블 인터페이스를 지원하는 스토리지 장치 및 이를 포함하는 전자 시스템
CN110413206B (zh) * 2018-04-28 2023-05-30 伊姆西Ip控股有限责任公司 存储系统中的操作控制方法、设备和计算机程序产品
US10896724B2 (en) * 2018-12-18 2021-01-19 Western Digital Technologies, Inc. Non-volatile storage system with reduced program transfers
US11921649B1 (en) * 2019-09-12 2024-03-05 Kioxia Corporation Multiple parallel mode flash channels with serial link
TW202145017A (zh) * 2020-05-18 2021-12-01 群聯電子股份有限公司 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元
US11556279B2 (en) * 2020-08-21 2023-01-17 Samsung Electronics Co., Ltd. System device, and method for memory interface including reconfigurable channel

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007517325A (ja) * 2003-12-30 2007-06-28 サンディスク コーポレイション データラン・プログラミング
JP2007517320A (ja) * 2003-12-30 2007-06-28 サンディスク コーポレイション ホストの使用特性に基づいたフラッシュメモリのアドレスマッピングの適応的モード切り換え

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266596A (ja) * 1993-03-11 1994-09-22 Hitachi Ltd フラッシュメモリファイル記憶装置および情報処理装置
JP3688835B2 (ja) * 1996-12-26 2005-08-31 株式会社東芝 データ記憶システム及び同システムに適用するデータ転送方法
US6513093B1 (en) * 1999-08-11 2003-01-28 International Business Machines Corporation High reliability, high performance disk array storage system
JP4256600B2 (ja) * 2001-06-19 2009-04-22 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
EP1554648A2 (en) * 2002-10-11 2005-07-20 Koninklijke Philips Electronics N.V. Data processing apparatus with parallel operating functional units
DE10335132B3 (de) * 2003-07-31 2004-12-09 Infineon Technologies Ag Speicheranordnung eines Computersystems
EP1704484A2 (en) * 2003-12-30 2006-09-27 SanDisk Corporation Non-volatile memory and method with non-sequential update block management
US7433993B2 (en) * 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US20050144363A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Data boundary management
JP4561246B2 (ja) * 2004-08-31 2010-10-13 ソニー株式会社 メモリ装置
JP2006195569A (ja) * 2005-01-11 2006-07-27 Sony Corp 記憶装置
US7793059B2 (en) * 2006-01-18 2010-09-07 Apple Inc. Interleaving policies for flash memory
JP2007279402A (ja) 2006-04-07 2007-10-25 Matsushita Electric Ind Co Ltd 不揮発性メモリへのデータ格納方法および音声記録再生装置
US7587538B2 (en) * 2006-06-01 2009-09-08 Broadcom Corporation Disk controller, channel interface and methods for use therewith
US7716411B2 (en) * 2006-06-07 2010-05-11 Microsoft Corporation Hybrid memory device with single interface
JP5068081B2 (ja) * 2007-01-24 2012-11-07 株式会社日立製作所 管理装置および管理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007517325A (ja) * 2003-12-30 2007-06-28 サンディスク コーポレイション データラン・プログラミング
JP2007517320A (ja) * 2003-12-30 2007-06-28 サンディスク コーポレイション ホストの使用特性に基づいたフラッシュメモリのアドレスマッピングの適応的モード切り換え

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011081754A (ja) * 2009-10-09 2011-04-21 Chiba Univ 記録装置
CN102193748A (zh) * 2010-03-18 2011-09-21 株式会社东芝 控制器、数据存储装置以及程序产品
JP2011197945A (ja) * 2010-03-18 2011-10-06 Toshiba Corp コントローラ、データ記憶装置、及びプログラム
US8495336B2 (en) 2010-03-18 2013-07-23 Kabushiki Kaisha Toshiba Controller, data storage device, and program product
US9690691B2 (en) 2010-03-18 2017-06-27 Kabushiki Kaisha Toshiba Controller, data storage device, and program product
US9940233B2 (en) 2010-03-18 2018-04-10 Toshiba Memory Corporation Controller, data storage device, and program product
US10783072B2 (en) 2010-03-18 2020-09-22 Toshiba Memory Corporation Controller, data storage device, and program product
US11269766B2 (en) 2010-03-18 2022-03-08 Kioxia Corporation Controller for controlling non-volatile semiconductor memory and method of controlling non-volatile semiconductor memory
US11675697B2 (en) 2010-03-18 2023-06-13 Kioxia Corporation Controller for controlling non-volatile semiconductor memory and method of controlling non-volatile semiconductor memory
US11977481B2 (en) 2010-03-18 2024-05-07 Kioxia Corporation Controller for controlling non-volatile semiconductor memory and method of controlling non-volatile semiconductor memory
JP2014029737A (ja) * 2013-11-13 2014-02-13 Chiba Univ 記録装置
JPWO2015114829A1 (ja) * 2014-02-03 2017-03-23 株式会社日立製作所 情報処理装置

Also Published As

Publication number Publication date
US20100017562A1 (en) 2010-01-21
TW200945036A (en) 2009-11-01
US8364884B2 (en) 2013-01-29
KR20090117939A (ko) 2009-11-16
EP2248024A4 (en) 2012-11-14
TWI397815B (zh) 2013-06-01
WO2009107426A1 (en) 2009-09-03
EP2248024A1 (en) 2010-11-10
CN101681302B (zh) 2012-05-30
CN101681302A (zh) 2010-03-24
KR101132497B1 (ko) 2012-04-12

Similar Documents

Publication Publication Date Title
JP2009211192A (ja) メモリシステム
JP4256175B2 (ja) 不揮発性半導体メモリ
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
US20190220396A1 (en) Data Storage Device
JP4844639B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US12019602B2 (en) Key-value storage device and operating method thereof
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
KR101099804B1 (ko) 메모리 시스템
US20160062885A1 (en) Garbage collection method for nonvolatile memory device
US10922011B2 (en) Controllers configured to perform secure deletion, key-value storage devices including said controllers, and methods of operation thereof
KR102287760B1 (ko) 메모리 시스템 및 상기 메모리 시스템의 동작 방법
JP2011118469A (ja) メモリ管理装置およびメモリ管理方法
JP5166118B2 (ja) 半導体メモリの制御方法
KR20200086143A (ko) 저장 장치 및 그것의 데이터 처리 방법
JP2018120305A (ja) 半導体記憶装置及びその制御方法
KR20200032527A (ko) 메모리 시스템의 동작 방법 및 메모리 시스템
JP2004295865A (ja) 自動ブーティングシステム及び自動ブーティング方法
KR20230106915A (ko) 스토리지 장치의 구동 방법, 및 스토리지 장치
JP4235646B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JP5002629B2 (ja) メモリシステム
JP2023039459A (ja) メモリシステムおよび方法
JP2009217630A (ja) メモリシステム
JP4551938B2 (ja) メモリシステム
JP2009211202A (ja) メモリシステム
JP4985108B2 (ja) データ記憶装置およびその制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120508

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120911