JP4071942B2 - データ処理装置及びデータプロセッサ - Google Patents

データ処理装置及びデータプロセッサ Download PDF

Info

Publication number
JP4071942B2
JP4071942B2 JP2001130559A JP2001130559A JP4071942B2 JP 4071942 B2 JP4071942 B2 JP 4071942B2 JP 2001130559 A JP2001130559 A JP 2001130559A JP 2001130559 A JP2001130559 A JP 2001130559A JP 4071942 B2 JP4071942 B2 JP 4071942B2
Authority
JP
Japan
Prior art keywords
way
cache
prediction
access
information
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.)
Expired - Lifetime
Application number
JP2001130559A
Other languages
English (en)
Other versions
JP2002328839A (ja
Inventor
雅之 伊藤
順一 西本
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2001130559A priority Critical patent/JP4071942B2/ja
Priority to US10/083,342 priority patent/US6898671B2/en
Publication of JP2002328839A publication Critical patent/JP2002328839A/ja
Application granted granted Critical
Publication of JP4071942B2 publication Critical patent/JP4071942B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • G06F2212/6082Way prediction in set-associative cache
    • 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)

Description

【0001】
【発明の属する技術分野】
本発明は、キャッシュメモリを持つマイクロプロセッサやDSP(ディジタル信号処理プロセッサ)等のデータ処理装置もしくはデータプロセッサに係り、特にウェイ予測機能を用いるキャッシュ制御技術に適用して有効な技術に関する。
【0002】
【従来の技術】
マイクロプロセッサ、DSP等のデータ処理装置において,プロセッサが外部メモリとのデータ転送を極力減らし、性能を向上するために、高速動作可能なオンチップキャッシュメモリが一般的に搭載される。キャッシュメモリにヒットした場合、外部メモリへのアクセスサイクルを隠蔽することができ、高性能化が達成できるからである。また、消費電力の観点からも、キャッシュメモリ自体は電力を消費するが、外部入出力ピンもしくは外部入出力バッファ回路の駆動を必要としない等によりメモリ制御に伴う消費電力を低減することができ、プロセッサ全体として低消費電力化に寄与することが可能である。
【0003】
キャッシュメモリの構成として、一定の大きさのブロックを単位として、外部メモリデータをキャッシュ内のデータに対応づけるマッピング方式として、ダイレクトマッピング方式、セットアソシアティブ方式、フルアソシアティブ方式がある。
【0004】
ここで、ブロックの大きさをBバイト、キャッシュ内のブロック数をcとすると、外部メモリのアドレスaのバイトが含まれるブロックの番号mはa/Bの整数部になる。
【0005】
ダイレクトマッピング方式では、番号mの外部メモリのブロックはモジュロ演算式m mod cで現されるキャッシュメモリ内の番号のブロックに一意的にマッピングされる。ダイレクトマッピングでは、キャッシュ内の同一ブロックに割り当てられ得る複数のブロックが同時に使用されると衝突が発生してキャッシュヒット率が低下する。これに対してフルアソシアティブ方式では、外部メモリのどのブロックもキャッシュメモリのどのブロックにでもマッピング可能とする方式である。しかしながら、フルアソシアティブ方式では、キャッシュの全ブロックを各アクセス毎に連想検索しなければならず、実用的なキャッシュ容量では、実現困難である。このため、実用的には、両者の中間のセットアソシアティブ方式が一般的に用いられる。セットアソシアティブ方式は、n(N=2、4又は8程度)個のキャッシュ内ブロックをまとめた単位をセットと定義し、このセットに対してはダイレクトマッピングを適用し、セット内のブロックに対しては、フルアソシアティブマッピングを適用することによって、両者の長所を生かす方法で、nの値によりnウェイセットアソシアティブ方式と称される。
【0006】
しかしながら、アクセス時間の観点ではセットアソシアティブ方式はダイレクトマッピング方式に劣る。一般的にキャッシュの1ライン(1キャッシュエントリ)はキャッシュに格納されているアドレスを示すタグと格納データで構成されるが、セット内のどのブロック(ウェイ)のデータ読み出せば良いかが、アクセスアドレスとタグの比較結果に依存するからである。ダイレクトマッピング方式では、読み出すべきデータは、アクセスアドレスにより一意に決定されるため、キャッシュ読み出しに要する時間はダイレクトマッピング方式が最も有利である。
【0007】
また、消費電力の観点からもダイレクトマッピング方式が最も有利である。なぜなら、セットアソシアティブ方式では、セット内の全てのブロック(ウェイ)のタグを読み出す必要があることのみならず、高速に読み出しデータを確定させるために、データの読み出しもヒットしたウェイの決定を待たずに候補となる全ウェイのデータを読み出しておく制御が一般に行われるためである。
【0008】
以上説明したダイレクトマッピング方式とセットアソシアティブ方式の両者の長所、すなわち、セットアソシアティブ方式のキャッシュの高ヒット率による高性能と、ダイレクトマッピング方式の各アクセス毎のキャッシュ検索を短時間で行えることによる高速化の両方を享受できる方法として、ウェイ予測セットアソシアティブ方式がある。
【0009】
ウェイ予測セットアソシアティブ方式では、参照ラインが存在する唯一のウェイをタグ比較とは独立に予測することで、ヒットしたウェイの決定を待たずに読み出しデータを確定できるため、ダイレクトマッピング方式の高速読み出しを行えると同時に、セットアソシアティブ方式のキャッシュの高ヒット率を達成することができる。この種のウェイ予測セットアソシアティブ方式について記載された文献の例として特開平7−334423号公報が有る。
【0010】
【発明が解決しようとする課題】
上述のウェイ予測セットアソシアティブ方式では、通常のキャッシュヒット、キャッシュミスの他に、キャッシュにはヒットしているが、予測ウェイを誤る場合が存在し、これを予測ミスと称する。本方式では以下の3つの状態がある。即ち、▲1▼予測ヒット(:通常のキャッシュヒットであり、且つウェイ予測が正しい場合)、▲2▼予測ミス(:通常のキャッシュヒットであり、且つウェイ予測が誤りの場合9、▲3▼キャッシュミス(:キャッシュリプレースの発生する通常のキャッシュミス)である。
【0011】
予測ヒットの場合の実行サイクルは通常1サイクルであり、キャッシュミスの場合の実行サイクルは外部メモリへのアクセス時間で決まり、ダイレクトマッピング方式や通常のセットアソシアティブ方式と同一である。予測ミスが発生すると、リードアクセスの場合は改めて正しいウェイへアクセスする必要があるため、ペナルティサイクルが発生する。一般的に高速で動作するプロセッサはパイプライン構成を採用しており、次々と連続するキャッシュアクセスを処理するために、キャッシュ制御部はウェイの予測がヒットするものと想定して動作するために、ウェイ予測ミスの次の実行サイクルでは、当該次のアクセスの処理を行う制御を開始している。このような制御を行うため、改めて正しいウェイへアクセスするのは更にその次のサイクルになり、予測ミス発生時には、2サイクルもしくはそれ以上のペナルティサイクルが挿入されることになる。ライトアクセスの場合でウェイ予測にしたがって投機的に書き込みを行なう場合には、予測ミスが発生すると、既に書き込みを行ったウェイに対しては元の正しいデータをリカバリする必要があり、正しいウェイへ改めて書き込みを行う必要がある。
【0012】
本発明者はそのような予測ミスによるペナルティサイクルについて更に検討した。例えばリードアクセスが連続するとき、予測ミスを生ずると、キャッシュメモリは正規の連想動作によるペナルティサイクルを実行し、その間、CPUでは当該予測ミスに係る命令実行サイクル(若しくはメモリアクセスサイクル)の次の命令実行サイクルがストールされ、後続の処理がウェイト若しくは待ち状態にされる。その間、キャッシュメモリは予測ミスに係るアクセスに対するペナルティサイクルを実行しているだけである。これにより、連続アクセスに対し連続する予測ミスを生ずると、予測ミス毎に毎回ペナルティサイクルが累積され、CPUによるメモリアクセスが著しく遅れる虞のあることが本発明者によって明らかにされた。キャッシュミスと予測ミスが前後して発生する場合も、同じように、夫々のミス毎に毎回ペナルティサイクルが累積される事情は同じである。
【0013】
本発明の目的は、上述の予測ミスが連続して発生し、或はキャッシュミスと予測ミスが前後して発生する場合に、ペナルティサイクルの累積回数を低減させることができ、ひいてはCPU等によるデータ処理性能もしくはデータ処理速度向上に寄与することができるデータ処理装置もしくはデータプロセッサを提供することにある。
【0014】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【0015】
【課題を解決するための手段】
〔1〕《連続するウェイ予測ミスの発生防止》本発明の第1の観点は、連続するウェイ予測ミスの発生を防止するために、予測ミスに後続するアクセスのアクセスウェイを予め確定させることにある。この観点に立つデータ処理装置は、インデックスされたキャッシュラインのタグ情報を用いる連想動作が可能なセットアソシアティブ型のキャッシュメモリを有する。前記キャッシュメモリは、前記連想動作に並行して予測に基づくウェイ選択を行うウェイ予測手段(13)と、前記ウェイ予測手段による予測ミスに起因するペナルティサイクル中に、後続アクセスアドレスを用いた連想動作に基づいてウェイ選択確定情報を生成する生成手段(30)と、前記ペナルティサイクル後の前記後続アクセスアドレスに対して、前記ウェイ選択確定情報によりウェイを選択させる制御手段(31,31A)と、を含んで成る。
【0016】
前記連想動作は、例えば、アクセスアドレス情報に含まれる所定のアドレス情報を、インデックスされたキャッシュラインの各ウェイのタグ情報と比較し、ウェイ毎に連想ヒット又は連想ミスを示す連想結果信号を生成する動作である。
【0017】
また、前記ウェイ予測手段による予測は、例えば、キャッシュライン毎のウェイ選択の履歴情報に基づいて、最も最近選択されたウェイを選択ウェイとする処理である。
【0018】
前記制御手段(31)は、前記ウェイ予測手段による予測に代えて前記ウェイ選択確定情報によりウェイを選択させるものである。或は、前記制御手段(31A)は、前記ウェイ選択確定情報に対応するところの前記ウェイ予測手段による予測結果情報を書換え制御するものである。
【0019】
上記データ処理装置において、例えばCPUが連続リードアクセスを行う場合、第1リードアクセスでは、先ず、インデックスされたキャッシュラインのタグ情報がCPUからのアクセスアドレスと比較され、その比較結果から、キャッシュヒット又はキャッシュミスが判定される。判定結果は制御手段に保持されている。これに並行して、履歴情報を使用したアルゴリズムにしたがってウェイの選択(ウェイ予測選択)が行われ、選択されたウェイのデータがリードデータとしてCPUに与えられる。制御手段は前記キャッシュヒット又はキャッシュミスの判定結果に基づいてウェイ予測が正しかったかを認識することができる。例えば、キャッシュヒットに係るウェイが履歴情報に基づくウェイ予測に一致するかを認識する。ウェイ予測が正しければ、それによって、第1リードアクセスに応答するキャッシュ動作を終了し、次のサイクルでは後続の第2リードアクセスに対する処理が可能になる。キャッシュミスが発生した場合は、従来のダイレクトマッピング方式やセットアソシアティブ方式と同様、外部メモリをアクセスして、キャッシュエントリのリプレースを行う必要がある。当然この場合にはリプレースなどの処理が完了されて正規のリードデータがCPUに供給されるまでCPUには第1リードアクセスの未完了が通知される。また、キャッシュヒットであってもウェイ予測が誤っていた場合、高速動作設計されたキャッシュメモリにおいて、次のサイクルを第1リードアクセスにおける正しいウェイへの再アクセスに切換えることが時間的に困難であり、当該次のサイクルでは、結果としてCPUからの第2リードアクセスのためのアドレス情報などがキャッシュメモリに伝達されることになる。この時、キャッシュメモリはそのままアドレスアレイを動作させ、アドレスアレイから出力されるタグとCPUからの第2リードアクセスのアドレスとを比較する。制御手段はその比較結果をCPUからの第2リードアクセスに対する各ウェイの比較結果として、後から利用するために保存しておく。この段階では、CPUの第1リードアクセスに対する処理が未だ完了していないので、その次のサイクルでは、再度、第1リードアクセスのアドレスを使用してデータアレイを読み出す。その読み出しデータに対しては、前記制御手段が先に取得して保存している第1リードアクセスに対するタグとアドレスとの比較結果を直接用いてアクセスウェイを選択することができる。この比較結果を直接用いてアクセスウェイを選択する操作に代えて、先ず、その比較結果を用いて当該ウェイが予測選択対象にされるように対応するキャッシュラインの履歴情報を予め更新しておく。これにより、再アクセスのウェイ予測を必ずヒットさせることを保証できるから、第1リードアクセスの再アクセスにも履歴情報を用いたウェイの選択を行ってもよい。このように、第1のリードアクセス処理はこのサイクルで必ず完了し、次のサイクルには第2のアクセスを処理することになる。第1リードアクセスの予測ミスに続く第2リードアクセスでは、既に第2リードアクセスのアドレスとタグとの比較結果が制御手段に蓄えられているから、第2リードアクセスに対する処理では、履歴情報を使用したアルゴリズムに従うウェイ予測に代えて、前記既に取得されている比較結果を用いることにより、第2リードアクセスに対する予測内容に拘わらず、絶対的に正しいアクセスウェイを選択してデータをCPUに供給することができる。したがって、キャッシュヒットに係る第2リードアクセスに関してはペナルティサイクルの発生する余地すらない。
【0020】
このように前記データ処理装置は、CPUからの連続したリードアクセスを処理する場合に、第1のリードアクセスがウェイ予測ミスを起こした場合に必要となるペナルティサイクルの間に、後続のリードアクセスがヒットするウェイの選択確定情報を予め得て記憶し、これを第2リードアクセスにおけるウェイ選択に利用する。したがって、連続したウェイ予測ミスを防ぐことができる。これにより、ウェイ予測形式のセットアソシアティブ型キャッシュメモリは、セットアソシアティブ方式のキャッシュヒット性能を維持しつつ、ダイレクトマッピング方式と同じような高速動作を可能にすることができる。
【0021】
上記作用説明は連続するリードアクセスを一例とするが、アクセスは特にリードに限定されるものではなく、ライト等の他のアクセスであってもよい。
【0022】
〔2〕《キャッシュミスに後続するアクセスのウェイ確定》本発明の第2の観点は、キャッシュミスに後続するウェイ予測ミスの発生を防止するために、キャッシュミスに後続するアクセスのアクセスウェイを予め確定させることにある。要するに、前記第1のリードアクセスのようなアクセスはウェイ予測ミスに限らず、ペナルティサイクルが発生する処理であればキャッシュミス等であってもよい。この観点に立つデータ処理装置は、インデックスされたキャッシュラインのタグ情報を用いる連想動作が可能なセットアソシアティブ型のキャッシュメモリを有するデータ処理装置である。前記キャッシュメモリは、前記連想動作に並行して予測に基づくウェイ選択を行うウェイ予測手段と、キャッシュミスに起因するペナルティサイクル中に、後続アクセスアドレスを用いた連想動作に基づいてウェイ選択確定情報を生成する生成手段と、前記ペナルティサイクル後の前記後続アクセスアドレスに対して、前記ウェイ予測手段による予測に代えて前記ウェイ選択確定情報によりウェイを選択させる制御手段と、を含んで成る。
【0023】
〔3〕《ウェイ予測ミスに後続するアクセスのキャッシュミスに応答する外部アクセス指示の先行発行》本発明の第3の観点は、ウェイ予測ミスに後続するアクセスのキャッシュミスに応答する外部アクセス指示を先行発行することにある。要するに、前記第2のリードアクセスのようなアクセスがキャッシュミスである場合を想定する。この観点に立つデータ処理装置は、インデックスされたキャッシュラインのタグ情報を用いる連想動作が可能なセットアソシアティブ型のキャッシュメモリを有する。前記キャッシュメモリは、前記連想動作に並行して予測に基づくウェイ選択を行うウェイ予測手段と、前記ウェイ予測手段による予測ミスに起因するペナルティサイクル中に、後続アクセスアドレスのキャッシュミスに応答する外部メモリアクセスの指示を発行する制御手段と、を含んで成る。これにより、ウェイ予測ミスに後続するアクセスがキャッシュミスである場合に、これを早く検出して、外部メモリアクセスを早く起動することが可能になる。
【0024】
〔4〕《ウェイ予測機能の選択》本発明の第4の観点に係るデータ処理装置には、前記連想動作の結果に応じてウェイ選択を行う制御手段と、前記連想動作に並行して予測に基づくウェイ選択を行うウェイ予測手段と、ウェイ選択に前記制御手段又は前記ウェイ予測手段の何れを用いるかを切換え可能に選択する選択手段と、を含むキャッシュメモリを採用する。換言すれば、前記連想動作の結果に応じてウェイ選択を行う第1動作モードと、前記連想動作に並行して予測に基づくウェイ選択を行う第2動作モードと、を切換え可能に指示する指示手段を含んだキャッシュメモリを採用する。前記指示手段を内蔵CPUによってアクセス可能なレジスタ手段とすれば、キャッシュメモリの動作モードをCPUのソフトウェアで設定可能になる。
【0025】
〔5〕本発明の更に別の観点によるデータプロセッサは、インデックスされたキャッシュラインのタグ情報を用いる連想動作が可能なセットアソシアティブ型のキャッシュメモリと、前記キャッシュメモリに接続されたCPUとを有し、例えば1個の半導体基板に形成される。前記キャッシュメモリは、複数のウェイ及びキャッシュ制御手段を有する。前記キャッシュ制御手段は、前記CPUのアクセス動作に応答して、前記連想動作に並行して予測に基づくウェイ選択行い、予測選択ウェイが連想動作結果に不一致となる予測ミスに起因するペナルティサイクル中、又はキャッシュミスに起因するペナルティサイクル中に、後続アクセスアドレスを用いた連想動作による検索ヒットに基づいてウェイ選択確定情報を生成し、前記ペナルティサイクル後の前記後続アクセスアドレスには前記予測に基づくウェイ選択に代えて前記ウェイ選択確定情報によりウェイを選択させる制御を行う。前記制御手段は、前記ウェイ選択確定情報に対応するところの前記ウェイ予測手段による予測結果情報を書換え制御するようにしてもよい。
【0026】
前記キャッシュ制御手段は、前記予測ミスに起因するペナルティサイクル中に、後続アクセスのキャッシュミスに対して、メモリコントローラ若しくはバスステートコントローラに、外部メモリアクセスの指示を発行するように構成してよい。
【0027】
前記キャッシュ制御手段は、例えばキャッシュライン毎のウェイ選択の履歴情報を記憶する記憶手段を有し、履歴情報は最も最近アクセスされた情報に応ずるウェイを選択ウェイとする情報である。
【0028】
前記キャッシュ制御手段は、インデックスされたキャッシュラインの中から選ばれた最新のアクセスウェイを後の予測で指定可能とするように、前記履歴情報を更新するものである。
【0029】
前記キャッシュ制御手段はキャッシュラインをインデックスするアドレス情報により前記記憶手段から前記履歴情報を読み出し、読み出した履歴情報に基づいてウェイの予測選択を行うものである。
【0030】
前記キャッシュ制御手段は、インデックスされたキャッシュラインに含まれるタグ情報に基づいてキャッシュミス又はウェイ選択の予測ミスが発生したか否かを判定し、キャッシュヒット且つ予測ミスの判定結果に応答してウェイの選択をやり直し且つアクセス対象キャッシュラインに対応する前記履歴情報を更新し、キャッシュミスの判定結果に応答してアクセス対象キャッシュラインをリプレースするために外部アクセスを指示し且つリプレース対象キャッシュラインに対応する前記履歴情報を更新するものである。
【0031】
【発明の実施の形態】
図1には本発明の一例に係るデータプロセッサが示される。同図に示されるデータプロセッサ4は、特に制限されないが、CMOS集積回路製造技術などによって単結晶シリコンなどの1個の半導体基板(半導体チップ)に形成される。データプロセッサ4は、代表的に示されたCPU(中央処理装置)1、キャッシュ部2、及びメモリ制御部3を有する。
【0032】
CPU1は、フェッチした命令を解読して制御信号を生成する命令制御部と、前記命令制御部の制御を受けて演算処理を行う実行部とを有する。6はアドレスバス、7はデータバス、8はコントロールバスであり、CPU1は、それらバス6〜8を介してキャッシュ部2に接続される。CPU1がメモリアクセスを行う場合には、実効アドレスはアドレスバス6に出力される。コントロールバス8にはリード信号、ライト信号などのストローブ信号が出力される。リードデータはデータバス7を介してCPU1に供給され、CPU1はライトデータをデータバス7に出力する。
【0033】
前記キャッシュ部2は、ウェイ予測機能付きの2ウェイセットアソシアティブキャッシュメモリとして構成される。図1に示されるキャッシュ部2の構成は、専らCPU1からのリードアクセスに応答するための構成を主体に例示してある。CPU1のライトアクセス時におけるデータ経路の詳細については図示を省略している。
【0034】
前記キャッシュ部2は2個のウェイ10,11、キャッシュ制御部12、履歴情報記憶部13、及びセレクタ14,15を有する。
【0035】
ウェイ10は、アドレスアレイ16、データアレイ17、及び比較器18を有する。アドレスアレイ16及びデータアレイ17は、アドレスバス6から供給されるアドレス信号の下位側の一部をインデックスアドレス信号として共通に入力し、そのインデックスアドレス信号で選択される情報記憶領域領域としてキャッシュラインを有する。夫々のキャッシュラインは、特に制限されないがデータアレイ17の側にデータ情報が格納され、アドレスアレイ16の側にタグ情報等が格納される。比較器18はインデックスされたキャッシュラインのタグ情報と、アクセスアドレス情報としてのアドレス信号のそれに対応するタグアドレス情報とを比較して、連想ヒット又は連想ミスを示す連想結果信号19Aを生成する。ウェイ11も同様であり、図示を省略するアドレスアレイ、データアレイ、及び比較器を有し、図示を省略する比較器はインデックスされたキャッシュラインのタグ情報と、アドレス信号のそれに対応するタグアドレス情報とを比較して、連想ヒット又は連想ミスを示す連想結果信号19Bを生成する。前記アクセスアドレス情報に含まれるタグアドレス情報を、インデックスされたキャッシュラインの各ウェイのタグ情報と比較し、ウェイ毎に連想ヒット又は連想ミスを示す連想結果信号19A,19Bを生成する動作を、ここでは連想動作と称する。
【0036】
前記セレクタ15はウェイ10,11のデータアレイ17から出力されるデータを選択する。セレクタ14はセレクタ15の選択制御信号として、履歴情報記憶部13が出力するウェイ予測信号22、又はキャッシュ制御部12が出力するウェイ確定信号23を選択する。セレクタ14の選択信号24はキャッシュ制御部12が出力する。尚、セレクタ15で選択されるデータ語長が例えばロングワード(32ビット)のようなアクセス単位を超えるビット数(例えば128ビット)の場合には、アドレス信号の最下位側数ビット(例えばバイトアドレスの場合の4ビット)を用いて図示を省略する別のセレクタを用いて前記32ビットを選択すればよい。
【0037】
前記履歴情報記憶部13はキャッシュライン毎のウェイ選択の履歴情報を保有し、履歴情報はキャッシュラインのインデックス動作に呼応して当該インデックスアドレス信号で選択される。この例では2ウェイであるから、履歴情報は1ビットで済み、インデックスアドレスで選択された履歴情報がウェイ予測信号22とされる。このウェイ予測信号22は対応するキャッシュラインにおいて最も最近選択されたウェイの選択を意味する信号とされる。
【0038】
図1において、前記キャッシュ制御部12は、インデックスされたキャッシュラインに含まれるタグ情報に基づいてキャッシュミス又はウェイ選択予測ミスが発生したか否かを判定する。キャッシュミスは前記連想結果信号19A,19Bの双方が比較不一致を意味する状態である。前記連想結果信号19A,19Bの何れか一方が比較一致を意味する状態がキャッシュヒットである。前記予測ミスは、キャッシュヒットにおいてヒットに係るウェイと前記ウェイ予測信号22で示されるウェイが不一致の状態である。両者が一致する状態が予測ヒットである。
【0039】
前記キャッシュ制御部12による判定結果が予測ヒットである場合にはその時のキャッシュ動作は正常終了とされ、前記キャッシュ制御部12はアクセス完了信号25を活性化してCPU1に返す。CPU1はアクセス完了信号25の活性化により、そのときのデータバス7上のデータをアクセスデータとして認識する。要するに、CPU1にとってアクセス完了信号25はデータストローブ信号として機能する。
【0040】
キャッシュ動作の異常終了は、予測ミス、キャッシュミスの場合である。一般に、高速で動作するデータプロセッサはパイプライン構成を採用しており、次々と連続するキャッシュアクセスを処理するために、キャッシュ制御部12はウェイの予測がヒットするものと想定して動作する。これにより、CPU1は、ウェイ予測ミスやキャッシュミスを生じても次の実行サイクルのためのアドレス出力動作などを開始してしまう。要するにCPUは次の動作までオーバーランしてしまう。其の後、CPU1はアクセス動作をウェイト状態とし、ミスに係るアクセス動作のペナルティサイクルが完了されて、アクセス完了信号25がアサートされるのを待って、制御動作を再開する。
【0041】
前記キャッシュ制御部12は、そのようなペナルティサイクルとして、例えば予測ミスの判定結果に応答して、連想動作によるキャッシュヒットに係るウェイの選択をデータアレイでやり直す。且つ、インデックスされたキャッシュラインに対応する前記履歴情報を、当該やり直し動作で選択されるウェイが予測最優先とされるように履歴更新データ26で更新する。例えば予測動作でウェイ10が予測され、連想動作でウェイ11が選択されるとき、当該キャッシュラインの履歴情報は、ウェイ予測信号22がウェイ11を意味するように履歴更新データ26で更新される。このやり直し動作、即ちペナルティサイクル中に、ウェイ10,11はCPU1のオーバーラン動作で与えられる次のアクセスアドレスに対する連想動作も並行して行う。この並行する連想動作の結果がキャッシュヒットの場合、その連想結果を、後続アクセスに対するウェイ選択確定情報23としてウェイ確定生成部30に保持する。ウェイ確定生成部30に保持したウェイ選択確定情報23は、当該ペナルティサイクルに後続するキャッシュヒットに係るアクセスに応答してウェイ予測信号22に代えてセレクタ14で選択される。セレクタ14の選択動作は制御回路31が信号24を用いて行う。前記信号24によるウェイ選択確定情報23の選択タイミングは、特に制限されないが、ウェイ予測ミスを生じた動作サイクルから2サイクル目とされる。
【0042】
したがって、CPU1からの連続したアクセスを処理する場合に、例えば第1のリードアクセスがウェイ予測ミスを起こしたときに必要なペナルティサイクル中に、後続のリードアクセスがヒットするウェイの選択確定情報23を予め得て記憶し、これを第2リードアクセスにおけるウェイ選択に利用するから、連続したウェイ予測ミスを確実に防ぐことができる。
【0043】
また、キャッシュ制御部12は、キャッシュミスの判定結果に応答してアクセス対象キャッシュラインをリプレースするためにメモリ制御部3にアクセス制御信号40及びアドレス信号41を与えて外部アクセスを指示し、且つリプレース対象キャッシュラインに対応する前記履歴情報を上記同様に更新する。この間、キャッシュ制御部12は、予測ミスの場合と同様、ウェイ選択確定情報23をウェイ確定生成部30に保持しておく。そして、制御部31は、前述と同様に、キャッシュミスに係るペナルティサイクルに続くキャッシュヒットのアクセスに応答して、ウェイ予測信号22に代えてセレクタ14でウェイ選択確定情報23を選択して、キャッシュミスに続いてウェイ予測ミスを生ずる事態を防止することができる。このときの前記信号24によるウェイ選択確定情報23の選択タイミングは、特に制限されないが、キャッシュミスを生じた動作サイクルから5サイクル目とされる。尚、キャッシュミスに係るペナルティサイクルで外部から得られるデータ43は、所定のリプレース制御を経て、キャッシュミスに係るキャッシュラインに格納される。
【0044】
更にキャッシュ制御部12は、前記予測ミスに起因するペナルティサイクル中に、後続アクセスアドレスに対する予測結果信号19A,19Bに基づいてキャッシュミスであるか否かを判定し、キャッシュミスの判定結果を得たとき、当該キャッシュミスに応答する外部メモリアクセスの指示をメモリ制御部3に予め発行する制御を行う。
【0045】
図2には前記履歴情報記憶部13の概略構成が例示される。Lat0〜Latnはキャッシュラインに1対1対応で履歴情報を保持するラッチ回路である。ラッチ回路Lat0〜Latnに対する書込みデータは履歴更新データ26であり、更新信号は更新信号生成論理50で生成される。ラッチ回路Lat0〜Latnの出力データはセレクタ51で選択される。セレクタ51の選択動作はインデックスアドレス信号をデコードするデコーダ52によるデコード信号によって決定される。履歴情報の書込みは、インデックスアドレスの供給サイクルに対して後の動作サイクルで行われるから、書きこみ更新信号生成論理50側にレジスタ53が配置されている。更新信号生成論理50は、図示を省略するラッチタイミング信号を入力し、これによって指示されるラッチタイミングに同期してレジスタ53に保持されているデコード信号をラッチ回路Lat0〜Latnに与える。
【0046】
図3にはキャッシュ制御部12の詳細が例示される。キャッシュ制御部12はウェイ確定生成部30とその他の制御部としての状態遷移制御部(ステートマシン)31に大別される。ウェイ確定生成部30には連想結果信号19A,19Bをラッチするラッチ回路32A,32Bが代表的に図示され、CPUへのアクセス完了信号25が入力され、ウェイ確定信号23を出力する。ラッチ回路32A,32Bは前記アクセス完了信号25がハイレベルからローレベルにネゲートされたサイクルから2サイクル遅れたサイクルでラッチ動作を行う。要するに、アクセス完了信号25はアクセス開始時点からネゲートされるから、ミスの発生した次のサイクルで後続アクセスのアドレスを取り込むためにそのようなタイミングでラッチ動作が行われることになる。この様子は、後述する図6、図8、図10の完了信号の欄におけるアスタリスク(*)が付されたサイクルをラッチ回路32A,32Bのラッチタイミングとして位置付けていることから、更に明らかになる。
【0047】
ステートマシン31には、連想結果信号19A,19Bをラッチするラッチ回路33A,33B、履歴更新制御部34及びリプレース制御部35が代表的に図示される。ラッチ回路33A,33Bはキャッシュ動作サイクル毎に連想結果信号19A,19Bをラッチし、ラッチした連想結果信号19A,19Bと前記ウェイ予測信号22とに基づいて、キャッシュミス、ウェイ予測ヒット、及びウェイ予測ミスの判定を行う。特に履歴更新制御部34は、履歴更新データ26を生成し、リプレース制御部35はリプレースすべきキャッシュラインを例えばLRU(Least Recently Used)やランダム等のアルゴリズムに従って決定する論理を有する。
【0048】
図4にはキャッシュ制御部12による制御内容がフローチャートで示される。CPU1からアクセス指示があると、CPU1から供給されるアドレス信号に基づいてデータアレイ及びアドレスアレイに対してインデックス動作され、インデックスされたキャッシュラインのデータがウェイ予測信号22で選択されてCPU1に返される(S1)。これに並行してアドレスアレイでは、インデックスされたキャッシュラインから夫々のウェイのタグ情報がを読み出され、アドレス信号のタグアドレス情報と比較され、ウェイ毎の連想判定結果信号19A,19Bが生成される。連想判定結果信号19A,19Bに基づいてキャッシュヒットか否かが判定される(S2)。キャッシュミスの場合には、キャッシュリプレースのためのペナルティサイクルとして外部メモリアクセスが行われ、アクセスされたデータがCPU1に供給され、且つ其のデータをデータアレイに蓄えるためにLRU等のアルゴリズムに従ったリプレースが行われる。このリプレースに応答して履歴情報の更新も行われ、また、このキャッシュミスのペナルティサイクルに並行して、次のアクセスアドレスに関し前記ウェイ確定情報を取得しておく(S3)。キャッシュヒットの場合には予測ミスか否かが判定される(S4)。予測ミスでなければCPU1からの当該アクセス指示に応答する処理を終了する。予測ミスの場合には、他のウェイの再読み出しを行ってCPU1に与えるペナルティサイクルを実行し、これに伴って予測情報も更新する。そして、其のペナルティサイクルに並行して、次のアクセスアドレスに関し前記ウェイ確定情報を取得しておく(S5)。取得されたウェイ確定情報に従って可能ならば(処理時間が有るなら)予測情報も更新しておくことが望ましい。更新しなくても当該次のアクセスでは予測ミスを生ずることはない。
【0049】
ステップS3又はステップS5でウェイ確定情報が取得されているとき、次のアクセスではステップS1において、予測情報に代えてウェイ確定情報を用いるウェイ選択が行われる。この場合には必ずキャッシュヒットになり、予測ヒットになる。従って、ウェイ確定情報を用いるウェイ選択を行った場合にはステップS2以降の処理は省いてもよい。
【0050】
図5にはウェイ予測機能を有するがウェイ選択確定機能を有し得ていないキャッシュメモリの動作タイミングチャートが例示される。ここでは、CPUから5回のリードアクセスがなされる場合を考え、全てのリードのCPU要求データはウェイ1(W1)に存在するが、履歴情報はウェイ0(W0)を予測する状態を想定する。図5において、CPUアドレスの欄は、CPUから発行される実効アドレスR1,R2,R3,R4,R5を示し、5種類のアクセスアドレスを示す。アドレスアレイアクセスの欄は、キャッシュメモリのアドレスアレイへのアクセスがCPUからの何れのアドレスに対してなされるかを示す。データアレイアクセスの欄は、キャッシュメモリのデータアレイへのアクセスがCPUからのいずれのアドレスに対してなされるかを示す。履歴情報予測ウェイは、履歴情報に基づくウェイ予測信号(22)がいずれのウェイを選択するように指示しているかを記す。ウェイ0を予測する状態をW0,ウェイ1を予測する状態をW1と略記する。ウェイセレクトの欄は、キャッシュ制御部が何れのウェイを選択するように実際に指示しているかを記す。CPU要求データのありかの欄は、CPUの各アクセスの要求データの場所を示す。CPU受け取りデータの欄は、ウェイセレクタにより選択されCPUに渡されたデータが何れのウェイのものであるかを示す。また、外部メモリからデータが供給される場合もある。アクセス状態の欄は、CPUからの各アクセス予測ミス、予測ヒット、キャッシュミスのいずれの状態であるかを示す。外部メモリアクセスの欄は、キャッシュミス状態の場合に、どのサイクルで外部メモリアクセスがなされるかを示すものである。図5の例では、5回のリードアクセスは全て予測ミスを想定している。時刻1でR1が予測ミスであることがわかり、時刻3でR1のアクセスが完了している。そして、時刻4でR2が予測ミスであることがわかり、時刻6でR2のアクセスが完了している。以下同様であり、図5の場合には、ウェイ予測ミスが連続する場合、リードアクセス処理は3サイクル毎に完了することになる。
【0051】
図6には、前記データプロセッサ4において予測確定情報23を用いる場合の動作タイミングチャートが例示される。この動作例も図5と同様に、CPU1から5回のリードアクセスがなされる場合を考え、全てのリードのCPU要求データはウェイ1(W1)に存在するが、履歴情報はウェイ0(W0)を予測する状態を想定する。図6では、CPU1からのR1が予測ミスとなりそのペナルティサイクル中である時刻2に、R2に対するアドレスアレイアクセスを行い、各ウェイのヒット情報をキャッシュ制御部12内に記憶しておくことで、時刻4では、履歴情報予測ウェイはW0であるにも関わらず、ウェイセレクトは正しく要求データの存在するW1を選択することができる。なお、時刻4でのアドレスアレイアクセスは必ずしも必要でないので、図6では(R2)と記している。時刻5から時刻8での動作は時刻1から時刻4の動作と同様である。このように、ウェイ予測ミスが連続する場合でも、後続のリードアクセス処理は予測ヒットするケースと同じ1サイクルで完了することができる。
【0052】
図7にはウェイ予測機能を有するがウェイ選択確定機能を有し得ていないキャッシュメモリの別の動作タイミングチャートが例示される。ここでの例は、CPUから4回のリードアクセスがなされる場合で、R1はキャッシュミス、R2は予測ミス、R3はキャッシュミス、R4は予測ミスを想定している。時刻1でR1がキャッシュミスであることがわかり、時刻2で外部メモリアクセスが発行される。これに対するデータは外部メモリの仕様に依存するが時刻5でCPUへ供給されることを想定しており、時刻5でR1の処理は完了する。そして、時刻6でR2が予測ミスであることがわかり、時刻8でR2のアクセスが完了している。その後、時刻9でR3がキャッシュミスであることがわかり、時刻10で外部メモリアクセスが発行される。これに対するデータは時刻13でCPUへ供給されR1の処理は完了する。そして、時刻14でR4が予測ミスであることがわかる。要するに、時刻5にキャッシュミスのペナルティ処理が終るのを待って、後続アクセス要求に答える処理手順とされ、当該後続アクセスが予測ミスであれば、更に今度は予測ミスに係るペナルティサイクルが加算される。
【0053】
図8には前記データプロセッサ4において予測確定情報23を用いる場合の別の動作タイミングチャートが例示される。ここでも、図7の例と同様に、CPU1から4回のリードアクセスがなされる場合を考え、R1はキャッシュミス、R2は予測ミス、R3はキャッシュミス、R4は予測ミスを想定している。図8では、CPU1からのR1がキャッシュミスとなりそのペナルティサイクル中である時刻2に、R2に対するアドレスアレイアクセスを行うことで、R2に対するウェイヒット情報を確定することができる。これをキャッシュ制御部12に記憶しておくことで、時刻5でR1の外部メモリアクセスが完了した後の、時刻6において、履歴情報予測ウェイはW0であるにも関わらず、ウェイセレクトは正しく要求データの存在するW1を選択することができる。このように、キャッシュミスアクセスとウェイ予測ミスが連続する場合でも、後続のリードアクセス処理は予測ヒットするケースと同じ1サイクルで完了することができる。
【0054】
図9にはウェイ予測機能を有するがウェイ選択確定機能を有していないキャッシュメモリの更に別の動作タイミングチャートが例示される。ここでの例は、CPUから4回のリードアクセスがなされる場合で、R1は予測ミス、R2はキャッシュミス、R3は予測ミス、R4はキャッシュミスを想定している。時刻1でR1が予測ミスであることがわかり、時刻3でR1のアクセスが完了している。その後、時刻4でR2がキャッシュミスであることがわかり、時刻5で外部メモリアクセスが発行される。これに対するデータは時刻8でCPUへ供給されR2の処理は完了する。そして、時刻9でR3が予測ミスであることがわかり、時刻11でR3のアクセスが完了している。その後、時刻12でR4がキャッシュミスであることがわかり、時刻13で外部メモリアクセスが発行される。要するに、予測ミスのペナルティサイクルと、キャッシュミスのペナルティサイクルが完全に直列的に行われている。
【0055】
図10には、前記データプロセッサ4における更に別の動作タイミングチャートが例示される。ここでも、図9での例と同様に、CPU1から4回のリードアクセスがなされる場合を考え、R1は予測ミス、R2はキャッシュミス、R3は予測ミス、R4はキャッシュミスを想定している。図10では、CPU1からのR1が予測ミスとなりそのペナルティサイクル中である時刻2に、R2に対するアドレスアレイアクセスを行うことで、R2に対するアクセスがキャッシュミスであることを知り、R2に対する外部メモリアクセスを時刻3で発行することができる。このため、時刻3で予測ミスであったR1のアクセスが完了することは同じであるが、R2に対するデータは図9よりも2サイクル早い時刻6でCPU1へ供給されR2の処理が完了できることがわかる。その後同様に、時刻7でR3が予測ミスとなりそのペナルティサイクル中である時刻8に、R4に対するアドレスアレイアクセスを行うことで、R4に対するアクセスがキャッシュミスであることを知り、R4に対する外部メモリアクセスを時刻9で発行することができる。このように、予測ミスとキャッシュミスアクセスが連続する場合でも、後続のリードアクセスのための待ちサイクルを短縮することができる。
【0056】
図11には本発明に係るデータプロセッサの別の例が示される。同図に示されるデータプロセッサ4Aは、ウェイ選択確定情報23の利用形態が図1とは異なる。図1ではセレクタ14でウェイ予測信号に代えて選択するようにしたが、図11では、ウェイ選択確定情報23で対応する履歴情報の書換えを行う。書換えは、図12に例示されるように、セレクタ54でウェイ選択確定情報23を選択し、選択し得たウェイ確定情報の格納先はレジスタ53にラッチされているインデックスアドレスを用いる。セレクタ54を介するウェイ選択確定情報23の書込みタイミング(ラッチタイミング)は制御信号24Aで規定する。制御信号24Aはウェイ予測ミス或はキャッシュミスを生じた動作サイクルの次の動作サイクルとされる。したがって、キャッシュミスを生じた動作サイクルの次の動作サイクルで確実にウェイ選択確定情報23を生成できることが必要になる。
【0057】
図13には本発明に係るデータプロセッサの更に別の例が示される。同図に示されるデータプロセッサ4Bは、キャッシュ部2Bに切換えレジスタ60を有する。切換えレジスタ60はウェイセレクタ15へのウェイセレクト信号63を出力する切換えセレクタ62の選択信号61を出力する。切換えレジスタ60により、セレクタ62が比較器18からのヒット信号19Aを選択する場合、データ処理装置4Bの動作は、セットアソシアティブ方式で動作を行う。切換えレジスタ60により、セレクタ62が履歴情報記憶部13から生成されたウェイ予測信号22を選択する場合、データ処理装置4Bの動作は、ウェイ予測式セットアソシアティブ方式で動作を行う。
【0058】
切換えレジスタ60の内容はプロセッサの起動時(リセット時)に設定してその後は固定値を保持する構成であっても良いし、CPUからアクセス可能でプログラムによってダイナミックに書き換え可能な構成であってもよい。
【0059】
前記レジスタ60は、前記連想動作の結果に応じてウェイ選択を行う第1動作モードと、前記連想動作に並行して予測に基づくウェイ選択を行う第2動作モードと、を切換え可能に指示する指示手段として位置付けられる。
【0060】
ここで、ウェイ予測ミス後の再リードの際には、履歴情報記憶部13が履歴更新信号26により更新されるものとしており、図1で説明したウェイ確定信号23を用いた構成は採用していない。その他の構成は図1と同様であるからその詳細な説明は省略する。
【0061】
以上説明し得たデータプロセッサによれば以下の作用効果を得る。
【0062】
ウェイ予測セットアソシアティブ方式は、キャッシュアクセスに関するアクセス時間、すなわち、動作速度の観点からは、通常のセットアソシアティブ方式に比べて、ヒット信号によりデータアレイから読み出されたデータをセレクトする必要がないため、ダイレクトマッピング方式と同じ高速動作を行うことができる。また、消費電力の観点からは、セットアソシアティブ方式では候補となるデータを全てデータアレイから読み出しておく必要があるが、ウェイ予測セットアソシアティブ方式では、動作の予測されるウェイからのみデータを読み出しておくだけでよいから、予測対象外のウェイに対してはメモリ動作は本質的に不要であり、低消費電力化も実現可能である。図面に基づく説明ではその点について省略したが、例えば、セレクタ15の選択制御信号をデータアレイ17及びアドレスアレイ16のメモリイネーブル信号として利用すれば、予測対象とされたデータアレイ17及びアドレスアレイ16だけを動作させる制御が可能になる。
【0063】
上記のウェイ予測セットアソシアティブ方式の性能面でセットアソシアティブ方式と比べて弱点となるウェイ予測ミスによるペナルティサイクル数は、図1に代表される構成により、半分程度にまで削減することが可能となる。すなわち、連続したメモリアクセス処理の際に、最初のアクセスによる一連の処理中のペナルティサイクル中に、後続のキャッシュアクセスのヒットするウェイを予め確定しておくことができるため、セットアソシアティブ方式の性能に極めて近いキャッシュ性能を得ることができる。連続するメモリアクセスの全てでウェイ予測ミスが発生するような最悪のケースでは、本発明による手法を用いなければ、各メモリアクセスはペナルティサイクルとして2サイクルを余計に消費することになる。これに対して、図1に代表される構成を採用すれば、ペナルティサイクルは交互にしか発生しなくなり、平均ペナルティサイクル数は1サイクルに減少される。
【0064】
図13で説明したようにセットアソシアティブ方式とウェイ予測セットアソシアティブ方式を切換えレジスタ60で切換え可能にすれば、高速動作が必要な場合および低消費電力動作が必要な場合にはウェイ予測セットアソシアティブ方式で動作するモードを使用し、ウェイ予測ミスによるペナルティサイクルを避けたい場合には、セットアソシアティブ方式で動作するモードを使用するように切換えることができる。
【0065】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0066】
例えば、キャッシュメモリのウェイ数は2よりも多くてよい。また、キャッシュメモリは論理アドレス或は物理アドレスの何れで動作するものであってもよい。データプロセッサはキャッシュ制御部とメモリ部の間にメモリマネージメントユニットなどのアドレス変換バッファユニットが配置されるものであってもよい。また、データプロセッサのオンチップモジュールは上記の例に限定されず、タイマやシリアルインタフェースなど、その他の周辺回路を備えてもよい。また、予測によるウェイの選択は、ウェイからの読み出しデータの選択という手段に限定されない。アクセス動作させるべきウェイの選択、メモリイネーブルとすべきウェイの選択などの手段で置き換えて良いことは言うまでもない。
【0067】
また、以上の説明では専ら連続リードアクセスにおけるウェイ予測ミスを生ずる場合について説明したが、ライトアクセスに関しても本発明は同様に適用される。ライトアクセスに対する予測ミスを生ずると、ペナルティサイクルではデータ書換えなどのデータリカバリ動作を行わなければならない。其の期間を使って、同様にペナルティサイクル後のアクセス動作に対して予めウェイ選択確定情報を求めておき、予測情報に代えてその確定情報を利用すれば、今まで説明した連続リードの場合と同様に、ライトアクセスに関しても、予測ミスやキャッシュミスに連続する予測ミスの発生を低減することができる。
【0068】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【0069】
予測ミスが連続して発生し、或はキャッシュミスと予測ミスが前後して発生する場合に、先に生ずるペナルティサイクル中に、後続のキャッシュアクセスがヒットするウェイを予め確定しておくことができるため、ペナルティサイクルの累積数を低減させることができ、ひいてはCPU等によるデータ処理性能もしくはデータ処理速度向上に寄与することが可能になる。
【0070】
さらにセットアソシアティブ方式とウェイ予測セットアソシアティブ方式を切換えレジスタで切換え機能を採用することにより、高速動作が必要な場合および低消費電力動作が必要な場合にはウェイ予測セットアソシアティブ方式で動作するモードを使用し、ウェイ予測ミスによるペナルティサイクルを避けたい場合には、セットアソシアティブ方式で動作するモードを使用するように切換えることができる。
【図面の簡単な説明】
【図1】本発明に係るデータプロセッサの一例を示すブロック図である。
【図2】履歴情報記憶部の概略構成を例示するブロック図である。
【図3】キャッシュ制御部の詳細を例示するブロック図である。
【図4】キャッシュ制御部による制御内容を例示するフローチャートである。
【図5】ウェイ予測機能を有するがウェイ選択確定機能を有し得ていないキャッシュメモリの動作を例示するタイミングチャートである。
【図6】図1のデータプロセッサにおいて予測確定情報を用いる場合の動作を例示するタイミングチャートである。
【図7】ウェイ予測機能を有するがウェイ選択確定機能を有し得ていないキャッシュメモリの別の動作を例示するタイミングチャートである。
【図8】図1のデータプロセッサにおいて予測確定情報を用いる場合の別の動作を例示するタイミングチャートである。
【図9】ウェイ予測機能を有するがウェイ選択確定機能を有し得ていないキャッシュメモリの更に別の動作を例示するタイミングチャートである。
【図10】図1のデータプロセッサにおいて更に別の動作を例示するタイミングチャートである。
【図11】本発明に係るデータプロセッサの別の例を示すブロック図である。
【図12】図11のデータプロセッサにおける履歴情報記憶部の概略構成を例示するブロック図である。
【図13】本発明に係るデータプロセッサの更に別の例を示すブロック図である。
【符号の説明】
1 CPU
2、2A、2B キャッシュ部
3 メモリ制御部
4、4A、4B データプロセッサ
10,11 ウェイ
12、12B キャッシュ制御部
13、13A 履歴情報記憶部
14 セレクタ
15 セレクタ
16 アドレスアレイ
17 データアレイ
18 比較器
19A,19B 連想結果信号
22 ウェイ予測信号
23 ウェイ確定信号
24、24A 選択信号
25 アクセス完了信号
26 履歴更新データ
30 ウェイ確定生成部
31、31A 制御回路
34 履歴更新制御部
35 リプレース制御部
50 更新信号生成論理
60 切換えレジスタ
61 選択信号
62 切換えセレクタ

Claims (14)

  1. インデックスされたキャッシュラインのタグ情報を用いる連想動作が可能なセットアソシアティブ型のキャッシュメモリを有するデータ処理装置であって、
    前記キャッシュメモリは、前記連想動作に並行して予測に基づくウェイ選択を行うウェイ予測手段と、前記ウェイ予測手段による予測ミスに起因するペナルティサイクル中に、後続アクセスアドレスを用いた連想動作に基づいてウェイ選択確定情報を生成する生成手段と、前記ペナルティサイクル後の前記後続アクセスアドレスに対して、前記ウェイ選択確定情報によりウェイを選択させる制御手段と、を含んで成るものであることを特徴とするデータ処理装置。
  2. インデックスされたキャッシュラインのタグ情報を用いる連想動作が可能なセットアソシアティブ型のキャッシュメモリを有するデータ処理装置であって、
    前記キャッシュメモリは、前記連想動作に並行して予測に基づくウェイ選択を行うウェイ予測手段と、キャッシュミスに起因するペナルティサイクル中に、後続アクセスアドレスを用いた連想動作に基づいてウェイ選択確定情報を生成する生成手段と、前記ペナルティサイクル後の前記後続アクセスアドレスに対して、前記ウェイ選択確定情報によりウェイを選択させる制御手段と、を含んで成るものであることを特徴とするデータ処理装置。
  3. 前記制御手段は、前記ウェイ予測手段による予測に代えて前記ウェイ選択確定情報によりウェイを選択させるものであることを特徴とする請求項1又は2記載のデータ処理装置。
  4. 前記制御手段は、前記ウェイ選択確定情報に対応するところの前記ウェイ予測手段による予測結果情報を書換え制御するものであることを特徴とする請求項1又は2記載のデータ処理装置。
  5. インデックスされたキャッシュラインのタグ情報を用いる連想動作が可能なセットアソシアティブ型のキャッシュメモリを有するデータ処理装置であって、
    前記キャッシュメモリは、前記連想動作に並行して予測に基づくウェイ選択を行うウェイ予測手段と、前記ウェイ予測手段による予測ミスに起因するペナルティサイクル中に、後続アクセスアドレスのキャッシュミスに応答する外部メモリアクセスの指示を発行する制御手段と、を含んで成るものであることを特徴とするデータ処理装置。
  6. 前記連想動作は、アクセスアドレス情報に含まれる所定のアドレス情報を、インデックスされたキャッシュラインの各ウェイのタグ情報と比較し、ウェイ毎に連想ヒット又は連想ミスを示す連想結果信号を生成する動作であることを特徴とする請求項1乃至5の何れか1項記載のデータ処理装置。
  7. 前記ウェイ予測手段による予測は、キャッシュライン毎のウェイ選択の履歴情報に基づいて、最も最近選択されたウェイを選択ウェイとする処理であることを特徴とする請求項1乃至5の何れか1項記載のデータ処理装置。
  8. インデックスされたキャッシュラインのタグ情報を用いる連想動作が可能なセットアソシアティブ型のキャッシュメモリと、前記キャッシュメモリに接続されたCPUとを有するデータプロセッサであって、
    前記キャッシュメモリは、複数のウェイ及びキャッシュ制御手段を有し、
    前記キャッシュ制御手段は、前記CPUのアクセス動作に応答して、前記連想動作に並行して予測に基づくウェイ選択行い、予測選択ウェイが連想動作結果に不一致となる予測ミスに起因するペナルティサイクル中、又はキャッシュミスに起因するペナルティサイクル中に、後続アクセスアドレスを用いた連想動作に基づいてウェイ選択確定情報を生成し、前記ペナルティサイクル後の前記後続アクセスアドレスには前記ウェイ選択確定情報によりウェイを選択させる制御を行うものであることを特徴とするデータプロセッサ。
  9. 前記キャッシュ制御手段は、前記予測ミスに起因するペナルティサイクル中に、後続アクセスのキャッシュミスに対して外部メモリアクセスの指示を発行するものであることを特徴とする請求項記載のデータプロセッサ。
  10. 前記キャッシュ制御手段は、キャッシュライン毎のウェイ選択の履歴情報を記憶する記憶手段を有し、履歴情報は最も最近アクセスされた情報に応ずるウェイを選択ウェイとする情報であることを特徴とする請求項記載のデータプロセッサ。
  11. 前記キャッシュ制御手段は、インデックスされたキャッシュラインの中から選ばれた最新のアクセスウェイを後の予測で指定可能とするように、前記履歴情報を更新するものであることを特徴とする請求項10記載のデータプロセッサ。
  12. 前記キャッシュ制御手段はキャッシュラインをインデックスするアドレス情報により前記記憶手段から前記履歴情報を読み出し、読み出した履歴情報に基づいてウェイの予測選択を行うものであることを特徴とする請求項10記載のデータプロセッサ。
  13. 前記キャッシュ制御手段は、インデックスされたキャッシュラインに含まれるタグ情報に基づいてキャッシュミス又はウェイ選択の予測ミスが発生したか否かを判定し、キャッシュヒット且つ予測ミスの判定結果に応答してウェイの選択をやり直し且つアクセス対象キャッシュラインに対応する前記履歴情報を更新し、キャッシュミスの判定結果に応答してアクセス対象キャッシュラインをリプレースするために外部アクセスを指示し且つリプレース対象キャッシュラインに対応する前記履歴情報を更新するものであることを特徴とする請求項10記載のデータプロセッサ。
  14. 1個の半導体チップに形成されて成るものであることを特徴とする請求項8乃至13の何れか1項記載のデータプロセッサ。
JP2001130559A 2001-04-27 2001-04-27 データ処理装置及びデータプロセッサ Expired - Lifetime JP4071942B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001130559A JP4071942B2 (ja) 2001-04-27 2001-04-27 データ処理装置及びデータプロセッサ
US10/083,342 US6898671B2 (en) 2001-04-27 2002-02-27 Data processor for reducing set-associative cache energy via selective way prediction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001130559A JP4071942B2 (ja) 2001-04-27 2001-04-27 データ処理装置及びデータプロセッサ

Publications (2)

Publication Number Publication Date
JP2002328839A JP2002328839A (ja) 2002-11-15
JP4071942B2 true JP4071942B2 (ja) 2008-04-02

Family

ID=18978904

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001130559A Expired - Lifetime JP4071942B2 (ja) 2001-04-27 2001-04-27 データ処理装置及びデータプロセッサ

Country Status (2)

Country Link
US (1) US6898671B2 (ja)
JP (1) JP4071942B2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003044670A1 (en) * 2001-11-16 2003-05-30 Sun Microsystems, Inc. Coherence message prediction mechanism and multiprocessing computer system employing the same
US20030208665A1 (en) * 2002-05-01 2003-11-06 Jih-Kwon Peir Reducing data speculation penalty with early cache hit/miss prediction
US7761665B2 (en) * 2005-05-23 2010-07-20 Arm Limited Handling of cache accesses in a data processing apparatus
US20090031082A1 (en) * 2006-03-06 2009-01-29 Simon Andrew Ford Accessing a Cache in a Data Processing Apparatus
US7373461B2 (en) * 2006-04-28 2008-05-13 Sun Microsystems, Inc. Speculative directory lookup for sharing classification
US7594079B2 (en) * 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
US9946547B2 (en) 2006-09-29 2018-04-17 Arm Finance Overseas Limited Load/store unit for a processor, and applications thereof
JP5954112B2 (ja) * 2012-10-24 2016-07-20 富士通株式会社 メモリ装置、演算処理装置、及びキャッシュメモリ制御方法
US9256544B2 (en) * 2012-12-26 2016-02-09 Advanced Micro Devices, Inc. Way preparation for accessing a cache
US9465616B2 (en) * 2013-10-06 2016-10-11 Synopsys, Inc. Instruction cache with way prediction
US10120800B2 (en) * 2014-07-18 2018-11-06 Oracle International Corporation History based memory speculation for partitioned cache memories
US9846648B2 (en) * 2015-05-11 2017-12-19 Intel Corporation Create page locality in cache controller cache allocation
JP2018106227A (ja) * 2016-12-22 2018-07-05 ルネサスエレクトロニクス株式会社 キャッシュメモリ装置及び半導体装置
US11281586B2 (en) 2017-05-09 2022-03-22 Andes Technology Corporation Processor and way prediction method thereof
US10684951B2 (en) * 2017-08-04 2020-06-16 International Business Machines Corporation Minimizing cache latencies using set predictors
GB2593484B (en) * 2020-03-24 2022-09-28 Advanced Risc Mach Ltd Memory management

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3589485B2 (ja) 1994-06-07 2004-11-17 株式会社ルネサステクノロジ セットアソシアティブ方式のメモリ装置およびプロセッサ
US5845323A (en) * 1995-08-31 1998-12-01 Advanced Micro Devices, Inc. Way prediction structure for predicting the way of a cache in which an access hits, thereby speeding cache access time
US5918245A (en) * 1996-03-13 1999-06-29 Sun Microsystems, Inc. Microprocessor having a cache memory system using multi-level cache set prediction
US6073230A (en) * 1997-06-11 2000-06-06 Advanced Micro Devices, Inc. Instruction fetch unit configured to provide sequential way prediction for sequential instruction fetches
US6418525B1 (en) * 1999-01-29 2002-07-09 International Business Machines Corporation Method and apparatus for reducing latency in set-associative caches using set prediction
US6356990B1 (en) * 2000-02-02 2002-03-12 International Business Machines Corporation Set-associative cache memory having a built-in set prediction array
US6581140B1 (en) * 2000-07-03 2003-06-17 Motorola, Inc. Method and apparatus for improving access time in set-associative cache systems
US6643739B2 (en) * 2001-03-13 2003-11-04 Koninklijke Philips Electronics N.V. Cache way prediction based on instruction base register

Also Published As

Publication number Publication date
US20020161976A1 (en) 2002-10-31
US6898671B2 (en) 2005-05-24
JP2002328839A (ja) 2002-11-15

Similar Documents

Publication Publication Date Title
JP4071942B2 (ja) データ処理装置及びデータプロセッサ
US6161166A (en) Instruction cache for multithreaded processor
US6216206B1 (en) Trace victim cache
JP2554449B2 (ja) キャッシュ・メモリを有するデータ処理システム
US7219185B2 (en) Apparatus and method for selecting instructions for execution based on bank prediction of a multi-bank cache
US7836253B2 (en) Cache memory having pipeline structure and method for controlling the same
KR100351504B1 (ko) 캐쉬 메모리, 그의 전력 소비 절감 방법 그리고 캐쉬메모리를 구비하는 데이터 처리 시스템
US6321328B1 (en) Processor having data buffer for speculative loads
JP4445081B2 (ja) キャッシュ・メモリ
US5938761A (en) Method and apparatus for branch target prediction
JP4009306B2 (ja) キャッシュメモリおよびその制御方法
US6859860B2 (en) Control circuits comparing index offset and way for cache system and method of controlling cache system
JPWO2006038258A1 (ja) データプロセッサ
JP3577049B2 (ja) 分岐予測回路
JP4024247B2 (ja) 半導体データプロセッサ
JP2701703B2 (ja) キャッシュメモリ
JP4111645B2 (ja) キャッシュミスした後のメモリバスアクセス制御方式
JPH01235100A (ja) 半導体記憶装置
JPH07200406A (ja) キャッシュシステム
JP2002149488A (ja) 集積回路装置およびキャッシュメモリの制御方法
JP2004326187A (ja) 情報処理装置およびその制御方法
JP2002024088A (ja) データ処理装置
JPH08221270A (ja) データ処理装置
JPH01320555A (ja) バッファ記憶装置
JP2000347934A (ja) キャッシュメモリ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041101

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071009

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071225

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080118

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4071942

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110125

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110125

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110125

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110125

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120125

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130125

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130125

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140125

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term