JP2012178039A - マルチチャネルを有するメモリ装置及び同装置におけるメモリアクセス方法 - Google Patents

マルチチャネルを有するメモリ装置及び同装置におけるメモリアクセス方法 Download PDF

Info

Publication number
JP2012178039A
JP2012178039A JP2011040470A JP2011040470A JP2012178039A JP 2012178039 A JP2012178039 A JP 2012178039A JP 2011040470 A JP2011040470 A JP 2011040470A JP 2011040470 A JP2011040470 A JP 2011040470A JP 2012178039 A JP2012178039 A JP 2012178039A
Authority
JP
Japan
Prior art keywords
command
channel
access
memory
progress
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
Application number
JP2011040470A
Other languages
English (en)
Other versions
JP5259755B2 (ja
Inventor
Yoko Masuo
容子 増尾
Taichiro Yamanaka
太市郎 山中
Hironobu Miyamoto
博暢 宮本
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 JP2011040470A priority Critical patent/JP5259755B2/ja
Priority to US13/333,345 priority patent/US8689079B2/en
Publication of JP2012178039A publication Critical patent/JP2012178039A/ja
Application granted granted Critical
Publication of JP5259755B2 publication Critical patent/JP5259755B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System (AREA)

Abstract

【課題】ブロック単位のメモリアクセス処理を、小容量のメモリ領域を用いた管理で高速に実行できるようにする。
【解決手段】実施形態によれば、コマンド生成手段は所定のアクセス処理において、チャネル別のアクセスコマンドの群をメモリインタフェースに逐次投機的に投入する。パージ手段は、複数のチャネルを介してのメモリアクセスのいずれかでエラーが発生した場合、既に投入されている未実行のアクセスコマンドの系列を返却する。コマンド進捗管理手段は、各チャネルにおけるコマンド進捗が、返却された未実行のアクセスコマンドの系列のうちの最も古い未実行のアクセスコマンドの指定する位置を指すようにコマンド進捗情報を更新する。コマンド生成手段は更新された情報に基づき、チャネル別のアクセスコマンドの群をメモリインタフェースに投入する。
【選択図】 図1

Description

本発明の実施形態は、マルチチャネルを有するメモリ装置及び同装置におけるメモリアクセス方法に関する。
従来から、NANDフラッシュメモリに代表されるメモリを備え、複数のアクセスコマンドを並行して実行するマルチチャネルを有するメモリ装置が知られている。一方、NANDフラッシュメモリのようなフラッシュメモリのデータ保持力(data retention)は比較的弱いことが知られている。そのため、フラッシュメモリに格納されたデータの品質は、例えば時間の経過に応じて低下する可能性がある。
そこで、フラッシュメモリを備えた従来のメモリ装置では、当該フラッシュメモリに格納されたデータが長時間放置されることに起因するデータ化けを適宜検査するためのパトロール処理が実行される。このパトロール処理は、リードアクセスを伴い、メモリコントローラによって例えばブロック単位に行われる。データ化け(品質の低下)が検出された場合、対応するブロックのデータはフラッシュメモリ内の別のブロックに書き換えられる。これにより、品質の低下が検出されたブロックのデータがリフレッシュされる。
パトロール処理では、検査(パトロール)されるべきブロックの全領域に効率的にリードアクセスするために、複数のアクセスコマンド(リードコマンド)が投機的に発行される。つまり、先行するアクセスコマンド群の実行完了を待たずに、後続のアクセスコマンド群が発行される。そこでメモリコントローラは、アクセスコマンド群に従うリードアクセスでエラーが発生した場合に対処するために、発行された全アクセスコマンドを記録するように構成されている。このことは、パトロール処理に限らない。例えば、ホストからの要求により、フラッシュメモリに格納されているデータ(ユーザデータ)をメモリ装置自身が診断する自己診断処理においても同様である。また、繰り返しリードに起因する周辺ページのデータ化けを検出して、当該周辺ページをリフレッシュするためのリフレッシュ処理においても同様である。
ところで、フラッシュメモリ内のブロックのデータを書き換えている最中に、当該フラッシュメモリを備えたメモリ装置の電源が遮断する可能性がある。この場合、データ書き換えは正常に終了しなかった可能性がある。そこで、フラッシュメモリ内のブロックのデータ書き換えが発生した場合に、当該データ書き換えの進捗状態を示す情報(データ書き換え進捗情報)を記録するように構成されたメモリ装置も知られている。このメモリ装置は、電源が再度投入された際に、電源遮断時におけるデータ書き換え進捗状態を示す情報に基づいて、データ書き換えが正常に終了しなかったブロックのデータを復旧する。
特開2005−56144号公報
上記したように、フラッシュメモリを備えた従来のメモリ装置は、ブロックの全領域を対象とするリード/ライト処理(つまりメモリアクセス処理)において、投機的に発行される全てのアクセスコマンドを記録するように構成されている。このため従来のメモリ装置は、全アクセスコマンドを記録するためのメモリ領域(つまり管理領域)を必要とする。このことは、フラッシュメモリ以外のメモリを備えたメモリ装置でも、投機的に発行される複数のアクセスコマンドを並行して実行するメモリ装置であれば同様である。
本発明の目的は、ブロック単位のメモリアクセス処理を、小容量のメモリ領域を用いた管理で高速に実行できる、マルチチャネルを有するメモリ装置及び同装置におけるメモリアクセス方法を提供することである。
実施形態によれば、メモリ装置は、メモリと、メモリインタフェースと、コマンド生成手段と、パージ手段と、コマンド進捗管理手段とを具備する。前記メモリは、複数のチャネルを介してアクセスされる。前記メモリインタフェースは、複数のアクセスコマンドに従って前記メモリに前記複数のチャネルを介して並行してアクセスする。前記コマンド生成手段は、前記メモリにブロック単位でアクセスするための所定のアクセス処理において、チャネル別のアクセスコマンドの群を前記メモリインタフェースに逐次投機的に投入する。前記パージ手段は、前記メモリインタフェースによる前記複数のチャネルを介してのメモリアクセスのいずれかでエラーが発生した場合、既に投入されている未実行のアクセスコマンドの系列を、パージレスポンスにより返却する。前記コマンド進捗管理手段は、前記所定の処理におけるアクセスコマンドのコマンド進捗をコマンド進捗情報によりチャネル別に管理するコマンド進捗管理手段であって、各チャネルにおけるコマンド進捗が、前記返却された未実行のアクセスコマンドの系列のうちの最も古い未実行のアクセスコマンドの指定する位置に戻されるように、前記コマンド進捗情報を更新する。前記コマンド生成手段は、前記更新されたコマンド進捗情報に基づいて、前記返却された最も古い未実行のアクセスコマンドを含むチャネル別のアクセスコマンドの群を前記メモリインタフェースに投入する。
一つの実施形態に係るマルチチャネルを有するメモリ装置の典型的な構成を示すブロック図。 同実施形態において、1論理ブロックを対象に自己診断処理が実行される場合に生成される4,096のアクセスコマンドの例を、ページ、チャネル、プレーン及びクラスタと対応付けて示す図。 同実施形態で適用される自己診断処理の手順を説明するためのフローチャートの一部を示す図。 同実施形態で適用される自己診断処理の手順を説明するためのフローチャートの残りを示す図。 同実施形態で適用される論理アドレス及び物理アドレスのフォーマットの例を示す。 同実施形態においてコマンド生成部によって逐次投入されるリードコマンド群の時系列の一例を示す図。
以下、実施の形態につき図面を参照して説明する。
図1は一つの実施形態に係るマルチチャネルを有するメモリ装置の典型的な構成を示すブロック図である。本実施形態において、図1に示すメモリ装置10は、例えばホスト(図示せず)と接続されている。ホストは、メモリ装置10を自身の記憶装置として利用する。
メモリ装置10は、NANDフラッシュメモリ11とNANDコントローラ12とを備えている。NANDフラッシュメモリ11は、ユーザデータを記憶するための記憶媒体である。NANDフラッシュメモリ11は、複数のNANDフラッシュメモリチップを備えており、複数のアクセスコマンドに応じてNANDコントローラ12によって並行してアクセス可能なように構成されている。なお、複数のアクセスコマンドに応じて並行してアクセス可能であれば、NANDフラッシュメモリ11に代えて、NANDフラッシュメモリ以外のメモリを用いても構わない。
NANDコントローラ12は、ホストからの要求に応じてNANDフラッシュメモリ11にアクセスする。NANDコントローラ12はまた、例えば自己診断処理、パトロール処理、或いはリフレッシュ処理のような、ブロック単位でのメモリアクセス処理のために、NANDフラッシュメモリ11にアクセスする。ここでは、自己診断処理が行われることを前提とする。
NANDコントローラー12は、NANDインタフェース1201と、制御部1202と、進捗統括管理部1203と、コマンド進捗管理部1204と、コマンド進捗判定部1205と、コマンド生成部1206と、テーブル管理部1207と、レスポンス蓄積部1208と、レスポンス解析部1209と、コンパクション部1210と、チャネル間誤り訂正状態管理部(以下、ICPCS管理部と称する)1211とを備えている。制御部1202、進捗統括管理部1203、コマンド進捗管理部1204、コマンド進捗判定部1205、コマンド生成部1206、テーブル管理部1207、レスポンス蓄積部1208、レスポンス解析部1209、コンパクション部1210、及びICPCS管理部1211の各部(モジュール)は、内部バス1212によって相互接続されている。
NANDインタフェース1201は、NANDフラッシュメモリ11とコマンド生成部1206及びレスポンス蓄積部1208との間で情報を授受する。NANDインタフェース1201はパージ機構1201a及びチャネル間誤り訂正機構(以下、ICP訂正機構と称する)1201bを備えている。
パージ機構1201aは、投入されたアクセスコマンドの実行でエラーが発生した場合に、未実行の全てのアクセスコマンドを、特別のコマンドレスポンス(以下、パージレスポンスと称する)によってレスポンス蓄積部1208に戻す。ICP訂正機構1201bは、エラー訂正符号(ECC)で訂正不能なエラーが発生した場合に、エラー箇所をチャネル間のデータに基づいて訂正する。この訂正を、チャネル間誤り訂正(ICP訂正)と呼ぶ。
制御部1202は内部バス1211を介して接続された、上記各モジュールの動作を制御する。進捗統括管理部1203は、処理単位(自己診断処理単位)のコマンド進捗を管理する。進捗統括管理部1203は、コマンド進捗管理部1204によって管理されるチャネル別のコマンド進捗状態を統括的に管理し、処理単位の区切り(例えば、1論理ブロックの完了)を判定する。
コマンド進捗管理部1204は、論理ブロック単位で且つチャネル別に実行されるアクセス処理(ここでは、自己診断処理のためのアクセス処理)において、1論理ブロックを処理するためにNANDインタフェース1201にチャネル別に投機的に発行されるアクセスコマンドの進捗(つまりアクセスコマンド投入の進捗)を管理する。コマンド進捗管理部1204は、このチャネル別のアクセスコマンド投入の進捗(以下、コマンド進捗と称する)を管理するためのコマンド進捗情報を保持する。チャネル別のコマンド進捗情報は、DRAMのようなメモリの領域に格納される。
チャネル別のコマンド進捗情報は、(ページ番号、プレーン番号、クラスタ番号)から構成される。より詳細には、チャネル別のコマンド進捗情報は、(ページ番号、プレーン−クラスタ番号)から構成される。チャネル別のコマンド進捗情報は、対応するチャネルに次に投入されるべき(または最も最近に投入された)アクセスコマンドによって指定される物理ブロック内の相対位置(ページ、プレーン、クラスタ)、つまりコマンド進捗位置を示す。このチャネル別のコマンド進捗情報は、上記指定される物理ブロックが割り当てられる論理ブロック内のチャネル別の相対位置(以下、単に位置と称する)をも示す。ページ番号、プレーン番号、クラスタ番号及びプレーン−クラスタ番号と、ページ、プレーン及びクラスタとについては後述する。
本実施形態では、NANDインタフェース1201は、詳細を後述するように16のチャネル0,1,…,14,15を有している。そこで、コマンド進捗管理部1204は、16のチャネル0,1,…,14,15に対応するチャネル別コマンド進捗管理部(以下、CH進捗管理部と称する)1204-0,1204-1,…,1204-14,1204-15から構成される。CH進捗管理部1204-i(i=0,1,…,14,15)は、チャネルiに発行されるアクセスコマンドの進捗を管理し、当該チャネルiに対応するコマンド進捗情報(ページ番号、プレーン−クラスタ番号)を保持する。
コマンド進捗判定部1205は、後述するコマンドレスポンスに基づいてチャネル別に最も古い位置(ページ、プレーン及びクラスタ)を特定し、特定された位置に基づいてコマンド進捗の更新が必要かを判定する。最も古い位置とは、対応するチャネルに投入された未実行のアクセスコマンドの系列のうち最も古いアクセスコマンドの指定する位置を指す。
コマンド生成部1206は、NANDフラッシュメモリ11にアクセスするための複数のアクセスコマンドを、NANDインタフェース1201に対してチャネル別に投機的に発行する。コマンド生成部1206は、チャネル別のアクセスコマンドの発行を、コマンド進捗管理部1204によって管理されているチャネル別のコマンド進捗情報に基づいて実行する。
テーブル管理部1207は、論理アドレスを物理アドレスに変換するための論理−物理アドレス変換テーブル(以下、論物変換テーブルと称する)1207aを備えている。本実施形態において、論物変換テーブル1207aは、DRAMのようなメモリの領域に構築されている。テーブル管理部1207は、例えば自己診断処理を行う際に、処理対象となる論理ブロックのアドレス(論理アドレス)を、論物変換テーブル1207aに基づいて対応する物理ブロックのアドレス(物理アドレス)に変換する。処理対象となる論理ブロックの論理アドレスは、当該論理ブロックを識別するための論理ブロックIDとコマンド進捗情報(ページ番号、プレーン−クラスタ番号)とから特定できる。テーブル管理部1207はまた、論理ブロック(論理ブロックID)毎に、対応する論理ブロックの状態を示す情報(以下、論理ブロック情報と称する)を保持している。論理ブロック情報は、対応する論理ブロックが、使われている論理ブロック(つまりアクティブ論理ブロック)であるかを示す情報を含む。
レスポンス蓄積部1208は、コマンド生成部1206によってNANDインタフェース1201に投入されたアクセスコマンドに対する当該NANDインタフェース1201からのレスポンス(以下、コマンドレスポンスと称する)を蓄積する。コマンドレスポンスのうち、エラーを通知するコマンドレスポンスを、エラーレスポンスと呼ぶこともある。レスポンス蓄積部1208はまた、上述のパージレスポンスもコマンドレスポンスとして蓄積する。
レスポンス蓄積部1208は、例えば先入れ先出しバッファを用いて構成されるFIFO構造を有する。レスポンス蓄積部1208はライトポインタ及びリードポインタによって管理される。ライトポインタは、次にNANDインタフェース1201から返却されるコマンドレスポンスが蓄積されるべきレスポンス蓄積部1208内の位置を示す。リードポインタは、レスポンス解析部1209によって次に解析されるべきコマンドレスポンスが蓄積されているレスポンス蓄積部1208内の位置を示す。
レスポンス解析部1209は、NANDインタフェース1201によって返却されて、レスポンス蓄積部1208に蓄積されたコマンドレスポンスのうち、リードポインタの指し示すコマンドレスポンスを解析する。レスポンス解析部1209は、リードポインタの指し示すコマンドレスポンスを解析し終えると、当該リードポインタをレスポンス蓄積部1208内の次の位置を指し示すように進める。
コンパクション部1210は、自己診断処理において論理ブロックのデータの別ブロックへの移動が必要と判定された場合、コンパクション処理を実行する。つまりコンパクション部1210は、コンパクション処理の対象となる論理ブロックの論理ブロックIDが登録された場合、コンパクション処理を実行する。このコンパクション処理により、論理ブロックIDによって示される論理ブロックに現在割り当てられているNANDフラッシュメモリ11内の第1の物理ブロック群のデータが当該NANDフラッシュメモリ11内の別の第2の物理ブロック群に書き換えられる。このデータの書き換えの後、論理ブロックIDによって示される論理ブロックに割り当てられる物理ブロック群が、第1の物理ブロック群から第2の物理ブロック群に変更される。
ICPCS管理部1211は、論理ブロックIDによって示される論理ブロック内のICP訂正が実行された論理ページ(ここでは論理ページ0乃至63のいずれか)を管理する。本実施形態において、ICPCS管理部1211は、論理ページ0乃至63のICP訂正の完了の有無を、64ビット長のビットマップ(以下、ICP完了ページビットマップと称する)で管理する。ICP完了ページビットマップは、DRAMのようなメモリの領域に格納される。
次に、本実施形態におけるメモリ装置10の動作について、自己診断処理を例に説明する。
まず本実施形態では、以下の前提条件(1)乃至(6)の下で、メモリ装置10が稼動しているものとする。
(1)コマンド生成部1206は、NANDインタフェース1201に同時に複数のアクセスコマンドを投入できる。コマンド生成部1206からNANDインタフェース1201に同時に投入可能な最大アクセスコマンド数は、メモリ装置10の起動時に設定される。本実施形態では、NANDインタフェース1201は、16のチャネル0,1,…,15を有しており、コマンド生成部1206は最大16チャネル分のアクセスコマンドを同時に発行できる。チャネル0,1,…,15のチャネル番号は、それぞれ、0,1,…,15(10進数表現)である。
(2)1論理ブロックは64のページ(論理ページ)0,1,…,63で構成され、アクセス(ここではリードアクセス)は1ページの半分のクラスタ単位で行われるものとする。つまりアクセスはクラスタ0,1に分けて行われるものとする。ページ0,1,…,63のページ番号は、それぞれ、0,1,…,63(10進数表現)である。クラスタ0,1のクラスタ番号は、それぞれ0,1(10進数表現)である。
(3)チャネル0,1,…,15の各々は、2つのプレーン0,1に接続されている。各チャネルを介してのアクセス処理(ここではリード処理)は、1ページあたり2(プレーン)×2(クラスタ)の4回に分けて実行される。
(4)アクセスコマンド(ここではリードコマンド)は、チャネル毎に投入された順番で実行オーダーが保証されている。
(5)あるチャネルiでエラーが発生した場合、未実行のコマンドは全てパージされる。
(6)ECCで訂正不能なエラーが、ICP訂正機構1201bを用いて訂正される。
図2は、上記の前提条件の下で、1論理ブロックを対象に自己診断処理が実行される場合に生成される4,096(64×16×4)のアクセスコマンドC0000,C0001,C0002,C0003,C1000,C1001,C1002,C1003,…,CF3F0,CF3F1,CF3F2,CF3F3を、ページ0,1,…,63、チャネル0,1,…,15、プレーン0,1及びクラスタ0,1と対応付けて示す。図2の例では、1論理ブロックに32の物理ブロックが割り当てられる。32の物理ブロックは、16のチャネル0,1,…,15のそれぞれプレーン0,1に対応する。
アクセスコマンドCpqrsのうち、Cはアクセスコマンドを示し、p(0,1,…,F)はアクセスコマンドCpqrsが投入されるチャネルのチャネル番号を示す1桁の16進数である。アクセスコマンドCpqrsのうちのqr(00,01,…,3F)は、アクセスされるページのページ番号を示す2桁の16進数である。
アクセスコマンドCpqrsのうちのs(0,1,2,3)は、当該アクセスコマンドCpqrsが発行されるチャネル内のプレーン及びクラスタの組み合わせを特定するためのプレーン−クラスタ番号を示す1桁の16進数である。s=0はプレーン0とクラスタ0との組み合わせを、s=1はプレーン0とクラスタ1との組み合わせを、それぞれ示す。s=2はプレーン1とクラスタ0との組み合わせを、s=3はプレーン1とクラスタ1との組み合わせを、それぞれ示す。このため、s(0,1,2,3)、つまりプレーン−クラスタ番号は、プレーンのプレーン番号(0,1)及びクラスタのクラスタ番号(0,1)を示していることと等価である。
本実施形態において、論理ブロック内のページは、チャネル別に、ページ0,1,…,63の順にアクセスされる。但し、アクセスされるページの進捗はチャネル毎に異なる。また、NANDフラッシュメモリ11のチャネルp(pは16進数表現)を介してページqr(qrは2桁の16進数表現)にアクセスすることを指示する4つのアクセスコマンドCpqr0,Cpqr1,Cpqr2,Cpqr3は、この並びの順に実行される。
具体的には、NANDフラッシュメモリ11の例えばチャネル0(0は10進数表現)を介してページ0(0は10進数表現)にアクセスすることを指示する4つのアクセスコマンドC0000,C0001,C0002,C0003は、この並びの順に実行される。また、NANDフラッシュメモリ11の例えばチャネル15(16進表現でF)を介してページ0にアクセスすることを指示する4つのアクセスコマンドCF000,CF001,CF002,CF003は、この並びの順に実行される。同様に、NANDフラッシュメモリ11の例えばチャネル0を介してページ63(16進表現で3F)にアクセスすることを指示する4つのアクセスコマンドC03F0,C03F1,C03F2,C03F3は、この並びの順に実行される。同様に、NANDフラッシュメモリ11の例えばチャネル15(16進表現でF)を介してページ63(16進表現で3F)にアクセスすることを指示する4つのアクセスコマンドCF3F0,CF3F1,CF3F2,CF3F3は、この並びの順に実行される。
以下、本実施形態で適用される自己診断処理の手順の概略について、1つの論理ブロックを対象とする自己診断処理を例に説明する。自己診断処理の対象となる論理ブロックは、リードアクセスの対象となる。そこで以下の説明では、自己診断処理の対象となる論理ブロックをリード対象論理ブロックと称することもある。
1)NANDコントローラ12は、リード対象論理ブロック内の全クラスタの読み出しをチャネル毎に実行し、対応するクラスタのデータが正常であるかを判定する。
2)NANDコントローラ12は、エラー訂正不能な有効クラスタを検出した場合、ICP訂正可能か否かを判定する。訂正不可であれば、NANDコントローラ12は、リード対象論理ブロックの自己診断処理を終了し、エラークラスタを自己診断処理の要求元に通知する。
3)上記2)でICP訂正可能であれば、NANDコントローラ12は、上記1)に戻って、後続のクラスタの読み出しを行う。
4)リード対象論理ブロックの処理が終了した時点で、1つ以上のエラー訂正不能なクラスタが検出されていた場合、NANDコントローラ12は、当該リード対象論理ブロックを、コンパクション処理の対象となる論理ブロックとして登録する。
次に上述の自己診断処理の手順の詳細について、図3及び図4のフローチャートを参照して説明する。
今、ホストから、図1のメモリ装置10のNANDコントローラ12に自己診断処理が要求されたものとする。本実施形態において自己診断処理は、ホストによって要求されたアクセス処理に対するバックグラウンド処理として行われる。つまり自己診断処理は、ホストによって要求されたアクセス処理の空き時間を利用して行われる。なお、図3及び図4のフローチャートで示される自己診断処理は、1論理ブロックを対象としている。このため、複数の論理ブロックを自己診断する場合、図3及び図4のフローチャートで示される自己診断処理は、診断されるべき論理ブロックの数だけ繰り返される。
NANDコントローラ12の制御部1202は、自己診断処理の対象とすべき論理ブロック(つまりリード対象ブロック)をコマンド進捗管理部1204に対して指定する。この指定には、例えばリード対象論理ブロックの論理ブロックIDが用いられる。なお、図3及び図4のフローチャートでは省略されているが、自己診断処理の開始時には、コマンド進捗管理部1204に保持されるチャネル0,1,…,14,15のコマンド進捗情報は、それぞれ初期位置(ページ0,プレーン0、クラスタ0)を示すように「000」に初期化される。
コマンド進捗管理部1204は、制御部1202によってリード対象論理ブロックが指定された場合、当該指定されたリード対象論理ブロックの論理ブロック情報をテーブル管理部1207から取得する(ステップ301)。もし、取得された論理ブロック情報によって、リード対象論理ブロックがアクティブ論理ブロックでないことが示されている場合、当該リード対象論理ブロックの読み出し(より詳細には自己診断処理)は不要である。この場合、図3及び図4のフローチャートでは省略されているが、制御部1202は、現在のリード対象論理ブロックのための自己診断処理を終了する。
これに対し、取得された論理ブロック情報によって、リード対象論理ブロックがアクティブ論理ブロックであることが示されている場合、コマンド進捗管理部1204は、当該リード対象論理ブロックの論理ブロックIDに基づいて論物変換テーブル1207aを参照する。これによりコマンド進捗管理部1204は、リード対象論理ブロックに割り当てられているリード対象物理ブロック群の情報(物理ブロック情報と称する)を取得する(ステップ302)。物理ブロック情報は、対応する物理ブロック群(リード対象物理ブロック群)のそれぞれのID(物理ブロックID)を含む。
次にコマンド進捗管理部1204は、ステップ302で取得した物理ブロック情報中の物理ブロックIDと、自身が保持する現在のチャネル別のコマンド進捗情報(ページ番号、プレーン−クラスタ番号)とに基づいて、NANDフラッシュメモリ11内のチャネル別にアクセスされるべき物理位置を示す物理アドレスを取得する(ステップ303)。なお、ステップ302で取得した物理ブロック情報により、対応する物理ブロックがNULLブロックであることが示されている場合、コマンド進捗管理部1204は、対応するチャネルの現在のコマンド進捗情報を次の位置を示すように更新する。つまりコマンド進捗管理部1204は、対応するチャネルのコマンド進捗(ページ、プレーン、クラスタ)を次に進める。そしてコマンド進捗管理部1204は、上述と同様の手順で、対応するチャネルを介してアクセスされるべき物理ブロック(リード対象物理ブロック)における物理アドレスを取得する。
図5は、本実施形態で適用される論理アドレス及び物理アドレスのフォーマットの例を示す。論理アドレスは、対応する論理ブロックの論理ブロックID、ページ番号、プレーン番号、チャネル番号及びクラスタ番号から構成される。論理アドレスは、メモリ装置10にNANDフラッシュメモリ11が用いられている本実施形態では、論理NANDクラスタアドレスとも呼ばれる。物理アドレスは、対応する物理ブロックを識別するための物理ブロックIDと、プレーン番号、ページ番号、クラスタ番号及びセクタ番号から構成される。この物理アドレスは、物理NANDクラスタアドレスとも呼ばれる。
一方、ステップ303において進捗統括管理部1203は、コマンド進捗管理部1204によって管理されるチャネル別のコマンド進捗状態に基づいて、コマンド進捗がリード対象論理ブロック内の最終クラスタ(より詳細には、最終ページの最終クラスタ)まで進んだかをチャネル別に判定する。進捗統括管理部1203は、上記チャネル別の判定結果を保持する。ステップ303においてコマンド生成部1206は、コマンド進捗管理部1204によって取得された物理アドレス(つまり物理NANDクラスタアドレス)に基づいて、チャネル別に、対応する物理位置(ページ、プレーン、クラスタ)へのリードアクセスを指定したアクセスコマンド(以下、リードコマンドと称する)を生成する。生成されたリードコマンドは、図5に示す形式のNANDクラスタアドレス含む。
コマンド生成部1206は更に、チャネル別に生成されたリードコマンドのうち、所定の条件を満たしたリードコマンドに特定の指定情報を設定する。所定の条件を満たしたリードコマンドとは、進捗統括管理部1203によって最終クラスタ処理中であると判定された物理NANDクラスタアドレスに対応するリードコマンド(つまり最終リードコマンド)を指す。特定の指定情報は、対応する最終リードコマンドの実行に成功した場合にコマンドレスポンス(成功レスポンス)を返却することを指定する。つまり、特定の指定情報が設定されたリードコマンドは、当該リードコマンドの実行に成功した場合にコマンドレスポンスを返却することを指定する。一方、特定の指定情報が設定されていないリードコマンド(つまり、非最終リードコマンド)は、当該リードコマンドの実行に成功した場合にコマンドレスポンスを返却しないことを暗黙に指定する。またリードコマンドは、当該リードコマンドの実行に失敗した場合、特定の指定情報が設定されているかに無関係にコマンドレスポンス(エラーレスポンス)を返却することを暗黙に指定する。なお、所定の条件を満たさないリードコマンド(非最終リードコマンド)に、コマンド実行に成功した場合にコマンドレスポンスを返却しないことを明示的に指定する指定情報が設定されても構わない。
ステップ303において、コマンド生成部1206は、生成されたリードコマンドの群をNANDインタフェース1201に対して最大16個同時に発行する。この例のように、図3及び図4のフローチャートに従う最初のステップ303では、16のチャネル0,1,…,14,15にそれぞれ対応する16のリードコマンドC0000,C1000,…,CE000,CF000が同時に発行される。図6はコマンド生成部1206によって逐次投入されるリードコマンド群の時系列の一例を示す。図6の例では、16のリードコマンドC0000,C1000,…,CE000,CF000が時刻t1に発行されたことが示されている。
コマンド生成部1206によってNANDインタフェース1201に同時に投入されたリードコマンドC0000,C1000,…,CE000,CF000は当該NANDインタフェース1201内のコマンドキュー(図示せず)に蓄えられる。
もし、コマンドキューが満杯でなければ、コマンド生成部1206は、後続の物理リードコマンド群をNANDインタフェース1201に投機的に投入することができる。本実施形態では、図6に示すように、時刻t1より後の時刻t2に、16のリードコマンドC0001,C1001,…,CE001,CF001が投入され、その後の時刻t3に、16のリードコマンドC0002,C1002,…,CE002,CF002が投入されたものとする。このように、コマンド生成部1206は、コマンドキューが満杯になるまで、後続のリードコマンド群を投機的に投入することができる。
NANDインタフェース1201は、自己診断処理の開始時には、コマンドキューに最初に蓄えられた16のリードコマンドC0000,C1000,…,CE000,CF000を取り出す。そしてNANDインタフェース1201は、取り出されたリードコマンリードコマンドC0000,C1000,…,CE000,CF000に基づき、対応するチャネル0,1,…,14,15にそれぞれ接続されたプレーン0を介してNANDフラッシュメモリ11に並行してアクセスする。
ここで、投機的に投入されたリードコマンド群に基づくリードアクセスのいずれかでエラーが発生したものとする。本実施形態において、このエラーは、リードされたデータに付加されているECCに基づいて検出されるため、ECCエラーと呼ばれる。
ECCエラーが発生した場合、NANDインタフェース1201は、当該ECCエラーが発生したリードアクセスを指定したリードコマンドに対するコマンドレスポンスとして、エラーレスポンスをレスポンス蓄積部1208に返却する。レスポンス蓄積部1208に返却されたエラーレスポンス(コマンドレスポンス)は、当該レスポンス蓄積部1208に蓄積される。
またECCエラーが発生した場合、NANDインタフェース1201のパージ機構1201aは、ECCエラーが発生したチャネルに対応するコマンドキューに蓄積されている全てのコマンド(つまり、ECCエラーが発生したチャネルに投入された未実行の全てのリードコマンド)を、パージレスポンスによってレスポンス蓄積部1208に返却する。レスポンス蓄積部1208に返却されたパージレスポンス(コマンドレスポンス)は、当該レスポンス蓄積部1208に蓄積される。
前述したように、自己診断処理はシステムのバックグラウンドで実行される。このため、チャネルによっては、ホストによって要求されたアクセスのためのアクセスコマンドが、自己診断のためのリードコマンドの実行に優先して実行されることもある。本実施形態においてNANDインタフェース1201のパージ機構1201aは、ホストによって要求されたアクセスでECCエラーが発生しても、全ての未実行のコマンドを、パージレスポンスによりレスポンス蓄積部1208に返却する。
さて、NANDインタフェース1201によってコマンドレスポンスが返却されて、当該返却されたコマンドレスポンスがレスポンス蓄積部1208に蓄積されたものとする。レスポンス解析部1209は、リードポインタによって指し示されるレスポンス蓄積部1208内の位置から始まる領域に蓄積された全てのコマンドレスポンスを解析する(ステップ304)。
レスポンス解析部1209は、コマンドレスポンスの解析結果に基づき、当該解析結果にECCエラーを通知する1つ以上のエラーレスポンス(ECCエラーレスポンス)が含まれているかを判定する(ステップ305)。もし、1つ以上のエラーレスポンスが含まれていた場合、つまりECCエラー数N1がゼロを超えている(N1>0)場合(ステップ305のYes)、レスポンス解析部1209はリフレッシュフラグをON状態に設定する(ステップ306)。リフレッシュフラグは、論理ブロックのための自己診断処理の終了時に、当該論理ブロックをコンパクション処理の対象として登録することを指示するのに用いられる。
次にレスポンス解析部1209は、ステップ305でECCエラーが判定されたクラスタが有効クラスタであるか否かをテーブル管理部1207に問い合わせる。有効クラスタとは、有効なデータが格納されているクラスタを指す。有効クラスタに格納されていたデータが別のクラスタに移動された場合、当該有効クラスタは無効クラスタとなる。クラスタの有効/無効はテーブル管理部1207によって管理される。
レスポンス解析部1209は、テーブル管理部1207に問い合わせた結果に基づいて、ECCエラーが判定された有効クラスタの数(つまり有効クラスタのECCエラー数)N2がゼロを超えているかを判定する(ステップ307)。もし、有効クラスタのECCエラー数N2がゼロを超えている(N2>0)ならば(ステップ307のYes)、自己診断処理はステップ308に進む。ステップ308において制御部1202は、ECCエラーが判定された有効クラスタ(つまりECC訂正不能な有効クラスタ)を含むページ(論理ページ)について、ICP訂正機構1201bによるICP訂正を行わせる。
本実施形態では、論理ブロック内の論理ページ毎に、対応するページのICP訂正を可能とするために、16チャネルのうちの1チャネルを、ICP訂正のための誤り訂正データの格納に割り当てている。この誤り訂正データの格納に割り当てられるチャネルは、論理ページ毎に変更されるものとするが、特定のチャネルであっても構わない。ICP訂正のための誤り訂正データは、他の15チャネルに格納される対応する論理ページのデータに基づいて生成される、例えばパリティデータ(チャネル間パリティデータ)である。ICP訂正機構1201bは、このパリティデータを用いて、ECC訂正不能な有効クラスタを含む論理ページj(j=qr)のエラー箇所を修復するためのICP訂正を行う。つまりICP訂正機構1201bは、パリティデータと、他の15チャネルのうちECC訂正不能な有効クラスタを持つチャネル(第1のチャネル)を除くチャネル群(第2のチャネル群)に対応する論理ページjのデータとに基づいて、ICP訂正を行う。
制御部1202は、ICP訂正機構1201bによるICP訂正の結果に基づき、論理ページjのICP訂正に成功したかを判定する(ステップ309)。もし、論理ページjのICP訂正に失敗したならば、つまりICP訂正不能であったなら(ステップ309のNo)、制御部1202は、リード対象論理ブロックの論理ブロックIDを、コンパクション処理の対象となる論理ブロックとしてコンパクション部1210に登録する(ステップ310)。このステップ310において、制御部1202は、リフレッシュフラグをON状態からOFF状態に切り替える。
次に制御部1202は、自己診断処理の要求元(ここではホスト)にICP訂正不能クラスタを通知して、1論理ブロックのための自己診断処理を終了する。この場合、コンパクション部1210は、ステップ310で登録された論理ブロックIDによって示される論理ブロックのデータを別ブロックに移動するためのコンパクション処理を行う。
一方、レスポンス解析部1209による解析結果に1つのエラーレスポンスも含まれていない場合、つまりECCエラー数N1がゼロの場合(ステップ305のNo)、自己診断処理はステップ401に進む。また、有効クラスタのECCエラー数N2がゼロの場合にも(ステップ307のNo)、自己診断処理はステップ401に進む。
ステップ401において、コマンド進捗判定部1205は、レスポンス解析部1209によって解析されたコマンドレスポンス中にパージレスポンスが含まれている(存在する)かを判定する。つまりコマンド進捗判定部1205は、解析されたコマンドレスポンス中にパージレスポンスによって返されたコマンド(以下、パージコマンドと称する)が含まれているかを判定する。
ここで、チャネル14,15では、ホストから要求されたアクセス処理が優先して行われたために、時刻t1でチャネル0,1,…,14,15に同時に投入されたリードコマンドC0000,C1000,…,CE000,CF000のうちのリードコマンドCE000,CF000が、時刻t2の後も未実行であったものとする。また、ホストから要求されたチャネル14,15を介してのアクセス処理でエラーが発生したために、パージレスポンスが返却されたものとする。この返却されたパージレスポンスには、リードコマンドCE000,CE001,CE002,CF000,CF001,CF002がパージコマンドとして含まれている(ステップ401のYes)。
この場合、リードコマンドCE000,CE001,CE002が投入されたチャネル14に対応するコマンド進捗管理部1204のCH進捗管理部1204-14、及びリードコマンドCF000,CF001,CF002が投入されたチャネル15に対応するコマンド進捗管理部1204のCH進捗管理部1204-15は、それぞれ自身が保持するチャネル14,15のコマンド進捗情報を次のように更新する。即ちCH進捗管理部1204-14,1204-15は、チャネル14,15のチャネルのコマンド進捗情報(ページ番号、プレーン−クラスタ番号)を、最も古い位置が示されるように更新する(ステップ402)。チャネル14,15に対応する最も古い位置は、最も古いパージコマンド(未実行のリードコマンド)CE000,CF000に対応する位置(ページ0、プレーン0、クラスタ0)である。この場合、チャネル14,15のコマンド進捗情報は、いずれも「000」に更新される。
またステップ402において、コマンド進捗管理部1204内のCH進捗管理部1204-14,1204-15以外のCH進捗管理部(他のCH進捗管理部)は、自身が保持するコマンド進捗情報を、次の位置が示されるように更新する。ここでは、上記他のCH進捗管理部は、コマンド進捗情報を、図6から明らかなように、(ページ0、プレーン1、クラスタ1)が示されるように「003」に更新する。またステップ402において、コマンド進捗管理部1204は、上記ステップ303と同様にして、ステップ302で取得した物理ブロックIDと現在のチャネル別のコマンド進捗情報とに基づいて、チャネル別に物理NANDクラスタアドレスを取得する。
ステップ402においてコマンド生成部1206は、上記ステップ303と同様にして、コマンド進捗管理部1204によってチャネル別に取得された物理NANDクラスタアドレスの示す位置(ページ、プレーン、クラスタ)へのリードアクセスを指定した最大16個のリードコマンドを生成する。ステップ402においてコマンド生成部1206は、生成された最大16個のリードコマンドをNANDインタフェース1201に対して同時に発行する。図6の例では、16のリードコマンドC0003,C1003,…,CE000,CF000が時刻t4に発行されたことが示されている。ステップ402が終了すると、自己診断処理は上記ステップ304に戻る。
次に、解析されたコマンドレスポンス中にパージコマンドが含まれていないものとする(ステップ401のNo)。この場合、コマンド進捗管理部1204は、自身が保持するチャネル0〜15のコマンド進捗情報のプレーン−クラスタ番号sをインクリメントする(ステップ403)。つまりコマンド進捗管理部1204は、コマンド進捗を次の位置に進める。ステップS403において、更新前のプレーン−クラスタ番号sが3の場合、プレーン−クラスタ番号sは0に設定される。プレーン−クラスタ番号sは、0→1→2→3→0のように更新される。
次にコマンド進捗管理部1204は、更新されたチャネル0〜15のコマンド進捗情報に基づいて、チャネル別に、1論理ページが完了したかを判定する(ステップ404)。ここでは、例えばチャネルiのコマンド進捗情報のプレーン−クラスタ番号sが0の場合、チャネルiについて1論理ページ(より詳細には、1論理ページ内のチャネルiに対応する全クラスタ)が完了したと判定される。
もし、いずれのチャネルにおいても、1論理ページが完了していないならば(ステップ404のNo)、自己診断処理はステップ303に戻る。このステップ303では、ステップ403の実行の結果、チャネル別のコマンド進捗情報の示す位置が、最終ページの最終クラスタを示しているかが進捗統括管理部1203によって判定される。進捗統括管理部1203は、チャネル別の判定結果を保持する。
これに対し、いずれかのチャネル、例えばチャネルiにおいて1論理ページが完了したならば(ステップ404のYes)、自己診断処理はステップ405に進む。ステップ405においてコマンド進捗管理部1204は、1論理ページが完了したチャネルiのコマンド進捗情報のページ番号をインクリメントする。つまりコマンド進捗管理部1204は、チャネルiのコマンド進捗を次の論理ページに進める。ここでは、直近のステップ403でプレーン−クラスタ番号sが0に設定されていることから、ステップ405で更新されたチャネルiのコマンド進捗は、次の論理ページの先頭クラスタを示す。ステップ405が終了すると、自己診断処理はステップ408に進む。
次に、論理ページjのICP訂正に成功した場合(ステップ309のYes)について説明する。このICP訂正が、チャネルiに投入されたリードコマンドに従うアクセスでECCエラーが発生したために行われたものとする。この場合、ICPCS管理部1211は、ICP完了ページビットマップを、論理ページjのICP訂正の完了が示されるように更新する(ステップ406)。ここでは、64ビット長のICP完了ページビットマップの論理ページjに対応するビットjが、“1”(ON状態)に設定される。論理ページjのICP訂正に成功したことは、論理ページjの自己診断処理が全てのチャネル0〜15について正常に終了したことと等価である。
そこで、コマンド進捗管理部1204は、ICP完了ページビットマップが更新された場合(ステップ406)、少なくともチャネルiのコマンド進捗を、ICP訂正に成功した論理ページjの次の論理ページj+1の先頭クラスタに進める(ステップ407)。つまりコマンド進捗管理部1204は、少なくともチャネルiのコマンド進捗に関し、論理ページjをスキップする。ステップ407においてコマンド進捗管理部1204は、残りのチャネルのコマンド進捗のうち、論理ページjの処理中を示すコマンド進捗についても、論理ページj+1の先頭クラスタに進める。ステップ407が終了すると、ステップS405が終了した場合と同様に、自己診断処理はステップ408に進む。
ステップ408において進捗統括管理部1203は、自身がチャネル別に保持している情報に基づき、全てのチャネル0〜15でコマンド進捗がリード対象論理ブロック内の最終クラスタまで進んでいるかを判定する。つまり進捗統括管理部1203は、全てのチャネル0〜15でリード対象論理ブロック内の対応する最終クラスタがリード対象となっているかを判定する。もし、最終クラスタがリード対象となっていないチャネルがあるならば(ステップ408のNo)、自己診断処理はステップ303に戻る。
これに対し、全てのチャネル0〜15でリード対象論理ブロック内の対応する最終クラスタがリード対象となっているならば(ステップ408のYes)、自己診断処理はステップ409に進む。ステップ409において進捗統括管理部1203は、リード対象論理ブロックの処理が完了したかを判定する(ステップ409)。この判定のために進捗統括管理部1203は、全てのチャネル0〜15から、リード対象論理ブロック内の対応する最終クラスタへのアクセスに応じてコマンドレスポンス(以下、最終コマンドレスポンスと称する)が返却されているかをレスポンス解析部1209に問い合わせる。
もし、少なくとも1つのチャネルから最終コマンドレスポンス(成功レスポンスまたはエラーレスポンス)が返却されていないならば、進捗統括管理部1203はリード対象論理ブロックの処理の未完了を判定する(ステップ409のNo)。この場合、進捗統括管理部1203は、例えば所定時間後に再びステップ409を実行する。
一方、全てのチャネル0〜15から最終コマンドレスポンスが返却されているならば、進捗統括管理部1203はリード対象論理ブロックの処理の完了を判定する(ステップ409のYes)。この場合、制御部1202は、リフレッシュフラグがON状態にあるかを判定する(ステップ410)。もし、リフレッシュフラグがON状態にあるならば(ステップ410のYes)、制御部1202は、リード対象論理ブロックの論理ブロックIDを、コンパクション処理の対象となる論理ブロックとしてコンパクション部1210に登録する(ステップ411)。このステップ411において、制御部1202は、リフレッシュフラグをON状態からOFF状態に切り替える。これにより制御部1202は、1論理ブロックのための自己診断処理を終了する。これに対し、リフレッシュフラグがOFF状態にあるならば(ステップ410のNo)、制御部1202はステップ411をスキップして、1論理ブロックのための自己診断処理を終了する。
以上、本実施形態で適用される自己診断処理の手順の詳細について説明した。なお、図1に示すメモリ装置10のNANDコントローラ2によって自律的に行われる、パトロール処理、或いはリフレッシュ処理も自己診断処理と同様に実施することが可能である。
上述したように、図1に示すメモリ装置10のNANDコントローラ2では、コマンド進捗管理部1204によってチャネル別のコマンド進捗状態が管理される。また、ICPCS管理部1211によって、論理ブロックの論理ページ毎にICP訂正完了状態が管理される。このようなコマンド進捗管理部1204及びICPCS管理部1211を備えた、本実施形態のメモリ装置10によれば、従来よりも、論理ブロック単位の大容量リード処理を無駄なく、高速に実行することが可能となる。
また本実施形態によれば、NANDフラッシュメモリ11を備えたメモリ装置10の信頼性確保に必要不可欠な、自己診断処理、パトロール処理、或いはリフレッシュ処理の性能向上を実現できる。また本実施形態によれば、チャネル毎の利用負荷にばらつきが生じている場合でも、パージ発生時、或いはICP訂正発生時において再投入されるコマンドの冗長度を削減することができる。
以上説明した少なくとも1つの実施形態によれば、ブロック単位のメモリアクセス処理を、小容量のメモリ領域を用いた管理で高速に実行できる、マルチチャネルを有するメモリ装置及び同装置におけるメモリアクセス方法を提供することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10…メモリ装置、11…NANDフラッシュメモリ(メモリ)、12…NANDコントローラ、1201…NANDインタフェース(メモリインタフェース)、1201a…パージ機構、1201b…チャネル間誤り訂正機構(ICP訂正機構)、1202…制御部、1203…進捗統括管理部、1204…コマンド進捗管理部、1204-0〜1204-15…チャネル別コマンド進捗管理部(CH進捗管理部)、1205…コマンド進捗判定部、1206…コマンド生成部、1207…テーブル管理部、1207a…論物変換テーブル、1208…レスポンス蓄積部、1209…レスポンス解析部、1210…コンパクション部、1211…チャネル間誤り訂正状態管理部(ICPCS管理部)。

Claims (11)

  1. 複数のチャネルを介してアクセスされるメモリと、
    複数のアクセスコマンドに従って前記メモリに前記複数のチャネルを介して並行してアクセスするメモリインタフェースと、
    前記メモリにブロック単位でアクセスするための所定のアクセス処理において、チャネル別のアクセスコマンドの群を前記メモリインタフェースに逐次投機的に投入するコマンド生成手段と、
    前記メモリインタフェースによる前記複数のチャネルを介してのメモリアクセスのいずれかでエラーが発生した場合、既に投入されている未実行のアクセスコマンドの系列を、パージレスポンスにより返却するパージ手段と、
    前記所定の処理におけるアクセスコマンドのコマンド進捗をコマンド進捗情報によりチャネル別に管理するコマンド進捗管理手段であって、各チャネルにおけるコマンド進捗が、前記返却された未実行のアクセスコマンドの系列のうちの最も古い未実行のアクセスコマンドの指定する位置に戻されるように、前記コマンド進捗情報を更新するコマンド進捗管理手段とを具備し、
    前記コマンド生成手段は、前記更新されたコマンド進捗情報に基づいて、前記返却された最も古い未実行のアクセスコマンドを含むチャネル別のアクセスコマンドの群を前記メモリインタフェースに投入する
    メモリ装置。
  2. 前記複数のチャネルにおけるアクセスコマンドの進捗を統括的に管理することにより、ブロックの区切りを検出する進捗統括管理手段を更に具備する請求項1記載のメモリ装置。
  3. 前記コマンド生成手段は、次に投入されるべきアクセスコマンドが、対応するチャネルにおける最終アクセスコマンドであるならば、前記最終アクセスコマンドに、当該最終アクセスコマンドの実行に成功した場合に対応するコマンドレスポンスを返すことを指定する特定の指定情報を設定する請求項2記載のメモリ装置。
  4. 前記進捗統括管理手段は、前記複数のチャネルにそれぞれ対応する最終アクセスコマンドの群が投入された状態で、前記最終アクセスコマンドの群に対応するコマンドレスポンスの群が返却されているかを判定することにより、前記ブロックの区切りを検出する請求項3記載のメモリ装置。
  5. 前記複数のチャネルのうちの第1のチャネルを介してのメモリアクセスでエラー訂正符号に基づく訂正が不能なエラーが発生した場合、前記ブロックのエラーページ内のエラー箇所を、チャネル間誤り訂正によって訂正するチャネル間誤り訂正手段と、
    前記チャネル間誤り訂正の結果に基づいて、前記ブロックのページ毎にチャネル間誤り訂正状態を管理するチャネル間誤り訂正状態管理手段とを更に具備し、
    前記コマンド進捗管理手段は、少なくとも前記第1のチャネルにおけるコマンド進捗位置が、前記エラーページの次のページの先頭位置にスキップされるように、前記コマンド進捗情報を更新する請求項1記載のメモリ装置。
  6. 前記コマンド進捗管理手段は、前記複数のチャネルのうち前記エラーページをコマンド進捗位置とする前記第1のチャネルとは異なる第2のチャネルにおける次のコマンド進捗位置も、前記エラーページの次のページの先頭位置にスキップされるように、前記コマンド進捗情報を更新する請求項5記載のメモリ装置。
  7. 複数のチャネルを介してアクセスされるメモリと、複数のアクセスコマンドに従って前記メモリに前記複数のチャネルを介して並行してアクセスするメモリインタフェースとを備えたメモリ装置において、所定のアクセス処理により前記メモリにブロック単位でアクセスするためのメモリアクセス方法であって、
    チャネル別のアクセスコマンドの群を前記メモリインタフェースに逐次投機的に投入し、
    前記メモリインタフェースによる前記複数のチャネルを介してのメモリアクセスのいずれかでエラーが発生した場合、既に投入されている未実行のアクセスコマンドの系列を、パージレスポンスにより返却し、
    各チャネルにおけるコマンド進捗が、前記返却された未実行のアクセスコマンドの系列のうちの最も古い未実行のアクセスコマンドの指定する位置に戻されるように、前記所定の処理におけるアクセスコマンドの進捗を管理するためのコマンド進捗情報を更新し、
    前記更新されたコマンド進捗情報に基づいて、前記返却された最も古い未実行のアクセスコマンドを含むチャネル別のアクセスコマンドの群を前記メモリインタフェースに投入する
    メモリアクセス方法。
  8. 次に投入されるべきアクセスコマンドが、対応するチャネルにおける最終アクセスコマンドであるならば、前記最終アクセスコマンドに、当該最終アクセスコマンドの実行に成功した場合に対応するコマンドレスポンスを返すことを指定する特定の指定情報を設定する請求項7記載のメモリアクセス方法。
  9. 前記複数のチャネルにそれぞれ対応する最終アクセスコマンドの群が投入された状態で、前記最終アクセスコマンドの群に対応するコマンドレスポンスの群が返却されているかを判定することにより、前記ブロックの区切りを検出する請求項8記載のメモリアクセス方法。
  10. 前記複数のチャネルのうちの第1のチャネルを介してのメモリアクセスでエラー訂正符号に基づく訂正が不能なエラーが発生した場合、前記ブロックのエラーページ内のエラー箇所を、チャネル間誤り訂正によって訂正し、
    前記チャネル間誤り訂正の結果に基づいて、前記ブロックのページ毎にチャネル間誤り訂正状態を管理し、
    少なくとも前記第1のチャネルにおけるコマンド進捗位置が、前記エラーページの次のページの先頭位置にスキップされるように、前記コマンド進捗情報を更新する
    請求項7記載のメモリアクセス方法。
  11. 前記複数のチャネルのうち前記エラーページをコマンド進捗位置とする前記第1のチャネルとは異なる第2のチャネルにおける次のコマンド進捗位置も、前記エラーページの次のページの先頭位置にスキップされるように、前記コマンド進捗情報を更新する請求項10記載のメモリアクセス方法。
JP2011040470A 2011-02-25 2011-02-25 マルチチャネルを有するメモリ装置及び同装置におけるメモリアクセス方法 Expired - Fee Related JP5259755B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011040470A JP5259755B2 (ja) 2011-02-25 2011-02-25 マルチチャネルを有するメモリ装置及び同装置におけるメモリアクセス方法
US13/333,345 US8689079B2 (en) 2011-02-25 2011-12-21 Memory device having multiple channels and method for accessing memory in the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011040470A JP5259755B2 (ja) 2011-02-25 2011-02-25 マルチチャネルを有するメモリ装置及び同装置におけるメモリアクセス方法

Publications (2)

Publication Number Publication Date
JP2012178039A true JP2012178039A (ja) 2012-09-13
JP5259755B2 JP5259755B2 (ja) 2013-08-07

Family

ID=46719847

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011040470A Expired - Fee Related JP5259755B2 (ja) 2011-02-25 2011-02-25 マルチチャネルを有するメモリ装置及び同装置におけるメモリアクセス方法

Country Status (2)

Country Link
US (1) US8689079B2 (ja)
JP (1) JP5259755B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140032820A1 (en) * 2012-07-25 2014-01-30 Akinori Harasawa Data storage apparatus, memory control method and electronic device with data storage apparatus
KR102358053B1 (ko) 2014-10-28 2022-02-04 삼성전자주식회사 복수의 불휘발성 메모리 칩들을 포함하는 스토리지 장치
KR102391493B1 (ko) * 2015-12-31 2022-04-28 에스케이하이닉스 주식회사 반도체 장치와 연결된 컨트롤러 및 그것의 동작 방법
JP2017228172A (ja) * 2016-06-23 2017-12-28 富士通株式会社 情報処理システム
CN111356227B (zh) * 2020-02-25 2021-08-03 杭州电子科技大学 应用于uwb室内定位中遮挡物类别识别的特征选择方法
US20230068580A1 (en) * 2021-08-27 2023-03-02 Micron Technology, Inc. Memory device with multiple input/output interfaces

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02186464A (ja) * 1989-01-13 1990-07-20 Hitachi Ltd メモリアクセス制御方式
WO2010122607A1 (ja) * 2009-04-24 2010-10-28 富士通株式会社 記憶制御装置及びその制御方法
JP2011013835A (ja) * 2009-06-30 2011-01-20 Canon Inc メモリシステム、メモリアクセス方法、及びプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7483329B2 (en) * 2000-01-06 2009-01-27 Super Talent Electronics, Inc. Flash card and controller with integrated voltage converter for attachment to a bus that can operate at either of two power-supply voltages
US7617352B2 (en) 2000-12-27 2009-11-10 Tdk Corporation Memory controller, flash memory system having memory controller and method for controlling flash memory device
US6859866B2 (en) * 2001-10-01 2005-02-22 International Business Machines Corporation Synchronizing processing of commands invoked against duplexed coupling facility structures
US6912648B2 (en) * 2001-12-31 2005-06-28 Intel Corporation Stick and spoke replay with selectable delays
US7788427B1 (en) * 2005-05-05 2010-08-31 Marvell International Ltd. Flash memory interface for disk drive
US7579683B1 (en) * 2004-06-29 2009-08-25 National Semiconductor Corporation Memory interface optimized for stacked configurations
KR100621631B1 (ko) 2005-01-11 2006-09-13 삼성전자주식회사 반도체 디스크 제어 장치
US8291295B2 (en) * 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7852690B2 (en) * 2006-05-15 2010-12-14 Apple Inc. Multi-chip package for a flash memory
US7904639B2 (en) * 2006-08-22 2011-03-08 Mosaid Technologies Incorporated Modular command structure for memory and memory system
WO2009011052A1 (ja) * 2007-07-18 2009-01-22 Fujitsu Limited メモリリフレッシュ装置およびメモリリフレッシュ方法
US8276043B2 (en) 2008-03-01 2012-09-25 Kabushiki Kaisha Toshiba Memory system
JP4746641B2 (ja) 2008-03-01 2011-08-10 株式会社東芝 メモリシステム
US8443263B2 (en) * 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US20120158205A1 (en) * 2010-12-17 2012-06-21 Greenvolts, Inc. Scalable backend management system for remotely operating one or more photovoltaic generation facilities

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02186464A (ja) * 1989-01-13 1990-07-20 Hitachi Ltd メモリアクセス制御方式
WO2010122607A1 (ja) * 2009-04-24 2010-10-28 富士通株式会社 記憶制御装置及びその制御方法
JP2011013835A (ja) * 2009-06-30 2011-01-20 Canon Inc メモリシステム、メモリアクセス方法、及びプログラム

Also Published As

Publication number Publication date
JP5259755B2 (ja) 2013-08-07
US8689079B2 (en) 2014-04-01
US20120221921A1 (en) 2012-08-30

Similar Documents

Publication Publication Date Title
US9165685B2 (en) Semiconductor memory device
JP6820248B2 (ja) 持続性記憶装置を管理する方法およびシステム、ならびに非一時的コンピュータ読み取り可能媒体
US8751740B1 (en) Systems, methods, and computer readable media for performance optimization of storage allocation to virtual logical units
JP4901968B2 (ja) 半導体記憶装置
JP4829365B1 (ja) データ記憶装置及びデータ書き込み方法
JP5259755B2 (ja) マルチチャネルを有するメモリ装置及び同装置におけるメモリアクセス方法
CN107564558B (zh) 实现分散原子i/o写入
JP2013222435A (ja) 半導体記憶装置及びその制御方法
JP6102515B2 (ja) 情報処理装置、制御回路、制御プログラム、および制御方法
KR20140086223A (ko) 디스크 어레이의 패리티 재동기화 장치 및 방법
US20160070648A1 (en) Data storage system and operation method thereof
JP2012248109A (ja) マルチチャネルを有するメモリ装置及び同装置におけるコンパクションのためのリードコマンド群生成方法
US20150339069A1 (en) Memory system and method
JP5318076B2 (ja) 複数のアクセスコマンドを並行して実行するメモリ装置及び同装置におけるメモリアクセス方法
US8856468B2 (en) Memory device capable of improving write processing speed and memory control method
US20170357545A1 (en) Information processing apparatus and information processing method
US20180113616A1 (en) Disk array control device, disk array device, disk array control method, and recording medium
US11354063B2 (en) Memory system
US9003261B2 (en) Memory system
US20190361803A1 (en) Logical-to-physical table updating method and storage controller

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130225

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20130308

TRDD Decision of grant or rejection written
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20130325

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130424

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160502

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees