JPH065528B2 - 情報処理システム - Google Patents

情報処理システム

Info

Publication number
JPH065528B2
JPH065528B2 JP60209472A JP20947285A JPH065528B2 JP H065528 B2 JPH065528 B2 JP H065528B2 JP 60209472 A JP60209472 A JP 60209472A JP 20947285 A JP20947285 A JP 20947285A JP H065528 B2 JPH065528 B2 JP H065528B2
Authority
JP
Japan
Prior art keywords
instruction
cpu
coprocessor
queue
mode
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
JP60209472A
Other languages
English (en)
Other versions
JPS6269354A (ja
Inventor
保 岩崎
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
Original Assignee
Nippon Electric Co 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP60209472A priority Critical patent/JPH065528B2/ja
Publication of JPS6269354A publication Critical patent/JPS6269354A/ja
Publication of JPH065528B2 publication Critical patent/JPH065528B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、複数の命令セットと、これら複数の命令セッ
トにそれぞれ対応する複数の命令実行状態を有するCP
Uと、このCPUと同期して命令のフェッチ、実行を行
うプロセッサを有する情報処理システムに関する。
〔従来の技術〕
従来、CPUとそのスレーブプロセッサを接続する方式
としてはCPU8086とそのスレーブプロセッサである数
値データプロセッサ8087との間で行なわれているような
方式(インテル社 iAPX86ファミリユーザーズマニュア
ル第3章)がある。この方式には 1.スレーブプロセッサはCPUと同じ大きさの命令キ
ューを持ち、CPUが出力するステータスによってCP
Uと同期してフェッチし、デコードを行う。
2.CPUが持つ命令セットの中にスレーブプロセッサ
の命令も含まれている。
という特徴がある。このような方式では接続されている
スレーブプロセッサ機能があたかもCPUにその機能が
つけ加わったように見える。つまり、CPUとスレーブ
プロセッサは1つとして考えることができる。このよう
なスレーブプロセッサをコプロセッサと言う。
第4図はこの方式の情報処理システムの従来例の要部を
示す概略図である。
CPU303内には命令実行部307と、アドレスバス301、
データバス302とのバスインターフェース部305と、命令
キュー309と、命令キュー309内に格納されている命令を
命令実行部307に送るための内部データバス311が含ま
れ、コプロセッサ304内には命令実行部308と、アドレス
バス301、データバス302とのバスインターフェイス部30
6と、命令キュー310と、命令キュー310内に格納されて
いる命令を命令実行部308に送るための内部データバス3
12が含まれている。さらに、CPU303は信号路313,314
を介して表1に示すような命令キュー309の状態を示す
情報(以下、キューステータスと呼ぶ)QST1,QST0をコ
プロセッサ304に送り、信号路315,316,317を介して表2
に示すような、現在起動しているバスサイクルの種類を
示す情報(以下、バスステータスと呼ぶ)BST2,BST1,BS
T0をコプロセッサ304に送る。
第5図(1)〜(5)は第4図に示したCPU303とコプロセ
ッサ304の命令キュー309,310の内容と、CPU303、コ
プロセッサ304の状態およびCPU303が信号路305,306
を通してコプロセッサ304に出力する情報(キューステ
ータス)と、同じく信号路307,308,309を通して出力す
る情報(バスステータス)を時間をおって示している。
簡単のために命令キュー309,310は4バイトであり、各
命令の実行に伴うメモリアクセスはないものとする。ま
た、命令A〜Eは1バイト長の命令であり、命令A、命
令C〜EはCPU303の命令、命令Bはコプロセッサ304
の命令である。
今、CPU303の命令キュー309とコプロセッサ304の命
令キュー310には命令A〜Dが入っている(第5図
(1))。CPU303は命令キュー309から命令Aを取り出
す。CPU303は同時に信号路313,314を通してキュース
テータスをコプロセッサ304に送る。コプロセッサ304は
このキューステータスを受けて、命令キュー310から命
令Aを取り出す。命令キュー309から取り出された命令
AはCPU303では内部データバス311を通して命令実行
部307へ送られ、デコードされる。コプロセッサ304では
内部データバス312を通して命令実行部308へ送られ、デ
コードされる。命令AはCPU303の命令であり、各デ
コードの結果、CPU303は命令Aを実行し、コプロセ
ッサ304はそのまま何も動作しない(第5図(2))。CP
U303は命令Aの実行が終了すると、命令キュー309から
命令Bを取り出す。同時にCPU303は信号路313,314を
通して命令コードの1バイト目の取り出しを示すキュー
ステータスをコプロセッサ304に出力する。このキュー
ステータスを受けて、コプロセッサ304は命令キュー310
から命令Bを取り出す。命令Bは命令Aと同様にCPU
303の命令実行部307とコプロセッサ304の命令実行部308
においてデコードされる。命令Bはコプロセッサ304の
命令であり、デコードの結果、CPU303は何も動作せ
ず、コプロセッサ304は命令Bを実行する(第5図
(3))。命令BはCPU303の命令ではなかったので、C
PU303はコプロセッサ304が命令Bを実行中であっても
命令キュー309から命令Cを取り出す。コプロセッサ304
はCPU303が出力する命令コードの1バイト目の取り
出しを示すキューステータスにより命令Bの実行と並行
して命令キュー310から命令Cを取り出す。命令CはC
PU303の命令であるからCPU303は命令Cを実行す
る。コプロセッサ304は命令Cのデコードによって何の
影響も受けず、命令Bの実行をつづける(第5図
(4))。ここでCPU303はバスが使用されていないこと
と、命令キュー309内に命令コードが少なくなったこと
によりフェッチ動作を行う。フェッチ動作は次のように
行われる。CPU303は命令キュー309に入っている命令
の次の命令のアドレス(ここでは命令Eが格納されてい
る場所に対応するアドレス)がアドレスバス301に出力
される。次に、出力されたアドレスに対応した命令コー
ドがメモリからデータバス302上に出力される。CPU3
03はこのデータバス302上に出力された命令コードを取
り込み、命令キュー309に格納する。このフェッチ動作
中、CPU303は信号路315,316,317を通してフェッチ動
作であることを示すバスステータスをコプロセッサ304
に出力している。このバスステータスを受けて、コプロ
セッサ304はメモリがデータバス302上に出力した命令コ
ードをCPU303が命令キュー309に格納したのと同様に
して命令キュー310に格納する(第5図(5))。
以上のようにしてコプロセッサ304はCPU303と同期し
て命令のフェッチ、実行を行っていく。
ところで、以上の説明で用いたCPU303(インテル社
のCPU8086)は1つの命令セットしか持っていない。
CPUの開発を行う場合、新規の機能を取り入れてゆく
ことは重要である。しかし、従来使用されていたソフト
ウエアを継承していくことも重要である。CPU303の
持つ命令セットはすぐれたものであるが、従来使用され
ていたソフトウエアを使用するには、ソフトウエアの大
幅な改造が必要となってくる。そこでこの反する2つの
条件を満足させるように次のようなCPUを考えてみ
る。
1.命令コードの異なる2つの命令セットを持つ(以
下、一方の命令セットを実行しているときのCPUの状
態をモード0、もう一方の命令セットを実行していると
きのCPUの状態を−ド1と呼ぶ)。
2.第6図に示したように、モード0とモード1の間の
遷移は、モード0の命令Fとモード1の命令F1により
ダイナミックに行うことができる。
3.外部にCPUがモード0の状態か、モード1の状態
かを示す端子を持ち、表3に示したようなステータス
(以下、プロセッサステータスと呼ぶ)PSTを出力す
る。
仮に、モード0の命令セットはCPUの命令セットと同
じであるとし、モード1の命令セットでは従来のソフト
ウエアが動かせるものであり、コプロセッサをサポート
していないものとする。このようなCPUを第4図に示
したようなシステムで用いようとすると次のような問題
が生じる。
〔発明が解決しようとする問題点〕
コプロセッサ304はCPU303がモード0で命令を実行し
ているときに正常動作をする。今、CPUが命令Fを実
行してモード0からモード1に遷移したとする。以後、
CPU303はモード1で命令を実行し、命令キュー309の
状態、バスサイクルの種類に応じてキュースターテス、
バスステータスをコプロセッサ304に送る。しかし、コ
プロセッサ304はCPU303がモード0からモード1に遷
移したことを検出する手段を持たないために、モード1
に遷移したCPU303が出力するバスステータス、キュ
ーステータスにしたがってデータバス302上の命令コー
ドをフェッチし、デコードを行っていく。モード0の命
令セットにおけるコプロセッサ304の命令コードと同じ
コードがモード1の命令セットに存在していたとする
と、コプロセッサ304はCPU303がモード1であるにも
かかわらず動作をしてしまう。これは本来あってはなら
ない動作であり、このシステムの大きな問題点である。
〔問題点を解決するための手段〕
本発明の情報処理システムは、CPUの現在の実行状態
を示す情報をプロセッサに出力する手段と、プロセッサ
内に設けられ、前記情報が、CPUが複数の実行状態の
うち所定の状態にあることを示しているときには命令コ
ードをデコードして出力し、CPUが前記所定の状態以
外の状態にあることを示しているときは命令コードをデ
コードしないか、デコードしても出力しないデコーダを
備えたことを特徴とする。
したがって、CPUがダイナミックにコプロセッサをサ
ポートしている命令セットを実行するモードとコプロセ
ッサをサポートしていない命令セットを実行するモード
との間を遷移する場合、CPUがコプロセッサをサポー
トしていない命令セット実行中のコプロセッサの誤動作
を回避することができる。
〔実施例〕
次に、本発明の実施例について図面を参照して説明す
る。
第1図は本発明の情報処理システムの一実施例の要部を
示す構成図である。
CPU103は2つのモード1,0を持ち、命令実行部107
と、アドレスバス101、データバス102とのバスインタフ
ェース部103と、命令キュー109と、命令キュー109に格
納されている命令を命令実行部107へ送るための内部デ
ータバス111を含み、コプロセッサ104は、命令実行部10
8と、アドレスバス101、データバス102とのバスインタ
フェース部106と、命令キュー110と、命令キュー110に
格納されている命令コードを命令実行部108へ送るため
の内部データバス112を含んでいる。さらに、CPU103
は信号路113,114を介して表1に示したような命令キュ
ー109の状態を示す情報(QST1,QST0)を送り、信号路115,
116,117を介して表2に示したようなバスステータス(BS
T2,BST1,BST0)をコプロセッサ104に送り、信号路118を
介して表3に示したようなプロセッサステータス(PST)
をコプロセッサ104に送る。コプロセッサ104の命令実行
部108内には内部データバス112を通して命令キュー110
から送られてくる命令コードをデコードするデコーダ11
9が設けられており、このデコーダ119はCPU103が信
号路118を通して出力するプロセッサステータスによっ
てデコード動作が制御される。すなわち、デコーダ119
は信号路118を通して送られてくる信号がモード0を示
すとき、デコード結果を出力し、モード1を示すときデ
コード結果を出力しない。
第2図はデコーダ119のブロック図である。
このデコーダ119は、デコーダ601と、インバータ602
と、信号路118からの信号が“1”、すなわちCPU103
がモード1の状態のときにデコーダ601のデコード結果
を出力しないようにするアンドゲート603と、デコード
結果を不図示の各ユニットに送るための信号路604で構
成されている。
第3図は、第1図に示したCPU103とコプロセッサ104
の命令キュー109,110の内容と、CPU103とコプロセッ
サ104の状態およびCPU103が信号路113,114を通して
コプロセッサ104に出力するキューステータスと、同じ
く信号路115,116,117を通して出力するバスステータ
ス、信号路118を通して出力するプロセッサステータス
を時間を追って示す図である。
簡単のために、命令キュー109,110は4バイトであり、
各命令の実行に伴うメモリアクセスはないものとする。
また、各命令は1バイト長のCPU103の命令であり、
1のついている命令はモード1の命令とする。特に、命
令A1はモード0のコプロセッサ104の命令コードと同
じとする。
今、CPU103はモード0の状態であり、信号路118を通
してコプロセッサ104にモード0の状態を示す信号を送
っている。CPU103の命令キュー109とコプロセッサ10
4の命令キュー110にはモード0の命令F,G,H,Iが
格納されている。CPU103は命令実行のために命令キ
ュー109から命令Fを取り出し、内部データバス111を通
して命令実行部107へ送る。同時にCPU103は信号路11
3,114を通してコプロセッサ104に命令コードの1バイト
目を取り出したことを示すキューステータスを出力す
る。CPU103からのキューステータスを受けてコプロ
セッサ104は命令キュー110から命令Fを取り出し、内部
データバス112を通して命令実行部108へ送る(第3図
(1))。プロセッサステータスはモード0を示している
ことにより、デコーダ119は命令Fをデコードする。し
かし、命令FはCPU103の命令であるから、コプロセ
ッサ104は何も動作しない。CPU103は命令Fをデコー
ドし実行する(第3図(2))。命令FはCPU103をモー
ド0からモード1へと遷移させる命令である。したがっ
て、CPU103はモード1へと遷移する。これに伴って
CPU103はプロセッサスターテスをモード1を示すよ
うに変化させるとともに命令キュー109を空にする。続
いてCPU103はアドレスバス101にモード1の命令が格
納されているアドレスを出力する。このアドレスに対応
した命令コードがデータバス102に出力されると、CP
U103は命令キュー109に格納していく。一方、コプロセ
ッサ104はCPU103が信号路113,114を通して出力して
くるキューステータスによって命令キュー110を空にす
る。そしてCPU103が信号路115,116,117を通して出力
するフェッチを示すバスステータスによりCPU103が
データバス102上に出力されている命令コードを命令キ
ュー109に格納するのと同期して命令コードを命令キュ
ー110に格納する(第3図(3))。フェッチが完了する
と、CPU103は再び命令キュー109から命令コードを取
り出し実行する。コプロセッサ104はCPU103と同期し
て命令キュー110から命令A1を取り出し、内部データ
バス112を通して命令実行部108へ送る。しかし、CPU
103が信号路118を通してコプロセッサ104に出力するコ
プロセッサステータスはモード1を示しているために、
デコーダ119は命令A1のデコード結果をモード0のコ
プロセッサ104の命令コードと同じではあるが出力しな
い。したがって、コプロセッサ104は何も動作をしない
(第3図(4))。CPU103はつづいて命令F1を命令キ
ュー109から取り出す。この命令はCPU103をモード1
からモード0へ遷移させる命令であり、この命令の実行
によってCPU103は再びモード0状態に戻る。CPU1
03が出力しているプロセッサステータスは再びモード0
を示すようになり、コプロセッサ104は再びCPU103と
同期して命令を実行するようになる。
なお、デコーダ119はプロセッサステータスがモード1
のとき命令をデコードしないようにしてもよい。
〔発明の効果〕
以上説明したように本発明は、複数の命令セットを持つ
CPUに接続されたコプロセッサのデコーダの動作をC
PUが出力するプロセッサステータスによって制御する
ことによって、CPUが持つ複数の命令セットの一部の
命令セットでしかサポートされていないコプロセッサを
持つシステムにおいてCPUがダイナミックにコプロセ
ッサをサポートしている命令セットを実行するモードと
コプロセッサをサポートしていない命令セットを実行す
るモードとの間を遷移する場合、CPUがコプロセッサ
をサポートしていない命令セット実行中のコプロセッサ
の誤動作を回避することができ、この結果、複数の命令
セットを持つCPUを用いたシステムにおいてCPUの
持つ複数の命令セットのうちの一部の命令セットでしか
サポートされていないコプロセッサを用いることが可能
となる効果がある。
【図面の簡単な説明】
第1図は本発明の情報処理システムの一実施例の要部を
示す構成図、第2図は第1図中のデコーダ119のブロッ
ク図、第3図は第1図に示したCPU103とコプロセッ
サ104のキュー109,110の内容と、CPU103とコプロセ
ッサ104の状態およびCPU103がコプロセッサ104に出
力するキューステータス、バスステータス、プロセッサ
ステータスを時間を追って示す図、第4図は従来例を示
す図、第5図は第4図に示したCPU303とコプロセッ
サ304の命令キュー309,310の内容と、CPU303、コプ
ロセッサ304の状態およびCPU303がコプロセッサ304
に出力するキューステータス、バスステータスを時間を
追って示す図、第6図は2つのモードを持つCPUの状
態遷移の様子を示す図である。 101…アドレスバス、 102…データバス、 103…CPU、 104…コプロセッサ、 105…CPU103のバスインターフェース部、 106…コプロセッサ104のバスインターフェース部、 107…CPU103の命令実行部、 108…コプロセッサ104の命令実行部、 109…CPU103の命令キュー、 110…コプロセッサ104の命令キュー、 111…命令キュー109に格納されている命令コードを命令
実行部107へ送るための内部データバス、 112…命令キュー110に格納されている命令コードを命令
実行部107へ送るための内部データバス、 113,114…CPU103がコプロセッサ104にキューステー
タスを送るための信号路、 115,116,117…CPU103がコプロセッサ104にバスステ
ータスを送るための信号路、 118…CPU103がコプロセッサ104にプロセッサステー
タスを送るための信号路、 119…CPU103が出力するプロセッサステータスによっ
て制御されるデコーダ、 601…デコーダ、 602…インバータ、 603…信号路118からの信号が“1”のときデコード結果
を出力しないようにするアンドゲート、 604…デコード結果を各ユニットに送るための信号路。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】複数の命令セットと前記複数の命令セット
    にそれぞれ対応する複数の命令実行状態を有するCPU
    と、前記CPUと同期して命令のフェッチ、実行を行う
    プロセッサを有する情報処理システムにおいて、 前記CPUの現在の実行状態を示す情報を前記プロセッ
    サに出力する手段と、 前記プロセッサ内に設けられ、前記情報が、前記CPU
    が前記複数の実行状態のうち所定の状態にあることを示
    しているときには命令コードをデコードして出力し、前
    記CPUが前記所定の状態以外の状態にあることを示し
    ているときは命令コードをデコードしないか、デコード
    しても出力しないデコーダを備えたことを特徴とする情
    報処理システム。
JP60209472A 1985-09-20 1985-09-20 情報処理システム Expired - Lifetime JPH065528B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60209472A JPH065528B2 (ja) 1985-09-20 1985-09-20 情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60209472A JPH065528B2 (ja) 1985-09-20 1985-09-20 情報処理システム

Publications (2)

Publication Number Publication Date
JPS6269354A JPS6269354A (ja) 1987-03-30
JPH065528B2 true JPH065528B2 (ja) 1994-01-19

Family

ID=16573417

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60209472A Expired - Lifetime JPH065528B2 (ja) 1985-09-20 1985-09-20 情報処理システム

Country Status (1)

Country Link
JP (1) JPH065528B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63259727A (ja) * 1987-04-17 1988-10-26 Hitachi Ltd コプロセツサのインタ−フエイス方式

Also Published As

Publication number Publication date
JPS6269354A (ja) 1987-03-30

Similar Documents

Publication Publication Date Title
US9003422B2 (en) Microprocessor architecture having extendible logic
US4839797A (en) Microprocessor compatible with any software represented by different types of instruction formats
US5235686A (en) Computer system having mixed macrocode and microcode
JP3176093B2 (ja) マイクロプロセッサの割込み制御装置
US4949241A (en) Microcomputer system including a master processor and a slave processor synchronized by three control lines
JPH0786870B2 (ja) コプロセツサのデータ転送制御方法およびその回路
JPS58219644A (ja) 命令実行方式
JP2001525568A (ja) 命令デコーダ
JPH0232659B2 (ja)
EP0270081B1 (en) Microprogram controller receiving interrupt request during instruction execution
JPH07120338B2 (ja) 共同プロセッサによる命令の実行をデータプロセッサが調整する方法および該データプロセッサ
JPS645330B2 (ja)
EP0279953B1 (en) Computer system having mixed macrocode and microcode instruction execution
US7831979B2 (en) Processor with instruction-based interrupt handling
JPH065528B2 (ja) 情報処理システム
JP2680828B2 (ja) ディジタル装置
JP2511151B2 (ja) デ―タ処理装置
JPS6217773B2 (ja)
US20010023481A1 (en) Processor that executes control signals included in operand section of control instruction
JPH0687221B2 (ja) 情報処理装置
JP5012562B2 (ja) マイクロコンピュータ
JP2504191B2 (ja) マイクロプロセッサ
JP2689894B2 (ja) マイクロプログラム制御型情報処理装置
JPH05189014A (ja) プログラマブルコントローラ
JPH06161738A (ja) マイクロプロセッサ