JPS6131896B2 - - Google Patents
Info
- Publication number
- JPS6131896B2 JPS6131896B2 JP12409080A JP12409080A JPS6131896B2 JP S6131896 B2 JPS6131896 B2 JP S6131896B2 JP 12409080 A JP12409080 A JP 12409080A JP 12409080 A JP12409080 A JP 12409080A JP S6131896 B2 JPS6131896 B2 JP S6131896B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- contents
- program counter
- value
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements 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
本発明はプログラム制御装置の改良に関する。
例えばマイクロプログラムのシーケンス制御部
には、ループ制御用のレジスタ又はカウンタ、あ
るいはサブルーチンリンク用の戻り番地格納レジ
スタ又はスタツクなどを設けたものがある。しか
しながら、従来の装置においては、これらが別々
であつたために、特にループ制御においては第1
図aに示す1種類のループパターンにしか適用で
きなつた。 本発明はループとして全てのありうるパターン
に対して高速の繰り返しを実現できるプログラム
制御装置を提供するとを目的とする。 第1図a,b,cは夫々ループパターンを示す
もので、同図bが最も一般形であり、同図aは処
理Bがない場合、同図cは処理Aがない場合に相
当する。 本発明は同図bに等価な第2図aを実現するこ
とができる。当然第1図aとともに第1図cに等
価な第2図bも実現できる。 本発明においては、少なくとも一部の命令とし
て拡張機能を指定するための拡張フイールドを有
する。この拡張フイールドに特定のコードが存在
する場合にループを行なうこことができる。また
通常のサブルーチン呼出し命令の場合のリターン
動作もこの拡張フイールドにより指定するとがで
きる。 第3図に本発明の一実施例としてのマイクロプ
ログラム制御装置のブロツク図を示す。図におい
て、1はマイクロ命令で構成されたマイクロプロ
グラムを収容するマイクロプログラムメモリ
(MPM)、2はMPM1から読み出された実行すべ
きマイクロ命令を格納するマイクロ命令レジスタ
(MIR)、3はMPM1から読み出すべき次に実行す
るマイクロ命令のアドレスを保持するマイクロプ
ログラムカウンタ(MPC)、4は補助レジスタ
(AR)、5はMPC3又はAR4の出力を選択的に
MPM1に供給するためのデータセレクタ
(SEL)、6はSEL5の出力に1を加算する(+
1)回路、7は減算用カウンタ(CNTR)、8は
CNTR7の出力から1を引く(−1)回路、9は
CNTR7の出力が0(a“0”)であることを
検出する検出回路、10はMIR2内のマイクロ命
令を解読して各種制御信号を発生するデコーダ
(DEC)、11は被制御対象であり例えば演算回
路(ALU)等である。 マイクロ命令の、例えばRegister to Register
タイプは第4図に示すように4ビツトの拡張フイ
ールドEを持つ。いま、MIR2内のマイクロ命令
のEフイールドがコード“LOOP”であると、
DEC10は通常の方法で被制御対象を制御する信
号を発生するとともに、EフイールドがLOOPで
あることを検出して線12を介してそのときの
MPC3の値をAR4にセツトする。また本実施例で
はマイクロ命令の実行とマイクロ命令との読出し
とがパイプライン化されてるので、このとき
MPC3自身は(+1)回路6によつて1だけ増加
される(SEL5は通常MPC3の出力を選択してい
る)。 また、MIR2内のマイクロ命令がサブルーチン
コール命令(CALL)であると、DEC10は線13
を介してMPC3の値をAR4にセツトするととも
に、絶4を介してMIR2内の分岐先アドレスを
MPC3にセツトする。 更に、MIR2内のマイクロ命令のEフイールド
がコード“TEX”であると検出回路9が調べら
れる。検出回路9はCNTR7の値が0でなければ
線15が“1”となり、ANDゲート16、ORゲ
ート17を介してSEL5はAR4の出力を選択す
る。したがつて、MPM1からはAR4の内容で指定
されるマイクロ命令が読み出されるとともに、
AR4の値を(+1)回路6によつて1だけ増加し
た値がMPC3にセツトされる。このときCNTR7
の値は(−1)回路8により1だけ減少する。ま
た、DEC10が“TEX”を検出したときにCNTR7
の値が0であると、SEL5はMPC3の出力を選択
するのでMPC3の値は(+1)回路6によつて1
だけ増加する。 また更に、MIR2内のマイクロ命令のEフイー
ルドがコード“RET”である、DEC10は線1
8、ORゲート17を介してSEL5がAR4の出力を
選択するように制御し、MPM1からはAR4の内容
で指定されるマイクロ命令が読み出されるととも
にMPC3にはAR4の値に1を加算した値がセツト
される。 これらの動作により以下に示す多くのループパ
ターンが実現できる。
には、ループ制御用のレジスタ又はカウンタ、あ
るいはサブルーチンリンク用の戻り番地格納レジ
スタ又はスタツクなどを設けたものがある。しか
しながら、従来の装置においては、これらが別々
であつたために、特にループ制御においては第1
図aに示す1種類のループパターンにしか適用で
きなつた。 本発明はループとして全てのありうるパターン
に対して高速の繰り返しを実現できるプログラム
制御装置を提供するとを目的とする。 第1図a,b,cは夫々ループパターンを示す
もので、同図bが最も一般形であり、同図aは処
理Bがない場合、同図cは処理Aがない場合に相
当する。 本発明は同図bに等価な第2図aを実現するこ
とができる。当然第1図aとともに第1図cに等
価な第2図bも実現できる。 本発明においては、少なくとも一部の命令とし
て拡張機能を指定するための拡張フイールドを有
する。この拡張フイールドに特定のコードが存在
する場合にループを行なうこことができる。また
通常のサブルーチン呼出し命令の場合のリターン
動作もこの拡張フイールドにより指定するとがで
きる。 第3図に本発明の一実施例としてのマイクロプ
ログラム制御装置のブロツク図を示す。図におい
て、1はマイクロ命令で構成されたマイクロプロ
グラムを収容するマイクロプログラムメモリ
(MPM)、2はMPM1から読み出された実行すべ
きマイクロ命令を格納するマイクロ命令レジスタ
(MIR)、3はMPM1から読み出すべき次に実行す
るマイクロ命令のアドレスを保持するマイクロプ
ログラムカウンタ(MPC)、4は補助レジスタ
(AR)、5はMPC3又はAR4の出力を選択的に
MPM1に供給するためのデータセレクタ
(SEL)、6はSEL5の出力に1を加算する(+
1)回路、7は減算用カウンタ(CNTR)、8は
CNTR7の出力から1を引く(−1)回路、9は
CNTR7の出力が0(a“0”)であることを
検出する検出回路、10はMIR2内のマイクロ命
令を解読して各種制御信号を発生するデコーダ
(DEC)、11は被制御対象であり例えば演算回
路(ALU)等である。 マイクロ命令の、例えばRegister to Register
タイプは第4図に示すように4ビツトの拡張フイ
ールドEを持つ。いま、MIR2内のマイクロ命令
のEフイールドがコード“LOOP”であると、
DEC10は通常の方法で被制御対象を制御する信
号を発生するとともに、EフイールドがLOOPで
あることを検出して線12を介してそのときの
MPC3の値をAR4にセツトする。また本実施例で
はマイクロ命令の実行とマイクロ命令との読出し
とがパイプライン化されてるので、このとき
MPC3自身は(+1)回路6によつて1だけ増加
される(SEL5は通常MPC3の出力を選択してい
る)。 また、MIR2内のマイクロ命令がサブルーチン
コール命令(CALL)であると、DEC10は線13
を介してMPC3の値をAR4にセツトするととも
に、絶4を介してMIR2内の分岐先アドレスを
MPC3にセツトする。 更に、MIR2内のマイクロ命令のEフイールド
がコード“TEX”であると検出回路9が調べら
れる。検出回路9はCNTR7の値が0でなければ
線15が“1”となり、ANDゲート16、ORゲ
ート17を介してSEL5はAR4の出力を選択す
る。したがつて、MPM1からはAR4の内容で指定
されるマイクロ命令が読み出されるとともに、
AR4の値を(+1)回路6によつて1だけ増加し
た値がMPC3にセツトされる。このときCNTR7
の値は(−1)回路8により1だけ減少する。ま
た、DEC10が“TEX”を検出したときにCNTR7
の値が0であると、SEL5はMPC3の出力を選択
するのでMPC3の値は(+1)回路6によつて1
だけ増加する。 また更に、MIR2内のマイクロ命令のEフイー
ルドがコード“RET”である、DEC10は線1
8、ORゲート17を介してSEL5がAR4の出力を
選択するように制御し、MPM1からはAR4の内容
で指定されるマイクロ命令が読み出されるととも
にMPC3にはAR4の値に1を加算した値がセツト
される。 これらの動作により以下に示す多くのループパ
ターンが実現できる。
【表】
これは第1図aに示すループパターンの例であ
る。100番地のマイクロ命令でCNTR7に(n−
1)がセツトされ、101番地のマイクロ命令の実
行時にMPC3の値(=102)がAR4に移される。
その後104番地のマイクロ命令ではCNTR7の値が
0でない場合にAR4の値+1(=103)がMPC3
にセツトされ同時にMPM1からはAR4の値(=
102)に対応するマイクロ命令が読み出されて
CNTR7の値が1だけ減少する。したがつて102〜
104番地をn回繰り返すことになり、n回目の104
番地マイクロ命令実行時にはCNTR7の値が0と
なつているのでMPM1からはMPC3の値(105)
に対応するマイクロ命令が読み出される。
る。100番地のマイクロ命令でCNTR7に(n−
1)がセツトされ、101番地のマイクロ命令の実
行時にMPC3の値(=102)がAR4に移される。
その後104番地のマイクロ命令ではCNTR7の値が
0でない場合にAR4の値+1(=103)がMPC3
にセツトされ同時にMPM1からはAR4の値(=
102)に対応するマイクロ命令が読み出されて
CNTR7の値が1だけ減少する。したがつて102〜
104番地をn回繰り返すことになり、n回目の104
番地マイクロ命令実行時にはCNTR7の値が0と
なつているのでMPM1からはMPC3の値(105)
に対応するマイクロ命令が読み出される。
【表】
これは第1図aに示すループパターンの特殊な
場合としての1マイクロ命令のみを繰り返し実行
する場合である。202番地マイクロ命令(A1)が
n回実行される。
場合としての1マイクロ命令のみを繰り返し実行
する場合である。202番地マイクロ命令(A1)が
n回実行される。
【表】
… …
これは第2図aに示すループパターンの例であ
る。301番地のサブルーチンコール命令により
AR4にはそのときのMPC3の値(=302)がセツ
トされ、MPC3にはサブルーチンコール命令のA
(=305)がセツトされる。
これは第2図aに示すループパターンの例であ
る。301番地のサブルーチンコール命令により
AR4にはそのときのMPC3の値(=302)がセツ
トされ、MPC3にはサブルーチンコール命令のA
(=305)がセツトされる。
【表】
これはサブルーチンコール、リターンの例であ
る。
る。
【表】
これは第2図bに示すループパターンの例であ
る。 以上のように、本発明によれば、ループのため
の判断分岐の時間が不要であり、高速の繰り返し
アルゴリズムが実現できる。またループとして全
てのありうるパターンに対して高速の繰り返しが
可能である。その特別な場合としてマイクロ命令
のみのループが可能である。更に、ループのため
の先頭番地の格納レジスタとサブルーチンコール
用の戻り番地格納レジスタが共通となつているの
でハードウエア量が少ない利点がある。 本発明は上記実施例に限定されるものではな
い。特に上記実施例ではマイクロプログラムを例
として示したが、直接実行型の機械語プログラ
ム、ナノプログラム、ピコプログラムにも適用で
きる。
る。 以上のように、本発明によれば、ループのため
の判断分岐の時間が不要であり、高速の繰り返し
アルゴリズムが実現できる。またループとして全
てのありうるパターンに対して高速の繰り返しが
可能である。その特別な場合としてマイクロ命令
のみのループが可能である。更に、ループのため
の先頭番地の格納レジスタとサブルーチンコール
用の戻り番地格納レジスタが共通となつているの
でハードウエア量が少ない利点がある。 本発明は上記実施例に限定されるものではな
い。特に上記実施例ではマイクロプログラムを例
として示したが、直接実行型の機械語プログラ
ム、ナノプログラム、ピコプログラムにも適用で
きる。
第1図a,b,c及び第2図a,bはループパ
ターンを示す図、第3図は本発明の一実施例を示
すブロツク図、第4図はマイクロ命令のフオーマ
ツトを示す図である。 1…マイクロプログラムメモリ、2…マイクロ
命令レジスタ、3…マイクロプログラムカウン
タ、4…補助レジスタ、5…データセレクタ、7
…減算用カウンタ、9…検出回路、10…デコー
ダ。
ターンを示す図、第3図は本発明の一実施例を示
すブロツク図、第4図はマイクロ命令のフオーマ
ツトを示す図である。 1…マイクロプログラムメモリ、2…マイクロ
命令レジスタ、3…マイクロプログラムカウン
タ、4…補助レジスタ、5…データセレクタ、7
…減算用カウンタ、9…検出回路、10…デコー
ダ。
Claims (1)
- 1 拡張機能を指定する拡張フイールドを有する
命令を少なくとも一部として含む命令群を収容す
る記憶装置と、この記憶装置から取り出された実
行すべき命令を格納する命令レジスタと、次に実
行すべき命令の格納アドレスを保持するプログラ
ムカウンタと、前記命令レジスタの内容を解読す
るデコーダと、前記プログラムカウンタに接続さ
れた補助レジスタと、プログラムの流れを示す情
報を収容した条件レジスタと、この条件レジスタ
の内容を検出して判断分岐を行なう手段と、前記
デコーダにより前記命令レジスタ内の命令の拡張
フイールドに第1のコードがあることを検出した
ときに前記プログラムカウンタの内容を前記補助
レジスタへ移す手段と、前記デコーダにより前記
命令レジスタ内の命令がサブルーチン呼出し命令
であることを検出したときに前記プログラムカウ
ンタの内容を前記補助レジスタへ移すとともにサ
ブルーチンの先頭アドレスを前記プログラムカウ
ンタにセツトする手段と、前記デコーダにより前
記命令レジスタ内の命令の拡張フイールドに第2
のコードがあることを検出したときに前記判断分
岐手段が分岐を指定している場合には前記補助レ
ジスタの内容に対応する命令を前記記憶装置から
読み出すとともに前記補助レジスタの内容を歩進
させた値を前記プログラムカウンタにセツトする
手段と、前記デコーダにより前記命令レジスタ内
の命令の拡張フイールドに第3のコードがあるこ
とを検出したときに前記補助レジスタの内容に対
応する命令を前記記憶装置から読み出すとともに
前記補助レジスタの内容を歩進させた値を前記プ
ログラムカウンタにセツトする手段とを備えたと
を特徴とするプログラム制御装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP12409080A JPS5750051A (en) | 1980-09-09 | 1980-09-09 | Program controller |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP12409080A JPS5750051A (en) | 1980-09-09 | 1980-09-09 | Program controller |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS5750051A JPS5750051A (en) | 1982-03-24 |
| JPS6131896B2 true JPS6131896B2 (ja) | 1986-07-23 |
Family
ID=14876672
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP12409080A Granted JPS5750051A (en) | 1980-09-09 | 1980-09-09 | Program controller |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS5750051A (ja) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS607536A (ja) * | 1983-06-24 | 1985-01-16 | Mitsubishi Electric Corp | 情報処理装置 |
| JPS60132242A (ja) * | 1983-12-20 | 1985-07-15 | Matsushita Electric Ind Co Ltd | プログラム制御装置 |
| JP2584156B2 (ja) * | 1990-09-03 | 1997-02-19 | 松下電器産業株式会社 | プログラム制御型プロセッサ |
| WO2009157036A1 (ja) * | 2008-06-24 | 2009-12-30 | 富士通株式会社 | 情報処理装置及び制御方法 |
-
1980
- 1980-09-09 JP JP12409080A patent/JPS5750051A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS5750051A (en) | 1982-03-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4181942A (en) | Program branching method and apparatus | |
| US4179731A (en) | Microprogrammed control system | |
| GB1426748A (en) | Small micro-programme data processing system employing multi- syllable micro instructions | |
| US5008807A (en) | Data processing apparatus with abbreviated jump field | |
| EP0378415A2 (en) | Multiple instruction dispatch mechanism | |
| KR0163179B1 (ko) | 데이타 프로세서 | |
| JPS6131896B2 (ja) | ||
| KR940006916B1 (ko) | 선택적 캐쉬 메모리를 가진 마이크로프로세서 | |
| EP0240606A2 (en) | Pipe-line processing system and microprocessor using the system | |
| JP2520882B2 (ja) | デ−タ処理装置およびデ−タ処理方法 | |
| KR940009377B1 (ko) | 정보처리 장치 | |
| JP2637070B2 (ja) | マイクロ命令先頭アドレス生成方式 | |
| JPS5520534A (en) | Data processor | |
| EP0167333A2 (en) | Data processing apparatus with data type classifier | |
| KR100381876B1 (ko) | 프로그램카운팅시스템및카운터의동작방법 | |
| JPH0375904B2 (ja) | ||
| JPS5474338A (en) | Information processor | |
| JPS55115159A (en) | Information processing unit | |
| JPS5694438A (en) | Microprogram control type data processing device | |
| JPS6131895B2 (ja) | ||
| JPS55103651A (en) | Information processing system | |
| JPH0517574B2 (ja) | ||
| JPS6250855B2 (ja) | ||
| JPH0378834A (ja) | データ処理方式 | |
| JPS56155448A (en) | Information processor |