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

メモリシステム Download PDF

Info

Publication number
JP2022047854A
JP2022047854A JP2020153868A JP2020153868A JP2022047854A JP 2022047854 A JP2022047854 A JP 2022047854A JP 2020153868 A JP2020153868 A JP 2020153868A JP 2020153868 A JP2020153868 A JP 2020153868A JP 2022047854 A JP2022047854 A JP 2022047854A
Authority
JP
Japan
Prior art keywords
data
cluster
controller
command set
memory chip
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
JP2020153868A
Other languages
English (en)
Inventor
慶久 小島
Yoshihisa Kojima
理気 鈴木
Riki Suzuki
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.)
Kioxia Corp
Original Assignee
Kioxia 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 Kioxia Corp filed Critical Kioxia Corp
Priority to JP2020153868A priority Critical patent/JP2022047854A/ja
Priority to US17/199,586 priority patent/US11416169B2/en
Publication of JP2022047854A publication Critical patent/JP2022047854A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • 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
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/1016Performance improvement
    • G06F2212/1024Latency reduction
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

【課題】メモリチップからコントローラへのデータの転送速度を向上させること。【解決手段】コントローラは、第1データがメモリチップの第1バッファに読み出された場合に、複数の第2記憶領域のうちの1つである第3記憶領域の先頭位置を示す1つの第1コマンドセットをメモリチップに送信する。第1データは、複数の第2記憶領域に格納されていた複数の第1データセグメントを含む。メモリチップの回路は、コントローラが第1コマンドセットをメモリチップに送信した後から、コントローラが第2コマンドセットをメモリチップに送信するまでの間に、第2データセグメントと、第3データセグメントと、をコントローラに出力する。第2データセグメントは、第3記憶領域に格納されていたデータセグメントである。第3データセグメントは、第3記憶領域とは異なる第4記憶領域に格納されていたデータセグメントである。【選択図】図7

Description

本実施形態は、メモリシステムに関する。
メモリセルアレイを備えたメモリチップと、メモリチップに対してデータの入出力を行うコントローラと、を備えたメモリシステムが知られている。このようなメモリシステムでは、メモリチップからコントローラへのデータの転送速度をできるだけ速くすることが要望されている。
特開2010-182254号公報 米国特許第10289308号明細書 米国特許出願公開第2015/0220275号明細書
一つの実施形態は、メモリチップからコントローラへのデータの転送速度を向上させることを目的とする。
一つの実施形態によれば、メモリシステムは、メモリチップと、コントローラと、を備える。前記メモリチップは、メモリセルアレイと、第1バッファと、回路と、を備える。前記メモリセルアレイは、間隔を空けずに配置された複数の第2記憶領域を含む第1記憶領域を有する。前記回路は、前記メモリセルアレイから前記第1バッファに前記第1記憶領域の単位でデータを読み出す。前記コントローラは、データに関連付けられた論理アドレスと、前記データが格納されている前記メモリチップ内の位置を示す物理アドレスとの関係を、前記第2記憶領域の単位で管理する。前記コントローラは、第1データが前記第1バッファに読み出された場合に、前記複数の第2記憶領域のうちの1つである第3記憶領域の先頭を示す第1位置情報を含む1つの第1コマンドセットを前記メモリチップに送信する。前記第1データは、前記第1記憶領域に格納されているデータであって、前記第1領域に含まれる前記複数の第2記憶領域にそれぞれ格納されていた複数の第1データセグメントを含む。前記回路は、前記コントローラが前記第1コマンドセットを前記メモリチップに送信した後から、前記コントローラが前記第1コマンドセットの次の第2コマンドセットを前記メモリチップに送信するまでの間に、第2データセグメントと、第3データセグメントと、を前記コントローラに出力する。前記第2データセグメントは、前記複数の第1データセグメントのうちの、前記第3記憶領域に格納されていたデータセグメントである。前記第3データセグメントは、前記複数の第1データセグメントのうちの、前記複数の第2記憶領域のうちの1つであって前記第3記憶領域とは異なる第4記憶領域に格納されていたデータセグメントである。
図1は、ホスト機器に接続された第1の実施形態のメモリシステムの構成例を示す図である。 図2は、第1の実施形態のメモリチップの構成例を示す図である。 図3は、第1の実施形態のブロックの回路構成を示す図である。 図4は、第1の実施形態のメモリシステムにおけるメモリセルアレイからコントローラまでのデータフローを説明するための模式的な図である。 図5は、第1の実施形態のメモリシステムにおけるデータのリードの動作を説明するためのタイミングチャートである。 図6は、第1の実施形態のメモリシステムにおいてデータレジスタに格納される1ページ分のデータを示す模式的な図である。 図7は、第1の実施形態のメモリシステムにおけるクラスタデータを転送する際の模式的なタイミングチャートである。 図8は、第1の実施形態のコントローラの動作の一例を示すフローチャートである。 図9は、第2の実施形態のメモリシステムにおけるスーパークラスタデータの構成例示す模式的な図である。 図10は、第2の実施形態のメモリシステムにおけるクラスタデータを転送する際の模式的なタイミングチャートである。 図11は、第2の実施形態のコントローラの動作の一例を示すフローチャートである。 図12は、第3の実施形態の拡張データアウトコマンドセットの構成の一例を示す模式的な図である。 図13は、第3の実施形態のメモリチップの構成の一例を示す模式的な図である。 図14は、第3の実施形態のメモリチップによる拡張データアウトコマンドセットに応じた動作を説明する模式的な図である。 図15は、第3の実施形態のコントローラの動作の一例を示すフローチャートである。 図16は、比較例が適用された場合において、図6に示されたクラスタデータを転送する際の模式的なタイミングチャートである。
以下に添付図面を参照して、実施形態のメモリシステムを詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
(第1の実施形態)
図1は、第1の実施形態のメモリシステムの構成例を示す図である。図1に示されるように、メモリシステム1は、ホスト機器300と接続可能である。ホスト機器300は、例えば、サーバ、パーソナルコンピュータ、またはモバイル型の端末のような情報処理装置が該当する。メモリシステム1は、ホスト機器300の外部記憶装置として機能する。ホスト機器300は、メモリシステム1に対し、リード要求またはライト要求などの、アクセス要求を送信することができる。
メモリシステム1は、1以上のメモリチップ100、および1つのコントローラ200を備える。メモリチップ100は、例えばNAND型フラッシュメモリである。本実施形態のメモリシステム1は、1以上のメモリチップ100として、メモリチップ100_0、100_1を備える。メモリシステム1に具備されるメモリチップ100の数は、2つに限定されない。
各メモリチップ100は、複数のメモリセルトランジスタを備え、データを不揮発に記憶することができる。メモリチップ100は、NANDバス400によってコントローラ200と接続される。メモリチップ100は、コントローラ200からの命令に基づいて動作する。メモリチップ100は、コントローラ200と、例えば8ビットの入出力信号IO<7:0>の送受信を行う。入出力信号IOのビット幅は8ビットに限定されない。入出力信号IO<7:0>は、例えばコマンド、アドレス、データである。また、メモリチップ100は、コントローラ200から制御信号を受信し、コントローラ200へステータス信号を送信する。
制御信号は、チップイネーブル信号CEn、コマンドラッチイネーブル信号CLE、アドレスラッチイネーブル信号ALE、ライトイネーブル信号WEn、一対のリードイネーブル信号RE、REn、一対のストローブ信号DQS、DQSn、およびライトプロテクト信号WPnを含む。
チップイネーブル信号CEnは、アクセスの対象となるメモリチップ100をイネーブル状態とするための信号である。信号IO<7:0>、DQS、DQSn、CLE、ALE、WEn、RE、REn、WPnは、2つのメモリチップ100_1、100_2に共通入力される。チップイネーブル信号CEnは、2つのメモリチップ100_1、100_2のそれぞれに個別に入力される。2つのメモリチップ100_1、100_2のうちのチップイネーブル信号CEnによってイネーブル状態とされたメモリチップ100が、信号IO<7:0>、DQS、DQSn、CLE、ALE、WEn、RE、REn、WPnに応じた動作を実行することができる。
一対のストローブ信号DQS、DQSnは、入出力信号IO<7:0>で送信されるデータを送り先に取り込むように指示する信号である。一対のストローブ信号DQS、DQSnは、コントローラ200およびメモリチップ100のうちの、入出力信号IO<7:0>の送り元が送信することができる。すなわち、一対のストローブ信号DQS、DQSnは、コントローラ200がメモリチップ100に送信することもできるし、メモリチップ100がコントローラ200に送信することもできる。
コマンドラッチイネーブル信号CLEは、入出力信号IO<7:0>がコマンドであることを示す信号である。アドレスラッチイネーブル信号ALEは、入出力信号IO<7:0>がアドレスであることを示す信号である。ライトイネーブル信号WEnは、入出力信号IO<7:0>で送信されるコマンドまたはアドレスをメモリチップ100に取り込むように指示する信号である。一対のリードイネーブル信号RE、REnは、メモリチップ100に入出力信号IO<7:0>を出力するように指示する信号である。メモリチップ100は、入力された一対のリードイネーブル信号RE、REnを遅延させて、一対のストローブ信号DQS、DQSnとして出力することができる。ライトプロテクト信号WPnは、メモリチップ100にプログラム処理およびイレース処理の実行の禁止を命令する信号である。プログラム処理およびイレース処理については後述する。
ステータス信号は、メモリチップ100の種々の状態を示し、レディービジー信号RyByを含む。レディービジー信号RyByは、メモリチップ100がレディー状態(Ry)であるかビジー状態(By)であるかを示す信号である。レディー状態(Ry)は、メモリチップ100がコントローラ200からコマンドを受信可能な状態である。ビジー状態(By)は、メモリチップ100がコントローラ200からコマンドを受信不可能な状態である。レディービジー信号RyByは、2つのメモリチップ100_1、100_2のそれぞれが個別にコントローラ200に送信することができる。コントローラ200は、ステータス信号やレディービジー信号RyByを受け取ることで、各メモリチップ100の状態を知ることができる。
コントローラ200は、ホスト機器300からの要求などに基づいて、メモリチップ100に対して種々の処理を命令することができる。
コントローラ200は、ホストインタフェース回路201、RAM(Random Access Memory)202、CPU203、バッファメモリ204、NANDインタフェース回路205、およびECC(error correction code)回路206を備える。コントローラ200は、例えばSoC(System-On-a-Chip)として構成され得る。コントローラ200は、FPGA(field-programmable gate array)やASIC(application specific integrated circuit)として構成されてもよい。コントローラ200は、複数のチップによって構成されてもよい。コントローラ200の各機能は、ソフトウェア、ハードウェア、またはこれらの組み合わせによって実現され得る。
ホストインタフェース回路201は、例えばSATA(Serial Advanced Technology Attachment)規格、SAS(Serial Attached SCSI)規格、またはPCI(Peripheral Components Interconnect) Express(登録商標)規格に準拠したバスを介してホスト機器300と接続される。ホストインタフェース回路201は、コントローラ200とホスト機器300との通信を司る。
NANDインタフェース回路205は、NANDバス400を介して各メモリチップ100と接続される。NANDインタフェース回路205は、コントローラ200とメモリチップ100との通信を司る。
CPU203は、コントローラ200の動作を制御する。
RAM202は、CPU203の作業領域として使用される。バッファメモリ204は、メモリチップ100に送信されるデータ、およびメモリチップ100から出力されたデータを一時的に保持する。RAM202およびバッファメモリ204は、例えばDRAM(dynamic random access memory)、SRAM(static random access memory)、またはこれらの組み合わせによって構成され得る。RAM202およびバッファメモリ204を構成するメモリの種類は、これらに限定されない。
ECC回路206は、メモリチップ100に送信されるデータに対して誤り訂正符号を用いた符号化を行う。また、ECC回路206は、メモリチップ100から受信された、符号化されたデータに対して復号を行うことで、データの誤りの検出および訂正を行う。
図2は、第1の実施形態の各メモリチップ100の構成例を示す図である。
メモリチップ100は、IO信号処理回路101、制御信号処理回路102、制御回路103、コマンドレジスタ104、アドレスレジスタ105、ステータスレジスタ106、電圧生成回路107、RyBy生成回路108、カラムバッファ109、カラムデコーダ110、データレジスタ111、センスアンプ112、メモリセルアレイ113、ロウアドレスバッファデコーダ114、およびロウアドレスデコーダ115を備える。
制御信号処理回路102は、制御信号を受信する。制御信号処理回路102は、受信した制御信号に基づいて、IO信号処理回路101に送られてきた入出力信号IO<7:0>がコマンド、アドレス、およびデータのいずれであるかを判断する。制御信号処理回路102は、判断結果をIO信号処理回路101に通知する。また、制御信号処理回路102は、受信した制御信号を制御回路103に転送する。また、制御信号処理回路102は、コントローラ200によって一対のストローブ信号DQS、DQSnがトグルされたタイミングで、IO信号処理回路101に入出力信号IO<7:0>を取り込ませる。
IO信号処理回路101は、IOバッファ120を備えている。IOバッファ120は、コントローラ200との間で入出力信号IO<7:0>を送受信するためのバッファ回路である。IO信号処理回路101は、入出力信号IO<7:0>として送られてきたデータをIOバッファ120に受ける。IO信号処理回路101は、IOバッファ120の内容を制御信号処理回路102から指示された一対のストローブ信号DQS、DQSnのトグルのタイミングで取り込む。IO信号処理回路101は、入出力信号IO<7:0>として送られてきたコマンド、アドレス、データを、夫々、コマンドレジスタ104、アドレスレジスタ105、データレジスタ111に振り分けて格納する。
アドレスレジスタ105に格納されたアドレスは、ロウアドレスおよびカラムアドレスを含む。ロウアドレスはロウアドレスバッファデコーダ114に送られる。カラムアドレスはカラムバッファ109に送られる。
制御回路103は、制御信号処理回路102を介して受信する各種制御信号に基づいて状態(ステート)遷移する状態遷移回路(ステートマシン)である。制御回路103は、各種制御信号と、コマンドレジスタ104に格納されたコマンドと、に基づいてメモリチップ100全体の動作を制御する。
また、制御回路103は、動作の制御の状態または動作の制御の結果などを示すステータス情報を生成して、ステータス情報をステータスレジスタ106に格納する。制御回路103は、ステータスレジスタ106に格納されたステータス情報を、コントローラ200からのステータスリードコマンドに応じてIO信号処理回路101を介して出力する。
RyBy生成回路108は、制御回路103による制御の下でレディービジー信号RyByの状態をレディー状態(Ry)とビジー状態(By)との間で遷移させる。
メモリセルアレイ113は、複数のメモリセルトランジスタが配列された構成を有している。複数のメモリセルトランジスタのそれぞれは、ビット線BLとワード線WLとに接続されている。メモリセルアレイ113には、ホスト機器300から受信したデータなどが格納される。
メモリセルアレイ113は、複数のブロックBLKを備えている。ブロックBLKに格納されている全データは、一括にイレースされる。
図3は、第1の実施形態のブロックBLKの回路構成を示す図である。各ブロックBLKは、同一の構成を有している。ブロックBLKは、例えば4つのストリングユニットSU0~SU3を有する。各ストリングユニットSUは、複数のNANDストリング140を含む。
NANDストリング140の各々は、例えば14個のメモリセルトランジスタMT(MT0~MT13)および選択トランジスタST1、ST2を含んでいる。14個のメモリセルトランジスタMT(MT0~MT13)は、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に直列接続されている。NANDストリング140内のメモリセルトランジスタMTの個数は14個に限定されない。メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。メモリセルトランジスタMTは、電荷蓄積層に絶縁膜を用いたMONOS型であってもよいし、電荷蓄積層に導電膜を用いたFG型であってもよい。
ストリングユニットSU0~SU3の各々における選択トランジスタST1のゲートは、それぞれ選択ゲート線SGD0~SGD3に接続される。ストリングユニットSU0~SU3の各々における選択トランジスタST2のゲートは、例えば選択ゲート線SGSに共通接続される。ストリングユニットSU0~SU3の各々における選択トランジスタST2のゲートは、ストリングユニットSU毎に異なる選択ゲート線SGS0~SGS3に接続されてもよい。同一のブロックBLK内にあるメモリセルトランジスタMT0~MT13の制御ゲートは、それぞれワード線WL0~WL13に共通接続される。
ストリングユニットSU内にある各NANDストリング140の選択トランジスタST1のドレインは、それぞれ異なるビット線BL(BL0~BL(L-1)、但しLは2以上の自然数)に接続される。また、ビット線BLは、複数のブロックBLK間で各ストリングユニットSU内にある1つのNANDストリング140を共通に接続する。更に、各選択トランジスタST2のソースは、ソース線SLに共通に接続されている。
つまりストリングユニットSUは、異なるビット線BLに接続され、且つ同一の選択ゲート線SGDに接続されたNANDストリング140の集合である。またブロックBLKは、ワード線WLを共通にする複数のストリングユニットSUの集合である。そしてメモリセルアレイ113は、ビット線BLを共通にする複数のブロックBLKの集合である。
コントローラ200からデータのライトが指示された場合には、メモリセルトランジスタMTのしきい値電圧が当該データに対応したステートに設定される。この処理を、プログラム処理と表記する。また、コントローラ200からデータのリードが指示された場合には、メモリセルトランジスタMTのしきい値電圧のステートが判定され、判定されたステートがデータに変換される。この処理を、センス処理と表記する。
プログラム処理およびセンス処理は、1つのストリングユニットSUにおける1つのワード線WLに接続されたメモリセルトランジスタMTに対して、一括して行われる。プログラム処理およびセンス処理の際、一括して選択されるメモリセルトランジスタMTの群を、メモリセルグループMCGと表記する。そして、1つのメモリセルグループMCGにプログラム処理によってライトされる(あるいはセンス処理によってリードされる)複数のメモリセルトランジスタMTそれぞれの1ビットの記憶領域の集まりを、ページと表記する。ページは、第1記憶領域の一例である。
なお、1つのメモリセルグループMCGが提供するページの数は、各メモリセルトランジスタMTに格納され得るデータのビット数に依存する。各メモリセルトランジスタMTに格納されるデータのビット数をN(ただしNは1以上の整数)とすると、1つのメモリセルグループMCGは、N個のページを提供することができる。
データのイレースの際には、ブロックBLK内の全てのメモリセルトランジスタMTが選択され、選択された全てのメモリセルトランジスタMTのしきい値電圧が、初期データを記憶していると見なされるステートに設定される。この処理を、イレース処理と表記する。イレース処理は、ブロックBLK単位で実行される。
図2に説明を戻す。
電圧生成回路107は、Vcc端子(図示せず)に入力された電力に基づいて、メモリセルアレイ113に対するアクセス(プログラム処理、センス処理、およびイレース処理)に必要な種々の電圧を生成する。そして、電圧生成回路107は、生成した電圧を、センスアンプ112、メモリセルアレイ113、およびロウアドレスデコーダ115のそれぞれに供給する。
ロウアドレスデコーダ115、カラムデコーダ110、センスアンプ112は、制御回路103による制御に基づいて、メモリセルアレイ113に対するアクセス(プログラム処理、センス処理、およびイレース処理)を実行する。
例えばプログラム処理の際には、カラムデコーダ110は、カラムバッファ109に格納されたカラムアドレスに対応したビット線BLを選択する。制御回路103は、選択されたビット線の電圧をゼロとする。ロウアドレスデコーダ115は、ロウアドレスバッファデコーダ114に格納されたロウアドレスに対応したワード線を選択する。ロウアドレスデコーダ115は、選択されたワード線に、電圧生成回路107が生成した高電圧のパルスを印加する。すると、選択されたビット線および選択されたワード線との交点に位置するメモリセルの電荷蓄積層に電子が注入される。その結果、メモリセルのしきい値電圧が上昇する。制御回路103は、メモリセルのしきい値電圧がデータレジスタ111に格納されたデータに対応した目標のステートに到達するまで、ロウアドレスデコーダ115にパルスの印加を継続させる。
センス処理の際には、センスアンプ112は、ビット線BLに電圧Vccをプリチャージする。ロウアドレスデコーダ115は、ロウアドレスバッファデコーダ114に格納されたロウアドレスに対応したワード線を選択する。ロウアドレスデコーダ115は、非選択のワード線に電圧生成回路107が生成した所定の電圧Vreadを印加する。これにより、当該ワード線に属するメモリセルは導通状態になる。そして、ロウアドレスデコーダ115は、選択されたワード線に、電圧生成回路107によって生成された複数種類の電圧を順次印加する。印加される複数の種類の電圧は、リード対象のページの種類に対応する。センスアンプ112は、プリチャージにより蓄えられた電荷がソース線へ流出したときの電圧を特定する。これにより、センスアンプ112は対象のメモリセルが属するステートを特定し、特定したステートに対応するデータを得る。センスアンプ112は、得られたデータをデータレジスタ111に格納する。
データレジスタ111に格納されたデータは、データ線を通してIO信号処理回路101のIOバッファ120に送られる。IOバッファ120に送られたデータは、IO信号処理回路101によってコントローラ200へ出力される。
データレジスタ111は、第1バッファの一例である。IOバッファ120は、第2バッファの一例である。
以降では、IO信号処理回路101、制御回路103、ロウアドレスデコーダ115、およびセンスアンプ112は、回路130と称される。
図4は、第1の実施形態のメモリシステム1おけるメモリセルアレイ113からコントローラ200までのデータフローを説明するための模式的な図である。まず、リード対象のデータは、回路130が実行するセンス処理によって、メモリセルアレイ113からデータレジスタ111に読み出される(S1)。S1では、1つのページ(例えば図4のページ500)に格納されている全データが、データレジスタ111に読み出される。データレジスタ111に格納されたデータは、回路130によって、IOバッファ120を介してコントローラ200に転送される(S2)。データレジスタ111からコントローラ200にデータが出力(換言すると転送)される処理を、データアウト処理と表記する。
コントローラ200は、ページよりも小さいクラスタ(図4のクラスタ600)と呼ばれる単位で、データアウト処理の対象のデータを指定することができる。クラスタは、論理アドレスと、物理アドレスと、の対応関係の管理の単位である。つまり、論理アドレスは、クラスタ単位で物理アドレスに対応づけられている。
論理アドレスは、メモリシステム1がホスト機器300に提供する論理的なアドレス空間(論理アドレス空間)における位置を示すアドレス情報である。物理アドレスは、メモリセルアレイ113が提供する物理的なアドレス空間(物理アドレス空間)における位置を示すアドレス情報であり、メモリセルアレイ113における位置に固定的に対応付けられている。例えば、物理アドレスは、その一部にカラムアドレスおよびロウアドレスを含んでいてもよい。または、物理アドレスは、所定の変換処理を経ることによって、カラムアドレスおよびロウアドレスが導出できるように構成されてもよい。
論理アドレス空間は、所定サイズの記憶領域(つまりクラスタ)に分割されている。論理アドレス空間は、クラスタ単位で物理アドレス空間にマッピングされている。ホスト機器300から或るクラスタの論理アドレス値を指定したリードが要求されたとき、コントローラ200は、当該論理アドレス値を物理アドレス値に変換する。これにより、コントローラ200は論理アドレス空間におけるリード対象のクラスタがマッピングされた物理アドレス空間におけるクラスタを特定する。コントローラ200は、特定されたクラスタを含むページをセンス処理の対象に指定してメモリチップ100にセンス処理を実行させる。その後、コントローラ200は、特定されたクラスタをデータアウト処理の対象に指定してメモリチップ100にデータアウト処理を実行させる。
なお、物理アドレス空間におけるクラスタは、第2記憶領域の一例である。以降、クラスタは、物理アドレス空間におけるクラスタを意味することとする。また、クラスタに格納されているデータ、およびクラスタから読み出されたデータを、クラスタデータと表記する。クラスタデータは、データセグメントの一例である。
なお、1つのページを構成する各ビットには、ビット線の並び順に対応して昇順に増加するカラムアドレスが割り当てられている。1つのページには、複数のクラスタが配置されている。1つのページに含まれる各クラスタの先頭の位置は、各クラスタの物理アドレスから求まるカラムアドレスによって示すことができる。ここで、第1のクラスタと第2のクラスタが間隔を空けずに配置されている場合、第1のクラスタの末尾を示すカラムアドレス値と、第2のクラスタの先頭を示すカラムアドレス値との間に、別なクラスタ(第3のクラスタ)に含まれるビット線のカラムアドレス値が存在しないことを示す。第1のクラスタと第2のクラスタが間隔を空けずに配置されている場合、第2のクラスタの先頭を示すカラムアドレス値が、第2のクラスタの前方に隣接する第1のクラスタの末尾を示すカラムアドレス値に後続(follow)していてもよい。
図5は、第1の実施形態のメモリシステム1において、データのリードの動作の際にコントローラ200とメモリチップ100との間で転送される信号の詳細を説明するためのタイミングチャートである。
コントローラ200は、まず、ページ指定コマンドC0、リードコマンドC1、アドレス情報、およびセンス開始コマンドC2をこの順番で送信する。これによって、センス処理の対象のページと、センス処理の開始と、が指示される。ページ指定コマンドC0、リードコマンドC1、アドレス情報、およびセンス開始コマンドC2からなるセットを、センスコマンドセットと表記する。
センスコマンドセットにおいて、ページ指定コマンドC0は、1つのメモリセルグループMCGが備える1以上のページのうちの1つを指定するコマンドである。リードコマンドC1は、一連のコマンドの種別がリードのためのものであることを示す。アドレス情報は、センス対象のページを含むメモリセルグループMCGを示すロウアドレスを含んでいる。ページ指定コマンドC0とアドレス情報に含まれるロウアドレスとの組み合わせによって、メモリセルアレイ113が提供する記憶領域のうちのセンス対象のページが一意に指定される。なお、アドレス情報は、カラムアドレスを含んでいるが、当該カラムアドレスはセンスコマンドセットにおいては意味をなさない。センス開始コマンドC2は、センス処理の開始を指示するコマンドである。
センスコマンドセットは、入出力信号IO<7:0>として転送される。センスコマンドセットのうちのコマンドC0~C2が転送されている期間には、コマンドラッチイネーブル信号CLEがアクティブレベルに維持される。センスコマンドセットのうちのアドレス情報が転送されている期間には、アドレスラッチイネーブル信号ALEがアクティブレベルに維持される。そして、コマンドC0~C2およびアドレス情報が転送されている期間には、ライトイネーブル信号WEnがトグルされる。
メモリチップ100は、センス開始コマンドC2を受信すると、センス処理を開始する。センス処理では、回路130は、ページ指定コマンドC0およびロウアドレスの組み合わせによって一意に決まるページから1ページ分のデータを読み出す。回路130は、読み出された1ページ分のデータをデータレジスタ111に格納する。
センス処理が開始すると、RyBy生成回路108は、レディービジー信号RyByをレディー状態Ryからビジー状態Byに遷移させる。センス処理が終了すると、RyBy生成回路108は、レディービジー信号RyByをビジー状態Byからレディー状態Ryに遷移させる。コントローラ200は、センス開始コマンドC2を送信した後、レディービジー信号RyByを監視することによって、センス処理が完了したこと、つまりセンス処理の対象のページから1ページ分のデータがデータレジスタ111に読み出されたこと、を認識することができる。
センス処理の後、コントローラ200は、データアウト処理をメモリチップ100に実行させることができる。コントローラ200は、メモリチップ100にデータアウト処理を実行させるために、データアウトコマンドC3、アドレス情報、および頭出し開始コマンドC4をこの順番で送信する。
データアウトコマンドC3は、データアウト処理を指示するコマンドである。アドレス情報は、カラムアドレスと、ロウアドレスと、を含んでいる。カラムアドレスは、データレジスタ111に格納された1ページ分のデータのうちのデータアウト処理の対象のクラスタデータが格納されている位置を示す。ロウアドレスとしては、センスコマンドセットに含まれていたロウアドレスと等しい値が用いられる。
頭出し開始コマンドC4は、頭出し処理の開始を指示するコマンドである。データアウト処理の対象のデータは、データレジスタ111から8ビット毎に分割されてIOバッファ120に送られて、IOバッファ120から8ビット幅のデータとしてコントローラ200に出力される。頭出し処理は、データアウト処理の対象のクラスタデータのうちの先頭の8ビットのデータを準備する処理である。回路130は、頭出し開始コマンドC4に応じて頭出し処理を開始する。
コントローラ200は、設計値として定められている頭出し処理にかかる時間の経過後、一対のリードイネーブル信号RE、REnのトグルを開始する。回路130は、データアウト対象のデータを、頭出し処理によって準備された8ビットのデータを先頭に、データレジスタ111からIOバッファ120に8ビットずつ、リードイネーブル信号RE、REnに同期して転送する。さらに、回路130は、一対のリードイネーブル信号RE、REnを遅延させることで一対のストローブ信号DQS、DQSnを生成する。回路130は、生成された一対のストローブ信号DQS、DQSnを出力する。コントローラ200は、IOバッファ120の内容を、一対のストローブ信号DQS、DQSnに同期したタイミングで取り込む。これによって、データアウト処理の対象のクラスタデータがメモリチップ100からコントローラ200に入出力信号IO<7:0>として出力(転送)される。つまり、データアウト処理が実行される。
図5を参照した説明から明らかなように、データアウト処理には、データアウトコマンドセットの転送および頭出し処理が、付加的な処理(換言するとオーバヘッド)として必要となる。メモリチップ100からコントローラ200へのデータの転送速度を出来るだけ速くするためには、データアウト処理の時間に対するオーバヘッドの時間の比を出来るだけ小さくすることが望まれる。データアウト処理の時間に対するオーバヘッドの時間の比が小さいほど、メモリチップ100からコントローラ200への平均のデータ転送速度が向上する。
ここで、第1の実施形態と比較される技術について説明する。第1の実施形態と比較される技術は、比較例と表記される。比較例によれば、クラスタデータ毎にデータアウトコマンドセットの転送および頭出し処理が行われる。たとえ間隔を空けずにページ内に配置された複数のクラスタから読み出された複数のクラスタデータがデータアウト処理の対象であっても、クラスタデータ毎にデータアウトコマンドセットの転送と頭出し処理とが行われる。よって、比較例によれば、データアウト処理の合計時間に対するオーバヘッドの合計時間の比が大きい。つまり、データの転送速度が遅い。
これに対し、第1の実施形態のメモリシステム1は、2以上のクラスタデータのデータアウト処理を、単一のデータアウトコマンドセットによって実行できるように構成されている。換言すると、コントローラ200は、データアウトコマンドセットを送信してから次の任意のコマンドセットを送信するまでの間に、2以上のクラスタデータをメモリチップ100に出力させることができる。これによって、複数のクラスタデータのデータアウト処理に要する合計のオーバヘッドの時間が比較例に比べて短縮される。よって、データの転送速度が向上する。
図6および図7を参照して、第1の実施形態のメモリシステム1におけるメモリチップ100からコントローラ200へのデータの転送方法をより具体的に説明する。
図6は、第1の実施形態のメモリシステム1において、データレジスタ111に格納された1ページ分のデータを示す模式的な図である。本図に示される例では、データレジスタ111に格納された1ページ分のデータは、8つのクラスタデータ#0~#7によって構成されている。8つのクラスタデータ#0~#7は、間隔を空けずに配置された8つのクラスタ#0~#7から読み出されたデータである。クラスタデータ#x(ただしxは0から7までの整数)は、クラスタ#xから読み出されたクラスタデータを意味する。データレジスタ111には、8つのクラスタデータ#0~#7が、読み出し元のクラスタの配置の順番と同じ順番に配列された状態で格納される。
図6に示された例では、クラスタデータ#0~#7のうちの、クラスタデータ#0、#1、#3、#6、#7が、使用対象のクラスタデータに該当する。使用対象のクラスタデータとは、コントローラ200において何らかの処理に使用されるデータであって、コントローラ200がデータアウト処理によって取得する必要があるデータである。
例えば、コントローラ200は、ホスト機器300からリード要求を受信すると、リードが要求されたデータをホスト機器300に送信する必要がある。そのために、コントローラ200は、リードが要求されたデータを構成するクラスタデータをメモリチップ100から取得する必要がある。つまり、ホスト機器300からリードが要求されたデータを構成するクラスタデータは、使用対象のクラスタデータに該当する。
別の例では、コントローラ200は、ホスト機器300からのリード要求の処理とは別に、リロケート処理を実行することができる。リロケート処理は、メモリチップ100の或る位置からデータを読み出して、その後、当該データを読み出し元と同じまたは読み出し元と異なるメモリチップ100に書き込む処理である。ガベージコレクション、ウェアレベリング、またはリフレッシュなどが、リロケート処理に該当する。メモリチップ100に格納されているデータのうちのリロケート処理の対象とされたクラスタデータは、使用対象のクラスタデータに該当する。
第1の実施形態では、コントローラ200は、間隔を空けずにページ内に配置された複数のクラスタから読み出された複数のクラスタデータが使用対象である場合、メモリチップ100に、単一のデータアウトコマンドセットによって当該複数のクラスタデータをまとめて出力させる。図6に示された例では、クラスタデータ#0およびクラスタデータ#1が単一のデータアウトコマンドセットによってまとめて転送され、クラスタデータ#6およびクラスタデータ#7が別の単一のデータアウトコマンドセットによってまとめて転送される。
以降、単一のデータアウトコマンドによってまとめて転送されるクラスタデータの群を、スーパークラスタデータと表記する。なお、スーパークラスタデータは、1つのクラスタデータのみによって構成されてもよいこととする。つまり、図6に示された例では、クラスタデータ#0およびクラスタデータ#1によってスーパークラスタデータ#0が構成され、クラスタデータ#3によってスーパークラスタデータ#1が構成され、クラスタデータ#6およびクラスタデータ#7によってスーパークラスタデータ#2が構成されている。
図7は、第1の実施形態のメモリシステム1において、図6に示されたクラスタデータを転送する際における入出力信号IO<7:0>の模式的なタイミングチャートである。
まず、コントローラ200は、1つ目のデータアウトコマンドセットを送信する。このデータアウトコマンドセットには、クラスタ#0の先頭を示すカラムアドレス値が含まれている。換言すると、このデータアウトコマンドセットに含まれるアドレス情報に、クラスタ#0の先頭を示すカラムアドレス値が含まれている。メモリチップ100は、このデータアウトコマンドセットに応じて、クラスタ#0の出力のための頭出し処理を実行する。そして、メモリチップ100は、一対のリードイネーブル信号RE、REnのトグルに応じて、スーパークラスタデータ#0を構成するクラスタデータ#0およびクラスタデータ#1を、連続して出力する。
コントローラ200は、メモリチップ100から出力させるデータのサイズを、一対のリードイネーブル信号RE、REnのトグルの回数によって制御する。クラスタデータ#1は、データレジスタ111において、クラスタデータ#0に後続する位置に格納されている。このため、クラスタデータ#0とクラスタデータ#1とを連続して出力する場合にはクラスタデータ#1の出力のための頭出し処理は不要である。したがって、コントローラ200は、クラスタデータ#0およびクラスタデータ#1の合計サイズに対応した回数だけ、一対のリードイネーブル信号RE、REnをトグルさせる。メモリチップ100は、頭出し処理後に一対のリードイネーブル信号RE、REnのトグルの回数に応じたサイズのデータをデータレジスタ111からIOバッファ120に転送する。これにより、メモリチップ100は、クラスタデータ#0およびクラスタデータ#1を連続して出力することができる。
スーパークラスタデータ#0の出力が完了すると、スーパークラスタデータ#1であるクラスタデータ#3の処理が実行される。具体的には、コントローラ200は、2つ目のデータアウトコマンドセットを送信する。このデータアウトコマンドセットには、クラスタ#3の物理アドレス値が含まれている。メモリチップ100は、このデータアウトコマンドセットに応じて、クラスタデータ#3の出力のための頭出し処理を実行する。コントローラ200は、クラスタデータ#3の出力のための頭出し処理の完了後、クラスタデータ#3のサイズに対応した回数だけ、一対のリードイネーブル信号RE、REnをトグルさせる。メモリチップ100は、頭出し処理後に一対のリードイネーブル信号RE、REnのトグルの回数に応じたサイズのデータをデータレジスタ111からIOバッファ120に転送する。これにより、メモリチップ100は、クラスタデータ#3を出力することができる。
スーパークラスタデータ#1の出力が完了すると、スーパークラスタデータ#2を構成するクラスタデータ#6およびクラスタデータ#7の処理が実行される。そのために、コントローラ200は、3つ目のデータアウトコマンドセットを送信する。このデータアウトコマンドセットには、クラスタ#6の物理アドレス値が含まれている。メモリチップ100は、このデータアウトコマンドセットに応じて、クラスタデータ#6の出力のための頭出し処理を実行する。コントローラ200は、クラスタデータ#6の出力のための頭出し処理の完了後、クラスタデータ#6およびクラスタデータ#7の合計サイズに対応した回数だけ、一対のリードイネーブル信号RE、REnをトグルさせる。メモリチップ100は、頭出し処理後に一対のリードイネーブル信号RE、REnのトグルの回数に応じたサイズのデータをデータレジスタ111からIOバッファ120に転送する。これにより、メモリチップ100は、クラスタデータ#6およびクラスタデータ#7を連続して出力することができる。
図16は、比較例が適用された場合において、図6に示されたクラスタデータを転送する際における入出力信号IO<7:0>の模式的なタイミングチャートである。本図に示されるように、比較例の場合、使用対象のクラスタデータ#0、#1、#3、#6、#7の転送のために、データアウトコマンドセットの転送と、頭出し処理と、がそれぞれ5回ずつ実行される。
これに対し、第1の実施形態によれば、上述したように、データアウトコマンドセットの転送と、頭出し処理と、がそれぞれ3回ずつで済む。つまり、第1の実施形態によれば、使用対象のクラスタデータ#0、#1、#3、#6、#7の転送のためのオーバヘッドの時間が比較例に比べて削減される。これによって平均のデータ転送速度が向上する。つまり、データの転送速度が向上する。
図8は、第1の実施形態のコントローラ200の動作の一例を示すフローチャートである。
まず、コントローラ200は、メモリチップ100にセンスコマンドセットを送信する(S101)。メモリチップ100は、センスコマンドセットの受信に応じて、1ページ分のデータをメモリセルアレイ113からデータレジスタ111に読み出す。
前述したように、データレジスタ111には、複数のクラスタデータが、転送元のクラスタの配置の順番に対応した順番に配列された状態で格納される。データレジスタ111の先頭のクラスタデータをクラスタデータ#0とし、先頭から(y+1)番目の位置に格納されたクラスタデータを、クラスタデータ#yと表記する。クラスタデータ#yの読み出し元のクラスタを、クラスタ#yと表記する。
S101の後、コントローラ200は、変数pをヌル値でリセットし(S102)、リストSCを空の状態(即ちnil)にする(S103)。
なお、リストSCは、クラスタデータの群が登録されるリストである。リストSCに登録されたクラスタデータは1つのスーパークラスタデータを構成するクラスタデータとして選択されたことを意味する。変数pは、最後にリストSCに加えられたクラスタデータを表す。
コントローラ200は、データレジスタ111に格納された1ページ分のデータのうちの使用対象のクラスタデータでありかつ未選択のクラスタデータのうちの、最も小さいカラムアドレス値が与えられたクラスタから読み出されたクラスタデータを特定する(S104)。特定されたクラスタデータを、変数jを用いて、クラスタデータ#jと表記する。
コントローラ200は、変数pの値がヌル値でなく、かつクラスタ#jの先頭を示すカラムアドレス値がクラスタ#pの末尾を示すカラムアドレス値に連続しない、という判定条件が満たされているか否かを判定する(S105)。つまり、コントローラ200は、クラスタ#jがクラスタ#pの後ろに間隔を空けずに配置されているか否かを判定する。S105の判定条件が満たされている場合(S105:true)、コントローラ200は、リストSCの先頭のクラスタデータの読み出し元のクラスタの先頭を示すカラムアドレス値を含むデータアウトコマンドセットをメモリチップ100に送信する(S106)。そして、コントローラ200は、リストSCを空の状態にする(S107)。
S105の判定条件が満たされていない場合(S105:false)、S106およびS107の処理はスキップされる。
S107の後、またはS105の判定条件が満たされていない場合(S105:false)、コントローラ200はリストSCにクラスタデータ#jを追加する(S108)。そして、コントローラ200は、変数pに変数jの値を代入する(S109)。
続いて、コントローラ200は、使用対象のクラスタデータでありかつ未選択のクラスタデータが残っているか否かを判定する(S110)。使用対象のクラスタデータでありかつ未選択のクラスタデータが残っている場合(S110:Yes)、処理はS104に遷移する。
使用対象のクラスタデータでありかつ未選択のクラスタデータが残っていない場合(S110:No)、コントローラ200は、リストSCの先頭のクラスタデータの読み出し元のクラスタの先頭を示すカラムアドレス値を含むデータアウトコマンドセットを送信する(S111)。そして、コントローラ200は、リストSCを空の状態にし(S112)、処理を終了する。
なお、図8の説明においては、センスコマンドセットが送信されてからS102以降の処理が実行されることとした。センスコマンドセットの送信タイミングとS102以降の処理の実行タイミングの順番は、必ずしもこの順番でなくてもよい。
例えば、コントローラ200は、NANDインタフェース回路205にコマンドキューを有してもよい。この場合、コントローラ200は、メモリチップ100に宛てたコマンドを当該コマンドキューに順次エンキューし、NANDインタフェース回路205は、当該コマンドキューに格納されている1以上のコマンドを順次メモリチップ100に送信する。例えば、コントローラ200は、まず、当該コマンドキューにセンスコマンドセットをエンキューし、その後、S102以降の処理を実行する。そして、コントローラ200は、S106およびS112では、データアウトコマンドセットをさらにコマンドキューにエンキューする。コントローラ200がこのように動作する場合、センスコマンドセットがコマンドキューから送信されるタイミングは、S102以降の処理が実行されるタイミングよりも遅くなり得る。ただし、そのような場合であっても、センスコマンドセットおよびデータアウトコマンドセットの送信の順番は、図8に示された一連の処理によってセンスコマンドセットおよびデータアウトコマンドセットが送信される順番と等しい。
以上述べたように、第1の実施形態によれば、コントローラ200は、データレジスタ111に格納された複数のクラスタデータのうち、間隔を空けずに配置された2以上のクラスタから読み出された2以上のクラスタデータを、1つのデータアウトコマンドセットによって回路130に出力させる。換言すると、コントローラ200は、データアウトコマンドセットの送信後から次の任意のコマンドセットを送信するまでの間に、上記2以上のクラスタデータを回路130に出力させる。
よって、データアウト処理の合計時間に対するオーバヘッドの合計時間の比を比較例に比べて小さくすることができるので、データの転送時間が向上する。
また、第1の実施形態によれば、コントローラ200は、間隔を空けずにページ内に配置された複数のクラスタから読み出され、かつそれぞれは使用対象であるクラスタデータを、スーパークラスタに含める。
これによって、コントローラ200は、1以上のクラスタデータによって1つのスーパークラスタデータを構成することができる。
なお、第1の実施形態においては、メモリチップ100に出力させるデータのサイズは、一対のリードイネーブル信号RE、REnのトグルの回数によって制御されると説明した。メモリチップ100に出力させるデータのサイズの制御方法はこれに限定されない。コントローラ200は、データアウトコマンドセットにサイズ情報を付加し、メモリチップ100の回路130は、メモリチップ100から出力するデータのサイズを、サイズ情報に基づいて判断してもよい。
(第2の実施形態)
第1の実施形態では、1つのスーパークラスタデータは、使用対象のクラスタデータのみによって構成された。第2の実施形態では、1つのスーパークラスタデータは、使用対象でないクラスタデータ、換言すると、不要な(unwanted)クラスタデータ、を含んでいてもよい。より具体的には、間隔を空けずにページ内に配置された1以上のクラスタから読み出された使用対象でない1以上のクラスタデータの数が、所定のしきい値より小さい場合、当該1以上のクラスタデータは、1つのスーパークラスタデータを構成するクラスタデータとして選択される。
以降では、しきい値は「2」であるとして説明する。また、間隔を空けずに配置された1以上のクラスタから読み出された使用対象でない1以上のクラスタデータの数を、連続不要データ数(the number of pieces of consecutive unwanted data)と表記する。
また、以降では、第1の実施形態と異なる事項について説明する。第1の実施形態と同じ事項については簡略的に説明するかまたは説明を省略する。
図9は、第2の実施形態のメモリシステム1におけるスーパークラスタデータの構成例示す模式的な図である。
図6に示された例と同様に、データレジスタ111に格納された1ページ分のデータであるクラスタデータ#0~#7のうちの、クラスタデータ#0、#1、#3、#6、#7が、使用対象のクラスタデータであるとする。
クラスタデータ#2は、使用対象でないクラスタデータに該当する。クラスタ#2の前に間隔を空けずに配置されたクラスタ#1、およびクラスタ#2の後ろに間隔を空けずに配置されたクラスタ#3、からそれぞれ読み出されたクラスタデータ#1およびクラスタデータ#3は、ともに使用対象のクラスタデータである。よって、クラスタデータ#2についての連続不要データ数は「1」である。連続不要データ数はしきい値である「2」より小さいので、クラスタデータ#2は、クラスタデータ#0、クラスタデータ#1およびクラスタデータ#3とともに1つのスーパークラスタデータ(スーパークラスタデータ#0)の構成要素として選択される。
クラスタデータ#4およびクラスタデータ#5は、互いに間隔を空けずに配置されたクラスタ#4およびクラスタ#5からそれぞれ読み出された、使用対象でないクラスタデータに該当する。クラスタ#4の前に間隔を空けずに配置されたクラスタ#3から読み出されたクラスタデータ#3、および、クラスタ#5の後ろに間隔を空けずに配置されたクラスタ#6から読み出されたクラスタデータ#6は、ともに使用対象のクラスタデータである。従って、クラスタデータ#4およびクラスタデータ#5についての連続不要データ数は「2」である。連続不要データ数がしきい値である「2」より小さくないので、クラスタデータ#4およびクラスタデータ#5のそれぞれは、スーパークラスタデータを構成するクラスタデータとして選択されない。
上記の方法により、クラスタデータ#0、#1、#2、#3からなるスーパークラスタデータ#0と、クラスタデータ#6、#7からなるスーパークラスタデータ#1と、が構成される。
図10は、第2の実施形態のメモリシステム1において、図9に示されたクラスタデータを転送する際における入出力信号IO<7:0>の模式的なタイミングチャートである。
まず、コントローラ200は、メモリチップ100にスーパークラスタデータ#0を構成するクラスタデータ#0、#1、#2、#3を出力させるために、1つ目のデータアウトコマンドセットを送信する。このデータアウトコマンドセットには、クラスタ#0の先頭を示すカラムアドレス値が含まれている。メモリチップ100は、このデータアウトコマンドセットに応じて、クラスタ#0の出力のための頭出し処理を実行する。コントローラ200は、クラスタ#0の出力のための頭出し処理の完了後、クラスタデータ#0、#1、#2、#3の合計サイズに対応した回数だけ、一対のリードイネーブル信号RE、REnをトグルさせる。メモリチップ100の回路130は、頭出し処理後に一対のリードイネーブル信号RE、REnのトグルの回数に応じたサイズのデータをデータレジスタ111からIOバッファ120に転送する。これにより、メモリチップ100は、クラスタデータ#0、#1、#2、#3を連続して出力することができる。
スーパークラスタデータ#0の出力が完了すると、スーパークラスタデータ#1を構成するクラスタデータ#6およびクラスタデータ#7の転送が実行される。そのために、コントローラ200は、2つ目のデータアウトコマンドセットを送信する。このデータアウトコマンドセットには、クラスタ#6の先頭を示すカラムアドレス値が含まれている。メモリチップ100は、このデータアウトコマンドセットに応じて、クラスタデータ#6の出力のための頭出し処理を実行する。コントローラ200は、クラスタ#6の出力のための頭出し処理の完了後、クラスタデータ#6およびクラスタデータ#7の合計サイズに対応した回数だけ、一対のリードイネーブル信号RE、REnをトグルさせる。メモリチップ100の回路130は、頭出し処理後に一対のリードイネーブル信号RE、REnのトグルの回数に応じたサイズのデータをデータレジスタ111からIOバッファ120に転送する。これにより、メモリチップ100は、クラスタデータ#6およびクラスタデータ#7を連続して出力することができる。
このように、図9および図10に示された例では、不要なクラスタデータであるクラスタデータ#2の転送が行われるものの、データアウトコマンドセットの転送と、頭出し処理と、がそれぞれ2回ずつで済む。
なお、しきい値は、taと、tbと、の比較に基づいて決定され得る。taは、1つのクラスタデータのデータアウト処理の時間である。tbは、1つのデータアウトコマンドセットの転送および1回の頭出し処理に要する合計の時間である。
例えば、設計者がT*ta<tbを満たすTの値をしきい値として設定すれば、不要なクラスタデータの転送に要する時間が、当該不要なクラスタデータの転送を行わない代わりに必要となるオーバヘッド(即ちデータアウトコマンドセットの転送および頭出し処理)の時間よりも短くなる。その結果、第1の実施形態のケースに比べて平均のデータ転送速度がさらに向上する。
なお、しきい値の決定方法はこれに限定されない。設計者は、任意の方法でしきい値を決定することができる。
図11は、第2の実施形態のコントローラ200の動作の一例を示すフローチャートである。
第2の実施形態では、コントローラ200は、図8を用いて説明した第1の実施形態のコントローラ200の動作のうちのS105の処理に替えてS201の処理を、S108の処理に替えてS202およびS203の処理を、実行する。
S201では、コントローラ200は、変数pの値がヌル値でなく、かつクラスタ#jとクラスタ#pとの間に位置するクラスタの数がしきい値以上である、という判定条件が満たされているか否かを判定する。なお、クラスタ#jとクラスタ#pとの間に位置するクラスタの数は、連続不要データ数に相当する。S201の判定条件が満たされている場合(S201:Yes)、コントローラ200は、リストSCの先頭のクラスタデータの読み出し元のクラスタの物理アドレス値を含むデータアウトコマンドセットを送信する(S106)。
S107の後、またはS201の判定条件が満たされていない場合(S201:No)、コントローラ200は、変数pの値がヌル値であるか否かを判定する(S202)。変数pの値がヌル値でない場合(S202:No)、コントローラ200は、リストSCにクラスタデータ#(p+1)からクラスタデータ#jまでの全てのクラスタデータを追加する(S203)。これによって、たとえクラスタ#jとクラスタ#pとの間に使用対象でないクラスタデータが読み出されたクラスタが存在する場合であっても、連続不要データ数がしきい値より小さければ、その使用対象でないクラスタデータはリストSCに追加される。なお、jが(p+1)と等しい場合、S203では、コントローラ200は、クラスタデータ#jのみをリストSCに追加する。
変数pの値がヌル値である場合(S202:Yes)、S203の処理はスキップされる。
このように、第2の実施形態によれば、コントローラ200は、間隔を空けずにページ内に配置された1以上のクラスタから読み出された使用対象でない1以上のクラスタデータの数が、所定のしきい値より小さい場合、当該1以上のクラスタデータを、1つのスーパークラスタデータを構成するクラスタデータとして選択する。
これによって、オーバヘッドの合計時間が短縮され、データの転送時間が向上する。
(第3の実施形態)
第3の実施形態では、データアウトコマンドセットにおいては、アドレス情報とサイズ情報との対によって、データアウト処理の対象のスーパークラスタデータが指定される。さらに、データアウトコマンドセットは、アドレス情報とサイズ情報との対を複数備え得る。第3の実施形態では、このようなデータアウトコマンドセットを、拡張データアウトコマンドセットと表記する。
図12は、第3の実施形態の拡張データアウトコマンドセットの構成の一例を示す模式的な図である。拡張データアウトコマンドセットは、拡張データアウトコマンドC5と、スーパークラスタデータの数と、アドレス情報およびサイズ情報の1つ以上の対と、を含む。本図の例では、第1アドレス情報および第1サイズ情報の対と、第2アドレス情報および第2サイズ情報の対と、が描画されている。
第1アドレス情報は、スーパークラスタデータ#0の先頭のクラスタデータの読み出し元のクラスタにかかるアドレス情報であり、当該クラスタの先頭を示すカラムアドレス値を含む。第1サイズ情報は、スーパークラスタデータ#0のサイズ値である。第2アドレス情報は、スーパークラスタデータ#1の先頭のクラスタデータの読み出し元のクラスタにかかるアドレス情報であり、当該クラスタの先頭を示すカラムアドレス値を含む。第2サイズ情報は、スーパークラスタデータ#1のサイズ値である。つまり、図12に示される拡張データアウトコマンドセットは、スーパークラスタデータ#0およびスーパークラスタデータ#1のデータアウト処理を指示するコマンドセットである。
拡張データアウトコマンドセットによってデータアウト処理の対象とされる各スーパークラスタデータは、1つのクラスタデータによって構成されてもよいし、2以上のクラスタデータによって構成されてもよい。拡張データアウトコマンドセットは、アドレス情報およびサイズ情報の対を1または3以上備えてもよい。
拡張データアウトコマンドセットに含まれるスーパークラスタデータの数は、拡張データアウトコマンドセットによって送られるアドレス情報およびサイズ情報の対の数を示す。つまり、本図の例では、スーパークラスタデータの数として「2」が設定される。
メモリチップ100は、拡張データアウトコマンドセットを受信した場合、拡張データアウトコマンドセットによって指定された各スーパークラスタデータを、データレジスタ111からIOバッファ120を経由してコントローラ200にパイプライン方式で出力することができる。
図13は、第3の実施形態のメモリチップ100の構成の一例を示す模式的な図である。本図に示されるように、メモリチップ100の回路130は、頭出し回路131と、転送回路132と、を備えている。頭出し回路131は、頭出し処理を実行する回路である。転送回路132は、データレジスタ111に格納されたデータを、頭出し回路131によって準備された8ビットのデータから順番に、データレジスタ111からIOバッファ120に転送する回路である。さらに、転送回路132は、IOバッファ120に転送されたデータをコントローラ200に取り込ませるために、一対のストローブ信号DQS、DQSnをトグルする。データレジスタ111からIOバッファ120へのデータの転送と、一対のストローブ信号DQS、DQSnをトグルする処理と、をあわせて転送処理と表記する。
頭出し回路131および転送回路132は、並列に(換言すると同時に)動作し得る。メモリチップ100は、頭出し回路131による1つのスーパークラスタデータに対する頭出し処理と、転送回路132による他のスーパークラスタデータに対する転送処理と、を並列に(換言すると同時に)実行することができる。
図14は、第3の実施形態のメモリチップ100による拡張データアウトコマンドセットに応じた動作と、入出力信号IO<7:0>の内容と、を説明する模式的な図である。本図において、横軸は経過時間を示す。
図14の例では、時刻t0に、スーパークラスタデータ#0およびスーパークラスタデータ#1のデータアウト処理を指示する拡張データアウトコマンドセットが入出力信号IO<7:0>としてコントローラ200からメモリチップ100に送信される。
メモリチップ100では、上記の拡張データアウトコマンドセットを受信すると、回路130は、スーパークラスタデータ#0のデータアウト処理と、スーパークラスタデータ#1のデータアウト処理と、の何れを先に実行してもよい。ここでは、拡張データアウトコマンドセットは、スーパークラスタデータ#0にかかる情報(アドレス情報およびサイズ情報の対)と、スーパークラスタデータ#1にかかる情報(アドレス情報およびサイズ情報の対)と、をこの順番で含み、回路130は、拡張データアウトコマンドセットに含まれたスーパークラスタデータの順番、即ちスーパークラスタデータ#0、スーパークラスタデータ#1の順番で、データアウト処理を実行することとする。
メモリチップ100は、拡張データアウトコマンドセットを受信すると、まず、頭出し回路131が、スーパークラスタデータ#0の出力のための頭出し処理を開始する(時刻t1)。より正確には、頭出し回路131は、スーパークラスタデータ#0の先頭のクラスタデータの出力のための頭出し処理を開始する。
頭出し回路131がスーパークラスタデータ#0の出力のための頭出し処理を完了すると、転送回路132は、スーパークラスタデータ#0の転送処理を開始する(時刻t2)。スーパークラスタデータ#0の転送処理では、転送回路132は、データレジスタ111に格納されているデータのうちの、スーパークラスタデータ#0のサイズ情報によって指定された量のデータを、頭出し処理によって準備された部分から順番にデータレジスタ111からIOバッファ120に転送するとともに、スーパークラスタデータ#0のサイズ(つまりサイズ情報として与えられた値)に応じた回数だけ一対のストローブ信号DQS、DQSnをトグルする。これによって、メモリチップ100からコントローラ200にスーパークラスタデータ#0が出力される。つまり、スーパークラスタデータ#0のデータアウト処理が実行される。
転送回路132がスーパークラスタデータ#0の転送処理を開始すると同時に、頭出し回路131は、スーパークラスタデータ#1の出力のための頭出し処理を開始する(時刻t2)。より正確には、頭出し回路131は、スーパークラスタデータ#1の先頭のクラスタデータの出力のための頭出し処理を開始する。
スーパークラスタデータ#0の転送処理およびスーパークラスタデータ#1の出力のための頭出し処理がともに完了すると、転送回路132は、スーパークラスタデータ#1の転送処理を開始する(時刻t3)。スーパークラスタデータ#1の転送処理は、スーパークラスタデータ#0の転送処理と同様の方法で実行される。これによって、メモリチップ100からコントローラ200にスーパークラスタデータ#1が出力される。つまり、スーパークラスタデータ#1のデータアウト処理が実行される。
スーパークラスタデータ#1の転送処理が完了すると、拡張データアウトコマンドセットの処理が完了する(時刻t4)。
このように、回路130は、スーパークラスタデータ#1の頭出し処理と、スーパークラスタデータ#0の転送処理と、を並列に実行する。これによって、たとえスーパークラスタ#0とスーパークラスタ#1とがページ内に離間して配置されていたとしても、スーパークラスタデータ#1の頭出し処理に要する時間が隠蔽される。つまり、オーバヘッドに要する時間が短縮されるため、スーパークラスタデータ#0のデータアウト処理およびスーパークラスタデータ#1のデータアウト処理をそれぞれ異なるデータアウトコマンドセットによって指示する場合に比べて、平均のデータ転送速度が向上する。なお、第1のクラスタ(またはスーパークラスタ)と第2のクラスタ(またはスーパークラスタ)とが離間して配置されている、とは、第1のクラスタ(またはスーパークラスタ)と第2のクラスタ(またはスーパークラスタ)との間に更に別のクラスタ(またはスーパークラスタ)が配置されていることをいう。
図15は、第3の実施形態のコントローラ200の動作の一例を示すフローチャートである。ここでは一例として、第1の実施形態と第3の実施形態とが併用された場合の動作を説明する。なお、第3の実施形態は、第2の実施形態と併用されてもよい。
S101およびS102のそれぞれでは、第1の実施形態において説明された同じステップ番号の処理が実行される。そして、コントローラ200は、リストSCおよびリストSCGを空の状態(即ちnil)にする(S301)。
リストSCGは、1つの拡張データアウトコマンドセットによるデータアウト処理の対象として選択されたスーパークラスタデータの群を示すリストである。リストSCGには、リストSCが登録され得る。
続いて、S104およびS105のそれぞれにおいて、第1の実施形態において説明された同じステップ番号の処理が実行される。そして、S105の判定条件が満たされている場合(S105:true)、コントローラ200は、リストSCをリストSCGに追加する(S302)。なお、リストSCが空の状態であれば、S302ではリストSCGには何も追加されない。
続いて、コントローラ200は、リストSCを空の状態にする(S107)。
S107の後、またはS105の判定条件が満たされていない場合(S105:false)、S108~S110のそれぞれにおいて、第1の実施形態において説明された同じステップ番号の処理が実行される。
S110において、使用対象のクラスタデータでありかつ未選択のクラスタデータが残っていないと判定された場合(S110:No)、コントローラ200は、リストSCをリストSCGに追加する(S303)。そして、コントローラ200は、リストSCGが示す全てのスーパークラスタデータをデータアウト処理の対象として指定した拡張データアウトコマンドセットを送信する(S304)。使用対象のクラスタデータでありかつ未選択のクラスタデータが残っている場合(S110:Yes)、処理はS104に遷移する。
S304の後、コントローラ200は、リストSCおよびリストSCGを空の状態にして(S305)、処理を終了する。
このように、第3の実施形態によれば、回路130は、1つのスーパークラスタデータに対する頭出し処理、つまり当該1つのスーパークラスタデータの先頭部分の転送(換言すると出力)の準備と、他のスーパークラスタの転送(換言すると出力)と、を並列に実行する。これによって、当該1つのスーパークラスタデータに対する頭出し処理に要する時間が隠蔽される。これによって、当該1つのスーパークラスタデータの出力および当該他のスーパークラスタデータの出力がそれぞれ異なるデータアウトコマンドセットによって指示される場合に比べて、平均のデータ転送速度が向上する。
なお、1つのスーパークラスタデータに対する頭出し処理と、他のスーパークラスタの出力とは、一部が時間的にオーバーラップしている限り、平均のデータ転送速度の向上の効果が得られる。
また、第3の実施形態では、拡張データアウトコマンドセットは、アドレス情報およびサイズ情報の対を1つ以上含んでいる。アドレス情報およびサイズ情報のそれぞれの対によって、間隔を空けずに配置された1以上のクラスタから読み出された1以上のクラスタデータが一括に指定される。コントローラ200は、このように構成された拡張データアウトコマンドセットを用いることによって、次のコマンドセットを送信するまでの間に、回路130に、1以上のクラスタデータから構成されるスーパークラスタデータを1つ以上、出力させることができる。
なお、前述したように、拡張データアウトコマンドセットによって転送される各スーパークラスタデータは、1以上のクラスタデータによって構成される。拡張データアウトコマンドセットは、複数のクラスタデータのそれぞれが個別に指定されるように構成されてもよい。そのような場合には、コントローラ200は、使用対象のクラスタデータを順次選択し、選択されたクラスタデータを順次、リストSCGに追加する。そして、使用対象のクラスタデータでありかつ未選択のクラスタデータが残っていない場合、コントローラ200は、S303の処理を実行する。
なお、第3の実施形態では、メモリチップ100内で2つの処理がパイプライン処理的に実行された。しかしながら、第3の実施形態は、メモリチップ100内の処理と、メモリチップ100外の処理と、がパイプライン処理的に実行される際にも適用され得る。例えば、メモリチップ100とコントローラ200との間に、インタフェースチップが配置される場合がある。メモリチップ100での頭出し処理と、インタフェースチップ内の処理と、がパイプライン方式で実行されてもよい。
第1~第3の実施形態の説明で述べたように、データアウトコマンドセット(または拡張データアウトコマンド)は、少なくとも1つの物理アドレス値を含む。コントローラ200は、データレジスタ111に1ページ分のデータが格納された後、データアウトコマンドセット(または拡張データアウトコマンド)をメモリチップ100に送信する。そして、データアウトコマンドセット(または拡張データアウトコマンド)の送信後から次のコマンドセットを送信するまでに、回路130に、データアウトコマンドセット(または拡張データアウトコマンド)に含まれる物理アドレス値が与えられたクラスタから読み出されたクラスタデータと、当該物理アドレス値とは異なる物理アドレス値が与えられたクラスタから読み出されたクラスタデータと、を出力させる。
これによって、データアウト処理の合計の時間に対するオーバヘッドの合計の時間の比は比較例に比べて短縮される。よって、データの転送速度が向上する。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 メモリシステム、100 メモリチップ、101 IO信号処理回路、102 制御信号処理回路、103 制御回路、104 コマンドレジスタ、105 アドレスレジスタ、106 ステータスレジスタ、107 電圧生成回路、108 RyBy生成回路、109 カラムバッファ、110 カラムデコーダ、111 データレジスタ、112 センスアンプ、113 メモリセルアレイ、114 ロウアドレスバッファデコーダ、115 ロウアドレスデコーダ、120 IOバッファ、130 回路、131 頭出し回路、132 転送回路、140 NANDストリング、200 コントローラ、201 ホストインタフェース回路、202 RAM、203 CPU、204 バッファメモリ、205 NANDインタフェース回路、206 ECC回路、300 ホスト機器、400 NANDバス、500 ページ、600 クラスタ。

Claims (8)

  1. 間隔を空けずに配置された複数の第2記憶領域を含む第1記憶領域を有するメモリセルアレイと、
    第1バッファと、
    前記メモリセルアレイから前記第1バッファに前記第1記憶領域の単位でデータを読み出す回路と、を備える
    メモリチップと、
    データに関連付けられた論理アドレスと、前記データが格納されている前記メモリチップ内の位置を示す物理アドレスとの関係を、前記第2記憶領域の単位で管理し、
    前記第1記憶領域に格納されている第1データであって、前記第1記憶領域に含まれる前記複数の第2記憶領域にそれぞれ格納されていた複数の第1データセグメントを含む前記第1データ、が前記第1バッファに読み出された場合に、前記複数の第2記憶領域のうちの1つである第3記憶領域の先頭を示す第1位置情報を含む1つの第1コマンドセットを前記メモリチップに送信する
    コントローラと、
    を具備し、
    前記回路は、前記コントローラが前記第1コマンドセットを前記メモリチップに送信した後から、前記コントローラが前記第1コマンドセットの次の第2コマンドセットを前記メモリチップに送信するまでの間に、
    前記複数の第1データセグメントのうちの、前記第3記憶領域に格納されていた第2データセグメントと、
    前記複数の第1データセグメントのうちの、前記複数の第2記憶領域のうちの1つであって前記第3記憶領域とは異なる第4記憶領域に格納されていた第3データセグメントと、を前記コントローラに出力する、
    メモリシステム。
  2. 前記回路は更に、前記コントローラが前記第1コマンドセットを前記メモリチップに送信した後から、前記コントローラが前記第2コマンドセットを前記メモリチップに送信するまでの間に、
    前記複数の第1データセグメントのうちの、前記複数の第2記憶領域のうちの1以上の第5記憶領域であって、前記第3記憶領域および前記第4記憶領域の何れとも異なる前記1以上の第5記憶領域に格納されていた、1以上の第4データセグメントを、前記コントローラに出力する
    請求項1に記載のメモリシステム。
  3. 前記1以上の第5記憶領域のグループは前記第3記憶領域の末尾に連続して配置されており、前記第4記憶領域は前記グループの末尾に連続して配置されている、
    請求項2に記載のメモリシステム。
  4. 前記コントローラは、
    前記1以上の第4データセグメントが使用対象である場合、前記第1コマンドセットによって、前記第2データセグメント、前記1以上の第4データセグメント、および前記第3データセグメントを出力するように前記回路に要求する
    請求項3に記載のメモリシステム。
  5. 前記コントローラは、
    前記1以上の第4データセグメントが使用対象でなく、かつ、前記1以上の第4データセグメントに含まれる第4データセグメントの数が、しきい値より小さい場合、前記第1コマンドセットによって、前記第2データセグメント、前記1以上の第4データセグメント、および前記第3データセグメントを出力するように前記回路に要求する
    請求項3に記載のメモリシステム。
  6. 前記第4記憶領域は、前記第3記憶領域から離間した位置に配置されており、
    前記第1コマンドセットは更に、前記第4記憶領域の先頭の位置情報を含む、
    請求項1に記載のメモリシステム。
  7. 前記1以上の第5記憶領域は、間隔を空けずに配置されており、
    前記第1コマンドセットは更に、前記1以上の第5記憶領域のグループの先頭を示す第2位置情報および前記1以上の第5記憶領域の合計サイズを示すサイズ情報を含み、
    前記回路は、
    前記第2位置情報と前記サイズ情報とに基づいて前記1以上の第4データセグメントを前記コントローラに出力する
    請求項2に記載のメモリシステム。
  8. 前記回路は、前記第2データセグメントの出力と、前記第3データセグメントの先頭部分の出力の準備と、を少なくとも一部が時間的にオーバーラップするように実行する、
    請求項1に記載のメモリシステム。
JP2020153868A 2020-09-14 2020-09-14 メモリシステム Pending JP2022047854A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020153868A JP2022047854A (ja) 2020-09-14 2020-09-14 メモリシステム
US17/199,586 US11416169B2 (en) 2020-09-14 2021-03-12 Memory system and method of controlling nonvolatile memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020153868A JP2022047854A (ja) 2020-09-14 2020-09-14 メモリシステム

Publications (1)

Publication Number Publication Date
JP2022047854A true JP2022047854A (ja) 2022-03-25

Family

ID=80626592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020153868A Pending JP2022047854A (ja) 2020-09-14 2020-09-14 メモリシステム

Country Status (2)

Country Link
US (1) US11416169B2 (ja)
JP (1) JP2022047854A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220142660A (ko) * 2021-04-15 2022-10-24 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4816740B2 (ja) 2009-02-09 2011-11-16 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
US9436480B1 (en) * 2013-11-08 2016-09-06 Western Digital Technologies, Inc. Firmware RAM usage without overlays
KR20150093004A (ko) 2014-02-06 2015-08-17 삼성전자주식회사 불휘발성 저장 장치의 동작 방법 및 불휘발성 저장 장치를 액세스하는 컴퓨팅 장치의 동작 방법
US10289308B2 (en) 2015-04-15 2019-05-14 Ricardo Eugenio Velez-McCaskey Architecture and method for an interconnected data storage system using a unified data bus

Also Published As

Publication number Publication date
US11416169B2 (en) 2022-08-16
US20220083264A1 (en) 2022-03-17

Similar Documents

Publication Publication Date Title
US10783095B2 (en) Semiconductor memory device and continuous reading method for the same
US20240078034A1 (en) Apparatus for outputting internal state of memory apparatus and memory system using the apparatus
US11086568B2 (en) Memory system for writing fractional data into nonvolatile memory
US20100082881A1 (en) Solid state storage device controller with expansion mode
CN110321068B (zh) 存储器控制器及操作存储器控制器的方法
KR20190101095A (ko) 키-밸류 스토리지 장치 및 이의 동작 방법
US20100042777A1 (en) Semiconductor device including memory cell having charge accumulation layer and control gate and data write method for the same
US10283174B2 (en) Memory system initializing page buffers and operating method thereof
US9508400B1 (en) Storage device and operating method thereof
KR20150068137A (ko) 불휘발성 메모리 장치 및 그것의 동작 방법
US11442664B2 (en) Memory system and method of operating the same
US11726690B2 (en) Independent parallel plane access in a multi-plane memory device
TW201320072A (zh) 記憶體儲存裝置、記憶體控制器與其資料傳輸方法
US9940030B2 (en) Memory system and method of operating the same
US9990280B2 (en) Methods for reading data from a storage unit of a flash memory and apparatuses using the same
US20170277454A1 (en) Memory device and operating method thereof
JP2022047854A (ja) メモリシステム
JP2013232097A (ja) 半導体記憶装置
US20190227715A1 (en) Memory controller and operating method thereof
KR102303653B1 (ko) 메모리 장치 및 이를 포함하는 메모리 시스템
CN115346570A (zh) 针对存储器装置中的命令队列的读取时间开销和电力优化
JP2023039459A (ja) メモリシステムおよび方法
CN112885385B (zh) 非易失性存储器及其读取方法
US20230040735A1 (en) Memory system and method of controlling non-volatile memory
US11392326B2 (en) Memory device and method of operating the memory device