JPH07200289A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH07200289A
JPH07200289A JP5352824A JP35282493A JPH07200289A JP H07200289 A JPH07200289 A JP H07200289A JP 5352824 A JP5352824 A JP 5352824A JP 35282493 A JP35282493 A JP 35282493A JP H07200289 A JPH07200289 A JP H07200289A
Authority
JP
Japan
Prior art keywords
instruction
output
decoder
execution circuit
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.)
Withdrawn
Application number
JP5352824A
Other languages
English (en)
Inventor
Shunsuke Kamijo
俊介 上條
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP5352824A priority Critical patent/JPH07200289A/ja
Priority to US08/347,090 priority patent/US5649226A/en
Priority to GB9424058A priority patent/GB2285322B/en
Priority to GB9810670A priority patent/GB2322210B/en
Priority to DE4442687A priority patent/DE4442687C2/de
Publication of JPH07200289A publication Critical patent/JPH07200289A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Abstract

(57)【要約】 【目的】コンパイラを複雑化させることなく処理を高速
化できる情報処理装置を提供する。 【構成】プログラムはメモリ1A、1Bに1ワードずつ
交互に分配されて格納されている。1つの実行回路5に
対し、命令デコーダ4A、4Bの出力を交互に選択させ
て実行させる。実行回路5が命令デコーダ4A(4B)
のデコード結果を保持した後に命令デコーダ4A(4
B)に対し、命令レジスタ3A(3B)の出力をデコー
ドさせ、プログラムカウンタ2A(2B)に対し、出力
を更新させ、命令レジスタ3A(3B)に対し、メモリ
2A(2B)の出力を保持させる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラムメモリを内
蔵した中央演算処理装置(CPU)、プログラムメモリ
を含まないCPUとプログラムメモリとの組み合わせ、
又は、デジタルシグナルプリセッサ(DSP)等の情報
処理装置に関する。
【0002】
【従来の技術】この種の情報処理装置では、処理の高速
化のためにパイプライン処理を行っている。従来のパイ
プライン処理では、1つのデコーダの前段に例えば6段
のレジスタからなる命令キューを接続し、このデコーダ
の後段に同じ段数のキューを接続しており、パイプライ
ンが定常状態になった後では、通常の命令については1
サイクルで1命令を実行できるので、高速処理が可能で
ある。
【0003】しかし、分岐命令、データ転送命令及び可
変長命令などのように処理が通常と異なる命令に対して
は、以下に述べるように処理速度が低下する。 (1)分岐命令の場合には、命令の実行順序が変わるの
で、途中まで処理していた命令を捨てて新たに命令取り
込みから始める必要があり、パイプライン処理の効果が
無くなる。
【0004】そこで、分岐命令に対しては、その分岐先
の命令を分岐命令に後続させてパイプラインに読み込む
という分岐予測を行うものがある。しかし、分岐予測を
行わせるコンパイラが複雑になり、また、条件により分
岐しない場合には分岐先の命令を余分に実行することに
なるので処理速度が低下する。他の方法として、条件分
岐命令の後に条件分岐命令前に実行すべき命令を遅延ス
ロットとして挿入しておき、分岐先決定中に遅延スロッ
トを実行することにより、無駄時間を省くものがある。
しかし、この方法も、遅延スロットを挿入させるコンパ
イラが複雑になり、また、遅延スロットを挿入できない
場合には処理速度が低下する。
【0005】(2)データ転送命令の場合には、実行ア
ドレスの計算やメモリアクセスの時間が必要になる。こ
の問題に対しては、命令語中にデータを配置する即値転
送命令を用いることにより、処理を高速化することがで
きる。しかし、即値転送命令は、即値データの取り込み
を待つ必要があるので、実行が複数サイクルとなり、処
理速度が低下する。
【0006】(3)複数倍長命令の場合には、複数倍長
を1つにしてデコードをやり直す必要があるので、実行
が複数サイクルとなり、処理速度が低下する。
【0007】
【発明が解決しようとする課題】本発明の目的は、上記
問題点に鑑み、コンパイラを複雑化させることなく処理
を高速化できる情報処理装置を提供することにある。
【0008】
【課題を解決するための手段及びその作用】本発明に係
る情報処理装置を、実施例図中の対応する構成要素の符
号を引用して説明する。第1発明では、例えば図1に示
す如く、第iプログラムカウンタ2i(図1ではi=
A、B、以下同様)と、該第iプログラムカウンタ2i
の出力でアドレス指定される第i記憶手段1iと、スト
ローブ信号に応答して該第i記憶手段1iの出力を保持
する第i命令レジスタ3iと、該第i命令レジスタ3i
の出力をデコードする第i命令デコーダ4iと、をi=
1〜nの各々について有し、さらに、選択制御信号に応
じて該第1〜n命令デコーダ4A、4Bの出力の1つを
選択し、選択した該出力に基づいて所定の処理を実行す
る実行回路5と、実行回路5に対し、該選択制御信号を
供給して第1〜n命令デコーダ4A、4Bの出力を順に
選択させて実行させ、実行回路5が該第i命令デコーダ
4iのデコード結果を取得した後に該第i命令デコーダ
4iに対し、該第i命令レジスタ3iの出力をデコード
させ、該第i命令デコーダ4iに対しデコードさせた後
に該第iプログラムカウンタ2iに対し、出力を更新さ
せ、該更新後に該第i命令レジスタ3iに対し、該スト
ローブ信号を供給して第i記憶手段1iの出力を保持さ
せる制御回路6を有し、プログラムが該第1〜n記憶手
段1A、1Bに、該第1〜n記憶手段1A、1Bの順に
1ワードずつ分配されて格納されている。ここに1ワー
ドとは、最小の命令語長、すなち基本命令語長である。
【0009】この第1発明によれば、分岐命令に関しコ
ンパイラに特別な処理をさせることなく、分岐命令と分
岐先の命令とが間断なく連続して実行されるので、コン
パイラを複雑化させることなく、従来よりも処理を高速
化することが可能となる。第2発明では、例えば図9に
示す如く、プログラムカウンタ2と、プログラムのnワ
ードが1アドレス内に順に格納され、プログラムカウン
タ2の出力でアドレス指定されて該nワードを出力する
記憶手段1と、ストローブ信号に応答して記憶手段1の
出力を1ワードずつ合計nワード保持する第1〜n命令
レジスタ3A、3Bと、該第1〜n命令レジスタ3A、
3Bの出力をそれぞれデコードする第1〜n命令デコー
ダ4A、4Bと、選択制御信号に応じて該第1〜n命令
デコーダ4A、4Bの出力の1つを選択し、選択した該
出力に基づいて所定の処理を実行する実行回路5と、実
行回路5に対し、該選択制御信号を供給して第1〜n命
令デコーダ4A、4Bの出力を順に選択させて実行さ
せ、実行回路5が該第i命令デコーダ4i(図9ではi
=A、B、以下同様)のデコード結果を取得した後に該
第i命令デコーダ4iに対し、該第i命令レジスタ3i
の出力をデコードさせ、実行回路5が該第1〜n命令デ
コーダ4A、4Bの全てのデコード結果を取得した後
に、プログラムカウンタ2A、2Bに対し、出力を更新
させ、該更新後に該第1〜n命令レジスタ3A、3Bに
対し、該ストローブ信号を供給して記憶手段1A、1B
の出力を保持させる制御回路6と、を有する。
【0010】この第2発明によれば、分岐命令に関しコ
ンパイラに特別な処理をさせることなく、分岐命令と分
岐先の命令とが間断なく連続して実行されるので、コン
パイラを複雑化させることなく、従来よりも処理を高速
化することが可能となる。第3発明では、例えば図18
に示す如く、第iプログラムカウンタ2i(図18では
i=A、B、以下同様)と、該第iプログラムカウンタ
2iの出力でアドレス指定される第i記憶手段1iと、
ストローブ信号に応答して該第i記憶手段1iの出力を
保持する第i命令レジスタ3iと、をi=1〜nの各々
について有し、さらに、選択制御信号に応じて該第1〜
n命令レジスタ3A、3Bの出力の1つを選択し、選択
した該出力をデコードする命令デコーダ4と、命令デコ
ーダ4の出力に基づいて所定の処理を実行する実行回路
5と、命令デコーダ4に対し、該選択制御信号を供給し
て第1〜n命令レジスタ3A、3Bの出力を順に選択さ
せてデコードさせ、該第i命令レジスタ3iの出力が命
令デコーダ4で選択された後に該第iプログラムカウン
タ2iに対し、出力を更新させ、該更新後に該第i命令
レジスタ3iに対し、該ストローブ信号を供給して該第
i記憶手段1iの出力を保持させる制御回路6と、を有
し、プログラムが該第1〜n記憶手段1A、1Bに、該
第1〜n記憶手段1A、1Bの順に1ワードずつ分配さ
れて格納されている。
【0011】この第3発明によれば、分岐命令に関しコ
ンパイラに特別な処理をさせることなく、分岐命令と分
岐先の命令とが間断なく連続して実行されるので、コン
パイラを複雑化させることなく、従来よりも処理を高速
化することが可能となる。第1〜3発明の第1態様で
は、例えば図5、14又は20に示す如く、第1〜n命
令レジスタ3A、3Bの出力がバイパス7A、7Bを介
して実行回路の入力端に供給され、制御回路は、上記デ
コーダの出力に基づいて即値データ転送命令であるかど
うかを判定し、即値データ転送命令であると判定された
場合には、実行回路に対し、バイパス7A、7Bを介し
て得られた即値データと該即値データ転送命令のデコー
ド結果とに基づいて該即値データ転送命令を実行させ
る。
【0012】この第1態様によれば、即値転送命令が間
断無く1サイクルで実行され、複数サイクル必要であっ
た従来よりも、高速処理が可能となる。第1〜3発明の
第2態様では、例えば図7、16又は22に示す如く、
第1〜n命令レジスタ3A、3Bの出力のうち連続した
Nワードをデコードして実行回路に供給する2≦N≦n
なるN倍長命令デコーダ4Nを有し、制御回路6は、1
倍長の命令デコーダの出力がN倍長命令であることを示
している場合に、N倍長命令デコーダ4Nに対し該N倍
長命令をデコードさせ、該1倍長命令デコーダに対し、
該N倍長命令の次の命令をデコードさせる。
【0013】この第2態様によれば、N倍長命令が間断
無く1サイクルで実行され、複数サイクル必要であった
従来よりも、高速処理が可能となる。
【0014】
【実施例】以下、図面に基づいて本発明の実施例を説明
する。 [第1実施例]図1は、本発明の第1実施例の情報処理
装置を示す。メモリ1Aとメモリ1Bとは、互いに同一
構成で記憶容量が等しく、1つのプログラムが1ワード
ずつメモリ1Aとメモリ1Bとに交互に分配されて格納
されている。すなわち、メモリ1AのアドレスをA0、
A1、A2・・・とし、メモリ1BのアドレスをB0、
B1、B2・・・とすると、アドレスA0、B0、A
1、B1、A2、B2・・・の順にプログラムが格納さ
れている。
【0015】メモリ1Aのアドレス入力端は、専用の配
線を介してプログラムカウンタ2Aの出力端に接続さ
れ、メモリ1Bのアドレス入力端は、専用の配線を介し
てプログラムカウンタ2Bの出力端に接続されている。
プログラムカウンタ2A及び2Bはいずれも、入力段の
通常のカウンタ部と出力段の保持部との2段になってお
り、後述のように、入力段で更新され確定した内容PA
Nが制御信号に応答して出力段にPAとして保持され
る。
【0016】メモリ1Aのデータ出力端は、専用の配線
を介して命令レジスタ3Aの入力端に接続され、メモリ
1Bのデータ出力端は、専用の配線を介して命令レジス
タ3Bの入力端に接続されている。メモリ1Aは、プロ
グラムカウンタ2Aで指定されたアドレスPAの内容I
A1を常時命令レジスタ3Aの入力端に供給し、メモリ
1Bは、プログラムカウンタ2Bで指定されたアドレス
PBの内容IB1を常時命令レジスタ3Bの入力端に供
給している。命令レジスタ3A及び3Bはそれぞれ、ス
トローブ信号に応答して、IA1及びIB1を保持しI
A2及びIB2として出力する。
【0017】命令レジスタ3A及び3Bの出力端はそれ
ぞれ、命令デコーダ4A及び4Bの入力端に接続されて
いる。命令デコーダ4A及び4Bはそれぞれ、内部の入
力段にレジスタを備え、このレジスタに保持された命令
コードをデコードしDA及びDBとして出力する。命令
デコーダ4A及び4Bの出力端は、実行回路5及び制御
回路6の入力端に接続されている。実行回路5は、内部
の入力段に、選択制御信号に応じてDAとDBの一方を
選択するセレクタと、選択されたデコード結果を保持す
るレジスタとを有し、このレジスタに保持されたデコー
ド結果に基づいて、ALUと内部レジスタとを有する公
知の実行回路と同様に演算やデータ転送等の処理を実行
する。
【0018】これら構成要素1A〜4A、1B〜4B及
び5は、制御回路6からの制御信号に基づいて動作す
る。この制御信号は、図2に示すような2相のクロック
CA及びCBに同期して生成される。制御回路6による
制御の基本は、次の通りである。 (1)実行回路5に対し、DA及びDBを交互に選択さ
せ実行させる。クロックCAの立ち上がりのタイミング
で実行回路5に対し選択制御信号を供給して、実行回路
5が命令デコーダ4Aのデコード結果の実行を完了して
いるときにはDBを選択させ、実行回路5が命令デコー
ダ4Bのデコード結果の実行を完了しているときにはD
Aのデコード結果を選択させ、内部レジスタにこのデコ
ード結果を保持させる。リセット後の初回の選択はDA
とする。
【0019】(2)DAを選択させた場合には、IA2
を命令デコーダ4Aに保持させ、DBを選択させた場合
には、IB2を命令デコーダ4Bに保持させる。 (3)IA2を命令デコーダ4Aに保持させた場合には
IA1を命令レジスタ3Aに保持させ、IA2を命令デ
コーダ4Bに保持させた場合にはIB1を命令レジスタ
3Bに保持させる。
【0020】(4)クロックCAの立ち上がりのタイミ
ングで、プログラムカウンタ2A又は2Bの入力段の内
容PAN又はPBNをPA又はPBとして出力段に保持
させる。 (5)クロックCBの立ち上がりのタイミングで、IA
1を命令レジスタ3Aに保持させ、又は、IB1を命令
レジスタ3Bに保持させる。
【0021】(6)クロックCBの立ち上がりのタイミ
ングで、プログラムカウンタ2A又は2Bの入力段の内
容PAN又はPBNを更新させる。PANの更新は、命
令デコーダ4Aのデコード結果が分岐命令を表している
場合には分岐先アドレスを命令デコーダ4A及び条件分
岐命令の場合にはさらに実行回路5のフラグ出力に基づ
いて決定し、これをプログラムカウンタ2Aにロードさ
せることにより行われ、その他の命令の場合にはプログ
ラムカウンタ2Aのクロック入力端に1個のパルスを供
給させて計数値を1増加させることにより行われる。プ
ログラムカウンタ2Bの更新についてもプログラムカウ
ンタ2Aの場合と同様である。
【0022】(A)次に、情報処理装置をリセットした
後、情報処理装置が定常状態になるまでの通常のパイプ
ライン処理を、図2に基づいて説明する。なお、リセッ
ト後のプログラム実行開始アドレスをnとする。図1及
び図2には図示しないが、情報処理装置のリセットによ
り、プログラムカウンタ2A及び2Bの入力段にnがロ
ードされ、同時に、不図示の他のルートからメモリ1A
及び1Bの入力端に実行開始アドレスnが供給されると
いう初期化処理が行われる。
【0023】また、クロックCAの立ち上がり時点をt
1、t3、t5・・・のように奇数で表し、クロックC
Bの立ち上がり時点をt2、t4、t6・・・のように
偶数で表す。さらに、メモリ1Aのアドレスiから読み
出されたIA1をIA1(i)と表し、IA1(i)を
命令レジスタ3Aが保持したときのIA2をIA2
(i)で表す。IB1及びIB2についてもIA1及び
IA2と同様である。以下の説明では、パイプライン
は、命令フェッチ(IF)、命令デコード(ID)、実
行(EX)、メモリアクセス(MA)及びレジスタへの
書き込み(WB)の実行回路5段階であるとする。例え
ば、インデックスレジスタIXの内容に100を加えた
メモリアドレスからデータを読み出してレジスタRへロ
ードする命令、 LOAD R,IX+100 の場合、実行は、インデックスレジスタIXの内容に1
00を加えて実行アドレスを求める処理であり、メモリ
アクセスは、メモリのこの実行アドレスからデータを読
み出す処理であり、レジスタへの書き込みは、読み出し
たデータをレジスタRに格納させる処理である。
【0024】制御回路6から出力される制御信号のう
ち、図3に示すものは次の通りである。すなわち、命令
IAデコード信号は、命令デコーダ4Aに対し、高レベ
ルのときIA2を保持させてデコードさせるためのもの
であり、命令IBデコード信号は、命令デコーダ4Bに
対し、高レベルのときIB2を保持させてデコードさせ
るためのものであり、命令IA実行信号は、実行回路5
に対し、高レベルのときDAを選択させて実行させるた
めのものであり、命令IB実行信号は、実行回路5に対
し、高レベルのときDBを選択させて実行させるための
ものである。
【0025】(t1)プログラムカウンタ2A及び2B
に共にnがロードされて、PA=n、PB=nとなり、
IA1(n)及びIB1(n)がそれぞれ命令レジスタ
3A及び3Bに保持される。命令デコーダ4A、4B及
び実行回路5はウェイト状態になっている。 (t2)プログラムカウンタ2A及び2Bのクロック入
力端にパルスが1個供給されて、PAN=n+1、PB
N=n+1となる。命令デコーダ4A、4B及び実行回
路5はウェイト状態になっている。
【0026】(t3)IA2(n)及びIB2(n)が
それぞれ命令デコーダ4A及び4Bに保持されてデコー
ドされ、PA=n+1、PB=n+1となり、命令レジ
スタ3A及び3BにそれぞれIA1(n+1)及びIB
1(n+1)が保持される。実行回路5はウェイト状態
になっている。 (t4)プログラムカウンタ2A及び2Bのクロック入
力端にパルスが1個供給されて、PAN=n+2、PB
N=n+2となる。実行回路5はウェイト状態になって
いる。
【0027】(t5)DA(n)が実行回路5により選
択されて実行される。一方、DB(n)は選択されず、
命令デコーダ4Bはウェイト状態になる。IA2(n+
1)が命令デコーダ4Aに保持されてデコードされ、P
A=n+2となり、命令レジスタ3AにIA1(n+
2)が保持される。 (t6)プログラムカウンタ2Aのクロック入力端にパ
ルスが1個供給されて、PAN=n+3となる。
【0028】(t7)実行回路5により、DB(n)が
選択されて実行され、DA(n+1)は選択されず、命
令デコーダ4Aはウェイト状態にされる。制御回路6に
より、DA(n)に応じたメモリアクセスが行われる。
IB2(n+1)が命令デコーダ4Bに保持されてデコ
ードされる。PB=n+2となる。命令レジスタ3Bに
IB1(n+2)が保持される。
【0029】(t8)プログラムカウンタ2Bのクロッ
ク入力端にパルスが1個供給されて、PBN=n+3と
なる。 (t9)実行回路5により、DA(n+1)が選択され
て実行され、DB(n+1)は選択されず、命令デコー
ダ4Bはウェイト状態にされる。制御回路6により、D
A(n)に応じたレジスタ書き込みが行われ、かつ、D
B(n)に応じたメモリアクセスが行われる。IA2
(n+2)が命令デコーダ4Aに保持されてデコードさ
れる。PA=n+3となる。
【0030】以上のようにして5段の通常のパイプライ
ン処理が行われ、定常状態にされる。 (B)次に、定常状態になった後の、無条件分岐命令に
対するパイプライン処理を図3に基づいて説明する。こ
の無条件分岐命令は、アドレスAn(メモリ1Aのアド
レスn)に格納されているとする。また、無条件分岐命
令の1ワードの中に相対分岐先アドレスKが格納され、
相対分岐先アドレスKが偶数2kであってメモリ1A内
であるとする。
【0031】相対分岐先アドレスKに対する実際の分岐
先は、i=0〜Mなるiについて、メモリ1Aのアドレ
スiを2iとみなし、メモリ1Bのアドレスiを2i+
1とみなすことにより、メモリ1Aとメモリ1Bとを一
つにした従来の情報処理装置と同様に決定される。具体
的には、無条件分岐命令がメモリ1A(メモリ1B)に
格納されている場合、Kが奇数2k+1のとき、すなわ
ちKの最下位ビットが‘1’のとき、分岐先相対アドレ
スはメモリ1B(メモリ1A)内の分岐先相対アドレス
kに等しくなり、Kが偶数2kのとき、すなわちKの最
下位ビットが‘0’のとき、分岐先相対アドレスはメモ
リ1A(メモリ1B)内の分岐先相対アドレスkに等し
くなる。
【0032】以下、メモリ1Aのアドレスn−1以前及
びメモリ1Bのアドレスn−1以前の命令語のパイプラ
イン処理は一部のみ説明する。 (t1)実行回路5により、DA(n−2)が選択され
て実行され、一方、DB(n−2)は選択されず、命令
デコーダ4Bはウェイト状態にされる。IA2(n−
1)が命令デコーダ4Aに保持されてデコードされる。
PA=nとなる。
【0033】(t2)命令レジスタ3Aに無条件分岐命
令IA1(n)が保持される。プログラムカウンタ2A
のクロック入力端にパルスが1個供給されて、PAN=
n+1となる。 (t3)実行回路5により、DB(n−2)が選択され
て実行され、一方、DA(n−1)は選択されず、命令
デコーダ4Aはウェイト状態にされる。IB2(n−
1)が命令デコーダ4Bに保持されてデコードされる。
PB=nとなる。
【0034】(t4)命令レジスタ3BにIB1(n)
が保持される。プログラムカウンタ2Bのクロック入力
端にパルスが1個供給されて、PBN=n+1となる。 (t5)実行回路5により、DA(n−1)が選択され
て実行され、一方、DB(n−1)は選択されず、命令
デコーダ4Bはウェイト状態にされる。IA2(n)が
命令デコーダ4Aに保持されてデコードされる。PA=
n+1となる。
【0035】(t6)命令レジスタ3AにIA1(n+
1)が保持される。制御回路6により、DA(n)が無
条件分岐命令を示していると判定され、DA(n)に含
まれる相対分岐先アドレスK=2kのkがプログラムカ
ウンタ2A及び2Bにロードされて、PAN=k、PB
N=kとなる。これにより、以下、リセット後の動作と
同様になる。
【0036】(t7)実行回路5により、DB(n−
1)が選択されて実行され、一方、DA(n)は選択さ
れず、命令デコーダ4Aはウェイト状態にされる。IB
2(n)は命令デコーダ4Bに保持されない(キャンセ
ルされる)。PA=k、PB=kとなる。 (t8)IA1(k)及びIB1(k)がそれぞれ命令
レジスタ3A及び3Bに保持される。PAN=k+1、
PBN=k+1となる。
【0037】(t9)実行回路5により、無条件分岐命
令のデコード結果DA(n)が選択されて形式的に実行
(ノーオペレーションの実行と同一)される。これは、
時点t6でkがプログラムカウンタ2A及び2Bにロー
ドされて、無条件分岐の実行が先取りされているからで
ある。IA2(k)及びIB2(k)がそれぞれ命令デ
コーダ4A及び4Bに保持されてデコードされる。PA
=k+1、PB=k+1となる。
【0038】(t10)命令レジスタ3A及び3Bにそ
れぞれIA1(k+1)及びIB1(k+1)が保持さ
れる。PAN=k+2、PBN=k+2となる。 (t11)実行回路5により、DA(k)が選択されて
実行され、一方、DB(k)は選択されず、命令デコー
ダ4Bはウェイト状態にされる。制御回路6により、D
A(n)に応じたメモリアクセスが行われる。IA2
(k+1)が命令デコーダ4Aに保持されてデコードさ
れる。PA=k+2となる。
【0039】以上のようにして、無条件分岐命令と分岐
先の命令とが間に休みを入れずに連続して実行されるの
で、処理の遅延が防止される。図3では分岐先がAkの
場合を説明したが、分岐先がBkの場合も同様にして処
理の遅延が防止される。 (C)次に、定常状態になった後の、条件分岐命令に対
するパイプライン処理を図4に基づいて説明する。
【0040】アドレスAnに比較命令が格納され、アド
レスBnに条件分岐命令が格納され、この比較命令の実
行結果に応じて、分岐先アドレスがAn+1又はBkと
なるとする。図4において、時点t1〜t7の動作は、
図2及び図3の上記説明から明かであるのでその説明を
省略する。時点t3〜t7は、図3の時点t1〜t5に
対応している。
【0041】(t8)制御回路6により、DB(n)が
条件分岐命令を示していると判定される。この判定によ
り、DB(n)に含まれる相対分岐先アドレスK=2k
のkがプログラムカウンタ2BにロードされてPBN=
kとなり、Bkの次のアドレスとしてプログラムカウン
タ2Aにk+1がロードされてPAN=k+1となる。
これにより、以下、リセット後に類似した動作となる。
【0042】(t9)実行回路5により、比較命令のデ
コード結果DA(n)が選択されて実行され、一方、D
B(n)は選択されず、命令デコーダ4Bはウェイト状
態にされる。IA2(n+1)が命令デコーダ4Aに保
持されてデコードされる。PA=k+1、PB=kとな
る。 (t10)IA1(k+1)及びIB1(k)がそれぞ
れ命令レジスタ3A及び3Bに保持される。プログラム
カウンタ2A及び2Bのクロック入力端にパルスが1個
供給されて、PAN=k+2、PBN=k+1となる。
【0043】(t11)上記比較命令の実行結果によ
り、条件分岐命令の分岐先が定まる。図4では分岐先ア
ドレスがBkと決定され、DA(n+1)がキャンセル
される。実行回路5により、条件分岐命令のデコード結
果DB(n)が選択されて形式的に実行される。制御回
路6により、DA(n)に応じたメモリアクセスが行わ
れる。IA2(k+1)及びIB2(k)がそれぞれ命
令デコーダ4A及び4Bに保持されてデコードされる。
PB=k+1となる。
【0044】(t12)命令レジスタ3BにIB1(k
+1)が保持される。PBN=k+2となる。 (t13)実行回路5により、分岐先命令のデコード結
果DB(k)が選択されて実行され、一方、DA(k+
1)は選択されず、命令デコーダ4Aはウェイト状態に
される。制御回路6により、DA(n)に応じたレジス
タ書き込みが行われ、かつ、DB(n)に応じたメモリ
アクセスが行われる。IB2(k+1)が命令デコーダ
4Aに保持されてデコードされる。PA=k+2とな
る。
【0045】以上のようにして、条件分岐命令と分岐先
の命令とが間に休みを入れずに連続して実行されるの
で、処理の遅延が防止される。図4では分岐先がBkの
場合を説明したが、分岐先がAkの場合も同様にして処
理の遅延が防止される。 [第2実施例]図5は、本発明の第2実施例の情報処理
装置を示す。
【0046】この情報処理装置では、即値転送命令の2
ワード目の即値データを、命令レジスタ3A及び3Bか
ら直接実行回路5Aに供給するために、命令レジスタ3
A及び3Bの出力端がそれぞれバイパス7A及び7Bを
介して直接、実行回路5Aの入力端に接続されている。
制御回路6Aは、命令デコーダ4A又は命令デコーダ4
Bのデコード結果が即値転送命令であることを示してい
ると判定すると、IA2及びIB2をそれぞれバイパス
7A及び7Bを介し直接、実行回路5Aに保持させて、
1サイクルで実行させる。
【0047】他の点は図1の情報処理装置と同一であ
る。図6は、定常状態になった後の、即値転送命令に対
するパイプライン処理を示す。アドレスAnに即値転送
命令の第1ワードが格納され、アドレスBnに即値転送
命令の第2ワードである即値データが格納されていると
する。
【0048】(t1)実行回路5Aにより、DA(n−
2)が選択されて実行され、一方、DB(n−2)は選
択されず、命令デコーダ4Bはウェイト状態にされる。
IA2(n−1)が命令デコーダ4Aに保持されてデコ
ードされる。PA=nとなる。 (t2)命令レジスタ3Aに無条件分岐命令IA1
(n)が保持される。プログラムカウンタ2Aのクロッ
ク入力端にパルスが1個供給されて、PAN=n+1と
なる。
【0049】(t3)実行回路5Aにより、DB(n−
2)が選択されて実行され、一方、DA(n−1)は選
択されず、命令デコーダ4Aはウェイト状態にされる。
IB2(n−1)が命令デコーダ4Bに保持されてデコ
ードされる。PB=nとなる。 (t4)命令レジスタ3Bに即値データIB1(n)が
保持される。プログラムカウンタ2Bのクロック入力端
にパルスが1個供給されて、PBN=n+1となる。
【0050】(t5)実行回路5Aにより、DA(n−
1)が選択されて実行され、一方、DB(n−1)は選
択されず、命令デコーダ4Bはウェイト状態にされる。
IA2(n)が命令デコーダ4Aに保持されてデコード
される。PA=n+1となる。 (t6)命令レジスタ3AにIA1(n+1)が保持さ
れる。PAN=n+2となる。制御回路6Aにより、D
A(n)が即値転送命令を示していると判定され、従っ
て、IB2(n)が即値データであると判定される。
【0051】(t7)前記判定により、IB2(n)
は、命令デコーダ4Bに保持されずに、バイパス7Bを
通って実行回路5Aの内部レジスタに保持される。実行
回路5Aにより、DB(n−1)が選択されて実行さ
れ、一方、DA(n)は選択されず、命令デコーダ4A
はウェイト状態にされる。PB=n+1となる。 (t8)IB1(n+1)が命令レジスタ3Bに保持さ
れる。PBN=n+2となる。
【0052】(t9)実行回路5Aにより、即値転送命
令のデコード結果DA(n)が選択されて、上記保持さ
れた即値データの転送が実行される。IA2(n+1)
及びIB2(n+1)がそれぞれ命令デコーダ4A及び
4Bに保持されてデコードされる。PA=n+2、PB
=n+2となる。 (t10)命令レジスタ3A及び3BにそれぞれIA1
(n+2)及びIB1(n+2)が保持される。PAN
=n+3となる。
【0053】(t11)実行回路5Aにより、DA(n
+1)が選択されて実行され、一方、DB(n+1)は
選択されず、命令デコーダ4Bはウェイト状態にされ
る。制御回路6Aにより、DA(n)に応じたメモリア
クセスが行われる。IA2(n+2)が命令デコーダ4
Aに保持されてデコードされる。以上のようにして、即
値データを含む2倍長の即値転送命令が間断無く1サイ
クルで実行され、処理の遅延が防止される。
【0054】[第3実施例]図7は、本発明の第3実施
例の情報処理装置を示す。この情報処理装置では、2倍
長命令をより高速に実行するために、命令デコーダ4A
及び4Bに加えて2倍長命令デコーダ4Nが備えられ、
命令レジスタ3A及び3Bの出力端が2倍長命令デコー
ダ4Nの入力端に接続され、2倍長命令デコーダ4Nの
出力端が実行回路5Bの入力端に接続されている。2倍
長命令デコーダ4Nは、内部の入力段にIA2及びIB
2を保持するレジスタを有し、このレジスタに保持され
た2倍長命令をデコードする。
【0055】制御回路6Bは、命令デコーダ4A又は命
令デコーダ4Bのデコード結果が2倍長命令であること
を示していると判定すると、IA2及びIB2を2倍長
命令デコーダ4Nに保持させて2倍長命令を1サイクル
でデコードさせる。他の点は図1の情報処理装置と同一
である。図8は、定常状態になった後の、2倍長命令に
対するパイプライン処理を示す。
【0056】図8中、2倍長デコード信号は、実行回路
5Bが2倍長命令デコーダ4Nに対し、高レベルのとき
IA2及びIB2を保持させてデコードさせるためのも
のである。アドレスAn及びBnに1つの2倍長命令が
格納されているとする。時点t1〜t5の動作は、図3
の時点t1〜t5の動作と同一であるのでその説明を省
略する。
【0057】(t6)IA2(n+1)が命令レジスタ
3Aに保持される。PAN=n+2となる。制御回路6
Bにより、DA(n)が2倍長命令の1ワード目を示し
ていると判定される。 (t7)実行回路5Bにより、DB(n−1)が選択さ
れて実行される。前記判定により、IA2(n)及びI
B2(n)が2倍長命令デコーダ4Nの入力段に保持さ
れてデコードされ、一方、IA2(n+1)が命令デコ
ーダ4Aに保持されてデコードされる。PA=n+2、
PB=n+1となる。
【0058】(t8)IA1(n+2)が命令レジスタ
3Aに保持され、IB1(n+1)が命令レジスタ3B
に保持される。PAN=n+3、PBN=n+2とな
る。 (t9)実行回路5Bにより、2倍長命令デコーダ4N
のデコード結果が選択されてが実行される。IA2(n
+1)が命令デコーダ4Aに保持されてデコードされ
る。PB=n+2となる。
【0059】(t10)命令レジスタ3BにIB1(n
+2)が保持される。PBN=n+3となる。 (t11)実行回路5Bにより、DA(n+1)が選択
されて実行され、一方、DB(n+1)は選択されず、
命令デコーダ4Bはウェイト状態にされる。制御回路6
Bにより、DA(n)及びDB(n)に応じたメモリア
クセスが行われる。IA2(n+2)が命令デコーダ4
Aに保持されてデコードされる。PA=n+3となる。
【0060】以上のようにして、2倍長命令が間断無く
1サイクルで実行され、処理の遅延が防止される。 [第4実施例]図9は、本発明の第4実施例の情報処理
装置を示す。この情報処理装置は、上記第1実施例より
も構成を簡単化するために、メモリ1のビット長を、図
10に示す如く2ワードとしており、メモリ1に対しア
ドレスPC=iを指定すると、命令語IA1(i)とI
B1(i)とからなる2ワードIW(i)が読み出され
る。IA1(i)及びIB1(i)はそれぞれ、図9の
命令レジスタ3A及び3Bに同時に保持される。このた
め、メモリ1に対するプログラムカウンタ2は1つとな
っている。命令レジスタ3A及び3Bの出力IA2及び
IB2はそれぞれ、命令デコーダ4A及び4Bに同時に
保持されてデコードされる。このような構成によれば、
制御回路6Cによる制御も上記第1実施例の場合より簡
単になる。
【0061】制御回路6Cによる制御の基本は、次の通
りである。 (1)実行回路5に対し、DA及びDBを交互に選択さ
せ実行させる。クロックCA(図2)の立ち上がりのタ
イミングで実行回路5に対し選択制御信号を供給して、
実行回路5が命令デコーダ4Aのデコード結果の実行を
完了しているときにはDBを選択させ、実行回路5が命
令デコーダ4Bのデコード結果の実行を完了していると
きにはDAのデコード結果を選択させ、内部レジスタに
このデコード結果を保持させる。
【0062】(2)実行回路5にDAを選択させた場合
には、IA2を命令デコーダ4Aに保持させ、DBを選
択させた場合には、IB2を命令デコーダ4Bに保持さ
せる。 (3)DAとDBをメモリ1組選択する毎に、クロック
CAの立ち上がりのタイミングでプログラムカウンタ2
の入力段の内容PCNを出力段に保持させてPCとして
出力させる。
【0063】(4)クロックCAの立ち上がりのタイミ
ングで、プログラムカウンタ2A又はプログラムカウン
タ2Bの入力段の内容PAN又はPBNをPA又はPB
として出力段に保持させる。 (5)クロックCB(図2)の立ち上がりのタイミング
で、IA1及びIB1をそれぞれ命令レジスタ3A及び
3Bに同時に保持させ、また、PCNを更新させる。
【0064】(A)次に、情報処理装置をリセットした
後、情報処理装置が定常状態になるまでの通常のパイプ
ライン処理を、図11に基づいて説明する。リセット直
後の不図示の初期化処理は上記第1実施例の場合と同一
である。 (t1)PC=nとなり、メモリ1からIW(n)=
{IA1(n),IB(n)}が読み出される。命令デ
コーダ4A、4B及び実行回路5はウェイト状態になっ
ている。
【0065】(t2)IA1(n)及びIB1(n)が
それぞれ命令レジスタ3A及び3Bに同時に保持され
る。PCN=n+1となる。 (t3)IA2(n)及びIB2(n)がそれぞれ命令
デコーダ4A及び4Bに保持されてデコードされる。P
C=n+1となる。実行回路5はウェイト状態になって
いる。
【0066】(t4)IA1(n+1)及びIB1(n
+1)がそれぞれ命令レジスタ3A及び3Bに同時に保
持される。PCN=n+2となる。 (t5)DA(n)が実行回路5により選択されて実行
される。一方、DB(n)は選択されず、命令デコーダ
4Bはウェイト状態にされる。IA2(n+1)が命令
デコーダ4Aに保持されてデコードされる。
【0067】(t7)実行回路5により、DB(n)が
選択されて実行され、DA(n+1)は選択されず、命
令デコーダ4Aはウェイト状態にされる。制御回路6C
により、DA(n)に応じたメモリアクセスが行われ
る。IB2(n+1)が命令デコーダ4Bに保持されて
デコードされる。PC=n+2となる。 (t8)制御回路6Cにより、DA(n)に応じたメモ
リアクセスが行われる。IA1(n+2)及びIB1
(n+2)がそれぞれ命令レジスタ3A及び3Bに同時
に保持される。PCN=n+3となる。
【0068】(t9)実行回路5により、DA(n+
1)が選択されて実行される。制御回路6Cにより、D
A(n)に応じたレジスタ書き込みが行われ、かつ、D
B(n)に応じたメモリアクセスが行われる。DB(n
+1)は選択されず、命令デコーダ4Bはウェイト状態
にされる。IA2(n+2)が命令デコーダ4Aに保持
されてデコードされる。
【0069】以上のようにして実行回路5段の通常のパ
イプライン処理が行われ、定常状態になる。 (B)次に、定常状態になった後の、無条件分岐命令に
対するパイプライン処理を図12に基づいて説明する。
無条件分岐命令に対する条件は、図3の場合と同一であ
る。
【0070】(t1)実行回路5により、DB(n−
2)が選択されて実行され、一方、DA(n−1)は選
択されず、命令デコーダ4Aはウェイト状態にされる。
IB2(n−1)が命令デコーダ4Bに保持されてデコ
ードされる。PC=nとなる。 (t2)命令レジスタ3Aに無条件分岐命令IA1
(n)が保持され、同時に命令レジスタ3BにIB1
(n)が保持される。PCN=n+1となる。
【0071】(t3)実行回路5により、DA(n−
1)が選択されて実行され、一方、DB(n−1)は選
択されず、命令デコーダ4Bはウェイト状態にされる。
IA2(n)が命令デコーダ4Aに保持されてデコード
される。 (t4)制御回路6Cにより、DA(n)が無条件分岐
命令を示していると判定され、DA(n)に含まれる相
対分岐先アドレスK=2kのkがプログラムカウンタ2
にロードされて、PCN=kとなる。これにより、以
下、リセット後の動作と同様になる。
【0072】(t5)実行回路5により、DB(n−
1)が選択されて実行され、一方、DA(n)は選択さ
れず、命令デコーダ4Aはウェイト状態にされる。IB
2(n)は命令デコーダ4Bに保持されない(キャンセ
ルされる)。PC=kとなる。 (t6)IA1(k)及びIB1(k)がそれぞれ命令
レジスタ3A及び3Bに保持される。PCN=k+1と
なる。
【0073】(t7)実行回路5により、無条件分岐命
令のデコード結果DA(n)が選択されて形式的に実行
(ノーオペレーションの実行と同一)される。IA2
(k)が命令デコーダ4Aに保持されてデコードされ
る。PC=k+1となる。 (t8)命令レジスタ3A及び3BにそれぞれIA1
(k+1)及びIB1(k+1)が保持される。PCN
=k+2となる。
【0074】(t9)実行回路5により、DA(k)が
選択されて実行され、一方、DB(k)は選択されず、
命令デコーダ4Bはウェイト状態にされる。制御回路6
Cにより、DA(n)に応じたメモリアクセスが行われ
る。IB2(k)及びIA2(k+1)がそれぞれ命令
デコーダ4B及び命令デコーダ4Aに保持されてデコー
ドされる。
【0075】以上のようにして、無条件分岐命令と分岐
先の命令とが間に休みを入れずに連続して実行されるの
で、処理の遅延が防止される。図12では分岐先がAk
の場合を説明したが、分岐先がBkの場合も同様にして
処理の遅延が防止される。 (C)次に、定常状態になった後の、条件分岐命令に対
するパイプライン処理を図13に基づいて説明する。条
件分岐命令に対する条件は、分岐先がAkである外は図
4の場合と同一である。
【0076】図13において、時点t1〜t3の動作
は、図12の時点t1〜t3の動作と同一であるのでそ
の説明を省略する。t4では変化がない。 (t5)PC=n+1となる。実行回路5により、DB
(n−1)が選択されて実行され、一方、DA(n)は
選択されず、命令デコーダ4Aはウェイト状態にされ
る。条件分岐命令IB2(n)が命令デコーダ4Bに保
持されてデコードされる。
【0077】(t6)IA1(n+1)及びIB1(n
+1)がそれぞれ命令レジスタ3A及び3Bに保持され
る。制御回路6により、DB(n)が条件分岐命令を示
していると判定され、DB(n)に含まれる相対分岐先
アドレスK=2kのkがプログラムカウンタ2にロード
され、以下、リセット後に類似した動作となる。 (t7)実行回路5により、比較命令のデコード結果D
A(n)が選択されて実行され、一方、DB(n)は選
択されず、命令デコーダ4Bはウェイト状態にされる。
IA2(n+1)が命令デコーダ4Aに保持されてデコ
ードされる。PC=kとなる。
【0078】(t8)IA1(k)及びIB1(k)が
それぞれ命令レジスタ3A及び3Bに同時に保持され
る。PCN=k+1となる。 (t9)上記比較命令の実行結果により、条件分岐命令
の分岐先が定まる。図13では分岐先アドレスがAkと
決定され、DA(n+1)及びIB2(n+1)がキャ
ンセルされる。実行回路5により、条件分岐命令のデコ
ード結果DB(n)が選択されて形式的に実行される。
制御回路6Cにより、DA(n)に応じたメモリアクセ
スが行われる。IA2(k)及びIB2(k)がそれぞ
れ命令デコーダ4A及び4Bに保持されてデコードされ
る。PB=k+1となる。
【0079】(t10)命令レジスタ3A及び3Bにそ
れぞれIA1(k+1)及びIB1(k+1)が保持さ
れる。PCN=k+2となる。 (t11)実行回路5により、分岐先命令のデコード結
果DA(k)が選択されて実行され、一方、DB(k)
は選択されず、命令デコーダ4Bはウェイト状態にされ
る。制御回路6Cにより、DA(n)に応じたレジスタ
書き込みが行われ、かつ、DB(n)に応じたメモリア
クセスが行われる。IA2(k+1)が命令デコーダ4
Aに保持されてデコードされる。
【0080】以上のようにして、条件分岐命令と分岐先
の命令とが間に休みを入れずに連続して実行されるの
で、処理の遅延が防止される。図13では分岐先がAk
の場合を説明したが、分岐先がBkの場合も同様にして
処理の遅延が防止される。 [第5実施例]図14は、本発明の第5実施例の情報処
理装置を示す。
【0081】この情報処理装置は、図5の構成に対し図
9に示す簡単化を施したものである。すなわち、図9の
構成にさらに、即値転送命令の2ワード目の即値データ
を、命令レジスタ3A及び3Bから直接実行回路5Aに
供給するために、命令レジスタ3A及び3Bの出力端が
それぞれバイパス7A及び7Bを介して直接、実行回路
5Aの入力端に接続されている。
【0082】図15は、定常状態になった後の、即値転
送命令に対するパイプライン処理を示す。即値転送命令
に対する条件は、図6の場合と同一である。図15にお
いて、時点t1〜t4の動作は、図13の時点t1〜t
4の動作と同一であるのでその説明を省略する。なお、
制御回路6Dによりt3〜t5の間で、DA(n)が即
値転送命令を示していると判定される。
【0083】(t5)PC=n+1となる。実行回路5
Aにより、DB(n−1)が選択されて実行され、一
方、DA(n)は選択されず、命令デコーダ4Aはウェ
イト状態にされる。上記判定により、IB2(n)がバ
イパス7Bを通って直接、実行回路5Aの内部レジスタ
に即値データとして保持される。 (t6)IA1(n+1)及びIB1(n+1)がそれ
ぞれ命令レジスタ3A及び3Bに保持される。PCN=
n+2となる。
【0084】(t7)実行回路5Aにより、即値転送命
令のデコード結果DA(n)が選択されて、上記保持さ
れた即値データの転送が実行される。IA2(n+1)
及びIB2(n+1)がそれぞれ命令デコーダ4A及び
4Bに保持されてデコードされる。PC=n+2とな
る。 (t8)命令レジスタ3A及び3BにそれぞれIA1
(n+2)及びIB1(n+2)が保持される。PCN
=n+3となる。
【0085】(t9)実行回路5Aにより、DA(n+
1)が選択されて実行され、一方、DB(n+1)は選
択されず、命令デコーダ4Bはウェイト状態にされる。
制御回路6Dにより、DA(n)に応じたメモリアクセ
スが行われる。IA2(n+2)が命令デコーダ4Aに
保持されてデコードされる。以上のようにして、2倍長
の即値転送命令が間断無く1サイクルで実行され、処理
の遅延が防止される。
【0086】[第6実施例]図16は、本発明の第6実
施例の情報処理装置を示す。この情報処理装置は、図7
の構成に対し図9に示す簡単化を施したものである。す
なわち、2倍長命令をより高速に実行するために、図9
の構成にさらに、命令デコーダ4A及び4Bに加えて2
倍長命令デコーダ4Nが備えられ、命令レジスタ3A及
び3Bの出力端がそれぞれ配線8A及び8Bを介して2
倍長命令デコーダ4Nの入力端に接続され、2倍長命令
デコーダ4Nの出力端が実行回路5Bの入力端に接続さ
れている。
【0087】図17は、定常状態になった後の、2倍長
命令に対するパイプライン処理を示す。2倍長命令に対
する条件は、図8の場合と同一である。 (t1)実行回路5Bにより、DB(n−2)が選択さ
れて実行され、一方、DA(n−1)は選択されず、命
令デコーダ4Aはウェイト状態にされる。IB2(n−
1)が命令デコーダ4Bに保持されてデコードされる。
PC=nとなる。
【0088】(t2)命令レジスタ3A及び3Bにそれ
ぞれ2倍長命令の第1ワードIA1(n)及び第2ワー
ドIB1(n)が保持される。PCN=n+1となる。 (t3)実行回路5Bにより、DA(n−1)が選択さ
れて実行され、一方、DB(n−1)は選択されず、命
令デコーダ4Bはウェイト状態にされる。IA2(n)
が命令デコーダ4Aに保持されてデコードされる。
【0089】(t4)制御回路6Eにより、DA(n)
が2倍長命令を示していると判定される。 (t5)前記判定により、命令デコーダ4A及び4Bが
ウェイト状態にされ、一方、IA2(n)及びIB2
(n)がそれぞれ配線8A及び8Bを介して2倍長命令
デコーダ4Nに保持されて、2倍長命令がデコードされ
る。実行回路5Bにより、DB(n−1)が選択されて
実行される。PC=n+1となる。
【0090】(t6)IA1(n+1)及びIB1(n
+1)がそれぞれ命令レジスタ3A及び3Bに保持され
る。PCN=n+2となる。 (t7)実行回路5Bにより、2倍長命令のデコード結
果DA(n)及びDB(n)が実行される。IA2(n
+1)及びIB2(n+1)がそれぞれ命令デコーダ4
A及び4Bに保持されてデコードされる。PC=n+2
となる。
【0091】(t8)命令レジスタ3A及び3Bにそれ
ぞれIA1(n+2)及びIB1(n+2)が保持され
る。PCN=n+3となる。 (t9)実行回路5Bにより、DA(n+1)が選択さ
れて実行され、一方、DB(n)は選択されず、命令デ
コーダ4Bはウェイト状態にされる。制御回路6Eによ
り、DA(n)及びDB(n)に応じたメモリアクセス
が行われる。IA2(n+2)が命令デコーダ4Aに保
持されてデコードされる。
【0092】以上のようにして、2倍長命令が間断無く
1サイクルで実行され、処理の遅延が防止される。 [第7実施例]図18は、本発明の第7実施例の情報処
理装置を示す。この情報処理装置では、図1よりも構成
を簡単化するために、命令デコーダ4を1つのみ用いて
いる。命令デコーダ4が1つであるので、実行回路5C
内の入力段にはセレクタが備えられておらず、代わりに
命令デコーダ4内の入力段のレジスタの前段に、命令レ
ジスタ3Aの出力と命令デコーダ4の出力との一方を選
択するセレクタが備えられている。実行回路5Cは、内
部入力段にセレクタが備えられていない点のみ図1の実
行回路5と異なり、命令デコーダ4は、内部入力段にセ
レクタが備えられてる点のみ図1の命令デコーダ4Aと
異なる。
【0093】制御回路6Fは、命令デコーダ4が1つで
あるので、図1の制御回路6よりも制御が簡単になる。
制御回路6Fは、IA2を命令デコーダ4に保持させた
場合には、PAに1を加算し、IA1を命令レジスタ3
Aに保持させ、IB2を命令デコーダ4に保持させた場
合には、PBに1を加算し、IB1を命令レジスタ3B
に保持させる。
【0094】他の点は図1の情報処理装置と同一であ
る。情報処理装置をリセットした後、情報処理装置が定
常状態になるまでの通常のパイプライン処理を、図19
に基づいて説明する。リセット直後の不図示の初期化処
理は上記第1実施例の場合と同一である。 (t1)PA=n、PB=nとなる。命令デコーダ4及
び実行回路5Cはウェイト状態になっている。
【0095】(t2)IA1(n)及びIB1(n)が
それぞれ命令レジスタ3A及び3Bに保持される。PA
N=n+1、PBN=n+1となる。 (t3)IA2(n)が命令デコーダ4に保持されてデ
コードされ、IB2(n)はウェイト状態にされる。P
A=n+1となる。実行回路5Cはウェイト状態になっ
ている。
【0096】(t4)命令レジスタ3AにIA1(n+
1)が保持される。PAN=n+2となる。 (t5)DA(n)が実行回路5Cに保持されて実行さ
れる。IB2(n+1)が命令デコーダ4に保持されて
デコードされる。PB=n+1となる。 (t6)命令レジスタ3BにIB1(n+1)が保持さ
れる。PBN=n+2となる。
【0097】(t7)実行回路5Cにより、DB(n)
が実行される。制御回路6Fにより、DA(n)に応じ
たメモリアクセスが行われる。IA2(n+1)が命令
デコーダ4に保持されてデコードされる。PA=n+2
となる。 (t8)命令レジスタ3AにIA1(n+2)が保持さ
れる。PAN=n+3となる。
【0098】(t9)実行回路5Cにより、DA(n+
1)が実行される。制御回路6Fにより、DB(n)に
応じたメモリ書き込みが行われ、かつ、DA(n)に応
じたレジスタ書き込みが行われる。IB2(n+1)が
命令デコーダ4に保持されてデコードされる。PB=n
+2となる。 以上のようにして実行回路5段の通常のパイプライン処
理が行われ、定常状態になる。定常状態になった後の、
無条件分岐命令及び条件分岐命令に対するパイプライン
処理については、以上の説明から容易に理解できるの
で、その説明を省略する。この情報処理装置によって
も、無条件分岐命令及び条件分岐命令を間断無く1サイ
クルで実行できるという上述の効果が得られる。
【0099】[第8実施例]図20は、本発明の第8実
施例の情報処理装置を示す。この情報処理装置は、図5
の構成に対し、図18に示す簡単化を施したものであ
る。すなわち、図18の構成にさらに、即値転送命令の
2ワード目の即値データを、命令レジスタ3A及び3B
から直接実行回路5Dに供給するために、命令レジスタ
3A及び3Bの出力端がそれぞれバイパス7A及び7B
を介して直接、実行回路5Dの入力端に接続されてい
る。
【0100】図21は、定常状態になった後の、即値転
送命令に対するパイプライン処理を示す。即値転送命令
に対する条件は、図6の場合と同一である。 (t1)DB(n−2)が実行回路5Dに保持されて実
行される。PA=nとなる。IA2(n)が命令デコー
ダ4に保持されてデコードされる。 (t2)IA1(n)が命令レジスタ3Aに保持され
る。PAN=n+1となる。
【0101】(t3)DA(n−1)が実行回路5Dに
保持されて実行される。IB2(n−1)が命令デコー
ダ4に保持されてデコードされる。PB=nとなる。 (t4)命令レジスタ3BにIB1(n)が保持され
る。PBN=n+1となる。 (t5)DB(n−1)が実行回路5Dに保持されて実
行される。即値転送命令IA2(n)が命令デコーダ4
に保持されてデコードされる。PA=n+1となる。
【0102】(t6)命令レジスタ3AにIA1(n+
1)が保持される。PAN=n+2となる。制御回路6
Gにより、IA2(n)が即値転送命令と判定され、従
って、IB2(n)が即値データと判定される。制御回
路6Gにより、IB2(n)がバイパス7Bを通って実
行回路5Dに即値データとして保持される。 (t7)実行回路5Dにより、即値転送命令のデコード
結果DB(n)が実行される。制御回路6Gにより、D
A(n)に応じたメモリアクセスが行われる。IA2
(n+1)が命令デコーダ4に保持されてデコードされ
る。命令レジスタ3BにIB1(n+1)が保持され
る。PB=n+1となる。
【0103】(t8)命令レジスタ3BにIB1(n+
1)が保持される。PBN=n+2となる。 (t9)実行回路5Dにより、DA(n+1)が実行さ
れる。制御回路6Gにより、DA(n)に応じたメモリ
アクセスが行われる。IB2(n+1)が命令デコーダ
4に保持されてデコードされる。PA=n+2となる。
【0104】以上のようにして、即値データを含む2倍
長の即値転送命令が間断無く1サイクルで実行され、処
理の遅延が防止される。 [第9実施例]図22は、本発明の第9実施例の情報処
理装置を示す。この情報処理装置は、図7の構成に対
し、図18に示す簡単化を施したものである。すなわ
ち、2倍長命令をより高速に実行するために、図18の
構成にさらに、命令デコーダ4に加えて2倍長命令デコ
ーダ4Nが備えられ、命令レジスタ3A及び3Bの出力
端がそれぞれ配線8A及び8Bを介して2倍長命令デコ
ーダ4Nの入力端に接続され、2倍長命令デコーダ4N
の出力端が実行回路5Eの入力端に接続されている。
【0105】この情報処理装置の制御回路6Hによる動
作は、以上の説明から容易に理解できるので、その説明
を省略する。この情報処理装置によっても、2倍長命令
を間断無く1サイクルで実行できるという上述の効果が
得られる。
【0106】
【発明の効果】以上説明した如く、本第1〜3発明に係
る情報処理装置によれば、分岐命令に関しコンパイラに
特別な処理をさせることなく、分岐命令と分岐先の命令
とが間断なく連続して実行されるので、コンパイラを複
雑化させることなく、従来よりも処理を高速化すること
が可能となるという優れた効果を奏する。
【0107】第1〜3発明の第1態様によれば、即値転
送命令が間断無く1サイクルで実行され、複数サイクル
必要であった従来よりも、高速処理が可能となるという
効果を奏する。第1〜3発明の第2態様によれば、N倍
長命令が間断無く1サイクルで実行され、複数サイクル
必要であった従来よりも、高速処理が可能となるという
効果を奏する。
【図面の簡単な説明】
【図1】本発明の第1実施例の情報処理装置を示すブロ
ック図である。
【図2】図1の装置において、リセット後、定常状態ま
での通常のパイプライン処理を示すタイミングチャート
である。
【図3】図1の装置において、無条件分岐命令に対する
パイプライン処理を示すタイミングチャートである。
【図4】図1の装置において、条件分岐命令に対するパ
イプライン処理を示すタイミングチャートである。
【図5】本発明の第2実施例の情報処理装置を示すブロ
ック図である。
【図6】図5の装置において、即値転送命令に対するパ
イプライン処理を示すタイミングチャートである。
【図7】本発明の第3実施例の情報処理装置を示すブロ
ック図である。
【図8】図7の装置において、2倍長命令に対するパイ
プライン処理を示すタイミングチャートである。
【図9】本発明の第4実施例の情報処理装置を示すブロ
ック図である。
【図10】図9のメモリ内のプログラムの配列を示す図
である。
【図11】図9の装置において、リセット後、定常状態
までの通常のパイプライン処理を示すタイミングチャー
トである。
【図12】図9の装置において、無条件分岐命令に対す
るパイプライン処理を示すタイミングチャートである。
【図13】図9の装置において、条件分岐命令に対する
パイプライン処理を示すタイミングチャートである。
【図14】本発明の第5実施例の情報処理装置を示すブ
ロック図である。
【図15】図14の装置において、即値転送命令に対す
るパイプライン処理を示すタイミグチャートである。
【図16】本発明の第6実施例の情報処理装置を示すブ
ロック図である。
【図17】図16の装置において、2倍長命令に対する
パイプライン処理を示すタイミングチャートである。
【図18】本発明の第7実施例の情報処理装置を示すブ
ロック図である。
【図19】図18の装置において、リセット後、定常状
態までの通常のパイプライン処理示すタイミングチャー
トである。
【図20】本発明の第8実施例の情報処理装置を示すブ
ロック図である。
【図21】図20の装置において、即値転送命令に対す
るパイプライン処理を示すタイミグチャートである。
【図22】本発明の第9実施例の情報処理装置を示すブ
ロック図である。
【符号の説明】
1、1A、1B メモリ 2、2A、2B プログラムカウンタ 3A、3B 命令レジスタ 4、4A、4B、4N 命令デコーダ 6、6A〜6H 制御回路 5、5A〜5E 実行回路 7A、7B バイパス

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 第iプログラムカウンタ(2A、2B)
    と、 該第iプログラムカウンタの出力でアドレス指定される
    第i記憶手段(1A、1B)と、 ストローブ信号に応答して該第i記憶手段の出力を保持
    する第i命令レジスタ(3A、3B)と、 該第i命令レジスタの出力をデコードする第i命令デコ
    ーダ(4A、4B)と、 をi=1〜nの各々について有し、さらに、 選択制御信号に応じて該第1〜n命令デコーダの出力の
    1つを選択し、選択した該出力に基づいて所定の処理を
    実行する実行回路(5)と、 該実行回路に対し、該選択制御信号を供給して第1〜n
    命令デコーダの出力を順に選択させて実行させ、該実行
    回路が該第i命令デコーダのデコード結果を取得した後
    に該第i命令デコーダに対し、該第i命令レジスタの出
    力をデコードさせ、該第i命令デコーダに対しデコード
    させた後に該第iプログラムカウンタに対し、出力を更
    新させ、該更新後に該第i命令レジスタに対し、該スト
    ローブ信号を供給して該第i記憶手段の出力を保持させ
    る制御回路(6)、 を有し、プログラムが該第1〜n記憶手段に、該第1〜
    n記憶手段の順に1ワードずつ分配されて格納されてい
    ることを特徴とする情報処理装置。
  2. 【請求項2】 プログラムカウンタ(2)と、 プログラムのnワードが1アドレス内に順に格納され、
    該プログラムカウンタの出力でアドレス指定されて該n
    ワードを出力する記憶手段(1)と、 ストローブ信号に応答して該記憶手段の出力を1ワード
    ずつ合計nワード保持する第1〜n命令レジスタ(3
    A、3B)と、 該第1〜n命令レジスタの出力をそれぞれデコードする
    第1〜n命令デコーダ(4A、4B)と、 選択制御信号に応じて該第1〜n命令デコーダの出力の
    1つを選択し、選択した該出力に基づいて所定の処理を
    実行する実行回路(5)と、 該実行回路に対し、該選択制御信号を供給して第1〜n
    命令デコーダの出力を順に選択させて実行させ、該実行
    回路が該第i命令デコーダのデコード結果を取得した後
    に該第i命令デコーダに対し、該第i命令レジスタの出
    力をデコードさせ、該実行回路が該第1〜n命令デコー
    ダの全てのデコード結果を取得した後に、該プログラム
    カウンタに対し、出力を更新させ、該更新後に該第1〜
    n命令レジスタに対し、該ストローブ信号を供給して該
    記憶手段の出力を保持させる制御回路(6C)と、 を有することを特徴とする情報処理装置。
  3. 【請求項3】 第iプログラムカウンタ(2A、2B)
    と、 該第iプログラムカウンタの出力でアドレス指定される
    第i記憶手段(1A、1B)と、 ストローブ信号に応答して該第i記憶手段の出力を保持
    する第i命令レジスタ(3A、3B)と、 をi=1〜nの各々について有し、さらに、 選択制御信号に応じて該第1〜n命令レジスタの出力の
    1つを選択し、選択した該出力をデコードする命令デコ
    ーダ(4)と、 該命令デコーダの出力に基づいて所定の処理を実行する
    実行回路(5C)と、 該命令デコーダに対し、該選択制御信号を供給して第1
    〜n命令レジスタの出力を順に選択させてデコードさ
    せ、該第i命令レジスタの出力が該命令デコーダで選択
    された後に該第iプログラムカウンタに対し、出力を更
    新させ、該更新後に該第i命令レジスタに対し、該スト
    ローブ信号を供給して該第i記憶手段の出力を保持させ
    る制御回路(6F)と、 を有し、プログラムが該第1〜n記憶手段に、該第1〜
    n記憶手段の順に1ワードずつ分配されて格納されてい
    る、 ことを特徴とする情報処理装置。
  4. 【請求項4】 前記第1〜n命令レジスタ(3A、3
    B)の出力がバイパス(7A、7B)を介して前記実行
    回路(5A)の入力端に供給され、 前記制御回路(6A)は、前記デコーダの出力に基づい
    て即値データ転送命令であるかどうかを判定し、即値デ
    ータ転送命令であると判定された場合には、該実行回路
    に対し、該バイパスを介して得られた即値データと該即
    値データ転送命令のデコード結果とに基づいて該即値デ
    ータ転送命令を実行させる、 ことを特徴とする請求項1乃至3のいずれか1つに記載
    の情報処理装置。
  5. 【請求項5】 前記第1〜n命令レジスタ(3A、3
    B)の出力のうち連続したNワードをデコードして前記
    実行回路(5B)に供給する2≦N≦nなるN倍長命令
    デコーダ(4N)を有し、 前記制御回路(6B)は、1倍長の前記命令デコーダの
    出力がN倍長命令であることを示している場合に、該N
    倍長命令デコーダに対し該N倍長命令をデコードさせ、
    該1倍長命令デコーダに対し、該N倍長命令の次の命令
    をデコードさせる、 ことを特徴とする請求項1乃至3のいずれか1つに記載
    の情報処理装置。
JP5352824A 1993-12-28 1993-12-28 情報処理装置 Withdrawn JPH07200289A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP5352824A JPH07200289A (ja) 1993-12-28 1993-12-28 情報処理装置
US08/347,090 US5649226A (en) 1993-12-28 1994-11-23 Processor having multiple instruction registers
GB9424058A GB2285322B (en) 1993-12-28 1994-11-29 Processor having multiple instruction register
GB9810670A GB2322210B (en) 1993-12-28 1994-11-29 Processor having multiple instruction registers
DE4442687A DE4442687C2 (de) 1993-12-28 1994-11-30 Prozessor mit mehreren Instruktionsregistern

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5352824A JPH07200289A (ja) 1993-12-28 1993-12-28 情報処理装置

Publications (1)

Publication Number Publication Date
JPH07200289A true JPH07200289A (ja) 1995-08-04

Family

ID=18426693

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5352824A Withdrawn JPH07200289A (ja) 1993-12-28 1993-12-28 情報処理装置

Country Status (4)

Country Link
US (1) US5649226A (ja)
JP (1) JPH07200289A (ja)
DE (1) DE4442687C2 (ja)
GB (1) GB2285322B (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724565A (en) * 1995-02-03 1998-03-03 International Business Machines Corporation Method and system for processing first and second sets of instructions by first and second types of processing systems
US6209020B1 (en) * 1996-09-20 2001-03-27 Nortel Networks Limited Distributed pipeline memory architecture for a computer system with even and odd pids
JP3738134B2 (ja) * 1998-06-19 2006-01-25 三洋電機株式会社 デジタル信号処理装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3764988A (en) * 1971-03-01 1973-10-09 Hitachi Ltd Instruction processing device using advanced control system
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
US4587611A (en) * 1980-09-04 1986-05-06 Amdahl Corporation Multiple module control store for use in a data processing system
US4439827A (en) * 1981-12-28 1984-03-27 Raytheon Company Dual fetch microsequencer
JPH0810430B2 (ja) * 1986-11-28 1996-01-31 株式会社日立製作所 情報処理装置
DE69032812T2 (de) * 1989-07-07 1999-04-29 Hitachi Ltd Vorrichtung und Verfahren zur parallelen Verarbeitung
JPH03139726A (ja) * 1989-10-26 1991-06-13 Hitachi Ltd 命令読出し制御方式
JP2834292B2 (ja) * 1990-08-15 1998-12-09 株式会社日立製作所 データ・プロセッサ
US5283874A (en) * 1991-10-21 1994-02-01 Intel Corporation Cross coupling mechanisms for simultaneously completing consecutive pipeline instructions even if they begin to process at the same microprocessor of the issue fee
US5357617A (en) * 1991-11-22 1994-10-18 International Business Machines Corporation Method and apparatus for substantially concurrent multiple instruction thread processing by a single pipeline processor
US5317745A (en) * 1992-01-10 1994-05-31 Zilog, Inc. Minimal interrupt latency scheme using multiple program counters
US5559975A (en) * 1994-06-01 1996-09-24 Advanced Micro Devices, Inc. Program counter update mechanism
US5574937A (en) * 1995-01-30 1996-11-12 Intel Corporation Method and apparatus for improving instruction tracing operations in a computer system

Also Published As

Publication number Publication date
DE4442687C2 (de) 1999-11-25
DE4442687A1 (de) 1995-06-29
GB2285322B (en) 1998-10-07
GB9424058D0 (en) 1995-01-18
GB2285322A (en) 1995-07-05
US5649226A (en) 1997-07-15

Similar Documents

Publication Publication Date Title
US5922066A (en) Multifunction data aligner in wide data width processor
US7694109B2 (en) Data processing apparatus of high speed process using memory of low speed and low power consumption
US5163139A (en) Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions
EP2519874B1 (en) Branching processing method and system
JP2816248B2 (ja) データプロセッサ
US20040103262A1 (en) Vector register file with arbitrary vector addressing
US6408377B2 (en) Dynamic allocation of resources in multiple microprocessor pipelines
US5459847A (en) Program counter mechanism having selector for selecting up-to-date instruction prefetch address based upon carry signal of adder which adds instruction size and LSB portion of address register
US20040078554A1 (en) Digital signal processor with cascaded SIMD organization
US5710914A (en) Digital signal processing method and system implementing pipelined read and write operations
US20060179287A1 (en) Apparatus for controlling multi-word stack operations in digital data processors
US20060095746A1 (en) Branch predictor, processor and branch prediction method
US5504923A (en) Parallel processing with improved instruction misalignment detection
US5349671A (en) Microprocessor system generating instruction fetch addresses at high speed
JP2002529847A (ja) ビットfifoを有するディジタル信号プロセッサ
US5867696A (en) Saving a program counter value as the return address in an arbitrary general purpose register
US5142630A (en) System for calculating branch destination address based upon address mode bit in operand before executing an instruction which changes the address mode and branching
US7134000B2 (en) Methods and apparatus for instruction alignment including current instruction pointer logic responsive to instruction length information
US7577824B2 (en) Methods and apparatus for storing expanded width instructions in a VLIW memory for deferred execution
JPH07200289A (ja) 情報処理装置
EP0334131B1 (en) Data processor performing operation on data having length shorter than one-word length
US20030005269A1 (en) Multi-precision barrel shifting
US6266764B1 (en) Program controller for switching between first program and second program
JP2861560B2 (ja) データ処理装置
JPH0651984A (ja) マイクロプロセッサ

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20010306