以下、実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
[実施形態]
本実施形態に係るメモリシステムは、ホスト機器にデータを出力する際、クロック信号の周波数(以下、読み出し周波数)の値に応じて、データを出力することの出来るバッファを備える。すなわち、ホスト機器からデータの読み出し周波数、すなわちクロック信号を供給されると、このクロック信号の読み出し周波数に追従すべくデータの立ち上がり及び立ち下がり(電流駆動力)を可変にするバッファ部を備える。
<全体構成>
図1を用いて、実施形態に係るメモリシステムの全体構成例について説明する。本実施形態では、メモリシステムの一例として半導体記憶装置を挙げる。この半導体記憶装置は、具体的な一構成例としてNAND型フラッシュメモリとSRAMとを備える。すなわち、以下説明ではNAND型フラッシュメモリとSRAMとを備えた構成を、メモリシステムとする。
図示するように、本実施形態に係るメモリシステム1は、大まかにはNAND型フラッシュメモリ2、コントローラ部3、及びRAM部4を備えている。これらNAND型フラッシュメモリ2、コントローラ部3、及びRAM部4は、同一の半導体基板上に形成され、1つのチップに集積されている。以下、各ブロックの詳細について説明する。
<NAND型フラッシュメモリ2>
NAND型フラッシュメモリ2は、メモリシステム1の主記憶部として機能する。図1に示すようにNAND型フラッシュメモリ2は、メモリセルアレイ10、ロウデコーダ11、ページバッファ12、電圧発生回路13、シーケンサ14、オシレータ15、16、及びレジスタ18を備えている。
メモリセルアレイ10は、選択トランジスタと、データを保持可能なメモリセルトランジスタとを複数備えている。このメモリセルトランジスタに対しデータが書き込まれ(以下、プログラム)、また書き込まれたデータを読み出し、更には書き込まれたデータの消去が行われる。
メモリセルトランジスタの各々は、電荷蓄積層と制御ゲートとを含む積層ゲートを有するMOSトランジスタである。選択トランジスタのゲートはセレクトゲート線に接続され、メモリセルトランジスタの制御ゲートはワード線に接続されている。
また、メモリセルアレイ10は、複数のメモリセルトランジスタの集合であるブロックを複数備えている。このブロックが消去単位となる。すなわち、同一のブロックに含まれるメモリセルトランジスタのデータは、一括して消去される。
また、メモリセルアレイ10は、図示せぬホスト機器から転送された、書き込みデータの他、後述するオン・オフ切替え制御信号用のデータ(以下、オン・オフ切替え制御信号)を保持する。オン・オフ切替え制御信号データとは、保持データをホスト機器に読み出すための読み出し周波数に応じて、ゲート幅の異なるMOSトランジスタをオンまたはオフとし、データ出力バッファ部の電流供給能力を切替える信号である。
ロウデコーダ11は、データのプログラム、読み出し、及び消去動作の際に、ワード線及びセレクトゲート線を選択する。ワード線及びセレクトゲート線に対して、必要な電圧を印加する。メモリセルアレイ10及びロウデコーダ11の詳細については後述する。
ページバッファ12はページサイズのデータを保持可能とされ、データのプログラム動作時には、RAM部4から与えられるデータを一時的に保持し、メモリセルアレイ10にデータを書き込む。他方、読み出し動作時には、メモリセルアレイ10から読み出されたデータを一時的に保持し、RAM部4へ転送する。
電圧発生回路13は、外部から与えられる電圧を昇圧または降圧することにより、データのプログラム、読み出し、及び消去に必要な電圧を発生する。発生した電圧を、例えばロウデコーダ11に供給する。電圧発生回路13で発生された電圧が、ワード線WLに印加される。
シーケンサ14は、NAND型フラッシュメモリ2全体の動作を司る。すなわち、コントローラ部3からプログラム命令(Program)、ロード命令(Load)、または消去命令(図示せず)を受けると、これに応答して、データのプログラム、読み出し、及び消去を実行するためのシーケンスを実行する。次いでこのシーケンスに従って、電圧発生回路13やページバッファ12の動作を制御する。
オシレータ15は内部クロックICLKを生成する。すなわち、クロック生成器として機能する。オシレータ15は、生成した内部クロックICLKをシーケンサ14に供給する。シーケンサ14は、この内部クロックICLKに同期して動作する。
オシレータ16は内部クロックACLKを生成する。すなわち、クロック生成器として機能する。オシレータ16は、生成した内部クロックACLKをコントローラ部3やRAM部4へ供給する。内部クロックACLKは、コントローラ部3やRAM部4の動作の基準となるクロックである。
レジスタ18は、上記説明したオン・オフ切替え制御信号のデータを保持する。後述するが、このオン・オフ切替え制御信号は3種類とされる。つまり、レジスタはこれら3種類の信号を保持する領域を備える。また、外部のホスト機器と接続され、電源の供給が始まったことを検知すると、レジスタ18は一旦オン・オフ切替え制御信号を保持し、その後後述するRAM部3に転送する。
<NAND型フラッシュメモリ2の構成の詳細>
次に、上記NAND型フラッシュメモリ2につき、メモリセルアレイ10とロウデコーダ11に着目して、その詳細な構成について説明する。図2は、メモリセルアレイ10とロウデコーダ11の回路図である。
<<メモリセルアレイ2の詳細>>
まず、メモリセルアレイ2について説明する。図2に示すようにメモリセルアレイ10は、(m+1)個(mは2以上の自然数)のブロックBLK0〜BLKmを備えている。以降、ブロックBLK0〜BLKmをそれぞれ区別しない場合には単にブロックBLKと呼ぶことにする。ブロックBLKの各々は、(n+1)個(n+1は2以上の自然数)の複数のメモリセルユニット17を備えている。
メモリセルユニット17の各々は、例えば32個のメモリセルトランジスタMT0〜MT31と、選択トランジスタST1、ST2とを含んでいる。以下、メモリセルトランジスタMT0〜MT31を区別しない場合には、単にメモリセルトランジスタMTと呼ぶ。メモリセルトランジスタMTは、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層(例えば浮遊ゲート)と、電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲートとを有する積層ゲート構造を備えている。なお、メモリセルトランジスタMTの個数は32個に限られず、8個や16個、64個、128個、256個等であってもよく、その数は限定されるものではない。またメモリセルトランジスタMTは、電荷蓄積層として窒化膜等の絶縁膜を使用し、この窒化膜に電子をトラップさせる方式を用いたMONOS(Metal Oxide Nitride Oxide Silicon)構造であっても良い。
メモリセルトランジスタMTは、隣接するもの同士でソース、ドレインを共有している。選択トランジスタST1、ST2間に、その電流経路が直列接続されるようにして配置されている。直列接続されたメモリセルトランジスタMTの一端側のドレインは選択トランジスタST1のソースに接続され、他端側のソースは選択トランジスタST2のドレインに接続されている。
同一行にあるメモリセルトランジスタMTの制御ゲートは、ワード線WL0〜WL31のいずれかに共通接続される。また同一行にある選択トランジスタST1、ST2のゲートは、それぞれセレクトゲート線SGD、SGSに共通接続されている。なお説明の簡単化のため、以下ではワード線WL0〜WL31を、単にワード線WLと呼ぶことがある。
また選択トランジスタST1のドレインはビット線BL0〜BLnのいずれかに接続される。このビット線BL0〜BLnは、複数のブロックBLK間で、複数のメモリセルユニット17を共通接続する。ビット線BL0〜BLnについても、区別しない場合には単にビット線BLと呼ぶ。
選択トランジスタST2のソースはソース線SLに接続される。ソース線SLは、メモリセルアレイ10内において共通に使用される。
上記構成において、同一のワード線WLに接続された複数のメモリセルトランジスタMTには一括してデータが書き込まれ、または読み出され、この単位をページと呼ぶ。更に、同一行にある複数のメモリセルユニット17は一括してデータが消去され、この単位が上記ブロックである。
各々のメモリセルトランジスタMTは、例えば、電荷蓄積層に注入された電子の多寡によるトランジスタの閾値電圧の変化に応じて、1ビットのデータを保持することが可能である。なお、閾値電圧の制御を細分化し、各々のメモリセルトランジスタMTに2ビット以上のデータを保持する構成としても良い。
また各ブロックBLKにおいて、一部のメモリセルユニット17は、オン・オフ切替え制御信号用データの他、エラー訂正用の情報(パリティ等)を保持するために用いられ、残りのメモリセルユニット17がユーザデータ保持用として用いられる。なお、オン・オフ切替え制御信号用データ(管理データ)は、メモリセルアレイ10内に設けられた管理領域内に保持されていてもよい。
更に、いずれかのブロックBLK(本実施形態では、例えばブロックBLKm)は、NAND型フラッシュメモリ2のシステム情報を保持するために使用される。システム情報の一例は、不良ブロック情報である。不良ブロック情報とは、何らかの不良によって使用不可とされたブロックBLKの情報であり、例えばそのブロックアドレスである。以下では、このブロックBLKmを、ROMヒューズブロックと呼ぶことがある。
<<ロウデコーダ11の詳細>>
次に、引き続き図2を参照してロウデコーダ11について説明する。図示するようにロウデコーダ11は、転送ゲート20−0〜20−m、ブロックデコーダ21−0〜21−m、及びドライバ回路22を備えている。
ドライバ回路22は、ブロックBLK0〜BLKmに共通して設けられる。ドライバ回路22はページアドレスをデコードして、ワード線WL0〜WL31及びセレクトゲート線SGD、SGSに印加すべき電圧を転送ゲート20−0〜20−mに供給する。
ブロックデコーダ21−0〜21−mもまた、ブロックBLK0〜BLKmに対応して設けられる。ブロックデコーダ21−0〜21−mはブロックアドレスをデコードして、対応する転送ゲート20−0〜20−mをオンまたはオフさせる。
転送ゲート20−0〜20−mは、ブロックBLK0〜BLKmに対応して設けられる。ドライバ回路22から与えられる電圧を、対応するブロックBLKのワード線WL及びセレクトゲート線SGD、SGSに転送する。つまり、ブロックデコーダ21によっていずれかの転送ゲート20−0〜20−mが選択され、ドライバ回路22で発生された電圧が、選択された転送ゲート20−0〜20−mによってブロックBLKに転送される。いずれのワード線WLにどのような電圧を与えるか(すなわちどのワード線WLを選択するか)は、ブロックデコーダ21−0〜21−mによって選択される。以下、転送ゲート20−0〜20−mについても単に転送ゲート70と呼ぶことがある。
<<転送ゲート20とブロックデコーダ21の詳細>>
次に、上記転送ゲート20とブロックデコーダ21の詳細について、図3を用いて説明する。図3は転送ゲート20とブロックデコーダ21の回路図である。
まず転送ゲート20について説明する。図示するように転送ゲート20は、MOSトランジスタ23〜25を備えている。
MOSトランジスタ23は、セレクトゲート線SGD、SGS及びワード線WL0〜WL31にそれぞれ対応づけて設けられた、高耐圧型のエンハンスメント型nチャネルMOSトランジスタである。MOSトランジスタ23の電流経路の一端は、セレクトゲート線SGD、SGS及びワード線WL0〜WL31のうちの対応するいずれかに接続され、他端にはドライバ回路22によって電圧が供給される。同一の転送ゲート20内のMOSトランジスタ23はゲートが共通接続され、対応するブロックデコーダ21のノードXFERGに接続される。ノードXFERGからは信号RDECADが与えられる。信号RDECADは、対応するブロックBLKが選択ブロックであった場合には“H”レベルとされ、非選択ブロックであった場合には“L”レベルとされる信号である。
MOSトランジスタ24、25は高耐圧型のディプレッション型nチャネルMOSトランジスタであり、電流経路が直列接続されている。MOSトランジスタ24のソースがセレクトゲート線SGD、SGSに接続され、MOSトランジスタ25のドレインがノードSGDSに接続され、ゲートには信号RDECADnが入力される。
信号RDECADnは、信号RDECADの反転信号である。従って、選択ブロックに対応する転送ゲート20は、MOSトランジスタ23によってドライバ回路22の電圧を転送し、非選択ブロックに対応する転送ゲート70は、MOSトランジスタ24、25によってノードSGDSにおける電圧を転送する。
次にブロックデコーダ21について説明する。図示するようにブロックデコーダ21は、大まかにはデコードユニット30、保持ユニット31、セットユニット32、リセットユニット33、読み出しユニット34、及びレベルシフタ35を備えている。
デコードユニット30は、前述の高耐圧型MOSトランジスタよりも耐圧の低い、低耐圧型のエンハンスメント型pチャネルMOSトランジスタPM1、PM2、低耐圧型のエンハンスメント型nチャネルMOSトランジスタ36−0〜36−4、37〜39、及びインバータ40〜42を備えている。MOSトランジスタPM1、PM2は、ソースに電源電位Vddが与えられ、ドレインが共通に接続され、MOSトランジスタPM1のゲートには信号RDECが与えられる。MOSトランジスタ38、39は、ソースが接地され、ドレインが共通接続され、MOSトランジスタ38のゲートには信号ROMBAENが与えられる。信号ROMBAENは、通常、常時“L”レベルである。MOSトランジスタ36−0〜36−4、37は、MOSトランジスタPM1、PM2のドレインと、MOSトランジスタ38、39のドレインとの間に順次、その電流経路が直列接続されている。それぞれのゲートに信号ARROWA〜ARROWE、RDECが入力される。ブロックデコーダ21が選択ブロックに相当する場合には、信号ARROWA〜ARROWEの全てが“H”レベルとなり、相当しない場合には少なくともいずれかが“L”レベルとなる。信号RDECは信号ARROWA〜ARROWEが入力される際に“H”レベルとなる信号であり、入力される前には“L”レベルとされる。インバータ40〜42は直列接続され、インバータ40の入力ノードがMOSトランジスタPM1、PM2のソース及びMOSトランジスタ36−0のドレインに接続される。インバータ40の出力ノード及びインバータ41の入力ノードはMOSトランジスタPM2のゲートに接続される。またインバータ41の出力が信号RDECADnとなる。
保持ユニット31は、インバータIN1、IN2を備えたラッチ回路である。インバータIN1の入力ノードとインバータIN2の出力ノードはノードL1に接続され、インバータIN2の入力ノードとインバータIN1の出力ノードはノードL2に接続される。ノードL1はMOSトランジスタ39のゲートに接続される。保持ユニット31は、データのロード、プログラム、及び通常の消去動作(消去対象ブロックが1個である消去動作)時には、不良ブロック情報を保持する。保持ユニット31に不良ブロック情報が格納されるタイミングの一つは、メモリシステム1への電源投入時である。すなわち電源投入時において、コントローラ部3の命令に基づいて、ROMヒューズブロック(ブロックBLKm)から不良ブロック情報が読み出され、これが保持ユニット31に保持される。より具体的には、全てのブロックデコーダ21の保持ユニット31におけるノードL1は、後述するリセットユニット33の信号FRSTが“H”レベルとされることで、“H”レベルとなる。引き続き、不良ブロックに対応するブロックデコーダ21のみを選択した状態で、信号FSETが“H”レベルとされる。その結果、当該ブロックデコーダ21ではノードL1が“L”レベルとされる。以上から、保持ユニット31が不良ブロック情報を保持する場合には、ノードL1の値は“L”レベルとされ、そうでない場合にはノードL1の値は“H”レベルとされる。
セットユニット32は、低耐圧型のエンハンスメント型nチャネルMOSトランジスタNM1、NM2を備えている。MOSトランジスタNM1のソースは接地され、ゲートに信号FSETが入力される。MOSトランジスタNM2は、ソースがMOSトランジスタNM1のドレインに接続され、ドレインがノードL1に接続され、ゲートがインバータ40の出力ノードに接続されている。
リセットユニット33は、低耐圧型のエンハンスメント型nチャネルMOSトランジスタNM3、NM4を備えている。MOSトランジスタNM3のソースは接地され、ゲートに信号FRSTが入力される。MOSトランジスタNM4は、ソースがMOSトランジスタNM3のドレインに接続され、ドレインがノードL2に接続され、ゲートがインバータ40の出力ノードに接続されている。
読み出しユニット34は、低耐圧型のエンハンスメント型nチャネルMOSトランジスタ43〜45を備えている。MOSトランジスタ43〜45は、ノードPBUSBSと接地電位ノードとの間に順次、その電流経路が直列接続されている。MOSトランジスタ43のゲートはインバータ40の出力ノードに接続され、MOSトランジスタ44のゲートには信号BBSENが入力され、MOSトランジスタ45のゲートはノードL2に接続されている。ノードPBUSBSは、各ブロックデコーダ21間で共通接続されている。
レベルシフタ35は、MOSトランジスタ46〜49を備えている。MOSトランジスタ46は、低耐圧型のディプレッション型nチャネルMOSトランジスタであり、ドレインがインバータ42の出力ノードに接続され、ゲートに信号BSTONが与えられる。信号BSTONは、ブロックアドレスデコード時に“H”レベルとされる信号である。MOSトランジスタ47は、MOSトランジスタ46よりも高耐圧型のディプレッション型nチャネルMOSトランジスタである。MOSトランジスタ47は、ドレインがMOSトランジスタ46のソースに接続され、ドレインがノードXFERGに接続され、ゲートに信号BSTONが与えられる。MOSトランジスタ48は、上記高耐圧型のエンハンスメント型pチャネルMOSトランジスタである。MOSトランジスタ48は、ドレインがノードXFERGに接続され、ソースがバックゲートに接続され、ゲートに信号RDECADnが入力される。MOSトランジスタ49は、上記高耐圧型のディプレッション型nチャネルMOSトランジスタである。MOSトランジスタ49は、ドレインに電圧VRDECが与えられ、ソースがMOSトランジスタ48のソースに接続され、ゲートがノードXFERGに接続される。電圧VRDECは、データの書き込み時、読み出し時、及び消去時において、必要な値とされる。またノードXFERGは、対応する転送ゲート20におけるMOSトランジスタ23のゲートに接続される。従って、信号RDECADの“H”レベルの電位は電圧VRDECに応じた値となる。
上記構成のブロックデコーダ21において、対応するブロックBLKがブロックアドレスに一致した際、MOSトランジスタ36−0〜36−4がオン状態となり、信号RDECADnは“L”レベル(RDECAD=“H”)となる。その結果、ノードXFERGに電圧VRDECが与えられる。よって、対応する転送ゲート20においてMOSトランジスタ23がオン状態とされる。
他方、ブロックアドレスが一致しない場合には、MOSトランジスタ36−0〜36−4の少なくともいずれかがオフ状態となり、信号RDECADnは“H”レベルとなる。その結果、対応する転送ゲート20においてMOSトランジスタ23がオフ状態とされる。
また、ブロックアドレスにかかわらず、保持ユニット31によってノードL1が“L”レベルとされている場合には、MOSトランジスタ39がオフ状態とされる。その結果、信号RDECADnは“H”レベルとなり、対応する転送ゲート20においてMOSトランジスタ23がオフ状態とされる。
<コントローラ部3>
次に、図1に戻り、コントローラ部3について説明する。コントローラ部3は、NAND型フラッシュメモリ2及びRAM部4の動作を制御する。すなわち、メモリシステム1全体としての動作を統括する機能を有する。図示するようにコントローラ部3は、内部レジスタ60(図中、Internal register)及びメモリシステム用ステートマシン63を備える。
内部レジスタ60は、レジスタ61(図中、Register)、コマンドユーザインターフェース(command user interface、図中CUI)62を備える。更に、レジスタ61はConfig用レジスタ61−1を備える。後述するがConfigデータとは、外部のホスト機器から転送されるデータ列であり、具体的には、NAND型フラッシュメモリ2からデータを読み出す際の読み出し周波数などの情報を含んでいる。
またメモリシステム用ステートマシン63は、ステートマシン(図中、state machine)64、アドレス/コマンド発生回路(図中、NAND Add/Command Gen)65、及びアドレス/タイミング発生回路(図中、SRAM Add/Timing)66を備えている。
レジスタ61は、メモリシステム1の動作状態を設定・保持するためのレジスタである。具体的には、Config用レジスタ61−1は、後述するインターフェース90を介してホスト機器から与えられるConfigデータを保持する。すなわち、データ出力バッファ93から出力されるクロック信号に同期したデータの読み出し周波数を保持する。より具体的には、Config用レジスタ61−1は、Configデータ内に含まれる周波数情報及び、この周波数情報に応じて可変な値のVHF(Very High throughput)及びRM(Read Mode)の値を保持する。
RMは“0”または“1”いずれかの値とされ、非同期のデータ読み出し時に“0”とされ、同期のデータ読み出し時に“1”とされる。ここで、非同期のデータ読み出しとは、インターフェース95から読み出しデータがクロック信号に同期せず出力されるという意味である。具体的には、例えば、ホスト機器からリード(read)コマンドが供給されると、NANDページバッファ12及びSRAM80を介してインターフェース95から、例えば1ページ分のみの読み出しデータが、クロック信号に同期せず出力される場合を非同期読み出しと呼ぶ。これに対して、同期のデータ読み出しとは、クロック信号に同期してデータ列が読み出されることを意味する。また、VHFは“0”または“1”いずれかの値とされ、読み出し周波数が104MHzのバーストリードの場合、VHFの値は“1”と設定され、それ以外の周波数(例えば、非同期読み出し、または同期の読み出しであって周波数が66MHz、83MHz)の場合ではVHFの値は“0”と設定される。
またレジスタ61は、レジスタライトコマンドまたはレジスタリードコマンドに応じて、ファンクションの動作状態を設定する。より具体的には、レジスタ61には、例えばデータロード時にはロード(load)コマンドが設定され、データプログラム時にはプログラム(program)コマンドが設定される。なお、レジスタライトコマンドまたはレジスタリードコマンドとは、アクセスコントローラ99からレジスタ61に対するライトコマンドまたはリードコマンド(Write/Read)をいう。またなお、ロードとは、NAND型フラッシュメモリ2からデータを読み出してSRAM80へ出力する動作であり、プログラムは、SRAM80内のデータがページバッファ12に転送されて、NAND型フラッシュメモリ2のメモリセルアレイ10に書き込まれるまでの動作であり、消去は、NAND型フラッシュメモリ2内のデータを削除する動作である。
コマンドユーザインターフェース62は、上記レジスタ61が保持するVHS及びRMの値をそれぞれ後述するバッファコントローラ94に供給する。また更に、コマンドユーザインターフェース62は、所定のコマンドがレジスタ61に設定されることで、メモリシステム1に対してファンクション実行コマンドが与えられたことを認識する。その後、内部コマンド信号(Command)を発行し、ステートマシン64へ出力する。
ステートマシン64は、コマンドユーザインターフェース62から与えられる内部コマンド信号に基づいて、メモリシステム1内部におけるシーケンス動作を制御する。ステートマシン64がサポートするファンクションは、ロード、プログラム、及び消去等、多数あり、これらのファンクションを実行するよう、NAND型フラッシュメモリ2及びRAM部4の動作を制御する。
アドレス/コマンド発生回路65は、ステートマシン64の制御に基づいてNAND型フラッシュメモリ2の動作を制御する。より具体的には、アドレスやコマンド(Program/Load/Erase)等を生成し、NAND型フラッシュメモリ2へ出力する。アドレス/コマンド発生回路65は、オシレータ16の生成する内部クロックACLKに同期しつつ、これらのアドレスやコマンドを出力する。
アドレス/タイミング発生回路66は、ステートマシン64の制御に基づいてRAM部4の動作を制御する。より具体的には、RAM部4において必要なアドレスやコマンドを発行して、アクセスコントローラ99及びECCエンジン72へ出力する。
<RAM部4>
次に、RAM部4について説明する。RAM部4は、ECC部70、SRAM(Static Random Access Memory)80、インターフェース部90(後述するPAD)、及びアクセスコントローラ99を備えている。
本実施形態に係るメモリシステム1では、NAND型フラッシュメモリ2が主記憶部として機能し、RAM部4のSRAM80がバッファ(2次キャッシュ)として機能する。従って、シーケンサ14はアドレス/コマンド発生回路65からロードコマンドを受け、NAND型フラッシュメモリ2からデータを外部に読み出す際には、まずNAND型フラッシュメモリ2のメモリセルアレイ10から読み出されたデータが、ページバッファ12を介してRAM部4のSRAM80に格納される。その後、SRAM80内のデータがインターフェース部90に転送され、その結果、図示せぬホスト機器に出力される。
他方、シーケンサ14は、アドレス/コマンド発生回路65からプログラムコマンドを受け、データをNAND型フラッシュメモリ2にデータを記憶させる際には、まずホスト機器から与えられたデータが、インターフェース部90を介してRAM部4内のSRAM80に格納される。その後、SRAM80内のデータがページバッファ12へ転送されて、メモリセルアレイ10に書き込まれる。
また、SRAM80内のデータが、インターフェース部90内において後述するバーストバッファ91、データ出力バッファ93を介してインターフェース95に転送されるまでの動作を、データの“リード(read)”と呼ぶ。なお、バーストバッファ91からデータ出力バッファ93に転送されるデータ及び、このデータ出力バッファ93からインターフェース95へ出力されるデータを、それぞれDoutと呼び、このDoutは16bitのパラレル出力とされる。すなわち、後述するが、データ出力バッファ93の出力端子は16個設けられている。
更に、NAND型フラッシュメモリ2に記憶させるべきデータが、インターフェース95からデータ入力バッファ92及びバーストバッファ91を介してSRAM80に転送されるまでの動作を、データの“ライト(write)”と呼ぶ。なお、インターフェース95からデータ入力バッファ92に転送されるデータ及びデータ入力バッファ92からバーストバッファ91に転送されるデータを、Dinと呼び、このDinも16bitのパラレル入力とされる。
以下、ECC部70、SRAM80、インターフェース部90、及びアクセスコントローラ99の各々の構成について説明する。
<<ECC部70>>
ECC部70は、データについてのエラー検出及びエラー訂正、並びにパリティの生成(以下、これらをまとめてECC処理と呼ぶことがある)を行う。すなわち、データのロード時には、NAND型フラッシュメモリ2から読み出されたデータについてエラーの検出及び訂正を行う。他方、データのプログラム時には、プログラムすべきデータについてパリティの生成を行う。ECC部70は、ECCバッファ71及びECCエンジン72を備えている。
ECCバッファ71は、NANDバスによりNAND型フラッシュメモリ2のページバッファ12と接続され、ECCバスによりSRAM80と接続される。これらのバス幅は共に等しく、例えば32ビットである。データのロード時には、ページバッファ12からNANDバスを介して転送されるデータを保持すると共に、ECC処理済みのデータをSRAM80へECCバスを介して転送する。他方、データのプログラム時には、SRAM80からECCバスを介して転送されるデータを保持すると共に、転送されたデータとパリティとをページバッファ12へNANDバスを介して転送する。
ECCエンジン72は、ECCバッファ71に保持されるデータを用いてECC処理を行う。ECCエンジン72は、例えばハミングコードを用いた1ビット訂正方式を用いる。ECCエンジン72は、データロード時にはパリティを用いてシンドロームを生成し、これによりエラー検出を行う。エラーが発見された際には、これを訂正する。他方、データプログラム時にはパリティを生成する。
<<SRAM80>>
次にSRAM80について説明する。メモリシステム1においてSRAM80は、NAND型フラッシュメモリ2に対するバッファメモリとして機能する。図示するように、SRAM80はDQバッファ81、複数(本実施形態では2つ)のデータRAM、1つのデータRAM用のスペア(図中のfor Spare)、1つのブート(boot)RAM、及び1つのブートRAM用のスペア(図中のBoot RAM)を備えている。
DQバッファ81は、データRAM及びブートRAMにそれぞれデータを書き込む、または読み出す際に、一時的にデータを保持する。DQバッファ81は前述の通り、ECCバスにより、ECCバッファ71との間でデータ転送可能とされている。またDQバッファ81は、例えば32ビットのバス幅を有するRAM/Registerバスを用いて、インターフェース部90との間でデータ転送可能とされている。DQバッファ81もページバッファ12と同様に、メインデータを保持する領域と、パリティ等を保持する領域とを備えている。
ブートRAMは、例えばメモリシステム1を起動するためのブートコード(boot code)を一時的に保持する。ブートRAMの容量は、例えば1Kバイトである。データRAMは、ブートコード、及びプロテクト情報など一時的に保持し、その容量は例えば2Kバイトであり、2つ設けられている。これらは各々、メモリセルアレイ82、センスアンプ83、及びロウデコーダ84を備えている。データRAM用のスペアは、上記データRAMの保持領域が不良でデータを保持できない場合などのスペア領域として機能する。ブートRAM用のスペアも同様である。すなわち、ブートRAM用のスペアは、ブートRAMの保持領域が不良でデータを保持できない場合などのスペア領域として機能する。
メモリセルアレイ82は、データ保持可能な複数のSRAMセルを備える。SRAMセルはそれぞれ、ワード線及びビット線に接続される。センスアンプ83は、SRAMセルからビット線に読み出したデータをセンス・増幅する。またセンスアンプ83は、DQバッファ81内のデータをSRAMセルに書き込む際の負荷としても機能する。ロウデコーダ84は、メモリセルアレイ82におけるワード線を選択する。
<<アクセスコントローラ99>>
アクセスコントローラ99は、インターフェース95から制御信号及びアドレスを受け取る。ホスト機器の要求を満たす動作を実行するよう、アクセスコントローラ99は、SRAM80及びコントローラ部3を制御する。より具体的には、ホスト機器の要求に応じてアクセスコントローラ99は、SRAM80とコントローラ部3の後述する内部レジスタ60とのいずれかをアクティブ状態とする。
次いで、アクセスコントローラ99は、SRAM80に対するデータのライトコマンドまたはリードコマンド、またはレジスタ61に対するライトコマンドまたはリードコマンドを発行する。これらの制御により、SRAM80及びコントローラ部33は動作を開始する。
<<インターフェース部90>>
インターフェース部90は、例えば1つ(例えば2つなど複数あってもよい)のバーストバッファ(burst buffer)91、データ入力バッファ92(Data Input Buffer)、データ出力バッファ93(Data Output Buffer)、バッファコントローラ94(Buffer Controller)、及びインターフェース(I/F)95を備えている。
バーストバッファ91は、RAM/RegisterバスによりDQバッファ81とコントローラ部3とにそれぞれデータ転送可能とされ、また例えば16ビットのバス幅を有するDIN/DOUTバスにより入出力データバッファ92、93を介してインターフェース95とデータ転送可能とされている。なおDIN/DOUTバスは、例えばそれぞれ16bitのバス幅を有する。すなわち、データリード時には、バーストバッファ91内のデータをデータ出力バッファ93及びインターフェース95を介してホスト機器へ出力し、データライト時には、ホスト機器から与えられるデータをインターフェース95及びデータ入力バッファ42を介してバーストバッファ91へ転送する。
また、バーストバッファ91はメモリシステム1外部のホスト機器からインターフェース95を介して与えられるデータ、またはDQバッファ81から与えられるデータを、一時的に保持する。本実施形態では、一例としてホスト機器から供給されるConfigデータである。バーストバッファ91はこのConfigデータをRAM/Registerバスを用いて後述するレジスタ61に転送する。なお、上述したようにこのConfigデータには、ホスト機器がどの周波数でデータを読み出して欲しいかを示した情報(読み出し周波数)が含まれている。
データ入力バッファ92は、バーストバッファ91−インターフェース95間をDINバスで接続する。上述したように、インターフェース95を介してホスト機器から供給されるデータをDinと呼び、このDinは16bitパラレルで入力される。
またデータ出力バッファ93は、バーストバッファ91〜インターフェース95間をDoutバスで接続する。また、データ出力バッファ93は、ホスト機器から供給されるクロック信号の読み出し周波数に応じて、出力パッド(PAD)への電流供給能力を可変とする構成を備える。この詳細な構成については後述する。
バッファコントローラ94は、レジスタ61からVHF及びRMを受け、これに応じてデータ出力バッファ93を制御する。バッファコントローラ94の詳細な構成については後述する。
インターフェース95は、ホスト機器と接続可能とされ、ホスト機器との間でデータ、制御信号、及びアドレスAdd等、種々の信号の入出力を司る。制御信号の一例は、メモリシステム1全体をイネーブルにするチップイネーブル信号/CE、アドレスをラッチさせるためのアドレスバリッド信号/AVD、バーストリード(burst read)用のクロック信号、書き込み動作をイネーブルにするライトイネーブル信号/WE、及びデータの外部への出力をイネーブルにするアウトプットイネーブル信号/OE、などである。
インターフェース95は、データ入力バッファ92及びデータ出力バッファ93を介してバーストバッファ91と接続されている。
インターフェース95は、ホスト機器からのデータのリード要求、ロード要求、ライト要求、及びプログラム要求等に係る制御信号アクセスコントローラ99へ転送する。
<バッファコントローラ94、データ出力バッファ93の詳細構成について>
次に、図4、図5を用いて上記バッファコントローラ94、データ出力バッファ93の詳細な構成について説明する。
まず、図4を用いてバッファコントローラ94について説明する。図4に示すように、バッファコントローラ94は、NAND回路100〜103、インバータ110〜116、及びNOR回路106を備える。
図4に示すように、NAND回路100はVHFとRMとのNAND演算を行う。この演算結果は、NAND回路101〜103に供給される。また、NOR回路106はオン・オフ切替え制御信号<A>〜<C>のNOR演算を行う(図4中、On/Off切替え制御信号と表記)。この演算結果がインバータ116によって反転され、NAND回路101〜103にそれぞれ供給される。
また、インバータ110は入力されたオン・オフ切替え制御信号<A>を反転し、その反転結果(/オン・オフ切替え制御信号<A>)をNAND回路101に供給する。
NAND回路101は、上記NAND回路100、インバータ110、及びインバータ116からの信号をNAND演算し、これをインバータ113に出力する。
ここで、NAND回路101により出力した信号をオン・オフ切替え信号<A>とし、インバータ113により出力された信号を/オン・オフ切替え信号<A>とする(図4中、On/Off切替え信号<A>と表記)。なお、NAND回路102、103、インバータ114及び115から出力されるオン・オフ切替え信号<B>、/オン・オフ切替え信号<B>、オン・オフ切替え信号<C>、及び/オン・オフ切替え信号<C>についても同様である(図4中、On/Off切替え信号<B>、On/Off切替え信号<C>と表記)。つまり、オン・オフ切替え制御信号<B>は、NAND回路102によってNAND回路100、インバータ111、及びインバータ116からの信号をNAND演算した結果として得られる。同様にオン・オフ切替え信号<C>は、NAND回路103によってNAND回路100、インバータ112、及びインバータ116からの信号をNAND演算した結果として得られる。
なお、上述したようにオン・オフ切替え制御信号<A>〜<C>の値、すなわち管理データは、メモリセルアレイ10の管理領域が保持する。すなわち、管理領域から一旦読み出され、その後レジスタ18に格納されたオン・オフ切替え制御信号がこのバッファコントローラ94に供給される。これら値は“0”または“1”いずれかの値であり、オン・オフ切替え制御信号<A>、オン・オフ切替え制御信号<B>、及びオン・オフ切替え制御信号<C>が有する場合の数は、“0”、“0”、“0”〜“1”、“1”、“1”の計8パターンとされる。また後述するが、オン・オフ切替え信号<A>〜<C>は、対応するMOSトランジスタのオン・オフを制御する信号である。
次に、図5を用いてデータ出力バッファ93の詳細な構成について説明する。図5に示すように、データ出力バッファ93はバッファユニット93−1〜93−16を備える。これは、前述の通りデータ出力バッファ93から16bitのDoutがパラレル出力されるからである。ここで、バッファユニット93−1〜93−16に入力されるDoutをDout1〜Dout16とする。バッファユニット93−1〜93−16において、内部構成は同一であることから、ここでは、一例としてバッファユニット93−1を挙げて説明する。図5にバッファユニット93−1の拡大図を示す。
図5に示すように、バッファユニット93−1は、ラッチ回路(図中、Latch)120、NAND回路130〜132、NOR回路133〜135、pチャネル型MOSトランジスタ140〜142、及びnチャネル型MOSトランジスタ143〜145を備える。
ラッチ回路120は、バーストバッファ91から供給されたDout1をホスト機器から供給されたクロック信号(図中、CLK)に同期してNAND回路130〜132、及びNOR回路133〜135に出力する。具体的には、クロック信号が“H”レベルとされたタイミングでDout1が出力される。従って、ラッチ回路120から出力されるDout1はクロック信号の周波数が高い程、高速に出力されることになる。
NAND回路132は、上記Dout1とオン・オフ切替え信号<A>とのNAND演算を行い、この演算結果をMOSトランジスタ142のゲートに供給する。
また、NOR回路133は、上記Dout1と/オン・オフ切替え信号<A>とのNOR演算を行い、この演算結果をMOSトランジスタ143のゲートに供給する。MOSトランジスタ142の電流経路(ソース端)には、例えば電圧VDDが供給され、他端(ドレイン端)はノードADQに接続される。また、MOSトランジスタ143の電流経路の一端(ドレイン端)はノードADQでMOSトランジスタ142のドレイン端と共通接続され、他端(ソース端)は接地される。このノードADQにおける電圧値が出力PADを介してインターフェース95に転送される。この際、MOSトランジスタ142と143が同時にオン状態とされることはない。
また、NAND回路131は、上記Dout1とオン・オフ切替え信号<B>とのNAND演算を行い、この演算結果をMOSトランジスタ141のゲートに供給する。また、NOR回路134は、上記Dout1と/オン・オフ切替え信号<B>とのNOR演算を行い、この演算結果をMOSトランジスタ144のゲートに供給する。MOSトランジスタ141の電流経路(ソース端)には、例えば電圧VDDが供給され、他端(ドレイン端)はノードADQに接続される。また、MOSトランジスタ144の電流経路の一端(ドレイン端)はノードADQでMOSトランジスタ141のドレイン端と共通接続され、他端(ソース端)は接地される。このノードADQにおける電圧値が出力PADを介してインターフェース95に転送される。MOSトランジスタ141、144もMOSトランジスタ142、143と同様に、上記理由から同時にオン状態とされることはない。なお、MOSトランジスタ141のゲート幅を例えばWb(<Wa)とする。
更に、NAND回路130は、上記Dout1とオン・オフ切替え信号<C>とのNAND演算を行い、この演算結果をMOSトランジスタ140のゲートに供給する。また、NOR回路135は、上記Dout1と/オン・オフ切替え信号<C>とのNOR演算を行い、この演算結果をMOSトランジスタ145のゲートに供給する。MOSトランジスタ140の電流経路(ソース端)には、例えば電圧VDDが供給され、他端(ドレイン端)はノードADQに接続される。また、MOSトランジスタ145の電流経路の一端(ドレイン端)はノードADQでMOSトランジスタ140のドレイン端と共通接続され、他端(ソース端)は接地される。このノードADQにおける電圧値が出力PADを介してインターフェース95に転送される。MOSトランジスタ140、145もMOSトランジスタ142、143と同様に、上記理由から同時にオン状態とされることはない。なお、MOSトランジスタ140のゲート幅を例えばWc(<Wb)とする。
つまり、以上からMOSトランジスタ140〜143のうちオン状態とされるMOSトランジスタの数に応じて、ノードADQに流れ込む電流量が可変とされる。つまり、クロック信号の周波数が高いほど、ゲート幅の大きなMOSトランジスタをオン状態とするか、またはMOSトランジスタ140〜143全てをオン状態とすればよい。
MOSトランジスタ140〜143全てをオン状態とする具体的な一例として、例えばノードADQから出力されるデータが、クロック信号の周波数が104Mhzでのデータ読み出しをする場合がある。この場合、ノードADQにおける電位の、例えば0[V]から所望の電圧値にまで達する、立ち上がり時間(角度)は急峻とされる。この様子について図6を用いて説明する。
図6は、上記バッファユニット93−1において、本実施形態及び比較例におけるノードADQの電圧立ち上がりを示した概念図である。図6に示すように、比較例に比べて、本実施形態ではノードADQにおける電圧の立ち上がり時間(角度)は急峻とされ、その立ち上がり時間は比較例(t2)よりも短い時間t1である。これはゲート幅の異なるMOSトランジスタ140〜142を全てオン状態とし、すなわち電流供給能力を最大にまで上昇させ、単位時間当たりノードADQに流れ込むおける電流量を上昇させたからである。
以下、一例としてオン・オフ切替え信号<A>を用いて図5におけるMOSトランジスタ142、143を制御する場合の一例を示す。
ラッチ回路120から出力されたDout1の値が“1”すなわち“H”レベルとし、オン・オフ切替え信号<A>の値が“1”、すなわち“H”レベルの場合を考える。この場合、NAND回路132、NOR回路133はそれぞれ“L”レベルの信号を出力する。この結果、MOSトランジスタ142はオン状態、MOSトランジスタ143はオフ状態とされる。なお、NAND回路132から出力される“L”レベルとは、MOSトランジスタ142の有する閾値電圧Vthaよりも小さな値である。
従って、MOSトランジスタ142のソース端に供給される電圧VDDがノードADQに流入し、出力PADに転送される。ここで、Dout1の出力タイミングに応じて、ノードADQにおける電圧が“L”レベルから“H”レベルへと切り替わる。また上述したように、Dout1の出力時(MOSトランジスタ142がオン状態とされる時)MOSトランジスタ143はオフ状態である。
なお、オン・オフ切替え制御信号<B>、<C>を用いてMOSトランジスタ140、141、144、及び145を制御する場合についても上記と同様とされることから説明を省略する。
<メモリシステム1の動作>
次に、上記構成のメモリシステム1における大まかな動作について簡単に説明する。前述の通り本実施形態に係るメモリシステム1では、NAND型フラッシュメモリ2とホスト機器との間のデータの授受は、SRAM80を介して行われる。
すなわち、ホスト機器がメモリシステム1のNAND型フラッシュメモリ2にデータを記憶させる場合には、まずホスト機器から与えられるライトコマンドとSRAM80のアドレスに従って、データがデータRAMまたはブートRAMに一旦、格納される。その後、ホスト機器から与えられるプログラムコマンドとNAND型フラッシュメモリ2のアドレスに従って、SRAM80に格納されたデータが、ページ単位で一括してNAND型フラッシュメモリ2にプログラムされる。
また、ホスト機器がNAND型フラッシュメモリ2内のデータを読み出す場合には、まずホスト機器から与えられるロードコマンド、NAND型フラッシュメモリ2のアドレス、及びSRAM80のアドレスに従って、データがNAND型フラッシュメモリ2から読み出され、データRAMまたはブートRAMに一旦、格納される。その後、ホスト機器から与えられるリードコマンドとSRAM80のアドレスに従って、データRAMまたはブートRAMに保持されるデータが、インターフェース部90を介してホスト機器に読み出される。
以下、ロードの場合の動作手順の一例について説明する。
まず、ホスト機器がインターフェース部90に対して、ロードすべきNAND型フラッシュメモリ2のアドレス及びSRAMのアドレスを入力し、またロードコマンドを入力する。
するとメモリシステム1では、アクセスコントローラ99が上記アドレス及びコマンドをレジスタ61に設定する。レジスタ61にコマンドが設定されたことを検知したコマンドユーザインターフェース62は、内部コマンド信号を発行する。ロードの場合にはロードコマンドが発行される。
ユーザインターフェース62からロードコマンドを受信することにより、ステートマシン64が起動する。ステートマシン64は、各回路ブロックについて必要な初期化を行った後、アドレス/コマンド発生回路65に対して、NAND型フラッシュメモリ2に対してセンスコマンドを発行するよう要求する。
するとアドレス/コマンド発生回路65は、レジスタ61に設定されたアドレスにつき、データのセンスを行うよう、シーケンサ14に対してセンスコマンドを発行する。
アドレス/コマンド発生回路65からセンスコマンドを受けることで、シーケンサ14が起動する。シーケンサ14は、NAND型フラッシュメモリ2において必要な初期化を行った後、指定されたアドレスのセンス動作を行う。すなわち、電圧発生回路13、ロウデコーダ11、図示せぬセンスアンプ、及びページバッファ12を制御し、センスデータをページバッファ12に格納させる。その後シーケンサ14は、センス動作が終了したことを、ステートマシン64に通知する。
次にステートマシン64は、アドレス/コマンド発生回路65に対して、NAND型フラッシュメモリ2に対して転送コマンドを発行するよう命令する。転送コマンドとは、NAND型フラッシュメモリ2からRAM部4へデータを転送するための命令である。この命令に応じてアドレス/コマンド発生回路65は、転送コマンドを発行してシーケンサ14へ出力する。
転送コマンドを受けたシーケンサ14は、ページバッファ12をデータ転送可能なようにセットする。シーケンサ14の制御に従って、ページバッファ12内のデータがNANDバスを介してECCバッファ71へ転送される。
更にステートマシン64は、ECC部70に対してエラー訂正開始制御信号を発行する。この信号に応答して、ECC部70がECC処理を行う。ECC処理されたデータが、ECC部70からECCバスを介してDQバッファ81に転送される。
引き続き、アクセスコントローラ99の命令に従って、DQバッファ81内のデータが、SRAM80のメモリセルアレイ82に書き込まれる。
以上により、データのロードが完了する。その後、ホスト機器によってインターフェース部90を介してリードコマンドが発行されると、DQバッファ81内のメモリセルアレイ82からインターフェース90内のバーストバッファ91に、RAM/Registerバスを介して16bitのデータ(Dout1〜Dout16)が転送される。
その後、バーストバッファ91から供給されたDout1〜Dout16が、バッファコントローラ94によって発行されるオン・オフ切替え制御信号<A>〜<C>に応じて、インターフェース95から外部のホスト機器に出力される。
以下、バッファコントローラ94及び、データ出力バッファ93の詳細な動作について図7、8を用いて説明する。
<インターフェース90の動作について>
次に、図7及び図8を用いて、前述の通りバーストバッファ91まで来たDoutを外部に出力する、インターフェース90のデータ出力動作について説明する。具体的には、データ出力バッファ93によるDout1〜Dout16の出力動作について説明する。図7は、Dout1〜Dout16の出力(“0”出力、“1”出力)が非同期、または同期であってクロック信号の読み出し周波数が66MHz、83MHzの場合における、MOSトランジスタ140〜145のオン・オフ状態を示した概念図である。
図7に、オン・オフ切替え制御信号<A>〜<C>の取りうるデータ(“0”または“1”)及びMOSトランジスタ140〜145のオン・オフ状態を示す。前述したように、非同期読み出しの場合、VHF=“0/1”RM=“0”とされる。また、同期読み出しであってクロック信号の周波数が66MHz、83MHzの場合、VHF=“0”RM=“1”とされる。いずれの場合であっても、図7に示すようにオン・オフ切替え制御信号<A>〜<C>の値に応じて、MOSトランジスタ140〜145がオンまたはオフ状態とされる。
つまり、Dout1=1(“H”レベル)の場合、例えばオン・オフ切替え制御信号<A>=“1”とされると、これに対応するMOSトランジスタ142はオン状態とされる。オン・オフ切替え制御信号<B>、及びオン・オフ切替え制御信号<C>についても同様である。つまり、MOSトランジスタ140〜142を全てオン状態とさせる場合には、オン・オフ切替え制御信号<A>〜<C>の値をそれぞれ“1”とすればよい。なお、オン・オフ切替え制御信号<A>〜<C>の値が全て“0”とされた場合であっても、MOSトランジスタ140〜142は全てオン状態とされる。また、オン・オフ切替え制御信号<A>〜<C>の値に関わらず、MOSトランジスタ143〜145は全てオフ状態とされる。
また、Dout1=0の場合、データ出力がなされないことから、オン・オフ切替え制御信号<A>〜<C>の値に関わらず、MOSトランジスタ140〜142は全てオフ状態とされる。これに対し、MOSトランジスタ143〜145は、オン・オフ切替え制御信号<A>〜<C>の値に応じてオンまたはオフ状態とされる。具体的に例えばオン・オフ切替え制御信号<A>=“0”とされると、これに対応するMOSトランジスタ143はオン状態とされる。オン・オフ切替え制御信号<B>、及びオン・オフ切替え制御信号<C>についても同様である。なお、MOSトランジスタ140〜142が全てオフ状態である場合には、つまり、オン・オフ切替え制御信号<A>〜<C>が全て“0”である場合には、PADから“0”データが出力される必要があることから、MOSトランジスタ143〜145全てオフ状態とされる。
更に図8は、Dout1〜Dout16の出力(“0”データ、“1”データ)が同期であってクロック信号の読み出し周波数が104MHzの場合における、MOSトランジスタ140〜142のオン・オフ状態を示した概念図である。
図7と同様に図8においても、オン・オフ切替え制御信号<A>〜<C>の取りうるデータ(“0”または“1”)及びMOSトランジスタ140〜145のオン・オフ状態を示す。前述したように、クロック信号が104MHzでの同期読み出しの場合、VHF=“1”RM=“1”とされる。この状態で、ラッチ回路120から出力されたDout1の値が“1”、すなわち“H”レベルの場合、オン・オフ切替え制御信号<A>〜<C>の値に関わらず、MOSトランジスタ140〜142が全てオン状態とされ、MOSトランジスタ143〜145が全てオフ状態とされる。
また、ラッチ回路120から出力されたDout1の値が“0”、すなわち“L”レベルの場合、オン・オフ切替え制御信号<A>〜<C>の値に関わらず、MOSトランジスタ140〜142が全てオフ状態とされ、これに対しMOSトランジスタ143〜145が全てオン状態とされる。
以上からクロック信号の読み出し周波数が104MHzとされレジスタ61内のVHF及びRMの値がそれぞれ“1”の場合、Dout1の信号レベルにより自動的にMOSトランジスタのオン・オフ状態が可変とされる。
<本実施形態に係る効果>
本実施形態に係るメモリシステムであると、データ出力バッファ93の電流供給能力を確保することで、データ出力バッファ93から高速のデータ出力が可能とされる。すなわち、本実施形態は、ホスト機器からメモリシステム1に供給されたConfigデータをレジスタ61が認識する。これによって、メモリシステム1はConfigデータ内のクロック信号の周波数、VHF、及びRMの値を認識する。すなわち、非同期リードまたは同期リードであってクロック信号の周波数が66MHz、83MHzであるのか、更には同期リードであって、104MHzのバーストリードを示すのかを判断する。
本実施形態に係るメモリシステムは、クロック信号の周波数が104MHzで同期リードを行うと認識すると、オン・オフ切替え制御信号<A>〜<C>の値に関わらず、MOSトランジスタ140〜142を全てオン状態とし、電流供給能力を最大とすることで、ノードADQにおける電圧の立ち上がり速度を上げる。つまり、立ち上がり時間が短縮されることから、単位時間当たりに転送できるデータ量が増加する。これによって、ホスト機器から供給されたクロック信号が例え104MHzであったとしても、ノードADQから出力されるDoutがこの周波数に追従することが出来る。すなわち、インターフェース90からホスト機器へのデータ出力を高速化させることが出来る。
また、本実施形態に係るメモリシステムであると、非同期リード、または同期リードであってクロック信号の周波数が66MHz、83MHzの場合は、MOSトランジスタ140〜142のいずれか1つがオン状態とされればよい。これは、ゲート幅の一番小さなMOSトランジスタ140であっても、83MHzの周波数に追従できる程度の電流供給能力を有するからである。換言すれば、ノードADQの電圧波形の立ち上がりから立ち下がりまでの周期が、83MHzのクロック信号の周波数に追従できるからである。またこの場合、データ出力バッファ93はデータ出力に必要なだけの電流供給能力を確保できればよい。すなわちこれによって、ノイズを低減することが出来る。
なお、クロック信号の読み出し周波数が104MHzの場合、MOSトランジスタ140〜142を全てオン状態としなくともメモリシステム1が動作可能な場合、すなわちクロック信号に同期してDoutを出力することが出来るのであれば、必要なトランジスタのみオン状態とすればよい。この場合について、以下第1変形例にて説明する。
[第1変型例]
次に図9〜図11を用いて上記実施形態の第1変型例に係るメモリシステムについて、以下説明する。この変型例においても、半導体記憶装置の一例として、NAND型フラッシュメモリとSRAMとを備えたメモリシステムを挙げる。なお、上記実施形態と同一の構成については説明を省略し、同一の構成については同一の参照符号を付す。
上記実施形態においてVHF=1、RM=1の場合、オン・オフ切替え制御信号<A>〜<C>の値に関わらずMOSトランジスタ140〜142をオン状態とさせ電流供給能力を最大としたのに対し、第1変形例では電流供給能力を低下させ、ノイズを低減させたものである。すなわち、VHF=1、RM=1の場合の場合であっても、ゲート幅がWcを有したMOSトランジスタ140をオフ状態とさせる。
図9に第1変型例に係るバッファコントローラ94の構成例を示す。図9に示すように、第1変形例に係るバッファコントローラ94は、上記実施形態に係るバッファコントロール94のインバータ112、及び116、及びNOR回路106を廃し、新たにインバータ200、201、NOR回路202、NAND回路203、及び204を加えた構成である。
インバータ200は、NAND回路100が行った演算結果を反転し、この反転結果をNAND回路204に転送する。また、インバータ201は、上記インバータ200から供給される信号を更に反転し、この反転結果をNAND回路101、102に転送する。
また、NOR回路202はオン・オフ切替え制御信号<B>とオン・オフ切替え制御信号<C>とのNOR演算を行い、この演算結果をインバータ110が反転する。インバータ110が反転したNOR回路202からの演算結果をNAND回路101の一方に転送する。NAND回路101は、インバータ201、110から供給された演算結果をNAND演算し、この演算結果をインバータ113に転送する。
また、NAND回路102は、インバータ201、111から供給された信号に基づいてNAND演算を行い、この演算結果をインバータ114に転送する。
更に、NAND回路203はインバータ201による演算結果とオン・オフ切替え制御信号<C>とをNAND演算し、この演算結果をNAND回路103に転送する。また、NAND回路204はインバータ200による演算結果とオン・オフ切替え制御信号<A>とのNAND結果をNAND103に転送する。
NAND回路103は、NAND203、204から供給される各々の演算結果に基づいて、NAND演算を行い、演算結果をインバータ115に転送する。
<インターフェース90の動作について>
次に第1変形例に係るインターフェース90のデータ出力動作について図10、図11を用いて説明する。具体的には、図10、図11はオン・オフ切替え制御信号<A>〜<C>とこの制御信号によって動作するMOSトランジスタ140〜145のオン・オフ動作ついて示した概念図である。また上記実施形態と同様、図10は、Dout1〜Dout16の出力(“0”データ、“1”データ)が非同期、または同期の場合を示す。すなわち、VHF、RMは“0”または“1”いずれかの値とされる。図11は、Dout1〜Dout16の出力(“0”データ、“1”データ)が同期であって、クロック信号の読み出し周波数が104MHzの場合を示す。すなわち、VHF、RMの値はそれぞれ“1”とされる。
(1)非同期読み出しであって、読み出し周波数が66MHzまたは83MHzである場合(図10参照)
一例として、VHF=RM=0、Dout1の値が“1”、すなわち“H”レベルの場合を挙げる。この場合、オン・オフ切替え制御信号<A>〜<C>の値及びバッファコントローラ94の構成に応じてMOSトランジスタ140〜142がそれぞれオンまたはオフ状態、MOSトランジスタ143〜145がオフ状態とされる。なお、VHF=0、RM=1の場合、及びVHF=1、RM=0の場合においても上記(1)と同様であるため説明を省略する。なお、この場合においても、図7と同様にMOSトランジスタ143〜145は全てオフ状態とされる。
また、Duot1の値が“0”、すなわち“L”レベルの場合、図7と同様にオン・オフ切替え制御信号<A>〜<C>の値に関わらず、MOSトランジスタ140〜142が全てオフ状態とされる。また、オン・オフ切替え制御信号<A>〜<C>の値に応じて、対応するMOSトランジスタ143〜145がオン・オフいずれかの状態をとる。
(2)同期読み出しであって、読み出し周波数が104MHzである場合(図11参照)
すなわち、VHF=RM=1の場合、オン・オフ切替え制御信号<A>の値、に応じてMOSトランジスタ140がそれぞれオンまたはオフ状態とされる。具体的には、オン・オフ切替え制御信号<A>が“L”レベル(図中“0”)とされると、MOSトランジスタ140に供給されるオン・オフ切替え制御信号<C>が“L”レベル(図中、“×”)すなわちオフ状態とされる。これは、NAND回路203、204における演算結果がNAND回路103によって演算されるからである。すなわち、NAND回路103、及び204はMOSトランジスタ140をオンまたはオフのいずれかを選択する選択部として機能する。
これに対して、図9中のNAND回路101、102、NOR回路202、インバータ110、及び111は固定回路として機能する。すなわち、上記実施形態と同様にNOR回路202、及びインバータ111に入力されるオン・オフ切替え制御信号<B>、<C>の値に関わらず、NAND回路101、及び102は“H”レベル信号を出力する。
<第1変型例に係る効果>
第1変形例に係るメモリシステムであると、上記効果に加え、データ出力時における更なるノイズの低減が出来、更には面積縮小が可能となる。
まず、ノイズ低減について説明する。
上記第1変形例においてVHF=RM=1の場合について説明したように、オン・オフ切替え制御信号<A>を用いてデータ出力バッファ93の電流供給能力を下げることで、ノードADQにおけるノイズの低減が図れる。データ出力バッファ93の電流供給能力を上昇させ過ぎると、ノイズが発生してしまう恐れがある。そこで第1変形例では、電流供給能力を下げることで、ノイズの発生を回避することが出来る。すなわち、データ出力バッファ93の電流供給能力の自由度を上げることが出来る。
次に、面積縮小について説明する。
第1変形例に係るメモリシステム、すなわち、VHF=RM=1の場合においてデータ出力バッファ93の電流供給能力を可変にする場合であっても、上記実施形態と同様、オン・オフ切替え制御信号<A>〜<C>のみでMOSトランジスタ140〜142を制御することが出来る。
つまり、比較例として電流供給能力が可変なデータ出力バッファであると、MOSトランジスタ140〜142をオンまたはオフするための信号として、上記オン・オフ切替え制御信号<A>〜<C>の他、例えばオン・オフ切替え制御信号<D>〜<F>を用いる必要がある。これらオン・オフ切替え制御信号<A>〜<F>は対応する選択回路を介してデータ出力バッファ93に示すMOSトランジスタ140〜142のゲートに入力されるものとする。
具体的には、一例としてMOSトランジスタ142を制御するためには、オン・オフ制御信号<A>、<D>を使用する必要がある。具体的な構成として、オン・オフ制御信号<A>、<D>のいずれかが、選択回路を介してMOSトランジスタ142のゲートに接続され、この選択回路にはオン・オフ制御信号<A>、<D>のいずれかをMOSトランジスタ142のゲートに転送するかを選択する選択信号が入力される。そして、MOSトランジスタ142をオンさせる際には、この選択信号によりオン・オフ制御信号<A>がそのゲートに与えられ、オフする際にはこの選択信号によりオン・オフ制御信号<D>が与えられる。MOSトランジスタ141、140も同様である。その結果、1個のトランジスタあたり、2つの制御信号が必要となり、トータルとして6つの制御信号が必要となる。このオン・オフ切替え制御信号<D>〜<F>は、オン・オフ切替え制御信号<A>〜<C>と同様にNAND型フラッシュメモリ2におけるメモリセルアレイ10内の管理領域に保持され、レジスタに一旦保持された後、このデータ出力バッファ93に入力される。つまり、このバッファコントローラ94に入力するオン・オフ切替え制御信号<D>〜<F>を一時保持するためのレジスタが更に必要とされる。
これに対し、第1変形例のように、104MHzでデータをPADから出力する際に、出力ノイズを低減した場合であっても、オン・オフ切替え制御信号<A>〜<C>のみでデータ出力バッファ93を制御することが出来る。従って、第1変形例では、上記オン・オフ切替え制御信号<D>〜<F>を必要とせずレジスタを増やす必要性もない。
[第2変型例]
次に図12〜図15を用いて上記実施形態の第2変型例に係るメモリシステムについて、以下説明する。この変型例においても、半導体記憶装置の一例として、NAND型フラッシュメモリとSRAMとを備えたメモリシステムを挙げる。なお、上記実施形態と同一の構成については説明を省略し、同一の構成については同一の参照符号を付す。
上記実施形態は外部のホスト機器から供給されたクロック信号の周波数に応じて、データ出力バッファ93の電流供給能力を可変としたのに対し、第2変型例では、ホスト機器から供給される定格電圧(V1、V2(>V1))に応じてデータ出力バッファ93の電流供給能力を可変とするものである。すなわち、V2の場合には、データ出力バッファ93における電流供給能力が電圧V1に比べ大きくなることから、MOSトランジスタ140〜142全てがオン状態とされることはない。
一方、電圧V1の場合には、電流供給能力が低いことからMOSトランジスタ140〜142を全てオン状態とし、電流供給能力を最大に上昇させることも出来、更には必要に応じてノードADQへの電流供給能力を下げ、ノイズ低減をすることも可能とされる。
図12に、第2変型例に係るメモリシステム1の全体構造例を示す。図12に示すように、第2変形例に係るメモリシステム1は、NAND型フラッシュメモリ2において、外部から供給される電圧を検知する検知回路19(図、外部電位検知回路19)を更に備える。検知回路19は、外部から供給される電位が、電圧V1(例えば、1.8V)、または電圧V2(>V1)かを検知し、電圧V1が供給されたことを検知すると、検知回路19は信号IF18V=1をバッファコントローラ94に供給する。なお、電圧V2の場合、信号IF18Vの値は“0”とされる。
次に、図13を用いて第2変型例に係るバッファコントローラ94の構成例を示す。図13に示すように、第2変形例に係るバッファコントローラ94は、上記第1変型例に係るバッファコントローラ94において、NAND回路100及びインバータ200を廃し、新たにインバータ201に信号IF18Vを入力した構成を備える。すなわち、上記実施形態、及び第1変型例において用いたVHF、RMを用いることなく、信号IF18Vを用いて出力バッファ93の電流供給能力を可変とする。
<インターフェース90の動作について>
次に図14、図15を用いて、第2変形例に係るメモリシステム1のデータ出力動作について説明する。具体的には、図14、図15はDout1、オン・オフ切替え制御信号<A>〜<C>、及びこの制御信号によって動作するMOSトランジスタ140〜145のオン・オフ動作ついて示した概念図である。図14は、Dout1の値が“0”または“1”いずれかとされ、且つIF18V=0の場合を示し、これに対し図15はDout1の値が“0”または“1”いずれかとされ、且つIF18V=1の場合の場合を示したものである。
図14に示すように、Dout1の値が“1”とされ、且つIF18V=“0”の場合、すなわちホスト機器からの供給電圧がV2である場合、オン・オフ切替え制御信号<A>〜<C>の値に応じてMOSトランジスタ140〜145がそれぞれオンまたはオフ状態とされる。すなわち、図13の構成及びオン・オフ切替え制御信号<A>〜<C>の値に従って、MOSトランジスタ140〜142がそれぞれオンまたはオフ状態とされる。また、この際、Dout1の値が“1”であることから、MOSトランジスタ143〜145はオン・オフ切替え制御信号<A>〜<C>の値に関わらず、オフ状態とされる。
一方、図14中、Dout1の値が“0”、すなわち“L”レベルの場合、図7と同様にオン・オフ切替え制御信号<A>〜<C>の値に関わらず、MOSトランジスタ140〜142が全てオフ状態とされる。また、オン・オフ切替え制御信号<A>〜<C>の値に応じて、対応するMOSトランジスタ143〜145がオン・オフいずれかの状態をとる。
これに対し、図15に示すようにDout1の値が“1”とされ、且つIF18V=1の場合、すなわちホスト機器からの供給電圧がV1である場合、図13に示すNAND回路103の演算結果は、オン・オフ切替え制御信号<A>の値に応じた値とされる。図15に示すようにオン・オフ切替え制御信号<A>=“0”、すなわち“H”レベルである場合、NAND回路103の演算結果は“L”レベルとされ、この結果、図示するようにMOSトランジスタ140はオフ状態(図中、“×”)とされる。これに対し、オン・オフ切替え制御信号<A>=“0”、すなわち“L”レベルである場合、NAND回路103の演算結果は“H”レベルとされ、この結果、図15に示すようにMOSトランジスタ140はオン状態(図中、“○”)とされる。
また図15中、Dout1の値が“0”とされ、且つIF18V=1の場合、ノードADQから“0”データが出力される。このため、MOSトランジスタ140〜142は、オン・オフ切替え制御信号<A>〜<C>の値に関わらず、全てオフ状態(図中、“×”)とされる。これに対し、オン・オフ切替え制御信号<A>〜<C>の値に応じて、MOSトランジスタ143〜145がそれぞれオンまたはオフ状態いずれかの状態をとる。
<第2変型例に係る効果>
第2変型例に係るメモリシステムであると、ホスト機器からの電圧値によってデータ出力バッファ93の電流供給能力の大きさを可変とすることが出来る。
具体的には、電圧V1の場合、MOSトランジスタ140〜142を全てオン状態とし、電圧供給能力を上げることが必要であるが、この反面、すなわち電流供給能力を上げたことによってノードADQからデータが出力される際のノイズが発生してしまう。この場合、このノイズを低減させるべく、オン・オフ切替え制御信号<A>の値に応じてデータ出力バッファ93の電流供給能力を可変とする。つまり、ノイズを低減させたい場合にはオン・オフ切替え制御信号<A>=“0”とすることでMOSトランジスタ140をオフ状態としてやればよい。このように第2変型例に係るメモリシステムであると、IF18Vの値に応じてオン・オフ切替え制御信号<A>を、MOSトランジスタ140を自動的にオン・オフさせる制御信号として機能させることが出来る。
また、IF18V=0、すなわちホスト機器からの供給電圧がV2である場合、データ出力バッファ93における電流供給能力が上がり過ぎることから、図14に示すように少なくともMOSトランジスタ140〜142のいずれか1つがオン状態とされればよい。これによって、データ出力時のノイズを低減することが出来る。
[第3変形例]
次に図16を用いて上記実施形態の第3変形例に係るメモリシステムについて、以下説明する。第3変型例においても、半導体記憶装置の一例として、NAND型フラッシュメモリとSRAMとを備えたメモリシステムを挙げる。なお、上記実施形態と同一の構成については説明を省略し、同一の構成については同一の参照符号を付す。第3変形例は上記第1変形例と第2変形例のいずれかを選択可能な構成である。
図16に、第3変型例に係るバッファコントローラ94の全体構成例を示す。上述したように第3変形例に係るバッファコントローラ94の構成は、上記第1変形例と第2変型例との構成を組み合わせ、場合に応じていずれかを選択できる切替信号を設けた構成である。図16に示すように、上記第3変形例に係るバッファコントロール94は、上記実施形態に係るバッファコントロール94にNAND回路210及びインバータ211を新たに設け、切替信号によって、インバータ211の出力とNAND回路100の出力とを切替えることの出来る構成を備える。
図16に示すように、NAND回路210は、NAND回路100による演算結果とインバータ211によって反転された信号IF18Vとの演算結果をNAND演算し、インバータ201とNAND回路204とにそれぞれ供給する。具体的には、切替信号の値が“1”とされると、IF18Vが選択され、切替信号の値が“0”とされると、NAND回路100の演算結果が選択される。動作については、上記第1、第2変型例で説明した内容と同じとされることから説明を省略する。
<第3変形例に係る効果>
第3変形例に係るメモリシステムであっても上記第1変形例または第2変形例いずれかの効果を得ることができる。つまり、第3変形例に係るバッファコントローラ94は、切替信号によって上記第1変形例の構成を取ることも、第2変型例の構成を取ることも可能とされる。
なお、上記実施形態、及び第1変形例〜第3変形例における半導体記憶装置は、One NANDに限られない。つまり、データを保持可能なメモリ素子であれば、そのメモリ素子に本実施形態、及び第1〜第3変形例に係るデータ出力バッファ93及びバッファコントローラ94の構成を適用することも可能である。その際、ホスト機器からクロック信号の周波数を認識出来、また本実施形態、及び第1〜第3変形例で説明したような動作をするのであれば、データ出力バッファ93及びバッファコントローラ94が使用する信号はRMやVHFなどの信号以外であってもよい。
またなお本実施形態では、一例としてMOSトランジスタ140〜142の3つで構成したデータ出力バッファ93を示したが、この値に限られない。つまり、電流供給能力を上げるといった点でメモリシステム1の特性向上を考慮すれば、ノードADQに電流を供給するMOSトランジスタの数は4つでもそれ以上の数でもよい。この場合、オン・オフ制御信号<A>〜<C>の3つで制御してもよいし、それ以上の制御信号を用いてもよい。
更に、本実施形態及び第1〜第3変形例では、クロック信号の周波数を66MHz、83MHz、104MHzとしたが、これ以上の周波数であっても、上記説明した構成を適用することが出来る。つまり、クロック信号が104MHz以上の周波数であっても、そのクロック信号に同期してデータを出力さえできれば、上記構成を以ってして足りる。
また、本実施形態及び第1〜第3変形例では、Configデータまたは信号IF18Vを以ってデータ出力バッファ93及びバッファコントローラ94を制御したが、データ出力バッファ93及びバッファコントローラ94を制御できればこれ以外のパラメータを用いたメモリシステム1であってもよい。
なお、上記実施形態、第1〜第3変形例では、データの高速出力が可能なインターフェース90をメモリシステム1が搭載した場合について示したが、この構成は、ホスト側にも上記実施形態、第1〜第3変形例の概念を適用することが出来る。すなわち、ホスト側にも上記インターフェース90を搭載することで、ホスト側に適用されたノードADQに流れ込む電流供給能力を自動で可変させることが出来る。この際、インターフェース90における電流供給能力を可変とするパラメータ(例えば、VHF、RM)の値をホスト自身で判断できればよく、また、IF18Vをホスト機器が使用するには、ホスト機器に上記検知回路19を設ければ済む。なお、ホスト機器に検知回路19を搭載した場合、この検知回路19はホスト機器に電圧を供給する外部電位を検知する機能を有する。 本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。