JP2015099570A - コントローラ、記憶装置、および制御方法 - Google Patents

コントローラ、記憶装置、および制御方法 Download PDF

Info

Publication number
JP2015099570A
JP2015099570A JP2013240313A JP2013240313A JP2015099570A JP 2015099570 A JP2015099570 A JP 2015099570A JP 2013240313 A JP2013240313 A JP 2013240313A JP 2013240313 A JP2013240313 A JP 2013240313A JP 2015099570 A JP2015099570 A JP 2015099570A
Authority
JP
Japan
Prior art keywords
command
basic operation
category
unit
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
JP2013240313A
Other languages
English (en)
Inventor
則文 坪井
Noribumi Tsuboi
則文 坪井
旬 市島
Jun Ichishima
旬 市島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2013240313A priority Critical patent/JP2015099570A/ja
Priority to US14/206,325 priority patent/US20150143062A1/en
Publication of JP2015099570A publication Critical patent/JP2015099570A/ja
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/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/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • 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]

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)

Abstract

【課題】多様なインターフェースに好適に対応すること。【解決手段】実施形態のコントローラは、記憶部に接続され、前記記憶部に対して1つ以上の基本動作を定められた順序で行うコマンドを実行するインターフェース部と、前記基本動作が属するカテゴリ毎に、前記カテゴリに属する前記基本動作の実行時における前記インターフェース部と前記記憶部との間の信号の制御手順を保持する制御部と、を備える。前記制御部は、前記インターフェース部が実行する前記コマンドを構成する前記基本動作を、前記コマンドを構成する基本動作およびその実行の順序を示す第1の情報に基づいて求め、求めた前記基本動作を前記第1の情報に示された順に前記基本動作が属する前記カテゴリを示す第2の情報に基づいて前記インターフェース部に実行させる。【選択図】図1

Description

本発明の実施形態は、コントローラ、記憶装置、および制御方法に関する。
NAND型フラッシュメモリは、世代によりチップ構成が変化し、チップ構成によって記録方式(SLC,MLC,TLC等)やアレイ構成(4プレーン,2プレーン,1プレーン等)、ページサイズ(8KB,16KB等)などの違いがある。そして、チップ構成に応じてインターフェースプロトコルが異なる。このため、特定のチップ構成のNAND型フラッシュメモリに対応したコントローラLSIではそれとは異なるチップ構成のNAND型フラッシュメモリを制御することができない。したがって、NAND型フラッシュメモリを使用する記憶装置の開発においては、NAND型フラッシュメモリのチップ構成の変更に柔軟に対応可能なコントローラが求められる。このような要望は、NAND型フラッシュメモリに対するインターフェースに限らず、無線通信やLANといったインターフェースプロトコルなどにおいても同様である。
米国特許第6,886,083号明細書
本発明の一つの実施形態は、多様なインターフェースに好適に対応することができるコントローラ、記憶装置、および記憶装置の制御方法を提供することを目的とする。
本発明の一つの実施形態のコントローラは、記憶部に接続され、前記記憶部に対して1つ以上の基本動作を定められた順序で行うコマンドを実行するインターフェース部と、前記基本動作が属するカテゴリ毎に、前記カテゴリに属する前記基本動作の実行時における前記インターフェース部と前記記憶部との間の信号の制御手順を保持する制御部と、を備える。前記制御部は、前記インターフェース部が実行する前記コマンドを構成する前記基本動作を、前記コマンドを構成する基本動作およびその実行の順序を示す第1の情報に基づいて求め、求めた前記基本動作を前記第1の情報に示された順に前記基本動作が属する前記カテゴリを示す第2の情報に基づいて前記インターフェース部に実行させる。
図1は、本実施形態にかかる記憶装置の構成を示すブロック図である。 図2は、本実施形態にかかる情報保持部の構成を示す図である。 図3は、本実施形態のコマンド発行サイクルにおけるインターフェース信号の時間変化を示す図である。 図4は、本実施形態のアドレス発行サイクルにおけるインターフェース信号の時間変化を示す図である。 図5は、本実施形態のデータライトサイクルにおけるインターフェース信号の時間変化を示す図である。 図6は、本実施形態のデータリードサイクルにおけるインターフェース信号の時間変化を示す図である。 図7は、本実施形態の第1テーブル(ID0テーブル)の構成を示す図である。 図8は、本実施形態の第2テーブル(ID1テーブル)の構成を示す図である。 図9は、本実施形態の第3テーブル(ID2テーブル)の構成を示す図である。 図10は、本実施形態の第4テーブル(ID3テーブル)の構成を示す図である。 図11は、本実施形態のアレイ構成の違いにおけるページカウンタ(Page Counter)からブロックアドレス(Block Address)およびページアドレス(Page Address)を求める対応表である。 図12は、本実施形態におけるNANDチップのコンフィギュレーションの設定から、NANDコマンドの発行までのコントローラの動作を示すフローチャートである。 図13は、本実施形態のNANDコマンドの基本動作の動作順序を示すタイムチャートである。
以下に添付図面を参照して、実施形態にかかるコントローラ、記憶装置、および制御方法を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
(実施形態)
図1は、本実施形態にかかる記憶装置100の構成を示すブロック図である。記憶装置100は、不揮発性メモリであるNANDチップ20およびそれを制御するコントローラ10を備える。コントローラ10は、CPU5、ホストインターフェース2、NANDインターフェース7、情報保持部3、およびロジック回路を含む制御回路4を備える。コントローラ10は、ホストインターフェース2を介してPCなどのホスト1と接続し、NANDインターフェース7を介してNANDチップ20と接続する。情報保持部3は、図2に示すように、後述する第1テーブル31、第2テーブル32、第3テーブル33、および第4テーブル34を備える。
NANDインターフェース7におけるインターフェースプロトコルの基本構成であるプリミティブ(primitive)は、NANDインターフェース7の基本動作に対応する。これらのプリミティブは、例えば、インターフェース仕様である“Toggle DDR(Doubole Data Rate) 2.0”により規定されている。NANDインターフェース7の基本動作は、以下に説明する複数のインターフェース信号の制御手順の違いに対応して、複数のカテゴリに分類可能である。例えば、各カテゴリをサイクルと名付ければ、NANDインターフェース7の基本動作は、コマンド発行サイクル(図3)、アドレス発行サイクル(図4)、データライトサイクル(図5)、データリードサイクル(図6)、およびNOPサイクルの5つカテゴリに分類可能である。NOPサイクルは遅延を指示するサイクルなので図示していない。図3〜図6には、各カテゴリの動作状態における、NANDインターフェース7とNANDチップ20との間の制御信号であるインターフェース信号(アクティブなチップを指示するチップイネーブル(CEB)信号、コマンド信号をラッチするコマンドラッチイネーブル(CLE)信号、アドレス信号をラッチするアドレスラッチイネーブル(ALE)信号、書き込みを可能にするライトイネーブル(WEB)信号、読み出しを可能にするリードイネーブル(REB)信号、データ信号の同期信号であるデータストローブ信号(DQS)、データを示すデータ信号(DQ)、など)の時間変化を示している。データストローブ信号(DQS)、データ信号(DQ)は双方向の信号であるが、残りの信号はNANDインターフェース7からNANDチップ20への制御信号である。なお、DQ[7:0]は、データ信号が8ビットであることを示す。
さらに、各サイクルに属する基本動作はプリミティブに対応するように細分化可能である。図7の第1テーブル31(ID0テーブル)は、プリミティブに対応するIDである“ID0”ごとに、その基本動作のサイクルおよびデータを示した図である。第1テーブル31において、“ID0”は各プリミティブに対応するIDを示し、“動作”はサイクルを示し、“データ”はデータ信号(DQ)の内容を示す。
例えば、コマンド発行サイクルは、[80hコマンド]や[00hコマンド]などのようにプリミティブに対応する基本動作のレベルまで分類が可能である。コマンド発行サイクルの基本動作においては、例えば、データ信号(DQ)を直接指定するモードがある。指定されたデータ信号(DQ)が[80hコマンド]である場合、図3に示したコマンド発行サイクルのデータ信号(DQ)がCommand=80hとなるよう各インターフェース信号を動作させる。即ち、“ID0”が“c80”であった場合、インターフェース信号は、CEB=0、CLE=1(イネーブル状態)、ALE=0、WEB=ストローブ動作(信号が一旦1から0に下がって、その後0から1に上がる動作)、REB=1(非使用状態)、DQS=非ドライブ状態(不定値)、DQ=80hとして一意に決定される。なお、図3〜図6に示される各信号の網掛け部分は不定値<0又は1>を示している。
図4に示したアドレス発行サイクルの基本動作においては、データ信号(DQ)でAddressを直接指定するモードと、8ビットより大きいNANDアドレスを指定するNANDアドレスモードがある。通常使用するNANDアドレスモードでは、例えばNANDチップ20の記憶領域を40bitアドレスで指定する場合、制御回路4により40bit分のアドレスを生成し、40bit中の8bit([7:0],[15:8],[23:16],[31:24],[39:32])をそれぞれ図7のテーブルに“a0”,“a1”,“a2”,“a3”,“a4”のように登録する。“ID0”が“a0”であった場合、インターフェース信号は、CEB=0、CLE=0、ALE=1(イネーブル状態)、WEB=ストローブ動作、REB=1、DQS=非ドライブ状態(不定値)、DQ=NAND ADDRESS[7:0]として一意に決定される。
図5に示したデータライトサイクルの基本動作においては、データ信号(DQ)を直接指定できるモードと、データ転送モードがある。通常使用するデータ転送モードでは、ホスト1からのデータをデータ信号(DQ)とすることでNANDチップ20へのデータ転送が可能となる。データライトのデータ転送モードの場合、即ち、“ID0”が“wd”の場合、インターフェース信号は、CEB=0、CLE=0、ALE=0、WEB=1、REB=1、DQS=トグル(Toggle)状態、DQ=WDataとして一意に決定される。トグル(Toggle)状態とは、信号が0から1に変化し、その後1から0に変化する状態である。図5において、データストローブ信号(DQS)のトグルにより、DQSが0から1に変化したときのDQの値であるWDataの値と、1から0に変化したときのDQの値であるWDataの値とがNANDチップ20へ転送される。図5は、8ビット×2のデータ転送の様子を示してあるが、トグルの回数を増やせば、8ビット×2×(トグルの回数)のデータ転送が可能である。
図6に示したデータリードサイクルの基本動作においては、NANDチップ20からのデータをレジスタで保持するレジスタモードと、データ転送モードがある。通常使用するデータ転送モードでは、NANDチップ20からのリードデータをホスト1へ転送するように制御する。データリードのデータ転送モードの場合、即ち、“ID0”が“rd”の場合、インターフェース信号はCEB=0、CLE=0、ALE=0、WEB=1、REB=トグル(Toggle)状態、DQS=Hi−Z、DQ=Hi−Zとして一意に決定される。この場合、DQSとDQはNANDチップ20からの入力信号となる。図6において、REBのトグルに応じてDQSもトグル状態となり、DQSのトグルにより、DQSが0から1に変化したときのDQの値であるRDataの値と、1から0に変化したときのDQの値であるRDataの値をデータとして受け取る。図6は、8ビット×2のデータ転送の様子を示してあるが、トグルの回数を増やせば、8ビット×2×(トグルの回数)のデータ転送が可能である。NANDチップ20からのデータをレジスタで保持するモードとしては、CPU5にNANDチップ20の状態を知らせるステータスリードなどがある。このプリミティブは、図7の“ID0”が“str”で示される。
NOPサイクルの基本動作の場合、指定した動作サイクル数分の間においてはNANDインターフェース7を動作させないように制御する。“ID0”が“tRR”のNOPサイクルの場合、tRR時間保障できるようなサイクル数を設定する。各インターフェース信号は、NOPサイクルの期間中前の状態を保持するように制御する。
上述した図3から図6に示したカテゴリごとのインターフェース信号の制御手順は制御回路4に保持されており、制御回路4はプリミティブのIDであるID0(第1ラベル)と第1テーブル31(ID0テーブル)の情報に基づいて、各プリミティブをNANDインターフェース7に実行させることができる。
このようにID(“ID0”)が確定し、プリミティブが特定された段階で、NANDインターフェース7の制御信号の動作を一意に決定することができる。このプリミティブに対するIDは、図7に示すように全カテゴリを通じてユニークなIDとなるようにすることができる。従って、例えば、アドレス発行サイクルのカテゴリに属するプリミティブとして、“a0”,“a1”,“a2”,“a3”,“a4”を纏めて、5Byte分のアドレス発行を一つのプリミティブとしてそれに対してIDを付与して、図7の第1テーブル31に登録してもよい。
また、連続して実行可能な基本動作に対応するプリミティブのID(“ID0”)を動作順に並べた最小単位の集合に対してID(“ID1”)(第2ラベル)を付した表を作成する。これを図8の第2テーブル32(ID1テーブル)として示す。この集合は、NANDインターフェース7のプロトコルに従ったフォーマットのコマンドを発行するために定義した集合である。図8の第2テーブル32(ID1テーブル)の“ID0構成”には、連続して実行可能な基本動作に対応するプリミティブのID(“ID0”)は動作順に示される。最少単位の例としては、例えば、最初に実行される基本動作からNANDチップ20の動作状態を示すREADY/BUSY信号がBUSY状態(“0”)になるタイミングまでに実行される基本動作までである。従って、少なくともこの最小単位の間はREADY/BUSY信号はREADY状態(“1”)である。READY/BUSY信号もNANDインターフェース7とNANDチップ20との間の制御信号であるインターフェース信号の1つである。
さらに、NANDインターフェース7のプロトコル(例えば、“Toggle DDR 2.0”)に従ったフォーマットのコマンド(“ID2”)にそれを実現するために図8に示した集合(“ID1”)を動作順に並べた表を作成する。これを図9の第3テーブル33(ID2テーブル)として示す。図9の第3テーブル33(ID2テーブル)の“ID1構成”には、“ID1”の実行順序が示されている。第1テーブル31〜第3テーブル33は、ファームウェアを実行するCPU5が情報保持部3に設定するものである。第1テーブル31〜第3テーブル33により、コマンドを構成する基本動作およびその実行の順序(第1の情報)および基本動作のカテゴリ(第2の情報)を制御回路4が知ることができるので、NANDインターフェース7のプロトコルに従ったフォーマットのコマンドを生成することができる。
以上説明した一例のように、図7〜図9に示した3つの階層の第1テーブル31〜第3テーブル33を作成するようにしても、NANDインターフェース7のインターフェースプロトコルとして、 “Toggle DDR 2.0”を実行することが可能である。さらに、このようなテーブル構成とすることで、図7の第1テーブル31の変更だけで新たなプリミティブの追加が可能となる。また、追加した新たなプリミティブを用いた上述した最小単位や、その最小単位を用いたコマンドの作成もテーブルの変更によって容易に可能となる。
そしてさらに、複数の“ID2”に対応する動作の順番を定めて実行することや“ID2”に対応する動作を繰り返し実行することを上位コマンドとして定義することも可能である。この上位コマンドを定義した表が図10である。図10は、上位コマンドを示すID(“ID3”)(第3ラベル)に対応させて“ID2構成”および“繰り返し回数”を示している。このような第4テーブル34(ID3テーブル)を設けることで、“ID3”で指定される一つの命令セットで256ページプログラム(1ページプログラムを256回繰り返す)などの上位コマンドを定義すること、およびその実行が可能となる。
NANDインターフェース7のインターフェースプロトコルにおいては、NANDチップ20のアドレス指定が必要である。しかし、図9の第3テーブル33(ID2テーブル)にページアドレス(Page Address)の“アドレスインクリメンタ”の情報を付加することにより、アクセスするNANDチップ20のアドレスを容易に生成することができる。“アドレスインクリメンタ”とは、繰り返して実行されるコマンドに対して、次の同一コマンドの実行時における、実行対象となるNANDチップ20のページアドレスの増加量を示す。
以下、アドレス発行サイクルの際の処理を例として説明する。“ID2”のテーブルの情報としてページカウンタ(Page Counter)(アドレスカウンタ)を+1インクリメントする動作モードを付加する。具体的には、“ID2”が“page program”のときに“アドレスインクリメンタ”に“1”を記載しておく。ページカウンタは制御回路4が備えており、これにより開始アドレスからのシーケンシャルなページアドレスを使用したNANDチップ20へのアクセスが可能となる。
しかし、このままでは、NANDチップ20内において並列動作可能なプレーン(Plane)の数が異なるNANDチップ20などに対応することができない。なぜならば、NANDチップ20の消去単位であるブロックのブロックアドレス(Block Address)は、プレーンの数が複数の場合は、異なるプレーンに跨ってナンバリングされており、アドレスがインクリメントされていくときに、ブロックアドレスとページアドレス(Page Address)を指定することが必要となるからである。
そこで、ページカウンタからブロックアドレスとページアドレスを計算する機能を制御回路4に持たせる。これは接続されるNANDチップ20が備えるプレーンの構成によって定まるものである。図11(a)〜(c)に、プレーンの構成に依存した、ページカウンタからブロックアドレスおよびページアドレスを求める対応表の例を示す。ここで、ページアドレスは、各プレーン内のブロックにおけるアドレスを示す。図11(a)は4プレーンの場合、図11(b)は2プレーンの場合、図11(c)は1プレーンの場合の対応表をそれぞれ示す。この機能により幅広い世代のNANDチップ20に対し指定数ページのページプログラムを実行することができる。
以下、図12に示したフローチャートを用いて、コントローラ10におけるNANDチップ20のコンフィギュレーションの設定から、NANDチップ20へのNANDコマンドの発行までの動作を説明する。
まず、ファームウェアを実行するCPU5が、NANDチップ20のコンフィギュレーションを制御回路4に設定し、第1〜第4テーブルを情報保持部3に設定する(ステップS1)。具体的には、コントローラ10に接続するNANDチップ20の記録方式(SLC,MLC,TLC等)やプレーンの数などを制御回路4に設定する。次に、CPU5はNANDチップ20に対する実行命令(コマンド)を制御回路4に設定する(ステップS2)。ここで設定した実行命令(コマンド)は、例えば上述した“ID3”で指定したものである。
次に、制御回路4は、ステップS2で設定された実行命令を“ID3”として、情報保持部3が保持する第4テーブル34(ID3テーブル)(図10)を参照して、それに対応する“ID2構成”および“繰り返し回数”を制御回路4へ返す(ステップS3)。例えば、“ID3が“256 page program”ならば、“page program”および“繰り返し回数”として256が得られる。
次に、制御回路4は、ステップS3で得られた“ID2構成”を構成する“ID2”それぞれに対して、情報保持部3が保持する第3テーブル33(ID2テーブル)(図9)を参照して、それに対応する“ID1構成”を求める(ステップS4)。このとき上述したように“アドレスインクリメンタ”の値を求めて、ページカウンタのインクリメントを実行することも可能である。
次に、制御回路4は、ステップS4で得られた“ID1構成”を構成する“ID1”それぞれに対して、情報保持部3が保持する第2テーブル32(ID1テーブル)(図8)を参照して、それに対応する“ID0構成”を求める(ステップS5)。
次に、制御回路4は、ステップS5で得られた“ID0構成”を構成する“ID0”で示されるプリミティブそれぞれに対して、情報保持部3が保持する第1テーブル31(ID0テーブル)を参照して、そのプリミティブに対応する“動作”および“データ”を求める(ステップS6)。
以上のステップS3〜S6により、制御回路4は、図13(a)〜(d)に示すようなNANDコマンドのプリミティブの構成を把握することが出来るので、NANDチップ20のコンフィギュレーションに応じ、且つNANDインターフェース7のプロトコルに従ったNANDコマンドの実行が可能となる。図13(a)〜(d)は、それぞれ、“Page Program Operation”,“Page Read Operation”,“Block Erase Operation”,“256 Page Program Operation”のプリミティブの動作のタイムチャートである。NANDインターフェース7は図13(a)〜(d)に示したような情報を制御回路4から与えられることにより、NANDチップ20に対してNANDコマンドを実行する(ステップS7)。図13(a)〜(d)に示したそれぞれのプリミティブは、図3〜図6に示したようなインターフェース信号としてNANDインターフェース7からNANDチップ20に対して実行される。
本実施形態にかかるコントローラ、記憶装置、および記憶装置の制御方法によれば、与えられたインターフェースプロトコルに従ったフォーマットのコマンドとプリミティブとの関係を示す情報をコントローラが備える。具体的には、NANDコマンドとプリミティブとの関係を、少なくとも3段階の階層的な構成のテーブルで表現し、与えられたコマンドに対して順次テーブルを引くことで、1ページプログラム、1ページリード、1ブロック消去、さらに上位概念として256ページプログラムなどのコマンドに対して、それに対応するNANDインターフェースプロトコルに従ったプリミティブの集合を求めることができる。これにより、NANDチップ20へのコマンド発行が最終的に可能となる。
即ち、3段階構成のテーブルを書き換えるファームウェアの変更だけで、新たなプリミティブの追加も可能で、ハードウェアの変更なしに幅広い世代のNANDインターフェースプロトコルに対応することができ、幅広い世代のNANDチップを制御することが可能になる。
なお、上記実施形態においては、ハードウェアに適用されるインターフェースプロトコルとしてNANDインターフェースを例として説明したが、これに限定されず、プロトコルが規定されているコマンドインターフェースであれば、無線通信や、LAN等を対象としてもかまわない。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1 ホスト、2 ホストインターフェース、3 情報保持部、4 制御回路、5 CPU、7 NANDインターフェース、10 コントローラ、100 記憶装置。

Claims (7)

  1. 記憶部に接続され、前記記憶部に対して1つ以上の基本動作を定められた順序で行うコマンドを実行するインターフェース部と、
    前記基本動作が属するカテゴリ毎に、前記カテゴリに属する前記基本動作の実行時における前記インターフェース部と前記記憶部との間の信号の制御手順を保持する制御部と、
    を備えるコントローラであって、
    前記制御部は、前記インターフェース部が実行する前記コマンドを構成する前記基本動作を、前記コマンドを構成する基本動作およびその実行の順序を示す第1の情報に基づいて求め、求めた前記基本動作を前記第1の情報に示された順に前記基本動作が属する前記カテゴリを示す第2の情報に基づいて前記インターフェース部に実行させる
    コントローラ。
  2. 前記制御部は、前記第1および第2の情報に対応するテーブルを情報保持部に保持させる
    請求項1に記載のコントローラ。
  3. 前記第1および第2の情報は、
    前記基本動作のラベルである第1ラベルと前記カテゴリとの対応を示す第1テーブルと、
    連続して実行可能な前記基本動作を動作順に並べた集合のラベルである第2ラベルと前記集合との対応を示す第2テーブルと、
    前記コマンドと前記コマンドを構成する前記集合の前記第2ラベルとの対応を示す第3テーブルと、
    を含む
    請求項1又は2に記載のコントローラ。
  4. 前記コマンドを複数回実行する上位コマンドのラベルである第3ラベルと前記コマンドおよびその繰り返し回数との対応を記載する第4テーブル
    をさらに保持する
    請求項3に記載のコントローラ。
  5. 前記記憶部は、並列動作可能な複数のプレーンを備え、
    前記第3テーブルは、前記コマンドの繰り返し毎の前記記憶部におけるアドレスの増加値を保持し、
    前記制御部は、前記コマンドの繰り返し毎に前記増加値を加算するアドレスカウンタを保持し、
    前記情報保持部は、前記アドレスカウンタの値と前記プレーンおよび前記プレーン内でのアドレスとの対応を示す情報を保持する
    請求項3に記載のコントローラ。
  6. 記憶部と、
    前記記憶部に接続されるコントローラと、を備え、
    前記コントローラは、
    前記記憶部に接続され、前記記憶部に対して1つ以上の基本動作を定められた順序で行うコマンドを実行するインターフェース部と、
    前記基本動作が属するカテゴリ毎に、前記カテゴリに属する前記基本動作の実行時における前記インターフェース部と前記記憶部との間の信号の制御手順を保持する制御部と、
    を備え、
    前記制御部は、前記インターフェース部が実行する前記コマンドを構成する前記基本動作を、前記コマンドを構成する基本動作およびその実行の順序を示す第1の情報に基づいて求め、求めた前記基本動作を前記第1の情報に示された順に前記基本動作が属する前記カテゴリを示す第2の情報に基づいて前記インターフェース部に実行させる
    記憶装置。
  7. 1つ以上の基本動作を定められた順序で行うコマンドを実行するインターフェース部を介して記憶部を制御する記憶装置での制御方法であって、
    前記基本動作が属するカテゴリ毎に、前記カテゴリに属する前記基本動作の実行時における前記インターフェース部と前記記憶部との間の信号の制御手順を保持し、
    前記インターフェース部が実行する前記コマンドを構成する前記基本動作を、前記コマンドを構成する基本動作およびその実行の順序を示す第1の情報に基づいて求め、
    求めた前記基本動作を前記第1の情報に示された順に前記基本動作が属する前記カテゴリを示す第2の情報に基づいて前記インターフェース部に実行させる
    制御方法。
JP2013240313A 2013-11-20 2013-11-20 コントローラ、記憶装置、および制御方法 Abandoned JP2015099570A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013240313A JP2015099570A (ja) 2013-11-20 2013-11-20 コントローラ、記憶装置、および制御方法
US14/206,325 US20150143062A1 (en) 2013-11-20 2014-03-12 Controller, storage device, and control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013240313A JP2015099570A (ja) 2013-11-20 2013-11-20 コントローラ、記憶装置、および制御方法

Publications (1)

Publication Number Publication Date
JP2015099570A true JP2015099570A (ja) 2015-05-28

Family

ID=53174491

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013240313A Abandoned JP2015099570A (ja) 2013-11-20 2013-11-20 コントローラ、記憶装置、および制御方法

Country Status (2)

Country Link
US (1) US20150143062A1 (ja)
JP (1) JP2015099570A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11726705B2 (en) 2020-03-23 2023-08-15 Kioxia Corporation Semiconductor device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7457897B1 (en) * 2004-03-17 2008-11-25 Suoer Talent Electronics, Inc. PCI express-compatible controller and interface for flash memory
US6518794B2 (en) * 2000-04-24 2003-02-11 International Business Machines Corporation AC drive cross point adjust method and apparatus
US20030014687A1 (en) * 2001-07-10 2003-01-16 Grandex International Corporation Nonvolatile memory unit comprising a control circuit and a plurality of partially defective flash memory devices
JP5549432B2 (ja) * 2010-07-02 2014-07-16 富士通株式会社 ストレージ装置及びアクセス制御プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11726705B2 (en) 2020-03-23 2023-08-15 Kioxia Corporation Semiconductor device

Also Published As

Publication number Publication date
US20150143062A1 (en) 2015-05-21

Similar Documents

Publication Publication Date Title
CN108701081B (zh) 用于同时存取非易失性存储器的多个分区的设备和方法
KR102149768B1 (ko) 불휘발성 메모리 시스템
US10268407B1 (en) Method and apparatus for specifying read voltage offsets for a read command
US10289313B2 (en) Method and apparatus for improving sequential reading in NAND flash
US10714186B2 (en) Method and apparatus for dynamically determining start program voltages for a memory device
KR102011092B1 (ko) 프로그래머블 지연을 가진 동적 랜덤 액세스 메모리(dram) 명령을 생성하기 위한 메모리 물리 계층 인터페이스 로직
US20150100744A1 (en) Methods and apparatuses for requesting ready status information from a memory
US10186325B2 (en) Method and apparatus for shielded read to reduce parasitic capacitive coupling
US8869004B2 (en) Memory storage device, memory controller thereof, and data transmission method thereof
KR101371516B1 (ko) 플래시 메모리 장치의 동작 방법 및 그것을 포함하는 메모리 시스템
JP2011018222A (ja) インタリーブ制御装置、インタリーブ制御方法及びメモリシステム
US9823880B1 (en) Method and apparatus for initiating pre-read operation before completion of data load operation
US20080288743A1 (en) Apparatus and method of managing mapping table of non-volatile memory
EP3846170A1 (en) Storage device and operating method thereof
US11200932B2 (en) Non-volatile memory device, controller and memory system
US10818328B2 (en) Nonvolatile memory device, operation method of the nonvolatile memory device, and operation method of memory controller controlling the nonvolatile memory device
KR101861647B1 (ko) 메모리 시스템 및 그 리프레시 제어 방법
JP2015099570A (ja) コントローラ、記憶装置、および制御方法
JP2013205872A (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
WO2017218170A1 (en) Method and apparatus for programming wordlines of nand flash memory using alternating encoding schemes
CN107247577B (zh) 一种配置soc ip核的方法、装置及系统
US10489077B2 (en) Systems and methods for controlling metapage storage on data storage devices
JP2017059281A (ja) 半導体記憶装置および半導体記憶装置におけるデータ消去方法
US20140149646A1 (en) Memory systems including flash memories, first buffer memories, second buffer memories and memory controllers and methods for operating the same
CN112885385B (zh) 非易失性存储器及其读取方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20151102

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151228

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20160725