JPH01193938A - 命令先読み装置 - Google Patents

命令先読み装置

Info

Publication number
JPH01193938A
JPH01193938A JP1804888A JP1804888A JPH01193938A JP H01193938 A JPH01193938 A JP H01193938A JP 1804888 A JP1804888 A JP 1804888A JP 1804888 A JP1804888 A JP 1804888A JP H01193938 A JPH01193938 A JP H01193938A
Authority
JP
Japan
Prior art keywords
instruction
branch
branch destination
cache
instructions
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
JP1804888A
Other languages
English (en)
Inventor
Hidetsugu Maekawa
英嗣 前川
Masashi Deguchi
雅士 出口
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 JP1804888A priority Critical patent/JPH01193938A/ja
Publication of JPH01193938A publication Critical patent/JPH01193938A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 2 ベーン 本発明は、プロセッサで用いられる命令先読み装置に関
するものである。
従来の技術 命令の実行を複数のステージに分け、並行的に処理する
パイプライン方式のプロセッサにおいては、命令の実行
に先行した命令の先読み動作を行う。命令の読出しは通
常メインメモリから行われるが、近年、メインメモリと
プロセッサの間にキャッシュメモリを設け、高速な読出
し動作と、システムバスの効率的利用をはかるようにな
って来た〇 一方、命令の先読み動作はアドレス順に行なわれるため
、分岐時には、先読み効果は減少する。
そこで、種々の方法が考案されている。例えば、マルチ
ストリーム方式、分岐予測方式等である。
パイプライン方式のプロセッサでは、分岐の成立、不成
立が確定する以前に分岐先アドレスを計算することが可
能であるため、マルチストリーム方式は有効である。そ
の−例として、計算された分岐先アドレスを用いて、先
行的にキャソシュメモリ3 ベーン をアクセスし、ヒツトした場合には、その分岐先命令を
用意しておく方法がある。もし、分岐が成立した場合に
は、この命令を用いて、実行を再開すれば良いため、処
理効率の低下を低く抑えることができ、もし分岐が不成
立であった場合には、命令の先読み動作は、アドレス順
に行われるため、−殻内には、処理効率の低下は低く、
実行の再開はヌムーズであると考えられる。
従来の技術としては上記のようなマルチストリーム方式
の命令先読み装置が考えられている。
発明が解決しようとすm しかし、上記のような構成では、分岐先アドレスを用い
てキャッシュメモリをアクセスする場、必ずしもキャッ
シュメモリが読出し状態にあるとは限らない。すなわち
、キャッシュメモリが、アップデート中である場合が存
在する。この時には、キャッシュメモリへの書込みが終
了するまで、分岐先アドレスのフェッチは待たされる。
ところが、この時キャッシュメモリへ書き込まれる命令
は、命令がアドレス順に先読みされていることから、分
岐が不成立であった場合に使用される命令であるだめ、
この命令先読み装置では、分岐が不成立であった場合に
使用される命令のフェッチが著るしく優先されている。
このように、従来の命令先読み装置では、分岐が成立し
た場合に使用される命令と、分岐が不成立の場合に使用
される命令とのフェッチのバランスが著しく悪く、分岐
が成立した場合のオーバーヘッドが大きくなるという問
題点を有していた。
本発明はかかる点に鑑み、上記2つの場合の命令フェッ
チのバランスを良くシ、分岐時のオーバーヘッドを小さ
く出来る命令先読み装置を提供す本発明はキャッシュメ
モリと未解読命令の量を検出する検出装置とを備えた命
令先読み装置である0 作  用 本発明は前記した構成により、分岐先命令をキャッシュ
メモリを用いてフェッチする際、キャツ5、、−1・ シュメモリがアップデート状態にあった場合に、検出装
置が、未解読命令の量、すなわち分岐が不成立であった
場合に使用する命令の量を検出し、その情報にもとづき
、分岐先命令のフェッチを優先するようにすることで、
命令フェッチのバランスを良くし、分岐時のオーバーヘ
ッドを減少することができる。
実施例 第1図は本発明の実施例における命令先読み装置のブロ
ック図を示すものである。第1図において、1は先読み
すべき命令のアドレスを保持する命令アドレスカウンタ
、2は、分岐先のアドレスを一時的に保持する分岐先ア
ドレスレジスタである。3は命令アドレスカウンタ1お
よび、分岐先アドレスレジスタ2に保持しているアドレ
スを用いて高速に命令をフェッチする命令キャッシュ、
4は命令キャッシュ3の動作を制御するキャッシュ制御
装置である。5は、命令アドレスカウンタ1に保持して
いるアドレスを用いて命令キャッシュ3から読出された
命令を保持するFIFO形式の命令ハソファ、6は、分
岐先アドレスレジスタ2に保持しているアドレスを用い
て命令キャッシュ3から読出された命令を保持する分岐
先命令レジスタである。7は命令バッフ75に保持して
いる未解読命令の数を検出する命令数検出装置、8は命
令バッファ5と分岐先命令レジスタ6に保持している命
令のうちどちらを選択するかを決定するセレクタである
。9は命令を解読し、分岐先命令のアドレスを計算する
命令解読部である。10は、メインメモリ、11はシス
テムバスである。
第2図は、本発明の実施例における命令先読み装置の動
作を示すシーケンス図である。図において、CI、02
等は動作サイクル、n 、n+1等は命令アドレス、I
 (n)等は、アドレスn等に対応する命令である。1
は通常動作(後述)における命令キャッシュヒント時の
動作、2は命令キャッシュミスヒツト時の動作をそれぞ
れ示す。
第3図は、本発明の実施例における命令先読み装置の動
作を示すシーケンス図である。図において、Booは条
件分岐命令、mは分岐先アドレス、7 へ−/ 工(ホ)は分岐先命令である。他の記号は、第2図と同
様なだめ省略する。又、この図は分岐動作における分岐
先命令の先読み動作を示している。
第4図は、本発明の実施例における命令先読み装置の分
岐先命令フェッチと、命令キャッシュ3のアップデート
とが同サイクルに重なった場合の動作を示すシーケンス
図である。図において、命令数検出装置子の命令数が0
3サイクルで1命令であることを示している。他の記号
は第2図、第3図と同様であるため、省略する。本図に
おいては、命令キャッシュ3への書込み動作が優先され
た場合が示されている。
第5図は、本発明の実施例における命令先読み装置の分
岐先命令フェッチと、命令キャッシュ3のアップデート
とが同サイクルに重なった場合の動作を示すシーケンス
図である。図において、命令数検出装置7の命令数が、
C3サイクルにおいて3命令であることを示している。
他の記号は、第2図、第3図、第4図で使用したものと
同様であるだめ省略する。本図においては、分岐先命令
先読みが優先された場合が示されている。
第1図のように構成されたこの実施例の命令先読み装置
について以下その動作を説明する。この実施例の命令先
読み装置の動作は大きく分けて以下の2つに分けられる
(1)命令をアドレス順に先読みする通常動作、(2)
分岐命令を命令解読部9が解読した場合に、分岐の成立
または不成立が判定する以前に、分岐先命令の先読みを
行う分岐動作、 (2)の動作は、本命令先読み装置が、いわゆるマルチ
ヌトリーム方式の命令読出しを行うことを意味する。
まず、通常動作について、第2図を用いて説明する。
第2図の(1)は通常動作において命令キャッシュ3が
ヒツトしている場合、?)は命令キャッシュ3がミスヒ
ノ)している場合をそれぞれ示す◎まず通常動作(1)
の場合について説明する。
C1サイクル 命令アドレスカウンタ1内に保持しているアト9、−プ レス(n)を用いて、命令キャッシュ3をアクセスする
。命令キャッシュ3はこのアドレス(n)に対応する命
令があるためヒントし、その命令(I(n))を送出す
る。
C2サイクル C1サイクルで命令キャッシュ3より送出された命令(
I(n))を命令バッファ5に格納する0又、C1サイ
クルで命令キャッシュ3がヒツトしたため、命令アドレ
スカウンタ1内に保持しているアドレス(n)は歩進さ
れ、n+1になる。このアドレスを用いて、命令キャッ
シュ3をアクセスする0以下C1サイクルと同様である
C3サイクル以降は、CI、C2サイクルの動作を繰り
返し、第2図の(1)のように命令の先読み動作を行う
次に、通常動作(2)の場合について説明する。
、  C1サイクル 命令アドレスカウンタ1内に保持しているアドレス(n
) ヲ用いて、命令キャッシュ3をアクセスする。命令
キャッシュ3は、このアドレス(n)に対応10、−ゾ する命令が存在しないためミスヒツトし、同時にミスヒ
ツトしたことをキャッシュ制御装置4に通知する。
C2サイクル キャッシュ制御装置4は、C1サイクルにおいて命令キ
ャッシュ3がミスヒツトしたため、システムバス11を
獲得し、メインメモリ1oをアクセスするよう制御する
。又、命令キャッシュ3を書き込み状態にする。
C3サイクル バスサイクルである。システムバス11には、命令(I
(n))  が送出される。
C4サイクル キャッシュ制御装置4は、システムバス11に送出され
た命令(I(n))を命令キャッシュ3に書き込むよう
制御し、命令キャッシュ3はアップデートされる。
C5サイクル キャッシュ制御装置4は、命令キャッシュ3を読出し状
態にする。命令アドレスカウンタ1内に11 へ−ジ 保持しているアドレス(n)により、再度、命令キャッ
シュ3をアクセスするが、Cサイクルで命令キャッシュ
3がアップデートされたため、対応する命令(I(n)
 )が存在し、ヒツトする0同時に、命令キャッシュ3
は命令(I(n))を送出する。
C6サイクル 命令キャッシュ3から送出された命令(I(n))を命
令バッファ5に格納する。又、命令アドレスカウンタ1
が歩進され、n+1となシ、命令キャクユ3をアクセス
する。
以上が通常動作であり、命令キャッシュ3がヒツトする
かどうかに応じて、上記(1)、に))の動作を行いな
がら、命令の先読み動作を行う。
次に、分岐動作について、第3図、第4図、第5図を用
いて説明する。分岐動作では、分岐先命令を先読みする
がこのとき、命令キャッシュ3が、読出し状態にあるか
、書き込み状態にあるかで場合が分かれる。第3図は命
令キャッシュ3が読出し状態にある時で、第4図、第5
図は書き込み状態にある時である。
まず、命令キャッシュ3が読出し状態にある場合につい
て第3図を用いてその動作を説明するOC1サイクル、
C2サイクル 通常動作と同様であるため説明は省略する。
C3サイクル 読出し動作は通常動作と同様である。命令解読部9が条
件分岐命令を解読し、分岐先アドレス(ホ)を計算し、
分岐先アドレスレジスタ2に送出する0又、キャッシュ
制御装置4に分岐動作を行うべきことを通知する。
C4サイクル 分岐先アドレスレジヌタ2は分岐先アドレス(ホ)を格
納し、このアドレスを用いて命令キャッシュ3をアクセ
スする。この動作は、分岐動作中であるために、命令ア
ドレスカウンタ1に保持しているアドレスによるアクセ
スに優先して行われる0命令キヤツシユ3がヒツトし、
分岐先命令レジスタらへ命令(工(ホ))が送出される
C5サイクル 分岐先命令レジスタ6は、分岐先命令(工(ホ))を1
3 A−ノ 格納する。
Ceサイクル以下は、命令先読み動作は中断され、分岐
の成立または不成立が確定するのを待つ。
分岐が成立した場合には、分岐先アドレスレジヌタ2に
保持している分岐先アドレスを命令アドレスカウンタ1
に歩進した上で格納し、通常動作へ移行する。分岐が不
成立の場合は、命令アドレスカウンタ1に保持している
アドレスによシ、そのまま通常動作に移行すれば良い。
以上述べたようにこの実施例ではいわゆるマルチストリ
ーム方式で分岐先命令を1つ分用窓しているだめ、スム
ーズに分岐以降の動作を続けることが可能となっている
次に分岐先命令を先読みする際、命令キャッシュ3が書
き込み状態にある場合について、説明する。この場合に
は、命令数検出装置子が示す命令バッファ5に残ってい
る命令数の情報により、命令キャッシュ3のアップデー
トを優先するか読出し状態にして分岐先命令のフェッチ
を優先するかを動的に制御する。前者が第4図に、後者
が第514 ページ 図に示しである。なお、命令バッファ5内に残っている
命令は分岐が不成立の場合に使用する命令である。
まず、第4図を用いて、アップデートを優先する場合に
ついて説明する。大まかな動作は第3図と同様であるた
め、要点だけを説明するOC3サイクル 命令数検出装置7が、命令バッファ5内に残っている命
令数(分岐が不成立であった場合に使用する命令)を検
出する。この場合は1命令であったO C4サイクル キャッシュ制御装置4は、命令数検出装置子からの情報
により、分岐が不成立であった場合に使用する命令数が
1命令しかないため、命令キャッシュ3へのアップデー
トを優先させると判断し、分岐先命令の読出しを禁止し
、命令キャッシュ3をアンプデートする。この時アップ
デートした命令は分岐が不成立であった場合に使用する
命令であることは命令の先読みがアドレス順に行われる
15、−ノ ことがら明らかであるO C5サイクル キャッシュ制御装置4は命令キャッシュ3を読出し状態
にし、分岐先命令のフェッチをする0今の場合、キャッ
シュはヒツトする。
C6サイクル 分岐先命令レジスタeに分岐先命令I(ホ)を格納する
このように命令バッフ15内に残っている命令数が少な
い場合には、分岐が不成立であった場合の性能低下を防
ぐために命令キャッシュ3へのアップデートを優先する
次に第6図を用いて、分岐先命令の先読みを優先させる
場合について説明する。
C3サイクル 命令数検出装置子は、命令バッファ5に残っている命令
数が3命令であることを検出する。
C4サイクル キャッシュ制御装置4は、命令数検出装置7からの情報
によシ、分岐が不成立であった場合に使用する命令数が
3命令であるため、分岐先命令の読出しを優先させるべ
きであると判断し、命令キャッシュ3のアップデートを
禁止し、分岐先命令の読出しを行うために命令キャッシ
ュ3を読出し状態にする。以下の動作は第4図の場合と
同様であるため省略する。
このように、命令バッファ5内に残っている命令(分岐
が不成立であった場合に使用する命令)が多いときには
、分岐先命令のフェッチを優先する0 以上のようにこの実施例によれば、命令数検出装置7を
設け、その情報によシキャッシュ制御装置4が、分岐先
命令の先読みを優先するか、命令キャッシュ3のアップ
デートを優先するかを制御することで、分岐時の命令読
出しのバランスを良くし、分岐動作時のオーバーヘッド
を小さくすることが出来る。
なお、この実施例では、命令バッファ5に残っている命
令数が1つのときには、命令キャッシュ3へのアップデ
ートを優先し、3つのときには、17 ベー1.ワ 分岐先命令の先読みを優先したが、この判断は任意に設
定できることは言うまでもない。
発明の詳細 な説明したように、本発明によれば、分岐先命令をマル
チストリーム方式で用意する場合に、分岐が成立した場
合と、不成立であった場合とで使用する命令のフェッチ
をバランス良く行うことが出来るため、分岐動作時のオ
ーバーヘッドを減少することができる。よって、その実
用的効果は大きい。
【図面の簡単な説明】
第1図は本発明における実施例の命令先読み装置のブロ
ック図、第2図〜第5図は同実施例の動作を示すシーケ
メシテある。 3・・・・・・命令キャッシュ、4・・・・・・キャッ
シュ制御装置、5・・・・・・命令バッフ1.6・・・
・・・分岐先命令レジスタ、7・・・・・命令数検出装
置、8・・・・・・セレクタ、9・・・・・命令解読部
、1o・・・・・・メインメモリ、11・ ・・・・ノ
くス 。

Claims (2)

    【特許請求の範囲】
  1. (1)キャッシュメモリと未解読命令の量を検出する検
    出装置とを備え、分岐先命令を分岐条件の確定に先行し
    て前記キャッシュメモリを用いフェッチする際に、前記
    キャッシュメモリがアップデート状態にあった場合、前
    記検出装置からの未解読命令の量の情報に応じて、前記
    キャッシュメモリのアップデートを中止し、分岐先命令
    のフェッチを行えるように制御することを特徴とした命
    令先読み装置。
  2. (2)キャッシュメモリから命令を複数格納できる命令
    バッファを備え、検出装置はこの命令バッファに格納さ
    れている命令数を検出することで、未解読命令の量を検
    出したとみなす特許請求の範囲第1項記載の命令先読み
    装置。
JP1804888A 1988-01-28 1988-01-28 命令先読み装置 Pending JPH01193938A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1804888A JPH01193938A (ja) 1988-01-28 1988-01-28 命令先読み装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1804888A JPH01193938A (ja) 1988-01-28 1988-01-28 命令先読み装置

Publications (1)

Publication Number Publication Date
JPH01193938A true JPH01193938A (ja) 1989-08-03

Family

ID=11960808

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1804888A Pending JPH01193938A (ja) 1988-01-28 1988-01-28 命令先読み装置

Country Status (1)

Country Link
JP (1) JPH01193938A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03191427A (ja) * 1989-12-20 1991-08-21 Nec Corp マイクロプロセッサ
WO2006112190A1 (ja) * 2005-04-08 2006-10-26 Matsushita Electric Industrial Co., Ltd. プロセッサ

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03191427A (ja) * 1989-12-20 1991-08-21 Nec Corp マイクロプロセッサ
WO2006112190A1 (ja) * 2005-04-08 2006-10-26 Matsushita Electric Industrial Co., Ltd. プロセッサ
JP2009104643A (ja) * 2005-04-08 2009-05-14 Panasonic Corp プロセッサ

Similar Documents

Publication Publication Date Title
US6088789A (en) Prefetch instruction specifying destination functional unit and read/write access mode
JP3640355B2 (ja) キャッシュ制御の命令プリフェッチ方法及びシステム
JPH09128293A (ja) 情報処理装置
JPH03147022A (ja) 分岐命令処理装置および処理方法
JP2560889B2 (ja) マイクロプロセッサ
US20170109165A1 (en) Apparatus and method for accessing data in a data store
JPS6356731A (ja) デ−タ処理装置
US20080140934A1 (en) Store-Through L2 Cache Mode
US6684319B1 (en) System for efficient operation of a very long instruction word digital signal processor
JP3837289B2 (ja) 同じ論理的空間を占有する複数のレジスタファイルを含むマイクロプロセッサ
US6275903B1 (en) Stack cache miss handling
JP2596712B2 (ja) 近接した分岐命令を含む命令の実行を管理するシステム及び方法
JPH02287626A (ja) パイプライン方式の分岐命令制御装置
JP2001166989A (ja) プリフェッチ機構を有するメモリシステム及びその動作方法
JPH01193938A (ja) 命令先読み装置
JP4111645B2 (ja) キャッシュミスした後のメモリバスアクセス制御方式
JPH0760387B2 (ja) 情報処理装置
JPH0342723A (ja) データ処理装置
JPH08286914A (ja) メモリ制御装置
JPH04246728A (ja) 情報処理装置
JPH1153188A (ja) 命令キャッシュ制御方式
JPH0695305B2 (ja) デ−タ処理装置
JPH027128A (ja) 情報処理装置
JPH01126733A (ja) 情報処理装置
JPS63163532A (ja) マイクロプロセツサ