JPH04237331A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JPH04237331A
JPH04237331A JP546991A JP546991A JPH04237331A JP H04237331 A JPH04237331 A JP H04237331A JP 546991 A JP546991 A JP 546991A JP 546991 A JP546991 A JP 546991A JP H04237331 A JPH04237331 A JP H04237331A
Authority
JP
Japan
Prior art keywords
instruction
cache
cache memory
memory
operation mode
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
JP546991A
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 JP546991A priority Critical patent/JPH04237331A/ja
Publication of JPH04237331A publication Critical patent/JPH04237331A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はマイクロプロセッサに関
し、特にキャッシュメモリを内蔵した例外,割込みの制
御を行うマイクロプロセッサに関する。
【0002】
【従来の技術】半導体技術の進歩により、高性能マイク
ロプロセッサを実現する基盤技術が揃うようになってき
ている。
【0003】高性能マイクロプロセッサを実現するとき
に重要となる設計手法に ・パイプライン処理 ・ストリームライン処理 ・キャッシュメモリ がある。
【0004】パイプライン処理とは、 ・命令の実行を複数のステージに分割する・各々のステ
ージを担当する別個のハードウェアユニットを用意する ・命令実行を流れ作業的に行う という特徴を有し、高い性能を達成するための方式であ
る。さらにこのとき、 ・パイプラインが乱れないように各命令機能が十分にシ
ンプルである ・各命令機能が直接ハードウェアにより単一マシンサイ
クルで実行されるという場合に「ストリームライン処理
」と呼ぶ。流れ作業が途絶えないようにパイプラインお
よび命令機能を設計することで、ハードウェアを100
%近い効率で実行させる考えである。ここで、単一マシ
ンサイクルで実行できる命令を持つことは必ずしも簡単
な命令のみをハードウェア化しているわけではない。 単一マシンサイクルで実行できるものの、それに伴う内
部処理が複雑な場合もある。
【0005】パイプライン処理で解決しなければならな
い問題の一つに、分岐系命令の処理がある。分岐系命令
は ・プログラム実行のうち15%から30%ほどを占める
こと ・パイプラインの動作を乱すこと が昔から知られている。パイプライン処理は命令を逐次
的に実行する場合に威力を発揮しハードウェア資源を1
00%近い効率で使うことができるが、分岐系命令が頻
出するようなプログラムでは分岐のためにパイプライン
に空きができ、性能を十分に発揮することができない。
【0006】そこで、ユーザが独立にプログラムができ
るように分岐系命令処理ユニットを分離し、命令フォー
マットの中に独立のフィールドを設けることで、分岐系
命令の処理を高速化することが考えられた。すなわち、
・演算系命令の処理ユニット ・ロード/ストア命令のユニット ・分岐系命令の処理ユニット の並列処理である。従来までは演算系命令の処理ユニッ
トとロード/ストアのユニットの並列処理は実現されて
いる。専用の分岐系処理ユニット追加により・命令キャ
ッシュとのハードウェアの一体化を図れる・分岐系命令
のデコードを速く行える ・分岐先のアドレス計算および命令キャッシュへのアク
セスを速く行える という利点がある。
【0007】以上に述べた、 ・ストリームライン処理 ・分岐系命令の処理ユニットと演算/ロード/ストアの
ユニットの並列処理を特徴とするマイクロプロセッサを
Streamlined  Parallel−Pro
cessor  Architecture、略してs
upraシステムと呼ぶことにする。
【0008】supraシステムが命令を実行していく
ためには、各マシンサイクル毎に命令をプロセッサに供
給しなければならない。通常、コンピュータシステムで
は命令実行はかなり局所性の高い振舞いをすることが知
られている。キャッシュメモリの使用により、速度の速
い主記憶を有さずとも、小量の高速メモリによりこれを
実現することができる。すなわち、小容量の高速メモリ
をチップ内に持つことにより、速度の遅い主記憶と高速
のプロセッサの速度の差を吸収する。
【0009】また、キャッシュメモリを・命令キャッシ
ュメモリ ・データキャッシュメモリ に二分割することで、 ・分岐の制御などをシンプルにできる ・キャッシュメモリへのバスバンド幅を実質的に二倍に
できるという利点がある。すなわち、階層的記憶システ
ムの導入によりハードウェアの簡単化と、CPUを遊休
させることなく命令実行を行わせることができる。
【0010】キャッシュメモリは、パイプラインが流れ
作業的に処理を継続するためには欠かせないものである
ことは既に述べた。キャッシュメモリは最近使われたデ
ータを保持するためのものであるから、使用したことの
ないデータへのアクセスを行おうとするとキャッシュメ
モリ内には存在しない状態が発生する。これをキャッシ
ュミスと言う。
【0011】キャッシュミスが起こると、該当するデー
タを含むメモリ内のブロックをキャッシュメモリにロー
ドする。キャッシュミスはパイプラインを乱すために、
パイプライン構造では特に注意が必要である。キャッシ
ュミスが発生したならばパイプライン動作を停止させる
。ここで、命令キャッシュメモリとデータキャッシュメ
モリは1クロックでアクセスできるものとしている。 このときキャッシュメモリアクセスがキャッシュミスに
なったかどうかはクロックの後半に判断ができる。なお
、supraシステムでは命令キャッシュメモリのミス
とデータキャッシュメモリのミスが同時に発生する可能
性がある。
【0012】キャッシュミスの処理は通常ハードウェア
による制御が中心である。しかしストリームライン処理
を基本とするCPUに内蔵するキャッシュメモリの制御
を考えるならば、特別なハードウェアユニットによりキ
ャッシュミスの制御をおこなわずに、ソフトウェアによ
る入替え制御を実現することが考えられた。キャッシュ
ミスが発生したときには、 ・命令実行を停止させる、 ・ミスしたキャッシュメモリのブロックを主メモリから
ロードする必要がある。命令実行は停止するわけである
から、その間、命令実行を行うハードウェアユニットの
資源は空くことになるので、この資源を利用してキャッ
シュミスを起こしたブロックの入替えを行うこととする
。このようにすればキャッシュミスを担当する専用ハー
ドウェアなしにキャッシュブロックの入替えができるこ
とになり、ハードウェア資源の節約が出来る。
【0013】ソフトウェアによる入替えを実現するには
、次の考慮が必要である。
【0014】・キャッシュミスが発生したとき、ただち
に処理ルーチンに分岐できること ・そのソフトウェアルーチン自身がキャッシュミスとな
らないこと ・ソフトウェアからキャッシュメモリが通常のメモリの
ようにアクセスできることこれらを実現するための手法
として、 ・パイプライン処理において、キャッシュミスが発生し
たときに現在の命令の実行を止めずに、その命令を終了
させる。具体的には演算やアクセスは行わせるがその結
果をレジスタ/メモリに書き込みを行わずに結果を捨て
る。次に実行すべき命令のアドレスを、通常のアドレス
ではなくキャッシュミスを処理する専用ルーチンに強制
的に変更し、そのアドレスに分岐する。
【0015】・命令キャッシュの一部を追出し不可能な
ブロックとして定義し、あたかもそこを「マイクロコー
ドROM」として使用できるようにする。キャッシュミ
スの処理ルーチンをそこに常駐させる。ROMであって
もRAMであってもかまわない。
【0016】・キャッシュメモリにアドレスを付加する
。という機能を採用する。
【0017】次に本発明の対象であるシングルステップ
動作制御方式について述べる。
【0018】シングルステップ動作とは、一命令を実行
するたびにトラップを起こす機能のことを言う。シング
ルステップ動作はソフトウェアをデバッグするときに、
命令の実行の順序を一命令ごとにトレースすることがで
きるようになるため、プログラムの間違いを容易に検出
できる。通常シングルステップ動作でトラップを起こし
た場合には、デバガへのエントリポイントへと分岐する
【0019】上述のsupraシステムにおいては、シ
ングルステップ動作を実現するための余分なハードウェ
アを使用することなくシングルステップ動作を実現する
ことが考えられた。
【0020】シングルステップ動作では、各命令を実行
し終わったときにトラップを発生する。この機能は、あ
る命令を実行し終わり次の命令を実行しようとしたとき
にその命令がキャッシュメモリにないという状態により
機能を実現できる。命令キャッシュメモリのミスとなり
、上記のようなキャッシュミス制御方式を採用し、命令
キャッシュメモリ内にキャッシュミス処理ルーチンを内
蔵するならば、キャッシュミスが発生した時点において
、シングルステップ動作モードかどうかをキャッシュミ
ス制御ルーチンが判断し、もしシングルステップ動作モ
ードであればトラップし、該当するルーチンへ分岐する
機能により、動作を実現できる。
【0021】
【発明が解決しようとする課題】上述のマイクロプロセ
ッサにおいては、シングルステップ動作を実現するため
の余分なハードウェアを使用することなくシングルステ
ップ動作を実現することが考えられ、このシングルステ
ップ動作では、各命令を実行し終わったときにトラップ
を発生するが、この機能は、ある命令を実行し終わり次
の命令を実行しようとしたときにその命令がキャッシュ
メモリにないという状態により機能を実現できる。命令
キャッシュメモリのミスとなり、上記のようなキャッシ
ュミス制御方式を採用し、命令キャッシュメモリ内にキ
ャッシュミス処理ルーチンを内蔵するならば、キャッシ
ュミスが発生した時点において、シングルステップ動作
モードかどうかをキャッシュミス制御ルーチンが判断し
、もしシングルステップ動作モードであればトラップし
、該当するルーチンへ分岐する機能により、動作を実現
できるもとの考えられるが、この機能を実現するために
は、シングルステップ動作かどうかを示すレジスタを用
意しなければならない。しかしながら、従来のマイクロ
プロセッサは、このようなレジスタを含むハードウェア
を使用しないで実現することを考えていたので、その実
現が困難であった。
【0022】
【課題を解決するための手段】本発明のマイクロプロセ
ッサは、パイプライン処理を行ないキャッシュメモリを
内蔵する中央処理装置を有し、前記キャッシュメモリは
命令キャッシュメモリとデータキャッシュメモリとにわ
かれ、前記キャッシュメモリにアドレスを付加し、キャ
ッシュミスが発生した場合に、このキャッシュミスを発
生させた該当命令の実行をいったん終了させるために書
込みのみをアボートし、前記キャッシュミスが発生した
ブロックを外部メモリからロードすることを機械語プロ
グラムにより行なうために、そのプログラムを命令キャ
ッシュメモリ内に常駐させ、次に実行すべき命令のアド
レスを、通常のアドレスではなく前記キャッシュミスを
処理する専用ルーチンに変更してそのアドレスに分岐す
る機能を持ち、シングルステップ動作モードかどうかを
指定するレジスタを持ち、前記シングルステップ動作モ
ードであれば前記命令キャッシュメモリを使用不可とし
、各命令の実行において発生するキャッシュミスで起動
される前記機械語プログラムで、前記シングルステップ
動作モードかどうかを前記レジスタを参照し、次に実行
すべき命令のアドレスを前記シングルステップ処理ルー
チンへと変更して分岐するようにして構成される。
【0023】
【実施例】次に本発明の実施例について図面を参照して
説明する。
【0024】図1は本発明の第1の実施例のシングルス
テップ動作制御方式を適用した中央処理装置の主要部を
示す構成図である。
【0025】中央処理装置はパイプライン処理構造をと
っており、命令フェッチおよび分岐を制御する分岐制御
ユニット101、命令をデコードする命令デコードユニ
ット102、命令を実行する演算器(ALU)などを保
持する命令実行ユニット103、命令がメモリとのロー
ド/ストア命令だった場合にオペランドアドレス計算お
よびメモリアクセスを担当するメモリアクセスユニット
104、それらのユニットが参照するマルチポートの汎
用レジスタのファイル105、からなる。
【0026】キャッシュメモリとしては命令キャッシュ
メモリ106、データキャッシュメモリ107、そして
、それらが主記憶とインタフェースするための制御回路
である、命令バスインタフェース108、データバスイ
ンタフェース109、からなる。
【0027】キャッシュメモリからのキャッシュミスは
キャッシュミス通知信号110を通じて行われる。
【0028】図2はこのパイプライン構造による命令実
行の様子を示したものである。
【0029】命令は命令キャッシュ106からフェッチ
される。その後、フェッチされた命令コードは、命令デ
コードユニット102と命令実行ユニット103、メモ
リアクセスユニット104、分岐制御ユニット101、
に同時に送られる。
【0030】その後、演算系命令だったとき、命令デコ
ードユニット102と命令実行ユニット103は、オペ
ランドとなるデータを汎用レジスタファイル105から
読み出し、命令実行ユニット103にあるALUなどを
用いて演算を行い、その結果を汎用レジスタファイル1
05に書き込む。また、ロード/ストア命令だったとき
、メモリアクセスユニット104は、オペランドアドレ
スを指定するレジスタを汎用レジスタファイル105か
ら読み出し、ストア命令のときはオペランドとなるデー
タとともにデータキャッシュ107に書き込み、ロード
命令であればデータキャッシュ107をアクセスし、そ
の結果を汎用レジスタファイル105に書き込む。
【0031】更に、分岐系命令だったとき、分岐制御ユ
ニット101は分岐先アドレスとなる実行アドレス(E
A)を計算し、命令キャッシュ106をアクセスする。 このように、命令種類にしたがって処理が行われる。
【0032】命令実行は、命令1,命令2,命令3,と
パイプライン的に重ね合わされて実行される。
【0033】ここで命令キャッシュメモリ106へのア
クセスがキャッシュミスになった場合を考える。図3に
そのときのタイミングを示す。命令2をフェッチしよう
としたときにキャッシュメモリアクセスがミスした場合
を示している。このとき、・命令キャッシュから出力さ
れるデータを、命令2として実行させる・しかしその命
令コード自身は命令2として実行する命令とは異なった
ものなので、命令実行から生れる結果、たとえばメモリ
へのロード/ストアや演算結果のレジスタへの書き戻し
はアボートさせる。
【0034】・キャッシュミスの信号は分岐制御ユニッ
ト101への入力となるので、分岐制御ユニットはキャ
ッシュミスを処理するルーチンへの分岐命令を強制的に
命令3として与える。このとき、アボートした命令のア
ドレスを、後の命令再実行に備えて特別なレジスタに保
存しておく・キャッシュミスを処理するルーチン自身は
命令キャッシュメモリのなかに保持しておく。しかしそ
れらはキャッシュされたデータとしてキャッシュメモリ
から追出さされることはなく、キャッシュのなかに常駐
している。ある種のROMであると考えると「マイクロ
コード」としえ取り扱えるように制御する。
【0035】さて、シングルステップ動作かどうかを示
すレジスタがレジスタ112である。このレジスタ内の
値によりシングルステップ動作モードかどうかが示され
る。まず、シングルステップ動作モードであると指定さ
れたときには、キャッシュミス信号110に常時キャッ
シュミスであることがアサートされる。これにより各命
令を実行するときに次の命令はキャッシュミスとなる。
【0036】これによりキャッシュミスを処理するルー
チンに制御が移るため、そのルーチンではシングルステ
ップ動作モードレジスタ112を参照して、シングルス
テップ動作モードであることを確認して適当なシングル
ステップ処理ルーチンへと制御を移す。
【0037】なお、シングルステップ処理ルーチンの内
部ではシングルステップ動作を行なってはならないので
、シングルステップ処理ルーチンに制御を移すときには
このシングルステップ動作モードレジスタ112をクリ
アしなければならない。
【0038】次に本発明の第2の実施例について図面を
参照して説明する。
【0039】図4は本発明の第2の実施例であるシング
ルアクセス動作制御方式を適用した中央処理装置の主要
部を示す構成図である。この第2の実施例ではデータへ
のアクセスのたび毎にトラップを起こす方式について考
慮する。命令の実行のたびごとにトラップを発生させる
方式をシングルステップ動作と言うことは既に述べたと
おりである。これをデータのアクセスに対して同様な定
義をすることができる。これはデータのアクセスのたび
毎にトラップを起こすことでソフトウェアのデバグを行
なう機能である。シングルアクセス動作と呼ぶ。
【0040】シングルアクセス動作では、シングルステ
ップ動作で命令キャッシュメモリへのアクセスをキャッ
シュミスとしていた方式を応用し、データキャッシュメ
モリへのアクセスをすべてキャッシュミスとして取扱う
【0041】図4の大半の部分は、第1の実施例と同じ
であり、唯一異なっているのは、シングルアクセス動作
を指定するレジスタ(113)がデータキャッシュメモ
リ107a側に付加されていることである。命令キャッ
シュメモリ106に対するシングルステップ動作モード
レジスタ112と同じ機能を、データキャッシュメモリ
7aに対してシングルアクセス動作モードレジスタ11
3が制御する。
【0042】制御の方式等についても第1の実施例と同
じである。唯一ことなっている点は命令キャッシュメモ
リ106に対する動作をデータキャッシュメモリ107
aに対して行なう点である。
【0043】
【発明の効果】以上説明したように本発明は、シングル
ステップ動作かどうかを示すレジスタを設けた構成とす
ることにより、シングルステップ動作モードにおける処
理機能を容易に実現することができる効果がある。
【図面の簡単な説明】
【図1】本発明の第1の実施例を示すブロック図である
【図2】図1に示された実施例の命令実行動作を説明す
るためのタイミング図である。
【図3】図1に示された実施例のキャッシュミスが発生
したときの動作を説明するためのタイミング図である。
【図4】本発明の第2の実施例を示すブロック図である
【符号の説明】
101,101a    分岐制御ユニット102  
  命令デコードユニット 103    命令実行ユニット 104    メモリアクセスユニット105    
汎用レジスタ 106    命令キャッシュメモリ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】  パイプライン処理を行ないキャッシュ
    メモリを内蔵する中央処理装置を有し、前記キャッシュ
    メモリは命令キャッシュメモリとデータキャッシュメモ
    リとにわかれ、前記キャッシュメモリにアドレスを付加
    し、キャッシュミスが発生した場合に、このキャッシュ
    ミスを発生させた該当命令の実行をいったん終了させる
    ために書込みのみをアボートし、前記キャッシュミスが
    発生したブロックを外部メモリからロードすることを機
    械語プログラムにより行なうために、そのプログラムを
    命令キャッシュメモリ内に常駐させ、次に実行すべき命
    令のアドレスを、通常のアドレスではなく前記キャッシ
    ュミスを処理する専用ルーチンに変更してそのアドレス
    に分岐する機能を持ち、シングルステップ動作モードか
    どうかを指定するレジスタを持ち、前記シングルステッ
    プ動作モードであれば前記命令キャッシュメモリを使用
    不可とし、各命令の実行において発生するキャッシュミ
    スで起動される前記機械語プログラムで、前記シングル
    ステップ動作モードかどうかを前記レジスタを参照し、
    次に実行すべき命令のアドレスを前記シングルステップ
    処理ルーチンへと変更して分岐するようにしたことを特
    徴とするマイクロプロセッサ。
  2. 【請求項2】  シングルステップ動作モードかどうか
    を指定するレジスタの内容を、データキャッシュメモリ
    に対するシングルアクセス動作モードかどうかを指定す
    る内容とし、このレジスタの内容がシングルアクセス動
    作モードであれば前記データキャッシュメモリへのアク
    セスをすべてキャッシュミスとして扱うようにした請求
    項1記載のマイクロプロセッサ。
JP546991A 1991-01-22 1991-01-22 マイクロプロセッサ Pending JPH04237331A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP546991A JPH04237331A (ja) 1991-01-22 1991-01-22 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP546991A JPH04237331A (ja) 1991-01-22 1991-01-22 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH04237331A true JPH04237331A (ja) 1992-08-25

Family

ID=11612104

Family Applications (1)

Application Number Title Priority Date Filing Date
JP546991A Pending JPH04237331A (ja) 1991-01-22 1991-01-22 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH04237331A (ja)

Similar Documents

Publication Publication Date Title
US8539485B2 (en) Polling using reservation mechanism
US9626187B2 (en) Transactional memory system supporting unbroken suspended execution
US7689867B2 (en) Multiprocessor breakpoint
US7017029B2 (en) Coprocessor instruction loading from port register based on interrupt vector table indication
JP4990829B2 (ja) 指定されたメモリアクセスが発生するまでスレッドの実行をサスペンドする方法及び装置
JP3120152B2 (ja) コンピューターシステム
US7020871B2 (en) Breakpoint method for parallel hardware threads in multithreaded processor
US8473724B1 (en) Controlling operation of a processor according to execution mode of an instruction sequence
US4755966A (en) Bidirectional branch prediction and optimization
US20050273559A1 (en) Microprocessor architecture including unified cache debug unit
JP2002512399A (ja) 外部コプロセッサによりアクセス可能なコンテキストスイッチレジスタセットを備えたriscプロセッサ
JP2000029737A (ja) デバッグ機能のためのリアルタイム外部命令挿入を有するプロセッサ
CN111133418A (zh) 在例外屏蔽更新指令之后允许未中止的事务处理
US11789742B2 (en) Pipeline protection for CPUs with save and restore of intermediate results
JPH06309178A (ja) 割込処理コードによって割込みを処理するための方法およびコンピュータシステム
US6983359B2 (en) Processor and method for pre-fetching out-of-order instructions
JPH08234981A (ja) 非プログラム順序実行スーパスカラ・マルチプロセッサにおける効率的確定一貫性サポート機構
US5761492A (en) Method and apparatus for uniform and efficient handling of multiple precise events in a processor by including event commands in the instruction set
US5737562A (en) CPU pipeline having queuing stage to facilitate branch instructions
Kawano et al. Fine-grain multi-thread processor architecture for massively parallel processing
JP3146058B2 (ja) 並列処理型プロセッサシステムおよび並列処理型プロセッサシステムの制御方法
JP2003263313A (ja) デジタルプロセッサおよび命令の選択方法
US6988121B1 (en) Efficient implementation of multiprecision arithmetic
US10901747B2 (en) Unified store buffer
JP2710994B2 (ja) データ処理装置