JPH08123723A - 先行読出機能付命令キャッシュメモリ - Google Patents
先行読出機能付命令キャッシュメモリInfo
- Publication number
- JPH08123723A JPH08123723A JP7003529A JP352995A JPH08123723A JP H08123723 A JPH08123723 A JP H08123723A JP 7003529 A JP7003529 A JP 7003529A JP 352995 A JP352995 A JP 352995A JP H08123723 A JPH08123723 A JP H08123723A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- read
- block
- memory
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Abstract
ャッシュメモリを提供する。 【構成】 先行読出機能付命令キャッシュメモリ20
は、主記憶22との間でブロック単位で命令情報の授受
を行なう命令キャッシュ30と、主記憶22から読出さ
れ、命令キャッシュ30に転送されるブロックに含まれ
る命令を解析して、次のブロックを主記憶22から読出
すことが必要か否かを予測する命令解析部42と、命令
解析部42により必要であると予測された場合、次ブロ
ックを主記憶22から読出して命令キャッシュ30に転
送するための回路40,44,46,48とを含む。予
測は、分岐予測命令が存在するか否かを判定したり、分
岐命令が検出されたときに、その分岐先が当該ブロック
内またはその次のブロック内か否かを判定したり、前方
分岐が後方分岐かを判定することで行なえる。
Description
などの処理装置と主記憶との間に位置し、双方の動作速
度の相違をバッファリングするための先行読出機能付命
令キャッシュメモリに関し、特に、そのヒット率の向上
に関する。
かのレベルから構成される。そしてこれらの記憶階層の
管理は、隣接する2つのレベル間ごとに行なわれる。
記憶装置200をキャッシュ、遠い方の記憶装置をメモ
リ22と呼ぶ。この2つのレベルにおいて、記憶管理の
対象となるデータの最小単位をブロックと呼ぶ。キャッ
シュとメモリとの間のデータの授受はブロック単位で行
なわれる。
ントロール信号(ロード/ストア)とアドレスとからな
るアクセス要求を出力する。キャッシュ200は内部に
アクセス要求で指示されるアドレスの内容を保持してい
る場合、速やかにデータをCPU18に出力し、保持し
ておらずキャッシュに対するアクセスが失敗した場合、
メモリ22に対しコントロール信号(ロード/ストア)
とアドレスとからなる読出要求を出力し、読出要求で指
示されるアドレスのデータをメモリ22から取り込み、
CPU18に転送する。
と(対象とするデータがキャッシュ200内に見つから
ないこと)をミスと呼ぶ。ミス率とは、アクセスが失敗
する割合をいう。ヒット率はミス率の逆であり、アクセ
スが成功する割合をいう。ミスペナルティとは、キャッ
シュ200中のブロックをメモリ22から転送されるブ
ロックで置換える時間と、そのブロックへのアクセス要
求を出したCPU18までデータを送る時間とを足し合
わせたものをいう。
間は、以下の式で与えられる。
クロック数(CPI)+1命令当りの平均ミス回数×ミ
スペナルティ)×クロックサイクル時間 この式より、同じCPUであっても、キャッシュの挙動
によってその性能に影響があることが分かる。CPIが
小さく、クロック周波数の高いCPUにおいては、キャ
ッシュミスによる性能低下はより深刻なものになる。な
ぜなら、CPI値が小さければ小さいほど、キャッシュ
ミスの影響の割合が大きくなるからである。
モリチップは同種のものであることが多い。したがって
主記憶アクセス時間だけを見れば、どんなコンピュータ
でもほとんど相違がない。ミスペナルティは、ミスの処
理に必要な時間をCPUクロック数で表わした値として
表現される。主記憶のアクセス速度が同じであっても、
CPUのクロック数が高くなればなるほどミスペナルテ
ィの値が大きくなる。そのためクロック周波数の高いC
PUにおいては、キャッシュミスによる性能低下がより
深刻なものとなる。
ミスはプロセッサの性能に大きな影響を及ぼすことがわ
かる。すなわちミスが発生する確率の大小が、システム
の性能に大きな重要性を持つ。
シュとデータ(専用)キャッシュとに分割される場合が
ある。命令とデータとのためにそれぞれ別個の独立した
キャッシュを設けることにより、それぞれ命令とデータ
との取扱いに最適な構成をとることができるため、シス
テム全体の性能向上には有利である。特に命令キャッシ
ュメモリにおいては、一連の命令が実行される態様をよ
り深く研究することにより、命令キャッシュメモリの動
作をより最適化できる可能性が存在する。
されたもので、キャッシュミスの発生する確率の低い命
令キャッシュメモリを得ることを目的とする。
記載の先行読出機能付命令キャッシュメモリは、主記憶
と処理装置との間にそれぞれの動作速度の相違をバッフ
ァリングするために設けられ、前記処理装置から与えら
れるアクセス要求に応答して、前記主記憶との間でブロ
ック単位で命令情報の授受を行なう命令補助記憶装置
と、前記主記憶から読出され、前記命令補助記憶装置に
転送される読出ブロックに含まれる命令を解析して、前
記読出ブロックに続くブロックである次ブロックを前記
主記憶から読み出すことが必要か否かを予測する命令解
析手段と、前記命令解析手段の予測に応答して、前記次
ブロックの読み出しが必要であると予測された場合、前
記次ブロックを前記主記憶から読出して、前記命令補助
記憶装置に格納させるための次ブロック読出手段とを備
えて構成される。
キャッシュメモリのように、前記命令解析手段は、前記
読出ブロック内に、分岐すると予測される命令である分
岐予測命令が存在しないことを検出して、前記次ブロッ
クを読み出すことが必要であると予測する予測手段を備
えてもよい。
キャッシュメモリのように、前記命令解析手段は、前記
読出ブロックと前記次ブロックとの領域外に分岐すると
予測される命令でないことを検出して、前記次ブロック
を読出すことが必要であると予測する予測手段を備えて
もよい。
キャッシュメモリのように、前記命令解析手段は、前記
読出ブロック内から分岐すると予測される命令である分
岐予測命令を検出する分岐予測命令検出手段と、前記分
岐予測命令が、自身のアドレスより大きいアドレスに分
岐する前方分岐か否かを判定する前方分岐判定手段と、
前記分岐判定手段が前記分岐予測命令が前方分岐である
と判定した場合に、前記次ブロックを読出すことが必要
であると予測する予測手段とを含んで構成してもよい。
キャッシュメモリのように、特定の命令が予め定められ
ており、前記命令解析手段は、前記読出ブロックに前記
特定の命令が存在することを検出して、前記次ブロック
を読出すことが必要であると予測する予測手段を備えて
もよい。
能付命令キャッシュメモリは、主記憶と処理装置との間
にそれぞれの動作速度の相違をバッファリングするため
に設けられ、前記処理装置から与えられるアクセス要求
に応答して、前記主記憶との間でブロック単位で命令情
報の授受を行なう命令補助記憶装置と、前記主記憶から
読出され、前記命令補助記憶装置に転送される読出ブロ
ックに含まれる命令を解析して、分岐命令を含む場合に
分岐先アドレスを計算し、当該分岐先アドレスの命令を
含むブロックである分岐先ブロックを前記主記憶から読
み出す必要があるか否かを判定する命令解析手段と、前
記命令解析手段の判定に応答して、前記分岐先ブロック
の読み出しが必要と判定された場合、前記分岐先ブロッ
クを前記主記憶から読出して、前記命令補助記憶装置に
格納させるための分岐先ブロック読出手段とを備えて構
成される。
キャッシュメモリのように、前記命令解析手段は、前記
分岐命令が絶対分岐命令あるいはプログラムカウンタ相
対分岐命令である場合に、前記分岐先ブロックを前記主
記憶から読み出すことが必要であると判定する判定手段
を備えてもよい。
キャッシュメモリのように、前記命令解析手段は、前記
分岐先アドレスが前記読出ブロックの領域外にあるアド
レスの場合に、前記分岐先ブロックを前記主記憶から読
み出すことが必要であると判定する判定手段を備えても
よい。
キャッシュメモリのように、前記命令解析手段は、前記
分岐命令が分岐する可能性が高いか否かを予測する分岐
予測手段と、前記分岐予測手段が前記分岐命令の分岐可
能性が高いと予測した場合に、前記分岐先ブロックを前
記主記憶から読み出すことが必要であると判定する判定
手段とを備えてもよい。
命令キャッシュメモリのように、前記分岐予測手段は、
分岐する可能性が高い分岐命令の種別を記憶する記憶手
段を有し、前記分岐命令が前記記憶手段に記憶された種
別である場合、前記分岐命令が分岐する可能性が高いと
予測するように構成してもよい。
令キャッシュメモリのように、前記分岐予測手段は、前
記分岐先アドレスが前記分岐命令が格納されたアドレス
より小さい場合、前記分岐命令が分岐する可能性が高い
と予測するように構成してもよい。
令キャッシュメモリのように、分岐する可能性が高い分
岐命令の種別に対し、そのことを指示する所定ビットの
分岐情報があらかじめ付加されており、前記分岐予測手
段は、前記分岐命令に前記分岐情報が存在する場合、前
記分岐命令が分岐する可能性が高いと予測するように構
成してもよい。
命令キャッシュメモリのように、特定の命令が予め定め
られており、前記命令解析手段は、前記読出ブロックに
前記特定の命令が存在することを検出した場合、前記分
岐先ブロックを前記主記憶から読み出すことが必要であ
ると判定する判定手段を備えてもよい。
機能付命令キャッシュメモリは、主記憶と処理装置との
間にそれぞれの動作速度の相違をバッファリングするた
めに設けられ、前記処理装置から与えられるアクセス要
求に応答して、前記主記憶との間でブロック単位で命令
情報の授受を行なう命令補助記憶装置を備え、前記命令
補助装置は前記アクセス要求で指示されるブロックの情
報を保持していない場合に、そのブロックの情報を前記
主記憶から取り込み、前記主記憶から読出され、前記命
令補助記憶装置に転送される読出ブロックに含まれる命
令を解析して、分岐命令を含む場合に分岐先アドレスを
計算し、当該分岐先アドレスの命令を含むブロックであ
る分岐先ブロックの読み出しを指示する、前記アクセス
要求と等価な疑似アクセス要求を前記補助記憶装置に出
力する先行読出制御手段をさらに備えて構成してもよ
い。
付命令キャッシュメモリにおいて、命令解析手段は主記
憶から読出され、命令補助記憶装置に転送されるブロッ
クである読出ブロックに含まれる命令を解析して、読出
ブロックに続くブロックである次ブロックを主記憶から
読出すことが必要か否かが予測する。そして、次ブロッ
ク読出手段は、命令解析手段により主記憶からの読み出
しが必要であると予測された場合、次ブロックを主記憶
から読出し、命令補助記憶装置に転送する。
付命令キャッシュメモリは、読出ブロックの命令の実行
に先立って、必要に応じて次ブロックの転送を行うこと
により、次ブロックへのアクセス要求が発生したときに
ミスが発生しないようにしている。
とが必要か否かの命令解析手段による予測に基づき次ブ
ロックの読出しが行なわれるので、不要なブロックが読
出されてしまう可能性は低い。
キャッシュメモリの命令解析手段の予測手段は、読出ブ
ロック内に、分岐予測命令が存在しない場合に、次ブロ
ックを読出すことが必要であると予測する。
岐命令が存在している場合には次ブロックを読出しても
そのブロックがアクセスさせる可能性は低いため、次ブ
ロックがアクセスされる可能性が高い分岐予測命令が存
在しない場合のみに次ブロックを読出すことが必要であ
ると予測している。したがって、次ブロック読出手段が
不要なブロックを読出す可能性が低下する。
キャッシュメモリの命令解析手段における予測手段は、
分岐すると予測される命令である分岐予測命令が存在し
ていた場合でも、それが当該読出ブロックと次ブロック
との領域外に分岐すると予測される命令でない場合に
は、次ブロックを読出すことが必要であると予測する。
っても、読出ブロックと次ブロック内に分岐する命令で
あれば、次ブロックがアクセスされる可能性は高いた
め、次ブロックを読出すことが必要であると予測してい
る。
キャッシュメモリでは、分岐予測命令検出手段により、
読出ブロックに含まれる分岐予測命令が検出されると、
前方分岐判定手段により、検出された分岐予測命令が前
方分岐か否かが判定される。そして、予測手段により、
検出された分岐予測命令が前方分岐であると判定された
場合に、次ブロックを読出すことが必要であると予測さ
れる。
後方分岐の場合には他のブロックに分岐することが多い
が、前方分岐では他のブロックに分岐する確率が低いた
め、次ブロックを読出すことが必要であると予測してい
る。
キャッシュメモリの命令解析手段における予測手段は、
読出ブロックに特定の命令が存在することを検出して、
次ブロックを読出すことが必要であると予測する。
ら分岐しないことがわかっているブロックやその確率が
高いブロックなど、次ブロックを読出す必要のある、ま
たはその必要性の高いブロックに特定の命令を含ませて
おけば、好便に次ブロックを読出してアクセスに備える
ことができる。
機能付命令キャッシュメモリにおいて、命令解析手段
は、主記憶から読出され、命令補助記憶装置に転送され
る読出ブロックに含まれる命令を解析して、分岐命令を
含む場合に分岐先アドレスを計算し、当該分岐先アドレ
スの命令を含むブロックである分岐先ブロックを主記憶
から読み出す必要があるか否かを判定する。そして、分
岐先ブロック読出手段は分岐先ブロックの読み出しが必
要と判定された場合、分岐先ブロックを主記憶から読出
して、命令補助記憶装置に格納させる。
付命令キャッシュメモリは、読出ブロックの命令の実行
に先立って、必要に応じて分岐先ブロックの転送を行う
ことにより、分岐先ブロックへのアクセス要求が発生し
たときにミスが発生しないようにしている。
すことが必要か否かの命令解析手段による判断に基づき
分岐先ブロックの読出しが行なわれるので、不要な分岐
先ブロックが読出されてしまう可能性は低い。
キャッシュメモリの命令解析手段の判定手段は、分岐命
令が絶対分岐命令あるいはプログラムカウンタ相対分岐
命令である場合に、分岐先ブロックを主記憶から読み出
すことが必要であると判定する。
グラムカウンタ相対分岐命令が存在している場合は分岐
先ブロックがアクセスされる可能性が高いため、判定手
段の上記判定の精度は高い。
キャッシュメモリの命令解析手段における判定手段は、
分岐先アドレスが読出ブロックの領域外にあるアドレス
の場合に、分岐先ブロックを主記憶から読み出すことが
必要であると判定する。
ても、読出ブロックに分岐する命令であれば、分岐先ブ
ロックを読み出す必要はないと判定することにより、判
定精度をさらに向上させている。
キャッシュメモリは、分岐命令が分岐する可能性が高い
か否かを予測する分岐予測手段と、分岐予測手段が分岐
命令の分岐可能性が高いと予測した場合に、分岐先ブロ
ックを主記憶から読み出すことが必要であると判定する
判定手段とを備えている。
測に基づき、分岐先ブロックを主記憶から読み出すこと
が必要であるか否かを判定することにより、判定精度を
さらに向上させている。
令キャッシュメモリの分岐予測手段は、分岐命令が記憶
手段に記憶された分岐する可能性が高い種別である場
合、分岐命令が分岐する可能性が高いと予測することに
より、高い精度の分岐予測を行っている。
令キャッシュメモリの分岐予測手段は、分岐先アドレス
が分岐命令が格納されたアドレスより小さい分岐命令、
すなわち後方分岐の場合には分岐する可能性高いと予測
することにより、高い精度の予測を行っている。
令キャッシュメモリにおいて、分岐する可能性が高い分
岐命令の種別に対し、そのことを指示する所定ビットの
分岐情報があらかじめ付加されており、分岐予測手段
は、分岐命令に分岐情報が存在する場合、分岐命令が分
岐する可能性が高いと予測することにより、高い精度の
予測を行っている。
令キャッシュメモリの命令解析手段における判定手段
は、読出ブロックに特定の命令が存在することを検出し
た場合、分岐先ブロックを主記憶から読み出すことが必
要であると判定する。
から分岐することがわかっているブロックやその確率が
高いブロックなど、分岐先ブロックを読出す必要のあ
る、またはその必要性の高いブロックに特定の命令を含
ませておけば、好便に分岐先ブロックを読出してアクセ
スに備えることができる。
出機能付命令キャッシュメモリの先行読出制御手段は、
主記憶から読出され、命令補助記憶装置に転送される読
出ブロックに含まれる命令を解析して、分岐命令を含む
場合に分岐先アドレスを計算し、当該分岐先アドレスの
命令を含むブロックである分岐先ブロックの読み出しを
指示するアクセス要求と等価な疑似アクセス要求を補助
記憶装置に出力する。
ロックに分岐命令が存在する場合、補助記憶装置に対す
る分岐先ブロックでのアクセスを行うため、分岐先ブロ
ックが補助記憶装置に存在しないとき、補助記憶装置は
主記憶に対する分岐先ブロックの読み出しを要求して、
分岐先ブロックを自動的に取り込み、分岐先ブロックが
補助記憶装置に存在するとき、分岐先ブロックの読み出
し要求を発しないため主記憶には全くアクセスしない。
に説明する。なお、本発明は様々な局面を持っており、
以下に示す3つの実施例は、それらの曲面をある特定の
組合わせで実現したものである。したがってこれ以外の
組合わせについても、上述の特許請求の範囲に規定され
たものであれば本願に含まれることは言うまでもない。
令補助記憶装置たる命令キャッシュからの読出要求に応
答してメモリから1ブロックの命令情報が読出された場
合に、その読出された1ブロック内に分岐予測命令が存
在するか否かを検出し、存在していない場合には次のブ
ロックも続けてメモリから読出して命令キャッシュに転
送する先行読出機能付命令キャッシュに関する。
含まれない場合、次のブロックに対するアクセス要求が
出される確率は極めて高い。したがって予め次のブロッ
クをメモリから読出して命令キャッシュに転送しておく
ことにより、次のブロックのアクセス要求が発生したと
きにミスとなることはなく、ヒット率が上昇する。ま
た、読出された1ブロック内に分岐予測命令が存在する
場合には、次のブロックを読出しても無駄となる可能性
が高い。そうした場合には次のブロックは読出されない
ので、キャッシュメモリへの無駄な転送が行なわれずに
済む。また、キャッシュメモリ内に既に格納されてい
た、よりアクセスされる頻度の高いブロックがこの次ブ
ロックの読出により命令キャッシュから消去されること
がない。したがってさらにキャッシュミスの確率が低下
できる。
読出機能付命令キャッシュメモリの構成をを示すブロッ
ク図である。同図に示すように、メモリ22は記憶階層
の下位の部分を構成する記憶装置であり、命令キャッシ
ュ30は上位の部分を構成する記憶装置である。命令キ
ャッシュ30は特に、命令のみを記憶する命令キャッシ
ュであり、CPUによる命令の実行速度と、メモリ22
からの読出速度との相違をバッファリングするために設
けられたものである。
ら命令のアクセス要求が与えられる。命令キャッシュ3
0は要求されたデータが命令キャッシュ30内に存在し
ない場合、メモリ22に対する読出信号と、読出したい
ブロック(読出ブロック)を示すアドレスとをメモリ2
2に向けて転送する。転送の具体的方法は後述する。
命令キャッシュ20は、メモリ22と図示されないプロ
セッサとの間に設けられる。先行読出機能付命令キャッ
シュ20は、メモリ22からブロック単位で命令を読出
して格納しておく命令補助記憶装置たる命令キャッシュ
30と、命令キャッシュ30の先行読出を制御する先行
読出制御部32とを含む。
出ブロックのアドレスを格納するアドレスレジスタ44
と、アドレスレジスタ44に保持された値を1ブロック
分加算するカウンタ46と、与えられる選択信号に応答
して、命令キャッシュ30またはカウンタ46の出力を
選択してアドレスレジスタ44に与えるためのセレクタ
48と、アドレスレジスタ44に格納された値により指
定されるアドレスから読出された1ブロックの命令を一
旦格納し、命令キャッシュ30に与える命令レジスタ4
0と、命令レジスタ40に格納された1ブロックの命令
内に分岐予測命令が含まれるか否かを判定し、含まれな
い場合にはセレクタ48、メモリ22、および命令キャ
ッシュ30を制御して次ブロックの命令をメモリ22か
ら命令キャッシュ30に転送させるための命令解析部4
2とを含む。先行読出制御部32のうち、命令解析部4
2以外の部分が次ブロック読出手段に相当する。
2の内部構成を示すブロック図である。同図に示すよう
に、命令レジスタ40は、n個の命令1〜命令nをそれ
ぞれ格納するn個のレジスタ40−1〜40−nから構
成される。
−1〜40−nに接続され、各レジスタに分岐予測命令
が含まれるか否かを検出するための分岐予測命令検出回
路62−1〜62−nと、分岐予測命令検出回路62−
1〜62−nの出力と、命令キャッシュ30からの読出
信号とに応答して、セレクタ48に対する選択信号とメ
モリ22に対する読出信号とを出力するための読出信号
発生回路60と、読出信号発生回路60の出力に応答し
て、命令キャッシュ30へのコントロール信号を発生す
るためのコントロール信号発生回路64とを含む。なお
読出信号発生回路60は、分岐予測命令検出回路62−
1〜62−nのいずれからも、分岐予測命令が検出され
たことを示す信号が与えられない場合に、セレクタ48
に対して図1に示すカウンタ46の出力を選択する選択
信号を与えるように動作する。
〜62−nはそれぞれ同一の構成を有する。以下「m」
は、1からnまでの任意の整数を表わすものとする。
部構成を示す説明図である。同図に示すように、分岐予
測命令検出回路62−mは、分岐予測命令を予め格納す
る分岐予測命令レジスタ70と、命令レジスタ40−m
および分岐予測命令レジスタ70の双方に接続され、レ
ジスタ40−mに格納されている命令と、分岐予測命令
レジスタ70に格納されている分岐予測命令とが一致し
ているか否かを検出し一致検出信号を読出信号発生回路
60に与えるための一致検出回路72とを含む。
示す回路図である。同図に示すように、読出信号発生回
路60は、分岐予測命令検出回路62−1〜62−nに
接続されたn個の入力を有するNANDゲート82と、
命令キャッシュ30から与えられる読出信号を一旦ラッ
チするラッチ回路80と、NANDゲート82の出力と
ラッチ回路80の出力とに接続された2つの入力を有す
るANDゲート84と、ANDゲート84の出力と、命
令キャッシュ30からの読出信号とが与えられる2つの
入力を有するORゲート86とから構成される。なお、
ラッチ80はCPU18の動作用のクロックCKをさら
に受け、このクロックCKに同期して命令キャッシュ3
0から得られる読出要求を記憶する。
対する選択信号、ORゲート86の出力がメモリ22に
対する読出信号となる。
先行読出機能付命令キャッシュの動作を説明する。
内に存在しないデータが要求されたものとする。この場
合命令キャッシュ30は、命令解析部42に対して読出
信号を与える。命令キャッシュ30はまた、セレクタ4
8に対して当該命令に対するブロックのアドレスを与え
る。命令解析部42は、命令キャッシュ30から読出信
号を受け、セレクタ48を制御して命令キャッシュ30
から出力されたアドレスを選択させる。セレクタ48は
命令キャッシュ30の出力したアドレスをアドレスレジ
スタ44に格納させる。
り示されたブロックを命令レジスタ40に転送する。命
令キャッシュ30はさらに、命令解析部40から与えら
れるコントロール信号に応答して、命令レジスタ40に
格納された1ブロック分のデータを格納する。
格納されている値を1ブロック分加算し、再びセレクタ
48に与える。
レジスタ40に格納された1ブロック分の命令内に、分
岐すると予測される命令である分岐予測命令があるか否
かを判定する。分岐予測命令がなかった場合には、命令
解析部42はセレクタ48を制御してカウンタ46の出
力を選択させる。セレクタ48の出力はアドレスレジス
タ44に格納される。命令解析部42はまた、メモリ2
2に対して読出信号を与える。したがってメモリ22
は、アドレスレジスタ44により指定された1ブロック
次のブロックを命令レジスタ40に対して転送する。命
令解析部42はまた、命令キャッシュ30に対してコン
トロール信号を与え、命令レジスタ40の内容を格納さ
せる。
以下のように動作する。
路62−mの一致検出回路72は、レジスタ40−mに
格納されている命令と分岐予測命令レジスタ70に格納
されている分岐予測命令とが一致するか否かを判定し、
一致する場合には分岐信号を生成し読出信号発生回路6
0に与える。再び図2を参照して、n個の分岐予測命令
検出回路62−1〜61−nの各々においてこの処理が
行なわれる。
分岐予測命令検出回路62−1〜62−nから与えられ
る信号のうちのひとつでも分岐信号である場合には読出
信号を出力せず、そうでない場合、読出信号を出力す
る。
て命令キャッシュ30からの検出信号を一旦ラッチし、
ANDゲート84に与える。したがって、ANDゲート
84は、最初に命令キャッシュ30から読出信号がメモ
リ22に与えられたのと1クロック遅れてNANDゲー
ト82の出力をセレクタ48およびORゲート86に与
える。分岐予測命令検出回路62−1〜62−nからの
信号がすべて分岐信号でなければANDゲート84から
読出信号が出力され、図1に示されるセレクタ48はカ
ウンタ46の出力を選択することになる。
30からの読出信号とANDゲート84の出力との論理
和をとり読出信号としてメモリ22に与える。したがっ
てメモリ22は、最初に命令キャッシュ30から指定さ
れた読出ブロックの次のブロックを命令レジスタ40に
与える。命令キャッシュ30は命令レジスタ40の出力
を格納する。
64は、メモリ22に対する読出信号が出力された後、
命令レジスタ40に1ブロックのデータが格納される
と、命令キャッシュ30に対して命令レジスタ40の出
力を格納するコントロール信号を発生して命令キャッシ
ュ30に与えるためのものである。命令レジスタ40を
介さず直接メモリ122の出力を格納してもよい。
出回路62−1〜62−nの少なくとも1つで、対応す
るレジスタに格納されている命令が分岐予測命令と一致
していることが検出された場合、図4に示されるNAN
Dゲート82の出力は読出を指示しない値となる。セレ
クタ48に対する選択信号はなく、ORゲート86から
は次の読出信号が与えられない限り読出信号は出力され
ない。したがって次のブロックの転送は行なわれない。
求されるデータは連続性が高い。したがって現在要求さ
れている次のブロックが要求される可能性は高い。本実
施例のように予め命令キャッシュに次のブロックを転送
しておげば、キャッシュミスが生じる可能性が低減され
システムの性能向上につながる。また本実施例では、命
令解析部42の動作により、次のブロックを転送するこ
とが必要かどうかが予測され、必要な場合にのみ次ブロ
ックの転送が行なわれる。したがって不要なデータの転
送を防止することができる。また命令キャッシュ30が
一杯である場合、新たにメモリ22からデータが転送さ
れると、現在格納されているブロックを消去する必要が
ある。不要なデータの格納のために、現在格納されてい
るブロックであって、しかも必要となる可能性のあるブ
ロックが消去される恐れが小さくなり、さらにキャッシ
ュミスの確率が低下する。
例について説明する。この第2の実施例では、命令キャ
ッシュから、メモリに対する読出要求があった場合、要
求された読出ブロックをメモリから読出して一旦格納す
る。さらに、格納された読出ブロック内に分岐命令があ
るかどうかを判定し、分岐命令が存在しない場合には第
1の実施例と同様に次のブロックを連続して読出す。分
岐命令が存在している場合であっても、その分岐命令が
自身のアドレスより大きいアドレスに分岐する前方分岐
である場合、およびその分岐命令の分岐先アドレスが当
該読出ブロック内または次ブロック内である場合には次
ブロックを読出すこととしている。一般に分岐命令が前
方分岐の場合には約半分の確率で分岐が生じ、自身のア
ドレスより小さいアドレスに分岐する後方分岐の場合に
は多くの場合分岐が生じる。後方分岐の場合、分岐する
と予測して分岐予測命令として扱い、前方分岐の場合に
は分岐しないものとして取扱ってもよい。また分岐命令
が存在していたとしても、その分岐先アドレスが読出ブ
ロックまたは次ブロック内であれば次ブロックを予め読
出しておくことが有効である。したがってこの第2の実
施例により、仮に分岐予測命令が読出されたブロック内
に含まれていても、次ブロックを先行読出しておくこと
が有効であり、キャッシュミスの確率を低下できるとい
う効果がある。
読出機能付命令キャッシュメモリの構成を示すブロック
図である。同図に示すように、第2の実施例の先行読出
機能付命令キャッシュ100は、図示されないCPUと
メモリ22との間に設けられる。先行読出機能付命令キ
ャッシュ100は、命令キャッシュ104と先行読出制
御部102とを含む。
データアレイ部112と、格納されているデータがどの
ブロックのデータであるかを示すタグ部114とを含
む。
同様にアドレスレジスタ44とカウンタ46とセレクタ
48とを含む。但し、カウンタ46の出力は本実施例の
場合タグ部114にも与えられる。先行読出制御部10
2はまた命令レジスタ40と命令解析部110とを含
む。命令解析部110は命令キャッシュ104と命令レ
ジスタ40とセレクタ48とに接続され、命令レジスタ
40に格納された読出ブロックに含まれる命令が分岐予
測命令か否か、分岐予測命令であったとしてその分岐先
が命令レジスタ40に読出された読出ブロック内または
その次ブロック内か否か、また前方分岐か否かを判定す
る。
レクタ48、メモリ22、命令キャッシュ104を制御
して必要であれば次ブロックをメモリ22から命令キャ
ッシュ104に転送する。
04のタグ部114から、ミス信号116が与えられ
る。ミス信号116は、本実施例の場合、カウンタ46
の出力するアドレスに該当するブロックが命令キャッシ
ュ104内に存在していない場合に生成される信号であ
る。ミス信号はまた、CPUからアクセス要求があった
ブロックが命令キャッシュ104内に存在していない場
合も発生される。
令1〜命令nをそれぞれ格納したレジスタ40−1〜4
0−nに対応して設けられたn個の次ブロック読出信号
発生回路120−1〜120−nと、次ブロック読出信
号発生回路120−1〜120−nの出力および命令キ
ャッシュ104からの読出信号に応答して、セレクタ4
8に対する選択信号およびメモリ22(図5)に与える
べき読出信号を発生する読出信号発生回路60と、読出
信号発生回路60の出力と命令キャッシュ104からの
ミス信号116とが与えられるANDゲート122と、
ANDゲート122の出力に応答して命令キャッシュ1
04に与えるコントロール信号を発生するコントロール
信号発生回路64とを含む。ANDゲート122の出力
がメモリ22に対する読出信号となる。
に示される第1の実施例のそれと同じである。したがっ
てここではその詳細については繰返さない。
回路120−mは、命令mが分岐予測命令か否かを検出
するための分岐予測命令検出回路130と、アドレスレ
ジスタ44からのアドレスおよび命令mの内容とに基づ
いて分岐先アドレスを計算するための分岐先アドレス計
算回路132と、アドレスレジスタ44に格納されてい
るアドレスに1ブロック分を加算する加算器134と、
アドレスレジスタ44が格納している読出ブロックのア
ドレスと分岐先アドレス計算回路132により計算され
たアドレスのブロックとが一致するか否かを判定するた
めの一致検出回路136と、加算器134の出力するア
ドレスと分岐先アドレス計算回路132の出力とが一致
するか否かを判定するための一致検出回路138と、一
致検出回路136および138の出力に2つの入力が接
続されたORゲート140と、分岐予測命令検出回路1
30の出力とORゲート140の出力とに接続された2
つの入力を有するANDゲート144と、分岐予測命令
検出回路130の出力する分岐信号を反転するためのN
OT回路142と、NOT回路142の出力とANDゲ
ート144の出力とに接続された2つの入力を有するO
Rゲート146とから構成される。
30は、分岐命令を格納するレジスタ160と、レジス
タ40−mから与えられる命令mと分岐命令レジスタ1
60に格納されている分岐命令とが一致するか否かを判
定するための一致検出回路162と、分岐先アドレス計
算回路132の出力する分岐先アドレスをアドレスレジ
スタ44の格納しているアドレスから減算するための減
算器164と、一致検出回路162の出力および減算器
164の出力にそれぞれ接続された2つの入力を有する
ANDゲート166とを含む。ANDゲート166の出
力を分岐信号と呼ぶ。なお本実施例の場合、たとえば命
令の第1ビットと第2ビットとが“1”の場合に分岐命
令であると予め決めておき、それに従って命令セットを
指定しておくものとする。したがってこの場合一致検出
回路162による比較はたとえば第1ビットおよび第2
ビットなど、その命令が分岐命令か否かを示すビットの
みに対して行なわれる。
以下のように動作する。命令キャッシュ104は、CP
Uから要求されたデータがデータアレイ112に含まれ
ない場合読出要求信号を命令解析部110に与える。同
時にミス信号116も命令解析部110に与える。
与えられた読出信号に応答して読出信号を生成し、AN
Dゲート122はこの読出信号をメモリ22に与える。
このとき読出信号発生回路60が発生する選択信号は、
セレクタ48が命令キャッシュ104からのアドレスを
選択するような値となっている。したがって命令キャッ
シュ104から出力されるアドレスはアドレスレジスタ
44に格納される。
られる読出信号に応答し、アドレスレジスタ44で示さ
れるアドレスのデータを1ブロック分、命令レジスタ4
0に与える。命令解析部110は、図6に示されるコン
トロール信号発生回路64により命令キャッシュ104
に、命令レジスタ40の内容を格納させる。
路120−1〜120−nは冬々以下のように動作す
る。
32は、命令mが分岐命令である場合、アドレスレジス
タ44に格納されているアドレスに基づき命令mの分岐
先アドレスを計算し、分岐先アドレスのデータが格納さ
れている分岐先ブロックのアドレスを生成する。このア
ドレスは分岐予測命令検出回路130、一致検出回路1
36および138に与えられる。
レジスタ40−mに格納されている命令mの所定ビット
が分岐命令レジスタ160に格納されている分岐命令の
所定ビットと一致するか否かを判定し、一致する場合に
は一致信号をANDゲート66に与える。
格納されているアドレスから分岐先アドレス計算回路1
32から与えられる分岐先アドレスを減算し、結果が正
の場合に後方分岐であることを示す信号をANDゲート
166に与える。ANDゲート166の出力は分岐信号
であり、命令mが分岐命令であってかつ後方分岐の場合
にのみ出力される。
び138はそれぞれ、分岐先アドレスが、アドレスレジ
スタ44に格納されているブロックのアドレスまたはそ
の1ブロック次のアドレスと等しいか否かを判定し、一
致している場合にはそれぞれ一致信号をORゲート14
0に与える。したがってORゲート140の出力は、分
岐先アドレスが読出ブロック内か、次ブロック内である
場合にHレベルとなる。
30の出力する分岐信号(図8参照)は、命令mが分岐
命令であってかつ後方分岐の場合のみにHレベルとな
る。したがってANDゲート144の出力は、命令mが
後方分岐命令であってかつ分岐先アドレスが直前に読出
ブロックまたはその次のブロックに存在している場合に
Hレベルとなる。ANDゲート144の出力はORゲー
ト146に与えられる。
命令でないか、または分岐命令であっても前方分岐であ
る場合にはHレベルとなる。したがってORゲート46
の出力は、命令mが分岐命令であってかつ後方分岐であ
り、分岐先アドレスが読出ブロックまたはその次のブロ
ック外である場合にのみLレベルとなる。この場合次ブ
ロックの読出は行なわれない。
以外であると予測された場合、読出信号発生回路60は
第1の実施例と同様に選択信号を発生してセレクタ48
に与え、また読出信号を発生してANDゲート122に
与える。次ブロックのアドレスを示す信号はカウンタ4
6から命令キャッシュ104のタグ部114に与えられ
る。命令キャッシュ104のタグ部114は、読出ブロ
ックがデータアレイ112に既に格納されているか否か
を判定し、存在していない場合にはミス信号116を再
びANDゲート122に与える。この場合読出信号がA
NDゲート122を介してメモリ22に与えられ、さら
にコントロール信号がコントロール信号発生回路64に
より発生されて命令キャッシュ104に与えられる。既
に次ブロックが命令キャッシュ内に格納されている場合
にはミス信号116は与えられない。したがって読出信
号は発生されず、次のブロックの転送も行なわれない。
これにより、既に命令キャッシュに格納されているブロ
ックをメモリから転送するという無駄な動作を防ぐこと
ができる。なお、ANDゲート122を設げず、ミス信
号に関係なく読出を行なっても、先行読出自体は同様に
行なえる。
命令が分岐予測命令であっても、分岐先がアクセス要求
されている読出ブロックまたはその次のブロックである
場合には、次のブロックをメモリからキャッシュに転送
するための制御信号が生成される。したがって分岐予測
命令であっても、分岐先アドレスによってはブロックの
先行読出を行なうことができ、キャッシュミスの確率を
低下できる。また、命令が分岐命令であって前方分岐の
場合にも同様に次ブロックを読出す制御信号が生成され
る。そのため後方分岐の分岐命令を分岐予測命令として
扱うことができ、無駄なブロックの転送を少なくするこ
とが可能になる。
令として、次のブロックをメモリからキャッシュにロー
ドする命令を予め用意しておく実施例である。本実施例
については、命令解析部についてのみそのブロック図を
示す。他の部分の構成は第1及び第2の実施例と同様で
ある。予め次ブロックの内容をメモリから読みだすこと
を指示する次ブロックロード命令を特定しておき、必要
に応じて次ブロックロード命令を命令中に挿入しておく
ことにより、読出されたブロック中に次ブロックロード
命令がある場合、次のブロックを命令キャッシュに転送
できる。したがって次ブロックロード命令を効果的に命
令中に配置することにより、キャッシュミスの低下を防
ぐことができる。
読出機能付命令キャッシュメモリの命令解析部周辺の構
成を示すブロック図である。同図に示すように、第3の
実施例の先行読出機能付命令キャッシュの命令解析部1
80は、命令1〜命令nにそれぞれ対応して設けられた
n個の分岐予測命令検出回路182−1〜182−n
と、分岐予測命令検出回路182−1〜182、nの出
力に接続されたn個の入力を有するORゲート184
と、ORゲート184の出力に接続され、命令キャッシ
ュをコントロールするコントロール信号を発生するため
のコントロール信号発生回路64と、ORゲート184
の出力と命令キャッシュからの読出信号とが与えられる
2つの入力を有するORゲート186とを含む。ORゲ
ート186の出力はメモリ22に対する読出信号とな
る。またORゲート184の出力はセレクタ48に対す
る選択信号である。
出部182−mは、次ブロックロード命令を格納したレ
ジスタ192と、命令mと次ブロックロード命令とが一
致するか否かを検出し、一致した場合に次ブロックロー
ド信号を発生するための一致検出回路194とを含む。
施例の先行読出機能付命令キャッシュの命令解析部は以
下のように動作する。
合、ORゲート186を介してその読出信号はメモリ2
2に与えられる。メモリ22から1ブロック分の命令が
命令レジスタ40に転送され、さらに命令キャッシュに
転送される。
検出部182−1〜182nの各々においては、一致検
出回路194が、命令mと次ブロックロード命令とが一
致するか否かを判定し、一致する場合に次ブロックロー
ド信号を生成して図9に示すORゲート184に与え
る。
号が1つでも検出された場合、ORゲート186を介し
てメモリ22に対する読出信号を与える。同じくORゲ
ート184の出力はセレクタ48に対する選択信号とな
る。セレクタ48は、第1の実施例および第2の実施例
と同様に命令キャッシュから最初に与えられた読出ブロ
ックの次のアドレスのブロックを選択してアドレスレジ
スタ44(図1参照)に与え、したがって次ブロックが
命令キャッシュに転送されることになる。
かった場合、ORゲート184から読出信号は発生され
ず、したがって次ブロックの転送は行なわれない。
述した最初のブロックと次ブロックとの命令キャッシュ
への格納タイミングを制御するコントロール信号を発生
して命令キャッシュに与えるためのものである。
読出されたブロックに含まれる命令が分岐予測命令であ
るか否かを判定する必要がなく、高速に次のブロックを
メモリからキャッシュに転送する信号を生成することが
できる。並列動作が可能なマシンの場合、並列に実行で
きる命令は限られている。そのため多くのサイクルにお
いて、使用されていないユニットがマシン内に存在す
る。そのユニットを利用し、次のブロックをメモリから
キャッシュに転送することを指示する命令を実行するこ
とができる。このように構成することにより、命令が分
岐予測命令であるか否かを判定する必要がなく、高速に
次のブロックをメモリからキャッシュに転送する信号を
生成することができ、また次ブロックロード命令を予め
適切な箇所に配置しておくことにより、キャッシュミス
が発生する確率を低くすることができる。
の第4の実施例である先行読み出し機能付命令キャッシ
ュメモリの構成を示すブロック図である。同図におい
て、メモリ22は、記憶階層の下位の部分を構成する記
憶装置であり、命令キャッシュ30は、上位の部分を構
成する記憶装置で、特に、命令のみを記憶し、CPUに
よる命令の実行速度と、メモリ22からの読み出し速度
との相違をバッファリングするために設けられたもので
ある。
要求で指示されたブロックのデータが命令キャッシュ3
0内にない場合、コントロール信号として読出要求と、
そして読み出したいブロックを示す読出アドレスを読出
制御部3に出力する。また、命令キャッシュ30は、C
PUのアクセス要求で指示されたブロックのデータが命
令キャッシュ30内に存在する場合、読出要求及び読出
アドレスを出力することなく、ブロックのデータをCP
Uが接続されるデータバスに出力する。
たい命令を含むブロックのアドレスを格納するアドレス
レジスタ44と、与えられる選択信号に応答して、命令
キャッシュ30または、命令解析部5から与えられる分
岐先アドレスの出力を選択してアドレスレジスタ44に
与えるセレクタ33と、アドレスレジスタ44に格納さ
れた値により指定されるアドレスから読みだされた1ブ
ロックの命令を一旦格納し、命令キャッシュに与える命
令レジスタ40と、命令レジスタ40に格納された1ブ
ロックに分岐命令が含まれるか否かを検出し、含まれる
場合には、分岐先アドレスを計算し、セレクタ33、メ
モリ22および命令キャッシュ30を制御して、必要な
命令が含まれるブロックをメモリ22から命令キャッシ
ュ30に転送させるための命令解析部5とから構成され
る。なお、読出制御部3のうち、命令解析部5以外の部
分が分岐先ブロック読出手段に相当する。
ないデータを要求され、命令キャッシュにおいてメモリ
からのブロックの読み出しが発生した場合の動作を説明
する。
令の読み出しアドレスをセレクタ33及びアドレス・レ
ジスタ44を経由して、メモリ22に読み出しを所望す
るアドレスを送信し、また、読出要求を命令解析部5を
経由してメモリ22に送信する。
ックは、命令レジスタ40に記憶された後、命令キャッ
シュ30に転送される。命令解析部5は、命令レジスタ
40に格納されている命令の中から分岐命令の存在の有
無を解析し、分岐命令がある場合、命令によって(PC
相対命令などの場合)は、アドレスレジスタ44の値を
参照して分岐先アドレスを計算する。また、命令解析部
5は、分岐先アドレスのブロック(分岐先ブロック)を
メモリ22から命令キャッシュ30に転送するか否かの
制御信号を命令キャッシュ30に出力し、メモリ22に
対し読み出しを制御する読出信号を出力し、セレクタ3
3には、どのアドレスをアドレスレジスタ44に格納す
るかを選択するアドレス選択信号を出力する。
られた読出信号に従って、アドレスレジスタ44に格納
されているアドレスのブロックを命令レジスタ40を介
して命令キャッシュ30に転送する。
求があるか、命令レジスタ40に格納したブロックに分
岐命令が存在しなくなるまで、上記3.〜5.の動作を
繰り返す。
り取り込んだ読出ブロックに分岐命令が含まれている場
合、分岐先の命令を含む分岐先ブロックがキャッシュ内
にない場合が多い。従って、第4の実施例の先行読み出
し機能付命令キャッシュメモリのように、あらかじめ分
岐先ブロックをメモリから命令キャッシュに転送してお
けば、キャッシュ・ミスが生じる可能性が低減され、シ
ステムの性能向上につながる。
部構成を示すブロック図である。
岐、PC(プログラムカウンタ)相対分岐、レジスタ間
接分岐などが存在する。本発明が対象とする分岐命令
は、絶対アドレス分岐及びPC相対分岐である。絶対ア
ドレス分岐の命令コードは、絶対アドレス分岐であるこ
とを示すオペコードと分岐先アドレスで構成される。P
C相対分岐の命令コードは、PC相対分岐であることを
示すオペコードと、分岐命令と分岐先の命令のアドレス
差であるオフセットで構成される。
れぞれ格納するレジスタ40−1〜40−nで相成され
る。命令解析部5は、それぞれレジスタ40−1〜40
−nに接続され、分岐命令が含まれるか否かを検出し、
含まれる場合、どの種類の分岐命令であるかと分岐先ア
ドレスまたはオフセットを検出するための分岐命令解析
回路220−1〜220−nと、分岐命令解析回路22
0−1〜220−nの出力に応答して、アドレスレジス
タ44の出力と、分岐命令解析回路220−1〜220
−nから得られる分岐情報を利用して分岐先アドレスを
計算し、分岐先命令読出信号を発生するアドレス生成回
路41と、アドレス生成回路41の出力と命令キャッシ
ュ30からの読出要求とに応答して、セレクタ33に対
する選択信号とメモリ22に対する読出信号を出力する
読出信号発生回路49と、読出信号発生回路49の出力
に応答して、命令キャッシュ30への制御信号を発生す
るためのキャッシュ制御信号発生回路43を含む。図1
2に示す分岐命令解析回路220−1〜220−nはそ
れぞれ同一の構成を呈する。以下、mは、1〜nの任意
の整数を表すものとする。
な動作は、命令解析部5において、命令レジスタ40に
格納された読出ブロックの内容を解析し、分岐命令があ
るか否かを判断し、分岐命令がある場合、分岐先アドレ
スを計算し、その命令を含むブロックをメモリ22から
命令キャッシュ30に転送する制御信号を生成する。以
下に詳しく説明する。
レジスタ40−mに格納されている命令を解析し、分岐
命令であるか否かを検出し、分岐命令である場合、その
分岐命令が、PC相対分伎、絶対アドレス分岐、それ以
外を判定し、分岐命令の種類と、PC相対分岐の場合は
オフセットを分岐先情報とし、絶対アドレス分岐の場合
は分岐アドレスを分岐先情報として、アドレス生成回路
41に転送する。この際、PC相対分岐、絶対アドレス
分岐以外の分岐の場合は、分岐先アドレスが計算できな
いため、分岐命令以外と同様の扱いを行なう。
析回路220−1〜220−nから与えられた分岐先情
報とアドレスレジスタ44の出力を利用して、分岐先ア
ドレスを計算する。PC相対分岐の場合は、分岐命令の
アドレス+オフセットを、絶対アドレス分岐の場合は、
分岐先情報によって得られたアドレスを分岐先アドレス
とする。また、分岐命令解析回路220−1〜220−
nの出力を利用して、分岐命令(PC分岐、絶対アドレ
ス分岐)が含まれる場合、分岐先の命令を含む分岐先ブ
ロックをメモリ22から読みだすための分岐先命令読出
信号を生成する。分岐命令以外の命令のみ場合、分岐先
命令読出信号は生成しない。
シュ30からの読出要求と、アドレス生成回路41の出
力である分岐先命令読出信号とに基づき、メモリ22に
対する読出要求を出力する。また、命令キャッシュ30
からの読出要求がある場合は、命令キャッシュ30から
与えられるアドレスを選択し、分岐先命令読出信号が生
成されている場合、アドレス生成回路41の出力である
分岐先アドレスの選択を指示する選択信号をセレクタ3
3に送信する。ただし、命令キャッシュ30からの読出
要求はアドレス生成回路41からの分岐先命令読出信号
より優先する。
読出信号発生回路49から読出信号を受け取り、命令キ
ャッシュ30を制御する制御信号を命令キャッシュ30
に出力する。
成を示すブロック図であり、図14は解析部51の内部
構成を示すブロック図である。
を図13を用いて説明する。図13に示すように、分岐
命令解析回路220−mは、命令レジスタ40−mに格
納されている命令をデコードし、オペコードと分岐先ア
ドレスを計算するための絶対アドレスあるいはオフセッ
トを生成するデコード回路50と、オペコードを受取
り、命令が絶対分岐か、PC分岐か、それ以外かを解析
する解析部51とからなる。
分岐命令のオペコードを記憶する記憶部52と、PC相
対分岐命令のオペコードを記憶する記憶部53と、記憶
部52の出力とデコード回路50から出力されるオペコ
ードを入力とする比較回路54と、記憶部53の出力と
オペコードとを入力する比較回路55と、比較回路54
の出力結果と比較回路55の出力結果を入力とし、比較
回路54の出力と比較回路55の出力のどちらかが
“1”の場合に“0”を出力するXNORゲート56と
からなる。種類を表す信号は、比較回路54、55、X
NORゲート56それぞれの出力を合わせて3ビットに
し、比較回路54の出力は第1ビット、比較回路55の
出力は第2ビット、XNORゲート56の出力は第3ビ
ットとして命令の種類を表す。即ち、信号の値が“1”
の場合は、絶対分岐、”2”の場合は、PC相対分
岐、”4”の場合は、分岐命令でないことを表す。
0−mの命令をデコードし、オペコードと分岐先アドレ
スを計算するための絶対アドレスもしくはオフセットを
生成する。このデコード回路500は、CPU内のデコ
ード回路から、分岐命令を検出し、絶対アドレスもしく
はオフセットを検出する機能のみを取り出して簡単化し
たもので十分である。
て、デコード回路50から得られるオペコードと記憶部
52に記憶されている絶対分岐命令のオペコードとを比
較する。また、比較回路55によって、デコード回路5
0から得られるオペコードと記憶部53に記憶されてい
る相対分岐命令のオペコードとを比較する。分岐命令が
絶対分岐の場合は、比較回路54の出力が“1”とな
り、PC相対分岐の場合は、比較回路55の出力が
“1”となり、それ以外の場合は、XORゲートの出力
が“1”となる。これらの信号は、命令の種類を表す信
号としてアドレス生成回路41へ送られる。
を示すブロック図である。同図に示すように、アドレス
生成回路41は、アドレスレジスタ44と分岐命令解析
回路220−1〜220−nの出力にしたがって、分岐
先のアドレスを生成する分岐先アドレス生成回路11−
1〜11−nと分岐先アドレス生成回路11−1〜11
−nより得られる分岐先アドレスの1つを分岐命令解析
回路220−1〜220−nの出力にしたがって選択す
るセレクタ264、と分岐命令解析回路220−1〜2
20−nの出力にしたがって読出信号を生成する読出回
路265とからなる。分岐先アドレス生成回路11−m
は、アドレスレジスタ44の値と、mを加算する加算器
261と、加算器261の出力結果とオフセットとを加
算する加算器262と、分岐命令解析回路220−mか
ら得られた命令の種類を示す信号にしたがって加算器2
62の出力結果か絶対アドレスを選択するセレクタ26
3からなる。
する。
る命令が分岐命令である場合、分岐先アドレスは、分岐
先アドレス生成回路11−mで計算される。加算器26
1は、アドレスレジスタ44に格納されている命令レジ
スタ内にある読出ブロックのアドレスと、命令が格納さ
れているレジスタの番号mを加算する。これは、分岐命
令のアドレスを知るためである。加算器262は、加算
器261の出力と、分岐命令解析回路220−mより得
られたオフセットを加算し、分岐先アドレスを計算す
る。セレクタ263では、命令がPC分岐の場合加算器
262の出力を、絶対アドレス分岐の場合は、分岐命令
解析回路220−mの出力である絶対アドレスを選択す
る。
成回路11−1〜11−nの出力の中から、分岐命令解
析回路220−1〜220−nの命令の種類を表す信号
にしたがって、分岐先アドレスを選択する。例えば、命
令kが分岐命令である場合、40−kの分岐命令の種類
を表す信号が“1”または、”2”になる。セレクタ2
64は、この信号にしたがって、分岐先アドレス生成回
路11−kの出力結果を分岐先アドレスとして選択す
る。
回路220−1〜220−nの出力である命令の種類の
信号の中に、一つでも分岐命令であることを示す信号が
あれば、分岐先の命令を読みだす必要があることを示す
分岐先読出信号を生成する。
を示すブロック図である。同図に示すように、読出信号
発生回路49は、命令キャッシュ30より与えられる読
出要求を一旦ラッチするラッチ80と、アドレス生成回
路41から出力される分岐先読出信号とラッチ80の出
力とに接続されたANDゲート84と、ANDゲート8
4の出力と、命令キャッシュ30からの読出要求とが与
えられるORゲート86とから構成される。ANDゲー
ト84からの出力が、セレクタ33に対する選択信号、
ORゲート86の出力がメモリ22に対する読出信号と
なる。なお、ラッチ80はCPU18の動作用のクロッ
クCKをさらに受け、このクロックCKに同期して命令
キャッシュ30から得られる読出要求を記憶する。
する。
らの読出要求を一旦ラッチし、ANDゲート84に与え
る。従って、ANDゲート84は、最初に命令キャッシ
ュ30から読出要求がメモリ22に与えられたのと1ク
ロック遅れてアドレス生成回路41から得られる分岐先
読出信号をセレクタ33およびORゲート86に与え
る。アドレス生成回路41の分岐先読出信号が真なら
ば、ANDゲート85から読出信号が出力され、セレク
タ33は、分岐先アドレスを選択することになる。
0からの読出要求とANDゲート85の出力との論理和
を取り、読出信号としてメモリ22に与える。従って、
メモリ22は、最初、命令キャッシュ30から読出要求
があったブロックを命令レジスタ40にあたえ、命令キ
ャッシュ30は、命令レジスタ40の出力を格納する。
次に、命令レジスタ40に格納された命令の中に分岐命
令があった場合、メモリ22は、分岐先ブロックを命令
レジスタ40に与え、命令キャッシュ30は、命令レジ
スタ40の出力を格納する。
回路43は、命令キャッシュ30からメモリ22に対す
る読出要求が出力された後、命令レジスタ40に1ブロ
ックのデータが格納されると、命令キャッシュ30に対
して命令レジスタ40の出力を格納する制御信号を発生
するためのものである。このとき、命令レジスタ40を
介さずに直接メモリ22の出力を格納するように構成し
てもよい。
と、分岐先の命令がキャッシュ内に格納されていない可
能性が高い。そこで、第4の実施例の先行読出機能付命
令キャッシュメモリのように、あらかじめ命令キャッシ
ュに分岐先の命令を転送しておけば、キャッシュミスが
生じる可能性が低減され、システムの性能向上につなが
る効果を奏する。
が分岐する確率が高い絶対分岐命令あるいはPC相対分
岐命令のときに、分岐先ブロックを主記憶であるメモリ
22から命令キャッシュ30に転送するようにすること
により、効率的に命令キャッシュ30に分岐先ブロック
を取り込むことができる。
分岐先ブロックが既にキャッシュ内にある場合は、メモ
リ22からブロックを読みだす必要がない。このように
構成することにより分岐先の命令を含むブロックがキャ
ッシュ内にあるかどうかを検知し、既に存在する場合
は、読み出しを行なわないように制御できる。
行読み出し機能付命令キャッシュメモリの構成を示すブ
ロック図である。同図に示すように、読出制御部4はセ
レクタ33からレジスタ44に転送される読出アドレス
と命令解析部6からの読出要求とがCPU18からアク
セス要求と等価な疑似アクセス要求として命令キャッシ
ュ30に出力される。なお、他の構成は図11で示した
第4の実施例の先行読出機能付命令キャッシュメモリと
同様である。
タ33の内部構成を示すブロック図である。
33の出力であるアドレスと命令解析部6内のアドレス
生成回路41から出力される分岐先読出信号とを、通常
CPU18から与えられる命令キャッシュ30へのアク
セス要求と等価な疑似アクセス要求として与える。さら
に、アドレス生成回路41から出力される分岐先読出信
号は、選択信号としてセレクタ33に与えられるがメモ
リ22には与えられない。また、読出信号発生回路49
が取り除かれる。他の構成は図12で示した第4の実施
例の命令解析部5と同じである。
作は、図12と同様である。異なる点を以下に示す。
岐先アドレスは、分岐先読出信号にを受けるセレクタ3
3で選択され、命令キャッシュ30へ送られる。また、
アドレス生成回路41の出力である分岐先読出信号は命
令キャッシュ30に送られる。すなわち、アドレス生成
回路41から出力される分岐先読出信号及び分岐先アド
レスが疑似アクセス要求てして命令キャッシュ30に送
られる。
30は、命令キャッシュ30内に分岐先アドレスを含む
分岐先ブロックが存在しない場合は、通常のキャッシュ
ミス動作を行い、読出要求を命令解析部6に出力し、読
出アドレスをセレクタ33に出力することにより、メモ
リ22から分岐先ブロックの内容を取り込む。
ロックが存在する場合に、読出要求及び読出アドレスが
出力されないため、分岐先ブロックがメモリ22から取
り込まれることはない。
を構成することにより、読出ブロック内に分岐命令が存
在し、かつ命令キャッシュ30内に分岐先アドレスを含
む分岐先ブロックが存在いない場合に、はじめて分岐先
ブロックをメモリ22から命令キャッシュ30に転送し
ている。
ッシュ30に存在するにもかかわらずメモリ22〜命令
キャッシュ30への分岐先ブロックのメモリアクセスが
行なわれないため、効率的なメモリアクセスを行うこと
ができる。
第6の実施例である先行読出機能付命令キャッシュメモ
リの読出信号発生回路49を示すブロック図である。な
お、第6の実施例の全体構成は図11で示した第4の実
施例の構成と同様であり、命令解析部5の内部構成は図
12で示した第4の実施例と同様である。
出ブロックと等しい場合もありうる。この場合に、もう
一度同じブロックを読みだすことは無駄である。第6の
実施例の先行読出機能付命令キャッシュメモリは、この
無駄を省く機能を付けたものである。
施例の先行読出機能付命令キャッシュメモリと同じであ
るが、図11のアドレス生成回路41の出力である分岐
先アドレスと、アドレスレジスタ44の出力を読出信号
発生回路49の入力として付加する必要がある。
生回路49との相違点を図19を用いて説明する。第6
の実施例の読出信号発生回路49は、図16の読出信号
発生回路49の構成に、アドレスレジスタ44の出力と
アドレス生成回路41の出力である分岐先アドレス入力
とする比較回路73と、比較回路73の出力の否定とA
NDゲート85の出力を入力とし、ORゲート86に接
続されるANDゲート84を付加した構成である。
路49と同様である。異なる点を以下に示す。
計算された分岐先アドレスとアドレスレジスタ内のアド
レスを比較する。比較回路73の出力は、信号を反転さ
せて、ANDゲート84に与えられる。
5の出力と比較回路73の出力の反転された信号の論理
積を取り、アドレスが等しくなく、かつ、読出ブロック
内に分岐命令を含む場合、分岐先の命令を読みだすため
の読出信号を発生させる。この信号は、セレクタ33へ
の選択信号となる。
の出力と、ラッチ80の論理和を取り、命令キャッシュ
30からの読出信号がある場合と、命令キャッシュから
の読出信号があった次のサイクルで、分岐先命令を含む
分岐先ブロックを読みだす必要がある場合に、メモリ2
2に対する読出信号を発生させる。
回路49を構成することにより、第4の実施例の効果に
加え、現在読み出している読出ブロックに分岐先の命令
が含まれる場合、無駄なメモリアクセスを行なう必要が
なくなり、次に続くメモリアクセスに影響することがな
い。したがって、より効率的に分岐先ブロックを命令キ
ャッシュ30に転送することができる。
第7の実施例である先行読出機能付命令キャッシュメモ
リの分岐命令解析回路220−mに含まれる解析部51
の構成を示すブロック図である。なお、第7の実施例の
全体構成は図11で示した第4の実施例の構成と同様で
あり、命令解析部5の内部構成は図12で示した第4の
実施例と同様である。
分岐しない場合、分岐先の命令をキャッシュに取り込む
必要はない。また、分岐命令が分岐するか否かはある程
度予測できる。そこで、分岐命令があると必ず分岐先の
命令を含む分岐先ブロックをキャッシュに読み込むので
はなく、ある程度予測して、必要と思われる場合にのみ
読み込む機能を付加したのが第7の実施例である。
施例の解析部51と同じである。図14の解析部51と
の相違点を図20を用いて説明する。第7の実施例の解
析部51は、図14の構成に、デコード回路50の出力
であるオペコードを入力とし、分岐予測信号を発生する
分岐予測回路59と、分岐予測信号と比較回路54の出
力を入力とし論理積を出力するANDゲート57と分岐
予測信号と比較回路55の出力を入力とし論理積を出力
するANDゲート58とを付加したものである。そし
て、ANDゲート57及び58それぞれの出力がXNO
Rゲート56の入力となる。したがって、種類を表す信
号は、ANDゲート57、58、XNORゲート56そ
れぞれの出力を合わせて3ビットにし、ANDゲート5
7の出力は第1ビット、ANDゲート58の出力は第2
ビット、XNORゲート56の出力は第3ビットとして
命令の種類を表す。即ち、信号の値が“1”の場合は、
絶対分岐、”2”の場合は、PC相対分岐、”4”の場
合は、分岐命令でないことを表す。
作と同様である。異なる点を以下に示す。
べ、分岐すると予測できる場合、分岐予測信号を生成す
る。
対分岐と等しいか否かを比較する比較回路54の出力
と、分岐予測信号の論理積を取り、オペコードが絶対分
岐命令であり、分岐すると予測される場合、分岐先ブロ
ックの読み出しが必要な絶対分岐命令であることを示す
信号を発生する。
C相対分岐と等しいか否かを比較する比較回路55の出
力と、分岐予測信号の論理積を取り、オペコードがPC
相対分岐であり、分岐すると予測される場合、分岐先ブ
ロックの読み出しが必要なPC相対分岐命令であること
を示す信号を発生する。
1を用いて説明する。図21においては、分岐予測命令
をあらかじめ定めておく。分岐予測回路59は、分岐予
測命令を記憶する記憶部281と、記憶部281の出力
とオペコードとを入力とする比較回路282とから構成
される。
る。
あることを意味する、分岐予測命令を予め設定してお
く。例えば、命令のビット列の第1ビットから第3ビッ
トまでが1の場合は、分岐予測命令であると定める。
においては、あらかじめ定められた分岐予測命令を格納
しておく。例えば、1.で定めたように命令の第1ビッ
トから第3ビットまでが1の場合に分岐予測命令である
とすると、記憶部281においては第1ビットから第3
ビットまでが、1であるデータを記憶しておく。
ードと、記憶部281の値とを比較し、命令が分岐予測
命令である場合、分岐予測信号を生成する。例えば、上
記したように分岐予測命令を設定した場合、比較回路2
82においてオペコードの第1ビットと記憶部281の
第1ビットを比較、同様に第2ビット、第3ビットを比
較し全てが一致していたら分岐予測命令であると判断
し、分岐予測信号を生成する。
成し、分岐予測回路を図21のように構成することによ
り、命令が、あらかじめ定められた分岐予測命令である
か否を検出できる。
シュメモリは、以上の機能を付加することにより、分岐
命令が分岐しないと予測される場合に、分岐先ブロック
をメモリから読みだすことがなく、無駄なメモリアクセ
スが行なわれず、次に続くメモリアクセスに影響するこ
とがない。したがって、より効率的に分岐先ブロックを
命令キャッシュ30に転送することができる。
第8の実施例である先行読出機能付命令キャッシュメモ
リの分岐予測回路59の構成を示すブロック図である。
なお、第8の実施例の全体構成は図11で示した第4の
実施例の構成と同様であり、命令解析部5の内部構成は
図12で示した第4の実施例と同様である。
約50%の確率で分岐が生じ、後方分岐の場合には、か
なり高い確率で分岐が生じる。そのため、後方分岐の場
合、分岐すると予測して、分岐予測命令として扱っても
よい。図22は、分岐命令が後方分岐である場合、分岐
予測信号を発生するものである。
した解析部51の構成において、分岐予測回路59に対
し、図11のアドレスレジスタ44の出力と、図13の
デコード回路50の出力である絶対アドレスまたは、オ
フセットがをさらに入力される。図22で示す第8の実
施例の分岐予測回路59は、図11で示したアドレスレ
ジスタ44の出力と図13で示したデコード回路50の
出力とを入力とし、減算結果を図20のANDゲートに
接続する減算器283と、図13のデコード回路50の
出力を入力とし、比較結果を図20のANDゲート58
に接続する比較器284とからなる。
ジスタ44の出力である分岐先ブロックのアドレスか
ら、図13のデコード回路50の出力である絶対アドレ
スを減算して、正の値ならば、後方分岐であるとして分
岐予測信号を図20のANDゲート57に出力する。
路50の出力であるオフセットが負の値であるかどうか
を比較し、負の値ならば、後方分岐であるとして分岐予
測信号を図20のANDゲート58に出力する。
0%の確率で分岐が生じ、後方分岐の場合はかなり高い
確率で分岐が生じる。そのため、後方分岐の場合、分岐
すると予測し、分岐予測命令として扱う。このように構
成することにより、第8の実施例の分岐予測回路59
は、第7の実施例の分岐予測回路59のようにあらかじ
め分岐予測命令を設定することなく、第7の実施例と同
様の効果を得ることができる。
第9の実施例である先行読出機能付命令キャッシュメモ
リの分岐予測回路59の構成を示すブロック図である。
なお、第9の実施例の全体構成は図11で示した第4の
実施例の構成と同様であり、命令解析部5の内部構成は
図12で示した第4の実施例と同様である。
す可能性の高い分岐命令に、分岐先ブロックを主記憶か
ら読みだすことを規定する分岐情報ビットを付加してお
く。そして、命令解析部5は、分岐命令に分岐情報ビッ
トが立っているか否かを検出し、その結果に基づいて分
岐予測信号を出力するが第9の実施例である。
す第9の実施例の分岐予測回路59は、オペコード中の
1ビット(分岐情報ビット)を入力とし、その分岐情報
ビットが“1”であるか否かを比較して、その比較結果
に基づき分岐予測信号を出力する比較回路285から構
成される。
59は以下のように動作する。
るかどうかを比較し、“1”であれば分岐予測信号を出
力し、そうでなければ分岐予測信号を出力しない。
施例の分岐予測回路59は、1ビットのオペコードを比
較するだけで分岐予測信号を出力することができ、第7
及び第8の実施例と同様の効果を得ることができる。
第10の実施例である先行読出機能付命令キャッシュメ
モリにおける分岐命令解析回路220−mと読出信号発
生回路49の構成を示すブロック図である。なお、第1
0の実施例の全体構成は図11で示した第4の実施例の
構成と同様であり、命令解析部5の内部構成は図12で
示した第4の実施例と同様である。
岐先ブロックを読みだすことを示す先行読み出し命令
を、分岐先の命令を含むブロックを読みだす必要がある
分岐命令と同じブロック内に挿入しておく。
示した分岐命令解析回路220の構成に、命令が先行読
み出し命令であるか否かを判定する機能を付加したもの
である。分岐命令解析回路220−mは、図13の構成
に加えて、先行読み出し命令のオペコードを記憶する記
憶部290と、記憶部290の出力とデコード回路50
の出力であるオペコードを入力とし、比較結果を出力と
する比較回路291とをさらに備えた構成となる。
は、図16で示した読出信号発生回路49の構成に加え
て、分岐命令解析回路220−1〜220−nの比較回
路291の出力を入力とするn入力のORゲート292
と、図11のアドレス生成回路41の出力である分岐命
令読出信号とORゲート93の出力を入力とするAND
ゲートを付加し、ANDゲート293の出力をANDゲ
ート84の入力に変更したものである。
る。
路291は、デコード回路50より得られたオペコード
と記憶部290の出力を比較し、命令が先行読み出し命
令の場合、先行読み出し命令であることを示す先行読み
出し命令信号を発生する。
92は、分岐命令解析回路220−1〜220−nの比
較回路291の出力の論理和を取り、ブロック内に先行
読み出し命令があるか否かをANDゲート293に与え
る。
レス生成回路41の出力である分岐命令読出信号とOR
ゲート292の出力の論理積を取って、分岐先ブロック
を読み出す必要があることを示す信号を生成しANDゲ
ート85に転送する。
ロック内に先行読み出し命令が存在するときのみ分岐先
ブロックを読みだせばよく、無駄なメモリアクセスを行
なう必要がなくなり、次に続くメモリアクセスに影響す
ることがない。したがって、より効率的に分岐先ブロッ
クを命令キャッシュ30に転送することができる。
かっているブロックやその確率が高いブロックなど、分
岐先ブロックを読出す必要のある、またはその必要性の
高いブロックに先行読み出し命令を含ませておけば、好
便に分岐先ブロックを読出してアクセスに備えることが
できる。
出機能付命令キャッシュメモリにおいて、命令解析手段
は主記憶から読出され、命令補助記憶装置に転送される
ブロックである読出ブロックに含まれる命令を解析し
て、読出ブロックに続くブロックである次ブロックを主
記憶から読出すことが必要か否かが予測する。そして、
次ブロック読出手段は、命令解析手段により主記憶から
の読み出しが必要であると予測された場合、次ブロック
を主記憶から読出し、命令補助記憶装置に転送する。
付命令キャッシュメモリは、読出ブロックの命令の実行
に先立って、必要に応じて次ブロックの転送を行うこと
により、次ブロックへのアクセス要求が発生したときに
ミスが発生しないようにしている。
とが必要か否かの命令解析手段による予測に基づき次ブ
ロックの読出しが行なわれるので、不要なブロックが読
出されてしまう可能性は低い。
の低い命令キャッシュメモリを得ることができる。
キャッシュメモリの命令解析手段の予測手段は、読出ブ
ロック内に、分岐予測命令が存在しない場合に、次ブロ
ックを読出すことが必要であると予測する。
岐命令が存在している場合には次ブロックを読出しても
そのブロックがアクセスさせる可能性は低いため、次ブ
ロックがアクセスされる可能性が高い分岐予測命令が存
在しない場合のみに次ブロックを読出すことが必要であ
ると予測している。したがって、次ブロック読出手段が
不要なブロックを読出す可能性が低下する。
が低く、かつシステム全体の性能を向上させることがで
きる命令キャッシュメモリを得ることができる。
キャッシュメモリの命令解析手段における予測手段は、
分岐すると予測される命令である分岐予測命令が存在し
ていた場合でも、それが当該読出ブロックと次ブロック
との領域外に分岐すると予測される命令でない場合に
は、次ブロックを読出すことが必要であると予測する。
っても、読出ブロックと次ブロック内に分岐する命令で
あれば、次ブロックがアクセスされる可能性は高いた
め、次ブロックを読出すことが必要であると予測してい
る。
の低い命令キャッシュメモリを得ることができる。
キャッシュメモリでは、分岐予測命令検出手段により、
読出ブロックに含まれる分岐予測命令が検出されると、
前方分岐判定手段により、検出された分岐予測命令が前
方分岐か否かが判定される。そして、予測手段により、
検出された分岐予測命令が前方分岐であると判定された
場合に、次ブロックを読出すことが必要であると予測さ
れる。
後方分岐の場合には他のブロックに分岐することが多い
が、前方分岐では他のブロックに分岐する確率が低いた
め、次ブロックを読出すことが必要であると予測してい
る。
測することにより、キャッシュミスの発生する確率が低
く、かつシステム全体の性能を向上させることができる
命令キャッシュメモリを得ることができる。
キャッシュメモリの命令解析手段における予測手段は、
読出ブロックに特定の命令が存在することを検出して、
次ブロックを読出すことが必要であると予測する。
ら分岐しないことがわかっているブロックやその確率が
高いブロックなど、次ブロックを読出す必要のある、ま
たはその必要性の高いブロックに特定の命令を含ませて
おけば、好便に次ブロックを読出してアクセスに備える
ことができる。
の低い命令キャッシュメモリを得ることができる。
機能付命令キャッシュメモリにおいて、命令解析手段
は、主記憶から読出され、命令補助記憶装置に転送され
る読出ブロックに含まれる命令を解析して、分岐命令を
含む場合に分岐先アドレスを計算し、当該分岐先アドレ
スの命令を含むブロックである分岐先ブロックを主記憶
から読み出す必要があるか否かを判定する。そして、分
岐先ブロック読出手段は分岐先ブロックの読み出しが必
要と判定された場合、分岐先ブロックを主記憶から読出
して、命令補助記憶装置に格納させる。
付命令キャッシュメモリは、読出ブロックの命令の実行
に先立って、必要に応じて分岐先ブロックの転送を行う
ことにより、分岐先ブロックへのアクセス要求が発生し
たときにミスが発生しないようにしている。
すことが必要か否かの命令解析手段による判断に基づき
分岐先ブロックの読出しが行なわれるので、不要な分岐
先ブロックが読出されてしまう可能性は低い。
の低い命令キャッシュメモリを得ることができる。
キャッシュメモリの命令解析手段の判定手段は、分岐命
令が絶対分岐命令あるいはプログラムカウンタ相対分岐
命令である場合に、分岐先ブロックを主記憶から読み出
すことが必要であると判定する。
グラムカウンタ相対分岐命令が存在している場合は分岐
先ブロックがアクセスされる可能性が高いため、判定手
段の上記判定の精度は高い。
記憶装置に取り込みながら、キャッシュミスの発生する
確率が低く、かつシステム全体の性能を向上させること
ができる命令キャッシュメモリを得ることができる。
キャッシュメモリの命令解析手段における判定手段は、
分岐先アドレスが読出ブロックの領域外にあるアドレス
の場合に、分岐先ブロックを主記憶から読み出すことが
必要であると判定する。
ても、読出ブロックに分岐する命令であれば、分岐先ブ
ロックを読み出す必要はないと判定することにより、判
定精度をさらに向上させている。
記憶装置に取り込みながら、キャッシュミスの発生する
確率がさらに低い命令キャッシュメモリを得ることがで
きる。
キャッシュメモリは、分岐命令が分岐する可能性が高い
か否かを予測する分岐予測手段と、分岐予測手段が分岐
命令の分岐可能性が高いと予測した場合に、分岐先ブロ
ックを主記憶から読み出すことが必要であると判定する
判定手段とを備えている。
測に基づき、分岐先ブロックを主記憶から読み出すこと
が必要であるか否かを判定することにより、判定精度を
さらに向上させている。
記憶装置に取り込みながら、キャッシュミスの発生する
確率がさらに低い命令キャッシュメモリを得ることがで
きる。
令キャッシュメモリの分岐予測手段は、分岐命令が記憶
手段に記憶された分岐する可能性が高い種別である場
合、分岐命令が分岐する可能性が高いと予測することに
より、高い精度の分岐予測を行っている。
令キャッシュメモリの分岐予測手段は、分岐先アドレス
が分岐命令が格納されたアドレスより小さい分岐命令、
すなわち後方分岐の場合には分岐する可能性高いと予測
することにより、高い精度の予測を行っている。
令キャッシュメモリにおいて、分岐する可能性が高い分
岐命令の種別に対し、そのことを指示する所定ビットの
分岐情報があらかじめ付加されており、分岐予測手段
は、分岐命令に分岐情報が存在する場合、分岐命令が分
岐する可能性が高いと予測することにより、高い精度の
予測を行っている。
令キャッシュメモリの命令解析手段における判定手段
は、読出ブロックに特定の命令が存在することを検出し
た場合、分岐先ブロックを主記憶から読み出すことが必
要であると判定する。
から分岐することがわかっているブロックやその確率が
高いブロックなど、分岐先ブロックを読出す必要のあ
る、またはその必要性の高いブロックに特定の命令を含
ませておけば、好便に分岐先ブロックを読出してアクセ
スに備えることができる。
記憶装置に取り込みながらキャッシュミスの発生する確
率の低い命令キャッシュメモリを得ることができる。
出機能付命令キャッシュメモリの先行読出制御手段は、
主記憶から読出され、命令補助記憶装置に転送される読
出ブロックに含まれる命令を解析して、分岐命令を含む
場合に分岐先アドレスを計算し、当該分岐先アドレスの
命令を含むブロックである分岐先ブロックの読み出しを
指示するアクセス要求と等価な疑似アクセス要求を補助
記憶装置に出力する。
ロックに分岐命令が存在する場合、補助記憶装置に対す
る分岐先ブロックでのアクセスを行うため、分岐先ブロ
ックが補助記憶装置に存在しないとき、補助記憶装置は
主記憶に対する分岐先ブロックの読み出しを要求して、
分岐先ブロックを自動的に取り込み、分岐先ブロックが
補助記憶装置に存在するとき、分岐先ブロックの読み出
し要求を発しないため主記憶には全くアクセスしない。
ブロックが存在する場合には、メモリアクセスが行なわ
れないため、主記憶から補助記憶装置への分岐先ブロッ
クの転送を効率的に行うとともに、キャッシュミスの発
生する確率が低い命令キャッシュメモリを得ることがで
きる。
能付命令キャッシュメモリの構成を示すブロック図であ
る。
ブロック図である。
ック図である。
図である。
付命令キャッシュメモリの構成を示すブロック図であ
る。
ブロック図である。
すブロック図である。
ック図である。
付命令キャッシュメモリの命令解析部の内部構成を示す
ブロック図である。
部のブロック図である。
し機能付き命令キャッシュの構成を示すブロック図であ
る。
すブロック図である。
成を示すブロック図である。
ロック図である。
成を示すブロック図である。
成を示すブロック図である。
し機能付き命令キャッシュの構成を示すブロック図であ
る。
すブロック図である。
能付命令キャッシュメモリにおける読出信号発生回路内
部構成を示すブロック図である。
能付命令キャッシュメモリにおける分岐命令解析回路内
の解析部の内部構成を示すブロック図である。
の内部構成を示すブロック図である。
能付命令キャッシュメモリにおける分岐命令解析回路内
の解析部の中の分岐予測回路の内部構成を示すブロック
図である。
能付命令キャッシュメモリにおける分岐命令解析回路内
の解析部の中の分岐予測回路の内部構成を示すブロック
図である。
機能付命令キャッシュメモリにおける分岐命令解析回路
及び読出信号発生回路の内部構成を示すブロック図であ
る。
る。
命令解析部、16 カウンタ、20,100 先行読出
機能付命令キャッシュメモリ、30,104命令キャッ
シュメモリ、32,102,180 先行読出制御部、
40 命令レジスタ、41 アドレス生成回路、43
キャッシュ制御信号発生回路、44アドレスレジスタ、
48 セレクタ、49 読出信号発生回路、59 分岐
予測回路、64 コントロール信号発生回路、72,1
36,138,162,194 一致検出回路、62−
1〜62−n,130,182−1〜182−n 分岐
予測命令検出回路、132 分岐先アドレス計算回路。
Claims (14)
- 【請求項1】 主記憶と処理装置との間にそれぞれの動
作速度の相違をバッファリングするために設けられ、前
記処理装置から与えられるアクセス要求に応答して、前
記主記憶との間でブロック単位で命令情報の授受を行な
う命令補助記憶装置と、 前記主記憶から読出され、前記命令補助記憶装置に転送
される読出ブロックに含まれる命令を解析して、前記読
出ブロックに続くブロックである次ブロックを前記主記
憶から読み出すことが必要か否かを予測する命令解析手
段と、 前記命令解析手段の予測に応答して、前記次ブロックの
読み出しが必要であると予測された場合、前記次ブロッ
クを前記主記憶から読出して、前記命令補助記憶装置に
格納させるための次ブロック読出手段とを備える、先行
読出機能付命令キャッシュメモリ。 - 【請求項2】 前記命令解析手段は、前記読出ブロック
内に、分岐すると予測される命令である分岐予測命令が
存在しないことを検出して、前記次ブロックを読み出す
ことが必要であると予測する予測手段を備える、請求項
1記載の先行読出機能付命令キャッシュメモリ。 - 【請求項3】 前記命令解析手段は、前記読出ブロック
と前記次ブロックとの領域外に分岐すると予測される命
令でないことを検出して、前記次ブロックを読出すこと
が必要であると予測する予測手段を含む、請求項1記載
の先行読出機能付命令キャッシュメモリ。 - 【請求項4】 前記命令解析手段は、 前記読出ブロック内から分岐すると予測される命令であ
る分岐予測命令を検出する分岐予測命令検出手段と、 前記分岐予測命令が、自身のアドレスより大きいアドレ
スに分岐する前方分岐か否かを判定する前方分岐判定手
段と、 前記分岐判定手段が前記分岐予測命令が前方分岐である
と判定した場合に、前記次ブロックを読出すことが必要
であると予測する予測手段とを含む、請求項1記載の先
行読出機能付命令キャッシュメモリ。 - 【請求項5】 特定の命令が予め定められており、 前記命令解析手段は、前記読出ブロックに前記特定の命
令が存在することを検出して、前記次ブロックを読出す
ことが必要であると予測する予測手段を含む、請求項1
記載の先行読出機能付命令キャッシュメモリ。 - 【請求項6】 主記憶と処理装置との間にそれぞれの動
作速度の相違をバッファリングするために設けられ、前
記処理装置から与えられるアクセス要求に応答して、前
記主記憶との間でブロック単位で命令情報の授受を行な
う命令補助記憶装置と、 前記主記憶から読出され、前記命令補助記憶装置に転送
される読出ブロックに含まれる命令を解析して、分岐命
令を含む場合に分岐先アドレスを計算し、当該分岐先ア
ドレスの命令を含むブロックである分岐先ブロックを前
記主記憶から読み出す必要があるか否かを判定する命令
解析手段と、 前記命令解析手段の判定に応答して、前記分岐先ブロッ
クの読み出しが必要と判定された場合、前記分岐先ブロ
ックを前記主記憶から読出して、前記命令補助記憶装置
に格納させるための分岐先ブロック読出手段とを備え
る、先行読出機能付命令キャッシュメモリ。 - 【請求項7】 前記命令解析手段は、前記分岐命令が絶
対分岐命令あるいはプログラムカウンタ相対分岐命令で
ある場合に、前記分岐先ブロックを前記主記憶から読み
出すことが必要であると判定する判定手段を備える、請
求項6記載の先行読出機能付命令キャッシュメモリ。 - 【請求項8】 前記命令解析手段は、前記分岐先アドレ
スが前記読出ブロックの領域外にあるアドレスの場合
に、前記分岐先ブロックを前記主記憶から読み出すこと
が必要であると判定する判定手段を備える、請求項6記
載の先行読出機能付命令キャッシュメモリ。 - 【請求項9】 前記命令解析手段は、前記分岐命令が分
岐する可能性が高いか否かを予測する分岐予測手段と、
前記分岐予測手段が前記分岐命令の分岐可能性が高いと
予測した場合に、前記分岐先ブロックを前記主記憶から
読み出すことが必要であると判定する判定手段とを備え
る、請求項6記載の先行読出機能付命令キャッシュメモ
リ。 - 【請求項10】 前記分岐予測手段は、 分岐する可能性が高い分岐命令の種別を記憶する記憶手
段を有し、 前記分岐命令が前記記憶手段に記憶された種別である場
合、前記分岐命令が分岐する可能性が高いと予測する、
請求項9記載の先行読出機能付命令キャッシュメモリ。 - 【請求項11】 前記分岐予測手段は、前記分岐先アド
レスが前記分岐命令が格納されたアドレスより小さい場
合、前記分岐命令が分岐する可能性が高いと予測する、
請求項9記載の先行読出機能付命令キャッシュメモリ。 - 【請求項12】 分岐する可能性が高い分岐命令の種別
に対し、そのことを指示する所定ビットの分岐情報があ
らかじめ付加されており、 前記分岐予測手段は、前記分岐命令に前記分岐情報が存
在する場合、前記分岐命令が分岐する可能性が高いと予
測する、請求項9記載の先行読出機能付命令キャッシュ
メモリ。 - 【請求項13】 特定の命令が予め定められており、 前記命令解析手段は、前記読出ブロックに前記特定の命
令が存在することを検出した場合、前記分岐先ブロック
を前記主記憶から読み出すことが必要であると判定する
判定手段を備える、請求項6記載の先行読出機能付命令
キャッシュメモリ。 - 【請求項14】 主記憶と処理装置との間にそれぞれの
動作速度の相違をバッファリングするために設けられ、
前記処理装置から与えられるアクセス要求に応答して、
前記主記憶との間でブロック単位で命令情報の授受を行
なう命令補助記憶装置を備え、前記命令補助装置は前記
アクセス要求で指示されるブロックの情報を保持してい
ない場合に、そのブロックの情報を前記主記憶から取り
込み、 前記主記憶から読出され、前記命令補助記憶装置に転送
される読出ブロックに含まれる命令を解析して、分岐命
令を含む場合に分岐先アドレスを計算し、当該分岐先ア
ドレスの命令を含むブロックである分岐先ブロックの読
み出しを指示する、前記アクセス要求と等価な疑似アク
セス要求を前記補助記憶装置に出力する先行読出制御手
段をさらに備える、先行読出機能付命令キャッシュメモ
リ。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP00352995A JP3590427B2 (ja) | 1994-08-30 | 1995-01-12 | 先行読出機能付命令キャッシュメモリ |
| US08/916,707 US5940857A (en) | 1994-08-30 | 1997-08-25 | Instruction cache memory apparatus with advanced read function that predicts whether to read out a next instruction block including an address register, a counter and a selector |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP20491894 | 1994-08-30 | ||
| JP6-204918 | 1994-08-30 | ||
| JP00352995A JP3590427B2 (ja) | 1994-08-30 | 1995-01-12 | 先行読出機能付命令キャッシュメモリ |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH08123723A true JPH08123723A (ja) | 1996-05-17 |
| JP3590427B2 JP3590427B2 (ja) | 2004-11-17 |
Family
ID=26337129
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP00352995A Expired - Fee Related JP3590427B2 (ja) | 1994-08-30 | 1995-01-12 | 先行読出機能付命令キャッシュメモリ |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5940857A (ja) |
| JP (1) | JP3590427B2 (ja) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08286914A (ja) * | 1995-04-07 | 1996-11-01 | Nec Corp | メモリ制御装置 |
| JP2007207246A (ja) * | 2006-02-03 | 2007-08-16 | Internatl Business Mach Corp <Ibm> | 命令ラインのための自己プリフェッチl2キャッシュ機構 |
| JP2008522320A (ja) * | 2004-12-02 | 2008-06-26 | クゥアルコム・インコーポレイテッド | ページ内のプログラムカウンター相対アドレスまたは絶対アドレスの分岐命令のためのtlbの抑制 |
| JP2009104614A (ja) * | 2008-11-25 | 2009-05-14 | Renesas Technology Corp | 情報処理装置 |
| JP2010512580A (ja) * | 2006-12-08 | 2010-04-22 | クゥアルコム・インコーポレイテッド | 低複雑性命令プリフェッチシステム |
| WO2020261377A1 (ja) * | 2019-06-25 | 2020-12-30 | 日本電気株式会社 | 半導体装置、制御フロー検査方法、非一時的なコンピュータ可読媒体及び電子機器 |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW373149B (en) * | 1997-07-02 | 1999-11-01 | Matsushita Electric Industrial Co Ltd | Program control method |
| US6092188A (en) * | 1997-12-23 | 2000-07-18 | Intel Corporation | Processor and instruction set with predict instructions |
| US6247107B1 (en) * | 1998-04-06 | 2001-06-12 | Advanced Micro Devices, Inc. | Chipset configured to perform data-directed prefetching |
| JP3798563B2 (ja) * | 1999-01-06 | 2006-07-19 | 株式会社東芝 | 命令キャッシュメモリ |
| US6725333B1 (en) * | 1999-04-22 | 2004-04-20 | International Business Machines Corporation | System and method for managing cachable entities |
| US6738895B1 (en) | 2000-08-31 | 2004-05-18 | Micron Technology, Inc. | Method and system for substantially registerless processing |
| DE10238914A1 (de) * | 2002-08-24 | 2004-03-04 | Robert Bosch Gmbh | Halbleiterspeicher mit einem ersten Tabellenspeicher und einem Zwischenspeicher |
| US6871246B2 (en) * | 2003-05-07 | 2005-03-22 | Freescale Semiconductor, Inc. | Prefetch control in a data processing system |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4714994A (en) * | 1985-04-30 | 1987-12-22 | International Business Machines Corp. | Instruction prefetch buffer control |
| US5440704A (en) * | 1986-08-26 | 1995-08-08 | Mitsubishi Denki Kabushiki Kaisha | Data processor having branch predicting function |
| US5197136A (en) * | 1987-11-12 | 1993-03-23 | Matsushita Electric Industrial Co., Ltd. | Processing system for branch instruction |
| US5230068A (en) * | 1990-02-26 | 1993-07-20 | Nexgen Microsystems | Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence |
| US5317718A (en) * | 1990-03-27 | 1994-05-31 | Digital Equipment Corporation | Data processing system and method with prefetch buffers |
| DE4211222B4 (de) * | 1991-04-05 | 2009-05-28 | Kabushiki Kaisha Toshiba, Kawasaki | Abzweigungs-Vorhersage-Vorrichtung und Abzweigungs-Vorhersage-Verfahren für einen Super-Skalar-Prozessor |
| US5442756A (en) * | 1992-07-31 | 1995-08-15 | Intel Corporation | Branch prediction and resolution apparatus for a superscalar computer processor |
| JP3254019B2 (ja) * | 1992-11-30 | 2002-02-04 | 富士通株式会社 | データ先読み制御装置 |
| GB2285154B (en) * | 1993-12-24 | 1998-04-01 | Advanced Risc Mach Ltd | Branch cache |
| US5574871A (en) * | 1994-01-04 | 1996-11-12 | Intel Corporation | Method and apparatus for implementing a set-associative branch target buffer |
-
1995
- 1995-01-12 JP JP00352995A patent/JP3590427B2/ja not_active Expired - Fee Related
-
1997
- 1997-08-25 US US08/916,707 patent/US5940857A/en not_active Expired - Lifetime
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08286914A (ja) * | 1995-04-07 | 1996-11-01 | Nec Corp | メモリ制御装置 |
| JP2008522320A (ja) * | 2004-12-02 | 2008-06-26 | クゥアルコム・インコーポレイテッド | ページ内のプログラムカウンター相対アドレスまたは絶対アドレスの分岐命令のためのtlbの抑制 |
| JP2007207246A (ja) * | 2006-02-03 | 2007-08-16 | Internatl Business Mach Corp <Ibm> | 命令ラインのための自己プリフェッチl2キャッシュ機構 |
| JP2010512580A (ja) * | 2006-12-08 | 2010-04-22 | クゥアルコム・インコーポレイテッド | 低複雑性命令プリフェッチシステム |
| JP2009104614A (ja) * | 2008-11-25 | 2009-05-14 | Renesas Technology Corp | 情報処理装置 |
| WO2020261377A1 (ja) * | 2019-06-25 | 2020-12-30 | 日本電気株式会社 | 半導体装置、制御フロー検査方法、非一時的なコンピュータ可読媒体及び電子機器 |
| JPWO2020261377A1 (ja) * | 2019-06-25 | 2020-12-30 | ||
| US11860762B2 (en) | 2019-06-25 | 2024-01-02 | Nec Corporation | Semiconductor device, control flow inspection method, non-transitory computer readable medium, and electronic device |
Also Published As
| Publication number | Publication date |
|---|---|
| US5940857A (en) | 1999-08-17 |
| JP3590427B2 (ja) | 2004-11-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5941981A (en) | System for using a data history table to select among multiple data prefetch algorithms | |
| JP3542021B2 (ja) | セット予測によりセット連想キャッシュの遅延を少なくする方法及び装置 | |
| US6230260B1 (en) | Circuit arrangement and method of speculative instruction execution utilizing instruction history caching | |
| US5758142A (en) | Trainable apparatus for predicting instruction outcomes in pipelined processors | |
| KR100411529B1 (ko) | 제2 레벨 분기 예측 테이블을 이용한 분기 예측 방법 및장치 | |
| US10067556B2 (en) | Branch prediction with power usage prediction and control | |
| US7506105B2 (en) | Prefetching using hashed program counter | |
| US5507028A (en) | History based branch prediction accessed via a history based earlier instruction address | |
| US6907520B2 (en) | Threshold-based load address prediction and new thread identification in a multithreaded microprocessor | |
| US6611910B2 (en) | Method for processing branch operations | |
| US6212603B1 (en) | Processor with apparatus for tracking prefetch and demand fetch instructions serviced by cache memory | |
| US5592634A (en) | Zero-cycle multi-state branch cache prediction data processing system and method thereof | |
| US6134633A (en) | Prefetch management in cache memory | |
| CN104731719B (zh) | 一种缓存系统和方法 | |
| EP0380854A2 (en) | Instruction buffer system for a digital computer | |
| US6012134A (en) | High-performance processor with streaming buffer that facilitates prefetching of instructions | |
| US20060248279A1 (en) | Prefetching across a page boundary | |
| CN101256481A (zh) | 数据处理器以及存储器读激活控制方法 | |
| JP3590427B2 (ja) | 先行読出機能付命令キャッシュメモリ | |
| US20060248280A1 (en) | Prefetch address generation implementing multiple confidence levels | |
| US20040225866A1 (en) | Branch prediction in a data processing system | |
| US20090217004A1 (en) | Cache with prefetch | |
| US7134004B1 (en) | Processing device for buffering sequential and target sequences and target address information for multiple branch instructions | |
| US20150193348A1 (en) | High-performance data cache system and method | |
| US6877069B2 (en) | History-based carry predictor for data cache address generation |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040513 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040608 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040729 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040817 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040820 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080827 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080827 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090827 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090827 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100827 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110827 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110827 Year of fee payment: 7 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110827 Year of fee payment: 7 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120827 Year of fee payment: 8 |
|
| LAPS | Cancellation because of no payment of annual fees |