[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2004094807A - 命令キャッシュおよびマイクロプロセッサとその設計方法 - Google Patents

命令キャッシュおよびマイクロプロセッサとその設計方法 Download PDF

Info

Publication number
JP2004094807A
JP2004094807A JP2002257971A JP2002257971A JP2004094807A JP 2004094807 A JP2004094807 A JP 2004094807A JP 2002257971 A JP2002257971 A JP 2002257971A JP 2002257971 A JP2002257971 A JP 2002257971A JP 2004094807 A JP2004094807 A JP 2004094807A
Authority
JP
Japan
Prior art keywords
instruction cache
tag memory
control circuit
instruction
cache tag
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
JP2002257971A
Other languages
English (en)
Inventor
Isao Katayama
片山 功
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2002257971A priority Critical patent/JP2004094807A/ja
Priority to US10/372,319 priority patent/US7032075B2/en
Publication of JP2004094807A publication Critical patent/JP2004094807A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • 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
    • 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)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】命令キャッシュにおける命令キャッシュコントローラに修正を加えることなく、命令キャッシュタグメモリへのアクセス回数を減らし、低消費電力化を図る。
【解決手段】命令キャッシュ制御回路31と、命令キャッシュタグメモリ33と、命令キャッシュデータメモリ34と、命令キャッシュ制御回路と命令キャッシュタグメモリの中間に位置し、命令キャッシュ制御回路から非分岐命令検出信号を供給されることなく、命令キャッシュ制御回路から命令キャッシュタグメモリへのアクセスのうちで命令キャッシュタグメモリアドレスが前回のアクセスと同じであるか否かをモニターし、その結果に応じて命令キャッシュタグメモリに対するアクセスの可否を制御する命令キャッシュタグアクセス制御回路32を具備する。
【選択図】  図1

Description

【0001】
【発明の属する技術分野】
本発明は、命令キャッシュおよびそれを搭載したマイクロプロセッサ(MPU)ならびにその設計方法に係り、特にMPUの低消費電力化を図る回路および手法に関するもので、例えばコンフィギュラブル・プロセッサ(Configurable Processor)などに適用されるものである。
【0002】
【従来の技術】
近年、例えば32ビットの一般的なMPUでは、低速なメインメモリに対するメモリ・アクセス・レーテンシを低減するために、少容量ではあるが高速な記憶装置である命令キャッシュが搭載されている。このようなMPUは、メインメモリにある命令を高速に実行する際に、それ以前にメインメモリから読み出した命令を命令キャッシュ(オン・チップ命令キャッシュ)に一時的に蓄えておき、再び同一命令を読み出す際には、メインメモリからではなく、命令キャッシュ内に一時蓄えていた命令を使用する手続きを踏む場合が多い。
【0003】
図2は、MPUに搭載されている命令キャッシュに外部のメインメモリ上の命令コードが格納されている様子を示す。
【0004】
命令キャッシュに蓄えられるデータは、メインメモリ上の命令コードの位置から生成したアドレス(Addr)をインデックス(Index) として、命令コード(キャッシュデータ)と、このキャッシュデータ(Cache Data)のメインメモリ上の位置と有効無効を示すフラグがセットになっている。ここで、命令キャッシュの容量の制限と利用の効率化から、1つのインデックスには、1つのタグ(Tag) とメインメモリ上の連続した一定量の領域が対応している。
【0005】
図8は、従来のMPUに搭載された命令キャッシュの一例を示す。
【0006】
命令キャッシュは、命令キャッシュコントローラ81、命令キャッシュデータメモリ82、命令キャッシュタグメモリ83、ヒット/ミス判定回路(比較器)84を備えている。
【0007】
この命令キャッシュにおいて、命令キャッシュデータメモリ82、命令キャッシュタグメモリ83、ヒット/ミス判定回路84は、MPU内に設けられたフェッチカウンタ(図示せず)から命令キャッシュコントローラ81を介して供給されるアクセスアドレスのうちのそれぞれ一部のビット信号が入力される。
【0008】
前記命令キャッシュデータメモリ82は、図2に示すように、連続したアクセスアドレスを有する複数のワード(本例では、1ワードは32ビットであり、1つの命令の単位を示している)を格納するためのキャッシュラインを複数備えて構成されている。そして、MPUより入力されたアクセスアドレスに応じて読み出しデータを出力する。
【0009】
前記命令キャッシュタグメモリ83は、命令キャッシュデータメモリ82のキャッシュライン毎に、各キャッシュラインが格納しているワードを特定するのに必要なデータを格納している。そして、MPUからのデータ読み出し要求により命令キャッシュコントローラ81から入力されるメモリイネーブル(MEMORY Enable) 信号がアクティブになると、入力されたアクセスアドレスに応じてデータが読み出される。
【0010】
前記ヒット/ミス判定回路84は、命令キャッシュタグメモリ83から読み出されたアドレス入力とMPUから入力されたアクセスアドレスを比較し、一致/不一致を判定(前記アクセスアドレスを有するワードが命令キャッシュデータメモリ82内に格納されているか否かを判定)し、判定結果をヒット/ミス判別信号として生成する。このヒット/ミス判定回路84の動作と平行して、命令キャッシュデータメモリ82からキャッシュデータ(命令)が読み出され、命令キャッシュコントローラ81へ出力される。
【0011】
命令キャッシュコントローラ81は、ヒット/ミス判定回路84からのヒット/ミス判別信号に応じて、命令キャッシュデータメモリ82から読み出されたキャッシュデータをMPUの命令フェッチレジスタへ取り込むかどうかを決定する。
【0012】
上記したように命令キャッシュは、命令としての32ビットの読み出しデータと、命令キャッシュがヒットしたか否かをあらわす1ビットのヒット/ミス判別信号をMPUへ出力する。
【0013】
ヒットの場合には、MPUは、命令キャッシュデータメモリ82からのデータを取り込み、ミスの場合には命令キャッシュデータメモリ82からのデータを取り込まない。
【0014】
ミスの場合は、命令キャッシュからメインメモリ(図示せず)へアクセスアドレスが出力され、メインメモリから命令としての32ビットのデータが読み出されて命令キャッシュへ出力される。
【0015】
図9は、MPUが図8に示した従来の命令キャッシュから実行命令を得るまでの動作フローを示す。
【0016】
MPUにおける命令キャッシュ読み出し時に、データ読み出し要求により命令キャッシュの読み出し処理を開始(Start) すると、MPUが命令キャッシュから読み出そうとするアドレスから命令キャッシュのインデックス番号を作る。次に、インデックス番号から対応するデータを得る。
【0017】
次に、インデックスされたキャッシュデータが有効か否かを判定する。この結果、有効でない(N)と判定すれば、メインメモリから命令を読み出す処理に移行し、命令キャッシュの読み出し処理を終了(END) する。
【0018】
これに対して、キャッシュデータが有効である(Y)と判定すれば、キャッシュデータと命令キャッシュから読み出そうとするアドレスが同一か否かを判定する。この結果、同一である(Y)と判定すれば、命令キャッシュから命令を読み出す処理に移行し、命令キャッシュの読み出し処理を終了(END) する。これに対して、同一でない(N)と判定すれば、メインメモリから命令を読み出す処理に移行し、命令キャッシュの読み出し処理を終了(END) する。
【0019】
図9に示すStart からEND までの処理は、MPUが命令を1つ実行する度に繰り返され、この処理中で二重線で囲んだ部分(インデックス番号からタグデータを得る処理、キャッシュメモリからの命令を読み出す処理、メインメモリからの命令を読み出す処理)は電力を大量に消費する動作である。
【0020】
ところで、MPUの実行命令の大部分は、分岐命令以外の命令(非分岐命令)である。ここで、分岐命令とは、ジャンプ命令や、サブルーチンを呼び出す命令や、割り込み命令などのプロセッサ14内のフェッチカウンタが飛ぶような命令の総称である。
【0021】
MPUが非分岐命令を実行している際には、メインメモリに格納されている命令コードを順番に実行するので、同一のインデックスで命令キャッシュタグメモリを繰り返し読み出す。
【0022】
例えば図2に示した命令コードの例では、Code00からCode11まで連続に命令を実行する際、タグメモリを読み出す際のインデックスは BBBBCCCCDDDD となる。この際、同一のインデックスでアクセスした場合も同一動作を繰り返しており、この繰り返し動作が消費電力の増大の原因になっていた。
【0023】
【発明が解決しようとする課題】
上記したように従来のMPUは、実行命令の大部分を占める非分岐命令を実行している場合、命令キャッシュの読み出しに先立って読み出されるタグメモリのアドレスは同一であるにも拘らず、命令キャッシュの読み出し毎にタグメモリの読み出しを行なうので、無駄な電力を消費するという問題があった。
【0024】
命令キャッシュの消費電力の増大を抑制するように、特開2000−200217の「命令キャッシュメモリ」により、MPUにおいて分岐命令が検出された場合に生成される分岐命令検出信号を用いて命令キャッシュのタグメモリの動作を制御することが提案されている。
【0025】
本発明は、上記提案とは異なる手法として命令キャッシュタグメモリに対してもキャッシングを行なうことにより、従来の命令キャッシュコントローラに修正を加えることなく、命令キャッシュタグメモリへのアクセス回数を減らし、低消費電力化を図ることができ、設計の柔軟な対応が可能となる命令キャッシュおよびそれを搭載したマイクロプロセッサを提供することを目的とする。
【0026】
また、本発明の他の目的は、オン・チップ命令キャッシュの低消費電力化を選択的に可能とし、コンフィギュラブル・プロセッサに適用して有効なマイクロプロセッサの設計方法を提供することにある。
【0027】
【課題を解決するための手段】
本発明のマイクロプロセッサは、命令キャッシュ制御回路と、命令キャッシュタグメモリと、命令キャッシュデータメモリと、前記命令キャッシュ制御回路と命令キャッシュタグメモリの中間に位置し、前記命令キャッシュ制御回路から非分岐命令検出信号を供給されることなく、前記命令キャッシュ制御回路から命令キャッシュタグメモリへのアクセスのうちで命令キャッシュタグメモリアドレスが前回のアクセスと同じであるか否かをモニターし、その結果に応じて前記命令キャッシュタグメモリに対するアクセスの可否を制御する命令キャッシュタグアクセス制御回路を具備することを特徴とする。
【0028】
また、本発明のマイクロプロセッサは、同一の半導体チップ上に、命令キャッシュ制御回路と、命令キャッシュタグメモリと、命令キャッシュデータメモリと、前記命令キャッシュ制御回路と命令キャッシュタグメモリの中間に位置し、命令キャッシュ制御回路から命令キャッシュタグメモリへのアクセスのうちで命令キャッシュタグメモリアドレスが前回のアクセスと同じであるか否かをモニターし、その結果に応じて前記命令キャッシュタグメモリに対するアクセスの可否を制御する命令キャッシュタグアクセス制御回路とを具備する命令キャッシュが搭載されたことを特徴とする。
【0029】
また、本発明のマイクロプロセッサの設計方法は、マイクロプロセッサに命令キャッシュを搭載設計する際、チップサイズの小型化を低消費電力化よりも優先する場合には、命令キャッシュ制御回路と命令キャッシュタグメモリを配置設計し、両者間を直接に配線接続し、低消費電力化をチップサイズの小型化より優先する場合には、命令キャッシュ制御回路と命令キャッシュタグメモリとの間に命令キャッシュタグアクセス制御回路を配置設計し、命令キャッシュ制御回路と命令キャッシュタグアクセス制御回路との間を配線接続し、命令キャッシュタグアクセス制御回路と命令キャッシュタグメモリとの間を配線接続することを特徴とする。
【0030】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【0031】
<第1の実施形態>
図1は、本発明の第1の実施形態に係る命令キャッシュを搭載したMPU10と外部のメインメモリ21との接続関係を概略的に示す図である。
【0032】
このMPU10は、MPU回路と同一半導体チップにデータキャッシュ20および命令キャッシュ30が搭載されている。
【0033】
MPU回路は、命令フェッチレジスタなどを含むコード・プリフェッチ・ユニット11と、このコード・プリフェッチ・ユニット11からの命令コードをデコードし、各種の制御信号を生成する命令デコード・ユニット12と、この命令デコード・ユニット12からの制御信号により制御され、各種の算術・論理演算処理を行なう演算回路(ALU)を含む実行ユニット13と、この実行ユニット13と外部との間でインターフェイスの役割を有する制御ユニット14と、外部バスとの間でインターフェイスの役割を有するバス・ユニット15と、前記実行ユニット13やバス・ユニット15との間でデータを授受するメモリ管理ユニット16などを含む。このメモリ管理ユニット16によりデータキャッシュ20を管理している。
【0034】
前記命令キャッシュ30は、命令キャッシュ制御回路(命令キャッシュコントローラ)31、命令キャッシュタグアクセス制御回路(命令キャッシュタグアクセスコントローラ)32、命令キャッシュタグメモリ33、命令キャッシュデータメモリ34、ヒット/ミス判定回路35などからなる。なお、上記命令キャッシュタグメモリ33と命令キャッシュデータメモリ34は、通常、SRAMが用いられる。
【0035】
上記命令キャッシュタグアクセスコントローラ32、命令キャッシュタグメモリ33、命令キャッシュデータメモリ34、ヒット/ミス判定回路35は、MPU内に設けられたフェッチカウンタ(図示せず)から供給されるアクセスアドレスのうちのそれぞれ一部のビット信号が命令キャッシュコントローラ31を介して入力される。
【0036】
図2は、図1のMPU10に搭載されている命令キャッシュ30に外部のメインメモリ21上の命令コードが格納されている様子の一例を示す。
【0037】
命令キャッシュに蓄えられるデータとして、メインメモリ上の命令コードの位置から生成したアドレスをインデックスとして、命令コード(キャッシュデータ)と、このキャッシュデータのメインメモリ上の位置と有効無効を示すフラグがセットになっている。ここで、命令キャッシュの容量の制限と利用の効率化から、1つのインデックスには、1つのタグとメインメモリ上の連続した一定量の領域が対応している。
【0038】
図1中の命令キャッシュ30に蓄えられるデータは、図2に示したように、メインメモリ21上の命令コードの位置から生成したアドレスをインデックスとして、命令コード(キャッシュデータ)と、このキャッシュデータのメインメモリ21上の位置と有効無効を示すフラグがセットになっている。
【0039】
図3は、図1中の命令キャッシュ30の一部を取り出して詳細に示している。
【0040】
本実施形態の命令キャッシュ30は、命令キャッシュタグメモリ(Tag Memory)32に対してもキャッシングを行なうように構成されており、従来の命令キャッシュに対して、その命令キャッシュコントローラ(I−Cache Controller)31 と命令キャッシュタグメモリ33の間に命令キャッシュタグアクセスコントローラ(I−CacheTag Access Controller)32が挿入付加されたものである。
【0041】
この場合、命令キャッシュタグアクセスコントローラ32は、既存の命令キャッシュコントローラ31との間および既存の命令キャッシュタグメモリ33との間で、両者31,33間のインターフェイスの変更を必要とせずに、インターフェイスおよびプロトコルをエミュレートするように構成されている。
【0042】
上記命令キャッシュタグアクセスコントローラ32の一例は、命令キャッシュ30に対する読み出し時の命令キャッシュタグメモリアドレスを保持するタグアドレスキャッシュ(Tag Addr. Cache)321と、前記読み出し時の命令キャッシュタグメモリアドレスにより指定された命令キャッシュタグメモリ33からの読み出しデータを保持するタグデータキャッシュ(Tag Data Cache)322 と、前記タグアドレスキャッシュ321 に保持されている命令キャッシュタグメモリアドレスと命令キャッシュ30に対する新たな読み出し時の命令キャッシュタグメモリアドレスとを比較し、一致/不一致を検出する比較器(Cmp.)323 と、命令キャッシュタグメモリアクセス制御部を具備する。
【0043】
上記命令キャッシュタグメモリアクセス制御部は、比較器323 の検出出力に基づいて命令キャッシュタグメモリ33に対するアクセスを制御するように構成されている。即ち、比較器323 からの一致検出出力に基づいて、命令キャッシュタグメモリ33に対するアクセスを省略し、タグデータキャッシュ322 に保持されているデータ(命令キャッシュ30に対する前回の読み出し時の命令キャッシュタグメモリアドレスにより指定された命令キャッシュタグメモリ33の内容)を命令キャッシュコントローラ31へ出力する。
【0044】
これに対して、比較器323 からの不一致検出出力に基づいて、命令キャッシュタグメモリ33に対するアクセスを行い、命令キャッシュタグメモリ33の内容を読み出して命令キャッシュコントローラ31へ出力する。
【0045】
次に、命令キャッシュタグメモリアクセスコントローラ32の一具体例を説明する。
【0046】
この命令キャッシュタグメモリアクセスコントローラ32は、命令キャッシュタグメモリ読み出しの際のアドレス値(MPU内に設けられたフェッチカウンタから供給されるアクセスアドレス信号のうちの一部のビット信号)とそのアドレスのタグデータを一時保存するバッファであるタグキャッシュ320 と、命令キャッシュタグメモリ33を読み出す必要があるか否かの判断を行なうために比較器323 と、インバータ回路324 と、二入力のアンド回路325 と、タグデータセレクタ(Tag Data Selector)326が設けられている。
【0047】
前記タグキャッシュ320 は、MPUが命令を得るために最後に命令キャッシュタグメモリ33を読み出した際のタグアドレスが保存されるタグアドレスキャッシュ321 と、そのアドレスのタグデータが保存されるタグデータキャッシュ322 からなり、これら) は、それぞれ例えばフリップフロップ回路群からなる。
【0048】
前記比較器323 は、命令キャッシュタグメモリ読み出しの際のアドレス値が一方の入力端に入力され、前記タグアドレスキャッシュ321 から読み出されたタグアドレスが他方の入力端に入力され、両入力を比較し、一致(Hit )/不一致(Miss)に応じて論理レベルが異なる出力信号を生成する。この比較器323 は、例えば排他的オア回路群からなる。
【0049】
上記比較器323 の出力信号は、インバータ回路324 を介してアンド回路325 の一方の入力端に入力され、このアンド回路325 の他方の入力端に命令キャッシュコントローラ31からメモリイネーブル信号が入力され、このアンド回路325 の出力信号は命令キャッシュタグメモリ33の制御信号(Memory Enable) として入力される。この場合、上記インバータ回路325 の出力信号は、タグデータキャッシュ322 のライトイネーブル(Write Enb) 信号として入力され、命令キャッシュタグメモリ33からの読み出しデータをタグデータキャッシュ322 に書き込むか否かを制御する。
【0050】
前記タグデータセレクタ326 は、タグデータキャッシュ322 からの読み出しデータと命令キャッシュタグメモリ33からの読み出しデータを、前記比較器323 の出力信号(ヒット/ミス判別信号)に応じて選択し、前記命令キャッシュコントローラ31へ出力するものである。
【0051】
図4は、図3の命令キャッシュタグメモリに対するアクセス動作における命令キャッシュタグアクセスコントローラ32の動作フローを示している。
【0052】
図5は、図1のMPUにおける命令キャッシュ読み出し時に命令キャッシュから実行命令を得るまでの動作フローを示しており、図4の動作フローを一部に含んでいる。
【0053】
次に、図1のMPUにおける命令キャッシュ読み出し時の動作について、図3乃至図5を参照しながら説明する。
【0054】
MPUにおける命令キャッシュ読み出し時に、データ読み出し要求により命令キャッシュタグメモリ33から指定アドレスのタグデータが読み出しが開始される。
【0055】
この際、命令キャッシュタグメモリ33に供給されるアドレス値とタグアドレスキャッシュ321 から読み出されるタグアドレスが前記比較器323 で比較される。この際、一致が検出されれば、タグデータキャッシュ322 のデータを使用でき、命令キャッシュタグメモリ33からの読み出しが不要と判断して”H” レベルのヒット判別信号が出力される。これに対して、不一致が検出されれば、タグデータキャッシュ322 のデータは使用できないので命令キャッシュタグメモリ33からの読み出しが必要と判断して”L” レベルのミス判別信号が出力される。
【0056】
前記”H” レベルのヒット判別信号が出力されると、インバータ回路325 の出力信号が”L” レベルになってタグデータキャッシュ322 への書き戻しが禁止された状態になり、さらに、アンド回路325 の出力信号が”L” レベルになって命令キャッシュタグメモリ33からの読み出しが禁止される。
【0057】
前記”L” レベルのミス判別信号が出力されると、インバータ回路325 の出力信号が”H” レベルになってタグデータキャッシュ322 への書き戻しが許可された状態になり、さらに、命令キャッシュコントローラ31から入力されるメモリイネーブル信号がアクティブの期間にアンド回路325 の出力信号が”H” レベルになって命令キャッシュタグメモリ33からの読み出しが行われる。
【0058】
そして、前記比較器323 の結果に応じて、タグデータキャッシュ322 からのデータ、または、命令キャッシュタグメモリ33からのデータがタグデータセレクタ326 により選択されて出力される。
【0059】
さらに、上記したように命令キャッシュタグメモリアクセスコントローラ32から出力されたタグアドレスと、MPU内に設けられたフェッチカウンタ(図示せず)から供給される命令キャッシュタグメモリ読み出しのためのアドレスが、キャッシュ制御信号生成用のヒット/ミス判定回路35で比較される。このヒット/ミス判定回路35は、2つのアドレス入力を比較し、一致/不一致に応じてヒット/ミス判別信号をキャッシュ制御信号として生成する。このヒット/ミス判定回路35の動作と平行して、キャッシュデータメモリ34からキャッシュデータ(命令)が読み出され、命令キャッシュコントローラ31へ出力される。
【0060】
命令キャッシュコントローラ31は、前記キャッシュ制御信号生成用のヒット/ミス判定回路35のヒット/ミス判別信号がヒットかミスかによって、キャッシュデータメモリ34から読み出されたキャッシュデータを命令フェッチレジスタへ取り込むかどうかを決定する。即ち、ヒットしていればキャッシュデータメモリ34からのデータを取り込み、ミスしていればキャッシュデータメモリ34からのデータを取り込まない。ミスの場合は、メモリアクセスコントローラはメインメモリ21へアクセスする。
【0061】
即ち、上記実施形態において、命令キャッシュタグアクセスコントローラ32は、タグメモリ読み出しの際のアドレス値とそのアドレスのタグデータを一時保存するバッファであるタグキャッシュ320 を導入している。このタグキャッシュ320は、最後にタグメモリを読み出した際のタグアドレスが保存されるタグアドレスキャッシュ321 と、そのアドレスのタグデータが保存されるタグデータキャッシュ322 から成る。
【0062】
上記タグアドレスキャッシュ321 の出力側には、タグメモリを読み出す必要があるか否かの判断を行なうために、命令キャッシュ読み出し時のタグアドレスを比較する比較器323 が接続されている。この比較器323 において、一致が検出されなければタグキャッシュのデータは使用できないと判断し、タグメモリ33への読み出し動作を行い、一致が検出されればタグキャッシュのデータを使用でき、タグメモリ33からの読み出しが不要と判断する。
【0063】
そして、上記比較器323 の結果に応じて、タグデータセレクタ326 により、タグメモリ33からのデータまたはタグキャッシュ320 からのデータを選択する。
【0064】
次に、上記実施形態による効果を説明する。
【0065】
MPUが命令キャッシュに対して命令を要求する際、命令キャッシュコントローラ31は命令キャッシュタグメモリ33を参照し、その内容から命令キャッシュ30または外部メモリ(メインメモリ21)にアクセスを行なう。このシーケンスの中で、命令キャッシュタグメモリ33は命令毎にアクセスされるが、MPUの命令の大きな部分を占める非分岐命令では命令はアドレス順に実行されるので、MPUの命令キャッシュタグメモリ33に対するアクセスは同一のアドレスに対して行なわれることが多い。
【0066】
この際、MPUから命令キャッシュ30の読み出しに先立って行なわれる命令キャッシュタグメモリ33の読み出し時に、命令キャッシュタグメモリアドレスが前回に命令キャッシュタグメモリ33を読み出した際のアドレスと同一であれば、命令キャッシュタグアクセスコントローラ32は、タグキャッシュ320 のデータを命令キャッシュタグメモリ33のデータに代えて選択する。
【0067】
即ち、図2を参照して前述したインデックス番号からタグデータを取得するフローは、図4および図5のフロー中に示したように、インデックスが変化した直後は経路▲1▼であるが、同一のインデックスを使用する間は経路▲2▼になるので、大電力を消費する命令キャッシュタグメモリアクセスを省略することが可能になる。
【0068】
したがって、上記実施形態によれば、図5を参照して前述したフローにおいて、大電力を消費する命令キャッシュタグメモリ33へのアクセス回数を減らし、MPUの低消費電力化を図ることができる。
【0069】
なお、図2に示したように命令キャッシュ30に格納されている1つのインデックスに対応する1キャッシュラインサイズは、通常は命令キャッシュの容量やヒット率により決められるが、本発明においては、1キャッシュラインサイズが大きいほど有効である。
【0070】
また、前記命令キャッシュタグアクセスコントローラ32は、命令キャッシュタグメモリ33に対するアクセスが必要か否(省略可能)かを判定する回路が内蔵されており、既存の命令キャッシュコントローラ31との間および既存の命令キャッシュタグメモリ33との間で、両者間のインターフェイスの変更を必要とせずに、両者間のプロトコルをエミュレートする。
【0071】
したがって、本発明に係る命令キャッシュタグアクセスコントローラ32は、既存の命令キャッシュコントローラ31や命令キャッシュタグメモリ33に特別な回路を追加することを不要とせず、既存の回路へ選択的に付加し、あるいはそれを削除することが容易に可能であり、設計の柔軟な対応が可能となる。
【0072】
このことは、最近のMPUの設計方法の1つとして提案されているコンフィギュラブル・プロセッサ(Configurable Processor)に本発明を適用でき、オン・チップ命令キャッシュの低消費電力化が選択的に可能になることを意味する。
【0073】
コンフィギュラブル・プロセッサは、MPUの構成要素となり得る機能を予めIP(インテレクチュアル・プロパティ)として自動配置配線設計ツールのライブラリに登録しておき、ユーザの仕様あるいはメーカの設計者の意図などに応じて、所望のIPを組み合わせて所望の構成を実現する手法である。
【0074】
図6は、コンフィギュラブル・プロセッサの設計に際して本発明のMPUの設計方法の一例を適用した場合を示すフローチャートである。
【0075】
図7(a)および(b)は、図6の設計方法により、MPUチップ上で既存の命令キャッシュコントローラ31と命令キャッシュタグメモリ33との間に、命令キャッシュタグアクセスコントローラ32を選択的に付加できることを示している。
【0076】
図6に示すように、コンフィギュラブル・プロセッサの設計に際して、MPUに命令キャッシュを搭載するか否かを判断し、搭載する場合(Y)は、命令キャッシュの構造、マッピング方式(ダイレクトマッピング方式、セットアソシアティブマッピング方式、フルアソシアティブマッピング方式など)、データおよびタグのサイズなどを決定し、所要の回路を追加する。
【0077】
次に、命令キャッシュタグアクセスコントローラ32を付加するか否かを判断し、付加しない場合(N)は、図6(1)中に示したように、命令キャッシュコントローラ31と命令キャッシュタグメモリ33を配置設計し、両者間を直接に配線接続する。この場合は、付加する場合よりもチップサイズの小型化が可能になる。
【0078】
これに対して、付加する場合(Y)は、図6(b)中に示したように、命令キャッシュコントローラ31と命令キャッシュタグメモリ33との間に命令キャッシュタグアクセスコントローラ32を配置設計し、命令キャッシュコントローラ31と命令キャッシュタグアクセスコントローラ32との間を配線接続し、命令キャッシュタグアクセスコントローラ32と命令キャッシュタグメモリ33との間を配線接続する。この場合は、前述したように低消費電力化が可能になる。
【0079】
なお、前記命令キャッシュコントローラ31と命令キャッシュタグアクセスコントローラ32をMPUと同一チップ上に搭載し、命令キャッシュタグメモリ33と命令キャッシュデータメモリ34をMPU外部に設けるように変更することも可能である。
【0080】
【発明の効果】
上述したように本発明の命令キャッシュおよびそれを搭載したマイクロプロセッサによれば、従来の命令キャッシュコントローラに修正を加えることなく、命令キャッシュタグメモリへのアクセス回数を減らし、低消費電力化を図ることができ、設計の柔軟な対応が可能となる。
【0081】
また、本発明のマイクロプロセッサの設計方法は、オン・チップ命令キャッシュの低消費電力化を選択的に可能とし、コンフィギュラブル・プロセッサに適用して有効である。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係る命令キャッシュを搭載したMPUと外部のメインメモリとの接続関係を概略的に示す図。
【図2】図1のMPUに搭載されている命令キャッシュに外部のメインメモリ上の命令コードが格納されている様子を示す図。
【図3】図1中の命令キャッシュの一部を取り出して詳細に示す回路図。
【図4】図3の命令キャッシュタグメモリに対するアクセス動作における命令キャッシュタグアクセスコントローラの動作フローを示す図。
【図5】図1のMPUにおける命令キャッシュ読み出し時に命令キャッシュから実行命令を得るまでの動作フローを示す図。
【図6】コンフィギュラブル・プロセッサの設計に際して本発明のMPUの設計方法の一例を適用した場合を示すフローチャート。
【図7】図6の設計方法により、MPUチップ上で既存の命令キャッシュコントローラと命令キャッシュタグメモリとの間に命令キャッシュタグアクセスコントローラを選択的に付加できることを示すブロック図。
【図8】従来のMPUに搭載された命令キャッシュの一例を示すブロック図。
【図9】従来のMPUが命令キャッシュから実行命令を得るまでの動作フローを示す図。
【符号の説明】
10…MPU、
11…コード・プリフェッチ・ユニット、
12…命令デコード・ユニット、
13…実行ユニット、
14…制御ユニット、
15…バス・ユニット、
16…メモリ管理ユニット、
20…データキャッシュ、
21…メインメモリ、
30…命令キャッシュ、
31…命令キャッシュコントローラ、
32…命令キャッシュタグアクセスコントローラ、
33…命令キャッシュタグメモリ、
34…命令キャッシュデータメモリ、
35…ヒット/ミス判定回路。

Claims (10)

  1. 命令キャッシュ制御回路と、
    命令キャッシュタグメモリと、
    命令キャッシュデータメモリと、
    前記命令キャッシュ制御回路と命令キャッシュタグメモリの中間に位置し、前記命令キャッシュ制御回路から非分岐命令検出信号を供給されることなく、前記命令キャッシュ制御回路から命令キャッシュタグメモリへのアクセスのうちで命令キャッシュタグメモリアドレスが前回のアクセスと同じであるか否かをモニターし、その結果に応じて前記命令キャッシュタグメモリに対するアクセスの可否を制御する命令キャッシュタグアクセス制御回路
    とを具備することを特徴とする命令キャッシュ。
  2. 前記命令キャッシュタグアクセス制御回路は、
    既存の前記命令キャッシュ制御回路との間および既存の命令キャッシュタグメモリとの中間で、前記命令キャッシュ制御回路と命令キャッシュタグメモリとの間のインターフェイスの変更を必要とせずに、前記命令キャッシュ制御回路と命令キャッシュタグメモリとの間のインターフェイスおよびプロトコルをエミュレートすることを特徴とする請求項1記載の命令キャッシュ。
  3. 前記命令キャッシュタグアクセス制御回路は、
    命令キャッシュに対する読み出し時の命令キャッシュタグメモリアドレスを保持するタグアドレスキャッシュと、
    前記命令キャッシュタグメモリアドレスにより指定された前記命令キャッシュタグメモリからの読み出しデータを保持するタグデータキャッシュと、
    命令キャッシュに対する読み出し時の命令キャッシュタグメモリアドレスと前記タグアドレスキャッシュに保持されている前回の読み出し時の命令キャッシュタグメモリアドレスを比較し、一致/不一致を検出する比較器と、
    前記比較器の検出出力に基づいて前記命令キャッシュタグメモリに対するアクセスを制御する命令キャッシュタグメモリアクセス制御回路
    を具備することを特徴とする請求項1または2記載の命令キャッシュ。
  4. 前記命令キャッシュタグメモリアクセス制御回路は、
    前記タグメモリキャッシュに保持されているデータまたは前記命令キャッシュタグメモリに保持されているデータを選択して前記命令キャッシュ制御回路へ出力するセレクタと、
    前記比較器の一致検出出力に基づいて、前記命令キャッシュタグメモリに対するアクセスを禁止し、前記タグメモリキャッシュに保持されているデータを選択するように前記セレクタを制御し、前記比較器の不一致検出出力に基づいて、前記命令キャッシュタグメモリに対するアクセスを許可し、前記命令キャッシュタグメモリに保持されているデータを選択するように前記セレクタを制御するともに前記タグデータキャッシュへ書き込むように制御する論理回路
    を具備することを特徴とする請求項3記載の命令キャッシュ。
  5. マイクロプロセッサ回路と同じ半導体チップ上に命令キャッシュが搭載されたマイクロプロセッサにおいて、前記命令キャッシュは、
    命令キャッシュ制御回路と、
    命令キャッシュタグメモリと、
    命令キャッシュデータメモリと、
    前記命令キャッシュ制御回路と命令キャッシュタグメモリの中間に位置し、前記命令キャッシュ制御回路から非分岐命令検出信号を供給されることなく、前記命令キャッシュ制御回路から命令キャッシュタグメモリへのアクセスのうちで命令キャッシュタグメモリアドレスが前回のアクセスと同じであるか否かをモニターし、その結果に応じて前記命令キャッシュタグメモリに対するアクセスの可否を制御する命令キャッシュタグアクセス制御回路
    とを具備することを特徴とするマイクロプロセッサ。
  6. 前記命令キャッシュタグアクセス制御回路は、
    既存の前記命令キャッシュ制御回路との間および既存の命令キャッシュタグメモリとの中間で、前記命令キャッシュ制御回路と命令キャッシュタグメモリとの間のインターフェイスの変更を必要とせずに、前記命令キャッシュ制御回路と命令キャッシュタグメモリとの間のインターフェイスおよびプロトコルをエミュレートすることを特徴とする請求項5記載のマイクロプロセッサ。
  7. 前記命令キャッシュタグアクセス制御回路は、
    命令キャッシュに対する読み出し時の命令キャッシュタグメモリアドレスを保持するタグアドレスキャッシュと、
    前記命令キャッシュタグメモリアドレスにより指定された前記命令キャッシュタグメモリからの読み出しデータを保持するタグデータキャッシュと、
    命令キャッシュに対する読み出し時の命令キャッシュタグメモリアドレスと前記タグアドレスキャッシュに保持されている前回の読み出し時の命令キャッシュタグメモリアドレスを比較し、一致/不一致を検出する比較器と、
    前記比較器の検出出力に基づいて前記命令キャッシュタグメモリに対するアクセスを制御する命令キャッシュタグメモリアクセス制御回路
    を具備することを特徴とする請求項5または6記載のマイクロプロセッサ。
  8. 前記命令キャッシュタグメモリアクセス制御回路は、
    前記タグメモリキャッシュに保持されているデータまたは前記命令キャッシュタグメモリに保持されているデータを選択して前記命令キャッシュ制御回路へ出力するセレクタと、
    前記比較器の一致検出出力に基づいて、前記命令キャッシュタグメモリに対するアクセスを禁止し、前記タグメモリキャッシュに保持されているデータを選択するように前記セレクタを制御し、前記比較器の不一致検出出力に基づいて、前記命令キャッシュタグメモリに対するアクセスを許可し、前記命令キャッシュタグメモリに保持されているデータを選択するように前記セレクタを制御するともに前記タグデータキャッシュへ書き込むように制御する論理回路
    を具備することを特徴とする請求項7記載のマイクロプロセッサ。
  9. マイクロプロセッサに命令キャッシュを搭載設計する際、
    チップサイズの小型化を低消費電力化よりも優先する場合には、命令キャッシュ制御回路と命令キャッシュタグメモリを配置設計し、両者間を直接に配線接続し、
    低消費電力化をチップサイズの小型化より優先する場合には、命令キャッシュ制御回路と命令キャッシュタグメモリとの間に命令キャッシュタグアクセス制御回路を配置設計し、命令キャッシュ制御回路と命令キャッシュタグアクセス制御回路との間を配線接続し、命令キャッシュタグアクセス制御回路と命令キャッシュタグメモリとの間を配線接続することを特徴とするマイクロプロセッサの設計方法。
  10. 前記命令キャッシュタグアクセス制御回路は、
    前記命令キャッシュ制御回路と命令キャッシュタグメモリの中間に位置し、命令キャッシュ制御回路から命令キャッシュタグメモリへのアクセスのうちで命令キャッシュタグメモリアドレスが前回のアクセスと同じであるか否かをモニターし、その結果に応じて前記命令キャッシュタグメモリに対するアクセスの可否を制御する命令キャッシュタグアクセス制御回路を具備することを特徴とする請求項9記載のマイクロプロセッサの設計方法。
JP2002257971A 2002-09-03 2002-09-03 命令キャッシュおよびマイクロプロセッサとその設計方法 Pending JP2004094807A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002257971A JP2004094807A (ja) 2002-09-03 2002-09-03 命令キャッシュおよびマイクロプロセッサとその設計方法
US10/372,319 US7032075B2 (en) 2002-09-03 2003-02-25 Instruction cache and microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002257971A JP2004094807A (ja) 2002-09-03 2002-09-03 命令キャッシュおよびマイクロプロセッサとその設計方法

Publications (1)

Publication Number Publication Date
JP2004094807A true JP2004094807A (ja) 2004-03-25

Family

ID=31973008

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002257971A Pending JP2004094807A (ja) 2002-09-03 2002-09-03 命令キャッシュおよびマイクロプロセッサとその設計方法

Country Status (2)

Country Link
US (1) US7032075B2 (ja)
JP (1) JP2004094807A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3732397B2 (ja) * 2000-10-05 2006-01-05 株式会社日立製作所 キャッシュシステム
US9104532B2 (en) * 2012-12-14 2015-08-11 International Business Machines Corporation Sequential location accesses in an active memory device
TWI650640B (zh) * 2017-07-14 2019-02-11 瑞昱半導體股份有限公司 用於處理器的資料存取裝置與方法
CN109284129B (zh) * 2017-07-21 2022-12-20 瑞昱半导体股份有限公司 用于处理器的资料存取装置与方法
CN108647124A (zh) * 2018-04-03 2018-10-12 郑州云海信息技术有限公司 一种存储跳变信号的方法及其装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440707A (en) * 1992-04-29 1995-08-08 Sun Microsystems, Inc. Instruction and data cache with a shared TLB for split accesses and snooping in the same clock cycle
US5835934A (en) * 1993-10-12 1998-11-10 Texas Instruments Incorporated Method and apparatus of low power cache operation with a tag hit enablement
JPH08263370A (ja) * 1995-03-27 1996-10-11 Toshiba Microelectron Corp キャッシュメモリシステム
US5752045A (en) * 1995-07-14 1998-05-12 United Microelectronics Corporation Power conservation in synchronous SRAM cache memory blocks of a computer system
JP3702522B2 (ja) 1996-01-26 2005-10-05 富士通株式会社 アドレス変換装置
JP3431397B2 (ja) * 1996-05-23 2003-07-28 東芝マイクロエレクトロニクス株式会社 命令キュー
JP3798563B2 (ja) 1999-01-06 2006-07-19 株式会社東芝 命令キャッシュメモリ
JP4073157B2 (ja) 2000-08-21 2008-04-09 富士通株式会社 タグメモリのアクセス回数を制限したキャッシュシステム
US6535959B1 (en) * 2000-09-05 2003-03-18 Conexant Systems, Inc. Circuit and method for reducing power consumption in an instruction cache

Also Published As

Publication number Publication date
US7032075B2 (en) 2006-04-18
US20040044848A1 (en) 2004-03-04

Similar Documents

Publication Publication Date Title
US6789172B2 (en) Cache and DMA with a global valid bit
US6678797B2 (en) Cache/smartcache with interruptible block prefetch
EP1182559B1 (en) Improved microprocessor
US6697916B2 (en) Cache with block prefetch and DMA
JP4057114B2 (ja) キャッシュを有するデータ処理システムおよびそのための方法
US7899993B2 (en) Microprocessor having a power-saving instruction cache way predictor and instruction replacement scheme
US6754781B2 (en) Cache with DMA and dirty bits
JP2004062280A (ja) 半導体集積回路
US6968400B2 (en) Local memory with indicator bits to support concurrent DMA and CPU access
JP2006509291A (ja) マイクロプロセッサ電力消費のソフトウェアベースの制御
Segars The ARM9 family-high performance microprocessors for embedded applications
JP4689087B2 (ja) 情報処理装置及び省電力移行制御方法
EP1182566B1 (en) Cache operation based on range of addresses
JP2004094807A (ja) 命令キャッシュおよびマイクロプロセッサとその設計方法
US6993674B2 (en) System LSI architecture and method for controlling the clock of a data processing system through the use of instructions
JP4024247B2 (ja) 半導体データプロセッサ
JP3956698B2 (ja) メモリ制御装置
JP2007310905A (ja) 半導体集積回路
JP4498705B2 (ja) キャッシュシステム
JP3735373B2 (ja) マイクロコンピュータ
JP2009048322A (ja) インタフェースモジュール及び半導体集積回路
JP2002024088A (ja) データ処理装置
JPH10333987A (ja) Cpuコア
JPH10254771A (ja) キャッシュ装置
JP2004127031A (ja) メモリ切り替え回路

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050809

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051011

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051108