以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態の半導体記憶装置の一例を示す図である。
半導体記憶装置1は、たとえば、MCPであり、複数のメモリチップ2−1,2−2,…,2−nを有している。なお、図1では、説明の都合上、メモリチップ2−1〜2−nが平置きされているように示されているが、メモリチップ2−1〜2−nは積層される。ただし、チップ数が少数(たとえば、n=2)の場合には、メモリチップ2−1〜2−nが、図1のように平置きされるようにしてもよい。
メモリチップ2−1〜2−nは、端子SO1,SO2,…,SOnが共通のデータバスcmbに接続されている。データバスcmbは、半導体記憶装置1の出力端子SOに接続されている。また、メモリチップ2−1〜2−nは、以下の回路部を有している。例として、メモリチップ2−1,2−2が有する回路部を説明する。他のメモリチップについても同様の回路部を有している。
メモリチップ2−1,2−2は、アドレス計数部3a,3b、制御部4a,4b、出力部5a,5b、記憶部6a,6bを有している。
アドレス計数部3a,3bは、同じアドレスを計数する。
制御部4aは、アドレス計数部3aで計数されているアドレスが、メモリチップ2−1が単独で管理するアドレスであるか否か判定し、メモリチップ2−1が単独で管理するアドレスであるときには、出力部5aでのデータ出力を有効にする。制御部4aは、アドレスが、メモリチップ2−1が単独で管理するアドレスではないときには、出力部5aでのデータ出力を無効にする。図1の例では、メモリチップ2−1は、アドレスA0〜Aiを単独で管理している。
制御部4bは、アドレス計数部3bで計数されているアドレスが、メモリチップ2−2が単独で管理するアドレスであるか否か判定し、メモリチップ2−2が単独で管理するアドレスであるときには、出力部5bでのデータ出力を有効にする。制御部4bは、アドレスが、メモリチップ2−2が単独で管理するアドレスではないときには、出力部5bでのデータ出力を無効にする。図1の例では、メモリチップ2−2は、アドレスAi+1〜Akを単独で管理している。
出力部5a,5bは、制御部4a,4bの制御のもと、記憶部6a,6bに格納されているデータを端子SO1,SO2に供給する。
メモリチップ2−1の記憶部6aは、アドレス領域A0〜AiにデータDa[A0]〜Da[Ai]を格納するとともに、メモリチップ2−2の先頭アドレスAi+1のデータDb[Ai+1]も格納する。すなわち、記憶部6aは、メモリチップ2−1が単独で管理するアドレス領域の他に拡張領域を有する。
メモリチップ2−2の記憶部6bは、アドレス領域Ai+1〜AkにデータDb[Ai+1]〜Db[Ak]を格納する。さらに記憶部6bは、シリアル読み出し時に、メモリチップ2−2の次に選択されるメモリチップ(図示せず)の先頭アドレスAk+1のデータDc[Ak+1]も格納する。すなわち、記憶部6bは、メモリチップ2−2が単独で管理するアドレス領域の他に拡張領域を有する。
このような半導体記憶装置1では、メモリチップ2−1からメモリチップ2−2に跨ってシリアル読み出しを行う際、たとえば、以下のような動作が行われる。
アドレス計数部3a,3bにより、メモリチップ2−2の先頭アドレスAi+1が指定されると、制御部4aは、出力部5aのデータ出力を無効にし、制御部4bは、出力部5bのデータ出力を有効にする。
拡張領域がない場合、たとえば、メモリチップ2−1の出力部5aのデータ出力を無効にするタイミングが遅延すると、メモリチップ2−2のデータを出力端子SOから出力すべきタイミングで、メモリチップ2−1から適切ではないデータが出力されてしまう。
しかしながら、図1のようにメモリチップ2−1は、拡張領域を有し、メモリチップ2−2の先頭アドレスAi+1で指定されるデータDb[Ai+1]を格納している。そのため、アドレスがAi+1となると、メモリチップ2−1もメモリチップ2−2と同様にデータDb[Ai+1]を出力する。これにより、メモリチップ2−1からは、出力部5aのデータ出力が無効化されるまで、次に選択されるメモリチップ2−2の適切なデータ(データDb[Ai+1])が出力されることになる。
したがって、第1の実施の形態の半導体記憶装置1では、出力端子SOから適切でないデータが出力されたり、データDb[Ai+1]のデータウインドウ(読み出し時間)が狭くなるなどの、出力データの特性悪化を軽減できる。
(第2の実施の形態)
図2は、第2の実施の形態の半導体記憶装置の一例を示す斜視図である。
半導体記憶装置10の外形については点線で示されている。半導体記憶装置10内には、メモリチップ11−1,11−2が積層されている。
メモリチップ11−1,11−2は、半導体記憶装置10の各端子に共通に接続されている。半導体記憶装置10の端子には、端子SI,SCK,HOLDB,VDD,VSS,/WP,SO,CSBがある。
端子SIは、シリアルデータが入力される端子であり、端子SCKは、クロックが入力される端子である。端子HOLDBは、クロックをホールドするための信号が入力される端子である。端子VDDは、電源電圧が印加される端子であり、電位がH(High)レベルとなる端子である。端子VSSは、L(Low)レベルの電位となる端子である(たとえば、接地されている)。端子/WPは、書き込みプロテクト信号が入力される端子であり、出力端子SOは、シリアルデータが出力される端子である。また、端子CSBは、チップ選択信号が入力される端子である。
(2つのメモリチップの入力側の回路部の接続例)
図3は、第2の実施の形態の半導体装置の各メモリチップの入力側の回路部の接続例を示す図である。
なお、図3では、各配線の一部において、その配線で伝達される信号の信号名の一例が併記されているが、当該信号以外の信号が当該配線で伝達されていてもよい。以降の図についても適宜信号名が配線に併記されている場合があるが、同様である。
メモリチップ11−1,11−2は、図2に示したように積層されるが、図3では、説明の都合上、横に並べて図示されている。設計費用削減という目的で、メモリチップ数が少数の場合には、図3のように平置きされるようにしてもよい。
以下の説明では、半導体記憶装置10は、16ビットのアドレス(0000h番地〜FFFFh番地)のデータの記憶を行うものとする。このアドレスは、メモリチップ11−1,11−2により分担して管理されている。
メモリチップ11−1,11−2は、メモリアレイ12−1,12−2、比較器13−1,13−2、アドレスカウンタ14−1,14−2、コマンドデコーダ15−1,15−2、マスク16−1,16−2を有している。
また、メモリチップ11−1,11−2は、端子EXA1,EXA2,EXEN1,EXEN2,SI1,SI2,CSB1,CSB2を有している。
図3の例では、メモリチップ11−1の端子EXA1は、端子VSSに接続され、メモリチップ11−2の端子EXA2は、端子VDDに接続されている。
端子EXEN1,EXEN2は、端子VDDに接続され、電位がHレベルであるイネーブル信号ENが比較器13−1,13−2に入力される。イネーブル信号ENの電位がHレベルであるときは、2つのメモリチップ11−1,11−2によってアドレスが管理されることを示す。なお、たとえば、メモリチップ11−1だけで全てのアドレスが管理されるときには、端子EXEN1は端子VSSに接続され、イネーブル信号ENの電位はLレベルとなる。
端子SI1,SI2には、端子SIが接続され、共通のシリアルデータsizが入力される。端子CSB1,CSB2には、端子CSBが接続され、チップ選択信号が入力される。
メモリアレイ12−1,12−2は、図示を省略しているが複数のメモリセルを有している。メモリアレイ12−1,12−2の例については、後述する。
比較器13−1,13−2は、端子EXEN1,EXEN2の電位がHレベルのときに有効となる。比較器13−1は、有効状態のとき、端子EXA1,EXA2の値(電位)と、アドレスカウンタ14−1,14−2から出力されるアドレス信号addとの比較結果に応じて、マスク16−1,16−2を制御する信号cmp1,cmp2を出力する。
回路構成などの例は後述するが、比較器13−1は、アドレス信号addが、メモリチップ11−1で管理するアドレス領域のものであれば、マスク16−1の機能を無効にする。また、比較器13−1は、アドレス信号addが、メモリチップ11−1で管理するアドレス領域のものでなければ、マスク16−1の機能を有効にする。
一方、比較器13−2は、アドレス信号addが、メモリチップ11−2で管理するアドレス領域のものであれば、マスク16−2の機能を無効にする。また、比較器13−2は、アドレス信号addが、メモリチップ11−2で管理するアドレス領域のものでなければ、マスク16−2の機能を有効にする。
アドレスカウンタ14−1,14−2は、端子EXEN1,EXEN2の電位がHレベルで、端子CSB1,CSB2に入力されるチップ選択信号が、半導体記憶装置10を選択することを示す値であるときに有効となる。アドレスカウンタ14−1,14−2は、有効状態のときに、端子SI1,SI2から入力される同じシリアルデータsizに応じてアドレス信号addを生成し、比較器13−1,13−2及びメモリアレイ12−1,12−2に供給する。
コマンドデコーダ15−1,15−2は、端子CSB1,CSB2に入力されるチップ選択信号が、この半導体記憶装置10を選択することを示す値であるときに有効となる。コマンドデコーダ15−1,15−2は、有効状態のとき、端子SI1,SI2から入力されるシリアルデータsizに応じてメモリアレイ12−1,12−2を活性化する信号actzを生成する。
マスク16−1,16−2は、コマンドデコーダ15−1,15−2からの信号actzをマスクして、メモリアレイ12−1,12−2へのアクセスを無効にする機能を有する。マスク16−1,16−2では、比較器13−1,13−2からの信号cmp1,cmp2により、マスク機能を有効にするか、無効にするかが制御される。
次に、出力側の回路部を含めたメモリチップ11−1,11−2の一例をより具体的に説明する。
(メモリチップの一例)
図4は、第2の実施の形態の半導体装置のメモリチップの一例を示すブロック図である。図4では、メモリチップ11−1が備える各ブロックの例が示されているが、メモリチップ11−2に関しても同様である。図3に示した要素と同じものについては、同じ符号が付されている。
メモリチップ11−1は、シリアルカウンタ20−1、シリアルパラレル変換部21−1、ステートマシン22−1、パラレルシリアル変換部23−1、インバータ回路24−1、出力制御部25−1を有している。その他、メモリチップ11−1は、入力バッファ26−1,27−1,28−1,29−1,30−1,出力バッファ31−1と、図3に示した、メモリアレイ12−1、比較器13−1、アドレスカウンタ14−1、マスク16−1を有している。図3に示したコマンドデコーダ15−1は、ステートマシン22−1に含まれている。また、比較器13−1、インバータ回路24−1、出力制御部25−1により、図1に示した制御部4aの機能が行われる。
シリアルカウンタ20−1は、端子CSB1から入力されるチップ選択信号を、入力バッファ27−1を介して受信する。また、シリアルカウンタ20−1は、端子SCK1から入力されるクロックsckzを、入力バッファ28−1を介して受信する。チップ選択信号の電位がLレベルとなり、メモリチップ11−1が活性化すると、シリアルカウンタ20−1は、クロックsckzに同期してカウントを行い、カウント値cntsz[7:0]を出力する。
シリアルパラレル変換部21−1は、端子SI1から入力されるシリアルデータsizを、入力バッファ26−1を介して受信するとともに、カウント値cntsz[7:0]を受信する。そして、シリアルパラレル変換部21−1は、カウント値cntsz[7:0]に基づき、シリアルデータsizを、8ビットのパラレルデータpiz[7:0]に変換する。
ステートマシン22−1は、端子CSB1から入力されるチップ選択信号を、入力バッファ27−1を介して受信するとともに、端子SCK1から入力されるクロックsckzを、入力バッファ28−1を介して受信する。チップ選択信号の電位がLレベルとなり、メモリチップ11−1が活性化すると、ステートマシン22−1が動作する。ステートマシン22−1は、さらにシリアルパラレル変換部21−1からパラレルデータpiz[7:0]を受け、その値に応じた信号actz,wrz,lataz,rdzを生成する。
たとえば、ステートマシン22−1は、パラレルデータpiz[7:0]から、アドレス取り込み状態と判断すると、信号latazを活性化する(たとえば、電位をHレベルにする)。アドレスカウンタ14−1は、信号latazが活性化されると、パラレルデータpiz[7:0]を用いてアドレスを初期化する。
また、ステートマシン22−1は、パラレルデータpiz[7:0]から、データの書き込み要求が指示されていると判定すると、信号actzを活性化するとともに、信号wrzを活性化する。ステートマシン22−1は、パラレルデータpiz[7:0]から、データの読み出し要求が指示されていると判定すると、信号actzを活性化するとともに、信号rdzを活性化する。
比較器13−1では、端子EXA1から入力バッファ29−1を介して信号exaz1を受信するとともに、アドレスカウンタ14−1からのアドレス信号addを受ける。
なお、図4の例では、入力バッファ29−1は、端子EXEN1から入力バッファ30−1を介して供給されるイネーブル信号ENが活性化されているときに、信号exaz1を出力する。
そして、比較器13−1は、これらの信号の比較結果に基づき、前述した信号cmp1を生成するとともに、アドレス信号addの最上位ビットと、信号exaz1との比較に基づいた信号cmpex1を生成する。アドレスカウンタ14−1から出力されるアドレス信号addが、メモリチップ11−1が管理するアドレス領域に含まれていれば信号cmp1が活性化される。なお、そのアドレス領域は、メモリチップ11−2で管理されるアドレス領域の先頭アドレスを含む。
マスク16−1は、信号cmp1が活性化されると、ステートマシン22−1から出力される信号actzをマスクせずに、信号mactz1を活性化する。これにより、メモリアレイ12−1へのアクセスが許可される。一方、アドレスカウンタ14−1から出力されるアドレス信号addが、メモリチップ11−1もしくはメモリチップ11−2の単独で管理されるものであれば信号cmpex1がLレベルに活性化される。
メモリアレイ12−1は、図示が省略されているが、複数のメモリセルのほか、アドレス信号addで指定されているアドレスのメモリセルにアクセスを行うアドレスデコーダや、信号mactz1と信号wrz1から書き込み要求がなされているのか、もしくは読み出し要求がなされているのかを識別して、ワード線やビット線などを所定の電圧で駆動する駆動回路などを含む。書き込み要求がなされているときには、パラレルデータpiz[7:0]のデータがメモリセルに書き込まれる。読み出し要求がなされているときには、メモリセルからパラレルデータpoutz1[7:0]が読み出される。
パラレルシリアル変換部23−1は、シリアルカウンタ20−1から出力されるカウント値cntsz[7:0]に同期して、パラレルデータpoutz1[7:0]から特定のビットを抽出し、シリアルデータsoutz1として出力する。
インバータ回路24−1は、比較器13−1から出力される信号cmpex1の論理レベルを反転して信号cmpez1として出力制御部25−1に供給する。
出力制御部25−1は、信号rdzと、信号cmpez1に基づいて、信号outenz1を出力し、出力バッファ31−1にシリアルデータsoutz1を出力させるか否かを制御する。
出力バッファ31−1は、出力制御部25−1からの信号outenz1を受け、信号outenz1が出力の許可を示すときには、シリアルデータsoutz1を端子SO1に向けて出力する。
(2つのメモリチップの出力側の回路部の接続例)
図5は、2つのメモリチップの出力側の回路部の接続例を示す図である。
図4に示した要素と同じものについては、同じ符号を付している。
メモリチップ11−2は、メモリチップ11−1と同様に、比較器13−2、インバータ回路24−2、出力制御部25−2、出力バッファ31−2を有している。比較器13−2に入力される信号exaz2の電位はHレベルに固定されている。メモリチップ11−1と同様に、比較器13−2から出力される信号cmpex2は、インバータ回路24−2で論理レベルが反転されて、信号cmpez2として出力制御部25−2に供給される。出力制御部25−2は、信号rdzと、信号cmpez2に基づいて、信号outenz2を出力し、出力バッファ31−2にシリアルデータsoutz2を出力させるか否かを制御する。
図5では、出力バッファ31−1,31−2の一例の回路が示されている。出力バッファ31−1,31−2は、インバータ回路40−1,40−2,45−1,45−2、トランジスタ41−1,41−2,42−1,42−2,43−1,43−2,44−1,44−2を有している。図5の例では、トランジスタ41−1,41−2,42−1,42−2は、pチャネル型MOSFET(Metal-Oxide Semiconductor Field Effect Transistor)である。また、トランジスタ43−1,43−2,44−1,44−2は、nチャネル型MOSFETである。
出力バッファ31−1において、トランジスタ41−1のゲートには、信号outenz1がインバータ回路40−1で論理レベルが反転されて入力される。トランジスタ41−1のソースには電源電圧vddが印加され、ドレインはトランジスタ42−1のソースに接続されている。トランジスタ42−1及びトランジスタ43−1のゲートには、シリアルデータsoutz1がインバータ回路45−1で論理レベルが反転されて入力される。トランジスタ42−1のドレイン及びトランジスタ43−1のドレインは端子SO1に接続されている。トランジスタ43−1のソースは、トランジスタ44−1のドレインに接続されている。トランジスタ44−1のゲートには、信号outenz1が入力され、ソースは接地されている。
出力バッファ31−2についても同様の回路となっている。
図5に示されているように、本実施の形態の半導体記憶装置10では、出力端子SOからのデータ出力遅延を抑えることと、製造コストを抑える目的から、メモリチップ11−1,11−2の端子SO1,SO2が直接、出力端子SOに接続されている。つまり、データバスが共通となっている。このように、メモリチップ11−1,11−2の端子SO1,SO2を、出力データ選択スイッチなどを介さずに、半導体記憶装置10の出力端子SOに接続することにより半導体記憶装置10の製造コストを削減することができる。
(2つのメモリチップが管理するアドレスの一例)
図6は、2つのメモリチップが管理するアドレスの一例を示す図である。
メモリチップ11−1は、0000h番地から7FFFh番地までのアドレス領域(通常アドレス領域と表記している)を管理するほか、メモリチップ11−2が管理する先頭アドレスである8000h番地を拡張領域として管理している。
メモリチップ11−2は、8000h番地からFFFFh番地までのアドレス領域(通常アドレス領域と表記している)を管理するほか、メモリチップ11−1が管理する先頭アドレスである0000h番地を拡張領域として管理している。
このため、メモリチップ11−1とメモリチップ11−2は、ともに8000h番地のデータを記憶し、ともに0000番地のデータを記憶することになる。
以下では、このような拡張領域のアドレスが指定されたときにも、そのアドレスにアクセス可能とするための比較器の一例を説明する。
(比較器の一例)
図7は、比較器の一例を示す図である。
図7では、メモリチップ11−1の比較器13−1の一例が示されている。前述したアドレスカウンタ14−1から出力されるアドレス信号addが、16ビットのアドレスaddr[0]〜addr[15]で示されている。比較器13−1は、ExNOR回路50、検出部51、インバータ回路52、AND回路53を有している。
ExNOR回路50は、最上位のアドレスaddr[15]と前述した信号exaz1とが、ともに“0”(Lレベル)または“1”(Hレベル)であるとき、出力(信号cmpex1)の電位をHレベルとする。最上位のアドレスaddr[15]と信号exaz1とが異なっているとき、ExNOR回路50は、信号cmpex1の電位をLレベルとする。
メモリチップ11−1では、図3のように端子EXA1が端子VSSに接続されているため信号exaz1の電位レベルは、Lレベルである。そのため、アドレスaddr[15]が“0”、すなわち、0000h番地から7FFFh番地である間は、信号cmpex1の電位はHレベルとなる。アドレスaddr[15]が“1”、すなわち、8000h番地からFFFFh番地のときは、信号cmpex1の電位はHレベルとなる。
検出部51は、アドレスaddr[0]〜[14]が全て“0”であるか否かを検出する。検出部51は、NOR回路54,55,56,57、NAND回路58を有している。
NOR回路54は、アドレスaddr[0],addr[1],addr[2],addr[3]を入力する。NOR回路55は、アドレスaddr[4],addr[5],addr[6],addr[7]を入力する。NOR回路56は、アドレスaddr[8],addr[9],addr[10],addr[11]を入力する。NOR回路57は、アドレスaddr[12],addr[13],addr[14]を入力する。
NAND回路58は、NOR回路54〜57の出力を入力し、信号all0xを出力する。
アドレスaddr[0]〜addr[14]が全て“0”のときは、NOR回路54〜57の出力は全て“1”となるので、NAND回路58の出力である信号all0xの電位はLレベルとなる。たとえば、0000h番地、8000h番地のとき、addr[0]〜addr[14]は全て“0”となるため、信号all0xの電位はLレベルとなる。アドレスアドレスaddr[0]〜addr[14]の1つでも“1”であるときには、信号all0xの電位はHレベルとなる。
AND回路53は、信号all0xと、インバータ回路52で論理レベルが反転された信号cmpex1を入力して、信号cmp1を出力する。上記のように、アドレスaddr[0]〜addr[15]が0000h番地から7FFFh番地のとき信号cmpex1の電位がHレベルになり、8000h番地のとき信号all0xの電位がLレベルになる。そのため、アドレスaddr[0]〜addr[15]が0000h番地から8000h番地までの間、信号cmp1の電位はLレベルとなる。これにより、マスク16−1の機能は無効となり、図6に示した0000h番地から7FFFh番地までの通常アドレス領域以外に、拡張領域のアドレスである8000h番地にもアクセスすることが可能になる。
アドレスaddr[0]〜addr[15]が8001h番地となると、信号cmpex1及び信号all0xの電位がともにHレベルになるので信号cmp1の電位はHレベルとなり、マスク16−1が有効となりメモリアレイ12−1へのアクセスが抑制される。
一方、信号cmpex1の電位は、アドレスaddr[0]〜addr[15]が、0000h番地から7FFFh番地までは、Hレベルである。そのため、たとえば、図5に示したような信号cmpez1の電位がLレベルとなり、出力制御部25−1は信号outenz1の電位をHレベルとする。これにより、トランジスタ41−1,44−1がオンし、シリアルデータsoutz1に応じた値が出力される。
アドレスaddr[0]〜addr[15]が、8000h番地以上になると、信号cmpex1の電位は、Lレベルに立ち下がる。これにより、図5に示したような信号cmpez1がHレベルとなり、出力制御部25−1は信号outenz1の電位をLレベルとする。これにより、トランジスタ41−1,44−1がオフし、メモリチップ11−1の出力は無効化される。
上記では、メモリチップ11−1の比較器13−1の一例を説明したが、メモリチップ11−2の比較器13−2も同様の回路にて実現できる。図7に示した回路で説明すると、比較器13−2では、ExNOR回路50には、信号exaz1の代わりに信号exaz2が入力される。ExNOR回路50の出力が信号cmpex2、AND回路53の出力が信号cmp2となる。
メモリチップ11−2では、図3のように端子EXA2が端子VDDに接続されているため信号exaz2の電位レベルは、Hレベルである。そのため、アドレスaddr[15]が“1”、すなわち、8000番地からFFFFh番地である間は、信号cmpex2の電位はHレベルとなる。アドレスaddr[15]が“0”、すなわち、0000h番地から7FFFh番地のときは、信号cmpex2の電位はLレベルとなる。
検出部51は、アドレスaddr[0]〜addr[14]が全て“0”のとき、信号all0xの電位をLレベルにする。そのため、アドレスaddr[0]〜[15]が0000h番地のときでも、信号cmp2の電位がLレベルとなり、マスク16−2の機能が無効となる。これにより、メモリチップ11−2は、図6に示した8000h番地からFFFFh番地までの通常アドレス領域以外に、拡張領域のアドレスである0000h番地にもアクセスすることが可能になる。
(第2の実施の形態の半導体記憶装置10の動作説明)
以上説明してきたような半導体記憶装置10では、メモリチップ11−1,11−2は、図3に示したように、端子SI1,SI2は、半導体記憶装置10の共通の端子SIに接続されており同じシリアルデータsizが入力される。そのため、アドレスカウンタ14−1,14−2は、同じアドレス信号addを出力する。
書き込み動作時には、図6に示したような各メモリチップ11−1,11−2で管理されるアドレス領域にデータが格納される。前述したように、メモリチップ11−1は、拡張領域である8000h番地が指定されたときにも、自身のメモリアレイ12−1にアクセスすることが可能である。そのため、8000h番地が指定されたときには同じデータが、メモリチップ11−1のメモリアレイ12−1と、メモリチップ11−2のメモリアレイ12−2の両方に格納されることになる。
同様に、メモリチップ11−2は、拡張領域である0000h番地が指定されたときにも、自身のメモリアレイ12−2にアクセスすることが可能である。そのため、0000h番地が指定されたときには同じデータが、メモリチップ11−1のメモリアレイ12−1と、メモリチップ11−2のメモリアレイ12−2の両方に格納されることになる。
なお、拡張領域のアドレスのデータが格納されるメモリアレイ12−1,12−2の例については後述する。
次に、第2の実施の形態の半導体記憶装置10の出力制御(読み出し)動作の一例を説明する。
図8は、半導体記憶装置の出力制御動作の一例を示すタイミングチャートである。
図8にはクロックsckz、カウント値cntsz[7],cntsz[6],cntsz[0]、アドレス信号add、信号cmpex1,cmpex2、シリアルデータsoutz1,soutz2、信号outenz1,outenz2の例が示されている。さらに、各メモリチップ11−1,11−2の端子SO1,SO2から出力されるデータの例が示されている。
図8の例では、シリアルカウンタ20−1は、クロックsckzの立ち下がりに同期してカウント値cntsz[7:0]をカウントアップしている。パラレルシリアル変換部23−1は、カウント値cntsz[7:0]に同期してアドレス信号addで指定されたアドレスのシリアルデータsout(データDa[1],Da[0]など)を出力していく。
アドレスが7FFFh番地から8000h番地に切り替わると(タイミングt1)、出力制御部25−1は出力バッファ31−1によるシリアルデータsoutz1の出力を無効にするために、信号outenz1をLレベルにする(タイミングt3)。また、図8の例では、同じタイミングt3で、メモリチップ11−2の出力制御部25−2は出力バッファ31−2によるシリアルデータsoutz2の出力を有効にするために、信号outenz2をHレベルにしている。
ところで、信号outenz1,outenz2は、アドレスの変化に応じて、比較器13−1,13−2、インバータ回路24−1,24−2、出力制御部25−1,25−2という経路により生成される。そのため、変化タイミングがシリアルデータsoutz1,soutz2の変化タイミングよりも大きくばらつく傾向がある。
図8の例では、信号outenz1がLレベル(信号outenz2がHレベル)になるタイミングt3は、シリアルデータsoutz1,soutz2が8000h番地に記憶されるデータとなるタイミングt2よりも遅延している。そのため、アドレスがメモリチップ11−2で管理される先頭アドレス(8000h番地)になっても、メモリチップ11−1からのシリアルデータsoutz1が端子SO1から出力され続ける。
しかしながら、メモリチップ11−1は、8000h番地のデータDb[7]を記憶しているため、信号outenz1,outenz2の変化が遅れても、8000番地のデータDb[7]を出力する。これにより、データDb[7]の読み出し期間を確保できる。つまり、データウィンドウが狭くなることが抑制される。
上記では、メモリチップ11−1のアドレスからメモリチップ11−2のアドレスへの連続アクセスを説明した。FFFFh番地から先頭の0000h番地に戻るような、メモリチップ11−2からメモリチップ11−1に跨るシリアル読み出しに関しても同様の効果が得られる。
以下に比較例として、メモリチップ11−1が0000h番地から7FFFh番地までしか管理していないときの出力動作制御の例を2つ示す。
(比較例1)
図9は、半導体記憶装置の出力制御動作の1つ目の比較例を示すタイミングチャートである。
図9には、クロックsckz、カウント値cntsz[7],cntsz[6],cntsz[0]、アドレス信号add、シリアルデータsoutz1,soutz2、信号outenz1,outenz2の例が示されている。さらに、各メモリチップ11−1,11−2の端子SO1,SO2から出力されるデータの例が示されている。
アドレスが7FFFh番地から8000h番地に切り替わると(タイミングt5)、図8に示したタイミングチャートと同様に、信号outenz1はLレベル(信号outenz2はHレベル)になる(タイミングt7)。タイミングt7は、シリアルデータsoutz1,soutz2が8000h番地に記憶されるデータとなるタイミングt6よりも遅延している。そのため、アドレスがメモリチップ11−2で管理される先頭アドレス(8000h番地)になっても、メモリチップ11−1からのシリアルデータsoutz1が端子SO1から出力され続ける。
メモリチップ11−1は、8000h番地にアクセスできずデータDb[7]を記憶していないと、図9に示すように7FFFh番地のデータDa[0]をシリアルデータsoutz1として出力した後に、何らかのデータDa[?]を出力する。これにより、メモリチップ11−2による、8000h番地のデータDb[7]の読み出し期間が狭くなる。つまり、データウィンドウが狭くなる。
(比較例2)
図10は、半導体記憶装置の出力制御動作の2つ目の比較例を示すタイミングチャートである。
図10には、クロックsckz、カウント値cntsz[7],cntsz[6],cntsz[0]、アドレス信号add、シリアルデータsoutz1,soutz2、信号outenz1,outenz2の例が示されている。さらに、各メモリチップ11−1,11−2の端子SO1,SO2から出力されるデータの例が示されている。
アドレスが7FFFh番地から8000h番地に切り替わると(タイミングt10)、図8に示したタイミングチャートと同様に、信号outenz1はLレベルになる(タイミングt13)。一方、ばらつきにより、信号outenz2については、タイミングt13よりも前のタイミングt12で変化している(Hレベルになる)。また、タイミングt12,t13は、シリアルデータsoutz1,soutz2が8000h番地に記憶されるデータとなるタイミングt11よりも遅延している。
そのため、図9に示した例と同様に、アドレスがメモリチップ11−2で管理される先頭アドレス(8000h番地)になっても、メモリチップ11−1から何らかのデータDa[?]が端子SO1から出力され続ける。
さらに、図10の例では、信号outenz2の電位がHレベルになるタイミングt12が、信号outenz1の電位がLレベルになるタイミングt13よりも早い。そのため、メモリチップ11−1の出力が無効になるよりも早く、メモリチップ11−2の8000h番地のデータDb[7]が端子SO2から出力される。端子SO1と端子SO2は、図5に示したように半導体記憶装置10の出力端子SOに共通に接続されており、データDa[?]とデータDb[7]は、一致していない可能性があるため、出力端子SOからは一時不明なデータが出力される可能性がある。この場合も、データDb[7]の読み出し期間が狭くなる。また、端子SO1と端子SO2におけるデータが異なる場合、出力バッファ31−1,31−2には貫通電流が流れるため消費電流が増加し、好ましくない。
このように、比較例1,2では、出力データの特性が悪化する可能性がある。
これに対して、図8に示したように、本実施の形態の半導体記憶装置10では、メモリチップ11−1は、メモリチップ11−2の先頭アドレスである8000h番地のデータDb[7]を格納し、自身の出力が無効になるまでデータDb[7]を出力する。そのため、データDb[7]の読み出し期間が狭くなることを抑制できる。また、図10のように、メモリチップ11−1,11−2の両方からデータが出力される時間があっても、両方から同じデータが出力されるため、データDb[7]の読み出し期間が狭くなることが抑制され、出力データの特性悪化が抑制される。
(第3の実施の形態)
以下では、第3の実施の形態の半導体記憶装置における2つのメモリチップを、メモリチップ11−1a,11−2aと表記する。
上記第2の実施の形態の半導体記憶装置10では、図6に示したように、メモリチップ11−1は、メモリチップ11−2で管理される先頭アドレスを管理し、メモリチップ11−2は、メモリチップ11−1で管理される先頭アドレスを管理していた。
第3の実施の形態において、メモリチップ11−1aは、メモリチップ11−2aで管理される先頭アドレスの他に、メモリチップ11−2aの通常アドレス領域の最後尾のアドレスを管理する。同様にメモリチップ11−2aは、メモリチップ11−1aで管理される先頭アドレスの他に、メモリチップ11−1aの通常アドレス領域の最後尾のアドレスを管理する。以下、図を用いて第3の実施の形態の半導体記憶装置における2つのメモリチップ(以下ではメモリチップ11−1a,11−2aと表記する)が管理するアドレス空間の一例を説明する。
(2つのメモリチップが管理するアドレス空間の一例)
図11は、2つのメモリチップが管理するアドレス空間の一例を示す図である。
メモリチップ11−1aは、0000h番地から7FFFh番地までの通常アドレス領域を管理するほか、メモリチップ11−2aが管理する先頭アドレスである8000h番地を拡張領域として管理している。さらに、メモリチップ11−1aは、メモリチップ11−2aが管理する通常アドレス領域の最後尾のアドレスであるFFFFh番地を拡張領域として管理している。
メモリチップ11−2aは、8000h番地からFFFFh番地までの通常アドレス領域を管理するほか、メモリチップ11−1aが管理する先頭アドレスである0000h番地を拡張領域として管理している。さらに、メモリチップ11−2aは、メモリチップ11−1aが管理する通常アドレス領域の最後尾のアドレスである7FFFh番地を拡張領域として管理している。
このため、メモリチップ11−1aとメモリチップ11−2aは、ともにFFFFh番地、0000h番地、7FFFh番地及び8000hのデータを記憶することになる。
以下では、このような拡張領域のアドレスが指定されたときにも、そのアドレスにアクセス可能とするための比較器の一例を説明する。
(比較器の一例)
図12は、第3の実施の形態の半導体記憶装置における比較器の一例を示す図である。
図12では、メモリチップ11−1aの比較器13−1aの一例が示されている。図7に示した比較器13−1と同じ要素については同一符号が付されている。
前述したアドレスカウンタ14−1から出力されるアドレス信号addが、16ビットのアドレスaddr[0]〜addr[15]で示されている。比較器13−1aは、前述した比較器13−1が備えているExNOR回路50、検出部51、インバータ回路52、AND回路53の他に、検出部60、NAND回路61、インバータ回路62を有している。
検出部60は、アドレスaddr[0]〜[14]が全て“1”であるか否かを検出する。検出部60は、NAND回路63,64,65,66、NOR回路67、インバータ回路68を有している。
NAND回路63は、アドレスaddr[0],addr[1],addr[2],addr[3]を入力する。NAND回路64は、アドレスaddr[4],addr[5],addr[6],addr[7]を入力する。NAND回路65は、アドレスaddr[8],addr[9],addr[10],addr[11]を入力する。NAND回路66は、アドレスaddr[12],addr[13],addr[14]を入力する。
NOR回路67は、NAND回路63〜66の出力を入力する。
インバータ回路68は、NOR回路67の出力の論理レベルを反転して、信号all1xとして出力する。
アドレスaddr[0]〜addr[14]が全て“1”のときは、NAND回路63〜66の出力は全て“0”となるので、NOR回路67の出力は、“1”となり、インバータ回路68の出力である信号all1xの電位はLレベルとなる。たとえば、7FFFh番地、FFFFh番地のとき、addr[0]〜addr[14]は全て“1”となるため、信号all0xの電位はLレベルとなる。
アドレスaddr[0]〜addr[14]の1つでも“0”であるときには、信号all1xの電位はHレベルとなる。
NAND回路61は、信号all0x,all1xを入力し、信号cmpadzを出力する。信号cmpadzの電位は、信号all0x,all1xの電位が両方ともHレベルのときに、Lレベルとなり、それ以外のときには、Hレベルとなる。
インバータ回路62は、信号cmpadzの論理レベルを反転する。
AND回路53は、インバータ回路52で論理レベルが反転された信号cmpex1と、インバータ回路62で論理レベルが反転された信号cmpadzとを入力して、信号cmp1を出力する。
このような比較器13−1aでは、アドレスaddr[0]〜addr[15]が、8000h番地のときに、信号all0xの電位がLレベルとなり、信号cmpadzの電位がHレベルとなるため、信号cmp1の電位レベルはLレベルとなる。これにより、マスク16−1の機能は無効となり、図11に示した拡張領域のアドレスである8000h番地にアクセスすることが可能になる。
また、アドレスaddr[0]〜addr[15]が、FFFFh番地のときに、信号all1xの電位がLレベルとなり、信号cmpadzの電位がHレベルとなるため、信号cmp1の電位レベルはLレベルとなる。これにより、マスク16−1の機能は無効となり、図11に示した拡張領域のアドレスである0000h番地にもアクセスすることが可能になる。
なお、アドレスaddr[0]〜addr[15]が通常アドレス領域(0000h番地〜7FFFh番地)のときには、最上位のアドレスaddr[15]が“0”のため、ExNOR回路50の出力である信号cmpex1の電位はHレベルとなる。このため、信号cmp1はLレベルとなり、マスク16−1の機能は無効となり、図11に示した通常アドレス領域(0000h番地〜7FFFh番地)にもアクセスすることが可能になる。
上記では、メモリチップ11−1aの比較器13−1aの一例を説明したが、メモリチップ11−2aの比較器も同様の回路にて実現できる。図12に示した回路で説明すると、メモリチップ11−2aの比較器では、ExNOR回路50には、信号exaz1の代わりに信号exaz2が入力される。ExNOR回路50の出力が信号cmpex2、AND回路53の出力が信号cmp2となる。
メモリチップ11−2aでは、信号exaz2の電位レベルは、Hレベルであるため、アドレスaddr[15]が“1”、すなわち、8000番地からFFFFh番地である間は、信号cmpex2の電位はHレベルとなる。アドレスaddr[15]が“0”、すなわち、0000h番地から7FFFh番地のときは、信号cmpex2の電位はLレベルとなる。
検出部60は、アドレスaddr[0]〜addr[14]が全て“1”のとき、信号all1xの電位をLレベルにする。そのため、アドレスaddr[0]〜addr[15]が7FFFh番地のときでも、信号cmp2の電位がLレベルとなり、マスク16−2の機能が無効となる。これにより、メモリチップ11−2aでは、図11に示した8000h番地からFFFFh番地までの通常アドレス領域と拡張アドレス領域のアドレスである0000h番地以外に、7FFFh番地にもアクセスすることが可能になる。
(第3の実施の形態の半導体記憶装置の動作説明)
第3の実施の形態の半導体記憶装置では、書き込み動作時に、図11に示したような各メモリチップ11−1a,11−2aで管理されるアドレス領域にデータが格納される。前述したように、メモリチップ11−1aは、拡張領域である8000h番地、FFFFh番地が指定されたときにも、自身のメモリアレイにアクセスすることが可能である。図3に示したメモリチップ11−1,11−2と同様に、メモリチップ11−1a,11−2aにおいて、シリアルデータが入力される端子は、半導体記憶装置の(パッケージの)共通の端子に接続されており同じシリアルデータが入力される。そのため、8000h番地またはFFFFh番地が指定されたときには、メモリチップ11−1aのメモリアレイと、メモリチップ11−2aのメモリアレイの両方に同じデータが格納されることになる。
同様に、メモリチップ11−2aは、拡張領域である0000h番地、7FFFh番地が指定されたときにも、自身のメモリアレイにアクセスすることが可能である。そのため、0000h番地または7FFFh番地が指定されたときには、メモリチップ11−1aのメモリアレイと、メモリチップ11−2aのメモリアレイの両方に同じデータが格納されることになる。
次に、第3の実施の形態の半導体記憶装置の出力制御(読み出し)動作の一例を説明する。
図13は、第3の実施の形態の半導体記憶装置の出力制御動作の一例を示すタイミングチャートである。
メモリチップ11−1a,11−2aは、比較器13−1a以外は、前述したメモリチップ11−1,11−2と同様の回路であるため、信号名などは図8に示したタイミングチャートと同一名称で図示されている。
図13の例では、シリアルカウンタ20−1は、クロックsckzの立ち上がりに同期してカウント値cntsz[7:0]をカウントアップしている。パラレルシリアル変換部23−1は、カウント値cntsz[7:0]に同期してアドレス信号addで指定されたアドレスのシリアルデータsoutz(データDa[1],Da[0]など)を出力していく。
アドレスが7FFFh番地から8000h番地に切り替わると(タイミングt20)、メモリチップ11−1aの出力制御部25−1は、シリアルデータsoutz1の出力を無効にするために、信号outenz1をLレベルにする(タイミングt21)。また、図13の例では、同じタイミングt21で、メモリチップ11−2aの出力制御部25−2は、シリアルデータsoutz2の出力を有効にするために、信号outenz2をHレベルにしている。これにより、出力がメモリチップ11−1aからメモリチップ11−2aに切り替わる(タイミングt22)。
前述したように、信号outenz1,outenz2は、変化タイミングがシリアルデータsoutz1,soutz2の変化タイミングよりも大きくばらつく傾向がある。
図13の例では、信号outenz1がLレベル(信号outenz2がHレベル)になるタイミングt21は、シリアルデータsoutz1,soutz2が8000h番地に記憶されていたデータとなるタイミングt23よりも早い。
そのため、メモリチップ11−2aのシリアルデータsoutz2が8000h番地のデータDb[7]に切り替わるタイミングt23より前に、メモリチップ11−2aの7FFFh番地に格納されているデータがタイミングt22から出力される。
前述したように、メモリチップ11−1aとメモリチップ11−2aは7FFFh番地に同じデータ(図13の例ではデータDa[0])を記憶している。そのため、メモリチップ11−2aは、タイミングt22から、データDa[0]を出力する。
これによって、7FFFh番地の最下位ビットのデータDa[0]の読み出し期間を確保できる。つまり、データウィンドウが狭くなることが抑制される。
上記では、メモリチップ11−1aのアドレスからメモリチップ11−2aのアドレスへの連続アクセスを説明したが、FFFFh番地から先頭の0000h番地に戻るようなシリアル読み出しの際も同様の効果が得られる。すなわち、信号outenz1がHレベル(信号outenz2がLレベル)に戻るタイミングが、シリアルデータsoutz1,soutz2が0000h番地に記憶されていたデータとなるタイミングよりも早い場合も同様の効果が得られる。メモリチップ11−1aがメモリチップ11−2aの通常アドレス領域の最後尾のFFFh番地のデータを格納しているためである。
以下に比較例として、メモリチップ11−2aが0000h番地から7FFFh番地までしか管理していないときの出力動作制御の例を示す。
(比較例)
図14は、第3の実施の形態の半導体記憶装置の出力制御動作の比較例を示すタイミングチャートである。
信号名などは図9に示したタイミングチャートと同一名称で図示されている。
アドレスが7FFFh番地から8000h番地に切り替わると(タイミングt25)、図13に示したタイミングチャートと同様に、信号outenz1はLレベル(信号outenz2はHレベル)になる(タイミングt26)。これにより、出力がメモリチップ11−1aからメモリチップ11−2aに切り替わる(タイミングt27)。
図13に示した例と同様に、信号outenz1がLレベル(信号outenz2がHレベル)になるタイミングt26は、シリアルデータsoutz1,soutz2が8000h番地に記憶されていたデータとなるタイミングt28よりも早い。
メモリチップ11−2aが、7FFFh番地を管理していない(7FFFh番地にアクセスできない)場合、シリアルデータsoutz2は、8000h番地のデータDb[7]になる前には、不明なデータDb[?]となっている。
そのため、メモリチップ11−2aのシリアルデータsoutz2が8000h番地のデータDb[7]に切り替わるタイミングt27より前に、メモリチップ11−2aの意図しない不明なデータDb[?]が出力されてしまう。これにより、7FFFh番地のデータDa[0]の読み出し期間が狭くなる。つまり、データウィンドウが狭くなる。
このように、上記の比較例では、出力データの特性が悪化する可能性がある。
これに対して、第3の実施の形態の半導体記憶装置では、図13に示したように、信号outenz1,outenz2の変化が、シリアルデータsoutz1,soutz2の変化よりも早まっても、出力データの特性悪化が抑制される。アドレスが7FFFh番地になると、メモリチップ11−2aが、予め格納している7FFFh番地のデータDa[0]を出力するためである。
(メモリアレイの一例)
次に、前述したメモリチップ11−1,11−2,11−1a,11−2aに適用される、メモリアレイ(たとえば、図3に示したようなメモリアレイ12−1,12−2)の一例を説明する。なお、以下ではメモリアレイ12と表記することにする。
図15は、メモリアレイの一例を示す図である。
メモリアレイ12は、複数のメモリセルと、コラム線clz[0],clz[1],…,clz[30],clz[31]と、ワード線wlz[0],wlz[1],…,wlz[1022],wlz[1023],wlz[1024]を有している。
なお、図15の例では、図示を簡略化するため各メモリセルは、たとえば、8ビットの単位を1つのブロックとして図示されている。
このようなメモリアレイ12では、たとえば、ワード線wlz[0]〜wlz[1023]により選択されるアドレス領域が、図6、図11に示した通常アドレス領域に相当し、ワード線wlz[1024]により選択されるアドレス領域が拡張領域に相当する。
そのため、ワード線wlz[1024]に接続されるメモリセルmc0,mc1,…,mc30,mc31の少なくとも1つに拡張領域のデータが記憶される。たとえば、ワード線wlz[1024]とコラム線clz[0]で選択されるメモリセルmc0には、図6に示したメモリチップ11−1の8000h番地のデータ、あるいはメモリチップ11−2の0000h番地のデータが記憶される。また、ワード線wlz[1024]とコラム線clz[31]で選択されるメモリセルmc31には、図11に示したメモリチップ11−1aのFFFFh番地のデータ、あるいはメモリチップ11−2aの7FFFh番地のデータが記憶される。
なお、シリアルインターフェースのメモリの一例であるSPI(Serial Peripheral Interface)のメモリでは、ステータスレジスタと呼ばれる設定データの格納領域を選択するワード線が存在するが、全コラムアドレスを使い切ってはいない場合が多い。そのため、たとえば、メモリセルmc0,mc31などは設定データの格納には用いず未使用領域A1,A2となっている。このような未使用領域A1,A2を、前述した拡張領域のデータ格納用に用いることで、メモリアレイのサイズの増大を招かない。
次に、上記のような拡張領域のアドレスを選択するためのデコード回路の一例を説明する。
(拡張領域選択のためのデコード回路の一例)
図16は、拡張領域選択のためのデコード回路の一例を示す図である。
図16では、図11に示したような拡張領域のアドレスを選択するためのデコード回路70の例が示されている。
デコード回路70において、図15に示したワード線wlz[1024]を選択する部分は、NAND回路71,72、インバータ回路73を有している。
NAND回路71は前述した信号all0x,all1xを入力する。NAND回路72は、信号cmpez(前述した図5の信号cmpez1または信号cmpez2)と、NAND回路71の出力信号を入力する。インバータ回路73は、NAND回路72の出力信号の論理レベルを反転した信号をワード線wlz[1024]に供給する。
ワード線wlz[1024]が活性化される(電位レベルがHレベルとなる)のは、信号cmpezの電位がHレベル、かつ、信号all0xまたは信号all1xの電位がLレベルのときである。信号cmpezの電位がHレベルということは、信号exaz1(または信号exaz)が、アドレスaddr[15]と一致しない場合である。
そのため、信号cmpezの電位がHレベルであり、かつ、信号all0xの電位がLレベルであるときは、メモリチップ11−1aでは8000h番地が指定されたときに相当し、メモリチップ11−2aでは0000h番地が指定されたときに相当する。
また、信号cmpezの電位がHレベルであり、かつ、信号all1xの電位がLレベルであるときは、メモリチップ11−1aではFFFFh番地が指定されたときに相当し、メモリチップ11−2aでは7FFFh番地が指定されたときに相当する。
デコード回路70において、図15に示したコラム線clz[0]を選択する部分は、NOR回路74,75とNAND回路76を有している。
NOR回路74は、アドレスaddr[0]〜addr[2]を入力し、NOR回路75は、アドレスaddr[3],addr[4]を入力する。NAND回路76は、NOR回路74,75の出力信号を入力する。NAND回路76の出力信号は、コラム線clz[0]に供給される。
図15に示したコラム線clz[31]を選択する部分は、NAND回路77,78とNOR回路79を有している。
NAND回路77は、アドレスaddr[0]〜addr[2]を入力し、NAND回路78は、アドレスaddr[3],addr[4]を入力する。NOR回路79は、NAND回路77,78の出力信号を入力する。NOR回路79の出力信号は、コラム線clz[31]に供給される。
以上のようなデコード回路70により、拡張領域のアドレスを選択するためにワード線wlz[1024]やコラム線clz[0],clz[31]を活性化することができる。
なお、上記の説明では、拡張領域のアドレスのデータは、メモリアレイだけに格納されるとして説明したがこれに限定されず、別の記憶領域にも格納されるようにしてもよい。以下、その例を説明する。
(拡張領域のアドレスのデータを格納する他の記憶領域を設けた例)
図17は、拡張領域のアドレスのデータを格納する他の記憶領域を設けた例を示す図である。
図17には、図12に示した比較器13−1a、比較器13−1aから出力される信号cmpex1の論理レベルを反転させた信号cmpez1を出力するインバータ回路24−1が示されている。さらに、シリアルパラレル変換部80、入力制御部81、メモリアレイ82、拡張領域キャッシュ83−1,83−2、拡張領域履歴管理部84、出力制御部85、データセレクタ86、パラレルシリアル変換部87が示されている。なお、信号wrz,rdzを生成する図4に示したステートマシン22−1などは、図示を省略している。
シリアルパラレル変換部80は、図4に示したシリアルパラレル変換部21−1と同様の機能を有し、シリアルデータsizを、8ビットのパラレルデータpiz[7:0]に変換する。
入力制御部81は、信号wrz,cmpez1と比較器13−1aの検出部51,60から出力される信号all0x,all1xに基づき、メモリアレイ82へ供給する信号mwrzと拡張領域キャッシュ83−1,83−2へ供給する信号cwrzを生成する。信号mwrzは、メモリアレイ82への書き込みを許可する信号であり、信号cwrzは、拡張領域キャッシュ83−1,83−2への書き込みを許可する信号である。
メモリアレイ82は、図15に示したメモリアレイ12と同様である。信号mwrzによって書き込みが許可されているときには、パラレルデータpiz[7:0]が書き込まれる。
2つの拡張領域キャッシュ83−1,83−2は、図11に示したメモリチップ11−1aの2つの拡張領域である8000h番地と、FFFFh番地のデータを記憶するキャッシュレジスタ(記憶部)である。たとえば、拡張領域キャッシュ83−1が、8000h番地のデータを記憶し、拡張領域キャッシュ83−2が、FFFFh番地のデータを記憶する。拡張領域キャッシュ83−1は、信号all0xにより選択され、拡張領域キャッシュ83−2は、信号all1xにより選択される。
拡張領域履歴管理部84は、信号rdz,cmpez1,all0x,all1xに基づき、メモリアレイ82へ供給する信号mrdzと拡張領域キャッシュ83−1,83−2へ供給する信号crdzを生成する。信号mrdzは、メモリアレイ82からの読み出しを許可する信号であり、信号crdzは、拡張領域キャッシュ83−1,83−2からの読み出しを許可する信号である。拡張領域履歴管理部84は、信号rdz,cmpez1,all0x,all1xから、図11に示した拡張領域のアドレスからのデータの読み出しが実行されたか否か判定し、その判定結果を履歴情報として記憶しておく。履歴情報は、電源投入時に消去される。拡張領域に対する読み出しが未実施のとき、拡張領域履歴管理部84は、信号mrdzの電位をHレベルとして活性化する。これにより、拡張領域履歴管理部84は、拡張領域のデータの読み出しの際にメモリアレイ82を活性化させる。
出力制御部85は、信号rdz,cmpez1,all0x,all1xに基づき、データセレクタ86にデータを出力させるか否かを制御する。そのため、出力制御部85は、図4に示した出力制御部25−1と同様の機能を有している。
データセレクタ86は、出力制御部85によってデータを出力するか否かが制御される。そのため、データセレクタ86は、図4に示した出力バッファ31−1と同様の機能を有している。
さらに、データセレクタ86は、前述した信号mrdzを受け、メモリアレイ82から読み出されるパラレルデータpoutz[7:0]か、拡張領域キャッシュ83−1,83−2から読み出されるパラレルデータpoutcz[7:0]の何れかを出力する。信号mrdzが活性化されているときには、データセレクタ86は、メモリアレイ82から読み出されるパラレルデータpoutz[7:0]を、出力データpoz[7:0]として出力する。信号mrdzが非活性化されているときには、データセレクタ86は、拡張領域キャッシュ83−1,83−2から読み出されるパラレルデータpoutcz[7:0]を出力データpoz[7:0]として出力する。
パラレルシリアル変換部87は、データセレクタ86の出力データpoz[7:0]をシリアルデータsozに変換して出力する。
以下、拡張領域キャッシュの使用例を示す。
図18は、拡張領域キャッシュの使用例を示すタイミングチャートである。
図18には、図17に示した回路において、0000h〜FFFFh番地の領域に対する読み出しをした後に、書き込みを実施する動作を2回繰り返したときの、メモリチップ11−1aの内部動作が示されている。図17に示した各信号cmpez1,all0x,all1x,rdz,wrz,mrdz,crdz,mwrz,cwrzの変化の様子の例が示されている。さらに、パラレルデータpiz[7:0],poutz[7:0],poutcz[7:0]、拡張領域キャッシュ83−1,83−2のデータ、出力データpoz[7:0]の変化の様子の例が示されている。
電源起動直後は、拡張領域キャッシュ83−1,83−2のデータは確定していない。電源起動後、書き込みの前に読み出し(信号wrzの電位がHレベルの状態)を実施した場合、メモリアレイ82からは、以前に書き込みを行ったデータが読み出される(タイミングt30)。
最初に8000h番地が指定されると(タイミングt31)、8000h番地が指定されている間、信号all1xの電位がLレベルに立ち下がる。また、最初に8000h番地が指定されている間は、信号mrdzの電位はHレベルに活性化される。これにより、メモリアレイ82から8000h番地のデータがパラレルデータpoutz[7:0]として読み出され、拡張領域キャッシュ83−1に設定されるとともに、データセレクタ86から出力データpoz[7:0]として出力される。
最初にFFFFh番地が指定されると(タイミングt32)、FFFFh番地が指定されている間、信号all1xの電位がLレベルに立ち下がる。また、最初にFFFFh番地が指定されている間は、信号mrdzの電位はHレベルに活性化される。これにより、メモリアレイ82からFFFFh番地のデータがパラレルデータpoutz[7:0]として読み出され、拡張領域キャッシュ83−2に設定されるとともに、データセレクタ86から出力データpoz[7:0]として出力される。
その後、書き込み動作(信号wrzの電位がHレベルの状態)において、8000h番地が指定されると(タイミングt33)、8000h番地が指定されている間、信号all0xの電位がLレベルになるとともに、信号mwrz,cwrzが両方活性化される。これにより、メモリアレイ82と拡張領域キャッシュ83−1の両方に格納されている8000h番地のデータが、パラレルデータpiz[7:0]によって更新される。
書き込み動作において、その後、FFFFh番地が指定されると(タイミングt34)、FFFFh番地が指定されている間、信号all1xの電位がLレベルになるとともに、信号mwrz,cwrzが両方活性化される。これにより、メモリアレイ82と拡張領域キャッシュ83−2の両方に格納されているFFFFh番地のデータが、パラレルデータpiz[7:0]によって更新される。
その後の、読み出し動作において、再び8000h番地が指定されると(タイミングt35)、8000h番地が指定されている間、信号all0xの電位がLレベルに立ち下がる。しかし、タイミングt31のときとは異なり、信号mrdzの電位は活性化されず、代わりに信号crdzが活性化される。これにより、拡張領域キャッシュ83−1から8000h番地のデータがパラレルデータpoutcz[7:0]として読み出され、データセレクタ86から出力データpoz[7:0]として出力される。
また、読み出し動作において、再びFFFFh番地が指定されると(タイミングt36)、FFFFh番地が指定されている間、信号all1xの電位がLレベルに立ち下がる。しかし、タイミングt32のときとは異なり、信号mrdzの電位は活性化されず、代わりに信号crdzが活性化される。これにより、拡張領域キャッシュ83−2からFFFFh番地のデータがパラレルデータpoutcz[7:0]として読み出され、データセレクタ86から出力データpoz[7:0]として出力される。
このように、2度目以降の拡張領域からの読み出しでは、メモリアレイ82の活性化を省略でき、消費電流を削減することができる。
なお、図18からわかるように、信号mwrz,cwrzは同一の動作をする信号であるため、1つの信号にまとめてもよい。
以上、実施の形態に基づき、本発明の半導体記憶装置の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。