(58)【調査した分野】(Int.Cl.,DB名)
ワード線群とビット線群の交差位置にそれぞれ配置され、共通のソース線に接続されたメモリセル群を含む複数のメモリブロックであって、前記複数のメモリブロック間で前記ワード線群を共有し、前記複数のメモリブロック毎に分離された複数の前記ソース線を備える複数のメモリブロックと、
プログラム動作時に、前記複数のメモリブロックのうち、プログラムするメモリセルが含まれるメモリブロックの前記ソース線に第1電圧を供給し、前記プログラムするメモリセルが含まれないメモリブロックの前記ソース線に前記第1電圧と異なる第2電圧を供給する回路部と、
を備え、
前記メモリセル群は、Pチャネル型トランジスタであることを特徴とする半導体記憶装置。
1回の前記プログラム動作時に、前記プログラムするメモリセルが、前記ワード線群を共有する前記複数のメモリブロックのうち、いずれか1つのメモリブロックから選択されることを特徴とする請求項1又は2に記載の半導体記憶装置。
1回の前記プログラム動作時に、前記プログラムするメモリセルの情報を含むデータを上位ビットデータと下位ビットデータに分割し、前記上位ビットデータを、前記複数のメモリブロックのうち、第1のメモリブロックに対応させ、前記下位ビットデータを、前記複数のメモリブロックのうち、第2のメモリブロックに対応させて、前記プログラム動作を行うことを特徴とする請求項1又は2に記載の半導体記憶装置。
【発明を実施するための形態】
【0009】
以下、フラッシュメモリを例に、図面を参照して詳細に説明する。
図1はメモリ内蔵マイコンの構成例を示す図である。
メモリ内蔵マイコン10は、周辺IO(Input/Output)ポート11、周辺IO制御回路12、CPU(Central Processing Unit)13、RAM(Random Access Memory)14及びROM(Read Only Memory)15を含む。
【0010】
メモリ内蔵マイコン10は、CPU13によって制御される。CPU13には、内部バス16を介してRAMインタフェース17が接続され、RAMインタフェース17にRAM14が接続されている。また、CPU13には、内部バス16を介してROMインタフェース18が接続され、ROMインタフェース18にROM15が接続されている。内部バス16には、周辺IOポート11に接続された周辺IO制御回路12が接続されている。
【0011】
フラッシュメモリは、このようなメモリ内蔵マイコン10のROM15として使用され得る。尚、フラッシュメモリは、このほか、単体のメモリチップとしても使用され得る。
図2はフラッシュメモリの構成例を示す図である。
【0012】
フラッシュメモリ20は、メモリセル(メモリセルトランジスタ)を含むメモリコア21、及び周辺回路を含む。周辺回路は、コマンド生成回路22、内部電圧生成回路23、メモリコア制御回路24、アドレス生成回路25及びデータ入出力回路26を含む。
【0013】
コマンド生成回路22は、チップイネーブルピンCEXから入力される信号(チップイネーブル信号)によって活性化され、メモリコア21を制御する各種コマンドを生成する。コマンド生成回路22は、コントロールピンCP0−3から入力される信号(コントロール信号)と、ライトイネーブルピンWEXから入力される信号(ライトイネーブル信号)との組み合わせに基づき、コマンドを生成する。コマンド生成回路22は、コントロール信号及びライトイネーブル信号を用いて、読み出し(リード(READ))、書き込み(プログラム(PROGRAM))、消去(イレース(ERASE))の各動作モードを指示するモード信号RD、PGM、ERSを生成する。
【0014】
内部電圧生成回路23は、モード信号RD、PGM又はERSに基づき、それが示す動作モードでメモリコア21に必要となる内部電圧Vを生成する。例えば、メモリコア21内のメモリセルに接続されるワード線、ビット線、ソース線に印加する電圧、メモリセルのウェルに印加する電圧、ビット線及びグローバルビット線をプリチャージする際の電圧等を生成する。
【0015】
メモリコア制御回路24は、モード信号RD、PGM又はERSに基づき、メモリコア21を制御するメモリコア制御信号MCを生成する。
アドレス生成回路25は、アドレスピンFA00−20から入力されるアドレスに基づき、モード信号RD、PGM又はERSに応じて、ロウアドレスRA、カラムアドレスCAを生成する。ロウアドレスRAは、ワード線及びソース線の選択に用いられる。カラムアドレスCAは、ビット線及びグローバルビット線の選択に用いられる。
【0016】
データ入出力回路26は、入力データピンDIN00−15及び出力データピンDO00−15を介して、フラッシュメモリ20外部とのデータのやり取りを行う。データ入出力回路26は、プログラム動作時には、入力データピンDIN00−15から入力される信号DIをメモリコア21に出力し、リード動作時には、メモリコア21から読み出される信号DOを出力データピンDO00−15に出力する。
【0017】
図3はメモリコアの構成例を示す図である。
メモリコア21は、メモリブロック領域100を含む。メモリブロック領域100は、メモリセルアレイ110、ワード線選択回路120及びビット線選択回路130を含む。尚、メモリコア21は、このようなメモリブロック領域100を複数(この例ではBLK0とBLK1の2つ)、含む場合がある。ここでは、BLK0を例に、メモリブロック領域100の構成について説明する。
【0018】
メモリブロック領域100に含まれるメモリセルアレイ110は、ワード線WL(この例ではWL0−3)とビット線BL(この例ではBL0−3)の交差位置にそれぞれ配置された複数のメモリセル111(この例ではm00−33)を含んでいる。メモリセルアレイ110内の全メモリセル111は、共通のソース線SRC(この例ではSRC0)に接続されている。
【0019】
メモリセル111は、例えば、Pチャネル型MOS(Metal Oxide Semiconductor)トランジスタ(PMOS)とされる。このようなPMOSのメモリセル111は、半導体基板上にゲート電極、P型ソース領域及びP型ドレイン領域を形成して得ることができる。メモリセルアレイ110内のメモリセル111は、半導体基板に設けた同一の又は互いに電気的に接続されたN型ウェルNW(この例ではNW0)に形成される。
【0020】
図3に示すワード線選択回路120は、メモリコア制御信号MC及びロウアドレスRAに基づき、ワード線を選択する。
図4はワード線選択回路の一例を示す図である。
【0021】
この
図4のワード線選択回路120では、ロウアドレスRA<0:1>及び信号ALLTに従って、ワード線WL0−3のいずれかが選択される。ワード線選択回路120は、NORゲート121、NORゲート122、及び各ワード線WL0−3に対応したワードデコーダ123(ワードデコーダ0−3)を含む。各ワードデコーダ123は、NANDゲート124、NOTゲート125、CMOSトランスファゲート126及びCMOSトランスファゲート127を含んでいる。
【0022】
NORゲート121は、信号ALLT及びロウアドレスRA<0:1>を入力とし、信号RB<0:1>を出力する。NORゲート122は、信号ALLT及び信号RB<0:1>を入力とし、信号RT<0:1>を出力する。ワード線WL0に対応するワードデコーダ123のNANDゲート124には、信号RB<0>及び信号RB<1>が入力される。同様に、ワード線WL1に対応するワードデコーダ123のNANDゲートには、信号RT<0>及び信号RB<1>が入力される。ワード線WL2に対応するワードデコーダ123のNANDゲートには、信号RB<0>及び信号RT<1>が入力される。ワード線WL3に対応するワードデコーダ123のNANDゲートには、信号RT<0>及び信号RT<1>が入力される。ワードデコーダ123のNANDゲート124の出力信号、及びその出力信号のNOTゲート125による反転信号は、CMOSトランスファゲート126、CMOSトランスファゲート127に入力される。
【0023】
ワード線選択の際、NORゲート121の入力信号ALLTはLow(L)レベルとされる。例えば、ワード線WL0が選択される場合、ロウアドレスRA<0>、RA<1>はLレベルで、ワードデコーダ123のNANDゲート124の2入力はHigh(H)レベルとなり、その出力はLレベルとなる。その結果、ワード線WL0は、電圧VWT0と接続される。選択されないワード線WL1−3に対応するワードデコーダ123のNANDゲート124の2入力は、一方がLレベルで他方がHレベル、又はいずれもLレベルとなり、その結果、電圧VWB0に接続される。尚、イレース動作時には、信号ALLTがHレベルとなり、全てのワード線WL0−3が電圧VWB0に接続される。
【0024】
電圧VWT0と電圧VWB0の値は、動作モードに従って設定される。例えば、プログラム動作モードでは、電圧VWT0が9V、電圧VWB0が0Vに設定される。リード動作モードでは、電圧VWT0が−3V、電圧VWB0が1.8Vに設定される。イレース動作モードでは、電圧VWT0が0V、電圧VWB0が−9Vに設定される。電圧VWT0及び電圧VWB0は、入力信号と論理素子出力の振幅の中にVWT0及びVWB0が含まれるように設定される。
【0025】
続いて、
図3に示すビット線選択回路130及びグローバルビット線選択回路140について述べる。ビット線選択回路130は、メモリコア制御信号MC及びカラムアドレスCAに基づき、ビット線BL0−3を選択する。ビット線選択回路130は、選択されたビット線を、メモリコア制御信号MC及びカラムアドレスCAに基づきグローバルビット線選択回路140により選択される所定電圧のグローバルビット線GBL(GBL0,GBL1)と接続する。
【0026】
図5はビット線選択回路の一例を示す図、
図6はグローバルビット線選択回路の一例を示す図である。
図5に示すビット線選択回路130は、NOTゲート131、NOTゲート132、NORゲート133及びNORゲート134を含む。NOTゲート131は、カラムアドレスCA0を入力とし、その反転信号がNOTゲート132及びNORゲート133に入力されると共に、選択信号SYT0とされる。NORゲート133には、更に信号FLTが入力され、その出力は選択信号SYB0とされる。NOTゲート132の出力は、NORゲート134に入力されると共に、選択信号SYT1とされる。NORゲート134には、更に信号FLTが入力され、その出力が選択信号SYB1とされる。
【0027】
ビット線BL0は、Nチャネル型MOSトランジスタ(NMOS)135aを介してグローバルビット線GBL0に接続され、NMOS135bを介して電源線V24(電圧2.4V)に接続されている。NMOS135aのゲートには選択信号SYT0が入力され、NMOS135bのゲートには選択信号SYB0が入力される。ビット線BL1は、NMOS136aを介してグローバルビット線GBL0に接続され、NMOS136bを介して電源線V24に接続されている。NMOS136aのゲートには選択信号SYT1が入力され、NMOS136bのゲートには選択信号SYB1が入力される。ビット線BL2は、NMOS137aを介してグローバルビット線GBL1に接続され、NMOS137bを介して電源線V24に接続されている。NMOS137aのゲートには選択信号SYT0が入力され、NMOS137bのゲートには選択信号SYB0が入力される。ビット線BL3は、NMOS138aを介してグローバルビット線GBL1に接続され、NMOS138bを介して電源線V24に接続されている。NMOS138aのゲートには選択信号SYT1が入力され、NMOS138bのゲートには選択信号SYB1が入力される。
【0028】
この
図5に例示するビット線選択回路130は、ビット線BL0とビット線BL1のいずれかをグローバルビット線GBL0に接続し、ビット線BL2とビット線BL3のいずれかをグローバルビット線GBL1に接続する。信号FLTがLレベルの時、非選択ビット線(グローバルビット線と接続されないビット線)は、電源線V24に接続される。プログラム動作モードでは、非選択ビット線の電圧をこのような電源線V24の電圧に設定する。一方、信号FLTがHレベルの時、非選択ビット線は電源線V24とは接続されず、ハイインピーダンス(HiZ)状態になる。リード動作モード、イレース動作モードでは、非選択ビット線をこのようなHiZ状態に設定する。
【0029】
また、
図6に示すグローバルビット線選択回路140は、上記ビット線選択回路130と同様に、NOTゲート141、NOTゲート142、NORゲート143及びNORゲート144を含む。NOTゲート141は、カラムアドレスCA1を入力とし、その反転信号がNOTゲート142及びNORゲート143に入力されると共に、選択信号SGT0とされる。NORゲート143には、更に信号FLTが入力され、その出力は選択信号SGB0とされる。NOTゲート142の出力は、NORゲート144に入力されると共に、選択信号SGT1とされる。NORゲート144には、更に信号FLTが入力され、その出力が選択信号SGB1とされる。
【0030】
グローバルビット線GBL0は、NMOS145aを介してメインビット線MBL0に接続され、NMOS145bを介して電源線V24に接続されている。NMOS145aのゲートには選択信号SGT0が入力され、NMOS145bのゲートには選択信号SGB0が入力される。グローバルビット線GBL1は、NMOS146aを介してメインビット線MBL0に接続され、NMOS146bを介して電源線V24に接続されている。NMOS146aのゲートには選択信号SGT1が入力され、NMOS14
6bのゲートには選択信号SGB1が入力される。
【0031】
この
図6に例示するグローバルビット線選択回路140は、グローバルビット線GBL0とグローバルビット線GBL1のいずれかをメインビット線MBL0に接続する。
続いて、
図3に示すリードライトアンプ150について述べる。リードライトアンプ150は、リードアンプ及びライトアンプを含み、このリードライトアンプ150に、グローバルビット線選択回路140がメインビット線MBLを介して接続されている。リードアンプは、グローバルビット線GBLを介して接続されたメモリセル111に流れる電流に従って、そのメモリセル111のデータを読み出し、それを基に信号DOを出力する。ライトアンプは、入力される信号DIに基づき、グローバルビット線GBLに所定電圧を印加する。
【0032】
図7はリードアンプの一例を示す図、
図8はライトアンプの一例を示す図である。
図7に示すリードアンプ150aは、グローバルビット線GBLの電圧VGBLとリファレンス電圧VREFを入力とするコンパレータ151、及びコンパレータ151の出力の反転信号を信号DOとして出力するNOTゲート152を含む。
【0033】
リードアンプ150aは、リード動作モードで活性化する。リード対象として選択されたメモリセル111が閾値電圧Vthの高いプログラム状態にあると、メモリセル111に電流が流れ、グローバルビット線GBLに電荷が供給される。この時のグローバルビット線GBLの電圧VGBLはHレベルとされ、リードアンプ150aからはLレベルの信号DOが出力される。一方、リード対象として選択されたメモリセル111が閾値電圧Vthの低いイレース状態にあると、メモリセル111に電流が流れず、グローバルビット線GBLの電圧VGBLはLレベルとされ、リードアンプ150aからはHレベルの信号DOが出力される。
【0034】
図8に示すライトアンプ150bは、NOTゲート153、NANDゲート154、NANDゲート155、NANDゲート156、NORゲート157、PMOS158及びNMOS159を含む。
【0035】
NOTゲート153には、信号DIが入力される。NANDゲート154には、信号HGBLBと信号WABが入力される。NANDゲート155には、信号HGBLBと、NOTゲート153の出力即ち信号DIの反転信号が入力される。NANDゲート154の出力及びNANDゲート155の出力は、NANDゲート156に入力され、その出力は、PMOS158のゲートに入力される。NANDゲート155の出力及び信号WABは、NORゲート157に入力され、その出力は、NMOS159のゲートに
入力される。
【0036】
信号HGBLBがLレベルの時、NANDゲート156の出力はLレベルとなり、グローバルビット線GBLは電圧VAT(電源線V24(2.4V))に接続される。リード動作モードにおけるリード前(センス前)のグローバルビット線GBLのプリチャージでは、このような状態とされる。信号HGBLBがHレベルで信号WABがHレベルの時、グローバルビット線GBLはHiZ状態になる。リード動作モードにおけるリード時(センス時)には、このような状態とされる。プログラム動作モード時には、信号WABがLレベルになり、グローバルビット線GBLは信号DIと同じ極性になる。信号DIがLレベルの時は、グローバルビット線GBLは電圧VSS(接地線)に接続され、信号DIがHレベルの時は、グローバルビット線GBLは電圧VATに接続される。
【0037】
続いて、上記
図3〜
図8に示したようなメモリコア21を含むフラッシュメモリ20のリード、イレース、プログラムの各動作について述べる。
まず、リード動作について説明する。ここでは、
図3に示したメモリブロック領域BLK0のメモリセルアレイ110に含まれるメモリセル111のうち、m00のメモリセル111に対してリード動作を行う場合を例にして説明する。
【0038】
図9はリード動作波形の一例を示す図である。
リード動作では、コントロールピンCP0−3にリードコマンドを設定してリード動作モードにエントリし、同時にアドレスピンFA00−20にロウとカラムを指定する選択ワードアドレスを設定する。ライトイネーブルピンWEXに入力されるライトイネーブル信号を下げると、ロウアドレスRAに従ってワード線、ここではワード線WL0が選択され、電圧V18(1.8V)から負電位の電圧VWT0(例えば−3V)になる。非選択のワード線WL1−3は、電圧V18に保持される。尚、ソース線SRC0は、非選択のワード線WL1−3と同じ電圧V18とされている。
【0039】
リード動作モードにエントリし、アドレスを設定すると、カラムアドレスCAに従って、ビット線選択回路130の選択信号SYT0、及びグローバルビット線選択回路140の選択信号SGT0がLレベル(VSS)からHレベル(VCC)になる。それ以外の選択信号SYT1,SGT1,SYB0−1,SGB0−1は、いずれもLレベル(VSS)を保持する。これにより、選択されたメモリセル111(m00)に繋がるビット線BL0がグローバルビット線GBL0に接続され、グローバルビット線GBL0がメインビット線MBL0を介してリードアンプ150aに接続される。
【0040】
グローバルビット線GBL0は、ライトイネーブルピンWEXに入力されるライトイネーブル信号がHレベルの時、ソース線SRC0と同じ電圧V18に設定される。ワード線WL0が電圧V18から電圧VWT0に下がると、メモリセル111の状態によって、グローバルビット線GBL0の電圧が変化する。即ち、メモリセル111が閾値電圧Vthの高いプログラム状態(pr.)にある場合、メモリセル111に電流が流れ、グローバルビット線GBL0はHレベル(V18)になる。メモリセル111が閾値電圧Vthの低いイレース状態(er.)にある場合、メモリセル111には電流が流れず、グローバルビット線GBL0は、リードライトアンプ150のリードアンプ150aの電流源によって引き抜かれ、Lレベル(VSS)になる。
【0041】
このようなグローバルビット線GBL0の状態を受けて、信号DOが変化する。即ち、メモリセル111がプログラム状態(pr.)にあり、グローバルビット線GBL0がHレベルの場合、信号DOはLレベル(VSS)になる。メモリセル111がイレース状態(er.)にあり、グローバルビット線GBL0がLレベルの場合、信号DOはHレベル(VCC)になる。
【0042】
次に、イレース動作について説明する。ここでは、
図3に示したメモリブロック領域BLK0のメモリセルアレイ110に含まれるメモリセル111に対してイレース動作を行う場合を例にして説明する。
【0043】
図10はイレース動作波形の一例を示す図である。
イレース動作では、コントロールピンCP0−3にイレースコマンドを設定してイレース動作モードにエントリし、同時にアドレスピンFA00−20にメモリブロック領域100を指定するメモリブロックアドレスを設定する。選択されたメモリブロック領域100のワード線WL0−3は、一旦電圧VSSに設定され、ライトイネーブルピンWEXに入力されるライトイネーブル信号を下げると、負電位の電圧VWB0(例えば−9V)になる。
【0044】
ビット線選択回路130及びグローバルビット線選択回路140の全ての選択信号SYT0−1,SGT0−1,SYB0−1,SGB0−1は、Lレベル(VSS)を保持する。これにより、選択されたメモリブロック領域100のビット線BL0−3を、グローバルビット線GBL及び電源線V24から切り離す。
【0045】
選択されたメモリブロック領域100のワード線WL0−3が電圧VWB0に下がると、そのメモリブロック領域100のN型ウェルNW0及びソース線SRC0が、9V程度の高い電圧VNW0に設定される。これにより、そのメモリブロック領域100の全メモリセル111のデータが一括で消去される。
【0046】
次に、プログラム動作について説明する。ここでは、
図3に示したメモリブロック領域BLK0のメモリセルアレイ110に含まれるメモリセル111のうち、m00のメモリセル111に対してプログラム動作を行う場合を例にして説明する。
【0047】
図11はプログラム動作波形の一例を示す図である。
プログラム動作では、コントロールピンCP0−3にプログラムコマンドを設定してプログラム動作モードにエントリし、同時にアドレスピンFA00−20にロウとカラムを指定する選択ワードアドレスを設定する。ライトイネーブルピンWEXに入力されるライトイネーブル信号を下げると、ロウアドレスRAに従ってワード線、ここではワード線WL0が選択され、電圧V18(1.8V)から正電位の電圧VWT0(例えば9V)になる。非選択のワード線WL1−3は、電圧VWB0(例えば0V)になる。
【0048】
プログラム動作モードにエントリし、アドレスを設定すると、カラムアドレスCAに従って、ビット線選択回路130の選択信号SYT0,SYB1、及びグローバルビット線選択回路140の選択信号SGT0,SGB1がLレベル(VSS)からHレベル(VCC)になる。それ以外の選択信号SYT1,SGT1,SYB0,SGB0は、いずれもLレベル(VSS)を保持する。これにより、選択されたメモリセル111(m00)に繋がるビット線BL0がグローバルビット線GBL0に接続され、グローバルビット線GBL0がメインビット線MBL0を介してライトアンプ150bに接続される。
【0049】
入力された信号DIに従って、ライトイネーブルピンWEXに入力されるライトイネーブル信号が下がると、ライトアンプ150bがグローバルビット線GBL0の電圧を設定する。プログラムするメモリセル111の場合(pr.)、Lレベル(VSS)の信号DIが入力され、ビット線BL0が電圧VSS(0V)になる。プログラムするメモリセル111でない場合(inhibit)、Hレベル(VCC)の信号DIが入力され、ビット線BL0が電圧VAT(インヒビット電圧V24(2.4V))になる(非選択のメモリセル111に繋がるビット線BLが電圧VATになる)。
【0050】
プログラム動作モードでライトイネーブルピンWEXに入力されるライトイネーブル信号がLレベルになると、N型ウェルNW0は、5V程度の電圧VNW0に設定される。プログラム動作モードでは、ソース線SRC0は1.8Vに設定される。
【0051】
上記のようなリード、イレース、プログラムの各動作時のワード線WL(WL0−3)、ビット線BL(BL0−3)、ソース線SRC(SRC0)及びN型ウェルNW(NW0)の電圧の設定例を
図12にまとめて示す。
【0052】
ここで、上記のようなプログラム動作時にメモリセルアレイ110内のメモリセル111が受けるディスターブについて説明する。
図13はディスターブの説明図である。
【0053】
例えば、
図3及び
図13に示すメモリセルアレイ110内のm00のメモリセル111にプログラムする場合、そのメモリセル111のゲートに繋がるワード線WL0が選択され、ワード線WL0が高い電圧、例えば9Vに設定される。m00のメモリセル111に繋がるソース線SRC0は、例えば1.8Vに設定され、ドレインに繋がるビット線(選択ビット線)BL0は、例えば0Vに設定される。他のビット線(非選択ビット線)BL1−3は、例えば2.4Vに設定される。
【0054】
この時、メモリセルアレイ110内のメモリセル111のうち、ゲートがワード線WL0につながり、ドレインが非選択ビット線BL1−3に繋がる非選択のメモリセル111は、ゲートディスターブを受ける。即ち、プログラムしないm01,m02,m03(
図13にはm01のみ図示)のメモリセル111において、ゲートディスターブを受け、その閾値電圧Vthが変化する可能性が生じる。また、これらの非選択のメモリセル111に接続されるソース線SRC0、ビット線BL1−3の電圧が低いと、閾値電圧Vthが変化し易くなる。
【0055】
図14はゲートディスターブを受ける時間と閾値電圧の関係の説明図である。
図14には、プログラム動作時に、プログラムされていないイレース状態のメモリセル111(イレースビット)の閾値電圧Vthが、ゲートディスターブを受ける時間によってどのように変化するかを示している。横軸はイレースビットがゲートディスターブを受ける時間、縦軸はイレースビットの閾値電圧Vth分布の最大値を示している。また、
図15は閾値電圧分布の説明図である。
【0056】
図14の実線に示すように、ゲートディスターブを受ける時間が長くなると、イレースビットの閾値電圧Vthが上昇し始める。イレースビットは、その閾値電圧Vthが上昇し、
図15に示すようなプログラム状態のメモリセル111(プログラムビット)の閾値電圧Vthに近くなると、リード動作時にプログラムビットと判定される虞がある。
【0057】
ソース線SRC0の電圧を高くすると、
図14の点線に示すように、閾値電圧Vthが上昇し始めるまでの時間が長くなる。つまりゲートディスターブ耐性が改善する。しかし、このようにソース線SRC0の電圧を高くすると、ソース線SRC0はメモリセルアレイ110内の全メモリセル111に接続されているため、選択ビット線BL0に接続されたメモリセル111のソース・ゲート間電圧Vsgが大きくなる。そのため、m10,m20,m30(
図13にはm10のみ図示)のメモリセル111において、ソース線SRC0から選択ビット線BL0へのリーク電流Ibが増える、或いは発生する。これらm10,m20,m30のメモリセル111が、閾値電圧Vthの高いプログラム状態になっている場合には、リーク電流Ibの量が大きくなる。
【0058】
以上のような点に鑑み、フラッシュメモリ20のメモリコア21に、以下に実施の形態として示すような構成を採用する。
まず、第1の実施の形態について説明する。
【0059】
図16は第1の実施の形態に係るメモリブロック領域の構成例を示す図である。
図16に示すメモリブロック領域100Aは、上記のメモリブロック領域100と同様に、ワード線選択回路120及びビット線選択回路130を有する。
図16に示すメモリブロック領域100Aでは、メモリセルアレイ110が、所定本数(例えば256本)のビット線BLに接続されるメモリセル111群毎に、複数のブロックに分割される。このように分割された各ブロックをメモリブロック又はプログラムセグメントPSEGと呼ぶ。
図16には一例として、4つのプログラムセグメントPSEG0−3を図示している。
【0060】
プログラムセグメントPSEG0を例に、プログラムセグメントPSEGの構成について説明する。ワード線WL(この例ではWL0−3)とビット線BL(この例ではBL0−3)の交差位置にそれぞれ、N型ウェルNW(この例ではNW0)に形成されたPMOSが、メモリセル111として配置されている。このようなPMOSのメモリセル111のゲートがワード線WLに接続され、ドレインがビット線BLに接続されている。このプログラムセグメントPSEG0に含まれるPMOSのメモリセル111のソースは、共通のソース線SRC0に接続されている。
【0061】
他のプログラムセグメントPSEG1−3も、このプログラムセグメントPSEG0と同様の構成を有し、プログラムセグメントPSEG1−3に含まれるメモリセル111は、それぞれ共通のソース線SRC1−3に接続されている。プログラムセグメントPSEG0−3のソース線SRC0−3は、互いに分離されており、互いに直接接続されない。ソース線SRC0−3は、それぞれソース線スイッチ(SRCSW)160によって、電圧VST(例えば1.8V)又は電圧VSB(例えば2.4V)に設定される。各ソース線スイッチ160は、ソース選択線173を介してソース選択線駆動回路170に接続されている。また、ワード線WLは、プログラムセグメントPSEG0−3の間で共有されている。
【0062】
図17は第1の実施の形態に係るソース線スイッチ及びソース選択線駆動回路の一例を示す図である。
ここでは、ソース線スイッチSRCSWの構成を、プログラムセグメントPSEG0のソース線SRC0に接続されるソース線スイッチ160を例にして説明する。
図17では、プログラムセグメントPSEG1−3のソース線SRC1−3に接続されたソース線スイッチ160の内部構成の図示を省略している。
【0063】
ソース線スイッチ160は、NANDゲート161、NOTゲート162、CMOSトランスファゲート163及びCMOSトランスファゲート164を含む。ソース選択線駆動回路170は、NANDゲート171及びNANDゲート172を含む。
【0064】
プログラム動作時、ソース選択線駆動回路170のNANDゲート171には、信号SSWB、及びプログラムセグメントPSEGを指定するカラムアドレスCA<2:3>が入力される。NANDゲート172には、信号SSWB、及びNANDゲート171から出力される信号CAB<2:3>が入力され、信号CAT<2:3>が出力される。ソース線SRC0に接続されたソース線スイッチ160のNANDゲート161には、ソース選択線駆動回路170から出力される信号CAB<2>及び信号CAB<3>が入力される。NANDゲート161の出力信号、及びその出力信号のNOTゲート162による反転信号は、CMOSトランスファゲート163、CMOSトランスファゲート164に入力される。
【0065】
尚、ソース線SRC1に接続されたソース線スイッチ160には、ソース選択線駆動回路170から出力される信号CAT<2>及び信号CAB<3>が入力される。ソース線SRC2に接続されたソース線スイッチ160には、ソース選択線駆動回路170から出力される信号CAB<2>及び信号CAT<3>が入力される。ソース線SRC3に接続されたソース線スイッチ160には、ソース選択線駆動回路170から出力される信号CAT<2>及び信号CAT<3>が入力される。これらのソース線スイッチ160においても、上記ソース線SRC0に接続されたソース線スイッチ160と同様の流れで信号の処理が行われる。
【0066】
例えば、プログラム動作において、プログラムセグメントPSEG0−3のうち、プログラムセグメントPSEG0を選択する場合、そのプログラムセグメントPSEG0に設けられたソース線SRC0が選択され、そのソース線SRC0が電圧VSTに設定される。非選択のプログラムセグメントPSEG1−3のソース線SRC
1−3は、電圧VSBに設定される。電圧VSBは、電圧VSTよりも高く設定され、例えば、電圧VSTは1.8V、電圧VSBは電圧2.4Vに設定される。
【0067】
メモリブロック領域100Aにおいて、プログラムするメモリセル111は、プログラムセグメントPSEG0−3のうち、いずれか1つから選択される。
図18は第1の実施の形態に係るプログラム動作波形の一例を示す図である。
【0068】
ここでは、
図16に示したメモリブロック領域100AのプログラムセグメントPSEG0に含まれるメモリセル111のうち、ワード線WL0とビット線BL0に接続されたメモリセル111(m00)に対してプログラム動作を行う場合を例にして説明する。
【0069】
メモリブロック領域100Aにおいて、ソース線SRC0−3の選択動作以外の動作は、上記
図11に示した動作と同じである。
プログラム動作モードにエントリし、アドレスを設定すると、信号SSWBがHレベルとなり、カラムアドレスCAに従って、選択されるプログラムセグメントPSEG0のソース線SRC0が電圧VST(ここではV18(1.8V))に設定される。非選択のプログラムセグメントPSEG1−3のソース線SRC1−3は電圧VSB(ここではV24(2.4V))に設定される。
【0070】
このようにメモリブロック領域100Aでは、選択プログラムセグメントPSEG0のソース線SRC0が電圧VSTに設定され、非選択プログラムセグメントPSEG1−3のソース線SRC1−3がより高い電圧VSBに設定される。そのため、非選択プログラムセグメントPSEG1−3の、選択ワード線WL0に繋がるメモリセル111のソース電圧は、選択プログラムセグメントPSEG0のメモリセル111のソース電圧よりも高くなる。その結果、非選択プログラムセグメントPSEG1−3の、選択ワード線WL0に繋がるメモリセル111は、ゲートディスターブによる閾値電圧Vthの変動が起こり難くなる。
【0071】
更に、メモリブロック領域100Aでは、非選択プログラムセグメントPSEG1−3からは、プログラムするメモリセル111を選択しない(選択ビット線BLが存在しない)ようにする。これにより、非選択プログラムセグメントPSEG1−3において、ソース線SRC1−3からビット線BLへのリーク電流の増加或いは発生を抑制することができるようになる。
【0072】
一方、メモリブロック領域100Aでは、選択プログラムセグメントPSEG0の、選択ワード線WL0に繋がるメモリセル111は、電圧VSTのソース線SRC0に接続され、非選択プログラムセグメントPSEG1−3のメモリセル111よりも、ソース電圧が低い状態にある。そのため、選択プログラムセグメントPSEG0の、選択ワード線WL0に繋がるメモリセル111は、ゲートディスターブの影響を受け得る。しかし、たとえ影響を受けるとしても、ゲートディスターブを受ける時間は、メモリセルアレイ110の全メモリセル111を共通のソース線に接続したもの(上記メモリブロック領域100)に比べ、4分の1になる。その結果、ゲートディスターブによる閾値電圧Vthの変動を抑制することができる。
【0073】
メモリブロック領域100Aでは、このように選択プログラムセグメントPSEG0のソース線SRC0を電圧VSTとし、選択プログラムセグメントPSEG0のメモリセル111のソース電圧を低い状態にしている。そのため、ソース線SRC0から選択ビット線BL0へのリーク電流の増加或いは発生を抑制することができる。
【0074】
このようにメモリブロック領域100Aでは、ソース線SRC0から選択ビット線BL0へリーク電流が増えるのを抑えつつ、選択ワード線WL0に繋がるメモリセル111のゲートディスターブによる閾値電圧Vthの変動抑制が可能になる。
【0075】
メモリブロック領域100Aでは、上記のように、プログラムするメモリセル111が、プログラムセグメントPSEG0−3のうち、いずれか1つから選択される。
ここで、
図19はプログラムセグメントに分割しないメモリブロック領域におけるビット線選択の説明図、
図20は第1の実施の形態に係るメモリブロック領域におけるビット線選択の説明図である。
【0076】
図19には便宜上、プログラムセグメントPSEG0−3に分割しない上記メモリブロック領域100(
図3)を、メモリセル111の図示を省略し、簡略化して図示している。ここでは、1024本のビット線BLに繋がるメモリブロック領域100を例示している。このようなメモリブロック領域100においては、複数本のビット線BLが選択される(複数のメモリセル111にプログラムされる)場合がある。例えば、16本のビット線BLが選択される場合、256本のビット線BLあたり4本のビット線BLが選択される。
【0077】
図20には便宜上、256本のビット線BL毎に4つのプログラムセグメントPSEG0−3に分割した上記メモリブロック領域100Aを、メモリセル111の図示を省略し、簡略化して図示している。このようなメモリブロック領域100Aにおいて、プログラム動作時に、複数本のビット線BLを選択する(複数のメモリセル111にプログラムする)場合には、それら複数本のビット線BLを、1つのプログラムセグメントPSEGから選択する。この
図20には、16本のビット線BLが、プログラムセグメントPSEG0のみから選択される場合を例示している。
【0078】
このようにすることで、残りのプログラムセグメントPSEG1−3を非選択とし、ソース線SRC1−3の電圧を、選択プログラムセグメントPSEG0のソース線SRC0の電圧よりも高くすることができる。これにより、上記のようにソース線SRC0から選択ビット線BL0へリーク電流が増えるのを抑えつつ、選択ワード線WL0に繋がるメモリセル111のゲートディスターブによる閾値電圧Vthの変動抑制を実現することができる。
【0079】
以上述べたメモリブロック領域100Aにおいて、リード動作時、イレース動作時には、ソース選択線駆動回路170に入力される信号SSWB(
図17)がLレベルとされ、全ソース線SRC0−3が電圧VSTに設定される。電圧VSTは、リード動作時、イレース動作時にそれぞれ1.8V、9Vに設定される。メモリブロック領域100A内の各メモリセル111に対するリード動作、及びメモリブロック領域100A内の全メモリセル111に対するイレース動作(一括消去)は、上記
図9及び
図10に示した動作と同じとすることができる。
【0080】
次に、第2の実施の形態について説明する。
第2の実施の形態は、ソース線スイッチSRCSWに、以下に示すようなものを用いる点で、上記第1の実施の形態と相違する。
【0081】
図21は第2の実施の形態に係るソース線スイッチ及びソース選択線駆動回路の一例を示す図である。
ここでは、ソース線スイッチSRCSWの構成を、プログラムセグメントPSEG0のソース線SRC0に接続されるソース線スイッチ160Aを例にして説明する。
図21では便宜上、プログラムセグメントPSEG1−3のソース線SRC1−3に接続されたソース線スイッチ160Aの内部構成の図示を省略している。
【0082】
図21に示すソース線スイッチ160Aは、非選択のソース線SRCを上記のように電圧VSB(V24)には接続せず、N型ウェルNWと、メモリセル111のソース接合との容量結合によって、非選択のソース線SRCの電圧を昇圧する機能を有する。ソース線スイッチ160Aは、NANDゲート161、NOTゲート162及びCMOSトランスファゲート163を含む。尚、ソース選択線駆動回路170は、上記
図17と同じ構成とすることができる。
【0083】
ソース線SRC0に接続されたソース線スイッチ160AのNANDゲート161には、ソース選択線駆動回路170から出力される信号CAB<2>及び信号CAB<3>が入力される。NANDゲート161の出力信号、及びその出力信号のNOTゲート162による反転信号は、CMOSトランスファゲート163に入力される。
【0084】
尚、ソース線SRC1に接続されたソース線スイッチ160Aには、信号CAT<2>及び信号CAB<3>が入力される。ソース線SRC2に接続されたソース線スイッチ160Aには、信号CAB<2>及び信号CAT<3>が入力される。ソース線SRC3に接続されたソース線スイッチ160Aには、信号CAT<2>及び信号CAT<3>が入力される。これらのソース線スイッチ160Aにおいても、上記ソース線SRC0に接続されたソース線スイッチ160Aと同様の流れで信号の処理が行われる。
【0085】
図22は第2の実施の形態に係るプログラム動作波形の一例を示す図である。
ここでは、
図16に示したメモリブロック領域100AのプログラムセグメントPSEG0に含まれるメモリセル111のうち、ワード線WL0とビット線BL0に接続されたメモリセル111(m00)に対してプログラム動作を行う場合を例にして説明する。
【0086】
上記のようなソース線スイッチ160Aを用いたメモリブロック領域100Aにおいて、ソース線SRC0−3の選択動作以外の動作は、上記
図18に示した動作と同じである。
【0087】
プログラム動作モードにエントリした後、N型ウェルNW0の電圧を上げる前に、全ソース線SRC0−3は、信号SSWBがLレベルとされて電圧VST(V18(1.8V))に設定され、プリチャージされる。所定時間の経過後(全ソース線SRC0−3のプリチャージ後)、信号SSWBがHレベルとされ、カラムアドレスCAに従って、選択されたソース線SRC0が電圧VSTに設定される。選択されないソース線SRC1−3は、HiZ状態になる。その後、N型ウェルNW0を、電圧V18から電圧VNW0に上げると、メモリセル111のソース接合との容量結合によって、HiZ状態にある非選択のソース線SRC1−3が、電圧VSTから昇圧された電圧VST+αに昇圧される。プログラム後、N型ウェルNW0の電圧は、電圧V18に下がり、容量結合によって非選択のソース線SRC1−3の電圧が下がる。その後、全ソース線SRC0−3は、信号SSWBがLレベルとされて電圧VSTに設定される。
【0088】
プログラムセグメントPSEG0−3に分割しない上記メモリブロック領域100(
図3のBLK0)では、その中の全メモリセル111が共通のソース線SRC0に接続される。そのため、N型ウェルNWと、メモリセル111のソース接合との容量結合によってそのソース線SRC0を昇圧すると、ソース線SRC0から選択ビット線BL0へのリーク電流によって、昇圧後の電圧が保持されない可能性がある。
【0089】
これに対し、プログラムセグメントPSEG0−3に分割した上記メモリブロック領域100Aの場合、非選択のソース線SRC1−3が設けられているプログラムセグメントPSEG1−3には、選択されて0Vになっているビット線BLが存在しない。そのため、昇圧されたソース線SRC1−3の電圧が、メモリセル111でのリーク電流によって下がるのを抑えることができる。
【0090】
以上述べたソース線スイッチ160Aを用いたメモリブロック領域100Aにおいて、リード動作時、イレース動作時には、ソース選択線駆動回路170に入力される信号SSWB(
図21)がLレベルとされ、全ソース線SRC0−3が電圧VSTに設定される。電圧VSTは、リード動作時、イレース動作時にそれぞれ1.8V、9Vに設定される。メモリブロック領域100A内の各メモリセル111に対するリード動作、及びメモリブロック領域100A内の全メモリセル111に対するイレース動作(一括消去)は、上記
図9及び
図10に示した動作と同じとすることができる。
【0091】
尚、第2の実施の形態において、入力信号と論理素子のHレベルの出力電圧、PMOSのバックバイアスは、昇圧された電圧よりも高くなるように設定される。
次に、第3の実施の形態について説明する。
【0092】
上記第1の実施の形態では、1つのメモリブロック領域100
Aにつきビット線BLが1024本である場合に、256本のビット線BL毎に、4つプログラムセグメントPSEGに分割する例を示した。分割するプログラムセグメントPSEGの数は、上記の例に限定されるものではない。
【0093】
図23は第3の実施の形態に係るメモリブロック領域の構成例を示す図である。
図23には、128本のビット線BL毎に、8つのプログラムセグメントPSEG0−7に分割したメモリブロック領域100Bを例示している。尚、
図23には便宜上、メモリブロック領域100Bを、ワード線WLとビット線BLの交差位置に配置されるメモリセル111の図示を省略し、簡略化して図示している。
【0094】
プログラムセグメントPSEG0を例に、プログラムセグメントPSEGの構成について説明する。プログラムセグメントPSEG0内の各メモリセル111のゲート、ドレインは、それぞれワード線WL、ビット線BLに接続されている。プログラムセグメントPSEG0内のメモリセル111のソースは、共通のソース線SRC0に接続されている。
【0095】
他のプログラムセグメントPSEG1−7も、このプログラムセグメントPSEG0と同様の構成を有し、プログラムセグメントPSEG1−7内のメモリセル111は、それぞれ共通のソース線SRC1−7に接続されている。プログラムセグメントPSEG0−7のソース線SRC0−7は、互いに分離されている。ソース線SRC0−7は、それぞれソース線スイッチ(SRCSW)160によって、電圧VST(例えば1.8V)又は電圧VSB(例えば2.4V)に設定される。各ソース線スイッチ160は、ソース選択線173を介してソース選択線駆動回路170に接続されている。また、ワード線WLは、プログラムセグメントPSEG0−7の間で共有されている。
【0096】
メモリブロック領域100Bに対するプログラム動作、リード動作、イレース動作は、上記第1の実施の形態と同様に行うことができる。尚、メモリブロック領域100Bにおいて、上記第2の実施の形態で述べたソース線スイッチ160Aを用いることもできる。
【0097】
この第3の実施の形態に係るメモリブロック領域100Bでは、各プログラムセグメントPSEGのビット線BLの本数が、上記メモリブロック領域100Aの場合の2分の1となっている。これにより、プログラム動作時に、選択ワード線WLに繋がるメモリセル111がゲートディスターブを受ける時間は、上記メモリブロック領域100Aの2分の1、プログラムセグメントPSEGに分割しない上記メモリブロック領域100の8分の1になる。
【0098】
また、メモリブロック領域100Bにおいて、プログラム動作時には、プログラムするメモリセル111を、プログラムセグメントPSEG0−7のうち、いずれか1つから選択する。例えば、プログラム動作時に16本のビット線BLを選択する場合、
図23に示すように、それら16本のビット線BLを、プログラムセグメントPSEG0のみから選択する。これにより、残るプログラムセグメントPSEG1−7のソース線SRC1−7の電圧を、プログラムセグメントPSEG0のソース線SRC0の電圧よりも高くすることができる。
【0099】
メモリブロック領域100Bによれば、リーク電流が増えるのを抑えつつ、ゲートディスターブによるメモリセル111の閾値電圧Vthの変動を、効果的に抑制することができる。
【0100】
尚、プログラムセグメントPSEGに分割するうえでのビット線BLの本数(分割単位)は、上記のような256本や128本とは異なる本数としたり、64本や16本といった更に少ない本数としたりすることも可能である。或いは、プログラムセグメントPSEG毎にビット線BLの本数を変えることも可能である。
【0101】
次に、第4の実施の形態について説明する。
メモリブロック領域100を、上記実施の形態のように複数のプログラムセグメントPSEGに分割する場合、各プログラムセグメントPSEGのソース線SRCは、メモリブロック領域100に元々存在する、ビット線BLと平行なソース線SRCを利用して形成可能である。但し、プログラムセグメントPSEGの分割数によっては(例えば16本のビット線BL毎に分割する場合等)、このようなソース線とは別に、ビット線と平行なソース線を更に準備する必要が生じる場合がある。
【0102】
図24は第4の実施の形態に係るメモリブロック領域の構成例を示す図である。尚、
図24には、メモリブロック領域の一部のワード線WL、ビット線BL及びソース線SRCのレイアウトの一例を図示している。
【0103】
図24に示すメモリブロック領域100Cでは、メモリセル111のゲートに接続されるワード線WL0−2が第1方向Xに延在されている。ワード線WL0の両側、ワード線WL1の両側に、メモリセル111のドレイン、ソースに接続されるメタル配線181が配置されている。ソースに接続されるメタル配線181がプログラムセグメントPSEG_nのソース線SRC_n及びプログラムセグメントPSEG_n+1のソース線SRC_n+1となる。ドレインに接続されるメタル配線181は、コンタクト183を通じて、第2方向Yに延在配置されたメタル配線182に接続されている。このドレインに繋がるメタル配線182がビット線BLとなる。
【0104】
プログラムセグメントPSEG_nのソース線SRC_nと、プログラムセグメントPSEG_n+1のソース線SRC_n+1とは、互いに分離されている。ワード線WL0−2は、プログラムセグメントPSEG_nとプログラムセグメントPSEG_n+1で共有されている。
【0105】
メモリブロック領域100Cでは、ドレイン、ソースに接続されるメタル配線181と同層で、第2方向Yに延在されるメタル配線181aが配置される。このメタル配線181aにソース線SRC_n+1のメタル配線181が接続され、メタル配線181aは、更にコンタクト183を通じて、ビット線BLのメタル配線182と同層で第2方向Yに延在されたメタル配線182aに接続される。
【0106】
プログラムセグメントPSEGの分割数によっては、この
図24に示すように、隣接するプログラムセグメントPSEG間に、ソースに繋がるメタル配線181a、コンタクト183及びメタル配線182aを設ける。このようなレイアウトを採用することで、様々なプログラムセグメントPSEGの分割数に対応することが可能になる。
【0107】
次に、第5の実施の形態について説明する。
この第5の実施の形態では、アドレスの割り付け手法について説明する。そこで、まず上記のメモリブロック領域100及びメモリブロック領域100Aにおけるアドレス割り付けの一例を
図25及び
図26にそれぞれ示す。
【0108】
上記メモリブロック領域100では、
図25に示すように、カラムアドレスCA<2>及びCA<3>の組み合わせ毎に16本(16BL)、計64本のビット線BLの組が、IOパッド(IO Pad)毎に(IO<0:15>のデータ毎に)配置されている。64本のビット線BLの各組から、カラムアドレスに従って、1つずつIOのデータが選択される。カラムアドレスCA<2:3>によって、16本のビット線BLが選択される。
【0109】
また、上記メモリブロック領域100Aでは、
図26に示すように、256本のビット線BL(256BL)毎にプログラムセグメントPSEG(PSEG0〜3)が設定されている。これらのプログラムセグメントPSEGから、カラムアドレスCA<2:3>に従って、1つのプログラムセグメントPSEGが選択される。IO<0:15>のデータは、選択されたプログラムセグメントPSEGの256本のビット線BLから、他のカラムアドレスによって選択される。
【0110】
ここで、メモリブロック領域100Aにおいて、2つのプログラムセグメントPSEGに対して選択ビット線BLが割り付けられる場合を考える。
図27は選択ビット線の割り付け例を示す図である。
【0111】
この
図27の例では、16ビットの信号DIについて、下位(Lower)のビット(0〜7)をプログラムセグメントPSEG0に、上位(Upper)のビット(8〜15)をプログラムセグメントPSEG1に、それぞれ割り付ける。プログラムセグメントPSEG0及びPSEG1から、それぞれ8本のビット線が選択される。
【0112】
この場合において、16ビットの信号DIをまとめてプログラムする方法と、8ビット毎に2回に分けてプログラムする方法とを比較する。16ビットの信号DIをまとめてプログラムする場合、ソース線SRCの電圧が低い状態(非選択ソース線SRCの電圧VSB(2.4V)よりも低い電圧VST(1.8V)に設定されている状態)でプログラムされる回数は、512/16=32回である。一方、8ビット毎に2回に分けてプログラムする場合、2つのプログラムセグメントPSEG0及びPSEG1のソース線SRCを選択し、低い電圧VSTに設定すると、ソース線SRCの電圧が低い状態でプログラムされる回数は、512/8=64回になる。このようにプログラム回数が増えると、ゲートディスターブを受ける時間が長くなる。
【0113】
そこで、以下のようなアドレスの割り付け手法を適用する例を、第5の実施の形態として説明する。
図28は第5の実施の形態に係るアドレス割り付けの一例を示す図である。
【0114】
図28に示す例では、カラムアドレスCA<3>によって、2つのプログラムセグメントPSEG(例えばPSEG0とPSEG1)が選択される。下位のIO<0:7>のデータは、選択された一方のプログラムセグメントPSEGから、他のカラムアドレスによって選択される。上位のIO<8:15>のデータは、選択されたもう一方のプログラムセグメントPSEGから、他のカラムアドレスによって選択される。
【0115】
尚、8ビットのIOデータにプログラムを示すビットがない場合、対応するプログラムセグメントPSEGは選択されず、そのソース線SRCの電圧は高くなる。
図29は第5の実施の形態に係るソース線スイッチ及びソース選択線駆動回路の一例を示す図である。
【0116】
ここでは、ソース線スイッチSRCSWの構成を、プログラムセグメントPSEG0のソース線SRC0に接続されるソース線スイッチ160Bを例にして説明する。
図29では便宜上、プログラムセグメントPSEG1−3のソース線SRC1−3に接続されたソース線スイッチ160Bの内部構成の図示を省略している。
【0117】
図29に示すソース線スイッチ160Bでは、プログラム動作時、ソース選択線駆動回路170のNANDゲート171に、信号SSWB、及びプログラムセグメントPSEGを指定するカラムアドレスCA<3>が入力される。NANDゲート172には、信号SSWB、及びNANDゲート171から出力される信号CAB<3>が入力され、信号CAT<3>が出力される。
【0118】
信号UIOは、プログラム動作時に、上位のIO<8:15>のデータのうち、いずれかのビットがLレベルなら、Hレベルになる信号である。信号LIOは、プログラム動作時に、下位のIO<0:7>のデータのうち、いずれかのビットがLレベルなら、Hレベルになる信号である。
【0119】
ソース線SRC0に接続されたソース線スイッチ160BのNANDゲート161には、ソース選択線駆動回路170から出力される信号CAB<3>及び信号LIOが入力される。NANDゲート161の出力信号、及びその出力信号のNOTゲート162による反転信号は、CMOSトランスファゲート163、CMOSトランスファゲート164に入力される。
【0120】
尚、ソース線SRC1に接続されたソース線スイッチ160Bには、信号UIO及び信号CAB<3>が入力される。ソース線SRC2に接続されたソース線スイッチ160Bには、信号LIO及び信号CAT<3>が入力される。ソース線SRC3に接続されたソース線スイッチ160Bには、信号UIO及び信号CAT<3>が入力される。これらのソース線スイッチ160Bにおいても、上記ソース線SRC0に接続されたソース線スイッチ160
Bと同様の流れで信号の処理が行われる。
【0121】
プログラム動作時には、プログラムセグメントPSEGを指定するカラムアドレスCA<3>と、信号UIO及び信号LIOに従って、ソース線SRCに設定される電圧が切り替えられる。選択されるプログラムセグメントPSEGでは、そのソース線SRCが電圧VST(1.8V)に設定され、非選択のプログラムセグメントPSEGでは、そのソース線SRCが電圧VSB(2.4V)に設定される。プログラム動作時の、ソース線SRCの選択動作以外の動作は、上記
図18に示した動作と同じとすることができる。
【0122】
ソース線スイッチ160Bでは、信号DIの下位のIO<0:7>のデータ又は上位のIO<8:15>のデータのうち、1ビットでもプログラムを示すビットがあった場合、それに対応するプログラムセグメントPSEGのソース線SRCが選択され、電圧VSTに設定される。下位のIO<0:7>のデータ又は上位のIO<8:15>のデータにプログラムを示すビットがない場合、それに対応するプログラムセグメントPSEGのソース線SRCは選択されず、より高い電圧VSBに設定される。これにより、ソース線SRCの電圧が低い状態(非選択ソース線SRCの電圧VSBよりも低い電圧VSTに設定されている状態)でプログラムされる回数を、256/8=32回にすることができる。2つのプログラムセグメントPSEG0及びPSEG1のソース線SRCを選択して低い電圧VSTに設定するよりも、ゲートディスターブを受ける時間を短くすることが可能になる。
【0123】
尚、この第5の実施の形態で述べたような手法は、上記第2〜第4の実施の形態で述べたようなメモリブロック領域100A〜100Cに同様に適用可能である。
以上、フラッシュメモリを例にして説明したが、上記のようなプログラム動作に関する手法は、EPROM、EEPROM等の半導体メモリにも同様に適用可能である。
【0124】
以上説明した実施の形態に関し、更に以下の付記を開示する。
(付記1) ワード線群とビット線群の交差位置にそれぞれ配置され、共通のソース線に接続されたメモリセル群を含む複数のメモリブロックであって、前記複数のメモリブロック間で前記ワード線群を共有し、前記複数のメモリブロック毎に分離された複数の前記ソース線を備える複数のメモリブロックと、
プログラム動作時に、前記複数のメモリブロックのうち、プログラムするメモリセルが含まれるメモリブロックの前記ソース線に第1電圧を供給し、前記プログラムするメモリセルが含まれないメモリブロックの前記ソース線に前記第1電圧と異なる第2電圧を供給する回路部と、
を備えることを特徴とする半導体記憶装置。
【0125】
(付記2) 前記第2電圧は、前記第1電圧よりも高い電圧であることを特徴とする付記1に記載の半導体記憶装置。
(付記3) 1回の前記プログラム動作時に、前記プログラムするメモリセルが、前記ワード線群を共有する前記複数のメモリブロックのうち、いずれか1つのメモリブロックから選択されることを特徴とする付記1又は2に記載の半導体記憶装置。
【0126】
(付記4) 1回の前記プログラム動作時に、前記プログラムするメモリセルの情報を含むデータを上位ビットデータと下位ビットデータに分割し、前記上位ビットデータを、前記複数のメモリブロックのうち、第1のメモリブロックに対応させ、前記下位ビットデータを、前記複数のメモリブロックのうち、第2のメモリブロックに対応させて、前記プログラム動作を行うことを特徴とする付記1又は2に記載の半導体記憶装置。
【0127】
(付記5) 前記回路部は、前記複数のメモリブロック毎に分離された前記ソース線にそれぞれ接続された複数のスイッチ回路を含み、
前記複数のスイッチ回路がそれぞれ、接続されている前記ソース線に供給する電圧を前記第1電圧又は前記第2電圧に切り替えることを特徴とする付記1乃至4のいずれかに記載の半導体記憶装置。
【0128】
(付記6) 前記メモリセル群は、電気的にプログラム可能な不揮発性メモリセルであることを特徴とする付記1乃至5のいずれかに記載の半導体記憶装置。
(付記7) 前記メモリセル群は、pチャネル型トランジスタであることを特徴とする付記1乃至6のいずれかに記載の半導体記憶装置。
【0129】
(付記8) 前記回路部は、プログラム動作時に、前記複数のメモリブロックのうち、前記プログラムするメモリセルが含まれないメモリブロックの前記ソース線に、当該メモリブロックのウェルと当該メモリブロック内のメモリセルのソース接合との容量結合によって昇圧された前記第2電圧を供給することを特徴とする付記7に記載の半導体記憶装置。
【0130】
(付記9) 前記複数のメモリブロックのそれぞれの前記メモリセル群が接続される前記ビット線の本数が同数あることを特徴とする付記1乃至8のいずれかに記載の半導体記憶装置。
【0131】
(付記10) 前記複数のメモリブロックの中に、前記メモリセル群が接続される前記ビット線の本数が互いに異なるメモリブロックが含まれることを特徴とする付記1乃至8のいずれかに記載の半導体記憶装置。