JPH058451B2 - - Google Patents

Info

Publication number
JPH058451B2
JPH058451B2 JP60101088A JP10108885A JPH058451B2 JP H058451 B2 JPH058451 B2 JP H058451B2 JP 60101088 A JP60101088 A JP 60101088A JP 10108885 A JP10108885 A JP 10108885A JP H058451 B2 JPH058451 B2 JP H058451B2
Authority
JP
Japan
Prior art keywords
loop
register
processing
stack
instruction
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.)
Expired - Lifetime
Application number
JP60101088A
Other languages
English (en)
Other versions
JPS61259339A (ja
Inventor
Koichi Kimura
Toshihiko Ogura
Hiroaki Aotsu
Mitsuru Ikegami
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP10108885A priority Critical patent/JPS61259339A/ja
Publication of JPS61259339A publication Critical patent/JPS61259339A/ja
Publication of JPH058451B2 publication Critical patent/JPH058451B2/ja
Granted 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、マイクロプログラム等の実行順序制
御を行うシーケンス制御装置に係り、特に多重ネ
ストするDOループ処理に好適なハードウエア構
成に関する。
〔発明の背景〕
本発明が対象とするプロセツサーの一例とし
て、マイクロプロセツサの内部構成を第3図に示
す。第3図において、10はマイクロプログラム
の流れを制御するシーケンサ部、20はマイクロ
プログラムが格納されているマイクロプログラム
メモリ部、30はマイクロプログラムメモリ部2
0の1マイクロ命令を一時的に格納するレジスタ
部、40は主に演算を実行する演算部である。レ
ジスタ部30のマイクロ命令は、シーケンサ部1
0の動作を制御するシーケンサ命令SIと演算部4
0の動作を制御する演算実行命令AIとで構成さ
れる。ADRはシーケンサ部10が出力するマイ
クロプログラムメモリ部20のアドレス、MIは
アドレスADRで選択されたメモリ部20の中の
1マイクロ命令、STSは演算部40の実行状態、
例えばキヤリー、オーバフロー或いは正/負等を
表わすステータス、DTはシーケンサ部10内に
情報をセツトするためのデータである。こゝで、
本発明はシーケンサ部10に係わる。
第4図はシーケンサ部10の従来の構成例を示
したものである。第4図において、401はデコ
ーダであり、コード化されたシーケンサ命令SIを
デコードしてシーケンサ部10の内部ハードウエ
アの制御信号を生成する。402はレジスタであ
り、レジスタ部30にセツトされたマイクロ命令
MI(現実行マイクロ命令)のマイクロプログラム
メモリ部20上のアドレスを加算器403でイン
クリメント(+1)した結果(次の実行マイクロ
命令のアドレス)を格納する。404はLIFO
(Last In First Out)構造をとるスタツク、40
5は−1する減算器、406は減算器405でデ
クリメントした結果を格納するカウントレジス
タ、407はカウントレジスタ406の内容がゼ
ロであることを検出するゼロ検出器、408,4
09はセレクタである。セレクタ408は演算部
40のデータDT(ループ回数)あるいは減算器
405の出力のいずれかを選択し、セレクタ40
9はデータDT(ジヤンプ先アドレス)、あるいは
レジスタ402、スタツク404の出力のいずれ
かを選択する。セレクタ409の出力がアドレス
ADRとしてマイクロプログラムメモリ部20に
与えられ、次に実行すべきマイクロ命令MIがメ
モリ部20より読み出される。
第4図の従来のシーケンサ部を用いた場合のル
ープ制御の一例を第5図及び第6図を用いて説明
する。
第5図はシーケンサ命令SIの流れ(ステツプ
S0〜S10)を表わしたもので、LOOP命令(S7)
によつてn回ループする場合を示している。通
常、DOループ処理を実行するには、第5図に示
した様に前処理(S1、S2)が必要となる。ステ
ツプS1はカウントレジスタ(CNT)406への
ループ回数nのセツト処理、ステツプS2はルー
プするためのリターンアドレス(Next ADR)
のスタツク(STK)404への退避(PUSH)
である。このステツプS2におけるPUSH動作は、
レジスタ(NPC)402の値のスタツク404
への退避処理を実行することである。こゝで、レ
ジスタ402の値は、現在のアドレスADRに1
を加算器403で加算した結果である次のアドレ
スを指している。従つて、スタツク404に入る
内容は、ステツプS3のアドレスの値となる。ま
た、ステツプS7のLOOP命令は、ソフトウエア的
に記述すると第6図の如く表わすことができる。
すなわち、カウントレジスタ(CNT)406の
内容をチエツクし、もし、内容がゼロでなけれ
ば、カウントレジスタ406の内容を−1し、セ
レクタ409はスタツク(STK)404を選択
し、アドレスADRはステツプS3のアドレス
((Next ADR:NPC)の値となる。従つて、次
のマイクロ命令MIによる実行は再びステツプS3
からとなるループを行うことになる。カウントレ
ジスタ(CNT)406の内容がゼロとなると、
スタツク(STK)404を戻して(POP)、セレ
クタ409は次に実行するマイクロアドレスが格
納されているレジスタ(NPC)402を選択し、
ステツプS8の実行に入る。
この様に、第4図に示した従来のシーケンサ部
では1つのカウントレジスタ406を用いてDO
ループ処理の制御を行つている。
ところで、第7図に示すような矩形画像の描画
処理を考えると、多重ネスト処理、すなわち多重
DOループ処理が必要となる。第7図において、
701は画像領域、702は画像を描画する描画
領域、lは描画する画像データの1ラスタ分の展
開ワード数、mは展開ラスタ数、nはワード単位
のビツト数である。この様に、1ラスタがlワー
ド(nビツト/1ワード)のひも状の画像データ
をmラスタ分展開して矩形画像を描画するには、
第8図に示す様にDOループ処理は必然的に多重
構成をとらざるを得ない。第8図において、ステ
ツプP1はラスタ単位の先頭アドレス算出処理、
ステツプP2はメモリアクセス(リード)処理、
ステツプP3は例えばビツト単位の演算処理、ス
テツプP4はメモリアクセス(ライト)及び次に
アクセスするワードアドレス算出処理であり、ス
テツプLP1はnビツトのデータ処理をワード単位
で管理する3ビツト判定、ステツプLP2はlワー
ド分のメモリアクセス処理をラスタ単位で管理す
るワード判定、ステツプLP3はlワードで構成さ
れた展開データのmラスタ分展開管理を行うラス
タ判定である。
この様に2次元で構成される画像データを展開
するには、各ビツト、ワード、及びラスタ単位に
処理の分割、構造化を図つた多重DOループ制御
によるプログラミングが通常用いられている。
しかし、従来のシーケンサ部は、第4図で示し
た様にDOループを制御するためのカウントレジ
スタ(CNT)が1つのため、上述した多重DOル
ープ処理を実現しようとすると、第9図の如く、
複雑なループ管理のための処理構成をとる必要が
ある。第9図において、IM1〜IM3は外部メモ
リに配置された各ループ回数の初期値l、m、n
を格納するメモリ部、TM1、TM2は各ループ
回数l、mのカウント経過値l′、m′を格納するカ
ウントメモリ部(初期値としてはl′=l、m′=m
となつている)である。P1〜P4及びLP1〜LP3
は第8図と同様であり、S1はメモリIM3からル
ープ回数nをリードする処理ステツプ、S2はス
テツプS1でリードしたループ回数nをCNTに格
納するステツプ、S3はメモリTM1からループ経
過値l′をリードする処理ステツプ、S4はステツプ
S3でリードした経過値l′をCNTに格納するステ
ツプ、S5はCNTに残る経過値l′をメモリTM1に
退避するステツプ、S6はメモリTM2からループ
経過値m′をリードする処理ステツプ、S7はステ
ツプS6でリードした経過値m′をCNTに格納する
ステツプ、S8はCNTに残る経過値m′のメモリ
TM2への退避及びメモリIMIにあるループ初期
値lをメモリTM2へ転送して再設定するステツ
プである。
以上述べたように、従来のシーケンサ構成で
は、多重ループ処理を実現するうえで次のような
欠点がある。
(1) ループ管理が複雑となり、且つ処理ステツプ
数が増加する。
(2) 上記増加分のステツプはその殆んどが外部メ
モリアクセスのため、マルチプロセツサ構成を
意識した場合、バス負荷が重くなりバス効率が
低下する。
(3) 上記(2)の欠点を補うため内部レジスタ等を用
いた場合には、多重DOループ処理終了までは
内部レジスタはリザーブとなり、従つて本来の
演算或いはデータ処理等でのレジスタ使用が不
可能となる。
なお、この種の処理を行う装置として関連のあ
るものとしては、ADVANCED
MICRODEVICES社のMicroprogram
Sequencer Am 2912等が挙げられる。
また、例えば、特開昭60−20242号公報には、
リターンアドレス用のスタツクメモリとは別にル
ープ回数用のスタツクメモリを用意して、多重
DOループ制御の処理ステツプ数を短縮すること
が記載されているが、二つのスタツクメモリを独
立に持つ必要があるため、ハードウエアの複雑化
は免れない。
〔発明の目的〕
本発明の目的は、マイクロプログラム等の実行
順序制御を行うシーケンス制御装置において、多
重DOループ制御を簡単なハードウエアの追加で
実現することにある。
〔発明の概要〕
多重DOループ処理は、例えば内側のループか
ら外側のループに処理が移行する場合、ループの
途中で移行することは無く、シーケンシヤルな処
理の移行を行う。すなわち、多重ループ制御に必
要な情報はスタツク操作で管理可能である。ま
た、ループ処理に必要な情報は、ループするため
のリターンアドレスとループ回数の2つの情報が
対で必要となる。さらに、ループ内の処理は、通
常、その中で処理がクローズされていることが前
提となつている。
このような点に着目して、本発明の実施例で
は、従来のようにループ処理のためのカウントレ
ジスタを独立に持つことはせず、通常のスタツク
に更に2つのレジスタを追加して、上記2つのル
ープ処理用の情報が格納できるようにする。そし
て、追加した2つのレジスタのうち、一方のレジ
スタには専用の減算器を設けてループカウントレ
ジスタ相当の専用レジスタとし、他方のレジスタ
はループのためのリターンアドレスを格納する専
用レジスタとする。スタツクと2つの追加したレ
ジスタは連動してLIFO(Last In First Out)構
成のスタツクとして動作させ、減算器に減算モー
ドと減算を実行しないパスモードの2つを持たせ
る。
〔発明の実施例〕 以下、本発明の一実施例を第1図及び第2図を
用いて説明する。
第1図は本発明によるループ制御部の一実施例
を示し、第4図のシーケンサ部10においてスタ
ツク404に置き換つて用いられるものである。
第1図において、101はループのためのリター
ンアドレスを格納するためのレジスタ、102は
ループ回数を格納するレジスタ、103はレジス
タ102の内容から1を減ずる減算器、104は
スタツクであり、データの流れはスタツク104
及びレジスタ101,102を含めて全体として
LIFOを形成している。105はデータDT或い
はデータPD1の何れか一方を選択するセレクタ
で、SL1はセレクタ105の選択を指示する選
択信号である。また、106はデータPD1、デ
ータRA或いはデータPD2の何れか1つを選択
するセレクタで、SL2はセレクタ106の選択
を指示する選択信号である。MDは減算器103
が持つ減算モードと減算を実行しないパスモード
を指示するモード信号、LTCはレジスタ101,
102及びスタツク104へのデータラツチタイ
ミング信号である。
次に、第1図のハードウエア構成を用いた場合
の多重DOループ処理として、2重DOループ処
理を例に説明する。
第2図は2重DOループ処理における第1図の
動作例を示したもので、スタツク104及びレジ
スタ101,102を含むデータ格納エリアの深
さは10としている。第2図において、SI1〜SI
9は第1図のループ制御部が存在するシーケンサ
部10に対するシーケンサ命令SIの一部で、こゝ
では該ループ制御部に対する命令を示していると
する。SI1は外側のループ回数lをスタツクする
ための命令、SI2は外側のループリターンアドレ
スAをスタツクするための命令、SI3は内側のル
ープ回数mをスタツクするための命令、SI4は内
側のループリターンアドレスBをスタツクするた
めの命令である。SI5は内側のループを制御する
命令であり、その処理動作としては、レジスタ1
02の内容がm≠0のときにはm=m−1を実行
して、レジスタ101にあるリターンアドレスB
の番地へループし、m=0のときループを完了し
て次の命令実行に移行する。このm=0のとき
POP動作を同時に実行する。SI6は既に不用と
なつた内側のループ回数m(=0)をPOPする命
令で、次に実行すべき外側のループのための2つ
の制御情報(A、l)を各々レジスタ101,1
02へセツトするための命令である。SI7は命令
SI5と同様に外側のループを制御する命令であ
り、レジスタ102の内容がl≠0のときにはl
=l−1を実行してレジスタ101の内容Aをリ
ターンアドレスRAとしてループし、l=0のと
きにループを完了して次の命令実行に移行する。
また、このl=0のとき、POP動作を同時に実
行する。SI8は、既に不用となる外側のループ回
数l(=0)をPOPする命令である。
以下、上記命令SI1〜SI9の各処理ステツプに
ついて、第1図のハードウエア構成と関連づけて
説明する。
命令SI1、SI2の処理ステツプでは、演算部4
0からデータDTとして与えられる外部のループ
処理を行う制御情報のループ回数l、リターンア
ドレスAをセレクタ105,106を介し、スタ
ツク104とシリアルに連結されているレジスタ
102,101に順次PUSHする。次の命令SI
3、SI4では、同様に演算部40からデータDT
として与えられる内部のループ処理に必要なルー
プ回数m、リターンアドレスBをレジスタ10
2,101にPUSHする。この時、レジスタ10
2,101に格納されていたl、Aは、減算器1
03をそのまゝ素通りしてスタツク104に
PUSHされる。
次の命令SI5の処理ステツプでは、レジスタ1
02の内容mをチエツクし、m≠0のときは減算
器103を減算モードにしてm=m−1を実行
し、結果をセレクタ106を介してレジスタ10
2に再格納すると共に、レジスタ101に格納さ
れているリターンアドレス(RA)Bの番地ヘル
ープする。本例の場合、自命令SI5の処理ステツ
プにループする。命令SI5をm回実行してレジス
タ102の内容mがゼロ(ZR)になると、内側
ループを抜け、次の命令SI6の処理ステツプに移
行する。この時、POP動作を同時に実行して、
レジスタ102の内容m(たゞし、m=0)を減
算器103、セレクタ105の経路でレジスタ1
01に格納し、スタツク104に格納されている
外側ループのリターンアドレスAをセレクタ10
6経由でレジスタ102に格納する。
次の命令SI6の処理ステツプでは、レジスタ1
02の内容Aを減算器103、セレクタ105の
経路でレジスタ101に格納し、スタツク104
に格納されている外側ループのループ回数lをセ
レクタ106経由でレジスタ102に格納する。
次の命令SI7の処理ステツプでは、レジスタ1
02の内容lをチエツクし、l≠0のときは減算
器103で−1して、結果をセレクタ106を介
してレジスタ102に再格納すると共に、レジス
タ101に格納されているリターンアドレスAの
番地へループする。本例の場合、命令SI3の処理
ステツプにループする。外側ループの処理をl回
実行してレジスタ102の内容がゼロ(ZR)に
なると、外側ループも抜け、次の命令SI8の処理
ステツプに移行する。同時にPOP動作を実行し
て、レジスタ102のl(たゞし、l=0)を減
算器103、セレクタ105の経路でレジスタ1
01に格納し、レジスタ101に格納されていた
内容Aを捨てる。次の命令SI8の処理ステツプで
は、レジスタ101の内容をPOPし、命令SI9
に進む。
なお、第2図は2重DOループ処理の例である
が、3重、4重あるいはそれ以上のDOループ処
理についても同様であり、本実施例の構成では5
重DOループ処理まで可能である。
〔発明の効果〕
以上の説明から明らかな如く、本発明によれ
ば、次のような効果が達成される。
(1) 従来は困難であつた多重DOループ制御が簡
単なハードウエアの追加のみで可能となる。
(2) 従来のソフトウエアでサポートしていた多重
ループ制御(カウント経過値の退避等のソフト
ウエア処理)がハードウエアによりサポートさ
れるため、ループ管理が非常に簡単化される。
(3) メモリアクセスが不要となるため、マルチプ
ロセツサ構成としても、多重DOループ制御の
ために生じるバス効率が低下することはない。
(4) 従来のリターンアドレス用のスタツクメモリ
とループ回数用のスタツクメモリとをそれぞれ
独立に用意するものに比べ、ハードウエアの簡
単化は極めて顕著である。
【図面の簡単な説明】
第1図は本発明の一実施例の構成図、第2図は
第1図による動作例を示す図、第3図は本発明で
対象とするプロセツサの全体構成図、第4図は第
3図のシーケンサ部の従来の構成例を示す図、第
5図はシーケンサ命令の流れを示す図、第6図は
ループ命令の処理を説明する図、第7図は矩形画
像の描画処理を説明する図、第8図は第7図にお
ける多重DOループ処理を示す図、第9図は第8
図の多重DOループ処理を実現する従来例を示す
図である。 10……シーケンサ部、20……マイクロプロ
グラムメモリ部、30……レジスタ部、40……
演算部、101,102……レジスタ、103…
…減算器、104……スタツク。

Claims (1)

  1. 【特許請求の範囲】 1 多重DOループのプログラムの実行順序を制
    御するシーケンス制御装置において、 現実行中のループのリターンアドレスを保持す
    る第1レジスタ部と、現実行中のループのループ
    回数を保持する第2レジスタ部と、 1回のループの処理毎に前記第2レジスタ部の
    内容を減算して該第2レジスタ部に再設定する演
    算回路と、 現実行中以外のループのリターンアドレスとル
    ープ回数を対の形で保持するスタツクメモリと、 多重DOループ処理を行う際に、各ループのリ
    ターンアドレスとループ回数を第1及び第2レジ
    スタ部を通しスタツクメモリへプツシユして実行
    順に格納し、最初に実行すべきループのリターン
    アドレスとループ回数は前記第1及び第2レジス
    タ部に設定し、DOループ処理で前記第2レジス
    タ部の内容が零になる毎に、前記スタツクメモリ
    の内容をポツプして、次に実行すべきループのリ
    ターンアドレスとループ回数を前記第1及び第2
    レジスタ部に設定する手段と、 を有することを特徴とするシーケンス制御装置。
JP10108885A 1985-05-13 1985-05-13 シ−ケンス制御装置 Granted JPS61259339A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10108885A JPS61259339A (ja) 1985-05-13 1985-05-13 シ−ケンス制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10108885A JPS61259339A (ja) 1985-05-13 1985-05-13 シ−ケンス制御装置

Publications (2)

Publication Number Publication Date
JPS61259339A JPS61259339A (ja) 1986-11-17
JPH058451B2 true JPH058451B2 (ja) 1993-02-02

Family

ID=14291339

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10108885A Granted JPS61259339A (ja) 1985-05-13 1985-05-13 シ−ケンス制御装置

Country Status (1)

Country Link
JP (1) JPS61259339A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6458023A (en) * 1987-08-28 1989-03-06 Ricoh Kk Microprogram controller

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59100957A (ja) * 1982-11-30 1984-06-11 Fujitsu Ltd ル−プ制御方式
JPS6020242A (ja) * 1983-07-15 1985-02-01 Sony Corp プログラム制御回路

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59100957A (ja) * 1982-11-30 1984-06-11 Fujitsu Ltd ル−プ制御方式
JPS6020242A (ja) * 1983-07-15 1985-02-01 Sony Corp プログラム制御回路

Also Published As

Publication number Publication date
JPS61259339A (ja) 1986-11-17

Similar Documents

Publication Publication Date Title
CA1176757A (en) Data processing system for parallel processings
JPS61139866A (ja) マイクロプロセツサ
JPH10187661A (ja) コンピュータにおけるスカラ値をベクトルに記入する方法
JPH0248931B2 (ja)
CA1037159A (en) Processing link control system for data processing equipment
JPH058451B2 (ja)
JPH05197619A (ja) マルチcpu用メモリ制御回路
EP0542318B1 (en) Digital processor and method for controlling the same
EP0359192B1 (en) Vector processors and vector register control
US6029210A (en) Memory initialization system selectively outputting a data between a normal data stored in the memory and a fixed value according to a registered access state
JPS6065342A (ja) マイクロコンピユ−タ
JPS6148174B2 (ja)
JP2731740B2 (ja) 通信レジスタ付並列計算機
JPS5999551A (ja) アドレス生成回路
JP2982129B2 (ja) マイクロプログラム制御装置
JPS6126699B2 (ja)
JP2504535B2 (ja) バスユニットの構成方法
JPH0512107A (ja) プログラム実行方式
JPH0338612B2 (ja)
JPH04117526A (ja) マイクロプログラム制御装置
JPH0784963A (ja) Cpuを有する半導体集積回路
JPH03242742A (ja) メモリアドレス制御装置
JPH0810429B2 (ja) マイクロプログラム制御装置
JPS59231788A (ja) 電子計算機
JPS593641A (ja) マイクロプログラム制御装置