JP2011018222A - インタリーブ制御装置、インタリーブ制御方法及びメモリシステム - Google Patents
インタリーブ制御装置、インタリーブ制御方法及びメモリシステム Download PDFInfo
- Publication number
- JP2011018222A JP2011018222A JP2009162930A JP2009162930A JP2011018222A JP 2011018222 A JP2011018222 A JP 2011018222A JP 2009162930 A JP2009162930 A JP 2009162930A JP 2009162930 A JP2009162930 A JP 2009162930A JP 2011018222 A JP2011018222 A JP 2011018222A
- Authority
- JP
- Japan
- Prior art keywords
- data
- transfer
- memory
- control
- interleave
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Abstract
【課題】転送データの任意部分にメモリインタリーブ制御データ部を設け、メモリインタリーブアクセス制御をデータ転送中に行うことにより、インタリーブ制御に必要なコマンド/アドレス発行時間を削減でき、メモリアクセス効率が向上する。
【解決手段】複数の区域に分けられているメモリと、前記複数の区域のデータ転送に共通に用いられるデータバスとを具備するメモリシステムのインタリーブ制御装置であって、前記メモリの或る区域への書込みデータあるいは該区域からの読出しデータの前記データバス上での転送中に所定サイズのデータの転送を検出する手段と、前記検出手段が所定サイズのデータの転送を検出すると、前記書込みデータあるいは読出しデータに代えてインタリーブ制御データの転送を開始する手段とを具備する。
【選択図】図1
【解決手段】複数の区域に分けられているメモリと、前記複数の区域のデータ転送に共通に用いられるデータバスとを具備するメモリシステムのインタリーブ制御装置であって、前記メモリの或る区域への書込みデータあるいは該区域からの読出しデータの前記データバス上での転送中に所定サイズのデータの転送を検出する手段と、前記検出手段が所定サイズのデータの転送を検出すると、前記書込みデータあるいは読出しデータに代えてインタリーブ制御データの転送を開始する手段とを具備する。
【選択図】図1
Description
本発明はSSD(Solid State Drive or Solid State Disk)と呼ばれる不揮発性の半導体記憶素子であるフラッシュメモリを用いた記憶装置において、メモリアクセスの高速化を図るインタリーブ制御装置、インタリーブ制御方法及びメモリシステムに関する。
記憶装置には、メモリアクセスの動作を高速なプロセッサの速度に近づけるためのメモリインタリーブと呼ばれる機能を有するものがある。メモリインタリーブ機能は、メモリをバンクと呼ばれる複数(例えば2つ)の区域に分け、各々のバンクは独立に動作できるようにし、同時または交互に読出し/書込みを行なうものである。
特許文献1記載の記憶装置では、バンク0、バンク1にそれぞれ設けた並行に動作できる起動回路1−0、1−1は、読出しか書込みかを指示するコマンド並びにそのコマンド用のバンク、アドレスおよびデータ長を指定するアクセス要求信号R1を受けて、指定されたバンク0またはバンク1のアクセス動作を起動する起動要求信号S0、S1を出力するとともに、し呈されたアドレスおよびデータ長が次のバンク1またはバンク0にまでまたがるときには、所定の時間間隔で次のバンク1またはバンク0のための読出しか書込みかを指示するコマンド並びにそのコマンド用の次のバンク、続くアドレスおよび残りのデータ長を指定したアクセス要求信号R2、R3を送出する。
また、バンク0、バンク1ごとのアドレス発生回路2−0、2−1は、起動回路1−0、1−1からの起動要求信号S0、S1を受けて、指定されたバンク内で指定されたアドレスから順々に、そのバンクの境界のアドレスまたは指定されたデータ長の最後のアドレスに至るまで、データアドレス単位であるワードごとにそれぞれのアドレスを選択する信号を発生して、それらを4個のデータアクセス単位ごとのアドレス選択信号A0、A1、A2、A3としてそれぞれ振り分けて出力する。
特許文献1記載の記憶装置によれば、アクセス要求信号の内容により、ブロック転送を高速に行なうことも、インタリーブ転送を高速に行なうこともできる。これにより、連続するアドレスを有するデータも、連続していないアドレスを有するデータも高い処理速度で動作することができる。
特許文献1記載の装置では、メモリインタリーブをアクセスするためのメモリアドレスを直前の要求アドレスから生成している。そのため、インタリーブ制御するアドレス間にはアドレス生成回路による繋がりが必要であり、任意のアドレス指定ができない。
また、インタリーブ制御データはライトデータあるいはリードデータの一転送単位(例えば512バイト)の転送が完了してから送っている。そのため、インタリーブ制御データの転送時間だけ全体のデータ転送時間が延長されてしまう。
本発明の一実施態様によれば、複数の区域に分けられているメモリと、前記複数の区域のデータ転送に共通に用いられるデータバスとを具備するメモリシステムのインタリーブ制御装置は、前記メモリの或る区域への書込みデータあるいは該区域からの読出しデータの前記データバス上での転送中に所定サイズのデータの転送を検出する手段と、前記検出手段が所定サイズのデータの転送を検出すると、前記書込みデータあるいは読出しデータに代えてインタリーブ制御データの転送を開始する手段とを具備する。
本発明の他の実施態様によれば、複数の区域に分けられているメモリと、前記複数の区域のデータ転送に共通に用いられるデータバスとを具備するメモリシステムのインタリーブ制御方法は、前記メモリの或る区域への書込みデータあるいは該区域からの読出しデータの前記データバス上での転送中に所定サイズのデータの転送を検出することと、前記所定サイズのデータの転送が検出されると、前記書込みデータあるいは読出しデータに代えてインタリーブ制御データの転送を開始することとを具備する。
本発明のさらに他の実施態様によれば、ホストシステムに接続されるメモリシステムは、複数の不揮発性半導体メモリと、前記複数の不揮発性半導体メモリに共通に接続されるデータバスと、前記ホストシステムに接続されるとともに、前記複数の不揮発性半導体メモリに接続され、前記データバス上のデータ転送を制御するメモリコントローラとを具備し、前記メモリコントローラは、いずれかの不揮発性メモリへの書込みデータあるいは該不揮発性メモリからの読出しデータの前記データバス上での転送中に所定サイズのデータの転送を検出する手段と、前記検出手段が所定サイズのデータの転送を検出すると、前記書込みデータあるいは読出しデータに代えて他の不揮発性メモリのインタリーブ制御データの転送を開始する手段とを具備する。
本発明によれば、メモリインタリーブアクセス制御を事前のデータ転送中に行うことで、高速なメモリインタリーブ制御を行うことができる。
以下、図面を参照して本発明の実施の形態について詳細に説明する。
図1は本発明によるインタリーブ制御回路の実施形態のシステム構成の一例を示す。実施形態は、メモリデバイスは不揮発性のNAND型フラッシュメモリを例にとって説明するが、記憶媒体はこれに限らず、何でも良い。
ホストI/F101、MPU102、RAM103、不揮発性メモリコントローラ106、スタートバイトレジスタ111がシステムバス100に接続される。ホストI/F101はパーソナルコンピュータ等のホストシステムに接続される。
不揮発性メモリコントローラ106はI/Oバス261(I/O1〜I/O8からなる)を介してNAND型フラッシュメモリ等の不揮発性メモリデバイス107、108にデータを転送する。不揮発性メモリコントローラ106はチップセレクト信号CE等の各種制御信号を不揮発性メモリデバイス107、108に直接供給する。不揮発性メモリデバイス107、108の数は複数であれば良く、2つに限らない。また、メモリデバイス107、108は物理的に異なるデバイスである必要は無く、1つのメモリデバイスを論理的に区分したもの(この区分はバンクと称されている)であっても良い。
RAM103はプログラム領域104とバッファメモリ105とを含む。プログラム領域104には、ホストI/F101からのデータ転送要求に対して、不揮発性メモリコントローラ106を介して不揮発性メモリデバイス107、108に格納されているデータをアクセスして、データ転送制御を行うためのプログラムが格納されている。MPU102は該プログラムを実行する。バッファメモリ105は、その際の1次的なデータバッファとしてページデータ毎に使用される。
スタートバイトレジスタ111は、メモリインタリーブ制御を行う場合に、プログラム(ファームウェア)により適当な値が予め設定され、その値は不揮発性メモリコントローラ106からのカウンターリセット信号214、カウントアップ信号215(図2参照)に基づき動作するデータバイトカウンタ110の値と比較器112で比較される。比較器112は、両者の値が同じになると、不揮発性メモリコントローラ106にインタリーブコマンド制御スタート信号213(図2参照)を送る。
図2は不揮発性メモリコントローラ106の内部構成例を示す。
不揮発性メモリコントローラ106は、制御信号については不揮発性メモリデバイス毎に不揮発メモリ制御信号群260を介して接続され、データについて各不揮発性メモリデバイスに対してI/Oバス261を介して共通に接続される。
不揮発性メモリデバイス毎のメモリ制御信号群260は不揮発性メモリコントロールシーケンサ部250によって制御され、I/Oバス261上のデータ転送制御については、不揮発性メモリコントロールシーケンサ部250が各種レジスタ上のデータをI/Oコントローラ232を介して出力したり、または各種レジスタへ入力したりする。RY/nBY信号はメモリBUSYステータスレジスタ231に各不揮発性メモリデバイスのRY/nBY(レディ/ノットビジィ)信号状態を伝える。各種レジスタは内部バスインタフェース230を介してMPU102からアクセス可能である。
不揮発性メモリコントロールシーケンサ部250はコマンド/アドレス発行シーケンサ251、ステータスリードシーケンサ252、データ転送シーケンサ253、インタリーブコマンド/アドレス発行シーケンサ254を含む。
コマンド/アドレス発行シーケンサ251は、コマンド/アドレス制御スタートレジスタ205への書込みと同時にスタートし、コマンドデータレジスタ201、アドレスデータレジスタ202、サブコマンドデータレジスタ203の値をコマンド/アドレス制御スタートレジスタ205の値に応じて、I/Oバス261上に出力すると共にコマンド/アドレス制御チップ選択レジスタ200で選択された不揮発性メモリデバイスに対するメモリ制御信号群260をコントロールする。その制御処理の終了と共にコマンド/アドレス制御スタートレジスタ205への書込みデータはクリアされる。
データ転送シーケンサ253は、データ転送スタートレジスタ224への何らかのデータ書込みでスタートし、データ転送チップ選択レジスタ220で選択された不揮発性メモリデバイスに対して、I/Oコントローラ232を介したI/Oバス261におけるデータ入出力方向を決定するライト/リード転送方向選択レジスタ222、データ転送バイト数レジスタ221、FIFOバッファレジスタ233の各レジスタに応じて不揮発性メモリデバイスのメモリ制御信号260を制御しながらデータ転送処理を行う。その処理の際にカウントトアップ信号215とカウンターリセット信号214を適時出力する。FIFOステータスレジスタ223はFIFOバッファレジスタ233のデータフルまたはエンプティ状態を示すことが可能なレジスタである。データ転送バイト数レジスタ221は残りの転送すべきデータバイト数を示す。その制御処理の終了と共に、データ転送スタートレジスタ224への書込みデータはクリアされる。
ステータスリードシーケンサ252は、ステータスリード制御スタートレジスタ243への何らかのデータ書込みによりスタートし、ステータスリード制御チップ選択レジスタ240で選択された不揮発性メモリデバイスに対して、ステータスリードコマンドデータレジスタ241の値を、I/Oバス261上にメモリ制御信号260を制御しながら出力して、不揮発性メモリデバイスからのデータをステータスデータレジスタ242にラッチする。その制御処理の終了と共に、ステータスリード制御スタートレジスタ243のデータはクリアされる。
インタリーブコマンド/アドレス発行シーケンサ254は、インタリーブコマンド/アドレス制御イネーブルレジスタ211の各有効ビットのいずれかがイネーブル状態の場合、インタリーブコマンド/アドレス制御スタート信号213を受け取ると、データ転送シーケンサ253のデータ入出力動作の同期信号216と、インタリーブコマンド/アドレス制御イネーブルレジスタ211の値とに応じて、インタリーブコマンド/アドレス制御チップ選択レジスタ210で選択された不揮発性メモリデバイスに対するメモリ制御信号群260をコントロールする。チップ選択データラッチレジスタ212は、インタリーブコマンド/アドレス発行シーケンサ254が動作後の最初のI/Oバス261上のデータをラッチし、インタリーブコマンド/アドレス制御チップ選択レジスタ210の代用として動作する。この動作は図21を参照して後述するメモリインタリーブ制御データ部2101にチップ選択データceを設けたことを特徴とするメモリインタリーブ制御を行なう場合に必要となる。
図3は、コマンド/アドレス制御スタートレジスタ205の内部構成を示す。コマンドデータ出力スタートビット301はコマンドデータレジスタ201の値を、HIアドレスデータ出力スタートビット302はアドレスデータレジスタ202の上位アドレスバイト群の値を、LOWアドレスデータ出力スタートビット303はアドレスデータレジスタ202の下位アドレスバイト群の値を、サブコマンドデータ出力スタートビット304はサブコマンドデータレジスタ203の値を、不揮発性メモリデバイスへのメモリ制御信号群260のいずれかの信号の出力と共に出力するか否かを決定する。
図4は、インタリーブコマンド/アドレス制御イネーブルレジスタ211の内部構成を示す。コマンドデータ制御イネーブルビット401と、HIアドレスデータ制御イネーブルビット402と、LOWアドレスデータ制御イネーブルビット403と、コマンドデータ制御イネーブルビット404は、それぞれ不揮発性メモリデバイスへのメモリ制御信号群260のいずれかの信号の出力を行うか否かを決定する。
図5は、データ転送シーケンサ253が取り扱うデータ単位を示す。1単位はページデータ501であり、メモリインタリーブ制御データ部504の位置によって、ユーザデータ部502、503が分割される場合がある。図5の(a)ではユーザデータ部502、503が分割されている場合を示すが、メモリインタリーブ制御データ部504がユーザデータ部の先頭、あるいは末尾に配置されていても良い。各ページの分割位置やメモリインタリーブ制御データの有効性の有無情報については、RAM103上でテーブル管理する、若しくは一元的に固定するなど各種管理方法があるが、本発明ではこの方法は特に限定されない。
ユーザデータ部502、503は、図5の(b)に示すように、結合して1つのユーザページデータ505としてホストI/F101から取り扱うことができるものである。メモリインタリーブ制御データ部504は、図5の(c)に示すように、不揮発性メモリデバイスをコントロールするのに必要なデータ群であるコマンドデータc0、HIアドレスデータa0,a1,a2、LOWアドレスデータa3,a4、サブコマンドデータc1から構成される。また、メモリインタリーブ制御データ部504はインタリーブコマンド/アドレス発行シーケンサ254を該ページデータ501の転送中に動作させないのであれば、その値は無視される。メモリインタリーブ制御データ部504はファームウェアによってライトデータ転送時ではプログラミング時に容易に変更可能であり、リードデータ転送時においては、予めインタリーブ制御の組み合わせアドレスを書換えておくことで容易に変更可能である。このため、メモリインタリーブをアクセスするためのメモリアドレスを任意に設定可能である。
図6は、コマンド/アドレス発行シーケンサ251の処理フローを示す。コマンド/アドレス発行シーケンサ251は、コマンド/アドレス制御スタートレジスタ205への何らかのデータ書込みと同時に動作開始する。
ステップ#601で、コマンド/アドレス制御チップ選択レジスタ200で選択された不揮発性メモリデバイスに対するメモリ制御信号群260のnCE信号のアサート(nCE信号はLowレベル)を行う。ステップ#602でコマンド/アドレス制御スタートレジスタ205内のコマンドデータ出力スタートビット301が有効であるか否かを判定する。
コマンドデータ出力スタートビット301が有効であれば、ステップ#603で該メモリ制御信号群260のCLE信号のアサート(Highレベル)を行い、ステップ#604でコマンドデータレジスタ201のデータ出力をnWE信号の制御と共に行い、ステップ#605でCLE信号のデアサート(Lowレベル)を行う。
コマンドデータ出力スタートビット301が有効でない場合、あるいはステップ#605の次に、ステップ#606でコマンド/アドレス制御スタートレジスタ205内のHIアドレスデータ出力スタートビット302が有効であるか否かを判定する。HIアドレスデータ出力スタートビット302が有効であれば、ステップ#607で該メモリ制御信号群260のALE信号のアサート(Highレベル)を行い、ステップ#608でアドレスデータレジスタ202のHIアドレスデータ出力をWE信号の制御と共に行う。
HIアドレスデータ出力スタートビット302が有効でない場合、あるいはステップ#608の次に、ステップ#609でコマンド/アドレス制御スタートレジスタ205内のLOWアドレスデータ出力スタートビット303が有効であるか否かを判定する。LOWアドレスデータ出力スタートビット303が有効であれば、ステップ#610でアドレスデータレジスタ202のLOWアドレスデータ出力をnWE信号の制御と共に行う。
LOWアドレスデータ出力スタートビット303が有効でない場合、あるいはステップ#610の次に、ステップ#611で該メモリ制御信号群260のALE信号のデアサート(ALE信号はLowレベル)を行う。
ステップ#612でコマンド/アドレス制御スタートレジスタ205内のサブコマンドデータ出力スタートビット304が有効であるか否かを判定する。サブコマンドデータ出力スタートビット304が有効であれば、ステップ#613で該メモリ制御信号群260のCLE信号のアサート(Highレベル)を行い、ステップ#614でサブコマンドデータレジスタ203のデータ出力をnWE信号の制御と共に行い、ステップ#615でCLE信号のデアサート(Lowレベル)を行う。
サブコマンドデータ出力スタートビット304が有効でない場合、あるいはステップ#615の次に、ステップ#616で該メモリ制御信号群260のnCE信号のデアサート(nCE信号はHIGHレベル)を行い、ステップ#617でコマンド/アドレス制御スタートレジスタ205の書込みデータをクリアし、該シーケンサ処理を終了する。
図7は、データ転送シーケンサ253の処理フローを示す。データ転送シーケンサ253は、データ転送スタートレジスタ224への何らかのデータ書込みと同時に動作開始する。
ステップ#701でデータ転送制御チップ選択レジスタ220により選択された不揮発性メモリデバイスデバイスに対するメモリ制御信号群260のnCE信号のアサート(nCE信号はLowレベル)を行う。ステップ#702でライト/リード転送方向選択レジスタ222がリード転送を示すか否かを判定する。
ライト/リード転送方向選択レジスタ222がリード転送を示す場合は、ステップ#703でFIFOバッファレジスタ233がFULLの状態でなくなるまで待つ。ライト/リード転送方向選択レジスタ222がリード転送を示すものでなければ、ステップ#706でFIFOバッファレジスタ233がEMPTYで無くなる状態まで待つ。
ステップ#703、またはステップ#706の待機状態が解消すると、ステップ#707でカウントアップ信号215を出力する。ステップ#707aでデータバイトカウンタ110がカウントアップ信号215を1バイトカウントアップする。比較器112はステップ#707bでデータバイトカウンタ110の値とスタートバイトレジスタ111の値が等しいか否かを判定する。両者の値が等しい場合は、比較器112はステップ#707cでインタリーブコマンド制御スタート信号213を発行する。
この後、ステップ#702aでライト/リード転送方向選択レジスタ222がリード転送を示すか否かを判定する。ライト/リード転送方向選択レジスタ222がリード転送を示す場合は、ステップ#705で該メモリ制御信号群260のnRE信号制御と共にI/Oバス261上のバイトデータをFIFOバッファレジスタ233にI/Oコントローラ232を介して入力する。ライト/リード転送方向選択レジスタ222がリード転送を示すものでなければ、ステップ#708で該メモリ制御信号群260のnWE信号制御と共I/Oバス261上にバイトデータをFIFOバッファレジスタ233からI/Oコントローラ232を介して出力する。
ステップ#705、またはステップ#708の次に、ステップ#709でデータ転送バイト数レジスタ221の値を1バイト減算する。ステップ#710でデータ転送バイト数レジスタ221の値が0であるか否か判定する。データ転送バイト数レジスタ221の値が0でなければ、ステップ#702に戻り再度データ転送を繰り返す。データ転送バイト数レジスタ221の値が0であれば、ステップ#711でカウンターリセット信号214を出力する。ステップ#711aでデータバイトカウンタ110の値を0にリセットする。ステップ#712で該メモリ制御信号群260のnCE信号のデアサート(nCE信号はHIGHレベル)を行い、ステップ#713でデータ転送スタートレジスタ224への書込みデータをクリアし、該シーケンサ処理を終了する。
図8は、ステータスリードシーケンサ252の処理フローを示す。ステータスリードシーケンサ252は、ステータスリード制御スタートレジスタ242への何らかのデータ書込みと同時に動作開始する。
ステップ#801でステータスリード制御チップ選択レジスタ240により選択された不揮発性メモリデバイスに対するメモリ制御信号群260のnCE信号のアサート(nCE信号はLowレベル)を行う。ステップ#802で該メモリ制御信号群260のCLE信号のアサート(Highレベル)を行う。ステップ#803でステータスリードコマンドデータレジスタ241のデータ出力をWE信号の制御と共に行う。ステップ#804でCLE信号のデアサート(Lowレベル)を行う。
ステップ#805で該メモリ制御信号群260のnRE信号制御と共にI/Oバス261上のバイトデータをステータスデータレジスタ242にI/Oコントローラ232を介して入力する。ステップ#806で該メモリ制御信号群260のnCE信号のデアサート(nCE信号はHIGHレベル)を行う。ステップ#806でステータスリード制御スタートレジスタ243への書込みデータをクリアし、該シーケンサ処理を終了する。
図9は、インタリーブコマンド/アドレス発行シーケンサ254の処理フローを示す。インタリーブコマンド/アドレス発行シーケンサ254は、インタリーブコマンド/アドレス制御イネーブルレジスタ211の各有効ビットのいずれかがイネーブル状態で、インタリーブコマンド制御スタート信号213を受け取ると動作開始する。
ステップ#901でインタリーブコマンド/アドレス制御チップ選択レジスタ210により選択された不揮発性メモリデバイスに対するメモリ制御信号群260のnCE信号のアサート(nCE信号はLowレベル)を行う。ステップ#902でインタリーブコマンド/アドレス制御イネーブルレジスタ211のコマンドデータ制御イネーブルビット401が有効であるか否か判定する。
コマンドデータ制御イネーブルビット401が有効である場合は、ステップ#903で該メモリ制御信号群260のCLE信号のアサート(Highレベル)を行う。ステップ#904でデータ転送シーケンサ253のデータ入出力動作の同期信号216に合わせてnWE信号の制御を行う。ステップ#905でCLE信号のデアサート(Lowレベル)を行い、ステップ#906の処理に進む。
コマンドデータ制御イネーブルビット401が有効でない場合は、ステップ#904bでI/Oバス261上のデータ転送をコマンドデータ分待ち、ステップ#906の処理に進む。
ステップ#906でインタリーブコマンド/アドレス制御イネーブルレジスタ211のHIアドレスデータ制御イネーブルビット402が有効であるか否か判定する。
HIアドレスデータ制御イネーブルビット402が有効である場合は、ステップ#907で該メモリ制御信号群260のALE信号のアサート(Highレベル)を行う。ステップ#908で該同期信号216に合わせてnWE信号の制御を行い、ステップ#909の処理に進む。
HIアドレスデータ制御イネーブルビット402が有効でない場合は、ステップ#908bでI/Oバス261上のデータ転送をHIアドレスドデータ分待ち、ステップ#909の処理に進む。
ステップ#909でインタリーブコマンド/アドレス制御イネーブルレジスタ211のLOWアドレスデータ制御イネーブルビット403が有効であるか否か判定する。LOWアドレスデータ制御イネーブルビット403が有効である場合は、ステップ#910で該同期信号216に合わせてnWE信号の制御を行う。ステップ#911で該メモリ制御信号群260のALE信号のデアサート(ALE信号はLowレベル)を行い、ステップ#912の処理に進む。
LOWアドレスデータ制御イネーブルビット403が有効でない場合は、ステップ#911bで該メモリ制御信号群260のALE信号のデアサート(ALE信号はLowレベル)を行う。ステップ#910bでI/Oバス261上のデータ転送をLOWアドレスドデータ分待ち、ステップ#912の処理に進む。
ステップ#912でインタリーブコマンド/アドレス制御イネーブルレジスタ211のサブコマンドデータ制御イネーブルビット404が有効であるか否か判定する。サブコマンドデータ制御イネーブルビット404が有効である場合は、ステップ#913で該メモリ制御信号群260のCLE信号のアサート(Highレベル)を行う。ステップ#914で該同期信号216に合わせてnWE信号の制御を行う。ステップ#915でCLE信号のデアサート(Lowレベル)を行い、ステップ#916の処理に進む。
サブコマンドデータ制御イネーブルビット404が有効でない場合は、ステップ#914bでI/Oバス216上のデータ転送をサブコマンドデータ分待ち、ステップ#916の処理に進む。
ステップ#916で該メモリ制御信号群260のnCE信号のデアサート(nCE信号はHIGHレベル)を行い、該シーケンサ処理を終了する。
図10は、不揮発性メモリデバイスからのページデータのリード転送中にメモリインタリーブ制御を行う場合のプログラム104の制御フローの一例を示す。例えば、あるページデータ501群は不揮発性メモリデバイス107,108上にメモリインタリーブ制御で読み出し可能な状態で予めライトされており、このユーザページデータ505群に対して読み出し処理が発生した場合、図10のフローが開始する。
最初のページデータ501を読み出すべく、コマンド/アドレス発行シーケンサ251を動作させるために、ステップ#1001でコマンドデータレジスタ201、アドレスデータレジスタ202、サブコマンドデータレジスタ203、コマンド/アドレス制御チップ選択レジスタ200に適当な値を設定する。
ステップ#1002で全てのビットがイネーブル状態としたコマンド/アドレス制御スタートレジスタ205への書込みによりページリードに必要なコマンド/アドレス発行シーケンサ251を動作させる。
メモリインタリーブ制御を行うべく、ステップ#1003でメモリインタリーブ制御データが格納されているページデータ501上のデータバイトオフセットアドレスをスタートバイトレジスタ111に設定する。
ステップ#1004でメモリインタリーブ制御すべき不揮発性メモリデバイスを選択するデータをインタリーブコマンド/アドレス制御チップ選択レジスタ210に設定する。
ステップ#1005で全てのビットがイネーブル状態としたインタリーブコマンド/アドレス制御イネーブルレジスタ211への書込みにより次のページリードに必要なインタリーブコマンド/アドレス発行シーケンサ254を動作させる前準備を行う。
ステップ#1005bでコマンド/アドレス制御スタートレジスタ205がクリア状態になるまで監視し、ステップ#1006でデータ転送対象の不揮発性メモリデバイスのBUSY状態をメモリBUSYステータスレジスタ231で監視する。メモリBUSY状態でなければデータ転送をすべく、データ転送シーケンサ253を動作させるために、ステップ#1007でデータ転送チップ選択レジスタ220、ライト/リード転送方向選択レジスタ222、データ転送バイト数レジスタ221に適当な値を設定する。ステップ#1008でデータ転送スタートレジスタ224への書込みによりデータ転送シーケンサ253を動作させる。
ステップ#1009でFIFOステータスレジスタ223を監視しFIFOバッファレジスタ233がEMPTYであるか否か判定する。FIFOバッファレジスタ233がEMPTYでなければ、ページデータが格納されているので、ステップ#1010でこれを読み出す。
ステップ#1011で当該読み出したデータがユーザページデータ505であるか否かを判定する。この判定の一例はFIFOバッファレジスタ233から読み出したバイト数を数える方法がある。ユーザページデータ505であれば、ステップ#1012でバッファメモリ105の適当なアドレスに格納する。
ステップ#1013でデータ転送バイト数レジスタ221が0であり、かつFIFOステータスレジスタ223がEMPTYであるか否かを判定する。データ転送バイト数レジスタ221が0であり、かつFIFOステータスレジスタ223がEMPTYである場合は、全てのページデータ501のデータ転送が終了したことを意味するので、ステップ#1014でインタリーブコマンド/アドレス制御イネーブルレジスタ211の全イネーブル状態をクリアして、データ転送処理を終了する。
データ転送バイト数レジスタ221が0であり、かつFIFOステータスレジスタ223がEMPTYであるかの判定がノーである場合は、ステップ#1009の処理から繰り返す。
図11は、図10におけるメモリインタリーブ制御フローを行った場合のメモリ制御信号群260とI/Oバス261のデータを示す(以降、メモリ制御信号群260とI/Oバス261を併せて不揮発性メモリI/F信号と称する)。
1101で囲まれた部分は、図10においてコマンド/アドレス発行シーケンサ251を動作させた場合のデータを示す。1102は、図10におけるデータ転送シーケンサ253を動作させた場合のデータを示す。この場合、スタートバイトレジスタ111に設定したデータバイトオフセットアドレスは10である。このため、I/Oバス261上で10バイトの第1のユーザデータ部502が転送されると、メモリインタリーブ制御データ部504が転送され、その後第2のユーザデータ部503の転送に戻る。1103は、図10におけるインタリーブコマンド/アドレス発行シーケンサ254を動作させた場合のデータを示す。1104は、図10における次のページデータへのデータ転送シーケンサ253を動作させた場合のデータの一部を示す。
図12は、図10の説明におけるメモリインタリーブ制御フロー(メモリデバイス107とのデータ転送中にメモリデバイス108のインタリーブ制御データを転送する)を行った場合の不揮発性メモリデバイスの状態図の一例を示す。図12の(a)はメモリインタリーブ制御しない不揮発性メモリデバイス107のメモリデバイス状態図を示し、同図の(b)はメモリインタリーブ制御の対象となる不揮発性メモリデバイス108のメモリデバイス状態図を示す。IDLE期間1はいずれのコマンドも受け付けていない状態であり、IDLE期間2はリードコマンドを受け付けてデータ転送が即座に可能な状態を示す。
図13は、図10の説明におけるメモリインタリーブ制御フローを行った場合の不揮発性メモリデバイス107、108の状態図の他の例を示す。図13は1つのコマンド/アドレス発行シーケンサ251の処理フローと複数のデータ転送シーケンサ253の処理フローと複数のインタリーブコマンド/アドレス発行シーケンサ254の処理フローを組み合わせることにより、不揮発性メモリデバイス107と108との間で、効率の良いリードデータ転送を行った場合の一例である。
この場合の制御フローは、図10の制御フローにおいて、必要に応じてステップ#1014からステップ#1003へ繰り返すことを行えばよい。また、この制御フローは、例えば、ホストI/F101から指定される2ページ以上のユーザページデータ505群の読み出し命令を受けたプログラム104が、不揮発性メモリコントローラ106を介してメモリインタリーブ制御により、該ユーザページデータ505を含むページデータ501群を不揮発性メモリデバイス107,108から読み出し、バッファメモリ105を介してホストI/F101にユーザデータを転送する際になどに用いられる。
図14は、図10の説明におけるメモリインタリーブ制御フローを行った場合の不揮発性メモリデバイス107、108の状態図のさらに他の例を示す。図14は、適当なデータバイトオフセットアドレスをスタートバイトレジスタ111に設定したことにより、次のページリードに必要なインタリーブコマンド/アドレス発行シーケンサ254の動作を可能な限り遅らせ、図13に示すIDEL期間1を長くとり、かつその期間を低消費電力モード状態にした場合の状態図を示す。この低消費電力モードは、不揮発性メモリデバイスへの電源遮断などによる外的手段や不揮発性メモリデバイスへの何らかの信号伝達、またはコマンド発行などによる内的手段で実装されるものであり、この様なインタリーブ制御により、効率的な低消費電力と高速なデータ転送を実現できる。
上述の説明は不揮発性メモリデバイスからのページデータのリードデータ転送中にインタリーブ制御を行なう場合である。以下、不揮発性メモリデバイスのページデータのライトデータ転送中にインタリーブ制御を行なう場合を説明する。
図15は、不揮発性メモリデバイスへのページデータのライトデータ転送中にインタリーブ制御を行う場合のプログラム104の制御フローの一例を示す。例えば、一対の不揮発性メモリデバイスに対して、片方にユーザページデータ505をライトする際にもう片方の不揮発性メモリに対しては任意消去ブロックを消去しようとする場合、該消去ブロックを消去すべき適当なインタリーブ制御データ504を予めバッファメモリ105上に用意し、また、書き込むべきユーザページデータ505がバッファメモリ105上にあるものとし、該インタリーブ制御データ504と該ユーザページデータ505から不揮発性メモリデバイスに書き込むべきページデータがメモリ−メモリコピー等の方法により、バッファメモリ105上に作成してあるものと仮定すると、該ページデータ501の書込み処理の発生により図15のフローが開始する。
該ページデータ501を書き込むべく、コマンド/アドレス発行シーケンサ251を動作させるために、ステップ#1501でコマンドデータレジスタ201、アドレスデータレジスタ202、サブコマンドデータレジスタ203、コマンド/アドレス制御チップ選択レジスタ200に適当な値を設定する。
ステップ#1502でサブコマンドを除く全てのビットがイネーブル状態としたコマンド/アドレス制御スタートレジスタ205への書込みによりページライトに必要なコマンド/アドレス発行シーケンサ251を動作させる。
メモリインタリーブ制御を行うべく、ステップ#1503でメモリインタリーブ制御データが格納されているページデータ501上のデータバイトオフセットアドレスをスタートバイトレジスタ111に設定する。
ステップ#1504でメモリインタリーブ制御すべき不揮発性メモリデバイスを選択するデータをインタリーブコマンド/アドレス制御チップ選択レジスタ210に設定する。
ステップ#1505でLOWアドレスデータ制御イネーブルビット403以外の全てのビットがイネーブル状態としたインタリーブコマンド/アドレス制御イネーブルレジスタ211への書込みにより、該消去すべきブロックの消去処理を行うインタリーブコマンド/アドレス発行シーケンサ254を動作させる前準備を行う。
ステップ#1506でコマンド/アドレス制御スタートレジスタ205がクリア状態になるまで監視し、データ転送をすべくデータ転送シーケンサ253を動作させるために、ステップ#1507でデータ転送チップ選択レジスタ220、ライト/リード転送方向選択レジスタ222、データ転送バイト数レジスタ221に適当な値を設定する。ステップ#1508でデータ転送スタートレジスタ224への書込みによりデータ転送シーケンサ253を動作させる。
ステップ#1509でFIFOステータスレジスタ223を監視してFIFOバッファレジスタ233がFULLであるか否か判定する。FIFOバッファレジスタ233がFULLでなければ、ステップ#1510でバッファメモリ105上のページデータ501から適当なデータを1バイト読み出し、ステップ#1511でFIFOバッファレジスタ233に書込む。
ステップ#1512でデータ転送バイト数レジスタ221が0であるか否か判定する。0でなければ、ステップ#1509の処理から繰り返し、0であれば、データ転送制御対象の不揮発性メモリデバイスに対して、ステップ#1513でサブコマンド発行のためにコマンドデータレジスタ201、アドレスデータレジスタ202、サブコマンドデータレジスタ203、コマンド/アドレス制御チップ選択レジスタ200に適当な値を設定する。
ステップ#1514でサブコマンドがイネーブル状態としたコマンド/アドレス制御スタートレジスタ205への書込みによりコマンド/アドレス発行シーケンサ251を動作させる。ステップ#1515でインタリーブ制御対象の不揮発性メモリデバイスのBUSY状態をメモリBUSYステータスレジスタ231で監視し、インタリーブ制御対象の不揮発性メモリデバイスのイレーズ制御の成功の有無を確認するために、ステップ#1516でステータスリード制御チップ選択レジスタ240と、ステータスリードコマンドデータレジスタ241に適当な値を設定する。ステップ#1517でステータスリード制御スタートレジスタ243への書込みによりステータスリードシーケンサ252を動作させる。ステップ#1518でステータスリード制御スタートレジスタ243がクリア状態になることを監視し、ステップ#1519でステータスデータレジスタ242からステータスデータをリードする。
ステップ#1520でデータ転送対象の不揮発性メモリデバイスのBUSY状態をメモリBUSYステータスレジスタ231で監視し、データ転送対象の不揮発性メモリデバイスのデータライト制御の成功の有無を確認するために、ステップ#1521でステータスリード制御チップ選択レジスタ240と、ステータスリードコマンドデータレジスタ241に適当な値を設定する。ステップ#1522でステータスリード制御スタートレジスタ243への書込みによりステータスリードシーケンサ252を動作させる。
ステップ#1523でステータスリード制御スタートレジスタ243がクリア状態になることを監視し、ステップ#1524でステータスデータレジスタ242からステータスデータをリードし、ステップ#1525でインタリーブコマンド/アドレス制御イネーブルレジスタ211の全イネーブル状態をクリアして、データ転送処理を終了する。
上記処理フローにおいて、ステップ#1515から#1519と、ステップ#1520から#1524とが、適時入れ替わってもよい。また、ステップ#1519、または#1525のステータスデータレジスタ242からステータスデータをリードした際に、ステータスデータがエラーを示す場合は、不良消去ブロック発生などを意味するので、該ブロックの代替置き換えなどのリトライ処理を行うなどの方法が考えられるが、本発明と直接関係がないので、その処理方法は問わない。また、消去ブロックは、少なくとも1つのページから構成されるものとする。
図16は、図15におけるメモリインタリーブ制御フローを行った場合の不揮発性メモリI/F信号を示す。
1601で囲まれた部分は、図15におけるコマンドとアドレス発行のためにコマンド/アドレス発行シーケンサ251を動作させた場合のデータを示す。1602は、図15におけるデータ転送シーケンサ253を動作させた場合のデータを示す。この場合、スタートバイトレジスタ111に設定したデータバイトオフセットアドレスは1である。このため、I/Oバス261上でユーザページデータ505の転送前に、メモリインタリーブ制御データ部504が転送され、その後ユーザページデータ505の転送が開始する。すなわち、ユーザページデータ505は分割されない。1603は、図15におけるインタリーブコマンド/アドレス発行シーケンサ254を動作させた場合のデータを示す。1604は、図15におけるサブコマンド発行のためにコマンド/アドレス発行シーケンサ251を動作させた場合のデータを示す。1605は、図15におけるインタリーブ制御対象の不揮発性メモリデバイスへのステータスリードシーケンサ252を動作させた場合のデータを示す。1606は、図15におけるデータ転送対象の不揮発性メモリデバイスへのステータスリードシーケンサ252を動作させた場合のデータを示す。
図17は、図15の説明におけるインタリーブ制御フロー(メモリデバイス107とのデータ転送中にメモリデバイス108のインタリーブ制御データを転送する)を行った場合の不揮発性メモリデバイスの状態図の一例を示す。図17の(a)はメモリインタリーブ制御しない不揮発性メモリデバイス107のメモリデバイス状態図を示し、同図の(b)はメモリインタリーブ制御の対象となる不揮発性メモリデバイス108のメモリデバイス状態図を示す。IDLE期間1はいずれのコマンドも受け付けていない状態であり、IDLE期間2はライトコマンドを受け付けてデータ転送が終了、もしくはイレーズコマンドを受けてイレーズ処理が終了し、該コマンド処理のステータスデータ転送が即座に可能な状態を示す。
図18は、図15の説明におけるメモリインタリーブ制御フローを行った場合の不揮発性メモリデバイス107、108の状態図の他の例を示す。図18は、1つのコマンド/アドレス発行シーケンサ251の処理フローと複数のデータ転送シーケンサ253の処理フローと複数のインタリーブコマンド/アドレス発行シーケンサ254の処理フローを組み合わせることにより、不揮発性メモリデバイス107と108との間で、効率の良いライトデータ転送を行った場合の一例である。
この場合の制御フローは、図15の制御フローにおいて、必要に応じてステップ#1525からステップ#1503へ繰り返すことを行えばよい。また、この制御フローは、例えば、ホストI/F101から指定される2ページ以上のユーザページデータ505群の書込み命令を受けたプログラム104が、バッファメモリ105を介してホストI/F101からユーザデータ505を受け取り、不揮発性メモリデバイス107,108の任意ページデータ501部に逐次に書き込んで行く時に、書き込むべき任意ページデータ501部が消去されていない場合に、直前のページデータ501のメモリインタリーブ制御データ部504に好適なデータを組み込み、不揮発性メモリコントローラ106を介したメモリインタリーブ制御を行い、書き込むべき任意ページデータ501部を消去しておくことで、別途コマンド/アドレス発行シーケンサ251を動作して消去処理をすることなく、不揮発性メモリデバイス107,108にユーザデータ505を転送する際になどに用いられる。
図19は、図18に示すIDEL期間1を低消費電力モード状態にした場合の状態図を示す。この低消費電力モードは、不揮発性メモリデバイスへの電源遮断などによる外的手段や不揮発性メモリデバイスへの何らかの信号伝達、またはコマンド発行などによる内的手段で実装されるものであり、この様なインタリーブ制御により、効率的な低消費電力と高速なデータ転送を実現できる。
以上説明したように、第1の実施の形態によれば、ページデータの任意部分にメモリインタリーブ制御データ部を設け、ページデータ転送時にメモリインタリーブアクセス制御に必要なデータを転送することにより、インタリーブ制御に必要なコマンド/アドレス発行時間を削減でき、任意タイミングでインタリーブ制御を行うことによりメモリアクセス効率が高くなる。また、メモリインタリーブ制御データ部504はファームウェアによってライトデータ転送時ではプログラミング時に容易に変更可能であり、リードデータ転送時においては、予めインタリーブ制御の組み合わせアドレスを書換えておくことで容易に変更可能であり、メモリインタリーブをアクセスするためのメモリアドレスを任意に設定可能である。
変形例
本発明は上述した実施の形態に限定されず、種々変形して実施可能である。例えば、上述の説明では、図5の(a)に示すように、ページデータ501の途中には1個のメモリインタリーブ制御データ部504しか設けていないが、複数のメモリインタリーブ制御データ部を設けても良い。
本発明は上述した実施の形態に限定されず、種々変形して実施可能である。例えば、上述の説明では、図5の(a)に示すように、ページデータ501の途中には1個のメモリインタリーブ制御データ部504しか設けていないが、複数のメモリインタリーブ制御データ部を設けても良い。
図20は、ページデータ2001に、複数のメモリインタリーブ制御データ部2004、2005を設けた例である。この場合、複数のメモリインタリーブ制御データ部2004、2005の位置によって、ユーザデータ部2002、2003が分割される場合がある。また、複数のメモリインタリーブ制御データ部2004、2005は、適当なデータバイトオフセットアドレスをスタートバイトレジスタ111に設定することにより、そのどちらを使ってインタリーブコマンド/アドレス発行シーケンサ254による処理を行うかを選択可能できる。また、複数のインタリーブコマンド/アドレス発行シーケンサ254を具備したり、1つのメモリインタリーブ制御データ部2004を使ったインタリーブコマンド/アドレス発行シーケンサ254動作後に、次のメモリインタリーブ制御データ部2005への適当なデータバイトオフセットアドレスをスタートバイトレジスタ111に設定することで、1つのページデータ転送中に複数のインタリーブコマンド/アドレス発行シーケンサ254を動作させることができる。
メモリインタリーブ制御データ部504は図5の(c)に示すような構成以外も可能である。
図21は、メモリインタリーブ制御データ部2101に、不揮発性メモリデバイスをコントロールするのに必要なデータ群であるコマンドデータc0、HIアドレスデータa0,a1,a2、LOWアドレスデータa3,a4、サブコマンドデータc1に加え、チップ選択データceを付加したものである。この場合は、インタリーブ対象のデバイスをチップ選択データceで選択する必要がある。
図22は、図21に示すメモリインタリーブ制御データ部2101におけるインタリーブコマンド/アドレス発行シーケンサ254の処理フローを示したものである。
インタリーブコマンド/アドレス発行シーケンサ254は、インタリーブコマンド/アドレス制御イネーブルレジスタ211の各有効ビットのいずれかがイネーブル状態で、インタリーブコマンド制御スタート信号213を受け取ると動作開始し、データ転送シーケンサ253のデータ入出力動作の同期信号216に合わせて、チップ選択データceをチップ選択データラッチレジスタ212にラッチし(ステップ#2201)、チップ選択データラッチレジスタ212で選択された不揮発性メモリデバイスに対するメモリ制御信号群260のnCE信号のアサート(nCE信号はLowレベル)を行い(ステップ#2202)、図9の処理フローを経て、該処理を終了する。
以上説明したように本発明によれば、転送データの任意部分にメモリインタリーブ制御データ部を設け、メモリインタリーブアクセス制御をデータ転送中に行うことにより、インタリーブ制御に必要なコマンド/アドレス発行時間を削減でき、メモリアクセス効率が向上する。
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
101…ホストI/F、102…MPU、103…RAM、104…プログラム、105…バッファメモリ、106…不揮発性メモリコントローラ、107,108…不揮発性メモリデバイス、110…データバイトカウンタ、111…スタートバイトレジスタ、112…比較器、213…インタリーブコマンド制御スタート信号、214…カウンターリセット信号、215…カウントアップ信号、216…同期信号。
Claims (13)
- 複数の区域に分けられているメモリと、前記複数の区域のデータ転送に共通に用いられるデータバスとを具備するメモリシステムのインタリーブ制御装置であって、
前記メモリの或る区域への書込みデータあるいは該区域からの読出しデータの前記データバス上での転送中に所定サイズのデータの転送を検出する手段と、
前記検出手段が所定サイズのデータの転送を検出すると、前記書込みデータあるいは読出しデータに代えてインタリーブ制御データの転送を開始する手段と、
を具備するインタリーブ制御装置。 - 前記検出手段は所定サイズを示すデータがセットされるレジスタと、転送された前記書込みデータあるいは読出しデータのサイズを測るカウンタと、前記レジスタの記憶値と前記カウンタのカウント値とを比較し、一致するとスタート信号を出力する比較器とを具備し、
前記開始手段は前記スタート信号に応答してインタリーブ制御データの転送を開始することを特徴とする請求項1記載のインタリーブ制御装置。 - 前記検出手段は複数の所定サイズのデータの転送を検出し、
前記開始手段は前記検出手段が前記複数の所定サイズのデータの転送を検出する毎に前記インタリーブ制御データの転送を開始することを特徴とする請求項1記載のインタリーブ制御装置。 - 前記メモリは3つ以上の区域に分けられており、
前記インタリーブ制御データはインタリーブ制御の対象となる区域を選択するデータを含むことを特徴とする請求項1記載のインタリーブ制御装置。 - 複数の区域に分けられているメモリと、前記複数の区域のデータ転送に共通に用いられるデータバスとを具備するメモリシステムのインタリーブ制御方法であって、
前記メモリの或る区域への書込みデータあるいは該区域からの読出しデータの前記データバス上での転送中に所定サイズのデータの転送を検出することと、
前記所定サイズのデータの転送が検出されると、前記書込みデータあるいは読出しデータに代えてインタリーブ制御データの転送を開始することと、
を具備するインタリーブ制御方法。 - 前記検出することは所定サイズを示すデータをレジスタにセットすることと、転送された前記書込みデータあるいは読出しデータのサイズをカウンタにより測ることと、前記レジスタの記憶値と前記カウンタのカウント値とを比較器により比較し、一致するとスタート信号を出力することとを具備し、
前記開始することは前記スタート信号に応答してインタリーブ制御データの転送を開始することを特徴とする請求項5記載のインタリーブ制御方法。 - 前記検出することは複数の所定サイズのデータの転送を検出し、
前記開始することは前記複数の所定サイズのデータの転送が検出される毎に前記インタリーブ制御データの転送を開始することを特徴とする請求項5記載のインタリーブ制御方法。 - 前記メモリは3つ以上の区域に分けられており、
前記インタリーブ制御データはインタリーブ制御の対象となる区域を選択するデータを含むことを特徴とする請求項5記載のインタリーブ制御方法。 - ホストシステムに接続されるメモリシステムであって、
複数の不揮発性半導体メモリと、
前記複数の不揮発性半導体メモリに共通に接続されるデータバスと、
前記ホストシステムに接続されるとともに、前記複数の不揮発性半導体メモリに接続され、前記データバス上のデータ転送を制御するメモリコントローラとを具備し、
前記メモリコントローラは
いずれかの不揮発性メモリへの書込みデータあるいは該不揮発性メモリからの読出しデータの前記データバス上での転送中に所定サイズのデータの転送を検出する手段と、
前記検出手段が所定サイズのデータの転送を検出すると、前記書込みデータあるいは読出しデータに代えて他の不揮発性メモリのインタリーブ制御データの転送を開始する手段と、
を具備することを特徴とするメモリシステム。 - 前記検出手段は所定サイズを示すデータがセットされるレジスタと、転送された前記書込みデータあるいは読出しデータのサイズを測るカウンタと、前記レジスタの記憶値と前記カウンタのカウント値とを比較し、一致するとスタート信号を出力する比較器とを具備し、
前記開始手段は前記スタート信号に応答してインタリーブ制御データの転送を開始することを特徴とする請求項9記載のメモリシステム。 - 前記検出手段は複数の所定サイズのデータの転送を検出し、
前記開始手段は前記検出手段が前記複数の所定サイズのデータの転送を検出する毎に前記インタリーブ制御データの転送を開始することを特徴とする請求項9記載のメモリシステム。 - 前記不揮発性メモリは3つ以上であり、
前記インタリーブ制御データはインタリーブ制御の対象となる不揮発性メモリを選択するデータを含むことを特徴とする請求項9記載のメモリシステム。 - 前記インタリーブ制御データは不揮発性メモリのアドレスと、コマンドを含むことを特徴とする請求項9記載のメモリシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009162930A JP4643729B2 (ja) | 2009-07-09 | 2009-07-09 | インタリーブ制御装置、インタリーブ制御方法及びメモリシステム |
US12/833,596 US8145858B2 (en) | 2009-07-09 | 2010-07-09 | Interleave control device, interleave control method, and memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009162930A JP4643729B2 (ja) | 2009-07-09 | 2009-07-09 | インタリーブ制御装置、インタリーブ制御方法及びメモリシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011018222A true JP2011018222A (ja) | 2011-01-27 |
JP4643729B2 JP4643729B2 (ja) | 2011-03-02 |
Family
ID=43428343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009162930A Expired - Fee Related JP4643729B2 (ja) | 2009-07-09 | 2009-07-09 | インタリーブ制御装置、インタリーブ制御方法及びメモリシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8145858B2 (ja) |
JP (1) | JP4643729B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014021859A (ja) * | 2012-07-20 | 2014-02-03 | Canon Inc | メモリ制御装置および方法 |
US10585820B2 (en) | 2015-09-18 | 2020-03-10 | Hitachi, Ltd. | Memory controller, memory control method and semiconductor storage apparatus |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10203881B2 (en) | 2011-12-19 | 2019-02-12 | Apple Inc. | Optimized execution of interleaved write operations in solid state drives |
US8996782B2 (en) | 2012-03-23 | 2015-03-31 | Kabushiki Kaisha Toshiba | Memory system and bank interleaving method |
EP3184121A3 (en) | 2012-07-25 | 2017-09-27 | Salk Institute For Biological Studies | Lipid membranes with exposed phosphatidylserine as tam ligands, use for treating autoimmune diseases |
US20160162186A1 (en) * | 2014-12-09 | 2016-06-09 | San Disk Technologies Inc. | Re-Ordering NAND Flash Commands for Optimal Throughput and Providing a Specified Quality-of-Service |
US9875156B2 (en) * | 2015-10-01 | 2018-01-23 | Sandisk Technologies Llc | Data storage device with a memory die that includes an interleaver |
US9619321B1 (en) * | 2015-10-08 | 2017-04-11 | Seagate Technology Llc | Internal copy-back with read-verify |
KR102558947B1 (ko) * | 2016-08-25 | 2023-07-25 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 |
JP2022050018A (ja) * | 2020-09-17 | 2022-03-30 | キオクシア株式会社 | 電子装置及び転送方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005266888A (ja) * | 2004-03-16 | 2005-09-29 | Matsushita Electric Ind Co Ltd | 不揮発性記憶装置の初期化方法 |
JP2006099594A (ja) * | 2004-09-30 | 2006-04-13 | Tdk Corp | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
JP2007213179A (ja) * | 2006-02-08 | 2007-08-23 | Renesas Technology Corp | 不揮発性半導体記憶装置 |
US20080140914A1 (en) * | 2006-12-07 | 2008-06-12 | Tae-Keun Jeon | Memory System and Data Transfer Method Thereof |
JP2008234514A (ja) * | 2007-03-23 | 2008-10-02 | Tdk Corp | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP2008310841A (ja) * | 2007-06-12 | 2008-12-25 | Panasonic Corp | 半導体記憶装置及び電子装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6326744A (ja) | 1986-07-18 | 1988-02-04 | Sharp Corp | マイクロプロセツサにおけるメモリバンク切り換え回路 |
JP2689452B2 (ja) | 1988-01-08 | 1997-12-10 | 日本電気株式会社 | 記憶装置 |
JPH05134924A (ja) | 1991-11-12 | 1993-06-01 | Nec Corp | メモリ制御回路 |
US5809555A (en) * | 1995-12-15 | 1998-09-15 | Compaq Computer Corporation | Method of determining sizes of 1:1 and 2:1 memory interleaving in a computer system, configuring to the maximum size, and informing the user if memory is incorrectly installed |
US6304923B1 (en) * | 1998-10-14 | 2001-10-16 | Micron Technology, Inc. | Method for prioritizing data transfer request by comparing a latency identifier value received from an I/O device with a predetermined range of values |
US6745277B1 (en) * | 2000-10-04 | 2004-06-01 | Force10 Networks, Inc. | Intelligent interleaving scheme for multibank memory |
JP2006195569A (ja) * | 2005-01-11 | 2006-07-27 | Sony Corp | 記憶装置 |
-
2009
- 2009-07-09 JP JP2009162930A patent/JP4643729B2/ja not_active Expired - Fee Related
-
2010
- 2010-07-09 US US12/833,596 patent/US8145858B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005266888A (ja) * | 2004-03-16 | 2005-09-29 | Matsushita Electric Ind Co Ltd | 不揮発性記憶装置の初期化方法 |
JP2006099594A (ja) * | 2004-09-30 | 2006-04-13 | Tdk Corp | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
JP2007213179A (ja) * | 2006-02-08 | 2007-08-23 | Renesas Technology Corp | 不揮発性半導体記憶装置 |
US20080140914A1 (en) * | 2006-12-07 | 2008-06-12 | Tae-Keun Jeon | Memory System and Data Transfer Method Thereof |
JP2008234514A (ja) * | 2007-03-23 | 2008-10-02 | Tdk Corp | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP2008310841A (ja) * | 2007-06-12 | 2008-12-25 | Panasonic Corp | 半導体記憶装置及び電子装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014021859A (ja) * | 2012-07-20 | 2014-02-03 | Canon Inc | メモリ制御装置および方法 |
US9424174B2 (en) | 2012-07-20 | 2016-08-23 | Canon Kabushiki Kaisha | Control apparatus and method for controlling a memory having a plurality of banks |
US10585820B2 (en) | 2015-09-18 | 2020-03-10 | Hitachi, Ltd. | Memory controller, memory control method and semiconductor storage apparatus |
Also Published As
Publication number | Publication date |
---|---|
JP4643729B2 (ja) | 2011-03-02 |
US8145858B2 (en) | 2012-03-27 |
US20110010511A1 (en) | 2011-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4643729B2 (ja) | インタリーブ制御装置、インタリーブ制御方法及びメモリシステム | |
US7937523B2 (en) | Memory system with nonvolatile semiconductor memory | |
EP1488323B1 (en) | Memory system with burst length shorter than prefetch length | |
JP5032027B2 (ja) | 半導体ディスク制御装置 | |
US5822251A (en) | Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers | |
US10079048B2 (en) | Adjusting access of non-volatile semiconductor memory based on access time | |
US8386699B2 (en) | Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same | |
US10552047B2 (en) | Memory system | |
JP4984666B2 (ja) | 不揮発性メモリ | |
KR101371516B1 (ko) | 플래시 메모리 장치의 동작 방법 및 그것을 포함하는 메모리 시스템 | |
US8869004B2 (en) | Memory storage device, memory controller thereof, and data transmission method thereof | |
JP2007220110A (ja) | 埋め込み型コンピュータシステムの各構成部材のための共通化インターフェース | |
US7725621B2 (en) | Semiconductor device and data transfer method | |
KR20210087350A (ko) | 저장 장치 및 이의 동작 방법 | |
CN112256203B (zh) | Flash存储器的写入方法、装置、设备、介质及*** | |
US10521157B2 (en) | Jump page cache read method in NAND flash memory and NAND flash memory | |
TWI752838B (zh) | 電子裝置、記憶體系統及傳送方法 | |
JP2008135046A (ja) | メモリシステム | |
US8166228B2 (en) | Non-volatile memory system and method for reading and storing sub-data during partially overlapping periods | |
KR20070090376A (ko) | 낸드 플래시 메모리 장치 | |
CN114253464B (zh) | 控制读取请求的方法和具有主机装置的存储器控制器 | |
CN112863560B (zh) | 存储器设备、控制存储器设备的方法和主机设备 | |
JP2008176606A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP2007280140A (ja) | 半導体記憶装置および信号処理システム | |
CN115910162A (zh) | Spi闪存存储器装置中的延迟减少 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20101109 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20101202 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131210 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |