JPH0281131A - プログラム処理方式 - Google Patents

プログラム処理方式

Info

Publication number
JPH0281131A
JPH0281131A JP23227188A JP23227188A JPH0281131A JP H0281131 A JPH0281131 A JP H0281131A JP 23227188 A JP23227188 A JP 23227188A JP 23227188 A JP23227188 A JP 23227188A JP H0281131 A JPH0281131 A JP H0281131A
Authority
JP
Japan
Prior art keywords
instruction
program
read
register
branch
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
JP23227188A
Other languages
English (en)
Inventor
Shigehisa Sakahara
重久 坂原
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 JP23227188A priority Critical patent/JPH0281131A/ja
Publication of JPH0281131A publication Critical patent/JPH0281131A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔概 要〕 ROMに格納されているプログラムを用いて処理を行う
プロセッサの処理の高速化を図るためのプログラム処理
方式に関し、 分岐命令が含まれていても処理時間が増大することのな
いプログラム処理方式を得ることを目的とし、 同時かつ独立に読出し可能なプログラムROMを用い、
このプログラムROMの読出しアドレスを格納するプロ
グラムカウンタレジスタと、このプログラムROMから
読出されたプログラムを格納するパイプライン構成のイ
ンストラクションレジスタとをそれぞれ備える第1、第
2のプログラム読出系統と、一方のプログラム読出系統
によって上記プログラムROMから読出された分岐命令
が上記インストラクションレジスタの初段のインストラ
クションレジスタにフェッチされたときに他方の系統の
プログラムカウンタレジスタにこの分岐命令の分岐先ア
ドレスを転送する手段とを設けた。
〔産業上の利用分野〕
ROMに格納されているプログラムを用いて処理を行う
プロセッサの処理の高速化を図るためのプログラム処理
方式に関する。
(従来の技術〕 第3図は従来のプログラム処理方式の例を示すもので、
プログラムROMIに格納されている処理プログラムは
プログラムカウンタレジスタ6からのアドレスによって
読出され、パイプライン接続されている#lインストラ
クションレジスタ3、#2インストラクションレジスタ
4および実行中の命令をラッチしている#3インストラ
クションレジスタ9に処理サイクルごとに順次シフトさ
れる。
なお、#3インストラクションレジスタ9にラッチされ
ている命令は命令デコーダ10によってデコードされて
図示しないプロセッサでの処理に用いられ、また、#l
インストラクションレジスタ3にラッチされている命令
はルックアヘッドデコーダ11によってデコードされる
上記プログラムカウンタ6が保持するプログラムROM
Iの読出アドレスは、通常の命令の場合には加算器7に
よって処理サイクルごとに11”が加算されるために連
続するアドレスからの命令が順次読出され、また分岐先
命令の格納アドレスを含む分岐命令の場合には上記#3
インストラクションレジスタ9からこの分岐先命令の格
納アドレスがセレクタ5を切換えることによってプログ
ラムカウンタレジスタ6にラッチされる。
また、分岐命令の処理結果などによって間接的に分岐先
命令の格納アドレスが指定されるような場合には上記セ
レクタ5に他の入力端子を設けてこのアドレスを供給す
るとともにこのセレクタ5をこの入力端子の入力を出力
するように切換えるようにすることができる。
第5図はこの第4図図示の従来例の動作を示すタイムチ
ャートであって、第5図(a)に示すように処理サイク
ル■においてプログラムカウンタレジスタ6がラッチし
ているアドレスnによって処理サイクル■で分岐先命令
の格納アドレスkを含む分岐命令NがプログラムROM
Iから読出され、同図(blに示す#lインストラクシ
ョンレジスタ3にフェッチされる。
そして、続く処理サイクル■で同図(C)に示す#2イ
ンストラクションレジスタ4に、また、処理サイクル■
で同図Tdlに示すように#3インストラクションレジ
スタ9にというように順次シフトされる。
この分岐命令Nが読出された後の処理サイクル■〜■に
おいてはこの分岐命令Nによる分岐の結果が未だ判断で
きないので、分岐がないものと見做してこの分岐命令の
格納アドレスnから加算器7によって順次“+1″され
たアドレス(n+1)〜(n+3)がプログラムカウン
タレジスタ6に順次ラッチされ、処理サイクル■におい
ては上記アドレス(n+1)に格納されている命令(N
+1)が、また、処理サイクル■においては命令(N+
2)が読出されてそれぞれ#1インストラクションレジ
スタ3にフェッチされる。
次の処理サイクル■では上記分岐命令Nが#3インスト
ラクションレジスタ9にフェッチされてデコーダ10を
介してこの命令Nが実行され、この実行によって分岐す
べきことおよびその分岐先命令の格納アドレスがkであ
ることが判断され、次の処理サイクル■にこの分岐先命
令の格納アドレスkがセレクタ5を経てプログラムカウ
ンタレジスタ6にラッチされる。
なお、この処理サイクル■ではアドレス(n+3)によ
ってプログラムROMIへのアクセスが行われるが、上
記のように処理サイクル■で分岐することが判断されて
いるので、この処理サイクル■で読出された命令(N+
3)は#llインストラフシランレジスタにはフェッチ
されないで前の命令(N+2)が保持されている。
これによって、その次の処理サイクル■において分岐先
命令KがプログラムROMIから読出されて#lインス
トラクションレジスタ3にフェッチされ、この分岐先命
令には■の処理サイクルに#2のインストラクションレ
ジスタ3にフェッチされた後、処理サイクル■において
#3インストラクションレジスタ9にラッチされてこの
処理サイクルでデコーダ10を介してプロセッサにおけ
る処理が実行される。
したがって、処理サイクル■〜■の期間は分岐先命令K
が#3インストラクションレジスタ9にフェッチされる
のを待つためにプロセッサは処理を行わずに待機するこ
とになり、この期間は無駄な処理サイクルとなる。
〔発明が解決しようとする課題〕
上記のような従来のプログラム処理方式においては、分
岐命令を実行する第5図に示すような場合には、他の命
令を処理するに必要なサイクルよりパイプラインとして
構成されているインストラクションレジスタの段数に相
当するサイクル、上記第5図の例では■〜■の処理サイ
クル、余分な待ち時間を要し、したがって、分岐命令を
多く含むプログラムの場合にはその処理時間が著しく長
くなるという問題があった。
本発明は、分岐命令が含まれていても処理時間が増大す
ることのないプログラム処理方式を得ることを目的とす
る。
〔課題を解決する手段〕
第1図の原理図に示すように、同時かつ独立に読出し可
能なプログラムROMIを用い、このプログラムROM
の読出しアドレスを格納するプログラムカウンタレジス
タ6と、このプログラムROMから読出されたプログラ
ムを格納するパイプライン構成のインストラクションレ
ジスタ3.4とをそれぞれ備える第1、第2のプログラ
ム読出系統A、Bと、一方のプログラム読出系統によっ
て上記プログラムROMから読出された分岐命令が上記
インストラクションレジスタの初段のインストラクショ
ンレジスタ3にフェッチされたとき他方の系統のプログ
ラムカウンタレジスタにこの分岐命令の分岐先アドレス
を転送する手段5とを設けた。
なお、同時かつ独立に読出し可能なプログラムROMと
しては、2ポ一トROMあるいは同一のプログラムRO
Mを2個使用することができる。
〔作 用〕
第1図を参照して本発明によるプログラム処理方式を説
明すると、次に同時読出し可能なプログラムROMIか
ら読出してフェッチすべき命令の読出アドレスを格納す
るプログラムカウンタレジスタ6、連続するアドレスか
ら命令を順次読出すための“1”加算回路7からの読出
アドレスと他方の系統の#1インストラクションレジス
タ3からの読出アドレスすなわち分岐先命令の格納アド
レスとを選択して上記プログラムカウンタレジスタ6に
供給するセレクタ5と、プログラムROM1から読出し
た命令を格納するパイプライン接続された2段のインス
トラクションレジスタ3.4とをそれぞれ備える第1、
第2のプログラム読出系統A、Bを設ける。なお、この
第1図においては、AあるいはBの系統に属する構成要
素には、上記構成要素を示す符号にAあるいはBを付し
て示した。
また、8は上記A系統の#2インストラクションレジス
タ4AあるいはB系統の#2インストラクションレジス
タ4Bからの命令を選択して実行中命令を保持する#3
インストラクションレジスタ9に転送するためのセレク
タであり、10はこの3段目のインストラクションレジ
スタ9に送られた命令をデコードするデコーダであって
、図示しないプロセッサはこのデコーダによってデコー
ドされた命令を実行する。なお、ルックアヘッドデコー
ダIIA、IIBは分岐命令が到来したときに予め分岐
先命令をデコードしておくことによって処理速度を向上
させるためのものである。
第2図は本発明による処理のタイムチャートを示すもの
であって、同図(a)、 (bl、 (C)はA系のプ
ログラムカウンタレジスタ6A、#1インストラクショ
ンレジスタ3Aおよび#2インストラクシテンレジスタ
4Aがそれぞれフェッチしている内容を、また、同図(
di、 (e)、 (f)はB系のプログラムカウンタ
レジスタ6B、#1インストラクションレジスタ3Bお
よび#2インストラクションレジスタ4Bがそれぞれフ
ェッチしている内容を示すものであり、最下段の丸数字
は処理サイクルを示すものである。
処理サイクル■ではプログラムカウンタレジスタ6Aに
は分岐のない通常の命令Mのアドレスmがフェッチされ
ており、次の処理サイクル■ではこのアドレスmによっ
てプログラムROM1から命令Mが読出されて#エイシ
ストラクションレジスタ6Aにフェッチされ、同時に上
記プログラムカウンタレジスタ6Aには処理サイクルご
とに加算器7Aで“1″ずつ加算される読出アドレスに
よって上記の通常命令Mのアドレスmに続くプログラム
ROMIのアドレス(m+1)がフェッチされる。
この通常命令Mに着目して説明を続ければ、この読出さ
れた命令は処理サイクル■には、上記#1インストラク
ションレジスタ3Aにパイプライン接続されている#2
インストラクションレジスタ4Aに、また、処理サイク
ル■にはセレクタ8を経て実行中命令をフェッチする#
3インストラクションレジスタ9へとシフトされ、前述
のようにデコーダ10でデコードされて図示しないプロ
セッサにより命令の処理が実行される。
同様に、処理サイクル■、■でプログラムROM1から
読出された通常命令M、M+1は、処理サイクル■、■
で順次上記#3インストラクションレジスタ9にフェッ
チされ、デコーダ10によってデコードされて図示しな
いプロセッサで処理が実行される。
第2図の例では処理サイクル■にプログラムカウンタレ
ジスタ6Aにフェッチされているアドレスnによって処
理サイクル■でプログラムROMから読出されて#1イ
ンストラクションレジスタ3Aにフェッチされた命令N
は分岐命令であり、この分岐命令Nは次の処理サイクル
■において#2インストラクションレジスタ4Aにシフ
トされるとともに、本発明によって設けられた、このイ
ンストラクションレジスタ4Aからセレクタ5Bを経て
B系のプログラムカウンタレジスタ6Bに至る経路によ
ってこのB系のプログラムカウンタレジスタ6Bにこの
分岐命令Nの分岐先アドレスkがラッチされる。
次の処理サイクル■においては、B系のプログラムカウ
ンタレジスタ6Bにラッチされていた分岐先アドレスk
によってプログラムROMIから分岐先命令Kが読出さ
れてB系の#Iインストラクションレジスタ3Bにフェ
ッチされ、同時にA系では#2インストラクションレジ
スタ4Aにフェッチされていた分岐命令Nがセレクタ8
を経て#3インストラクションレジスタ9にフェッチさ
れ、プロセッサはデコーダ10によってデコードされた
この分岐命令Nの処理を実行する。
この第2図の処理サイクル■によってさらに明らかなよ
うに、本発明によって同時読出可能なプログラムROM
Iを用いたために、実行中の分岐命令Nの処理の結果が
分岐しない場合に次に処理すべき命令(N+1)は、上
記B系による分岐先命令にの読出しと同時にプログラム
ROMIから読出されてA系の#2インストラクション
レジスタ4Aにフェッチされており、また、この分岐命
令Nを処理した結果、分岐する場合に処理すべき命令に
もB系の#1インストラクションレジスタ3Bにフェッ
チされていることは上述のとおりである。
したがって、この分岐命令Nの処理結果が分岐しないで
(N+1)命令を実行する場合には次の処理サイクル■
にこの命令が#3インストラクシシンレジスタ9にフェ
ッチされるので、処理サイクル■における分岐命令Nの
処理に続いて処理サイクル■でこの(N+1)命令を実
行することができる。
もし、この分岐命令Nの処理結果に応じて分岐先命令K
を実行する場合には、次の次の処理サイクル■でこの分
岐先命令が#3インストラクションレジスタ9にフェッ
チされるので、処理サイクル■における分岐命令Nの処
理に続く処理サイクル■ではプロセッサが待機状態にな
るけれどもその次の処理サイクル■でこの分岐先命令K
が実行されるので、プロセッサの待ち期間は1処理サイ
クルで済むようになる。
なお、この処理動作から明らかなように、B系が動作す
るようになると次に到来した分岐命令でA系に戻るまで
は、このB系によって読出された命令が実行される。
〔実施例〕
第3図は本発明を適用したプログラム処理装置の実施例
を示すもので、第1図の原理図における構成要素に対応
する構成要素には第1図と同一の符号を付して示し、こ
れら構成要素の機能・動作についての詳細な説明は省略
する。
この実施例においては、#3インストラクションレジス
タ9にフェッチされている命令によってプログラムRO
MIの読出アドレスが直接指定されたときにこの直接ア
ドレスを上記プログラムROMに供給するためのセレク
タ21A、21Bが設けられている。
また、サブルーチンに分岐したときにメインルーチンに
復帰するためのリターンアドレスをランチするための2
段構成のリターンアドレスラッチ22A、23Aおよび
22B、23Bと、このラッチ23A、23Bからのリ
ターンアドレスをバッファ25を介してバスに送出する
ためのセレクタ24と、このバス上のリターンアドレス
をバッファ26を介してプログラムカウンタレジスタ6
A、6Bに転送するために3人力として第1図の原理図
とは構成が変更されたセレクタ5A’、5B′とを備え
ている。
さらに、プログラムROMIからテーブルが読出された
ときにA系あるいはB系を選択してテーブルラッチ28
に転送してこのテーブルをラッチするためのセレクタ2
7とが追加されており、このテーブルランチにラッチさ
れているテーブルは前記セレクタ24、バッファ25を
介してバスに送出し得るように構成されている。
〔発明の効果〕
本発明によれば、異なるアドレスから同時かつ独立に読
出が可能なプログラムROM、例えば2ポ一トROMあ
るいは同一のプログラムROMを2個、使用することに
よって、1つの処理サイクル期間に2つの命令をこのプ
ログラムROMから独立に読出すことができ、これによ
ってパイプライン構成を有するインストラクションレジ
スタを用いる場合にも分岐のためのプロセッサの待ち時
間を短縮することができるという格別の効果が達成され
る。
M、3.4はパイプライン構成のインストラクションレ
ジスタ、5は分岐先アドレスを転送する手段を構成する
セレクタ、6はプログラムROMの読出しアドレスを格
納するプログラムカウンタレジスタである。

Claims (1)

  1. 【特許請求の範囲】 同時かつ独立に読出し可能なプログラムROM(1)と
    、 このプログラムROMの読出しアドレスを格納するプロ
    グラムカウンタレジスタ(6)と、このプログラムRO
    Mから読出されたプログラムを格納するパイプライン構
    成のインストラクションレジスタ(3、4)とをそれぞ
    れ備える第1、第2のプログラム読出系統と、 一方のプログラム読出系統によって上記プログラムRO
    Mから読出された分岐命令が上記インストラクションレ
    ジスタの初段のインストラクションレジスタ(3)にフ
    ェッチされたとき、他方の系統のプログラムカウンタレ
    ジスタにこの分岐命令の分岐先アドレスを転送する手段
    (5)とを備えることを特徴とするプログラム処理方式
JP23227188A 1988-09-19 1988-09-19 プログラム処理方式 Pending JPH0281131A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23227188A JPH0281131A (ja) 1988-09-19 1988-09-19 プログラム処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23227188A JPH0281131A (ja) 1988-09-19 1988-09-19 プログラム処理方式

Publications (1)

Publication Number Publication Date
JPH0281131A true JPH0281131A (ja) 1990-03-22

Family

ID=16936628

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23227188A Pending JPH0281131A (ja) 1988-09-19 1988-09-19 プログラム処理方式

Country Status (1)

Country Link
JP (1) JPH0281131A (ja)

Similar Documents

Publication Publication Date Title
US5150470A (en) Data processing system with instruction queue having tags indicating outstanding data status
EP0213842A2 (en) Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor
JPH11212786A (ja) レジスタベースデータ処理のためのデータパスおよび方法
JPS61267871A (ja) 情報処理装置
JP3237858B2 (ja) 演算装置
US5522052A (en) Pipeline processor for processing instructions having a data dependence relationship
US12461749B2 (en) Instruction execution method, processor and electronic apparatus
US7376811B2 (en) Method and apparatus for performing computations and operations on data using data steering
US6161171A (en) Apparatus for pipelining sequential instructions in synchronism with an operation clock
JPH05334265A (ja) 情報処理装置および情報処理方法
JP2933848B2 (ja) データ処理装置
JP2001092658A (ja) データ処理回路及びデータ処理装置
JPS61250754A (ja) 簡易型キヤツシユメモリ
JP2581298B2 (ja) メモリアクセス権情報供給機構
JP2000250869A (ja) マルチプロセッサの制御方法およびその装置
GB2322210A (en) Processor having multiple program counters and instruction registers
JPH08235135A (ja) 通信レジスタ付並列計算機
JPS61161509A (ja) 高速シ−ケンス演算方式及びその装置
JPH07210384A (ja) 浮動小数点演算装置
JPH0498426A (ja) マイクロプロセッサ
JPS6086625A (ja) デ−タ処理装置
JPH02103635A (ja) ディジタルシステム
JP2000181714A (ja) 命令制御装置
JPS61237136A (ja) レジスタ制御方式
JPH01188949A (ja) メモリアクセス制御装置