JP2004206242A - 半導体回路 - Google Patents
半導体回路 Download PDFInfo
- Publication number
- JP2004206242A JP2004206242A JP2002372198A JP2002372198A JP2004206242A JP 2004206242 A JP2004206242 A JP 2004206242A JP 2002372198 A JP2002372198 A JP 2002372198A JP 2002372198 A JP2002372198 A JP 2002372198A JP 2004206242 A JP2004206242 A JP 2004206242A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- signal
- output
- level
- exclusive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/06—Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
- G11C7/065—Differential amplifiers of latching type
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2245—Memory devices with an internal cache buffer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Static Random-Access Memory (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】キャッシュメモリに記憶されているタグ情報と、CPUから出力される参照タグ情報との比較処理を行う比較器において、当該比較処理の速い比較器を提供することを目的とする。
【解決手段】TAG−RAMが記憶しているタグ情報TMを出力をセンスアンプSAの活性状態を制御する、センスイネーブル信号SEを利用して、当該タグ情報TMとCPUから出力される参照タグ情報TCとの比較処理を行う、比較器201の活性化状態を制御する。
【選択図】 図1
【解決手段】TAG−RAMが記憶しているタグ情報TMを出力をセンスアンプSAの活性状態を制御する、センスイネーブル信号SEを利用して、当該タグ情報TMとCPUから出力される参照タグ情報TCとの比較処理を行う、比較器201の活性化状態を制御する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
この発明は、2つの多ビットのデータの比較処理を行う比較器を有する半導体回路に係る発明である。
【0002】
【従来の技術】
従来、キャッシュメモリから必要なデータを読み出すに際し、読み出されたデータが必要なデータであるか否かを判定する比較器として、例えば、複数の排他論理和回路と、論理積回路とによって構成されているものがあった(特許文献1参照)。
【0003】
【特許文献1】
特開平1−296338号公報(第1、4図)
【0004】
【発明が解決しようとする課題】
しかし、上記で挙げた従来技術の比較器では、簡易な回路設計により、最適なタイミングで当該比較器による多ビットのデータの判定処理を行うことができず、判定処理にある程度の時間を要していた。
【0005】
そこで、この発明は、多ビットのデータの判定処理を行う比較器を有する、当該判定処理の速い半導体回路を提供することを目的とする。
【0006】
【課題を解決するための手段】
上記の目的を達成するために、本発明に係る請求項1に記載の半導体回路は、多ビットの第一のデータを記憶している記憶装置と、前記第一のデータと多ビットの第二のデータとの比較を行う比較器とを有する半導体回路において、前記記憶装置からの前記第一のデータの出力を制御する第一の制御信号に基づいて、前記比較器の活性状態が制御されている。
【0007】
【発明の実施の形態】
一般的に、メモリの動作速度は、記憶容量が大きくなるほど遅くなる。したがって、大容量となるメインメモリの動作速度は、CPU(Central Processing Unit:中央演算処理装置)の動作速度に比べて遅くなり、CPUの命令実行速度を下げる原因となっている。
【0008】
ところで、期間を限定すればCPUの必要とするデータは、メインメモリの全領域に満遍なく存在するのではなく、一部領域に偏在する傾向がある。よって、CPUが必要とするデータがメインメモリの一部領域に限定されるのであるなら、CPUからのアクセス頻度の高いデータのみを記憶容量の小さいメモリに記憶させておき、当該小さい容量のメモリからCPUが必要なデータを供給すればよい。
【0009】
そこで、上記問題を解決するために、CPUとメインメモリの間に容量の小さい、高速のメモリ(以下、キャッシュメモリと称す)を配置し、当該キャッシュメモリにCPUがアクセスする頻度の高いデータを記憶させる。これにより、低速なメインメモリによるCPUの命令実行速度の低下問題を解消することができる。
【0010】
さて、図1が示すように、キャッシュメモリ1は通常、データを記憶する部分(DATA−RAM)と、当該DATA−RAMに記憶されているデータを読み出すためのタグ情報が記憶されている部分(TAG−RAM)とで構成されている。
【0011】
キャッシュメモリ1にデータを書き込むときには、次のように行われる。
【0012】
ダイレクトマップ方式では、CPUの出力するアドレスデータ2のうち、下位ビット(以下、indexと称す)をキャッシュメモリ1のアドレスを指定するために用いる。そして、当該indexで指定されるキャッシュメモリ1のアドレスに該当するTAG−RAMには、アドレスデータ2の上位ビットをタグ情報TMとして記憶し、DATA−RAMには今書き込むべきデータが書き込まれる。
【0013】
また、キャッシュメモリ1からデータを読み出すときは、次のように行われる。
【0014】
まず、CPUは、今必要とするデータを読み出すためにアドレスデータ2を出力する。
【0015】
次に、当該アドレスデータ2のindexを用いて、キャッシュメモリ1の所定のアドレスにアクセスする。仮に今の場合、indexで指定されるキャッシュメモリ1の所定のアドレスが{k−1}だとする。すると次に、アドレス{k−1}に該当するTAG−RAMに書き込まれているタグ情報TM{k−1}と、DATA−RAMに書き込まれているデータ{k−1}とを同時に読み出す。
【0016】
次に、当該読み出されたデータがCPUが必要とするデータであるか否かの判定を行う。
【0017】
当該判定処理は、比較器201を用いて、CPUが出力したアドレスデータ2の上位ビットである参照タグ情報TCと、キャッシュメモリ1から読み出されたアドレス{k−1}に該当するTAG−RAMに記憶されていたタグ情報TM{k−1}とを比較することにより行われる。
【0018】
当該判定の結果、両者が一致すれば所望のデータであることが認識できるので、当該読み出されたデータをCPUは用いることができる。これをキャッシュヒット(以下、HITとする)という。これに対して、両者が一致しなければキャッシュメモリ1には所望のデータがないと認識できるので(これをキャッシュミスとよび、以下、MISSとする)、メインメモリから所望のデータを読み出すこととなる。
【0019】
以下、実施の形態毎に、この発明に係る半導体回路を構成している、比較器201やTAG−RAM等の回路構成および動作を図面に基づいて具体的に説明する。
【0020】
なお、本発明では、タグ情報TMおよび参照タグ情報TCは16ビットのビット列と仮定する。また、タグ情報TMを構成している各ビットをタグ情報ビットTMB<i>と称し、参照タグ情報TCを構成している各ビットを参照ビットTCB<i>と称する。なお、i=0〜15である。
【0021】
<実施の形態1>
本発明の実施の形態1に係る半導体回路の説明を図2〜7に示す図面に基づいて説明する。
【0022】
図2は、キャッシュメモリの一部であるTAG−RAMにおける、入出力信号の様子を示す図である。
【0023】
図2において、CPUから出力されるアドレスデータ2の下位ビットであるindexが、キャッシュメモリ1でのアドレス指定のために用いられ、入力信号としてTAG−RAMに入力される。また、当該indexにより読み出されたタグ情報ビットTMB<i>と活性化信号ENとが出力される。
【0024】
図3は、比較器201を構成する前段の回路であり、タグ情報ビットTMB<i>と参照ビットTCB<i>との排他論理和演算処理を行う排他論理和回路(以下、XOR回路と称す)の具体的構成を示す図である。図4は、遅延回路DLY2により活性化信号ENが時間遅延を有する活性化信号EN2に変換される様子を示す回路図である。図5は、比較器201を構成する後段の回路であり、複数のXOR回路からの出力信号の論理積を取る論理積回路の具体的構成を示す図である。
【0025】
図6は、図2で示したTAG−RAMの主要部であるメモリ部MCと活性化信号生成カラムENCとセンスイネーブル信号生成用のダミーカラムDCとを示す図である。図7は、図6に示している活性化信号ENを生成するために用いられるセンスアンプSA2の具体的構成を示す図である。
【0026】
さらに、図8は、実施の形態1に係る半導体回路の動作を説明するためのタイミングチャートである。
【0027】
次に各図の回路構成について説明する。
【0028】
<回路構成>
まず、活性化信号ENにより活性状態/非活性状態が制御される、図3に示すXOR回路の構成について説明する。なお、今タグ情報TMおよび参照タグ情報TCは16ビットのビット列を想定しているので、当該XOR回路は、各ビットに応じた数が(つまり16個)設けられる。
【0029】
図3のXOR回路は、3つの入力部10,11,12と1つの出力部13とを有している。つまり、活性化信号ENが入力される入力部10と、参照ビットTCB<i>が入力される入力部11と、タグ情報ビットTMB<i>が入力される入力部12と、XOR回路での排他論理和演算結果である排他論理和信号cmp<i>が出力される出力部13とを有している。
【0030】
入力部10は、インバータG20を介して、NORゲートG21の一方の入力部と、NORゲートG22の一方の入力部とにそれぞれ接続されている。さらに、入力部10は、インバータG20、G26とを介してP型トランジスタP20のゲートに接続されている。ここで、P型トランジスタP20のソースには固定電源が接続されており、当該P型トランジスタP20のドレインは、インバータG25を介して出力部13に接続されている。
【0031】
入力部11は、NORゲートG21の他方の入力部に直接、接続されている一方で、インバータG23を介してNORゲートG22の他方の入力部へと接続されている。
【0032】
また、NORゲートG21の出力部はインバータG28を介してトランスミッションゲートTG20のP型ゲートに接続される一方で、当該トランスミッションゲートTG20のN型ゲートに直接、接続されている。また、NORゲートG22の出力部はインバータG27を介してトランスミッションゲートTG21のP型ゲートに接続される一方で、当該トランスミッションゲートTG21のN型ゲートに直接、接続されている。
【0033】
入力部12は、インバータG24を介してトランスミッションゲートTG20の入力部に接続される一方で、トランスミッションゲートTG21の入力部に直接、接続されている。また、トランスミッションゲートTG20の出力部およびトランスミッションゲートTG21の出力部は、ともにインバータG25を介して出力部13へと接続されている。
【0034】
次に、上記図3に示した各XOR回路の出力部13から出力される排他論理和信号cmp<i>の論理積を取る回路であり、ダイナミック回路である図5の論理積回路の構成について説明する。ここでダイナミック回路とは、活性状態のときに一度入力信号が入力されると、これに対応する出力信号が決定され、その後、当該論理積回路をプリチャージしない限り、別の入力信号が入力されても出力信号は変化しない回路のことである。
【0035】
図5の論理積回路は、前記排他論理和信号cmp<0:15>の数に応じた数のN型トランジスタ(今の場合、16個のN型トランジスタである)N0〜N15と、図4で示す遅延回路DLY2により活性化信号ENに対して時間遅延を与えられた活性化信号EN2が入力される入力部14と、ラッチ回路LAT30と、論理積の演算結果である判定信号(HIT or MISS)が出力される出力部15とを有している。
【0036】
トランスミッションゲートTG22の入力部に配線D30が接続されている。また、当該配線D30と接地との間には、論理積演算用として複数(今の場合16個)のN型トランジスタN0〜N15が並列的に接続されている。ここで、各N型トランジスタN0〜N15のソースが接地側に接続されており、ドレインは配線D30側に接続されている。また、各N型トランジスタN0〜N15のゲートには、図3で示したXOR回路から出力される排他論理和信号cmp<0:15>が各々入力される。
【0037】
入力部14は、P型トランジスタP30のゲートに接続されている。ここで、P型トランジスタP30のソースは固定電源に接続されており、ドレインは配線D30に接続されている。
【0038】
さらに入力部14は、トランスミッションゲートTG22のN型ゲートに接続され、他方でインバータG30を介してトランスミッションゲートTG22のP型ゲートに接続されている。
【0039】
トランスミッションゲートTG22の出力部は、インバータG31,G32を介して出力部15に接続されている。ここで、前段のインバータG31の入力部と出力部との間には、帰還のインバータG33が並列に接続されている。
【0040】
上記構成において、トランスミッションゲートTG22、インバータG30、インバータG31およびインバータG33により、活性化信号EN2により制御されるラッチ回路LAT30を構成している。
【0041】
次に、TAG−RAMの主要部であるメモリ部MCと活性化信号生成用のカラムENCとセンスイネーブル信号SE(第一の制御信号として把握できる。)を生成するダミーカラムDCとから構成される、図6のTAG−RAM回路の具体的構成について説明する。
【0042】
ここで、通常TAG−RAMは次の新たなタグ情報ビットTMB<i>が読み出されるまで、以前のタグ情報ビットTMB<i>を保持するため、図2で示したXOR回路は、今判定したいタグ情報ビットTMB<i>が読み出された後に演算動作を開始する必要がある。そうしないと、以前のタグ情報ビットTMB<i>に基づいた演算結果がXOR回路から出力されてしまい、後段に位置するダイナミック回路である論理積回路が誤った判定信号を出力するからである。
【0043】
また、XOR回路の動作速度を考慮すると、XOR回路の演算動作の時期を制御する活性化信号ENは、タグ情報ビットTMB<i>と同時に供給されることが望ましい。
【0044】
したがって、図6で示した回路は、活性化信号ENをTAG−RAMに記憶されているタグ情報ビットTMB<i>の読み出しとほぼ同時期に生成されるように、活性化信号ENの読み出し経路がタグ情報ビットTMB<i>の読み出し経路を再現するように構成されている。
【0045】
図6において、まずメモリ部MCの構成について説明する。
【0046】
複数のメモリセルMが(m×n)のマトリックス状に配置されている。各メモリセルMの両サイドには、各列で共通のビット線bit<i>とbitc<i>とが接続されている。また、各メモリセルMには、各行で共通のワード線word<i>が接続されている。つまり、各ワード線word<i>にはm個、各ビット線bit<i>,bitc<i>にはn個のメモリセルMが接続されている。
【0047】
ここで、はじめの行列要素aij(i=0,1,・・・,m−1、j=0,1,・・・,n−1)に対応する各メモリセルMには、キャッシュメモリ1の各アドレス{0:k(=16m×n)}に対応するタグ情報ビットTMB<0>がそれぞれ記憶されており、次の行列要素bik(i=m,m+1,・・・,2m−1、k=0,1,・・・,n−1)に対応する各メモリセルMには、キャッシュメモリ1の各アドレス{0:k(=16m×n)}に対応するタグ情報ビットTMB<1>がそれぞれ記憶されている。そして、最終的に、行列要素cil(i=15m,15m+1,・・・,16m−1、l=0,1,・・・,n−1)に対応するの各メモリセルMには、キャッシュメモリ1の各アドレス{0:k(=16m×n)}に対応するタグ情報ビットTMB<15>がそれぞれ記憶されている。
【0048】
図6では簡略化して、キャッシュメモリ1の各アドレス{0:k}に対応するタグ情報ビットTMB<0>を記憶している各メモリセルMのみを図示している。以下、タグ情報ビットTMB<0>を記憶しているメモリセルMを含む回路部分について説明するが、他のタグ情報ビットTMB<1:15>を記憶しているメモリセルMを含む回路部分についても同じ構成を備えている。
【0049】
さて、各ビット線bit<0:m−1>の一方端は、P型トランジスタP40を介して固定電源に接続されており、他方端は、P型トランジスタP41を介してデータ線DATAに接続されている。また、各ビット線bitc<0:m−1>の一方端は、P型トランジスタP42を介して固定電源に接続されており、他方端は、P型トランジスタP43を介してデータ線DATACに接続されている。
【0050】
また、一のメモリセルMに接続されているビット線bit<i>とbitc<i>とを架橋するようにP型トランジスタP44が接続されており、各P型トランジスタP40,P42,P44のゲートには、共通でクロック信号CLKが入力される構成となっている。
【0051】
また、カラムアドレス信号Y<0:m−1>を送信する複数(今の場合、m本)の配線が配設されており、当該各配線は、対応する列に対して、それぞれインバータG41を介してP型トランジスタP41,P43のゲートに接続されている。
【0052】
また、データ線DATAはセンスアンプSAの一方の入力部に接続されており、他方の入力部にはデータ線DATACが接続されている。また、センスアンプSAの出力部は、比較器201を構成する図3で示したXOR回路の入力部12に接続される。
【0053】
ここで、図6では省略しているが、通常センスアンプSAの出力側には、タグ情報ビットTMB<i>を保持するためのラッチ回路およびデータ駆動用のドライバが接続される。当該ラッチ回路により、一度タグ情報ビットTMB<i>が読み出されると、次のタグ情報ビットTMB<i>が読み出されるまで、以前のタグ情報ビットTMB<i>が保持・出力され続ける。
【0054】
次に、活性化信号生成用であるカラムENCの構成について説明する。
【0055】
ワード線word<0:n−1>の数に対応した数(今の場合、n個)のメモリセルMHが一列に配列されており、一のメモリセルMHには一のワード線word<i>と、ビット線biten、bitencとが接続されている。
【0056】
ここで、各メモリセルMHからのデータが読み出されるときには、必ずビット線bitenが「H」レベルに、ビット線bitencが「L」レベルになるように、当該メモリセルMHの内部回路は設計されている。
【0057】
ビット線bitenの一方端は、P型トランジスタP45を介して固定電源に接続されており、他方端は、P型トランジスタP46を介してセンスアンプSA2の一方の入力部に接続されている。また、ビット線bitencの一方端は、P型トランジスタP47を介して固定電源に接続されており、他方端は、P型トランジスタP48を介してセンスアンプSA2の他方の入力部に接続されている。また、ビット線bitenとビット線bitencとを架橋するようにP型トランジスタP49が接続されている。
【0058】
ここで、P型トランジスタP45,P47,P49のゲートにクロック信号CLKが共通に入力され、P型トランジスタP46,P48のゲートは、それぞれ接地に接続されている。
【0059】
以上が、カラムENCの構成である。なお、センスアンプSA2の出力部は、比較器201を構成する図3で示したXOR回路の入力部10に接続される。
【0060】
次に、図6に示すセンスアンプSA,SA2を活性化させるセンスイネーブル信号SEを生成するダミーカラムDCの構成について説明する。
【0061】
ワード線word<0:n−1>の数に対応した数(今の場合、n個)のN型トランジスタN20が一列に配列されている。ここで、各N型トランジスタN20のゲートは一のワード線<i>に接続されており、各ドレインには、ダミービット線dbitが接続されており、各ソースは接地に接続されている。
【0062】
ダミービット線dbitの一方端は、P型トランジスタP50を介して固定電源に接続されており、他方端は、インバータG40の入力部に接続されている。また、当該インバータG40の出力部は、センスアンプSA,SA2の活性状態を制御するために、各センスアンプSA,SA2へと接続されている。
【0063】
なお、P型トランジスタP50のゲートにはクロック信号CLKが入力される。
【0064】
以上が、ダミーカラムDCの構成である。
【0065】
このように、TAG−RAMは、メモリ部MC、カラムENCおよびダミーカラムDCにより構成されている。
【0066】
次に、上記図6で図示した、活性化信号ENを生成のためのカラムENCで用いられている、センスアンプSA2の具体的構成を示した図7の回路構成について説明する。なお、上記でも説明したように、当該センスアンプSA2の活性状態/非活性状態を制御する信号として、他のセンスアンプSAと共通のセンスイネーブル信号SEを使用する。
【0067】
P型トランジスタP60とN型トランジスタN60とを直列に接続させることによりCMOSインバータC60を構成している。また、P型トランジスタP61とN型トランジスタN61とを直列に接続させることによりCMOSインバータC61を構成している。また、CMOSインバータC60とC61の入出力部を相互に接続させることにより、相互接続されたCMOSインバータを構成している。
【0068】
ここで、P型トランジスタP60、P61のソースは固定電源に接続されており、N型トランジスタN60,N61のソースはN型トランジスタN50を介して接地に接続されている。
【0069】
また、CMOSインバータC61の出力部は、P型トランジスタP62を介してビット線bitenに接続されており、CMOSインバータC60の出力部は、P型トランジスタP63を介してビット線bitencに接続されている。
【0070】
図6で示したインバータG40は、P型トランジスタP62,P63のゲート、およびN型トランジスタN50のゲートに、共通で接続されると共に、ANDゲートG42の一方の入力部に接続されている。なお、ANDゲートG42の他方の入力部は、CMOSインバータC60の出力部とインバータG43を介して接続されており、ANDゲートG42の出力部は、比較器201を構成する図3で示したXOR回路の入力部10に接続される。
【0071】
以上が、本実施の形態に係る半導体回路を構成している比較器201およびTAG−RAMの構成である。
【0072】
次に、図8に示すタイミングチャートに基づいて、上記各構成の動作について説明する。以下では、参照タグ情報TCを構成する所定のi番目のビットである参照ビットTCB<i>、およびタグ情報TMを構成する所定のi番目のビットであるタグ情報ビットTMB<i>について言及するが、他の参照ビットTCB<0・・i−1,i+1・・15>、タグ情報ビットTMB<0・・i−1,i+1・・15>についても同様の議論が成立する。
【0073】
<回路の動作説明>
はじめに、比較器201を構成する前段に位置する、図3で示したXOR回路の動作について説明する。
【0074】
まず、クロック信号CLKの立上りエッジに同期して、CPUからアドレスデータ2が出力され、アドレスデータ2の上位ビットである参照タグ情報TCを構成する参照ビットTCB<i>が、各XOR回路に入力される。また、これと同時に、アドレスデータ2の下位ビットであるIndexが図2で示したTAG−RAMに入力され、タグ情報ビットTMB<i>の読み出しを開始する。
【0075】
ここで、タグ情報ビットTMB<i>が読み出されるまでは、各XOR回路の出力部13から出力される排他論理和信号cmp<i>として、「L」レベルの信号を保持しなければならない。
【0076】
これは、各XOR回路の後段に接続されている図5で示した論理積回路がダイナミック回路であるため、演算処理を開始するまではP型トランジスタP30により配線D30をプリチャージすることにより、次の判定処理に備えておく必要あるからである。
【0077】
つまり、中間結果である排他論理和信号cmp<i>として一旦「H」レベルが入力されてしまうとP型トランジスタP30によるプリチャージが有効でなくなり、配線D30が「L」に設定されてしまうからである。
【0078】
したがって、その後、論理積回路が活性化状態となって、本来の演算結果である排他論理和信号cmp<i>が「L」または「H」レベルになったとしても、出力部15からは判定信号として「L」レベルが常に出力され、各排他論理和信号cmp<i>に応じた正常な論理積の演算処理を行うことができなくなる。
【0079】
そこで、図8に示すように、タグ情報ビットTMB<i>が読み出されるまでの間、活性化信号ENを「L」レベルに固定させておく。
【0080】
こうすることにより、図3で示したP型トランジスタP20はオン状態となり、排他論理和信号cmp<i>として「L」レベルが保持される(XOR回路の非活性状態)。よって、タグ情報ビットTMB<i>が読み出されるまでの間の、論理積回路のP型トランジスタP30による配線D30のプリチャージを有効とすることができ、その後、当該論理積回路が活性化状態となったときに、本来の演算結果である排他論理和信号cmp<i>に応じた正常な論理積の演算処理を行うことができる。
【0081】
さて、図2で示すTAG−RAMにIndexが入力されてから時刻Δt1後に、当該TAG−RAMからタグ情報ビットTMB<i>が出力される。また、これとほぼ同時に、「H」レベルの活性化信号ENが出力される。
【0082】
これにより、図3で示したP型トランジスタP20のゲートには「H」レベルの信号が入力され、当該P型トランジスタP20はオフ状態となり、タグ情報ビットTMB<i>と参照ビットTCB<i>との排他論理和演算処理が開始される(XOR回路の活性状態)。
【0083】
例えば、当該状態において、タグ情報ビットTMB<i>、参照ビットTCB<i>ともに「H」レベルである場合には、NORゲートG21の一方の入力部には「L」レベルの信号、他方の入力部には「H」レベルの信号が入力されるので、当該NORゲートG21の出力部からは「L」レベルの信号が出力される。したがって、トランスミッションゲートTG20はオフ状態となる。
【0084】
これに対して、NORゲートG22の一方の入力部には「L」レベルの信号、他方の入力部には「L」レベルの信号が入力されるので、当該NORゲートG22の出力部からは「H」レベルの信号が出力される。したがって、トランスミッションゲートTG21はオン状態となる。よって、タグ情報ビットTMB<i>はインバータG25により反転されるので、出力部13からは、「L」レベルの排他論理和信号cmp<i>が出力される。
【0085】
他方、活性化信号ENが「H」レベルで、タグ情報ビットTMB<i>、参照ビットTCB<i>ともに「L」レベルである場合には、NORゲートG22の一方の入力部には「L」レベルの信号、他方の入力部には「H」レベルの信号が入力されるので、当該NORゲートG22の出力部からは「L」レベルの信号が出力される。したがって、トランスミッションゲートTG21はオフ状態となる。
【0086】
これに対して、NORゲートG21の一方の入力部には「L」レベルの信号、他方の入力部には「L」レベルの信号が入力されるので、当該NORゲートG21の出力部からは「H」レベルの信号が出力される。したがって、トランスミッションゲートTG20はオン状態となる。よって、タグ情報ビットTMB<i>はインバータG24,G25により2度反転されるので、出力部13からは、「L」レベルの排他論理和信号cmp<i>が出力される。
【0087】
次に、活性化信号ENが「H」レベルで、タグ情報ビットTMB<i>が「H」レベルであり、参照ビットTCB<i>が「L」レベルである場合には、NORゲートG22の一方の入力部には「L」レベルの信号、他方の入力部には「H」レベルの信号が入力されるので、当該NORゲートG22の出力部からは「L」レベルの信号が出力される。したがって、トランスミッションゲートTG21はオフ状態となる。
【0088】
これに対して、NORゲートG21の一方の入力部には「L」レベルの信号、他方の入力部には「L」レベルの信号が入力されるので、当該NORゲートG21の出力部からは「H」レベルの信号が出力される。したがって、トランスミッションゲートTG20はオン状態となる。よって、タグ情報ビットTMB<i>はインバータG24,G25により2度反転されるので、出力部13からは、「H」レベルの排他論理和信号cmp<i>が出力される。
【0089】
また、活性化信号ENが「H」レベルで、タグ情報ビットTMB<i>が「L」レベルであり、参照ビットTCB<i>が「H」レベルである場合には、NORゲートG21の一方の入力部には「L」レベルの信号、他方の入力部には「H」レベルの信号が入力されるので、当該NORゲートG21の出力部からは「L」レベルの信号が出力される。したがって、トランスミッションゲートTG20はオフ状態となる。
【0090】
これに対して、NORゲートG22の一方の入力部には「L」レベルの信号、他方の入力部には「L」レベルの信号が入力されるので、当該NORゲートG22の出力部からは「H」レベルの信号が出力される。したがって、トランスミッションゲートTG21はオン状態となる。よって、タグ情報ビットTMB<i>はインバータG24により反転されるので、出力部13からは、「H」レベルの排他論理和信号cmp<i>が出力される。
【0091】
以上から分かるように、タグ情報ビットTMB<i>と参照ビットTCB<i>のレベルが一致するときは「L」レベルの排他論理和信号cmp<i>が出力され、一致しないときには「H」レベルの排他論理和信号cmp<i>が出力される。
【0092】
次に、比較器201を構成する後段に位置する、図5の論理積回路の動作について説明する。
【0093】
図3のXOR回路にて、タグ情報ビットTMB<i>が入力されてから排他論理和信号cmp<i>が確定するまでに時間Δt2かかるとすると、図4において、当該Δt2の時間遅延値を有する遅延回路DLY2を配置する。そうすると、活性化信号EN2は、活性化信号ENに対して時間遅延Δt2を有することとなる。
【0094】
したがって、当該活性化信号EN2が立ち上がるまでは(図3のXOR回路にて排他論理和信号cmp<i>が確定するまでの期間は)、活性化信号EN2は「L」レベルなので、論理積回路のP型トランジスタP30はオン状態となっており、配線D30のプリチャージを行っている(論理積回路の非活性状態)。
【0095】
また、活性化信号EN2が「L」レベルの間は、ラッチ回路LAT30のトランスミッションゲートTG22はオフ状態となるので、判定信号は以前の値を保持している。
【0096】
次に、タグ情報ビットTMB<i>が読み出されてから時間Δt2経過し、活性化信号EN2が立ち上がり「H」レベルに設定されると、P型トランジスタP30がオフ状態となり、トランスミッションゲートTG22はオン状態となる。
【0097】
当該状態において、前段で確定した排他論理和信号cmp<0:15>が全て「L」レベルであるとき(すなわち、タグ情報TMと参照タグ情報TCとが一致するとき)は、図5で示した論理積回路を構成するすべてのN型トランジスタN0〜N15がオフ状態となるので、配線D30の電位は「H」レベルのままとなる。
【0098】
したがって、今トランスミッションゲートTG22はオン状態であるので、当該「H」レベルがラッチ回路LAT30に取り込まれると共に、インバータG31,G32を経て出力部15から判定信号が「H」レベルで出力される。つまり、タグ情報TMと参照タグ情報TCが完全に一致する場合には(HITの場合には)、判定信号として「H」レベルの信号が出力される。
【0099】
これに対して、前段で確定した排他論理和信号cmp<0:15>のうち、一つでも「H」レベルの信号がある場合(すなわち、タグ情報TMと参照タグ情報TCとが一致しないとき)には、当該「H」レベルの信号が入力されるN型トランジスタはオン状態となるので、配線D30の電位は接地電位、つまり「L」レベルへと変化する。
【0100】
したがって、今トランスミッションゲートTG22はオン状態であるので、当該「L」レベルがラッチ回路LAT30に取り込まれると共に、インバータG31,G32を経て出力部15から判定信号が「L」レベルで出力される。つまり、タグ情報TMと参照タグ情報TCが不一致の場合には(MISSの場合には)、判定信号として「L」レベルの信号が出力される。
【0101】
以上により、図3,4,5に示すXOR回路、論理積回路等により構成される比較器201により、タグ情報TMと参照タグ情報TCとの比較処理が正常に実行される。ここで、論理積回路を最適なタイミングで活性状態へと変化させるために、図4の遅延回路DLY2として時間Δt2の時間遅延を形成することができるものを採用したが、論理積回路での確実な演算動作を確保するために、これ以上の時間遅延を有する遅延回路DLY2を採用してもかまわない。
【0102】
さて、上記でも説明したように、図5で示した論理積回路としてダイナミック回路を用いているので、図2で示したXOR回路は、タグ情報ビットTMB<i>が読み出されてから活性状態へと変化する必要がある。さらには、動作速度を考慮すると、活性化信号ENはタグ情報ビットTMB<i>と同時に供給されることが望ましい。そこで、当該動作を可能にするために構成されたのが図6で示したTAG−RAM回路である。
【0103】
以下に、図6で示したTAG−RAM回路の動作について説明する。なお、X<0>〜X<n−1>はロウアドレス信号を示しており、Y<0>〜Y<m−1>はカラムアドレス信号を示している。当該ロウアドレス信号とカラムアドレス信号とにより所定のメモリセルMが選択され、タグ情報ビットTMB<i>が読み出される。また、メモリ部MCについては、タグ情報ビットTMB<0>が記憶されているブロックについて説明するが、他のタグ情報ビットTMB<1:15>が記憶されているブロックについても同様な動作が成立する。
【0104】
はじめに、図8で示しているようにクロック信号CLKが「L」レベルのときは、メモリ部MCにおいて、各P型トランジスタP40,P42,P44はオン状態となるので、すべてのビット線bit<0:m−1>、bitc<0:m−1>は、固定電源により「H」レベルにプリチャージされる。
【0105】
また、ダミーカラムDCにおいてもクロック信号CLKが「L」のときは、P型トランジスタP50がオン状態となるので、ダミービット線dbitにおいても、固定電源により「H」レベルにプリチャージされる。これにより、センスイネーブル信号SEは「L」レベルに設定され、センスアンプSA,SA2を非活性状態とさせる。
【0106】
次に、カラムENCの動作について説明する。
【0107】
クロック信号CLKが「L」レベルのときには、図6において、P型トランジスタP45,P47,P49はオン状態となるので、固定電源によりビット線biten、bitencは「H」電位にプリチャージされる。ここで、P型トランジスタP46,P48のゲートは接地に接続されているので、常にオン状態である。
【0108】
さらに、クロック信号CLKが「L」レベルのときには、センスイネーブル信号SEは「L」レベルとなるので、図7において、P型トランジスタP62,P63はオン状態となり、N型トランジスタN50はオフ状態となり、ANDゲートG42の両入力部には「L」レベルの信号が入力される。
【0109】
したがって、クロック信号CLKが「L」レベルのときには、ANDゲートG42の出力部から「L」レベルの活性化信号ENが出力される。なお、クロック信号CLKが立ち上がっても、センスイネーブル信号SEが「L」レベルの間は、ANDゲートG42からは「L」レベルの活性化信号ENが出力される。
【0110】
これにより、上記でも説明したように、図3で示したP型トランジスタP20はオン状態となり、排他論理和信号cmp<i>として「L」レベルが保持される(つまり、XOR回路を非活性状態と制御する)。よって、タグ情報ビットTMB<i>が読み出されるまでの間の論理積回路のP型トランジスタP30による配線D30のプリチャージを有効とすることができ、その後、当該論理積回路が活性化状態となったときに、本来の演算結果である排他論理和信号cmp<i>に応じた正常な論理積の演算処理を行うことができる。
【0111】
次に、クロック信号CLKが「H」レベルに立ち上がると、各P型トランジスタP40,P42,P44,P45、P47,P49,P50がオフ状態となり、全ビット線のプリチャージが中断され、タグ情報ビットTMB<0>の読み出し動作が開始される。
【0112】
はじめに、メモリ部MCの動作について説明する。
【0113】
当該、クロック信号CLKが「H」レベルである期間に、例えば「H」レベルのロウアドレス信号X<0>が設定されると、バッファ20を介してワード線word<0>の電位は「H」レベルとなる。これにより、ワード線word<0>に接続されている全てのメモリセルMに記憶されているデータが、それぞれのビット線bit<0:m−1>、bitc<0:m−1>に読み出される。
【0114】
次に、例えば「L」レベルのカラムアドレス信号Y<0>が設定されると、ビット線bit<0>に接続されているP型トランジスタP41、およびビット線bitc<0>に接続されているP型トランジスタP43が、それぞれオン状態となるので、ビット線bit<0>の信号がデータ線DATAに伝送され、ビット線bitc<0>の信号がデータ線DATACに伝送される。
【0115】
その後、「H」レベルのセンスイネーブル信号SEの入力を機に、センスアンプSAは活性状態となり、タグ情報ビットTMB<0>の出力がなされる。
【0116】
次に、ダミーカラムDCの動作について説明する。
【0117】
ワード線word<0>が「H」レベルの電位になると、当該ワード線word<0>に接続されているN型トランジスタN20はオン状態となる。したがって、「H」レベルであったダミービット線dbitの電気が、N型トランジスタN20を介して接地電位への放電が開始され、時間Δt1後にダミービット線dbitの電位は「L」レベルへと変化する。よって、クロック信号CLKが立ち上がってから時刻Δt1後に、インバータG40を介してセンスイネーブル信号SEは「H」レベルとなり、センスアンプSA,SA2を活性状態へと変化させる。
【0118】
ここで、メモリセルMから読み出されるデータにより、各センスアンプSAへ接続される各データ線DATA、DATAC間の電位差が十分に大きくなったときに、センスイネーブル信号SEが「H」レベルとなるように、N型トランジスタN20のサイズを決めておくと良い。
【0119】
次に、カラムENCの動作について説明する。
【0120】
クロック信号CLKが立ち上がり、上記のように「H」レベルのロウアドレス信号X<0>が設定されると、バッファ20を介してワード線word<0>の電位は「H」レベルとなり、ワード線word<0>に接続されているメモリセルMHが選択される。すると、当該メモリセルMHの内部回路により、ビット線bitenが「H」レベルとなり、ビット線bitencが「L」レベルとなる。
【0121】
次に、当該状態において、クロック信号CLKが立ち上がってから時刻Δt1後に、センスイネーブル信号SEが立ち上がり「H」レベルとなると、図7において、P型トランジスタP62,P63がオフ状態となり、N型トランジスタN50がオン状態となるので、ANDゲートG42の一方の入力部には「H」レベルのセンスイネーブル信号SEが入力され、他方の入力部には増幅された「H」レベルの信号が入力される。
【0122】
したがって、ANDゲートG42の出力部から「H」レベルの活性化信号ENが出力されることとなる。
【0123】
以上のように、センスイネーブル信号SEが「H」レベルとなると、センスアンプSA、SA2は同時に活性状態となり、センスアンプSAからは新たに読み出されたタグ情報ビットTMB<0>が、またセンスアンプSA2からは「H」レベルの活性化信号ENが同時に出力される。
【0124】
その後、クロック信号CLKが「L」レベルになると、ダミービット線dbitは再びプリチャージされ「H」レベルに変化する。これに伴って、センスイネーブル信号SEが「L」レベルとなり、センスアンプSA,SA2は非活性状態となる。
【0125】
また、カラムENCにおいても、クロック信号CLKが「L」レベルとなると、ビット線biten、bitencが「H」レベルにプリチャージされるので、活性化信号ENは再び「L」レベルに設定される。なお、これにより活性化信号EN2も「L」レベルと変移するので、図5で示した論理積回路は非活性状態(プリチャージ状態)となり、これと同時に、ラッチ回路LAT30の入力トランスミッションゲートTG22はオフとなり、当該ラッチ回路LAT30は判定信号を保持する。
【0126】
以上が、本実施の形態に係る半導体回路を構成する比較器201、TAG−RAM等の一連の動作である。
【0127】
本実施の形態に係る半導体回路によれば、センスイネーブル信号SEを用いてセンスアンプSA,SA2を同時に活性状態を制御しているので、簡易な回路設計により、タグ情報ビットTMB<i>と同時に「H」レベルの活性化信号ENも、比較器201に対して供給することができる。
【0128】
つまり、タグ情報ビットTMB<i>がXOR回路に入力されると同時に、XOR回路にて、当該タグ情報ビットTMB<i>に基づく演算処理を行うことができる。したがって、ダイナミック回路である論理積回路の誤動作を防止することができる。さらに、タグ情報ビットTMB<i>がXOR回路に入力されてから当該XOR回路での演算開始までのタイムマージンを最小限に抑えることができるので、XOR回路での演算処理の時間を短縮させることができる。
【0129】
また、活性化信号ENに基づいて形成される活性化信号SE2により論理積回路の活性状態/非活性状態を制御しているので、当該活性化信号EN2の生成に当たりXOR回路での演算に要する時間を考慮するだけでいいので、簡単な回路設計により、最適なタイミングで論理積回路を活性化させる活性化信号EN2を生成することができる。
【0130】
さらに、遅延回路DLY2により、活性化信号EN2が有する活性化信号ENに対する遅延時間を、XOR回路での演算に要する時間と同じに設定することにより、論理積回路における演算開始までのタイムマージンを最小限に抑えることができ、当該論理積回路における判定結果までの時間短縮につながる。
【0131】
また、論理積回路にダイナミック回路を用いているので、少ない回路素子により当該論理積回路を構成することができるので、スタティック回路のように多入力論理ゲートを多数用いる必要がなくなる。したがって、本実施の形態に係る比較器201では、高速な判定処理を行うことができる。
【0132】
<実施の形態2>
実施の形態1では、XOR回路出力の途中結果により、後段のダイナミック回路である論理積回路が誤動作しないように、XOR回路の動作を活性化信号ENにより制御していた。これにより、当該XOR回路は複雑な構成となってしまっていた。
【0133】
そこで、本実施の形態では、活性化信号ENによる制御を不要とすることで、XOR回路を簡略化することを目的とする。図9,10に本実施の形態に係る比較器201の構成を図示する。なお、TAG−RAMは、例えば図6,7で示した構成のものを採用することとする。
【0134】
図9は、実施の形態2に係る比較器201を構成する、前段に位置するXOR回路であり、図10は、実施の形態2に係る比較器201を構成する、後段に位置するダイナミック回路である論理積回路である。
【0135】
以下より、各図の回路構成について具体的に説明する。
【0136】
<回路構成>
まず、タグ情報ビットTMB<i>と参照ビットTCB<i>との排他論理和演算処理を行う、図9のXOR回路の構成について説明する。なお、今タグ情報TMおよび参照タグ情報TCが16ビットのビット列を想定しているので、当該XOR回路は、各ビットに応じたものが16個設けられる。
【0137】
図9のXOR回路は、2つの入力部31,32と1つの出力部33とを有している。つまり、参照ビットTCB<i>が入力される入力部31と、タグ情報ビットTMB<i>が入力される入力部32と、排他論理和信号cmp<i>が出力される出力部33とを有している。
【0138】
入力部31は、インバータG45を介してトランスミッションゲートTG31のP型ゲートに接続される一方で、同じくインバータG45を介して当該トランスミッションゲートTG30のN型ゲートに接続されている。
【0139】
さらに、入力部31はインバータG45,G46を介してトランスミッションゲートTG31のN型ゲートに接続される一方で、同じくインバータG45,G46を介して当該トランスミッションゲートTG30のP型ゲートに接続されている。
【0140】
入力部32は、トランスミッションゲートTG31の入力部に直接、接続される一方で、インバータG47を介してトランスミッションゲートTG30の入力部に接続されている。
【0141】
また、トランスミッションゲートTG30の出力部およびトランスミッションゲートTG31の出力部は共に、インバータG48を介して出力部33に接続されている。
【0142】
次に、上記図9で示した各XOR回路から出力される排他論理和信号cmp<i>の論理積を取る回路であり、ダイナミック回路である図10の論理積回路の構成について説明する。ここで、活性化信号ENは、図4で示したように遅延回路DLY2を経ることにより、時間遅延を有する活性化信号EN2に変換され、その後論理積回路に入力される。
【0143】
さて図10において、入力部44はP型トランジスタP80のゲートに接続されており、入力部45はN型トランジスタN70のゲートに接続されている。ここで、P型トランジスタP80のソースは固定電源に接続されており、ドレインは配線D80に接続されている。また、N型トランジスタN70のソースは接地に接続されており、ドレインは配線D81に接続されている。
【0144】
次に、配線D80はトランスミッションゲートTG80の入力部に接続されている。また、配線D80と配線D81とを接続するように、並列に複数(今の場合16個)のN型トランジスタN80〜N95が接続されている。ここで、各N型トランジスタN80〜N95のソースが配線D81側に接続されており、ドレインは配線D80側に接続されている。また、各N型トランジスタN80〜N95のゲートには、図9で示したXOR回路から出力される排他論理和信号cmp<0:15>が各々入力する。
【0145】
さらに入力部44は、トランスミッションゲートTG80のN型ゲートに接続され、他方でインバータG80を介してトランスミッションゲートTG80のP型ゲートに接続されている。
【0146】
トランスミッションゲートTG80の出力部は、インバータG81,G82を介して、論理積の演算結果である判定信号(HIT or MISS)が出力される出力部46に接続されている。ここで、前段のインバータG81の入力部と出力部との間には、帰還のインバータG83が並列に接続されている。
【0147】
上記構成において、トランスミッションゲートTG80、インバータG80,G81,G83により、ラッチ回路LAT80を構成している。
【0148】
以上のように、本実施の形態に係る比較器201では、実施の形態1と異なり、活性化信号ENによるXOR回路の制御を行わないため、図10で示した論理積回路に新たにN型トランジスタN70を設けている。
【0149】
次に、図11に示すタイミングチャートに基づいて、上記各回路の動作について説明する。以下では、参照タグ情報TCを構成する所定のi番目のビットである参照ビットTCB<i>、およびタグ情報TMを構成する所定のi番目のビットであるタグ情報ビットTMB<i>について言及するが、他の参照ビットTCB<0・・i−1,i+1・・15>、タグ情報ビットTMB<0・・i−1,i+1・・15>についても同様の議論が成立する。
【0150】
<回路の動作説明>
はじめに、図9のXOR回路の動作について説明する。
【0151】
まず、クロック信号CLKの立上りエッジに同期して、CPUからアドレスデータ2が出力され、アドレスデータ2の上位ビットである参照タグ情報TCを構成する参照ビットTCB<i>は、図9に示した各XOR回路に入力される。また同時に、アドレスデータ2の下位ビットであるIndexは図2で示したTAG−RAMに入力され、タグ情報ビットTMB<i>の読み出しを開始させる。
【0152】
さて、図2で示すTAG−RAMにIndexが入力されてから時刻Δt1後に、当該TAG−RAMからタグ情報ビットTMB<i>が出力される。なお、これとほぼ同時に、「H」レベルの活性化信号ENが出力される。
【0153】
ここで、通常図6で示したセンスアンプSAの後段には、図示していないがラッチ回路とドライバとが設けられているので、クロック信号CLKの立ち上がりから時刻Δt1までは、タグ情報ビットTMB<i>として前サイクルのデータが保持・出力される。
【0154】
したがって、排他論理和信号cmp<i>としては、以前のタグ情報ビットTMB<i>に基づいた演算結果が出力される。しかし、Δt1後には、今比較したい正規のタグ情報ビットTMB<i>が入力部32より入力されてくるので、当該時間後には、排他論理和信号cmp<i>としては、現タグ情報ビットTMB<i>に基づいた演算結果が出力される。
【0155】
さて例えば、現タグ情報ビットTMB<i>、参照ビットTCB<i>ともに「H」レベルである場合には、入力部31より入力される「H」レベルの信号により、トランスミッションゲートTG30はオフ状態となり、トランスミッションゲートTG31はオン状態となる。
【0156】
したがって、「H」レベルである現タグ情報ビットTMB<i>は、トランスミッションゲートTG31およびインバータG48を経ることにより、出力部33からは、「L」レベルの排他論理和信号cmp<i>が出力される。
【0157】
他方、現タグ情報ビットTMB<i>、参照ビットTCB<i>ともに「L」レベルである場合には、入力部31より入力される「L」レベルの信号により、トランスミッションゲートTG31はオフ状態となり、トランスミッションゲートTG30はオン状態となる。
【0158】
したがって、「L」レベルである現タグ情報ビットTMB<i>は、インバータG47、トランスミッションゲートTG30およびインバータG48を経ることにより、出力部33からは、「L」レベルの排他論理和信号cmp<i>が出力される。
【0159】
次に、現タグ情報ビットTMB<i>が「H」レベルであり、参照ビットTCB<i>が「L」レベルである場合には、入力部31より入力される「L」レベルの信号により、トランスミッションゲートTG31はオフ状態となり、トランスミッションゲートTG30はオン状態となる。
【0160】
したがって、「H」レベルである現タグ情報ビットTMB<i>は、インバータG47、トランスミッションゲートTG30およびインバータG48を経ることにより、出力部33からは、「H」レベルの排他論理和信号cmp<i>が出力される。
【0161】
また、現タグ情報ビットTMB<i>が「L」レベルであり、参照ビットTCB<i>が「H」レベルである場合には、入力部31より入力される「H」レベルの信号により、トランスミッションゲートTG30はオフ状態となり、トランスミッションゲートTG31はオン状態となる。
【0162】
したがって、「L」レベルである現タグ情報ビットTMB<i>は、トランスミッションゲートTG31およびインバータG48を経ることにより、出力部33からは、「H」レベルの排他論理和信号cmp<i>が出力される。
【0163】
以上から分かるように、実施の形態1と同様、現タグ情報ビットTMB<i>と参照ビットTCB<i>のレベルが一致するときは「L」レベルの排他論理和信号cmp<i>が出力され、一致しないときには「H」レベルの排他論理和信号cmp<i>が出力される。
【0164】
次に、図10の論理積回路の動作について説明する。
【0165】
図9のXOR回路にて、タグ情報ビットTMB<i>が読み出されてから排他論理和信号cmp<i>が確定するまでに時間Δt2かかるとすると、図4において、当該Δt2の時間遅延値を有する遅延回路DLY2を配置する。そうすると、活性化信号ENに対するΔt2の時間遅延を有する活性化信号EN2が生成される。
【0166】
したがって、当該活性化信号EN2が立ち上がるまで、つまり図9のXOR回路にて排他論理和信号cmp<i>が確定するまでは、活性化信号EN2は「L」レベルなので、P型トランジスタP80はオン状態となっており、配線D30のプリチャージを行っている。なお、このときN型トランジスタN70はオフ状態である(非活性状態)。
【0167】
また、活性化信号EN2が「L」レベルの間は、ラッチ回路LAT80のトランスミッションゲートTG80はオフ状態となるので、判定信号は以前の値を保持する。
【0168】
次に、タグ情報ビットTMB<i>が読み出されてから時間Δt2が経過し、活性化信号EN2が立ち上がり「H」レベルに設定されると、P型トランジスタP80がオフ状態となり、トランスミッションゲートTG80はオン状態となる。また、このときN型トランジスタN70はオン状態となり、配線D81は接地電位となる(活性状態)。
【0169】
当該状態において、前段で確定した排他論理和信号cmp<0:15>が全て「L」レベルであるとき(すなわち、タグ情報TMと参照タグ情報TCとが一致するとき)は、図10で示した論理積回路を構成するすべてのN型トランジスタN80〜N95がオフ状態となるので、配線D80の電位は「H」レベルのままとなる。
【0170】
したがって、今トランスミッションゲートTG80はオン状態であるので、当該「H」レベルがラッチ回路LAT80に取り込まれると共に、インバータG81,G82を経て出力部46から判定信号が「H」レベルで出力される。つまり、タグ情報TMと参照タグ情報TCが完全に一致する場合には(HITの場合には)、判定信号として「H」レベルの信号が出力される。
【0171】
これに対して、前段のXOR回路で確定した排他論理和信号cmp<0:15>のうち、一つでも「H」レベルの信号がある場合(すなわち、タグ情報TMと参照タグ情報TCとが一致しないとき)には、当該「H」レベルの信号が入力されるN型トランジスタN80〜N95はオン状態となるので、配線D80の電位は接地電位、つまり「L」レベルへと変化する。
【0172】
したがって、今トランスミッションゲートTG80はオン状態であるので、当該「L」レベルがラッチ回路LAT80に取り込まれると共に、インバータG81,G82を経て出力部46から判定信号が「L」レベルで出力される。つまり、タグ情報TMと参照タグ情報TCが不一致の場合には(MISSの場合には)、判定信号として「L」レベルの信号が出力される。
【0173】
このようにして、本実施の形態に係る比較器201においても正常な判定処理を行うことができる。
【0174】
また、本実施の形態に係る論理積回路では、活性化信号EN2により制御される、導電形式の異なる2つのトランジスタP80,N70により、当該論理積回路の活性状態/非活性状態とを制御しているので、XOR回路での活性化を制御する必要がなくなる。
【0175】
したがって、本実施の形態に係る各XOR回路では、実施の形態1に係る各XOR回路に比べて、NORゲートが2個、インバータが1個、P型トランジスタ1個不要となる。よって、今の場合16ビットのタグ情報TMと参照タグ情報TCとの比較を考えてきたので、この場合XOR回路が16個必要となり、4×16個の回路素子を削除することができる。
【0176】
これにより、回路全体の面積を縮小化させることができ、また消費電力の低減も図ることができる。
【0177】
また、実施の形態1で説明したように、XOR回路の動作を最速化させるためには、タグ情報TMと活性化信号ENとを同時に供給させる必要があるが、以前のタグ情報TMに基づく排他論理和信号cmpを、より確実に出力させないためには、活性化信号ENをタグ情報TMの読み出し時より若干遅らせて供給する必要がある。つまり、実施の形態1では、上記理由に基づく若干のタイムマージンを要する場合があるのである。
【0178】
しかし、実施の形態2に係るXOR回路では、活性化信号ENでの制御を要していないので、上記タイムマージンを必要としないので、XOR回路における全体として演算処理時間を短縮することができる。
【0179】
<実施の形態3>
実施の形態1において、比較器201でのHIT/MISSの判定が必要なのは、TAG−RAMからタグ情報TMを読み出すときである。したがって、TAG−RAMへタグ情報TMを書き込むときに、比較器201を動作させなければ消費電力を低減させることができる。
【0180】
そこで、本実施の形態では、TAG−RAMからタグ情報TMを読み出すときのみに比較器201を動作させることができる半導体回路を提供することを目的とする。
【0181】
図12は、TAG−RAMからタグ情報TMを読み出すときのみに、比較器201を動作させることを可能にする、TAG−RAMの回路を示す図である。図12に示すTAG−RAMは、図6で示したTAG−RAMとほぼ同じであるが、以下の点において異なる。なお、センスアンプSA2の具体的構成として、本実施の形態においても図7で示した構成を採用する。
【0182】
上記両図の相違点とは、ダミーカラムDCにおいて、ダミービット線dbitの他方端に接続されているのがインバータG40ではなく(図6)、ANDゲートG100であるという点である(図12)。
【0183】
ANDゲートG100の一方の入力部には、当該入力部の手前で信号が反転するような構造で上記のダミービット線dbitが接続され、他方の入力部には、TAG−RAMからのタグ情報TMの読み出し/書き込みの時期に応じた制御信号REを伝送する配線が接続されている。なお、図6で示したインバータG40の出力部と同様に、センスアンプSA,SA2の活性化は、当該ANDゲートG100の出力部からのセンスイネーブル信号SEにより制御されている。
【0184】
図12に示したTAG−RAM回路において、タグ情報TMの読み出し時には制御信号REとして「H」レベルの信号を送出する。すると、タグ情報TMの読み出し時には、所定のワード線word<i>と接続されているN型トランジスタN20がオン状態となり、ダミービット線dbitが接地電位となるので、ANDゲートG100の出力部からは「H」レベルのセンスイネーブル信号SEが出力さる。以後の動作は、実施の形態1で説明した動作と同じなので、ここでの説明は省略する。
【0185】
さて、これに対して、タグ情報TMの書き込み時には制御信号REとして「L」レベルの信号を送出する。そうすると、ANDゲートG100の出力部からは「L」レベルのセンスイネーブル信号SEが出力される。これにより、センスアンプSA,SA2はともに非活性状態へと変化する。これにより、センスアンプSA2の出力からは、図7の構成からも分かるように「L」レベルの活性化信号ENが出力される。
【0186】
したがって、図3で示したXOR回路では、各トランスミッションゲートTG20,TG21はオフの状態が維持され、P型トランジスタP20がオン状態となるので(非活性状態)、演算処理を行わず、排他論理和信号cmpは「L」レベルとなる。
【0187】
また、図4で示した遅延回路DLY2により、活性化信号EN2は活性化信号ENに基づいて生成されるので、当該タグ情報TMの書き込時には、活性化信号EN2も「L」レベルとなるので、図5,10で示した論理積回路においても演算処理を行わず、プリチャージ状態を保持することとなる(非活性状態)。
【0188】
以上のように、TAG−RAMからのタグ情報TMの書き込み時には、実施の形態1,2に係る比較器201を構成するXOR回路、論理積回路の各回路の動作を停止させることができるので、比較器201の低消費電力化を可能とすることができる。
【0189】
<実施の形態4>
上記でも説明したように、必要とするデータを読み出すときに、CPUからアドレスデータ2が出力されると、キャッシュメモリ1の所定のアドレスからタグ情報TMとデータとが同時に読み出され、当該読み出されたデータがCPUが必要とするデータであるか否かの判定を行う。
【0190】
その結果、判定信号がHIT(「H」レベル)であった場合には、読み出されたデータをCPUが利用する。したがって、判定信号がHIT(「H」レベル)であることを検出して、CPUにデータを取り込むように制御するのが一般的である。
【0191】
ところで、図5および図10で示した論理積回路を構成するラッチ回路LAT30、LAT80は、新たな判定信号が入力されるまでは前回の判定信号の結果を保持・出力している。
【0192】
したがって、前回の判定信号がHIT(「H」レベル)であった場合には、CPUは、今回判定すべき新たな判定信号が出力されてくるのを待たずに、前回の判定信号によりデータを取り込むと判断してしまう恐れがあった。
【0193】
そこで、本実施の形態に係る半導体回路を構成する比較器201では、データの読み出しを開始する度に、初期化設定により一定期間、判定信号が「L」レベルとなるように構成されている。
【0194】
図13は、初期化およびダイナミック回路である論理積回路の活性化を制御する活性化信号を生成するための回路を示す図である。また、図14は、本実施の形態に係るダイナミック回路である論理積回路を示す図である。以下、図13,14の構成について説明する。ここで、図13に示す回路は、図14に示す論理積回路の前段に位置している。
【0195】
<回路構成>
図13に示す回路は、クロック信号CLKの立ち上がり時を機に一定期間のパルスを発生するパルス発生器G111とSRラッチ回路G110とで構成されている。
【0196】
パルス発生器G111は、ANDゲートG112の一方の入力部には、クロック信号CLKが直接入力され、他方の入力部には、遅延回路DLY4とインバータG113とを介してクロック信号CLKが入力されるように、構成されている。ここで、パルス発生器G111におけるパルスの発生期間は、遅延回路DLY4の遅延値により決定される。
【0197】
SRラッチ回路G110においては、Set入力部には、図4で示した遅延回路DLY2から出力される活性化信号EN2が入力され、Reset入力部にはパルス発生器G111の出力(ANDゲートG112の出力)からの信号が入力され、Q出力部からは活性化信号EN4が図14に示す後段の論理積回路に向けて出力される。したがって、本実施の形態では、論理積回路の活性状態を制御する信号として、活性化信号EN4が入力される。
【0198】
ここで、活性化信号EN2は、実施の形態1で説明したように、活性化信号ENに基づいて遅延回路DLY2により生成され、XOR回路にて排他論理和信号cmp<i>が確定すると同時に、当該活性化信号EN2は立ち上がるように、遅延回路DLY2の遅延値が設定されているとする。
【0199】
次に、図14に示すダイナミック回路である論理積回路の構成について説明する。
【0200】
図14に示す論理積回路は、図5または図10に示す論理積回路とほぼ同じ構成となっているが、つまり、トランスミッションゲートTG22,TG80より前段の構成は同じであるが、以下の点において異なる。
【0201】
当該相違点とは、インバータG33,G83が除去されており、インバータG81またはG31の入力部と接地との間に、N型トランジスタN120が追加されている点において異なる。ここで、N型トランジスタN120のゲートは、インバータG30,G80の出力部に接続されている。なお、図14は、図10を上記のように変形させた場合について図示したものである。
【0202】
次に、図15に示すタイミングチャートに基づいて、上記各回路の動作について説明する。
【0203】
<回路の動作説明>
まず、クロック信号CLKが立ち上がり「H」レベルとなると同時に、図13で示したパルス発生器G111は、「H」レベルが所定の幅であるパルスの発生を開始し、当該パルスは、SRラッチ回路G110のReset入力部に入力される。
【0204】
SRラッチ回路G110のReset入力部に「H」レベルのパルス信号が入力されると、SRラッチ回路G110のQ出力部からは「L」レベルの活性化信号EN4が出力される。
【0205】
その後、パルス発生器G111から出力されるパルス信号が立ち下がり、SRラッチ回路G110のReset入力部に「L」レベルの信号が入力されたとしても、活性化信号EN2が「L」レベルの間は、当該SRラッチG110のQ出力部からは、「L」レベルの活性化信号EN4が出力され続ける。
【0206】
ここで、今活性化信号EN2は、クロック信号CLKが立ち上がってからΔt1(クロック信号CLKが立ち上がってから、TAG−RAMからタグ情報TMが読み出されるまでの時間)+Δt2(タグ情報TMが読み出されてから、排他論理和信号cmpが出力されるまでの時間)後に、立ち上がる。
【0207】
さて、「L」レベルの活性化信号EN4が生成されると、図14に示した論理積回路のN型トランジスタN70はオフ状態となり、P型トランジスタP80はオン状態となるので、論理積回路はプリチャージされ、配線D80は「H」レベルの電位となる(非活性状態)。
【0208】
また、これと同時に、トランスミッションゲートTG80がオフ状態となり、N型トランジスタN120はオン状態となるので、「L」レベルの判定信号が出力部46から出力される(判定信号の初期化)。つまり、前段のXOR回路にて排他論理和信号cmp<i>が出力されるまで(活性化信号EN2が「L」レベルの間)は、論理積回路からはMISSを表す判定信号が出力される。
【0209】
さて、前段のXOR回路において、新たなタグ情報ビットTMB<i>に基づいて演算処理を行い、結果として排他論理和信号cmp<i>が出力されると、これと同時に活性化信号EN2も立ち上がり「H」レベルとなり、SRラッチ回路G110のSet入力部に入力される。
【0210】
今、SRラッチ回路G110のReset入力部には、「L」レベルの信号が入力されてきているので、当該ラッチ回路G110の出力部Qからは、「H」レベルの活性化信号EN4が出力される。
【0211】
すると、図14で示した論理積回路のP型トランジスタP80およびN型トランジスタN120がオフ状態となり、また、トランスミッションゲートTG80およびN型トランジスタN70がオン状態となる。当該状態は判定処理を行う状態である(活性化状態)。つまり、活性化信号EN4が「H」レベルとなることにより、HIT/MISSの判定処理へと移行するのである。
【0212】
これ以降の論理積回路の判定処理は実施の形態2と同様であり、全ての排他論理和信号cmp<0:15>が「L」レベル(つまり、タグ情報TMと参照タグ情報TCとが一致する)場合には、「H」レベルの判定信号(HIT)が出力される。
【0213】
また、排他論理和信号cmp<0:15>のうち一つでも「H」レベル(つまり、タグ情報TMと参照タグ情報TCとが不一致する)場合には、「L」レベルの判定信号(MISS)が出力される。
【0214】
なお、活性化信号EN2は、クロック信号CLKが立ち下がってから所定の時間後には、「L」レベルに戻るので、その後、再びクロック信号CLKが立ち上がると、上記で説明したように活性化信号EN4は「L」レベルとなるので、次に読み出されたタグ情報TMに基づいた判定を行う前に、論理積回路の判定信号をMISSに設定・初期化することができる。
【0215】
これ以降の動作は上記動作と同じであり、繰り返し動作する。
【0216】
以上ように、クロック信号CLKの立上りエッジに同期してCPUがデータを取り込むためにアドレスデータ2が出力されてから、これに基づいた排他論理和信号cmp<i>が確定されるまでの間に、論理積回路の判定信号をMISSに設定・初期化する処理を行うことにより、誤ってCPUが前回の判定信号に基づいてデータを取り込むか否かの判断をすることがなくなるので、CPUが取り込むべきでないデータを取り込むことを防止することができる。
【0217】
なお、以上の動作から分かるように、遅延回路DLY4の遅延値は、クロック信号CLKが立ち上がってから排他論理和信号cmp<i>が確定するまでの時間より短くなるように設定されるべきである。さもないと、新たなタグ情報ビットTMB<i>に基づく排他論理和信号cmp<i>が確定しているにもかかわらず、論理積回路はMISSの判定信号を出力し続けるからである。
【0218】
なお、本実施の形態では、初期化および論理積回路の活性状態の制御に活性化信号EN4を採用したが、活性化信号EN2を採用してもかまわない。しかし、活性化信号EN4を採用することにより、クロック信号CLKの立ち上がりに同期した判定信号の初期化を実行することができる。
【0219】
<実施の形態5>
上記実施の形態に係る比較器201では、ダイナミック回路である論理積回路を活性化させるタイミングを、活性化信号EN2または活性化信号EN4によって図られていた。当該活性化信号EN2,EN4が「H」レベルとなることにより、論理積回路は活性化するのだが、このタイミングは、排他論理和信号cmp<i>の確定の時期に合わせる必要があった。これにより、活性化信号EN2、EN4を遅延回路DLY2,DLY4により生成する必要があった。
【0220】
そこで、本実施の形態5では、クロック信号CLKを論理積回路の活性状態を制御する信号として用いることにより、上記遅延回路を削除する。そのために、本実施の形態では、図16に示すダイナミック回路である論理積回路を採用する。
【0221】
図16に示す論理積回路は、図10に示した論理積回路と構成は同じであるが、P型トランジスタP80、N型トランジスタN70およびトランスミッションゲートTG80を制御する信号として、インバータG140により反転させられたクロック信号CLKが用いられている。
【0222】
以下、本実施の形態に係る論理積回路の動作について、図17に示すタイミングチャートに基づいて説明する。
【0223】
まず、クロック信号CLKが立ち上がり「H」レベルとなると、当該クロック信号CLKはインバータG140により「L」レベルに反転させられ、P型トランジスタP80のゲート、N型トランジスタN70のゲートおよびトランスミッションゲートTG80の各ゲートにそれぞれ入力される。
【0224】
すると、P型トランジスタP80はオン状態となり、N型トランジスタN70はオフ状態となり、トランスミッションゲートTG80がオフ状態となるので、ダイナミック回路である論理積回路は固定電源によりプリチャージされる(非活性化状態)。
【0225】
さて、クロック信号CLKが立ち上がってからΔt1後に、TAG−RAMからタグ情報ビットTMB<i>が読み出され、それからΔt2後に、XOR回路において排他論理和信号cmp<i>が確定し、当該排他論和信号cmp<i>が確定した後に、クロック信号CLKが立ち下がったとする。
【0226】
クロック信号CLKが立ち下がり「L」レベルとなると、当該クロック信号CLKはインバータG140により「H」レベルに反転させられ、P型トランジスタP80のゲート、N型トランジスタN70のゲートおよびトランスミッションゲートTG80の各ゲートにそれぞれ入力される。
【0227】
すると、P型トランジスタP80はオフ状態となり、N型トランジスタN70はオン状態となり、トランスミッションゲートTG80がオン状態となるので、ダイナミック回路である論理積回路は活性状態へと変移する。
【0228】
その後の、論理積回路における判定動作は実施の形態2と同様なので、ここでの説明は省略する。
【0229】
なお、以上の動作から分かるように、本実施の形態に係る論理積回路が正常に判定処理を行うためには、クロック信号CLKの周期tcycは以下に示す条件を満たさなければならない。
【0230】
tcyc/2>Δt1+Δt2
しかし通常、TAG−RAMを含めたメモリの動作では、当該メモリでのデータ読み出し開始から実際にデータが読み出されるまでの時間Δt1は、XOR回路における演算時間Δt2に比べて十分長く(つまり、Δt1≫Δt2)なるように設計されている。
【0231】
また、クロック周期tcycの後半にビット線のプリチャージが行われるため、これにより設定されるクロック周期tcycの半周期の長さは、時間Δt1に比べて十分に長く(つまり、Δt1≪tcyc/2)なる。
【0232】
したがって、通常のメモリ設定を行えば、上記条件、tcyc/2>Δt1+Δt2は満たされる。
【0233】
よって、クロック周期tcycの前半期間の間に、XOR回路において排他論理和信号cmp<i>は確定されるので、本実施の形態に係る比較器201は、正常に比較判定動作を行うことができる。
【0234】
以上のように、本実施の形態では、クロック信号CLKの立ち下がりを利用してダイナミック回路である論理積回路を活性化しているので、遅延回路を省略することができ、回路全体の縮小化および消費電力の削減を図ることができる。
【0235】
また、遅延回路を省略できるので、当該遅延回路のプロセス時におけるパラメータ変動による遅延回路特性のばらつきが原因となる、回路の誤動作の問題も生じることがなくなる。
【0236】
なお、本実施の形態では、図10に示した論理積回路に基づいて構成される場合について説明したが、図5に示した論理積回路に基づいて構成することも可能である。つまり、図5に示した論理積回路において、P型トランジスタP30のゲートに、クロック信号CLKを反転させた信号が入力されるような構成とすることにより、上記と同様な効果を得ることができる。
【0237】
<実施の形態6>
本実施の形態に係る半導体回路を、図18および図19に示す回路図に基づいて説明する。ここで、図18は、実施の形態6に係るタグ情報ビットTMB<0:15>を出力するセンスアンプSAとXOR回路等の構成を示す図である。また図19は、実施の形態6に係るダイナミック回路である論理積回路の構成を示す図である。
【0238】
<回路構成>
まず、図18に示す回路構成について説明する。
【0239】
図18において符号SAは、図6または図12で示したTAG−RAMに設けられている、本実施の形態に係るセンスアンプSAを示しており、具体的な構成が描かれている。
【0240】
データ線DATAが接続される入力部160は、配線D160に接続されており、データ線DATACが接続される入力部161は、配線D161に接続されている。また、配線D160と配線D161との間には、並列に2段の回路群が接続されている。
【0241】
まず、前段の回路群の構成について説明する。
【0242】
P型トランジスタP162の一端は、配線D160が接続されており、当該P型トランジスタP162の他端は、配線D161が接続されている。
【0243】
また、P型トランジスタP163のドレインはP型トランジスタP162の一端側に接続され、ソースは固定電源に接続されている。また、P型トランジスタP164のドレインはP型トランジスタP162の他端側に接続され、ソースは固定電源に接続されている。ここで、P型トランジスタP162,P163,P164のゲートには、共通にクロック信号CLKが入力される。
【0244】
次に、後段の回路群の構成について説明する。
【0245】
P型トランジスタP160の一端は、配線D160に接続されており、P型トランジスタP161の一端は、配線D161に接続されている。
【0246】
P型トランジスタP160の他端は、P型トランジスタP165とN型トランジスタN160とを直列に接続させることにより構成されるCMOSインバータC160の出力側に接続されている。これに対して、P型トランジスタP161の他端は、P型トランジスタP166とN型トランジスタN161とを直列に接続させることにより構成されるCMOSインバータC161の出力側に接続されている。
【0247】
また、CMOSインバータC160とC161の入出力部を相互に接続させことにより、相互接続されたCMOSインバータが構成されている。
【0248】
ここで、P型トランジスタP165、P166のソースは固定電源に接続されており、N型トランジスタN160,N161のソースはN型トランジスタN162を介して接地に接続されている。
【0249】
すなわち、CMOSインバータC160,C161およびP型トランジスタP160,P161により、スタティックなCMOS型メモリセルを構成している。
【0250】
さらに、P型トランジスタP160,P161のゲート、およびN型トランジスタN162のゲートには、共通でセンスイネーブル信号SEが入力されている。
【0251】
以上が、本実施の形態に係るセンスアンプSAの具体的な構成である。
【0252】
ここで、実施の形態1では、通常センスアンプSAの出力側には、タグ情報ビットTMB<i>を保持するためのラッチ回路および素子駆動用のドライバが接続されている。これは、クロック信号CLKが「L」レベルに変化すると、センスアンプSAが初期化され、出力データが消えてしまうからである。
【0253】
つまり、クロック信号CLKが「H」レベルの間にXOR回路での演算処理が終了すれば問題ないのだが、活性化信号ENの制御下にあるXOR回路では、必ずクロック信号CLKが「H」レベルの間に演算処理が終了するとは言えない為、当該演算が終了しないときの補償用回路として当該ラッチ回路が設けられている。
【0254】
しかし、本実施の形態では、XOR回路の活性化信号ENによる制御を要しないのでラッチ回路は不要となる。また、後述するように本実施の形態に係るXOR回路では、駆動させるべき素子の数が実施の形態1のそれと比べて少ないので、素子駆動用のドライバも省略することができる。
【0255】
これにより、タグ情報TMB<i>のXOR回路への供給が、実施の形態1に比べて高速される。
【0256】
さて本実施の形態では、ラッチ回路や素子駆動用のドライバは削除するが、センスアンプSAは、NORゲートG163,G164を介して後段のXOR回路へと接続される。
【0257】
ここで、NORゲートG163の一方の入力部は、CMOSインバータC160の出力側と接続されている。また、NORゲートG164の一方の入力部は、CMOSインバータC161の出力側と接続されている。なお、NORゲートG163,G164の他方の入力部には、インバータG165を介して共通にセンスイネーブル信号SEが入力される。
【0258】
さて次に、同図(図18)の本実施の形態に係るXOR回路の具体的な説明をする。
【0259】
XOR回路は、2つのトランスミッションゲートTG160,TG161とを有しており、トランスミッションゲートTG160の入力部には、NORゲートG163の出力部が接続されており、トランスミッションゲートTG161の入力部には、NORゲートG164の出力部が接続されている。また、トランスミッションゲートTG160,TG161の出力部は共に、排他論理和信号cmp<i>を出力する出力部162に接続されている。
【0260】
また、参照ビットTCB<i>が入力される入力部163はインバータG166を介して、トランスミッションゲートTG160のP型ゲートとトランスミッションゲートTG161のN型ゲートとにそれぞれ接続されている。さらに、入力部163はインバータG166,G167を介して、トランスミッションゲートTG160のN型ゲートとトランスミッションゲートTG161のP型ゲートとにそれぞれ接続されている。
【0261】
以上が、本実施の形態に係るXOR回路の具体的な構成である。
【0262】
次に、図19に示す本実施の形態に係る論理積回路について説明する。
【0263】
本実施の形態に係る論理積回路の構成は、図5で示した論理積回路の構成と同じであるが、P型トランジスタP30のゲート、トランスミッションゲートTG22のゲートに活性化信号が入力されるのではなく、センスイネーブル信号SEが入力される点において異なる。
【0264】
以下、本実施の形態に係る比較器201の動作について説明する。
【0265】
<回路の動作説明>
まず、クロック信号CLKが「L」レベルの期間では、図18で示したP型トランジスタP162,P163,P164は、それぞれオン状態となるので、入力部160,161と接続している配線D160,D161は、共に「H」レベルにプリチャージされる。
【0266】
当該期間では、図6等で示したダミーカラムDCにより生成されるセンスイネーブル信号SEも、もちろん「L」レベルなので、P型トランジスタP160,P161はともにオン状態となり、N型トランジスタN162はオフ状態となる。
【0267】
これにより、NORゲートG163,G164の一方の入力部には「H」レベルの信号が入力され、他方の入力部においても、「L」レベルのセンスイネーブル信号SEがインバータG165を経るので、「H」レベルの信号が入力される。よって、当該NORゲートG163,G164の出力部からは「L」レベルの信号が出力される。
【0268】
上記「L」レベルの信号が後段のXOR回路に入力され、参照ビットTCB<i>として「H」レベルが入力部163から入力された場合には、トランスミッションゲートTG160がオン状態となり、NORゲートG163から出力される「L」レベルの信号が、出力部162から「L」レベルの排他論理和信号cmp<i>として出力される。
【0269】
他方、参照ビットTCB<i>として「L」レベルが入力部163から入力された場合には、トランスミッションゲートTG161がオン状態となり、NORゲートG164から出力される「L」レベルの信号が、出力部162から「L」レベルの排他論理和信号cmp<i>として出力される。
【0270】
次に、クロック信号CLKが立ち上がる。ここで、図6において、N型トランジスタN20がオン状態となっても、当該N型トランジスタN20を介するダミービット線dbitが帯びている電気の接地への放電には多少時間を要するので、クロック信号CLKが立ち上がって所定の時間経過した後に、センスイネーブル信号SEは「H」レベルとなる。
【0271】
したがって、クロック信号CLKが立ち上がってから所定の時間までは、センスイネーブル信号SEは「L」レベルのままである。ここで、当該所定の時間は、N型トランジスタのサイズにより決められる。
【0272】
したがって、「L」レベルのセンスイネーブル信号SEにより、P型トランジスタP160,P161はともにオン状態を維持し、N型トランジスタN162はオフ状態を維持する。また、クロック信号CLKが「H」レベルとなっているので、P型トランジスタP162,P163,P164は、それぞれオフ状態となる。
【0273】
よって、前段で出力されたメモリセルMの電位により、配線D160,D161は若干の電位差は生じるものの、依然として「H」レベルが維持される。
【0274】
したがって、上記と同様の議論により当該NORゲートG163,G164の出力部からは「L」レベルの信号が出力され、後段のXOR回路では、参照ビットTCB<i>が「H」、「L」のどちらのレベルであっても、排他論理和信号cmp<i>として「L」レベルが出力される。
【0275】
つまり、センスイネーブル信号SEが「L」レベルの期間は、XOR回路から排他論理和信号cmp<i>として、「L」レベルの信号が出力されるのである。
【0276】
さて、センスイネーブル信号SEが「L」レベルの期間では、XOR回路の後段に位置する図19に示した論理積回路は、P型トランジスタP30はオン状態となり、トランスミッションゲートTG22はオフ状態となり、演算用の各N型トランジスタN0〜N15もオフ状態となるので、プリチャージが正常に実行される(非活性状態)。
【0277】
次に、センスイネーブル信号SEが「H」レベルになると、図18において、P型トランジスタP160,P161がオフ状態となり、N型トランジスタN162がオン状態となるので、前段のメモリセルMから出力されてたタグ情報ビット信号により生じていた若干の電位差が、CMOSC160,C161により増幅され、当該電位差に応じて、CMOSC160,C161の出力側のどちらか一方が「L」レベルとなり、他方側が「H」レベルとなる。
【0278】
CMOSC161の出力側の電位が「H」レベルだとすると、NORゲートG164の一方の入力部には「H」レベルの信号が入力され、NORゲートG163の一方の入力部には「L」レベルの信号が入力される。今、センスイネーブル信号SEは「H」レベルであるので、NORゲートG163,G164の他方の入力部には、共通に「L」レベルの信号が入力される。
【0279】
したがって、NORゲートG164の出力部からは、「L」レベルのタグ情報ビットTMB<i>が出力される。一方、NORゲートG163の出力部からは、「H」レベルのタグ情報ビットTMB*<i>が出力される。
【0280】
これに対して、CMOSC160の出力側の電位が「H」レベルだとすると、NORゲートG163の一方の入力部には「H」レベルの信号が入力され、NORゲートG164の一方の入力部には「L」レベルの信号が入力される。センスイネーブル信号SEは「H」レベルであるので、NORゲートG163,G164の他方の入力部には、共通に「L」レベルの信号が入力される。
【0281】
したがって、NORゲートG164の出力部からは、「H」レベルのタグ情報ビットTMB<i>が出力される。一方、NORゲートG163の出力部からは、「L」レベルのタグ情報ビットTMB*<i>が出力される。
【0282】
上記から分かるように、センスイネーブル信号SEが「H」レベルとなると、相補的な関係を有するタグ情報ビットTMB<i>とタグ情報ビットTMB*<i>とが、後段のXOR回路に入力されることとなる。
【0283】
その結果、タグ情報ビットTMB<i>が「H」レベルで、参照ビットTCB<i>が「H」レベルの場合、XOR回路のトランスミッションゲートTG160がオン状態となるので、出力部162から「L」レベルの排他論理和信号cmp<i>が出力される。
【0284】
また、タグ情報ビットTMB<i>が「H」レベルで、参照ビットTCB<i>が「L」レベルの場合、XOR回路のトランスミッションゲートTG161がオン状態となるので、出力部162から「H」レベルの排他論理和信号cmp<i>が出力される。
【0285】
また、タグ情報ビットTMB<i>が「L」レベルで、参照ビットTCB<i>が「L」レベルの場合、XOR回路のトランスミッションゲートTG161がオン状態となるので、出力部162から「L」レベルの排他論理和信号cmp<i>が出力される。
【0286】
また、タグ情報ビットTMB<i>が「L」レベルで、参照ビットTCB<i>が「H」レベルの場合、XOR回路のトランスミッションゲートTG160がオン状態となるので、出力部162から「H」レベルの排他論理和信号cmp<i>が出力される。
【0287】
つまり、タグ情報ビットTMB<i>と参照ビットTCB<i>とが一致する場合は、「L」レベルの排他論理和信号cmp<i>が出力され、タグ情報ビットTMB<i>と参照ビットTCB<i>とが不一致の場合は、「H」レベルの排他論理和信号cmp<i>が出力される。
【0288】
さて、図19に示した論理積回路では、センスイネーブル信号SEとして「H」レベルが入力されると、P型トランジスタP30はオフ状態となり、トランスミッションゲートTG22はオン状態となるので、ダイナミック回路である論理積回路は活性状態へと変移する。
【0289】
当該状態にて、排他論理和信号cmp<0:15>として「L」レベルの信号が各N型トランジスタN0〜N15のゲートへと入力してくると(つまり、タグ情報TMと参照タグ情報TCとが完全に一致する場合)、全てのN型トランジスタN0〜N15はオフ状態を維持するので、判定信号としてプリチャージされていた「H」レベルのHIT信号が出力される。
【0290】
これに対して、排他論理和信号cmp<0:15>のいずれか一つでも「H」レベルであった場合には(タグ情報TMと参照タグ情報TCとが不一致の場合)、当該「H」レベルの排他論理和信号cmp<0:15>がゲートに入力してきたN型トランジスタN0〜N15はオン状態となるので、配線D30は「L」電位へと変化し、判定信号として「L」レベルのMISS信号が出力される。
【0291】
以上が、本実施の形態に係る比較器の判定動作であり、正常に判定処理を行うことができる。
【0292】
他の実施の形態に係るXOR回路では、当該XOR回路内で相補的な関係を有するタグ情報TMB<i>,TMB*<i>を作っていたが、本実施の形態に係るXOR回路では、外部より当該相補的な関係を有するタグ情報TMB<i>,TMB*<i>が入力されてくるので、XOR回路の構成を簡略化させることができる。
【0293】
また、これとは別に、論理積回路の活性化を制御する信号として、タグ情報TMB<i>を出力するセンスアンプSAの制御も行っているセンスイネーブル信号SEを用いることにより、以下に示す効果も得ることができる。
【0294】
他の実施の形態では、XOR回路において排他論理和信号cmp<i>が確定するタイミングに合わせて、ダイナミック回路である論理積回路を活性化させる必要があった。つまり、論理積回路において、正常に判定処理を行うためには、排他論理和信号cmp<i>が確定してから当該論理積回路を活性化させる必要があり、当該排他論理和信号cmp<i>の確定時期と当該論理積回路を活性化させる時期との時間差が小さいほど、判定結果を早期に得ることができていた。
【0295】
しかし、上記時間差があまりに小さく設定しすぎると、比較器201の歩留が低下する傾向にある。これは、比較器201のプロセスにおけるパラメータの変動により、当初予定していた時間差がばらつき、排他論理和信号cmp<i>が確定する前に、論理積回路を活性化させてしまう場合も出てくるからである。
【0296】
したがって、通常は比較器201の動作マージンを動作速度より優先させる必要があり、これにより、ダイナミック回路である論理積回路を導入するに際し、当該論理積回路の速度向上には限界があった。
【0297】
そこで、本実施の形態に係る比較器201では、XOR回路として、判定したいタグ情報TMB<i>が入力されるまで(つまり、センスイネーブル信号SEが「L」レベルの期間)、後段の論理積回路の演算用N型トランジスタN0〜N15を動作させない信号(今の場合、「L」レベルの排他論理和信号cmp<i>)を出力する回路を構成することを条件に、論理積回路の活性化を制御する信号として、当該タグ情報TMB<i>の出力を制御するセンスイネーブル信号SEを用いることにより、上記で示した当該排他論理信号cmp<i>の確定時期と当該論理積回路を活性化させる時期との時間差が不要となるので、上記問題は解消され比較器201全体の動作を向上させることができる。
【0298】
なお、本実施の形態では、論理積回路の活性化を制御する信号として、センスイネーブル信号SEを用いたが、後段の論理積回路の演算用N型トランジスタN0〜N15を動作させない信号を出力するXOR回路を構成するという条件を満たすなら(ここで、実施の形態1のXOR回路も当該条件は満たしている)、これより速く立ち上がる信号を採用しても良いが、センスイネーブル信号を用いることにより、簡単な回路設計で最良のタイミングで論理積回路を活性化させることができる。
【0299】
また、タグ情報ビットTMB<i>および、これと相補的な関係にあるタグ情報ビットTMB*<i>を出力するゲートとして、NORゲートG163,G164の代わりにインバータを用いても良いが、上記のようにNORゲートG163,G164を用い、当該NORゲートG163,G164の出力をセンスイネーブル信号SEにより制御することにより、以下に示す効果を得ることができる。
【0300】
TAG−RAMにタグ情報TMを書き込むときには、データ線DATA,DATACのいずれかのが「H」レベルとなり、他方が「L」レベルとなる。このとき、もしインバータを用いたとすると、データの書き込時においても後段の比較器201は動作をしてしまうこととなる。
【0301】
しかし、NORゲートG163,G164を用いてセンスイネーブル信号SEによる制御を可能とすることにより、TAG−RAMにタグ情報TMを書き込むときには、センスイネーブル信号SEは「L」レベルであるので、書き込み時には排他論理和信号も「L」レベルと固定されることとなり、比較器201は動作しない。
【0302】
したがって、読み出し時にのみ比較器201は動作するので、余分な電力を消費しなくて済む。
【0303】
なお、上記各実施の形態では、TAG−RAMに記憶されているタグ情報TMに限定して話を進めたが、これに限るものでなく、他の一般的なメモリ(記憶装置)に記憶されている多ビットの第一のデータと、CPUからの多ビットの第二のデータとを比較する比較器を有する半導体回路においても適用できることは言うまでない。
【0304】
【発明の効果】
本発明の請求項1に記載の半導体回路は、多ビットの第一のデータを記憶している記憶装置と、前記第一のデータと多ビットの第二のデータとの比較を行う比較器とを有する半導体回路において、前記記憶装置からの前記第一のデータの出力を制御する第一の制御信号に基づいて、前記比較器の活性状態が制御されているので、簡易な回路設計により、比較器の演算動作の高速化を考慮した最良なタイミングで比較器の活性状態を制御することができる。したがって、第一のデータが読み出されてから比較器による演算処理を開始するまでの時間差を最小限に抑えることができ、最終的に、比較器全体の判定処理の高速化へとつながる。
【図面の簡単な説明】
【図1】キャッシュメモリから読み出されたタグ情報と参照タグ情報との比較の説明をするための図である。
【図2】TAG−RAMに対する入出力信号の様子を示す図である。
【図3】実施の形態1に係る排他論理和回路の具体的な構成を示す回路図である。
【図4】第一の活性化信号から第二の活性化信号を生成する様子を示す回路図である。
【図5】実施の形態1に係る論理積回路の具体的な構成を示す回路図である。
【図6】実施の形態1に係るTAG−RAMの具体的な構成を示す回路図である。
【図7】センスアンプSA2の具体的な構成を示す回路図である。
【図8】実施の形態1に係る比較器の動作を説明するためのタイミングチャートである。
【図9】実施の形態2に係る排他論理和回路の具体的な構成を示す回路図である。
【図10】実施の形態2に係る論理積回路の具体的な構成を示す回路図である。
【図11】実施の形態2に係る比較器の動作を説明するためのタイミングチャートである。
【図12】実施の形態3に係るTAG−RAMの具体的な構成を示す回路図である。
【図13】論理積回路の活動を制御する信号を生成するための回路を示す図である。
【図14】実施の形態4に係る論理積回路の具体的な構成を示す回路図である。
【図15】実施の形態4に係る比較器の動作を説明するためのタイミングチャートである。
【図16】実施の形態5に係る論理積回路の具体的な構成を示す回路図である。
【図17】実施の形態5に係る比較器の動作を説明するためのタイミングチャートである。
【図18】実施の形態6に係るセンスアンプと排他論理和回路の具体的構成を示す回路図である。
【図19】実施の形態6に係る論理積回路の具体的な構成を示す回路図である。
【符号の説明】
1 キャッシュメモリ、2 アドレスデータ、10〜12,14,31,32,44,45,160,161,163 入力部、13,15,33,46,162 出力部、201 比較器、C60,C61,C160,C161 CMOS、D30,D80,D81,D160,D161 配線、G20,G23,G24〜G28,G30〜G33,G40,G41,G43,G45〜G48,G80〜G83,G113,G140,G165〜G167 インバータ、G21,G22,G163,G164 NORゲート、G42,G100,G112 ANDゲート、G110 RSラッチ回路、G111 パルス発生器、LAT30,LAT80 ラッチ回路、N0〜N15,N20,N50,N60,N61,N70,N80〜N95,N120,N160〜N162 N型トランジスタ、P20,P30,P40〜P50,P60〜P63,P80,P160〜P166 P型トランジスタ、TG20〜TG22,TG30,TG31,TG80,TG160,TG161 トランスミッションゲート、CLK クロック信号、cmp<i> 排他論理和信号、DATA,DATAC データ線、DC ダミーカラム、DLY2,DLY4 遅延回路、EN,EN2,EN4 活性化信号、ENC カラム、M,MH メモリセル、MC メモリ部、RE 制御信号(第二の制御信号)、SE センスイネーブル信号(第一の制御信号)、SA,SA2 センスアンプ、TM タグ情報、TMB<i> タグ情報ビット、TC参照タグ情報、TCB<i> 参照ビット、XOR 排他論理和回路。
【発明の属する技術分野】
この発明は、2つの多ビットのデータの比較処理を行う比較器を有する半導体回路に係る発明である。
【0002】
【従来の技術】
従来、キャッシュメモリから必要なデータを読み出すに際し、読み出されたデータが必要なデータであるか否かを判定する比較器として、例えば、複数の排他論理和回路と、論理積回路とによって構成されているものがあった(特許文献1参照)。
【0003】
【特許文献1】
特開平1−296338号公報(第1、4図)
【0004】
【発明が解決しようとする課題】
しかし、上記で挙げた従来技術の比較器では、簡易な回路設計により、最適なタイミングで当該比較器による多ビットのデータの判定処理を行うことができず、判定処理にある程度の時間を要していた。
【0005】
そこで、この発明は、多ビットのデータの判定処理を行う比較器を有する、当該判定処理の速い半導体回路を提供することを目的とする。
【0006】
【課題を解決するための手段】
上記の目的を達成するために、本発明に係る請求項1に記載の半導体回路は、多ビットの第一のデータを記憶している記憶装置と、前記第一のデータと多ビットの第二のデータとの比較を行う比較器とを有する半導体回路において、前記記憶装置からの前記第一のデータの出力を制御する第一の制御信号に基づいて、前記比較器の活性状態が制御されている。
【0007】
【発明の実施の形態】
一般的に、メモリの動作速度は、記憶容量が大きくなるほど遅くなる。したがって、大容量となるメインメモリの動作速度は、CPU(Central Processing Unit:中央演算処理装置)の動作速度に比べて遅くなり、CPUの命令実行速度を下げる原因となっている。
【0008】
ところで、期間を限定すればCPUの必要とするデータは、メインメモリの全領域に満遍なく存在するのではなく、一部領域に偏在する傾向がある。よって、CPUが必要とするデータがメインメモリの一部領域に限定されるのであるなら、CPUからのアクセス頻度の高いデータのみを記憶容量の小さいメモリに記憶させておき、当該小さい容量のメモリからCPUが必要なデータを供給すればよい。
【0009】
そこで、上記問題を解決するために、CPUとメインメモリの間に容量の小さい、高速のメモリ(以下、キャッシュメモリと称す)を配置し、当該キャッシュメモリにCPUがアクセスする頻度の高いデータを記憶させる。これにより、低速なメインメモリによるCPUの命令実行速度の低下問題を解消することができる。
【0010】
さて、図1が示すように、キャッシュメモリ1は通常、データを記憶する部分(DATA−RAM)と、当該DATA−RAMに記憶されているデータを読み出すためのタグ情報が記憶されている部分(TAG−RAM)とで構成されている。
【0011】
キャッシュメモリ1にデータを書き込むときには、次のように行われる。
【0012】
ダイレクトマップ方式では、CPUの出力するアドレスデータ2のうち、下位ビット(以下、indexと称す)をキャッシュメモリ1のアドレスを指定するために用いる。そして、当該indexで指定されるキャッシュメモリ1のアドレスに該当するTAG−RAMには、アドレスデータ2の上位ビットをタグ情報TMとして記憶し、DATA−RAMには今書き込むべきデータが書き込まれる。
【0013】
また、キャッシュメモリ1からデータを読み出すときは、次のように行われる。
【0014】
まず、CPUは、今必要とするデータを読み出すためにアドレスデータ2を出力する。
【0015】
次に、当該アドレスデータ2のindexを用いて、キャッシュメモリ1の所定のアドレスにアクセスする。仮に今の場合、indexで指定されるキャッシュメモリ1の所定のアドレスが{k−1}だとする。すると次に、アドレス{k−1}に該当するTAG−RAMに書き込まれているタグ情報TM{k−1}と、DATA−RAMに書き込まれているデータ{k−1}とを同時に読み出す。
【0016】
次に、当該読み出されたデータがCPUが必要とするデータであるか否かの判定を行う。
【0017】
当該判定処理は、比較器201を用いて、CPUが出力したアドレスデータ2の上位ビットである参照タグ情報TCと、キャッシュメモリ1から読み出されたアドレス{k−1}に該当するTAG−RAMに記憶されていたタグ情報TM{k−1}とを比較することにより行われる。
【0018】
当該判定の結果、両者が一致すれば所望のデータであることが認識できるので、当該読み出されたデータをCPUは用いることができる。これをキャッシュヒット(以下、HITとする)という。これに対して、両者が一致しなければキャッシュメモリ1には所望のデータがないと認識できるので(これをキャッシュミスとよび、以下、MISSとする)、メインメモリから所望のデータを読み出すこととなる。
【0019】
以下、実施の形態毎に、この発明に係る半導体回路を構成している、比較器201やTAG−RAM等の回路構成および動作を図面に基づいて具体的に説明する。
【0020】
なお、本発明では、タグ情報TMおよび参照タグ情報TCは16ビットのビット列と仮定する。また、タグ情報TMを構成している各ビットをタグ情報ビットTMB<i>と称し、参照タグ情報TCを構成している各ビットを参照ビットTCB<i>と称する。なお、i=0〜15である。
【0021】
<実施の形態1>
本発明の実施の形態1に係る半導体回路の説明を図2〜7に示す図面に基づいて説明する。
【0022】
図2は、キャッシュメモリの一部であるTAG−RAMにおける、入出力信号の様子を示す図である。
【0023】
図2において、CPUから出力されるアドレスデータ2の下位ビットであるindexが、キャッシュメモリ1でのアドレス指定のために用いられ、入力信号としてTAG−RAMに入力される。また、当該indexにより読み出されたタグ情報ビットTMB<i>と活性化信号ENとが出力される。
【0024】
図3は、比較器201を構成する前段の回路であり、タグ情報ビットTMB<i>と参照ビットTCB<i>との排他論理和演算処理を行う排他論理和回路(以下、XOR回路と称す)の具体的構成を示す図である。図4は、遅延回路DLY2により活性化信号ENが時間遅延を有する活性化信号EN2に変換される様子を示す回路図である。図5は、比較器201を構成する後段の回路であり、複数のXOR回路からの出力信号の論理積を取る論理積回路の具体的構成を示す図である。
【0025】
図6は、図2で示したTAG−RAMの主要部であるメモリ部MCと活性化信号生成カラムENCとセンスイネーブル信号生成用のダミーカラムDCとを示す図である。図7は、図6に示している活性化信号ENを生成するために用いられるセンスアンプSA2の具体的構成を示す図である。
【0026】
さらに、図8は、実施の形態1に係る半導体回路の動作を説明するためのタイミングチャートである。
【0027】
次に各図の回路構成について説明する。
【0028】
<回路構成>
まず、活性化信号ENにより活性状態/非活性状態が制御される、図3に示すXOR回路の構成について説明する。なお、今タグ情報TMおよび参照タグ情報TCは16ビットのビット列を想定しているので、当該XOR回路は、各ビットに応じた数が(つまり16個)設けられる。
【0029】
図3のXOR回路は、3つの入力部10,11,12と1つの出力部13とを有している。つまり、活性化信号ENが入力される入力部10と、参照ビットTCB<i>が入力される入力部11と、タグ情報ビットTMB<i>が入力される入力部12と、XOR回路での排他論理和演算結果である排他論理和信号cmp<i>が出力される出力部13とを有している。
【0030】
入力部10は、インバータG20を介して、NORゲートG21の一方の入力部と、NORゲートG22の一方の入力部とにそれぞれ接続されている。さらに、入力部10は、インバータG20、G26とを介してP型トランジスタP20のゲートに接続されている。ここで、P型トランジスタP20のソースには固定電源が接続されており、当該P型トランジスタP20のドレインは、インバータG25を介して出力部13に接続されている。
【0031】
入力部11は、NORゲートG21の他方の入力部に直接、接続されている一方で、インバータG23を介してNORゲートG22の他方の入力部へと接続されている。
【0032】
また、NORゲートG21の出力部はインバータG28を介してトランスミッションゲートTG20のP型ゲートに接続される一方で、当該トランスミッションゲートTG20のN型ゲートに直接、接続されている。また、NORゲートG22の出力部はインバータG27を介してトランスミッションゲートTG21のP型ゲートに接続される一方で、当該トランスミッションゲートTG21のN型ゲートに直接、接続されている。
【0033】
入力部12は、インバータG24を介してトランスミッションゲートTG20の入力部に接続される一方で、トランスミッションゲートTG21の入力部に直接、接続されている。また、トランスミッションゲートTG20の出力部およびトランスミッションゲートTG21の出力部は、ともにインバータG25を介して出力部13へと接続されている。
【0034】
次に、上記図3に示した各XOR回路の出力部13から出力される排他論理和信号cmp<i>の論理積を取る回路であり、ダイナミック回路である図5の論理積回路の構成について説明する。ここでダイナミック回路とは、活性状態のときに一度入力信号が入力されると、これに対応する出力信号が決定され、その後、当該論理積回路をプリチャージしない限り、別の入力信号が入力されても出力信号は変化しない回路のことである。
【0035】
図5の論理積回路は、前記排他論理和信号cmp<0:15>の数に応じた数のN型トランジスタ(今の場合、16個のN型トランジスタである)N0〜N15と、図4で示す遅延回路DLY2により活性化信号ENに対して時間遅延を与えられた活性化信号EN2が入力される入力部14と、ラッチ回路LAT30と、論理積の演算結果である判定信号(HIT or MISS)が出力される出力部15とを有している。
【0036】
トランスミッションゲートTG22の入力部に配線D30が接続されている。また、当該配線D30と接地との間には、論理積演算用として複数(今の場合16個)のN型トランジスタN0〜N15が並列的に接続されている。ここで、各N型トランジスタN0〜N15のソースが接地側に接続されており、ドレインは配線D30側に接続されている。また、各N型トランジスタN0〜N15のゲートには、図3で示したXOR回路から出力される排他論理和信号cmp<0:15>が各々入力される。
【0037】
入力部14は、P型トランジスタP30のゲートに接続されている。ここで、P型トランジスタP30のソースは固定電源に接続されており、ドレインは配線D30に接続されている。
【0038】
さらに入力部14は、トランスミッションゲートTG22のN型ゲートに接続され、他方でインバータG30を介してトランスミッションゲートTG22のP型ゲートに接続されている。
【0039】
トランスミッションゲートTG22の出力部は、インバータG31,G32を介して出力部15に接続されている。ここで、前段のインバータG31の入力部と出力部との間には、帰還のインバータG33が並列に接続されている。
【0040】
上記構成において、トランスミッションゲートTG22、インバータG30、インバータG31およびインバータG33により、活性化信号EN2により制御されるラッチ回路LAT30を構成している。
【0041】
次に、TAG−RAMの主要部であるメモリ部MCと活性化信号生成用のカラムENCとセンスイネーブル信号SE(第一の制御信号として把握できる。)を生成するダミーカラムDCとから構成される、図6のTAG−RAM回路の具体的構成について説明する。
【0042】
ここで、通常TAG−RAMは次の新たなタグ情報ビットTMB<i>が読み出されるまで、以前のタグ情報ビットTMB<i>を保持するため、図2で示したXOR回路は、今判定したいタグ情報ビットTMB<i>が読み出された後に演算動作を開始する必要がある。そうしないと、以前のタグ情報ビットTMB<i>に基づいた演算結果がXOR回路から出力されてしまい、後段に位置するダイナミック回路である論理積回路が誤った判定信号を出力するからである。
【0043】
また、XOR回路の動作速度を考慮すると、XOR回路の演算動作の時期を制御する活性化信号ENは、タグ情報ビットTMB<i>と同時に供給されることが望ましい。
【0044】
したがって、図6で示した回路は、活性化信号ENをTAG−RAMに記憶されているタグ情報ビットTMB<i>の読み出しとほぼ同時期に生成されるように、活性化信号ENの読み出し経路がタグ情報ビットTMB<i>の読み出し経路を再現するように構成されている。
【0045】
図6において、まずメモリ部MCの構成について説明する。
【0046】
複数のメモリセルMが(m×n)のマトリックス状に配置されている。各メモリセルMの両サイドには、各列で共通のビット線bit<i>とbitc<i>とが接続されている。また、各メモリセルMには、各行で共通のワード線word<i>が接続されている。つまり、各ワード線word<i>にはm個、各ビット線bit<i>,bitc<i>にはn個のメモリセルMが接続されている。
【0047】
ここで、はじめの行列要素aij(i=0,1,・・・,m−1、j=0,1,・・・,n−1)に対応する各メモリセルMには、キャッシュメモリ1の各アドレス{0:k(=16m×n)}に対応するタグ情報ビットTMB<0>がそれぞれ記憶されており、次の行列要素bik(i=m,m+1,・・・,2m−1、k=0,1,・・・,n−1)に対応する各メモリセルMには、キャッシュメモリ1の各アドレス{0:k(=16m×n)}に対応するタグ情報ビットTMB<1>がそれぞれ記憶されている。そして、最終的に、行列要素cil(i=15m,15m+1,・・・,16m−1、l=0,1,・・・,n−1)に対応するの各メモリセルMには、キャッシュメモリ1の各アドレス{0:k(=16m×n)}に対応するタグ情報ビットTMB<15>がそれぞれ記憶されている。
【0048】
図6では簡略化して、キャッシュメモリ1の各アドレス{0:k}に対応するタグ情報ビットTMB<0>を記憶している各メモリセルMのみを図示している。以下、タグ情報ビットTMB<0>を記憶しているメモリセルMを含む回路部分について説明するが、他のタグ情報ビットTMB<1:15>を記憶しているメモリセルMを含む回路部分についても同じ構成を備えている。
【0049】
さて、各ビット線bit<0:m−1>の一方端は、P型トランジスタP40を介して固定電源に接続されており、他方端は、P型トランジスタP41を介してデータ線DATAに接続されている。また、各ビット線bitc<0:m−1>の一方端は、P型トランジスタP42を介して固定電源に接続されており、他方端は、P型トランジスタP43を介してデータ線DATACに接続されている。
【0050】
また、一のメモリセルMに接続されているビット線bit<i>とbitc<i>とを架橋するようにP型トランジスタP44が接続されており、各P型トランジスタP40,P42,P44のゲートには、共通でクロック信号CLKが入力される構成となっている。
【0051】
また、カラムアドレス信号Y<0:m−1>を送信する複数(今の場合、m本)の配線が配設されており、当該各配線は、対応する列に対して、それぞれインバータG41を介してP型トランジスタP41,P43のゲートに接続されている。
【0052】
また、データ線DATAはセンスアンプSAの一方の入力部に接続されており、他方の入力部にはデータ線DATACが接続されている。また、センスアンプSAの出力部は、比較器201を構成する図3で示したXOR回路の入力部12に接続される。
【0053】
ここで、図6では省略しているが、通常センスアンプSAの出力側には、タグ情報ビットTMB<i>を保持するためのラッチ回路およびデータ駆動用のドライバが接続される。当該ラッチ回路により、一度タグ情報ビットTMB<i>が読み出されると、次のタグ情報ビットTMB<i>が読み出されるまで、以前のタグ情報ビットTMB<i>が保持・出力され続ける。
【0054】
次に、活性化信号生成用であるカラムENCの構成について説明する。
【0055】
ワード線word<0:n−1>の数に対応した数(今の場合、n個)のメモリセルMHが一列に配列されており、一のメモリセルMHには一のワード線word<i>と、ビット線biten、bitencとが接続されている。
【0056】
ここで、各メモリセルMHからのデータが読み出されるときには、必ずビット線bitenが「H」レベルに、ビット線bitencが「L」レベルになるように、当該メモリセルMHの内部回路は設計されている。
【0057】
ビット線bitenの一方端は、P型トランジスタP45を介して固定電源に接続されており、他方端は、P型トランジスタP46を介してセンスアンプSA2の一方の入力部に接続されている。また、ビット線bitencの一方端は、P型トランジスタP47を介して固定電源に接続されており、他方端は、P型トランジスタP48を介してセンスアンプSA2の他方の入力部に接続されている。また、ビット線bitenとビット線bitencとを架橋するようにP型トランジスタP49が接続されている。
【0058】
ここで、P型トランジスタP45,P47,P49のゲートにクロック信号CLKが共通に入力され、P型トランジスタP46,P48のゲートは、それぞれ接地に接続されている。
【0059】
以上が、カラムENCの構成である。なお、センスアンプSA2の出力部は、比較器201を構成する図3で示したXOR回路の入力部10に接続される。
【0060】
次に、図6に示すセンスアンプSA,SA2を活性化させるセンスイネーブル信号SEを生成するダミーカラムDCの構成について説明する。
【0061】
ワード線word<0:n−1>の数に対応した数(今の場合、n個)のN型トランジスタN20が一列に配列されている。ここで、各N型トランジスタN20のゲートは一のワード線<i>に接続されており、各ドレインには、ダミービット線dbitが接続されており、各ソースは接地に接続されている。
【0062】
ダミービット線dbitの一方端は、P型トランジスタP50を介して固定電源に接続されており、他方端は、インバータG40の入力部に接続されている。また、当該インバータG40の出力部は、センスアンプSA,SA2の活性状態を制御するために、各センスアンプSA,SA2へと接続されている。
【0063】
なお、P型トランジスタP50のゲートにはクロック信号CLKが入力される。
【0064】
以上が、ダミーカラムDCの構成である。
【0065】
このように、TAG−RAMは、メモリ部MC、カラムENCおよびダミーカラムDCにより構成されている。
【0066】
次に、上記図6で図示した、活性化信号ENを生成のためのカラムENCで用いられている、センスアンプSA2の具体的構成を示した図7の回路構成について説明する。なお、上記でも説明したように、当該センスアンプSA2の活性状態/非活性状態を制御する信号として、他のセンスアンプSAと共通のセンスイネーブル信号SEを使用する。
【0067】
P型トランジスタP60とN型トランジスタN60とを直列に接続させることによりCMOSインバータC60を構成している。また、P型トランジスタP61とN型トランジスタN61とを直列に接続させることによりCMOSインバータC61を構成している。また、CMOSインバータC60とC61の入出力部を相互に接続させることにより、相互接続されたCMOSインバータを構成している。
【0068】
ここで、P型トランジスタP60、P61のソースは固定電源に接続されており、N型トランジスタN60,N61のソースはN型トランジスタN50を介して接地に接続されている。
【0069】
また、CMOSインバータC61の出力部は、P型トランジスタP62を介してビット線bitenに接続されており、CMOSインバータC60の出力部は、P型トランジスタP63を介してビット線bitencに接続されている。
【0070】
図6で示したインバータG40は、P型トランジスタP62,P63のゲート、およびN型トランジスタN50のゲートに、共通で接続されると共に、ANDゲートG42の一方の入力部に接続されている。なお、ANDゲートG42の他方の入力部は、CMOSインバータC60の出力部とインバータG43を介して接続されており、ANDゲートG42の出力部は、比較器201を構成する図3で示したXOR回路の入力部10に接続される。
【0071】
以上が、本実施の形態に係る半導体回路を構成している比較器201およびTAG−RAMの構成である。
【0072】
次に、図8に示すタイミングチャートに基づいて、上記各構成の動作について説明する。以下では、参照タグ情報TCを構成する所定のi番目のビットである参照ビットTCB<i>、およびタグ情報TMを構成する所定のi番目のビットであるタグ情報ビットTMB<i>について言及するが、他の参照ビットTCB<0・・i−1,i+1・・15>、タグ情報ビットTMB<0・・i−1,i+1・・15>についても同様の議論が成立する。
【0073】
<回路の動作説明>
はじめに、比較器201を構成する前段に位置する、図3で示したXOR回路の動作について説明する。
【0074】
まず、クロック信号CLKの立上りエッジに同期して、CPUからアドレスデータ2が出力され、アドレスデータ2の上位ビットである参照タグ情報TCを構成する参照ビットTCB<i>が、各XOR回路に入力される。また、これと同時に、アドレスデータ2の下位ビットであるIndexが図2で示したTAG−RAMに入力され、タグ情報ビットTMB<i>の読み出しを開始する。
【0075】
ここで、タグ情報ビットTMB<i>が読み出されるまでは、各XOR回路の出力部13から出力される排他論理和信号cmp<i>として、「L」レベルの信号を保持しなければならない。
【0076】
これは、各XOR回路の後段に接続されている図5で示した論理積回路がダイナミック回路であるため、演算処理を開始するまではP型トランジスタP30により配線D30をプリチャージすることにより、次の判定処理に備えておく必要あるからである。
【0077】
つまり、中間結果である排他論理和信号cmp<i>として一旦「H」レベルが入力されてしまうとP型トランジスタP30によるプリチャージが有効でなくなり、配線D30が「L」に設定されてしまうからである。
【0078】
したがって、その後、論理積回路が活性化状態となって、本来の演算結果である排他論理和信号cmp<i>が「L」または「H」レベルになったとしても、出力部15からは判定信号として「L」レベルが常に出力され、各排他論理和信号cmp<i>に応じた正常な論理積の演算処理を行うことができなくなる。
【0079】
そこで、図8に示すように、タグ情報ビットTMB<i>が読み出されるまでの間、活性化信号ENを「L」レベルに固定させておく。
【0080】
こうすることにより、図3で示したP型トランジスタP20はオン状態となり、排他論理和信号cmp<i>として「L」レベルが保持される(XOR回路の非活性状態)。よって、タグ情報ビットTMB<i>が読み出されるまでの間の、論理積回路のP型トランジスタP30による配線D30のプリチャージを有効とすることができ、その後、当該論理積回路が活性化状態となったときに、本来の演算結果である排他論理和信号cmp<i>に応じた正常な論理積の演算処理を行うことができる。
【0081】
さて、図2で示すTAG−RAMにIndexが入力されてから時刻Δt1後に、当該TAG−RAMからタグ情報ビットTMB<i>が出力される。また、これとほぼ同時に、「H」レベルの活性化信号ENが出力される。
【0082】
これにより、図3で示したP型トランジスタP20のゲートには「H」レベルの信号が入力され、当該P型トランジスタP20はオフ状態となり、タグ情報ビットTMB<i>と参照ビットTCB<i>との排他論理和演算処理が開始される(XOR回路の活性状態)。
【0083】
例えば、当該状態において、タグ情報ビットTMB<i>、参照ビットTCB<i>ともに「H」レベルである場合には、NORゲートG21の一方の入力部には「L」レベルの信号、他方の入力部には「H」レベルの信号が入力されるので、当該NORゲートG21の出力部からは「L」レベルの信号が出力される。したがって、トランスミッションゲートTG20はオフ状態となる。
【0084】
これに対して、NORゲートG22の一方の入力部には「L」レベルの信号、他方の入力部には「L」レベルの信号が入力されるので、当該NORゲートG22の出力部からは「H」レベルの信号が出力される。したがって、トランスミッションゲートTG21はオン状態となる。よって、タグ情報ビットTMB<i>はインバータG25により反転されるので、出力部13からは、「L」レベルの排他論理和信号cmp<i>が出力される。
【0085】
他方、活性化信号ENが「H」レベルで、タグ情報ビットTMB<i>、参照ビットTCB<i>ともに「L」レベルである場合には、NORゲートG22の一方の入力部には「L」レベルの信号、他方の入力部には「H」レベルの信号が入力されるので、当該NORゲートG22の出力部からは「L」レベルの信号が出力される。したがって、トランスミッションゲートTG21はオフ状態となる。
【0086】
これに対して、NORゲートG21の一方の入力部には「L」レベルの信号、他方の入力部には「L」レベルの信号が入力されるので、当該NORゲートG21の出力部からは「H」レベルの信号が出力される。したがって、トランスミッションゲートTG20はオン状態となる。よって、タグ情報ビットTMB<i>はインバータG24,G25により2度反転されるので、出力部13からは、「L」レベルの排他論理和信号cmp<i>が出力される。
【0087】
次に、活性化信号ENが「H」レベルで、タグ情報ビットTMB<i>が「H」レベルであり、参照ビットTCB<i>が「L」レベルである場合には、NORゲートG22の一方の入力部には「L」レベルの信号、他方の入力部には「H」レベルの信号が入力されるので、当該NORゲートG22の出力部からは「L」レベルの信号が出力される。したがって、トランスミッションゲートTG21はオフ状態となる。
【0088】
これに対して、NORゲートG21の一方の入力部には「L」レベルの信号、他方の入力部には「L」レベルの信号が入力されるので、当該NORゲートG21の出力部からは「H」レベルの信号が出力される。したがって、トランスミッションゲートTG20はオン状態となる。よって、タグ情報ビットTMB<i>はインバータG24,G25により2度反転されるので、出力部13からは、「H」レベルの排他論理和信号cmp<i>が出力される。
【0089】
また、活性化信号ENが「H」レベルで、タグ情報ビットTMB<i>が「L」レベルであり、参照ビットTCB<i>が「H」レベルである場合には、NORゲートG21の一方の入力部には「L」レベルの信号、他方の入力部には「H」レベルの信号が入力されるので、当該NORゲートG21の出力部からは「L」レベルの信号が出力される。したがって、トランスミッションゲートTG20はオフ状態となる。
【0090】
これに対して、NORゲートG22の一方の入力部には「L」レベルの信号、他方の入力部には「L」レベルの信号が入力されるので、当該NORゲートG22の出力部からは「H」レベルの信号が出力される。したがって、トランスミッションゲートTG21はオン状態となる。よって、タグ情報ビットTMB<i>はインバータG24により反転されるので、出力部13からは、「H」レベルの排他論理和信号cmp<i>が出力される。
【0091】
以上から分かるように、タグ情報ビットTMB<i>と参照ビットTCB<i>のレベルが一致するときは「L」レベルの排他論理和信号cmp<i>が出力され、一致しないときには「H」レベルの排他論理和信号cmp<i>が出力される。
【0092】
次に、比較器201を構成する後段に位置する、図5の論理積回路の動作について説明する。
【0093】
図3のXOR回路にて、タグ情報ビットTMB<i>が入力されてから排他論理和信号cmp<i>が確定するまでに時間Δt2かかるとすると、図4において、当該Δt2の時間遅延値を有する遅延回路DLY2を配置する。そうすると、活性化信号EN2は、活性化信号ENに対して時間遅延Δt2を有することとなる。
【0094】
したがって、当該活性化信号EN2が立ち上がるまでは(図3のXOR回路にて排他論理和信号cmp<i>が確定するまでの期間は)、活性化信号EN2は「L」レベルなので、論理積回路のP型トランジスタP30はオン状態となっており、配線D30のプリチャージを行っている(論理積回路の非活性状態)。
【0095】
また、活性化信号EN2が「L」レベルの間は、ラッチ回路LAT30のトランスミッションゲートTG22はオフ状態となるので、判定信号は以前の値を保持している。
【0096】
次に、タグ情報ビットTMB<i>が読み出されてから時間Δt2経過し、活性化信号EN2が立ち上がり「H」レベルに設定されると、P型トランジスタP30がオフ状態となり、トランスミッションゲートTG22はオン状態となる。
【0097】
当該状態において、前段で確定した排他論理和信号cmp<0:15>が全て「L」レベルであるとき(すなわち、タグ情報TMと参照タグ情報TCとが一致するとき)は、図5で示した論理積回路を構成するすべてのN型トランジスタN0〜N15がオフ状態となるので、配線D30の電位は「H」レベルのままとなる。
【0098】
したがって、今トランスミッションゲートTG22はオン状態であるので、当該「H」レベルがラッチ回路LAT30に取り込まれると共に、インバータG31,G32を経て出力部15から判定信号が「H」レベルで出力される。つまり、タグ情報TMと参照タグ情報TCが完全に一致する場合には(HITの場合には)、判定信号として「H」レベルの信号が出力される。
【0099】
これに対して、前段で確定した排他論理和信号cmp<0:15>のうち、一つでも「H」レベルの信号がある場合(すなわち、タグ情報TMと参照タグ情報TCとが一致しないとき)には、当該「H」レベルの信号が入力されるN型トランジスタはオン状態となるので、配線D30の電位は接地電位、つまり「L」レベルへと変化する。
【0100】
したがって、今トランスミッションゲートTG22はオン状態であるので、当該「L」レベルがラッチ回路LAT30に取り込まれると共に、インバータG31,G32を経て出力部15から判定信号が「L」レベルで出力される。つまり、タグ情報TMと参照タグ情報TCが不一致の場合には(MISSの場合には)、判定信号として「L」レベルの信号が出力される。
【0101】
以上により、図3,4,5に示すXOR回路、論理積回路等により構成される比較器201により、タグ情報TMと参照タグ情報TCとの比較処理が正常に実行される。ここで、論理積回路を最適なタイミングで活性状態へと変化させるために、図4の遅延回路DLY2として時間Δt2の時間遅延を形成することができるものを採用したが、論理積回路での確実な演算動作を確保するために、これ以上の時間遅延を有する遅延回路DLY2を採用してもかまわない。
【0102】
さて、上記でも説明したように、図5で示した論理積回路としてダイナミック回路を用いているので、図2で示したXOR回路は、タグ情報ビットTMB<i>が読み出されてから活性状態へと変化する必要がある。さらには、動作速度を考慮すると、活性化信号ENはタグ情報ビットTMB<i>と同時に供給されることが望ましい。そこで、当該動作を可能にするために構成されたのが図6で示したTAG−RAM回路である。
【0103】
以下に、図6で示したTAG−RAM回路の動作について説明する。なお、X<0>〜X<n−1>はロウアドレス信号を示しており、Y<0>〜Y<m−1>はカラムアドレス信号を示している。当該ロウアドレス信号とカラムアドレス信号とにより所定のメモリセルMが選択され、タグ情報ビットTMB<i>が読み出される。また、メモリ部MCについては、タグ情報ビットTMB<0>が記憶されているブロックについて説明するが、他のタグ情報ビットTMB<1:15>が記憶されているブロックについても同様な動作が成立する。
【0104】
はじめに、図8で示しているようにクロック信号CLKが「L」レベルのときは、メモリ部MCにおいて、各P型トランジスタP40,P42,P44はオン状態となるので、すべてのビット線bit<0:m−1>、bitc<0:m−1>は、固定電源により「H」レベルにプリチャージされる。
【0105】
また、ダミーカラムDCにおいてもクロック信号CLKが「L」のときは、P型トランジスタP50がオン状態となるので、ダミービット線dbitにおいても、固定電源により「H」レベルにプリチャージされる。これにより、センスイネーブル信号SEは「L」レベルに設定され、センスアンプSA,SA2を非活性状態とさせる。
【0106】
次に、カラムENCの動作について説明する。
【0107】
クロック信号CLKが「L」レベルのときには、図6において、P型トランジスタP45,P47,P49はオン状態となるので、固定電源によりビット線biten、bitencは「H」電位にプリチャージされる。ここで、P型トランジスタP46,P48のゲートは接地に接続されているので、常にオン状態である。
【0108】
さらに、クロック信号CLKが「L」レベルのときには、センスイネーブル信号SEは「L」レベルとなるので、図7において、P型トランジスタP62,P63はオン状態となり、N型トランジスタN50はオフ状態となり、ANDゲートG42の両入力部には「L」レベルの信号が入力される。
【0109】
したがって、クロック信号CLKが「L」レベルのときには、ANDゲートG42の出力部から「L」レベルの活性化信号ENが出力される。なお、クロック信号CLKが立ち上がっても、センスイネーブル信号SEが「L」レベルの間は、ANDゲートG42からは「L」レベルの活性化信号ENが出力される。
【0110】
これにより、上記でも説明したように、図3で示したP型トランジスタP20はオン状態となり、排他論理和信号cmp<i>として「L」レベルが保持される(つまり、XOR回路を非活性状態と制御する)。よって、タグ情報ビットTMB<i>が読み出されるまでの間の論理積回路のP型トランジスタP30による配線D30のプリチャージを有効とすることができ、その後、当該論理積回路が活性化状態となったときに、本来の演算結果である排他論理和信号cmp<i>に応じた正常な論理積の演算処理を行うことができる。
【0111】
次に、クロック信号CLKが「H」レベルに立ち上がると、各P型トランジスタP40,P42,P44,P45、P47,P49,P50がオフ状態となり、全ビット線のプリチャージが中断され、タグ情報ビットTMB<0>の読み出し動作が開始される。
【0112】
はじめに、メモリ部MCの動作について説明する。
【0113】
当該、クロック信号CLKが「H」レベルである期間に、例えば「H」レベルのロウアドレス信号X<0>が設定されると、バッファ20を介してワード線word<0>の電位は「H」レベルとなる。これにより、ワード線word<0>に接続されている全てのメモリセルMに記憶されているデータが、それぞれのビット線bit<0:m−1>、bitc<0:m−1>に読み出される。
【0114】
次に、例えば「L」レベルのカラムアドレス信号Y<0>が設定されると、ビット線bit<0>に接続されているP型トランジスタP41、およびビット線bitc<0>に接続されているP型トランジスタP43が、それぞれオン状態となるので、ビット線bit<0>の信号がデータ線DATAに伝送され、ビット線bitc<0>の信号がデータ線DATACに伝送される。
【0115】
その後、「H」レベルのセンスイネーブル信号SEの入力を機に、センスアンプSAは活性状態となり、タグ情報ビットTMB<0>の出力がなされる。
【0116】
次に、ダミーカラムDCの動作について説明する。
【0117】
ワード線word<0>が「H」レベルの電位になると、当該ワード線word<0>に接続されているN型トランジスタN20はオン状態となる。したがって、「H」レベルであったダミービット線dbitの電気が、N型トランジスタN20を介して接地電位への放電が開始され、時間Δt1後にダミービット線dbitの電位は「L」レベルへと変化する。よって、クロック信号CLKが立ち上がってから時刻Δt1後に、インバータG40を介してセンスイネーブル信号SEは「H」レベルとなり、センスアンプSA,SA2を活性状態へと変化させる。
【0118】
ここで、メモリセルMから読み出されるデータにより、各センスアンプSAへ接続される各データ線DATA、DATAC間の電位差が十分に大きくなったときに、センスイネーブル信号SEが「H」レベルとなるように、N型トランジスタN20のサイズを決めておくと良い。
【0119】
次に、カラムENCの動作について説明する。
【0120】
クロック信号CLKが立ち上がり、上記のように「H」レベルのロウアドレス信号X<0>が設定されると、バッファ20を介してワード線word<0>の電位は「H」レベルとなり、ワード線word<0>に接続されているメモリセルMHが選択される。すると、当該メモリセルMHの内部回路により、ビット線bitenが「H」レベルとなり、ビット線bitencが「L」レベルとなる。
【0121】
次に、当該状態において、クロック信号CLKが立ち上がってから時刻Δt1後に、センスイネーブル信号SEが立ち上がり「H」レベルとなると、図7において、P型トランジスタP62,P63がオフ状態となり、N型トランジスタN50がオン状態となるので、ANDゲートG42の一方の入力部には「H」レベルのセンスイネーブル信号SEが入力され、他方の入力部には増幅された「H」レベルの信号が入力される。
【0122】
したがって、ANDゲートG42の出力部から「H」レベルの活性化信号ENが出力されることとなる。
【0123】
以上のように、センスイネーブル信号SEが「H」レベルとなると、センスアンプSA、SA2は同時に活性状態となり、センスアンプSAからは新たに読み出されたタグ情報ビットTMB<0>が、またセンスアンプSA2からは「H」レベルの活性化信号ENが同時に出力される。
【0124】
その後、クロック信号CLKが「L」レベルになると、ダミービット線dbitは再びプリチャージされ「H」レベルに変化する。これに伴って、センスイネーブル信号SEが「L」レベルとなり、センスアンプSA,SA2は非活性状態となる。
【0125】
また、カラムENCにおいても、クロック信号CLKが「L」レベルとなると、ビット線biten、bitencが「H」レベルにプリチャージされるので、活性化信号ENは再び「L」レベルに設定される。なお、これにより活性化信号EN2も「L」レベルと変移するので、図5で示した論理積回路は非活性状態(プリチャージ状態)となり、これと同時に、ラッチ回路LAT30の入力トランスミッションゲートTG22はオフとなり、当該ラッチ回路LAT30は判定信号を保持する。
【0126】
以上が、本実施の形態に係る半導体回路を構成する比較器201、TAG−RAM等の一連の動作である。
【0127】
本実施の形態に係る半導体回路によれば、センスイネーブル信号SEを用いてセンスアンプSA,SA2を同時に活性状態を制御しているので、簡易な回路設計により、タグ情報ビットTMB<i>と同時に「H」レベルの活性化信号ENも、比較器201に対して供給することができる。
【0128】
つまり、タグ情報ビットTMB<i>がXOR回路に入力されると同時に、XOR回路にて、当該タグ情報ビットTMB<i>に基づく演算処理を行うことができる。したがって、ダイナミック回路である論理積回路の誤動作を防止することができる。さらに、タグ情報ビットTMB<i>がXOR回路に入力されてから当該XOR回路での演算開始までのタイムマージンを最小限に抑えることができるので、XOR回路での演算処理の時間を短縮させることができる。
【0129】
また、活性化信号ENに基づいて形成される活性化信号SE2により論理積回路の活性状態/非活性状態を制御しているので、当該活性化信号EN2の生成に当たりXOR回路での演算に要する時間を考慮するだけでいいので、簡単な回路設計により、最適なタイミングで論理積回路を活性化させる活性化信号EN2を生成することができる。
【0130】
さらに、遅延回路DLY2により、活性化信号EN2が有する活性化信号ENに対する遅延時間を、XOR回路での演算に要する時間と同じに設定することにより、論理積回路における演算開始までのタイムマージンを最小限に抑えることができ、当該論理積回路における判定結果までの時間短縮につながる。
【0131】
また、論理積回路にダイナミック回路を用いているので、少ない回路素子により当該論理積回路を構成することができるので、スタティック回路のように多入力論理ゲートを多数用いる必要がなくなる。したがって、本実施の形態に係る比較器201では、高速な判定処理を行うことができる。
【0132】
<実施の形態2>
実施の形態1では、XOR回路出力の途中結果により、後段のダイナミック回路である論理積回路が誤動作しないように、XOR回路の動作を活性化信号ENにより制御していた。これにより、当該XOR回路は複雑な構成となってしまっていた。
【0133】
そこで、本実施の形態では、活性化信号ENによる制御を不要とすることで、XOR回路を簡略化することを目的とする。図9,10に本実施の形態に係る比較器201の構成を図示する。なお、TAG−RAMは、例えば図6,7で示した構成のものを採用することとする。
【0134】
図9は、実施の形態2に係る比較器201を構成する、前段に位置するXOR回路であり、図10は、実施の形態2に係る比較器201を構成する、後段に位置するダイナミック回路である論理積回路である。
【0135】
以下より、各図の回路構成について具体的に説明する。
【0136】
<回路構成>
まず、タグ情報ビットTMB<i>と参照ビットTCB<i>との排他論理和演算処理を行う、図9のXOR回路の構成について説明する。なお、今タグ情報TMおよび参照タグ情報TCが16ビットのビット列を想定しているので、当該XOR回路は、各ビットに応じたものが16個設けられる。
【0137】
図9のXOR回路は、2つの入力部31,32と1つの出力部33とを有している。つまり、参照ビットTCB<i>が入力される入力部31と、タグ情報ビットTMB<i>が入力される入力部32と、排他論理和信号cmp<i>が出力される出力部33とを有している。
【0138】
入力部31は、インバータG45を介してトランスミッションゲートTG31のP型ゲートに接続される一方で、同じくインバータG45を介して当該トランスミッションゲートTG30のN型ゲートに接続されている。
【0139】
さらに、入力部31はインバータG45,G46を介してトランスミッションゲートTG31のN型ゲートに接続される一方で、同じくインバータG45,G46を介して当該トランスミッションゲートTG30のP型ゲートに接続されている。
【0140】
入力部32は、トランスミッションゲートTG31の入力部に直接、接続される一方で、インバータG47を介してトランスミッションゲートTG30の入力部に接続されている。
【0141】
また、トランスミッションゲートTG30の出力部およびトランスミッションゲートTG31の出力部は共に、インバータG48を介して出力部33に接続されている。
【0142】
次に、上記図9で示した各XOR回路から出力される排他論理和信号cmp<i>の論理積を取る回路であり、ダイナミック回路である図10の論理積回路の構成について説明する。ここで、活性化信号ENは、図4で示したように遅延回路DLY2を経ることにより、時間遅延を有する活性化信号EN2に変換され、その後論理積回路に入力される。
【0143】
さて図10において、入力部44はP型トランジスタP80のゲートに接続されており、入力部45はN型トランジスタN70のゲートに接続されている。ここで、P型トランジスタP80のソースは固定電源に接続されており、ドレインは配線D80に接続されている。また、N型トランジスタN70のソースは接地に接続されており、ドレインは配線D81に接続されている。
【0144】
次に、配線D80はトランスミッションゲートTG80の入力部に接続されている。また、配線D80と配線D81とを接続するように、並列に複数(今の場合16個)のN型トランジスタN80〜N95が接続されている。ここで、各N型トランジスタN80〜N95のソースが配線D81側に接続されており、ドレインは配線D80側に接続されている。また、各N型トランジスタN80〜N95のゲートには、図9で示したXOR回路から出力される排他論理和信号cmp<0:15>が各々入力する。
【0145】
さらに入力部44は、トランスミッションゲートTG80のN型ゲートに接続され、他方でインバータG80を介してトランスミッションゲートTG80のP型ゲートに接続されている。
【0146】
トランスミッションゲートTG80の出力部は、インバータG81,G82を介して、論理積の演算結果である判定信号(HIT or MISS)が出力される出力部46に接続されている。ここで、前段のインバータG81の入力部と出力部との間には、帰還のインバータG83が並列に接続されている。
【0147】
上記構成において、トランスミッションゲートTG80、インバータG80,G81,G83により、ラッチ回路LAT80を構成している。
【0148】
以上のように、本実施の形態に係る比較器201では、実施の形態1と異なり、活性化信号ENによるXOR回路の制御を行わないため、図10で示した論理積回路に新たにN型トランジスタN70を設けている。
【0149】
次に、図11に示すタイミングチャートに基づいて、上記各回路の動作について説明する。以下では、参照タグ情報TCを構成する所定のi番目のビットである参照ビットTCB<i>、およびタグ情報TMを構成する所定のi番目のビットであるタグ情報ビットTMB<i>について言及するが、他の参照ビットTCB<0・・i−1,i+1・・15>、タグ情報ビットTMB<0・・i−1,i+1・・15>についても同様の議論が成立する。
【0150】
<回路の動作説明>
はじめに、図9のXOR回路の動作について説明する。
【0151】
まず、クロック信号CLKの立上りエッジに同期して、CPUからアドレスデータ2が出力され、アドレスデータ2の上位ビットである参照タグ情報TCを構成する参照ビットTCB<i>は、図9に示した各XOR回路に入力される。また同時に、アドレスデータ2の下位ビットであるIndexは図2で示したTAG−RAMに入力され、タグ情報ビットTMB<i>の読み出しを開始させる。
【0152】
さて、図2で示すTAG−RAMにIndexが入力されてから時刻Δt1後に、当該TAG−RAMからタグ情報ビットTMB<i>が出力される。なお、これとほぼ同時に、「H」レベルの活性化信号ENが出力される。
【0153】
ここで、通常図6で示したセンスアンプSAの後段には、図示していないがラッチ回路とドライバとが設けられているので、クロック信号CLKの立ち上がりから時刻Δt1までは、タグ情報ビットTMB<i>として前サイクルのデータが保持・出力される。
【0154】
したがって、排他論理和信号cmp<i>としては、以前のタグ情報ビットTMB<i>に基づいた演算結果が出力される。しかし、Δt1後には、今比較したい正規のタグ情報ビットTMB<i>が入力部32より入力されてくるので、当該時間後には、排他論理和信号cmp<i>としては、現タグ情報ビットTMB<i>に基づいた演算結果が出力される。
【0155】
さて例えば、現タグ情報ビットTMB<i>、参照ビットTCB<i>ともに「H」レベルである場合には、入力部31より入力される「H」レベルの信号により、トランスミッションゲートTG30はオフ状態となり、トランスミッションゲートTG31はオン状態となる。
【0156】
したがって、「H」レベルである現タグ情報ビットTMB<i>は、トランスミッションゲートTG31およびインバータG48を経ることにより、出力部33からは、「L」レベルの排他論理和信号cmp<i>が出力される。
【0157】
他方、現タグ情報ビットTMB<i>、参照ビットTCB<i>ともに「L」レベルである場合には、入力部31より入力される「L」レベルの信号により、トランスミッションゲートTG31はオフ状態となり、トランスミッションゲートTG30はオン状態となる。
【0158】
したがって、「L」レベルである現タグ情報ビットTMB<i>は、インバータG47、トランスミッションゲートTG30およびインバータG48を経ることにより、出力部33からは、「L」レベルの排他論理和信号cmp<i>が出力される。
【0159】
次に、現タグ情報ビットTMB<i>が「H」レベルであり、参照ビットTCB<i>が「L」レベルである場合には、入力部31より入力される「L」レベルの信号により、トランスミッションゲートTG31はオフ状態となり、トランスミッションゲートTG30はオン状態となる。
【0160】
したがって、「H」レベルである現タグ情報ビットTMB<i>は、インバータG47、トランスミッションゲートTG30およびインバータG48を経ることにより、出力部33からは、「H」レベルの排他論理和信号cmp<i>が出力される。
【0161】
また、現タグ情報ビットTMB<i>が「L」レベルであり、参照ビットTCB<i>が「H」レベルである場合には、入力部31より入力される「H」レベルの信号により、トランスミッションゲートTG30はオフ状態となり、トランスミッションゲートTG31はオン状態となる。
【0162】
したがって、「L」レベルである現タグ情報ビットTMB<i>は、トランスミッションゲートTG31およびインバータG48を経ることにより、出力部33からは、「H」レベルの排他論理和信号cmp<i>が出力される。
【0163】
以上から分かるように、実施の形態1と同様、現タグ情報ビットTMB<i>と参照ビットTCB<i>のレベルが一致するときは「L」レベルの排他論理和信号cmp<i>が出力され、一致しないときには「H」レベルの排他論理和信号cmp<i>が出力される。
【0164】
次に、図10の論理積回路の動作について説明する。
【0165】
図9のXOR回路にて、タグ情報ビットTMB<i>が読み出されてから排他論理和信号cmp<i>が確定するまでに時間Δt2かかるとすると、図4において、当該Δt2の時間遅延値を有する遅延回路DLY2を配置する。そうすると、活性化信号ENに対するΔt2の時間遅延を有する活性化信号EN2が生成される。
【0166】
したがって、当該活性化信号EN2が立ち上がるまで、つまり図9のXOR回路にて排他論理和信号cmp<i>が確定するまでは、活性化信号EN2は「L」レベルなので、P型トランジスタP80はオン状態となっており、配線D30のプリチャージを行っている。なお、このときN型トランジスタN70はオフ状態である(非活性状態)。
【0167】
また、活性化信号EN2が「L」レベルの間は、ラッチ回路LAT80のトランスミッションゲートTG80はオフ状態となるので、判定信号は以前の値を保持する。
【0168】
次に、タグ情報ビットTMB<i>が読み出されてから時間Δt2が経過し、活性化信号EN2が立ち上がり「H」レベルに設定されると、P型トランジスタP80がオフ状態となり、トランスミッションゲートTG80はオン状態となる。また、このときN型トランジスタN70はオン状態となり、配線D81は接地電位となる(活性状態)。
【0169】
当該状態において、前段で確定した排他論理和信号cmp<0:15>が全て「L」レベルであるとき(すなわち、タグ情報TMと参照タグ情報TCとが一致するとき)は、図10で示した論理積回路を構成するすべてのN型トランジスタN80〜N95がオフ状態となるので、配線D80の電位は「H」レベルのままとなる。
【0170】
したがって、今トランスミッションゲートTG80はオン状態であるので、当該「H」レベルがラッチ回路LAT80に取り込まれると共に、インバータG81,G82を経て出力部46から判定信号が「H」レベルで出力される。つまり、タグ情報TMと参照タグ情報TCが完全に一致する場合には(HITの場合には)、判定信号として「H」レベルの信号が出力される。
【0171】
これに対して、前段のXOR回路で確定した排他論理和信号cmp<0:15>のうち、一つでも「H」レベルの信号がある場合(すなわち、タグ情報TMと参照タグ情報TCとが一致しないとき)には、当該「H」レベルの信号が入力されるN型トランジスタN80〜N95はオン状態となるので、配線D80の電位は接地電位、つまり「L」レベルへと変化する。
【0172】
したがって、今トランスミッションゲートTG80はオン状態であるので、当該「L」レベルがラッチ回路LAT80に取り込まれると共に、インバータG81,G82を経て出力部46から判定信号が「L」レベルで出力される。つまり、タグ情報TMと参照タグ情報TCが不一致の場合には(MISSの場合には)、判定信号として「L」レベルの信号が出力される。
【0173】
このようにして、本実施の形態に係る比較器201においても正常な判定処理を行うことができる。
【0174】
また、本実施の形態に係る論理積回路では、活性化信号EN2により制御される、導電形式の異なる2つのトランジスタP80,N70により、当該論理積回路の活性状態/非活性状態とを制御しているので、XOR回路での活性化を制御する必要がなくなる。
【0175】
したがって、本実施の形態に係る各XOR回路では、実施の形態1に係る各XOR回路に比べて、NORゲートが2個、インバータが1個、P型トランジスタ1個不要となる。よって、今の場合16ビットのタグ情報TMと参照タグ情報TCとの比較を考えてきたので、この場合XOR回路が16個必要となり、4×16個の回路素子を削除することができる。
【0176】
これにより、回路全体の面積を縮小化させることができ、また消費電力の低減も図ることができる。
【0177】
また、実施の形態1で説明したように、XOR回路の動作を最速化させるためには、タグ情報TMと活性化信号ENとを同時に供給させる必要があるが、以前のタグ情報TMに基づく排他論理和信号cmpを、より確実に出力させないためには、活性化信号ENをタグ情報TMの読み出し時より若干遅らせて供給する必要がある。つまり、実施の形態1では、上記理由に基づく若干のタイムマージンを要する場合があるのである。
【0178】
しかし、実施の形態2に係るXOR回路では、活性化信号ENでの制御を要していないので、上記タイムマージンを必要としないので、XOR回路における全体として演算処理時間を短縮することができる。
【0179】
<実施の形態3>
実施の形態1において、比較器201でのHIT/MISSの判定が必要なのは、TAG−RAMからタグ情報TMを読み出すときである。したがって、TAG−RAMへタグ情報TMを書き込むときに、比較器201を動作させなければ消費電力を低減させることができる。
【0180】
そこで、本実施の形態では、TAG−RAMからタグ情報TMを読み出すときのみに比較器201を動作させることができる半導体回路を提供することを目的とする。
【0181】
図12は、TAG−RAMからタグ情報TMを読み出すときのみに、比較器201を動作させることを可能にする、TAG−RAMの回路を示す図である。図12に示すTAG−RAMは、図6で示したTAG−RAMとほぼ同じであるが、以下の点において異なる。なお、センスアンプSA2の具体的構成として、本実施の形態においても図7で示した構成を採用する。
【0182】
上記両図の相違点とは、ダミーカラムDCにおいて、ダミービット線dbitの他方端に接続されているのがインバータG40ではなく(図6)、ANDゲートG100であるという点である(図12)。
【0183】
ANDゲートG100の一方の入力部には、当該入力部の手前で信号が反転するような構造で上記のダミービット線dbitが接続され、他方の入力部には、TAG−RAMからのタグ情報TMの読み出し/書き込みの時期に応じた制御信号REを伝送する配線が接続されている。なお、図6で示したインバータG40の出力部と同様に、センスアンプSA,SA2の活性化は、当該ANDゲートG100の出力部からのセンスイネーブル信号SEにより制御されている。
【0184】
図12に示したTAG−RAM回路において、タグ情報TMの読み出し時には制御信号REとして「H」レベルの信号を送出する。すると、タグ情報TMの読み出し時には、所定のワード線word<i>と接続されているN型トランジスタN20がオン状態となり、ダミービット線dbitが接地電位となるので、ANDゲートG100の出力部からは「H」レベルのセンスイネーブル信号SEが出力さる。以後の動作は、実施の形態1で説明した動作と同じなので、ここでの説明は省略する。
【0185】
さて、これに対して、タグ情報TMの書き込み時には制御信号REとして「L」レベルの信号を送出する。そうすると、ANDゲートG100の出力部からは「L」レベルのセンスイネーブル信号SEが出力される。これにより、センスアンプSA,SA2はともに非活性状態へと変化する。これにより、センスアンプSA2の出力からは、図7の構成からも分かるように「L」レベルの活性化信号ENが出力される。
【0186】
したがって、図3で示したXOR回路では、各トランスミッションゲートTG20,TG21はオフの状態が維持され、P型トランジスタP20がオン状態となるので(非活性状態)、演算処理を行わず、排他論理和信号cmpは「L」レベルとなる。
【0187】
また、図4で示した遅延回路DLY2により、活性化信号EN2は活性化信号ENに基づいて生成されるので、当該タグ情報TMの書き込時には、活性化信号EN2も「L」レベルとなるので、図5,10で示した論理積回路においても演算処理を行わず、プリチャージ状態を保持することとなる(非活性状態)。
【0188】
以上のように、TAG−RAMからのタグ情報TMの書き込み時には、実施の形態1,2に係る比較器201を構成するXOR回路、論理積回路の各回路の動作を停止させることができるので、比較器201の低消費電力化を可能とすることができる。
【0189】
<実施の形態4>
上記でも説明したように、必要とするデータを読み出すときに、CPUからアドレスデータ2が出力されると、キャッシュメモリ1の所定のアドレスからタグ情報TMとデータとが同時に読み出され、当該読み出されたデータがCPUが必要とするデータであるか否かの判定を行う。
【0190】
その結果、判定信号がHIT(「H」レベル)であった場合には、読み出されたデータをCPUが利用する。したがって、判定信号がHIT(「H」レベル)であることを検出して、CPUにデータを取り込むように制御するのが一般的である。
【0191】
ところで、図5および図10で示した論理積回路を構成するラッチ回路LAT30、LAT80は、新たな判定信号が入力されるまでは前回の判定信号の結果を保持・出力している。
【0192】
したがって、前回の判定信号がHIT(「H」レベル)であった場合には、CPUは、今回判定すべき新たな判定信号が出力されてくるのを待たずに、前回の判定信号によりデータを取り込むと判断してしまう恐れがあった。
【0193】
そこで、本実施の形態に係る半導体回路を構成する比較器201では、データの読み出しを開始する度に、初期化設定により一定期間、判定信号が「L」レベルとなるように構成されている。
【0194】
図13は、初期化およびダイナミック回路である論理積回路の活性化を制御する活性化信号を生成するための回路を示す図である。また、図14は、本実施の形態に係るダイナミック回路である論理積回路を示す図である。以下、図13,14の構成について説明する。ここで、図13に示す回路は、図14に示す論理積回路の前段に位置している。
【0195】
<回路構成>
図13に示す回路は、クロック信号CLKの立ち上がり時を機に一定期間のパルスを発生するパルス発生器G111とSRラッチ回路G110とで構成されている。
【0196】
パルス発生器G111は、ANDゲートG112の一方の入力部には、クロック信号CLKが直接入力され、他方の入力部には、遅延回路DLY4とインバータG113とを介してクロック信号CLKが入力されるように、構成されている。ここで、パルス発生器G111におけるパルスの発生期間は、遅延回路DLY4の遅延値により決定される。
【0197】
SRラッチ回路G110においては、Set入力部には、図4で示した遅延回路DLY2から出力される活性化信号EN2が入力され、Reset入力部にはパルス発生器G111の出力(ANDゲートG112の出力)からの信号が入力され、Q出力部からは活性化信号EN4が図14に示す後段の論理積回路に向けて出力される。したがって、本実施の形態では、論理積回路の活性状態を制御する信号として、活性化信号EN4が入力される。
【0198】
ここで、活性化信号EN2は、実施の形態1で説明したように、活性化信号ENに基づいて遅延回路DLY2により生成され、XOR回路にて排他論理和信号cmp<i>が確定すると同時に、当該活性化信号EN2は立ち上がるように、遅延回路DLY2の遅延値が設定されているとする。
【0199】
次に、図14に示すダイナミック回路である論理積回路の構成について説明する。
【0200】
図14に示す論理積回路は、図5または図10に示す論理積回路とほぼ同じ構成となっているが、つまり、トランスミッションゲートTG22,TG80より前段の構成は同じであるが、以下の点において異なる。
【0201】
当該相違点とは、インバータG33,G83が除去されており、インバータG81またはG31の入力部と接地との間に、N型トランジスタN120が追加されている点において異なる。ここで、N型トランジスタN120のゲートは、インバータG30,G80の出力部に接続されている。なお、図14は、図10を上記のように変形させた場合について図示したものである。
【0202】
次に、図15に示すタイミングチャートに基づいて、上記各回路の動作について説明する。
【0203】
<回路の動作説明>
まず、クロック信号CLKが立ち上がり「H」レベルとなると同時に、図13で示したパルス発生器G111は、「H」レベルが所定の幅であるパルスの発生を開始し、当該パルスは、SRラッチ回路G110のReset入力部に入力される。
【0204】
SRラッチ回路G110のReset入力部に「H」レベルのパルス信号が入力されると、SRラッチ回路G110のQ出力部からは「L」レベルの活性化信号EN4が出力される。
【0205】
その後、パルス発生器G111から出力されるパルス信号が立ち下がり、SRラッチ回路G110のReset入力部に「L」レベルの信号が入力されたとしても、活性化信号EN2が「L」レベルの間は、当該SRラッチG110のQ出力部からは、「L」レベルの活性化信号EN4が出力され続ける。
【0206】
ここで、今活性化信号EN2は、クロック信号CLKが立ち上がってからΔt1(クロック信号CLKが立ち上がってから、TAG−RAMからタグ情報TMが読み出されるまでの時間)+Δt2(タグ情報TMが読み出されてから、排他論理和信号cmpが出力されるまでの時間)後に、立ち上がる。
【0207】
さて、「L」レベルの活性化信号EN4が生成されると、図14に示した論理積回路のN型トランジスタN70はオフ状態となり、P型トランジスタP80はオン状態となるので、論理積回路はプリチャージされ、配線D80は「H」レベルの電位となる(非活性状態)。
【0208】
また、これと同時に、トランスミッションゲートTG80がオフ状態となり、N型トランジスタN120はオン状態となるので、「L」レベルの判定信号が出力部46から出力される(判定信号の初期化)。つまり、前段のXOR回路にて排他論理和信号cmp<i>が出力されるまで(活性化信号EN2が「L」レベルの間)は、論理積回路からはMISSを表す判定信号が出力される。
【0209】
さて、前段のXOR回路において、新たなタグ情報ビットTMB<i>に基づいて演算処理を行い、結果として排他論理和信号cmp<i>が出力されると、これと同時に活性化信号EN2も立ち上がり「H」レベルとなり、SRラッチ回路G110のSet入力部に入力される。
【0210】
今、SRラッチ回路G110のReset入力部には、「L」レベルの信号が入力されてきているので、当該ラッチ回路G110の出力部Qからは、「H」レベルの活性化信号EN4が出力される。
【0211】
すると、図14で示した論理積回路のP型トランジスタP80およびN型トランジスタN120がオフ状態となり、また、トランスミッションゲートTG80およびN型トランジスタN70がオン状態となる。当該状態は判定処理を行う状態である(活性化状態)。つまり、活性化信号EN4が「H」レベルとなることにより、HIT/MISSの判定処理へと移行するのである。
【0212】
これ以降の論理積回路の判定処理は実施の形態2と同様であり、全ての排他論理和信号cmp<0:15>が「L」レベル(つまり、タグ情報TMと参照タグ情報TCとが一致する)場合には、「H」レベルの判定信号(HIT)が出力される。
【0213】
また、排他論理和信号cmp<0:15>のうち一つでも「H」レベル(つまり、タグ情報TMと参照タグ情報TCとが不一致する)場合には、「L」レベルの判定信号(MISS)が出力される。
【0214】
なお、活性化信号EN2は、クロック信号CLKが立ち下がってから所定の時間後には、「L」レベルに戻るので、その後、再びクロック信号CLKが立ち上がると、上記で説明したように活性化信号EN4は「L」レベルとなるので、次に読み出されたタグ情報TMに基づいた判定を行う前に、論理積回路の判定信号をMISSに設定・初期化することができる。
【0215】
これ以降の動作は上記動作と同じであり、繰り返し動作する。
【0216】
以上ように、クロック信号CLKの立上りエッジに同期してCPUがデータを取り込むためにアドレスデータ2が出力されてから、これに基づいた排他論理和信号cmp<i>が確定されるまでの間に、論理積回路の判定信号をMISSに設定・初期化する処理を行うことにより、誤ってCPUが前回の判定信号に基づいてデータを取り込むか否かの判断をすることがなくなるので、CPUが取り込むべきでないデータを取り込むことを防止することができる。
【0217】
なお、以上の動作から分かるように、遅延回路DLY4の遅延値は、クロック信号CLKが立ち上がってから排他論理和信号cmp<i>が確定するまでの時間より短くなるように設定されるべきである。さもないと、新たなタグ情報ビットTMB<i>に基づく排他論理和信号cmp<i>が確定しているにもかかわらず、論理積回路はMISSの判定信号を出力し続けるからである。
【0218】
なお、本実施の形態では、初期化および論理積回路の活性状態の制御に活性化信号EN4を採用したが、活性化信号EN2を採用してもかまわない。しかし、活性化信号EN4を採用することにより、クロック信号CLKの立ち上がりに同期した判定信号の初期化を実行することができる。
【0219】
<実施の形態5>
上記実施の形態に係る比較器201では、ダイナミック回路である論理積回路を活性化させるタイミングを、活性化信号EN2または活性化信号EN4によって図られていた。当該活性化信号EN2,EN4が「H」レベルとなることにより、論理積回路は活性化するのだが、このタイミングは、排他論理和信号cmp<i>の確定の時期に合わせる必要があった。これにより、活性化信号EN2、EN4を遅延回路DLY2,DLY4により生成する必要があった。
【0220】
そこで、本実施の形態5では、クロック信号CLKを論理積回路の活性状態を制御する信号として用いることにより、上記遅延回路を削除する。そのために、本実施の形態では、図16に示すダイナミック回路である論理積回路を採用する。
【0221】
図16に示す論理積回路は、図10に示した論理積回路と構成は同じであるが、P型トランジスタP80、N型トランジスタN70およびトランスミッションゲートTG80を制御する信号として、インバータG140により反転させられたクロック信号CLKが用いられている。
【0222】
以下、本実施の形態に係る論理積回路の動作について、図17に示すタイミングチャートに基づいて説明する。
【0223】
まず、クロック信号CLKが立ち上がり「H」レベルとなると、当該クロック信号CLKはインバータG140により「L」レベルに反転させられ、P型トランジスタP80のゲート、N型トランジスタN70のゲートおよびトランスミッションゲートTG80の各ゲートにそれぞれ入力される。
【0224】
すると、P型トランジスタP80はオン状態となり、N型トランジスタN70はオフ状態となり、トランスミッションゲートTG80がオフ状態となるので、ダイナミック回路である論理積回路は固定電源によりプリチャージされる(非活性化状態)。
【0225】
さて、クロック信号CLKが立ち上がってからΔt1後に、TAG−RAMからタグ情報ビットTMB<i>が読み出され、それからΔt2後に、XOR回路において排他論理和信号cmp<i>が確定し、当該排他論和信号cmp<i>が確定した後に、クロック信号CLKが立ち下がったとする。
【0226】
クロック信号CLKが立ち下がり「L」レベルとなると、当該クロック信号CLKはインバータG140により「H」レベルに反転させられ、P型トランジスタP80のゲート、N型トランジスタN70のゲートおよびトランスミッションゲートTG80の各ゲートにそれぞれ入力される。
【0227】
すると、P型トランジスタP80はオフ状態となり、N型トランジスタN70はオン状態となり、トランスミッションゲートTG80がオン状態となるので、ダイナミック回路である論理積回路は活性状態へと変移する。
【0228】
その後の、論理積回路における判定動作は実施の形態2と同様なので、ここでの説明は省略する。
【0229】
なお、以上の動作から分かるように、本実施の形態に係る論理積回路が正常に判定処理を行うためには、クロック信号CLKの周期tcycは以下に示す条件を満たさなければならない。
【0230】
tcyc/2>Δt1+Δt2
しかし通常、TAG−RAMを含めたメモリの動作では、当該メモリでのデータ読み出し開始から実際にデータが読み出されるまでの時間Δt1は、XOR回路における演算時間Δt2に比べて十分長く(つまり、Δt1≫Δt2)なるように設計されている。
【0231】
また、クロック周期tcycの後半にビット線のプリチャージが行われるため、これにより設定されるクロック周期tcycの半周期の長さは、時間Δt1に比べて十分に長く(つまり、Δt1≪tcyc/2)なる。
【0232】
したがって、通常のメモリ設定を行えば、上記条件、tcyc/2>Δt1+Δt2は満たされる。
【0233】
よって、クロック周期tcycの前半期間の間に、XOR回路において排他論理和信号cmp<i>は確定されるので、本実施の形態に係る比較器201は、正常に比較判定動作を行うことができる。
【0234】
以上のように、本実施の形態では、クロック信号CLKの立ち下がりを利用してダイナミック回路である論理積回路を活性化しているので、遅延回路を省略することができ、回路全体の縮小化および消費電力の削減を図ることができる。
【0235】
また、遅延回路を省略できるので、当該遅延回路のプロセス時におけるパラメータ変動による遅延回路特性のばらつきが原因となる、回路の誤動作の問題も生じることがなくなる。
【0236】
なお、本実施の形態では、図10に示した論理積回路に基づいて構成される場合について説明したが、図5に示した論理積回路に基づいて構成することも可能である。つまり、図5に示した論理積回路において、P型トランジスタP30のゲートに、クロック信号CLKを反転させた信号が入力されるような構成とすることにより、上記と同様な効果を得ることができる。
【0237】
<実施の形態6>
本実施の形態に係る半導体回路を、図18および図19に示す回路図に基づいて説明する。ここで、図18は、実施の形態6に係るタグ情報ビットTMB<0:15>を出力するセンスアンプSAとXOR回路等の構成を示す図である。また図19は、実施の形態6に係るダイナミック回路である論理積回路の構成を示す図である。
【0238】
<回路構成>
まず、図18に示す回路構成について説明する。
【0239】
図18において符号SAは、図6または図12で示したTAG−RAMに設けられている、本実施の形態に係るセンスアンプSAを示しており、具体的な構成が描かれている。
【0240】
データ線DATAが接続される入力部160は、配線D160に接続されており、データ線DATACが接続される入力部161は、配線D161に接続されている。また、配線D160と配線D161との間には、並列に2段の回路群が接続されている。
【0241】
まず、前段の回路群の構成について説明する。
【0242】
P型トランジスタP162の一端は、配線D160が接続されており、当該P型トランジスタP162の他端は、配線D161が接続されている。
【0243】
また、P型トランジスタP163のドレインはP型トランジスタP162の一端側に接続され、ソースは固定電源に接続されている。また、P型トランジスタP164のドレインはP型トランジスタP162の他端側に接続され、ソースは固定電源に接続されている。ここで、P型トランジスタP162,P163,P164のゲートには、共通にクロック信号CLKが入力される。
【0244】
次に、後段の回路群の構成について説明する。
【0245】
P型トランジスタP160の一端は、配線D160に接続されており、P型トランジスタP161の一端は、配線D161に接続されている。
【0246】
P型トランジスタP160の他端は、P型トランジスタP165とN型トランジスタN160とを直列に接続させることにより構成されるCMOSインバータC160の出力側に接続されている。これに対して、P型トランジスタP161の他端は、P型トランジスタP166とN型トランジスタN161とを直列に接続させることにより構成されるCMOSインバータC161の出力側に接続されている。
【0247】
また、CMOSインバータC160とC161の入出力部を相互に接続させことにより、相互接続されたCMOSインバータが構成されている。
【0248】
ここで、P型トランジスタP165、P166のソースは固定電源に接続されており、N型トランジスタN160,N161のソースはN型トランジスタN162を介して接地に接続されている。
【0249】
すなわち、CMOSインバータC160,C161およびP型トランジスタP160,P161により、スタティックなCMOS型メモリセルを構成している。
【0250】
さらに、P型トランジスタP160,P161のゲート、およびN型トランジスタN162のゲートには、共通でセンスイネーブル信号SEが入力されている。
【0251】
以上が、本実施の形態に係るセンスアンプSAの具体的な構成である。
【0252】
ここで、実施の形態1では、通常センスアンプSAの出力側には、タグ情報ビットTMB<i>を保持するためのラッチ回路および素子駆動用のドライバが接続されている。これは、クロック信号CLKが「L」レベルに変化すると、センスアンプSAが初期化され、出力データが消えてしまうからである。
【0253】
つまり、クロック信号CLKが「H」レベルの間にXOR回路での演算処理が終了すれば問題ないのだが、活性化信号ENの制御下にあるXOR回路では、必ずクロック信号CLKが「H」レベルの間に演算処理が終了するとは言えない為、当該演算が終了しないときの補償用回路として当該ラッチ回路が設けられている。
【0254】
しかし、本実施の形態では、XOR回路の活性化信号ENによる制御を要しないのでラッチ回路は不要となる。また、後述するように本実施の形態に係るXOR回路では、駆動させるべき素子の数が実施の形態1のそれと比べて少ないので、素子駆動用のドライバも省略することができる。
【0255】
これにより、タグ情報TMB<i>のXOR回路への供給が、実施の形態1に比べて高速される。
【0256】
さて本実施の形態では、ラッチ回路や素子駆動用のドライバは削除するが、センスアンプSAは、NORゲートG163,G164を介して後段のXOR回路へと接続される。
【0257】
ここで、NORゲートG163の一方の入力部は、CMOSインバータC160の出力側と接続されている。また、NORゲートG164の一方の入力部は、CMOSインバータC161の出力側と接続されている。なお、NORゲートG163,G164の他方の入力部には、インバータG165を介して共通にセンスイネーブル信号SEが入力される。
【0258】
さて次に、同図(図18)の本実施の形態に係るXOR回路の具体的な説明をする。
【0259】
XOR回路は、2つのトランスミッションゲートTG160,TG161とを有しており、トランスミッションゲートTG160の入力部には、NORゲートG163の出力部が接続されており、トランスミッションゲートTG161の入力部には、NORゲートG164の出力部が接続されている。また、トランスミッションゲートTG160,TG161の出力部は共に、排他論理和信号cmp<i>を出力する出力部162に接続されている。
【0260】
また、参照ビットTCB<i>が入力される入力部163はインバータG166を介して、トランスミッションゲートTG160のP型ゲートとトランスミッションゲートTG161のN型ゲートとにそれぞれ接続されている。さらに、入力部163はインバータG166,G167を介して、トランスミッションゲートTG160のN型ゲートとトランスミッションゲートTG161のP型ゲートとにそれぞれ接続されている。
【0261】
以上が、本実施の形態に係るXOR回路の具体的な構成である。
【0262】
次に、図19に示す本実施の形態に係る論理積回路について説明する。
【0263】
本実施の形態に係る論理積回路の構成は、図5で示した論理積回路の構成と同じであるが、P型トランジスタP30のゲート、トランスミッションゲートTG22のゲートに活性化信号が入力されるのではなく、センスイネーブル信号SEが入力される点において異なる。
【0264】
以下、本実施の形態に係る比較器201の動作について説明する。
【0265】
<回路の動作説明>
まず、クロック信号CLKが「L」レベルの期間では、図18で示したP型トランジスタP162,P163,P164は、それぞれオン状態となるので、入力部160,161と接続している配線D160,D161は、共に「H」レベルにプリチャージされる。
【0266】
当該期間では、図6等で示したダミーカラムDCにより生成されるセンスイネーブル信号SEも、もちろん「L」レベルなので、P型トランジスタP160,P161はともにオン状態となり、N型トランジスタN162はオフ状態となる。
【0267】
これにより、NORゲートG163,G164の一方の入力部には「H」レベルの信号が入力され、他方の入力部においても、「L」レベルのセンスイネーブル信号SEがインバータG165を経るので、「H」レベルの信号が入力される。よって、当該NORゲートG163,G164の出力部からは「L」レベルの信号が出力される。
【0268】
上記「L」レベルの信号が後段のXOR回路に入力され、参照ビットTCB<i>として「H」レベルが入力部163から入力された場合には、トランスミッションゲートTG160がオン状態となり、NORゲートG163から出力される「L」レベルの信号が、出力部162から「L」レベルの排他論理和信号cmp<i>として出力される。
【0269】
他方、参照ビットTCB<i>として「L」レベルが入力部163から入力された場合には、トランスミッションゲートTG161がオン状態となり、NORゲートG164から出力される「L」レベルの信号が、出力部162から「L」レベルの排他論理和信号cmp<i>として出力される。
【0270】
次に、クロック信号CLKが立ち上がる。ここで、図6において、N型トランジスタN20がオン状態となっても、当該N型トランジスタN20を介するダミービット線dbitが帯びている電気の接地への放電には多少時間を要するので、クロック信号CLKが立ち上がって所定の時間経過した後に、センスイネーブル信号SEは「H」レベルとなる。
【0271】
したがって、クロック信号CLKが立ち上がってから所定の時間までは、センスイネーブル信号SEは「L」レベルのままである。ここで、当該所定の時間は、N型トランジスタのサイズにより決められる。
【0272】
したがって、「L」レベルのセンスイネーブル信号SEにより、P型トランジスタP160,P161はともにオン状態を維持し、N型トランジスタN162はオフ状態を維持する。また、クロック信号CLKが「H」レベルとなっているので、P型トランジスタP162,P163,P164は、それぞれオフ状態となる。
【0273】
よって、前段で出力されたメモリセルMの電位により、配線D160,D161は若干の電位差は生じるものの、依然として「H」レベルが維持される。
【0274】
したがって、上記と同様の議論により当該NORゲートG163,G164の出力部からは「L」レベルの信号が出力され、後段のXOR回路では、参照ビットTCB<i>が「H」、「L」のどちらのレベルであっても、排他論理和信号cmp<i>として「L」レベルが出力される。
【0275】
つまり、センスイネーブル信号SEが「L」レベルの期間は、XOR回路から排他論理和信号cmp<i>として、「L」レベルの信号が出力されるのである。
【0276】
さて、センスイネーブル信号SEが「L」レベルの期間では、XOR回路の後段に位置する図19に示した論理積回路は、P型トランジスタP30はオン状態となり、トランスミッションゲートTG22はオフ状態となり、演算用の各N型トランジスタN0〜N15もオフ状態となるので、プリチャージが正常に実行される(非活性状態)。
【0277】
次に、センスイネーブル信号SEが「H」レベルになると、図18において、P型トランジスタP160,P161がオフ状態となり、N型トランジスタN162がオン状態となるので、前段のメモリセルMから出力されてたタグ情報ビット信号により生じていた若干の電位差が、CMOSC160,C161により増幅され、当該電位差に応じて、CMOSC160,C161の出力側のどちらか一方が「L」レベルとなり、他方側が「H」レベルとなる。
【0278】
CMOSC161の出力側の電位が「H」レベルだとすると、NORゲートG164の一方の入力部には「H」レベルの信号が入力され、NORゲートG163の一方の入力部には「L」レベルの信号が入力される。今、センスイネーブル信号SEは「H」レベルであるので、NORゲートG163,G164の他方の入力部には、共通に「L」レベルの信号が入力される。
【0279】
したがって、NORゲートG164の出力部からは、「L」レベルのタグ情報ビットTMB<i>が出力される。一方、NORゲートG163の出力部からは、「H」レベルのタグ情報ビットTMB*<i>が出力される。
【0280】
これに対して、CMOSC160の出力側の電位が「H」レベルだとすると、NORゲートG163の一方の入力部には「H」レベルの信号が入力され、NORゲートG164の一方の入力部には「L」レベルの信号が入力される。センスイネーブル信号SEは「H」レベルであるので、NORゲートG163,G164の他方の入力部には、共通に「L」レベルの信号が入力される。
【0281】
したがって、NORゲートG164の出力部からは、「H」レベルのタグ情報ビットTMB<i>が出力される。一方、NORゲートG163の出力部からは、「L」レベルのタグ情報ビットTMB*<i>が出力される。
【0282】
上記から分かるように、センスイネーブル信号SEが「H」レベルとなると、相補的な関係を有するタグ情報ビットTMB<i>とタグ情報ビットTMB*<i>とが、後段のXOR回路に入力されることとなる。
【0283】
その結果、タグ情報ビットTMB<i>が「H」レベルで、参照ビットTCB<i>が「H」レベルの場合、XOR回路のトランスミッションゲートTG160がオン状態となるので、出力部162から「L」レベルの排他論理和信号cmp<i>が出力される。
【0284】
また、タグ情報ビットTMB<i>が「H」レベルで、参照ビットTCB<i>が「L」レベルの場合、XOR回路のトランスミッションゲートTG161がオン状態となるので、出力部162から「H」レベルの排他論理和信号cmp<i>が出力される。
【0285】
また、タグ情報ビットTMB<i>が「L」レベルで、参照ビットTCB<i>が「L」レベルの場合、XOR回路のトランスミッションゲートTG161がオン状態となるので、出力部162から「L」レベルの排他論理和信号cmp<i>が出力される。
【0286】
また、タグ情報ビットTMB<i>が「L」レベルで、参照ビットTCB<i>が「H」レベルの場合、XOR回路のトランスミッションゲートTG160がオン状態となるので、出力部162から「H」レベルの排他論理和信号cmp<i>が出力される。
【0287】
つまり、タグ情報ビットTMB<i>と参照ビットTCB<i>とが一致する場合は、「L」レベルの排他論理和信号cmp<i>が出力され、タグ情報ビットTMB<i>と参照ビットTCB<i>とが不一致の場合は、「H」レベルの排他論理和信号cmp<i>が出力される。
【0288】
さて、図19に示した論理積回路では、センスイネーブル信号SEとして「H」レベルが入力されると、P型トランジスタP30はオフ状態となり、トランスミッションゲートTG22はオン状態となるので、ダイナミック回路である論理積回路は活性状態へと変移する。
【0289】
当該状態にて、排他論理和信号cmp<0:15>として「L」レベルの信号が各N型トランジスタN0〜N15のゲートへと入力してくると(つまり、タグ情報TMと参照タグ情報TCとが完全に一致する場合)、全てのN型トランジスタN0〜N15はオフ状態を維持するので、判定信号としてプリチャージされていた「H」レベルのHIT信号が出力される。
【0290】
これに対して、排他論理和信号cmp<0:15>のいずれか一つでも「H」レベルであった場合には(タグ情報TMと参照タグ情報TCとが不一致の場合)、当該「H」レベルの排他論理和信号cmp<0:15>がゲートに入力してきたN型トランジスタN0〜N15はオン状態となるので、配線D30は「L」電位へと変化し、判定信号として「L」レベルのMISS信号が出力される。
【0291】
以上が、本実施の形態に係る比較器の判定動作であり、正常に判定処理を行うことができる。
【0292】
他の実施の形態に係るXOR回路では、当該XOR回路内で相補的な関係を有するタグ情報TMB<i>,TMB*<i>を作っていたが、本実施の形態に係るXOR回路では、外部より当該相補的な関係を有するタグ情報TMB<i>,TMB*<i>が入力されてくるので、XOR回路の構成を簡略化させることができる。
【0293】
また、これとは別に、論理積回路の活性化を制御する信号として、タグ情報TMB<i>を出力するセンスアンプSAの制御も行っているセンスイネーブル信号SEを用いることにより、以下に示す効果も得ることができる。
【0294】
他の実施の形態では、XOR回路において排他論理和信号cmp<i>が確定するタイミングに合わせて、ダイナミック回路である論理積回路を活性化させる必要があった。つまり、論理積回路において、正常に判定処理を行うためには、排他論理和信号cmp<i>が確定してから当該論理積回路を活性化させる必要があり、当該排他論理和信号cmp<i>の確定時期と当該論理積回路を活性化させる時期との時間差が小さいほど、判定結果を早期に得ることができていた。
【0295】
しかし、上記時間差があまりに小さく設定しすぎると、比較器201の歩留が低下する傾向にある。これは、比較器201のプロセスにおけるパラメータの変動により、当初予定していた時間差がばらつき、排他論理和信号cmp<i>が確定する前に、論理積回路を活性化させてしまう場合も出てくるからである。
【0296】
したがって、通常は比較器201の動作マージンを動作速度より優先させる必要があり、これにより、ダイナミック回路である論理積回路を導入するに際し、当該論理積回路の速度向上には限界があった。
【0297】
そこで、本実施の形態に係る比較器201では、XOR回路として、判定したいタグ情報TMB<i>が入力されるまで(つまり、センスイネーブル信号SEが「L」レベルの期間)、後段の論理積回路の演算用N型トランジスタN0〜N15を動作させない信号(今の場合、「L」レベルの排他論理和信号cmp<i>)を出力する回路を構成することを条件に、論理積回路の活性化を制御する信号として、当該タグ情報TMB<i>の出力を制御するセンスイネーブル信号SEを用いることにより、上記で示した当該排他論理信号cmp<i>の確定時期と当該論理積回路を活性化させる時期との時間差が不要となるので、上記問題は解消され比較器201全体の動作を向上させることができる。
【0298】
なお、本実施の形態では、論理積回路の活性化を制御する信号として、センスイネーブル信号SEを用いたが、後段の論理積回路の演算用N型トランジスタN0〜N15を動作させない信号を出力するXOR回路を構成するという条件を満たすなら(ここで、実施の形態1のXOR回路も当該条件は満たしている)、これより速く立ち上がる信号を採用しても良いが、センスイネーブル信号を用いることにより、簡単な回路設計で最良のタイミングで論理積回路を活性化させることができる。
【0299】
また、タグ情報ビットTMB<i>および、これと相補的な関係にあるタグ情報ビットTMB*<i>を出力するゲートとして、NORゲートG163,G164の代わりにインバータを用いても良いが、上記のようにNORゲートG163,G164を用い、当該NORゲートG163,G164の出力をセンスイネーブル信号SEにより制御することにより、以下に示す効果を得ることができる。
【0300】
TAG−RAMにタグ情報TMを書き込むときには、データ線DATA,DATACのいずれかのが「H」レベルとなり、他方が「L」レベルとなる。このとき、もしインバータを用いたとすると、データの書き込時においても後段の比較器201は動作をしてしまうこととなる。
【0301】
しかし、NORゲートG163,G164を用いてセンスイネーブル信号SEによる制御を可能とすることにより、TAG−RAMにタグ情報TMを書き込むときには、センスイネーブル信号SEは「L」レベルであるので、書き込み時には排他論理和信号も「L」レベルと固定されることとなり、比較器201は動作しない。
【0302】
したがって、読み出し時にのみ比較器201は動作するので、余分な電力を消費しなくて済む。
【0303】
なお、上記各実施の形態では、TAG−RAMに記憶されているタグ情報TMに限定して話を進めたが、これに限るものでなく、他の一般的なメモリ(記憶装置)に記憶されている多ビットの第一のデータと、CPUからの多ビットの第二のデータとを比較する比較器を有する半導体回路においても適用できることは言うまでない。
【0304】
【発明の効果】
本発明の請求項1に記載の半導体回路は、多ビットの第一のデータを記憶している記憶装置と、前記第一のデータと多ビットの第二のデータとの比較を行う比較器とを有する半導体回路において、前記記憶装置からの前記第一のデータの出力を制御する第一の制御信号に基づいて、前記比較器の活性状態が制御されているので、簡易な回路設計により、比較器の演算動作の高速化を考慮した最良なタイミングで比較器の活性状態を制御することができる。したがって、第一のデータが読み出されてから比較器による演算処理を開始するまでの時間差を最小限に抑えることができ、最終的に、比較器全体の判定処理の高速化へとつながる。
【図面の簡単な説明】
【図1】キャッシュメモリから読み出されたタグ情報と参照タグ情報との比較の説明をするための図である。
【図2】TAG−RAMに対する入出力信号の様子を示す図である。
【図3】実施の形態1に係る排他論理和回路の具体的な構成を示す回路図である。
【図4】第一の活性化信号から第二の活性化信号を生成する様子を示す回路図である。
【図5】実施の形態1に係る論理積回路の具体的な構成を示す回路図である。
【図6】実施の形態1に係るTAG−RAMの具体的な構成を示す回路図である。
【図7】センスアンプSA2の具体的な構成を示す回路図である。
【図8】実施の形態1に係る比較器の動作を説明するためのタイミングチャートである。
【図9】実施の形態2に係る排他論理和回路の具体的な構成を示す回路図である。
【図10】実施の形態2に係る論理積回路の具体的な構成を示す回路図である。
【図11】実施の形態2に係る比較器の動作を説明するためのタイミングチャートである。
【図12】実施の形態3に係るTAG−RAMの具体的な構成を示す回路図である。
【図13】論理積回路の活動を制御する信号を生成するための回路を示す図である。
【図14】実施の形態4に係る論理積回路の具体的な構成を示す回路図である。
【図15】実施の形態4に係る比較器の動作を説明するためのタイミングチャートである。
【図16】実施の形態5に係る論理積回路の具体的な構成を示す回路図である。
【図17】実施の形態5に係る比較器の動作を説明するためのタイミングチャートである。
【図18】実施の形態6に係るセンスアンプと排他論理和回路の具体的構成を示す回路図である。
【図19】実施の形態6に係る論理積回路の具体的な構成を示す回路図である。
【符号の説明】
1 キャッシュメモリ、2 アドレスデータ、10〜12,14,31,32,44,45,160,161,163 入力部、13,15,33,46,162 出力部、201 比較器、C60,C61,C160,C161 CMOS、D30,D80,D81,D160,D161 配線、G20,G23,G24〜G28,G30〜G33,G40,G41,G43,G45〜G48,G80〜G83,G113,G140,G165〜G167 インバータ、G21,G22,G163,G164 NORゲート、G42,G100,G112 ANDゲート、G110 RSラッチ回路、G111 パルス発生器、LAT30,LAT80 ラッチ回路、N0〜N15,N20,N50,N60,N61,N70,N80〜N95,N120,N160〜N162 N型トランジスタ、P20,P30,P40〜P50,P60〜P63,P80,P160〜P166 P型トランジスタ、TG20〜TG22,TG30,TG31,TG80,TG160,TG161 トランスミッションゲート、CLK クロック信号、cmp<i> 排他論理和信号、DATA,DATAC データ線、DC ダミーカラム、DLY2,DLY4 遅延回路、EN,EN2,EN4 活性化信号、ENC カラム、M,MH メモリセル、MC メモリ部、RE 制御信号(第二の制御信号)、SE センスイネーブル信号(第一の制御信号)、SA,SA2 センスアンプ、TM タグ情報、TMB<i> タグ情報ビット、TC参照タグ情報、TCB<i> 参照ビット、XOR 排他論理和回路。
Claims (17)
- 多ビットの第一のデータを記憶している記憶装置と、前記第一のデータと多ビットの第二のデータとの比較を行う比較器とを有する半導体回路において、
前記記憶装置からの前記第一のデータの出力を制御する第一の制御信号に基づいて、前記比較器の活性状態が制御されている、
ことを特徴とする半導体回路。 - 前記記憶装置は、
第一の活性化信号を出力するセンスアンプを、備えており、
前記センスアンプの活性状態は、前記第一の制御信号により制御されており、
前記比較器は、前記センスアンプから出力される前記第一の活性化信号に基づいて制御されている、
ことを特徴とする請求項1に記載の半導体回路。 - 前記比較器は、
前記第一のデータと前記第二のデータとの対応するビット同士の排他論理和演算処理を行う、複数の排他論理和回路と、
前記各排他論理和回路から出力されるそれぞれの排他論理和信号の論理積の演算処理を行う論理積回路とを、
備えていることを特徴とする請求項2に記載の半導体回路。 - 前記排他論理和回路は、前記第一の活性化信号により活性状態/非活性状態が制御されている、
ことを特徴とする請求項3に記載の半導体回路。 - 前記論理積回路は、活性状態のときには、前記各排他論理和回路から出力されるそれぞれの排他論理和信号の論理積の演算処理を行い、非活性状態のときにはプリチャージが実行されるダイナミック回路であり、
前記論理積回路の活性状態/非活性状態は、クロック信号に基づいて制御されている、
ことを特徴とする請求項4に記載の半導体回路。 - 前記排他論理和回路における演算処理時間と同等またはそれ以上の時間遅延を前記第一の活性化信号に対して生じさせることにより、当該第一の活性化信号を第二の活性化信号に変換させる遅延回路を、さらに備えており、
前記論理積回路は、活性状態のときには、前記各排他論理和回路から出力されるそれぞれの排他論理和信号の論理積の演算処理を行い、非活性状態のときにはプリチャージが実行されるダイナミック回路であって、前記第二の活性化信号に基づいて、活性状態/非活性状態が制御されている、
ことを特徴とする請求項3または請求項4に記載の半導体回路。 - 前記論理積回路は、
並列に接続されており、演算処理を行う複数のトランジスタ群と、
前記トランジスタ群の一方端と固定電源とを接続している第一の導電形式のトランジスタと、
前記トランジスタ群の他方端と接地とを接続している第二の導電形式のトランジスタとを、
備えており、
前記第二の活性化信号により、前記第一の導電形式のトランジスタおよび前記第二の導電形式のトランジスタのどちらか一方のみがオン状態となるように制御されている、
ことを特徴とする請求項6に記載の半導体回路。 - 前記比較器は、前記第一のデータを前記記憶装置に書き込むときには比較処理を行わず、前記第一のデータを前記記憶装置から読み出すときに比較処理を行う、
ことを特徴とする請求項1に記載の半導体回路。 - 前記記憶装置は、前記第一の制御信号の出力を制御する論理ゲートをさらに備えており、
前記論理ゲートは、第二の制御信号により制御されている、
ことを特徴とする請求項8に記載の半導体回路。 - 前記論理積回路からの出力信号は、前記排他論理和回路から出力される所望の出力信号が確定するまで、所定の初期化状態となる、
ことを特徴とする請求項6に記載の半導体回路。 - 前記論理積回路は、
当該論理積回路の出力側に一端が接続されており、他端が固定電位に接続されている初期化用トランジスタを、備えており、
前記初期化用トランジスタは、前記排他論理和回路から出力される所望の出力信号が確定するまで、導通状態となるように前記第二の活性化信号に基づいて制御されている、
ことを特徴とする請求項10に記載の半導体回路。 - クロック信号に同期してパルス信号を発生させるパルス発生器と、
Reset入力部に前記パルス信号が入力され、Set入力部に前記第二の活性化信号が入力され、当該パルス信号と当該第二の活性化信号とから生成される第三の活性化信号を出力部から出力するラッチ回路とを、さらに備えており、
前記第三の活性化信号により前記初期化用トランジスは制御されている、
ことを特徴とする請求項11に記載の半導体回路。 - 前記論理積回路の活性状態/非活性状態は、前記第三の活性化信号により制御されている、
ことを特徴とする請求項12に記載の半導体回路。 - 前記比較器は、
前記第一のデータと前記第二のデータとの対応するビット同士の排他論理和演算処理を行う、複数の排他論理和回路と、
活性化状態のときには、前記各排他論理和回路から出力されるそれぞれの排他論理和信号の論理積の演算処理を行い、非活性状態のときにはプリチャージが実行されるダイナミック回路である論理積回路とを、
備えており、
前記論理積回路の活性状態/非活性状態は、前記第一の制御信号により制御されている、
ことを特徴とする請求項1に記載の半導体回路。 - 前記論理積回路は、論理積演算を行う複数のトランジスタ群を備えており、
前記排他論理和回路は、前記第一のデータが入力されるまで、前記論理積回路の前記複数のトランジスタ群を動作させない信号を出力する回路である、
ことを特徴とする請求項14に記載の半導体回路。 - 前記排他論理和回路には、前記第一のデータと当該第一のデータと相補的な関係にある第三のデータとが入力される、
ことを特徴とする請求項14に記載の半導体回路。 - 前記第一のデータと前記第三のデータの出力は、前記第一の制御信号により制御されている、
ことを特徴とする請求項16に記載の半導体回路。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002372198A JP2004206242A (ja) | 2002-12-24 | 2002-12-24 | 半導体回路 |
| US10/601,852 US20040120191A1 (en) | 2002-12-24 | 2003-06-24 | Semiconductor circuit comparing two data rows |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002372198A JP2004206242A (ja) | 2002-12-24 | 2002-12-24 | 半導体回路 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004206242A true JP2004206242A (ja) | 2004-07-22 |
Family
ID=32588416
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002372198A Pending JP2004206242A (ja) | 2002-12-24 | 2002-12-24 | 半導体回路 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20040120191A1 (ja) |
| JP (1) | JP2004206242A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012514825A (ja) * | 2009-01-22 | 2012-06-28 | クアルコム,インコーポレイテッド | 電力節約スタティックベースコンパレータ回路および方法ならびにそれらを採用する連想メモリ(cam)回路 |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9431070B1 (en) | 2015-08-31 | 2016-08-30 | National Tsing Hua University | Memory apparatus |
| US12315545B2 (en) * | 2022-07-15 | 2025-05-27 | Arm Limited | Systems, devices, and methods of cache memory |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4758982A (en) * | 1986-01-08 | 1988-07-19 | Advanced Micro Devices, Inc. | Quasi content addressable memory |
| US4975872A (en) * | 1988-11-17 | 1990-12-04 | Matsushita Electric Industrial Co., Ltd. | Dual port memory device with tag bit marking |
| DE69132367T2 (de) * | 1990-05-31 | 2001-02-22 | Stmicroelectronics, Inc. | Inhaltsadressierbarer Speicher |
| US6000008A (en) * | 1993-03-11 | 1999-12-07 | Cabletron Systems, Inc. | Method and apparatus for matching data items of variable length in a content addressable memory |
| US5617348A (en) * | 1995-07-24 | 1997-04-01 | Motorola | Low power data translation circuit and method of operation |
| US6240003B1 (en) * | 2000-05-01 | 2001-05-29 | Micron Technology, Inc. | DRAM content addressable memory using part of the content as an address |
-
2002
- 2002-12-24 JP JP2002372198A patent/JP2004206242A/ja active Pending
-
2003
- 2003-06-24 US US10/601,852 patent/US20040120191A1/en not_active Abandoned
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012514825A (ja) * | 2009-01-22 | 2012-06-28 | クアルコム,インコーポレイテッド | 電力節約スタティックベースコンパレータ回路および方法ならびにそれらを採用する連想メモリ(cam)回路 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20040120191A1 (en) | 2004-06-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6597620B1 (en) | Storage circuit with data retention during power down | |
| JP5905243B2 (ja) | 集積回路、クロックゲート回路、および方法 | |
| JP4932856B2 (ja) | 集積回路の動作パラメータを調整するための装置及び方法 | |
| JP5631906B2 (ja) | メモリアレイの動的ワードラインドライバ及びデコーダ | |
| US8289048B2 (en) | State transitioning clock gating | |
| CN112634969A (zh) | 存储器装置以及其读取页面媒体流的方法 | |
| KR100459726B1 (ko) | 멀티-비트 프리페치 반도체 장치의 데이터 반전 회로 및데이터 반전 방법 | |
| WO2007140040A2 (en) | Contention-free hierarchical bit line in embedded memory and method thereof | |
| Cosemans et al. | A 3.6 pJ/access 480 MHz, 128 kb on-chip SRAM with 850 MHz boost mode in 90 nm CMOS with tunable sense amplifiers | |
| JP2888201B2 (ja) | 半導体メモリ集積回路 | |
| CN102819418B (zh) | 超细粒度门控时钟的fifo数据存储方法及装置 | |
| US11775295B2 (en) | Processing-in-memory (PIM) devices | |
| JP2004206242A (ja) | 半導体回路 | |
| JP5240473B2 (ja) | 半導体記憶装置及びリフレッシュ制御方法 | |
| TWI358735B (en) | Memory access control method | |
| US9378782B1 (en) | Apparatus with write-back buffer and associated methods | |
| JP5424486B2 (ja) | 半導体集積回路 | |
| US8036045B2 (en) | Data output control circuit | |
| JP2004158084A (ja) | 半導体集積回路装置 | |
| JP3513158B2 (ja) | 半導体集積回路装置 | |
| JP2002033457A (ja) | 半導体集積回路装置 | |
| JPH08115593A (ja) | 半導体記憶装置、及びデータ処理装置 | |
| US20180293132A1 (en) | Semiconductor device | |
| Fuketa et al. | An average-performance-oriented subthreshold processor self-timed by memory read completion | |
| Upadhyay et al. | Design of Low Power SRAM Cell with Increased Read and Write Performance for Various Applications |