IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝メモリ株式会社の特許一覧

<>
  • 特開-メモリシステム 図1
  • 特開-メモリシステム 図2
  • 特開-メモリシステム 図3
  • 特開-メモリシステム 図4
  • 特開-メモリシステム 図5
  • 特開-メモリシステム 図6
  • 特開-メモリシステム 図7
  • 特開-メモリシステム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024044051
(43)【公開日】2024-04-02
(54)【発明の名称】メモリシステム
(51)【国際特許分類】
   G06F 12/06 20060101AFI20240326BHJP
   G06F 12/00 20060101ALI20240326BHJP
【FI】
G06F12/06 550A
G06F12/00 597U
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2022149365
(22)【出願日】2022-09-20
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】庄野 温夫
(72)【発明者】
【氏名】岩崎 清隆
【テーマコード(参考)】
5B160
【Fターム(参考)】
5B160CA15
5B160CD04
5B160CD12
(57)【要約】
【課題】データ転送の期間を短縮する。
【解決手段】実施形態のメモリシステムは、複数のメモリパッケージと、前記複数のメモリパッケージのそれぞれに設けられた複数のメモリダイと、前記複数のメモリダイのそれぞれに設けられ、データをそれぞれ記憶する複数のプレーンと、を含む不揮発性メモリと、ラウンドロビン処理に基づいて、前記不揮発性メモリからデータをリードするメモリコントローラと、を含み、前記メモリコントローラは、前記複数のプレーンの中から次のサイクルにおいてデータ転送を実行するプレーンを選択する時、データ転送中のプレーンが属するメモリパッケージと異なるメモリパッケージに属するプレーンを、前記ラウンドロビン処理によって、選択する。
【選択図】 図4
【特許請求の範囲】
【請求項1】
複数のメモリパッケージと、前記複数のメモリパッケージのそれぞれに設けられた複数のメモリダイと、前記複数のメモリダイのそれぞれに設けられ、データをそれぞれ記憶する複数のプレーンと、を含む不揮発性メモリと、
ラウンドロビン処理に基づいて、前記不揮発性メモリからデータをリードするメモリコントローラと、
を具備し、
前記メモリコントローラは、前記複数のプレーンの中から次のサイクルにおいてデータ転送を実行するプレーンを選択する時、データ転送中のプレーンが属するメモリパッケージと異なるメモリパッケージに属するプレーンを、前記ラウンドロビン処理によって、選択する、
メモリシステム。
【請求項2】
前記メモリコントローラは、前記ラウンドロビン処理において、
前記複数のメモリパッケージのうち1つのメモリパッケージを、データ転送の可否を判断する対象に設定し、
前記対象に設定されたメモリパッケージがデータ転送を可能であるか否か判断し、
前記対象に設定されたメモリパッケージがデータ転送を可能でない場合、前記対象に設定されたメモリパッケージを、変え、
前記対象に設定されたメモリパッケージがデータ転送を可能である場合、前記対象に設定されたメモリパッケージの前記複数のメモリダイのうち1つのメモリダイを、データ転送の可否を判断する対象に設定し、
前記対象に設定されたメモリダイがデータ転送を可能であるか否か判断し、
前記対象に設定されたメモリダイがデータ転送を可能でない場合、前記対象に設定されたメモリダイを、変え、
前記対象に設定されたメモリダイがデータ転送を可能である場合、前記対象に設定されたメモリダイの前記複数のプレーンのうち1つのプレーンを、データ転送の可否を判断する対象に設定し、
前記対象に設定されたプレーンがデータ転送を可能でない場合、前記対象に設定されたプレーンを、変え、
前記対象に設定されたプレーンがデータ転送を可能である場合、前記対象に設定されたプレーンから前記データをリードする、
請求項1に記載のメモリシステム。
【請求項3】
前記複数のメモリパッケージのそれぞれのデータ転送の可否を示す第1の情報をそれぞれ記憶する複数の第1のレジスタと、前記複数のメモリダイのそれぞれのデータ転送の可否を示す第2の情報をそれぞれ記憶する複数の第2のレジスタと、前記複数のプレーンのそれぞれのデータ転送の可否を示す第3の情報をそれぞれ記憶する複数の第3のレジスタと、を含む記憶部を、
さらに具備する請求項2に記載のメモリシステム。
【請求項4】
前記複数の第1のレジスタのそれぞれの値は、前記複数の第2のレジスタの論理和演算の値に基づいて設定され、
前記複数の第2のレジスタのそれぞれの値は、前記複数の第3のレジスタの論理和演算の値に基づいて設定される、
請求項3に記載のメモリシステム。
【請求項5】
前記メモリコントローラは、
複数の識別番号のそれぞれを、前記複数のプレーンのそれぞれに割り当て、
前記メモリコントローラは、前記ラウンドロビン処理において、
前記複数の識別番号のうち1つを、データ転送の可否を判断する対象に設定し、
前記設定された識別番号が割り当てられたプレーンがデータ転送可能であるか判断し、
前記設定された識別番号が割り当てられたプレーンがデータ転送を可能でない場合、前記設定された識別番号を変え、
前記設定された識別番号が割り当てられたプレーンがデータ転送を可能である場合、前記設定された識別番号が割り当てられたプレーンからデータをリードする、
請求項1に記載のメモリシステム。
【請求項6】
前記複数の識別番号のうち、データ転送の可否の判断の対象の識別番号を記憶する第1のレジスタと、前記複数のプレーンのそれぞれのデータ転送の可否を示す第1の情報を記憶する第2のレジスタと、を含む記憶部を、
さらに具備する請求項5に記載のメモリシステム。
【請求項7】
前記複数のプレーンのそれぞれのリード期間の終了を検出する第1の検出部を、
さらに具備する
請求項1に記載のメモリシステム。
【請求項8】
前記ラウンドロビン処理による前記複数のプレーンのそれぞれからのデータ転送のタイミングを制御するスケジューラを、
さらに具備する
請求項1に記載のメモリシステム。
【請求項9】
前記不揮発性メモリは、NANDフラッシュメモリである、
請求項1に記載のメモリシステム。
【請求項10】
複数のメモリパッケージと、前記複数のメモリパッケージのそれぞれに設けられた複数のメモリダイと、前記複数のメモリダイのそれぞれに設けられ、データをそれぞれ記憶する複数のプレーンと、を含む不揮発性メモリと、
ラウンドロビン処理に基づいて、前記不揮発性メモリからデータをリードするメモリコントローラと、
を具備し、
前記メモリコントローラは、
前記複数のメモリパッケージのうち1つのメモリパッケージを、データ転送の可否を判断する対象に設定し、
前記対象に設定されたメモリパッケージがデータ転送を可能であるか否か判断し、
前記対象に設定されたメモリパッケージがデータ転送を可能でない場合、前記対象に設定されたメモリパッケージを、変え、
前記対象に設定されたメモリパッケージがデータ転送を可能である場合、前記対象に設定されたメモリパッケージの前記複数のメモリダイのうち1つのメモリダイを、データ転送の可否を判断する対象に設定し、
前記対象に設定されたメモリダイがデータ転送を可能であるか否か判断し、
前記対象に設定されたメモリダイがデータ転送を可能でない場合、前記対象に設定されたメモリダイを、変え、
前記対象に設定されたメモリダイがデータ転送を可能である場合、前記対象に設定されたメモリダイの前記複数のプレーンのうち1つのプレーンを、データ転送の可否を判断する対象に設定し、
前記対象に設定されたプレーンがデータ転送を可能でない場合、前記対象に設定されたプレーンを、変え、
前記対象に設定されたプレーンがデータ転送を可能である場合、前記対象に設定されたプレーンから前記データをリードする、
メモリシステム。
【請求項11】
前記複数のメモリパッケージのそれぞれのデータ転送の可否を示す第1の情報をそれぞれ記憶する複数の第1のレジスタと、前記複数のメモリダイのそれぞれのデータ転送の可否を示す第2の情報をそれぞれ記憶する複数の第2のレジスタと、前記複数のプレーンのそれぞれのデータ転送の可否を示す第3の情報をそれぞれ記憶する複数の第3のレジスタと、を含む記憶部を、
さらに具備する請求項10に記載のメモリシステム。
【請求項12】
前記複数の第1のレジスタのそれぞれの値は、前記複数の第2のレジスタの論理和演算の値に基づいて設定され、
前記複数の第2のレジスタのそれぞれの値は、前記複数の第3のレジスタの論理和演算の値に基づいて設定される、
請求項11に記載のメモリシステム。
【請求項13】
前記複数のプレーンのそれぞれのリード期間の終了を検出する第1の検出部を、
さらに具備する
請求項10に記載のメモリシステム。
【請求項14】
前記ラウンドロビン処理による前記複数のプレーンのそれぞれからのデータ転送のタイミングを制御するスケジューラを、
さらに具備する
請求項10に記載のメモリシステム。
【請求項15】
前記不揮発性メモリは、NANDフラッシュメモリである、
請求項10に記載のメモリシステム。
【請求項16】
複数のメモリパッケージと、前記複数のメモリパッケージのそれぞれの複数のメモリダイと、前記複数のメモリダイのそれぞれに設けられ、データをそれぞれ記憶する複数のプレーンと、を含む不揮発性メモリと、
ラウンドロビン処理に基づいて、前記不揮発性メモリからデータをリードするメモリコントローラと、
を具備し、
前記メモリコントローラは、
複数の識別番号のそれぞれを、前記複数のプレーンのそれぞれに割り当て、
前記メモリコントローラは、前記ラウンドロビン処理において、
前記複数の識別番号のうち1つを、データ転送の可否を判断する対象に設定し、
前記設定された識別番号が割り当てられたプレーンがデータ転送可能であるか判断し、
前記設定された識別番号が割り当てられたプレーンがデータ転送を可能でない場合、前記設定された識別番号を変え、
前記設定された識別番号が割り当てられたプレーンがデータ転送を可能である場合、前記設定された識別番号が割り当てられたプレーンからデータをリードする、
メモリシステム。
【請求項17】
前記複数の識別番号のうち、データ転送の可否の判断の対象の識別番号を記憶する第1のレジスタと、前記複数のプレーンのそれぞれのデータ転送の可否を示す第1の情報を記憶する第2のレジスタと、を含む記憶部を、
さらに具備する請求項16に記載のメモリシステム。
【請求項18】
前記複数のプレーンのそれぞれのリード期間の終了を検出する第1の検出部を、
さらに具備する
請求項16に記載のメモリシステム。
【請求項19】
前記ラウンドロビン処理による前記複数のプレーンのそれぞれからのデータ転送のタイミングを制御するスケジューラを、
さらに具備する
請求項16に記載のメモリシステム。
【請求項20】
前記不揮発性メモリは、NANDフラッシュメモリである、
請求項16に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
実施形態は、メモリシステムに関する。
【背景技術】
【0002】
データを不揮発に記憶することが可能なNAND型フラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許出願公開第2015/0212732号明細書
【特許文献2】米国特許出願公開第2019/0214087号明細書
【特許文献3】米国特許出願公開第2022/0084568号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
データ転送の期間を短縮する。
【課題を解決するための手段】
【0005】
実施形態のメモリシステムは、複数のメモリパッケージと、複数のメモリパッケージのそれぞれに設けられた複数のメモリダイと、複数のメモリダイのそれぞれに設けられ、データをそれぞれ記憶する複数のプレーンと、を含む不揮発性メモリと、ラウンドロビン処理に基づいて、不揮発性メモリからデータをリードするメモリコントローラと、を含み、メモリコントローラは、複数のプレーンの中から次のサイクルにおいてデータ転送を実行するプレーンを選択する時、データ転送中のプレーンが属するメモリパッケージと異なるメモリパッケージに属するプレーンを、ラウンドロビン処理によって、選択する。
【図面の簡単な説明】
【0006】
図1】実施形態の情報処理システムの構成を示す図。
図2】第1の実施形態のメモリシステムの不揮発性メモリの構成を示す図。
図3】第1の実施形態のメモリシステムのメモリコントローラの構成を示す図。
図4】第1の実施形態のメモリシステムの機能構成を示す図。
図5】第1の実施形態のメモリシステムの動作を示すフローチャート。
図6】第1の実施形態のメモリシステムの効果を説明するための図。
図7】第2の実施形態のメモリシステムの機能構成を示す図。
図8】第2の実施形態のメモリシステムの動作を示すフローチャート。
【発明を実施するための形態】
【0007】
図1乃至図8を参照して、実施形態のメモリシステムについて、説明する。
【0008】
以下、図面を参照しながら、本実施形態について詳細に説明する。以下の説明において、同一の機能及び構成を有する要素については、同一符号を付す。また、以下の各実施形態において、末尾に区別化のための数字/英字を伴った参照符号を付された構成要素(例えば、回路、配線、各種の電圧及び信号など)が、相互に区別されなくとも良い場合、末尾の数字/英字が省略された記載(参照符号)が用いられる。
【0009】
(実施形態)
(1)第1の実施形態
(a)構成
(a-1)情報処理システム1の構成
図1は、本実施形態の情報処理システム1の構成の一例を示すブロック図である。
【0010】
情報処理システム1は、ホストデバイスHD及びメモリシステムMSを含む。
【0011】
ホストデバイスHDは、パーソナルコンピュータ、携帯情報端末、サーバなどの電子機器である。
【0012】
メモリシステムMSは、メモリカード、SSD(solid state drive)などの半導体ストレージデバイスである。メモリシステムMSは、不揮発性メモリ10、及びメモリコントローラ20を含む。
【0013】
不揮発性メモリ10は、データを不揮発に記憶するメモリデバイスである。本実施形態において、不揮発性メモリ10は、例えば、NAND型フラッシュメモリである。但し、不揮発性メモリ10は、NOR型フラッシュメモリ、MRAM(Magneto-resistive Random Access Memory)、PRAM(Phase change Random Access Memory)、ReRAM(Resistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)でもよい。不揮発性メモリ10は、複数のメモリパッケージ100を含む。複数のメモリパッケージ100のそれぞれは、複数のメモリダイ(メモリチップ)110を含む。複数のメモリダイ110のそれぞれは、複数のプレーンPLNを含む。本実施形態において、データを不揮発性メモリ10に記憶させる(書き込む)ことを、“不揮発化”ともよぶ。
【0014】
メモリコントローラ20は、不揮発性メモリ10を制御する制御装置である。メモリコントローラ20は、例えば、SoC(System On a Chip)として構成される半導体集積回路である。メモリコントローラ20は、ホストデバイスHDから受けた命令(要求)に基づいて不揮発性メモリ10を制御して、データのリード動作、ライト動作、及びイレース動作などを実行する。メモリコントローラ20は、複数の不揮発性メモリ10を一括で管理してもよい。メモリコントローラ20は、バスB1を介してホストデバイスHDに接続される。不揮発性メモリ10は、バスB2を介して、メモリコントローラ20に接続される。なお、ホストデバイスHDとメモリコントローラ20とは、ネットワークを介して接続されてもよい。
【0015】
(a-2)メモリシステムMSのハードウェア構成
(a-2-1)不揮発性メモリ10のハードウェア構成
図2は、本実施形態の不揮発性メモリ10のハードウェア構成の一例を示すブロック図である。
【0016】
不揮発性メモリ10の或るメモリパッケージ100において、各メモリダイ110は、例えば、複数のプレーンPLN、及び制御回路130を含む。
【0017】
複数のプレーンPLNのそれぞれは、互いに独立に且つ並列(同時)に動作し得る回路である。複数のプレーンPLNの集合は、メモリコア回路120ともよばれる。
【0018】
制御回路130は、複数のプレーンPLNの動作を制御する複数の回路の集合である。
【0019】
各プレーンPLNは、メモリセルアレイ121、ロウデコーダモジュール122、及びセンスアンプモジュール123を含む。
【0020】
メモリセルアレイ121は、複数のメモリセルMCの集合を含む記憶回路である。複数のメモリセルMCは、二次元に配置されてもよいし、三次元に配置されてもよい。
【0021】
ロウデコーダモジュール122は、ロウアドレスをデコードするデコーダである。ロウデコーダモジュール122は、デコード結果に基づいてメモリセルアレイ121のロウ(1つのブロックBLK)を選択する。ロウデコーダモジュール122は、選択したブロックBLKに設けられた複数の配線(ワード線WL及びビット線BL)に、電圧をそれぞれ転送する。
【0022】
センスアンプモジュール123は、リード動作時、ビット線BLの電圧に基づいて、選択されたブロックBLKから読み出されたデータをセンスするセンス回路である。センスアンプモジュール123は、リード動作時、読み出されたデータを、制御回路130を介してメモリコントローラ20に送信する。センスアンプモジュール123は、ライト動作時、メモリセルMCに書き込むデータに応じた電圧を各ビット線BLに印加し得る。
【0023】
メモリセルアレイ121は、複数のブロックBLK(BLK0~BLKn-1)を含む。nは、自然数である。ブロックBLKは、例えば、データのイレース単位として使用される。ブロックBLKは、複数のページを含む。ページは、データのリードの単位である。また、ページは、データのライトの単位である。ページは、例えば、1つのワード線WLに接続された複数のメモリセルMCによって記憶されるデータに対応する。なお、1つのワード線WLに接続された複数のメモリセルMCは、各メモリセルMCが記憶するデータのビット数に応じて、複数のページのデータを記憶し得る。
【0024】
ブロックBLKは、複数のメモリセルMCと、複数のビット線BLと、複数のワード線WLとを含む。各メモリセルMCは、少なくとも1ビットデータを不揮発に記憶する。各メモリセルMCは、1つのビット線BLと1つのワード線WLとに関連付けられる。各メモリセルMCは、ワード線WLを識別するアドレスと、ビット線BLを識別するアドレスと、に基づいて識別される。
【0025】
制御回路130は、メモリインターフェース(メモリI/F)131、シーケンサ132、及びドライバモジュール133を含む。
【0026】
メモリI/F131は、バスB2を介してメモリコントローラ20に接続されるハードウェアインターフェースである。メモリI/F131は、不揮発性メモリ10とメモリコントローラ20との間のインターフェース規格に従った通信を行う。メモリI/F131がサポートするインターフェース規格は、例えば、NANDインターフェース規格である。例えば、メモリI/F131は、ロウアドレスを各ロウデコーダモジュール122に送る。メモリI/F131は、リード動作時、読み出されたデータをセンスアンプモジュール123のそれぞれから受ける。メモリI/F131は、ライト動作時、データを或るセンスアンプモジュール123に送る。
【0027】
シーケンサ132は、メモリダイ110の全体の動作を制御する制御回路である。シーケンサ132は、メモリI/F131を介して受け取ったコマンドに基づいてドライバモジュール133、複数のロウデコーダモジュール122、及び複数のセンスアンプモジュール123などを制御して、リード動作、ライト動作、及びイレース動作などを実行する。
【0028】
ドライバモジュール133は、リード動作、ライト動作、及びイレース動作などに用いられる電圧を生成する回路である。ドライバモジュール133は、複数の信号線を介してロウデコーダモジュール122のそれぞれに接続される。ドライバモジュール133は、メモリI/F131を介して受け取ったアドレスに基づいて、複数のワード線WL及び複数のビット線BLに対応する複数の信号線の各々に印加する電圧を変更し得る。
【0029】
不揮発性メモリ10のメモリ空間において、メモリパッケージ100の識別番号(アドレス値)は、メモリ空間における上層のアドレスの階層に相当する。プレーンPLNの識別番号(アドレス)は、メモリ空間における下層のアドレスの階層に相当する。メモリダイ110の識別番号(アドレス)は、メモリ空間におけるメモリパッケージ100の階層とプレーンPLNの階層との間の中層のアドレスの階層に相当する。
【0030】
(a-2-2)メモリコントローラ20のハードウェア構成
図3は、本実施形態のメモリコントローラ20のハードウェア構成の一例を示すブロック図である。
【0031】
本実施形態のメモリコントローラ20は、ホストインターフェース(ホストI/F)21、メモリインターフェース(メモリI/F)22、CPU(Central Processing Unit)23、ECC(Error Correction Code)回路24、ROM(Read Only Memory)25、RAM(Random Access Memory)26、及びバッファメモリ27を含む。
【0032】
ホストI/F21は、バスB1を介してホストデバイスHDに接続されるハードウェアインターフェースである。ホストI/F21は、ホストデバイスHDとメモリコントローラ20との間のインターフェース規格に従った通信を行う。ホストI/F21がサポートするインターフェース規格は、SATA(Serial Advanced Technology Attachment)、PCIeTM(PCI Express)などである。
【0033】
メモリI/F22は、バスB2を介して不揮発性メモリ10に接続されるハードウェアインターフェースである。メモリI/F22は、不揮発性メモリ10とメモリコントローラ20との間のインターフェース規格に従った通信を行う。メモリI/F22がサポートするインターフェース規格は、例えば、NANDインターフェース規格である。
【0034】
CPU23は、プロセッサである。CPU23は、メモリコントローラ20の全体の動作を制御する。CPU23は、ホストI/F21を介して受けたライト要求に従って、データの書き込みをメモリI/F22を介して不揮発性メモリ10に指示する。CPU23は、ホストI/F21を介して受けたリード要求に従って、データの読み出しをメモリI/F22を介して不揮発性メモリ10に指示する。
【0035】
ECC回路24は、ECC処理を実行する回路である。ECC処理は、データの符号化及び復号化を含む。ECC回路24は、不揮発性メモリ10に書き込むデータを符号化する。ECC回路24は、不揮発性メモリ10から読み出されたデータを復号する。
【0036】
ROM25は、不揮発性メモリである。ROM25は、例えば、EEPROMTM(Electrically Erasable Programmable Read-Only Memory)である。ROM25は、ファームウェアなどのプログラムを記憶する。例えば、後述されるメモリコントローラ20の動作は、CPU23がROM25のファームウェアを実行することにより実現される。
【0037】
RAM26は、揮発性メモリである。RAM26は、例えば、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)である。RAM26は、CPU23の作業領域として使用される。RAM26は、論理アドレスと物理アドレスとを関連付けるルックアップテーブル(LUT)などの管理テーブルを記憶する。管理テーブルは、メモリシステムMSのシステムデータの一種である。LUTは、“アドレス変換テーブル”や、“論理アドレス/物理アドレス変換テーブル”とよばれてもよい。
【0038】
バッファメモリ27は、揮発性メモリである。バッファメモリ27は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などである。バッファメモリ27は、ホストI/F21を介して受けたデータや、メモリI/F22を介して受けたデータを一時的に記憶する。バッファメモリ27は、メモリコントローラ20に外部接続されてもよい。
【0039】
(a-2-3)不揮発性メモリ10及びメモリコントローラ20の機能構成
図4は、本実施形態のメモリシステムMSにおける、不揮発性メモリ10及びメモリコントローラ20の機能構成の一例を示すブロック図である。
【0040】
上述のように、不揮発性メモリ10は、複数のメモリパッケージ100を含む。複数のメモリパッケージ100のそれぞれは、チャネルCh(Ch0,Ch1,・・・)を介して、メモリコントローラ20に接続される。或る個数(例えば、2つ)のメモリパッケージ100が、1つのチャネルChに接続される。複数のチャネルChの集合が、バスB2である。
【0041】
各メモリパッケージ100は、複数のメモリダイ110およびNAND制御部190を含む。1つのメモリパッケージは、例えば、2つのメモリダイ110を含む。但し、メモリパッケージ100が含むメモリダイ110の数は、3以上でもよい。
【0042】
各メモリダイ110は、複数のプレーンPLNを含む。1つのメモリダイ110は、例えば、2つのプレーンPLNを含む。但し、メモリダイ110のプレーンPLNの数は、3以上でもよい。プレーンPLNのそれぞれは、互いに独立に、コマンドに応じた動作シーケンスを実行する。
【0043】
NAND制御部190は、複数のメモリダイ110の制御回路130の集合を示す機能ブロックである。NAND制御部190は、メモリパッケージ100の複数のプレーンPLNの各種の動作を制御する。NAND制御部190は、リード動作において、プレーンPLNから読み出されたデータを、メモリコントローラ20に送る。NAND制御部190は、ライト動作において、不揮発性メモリ10に書き込まれるデータを、プレーンPLNに送る。
【0044】
メモリコントローラ20は、コマンド生成部210、及び複数のチャネル制御部220を含む。
【0045】
コマンド生成部210は、コマンドを生成する機能ブロックである。
【0046】
チャネル制御部220のそれぞれは、複数のチャネルChのうち対応する1つを制御する機能ブロックである。
【0047】
チャネル制御部220は、リード発行部221、リード期間終了検出部222、及びデータ転送制御部223を含む。
【0048】
リード発行部221は、コマンドに基づいて、チャネルChに属する複数のメモリパッケージ100のそれぞれに、リードコマンドを発行する。
【0049】
リード期間終了検出部222は、複数のプレーンPLNの中からリード期間が終了したプレーンPLNを検出する。リード期間は、プレーンPLNのリード動作が開始されてから完了するまでの期間である。リード期間が終了したプレーンPLNは、リード動作におけるデータ転送が可能なプレーンPLN、或いは、データ転送の指示を待っているプレーンPLNである。例えば、リード期間終了検出部222は、各種の機能に基づいて、NAND制御部190を介して、メモリパッケージ100の動作状態、メモリダイ110の動作状態、及びプレーンPLNの動作状態を、モニタできる。リード期間終了検出部222は、モニタ結果に基づいて、リード期間が終了したプレーン(データ転送が可能なプレーン)PLNを検出する。例えば、リード期間終了検出部222は、リード期間が終了したプレーンPLNを、後述の階層型状態記憶部30に通知する。
【0050】
データ転送制御部(データアウト制御部ともよばれる)223は、ラウンドロビン処理によって、各メモリパッケージ100のプレーンPLNから読み出されたデータの転送(データの出力)の順序を制御する。データ転送制御部223は、データ転送の可能な複数のプレーンPLNの中から次のサイクルにおいてデータ転送を実行するプレーンPLNを選択する時、現在データ転送中のプレーンPLNが属するメモリパッケージ100(又はメモリダイ110)と異なるメモリパッケージ100(又はメモリダイ110)に属するプレーンPLNを、ラウンドロビン処理によって、優先的に選択する。データ転送制御部223は、例えば、ソフトウェア、ハードウェア、又は、ソフトウェアとハードウェアとの組み合わせによって、構成される。
【0051】
データ転送制御部223は、階層型状態記憶部30、及び階層型ラウンドロビンスケジューラ40を含む。
【0052】
階層型状態記憶部30は、複数のメモリパッケージ100を含む階層、複数のメモリダイ110を含む階層、及び複数のプレーンPLNを含む階層のそれぞれにおける、各階層のデータ転送に関する各種の情報を記憶する。例えば、階層型状態記憶部30は、リード期間終了検出部222からの通知に基づいて、各メモリパッケージ100のリード期間の終了の状態(データ転送の可否、データ転送待ち)、各メモリダイ110のリード期間の終了の状態、及びプレーンPLNのリード期間の終了の状態を、記憶する。ここで、リード動作の終了の状態は、リード期間が終了したか否かに応じて、プレーンから読み出されたデータを、メモリコントローラ20に転送可能な状態を示す。また、階層型状態記憶部30は、記憶している情報を、チャネル制御部220及び/又は階層型ラウンドロビンスケジューラ40に送ることができる。
【0053】
階層型ラウンドロビンスケジューラ(ラウンドロビン制御部ともよばれる)40は、ラウンドロビン処理のための各種の処理の実行タイミング、各種の動作の実行期間、及び各種の設定を、制御する。例えば、階層型ラウンドロビンスケジューラ40は、階層型状態記憶部30の情報に基づいて、データ転送の可能なメモリパッケージ100、データ転送の可能なメモリダイ110、及びデータ転送の可能なプレーンPLNを階層的に探索する。階層型ラウンドロビンスケジューラ40は、ラウンドロビン処理による探索結果に基づいて、データ転送を可能なプレーンPLNを、検知する。階層型ラウンドロビンスケジューラ40は、検知結果に基づいて、データ転送を実行するプレーンPLNを選択する。階層型ラウンドロビンスケジューラ40は、選択されたプレーンPLNからのデータ転送を、制御する。
【0054】
階層型状態記憶部30は、レジスタ領域300及び論理演算部390を含む。
【0055】
レジスタ領域300は、情報を記憶する。
【0056】
論理演算部390は、レジスタ322,332の値の論理演算(例えば、OR演算)を実行する。論理演算部390は、データ転送制御部223の構成要素として、階層型状態記憶部30の外部に設けられてもよい。
【0057】
レジスタ領域300は、チャネル対応部310を含む。
【0058】
チャネル対応部310は、不揮発性メモリ10とメモリコントローラ20との間の対応するチャネルChに対して設けられている。チャネル対応部310は、ラウンドロビン処理における、対応するチャネルChの複数のメモリパッケージ100のデータ転送可能状態に関する情報を記憶する。
【0059】
チャネル対応部310は、レジスタ311、複数のレジスタ312及び複数のメモリパッケージ対応部320を含む。
【0060】
レジスタ311は、対応するチャネルChのメモリパッケージ100の階層において、複数のメモリパッケージ100のうちどのメモリパッケージ100が、ラウンドロビン処理におけるモニタ対象のメモリパッケージ100であるかを示す情報(例えば、メモリパッケージ100の識別番号又はアドレス値)を、記憶する。
【0061】
複数のレジスタ312のそれぞれは、メモリパッケージ100の階層において、対応するメモリパッケージ100がリード期間を終了しているか否か(データ転送を可能であるか否か)を示す情報を、記憶する。
【0062】
例えば、或るメモリパッケージ100が、データ転送を不可能な状態である場合(メモリパッケージ100の複数のメモリダイ110が、リード期間が終了したプレーンPLNを含まない状態である場合)、そのメモリパッケージ100に対応するレジスタ312は、第1の値(N)を記憶する。第1の値は、例えば、1ビットのデータである。1ビットのデータは、“0”データ又は“1”データを意味する。
【0063】
また、例えば、或るメモリパッケージ100が、データ転送を可能な状態である場合(メモリパッケージ100の少なくとも1つのメモリダイ110が、リード期間が終了したプレーンPLNを含む状態である場合)、そのメモリパッケージ100に対応するレジスタ312は、第1の値と異なる第2の値(Y)を記憶する。第2の値は、例えば、1ビットのデータである。1ビットのデータは、“0”データ又は“1”データを意味する。
【0064】
さらに、例えば、或るメモリパッケージ100に関するレジスタ312の値は、そのメモリパッケージ100に属するメモリダイ110に関する複数のレジスタ322の値の論理演算の結果に基づいて、決定される。複数のレジスタ322の値に対して実行される論理演算は、例えば、論理和演算(OR演算)である。
【0065】
複数のメモリパッケージ対応部320は、チャネルChに属する複数のメモリパッケージ100にそれぞれ対応する。複数のメモリパッケージ対応部320のそれぞれは、ラウンドロビン処理における、対応するメモリパッケージ100の複数のメモリダイ110のデータ転送可能状態に関する情報を記憶する。
【0066】
各メモリパッケージ対応部320は、レジスタ321及び複数のレジスタ322を含む。
【0067】
レジスタ321は、対応するメモリパッケージ100のメモリダイ110の階層において、複数のメモリダイ110のうちどのメモリダイ110が、ラウンドロビン処理におけるモニタ対象のメモリダイ110であるかを示す情報(例えば、メモリダイ110の識別番号又はアドレス値)を、記憶する。
【0068】
複数のレジスタ322のそれぞれは、メモリダイ110の階層において、対応するメモリダイ110がリード期間を終了しているか否かを示す情報を、記憶する。
【0069】
例えば、或るメモリダイ110が、データ転送を不可能な状態である場合(リード期間が終了したプレーンPLNを含まない状態である場合)、そのメモリダイ110に対応するレジスタ322は、第3の値(N)を記憶する。第3の値は、例えば、1ビットのデータである。
【0070】
また、例えば、或るメモリダイ110が、データ転送を可能な状態である場合(リード期間が終了したプレーンPLNを含む状態である場合)、そのメモリダイ110に対応するレジスタ322は、第3の値と異なる第4の値(Y)を記憶する。第4の値は、例えば、1ビットのデータである。
【0071】
さらに、例えば、或るメモリダイ110に関するレジスタ322の値は、そのメモリダイ110に属するプレーンPLNに関する複数のレジスタ332の値の論理演算の結果に基づいて、決定される。複数のレジスタ332の値に対して実行される論理演算は、例えば、論理和演算(OR演算)である。
【0072】
各メモリパッケージ対応部320は、複数のメモリダイ対応部330を含む。
【0073】
複数のメモリダイ対応部330は、メモリパッケージ100に属する複数のメモリダイ110にそれぞれ対応する。複数のメモリダイ対応部330のそれぞれは、ラウンドロビン処理における、対応するメモリダイ110の複数のプレーンPLNのデータ転送可能状態に関する情報を記憶する。
【0074】
各メモリダイ対応部330は、レジスタ331及び複数のレジスタ332を含む。
【0075】
レジスタ331は、対応するメモリダイ110のプレーンPLNの階層において、複数のプレーンPLNのうちどのプレーンPLNが、ラウンドロビン処理におけるモニタ対象のプレーンPLNであるかを示す情報(例えば、プレーンPLNの識別番号又はアドレス値)を、記憶する。
【0076】
複数のレジスタ332のそれぞれは、プレーンPLNの階層において、対応するプレーンPLNがリード期間を終了しているか否かを示す情報を、記憶する。
【0077】
例えば、或るプレーンPLNが、データ転送を不可能な状態である場合(リード期間が終了していない状態である場合)そのプレーンPLNに対応するレジスタ332は、第5の値(N)を記憶する。第5の値は、例えば、1ビットのデータである。
【0078】
また、例えば、或るプレーンPLNが、データ転送を可能な状態である場合(リード期間が終了している状態である場合)、そのプレーンPLNに対応するレジスタ332は、第5の値と異なる第6の値(Y)を記憶する。第6の値は、例えば、1ビットのデータである。
【0079】
さらに、例えば、或るプレーンPLNのリード期間(tR)が終了した場合、そのプレーンPLNに対応するレジスタ332の値は、第5の値から第6の値へ変わる。レジスタ332が第6の値を有している場合、そのレジスタ332に対応するプレーンPLNは、データ転送を待っている状態(データ転送を可能である状態)を示す。データ転送可能なプレーンPLNのデータ転送が完了した場合、そのプレーンPLNに対応するレジスタ332の値は、第6の値から第5の値へ変わる。
【0080】
(b)動作
図5は、第1の実施形態のメモリシステムMSの動作を示すフローチャートである。
【0081】
メモリコントローラ20は、不揮発性メモリ10からの複数のデータ転送のために、ラウンドロビン処理を実行する。
【0082】
メモリコントローラ20のデータ転送制御部223は、複数のメモリパッケージ100のリード期間の終了の状態(データ転送の可否)、複数のメモリダイ110のリード期間の終了の状態、及び複数のプレーンPLNのリード期間の終了の状態を、階層型状態記憶部30の情報(データ)に基づいて、階層型ラウンドロビンスケジューラ40によって、対応するメモリパッケージ100のメモリ空間を階層的にモニタする。
【0083】
ここでは、1つのチャネルCh(例えば、チャネルCh<0>)に関するチャネル制御部220及びメモリパッケージ100のラウンドロビン処理及びデータ転送について、説明する。
【0084】
データ転送の開始のタイミング又は或るプレーンPLNからのデータ転送中において、階層型ラウンドロビンスケジューラ40は、レジスタ311に記憶された識別番号に対応するメモリパッケージ100を対象に決定する(S1)。レジスタ311に識別番号が記憶されてない場合、階層型ラウンドロビンスケジューラ40は、チャネルCh<0>に属する或る識別番号(i番)のメモリパッケージ100を対象に決定する。iは、0以上の整数である。例えば、或るメモリパッケージ100のデータ転送が実行中である場合、データ転送を実行中のメモリパッケージ100と異なるメモリパッケージ100が、対象となる。レジスタ311に識別番号が記憶されてない場合、階層型ラウンドロビンスケジューラ40は、対象のメモリパッケージ100の識別番号を、レジスタ311に記憶させる。
【0085】
階層型ラウンドロビンスケジューラ40は、対象のメモリパッケージ100が、データ転送を可能な状態であるか否か、判断する(S2)。対象のメモリパッケージ100がデータ転送を可能な状態であるか否かの情報は、対応するレジスタ312に記憶される。
【0086】
対象のメモリパッケージ100が、データ転送を可能な状態でない場合(S2 NO)、階層型ラウンドロビンスケジューラ40は、レジスタ311の値を、インクリメント(1の加算)又はデクリメント(1の減算)する(S3)。これによって、階層型ラウンドロビンスケジューラ40は、レジスタ311の値を変える。その後、階層型ラウンドロビンスケジューラ40は、S1の処理を行う。
【0087】
対象のメモリパッケージ100が、データ転送を可能な状態である場合(S2 YES)、階層型ラウンドロビンスケジューラ40は、対象のメモリパッケージ100に属する複数のメモリダイ110のうち、レジスタ321に記憶された識別番号に対応するメモリダイ110を対象に決定する(S4)。レジスタ321に識別番号が記憶されてない場合、階層型ラウンドロビンスケジューラ40は、或る識別番号(j番目)のメモリダイ110を対象に決定する。jは、0以上の整数である。レジスタ321に識別番号が記憶されてない場合、階層型ラウンドロビンスケジューラ40は、対象のメモリダイ110の識別番号を、レジスタ321に記憶させる。
【0088】
階層型ラウンドロビンスケジューラ40は、対象のメモリダイ110が、データ転送を可能な状態であるか否か、判断する(S5)。対象のメモリダイ110がデータ転送を可能な状態であるか否かの情報は、対応するレジスタ322に記憶される。
【0089】
対象のメモリダイ110が、データ転送を可能な状態でない場合(S5 NO)、階層型ラウンドロビンスケジューラ40は、レジスタ321の値を、インクリメント又はデクリメントする(S6)。これによって、階層型ラウンドロビンスケジューラ40は、レジスタ321の値を変える。その後、階層型ラウンドロビンスケジューラ40は、S4の処理を行う。
【0090】
対象のメモリダイ110が、データ転送を可能な状態である場合(S5 YES)、階層型ラウンドロビンスケジューラ40は、対象のメモリダイ110を選択した後に、レジスタ321の値を、インクリメント又はデクリメントする(S7)。このように、階層型ラウンドロビンスケジューラ40は、レジスタ321の値を変える。これによって、複数のリード動作が連続して実行される状況下にあっても、同じ識別番号を有するメモリダイ110が連続して選択されるのを、抑制できる。
【0091】
階層型ラウンドロビンスケジューラ40は、選択したメモリダイ110に属する複数のプレーンPLNのうち、レジスタ331に記憶された識別情報に対応するプレーンPLNを対象に決定する(S8)。レジスタ331に識別情報が記憶されてない場合、階層型ラウンドロビンスケジューラ40は、或る識別番号(k番目)のプレーンPLNを対象に決定する。kは、0以上の整数である。レジスタ331に識別情報が記憶されてない場合、階層型ラウンドロビンスケジューラ40は、対象のプレーンPLNの識別番号を、レジスタ331に記憶させる。
【0092】
階層型ラウンドロビンスケジューラ40は、対象のプレーンPLNが、データ転送を可能な状態であるか否か、判断する(S9)。対象のプレーンPLNがデータ転送を可能な状態であるか否かの情報は、対応するレジスタ332に記憶される。
【0093】
対象のプレーンPLNが、データ転送を可能な状態でない場合(S9 NO)、階層型ラウンドロビンスケジューラ40は、レジスタ331の値を、インクリメント又はデクリメントする(S10)。これによって、階層型ラウンドロビンスケジューラ40は、レジスタ331の値を変える。その後、階層型ラウンドロビンスケジューラ40は、S8の処理を行う。
【0094】
対象のプレーンPLNが、データ転送を可能な状態である場合(S9 YES)、階層型ラウンドロビンスケジューラ40は、対象のプレーンPLNを、データ転送の対象のプレーンPLNに決定する(S11)。階層型ラウンドロビンスケジューラ40は、データ転送の対象のプレーンPLNを決定した後に、レジスタ331の値を変更してもよい。これによって、複数のリード動作が連続して実行される状況下にあっても、同じ識別番号を有するプレーンPLNが連続して選択されるのを、抑制できる。
【0095】
階層型ラウンドロビンスケジューラ40は、決定したデータ転送の対象のプレーンPLNに対するデータ転送を、データ転送制御部223に指示する(S12)。
【0096】
データ転送を指示されると、データ転送制御部223は、不揮発性メモリ10に、データ転送の対象のプレーンPLNのデータを、メモリコントローラ20へ出力させる(S13)。データは、NAND制御部190及びチャネルChを介して、メモリコントローラ20に出力される。データ転送の対象のプレーンPLNのデータ転送が完了した後、データ転送の対象のプレーンPLNに対応するレジスタ332には、データ転送を不可能な状態を示す情報が記憶される。
【0097】
データ転送の対象のプレーンPLNのデータ転送が完了した後、階層型ラウンドロビンスケジューラ40は、全てのリードコマンドに対応するデータの転送が完了した否か、確認する(S14)。
【0098】
全てのリードコマンドに対するデータの転送が完了していない場合(S13 NO)、階層型ラウンドロビンスケジューラ40は、レジスタ311の値を、インクリメント又はデクリメントする(S15)。その後、階層型ラウンドロビンスケジューラ40は、S1の処理を行う。
【0099】
全てのリードコマンドに対するデータの転送が完了している場合(S13 YES)、メモリコントローラ20は、図5に示す一連の処理を、終了する(終了)。
【0100】
図6は、本実施形態のメモリシステムMSにおける、データ転送の順序の制御にラウンドロビン処理を用いたデータ転送処理を、模式的に示す図である。図6において、2つのメモリパッケージ100が並列にデータ転送を実行する例が示されている。図6において、“(1),(2),(3),・・・,(15),(16)”は、リード期間の終了の順序を示している。
【0101】
ラウンドロビン処理によるデータ転送の順序の制御によって、複数のメモリパッケージ100のそれぞれから、データ(複数のデータアイテム)が、チャネルCh(バスB2)に出力される。
【0102】
本実施形態において、或るメモリパッケージ100のプレーンPLNの先行するデータ転送が完了する時点において、データ転送が可能な1以上のプレーンPLNの中から、先行するデータ転送を実行するメモリパッケージ100と異なるメモリパッケージ100のプレーンPLNが、選択される。
【0103】
それゆえ、本実施形態において、各メモリパッケージ100内のデータのリード期間tRの終了の順に依存せずに、リード期間tRが終了したプレーンPLNのデータ転送が、2つのメモリパッケージ100から交互に実行される。連続する2つのデータ転送が、互いに異なるメモリパッケージ100において実行される場合、データ出力待ち時間tWHR2は、発生しない。
【0104】
この結果として、本実施形態のメモリシステムMSは、データ転送間の待ち時間tWHR2の発生を抑制できる。
【0105】
それゆえ、本実施形態のメモリシステムMSは、複数のデータ転送の完了までの期間を短縮できる。
【0106】
1つのメモリパッケージ100の複数のメモリダイ110が、ラウンドロビン処理によって設定された順序に基づくデータ転送によって、並列にデータを転送する場合、先行するデータ転送を実行するメモリダイ110と異なるメモリダイ110のプレーンPLNが、次のデータ転送の対象として選択される。或るメモリダイ110の先行のデータ転送の完了の後、異なるメモリダイ110のデータ転送が、選択されたプレーンPLNによって実行される。
【0107】
(c)効果
第1の実施形態のメモリシステムMSは、メモリパッケージ100毎及びメモリダイ110毎に、前回のサイクルのデータ転送に続くデータ転送の対象となるメモリパッケージ100、メモリダイ110及びプレーンPLNを、ラウンドロビン処理によって、巡回して探索する。これによって、第1の実施形態のメモリシステムMSは、データ転送を実行可能なプレーンPLNが、一定の巡回の回数のうちにデータ転送の対象として選択することを、保証できる。したがって、第1の実施形態のメモリシステムMSは、データ転送のレイテンシの上限を保証できる。
【0108】
(d)まとめ
ラウンドロビン処理によって、データの転送可能な単位が、メモリパッケージ100、メモリダイ110及びプレーンPLNの順に階層的に探索される場合、異なる識別番号を有する複数のメモリパッケージ100及び/又は異なる識別番号を有するメモリダイ110が、データ転送の対象として、順次(交互に)選択される傾向を有する。それゆえ、同じ識別番号を有するメモリパッケージ100及び/又は同じ識別番号を有するメモリダイ110からの連続したデータ転送は、比較的回避され得る。この結果として、第1の実施形態のメモリシステムMSにおいて、複数のデータ転送間の待ち時間の発生が、抑制される。したがって、第1の実施形態のメモリシステムMSは、データ転送のための時間を、短縮できる。第1の実施形態のメモリシステムMSは、データ転送を効率化できる。第1の実施形態のメモリシステムMSは、メモリシステムの性能を向上できる。
【0109】
(2)第2の実施形態
(a)構成
図7は、第2の実施形態に係るメモリシステムMSの構成を模式的に示す図である。
【0110】
第2の実施形態において、インデックス(識別番号)Idxが、データ出力の対象の最小単位のそれぞれに割り当てられる。例えば、不揮発性メモリ10に含まれる複数のプレーンPLNのそれぞれが、データ出力の対象の最小単位である。
【0111】
図7の例において、不揮発性メモリ10において、1つのチャネルChに、2つのメモリパッケージ100が属する。1つのメモリパッケージ100は、2つのメモリダイ110を含む。1つのメモリダイ110は、2つのプレーンPLNを含む。
【0112】
この場合において、以下のように、インデックスIdxは、データ転送単位である複数のプレーンPLNのそれぞれに対して、割り当てられる。
【0113】
“0”のインデックスIdxが、“0”の識別番号のメモリパッケージ100及び“0”の識別番号のメモリダイ110に属する“0”のプレーンPLNに、割り当てられる。
【0114】
“1”のインデックスIdxが、“1”の識別番号のメモリパッケージ100及び“0”の識別番号のメモリダイ110に属する“0”のプレーンPLNに、割り当てられる。
【0115】
“2”のインデックスIdxが、“0”の識別番号のメモリパッケージ100及び“1”の識別番号のメモリダイ110に属する“0”のプレーンPLNに、割り当てられる。
【0116】
“3”のインデックスIdxが、“1”の識別番号のメモリパッケージ100及び“1”の識別番号のメモリダイ110に属する“0”のプレーンPLNに、割り当てられる。
【0117】
“4”のインデックスIdxが、“0”の識別番号のメモリパッケージ100及び“0”の識別番号のメモリダイ110に属する“1”のプレーンPLNに、割り当てられる。
【0118】
“5”のインデックスIdxが、“1”の識別番号のメモリパッケージ100及び“0”の識別番号のメモリダイ110に属する“1”のプレーンPLNに、割り当てられる。
【0119】
“6”のインデックスIdxが、“0”の識別番号のメモリパッケージ100及び“1”の識別番号のメモリダイ110に属する“1”のプレーンPLNに、割り当てられる。
【0120】
“7”のインデックスIdxが、“1”の識別番号のメモリパッケージ100及び“1”の識別番号のメモリダイ110に属する“1”のプレーンPLNに、割り当てられる。
【0121】
隣り合う2つのインデックスIdxのそれぞれは、互いに異なる識別番号のメモリパッケージ100に関連付けられている。
【0122】
例えば、複数のインデックスIdxの配列は、プレーンPLNの番号が最上位の桁、メモリパッケージ100の番号が最下位の桁、メモリダイ110の番号がプレーンPLNの番号の桁とメモリパッケージ100の番号の桁との間の桁とした数値に基づいて、設定される。
【0123】
このように、1つのメモリパッケージ100内のプレーンPLNの数に応じて、8つのインデックスIdxが、データ転送に関するラウンドロビン処理のために、設定される。
【0124】
本実施形態において、データ転送制御部223は、一次元型状態記憶部50及び一次元型ラウンドロビンスケジューラ60を含む。
【0125】
一次元型状態記憶部50は、レジスタ領域500を含む。レジスタ領域500は、複数のレジスタ501,502を含む。レジスタ501は、モニタ対象のインデックスIdxの値(m)を、記憶する。mは、0以上の整数である。
【0126】
複数のレジスタ502のそれぞれは、対応するインデックスIdxに対応するプレーンPLNがデータの転送を可能であるか否かの状態を示す値を、記憶する。レジスタ502の値は、例えば、リード期間終了検出部222によって、制御される。
【0127】
レジスタ502は、対応するインデックスIdxのプレーンPLNのリード期間が終了していない状態(データ転送が可能でない状態)である場合、第7の値(N)を記憶する。第7の値は、1ビットのデータ(“0”データ又は“1”データ)である。
【0128】
レジスタ502は、対応するインデックスIdxのプレーンPLNのリード期間が終了している状態(データ転送が可能な状態、データ転送が待機の状態)である場合、第7の値と異なる第8の値(Y)を記憶する。第8の値は、1ビットのデータ(“0”データ又は“1”データ)である。
【0129】
一次元型ラウンドロビンスケジューラ(ラウンドロビン制御部)60は、モニタ対象のインデックスIdxの値を、レジスタ501に設定する。
【0130】
一次元型ラウンドロビンスケジューラ60は、複数のレジスタ502の値に基づいて、モニタ対象のインデックスIdxに対応するプレーンPLNがデータ転送を可能であるか否か、モニタする。
【0131】
例えば、一次元型ラウンドロビンスケジューラ60は、不揮発性メモリ10の各プレーンからのデータ転送を制御できる。
【0132】
(b)動作
図8は、第2の実施形態に係るメモリシステムMSの動作を示すフローチャートである。
【0133】
データ転送の開始のタイミング又は或るプレーンPLNからのデータ転送中、一次元型ラウンドロビンスケジューラ60は、レジスタ501に記憶された識別番号に対応するインデックスIdxのプレーンPLNを対象に決定する(S21)。
【0134】
一次元型ラウンドロビンスケジューラ60は、対象のプレーンPLNが、データ転送可能であるか否か、判断する(S22)。
【0135】
対象のプレーンPLNが、データ転送可能でない場合(S22 NO)、一次元型ラウンドロビンスケジューラ60は、レジスタ501の値を、インクリメント又はデクリメントによって、変える(S23)。その後、一次元型ラウンドロビンスケジューラ60は、S21の処理を行う。
【0136】
対象のプレーンPLNが、データ転送可能である場合(S22 YES)、一次元型ラウンドロビンスケジューラ60は、対象のプレーンPLNを、データ転送の対象のプレーンPLNに決定する(S24)。
【0137】
一次元型ラウンドロビンスケジューラ60は、決定したデータ転送の対象のプレーンPLNのデータ転送を、データ転送制御部223に指示する(S25)。
【0138】
データ転送が指示されると、データ転送制御部223は、不揮発性メモリ10に、データ転送の対象のプレーンPLNのデータを、メモリコントローラ20へ出力させる(S26)。
【0139】
データ転送の対象のプレーンPLNのデータ転送が完了した後、一次元型ラウンドロビンスケジューラ60は、全てのリードコマンドに対するデータの転送が完了しているか否か、確認する(S27)。
【0140】
全てのリードコマンドに対するデータの転送が完了していない場合(S27 NO)、一次元型ラウンドロビンスケジューラ60は、レジスタ501の値を、変える(S28)。その後、一次元型ラウンドロビンスケジューラ60は、S21の処理を行う。
【0141】
全てのリードコマンドに対するデータの転送が完了している場合(S27 YES)、メモリコントローラ20は、図8に示される一連の処理を、終了する(終了)。
【0142】
(c)まとめ
第2の実施形態のメモリシステムMSにおいて、不揮発性メモリ10のデータ転送は、それぞれ異なるインデックスIdxが割り当てられたプレーンPLNの単位で、管理される。これによって、第2の実施形態のメモリシステムMSは、不揮発性メモリ10からの複数のデータ転送の順序を、比較的容易に制御できる。
【0143】
第2の実施形態のメモリシステムMSにおいて、複数のプレーンPLNは、インデックスIdxの数に応じた或るサイクルで、探索される。したがって、第2の実施形態において、複数のプレーンPLNのそれぞれは、データの転送対象として、確実に選択され得る。したがって、第2の実施形態のメモリシステムMSは、データ転送のレイテンシの上限を保証できる。
【0144】
第2の実施形態のメモリシステムMSは、ラウンドロビン処理による探索の階層の一次元化によって、モニタ対象の識別番号を記憶するレジスタ501の数を、削減できる。この結果として、第2の実施形態において、状態記憶部50のレジスタ領域500のサイズが、縮小され得る。
【0145】
第2の実施形態のメモリシステムMSは、第1の実施形態と実質的に同じ効果を得ることができる。第2の実施形態のメモリシステムMSは、データ転送のための時間を、短縮できる。第2の実施形態のメモリシステムMSは、メモリシステムの性能を向上できる。
【0146】
(3) その他
実施形態は例示であり、発明の範囲はそれらに限定されない。
【符号の説明】
【0147】
1…情報処理システム
HD…ホストデバイス
MS…メモリシステム
100…メモリパッケージ
110…メモリダイ
PLN…プレーン
222…リード期間終了検出部
223…データ転送制御部
30…階層型状態記憶部
311,312,321,322,331,332…レジスタ
40…階層型ラウンドロビンスケジューラ
50…一次元型状態記憶部
501,502…レジスタ
60…一次元型ラウンドロビンスケジューラ
図1
図2
図3
図4
図5
図6
図7
図8