JP2023044471A - メモリシステム及びメモリ制御方法 - Google Patents
メモリシステム及びメモリ制御方法 Download PDFInfo
- Publication number
- JP2023044471A JP2023044471A JP2021152518A JP2021152518A JP2023044471A JP 2023044471 A JP2023044471 A JP 2023044471A JP 2021152518 A JP2021152518 A JP 2021152518A JP 2021152518 A JP2021152518 A JP 2021152518A JP 2023044471 A JP2023044471 A JP 2023044471A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- write
- read
- host
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 207
- 238000000034 method Methods 0.000 title claims abstract description 98
- 238000006243 chemical reaction Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000004048 modification Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 230000000052 comparative effect Effects 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 239000000470 constituent Substances 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7206—Reconfiguration of flash memory system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Static Random-Access Memory (AREA)
- Memory System (AREA)
Abstract
【課題】 高速でのリードを可能にする。【解決手段】 実施形態のメモリシステムは、複数のメモリセルのそれぞれに2ビット以上のビット数のデータを保持可能なメモリと、前記各メモリセルにデータを書き込む制御と、前記各メモリセルに書き込まれたデータを読み出す制御とを行うメモリコントローラと、を具備し、前記メモリコントローラは、ホストから第1コマンドを受信すると、前記第1コマンドの対象となったデータを前記メモリから読み出し、読み出したデータの書き込み時の書き込み方式に対応したビット数よりも小さいビット数に対応する書き込み方式で前記読み出したデータを前記メモリに書き込む第1書き込み制御を行い、前記ホストから前記第1コマンドの対象となったデータに対するリードコマンドを受信すると、前記第1書き込み制御によって前記メモリに書き込まれたデータを読み出して前記ホストに転送する。【選択図】図5
Description
本発明の実施形態は、メモリシステム及びメモリ制御方法に関する。
近年、NAND型メモリ等の半導体記憶装置においては、微細化、大容量化の要求から、3次元構造化が図られるようになってきた。また、この種の半導体記憶装置では、メモリセルトランジスタを、1ビット(2値)のデータを保持可能なSLC(Single Level Cell)とする場合だけでなく、2ビット(4値)のデータを保持可能なMLC(Multi Level Cell)、3ビット(8値)のデータを保持可能なTLC(Triple Level Cell)、4ビット(16値)のデータを保持可能なQLC(Quad Level Cell)、5ビット(32値)のデータを保持可能なPLC(Penta Level Cell)として構成する場合がある。
しかしながら、メモリセルトランジスタが多値化されたことから読み出しの限界性能が低下し、ホストインタフェース速度の速度増加に拘わらず、十分に高速でのデータ転送を行うことができないことがある。
本実施形態は、高速でのリードを可能にすることができるメモリシステム及びメモリ制御方法を提供することを目的とする。
実施形態のメモリシステムは、複数のメモリセルを有し、前記複数のメモリセルのそれぞれに2ビット以上のビット数のデータを保持可能なメモリと、前記メモリの各メモリセルに書き込み可能なデータのビット数に対応した書き込み方式で前記各メモリセルにデータを書き込む制御と、前記各メモリセルに書き込まれたデータを読み出す制御とを行うメモリコントローラと、を具備し、前記メモリコントローラは、ホストから第1コマンドを受信すると、前記第1コマンドの対象となったデータを前記メモリから読み出し、読み出したデータの書き込み時の書き込み方式に対応したビット数よりも小さいビット数に対応する書き込み方式で前記読み出したデータを前記メモリに書き込む第1書き込み制御を行い、前記ホストから前記第1コマンドの対象となったデータに対するリードコマンドを受信すると、前記第1書き込み制御によって前記メモリに書き込まれたデータを読み出して前記ホストに転送する。
以下、図面を参照して本発明の実施形態について詳細に説明する。
本実施形態は、ホストからの要求に従って、記録されたデータをtRがより小さくなる書き込み方式に変更して記録し直すことで、リード時の性能を向上させるものである。
NAND型メモリの1つのメモリセルトランジスタに記録する情報量は、1ビット(SLC)から2ビット(MLC),3ビット(TLC)、4ビット(QLC)、5ビット(PLC)と増大する傾向にある。このように1つのメモリセルトランジスタに記憶できる情報量が増えると、少ないセル数でデバイスに必要な容量を確保できるようになるため、チップサイズは小さくなりコストを低減できる。しかし、多値化が進む、即ち、1つのメモリセルトランジスタに記録する情報のビット数(以下、セルビット数という)が多くなるほど、1つのメモリセルトランジスタから1ビットのデータを読み出すために必要な読み出し電圧の種類が多くなり、ホストからの要求に対してデータがホストに転送されるまでの時間(tR)は増大する。
なお、tRは、NAND型メモリの種類等に応じたメモリセルトランジスタのパラメータである。tRが増大すると、単位時間当たりに読み出し可能なデータ量を示す読み出しの限界性能(以下、限界リード性能という)は低下する。メモリデバイスの限界リード性能は、下記(1)~(3)の乗算によって決定される。
(1)1回の読み出し要求に対して、NAND型メモリの1ダイ(die)当たり読み出せるデータサイズ(ページサイズ)
(2)tRの逆数
(3)デバイスあたりのNANDダイ(die)数
近年、メモリデバイスとホストとの間のインタフェース(ホストインタフェース)の速度は向上してきている。これに対し、多値技術によってtRが増大すると、メモリデバイスの限界リード性能がホストインタフェースの速度よりも低下してしまう可能性がある。そうすると、ホストとメモリデバイスとの間のリード時のデータ転送が、メモリデバイスの限界リード性能により制限されてしまう。
(2)tRの逆数
(3)デバイスあたりのNANDダイ(die)数
近年、メモリデバイスとホストとの間のインタフェース(ホストインタフェース)の速度は向上してきている。これに対し、多値技術によってtRが増大すると、メモリデバイスの限界リード性能がホストインタフェースの速度よりも低下してしまう可能性がある。そうすると、ホストとメモリデバイスとの間のリード時のデータ転送が、メモリデバイスの限界リード性能により制限されてしまう。
そこで、限界リード性能を向上させるために、上記(1)のページサイズを大きくする、又は(3)のダイ数を増加させる方法が考えられる。しかしながら、(1)のページサイズの増加は、NAND型メモリのダイのコスト増を招来することになり、実現困難である。また、(3)のダイ数を増加させる手法を採用すると、メモリデバイス製品の容量が増加するが、製品需要との関係から容量を増加させるダイ数の増加は適切な対応とは言えない。また、デバイスの容量を変えることなく、ダイ数を増加させようとすると、ダイ容量の小さいNAND型メモリを用いることになり、コスト増となる。
また、メモリデバイスの限界リード性能を改善させるために、(2)のtRの逆数を大きくする方法も考えられる。同一のメモリデバイスであっても、セルビット数が異なる複数の書き込み方式を採用することが可能である。例えば、同一メモリデバイスに対して、QLCに対応した書き込み方式でデータ書き込みを行ったり、SLCに対応する書き込み方式でデータ書き込みを行ったりすることができる。そこで、データ記録時に、tRを小さくする書き込み方式、即ち、セルビット数が小さい書き込み方式を採用して書き込みを行うのである。しかしながら、tRを小さくするために、例えばtRが最小(セルビット数が最小)となる書き込み方式であるSLCを採用してデータを記録すると、記録可能な容量が低下してしまうという問題がある。
そこで、本実施形態においては、書き込み時には、SLCよりもセルビット数が大きい書き込み方式を採用して記録を行うと共に、データの読み出しを行う場合には、ホストからの要求に従って、データをよりtRが小さい(セルビット数が小さい)書き込み方式で記録し直しておくことで、リード時におけるメモリデバイスの限界リード性能を向上させるようになっている。
(メモリシステムの構成)
図1は本実施形態に係る半導体装置により構成されるメモリシステムを示すブロック図である。また、図2は図1中のメモリコントローラの具体的な構成の一例を示すブロック図である。
図1は本実施形態に係る半導体装置により構成されるメモリシステムを示すブロック図である。また、図2は図1中のメモリコントローラの具体的な構成の一例を示すブロック図である。
本実施形態のメモリシステム1は、メモリコントローラ3と4つのメモリチップ4A~4D(以下、4つのメモリチップ4A~4Dを区別する必要がない場合には代表してメモリチップ4という)を備える。メモリチップ4の個数は4に限定されるものではなく、1つ以上の任意の個数のメモリチップを採用することができる。なお、メモリコントローラ3とメモリチップ4によりメモリデバイスが構成される。
メモリシステム1は、ホスト2と接続可能である。ホスト2は、例えば、パーソナルコンピュータ、携帯端末、車載装置、サーバなどの電子機器である。ホスト2はプロセッサとしての中央処理装置(CPU)2aと、ROM(図示せず)、DRAM2bを有する。メモリシステム1は、ホスト2からのリクエストに応じて、ホスト2からのデータ(以下、単にデータという)を各メモリチップ4に記憶したり、各メモリチップ4に記憶されたデータを読み出してホスト2へ出力したりする。具体的には、メモリシステム1は、ホスト2からの書き込みリクエストに応じて各メモリチップ4へデータを書き込み、ホスト2からの読み出しリクエストに応じてデータを各メモリチップ4から読み出すことができる。
メモリシステム1は、メモリコントローラ3と複数のメモリチップ4とが1つのパッケージとして構成されるUFS(Universal Flash Storage)デバイス等であってもよいし、SSD(Solid State Drive)等であってもよい。図1では、メモリシステム1は、ホスト2と接続された状態として示してある。
メモリチップ4は、データを不揮発に記憶するNAND型フラッシュメモリ等により構成された半導体記憶装置である。図1に示すように、メモリコントローラ3と各メモリチップ4とはNANDバスを介して接続される。メモリコントローラ3は、ホスト2からの書き込みリクエストに従ってメモリチップ4へのデータの書き込みを制御する。また、メモリコントローラ3は、ホスト2からの読み出しリクエストに従ってメモリチップ4からのデータの読み出しを制御する。メモリコントローラ3は、ホスト2からのリクエストでなく自発的に、メモリチップ4に対するデータの書き込み及び読み出しを制御することがある。
図2において、メモリコントローラ3は、CPU11、ROM12、RAM(Random Access Memory)13、ECC(Error Check and Correct)回路14、ホストインタフェース(I/F)回路15、及びメモリI/F回路16を備える。CPU11、ROM12、RAM13、ECC回路14、ホストI/F回路15及びメモリI/F回路16は、互いに内部バス17により接続される。
ホストI/F回路15は、ホスト2からのデータを受信し、受信したデータに含まれるリクエストや書き込みデータなどを内部バス17に出力する。また、ホストI/F回路15は、メモリチップ4から読み出されたデータや、CPU11からの応答などをホスト2へ送信する。なお、ホスト2においても、ホストI/F回路15に対応する図示しないI/F回路を有している。
ホスト2とホストI/F回路15との間は、所定のインタフェースを介して接続される。例えば、このインタフェースとしては、eMMC(embedded Multi Media Card)のパラレルインタフェース、PCIe(Peripheral Component Interconnect-Express)のシリアル拡張インタフェース、M-PHYの高速シリアルインタフェース等の各種インタフェースが採用される。
メモリI/F回路16は、CPU11の指示に基づいてデータ等を各メモリチップ4へ書き込む処理及び各メモリチップ4から読み出す処理を制御する。
CPU11は、メモリコントローラ3を統括的に制御する。制御回路を構成するCPU11は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等である。CPU11は、ホストからホストI/F回路15経由でリクエストを受けた場合に、そのリクエストに従った制御を行う。例えば、CPU11は、ホストからのリクエストに従って、各メモリチップ4へのデータの書き込みをメモリI/F回路16へ指示する。また、CPU11は、ホストからのリクエストに従って、各メモリチップ4からのデータの読み出しを、メモリI/F回路16へ指示する。
RAM13は、ホストから受信したデータを各メモリチップ4へ記憶するまでに一時格納したり、各メモリチップ4から読み出したデータをホストへ送信したりするまでに一時格納する。RAM13は、例えば、SRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)などの汎用メモリである。また、RAM13には、論物変換テーブルを記録する領域LUT13aが設けられる。
CPU11は、RAM13に格納されるデータに対して、各メモリチップ4上の格納領域(以下、メモリ領域という)を決定する。データは、内部バス17経由でRAM13に格納される。CPU11は、メモリ領域の決定を、例えば、書き込み単位であるページ単位のデータ、すなわちページデータ、に対して実施する。
メモリチップ4のメモリ領域には物理アドレスが割当てられている。CPU11は、データの書き込み先のメモリ領域を、物理アドレスを用いて管理する。CPU11は、決定したメモリ領域の物理アドレスを指定してデータをメモリチップ4へ書き込むようメモリI/F回路16へ指示する。CPU11は、データの論理アドレス(ホストが管理する論理アドレス)と、そのデータが書き込まれた物理アドレスとの対応を示す論物変換テーブルをRAM13の領域LUT13aに格納する。CPU11は、論理アドレスを含む読み出しリクエストをホストから受信した場合は、論理アドレスに対応する物理アドレスを特定し、物理アドレスを指定してデータの読み出しをメモリI/F回路16へ指示する。
ECC回路14は、RAM13に格納されたデータを符号化して符号語を生成する。また、ECC回路14は、各メモリチップ4から読み出された符号語を復号する。
図2では、メモリコントローラ3が、ECC回路14とメモリI/F回路16をそれぞれ備える構成例を示した。しかし、ECC回路14がメモリI/F回路16に内蔵されていてもよい。また、ECC回路14が、各メモリチップ4に内蔵されていてもよい。
図2では、メモリコントローラ3が、ECC回路14とメモリI/F回路16をそれぞれ備える構成例を示した。しかし、ECC回路14がメモリI/F回路16に内蔵されていてもよい。また、ECC回路14が、各メモリチップ4に内蔵されていてもよい。
ホスト2からライトコマンドによる書き込みリクエストを受信した場合、メモリコントローラ3は次のように動作する。CPU11は、書き込みデータをRAM13に一時記憶させる。CPU11は、RAM13に格納されたデータを読み出し、ECC回路14に入力する。ECC回路14は、入力されたデータを符号化し、符号語をメモリI/F回路16に提供する。メモリI/F回路16は、入力された符号語を各メモリチップ4に書き込む。
ホスト2からリードコマンドによる読み出しリクエストを受信した場合、メモリコントローラ3は次のように動作する。メモリI/F回路16は、各メモリチップ4から読み出した符号語をECC回路14に提供する。ECC回路14は、入力された符号語を復号し、復号されたデータをRAM13に格納する。CPU11は、RAM13に格納されたデータを、ホストI/F回路15を介してホスト2に送信する。
図3はメモリチップ4の構成例を示すブロック図である。メモリチップ4は、NAND I/Oインタフェース21、制御回路22、NANDメモリセルアレイ23、ビット線ドライバ24及びワード線ドライバ25を備える。NAND I/Oインタフェース21は、メモリコントローラ3から出力された、書き込みイネーブル信号WEn、読み出しイネーブル信号REn、アドレスラッチイネーブル信号ALE、コマンドラッチイネーブル信号CLEなどの制御信号を受け取る。また、NAND I/Oインタフェース21は、メモリコントローラ3から出力された、コマンド、アドレス、データを受け取る。
ビット線ドライバ24は、複数のビット線BLに独立して電圧(または電流)を印加し、また、複数のビット線BLの電圧(または電流)を独立して検出することができるように構成されている。
ワード線ドライバ25は、複数のワード線および選択ゲート線に独立して電圧を印加することができるように構成されている。
制御回路22は、NAND I/Oインタフェース21から制御信号、コマンド、アドレス、データを受け取り、それらに基づいて、メモリチップ4の動作を制御する。制御回路22は、例えば、制御信号、コマンド、アドレス、データに基づいてワード線ドライバ25やビット線ドライバ24を制御し、書き込み動作、読み出し動作、消去動作等を実行する。
ビット線ドライバ24及びワード線ドライバ25に供給する電圧は、電圧発生回路26によって発生する。電圧発生回路26は、制御回路22に制御されて、必要な電圧を発生する。例えば、制御回路22は、電圧発生回路26を制御して、ワード線ドライバ25によって複数のワード線WLへ印加される電圧や、ビット線ドライバ24によって複数のビット線BLに印加される電圧(ビット線電圧)を設定する。こうして、NANDメモリセルアレイ23に含まれるメモリセル(メモリセルトランジスタ)MTに対する書き込み、メモリセルトランジスタMTからの読み出し及びメモリセルトランジスタMTの消去が行われる。
例えば、制御回路22は、ライトコマンドが入力された場合、ライトコマンドに伴って入力されたデータをNANDメモリセルアレイ23上の指定されたアドレスへ書き込むようビット線ドライバ24とワード線ドライバ25を制御する。また、制御回路22は、リードコマンドが入力された場合、NANDメモリセルアレイ23上の指定されたアドレスからデータを読み出すようビット線ドライバ24とワード線ドライバ25を制御する。
(ホストのコマンド)
ホスト2のCPU2aは、データの記録時には、ライトコマンドを発生し、データの論理アドレス(例えば先頭アドレスとデータサイズ)及びデータと、ライトコマンドとをメモリコントローラ3に送信する。また、CPU2aは、データの読み出し時には、リードコマンドを発生し、データの論理アドレス(例えば先頭アドレス及びデータサイズ)とリードコマンドとをメモリコントローラ3に送信する。なお、データの記録時は、例えば、メモリデバイスにおいて最も大きいセルビット数を得る書き込み方式での書き込みが行われることが多い。
ホスト2のCPU2aは、データの記録時には、ライトコマンドを発生し、データの論理アドレス(例えば先頭アドレスとデータサイズ)及びデータと、ライトコマンドとをメモリコントローラ3に送信する。また、CPU2aは、データの読み出し時には、リードコマンドを発生し、データの論理アドレス(例えば先頭アドレス及びデータサイズ)とリードコマンドとをメモリコントローラ3に送信する。なお、データの記録時は、例えば、メモリデバイスにおいて最も大きいセルビット数を得る書き込み方式での書き込みが行われることが多い。
更に、本実施形態においては、CPU2aは、データの読み出しの前の所定のタイミングで、高速リード準備コマンドを発生するようになっている。第1コマンドとしての高速リード準備コマンドは、メモリコントローラ3において、セルビット数が比較的大きい書き込み方式で書き込まれたデータを一端読み出し、セルビット数が書き込み時よりも小さい書き込み方式で再記録するモード(以下、高速リード準備モードという)を実施するためのコマンドである。CPU2aは、高速リード準備コマンドの送信に際して、読み出す可能性が高いデータの論理アドレスの情報をメモリコントローラ3に送信するようになっている。
例えば、ゲームのデータやOS(オペレーションシステム)のデータ等においては、頻繁に使用されるデータ、或いは、他のデータよりも高速読み出しが必要なデータが存在する。また、書き込み直後においては当該書き込まれたデータにアクセするされる可能性が高い(時間的ローカリティー)場合や、読み出されたデータのアドレスに隣接するアドレスのデータはアクセスされる可能性が高い(空間的ローカリティー)場合などもある。
CPU2aは、このようなデータアクセスに関する知識を有しており、このようなデータ(以下、高速リードデータという)の論理アドレスを指定して、高速リード準備コマンドと共にメモリコントローラ3に送信する。
なお、書き込み時において、SLCに対応した書き込み方式で記録を行うことも考えられる。しかしながら、常時高速読み出しが必要なデータばかりではなく、例えばプログラムの特性によってはある一時期だけ高速読み出しが必要なデータがある場合がある。本実施形態における高速リード準備コマンドは、ある期間に高速読み出しを行いたい場合に極めて有効である。
図4は高速リード準備コマンド及び後述する書き戻しコマンドを実現するためのコマンドフォーマットの一例を示す説明図である。図4の例はUFSデバイスを想定したものである。
UFSプロトコルではホストからデバイスへのコマンド送信のためにコマンドUPIU(UFS Protocol Information Unit)を用いるが、その中のbyte[16]からbyte[31]のCDB(Command Descriptor Block)を使用して様々なコマンド種類を実現している。図4の例は、このCDBを利用した高速リード準備コマンド及び書き戻しコマンドコマンドのフォーマット例である。
OPERATION CODEは、新設するコマンド番号である。MODEには、「高速リード準備コマンド」であるか「書き戻しコマンド」であるかを区別する情報が記述される。LOGICAL BLOCK ADDRESSは、論理アドレスを示す。TRANSFER LENGTHは、対象とするデータサイズを示す。
例えば、ホスト2は、図4に示すフォーマットの高速リード準備コマンドをメモリコントローラ3に送信する。メモリコントローラ3のCPU11は、高速リード準備コマンドを受信すると高速リード準備モードに実行する。即ち、CPU11は、LUT13aに展開されているデータを参照して、ホスト2から指定された論理アドレスを物理アドレスに変換する。CPU11は、変換後のアドレス及びリードコマンドをメモリチップ4に送信する。これにより、メモリチップ4の制御回路22は、ビット線ドライバ24及びワード線ドライバ25を駆動して、ホスト2により指定されたデータを、メモリコントローラ3によって指定されたアドレスから読み出してメモリコントローラ3に送信する。CPU11は、読み出されたデータをRAM13に保持する。
更に、CPU11は、高速リードデータの書き込み時の書き込み方式よりもセルビット数が小さくなる書き込み方式を選択して、RAM13に記憶されたデータをメモリチップ4に書き込む。この場合には、CPU11は、書き込み方式に対応したアドレスを指定する。即ち、CPU11は、読み出したデータの物理アドレスを書き込み方式に対応した物理アドレスに変換してLUT13aを更新すると共に、この物理アドレス及びライトコマンドをメモリチップ4に送信する。メモリチップ4の制御回路22は、指定されたアドレスに基づいてビット線ドライバ24及びワード線ドライバ25を駆動して、指定された書き込み方式でデータを書き込む。
(作用)
次に、このように構成された実施形態の動作について図5から図8を参照して説明する。図5は第1の実施形態における読み出し時のタイミングチャートを示し、図6は比較例における書き込み及び読み出し時のタイミングチャートを示している。また、図7はメモリチップ4のメモリ領域を説明するためのメモリマップを示し、図8は第1の実施形態の動作を示すフローチャートである。
次に、このように構成された実施形態の動作について図5から図8を参照して説明する。図5は第1の実施形態における読み出し時のタイミングチャートを示し、図6は比較例における書き込み及び読み出し時のタイミングチャートを示している。また、図7はメモリチップ4のメモリ領域を説明するためのメモリマップを示し、図8は第1の実施形態の動作を示すフローチャートである。
先ず、図6に示す比較例の書き込み及び読み出し動作について説明する。ホスト2は、書き込み時にライトコマンドを発生して、書き込むデータの論理アドレス(先頭アドレス(X)及びデータサイズ(Y))と、書き込むデータ(ライトデータ)をメモリコントローラ3に出力する(図6(1),(2))。メモリコントローラ3は、論物変換によりライトデータの論理アドレスを物理アドレスに変換してLUT13aを更新すると共に、変換後の物理アドレスを指定してライトデータをメモリチップ4に送信する。メモリチップ4は、物理アドレスで指定されたNANDメモリセルアレイ23のメモリ領域にライトデータを書き込む。なお、メモリコントローラ3は、ライトデータを所定のセルビット数に対応した書き込み方式で書き込むように、メモリチップ4に指示を与える。例えば、QLCに対応したメモリチップ4の場合には、QLCに対応した書き込み方式で書き込みが行われる(図6(3)多値データ書き込み)。
次に、ホスト2がメモリチップ4に書き込まれたデータの読み出しを行うものとする。この場合には、ホスト2は、リードコマンドを発生して、読み出すデータの論理アドレス(先頭アドレス(X)及びデータサイズ(Y))をメモリコントローラ3に出力する(図6(4))。メモリコントローラ3は、LUT13aに展開された情報を参照して、リードデータの論理アドレスを物理アドレスに変換し、変換後の物理アドレスを指定してメモリチップ4のデータを読み出す(図6(5)多値データ読み出し)。このデータは、例えば、QLC等のセルビット数が大きい書き込み方式で書き込まれており、メモリチップ4の制御回路22は、この書き込み方式に対応した読み出し制御を行って、リードデータを取得して、メモリコントローラ3に転送する。メモリコントローラ3は、受信したリードデータをホスト2に転送し、リードレスポンスを返す(図6(6),(7))。上述したように、セルビット数が大きい書き込み方式で書き込まれたデータの読み出しでは、tRが大きくなる。
本実施形態においては、書き込み時の動作は、比較例と同様である。本実施形態においては、読み出し時において、実際の読み出し前に高速リード準備モードが実行される点が比較例と異なる。図5は読み出し時の動作のみを示している。読み出しに際して、ホスト2は、実際の読み出し前の所定のタイミングにおいて、高速リード準備コマンドを発生する。即ち、ホスト2のCPU2aは、高速読み出しが必要であると判断したデータ(高速リードデータ)の論理アドレス(先頭アドレス(X)及びデータサイズ(Y))と高速リード準備コマンドとをメモリコントローラ3に送信する(図5(1))。メモリコントローラ3のCPU11は、図8のS1において、高速リード準備モード指示の待機状態である。CPU11は、高速リード準備コマンド及び論理アドレスを受信すると(S1のYES判定)、高速リード準備モードを実行する。即ち、CPU11は、LUT13aに展開された情報を参照して受信した論理アドレスを物理アドレスに変換し(S2)、変換後の物理アドレスを指定してメモリチップ4のデータを読み出す制御(以下、準備読み出し制御という)を行う。この読み出し指示されたデータは、例えば、QLC等のセルビット数が大きい書き込み方式で書き込まれており、メモリチップ4の制御回路22は、この書き込み方式に対応した読み出し(図5(2)多値データ読み出し)を行って、高速リードデータを取得して、メモリコントローラ3に転送する(S4)。
準備読み出し制御では、CPU11は、受信した高速リードデータをRAM13に保持する。CPU11は、準備読み出し制御によって読み出した高速リードデータを、セルビット数をより小さくする(tRを小さくする)書き込み方式で、メモリチップ4に書き込む(図5(3))。例えば、高速リードデータが書き込み時にQLCに対応する書き込み方式で書き込まれている場合には、TLC,MLC,SLCに対応する書き込み方式で書き込みを行う。CPU11は、準備読み出し制御によって読み出した高速リードデータを再度書き込むメモリ領域を設定し、当該メモリ領域に対応してLUT13aを更新する。CPU11は高速リードデータを再度書き込む制御(以下、準備書き込み制御という)のためのコマンドを書き込み先のアドレスと共にメモリチップ4に送信する(S6)。メモリチップ4の制御回路22は、指定されたNANDメモリセルアレイ23のメモリ領域に高速リードデータを書き込む(S7)。この場合には、制御回路22は、tRを小さくする(セルビット数を小さくする)書き込み方式で書き込むように、各部を制御する。例えば、SLCに対応した書き込み方式で書き込みが行われる。
図7はこのような準備書き込み制御前後のメモリ領域を示している。図7の例では、NANDメモリセルアレイ23は、SLCに対応した書き込み方式で書き込みを行うSLC領域と、QLCに対応した書き込み方式で書き込みを行うQLC領域との2つのメモリ領域が設定されている。なお、使用方法としてはSLC/QLCの書き込み方式が設定されているが、各方式用の領域が完全に固定されているわけではない。SLC領域は、管理領域と論物変換テーブルを記憶するLUT領域とを含む。いま例えば、高速リードデータが、書き込み時には、QLC領域中の領域R4に書き込まれているものとする。高速リード準備モードにおいては、メモリコントローラ3によって、領域R4に書き込まれている高速リードデータは準備読み出し制御により読み出され、例えば、SLC領域中の領域R3に準備書き込み制御により書き込まれる。高速リード準備モード完了時点では、LUT13aに記憶された高速リードデータの物理アドレスは、領域R3を示すものとなる。
メモリコントローラ3のCPU11は、第1書込み制御としての準備書き込み制御が終了すると、高速リード準備モードが完了したことを示す高速リード準備コマンド応答を発生して、ホスト2に送信する(図5(4))。なお、この高速リード準備コマンド応答は、ホスト2の指定によって、省略することも可能である。
次に、ホスト2がメモリチップ4に書き込まれた高速リードデータの読み出しを行うものとする。この場合には、ホスト2は、リードコマンドを発生して、読み出す高速リードデータの論理アドレス(先頭アドレス(X)及びデータサイズ(Y))をメモリコントローラ3に出力する(図5(5))。メモリコントローラ3は、S8において、リードコマンドの待機状態であり、リードコマンドを受信すると(S8のYES判定)、LUT13aの情報を参照して、高速リードデータの論理アドレスを物理アドレスに変換し、変換後の物理アドレス、例えば図7では領域R3を示す物理アドレスを指定してメモリチップ4のデータを読み出す(S9、図5(6))。この高速リードデータは、準備書き込み制御により、例えば、SLC等のセルビット数が小さい書き込み方式で書き込みが行われており、メモリチップ4の制御回路22は、この書き込み方式に対応した読み出し制御を行って、高速リードデータを取得する。制御回路22は読み出した高速リードデータをメモリコントローラ3に転送する。メモリコントローラ3は、受信した高速リードデータをホスト2に転送し、リードレスポンスをホスト2に送信する(図5(7),(8))。高速リードデータは、tRが小さい(セルビット数が小さい)書き込み方式で書き込まれており、高速の読み出しが可能となる。
このように本実施形態においては、ホストからの要求に従って、記録されたデータをtRがより小さくなる書き込み方式に変更して記録し直すことで、リード時の性能を向上させることができる。これにより、メモリデバイスからホストへのデータ転送速度がtRにより律速されてしまうことを防止し、高速でのデータ読出しが可能となる。また、ホスト指定のデータのみを対象とすることで、デバイスの記録可能な容量に対する悪影響を抑えることが可能である。
(第2の実施形態)
図9は第2の実施形態に採用される動作フローを示すフローチャートである。図9において図8と同一の手順には同一符号を付して説明を省略する。本実施形態のハードウェア構成は第1の実施形態と同様であり説明を省略する。
図9は第2の実施形態に採用される動作フローを示すフローチャートである。図9において図8と同一の手順には同一符号を付して説明を省略する。本実施形態のハードウェア構成は第1の実施形態と同様であり説明を省略する。
第1の実施形態においては、高速リード準備モードを採用することでリード性能を向上させたが、セルビット数が大きい書き込み方式で記録されたデータをセルビット数がより小さい書き込み方式で記録し直すことから、メモリセルトランジスタの記録密度が減少し、メモリデバイスとして記録可能な容量が減少する。そこで、本実施形態は、高速リードをする必要がなくなったデータを再びセルビット数をより大きくする書き込み方式で書き戻すように制御するものである。
ホスト2は、第1の実施形態と同様に、高速リード準備コマンドを発行することができると共に、高速リードデータに設定したデータを、tRがより大きい(セルビット数がより大きい)書き込み方式、例えば、記録時の書き込み方式で書き戻すための第2コマンドとしての書き戻しコマンドを発行する。なお、メモリコントローラ3において、準備書き込み制御により高速リードデータを書き込むメモリ領域が所定の領域に設定されている場合には、ホスト2は個別の高速リードデータに対応する論理アドレスを指定することなく、書き戻しコマンドのみを発行してもよい。また、メモリコントローラ3において、個別の高速リードデータ毎に通常速度で読み出すデータに戻す場合には、ホスト2は、書き戻しコマンドと共に書き戻す高速リードデータを指定するための論理アドレスを発行する。
メモリコントローラ3のCPU11は、図9のS8において読み出し指示が発生したか否かを判定し、読み出し要求がない場合(S8のNO判定)には、S10において書き戻し指示又は電源オフ指示があったか否かを判定する。書き戻し指示又は電源オフ指示がない場合(S10のNO判定)場合には、CPU11はS8に処理を戻して、読み出し要求が発生したか否かを判定する。
いま、ホスト2が書き戻しコマンド発生して、メモリコントローラ3に送信するものとする。メモリコントローラ3のCPU11は、この書き戻しコマンドを受信すると(S10のYES判定)、高速リードデータをセルビット数がより大きい書き込み方式で書き戻す書き戻し制御を行う。即ち、CPU11は、書き戻し制御において、LUT13aに記憶されている高速リードデータのメモリ領域の物理アドレスを指定して、読み出しを行う(S11)。CPU11は、読み出したデータをRAM13に格納する。次に、CPU11は、LUT13aに記憶されている高速リードデータのメモリ領域の物理アドレスを、セルビット数がより大きい書き込み方式に対応したメモリ領域の物理アドレスに変換して、LUT13aの内容を更新する(S12)。CPU11は、更新した物理アドレスを指定して、高速リードデータの書き戻し指示をメモリチップ4に送信する(S13)。
メモリチップ4の制御回路22は、指定されたNANDメモリセルアレイ23のメモリ領域に書き戻すデータを書き込む(S14)。この場合には、制御回路22は、tRを大きくする(セルビット数を大きくする)か又は元に戻す書き込み方式で書き込むように、各部を制御する。例えば、QLCに対応したメモリチップ4の場合には、QLCに対応した書き込み方式で書き込みが行われる。
なお、ホスト2は、電源オフ時には、電源オフの前に書き戻しコマンドを発行して、全ての高速リードデータをセルビット数がより大きい書き込み方式で記録し直すように制御を行ってもよい。或いは、メモリコントローラ3は、電源オフが指示されると、書き戻しコマンドを受信しない場合でも、当該電源オフの前に、全ての高速リードデータをセルビット数がより大きい書き込み方式で記録し直すように制御を行ってもよい。図9のS10はこの場合の例を示している。
なお、CPU11は、電源オフの前に、LUT13aの内容をメモリチップ4に転送して、NANDメモリセルアレイ23の領域R2に保持させる。
このように本実施形態においては、書き戻しコマンドを用いることで、ホストが必要な期間、必要なデータのみをtRの小さい(セルビット数が小さい)書き込み方式で保持することができる。これにより、メモリデバイス全体の容量に対する影響を抑制しながら、リード特性を向上させることができる。
(変形例)
図10は変形例を示すブロック図である。図10において図2と同一の構成要素には同一符号を付して説明を省略する。
図10は変形例を示すブロック図である。図10において図2と同一の構成要素には同一符号を付して説明を省略する。
第2の実施形態においては、準備読み出し制御を行うことにより、セルビット数が大きい書き込み方式で記録されていた高速リードデータは以後利用できない状態での読み出し(以下、移動モードの読み出しという)が行われた。しかし、書き戻し制御を行うことを考慮すると、セルビット数が大きい書き込み方式で記録されていた高速リードデータについても、領域を消去可能にしないで残しておく状態の読み出し(以下、コピーモードの読み出しという)を行うようにしてもよい。そこで、本実施形態においては、準備読み出し制御に際して、セルビット数が大きい書き込み方式で記録されていた高速リードデータのメモリ領域を記憶させておき、書き戻し制御時に、高速リードデータが記録されていた例えばSLC領域を消去可能にすると共に、記憶したメモリ領域の情報によりLUT13aを更新する。例えば、CPU11は、RAM13の領域LUTS13bにセルビット数が大きい書き込み方式で記録されていた高速リードデータのメモリ領域の物理アドレスと、論理アドレスとの対応関係の情報を記憶させることで、コピーモードの読み出しを可能にする。そして、CPU11は、書き戻し制御時に、LUT13bの情報を用いて、LUT13aを更新する。
図11はこの場合の動作を示すフローチャートである。図11において、図8と同一の手順には同一符号を付して説明を省略する。
図11に示すように、準備読み出し制御による読み出しが行われると、CPU11は、読み出しを行った物理アドレスと、論理アドレスとの対応をLUTS13bに登録する(S21)。また、CPU11は、準備書き込み制御の書き込み先の物理アドレスによりLUT13aを更新する(S5)。これにより、以後の高速リードデータの読み出しにおいては、セルビット数が小さい書き込み方式で書き込まれた高速リードデータが読み出される。一方、CPU11は、書き戻しコマンドを受信した場合、或いは電源オフ指示があった場合には(S10のYES判定)、LUTS13bから高速リードデータが元々書き込まれていた物理アドレスと論理アドレスとの対応関係を読み出して、LUT13aに記憶されている物理アドレスと論理アドレスとの対応関係の物理アドレスの情報を更新する(S22)。これにより、セルビット数が大きい書き込み方式でNANDメモリセルアレイ23に保存されている高速リードデータが以後読み出されることになり、メモリ領域の容量に対する影響を軽減することができる。
このように、この変形例では、高速リード準備モードにおいて、準備読み出し制御によって読み出した高速リードデータを消去可能にしない状態で保持することにより、書き戻し制御を実施する場合でも、論物変換テーブルの書換えのみで対応することができ、書き戻し制御のための読み出し及び書き込みを省略することができる。
なお、上記説明では、メモリコントローラ3は、移動モードの読出しと、コピーモードの読み出しの一方を行う例を説明したが、これらの読み出しモードが、切り替え可能に構成されていてもよい。例えば、メモリコントローラ3は、空き容量が所定の閾値よりも大きい場合には、コピーモードの読み出しを行い、空き容量が所定の閾値以下の場合には、移動モードの読み出しを行う等、動的に切り替え可能に構成されていてもよい。
また、ホスト2は、例えばデータにIDを付加し、電源オフ時に、書き戻し制御を行う高速リードデータと書き戻し制御を行わない高速リードデータとをIDによって事前にメモリコントローラ3に指定できるようになっていてもよい。この場合には、メモリコントローラ3は、RAM13に、IDと論理アドレスと物理アドレスとの対応関係を記録し、電源オフ指示が発生すると、IDを参照して、書き戻し制御を行う高速リードデータを決定すればよい。
(変形例)
図12は変形例を示すフローチャートである。上記各実施形態では、CPU11は、準備書き込み制御を行う際、読み出した高速リードデータの元の書き込み方式よりもtRが小さい(セルビット数が小さい)書き込み方式を選択するものと説明した。本実施形態は、この選択の一例を示すものである。
図12は変形例を示すフローチャートである。上記各実施形態では、CPU11は、準備書き込み制御を行う際、読み出した高速リードデータの元の書き込み方式よりもtRが小さい(セルビット数が小さい)書き込み方式を選択するものと説明した。本実施形態は、この選択の一例を示すものである。
図12では、CPU11は、高速リードデータの元の書き込み方式、即ち、準備読み出し制御前にNANDメモリセルアレイ23に記録されている高速リードデータの書き込み方式を取得する(S31)。例えば、この書き込み方式がQLCに対応したものであるものとすると、準備書き込み制御時の書き込み方式としては、SLC、MLC又はTLCに対応した書き込み方式が候補となる。
CPU11は、RAM13及びホストI/F回路15を制御して、ホストインタフェース速度及びNANDメモリセルアレイ23の空き容量の情報を取得する(S32、S33)。CPU11は、取得した情報に基づいて準備書き込み制御時の書き込み方式を決定する(S34)。即ち、CPU11は、ホストインタフェース速度よりも高速の限界リード性能を得るために必要なtR(セルビット数)が得られる書き込み方式を採用する。例えば、ホストインタフェース速度よりも高速の限界リード性能が得られるならば、SLCでなく、TLCやMLCに対応した書き込み方式を採用してもよい。なお、CPU11は、十分に高速の限界リード性能が得られない場合には、SLCに対応した書き込み方式を選択する。
また、CPU11は、十分な空き容量が確保できる書き込み方式を採用する。例えば、SLC,MLC,TLCのいずれに対応した書き込み方式を採用してもホストインタフェース速度よりも高速の限界リード性能が得られる場合には、空き容量のサイズに応じて、より空き容量が大きくなる書き込み方式を採用してもよい。
このように、この変形例では、十分な空き容量を確保しつつ、限界リード性能を向上させることができる。
本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
1…メモリシステム、2…ホスト、2a…CPU、3…メモリコントローラ、4…メモリチップ、11…CPU、12…ROM12、13…RAM、13a…LUT、13b…LUTS、14…ECC回路、15…ホストI/F回路、16…メモリI/F回路、17…内部バス、21…NAND I/Oインタフェース、22…制御回路、23…NANDメモリセルアレイ、24…ビット線ドライバ、25…ワード線ドライバ、26…電圧発生回路。
Claims (8)
- 複数のメモリセルを有し、前記複数のメモリセルのそれぞれに2ビット以上のビット数のデータを保持可能なメモリと、
前記メモリの各メモリセルに書き込み可能なデータのビット数に対応した書き込み方式で前記各メモリセルにデータを書き込む制御と、前記各メモリセルに書き込まれたデータを読み出す制御とを行うメモリコントローラと、を具備し、
前記メモリコントローラは、ホストから第1コマンドを受信すると、前記第1コマンドの対象となったデータを前記メモリから読み出し、読み出したデータの書き込み時の書き込み方式に対応したビット数よりも小さいビット数に対応する書き込み方式で前記読み出したデータを前記メモリに書き込む第1書き込み制御を行い、前記ホストから前記第1コマンドの対象となったデータに対するリードコマンドを受信すると、前記第1書き込み制御によって前記メモリに書き込まれたデータを読み出して前記ホストに転送する
メモリシステム。 - 前記メモリコントローラは、前記ホストから第2コマンドを受信した場合又は電源オフの指示を受けた場合には、前記第1書き込み制御によって前記メモリに書き込まれたデータを読み出し、この読み出したデータを、前記第1書き込み制御における書き込み方式に対応したビット数よりも大きいビット数に対応する書き込み方式で前記メモリに書き込む第2書き込み制御を行う
請求項1に記載のメモリシステム。 - 前記メモリは、異なる書き込み方式にそれぞれ対応したメモリ領域を有し、
前記メモリコントローラは、前記第1コマンドに応じて読み出したデータを前記第1書き込み制御における書き込み方式に対応した前記メモリ領域に書き込む
請求項1に記載のメモリシステム。 - 前記メモリコントローラは、前記ホストから指定されたデータの論理アドレスを前記メモリの物理アドレスに変換する論物変換テーブルを有し、前記第1書き込み制御において、前記論物変換テーブルを更新する
請求項3に記載のメモリシステム。 - 前記メモリコントローラは、前記ホストから指定されたデータの論理アドレスを前記メモリの物理アドレスに変換する論物変換テーブルを有し、前記第1コマンドに応じて読み出したデータが記憶されていたメモリ領域の物理アドレスを保持し、前記第1書き込み制御において前記論物変換テーブルを更新し、前記第2書き込み制御において、保持された前記物理アドレスを用いて前記論物変換テーブルを更新する
請求項2に記載のメモリシステム。 - 前記メモリコントローラは、前記ホストとの間でデータを送受信するホストインタフェースによるデータ転送速度、前記メモリの空き容量に基づいて、前記第1書き込み制御における書き込み方式を決定する
請求項1に記載のメモリシステム。 - 前記第1コマンドは、セルビット数が大きい書き込み方式で書き込まれたデータを読み出し、セルビット数が書き込み時よりも小さい書き込み方式で再記録するモードを実施するためのコマンドである
請求項1に記載のメモリシステム。 - 複数のメモリセルを有し、前記複数のメモリセルのそれぞれに2ビット以上のビット数のデータを保持可能なメモリを制御するメモリコントローラによるメモリ制御方法であって、
前記メモリの各メモリセルに書き込み可能なデータのビット数に対応した書き込み方式で前記各メモリセルにデータを書き込み、
ホストから第1コマンドを受信すると、前記第1コマンドの対象となったデータを前記メモリから読み出し、読み出したデータの書き込み時の書き込み方式に対応したビット数よりも小さいビット数に対応する書き込み方式で前記読み出したデータを前記メモリに書き込む第1書き込み制御を行い、
前記ホストから前記第1コマンドの対象となったデータに対するリードコマンドを受信すると、前記第1書き込み制御によって前記メモリに書き込まれたデータを読み出して前記ホストに転送する
メモリ制御方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021152518A JP2023044471A (ja) | 2021-09-17 | 2021-09-17 | メモリシステム及びメモリ制御方法 |
TW111102891A TWI793993B (zh) | 2021-09-17 | 2022-01-24 | 記憶體系統及記憶體控制方法 |
TW112101924A TW202320077A (zh) | 2021-09-17 | 2022-01-24 | 記憶體系統及記憶體控制方法 |
CN202210144659.9A CN115831193A (zh) | 2021-09-17 | 2022-02-17 | 存储系统以及存储器控制方法 |
US17/752,259 US11809708B2 (en) | 2021-09-17 | 2022-05-24 | Memory system and memory control method |
US18/481,849 US20240028199A1 (en) | 2021-09-17 | 2023-10-05 | Memory system and memory control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021152518A JP2023044471A (ja) | 2021-09-17 | 2021-09-17 | メモリシステム及びメモリ制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023044471A true JP2023044471A (ja) | 2023-03-30 |
Family
ID=85522378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021152518A Pending JP2023044471A (ja) | 2021-09-17 | 2021-09-17 | メモリシステム及びメモリ制御方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11809708B2 (ja) |
JP (1) | JP2023044471A (ja) |
CN (1) | CN115831193A (ja) |
TW (2) | TW202320077A (ja) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008090876A (ja) | 2006-09-29 | 2008-04-17 | Toshiba Corp | 不揮発性半導体記憶装置 |
US8898374B2 (en) * | 2010-07-21 | 2014-11-25 | Silicon Motion, Inc. | Flash memory device and method for managing flash memory device |
JP6398697B2 (ja) | 2014-12-22 | 2018-10-03 | コニカミノルタ株式会社 | データ受信装置、データ受信方法及びプログラム |
US20160328179A1 (en) * | 2015-05-08 | 2016-11-10 | Micron Technology, Inc. | Multiple virtually over-provisioned, virtual storage devices created from a single physical storage device |
US20170075812A1 (en) * | 2015-09-16 | 2017-03-16 | Intel Corporation | Technologies for managing a dynamic read cache of a solid state drive |
US10572388B2 (en) | 2017-08-30 | 2020-02-25 | Micron Technology, Inc. | Managed NVM adaptive cache management |
US10713158B2 (en) * | 2018-06-28 | 2020-07-14 | Western Digital Technologies, Inc. | Non-volatile storage system with dynamic allocation of applications to memory based on usage monitoring |
CN110874184B (zh) | 2018-09-03 | 2023-08-22 | 合肥沛睿微电子股份有限公司 | 快闪记忆体控制器及相关电子装置 |
US20210255783A1 (en) * | 2020-02-19 | 2021-08-19 | Silicon Motion, Inc. | Method and apparatus for performing data storage management to enhance data reliability with aid of repeated write command detection |
US11049582B1 (en) * | 2020-05-07 | 2021-06-29 | Micron Technology, Inc. | Detection of an incorrectly located read voltage |
-
2021
- 2021-09-17 JP JP2021152518A patent/JP2023044471A/ja active Pending
-
2022
- 2022-01-24 TW TW112101924A patent/TW202320077A/zh unknown
- 2022-01-24 TW TW111102891A patent/TWI793993B/zh active
- 2022-02-17 CN CN202210144659.9A patent/CN115831193A/zh active Pending
- 2022-05-24 US US17/752,259 patent/US11809708B2/en active Active
-
2023
- 2023-10-05 US US18/481,849 patent/US20240028199A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230085813A1 (en) | 2023-03-23 |
TW202320077A (zh) | 2023-05-16 |
TWI793993B (zh) | 2023-02-21 |
CN115831193A (zh) | 2023-03-21 |
TW202314711A (zh) | 2023-04-01 |
US11809708B2 (en) | 2023-11-07 |
US20240028199A1 (en) | 2024-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10628319B2 (en) | Methods for caching and reading data to be programmed into a storage unit and apparatuses using the same | |
US8380919B2 (en) | Flash storage device, data storage system, and data writing method | |
KR102641521B1 (ko) | 키-밸류 스토리지 장치 및 이의 동작 방법 | |
US11630766B2 (en) | Memory system and operating method thereof | |
US11086568B2 (en) | Memory system for writing fractional data into nonvolatile memory | |
US20200218653A1 (en) | Controller, data storage device, and operating method thereof | |
US20190266096A1 (en) | Data storage device, method of operating the same, and storage system having the same | |
US8127072B2 (en) | Data storage device and method for accessing flash memory | |
US10818328B2 (en) | Nonvolatile memory device, operation method of the nonvolatile memory device, and operation method of memory controller controlling the nonvolatile memory device | |
US20200105351A1 (en) | Memory system and operating method thereof | |
JP2023531484A (ja) | 擬似非同期マルチプレーン独立読み取り | |
US11809326B2 (en) | Electronic system including host and memory system for performing read operation based on physical address received from the host | |
KR20200114212A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20210157544A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 | |
US20200081649A1 (en) | Data storage device, operation method thereof and storage system including the same | |
US20220229775A1 (en) | Data storage device and operating method thereof | |
US20240070062A1 (en) | Nonvolatile memory, memory system, and control method of nonvolatile memory | |
KR102695482B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20190227715A1 (en) | Memory controller and operating method thereof | |
KR20200121068A (ko) | 데이터 저장 장치 및 이의 동작 방법, 이를 위한 컨트롤러 | |
JP2023044471A (ja) | メモリシステム及びメモリ制御方法 | |
US11133060B2 (en) | Data storage device and operating method thereof | |
US20200394134A1 (en) | Data storage device and operating method thereof | |
JP2022047854A (ja) | メモリシステム | |
US12056367B2 (en) | Memory system and operating method thereof for performing urgent fine program operation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240312 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20240520 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20241009 |