以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
図1は、本発明の実施の形態に係る半導体メモリ1を外部機器6とともに示す図である。図1の接続関係で示すように、半導体メモリ1は、外部インタフェース2、メモリコントローラ3、メモリインタフェース4、及びメモリセルアレイ5を備えている。外部インタフェース2は、ホストコンピュータ等の外部機器6に接続される。メモリセルアレイ5は、例えばNAND型フラッシュメモリによって構成されている。但し、NOR型フラッシュメモリ等の他のメモリによって構成されていてもよい。
図2は、半導体メモリ1のシステム構成を示す図である。メモリコントローラ3は、コマンド発行部11と、RAM等によって構成された保持部12とを備えている。保持部12は、先読み管理テーブル13を保持している。
コマンド発行部11は、外部機器6から外部インタフェース2を介して入力された外部コマンドS1に基づいて、内部コマンドS2を発行する。半導体メモリ1においては、メモリセルアレイ5からのデータの読み出し、及びメモリセルアレイ5へのデータの書き込みは、ページ単位で実行される。外部機器6がメモリセルアレイ5から所定のページを読み出す場合、外部コマンドS1には、リードコマンドと、当該ページの論理アドレスとが含まれる。コマンド発行部11は、図示しない論理−物理アドレス変換テーブルに基づいて、外部コマンドS1に含まれている論理アドレスを、メモリセルアレイ5内における当該ページの所在を示す物理アドレスに変換する。そして、リードコマンドと当該物理アドレスとを含む内部コマンドS2を生成して発行する。内部コマンドS2は、メモリインタフェース4を介してメモリセルアレイ5に入力される。
図3は、メモリセルアレイ5を示す図である。メモリセルアレイ5には複数のページが記憶されており、各ページに物理アドレスB0〜Bnがそれぞれ設定されている。各ページは、外部機器6からアクセス可能なユーザデータ領域R2と、ユーザデータ領域R2に付加された冗長領域としての付加領域R1とを有している。1ページのデータ容量が例えば4224バイトである場合、ユーザデータ領域R2のデータ容量は例えば4096バイトであり、付加領域R1のデータ容量は例えば128バイトである。ユーザデータ領域R2には、ユーザによって使用される所望のデータが書き込まれている。付加領域R1には、予め設定されるメモリセルアレイ5からのページの読み出し規則(読み出し順序や連続読み出しページ数等)に基づいて、テーブルアドレス、又は所定値X1(例えばオール0)、又は所定値X2(例えばオール1)が記述されている。
図4は、先読み管理テーブル13を示す図である。先読み管理テーブル13には、上記読み出し規則に基づいて、テーブルアドレスと先読み物理アドレスとの対応関係が記述されている。例えば、テーブルアドレスTB0は物理アドレスB3に対応しており、テーブルアドレスTB1は物理アドレスB9に対応している。
図5は、メモリセルアレイ5からページを読み出す第1の例を示すタイミングチャートである。
まず時刻T1において、リードコマンドと論理アドレスA0とを含む外部コマンドS1が、外部機器6から外部インタフェース2を介してコマンド発行部11に入力される。
次に時刻T2において、コマンド発行部11は、論理アドレスA0を物理アドレスB0に変換した後、リードコマンドと物理アドレスB0とを含む内部コマンドS2を発行する。内部コマンドS2は、メモリインタフェース4を介してメモリセルアレイ5に入力される。
次に時刻T3において、物理アドレスB0に対応するページがメモリセルアレイ5から読み出される。具体的には、まず物理アドレスB0の付加領域R1が読み出され、次に物理アドレスB0のユーザデータ領域R2(データD0)が読み出される。この例では、物理アドレスB0の付加領域R1にはテーブルアドレスTB3が記述されているものとする。付加領域R1のデータ(テーブルアドレスTB3)は、データS3として、メモリセルアレイ5からメモリインタフェース4を介してコマンド発行部11に入力される。ユーザデータ領域R2のデータ(データD0)は、データS4として、メモリセルアレイ5からメモリインタフェース4を介して外部インタフェース2に入力される。データS4は、外部インタフェース2から外部機器6に向けて出力される。
次に時刻T4において、コマンド発行部11は、データS3で示されるテーブルアドレスTB3に対応する物理アドレスを、先読み管理テーブル13から抽出する。この例では、テーブルアドレスTB3に対応する物理アドレスとして、物理アドレスB6が抽出される。そして、コマンド発行部11は、リードコマンドと物理アドレスB6とを含む内部コマンドS2を発行する。内部コマンドS2は、メモリインタフェース4を介してメモリセルアレイ5に入力される。
次に時刻T5において、物理アドレスB6に対応するページがメモリセルアレイ5から読み出される。具体的には、まず物理アドレスB6の付加領域R1が読み出され、次に物理アドレスB6のユーザデータ領域R2(データD6)が読み出される。この例では、物理アドレスB6の付加領域R1にはテーブルアドレスTB9が記述されているものとする。付加領域R1のデータ(テーブルアドレスTB9)は、データS3として、メモリセルアレイ5からメモリインタフェース4を介してコマンド発行部11に入力される。ユーザデータ領域R2のデータ(データD6)は、データS4として、メモリセルアレイ5からメモリインタフェース4を介して外部インタフェース2に入力される。データS4は、外部インタフェース2から外部機器6に向けて出力される。
図6は、メモリセルアレイ5からページを読み出す第2の例を示すタイミングチャートである。
まず時刻T1において、リードコマンドと論理アドレスA0とを含む外部コマンドS1が、外部機器6から外部インタフェース2を介してコマンド発行部11に入力される。
次に時刻T2において、コマンド発行部11は、論理アドレスA0を物理アドレスB0に変換した後、リードコマンドと物理アドレスB0とを含む内部コマンドS2を発行する。内部コマンドS2は、メモリインタフェース4を介してメモリセルアレイ5に入力される。
次に時刻T3において、物理アドレスB0に対応するページがメモリセルアレイ5から読み出される。具体的には、まず物理アドレスB0の付加領域R1が読み出され、次に物理アドレスB0のユーザデータ領域R2(データD0)が読み出される。この例では、物理アドレスB0の付加領域R1には所定値X1が記述されているものとする。付加領域R1のデータ(所定値X1)は、データS3として、メモリセルアレイ5からメモリインタフェース4を介してコマンド発行部11に入力される。ユーザデータ領域R2のデータ(データD0)は、データS4として、メモリセルアレイ5からメモリインタフェース4を介して外部インタフェース2に入力される。データS4は、外部インタフェース2から外部機器6に向けて出力される。
次に時刻T4において、コマンド発行部11は、所定値X1を示すデータS3が入力された場合には、前回発行した内部コマンドS2に含めた物理アドレスB0に「1」を加算することにより、物理アドレスB0に連続する物理アドレスB1を算出する。そして、コマンド発行部11は、リードコマンドと物理アドレスB1とを含む内部コマンドS2を発行する。内部コマンドS2は、メモリインタフェース4を介してメモリセルアレイ5に入力される。
次に時刻T5において、物理アドレスB1に対応するページがメモリセルアレイ5から読み出される。具体的には、まず物理アドレスB1の付加領域R1が読み出され、次に物理アドレスB1のユーザデータ領域R2(データD1)が読み出される。この例では、物理アドレスB1の付加領域R1には所定値X2が記述されているものとする。付加領域R1のデータ(所定値X2)は、データS3として、メモリセルアレイ5からメモリインタフェース4を介してコマンド発行部11に入力される。ユーザデータ領域R2のデータ(データD1)は、データS4として、メモリセルアレイ5からメモリインタフェース4を介して外部インタフェース2に入力される。データS4は、外部インタフェース2から外部機器6に向けて出力される。
コマンド発行部11は、所定値X2を示すデータS3が入力された場合には、メモリセルアレイ5からのページの読み出しを終了するために、次の内部コマンドS2を発行しない。
図7は、メモリセルアレイ5からページを読み出す第3の例を示すタイミングチャートである。
まず時刻T1において、リードコマンドと論理アドレスA0とを含む外部コマンドS1が、外部機器6から外部インタフェース2を介してコマンド発行部11に入力される。
次に時刻T2において、コマンド発行部11は、論理アドレスA0を物理アドレスB0に変換した後、リードコマンドと物理アドレスB0とを含む内部コマンドS2を発行する。内部コマンドS2は、メモリインタフェース4を介してメモリセルアレイ5に入力される。
次に時刻T3において、物理アドレスB0に対応するページがメモリセルアレイ5から読み出される。具体的には、まず物理アドレスB0の付加領域R1が読み出され、次に物理アドレスB0のユーザデータ領域R2(データD0)が読み出される。この例では、物理アドレスB0の付加領域R1には所定値X2が記述されているものとする。付加領域R1のデータ(所定値X2)は、データS3として、メモリセルアレイ5からメモリインタフェース4を介してコマンド発行部11に入力される。ユーザデータ領域R2のデータ(データD0)は、データS4として、メモリセルアレイ5からメモリインタフェース4を介して外部インタフェース2に入力される。データS4は、外部インタフェース2から外部機器6に向けて出力される。
コマンド発行部11は、所定値X2を示すデータS3が入力された場合には、メモリセルアレイ5からのページの読み出しを終了するために、次の内部コマンドS2を発行しない。
なお、図3には付加領域R1がユーザデータ領域R2の前に配置されている例を示したが、必ずしもこの例に限定されるわけではなく、付加領域R1がユーザデータ領域R2の後ろに配置されていてもよい。また、付加領域R1の全体がユーザデータ領域R2よりも先に読み出される例について述べたが、必ずしもこの例に限定されるわけではなく、少なくとも付加領域R1のうちテーブルアドレス(又は所定値X1,X2)が記述されている部分が、ユーザデータ領域R2よりも先に読み出されればよい。例えば、付加領域R1のうちテーブルアドレス(又は所定値X1,X2)が記述されている部分を、ユーザデータ領域R2の前に配置し、残りの部分をユーザデータ領域R2の後ろに配置してもよい。
<第1の変形例>
図8は、第1の変形例に係る半導体メモリ1のシステム構成を簡略化して示す図である。半導体メモリ1は、異なるメモリダイを用いてストライプ構成された複数のメモリセルアレイ5A〜5Dを備えている。メモリセルアレイ5A〜5Dは、メモリインタフェース4A〜4Dをそれぞれ介してメモリコントローラ3に接続されている。
図9は、第1の変形例に係る先読み管理テーブル13を示す図である。先読み管理テーブル13には、メモリセルアレイ5A〜5Dの各々に関して、テーブルアドレスと先読み物理アドレスとの対応関係が記述されている。例えば、テーブルアドレスTB0は全てのメモリセルアレイ5A〜5Dに関して物理アドレスB3に対応しており、テーブルアドレスTB2は全てのメモリセルアレイ5A〜5Dに関して物理アドレスB100に対応している。また、テーブルアドレスTB1は、メモリセルアレイ5A,5B,5Dに関しては物理アドレスB9に対応しており、メモリセルアレイ5Cに関しては物理アドレスB500に対応している。これは、メモリセルアレイ5Cの物理アドレスB9が不良ブロックに含まれたことにより、不良ブロック管理によってメモリセルアレイ5Cの物理アドレスB9が予備の物理アドレスB500に置き換えられたためである。また、テーブルアドレスTB3は、メモリセルアレイ5A,5C,5Dに関しては物理アドレスB6に対応しており、メモリセルアレイ5Bに関しては物理アドレスB600に対応している。これは、メモリセルアレイ5Bの物理アドレスB6が不良ブロックに含まれたことにより、不良ブロック管理によってメモリセルアレイ5Bの物理アドレスB6が予備の物理アドレスB600に置き換えられたためである。
上記実施の形態と同様に、コマンド発行部11は、データS3で示されるテーブルアドレスに対応する物理アドレスを、先読み管理テーブル13から抽出する。例えば、データS3によってテーブルアドレスTB2が示されている場合には、全てのメモリセルアレイ5A〜5Dに関して物理アドレスB100を抽出する。そして、リードコマンドと物理アドレスB100とを含む内部コマンドS2を、メモリセルアレイ5A〜5Dに対して発行する。また、データS3によってテーブルアドレスTB1が示されている場合には、メモリセルアレイ5A,5B,5Dに関して物理アドレスB9を抽出し、メモリセルアレイ5Cに関して物理アドレスB500を抽出する。そして、リードコマンドと物理アドレスB9とを含む内部コマンドS2を、メモリセルアレイ5A,5B,5Dに対して発行するとともに、リードコマンドと物理アドレスB500とを含む内部コマンドS2を、メモリセルアレイ5Cに対して発行する。
図10は、メモリセルアレイ5A〜5Dの第1の例を示す図である。メモリセルアレイ5A〜5Dには複数のページが記憶されており、各ページに物理アドレスB0〜Bnがそれぞれ設定されている。メモリセルアレイ5A〜5Dのうちの一つのメモリセルアレイ(この例ではメモリセルアレイ5A)に関して、各ページは、ユーザデータ領域R2と付加領域R1とを有している。一方、残りのメモリセルアレイ(この例ではメモリセルアレイ5B〜5D)に関して、各ページは、ユーザデータ領域R2のみを有している。1ページのデータ容量が例えば4224バイトである場合、メモリセルアレイ5Aおけるユーザデータ領域R2のデータ容量は例えば4096バイトであり、メモリセルアレイ5B〜5Dにおけるユーザデータ領域R2のデータ容量は4224バイトである。
メモリセルアレイ5A〜5Dから同一物理アドレスのストライプデータが読み出されると、メモリセルアレイ5Aの付加領域R1に記述されているテーブルアドレス(又は所定値X1,X2)が、データS3としてコマンド発行部11に入力される。コマンド発行部11は、入力されたデータS3で示されるテーブルアドレス(又は所定値X1,X2)に基づいて、上記実施の形態と同様の先読み処理を実行する。
図11は、メモリセルアレイ5A〜5Dの第2の例を示す図である。メモリセルアレイ5A〜5Dには複数のページが記憶されており、各ページに物理アドレスB0〜Bnがそれぞれ設定されている。全てのメモリセルアレイ5A〜5Dに関して、各ページは、ユーザデータ領域R2と付加領域R1とを有している。1ページのデータ容量が例えば4224バイトである場合、メモリセルアレイ5A〜5Dおけるユーザデータ領域R2のデータ容量は例えば4096バイトである。同一物理アドレスの各メモリセルアレイ5A〜5Dの付加領域R1には、同一のテーブルアドレス(又は所定値X1,X2)が記述されている。
メモリセルアレイ5A〜5Dから同一物理アドレスのストライプデータが読み出されると、各メモリセルアレイ5A〜5Dの付加領域R1に記述されているテーブルアドレス(又は所定値X1,X2)が、データS3としてコマンド発行部11に入力される。コマンド発行部11は、入力されたデータS3で示されるテーブルアドレス(又は所定値X1,X2)に基づいて、上記実施の形態と同様の先読み処理を実行する。入力された複数のデータS3の中に、ビットエラー等に起因して内容が異なるデータが含まれている場合には、コマンド発行部11は、例えば多数決によってデータS3の内容を決定する。
なお、図10,11には付加領域R1がユーザデータ領域R2の前に配置されている例を示したが、必ずしもこの例に限定されるわけではなく、付加領域R1がユーザデータ領域R2の後ろに配置されていてもよい。また、付加領域R1の全体がユーザデータ領域R2よりも先に読み出される例について述べたが、必ずしもこの例に限定されるわけではなく、少なくとも付加領域R1のうちテーブルアドレス(又は所定値X1,X2)が記述されている部分が、ユーザデータ領域R2よりも先に読み出されればよい。例えば、付加領域R1のうちテーブルアドレス(又は所定値X1,X2)が記述されている部分を、ユーザデータ領域R2の前に配置し、残りの部分をユーザデータ領域R2の後ろに配置してもよい。
<第2の変形例>
図12は、第2の変形例に係る半導体メモリ1のシステム構成を示す図である。図2に示した上記実施の形態に係る半導体メモリ1と比較して、メモリインタフェース4からコマンド発行部11へのデータS3の入力が省略されている。
図13は、第2の変形例に係るメモリセルアレイ5を示す図である。図3に示した上記実施の形態に係るメモリセルアレイ5と比較して、付加領域R1が省略されている。つまり、各ページは、ユーザデータ領域R2のみを有している。1ページのデータ容量が例えば4224バイトである場合、メモリセルアレイ5におけるユーザデータ領域R2のデータ容量は4224バイトである。
図14は、第2の変形例に係る先読み管理テーブル13を示す図である。先読み管理テーブル13には、上記読み出し規則に基づいて、現物理アドレスと先読み物理アドレスとの対応関係が記述されている。例えば、現物理アドレスB0は先読み物理アドレスB3に対応しており、現物理アドレスB1は先読み物理アドレスB9に対応している。また、先読み管理テーブル13においては、先読み物理アドレスに変えて所定値X1,X2を記述することが可能である。この例では、現物理アドレスB28,B29は所定値X1に対応しており、現物理アドレスB30は所定値X2に対応している。
図15は、メモリセルアレイ5からページを読み出す第1の例を示すタイミングチャートである。
まず時刻T1において、リードコマンドと論理アドレスA0とを含む外部コマンドS1が、外部機器6から外部インタフェース2を介してコマンド発行部11に入力される。
次に時刻T2において、コマンド発行部11は、論理アドレスA0を物理アドレスB0に変換した後、リードコマンドと物理アドレスB0とを含む内部コマンドS2を発行する。内部コマンドS2は、メモリインタフェース4を介してメモリセルアレイ5に入力される。
次に時刻T3において、物理アドレスB0に対応するページがメモリセルアレイ5から読み出される。具体的には、物理アドレスB0のユーザデータ領域R2(データD0)が読み出される。ユーザデータ領域R2のデータ(データD0)は、データS4として、メモリセルアレイ5からメモリインタフェース4を介して外部インタフェース2に入力される。データS4は、外部インタフェース2から外部機器6に向けて出力される。
次に時刻T4において、コマンド発行部11は、現物理アドレスB0に対応する先読み物理アドレスを、先読み管理テーブル13から抽出する。この例では、現物理アドレスB0に対応する先読み物理アドレスとして、物理アドレスB3が抽出される。そして、コマンド発行部11は、リードコマンドと物理アドレスB3とを含む内部コマンドS2を発行する。内部コマンドS2は、メモリインタフェース4を介してメモリセルアレイ5に入力される。
次に時刻T5において、物理アドレスB3に対応するページがメモリセルアレイ5から読み出される。具体的には、物理アドレスB3のユーザデータ領域R2(データD3)が読み出される。ユーザデータ領域R2のデータ(データD3)は、データS4として、メモリセルアレイ5からメモリインタフェース4を介して外部インタフェース2に入力される。データS4は、外部インタフェース2から外部機器6に向けて出力される。
図16は、メモリセルアレイ5からページを読み出す第2の例を示すタイミングチャートである。
まず時刻T1において、リードコマンドと論理アドレスA28とを含む外部コマンドS1が、外部機器6から外部インタフェース2を介してコマンド発行部11に入力される。
次に時刻T2において、コマンド発行部11は、論理アドレスA28を物理アドレスB28に変換した後、リードコマンドと物理アドレスB28(現物理アドレス)とを含む内部コマンドS2を発行する。内部コマンドS2は、メモリインタフェース4を介してメモリセルアレイ5に入力される。
次に時刻T3において、物理アドレスB28に対応するページがメモリセルアレイ5から読み出される。具体的には、物理アドレスB28のユーザデータ領域R2(データD28)が読み出される。ユーザデータ領域R2のデータ(データD28)は、データS4として、メモリセルアレイ5からメモリインタフェース4を介して外部インタフェース2に入力される。データS4は、外部インタフェース2から外部機器6に向けて出力される。
次に時刻T4において、コマンド発行部11は、現物理アドレスB28に対応する先読み物理アドレスを、先読み管理テーブル13から抽出する。この例では、先読み物理アドレスの代わりに所定値X1が抽出される。所定値X1が抽出された場合には、コマンド発行部11は、現物理アドレスB28に「1」を加算することにより、物理アドレスB28に連続する物理アドレスB29を算出する。そして、コマンド発行部11は、リードコマンドと物理アドレスB29とを含む内部コマンドS2を発行する。内部コマンドS2は、メモリインタフェース4を介してメモリセルアレイ5に入力される。
次に時刻T5において、物理アドレスB29に対応するページがメモリセルアレイ5から読み出される。具体的には、物理アドレスB29のユーザデータ領域R2(データD29)が読み出される。ユーザデータ領域R2のデータ(データD29)は、データS4として、メモリセルアレイ5からメモリインタフェース4を介して外部インタフェース2に入力される。データS4は、外部インタフェース2から外部機器6に向けて出力される。
次に時刻T6において、コマンド発行部11は、現物理アドレスB29に対応する先読み物理アドレスを、先読み管理テーブル13から抽出する。この例では、先読み物理アドレスの代わりに所定値X1が抽出される。所定値X1が抽出された場合には、コマンド発行部11は、現物理アドレスB29に「1」を加算することにより、物理アドレスB29に連続する物理アドレスB30を算出する。そして、コマンド発行部11は、リードコマンドと物理アドレスB30とを含む内部コマンドS2を発行する。内部コマンドS2は、メモリインタフェース4を介してメモリセルアレイ5に入力される。
次に時刻T7において、物理アドレスB30に対応するページがメモリセルアレイ5から読み出される。具体的には、物理アドレスB30のユーザデータ領域R2(データD30)が読み出される。ユーザデータ領域R2のデータ(データD30)は、データS4として、メモリセルアレイ5からメモリインタフェース4を介して外部インタフェース2に入力される。データS4は、外部インタフェース2から外部機器6に向けて出力される。
また、コマンド発行部11は、現物理アドレスB30に対応する先読み物理アドレスを、先読み管理テーブル13から抽出する。この例では、先読み物理アドレスの代わりに所定値X2が抽出される。所定値X2が抽出された場合には、コマンド発行部11は、メモリセルアレイ5からのページの読み出しを終了するために、次の内部コマンドS2を発行しない。
図17は、メモリセルアレイ5からページを読み出す第3の例を示すタイミングチャートである。
まず時刻T1において、リードコマンドと論理アドレスA30とを含む外部コマンドS1が、外部機器6から外部インタフェース2を介してコマンド発行部11に入力される。
次に時刻T2において、コマンド発行部11は、論理アドレスA30を物理アドレスB30に変換した後、リードコマンドと物理アドレスB30とを含む内部コマンドS2を発行する。内部コマンドS2は、メモリインタフェース4を介してメモリセルアレイ5に入力される。
次に時刻T3において、物理アドレスB30に対応するページがメモリセルアレイ5から読み出される。具体的には、物理アドレスB30のユーザデータ領域R2(データD30)が読み出される。ユーザデータ領域R2のデータ(データD30)は、データS4として、メモリセルアレイ5からメモリインタフェース4を介して外部インタフェース2に入力される。データS4は、外部インタフェース2から外部機器6に向けて出力される。
また、コマンド発行部11は、現物理アドレスB30に対応する先読み物理アドレスを、先読み管理テーブル13から抽出する。この例では、先読み物理アドレスの代わりに所定値X2が抽出される。所定値X2が抽出された場合には、コマンド発行部11は、メモリセルアレイ5からのページの読み出しを終了するために、次の内部コマンドS2を発行しない。
<第3の変形例>
図18は、第3の変形例に係る半導体メモリ1のシステム構成を示す図である。図2に示した上記実施の形態に係る半導体メモリ1と比較して、先読み管理テーブル13を保持する保持部12が省略されている。
図19は、第3の変形例に係るメモリセルアレイ5を示す図である。付加領域R1には、上記読み出し規則に基づいて、先読み物理アドレス(又は所定値X1,X2)が記述されている。
図20は、メモリセルアレイ5からページを読み出す第1の例を示すタイミングチャートである。
まず時刻T1において、リードコマンドと論理アドレスA0とを含む外部コマンドS1が、外部機器6から外部インタフェース2を介してコマンド発行部11に入力される。
次に時刻T2において、コマンド発行部11は、論理アドレスA0を物理アドレスB0に変換した後、リードコマンドと物理アドレスB0とを含む内部コマンドS2を発行する。内部コマンドS2は、メモリインタフェース4を介してメモリセルアレイ5に入力される。
次に時刻T3において、物理アドレスB0に対応するページがメモリセルアレイ5から読み出される。具体的には、まず物理アドレスB0の付加領域R1が読み出され、次に物理アドレスB0のユーザデータ領域R2(データD0)が読み出される。この例では、物理アドレスB0の付加領域R1には先読み物理アドレスB3が記述されている。付加領域R1のデータ(先読み物理アドレスB3)は、データS3として、メモリセルアレイ5からメモリインタフェース4を介してコマンド発行部11に入力される。ユーザデータ領域R2のデータ(データD0)は、データS4として、メモリセルアレイ5からメモリインタフェース4を介して外部インタフェース2に入力される。データS4は、外部インタフェース2から外部機器6に向けて出力される。
次に時刻T4において、コマンド発行部11は、リードコマンドと、データS3で示される先読み物理アドレスB3とを含む内部コマンドS2を発行する。内部コマンドS2は、メモリインタフェース4を介してメモリセルアレイ5に入力される。
次に時刻T5において、物理アドレスB3に対応するページがメモリセルアレイ5から読み出される。具体的には、まず物理アドレスB3の付加領域R1が読み出され、次に物理アドレスB3のユーザデータ領域R2(データD3)が読み出される。この例では、物理アドレスB3の付加領域R1には先読み物理アドレスB6が記述されている。付加領域R1のデータ(先読み物理アドレスB6)は、データS3として、メモリセルアレイ5からメモリインタフェース4を介してコマンド発行部11に入力される。ユーザデータ領域R2のデータ(データD3)は、データS4として、メモリセルアレイ5からメモリインタフェース4を介して外部インタフェース2に入力される。データS4は、外部インタフェース2から外部機器6に向けて出力される。
図21は、メモリセルアレイ5からページを読み出す第2の例を示すタイミングチャートである。
まず時刻T1において、リードコマンドと論理アドレスA28とを含む外部コマンドS1が、外部機器6から外部インタフェース2を介してコマンド発行部11に入力される。
次に時刻T2において、コマンド発行部11は、論理アドレスA28を物理アドレスB28に変換した後、リードコマンドと物理アドレスB28とを含む内部コマンドS2を発行する。内部コマンドS2は、メモリインタフェース4を介してメモリセルアレイ5に入力される。
次に時刻T3において、物理アドレスB28に対応するページがメモリセルアレイ5から読み出される。具体的には、まず物理アドレスB28の付加領域R1が読み出され、次に物理アドレスB28のユーザデータ領域R2(データD28)が読み出される。この例では、物理アドレスB28の付加領域R1には所定値X1が記述されている。付加領域R1のデータ(所定値X1)は、データS3として、メモリセルアレイ5からメモリインタフェース4を介してコマンド発行部11に入力される。ユーザデータ領域R2のデータ(データD28)は、データS4として、メモリセルアレイ5からメモリインタフェース4を介して外部インタフェース2に入力される。データS4は、外部インタフェース2から外部機器6に向けて出力される。
次に時刻T4において、コマンド発行部11は、所定値X1を示すデータS3が入力された場合には、前回発行した内部コマンドS2に含めた物理アドレスB28に「1」を加算することにより、物理アドレスB28に連続する物理アドレスB29を算出する。そして、コマンド発行部11は、リードコマンドと物理アドレスB29とを含む内部コマンドS2を発行する。内部コマンドS2は、メモリインタフェース4を介してメモリセルアレイ5に入力される。
次に時刻T5において、物理アドレスB29に対応するページがメモリセルアレイ5から読み出される。具体的には、まず物理アドレスB29の付加領域R1が読み出され、次に物理アドレスB29のユーザデータ領域R2(データD29)が読み出される。この例では、物理アドレスB29の付加領域R1には所定値X1が記述されている。付加領域R1のデータ(所定値X1)は、データS3として、メモリセルアレイ5からメモリインタフェース4を介してコマンド発行部11に入力される。ユーザデータ領域R2のデータ(データD29)は、データS4として、メモリセルアレイ5からメモリインタフェース4を介して外部インタフェース2に入力される。データS4は、外部インタフェース2から外部機器6に向けて出力される。
次に時刻T6において、コマンド発行部11は、所定値X1を示すデータS3が入力された場合には、前回発行した内部コマンドS2に含めた物理アドレスB29に「1」を加算することにより、物理アドレスB29に連続する物理アドレスB30を算出する。そして、コマンド発行部11は、リードコマンドと物理アドレスB30とを含む内部コマンドS2を発行する。内部コマンドS2は、メモリインタフェース4を介してメモリセルアレイ5に入力される。
次に時刻T7において、物理アドレスB30に対応するページがメモリセルアレイ5から読み出される。具体的には、まず物理アドレスB30の付加領域R1が読み出され、次に物理アドレスB30のユーザデータ領域R2(データD30)が読み出される。この例では、物理アドレスB30の付加領域R1には所定値X2が記述されている。付加領域R1のデータ(所定値X2)は、データS3として、メモリセルアレイ5からメモリインタフェース4を介してコマンド発行部11に入力される。ユーザデータ領域R2のデータ(データD30)は、データS4として、メモリセルアレイ5からメモリインタフェース4を介して外部インタフェース2に入力される。データS4は、外部インタフェース2から外部機器6に向けて出力される。
コマンド発行部11は、所定値X2を示すデータS3が入力された場合には、メモリセルアレイ5からのページの読み出しを終了するために、次の内部コマンドS2を発行しない。
図22は、メモリセルアレイ5からページを読み出す第3の例を示すタイミングチャートである。
まず時刻T1において、リードコマンドと論理アドレスA30とを含む外部コマンドS1が、外部機器6から外部インタフェース2を介してコマンド発行部11に入力される。
次に時刻T2において、コマンド発行部11は、論理アドレスA30を物理アドレスB30に変換した後、リードコマンドと物理アドレスB30とを含む内部コマンドS2を発行する。内部コマンドS2は、メモリインタフェース4を介してメモリセルアレイ5に入力される。
次に時刻T3において、物理アドレスB30に対応するページがメモリセルアレイ5から読み出される。具体的には、まず物理アドレスB30の付加領域R1が読み出され、次に物理アドレスB30のユーザデータ領域R2(データD30)が読み出される。この例では、物理アドレスB30の付加領域R1には所定値X2が記述されている。付加領域R1のデータ(所定値X2)は、データS3として、メモリセルアレイ5からメモリインタフェース4を介してコマンド発行部11に入力される。ユーザデータ領域R2のデータ(データD30)は、データS4として、メモリセルアレイ5からメモリインタフェース4を介して外部インタフェース2に入力される。データS4は、外部インタフェース2から外部機器6に向けて出力される。
コマンド発行部11は、所定値X2を示すデータS3が入力された場合には、メモリセルアレイ5からのページの読み出しを終了するために、次の内部コマンドS2を発行しない。
なお、図19には付加領域R1がユーザデータ領域R2の前に配置されている例を示したが、必ずしもこの例に限定されるわけではなく、付加領域R1がユーザデータ領域R2の後ろに配置されていてもよい。また、付加領域R1の全体がユーザデータ領域R2よりも先に読み出される例について述べたが、必ずしもこの例に限定されるわけではなく、少なくとも付加領域R1のうち先読み物理アドレス(又は所定値X1,X2)が記述されている部分が、ユーザデータ領域R2よりも先に読み出されればよい。例えば、付加領域R1のうち先読み物理アドレス(又は所定値X1,X2)が記述されている部分を、ユーザデータ領域R2の前に配置し、残りの部分をユーザデータ領域R2の後ろに配置してもよい。
<まとめ>
上記実施の形態、上記第1の変形例、及び上記第2の変形例に係る半導体メモリ1によれば、先読み管理テーブル13には、所望のページの次に読み出すべきページが記憶されている物理アドレス(先読み物理アドレス)が記述されている。そして、コマンド発行部11は、一の外部コマンドS1が入力されることにより、当該外部コマンドS1に含まれている論理アドレスに対応する第1の物理アドレスを含む第1の内部コマンドS2と、当該第1の物理アドレスに記憶されている第1のページの次に読み出すべき第2のページが記憶されている第2の物理アドレスを含む第2の内部コマンドS2とを発行する。従って、第1の物理アドレスと第2の物理アドレスとが不連続である場合であっても、一の外部コマンドS1の入力に対して、コマンド発行部11が第1の内部コマンドS2と第2の内部コマンドS2とを発行することにより、第1のページと第2のページとをメモリセルアレイ5から連続的に読み出して外部機器6に向けて連続的に出力することができる。その結果、物理アドレスが不連続である複数のページを読み出す場合であっても、読み出しの所要時間を短縮することが可能となる。
また、上記実施の形態及び上記第1の変形例に係る半導体メモリ1によれば、先読み管理テーブル13には、テーブルアドレスと先読み物理アドレスとの対応関係が記述されている。従って、不良ブロックが発生した場合には、先読み管理テーブル13のうち、不良ブロックに対応する先読み物理アドレスのみを変更すれば足り、テーブルアドレスは変更する必要がないため、先読み管理テーブル13を簡易に管理することが可能となる。また、コマンド発行部11は、第1の内部コマンドS2に対応してメモリセルアレイ5から読み出された第1のページの付加領域R1に記述されているテーブルアドレスに基づいて、当該テーブルアドレスに対応する先読み物理アドレスを第2の物理アドレスとして先読み管理テーブル13から抽出することによって、第2の内部コマンドS2を生成する。これにより、第2の物理アドレスを含む第2の内部コマンドS2を適切に生成することが可能となる。
また、上記実施の形態及び上記第1の変形例に係る半導体メモリ1によれば、コマンド発行部11は、第1の内部コマンドS2に対応してメモリセルアレイ5から読み出された第1のページの付加領域R1に第1の所定値X1が記述されている場合には、第1の物理アドレスに連続する物理アドレスを第2の物理アドレスとすることによって、第2の内部コマンドS2を生成する。これにより、一の外部コマンドS1の入力に対して、物理アドレスが連続する複数のページをメモリセルアレイ5から連続的に読み出すことができ、当該複数のページを外部機器6に向けて連続的に出力することが可能となる。
また、上記実施の形態及び上記第1の変形例に係る半導体メモリ1によれば、コマンド発行部11は、第1の内部コマンドS2に対応してメモリセルアレイ5から読み出された第1のページの付加領域R1に第2の所定値X2が記述されている場合には、第2の内部コマンドS2を発行しない。これにより、一の外部コマンドS1の入力に対して、一のページをメモリセルアレイ5から単発的に読み出すことができ、当該一のページを外部機器6に向けて単発的に出力することが可能となる。
また、上記第1の変形例に係る半導体メモリ1によれば、先読み管理テーブル13には、テーブルアドレスと、各々のメモリセルアレイ5A〜5Dに関する先読み物理アドレスとの対応関係が記述されている。従って、各々のメモリセルアレイ5A〜5Dにおいて不良ブロックが発生した場合には、先読み管理テーブル13のうち、不良ブロックに対応する先読み物理アドレスのみを変更すれば足り、テーブルアドレスは変更する必要がないため、先読み管理テーブル13を簡易に管理することが可能となる。しかも、メモリセルアレイ5A〜5D毎に別個の先読み管理テーブル13を設けるのではなく、複数のメモリセルアレイ5A〜5Dに対して共通の先読み管理テーブル13を用いて統一的な管理を行うため、管理の簡略化を図ることが可能となる。
また、上記第1の変形例に係る半導体メモリ1によれば、図10に示したように、付加領域R1は、複数のメモリセルアレイ5A〜5Dのうちの一つのメモリセルアレイ5Aに記憶されているページのユーザデータ領域R2のみに付加されている。従って、付加領域R1が付加されていない他のメモリセルアレイ5B〜5Dにおいては、省略した付加領域R1のデータ容量分だけ、ユーザデータ領域R2のデータ容量を増加することが可能となる。
また、上記第1の変形例に係る半導体メモリ1によれば、図11に示したように、付加領域R1は、全てのメモリセルアレイ5A〜5Dに記憶されているページのユーザデータ領域R2に付加されている。従って、メモリセルアレイ5A〜5Dのいずれかにおいて付加領域R1に記述されているデータにエラーが生じた場合であっても、他のメモリセルアレイの付加領域R1に記述されているテーブルアドレスを用いて先読み処理を実行できるため、信頼性を向上することが可能となる。
また、上記実施の形態及び上記第1の変形例に係る半導体メモリ1によれば、付加領域R1は、ユーザデータ領域R2よりも先に読み出される。従って、ユーザデータ領域R2の読み出しの完了を待たずに先読み処理を早期に開始できるため、読み出しの所要時間を短縮することが可能となる。
また、上記第2の変形例に係る半導体メモリ1によれば、先読み管理テーブル13には、第1の物理アドレス(現物理アドレス)と第2の物理アドレス(先読み物理アドレス)との対応関係が記述されており、コマンド発行部11は、第1の物理アドレスに対応する第2の物理アドレスを先読み管理テーブル13から抽出することによって、第2の内部コマンドS2を生成する。これにより、第2の物理アドレスを含む第2の内部コマンドS2を適切に生成することが可能となる。
また、上記第2の変形例に係る半導体メモリ1によれば、コマンド発行部11は、第1の物理アドレスに対応して第1の所定値X1が記述されている場合には、第1の物理アドレスに連続する物理アドレスを第2の物理アドレスとすることによって、第2の内部コマンドS2を生成する。これにより、一の外部コマンドS1の入力に対して、物理アドレスが連続する複数のページをメモリセルアレイ5から連続的に読み出すことができ、当該複数のページを外部機器6に向けて連続的に出力することが可能となる。
また、上記第2の変形例に係る半導体メモリ1によれば、コマンド発行部11は、第1の物理アドレスに対応して第2の所定値X2が記述されている場合には、第2の内部コマンドS2を発行しない。これにより、一の外部コマンドS1の入力に対して、一のページをメモリセルアレイ5から単発的に読み出すことができ、当該一のページを外部機器6に向けて単発的に出力することが可能となる。
また、上記第3の変形例に係る半導体メモリ1によれば、各ページのユーザデータ領域R2に付加されている付加領域R1には、当該ページの次に読み出すべきページが記憶されている物理アドレス(先読み物理アドレス)が記述されている。そして、コマンド発行部11は、一の外部コマンドS1が入力されることにより、当該外部コマンドS1に含まれている論理アドレスに対応する第1の物理アドレスを含む第1の内部コマンドS2と、当該第1の内部コマンドS2に対応してメモリセルアレイ5から読み出されたページの付加領域R1に記述されている第2の物理アドレスを含む第2の内部コマンドS2とを発行する。従って、第1の物理アドレスと第2の物理アドレスとが不連続である場合であっても、一の外部コマンドS1の入力に対して、コマンド発行部11が第1の内部コマンドS2と第2の内部コマンドS2とを発行することにより、複数のページをメモリセルアレイ5から連続的に読み出して外部機器6に向けて連続的に出力することができる。その結果、物理アドレスが不連続である複数のページを読み出す場合であっても、読み出しの所要時間を短縮することが可能となる。
また、上記第3の変形例に係る半導体メモリ1によれば、コマンド発行部11は、第1の内部コマンドS2に対応してメモリセルアレイ5から読み出されたページの付加領域R1に第1の所定値X1が記述されている場合には、第1の物理アドレスに連続する物理アドレスを含めることによって、第2の内部コマンドS2を生成する。これにより、一の外部コマンドS1の入力に対して、物理アドレスが連続する複数のページをメモリセルアレイ5から連続的に読み出すことができ、当該複数のページを外部機器6に向けて連続的に出力することが可能となる。
また、上記第3の変形例に係る半導体メモリ1によれば、コマンド発行部11は、第1の内部コマンドS2に対応してメモリセルアレイ5から読み出されたページの付加領域R1に第2の所定値X2が記述されている場合には、第2の内部コマンドS2を発行しない。これにより、一の外部コマンドS1の入力に対して、一のページをメモリセルアレイ5から単発的に読み出すことができ、当該一のページを外部機器6に向けて単発的に出力することが可能となる。
また、上記第3の変形例に係る半導体メモリ1によれば、付加領域R1は、ユーザデータ領域R2よりも先に読み出される。従って、ユーザデータ領域R2の読み出しの完了を待たずに先読み処理を早期に開始できるため、読み出しの所要時間を短縮することが可能となる。