JPH03168832A - 分散型マイクロプログラム制御方式 - Google Patents

分散型マイクロプログラム制御方式

Info

Publication number
JPH03168832A
JPH03168832A JP30976289A JP30976289A JPH03168832A JP H03168832 A JPH03168832 A JP H03168832A JP 30976289 A JP30976289 A JP 30976289A JP 30976289 A JP30976289 A JP 30976289A JP H03168832 A JPH03168832 A JP H03168832A
Authority
JP
Japan
Prior art keywords
control
microprogram
circuit
arithmetic
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.)
Pending
Application number
JP30976289A
Other languages
English (en)
Inventor
Takeshi Morisada
森定 剛
Hideshi Ishii
石井 英志
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.)
NEC Corp
NEC Computertechno Ltd
Original Assignee
NEC Corp
NEC Computertechno 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 NEC Corp, NEC Computertechno Ltd filed Critical NEC Corp
Priority to JP30976289A priority Critical patent/JPH03168832A/ja
Publication of JPH03168832A publication Critical patent/JPH03168832A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 技術分野 本発明はマイクロプログラム制御方式に関し、特に複数
の漬算回路の各々に対応して分散配置された制御記憶内
のマイクロプログラムにより対応する演算回路を制御す
る分散型マイクロプログラム制御方式に関するものであ
る。
従来技術 超大型汎用コンピュータの中央処理装置(CPU)のよ
うに複雑な制御を必要とするとともに特に高速性を要求
されるような装置では、演算回路のハードウエア量はか
なり大きなものとなり、演算のタイプ(固定小数点演算
、浮動小数点演算、可変長データ演算など)により専用
化された複数のlfrL算回路を持つのが一般的である
マイクロプログラム制御を採用している装置の場合、演
算回路のハードウエア量の増加に伴って制御記憶の容量
も増大し、これらの複数の演算回路を1つのマイクロプ
ログラム制御装置により制御することは、上記の高速性
を実現するための大きな制約となってきている。主とし
てこれは制御記憶の容量が増大するにつれて物理的に大
きなエリアを占めることになり、演算回路からの距離が
遠くなるため、制御信号の伝播時間が大きくなることに
起因している。
上記の制約は、各々の演算回路をそれぞれに対応し、独
立に動作可能な複数のマイクロプログラム制御装置によ
って制御することにより解除される。その理由は、マイ
クロプログラム制御装置を複数に分割することにより各
々のマイクロプログラム制御装置を構或する制御記憶の
容量を小さくし、したがって1つ1つのマイクロプログ
ラム制御装置の物理的大きさを゜小さくできるとともに
、それらを各演算回路の近傍に配置することができるた
め、制御信号の伝播時間を小さくすることが可能となる
からである。
一方、このような「分散型マイクロプログラム制御方式
」には1つの欠点がある。それは従来1つであった制御
記憶を複数に分割することにより生ずる分割損の問題で
ある。制御記憶として必要な容量あるいはマイクロプロ
グラムのステップ数は、これによって制御される演算回
路で処理されるべき機能の複雑さによって決まってくる
。演算回路が専用化され、複数に分割された場合、それ
ぞれの演算回路で処理されるべき機能の複雑さにはばら
つきがあり、必要とされるマイクロプログラムのステッ
プ数も当然のことながら光なってくる。
しかしながら、制御記憶を構戊する記憶素子(ROMま
たはRAM)の性質上、記憶容量として選択できるのは
ある規則性を持ったt11(立(たとえばIKワード、
2Kワードなど)によって規定される大きさとならざる
を得ない。この結果、複数の制御記憶のうちのあるもの
には多くの未使用領域ができ、またあるものには未使用
領域がほとんど無いといった使用率の片寄りが発生する
制御記憶の未使用領域がほとんど無いと予想される様な
場合には、将来の機能拡張やマイクロプログラムのバグ
の修正などによって、最悪の場合、必要とされるマイク
ロプログラムのステップ数が制御記憶の容量をオーバし
てしまうことも考えられるため、制御記憶は予め余裕を
持った容量すなわちある程度の未使用領域が確保できる
ことを前提とした容量で設計される必要がある。
このように、従来の分散型マイクロプログラム制御方式
においては、制御記憶を複数に分割することにより制御
記憶全体として必要以上の未使用雨域が不可避的に生じ
るため、制御記憶全体としてのハードウエア量が増加す
るという欠点がある。
発明の目的 本発明の目的は、制御記憶の容量を有効に使用するよう
にして制御記憶全体としてのハードウエア量を減少せし
め得るようにした分散型マイクロプログラム制御方式を
提供することである。
発明の構或 本発明によれば、複数の演算回路に夫々対応して複数の
制御記憶を設け、各々の制御記憶に格納されているマイ
クロプログラムにより対応する演算回路を制御するよう
にした分散型マイクロプログラム制御方式であって、1
の演算回路を制御すべきマイクロプログラムの一部を、
前記1の演算回路に対応する制御記憶以外の他の制御記
憶に格納しておき、当該マイクロプログラムの実行要求
に応答して、前記他の制御記憶から読出した当該マイク
ロプログラムを、前記1の演算回路へ転送制御するよう
にしたことを特徴とする分散型マイクロプログラム制御
方式が得られる。
実施例 次に本発明の一実施例について図面を参照して説明する
第1図は本発明の分散型マイクロプログラム11リ御方
式を実現するためのCPUのブロック図である。メイン
メモリはソフトウエアの命令、演算データその他の制御
データを格納している。キャッシュメモリ2はメインメ
モリ1の内容の一部を高速メモリにバッファリングして
CPUからメインメモリ1に対するアクセスを高速化す
ると共に、CPUとメインメモリ1との間のデータ転送
の制御を行なう。命令レジスタ3はキャッシュメモリ2
から読出された実行すべきソフトウエア命令を保持する
レジスタである。
先行制御ユニット4は命令レジスタ3に保持されたソフ
トウエア命令をデコードし、命令の実行に先立って実行
に必要なオペランドや制御情報などの準備を行なう。マ
イクロアドレス発生回路5は命令レジスタ3に格納され
ているソフトウエア命令の命令コードをもとに、その命
令の実行開始時に制御紀憶8または制御紀憶9から最初
に読出すべきマイクロ命令のアドレスを作成する回路で
ある。
マイクロアドレス制御回路6および7はそれぞれ制御記
憶8および9に与える読出しアドレスを制御するための
回路である。それぞれのソフトウェア命令を実行するマ
イクロプログラムの最初のステップを読出す時には、マ
イクロアドレス発生回路5から与えられるアドレスがそ
のまま制御記憶8および9に与えられ、マイクロプログ
ラムの2ステップ目以降のアドレスは制aRI 紀憶8
および9の出力であるマイクロ命令の「次アドレスフィ
ールド」により指定される。
制御記憶8および9はそれぞれ演算回路13および14
を制御するためのマイクロプログラムを格納している。
マイクロ命令レジスタ11および12は制御記憶8およ
び9から読出されたマイクロ命令を格納するレジスタで
ある。セレクタ10はマイクロ命令レジスタ11へ格納
するマイクロ命令の選択を行なうためのもので、通常の
場合には制御記憶8から読出されたマイクロ命令を選択
し、後で述べるように特別の場合にはマイクロ命令レジ
スタ12の出力を選択する。
演算回路13は固定小数点演算を実行するための回路で
あり、演算回路14は浮動小数点演算または可変長デー
タ演算を実行するための回路である。セレクタ15は演
算回路13または14からキャッシュメモリ2へ転送す
るデ,一夕の選択を行う回路である。
デコーダ16は命令レジスタ3に格納されている命令の
命令コードをデコードし、予め決められている特別の命
令の場合に“1”を出力する。フリップフロップ17は
デコーダ16の出力をセットする。抑止回路18はマイ
クロ命令レジスタ12の出力が演算回路14を制御する
のを無効とする機能を有する。セレクタ10と抑止回路
18はフリッププロップ17の出力によって制御を受け
る。
次に本実施例において本発明がどの様に適用されている
かを第2〜4図を参照しつつ順を追って説明する。制御
記憶8には演算回路13によって実行される固定小数点
演算命令用のマイクロプログラムが格納されている。演
算回路13により実行すべき命令が命令レジスタ3にセ
ットされると、先行制御ユニット4によりオペランドの
アドレス計算および取出しが行なわれ、取出されたオペ
ランドはキャッシュメモリ2から信号線101を経由し
て演算回路13に送られる。また命令のデコード情報は
先行制御ユニット4から信号線IQ2を経由して演算回
路13に送られる。
一方、命令の命令コードはマイクロアドレス発生回路5
とデコーダ16へ送られる。マイクロアドレス発生回路
5の出力はマイクロアドレス制御回路6および7へ送ら
れさらに制御記憶8および9へ送られてマイクロプログ
ラムの先頭のステップを読出すためのアドレスとして使
用される。
今、実行する命令は演算回路13のみを使用するとする
と、制御記憶9から読出されるマイクロ命令は何もしな
いように指定しておけば良い。デコーダ16の出力はこ
の場合“0”であり、フリップフロップ17には“0”
がセットされる。したがって、セレクタ10は信号線1
(13が“O”となることにより制御記憶8の出力を選
択し、その出力はマイクロ命令レジスタ11にセットさ
れた後、演算回路13を制御する。
2ステップ目以降のマイクロ命令は、制御記憶8の出力
の「次アドレスフィールド」 (信号線105)によっ
て指定される。以上の動作を第2図に示す。
制御記憶9には、浮動小数点演算命令及び可変長データ
演算命令用のマイクロプログラムと演算回路13で実行
される「特別な命令」のマイクロプログラムが格納され
ている。実行すべき命令が浮動小数点演算命令または可
変長データ演算命令の場合、既に述べた固定小数点演算
命令の場合と同様の処理により、制御記憶9から読出さ
れ、マイクロ命令レジスタ12にセットされた後演算回
路14の制御が行われる。この場合もフリップフロップ
17には“0”がセットされているため、抑止回路18
はマイクロ命令レジスタ12の出力をそのまま演算回路
14へ送る。以上の動作は第3図によって示される。
実行すべき命令が前述の「特別な命令」の場合、フリッ
プフロップ17には“1”がセットされる。
また制御記憶9からこの特別な命令を実行するためのマ
イクロ命令がマイクロ命令レジスタ12に読出されるが
、このマイクロ命令は演算回路13を制御するためのマ
イクロ命令である。フリツブフロップ17が“1”にセ
ットされているので、セレクタ10はマイクロ命令レジ
スタ12を選択する。したがって、マイクロ命令レジス
タ12の出力は信号線107によってマイクロ命令レジ
スタ11に転送され、演算回路13の制御に使用される
一方、抑止回路18は制御線104によりマイクロ命令
レジスタ12の出力を演算回路14に送るのを抑止する
ように制御されるため、本命令の場合には演算回路14
は動作しない。以上の動作は第4図に示される。
このように、予め決められた「特別な命令」を実行する
場合、マイクロプログラムは制御記憶9から読出され、
マイクロ命令レジスタ12、マイクロ命令レジスタ11
を経て演算回路13に与えられるため、他の命令に比べ
てマイクロプログラム読出しの時間が大きくなり、性能
が低下することになる。しかし、多くの命令の中には出
現頻度のきわめて小さいものもあるため、そのような命
令を前述の「特別な命令」として定義すれば、実質的な
性能への影響をほとんど無視できるようにすることが可
能となる。
以上の様な構成を採用することにより、たとえば制御記
憶8に未使用領域がほとんど無く、逆に制御記憶9に十
分な未使用領域が存花するような場合には、演算回路1
3を制御する(本来なら制御記憶8に格納されるはずの
)マイクロプログラムを制御記憶9に格納することがで
きるため、制御記憶を有効に利用することができる。
発明の効果 以上説明したように本発明によれば、複数の制御記憶の
うちある制御記憶に格納されるべきマイクロプログラム
の一部を、他の制御記憶に格納し、そのマイクロプログ
ラムを実行する時にはこの他の制御記憶から読出したマ
イクロプログラムを所定の演算回路に転送して制御に使
用することにより、制御記憶を有効に使用でき、ハード
ウエア量の増加を抑止することができるという効果があ
る。
【図面の簡単な説明】
第1図は本発明の実施例のシステムブロック図、第2図
〜第4図は本発明の実施例の各動作を示すタイミングチ
ャートである。 主要部分の符号の説明 5・・・・・・マイクロアドレス発生回路8,9・・・
・・・制御記憶 10・・・・・・セレクタ 13.14・・・・・・演算回路 16・・・・・・デコーダ 1 8・・・・・・抑止回路

Claims (1)

    【特許請求の範囲】
  1. (1)複数の演算回路に夫々対応して複数の制御記憶を
    設け、各々の制御記憶に格納されているマイクロプログ
    ラムにより対応する演算回路を制御するようにした分散
    型マイクロプログラム制御方式であって、1の演算回路
    を制御すべきマイクロプログラムの一部を、前記1の演
    算回路に対応する制御記憶以外の他の制御記憶に格納し
    ておき、当該マイクロプログラムの実行要求に応答して
    、前記他の制御記憶から読出した当該マイクロプログラ
    ムを、前記1の演算回路へ転送制御するようにしたこと
    を特徴とする分散型マイクロプログラム制御方式。
JP30976289A 1989-11-29 1989-11-29 分散型マイクロプログラム制御方式 Pending JPH03168832A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30976289A JPH03168832A (ja) 1989-11-29 1989-11-29 分散型マイクロプログラム制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30976289A JPH03168832A (ja) 1989-11-29 1989-11-29 分散型マイクロプログラム制御方式

Publications (1)

Publication Number Publication Date
JPH03168832A true JPH03168832A (ja) 1991-07-22

Family

ID=17996966

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30976289A Pending JPH03168832A (ja) 1989-11-29 1989-11-29 分散型マイクロプログラム制御方式

Country Status (1)

Country Link
JP (1) JPH03168832A (ja)

Similar Documents

Publication Publication Date Title
US4229801A (en) Floating point processor having concurrent exponent/mantissa operation
US6611909B1 (en) Method and apparatus for dynamically translating program instructions to microcode instructions
US4541045A (en) Microprocessor architecture employing efficient operand and instruction addressing
EP0497485A2 (en) Computer for implementing two-operand instructions
US5034879A (en) Programmable data path width in a programmable unit having plural levels of subinstruction sets
US4896264A (en) Microprocess with selective cache memory
JPS6365976B2 (ja)
EP0363174A2 (en) Branch on bit processing
US4975837A (en) Programmable unit having plural levels of subinstruction sets where a portion of the lower level is embedded in the code stream of the upper level of the subinstruction sets
US6829700B2 (en) Circuit and method for supporting misaligned accesses in the presence of speculative load instructions
JPH03168832A (ja) 分散型マイクロプログラム制御方式
US6922773B2 (en) System and method for encoding constant operands in a wide issue processor
EP1235139B1 (en) System and method for supporting precise exceptions in a data processor having a clustered architecture
JP3154748B2 (ja) レジスタの退避復帰機能付データ処理装置
US6321319B2 (en) Computer system for allowing a two word jump instruction to be executed in the same number of cycles as a single word jump instruction
EP0305752A2 (en) Programmable data path width in a programmable unit having plural levels of subinstruction sets
US6832309B2 (en) Generation of modified commands repeatedly from feedback or base command
JP3102399B2 (ja) データ処理装置及び方法
JPH0524537B2 (ja)
JP2583614B2 (ja) ベクトル演算装置
JPH0683986A (ja) シングルチップ・マイクロコンピュータ
JP3532026B2 (ja) 演算装置
JP2573711B2 (ja) マイクロサブルーチン制御方式
JPS6149695B2 (ja)
JPH11283362A (ja) FiFoメモリ制御回路及びこの制御回路を使用したマイクロプロセッサ制御回路