JP2682264B2 - プログラムカウンタ装置 - Google Patents
プログラムカウンタ装置Info
- Publication number
- JP2682264B2 JP2682264B2 JP3115162A JP11516291A JP2682264B2 JP 2682264 B2 JP2682264 B2 JP 2682264B2 JP 3115162 A JP3115162 A JP 3115162A JP 11516291 A JP11516291 A JP 11516291A JP 2682264 B2 JP2682264 B2 JP 2682264B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- instruction
- bit
- selector
- prefetch
- 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.)
- Expired - Lifetime
Links
- 239000000872 buffer Substances 0.000 claims description 31
- 230000007246 mechanism Effects 0.000 description 15
- 238000000034 method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/3816—Instruction alignment, e.g. cache line crossing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
演算処理装置における命令プリフェッチ装置及び、プロ
グラムカウンタ装置に係り、特に、次に実行する命令の
命令アドレスを発生する装置に関する。
令を記憶装置のなかに記憶させ、その命令列を順次読み
だし実行することで演算処理を行なう。
ム型の演算処理装置において、現在実行中の命令中に次
に実行するべき命令のアドレスを記述することなしに、
前記現在実行中の命令の次の命令のアドレス、すなわ
ち、前記現在実行中の命令のアドレスに前記現在実行中
の命令の大きさ(バイト数)を加えたアドレスを、次に
実行する命令のアドレスとするために考えられた機構で
ある。
装置と外部とのインターフェースを有効に使用するため
の機構である。前記プログラムカウンタ方式の蓄積プロ
グラム型演算処理装置では、命令は、アドレス昇順に実
行されるため、前記演算処理装置の外部とのインターフ
ェースが空いている場合は、命令のプリフェッチ(先取
り)が可能である。
前記外部インターフェースを通して、命令及びデータを
取り込むが、前記外部インターフェースが1組しかない
場合、(アドレスバス/データバスで1組とする)デー
タアクセス及び、命令アクセスの共用となり、データア
クセス時は、前記外部インターフェースが占有され、命
令フェッチ(前記外部インターフェースを利用した、命
令の読み込みサイクル)が不可能である。前記外部イン
ターフェースが占有されている場合にプリフェッチをし
ておくことで、前記命令フェッチのパイプラインステー
ジの実行が可能となる。
(命令の占めるバイト数)づつ加算されるのに対し、前
記プリフェッチカウンタは、前記、外部インターフェー
スの一度に取り扱うことのできるデータのサイズ分だけ
加算される。前者は命令の種類によって変わり、一般的
に1/2/3/4バイトなどであるが、後者は、外部イ
ンターフェースのサイズにあたり、2バイト又は4バイ
ト固定というのが一般的である。このため両者の値は同
一でない。
に、プリフェッチアドレスと、命令アドレスについて言
及する。
スタを持つ。前記レジスタはバッファ・レジスタと呼ば
れ、FIFOになっている。
ップし、前記バッファレジスタに書き込れる命令のアド
レスを順次発生する。
参照し、連続した領域をバッファに取り込む。
ン機構ももち、バッファ中の命令列を命令単位に切り分
けて、実行ユニットに渡す。
ジスタが一杯になるまで、外部インターフェースが利用
できる間は可能の限りはバッファ・レジスタに命令の読
み込みを行なう。もし、バッファ・レジスタが一杯にな
った場合は、外部バスインターフェースからの命令読み
込みサイクルを停止する。
の動作である。
ユニットに渡される命令のアドレスで、これは、命令ア
ドレス発生機構で発生される。
のアドレスに、バッファレジスタから、実行ユニットに
引き渡される命令のサイズを加算した値である。
生の回路及び、前記命令アドレスの発生回路が独立に動
作し、次にプリフェッチされるアドレス及び、次に実行
される命令のアドレスの生成を行なうのが、一般的であ
る。
算器と命令アドレス生成用の加算器が別個に必要であ
り、アドレスのビット幅を持った加算器が2個必要にな
る。
のプログラムカウンタ及びプリフェッチ回路の構成を例
をあげて説明する。
構、及びプリフェッチアドレスを制御する機構を示す。
そって、外部から命令を先読みする回路である。
とデータを受渡しをするインターフェース・バスのバス
サイズとことなる大きさである場合は、非常に有効であ
る。
空きがある場合に実行される。次のプリフェッチアドレ
スは、現在のプリフェッチアドレスに、前記バスサイズ
を加算することで生成する。
多く、16/32/64ビットなどが通常使用される。
つまり、2/4/8バイトが一度に扱われる。
アドレスが記録されている。プリフェッチはレジスタ2
01の値をアドレスとして、メモリ204のアクセスを
する。
よって、命令のフェッチサイズを表す信号及び、現在の
プリフェッチアドレスを加算し、それを次のフェッチア
ドレスとするために、信号線220、セレクタ203を
とおして、レジスタ201に書き戻す。
チバッファ205に格納される。
チを全く新しいアドレスから開始する場合は、セレクタ
203から、分岐アドレスを信号213を用いて更新す
ることで、分岐アドレスのセットを行なう。
5によって、前回のサイクルと全く同様の値を書き戻
す。
る。命令アドレスの更新手順は以下の通りである。現在
のプログラム・カウンタの値はレジスタ208に記憶さ
れている。前記レジスタ208をアドレスとする命令コ
ードを、前記プリフェッチ・バッファ(記憶装置204
から直接プリフェッチバッファ205を通過して取り込
みこともある)から、とりだし、命令実行ユニットに対
して発行する。前記命令実行ユニットに対して発行した
データを命令としてデコードし、命令の大きさを判断す
る。前記命令の大きさと現在のプログラムカウンタの値
(命令アドレス)を加算器を用いて加算し、連続する次
の命令の命令アドレスを発生する。
流れを制御する命令によってプログラムカウンタに新し
い値をセットすることもできるように、前記加算器の出
力と、分岐アドレスを、セレクタ209で選択し、プロ
グラムカウンタレジスタの入力とする。
イズは32ビット幅で、加算器202のソースの一方2
26は”+4”である。ダイナミックバスサイズを考慮
する場合は、前記ソースの一方226の値は+1/+2
/+4のいずれかである。
ズが1/2/3/4/5というバイト可変長命令の場合
は、加算器207のソース225は+1/+2/+3/
+4/…という値をとる。
スからの命令取り込みは、プリフェッチアドレスで、実
行は命令アドレスを用いて行なう。(アドレスの生成は
2重化されている)以上の手法で、命令アドレス、プリ
フェッチアドレスの更新を行なう。
器(インクリメンタ)が2個、32ビットデータセレク
タが2個必要となる。
部バスサイズと同じでない場合は前記バスサイズでプリ
フェッチを実行し、命令はその一部分を命令固有のサイ
ズで切り出す必要がある。
ドレスは異なっており、これら二つのアドレスは、プリ
フェッチと、命令の実行には、各々不可欠である。
理装置において、プログラムカウンタの値とプリフェッ
チアドレスは、非常に近い値を持つにも関わらず、その
関係が、一意に決まらないため、一つの加算器で値を作
ることができない。
器と、プログラムカウンタの加算器を別に持たなければ
ならない。特に集積回路を構成する場合に加算器は大き
な面積を占めるため、アドレスのビット幅の加算器を独
立に2つ持たなければならないことは、大きな欠点とな
る。
り、小さな回路で構成することも可能であるが、全体の
クロック周波数が上げられず、問題が残る。
な部品で実現することであり、この方法を開発すること
が重要である。
回路をもった蓄積命令型の情報処理装置において現在の
プリフェッチ・アドレス且つ現在の命令アドレス用いて
次の命令の命令アドレスを発生する事を特徴とする。
は、外部インターフェースバスの幅が1バイト、プリフ
ェッチ・バッファの大きさがnバイト、アドレスがmビ
ットとすると、mビットの加算器及び、log2 n/l
を越える最も小さな整数のビット数の幅の加算器、m−
log2 nより小さい最も大きな整数のビットすうのセ
レクタ及びmビットの2個のレジスタで構成されること
を特徴としている。
個から構成されるものより少ない部品で構成することが
できる。
サイズが1/2/4バイト、プリフェッチバッファが1
6バイト、プリフェッチのフェッチサイズが32ビット
の場合の実施例を示す。
2ビット幅のレジスタ101、32ビット幅の加算器1
02、入力の32ビット幅のセレクタ103で作成され
る。
レスを保持しており、前記プリフェッチアドレスを用い
て、命令のフェッチが行なわれる。レジスタ101から
32ビットの前記プリフェッチアドレスが、32ビット
の信号線110、112、113を経て、メモリ装置1
14のアドレス入力に加えられる。
アドレスによって、アクセスされ、データは115を経
てプリフェッチバッファ116に格納される。この時、
フェッチサイズにより、データ幅が、2/4バイトであ
ることを示す信号が、108を通して、加算器102の
ソースとなる。前記メモリからのフェッチサイズを示す
信号によって、幾つかのフェッチサイズの元で、次の命
令フェッチアドレスを計算することが、前記フェッチサ
イズを前記加算器102の入力とする目的である。
2はある特定の数だけを加算できる加算器(インクリメ
ンタ)でよい。
O構造になっており、外部インターフェースバス115
を通して取り込まれた命令を、バッファリングし、順次
命令単位でアラインしながら命令バス117に出力す
る。この命令バスは、実行ユニットに引き継がれる。前
記プリフェッチバッファは16バイトの空間を持ってお
り、できるだけ連続した命令を先読みしバフッファリン
グする。
101は、加算器102によって得られた次のメモリア
ドレスに109,セレクタ103を通して更新される。
前記セレクタ103は、32ビットの幅をもつセレクタ
であり、制御信号137,138がセレクタの入力を決
定する。前記制御信号137は命令がフェッチできた場
合にアクティブになる様に制御され、前記制御信号13
8は分岐命令による分岐アドレスの設定が必要な場合に
アクティブになる。もちろん、同時に、前記制御信号1
37及び138がアクティブの場合は、分岐先アドレス
の設定を優先する。
ず、分岐も発生しない場合は、制御信号137,138
がインアクティブで現在のプリフェッチアドレスが10
6を通じて、フィードバックされ、前記プリフェッチア
ドレスは同じ値を保持する。つまり、同じ命令アドレス
に対するメモリアクセスを要求する。
ターフェースバスが空いており、且つ、前記プリフェッ
チバッファに空きがある場合に実行される。以上の条件
が成立しない場合ひプリフェッチは行なわれず、前記プ
リフェッチポインタの更新も行なわれない。
部分について、説明する。ここの部分が従来の装置との
大きな違いである。
ンタレジスタ130に記憶されている。前記プログラム
カウンタレジスタ130は、32ビット幅のエッジトリ
ガタイプのレジスタである。現在命令バス117に出力
されている命令のアドレスが記憶されている。
は、最大で16バイトである。これは、プリフェッチバ
ッファが16バイト分だけしかないためで、これ以上の
差は発生しない。
ファより常に小さいか、等しく、大小関係が逆転するこ
とはないという事実に基づいている。前記条件の基で
は、以下の手法を用いて命令アドレスの更新をすること
ができる。
レジスタ130の下位4ビット、及び現在の命令の命令
サイズである。現在の命令はプリフェッチバッファに蓄
えられており、この命令は命令バス117を通じて、出
力されている。前記命令バス上の命令をデコードし、命
令のサイズ(1/2/4バイト)を決定する。決定され
た前記命令サイズは、信号線119にエンコードされ、
4ビットの加算器126の一方のソースとなる。
ッジトリガタイプのレジスタである。これは、現在の命
令のアドレスを指し示す。この下位4ビットが信号12
7を通って、前記4ビットの加算器126のもう一方の
ソースの入力となる。前記4ビット加算器は現在の命令
アドレスの下位4ビットと、前記命令アドレスの指し示
している命令の命令サイズを加算し、4ビットの出力及
び桁上げ出力を各々124,125に出力する。
値の上位28ビット(MSB側から28ビット)128
は、及び、前記プリフェッチアドレスの上位28ビット
が、28ビットのセレクタ139に入力され、前記4ビ
ット加算器126の桁上げ出力によって選択される。
28ビットと下位4ビットは別に作られる。上位側28
ビットは、セレクタ139により、下位側4ビットは加
算器126より作られる。
る。前記4ビット加算器126の前記桁上げ信号125
が発生しない場合は、命令アドレスの上位から28ビッ
ト[31…4]を、次の命令アドレスとして123に出
力し、前記桁上げ信号125が発生した場合は、プリフ
ェッチアドレスレジスタの上位から28ビットを次の命
令の命令アドレスとして、123に出力する。
出力をそのまま123の下位4ビットとして、123に
出力する。
もって更新される。セレクタ133は32ビットのセレ
クタで、制御信号131,132で、分岐先アドレス1
34、次の命令の命令アドレス、現在の命令の命令アド
レスの選択をする。前記制御信号131は制御信号13
8と同様の信号で、分岐アドレスのプログラムカウンタ
へのセットのための制御信号である。この信号がアクテ
ィブである時、プログラムカウンタに新しい分岐先アド
レスがロードされる。
次の命令を出力する場合にアクティブになる。この信号
がアクティブになった場合、アドレス連続な命令にな
る。現在の命令のアドレスに現在の命令の命令バイト数
を加えた値を、信号135から、次の命令アドレスとし
てプログラムカウンタレジスタによみこむ。
合、プログラムカウンタレジスタは前回のサイクルの全
く同じ値を保持し続ける。この場合は、プリフェッチバ
ッファも全く同一の値(命令)を保持する。
ビットのセレクタ及び、前記4ビットの加算器で作るこ
とができる。
に比べて、1/4の大きさの回路規模である。
ドレス、16ビットデータバスの場合について示す。
インターフェースはアドレス16ビット/データ16ビ
ットとする。プリフェッチバッファは4バイトのデータ
を格納できると仮定する。
トのインクリメンタ303、15ビットのレジスタ30
1が必要である。
タ305、13ビットのセレクタ307、3ビットの加
算器306、16ビットのセレクタ308で構成され
る。
ータを取り扱うことができるため、プリフェッチは16
ビットごとに行なわれる。つまり、プリフェッチ時は、
アドレスの最下位が必ず“0”でとなるため、加算器は
常に“+1”づつできればよいため、インクリメンタで
よい。プリフェッチアドレスは15ビットを内部で持
ち、アドレスバスへの出力時にLSBに“0”をつけれ
ば良い。
フェッチアドレスは信号302を通り、インクリメンタ
303の入力に接続される。インクリメンタ303の出
力は、セレクタ304で、分岐先アドレスの上位15ビ
ットとマルチプレックスされ、前記レジスタ301に書
き戻される。このようにして、プリフェッチアドレス
は、更新される。
が1/2/4バイトなので、16ビットアラインするこ
とができないため、16ビット幅で取り扱う必要があ
る。
命令アドレスを保持する。前記レジスタ305の上位1
3ビットは、セレクタ307の入力の一方に接続され
る。前記セレクタ307のセレクト入力は加算器306
の桁上げ入力が接続される。前記セレクタ307の入力
のもう一方は、前記プリフェッチアドレス発生器のイン
クリメンタの出力上位側13ビットに接続される。
令バス上に出力されている命令の命令サイズ(1,2,
4:3ビット)を加算し、次の命令のアドレスの下位3
ビットとなる。上位13ビットは、前記セレクタ307
の出力が組み合わされ、セレクタ308の入力の一方に
入力される。前記セレクタ308は、分岐命令の分岐ア
ドレスとのマルチプレクスし、レジスタ305に書き戻
される。
可変長命令のプリフェッチ及び、プログラムカウンタの
更新のために32ビットのインクリメンタおよび、32
ビットの加算器が必要であり、固定長命令の縮小命令セ
ット演算処理装置でも、プリフェッチを行なう限り、命
令アドレスの生成及び、プリフェッチアドレスの生成の
ために、2つのインクリメンタが必要であった。
幅分の加算器又はインクリメンタを2個使用することな
しに1つの加算器および、セレクタ、プリフェッチバッ
ファサイズの小さな加算器で構成することができ、集積
回路化した場合に以下の用に約0.6倍の面積で実現す
ることができる。また、装置を論理集積回路を用いて作
成した場合も、部品が少なくて済む。
積(4ビット加算器を1とする)比は、32ビット加算
器(桁上げ先見機構つき)が16、4ビット加算器が
1、32ビットセレクタが3、28ビットセレクタが2
である。よって従来例では、3+16+16=35とな
り、本実施例では、3+2+1+16=22となる。
する。LSBは0である。 105 32ビットの信号。次プリフェッチアドレス
の演算結果がこの信号線にのる。 106 32ビットの信号。現在のプリフェッチアド
レスがこの信号を戻る。 107 32ビットの信号。プリフェッチアドレスを
加算器(インクリメンタ)のソースとして与える。 108 命令フェッチ時のバスのデータサイズを示す
信号。 109 32ビットの信号。105と同じ。 110 32ビットの信号。外部に命令フェッチアド
レスとして出力される。 111 32ビットの信号。加算器によって求められ
た次の命令フェッチ先のアドレス。 112 アドレスバスのバッファ。 113 命令アドレスバス。32ビットの幅の信号
線。 114 メモリ。命令が蓄積されている。 115 データ。メモリの出力信号。 116 プリフェッチ・バッファ。命令をキューイン
グし、必要な長さな区切る。 117 命令バス。実行ユニットに命令を転送する。 118 デコーダ。命令のサイズをデコードする。 119 命令サイズを伝送する信号。 120 命令アドレス。現在の命令が書かれていたア
ドレス。32ビット幅。 121 命令アドレスバス。32ビット。 122 プリフェッチアドレスバスのMSB側から2
8ビット分の信号。 123 次の命令の命令アドレス。 124 次の命令の命令アドレスの下位4ビット。4
ビット加算器の出力。 125 4ビットの加算器の桁上げ出力。 126 4ビットの加算器。 127 現在の命令のアドレスのLSB側から4ビッ
ト。 128 現在の命令のMSB側から28ビット。 129 現在の命令アドレスのフィードバック。32
ビット幅の信号線。 130 命令アドレスレジスタ。現在の命令のアドレ
スが記憶される。 131 分岐先を命令アドレスレジスタに代入するこ
とを選択する制御信号。 132 次の命令アドレス(連続的な)を命令アドレ
スレジスタに代入することを選択する信号。 133 32ビット幅のレジスタ。エッジトリガタイ
プのフリップフロップ。 134 演算ユニットで計算された分岐先アドレス。 135 次の命令の命令アドレス。 136 現在の命令の命令アドレス。 137 分岐先命令アドレス。 301 15ビットのレジスタ。プリフェッチアドレ
スが記憶される。 302 15ビットの信号。プリフェッチアドレス。 303 インクリメンタ1。15ビットで、+1する
ことができる。 304 15ビットのセレクタ。分岐先アドレスとの
マルチプレックス。 305 16ビットのレジスタ。命令アドレスが記憶
される。 306 3ビットの加算器。 307 13ビットのセレクタ。 308 16ビットのセレクタ。
Claims (2)
- 【請求項1】プリフェッチアドレスにもとづいて命令を
プリフェッチするプリフェッチ回路と、現在の命令アド
レスにもとづいて次の命令アドレスを生成するプログラ
ムカウンタ回路とを有するプログラムカウンタ装置にお
いて、 前記プログラムカウンタ回路は、上位側ビットを含む第
1の部分と下位側ビットを含む第2の部分に分割された
前記現在の命令アドレスの当該第2の部分に前記現在の
命令の命令長を示すデータを加算し、この加算結果が桁
上がりした場合は桁上がり信号を出力する加算器と、前
記桁上がり信号が発生しないときには前記第1の部分を
選択し、前記桁上がり信号が発生したときには前記プリ
フェッチアドレスの前記第1の部分と同数の上位側ビッ
トを選択するセレクタとを備え、当該選択されたデータ
を前記次の命令アドレスの上位側ビットとし、前記加算
結果を前記次の命令アドレスの下位側ビットとすること
を特徴とする プログラムカウンタ装置。 - 【請求項2】 前記プログラムカウンタ装置において、
nを、命令アドレスのビット数とし、プリフェッチ装置
の中に存在するプリフェッチ用バッファに記憶すること
ができる最大のバイト数をlとすると、mはlog2 l
より大きく、且つ、nより小さな自然数であるとすれ
ば、現在のプリフェッチ・アドレスが記憶されているn
ビットのレジスタ1と次のプリフェッチアドレスを求め
るためのnビットの加算器1、および、nビットのセレ
クタ1等で構成されるプリフェッチ・アドレス発生回路
と、現在の命令アドレスが記憶されているnビットのレ
ジスタ2 、mビットの加算器2、n−mビットのセレク
タ2、mビットのセレクタ3等で構成される、命令アド
レス発生回路で構成される装置で、前記プリフェッチ・
アドレスが記憶されているレジスタ1の出力と、前記n
ビットの加算器1の入力1を、プリフェッチ動作によっ
て1度にフェッチされるバイト数を、前記nビットの加
算器1の入力2に接続し、前記nビットの加算器1の出
力と、前記nビットのセレクタ1の入力1に、分岐先の
アドレス等、命令アドレスを制御するアドレスと前記セ
レクタ1残りの入力を接続し、前記加算器1で次の命令
のプリフェッチのアドレスを計算し、前記セレクタ1
で、前記加算器1の出力、分岐先アドレス等から一つを
選択し、前記セレクタ1の出力を、前記プリフェッチ・
アドレス・レジスタに書き戻すことで、プリフェッチア
ドレスを更新し、前記セレクタ2の入力1と前記レジス
タ1の出力の上位n−mビットを前記セレクタ2の入力
2と前記レジスタ2の出力の上位n−mビットを前記加
算器2の入力1と前記レジスタ2の出力のn−mビット
を前記加算器2の入力2と現在の命令をデコードによ
り、命令サイズを表す信号を前記加算器2の桁上げ出力
と前記セレクタ2の選択制御信号を前記セレクタ2の出
力を上位側に、前記加算器2の出力を下位側にまとめた
信号と前記セレクタ3の入力1を前記セレクタ3の出力
と前記レジスタ2の入力を接続し、現在の命令アドレス
の指すメモリのアドレスに格納されている命令の命令サ
イズをpとすると、前記命令アドレスが記憶されている
レジスタ2の、下位mビットと、pをmビットの加算器
2で加算し、前記mビットの加算器の桁上げ出力が真の
場合は、前記プリフェッチアドレスの上位側n−mビッ
トを、前記mビットの加算器の桁上げ出力が偽の場合は
前記命令アドレスの上位側n−mビットを前記n−mビ
ットのセレクタ2を用いて選択し、前記n−mビットの
セレクタ2の出力を、上位側n−mビットとし、前記m
ビットの加算器2の加算出力を下位とするnビットと、
分岐先のアドレスを、前記nビットのセレクタ3で選択
し、前記セレクタ3の出力を前記命令アドレスが記憶さ
れているレジスタに書き戻すことで新しい命令アドレス
を発生させる請求項1記載のプログラムカウンタ装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3115162A JP2682264B2 (ja) | 1991-05-21 | 1991-05-21 | プログラムカウンタ装置 |
US07/881,430 US5459847A (en) | 1991-05-21 | 1992-05-11 | Program counter mechanism having selector for selecting up-to-date instruction prefetch address based upon carry signal of adder which adds instruction size and LSB portion of address register |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3115162A JP2682264B2 (ja) | 1991-05-21 | 1991-05-21 | プログラムカウンタ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04343134A JPH04343134A (ja) | 1992-11-30 |
JP2682264B2 true JP2682264B2 (ja) | 1997-11-26 |
Family
ID=14655873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3115162A Expired - Lifetime JP2682264B2 (ja) | 1991-05-21 | 1991-05-21 | プログラムカウンタ装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5459847A (ja) |
JP (1) | JP2682264B2 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5835967A (en) * | 1993-10-18 | 1998-11-10 | Cyrix Corporation | Adjusting prefetch size based on source of prefetch address |
US5687339A (en) * | 1995-09-14 | 1997-11-11 | Elan Microelectronics Corp. | Pre-reading and pre-decoding of instructions of a microprocessor within single cycle |
US5867681A (en) * | 1996-05-23 | 1999-02-02 | Lsi Logic Corporation | Microprocessor having register dependent immediate decompression |
US5794010A (en) * | 1996-06-10 | 1998-08-11 | Lsi Logic Corporation | Method and apparatus for allowing execution of both compressed instructions and decompressed instructions in a microprocessor |
US5896519A (en) * | 1996-06-10 | 1999-04-20 | Lsi Logic Corporation | Apparatus for detecting instructions from a variable-length compressed instruction set having extended and non-extended instructions |
US6009516A (en) * | 1996-10-21 | 1999-12-28 | Texas Instruments Incorporated | Pipelined microprocessor with efficient self-modifying code detection and handling |
US5881260A (en) * | 1998-02-09 | 1999-03-09 | Hewlett-Packard Company | Method and apparatus for sequencing and decoding variable length instructions with an instruction boundary marker within each instruction |
US6038660A (en) * | 1999-05-26 | 2000-03-14 | Infineon Technologies North America Corp. | Method and apparatus for updating a program counter |
US6578102B1 (en) | 2000-04-18 | 2003-06-10 | International Business Machines Corporation | Tracking and control of prefetch data in a PCI bus system |
US6751724B1 (en) * | 2000-04-19 | 2004-06-15 | Motorola, Inc. | Method and apparatus for instruction fetching |
US6633969B1 (en) | 2000-08-11 | 2003-10-14 | Lsi Logic Corporation | Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions |
JP3698137B2 (ja) | 2002-11-26 | 2005-09-21 | セイコーエプソン株式会社 | 表示ドライバ、電気光学装置及び表示ドライバの制御方法 |
US20050285871A1 (en) * | 2004-06-29 | 2005-12-29 | Canon Kabushiki Kaisha | Image-processing circuit, electronic apparatus, and method for processing image |
US7249223B2 (en) * | 2004-08-11 | 2007-07-24 | Freescale Semiconductor, Inc. | Prefetching in a data processing system |
US9304773B2 (en) * | 2006-03-21 | 2016-04-05 | Freescale Semiconductor, Inc. | Data processor having dynamic control of instruction prefetch buffer depth and method therefor |
KR20070101998A (ko) * | 2006-04-13 | 2007-10-18 | 한국과학기술원 | 마이크로 컨트롤러의 프로그램 카운터 및 그 제어방법 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5576445A (en) * | 1978-12-06 | 1980-06-09 | Toshiba Corp | Pre-fetch control system |
JPS57185545A (en) * | 1981-05-11 | 1982-11-15 | Hitachi Ltd | Information processor |
EP0109655B1 (en) * | 1982-11-17 | 1991-07-24 | Nec Corporation | Instruction prefetching device with prediction of a branch destination address |
US4764861A (en) * | 1984-02-08 | 1988-08-16 | Nec Corporation | Instruction fpefetching device with prediction of a branch destination for each branch count instruction |
US4709324A (en) * | 1985-11-27 | 1987-11-24 | Motorola, Inc. | Data processor control unit having an interrupt service using instruction prefetch redirection |
US4860197A (en) * | 1987-07-31 | 1989-08-22 | Prime Computer, Inc. | Branch cache system with instruction boundary determination independent of parcel boundary |
US5197141A (en) * | 1988-01-30 | 1993-03-23 | Nec Corporation | Software controlled method of issuing hardware control commands to memory controller from prefetch unit by combining request code and address specified in program instructions |
US4926323A (en) * | 1988-03-03 | 1990-05-15 | Advanced Micro Devices, Inc. | Streamlined instruction processor |
JP2722523B2 (ja) * | 1988-09-21 | 1998-03-04 | 日本電気株式会社 | 命令先取り装置 |
-
1991
- 1991-05-21 JP JP3115162A patent/JP2682264B2/ja not_active Expired - Lifetime
-
1992
- 1992-05-11 US US07/881,430 patent/US5459847A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5459847A (en) | 1995-10-17 |
JPH04343134A (ja) | 1992-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2682264B2 (ja) | プログラムカウンタ装置 | |
US6334176B1 (en) | Method and apparatus for generating an alignment control vector | |
US5996057A (en) | Data processing system and method of permutation with replication within a vector register file | |
US5922066A (en) | Multifunction data aligner in wide data width processor | |
KR100346515B1 (ko) | 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일 | |
US6263420B1 (en) | Digital signal processor particularly suited for decoding digital audio | |
US6844834B2 (en) | Processor, encoder, decoder, and electronic apparatus | |
US4620274A (en) | Data available indicator for an exhausted operand string | |
US9015216B2 (en) | Fast static rotator/shifter with non two's complemented decode and fast mask generation | |
US6851033B2 (en) | Memory access prediction in a data processing apparatus | |
JP4955149B2 (ja) | ビットfifoを有するディジタル信号プロセッサ | |
US4598359A (en) | Apparatus for forward or reverse reading of multiple variable length operands | |
JP3983482B2 (ja) | 高速ディスプレースメント付きpc相対分岐方式 | |
US5349671A (en) | Microprocessor system generating instruction fetch addresses at high speed | |
US4611278A (en) | Wraparound buffer for repetitive decimal numeric operations | |
US4608633A (en) | Method for decreasing execution time of numeric instructions | |
US7047396B1 (en) | Fixed length memory to memory arithmetic and architecture for a communications embedded processor system | |
EP0927390B1 (en) | Processing of conditional select and move instructions | |
US4575795A (en) | Apparatus for detecting a predetermined character of a data string | |
US7134000B2 (en) | Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information | |
JPH034936B2 (ja) | ||
WO2010067522A1 (ja) | 演算ユニット、プロセッサ及び並列演算方法 | |
US6941421B2 (en) | Zero delay data cache effective address generation | |
US6470374B1 (en) | Carry look-ahead for bi-endian adder | |
US6240540B1 (en) | Cyclic redundancy check in a computer system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19970708 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070808 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080808 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080808 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090808 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090808 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100808 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100808 Year of fee payment: 13 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100808 Year of fee payment: 13 |
|
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: 20110808 Year of fee payment: 14 |
|
EXPY | Cancellation because of completion of term |