JPH09305401A - コンピュータ及びコンパイラ - Google Patents

コンピュータ及びコンパイラ

Info

Publication number
JPH09305401A
JPH09305401A JP8117537A JP11753796A JPH09305401A JP H09305401 A JPH09305401 A JP H09305401A JP 8117537 A JP8117537 A JP 8117537A JP 11753796 A JP11753796 A JP 11753796A JP H09305401 A JPH09305401 A JP H09305401A
Authority
JP
Japan
Prior art keywords
instruction
data
information
swap
register
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
JP8117537A
Other languages
English (en)
Inventor
Hirohisa Machida
浩久 町田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP8117537A priority Critical patent/JPH09305401A/ja
Priority to US08/719,545 priority patent/US5812845A/en
Publication of JPH09305401A publication Critical patent/JPH09305401A/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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • 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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】 命令実行部の演算処理時間を長くすることな
く、比較的簡単な回路構成の追加で、2つのデータ格納
部の格納データの交換処理を高速に実行することができ
るパイプライン型のコンピュータを得る。 【解決手段】 排他的論理和ゲート23では、演算結果
レジスタ6に格納されたEステージの通常の演算結果
(ALU演算結果)と、バスレジスタ21に格納されて
いるバスレジスタ21上のデータとの排他的論理和を実
行してEXOR演算結果をセレクタ25に出力する。セ
レクタ25はスワップ命令用レジスタ22に格納される
SWAP指示情報に基づき、EXOR演算結果及び演算
結果レジスタ6に格納されたALU演算結果とのうち、
一方の演算結果を出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は高性能な単一命令
流・パイプライン型のコンピュータに関するものであ
る。
【0002】
【従来の技術】一般的なコンピュータの命令実行過程
は、メモリから命令をフェッチ(読み出す)処理、命令
をデコードする(解釈する)処理、メモリからデータを
フェッチする処理、フェッチしたデータに基づき演算す
る処理及びその結果をメモリに書き戻す処理からなる。
そしてさらに次の命令に対して上記命令実行過程を経る
ことになる。
【0003】このような命令実行過程を有するコンピュ
ータを高速化する方法は、連続する命令の系列を時間軸
上で重ねあわせて処理し、コンピュータの速度を制約す
る構成要素を常に動作状態に保つことである。その実現
方法がパイプライン処理である。
【0004】図12を用いてパイプライン処理を簡単に
説明する。コンピュータの典型的な命令の処理はいくつ
かの段階に分割できるが、図12はMIPS社が開発し
たMIPS_R3000コンピュータ(以下、「R30
00」と呼ぶ、"mips RISC ARCHITECTURE",GERRY KANE
に詳述が記載)での分割の例である。図12の例では次
の5段階(それぞれの段をステージと呼ぶ)に分割され
る。
【0005】 (1)Fステージ:命令のフェッチ (2)Dステージ:命令のデコードとレジスタからのデ
ータのフェッチ (3)Eステージ:演算(ALU) (4)Mステージ:メモリアクセス (5)Wステージ:結果の書き込み 上記の5段階の処理はコンピュータ内の異なる領域(資
源とも呼ぶ)を使用するので、時間軸上で重ねあわせる
ことができる。したがって、1つの命令の完了には5段
階の時間が必要であるにもかかわらず、コンピュータ全
体では1段階の時間が進むごとに、図13に示すよう
に、1命令の処理が完了する。したがって、R3000
は5段階のパイプライン方式のコンピュータと呼ばれ
る。
【0006】図12で示したパイプライン型のコンピュ
ータの動作について簡単に説明する。Fステージではプ
ログラムカウンタ(PC)1の値にしたがって、外部メ
モリEMから命令をフェッチする。プログラムカウンタ
1は1単位のステージの処理が完了するごとにインクリ
メンタ2によって値が一つ増加し、次の命令をフェッチ
する。
【0007】Dステージでは外部メモリEM内にフェッ
チされた命令をデコーダ3でデコードし、処理の内容を
決定して命令を発行する。この命令は処理が完了するご
とに次のステージへ転送され、そのステージに必要な処
理を実行する。この命令の転送は、図12の例では命令
レジスタ7を介して行われる。
【0008】Dステージでは、命令のデコードと同時に
レジスタファイル4から必要となるデータを読みだす。
このときレジスタファイル4から読みだされるデータは
多くても2個である。なぜなら、コンピュータは基本的
には2個のデータを処理して1個の結果を得るように構
成されているからである。このとき、処理される前の2
個のデータをソースデータ、処理された後の1個のデー
タをデスティネーションデータと呼ぶ。命令の種類によ
っては、ソースデータはレジスタファイル4内のデータ
でなく命令で指示される即値である場合もあり、その場
合はデコーダ3でソースデータが指示される。
【0009】Eステージでは読みだされたデータに対し
て、ALU5を利用して、演算処理を実行する。ALU
は命令レジスタ7に示される命令に従って処理が実行さ
れる。Eステージでの処理には、命令によっては外部メ
モリEMから読みだすデータのアドレス(外部メモリE
Mへ書き込むデータのアドレス)を計算する命令もあ
る。このアドレス計算は、ALUで実行するコンピュー
タもあれば、ALU以外に専用の演算器で実行するコン
ピュータもある。R3000では図12のように専用の
加算器9を用いて実行する。この加算器9も命令レジス
タ7に従って処理が決定される。演算結果レジスタ6は
ALU5の演算結果を格納するレジスタであり、加算結
果レジスタ10は加算器9の加算結果格納するレジスタ
である。演算結果レジスタ6はEステージの出力結果と
してMステージに転送される。
【0010】また、命令レジスタ7の格納データの一部
は制御データとしてセレクタ8に与えられ、他の一部は
入力データとしてセレクタ8に与えられる。セレクタ8
はバスBUS1上のデータと、命令レジスタ7内の他の
一部データとを受け、両者のうち、一のデータを加算器
9の一方入力に出力する。
【0011】Mステージでは、外部メモリEMをアクセ
スする命令の場合、加算結果レジスタ10のアドレスデ
ータに従って、外部メモリEMからデータを読みだす
(外部メモリEMへデータを書き込む)処理を実行す
る。外部メモリEMをアクセスする命令以外では、Mス
テージでは特に処理されることはなく、Eステージの処
理結果をWステージに転送するだけである。外部メモリ
EMからデータを読みだす命令の場合は読みだされたデ
ータはセレクタ12で選択されて、Mステージの処理結
果となる。それ以外の命令では演算結果レジスタ6の格
納されたEステージの結果を選択して、Mステージの処
理結果として出力結果レジスタ13に格納する。このセ
レクタ12は命令レジスタ11の格納データに従って動
作する。出力結果レジスタ13で格納されたデータはM
ステージの出力結果として、Wステージに転送される。
Wステージでは結果をレジスタファイル4に書き込む。
通常レジスタファイル4へは1個のデータを書き込む。
【0012】以上のように、従来のパイプライン型コン
ピュータでは、Eステージで2個の入力データを処理し
て、1個の出力データを生成するので、3オペランド
(データと同意)命令体系のコンピュータといわれる。
【0013】次にパイプライン型コンピュータによく利
用されるバイパスという手法について説明する。図14
に示すような命令列を考えてみる。命令CM11はレジ
スタ$1の値とレジスタ$2の値とを加算して、その加
算結果をレジスタ$3に格納することを意味する。命令
CM12はレジスタ$3の値からレジスタ$4の値を減
算して、その減算結果をレジスタ$5に格納することを
意味する。命令CM12で利用する$3の値は命令CM
11の加算結果である。
【0014】この命令列をパイプライン型コンピュータ
で処理すると以下のような問題が発生する。Eステージ
で命令CM12を処理している間、命令CM11はMス
テージで処理されているので命令CM11の結果はまだ
レジスタファイル4に書き込まれていない。したがっ
て、Eステージでデータ処理されている命令CM12が
利用するレジスタ$3のデータは命令CM11の結果に
よって変更されたデータではなく、それ以前のレジスタ
$3の格納データとなってしまい、正確に演算できない
という問題点があった。
【0015】このような問題点を回避するため、パイプ
ライン型コンピュータではバイパスという方法を利用す
る。すなわち、最終のWステージでレジスタファイル4
にデータが書き込まれる以前にそのデータが参照される
場合は、レジスタファイル4から読みだされるデータに
優先してEステージやMステージの結果を利用できるよ
うなバイパス経路を設ける方法である。図12中の破線
矢印がそのバイパス経路である。このように構成するこ
とで、図14で示される命令列は矛盾なく実行されるこ
とになる。
【0016】いま、このようなバイパス経路を有するコ
ンピュータでレジスタファイルの中の2個のデータ、た
とえばレジスタ$1の格納データとレジスタ$2の格納
データとを入れ替えるSWAPという命令がソースコー
ドで与えられた場合に実行することを考えてみる。実現
する方法としてオブジェクトコードの命令の構成は図1
5のようになる。
【0017】図15に示すように、ソースコードSWA
P命令に対し、3つの命令CM21〜CM23からなる
オブジェクトコードが生成される。そして、命令CM2
1で2個のレジスタ$1,$2の格納データうちの一方
のデータを新しい別のレジスタ(図15の例ではレジス
タ$3)に転送し、その後、命令CM22でレジスタ$
2の格納データをレジスタ$1に格納し、最後に命令C
M23でレジスタ$3の格納データをレジスタ$2に移
動することにより、レジスタ$1とレジスタ$2との格
納データの入れ替えは完了する。
【0018】移動に用いられる命令は単純にMOV(移
動)命令をもつ場合もあるが、従来のコンピュータでは
命令数を多くしないほうが効率がよいので、MOV命令
を用意しないで加算命令で代用する。すなわち、図15
の()内に示すように、レジスタ$1のデータをレジス
タ$2に移動したい場合は、レジスタ$1と“0”とを
加算した結果をレジスタ$2に格納するような形式であ
る。この場合、レジスタ$1と即値の零を加算してもよ
いし、レジスタ$0が零の値に固定されているコンピュ
ータが多い(たとえば、前述のR3000)ので、レジ
スタ$1の格納データとレジスタ$0格納データとを加
算してレジスタ$2に格納するようにしてもよい。この
ように従来のコンピュータではレジスタのデータを入れ
替えるためのオブジェクトコードとして3個の命令を処
理する必要があった。
【0019】このSWAP動作を最も高速、すなわち1
個の命令で実行できるコンピュータを考えてみる。1個
の命令でSWAPを実行するためには、図16に示すよ
うに、EステージにおけるALU5′の出力ポートが2
個必要になる。ALU5′の2つの出力ポートに対応し
て、Eステージには2つの演算結果レジスタ15,16
が設けられ、Mステージには2つの出力結果レジスタ1
7,18が設けられる。図16では簡単のため、説明に
必要な部分しか記述していない。特に外部メモリEMを
アクセスする部分に関して省略されているが、記述され
ていなくても図12に存在するコンピュータの構成部は
存在する。
【0020】EステージでALU5′は2個の入力デー
タを処理して、2個の出力データを生成するので、4オ
ペランド命令体系のコンピュータ構成となる。このよう
に、1命令のオブジェクトコードでSWAP命令を実行
するためには特別な機能が必要になり、ALU5′は従
来のコンピュータのALUと違った構成となる。またA
LU5′の機能が多くなるのでハードウェア量も多く複
雑になり、処理が高速にできなくなる等の問題がある。
通常パイプライン型コンピュータでは、ALU5′が最
も遅い回路、すなわち、サイクル時間を決める要素とな
るので、むやみにALU5′の回路構成を多くして処理
時間を大きくした場合の損失は無視できない。
【0021】また4オペランド命令体系のコンピュータ
の場合、レジスタファイル4へ書き込むデータが2個あ
るので、レジスタファイル4に2個の書き込みポートを
もつ必要があり、バイパスの経路も2種類存在する必要
が生じるため、ハードウェア量が従来の2倍になり非常
に複雑な構成となる。コンピュータが処理するプログラ
ムの中で、SWAP命令は多くは存在しないため、たま
にしか存在しないSWAP命令を高速に実行するだけの
ために多くのハードウェアを用意し、そのためにALU
5′の処理時間が長くなるのは全く実用的でない。した
がって、このような4オペランド命令体系のコンピュー
タは実際には作られていないのが現状である。
【0022】
【発明が解決しようとする課題】以上説明してきたよう
に、従来の3オペランド命令体系のコンピュータではS
WAP命令を実行するためには、オブジェクトコードと
して3個の命令を実行する必要があった。
【0023】この発明は上記問題点を解決するためにな
されたもので、ALU等の命令実行部の演算処理時間を
長くすることなく、比較的簡単な回路構成の追加で、2
つのデータ格納部の格納データの交換処理を高速に実行
することができるパイプライン型のコンピュータ得るこ
とを目的とする。
【0024】
【課題を解決するための手段】この発明に係る請求項1
記載のコンピュータは、第1及び第2のデータ格納部を
有し、前記第1及び第2のデータ格納部それぞれに格納
された情報の交換を指示するSWAP命令を含む命令を
外部より受け、該命令がSWAP命令の場合に前記第1
及び第2のデータ格納部それぞれの情報の交換処理を実
行し、前記SWAP命令は第1,第2の順で実行される
第1及び第2の部分命令からなり、前記命令を受け、前
記命令が前記SWAP命令の前記第1の部分命令の場
合、第1の排他的論理和演算処理を指示する命令情報及
び第1の部分命令を指示するSWAP指示情報を次段に
出力し、前記第1及び第2のデータ格納部それぞれに格
納された情報である第1及び第2の情報を第1及び第2
のバスに出力し、前記命令が前記SWAP命令の前記第
2の部分命令の場合、第2の排他的論理和演算処理を指
示する命令情報及び第2の部分命令を指示するSWAP
指示情報を次段に出力する命令解読部と、前記命令解読
部の次段に設けられ、前記命令情報及び前記SWAP指
示情報を受け、前記命令情報及び前記SWAP指示情報
をそのまま次段に出力するとともに、前記命令情報が前
記第1の排他的論理和演算処理を指示するとき、前記第
1のバス上のデータをバスデータ格納部に格納するとと
もに、前記第1及び第2のバス上それぞれのデータの排
他的論理和演算を行って得られる命令実行演算結果を次
段及び前記第1のバス上に出力し、前記命令情報が第2
の排他的論理和演算処理を指示するとき前記第1及び第
2のバス上それぞれのデータの排他的論理和演算を行っ
て得られる命令実行演算結果を次段に出力する命令実行
部と、前記命令実行部の次段に設けられ、前記命令情報
及び前記SWAP指示情報を受け、前記SWAP指示情
報が前記第1の部分命令を指示するとき、前記バスデー
タ格納部の格納データと前記命令実行演算結果との排他
的論理和の演算結果を書き込みデータとして前記第1の
データ格納部に格納し、前記命令情報が前記第2の排他
的論理和演算処理を指示し前記SWAP指示情報が前記
第2の部分命令を指示するとき、前記実行命令演算結果
をそのまま書き込みデータとして前記第2のデータ格納
部に出力するデータ書き込み部とを備え、前記第1及び
第2の部分命令に対して、前記命令解読部、前記命令実
行部、前記データ書き込み部の順にパイプライン並列処
理を実行している。
【0025】この発明に係る請求項2記載のコンピュー
タは、第1及び第2のデータ格納部を有し、前記第1及
び第2のデータ格納部それぞれに格納された情報の交換
を指示するSWAP命令を含む命令を外部より受け、該
命令がSWAP命令の場合に前記第1及び第2のデータ
格納部それぞれの情報の交換処理を実行し、前記SWA
P命令は第1,第2の順で実行される第1及び第2の部
分命令からなり、前記命令を受け、前記命令が前記SW
AP命令の前記第1の部分命令の場合、第1の排他的論
理和演算処理を指示する命令情報及び第1の部分命令を
指示するSWAP指示情報を次段に出力し、前記第1及
び第2のデータ格納部それぞれに格納された情報である
第1及び第2の情報を第1及び第2のバスに出力し、前
記命令が前記SWAP命令の前記第2の部分命令の場
合、第2の排他的論理和演算処理を指示する命令情報及
び第2の部分命令を指示するSWAP指示情報と次段に
出力する命令解読部と、前記命令解読部の次段に設けら
れ、前記命令情報及び前記SWAP指示情報を受け、前
記命令情報及び前記SWAP指示情報をそのまま次段に
出力するとともに、前記命令情報が前記第1の排他的論
理和演算処理を指示する、あるいは前記SWAP指示情
報が第1の部分命令を指示するとき、前記第2のバス上
のデータをバスデータ格納部に格納するとともに、前記
第1及び第2のバス上それぞれのデータの排他的論理和
演算を行って得られる命令実行演算結果を前記第1のバ
ス上に出力し、前記命令情報が第2の排他的論理和演算
処理を指示するとき前記第1及び第2のバス上それぞれ
のデータの排他的論理和演算を行って得られる命令実行
演算結果を次段に出力する命令実行部と、前記命令実行
部の次段に設けられ、前記命令情報及び前記SWAP指
示情報を受け、前記SWAP指示情報が前記第1の排他
的論理和演算処理を指示するとき、前記バスデータ格納
部の格納データをそのまま書き込みデータとして前記第
1のデータ格納部に格納し、前記命令情報が前記第2の
排他的論理和演算処理を指示し前記SWAP指示情報が
前記第2の部分命令を指示するとき、前記実行命令演算
結果をそのまま書き込みデータとして前記第2のデータ
格納部に出力するデータ書き込み部とを備え、前記第1
及び第2の部分命令に対して、前記命令解読部、前記命
令実行部、前記データ書き込み部の順にパイプライン並
列処理を実行している。
【0026】また、請求項3記載のコンピュータのよう
に、前記命令実行部は、前記命令情報が第2の排他的論
理和演算処理を指示するとき、前記第2のバス上のデー
タを前記バスデータ格納部に格納するようにしてもよ
い。
【0027】また、請求項4記載のコンピュータのよう
に、前記命令実行部は、加算器と加算結果格納部を有す
る加算部と、前記SWAP指示情報が第1の部分命令を
指示するとき前記第2のバス上のデータを前記加算結果
格納部に格納し、指示しないとき前記加算器の加算結果
を前記加算結果格納部に格納する選択手段とを含み、前
記加算結果格納部は前記データ格納部として規定され、
前記データ書き込み部は、前記SWAP指示情報が前記
第1の部分命令を指示するとき、前記加算結果格納部か
ら前記第2のバス上のデータを取り込むようにしてもよ
い。
【0028】また、請求項5記載のコンピュータのよう
に、前記命令実行部は加算結果格納部を有する加算部を
含み、前記SWAP指示情報が第1の部分命令を指示す
るとき、“0”と前記第2のバス上のデータとの加算を
前記加算部に実行させ、その加算結果を前記加算結果格
納部に格納し、前記加算結果格納部は前記データ格納部
として規定され、前記データ書き込み部は、前記SWA
P指示情報が前記第1の部分命令を指示するとき、前記
加算結果格納部から前記第2のバス上のデータを取り込
むようにしてもよい。
【0029】また、請求項6記載のコンピュータのよう
に、前記第1及び第2のデータ格納部は第1及び第2の
レジスタを含んでもよい。
【0030】また、請求項7記載のコンピュータのよう
に、前記第1及び第2のデータ格納部は外部メモリにお
ける第1及び第2の格納領域を含んでもよい。
【0031】この発明に係る請求項8記載のコンピュー
タは、連続して実行される演算実行処理とデータ書き込
み処理とのパイプライン並列実行が可能なコンピュータ
に対応するオブジェクトコードを、第1及び第2のデー
タ格納部それぞれに格納された第1及び第2の情報の内
容交換を指示するSWAP命令を含む命令群からなるソ
ースコードに基づき生成するコンパイラであって、前記
ソースコード中に前記SWAP命令を指示する命令に対
するオブジェクトコードとして、前記演算処理実行時に
前記第1の格納部の第1の情報と前記第2の格納部の第
2の情報それぞれの排他的論理和を行い第1の演算結果
を得ることを指示し、前記データ書き込み処理に前記第
2の情報と同一値をとる同一情報を前記第1の格納部に
書き込むことを指示する第1の部分命令と、前記第1の
部分命令に続いて実行され、前記演算処理実行時に前記
第2の情報と前記第1の演算結果との排他的論理和演算
を行い第2の演算結果を得、前記データ書き込み処理時
に前記第2の演算結果を前記第2の格納部に書き込むこ
とを指示する第2の部分命令とを生成する。
【0032】また、請求項9記載のコンパイラのよう
に、前記同一情報は、前記第1の情報と前記第1の演算
結果との排他的論理和によって得られる演算結果データ
を含んでもよい。
【0033】また、請求項10記載のコンパイラのよう
に、前記同一情報は、前記第2の情報そのものを含んで
もよい。
【0034】
【発明の実施の形態】
<実施の形態1>図1はこの発明の実施の形態1である
パイプライン型のコンピュータの構成を示すブロック図
である。図2は図1で示したコンピュータに与えるオブ
ジェクトコードを生成するコンパイラの構成を示す説明
図である。
【0035】図2に示すように、コンパイラ30はソー
スコードSCを受け、図1で示したコンピュータが実行
可能なオブジェクトコードOCを生成する。この際、ソ
ースコードSC中に2つのデータ格納部の格納データの
交換処理を指示するSWAP命令が含まれている場合、
図3に示すような2つの部分命令CM1,CM2からな
るソースコードSCを生成する。
【0036】そして、図3において、swapex命令
やexor命令は排他的論理和演算の実行を指示する命
令であり、一般的なコンピュータのALU5には必ず装
備されている命令である。swapex命令は本発明で
新しく設定するオブジェクトコードOC用の命令である
が、exor命令と同様ALU5では排他的論理和を実
行する命令である。したがって、swapex命令を付
加することで従来のコンピュータのALU5に新しい機
能を付加する必要はない。
【0037】図1に示すように、Fステージ処理用の構
成部として、プログラムカウンタ1及びインクリメンタ
2が存在する。Fステージでは、プログラムカウンタ1
の値にしたがって、外部メモリEMから命令をフェッチ
して外部メモリEMの所定の領域に格納する。プログラ
ムカウンタ1は1単位のステージの処理が完了するごと
にインクリメンタ2によって値が一つ増加し、次の命令
をフェッチする。
【0038】Dステージ処理用の構成部として、デコー
ダ3及びレジスタファイル4が存在する。Dステージで
はフェッチされた命令をデコーダ3でデコードし、処理
の内容を決定してその命令情報を発行する。この命令情
報は処理が完了するごとに次のステージであるEステー
ジの命令レジスタ7に転送され、Eステージに必要な処
理を実行する。この際、デコーダ3はswapex命令
をデコードした場合、exor命令を指示する命令情報
を命令レジスタ7に与えるとともに、SWAP指示情報
として“1”をEステージのスワップ命令用レジスタ2
0に出力する。なお、デコーダ3はswapex命令以
外の命令をデコードした場合はSWAP指示情報として
“0”をスワップ命令用レジスタ20に出力する。
【0039】また、デコーダ3は、上述した命令のデコ
ードと同時に、レジスタファイル4から必要となるデー
タをバスBUS1,バスBUS2上に読みだす。このと
きレジスタファイル4から読みだされるデータは多くて
も2個である。
【0040】Eステージ処理用の構成部として、ALU
5、演算結果レジスタ6、命令レジスタ7、セレクタ
8、加算器9、加算結果レジスタ10、スワップ命令用
レジスタ20、バスレジスタ21が存在する。
【0041】Eステージでは、バスBUS1,バスBU
S2上に読みだされたデータに対して、ALU5を利用
して演算処理を実行する。ALU5は命令レジスタ7に
格納される命令情報の指示に従って処理が実行される。
Eステージでの処理には、命令によっては外部メモリE
Mから読みだすデータのアドレス(外部メモリEMへ書
き込むデータのアドレス)を計算する命令もある。この
アドレス計算は専用の加算器9を用いて実行する。この
加算器9も命令レジスタ7に格納される命令情報の指示
に従って処理が決定される。演算結果レジスタ6はAL
U5の演算結果を格納するレジスタであり、加算結果レ
ジスタ10は加算器9の加算結果格納するレジスタであ
る。演算結果レジスタ6はEステージのALU演算結果
としてMステージに転送される。
【0042】また、命令レジスタ7の格納データの一部
は制御データとしてセレクタ8に与えられ、他の一部は
入力データとしてセレクタ8に与えられる。セレクタ8
はバスBUS1上のデータと、命令レジスタ7内の他の
一部データとを受け、両者のうち、一のデータを加算器
9の一方入力に出力する。
【0043】スワップ命令用レジスタ20はSWAP指
示情報を格納しており、Eステージに存在する命令がs
wapex命令であるか否かを示すためのレジスタとし
て機能する。すなわち、スワップ命令用レジスタ20内
の格納データが“1”の場合はswapex命令である
ことを示し、“0”の場合はそれ以外の命令であること
を示す。また、バスレジスタ21はALU5に入力され
るバスBUS1のデータをALU5とは独立して記憶す
るレジスタである。図3の命令CM1の場合、レジスタ
$1のデータがバスBUS1上に読み込まれるため、バ
スレジスタ21にはレジスタ$1のデータが記憶される
ことになる。スワップ命令用レジスタ20に格納される
SWAP指示情報はそのままMステージのスワップ命令
用レジスタ22に転送される。
【0044】Mステージの処理用構成部として、命令レ
ジスタ11、セレクタ12、出力結果レジスタ13、ス
ワップ命令用レジスタ22、排他的論理和ゲート23及
びセレクタ25が存在する。
【0045】排他的論理和ゲート23は排他的論理和を
専門的に演算実行する回路である。排他的論理和ゲート
23では、演算結果レジスタ6に格納されたEステージ
の通常の演算結果(ALU演算結果)と、バスレジスタ
21に格納されているバスレジスタ21上のデータとの
排他的論理和を実行してEXOR演算結果をセレクタ2
5に出力する。
【0046】セレクタ25はスワップ命令用レジスタ2
2に格納されるSWAP指示情報に基づき、EXOR演
算結果及び演算結果レジスタ6に格納されたALU演算
結果とのうち、一方の演算結果をセレクタ12に出力す
る。すなわち、スワップ命令用レジスタ22に格納され
るSWAP指示情報が“0”の場合はALU演算結果が
選択され、スワップ命令用レジスタ22に格納されるS
WAP指示情報が“1”の場合はEXOR演算結果が選
択される。
【0047】また、セレクタ12は命令レジスタ11に
格納された命令情報に基づき、セレクタ25の出力デー
タ及び外部メモリEMからの読み出しデータのうち一方
のデータを選択して出力結果レジスタ13に出力する。
すなわち、外部メモリEMからデータを読みだす命令以
外の命令を命令情報が指示する場合は、セレクタ12は
セレクタ25の出力を出力結果レジスタ13に出力す
る。
【0048】出力結果レジスタ13で格納されたデータ
はMステージの出力結果として、Wステージに転送され
る。Wステージでは出力結果レジスタ13に格納された
出力結果をレジスタファイル4に書き込む。通常レジス
タファイル4へは1個のデータを書き込む。
【0049】このような構成において、実施の形態1の
コンピュータで命令CM1及びCM2に関係しない命令
列を処理している場合は、スワップ命令用レジスタ20
及び22は常時“0”であるため、従来のコンピュータ
と等価な動作を行いプログラムを処理する。プログラム
内のソースコードSCでSWAP処理を実行する必要が
発生した場合、コンパイラ30はその命令を図3に示す
ような命令列(CM1,CM2)からなるオブジェクト
コードOCを作成し、オブジェクトコードOCに基づき
コンピュータは処理を実行する。
【0050】以下、実施の形態1のコンピュータによる
命令CM1及び命令CM2の処理動作を特徴部分を中心
に説明する。
【0051】まず、図11のサイクルT3に示すよう
に、命令CM1のswapex命令がEステージで実行
される場合を考える。この場合はswapex命令を実
行中であるから、Eステージのスワップ命令用レジスタ
20にはSWAP指示情報として“1”が格納される。
しかし、Eステージではスワップ命令用レジスタ22の
SWAP指示情報に関与せず演算処理が実行されるた
め、実施の形態1のコンピュータでは従来のコンピュー
タと同様な動作を実行する。
【0052】したがって、ALU5はレジスタ$1に格
納された第1の情報とレジスタ$2に格納された第2の
情報との排他的論理和を実行してALU演算結果を演算
結果レジスタ6に格納する。一方、バスレジスタ21に
はレジスタ$1の第1の情報が記憶され、Eステージの
次のステージであるMステージの排他的論理和ゲート2
3に転送される。また、演算結果レジスタ6に格納され
るALU演算結果はセレクタ25に出力されるととも
に、バイパス経路を介してバスBUS1上に転送され
る。
【0053】ここで、説明の都合上、元々レジスタ$1
に格納されていた第1の情報を「$1」,レジスタ$2
に格納されていた第2の情報を「$2」、Eステージで
の命令CM1のALU演算結果を「$1′」とす簡単に
表記する場合がある。以降の実施の形態についても同様
である。
【0054】サイクルT3の次のサイクルT4で命令C
M2のexor命令がEステージで実行される。この場
合はEステージのスワップ命令用レジスタ20にはSW
AP指示情報として“0”が格納されている。
【0055】この動作と並行して、Mステージでは命令
CM1のswapex命令が実行される。このとき、ス
ワップ命令用レジスタ22のSWAP指示情報として
“1”が格納されている。したって、セレクタ25はバ
スレジスタ21に格納された第1の情報とALU演算結
果である演算結果$1′(第1の情報と第2の情報との
排他的論理和)とのEXOR演算結果($1exor$
1′)を選択し、選択された演算結果($1exor$
1′)はセレクタ12を介して出力結果レジスタ13に
出力される。この出力結果レジスタ13に格納された出
力結果は次のサイクルT5のWステージでレジスタファ
イル4のレジスタ$1に出力される。出力結果の値は図
4の命令CM1に示すように、レジスタ$2に格納され
ていた第2の情報($2)と等しくなる。
【0056】一方、サイクルT4のEステージで実行さ
れる命令CM2は、スワップ命令用レジスタ20のSW
AP指示情報に関係なく従来のコンピュータと等価な動
作を実行する。すなわち命令CM2はexor命令であ
るため、ALU5はバスBUS1上のデータとバスBU
S2上のデータとの排他論理和演算を実行してALU演
算結果を得る。
【0057】この場合、Eステージでは従来のコンピュ
ータ同様バイパス動作が実行される。すなわち、1つ前
のサイクルT3のEステージ(命令CM1)の出力対象
がレジスタ$1であるため、このサイクルT4でのAL
U5はレジスタファイル4のレジスタ$1の値$1を利
用するのでなく、バスBUS1を介して前のサイクルT
3のEステージで出力される$1′を利用する。すなわ
ち$1′が命令CM2の$1として利用される。
【0058】その結果、サイクルT4のEステージでは
$1′($1exor$2)と$2との排他的論理和演
算処理が実行されて、ALU演算結果として演算結果レ
ジスタ6に出力される。この時のALU演算結果は図4
の命令CM2に示すようにレジスタ$1に格納されてい
た第1の情報($1)と等しくなる。
【0059】サイクルT4の次のサイクルT5では命令
CM1のswapex命令がWステージで実行され、出
力結果$2がレジスタファイル4のレジスタ$1に書き
込まれる。また、Mステージでは命令CM2が処理され
るがスワップ命令用レジスタ22のSWAP指示情報は
“0”であるため、前のサイクルT4のEステージで演
算結果レジスタ6に格納されたALU演算結果がそのま
ま出力結果として、セレクタ25,セレクタ12を介し
て出力結果レジスタ13に転送される。この出力結果は
次のWステージでレジスタファイル4のレジスタ$2に
出力すべきデータである。
【0060】さらに、次のサイクルT6では命令CM2
のexor命令がWステージで実行され、出力結果レジ
スタ13に格納された出力結果$1がレジスタファイル
4のレジスタ$2に書き込まれる。
【0061】上述したように、実施の形態1のコンピュ
ータの動作は図4の式に示す演算処理を行ったことにな
る。その結果、命令CM1のswapex命令がWステ
ージで完了する時点ではレジスタ$1にはレジスタ$2
の第2の情報($2)が書き込まれ、命令CM2のex
or命令がWステージで完了する時点ではレジスタ$2
にはレジスタ$1の第1の情報($1)が書き込まれる
ことになる。すなわち、レジスタ$1に格納された第1
の情報($1)とレジスタ$2に格納された第2の情報
($2)との交換処理、すなわちSWAP処理が2命令
からなるオブジェクトコードOCで完了できたことにな
る。
【0062】このように、実施の形態1のコンピュータ
は、従来のコンピュータではオブジェクトコードOCと
して3個の命令が必要であったSWAP動作を2個の命
令で実行できる。したがって、実施の形態1のパイプラ
イン型コンピュータでは従来のパイプライン型コンピュ
ータに比較して高速なSWAP処理が可能となる。さら
にswapex命令を処理するための回路として追加し
た構成部が、3個のレジスタと1つのEXORゲートと
1つのセレクタ程度である。
【0063】特にサイクルの処理時間を決定するALU
5に何等変更を加えなかったため、サイクルあたりの処
理時間を増加させることはない。図16の構成のよう
に、各ステージで複数の出力が存在しないので、バイパ
ス用の回路を付加する必要もなく、ハードウェア量の増
加量は僅かである。
【0064】その結果、実施の形態1のコンピュータ
は、ALUの処理時間を長くすることなく、比較的簡単
な回路構成の追加でSWAP処理を高速に実行すること
ができる。
【0065】<実施の形態2>図5はこの発明の実施の
形態2であるパイプライン型のコンピュータの構成を示
すブロック図である。コンパイラの構成は図2で示した
実施の形態1と同様である。
【0066】図2に示すように、コンパイラ30はソー
スコードSCを受け、図1で示したコンピュータが実行
可能なオブジェクトコードOCを生成する。この際、ソ
ースコードSC中に2つのデータ格納部の格納データの
交換処理を指示するSWAP命令が含まれている場合、
図3に示すような2つの部分命令CM1,CM2からな
るソースコードSCを生成する。したがって、実施の形
態1同様、swapex命令を付加することで従来のコ
ンピュータのALU5に新しい機能を付加する必要はな
い。
【0067】以下、実施の形態1のコンピュータと異な
る点を中心に実施の形態2のコンピュータの構成につい
て説明する。図5に示すように、Fステージ及びDステ
ージの構成部は実施の形態1と同様である。
【0068】Eステージ処理用の構成部として、ALU
5、演算結果レジスタ6、命令レジスタ7、セレクタ
8、加算器9、加算結果レジスタ10、スワップ命令用
レジスタ20、バスレジスタ24が存在する。すなわ
ち、実施の形態1のバスレジスタ21に代わってバスレ
ジスタ24が設けられる。
【0069】バスレジスタ24はALU5に入力される
バスBUS2のデータをALU5とは独立して記憶する
レジスタである。図3の命令CM1の場合、レジスタ$
2のデータがバスBUS2上に読み込まれるため、バス
レジスタ24にはレジスタ$2のデータが記憶されるこ
とになる。Fステージの他の構成については実施の形態
1と同様である。
【0070】Mステージの処理用構成部として、命令レ
ジスタ11、セレクタ12、出力結果レジスタ13、ス
ワップ命令用レジスタ22及びセレクタ26が存在す
る。すなわち、実施の形態1の排他的論理和ゲート23
が除去され、実施の形態1のセレクタ26に代わってセ
レクタ26が設けられる。
【0071】セレクタ26はスワップ命令用レジスタ2
2に格納されるSWAP指示情報に基づき、バスレジス
タ24の格納データ及び演算結果レジスタ6に格納され
たALU演算結果とのうち、一方のデータをセレクタ1
2に出力する。すなわち、スワップ命令用レジスタ22
に格納されるSWAP指示情報が“0”の場合はALU
演算結果が選択され、スワップ命令用レジスタ22に格
納されるSWAP指示情報が“1”の場合はバスレジス
タ24の格納されたバスBUS2の読み出しデータが選
択される。Mステージの他の構成は、実施の形態1と同
様である。
【0072】以下、実施の形態1のコンピュータと異な
る点を中心に実施の形態2のコンピュータの動作につい
て説明する。
【0073】まず、図11のサイクルT3までの動作は
実施の形態1と同様である。ただし、バスレジスタ24
にはレジスタ$2の第2の情報が記憶され、Eステージ
の次のステージであるMステージのセレクタ26に転送
される。
【0074】サイクルT3の次のサイクルT4で命令C
M2のexor命令がEステージで実行される。この場
合はEステージのスワップ命令用レジスタ20にはSW
AP指示情報として“0”が格納されている。
【0075】この動作と並行して、Mステージでは命令
CM1のswapex命令が実行される。このとき、ス
ワップ命令用レジスタ22のSWAP指示情報として
“1”が格納されている。したって、セレクタ26はバ
スレジスタ24に格納されたデータ($2)を選択し、
選択されたデータ($2)はセレクタ12を介して出力
結果レジスタ13に出力される。この出力結果レジスタ
13に格納された出力結果は次のサイクルT5のWステ
ージでレジスタファイル4のレジスタ$1に出力され
る。出力結果の値は図7の命令CM1に示すように、レ
ジスタ$2に格納されていた第2の情報($2)そのも
のである。
【0076】一方、サイクルT4のEステージで実行さ
れる命令CM2は、スワップ命令用レジスタ20のSW
AP指示情報に関係なく従来のコンピュータと等価な動
作を実行する。すなわち命令CM2はexor命令であ
るため、ALU5はバスBUS1上のデータとバスBU
S2上のデータとの排他論理和演算を実行してALU演
算結果を得る。
【0077】この場合、Eステージでは従来のコンピュ
ータ同様バイパス動作が実行される。すなわち、1つ前
のサイクルT3のEステージ(命令CM1)の出力対象
がレジスタ$1であるため、このサイクルT4でのAL
U5はレジスタファイル4のレジスタ$1の値$1を利
用するのでなく、バスBUS1を介して前のサイクルT
3のEステージで出力される$1′を利用する。すなわ
ち$1′が命令CM2の$1として利用される。
【0078】その結果、サイクルT4のEステージでは
$1′($1exor$2)と$2との排他的論理和演
算処理が実行されて、ALU演算結果として演算結果レ
ジスタ6に出力される。この時のALU演算結果は図7
の命令CM2に示すようにレジスタ$1に格納されてい
た第1の情報($1)と等しくなる。
【0079】サイクルT4の次のサイクルT5では命令
CM1のswapex命令がWステージで実行され、出
力結果$2がレジスタファイル4のレジスタ$1に書き
込まれる。また、Mステージでは命令CM2が処理され
るがスワップ命令用レジスタ22のSWAP指示情報は
“0”であるため、前のサイクルT4のEステージで演
算結果レジスタ6に格納されたALU演算結果がそのま
ま出力結果として、セレクタ26,セレクタ12を介し
て出力結果レジスタ13に転送される。この出力結果は
次のWステージでレジスタファイル4のレジスタ$2に
出力すべきデータである。
【0080】さらに、次のサイクルT6では命令CM2
のexor命令がWステージで実行され、出力結果レジ
スタ13に格納された出力結果$1がレジスタファイル
4のレジスタ$2に書き込まれる。
【0081】上述したように、実施の形態2のコンピュ
ータの動作は図7の式に示す演算処理を行ったことにな
る。その結果、命令CM1のswapex命令がWステ
ージで完了する時点ではレジスタ$1にはレジスタ$2
の第2の情報($2)が書き込まれ、命令CM2のex
or命令がWステージで完了する時点ではレジスタ$2
にはレジスタ$1の第1の情報($1)が書き込まれる
ことになる。すなわち、レジスタ$1に格納された第1
の情報($1)とレジスタ$2に格納された第2の情報
($2)との交換処理、すなわちSWAP処理が2命令
からなるオブジェクトコードOCで完了できたことにな
る。
【0082】このように、実施の形態2のコンピュータ
は、実施の形態1同様、1SWAP動作を2個の命令で
実行できるため、従来のパイプライン型コンピュータに
比較して高速なSWAP処理が可能となる。さらにsw
apex命令を処理するための回路として追加した構成
部が、3個のレジスタと1つのセレクタ程度である。
【0083】その結果、実施の形態2のコンピュータ
は、実施の形態1と同様、ALUの処理時間を長くする
ことなく、比較的簡単な回路構成の追加でSWAP処理
を高速に実行することができる。
【0084】さらに、実施の形態2のコンピュータよう
に構成することにより、EXORゲートが必要なくなる
ため、実施の形態1に比較して回路構成がさらに簡単に
なる利点を奏する。
【0085】<実施の形態3>図8はこの発明の実施の
形態3であるパイプライン型のコンピュータの構成を示
すブロック図である。コンパイラの構成及び動作は図2
で示した実施の形態1と同様である。
【0086】以下、実施の形態2のコンピュータと異な
る点を中心に実施の形態3のコンピュータの構成につい
て説明する。図8に示すように、Fステージ及びDステ
ージの構成部は実施の形態2と同様である。
【0087】Eステージ処理用の構成部として、ALU
5、演算結果レジスタ6、命令レジスタ7、セレクタ
8、加算器9、加算結果レジスタ10、スワップ命令用
レジスタ20及びセレクタ27が存在する。すなわち、
実施の形態2のバスレジスタ24を加算結果レジスタ1
0で代用し、その制御用にセレクタ27が設けられる。
【0088】セレクタ27は、加算器9の加算結果及び
バスBUS2上のデータを受け、スワップ命令用レジス
タ20に格納されたSWAP指示情報に基づき、加算器
9の加算結果及びバスBUS2上のデータのうち、一方
のデータを選択して加算結果レジスタ10に出力する。
すなわち、セレクタ27はスワップ命令用レジスタ20
のSWAP指示情報が“1”のときバスBUS2上のデ
ータを加算結果レジスタ10に出力し、SWAP指示情
報が“0”ととき加算器9の加算結果を加算結果レジス
タ10に出力する。Fステージの他の構成については実
施の形態1と同様である。
【0089】Mステージの処理用構成部として、命令レ
ジスタ11、セレクタ12、出力結果レジスタ13、ス
ワップ命令用レジスタ22及びセレクタ28が存在す
る。すなわち、実施の形態2のセレクタ26に代わって
セレクタ28が設けられる。
【0090】セレクタ28はスワップ命令用レジスタ2
2に格納されるSWAP指示情報に基づき、加算結果レ
ジスタ10の格納データ及び演算結果レジスタ6に格納
されたALU演算結果とのうち、一方のデータをセレク
タ12に出力する。すなわち、スワップ命令用レジスタ
22に格納されるSWAP指示情報が“0”の場合はA
LU演算結果が選択され、スワップ命令用レジスタ22
に格納されるSWAP指示情報が“1”の場合は加算結
果レジスタ10の格納されたバスBUS2の読み出しデ
ータが選択される。Mステージの他の構成は、実施の形
態2と同様である。
【0091】以下、実施の形態2のコンピュータと異な
る点を中心に実施の形態3のコンピュータの動作につい
て説明する。
【0092】まず、図11のサイクルT3までの動作は
実施の形態2と同様である。ただし、スワップ命令用レ
ジスタ20に格納されたSWAP指示情報が“1”であ
るため、セレクタ27はバスBUS2上のレジスタ$2
の第2の情報を選択して加算結果レジスタ10に出力す
る。加算結果レジスタ10の格納データは、Eステージ
の次のステージであるMステージのセレクタ26に転送
される。
【0093】サイクルT3の次のサイクルT4で命令C
M2のexor命令がEステージで実行される。この場
合はEステージのスワップ命令用レジスタ20にはSW
AP指示情報として“0”が格納されている。
【0094】この動作と並行して、Mステージでは命令
CM1のswapex命令が実行される。このとき、ス
ワップ命令用レジスタ22のSWAP指示情報として
“1”が格納されている。したって、セレクタ28は加
算結果レジスタ10に格納されたデータ($2)を選択
し、選択されたデータ($2)はセレクタ12を介して
出力結果レジスタ13に出力される。この出力結果レジ
スタ13に格納された出力結果は次のサイクルT5のW
ステージでレジスタファイル4のレジスタ$1に出力さ
れる。出力結果の値は図7の命令CM1に示すように、
レジスタ$2に格納されていた第2の情報($2)その
ものである。サイクルT4における他の動作は実施の形
態2と同様である。
【0095】サイクルT4の次のサイクルT5では命令
CM1のswapex命令がWステージで実行され、出
力結果$2がレジスタファイル4のレジスタ$1に書き
込まれる。また、Mステージでは命令CM2が処理され
るがスワップ命令用レジスタ22のSWAP指示情報は
“0”であるため、前のサイクルT4のEステージで演
算結果レジスタ6に格納されたALU演算結果がそのま
ま出力結果として、セレクタ28,セレクタ12を介し
て出力結果レジスタ13に転送される。この出力結果は
次のWステージでレジスタファイル4のレジスタ$2に
出力すべきデータである。以降の動作は実施の形態2と
同様である。
【0096】上述したように、実施の形態3のコンピュ
ータの動作は、実施の形態2同様、図7の式に示す演算
処理を行ったことになる。その結果、命令CM1のsw
apex命令がWステージで完了する時点ではレジスタ
$1にはレジスタ$2の第2の情報($2)が書き込ま
れ、命令CM2のexor命令がWステージで完了する
時点ではレジスタ$2にはレジスタ$1の第1の情報
($1)が書き込まれることになる。すなわち、レジス
タ$1に格納された第1の情報($1)とレジスタ$2
に格納された第2の情報($2)との交換処理、すなわ
ちSWAP処理が2命令からなるオブジェクトコードO
Cで完了できたことになる。
【0097】このように、実施の形態3のコンピュータ
は、実施の形態1及び実施の形態2同様、1SWAP動
作を2個の命令で実行できるため、従来のパイプライン
型コンピュータに比較して高速なSWAP処理が可能と
なる。さらにswapex命令を処理するための回路と
して追加した構成部が、2個のレジスタと2個のセレク
タ程度である。
【0098】その結果、実施の形態3のコンピュータ
は、実施の形態1及び実施の形態2と同様、ALUの処
理時間を長くすることなく、比較的簡単な回路構成の追
加でSWAP処理を高速に実行することができる。
【0099】さらに、実施の形態3のコンピュータと実
施の形態2のコンピュータとを比較すると、1つのレジ
スタが1つのセレクタに置き代わることになるため、一
般的にセレクタの方がレジスタより回路構成が簡単であ
ることから、実施の形態3は実施の形態2に比較して回
路構成がさらに簡単になる利点を奏する。
【0100】<実施の形態4>図9はこの発明の実施の
形態4であるパイプライン型のコンピュータの構成を示
すブロック図である。コンパイラの構成及び動作は図2
で示した実施の形態1と同様である。
【0101】以下、実施の形態3のコンピュータと異な
る点を中心に実施の形態4のコンピュータの構成につい
て説明する。
【0102】図9に示すように、Eステージ処理用の構
成部として、ALU5、演算結果レジスタ6、命令レジ
スタ7、セレクタ8、加算器9、加算結果レジスタ10
及びスワップ命令用レジスタ20が存在する。すなわ
ち、実施の形態3のセレクタ27を省略した回路構成と
なっている。
【0103】命令レジスタ7に格納される命令情報に
は、一般的に命令の実際の内容を規定する実命令情報R
Iと数値データを規定する数値情報NIとが含まれてお
り、セレクタ8の制御入力には実命令情報RIが与えら
れ、一方入力には数値情報NIが与えられる。そして、
命令レジスタ7の命令情報がexor命令である場合、
exor命令を指示する実命令情報RI及び“0”を指
示する数値情報NIをそれぞれセレクタ8の制御入力及
び他方入力に出力する。
【0104】セレクタ8は実命令情報RIがexor命
令を指示する場合、“0”を指示する数値情報NIを選
択して加算器9に出力する。なお、他の構成は実施の形
態3と同様である。
【0105】以下、実施の形態3のコンピュータと異な
る点を中心に実施の形態4のコンピュータの動作につい
て説明する。
【0106】まず、図11のサイクルT3において、命
令レジスタ7に格納された命令情報の実命令情報RIが
exor命令を指示し、数値情報NIが“0”を指示す
るため、セレクタ8は“0”を加算器9の一方入力に出
力する。このとき、加算器9の他方入力はバスBUS2
上のレジスタ$2の第2の情報($2)であるため、加
算器9の加算結果も$2となり、加算結果レジスタ10
に格納される。他の動作は実施の形態3と同様である。
【0107】上述したように、実施の形態4のコンピュ
ータの動作は、実施の形態2及び実施の形態3同様、図
7の式に示す演算処理を行ったことになる。その結果、
実施の形態1〜実施の形態3同様、レジスタ$1に格納
された第1の情報($1)とレジスタ$2に格納された
第2の情報($2)との交換処理、すなわちSWAP処
理が2命令からなるオブジェクトコードOCで完了でき
たことになる。
【0108】このように、実施の形態4のコンピュータ
は、実施の形態1及び実施の形態3同様、1SWAP動
作を2個の命令で実行できるため、従来のパイプライン
型コンピュータに比較して高速なSWAP処理が可能と
なる。さらにswapex命令を処理するための回路と
して追加した構成部が、2個のレジスタと1個のセレク
タ程度である。
【0109】その結果、実施の形態4のコンピュータ
は、実施の形態1〜実施の形態3と同様、ALUの処理
時間を長くすることなく、比較的簡単な回路構成の追加
でSWAP処理を高速に実行することができる。
【0110】さらに、実施の形態4のコンピュータと実
施の形態3のコンピュータとを比較すると、1つのセレ
クタを省略できる分、実施の形態4は実施の形態3に比
較して回路構成がさらに簡単になる利点を奏する。
【0111】<実施の形態5>図10はこの発明の実施
の形態5であるパイプライン型のコンピュータの構成を
示すブロック図である。同図に示すように、SWAP対
象となるデータ格納部に格納される情報として、外部メ
モリEMにおける2つの格納領域EM1,EM2に格納
された情報となっている。すなわち、レジスタファイル
4内の2つのレジスタに格納された情報に置き換えて外
部メモリEMにおける2つの格納領域EM1,EM2に
格納された情報が採用されている。他の構成は図1で示
した実施の形態1と同様である。
【0112】また、動作もレジスタファイル4の代わり
に外部メモリEMが用いられている以外は実施の形態1
と同様である。
【0113】実施の形態5のコンピュータのように、外
部メモリEMの格納領域に格納された情報の交換処理
も、ALUの処理時間を長くすることなく、比較的簡単
な回路構成の追加で高速に実行することができる。
【0114】なお、実施の形態2〜実施の形態4のコン
ピュータにおいても、実施の形態1に対する実施の形態
5の変更内容と同様な回路変更を行うことにより、外部
メモリEMの格納領域に格納された情報の交換処理を行
うことがができるのは勿論である。
【0115】
【発明の効果】以上説明したように、この発明における
請求項1記載のコンピュータにおいて、SWAP命令の
第1の部分命令に基づく処理(命令情報が第1の排他的
論理和演算を指示し、SWAP指示情報が第1の部分命
令を指示するとき)において、命令実行部は第1及び第
2のバス上の第1及び第2の情報の排他的論理和演算を
行って得られる命令実行演算結果を次段のデータ書き込
み部及び第1のバスに出力し、データ書き込み部はバス
データ格納部に格納された第1の情報と上記命令実行演
算結果との排他的論理和演算の演算結果を書き込みデー
タとして第1の格納部に格納する。
【0116】このとき、第1の情報を$1、第2の情報
を$2とし、排他的論理和演算をexorとすると、第
1の格納部には{$1 exor($1 exor $
2)}=$2が格納されることになる。
【0117】一方、SWAP命令の第2の部分命令に基
づく処理(命令情報が第2の排他的論理和演算を指示
し、SWAP指示情報が第2の部分命令を指示すると
き)において、命令実行部は第1及び第2のバス上のデ
ータの排他的論理和演算を行って得られる命令実行演算
結果を次段のデータ書き込み部に出力し、データ書き込
み部は上記命令実行演算結果をそのまま第2の格納部に
格納する。
【0118】命令実行部が排他的論理和演算を行う際、
第2のバス上のデータは第2の情報であるが、第1のバ
ス上のデータはSWAP命令の第1の部分命令に基づく
命令実行部の演算処理により、第1及び第2の情報の排
他的論理和演算を行って得られた結果、すなわち、($
1 exor $2)に更新されている。
【0119】したがって、SWAP命令の第2の部分命
令に基づく処理で、命令実行部が出力する命令実行演算
結果は、{$2 exor($1 exor $2)}=
$1となり、この$1がデータ書き込み部により第2の
格納部に格納される。
【0120】したがって、請求項1記載のコンピュータ
は、SWAP命令を2個の部分命令で実行できるため、
高速なSWAP命令の処理が可能となる。このとき、命
令実行部に要求する演算処理は従来から存在する排他的
論理和演算処理であるため、命令実行部のALU等が実
行する演算処理時間が長くなることも回路構成が複雑化
することもない。
【0121】その結果、請求項1記載のコンピュータ
は、命令実行部の演算処理時間を長くすることなく、比
較的簡単な回路構成の追加でSWAP処理を高速に実行
することができる。
【0122】この発明における請求項2記載のコンピュ
ータにおいて、SWAP命令の第1の部分命令に基づく
処理(命令情報が第1の排他的論理和演算を指示し、S
WAP指示情報が第1の部分命令を指示するとき)にお
いて、命令実行部は第1及び第2のバス上の第1及び第
2の情報の排他的論理和演算を行って得られる命令実行
演算結果を第1のバスに出力し、データ書き込み部はバ
スデータ格納部に格納された第2の情報をそのまま書き
込みデータとして第1の格納部に格納する。
【0123】このとき、第1の情報を$1、第2の情報
を$2とし、排他的論理和演算をexorとすると、第
1の格納部には$2が格納されることになる。
【0124】一方、SWAP命令の第2の部分命令に基
づく処理(命令情報が第2の排他的論理和演算を指示
し、SWAP指示情報が第2の部分命令を指示すると
き)において、命令実行部は第1及び第2のバス上のデ
ータの排他的論理和演算を行って得られる命令実行演算
結果を次段のデータ書き込み部に出力し、データ書き込
み部は上記命令実行演算結果をそのまま第2の格納部に
格納する。
【0125】命令実行部が排他的論理和演算を行う際、
第2のバス上のデータは第2の情報であるが、第1のバ
ス上のデータはSWAP命令の第1の部分命令に基づく
命令実行部の演算処理により、第1及び第2の情報の排
他的論理和演算を行って得られた結果、すなわち、($
1 exor $2)に更新されている。
【0126】したがって、SWAP命令の第2の部分命
令に基づく処理で、命令実行部が出力する命令実行演算
結果は、{$2 exor($1 exor $2)}=
$1となり、この$1がデータ書き込み部により第2の
格納部に格納される。
【0127】したがって、請求項2記載のコンピュータ
は、SWAP命令を2個の部分命令で実行できるため、
高速なSWAP命令の処理が可能となる。このとき、命
令実行部に要求する演算処理は従来から存在する排他的
論理和演算処理であるため、命令実行部のALU等が実
行する演算処理時間が長くなることも回路構成が複雑化
することもない。
【0128】その結果、請求項2記載のコンピュータ
は、命令実行部の演算処理時間を長くすることなく、比
較的簡単な回路構成の追加でSWAP処理を高速に実行
することができる。加えて、データ書き込み部は排他的
論理和演算を行う機能を必要はないため、回路構成がさ
らに簡略化される。
【0129】また、請求項3記載のコンピュータは、命
令情報が第2の排他的論理和演算処理を指示するとき、
命令実行部が第2のバス上のデータをバスデータ格納部
に格納するため、命令実行部の演算処理内容に関係なく
バスデータ格納部を追加するだけで第2のバス上のデー
タを保存することができる。
【0130】また、請求項4記載のコンピュータにおい
て、命令実行部は、選択手段により、SWAP指示情報
が第1の部分命令を指示するとき、第2のバス上のデー
タを加算結果格納部に格納し、データ書き込み部は、S
WAP指示情報が第1の部分命令を指示するとき、加算
結果格納部から第2のバス上のデータを取り込むため、
命令実行部に加算部が装備されている場合、加算結果格
納部をデータ格納部と用いるため、新たにデータ格納部
を設けることなく、第2のバス上のデータを保存するこ
とができる。
【0131】また、請求項5記載のコンピュータにおい
て、命令実行部は、SWAP指示情報が第1の部分命令
を指示するとき、“0”と第2のバス上のデータとの加
算を加算部に実行させ、その加算結果を加算結果格納部
に格納し、データ書き込み部は、SWAP指示情報が第
1の部分命令を指示するとき、加算結果格納部から第2
のバス上のデータを取り込むため、命令実行部に加算部
が装備されている場合、加算結果格納部をデータ格納部
と用いるため、データ格納部を新たに設けることなく、
第2のバス上のデータを保存することができる。さら
に、請求項4記載のコンピュータの選択手段に相当する
構成部を設ける必要がない分、回路構成を簡略化するこ
とができる。
【0132】また、請求項6記載のコンピュータの第1
及び第2のデータ格納部は第1及び第2のレジスタを含
むため、第1及び第2のレジスタに格納された情報の交
換処理を行うことができる。
【0133】また、請求項7記載のコンピュータの第1
及び第2のデータ格納部は外部メモリにおける第1及び
第2の格納領域を含むため、外部メモリ上の2つの格納
領域に格納された情報の交換処理を行うことができる。
【0134】この発明における請求項8記載のコンパイ
ラは、ソースコード中にSWAP命令を指示する命令に
対するオブジェクトコードとして、演算処理実行時に第
1の格納部の第1の情報と第2の格納部の第2の情報そ
れぞれの排他的論理和を行い第1の演算結果を得ること
を指示し、データ書き込み処理に第2の情報と同一値を
とる同一情報を第1の格納部に書き込むことを指示する
第1の部分命令と、第1の部分命令に続いて実行され、
演算処理実行時に第2の情報と第1の演算結果との排他
的論理和演算を行い第2の演算結果を得、データ書き込
み処理時に第2の演算結果を第2の格納部に書き込むこ
とを指示する第2の部分命令とを生成する。
【0135】このとき、第1の情報を$1、第2の情報
を$2とし、排他的論理和演算をexorとすると、第
1及び第2の部分命令をパイプライン処理可能なコンピ
ュータに実行させると、第1の格納部には{$1 ex
or($1 exor $2)}=$2が格納され、第2
の格納部には{$1 exor($1 exor $
2)}=$1が格納される。
【0136】その結果、SWAP命令が実行可能な2個
の部分命令を出力可能なコンパイラを得ることができ
る。
【0137】また、請求項9記載のコンパイラにおい
て、第2の情報と同一値をとる同一情報は、第1の情報
と第1の演算結果との排他的論理和によって得られる演
算結果データであり、この演算結果データは、{$1
exor($1 exor $2)}=$2であり、正確
に第2の情報と同一の値をとることができる。
【0138】また、請求項10記載のコンパイラにおい
て、第2の情報と同一値をとる同一情報は、第2の情報
そのものを含むため、特別な演算処理を経ることなく、
正確に第2の情報と同一の値をとることができる。
【図面の簡単な説明】
【図1】 この発明の実施の形態1であるコンピュータ
の構成を示すブロック図である。
【図2】 実施の形態1のコンパイラの構成を示すブロ
ック図である。
【図3】 実施の形態1のコンパイラの実行後のオブジ
ェクトコードを示す説明図である。
【図4】 実施の形態1のコンピュータの演算内容を示
す説明図である。
【図5】 この発明の実施の形態2であるコンピュータ
の構成を示すブロック図である。
【図6】 実施の形態2のコンパイラの実行後のオブジ
ェクトコードを示す説明図である。
【図7】 実施の形態2のコンピュータの演算内容を示
す説明図である。
【図8】 この発明の実施の形態3であるコンピュータ
の構成を示すブロック図である。
【図9】 この発明の実施の形態4であるコンピュータ
の構成を示すブロック図である。
【図10】 この発明の実施の形態5であるコンピュー
タの構成を示すブロック図である。
【図11】 実施の形態1〜実施の形態5のコンピュー
タの動作説明用の説明図である。
【図12】 従来のコンピュータの構成を示すブロック
図である。
【図13】 パイプライン処理内容を示す説明図であ
る。
【図14】 従来のコンピュータの一演算例を示す説明
図である。
【図15】 従来のコンピュータによるSWAP処理の
演算内容を示す説明図である。
【図16】 従来の4オペランド命令体系のコンピュー
タの構成を示すブロック図である。
【符号の説明】
3 デコーダ、4 レジスタファイル、5 ALU、7
命令レジスタ、8,12,25〜28 セレクタ、2
0,22 スワップ命令用レジスタ、21 バスレジス
タ、23 排他的論理和ゲート、24 バスレジスタ、
30 コンパイラ。

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 第1及び第2のデータ格納部を有し、前
    記第1及び第2のデータ格納部それぞれに格納された情
    報の交換を指示するSWAP命令を含む命令を外部より
    受け、該命令がSWAP命令の場合に前記第1及び第2
    のデータ格納部それぞれの情報の交換処理を実行するコ
    ンピュータであって、 前記SWAP命令は第1,第2の順で実行される第1及
    び第2の部分命令からなり、 前記命令を受け、前記命令が前記SWAP命令の前記第
    1の部分命令の場合、第1の排他的論理和演算処理を指
    示する命令情報及び第1の部分命令を指示するSWAP
    指示情報を次段に出力し、前記第1及び第2のデータ格
    納部それぞれに格納された情報である第1及び第2の情
    報を第1及び第2のバスに出力し、前記命令が前記SW
    AP命令の前記第2の部分命令の場合、第2の排他的論
    理和演算処理を指示する命令情報及び第2の部分命令を
    指示するSWAP指示情報を次段に出力する命令解読部
    と、 前記命令解読部の次段に設けられ、前記命令情報及び前
    記SWAP指示情報を受け、前記命令情報及び前記SW
    AP指示情報をそのまま次段に出力するとともに、前記
    命令情報が前記第1の排他的論理和演算処理を指示する
    とき、前記第1のバス上のデータをバスデータ格納部に
    格納するとともに、前記第1及び第2のバス上それぞれ
    のデータの排他的論理和演算を行って得られる命令実行
    演算結果を次段及び前記第1のバス上に出力し、前記命
    令情報が第2の排他的論理和演算処理を指示するとき前
    記第1及び第2のバス上それぞれのデータの排他的論理
    和演算を行って得られる命令実行演算結果を次段に出力
    する命令実行部と、 前記命令実行部の次段に設けられ、前記命令情報及び前
    記SWAP指示情報を受け、前記SWAP指示情報が前
    記第1の部分命令を指示するとき、前記バスデータ格納
    部の格納データと前記命令実行演算結果との排他的論理
    和の演算結果を書き込みデータとして前記第1のデータ
    格納部に格納し、前記命令情報が前記第2の排他的論理
    和演算処理を指示し前記SWAP指示情報が前記第2の
    部分命令を指示するとき、前記実行命令演算結果をその
    まま書き込みデータとして前記第2のデータ格納部に出
    力するデータ書き込み部とを備え、 前記第1及び第2の部分命令に対して、前記命令解読
    部、前記命令実行部、前記データ書き込み部の順にパイ
    プライン並列処理を実行する、コンピュータ。
  2. 【請求項2】 第1及び第2のデータ格納部を有し、前
    記第1及び第2のデータ格納部それぞれに格納された情
    報の交換を指示するSWAP命令を含む命令を外部より
    受け、該命令がSWAP命令の場合に前記第1及び第2
    のデータ格納部それぞれの情報の交換処理を実行するコ
    ンピュータであって、 前記SWAP命令は第1,第2の順で実行される第1及
    び第2の部分命令からなり、 前記命令を受け、前記命令が前記SWAP命令の前記第
    1の部分命令の場合、第1の排他的論理和演算処理を指
    示する命令情報及び第1の部分命令を指示するSWAP
    指示情報を次段に出力し、前記第1及び第2のデータ格
    納部それぞれに格納された情報である第1及び第2の情
    報を第1及び第2のバスに出力し、前記命令が前記SW
    AP命令の前記第2の部分命令の場合、第2の排他的論
    理和演算処理を指示する命令情報及び第2の部分命令を
    指示するSWAP指示情報と次段に出力する命令解読部
    と、 前記命令解読部の次段に設けられ、前記命令情報及び前
    記SWAP指示情報を受け、前記命令情報及び前記SW
    AP指示情報をそのまま次段に出力するとともに、前記
    命令情報が前記第1の排他的論理和演算処理を指示す
    る、あるいは前記SWAP指示情報が第1の部分命令を
    指示するとき、前記第2のバス上のデータをバスデータ
    格納部に格納するとともに、前記第1及び第2のバス上
    それぞれのデータの排他的論理和演算を行って得られる
    命令実行演算結果を前記第1のバス上に出力し、前記命
    令情報が第2の排他的論理和演算処理を指示するとき前
    記第1及び第2のバス上それぞれのデータの排他的論理
    和演算を行って得られる命令実行演算結果を次段に出力
    する命令実行部と、 前記命令実行部の次段に設けられ、前記命令情報及び前
    記SWAP指示情報を受け、前記SWAP指示情報が前
    記第1の排他的論理和演算処理を指示するとき、前記バ
    スデータ格納部の格納データをそのまま書き込みデータ
    として前記第1のデータ格納部に格納し、前記命令情報
    が前記第2の排他的論理和演算処理を指示し前記SWA
    P指示情報が前記第2の部分命令を指示するとき、前記
    実行命令演算結果をそのまま書き込みデータとして前記
    第2のデータ格納部に出力するデータ書き込み部とを備
    え、 前記第1及び第2の部分命令に対して、前記命令解読
    部、前記命令実行部、前記データ書き込み部の順にパイ
    プライン並列処理を実行する、コンピュータ。
  3. 【請求項3】 前記命令実行部は、前記命令情報が第2
    の排他的論理和演算処理を指示するとき、前記第2のバ
    ス上のデータを前記バスデータ格納部に格納する、請求
    項2記載のコンピュータ。
  4. 【請求項4】 前記命令実行部は、加算器と加算結果格
    納部を有する加算部と、前記SWAP指示情報が第1の
    部分命令を指示するとき前記第2のバス上のデータを前
    記加算結果格納部に格納し、指示しないとき前記加算器
    の加算結果を前記加算結果格納部に格納する選択手段と
    を含み、前記加算結果格納部は前記データ格納部として
    規定され、 前記データ書き込み部は、前記SWAP指示情報が前記
    第1の部分命令を指示するとき、前記加算結果格納部か
    ら前記第2のバス上のデータを取り込む、請求項2記載
    のコンピュータ。
  5. 【請求項5】 前記命令実行部は加算結果格納部を有す
    る加算部を含み、前記SWAP指示情報が第1の部分命
    令を指示するとき、“0”と前記第2のバス上のデータ
    との加算を前記加算部に実行させ、その加算結果を前記
    加算結果格納部に格納し、前記加算結果格納部は前記デ
    ータ格納部として規定され、 前記データ書き込み部は、前記SWAP指示情報が前記
    第1の部分命令を指示するとき、前記加算結果格納部か
    ら前記第2のバス上のデータを取り込む、請求項4記載
    のコンピュータ。
  6. 【請求項6】 前記第1及び第2のデータ格納部は第1
    及び第2のレジスタを含む、請求項1あるいは請求項2
    記載のコンピュータ。
  7. 【請求項7】 前記第1及び第2のデータ格納部は外部
    メモリにおける第1及び第2の格納領域を含む、請求項
    1あるいは請求項2記載のコンピュータ。
  8. 【請求項8】 連続して実行される演算実行処理とデー
    タ書き込み処理とのパイプライン並列実行が可能なコン
    ピュータに対応するオブジェクトコードを、第1及び第
    2のデータ格納部それぞれに格納された第1及び第2の
    情報の内容交換を指示するSWAP命令を含む命令群か
    らなるソースコードに基づき生成するコンパイラであっ
    て、 前記ソースコード中に前記SWAP命令を指示する命令
    に対するオブジェクトコードとして、 前記演算処理実行時に前記第1の格納部の第1の情報と
    前記第2の格納部の第2の情報それぞれの排他的論理和
    を行い第1の演算結果を得ることを指示し、前記データ
    書き込み処理に前記第2の情報と同一値をとる同一情報
    を前記第1の格納部に書き込むことを指示する第1の部
    分命令と、 前記第1の部分命令に続いて実行され、前記演算処理実
    行時に前記第2の情報と前記第1の演算結果との排他的
    論理和演算を行い第2の演算結果を得、前記データ書き
    込み処理時に前記第2の演算結果を前記第2の格納部に
    書き込むことを指示する第2の部分命令とを生成する、
    コンパイラ。
  9. 【請求項9】 前記同一情報は、前記第1の情報と前記
    第1の演算結果との排他的論理和によって得られる演算
    結果データを含む、請求項8記載のコンパイラ。
  10. 【請求項10】 前記同一情報は、前記第2の情報その
    ものを含む、請求項8記載のコンパイラ。
JP8117537A 1996-05-13 1996-05-13 コンピュータ及びコンパイラ Pending JPH09305401A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP8117537A JPH09305401A (ja) 1996-05-13 1996-05-13 コンピュータ及びコンパイラ
US08/719,545 US5812845A (en) 1996-05-13 1996-09-25 Method for generating an object code for a pipeline computer process to reduce swapping instruction set

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8117537A JPH09305401A (ja) 1996-05-13 1996-05-13 コンピュータ及びコンパイラ

Publications (1)

Publication Number Publication Date
JPH09305401A true JPH09305401A (ja) 1997-11-28

Family

ID=14714259

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8117537A Pending JPH09305401A (ja) 1996-05-13 1996-05-13 コンピュータ及びコンパイラ

Country Status (2)

Country Link
US (1) US5812845A (ja)
JP (1) JPH09305401A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0942358A2 (en) * 1998-03-12 1999-09-15 Fujitsu Limited Microprocessor and method for executing high-level instructions

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2831288B1 (fr) * 2001-10-18 2004-12-10 St Microelectronics Sa Microprocesseur disposant d'instructions d'echange de valeurs entre deux registres ou deux emplacements memoire
US6670895B2 (en) * 2002-05-01 2003-12-30 Analog Devices, Inc. Method and apparatus for swapping the contents of address registers
FI118654B (fi) * 2002-11-06 2008-01-31 Nokia Corp Menetelmä ja järjestelmä laskuoperaatioiden suorittamiseksi ja laite
FR2919081B1 (fr) * 2007-07-17 2011-03-25 Univ La Reunion Implementation de calculs pour processeurs

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60181837A (ja) * 1984-02-29 1985-09-17 Fujitsu Ltd エクスキユ−ト命令処理方式
JPH04275628A (ja) * 1991-03-01 1992-10-01 Mitsubishi Electric Corp 演算処理装置
JPH04367936A (ja) * 1991-06-17 1992-12-21 Mitsubishi Electric Corp スーパースカラープロセッサ
US5522052A (en) * 1991-07-04 1996-05-28 Matsushita Electric Industrial Co. Ltd. Pipeline processor for processing instructions having a data dependence relationship
US5416911A (en) * 1993-02-02 1995-05-16 International Business Machines Corporation Performance enhancement for load multiple register instruction
JPH07219769A (ja) * 1994-02-07 1995-08-18 Mitsubishi Electric Corp マイクロプロセッサ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0942358A2 (en) * 1998-03-12 1999-09-15 Fujitsu Limited Microprocessor and method for executing high-level instructions
EP0942358A3 (en) * 1998-03-12 2003-04-02 Fujitsu Limited Microprocessor and method for executing high-level instructions

Also Published As

Publication number Publication date
US5812845A (en) 1998-09-22

Similar Documents

Publication Publication Date Title
US4562538A (en) Microprocessor having decision pointer to process restore position
US5274777A (en) Digital data processor executing a conditional instruction within a single machine cycle
JP3237858B2 (ja) 演算装置
US20210117189A1 (en) Reduced instruction set processor based on memristor
JPH09305401A (ja) コンピュータ及びコンパイラ
US6704858B1 (en) Information processor and method for switching those register files
JP5145659B2 (ja) ベクトルリネーミング方式およびベクトル型計算機
US20110271078A1 (en) Processor structure of integrated circuit
JP3469645B2 (ja) データ駆動型情報処理装置
JP3737573B2 (ja) Vliwプロセッサ
JP5813484B2 (ja) Vliwプロセッサと命令構造と命令実行方法
JPH0222413B2 (ja)
JP2812610B2 (ja) パイプライン制御方式
JPH07110769A (ja) Vliw型計算機
JPH033047A (ja) 演算機能付きメモリ
JP3532026B2 (ja) 演算装置
JPH03245223A (ja) 演算装置
JPH01147723A (ja) 情報処理装置のパイプライン処理方式
JPH0218732B2 (ja)
JPH06332701A (ja) 情報処理装置
JPS6243775A (ja) ベクトル演算装置
Edwards et al. LSI microprogrammable microprocessors
JPH1074190A (ja) 並列プロセッサ
JPH04357526A (ja) 演算処理装置
JPH0546389A (ja) 並列処理装置