JPH03121546A - キャッシュメモリ内蔵マイクロプロセッサ - Google Patents

キャッシュメモリ内蔵マイクロプロセッサ

Info

Publication number
JPH03121546A
JPH03121546A JP1260420A JP26042089A JPH03121546A JP H03121546 A JPH03121546 A JP H03121546A JP 1260420 A JP1260420 A JP 1260420A JP 26042089 A JP26042089 A JP 26042089A JP H03121546 A JPH03121546 A JP H03121546A
Authority
JP
Japan
Prior art keywords
instruction
cache
cache memory
processing
cache miss
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
JP1260420A
Other languages
English (en)
Inventor
Yoichi Yano
矢野 陽一
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP1260420A priority Critical patent/JPH03121546A/ja
Publication of JPH03121546A publication Critical patent/JPH03121546A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はキャッシュメモリ内蔵マイクロプロセッサに関
し、特にパイプライン処理機能を有するキャッシュメモ
リ内蔵マイクロコンピュータに関する。
〔従来の技術〕
半導体技術の進歩により、高性能マイクロプロセッサを
実現する基板技術が揃うようになってきている。
高性能マイクロプロセッサを実現するときに重要となる
技術に ・パイプライン処理 ・ストリームライン処理 ・キャッシュメモリ がある。
パイプライン処理とは、 ・命令の実行を複数のステージに分割する・各々のステ
ージを担当する別個のハードウェアユニットを用意する ・命令実行を流れ作業的に行う という特徴を有し、高い性能を達成するための方式であ
る。
さらにこれらに ・パイプラインが乱−れないように各命令機能が十分に
シンプルである ・各命令機能が直接ハードウェアにより単一マシンサイ
クルで実行される という特徴を付加した場合にrストリームライン処理1
と呼ぶ。流れ作業が途絶えないようにパイプラインおよ
び命令機能を設計することで、ハードウェアを100%
近い効率で実行させる考えである。
ここで、単一マシンサイクルで実行できる命令を持つこ
とは必ずしも簡単な命令のみをハードウェア化している
わけではない。単一マシンサイクルで実行できるものの
、それに伴う内部処理が複。
雑な場合もある。
パイプライン処理で解決しなければならない問題の一つ
に、分岐系命令の処理がある。
分岐系命令は、 ・プログラム実行のうち15%から30%はどを占める
こと ・パイプラインの動作を乱すこと が昔から知られている。
パイプライン処理は命令を逐次的に実行する場合に威力
を発揮しハードウェア資源を100%近い効率で使うこ
とができるが、分岐系命令が頻出するようなプログラム
では分岐のためにパイプラインに空きができ、性能を十
分に発揮することができない。
そこで、ユーザが独立にプログラムできるように分岐系
命令処理ユニットを分離し、命令フォーマットの中に独
立のフィールドを設けることで、分岐系命令の処理を高
速化することが考えられた。すなわち、 ・演算系命令の処理ユニット ・ロード/ストア命令のユニット ・分岐系命令の処理ユニット の並列処理である。従来までは演算系命令の処理ユニッ
トとロード/ストア命令のユニットの並列処理は実現さ
れている。専用の分岐系処理ユニットの追加により、 ・命令キャッシュメモリとのハードウェアの一体化を図
れる ・分岐系命令のデコードを速く行える ・分岐先のアドレス計算および命令キャッシュへのアク
セスを速く行える という利点がある。
以上に述べた、 ・ストリームライン処理 ・分岐系命令の処理ユニットと演算系命令の処理ユニッ
ト、ロード/ストアのユニットの並列処理 を特徴とするマイクロプロセッサをストリームラインド
 パラレルプロセッサ アーキテクチャ−(Strea
mlined Parallel−Processor
  Archite、−cture)、略して5upr
aシステムと呼ぶことにする。
5upraシステムが命令を実行していくためには、各
マシンサイクル毎に命令をプロセッサに供給しなければ
ならない0通常、コンピュータシステムでは命令実行は
かなり局所性の高い振舞いをすることが知られている。
キャッシュメモリの使用により、速度の速い主記憶部を
有さずとも、少量の高速メモリによりこれを実現するこ
とができる。すなわち、小容量の高速メモリをチップ内
に持つことにより、速度の遅い主記憶部と高速のプロセ
ッサの速度の差を吸収する。
また、キャッシュメモリを、 ・命令キャッシュ ・データキャッシュ に二分割することで、 ・分岐の制御などをシンプルにできる ・キャッシュメモリへのバスバンド幅を実質的に二倍に
できる という利点がある。すなわち、階層的記憶システムの導
入によりハードウェアの簡単化と、CPUを遊休させる
ことなく命令実行を行わせることができる。
次に、本発明の対象となるキャッシュメモリの制御につ
いて説明する。
キャッシュメモリは、パイプラインが流れ作業的に処理
を継続するためには欠がせないものであることは既に述
べた。キャッシュメモリは最近使われたデータを保持す
るためのものであるから、使用したことのないデータへ
のアクセスを行おうとするとキャッシュメモリ内には存
在しない状態が発生する。これをキャッシュミスと言う
キャッシュミスが起こると、該当するデータを含む主記
憶部内のブロックをキャッシュメモリにロードする。キ
ャッシュミスはパイプライン処理を乱すために、パイプ
ライン構造では特に注意が必要である。キャッシュミス
が発生したならばパイプライン動作を停止させる。
第4図にパイプライン動作のタイミングチャートを示す
。ここで、命令キャッシュメモリとデータキャッシュメ
モリに対しては1クロツクサイクル、1マシンサイクル
でアクセスできるものとしている。このときキャッシュ
アクセスがキャッシュミスになったかどうかはクロック
の後半に判断ができる。なお、5upraシステムでは
命令キャッシュのミスとデータキャッシュのミスが同時
に発生する可能性がある。
キャッシュミスの処理は、通常専用のハードウェアによ
る制御が中心となっていた。キャッシュミスが発生する
とこのハードウェアが動作し、命令実行を停止させ、ミ
スしたキャッシュメモリのブロックを主記憶部からロー
ドする。
〔発明が解決しようとする課題〕
上述した従来のキャッシュメモリ内蔵マイクロプロセッ
サは、キャッシュミスの制御が主に専用のハードウェア
により行なわれ、キャッシュミスの発生時には命令実行
の停止、キャッシュメモリのブロックの入替え等を行う
構成となっているので、パイプライン処理におけるハー
ドウェア資源の遊休部分が生じハードウェア資源の使用
効率が低下するという欠点がある。
本発明の目的は、ハードウェア資源の使用効率の向上及
びハードウェア資源の節減をはかることができるキャッ
シュメモリ内蔵マイクロプロセツアを提供することにあ
る。
〔課題を解決するための手段〕
本発明のキャッシュメモリ内蔵マイクロプロセッサは、
特定のアドレスをもちこの特定のアドレスにキャッシュ
ミスを処理するための専用プログラムが常駐するキャッ
シュメモリと、キャッシュミスが発生したとき前記特定
のアドレスをアクセスすると共に、前記キャッシュミス
が発生した命令の少なくとも実行結果の出力を停止しか
つこの命令のアドレスを保存する中央処理部とを有して
いる。
〔作用〕
キャッシュミスの制御に専用のハードウェアを使用しな
いでソフトウェアにより実現するためには、次の点を考
慮する必要がある。
・キャッシュミスが発生したとき、ただちにキャッシュ
ミス処理ルーチンに分岐できること・そのソフトウェア
ル−チン自身がキャッシュミスとならないこと ・ソフトウェアからキャッシュメモリが通常のメモリの
ようにアクセスできること そこで本発明においてこれらを実現するために、 ・パイプライン処理において、キャッシュミスが発生し
たときに現在の命令の実行を止めずに、その命令を終了
させる。具体的には演算やアクセスは行わせるがその結
果をレジスタ/メモリに書き込みを行わずに結果を捨て
る。次に実行すべき命令のアドレスを、通常のアドレス
ではなくキャッシュミスを処理する専用ルーチンに強制
的に変更し、そのアドレスに分岐する。
・命令キャッシュメモリの一部を追出し不可能なブロッ
クとして定義し、あたかもそこをrマイクロコードRO
MJとして使用できるようにする。キャッシュミス処理
ルーチンをそこに常駐させる。ROMであってもRAM
であってもかまわない。
・このブロックに特定のアドレスを付加する。
という手法を採用した。
〔実施例〕
次に、本発明の実施例について図面を参照して説明する
第1図は本発明の第1の実施例を示すブロック図である
キャッシュメモリ1は、 ・命令キャッシュメモリ11、 ・データキャッシュメモリ12、 そして、これらが主記憶とインターフェースするための
制御回路である、 ・命令バスインターフェース13、 ・データバスインターフェース14、 からなる。
中央処理部2はパイプライン処理構造をとっており、 ・命令フェッチおよび分岐を制御する分岐制御ユニット
21、 ・命令をデコードする命令デコードユニット2、 ・命令を実行する演算器(ALU)などを保持する命令
実行ユニット23、 ・命令がメモリとのロード/ストア命令だった場合にオ
ペランドアドレス計算およびメモリアクセスを担当する
メモリアクセスユニット24、・これらのユニットが参
照するマルチボートの汎用レジスタのファイル25、 からなる。
キャッシュメモリ1からのキャッシュミスは、キャッシ
ュミス通知信号CMMを通じて行なわれる。
次に、この実施例の動作について説明する。
第2図はこの実施例のパイプライン構造による命令実行
の様子を示すタイミング図である。
命令は命令キャッシュメモリ11がらフェッチされる。
その後、フェッチされた命令コードは、・命令デコード
ユニット22と命令実行ユニット23 ・メモリアクセスユニット24 ・分岐制御ユニット21 に同時に送られる。その後、 ・演算系命令だったとき、 ・命令デコードユニット22と命令実行ユニット23は
、オペランドとなるデータを汎用レジスタファイル25
から読み出し、 ・命令実行ユニット23にあるALUなどを用いて演算
を行い、 ・その結果を汎用レジスタファイル25に書き込む。
・ロード/ストア命令だったとき、 ・メモリアクセスユニット24は、オペランドアドレス
を指定するレジスタを汎用レジスタファイル25から読
み出し、 ・ストア命令のときはオペランドとなるデータとともに
データキャッシュメモリ12に書き込み、 ・ロード命令であればデータキャッシュメモリ12をア
クセスし、その結果を汎用レジスタファイル25に書き
込む。
・分岐系命令だったとき、 ・分岐制御ユニット21は分岐先アドレスとなる実行ア
ドレス(EA)を計算し、 ・命令キャッシュメモリ11をアクセスする。
というように、命令の種類にしたがって処理が行われる
命令実行は、命令A、命令B、命令Cとパイプライン的
に重ね合わされて実行される。
次に、命令キャッシュメモリ11へのアクセスがキャッ
シュミスになった場合を考える。
第2図は、命令Bをフェッチしようとしたときにキャッ
シュアクセスがミスした場合を示している。このとき、 ・命令キャッシュメモリ11から出力されるデータを命
令Bとして実行させる。
・しかしこの命令コード自身は命令Bとして実行する命
令とは異なったものなので、命令実行から生れる結果、
たとえばメモリへのロード/ストアや演算結果のレジス
タへの書き戻しは停止させる。
・キャッシュミス通知信号CMMは分岐制御ユニット2
1へ入力され、分岐制御ユニット21はキャッシュミス
処理ルーチンへの分岐命令を強制的に命令3として与え
る。このとき、停止した命令Bのアドレスを、後の命令
再実行に備えて特別なレジスタに保存しておく。
・キャッシュミス処理ルーチン自身は命令キャッシュメ
モリ11のなかに保持しておく、シかしこれらはキャッ
シュされたデータとしてキャッシュメモリ1から追出さ
れることはなく、命令キャッシュメモリ11のなかに常
駐している。ある種のROMであると考えるとrマイク
ロコード」として取り扱える。
と制御する。
このように、キャッシュミスを処理する機能を分岐制御
ユニット21等に持たせ、キャッシュメモリ1にキャッ
シュミス処理ルーチンを常駐させることにより、ハード
ウェア資源の使用効率を高め、キャッシュミス処理専用
のハードウェアが不用となる。
第3図は本発明の第2の実施例を示すブロック図である
この実施例が第1図に示された実施例と相違する点は、
データキャッシュメモリ12Aのミスの処理のためにキ
ャッシュメモリ通知信号CMM2を追加した点である。
この場合の処理のながれも、第1の実施例とほとんど同
じである。唯−異なっている処理は、キャッシュミス通
知信号CMM1による命令キャッシュメモリ11のミス
と、キャッシュミス通知信号CMM2によるデータキャ
ッシュメモリ12Aのミスを区別し、適切なキャッシュ
ブロックの入替えを行なうようにした点である。
〔発明の効果〕
以上説明したように本発明は、キャッシュミスを処理す
る機能を中央処理部の分岐制御ユニット等に分担させ、
キャッシュメモリにキャッシュミス処理ルーチンを常駐
させる構成とすることにより、ハードウェア資源の使用
効率を向上させることができ、かつハードウェア資源の
節減をはがることができる効果がある。
【図面の簡単な説明】
第1図は本発明の第1の実施例を示すブロック図、第2
図は第1図に示された実施例の動作を説明するための各
部の動作タイミング図、第3図は本発明の第2の実施例
を示すブロック図、第4図は従来のキャッシュメモリ内
蔵マイクロプロセッサの動作を説明するための中央処理
部各部の動作タイミング図である。 1、IA・・・キャッシュメモリ、2,2A・・・中央
処理部、11・・・命令キャッシュメモリ、12,12
A・・・データキャッシュメモリ、13・・・命令バス
インタフェース、14・・・データバスインタフェース
、21.21A・・・分岐制御ユニット、22・・・命
令デコーダ、23・・・命令実行ユニット、24・・・
メモリアクセスユニット、25・・・汎用レジスタファ
イル。

Claims (1)

    【特許請求の範囲】
  1. 特定のアドレスをもちこの特定のアドレスにキャッシュ
    ミスを処理するための専用プログラムが常駐するキャッ
    シュメモリと、キャッシュミスが発生したとき前記特定
    のアドレスをアクセスすると共に、前記キャッシュミス
    が発生した命令の少なくとも実行結果の出力を停止しか
    つこの命令のアドレスを保存する中央処理部とを有する
    ことを特徴とするキャッシュメモリ内蔵マイクロプロセ
    ッサ。
JP1260420A 1989-10-04 1989-10-04 キャッシュメモリ内蔵マイクロプロセッサ Pending JPH03121546A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1260420A JPH03121546A (ja) 1989-10-04 1989-10-04 キャッシュメモリ内蔵マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1260420A JPH03121546A (ja) 1989-10-04 1989-10-04 キャッシュメモリ内蔵マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH03121546A true JPH03121546A (ja) 1991-05-23

Family

ID=17347690

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1260420A Pending JPH03121546A (ja) 1989-10-04 1989-10-04 キャッシュメモリ内蔵マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH03121546A (ja)

Similar Documents

Publication Publication Date Title
EP1137984B1 (en) A multiple-thread processor for threaded software applications
US7490228B2 (en) Processor with register dirty bit tracking for efficient context switch
US6279100B1 (en) Local stall control method and structure in a microprocessor
Gaitan et al. CPU architecture based on a hardware scheduler and independent pipeline registers
US6343348B1 (en) Apparatus and method for optimizing die utilization and speed performance by register file splitting
JP2002512399A (ja) 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ
WO2000033183A9 (en) Method and structure for local stall control in a microprocessor
JPH10283203A (ja) マルチスレッド・プロセッサにおけるスレッド切換え待ち時間を減少させる方法および装置
US6374351B2 (en) Software branch prediction filtering for a microprocessor
US20030046517A1 (en) Apparatus to facilitate multithreading in a computer processor pipeline
US6625634B1 (en) Efficient implementation of multiprecision arithmetic
Kawano et al. Fine-grain multi-thread processor architecture for massively parallel processing
JP2005521937A (ja) コンピュータオペレーティングシステムにおけるコンテキスト切り替え方法及び装置
JPH03121546A (ja) キャッシュメモリ内蔵マイクロプロセッサ
JPH04156617A (ja) 割込み・例外制御方式
US11782719B2 (en) Reconfigurable multi-thread processor for simultaneous operations on split instructions and operands
JPH04237331A (ja) マイクロプロセッサ
JP2003196085A (ja) 情報処理装置
Anjam et al. A run-time task migration scheme for an adjustable issue-slots multi-core processor
JP3206394B2 (ja) 5段パイプライン構造のプログラマブルコントローラ
Jääskeläinen et al. Reducing the overheads of hardware acceleration through datapath integration
Oberg et al. Revolver: A high-performance mimd architecture for collision free computing
Anjam et al. On the Implementation of Traps for a Softcore VLIW Processor
EP1502250A1 (en) Memory access register file
JPH02211533A (ja) 分岐命令に続く命令の選択的実行を行うためのコンピューター装置