JPH03288246A - Instruction cache memory - Google Patents

Instruction cache memory

Info

Publication number
JPH03288246A
JPH03288246A JP2089954A JP8995490A JPH03288246A JP H03288246 A JPH03288246 A JP H03288246A JP 2089954 A JP2089954 A JP 2089954A JP 8995490 A JP8995490 A JP 8995490A JP H03288246 A JPH03288246 A JP H03288246A
Authority
JP
Japan
Prior art keywords
instruction
cache memory
instructions
memory
execution unit
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
JP2089954A
Other languages
Japanese (ja)
Inventor
Seiji Yamaguchi
山口 聖司
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2089954A priority Critical patent/JPH03288246A/en
Publication of JPH03288246A publication Critical patent/JPH03288246A/en
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

PURPOSE:To fast decide (schedule) the processing procedure of the instructions of a microprocessor that can process plural instructions at one time and in parallel with each other by adding the instruction storing bits to a cache memory to show the type of each instruction. CONSTITUTION:A tag part TA consisting of at least some addresses of an entry of an instruction cache memory is provided together with a memory part Ii which stores the instructions, and the instruction sorting bits Ci which show the types of the stored instructions. In such constitutions, it is possible to simultaneously read out the instruction sorting bits that can previously sort the types of processing to be carried out by the instructions which are read out when the supply of instructions is requested to the instruction cache memory from an execution unit of a microprocessor and an access is applied to the instruction cache memory. Then it is possible to immediately decide (schedule) a specific instruction to be supplied to a specific execution unit with use of the instruction sorting bit. Thus a fast machine cycle is attained.

Description

【発明の詳細な説明】 産業上の利用分野 本発明は大容量の命令キャッシュメモリを内蔵し 複数
個の命令を同時に並列処理するマイクロプロセッサに利
用できるものであム 従来の技術 マイクロプロセッサの性能を向上させるための−つの手
法として大容量のキャッシュメモリが内蔵される傾向に
あム 大容量のキャッシュメモリを内蔵スるとキャッシ
ュメモリのヒツト率を上げることができ、その結果とし
てマイクロプロセッサが主記憶をアクセスする回数を大
幅に減らすことができるので性能の向上が計れも マイクロプロセッサに内蔵されるキャッシュメモリには
データキャッシュメモリと命令キャッシュメモリの2つ
があム 同一容量のキャッシュメモリの場合では一般的に命令キ
ャッシュのヒツト率の方がデータキャッシュのヒツト率
よりも高くなa これ(よ データに比べて命令の方が
局所性が高いことを意味していも マイクロプロセッサ
の性能を向上させるためのもう一つの手法として複数個
の命令を並列処理する傾向にあム 最近ではマイクロプ
ロセッサにレジスタ演算命令を実行する実行ユニットと
、メモリアクセス命令(例えばロード/ストア命令)を
実行する実行ユニットと、分岐などの制御命令を実行す
る実行ユニットと、浮動小数点演算を実行する実行ユニ
ットを有してそれらの実行ユニットが並列処理可能な構
成になるものが出現していも このようなマイクロプロ
セッサをスーパースケイラ一方式(5uperscal
ar)と呼んでいも発明が解決しようとする課題 上記スーパースケイラ一方式では命令の解読と各命令の
それぞれの処理を実行するためにどの命令をどの順番で
どの実行ユニットで実行させればよいかを判断するスケ
ジューリングを行なうためのマシンサイクルが必要であ
り、スケジューリング動作の高速化が難しく兎 本発明は上記の問題・点に鑑みてなされたもので、マイ
クロプロセッサに内蔵される大容量の命令キャッシュメ
モリに各命令毎に命令の種類を示す命令分類ビットを付
加することにより、複数個の命令を同時に並列処理でき
るマイクロプロセッサの命令の処理手順の決定(スケジ
ューリング)を高速に行なうことができる命令キャッシ
ュメモリを提供することを目的とすム 課題を解決するための手段 本発明(友 上記問題点を解決するた数 命令キャッシ
ュメモリのひとつのエントリに少なくともアドレスの一
部分で構成されるタグ部と、命令を格納するメモリ部と
、格納されている各命令単位毎に命令の種類を示す命令
分類ビットとを具備する命令キャッシュメモリであも 作用 本発明(友 上記構成により、マイクロプロセッサの実
行ユニットから命令キャッシュメモリに命令の供給を要
求して命令キャッシュメモリをアクセスした時に読み出
された命令がどのような処理を行なう命令であるかをあ
らかじめ分類できる命令分類ビットを同時に読み出し 
直ちに命令分類ビットを用いてどの実行ユニットにどの
命令を供給すればよいかを判断する(スケジューリング
)ことができるのでマシンサイクルの高速化を実現する
ことができも 実施例 第1図は本発明の命令キャッシュメモリの1エントリの
構成図であも 第1図において、TAはタグ部分のアドレスVはエント
リが有効であるか無効であるかを示すための有効ビット
、 ■0はライン0に格納されている命令、COはライ
ンOに格納されている命令が複数個ある実行ユニットの
うちのどの実行ユニットで実行される命令であるかを指
定するための命令分類ビット、 ■1はライン1に格納
されている命令、C1はライン1に格納されている命令
が複数個ある実行ユニットのうちのどの実行ユニットで
実行される命令であるかを指定するための命令分類ビッ
ト、 工2はライン2に格納されている命令、C2はラ
イン2に格納されている命令が複数個ある実行ユニット
のうちのどの実行ユニットで実行される命令であるかを
指定するための命令分類ビット、 ■3はライン3に格
納されている命令、C3はライン3に格納されている命
令が複数個ある実行ユニットのうちのどの実行ユニット
で実行される命令であるかを指定するための命令分類ビ
ットであa これらで命令キャッシュの1エントリを構
成していも 上記の場合、タグ部分はタグアドレスTA
と有効ビットVとで構成してい&  −4データ部分は
命令Iiと命令分類ビットC1とで構成していも 例えば マイクロプロセッサに複数個ある実行ユニット
がレジスタ演算命令実行ユニット、分岐実行ユニット、
メモリアクセス実行ユニット、浮動小数点加減算実行ユ
ニット、浮動小数点乗除算ユニットの5個の実行ユニッ
トを持っている場合に 命令分類ビットci  (i=
o〜3)は命令工i  (i=0〜3)が書き込まれる
ときく 書き込まれる命令がレジスタ演算命令であれば
命令分類ビットをCi=’l’にセットして書き込へ 
分岐命令であれば命令分類ビットをC1==’2’にセ
ットして書き込へ メモリアクセス命令であれば命令分
類ビットをCi=  3’にセットして書き込へ 浮動
小数点加減算命令であれば命令分類ビットをc i==
 j 、i #にセットして書き込へ 浮動小数点乗除
算命令であれば命令分類ビットをC1=j5jにセット
して書き込へ 命令セットアーキテクチャで定義されて
いない命令であれば命令分類ビットをCi=’O’にセ
ットして書き込む。
DETAILED DESCRIPTION OF THE INVENTION Field of Industrial Application The present invention is applicable to a microprocessor that has a built-in large capacity instruction cache memory and processes multiple instructions simultaneously in parallel, thus improving the performance of conventional microprocessors. One way to improve performance is to incorporate large-capacity cache memory.By incorporating large-capacity cache memory, it is possible to increase the cache memory hit rate, and as a result, the microprocessor can use main memory. Although the number of accesses can be greatly reduced, performance can be improved. However, the cache memory built into a microprocessor typically has two cache memories: a data cache memory and an instruction cache memory. The hit rate of the instruction cache is higher than the hit rate of the data cache. One technique is to process multiple instructions in parallel.Recently, microprocessors are equipped with an execution unit that executes register operation instructions, an execution unit that executes memory access instructions (such as load/store instructions), and an execution unit that executes branching instructions. Even if a microprocessor has emerged that has an execution unit that executes control instructions and an execution unit that executes floating-point operations, and these execution units can be processed in parallel, such a microprocessor can be used as a superscalar. Method (5uperscal
The problem that the invention aims to solve, also known as ar), is that in the above-mentioned superscalar system, which instructions should be executed in which order and by which execution unit in order to decode the instructions and execute the processing of each instruction. The present invention was made in view of the above problems and points, and it is difficult to speed up the scheduling operation. An instruction that can quickly determine the processing procedure (scheduling) for instructions in a microprocessor that can process multiple instructions simultaneously in parallel by adding an instruction classification bit to the cache memory that indicates the type of instruction for each instruction. SUMMARY OF THE INVENTION It is an object of the present invention to provide a cache memory in which one entry of an instruction cache memory includes a tag section consisting of at least a portion of an address; The present invention also works with an instruction cache memory that includes a memory section for storing instructions and an instruction classification bit indicating the type of instruction for each stored instruction unit. Simultaneously reads the instruction classification bit that can classify in advance what kind of processing the instruction read when the instruction cache memory is accessed by requesting the supply of instructions to the instruction cache memory.
Since it is possible to immediately use the instruction classification bit to determine (scheduling) which instruction should be supplied to which execution unit, it is possible to realize faster machine cycles. In Figure 1, which is a diagram showing the configuration of one entry in the instruction cache memory, TA is a tag part address V is a valid bit to indicate whether the entry is valid or invalid, and 0 is stored in line 0. CO is an instruction classification bit that specifies which execution unit out of multiple execution units executes the instruction stored in line O. ■1 is stored in line 1. C1 is an instruction classification bit for specifying in which execution unit among multiple execution units the instruction stored in line 1 is executed; C2 is an instruction stored in line 2. The stored instruction, C2, is an instruction classification bit for specifying which execution unit out of multiple execution units executes the instruction stored in line 2, and ■3 is line 3. C3 is an instruction classification bit for specifying in which execution unit among multiple execution units the instruction stored in line 3 is executed. Even if it constitutes one entry in the instruction cache, in the above case, the tag part is the tag address TA.
The &-4 data part is composed of an instruction Ii and an instruction classification bit C1. For example, if a microprocessor has multiple execution units such as a register operation instruction execution unit, a branch execution unit,
When the instruction classification bit ci (i=
o to 3) are written when instruction i (i = 0 to 3) is written. If the instruction to be written is a register operation instruction, set the instruction classification bit to Ci = 'l' and proceed to writing.
If it is a branch instruction, set the instruction classification bit to C1=='2' and proceed to writing If it is a memory access instruction, set the instruction classification bit to Ci=3' and proceed to writing If it is a floating point addition/subtraction instruction Set the instruction classification bit to c i==
j, i Set to # and proceed to write If it is a floating point multiplication/division instruction, set the instruction classification bit to C1=j5j and proceed to write If it is an instruction that is not defined in the instruction set architecture, set the instruction classification bit to Ci = 'O' and write.

1エントリを上記のような構成にすることにより、マイ
クロプロセッサの実行ユニットから命令キャッシュメモ
リに命令の供給を要求して命令キャッシュメモリをアク
セスすることにより命令の読み出し動作と同時に命令の
種類を検出することができるのでどの実行ユニットで実
行すべき命令であるかが指定されも また 未定義命令
についても同時に検出できるので例外処理も高速に対応
できム qこでは 実行ユニットが5個ある場合につい
て想定しているので命令分類ビットは3ビツトで構成さ
れることになム 第1図では1エントリが4ラインで構成される場合を示
している力(lエントリのライン数が4ラインでない場
合にζよ ライン数に応じて各命令毎に命令分類ビット
を定義すれば同様の構成が可能であも 第2図は本発明の命令キャッシュメモリの搭載するマイ
クロプロセッサの主要部分のブロック構成図である。第
2図において、 1は命令キャッシュメモリ、 2は命
令レジス久 4は命令解読手段、6は命令セレク久 8
はスケジューリング論理手比 10、12、14、16
、18は実行ユニットである。命令キャッシュメモリ1
は4個の命令(IO,It、  I2.  I3)を同
時に読み出して命令レジスタ2に転送す也 命令レジス
タ2の命令は命令解読手段4で演算のソース資源および
デスティネーション資源の解読を行ない使用するレジス
タアドレスRO,R1,R2,R3を生成していも レ
ジスタアドレスRO,R1,R2,R3および命令分類
ビットCo、  CI、  C2,C3はスケジューリ
ング論理手段8に人力されて、演算のソース資源および
デスティネーション資源の衝突(レジスタ干渉とも言う
)が発生していないかを検出して命令レジスタ2のどの
命令をどの実行ユニットに転送するばよいのかを選択す
るための制御信号Siを生成していも 制御N:’号S
iは命令セレクタ6に入力されて命令レジスタ2に格納
されている命令を選択的に実行ユニット10゜12、 
14. 16. 18に転送していも 各実行ユニット
10. 12. 14. 16. 18では命令セレク
タ6から転送されてきた命令に対して実行を開始すも 例えば 命令レジスタ2に格納されている4個の命令が
レジスタ演算命令が2個と浮動小数点加減算命令と分岐
命令であるとすれば レジスタ演算実行ユニットは1個
のレジスタ演算命令しか実行できないので最大3命令を
同時に実行できることになム ここで(よ 供給される
命令数(命令レジスタ2が保持している命令数)に比べ
て実行ユニット数が多い場合について記述している力丈
 基本的にはスケジューリング論理手段8が命令レジス
タ2に格納されている命令の組み合わせから並列に実行
できる命令がどれであるかを判定しているので最大4命
令並列に実行可能であa第3図は本発明の命令キャッシ
ュメモリの第1の実施例の具体的な構成を示すブロック
図であムここでGL  1命令を32ビツトの固定長と
し 書き込み動作では4命令毎にキャッシュメモリに書
き込まれて、読み出し動作では4命令毎に読み出せる場
合について説明すも 第3図において、 20はキヤ・ソシュメモリの主要部
分、 22はタグアドレスTAを格納しているメモリア
レイ、 24は有効ビットVを格納して0るメモリアレ
イ、 26−i(i=o〜3)は命令Iiを格納してい
るメモリアレイ、 28−i(i=0〜3)は命令分類
ビ・ソトCiを格納しているメモリアレイ、 30は行
デコーダ、 32、34.36、38は書き込みのため
のドライスティトノくッファ、40は書き込まれる命令
がどの実行ユニットで実行される命令であるかを検出し
て書き込まれる命令分類ビットを生成する論理手乳42
はタグアドレスTAとアドレスAの上位ビ・ソトを比較
する比較器 44はタグアドレスTAとアドレスAの上
位ビットとの比較結果と有効ビ・ントVとの論理積をと
り命令キャッシュメモリのヒ・ント信号HTを生成する
アンドゲート、46、48は命令キャッシュメモリのヒ
ツト時に読み出される命令RIi(i=o〜3)および
命令分類ビ・ントRCi  (i=0〜3)を出力する
ためのトライスティトバッファであも 第4図(a)および(b)に第3図の書き込み動作およ
び読み出し動作の動作波形図を示す。第3図および第4
図(a)、 (b)を用いて書き込み動作および読み出
し動作について説明すも ただし ここでは命令キャッ
シュメモリの主要部分20にクロックPH1,PH2が
入力されてこれらのクロックに同期して動作している場
合について説明すも 最初に命令の書き込み動作(WRDがjHjの場合)で
は クロックPH1に同期してアドレスAが行デコーダ
30に入力されて選択すべき行アドレスNを確定してい
も クロックPH1の期間にはメモリアレイ22.24
.26.28をプリチャージ状態にしていも クロック
PH2では選択された行アドレスNに対応するワード線
W(N)が立ち上がりメモリセルをアクセスすも 書き
込まれる命令WIはクロックPH1に同期して転送され
て、クロックPH2の時にワード線W (N)により選
択されたメモリセルに書き込まれも この時にクロック
PH1に同期して転送された命令がどの実行ユニットで
実行される命令であるかを論理手段40で判定を行な(
\ その判定結果WC1をクロックPH2で命令分類ビ
ットCiとして書き込みを行なう。
By configuring one entry as described above, the type of instruction can be detected at the same time as the instruction read operation by requesting the instruction supply from the execution unit of the microprocessor to the instruction cache memory and accessing the instruction cache memory. Since it is possible to specify which execution unit should execute an instruction, it is also possible to detect undefined instructions at the same time, so exception handling can be handled at high speed. Therefore, the instruction classification bit is composed of 3 bits. Figure 1 shows the case where one entry consists of 4 lines (If the number of lines in an entry is not 4, then Although a similar configuration is possible if instruction classification bits are defined for each instruction according to the number of lines, FIG. In Figure 2, 1 is an instruction cache memory, 2 is an instruction register register, 4 is an instruction decoder, and 6 is an instruction select register.
is the scheduling logic ratio 10, 12, 14, 16
, 18 are execution units. Instruction cache memory 1
reads four instructions (IO, It, I2, I3) at the same time and transfers them to the instruction register 2.The instruction in the instruction register 2 is used by the instruction decoding means 4 which decodes the source resource and destination resource of the operation. Even though the register addresses RO, R1, R2, R3 are generated, the register addresses RO, R1, R2, R3 and the instruction classification bits Co, CI, C2, C3 are manually inputted into the scheduling logic means 8 to determine the source resource and destination of the operation. Even if a control signal Si is generated to detect whether a conflict of nation resources (also called register interference) has occurred and select which instruction in instruction register 2 should be transferred to which execution unit, N: 'S
i is input to the instruction selector 6 and selectively executes the instruction stored in the instruction register 2 in the execution units 10 and 12;
14. 16. Each execution unit 10. 12. 14. 16. 18 starts execution of the instruction transferred from the instruction selector 6. For example, if the four instructions stored in the instruction register 2 are two register operation instructions, a floating point addition/subtraction instruction, and a branch instruction. Then, since the register operation execution unit can only execute one register operation instruction, it can execute a maximum of three instructions at the same time. Basically, the scheduling logic means 8 determines which instructions can be executed in parallel from the combination of instructions stored in the instruction register 2. Therefore, a maximum of four instructions can be executed in parallel.a Figure 3 is a block diagram showing the specific configuration of the first embodiment of the instruction cache memory of the present invention. We will explain the case where the write operation is written to the cache memory every 4 instructions, and the read operation can be read every 4 instructions.In Fig. 3, 20 is the main part of the cache memory, and 22 stores the tag address TA. 24 is a memory array that stores valid bits V and is set to 0; 26-i (i=o~3) is a memory array that stores instructions Ii; 28-i (i=0~3) ) is a memory array storing instruction classification BiSotoCi, 30 is a row decoder, 32, 34, 36, 38 are dry code buffers for writing, and 40 is an execution unit in which the instruction to be written is executed. Logic system 42 that detects whether the instruction is an instruction to be written and generates an instruction classification bit to be written.
44 is a comparator that compares the high-order bits of tag address TA and address A. 44 is a comparator that compares the high-order bits of tag address TA and address A with the valid bit V and calculates the logical product of the high-order bits of the instruction cache memory. The AND gates 46 and 48 which generate the input signal HT are trices for outputting the instruction RIi (i=o to 3) and the instruction classification bit RCi (i=0 to 3) read out when the instruction cache memory is hit. FIGS. 4(a) and 4(b) show operational waveform diagrams of the write operation and read operation of FIG. 3 in the case of the Tito buffer. Figures 3 and 4
The write operation and read operation will be explained using Figures (a) and (b). However, here, clocks PH1 and PH2 are input to the main part 20 of the instruction cache memory, and the main part 20 of the instruction cache memory operates in synchronization with these clocks. To explain the case, in the first instruction write operation (WRD is jHj), even if the address A is input to the row decoder 30 in synchronization with the clock PH1 and the row address N to be selected is determined, the period of the clock PH1 has memory array 22.24
.. Even if 26.28 is in the precharge state, the word line W(N) corresponding to the selected row address N rises at clock PH2 and the memory cell is accessed. However, the instruction WI to be written is transferred in synchronization with clock PH1. , the logic means 40 determines in which execution unit the instruction written in the memory cell selected by the word line W (N) at clock PH2 and transferred at this time in synchronization with clock PH1 is an instruction to be executed. Make a judgment (
\The determination result WC1 is written as the instruction classification bit Ci using the clock PH2.

次に命令の読み出し動作(WRDがjLlの場合)につ
いて説明すも クロックPH1に同期してアドレスAが
行デコーダ30に入力されて選択すべき行アドレスを確
定していも クロックPH1の期間にはメモリアレイ2
2、24、26、28をプリチャージ状態にしている。
Next, we will explain the instruction read operation (when WRD is jLl). Even if address A is input to the row decoder 30 in synchronization with clock PH1 and the row address to be selected is determined, the memory is not used during the period of clock PH1. array 2
2, 24, 26, and 28 are in a precharged state.

クロックPH2では選択された行アドレスNに対応する
ワード線W (N)が立ち上がりメモリセルをアクセス
す也 読み出されたタグアドレスTAはアドレスAの上
位ビットと比較器42で比較されも 比較器42の出力
はタグアドレスTAとアドレスAの上位ビットが一致し
ていればPH1を出力し 不一致ならば′L′を出力す
ム アンドゲート44では比較器42の出力と有効ビットV
との論理積がとられてヒツト信号HTが生成されも ヒ
ツト信号HTはタグアドレスTAとアドレスAの上位ビ
ットが一致し かス 選択されたエントリが有効ならば
IHIとなりトライスティトバッファ46、48をイネ
ーブル状態にして、命令レジスタ2およびスケジューリ
ング論理手段8に命令RIiと命令分類ビットRCiを
転送する。
At the clock PH2, the word line W (N) corresponding to the selected row address N rises and accesses the memory cell.The read tag address TA is compared with the upper bit of the address A by the comparator 42. If the upper bits of the tag address TA and address A match, it outputs PH1; if they do not match, it outputs 'L'.The output of the comparator 42 and the valid bit V are output at the gate 44.
If the selected entry is valid, it becomes IHI and the hit signal HT is generated if the upper bits of the tag address TA and address A match. When enabled, the instruction RIi and the instruction classification bit RCi are transferred to the instruction register 2 and the scheduling logic means 8.

一人 タグアドレスTAとアドレスAの上位ビットが不
一致である力\ また(よ 選択されたエントリが無効
ならばILIとなりトライスティトバッファ46、48
をディセーブル状態にして、命令レジスタ2およびスケ
ジューリング論理手段8に命令RIiと命令分類ビット
RCiを転送しないようにしていも このとき、キャッ
シュはミスヒツト状態であるためエントリの置換をおこ
なわなければならな(t な耘 上記の説明ではタグアドレスTAとアドレスAの
上位ビットが一致している場合(WRTがjLjの場合
もしくはキャッシュメモリがヒット状態)について説明
した力(キャッシュがミスヒツト状態ではエントリの置
換が行なわれて後にキャッシュアクセスが実行されも 
エントリの置換には置換アルゴリズムによって選択され
たエントリにタグアドレスTAと有効ビットV (V=
H’)が書き込まれも このとき、WRTが′H′とな
っていも また 上記の実施例ではダイレクトマツプ方
式の場合について説明を行なったがセットアソシェイテ
ィブ方式の場合でも同様のことが実現できるのは言うま
でもなし一 発明の効果 以上の説明から明らかなようく 本発明によれば スー
パースケイラ一方式のマイクロプロセッサに内蔵されて
いる命令キャッシュメモリが命令をメモリセルに書き込
むときく格納するとき)に書き込まれる命令がどの実行
ユニットで実行される命令かを判定して命令分類ビット
に格納すもマイクロプロセッサの実行ユニットから命令
キャッシュメモリに命令の供給を要求して命令キャッシ
ュメモリをアクセスし ヒツトしたときに格納されてい
る命令と命令分類ビットの情報を命令レジスタおよびス
ケジューリング論理手段に転送して、命令分類ビットの
値に応じて各実行ユニットで命令を実行すム スーパー
スケイラ一方式では命令をキャッシュメモリから読み出
してから命令の分類を行なわなければならない力又 本
発明では命令分類ビットを命令と同時に読み出すことが
できるので直ちに各実行ユニット毎に処理が実行できる
ようになも これによってマイクロプロセッサ内部のク
リティカルパスの改善をはかることができ、マシンサイ
クルを向上させてマイクロプロセッサの高速動作および
性能向上が実現できも
If the high-order bits of tag address TA and address A do not match, the selected entry becomes ILI.
Even if the instruction RIi and instruction classification bit RCi are disabled and the instruction RIi and instruction classification bit RCi are not transferred to the instruction register 2 and the scheduling logic means 8, the entry must be replaced because the cache is in a miss state at this time ( In the above explanation, the force explained for the case where the upper bits of tag address TA and address A match (when WRT is jLj or the cache memory is in a hit state) (if the cache is in a miss state, entry replacement is not performed). Even if cache access is performed after
To replace an entry, the entry selected by the replacement algorithm is given a tag address TA and a valid bit V (V=
At this time, even if WRT becomes 'H', the above example describes the case of the direct map method, but the same thing can be achieved in the case of the set associative method. It goes without saying that, as is clear from the above explanation, according to the present invention, the instruction cache memory built in the superscalar one-way microprocessor stores instructions quickly when writing them into memory cells. It determines which execution unit the instruction written to the microprocessor is to be executed and stores it in the instruction classification bit.The microprocessor execution unit requests the supply of instructions to the instruction cache memory and accesses the instruction cache memory. The superscalar method transfers the stored instructions and instruction classification bit information to the instruction register and scheduling logic means to execute the instructions in each execution unit according to the value of the instruction classification bits. In addition, in the present invention, the instruction classification bit can be read at the same time as the instruction, so that processing can be executed immediately for each execution unit. It is possible to improve the critical path of the microprocessor, thereby improving the machine cycle and realizing faster operation and performance of the microprocessor.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明の命令キャッシュメモリの1エントリの
構成艮 第2図は本発明の命令キャッシュを搭載したマ
イクロプロセッサの主要な部分のブロック医 第3図は
本発明の第1の実施例の命令キャッシュメモリの構成を
示すブロック医 第4図(a)は本発明の第1の実施例
の命令キャッシュメモリの書き込み動作を示す動作波形
図 第4図(b)は本発明の第1の実施例の命令キャッ
シュメモリの読み出し動作を示す動作波形図であム ト・・命令キャッジみ 2・・・命令レジス久 4・・
・命令解読手段、 6・・・命令セレク久 8・・・ス
ケジューリング論理平成 10,12.14,16.1
8・・・実行ユニット、 20・・・命令キャッシュメ
モリの主要部分、 22.24,26.28・・・メモ
リアレイ、 30・・・行デコーダ、 32,34.3
6.38・・・書き込み用トライスティトバッファ、 
40・・・命令分類ビットを生成するための論理手既 
42・・・比較器 44・・・アンドゲート、 46.
48・・・読み出し用トライスティトバッファ。
FIG. 1 shows the configuration of one entry of the instruction cache memory of the present invention. FIG. 2 shows the block diagram of the main parts of a microprocessor equipped with the instruction cache of the present invention. FIG. 3 shows the configuration of one entry of the instruction cache memory of the present invention. 4(a) is an operation waveform diagram showing the write operation of the instruction cache memory according to the first embodiment of the present invention. FIG. 4(b) is a block diagram showing the configuration of the instruction cache memory according to the first embodiment of the present invention. This is an operation waveform diagram showing the read operation of the instruction cache memory in an example.
- Instruction decoding means, 6... Instruction selector 8... Scheduling logic Heisei 10, 12.14, 16.1
8... Execution unit, 20... Main part of instruction cache memory, 22.24, 26.28... Memory array, 30... Row decoder, 32, 34.3
6.38...Writing tryst buffer,
40...Logical procedure for generating instruction classification bits
42...Comparator 44...And gate, 46.
48... Tristite buffer for reading.

Claims (4)

【特許請求の範囲】[Claims] (1)命令キャッシュメモリのひとつのエントリに少な
くともアドレスの一部分で構成されるタグ部と、命令を
格納するメモリ部と、格納されている各命令単位毎に命
令の種類を示す命令分類ビットとを具備することを特徴
とする命令キャッシュメモリ。
(1) One entry in the instruction cache memory includes a tag section consisting of at least a part of an address, a memory section for storing instructions, and an instruction classification bit indicating the type of instruction for each stored instruction unit. An instruction cache memory comprising:
(2)1命令のビット長が固定されている場合に、命令
キャッシュメモリのひとつのエントリに少なくともアド
レスの一部分で構成されるタグ部と、複数個の命令を格
納するメモリ部と、格納されている各命令単位毎に命令
の種類を示す命令分類ビットとを具備することを特徴と
する命令キャッシュメモリ。
(2) When the bit length of one instruction is fixed, one entry in the instruction cache memory stores a tag section consisting of at least part of an address and a memory section that stores multiple instructions. An instruction cache memory comprising an instruction classification bit indicating the type of instruction for each instruction unit.
(3)1命令のビット長が固定されている場合に、命令
キャッシュメモリのひとつのエントリに少なくともアド
レスの一部分で構成されるタグ部と、複数個の命令を格
納するメモリ部と、格納されている各命令単位毎に命令
の種類を示す命令分類ビットとを具備し、メモリ部へ命
令を格納するときに前記命令分類ビットを生成すること
を特徴とする命令キャッシュメモリ。
(3) When the bit length of one instruction is fixed, one entry in the instruction cache memory stores a tag section consisting of at least a part of an address and a memory section that stores multiple instructions. An instruction cache memory comprising an instruction classification bit indicating a type of instruction for each instruction unit, and generating the instruction classification bit when storing an instruction in a memory section.
(4)複数個の命令を同時に並列処理できるマイクロプ
ロセッサにおいて、命令キャッシュメモリのひとつのエ
ントリに少なくともアドレスの一部分で構成されるタグ
部と、命令を格納するメモリ部と、格納されている命令
のうちの同時に並列処理される命令毎に命令の種類を示
す命令分類ビットとを具備することを特徴とする命令キ
ャッシュメモリ。
(4) In a microprocessor that can process multiple instructions simultaneously in parallel, one entry in the instruction cache memory includes a tag part consisting of at least a part of an address, a memory part for storing instructions, and a memory part for storing instructions. An instruction cache memory comprising an instruction classification bit indicating the type of instruction for each instruction that is simultaneously processed in parallel.
JP2089954A 1990-04-04 1990-04-04 Instruction cache memory Pending JPH03288246A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2089954A JPH03288246A (en) 1990-04-04 1990-04-04 Instruction cache memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2089954A JPH03288246A (en) 1990-04-04 1990-04-04 Instruction cache memory

Publications (1)

Publication Number Publication Date
JPH03288246A true JPH03288246A (en) 1991-12-18

Family

ID=13985090

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2089954A Pending JPH03288246A (en) 1990-04-04 1990-04-04 Instruction cache memory

Country Status (1)

Country Link
JP (1) JPH03288246A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7424598B2 (en) 1988-11-11 2008-09-09 Renesas Technology Corp. Data processor
EP4004745A4 (en) * 2019-07-31 2023-08-16 Micron Technology, Inc. Extended tags for speculative and normal executions
EP4004748A4 (en) * 2019-07-31 2023-08-16 Micron Technology, Inc. Cache with set associativity having data defined cache sets

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5788587A (en) * 1980-11-17 1982-06-02 Ibm Information processing system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5788587A (en) * 1980-11-17 1982-06-02 Ibm Information processing system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7424598B2 (en) 1988-11-11 2008-09-09 Renesas Technology Corp. Data processor
EP4004745A4 (en) * 2019-07-31 2023-08-16 Micron Technology, Inc. Extended tags for speculative and normal executions
EP4004748A4 (en) * 2019-07-31 2023-08-16 Micron Technology, Inc. Cache with set associativity having data defined cache sets
US12019555B2 (en) 2019-07-31 2024-06-25 Micron Technology, Inc. Cache with set associativity having data defined cache sets

Similar Documents

Publication Publication Date Title
US5559986A (en) Interleaved cache for multiple accesses per clock cycle in a microprocessor
US6356990B1 (en) Set-associative cache memory having a built-in set prediction array
US7073026B2 (en) Microprocessor including cache memory supporting multiple accesses per cycle
US5701430A (en) Cross-cache-line compounding algorithm for scism processors
US20060168393A1 (en) Apparatus and method for dependency tracking and register file bypass controls using a scannable register file
GB2292822A (en) Partitioned cache memory
US5479641A (en) Method and apparatus for overlapped timing of cache operations including reading and writing with parity checking
US7836253B2 (en) Cache memory having pipeline structure and method for controlling the same
US3984818A (en) Paging in hierarchical memory systems
EP3570286B1 (en) Apparatus for simultaneous read and precharge of a memory
US5450565A (en) Circuit and method for selecting a set in a set associative cache
US8898436B2 (en) Method and structure for solving the evil-twin problem
GB2293670A (en) Instruction cache
US5452427A (en) Data processing device for variable word length instruction system having short instruction execution time and small occupancy area
US5687353A (en) Merging data using a merge code from a look-up table and performing ECC generation on the merged data
US4949242A (en) Microcomputer capable of accessing continuous addresses for a short time
JP2003256275A (en) Bank conflict determination
US5854943A (en) Speed efficient cache output selector circuitry based on tag compare and data organization
US5420997A (en) Memory having concurrent read and writing from different addresses
US20080244224A1 (en) Scheduling a direct dependent instruction
US5197145A (en) Buffer storage system using parallel buffer storage units and move-out buffer registers
JPH03288246A (en) Instruction cache memory
JPH02304650A (en) Microprocessor of pipeline system
US5687350A (en) Protocol and system for performing line-fill address during copy-back operation
US20030065908A1 (en) Method and apparatus for increasing load bandwidth