JP2006293716A - 半導体記憶装置 - Google Patents

半導体記憶装置 Download PDF

Info

Publication number
JP2006293716A
JP2006293716A JP2005113932A JP2005113932A JP2006293716A JP 2006293716 A JP2006293716 A JP 2006293716A JP 2005113932 A JP2005113932 A JP 2005113932A JP 2005113932 A JP2005113932 A JP 2005113932A JP 2006293716 A JP2006293716 A JP 2006293716A
Authority
JP
Japan
Prior art keywords
data
latch circuit
memory
tag
latch
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
Application number
JP2005113932A
Other languages
English (en)
Inventor
Satoru Chiba
哲 千葉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2005113932A priority Critical patent/JP2006293716A/ja
Priority to US11/393,859 priority patent/US7603510B2/en
Publication of JP2006293716A publication Critical patent/JP2006293716A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/104Embedded memory devices, e.g. memories with a processing device on the same die or ASIC memory designs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2245Memory devices with an internal cache buffer

Abstract

【課題】
従来、レイアウトの占有面積が小さく、高速アクセスが可能なタグメモリを有する半導体記憶装置を実現するのは困難であった。
【解決手段】
本発明にかかる半導体記憶装置は、被記憶データをラッチする第1のラッチ回路232と、第1のラッチ回路232とは反転した論理で動作する複数の第2のラッチ回路210を有し、選択信号により選択された第2のラッチ回路210により第1のラッチ回路232からの被記憶データを受け取り出力する記憶セル部202とを有するものである。
【選択図】図2

Description

本発明は、半導体記憶装置及びキャッシュメモリに関し、特に高速動作が可能な半導体記憶装置及びこれを具備するキャッシュメモリに関する。
近年、マイクロコンピュータ(以下、マイコンと称す)等の半導体装置では、コスト削減のためにチップサイズを小さくする要求が高まってきている。マイコン等は、一般的にプロセッサで使用するデータを一時保存するキャッシュメモリを有している。このキャッシュメモリは、小容量であっても高速アクセスが可能であることが要求されている。
一般的なキャッシュメモリを図6(a)に示す。キャッシュメモリ600はプロセッサ601と外部メモリに接続されており、キャッシュコントローラ610、データRAM(Random Access Memory)611、Valid Bitを記憶するバリットビットメモリ612、Dirty Bitを記憶するダーティービットメモリ613、タグメモリ614、比較器615を有している。
プロセッサ601は、データの処理を行うものである。キャッシュコントローラ610は、外部の主メモリとキャッシュメモリ600とのデータの書き込みと読み出しとを制御する。データRAM611は、プロセッサ601が処理を行うデータを記憶するメモリである。Valid Bitは、データRAM611上のデータが有効か否かを示す1ビットのデータであり、バリットビットメモリ612は、この1ビットのデータを記憶するメモリである。Dirty Bitは、データRAM611上のデータがプロセッサ601の処理によって変化したか否かを示す1ビットのデータであり、ダーティービットメモリ613は、この1ビットのデータを記憶するメモリである。タグメモリ614は、データRAM611上に存在するデータが主メモリのどのアドレスに対応するかを記憶するメモリである。タグメモリ614についての詳細は後述する。比較器615は、データRAM611上にデータが存在するか否かをバリットビットメモリ612、タグメモリ614及びプロセッサ601から入力されるデータによって判断した信号をキャッシュコントローラ610に出力する回路である。
すなわち、主メモリは、データの所在を表すアドレスを有しており、主メモリから転送されるデータにはアドレス情報が付加されている。プロセッサ601が正しいデータを扱うためには、キャッシュメモリ600上のデータと主メモリ上のデータとが一致している必要がある。キャッシュメモリ600は、主メモリ上のデータとキャッシュメモリ上のデータとの一致をアドレスデータとValid BitとDirty Bitとを用いて確認している。しかし、データの確認に用いる情報をデータRAM611にデータと共に記憶していたのでは、少ない容量のデータRAM611を効率良く使用することができない。そのために、データの確認に用いる情報をアドレスデータの構造に特化させたタグメモリ614に記憶する。タグメモリ614の構造をアドレスデータの構造に特化させることで、タグメモリ614をデータRAM611に比べ少ない占有面積であって、よりアクセス速度の速いものとすることが可能になる。
キャッシュメモリ600はキャッシュコントローラ610を介して、外部の主メモリと接続されている。プロセッサ601から要求された主メモリ上のアドレスのデータがデータRAM611上に存在しない場合に、キャッシュコントローラ610はデータRAM611に対してデータの書き込みを制御するWrite Data信号を出力し、データRAM611をデータ書き込み状態にする。その後、キャッシュコントローラ610はプロセッサ601に要求されたアドレスの主メモリのデータ(Cache Fill Data)をキャッシュメモリ600のデータRAM611に送信するする。このことにより、主メモリとキャッシュメモリ600内のデータは同じものになり、Valid Bitにフラグが立てられる。
また、データRAM611上にプロセッサ601が処理を行うデータが存在していた場合は、プロセッサ601はデータRAM611上のデータを用いて処理を行う。プロセッサ601で処理されたデータに変更が生じたか否かを判定するために、キャッシュメモリ600にはDirty Bitが設けられている。プロセッサでの処理によりデータRAM611上のデータに変更が生じた場合は、Dirty Bitにフラグが立てられる。キャッシュコントローラ610はこのフラグに基づきデータRAM611上の変更が生じたデータ(Write Back Data)受け取り、そのデータを主メモリに転送する。
プロセッサ601は、処理に必要なデータを要求する際に、そのデータの主メモリ上のアドレスを指定するアドレスデータを送信する。プロセッサから出力されるアドレスデータは、タグアドレスデータとIndexアドレスデータとを有している。タグアドレスデータとは、アドレスデータの上位数ビットである。また、Indexアドレスデータとは、アドレスデータの下位数ビットである。タグメモリ614は、キャッシュコントローラ610からの書き込み制御信号であるWriteTag信号が書き込み状態の時に、Indexアドレスデータと関連付けられたタグアドレスデータを記憶する。また、タグメモリ614は、キャッシュコントローラ610からのWriteTag信号が書き込み不可状態の時には、入力されるIndexアドレスデータに関連付けられたタグアドレスデータを出力する。
タグメモリ614から出力されたタグアドレスデータは、比較器615に入力される。比較器615はタグメモリ614からのタグアドレスデータとプロセッサ601からの出力されるタグアドレスデータとが一致している場合であって、Valid Bitにフラグが立っている場合、つまり、データRAM611に目的のデータが存在する場合に比較器615はHitの信号を出力する。この条件以外の場合、比較器615はMiss Hitを出力する。
つまり、キャッシュメモリ600は、内蔵するデータRAM611内のデータと主メモリ上のデータとが一致していた場合には、即座にプロセッサ601にデータを渡すことができる。キャッシュメモリ600はプロセッサ601と同一の半導体基板上に形成されているか又は高速インターフェイスでプロセッサ601と接続されているため、外部に設置される主メモリよりも速い動作周波数でプロセッサ601からアクセスできる。つまり、キャッシュメモリ600上にプロセッサ601が頻繁に使用するデータを蓄積しておくことでシステム全体の処理速度を向上させることが可能になる。
キャッシュメモリにおいてデータのアドレスをタグメモリで記憶し、データRAMのデータを制御する方法はダイレクト・マップ・キャッシュ方式、セット・アソシアティブ方式など様々な方式がある。これらのいずれの方法においてもタグメモリの機能はタグアドレスデータの記憶及び記憶されたタグアドレスデータの出力である。
ここで、ダイレクト・マップ・キャッシュ方式でのアドレスデータ、タグメモリ、データメモリの関係を図6(b)に示す。プロセッサから送信されるアドレスデータは、タグアドレスデータとIndexアドレスデータを有している。タグアドレスデータはアドレスの上位階層のアドレスを示しており、例えばページを表している。また、Indexアドレスデータはアドレスの下位階層のアドレスを示しており、例えばそのページ中の行を表している。タグメモリ614及びデータRAM611はIndexアドレスの個数分のメモリを有している。タグメモリ614のIndexアドレスとデータRAM611のIndexアドレスはお互いに関連付けられている。
プロセッサ601からアドレスデータが送信されると、タグメモリ614は送信されたアドレスデータからIndexアドレスデータ部分を参照する。タグメモリ614は参照されたIndexアドレスデータ部分に格納されているタグデータを出力する。その後、プロセッサ601から送信されたアドレスデータのタグアドレスデータとタグメモリ614から出力されたタグアドレスデータとIndexアドレスデータに関連付けられたValid Bitを比較・演算する。その結果、タグメモリ614上のタグアドレスデータとプロセッサ601から送信されたタグアドレスデータとが一致しており、Valid Bitのフラグがたっている場合にHitの信号を出力する。キャッシュメモリ600はこのHitの信号に基づきデータRAM611よりIndexアドレスに対応するデータを出力する。
従来、一般的にタグメモリにはSRAM(Static RAM)又はフリップフロップを用いたメモリが用いられている。従来例1として、タグメモリにSRAMを用いた場合を説明する。また、従来例2として、タグメモリにフリップフロップを用いたメモリを用いた場合を説明する。
従来例1にかかるSRAM700aを用いたタグメモリを図7(a)に示す。図7(a)に示すSRAM700aはIndexアドレスデータ、WriteTag信号、タグアドレスデータ、クロックが入力されており、それらの入力に基づいてタグデータを出力する回路である。
また、従来例1にかかるSRAM700aを用いたタグメモリの動作を示すタイミングチャートを図8(a)に示す。SRAM700aを用いたタグメモリは、1サイクルのシステムロックで動作を完了させるために、クロックとは反転したRAM´sクロックで動作している。
まず、タグアドレスデータの書き込み動作について説明する。SRAM700aは、WriteTag信号が書き込み状態である場合、RAM´sクロックの立ち上がりに基づいてタイミングT2でタグアドレスを取り込みそのデータを記憶する。
次に、タグアドレスデータの読み出し動作について説明する。SRAM700aは、WriteTag信号が書き込み不可状態である場合、RAM´sクロックが立ち上がりに基づいてタイミングT6でタグアドレスデータを読み出し、所定の遅延をもって出力する。そして、このタグアドレスデータとプロセッサ601からのタグデータとから得られる判定結果はタイミングT7でキャッシュコントローラ610に読み込まれる。
従来例2にかかるフリップフロップを用いたタグメモリ700bを図7(b)に示す。フリップフロップを用いたタグメモリ700bは動作周波数はSRAM700aよりも高速化することが可能である。また、フリップフロップの一例が特許文献1に開示されている。
従来例2にかかるフリップフロップを用いたタグメモリ700bはD−FF(D−フリップフロップ)710から710(以下、これらをまとめてD−FF710と称す)、ANDゲート720から720(以下、これらをまとめてANDゲート720と称す)、デコーダ730、Dラッチn731、マルチプレクサ732を有している。
D−FF710は入力端子D、出力端子Q、制御端子を有している。D−FF710は、制御端子に入力される信号の立ち上がり時の入力端子Dへの入力を出力として記憶する回路である。この従来例2においては、D−FF710の制御端子に入力される信号は、クロック信号を接続されるANDゲート720によって制御されたMaskedクロックである。
D−FF710は、記憶するタグアドレスデータのビット数と同じ数のD−FFが1つのセルとなっており、そのセルがIndexアドレスデータの個数と同じ個数用意されている。それぞれのD−FF710は、Indexアドレスデータに対応したタグアドレスデータを記憶する。
ANDゲート720は第1及び第2の入力端子と出力端子を有している。ANDゲート720は第1及び第2の入力端子への入力が共にHighレベル(例えば、電源電位)の場合、Highレベルの出力をする回路である。また、第1及び第2の入力端子への入力が前述の条件以外の時にはLowレベル(例えば、接地電位)を出力する。
ANDゲート720はD−FF710と同じ個数用意されている。それぞれのANDゲート720は対応するD−FF710に接続されている。第1の入力端子には、制御信号が入力されており、第2の入力端子にはクロックが入力されている。つまり、制御信号によって指定されたANDゲート720のみがクロックに基づいてHighレベルを出力する。これにより、Indexアドレスデータに基づいたD−FF710のみが書き込み状態となる。
デコーダ730にはx番目のIndexアドレスを指定するIndexアドレスデータとWriteTag信号が入力されている。デコーダ730はこの2つの入力に基づいて、データを書き込むx番目のD−FF710を選択するN+1ビット幅の信号WETag[N:0]信号を出力する。
Dラッチn731は入力端子D、出力端子Q、制御端子CLKを有している。Dラッチn731は制御端子CLKへの入力がLowレベルである間、ゲートが開いて入力端子Dに入力される信号を出力端子Qに出力する回路である。また、制御端子CLKへの入力がHighレベルである間、ゲートが閉じて制御端子CLKがHighレベルになる直前の出力を保持する。
Dラッチn731は前述の動作に基づいて、入力されるWETag[N:0]信号をラッチした出力を生成する。このラッチされた出力は、N+1ビット幅の信号LatchedWETag[N:0]信号として、制御信号となり、Indexアドレスデータに基づいてデータを書き込むD−FF710を選択する。
マルチプレクサ732はIndexアドレスデータに基づいて、出力するD−FFを選択する回路である。D−FF710に記憶されているタグアドレスデータはマルチプレクサ732を介して出力される。これにより、Indexアドレスデータに基づいて、D−FF710に記憶されているタグアドレスデータを出力する。
従来例2にかかるタグメモリの動作を示すタイミングチャートを図8(b)に示す。まず、タグアドレスデータの書き込み動作について説明する。フリップフロップを用いたタグメモリ700bはWriteTag信号が書き込み状態の区間に、その区間のIndexアドレスデータとWriteTag信号とに基づいてWETag[N:0]を生成される。生成されたWETag[N:0]はタイミングT2からタイミングT3のクロックのLow区間でDラッチn731によってデータの確定が行われる。タイミングT2からタイミングT4までの間、Dラッチn731はLatchedWETag[N:0]信号を出力する。このLatchedWETag[N:0]は複数あるD−FF710のいずれか1つを選択する。選択されたD−FF710にはタイミングT3の立ち上がりでその時のタグアドレスデータが保存される。
次に、タグアドレスデータの読み出し動作について説明する。フリップフロップを用いたタグメモリ700bは、Indexアドレスデータが変化すると、Indexアドレスデータに基づき指定されるD−FF710に保存されているタグアドレスデータを出力する。
フリップフロップを用いたタグメモリ700bをタグメモリとして用いた場合、クロックの前半部分からデータ読み出しを開始できるために、SRAM700aよりも高い周波数のシステムクロックを使用することができる。
特開平10−335992号
従来、キャッシュメモリでは前述の従来例1または従来例2のようなタグメモリが用いられてきた。しかしながら、従来例1のSRAM700aでタグメモリ614を構成した場合、RAM´sクロックの立ち上がりは、クロックの立ち下りとなるため、タグアドレスデータの出力はクロックの後半部分で行われることになる。さらに、タグデータ出力がされるまでにはタイミングT6から所定の遅延時間が必要となる。この場合、クロックの最高動作周波数はこの遅延時間の2倍以上に制限される。つまり、動作周波数の高速化が困難である問題がある。
また、従来例2のフリップフロップを用いたメモリ700bは、フリップフロップを用いているため、一般的に素子の構成によってSRAMよりも大きなレイアウト面積が必要となる。レイアウト面積の増加は、直接チップコストの増加となり、チップコスト削減が困難になる問題がある。
このように、従来、レイアウトの占有面積が小さく、高速アクセスが可能な記憶装置を有する半導体記憶装置を実現するのは困難であった。
本発明にかかる半導体記憶装置は、被記憶データをラッチする第1のラッチ回路と、前記第1のラッチ回路とは反転した論理で動作する複数の第2のラッチ回路を有し、選択信号により選択されたいずれか一の前記第2のラッチ回路により前記第1のラッチ回路からの前記被記憶データを受け取り出力する記憶セル部とを有するものである。
本発明においては、第1のラッチ回路と第2のラッチ回路とを反転した論理で動作させることによって、フリップフロップを用いることなく、ラッチ回路による被記憶データの記憶と高速なデータの読み出し動作とが可能である。また、ラッチ回路はフリップフロップに比べ構造が簡単であるため、レイアウト上の占有面積が小さく、チップ面積の削減が可能である。これにより、安価なタグメモリを実現することが可能である。
本発明においては、レイアウト上の占有面積が小さく、高速アクセスが可能な記憶装置を有する半導体記憶装置及びこれを有するキャッシュメモリを実現することが可能である。
実施の形態1
本発明の実施の形態1にかかる半導体記憶装置は、例えば、タグメモリ等の小容量で高速動作可能なメモリ、又は、これを用いるキャッシュメモリに好適である。なお、本実施の形態においてはタグメモリ及びこれを有するキャッシュメモリを例にとって説明するが、本発明は、これに限らず、後述するように、ダーティービットメモリ若しくはバリットビットメモリ、又は、これらを有するキャッシュメモリ等にも同様に適用可能である。
実施の形態1にかかるキャッシュメモリを図1(a)に示す。キャッシュメモリ100は、プロセッサ101と外部メモリとに接続されており、キャッシュコントローラ110、データRAM(Random Access Memory)111、Valid Bitを記憶するバリットビットメモリ112、Dirty Bitを記憶するダーティービットメモリ113、タグメモリ114、比較器115を有している。
プロセッサ101は、データの処理を行うものである。キャッシュコントローラ110は、外部の主メモリとキャッシュメモリ100とのデータの書き込みと読み出しとを制御する。データRAM111は、プロセッサ101が処理を行うデータを記憶するメモリである。Valid Bitは、データRAM111上のデータが有効か否かを示す1ビットのデータであり、バリットビットメモリ112は、この1ビットのデータを記憶するメモリである。Dirty Bitは、データRAM111上のデータがプロセッサ101の処理によって変化したか否かを示す1ビットのデータであり、ダーティービットメモリ113は、この1ビットのデータを記憶するメモリである。タグメモリ114は、データRAM111上に存在するデータが主メモリのどのアドレスに対応するかを記憶するメモリである。タグメモリ114についての詳細は後述する。比較器115は、データRAM111上のデータが存在するか否かをバリットビットメモリ112、タグメモリ114及びプロセッサ101から入力されるデータによって判断した信号をキャッシュコントローラ110に出力する回路である。
主メモリは、データの所在を表すアドレスを有しており、主メモリから転送されるデータにはアドレス情報が付加されている。プロセッサ101が正しいデータを扱うためには、キャッシュメモリ100上のデータと主メモリ上のデータとが一致している必要がある。キャッシュメモリ100は、主メモリ上のデータとキャッシュメモリ上のデータとの一致をアドレスデータとValid BitとDirty Bitとを用いて確認している。しかし、データの確認に用いる情報をデータRAM111にデータと共に記憶していたのでは、少ない容量のデータRAM111を効率良く使用することができない。そのために、データの確認に用いる情報をアドレスデータの構造に特化させたタグメモリ114に記憶する。タグメモリ114の構造をアドレスデータの構造に特化させることで、タグメモリ114をデータRAM111に比べ少ない占有面積であって、よりアクセス速度の速いものとすることが可能になる。
キャッシュメモリ100はキャッシュコントローラ110を介して、外部の主メモリと接続されている。プロセッサ101から要求された主メモリ上のアドレスのデータがデータRAM111上に存在しない場合に、キャッシュコントローラ110はデータRAM111に対してデータの書き込みを制御するWrite Data信号を出力し、データRAM111をデータ書き込み状態にする。その後、キャッシュコントローラ110はプロセッサ101に要求されたアドレスの主メモリのデータ(Cache Fill Data)をキャッシュメモリ100のデータRAM111に送信する。このことにより、主メモリとキャッシュメモリ100内のデータは同じものになり、Valid Bitにフラグが立てられる。
また、データRAM111上にプロセッサ101が処理を行うデータが存在していた場合は、プロセッサ101はデータRAM111上のデータを用いて処理を行う。プロセッサ101で処理されたデータに変更が生じたか否かを判定するために、キャッシュメモリ100にはDirty Bitが設けられている。プロセッサでの処理によりデータRAM111上のデータに変更が生じた場合は、Dirty Bitにフラグが立てられる。キャッシュコントローラ110はこのフラグに基づきデータRAM111上の変更が生じたデータ(Write Back Data)受け取り、そのデータを主メモリに転送する。
プロセッサ101は、処理に必要なデータを要求する際に、そのデータの主メモリ上のアドレスを指定するアドレスデータを送信する。プロセッサから出力されるアドレスデータは、タグアドレスデータとIndexアドレスデータとを有している。タグアドレスデータとは、アドレスデータの上位数ビットであって、例えば、被記憶データである。また、Indexアドレスデータとは、アドレスデータの下位数ビットであって、例えば、指定用データである。タグメモリ114は、キャッシュコントローラ110からの書き込み制御信号であるWriteTag信号が書き込み状態の時に、Indexアドレスデータと関連付けられたタグアドレスデータを記憶する。また、タグメモリ114は、入力されるIndexアドレスデータに関連付けられたタグアドレスデータを出力する。
タグメモリ114から出力されたタグアドレスデータは、比較器115に入力される。比較器115はタグメモリ114からのタグアドレスデータとプロセッサ101からの出力されるタグアドレスデータとが一致している場合であって、Valid Bitにフラグが立っている場合、つまり、データRAM111に目的のデータが存在する場合に比較器115はHitの信号を出力する。この条件以外の場合、比較器115はMiss Hitを出力する。
つまり、キャッシュメモリ100は、内蔵するデータRAM111内のデータと主メモリ上のデータとが一致していた場合には、即座にプロセッサ101にデータを渡すことができる。キャッシュメモリ100はプロセッサ101と同一の半導体基板上に形成されているか又は高速インターフェイスでプロセッサ101と接続されているため、外部に設置される主メモリよりも速い動作周波数でプロセッサ101からアクセスできる。つまり、キャッシュメモリ100上にプロセッサ101が頻繁に使用するデータを蓄積しておくことでシステム全体の処理速度を向上させることが可能になる。
キャッシュメモリにおいてデータのアドレスをタグメモリで記憶し、データRAMのデータを制御する方法はダイレクト・マップ・キャッシュ方式、セット・アソシアティブ方式など様々な方式がある。これらのいずれの方法においてもタグメモリの機能はタグアドレスデータの記憶及び記憶されたタグアドレスデータの出力である。
ここで、ダイレクト・マップ・キャッシュ方式でのアドレスデータ、タグメモリ、データメモリの関係を図1(b)に示す。プロセッサから送信されるアドレスデータは、タグアドレスデータとIndexアドレスデータを有している。タグアドレスデータはアドレスの上位階層のアドレスを示しており、例えばページを表している。また、Indexアドレスデータはアドレスの下位階層のアドレスを示しており、例えばそのページ中の行を表している。タグメモリ114及びデータRAM111はIndexアドレスの個数分のメモリを有している。タグメモリ114のIndexアドレスとデータRAM111のIndexアドレスはお互いに関連付けられている。
プロセッサ101からアドレスデータが送信されると、タグメモリ114は送信されたアドレスデータからIndexアドレスデータ部分を参照する。タグメモリ114は参照されたIndexアドレスデータ部分に格納されているタグデータを出力する。その後、プロセッサ101から送信されたアドレスデータのタグアドレスデータとタグメモリ114から出力されたタグアドレスデータとIndexアドレスデータに関連付けられたValid Bitを比較・演算する。その結果、タグメモリ114上のタグアドレスデータとプロセッサ101から送信されたタグアドレスデータとが一致しており、Valid Bitのフラグがたっている場合にHitの信号を出力する。キャッシュメモリ100はこのHitの信号に基づきデータRAM111よりIndexアドレスに対応するデータを出力する。
実施の形態1にかかるタグメモリ200を図2に示す。実施の形態1にかかるタグメモリ200は、選択信号生成回路201、記憶セル部202、ラッチ回路203、マルチプレクサ233を有している。
本発明の実施の形態では、制御信号がHighレベル(例えば、電源電圧)の間はゲートが開いて、入力信号を出力信号とし、制御信号がLowレベル(例えば、接地電位)の間はゲートが閉じており、ゲートが閉じる直前の入力信号の値を保持し出力するDラッチをDラッチpと称する。また、Dラッチpとは反転論理で動作するDラッチをDラッチnと称する。
選択信号生成回路201はデコーダ230、Dラッチn231(例えば、第3のラッチ回路)を有している。記憶セル部202は、Dラッチp210から210(以下、これらをまとめてDラッチp210と称す)及びANDゲート220から220(以下、これらをまとめてANDゲート220と称す)を有している。本実施の形態ではDラッチp210は、例えば、第2のラッチ回路であって、記憶するタグアドレスデータのビット数と同じ数のDラッチpを1つのセルとして、そのセルがIndexアドレスデータの個数と同じ数用意してある。また、ANDゲート220は、Dラッチp210のセルの数と同じ数用意してある。ラッチ回路203はDラッチn232(例えば、第1のラッチ回路)を有している。
実施の形態1にかかるタグメモリは、選択信号生成回路201にてx番目のIndexアドレスを示すIndexアドレスデータとWriteTag信号とからx番目のDラッチp210を選択するN+1ビット幅の信号WETag[N:0]信号を生成し、このWETag[N:0]信号をラッチしたN+1ビットの信号LatchedWETag[N:0]信号を生成する。WETag[N:0]信号は、タグメモリに供給されるクロックとは非同期に変化する非同期選択信号である。また、LatchedWETag[N:0]信号は、クロックに同期させてラッチされた選択信号である。
ラッチ回路203は、タグアドレスデータをラッチしたLatchedタグアドレスデータを生成する。記憶セル部202は、ANDゲート220によってクロック信号と前述のLatchedWETag[N:0]信号とからMaskedクロックを生成する。このMaskedクロックは、x番目のアドレスを示すIndexアドレスデータに基づいて選択されたx番目のDラッチp210に送信されるクロック信号である。このMaskedクロックによって書き込み状態となったDラッチp210には、前述のLatchedタグアドレスデータが記憶される。
マルチプレクサ233はIndexアドレスデータによって指定されたDラッチp210の信号を選択し、出力する回路である。
実施の形態1にかかるタグメモリ200の構成要素の接続について更に詳細に説明する。Dラッチn232は入力端子D、出力端子Q及び制御端子CLKを有している。Dラッチn232は制御端子CLKにクロック信号のLowレベルの信号が入力されている間、入力端子Dに入力されるタグアドレスデータを出力端子QのLatchedタグアドレスデータとして出力する。また、制御端子CLKにクロック信号のHighレベルが入力されている時には、クロック信号がHighレベルになる直前に、入力端子Dに入力されているタグアドレスデータを出力端子QのLatchedタグアドレスデータとして保持する。
Dラッチp210は入力端子D、出力端子Q及び制御端子CLKを有している。Dラッチp210は制御端子CLKにHighレベルの信号が入力されている間、入力端子Dに入力されるタグアドレスデータを出力端子Qから出力する。また、制御端子CLKにLowレベルが入力されている間は、Lowレベルになる直前に入力端子Dに入力されているタグアドレスデータを出力として記憶する。0番目からN番目のDラッチp210はIndexアドレスデータの個数分用意されており、各Indexアドレスに対応したデータを記憶する。タグアドレスデータは、タグメモリに記憶される被記憶データである。
デコーダ230には、IndexアドレスデータとWriteTag信号が入力されている。デコーダ230は、Indexアドレスデータに基づき指定されるタグメモリセルを書き込み可能状態にし、指定されないタグメモリセルを書き込み不可状態にするWETag[N:0]信号を出力する。IndexアドレスデータはアドレスデータのIndexアドレスを指定する指定用データである。WriteTag信号はDラッチp210を書き込み状態とするか否かを制御する制御信号である。
Dラッチn231は入力端子D、出力端子Q及び制御端子CLKを有している。Dラッチn231は制御端子CLKにクロック信号のLowレベルの信号が入力されている間、入力端子Dに入力されるWETag[N:0]信号を出力端子QからLatchedWETag[N:0]を出力する。このLatchedWETag[N:0]は、タグアドレスデータの書き込み又は読み出しを行うDラッチp210を指定する。また、制御端子CLKにクロックのHighレベルが入力されている時には、クロックがHighレベルになる直前(Lowレベルの時)に、入力端子Dに入力されているWETag[N:0]信号を出力端子QのLatchedWETag[N:0]として保持する。
ANDゲート220は第1及び第2の入力端子と出力端子を有している。ANDゲート220は第1の入力端子に入力されるLatchedWETag[N:0]がHighレベルであって、第2の入力端子に入力されるクロック信号がHighレベルである間、出力端子からHighレベルの信号を出力する。また、第1及び第2の入力端子が共にLowレベル、又は、異なるレベルとなる信号が入力されている間には出力端子よりLowレベルを出力する。また、ANDゲート220はDラッチpと同じ個数が用意されており、各ANDゲート220の出力は、対応するDラッチp210の制御端子CLKに接続されている。x番目のアドレスを示すIndexアドレスデータに基づいて生成されたLatchedWETag[N:0]によって選択されたx番目のANDゲート220はMaskedクロックを出力する。すなわち、Maskedクロックは選択されたDラッチp210に、選択期間のみ供給されるクロックである。
マルチプレクサ233は、Dラッチp210の出力がそれぞれ接続されており、入力されるIndexアドレスデータに基づいて選択されたDラッチp210の出力を選択して出力する回路である。
次に、実施の形態1にかかるタグメモリ200の動作を示すタイミングチャートを図3に示す。まず、タグアドレスデータの書き込み動作について説明する。図3に示すように、タイミングT1からタイミングT2の間でWriteTag信号が書き込み状態になる。これにより、デコーダ230はIndexアドレスデータとWriteTag信号よりWETag[N:0]信号を生成する。このWETag[N:0]信号はタイミングT2のクロックの立ち下がりで、Dラッチn231からLatchedWETag[N:0]として出力される。このLatchedWETag[N:0]は、タイミングT2からタイミングT4のクロックの立ち下がりがあるまで保持される。
また、入力されるタグアドレスデータは、タイミングT2のクロックの立ち下がりでDラッチn232の出力となる。この出力はLatchedタグアドレスデータとしてDラッチp210に入力される。このLatchedタグアドレスデータは、タイミングT2からタイミングT4のクロックの立ち下がりまでの間保持される。
タイミングT3でクロックが立ち上がると、LatchedWETag[N:0]で指定されたANDゲート220はMaskedクロックを出力する。このMaskedクロックの立ち上がりで指定されたANDゲート220に接続されるDラッチp210は、タイミングT3で確定しているLatchedタグアドレスデータの出力を開始し、タイミングT4でクロックの立ち下がり直前のLatchedタグアドレスデータを記憶する。
次に、タグアドレスデータの読み出し動作について説明する。タイミングT5からタイミングT6の間でIndexアドレスデータが変化すると、Indexアドレスデータに基づいてマルチプレクサ233が選択するDラッチp210が切り替わる。この時、WriteTag信号は書き込み不可状態であるため、Dラッチp210はデータ記憶動作を行わない。これにより、Indexアドレスデータの変化後、マルチプレクサ233の出力は、Indexアドレスデータに基づいたタグアドレスデータとなる。つまり、Indexアドレスデータの変化からマルチプレクサ233の出力が変化するまでの時間は、マルチプレクサ233の遅延時間であって、クロックの変化には依存しない。
実施の形態1のタグメモリ200によれば、従来のD−FFで構成されるタグメモリ同様にクロックの前半部分からデータの読み出しを開始できるために、タグメモリ200からタグアドレスデータを高速に読み出すことができる。
さらに、一般的にSRAMでは所定の容量をひとまとめにしてレイアウトする必要があるが、Dラッチp及びDラッチnはそれぞれの素子を個別にレイアウトできるため、SRAMと比べてレイアウトの自由度が高い。つまり、チップ上のブロックの隙間にレイアウトすることができるため、チップ面積を考慮した自由度の高い設計が可能である。
また、Dラッチp及びDラッチnのトランジスタ数は、D−FFのトランジスタ数に比べて少ないため、1つの素子を小さくレイアウトすることが可能である。例えば、タグメモリをD−FFで構成した場合の占有面積を100とした場合、同容量のタグメモリをDラッチp及びDラッチnで構成した場合、占有面積は例えば、70程度となる。
実施の形態1にかかるタグメモリの構成によれば、高速アクセスが可能でありながら、占有面積の小さなタグメモリを実現することが可能である。
実施の形態2
実施の形態2にかかるタグメモリも実施の形態1にかかるタグメモリと同様に、例えば、上述のキャッシュメモリに用いられるタグメモリである。実施の形態2にかかるタグメモリ400を図4に示す。図4を参照して、実施の形態2にかかるタグメモリ400について説明する。実施の形態2にかかるタグメモリ400は、実施の形態1にかかるタグメモリ200と同じ入力から同じ出力を生成する構成となっている。つまり、実施の形態1にかかるタグメモリ200と実施の形態2にかかるタグメモリ400とでは選択信号生成回路の構成が異なるのみである。よって、実施の形態1と同一の要素については同一の符号を付して説明を省略する。
実施の形態2にかかるタグメモリ400の選択信号生成回路401は、第4のラッチ回路としてのDラッチn410、第5のラッチ回路としてのDラッチn411及びデコーダ412を有している。Dラッチn410は、IndexアドレスデータをラッチしたLatchedIndexアドレス信号を生成する。Dラッチn411はWriteTag信号からラッチされたLatchedWriteTag信号を生成する。デコーダ412は、LatchedIndexアドレスデータとLatchedWriteTag信号とからLatchedWETag[N:0]信号を生成する。LatchedWETag[N:0]信号は、x番目のIndexアドレスを示すIndexアドレスデータに基づいて、タグデータの書き込みを行うDラッチp210を選択する選択信号である。
つまり、選択信号生成回路401は、IndexアドレスデータとWriteTag信号とから選択信号であるN+1ビット幅の信号LatchedWETag[N:0]信号を生成する。この動作より、実施の形態2の選択信号生成回路401の動作は、実施の形態1の選択信号生成回路201と同様である。
また、選択信号生成回路401は、IndexアドレスデータとWriteTag信号とが入力され、選択信号を生成し、記憶セル部202のANDゲート220に入力する点は、実施の形態1と同様である。
実施の形態2にかかるタグメモリ400の動作のタイミングチャートを図5に示す。まず、タグアドレスデータの書き込み動作について説明する。図5に示すように、タイミングT1からタイミングT2の間でWriteTag信号が書き込み状態になる。その後、タイミングT2とタイミングT3の間で、Dラッチn410がLatchedIndexアドレスデータを出力し、Dラッチn411がLatchedWriteTag信号を生成する。LatchedIndexアドレスデータ及びLatchedWETag[N:0]は、タイミングT2からタイミングT4のクロックの立ち下がりがあるまで保持される。
また、入力されるタグアドレスデータは、タイミングT2のクロックの立ち下がりでDラッチn232の出力となる。この出力はLatchedタグアドレスデータとしてDラッチp210に入力される。このLatchedタグアドレスデータは、タイミングT2からタイミングT4のクロックの立ち下がりまでの間保持される。
タイミングT3でクロックが立ち上がると、前述のLatchedWETag[N:0]で指定されたANDゲート220はMaskedクロックを出力する。このMaskedクロックの立ち上がりで指定されたANDゲート220に接続されるDラッチp210は、タイミングT3で確定しているLatchedタグアドレスデータの出力を開始し、タイミングT4でクロックの立ち下がり直前のLatchedタグアドレスデータを記憶する。
また、実施の形態2のタグメモリ400の読み出し動作は、実施の形態1にかかるタグメモリと同様の動作のため説明を省略する。
実施の形態2にかかるタグメモリにおいても、実施の形態1にかかるタグメモリと同様にIndexアドレスデータとWriteTag信号とから選択信号を生成し、これにより所定のDラッチp210を選択し、ラッチ回路203に供給されるタグアドレスを出力することができる。よって、実施の形態1にかかるタグメモリと実質的に同じ動作速度が実現可能である。さらに、実施の形態2にかかるタグメモリは、実施の形態1にかかるタグメモリにDラッチn410を追加するのみである。よって、実施の形態2にかかるタグメモリのレイアウト上の占有面積は、実施の形態1にかかるタグメモリと略同じ占有面積で実現することができる。
本発明は上記実施の形態に限られたものではなく、適宜変形することが可能である。本発明はタグメモリをDラッチpとDラッチnのペアによって構成するものである。そのため、適応するメモリの大小は、問題とはならない。例えば、1ビットデータを記憶するバリットビットメモリ、又は、ダーティービットメモリに適応することも可能であり、主メモリのタグメモリに適応することも可能である。また、本発明は上記実施の形態とは反転した論理であっても実現することが可能である。
本発明のキャッシュメモリを示す図である。 本発明の実施の形態1にかかるタグメモリを示す図である。 本発明の実施の形態1にかかるタグメモリの動作を示すタイミングチャートである。 本発明の実施の形態2にかかるタグメモリを示す図である。 本発明の実施の形態2にかかるタグメモリの動作を示すタイミングチャートである。 一般的なキャッシュメモリを示す図である。 従来のタグメモリを示す図である。 従来のタグメモリの動作を示すタイミングチャートである。
符号の説明
110 キャッシュコントローラ
111 データRAM
112 バリットビットメモリ
113 ダーティービットメモリ
114 タグメモリ
115 比較器
201 選択信号生成回路
202 記憶セル部
203 ラッチ回路
210、210、・・・、210 Dラッチp
211、211、・・・、211 ANDゲート
230 デコーダ
231、132 Dラッチn
233 マルチプレクサ
401 選択信号生成回路
410、411、412 Dラッチn

Claims (8)

  1. 被記憶データをラッチする第1のラッチ回路と、
    前記第1のラッチ回路とは反転した論理で動作する複数の第2のラッチ回路を有し、選択信号により選択された第2のラッチ回路により前記第1のラッチ回路からの前記第1のデータを受け取り出力する記憶セル部とを有する半導体記憶装置。
  2. 前記選択信号を生成する選択信号生成回路を有することを特徴とする請求項1に記載の半導体記憶装置。
  3. 前記選択信号生成回路は、前記被記憶データを記憶する前記第2ラッチ回路を指定する指定用データと前記第2のラッチ回路の書き込み状態を制御する制御信号とから半導体記憶装置に供給されるクロックとは非同期に変化する前記第2のラッチ回路を選択する非同期選択信号を生成するデコーダと、前記第1のラッチ回路と同一の論理で動作し、前記非同期選択信号を前記クロックに同期させてラッチし、前記選択信号を生成する第3のラッチ回路とを有することを特徴とする請求項1又は2に記載の半導体記憶装置。
  4. 前記選択信号生成回路は、前記第1のラッチ回路と同一の論理で動作し、前記選択された第2ラッチ回路を指定する指定用データをラッチする第4のラッチ回路と、前記第1のラッチ回路と同一の論理で動作し、前記第2のラッチ回路の書き込み状態を制御する制御信号をラッチする第5のラッチ回路と、前記第4のラッチ回路の出力と前記第5のラッチ回路の出力とから前記選択信号を生成するデコーダとを有することを特徴とする請求項1乃至3のいずれか1項に記載の半導体記憶装置。
  5. 前記選択信号と前記第1のラッチ回路に供給される第1のクロック信号とから前記第2のラッチ回路に供給する第2のクロック信号を生成するゲート回路を有することを特徴とする請求項1乃至4のいずれか1項に記載の半導体記憶装置。
  6. 前記指定用データに基づき指定された前記第2のラッチ回路の出力を選択して出力するマルチプレクサを有することを特徴とする請求項1乃至5のいずれか1項に記載の半導体記憶装置。
  7. 書き込みデータをラッチする第1のラッチ回路と、
    前記第1のラッチ回路とは反転した論理で動作する複数の第2のラッチ回路を有し、選択信号により選択された第2のラッチ回路により前記第1のラッチ回路からの前記書き込みデータを受け取り出力する記憶セル部とを有する半導体記憶装置。
  8. データメモリを有するキャッシュメモリであって、
    タグデータを記憶する第1のメモリと、
    前記データメモリのデータが有効であることを示すデータを記憶する第2のメモリと、
    前記データメモリのデータの変更の有無を示すデータを記憶する第3のメモリと、
    少なくとも第1乃至第3のメモリのいずれか一つは、
    当該メモリに記憶する被記憶データをラッチする第1のラッチ回路と、
    前記第1のラッチ回路とは反転した論理で動作する複数の第2のラッチ回路を有し、選択信号により選択された第2のラッチ回路により前記第1のラッチ回路からの前記被記憶データを受け取り出力する記憶セル部とを有する半導体記憶装置からなるキャッシュメモリ。
JP2005113932A 2005-04-11 2005-04-11 半導体記憶装置 Pending JP2006293716A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005113932A JP2006293716A (ja) 2005-04-11 2005-04-11 半導体記憶装置
US11/393,859 US7603510B2 (en) 2005-04-11 2006-03-31 Semiconductor device and storage cell having multiple latch circuits

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005113932A JP2006293716A (ja) 2005-04-11 2005-04-11 半導体記憶装置

Publications (1)

Publication Number Publication Date
JP2006293716A true JP2006293716A (ja) 2006-10-26

Family

ID=37188420

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005113932A Pending JP2006293716A (ja) 2005-04-11 2005-04-11 半導体記憶装置

Country Status (2)

Country Link
US (1) US7603510B2 (ja)
JP (1) JP2006293716A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011138212A (ja) * 2009-12-25 2011-07-14 Fujitsu Ltd キャッシュ装置、演算処理装置及び情報処理装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140059283A1 (en) * 2012-08-23 2014-02-27 Advanced Micro Devices, Inc. Controlling a memory array
US10185561B2 (en) 2015-07-09 2019-01-22 Centipede Semi Ltd. Processor with efficient memory access
US9575897B2 (en) * 2015-07-09 2017-02-21 Centipede Semi Ltd. Processor with efficient processing of recurring load instructions from nearby memory addresses

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62273693A (ja) * 1986-05-21 1987-11-27 Matsushita Electric Ind Co Ltd デコ−ド回路
JPH01256094A (ja) * 1988-04-05 1989-10-12 Matsushita Electric Ind Co Ltd レジスタファイル

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0490196A (ja) * 1990-08-03 1992-03-24 Fujitsu Ltd クロックパルス検出回路
KR0121131B1 (ko) * 1994-10-13 1997-11-10 문정환 반도체 메모리장치의 구동회로
JPH10335992A (ja) 1997-06-03 1998-12-18 Hitachi Ltd 半導体集積回路装置
US20040068607A1 (en) * 2002-10-07 2004-04-08 Narad Charles E. Locking memory locations
US7827375B2 (en) * 2003-04-30 2010-11-02 International Business Machines Corporation Defensive heap memory management
US8078636B2 (en) * 2005-08-24 2011-12-13 Temporal Dynamics, Inc. Database heap management system with variable page size and fixed instruction set address resolution
KR100660639B1 (ko) * 2005-12-02 2006-12-21 삼성전자주식회사 더블 데이터 레이트 반도체 장치의 데이터 출력 회로 및이를 구비하는 반도체 장치
US7469329B2 (en) * 2006-03-30 2008-12-23 International Business Machines Corporation Methods for dynamically resizing memory pools
US7509448B2 (en) * 2007-01-05 2009-03-24 Isilon Systems, Inc. Systems and methods for managing semantic locks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62273693A (ja) * 1986-05-21 1987-11-27 Matsushita Electric Ind Co Ltd デコ−ド回路
JPH01256094A (ja) * 1988-04-05 1989-10-12 Matsushita Electric Ind Co Ltd レジスタファイル

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011138212A (ja) * 2009-12-25 2011-07-14 Fujitsu Ltd キャッシュ装置、演算処理装置及び情報処理装置

Also Published As

Publication number Publication date
US7603510B2 (en) 2009-10-13
US20060242364A1 (en) 2006-10-26

Similar Documents

Publication Publication Date Title
CN108231106B (zh) 用于与单端口sram一起使用的可配置伪双端口架构
JP4330396B2 (ja) 半導体記憶装置
US20060133158A1 (en) Pipe latch circuit of multi-bit prefetch-type semiconductor memory device with improved structure
US8437209B2 (en) Integrated circuit
JP2007080325A (ja) 半導体記憶装置
CN111627487B (zh) 占据面积减少的熔丝电路
JP2004102799A (ja) レジスタファイル及びレジスタファイルの設計方法
US6725325B2 (en) Semiconductor memory device having a double data rate (DDR) mode and utilizing a plurality of comparison circuits to prevent errors due to a late write function
US8230140B2 (en) Latency control circuit and method using queuing design method
JP2006293716A (ja) 半導体記憶装置
US6166970A (en) Priority determining apparatus using the least significant bit and CAS latency signal in DDR SDRAM device
JP2007128603A (ja) メモリ回路
US5841731A (en) Semiconductor device having externally settable operation mode
US7057966B2 (en) Semiconductor memory device for reducing current consumption in operation
JP3872922B2 (ja) 半導体記憶装置及びメモリ混載ロジックlsi
EP0714100B1 (en) Synchronous memory device
US7132850B2 (en) Semiconductor integrated circuit and circuit design apparatus
KR100517765B1 (ko) 캐시 메모리 및 그 제어 방법
JP3583844B2 (ja) キャッシュメモリ方式
JP2008165879A (ja) 半導体記憶装置
US6886078B1 (en) Simultaneous access and cache loading in a hierarchically organized memory circuit
JP3642420B2 (ja) 半導体装置
US20090144504A1 (en) STRUCTURE FOR IMPLEMENTING REFRESHLESS SINGLE TRANSISTOR CELL eDRAM FOR HIGH PERFORMANCE MEMORY APPLICATIONS
KR100544871B1 (ko) 듀얼 라이트 백 버퍼_
US20070047289A1 (en) Semiconductor integrated circuit device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110201

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110628