(57)【要約】【課題】  高速なメモリアクセスを行うことが可能であり、また、大容量のメモリを備えることが可能な半導体装置を提供する。【解決手段】  書き込みに読み出しの２倍のサイクルを必要とし、書き込みと読み出しのポートを個々に備えた複数のメモリバンク（Ｂａｎｋ）０〜３と、前記２倍のサイクルに基づいて、それぞれが前記メモリバンクの一つと同じメモリ容量を備えた２個のキャッシュデータバンクＣＤ０，ＣＤ１とを設け、例えば、外部より連続サイクルの書き込み命令が発生した際に、サイクル＃２において、ＣＤ１のロウ２に記憶されたメモリバンク２のデータは、メモリバンク２がサイクル＃１によりビジー状態であるためライトバック不可であるが、代わりにＣＤ０のロウ２に記憶されたメモリバンク０のデータをライトバックすることが可能である。【選択図】  図５
2006190402.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリバンクを含み、第１のサイクル時間内でデータ読み出しを行い、前記第１のサイクル時間よりも長い第２のサイクル時間内でデータ書き込みを行い、前記複数のメモリバンク内の１つのメモリバンクの中でデータ読み出しとデータ書き込みを時間的に並行して行うことが可能な第１のメモリデバイスと、
前記第１のサイクル時間内でデータ読み出しとデータ書き込みが可能であり、前記第１のメモリデバイスのキャッシュメモリとして機能する第２のメモリデバイスとを有し、
データ書き込み命令の発生時に前記第２のメモリデバイスがキャッシュミスかつキャッシュフルである場合に、前記第１のサイクル時間内で、
前記第１のメモリデバイス内の前記複数のメモリバンクの中からデータ書き込みを実行中でないメモリバンクを選定する処理と、
前記第２のメモリデバイス内の記憶データの中から前記選定したメモリバンクに対応した記憶データをライトバックする処理と、
前記ライトバックに伴い前記第２のメモリデバイス内で空き状態となった記憶領域に、前記データ書き込み命令に伴う入力データを書き込む処理とを実行することを特徴とする半導体装置。
【請求項２】
請求項１記載の半導体装置において、
前記複数のメモリバンクのそれぞれは、第１のメモリ容量を備え、
前記第２のサイクル時間は、前記第１のサイクル時間の２倍以上であり、
前記第２のメモリデバイスは、前記第１のメモリ容量の２倍以上のメモリ容量を備えることを特徴とする半導体装置。
【請求項３】
請求項１または２記載の半導体装置において、
前記第１のメモリデバイスは、メモリセルにチャネル領域の厚さが５ｎｍ以下であるトランジスタを含み、
前記第２のメモリデバイスは、ＳＲＡＭメモリセルを含むことを特徴とする半導体装置。
【請求項４】
それぞれがＭ個のデータ列を記憶し、データ書き込みのサイクル時間がデータ読み出しのサイクル時間に比べて、Ｎ（Ｎ≧２）倍のサイクル時間を必要とする複数のメモリバンクと、
前記複数のメモリバンクのキャッシュメモリとして機能し、それぞれがＭ個のデータ列を記憶し、前記Ｎ倍の時間に基づいて少なくともＮ個設けられたキャッシュデータバンクと、
前記少なくともＮ個のキャッシュデータバンクに記憶するＭ個のデータ列のそれぞれが前記複数のメモリバンクのいずれに対応するかを特定するため、それぞれがＭ個のメモリバンクアドレスを記憶する少なくともＮ個のキャッシュタグバンクと、
キャッシュヒットおよびキャッシュフルを判定し、前記複数のメモリバンク、前記少なくともＮ個のキャッシュデータバンクおよび前記少なくともＮ個のキャッシュタグバンクを制御するコントローラとを有することを特徴とする半導体装置。
【請求項５】
請求項４記載の半導体装置において、
前記コントローラは、
前記複数のメモリバンクに記憶されたＭ個のデータ列の中からいずれかのデータ列を特定するための入力メモリバンクアドレスおよび入力データ列アドレスを含む外部入力アドレスと、外部入力データと、を伴ったデータ書き込み命令が発生した際に、
前記少なくともＮ個のキャッシュタグバンク内の前記入力データ列アドレスからそれぞれ読み出した少なくともＮ個のメモリバンクアドレスと前記入力メモリバンクアドレスとを比較することでキャッシュヒットまたはキャッシュミス、ならびにキャッシュフルを判定する処理と、
前記判定した結果がキャッシュミスかつキャッシュフルの場合に、前記少なくともＮ個のキャッシュタグバンクから読み出した少なくともＮ個のメモリバンクアドレスの中からデータ書き込みを実行中でないメモリバンクに対応するメモリバンクアドレスを選定する処理と、
前記少なくともＮ個のキャッシュデータバンク内の前記入力データ列アドレスにそれぞれ記憶された少なくともＮ個のデータ列の中から、前記選定したメモリバンクアドレスに対応するデータ列を、前記選定したメモリバンクアドレスに対応するメモリバンクにライトバックする処理と、
前記少なくともＮ個のキャッシュデータバンク内で前記ライトバックの対象となったデータ列が記憶されていた領域に、前記外部入力データを記憶する処理と、
前記少なくともＮ個のキャッシュタグバンク内で前記選定したメモリバンクアドレスが記憶されていた領域に、前記入力メモリバンクアドレスを記憶する処理とを実行することを特徴とする半導体装置。
【請求項６】
請求項４記載の半導体装置において、
前記コントローラは、
前記複数のメモリバンクに記憶されたＭ個のデータ列の中からいずれかのデータ列を特定するための入力メモリバンクアドレスおよび入力データ列アドレスを伴ったデータ読み出し命令が発生した際に、
前記少なくともＮ個のキャッシュタグバンク内の前記入力データ列アドレスからそれぞれ読み出した少なくともＮ個のメモリバンクアドレスと前記入力メモリバンクアドレスとを比較することでキャッシュヒットまたはキャッシュミスを判定する処理と、
前記キャッシュヒットまたはキャッシュミスを判定する処理と時間的に並行して、前記複数のメモリバンクの前記入力メモリバンクアドレスおよび入力データ列アドレスから予めデータ列の読み出しを行う処理と、
前記判定した結果がキャッシュミスの場合に、前記複数のメモリバンクから予め読み出しを行ったデータ列を外部へ出力する処理とを実行することを特徴とする半導体装置。
【請求項７】
請求項５記載の半導体装置において、
前記少なくともＮ個のキャッシュタグバンクのそれぞれは、更に、前記少なくともＮ個のキャッシュデータバンクに記憶するＭ個のデータ列のそれぞれが有効なデータ列か否かを示すＭ個の有効ビットを記憶し、
前記コントローラは、前記少なくともＮ個のキャッシュタグバンクから前記少なくともＮ個のメモリバンクアドレスと共に少なくともＮ個の有効ビットを読み出すことで、前記キャッシュフルか否かを判定することを特徴とする半導体装置。
【請求項８】
請求項５記載の半導体装置において、
前記複数のメモリバンクのそれぞれは、前記ライトバックする処理を行う間、前記ライトバックの対象となったデータ列を一時的に保持するライトバッファを備え、
前記コントローラは、
前記外部入力アドレスを伴ったデータ読み出し命令が発生した際に、
前記キャッシュヒットまたはキャッシュミスを判定する処理と、
前記判定した結果がキャッシュミスの場合に、前記外部入力アドレスに対応するデータ列が前記ライトバッファ内に存在するか否かを判定する処理と、
前記ライトバッファ内に存在する場合には、前記ライトバッファ内のデータ列を読み出して外部へ出力する処理とを実行することを特徴とする半導体装置。
【請求項９】
請求項５記載の半導体装置において、
前記コントローラでの前記外部入力データを記憶する処理の際に、前記ライトバックの対象となったデータ列が記憶されていた領域が複数のセクションを含み、前記外部入力データによって前記複数のセクションの一つを更新する場合、
前記コントローラは、
前記キャッシュヒットまたはキャッシュミスを判定する処理と時間的に並行して、前記複数のメモリバンクの前記外部入力アドレスから予めデータ列の読み出しを行う処理と、
前記判定した結果がキャッシュミスかつキャッシュフルの場合に、前記ライトバックする処理を行った後、前記ライトバックの対象となったデータ列が記憶されていた領域に、前記予め読み出しを行ったデータ列の一つのセクションに前記外部入力データを組み合わせたデータ列を記憶する処理とを実行することを特徴とする半導体装置。
【請求項１０】
請求項４〜９のいずれか１項に記載の半導体装置において、
前記少なくともＮ個のキャッシュタグバンクおよび前記少なくともＮ個のキャッシュデータバンクは、ＳＲＡＭメモリセルによって構成されることを特徴とする半導体装置。
【請求項１１】
半導体メモリを含む半導体装置であって、
前記半導体メモリは、
外部データバスからの入力データを内部入力データバスへ伝送し、内部出力データバスからの出力データを前記外部データバスへ伝送するデータ入出力バッファと、
第１のデータバスおよび第２のデータバスと、
前記第１のデータバスまたは前記第２のデータバスのいずれか一方を選択し、前記内部出力データバスに出力する第１の選択回路と、
ロウアドレスビットおよびメモリバンクアドレスビットを含むアドレスバスと、
前記ロウアドレスビットで示される複数のロウと前記複数のロウのそれぞれに第１の数のロウデータを備えたメモリバンクを、前記メモリバンクアドレスビットで示される数だけ含み、前記第１のデータバスからデータを入力し、前記第２のデータバスにデータを出力する第１のメモリデバイスと、
前記複数のロウと前記第１の数のロウデータを備えたキャッシュデータバンクを第２の数だけ含み、前記第１のデータバスにデータを出力し、前記第２のデータバスからデータを入力する第３のメモリデバイスと、
前記複数のロウを備えたキャッシュタグバンクを前記第２の数だけ含み、前記アドレスバスのメモリバンクアドレスビットからデータを入力する第４のメモリデバイスと、
前記半導体メモリに対してデータ書き込み命令又はデータ読み出し命令が発生した際に、前記第４のメモリデバイスから読み出したデータと前記アドレスバスのメモリバンクアドレスビットとを比較することでキャッシュヒットまたはキャッシュミスの判定を行う機能を含み、前記第１、前記第３および前記第４のメモリデバイスの制御を行う制御回路とを有し、
前記第１のメモリデバイスのデータ書き込みサイクル時間がデータ読み出しサイクル時間に比べてＮ（Ｎ≧２）倍の時間を必要とする場合、前記第２の数は、Ｎ個以上であることを特徴とする半導体装置。
【請求項１２】
請求項１１記載の半導体装置において、
前記第１のデータバスと前記第２のデータバスと前記外部データバスのビット幅は、同一かつ前記第１の数よりも小さいことを特徴とする半導体装置。
【請求項１３】
請求項１１記載の半導体装置において、
前記第１のデータバスと前記第２のデータバスのビット幅は、共に前記第１の数であり、
前記外部データバスのビット幅は、前記第１の数よりも小さいことを特徴とする半導体装置。
【請求項１４】
請求項１１記載の半導体装置において、
前記第１のメモリデバイス内のメモリセルは、
ゲートが書き込みワード線に接続され、ソースまたはドレインの一方が書き込みビット線に接続された書き込み用トランジスタと、
ゲートが前記書き込み用トランジスタのソースまたはドレインの他方に接続され、ソースまたはドレインの一方が固定電位に接続された記憶用トランジスタと、
ゲートが読み出しワード線に接続され、ソースまたはドレインの一方が前記記憶用トランジスタのソースまたはドレインの他方に接続され、ソースまたはドレインの他方が読み出しビット線に接続された読み出し用トランジスタとを有することを特徴とする半導体装置。
【請求項１５】
請求項１２記載の半導体装置において、
前記第１のメモリデバイス内のそれぞれの前記メモリバンクは、前記第１の数のロウデータを一時的に記憶可能なライトバッファを備え、
前記メモリバンクに対して前記第１の数を単位としてデータ書き込みを行う必要がある場合、前記第２の数は、（Ｎ＋１）個以上であることを特徴とする半導体装置。
【請求項１６】
請求項１３記載の半導体装置において、
更に、前記第２のデータバスの一部に前記内部入力データバスを組み合わせて前記第３のメモリデバイスへ出力する第２の選択回路を有することを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリを含む半導体装置に関するものであり特に、データ書き込み動作が遅いメモリセルを用いたメモリにおいて、高速で待ち時間のない外部アクセスを実現するために有効な技術に関するものである。
【背景技術】
【０００２】
本発明者が検討したところによれば、現在広く使われているメモリには、以下のようなものがある。
【０００３】
最も一般的なものは６つのトランジスタからなるメモリセルを用いたＳＲＡＭである。これは、一般的なトランジスタ製造プロセスで形成可能であるため単品のメモリやプロセッサのためのオンチップキャッシュなどに広く使われている。
【０００４】
もう一つの代表的なメモリとして１つのトランジスタと１つのキャパシタからなるメモリセルを用いたＤＲＡＭがある。これは、キャパシタの製造プロセスが必要であるという問題があるが、ＳＲＡＭに較べて非常に高集積であるため、大容量メモリとしてパーソナルコンピュータのメインメモリなどに広く使われている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、前記のようなメモリの動作速度について、本発明者が検討した結果、以下のようなことが明らかとなった。
【０００６】
ＤＲＡＭでは、キャパシタに蓄えた電荷をビット線に読み出すが、ＳＲＡＭのようにトランジスタでビット線を駆動する、所謂ゲインセルではないため、読出し動作の高速化の点でＳＲＡＭより劣る。ＳＲＡＭより高集積なゲインセルとして、例えば３つのトランジスタからなるメモリセルがある。例えば、蓄積用、書き込み用および読み出し用のトランジスタをそれぞれ備え、蓄積用のトランジスタのゲートに２値情報を書き込むものなどが挙げられる。
【０００７】
このようなメモリ構成においては、読み出し動作は、ビット線をトランジスタで駆動するため、ＳＲＡＭと同等な高速動作を実現することが可能である。しかしながら、リテンション特性を改善しようとすると書き込みトランジスタのオン電流を大きくとることが難しくなるなどの理由から、書込み速度をＳＲＡＭと同等にすることは困難である。設計にもよるが、書き込み動作は、読み出し動作の２倍もしくは３倍遅くなる可能性がある。
【０００８】
したがって、このような書き込みアクセスの遅いメモリセルを用いた場合でも、ＳＲＡＭに匹敵する速度で、ランダムにアクセス可能となるように、新たなアーキテクチャや回路技術が求められている。言い換えれば、このような低速書き込みアクセスを解消し、高速で外部アクセスを実行できるようになれば、高集積、高速なメモリとして広く使われると予想される。
【０００９】
そこで、本発明の目的は、このような問題等を鑑み、高速なメモリアクセスを行うことが可能であり、また、大容量のメモリを備えることが可能な半導体装置を提供することにある。
【００１０】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１２】
本発明による半導体装置は、複数のメモリバンクを含み、第１のサイクル時間内でデータ読み出しを行い、第１のサイクル時間よりも長い第２のサイクル時間内でデータ書き込みを行い、複数のメモリバンク内の１つのメモリバンクの中でデータ読み出しとデータ書き込みを時間的に並行して行うことが可能な第１のメモリデバイスと、第１のサイクル時間内でデータ読み出しとデータ書き込みが可能であり、第１のメモリデバイスのキャッシュメモリとして機能する第２のメモリデバイスとを有するものとなっている。そして、前記半導体装置において、データ書き込み命令の発生時に第２のメモリデバイスがキャッシュミスかつキャッシュフルである場合には、第１のサイクル時間内で、第１のメモリデバイス内の複数のメモリバンクの中からデータ書き込みを実行中でないメモリバンクを選定する処理と、第２のメモリデバイス内の記憶データの中から前記選定したメモリバンクに対応した記憶データをライトバックする処理と、ライトバックに伴い第２のメモリデバイス内で空き状態となった記憶領域に、データ書き込み命令に伴う入力データを書き込む処理とを実行するものとなっている。
【００１３】
すなわち、前記第１のメモリデバイスとしては、例えば、読み出しポートと書き込みポートとが分けられた複数のメモリセルを有するものが用いられる。このようなメモリセルは、例えば、各メモリセル毎に２個もしくは３個のトランジスタを備えたＳＥＳＯ（Ｓｉｎｇｌｅ−Ｅｌｅｃｔｒｏｎ  Ｓｈｕｔ−Ｏｆｆ）メモリセルとすることができる。この場合、書き込みポートは、書き込みトランジスタのゲートおよびドレインにそれぞれ接続された書き込みワード線と書き込みビット線とからなり、読み出しポートは、読み出しトランジスタのゲートおよびドレインにそれぞれ接続された読み出しワード線と読み出しビット線とからなる。このようなメモリセルにおいては、メモリセルのあるロウ（読み出しワード線）からの読み出しと、別のロウ（書き込みワード線）への書き込みとを時間的に並行して行うことが可能である。
【００１４】
このようなメモリデバイスは、通常、書き込みアクセスが読み出しアクセスよりも２倍以上遅い動作となる。この場合、読み出しアクセスは、読み出しワード線を起動することおよび読み出しビット線における電流もしくは電圧の変化を測定することからなり、書き込みアクセスは、書き込みビット線の電圧をある電圧にセットすること、書き込みワード線を起動すること、および所定の時間が経過してメモリセルのデータが所望の最終状態に変化した後、該書き込みワード線を停止することからなる。書き込みアクセスに要する時間は、読み出しアクセスに要する時間の数倍になり得る。例えば、読み出しアクセスを完了するのに１クロックサイクル要するとすると、書き込みアクセスを完了するのには２もしくはそれ以上のクロックサイクルが必要となる。
【００１５】
そこで、読み出しアクセスのクロックサイクルと同等の最大周波数で外部データバスからデータを記憶できるように第２のメモリデバイスを含む追加回路を別途設ける。これによって、待ち状態もしくは待ち時間が増加することなく、半導体メモリへのデータの読み書きを、読み出しアクセスのクロックサイクルスピードで連続して行うことを可能にする。そして、このような回路構成を追加することで、書き込み動作が低速な２ポートメモリを、高速ＳＲＡＭメモリと直接置きかえ、大容量化を可能にする。
【００１６】
ここで、前記第２のメモリデバイスは、例えば、ＳＲＡＭ等であり、メインメモリ（第１のメモリデバイス）内の単一メモリバンクと同じ大きさのロウ構成およびカラム構成を有するキャッシュデータバンクが、少なくとも２つ以上含まれるものとなっている。必要とされるキャッシュデータバンクの数は、メインメモリの書き込みサイクル時間と読み出しサイクル時間との倍数で決まる。例えば、書き込みサイクル時間が読み出しサイクル時間の３倍である場合には、３つのキャッシュデータバンクが必要となる。また、第２のメモリデバイスには、キャッシュデータバンクに記憶する各エントリーのメモリバンクアドレスを記憶するためのキャッシュタグバンクのセットが含まれる。これによって、効果的に外部書き込み動作を高速化することができる。
【００１７】
より具体的に説明すると、ロウアドレスおよびセクションアドレスならびにメモリバンクアドレスを含む外部入力アドレスと外部入力データを伴う外部書き込みコマンドが発生した際、キャッシュヒットの場合には、当該キャッシュデータバンクの選択されたロウに、新たなデータ列（ロウデータまたはその一部となるセクションデータ）が記憶され、そのデータ列のメモリバンクアドレスがキャッシュタグバンクに記憶される。しかしながら、キャッシュミスであり、かつ選択されたロウにおいて空のキャッシュデータバンクがない場合（キャッシュフルの場合）には、対応するキャッシュタグバンクの内容に基づいて、選択されたロウにおけるいずれかのキャッシュデータバンクのデータ列をメモリバンクに書き戻す必要がある。すなわち、ライトバック処理を行う必要がある。このライトバック処理を行うことで、キャッシュエントリの一つをクリアし、そこに新たな情報（外部入力データ）を記憶することができ、書き込みサイクルを完了することが可能となる。
【００１８】
外部書き込みコマンドは、クロックサイクル毎に１つの割合で入力することが可能であるが、前記第１のメモリデバイスに対してライトバック処理を完了するには１サイクルより多くのサイクルが必要である。そこで、連続する書き込みアクセスに適応するために、複数のキャッシュデータバンクおよびキャッシュタグバンクが設けられる。
【００１９】
すなわち、例えば、１つのキャッシュデータバンクおよびキャッシュタグバンクを備えた状態で、連続する書き込みアクセスが発生した場合を想定すると、キャッシュデータバンクの選択されたロウが空でない場合には、そのロウのデータ列をライトバック処理する必要がある。しかしながら、そのデータ列のライトバック先となるメモリバンクが、前サイクルで発生したライトバック処理を実行中の場合には、ライトバック処理を実行できなくなる。
【００２０】
そこで、ライトバックサイクルの長さに対応した複数のキャッシュデータバンクおよびキャッシュタグバンクを設けることにより、ライトバック処理を行う際にビジー状態でないメモリバンクが常に存在するアーキテクチャを得ることが可能になる。したがって、ライトバック処理に伴いビジー状態でないメモリバンクを選定し、そのメモリバンクに対応するデータ列をライトバックすることで、連続した書き込みアクセスに対応することが可能になる。
【００２１】
また、メモリバンクにおいては読み出しポートと書き込みポートとが分けて設けられているため、キャッシュミス時などでビジー状態のメモリバンクへの読み出しアクセスが発生しても、外部読み出しアクセスは１サイクル以内で完了する。これは、ライトバック動作が読み出し動作によって中断させられないためである。このようにして、読み出しもしくは書き込みアクセスを１サイクル以内に完了させることが可能となり、半導体装置内の半導体メモリとして、ＳＲＡＭメモリに代えて前述したようなメモリデバイスを用いることができ、コストを低減することが可能となる。
【発明の効果】
【００２２】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、高速なメモリアクセスを行うことが可能となる。また、大容量のメモリを備えることが可能となる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２４】
まず、本発明の概要について述べると、本発明の一実施の形態の半導体装置では、別々の読み出しポートおよび書き込みポートを備えた揮発性もしくは不揮発性のメモリセルを含み、ＳＲＡＭと互換性のあるメインメモリデバイス（第１のメモリデバイス）が用いられる。ただし、このようなメインメモリデバイスのメモリセルでは、読み出しアクセスにおける１サイクルよりも多くのサイクルが書き込みアクセスにおいて必要となる。そこで、半導体メモリ内に第２のメモリデバイスとして、一対となるキャッシュデータバンク（第３のメモリデバイス）およびキャッシュタグバンク（第４のメモリデバイス）と、これらを制御する制御回路を設けることで、いかなるアクセスパターンにおいても待ち状態もしくは待ち時間をなくし、半導体メモリへの連続的な外部読み出しおよび書き込みアクセスが１サイクル以内で完了可能なようにする。以降、これらの詳細について説明する。
【００２５】
図１は、本発明の一実施の形態の半導体装置において、それに用いられるメインメモリデバイスのメモリセル構成の一例を示す回路図である。図１に示すメモリセルは、読み出しおよび書き込みアクセスポートが別々に設けられ、データの記憶に３つのトランジスタが用いられている。本メモリセルでは、データが、記憶トランジスタＱＳのゲートである記憶ノードＳＮ上の電荷によって記憶される。すなわち、高データ値の場合は、記憶トランジスタＱＳのチャネルが動作の伝導領域となるように、記憶ノードＳＮ上に高電荷が書き込まれる。一方、低データ値の場合は、記憶トランジスタＱＳのチャネルがオフとなるように、記憶ノードＳＮ上に低電荷が書き込まれる。
【００２６】
このようなデータ値は、読み出しトランジスタＱＲを起動し、記憶トランジスタＱＳの導電状態の影響を受けるデータ読み出し線ＤＲ上の電流もしくは電圧の変化を検知することによって読み取られる。データ書き込み動作は、高もしくは低電圧をデータ書き込み線ＤＷにセットし、書き込みトランジスタＱＷを活性化状態にすることによって行われる。そして、記憶ノードＳＮの電圧がデータ書き込み線ＤＷの電圧と同等となった後、書き込みトランジスタＱＷを非活性化状態にすることで書き込みサイクルが完了する。
【００２７】
ここで、スタンバイ状態における記憶電荷のリークを低減するために、書き込みトランジスタＱＷは、ＳＥＳＯトランジスタなどの低伝導デバイスであることが望ましい。ただし、この場合、記憶ノードＳＮのチャージが遅くなるため、書き込み動作を完了するのに読み出し動作よりも多くのサイクルを要することになる。
【００２８】
なお、本明細書において、ＳＥＳＯトランジスタとは、チャネル領域を薄膜で形成したトランジスタを言う。このＳＥＳＯトランジスタは量子力学的なキャリアの閉じ込め効果を用いるもので、この観点からチャネルの厚さが５ｎｍ以下が良い。さらにこの厚さは２．５ｎｍより２ｎｍ程度がより好ましい。なお、薄膜チャネルをもつ電界効果型トランジスタのチャネル部は５ｎｍ程度以下の厚さは平均の厚さである。又、トランジスタのチャネル領域の厚さを問題としており、この意味からチャネルの高さの平均が５ｎｍ以下であると言える。更には、当該トランジスタのチャネル領域は短径が５ｎｍ以下の複数の半導体の結晶粒、即ち多結晶薄膜（通例シリコン多結晶薄膜）からなると云える。
【００２９】
図２は、図１のメモリセルにおいて、その読み出し動作の一例を示す波形図である。図２に示すように、データ読み出し線ＤＲは、電圧ＶＤＤにプリチャージされ、読み出しサイクルは、ワード読み出し線ＷＲを電圧ＶＤＤへ駆動することでタイムＴ１から開始される。データ読み出し線ＤＲ上の電圧信号は、論理レベル‘１’（０Ｖレベル）に向けて下がるかもしくは論理レベル‘０’（ＶＤＤレベル）として一定のままである。そして、タイムＴ２において、データ読み出し線ＤＲがセンスアンプによって論理レベル‘１’または‘０’に増幅され、メインアンプといった周辺回路がデータ値を決定可能となる。タイムＴ３において、ワード読み出し線ＷＲは０Ｖまで下げられ、データ読み出し線ＤＲはＶＤＤにプリチャージされ、読み出しサイクルが終了する。
【００３０】
図３は、図１のメモリセルにおいて、その書き込み動作の一例を示す波形図である。図３に示すように、データ書き込み線ＤＷの電圧は、論理レベル‘１’（ＶＤＤレベル）もしくは論理レベル‘０’（０Ｖレベル）にセットされる。そして、書き込みトランジスタＱＷがワード書き込み線ＷＷによって活性化され、記憶ノードＳＮの電圧が、書き込みトランジスタＱＷを通じて徐々にデータ書き込み線ＤＷと同等となる。書き込みトランジスタを非活性化することで、このサイクルは完了する。なお、書き込みトランジスタＱＷの伝導が低いと、書き込みサイクルを完了するには、読み出しサイクルより多くのサイクルが必要となる場合がある。
【００３１】
なお、このようなメモリセルの中には、リフレッシュサイクルが必要なものもある。但し、本実施の形態においては、リフレッシュサイクルについての検討は行わず、リフレッシュ動作を行うためには追加の回路構成が設けられると想定している。
【００３２】
次に、前述したような２ポートのメモリセルを含むメモリデバイスを用いた場合に、２ポートのメモリセルの低速書き込みアクセスを、より高速な読み出しアクセスの速度で実行可能にする手法について説明する。ここでは、複数のロウおよびカラムによって構成されるメインメモリバンク（以下、メモリバンクと略す）内の各メモリセルに前述したような２ポートメモリセルが用いられ、このようなメモリバンクが複数存在する場合を想定する。
【００３３】
まず、書き込みサイクルが長いという問題は、メモリバンクへの内部書き込みアクセスが実行中でも、外部書き込みバスからの書き込みデータを記憶できるキャッシュデータバンクおよびキャッシュタグバンクを追加することで解決できる。キャッシュデータバンクは、例えば、ＳＲＡＭメモリセルで構成することができる。さらに、キャッシュデータバンクは、デュアルポートメモリであるか、あるいはメモリバンクへの読み出しサイクルが完了する間に１回の読み出しアクセスと１回の書き込みアクセスを実行可能なものであると想定される。
【００３４】
キャッシュタグバンクは、キャッシュデータバンクに登録された各データがどのメモリバンクのものであるかを記憶するためのものである。なお、１つのキャッシュデータバンクのロウおよびカラムのサイズは、単一のメモリバンクにおけるものと同一である。キャッシュデータバンクの数は、少なくともメモリバンクの書き込みサイクル時間と読み出しサイクル時間との整数比に等しい数を設ける必要がある。例えば、書き込みサイクル時間が読み出しサイクル時間の２倍の長さであった場合には、少なくとも２つのキャッシュデータバンクが設けられる。
【００３５】
また、説明をより分かり易くするために、本実施の形態で用いるメインメモリデバイスは、８メガバイトのメモリ容量を有しているものとする。該メインメモリデバイスは、２ポートのメモリセルを備えたメモリバンクを１２８個有し、各メモリバンク内には、３２ビット毎の８つのセクションに分割された２５６ビットのカラムと、２５６個のロウが備わっている。
【００３６】
そして、外部読み出しもしくは書き込みアクセスにおいては、メモリロケーションは１８ビットのアドレス値によって特定される。アドレスのビット１１〜１７はメモリバンクを選択し、ビット３〜１０はロウを選択し、ビット０〜２は、前述した８つのセクションのいずれかを選択する。
【００３７】
さらに、本実施の形態において、メモリバンクは、破壊書き込みメモリからなるものと想定する。破壊書き込みメモリにおいては、データ線の情報がすべて書き込みアクセスの際に書き込まれる。すなわち、例えば２５６ビットのデータ線である場合、書き込みアクセスにおいて、その２５６ビットを単位としてメモリ内容が更新される。一方で、例えばＳＲＡＭなどは、非破壊書き込みメモリとなっている。非破壊書き込みメモリにおいては、書き込みアクセスにおいて、例えば２５６ビット中の３２ビットを単位とし、残りの２２４ビットは現在のメモリ内容を保持する形で、メモリ内容を更新することが可能である。なお、後述の実施の形態の説明において、このような破壊書き込みメモリをメモリバンクとして適用する際に、必要となる構成等が明らかとなる。
【００３８】
図４は、本発明の一実施の形態の半導体装置において、その基本動作の概要を示す説明図であり、（ａ）〜（ｆ）は、それぞれ異なる命令および状態での動作の一例を示している。図４においては、書き込みサイクルが読み出しサイクルの２倍かかると想定しているため、２つのキャッシュデータバンクＣＤ０，ＣＤ１を設けている。これと同様に、更に書き込みサイクルが長いメインメモリデバイスを用いる場合の例として、書き込みサイクルが読み出しサイクルの３倍かかるような場合では、３つのキャッシュデータバンクを設けることになる。
【００３９】
また、図４では、読み出しおよび書き込み動作の際に、１）キャッシュヒットした場合と、２）キャッシュミスによってビジー状態でないメモリバンクへアクセスする場合と、３）キャッシュミスによってビジー状態のメモリバンクへアクセスする場合とが示されている。「ビジー状態」のメモリバンクとは、キャッシュデータバンクからのデータがメモリバンクに書き戻されて記憶される２サイクルのライトバック動作を実行中のメモリバンクのことである。
【００４０】
「キャッシュヒット」とは、以下のように定義される。すなわち、読み出しもしくは書き込み動作が開始されたとき、入力アドレスによってロウが特定され、複数のキャッシュタグバンクからこのロウの内容が読み取られる。そして、複数のキャッシュタグバンクから読み取られた内容（メモリバンクアドレス）の１つが入力アドレスによって示されるバンクと同一の場合、キャッシュヒットが起こる。このことは、そのロケーションの最新のデータがキャッシュデータバンクに記憶されているということを意味する。「キャッシュミス」とは、他のメモリバンクからのデータがキャッシュデータバンクの選択されたロウに記憶され、そのため、最新のデータがメモリバンクに記憶されている場合を示している。
【００４１】
読み出し動作における前述した３つの場合を詳細に説明する。図４（ａ）は、キャッシュヒットの場合を示しており、最新のデータはキャッシュデータバンクにある。ここでは、メモリバンク（Ｂａｎｋ）１のロウ（Ｒｏｗ）１のデータに対して読み出し要求が発生しているが、メモリバンク１のロウ１のデータがキャッシュデータバンクＣＤ０のロウ１に記憶されるため、キャッシュヒットが起こる。これによって、キャッシュデータバンクＣＤ０のロウ１からロウデータ（以下、各ロウに含まれる複数ビット（ここでは２５６ビット）のデータをロウデータと呼ぶ）が読み取られ、そのロウデータの中から外部アドレスによって選択された３２ビットのセクションが外部データバスに送られる。
【００４２】
図４（ｂ）は、キャッシュミスの場合を示しており、最新のデータはメモリバンクにあり、そこから読み出される。ここでは、メモリバンク２のロウ１のロウデータに対して読み出し要求が発生しているが、キャッシュデータバンクＣＤ０、ＣＤ１のロウ１が、それぞれバンク１、バンク０のデータを保持しているため、ロウデータはメモリバンク２から読み取る必要がある。メモリバンク２は、ビジー状態ではないため、ロウデータはメモリバンク２から読み取られ、その中の選択されたセクションが外部データバスに送られる。
【００４３】
図４（ｃ）は、図４（ｂ）と異なり、キャッシュミスによって読み出し対象となったメモリバンクがビジー状態の場合を示している。ここでは、メモリバンク２のロウ１のロウデータに対して読み出し要求が発生しているが、キャッシュデータバンクＣＤ０、ＣＤ１のロウ１が、それぞれバンク１、バンク０のロウデータを保持しているため、ロウデータはメモリバンク２から読み取る必要がある。この際に、メモリバンク２は、ライトバック動作が実行されているためビジー状態となっているが、メモリバンク２が別々の読み出しポートおよび書き込みポートを有しているため、ライトバック動作に影響を与えることなくロウデータをバンク２から読み取ることが可能である。
【００４４】
書き込み動作における前述した３つの場合を詳細に説明する。図４（ｄ）は、キャッシュヒットの場合を示しており、この場合、最新のロウデータがキャッシュデータバンクにあるため、その最新のロウデータが入力データによって更新される。ここでは、メモリバンク１のロウ１のロウデータに対して書き込み要求が発生しているが、このロウデータはキャッシュデータバンクＣＤ０に記憶されているため、この記憶内容が入力データを用いて更新され、書き込みサイクルが終了する。なお、この際に、キャッシュデータバンクＣＤ０は非破壊書き込みメモリであるため、ロウデータの一部を入力データで更新することができる。
【００４５】
図４（ｅ）は、キャッシュミスが発生した際に、全てのメモリバンクがビジー状態でない場合を示している。この場合、次の外部読み出しもしくは書き込み動作が行われるまで、入力データをキャッシュデータバンクに記憶させなければならない。ただし、この際に、３２ビットとなる１つのセクションのみがデータバスから入力されるため、残りの７つのセクションのデータは、対応するメモリバンクのロウデータから読み取り、この読み取ったロウデータとデータバスから入力されたデータとを組み合わせてキャッシュデータバンクに記憶する必要がある。
【００４６】
ここで、選択されたロウが空いているキャッシュデータバンクが１つでもある場合には、新たなロウデータがその空のロウに書き込まれ、書き込みサイクルが終了する。しかし、選択されたロウの全てがフル（キャッシュフル）の状態である場合には、メモリバンクに対してライトバック動作を行い、入力データを格納するために空のロウを作成する必要がある。
【００４７】
図４（ｅ）では、メモリバンク１のロウ２のデータに対して書き込み要求が発生しているが、キャッシュデータバンクＣＤ０、ＣＤ１のロウ２が、それぞれメモリバンク０、メモリバンク２のデータを保持し、キャッシュミスかつキャッシュフルの状態であるため、メモリバンクに対してライトバック動作を行わなければならない。そこで、キャッシュデータバンクＣＤ１のロウ２のデータをメモリバンク２のロウ２にライトバックする。この際に、メモリバンク２は、ビジー状態ではないため問題なくライトバック動作を行うことが可能である。
【００４８】
また、ライトバック動作と同時に、メモリバンク１のロウ２から２５６ビットのロウデータが読み取られ、その一部に３２ビットの入力データが組み合わされる。そして、この組み合わされた後のメモリバンク１のロウ２の２５６ビットのロウデータが、キャッシュデータバンクＣＤ１のロウ２へ記憶され、書き込みサイクルが終了する。
【００４９】
図４（ｆ）は、キャッシュミスが発生した際に、メモリバンクの１つがビジー状態であり、複数サイクルのライトバック動作が行われる場合である。ここでは、メモリバンク１のロウ２のロウデータに対して書き込み要求が発生しているが、キャッシュデータバンクＣＤ０、ＣＤ１のロウ２が、それぞれメモリバンク０、メモリバンク２のロウデータを保持し、キャッシュミスかつ空のロウがない状態であるため、メモリバンクに対してライトバック動作を行わなければならない。
【００５０】
この際に、前述した図４（ｅ）の場合には、キャッシュデータバンクＣＤ１のロウ２のロウデータに対してメモリバンク２のロウ２に向けたライトバック動作を行ったが、ここではメモリバンク２が以前（前サイクル）から行われているライトバック動作を継続中であり、ビジー状態であるため、キャッシュデータバンクＣＤ１のロウ２を空状態にすることはできない。したがって、キャッシュデータバンクＣＤ０のロウ２のロウデータに対してメモリバンク０のロウ２に向けたライトバック動作を行い、キャッシュに空きを作成する。そして、キャッシュデータバンクＣＤ０のロウ２が空となった状態で、メモリバンク１のロウ２から読み出された２５６ビットのロウデータと入力された３２ビットのデータが組み合わされ、キャッシュデータバンクＣＤ０のロウ２に記憶される。こうして、書き込みサイクルが完了する。
【００５１】
なお、図４（ｆ）の動作から判るように、複数のキャッシュデータバンクを設けることで、ライトバック動作を行う先のメモリバンクを選択する際に、この選択肢の中にビジー状態でないメモリバンクが常に存在する状態を実現することができる。すなわち、書き込み動作が２サイクルで完了する場合、あるサイクルにおいてビジー状態のメモリバンクは多くて１つ存在することになる。したがって、キャッシュデータバンクが２つあれば、少なくとも１つのキャッシュデータバンクは、ライトバック動作の対象とすることができる。同様に、書き込み動作が３サイクルで完了する場合は、あるサイクルにおいてビジー状態のメモリバンクは多くて２つ存在することになる。したがって、キャッシュデータバンクが３つあれば、少なくとも１つのキャッシュデータバンクは、ライトバック動作の対象とすることができる。
【００５２】
このように、キャッシュデータバンクの冗長によって、待ち状態および待ち時間がなく、各サイクルにおける外部読み出しおよび書き込みアクセスが可能となる。これによって、高速なメモリアクセスを行うことができ、また、メモリバンクとして廉価で高集積な大容量のメモリデバイスを用いることが可能になる。
【００５３】
次に、１サイクル以内に半導体メモリへの外部書き込みアクセスが全て完了することを示すために、連続アクセスの場合を検討する。図５は、本発明の一実施の形態の半導体装置において、連続アクセスが行われた場合の動作の一例を示す説明図であり、（ａ）〜（ｄ）は、それぞれ異なるサイクルでの動作を示している。
【００５４】
図５では、例えば、２サイクルのライトバック動作が必要なメインメモリデバイスを含む半導体メモリに対して、４連続のアクセスを行った場合を示している。ここでは、３つの書き込みアクセスと１つの読み出しアクセスとを実行している。
【００５５】
図５（ａ）は、１サイクル目の動作である。ここでは、メモリバンク（Ｂａｎｋ）０のロウ（Ｒｏｗ）１のデータに対して書き込み要求が発生しているが、メモリバンク２とメモリバンク１のロウ１のロウデータがそれぞれキャッシュデータバンクＣＤ０とＣＤ１にあるため、キャッシュミスが発生している。そこで、キャッシュデータバンクＣＤ０のロウ１のロウデータがメモリバンク２にライトバックされる。そして、メモリバンク０のロウ１への外部入力データ（本明細書中、「サブ・ロウデータ」と呼ぶ場合有り）とメモリバンク０のロウ１からの読み出しロウデータ（本明細書中、「フル・ロウデータ」と呼ぶ場合有り）とが組み合わされ、キャッシュデータバンクＣＤ０に記憶された後で、このサイクルは終了する。
【００５６】
図５（ｂ）は、２サイクル目の動作である。ここでは、メモリバンク１のロウ２のロウデータに対して書き込み要求が発生しているが、メモリバンク０およびメモリバンク２のロウデータがそれぞれキャッシュデータバンクＣＤ０およびＣＤ１にあるため、キャッシュミスが発生している。そこで、メモリバンク０もしくはメモリバンク２のロウデータをライトバックさせなければならない。
【００５７】
メモリバンク０の書き込みポートは、ノットビジー状態であり、メモリバンク２の書き込みポートは、１サイクル目のライトバック動作を継続中のためビジー状態となっている。ここでは、キャッシュデータバンクＣＤ０のロウ２におけるメモリバンク０のデータがライトバックされ、外部から入力されたサブ・ロウデータとメモリバンク１から読み出したフル・ロウデータとが組み合わされてキャッシュデータバンクＣＤ０のロウ２に記憶される。なお、図５（ｂ）では、１サイクル目の動作によって、キャッシュデータバンクＣＤ０のロウ１のロウデータがメモリバンク０のロウ１のロウデータに書き換わっている。
【００５８】
図５（ｃ）は、３サイクル目の動作である。ここでは、メモリバンク２のロウ１のデータに対して書き込み要求が発生している。ここでもキャッシュミスかつキャッシュフルであるため、ライトバック動作が実行されなければならない。キャッシュデータバンクＣＤ０のロウ１には、メモリバンク０のロウデータが記憶されており、キャッシュデータバンクＣＤ１のロウ１には、メモリバンク１のロウデータが記憶されている。
【００５９】
しかし、メモリバンク０の書き込みポートは、２サイクル目のライトバック動作を継続中のためビジー状態となっている。そこで、キャッシュデータバンクＣＤ１のロウ１におけるメモリバンク１のデータがライトバックされ、外部から入力されたサブ・ロウデータとメモリバンク２から読み出したフル・ロウデータとが組み合わされてキャッシュデータバンクＣＤ１のロウ１に記憶される。
【００６０】
図５（ｄ）は、４サイクル目の動作である。ここでは、連続した書き込みシーケンスの後の読み出し動作が示されており、メモリバンク１のロウ０のロウデータに対して読み出し要求が発生している。この場合、キャッシュミスが発生するため、メモリバンク１のロウ０から読み出しを行う必要ある。ここで、メモリバンク１は、３サイクル目における書き込みアクセスのためにビジー状態であるが、読み出しアクセスであるため、ペナルティなく実行することが可能である。
【００６１】
以上のように、複数のキャッシュデータバンクを設けることで、通常の低速書き込みアクセスのメインメモリデバイスで起こり得る待ち時間もしくは待ち状態を隠蔽して、連続した読み出しもしくは書き込みアクセスが可能となる。
【００６２】
図６は、本発明の一実施の形態の半導体装置において、キャッシュデータバンクおよびキャッシュタグバンクの構成の一例を示す概略図である。ここでは、メモリバンクの書き込みサイクルが読み出しサイクルの２倍の長さであるとして、２つのキャッシュデータバンクＣＤ０，ＣＤ１と２つのキャッシュタグバンクＣＴ０，ＣＴ１を示している。キャッシュデータバンクＣＤ０，ＣＤ１のそれぞれは、１つのメモリバンクと同数のロウを有し、各ロウに含まれるロウデータのサイズは、１つのメモリバンクのカラム数と同一となっている。すなわち、各メモリバンクのロウ×カラムが２５６個×２５６ビットの場合、それぞれのキャッシュデータバンクは、２５６個のロウを備え、各ロウ毎に２５６ビットのロウデータを格納する構成となる。
【００６３】
キャッシュタグバンクＣＴ０，ＣＴ１のそれぞれも、１つのメモリバンクと同数のロウを有している。そして、各ロウ内には、例えば、１ビットの有効ビット（Ｖ）と７ビットのキャッシュタグ（ＴＡＧ）が格納可能となっている。７ビットのキャッシュタグは、１２８個のメモリバンクに対応しており、キャッシュデータバンク内のロウデータがどのメモリバンクのデータであるかを表している。
【００６４】
例えば、キャッシュタグバンクＣＴ０のロウ１のキャッシュタグがメモリバンク１を示している場合、キャッシュデータバンクＣＤ０のロウ１のロウデータが、メモリバンク１のロウ１に対応するロウデータであることを示している。また、例えば、キャッシュタグバンクＣＴ１のロウ２のキャッシュタグがメモリバンク２を示している場合、キャッシュデータバンクＣＤ１のロウ２のロウデータが、メモリバンク２のロウ２に対応するロウデータであることを示している。有効ビットは、論理レベル‘１’にセットされた場合、対応するキャッシュデータバンクのロウデータが最新のデータであることを示している。有効ビットが論理レベル‘０’の場合は、キャッシュタグによって示されたロウデータの最新の値がその時にメモリバンクにあるということを表している。
【００６５】
なお、図示はしないが、図６の構成に対して、ダーティビットと呼ばれる付加的なビットをキャッシュタグバンクの各ロウに加えることで、外部読み出し動作の際にロウデータをキャッシュデータバンクに記憶することが可能となる。このダーティビットは、キャッシュデータバンクの各ロウの読み出しデータが修正されているかどうかを特定するのに用いられる。修正されていれば、ダーティビットがセットされる。これにより、ロウデータがキャッシュデータバンクから削除される時にメモリバンクにライトバックさせなければならないということが、キャッシュ制御回路に対して示される。本構成を用いると、メモリバンクへのアクセス頻度が少なくなり、読み出しもしくは書き込みアクセスが低電力もしくは高速となるので有益である。
【００６６】
図７は、本発明の一実施の形態による半導体装置において、そのキャッシュ制御手順の一例を示すフロー図であり、（ａ）は読み出しアクセス時のフロー、（ｂ）は書き込みアクセス時のフローである。
【００６７】
読み出しアクセスは、図７（ａ）に示すように、まずアクセスされるデータがキャッシュデータバンクにあるかどうか特定することから進められる。そこで、キャッシュタグバンクに記憶されているメモリバンク情報と外部入力のバンクアドレスとを比較し、キャッシュがヒットかミスヒットかを判定する（Ｓ７０１ａ）。キャッシュヒットが起きたら、キャッシュタグバンクの有効ビットを判定する（Ｓ７０２ａ）。有効ビットがセットされていたら、キャッシュデータバンク内のロウデータが最新のデータであり、該ロウデータが直接キャッシュデータバンクから外部データバスへ読み取られる（Ｓ７０３ａおよびＳ７０４ａ）。
【００６８】
一方、キャッシュミスが起きるかもしくは有効ビットがセットされていなければ、ロウデータはメモリバンクから読み取らなければならない。ただし、アクセスされるロウデータがライトバック動作を受けている最中かもしれないため、まず、メモリバンク内のライトバッファがチェックされる（Ｓ７０５ａ）。データがライトバッファにある場合は、ライトバッファの内容がデータバスに読み取られる（Ｓ７０７ａおよびＳ７０４ａ）。データがライトバッファに無い場合は、ロウデータはメモリバンクの特定のロウから読み取られる（Ｓ７０６ａおよびＳ７０４ａ）。
【００６９】
書き込みアクセスは、図７（ｂ）に示すように、まず、キャッシュタグバンクに記憶されているメモリバンクアドレスと外部入力のバンクアドレスとを比較し、キャッシュヒットかミスヒットかを判定することから始まる（Ｓ７０１ｂ）。キャッシュヒットが起きた場合は、書き込みの入力データによってキャッシュデータバンクに記憶されたロウデータが更新される（Ｓ７０２ｂ）。
【００７０】
キャッシュミスが起きた場合、各キャッシュデータバンクの当該ロウに空きがあるか否かを判定する（Ｓ７０３ｂ）。空きがあれば、入力バンクアドレスによって特定されたメモリバンクからフル・ロウデータが読み出され、これに対して入力データとなる３２ビットのセクションデータ（サブ・ロウデータ）を組み合わせたものを、このロウが空いているキャッシュデータバンクに記憶する。なお、この際に、入力バンクアドレスがキャッシュタグバンクに記憶され、更に有効ビットがセットされる（Ｓ７０４ｂおよびＳ７０２ｂ）。
【００７１】
キャッシュミスが発生し、各キャッシュデータバンクの当該ロウに空きがない場合は、各キャッシュデータバンクのロウデータの１つをメモリバンクにライトバックしなければならない。そこで、キャッシュ制御回路によって、どのキャッシュデータバンクのロウデータがビジー状態ではないメモリバンクに対応するかが特定され（Ｓ７０５ａ）、特定したメモリバンクに向けてライトバック動作が開始される（Ｓ７０６ａ）。また、これと並行して、前述したのと同様の動作で、フル・ロウデータとサブ・ロウデータが組み合わされ、そのデータがライトバック動作によって空きとなったキャッシュデータバンクに記憶される。また、同時にキャッシュタグバンクの内容も更新される（Ｓ７０４ｂおよびＳ７０２ｂ）。
【００７２】
このようにしてキャッシュデータバンクに書き込み動作が行われた後、キャッシュ制御回路は、以前のライトバック動作が完了したかどうかをチェックする（Ｓ７０７ｂ）。キャッシュ制御回路は、ビジー状態のメモリバンクを記録しており、ライトバック動作が完了している場合には、この記録から当該メモリバンクを削除し、書き込みサイクルを終了する（Ｓ７０８ｂ）。
【００７３】
図８は、本発明の一実施の形態による半導体装置において、それに含まれる半導体メモリの構成の一例を示すブロック図である。図８においては、２ポートメモリセルからなる１２８個のメモリバンクＭＢ０〜ＭＢ１２７が設けられ、各メモリバンクは、各３２ビットの８つのセクションに分割された２５６ビットのカラムと２５６個のロウを備えたものとなっている。また、このメモリバンクでは書き込みアクセスが読み出しアクセスに比べて２倍のサイクルを要するものとして、これまでに述べたような２個のキャッシュタグバンクＣＴ０，ＣＴ１と２個のキャッシュデータバンクＣＤ０，ＣＤ１が設けられる。
【００７４】
キャッシュ制御回路ＣＣＣは、前述した図７のフローに基づいて、メモリバンクＭＢ０〜ＭＢ１２７、キャッシュタグバンクＣＴ０，ＣＴ１、およびキャッシュデータバンクＣＤ０，ＣＤ１のアクセス制御などを行う回路である。その他付加的な制御回路としては、入力アドレスバッファＡＤＢ、入出力データバッファＩＯＢ、キャッシュヒットを判定する比較回路ＣＭ０，ＣＭ１、活性化するメモリバンクを選択する読み出しバンクデコーダＢＤＲおよび書き込みバンクデコーダＢＤＷ、およびデータバスのマルチプレクサ回路ＤＯＭ，ＤＳＭおよびデマルチプレクサ回路ＤＩＭなどがある。
【００７５】
このような半導体メモリは、以下の信号によって外部から制御される。すなわち、外部データ（外部データバス）ＤＢ［３１：０］、外部アドレス（外部アドレスバス）ＡＤＤ［１７：０］、チップ選択信号ＣＳ、読み出し／書き込み選択信号ＲＷ、およびクロック信号ＣＬＫ（図示せず）などである。読み出しもしくは書き込みメモリアクセスは、外部アドレスＡＤＤ［１７：０］、読み出し／書き込み選択信号ＲＷ、およびチップ選択信号ＣＳをセットすることにより開始される。
【００７６】
チップ選択信号ＣＳと読み出し／書き込み選択信号ＲＷは、キャッシュ制御回路ＣＣＣに入力される。外部アドレスＡＤＤ［１７：０］は、アドレスバッファＡＤＢを介して内部アドレスＥＡ［１７：０］として各回路に供給される。内部アドレスＥＡ［１７：０］は３つのセクションに分割される。上位ビットの内部アドレスＥＡ［１７：１１］は、１２８個のメモリバンクＭＢ０〜ＭＢ１２７の中から選択するメモリバンクを表す。
【００７７】
この内部アドレスＥＡ［１７：１１］は、読み出しバンクデコーダＢＤＲの他に、キャッシュタグバンクＣＴ０，ＣＴ１にも入力され、キャッシュデータバンクＣＤ０，ＣＤ１に記憶するロウデータのメモリバンクアドレスを保持するためなどに用いられる。中位ビットの内部アドレスＥＡ［１０：３］は、各メモリバンクが備える２５６個のロウの中から選択するロウを表す。低位ビットの内部アドレスＥＡ［２：０］は、各ロウに含まれる２５６ビットのロウデータの中から選択する３２ビットのセクションを表している。そして、このロウとセクションを表す内部アドレスＥＡ［１０：０］が、キャッシュタグバンクＣＴ０，ＣＴ１、キャッシュデータバンクＣＤ０，ＣＤ１およびメモリバンクＭＢ０〜ＭＢ１２７に入力されている。
【００７８】
次に、図８に示す半導体メモリの読み出し動作および書き込み動作を、キャッシュヒットの場合とキャッシュミスの場合とで説明する。半導体メモリは、前述した図７のフロー図に略述されたような処理に従って動作する。まず、読み出しアクセスについて詳述する。
【００７９】
読み出しアクセスは、チップ選択信号ＣＳのアサートと読み出し／書き込み選択信号ＲＷによる動作選択によって開始される。そして、キャッシュタグバンクＣＴ０，ＣＴ１の内部ロウアドレスＥＡ［１０：３］にそれぞれ記憶されたデータ（キャッシュタグ）ＴＡＧ０，ＴＡＧ１が読み取られ、比較回路ＣＭ０，ＣＭ１に送られる。また、これと並行して内部メモリバンクアドレスＥＡ［１７：１１］が、各比較回路ＣＭ０，ＣＭ１に入力される。キャッシュタグＴＡＧ０，ＴＡＧ１が内部メモリバンクアドレスＥＡ［１７：１１］と一致した場合には、キャッシュヒット信号ＨＩＴ０，ＨＩＴ１がアサートされる。
【００８０】
キャッシュヒット信号ＨＩＴ０は、キャッシュタグバンクＣＴ０におけるキャッシュヒットに対応し、キャッシュヒット信号ＨＩＴ１は、キャッシュタグバンクＣＴ１におけるキャッシュヒットに対応する。また、キャッシュタグバンクＣＴ０，ＣＴ１から有効ビットＶ［０：１］が読み取られ、キャッシュ制御回路ＣＣＣに入力される。
【００８１】
キャッシュヒットかつ有効ビットが論理値‘１’にセットされている場合には、読み出しデータは、キャッシュヒット信号によって特定されたキャッシュデータバンク（すなわち、ＨＩＴ０ならＣＤ０、ＨＩＴ１ならＣＤ１）に記憶されていることになる。したがって、キャッシュ制御回路ＣＣＣからのキャッシュ読み出し信号（例えばＨＩＴ０ならＣＲ［０］）によって特定されたキャッシュデータバンク（例えばＣＲ［０］ならＣＤ０）からデータが読み出され、２５６ビットの内部キャッシュデータバスＤＣＩ（第１のデータバス）にそのデータが送られる。なお、この読み出しの際に、キャッシュデータバンクのロウは、内部ロウアドレスＥＡ［１０：３］によって選択される。
【００８２】
内部キャッシュデータバスＤＣＩに送られたデータは、マルチプレクサ回路ＤＯＭ（第１の選択回路）の一方の端子に入力される。なお、他方の端子は、メモリバンクからの出力バスとなる内部メインデータバスＤＭＩ（第２のデータバス）が接続されている。このマルチプレクサ回路ＤＯＭの一方の端子は、キャッシュヒット信号ＨＩＴ０，ＨＩＴ１のＯＲ出力によって選択される。したがって、キャッシュヒット時には、内部キャッシュデータバスＤＣＩが選択され、この選択によるマルチプレクサ回路ＤＯＭの２５６ビットの出力が、マルチプレクサ回路ＤＳＭに入力される。マルチプレクサ回路ＤＳＭでは、内部セクションアドレスＥＡ［２：０］によって、２５６ビットのデータの中の３２ビットのセクションが選択され、入出力データバッファＩＯＢにそのセクションデータが送られる。
【００８３】
読み出しアクセスにおけるキャッシュミスの場合は、キャッシュタグバンクＣＴ０，ＣＴ１の選択されたロウにおけるキャッシュタグＴＡＧ０，ＴＡＧ１が内部メモリバンクアドレスＥＡ［１７：１１］と同一ではなく、そのためキャッシュヒット信号ＨＩＴ０，ＨＩＴ１が起動されない。そこで、読み出しバンクデコーダＢＤＲが内部メモリバンクアドレスＥＡ［１７：１１］をデコードし、読み出しコマンドがメモリバンクに発行される。
【００８４】
この際に、デコードされた読み出しバンク選択信号ＢＲＱ［１２７：０］（例えばＢＲＱ［１］）によって、読み出しコマンドを実行するメモリバンク（例えばＭＢ１）が選択される。メモリバンク内のメモリセルは、別々の読み出しポートおよび書き込みポートを有しているため、メモリバンクがライトバック動作中か否かは関係なく、選択されたメモリバンクからデータを読み取ることが可能である。
【００８５】
選択されたメモリバンク（例えばＭＢ１）は、内部ロウアドレスＥＡ［１０：３］によって選択された２５６ビットのロウデータを内部メインデータバスＤＭＩへ出力する。この出力データは、前述したマルチプレクサ回路ＤＯＭに入力され、更にマルチプレクサ回路ＤＯＭでの選択を経てマルチプレクサ回路ＤＳＭに出力される。マルチプレクサ回路ＤＳＭでは、前述したのと同様に、内部セクションアドレスＥＡ［２：０］によって３２ビットのセクションが選択され、その選択されたセクションが、入出力データバッファＩＯＢを介して外部データバスＤＢ［３１：０］上に出力される。このようにして、読み出しサイクルが完了する。
【００８６】
なお、前述した説明では、キャッシュヒットの場合とキャッシュミスの場合の動作をそれぞれ個別に説明したが、実際上は、前述した２つの場合の動作は並行して行われる。すなわち、キャッシュヒットの判定等を行っている間に、並行してメモリバンクからの読み出しも行われ、最終的にマルチプレクサ回路ＤＯＭでの選択によってこの２つの場合の出力を切り分ける。この処理の利点は、メモリバンクを動作させる際にキャッシュタグバンクＣＴ０，ＣＴ１の読み出しとキャッシュヒット比較動作を待つ必要がないため、キャッシュミスの際には、データを短時間で外部データバスＤＢ［３１：０］上に出力することができることである。
【００８７】
書き込みアクセスに関しては、入力データが外部データバスＤＢ［３１：０］上で使用可能である際に、チップ選択信号ＣＳと読み出し／書き込み選択信号ＲＷが入力されることで書き込みアクセスが受け付けられる。書き込みアクセスが開始されると、メモリバンクＭＢ０〜ＭＢ１２７からのデータ読み出しが実行される。すなわち、内部メモリバンクアドレスＥＡ［１７：１１］が読み出しバンクデコーダＢＤＲによってデコードされた後、メモリバンク読み出し信号ＢＲＱ［１２７：０］によってメモリバンクに読み出しコマンドが発行される。そして、メモリバンクの内部ロウアドレスＥＡ［１０：３］に記憶された２５６ビットのロウデータが内部メインデータバスＤＭＩ［２５５：０］に出力される。
【００８８】
また、メモリバンクの読み出し動作と並行して、キャッシュ制御回路ＣＣＣが、前述の読み出しアクセスの場合と同様に、キャッシュヒット条件をチェックする。すなわち、まず、キャッシュタグバンクＣＴ０，ＣＴ１における内部ロウアドレスＥＡ［１０：３］の内容が読み取られる。次いで、読み取られたキャッシュタグＴＡＧ０，ＴＡＧ１が比較回路ＣＭ０，ＣＭ１に渡され、内部メモリバンクアドレスＥＡ［１７：１１］と比較され、キャッシュヒットの特定が行われる。
【００８９】
キャッシュタグが内部メモリバンクアドレスＥＡ［１７：１１］と同一である場合には、キャッシュヒット信号ＨＩＴ０もしくはＨＩＴ１が起動し、キャッシュ制御回路ＣＣＣにキャッシュヒットが通知される。これは、書き込み更新対象となるデータがすでにキャッシュデータバンク（ＨＩＴ０ならＣＤ０、ＨＩＴ１ならＣＤ１）にあるため、キャッシュデータバンクに対して３２ビットの入力データを書き込めばよいということを意味している。
【００９０】
そこで、キャッシュ制御回路ＣＣＣは、キャッシュデータバンク（例えばＣＤ１）への書き込みを開始する。すなわち、まず、そのセクションの位置を選択する内部アドレスＥＡ［２：０］を用い、デマルチプレクサ回路ＤＩＭによって２５６ビットのデータにおける正確なセクションに３２ビットの入力データが置かれる。次いで、２５６ビットのデータがキャッシュデータバンク（例えばＣＤ１）に入力され、ロウが内部ロウアドレスＥＡ［１０：３］によって選択される。また、キャッシュデータバンクＣＤ０，ＣＤ１には、キャッシュヒット信号ＨＩＴ０，ＨＩＴ１のＯＲ出力が入力される。
【００９１】
この状態で、キャッシュ制御回路ＣＣＣがキャッシュ書き込み信号（例えばＣＷ［１］）を起動する。そうすると、キャッシュデータバンク（例えばＣＤ１）は、キャッシュヒットを認識しているため、ロウおよびセクションを示す内部アドレスＥＡ［１０：０］によって、キャッシュデータバンク（例えばＣＤ１）内の適切なセクションデータのみを更新する。このようにして、書き込みサイクルが完了する。
【００９２】
一方、前述したのと同様な処理により、キャッシュタグＴＡＧ０，ＴＡＧ１が読み取られ、比較回路ＣＭ０，ＣＭ１によって７ビットのキャッシュタグＴＡＧ０，ＴＡＧ１と内部メモリバンクアドレスＥＡ［１７：１１］とが一致しなかった場合にはキャッシュミスとなる。この場合、キャッシュヒット信号ＨＩＴ０，ＨＩＴ１は起動されない。
【００９３】
そこで、キャッシュ制御回路ＣＣＣによって、ライトバック動作が必要かどうかが判定される。キャッシュタグバンクＣＴ０，ＣＴ１からキャッシュタグＴＡＧ０，ＴＡＧ１と同時に読み出した有効ビットＶ［１：０］の内、１つが論理レベル‘０’である場合には、キャッシュフルでなく、空のキャッシュデータバンクが存在することになるため、ライトバック動作を行わずにその空のキャッシュデータバンクに入力データを書き込むことが可能である。
【００９４】
この場合、デマルチプレクサ回路ＤＩＭ（第２の選択回路）を内部セクションアドレスＥＡ［２：０］を用いて選択することで、２５６ビットのロウデータの中の選択されたセクションが、３２ビットの入力データによって置換される。この置換される前の２５６ビットのデータは、前述したように、予め書き込みアクセス開始直後にメモリバンクから内部メインデータバスＤＭＩ上に読み出しておいたデータである。そして、キャッシュ書き込み信号（例えばＣＷ［１］）が起動されると、キャッシュデータバンク（例えばＣＤ１）は、キャッシュミスを認識しているため、内部ロウアドレスＥＡ［１０：３］によって、前述した置換後の２５６ビットのロウデータを空のキャッシュデータバンク（例えばＣＤ１）に書き込む。
【００９５】
また、このキャッシュデータバンク（例えばＣＤ１）への書き込みと共に、キャッシュ制御回路ＣＣＣがタグ書き込み信号（例えばＴＷ［１］）を起動することで、内部メモリバンクアドレスＥＡ［１７：１１］がキャッシュタグ（例えばＴＡＧ１）として、内部ロウアドレスＥＡ［１０：３］で特定される空のキャッシュタグバンク（例えばＣＴ１）に記憶される。このように、キャッシュタグバンク（例えばＣＴ１）およびキャッシュデータバンク（例えばＣＤ１）にキャッシュタグおよびロウデータがそれぞれ記憶されることで書き込みサイクルは終了する。
【００９６】
キャッシュミスで、なおかつキャッシュデータバンクＣＤ０，ＣＤ１が内部ロウアドレスＥＡ［１０：３］においてキャッシュフルの状態である場合には、入力データをキャッシュデータバンクに記憶する前にライトバック動作が行われる。キャッシュ制御回路ＣＣＣが、ビジー状態のメモリバンクを記録する内部レジスタを用いて、キャッシュタグＴＡＧ０，ＴＡＧ１をチェックする。ここで、キャッシュタグバンクおよびキャッシュデータバンクの数がメモリバンクにおけるライトバックサイクル時間と読み出しサイクル時間との比に等しいため、キャッシュタグＴＡＧ０，ＴＡＧ１の中の少なくとも１つは、必ずビジー状態でないメモリバンクを示すことになる。
【００９７】
キャッシュ制御回路ＣＣＣは、ライトバック動作のためのビジー状態でないメモリバンクを選定する。キャッシュデータバンクから、この選定されたメモリバンクに対応する２５６ビットのロウデータが読み取られ、内部キャッシュデータバスＤＣＩ［２５５：０］に出力される。また、キャッシュ制御回路ＣＣＣは、書き込みバンクデコーダＢＤＷに対してメモリバンク書き込み信号ＭＷと書き込みバンク信号ＷＢＡ［６：０］を発生する。
【００９８】
書き込みバンクデコーダＢＤＷは、書き込みバンク信号ＷＢＡ［６：０］をデコードし、書き込みバンク選択信号ＢＷＱ［１２７：０］を出力する。そして、この書き込みバンク選択信号ＢＷＱ［１２７：０］によって選択されたメモリバンクの内部ロウアドレスＥＡ［１０：３］において、前述した内部キャッシュデータバスＤＣＩ［２５５：０］の値がライトバックされる。キャッシュ制御回路ＣＣＣは、このライトバック動作を開始したメモリバンクに対応するキャッシュタグを、メモリバンクがビジー状態であることを表す内部レジスタに登録することでライトバック動作が終了する。
【００９９】
ライトバック動作を終了した後は、前述したライトバック動作が起こらなかった場合と同様、空となったキャッシュデータバンク（例えばＣＤ１）に入力データを記憶することで、書き込みサイクルが終了する。また、タグ書き込み信号（例えばＴＷ［１］）の起動によって、キャッシュタグバンク（例えばＣＴ１）の内部ロウアドレスＥＡ［１０：３］に、内部バンクアドレスＥＡ［１７：１１］が記憶される。このような動作によって、メモリバンクＭＢ０〜ＭＢ１２７のライトバック状態に依存せず、待ち状態もしくは待ち時間を必要とせずに書き込み動作を１サイクルで完了することができる。
【０１００】
図９は、図８の半導体メモリにおいて、そのメモリバンクの構成の一例を示すブロック図である。図９のメモリバンクは、一般的なＳＲＡＭもしくはＤＲＡＭ等のメモリアレイ構成およびその周辺回路構成とほぼ同様であり、例えば、図１に示したようなメモリセルを多数含むメモリマットＭＭＡＴと、読み出しワード線ドライバＲ−ＷＤと、書き込みワード線ドライバＷ−ＷＤと、読み取ったロウデータを増幅するセンスアンプＳＡと、内部ロウアドレスＥＡ［１０：３］をデコードして読み出し時および書き込み時のロウを特定するロウデコーダＲＤと、メモリバンク制御回路ＭＢＣとを有している。そして更に、図９のメモリバンクは、ライトバック処理中にロウデータを保持するライトバッファＷＢも有している。
【０１０１】
内部ロウアドレスＥＡ［１０：３］をセットし、読み出しバンク選択信号ＢＲＱを起動することで読み出しサイクルが実行される。メモリバンク制御回路ＭＢＣは、読み出しバンク選択信号ＢＲＱを受けてバンク読み出し信号ＢＲを起動し、その後、ロウデコーダＲＤと読み出しワード線ドライバＲ−ＷＤによって選択されたロウにおけるロウデータが、センスアンプＳＡを介してマルチプレクサ回路ＭＭＸの一端に出力される。なお、マルチプレクサ回路ＭＭＸの他端には、ライトバッファＷＢの出力が接続される。
【０１０２】
メモリバンク制御回路ＭＢＣは、マルチプレクサ回路ＭＭＸの選択信号となるライトバッファ読み出し信号ＷＢＲを制御することで、このセンスアンプＳＡを介して読み出されたロウデータを内部メインデータバスＤＭＩ［２５５：０］に出力する。一方、ライトバック処理が行われている最中のロウデータに対して読み出しアクセスが発生した際には、ライトバッファＷＢからロウデータが読み取る必要がある。
【０１０３】
この場合、メモリバンク制御回路ＭＢＣが、ライトバッファＷＢ内にあるロウデータの内部ロウアドレスＥＡ［１０：３］を記憶しているため、入力された内部ロウアドレスＥＡ［１０：３］の値によって所望のロウデータがライトバッファＷＢ内にあるか否かを判定する。ライトバッファＷＢ内にある場合には、ライトバッファ読み出し信号ＷＢＲの選択によって、ライトバッファＷＢの内容をマルチプレクサ回路ＭＭＸを介して内部メインデータバスＤＭＩ［２５５：０］に出力する。このようにして、ライトバック動作を妨げることなくロウデータを読み取ることが可能となる。
【０１０４】
書き込みサイクルは、２５６ビットの内部キャッシュデータバスＤＣＩ［２５５：０］や内部ロウアドレスＥＡ［１０：３］をセットし、書き込みバンク選択信号ＢＷＱを起動することで実行される。メモリバンク制御回路ＭＢＣは、書き込みバンク選択信号ＢＷＱを受けて発生するライトバッファラッチ信号ＷＢＬを起動することで、内部キャッシュデータバスＤＣＩ［２５５：０］のデータを書き込みバッファＷＢにラッチする。
【０１０５】
メモリマットＭＭＡＴ内への書き込み動作は、ロウデコーダＲＤによる内部ロウアドレスＥＡ［１０：３］のデコードによって開始される。そして、メモリバンク制御回路ＭＢＣがバンク書き込み信号ＢＷを起動することで、ロウデコーダＲＤのデコードによって選択されたロウが書き込みワード線ドライバＷ−ＷＤを介して活性化され、ライトバッファＷＢ内のロウデータが複数サイクルに渡ってライトバックされる。
【０１０６】
ところで、これまでに述べた半導体メモリにおいては、メモリバンクとキャッシュデータバンクとのデータバスの幅が、メモリバンクにおけるビット線の数、すなわち２５６ビットとなっている。しかしながら、データバスの幅を減らすことによって、レイアウトエリアの減少や、スイッチング電力の減少などの利点を得ることができる場合がある。したがって、キャッシュ書き込みおよびライトバックサイクル中に、２５６ビットではなく例えば３２ビットのセクションデータをメモリバンクとの間でやり取りする構成も有益と言える。以下にこの構成の一例について説明する。
【０１０７】
図１０は、本発明の一実施の形態の半導体装置において、図６を変形したキャッシュデータバンクおよびキャッシュタグバンクの構成の一例を示す概略図である。図１０においては、これまでと同様に、待ち時間もしくは待ち状態なく各サイクルでランダムに読み出しもしくは書き込みアクセスを行うために、キャッシュデータバンクＣＤ０およびキャッシュタグバンクＣＴ０が設けられている。但し、図６で説明した構成と異なり、メモリバンクとキャッシュデータバンクＣＤ０との間のデータ送受信に、３２ビットのセクションデータを用いる構成となっている。
【０１０８】
キャッシュデータバンクＣＤ０は、メモリバンクと同数のロウおよびカラムで構成されている。また、メモリバンクの構成と同様に、各ロウは複数のセクションに分割され、メモリバンクとの間でデータの送受信を行う際には、キャッシュデータバンクＣＤ０から１セクションが読み取られ、また書き込まれるようになっている。すなわち、例えば、キャッシュデータバンクＣＤ０のロウ１、セクション１の値Ｄを送受信する構成となっている。
【０１０９】
キャッシュタグバンクＣＴ０は、キャッシュデータバンクＣＤ０の各セクションデータに対応するメモリバンクを表すため、７ビットのキャッシュタグを複数有している。キャッシュタグバンクＣＴ０の各ロウは、８つのキャッシュタグＴＡＧ０〜ＴＡＧ７と、これらにそれぞれ対応する８つの有効ビットＶ０〜Ｖ７とを有している。有効ビットＶ０〜Ｖ７は、対応するキャッシュデータバンク内の８つのセクションデータが有効かどうか特定するために用いられる。
【０１１０】
例えば、キャッシュタグバンクＣＴ０のロウ１のＶ１が‘１’にセットされ、キャッシュタグＴＡＧ１が“０００００１０”にセットされている場合、キャッシュデータバンクＣＤ０のロウ１のセクション１におけるデータは有効であり、この有効なデータは、メモリバンクＭＢ２のロウ１のセクション１における最新のデータを示すことになる。また、例えば、キャッシュタグバンクＣＴ０のロウ１のＶ７が‘１’にセットされ、ＴＡＧ７が“００００００１”にセットされている場合、キャッシュデータバンクＣＤ０のロウ１のセクション７におけるデータは有効であり、この有効なデータは、メモリバンクＭＢ１のロウ１のセクション７における最新のデータを示すことになる。
【０１１１】
本実施の形態におけるキャッシュデータバンクの数は、メモリバンクが非破壊書き込みメモリか破壊書き込みメモリかによって異なる。破壊書き込みメモリの場合、ライトバック動作の間、ロウデータ全体を記憶しておかなければならない。ライトバック動作に際し、キャッシュデータバンクには１セクションのデータしか記憶されていないため、内部事前読み出しをメモリバンク内で実行させ、ロウデータの内容とキャッシュデータバンクからのデータとを組み合わせることになる。つまり事前読み出しサイクルに続いて、通常の複数サイクルの書き込みがメモリバンクで行われ、データが記憶される。
【０１１２】
したがって、ライトバック動作では、図６等のようにロウデータ全体がキャッシュデータバンクに記憶されている場合に対して更に付加的なサイクルが必要となる。すなわち、全ライトバックのサイクル数はＮ＋１であり、この場合Ｎは内部書き込み動作に要するサイクル数であり、付加されるサイクルは、セクションデータをロウデータと組み合わせるための内部事前読み出し動作のためのものである。
【０１１３】
一方、非破壊書き込みメモリに対しては、内部書き込み動作中に単一のセクションをメモリバンクに書き込むことができるため、メモリバンク内における内部事前読み出し動作は不要である。したがって、ライトバックのサイクル数はＮとなり、Ｎは内部書き込み動作のためのサイクル数である。また、キャッシュタグバンクの数も、ライトバックのサイクル数と等しくなる。つまり、破壊書き込みメモリの場合は、Ｎ＋１個のキャッシュデータバンクを必要とし、非破壊書き込みメモリの場合は、Ｎ個のキャッシュデータバンクを必要とする。
【０１１４】
図１１は、本発明の一実施の形態の半導体装置において、連続アクセスが行われた場合の内部事前読み出しを含む動作の一例を示す説明図であり、（ａ）〜（ｄ）は、それぞれ異なるサイクルでの動作を示している。図１１においては、メモリバンク（Ｂａｎｋ）０〜３が破壊書き込みメモリであり、更にセクション毎の書き込みを行う場合を想定している。したがって、前述したように、そのライトバック動作には事前読み出しサイクルと書き込みサイクル（２サイクル）による３サイクルが必要となり、これに対応して、３つのキャッシュデータバンクＣＤ０，ＣＤ１，ＣＤ２が設けられている。なお、図１１では、説明を容易にするため、各キャッシュデータバンクの各ロウには、１つ分のセクションのみが示されている（実際には例えば８つセクション等が含まれる）。
【０１１５】
図１１（ａ）は、１サイクル目の動作であり、メモリバンク０のロウ１のデータに対して書き込み要求が発生している。この場合、全てのキャッシュデータバンクＣＤ０〜ＣＤ２のロウ１がキャッシュフルの状態であり、なおかつキャッシュミスとなるため、ライトバック動作が行われる。ここでは、キャッシュデータバンクＣＤ２のロウ１に記憶されているメモリバンク２のロウ１のデータをライトバックし、これによって空いた箇所に、入力されたメモリバンク０のロウ１のデータを記憶する。
【０１１６】
メモリバンク２のロウ１へのライトバック動作は、メモリバンク２のロウ１に対する１サイクル分の事前読み出しによって開始され、この事前読み出しによるロウデータがキャッシュデータバンクＣＤ２から入力されたデータ（セクションデータ）と組み合わされ、これによる新たなロウデータがメモリバンク２のライトバッファで保持される。
【０１１７】
図１１（ｂ）は、２サイクル目の動作であり、メモリバンク３のロウ２のデータに対して書き込み要求が発生している。この場合、全てのキャッシュデータバンクＣＤ０〜ＣＤ２のロウ２がキャッシュフルの状態であり、なおかつキャッシュミスとなるため、ライトバック動作が再びおこなわれる。ここで、キャッシュデータバンクＣＤ２のロウ２のセクションデータは、ビジー状態にあるメモリバンク２に対応しているため、キャッシュデータバンクＣＤ１のロウ２に記憶されたメモリバンク１のデータがライトバックのために選択される。そして、これによって空きとなったキャッシュデータバンクＣＤ１のロウ２に、入力されたメモリバンク３のロウ２のデータが書き込まれる。
【０１１８】
このとき、メモリバンク１のロウ２への事前読み出しが実行され、読み出されたロウデータがキャッシュデータバンクＣＤ１からのセクションデータと組み合わされ、その結果がメモリバンク１のライトバッファに記憶される。また、メモリバンク２においては、内部ライトバック動作の第１サイクルが開始される。
【０１１９】
図１１（ｃ）は、３サイクル目の動作であり、メモリバンク３のロウ３のデータに対する書き込み要求が発生している。ライトバック動作は、キャッシュデータバンクＣＤ０〜ＣＤ２のロウ３のうちの１つから行われなければならない。この場合、キャッシュデータバンクＣＤ２とＣＤ１のデータにそれぞれ対応するメモリバンク２とメモリバンク１は、両方共にビジー状態であるので、キャッシュデータバンクＣＤ０に記憶されているメモリバンク０のセクションデータが、ライトバック動作のために選択され、これによる空いた箇所に入力データが書き込まれる。
【０１２０】
なお、メモリバンク２は、内部ライトバック動作の第２サイクルが行われているためにビジー状態であり、メモリバンク１は、内部ライトバック動作の第１サイクルが行われているためにビジー状態である。このように、３つのキャッシュデータバンクが備えられているため、ビジー状態でないメモリバンクへのライトバック動作が常に可能となる。
【０１２１】
図１１（ｄ）は、４サイクル目の動作であり、メモリバンク０のロウ２のデータに対する読み出し要求が発生している。メモリバンク０では、内部ライトバック動作の第１のサイクルが行われているためビジー状態であるが、メモリバンク０内のメモリセルが別々の読み出しポートおよび書き込みポートを有しているため、読み出しアクセスを１サイクル内で完了することが可能である。
【０１２２】
図１２は、本発明の一実施の形態による半導体装置において、図８の半導体メモリをセクションデータ記憶方式に対応させた構成の一例を示すブロック図である。本半導体メモリの構成は、前述した図８の構成とほぼ同様であるため、セクションデータ記憶を可能とするために主に変更された部分についてのみ説明をおこなう。
【０１２３】
前述したように、ライトバック動作において１サイクルの事前読み出しと２サイクルの書き込みを必要とするメモリバンクを用いる場合、半導体メモリ内に、３つのキャッシュデータバンクＣＤ０，ＣＤ１，ＣＤ２と３つのキャッシュタグバンクＣＴ０，ＣＴ１，ＣＴ２とを設ける必要がある。これに伴い、キャッシュタグバンクＣＴ２からのキャッシュタグＴＡＧ２、キャッシュヒット信号ＨＩＴ２および有効ビットＶ２を入力可能なようにキャッシュ制御回路ＣＣＣが変更されている。キャッシュヒット信号ＨＩＴ２は、キャッシュタグＴＡＧ２と内部バンクアドレスＥＡ［１７：１１］を比較する比較回路ＣＭ２によって発生される。
【０１２４】
また、キャッシュ制御回路ＣＣＣは、タグ書き込み信号ＴＷ［２］をキャッシュタグバンクＣＴ２に、キャッシュ書き込み信号ＣＷ［２］およびキャッシュ読み出し信号ＣＲ［２］をキャッシュデータバンクＣＤ２に出力する。さらに、キャッシュタグバンクＣＴ０，ＣＴ１，ＣＴ２とキャッシュデータバンクＣＤ０，ＣＤ１，ＣＤ２は、内部ロウアドレスＥＡ［１０：３］に加えて、内部セクションアドレスＥＡ［２：０］も入力される。これは、キャッシュデータバンクおよびキャッシュタグバンクが、キャッシュタグおよびデータを適切なセクションに配置しなければならないためである。
【０１２５】
また、セクション単位でデータの送受信を行うため、キャッシュデータバンクＣＤ０〜ＣＤ２のデータ入出力バスは３２ビット幅である。また、メモリバンクに接続された内部キャッシュデータバスＤＣＩや内部メインデータバスＤＭＩも３２ビット幅である。このように内部バスが３２ビット幅であるため、入力された３２ビットセクションをフルの２５６ビットに拡張するデマルチプレクサ回路ＤＩＭと出力された３２ビットセクションを２５６ビットロウから選択するマルチプレクサ回路ＤＳＭとは取り外されている。それ以外の構成および動作に関しては、図８と同様である。
【０１２６】
図１３は、図１２の半導体メモリにおいて、そのメモリバンクの構成の一例を示すブロック図である。図１３に示すメモリバンクの構成および動作は、図９のメモリバンクで述べたものとほぼ同様であるため、その違いについてのみ説明をおこなう。キャッシュデータバンクおよび外部データバスに送信されるのは３２ビットセクションのみであるため、内部メインデータバスＤＭＩおよび内部キャッシュデータバスＤＣＩは３２ビット幅である。
【０１２７】
また、内部ロウアドレスＥＡ［１０：３］をデコードしたロウからのロウデータの事前読み出し動作を、ライトバック動作の始めにおこなわなければならない。そこで、まず、メモリバンク制御回路ＭＢＣが、メモリマットＭＭＡＴから２５６ビットのロウデータを読み取り、センスアンプＳＡを介してライトバッファＷＢに格納する。
【０１２８】
次いで、この２５６ビットのロウデータを、内部キャッシュデータバスＤＣＩ［３１：０］からの３２ビットの入力データと組み合わす必要がある。そこで、メモリバンク制御回路ＭＢＣがライトバッファラッチ信号ＷＢＬを制御することで、入力データがライトバッファＷＢ上の適切なセクションに記憶される。このようにして、入力データがロウデータの適切なセクションに上書きされ、その結果得られる２５６ビットのロウデータがライトバッファＷＢに記憶されると、事前読み出しサイクルは終了する。その後、２サイクルの書き込み動作において、ライトバッファＷＢのロウデータがメモリマットＭＭＡＴに記憶される。
【０１２９】
一方、読み出しアクセスに関しては、２つの場合が考えられる。１つ目は、入力された内部ロウアドレスＥＡ［１０：３］がライトバック動作を受けている最中のロウデータを選択する場合である。この場合、ロウデータが書き込みバッファＷＢに記憶されているため、図９と同様にメモリバンク制御回路ＭＢＣが発生するライトバッファ読み出し信号ＷＢＲによって、このロウデータがマルチプレクサ回路ＭＭＸから出力される。マルチプレクサ回路ＭＭＸから出力されたロウデータは、選択信号を内部セクションアドレス［２：０］とするマルチプレクサ回路ＤＭＸによって更に選択され、その選択された所望のセクションが内部メインデータバスＤＭＩ［３１：０］に送られる。
【０１３０】
２つ目は、入力された内部ロウアドレスＥＡ［１０：３］がライトバック動作を受けていないロウデータを選択する場合である。この場合には、ロウデータの内容をメモリマットＭＭＡＴから直接読み取ることが可能である。メモリマットＭＭＡＴからのロウデータはマルチプレクサ回路ＭＭＸの他の入力に接続され、メモリバンク制御回路ＭＢＣは、このロウデータをマルチプレクサ回路ＤＭＸに出力するようにマルチプレクサ回路ＭＭＸを選択する。そして、前述したように、マルチプレクサ回路ＤＭＸによって所望のセクションが選択され、内部メインデータバスＤＭＩ［３１：０］に送られる。
【０１３１】
このような変更によって、内部メインデータバスＤＭＩおよび内部キャッシュデータバスＤＣＩ上にロウデータ内のセクションのみが伝送されるようにメモリバンクを動作させることが可能となり、小さいデータバスを有するメモリシステムにおける利点をもたらすことができる。
【０１３２】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０１３３】
例えば、これまでの説明においては、メインメモリデバイスとして、ＳＥＳＯメモリを用いる例を説明したが、これに限らず、読み出しアクセスに比べて書き込みアクセスが遅い例えばフラッシュメモリや相変化メモリなどを、読み出し・書き込みポートを分離して用いることも可能である。
【産業上の利用可能性】
【０１３４】
本発明の半導体装置は、大容量かつ高速なメモリアクセスが要求されるマイクロプロセッサやマイクロコンピュータなどのオンチップメモリに適用して特に有益な技術であり、これに限らず、書き込み速度が遅い単体の半導体メモリ等に対しても、その容易な高速化手法として適用することが可能である。
【図面の簡単な説明】
【０１３５】
【図１】本発明の一実施の形態の半導体装置において、それに用いられるメインメモリデバイスのメモリセル構成の一例を示す回路図である。
【図２】図１のメモリセルにおいて、その読み出し動作の一例を示す波形図である。
【図３】図１のメモリセルにおいて、その書き込み動作の一例を示す波形図である。
【図４】本発明の一実施の形態の半導体装置において、その基本動作の概要を示す説明図であり、（ａ）〜（ｆ）は、それぞれ異なる命令および状態での動作の一例を示している。
【図５】本発明の一実施の形態の半導体装置において、連続アクセスが行われた場合の動作の一例を示す説明図であり、（ａ）〜（ｄ）は、それぞれ異なるサイクルでの動作を示している。
【図６】本発明の一実施の形態の半導体装置において、キャッシュデータバンクおよびキャッシュタグバンクの構成の一例を示す概略図である。
【図７】本発明の一実施の形態による半導体装置において、そのキャッシュ制御手順の一例を示すフロー図であり、（ａ）は読み出しアクセス時のフロー、（ｂ）は書き込みアクセス時のフローである。
【図８】本発明の一実施の形態による半導体装置において、それに含まれる半導体メモリの構成の一例を示すブロック図である。
【図９】図８の半導体メモリにおいて、そのメモリバンクの構成の一例を示すブロック図である。
【図１０】本発明の一実施の形態の半導体装置において、図６を変形したキャッシュデータバンクおよびキャッシュタグバンクの構成の一例を示す概略図である。
【図１１】本発明の一実施の形態の半導体装置において、連続アクセスが行われた場合の内部事前読み出しを含む動作の一例を示す説明図であり、（ａ）〜（ｄ）は、それぞれ異なるサイクルでの動作を示している。
【図１２】本発明の一実施の形態による半導体装置において、図８の半導体メモリをセクションデータ記憶方式に対応させた構成の一例を示すブロック図である。
【図１３】図１２の半導体メモリにおいて、そのメモリバンクの構成の一例を示すブロック図である。
【符号の説明】
【０１３６】
ＷＷ  書き込みワード線
ＷＲ  読み出しワード線
ＤＲ  データ読み出し線
ＤＷ  データ書き込み線
ＱＷ  書き込みトランジスタ
ＱＲ  読み出しトランジスタ
ＱＳ  記憶トランジスタ
ＣＤ０〜３  キャッシュデータバンク
ＣＴ０〜３  キャッシュタグバンク
Ｂａｎｋ０〜３，ＭＢ０〜１２７  メモリバンク
ＣＣＣ  キャッシュ制御回路
ＣＭ０〜３  比較回路
ＢＤＷ  書き込みバンクデコーダ
ＢＤＲ  読み出しバンクデコーダ
ＡＤＢ  入力アドレスバッファ
ＩＯＢ  入出力データバッファ
ＤＯＭ，ＤＳＭ  マルチプレクサ回路
ＤＩＭ  デマルチプレクサ回路
ＭＭＡＴ  メモリマット
ＳＡ  センスアンプ
Ｗ−ＷＤ  書き込みワード線ドライバ
Ｒ−ＷＤ  読み出しワード線ドライバ
ＲＤ  ロウデコーダ
ＷＢ  ライトバッファ
ＭＢＣ  メモリバンク制御回路
ＭＭＸ，ＤＭＸ  マルチプレクサ回路
【図１】
2006190402.tif 000003
【図２】
2006190402.tif 000004
【図３】
2006190402.tif 000005
【図４】
2006190402.tif 000006
【図５】
2006190402.tif 000007
【図６】
2006190402.tif 000008
【図７】
2006190402.tif 000009
【図８】
2006190402.tif 000010
【図９】
2006190402.tif 000011
【図１０】
2006190402.tif 000012
【図１１】
2006190402.tif 000013
【図１２】
2006190402.tif 000014
【図１３】
2006190402.tif 000015