(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024087593
(43)【公開日】2024-07-01
(54)【発明の名称】半導体集積回路、半導体記憶装置、およびメモリシステム
(51)【国際特許分類】
G06F 12/00 20060101AFI20240624BHJP
G11C 16/04 20060101ALI20240624BHJP
G11C 16/34 20060101ALI20240624BHJP
G06F 13/16 20060101ALI20240624BHJP
H10B 41/40 20230101ALI20240624BHJP
H10B 43/40 20230101ALI20240624BHJP
H01L 21/336 20060101ALI20240624BHJP
【FI】
G06F12/00 560A
G11C16/04 170
G11C16/34 120
G11C16/34 163
G06F13/16 510F
G06F13/16 520B
H10B41/40
H10B43/40
H01L29/78 371
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022202493
(22)【出願日】2022-12-19
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】北垣 和邦
【テーマコード(参考)】
5B160
5B225
5F083
5F101
【Fターム(参考)】
5B160CB00
5B160MM01
5B225BA01
5B225BA19
5B225CA28
5B225DA10
5B225DE08
5B225DE20
5B225EA05
5B225FA01
5B225FA02
5F083EP02
5F083EP18
5F083EP22
5F083EP33
5F083EP34
5F083EP42
5F083EP47
5F083EP48
5F083EP76
5F083ER03
5F083ER09
5F083ER14
5F083ER19
5F083ER22
5F083GA01
5F083GA10
5F083JA03
5F083JA04
5F083JA05
5F083JA19
5F083KA01
5F083KA05
5F083KA11
5F083LA12
5F083LA16
5F083LA20
5F083MA06
5F083MA16
5F101BA01
5F101BA45
5F101BB04
5F101BC02
5F101BD16
5F101BD22
5F101BD30
5F101BD34
5F101BE07
(57)【要約】
【課題】パトロールリード動作に要する時間を短縮した半導体集積回路、半導体記憶装置、およびメモリシステムを提供すること。
【解決手段】半導体集積回路は、制御装置とメモリチップとに接続可能であり、制御装置とメモリチップとの間のデータの転送を実行する。メモリチップは記憶領域を備える。半導体集積回路は、コントローラを備える。コントローラは、制御装置からの要求に基づく前記メモリチップの記憶領域に対する第1リード動作が実行される前に、制御装置からの要求とは独立して記憶領域に対する第2リード動作を命令する第1コマンドシーケンスをメモリチップに転送する。
【選択図】
図12
【特許請求の範囲】
【請求項1】
制御装置とメモリチップとに接続可能であり、前記制御装置と前記メモリチップとの間のデータの転送を実行する半導体集積回路であって、前記メモリチップは記憶領域を備え、
前記半導体集積回路は、
前記制御装置に接続されるように構成された第1インタフェース回路と、
前記メモリチップに接続されるように構成された第2インタフェース回路と、
前記第1インタフェース回路を介した前記制御装置からの要求に基づく前記メモリチップの前記記憶領域に対する第1リード動作が実行される前に、前記第1インタフェース回路を介した前記制御装置からの要求とは独立して前記記憶領域に対する第2リード動作を命令する第1コマンドシーケンスを前記第2インタフェース回路を介して前記メモリチップに転送する、ように構成されたコントローラを備える、
半導体集積回路。
【請求項2】
タイマをさらに備え、
前記コントローラは前記第1コマンドシーケンスの転送のタイミングの到来を前記タイマを用いて判定する、
請求項1に記載の半導体集積回路。
【請求項3】
前記コントローラは、
前記第1コマンドシーケンスの前記メモリチップへの転送が完了した後、前記第1リード動作を命令する第2コマンドシーケンスを前記メモリチップに転送する、
請求項1に記載の半導体集積回路。
【請求項4】
請求項1から請求項3の何れか一項に記載の半導体集積回路と、
前記メモリチップと、
を備える半導体記憶装置。
【請求項5】
制御装置と、
バスと、
前記制御装置に前記バスを介して共通接続された複数の半導体集積回路と、
それぞれは前記複数の半導体集積回路のうちの1つに接続され、それぞれは記憶領域を備える、複数のメモリチップと、
を備え、
前記半導体集積回路は、
前記制御装置に接続されるように構成された第1インタフェース回路と、
前記メモリチップに接続されるように構成された第2インタフェース回路と、
前記第1インタフェース回路を介した前記制御装置からの要求に基づく前記メモリチップの前記記憶領域に対する第1リード動作が実行される前に、前記第1インタフェース回路を介した前記制御装置からの要求とは独立して前記記憶領域に対する第2リード動作を命令する第1コマンドシーケンスを前記第2インタフェース回路を介して前記メモリチップに転送する、ように構成されたコントローラを備える、
メモリシステム。
【請求項6】
前記複数の半導体集積回路のうちの一つが前記複数のメモリチップのうちの1つとの間で前記第1のリード動作を実行している間に、前記複数の半導体集積回路のうちの他の半導体集積回路が前記複数のメモリチップのうちの他のメモリチップとの間で前記制御装置からの要求を受信することなく、前記第2のリード動作を行う、
請求項5に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本実施形態は、半導体集積回路、半導体記憶装置、およびメモリシステムに関する。
【背景技術】
【0002】
複数のメモリチップと外部のコントローラ(以降、メモリコントローラと表記する)に接続される外部端子群との間にブリッジチップと称される半導体集積回路を配した半導体記憶装置がある。この半導体記憶装置では、メモリコントローラと複数のメモリチップとの間のデータ転送がブリッジチップを介して行われる。このような半導体記憶装置を備えるメモリシステムが知られている。
【0003】
メモリシステムでは、メモリチップが有する記憶領域に格納されたデータの健全性をチェックするために、記憶領域のうちのデータが格納されている1以上の単位領域に対して順次、リード動作が実行される。このようなリード動作は、パトロールリード動作とも称される。なお、単位領域は、一例ではブロックである。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2019-46530号公報
【特許文献2】特開2013-69183号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
一つの実施形態は、リード動作に要する時間を短縮した半導体集積回路、半導体記憶装置、およびメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【0006】
一つの実施形態によれば、半導体集積回路は、制御装置とメモリチップとに接続可能であり、制御装置とメモリチップとの間のデータの転送を実行する。メモリチップは記憶領域を備える。半導体集積回路は、制御装置に接続されるように構成された第1インタフェース回路と、メモリチップに接続されるように構成された第2インタフェース回路と、コントローラと、を備える。コントローラは、第1インタフェース回路を介した制御装置からの要求に基づくメモリチップの記憶領域に対する第1リード動作が実行される前に、第1インタフェース回路を介した制御装置からの要求とは独立して記憶領域に対する第2リード動作を命令する第1コマンドシーケンスを第2インタフェース回路を介してメモリチップに転送する、ように構成される。
【図面の簡単な説明】
【0007】
【
図1】実施形態のメモリシステムの構成の一例を示す模式的な図。
【
図2】実施形態のメモリチップの構成の一例を示す模式的な図。
【
図3】実施形態のブロックの回路構成を示す模式的な図。
【
図5】実施形態のメモリセルの取り得るしきい値電圧の分布の例を示す模式的な図。
【
図6】実施形態のメモリセルが取り得るしきい値電圧の別の一例を示す図である。
【
図7】センス動作時におけるワード線、およびNANDストリングのチャネルにおける波形の一例を示す図。
【
図8】実施形態のメモリコントローラのハードウェア構成の一例を示す図。
【
図9】実施形態の半導体記憶装置とブリッジチップの構成の一例を示す図。
【
図10】実施形態のブリッジチップがメモリコントローラから受信するアドレスのビット列の一例を示す模式的な図。
【
図11】実施形態のブリッジチップによるアクセス履歴情報を管理する動作の一例を示すフローチャート。
【
図12】実施形態のブリッジチップによる単位リードコマンドシーケンスを処理する一連の動作を示すフローチャート。
【
図13】実施形態のダミーリードコマンドシーケンスの一例を示す模式的な図。
【
図14】実施形態の複数の半導体記憶装置における動作の時間的な遷移の一例を示すタイミングチャート。
【発明を実施するための形態】
【0008】
以下に添付図面を参照して、実施形態の半導体装置、半導体記憶装置、およびメモリシステムを詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
【0009】
(実施形態)
図1は、実施形態のメモリシステムSYSの構成の一例を示す模式的な図である。
【0010】
メモリシステムSYSは、通信路3を介してホストHSに接続可能である。ホストHSはコンピュータである。コンピュータは、例えば、パーソナルコンピュータ、ポータブルコンピュータ、サーバ、または、携帯通信機器を含む。メモリシステムSYSは、ホストHSの外部記憶装置として機能する。
【0011】
メモリシステムSYSは、メモリコントローラMCおよび複数の半導体記憶装置1を含む。メモリコントローラMCは、通信路3を介してホストHSに接続される。メモリシステムSYSは、複数の半導体記憶装置1の一例として、4個の半導体記憶装置1a,1b,1c,1dを備える。
【0012】
各半導体記憶装置1は、ブリッジチップBCおよび複数のメモリチップCPを備える。ここでは各半導体記憶装置1は、複数のメモリチップCPの一例として、4個のメモリチップCP0-0,CP0-1,CP1-0,CP1-1を備える。なお、ブリッジチップBCは半導体集積回路の一例である。
【0013】
各半導体記憶装置1は、4個のメモリチップCP0-0,CP0-1,CP1-0,CP1-1が積層されたMCP(Multi Chip Package)として実装され得る。各半導体記憶装置1がMCPとして実装される場合、各半導体記憶装置1では、ブリッジチップBCおよび4個のメモリチップCP0-0,CP0-1,CP1-0,CP1-1の周囲が、モールド樹脂で封止されていてもよい。
【0014】
各メモリチップCPには、半導体記憶装置1内でユニークな識別番号であるLUN(Logical Unit Number)が与えられている。また、各半導体記憶装置1には、メモリシステムSYS内でユニークな識別番号である拡張LUNが与えられている。
図1に示す例では、半導体記憶装置1aには拡張LUN0、半導体記憶装置1bには拡張LUN1、半導体記憶装置1cには拡張LUN2、半導体記憶装置1dには拡張LUN3が与えられている。また、各半導体記憶装置1において、メモリチップCP0-0にはLUN0、メモリチップCP0-1にはLUN1、メモリチップCP1-0にはLUN2、メモリチップCP1-1にはLUN3が与えられている。
【0015】
メモリシステムSYS内においては、4個の半導体記憶装置1はメモリコントローラMCに所定のバスを介して接続される。本明細書においては、このバスは、4つの半導体記憶装置1のそれぞれが備えるブリッジチップBCから見てホストHS側にあるという意味で、ホストチャネルHCHと表記する。実施形態では、4個の半導体記憶装置1は、ホストチャネルHCHに共通接続されている。
【0016】
各半導体記憶装置1においては、4個のメモリチップCPは、複数の所定のバスを介してブリッジチップBCに接続される。本明細書においては、これらの複数のバスのそれぞれは、ブリッジチップBCから見てメモリチップCP側にあるという意味で、メモリチャネルMCHと表記する。実施形態では、各半導体記憶装置1は、2個のメモリチャネルMCH0,MCH1を備える。そして、メモリチップCP0-0,CP0-1はメモリチャネルMCH0に共通接続されており、メモリチップCP1-0,CP1-1はメモリチャネルMCH1に共通接続されている。
【0017】
なお、4個の半導体記憶装置1が備える各メモリチップCPがNAND型フラッシュメモリである場合、ホストチャネルHCHおよびメモリチャネルMCHの規格は、例えば、トグルDDR(Double Data Rate)規格である。以降では、4個の半導体記憶装置1が備える各メモリチップCPはNAND型フラッシュメモリであり、ホストチャネルHCHおよびメモリチャネルMCHの規格はトグルDDR規格であることとして説明する。
【0018】
図2は、実施形態のメモリチップCPの構成の一例を示す模式的な図である。図示するようにメモリチップCPは、周辺回路210およびメモリセルアレイ211を備える。
【0019】
メモリセルアレイ211は、各々が複数の不揮発性メモリセルトランジスタの集合である複数のブロックBLK(BLK0、BLK1、…)を備える。ブロックBLKの各々は、それぞれがワード線およびビット線に関連付けられたメモリセルトランジスタの集合である複数のストリングユニットSU(SU0、SU1、…)を備える。ストリングユニットSUの各々は、メモリセルトランジスタが直列接続された複数のNANDストリング213を備える。ストリングユニットSU内のNANDストリング213の数は任意である。
【0020】
周辺回路210は、センスアンプ214を備える。センスアンプ214は、一時的にデータの格納が可能なデータラッチ212を備える。周辺回路210は、データラッチ212に格納されたデータをセンスアンプ214を介してメモリセルアレイ211に転送する動作であるプログラム動作、センスアンプ214を介してメモリセルアレイ211からデータラッチ212にデータを転送する動作であるセンス動作、およびメモリセルアレイに格納されたデータをイレースするイレース動作を実行する。周辺回路210は、これらの動作を実行するための構成として、センスアンプ214のほかに、ロウデコーダ、カラムデコーダ、および電圧発生回路を含む。
【0021】
図3は、実施形態のブロックBLKの回路構成を示す模式的な図である。なお、各ブロックBLKは、同一の構成を有している。ブロックBLKは、例えば4つのストリングユニットSU0~SU3を有する。各ストリングユニットSUは、複数のNANDストリング213を含む。
【0022】
NANDストリング213の各々は、例えば64個のメモリセルトランジスタMT(MT0~MT63)および選択トランジスタST1、ST2を含んでいる。メモリセルトランジスタMTは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。そして64個のメモリセルトランジスタMT(MT0~MT63)は、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に直列接続されている。なお、メモリセルトランジスタMTは、電荷蓄積層に絶縁膜を用いたMONOS型であってもよいし、電荷蓄積層に導電膜を用いたFG型であってもよい。さらに、NANDストリング213内のメモリセルトランジスタMTの個数は64個に限定されない。
【0023】
ストリングユニットSU0~SU3の各々における選択トランジスタST1のゲートは、それぞれ選択ゲート線SGD0~SGD3に接続される。これに対してストリングユニットSU0~SU3の各々における選択トランジスタST2のゲートは、例えば選択ゲート線SGSに共通接続される。ストリングユニットSU0~SU3の各々における選択トランジスタST2のゲートは、ストリングユニットSU毎に異なる選択ゲート線に接続されてもよい。同一のブロックBLK内にあるメモリセルトランジスタMT0~MT63の制御ゲートは、それぞれワード線WL0~WL63に共通接続される。
【0024】
ストリングユニットSU内にある各NANDストリング213の選択トランジスタST1のドレインは、それぞれ異なるビット線BL(BL0~BL(L-1)、但しLは2以上の自然数)に接続される。また、ビット線BLは、複数のブロックBLK間で各ストリングユニットSU内にある1つのNANDストリング213を共通に接続する。更に、各選択トランジスタST2のソースは、ソース線SLに共通に接続されている。
【0025】
つまりストリングユニットSUは、異なるビット線BLに接続され、且つ同一の選択ゲート線SGDに接続されたNANDストリング213の集合である。またブロックBLKは、ワード線WLを共通にする複数のストリングユニットSUの集合である。そしてメモリセルアレイ211は、ビット線BLを共通にする複数のブロックBLKの集合である。
【0026】
周辺回路210によるプログラム動作およびセンス動作は、1つのストリングユニットSUにおける1つのワード線WLに接続されたメモリセルトランジスタMTに対して、一括して実行され得る。1つのストリングユニットSUにおける1つのワード線WLに対してプログラム動作またはリード動作が実行され得るデータの集まりを「ページ」と表記する。
【0027】
周辺回路210によるイレース動作は、ブロックBLK単位で実行される。即ち、1つのブロックBLKに格納された全てのデータは、一括にイレースされる。
【0028】
図4は、実施形態のブロックBLKの一部領域の断面図である。本図に示されるように、p型のウェル領域(半導体基板)20上に、複数のNANDストリング213が形成されている。すなわち、ウェル領域20上には、選択ゲート線SGSとして機能する例えば4層の配線層21、ワード線WL0~WL63として機能する64層の配線層22、および選択ゲート線SGDとして機能する例えば4層の配線層23が、順次積層されている。積層された配線層間には、図示せぬ絶縁膜が形成されている。
【0029】
そして、これらの配線層23、22、21を貫通してウェル領域20に達するピラー状の導電体24が形成されている。導電体24の側面には、ゲート絶縁膜25、電荷蓄積層(絶縁膜または導電膜)26、およびブロック絶縁膜27が順次形成され、これらによってメモリセルトランジスタMT、並びに選択トランジスタST1およびST2が形成されている。導電体24は、NANDストリング213の電流経路として機能し、各トランジスタのチャネルが形成される領域となる。そして導電体24の上端は、ビット線BLとして機能する金属配線層28に接続される。
【0030】
ウェル領域20の表面領域内には、n+型不純物拡散層29が形成されている。この拡散層29上にはコンタクトプラグ30が形成され、コンタクトプラグ30は、ソース線SLとして機能する金属配線層31に接続される。更に、ウェル領域20の表面領域内には、p+型不純物拡散層32が形成されている。この拡散層32上にはコンタクトプラグ33が形成され、コンタクトプラグ33は、ウェル配線CPWELLとして機能する金属配線層34に接続される。ウェル配線CPWELLは、ウェル領域20を介して導電体24に電位を印加するための配線である。
【0031】
以上の構成が、半導体基板に平行な第2方向D2に複数配列されており、第2方向D2に並ぶ複数のNANDストリング213の集合によってストリングユニットSUが形成される。
【0032】
なお、
図2~4に示された構成は一例である。メモリセルアレイ211の構成は、上記した構成に制限されない。例えば、メモリセルアレイ211は、NANDストリング213が2次元的に配列された構成を有していてもよい。
【0033】
以降では、メモリセルトランジスタMTを、単に、メモリセルと表記する。
【0034】
図5は、実施形態の複数のメモリセルが取り得るしきい値電圧の分布の例を示す模式的な図である。
図5に含まれるグラフにおいて、縦軸は、メモリセルの数を示しており、横軸は、しきい値電圧(Vth)を示している。ここでは一例として、各メモリセルにデータを保持する方式として、TLC(Triple Level Cell)と呼ばれる方式が適用されていることとしている。TLCの方式によれば、各メモリセルは、3ビットのデータを保持することができる。
【0035】
TLCの場合、しきい値電圧の取り得る範囲は、8つの範囲に区分される。この8つの範囲を、しきい値電圧が低いほうから順に、“Er”ステート、“A”ステート、“B”ステート、“C”ステート、“D”ステート、“E”ステート、“F”ステート、および“G”ステートと呼ぶことにする。各メモリセルのしきい値電圧は、プログラム動作の際に、周辺回路210によって、“Er”ステート、“A”ステート、“B”ステート、“C”ステート、“D”ステート、“E”ステート、“F”ステート、および“G”ステート、の何れかに属するように、制御される。その結果、しきい値電圧に対するメモリセルの数をプロットした場合、メモリセルのしきい値電圧の分布は、理想的には、
図5に示されるように、それぞれ異なるステートに属する8つのローブを形成する。
【0036】
8つのステートのそれぞれは、それぞれ異なる3ビットのデータに対応する。一例では、“Er”ステートは“111”に対応し、“A”ステートは“110”に対応し、“B”ステートは“100”に対応し、“C”ステートは“000”に対応し、“D”ステートは“010”に対応し、“E”ステートは“011”に対応し、“F”ステートは“001”に対応し、“G”ステートは“101”に対応する。このように、各メモリセルは、そのしきい値電圧が属するステートに対応したデータを保持することができる。
【0037】
例えば、1つのメモリセルに保持される3ビットのデータのうち、先頭の桁はアッパービット、中央の桁はミドルビット、末尾の桁はロアービットと称され得る。各ワード線に書き込まれるロアービットの集合は、ロアーページと称され得る。各ワード線に書き込まれるミドルビットの集合は、ミドルページと称され得る。各ワード線に書き込まれるアッパービットの集合は、アッパーページと称され得る。1つのメモリセルに保持される3ビットのデータのうちの各桁の名称は上記に限定されない。また、各桁の集合によって構成されるページの名称は上記に限定されない。
【0038】
しきい値電圧は、イレース動作によって“Er”ステートまで低下せしめられる。また、しきい値電圧は、プログラム動作によって、“Er”ステートに維持されるか、または“A”ステート、“B”ステート、“C”ステート、“D”ステート、“E”ステート、“F”ステート、および“G”ステート、の何れかに至るまで、上昇せしめられる。
【0039】
具体的には、プログラム動作においては、周辺回路210は、カラムアドレスに対応したビット線BLを選択する。周辺回路210は、選択されたビット線BLの電位をゼロとする。周辺回路210は、ロウアドレスに対応したワード線WLを選択し、選択されたワード線WLに、プログラミングパルスを印加する。すると、選択されたビット線BLおよび選択されたワード線WLとの交点に位置するメモリセルの電荷蓄積層に電子が注入され、その結果、メモリセルのしきい値電圧が上昇する。周辺回路210は、所定のタイミングでしきい値電圧に対応するデータの判定を行うことで、しきい値電圧がライトデータに対応した目標のステートに到達したか否かを確認する。周辺回路210は、メモリセルのしきい値電圧が目標のステートに到達するまで、プログラムパルスの印加を継続する。
【0040】
以降、プログラム動作によってあるステートにしきい値電圧が設定されたメモリセルを、そのステートに属するメモリセル、と表記することがある。
【0041】
隣接する2つのステート間には、データを判定するための判定電圧が設定される。例えば、
図5に例示されるように、“Er”ステートと“A”ステートとの間に判定電圧VAが設定され、“A”ステートと“B”ステートとの間に判定電圧VBが設定され、“B”ステートと“C”ステートとの間に判定電圧VCが設定され、“C”ステートと“D”ステートとの間に判定電圧VDが設定され、“D”ステートと“E”ステートとの間に判定電圧VEが設定され、“E”ステートと“F”ステートとの間に判定電圧VFが設定され、“F”ステートと“G”ステートとの間に判定電圧VGが設定される。
【0042】
センス動作においては、周辺回路210は、複数種類の判定電圧を選択ワード線WLに順次印加して、センスアンプ214は、各判定電圧が印加されているときにメモリセルが導通状態(換言するとオン状態)および非導通状態(換言するとオフ状態)の何れの状態にあるかをメモリセル毎に判定する。このとき、周辺回路210は、非選択ワード線WLには、非選択ワード線WLに接続されたメモリセルをそのメモリセルが属するステートに関わらず導通状態にするために、“G”ステートの範囲よりも高い電圧VREADを印加する。センスアンプ214は、印加した判定電圧毎に得られた判定結果を用いた論理演算によって、メモリセルが属するステートに対応付けられたデータを判定する。
【0043】
なお、メモリチップCPの外部、例えばメモリコントローラMCまたはブリッジチップBC、による制御によってメモリセルアレイ211にデータが転送される動作を、ライト動作と表記する。ライト動作は、外部からデータラッチ212にライトデータを転送するデータイン動作と、データラッチ212に格納されたライトデータをメモリセルアレイ211にライトするプログラム動作と、を含む。
【0044】
また、メモリチップCPに、メモリセルアレイ211に格納されたデータをメモリチップCPの外部、例えばメモリコントローラMCまたはブリッジチップBC、による制御によって出力させる動作を、リード動作と表記する。リード動作は、メモリセルアレイ211からデータラッチ212にリードデータを転送するセンス動作と、データラッチ212から外部にリードデータを出力するデータアウトプット動作と、を含む。
【0045】
図5では、メモリセルが、互いに重ならない8つのローブを形成する場合を説明した。しかしながら、メモリセルのしきい値電圧は、種々の要因で変化し得る。例えば、メモリセルのしきい値電圧は、プログラム動作の完了時からの経過時間に応じて変化する傾向がある。メモリセルのしきい値電圧の変化の速度は、プログラム動作の完了の直後が最も早く、経過時間とともに減速する。イレース動作とプログラム動作とのサイクルの実行回数が多いメモリセルほど、しきい値電圧が変化しやすい。また、メモリセルのしきい値電圧の変化は、プログラム動作の完了時からの経過時間だけでなく、当該メモリセルに対するセンス動作、隣接するメモリセルに対するセンス動作、アクセスの際の温度、などによっても影響され得る。メモリセルのしきい値電圧が変化し得るので、現実的には、センス動作時において、隣り合う2つのローブの一部が互いに重なり合った状態になっている場合がある。
【0046】
図6は、実施形態のメモリセルが取り得るしきい値電圧の別の一例を示す図である。ここでは、説明を簡単にするために、“A”ステートおよび“B”ステートのいずれかに属するメモリセルの分布を図示している。実線は、“A”ステートおよび“B”ステートのいずれかに属するメモリセルの分布を示している。破線は、“A”ステートのローブを示し、一点鎖線は、“B”ステートのローブを示している。本図の例では、“A”ステートのローブの裾野と“B”ステートのローブの裾野とが重なり合っている。言い換えると、“A”ステートに属するメモリセルのしきい値電圧の最大値が判定電圧VBを超えており、かつ、“B”ステートに属するメモリセルのしきい値電圧の最小値が判定電圧VBを下回っている。“A”ステートに属し、かつ、しきい値電圧が判定電圧VBよりも大きいメモリセルがリードされた場合、そのメモリセルは“B”ステートに属するとして認識される。即ち、“110”としてプログラムされたデータが“100”としてリードされる。“B”ステートに属し、かつ、しきい値電圧が判定電圧VBよりも小さいメモリセルがリードされた場合、そのメモリセルは“A”ステートに属するとして認識される。即ち、“100”としてプログラムされたデータが“110”としてリードされる。
【0047】
このように、センス動作によってリードされたデータは、しきい値電圧の変化によって、プログラム動作の時点での値から変化する場合がある。データおよびしきい値電圧の変化に対しては、メモリコントローラMCは、エラー訂正と、判定電圧のシフトと、によって対応する。具体的には、メモリコントローラMCでは、後述するように、リードデータに対してエラー訂正を実行する。エラー訂正が失敗した場合には、メモリコントローラMCは、判定電圧VA,VB,VC,VD,VE,VF,VGの値のセットのうちの一部または全部を変えてリード動作を再び実行する。なお、エラー訂正が失敗するとは、変化後のデータから変化前のデータを復元できないことをいう。具体的には、エラー訂正が失敗するとは、リードデータに含まれるエラービットが訂正できないことをいう。エラー訂正が成功するとは、リードデータに含まれる全てのエラービットが訂正されたことをいう。メモリコントローラMCは、エラー訂正が成功するか、またはリード動作が繰り返し実行された回数が所定回数に至るまで、リトライリードする。つまり、メモリコントローラMCは、エラー訂正が成功するか、またはリード動作が繰り返し実行された回数が所定回数に至るまで、判定電圧の値のセットのうちの一部または全部を変化させながらリード動作を繰り返す。判定電圧の値のセットのうちの一部または全部を変化させてリードするリード動作を、シフトリード動作と表記する。
【0048】
メモリシステムSYSでは、パトロールリード動作が実行される。パトロールリード動作は、ホストHSからのリード要求に応じたリード動作の際にエラー訂正が成功する確率を高めるために、エラー訂正が成功する判定電圧の値のセットを予め特定することを目的として順次実行されるリード動作である。パトロールリード動作は、ホストHSからの要求に関係なくメモリチップCPに対して行われる。メモリコントローラMCは、所定の時間的周期でパトロールリード動作を実行する。
【0049】
パトロールリード動作では、データが格納された1以上の単位領域に対して順次、リード動作が行われる。本明細書において、単位領域は、判定電圧の値のセットが共通に使用される記憶領域の単位である。ここでは一例として、単位領域はブロックBLKであることとする。
【0050】
メモリコントローラMCは、パトロールリード動作では、エラー訂正が成功するための判定電圧の値のセットをブロックBLK毎に学習する。メモリコントローラMCは、ホストHSからの要求に応じてリード動作を実行する際には、学習によって得た判定電圧の値のセットを使用する。
【0051】
以降では、ホストHSから要求されたデータをリードするリード動作を、ホストリード動作と表記する。また、パトロールリード動作の一環としてひとつのブロックBLKに対して実行されるリード動作を、単位リード動作と表記する。なお、単位リード動作は、第1リード動作の一例である。
【0052】
なお、ブロックBLKは、オープンブロック、アクティブブロック、およびフリーブロックを含む複数の状態をとり得る。
【0053】
オープンブロックは、ライト動作が完了していないブロックBLKである。即ち、オープンブロックは、データがライトされ得る領域を残した状態にあるブロックBLKである。
【0054】
アクティブブロックは、ライト動作が完了したブロックBLKである。アクティブブロックは、まだ再利用できないブロックBLKでもある。ライト動作が完了したブロックBLKのうちの、有効なデータが格納されているブロックBLKは、アクティブブロックとして管理される。再利用とは、フリーブロックを経由してオープンブロックに遷移させることをいう。
【0055】
フリーブロックは、有効なデータが格納されていないブロックBLKである。フリーブロックは、再利用可能なブロックBLKである。
【0056】
例えば、オープンブロックに1ブロックBLK分のデータがライトされた後、そのオープンブロックはアクティブブロックに遷移する。アクティブブロックに格納されているデータの状態は、有効な状態と無効な状態とのうちの何れかである。
【0057】
アクティブブロックに或るデータ(第1のデータと表記する)が格納されている状態で、第1のデータが送られてきた際に指定された論理アドレスと同一値の論理アドレスが指定されて第2のデータがホストHSから送られてきた場合、メモリコントローラMCは、オープンブロックまたはフリーブロックの空のページに第2のデータをライトし、アクティブブロックに格納されている第1のデータを無効なデータとして管理する。よって、アクティブブロックに格納されているデータには、有効なデータと無効なデータとが混在し得る。
【0058】
アクティブブロックは、転記処理によってフリーブロックに遷移する。転記処理は、アクティブブロックに格納されている有効なデータをオープンブロックまたはフリーブロックに転記(transcribe)して、転記元のアクティブブロックに格納されている全てのデータを無効化する処理をいう。これによって、転記元のアクティブブロックはフリーブロックに遷移する。なお、転記処理は、ガベージコレクションまたはコンパクションとも称される。
【0059】
フリーブロックは、格納されているデータ(すなわち無効なデータ)がイレースされた後、オープンブロックに遷移する。
【0060】
つまり、或るブロックBLKにデータが格納されている場合、そのデータは有効なデータおよび無効なデータの何れかである。
【0061】
実施形態では一例として、データが格納されているブロックBLKがある場合、そのブロックBLKに有効なデータが格納されているか否かに関わらず、そのブロックBLKはパトロールリード動作の対象とされることとする。なお、無効なデータしか格納されていないブロックBLK(例えばフリーブロック)はパトロールリード動作の対象から外されてもよい。
【0062】
NANDストリング213に含まれるメモリセルトランジスタMTのチャネルは、例えば
図4に示すように導電体24を共有した構造となっている。このような構造のNAND型フラッシュメモリでは、例えば
図7に示すような現象が生じることがある。
図7は、センス動作時におけるワード線WL、及びNANDストリング213のチャネルにおける波形の一例を示している。
【0063】
図7に示すように、センス動作が実行されると周辺回路210は、センス動作が実行されるワード線WLを含むブロックBLK(対象のブロックBLKと表記する)の非選択のワード線WLに電圧VREADを印加する。そしてリードデータが確定すると、周辺回路210は、非選択のワード線WLの電圧を接地電圧VSSまで下降させる。このとき、ワード線WLの電圧がメモリセルのしきい値電圧以下になると、メモリセルがオフ状態となる。そして、さらにワード線WLの電圧が下降すると、NANDストリング213のチャネル電位が、ワード線WLとのカップリングにより接地電圧から負の電圧に下降する。センス動作後には、対象のブロックBLKが非選択とされる結果、ワード線WLがフローティング状態となる。この状態において、負の電位のチャネル電位が時間経過に伴い接地電圧に戻ると、ワード線WLの電圧が、NANDストリング213のチャネルとのカップリングにより、例えば4V程度まで上昇する。この現象のことを、
図7では“Creep up”と示している。
【0064】
Creep upによってワード線WLの電圧が上昇した状態のブロックBLKでは、当該ブロックBLKにおけるメモリセルの制御ゲート-チャネル間に電位差が生じ、センス動作後の時間経過(例えば、10~100ms)によって各メモリセルのしきい値電圧がシフトすることがある。
【0065】
そして、Creep upにより上昇したワード線WLの電圧は、
図7に示すように時間経過に伴い接地電圧に戻る。Creep upによるワード線WLの電圧の変動が収まってからさらに時間が経過する(例えば、数分間から数時間程度)と、上昇したメモリセルのしきい値電圧は元の状態に戻る。このようにメモリセルトランジスタMTは、しきい値電圧が初期状態である第1状態と、しきい値電圧がCreep upの影響を受けてシフトしている第2状態との2つの状態を取り得る。これに対して判定電圧は、例えば第2状態に最適化して設定されるため、Creep upが生じ得るNAND型フラッシュメモリでは、リード動作の際にはメモリセルを第2状態に維持することが好ましい。
【0066】
そこで、メモリシステムSYSでは、パトロールリード動作の対象の1以上のブロックBLKに対し、ダミーリード動作が実行される。なお、ダミーリード動作は、少なくともセンス動作を含む。ダミーリード動作は、データアウトプット動作を含まなくてもよい。つまり、ダミーリード動作はセンス動作のみによって構成されてもよい。ここでは一例として、ダミーリード動作はデータアウトプット動作を含まず、センス動作によって構成されることとする。なお、ダミーリード動作は第2リード動作の一例である。
【0067】
例えば第1状態のメモリセルを含むブロックBLKに対してダミーリード動作が実行される。すると、ダミーリード動作が実行されたブロックBLKにおいてCreep upが発生し、メモリセルが第1状態から第2状態に移行する。そして、時間経過によりメモリセルが第2状態から第1状態に移行する前に、そのブロックBLKに対する単位リード動作が実行される。
【0068】
図1に示したように4個の半導体記憶装置1がホストチャネルHCHに共通接続されている場合、メモリコントローラMCは、4個の半導体記憶装置1のそれぞれに対して時間的にシリアルにパトロールリード動作(より正確にはブロックBLK毎の単位リード動作)を行う必要がある。
【0069】
ここで、実施形態と比較される技術について説明する。実施形態と比較される技術を比較例と表記する。比較例によれば、メモリコントローラが各半導体記憶装置に対してパトロールリード動作を行う直前に、メモリコントローラは、各半導体記憶装置のそれぞれに対し、パトロールリード動作の対象とされるブロックBLK毎に、ダミーリード動作を命令する。そのような場合、メモリコントローラは、単位リード動作だけでなくパトロールリード動作の対象とされる全てのブロックBLKに対するダミーリード動作をも時間的にシリアルに命令する必要がある。よって、メモリコントローラによる命令を含むパトロールリード動作、より正確には事前のダミーリード動作およびパトロールリード動作、に多くの時間を要する。
【0070】
そこで、実施形態では、ブリッジチップBCは、ダミーリード動作の命令をメモリコントローラMCから受信することなく、ダミーリード動作の命令を生成してメモリチップCPに転送するように構成される。この構成により、4個の半導体記憶装置1は時間的に並列にダミーリード動作を制御したり、4個の半導体記憶装置1のそれぞれは、ホストチャネルHCHが他の半導体記憶装置1を介したデータ転送に占有されていたとしてもメモリチップCPにダミーリード動作を命令したりすることが可能となる。従って、パトロールリード動作、より正確には事前のダミーリード動作およびパトロールリード動作、に要する時間を短縮することが可能となる。ダミーリード動作の命令を生成するためのブリッジチップBCの構成の詳細は後述する。
【0071】
図8は、実施形態のメモリコントローラMCのハードウェア構成の一例を示す図である。
【0072】
メモリコントローラMCは、ホストI/F(Interface)コントローラ41、CPU(Central Processing Unit)42、RAM(Random Access Memory)43、ECC(Error Checking and Correcting circuit)44、タイマ45、およびNAND I/F(Interface)コントローラ46を備える。
【0073】
メモリコントローラMCは、例えばSoC(System-On-a-Chip)として構成され得る。メモリコントローラMCは、複数のチップによって構成されてもよい。メモリコントローラMCは、FPGA(Field-Programmable Gate Array)またはASIC(Application Specific Integrated Circuit)で構成されてもよい。メモリコントローラMCの各機能は、ソフトウェア、ハードウェア、またはこれらの組み合わせによって実現され得る。RAM43は、メモリコントローラMCの外に配置されてもよい。
【0074】
RAM43は、バッファ、あるいはCPU42のワークエリアとして使用されるメモリである。RAM43を構成するメモリの種類は、特定の種類に限定されない。例えば、RAM43は、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、またはこれらの組み合わせによって構成される。
【0075】
ホストI/Fコントローラ41は、ホストHSとの間の通信インタフェースの制御を実行する。ホストI/Fコントローラ41は、CPU42による制御の下で、ホストHSに対する通信を実行する。NAND I/Fコントローラ46は、CPU42による制御の下で、1以上のメモリチップCPに対する通信を実行する。
【0076】
なお、実施形態では、NAND I/Fコントローラ46と複数のメモリチップCPとの間にブリッジチップBCが介在する。ブリッジチップBCは、NAND I/Fコントローラ46から受信する電気信号(例えばコマンド、アドレス、またはデータ)を自身に接続された何れかのメモリチップCPにそのまままたは加工して転送したり、自身に接続された何れかのメモリチップCPから受信した電気信号(例えばデータ)をNAND I/Fコントローラ46に転送したりする。NAND I/Fコントローラ46は、仮に1以上のメモリチップCPがブリッジチップBCを介さずにNAND I/Fコントローラ46に接続されたとしても当該1以上のメモリチップCPに対する通信を実行可能に構成されている。
【0077】
ECC44は、半導体記憶装置1に転送されるデータに対して誤り訂正符号を用いた符号化を施す。また、ECC44は、半導体記憶装置1から受信したデータに対し、復号化を実行し、それによって当該データに含まれるビットエラーの検出と訂正とを実施する。
【0078】
ECC44が使用する符号化の方式は、特定の方式に限定されない。一例では、符号化の方式として、LDPC(Low Density Parity Check)が採用され得る。
【0079】
タイマ45は、時間の経過を計測する。なお、タイマ45が省略されて、時間の経過の計測は、CPU42によって実行されてもよい。
【0080】
CPU42は、ホストI/Fコントローラ41、RAM43、ECC44、タイマ45、およびNAND I/Fコントローラ46を制御する。CPU42は、ファームウェアプログラムを実行することによって、上記した各種構成要素を用いたメモリシステムSYSの制御を実現する。
【0081】
特に、実施形態では、CPU42は、パトロールリード動作の制御を実行する。CPU42は、パトロールリード動作の開始のタイミングが到来したか否かをタイマ45を用いて判定する。より具体的には、CPU42は、タイマ45の値が所定値(第1値と表記する)に至った場合、パトロールリード動作の開始のタイミングが到来したと判定して、パトロールリード動作を開始する。パトロールリード動作が完了すると、タイマ45の値をリセットしてタイマ45による時間の経過の計測をリスタートする。CPU42は、この動作を繰り返すことによって、所定時間間隔のパトロールリード動作を実現する。
【0082】
図9は、実施形態の半導体記憶装置1とブリッジチップBCの構成の一例を示す図である。なお、半導体記憶装置1a,1b,1c,1dは、共通した構成を備える。ここでは半導体記憶装置1a,1b,1c,1dの代表として、半導体記憶装置1aの構成を説明する。また、半導体記憶装置1a,1b,1c,1dは、ホストチャネルHCHに共通接続されるが、図の簡略化のため、半導体記憶装置1b,1c,1dの図示が省略されている。
【0083】
ブリッジチップBCは、コントローラ10と、第1インタフェース11と、2つの第2インタフェース12と、バッファメモリ13と、フラッシュメモリ14と、を備える。
【0084】
第1インタフェース11は、メモリコントローラMC(より正確にはメモリコントローラMCが備えるNAND I/Fコントローラ46)に対してホストチャネルHCHを介した電気信号の送受信を行うPHY回路である。
【0085】
ホストチャネルHCHは、チップイネーブル信号CEnを転送する信号線、コマンドラッチイネーブル信号CLEを転送する信号線、アドレスラッチ信号ALEを転送する信号線、ライトイネーブル信号WEnを転送する信号線、リードイネーブル信号RE/REnを転送する信号線、データストローブ信号DQS/DQSnを転送する信号線、所定のビット幅(ここでは一例として8ビットの幅)を有するデータ信号DQ[7:0]を転送する信号線、レディービジー信号R/Bn_1を転送する信号線、およびレディービジー信号R/Bn_2を転送する信号線を含む。なお、信号を表す符号の末尾に記された「n」は、負論理で動作せしめられる信号であることを表す。各信号が負論理で動作せしめられるか正論理で動作せしめられるかは任意に設計され得る。
【0086】
チップイネーブル信号CEnは、アクセスの対象のメモリチップCPをイネーブル状態とするための信号である。データストローブ信号DQS/DQSnは、データ信号DQ[7:0]で転送されるデータを相手装置に取り込むように指示する信号である。データストローブ信号DQS/DQSnは、データストローブ信号DQSとデータストローブ信号DQSnとによって構成される差動信号である。コマンドラッチイネーブル信号CLEは、データ信号DQ[7:0]がコマンドであることを示す信号である。アドレスラッチイネーブル信号ALEは、データ信号DQ[7:0]がアドレスであることを示す信号である。ライトイネーブル信号WEnは、データ信号DQ[7:0]で転送されるコマンドまたはアドレスを取り込むように相手装置に指示する信号である。リードイネーブル信号RE/REnは、データ信号DQ[7:0]の出力を相手装置に指示する信号である。リードイネーブル信号RE/REnは、リードイネーブル信号REおよびリードイネーブル信号REnによって構成される差動信号である。レディービジー信号R/Bn_1およびレディービジー信号R/Bn_2は、コマンドの受信を待機している状態であるレディー状態であるかコマンドを受信しても実行できない状態であるビジー状態であるかを示す信号である。なお、ホストチャネルHCHが含むレディービジー信号R/Bnを転送する信号線の構成は上記された例に限定されない。例えば、ホストチャネルHCHは、レディービジー信号R/Bnに関しては、メモリチャネルMCH0にかかるレディービジー信号R/Bnと、メモリチャネルMCH1にかかるレディービジー信号R/Bnと、からワイヤードOR接続などによって生成された一つのレディービジー信号R/Bnを転送するための1つの信号線を備えていてもよい。
【0087】
メモリチャネルMCH0,MCH1のそれぞれは、ホストチャネルHCHの信号群と同種の信号群を送受信できる。即ち、メモリチャネルMCH0,MCH1のそれぞれは、チップイネーブル信号CEnを転送する信号線、コマンドラッチイネーブル信号CLEを転送する信号線、アドレスラッチ信号ALEを転送する信号線、ライトイネーブル信号WEnを転送する信号線、リードイネーブル信号RE/REnを転送する信号線、データストローブ信号DQS/DQSnを転送する信号線、データ信号DQ[7:0]を転送する信号線群、およびレディービジー信号R/Bnを転送する信号線、を備えている。
【0088】
2つの第2インタフェース12のうちの第2インタフェース12-0は、2個のメモリチップCP0-0,CP0-1に対してメモリチャネルMCH0を介した電気信号の送受信を行うPHY回路である。2つの第2インタフェース12のうちの第2インタフェース12-1は、2個のメモリチップCP1-0,CP1-1に対してメモリチャネルMCH1を介した電気信号の送受信を行うPHY回路である。
【0089】
バッファメモリ13は、第1インタフェース11と、2つの第2インタフェース12と、の間でコントローラ10によって転送される情報(コマンド、アドレス、およびデータを含む)を一時的に蓄える領域として使用される。
【0090】
フラッシュメモリ14は、管理情報が不揮発に格納される不揮発性メモリである。管理情報は、ここでは、アクセス履歴情報120を含む。アクセス履歴情報120は、4個のメモリチップCP0-0,CP0-1,CP1-0,CP1-1が備える複数の単位領域のうちのパトロールリード動作の対象とされる単位領域を示すアドレス情報が記録される。
【0091】
前述したように、ここでは一例として、データが格納されたブロックBLKが、そのデータが有効であるか無効であるかに関わらず、パトロールリード動作の対象とされる。そのため、或るブロックBLKに対してライト動作が実行された場合、そのブロックBLKを示すアドレス情報がアクセス履歴情報120に記録される。そして、或るブロックBLKに対してイレース動作が実行された場合、そのブロックBLKを示すアドレス情報がアクセス履歴情報120から削除される。
【0092】
アクセス履歴情報120に対するアドレス情報の記録および削除は、例えば後述するコマンド・アドレスデコーダ110が実行する。コマンド・アドレスデコーダ110は、メモリコントローラMCから受信したコマンドおよびアドレスに基づき、ライト動作が実行されるか否か、イレース動作が実行されるか否か、およびそれらの動作の対象とされるブロックBLKを特定する。そして、コマンド・アドレスデコーダ110は、特定した結果に応じてアクセス履歴情報120に対するアドレス情報の記録または削除を実行する。
【0093】
図10は、実施形態のブリッジチップBCがメモリコントローラMCから受信するアドレスのビット列の一例を示す模式的な図である。ブリッジチップBCは、メモリコントローラMCから、種々の動作を指示するコマンドとともに本図に示すようなアドレスADDのビット列を受信する。アドレスADDのビット列の先頭部分には、カラムアドレスが配置される。カラムアドレスは、何れかのビット線BLを示しており、データラッチ212に格納された1ページ分のデータにおける位置に対応する。カラムアドレスに続いて、ワード線WLの番号(WL#)、ブロックBLKの番号(BLK#)、LUN、および拡張LUNが後続する。ブリッジチップBCに接続された各メモリチップCPが備える各ブロックBLKは、ブロックBLKの番号とLUNとの組み合わせによってユニークに特定可能である。よって、コマンド・アドレスデコーダ110は、メモリコントローラMCから受信したアドレスADDのうちの少なくともブロックBLKの番号とLUNとの組を、ブロックBLKを示すアドレス情報としてアクセス履歴情報120に記録する。なお、アクセス履歴情報120に記録されるアドレス情報は、ブロックBLKの番号とLUNとの他に任意の情報を含んでいてもよい。以降、ブロックBLKを示すアドレス情報をブロックアドレスと表記する。
【0094】
なお、アクセス履歴情報120を含む管理情報が格納されるメモリは、フラッシュメモリ14に限定されず、任意のメモリが採用され得る。アクセス履歴情報120を含む管理情報が格納されるメモリは不揮発性メモリでなくてもよい。アクセス履歴情報120を含む管理情報が格納されるメモリは、コントローラ10に内蔵されてもよい。
【0095】
以降では、コマンドおよびアドレスを含む、1つの動作を命令する1セットの情報を、コマンドシーケンスと表記する。
【0096】
図9に示すように、コントローラ10は、第1インタフェース11と、2つの第2インタフェース12と、の間に配されている。コントローラ10は、バッファメモリ13を使用しながら、第1インタフェース11と、2つの第2インタフェース12と、の間の情報の転送を制御する。
【0097】
コントローラ10は、コマンド・アドレスデコーダ110、転送回路111、タイマ112、およびダミーリード制御回路113を備える。
【0098】
コマンド・アドレスデコーダ110は、メモリコントローラMCからホストチャネルHCHを介して受けたコマンドシーケンスを解析する。コマンド・アドレスデコーダ110は、解析結果に応じて、メモリチップCPに対するコマンドシーケンスを生成することができる。
【0099】
また、コマンド・アドレスデコーダ110は、メモリコントローラMCから受信したコマンドシーケンスに基づいてアクセス履歴情報120の管理を行う。
【0100】
転送回路111は、第1インタフェース11と2つの第2インタフェース12との間で信号の転送を行うパイプラインを含む。
【0101】
NAND I/Fコントローラ46と複数のメモリチップCPとの間にブリッジチップBCが介在することで、ホストチャネルHCHは、1つのメモリチャネルMCHよりも高いレートでデータ転送を行うことが可能とされる。
【0102】
例えば
図1に示した構成に従えば、4個の半導体記憶装置1を同時に動作させ、かつ各半導体記憶装置1では2つのメモリチャネルMCHを同時に使用するケース、換言するとメモリシステムSYSにおいて8個のメモリチャネルMCHを同時に使用するケース、において、メモリチップCPの群に対するデータのスループットが最大になる。そのようなケースを実現するために、ホストチャネルHCHは、1つのメモリチャネルMCHの8倍のレートでデータ転送を行うことが可能とされる。
【0103】
ホストチャネルHCHが1つのメモリチャネルMCHの8倍のレートでデータ転送を行う場合、転送回路111は、第1インタフェース11と2つの第2インタフェース12との間で信号の転送を行うとき、データ転送のレートを変更する。
【0104】
具体的には、転送回路111は、第1インタフェース11から受信した信号を、第1インタフェース11から信号を受信したときの転送クロックの周波数の1/8倍の周波数の転送クロックで2つの第2インタフェース12に転送する。また、転送回路111は、それぞれの第2インタフェース12から受信した信号を、1つの第2インタフェース12から信号を受信したときの転送クロックの周波数の8倍の周波数の転送クロックで第1インタフェース11に転送する。
【0105】
なお、ホストチャネルHCHは、必ずしも1つのメモリチャネルMCHの8倍のレートでデータ転送を行わなくてもよい。ホストチャネルHCHは、同時に使用されるメモリチャネルMCHの数に応じてデータ転送のレートが可変に構成されてもよい。そのような場合、転送回路111は、転送クロックの周波数の逓倍率および分周率が可変に構成されてもよい。
【0106】
タイマ112は、時間の経過を計測する。
【0107】
ダミーリード制御回路113は、パトロールリード動作の対象とされるブロックBLKに対し、パトロールリード動作の前にダミーリード動作を実行する制御を行う。
【0108】
具体的には、ダミーリード制御回路113は、パトロールリード動作の開始のタイミングが到来したか否かをタイマ112を用いて判定する。より具体的には、ダミーリード制御回路113は、タイマ112の値が所定値(第2値と表記する)に至った場合、パトロールリード動作の開始のタイミングが到来したと判定する。なお、例えば第2値は第1値と等しい。タイマ112の値が第2値に至った場合、ダミーリード制御回路113は、パトロールリード動作の対象のブロックBLK毎にダミーリード動作を命令するコマンドシーケンスを生成し、パトロールリード動作の対象のブロックBLKを含むメモリチップCPに転送する。パトロールリード動作の対象のブロックBLKに対するダミーリード動作が完了すると、メモリコントローラMCからの指示に応じたパトロールリード動作が開始される。
【0109】
メモリコントローラMCからの指示に応じたパトロールリード動作が完了すると、ダミーリード制御回路113は、タイマ112の値をリセットしてタイマ112による時間の経過の計測をリスタートする。ダミーリード制御回路113は、この動作を繰り返すことによって、各パトロールリード動作の前のダミーリード動作を実現する。ダミーリード制御回路113がタイマ112に基づいてダミーリード動作を自発的にメモリチップCPに対して指示する構成を備えていることで、コントローラ10は、メモリコントローラMCから受信する要求(例えば後述する単位リードコマンドシーケンス)とは独立してメモリチップCPにダミーリード動作を命令することが可能である。
【0110】
続いて、実施形態のメモリシステムSYSの動作を説明する。
【0111】
各ブリッジチップBCでは、メモリコントローラMCから種々の動作を命令するコマンドシーケンスを受信する。コマンド・アドレスデコーダ110は、受信したコマンドシーケンスに含まれるアドレス(より具体的には例えばアドレスに含まれる拡張LUNの値)に基づき、当該コマンドシーケンスの宛先は自身を具備するブリッジチップBCに接続されたメモリチップCPであるか否かを判定する。コマンドシーケンスの宛先は自身を具備するブリッジチップBCに接続されたメモリチップCPである場合には、コントローラ10は、受信したコマンドシーケンスをそのメモリチップCPに転送する。コマンドシーケンスの宛先は自身を具備するブリッジチップBCに接続されたいずれのメモリチップCPでもない場合、コントローラ10は、当該コマンドシーケンスを転送せずに破棄する。
【0112】
コマンド・アドレスデコーダ110は、自身を具備するブリッジチップBCに接続されたメモリチップCPに転送したコマンドシーケンスのコマンド種別を監視する。そして、コマンド・アドレスデコーダ110は、監視結果に応じてアクセス履歴情報120を管理する。
【0113】
図11は、実施形態のブリッジチップBCによるアクセス履歴情報120を管理する動作の一例を示すフローチャートである。本図に示す動作は、コマンドシーケンスがメモリチップCPに転送される毎に実行される。
【0114】
ブリッジチップBCが自身に接続された何れかのメモリチップCPにコマンドシーケンスを転送すると(S101)、コマンド・アドレスデコーダ110は、転送したコマンドシーケンスはライト動作を命令するコマンドシーケンスであるライトコマンドシーケンスであるか否かを判定する(S102)。転送したコマンドシーケンスはライトコマンドシーケンスである場合(S102:Yes)、コマンド・アドレスデコーダ110は、そのライトコマンドシーケンスに含まれるアドレスのうちのブロックアドレスをアクセス履歴情報120に記録する(S103)。なお、すでに該当のブロックアドレスがアクセス履歴情報120に記録済みである場合には、コマンド・アドレスデコーダ110はS103の処理をスキップする。
【0115】
転送したコマンドシーケンスはライトコマンドシーケンスでない場合(S102:No)、コマンド・アドレスデコーダ110は、転送したコマンドシーケンスはイレース動作を命令するイレースコマンドシーケンスであるか否かを判定する(S104)。転送したコマンドシーケンスはイレースコマンドシーケンスである場合(S104:Yes)、コマンド・アドレスデコーダ110は、そのイレースコマンドシーケンスに含まれるアドレスのうちのブロックアドレスをアクセス履歴情報120から削除する(S105)。
【0116】
S103の後、または転送したコマンドシーケンスはイレースコマンドシーケンスでない場合(S104:No)、またはS105の後、ブリッジチップBCによるアクセス履歴情報120を管理する動作が終了する。
【0117】
メモリコントローラMCは、タイマ45を用いることによって、所定時間間隔でパトロールリード動作を開始する。メモリコントローラMCは、パトロールリード動作では、単位リード動作を命令するコマンドシーケンスである単位リードコマンドシーケンスをデータが格納されたブロックBLK毎に順次、ブリッジチップBCに転送する。
【0118】
ブリッジチップBCは、パトロールリード動作の開始のタイミングの到来をタイマ112を用いることによって検知する。この検知に応じて、ブリッジチップBCは、メモリコントローラMCから単位リードコマンドシーケンスを受信する前に、自身に接続されたメモリチップCPにおけるパトロールリード動作の対象の全てのブロックBLKに対するダミーリード動作を実行する。その後、ブリッジチップBCは、メモリコントローラMCから受信した単位リードコマンドシーケンスの転送を開始する。
【0119】
図12は、パトロールリード動作の開始タイミングが到来したときの実施形態のブリッジチップBCの動作の一例を示すフローチャートである。
【0120】
ダミーリード制御回路113は、パトロールリード動作の対象の全てのブロックに対する単位リード動作が完了したとき、タイマ112の値をリセットし、タイマ112をリスタートしている(後述するS210参照)。ダミーリード制御回路113は、リスタート後のタイマ112の値が第2値に至ったか否かを判定する(S201)。なお、第2値は、パトロールリード動作の実行の間隔に対応する。例えば、メモリコントローラMCにおいて、タイマ45の値が第1値に至る毎にメモリコントローラMCがパトロールリード動作を開始する場合、第2値として第1値と等しい値が使用され得る。
【0121】
タイマ112の値が第2値に至った場合(S201:Yes)、ダミーリード制御回路113は、自身を具備するブリッジチップBCに接続された何れかのメモリチップCPに対するアクセスが実行中であるか否かを判定する(S202)。S202では、単位リード動作およびダミーリード動作の何れとも異なるアクセスが、何れかのメモリチップCPに対して実行中であるか否かが判定される。単位リード動作およびダミーリード動作の何れとも異なるアクセスは、例えばホストHSからの要求に基づくアクセスや、ガベージコレクションの一環としてのアクセスなどを含む。
【0122】
なお、コマンド・アドレスデコーダ110は、受信したコマンドシーケンスに含まれるアドレス(より具体的には例えばアドレスに含まれる拡張LUNの値)に基づき、当該コマンドシーケンスの宛先は自身を具備するブリッジチップBCに接続されたメモリチップCPであるか否かを判定する。そして、コマンドシーケンスの宛先は自身を具備するブリッジチップBCに接続されたメモリチップCPである場合には、コントローラ10は、受信したコマンドシーケンスをそのメモリチップCPに転送する。メモリチップCPに転送されたコマンドシーケンスに応じた動作がまだ完了していない場合、ダミーリード制御回路113は、メモリチップCPに対するアクセスが実行中である、と判定する。メモリチップCPに転送されたコマンドシーケンスに応じた動作が完了し、その後、コマンドシーケンスの転送が行われていない場合、ダミーリード制御回路113は、メモリチップCPへのアクセスが実行中でないと判定する。
【0123】
メモリチップCPに対するアクセスが実行中である場合(S202:Yes)、ダミーリード制御回路113は、S202の判定の処理を再び実行する。
【0124】
メモリチップCPに対するアクセスが実行中でない場合(S202:No)、ダミーリード制御回路113は、アクセス履歴情報120に1以上のブロックアドレスが記録されているか否かを判定する(S203)。
【0125】
アクセス履歴情報120に1以上のブロックアドレスが記録されている場合(S203:Yes)、ダミーリード制御回路113は、アクセス履歴情報120から1つのブロックアドレスを取得する(S204)。そして、ダミーリード制御回路113は、取得したブロックアドレスが示すブロックBLKに対するダミーリード動作を命令するダミーリードコマンドシーケンスを生成し、そのブロックBLKを含むメモリチップCPにダミーリードコマンドシーケンスを転送する(S205)。
【0126】
図13は、実施形態のダミーリードコマンドシーケンスの一例を示す模式的な図である。本図では、データ信号DQ[7:0]、リードイネーブル信号RE/REn、およびダミーリード動作が実行されるブロックBLKにおけるワード線WLの電圧の波形と、が示されている。
【0127】
図13に示す例では、ダミーリードコマンドシーケンスは、コマンドC0、コマンドC1、アドレスADD0、およびコマンドC2を含む。
【0128】
コマンドC0は、後続するコマンドC1、アドレスADD0、およびコマンドC2はダミーリード動作のためのシーケンスであることを通知するコマンドである。コマンドC1は、センス動作のためのアドレスの入力を予告するコマンドであり、コマンドC2は、センス動作の開始を命令するコマンドである。アドレスADD0は、例えば
図10に示したアドレスADDと同様の構成を備えたアドレス情報である。アドレスADD0は、ダミーリード動作の対象のブロックBLKから何らかの方法で選択されたワード線WLを示す情報を含む。
【0129】
ダミーリード動作の対象のブロックBLKにおいては、アドレスADD0が示すワード線WLに接続されたメモリセルに対するセンス動作がコマンドC2に応じて開始される。具体的には、ワード線WLの電圧が接地電位VSSから上昇せしめられる。選択ワード線WL、つまりアドレスADD0が示すワード線WLでは、所定の判定電圧(この例では判定電圧VA)が印加される。非選択ワード線WL、つまり選択ワード線WLと同じブロックBLKの選択ワード線WL以外のワード線WL、では電圧VREADが印加される。
【0130】
ワード線WLに所定の判定電圧または電圧VREADの印加が完了すると、ワード線WLの電圧が接地電位VSSに戻る。
【0131】
なお、センス動作によって選択ワード線WLおよび非選択ワード線WLにおいて“Creep up”が起こるが、
図13では“Creep up”の現象の図示が省略されている。
【0132】
レディービジー信号R/Bnは、センス動作が実行される前は非アクティブ状態(この例では“H”状態)に維持される。そして、センス動作が実行されている期間、レディービジー信号R/Bnはアクティブ状態(この例では“L”状態)に維持され、センス動作が完了すると非アクティブ状態に戻る。ダミーリード制御回路113は、コマンドC2を転送した場合、レディービジー信号R/Bnが非アクティブ状態からアクティブ状態に遷移し、その後レディービジー信号R/Bnがアクティブ状態から非アクティブ状態に遷移したことを検出することで、一つのブロックBLKに対するダミーリード動作が完了したことを知ることができる。
【0133】
図12に説明を戻す。
ダミーリード制御回路113は、アクセス履歴情報120に未取得のブロックアドレスがあるか否かを判定する(S206)。未取得のブロックアドレスがある場合(S206:Yes)、制御がS204に移行する。ダミーリード制御回路113は、S204において、未取得のブロックアドレスのうちから1つのブロックアドレスを取得する。
【0134】
未取得のブロックアドレスがない場合(S206:No)、またはアクセス履歴情報120にブロックアドレスが記録されていない場合(S203:No)、コントローラ10は、メモリコントローラMCから受信したメモリチップCPへの単位リードコマンドシーケンスの転送を実行する(S207)。コントローラ10は、メモリチップCPが単位リードコマンドシーケンスに応じて出力したリードデータをメモリコントローラMCに転送する(S208)。
【0135】
例えば、ダミーリード制御回路113は、S201の処理の後からS203またはS206の判定処理においてNoと判定されるまで、レディービジー信号R/Bn_1,R/Bn_2をビジー状態に維持することで、メモリコントローラMCからの単位リードコマンドシーケンスの受信を抑止する。S201の処理の後からS203またはS206の判定処理においてNoと判定されたとき、ダミーリード制御回路113は、レディービジー信号R/Bn_1,R/Bn_2をレディー状態に遷移させることで、単位リードコマンドシーケンスの受信を開始する。なお、メモリコントローラMCがS203またはS206の判定処理においてNoと判定されるまで単位リードコマンドシーケンスの受信を抑制する方法はこれに限定されない。
【0136】
ダミーリード制御回路113は、パトロールリード動作の対象の全てのブロックに対する単位リード動作が完了したか否かを判定する(S209)。
【0137】
なお、S209の判定は任意の方法で実行される。一例では、ダミーリード制御回路113は、アクセス履歴情報120にブロックアドレスが記録された全てのブロックBLKに対し、単位リード動作が完了した場合に、パトロールリード動作の対象の全てのブロックに対する単位リード動作が完了したと判定してもよい。
【0138】
パトロールリード動作の対象の何れかのブロックに対する単位リード動作が完了していない場合(S209:No)、制御がS207に移行する。
【0139】
パトロールリード動作の対象の全てのブロックに対する単位リード動作が完了した場合(S209:Yes)、ダミーリード制御回路113は、タイマ112の値をリセットし、タイマ112をリスタートする(S210)。そして、制御がS201に移行する。
【0140】
図14は、実施形態の複数の半導体記憶装置における動作の時間的な遷移の一例を示すタイミングチャートである。なお、本図では、説明が煩雑になることを防ぐために、半導体記憶装置1a,1bを複数の半導体記憶装置の例として挙げる。
【0141】
図14に示す例では、タイミングt0からタイミングt1までは半導体記憶装置1aに対してホストリード動作が実行され、タイミングt1からタイミングt3までは半導体記憶装置1bに対してホストリード動作が実行されている。ホストリード動作の際には一つの半導体記憶装置1とメモリコントローラMCとの間の通信によってホストチャネルHCHが占有される。よって、タイミングt0~t3での2つのホストリード動作のように、各半導体記憶装置1a,1bに対するホストリード動作は時間的にシリアルに実行される。
【0142】
タイミングt1とタイミングt3との間のタイミングt2においてパトロールリード動作の開始タイミングが到来したこととする。パトロールリード動作の開始タイミングが到来するとは、例えば、メモリコントローラMCにおいてはタイマ45の値が第1値に到達し、各ブリッジチップBCにおいてはタイマ112の値が第2値に到達することである。
【0143】
半導体記憶装置1a,1bでは、各ブリッジチップBCは、タイミングt2において、パトロールリード動作の開始のタイミングが到来したことを知る。また、メモリコントローラMCは、タイミングt2において、パトロールリード動作の開始のタイミングが到来したことを知る。
【0144】
タイミングt2においては、半導体記憶装置1aでは、メモリチップCPに対するアクセスが非実行中である。よって、半導体記憶装置1aのブリッジチップBCは、
図12のS202の判定処理においてNoと判定し、パトロールリード動作の対象のブロックBLKを特定して、特定したブロックに対するダミーリード動作をそのブロックBLKを含むメモリチップCPに命令する。
【0145】
タイミングt2においては、半導体記憶装置1bでは、メモリチップCPに対するアクセス(ここではホストリード動作)が実行中である。よって、半導体記憶装置1bのブリッジチップBCは、
図12のS202の判定処理においてYesと判定されることによって、ホストリード動作の完了を待つ。半導体記憶装置1bのブリッジチップBCは、ホストリード動作が完了した後、即ちタイミングt3に、
図12のS202の判定処理においてNoと判定し、パトロールリード動作の対象のブロックBLKを特定して、特定したブロックに対するダミーリード動作をそのブロックBLKを含むメモリチップCPに命令する。
【0146】
半導体記憶装置1a,1bでは、各ブリッジチップBCは、パトロールリード動作の対象の全てのブロックBLKに対するダミーリード動作が完了するまで、ダミーリード動作の命令を繰り返す。
【0147】
半導体記憶装置1a,1bのうち、半導体記憶装置1aにおいて、パトロールリード動作の対象の全てのブロックBLKに対するダミーリード動作が完了する(タイミングt4)。すると、メモリコントローラMCは、半導体記憶装置1aに対し、パトロールリード動作を実行する。具体的には、メモリコントローラMCは、単位リード動作の命令をパトロールリード動作の対象のブロックBLK毎に転送する。
【0148】
半導体記憶装置1bにおいては、タイミングt4よりも後のタイミングt5においてパトロールリード動作の対象の全てのブロックBLKに対するダミーリード動作が完了する。しかしながら、タイミングt5においては、半導体記憶装置1aに対する単位リード動作の命令の転送のためにホストチャネルHCHが占有されているので、メモリコントローラMCは、半導体記憶装置1bに対して単位リード動作の命令を転送することができない。
【0149】
タイミングt6において、半導体記憶装置1aにおけるパトロールリード動作、即ちパトロールリード動作の対象の全てのブロックBLKに対する単位リード動作、が完了する。すると、ホストチャネルHCHが利用可能となるので、メモリコントローラMCは、半導体記憶装置1bに対し、パトロールリード動作を実行する。具体的には、メモリコントローラMCは、単位リード動作の命令をパトロールリード動作の対象のブロックBLK毎に転送する。そして、タイミングt7において、半導体記憶装置1bにおけるパトロールリード動作、即ちパトロールリード動作の対象の全てのブロックBLKに対する単位リード動作、が完了する。
【0150】
このように、実施形態によれば、ブリッジチップBCは、第1インタフェース11を介したメモリコントローラMCからの単位リードコマンドシーケンスに基づくメモリチップCPに対する単位リード動作が実行される前に、第1インタフェース11を介したメモリコントローラMCからの単位リードコマンドシーケンスとは独立して、ダミーリード動作を命令するダミーリードコマンドシーケンスを第2インタフェース12を介してメモリチップCPに転送するように構成された。
【0151】
これによって、例えば
図14のタイミングt2~タイミングt5における各半導体記憶装置1の動作から読み取れるように、各半導体記憶装置1のブリッジチップBCは、たとえ他の半導体記憶装置1においてホストチャネルHCHを占有するような動作が実行されていたとしても、メモリチップCPへのダミーリード動作の命令を開始することができる。よって、パトロールリード動作、より正確には事前のダミーリード動作およびパトロールリード動作、に要する時間を短縮することが可能となる。
【0152】
また、実施形態によれば、ブリッジチップBCは、タイマ112を備える。そして、コントローラ10は、パトロールリード動作の開始のタイミングの到来をタイマ112を用いて判定する。
【0153】
よって、ブリッジチップBCは、パトロールリード動作の前にメモリチップCPへのダミーリード動作の命令を開始することが可能である。
【0154】
また、実施形態によれば、コントローラ10は、メモリチップCPへのダミーリード動作の命令の後、単位リード動作のためのコマンドシーケンスをメモリチップCPに転送する。
【0155】
よって、ブリッジチップBCは、パトロールリード動作の前にメモリチップCPへのダミーリード動作の命令を開始することが可能である。
【0156】
なお、実施形態では、メモリコントローラMCがパトロールリード動作の制御を実行するとして説明した。パトロールリード動作の制御のうちの一部または全部は各ブリッジチップBCにおいて実行されてもよい。例えば、ブリッジチップBCは、パトロールリード動作の開始のタイミングの到来を検知すると、メモリコントローラMCからダミーリード動作の命令を受信することなくメモリチップCPに対してダミーリード動作の命令を行う。そして、パトロールリード動作の対象の全てのブロックBLKに対するダミーリード動作の実行後、ブリッジチップBCは、メモリコントローラMCから単位リード動作の命令を受信することなくメモリチップCPに対して単位リード動作の命令を行ってもよい。
【0157】
また、実施形態では、アクセス履歴情報120は不揮発性メモリであるフラッシュメモリ14に格納された。ブリッジチップBC内に揮発性メモリが設けられ、アクセス履歴情報120は、その揮発性メモリに格納されてもよい。
【0158】
アクセス履歴情報120が揮発性メモリに格納される場合、コントローラ10は、例えば次のように動作する。メモリシステムSYSへの電力の供給が停止されたとき、コントローラ10は、揮発性メモリ内のアクセス履歴情報120を何れかのメモリチップCPに退避(save)させる。その後にメモリシステムSYSへの電力の供給が再開されたとき、コントローラ10は、メモリチップCPからアクセス履歴情報120をリードして、揮発性メモリに格納する。
【0159】
また、実施形態では、パトロールリード動作の開始タイミングが到来する毎にメモリシステムSYS内のパトロールリード動作の対象の全てのブロックBLKに対する単位リード動作が実行された。パトロールリード動作の開始タイミングが到来する毎にメモリシステムSYS内のパトロールリード動作の対象の全てのブロックBLKのうちの一部に対して単位リード動作が実行され、且つパトロールリード動作の開始タイミングが複数回到来することでメモリシステムSYS内のパトロールリード動作の対象の全てのブロックBLKに対する単位リード動作が完了するようにメモリシステムSYSが構成されてもよい。
【0160】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0161】
1,1a,1b,1c,1d 半導体記憶装置、3 通信路、10 コントローラ、11 第1インタフェース、12,12-0,12-1 第2インタフェース、13 バッファメモリ、14 フラッシュメモリ、20 ウェル領域、21,22,23 配線層、24 導電体、25 ゲート絶縁膜、26 電荷蓄積層、27 ブロック絶縁膜、28 金属配線層、30 コンタクトプラグ、29 n+型不純物拡散層、31 金属配線層、32 p+型不純物拡散層、33 コンタクトプラグ、34 金属配線層、41 ホストI/Fコントローラ、42 CPU、43 RAM、44 ECC、45 タイマ、46 NAND I/Fコントローラ、110 コマンド・アドレスデコーダ、111 転送回路、112 タイマ、113 ダミーリード制御回路、120 アクセス履歴情報、210 周辺回路、211 メモリセルアレイ、212 データラッチ、213 NANDストリング、214 センスアンプ、BC ブリッジチップ、CP,CP0-0,CP0-1,CP1-0,CP1-1 メモリチップ、HS ホスト、SYS メモリシステム。