JPH10312281A - 命令を処理する方法及びシステム - Google Patents

命令を処理する方法及びシステム

Info

Publication number
JPH10312281A
JPH10312281A JP8879698A JP8879698A JPH10312281A JP H10312281 A JPH10312281 A JP H10312281A JP 8879698 A JP8879698 A JP 8879698A JP 8879698 A JP8879698 A JP 8879698A JP H10312281 A JPH10312281 A JP H10312281A
Authority
JP
Japan
Prior art keywords
instruction
location
address
bits
storing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP8879698A
Other languages
English (en)
Inventor
Mathew Potter Terence
テレンス・マシュー・ポッター
Charles Rossubach Paul
ポール・チャールズ・ロッスバッハ
Luther Thomas Thomas Jr
トーマス・ルター・トーマス、ジュニア
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.)
International Business Machines Corp
Motorola Solutions Inc
Original Assignee
International Business Machines Corp
Motorola Inc
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 International Business Machines Corp, Motorola Inc filed Critical International Business Machines Corp
Publication of JPH10312281A publication Critical patent/JPH10312281A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】相対的ブランチ命令を処理するためのデータ処
理システムにおける方法及び装置を提供する。 【解決手段】第1タイプの命令を処理するためのデータ
処理システムにおける方法及びシステムが開示される。
処理されるべき第1命令が決定される。第1命令が第1
タイプの命令であるかどうかの決定が行われる。第1命
令が第1タイプの命令である場合、第1命令に関連した
第1ロケーションが決定される。第1命令と関連した第
1ロケーションからのオフセットが決定される。処理さ
れるべき第2命令の第2ロケーションが決定される。第
2ロケーションは、第1ロケーション及びオフセットを
使用して決定される。第1命令がメモリにロードされる
時、第2ロケーションの少なくとも一部分が第1命令と
共に記憶される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ処理システ
ム、特に、相対的ブランチ命令の処理に関するものであ
る。更に詳しく云えば、本発明は、ターゲット命令のロ
ケーションを決定すること及び相対的ブランチ命令をそ
のロケーションに記憶することを含む相対的ブランチ命
令の処理に関するものである。
【0002】
【従来の技術】スーパスカラ・データ処理システムは、
1クロック・サイクル当たり複数の命令を実行すること
のできるマイクロプロセッサ・アーキテクチャを含むデ
ータ処理システムである。1クロック・サイクル当たり
複数の命令を実行するためには、同時に実行し得る複数
の独立した機能的装置が必要である。これらの複数の命
令は、それらのオリジナル・シーケンスで実行されても
よいし、或いは幾つかの点においてオリジナル・シーケ
ンスとは異なるシーケンスで順序を外れて実行されても
よい。
【0003】プログラマは特定のシーケンスでコードを
書く。そのコードは、種々のブランチ命令又はジャンプ
命令を含み得るものである。ブランチ命令は、命令の実
行中、それら命令のオリジナル・シーケンスの順序から
の離脱を引き起こす。各ブランチ命令に対して、実行さ
れるべき次の命令又はターゲット命令のアドレスは、実
行がそのブランチ命令からターゲット命令に流れるよう
に決定されなければならない。
【0004】ブランチ命令のうちの幾つかは相対的ブラ
ンチ命令である。相対的ブランチ命令は、オフセットを
制御カウンタに加えることによって決定されたロケーシ
ョンにブランチするブランチ命令である。オフセットは
相対的ブランチ命令内に含まれている。一般的には、プ
ログラム・カウンタが制御カウンタとして使用される。
相対的ブランチ命令に遭遇する時、プログラム・カウン
タはその相対的ブランチ命令のアドレスになるであろ
う。従って、相対的ブランチ命令のターゲット命令のア
ドレスを決定するために、その相対的ブランチ命令にお
けるコード化されたオフセットが、相対的ブランチ命令
のロケーションを表すプログラム・カウンタに加算され
てターゲット・アドレスを表さなければならない。この
加算は、一般には、タイム・クリティカルであり、プロ
セッサの周波数を制限する。
【0005】従って、ターゲット命令のロケーションを
決定すること及びオリジナル・オフセットに代わって相
対的ブランチ命令に関連したロケーションを記憶するこ
とによって相対的ブランチ命令を処理することができる
スーパスカラ・データ処理システムにおける方法及びシ
ステムが有利である。
【0006】
【発明が解決しようとする課題】従って、本発明の目的
は、改良されたデータ処理システムを提供することにあ
る。
【0007】本発明のもう1つの目的は、データ処理シ
ステムにおいて、相対的ブランチ命令を処理するための
改良された方法及びシステムを提供することにある。
【0008】本発明の更にもう1つの目的は、データ処
理システムにおいて、ターゲット命令のロケーションを
決定すること及び相対的ブランチ命令と共にそのロケー
ションを記憶することにより相対的ブランチ命令を処理
するための方法及びシステムを提供することにある。
【0009】
【課題を解決するための手段】上記の目的は、次に説明
するように達成される。第1タイプの命令を処理するた
めのデータ処理システムにおける方法及びシステムが開
示される。処理されるべき第1命令が決定される。第1
命令が第1タイプの命令であるかどうかの決定が行われ
る。第1命令が第1タイプの命令である場合、第1命令
に関連した第1ロケーションが決定される。第1命令と
関連した第1ロケーションからのオフセットが決定され
る。処理されるべき第2命令の第2ロケーションが決定
される。第2ロケーションは、第1ロケーション及びオ
フセットを使用して決定される。第1命令がメモリにロ
ードされる時、第2ロケーションの少なくとも一部分が
第1命令と共に記憶される。
【0010】本発明の上記及び更なる目的、特徴、及び
利点は、以下の詳細に書かれた説明において明らかにな
るであろう。
【0011】
【発明の実施の形態】本発明の例示的な実施例は、図1
乃至図5を参照することによってよく理解できるであろ
う。なお、添付図面では同じ部品及び対応する部品に対
して同じ参照番号が使用される。
【0012】図1は、好適な実施例に従って情報を処理
するためのプロセッサ(システム)10のブロック図で
ある。好適な実施例では、プロセッサ10は単一の集積
回路スーパスカラ・マイクロプロセッサである。従っ
て、更に後述するように、プロセッサ10は、種々のユ
ニット、レジスタ、バッファ、メモリ、及び他のセクシ
ョンを含み、それらはすべて集積回路によって形成され
る。又、好適な実施例では、プロセッサ10は縮小命令
セット(RISC)技法に従って動作する。図1に示さ
れるように、システム・バス11はプロセッサ10のバ
ス・インターフェース・ユニット(BIU)12に接続
される。BIU12はプロセッサ10とシステム・バス
11との間の情報の転送を制御する。
【0013】BIU12はプロセッサ10の命令キャッ
シュ14及びデータ・キャッシュ16に接続される。命
令キャッシュ14はシーケンサ・ユニット18に命令を
出力する。命令キャッシュ14は相対的ブランチ命令
を、その命令内に含まれたオフセットと共に記憶するこ
とも可能である。命令キャッシュ14からのそのような
命令に応答して、シーケンサ・ユニット18は命令をプ
ロセッサ10の他と実行回路に選択的に出力する。
【0014】好適な実施例では、プロセッサ10の実行
回路は、シーケンサ・ユニット18の他に、複数の実行
ユニット、即ち、ブランチ・ユニット20、ブランチ・
ターゲット・アドレス・キャッシュ21、固定小数点ユ
ニットA(FXUA)22、固定小数点ユニットB(F
XUA)24、複合固定小数点ユニット(CFXU)2
6、ロード/ストア・ユニット(LSU)28、及び浮
動小数点ユニット(FPU)30を含む。FXUA2
2、FXUB24、CFXU26、及びLSU28はそ
れらのオペランド情報を汎用アーキテクチャ・レジスタ
(GPR)32及び固定小数点リネーム・バッファ34
から入力する。更に、FXUA22及びFXUA24は
「キャリービット」をキャリービット(CA)レジスタ
42から入力する。FXUA22、FXUB24、CF
XU26、及びLSU28はそれらのオペレーションの
結果(宛先オペランド情報)を、固定小数点リネーム・
バッファ34における選択されたエントリに記憶するた
めに出力する。又、CFXU26は、ソース・オペラン
ド情報及び宛先オペランド情報を特殊目的レジスタ(S
PR)40に入力し及びSPR40から出力する。
【0015】FPU30は、それのソース・オペランド
情報を浮動小数点アーキテクチャ・レジスタ(FPR)
36及び浮動小数点リネーム・バッファ38から入力す
る。FPU30は、そのオペレーションの結果(宛先オ
ペランド情報)を、浮動小数点リネーム・バッファ38
における選択されたエントリに記憶するために出力す
る。
【0016】LSU28は、ロード命令に応答して、情
報をデータ・キャッシュ16から入力し、そのような情
報をリネーム・バッファ34及び38の選択されたもの
にコピーする。そのような情報がデータ・キャッシュ1
6に記憶されてない場合、データ・キャッシュ16はそ
のような情報を、システム・バス11に接続されたシス
テム・メモリ39から(BIU12及びシステム・バス
11を介して)入力する。更に、データ・キャッシュ1
6は、システム・バス11に接続されたシステム・メモ
リ39に(BIU12及びシステム・バス11を介し
て)情報を出力することができる。LSU28は、スト
ア命令に応答して、GPR32及びFPR36の選択さ
れたものから情報を入力し、そのような情報をデータ・
キャッシュ16にコピーする。
【0017】シーケンサ・ユニット18は情報をGPR
32及びFPR36に入力し、及びGPR32及びFP
R36から出力する。ブランチ・ユニット20は、プロ
セッサ10の現在の状態を表す命令及び信号をシーケン
サ・ユニット18から入力する。そのような命令及び信
号に応答して、ブランチ・ユニット20は、プロセッサ
10による実行のための一連の命令を記憶した適当なメ
モリ・アドレスを表す信号を(シーケンサ・ユニット1
8に)に出力する。ブランチ・ユニット20からのその
ような信号に応答して、シーケンサ・ユニット18は表
示された命令のシーケンスを命令キャッシュ14から入
力する。一連の命令のうちの1つ又は複数個が命令キャ
ッシュ14に記憶されてない場合、命令キャッシュ14
は、システム・バス11に接続されたシステム・メモリ
39から(BIU12及びシステム・バス11を通し
て)そのような命令を入力する。
【0018】命令キャッシュ14のアクセスと並行し
て、シーケンサ・ユニット18はブランチ・ターゲット
・アドレス・キャッシュ21をアクセスする。ブランチ
・ターゲット・アドレス・キャッシュ21においてアド
レスが見つかった場合、そのアドレスは、次のサイクル
において命令キャッシュ14及びブランチ・ターゲット
・アドレス・キャッシュ21をアクセスするために使用
される。命令ストリームにおける実施されたブランチに
応答して、ブランチ・ユニット20は、そのブランチを
フェッチするために使用されたアドレスに対応したアド
レスでそのブランチのターゲット・アドレスをブランチ
・ターゲット・アドレス・キャッシュ21にロードす
る。
【0019】ブランチ・ターゲット・アドレス・キャッ
シュ(BTAC)は、各ブランチに対する予測されたタ
ーゲット命令の絶対アドレスを記憶するキャッシュであ
る。その絶対アドレスは、一般に、予測されたターゲッ
ト命令が置かれているプログラム・カウンタを指示する
ことによって表される。BTACは、フェッチ時間予測
器であり、ブランチ・ターゲット・ロケーションの実際
の計算には関係しない。事実、その計算結果は、ブラン
チ予測が必要となる次の時間のためにBTACにロード
される。
【0020】シーケンサ・ユニット18は、命令キャッ
シュ14から入力された命令に応答して、それらの命令
を実行ユニット20、22、24、26、28、及び3
0のうちの選択されたものに選択的にディスパッチす
る。各実行ユニットは、特定のクラスの命令のうちの1
つ又は複数の命令を実行する。例えば、FXUA22及
びFXUB24は、加算、減算、AND、OR、及びX
ORのような第1クラスの固定小数点数学的オペレーシ
ョンをソース・オペランドに関して実行する。CFXU
26は、固定小数点乗算及び除算のような第2クラスの
固定小数点オペレーションをソース・オペランドに関し
て実行する。FPU30は浮動小数点乗算及び除算のよ
うな浮動小数点オペレーションをソース・オペランドに
関して実行する。
【0021】情報がリネーム・バッファ34の選択され
た1つに記憶される時、そのような情報は、その選択さ
れたリネーム・バッファを割り当てた命令によって指定
される記憶ロケーション(例えば、GPR32の1つ又
はCAレジスタ42)と関連付けられる。リネーム・バ
ッファ34の選択された1つに記憶された情報は、シー
ケンサ・ユニット18からの信号に応答して、GPR3
2のうちのそれが関連する1つ(又はCAレジスタ4
2)にコピーされる。シーケンサ・ユニット18は、リ
ネーム・バッファ34の選択された1つに記憶された情
報のそのようなコピー動作を、その情報を発生した命令
の「終了」に応答して指示する。そのようなコピー動作
は「ライトバック」と呼ばれる。
【0022】リネーム・バッファ38の選択された1つ
に情報が記憶される時、そのような情報はFPR36の
1つと関連付けられる。リネーム・バッファ38の選択
された1つに記憶された情報は、シーケンサ・ユニット
18からの信号に応答してFPR36のそれが関連する
1つにコピーされる。シーケンサ・ユニット18は、リ
ネーム・バッファ38の選択された1つに記憶された情
報のそのようなコピー動作を、その情報を発生した命令
の「終了」に応答して指示する。
【0023】プロセッサ10は、実行ユニット20、2
2、24、26、28、及び30のうちの種々なものに
おいて複数の命令を同時に処理することによって高いパ
フォーマンスを得る。従って、各命令は一連のステージ
として処理され、各ステージは他の命令のステージと並
行して実行可能である。そのような技法は「パイプライ
ン処理」と呼ばれる。本実施例の1つの重要な局面とし
て、命令は、6つのステージ、即ち、フェッチ、デコー
ド、ディスパッチ、実行、終了、及びライトバックとし
て処理される。
【0024】フェッチ・ステージにおいて、シーケンサ
・ユニット18は、ブランチ・ユニット20、シーケン
サ・ユニット18、及びブランチ・ターゲット・アドレ
ス・キャッシュ21と関連して前述した命令のシーケン
スを記憶する1つ又は複数のメモリ・アドレスから1つ
又は複数の命令を(命令キャッシュ14から)選択的に
入力する。
【0025】デコード・ステージにおいて、シーケンサ
・ユニット18は4つまでのフェッチされた命令をデコ
ードする。
【0026】ディスパッチ・ステージにおいて、シーケ
ンサ・ユニット18は、ディスパッチされた命令の結果
(宛先オペランド情報)のためのリネーム・バッファ・
エントリを予約した後、4つまでのデーコードされた命
令を実行ユニット20、22、24、26、28、及び
30のうちの(デコード・ステージにおけるデコーディ
ングに応答して)選択されたものに選択的にディスパッ
チする。ディスパッチ・ステージでは、ディスパッチさ
れた命令に対する選択されたユニットに、オペランド情
報が供給される。プロセッサ10は、プログラムされた
シーケンスの順序で命令をディスパッチする。
【0027】実行ステージにおいて、実行ユニットがそ
れらのディスパッチされた命令を実行し、そして上で説
明したようにリネーム・バッファ34及びリネーム・バ
ッファ38における選択されたエントリに記憶するため
に、それらのオペレーションの結果(宛先オペランド情
報)を出力する。このように、プロセッサ10は命令
を、それらのプログラムされたシーケンスに関して順序
を外れて実行することができる。
【0028】完了ステージにおいて、シーケンサ・ユニ
ット18は、命令が「終了」したことを表す。プロセッ
サ10は命令を、それらのプログラムされたシーケンス
の順序で「終了」する。
【0029】ライトバック・ステージにおいて、シーケ
ンサ・ユニット18は、リネーム・バッファ34及び3
8から、それぞれ、GPR32及びFPR36に情報を
コピーすることを指示する。シーケンサ・ユニット18
は、選択されたリネーム・バッファにそのような情報の
コピーを記憶することを指示する。同様に、特定の命令
のライトバック・ステージにおいて、プロセッサ10は
その特定の命令に応答してそれのアーキテクチャ状態を
更新する。プロセッサ10は命令の各ライトバック・ス
テージを、それらのプログラムされたシーケンスの順序
で処理する。プロセッサ10は、指定された状況におい
て命令の終了ステージ及びライトバック・ステージをマ
ージする。
【0030】図示の実施例では、各命令は命令処理の各
ステージを終了するために1マシン・サイクルを必要と
する。それにもかかわらず、或命令(例えば、CFXU
26において実行される複合固定小数点命令)は、1サ
イクルよりも多いサイクルを必要とすることがある。従
って、先行の命令の終了に必要な時間の変動に応答し
て、命令の実行ステージと終了ステージとの間には、可
変的な遅延が生じることがある。
【0031】既知のシステムでは、相対的ブランチ命令
が、その相対的ブランチ命令に含まれたオフセットと共
にシステム・メモリ39又は命令キャッシュ14に記憶
される。シーケンス・ユニット18が相対的ブランチ命
令をデコードする時、実行されるべき次の命令のロケー
ションを決定するために、現在の命令カウンタがそのオ
フセットに加えられる。プログラム・カウンタをオフセ
ットに加えることによって計算されたロケーションはタ
ーゲット命令のアドレスである。そこで、そのターゲッ
ト命令のアドレスはシーケンサ・ユニット18によって
命令キャッシュ14に返送されて命令キャッシュ14か
らターゲット命令をフェッチさせ、それをシーケンサ・
ユニット18に入力させる。ターゲット命令が命令キャ
ッシュ14において見つからない場合、ターゲット命令
をシステム・メモリ39から検索してそれを命令キャッ
シュ14に入力するために、そのアドレスが命令キャッ
シュ14によって使用される。従って、シーケンサ・ユ
ニット18は命令キャッシュ14からターゲット命令を
入力することが可能である。
【0032】キャッシュ、又はブランチ・ターゲット・
アドレス・キャッシュのようなメモリ装置は、実アドレ
シング或いは仮想アドレシングを使用してアクセス可能
である。実アドレスはメモリ装置内の物理的ロケーショ
ンに対応する。仮想アドレスは有効アドレスと呼ばれる
こともある。仮想アドレスは、プログラマにとって利用
可能な完全なアドレス範囲であるアドレス空間をアドレ
スするために使用される。一般には、アドレス空間の大
きさは、データ処理システムに含まれたメモリ装置の物
理的ロケーションの大きさを超えるであろう。従って、
仮想アドレスの数は実アドレスの数を超えるであろう。
仮想アドレスの数が実アドレスの数を超える時、別名割
当て(aliasing)が生じることがある。別名割
当ては、単一の物理的ロケーション又は物理的アドレス
が2つ又はそれ以上の仮想アドレスによって表される時
に生じる。
【0033】本発明の実施例では、相対的ブランチ命令
が命令キャッシュ14に記憶される前に、ターゲット命
令のロケーションが計算され、命令キャッシュ14にお
ける相対的ブランチ命令と共に記憶される。本実施例で
は、既知のシステムと違って、オフセットは相対的ブラ
ンチ命令と共に記憶されない。オフセットを記憶する代
わりに、ターゲット命令のロケーション又はアドレスが
オフセットに代わって相対的ブランチ命令と共に記憶さ
れる。従って、シーケンサ・ユニット18が相対的ブラ
ンチ命令をデコードする時、ターゲット命令のアドレス
は既に知られている。現在のプログラム・カウンタがオ
フセットに加算されることを必要とする計算は行われる
必要がない。ターゲット命令のアドレスは、命令キャッ
シュ14又はシステム・メモリ39からターゲット命令
を検索するために直接使用可能である。
【0034】本発明を使用することによって、図1にお
けるBTAC21は不必要になる。更に、BTAC予測
が正確なターゲット計算でもって置換されるので、図1
におけるプロセッサ10に関するパフォーマンスの改良
が得られる。
【0035】任意の数のビットによって命令の完全なア
ドレスを表すことが可能である。例えば、本実施例で
は、完全なアドレスは32ビットの長さであろう。各ブ
ランチ命令に対して、そのブランチ命令のアドレスを表
すために、32ビットの一部分しか使用されない。本実
施例では、ブランチ命令をアドレスするためには下位1
6ビットしか使用されない。
【0036】図2は、オフセットを有する相対的ブラン
チ命令を含んだプログラミング・コードのセグメントの
図式表示であり、図3は、本実施例の方法及びシステム
に従ってプログラマにより意図された命令のオリジナル
・シーケンスである。本実施例の便宜上、有効アドレス
0x10000000乃至0x10000FFFが、そ
れぞれ、物理的アドレス0x00000000乃至0x
00000FFFにマップし、有効アドレス0x100
01000乃至0x10001FFFが、それぞれ、物
理的アドレス0x00002000乃至0x00002
FFFにマップし、有効アドレス0x10002000
乃至0x10002FFFが、それぞれ、物理的アドレ
ス0x00000000乃至0x00000FFFにマ
ップし、有効アドレス0x10003000乃至0x1
0003FFFが、それぞれ、物理的アドレス0x00
003000乃至0x00003FFFにマップする。
【0037】例えば、命令60は、オフセット62を含
む相対的ブランチ・アドレスである。命令60は、それ
のオフセットと共に、物理的アドレス64によって表さ
れたロケーションに記憶される。物理的アドレス64は
プログラム・カウンタ66によって表される。図2に示
された命令は、メモリ39又は命令キャッシュ14のよ
うなメモリ装置に記憶可能である。
【0038】フェッチ・ステージの間に、命令60が命
令キャッシュ14又はメモリ39からフェッチされる。
オフセット62が、物理的アドレス64である命令60
のロケーションに加えられる。相対的ブランチ命令に対
して、そのオフセットがそのブランチ命令の有効アドレ
スに加えられる。本発明の1つの重要な局面によれば、
ブランチ命令と関連した次の命令又はターゲット命令の
ロケーションが計算され、しかる後、そのブランチ命令
と共に記憶される。このように、命令キャッシュ14が
ロードされる時、ターゲット命令のロケーションが事前
計算される。
【0039】ターゲット命令のロケーションの計算はそ
の命令の有効アドレスを使用して行われるように定義さ
れるので、相対的ブランチ命令のオフセットがその相対
的ブランチ命令の物理的アドレスに加えられることはな
い。それはその相対的ブランチ命令の有効アドレスに加
えられなければならない。
【0040】仮想メモリとも呼ばれるアドレス空間は、
ページと呼ばれる固定サイズのセグメントに分割可能で
ある。ページ・サイズは種々のデータ処理システムの間
で変わり得るものである。アドレス空間内の特定のロケ
ーションをアドレスするためには、仮想アドレスは、特
定のページのアドレス及びそのページ内のオフセットを
含まなければならない。本実施例では、アドレス空間は
4Kバイト・ページに分割される。4Kバイト・ページ
をアドレスするためには、12ビットが必要である。
【0041】本発明の一実施例は、相対的ブランチ命令
に対する第2命令、即ち、ターゲット命令のロケーショ
ンの一部分だけの計算を与える。データ処理システムが
特定のページ・サイズを含む場合、その特定のページ・
サイズをアドレスするために必要なビットの数が計算さ
れ、その相対的ブランチ命令と共に記憶される。例え
ば、4Kバイト・ページ・サイズが使用される時、下位
12ビットが計算され、相対的ブランチ命令及び事前計
算されたターゲット・ロケーションが仮想又は実キャッ
シュに記憶されているかどうかを考慮することなくその
相対的ブランチ命令と共に記憶可能である。これは、有
効アドレスの下位12ビットがターゲット命令の物理的
アドレスの下位12ビットと同じになるためである。
【0042】ターゲット命令をフェッチするために命令
キャッシュ14がアクセスされる時、ターゲット命令を
アドレスするために、相対的ブランチ命令と共に記憶さ
れた下位12ビットが直ちに使用可能である。完全なア
ドレスを発生するためには、上位ビットが計算されなけ
ればならない。
【0043】必要なすべてのアドレス・ビット以外のビ
ットの数が事前計算される時、残りのアドレス・ビット
を正しく計算するためには2つの付加ビットが必要であ
る。これらのビットの1つは、オフセットがプログラム
・カウンタに加えられた後に発生されるキャリー・アウ
ト・ビットである。他方のビットは、ブランチ命令をア
ドレスするために使用されるアドレスの16ビット部分
を、完全なアドレスのために必要な全32ビットまで拡
張するために、符号拡張ビットとして使用される。それ
ら2つの付加ビットは、命令における未使用ビット又は
状態にエンコード可能である。
【0044】本実施例では、12以外のビット数が事前
計算されそして相対的ブランチ命令と共に記憶される場
合、正しいターゲット命令を位置指定するためには、そ
の相対的ブランチ命令と共に記憶された事前計算された
アドレスが物理的アドレスに変換されなければならな
い。これは、有効アドレスを使用するようにアドレスの
計算が上で定義されたので必要である。記憶されたター
ゲット・アドレスは、相対的ブランチ命令と共に有効ア
ドレスとして記憶される。
【0045】命令キャッシュ14が実キャッシュである
場合、相対的ブランチ命令は、それの事前計算されたタ
ーゲット・アドレスと共に、その相対的ブランチ命令の
物理的アドレスに記憶される。別名割当てが生じる時、
図3の例におけるように、不正確なコード・シーケンス
が生じる。その例では、有効アドレス0x100000
00乃至0x10000FFFが、それぞれ、物理的ア
ドレス0x00000000乃至0x00000FFF
にマップし、有効アドレス0x10002000乃至0
x10002FFFが、それぞれ、物理的アドレス0x
00000000乃至0x00000FFFにマップす
る。従って、命令60及び68は両方とも物理的ロケー
ション0x00000000に記憶されるであろう。物
理的ロケーション0x00000000に記憶された命
令68に対するターゲット命令の計算は、そのコード・
シーケンスを有効アドレス0x10002000から、
0x10003000の適正な代わりとして、0x10
001000に流れさせるであろう。
【0046】命令キャッシュ14が仮想キャッシュであ
る場合、相対的ブランチ命令は、それの事前計算された
ターゲット・アドレスと共に、その相対的ブランチ命令
の有効アドレスに記憶される。
【0047】従って、正しいコード・シーケンスを補償
するために、命令キャッシュ14に対しては仮想キャッ
シュが利用されなければならず、或いは、仮想キャッシ
ュ又は実キャッシュのどちらかの場合、唯一の有効アド
レスが各物理的アドレスと関連付けられる。
【0048】本実施例におけるメモリ空間のアドレシン
グにおいて考察されるべきもう1つの要素は現在実行さ
れているプログラム・コードのエンディアネス(Endiane
ss)である。エンディアネスにはビッグ・エンディアネ
ス及びリトル・エンディアネスがあり、ビッグ・エンデ
ィアネスは最高位桁のバイトを先頭にした数の状態を、
意味し、リトル・エンディアネスは最下位桁のバイトを
先頭にした数の状態を意味する。ビッグ・エンディアン
・コード及びリトル・エンディアン・コードはプログラ
ム・メモリにおける命令の配列において異なる。本実施
例では、リトル・エンディアン・コードは偶数及び奇数
アドレスの命令を正規のビッグ・エンディアンの配列か
らスワップさせる。従って、相対的ブランチ・ターゲッ
ト・ロケーションの計算は、そのコードがビッグ・エン
ディアンであるか或いはリトル・エンディアンであるか
に依存する。リトル・エンディアンに対するターゲット
を計算する時、命令アドレスの最下位ビットが正規のビ
ッグ・エンディアン・ターゲットから排他的ORされな
ければならない。その機械がどのエンディアン・モード
で走っているかを決定するために、シーケンサの機械状
態レジスタにおけるビットが使用される。ブランチ・タ
ーゲット・ロケーションを事前計算する時、そのブラン
チ・ターゲット・ロケーションを計算するためにどちら
のエンディアン・モードが使用されたかをタグするため
に、1キャッシュ・ライン当たり1つのビットが使用さ
れる。このビットは、キャッシュのヒット又はミスを決
定するためのもう1つのタグとして命令フェッチ時に使
用可能である。アドレスされた命令はヒットのためには
キャッシュ内になければならないのみならず、正しいエ
ンディアン・モードで記憶されなければならないか、或
いはキャッシュ・ミスと見なされる。
【0049】図4は、命令の処理、並びに、事前計算さ
れるべきビットの数がアドレス空間の単一ページをアド
レスするに必要なビットの数に等しい時のブランチ・タ
ーゲットの相対的アドレスの事前計算を説明する高レベ
ルのフロー・チャートである。図4に示された実施例
は、実キャッシュ又は仮想キャッシュを使用して実施可
能である。プロセスはブロック70に示されるように開
始し、しかる後、ブロック72に進む。ブロック72
は、命令キャッシュ14が処理されるべき次の命令を既
に含んでいるかどうかを決定することを示す。命令キャ
ッシュ14が正しいエンディアン・モードで処理される
べき次の命令を含むという決定が行われる場合、プロセ
スはブロック88に進む。命令キャッシュ14が処理さ
れるべき次の命令を含んでいないという決定が行われる
場合、プロセスはブロック74に進む。ブロック74
は、メイン・メモリ39から命令をフェッチすることを
示す。
【0050】次に、ブロック76は、処理されるべき命
令がブランチ命令であるかどうかを決定することを示
す。その命令がブランチ命令ではないという決定が行わ
れる場合、プロセスはブロック86に進む。その命令が
ブランチ命令であるという決定が行われる場合、プロセ
スはブロック78に進む。ブロック78は、命令が相対
的ブランチ命令であるかどうかを決定することを示す。
その命令が相対的ブランチ命令ではないという決定が行
われる場合、プロセスはブロック86に進む。その命令
が相対的ブランチ命令であるという決定が行われる場
合、プロセスはブロック80に進む。ブロック80は、
オフセットの下位12ビットと相対的ブランチ命令の有
効アドレスの下位12ビットとを加算することを示す。
しかる後、ブロック82は、ブロック80の加算の和で
ある事前計算されたターゲットでもってオフセットの下
位12ビットを置換することを示す。
【0051】ブロック84は、ブロック80の加算のキ
ャリー・アウトを相対的ブランチ命令に記憶することを
示す。次に、ブロック86は、命令キャッシュ14にお
ける相対的ブランチ命令を記憶することを示す。しかる
後、ブロック88は、命令キャッシュ14から命令を得
ることを示す。そこで、プロセスはブロック90に進
む。ブロック90は、命令キャッシュ14から検索され
た命令がブランチ命令であるかどうかを決定することを
示す。その命令がブランチ命令ではないという決定が行
われる場合、プロセスはブロック94に進む。その命令
がブランチ命令であるという決定が行われる場合、プロ
セスはブロック92に進む。ブロック92は、その命令
が相対的ブランチ命令であるかどうかを決定することを
示す。その命令が相対的ブランチ命令ではないという決
定が行われる場合、プロセスはブロック94に進む。そ
の命令が相対的ブランチ命令であるという決定が行われ
る場合、プロセスはブロック96に進む。ブロック96
は、事前計算された下位12ビットを直ちに命令キャッ
シュ14に返送することを示す。次に、ブロック98
は、キャリー・イン・ビットを含むブランチ命令の有効
アドレスの上位20ビットにオフセットの上位ビットを
加算することを示す。オフセットは32ビットに符号拡
張されている。次に、ブロック100はブランチ命令の
実行を示す。そこで、プロセスは、図示のように、コネ
クタAを通してブロック72に戻る。
【0052】図5は、命令の処理、並びに、事前計算さ
れるべきビットの数がアドレス空間の単一ページをアド
レスするに必要なビットの数よりも大きい時のブランチ
・ターゲットの相対的アドレスの事前計算を示す高レベ
ルのフロー・チャートである。図5に示された実施例は
仮想キャッシュを使用して実施可能である。
【0053】便宜上、図5は、命令キャッシュにおける
事前計算されたブランチ・ターゲット・ロケーション・
アドレスのすべてのビットを記憶するに十分なスペース
が存在するものと仮定する。フル・アドレスよりも少な
いアドレスがオフセットに代わって記憶される場合、ブ
ランチを実行する前にフル・アドレスを計算するための
アクションが、図4のブロック84及び98におけるよ
うに行われる必要がある。
【0054】プロセスは、図示のように、ブロック20
において開始し、しかる後、ブロック122に進む。ブ
ロック122は、命令キャッシュ14が処理されるべき
次の命令を既に含んでいるかどうかを決定することを示
す。命令キャッシュ14が正しいエンディアン・モード
で処理されるべき次の命令を含んでいるという決定が行
われる場合、プロセスはブロック136に進む。命令キ
ャッシュ14が処理されるべき次の命令を含んでいない
という決定が行われる場合、プロセスはブロック124
に進む。ブロック124は、メイン・メモリ39から命
令をフェッチすることを示す。
【0055】次に、ブロック126は、処理されるべき
命令がブランチ命令であるかどうかを決定することを示
す。その命令がブランチ命令ではないという決定が行わ
れる場合、プロセスはブロック134に進む。その命令
がブランチ命令であるという決定が行われる場合、プロ
セスはブロック128に進む。ブロック128は、その
命令が相対的ブランチ命令であるかどうかを決定するこ
とを示す。その命令が相対的ブランチ命令ではないとい
う決定が行われる場合、プロセスはブロック134に進
む。その命令が相対的ブランチ命令であるという決定が
行われる場合、プロセスはブロック130に進む。ブロ
ック130は、相対的ブランチ命令の有効アドレスにオ
フセットを加算することを示す。次に、ブロック132
は、ブロック130の加算の和である事前計算されたタ
ーゲットでもってそのオフセットを置換することを示
す。
【0056】ブロック134は、相対的ブランチ命令の
有効アドレスを使用して、相対的ブランチ命令及び事前
計算されたターゲットを命令キャッシュ14に記憶する
ことを示す。しかる後、ブロック136は命令キャッシ
ュ14から命令を得ることを示す。そこで、プロセスは
ブロック138に進む。ブロック138は、命令キャッ
シュ14から検索された命令がブランチ命令であるかど
うかを決定することを示す。その命令がブランチ命令で
はないという決定が行われる場合、プロセスはブロック
146に進む。その命令がブランチ命令であるという決
定が行われる場合、プロセスはブロック140に進む。
ブロック140は、その命令が相対的ブランチであるか
どうかを決定することを示す。その命令が相対的ブラン
チ命令ではないという決定が行われる場合、プロセスは
ブロック146に進む。ブロック146はその命令の実
行を示す。
【0057】再び、ブロック140を参照すると、その
命令が相対的ブランチ命令であるという決定が行われる
場合、プロセスはブロック142に進む。ブロック14
2は、相対的ブランチ命令と共に記憶された有効ターゲ
ット・アドレスを使用してターゲット命令をアクセスす
ることを示す。次に、ブロック144は相対的ブランチ
命令の実行を示す。そこで、プロセスは、図示のよう
に、コネクタAを通してブロック122に戻る。
【0058】図6は、命令の処理、並びに、事前計算さ
れるべきビットの数がアドレス空間の単一ページをアド
レスするに必要なビットの数よりも大きい時のブランチ
・ターゲットの相対的アドレスの事前計算を示す高レベ
ルのフロー・チャートである。図6に示された実施例
は、別名を許容しない実キャッシュを使用して実施され
る。
【0059】便宜上、図6は、命令キャッシュにおける
事前計算されたブランチ・ターゲット・ロケーション・
アドレスのすべてのビットを記憶するに十分なスペース
が存在するものと仮定する。フル・アドレスよりも少な
いアドレスがオフセットに代わって記憶される場合、ブ
ランチを実行する前にフル・アドレスを計算するための
アクションが、図4のブロック84及び98におけるよ
うに行われる必要がある。
【0060】プロセスは、図示のように、ブロック16
0において開始し、しかる後、ブロック162に進む。
ブロック162は、命令キャッシュ14が処理されるべ
き次の命令を既に含んでいるかどうかを決定することを
示す。命令キャッシュ14が正しいエンディアン・モー
ドで処理されるべき次の命令を含んでいるという決定が
行われる場合、プロセスはブロック178に進む。命令
キャッシュ14が処理されるべき次の命令を含んでいな
いという決定が行われる場合、プロセスはブロック16
4に進む。ブロック164は、メイン・メモリ39から
命令をフェッチすることを示す。
【0061】次に、ブロック166は、処理されるべき
命令がブランチ命令であるかどうかを決定することを示
す。その命令がブランチ命令ではないという決定が行わ
れる場合、プロセスはブロック174に進む。その命令
がブランチ命令であるという決定が行われる場合、プロ
セスはブロック168に進む。ブロック168は、その
命令が相対的ブランチ命令であるかどうかを決定するこ
とを示す。その命令が相対的ブランチ命令ではないとい
う決定が行われる場合、プロセスはブロック174に進
む。その命令が相対的ブランチ命令であるという決定が
行われる場合、プロセスはブロック170に進む。ブロ
ック170は、相対的ブランチ命令の有効アドレスにオ
フセットを加算することを示す。次に、ブロック172
は、ブロック170の加算の和である事前計算されたタ
ーゲットでもってそのオフセットを置換することを示
す。
【0062】ブロック174は、相対的ブランチ命令の
物理的アドレスを使用して、相対的ブランチ命令及び事
前計算されたターゲットを命令キャッシュ14に記憶す
ることを示す。しかる後、ブロック178は命令キャッ
シュ14から命令を得ることを示す。そこで、プロセス
はブロック180に進む。ブロック180は命令キャッ
シュ14から検索された命令がブランチ命令であるかど
うかを決定することを示す。その命令がブランチ命令で
はないという決定が行われる場合、プロセスはブロック
184に進む。その命令がブランチ命令であるという決
定が行われる場合、プロセスはブロック182に進む。
ブロック182は、その命令が相対的ブランチであるか
どうかを決定することを示す。その命令が相対的ブラン
チ命令ではないという決定が行われる場合、プロセスは
ブロック184に進む。ブロック184はその命令の実
行を示す。
【0063】再び、ブロック182を参照すると、命令
が相対的ブランチ命令であるという決定が行われる場
合、プロセスはブロック186に進む。ブロック186
は、相対的ブランチ命令と共に記憶された有効ターゲッ
ト・アドレスをターゲット命令のための物理的アドレス
に変換することを示す。次に、ブロック188は相対的
ブランチ命令の実行を示す。そこで、プロセスは図示の
ように、コネクタAを通してブロック162に戻る。
【0064】本実施例を詳細に示し及び説明したが、本
発明の趣旨及び技術的範囲を逸脱することなく形式及び
詳細における種々の変更を行い得ることは当業者には明
らかであろう。
【0065】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0066】(1)命令を記憶するためのキャッシュ・
メモリを有するデータ処理システムにおいて第1タイプ
の命令を処理する方法にして、処理されるべき第1命令
を決定するステップと、前記第1命令が第1タイプの命
令であるかどうかを決定するステップと、前記第1命令
が第1タイプの命令であることに応答して、前記第1命
令と関連した第1ロケーションを決定するステップと、
前記第1命令と関連した前記第1ロケーションからのオ
フセットを決定するステップと、前記第1ロケーション
及び前記オフセットを利用して、処理されるべき第2命
令の第2ロケーションを計算するステップと、前記第1
命令が前記キャッシュ・メモリにロードされる時、前記
第1命令と関連して前記第2ロケーションの少なくとも
一部分を記憶するステップと、を含む方法。 (2)前記第1命令が第1タイプの命令であるかどうか
を決定するステップは、更に、前記第1命令が相対的ブ
ランチ命令であるかどうかを決定するステップを含むこ
とを特徴とする上記(1)に記載の方法。 (3)前記第1命令が第1タイプの命令であることに応
答するステップは、前記第1命令と関連した第1アドレ
スを決定するステップを含むことを特徴とする上記
(1)に記載の方法。 (4)前記第2命令の第2ロケーションを計算するステ
ップは、前記第2アドレスを計算するために前記第1ア
ドレスを前記オフセットに加えることによって前記第2
命令の第2アドレスを決定するステップを含むことを特
徴とする上記(3)に記載の方法。 (5)前記第2命令の第2アドレスを決定するステップ
は、前記第2アドレスが多重ビットによって表されるこ
とを特徴とする上記(4)に記載の方法。 (6)前記第2ロケーションの少なくとも一部分を記憶
するステップは、更に、前記第2ロケーションの複数の
前記多重ビットを前記第1命令と共にメモリに記憶する
ステップを含むことを特徴とする上記(5)に記載の方
法。 (7)前記第2ロケーションの複数の前記多重ビットを
前記第1命令と共にメモリに記憶するステップは、更
に、前記第1命令の複数のビットを前記第2ロケーショ
ンの複数の前記多重ビットでもって置換するステップを
含むことを特徴とする上記(6)に記載の方法。 (8)前記第2ロケーションの複数の前記多重ビットを
記憶するステップは、更に、如何なるアドレス変換機構
によっても変更されない前記多重ビットの部分を、前記
第2ロケーションを計算するために必要な付加制御ビッ
トと共に記憶するステップを含むことを特徴とする上記
(6)に記載の方法。 (9)前記第2ロケーションの複数の前記多重ビットを
記憶するステップは、更に、前記第2ロケーションを計
算したエンディアン・モードを表すビットをメモリに記
憶するステップを含むことを特徴とする上記(6)に記
載の方法。 (10)命令を記憶するためのキャッシュ・メモリを有
し、第1タイプの命令を処理するための処理システムに
して、処理されるべき第1命令を決定するための手段
と、前記第1命令が第1タイプの命令であるかどうかを
決定するための手段と、前記第1命令が第1タイプの命
令であることに応答して、前記第1命令と関連した第1
ロケーションを決定するための手段と、前記第1命令と
関連した前記第1ロケーションからのオフセットを決定
するための手段と、前記第1ロケーション及び前記オフ
セットを、処理されるべき第2命令の第2ロケーション
を利用して計算するための手段と、前記第1命令が前記
キャッシュ・メモリにロードされる時、前記第1命令と
関連した前記第2ロケーションの少なくとも一部分を記
憶するための手段と、を含むシステム。 (11)前記第1命令が第1タイプの命令であるかどう
かを決定するための手段は、前記第1命令が相対的ブラ
ンチ命令であるかどうかを決定するための手段を含むこ
とを特徴とする上記(10)に記載のシステム。 (12)前記第1命令が第1タイプの命令であることに
応答するする手段は、前記第1命令と関連した第1アド
レスを決定するための手段を含むことを特徴とする上記
(10)に記載のシステム。 (13)前記第2命令の第2ロケーションを計算するた
めの手段は、前記第2アドレスを計算するために前記第
1アドレスを前記オフセットに加えることによって前記
第2命令の第2アドレスを決定するための手段を含むこ
とを特徴とする上記(12)に記載のシステム。 (14)前記第2命令の第2アドレスを決定するための
手段は、前記第2アドレスが多重ビットによって表され
ることを特徴とする上記(13)に記載のシステム。 (15)前記第2ロケーションの少なくとも一部分を記
憶するための手段は、更に、前記第2ロケーションの複
数の前記多重ビットを前記第1命令と共にメモリに記憶
するための手段を含むことを特徴とする上記(14)に
記載のシステム。 (16)前記第2ロケーションの複数の前記多重ビット
を前記第1命令と共にメモリに記憶するための手段は、
更に、前記第1命令の複数のビットを前記第2ロケーシ
ョンの複数の前記多重ビットでもって置換するための手
段を含むことを特徴とする上記(15)に記載のシステ
ム。 (17)前記第2ロケーションの複数の前記多重ビット
を記憶するための手段は、更に、如何なるアドレス変換
機構によっても変更されない前記多重ビットの部分を、
前記第2ロケーションを計算するために必要な付加制御
ビットと共に記憶する記憶するための手段を含むことを
特徴とする上記(15)に記載のシステム。 (18)複数の前記多重ビットを記憶するための手段
は、更に、前記第2ロケーションを計算したエンディア
ン・モードを表すビットをメモリに記憶するための手段
を含むことを特徴とする上記(15)に記載のシステ
ム。
【図面の簡単な説明】
【図1】好適な実施例に従って情報を処理するためのプ
ロセッサのブロック図である。
【図2】オフセットを有する相対的ブランチ命令を含む
プログラミング・コードのセグメントの図式表示及び本
実施例の方法及びシステムに従った正しい命令シーケン
スを示す。
【図3】オフセットを有する相対的ブランチ命令を含む
プログラミング・コードのセグメントの図式表示及び本
実施例の方法及びシステムに従った正しい命令シーケン
スを示す。
【図4】本実施例の方法及びシステムに従って、データ
処理システム及び命令キャッシュを使用した相対的ブラ
ンチ命令の処理を示す高レベルのフロー・チャートであ
る。
【図5】本実施例の方法及びシステムに従って、データ
処理システム及び仮想アドレシングを使用する命令キャ
ッシュを使用した相対的ブランチ命令の処理を示す高レ
ベルのフロー・チャートである。
【図6】本実施例の方法及びシステムに従って、データ
処理システム及び実アドレシングを使用する命令キャッ
シュを使用した相対的ブランチ命令の処理を示す高レベ
ルのフロー・チャートである。
───────────────────────────────────────────────────── フロントページの続き (71)出願人 594083818 モトローラ・インコーポレイテッド アメリカ合衆国60196、イリノイ州シャー ムバーク、イースト・アルゴンクイン・ロ ード1303、サ−ド・フロワー (72)発明者 テレンス・マシュー・ポッター アメリカ合衆国テキサス州、オースティ ン、ストーンレイク・ブルバード 9801、 ナンバー 1832 (72)発明者 ポール・チャールズ・ロッスバッハ アメリカ合衆国テキサス州、オースティ ン、アントラー・ベンド・ロード 11505 (72)発明者 トーマス・ルター・トーマス、ジュニア アメリカ合衆国テキサス州、オースティ ン、グレート・ヒルズ・トレイル 9009、 ナンバー 2612

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】命令を記憶するためのキャッシュ・メモリ
    を有するデータ処理システムにおいて第1タイプの命令
    を処理する方法にして、 処理されるべき第1命令を決定するステップと、 前記第1命令が第1タイプの命令であるかどうかを決定
    するステップと、 前記第1命令が第1タイプの命令であることに応答し
    て、前記第1命令と関連した第1ロケーションを決定す
    るステップと、 前記第1命令と関連した前記第1ロケーションからのオ
    フセットを決定するステップと、 前記第1ロケーション及び前記オフセットを利用して、
    処理されるべき第2命令の第2ロケーションを計算する
    ステップと、 前記第1命令が前記キャッシュ・メモリにロードされる
    時、前記第1命令と関連して前記第2ロケーションの少
    なくとも一部分を記憶するステップと、 を含む方法。
  2. 【請求項2】前記第1命令が第1タイプの命令であるか
    どうかを決定するステップは、更に、前記第1命令が相
    対的ブランチ命令であるかどうかを決定するステップを
    含むことを特徴とする請求項1に記載の方法。
  3. 【請求項3】前記第1命令が第1タイプの命令であるこ
    とに応答するステップは、前記第1命令と関連した第1
    アドレスを決定するステップを含むことを特徴とする請
    求項1に記載の方法。
  4. 【請求項4】前記第2命令の第2ロケーションを計算す
    るステップは、前記第2アドレスを計算するために前記
    第1アドレスを前記オフセットに加えることによって前
    記第2命令の第2アドレスを決定するステップを含むこ
    とを特徴とする請求項3に記載の方法。
  5. 【請求項5】前記第2命令の第2アドレスを決定するス
    テップは、前記第2アドレスが多重ビットによって表さ
    れることを特徴とする請求項4に記載の方法。
  6. 【請求項6】前記第2ロケーションの少なくとも一部分
    を記憶するステップは、更に、前記第2ロケーションの
    複数の前記多重ビットを前記第1命令と共にメモリに記
    憶するステップを含むことを特徴とする請求項5に記載
    の方法。
  7. 【請求項7】前記第2ロケーションの複数の前記多重ビ
    ットを前記第1命令と共にメモリに記憶するステップ
    は、更に、前記第1命令の複数のビットを前記第2ロケ
    ーションの複数の前記多重ビットでもって置換するステ
    ップを含むことを特徴とする請求項6に記載の方法。
  8. 【請求項8】前記第2ロケーションの複数の前記多重ビ
    ットを記憶するステップは、更に、如何なるアドレス変
    換機構によっても変更されない前記多重ビットの部分
    を、前記第2ロケーションを計算するために必要な付加
    制御ビットと共に記憶するステップを含むことを特徴と
    する請求項6に記載の方法。
  9. 【請求項9】前記第2ロケーションの複数の前記多重ビ
    ットを記憶するステップは、更に、前記第2ロケーショ
    ンを計算したエンディアン・モードを表すビットをメモ
    リに記憶するステップを含むことを特徴とする請求項6
    に記載の方法。
  10. 【請求項10】命令を記憶するためのキャッシュ・メモ
    リを有し、第1タイプの命令を処理するための処理シス
    テムにして、 処理されるべき第1命令を決定するための手段と、 前記第1命令が第1タイプの命令であるかどうかを決定
    するための手段と、 前記第1命令が第1タイプの命令であることに応答し
    て、前記第1命令と関連した第1ロケーションを決定す
    るための手段と、 前記第1命令と関連した前記第1ロケーションからのオ
    フセットを決定するための手段と、 前記第1ロケーション及び前記オフセットを、処理され
    るべき第2命令の第2ロケーションを利用して計算する
    ための手段と、 前記第1命令が前記キャッシュ・メモリにロードされる
    時、前記第1命令と関連した前記第2ロケーションの少
    なくとも一部分を記憶するための手段と、 を含むシステム。
  11. 【請求項11】前記第1命令が第1タイプの命令である
    かどうかを決定するための手段は、前記第1命令が相対
    的ブランチ命令であるかどうかを決定するための手段を
    含むことを特徴とする請求項10に記載のシステム。
  12. 【請求項12】前記第1命令が第1タイプの命令である
    ことに応答するする手段は、前記第1命令と関連した第
    1アドレスを決定するための手段を含むことを特徴とす
    る請求項10に記載のシステム。
  13. 【請求項13】前記第2命令の第2ロケーションを計算
    するための手段は、前記第2アドレスを計算するために
    前記第1アドレスを前記オフセットに加えることによっ
    て前記第2命令の第2アドレスを決定するための手段を
    含むことを特徴とする請求項12に記載のシステム。
  14. 【請求項14】前記第2命令の第2アドレスを決定する
    ための手段は、前記第2アドレスが多重ビットによって
    表されることを特徴とする請求項13に記載のシステ
    ム。
  15. 【請求項15】前記第2ロケーションの少なくとも一部
    分を記憶するための手段は、更に、前記第2ロケーショ
    ンの複数の前記多重ビットを前記第1命令と共にメモリ
    に記憶するための手段を含むことを特徴とする請求項1
    4に記載のシステム。
  16. 【請求項16】前記第2ロケーションの複数の前記多重
    ビットを前記第1命令と共にメモリに記憶するための手
    段は、更に、前記第1命令の複数のビットを前記第2ロ
    ケーションの複数の前記多重ビットでもって置換するた
    めの手段を含むことを特徴とする請求項15に記載のシ
    ステム。
  17. 【請求項17】前記第2ロケーションの複数の前記多重
    ビットを記憶するための手段は、更に、如何なるアドレ
    ス変換機構によっても変更されない前記多重ビットの部
    分を、前記第2ロケーションを計算するために必要な付
    加制御ビットと共に記憶する記憶するための手段を含む
    ことを特徴とする請求項15に記載のシステム。
  18. 【請求項18】複数の前記多重ビットを記憶するための
    手段は、更に、前記第2ロケーションを計算したエンデ
    ィアン・モードを表すビットをメモリに記憶するための
    手段を含むことを特徴とする請求項15に記載のシステ
    ム。
JP8879698A 1997-04-14 1998-04-01 命令を処理する方法及びシステム Pending JPH10312281A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US83956797A 1997-04-14 1997-04-14
US08/839567 1997-04-14

Publications (1)

Publication Number Publication Date
JPH10312281A true JPH10312281A (ja) 1998-11-24

Family

ID=25280089

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8879698A Pending JPH10312281A (ja) 1997-04-14 1998-04-01 命令を処理する方法及びシステム

Country Status (1)

Country Link
JP (1) JPH10312281A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981121B2 (en) 2002-06-28 2005-12-27 Fujitsu Limited Method for aligning stored data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981121B2 (en) 2002-06-28 2005-12-27 Fujitsu Limited Method for aligning stored data

Similar Documents

Publication Publication Date Title
US6073215A (en) Data processing system having a data prefetch mechanism and method therefor
US5954815A (en) Invalidating instructions in fetched instruction blocks upon predicted two-step branch operations with second operation relative target address
JP3751049B2 (ja) パイプラインプロセッサおよびその動作方法
US6119203A (en) Mechanism for sharing data cache resources between data prefetch operations and normal load/store operations in a data processing system
US6298423B1 (en) High performance load/store functional unit and data cache
JP3182740B2 (ja) 単一クロック・サイクルに非連続命令を取り出すための方法およびシステム。
US5860107A (en) Processor and method for store gathering through merged store operations
US5913054A (en) Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle
JP2839075B2 (ja) 処理システムを動作させる方法及び処理システム
JP2002525741A (ja) 間接分岐ターゲットを計算するための方法
JPH0334024A (ja) 分岐予測の方法とそのための装置
US5313644A (en) System having status update controller for determining which one of parallel operation results of execution units is allowed to set conditions of shared processor status word
US5524224A (en) System for speculatively executing instructions wherein mispredicted instruction is executed prior to completion of branch processing
EP0649084A1 (en) Microprocessor branch processing
EP0649086A1 (en) Microprocessor with speculative execution
JPH10161872A (ja) 命令データを位置合せするための方法および装置
US5961575A (en) Microprocessor having combined shift and rotate circuit
US5771366A (en) Method and system for interchanging operands during complex instruction execution in a data processing system
US5678016A (en) Processor and method for managing execution of an instruction which determine subsequent to dispatch if an instruction is subject to serialization
US6587941B1 (en) Processor with improved history file mechanism for restoring processor state after an exception
EP1152328A2 (en) System and method in a pipelined processor for generating a single cycle pipeline stall
US6604191B1 (en) Method and apparatus for accelerating instruction fetching for a processor
US6115730A (en) Reloadable floating point unit
US6484256B1 (en) Apparatus and method of branch prediction utilizing a comparison of a branch history table to an aliasing table
US5956503A (en) Method and system for front-end and back-end gathering of store instructions within a data-processing system