(57)【特許請求の範囲】
【請求項１】
読み出し動作よりも書き込み動作の遅い複数のメモリセルをそれぞれが有する複数のメモリバンクと、
前記複数のメモリバンクに対する外部からのアクセスの仲介を行うキャッシュメモリとを有し、
前記キャッシュメモリは、前記メモリセルの書き込みサイクル(m)と前記メモリセルの読み出しサイクル(n)の比(m/n)で決定される値と等しいか、それよりも大きなウェイ数を有し、
外部から前記半導体装置へ第１データを書き込む際に、前記第１データの書き込むべきアドレスが前記キャッシュメモリに存在しない場合において、前記キャッシュメモリの該当エントリにあるデータを前記複数のメモリバンクの一つに書き戻した後、前記第１データを前記キャッシュメモリに書き込み、
前記複数のメモリバンクの一つへの書き戻しの動作を行う際に、前記複数のメモリバンクの一つである第１メモリバンクが外部からのアクセス要求を受諾できない際においては、前記複数のメモリバンクの他の一つである第２メモリバンクへの書き戻し動作を行う半導体装置。
【請求項２】
請求項１に記載の半導体装置において、
前記キャッシュメモリは前記ウェイ数に対応した複数のセットを有し、
前記複数のセットの各々は、前記複数のメモリバンクの一つに記憶されるデータ全体を記憶するための容量を持つ半導体装置。
【請求項３】
請求項１または２に記載の半導体装置において、
外部から前記半導体装置へのアクセスに対応するデータが前記キャッシュメモリに存在する場合は、当該データの授受を前記キャッシュメモリから行う半導体装置。
【請求項４】
請求項１乃至３の何れか一つに記載の半導体装置は、外部とのデータの入出力を行うための複数のデータ入出力ノードを更に有し、
前記データ入出力ノードのデータ幅は、前記半導体装置に対する情報を入出力する外部データバスのデータ幅と等しい半導体装置。
【請求項５】
請求項１乃至３の何れか一つに記載の半導体装置は、
前記キャッシュメモリと前記メモリバンクを結合するための内部データバスと、
前記半導体装置に対する情報を入出力する外部データバスとを更に有し、
前記キャッシュメモリのキャッシュラインは、複数のサブラインを有し、
前記複数のサブラインの数をN、前記内部データバスのバス幅をA、前記外部データバスのバス幅をBとした場合に、
A=N・B
の関係を満たす半導体装置。
【請求項６】
請求項５に記載の半導体装置において、
前記キャッシュメモリは、サブライン毎にデータを管理するフラグを複数有し、
前記フラグにより前記サブラインのデータが無効である際においては、前記キャッシュメモリから前記メモリバンクへの書き戻し動作を行わない半導体装置。
【請求項７】
請求項５に記載の半導体装置において、
前記キャッシュメモリは、サブライン毎にデータを管理するフラグを複数有し、
前記フラグにより前記サブラインのデータが更新されている際においては、前記メモリバンクから前記キャッシュメモリへのデータ書き込み動作を行わない半導体装置。
【請求項８】
請求項１乃至７の何れか一つに記載の半導体装置において、前記メモリセルは、SESO(Single Electron Shut Off)メモリセル、相変化メモリセルのいずれか一つのメモリセルである半導体装置。
【請求項９】
請求項１乃至８の何れか一つに記載の半導体装置において、前記キャッシュメモリは、SRAMメモリセルで構成される半導体装置。
【請求項１０】
請求項１乃至７に記載の半導体装置において、
前記メモリセルからデータを読み出す際においては、破壊読出し動作でデータを読み出す半導体装置。
【請求項１１】
請求項１０に記載の半導体装置において、前記メモリセルは強誘電体メモリである半導体装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリ制御装置と中央処理装置により構成されるデータ処理装置、及びデータ処理装置とメモリにより構成されるデータ処理システム、更には、前記が1チップ上に集積された半導体装置、前記が単一の半導体パッケージ内に形成された半導体装置に有効な技術に関する。
【０００２】
【従来の技術】
近年携帯電話等のモバイル端末においては、音楽再生やゲーム機能、動画像のデータ授受といった高機能化が急速に進んでいる。機器の高機能化により扱うデータ量が増加するとマイクロプロセッサを含む情報処理部(システムLSI)のメモリや、外部記憶向けメモリの容量が著しく増加すると予測される。したがって、携帯電話のモバイル端末の高機能化を実現のためには、システムLSIに搭載されるメモリや前記外部記憶向けメモリの大容量化が必須となる。
【０００３】
モバイル端末等を実現するための機能に特化されたマイクロプロセッサ(MPU)を実現するためのシステムLSIのメモリは一般的にはスタティックランダムアクセスメモリ(以下SRAMと記す)が用いられる。その理由は、SRAMがMPU等の論理回路との整合性に特に優れているために作りやすく、さらにデータ保持電流が少ないという特徴を有するからである。
【０００４】
またモバイル端末の外部記憶向けメモリの一例として、SRAMとFlashメモリが1パッケージに実装された複合メモリが知られている（非特許文献２）。このような複合メモリにおいて、Flashメモリには携帯電話システムのOS(オペレーションシステム)の他、通信やアプリケーションのプログラムが格納されている。一方、SRAMには電話番号や住所録、着信音の他、アプリケーションの実行時に一時的に使用されるワークエリアが確保されている。ここでSRAMが利用される理由も、データ保持電流が小さいからである。また、複合メモリのように、複数のメモリを積層すると実装面積が削減されコスト低減の効果もある。
【０００５】
【特許文献１】
特開平６−４３９９号公報（対応米国特許第５，５３０，８２８号公報）
【特許文献２】
特開平７−９３２１５号公報
【非特許文献１】
複合メモリ, [2003/04/28検索] インターネット ＜URL: http://www.sharp.co.jp/products/device/flash/cmlist.html＞
【非特許文献２】
Bryan Atwood et al., "SESO Memory: A CMOS compatible high density embedded memory technology for mobile application," 2002 Symposium on VLSI Circuit Digest of Technical Papers, pp.154-155, (2002)
【非特許文献３】
Stefan Lai et al., "OUM - A 180 nm nonvolatile memory cell element technology for stand alone  and embedded applications," 2001 IEEE International Electron Devices Meeting Digest of Technical Papers, pp.803-806, (2001)
【０００６】
【発明が解決しようとする課題】
本願に先立ち本願発明者等は、高性能化のためにメモリ(即ちSRAM)を大容量化した際の課題について検討した。
【０００７】
第一に、SRAMを用いてメモリを大容量化すると、LSIのチップサイズが大きくなりコストが増大してしまうことである。この理由は、SRAMが6つのMOSトランジスタからなり、メモリセルの面積が大きいためである。また、SRAMを用いてメモリを大容量化するとデータ保持電流が増加してしまう。この理由は、メモリのデータ容量が増加する分のデータ保持電流に加え、MOSトランジスタの微細化が進むと、酸化絶縁膜の薄膜化によっていわゆるゲートリーク電流が増加してしまい、データ保持電流が増加するからである。
【０００８】
上記のような課題を解決するための手段の一つは、SRAMよりもメモリセル面積が小さいメモリセルを利用することである。例えば、非特許文献２に記載のSESO(Single Electron Shut Off)メモリはSRAMよりもメモリセル面積が小さく高集積であり、SESOメモリセルを利用することでチップサイズの増大を防ぎコストを低減出来る。またSESOメモリセルのリーク電流は非常に小さく、データ保持電流を小さくできる可能性がある。もちろん言うまでもなく、不揮発性のメモリセルを利用してもよい。例えば、非特許文献３に開示されるような不揮発性の相変化メモリOUM(Ovonic Unified Memory)を利用すれば、チップサイズ増大やデータ保持電流の増加といった、上記第一の課題を解決できる可能性がある。
【０００９】
しかしながら前述のSESOメモリや相変化メモリは、読み出し動作に比べて書込み動作が遅いという特性を有する。したがって、このようなメモリセルを利用して、大容量のメモリを構成する時には、次のような第二の課題が生じる場合があることに本願発明者等は気がついた。
【００１０】
中央処理装置とメモリによって、データ処理システムを構成した場合、メモリに書込み動作が連続して発生する場合がある。その場合、書込み動作が遅いと後続のメモリへの書込みアクセスが遅延されてしまい、システムの性能が著しく低下する場合がある。
【００１１】
上記のような、読み出し動作よりも書込み動作が遅いという課題の解決を試みた例としては、特許文献１や特許文献２にその手段が記されている。特許文献１では、複数のフラッシュメモリを有し、書込み動作が連続して発生し場合には、同一のフラッシュメモリに書込みを行うのではなく別のフラッシュメモリに後続の書き込み動作を実行することで、見かけ上書き込み動作の高速化を実現できるとしている。しかしながら、同一のフラッシュメモリへの書き込み動作が発生した場合には、後続の書込みアクセスが遅延されてしまうため、プロセッサが生成したアドレスと書込み動作させるフラッシュメモリの管理をアドレス制御部で行う必要があり、制御が非常に困難である。またその具体的な手段の開示もされていない。一方、特許文献２では、書込みバッファと複数のダイナミックランダムアクセスメモリ(以下DRAMと記す)から構成され、書込みバッファに外部からの書き込み動作を実行するとしている。しかしながら、書込み高速化は、書込みバッファの容量で制限されてしまい、書き込みバッファ以上のデータ量を書込む際には、後続の書込み動作が遅延されてしまうという点に配慮がなされていなかった。
【００１２】
そこで本発明の目的の一つは、読み出し動作によりも書込み動作が遅いメモリを利用してデータ処理システムを構成した場合にも、メモリへのアクセスが遅延されることのないデータ処理システムを提供することにある。
【００１３】
【課題を解決するための手段】
上記の課題を解決するための代表的な構成の一つを示せば以下のとおりである。即ち、読み出し動作よりも書き込み動作の遅い複数のメモリセルをそれぞれが有する複数のメモリバンクと、前記複数のメモリバンクに対する外部からのアクセスの仲介を行うキャッシュメモリとを有し、前記キャッシュメモリは、前記メモリセルの書き込みサイクル(m)と前記メモリセルの読み出しサイクル(n)の比(m/n)で決定される値と等しいか、それよりも大きなウェイ数を有するよう半導体装置を構成する。
【００１４】
【発明の実施の形態】
以下、本発明の実施例を図面を用いて詳細に説明する。なお実施例の各ブロックを構成するトランジスタは、特に制限されないが公知のCMOS(相補型MOSトランジスタ)等の集積回路技術によって、単結晶シリコンのような1個の半導体基板上に形成される。即ち、ウエルと素子分離領域と酸化膜が形成される工程の後、ゲート電極とソース・ドレイン領域を形成する第１と第２半導体領域とを形成する工程とを含む工程により形成される。MOSFET(Metal Oxide Semiconductor Field Effect Transistor)の回路記号はゲートに丸印をつけないものはN型MOSFET(NMOS)を表し、ゲートに丸印をつけたP型MOSFET(PMOS)と区別される。以下MOSFETを簡略化してMOSトランジスタと呼ぶことにする。但し本発明は金属ゲートと半導体層の間に設けられた酸化膜を含む電界効果トランジスタだけに限定されるわけではなく絶縁膜を間に含むMISFET(Metal Insulator Semiconductor Field Effect Transistor)等の一般的なFETを用いた回路に適用される。
<第1の実施例>
図1は本発明の実施例の一つであるデータ処理システムを示す図である。本実施例に記載のメモリは、読み出し動作よりも書き込み動作が遅いメモリにおいて、前記読み出し動作時間で書き込み動作が可能なメモリであり、以下アクセスフリーランダムアクセスメモリAF-RAM(Access Free RAM)と呼ぶ。図2から図10は図１のAF-RAMを構成する主な部分の具体例を示したものである。図2および図3は、図1のAF-RAMの制御方法の基本動作を説明する図である。図4は、図2に示されたウェイWAY0およびウェイWAY1の具体例である。図5は、図1のAF-RAMのブロック図を示している。図6はAF-RAMを構成する書き込み動作が遅いメモリセルからなる、低速ライトメモリLWRAM(以下LWRAMと記す)のブロック図を示している。図7はLWRAMに実施のメモリバンクBANKとそれを構成するメモリセルMCの図である。図8はAF-RAMの制御方法を説明するフローチャートである。図9は本発明のAF-RAMにおいて書込み動作が高速化されたことを示すタイミングチャートを示している。図10は、AF-RAMの書込み動作を高速化するさらに別の手段として、転送バッファFWBを付加した場合の具体例を示している。以下ではまず、これらの実施例について説明する。
【００１５】
図1に示したデータ処理システムにおいて、ロジック部LOGICは、中央処理装置であるCPUやユーザロジックUSL1、USL2から構成される。またL1Cは、CPUに接続されるキャッシュメモリを示しており、ライトイネーブル信号WE#、アドレスバスAD、データバスDO0でCPUと接続されている。メモリ制御ユニットMCUはロジック部LOGICとAF-RAMのアクセスを制御する機能を有し、調停回路ARB、メモリコントローラMCTL、リフレッシュコントローラRFCなどから構成される。調停回路ARBはロジック部LOGICからのアクセス要求、すなわちライトイネーブル信号WE#、WE1#、WE2#やアドレスバスAD、AD1、AD2、データバスDQ、DQ1、DQ2の優先順位を決定し、ライトイネーブル信号IWE#、アドレスバスIAD、データバスIDQを介して、メモリコントローラMCTLに必要な情報を伝達する。
【００１６】
信号を受け取ったメモリコントローラMCTLは、メモリライトイネーブル信号MWE#、メモリアドレスバスMAD、メモリデータバスMDQを通じてAF-RAMとのデータの授受を行う。ここでリフレッシュコントローラRFCは、LWRAMに揮発性のメモリセル、例えばSESOメモリを利用した場合には必要であるが、LWRAMに不揮発性のメモリ、例えば相変化メモリを利用する場合には必要なく、状況に応じて構成を変形できることは言うまでもない。
【００１７】
またAF-RAMは複数のウェイを有するキャッシュメモリNWCと読み出し動作よりも書込み動作が遅いメモリセルからなるLWRAMとで構成される。詳細は図2以降で後述するが、キャッシュメモリNWCとLWRAMはバンクライトリクエスト信号BWQ、バンクリードリクエスト信号BRQ、及びデータバスDa、Dbとで接続されている。またキャッシュメモリNWCは、LWRAM全体よりも記憶容量の小さなSRAMメモリから構成される。NWCに用いられる典型的なCMOS-SRAMはラッチ結合された２個のCMOS-インバータと記憶ノードにアクセスするための２個の転送ゲートからなる6個のMOSトランジスタで構成される。
【００１８】
一方LWRAMはSRAMよりもセル面積が小さいメモリセル、即ちSESOメモリや相変化メモリから構成される。したがってSRAMよりもデータ記憶容量が大きくかつデータ保持電流が小さいメモリを実現できる。さらに、後述される本発案による手法によって、前記メモリセルの書込みが遅いという課題が解決される。したがって、AF-RAMへのアクセスが遅延されることのないデータ処理システムが実現できる。なおSESOメモリや相変化メモリ自体については先にリストした非特許文献１や２を参照することにより本願明細書にその内容がインコーポレートされる。
【００１９】
図2、図3において、WAY0、WAY1は図1におけるキャッシュメモリNWCを示した図であり、バンクBank 0〜Bank 3は図1のLWRAMの具体例である。それぞれのウェイ(WAY0, WAY1)は、LWRAMの1バンク分のデータを記憶できるだけの容量を持つ。NWCまたウェイが二つあるのは、実施例1において書込みサイクルが読み出しサイクルの2倍以下の場合を例に説明するためである。
【００２０】
図4は、キャッシュメモリNWCに実施のウェイの具体例である。図4(a)に示すように、ウェイはアドレスを保持するキャッシュアドレスアレイCAAと対応するデータを保持しているキャッシュデータアレイCDAからなり、それらを管理するフラグとして、データが有効であるか無効であるかをしめすバリッドビットVと、データが更新されたことを示すダーティビットDが付加されている。また図4(b)は、CPU等からの32ビット物理アドレスとAF-RAMとのアドレスの対応を示している。これらの図から分かるように、キャッシュアドレスアレイCAAのタグTAGには、LWRAMのバンクアドレスBankAddが割り当てられており、エントリEntry0〜63はLWRAMのワード線WLが対応している。またワードセレクタWSは、バンクBANKの512ビット線対から要求された128ビット線対を選択するのに用いられる(図5で後述)。なお図4の例では、WAY0のエントリ1にはバンクアドレス0のデータ、エントリ2にはバンクアドレス2のデータが保持されている。一方WAY1には、エントリ1にバンクアドレス1のデータ、エントリ2にバンクアドレス0のデータが保持されている例を示している。
【００２１】
なお、キャッシュメモリにおけるウェイ数は、連想度とも呼ばれる。キャッシュにおけるウェイとは、同じエントリアドレスに対して並列にアクセスする数を増やして（連想するものの数を増やして）キャッシュヒットの確率を高めるためのものだからである。
【００２２】
図5はAF-RAMのブロック図である。なお以下の実施例では、総容量4Mビット、書きこみ速度が読み出し速度の2倍遅い場合の条件で説明する。
【００２３】
AF-RAMは主に、キャッシュメモリNWCと書きこみ動作が遅いLWRAMから構成され、キャッシュメモリNWCはLWRAMの書きこみサイクル(m)とLWRAMの読み出しサイクル(n)の比、すなわち(m/n)分の容量のウェイ数を有する。またLWRAMは独立に動作が可能な複数のバンクを有し、本実施例ではバンクBANK0〜127の128バンク構成をとる。キャッシュメモリNWCはキャッシュアドレスアレイCAA、キャッシュデータアレイCDAの他に、キャッシュコントローラCCTL、比較器CMPを有し、バリッドビットV[1:0]、ダーティビットD[1:0]、タグライトイネーブル信号TWE#、キャッシュライトイネーブル信号CWE#、バンクライトイネーブル信号BWE#やタグアドレスバスTADD0、TADD1、ライトタグアドレスバスWTADD、ヒット信号HIT、HIT0、HIT1などの信号でデータを制御する。その他の記号は、バンクデコーダBANKDEC、マルチプレックサMUX、セレクタSEL、アドレスバッファADDB、入出力バッファIOBUF、バンクリードリクエスト信号BRQ[127:0]、バンクライトリクエスト信号BWQ[127:0]、データバスDa[127:0]、Db[127:0]、BDQ[127:0]、EDQ[127:0]、AF-RAMへの入力信号としてメモリアドレスMAD、メモリデータMDQ、メモリライトイネーブル信号MWE#を示している。なお、AF-RAMに分配される、アドレスADD[16:10]、ADD[9:4]、ADD[3:2]、ADD[1:0]やクロックCLK、メモリライトイネーブル信号MWE#、等の制御信号の一部は、図面が煩雑になるので省略してある。
【００２４】
図6はLWRAMの詳細なブロック図である。128個のバンクから構成されており、それぞれのバンクにはバンクリードリクエスト信号BRQ、バンクライトリクエスト信号BWQが入力される。アドレスADD[9:4]は、アドレスバッファX-ADBを経由してワードデコーダXDECに入力され64本のワード線のうち一本を選択する。一方アドレスADD[3:2]はアドレスバッファY-ADBを経由してY-DECに入力され、512ビット線対から128ビット線対を選択する。またSA&IOBUSはセンスアンプ部と入出力バスを表し、ワード線WLとビット線BLの交点に記載の丸印はメモリセルMCを示している。なおLWRAMの外部とのデータ授受は、入出力バッファINPUT/OUTPUT BUFFERを介して行う。
【００２５】
図7は図6に実施のバンクの詳細を示した図である。図７(a)にメモリセルMCを示し、図７(b)にそのメモリセルMCを含むメモリアレイの構成を示す。本実施例は、メモリセルMCにSESOメモリを適用した場合を示している。SESOメモリの、書き込みワード線WWL、読み出しワード線RWL、ビット線BL、/BLで構成され、書き込みトランジスタにSESOトランジスタを利用した3トランジスタ型のダイナミックメモリである。なお、ここでは書き込みワード線WWLと読み出しワード線RWLが分かれたタイプの3トランジスタメモリを示した。上記のようにワード線が別々にあると動作が安定するためである。またビット線BLも、書き込み用と読み出し用に分かれているので、蓄積ノードSNが書き込み信号レベルで安定した時点で、読み出し動作を開始できる。すなわち、書き込み動作の後半に読み出し動作が可能であり、アクセスの高速化が期待できる。その際、前述のような動作実現の為に、センスアンプSAMP等の周辺回路の変更が必要であるが、一般的な回路変更で容易に実現可能であるので、ここでは省略した。もちろん本発明は上記の構造に限定されるものではなく、書き込みワード線WWLと読み出しワード線RWLを共通にしたタイプの3トランジスタメモリとしてもよい。その場合、ワード線を共通にしたことで片方の配線を削減でき、プロセスコストを低減できる。入出力バスIOBUSは、ローカル入出力バスLIO[127:0]からなり、センスアンプ部SAのカラムスイッチYS3〜YS0を通じてそれぞれのビット線対と接続される。ここでYS0は、ビット線BL0、BL4…、ビット線/BL0、/BL4…と接続されている。よってアドレスADD[3:2]から、カラムスイッチYS3〜YS0の中一本が選択され、512ビット線対から要求される128ビット線対が選択される。またセンスアンプ部SAは、センスアンプSAMPの他、プリチャージ回路PREやダミーセルDUMを有している。なおプリチャージ信号PCHやコモンソース信号CSN、CSPはそれぞれプリチャージ回路PRE、センスアンプSAMPを起動するための信号である。
【００２６】
図8はAF-RAMの制御方法を説明するフローチャートである。以上図2から図8を用いて、リードアクセスおよびライトアクセスの動作の詳細を説明する。
＜リードアクセスキャッシュヒット＞
まず図2(a)および図8を用いて、AF-RAMに対してリードアクセスが発生した場合を簡単に説明する。なおウェイの中に記載されている数字は、図4におけるタグTAGに保持されているバンクアドレスBankAddを示し、ウェイの横に記載されている数字は図4におけるエントリを示している。
【００２７】
図2(a)において、リードアクセスのアドレスとして、バンクアドレス2、エントリ1が入力されたとする。ここで、入力されたバンクアドレスと、ウェイに存在するバンクアドレスを比較する(ステップS101)。その結果、対応するデータがWAY0に存在するので、リードアクセスキャッシュヒットとなり、キャッシュメモリNWCからデータを読み出す。キャッシュメモリNWCは高速動作が可能で、1クロックサイクルで読み出すことができるので、AF-RAMへのアクセスが遅延されることはない。
【００２８】
次に、以上の動作を図4および図8を用いて詳細に説明する。図8(a)において、AF-RAMにリードアクセスが要求されると、メモリコントローラMCTLがメモリライトイネーブル信号MWE#をハイにドライブする。またその時に入力されるメモリアドレスMAD[16:0]は、0x0081fであるとする。すなわちADD[16:10]=[0000010]、ADD[9:4]=[000001]、ADD[3:2]=[11]が入力される。
【００２９】
図5において、キャッシュコントローラCCTLがリードアクセスであることを検知すると、キャッシュライトイネーブル信号CWE#をハイにドライブし、対応するデータのタグTAGを読み出す。この場合エントリはADD[9:4]=1なので、図4のキャッシュアドレスアレイCAA0のタグTAG(000010)とキャッシュアドレスアレイCAA1のタグTAG(000001)がそれぞれタグアドレスバスTADD0、TADD1を経由して比較器CMPに入力される(図8、ステップS101)。また比較器CMPには、アドレスバッファADDBを経由してADD[16:10]が入力され、キャッシュアドレスアレイCAA0、CAA1から読み出されたバンクアドレスであるタグTAGと比較する。この時、キャッシュアドレスアレイCAA0のタグTAGとADD[16:10]の値が等しいので、比較器CMPはヒット信号HIT0をハイにドライブする。一方ヒット信号HIT1はアドレスが異なるので、ロウにドライブされる。キャッシュコントローラCCTLは、ヒット信号HIT0がハイにドライブされ、なおかつ対応するバリッドビットが有効であることを検知して、要求されたデータがWAY0に存在することを認識し、ヒット信号HITをハイにドライブする。次にキャッシュデータアレイCDA0から対応するデータDATAを読み出してデータバスDa[127:0]を経由してマルチプレックサMUXに入力する(図8、ステップS102)。ヒット信号HITがハイにドライブされているので、キャッシュデータアレイCDA0からのデータバスDa[127:0]が選択され、入出力バッファIOBUF、メモリデータバスMDQを経由してリクエストマスタ、例えばCPUにデータが転送される(図8、ステップS103)。以上のように、リードアクセスキャッシュヒット時の動作を1クロックサイクルで実行することで、アクセスの遅延が起きることのないデータ処理システムが実現できる。
＜リードアクセスキャッシュミス＞
次に、図2(b)はAF-RAMにリードアクセスのアドレスとして、バンクアドレス1、エントリ2のアドレスが入力された場合である。この場合、どちらのウェイにもバンクアドレス2に対応するデータが存在していない。したがってLWRAMのバンク1から要求されたデータを読み出す。LWRAMの読み出し動作は高速動作が可能であるので、1クロックサイクルで外部にデータを出力できる。またバンク1から読み出したデータはキャッシュメモリNWCにラインフェッチする。
【００３０】
なおキャッシュメモリNWCのデータが更新されていたとき、即ちデータがダーティの場合は、前述したラインフェッチに先だちLWRAMのバンク0にデータをライトバックする必要がある。この時、タグTAGにバンクアドレスが割り当てられているため、ライトバック動作をするバンクと、要求したデータを読み出すためにアクセスするバンクが同一バンクになることはない。さらに後述するが、キャッシュメモリNWCとLWRAMは、ライトバックのためのデータバスと読み出し動作のためのデータバスを有するため、前記二つの動作が同時に実行できる。したがってリードアクセスキャッシュミスにおいても、1クロックサイクルで読み出し動作が可能である。
【００３１】
以上の動作を図4から図8を用いて詳細に説明する。図2(b)のリードアクセスで入力されるアドレスは0x0042f、すなわちADD[16:10]=[0000001]、ADD[9:4]=[000010]、ADD[3:2]=[11]が入力されるとする。キャッシュコントローラCCTLはキャッシュアドレスアレイCAA0、CAA1から対応するタグTAG(000010)、タグTAG(000000)を読み出し比較器CMPで比較した結果を元にヒット判定を行う。この場合比較したアドレスが一致しないのでヒット信号HIT0、HIT1はともにロウにドライブされ、キャッシュミスと判断される。次にダーティビットD[1:0]を検出し、そのデータが更新されているかどうかを判定する(図8、ステップS104)。
a. データがダーティでない場合
もし更新されていないのなら、LWRAMのバンク1からデータを読み出して、WAY1にラインフェッチする(図8、ステップS108)。図5において、キャッシュコントローラCCTLはヒット信号HITをロウにドライブし、バンクデコーダBANKDECでアドレスADD[16:10]をデコードする。この例では、バンクリードリクエスト信号BRQ[1]がハイにドライブされる。つまり、図6に示したLWRAMのバンクBANK1が選択され、アドレスバッファX-ADBに入力されたADD[9:4]および、ワードデコーダXDECによってワード線WL2が選択される。一方アドレスADD[3:2]は、カラムデコーダYDECに入力され、カラムスイッチYS3が選択される。ここで、図7のようにSESOメモリを用いた場合は、リードワード線RWL2が選択され、リードビット線RBLに各ストレージノードSNに対応する信号が出力される。コモンソース信号CSN、CSPによって活性化されたセンスアンプSAMPは、ダミーセルDUMからライトビット線に出力された信号とリードビット線の出力信号の微小な信号差を増幅し、カラムスイッチYSを通じて、ローカル入出力線LIO127〜0にデータを出力する。この場合、カラムスイッチYS3によって、ビット線WBL3、RBL3、WBL7、RBL7…の128ビットデータが出力される。なお、プリチャージ回路PREを活性化するための、プリチャージ信号PCHをドライブするタイミングや、センスアンプを起動するタイミング等は特に説明しないが、一般的なダイナミックメモリセルを動作させる場合と同様にすればよいのは言うまでもなく、その手法は特に限定しない。
【００３２】
バンク1から出力されたデータは、図6のLWRAMの入出力バッファINPUT/OUTPUT BUFFERを経由し、データバスBDQ[127:0]を通じて、図5に示したマルチプレックサMUX、およびセレクタSELに入力される。ここで、キャッシュミスなのでヒット信号HITはロウにドライブされており、マルチプレックサMUXでは、データバスDa[127:0]ではなく、データバスBDQ[127:0]が選択される。このようにしてバンク1のデータが入出力バッファIOBUFを経由してメモリデータバスMDQに出力される。一方、セレクタSELにはメモリライトイネーブル信号MWE#が入力される。この場合メモリライトイネーブル信号MWE#はロウにドライブされており、データバスBDQ[127:0]が選択され、データバスDb[127:0]を通じてキャッシュデータアレイCDA1にバンク1のデータが入力される。キャッシュコントローラCCTLはタグライトイネーブル信号TWE#をロウにドライブし、さらにキャッシュライトイネーブル信号CWE#をロウにドライブして、所望の位置、すなわちWAY1にバンク1から読み出したデータをラインフェッチする。以上が、データがダーティでない場合である。b. データがダーティである場合
一方データが更新されていた場合は、前述したラインフェッチ動作の前に、キャッシュメモリNWCから書き戻すべきデータを出力し、アクセスされる位置のエントリを空ける必要がある。
【００３３】
ここでも入力されるアドレスは0x0042fとして同様に説明する。図8、ステップS104において対応するデータが更新された時、すなわち図4(a)のようにエントリ2のダーティビットDがセットされているならば、データ一貫性維持のためにキャッシュメモリNWCのデータをLWRAMに書き戻さなければならない。次にステップS105のように、書き戻す対象となるバンクBANKがどのような状態かを確認する。例えば、直前のサイクルでのライトバック動作がまだ実行中で、WAY0に保持されているバンクアドレス、バンクBANK2にアクセスできない場合がある。このような場合は、二つあるウェイWAYのもう一つのバンクアドレス、バンクBANK0にライトバックするように制御する(ステップS107)。以下、LWRAMのバンクBANK0、2が共にアイドルである場合で説明する。
【００３４】
図5において、キャッシュミスなので、キャッシュコントローラCCTLはバンクライトイネーブル信号BWE#をロウにドライブしライトバックを実行する。この時ライトタグアドレスバスWTADDにはWAY1のエントリ2にある(000000)が出力され、バンクデコーダBANKDECによってBWQ[0]がハイにドライブされる。またキャッシュデータアレイCDAからデータバスDa[127:0]と通じてLWRAMにデータが入力される。ここでAF-RAMは、ライトバックのためのデータバスDa[127:0]と、バンクからデータを読み出しキャッシュメモリNWCへフェッチオンライトするためのデータバスBDQ[127:0]とを有するので、バンクBANK0へのライトバックとバンクBANK1からのデータ読み出しを同時に実行できる。なお、バンクへの書き込み動作における各信号のタイミングは、基本的に読み出し動作と同様であり、データを書き込むために好適に各種信号を入力すればよいのでここでは詳細な説明は省略する。以上が、データがダーティな場合である。
【００３５】
上記の説明から分かるように、データがダーティであるないに係らず、リードアクセスキャッシュミスにおいても、1クロックサイクルでデータの読み出しが可能となり、アクセスの遅延が起こらないデータ処理システムが実現できる。
＜ライトアクセスキャッシュヒット＞
次に、図2(c)はAF-RAMにライトアクセスのアドレスとして、バンクアドレス2、エントリ1のアドレスが入力された場合を示している。この場合、ライトアクセスに対応するデータがWAY0に存在するので、ライトアクセスキャッシュヒットとなり、キャッシュメモリNWCのウェイWAY0にデータを書込む。キャッシュメモリNWCは1クロックサイクルで書込みが可能であるので、AF-RAMへのアクセスが遅延されることがない。以上がライトアクセスキャッシュヒットである。
【００３６】
以上の動作を図4および図8を用いて詳細に説明する。図2(c)のライトアクセスで入力されるメモリアドレスMADは0x0081f、すなわちADD[16:10]=[0000001]、ADD[9:4]=[000010]、ADD[3:2]=[11]が入力されるとする。図8、ステップS201のアドレス比較はリードアクセスと同様なので説明は省略する。この時キャッシュアドレスアレイCAA0のタグTAGとADD[9:4]の値が等しい、つまりWAY0に対応するデータが存在するのでキャッシュヒットと判断し、キャッシュライトイネーブル信号CWE#をロウにドライブする。さらにキャッシュコントローラCCTLはダーティビットD[0]をセットする(ステップS202)。また書きこみデータはメモリデータバスMDQから入出力バッファIOBUFに入力され、データバスEDQ[127:0]を通じてセレクタSELに入力される。この時、メモリライトイネーブル信号MWE#はロウにドライブされているので、データバスEDQ[127:0]が選択されデータバスDb[127:0]を通じてキャッシュメモリNWCに入力され、所望の位置にデータが書き込まれる(ステップS203)。なおキャッシュメモリNWCは高速にデータを書き込む事ができる。したがってAF-RAMへの書きこみ動作が1クロックサイクルで実行可能であるので、外部からのアクセスが遅延されることがない。以上がライトアクセスキャッシュヒットの説明である。
＜ライトアクセスキャッシュミス＞
次に図2(d)は、AF-RAMにライトアクセスのアドレスとして、バンクアドレス0、エントリ1のアドレスが入力された場合である。この場合、どちらのウェイにもバンクアドレス0に対応するデータが存在していないので、ライトアクセスキャッシュミスである。ここでライトアクセスの時は、ヒット、ミスに係らずキャッシュメモリNWCにデータを書込む。その理由はLWRAMの書込み速度が遅いため、同一アドレスに連続してライトアクセスが発生し、LWRAMへの書き込み動作が連続すると、アクセスが遅延されてしまうからである。なおキャッシュメモリNWCのデータが更新されているときは、キャッシュメモリNWCへのライトアクセスに先立ちデータをLWRAMに書き戻す必要がある。図2(d)では、WAY0のデータをバンク2にライトバックして、その後外部からのデータをWAY0のエントリ1に書きこむ動作を示している。このようすれば、外部からのライトアクセスは遅延されることがない。
【００３７】
以上の動作を図4から図8を用いて詳細に説明する。図2(d)のライトアクセスで入力されるアドレスは0x0001f、すなわちADD[16:10]=[0000000]、ADD[9:4]=[000001]、ADD[3:2]=[11]が入力されるとする。ここでアドレスの比較は前述の説明と同じであるので省略する。次にアクセスするエントリ1のデータが、WAY0, WAY1ともにダーティでない場合(ステップS204)、いずれかのウェイ、ここではWAY0に外部からのデータを書きこむ(ステップS202、S203)。なお以上のラインがダーティでない場合についての動作は、ライトアクセスキャッシュヒットと同様であるので詳細な説明を省略する。
【００３８】
次に図4(a)のようにWAY0, WAY1のエントリ1のデータがともにダーティであったとする。この場合は、外部からのデータをキャッシュメモリNWCに書き込む前に、対応する位置に存在するデータをLWRAMにライトバックする必要がある。そこでリードアクセスキャッシュミス時と同様に図8のステップS205で書き戻す対象となるバンクBANKがどのような状態かをキャッシュコントローラCCTLで監視する。例えば、バンクBANK1がライト動作中でWAY1のデータをライトバックできないのであれば、WAY0のバンクアドレス、バンクBANK2にデータをライトバックするように制御する。以下、図8のステップS206、すなわちライトバックを実行するバンクBANKがアイドル状態であるときの場合で説明する。
【００３９】
ライトアクセス、キャッシュミスなのでキャッシュコントローラCCTLはバンクライトイネーブル信号BWE#をロウにドライブしライトバックを実行する。この時ライトタグアドレスバスWTADDにはWAY0のエントリ1にある(000010)が出力され、バンクデコーダBANKDECによってBWQ[2]がハイにドライブされる。またキャッシュデータアレイCDA0からデータバスDa[127:0]と通じてLWRAMにデータが入力される。その後、書きこみデータがメモリデータバスMDQから入出力バッファIOBUFに入力され、データバスEDQ[127:0]を通じてセレクタSELに入力される。この時、メモリライトイネーブル信号MWE#はロウにドライブされているので、データバスEDQ[127:0]が選択されデータバスDb[127:0]を通じてキャッシュメモリNWCに入力され、所望の位置にデータが書き込まれる(ステップS203)。以上の説明のように、これらの動作を1クロックサイクルで実行する。このように制御することでAF-RAMへのアクセスが遅延されることのないデータ処理システムが実現できる。
【００４０】
次に、ライトアクセスキャッシュミスが連続して発生した場合について説明する。この場合、図2(d)のようにライトバック動作を連続して実行しなければならない場合があり、このような時は図3に説明するように制御すればよい。
【００４１】
まず図3(a)ではサイクルCycle#1でAF-RAMにライトアクセスのアドレスとして、バンクアドレス0、エントリ1が外部から入力されたことを示している。この場合、どちらのウェイにも対応するデータがないためライトアクセスキャッシュミスとなる。さらにWAY0のデータが更新されているとすると、バンク2にライトバックした後、バンク0のデータをWAY0に書きこむ。次に、直後のサイクルCycle#2で、AF-RAMにライトアクセスのアドレスとして、バンクアドレス1、エントリ2が入力された場合、以下のように制御する。図3(b)に示すように、エントリ2に対応するウェイにはバンクアドレス1のデータが存在しない。したがってWAY0、WAY1ともにデータが更新されダーティであるならば、どちらかのウェイのデータをライトバックする必要がある。しかし直前サイクルCycle#1のライトバック動作によってバンク2は書きこみ動作を実行中であり、エントリ2のWAY0のデータをライトバックすることはできない。そこでWAY0のデータをライトバックするのではなく、WAY1にあるバンク0のデータをライトバックする。このようにすれば連続したライトアクセスが発生しても、後続のアクセスが遅延されることはない。同様に、サイクルCycle#3においてライトアクセスのアドレスとして、バンクアドレス2、エントリ1が入力されたとする。この時、どちらのウェイにもエントリ2には対応するデータがなく、さらにダーティであるとする。この場合、WAY1にあるバンク1のデータをライトバックした後、バンク2に対応するデータをWAY0に書きこむ。同様に、サイクルCycle#4においてライトアクセスのアドレスとして、バンクアドレス0、エントリ2が入力されたとする。またどちらのウェイにも要求されるバンクBANK2のデータがなく、さらにダーティであるとする。この場合も、バンク1が書きこみ動作中であるので、WAY0にあるバンク2のデータをライトバックした後、バンク0に対応するデータをWAY0に書きこむ。
【００４２】
図9は以上のような書き込み動作が連続して発生した場合のタイミングチャートであり、LWRAMの低速な書き込み動作が隠蔽されたことを示した図である。サイクルCycle#1〜#3において、ライトアクセスキャッシュミスとなり、バンクライトリクエスト信号BWQ[2]、BWQ[0]、BWQ[1]が各サイクルでドライブされている。しかし先ほど説明したように、本願のAF-RAMの制御方法を用いれば、直前のサイクルで生じた書き込み動作を継続中のバンクに、ライトバック動作を実行することがない。すなわち、外部のアクセスが遅延されることのないデータ処理システムが実現できる。
【００４３】
次にライトアクセスキャッシュミスと、その直後のサイクルでのリードアクセスによって起こる課題とその解決方法について説明する。
【００４４】
図3(a)では、ADD[16:10]=[0000000]、ADD[9:4]=[000001]、ADD[3:2]=[11]が入力され、ライトアクセスキャッシュミスとなりバンクBANK2にライトバックを実行し、WAY0にバンクアドレス0に対応する外部のデータを書きこんでいる。ここで、直後のサイクルCycle#2で、入力アドレスADD[16:10]=[0000010]、ADD[9:4]=[000001]、ADD[3:2]=[11]のリードアクセスが発生したとする。この時、WAY0、WAY1のどちらのエントリ1にもバンクアドレス2に対応するデータは存在せず、リードアクセスキャッシュミスである。したがって、バンクBANK2から要求されたデータを読み出す必要があるが、バンクBANK2はサイクルCycle#1において発生したライトバンク動作を未だ実行中であり、サイクルCycle#2のリードアクセスをバンクBANK2から実行できない。そこで本発明では図10に示すような転送バッファFWBを用いてこの課題を解決する。
【００４５】
図10は図5のAF-RAMに転送バッファFWBを付加したブロック図である。この転送バッファFWBは、ライトアクセスキャッシュミスによって発生するライトバックデータを一時的に保持するためのものである。すなわち、前述したようなアクセスパターンにおいて、リードアクセスキャッシュミスの場合でも、アクセス対象のバンクBANK2からデータを読み出すのではなく、転送バッファFWBから読み出すようにすれば、外部に対して遅延なくデータを出力できる。また、ライトバックする際に、対応するバンク、例えばバンクBANK2からワード線WL1本分のデータを読み出し、ライトバックデータと合わせて転送バッファFWBに書きこんでも良い。この場合、上記のリードアクセスにおいてワードセレクタWSのアドレスが変わっても、1 row(ページ)内でのアクセスであるため転送バッファFWBからデータを読み出すことができる。なお、1本のワード線分のデータをLWRAMから読み出すための回路が必要であるが、通常の回路技術を用いて容易に実現できる範囲の変更なので、ここでは図面での説明は省略する。
【００４６】
以上の実施例では、書き込みサイクル(m)が読み出しサイクル(n)よりも大きくその比（m/n)が2の場合に、キャッシュメモリNWCのウェイ数を2とする場合について述べた。この発明を一般化すれば、書き込み速度が遅いメモリセルを用いる場合において、前記メモリセルの書き込みサイクル(m)と読み出しサイクル(n)の比(m/n)のウェイ数を持つキャッシュメモリを有する構成となる。
【００４７】
ウェイ数はキャッシュメモリに含まれる複数のセットの数であるため、整数値しか取れない。これに対して、書き込み／読み出しサイクルのサイクルは、アクセスを開始してから完了するまでのサイクル時間で定義される場合がある。この場合書き込みサイクル(m)と読み出しサイクル(n)の比(m/n)は整数にならないことが多い。このとき、m/nが現実に1.1〜2.0のような値をとる時にはウェイ数は２とする。更に、m/nが2.1〜3.0の値を取るときにはウェイ数は３とする。即ちm/nが実質的に２や３などの整数値の場合にはその整数値で決定するが、小数点以下の値を持つときは小数点以下を切り上げることにより決定される。もっとも同期型メモリのように書き込み／読み出しサイクルのサイクルが一つの基準クロックの１サイクルの整数比で定義される場合には、(m/n)は常に整数値をとるのでウェイ数は単純に決定できるようになる。
【００４８】
上記のようにして(m/n)で決定されるウェイ数は、キャッシュメモリNWCの容量を最小とするような最適値である。従って、キャッシュメモリNWCの容量がチップ全体の面積に対してペナルティとならないのであれば、(m/n)の比で決定されるウェイ数よりも大きなウェイ数にしてもこの発明の効果は得られる。更に、ウェイ数を最小値よりも大きくすることは連続キャッシュミスに対するタイミング余裕を確保するための手段となりうる点で利点もある。
【００４９】
キャッシュコントローラCCTLはさらに前記キャッシュメモリにおいて、前記メモリセルからなるメモリバンクへの書き戻し動作を同一のバンクに連続させないように制御することにより、書きこみが遅いLWRAMの課題を解決でき、AF-RAMへのアクセスが遅延されることのないデータ処理システムが実現できる。
【００５０】
また、本発明のAF-RAMはそのメモリ容量や、キャッシュメモリNWCの容量、LWRAMのバンク数など、上記で説明した実施例に限定されない。例えばキャッシュメモリNWCの、一つのウェイの容量は単純化して1バンク分の例で示したが、もちろん1バンク以上の容量でもよい。現実にはメモリの冗長等もありメモリ容量は完全には一致しないことも多い。さらに図6では一つ一つのバンクにワードデコーダXDEC等を記載したが、隣接するバンクとそれらを共用して周辺部分の面積を低減することもできる。また、センスアンプSAMPやプリチャージ回路PREの回路方式も本発明の要旨を逸脱しない範囲で様々な変更が可能であることはいうまでもない。
＜実施例2＞
図11は本発明であるAF-RAMの、第二の実施例である。第一の実施例と異なる点は、AF-RAM内部のデータバスDa[127:0]やDb[127:0]と、AF-RAM外部のデータバスであるメモリデータバスMDQのバス幅が異なることである。またバス幅が異なることで追加、修正した制御信号は、キャッシュデータセレクト信号CDS[3:0]、バンクデータセレクト信号BDS[3:0]、およびバリッドビットV0[3:0]、V1[3:0]、ダーティビットD0[3:0]、D1[3:0]である。図12は図11に実施のキャッシュメモリNWCの具体例である。図12が図4と異なる点は、各キャッシュラインをメモリデータバスMDQのバス幅毎に分割し、DATA[3]〜DATA[0]のそれぞれにバリッドビットとダーティビットを設けたことである。このように、キャッシュラインをサブライン化して管理する目的は以下のような課題を解決するためである。
【００５１】
例えば、外部からAF-RAMにライトアクセスが発生し、キャッシュメモリNWCに対応するデータが存在せずライトアクセスキャッシュミスとなった時を考えてみる。この時、あるエントリのDATA[3]に外部からの32ビットデータが書きこまれるが、エントリ内のデータ一貫性を維持するために、それ以外のDATA[2]〜DATA[0]のデータを対応するバンクから読み出す必要がある。この読み出し動作は、メモリデータバスMDQとキャッシュメモリNWCのラインサイズが等しい実施例1には不要な動作であり、実施例2においては、場合によって書きこみ動作中のバンクからこの読み出し動作をしなければならない可能性がある。しかし逆に言うと、このライン内におけるデータ一貫性のための読み出し動作を削除すれば、実施例1と同様の制御方法で、書き込み動作が遅いメモリを利用しても、アクセスの遅延がないデータ処理システムが実現できるということである。すなわち、実施例2においてキャッシュラインをサブライン化した理由は、キャッシュライン内のデータ一貫性を維持しつつ、従来必要であった読み出し動作(アロケート)を削除して、書きこみ動作の遅延を隠蔽することにある。
【００５２】
以下図11から図16を用いて実施例2を説明する。
＜リードアクセスキャッシュヒット＞
まずAF-RAMにリードアクセス要求があった場合で、さらにそのデータがアドレス比較(図13、ステップS301)の結果、キャッシュメモリNWCに存在したときは、実施例1と同様にキャッシュメモリNWCからデータを読み出す(ステップS302〜S304)。したがって、AF-RAMへのアクセスが遅延されることのないデータ処理システムが実現できる。なお、この場合の動作は実施例1と同じなので説明を省略する。＜リードアクセスキャッシュミス＞
a.アドレス一致の場合
次にアドレス比較の結果、アドレスの値は一致したが対応するデータのバリッドビットがリセットされていた場合について説明する(ステップS302、S305)。例えばキャッシュメモリNWCに、図12のようにデータが入力されていたとする。なおバリッドビットがリセットされている部分はデータ部分を塗りつぶしている。ここでADD[16:10]=[0000010]、ADD[9:4]=[000010]、ADD[3:2]=[00]が入力されたとするとWAY0のタグTAGのバンクアドレスと等しい。しかし読み出したいデータであるDATA[0]のバリッドビットV0[0]がリセットされており、有効なデータをLWRAMのバンクBANK2から読み出す必要がある。したがってLWRAMのバンクBANK2からのデータが、バンクデータバスBDQ[127:0]を通じてキャッシュデータアレイCDA0のエントリ2に入力される。ここでキャッシュデータアレイCDA0のDATA[1]〜DATA[3]はダーティビットがセットされているので、バンクBANK2からのデータをラインフェッチしてはならない。なぜなら、キャッシュデータアレイCDA0のデータN、O、Pが最新のデータであり、バンクBANK2の古いデータを書き込むことでデータが破壊されてしまうからである。これを防ぐために、キャッシュデータセレクト信号CDS[3:0]を用いる。キャッシュデータセレクト信号CDS[3:0]は、バリッドビットとダーティビットのアンドを取り、その反転信号を出力する。この場合キャッシュアドレスアレイCAA0のバリッドビットはV0[3:0]=(0111)、ダーティビットはD0[3:0]=(0111)なのでそれぞれのビットでアンドを取ると(0111)となり、その反転信号は(1000)となる。すなわちキャッシュコントローラCCTLはこのような制御をもとに、ラインフェッチするべきサブラインを選択する。この場合はWAY0のエントリ2のサブラインDATA[0]のみにラインフェッチを実行するように制御する。このようにすればキャッシュのライン内でデータが破壊されることはない。したがって、低速な書きこみ動作によるアクセス遅延を隠蔽することができる。b.アドレス不一致の場合
次に図13、ステップS301でアドレスが一致しなかった場合を説明する。アドレス比較の次に、アクセス対象のエントリのデータがダーティであるのかを確認する(図13、ステップS308)。もしアクセス対象のエントリ内にダーティなデータがなかったら入力されたアドレスのバンクBANKからデータを読み出しラインフェッチを実行すれば良い(S309〜S304)。したがって、AF-RAMへのアクセスが遅延されることのないデータ処理システムが実現できる。なおこの場合は図8のステップS104、S108、S103に説明した動作と同様であるのでここでは詳細な説明を省略する。
【００５３】
次にステップS308において、アクセス対象のエントリのダーティビットがセットされていた時は、そのデータをLWRAMのバンクにライトバックする必要がある。このときバリッドビットがリセットされているサブラインのデータをライトバックしてはならない。なぜならそのデータは無効であり、本来保持しておくべきデータを破壊することになるからである。例えば、図12の状態において外部からADD[16:10]=[0000001]、ADD[9:4]=[000010]、ADD[3:2]=[00]が入力されたとする。いずれのウェイにもバンクアドレス1のデータが存在しないので、どちらか一つのウェイのデータをライトバックする必要がある。ここでステップS311において、バンクBANK0がライトバック中でありWAY1のデータをライトバックできない状態であるとする。その場合、WAY0のバンクBANK2のデータをLWRAMにライトバックすればよい。ここで、ウェイWAY0のエントリ2のバリッドビットV0[0]はリセットされているので、DATA[0]をライトバックしてはならない。そのための制御信号としてバンクデータセレクト信号BDS[3:0]を利用する。バンクデータセレクト信号BDS[3:0]は、アクセス対象のエントリに設けられたバリッドビットとダーティビットのアンド信号を出力する。すなわちWAY0のエントリ2のバリッドビットはV0[3:0]=(0111)、ダーティビットはD0[3:0]=(0111)なので、そのアンド信号は(0111)となり、エントリ2のデータDATA[1]〜DATA[3]のN,O,Pをライトバックするように制御する(ステップS313)。これ以降のステップS309からS310、S307、S304にかかわる動作は、図4で説明した動作と同様であるのでここでは詳細な説明を省略する。以上がリードアクセスにおける制御方法である。上記ように制御すれば、外部データバスであるデータバスMDQのバス幅と、AF-RAMの内部データバスDa[127:0]等のバス幅が異なる場合において、書きこみ動作が遅いメモリを利用しても、アクセスが遅延されることのないデータ処理システムが実現できる。
＜ライトアクセスキャッシュヒット＞
次にAF-RAMにライトアクセス要求があった場合について説明する。図14のステップS401においてアドレス比較を行い、比較対象のアドレスが一致したとする。さらにステップS402においてアクセス対象のエントリのバリッドビットを参照する。ここでバリッドビットがセットされているなら、アクセス対象のサブラインのダーティビットをセットしてキャッシュメモリNWCにデータを書き込む(ステップS403、S404)。同様に、ステップS402でアクセス対象のエントリのサブラインに対応するバリッドビットがリセットされていた時には、キャッシュヒットと判定し所望の位置に外部データをライトする。このときバリッドビットをセットして、ステップS403、S404の動作を実行する。以上がライトアクセスキャッシュヒットである。したがって、AF-RAMへのアクセスが遅延されることのないデータ処理システムが実現できる。。なお実施例2におけるライトアクセスキャッシュヒットアクセスは、実施例1と基本的に同様であるので、ここでは詳細な説明は省略する。
＜ライトアクセスキャッシュミス＞
次にステップS401においてアドレス比較を行った結果、アクセス対象のエントリに要求したデータがなくライトアクセスキャッシュミスと判定された場合について説明する。
【００５４】
ライトアクセスキャッシュミスの場合は、まずアクセス対象のエントリ内にダーティなデータが存在するのかを判定する(ステップS406)。ここでダーティなデータがないのであれば、書き込むアドレスに対応するデータのダーティビット及びバリッドビットをセットする(ステップS407、S408)。さらに書き込むデータに対応するサブライン以外のデータを無効化する。例えば、外部からADD[16:10]=[0000000]、ADD[9:4]=[000010]、ADD[3:2]=[00]が入力されたとする。この時、図12キャッシュメモリNWCにはデータが存在せず、ライトアクセスキャッシュミスとなり、WAY1のエントリ2に外部からのデータを書き込むようにキャッシュコントローラCCTLによって制御する。さらにキャッシュコントローラCCTLは、DATA[1]〜DATA[3]のデータを無効化するために、対応するバリッドビットをリセットする。以上のようにすることでライトアクセスキャッシュミス時において、エントリ内のデータ一貫性を維持しつつ、LWRAMからの読み出し動作を不要とすることが出きる。またステップS406において、ダーティなデータがエントリ内に存在した場合には、図14のステップS410、S411、S412に記載のフローを実行する。これらのフローは、図13のステップS311、S312、S313と同様にバンクデータセレクト信号BDS[3:0]を用いて、バリッドビットがセットされた有効なデータのみをライトバックすればよい。
【００５５】
図15はデータをサブラインの単位で管理しない場合に、前述したLWRAMのライトバック動作と、LWRAMからの読み出し動作が衝突するという課題を説明したタイミングチャートである。一方、図16は上記で説明した手法を用いて、前記課題を解決したことを示すタイミングチャートである。外部からサイクルCycle#1でADD[16:10]=[0000000]、ADD[9:4]=[000001]、ADD[3:2]=[00]が入力され、サイクルCycle#2でADD[16:10]=[0000010]、ADD[9:4]=[000001]、ADD[3:2]=[00]が入力されたとする。すなわちサイクルCycle#1およびサイクルCycle#2では、ともにライトアクセスキャッシュミスとなり、サイクルCycle#1でWAY0のバンクBANK2、サイクルCycle#2でWAY1のバンクBANK1のデータをライトバックすることを示している。ここで、本発案の実施例の手法を用いない場合は、図15のようにサイクルCycle#1でバンクBANK2にライトバック動作が実行されるので、サイクルCycle#2までライト動作が続行される。また前述したように、サイクルCycle#2においてバンクBANK2のライトアクセスのアドレスが入力された場合、エントリ1のデータ一貫性維持の為にバンクBANK2からデータを読み出す必要がある。しかし、すでに直前のサイクルからのライト動作が実行中であり、バンクBANK2からの読み出し動作と衝突してしまう。
【００５６】
一方本発案のように外部データバス幅、ここではメモリデータバスMDQのデータバス幅の単位でデータを管理するようにすれば、ライトアクセスキャッシュミス時において、上記のようなLWRAMからのアロケート動作が不要となる。したがって図16に示すように、サイクルCycle#2においてバンクBANK2からの読み出し動作が発生せず、アクセスが衝突することがない。
【００５７】
以上の説明から分かる通り、メモリデータバスMDQとAF-RAMの内部データバス、例えばDa[127:0]やDb[127:0]のバス幅が異なる場合においても、本発明の制御方法を用いることで、書きこみが遅いLWRAMの課題を解決でき、AF-RAMへのアクセスが遅延されることのないデータ処理システムが実現できる。なお本実施例ではメモリデータバス幅MDQを32ビットとして説明したが、本発明はもちろんこれに限定されない。サブライン毎にデータを管理するように制御すれば、その分割数を増やしてもよい。さらにLWRAMのバンク数やキャッシュメモリNWCの容量、ウェイ数も書き込みサイクル(m)と読み出しサイクル(n)の比、(m/n)のウェイ数で示したが、(m/n)以上の数でも良いことはいうまでもない。また一つのウェイの容量もLWRAMの1バンク分の容量より大きくても良い。なお本発明は、前述の実施例と同様にその要旨を逸脱しない範囲で様々な変更が可能であることは言うまでもない。
＜実施例3＞
前記実施例では、LWRAMにSESOメモリを用いてAF-RAMを実現した例を示したが、LWRAMに不揮発性の相変化メモリを用いることもできる。
【００５８】
図17は図6のLWRAMに用いた相変化メモリセルMCを示す図である。相変化メモリセルMCは、ワード線WL、ビット線BL及び可変抵抗素子Rから構成される。相変化メモリもSESOメモリと同様に、読み出し速度よりも書き込み速度が遅いという課題を有する。しかし前述の実施例1および実施例2で説明した手法を用いれば、相変化メモリセルMCを用いた場合においても、書き込み速度が遅いという課題を解決でき、AF-RAMへのアクセスが遅延されないデータ処理システムが実現できることはいうまでもない。なお相変化メモリセルMCはSESOメモリよりもメモリセル面積が小さい。したがってSESOメモリを用いた場合よりも、さらにデータ記憶容量の大きいメモリが低コストで実現できる。また相変化メモリは不揮発性メモリであるので、データ保持電流が小さいメモリが実現できる。さらに図17では、可変抵抗素子Rがビット線BLとアクセストランジスタTN0の間に位置するメモリセル構成を示したが、本発明はこれに限定されるものではなく、可変抵抗素子Rがソース線SLとアクセストランジスタTN0の間に位置するメモリ構成とする等、様々な変更が可能である。
＜実施例4＞
実施例1、実施例2および実施例3では、LWRAMにSESOメモリもしくは相変化メモリを用いてAF-RAMを実現した例を説明したが、LWRAMのメモリセルに不揮発性の強誘電体メモリ(以下FeRAM: Ferro electric Random Access Memory)を適用し、本発案の手法を用いれば、高性能なAF-RAMを実現できる。
【００５９】
図18(a)はFeRAMのメモリセルMCを示しており、図18(b)、(c)は従来のFeRAMの動作波形を示している。メモリセルMCは、ワード線WL、ビット線対BL、/BL、アクセストランジスタTN1、強誘電体キャパシタC0、プレートPLTから構成される。図18(b)は従来のFeRAMの読み出し動作を示すタイミングチャートである。FeRAMは動作原理上、読み出しの際に蓄積ノードSNとビット線BLが導通するのでデータが破壊される。そこで一度データを読み出した後(RD期間)、データを再書き込みし(RWT期間)、その後ビット線をプリチャージ(PCH期間)する必要があるので、サイクル時間tRCは長くなってしまう。一方図18(c)の書き込み動作時も、アクセス対象ではない非選択のメモリセルMCの蓄積ノードSNとビット線BLが導通するので、一度蓄積ノードSNの信号を読み出した後、再書き込み動作が必要となる。さらに、選択されたメモリセルにデータを書き込み(WR期間)、プリチャージを実行する(PCH期間)。また、FeRAMは強誘電体キャパシタC0の分極特性を利用してデータを保持するため、再書き込み動作(RWT期間)および書き込み動作(RD期間)において、プレートPLTの電位を電源電圧程度にしておく必要があり、これに伴うプレートPLTの立上げ時間などによりサイクル時間tRCが長くなるといった課題もあった。
【００６０】
そこで本発案では、まずFeRAMの読み出し動作における再書き込み動作を行わないように制御する。すなわちFeRAMを破壊読出し動作させる。本発案のAF-RAMはキャッシュメモリNWCを有しており、LWRAMから読み出したデータはキャッシュメモリNWCに保持されるのでデータが失われることはない。このように、FeRAMを破壊読出し動作させると、読み出し動作を図19(a)のように高速化できる。ここで破壊読出し動作をさせるので、一度読み出したデータは、全てキャッシュメモリNWCに書き込まなければならない。すなわち、キャッシュメモリNWCの内部データバスDa[127:0]等のバス幅と、LWRAMのバンクのビット線数を等しくする必要がある。なお、この場合の回路変更は簡単な回路技術で実現できるので、ここでは図面での説明を省略する。
【００６１】
一方、図19(b)の書き込み動作時にはデータを書き込むためにビット線を高電位まで増幅し、その間プレートPLTを立ち上げておく必要がある。そのため破壊読出し動作によって再書き込み動作を削除しても、読み出し時間tRCよりも書き込み動作時間の方が長くなる場合がある。このような場合には、実施例1および実施例2で説明したような制御方法を用いることで、書き込みが遅いという課題を解決できる。すなわち実施例3において、前述の実施例と同様に、FeRAMの書きこみ速度(m)と読み出し速度(n)の比、つまり(m/n)分の容量のウェイ数をキャッシュメモリNWCが有することで、AF-RAMへのアクセスが遅延されることのないデータ処理システムが実現できる。
【００６２】
以上の説明においては、1トランジスタ1キャパシタタイプのメモリセルの例を示したが、本発明はこれに限定されるものではなく2トランジスタ型のFeRAMのメモリセルを用いてもよい。また前述の実施例と同様に種々の変形が可能であることは言うまでもない。
＜実施例5＞
実施例1では、ロジック部LOGICとAF-RAMがそれぞれ別のチップで構成され、メモリ制御ユニットMCUを介して接続された構成を説明したが、以下に説明するような変形も可能である。
【００６３】
図20は、1チップのLSI上にCPUとキャッシュメモリL1C、メモリ制御ユニットMCU、本発明のAF-RAMがシステムバスSYSTEM BUSによって接続されていることを示す図である。このように1チップ上にAF-RAMを搭載することで、別々のチップをバスで接続した場合よりも、バスの寄生容量が小さくなり、消費電力の低減の効果が期待できる。なお本実施例では、論理回路部分はCPUのみの例で示したが、実施例1のように複数の論理回路が1チップ上に搭載されてもよいことはいうまでもない。さらに図面には記していないが、本実施のLSIを、他のSRAMやDRAMチップと積層してもよい。この場合チップ全体の実装面積を低減し、コストを低減できる。またAF-RAMとSRAMやDRAMを積層した、所謂複合型メモリを実現しても良いことは言うまでもない。このようにすれば、さらにデータ容量の大きなメモリが、実装面積を低減しつつ実現できる。以上のように本発明のAF-RAMは、その目的により様々な応用が可能である。
【００６４】
【発明の効果】
本発明の主な効果は、書き込みが遅いメモリセルを用いた場合でも、少量のキャッシュメモリを付加することで、低速な書き込み動作を隠蔽することができことにある。
【図面の簡単な説明】
【図１】本発明の第一の実施例を示す図である。
【図２】実施例1に記載のアクセスフリーランダムアクセスメモリ(AF-RAM)の読み出し動作および書き込み動作の制御方法の一例を示した図である。
【図３】実施例1に記載のAF-RAMの書き込み動作の制御方法の一例を示した図である。
【図４】図1のAF-RAMに含まれるキャッシュメモリNWCを示す一実施例である。
【図５】実施例1に記載のAF-RAMを説明するブロック図の一例である。
【図６】  AF-RAMに実施の、書き込み動作が遅いメモリセルを用いた低速ライトメモリのブロック図である。
【図７】低速ライトメモリに実施のバンクおよびバンクを構成するSESOメモリセルを示す一実施例である。
【図８】実施例1に記載のAF-RAMの制御方法を示すフローチャートである。
【図９】実施例1に記載のAF-RAMにおいて、低速な書き込み動作が隠蔽されたことを示すタイミングチャートである。
【図１０】実施例1に記載のAF-RAMを説明するブロック図の一例である。
【図１１】図1に記載のAF-RAMを説明するブロック図の第二の実施例である。
【図１２】図11に実施のキャッシュメモリを示す一例である。
【図１３】図11に記載のAF-RAMの読み出し動作を説明するフローチャートである。
【図１４】図11に記載のAF-RAMの書き込み動作を説明するフローチャートである。
【図１５】図11に記載のAF-RAMの課題について説明したタイミングチャートである。
【図１６】図11に記載のAF-RAMの課題を解決したことを示すタイミングチャートである。
【図１７】図6に記載のLWRAMに実施の相変化メモリセルを示す一実施例である。
【図１８】従来の強誘電体メモリの動作を説明するタイミングチャートである。
【図１９】本発明に実施の手法を用いて、強誘電体メモリを高速化したことを示すタイミングチャートである。
【図２０】本発明のAF-RAMを適用したLSIの例を示す図である。
【符号の説明】
AF-RAM……アクセスフリーランダムアクセスメモリ、  NWC、  L1C……キャッシュメモリ、  LWRAM……低速ライトメモリ、  LOGIC……ロジック部、  CPU……中央処理装置、  USL1、  USL2……ユーザロジック、  MCU……メモリ制御ユニット、  ARB……調停回路、  MCTL……メモリコントローラ、  RFC……リフレッシュコントローラ、  WE#、  WE1#、  WE2#、  IWE#……ライトイネーブル信号、  AD、  AD1、  AD2、  IAD……アドレスバス、  DQ、  DQ0、  DQ1、  DQ2、  IDQ……データバス、  MWE#……メモリライトイネーブル信号、  MAD……メモリアドレスバス、  MDQ……メモリデータバス、  WAY0……ウェイ0、  WAY1……ウェイ1、  CAA、  CAA0、  CAA1……キャッシュアドレスアレイ、  CDA、  CDA0、  CDA1……キャッシュデータアレイ、  V、  V[3:0]、  V0[3:0]、  V1[3:0]……バリッドビット、  D、  D[3:0]、  D0[3:0]、  D1[3:0]……ダーティビット、  TAG……タグ、  DATA……データ、  BankAdd……バンクアドレス、  Entry……エントリ、  WS……ワードセレクタ、  CCTL……キャッシュコントローラ、  CMP……比較器、  BANK0〜BANK127……メモリバンク、  BANKDEC……バンクデコーダ、  MUX……マルチプレックサ、  SEL……セレクタ、  ADDB……アドレスバッファ、  IOBUF、  INPUT/OUTPUT BUFFER……入出力バッファ、  FWB……転送バッファ、  ADDRESS……入力アドレス、  ADD[16:10]、  ADD[9:4]、  ADD[3:2]……アドレスバス、  Da[127:0]、  Db[127:0]、  Dc[127:0]……データバス、  BDQ[127:0]……バンクデータバス、  TWE#……タグライトイネーブル信号、  CWE#……キャッシュライトイネーブル信号、  BWE#……バンクライトイネーブル信号、  TADD0、  TADD1……タグアドレスバス、  WTADD……ライトタグアドレスバス、  HIT、  HIT0、  HIT1……ヒット信号、  BRQ[127:0]……バンクリードリクエスト信号、  BWQ[127:0]……バンクライトリクエスト信号、  CDS[3:0]……キャッシュデータセレクト信号、  BDS[3:0]……バンクデータセレクト信号、  X-ADB、  Y-ADB……アドレスバッファ、  XDEC……ワードデコーダ、  YDEC……カラムデコーダ、  SA&IOBUS……センスアンプ部と入出力バス、  WL……ワード線、  WWL、  WWL0〜WWL63……書き込みワード線、  RWL、  RWL0〜RWL63……読み出しワード線、  BL、  /BL、  BL0〜BL511、  /BL0〜/BL511……ビット線、  SN……蓄積ノード、  TN0、  TN1……アクセストランジスタ、  SESO……単一電子閉じ込めトランジスタ、  C0……強誘電体キャパシタ、  PLT……プレート、  SL……ソース線、  MC……メモリセル、  SAMP……センスアンプ、  PRE……プリチャージ回路、  DUM……ダミーセル、  CSN、  CSP……コモンソース信号、  PCH……プリチャージ信号、  YS0〜YS3……カラムスイッチ、  LIO0〜LIO127……ローカル入出力バス、  RD……リード期間、  RWT……再書き込み期間、  WR……書き込み期間、  PCH……プリチャージ期間、  DI……入力データ、  DO……出力データ、  SYSTEM BUS……システムバス、  CLK……クロック、  LSI……半導体集積回路。
【図１】
0004241175.tif 000002
【図２】
0004241175.tif 000003
【図３】
0004241175.tif 000004
【図４】
0004241175.tif 000005
【図５】
0004241175.tif 000006
【図６】
0004241175.tif 000007
【図７】
0004241175.tif 000008
【図８】
0004241175.tif 000009
【図９】
0004241175.tif 000010
【図１０】
0004241175.tif 000011
【図１１】
0004241175.tif 000012
【図１２】
0004241175.tif 000013
【図１３】
0004241175.tif 000014
【図１４】
0004241175.tif 000015
【図１５】
0004241175.tif 000016
【図１６】
0004241175.tif 000017
【図１７】
0004241175.tif 000018
【図１８】
0004241175.tif 000019
【図１９】
0004241175.tif 000020
【図２０】
0004241175.tif 000021