JP2002334016A - Microprocessor - Google Patents

Microprocessor

Info

Publication number
JP2002334016A
JP2002334016A JP2001140283A JP2001140283A JP2002334016A JP 2002334016 A JP2002334016 A JP 2002334016A JP 2001140283 A JP2001140283 A JP 2001140283A JP 2001140283 A JP2001140283 A JP 2001140283A JP 2002334016 A JP2002334016 A JP 2002334016A
Authority
JP
Japan
Prior art keywords
instruction
cache
loop
cpr
microprocessor
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.)
Withdrawn
Application number
JP2001140283A
Other languages
Japanese (ja)
Inventor
Minoru Saeki
稔 佐伯
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2001140283A priority Critical patent/JP2002334016A/en
Publication of JP2002334016A publication Critical patent/JP2002334016A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • 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

  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a means for saving electric power in the upstream phase of design mainly for a CMOS microprocessor in order to efficiently reduce the power consumption of a semiconductor integrated circuit. SOLUTION: This microprocessor is equipped with an instruction cache for program storage and a control mechanism which stores a part of a program which is executed possibly repeatedly in the instruction cache with priority.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】この発明は、内部に命令キャ
ッシュを備えたマイクロプロセッサの命令キャッシュ制
御方式に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an instruction cache control system for a microprocessor having an instruction cache therein.

【0002】[0002]

【従来の技術】以下に従来の技術を説明する。簡単のた
めに、キャッシュ構成はプログラムアドレスの下位Xビ
ット(Xはキャッシュサイズに応じたビット数;1Kバ
イトのキャッシュサイズであればXは10)によって、
そのプログラムが格納されるキャッシュエントリが一意
的に決まるダイレクトマップ方式を前提とするが、セッ
トアソシアティブ/フルアソシアティブ方式であっても
本質的に同様である。
2. Description of the Related Art A conventional technique will be described below. For simplicity, the cache configuration is determined by the lower X bits of the program address (X is the number of bits according to the cache size; X is 10 if the cache size is 1 Kbyte).
It is assumed that the cache entry in which the program is stored is uniquely determined by the direct map method. However, the same applies to the set associative / full associative method.

【0003】図4はマイクロプロセッサが実行するプロ
グラムを格納するための階層化メモリの一般例を示して
いる。プログラム用ROMが存在することもあるが、こ
の図では省略している。また、図中の二次キャッシュは
専用の二次キャッシュバスでCPU(Central Processi
ng Unit)と直結するのではなく、CPUバス上に接続
される場合もあり、また二次キャッシュが存在しない場
合もある。各階層のメモリサイズには、 主記憶 > 二次キャッシュ > 命令キャッシュ の関係があり、主記憶上の全てのプログラムをキャッシ
ュに複写して常駐させることは通常不可能である。
FIG. 4 shows a general example of a hierarchical memory for storing a program executed by a microprocessor. Although a program ROM may exist, it is omitted in this figure. Also, the secondary cache in the figure is a dedicated secondary cache bus and uses a CPU (Central Process
ng Unit) instead of being directly connected to the CPU bus, or there may be no secondary cache. The memory size of each hierarchy has the following relationship: main memory> secondary cache> instruction cache, and it is usually impossible to copy all programs on main memory to the cache and make them resident.

【0004】マイクロプロセッサは実行中のプログラム
の命令アドレスを保持するプログラムカウンタ(PC)
が指すアドレスから命令を取り込みながらそれらを逐次
実行していく。当該命令が命令キャッシュに既に入って
いれば、命令キャッシュから読み出して使用するが、そ
うでなければ、外部メモリ(図4では主記憶または二次
キャッシュ)からフェッチし、新たに命令キャッシュに
格納する。この時、現時点で必要な命令だけでなく、そ
の命令を含む連続した複数の命令(キャッシュの1ライ
ン分の命令)が命令キャッシュに転送される。該当する
1ラインが二次キャッシュに入っていれば二次キャッシ
ュから命令キャッシュへの転送が発生し、そうでなけれ
ば主記憶から命令キャッシュへの転送となる。後者の場
合は通常、この1ライン分の命令は二次キャッシュにも
複写される。新たにフェッチされた命令はそのアドレス
に対応したキャッシュエントリに格納されるが、同エン
トリに先に格納されていた命令は上書きされて消えてし
まう。
A microprocessor is a program counter (PC) that holds an instruction address of a program being executed.
While executing instructions from the address indicated by, they are sequentially executed. If the instruction is already in the instruction cache, it is read from the instruction cache and used. Otherwise, the instruction is fetched from an external memory (main memory or secondary cache in FIG. 4) and newly stored in the instruction cache. . At this time, not only the instruction required at the present time but also a plurality of continuous instructions (instructions for one line of the cache) including the instruction are transferred to the instruction cache. If the corresponding one line is in the secondary cache, a transfer from the secondary cache to the instruction cache occurs, otherwise, a transfer from the main memory to the instruction cache. In the latter case, this one-line instruction is usually copied to the secondary cache. The newly fetched instruction is stored in the cache entry corresponding to that address, but the instruction previously stored in the entry is overwritten and disappears.

【0005】主記憶などに用いられるメモリ素子は、大
容量であるが低速であるため、高速マイクロプロセッサ
との速度ギャップが問題になる。このギャップを小さく
するために、小容量で高速なキャッシュメモリをバッフ
ァとして設けるのが、メモリの階層化である。階層化さ
れたメモリ構成においては、基本的に容量の小さい階層
が保持する内容は、より容量が大きい階層の持つ内容の
サブセットとなる。
A memory element used for a main memory or the like has a large capacity but a low speed, so that a speed gap with a high-speed microprocessor becomes a problem. In order to reduce the gap, providing a small-capacity, high-speed cache memory as a buffer is a memory hierarchy. In a hierarchical memory configuration, the contents held by a layer having a smaller capacity are basically a subset of the contents of a layer having a larger capacity.

【0006】従って、キャッシュの1つのエントリには
より大容量の階層の複数のエントリが排他的に対応付け
られる。図5はこの様子を表しており、大容量側のメモ
リの同じ色付けをしたキャッシュ1ライン分の領域は小
容量側の同一エントリに格納される。すなわち、大容量
側のメモリのブロック内の変位が同じアドレスに置かれ
た命令は、小容量側のメモリの同一エントリを奪い合
う。エントリが異なれば、大容量側のメモリの異なるブ
ロックのデータが小容量側のメモリ内に同時に存在して
もよい。
Therefore, one entry of the cache is exclusively associated with a plurality of entries of a higher-capacity hierarchy. FIG. 5 shows this state. The area of one line of the cache with the same color in the memory on the large capacity side is stored in the same entry on the small capacity side. That is, instructions whose displacements in the block of the large-capacity memory are located at the same address compete for the same entry in the small-capacity memory. If the entries are different, data of different blocks in the large-capacity memory may exist simultaneously in the small-capacity memory.

【0007】次に動作について説明する。図6は一般的
な多重プロセス動作環境における各プロセスのプログラ
ムの配置を極めて単純化して表したものである。ネスト
したループや分岐などは省略している。前述のように、
ブロック内の変位が同じアドレスに置かれた命令は同一
のキャッシュエントリを奪い合う。なお、図中の点線矢
印と丸数字はプロセス切り替えの発生個所と発生順を示
している。以下、図6に基いてプログラムの実行とキャ
ッシュの状態について説明する。
Next, the operation will be described. FIG. 6 shows a very simplified arrangement of the program of each process in a general multi-process operating environment. Nested loops and branches are omitted. As aforementioned,
Instructions whose displacements within a block are located at the same address compete for the same cache entry. It should be noted that dotted arrows and circled numbers in the figure indicate locations and order of process switching. Hereinafter, the execution of the program and the state of the cache will be described with reference to FIG.

【0008】図6の環境で、まずプロセス0が起動され
ると、主記憶ブロック0に格納されていたプロセス0の
コードはCPUによるプログラム実行に伴って逐次キャ
ッシュにコピーされていく。初めてループAが実行され
る時は、そのコードが主記憶からキャッシュにコピーさ
れるが、その後しばらくはキャッシュに格納された状態
で実行されるため、主記憶に対してループAのコードを
再度フェッチにかかることはない。
In the environment shown in FIG. 6, when the process 0 is started, the code of the process 0 stored in the main storage block 0 is sequentially copied to the cache as the CPU executes the program. When the loop A is executed for the first time, the code is copied from the main memory to the cache. However, since the code is executed while being stored in the cache for a while, the code of the loop A is fetched again to the main memory. It does not take on.

【0009】やがて、プロセス0のループA実行中にプ
ロセス切り替えが発生し、プロセス1が活性化され
る。プロセス1のコードフェッチにより、ブロック内オ
フセットアドレスがオーバラップしたプロセス0のコー
ドはキャッシュから捨てられる。プロセス1でループB
を実行しているあるタイミングでプロセス切り替えが
発生し、プログラム実行が再度プロセス0のループAに
戻る。
Eventually, process switching occurs during execution of loop A of process 0, and process 1 is activated. By the code fetch of the process 1, the code of the process 0 in which the offset addresses within the block overlap is discarded from the cache. Loop B in process 1
Is executed at a certain timing during execution of the program, and the program execution returns to the loop A of the process 0 again.

【0010】プロセス0が再度活性化された時には、プ
ロセス1によってループAのコードのかなりの部分がキ
ャッシュから捨てられているので、もう一度そのコード
を外部からフェッチしなければならない。プロセス0で
のループAの処理が終わった後にプロセス切り替えが
発生し、プロセス1に処理が渡ると、先と同様に以前は
キャッシュに載っていたループBがプロセス0によって
捨てられているので、プロセス1は再度ループBを外部
からキャッシュに複写する必要がある。
When process 0 is reactivated, a significant portion of the code in loop A has been discarded from the cache by process 1 and the code must be fetched again externally. When the process switching occurs after the process of the loop A in the process 0 is completed, and the process is passed to the process 1, the loop B previously stored in the cache is discarded by the process 0 in the same manner as described above. No. 1 needs to copy the loop B from the outside to the cache again.

【0011】以下同様に、新たに活性化されたプロセス
が以前のプロセスのキャッシュ状態を変化させながら、
プロセス切り替え、、、…が発生し、多重プロセ
ス環境のプログラム実行が行われていく。
Similarly, while the newly activated process changes the cache state of the previous process,
Process switching,... Occur, and the program execution in the multi-process environment is performed.

【0012】[0012]

【発明が解決しようとする課題】本発明が解決しようと
する従来の技術における課題を、以下に説明する。従来
の技術の動作で示したように、複数プロセスが並行処理
される環境では、互いに他のプロセスのキャッシュ状態
を乱しながら処理が進んでいく。全てのプログラムをキ
ャッシュ内に常駐できない以上、あるコード部分をキャ
ッシュに載せるために他のコード部分がキャッシュから
捨てられること(リプレース)は避けられないが、図6
の例では一度だけしか実行されないコードが他プロセス
のループ部分のコードをキャッシュから捨てている。一
般に、プログラム実行時間の大部分はごく一部のループ
部分に費やされ、残りの大半のコードは一度だけしか実
行されない。このようなコードは使い捨てのコードであ
り、命令キャッシュに格納しても性能上のメリットはほ
とんどない。さらに、使い捨てのコードが有効なループ
部分のコードにリプレースすると、後にループ部分のコ
ードがキャッシュミスヒットを起こし、再フェッチして
キャッシュに複写しなければならない。すなわち、プロ
グラムの大半を占め、キャッシュに格納することによる
効果があまりない部分の存在によって、キャッシュのヒ
ット率が抑制され、かつ外部からの再フェッチのために
消費電力が余計に必要になる、という問題があった。
Problems to be solved by the present invention in the prior art will be described below. As described in the operation of the related art, in an environment where a plurality of processes are processed in parallel, processing proceeds while disturbing the cache state of another process. Since not all programs can reside in the cache, it is inevitable that another code part is discarded from the cache (replacement) in order to put a certain code part in the cache.
In this example, the code that is executed only once discards the code in the loop of another process from the cache. In general, most of the program execution time is spent in a small portion of the loop, and most of the remaining code is executed only once. Such code is disposable and has little performance advantage in storing it in the instruction cache. Further, if the disposable code replaces the valid loop portion code, the loop portion code will later cause a cache miss and must be refetched and copied to the cache. In other words, the presence of a portion that occupies the majority of the program and has little effect by storing it in the cache suppresses the cache hit rate and requires extra power consumption for external refetching. There was a problem.

【0013】さらに、複数のプロセスにまたがった状態
で命令キャッシュのヒット率を向上しようとすると、大
容量のキャッシュメモリを実装しなければならず、チッ
プコストや消費電力などの面で好ましくないという問題
があった。先の例は多重プロセス環境の異なるプロセス
間における問題であったが、単一プロセス内での関数呼
び出しなどのケースでも同様のことが起こり得る。
Further, if the hit rate of the instruction cache is to be improved over a plurality of processes, a large-capacity cache memory must be mounted, which is not preferable in terms of chip cost and power consumption. was there. While the previous example was a problem between different processes in a multi-process environment, the same can occur in cases such as function calls within a single process.

【0014】なお、上記ではダイレクトマップのキャッ
シュ構成を前提としたが、より連想度を高めた構成(セ
ットアソシアティブなど)では前述の問題の発生頻度が
減少する。しかし、同様の問題は無くなるわけではない
のみならず、キャッシュの連想度を高めることは回路の
複雑化や遅延時間の増大につながる、という問題もあ
る。
In the above description, the cache structure of the direct map is premised. However, the frequency of occurrence of the above-described problem is reduced in a structure having a higher association (such as set associative). However, not only does the same problem not disappear, but there is also a problem that increasing the degree of association of the cache leads to a complicated circuit and an increase in delay time.

【0015】この発明は上記のような問題点を解決する
ためになされたもので、半導体集積回路の消費電力を効
率的に低減することを目的とし、主にCMOSマイクロ
プロセッサにおいて、設計の上流フェーズで低消費電力
化の手段を提供することを目的とする。
SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and has as its object to efficiently reduce the power consumption of a semiconductor integrated circuit. And a means for reducing power consumption.

【0016】[0016]

【課題を解決するための手段】この発明に係るマイクロ
プロセッサは、プログラム格納用の命令キャッシュを備
え、繰り返し実行される可能性があるプログラムの部分
を優先して命令キャッシュに格納する制御機構を備えた
ものである。
SUMMARY OF THE INVENTION A microprocessor according to the present invention includes an instruction cache for storing a program, and a control mechanism for preferentially storing a part of a program that may be repeatedly executed in the instruction cache. It is a thing.

【0017】また、マイクロプロセッサが実行中のプロ
グラムがループ内部であること、及びそのループの深さ
を示すようなマイクロプロセッサのCPRと、CPRの
内容を任意の値に設定するための機械語命令と、を備え
たものである。
[0017] Further, the program executed by the microprocessor is inside a loop, the CPR of the microprocessor indicating the depth of the loop, and a machine language instruction for setting the contents of the CPR to an arbitrary value. And with.

【0018】また、プログラムのループ構造の入り口に
挿入され、CPRの内容を1だけ増加して以下がループ
内部であることを示す機械語命令を備えたものである。
Further, a machine language instruction is inserted at the entrance of the loop structure of the program and increases the content of CPR by 1 to indicate that the following is inside the loop.

【0019】また、プログラム内のループ末尾におい
て、ループを繰り返すかループから抜けるかを判断する
ための条件判定命令または条件分岐命令であり、ループ
を抜ける条件が成立した場合にはCPRの内容を1だけ
減少する機能を持つ機械語命令を備えたものである。
At the end of the loop in the program, a condition determining instruction or a conditional branch instruction for determining whether to repeat the loop or exit from the loop. If the condition for exiting the loop is satisfied, the content of CPR is set to 1 It is provided with a machine language instruction having a function of decreasing only.

【0020】また、命令キャッシュの前段に、命令キャ
ッシュの1ライン分の命令バッファ(先頭命令アドレス
を保持する機能を備える)を持ち、命令キャッシュミス
ヒット時に以下のような動作を行うような命令キャッシ
ュ制御方式を備えたものである。・CPRの内容が0
(繰り返し実行される可能性が低いプログラム部分であ
ることを示す)の場合は、命令キャッシュミスヒット時
には、例えば主記憶などからフェッチしてきた1ライン
分の命令を命令バッファのみに格納し、命令バッファ内
の命令実行によってCPRの値が0以外にならなけれ
ば、当該1ラインは命令キャッシュには格納せず、使い
捨てとし命令バッファ内でCPRの値が0以外になれ
ば、命令バッファの内容を命令キャッシュにコピーす
る、・CPRの内容が0以外(繰り返し実行される可能
性があるプログラム部分であることを示す)の場合は、
命令キャッシュミスヒット時には、新たにフェッチした
1ライン分の命令を即座に命令キャッシュに格納する。
An instruction cache (having a function of holding a head instruction address) for one line of the instruction cache is provided at a stage preceding the instruction cache, and performs the following operation when an instruction cache miss occurs. It has a control system.・ CPR content is 0
In the case of (indicating that the program portion is unlikely to be repeatedly executed), at the time of an instruction cache mishit, for example, an instruction for one line fetched from a main memory or the like is stored only in the instruction buffer, and If the value of CPR does not become other than 0 due to execution of the instruction in the instruction buffer, the one line is not stored in the instruction cache. If the value of CPR becomes other than 0 in the instruction buffer, the contents of the instruction buffer are read. Copy to cache. ・ If the contents of CPR are other than 0 (indicating that it is a program part that may be repeatedly executed),
When an instruction cache mishit occurs, the newly fetched one-line instruction is immediately stored in the instruction cache.

【0021】また、階層化されたキャッシュメモリ(配
置場所はプロセッサ内部、外部を問わない)を備えたマ
イクロプロセッサであって、CPRの内容が0の場合
は、命令キャッシュミスヒット時には、例えば主記憶な
どからフェッチしてきた1ライン分の命令を命令バッフ
ァのみに格納し、命令バッファ内の命令実行によってC
PRの値が0以外にならなければ、当該1ラインは命令
キャッシュには格納せず、即座に二次キャッシュに格納
するものである。
A microprocessor provided with a hierarchical cache memory (location may be inside or outside the processor). If the content of CPR is 0, when the instruction cache misses, for example, the main memory The instruction for one line fetched from the instruction buffer is stored only in the instruction buffer, and C is executed by executing the instruction in the instruction buffer.
If the value of PR is not 0, the one line is not stored in the instruction cache but is immediately stored in the secondary cache.

【0022】また、内部制御レジスタなどの設定によっ
て、請求項5又は請求項6記載の機構を実行するかしな
いかのモード切り替えが可能なものである。
Further, by setting the internal control register or the like, it is possible to switch the mode between execution and non-execution of the mechanism according to the fifth or sixth aspect.

【0023】[0023]

【発明の実施の形態】以下、この発明の実施の形態を図
に基づいて説明する。 実施の形態1.本発明は、できるだけ従来技術を生かし
ながら、先の課題を最小限のコストで解決することを特
徴としている。すなわち、マイクロプロセッサの回路規
模増加を極力抑え、またコンパイラやプログラムもハー
ドウェアの変更による影響をできるだけ意識しなくて済
むことを目標にしている。このため、本発明の構成はそ
の大部分が従来技術と共通である。
Embodiments of the present invention will be described below with reference to the drawings. Embodiment 1 FIG. The present invention is characterized by solving the above problems at a minimum cost while making the most of the prior art. In other words, the goal is to minimize the increase in the circuit scale of the microprocessor and to make the compiler and programs as conscious of the effects of the hardware changes as possible. For this reason, the configuration of the present invention is mostly the same as the conventional technology.

【0024】図1〜3は実施の形態1を示す図で、図1
はCPR(Caching-Priority-Register)の例を示す
図、図2はプログラム実行とループフラグ(CPRの内
容)変化の関係を示す図、図3はCPRを用いたキャッ
シュ制御説明図である。
FIGS. 1 to 3 show the first embodiment.
FIG. 2 is a diagram showing an example of CPR (Caching-Priority-Register), FIG. 2 is a diagram showing a relationship between program execution and changes in loop flags (contents of CPR), and FIG. 3 is an explanatory diagram of cache control using CPR.

【0025】図1は本発明の請求項2で示したCPRの
例である。この例では、CPRとしての実体は図で示し
た32ビットのレジスタのうち、下位16ビットとなっ
ている。最上位のビット(ビット31)は、請求項5記
載のCPRを用いたキャッシュ制御を有効にするか否か
を指示するビット、ビット32は請求項7記載の制御を
有効にするか否かを示すビットであり、本発明の請求項
7の一実施の形態である。
FIG. 1 shows an example of the CPR according to the second aspect of the present invention. In this example, the entity as CPR is the lower 16 bits of the 32-bit register shown in the figure. The most significant bit (bit 31) is a bit indicating whether or not to enable the cache control using CPR according to claim 5, and the bit 32 is whether or not to enable the control according to claim 7. This is a bit which indicates one embodiment of the present invention.

【0026】図1で示したレジスタの内容は以下のよう
に変化する。 (1)初期値は全て0である。 (2)図1のレジスタに任意の値を設定する請求項2記
載の命令を使用して、プログラムによって図1のレジス
タの有効ビットをセットし、CPRを用いたキャッシュ
制御を有効にする。 (3)図2で簡略化して示したプログラムにおいて、ル
ープ部分に入る直前にコンパイラなどによって、請求項
3記載の命令が挿入され、ループに入った時点でCPR
の内容が1になる。 (4)ループを繰り返すための条件分岐命令を除くルー
プ内部での分岐命令(関数呼び出しなど)の実行ではC
PRの内容は変化しない。 (5)ループ内部にさらにループが現われた場合は、
(3)と同様の操作が行われ、CPRの値は1ずつ増加
する。
The contents of the register shown in FIG. 1 change as follows. (1) The initial values are all 0. (2) An arbitrary value is set in the register of FIG. 1. The valid bit of the register of FIG. 1 is set by a program using the instruction described in claim 2, and the cache control using CPR is enabled. (3) In the program simplified in FIG. 2, the instruction according to claim 3 is inserted by a compiler or the like immediately before entering the loop portion, and the CPR is entered at the time of entering the loop.
Becomes 1. (4) When a branch instruction (such as a function call) is executed inside a loop except for a conditional branch instruction for repeating the loop, C
The contents of the PR do not change. (5) If another loop appears inside the loop,
The same operation as in (3) is performed, and the value of CPR increases by one.

【0027】(6)ループ実行中に、例外の発生やプロ
セス切り替えなどによって、ループ内部のプログラムと
は異なる処理が起動されると、プログラムまたはハード
ウェア機構によって現在のCPRが保存され、新たに起
動された処理に適したCPRの値に変更される。もとの
ループ内部に処理が戻る際、保存されていたCPRの内
容が復旧される。
(6) If a process different from the program in the loop is started due to the occurrence of an exception or a process change during the execution of the loop, the current CPR is saved by the program or a hardware mechanism and newly started. Is changed to a value of CPR suitable for the performed processing. When the process returns to the inside of the original loop, the contents of the stored CPR are restored.

【0028】(7)ループを繰り返すかどうかを判定す
る命令は、コンパイラなどによって条件判定結果によっ
てCPRの内容を1だけ減少する条件判定命令または条
件分岐命令が使用される。ループ条件が成立してループ
を繰り返す場合はCPRの内容は変化せず、ループの入
り口((3)で挿入された命令の直後)にジャンプす
る。ループから抜ける条件が成立した場合は、CPRの
内容が1だけ減少し、後続命令が実行される。
(7) As an instruction for determining whether or not to repeat the loop, a condition determination instruction or a conditional branch instruction for reducing the content of CPR by 1 according to the result of the condition determination by a compiler or the like is used. When the loop condition is satisfied and the loop is repeated, the contents of the CPR do not change, and the program jumps to the entrance of the loop (immediately after the instruction inserted at (3)). If the condition for exiting the loop is satisfied, the content of CPR is reduced by 1 and the subsequent instruction is executed.

【0029】(8)極めて特殊なプログラム(またはバ
グによる暴走)でループが非常に深くネスティングし、
図1で示したCPRがオーバフローする可能性もある。
このような場合のために、以下のいずれかの手段を実装
する。 ・CPRの最大値(例えば0xFFFF)、最小値(0x0000)
を決めておき、最大値以上に増加せず、最小値未満には
減少しないようなレジスタとして実装する。 ・CPRがオーバフロー/アンダフローすると、例外処
理を起動してハンドラプログラム内で然るべき処理を行
う。
(8) The loop nests very deeply with a very special program (or runaway due to a bug),
The CPR shown in FIG. 1 may overflow.
For such a case, one of the following means is implemented.・ Maximum value of CPR (for example, 0xFFFF), minimum value (0x0000)
Is determined and implemented as a register that does not increase above the maximum value and does not decrease below the minimum value. -When CPR overflows / underflows, exception processing is started and appropriate processing is performed in the handler program.

【0030】図3はCPRを用いたキャッシュ制御説明
図であるが、マイクロプロセッサの中の本発明に係る部
分だけを切り出したモデルである。図中の”命令バッフ
ァ”は請求項5で示したものである。プリフェッチバッ
ファは、近いうちに使用されることが予想される新たな
命令列をマイクロプロセッサ外部から先読みしておくた
めのバッファであるが、システムによっては備えない場
合もある。命令フェッチユニットは、従来技術における
命令フェッチユニットの機能の他に、本発明の請求項
5、6を実現するための制御機能を備えるものである。
FIG. 3 is an explanatory diagram of cache control using CPR, and is a model in which only a portion related to the present invention in a microprocessor is cut out. The "instruction buffer" in the figure is as shown in claim 5. The prefetch buffer is a buffer for prefetching a new instruction sequence expected to be used in the near future from the outside of the microprocessor, but may not be provided depending on the system. The instruction fetch unit has a control function for realizing claims 5 and 6 of the present invention, in addition to the function of the instruction fetch unit in the prior art.

【0031】なお、図3では専用の二次キャッシュバス
にてマイクロプロセッサと二次キャッシュが直結するよ
うなシステムを想定しているが、前述のように、二次キ
ャッシュがCPUバスなどに接続されていたり、または
二次キャッシュが存在しないシステムもある。二次キャ
ッシュが存在しないか、あるいはマイクロプロセッサか
ら二次キャッシュの制御ができないようなシステムで
は、本発明の請求項6は無効である。
Although FIG. 3 assumes a system in which the microprocessor and the secondary cache are directly connected by a dedicated secondary cache bus, as described above, the secondary cache is connected to the CPU bus or the like. In some systems, there is no secondary cache. In a system in which the secondary cache does not exist or the microprocessor cannot control the secondary cache, claim 6 of the present invention is invalid.

【0032】前述のようなCPRの制御によって、例え
ば図2で示すようにCPRの内容が変化する。すなわ
ち、あるプログラムが起動された時のCPRの初期値は
0であり、プログラム実行中にループ部分に入るとその
直前に挿入された請求項3記載の命令によってCPRの
値が1になる。そのループの中で別のループがネストす
ると、同様に請求項3記載の命令によってCPRの値が
増加する。ループを抜ける時には、請求項4記載の命令
によってCPRの値が減少する。このように、CPRの
値は増減を繰り返し、ループ内部を実行している期間中
のみCPRの値は0以外、ループでない部分の実行中は
0となる。図2に現われない動作(関数呼び出し、例外
など)時のCPRの変化の仕方は、先に述べた通りであ
る。
Under the control of the CPR as described above, the contents of the CPR change, for example, as shown in FIG. That is, the initial value of CPR when a certain program is started is 0, and when entering a loop portion during execution of the program, the value of CPR becomes 1 by the instruction inserted immediately before the loop portion. When another loop is nested in the loop, the value of CPR is similarly increased by the instruction according to claim 3. Upon exiting the loop, the value of CPR is reduced by the instruction of claim 4. As described above, the value of CPR repeatedly increases and decreases, and the value of CPR becomes a value other than 0 only during the execution of the inside of the loop, and becomes 0 during the execution of the part other than the loop. The manner of changing the CPR at the time of an operation (function call, exception, etc.) not appearing in FIG. 2 is as described above.

【0033】次に、CPRや命令バッファを用いた本発
明の請求項5、6記載の動作について説明する。マイク
ロプロセッサがプログラムを実行中に、実行すべき命令
が既に命令キャッシュ内に格納されていれば、命令キャ
ッシュから当該命令を読み出して実行する。実行すべき
命令が命令キャッシュ内に存在しなかった場合は、目的
の命令を含むキャッシュ1ライン分の命令列が二次キャ
ッシュ内に存在するかどうかを判断し、存在していれば
二次キャッシュから、そうでなければ主記憶などからC
PUバス経由で1ライン分の命令列をマイクロプロセッ
サ内部に取り込む。新たに取り込まれた命令列はプリフ
ェッチバッファを介して命令バッファに格納される。命
令バッファが空の場合は、図3内の点線で示すように、
プリフェッチバッファをバイパスして外部から取り込ん
だ命令列を命令バッファに格納するような制御もあり得
る。
Next, the operation according to the fifth and sixth aspects of the present invention using the CPR and the instruction buffer will be described. If an instruction to be executed is already stored in the instruction cache while the microprocessor is executing the program, the instruction is read from the instruction cache and executed. If the instruction to be executed does not exist in the instruction cache, it is determined whether or not an instruction sequence of one cache line including the target instruction exists in the secondary cache. From, otherwise from main memory etc.
An instruction sequence for one line is taken into the microprocessor via the PU bus. The newly fetched instruction sequence is stored in the instruction buffer via the prefetch buffer. When the instruction buffer is empty, as shown by the dotted line in FIG.
There may be a control for bypassing the prefetch buffer and storing an instruction sequence fetched from outside in the instruction buffer.

【0034】マイクロプロセッサが外部から命令列を命
令バッファに取り込むタイミングでCPRの内容が0で
なければ(すなわち、ループ部分の実行中であれば)、
命令フェッチユニットはその命令列を命令キャッシュに
複写するよう制御する。外部から命令列を取り込んだ時
にはCPRの内容が0であったが、命令バッファ内の命
令を実行中にCPRの内容が0でなくなれば、やはり命
令バッファの内容を命令キャッシュに複写する。命令バ
ッファの内容が複写されるべき命令キャッシュのエント
リに既に有効な命令列が格納されていれば、それは捨て
られる。命令キャッシュに複写される命令列は二次キャ
ッシュにも複写される。
If the content of the CPR is not 0 at the timing when the microprocessor takes in the instruction sequence from the outside into the instruction buffer (ie, if the loop is being executed),
The instruction fetch unit controls to copy the instruction sequence to the instruction cache. When the instruction sequence was fetched from outside, the content of CPR was 0, but if the content of CPR became non-zero during execution of the instruction in the instruction buffer, the content of the instruction buffer is also copied to the instruction cache. If a valid instruction sequence is already stored in the instruction cache entry to which the contents of the instruction buffer are to be copied, it is discarded. The instruction sequence copied to the instruction cache is also copied to the secondary cache.

【0035】命令バッファ内の命令実行期間中を通じて
CPRの内容が0であった場合、命令バッファ内の命令
列は命令バッファには複写されない。新たな命令列が命
令バッファに取り込まれるまでは、命令バッファは1ラ
イン分の命令キャッシュと同等に機能するが、新たな命
令列が格納されるタイミングでそれまでの内容は捨てら
れる。ただし、図3のようにマイクロプロセッサによっ
て制御される二次キャッシュを備えたシステムであれ
ば、命令バッファの内容を命令キャッシュに複写しない
で捨て去る代わりに、二次キャッシュに複写しておき、
次回同じ命令列が必要となった時には主記憶などから取
り直すよりも高速化を図る(本発明の請求項6)。
If the contents of CPR are 0 throughout the execution of an instruction in the instruction buffer, the instruction sequence in the instruction buffer is not copied to the instruction buffer. Until a new instruction sequence is taken into the instruction buffer, the instruction buffer functions in the same manner as an instruction cache for one line, but the contents up to that point are discarded at the timing when the new instruction sequence is stored. However, in the case of a system having a secondary cache controlled by a microprocessor as shown in FIG. 3, instead of discarding the contents of the instruction buffer without copying it to the instruction cache, copying it to the secondary cache,
The next time the same instruction sequence is required, the speed is increased as compared with the case of retrieving from the main memory (claim 6 of the present invention).

【0036】本発明の請求項7記載の機能によって、上
記の動作は抑制可能である。図1記載のレジスタのV
1,V2ビットで請求項7を実現する場合であれば、V
1がクリアされた状態では請求項5記載の制御、V2が
クリアされた状態では請求項6記載の制御が抑制され、
従来技術通りのキャッシュ制御が行われる。
The above operation can be suppressed by the function according to claim 7 of the present invention. V of the register shown in FIG.
If claim 7 is realized with 1, V2 bits, V
The control according to claim 5 is suppressed when 1 is cleared, and the control according to claim 6 is suppressed when V2 is cleared,
Cache control as in the prior art is performed.

【0037】本発明の請求項5のみを適用すると、命令
キャッシュに複写されない部分の実行中にプロセス切り
替えが発生した場合は、もとのプロセスの処理を継続す
る際に、一度命令バッファに取り込んでいた1ライン分
の命令を再度外部からフェッチしてこなければならな
い、という問題がある。また、全体としてループ構造に
はなっていないが、何度も起動されるプログラムがある
場合、その中のループ構造の部分以外についても同様で
ある。これらは、本発明によって得られる効果の代償で
あるが、本発明の請求項6によってダメージを軽減可能
である。また、そうでなくても得られる効果と比べると
些細な問題であるとも言える。請求項5のデメリットが
無視できないようなプログラムを実行する際には、本発
明の請求項7の機構によって、マイクロプロセッサの動
作を従来通りにすることで問題を回避することができ
る。
When only the fifth aspect of the present invention is applied, if a process switching occurs during execution of a part which is not copied to the instruction cache, it is once taken into the instruction buffer when the processing of the original process is continued. There is a problem that the instructions for one line must be fetched again from the outside. Also, if there is a program which is not loop-structured as a whole but is started many times, the same applies to a portion other than the loop-structured portion. These are compensations for the effects obtained by the present invention, but the damage can be reduced by claim 6 of the present invention. Also, it can be said that it is a trivial problem compared to the effect obtained otherwise. When executing a program in which the disadvantages of claim 5 cannot be ignored, the problem can be avoided by making the operation of the microprocessor conventional, by the mechanism of claim 7 of the present invention.

【0038】なお、前述の本発明の動作では、ループ部
分のコードサイズがキャッシュサイズよりも極めて大き
い時は、従来技術と比べて先に挙げたような効果が発揮
されず、同等になってしまう。しかし、このような場合
はCPRの操作方法を変更して、ループの中で一度だけ
しか実行されない部分でCPRが0とし、そのループの
中で前述と同様の操作を行うことで、ループ内部のルー
プを優先してキャッシュに格納することで先に挙げた効
果を部分的に得ることもできる。巨大ループにおいて、
より効率良くキャッシュ制御しようとすると、例えば特
開平4−333929号公報、特開平10−55308
号公報のような機構の併用などが必要となる。この場
合、ハードウェアは本発明と比べて大幅に複雑になる。
In the above-described operation of the present invention, when the code size of the loop portion is much larger than the cache size, the above-mentioned effects are not exerted as compared with the prior art, and they are equal. . However, in such a case, the operation method of the CPR is changed so that the CPR is set to 0 in a portion of the loop that is executed only once, and the same operation as described above is performed in the loop, so that the inside of the loop is changed. By storing the loop in the cache with priority, the above-mentioned effect can be partially obtained. In a huge loop,
In order to control the cache more efficiently, for example, JP-A-4-333929 and JP-A-10-55308
It is necessary to use a mechanism such as that disclosed in Japanese Patent Application Laid-Open No. H10-209139. In this case, the hardware becomes significantly more complicated than the present invention.

【0039】実施の形態2.なお、以上の記述ではダイ
レクトマップのキャッシュ構成を前提としたが、セット
アソシアティブ/フルアソシアティブの構成ではより一
層の効果を得ることが可能である。さらに、プログラム
のループ部分が同一キャッシュエントリを奪い合わない
ようなアドレスに配置されるような、コンパイラのサポ
ートがあれば最大限の効果が得られる。
Embodiment 2 In the above description, the cache configuration of the direct map is premised. However, the configuration of the set associative / full associative can obtain a further effect. Further, the maximum effect can be obtained with the support of the compiler such that the loop portion of the program is arranged at an address which does not compete for the same cache entry.

【0040】なお、本発明によって得られる例えば特開
平6−243036と同様の性能向上は、その度合いは
少ないかも知れないが、ハードウェアコストは小さくて
済むという効果がある。また、本発明では、コンパイラ
がループ部分のキャッシュ制御のための命令を挿入する
際に、ループ部分毎に一律の操作を行えば良いため、先
の先行技術などと比べるとコンパイラの負担が軽いとい
う効果もある。
The performance improvement obtained by the present invention, for example, similar to that of JP-A-6-243036 may have a small degree, but has the effect of reducing the hardware cost. Further, according to the present invention, when the compiler inserts an instruction for controlling the cache of the loop portion, it is only necessary to perform a uniform operation for each loop portion, so that the load on the compiler is lighter than that of the prior art. There is also an effect.

【0041】さらに、実行頻度は少ないがフェッチのオ
ーバヘッドが無視できないようなプログラムを優先的に
キャッシュ上に格納しておくことが可能となる効果があ
る。例えばリアルタイムシステムにおいて高速実行が要
求される割り込み処理などでは、実際はループ内部では
なくても、割り込みハンドラ内でCPRを操作すること
で、割り込み処理部分全体を優先してキャッシュに格納
するよう制御することも可能となる。
Further, there is an effect that a program whose execution frequency is low but fetch overhead cannot be ignored can be preferentially stored in the cache. For example, in the case of interrupt processing that requires high-speed execution in a real-time system, by controlling the CPR in the interrupt handler, even if it is not actually inside the loop, control is performed so that the entire interrupt processing part is stored in the cache with priority. Is also possible.

【0042】[0042]

【発明の効果】この発明によれば、限られた容量の命令
キャッシュを有効に活用するため、ループ部分のプログ
ラムを優先して命令キャッシュに格納することで、命令
キャッシュのヒット率が向上する。その結果、マイクロ
プロセッサの性能が向上する効果がある。また、外部か
らの命令フェッチ回数が減少するので、マイクロプロセ
ッサの消費電力を減少する効果もある。さらに、より小
さなキャッシュ容量で従来技術と同等のヒット率を実現
することができるので、マイクロプロセッサのコスト低
下の効果があるとともに、この点でも低消費電力化の効
果がある。
According to the present invention, in order to effectively utilize the instruction cache having a limited capacity, the program of the loop portion is preferentially stored in the instruction cache, thereby improving the hit rate of the instruction cache. As a result, there is an effect that the performance of the microprocessor is improved. Further, since the number of instruction fetches from the outside is reduced, there is also an effect of reducing power consumption of the microprocessor. Further, since a hit rate equivalent to that of the related art can be realized with a smaller cache capacity, there is an effect of reducing the cost of the microprocessor, and also in this respect, there is an effect of reducing power consumption.

【0043】また、請求項7の発明によれば、請求項1
〜6に係る発明の実施によって、逆にデメリットが生じ
るような特殊な環境において、上記発明の発現を抑制
し、従来技術と同等の動作をさせることでデメリットを
無くす効果がある。また、さまざまな局面で請求項1〜
6の効果を定量的に評価することが可能になるという効
果もある。
According to the invention of claim 7, according to claim 1,
On the contrary, in a special environment in which the disadvantages are caused by the implementation of the inventions of the sixth to sixth aspects, the expression of the above-described invention is suppressed, and the same operation as that of the related art is effectively eliminated. Claims 1 to 5 in various aspects.
There is also an effect that the effect of No. 6 can be quantitatively evaluated.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 実施の形態1を示す図で、CPRの例を示す
図である。
FIG. 1 is a diagram illustrating Embodiment 1 and illustrates an example of CPR.

【図2】 実施の形態1を示す図で、プログラム実行と
ループフラグ(CPRの内容)変化の関係を示す図であ
る。
FIG. 2 is a diagram showing the first embodiment and is a diagram showing a relationship between program execution and a change in a loop flag (contents of CPR).

【図3】 実施の形態1を示す図で、CPRを用いたキ
ャッシュ制御説明図である。
FIG. 3 shows the first embodiment and is an explanatory diagram of cache control using CPR.

【図4】 従来の技術を示す図で、プログラム格納に関
する一般的なメモリの階層構造を示す図である。
FIG. 4 is a diagram illustrating a conventional technique, and is a diagram illustrating a hierarchical structure of a general memory related to program storage.

【図5】 従来の技術を示す図で、階層メモリ間のエン
トリの対応を示す図である。
FIG. 5 is a diagram showing a conventional technique, and is a diagram showing correspondence of entries between hierarchical memories.

【図6】 従来の技術を示す図で、多重プロセス動作環
境の下でのコード配置の例を示す図である。
FIG. 6 is a diagram illustrating a conventional technique, and is a diagram illustrating an example of code arrangement under a multi-process operation environment.

───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 9/38 310 G06F 9/38 310A ──────────────────────────────────────────────────続 き Continued on the front page (51) Int.Cl. 7 Identification symbol FI Theme coat ゛ (Reference) G06F 9/38 310 G06F 9/38 310A

Claims (7)

【特許請求の範囲】[Claims] 【請求項1】 プログラム格納用のキャッシュメモリ
(以下、命令キャッシュと称する)を備え、繰り返し実
行される可能性があるプログラムの部分を優先して命令
キャッシュに格納する制御機構を備えたことを特徴とす
るマイクロプロセッサ。
1. A cache memory for storing a program (hereinafter referred to as an instruction cache), and a control mechanism for storing a part of a program which may be repeatedly executed in the instruction cache with priority. And a microprocessor.
【請求項2】 マイクロプロセッサが実行中のプログラ
ムがループ内部であること、及びそのループの深さを示
すようなマイクロプロセッサの内部レジスタ(以下、C
PR;Caching-Priority-Registerと称する)と、CP
Rの内容を任意の値に設定するための機械語命令と、を
備えたことを特徴とするマイクロプロセッサ。
2. A microprocessor internal register (hereinafter referred to as C) which indicates that a program being executed by the microprocessor is inside a loop and indicates the depth of the loop.
PR; called Caching-Priority-Register) and CP
A machine language instruction for setting the content of R to an arbitrary value.
【請求項3】 プログラムのループ構造の入り口に挿入
され、CPRの内容を1だけ増加して以下がループ内部
であることを示す機械語命令を備えたことを特徴とする
マイクロプロセッサ。
3. A microprocessor provided with a machine language instruction inserted at the entrance of a loop structure of a program to increase the content of CPR by one to indicate that the following is inside a loop.
【請求項4】 プログラム内のループ末尾において、ル
ープを繰り返すかループから抜けるかを判断するための
条件判定命令または条件分岐命令であり、ループを抜け
る条件が成立した場合にはCPRの内容を1だけ減少す
る機能を持つ機械語命令を備えたことを特徴とするマイ
クロプロセッサ。
4. At the end of the loop in the program, a conditional judgment instruction or a conditional branch instruction for judging whether to repeat the loop or to exit from the loop. If the condition for exiting the loop is satisfied, the content of CPR is set to 1 A microprocessor having a machine language instruction having a function of decreasing only.
【請求項5】 命令キャッシュの前段に、命令キャッシ
ュの1ライン分の命令バッファ(先頭命令アドレスを保
持する機能を備える)を持ち、命令キャッシュミスヒッ
ト時に以下のような動作を行うような命令キャッシュ制
御方式を備えたことを特徴とするマイクロプロセッサ ・CPRの内容が0(繰り返し実行される可能性が低い
プログラム部分であることを示す)の場合は、命令キャ
ッシュミスヒット時には、例えば主記憶などからフェッ
チしてきた1ライン分の命令を命令バッファのみに格納
し、命令バッファ内の命令実行によってCPRの値が0
以外にならなければ、当該1ラインは命令キャッシュに
は格納せず、使い捨てとし、命令バッファ内でCPRの
値が0以外になれば、命令バッファの内容を命令キャッ
シュにコピーする、 ・CPRの内容が0以外(繰り返し実行される可能性が
あるプログラム部分であることを示す)の場合は、命令
キャッシュミスヒット時には、新たにフェッチした1ラ
イン分の命令を即座に命令キャッシュに格納する。
5. An instruction cache which has an instruction buffer for one line of the instruction cache (provided with a function of holding a leading instruction address) at a stage preceding the instruction cache and performs the following operation when an instruction cache mishit occurs. A microprocessor characterized by having a control method.-When the content of CPR is 0 (indicating that the program portion is unlikely to be repeatedly executed), when the instruction cache mishits, for example, the main memory is used. The fetched instruction for one line is stored only in the instruction buffer, and the value of CPR becomes 0 by executing the instruction in the instruction buffer.
Otherwise, the one line is not stored in the instruction cache, but is disposable. If the value of CPR is not 0 in the instruction buffer, the contents of the instruction buffer are copied to the instruction cache. Is other than 0 (indicating a program part that may be repeatedly executed), when an instruction cache mishit occurs, the newly fetched one-line instruction is immediately stored in the instruction cache.
【請求項6】 階層化されたキャッシュメモリ(配置場
所はプロセッサ内部、外部を問わない)を備えたマイク
ロプロセッサであって、CPRの内容が0の場合は、命
令キャッシュミスヒット時には、例えば主記憶などから
フェッチしてきた1ライン分の命令を命令バッファのみ
に格納し、命令バッファ内の命令実行によってCPRの
値が0以外にならなければ、当該1ラインは命令キャッ
シュには格納せず、即座に二次キャッシュに格納するこ
とを特徴とするマイクロプロセッサ。
6. A microprocessor provided with a hierarchical cache memory (location may be inside or outside of the processor). If the content of CPR is 0, an instruction cache miss occurs, for example, in a main memory. The instruction for one line fetched from the instruction buffer is stored only in the instruction buffer. If the value of CPR does not become other than 0 due to the execution of the instruction in the instruction buffer, the one line is not stored in the instruction cache. A microprocessor stored in a secondary cache.
【請求項7】 内部制御レジスタなどの設定によって、
請求項5又は請求項6記載の機構を実行するかしないか
のモード切り替えが可能であることを特徴とするマイク
ロプロセッサ。
7. By setting an internal control register or the like,
A microprocessor capable of performing mode switching between execution and non-execution of the mechanism according to claim 5 or 6.
JP2001140283A 2001-05-10 2001-05-10 Microprocessor Withdrawn JP2002334016A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001140283A JP2002334016A (en) 2001-05-10 2001-05-10 Microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001140283A JP2002334016A (en) 2001-05-10 2001-05-10 Microprocessor

Publications (1)

Publication Number Publication Date
JP2002334016A true JP2002334016A (en) 2002-11-22

Family

ID=18986914

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001140283A Withdrawn JP2002334016A (en) 2001-05-10 2001-05-10 Microprocessor

Country Status (1)

Country Link
JP (1) JP2002334016A (en)

Similar Documents

Publication Publication Date Title
EP1353267B1 (en) Microprocessor with repeat prefetch instruction
JP3739491B2 (en) Harmonized software control of Harvard architecture cache memory using prefetch instructions
JP3640355B2 (en) Instruction prefetch method and system for cache control
US5297281A (en) Multiple sequence processor system
JPH083791B2 (en) Data processor controller
US6378023B1 (en) Interrupt descriptor cache for a microprocessor
US6275903B1 (en) Stack cache miss handling
US6446143B1 (en) Methods and apparatus for minimizing the impact of excessive instruction retrieval
US7353337B2 (en) Reducing cache effects of certain code pieces
JP2004145454A (en) Information processor and information processing method
JP4067063B2 (en) Microprocessor
EP1523710A2 (en) Method and apparatus for context switching in computer operating systems
JP2002334016A (en) Microprocessor
JP6016689B2 (en) Semiconductor device
JPH10124312A (en) Central processor
JP5116275B2 (en) Arithmetic processing apparatus, information processing apparatus, and control method for arithmetic processing apparatus
JP4413663B2 (en) Instruction cache system
JP3156773B2 (en) Instruction processing unit
JP2004038601A (en) Cache memory device
JP3493122B2 (en) Microprocessor and instruction cache control circuit
JPS63163532A (en) Microprocessor
JP3693503B2 (en) Processor with instruction cache write mechanism
JP2000194554A (en) Arithmetic processor
JPH11249959A (en) Method and device for cache memory control
US6871247B1 (en) Mechanism for supporting self-modifying code in a harvard architecture digital signal processor and method of operation thereof

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20051019

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080805