JP2002229778A - 高速ディスプレースメント付きpc相対分岐方式 - Google Patents

高速ディスプレースメント付きpc相対分岐方式

Info

Publication number
JP2002229778A
JP2002229778A JP2001026253A JP2001026253A JP2002229778A JP 2002229778 A JP2002229778 A JP 2002229778A JP 2001026253 A JP2001026253 A JP 2001026253A JP 2001026253 A JP2001026253 A JP 2001026253A JP 2002229778 A JP2002229778 A JP 2002229778A
Authority
JP
Japan
Prior art keywords
instruction
branch
disp
cache
bit
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
Application number
JP2001026253A
Other languages
English (en)
Other versions
JP3983482B2 (ja
JP2002229778A5 (ja
Inventor
Takeki Kondo
雄樹 近藤
Osamu Nishii
修 西井
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2001026253A priority Critical patent/JP3983482B2/ja
Priority to US10/017,198 priority patent/US7003651B2/en
Publication of JP2002229778A publication Critical patent/JP2002229778A/ja
Publication of JP2002229778A5 publication Critical patent/JP2002229778A5/ja
Application granted granted Critical
Publication of JP3983482B2 publication Critical patent/JP3983482B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/324Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address using program counter relative addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】既存のプロセッサの命令動作を変更,もしくは
新規命令を追加することなく,ディスプレースメント付
きPC相対分岐命令の動作を高速化する。 【解決手段】命令語をキャッシュもしくはバッファに格
納する前にあらかじめ分岐先アドレス計算の下位部分を
行い,命令語のディスプレースメント部分及び該キャッ
シュもしくは該バッファに追加されたビットに計算結果
を書き込み,命令実行時は該キャッシュもしくは該バッ
ファに格納された計算結果を利用して分岐先アドレスの
下位部分の計算を省略することで分岐先アドレス計算を
高速化する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は,計算機における中
央処理装置に用いられるプロセッサに属する。特にプロ
セッサに用いられているディスプレースメント付きPC
相対分岐命令に関する。
【0002】
【従来の技術】従来から,プロセッサ内のレジスタの値
と命令語に埋め込まれた定数(即値と呼ぶ)を実行時に
加算し,その値を分岐先のアドレスとする分岐命令を備
えたプロセッサが存在する。特にレジスタとして現在実
行中の命令アドレスを示すプログラムカウンタ(PC)
を用いた場合,分岐命令の位置からの相対位置を指定す
ることができる。プログラムの配置アドレスに関わらず
常に同じ位置へ分岐を行うことができるため,様々なプ
ロセッサにおいて採用されている。ここで,分岐命令の
命令語中の即値をディスプレースメント(以下disp
と略す)と呼び,前述の命令をディスプレースメント付
きPC相対分岐命令(以下PC+disp分岐命令と略
す)と呼ぶ。例えばこれは「SH7750プログラミン
グマニュアル」,日立製作所,1998のpp.10−
22に記載されているBRA命令などが該当する。PC
+disp分岐命令の実行には,(1)dispを多く
の場合符号拡張しPCとビット幅をそろえPCの値と符
号拡張したdispを加算して分岐先アドレスを計算,
(2)求まった値をアドレスとして命令をフェッチする
という2段階の動作がある。符号拡張とはある幅mビッ
トを持った符号付き2進整数を幅n(>m)ビットの符
号付き2進整数に変換することを指し,変換元の整数を
変換先の下位mビットにコピーし,さらに変換元の最上
位ビット,すなわち符号ビットを変換先の上位n−mビ
ットそれぞれにコピーすることにより実現できる。ここ
で(1)のアドレス計算の一例を図1に示す。111は
実行する命令のアドレス,すなわちPCの値であり32
ビットである。112はPC+disp分岐命令の命令
語であり,下位12ビットがdispである。命令語1
12のフォーマットを図2に示す。201は命令オペコ
ードであり,PC+disp分岐命令の場合命令オペコ
ード201は4ビットである。202および203はd
ispの一部であり,上位1ビットを202,下位11
ビットを203とした204は12ビット符号付きのd
ispの値となる。すなわち202はdispの符号ビ
ットである。分岐先アドレス114は,命令語112中
の204を32ビット符号拡張した113と111を3
2ビット加算器121で加算することにより得られる。
PC+disp分岐命令では分岐先アドレスを計算する
ために,本質的にnビットの加算処理が必要である。n
ビットの加算処理にはオーダlognの時間が必要とな
り,従来プロセッサでは本加算処理時間は不可避なもの
と考えられていた。“Micro Processor Report,” Sept
ember 13, 1999, pp.12-15, 22によると,上記加算処理
時間を削減するためサンマイクロシステムズのMAJC
アーキテクチャではPC+disp分岐命令の代わりに
セミアブソリュート分岐(以下SemiABS分岐と略
す)命令を採用している。セミアブソリュート分岐命令
ではアドレスのビットの一部分を絶対アドレスで指定す
る。図3にSemiABS分岐命令でのアドレス計算方
法を示す。311はPC+disp分岐命令と同様にP
Cの値である。312はSemiABS分岐命令の命令
語であり,図4にSemiABS分岐命令の命令フォー
マットを示す。401は命令オペコード及び分岐先アド
レス計算に用いるオペランド以外のオペランド部分であ
る。402及び403が分岐先アドレス計算に用いるオ
ペランド部分であり,命令語311の下位12ビット部
分が403,その上位2ビットが402となっている。
分岐先アドレス314の計算については,下位2ビット
は”00”(定数)とし,その上位の12ビット部分は
命令語312中の403がそのまま入る。上位18ビッ
ト部分については,命令語312中の402を18ビッ
ト符号拡張した313と311を18ビット加算器32
1で加算し,出力とする。SemiABS分岐ではPC
+disp分岐と比較して分岐先アドレス計算に必要と
なる加算器の桁数が少なくて済むため,遅延時間を短く
押さえることができ,動作周波数の向上が期待できる。
特に命令キャッシュを具備するプロセッサの場合,Se
miABS分岐では高速化が可能となる。分岐命令の実
行においては分岐先アドレス計算の次に命令キャッシュ
へのアクセスが必要となるが,通常キャッシュの動作は
(1)アドレスのうちインデックス部となる部分をキャ
ッシュアレイに入力し対応するタグ部とデータを読み出
し,(2)アドレスのタグ部と対応する部分と(1)で
出力されたタグ部を比較し,一致する場合キャッシュヒ
ットとしてデータを出力するという2段階に分かれてい
る。すなわちキャッシュへのインデックス部入力は,タ
グ部の入力よりもタイミング上先に行う必要がある。ま
た,アドレスのうちインデックス部となる部分は,通常
はアドレスの下位部分に配置されている。SemiAB
S分岐では分岐先アドレスの下位部分は加算を行うこと
なくそのまま出力されるため,インデックス部のビット
範囲が加算されないビット範囲に含まれる時,分岐先ア
ドレスの上位部分の計算の完了を待たずに並列にキャッ
シュアレイのアクセスを開始することができ,分岐命令
の実行が全体として高速化される。
【0003】
【発明が解決しようとする課題】上記の従来技術では高
速な分岐を実現するために,PC+disp分岐の代わ
りに新しいSemiABS分岐を導入している。しか
し,SemiABS分岐論理方式を採用する新たなプロ
セッサではSemiABS分岐を採用していない命令に
よって書かれたプログラムを実行できない,すなわち,
既存のPC+disp分岐命令を有するプロセッサ上で
動作するオブジェクトコードにはSemiABS分岐命
令が含まれていないため,高速化の恩恵を受けることが
できない。また,SemiABS分岐では分岐先アドレ
スの一部分を絶対アドレスで指定する必要があるため,
コンパイル時に分岐先アドレスの範囲に収まっているか
どうかが判定できない,コンパイル後のオブジェクトコ
ードがリロケータブルにならない,という弊害がある。
リロケータブルとは,オブジェクトコードの配置アドレ
スに関わらず,そのオブジェクトコードが実行可能であ
ることを指す。本発明が解決しようとする課題の1つ
は,以上の問題に鑑みプロセッサの命令セットを新規に
用意,または既存の命令セットに命令を追加することな
く,PC+disp分岐命令の動作を高速化することで
ある。また,PC+disp分岐命令を削除する必要が
ないため,上記に示した弊害についても発生しない。
【0004】
【課題を解決するための手段】本発明は命令語をキャッ
シュもしくはバッファに一時的に格納し,命令の実行時
はキャッシュもしくはバッファに一時的に格納されてい
る命令語を読み出して実行するプロセッサに適用するも
のである。
【0005】本発明では,命令語をキャッシュもしくは
バッファに格納する時にPC+dispアドレッシング
命令であるかどうかを判定し,PC+dispアドレッ
シング命令である場合にはキャッシュもしくはバッファ
への格納前にあらかじめPC+dispの計算の下位部
分を行い,命令語のdisp部分とキャッシュもしくは
バッファに追加されたビットに計算結果を書き込む。該
PC+dispアドレッシング命令をキャッシュもしく
はバッファから読み出して実行する時にはPC+dis
p計算の下位部分はあらかじめ計算された結果をそのま
ま出力し,下位アドレス部分の計算を省略することによ
り,PC+disp分岐命令のアドレス計算に要する時
間を削減する。以上が本発明の手段である。
【0006】
【発明の実施の形態】以下に,本発明の実施例を2例示
す。 (実施例1)図5及び図6は本発明を最も単純な形で実
現した例である。図5は命令フェッチ部,すなわち主記
憶から読み出した命令語を命令キャッシュに格納する部
分である。511は主記憶から読み出した命令語であ
り,命令フォーマットは図2の112と同等である。本
実施例のプロセッサではアドレスは32ビットである。
512は命令が格納されている主記憶上のアドレスであ
り,幅は32ビットである。また,アドレス512は命
令語511の実行時のPCの値に等しい。
【0007】501は命令キャッシュである。514は
命令語511と同じ幅をもっており,命令キャッシュ5
01内に複数のエントリが存在する。515は514と
1対1で対応しており,幅は1ビットである。回路ブロ
ック502は命令語511とアドレス512を入力と
し,出力が命令キャッシュ501内の514及び515
に格納される。
【0008】回路ブロック502の動作について説明す
る。命令語511内の201および202は命令キャッ
シュ501内の514の対応する部分にそのまま格納さ
れる。522はデコーダであり,命令語511内の20
1がPC+disp分岐命令かどうかを判定し,セレク
タ523の出力を切り替える。命令語511内の201
がPC+disp分岐命令以外の場合,セレクタ523
は命令語511内の203をそのまま出力し,命令キャ
ッシュ501内の514の203に対応する部分にその
まま格納される。命令語511内の201がPC+di
sp分岐命令を示している場合,命令語511内の20
3とアドレス512の下位11ビット部分を加算器51
2で加算し,得られた11ビットの結果をセレクタ52
3が出力する。命令キャッシュ501内の514の20
3に対応する部分にはこの結果が格納される。また,加
算器521の上位へのキャリービット出力は515に格
納される。図6はPC+disp分岐命令実行時の分岐
先アドレス計算部である。611はPCの値であり,命
令キャッシュ501内に格納された514と515及び
611の値を用いて,分岐先アドレス613を求める。
514内の203に対応する部分はそのまま分岐先アド
レス613の下位11ビット部分に出力される。612
は514内の202に対応する部分を21ビットに符号
拡張したものである。加算器621は612と611の
上位21ビット部分とを加算し,結果を分岐先アドレス
613の上位21ビット部分に出力する。
【0009】図5に示した回路ブロック502では,d
ispの下位11ビット部分とPCの下位11ビット部
分の加算を行い,515に下位からのキャリービット出
力を保存している。また,図6に示したPC+disp
分岐命令の実行時にはdispの上位1ビットを21ビ
ット符号拡張したものとPCの上位21ビット部分を,
515に保存された下位からのキャリービットを考慮し
て加算している。すなわち結果として算出される分岐先
アドレス613は,12ビットのdispを32ビット
に符号拡張してPCと加算した値と等しい。 (実施例2)図7,図8は本発明の別の実施例である。
図7は実施例1の図5と同じく命令フェッチ部である。
701,711,712および714は実施例1での5
01,511,512および514に相当し,回路ブロ
ック702は実施例1での回路ブロック502に対応す
る。実施例1での515に相当する部分はこの実施例に
は存在しない。デコーダ722とセレクタ723の動作
も実施例1でのデコーダ522とセレクタ523の動作
とほぼ同一であり,命令語711内のオペコード501
がPC+disp分岐命令である場合に加算器721の
出力である713を命令キャッシュ701内の714の
204に対応する部分に出力し,それ以外の場合は命令
語711内の204をそのまま714内の204に対応
する部分に出力する。加算器721は命令語711内の
204とアドレス712の下位12ビットを加算し,1
2ビットの加算結果を713に出力する。
【0010】図8は実施例1の図6と同じくPC+di
sp分岐命令実行時の分岐先アドレス計算部である。8
11はPCであり,命令キャッシュ701内に格納され
た714及び811の値を用いて,分岐先アドレス81
2を求める。714内の204に対応する部分は,その
まま分岐先アドレス812の下位12ビット部分に出力
される。824及び825は加算器であり,それぞれ8
11の上位20ビットの値に+1,−1を加算した値を
出力する。すなわちセレクタ823は,811の上位2
0ビットの値について,+1,±0,−1した値のどれ
かを,デコーダ822の出力に従って分岐先アドレス8
12の上位20ビット部分に出力する。
【0011】デコーダ822には,(a)714内の2
03に対応する部分と811の下位11ビットを比較器
821で比較した結果(203に対応する部分の方が大
きい,もしくは等しい場合を0,逆の場合を1とす
る),(b)714内の502に対応する部分,(c)
811の下位から12ビット目が入力される。デコーダ
822の入力に対するセレクタ823の出力の対応を図
10に示す。比較器821の出力は,命令フェッチ部で
行った11ビット加算の,下位10ビット目から11ビ
ット目へのキャリービットである。このキャリービット
と714内の202に対応する部分と811の下位から
12ビット目の排他的論理和を取ると,命令語711内
の202,すなわち204の符号ビットを算出すること
ができる。
【0012】また,前述のキャリービットと202,8
11の下位から12ビット目の値について,1ビット値
3個の加算を行いキャリービットを求めると,命令フェ
ッチ部で行った加算の,最上位ビットからのキャリービ
ットが求められる。202を20ビット符号拡張し,8
11の上位20ビット部分と,命令フェッチ部で行った
加算の最上位ビットからのキャリービットを加算すれ
ば,分岐先アドレス812は12ビットのdispを3
2ビットに符号拡張してPCと加算した値と等しくな
る。しかし,(1)202が1の場合に811の上位2
0ビットに−1を加算し,加えて(2)命令フェッチ部
で行った加算の最上位ビットからのキャリービットが1
の場合に+1を加算すれば,先ほど述べた加算と同じ動
作ができる。したがって,811の上位20ビットに対
して,202の値と命令フェッチ部で行った加算の最上
位ビットからのキャリービットが,00もしくは11の
場合はそのまま,01の場合は+1を加算,10の場合
は−1を加算すれば,先ほど述べた加算と同じ結果が得
られる。
【0013】以上実施例を説明したが,本発明はその技
術的思想のもとに種々の変形が可能である。例を示す
と,(1)分岐命令のみでなく,PC+dispアドレ
ッシングによるロードストア命令に実施可能である,
(2)dispの幅が一種類のみでなく8,12のよう
に複数種類あっても実施例1,2とも実施できる,とい
った変形が可能である。
【0014】
【発明の効果】本発明の実施例1に示したプロセッサの
第一の利点は,SemiABS分岐命令と同様,PC+
disp分岐命令の実行時の分岐先アドレス計算を高速
に処理,すなわち分岐先アドレス計算にかかる遅延時間
を短縮できることである。これにより特にパイプライン
によって命令を実行するプロセッサにおいては,分岐先
アドレスの計算を行うステージに必要となる時間を減少
させることができ,プロセッサの動作周波数向上,ある
いは処理サイクル数の削減,あるいはその両方が可能と
なる。例えば,実施例1では全アドレスが32ビット,
dispが12ビットであり従来のPC+disp分岐
論理方式の場合,PC+disp分岐命令の実行時には
32ビット加算が必要となるが,実施例1でのPC+d
isp分岐論理方式の場合では21ビット加算で済む。
全アドレスが64ビット,dispが20ビットである
とした場合では,従来のPC+disp論理方式では6
4ビット加算,実施例1では45ビット加算で済む。ま
た,実施例1に示したプロセッサにおいては,Semi
ABS分岐命令と同様に命令キャッシュへのアクセスを
早い時刻に開始することによってPC+disp分岐命
令の動作を全体的に高速化できるという第二の利点があ
る。実施例1に示したプロセッサでの第三の利点は,あ
るPC+disp分岐命令が命令キャッシュにヒットし
て繰り返し実行される場合には,分岐先アドレスの下位
部分の計算は初回実行時,すなわち命令キャッシュに格
納される時にのみ行われ,以降の実行時に重複して計算
されることを回避できる点である。図9に従来のPC+
disp分岐論理方式の場合と実施例1でのPC+di
sp分岐論理方式の場合での,タイミングチャートでの
比較を示す。901は従来のPC+disp分岐論理方
式の場合であり,911は命令キャッシュ読み出し,お
よび命令キャッシュミスヒットによる主記憶からの命令
語読み出し動作,913は911で読み出した命令語を
キャッシュに格納する動作,914は分岐先アドレスの
下位部分の加算動作,915は分岐先アドレスの上位部
分の加算と分岐先アドレス命令の命令キャッシュからの
読み出し動作である。また,912は命令キャッシュヒ
ットの場合の読み出し動作である。902は実施例1で
のPC+disp分岐論理方式の場合であり,あるPC
+disp分岐命令が命令キャッシュにヒットする状態
で繰り返し実行される場合,繰り返し回数が多いほど実
施例1でのPC+disp分岐論理方式の方が,実行に
要する時間が短縮される。
【0015】実施例1に示したプロセッサの第四の利点
は,第一,第二及び第三の利点として挙げた効果を,既
存のPC+disp型アドレッシングを備えるプロセッ
サの命令セットに変更を加えることなく,享受できる点
である。本発明の実施例2に示したプロセッサでは,実
行時にdispの符号ビットおよび命令フェッチ時の加
算の最上位ビットからのキャリービットの再計算を行う
ため実施例1に示したプロセッサの第一の利点に相当す
る効果は実質的にはほとんど得られないが,第二,第三
および第四の利点に関しては同等に効果が得られる。ま
た,実施例2に示したプロセッサでは,主記憶から読み
出した命令語を格納するキャッシュもしくはバッファに
追加の記憶領域が不要であるという利点がある。
【図面の簡単な説明】
【図1】従来のPC+disp分岐での分岐先アドレス
計算法。
【図2】命令語112のフォーマット。
【図3】従来のSemiABS分岐での分岐先アドレス
計算法。
【図4】命令語312のフォーマット。
【図5】本発明の第一の実施例における命令語の命令キ
ャッシュ格納時の処理回路。
【図6】本発明の第一の実施例におけるPC+disp
分岐命令実行時のアドレス計算回路。
【図7】本発明の第二の実施例における命令語の命令キ
ャッシュ格納時の処理回路。
【図8】本発明の第二の実施例におけるPC+disp
分岐命令実行時のアドレス計算回路。
【図9】従来のPC+disp分岐論理方式の場合と実
施例1でのPC+disp分岐論理方式の場合のタイミ
ングチャートでの比較。
【図10】デコーダ822への入力に対するセレクタ8
23の出力対応図。
【符号の説明】
111−PCの値,112−PC+disp分岐命令の
命令語,114−PC+disp命令での分岐先アドレ
ス,121−32ビット加算器。 311−PCの値,312−SemiABS分岐命令の
命令語,314−SemiABS分岐命令での分岐先ア
ドレス,321−18ビット加算器。 501−命令キャッシュ,511−PC+disp分岐
命令の命令語,512−読み出した命令の主記憶上のア
ドレス値,514−命令キャッシュ内のエントリ,51
5−514に一対一に対応する記憶領域,521−11
ビット加算器,522−デコーダ,523−セレクタ。 611−PCの値,613−分岐先アドレス,621−
21ビット加算器。 701−命令キャッシュ,711−PC+disp分岐
命令の命令語,712−読み出した命令の主記憶上のア
ドレス値,714−命令キャッシュ内のエントリ,72
1−12ビット加算器,722−デコーダ,723−セ
レクタ。 811−PCの値,812−分岐先アドレス,821−
11ビット比較器,822−デコーダ,823−セレク
タ,824,825−20ビット加算器。 901−従来のPC+disp分岐論理方式の場合のP
C+disp分岐命令動作,902−本発明の第一の実
施例でのPC+disp分岐論理方式の場合のPC+d
isp分岐命令動作,911−命令キャッシュ読み出し
及び命令キャッシュミスヒットによる主記憶からの命令
語読み出し動作,912−命令キャッシュヒット時の命
令語読み出し動作,913−911で読み出した命令語
をキャッシュに格納する動作,914−分岐先アドレス
の下位部分の加算動作,915−分岐先アドレスの上位
部分の加算と分岐先アドレス命令の命令キャッシュから
の読み出し動作。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】命令語を一時的に格納するキャッシュもし
    くはバッファを具備し,命令実行時に命令語を該キャッ
    シュもしくは該バッファから読み出すプロセッサであ
    り,命令語がディスプレースメント付きPC相対アドレ
    ッシングを用いる命令である場合に実効アドレスの下位
    部分の計算を行い,その結果によって命令語中のディス
    プレースメントの値を置き換えて該キャッシュもしくは
    該バッファに格納する回路を有し,命令実行時の実効ア
    ドレス計算では該キャッシュもしくは該バッファに格納
    された実効アドレスの下位部分の結果を利用し,実効ア
    ドレスを高速に出力することを特徴とするプロセッサ。
  2. 【請求項2】請求項1に記載したプロセッサであって,
    命令語を一時的に格納するキャッシュもしくはバッファ
    中に,命令語を格納する各エントリに1対1に対応する
    追加の記憶領域を有し,命令語がディスプレースメント
    付きPC相対アドレッシングを用いる命令である場合に
    行う実効アドレスの下位部分の計算結果によって情報を
    生成し,該記憶領域に該情報を格納することを特徴とす
    るプロセッサ。
  3. 【請求項3】請求項1に記載したプロセッサであって,
    実効アドレスが分岐先アドレスであるプロセッサ。
  4. 【請求項4】請求項2に記載したプロセッサであって,
    実効アドレスが分岐先アドレスであるプロセッサ。
JP2001026253A 2001-02-02 2001-02-02 高速ディスプレースメント付きpc相対分岐方式 Expired - Fee Related JP3983482B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001026253A JP3983482B2 (ja) 2001-02-02 2001-02-02 高速ディスプレースメント付きpc相対分岐方式
US10/017,198 US7003651B2 (en) 2001-02-02 2001-12-18 Program counter (PC) relative addressing mode with fast displacement

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001026253A JP3983482B2 (ja) 2001-02-02 2001-02-02 高速ディスプレースメント付きpc相対分岐方式

Publications (3)

Publication Number Publication Date
JP2002229778A true JP2002229778A (ja) 2002-08-16
JP2002229778A5 JP2002229778A5 (ja) 2006-06-08
JP3983482B2 JP3983482B2 (ja) 2007-09-26

Family

ID=18891096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001026253A Expired - Fee Related JP3983482B2 (ja) 2001-02-02 2001-02-02 高速ディスプレースメント付きpc相対分岐方式

Country Status (2)

Country Link
US (1) US7003651B2 (ja)
JP (1) JP3983482B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836286B2 (en) 2007-02-21 2010-11-16 Renesas Electronics Corporation Data processing system to calculate indexes into a branch target address table based on a current operating mode

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7111148B1 (en) 2002-06-27 2006-09-19 Intel Corporation Method and apparatus for compressing relative addresses
US7010665B1 (en) * 2002-06-27 2006-03-07 Intel Corporation Method and apparatus for decompressing relative addresses
JP3862642B2 (ja) * 2002-09-17 2006-12-27 株式会社日立製作所 データ処理装置
US8006071B2 (en) * 2004-03-31 2011-08-23 Altera Corporation Processors operable to allow flexible instruction alignment
CN1329839C (zh) * 2005-04-13 2007-08-01 柴钰 一种计算机cpu抗干扰的设计方法
US7792150B2 (en) 2005-08-19 2010-09-07 Genband Us Llc Methods, systems, and computer program products for supporting transcoder-free operation in media gateway
US20100161950A1 (en) * 2008-12-24 2010-06-24 Sun Microsystems, Inc. Semi-absolute branch instructions for efficient computers
CN103984637A (zh) * 2013-02-07 2014-08-13 上海芯豪微电子有限公司 一种指令处理系统及方法
CN104731718A (zh) * 2013-12-24 2015-06-24 上海芯豪微电子有限公司 一种缓存系统和方法
US10261911B2 (en) * 2016-09-08 2019-04-16 The Johns Hopkins University Apparatus and method for computational workflow management

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5608886A (en) * 1994-08-31 1997-03-04 Exponential Technology, Inc. Block-based branch prediction using a target finder array storing target sub-addresses
JP3599499B2 (ja) * 1996-10-25 2004-12-08 株式会社リコー 中央処理装置
US6243805B1 (en) * 1998-08-11 2001-06-05 Advanced Micro Devices, Inc. Programming paradigm and microprocessor architecture for exact branch targeting
US6237087B1 (en) * 1998-09-30 2001-05-22 Intel Corporation Method and apparatus for speeding sequential access of a set-associative cache
US6502185B1 (en) * 2000-01-03 2002-12-31 Advanced Micro Devices, Inc. Pipeline elements which verify predecode information

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836286B2 (en) 2007-02-21 2010-11-16 Renesas Electronics Corporation Data processing system to calculate indexes into a branch target address table based on a current operating mode
US8145889B2 (en) 2007-02-21 2012-03-27 Renesas Electronics Corporation Data processing system with branch target addressing using upper and lower bit permutation

Also Published As

Publication number Publication date
US7003651B2 (en) 2006-02-21
JP3983482B2 (ja) 2007-09-26
US20020108029A1 (en) 2002-08-08

Similar Documents

Publication Publication Date Title
JP2816248B2 (ja) データプロセッサ
US6651160B1 (en) Register set extension for compressed instruction set
USRE40509E1 (en) Methods and apparatus for abbreviated instruction sets adaptable to configurable processor architecture
US20010010072A1 (en) Instruction translator translating non-native instructions for a processor into native instructions therefor, instruction memory with such translator, and data processing apparatus using them
US7447871B2 (en) Data access program instruction encoding
US7546442B1 (en) Fixed length memory to memory arithmetic and architecture for direct memory access using fixed length instructions
US20060010304A1 (en) Systems for loading unaligned words and methods of operating the same
US6687808B2 (en) Data processor using indirect register addressing
US4541047A (en) Pipelined data processing system
JP2002229778A (ja) 高速ディスプレースメント付きpc相対分岐方式
JPH1049369A (ja) データ処理装置
JP4228241B2 (ja) 演算処理装置
JPH07239780A (ja) 1クロック可変長命令実行処理型命令読み込み電子計 算機
JP2008204249A (ja) データプロセッサ
US7631166B1 (en) Processing instruction without operand by inferring related operation and operand address from previous instruction for extended precision computation
JP2002182926A (ja) コンパイル方法及びコンピュータ読み取り可能な記録媒体
JP2001216136A (ja) 加算回路およびプロセッサ
JP4545777B2 (ja) データ処理装置
JP2008107913A (ja) プログラム、ソフトウェア変換装置及びコンピュータ
JPH07191911A (ja) アドレス変換装置及びマイクロプロセッサ算出方法
JP2000003279A (ja) Vliwプロセッサ、プログラム生成装置、および記録媒体
JP5311008B2 (ja) 信号処理プロセッサ及び半導体装置
JPH05173778A (ja) データ処理装置
JP5263498B2 (ja) 信号処理プロセッサ及び半導体装置
JP5263497B2 (ja) 信号処理プロセッサ及び半導体装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060411

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060411

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060411

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070122

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: 20070703

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070704

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100713

Year of fee payment: 3

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: 20110713

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110713

Year of fee payment: 4

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: 20110713

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees