JP2002007210A - デジタルデータ処理システム、それに使用される集積回路キャッシュメモリ装置およびキャッシュメモリの動作方法 - Google Patents

デジタルデータ処理システム、それに使用される集積回路キャッシュメモリ装置およびキャッシュメモリの動作方法

Info

Publication number
JP2002007210A
JP2002007210A JP2001079072A JP2001079072A JP2002007210A JP 2002007210 A JP2002007210 A JP 2002007210A JP 2001079072 A JP2001079072 A JP 2001079072A JP 2001079072 A JP2001079072 A JP 2001079072A JP 2002007210 A JP2002007210 A JP 2002007210A
Authority
JP
Japan
Prior art keywords
access
tag
cache
signal
hit
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
JP2001079072A
Other languages
English (en)
Inventor
Kun Sai
薫 崔
Meikin Nin
明 均 任
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2002007210A publication Critical patent/JP2002007210A/ja
Pending legal-status Critical Current

Links

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
    • 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/0877Cache access modes
    • G06F12/0882Page mode
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 デジタルデータ処理システムで使用されるキ
ャッシュメモリの性能向上と電力消耗を低減すること。 【解決手段】 制御器114は、タグRAM回路108a
への一番最近のアクセスに関したアクセス形態、動作モ
ード、そして、キャッシュヒット/ミスに対する状態情
報を貯蔵し、すぐ前のアクセス関連状態情報と現在のア
クセスのためのメインメモリアドレスのセットフィール
ドのうち一部を根拠にして現在のアクセスがすぐ前にア
クセスされたキャッシュラインと同一であるのかを判断
し、現在のアクセスがすぐ前にアクセスされたキャッシ
ュラインと同一である場合、タグRAM回路108aへの
アクセスをスキップできるようにする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はデジタルデータ処理
システム、詳細にはデジタルコンピュータシステムに関
し、さらにはそのシステムで使用される集積回路キャッ
シュメモリ(cache memory)装置およびキャッシュメモ
リの動作方法に関する。
【0002】
【従来の技術】一般的に、コンピュータシステムは、中
央処理装置(central processing unit:CPU)、システ
ムバス(system bus)、メモリサブシステム(memory subs
ystem)、そして、周辺回路(peripherals)で構成され
る。中央処理装置はメモリサブシステムに貯蔵された命
令を実行し、バスは中央処理装置とコンピュータシステ
ムの他の装置の間で情報伝達通路(communication path
way)の役割をする。メモリサブシステムは、一般的に
ダイナミックランダムアクセスメモリ(Dynamic Random
Access Memory:DRAM)のように速度は遅いが安価なメ
インメモリ(main memory)と、スタティックランダムア
クセスメモリ(Static Random Access Memory:SRAM)
のように速度は速いが高価なキャッシュメモリを含む。
【0003】コンピュータシステムで、キャッシュのよ
うなサブシステムはDRAMとSRAMの間の速度と値段の不一
致に起因する。これによって、メモリ構造は階層的構造
を有し、小容量の高速なSRAMを使用するキャッシュメモ
リが大容量の安価なDRAMを使用するメインメモリと中央
処理装置の間に設置される。
【0004】キャッシュメモリは、中央処理装置で次に
使用される可能性が高い命令とデータを有する。高速の
キャッシュメモリで、一番よくアクセスされる命令とデ
ータを有することによって、平均的なメモリアクセス時
間はキャッシュアクセス時間に近づく。従って、キャッ
シュの使用はコンピュータシステムの性能を改善させ
る。
【0005】実行中のプログラム(active program)の
命令とデータは、参照の局所性(locality of referenc
e)という現象を利用してキャッシュに貯蔵される。参
照の局所性現象は、大部分のコンピュータプログラム命
令処理は多重ループ(multiple loops)及びメモリの特
定局部地域 (particular localized area)にある命令セ
ット(instruction set)を反復的に参照する中央処理
装置を通じて順次的な方式(sequential fashion)で実
施されることを意味する。従って、ループとサブルーチ
ンは命令フェッチ(instruction fetch)のためのメモ
リの参照領域を局部化させる。テーブルルックアップル
ーチン(table lookup routines)又は他の反復的なルー
チンが反復的にメモりの小さな一定の部分を参照するの
で、データ関連メモリの参照領域も局部化される。
【0006】コンピュータシステムにおいて、中央処理
装置はメモリアクセス命令の場合、メインメモリアクセ
スの前にキャッシュを調査する。もし、要求するワード
(データ又はプログラム命令)がキャッシュで発見され
ると、中央処理装置は要求するワードをキャッシュから
読み出す。もし、要求するワードがキャッシュで発見さ
れないと、要求するワードを読み出すためにメインメモ
リをアクセスし、そのワードを含むブロックのワードが
適切な代替アルゴリズム(replacememt algorithm)を
通じてメインメモリからキャッシュに伝送される。も
し、キャッシュが中央処理装置によって願われるワード
を有するとヒット(hit)、有しないとミス(miss)と呼
ばれる。
【0007】キャッシュメモリの一つのラインは、一般
的にアドレスとそのアドレスに該当する一つ又はそれ以
上のデータワードで構成される。一つのラインはメイン
メモリとキャッシュメモリの間を移動する最小の情報単
位である。
【0008】メインメモリの或る位置で読み出されたデ
ータはキャッシュの一つのラインに貯蔵される。キャッ
シュに貯蔵されるデータの位置はメインメモリアドレス
の一部を利用して定める。又、メインメモリブロックよ
りキャッシュラインの数が少ないので、メインメモリの
或るブロックがキャッシュラインに読み出されるのかを
決定するアルゴリズムが必要である。
【0009】メインメモリのブロックをキャッシュメモ
リにマッピング(mapping)する様々な種類の技術が知
られている。典型的なマッピングの形態は、Direct Map
ping、 Fully Associative Mapping、 Set Associative
Mappingである。
【0010】Direct Mapping技術は、メインメモリの各
ブロックをただ一つの可能なキャッシュラインにマッピ
ングさせる。この技術は、実現しやすく、値段も安い
が、或る与えられたブロックに対する位置が固定される
ことが短所である。従って、もし、相違する二つのブロ
ックを一つのラインにマッピングさせ、反復的に参照す
るプログラムを実行させると、二つのブロックは、キャ
ッシュ内で交換し続けるので、ヒット比(hit ratio)
は低まる。
【0011】Fully Associative Mappingは、メインメ
モリの各ブロックをどんなラインにもローディング(lo
ading)できることによって、Direct Mappingの短所を
克服する。この技術によると、新たなブロックがキャッ
シュから読み出される時、キャッシュ内のどんなブロッ
クが交換されるのかに対して、柔軟性がある。この技術
は全てのキャッシュラインのタグを並列に調査するため
の複雑な回路が必要であることが短所である。
【0012】Set Associative Mapping(普通は、“N-w
ay set associative mapping”と呼ばれる)は、前述の
二つの技術の長所を併せ持つものである。この技術で、
キャッシュは複数のセット(set)に分かれ、各々のセ
ットは幾つかのラインで構成される。この技術はメイン
メモリの一つのブロックをセットラインのうち或るライ
ンにマッピングさせ、同一のセットアドレスで、二つ又
はそれ以上のデータワードをキャッシュ内に貯蔵させ得
る。この方法において、キャッシュ制御ロジック(cach
e control logic)はメインメモリアドレスを単純に三
つのフィールド、即ち、セット(set)、タグ(tag)、ワ
ード(word)に解釈する。メインメモリアドレスのうちタ
グとして利用されるビットの数が多く、かつ、メインメ
モリのタグがキャッシュ内の全てのラインのタグと比較
されるべきFully Associative Mappingとは違って、Set
Associative Mappingでは、メインメモリアドレスのう
ちタグとして利用されるビットの数が少ないし、メイン
メモリのタグがただ一つのセット内にあるタグと比較さ
れるだけで十分である。
【0013】
【発明が解決しようとする課題】キャッシュメモリの性
能は、普通はヒット比として表示される。中央処理装置
がキャッシュメモリを参照して、要求する命令又はデー
タワードがキャッシュ内にあることを発見すると、中央
処理装置はヒット信号を発生させる。もし、要求するワ
ードがキャッシュ内で発見されないと、中央処理装置は
ミス信号を発生させ、キャッシュアクセスのミス回数が
増加する。ヒット回数を中央処理装置の全体のメモリ参
照回数(即ち、ヒット回数にミス回数を足す値)で分け
る値の百分比がヒット比である。
【0014】ヒット比を極大化するために、多くのコン
ピュータシステム構造はキャッシュ使用に関したシステ
ム的に制御を可能であるようにする。例えば、命令だけ
を、又は、データだけを、又は、命令とデータの両方を
貯蔵するためにキャッシュが使用される。キャッシュメ
モリの概念及び動作に対する詳細な説明は“AdvancedMi
croprocessors”(Daniel Tabak著、 McGraw-Hill Book
社、1995年 第2板) のChap. pp.43-65、“Computer Org
anization And Architecture”(William Stalling 著、
Prentice-Hall社、1996年 第5板) のChap. pp.117-15
1、“High Performance Memories”(Betty Prince著、
John Wiley & Sons社、1996年 ) のChap.pp.65-94に説
明されている。
【0015】キャッシュヒット又はミスを分かるため
に、即ち、要求するワードがキャッシュにあるのかを判
別するために、キャッシュ内に貯蔵されたタグにアクセ
スすることが必須である。高性能システムの実現のため
にキャッシュサイズを増加させる現在の趨勢によって
(一般的に、キャッシュのサイズの増加に従ってキャッ
シュのヒット比も増加する)、メモリ参照サイクル(me
mory reference cycle)での反復的なタグアクセス回数
も増加し、これによって、キャッシュで一層多い電力を
消耗し、又、キャッシュメモリを低電圧システムで適用
させにくい結果を招来する。
【0016】本発明の目的は、デジタルデータ処理シス
テムで使用されるキャッシュメモリの性能向上と電力消
耗を低減することである。
【0017】
【課題を解決するための手段】本発明においては、現在
のアクセスが一番最近アクセスされてヒットしたキャッ
シュラインと同一のキャッシュラインにある命令及び
(又は)データに対してアクセスする場合は、いつもキ
ャッシュヒットが発生し、たとえ同一のキャッシュライ
ンに対するアクセスであっても、以前のアクセスでミス
が発生した場合は、ミスを埋めるための“キャッシュラ
インフィル(cache line fill:メインメモリからキャ
ッシュラインが完全に充填され、キャッシュメモリにミ
スされた命令又はデータが貯蔵される)”の有無によっ
て、現在のアクセスのヒット又はミスが決定されるとい
う点に主眼を置く。
【0018】本発明の特徴によると、デジタルデータ処
理器、タグRAM、(tag RAM)、データRAM(data RAM)を
含むキャッシュメモリ及びこのキャッシュメモリへのア
クセスを制御する制御器で構成されるデジタルデータ処
理システムが提供される。制御器はタグRAMへの一番最
近のアクセスに関したアクセス形態(access type)、
動作モード(operation mode)、そして、キャッシュヒ
ット/ミス(hit/miss)に関する状態情報(state infor
mation)を貯蔵し、すぐ前のアクセス関連状態情報と現
在アクセスしようとするメインメモリアドレスのセット
フィールドのうち一部を根拠にしてタグRAMへの現在の
アクセスを制御する。特に、制御器はすぐ前のアクセス
関連状態情報と現在のアクセスのためのメインメモリア
ドレスのセットフィールドのうち一部を根拠にして現在
のアクセスがすぐ前にアクセスしたキャッシュラインと
同一であるのかを判断して、現在のアクセスがすぐ前に
アクセスしたキャッシュラインと同一の場合、タグRAM
へのアクセスをスキップ(skip)できるようにする。キ
ャッシュメモリは、普通、レベル1(Level-one:L1)、レ
ベル2(Level-two:L2)に分かれる。これは、他のプロ
セッサと共に一つのチップ(chip)に集積化されるか、
又は、独立的な一つのチップ(standalone chip)に集
積されるかによるものである。又、制御器もL1キャッシ
ュと共に一つのチップに実現することもできるし、独立
的な一つのチップに実現することもできる。
【0019】本発明の他の特徴によると、制御器はすぐ
前と現在のアクセスが順次的な方式(sequential fashi
on)に行われるのかを判断するために、現在のアクセス
のためのメインメモリアドレスのセットフィールドのう
ち一部を利用する。セットフィールドのうち一部として
使用されるのは、セットフィールドアドレスの最下位ビ
ット(least significant bit:LSB)である。
【0020】本発明の他の特徴によると、データRAM回
路、タグRAM回路、スキップフラグ発生器(skip flag g
enerator)、第1RAMアクセス制御ロジック、ヒット判
別器(hit discriminator)、第2RAMアクセス制御ロジ
ックで構成されたキャッシュ集積メモリ装置がデジタル
データ処理システムでプロセッサとメインメモリの間に
設けられる。
【0021】データRAM回路は、プロセッサから供給さ
れるメインメモリアドレスの一部ビットに応じてプロセ
ッサで処理される命令とデータを一時的に貯蔵する。タ
グRAM回路はデータRAM回路へのアクセスのためのタグを
貯蔵し、貯蔵されたタグとメインメモリアドレスのタグ
フィールドを比較することによって、複数のタグヒット
信号を発生させる。スキップフラグ発生器はプロセッサ
から供給されるアクセスタイプ信号とアドレス信号に応
じてスキップフラグ信号を発生させる。第1RAMアクセ
ス制御ロジックはスキップフラグ信号に応じてタグRAM
回路に対するアクセスを制御する。ヒット判別器はプロ
セッサから供給される動作モード信号、スキップフラグ
信号及びタグヒット信号に応じて複数のデータヒット信
号を発生させる。第2RAMアクセス制御ロジックはデー
タヒット信号に応じてデータRAM回路に対するアクセス
を制御する。スキップフラグ発生器はプロセッサから供
給されるアクセスタイプ信号とアドレス信号をチェック
することによって、現在のタグRAMアクセスがすぐ前の
タグRAMアクセスでアクセスされたキャッシュラインと
同一であるのかを判断する回路を含み、現在のアクセス
がすぐ前のアクセスでアクセスされたキャッシュライン
に同一に適用され得る場合、スキップフラグを活性化さ
せる。特に、スキップフラグ信号が活性化される時、第
1RAMアクセス制御ロジックは、タグRAMへの現在のアク
セスをスキップするために、タグRAM動作を制御するク
ロックを遮断することによって、タグRAMが動作しない
ようにする。データRAMへのアクセスは第2RAMアクセス
制御ロジックが制御し、スキップフラグ信号が活性化さ
れる時(即ち、現在のキャッシュラインがすぐ前のアク
セスのキャッシュラインと同一のとき)、タグRAMは動
作しないが、第2RAMアクセス制御ロジックは、すぐ前
のアクセスの時のヒット、ミス情報によってデータRAM
アクセスの有無を制御し、スキップフラグ信号が非活性
化される時、新たにタグRAMにアクセスして、その結果
のヒット、ミス情報によってデータRAMアクセスの有無
を制御する。
【0022】本発明の他の特徴によると、現在のタグRA
Mアクセスがすぐ前のタグRAMアクセスでアクセスされた
キャッシュラインと同一であるのかを判断する第1段
階、そして、現在のアクセスがすぐ前のアクセスでアク
セスされたキャッシュラインに同一に適用され得る時、
現在のタグRAMアクセスをスキップできるようにする第
2段階で構成されたキャッシュメモリ動作方法が提供さ
れる。
【0023】一具体的形態によると、第1段階はキャッ
シュメモリへの現在のアクセスのための順次アクセス信
号(ここで、順次アクセス信号はすぐ前のアクセスから
現在のアクセスが順次的なアクセスであることを示す)
と第1メインメモリアドレスを発生させる段階と、順次
アクセス信号の活性化を感知し、現在のアクセスアドレ
スのうち1ビット(one-bit)がすぐ前のアクセスの時
の該当ビットアドレスと同一であるのかを判断する段階
と、順次アクセス信号が活性化され、かつ現在アクセス
アドレスのうち1ビット(one-bit)がすぐ前のアクセ
スの時の該当ビットアドレスと同一の時、スキップフラ
グ信号を発生させる段階とを含む。又、第2段階はスキ
ップフラグ信号が活性化される時、タグRAM回路の動作
を制御するクロック信号を遮断することによって、タグ
RAM回路が動作しないようにする段階を含む。
【0024】
【発明の実施の形態】以下、添付した図を参照して本発
明の実施の形態を説明する。実施の形態では、SRAM(又
は高性能DRAM)を使用したキャッシュメモリを装着した
システムで電力消耗を低減するための方法及び装置につ
いて詳細に説明する。以下の実施の形態で、キャッシュ
メモリのタイプ及びメモリ構成等のような特定の詳細な
思考事項が記述されるが、これは本発明の理解のためだ
けであり、このような特定の事項なしにも本発明が実現
され得ることは当業者には周知である。
【0025】まず、図1は本発明によるコンピュータシ
ステム100の概要を示す構成図である。この図1は本
発明によるコンピュータシステム100を全般的に理解
するために提供されるものであり、コンピュータシステ
ム100の他の一般的な細部構成は省略する。
【0026】図1に示されたように、コンピュータシス
テム100は情報交換のためのシステムバス102、こ
のバス102に接続された命令処理のための中央処理装
置又はCPU(以下プロセッサという)104、そして、
バス102に接続されて、プロセッサ104に使用され
る命令とデータを貯蔵するメインメモリ106で構成さ
れる。普通は、プロセッサ104と一つのチップに集積
されるレベル1(L1)キャッシュメモリ108がバス
102に接続されて、プロセッサ104で頻繁にアクセ
スされる命令とデータを一時的に貯蔵する。プロセッサ
104で使用するためにメインメモリ106から抽出さ
れた情報はL1キャッシュメモリ108に貯蔵される。
レベル2(L2)キャッシュメモリ110はバス102
に接続されて、プロセッサ104で頻繁にアクセスされ
る命令とデータの写本(copies)を一時的に貯蔵する。
L2キャッシュメモリ110は一般的にプロセッサ10
4とは違って個別チップに集積される。メモリ制御器1
12もバス102に接続されて、メインメモリ106と
L2キャッシュメモリ110へのアクセスを制御する。
【0027】L1及びL2キャッシュメモリ108,1
10の各々は命令とデータを全部貯蔵できる一つの完全
なキャッシュメモリであり、又は二つの副(sub)キャ
ッシュメモリに分かれて、一つは命令、もう一つはデー
タを貯蔵することができる。
【0028】プロセッサ104で外部バス102を通じ
てアクセスできるL2キャッシュメモリ110と比較す
る時、L1キャッシュメモリ108はプロセッサの外部
バスアクセスに対する負担を減らすので、プログラム実
行時間を縮め、システムの性能を向上させ得る。プロセ
ッサ104で要求される命令又はデータがL1キャッシ
ュメモリ108にある時、外部バス102にアクセスす
る必要がない。従って、バス102は他の情報の伝達に
利用され得る。
【0029】L2キャッシュメモリ110は、よりラン
ダム(random)に要求されて、L1キャッシュメモリ1
08がミスするメモリの命令及びデータを処理する。L
1キャッシュメモリ108がミスする場合の処理を簡単
にするために、L2キャッシュメモリ110はL1キャ
ッシュメモリ108より大容量を備えてヒット確率を高
める。
【0030】キャッシュミスが発生すると、メインメモ
リ106からキャッシュラインを完全に充填し、二つの
キャッシュメモリ108,110にミスされた命令又は
データが貯蔵される“キャッシュラインフィル”動作が
遂行される。
【0031】続けて、図1を参照すると、コンピュータ
システム100はキャッシュメモリ108,110のタ
グアクセスを制御するためのタグスキップ制御器(tag
skipcontroller)114を具備する。アクセスタイプ
(順次又は非順次)信号、動作モード(リード又はライ
ト)信号、そして、メインメモリアドレスのうち一部ビ
ットをチェックすることによって、タグスキップ制御器
114は現在のキャッシュアクセスが以前の一番最近の
アクセスでアクセスされたキャッシュラインと同一であ
るのかを判断し、L1及びL2キャッシュメモリ10
8,110へのアクセスを制御する。
【0032】実現方法によって、タグスキップ制御器1
14はプロセッサ104およびL1キャッシュメモリ1
08と共に同一チップ又は個別チップに集積される。
【0033】又、コンピュータシステム100はバス1
02に接続されて、使用者に画像情報を提供するCRT(ca
thode ray tube)モニタ又は液晶(liquid crystal disp
lay:LCD)モニタのような表示装置(display device)
116、バス102に接続されて、プロセッサ104に
情報及び命令選択を伝達できるようにする英文、数及び
他のキー(keys)を含むキーボード(keyboard)のような
入力装置(alphanumeric input device)118、そし
て、バス102に接続されて、カーソル(cursor)の動き
のためのトラックボール(trackball)又はスチルス(Styl
us)のようなカーソル制御装置(cursor control devic
e) 120を含む。
【0034】本発明によって実現されたコンピュータシ
ステム100では、前述した全ての構成要素が必要では
ない。例えば、或る実現の例においては、英文及び数入
力装置118とカーソル制御装置120は必要ではない
し、他の実現の例においては、表示装置(display devi
ce)116が必要でない。
【0035】キャッシュメモリへの頻繁なタグアクセス
による電力消耗を低減するために、同一のキャッシュラ
インにある複数の命令又はデータに対するヒット又はミ
スは同一のキャッシュラインに該当する一つの同一のタ
グエントリ(tag entry)によって判別されるというキ
ャッシュの性質を利用する。即ち、現在のアクセスが一
番最近アクセスされてヒットしたキャッシュラインと同
一のキャッシュラインにある命令及び(又は)データに
対してアクセスする時には、いつもキャッシュヒットが
発生し、たとえ同一のキャッシュラインに対するアクセ
スであっても、以前アクセスでミスが発生した時は、ミ
スを埋めるための“キャッシュラインフィル(cache li
ne fill)”の有無によって現在のアクセスのヒット又
はミスが決定される。このようなキャッシュアクセスの
場合は、タグアクセスをしないで、現在のアクセスに対
するヒット又はミスを予測できる。従って、このような
場合、タグアクセスをスキップすると、キャッシュメモ
リの電力消耗が低減される。
【0036】図2は、メモリ参照サイクルで、キャッシ
ュメモリのタグアクセスをスキップできる場合を説明す
る状態図(state diagram)である。図2で、参照記号P
S1乃至PS6は第1キャッシュアクセスサイクルでの状
態を示し、CS1乃至CS3は第1キャッシュアクセスサ
イクルのすぐ後の第2キャッシュアクセスサイクルでの
状態を示す。
【0037】第1キャッシュアクセスサイクル(以下、
すぐ前の(preceding)アクセスと呼ぶ)で、PS1状態
はどんなメモリ参照サイクル(リード又はライト)も遂
行されないアイドル(idle)状態を示す。 プロセッサ
104によってリード又はライト命令が発生されると、
制御器112の状態マシーン(state machine)はアイ
ドル(idle)状態PS1で、リード状態PS2又はライト状
態PS3に遷移する。
【0038】PS2又はPS3状態で、リード又はライト動
作に関してキャッシュヒットが発生すると、状態マシン
はPS5状態に遷移する。これはキャッシュが要求される
命令又はデータを有するためである。PS5状態で、リー
ド又はライト動作のためのキャッシュアクセスは終結さ
れる。しかし、PS2状態で、キャッシュミスが発生する
と、状態マシーンはPS4状態になり、ここで、リードミ
ス処理過程(read miss handling process)が遂行さ
れ、この後、PS5状態になる。これと同様に、PS3状態
で、ライトミスが発生すると、状態マシーンは要求され
る命令又はデータを有しないことを示すPS6状態にな
る。PS6状態で、ライト動作のためのキャッシュアクセ
スは終了される。
【0039】第2キャッシュアクセスサイクル(以下、
現在(current)アクセスと呼ぶ)で、すぐ前のリード
又はライトアクセスでヒットでアクセスされた同一のキ
ャッシュラインにアクセスすることが要求されると、状
態マシーンはPS5状態からCS1状態に遷移する。又、す
ぐ前のライトアクセスでミスでアクセスされた同一のキ
ャッシュラインにアクセスすることが要求されると、状
態マシンはPS6状態からCS2状態に遷移する。すぐ前の
リード又はライトアクセスでアクセスされたキャッシュ
ラインと相違したキャッシュラインにアクセスする場
合、状態マシーンはPS5又は PS6状態からタグがアク
セスされるべきCS3状態に遷移する。
【0040】すぐ前のアクセスの時の状態を考慮する
時、すぐ前のアクセスでアクセスされたキャッシュライ
ンと同一のキャッシュラインにアクセスする現在のアク
セスにおいて、タグをアクセスする必要がない三つの場
合がある。
【0041】一番目は、すぐ前のアクセスのリード又は
ライトがヒット(PS5状態)の場合で、これは、同一の
キャッシュラインに対する現在のアクセスで、既に必要
な命令又はデータがキャッシュ内にあることを意味す
る。このような場合、現在のアクセスはいつもヒットCS
1の結果を招来し、従って、現在のアクセスで、タグア
クセスをスキップできる。二番目は、すぐ前のアクセス
でリードミスPS4の場合で、これはキャッシュが該当ラ
インを有しないことを意味する。しかし、このような場
合、リードミスに対するハンドリングが遂行されて、該
当するラインをメインメモリからキャッシュに入れるよ
うになるので、同一のキャッシュラインに対する現在の
アクセスは必ずヒットCS1になる。従って、現在のアク
セスでのタグアクセスはスキップされ得る。三番目は、
すぐ前のアクセスがライトミスPS6の場合で、これはキ
ャッシュが該当ラインを有しないことを意味する。この
ような場合、“ライトミス時充填(load-on-write-mis
s)”を支援しない限り、同一のキャッシュラインに対
する現在のアクセスは必ずミスCS2となる。従って、こ
の場合も、現在のアクセスでのタグアクセスはスキップ
され得る。
【0042】キャッシュアクセスの多くの部分は順次的
に実施され、このような例として、命令語フエッチ(in
struction fetches)、キャッシュラインフィル(cahe l
inefill)及び配列データフエッチ(array data fetches,
e.g.,matrix, vector andnumerical table fetches)
等がある。従って、本発明はこのような順次アクセスに
重点を置く。
【0043】最近、多くのマイクロプロセッサでは、こ
のような順次アクセスを示すために一つのピンが用意さ
れる。例えば、Advanced RISC Machine社の ARM プロセ
ッサコアー(cores)は SEQ信号(命令語キャッシュ用I
SEQ又はデータキャッシュ用DSEQ)という1ビットのア
クセスタイプ信号を出力する。本来、この信号は、外部
メモリブロック設計者により多くのタイミングマージン
(timing margin)を与えるために用意される。従っ
て、信号SEQ1ビットだけを見ると、現在のアクセスが
前のアクセスと順次的であるのかが分かる。又、現在の
アクセスが順次的な場合には、すぐ前のアクセスと同一
のキャッシュラインにあるのかを、現在のアクセスのた
めのアドレスのうち1ビットをチエックすることだけで
分かる。これを、詳細な例によって説明する。
【0044】図3は本発明によるメインメモリアドレス
のフォーマットを示す。図3に示されたように、メイン
メモリアドレスは、A0乃至A1の2ビットのバイトフィ
ールド(byte field)、A2乃至A3の2ビットのワード
フィールド(word field)、A4乃至A9の6ビットのセッ
トフィールド(set field)、そして、A10乃至A31の
22ビットのタグフィールド(tag field)で構成され
る。
【0045】A0乃至A1のバイトフィールドはワード内
のバイト位置を示す。一つのワードは四つのバイトで構
成される。これと同様に、A2乃至A3のワードフィール
ドはキャッシュライン内のワード位置を示す。一つのキ
ャッシュラインは四つのワードで構成される。
【0046】図4は、図3のアドレスフォーマットによ
って順次アクセスをする場合のアドレスの変化を示す。
順次アクセスの場合、一つのライン内でワードフィール
ドアドレスA2乃至A3が00,01,10及び11のよ
うな順序に従って変化する。従って、順次的なアクセス
の時、一つのキャッシュラインから他のキャッシュライ
ンへの移動は上位ビットのA4アドレスの変化によって
分かる。現在のアクセスで、A4アドレス値が変化する
ことはキャッシュラインの移動があったということであ
り、A4アドレス値が変化しないことは、現在のアクセ
スはすぐ前のアクセスと同一のラインにあることを意味
する。
【0047】結果的に、タグスキップ制御器114は、
プロセッサ104からのアクセスタイプ信号SEQと、セ
ットフィールドのうち最下位ビット(図3のアドレスフ
ォーマットの場合、A4)をモニタする(monitoring)
ことによって、現在アクセスしようとするキャッシュラ
インがすぐ前のアクセスでアクセスされたキャッシュラ
インと同一であるのかを判断する。
【0048】図5は、図3のアドレスフォーマットを備
えたコンピュータシステムに使用適合したタグスキップ
制御器114の一実施形態を示す詳細な構成図である。
図5において、タグスキップ制御器114は、プロセッ
サ104に接続されたスキップフラグ発生器(skip fla
g generator)122、このスキップフラグ発生器12
2とタグRAM回路108a(L1キャッシュメモリ108内
に存在する場合)又は110a(L2キャッシュメモリ11
0内に存在する場合)の間に接続されたタグRAMアクセス
制御回路(tag RAM access control logic)124、プ
ロセッサ104とタグRAM回路108a又は110aとス
キップフラグ発生器122の間に接続されたヒット判別
器(hit discriminator)126、このヒット判別器1
26とデータRAM回路108b(L1キャッシュメモリ1
08内に存在する場合)又は110b(L2キャッシュメ
モリ110内に存在する場合)の間に接続されたデータR
AMアクセス制御回路(data RAM access control logi
c)128で構成される。タグスキップ制御器114に
は一対の相補(complement)プロセッサクロック信号の
CLK及び/CLKが印加される。
【0049】データRAM回路108b又は110bはプ
ロセッサ104が要求する情報を貯蔵し、タグRAM回路
108a又は110aはデータRAM回路108b又は11
0bをアクセスするためのタグアドレスを貯蔵する。も
し、プロセッサ104によって供給されるタグがタグRA
M回路108aに貯蔵されたタグのうち一つと一致すると
ヒットになる。
【0050】データRAM回路108bは統合型(unifie
d)キャッシュと分離型(spilt)キャッシュに分かれる。
統合型キャッシュは命令とデータを全部貯蔵できるが、
分離型(spilt)キャッシュは二つのサブ(sub)キャッシ
ュに分かれて、命令とデータを各々貯蔵する。二種類の
キャッシュは性能の効率性のために相違した構造を有す
ることもできる。
【0051】スキップフラグ発生器122は、プロセッ
サ104からアクセスタイプ信号SEQと1ビットアドレ
ス信号A4を受け入れて、スキップフラグ信号を/SKPを
発生させる。スキップフラグ発生器122は、現在アク
セスしようとするキャッシュラインがすぐ前のアクセス
でアクセスされたキャッシュラインと同一であるのかを
判別する。同一の場合、スキップフラグ発生器122は
スキップフラグ信号/SKPを活性化させ、同一ではない場
合、スキップフラグ信号/SKPを非活性化させる。A4ア
ドレス信号は、一つのラインに4ワードデータを備えた
キャッシュライン構造で使用されるメインメモリアドレ
スのセットフィールドのうち最下位ビットである。キャ
ッシュライン構造によってA4アドレスは他のアドレス
に代置され得る。例えば、図3のアドレス構造で一つの
ラインが8ワードで構成された場合、A5アドレス信号
がプロセッサ104からスキップフラグ発生器122に
供給される。
【0052】タグRAMアクセス制御回路124にスキッ
プフラグ信号/SKPとクロック信号CLKが入力される。ス
キップフラグ信号/SKPが非活性状態(ロジック“1”又
はハイ状態)の場合、制御回路124はクロック信号CL
KをタグRAM回路108aに供給する。その結果、クロッ
ク信号CLKに同期してタグRAM回路108aがアクセスさ
れるようになる。もし、タグ一致(キャッシュヒット)
が発生すると、タグヒット信号Hit_T0乃至 Hit_Tnのう
ち一つが活性化される。もし、タグ不一致(タグミス)
が発生すると、全てのタグヒット信号Hit_T0乃至 Hit_
Tnは非活性化される。スキップフラグ信号/SKPが活性化
状態(ロジック“0”又はロー状態)の場合、制御回路
124はタグRAM回路108aへのクロック信号CLKの供
給を遮断する。このようなクロック信号の遮断によって
タグRAM回路108aへのアクセスをスキップでき、その
結果、キャッシュメモリでの電力消耗が低減される。
【0053】ヒット判別器126にプロセッサ104か
ら発生される動作モード信号(又はリード/ライト信
号)/RW、スキップフラグ発生器124からのスキップ
フラグ信号/SKP及びタグRAM回路108aからのタグヒッ
ト信号Hit_T0乃至 Hit_Tnが入力される。動作モード信
号/RWはリードサイクルの時、活性化(ロジック“0”
状態)され、ライトサイクルの時、非活性化(ロジック
“1”状態)される。ヒット判別器126はタグヒット
信号Hit_T0乃至 Hit_Tn、スキップフラグ信号/SKP及び
動作モード信号/RWに応じてデータRAM回路108bへの
アクセスを制御するためのデータヒット信号Hit_D0乃
至 Hit_Dnを発生させる。特に、スキップフラグ信号/SK
Pが活性化される時、データヒット信号Hit_D0乃至 Hit
_Dnの活性及び非活性は、すぐ前のアクセスでのヒット
及びミス結果の信号Hit_D0乃至 Hit_Dnによって決定さ
れ、スキップフラグ信号/SKPが非活性化される時、デー
タヒット信号Hit_D0乃至 Hit_Dnの信号状態は、現在の
アクセスでのタグ比較結果の信号Hit_D0乃至 Hit_Dnに
よって決定される。データヒット信号Hit_D0乃至 Hit_
Dnの活性化によってデータRAM回路108bへのアクセ
スが実施される。
【0054】一方、本発明のキャッシュシステムが“ロ
ード-オン-ライト-ミス(load-on-write-miss)”スキー
ムを有すると、ヒット判別器126はリード及びライト
情報を示す動作モード信号/RWに関係なく前述の機能を
遂行する。すなわち、ヒット判別器126はスキップフ
ラグ信号/SKPの制御を受けて(スキップフラグ信号/SKP
は順次アクセスの有無に対する情報を有する)、スキッ
プフラグ信号/SKPが活性状態の時、即ち、すぐ前のアク
セスと同一のキャッシュラインにアクセスする時、タグ
RAM回路108aへのアクセスなしに、すぐ前のアクセ
スの時のヒットミス結果のデータヒット信号Hit_D0乃
至 Hit_Dnをそのまま新たなデータヒット信号Hit_D0乃
至 Hit_Dnとして出力する。スキップフラグ信号/SKPが
非活性状態の時、即ち、すぐ前のアクセスと同一ではな
いキャッシュラインにアクセスする時は、タグRAM回路
108をアクセスしてその結果の新たなデータヒット信
号Hit_T0乃至 Hit_Tnをデータヒット信号Hit_D0乃
至 Hit_Dnとして出力する。
【0055】データRAMアクセス制御回路(data RAM ac
cess control logic)128にデータヒット信号Hit_D
0乃至 Hit_Dnとクロック信号/CLKが入力される。デー
タヒット信号Hit_D0乃至 Hit_Dnのうち一つが活性状態
(ロジック“1”状態)の場合、クロック信号/CLKがデ
ータRAM回路108bへ伝送され、その結果、データRAM
回路108bがアクセスされる。これに対して、データ
ヒット信号Hit_D0乃至Hit_Dnが全部非活性状態(ロジ
ック“0”状態)の場合、即ち、キャッシュミスの場
合、制御回路128はデータRAM回路108bのアクセ
スのためのクロック信号/CLKの供給を遮断し、従って、
データRAM回路108bへのアクセスが遮断される。
【0056】図6は、図5のタグスキップ制御器114
の詳細な回路図である。この回路図に示すように、スキ
ップフラグ発生器122は、D(data)フリップフロッ
プ(edge-triggered D flip-flop)202、XORロジック
ゲート(exclusive OR logic gate)204及びORロジッ
クゲート206を含む。D フリップフロップ202の
クロック入力にプロセッサクロックCLKが、データ入力
DにプロセッサのA4アドレスビットが入力され、出力
QはXORロジックゲート204に接続されている。A4ア
ドレスビットはXORロジックゲート204のもう一つの
入力にも供給される。ORロジックゲート206はプロセ
ッサ104から供給されるアクセスタイプ信号SEQの反
転した(invertered)信号を受け入れる入力段と、XOR
ロジックゲート204の出力に接続されたもう一つの入
力段を含む。ORロジックゲート206は出力にスキップ
フラグ信号/SKPを導出する。
【0057】タグRAMアクセス制御回路124はスキ
ップフラグ信号/SKPとクロック信号CLKを入力にするAND
ロジックゲート208からなる。
【0058】この実施形態では、説明の便宜のために4
ウェイセット連想キャッシュ(4-way set associative
cache)構造を説明する。タグRAM回路108a又は11
0aは、ANDロジックゲート208の出力をクロック入力
に受け入れる4ウェイ(ウェイ0乃至ウェイ3)又は4バ
ンク210乃至216で構成される。データRAM108
b又は110bも4バンク258乃至264で構成され
る。バンク210乃至216とバンク258乃至264
はクロック入力信号の上昇エッジ(rising edge)でア
クセスされる。
【0059】図6に示されていないが、タグバンク21
0乃至216の各々はプロセッサ104によって発生さ
れるメモリアドレスのタグビットを伝達するための22
ビット幅のバスに接続され、22ビットの幅を有する。
これと同様に、データバンク258乃至264の各々は
命令とかデータを伝達するための32ビット幅のバスに
接続され、32×4(ワードの数)ビットの幅を有す
る。更に、タグバンク210乃至216の各々は個別バ
ンクに既に貯蔵されているタグと新たにアクセスするア
ドレスのタグビットを比較する比較器(図示しない)を
有する。全てのバンク210乃至216に対するタグの
比較は同時に遂行され、バンクのうち一つでもタグ一致
が発生すると、キャッシュヒットが発生する。
【0060】順次アクセスにおいて、アクセスタイプ信
号SEQはプロセッサ104によってロジック“1”又は
ハイ状態になり、非順次(non-sequential)又はランダ
ム(random)アクセスモードではロジック“0”又はロー
状態になる。
【0061】Dフリップフロップ202はすぐ前のアク
セス時のアドレス信号A4値を貯蔵し、XORロジックゲー
ト204は現在のアクセスで、プロセッサ104からの
A4アドレス値がDフリップフロップ202に貯蔵されたA
4アドレス値と同一であるかを判断する。もし、現在の
アクセスとすぐ前のアクセスの時のA4値が相違すると、
XORロジックゲート204はロジック“1”状態の出力
を発生させ、これは現在アクセスしようとするキャッシ
ュラインがすぐ前のアクセスの時のキャッシュラインと
相違することを意味する。これに対して、二つのA4アド
レス値が同一であると、XORロジックゲート204はロ
ジック“0”状態の出力を発生させ、これは現在アクセ
スしようとするラインがすぐ前のアクセスの時のキャッ
シュラインと同一である可能性があること(順次タイプ
アクセスの場合だけ、同一のキャッシュラインになる)
を意味する。
【0062】ORロジックゲート206は順次アクセス有
無情報を有するアクセスタイプ信号SEQを根拠にして最
終的に現在アクセスしようとするキャッシュラインがす
ぐ前のアクセスの時のキャッシュラインと同一であるの
かを判断する。もし、同一であると、ORロジックゲート
206はロジック“0”の状態の、同一でないと、ロジ
ック“1”の状態のスキップフラグ信号/SKPを発生させ
る。
【0063】スキップフラグ信号/SKPがロジック“1”
状態であると、タグRAMアクセス制御回路124のANDロ
ジックゲート208はタグバンク210乃至216への
アクセスのためのクロック信号CLKがタグバンクに伝達
されるようになる。これに対して、スキップフラグ信号
/SKPがロジック“0”状態であると、ANDロジックゲー
ト208はタグバンク210乃至216へクロック信号
CLKを供給することを遮断する。
【0064】プロセッサ104によって発生される22
ビットのタグアドレスA10乃至A31は全てのタグバン
ク210乃至216に供給され、全てのバンク210乃
至216に既に貯蔵されたタグと比較される。全てのバ
ンク210乃至216のタグ比較は同時に遂行される。
もし、一つの一致タグ(即ち、キャッシュヒット)があ
ると、タグヒット信号Hit_T0乃至 Hit_Tnのうち一つ
が活性化(ロジック“1”状態)される。
【0065】ヒット判別器126は、Dフリップフロッ
プ218及び222、ORロジックゲート220及び22
6、4つのDフリップフロップ230,232,23
4,236で実現された4ビットレジスタ228、AND
ロジックゲート224,238,240,242,24
4,246、そして、2×1マルチプレクサ248を含
む。
【0066】Dフリップフロップ218はクロック信号C
LKに同期し、プロセッサ104から供給される動作モー
ド信号/RWを入力するための入力段Dと、ANDロジックゲ
ート224の一入力に接続されている出力段Qを有す
る。ORロジックゲート220はデータヒット信号Hit_D
0乃至 Hit_D3を入力するための4つの入力段を含
む。Dフリップフロップ222もクロック信号CLKに同期
し、ORロジックゲート220の出力に接続された入力段
Dと、ANDロジックゲート224のもう一つの入力に接
続されている出力段Qを含む。ORロジックゲート226
は、Dフリップフロップ218出力Qの反転信号を受け
入れるための一つの入力段と、ANDロジックゲート22
4の出力に接続されたもう一つの入力段を有する。
【0067】Dフリップフロップ230乃至236はク
ロック信号CLKと同期化し、入力段Dはデータヒット信
号Hit_D0乃至 Hit_D3を各々受け入れる。
【0068】ANDロジックゲート238は、スキップフ
ラグ信号/SKPの反転信号を入力するための一つの入力
と、ORロジックゲート226の出力に接続されたもう一
つの入力を有する。ANDロジックゲート238の出力はA
NDロジックゲート240乃至246の第1入力に共通に
供給される。フリップフロップ230乃至236の出力
QはANDロジックゲート240乃至246の第2入力に
各々接続される。
【0069】マルチプレクサ248はタグRAM回路10
8aからのタグヒット信号Hit_T0乃至 Hit_T3を入力す
るための第1入力、ANDロジックゲート240乃至24
6からのヒット予測信号HP0,HP1,HP2,HP3を入力
するための第2入力及びデータヒット信号Hit_D0乃至
Hit_D3を導出するための出力を有する。
【0070】Dフリップフロップ218はすぐ前のアク
セスでのリード/ライト情報を貯蔵し、すぐ前のアクセ
スでリード動作が遂行される場合、現在のアクセスの
時、Dフリップフロップ218の出力はロジック“0”
状態を出力する。これに対して、すぐ前のアクセスでラ
イト動作が遂行される場合、現在のアクセスの時、Dフ
リップフロップ218の出力はロジック“1”状態を出
力する。
【0071】ORロジックゲート220はすぐ前のアクセ
スでキャッシュヒットが発生した場合、ロジック“1”
状態の出力を導出し、すぐ前のアクセスでキャッシュミ
スが発生した場合、ロジック“0”状態の出力を導出す
る。Dフリップフロップ222はORロジックゲート22
0からのキャッシュヒット/ミス情報を貯蔵する。も
し、すぐ前のアクセスでキャッシュヒットが発生する
と、現在のアクセスで、Dフリップフロップ222の出
力はロジック“1”状態になる。これに対して、すぐ前
のアクセスでキャッシュミスが発生すると、現在のアク
セスで、Dフリップフロップ222の出力はロジック
“0”状態になる。
【0072】ANDロジックゲート224は、すぐ前のア
クセスでライト動作が遂行され、キャッシュヒットが発
生した時だけ、ロジック“1”状態の出力を導出し、そ
のほかの場合はロジック“0”状態の出力を導出する。
【0073】ORロジックゲート226は、すぐ前のアク
セスでリード動作が遂行される時、又は、すぐ前のアク
セスでライト動作が遂行され、キャッシュヒットが発生
する時、ロジック“1”状態の出力を発生させる。即
ち、ORロジックゲート226はすぐ前のアクセスが図2
のPS5の状態で終了される時、ロジック“1”の信号を
出力する。他の場合には、ORロジックゲート226がロ
ジック“0”状態の出力を発生させる。
【0074】レジスタ228は、マルチプレクサ248
から供給されるすぐ前のアクセスのデータヒット信号Hi
t_D0乃至 Hit_D3を貯蔵し、貯蔵された信号は現在
のアクセスで使用される。言い換えれば、レジスタ22
8はすぐ前のアクセスで、ウェイ0乃至ウェイ3のうち
どれがヒットしたのかに対する情報を貯蔵する。
【0075】ANDロジックゲート238はORロジックゲ
ート206及び226の出力が各々“0”と“1”の場
合、ロジック“1”状態の出力を発生させる。これは現
在のアクセスが図2のCS1状態に該当し、すぐ前のアク
セスでアクセスされたキャッシュラインと同一のキャッ
シュラインにアクセスされることを意味し、即ち、現在
アクセスしよとするキャッシュラインが既にキャッシュ
メモリに貯蔵されていることを意味する。
【0076】ANDロジックゲート238は、すぐ前のア
クセスでライト動作が遂行され、キャッシュミスが発生
する時(同一ライン有無とは関係なく、同一ラインの場
合には図2のCS2状態になる)、又は、すぐ前のリード
/ライトアクセスでアクセスされたラインと相違したラ
インへ現在アクセスする時(図2のCS3状態)、ロジッ
ク“0”信号を出力する。
【0077】ANDロジックゲート240乃至246は、D
フリップフロップ230乃至236の出力QとANDロジ
ックゲート238の出力を各々組合せて、ヒット予測信
号HP0乃至HP3を発生させる。
【0078】マルチプレクサ248はスキップフラグ発
生器122から供給されるスキップフラグ信号/SKPによ
って制御される。スキップフラグ信号/SKPがロジック
“1”状態の場合、マルチプレクサ248はタグRAM回
路108aから出力されるタグヒット信号Hit_T0乃至 H
it_T3をデータヒット信号Hit_D0乃至 Hit_D3とし
て選択する。スキップフラグ信号/SKPがロジック“0”
状態の場合、マルチプレクサ248はANDロジックゲー
ト240乃至246から出力されるヒット予測信号HP0
乃至HP3をデータヒット信号Hit_D0乃至 Hit_D3と
して選択する。
【0079】データRAMアクセス制御回路128はANDロ
ジックゲート250,252,254,256を含む。
ANDロジックゲート250乃至256の第1入力として
はクロック信号/CLKが共通に入力され、第2入力として
はデータヒット信号Hit_D0乃至 Hit_D3が供給され
る。データヒット信号Hit_D0乃至 Hit_D3のうち一
つが活性状態(ロジック“1”状態)の場合、即ち、キ
ャッシュヒットが発生すると、ANDロジックゲート25
0乃至256のうち一つは、データバンク258乃至2
64のうち該当するバンクがアクセスされ得るようにク
ロック信号/CLKを伝達する。データヒット信号Hit_D0
乃至 Hit_D3の全部が非活性(ロジック“0”状態)
の場合、即ち、キャッシュミスが発生すると、ANDロジ
ックゲート250乃至256はデータバンク258乃至
264へのクロック信号/CLKの伝達を遮断し、その結
果、全てのバンクへのアクセスが遮断される。ここで、
クロック信号/CLKは、CLKクロック信号と位相が反対で
ある。これは二つの信号が相補的にクロッキング(cloc
king)動作を遂行することを意味する。
【0080】前述のように、本発明のキャッシュシステ
ムがロードオンライトミス機能を有し、この機能によっ
て、キャッシュアクセスがいつもヒット状態になる場合
には、ヒット判別器126はリード及びライト情報を示
す動作モード信号/RWの制御を受けないで実現すること
ができる。その場合は、図6のヒット判別器126で、
リード/ライト情報に関する制御ロジックのORロジック
ゲート220及び226、ANDロジックゲート224及
び Dフリップフロップ218及び222を省略し、AND
ロジックゲート238をスキップフラグ信号/SKPだけを
入力するインバータに代置すればよい。又、ヒット判別
器126はスキップフラグ信号/SKPの制御によって(ス
キップフラグ信号は順次アクセスの有無に対する情報を
有する)、スキップフラグ信号/SKPが活性状態の場合、
即ち、すぐ前のアクセスと同一のキャッシュラインにア
クセスする時は、タグRAM回路108aへのアクセスな
しに、すぐ前のアクセスの時のヒットミス結果信号でレ
ジスタ228に貯蔵されているデータヒット信号Hit_D
0乃至 Hit_Dnをそのまま新たなデータヒット信号Hit_
D0乃至 Hit_Dnとして出力し、スキップフラグ信号/S
KPが非活性状態の場合、即ち、すぐ前のアクセスと同一
ではないキャッシュラインにアクセスする時は、レジス
タ228のデータがアクセスされるのをブロッキング
(blocking)させ、その代わりに、タグRAM回路108
aにアクセスして、その結果の新たなタグヒット信号Hi
t_T0乃至 Hit_Tnをデータヒット信号Hit_D0乃至 H
it_Dnとして出力する。
【0081】幾つかの実施形態を参照して本発明を説明
したが、このような実施形態は本発明の理解のためだけ
であり、本発明の範囲が上記実施形態から限定されるこ
とはない。実施形態に対する様々な変形、修正、追加、
改善が可能である。例えば、図6に4ウェイセット連想
方式のキャッシュメモリが説明されたが、他の方式のキ
ャッシュメモリでもよい。そして、本発明の思想は適切
なキャッシュ戦略によって様々なシステムに適用され得
る。特に、本発明の実施形態がコンピュータシステムに
関して説明されたが、本発明の原理はTLB(translation
lookaside buffer)、ルータ(router)及びスイッチ(swit
ch)のような比較のためのメモリブロック(即ち、キャ
ッシュのタグ)を使用する他のシステム分野に適用され
得る。
【0082】
【発明の効果】前述のような本発明によると、順次キャ
ッシュアクセスの間、すぐ前のアクセスと現在のアクセ
スが同一のキャッシュラインにあるかを速く、容易に、
検出して、タグへの不要なアクセスを防止することによ
って、タグアクセスによる電力消耗を低減させ得るの
で、大容量及び低電力を要求するキャッシュ応用分野に
効率的に利用され得る。
【図面の簡単な説明】
【図1】本発明によるコンピュータシステムの構成図で
ある。
【図2】メモリ参照サイクルで、タグアクセスをスキッ
プできる場合を説明する状態構成図である。
【図3】本発明によるメインメモリアドレスフォーマッ
トの一例を示す図である。
【図4】図3のアドレスフォーマットによる順次アクセ
スの一例を示す図である。
【図5】図3のアドレスフォーマットを備えたシステム
に使用適合した図1のタグスキップ制御器の一実施形態
を説明する詳細な構成図である。
【図6】図5のタグスキップ制御器の詳細な回路図であ
る。
【符号の説明】
104 プロセッサ 108a,110a タグRAM回路 108b,110b データ RAM回路 114 タグスキップ制御器 122 スキッフラグ発生器 124 タグRAMアクセス制御回路 126 ヒット判別器 128 データRAMアクセス制御回路

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 デジタルデータプロセッサと、 このプロセッサから供給されたセットフィールド及びタ
    グフィールドを含むメインメモリアドレスに応じて、前
    記プロセッサによって処理される命令とデータを貯蔵す
    るためのメインメモリと、 このメインメモリに貯蔵された前記命令及び/又はデー
    タのうち頻繁にアクセスされる部分を貯蔵するデータRA
    M、そして、このデータRAMへのアクセスのためのタグを
    貯蔵し、貯蔵された前記タグと前記メインメモリの前記
    タグフィールドとを比較してキャッシュヒット/ミス信
    号を発生させるタグRAMを含むキャッシュメモリと、 前記タグRAMへの第1アクセスに関したアクセスタイプ
    及びキャッシュヒット/ミスに対する状態情報を貯蔵
    し、前記状態情報と第2アクセスのためのメインメモリ
    アドレスの一部を根拠にして、前記第1アクセスのすぐ
    後の前記タグRAMへの前記第2アクセスを制御する制御
    器とで構成されることを特徴とするデジタルデータ処理
    システム。
  2. 【請求項2】 前記制御器は、前記状態情報と前記第2
    アクセスのための前記メインメモリアドレスの一部を根
    拠にして、前記第2アクセスが前記第1アクセスでアク
    セスされたキャッシュラインに同一に適用され得るのか
    を判断することを特徴とする請求項1に記載のデジタル
    データ処理システム。
  3. 【請求項3】 前記制御器は、前記第2アクセスでアク
    セスしようとするキャッシュラインが前記第1アクセス
    でアクセスされたキャッシュラインと同一の場合、前記
    タグRAMへのアクセスがスキップされ得ることを特徴と
    する請求項2に記載のデジタルデータ処理システム。
  4. 【請求項4】 前記制御器は、前記メインメモリアドレ
    スの一部を利用して、前記第1及び2アクセスが順次的
    な方法で実施されるのかを判断することを特徴とする請
    求項1に記載のデジタルデータ処理システム。
  5. 【請求項5】 前記メインメモリアドレスの一部は前記
    セットフィールドの最下位ビットを含むことを特徴とす
    る請求項4に記載のデジタルデータ処理システム。
  6. 【請求項6】 デジタルデータ処理システムで、プロセ
    ッサとメインメモリの間に接続される集積回路キャッシ
    ュメモリ装置において、 前記プロセッサから供給されるメインメモリアドレスの
    一部に応じて、前記プロセッサによって処理される命令
    とデータを一時的に貯蔵するデータRAM回路と、 前記データRAM回路へのアクセスのためのタグを貯蔵
    し、前記貯蔵されたタグを前記メインメモリアドレスの
    タグフィールドと比較することによって、複数のタグヒ
    ット信号を発生させるタグRAM回路と、 前記プロセッサから供給されるアクセスタイプ信号及び
    前記メインメモリアドレスのセットフィールドアドレス
    信号に応じて、スキップフラグ信号を発生させるための
    スキップフラグ発生器と、 前記フラグ信号に応じて前記タグRAM回路へのアクセス
    を制御するための第1RAMアクセス制御ロジックと、 前記プロセッサからの動作モード信号、前記スキップフ
    ラグ信号及び前記タグヒット信号に応じて、複数のデー
    タヒット信号を発生させるためのヒット判別器と、 前記データヒット信号に応じて前記データRAM回路への
    アクセスを制御するための第2RAM制御ロジックとで構
    成されることを特徴とする集積回路キャッシュメモリ装
    置。
  7. 【請求項7】 前記スキップフラグ発生器は、前記プロ
    セッサから供給される前記アクセスタイプ信号及び前記
    メインメモリアドレスの前記セットフィールドアドレス
    信号をチェックして、前記タグRAM回路への現在のアク
    セスが、前記タグRAM回路へのすぐ前のアクセスの時ア
    クセスされたキャッシュラインに同一に適用され得るの
    かを判断するための、そして、現在とすぐ前のアクセス
    で同一のキャッシュラインにアクセスする場合、スキッ
    プフラグ信号を活性化させるための手段を含むことを特
    徴とする請求項6に記載の集積回路キャッシュメモリ装
    置。
  8. 【請求項8】 前記第1RAMアクセス制御ロジックは、
    前記スキップ信号が活性化される時、前記タグRAM回路
    への前記現在のアクセスがスキップされ得るように前記
    タグRAM回路へのクロック信号を遮断することを特徴と
    する請求項7に記載の集積回路キャッシュメモリ装置。
  9. 【請求項9】 前記第2RAMアクセス制御ロジックは、
    前記データヒット信号に応じて前記データRAM回路のア
    クセスのためのクロック信号が前記データRAM回路へ伝
    達されるようにすることを特徴とする請求項7に記載の
    集積回路キャッシュメモリ装置。
  10. 【請求項10】 デジタルデータプロセッサ、メインメ
    モリ及びタグRAM回路を含むキャッシュメモリで構成さ
    れたデジタルデータ処理システムにおいて、 前記タグRAM回路への現在のアクセスがすぐ前のアクセ
    スでアクセスされたキャッシュラインと同一であるのか
    を判断する第1段階と、 前記現在のアクセスが前記すぐ前のアクセスでアクセス
    されたキャッシュラインに同一に適用される時、前記タ
    グRAM回路への前記現在のアクセスが容易にスキップさ
    れ得るようにする第2段階とで構成されることを特徴と
    するキャッシュメモリの動作方法。
  11. 【請求項11】 前記第1段階は、 前記キャッシュメモリへの現在のアクセスのために、す
    ぐ前のアクセスから前記現在のアクセスが順次アクセス
    であることを示す順次アクセス信号と第1メインメモリ
    アドレスを発生させる段階と、 前記順次アクセス信号の活性化を感知し、前記現在のア
    クセスアドレスのうち一つのビットが前記すぐ前のアク
    セスの時の該当ビットアドレスと同一であるのかを判断
    する段階と、 前記順次アクセス信号が活性化され、かつ前記アクセス
    アドレスのうち一つのビットが前記すぐ前のアクセスの
    時の該当ビットと同一である時、スキップフラグ信号を
    発生させる段階とを含むことを特徴とする請求項10に
    記載のキャッシュメモリの動作方法。
  12. 【請求項12】 前記第2段階は、 クロック信号を供給する段階と、 前記スキップフラグ信号が活性化される時、前記タグRA
    M回路の動作を制御する前記クロック信号の供給を遮断
    することによって、前記タグRAM回路が動作しないよう
    にする段階とを含むことを特徴とする請求項11に記載
    のキャッシュメモリの動作方法。
JP2001079072A 2000-06-05 2001-03-19 デジタルデータ処理システム、それに使用される集積回路キャッシュメモリ装置およびキャッシュメモリの動作方法 Pending JP2002007210A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020000030879A KR100351504B1 (ko) 2000-06-05 2000-06-05 캐쉬 메모리, 그의 전력 소비 절감 방법 그리고 캐쉬메모리를 구비하는 데이터 처리 시스템
KR2000P-30879 2000-06-05

Publications (1)

Publication Number Publication Date
JP2002007210A true JP2002007210A (ja) 2002-01-11

Family

ID=19671251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001079072A Pending JP2002007210A (ja) 2000-06-05 2001-03-19 デジタルデータ処理システム、それに使用される集積回路キャッシュメモリ装置およびキャッシュメモリの動作方法

Country Status (7)

Country Link
US (1) US6560679B2 (ja)
JP (1) JP2002007210A (ja)
KR (1) KR100351504B1 (ja)
DE (1) DE10112216A1 (ja)
FR (1) FR2809841B1 (ja)
GB (1) GB2365594B (ja)
TW (1) TW502164B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007504552A (ja) * 2003-09-03 2007-03-01 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド プロセッサの電力を削減するためのマイクロtlbおよびマイクロタグ
JP2011028736A (ja) * 2009-07-02 2011-02-10 Fujitsu Ltd キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法
JP2011107888A (ja) * 2009-11-16 2011-06-02 Fujitsu Ltd 演算処理装置及び演算処理装置の制御方法

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003530640A (ja) * 2000-04-12 2003-10-14 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ キャッシュメモリを含むデータ処理回路およびこのような回路を備える装置
KR100416858B1 (ko) * 2001-02-15 2004-02-05 정창우 명령어 처리장치
KR100395756B1 (ko) * 2001-06-16 2003-08-21 삼성전자주식회사 캐쉬 메모리 및 이를 이용하는 마이크로 프로세서
EP1361518B1 (en) 2002-05-10 2013-08-07 Texas Instruments Incorporated Reducing TAG-RAM accesses and accelerating cache operation during cache miss
US6976126B2 (en) * 2003-03-11 2005-12-13 Arm Limited Accessing data values in a cache
US7143243B2 (en) * 2003-05-29 2006-11-28 Via-Cyrix, Inc. Tag array access reduction in a cache memory
JP4080527B2 (ja) * 2005-03-22 2008-04-23 松下電器産業株式会社 キャッシュメモリ制御方法およびキャッシュメモリ制御装置
US20060236036A1 (en) * 2005-04-13 2006-10-19 Gschwind Michael K Method and apparatus for predictive scheduling of memory accesses based on reference locality
US20070005912A1 (en) * 2005-07-01 2007-01-04 Ming-Chung Kao Apparatus and method for reducing tag ram access
KR20090039411A (ko) * 2007-10-18 2009-04-22 삼성전자주식회사 솔더 볼과 칩 패드가 접합된 구조를 갖는 반도체 패키지,모듈, 시스템 및 그 제조방법
US8145874B2 (en) * 2008-02-26 2012-03-27 Qualcomm Incorporated System and method of data forwarding within an execution unit
KR101645003B1 (ko) 2010-02-12 2016-08-03 삼성전자주식회사 메모리 제어기 및 그 메모리 제어기가 탑재된 컴퓨팅 장치
US8914580B2 (en) 2010-08-23 2014-12-16 Apple Inc. Reducing cache power consumption for sequential accesses
US9513837B2 (en) * 2011-10-12 2016-12-06 Hewlett Packard Enterprise Development Lp Performance assist storage volumes
CN103049398A (zh) * 2012-12-31 2013-04-17 北京北大众志微系统科技有限责任公司 一种无用预取过滤方法
KR20170075396A (ko) * 2015-12-23 2017-07-03 고려대학교 산학협력단 메모리 시스템
US9354885B1 (en) 2016-01-08 2016-05-31 International Business Machines Corporation Selective suppression of instruction cache-related directory access
US9898296B2 (en) 2016-01-08 2018-02-20 International Business Machines Corporation Selective suppression of instruction translation lookaside buffer (ITLB) access
US10877889B2 (en) * 2019-05-16 2020-12-29 Micron Technology, Inc. Processor-side transaction context memory interface systems and methods
US11379376B2 (en) 2020-05-20 2022-07-05 Micron Technologies, Inc. Embedding data in address streams

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5307477A (en) * 1989-12-01 1994-04-26 Mips Computer Systems, Inc. Two-level cache memory system
US5724548A (en) * 1990-09-18 1998-03-03 Fujitsu Limited System including processor and cache memory and method of controlling the cache memory
US5586283A (en) * 1993-10-07 1996-12-17 Sun Microsystems, Inc. Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer
US5537570A (en) * 1993-10-12 1996-07-16 Texas Instruments Incorporated Cache with a tag duplicate fault avoidance system and method
US5528592A (en) * 1994-01-27 1996-06-18 Dsc Communications Corporation Method and apparatus for route processing asynchronous transfer mode cells
JP2634147B2 (ja) * 1994-09-16 1997-07-23 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステム、キャッシュヒットの判定方法
JP3277730B2 (ja) * 1994-11-30 2002-04-22 株式会社日立製作所 半導体メモリ装置、及び、それを用いた情報処理装置
JPH08263370A (ja) * 1995-03-27 1996-10-11 Toshiba Microelectron Corp キャッシュメモリシステム
US5809537A (en) * 1995-12-08 1998-09-15 International Business Machines Corp. Method and system for simultaneous processing of snoop and cache operations
US5860113A (en) * 1996-06-03 1999-01-12 Opti Inc. System for using a dirty bit with a cache memory
EP0921471A1 (en) * 1997-12-05 1999-06-09 Texas Instruments France Cache architecture
JPH11184752A (ja) 1997-12-19 1999-07-09 Hitachi Ltd データ処理装置及びデータ処理システム
KR100301791B1 (ko) * 1998-05-30 2001-09-06 김진찬 선택적제어가가능한직/병렬캐시구조를갖는캐시시스템

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007504552A (ja) * 2003-09-03 2007-03-01 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド プロセッサの電力を削減するためのマイクロtlbおよびマイクロタグ
JP2011028736A (ja) * 2009-07-02 2011-02-10 Fujitsu Ltd キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法
JP2011107888A (ja) * 2009-11-16 2011-06-02 Fujitsu Ltd 演算処理装置及び演算処理装置の制御方法
US8621309B2 (en) 2009-11-16 2013-12-31 Fujitsu Limited Processor and method of control of processor

Also Published As

Publication number Publication date
KR100351504B1 (ko) 2002-09-05
DE10112216A1 (de) 2001-12-13
TW502164B (en) 2002-09-11
FR2809841B1 (fr) 2005-08-19
KR20010110005A (ko) 2001-12-12
GB2365594A (en) 2002-02-20
US20010049772A1 (en) 2001-12-06
FR2809841A1 (fr) 2001-12-07
US6560679B2 (en) 2003-05-06
GB2365594B (en) 2002-11-06
GB0104523D0 (en) 2001-04-11

Similar Documents

Publication Publication Date Title
JP2002007210A (ja) デジタルデータ処理システム、それに使用される集積回路キャッシュメモリ装置およびキャッシュメモリの動作方法
US6161166A (en) Instruction cache for multithreaded processor
KR960016403B1 (ko) 캐시메모리, 메모리어레이, 갱신데이타 기록방법 및 프로세서시스템
US9098284B2 (en) Method and apparatus for saving power by efficiently disabling ways for a set-associative cache
KR100382821B1 (ko) 2-웨이세트연관캐시메모리
US6725337B1 (en) Method and system for speculatively invalidating lines in a cache
US20080077813A1 (en) Fast L1 flush mechanism
KR20010101695A (ko) 가상 메모리 시스템에서의 메모리 접근 개선 기술
KR100395756B1 (ko) 캐쉬 메모리 및 이를 이용하는 마이크로 프로세서
JP2000003308A (ja) オ―バラップしたl1およびl2メモリ・アクセス方法および装置
JP2001195303A (ja) 機能が並列に分散された変換索引バッファ
WO2014052383A1 (en) System cache with data pending state
US20230281137A1 (en) Dedicated cache-related block transfer in a memory system
JP4071942B2 (ja) データ処理装置及びデータプロセッサ
US5835934A (en) Method and apparatus of low power cache operation with a tag hit enablement
EP1030243B1 (en) Optimized hardware cleaning function for virtual index virtual tag data cache
JP3431878B2 (ja) マルチスレッド・プロセッサの命令キャッシュ
US6976130B2 (en) Cache controller unit architecture and applied method
WO2006040689A1 (en) Implementation and management of moveable buffers in cache system
US6678800B1 (en) Cache apparatus and control method having writable modified state
US20020042860A1 (en) Cache system
JP3988485B2 (ja) キャッシュ回路、情報処理装置及び電子機器
JP2003131945A (ja) キャッシュメモリ装置
US5611072A (en) Cache with an extended single cycle read/write system and method
US6496904B1 (en) Method and apparatus for efficient tracking of bus coherency by using a single coherency tag bank

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080229

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080415

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080714

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080717

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080815

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080909