JPH10228376A - 複数レジスタ命令を処理する方法及びプロセッサ - Google Patents

複数レジスタ命令を処理する方法及びプロセッサ

Info

Publication number
JPH10228376A
JPH10228376A JP9343106A JP34310697A JPH10228376A JP H10228376 A JPH10228376 A JP H10228376A JP 9343106 A JP9343106 A JP 9343106A JP 34310697 A JP34310697 A JP 34310697A JP H10228376 A JPH10228376 A JP H10228376A
Authority
JP
Japan
Prior art keywords
registers
processor
instruction
register
cycle
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
JP9343106A
Other languages
English (en)
Inventor
Malik Suumuya
スームヤ・マリック
B Patel Rajesh
ラジェシュ・ビー・パテル
Albert John Loper
アルバート・ジョン・ローパー
M Jesani Romeshu
ロメシュ・エム・ジェサニ
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 JPH10228376A publication Critical patent/JPH10228376A/ja
Pending 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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
    • G06F9/3816Instruction alignment, e.g. cache line crossing
    • 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/3824Operand accessing

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)

Abstract

(57)【要約】 【課題】 複数レジスタ命令を処理するための改善され
た方法及びシステムを提供する。 【解決手段】 複数レジスタ命令を処理するプロセッサ
及び処理方法が開示される。プロセッサは実行回路及び
レジスタのセットを含み、レジスタ・セットの各レジス
タは、データ・ワードを保管できる。レジスタ・セット
内の対応する複数のレジスタに書き込まれる、複数のデ
ータ・ワードを指定する複数レジスタ命令が、実行回路
にディスパッチされる。複数レジスタ命令の受信に応答
し、実行回路は複数レジスタ命令を実行する。この実行
では、プロセッサの単一サイクル内に、複数のデータ・
ワード内の少なくとも2つのデータ・ワードが、複数の
レジスタ内の少なくとも2つの対応するレジスタに書き
込まれる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、概してデータ処理
のための方法及びシステムに関連し、詳細に述べれば、
複数レジスタ命令を効率的に実行するための方法及びシ
ステムに関連する。更に詳細に述べれば、本発明の属す
る技術分野は、単一サイクル内でプロセッサ内の複数の
レジスタをアクセス可能にして、複数レジスタ命令を効
率的に実行するための方法及びシステムに関連する。
【0002】
【従来の技術】最新の一般的なプロセッサは複数の実行
装置を含み、これらの各装置は、対応する命令のタイプ
を実行するために最適化されている。したがって、例え
ば固定小数点命令、浮動小数点命令、分岐命令、ならび
にロード及びストア命令を実行するために、プロセッサ
は固定小数点演算装置(FXU)、浮動小数点演算装置
(FPU)、分岐処理装置(BPU)、及びロード・ス
トア装置(LSU)をそれぞれ装備することができる。
更にプロセッサには、組み込みキャッシュ・メモリ、及
びプロセッサをデータ処理システム・バスに接続するた
めのインタフェース装置と共に、命令オペランド及び結
果データを一時的に保管するための、多数の構成された
レジスタが含まれる。
【0003】データ処理の間に、メモリとプロセッサ内
の構成されたレジスタとの間で、大きなデータ・ブロッ
クを転送する必要が頻繁に起こる。例えば、行列の算術
演算を実行するときに、行列要素の値を後でFPUまた
はFXUが使用するために、プロセッサの構成されたレ
ジスタにロードする必要がある。このような大きなデー
タ・ブロックの転送を単純にするために、プロセッサに
よっては、ロード及びストア複数命令をサポートするも
のがある。この命令は、複数の構成されたレジスタとの
間で、データのロードとストアを実行する。ロード及び
ストア複数命令をサポートするプロセッサは、ストリン
グ命令もサポートする場合がある。この命令は、複数の
構成されたレジスタと非位置合わせメモリ・アドレス
(即ち、ダブルワード合わせでもワード合わせでもない
メモリ・アドレス)との間の、大きなデータ・ブロック
の転送に使用される。
【0004】ストリング命令ならびにロード及びストア
複数命令(以降、すべて簡略化して複数レジスタ命令と
呼ぶ)は、メモリとプロセッサの構成されたレジスタと
の間の大きなデータ・ブロックの転送を、単に単一命令
が要求されていると見なすプログラミングの観点から単
純化するが、複数レジスタ命令ではしばしば待ち時間が
長くなり、実行時間も、同じ結果を得るために個別のロ
ードまたはストア命令の連続を実行する場合より長くか
かる。従来技術のプロセッサにおける複数レジスタ命令
の実行が非効率的である理由の1つは、このようなプロ
セッサでは、一般的に複数レジスタ命令を含むすべての
ロード及びストア命令が、各サイクルで単一の構成され
たレジスタだけしかアクセスできないためである。
【0005】上記で明らかなように、複数レジスタ命令
を非常に効率よく実行するための、改善された方法及び
システムが要求されている。
【0006】
【発明が解決しようとする課題】本発明の目的は、デー
タ処理のための改善された方法及びシステムを提供する
ことである。
【0007】本発明の他の目的は、複数レジスタ命令を
効率的に実行するための方法及びシステムを提供するこ
とである。
【0008】本発明のまた別の目的は、単一サイクル内
でプロセッサ内の複数のレジスタをアクセス可能にし
て、複数レジスタ命令を効率的に実行するための方法及
びシステムを提供することである。
【0009】
【課題を解決するための手段】上記の目的は、以下に説
明するようにして達成される。即ち、複数レジスタ命令
を処理するプロセッサ及び方法が提供される。プロセッ
サは、実行回路及びレジスタのセットを含み、このレジ
スタのセットは、それぞれデータ・ワードを保管でき
る。このレジスタのセット内の対応する複数のレジスタ
に書き込まれる、複数のデータ・ワードを指定する複数
レジスタ命令が、実行回路にディスパッチされる。複数
レジスタ命令の受信に応答し、実行回路は複数レジスタ
命令を実行する。この実行では、プロセッサの単一サイ
クル内で、複数のデータ・ワード内の少なくとも2つの
データ・ワードが、複数のレジスタ内の少なくとも2つ
の対応するレジスタに書き込まれる。
【0010】
【発明の実施の形態】ここで各図、特に図1を参照する
と、例示するプロセッサ10の実施例のブロック図が示
されている。例示する実施例の中で、プロセッサ10
は、単一の集積回路のスーパスカラー・マイクロプロセ
ッサである。したがって以下に詳しく説明するように、
プロセッサ10には各種の実行装置、レジスタ、バッフ
ァ、メモリ、及びその他のセクションが含まれ、それら
がすべて集積回路により形成される。またプロセッサ1
0は、縮小命令セット・コンピュータ(RISC)技術
に従って作動する。図1に示すように、システム・バス
21が、プロセッサ10のバス・インタフェース装置
(BIU)18に接続する。BIU18は、プロセッサ
10とシステム・バス21との間のデータの転送を制御
する。
【0011】BIU18は、命令キャッシュ27及びデ
ータ・キャッシュ28に接続される。命令キャッシュ2
7は、シーケンサ装置17に命令を出力する。命令キャ
ッシュ27からの命令の受信に応答し、シーケンサ装置
17は、命令をプロセッサ10の他の実行回路に選択的
に出力する。
【0012】シーケンサ装置17の他に、プロセッサ1
0の実行回路は6個の実行装置を含む。即ち分岐装置1
1、固定小数点演算装置A(FXUA)12、固定小数
点演算装置B(FXUB)13、複合固定小数点演算装
置(CFXU)14、ロード・ストア装置(LSU)1
5、及び浮動小数点演算装置(FPU)16である。F
XUA12、FXUB13、CFXU14、及びLSU
15は、汎用レジスタ(GPR)22、及び固定小数点
リネーム・バッファ23からそれぞれのソース・オペラ
ンドを受け取る。更にFXUA12及びFSUB13、
CFXU14、ならびにLSU15は、演算の結果(宛
先オペランド)を固定小数点リネーム・バッファ23内
の選択されたエントリに保管するために出力する。また
CFXU14は、特殊目的レジスタ(SPR)24との
間でソース・オペランド、及び宛先オペランドを入出力
する。FPU16は、そのソース・オペランドを浮動小
数点レジスタ(FPR)25、及び浮動小数点リネーム
・バッファ26から入力する。FPU16は、演算の出
力結果(宛先オペランド)を浮動小数点リネーム・バッ
ファ26内の選択されたエントリに保管する。
【0013】LSU15はロード命令に応答し、データ
・キャッシュ28からデータを取り出し、このデータを
固定小数点リネーム・バッファ23、及び浮動小数点リ
ネーム・バッファ26のいずれかの選択されたものにコ
ピーする。要求されたデータがデータ・キャッシュ28
内に存在しない場合、データ・キャッシュ28は、シス
テム・バス21に接続されたシステム・メモリ20か
ら、BIU18及びシステム・バス21を介して要求さ
れたデータを取り出す。更にデータ・キャッシュ28
は、BIU18及びシステム・バス21を介して、デー
タをシステム・メモリ20に書き込むことができる。例
示する実施例では、データ・キャッシュ28は、1サイ
クル内にダブルワード(8バイト)のデータをLSU1
5に供給できる。LSU15はストア命令に応答し、G
PR22及びFPR25のいずれかの選択されたものか
ら、データ・キャッシュ28内の指定された位置にデー
タをコピーする。以下に更に詳しく説明するように、L
SU15はデータ・キャッシュ28、またはシステム・
メモリ20とGPR22との間でデータ・ブロックを転
送する、複数レジスタ命令もサポートする。
【0014】シーケンサ装置17は、GPR22及びF
PR25にデータを保管し、またそこからデータを取り
出す。分岐装置11は分岐命令、及びプロセッサ10の
現在の状態を示す信号を、シーケンサ装置17から受け
取る。分岐装置11はこれらの分岐命令及び信号に応答
し、プロセッサ10が実行する一連の命令を保管するた
めの適切なメモリ・アドレスを示す信号を、シーケンサ
装置17に出力する。分岐装置11からこれらの信号を
受信すると、シーケンサ装置17は、示された一連の命
令を命令キャッシュ27から取り出す。一連の命令の中
の1つ、または複数の命令が命令キャッシュ27に保管
されていない場合、命令キャッシュ27は、BIU18
及びシステム・バス21を介して、システム・メモリ2
0からこれらの命令をフェッチする。
【0015】シーケンサ装置17は、実行装置11、1
2、13、14、15、及び16の選択されたものに、
命令キャッシュ27からフェッチされた命令を選択的に
ディスパッチする。各実行装置は、特定のクラスの命令
の1つまたは複数の命令を実行する。例えばFXUA1
2及びFXUB13は、固定小数点算術演算の第1のク
ラスの演算を、ソース・オペランドに対して実行する。
即ち、加算、減算、論理積、論理和、及び排他的論理和
などの演算を実行する。CFXU14は、固定小数点演
算の第2のクラスの演算を、ソース・オペランドに対し
て実行する。即ち、固定小数点乗算及び除算を実行す
る。FPU16は、浮動小数点乗算及び除算などの浮動
小数点演算を、ソース・オペランドに対して実行する。
【0016】固定小数点リネーム・バッファ23の選択
された1つに、データが保管されると、この選択された
固定小数点リネーム・バッファが割り当てられている命
令が指定した保管位置(例えばGPR22の1つなど)
に、そのデータが関連付けられる。固定小数点リネーム
・バッファ23の選択された1つに保管されたデータ
は、この後シーケンサ装置17からの信号に応答し、そ
れが関連付けられているGPR22にコピーされる。シ
ーケンサ装置17は、データを生成した命令の「完了」
に応答し、固定小数点リネーム・バッファ23の選択さ
れた1つに保管された各データのコピー作業を指示す
る。このコピー作業は「書き戻し」と呼ばれているが、
同じような名前の付いたキャッシュ動作と混同してはな
らない。例示する実施例では、1クロック・サイクル当
たり2つのGPR22にデータを書き戻しできる。
【0017】同様に、浮動小数点リネーム・バッファ2
6の選択された1つにデータが保管されたとき、そのデ
ータはFPR25の1つに関連付けられる。浮動小数点
リネーム・バッファ26の選択された1つに保管された
データは、この後シーケンサ装置17からの信号に応答
し、FPR25の関連付けられた1つにコピーされる。
シーケンサ装置17は、データを生成した命令の完了に
応答し、浮動小数点リネーム・バッファ26の選択され
た1つに保管されたデータのコピー作業を指示する。
【0018】プロセッサ10は、パイプライニングと呼
ばれる技術を使用して、各種の実行装置11、12、1
3、14、15、及び16で複数の命令を同時に処理す
ることにより、高い性能を達成する。したがって各命令
は一連のステージとして処理され、各ステージは他の命
令のステージと並行して実行可能である。例示する実施
例の重要な特徴では、命令は通常6つのステージとして
処理される。即ち、フェッチ、デコード、ディスパッ
チ、実行、完了、及び書き戻しの6ステージである。
【0019】フェッチ・ステージでは、シーケンサ装置
17は、命令キャッシュ27内の1つまたは複数のメモ
リ・アドレスから、一連の命令を選択的にフェッチす
る。この一連の命令については、分岐装置11とシーケ
ンサ装置17に関連して上記で説明している。最大4個
のフェッチされた命令が、次にデコード・ステージ中に
シーケンサ装置17によりデコードされる。
【0020】ディスパッチ・ステージでは、シーケンサ
装置17は、リネーム・バッファ・エントリをディスパ
ッチされた命令の結果(宛先オペランド)用に予約した
後、最大4個のデコードされた命令を、実行装置11、
12、13、14、15、及び16の中から、デコード
・ステージでのデコーディングに対応して選択されたも
のに選択的にディスパッチする。ディスパッチ・ステー
ジでは、ディスパッチされた命令用に選択された実行装
置にオペランドが供給される。プロセッサ10は、命令
をプログラム順にディスパッチする。
【0021】実行ステージでは、実行装置11〜16が
それぞれのディスパッチされた命令を実行し、上記の説
明のように、それぞれの演算の結果(宛先オペランド)
を、固定小数点リネーム・バッファ23、及び浮動小数
点リネーム・バッファ26のいずれかの選択されたエン
トリに保管するために、出力する。この方法によって、
プロセッサ10は、プログラム順に対してそれとは異な
った順番で命令を実行できる。
【0022】完了ステージでは、シーケンサ装置17が
命令が完了したことを示す。プロセッサ10は命令をプ
ログラム順に完了する。書き戻しステージでは、シーケ
ンサ装置17が選択された固定小数点リネーム・バッフ
ァ23、及び浮動小数点リネーム・バッファ26から、
GPR22及びFPR25それぞれにデータをコピーす
るように指示する。同様に、特定の命令の書き戻しステ
ージでは、プロセッサ10が特定の命令に従い、その構
成された状態を更新する。プロセッサ10は、命令の個
々の書き戻しステージをプログラム順に処理する。プロ
セッサ10は所定の状況において、命令の完了ステージ
及び書き戻しステージを都合よく結合する。
【0023】例示する実施例では、各命令は、命令処理
の各ステージの完了に1マシン・サイクルが必要であ
る。しかし命令の中には、例えば複合固定小数点命令の
ように、2サイクル以上必要なものがある。したがっ
て、特定の命令の実行ステージと完了ステージとの間
に、その命令の前の命令の完了に要する時間の変動に応
じて、変動した遅延が発生する場合がある。
【0024】次に図2を参照すると、プロセッサ10内
のLSU15の更に詳細なブロック図が示されている。
図に示すように、LSU15の主要な構成要素は、予約
ステーション40、EA計算装置42、位置合わせ装置
44及び46、ロード待ち行列48、終了ストア待ち行
列50及び完了ストア待ち行列52で構成されるストア
待ち行列、ならびに浮動小数点(FP)変換装置54及
び56を含む。これらはすべて制御論理回路60の制御
により動作する。シーケンサ装置17からの命令の受信
に応答し、LSU15は、命令オペランドがすべて有効
になるまで、その命令を予約ステーション40内に一時
的に保管する。予約ステーション40内に保管された命
令の命令オペランドがすべて有効になると、LSU15
は、有効アドレス(EA)計算ステージで命令を実行す
る。これは、2パイプライン・ステージの第1のステー
ジである。第1のパイプライン・ステージで、EA計算
装置42は、命令のオペランドから命令のEAを計算す
る。更にEAはMMU/キャッシュ・インタフェース6
2に渡され、このインタフェースが、EAをシステム・
メモリ20内の物理アドレスに変換し、EAの例外をチ
ェックする。
【0025】第1のパイプライン・ステージでの処理に
続いて、制御論理回路60は、命令がストア命令である
かロード命令であるかに従い、命令をそれぞれ終了スト
ア待ち行列50、またはロード待ち行列48のいずれか
に保管させる。ロード待ち行列48は、命令により指定
されたデータ・ワードがすべてGPR22、またはFP
R25にロードされるまで、一時的にロード命令を保管
する。終了ストア待ち行列50は、物理アドレスが計算
されているストア命令の未完了のものを、一時的に保持
するために使用される。終了ストア待ち行列50内のス
トア命令が完了したことを示す信号を、シーケンサ装置
17から受け取ると、これに応じてそのストア命令が、
完了ストア待ち行列52に転送される。その後完了した
ストア命令は、ストア命令により示されたデータ・ワー
ドがGPR22、またはFPR25からデータ・キャッ
シュ28に書き込めるようになるまで、完了ストア待ち
行列52内に保持される。
【0026】図2に示すように、ストア命令の実行に応
答してデータ・キャッシュ28に書き込まれたデータ
は、FP変換装置54またはストア位置合わせ装置44
を介して、選択的に渡される。これらの装置は、制御論
理回路60からの制御信号の受信に応答し、それぞれ選
択的にデータ処理動作を実行する。例えば、倍精度値を
単精度フォーマットで保管するように指定する、「浮動
小数点シングルのストア」命令の受信に応答し、制御論
理回路60は、FP変換装置54に対して、データをデ
ータ・キャッシュ28に転送する前に、倍精度値を正規
化するように信号を出す。下記に説明するように、非位
置合わせアドレスをもつストア・ストリング命令の受信
に応答し、制御論理回路60は、ストア位置合わせ装置
44に対して、宛先オペランドのデータ・バイトを適切
に結合及びシフトするようにさせる。
【0027】同様に、ロード命令の実行に応答してデー
タ・キャッシュ28からロードされたデータ・ワード
は、FP変換装置56またはロード位置合わせ装置46
を介して選択的に渡される。これらの装置は、制御論理
回路60からの制御信号の受信に応答し、それぞれ選択
的にデータ処理動作を実行する。例えば、非位置合わせ
アドレスをもつロード・ストリング命令の受信に応答
し、制御論理回路60は、ロード位置合わせ装置46に
対して、宛先オペランドのデータ・バイトを適切に結合
及びシフトするようにさせる。重要なことは、LSU1
5とデータ・キャッシュ28とをリンクするデータ・バ
ス64が、各サイクル内にダブルワードのデータを転送
できる点である。
【0028】次に図3を参照すると、プロセッサ10が
複数レジスタ命令を実行する方法の、高レベルな論理の
流れ図が示されている。以下の説明から明らかなよう
に、図3に示されたプロセスは、非位置合わせのロード
及びストア・ストリング命令と共に、ダブルワード合わ
せまたはワード合わせのいずれかである、ロード及びス
トア複数命令のいずれにも適用可能である。図に示すよ
うに、プロセスはブロック80で開始され、その後ブロ
ック82に進む。ここで図のように、EA計算装置42
により計算されたEAが8の倍数であるか否か(即ち複
数レジスタ命令のEAがダブルワード合わせであるか否
か)が、制御論理回路60により判定される。複数レジ
スタ命令のEAがダブルワード合わせであるというブロ
ック82の判定に応答し、プロセスはブロック84〜9
0に進む。ここでは、LSU15が複数レジスタ命令に
より指示された演算を実行する。
【0029】次に図4を参照すると、ダブルワード合わ
せのEAをもつ複数レジスタ命令の実行のタイミング図
が示されている。図に示すように、命令は2つのオペラ
ンドをもつロード複数命令である。第1のオペランド
は、転送の第1のデータ・ワードをロードするレジスタ
としてGPR26を指定する。複数レジスタ命令は、構
造的にGPR22の中の最も大きい番号のレジスタから
アクセスすると定義されている利点として、第1のオペ
ランドは、データ・キャッシュ28からGPR22に転
送するデータ・ワードの数も示している(即ち32−2
6=6)。図4に示されたロード複数命令の第2のオペ
ランドは、転送されるデータ・ブロックのベース・アド
レスを指定する。
【0030】次に再び図3に戻り、ブロック84〜90
について図4を参照して説明する。ブロック84でLS
U15は、データの次のダブルワードをデータ・キャッ
シュ28からアクセスする。データ・キャッシュには、
図4に例示するロード複数命令のために、アドレス0x
8に保管されたダブルワードが含まれる。ダブルワード
は次に単一動作で、GPR26及びGPR27に書き込
まれる。例示する実施例では、複数レジスタ命令はプロ
セッサ10内で逐次化され、このためGPR22に関す
る競合がないので、固定小数点リネーム・バッファ23
が事実上迂回される。しかし、すべてのロードされるデ
ータ・ワードが、構造的に固定小数点リネーム・バッフ
ァ23にロードされる必要がある代替実施例でも、はっ
きり分かる余分な遅延なしに、データ・ワードをGPR
22にロードできる。図4に示すように、データ・キャ
ッシュ28内のミスまたは他の待ち時間生成要因がない
場合は、ブロック84でアクセスされたダブルワード
は、単一クロック・サイクルでGPR22内に保管され
る。
【0031】次にプロセスは、ブロック84からブロッ
ク86に進む。ここで、指定されたデータ・ワードがす
べてアクセスされたか否かが判定される。アクセスされ
た場合、プロセスはブロック140に進んで終了する。
しかし、まだアクセスすべきデータ・ワードが残ってい
るというブロック86の判定に応答し、プロセスはブロ
ック86からブロック88に進み、アクセスすべきデー
タのダブルワードが、少なくとも1つ残っているか否か
が判定される。残っている場合、プロセスは先に説明し
たブロック84に戻る。このように図4に示した例で
は、ブロック84、86、及び88は、3個のダブルワ
ードのデータをGPR22にロードするために、連続す
る3クロック・サイクル中に更に2回実行される。再び
ブロック88を参照すると、単一のデータ・ワードのア
クセスだけが残っているという判定に応答し、プロセス
はブロック90に進む。ここで残っている単一のデータ
・ワードのアクセスが実行され、次にプロセスはブロッ
ク140に進んで終了する。
【0032】再びブロック82を参照すると、複数レジ
スタ命令のEAが8の倍数ではない、したがってEAは
ワード合わせまたは非ワード合わせであることを示す判
定に応答し、プロセスはブロック100に進む。ブロッ
ク100では、複数レジスタ命令のEAが4の倍数であ
るか否か(即ち複数レジスタ命令のEAがワード合わせ
であるか否か)が判定される。4の倍数の場合、プロセ
スはブロック100からブロック102に進み、第1の
クロック・サイクルで単一のデータ・ワードがアクセス
される。次にプロセスはブロック88に進み、アクセス
すべきデータのダブルワードが、少なくとも1つ残って
いるか否かが判定される。まだ残っている場合、プロセ
スは先に説明したブロック84に進む。しかし、単一の
データ・ワードのアクセスだけが残っているという判定
に応答し、プロセスはすでに説明したブロック90に進
む。このように今まで説明した実施例に従って、ワード
合わせのダブルワード・アクセスという最悪の場合で
も、一連の単一レジスタ命令を実行する場合と同じか、
またはよりよい性能で、複数レジスタ命令により指定さ
れたアクセスが実行される。
【0033】次に図5を参照すると、説明する実施例に
従ったワード合わせのデータ転送のタイミング図が示さ
れている。図に示すように、例として用いたストア複数
命令は、第1のオペランドがデータ転送の長さを示し、
第2のオペランドがデータ転送のベース・アドレスを示
す。図5及び図3のブロック102に示すように、第1
のワード合わせのデータ・ワードだけが第1のサイクル
でアクセスされる。しかしその後のアクセスでは、これ
らのデータのワードはダブルワード合わせであるので、
データのダブルワードがGPR22からLSU28に転
送できる。
【0034】図3のブロック100に戻ると、複数レジ
スタ命令のEAが4の倍数ではない、したがって複数レ
ジスタ命令は、非位置合わせEAをもつロード・ストリ
ング命令、またはストア・ストリング命令であることを
示す判定に応答し、プロセスはブロック100からブロ
ック110に進む。ブロック110では、命令がロード
・ストリング命令であるか、ストア・ストリング命令で
あるかに従い、データの第1のダブルワードをGPR2
2、またはLSU28のいずれかからアクセスする。プ
ロセスはブロック110からブロック112に進み、ス
トア位置合わせ装置44及びロード位置合わせ装置46
のいずれかの適切なものが、必要なバイトシフト及び結
合を実行して、単一のデータ・ワードを得る。次に単一
のデータ・ワードは、再び命令がロード・ストリング命
令であるかストア・ストリング命令であるかに従い、G
PR22またはLSU28のいずれかに書き込まれる。
このように図6に例示した、非位置合わせの7個のデー
タ・ワード・ストリングをデータ・キャッシュ28から
ロードする、ロード・ストリング命令では、図3のブロ
ック110〜114で、LSU15がアドレス0x0の
ダブルワードをロードし、ロード位置合わせ装置46内
でロードされたダブルワードをバイト・シフトして、ア
ドレス0x3に単一のデータ・ワードを取得し、このよ
うにして取得したデータ・ワードをGPR25に書き込
む。
【0035】再び図3を参照すると、プロセスはブロッ
ク114からブロック116に進み、アクセスすべきデ
ータのダブルワードが少なくとも1つ残っているか否か
が、判定される。残っていない場合、プロセスは下記に
説明するブロック130に進む。しかし、アクセスすべ
きデータのダブルワードが少なくとも1つ残っているこ
とを、ブロック116が判定した場合は、これに応じて
プロセスはブロック118に進み、転送するデータの次
のダブルワードをアクセスする。再び図6を参照する
と、ブロック118に示すステップで、LSU15はア
ドレス0x8のダブルワードをロードする。図3に戻る
と、プロセスはブロック118からブロック120に進
み、位置合わせ装置44及び46のいずれかの適切なも
のが、適切なバイト・シフト及び結合を実行して、デー
タのダブルワードを形成する。このように、図6に示す
例はロード位置合わせ装置46が、アドレス0x7をも
つデータ・バイト(これは、図3のブロック110に示
した以前のアクセスから、ロード位置合わせ装置46に
より保持されている)をデータ・バイト0x8〜0xE
に結合して、データのダブルワードを形成する。次に図
3のブロック122に示すように、ダブルワードが、単
一サイクル内に(他の遅延要因をすべて除いた場合)G
PR26及びGPR27に書き込まれる。プロセスはブ
ロック122から124に進み、データ・ストリングの
終端まで到達したか否かが判定される。終端まで到達し
た場合、プロセスはブロック140に進んで終了する。
しかしデータ・ストリングの終端にまだ到達していない
場合、プロセスはブロック124からブロック116に
戻り、転送すべきデータのダブルワードが少なくとも1
つ残っているか否かが判定される。残っている場合、プ
ロセスは先に説明したブロック118〜124に戻る。
図6に示すように、図3のブロック116〜124は、
追加の2サイクル中にダブルワード0x0F〜0x1
6、及び0x17〜0x1Eを転送するために、更に2
回繰り返される。
【0036】図3のブロック116に戻ると、転送すべ
き単一のデータ・ワードだけが残っているという判定に
応答し、プロセスはブロック116からブロック130
に進む。ブロック130では、転送する最後のデータ・
ワードをアクセスする。次にプロセッサはブロック13
2に進み、位置合わせ装置44及び46のいずれかの適
切なものが、ブロック130で取り出された最後のデー
タ・ワードのバイト・シフト及び結合を実行して、最終
データ・ワードを形成し、ブロック134でこれが書き
込まれる。この後、プロセスはブロック140で終了す
る。
【0037】上記の実施例の説明のように、複数レジス
タ命令を実行するための改善された方法及びシステムが
提供される。説明された方法及びシステムに従い、プロ
セッサは、単一命令を単一プロセッサ・サイクル内で複
数のレジスタに選択的に書き込んだり、複数のレジスタ
から選択的に読み取ったりできる。その結果、メモリと
の間でデータを転送する速度が著しく改善される。特定
の実施例を図示して説明したが、説明した実施例の技術
的思想と範囲から逸脱せずに、形式及び詳細について各
種の変更が可能であることは、当分野に知識をもつ当業
者には明かであろう。
【0038】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0039】(1)プロセッサ内で複数レジスタ命令を
処理する方法であって、前記プロセッサがレジスタのセ
ットを含み、前記セット内の各前記レジスタがデータ・
ワードを保管可能であり、(a)前記レジスタのセット
内の対応する複数のレジスタに書き込まれる複数のデー
タ・ワードを指定する複数レジスタ命令をディスパッチ
するステップと、(b)前記プロセッサの単一サイクル
内で、前記複数のデータ・ワード内の少なくとも2つの
データ・ワードを前記複数のレジスタ内の少なくとも2
つの対応するレジスタに書き込む前記複数レジスタ命令
を、前記複数レジスタ命令のディスパッチに応答して実
行するステップと、を含む方法。 (2)前記プロセッサが自身に関連付けられたメモリを
有し、前記複数レジスタ命令が複数レジスタ・ロード命
令を含み、前記メモリ内の連続する位置から前記少なく
とも2つのデータ・ワードが、前記少なくとも2つの対
応するレジスタに書き込まれる、(1)に記載の方法。 (3)前記複数レジスタ・ロード命令が、前記メモリ内
の複数の連続する位置から前記複数のデータ・ワードを
ロードする複数レジスタ・ロード・ストリング命令を含
み、前記複数の連続する位置の第1の位置が非位置合わ
せアドレスを有する、(2)に記載の方法。 (4)前記複数レジスタ命令を実行する前記ステップ
(b)が、(c)前記プロセッサの第1のサイクル内
に、前記メモリ内の少なくとも2つの連続する位置の内
容を取り出すステップと、(d)前記プロセッサの第2
のサイクル内に、前記メモリの少なくとも2つの上記以
外の連続する位置の内容を取り出すステップと、(e)
前記第1のサイクル内に取り出された前記内容を、前記
第2のサイクル内に取り出された前記内容と結合し、前
記少なくとも2つの対応するレジスタに書き込まれる前
記少なくとも2つのデータ・ワードを形成するステップ
と、を含む(3)に記載の方法。 (5)プロセッサ内で複数レジスタ命令を処理する方法
であって、前記プロセッサが関連するメモリを有し、ま
た前記プロセッサがレジスタのセットを含み、前記セッ
ト内の各前記レジスタがデータ・ワードを保管可能であ
り、(a)前記レジスタのセット内の複数のレジスタか
ら前記メモリ内の対応する複数の位置に書き込まれる複
数のデータ・ワードを指定する、複数レジスタ・ストア
命令をディスパッチするステップと、(b)前記プロセ
ッサの単一サイクル内で、前記複数のレジスタから前記
複数のデータ・ワードの少なくとも2つを前記メモリ内
の少なくとも2つの対応する位置に書き込む前記複数レ
ジスタ・ストア命令を、前記複数レジスタ命令のディス
パッチに応答して実行するステップと、を含む方法。 (6)前記複数レジスタ・ストア命令が、前記メモリ内
の複数の連続する位置に前記複数のデータ・ワードを保
管する複数レジスタ・ストア・ストリング命令を含み、
前記複数の連続する位置の第1の位置が非位置合わせア
ドレスを有する、(5)に記載の方法。 (7)前記複数レジスタ・ストア命令を実行する前記ス
テップ(b)が、(c)前記プロセッサの第1のサイク
ル内に、前記レジスタのセット内の少なくとも2つのレ
ジスタの内容を取り出すステップと、(d)前記プロセ
ッサの第2のサイクル内に、前記レジスタのセット内の
少なくとも2つの上記以外のレジスタの内容を取り出す
ステップと、(e)前記第1のサイクル内に取り出され
た前記内容を、前記第2のサイクル内に取り出された前
記内容と結合し、前記メモリ内の少なくとも2つの対応
する位置に書き込まれる前記少なくとも2つのデータ・
ワードを形成するステップと、を含む(6)に記載の方
法。 (8)(a)それぞれがデータ・ワードを保管可能であ
るレジスタから成るレジスタのセットと、(b)前記レ
ジスタのセット(a)内の対応する複数のレジスタに書
き込まれる複数のデータ・ワードを指定する複数レジス
タ命令の受信に応答し、プロセッサの単一サイクル内
に、前記複数のデータ・ワード内の少なくとも2つのデ
ータ・ワードを前記複数のレジスタ内の少なくとも2つ
の対応するレジスタに書き込む実行回路と、を含むプロ
セッサ。 (9)前記プロセッサが自身に関連付けられたメモリを
有し、前記複数レジスタ命令が複数レジスタ・ロード命
令を含み、前記実行回路(b)が、前記少なくとも2つ
のデータ・ワードを前記メモリ内の連続する位置から取
り出すアクセス回路を含む、(8)に記載のプロセッ
サ。 (10)前記複数レジスタ・ロード命令が、前記複数の
データ・ワードを前記メモリ内の複数の連続する位置か
らロードする複数レジスタ・ロード・ストリング命令を
含み、前記複数の連続する位置の第1の位置が非位置合
わせアドレスを有する、(9)に記載のプロセッサ。 (11)前記アクセス回路が、前記プロセッサの第1の
サイクル内に、前記メモリ内の少なくとも2つの連続す
る位置の内容を取り出し、また前記プロセッサの第2の
サイクル内に前記メモリの少なくとも2つの上記以外の
連続する位置の内容を取り出し、前記実行回路(b)
が、前記第1のサイクル内に取り出された前記内容を前
記第2のサイクル内に取り出された前記内容と結合し、
前記少なくとも2つの対応するレジスタに書き込む前記
少なくとも2つのデータ・ワードを形成する結合回路を
更に含む、(10)に記載のプロセッサ。 (12)自身に関連付けられたメモリを有するプロセッ
サであって、(a)それぞれがデータ・ワードを保管可
能であるレジスタから成るレジスタのセットと、(b)
前記レジスタのセット(a)内の複数のレジスタから前
記メモリ内の対応する複数の位置に書き込まれる複数の
データ・ワードを指定する複数レジスタ命令の受信に応
答し、前記プロセッサの単一サイクル内に、前記複数の
レジスタから前記複数のデータ・ワードの少なくとも2
つを前記メモリ内の少なくとも2つの対応する位置に書
き込む実行回路と、を含むプロセッサ。 (13)前記複数レジスタ・ストア命令が、前記メモリ
内の複数の連続する位置に前記複数のデータ・ワードを
保管する複数レジスタ・ストア・ストリング命令を含
み、前記複数の連続する位置の第1の位置が非位置合わ
せアドレスを有する、(12)に記載のプロセッサ。 (14)前記アクセス回路が、前記プロセッサの第1の
サイクル内に前記レジスタのセット内の少なくとも2つ
のレジスタの内容を取り出し、また前記プロセッサの第
2のサイクル内に前記レジスタのセットの少なくとも2
つの上記以外のレジスタの内容を取り出し、前記プロセ
ッサが、前記第1のサイクル内に取り出された前記内容
を前記第2のサイクル内に取り出された前記内容と結合
し、前記メモリ内の前記少なくとも2つの対応する位置
に書き込まれる前記少なくとも2つのデータ・ワードを
形成する結合回路を更に含む、(13)に記載のプロセ
ッサ。
【図面の簡単な説明】
【図1】本発明の実施例に従った、情報処理のためのプ
ロセッサを示すブロック図である。
【図2】図1に示すプロセッサの、ロード及びストア実
行装置(LSU)を示す詳細なブロック図である。
【図3】本発明の実施例に従った、複数レジスタ命令の
実行の手順を示す流れ図である。
【図4】オペランドがダブルワード合わせである複数レ
ジスタ命令の実行タイミングを示す図である。
【図5】オペランドがワード合わせである複数レジスタ
命令の実行タイミングを示す図である。
【図6】オペランドが非位置合わせである複数レジスタ
命令の実行タイミングを示す図である。
【符号の説明】
10 プロセッサ(図1) 15 ロード・ストア装置(図2) 21 システム・バス(図1) 64 データ・バス(図2) 66 アドレス・バス(図2)
───────────────────────────────────────────────────── フロントページの続き (71)出願人 594083818 モトローラ・インコーポレイテッド アメリカ合衆国60196、イリノイ州シャー ムバーク、イースト・アルゴンクイン・ロ ード1303、サ−ド・フロワー (72)発明者 スームヤ・マリック アメリカ合衆国78759、テキサス州オース チン、パートリッジ・ベンド・ドライブ 13032 (72)発明者 ラジェシュ・ビー・パテル アメリカ合衆国78758、テキサス州オース チン、シルク・オーク・コウブ 9313 (72)発明者 アルバート・ジョン・ローパー アメリカ合衆国78613、テキサス州シーダ ー・パーク、ウォーレン・コウブ 1505 (72)発明者 ロメシュ・エム・ジェサニ アメリカ合衆国78728、テキサス州オース チン、キスマン・ドライブ 3419

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】プロセッサ内で複数レジスタ命令を処理す
    る方法であって、前記プロセッサがレジスタのセットを
    含み、前記セット内の各前記レジスタがデータ・ワード
    を保管可能であり、(a)前記レジスタのセット内の対
    応する複数のレジスタに書き込まれる複数のデータ・ワ
    ードを指定する複数レジスタ命令をディスパッチするス
    テップと、(b)前記プロセッサの単一サイクル内で、
    前記複数のデータ・ワード内の少なくとも2つのデータ
    ・ワードを前記複数のレジスタ内の少なくとも2つの対
    応するレジスタに書き込む前記複数レジスタ命令を、前
    記複数レジスタ命令のディスパッチに応答して実行する
    ステップと、を含む方法。
  2. 【請求項2】前記プロセッサが自身に関連付けられたメ
    モリを有し、前記複数レジスタ命令が複数レジスタ・ロ
    ード命令を含み、前記メモリ内の連続する位置から前記
    少なくとも2つのデータ・ワードが、前記少なくとも2
    つの対応するレジスタに書き込まれる、請求項1に記載
    の方法。
  3. 【請求項3】前記複数レジスタ・ロード命令が、前記メ
    モリ内の複数の連続する位置から前記複数のデータ・ワ
    ードをロードする複数レジスタ・ロード・ストリング命
    令を含み、前記複数の連続する位置の第1の位置が非位
    置合わせアドレスを有する、請求項2に記載の方法。
  4. 【請求項4】前記複数レジスタ命令を実行する前記ステ
    ップ(b)が、(c)前記プロセッサの第1のサイクル
    内に、前記メモリ内の少なくとも2つの連続する位置の
    内容を取り出すステップと、(d)前記プロセッサの第
    2のサイクル内に、前記メモリの少なくとも2つの上記
    以外の連続する位置の内容を取り出すステップと、
    (e)前記第1のサイクル内に取り出された前記内容
    を、前記第2のサイクル内に取り出された前記内容と結
    合し、前記少なくとも2つの対応するレジスタに書き込
    まれる前記少なくとも2つのデータ・ワードを形成する
    ステップと、を含む請求項3に記載の方法。
  5. 【請求項5】プロセッサ内で複数レジスタ命令を処理す
    る方法であって、前記プロセッサが関連するメモリを有
    し、また前記プロセッサがレジスタのセットを含み、前
    記セット内の各前記レジスタがデータ・ワードを保管可
    能であり、(a)前記レジスタのセット内の複数のレジ
    スタから前記メモリ内の対応する複数の位置に書き込ま
    れる複数のデータ・ワードを指定する、複数レジスタ・
    ストア命令をディスパッチするステップと、(b)前記
    プロセッサの単一サイクル内で、前記複数のレジスタか
    ら前記複数のデータ・ワードの少なくとも2つを前記メ
    モリ内の少なくとも2つの対応する位置に書き込む前記
    複数レジスタ・ストア命令を、前記複数レジスタ命令の
    ディスパッチに応答して実行するステップと、を含む方
    法。
  6. 【請求項6】前記複数レジスタ・ストア命令が、前記メ
    モリ内の複数の連続する位置に前記複数のデータ・ワー
    ドを保管する複数レジスタ・ストア・ストリング命令を
    含み、前記複数の連続する位置の第1の位置が非位置合
    わせアドレスを有する、請求項5に記載の方法。
  7. 【請求項7】前記複数レジスタ・ストア命令を実行する
    前記ステップ(b)が、(c)前記プロセッサの第1の
    サイクル内に、前記レジスタのセット内の少なくとも2
    つのレジスタの内容を取り出すステップと、(d)前記
    プロセッサの第2のサイクル内に、前記レジスタのセッ
    ト内の少なくとも2つの上記以外のレジスタの内容を取
    り出すステップと、(e)前記第1のサイクル内に取り
    出された前記内容を、前記第2のサイクル内に取り出さ
    れた前記内容と結合し、前記メモリ内の少なくとも2つ
    の対応する位置に書き込まれる前記少なくとも2つのデ
    ータ・ワードを形成するステップと、を含む請求項6に
    記載の方法。
  8. 【請求項8】(a)それぞれがデータ・ワードを保管可
    能であるレジスタから成るレジスタのセットと、(b)
    前記レジスタのセット(a)内の対応する複数のレジス
    タに書き込まれる複数のデータ・ワードを指定する複数
    レジスタ命令の受信に応答し、プロセッサの単一サイク
    ル内に、前記複数のデータ・ワード内の少なくとも2つ
    のデータ・ワードを前記複数のレジスタ内の少なくとも
    2つの対応するレジスタに書き込む実行回路と、を含む
    プロセッサ。
  9. 【請求項9】前記プロセッサが自身に関連付けられたメ
    モリを有し、前記複数レジスタ命令が複数レジスタ・ロ
    ード命令を含み、前記実行回路(b)が、前記少なくと
    も2つのデータ・ワードを前記メモリ内の連続する位置
    から取り出すアクセス回路を含む、請求項8に記載のプ
    ロセッサ。
  10. 【請求項10】前記複数レジスタ・ロード命令が、前記
    複数のデータ・ワードを前記メモリ内の複数の連続する
    位置からロードする複数レジスタ・ロード・ストリング
    命令を含み、前記複数の連続する位置の第1の位置が非
    位置合わせアドレスを有する、請求項9に記載のプロセ
    ッサ。
  11. 【請求項11】前記アクセス回路が、前記プロセッサの
    第1のサイクル内に、前記メモリ内の少なくとも2つの
    連続する位置の内容を取り出し、また前記プロセッサの
    第2のサイクル内に前記メモリの少なくとも2つの上記
    以外の連続する位置の内容を取り出し、前記実行回路
    (b)が、前記第1のサイクル内に取り出された前記内
    容を前記第2のサイクル内に取り出された前記内容と結
    合し、前記少なくとも2つの対応するレジスタに書き込
    む前記少なくとも2つのデータ・ワードを形成する結合
    回路を更に含む、請求項10に記載のプロセッサ。
  12. 【請求項12】自身に関連付けられたメモリを有するプ
    ロセッサであって、(a)それぞれがデータ・ワードを
    保管可能であるレジスタから成るレジスタのセットと、
    (b)前記レジスタのセット(a)内の複数のレジスタ
    から前記メモリ内の対応する複数の位置に書き込まれる
    複数のデータ・ワードを指定する複数レジスタ命令の受
    信に応答し、前記プロセッサの単一サイクル内に、前記
    複数のレジスタから前記複数のデータ・ワードの少なく
    とも2つを前記メモリ内の少なくとも2つの対応する位
    置に書き込む実行回路と、を含むプロセッサ。
  13. 【請求項13】前記複数レジスタ・ストア命令が、前記
    メモリ内の複数の連続する位置に前記複数のデータ・ワ
    ードを保管する複数レジスタ・ストア・ストリング命令
    を含み、前記複数の連続する位置の第1の位置が非位置
    合わせアドレスを有する、請求項12に記載のプロセッ
    サ。
  14. 【請求項14】前記アクセス回路が、前記プロセッサの
    第1のサイクル内に前記レジスタのセット内の少なくと
    も2つのレジスタの内容を取り出し、また前記プロセッ
    サの第2のサイクル内に前記レジスタのセットの少なく
    とも2つの上記以外のレジスタの内容を取り出し、前記
    プロセッサが、前記第1のサイクル内に取り出された前
    記内容を前記第2のサイクル内に取り出された前記内容
    と結合し、前記メモリ内の前記少なくとも2つの対応す
    る位置に書き込まれる前記少なくとも2つのデータ・ワ
    ードを形成する結合回路を更に含む、請求項13に記載
    のプロセッサ。
JP9343106A 1996-12-16 1997-12-12 複数レジスタ命令を処理する方法及びプロセッサ Pending JPH10228376A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/768,059 US5913054A (en) 1996-12-16 1996-12-16 Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle
US08/768059 1996-12-16

Publications (1)

Publication Number Publication Date
JPH10228376A true JPH10228376A (ja) 1998-08-25

Family

ID=25081402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9343106A Pending JPH10228376A (ja) 1996-12-16 1997-12-12 複数レジスタ命令を処理する方法及びプロセッサ

Country Status (3)

Country Link
US (1) US5913054A (ja)
JP (1) JPH10228376A (ja)
GB (1) GB2321984A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100322149B1 (ko) * 1998-02-17 2002-02-04 포만 제프리 엘 고성능 추론적 스트링/다중 연산 방법
JP2005338942A (ja) * 2004-05-24 2005-12-08 Freescale Semiconductor Inc レジスタユニット
EP2284691A2 (en) 2009-08-04 2011-02-16 Fujitsu Limited Computing device, information processing apparatus, and method of controlling computing device
US9786338B2 (en) 2013-06-28 2017-10-10 Intel Corporation Multiple register memory access instructions, processors, methods, and systems

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2211515C (en) * 1997-07-25 2001-12-11 Kevin Alexander Stoodley System and method of local data alignment for stack memory
US6260137B1 (en) * 1997-09-12 2001-07-10 Siemens Aktiengesellschaft Data processing unit with digital signal processing capabilities
US7529907B2 (en) 1998-12-16 2009-05-05 Mips Technologies, Inc. Method and apparatus for improved computer load and store operations
US7237093B1 (en) 1998-12-16 2007-06-26 Mips Technologies, Inc. Instruction fetching system in a multithreaded processor utilizing cache miss predictions to fetch instructions from multiple hardware streams
US7257814B1 (en) * 1998-12-16 2007-08-14 Mips Technologies, Inc. Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
US7020879B1 (en) * 1998-12-16 2006-03-28 Mips Technologies, Inc. Interrupt and exception handling for multi-streaming digital processors
US6389449B1 (en) * 1998-12-16 2002-05-14 Clearwater Networks, Inc. Interstream control and communications for multi-streaming digital processors
US6408380B1 (en) * 1999-05-21 2002-06-18 Institute For The Development Of Emerging Architectures, L.L.C. Execution of an instruction to load two independently selected registers in a single cycle
CA2406679A1 (en) * 2000-01-18 2001-07-26 Mips Technologies, Inc. Method and apparatus for improved computer load and store operations
US6791564B1 (en) 2000-05-05 2004-09-14 Ipfirst, Llc Mechanism for clipping RGB value during integer transfer
WO2002006959A1 (en) 2000-07-14 2002-01-24 Clearwater Networks, Inc. Instruction fetch and dispatch in multithreaded system
US6697074B2 (en) * 2000-11-28 2004-02-24 Nintendo Co., Ltd. Graphics system interface
CN1666174B (zh) * 2002-05-24 2010-05-05 Nxp股份有限公司 用于信号处理的处理器
GB2397667A (en) * 2003-01-27 2004-07-28 Imagination Tech Ltd Multiple register load using a very long instruction word
US7302530B2 (en) * 2004-07-22 2007-11-27 International Business Machines Corporation Method of updating cache state information where stores only read the cache state information upon entering the queue
US7783860B2 (en) * 2007-07-31 2010-08-24 International Business Machines Corporation Load misaligned vector with permute and mask insert
WO2019055738A1 (en) * 2017-09-15 2019-03-21 MIPS Tech, LLC MEMORY ACCESS NOT ALIGNED

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2902402B2 (ja) * 1987-09-30 1999-06-07 三菱電機株式会社 データ処理装置
US4814496A (en) * 1988-02-18 1989-03-21 General Electric Company Spiro(bis)indane bis(carboxyphenyl ethers) and derivatives thereof
JPH03186928A (ja) * 1989-12-16 1991-08-14 Mitsubishi Electric Corp データ処理装置
JP2556182B2 (ja) * 1990-08-29 1996-11-20 三菱電機株式会社 デ−タ処理装置
EP0473805A1 (en) * 1990-09-03 1992-03-11 International Business Machines Corporation Computer system with improved performance
US5488729A (en) * 1991-05-15 1996-01-30 Ross Technology, Inc. Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution
US5465373A (en) * 1993-01-08 1995-11-07 International Business Machines Corporation Method and system for single cycle dispatch of multiple instructions in a superscalar processor system
US5416911A (en) * 1993-02-02 1995-05-16 International Business Machines Corporation Performance enhancement for load multiple register instruction
JPH0756815A (ja) * 1993-07-28 1995-03-03 Internatl Business Mach Corp <Ibm> キャッシュ動作方法及びキャッシュ
WO1996008767A2 (en) * 1994-09-16 1996-03-21 Philips Electronics N.V. Microcontroller system with a multiple-register stacking instruction
US5761475A (en) * 1994-12-15 1998-06-02 Sun Microsystems, Inc. Computer processor having a register file with reduced read and/or write port bandwidth
US5680338A (en) * 1995-01-04 1997-10-21 International Business Machines Corporation Method and system for vector processing utilizing selected vector elements
US5699536A (en) * 1995-04-13 1997-12-16 International Business Machines Corporation Computer processing system employing dynamic instruction formatting
US5694565A (en) * 1995-09-11 1997-12-02 International Business Machines Corporation Method and device for early deallocation of resources during load/store multiple operations to allow simultaneous dispatch/execution of subsequent instructions

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100322149B1 (ko) * 1998-02-17 2002-02-04 포만 제프리 엘 고성능 추론적 스트링/다중 연산 방법
JP2005338942A (ja) * 2004-05-24 2005-12-08 Freescale Semiconductor Inc レジスタユニット
EP2284691A2 (en) 2009-08-04 2011-02-16 Fujitsu Limited Computing device, information processing apparatus, and method of controlling computing device
US8438366B2 (en) 2009-08-04 2013-05-07 Fujitsu Limited Allocating rename register from separate register sets for each result data of multiple data processing instruction
US9786338B2 (en) 2013-06-28 2017-10-10 Intel Corporation Multiple register memory access instructions, processors, methods, and systems
KR20180034684A (ko) * 2013-06-28 2018-04-04 인텔 코포레이션 다중 레지스터 메모리 액세스 명령어들, 프로세서들, 방법들 및 시스템들
US10102888B2 (en) 2013-06-28 2018-10-16 Intel Corporation Multiple register memory access instructions, processors, methods, and systems
US10141033B2 (en) 2013-06-28 2018-11-27 Intel Corporation Multiple register memory access instructions, processors, methods, and systems
US10153012B2 (en) 2013-06-28 2018-12-11 Intel Corporation Multiple register memory access instructions, processors, methods, and systems
US10153011B2 (en) 2013-06-28 2018-12-11 Intel Corporation Multiple register memory access instructions, processors, methods, and systems
US10163468B2 (en) 2013-06-28 2018-12-25 Intel Corporation Multiple register memory access instructions, processors, methods, and systems
US10170165B2 (en) 2013-06-28 2019-01-01 Intel Corporation Multiple register memory access instructions, processors, methods, and systems

Also Published As

Publication number Publication date
GB2321984A (en) 1998-08-12
GB9725507D0 (en) 1998-02-04
US5913054A (en) 1999-06-15

Similar Documents

Publication Publication Date Title
US5913054A (en) Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle
JP6456867B2 (ja) 密結合ヘテロジニアスコンピューティングのためのハードウェアプロセッサ及び方法
US9411739B2 (en) System, method and apparatus for improving transactional memory (TM) throughput using TM region indicators
JP2864421B2 (ja) 命令の多機能ユニットへの同時ディスパッチのための方法及び装置
CN112099852A (zh) 可变格式、可变稀疏矩阵乘法指令
JP2616182B2 (ja) データ処理装置
JPH10124391A (ja) マージされたストア・オペレーションによってストア集束を行うためのプロセッサ及び方法
US7464255B1 (en) Using a shuffle unit to implement shift operations in a processor
KR100335745B1 (ko) 고성능의 추론적인 오정렬 로드 연산
US6260134B1 (en) Fixed shift amount variable length instruction stream pre-decoding for start byte determination based on prefix indicating length vector presuming potential start byte
JPH02208729A (ja) マイクロコード式実行装置での並列動作による複数機能装置の制御
JP2003514274A (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
US6247117B1 (en) Apparatus and method for using checking instructions in a floating-point execution unit
CN111767081A (zh) 用于加速存储处理的装置、方法和系统
US6405303B1 (en) Massively parallel decoding and execution of variable-length instructions
JPH10161872A (ja) 命令データを位置合せするための方法および装置
US5802340A (en) Method and system of executing speculative store instructions in a parallel processing computer system
JP3611304B2 (ja) 1サイクルのパイプライン・ストールを生成するパイプライン・プロセッサのシステム及び方法
US6115730A (en) Reloadable floating point unit
US6670895B2 (en) Method and apparatus for swapping the contents of address registers
US5956503A (en) Method and system for front-end and back-end gathering of store instructions within a data-processing system
JP2556182B2 (ja) デ−タ処理装置
JPH03156534A (ja) マイクロプロセッサ
JP2504312B2 (ja) プライオリティエンコ―ダ及びそれを備えたデ―タ処理装置