JPH08305568A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH08305568A
JPH08305568A JP7106624A JP10662495A JPH08305568A JP H08305568 A JPH08305568 A JP H08305568A JP 7106624 A JP7106624 A JP 7106624A JP 10662495 A JP10662495 A JP 10662495A JP H08305568 A JPH08305568 A JP H08305568A
Authority
JP
Japan
Prior art keywords
data
instruction
processor
extended
arithmetic unit
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.)
Granted
Application number
JP7106624A
Other languages
English (en)
Other versions
JP2987308B2 (ja
Inventor
Toru Morikawa
徹 森河
Nobuo Higaki
信生 檜垣
Shinya Miyaji
信哉 宮地
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP7106624A priority Critical patent/JP2987308B2/ja
Priority to US08/625,627 priority patent/US5909565A/en
Priority to TW085104225A priority patent/TW310409B/zh
Priority to DE69619885T priority patent/DE69619885T2/de
Priority to EP96302880A priority patent/EP0740249B1/en
Priority to CNB961056444A priority patent/CN1153155C/zh
Priority to KR1019960013275A priority patent/KR100235397B1/ko
Publication of JPH08305568A publication Critical patent/JPH08305568A/ja
Application granted granted Critical
Publication of JP2987308B2 publication Critical patent/JP2987308B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Advance Control (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】 【目的】 拡張演算器がプロセッサの汎用レジスタのデ
ータをソース、ディスチネーションとする拡張演算命令
を行う場合に、実行時間が増大しない情報処理装置を提
供することを目的とする。 【構成】 プロセッサ101は、拡張演算器102用の
拡張演算命令を解読し、必要なオペランドデータを汎用
レジスタ106からデータ処理部入力バス124を介し
て供給する。拡張演算器102は、供給されたオペラン
ドデータを用いて拡張演算を実行し、演算結果をデータ
処理部出力バス125を介してプロセッサ101に送
る。プロセッサ101では、送られたデータを汎用レジ
スタ106に書き戻す。これにより実行時間を短縮する
ことができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、メモリ中の命令に従っ
てデータを処理する主たるデータ処理装置と従たる拡張
処理装置とからなる情報処理装置に関する。
【0002】
【従来の技術】近年、データ処理装置(以下、プロセッ
サと記す)とともに、用途に応じた特別な演算を高速に
実行する拡張演算器を設けて処理能力の向上が図られて
いる。この拡張演算器の実装方式には、プロセッサに内
蔵する方式や、必要な場合のみ接続して実装する接続方
式などがある。内蔵方式では、拡張演算器を用いない場
合に、コストの増大と消費電力の増大とを引き起こすと
いうデメリットがあるので、性能を劣化させずにプロセ
ッサと拡張演算器とを接続する方式が求められている。
【0003】従来のプロセッサと拡張演算器を接続した
情報処理装置として、プロセッサが拡張演算器の命令を
解読して、拡張演算器にコマンドを通知することによっ
て、拡張演算を実行させる方式がある。この方式では、
プロセッサからのコマンド転送のオーバーヘッドが生じ
ることが原因で拡張演算器の処理時間が長くかかるとい
う欠点がある。
【0004】また、特開平1ー240932号公報で
は、拡張演算器でもパイプライン処理を行うプロセッサ
と同じ命令を同期を取って解読することによりコマンド
転送及びコマンド解読に要する時間を隠す情報処理装置
が考案されている。
【0005】
【発明が解決しようとする課題】しかしながら、従来の
情報処理装置によれば、プロセッサ内の汎用レジスタが
持つデータを用いて、拡張演算器が処理を行う場合や、
拡張演算器が処理を行ったデータをプロセッサが持つ汎
用レジスタに格納する場合には、データを一旦メモリに
保持させて、データを転送するため、実行時間が増大し
性能が劣化するという課題を有していた。
【0006】また、プロセッサのフラグ格納レジスタが
持つフラグ情報を用いて、拡張演算器が処理を行う場
合、又は、拡張演算器が処理を行ったフラグ情報をプロ
セッサが持つフラグ格納レジスタに格納する場合、フラ
グ情報を一旦メモリに保持することによりフラグ情報を
転送するため、実行時間が増大し性能が劣化するという
課題を有していた。
【0007】さらに、プロセッサの汎用レジスタが持つ
データ、拡張演算器が処理を行ったフラグ情報を、プロ
セッサが持つ汎用レジスタ、フラグ格納レジスタに格納
する場合に、プロセッサがデータ、又は、フラグ情報を
汎用レジスタ、フラグ格納レジスタに格納を完了するま
で、パイプライン処理を停止させる必要があるため、実
行時間が増大し性能が劣化するという課題を有してい
た。
【0008】さらに、拡張演算器が処理中に割り込み処
理が生じた場合、処理中のデータを保持することができ
ないので、割り込み処理後に再度拡張演算器が処理する
ため、実行時間が増大し性能が劣化するという課題を有
していた。また、拡張演算器が処理中にタスク切り換え
処理が生じた場合、処理中のデータを保持することがで
きないので、再度タスク切り替え前のタスク処理時に、
拡張演算器が再度処理するため、実行時間が増大し性能
が劣化するという課題を有していた。
【0009】上記問題点に鑑み本発明は、プロセッサの
汎用レジスタが持つデータを用いて、拡張演算器が処理
を行う場合、又は、拡張演算器が処理を行ったデータを
プロセッサが持つ汎用レジスタに格納する場合におい
て、実行時間が増大しない情報処理装置を提供すること
を目的とする。さらに本発明は、プロセッサの汎用レジ
スタが持つデータを用いて、拡張演算器が処理を行う場
合、又は、拡張演算器が処理を行ったデータをプロセッ
サが持つ汎用レジスタに格納する場合、高速に処理し、
拡張演算器を必要としない場合、回路規模の増大による
コスト上昇と消費電力の増大とを抑止する情報処理装置
を提供することを目的とする。
【0010】また本発明は、プロセッサの汎用レジスタ
が持つデータを用いて、拡張演算器が処理を行う、又
は、拡張演算器が処理を行ったデータをプロセッサが持
つ汎用レジスタに格納する場合において、プロセッサの
パイプラインを乱すことなく高速に実行する情報処理装
置を提供することを目的とする。さらに本発明は、プロ
セッサのフラグ格納レジスタが持つフラグ情報を用い
て、拡張演算器が処理を行う場合、又は、拡張演算器が
処理を行ったフラグ情報をプロセッサが持つフラグ格納
レジスタに格納する場合、実行時間が増大し性能が劣化
しない情報処理装置を提供することを目的とする。
【0011】さらに本発明は、拡張演算器が複数のオペ
ランドを処理する場合、チップ面積の増大によるコスト
上昇と消費電力の増大とを抑止する情報処理装置を提供
することを目的とする。また本発明は、拡張演算器が処
理中に割り込み処理が生じた場合、実行時間が増大と性
能が劣化とを抑止する情報処理装置を提供することを目
的とする。
【0012】さらに本発明は、拡張演算器が処理中にタ
スク切り換え処理が生じた場合、実行時間が増大と性能
が劣化とを抑止する情報処理装置を提供することを目的
とする。
【0013】
【課題を解決するための手段】上記課題を解決するた
め、請求項1の発明は、メモリ中の命令に従ってデータ
を処理する主たるデータ処理装置と従たる拡張処理装置
とからなる情報処理装置であって、データ処理装置は、
複数のデータ保持領域を有するデータ保持手段と、メモ
リ中の命令を取り出す命令取り出し手段と、取り出され
た命令を解読し、拡張処理装置で実行すべき拡張演算命
令を検出する命令検出手段と、検出された拡張演算命令
のオペランドで指定されたソースのデータ保持領域とデ
スティネーションのデータ保持領域とを判別するオペラ
ンド判別手段と、判別されたソースのデータ保持領域の
データを拡張処理装置に供給するデータ供給手段と、拡
張処理装置から伝送される演算結果を、判別されたデス
ティネーションのデータ保持領域に格納するデータ格納
手段とを備え、拡張処理装置は、取り出された命令を解
読して拡張演算命令を検出する拡張命令解読手段と、デ
ータ供給手段から供給されるデータを用いて、拡張命令
解読手段に検出された拡張演算命令を実行する拡張実行
手段とを備え、データ処理装置と拡張処理装置とは、メ
モリから取り出された命令を命令検出手段と拡張命令解
読手段とに伝送する命令バス、データ供給手段の供給デ
ータを拡張実行手段に伝送する第1のバス、及び、拡張
実行手段の演算結果をデータ格納手段に伝送する第2の
バスにより接続されている。
【0014】請求項2の発明は、請求項1に加えて、演
算種類が互いに異なる拡張演算命令を実行する複数の前
記拡張処理装置を備えている。請求項3の発明は、請求
項1の情報処理装置において前記データ処理装置が、さ
らに、演算結果の状態を表す複数のフラグを保持するフ
ラグレジスタを備え、前記データ供給手段は、ソースレ
ジスタのデータ供給とともに、フラグレジスタのフラグ
を拡張処理装置に供給し、前記データ格納手段は、演算
結果をディスチネーションのデータ保持領域に格納する
とともに、拡張処理装置からの新たなフラグをフラグレ
ジスタに格納し、前記拡張実行手段は、データ供給手段
から供給されるデータとともにフラグを用いて拡張演算
命令を実行し、当該演算の状態を表す新たなフラグをデ
ータ格納手段に出力し、データ処理装置と拡張処理装置
とは、さらに、データ供給手段により供給されるフラグ
を拡張実行手段に伝送する第1のフラグバス、及び、拡
張実行手段からの新たなフラグをフラグレジスタに伝送
する第2のフラグバスにより接続されている。
【0015】請求項4の発明は、請求項2の情報処理装
置において前記データ処理装置が、少なくとも命令フェ
ッチステージと、命令解読ステージと命令実行ステージ
とを含むパイプライン処理を行い、さらに、拡張実行手
段における拡張演算の実行サイクル数に、命令実行ステ
ージのサイクル数を一致させるステージ状態管理手段と
を備え、前記拡張処理装置は、データ処理装置に同期し
て動作する。
【0016】請求項5の発明は、請求項4の情報処理装
置において、前記拡張実行手段が、拡張演算の実行に際
して、命令実行の最後のサイクルになったときに、ステ
ージ状態管理手段に拡張演算の実行終了を通知し、前記
ステージ状態管理手段は、拡張演算の実行終了通知を受
けると、受けた時点の実行サイクルで命令実行ステージ
を終了させる。
【0017】請求項6の発明は、請求項4の情報処理装
置において、前記データ処理装置が、検出手段により検
出された拡張演算命令に応じて、データ処理装置の実行
ステージのサイクル数を決定する決定手段を備え、前記
ステージ状態管理手段は、決定されたサイクル数の間命
令実行ステージを継続させる。請求項7の発明は、請求
項1、3または4の情報処理装置において、前記命令検
出手段が、データ処理装置から拡張処理装置へのデータ
転送を指示する第1の転送命令を検出し、前記オペラン
ド判別手段は、検出された第1の転送命令のオペランド
でソースとして指定されたデータ保持領域を判別し、前
記データ供給手段は、判別された第1の転送命令のソー
スのデータ保持領域のデータを第1のバスに出力させ
る。前記拡張処理装置は、さらに、データを保持する入
力バッファを備え、前記拡張命令解読手段は、前記転送
命令を検出した場合、第1のバスからのデータを入力バ
ッファに格納し、前記拡張命令実行手段は、3つ以上の
オペランドを要する拡張演算命令の実行に入力バッファ
のデータを用いる。
【0018】請求項8の発明は、請求項7の情報処理装
置において、さらに、データを記憶する領域を有する退
避バッファを備え、前記データ処理装置は、割込み要求
を受け付けると、割込み信号を拡張処理装置に出力し、
前記拡張命令解読手段は、割込み処理からの復帰命令を
検出し、前記拡張処理装置は、さらに割込み信号を受け
ると前記入力バッファのデータを退避バッファに退避さ
せる退避手段と、割り込み処理からの復帰命令が検出さ
れると、退避バッファのデータを前記入力バッファに復
帰させる復帰手段とを備える。
【0019】請求項9の発明は、請求項7において、前
記拡張処理装置が、さらに拡張実行手段の演算結果の一
部を保持する出力バッファを備え、前記拡張命令解読手
段は、拡張処理装置からデータ保持手段へのデータ転送
を指示する第2の転送命令を検出した場合、出力バッフ
ァのデータを第2のバスに出力し、前記命令検出手段
は、前記第2の転送命令を検出し、前記オペランド判別
手段は、検出された第2の転送命令のディスチネーショ
ンのデータ保持領域を判別し、前記データ格納手段は、
第2の転送命令のディスチネーションのデータ保持領域
に第2のバスからのデータを格納する。
【0020】請求項10の発明は、請求項9の情報処理
装置において、さらに複数のデータを記憶する領域を有
する退避バッファを備え、前記データ処理装置は、割込
み要求を受け付けると、割込み信号を拡張処理装置に出
力し、前記拡張処理装置は、さらに割込み信号を受ける
と、前記入力バッファおよび出力バッファのデータを退
避バッファに退避させる退避手段と、割り込み処理から
の復帰命令が検出されると、退避バッファのデータを前
記入力バッファ及び出力バッファに復帰させる復帰手段
と、を備え、前記拡張命令解読手段は、割込み処理から
の復帰命令を検出すると、その旨を復帰手段に通知す
る。
【0021】請求項11の発明は、請求項9の情報処理
装置において、前記拡張命令解読手段が、タスクを識別
するタスク番号を伴うタスク切り替え命令を解読し、前
記拡張処理装置は、さらに、複数の前記入力バッファ
と、同数の前記出力バッファとを対にして備え、解読さ
れたタスク切り替え命令に示されるタスク番号に対応さ
せた1対の入力バッファと出力バッファに対するデータ
入出力を許可し、他の入力バッファと出力バッファに対
するデータ入出力を禁止するタスク管理手段を備える。
【0022】
【作用】上記課題を解決するため、請求項1の発明に係
る情報処理装置では、データ処理装置は、拡張処理装置
用の拡張演算命令を解読し、拡張処理装置が必要とする
オペランドデータをデータ保持手段から第1のバスを介
して供給する。拡張処理装置は、供給されたオペランド
データを用いて拡張演算を実行し、演算結果を第2のバ
スを介してデータ処理装置に送り返す。データ処理装置
では、データ格納手段が送り返されたデータをデータ保
持手段に書き戻す。これにより、拡張処理装置がデータ
処理装置のデータ保持手段のデータを用いて演算する場
合に、一旦メモリを介してデータ転送する必要がなくな
り、データ処理装置と拡張処理装置との間で直接データ
の受け渡しをするので、処理能力の高い情報処理装置を
実現することができる。
【0023】請求項2の発明に係る情報処理装置では、
請求項1に加えて、演算種類が互いに異なる拡張演算命
令を実行する複数の前記拡張処理装置を備える。したが
って同時に複数の拡張処理装置を接続して、多様な拡張
演算命令が混在するプログラムを高速に実行することが
できる。請求項3の発明に係る情報処理装置では、請求
項1の情報処理装置に対して、複数のフラグもオペラン
ドデータと同様に、データ処理装置と拡張処理装置との
間で直接受け渡しをするので、より処理能力の高い情報
処理装置を実現することができる。
【0024】請求項4の発明に係る情報処理装置では、
請求項2の情報処理装置に対して、ステージ状態管理手
段が、前記拡張処理装置の拡張演算実行ステージとデー
タ処理装置の実行ステージとで、実際のステージのサイ
クル数を合わせるので、データ処理装置のパイプライン
動作を乱すことなく、拡張演算命令の実行と、データ処
理装置の命令実行との移行をスムーズに行うことができ
る。
【0025】請求項5の発明に係る情報処理装置では、
請求項4の情報処理装置に対して、ステージ状態管理手
段は、拡張実行手段から拡張演算の実行終了通知を受け
ることにより、データ処理装置の命令実行ステージを終
了させる。これにより、前記実行終了通知を伝達する信
号線を追加することにより、パイプライン動作を乱さ
ず、簡単な構成で拡張演算命令への移行をスムーズに行
うことができる。
【0026】請求項6の発明に係る情報処理装置では、
請求項4の情報処理装置において、前記データ処理装置
が、検出手段により検出された拡張演算命令に応じて、
データ処理装置の実行ステージのサイクル数を決定する
決定手段を備え、前記ステージ状態管理手段は、決定さ
れたサイクル数の間命令実行ステージを継続させる。こ
れにより、データ処理装置と拡張処理装置との間に信号
線を追加することなく、また、複数の拡張処理装置の接
続に好適した構成が実現できる。
【0027】請求項7の発明に係る情報処理装置では、
請求項1、3または4の情報処理装置において、第1の
転送命令により、拡張演算命令に必要なオペランドデー
タを事前に入力バッファに格納する。これにより、3つ
以上のオペランドを要する拡張演算命令の実行に好適し
た情報処理装置を実現することができる。請求項8の発
明に係る情報処理装置では、請求項7の情報処理装置に
おいて、割り込み処理の開始時に入力バッファのデータ
を退避バッファに退避させ、割り込み処理からの復帰時
に退避バッファのデータを入力バッファに復帰させる。
これにより、割り込み処理への移行を迅速にすることが
できる。
【0028】請求項9の発明に係る情報処理装置では、
請求項7において、出力バッファは、拡張実行手段の演
算結果の一部を保持する。第2の転送命令により出力バ
ッファのデータがデータ保持手段に格納される。これに
より、拡張演算の結果、複数のデータが生成される場合
でも、演算結果をデータ保持手段に高速に格納すること
ができる。
【0029】請求項10の発明に係る情報処理装置で
は、請求項9の情報処理装置において、割り込み処理の
開始時に入力バッファと出力バッファの双方のデータを
退避バッファに退避させ、割り込み処理からの復帰時に
退避バッファのデータを入力バッファと出力バッファの
双方に復帰させる。これにより、割り込み処理への移行
を迅速にすることができ、より柔軟な拡張演算をするこ
とができる。
【0030】請求項11の発明に係る情報処理装置で
は、請求項9の情報処理装置において、タスク管理手段
は、複数のタスクを処理する場合に、各タスクに対応し
て1対の入力バッファと出力バッファとが使用される。
これにより、高速なタスクスイッチを実現できる。
【0031】
【実施例】
<第1実施例>図1は、本発明の第1の実施例における
情報処理装置の構成を示すブロック図である。この情報
処理装置は、プロセッサ101、拡張演算器102、メ
モリ103を備え、データ処理部入力バス124、デー
タ処理部出力バス125、命令供給バス126、データ
バス127、データバス128、フラグデータバス13
0、フラグデータバス131により同図に示すように接
続されている。
【0032】プロセッサ101は、デコーダ104、制
御回路105、汎用レジスタ106、フラグ格納レジス
タ108、命令レジスタ112、マイクロ命令レジスタ
113、データラッチ114、レジスタライトバッファ
116、メモリライトバッファ117、拡張演算器用デ
ータラッチ118、状態管理部129、パイプラインラ
ッチ143 パイプラインラッチ143パイプラインラ
ッチ143、ドライバ121〜123、132〜13
5、第1データ処理部140、第2データ処理部141
を備え、命令フェッチステージ、命令解読ステージ、第
1実行ステージ、第2実行ステージ、書き込みステージ
をからなる5段のパイプライン処理によりメモリ103
の命令を実行する。メモリ103の命令にはプロセッサ
101に対する命令(以後、プロセッサ命令と呼ぶ)と
拡張演算器102に対する命令(以後、拡張命令と呼
ぶ)とが存在するが、プロセッサ101は、命令解読ス
テージにおいて、拡張命令を解読した場合に、当該命令
のオペランドで指定されたソースデータを汎用レジスタ
106から読み出して拡張演算器102に供給し、さら
に拡張演算器102による演算結果を汎用レジスタ10
6に格納するよう構成されている。本実施例ではプロセ
ッサ101は32ビットプロセッサとし、特に明記して
いない限りバス幅も32ビットであるものとする。
【0033】拡張演算器102は、デコーダ109、制
御回路110、命令レジスタ119、マイクロ命令レジ
スタ120、第1〜第3パイプラインラッチ160〜1
62、第1拡張処理部150、第2拡張処理部151、
第3拡張処理部152、第4拡張処理部153を備え、
拡張演算器102は、拡張演算として例えば乗算、除
算、積和演算、ビットフィールド演算、ストリング演
算、飽和演算、キューイング処理、コンテキスト切り替
え処理、フィルタリング処理などを実行する複数の拡張
演算器の1つであり、用途に応じて必要とされる演算種
類をサポートする拡張演算器が備えられる。本実施例で
は、演算種類を乗算とし、命令解読ステージ、第1〜第
4実行ステージからなるパイプライン処理により乗算を
実行するものとする。乗算を指示する拡張命令の一例を
図2に、示す。同図において、「MULQDm,Dn」は、ソー
スレジスタDm(符号付き32ビット整数)とソースレ
ジスタDn(符号付き32ビット整数)の内容を乗算
し、結果(64ビット)の下位32ビットをディスチネ
ーションレジスタDnに、上位32ビットを汎用レジス
タ106中の乗算レジスタMRに格納する。「MULQ imm
8,Dn」は、8ビット即値データを32ビット整数に符号
拡張した値とソースレジスタDn(符号付き32ビット
整数)の内容を乗算し、結果をレジスタDn、MRに格
納する。「MULQ imm16,Dn」、「MULQ imm32,Dn」も同様
である。
【0034】メモリ103は、プロセッサ命令及び拡張
命令からなるプログラムと、プロセッサ101と拡張演
算器102とで用いるデータとを記憶する。デコーダ1
04は、メモリ103から命令供給バス126、命令レ
ジスタ112を介してフェッチされたプロセッサ命令及
び拡張命令を命令解読ステージにおいて解読し、当該命
令を実現するマイクロ命令を出力する。より詳しくいう
と、デコーダ104は、解読の結果が拡張命令である場
合(図2の例では、命令コードの上位4ビットがFHの
場合)には、(1)拡張命令のオペランドで指定されたソ
ースレジスタを読み出すマイクロ命令と、(2)ソースレ
ジスタから読み出されたデータを拡張演算器用データラ
ッチ118にラッチさせるマイクロ命令と、(3)フラグ
格納レジスタ108のフラグデータをフラグデータバス
130にドライバ134を介して出力させるマイクロ命
令と、(4)第1、第2データ処理部140に対するNO
P(no operation)を指示するマイクロ命令と、(5)拡張
演算器102の演算結果をオペランドで指定されたディ
スチネーションレジスタに格納させるマイクロ命令と、
(6)拡張演算器102からのフラグデータをドライバ1
35を介してフラグ格納レジスタ108に格納するマイ
クロ命令とを発行する。このうち前三者のマイクロ命令
は、マイクロ命令レジスタ113を経由しないで直接制
御回路105に出力され、他のマイクロ命令は、マイク
ロ命令レジスタ113を経由して制御回路105に出力
される。従って、前三者のマイクロ命令は、命令解読ス
テージにおいて先行的に実行される。また、上記マイク
ロ命令は、上記(1)〜(6)を内容とするものであれば良
く、1つのマイクロ命令でも複数のマイクロ命令でもよ
い。
【0035】さらにデコーダ104は、拡張命令の種別
に応じて継続数を決定し、その継続数を状態管理部12
9に出力する。ここで、継続数とは、プロセッサ101
の実行ステージ数と拡張演算器102の実行ステージ数
との差を表し、拡張命令実行中にプロセッサ101が追
加すべきアイドル状態(NOP)の実行ステージ数を指
す。本実施例では、拡張演算器102、プロセッサ10
1の実行ステージ数はそれぞれ4段、2段であるので、
デコーダ104は、解読の結果、拡張命令が乗算命令で
ある場合(図2の例では、命令コードの上位8ビットが
F6H、F9H、FBHである場合)には継続数を2と
決定する。
【0036】プロセッサの制御回路105は、デコーダ
104から直接あるいはマイクロ命令レジスタ113を
介して入力されるマイクロ命令を各種制御信号に変換す
るとともに、パイプライン処理を制御する回路である。
拡張命令の解読結果として上記(1)、(2)、(3)のマイク
ロ命令が入力された場合には、当該命令の実行ステージ
に先行して当該命令の解読ステージにおいて、汎用レジ
スタ106の指定されたレジスタの読み出し信号及びド
ライバ122を開く制御信号と、拡張演算器用データラ
ッチ118にラッチさせる制御信号と、ドライバ134
を開く制御信号とを出力する。また、上記(5)、(6)のマ
イクロ命令が入力された場合には、汎用レジスタ106
にラッチさせる制御信号及び汎用レジスタ106の指定
されたレジスタの書き込み信号と、ドライバ135を開
く制御信号とを出力する。
【0037】汎用レジスタ106は、32ビットデータ
を保持するレジスタD0〜D3、乗算結果の上位32ビ
ットを保持する乗算レジスタMRを備える。命令レジス
タ112は、制御回路105の制御により、命令供給バ
ス126を介してメモリ103からフェッチされた命令
をデコーダ104へ出力する。この出力は、命令フェッ
チステージから命令解読ステージに変化する毎に、次の
命令に切り替えられる。
【0038】フラグ格納レジスタ108は、プロセッサ
ステータスを表す各種フラグを保持し、プロセッサ10
1の第2データ処理部141で生成されるフラグと、拡
張演算器102の第4拡張処理部153で生成されるフ
ラグとの双方が制御回路105の制御により反映され
る。マイクロ命令レジスタ113は、制御回路105の
制御により、デコーダ104からのマイクロ命令を制御
回路105へ出力する。この出力は、命令解読ステージ
から第1実行ステージに変化する毎に次のマイクロ命令
(又はマイクロ命令列)に切り替えられる。
【0039】データラッチ114は、制御回路105か
らの制御により、データ処理部入力バス124介して汎
用レジスタ106から読み出されたオペランドデータを
第1データ処理部140へ出力する。この出力は、命令
解読ステージから第1実行ステージに変化する毎に切り
替えられる。レジスタライトバッファ116は、第2実
行ステージ終了後に、制御回路105の制御により、デ
ータ処理部出力バス125からのデータを汎用レジスタ
106へ出力する。
【0040】メモリライトバッファ117は、第2実行
ステージ終了後に、制御回路105の制御により、デー
タ処理部出力バス125からのデータをデータバス12
8上へへ出力する。拡張演算器用データラッチ118
は、命令解読ステージから第1実行ステージに変化する
ときに、制御回路105の制御により、データ処理部入
力バス124を経由するレジスタデータを拡張演算器1
02へ出力する。
【0041】プロセッサのドライバ121は、制御回路
105の制御によりゲートを開いて、データバス127
を経由するメモリ103のデータをデータ処理部入力バ
ス124へ伝達するドライバである。ドライバ122
は、制御回路105の制御によりゲートを開いて、汎用
レジスタ106からデータ処理部入力バス124へデー
タを伝達するドライバである。
【0042】ドライバ123は、制御回路105の制御
によりゲートを開いて、第2データ処理部141からデ
ータ処理部出力バス125へデータを伝達するドライバ
である。データ処理部入力バス124は、プロセッサ1
01内部では汎用レジスタ106、メモリ103からの
データを第1データ処理部140及び拡張演算器用デー
タラッチ118に伝達し、拡張演算器102内部では拡
張演算器用データラッチ118からのデータを第1拡張
処理部150に伝達する。注目すべき点は、データ処理
部入力バス124が、プロセッサ101内部の汎用レジ
スタ106のデータを拡張演算器用データラッチ118
を通して拡張演算器102の第1拡張処理部150に伝
達する点である。このバスは、本実施例では32ビット
×2本のビット数であるものとする。
【0043】データ処理部出力バス125は、プロセッ
サ101内の第2データ処理部141から、及び、拡張
演算器102内の第1の拡張処理部153から、プロセ
ッサ101内のレジスタライトバッファ116、メモリ
ライトバッファ117へ実行結果を伝達する。データ処
理部出力バス125は、プロセッサの第1データ処理部
140と拡張演算器の第2拡張処理部153とで処理さ
れたデータを、汎用レジスタ106メモリ103とのデ
ータに伝達するバスである。このバスは、本実施例では
32ビット×2本のビット数であるものとする。
【0044】命令供給バス126は、メモリ103に格
納された命令を、プロセッサ101内の命令レジスタ1
12と拡張演算器102内の命令レジスタ119とに伝
達するバスである。データバス127は、メモリ103
に格納されたデータを、ドライバ121を介してデータ
処理部入力バス124に、伝達する。
【0045】データバス128は、データ処理部出力バ
ス125からのデータをメモリライトバッファ117を
介してメモリ103へ伝達する。状態管理部129は、
プロセッサ101の全てのパイプラインステージの状態
を管理し、現在のステージの次のサイクルで次の処理に
移るか、現在のステージをそのまま継続するかを管理す
る。より詳しくいうと、状態管理部129は、パイプラ
インステージの状態を表すフラグ情報を保持する。フラ
グ情報は、現在のステージの次のサイクルで次の処理に
移ることを表す「次ステージ実行状態」と、次のサイク
ルで現在のステージをそのまま継続することを表す「現
ステージ継続状態」とを表す。デコーダ104によりプ
ロセッサ命令が解読された場合には、フラグ情報は「次
ステージ実行状態」を示し、第1実行ステージと第2実
行ステージとの2ステージ分で命令実行が終了する。デ
コーダ104により拡張命令が解読された場合には、デ
コーダ104から上記の継続数が通知され、第2次実行
ステージにおいて当該継続数分のステージ数が「現ステ
ージ継続状態」となる。例えば継続数2が通知される
と、フラグ情報は、第1実行ステージでは「次ステージ
実行状態」を示し、第2実行ステージでは「現ステージ
継続状態」→「現ステージ継続状態」→「次ステージ継
続状態」変化する。このようにして、状態管理部129
は、拡張演算器102における拡張命令の実行ステージ
数に、プロセッサ101における実行ステージ数を合わ
せるように状態を管理する。
【0046】フラグデータバス130は、フラグ格納レ
ジスタ108のフラグデータを拡張演算器102伝達す
るバスである。このバスはフラグ数と同数のビット幅で
よい。フラグデータバス131は、第4拡張処理部15
3で処理されたフラグデータを、プロセッサ101内の
フラグ格納レジスタ108に伝達するバスである。この
バスもフラグ数と同数のビット幅でよい。
【0047】ドライバ132は、プロセッサの制御回路
105の制御によりゲートを開いて、フラグ格納レジス
タ108から第1データ処理部140へフラグデータを
伝達するドライバである。ドライバ133は、制御回路
105の制御によりゲートを開いて、第2データ処理部
141からフラグ格納レジスタ108へフラグデータを
伝達するドライバである。
【0048】ドライバ134は、制御回路105の制御
によりゲートを開いて、フラグ格納レジスタ108から
拡張演算器102へフラグデータを伝達するドライバで
ある。ドライバ135は、制御回路105の制御により
ゲートを開いて、拡張演算器102からフラグ格納レジ
スタ108へ、フラグデータを伝達するドライバであ
る。
【0049】第1データ処理部140は、制御回路10
5の制御により第1実行ステージにおけるデータ処理を
行う。デコーダ104により拡張命令が解読された場合
には、制御回路105の制御によりアイドル状態(NO
P)となる。第2データ処理部141は、プロセッサ1
01の第2実行ステージにおけるデータ処理を行う。デ
コーダ104により拡張命令が解読された場合には、制
御回路105の制御によりアイドル状態(NOP)とな
る。
【0050】パイプラインラッチ143は、第1実行ス
テージから第2実行ステージに変化するときに、パイプ
ライン制御を行うプロセッサの制御回路105からの制
御により、プロセッサの第1データ処理部140から、
第2データ処理部141へ、ラッチを開いてデータを伝
達する。同図の拡張演算器102において、デコーダ1
09は、メモリ103から命令供給バス126、命令レ
ジスタ112を介してフェッチされた命令を命令解読ス
テージにおいて解読する。解読の結果が拡張命令である
場合には、拡張命令のOPコードが示す演算内容を実現
するマイクロ命令を発行する。ここで注意すべきは、拡
張命令のオペランドにレジスタが対して(例えば図2の
乗算命令)、オペランドデータの読み出し及び書き込み
を指示するマイクロ命令を発行する必要がない点であ
る。オペランドレジスタの読み出し及び書き込みはプロ
セッサ101により実行されるからである。
【0051】制御回路110は、デコーダ109からマ
イクロ命令レジスタ120を介して入力されるマイクロ
命令を各種制御信号に変換するとともに、パイプライン
処理を制御する回路である。命令レジスタ119は、命
令供給バス126を介してメモリ103からフェッチさ
れた命令をデコーダ109へ出力する。この出力は、命
令フェッチステージから命令解読ステージに変化する毎
に、次の命令に切り替えられる。
【0052】マイクロ命令レジスタ120は、命令解読
ステージから第1実行ステージに変化するときに、パイ
プライン制御を行う制御回路110からの制御により、
デコーダ109からのマイクロ命令を制御回路110出
力する。この出力は、命令解読ステージから第1実行ス
テージに変化する毎に次のマイクロ命令(又はマイクロ
命令列)に切り替えられる。
【0053】第1拡張処理部150は、拡張演算器10
2の第1実行ステージにおけるデータ処理を行う。第2
拡張処理部151は、拡張演算器102の第2実行ステ
ージにおけるデータ処理を行う。第1拡張処理部152
は、拡張演算器102の第3実行ステージにおけるデー
タ処理を行う。
【0054】第1拡張処理部153は、拡張演算器10
2の第4実行ステージにおけるデータ処理を行う。第1
パイプラインラッチ160は、第1実行ステージから第
2実行ステージに変化するときに、制御回路110の制
御により、第1拡張処理部150から第2拡張処理部1
51へラッチを開いてデータを伝達する。
【0055】第2パイプラインラッチ161は、第2実
行ステージから第3実行ステージに変化するときに、制
御回路110の制御により、第2拡張処理部151から
第3拡張処理部152へラッチを開いてデータを伝達す
る。第3パイプラインラッチ162は、第3実行ステー
ジから第4実行ステージに変化するときに、制御回路1
10からの制御により第3拡張処理部152から第4拡
張処理部153へラッチを開いてデータを伝達する。
【0056】以上のように構成され本発明の第1の実施
例における情報処理装置について、その動作を説明す
る。図3は、拡張演算器102において、プロセッサ1
01の汎用レジスタ106とフラグ格納レジスタ108
とのデータを処理を行い、処理結果をデータを汎用レジ
スタ106とフラグ格納レジスタ108とに格納する動
作について、パイプライン処理の状態を表すタイムチャ
ートを示す。
【0057】同図において、”IF1”はプロセッサにお
いて拡張命令をフェッチするステージである。”DP1”
はプロセッサにおいて拡張命令を解読するステージであ
る。”EXP1”、”EXP2”はそれぞれプロセッサにおいて
拡張命令を実行する(NOP)第1、第2ステージであ
る。”WB1”はプロセッサにおいて拡張演算器の演算結
果を書き込むステージである。”DE1”は拡張演算器に
おいて拡張命令を命令解読するステージである。”EXE
1”、”EXE2”、”EXE3”、”EXE4”は、それぞれ拡張
演算器において拡張命令を実行する第1、第2、第3、
第4ステージである。”次IF”はプロセッサにおいてIF
1でフェッチされた次の命令をフェッチするステージで
ある。”次DP”はプロセッサにおいて次の命令を解読す
るステージである。”次EXP1”、”次EXP2”は、それぞ
れプロセッサにおいて次の命令を実行する第1、第2ス
テージである。
【0058】時刻1において、プロセッサの命令フェッ
チステージ(IF1)では、メモリ103は、命令をメモ
リからプロセッサと拡張演算器とへの命令供給バス12
6に載せる。時刻1から時刻2に変化するとき、プロセ
ッサ101の制御回路105は、IF1からDP1へ移行させ
るため、プロセッサの命令レジスタ112を開ける。拡
張演算器102の制御回路110は、IF1からDE1へ移行
させるため、命令レジスタ119を開ける。
【0059】時刻2において、プロセッサの命令フェッ
チステージ(次IF)では、メモリ103は、次命令をメ
モリからプロセッサと拡張演算器とへの命令供給バス1
26に載せる。プロセッサの命令解読ステージ(DP1)
では、プロセッサのデコーダ104は、命令レジスタ1
12が開いたとき、命令を受け取り、命令を解読する。
制御回路105は、デコーダ104が先行的に出力する
マイクロ命令により、プロセッサのドライバ122を開
けることにより、汎用レジスタ106のデータをデータ
処理部入力バス124に載せ、ドライバ134を開ける
ことによりフラグ格納レジスタ108のフラグ情報をフ
ラグデータバス130に載せる。
【0060】拡張演算器の命令解読ステージ(DE1)で
は、拡張演算器のデコーダ109は、命令レジスタ11
9が開いたとき、命令を受け取り命令を解読する。時刻
2から時刻3に変化するとき、プロセッサの制御回路1
05は、次IFから次DPへ移行するため、プロセッサの命
令レジスタ112を開ける。プロセッサの制御回路10
5は、DP1からEXP1へパイプラインステージが変化する
ときに、マイクロ命令レジスタ113、データラッチ1
14、拡張演算器用データラッチ118を開ける。拡張
演算器の制御回路110は、DE1からEXE1へパイプライ
ンステージが変化するときに、拡張演算器のマイクロ命
令レジスタ120を開ける。プロセッサの制御回路10
5は、プロセッサのマイクロ命令レジスタ113が開い
たとき、プロセッサのデコーダ104のDP1命令解読ス
テージが解読したマイクロ命令を受け取る。拡張演算器
の制御回路110は、拡張演算器のマイクロ命令レジス
タ120が開いたとき、拡張演算器のデコーダ109の
命令解読ステージ(DE1)が解読したマイクロ命令を受
け取る。
【0061】時刻3において、プロセッサの命令解読ス
テージ(DP1)ではプロセッサのデコーダ104は、プ
ロセッサの命令レジスタ112が開いたとき、次命令を
受け取り命令を解読する。プロセッサの第1命令実行ス
テージ(EXP1)では、プロセッサの第1データ処理部1
40は、データ処理を行わない(NOP)。
【0062】拡張演算器の第1命令実行ステージ(EXE
1)では、拡張演算器の第1拡張処理部150は、第1
のデータ処理を行う。時刻3から時刻4に変化すると
き、プロセッサの制御回路105は、次DPから次EXP1へ
パイプラインステージが変化するときに、プロセッサの
マイクロ命令レジスタ113を開ける。プロセッサの制
御回路105は、プロセッサのマイクロ命令レジスタ1
13が開いたとき、プロセッサのデコーダ104の次DP
命令解読ステージが解読したマイクロ命令を受け取る。
【0063】プロセッサの制御回路105は、EXP1から
EXP2へパイプラインステージが変化するときに、プロセ
ッサのパイプラインラッチ143を開ける。拡張演算器
の制御回路110は、EXE1からEXE2へパイプラインステ
ージが変化するときに、拡張演算器の第1パイプライン
ラッチ160を開ける。時刻4において、プロセッサの
第1命令実行ステージ(次EXP1)では、プロセッサの第
1データ処理部140は、次実行命令の第1のデータ処
理を行う。
【0064】プロセッサの第2命令実行ステージ(EXP
2)では、プロセッサの第2データ処理部141は、デ
ータ処理を行わない。状態管理部129は、プロセッサ
の第2データ処理部141がEXP2ステージを実行するこ
とにより、状態が次ステージ実行状態から3ステージ間
の現ステージ継続状態に変化し、現ステージ継続信号を
プロセッサの制御回路105に伝達し続ける。
【0065】拡張演算器の第2命令実行ステージ(EXE
2)では、拡張演算器の第2拡張処理部151は、デー
タ処理を行う。時刻4から時刻5に変化するとき、プロ
セッサの制御回路105は、状態管理部129が伝達し
た現ステージ継続信号により、全てのパイプラインラッ
チを開かない。つまり現在のステージの状態が次のステ
ージにおいても継続する拡張演算器の制御回路110
は、EXE2からEXE3へパイプラインステージが変化すると
きに、拡張演算器の第2パイプラインラッチ161を開
ける。
【0066】時刻5において、プロセッサの第1命令実
行ステージ(次EXP1)ではステージが継続しているの
で、プロセッサの第1データ処理部140は、前述の次
命令実行命令の第1のデータ処理を継続して行う。プロ
セッサの第2命令実行ステージ(EXP2)では、ステージ
が継続しているので、プロセッサの第2データ処理部1
41は、データ処理を行わない。
【0067】拡張演算器の第3命令実行ステージ(EXE
3)では、拡張演算器の第3拡張処理部152は、第3
のデータ処理を行う。時刻4から時刻5に変化すると
き、プロセッサの制御回路105は、状態管理部129
が伝達した現ステージ継続信号により、全てのパイプラ
インラッチを開かない。
【0068】拡張演算器の制御回路110は、EXE3から
EXE4へパイプラインステージが変化するときに、拡張演
算器の第3パイプラインラッチ162を開ける。時刻6
において、プロセッサの第1命令実行ステージ(次EXP
1)では、ステージが継続しているので、プロセッサの
第1データ処理部140は、前述の次命令実行命令の第
1のデータ処理を継続して行う。
【0069】プロセッサの第2命令実行ステージ(EXP
2)では、ステージが継続しているので、プロセッサの
第2データ処理部141は、データ処理を行わない(N
OP)。状態管理部129は、プロセッサの第2データ
処理部141が3ステージ間EXP2ステージを継続した
(2ステージ分が追加された)ことにより継続数2を経
過したので、現ステージ継続状態から次ステージ実行状
態に変化し、現ステージ継続信号をプロセッサの制御回
路105に伝達を止める。
【0070】拡張演算器の第4命令実行ステージ(EXE
4)では、第4拡張処理部153は、データ処理を行
い、結果データとフラグ情報とを出力し、フラグデータ
バス131に載せる。拡張演算器の制御回路110は、
拡張演算器のドライバ154を開けることにより、拡張
演算器の第4拡張処理部153が処理したデータをデー
タ処理部出力バス125に載せる。
【0071】時刻6から時刻7に変化するとき、プロセ
ッサの制御回路105は、次EXP1から次EXP2へパイプラ
インステージが変化するときに、プロセッサのパイプラ
インラッチ143を開ける。プロセッサの制御回路10
5は、EXP2からWB1へパイプラインステージが変化する
ときに、ドライバ123を開け、かつドライバ135を
開けることによりフラグデータバス131のフラグ情報
をフラグ格納レジスタ108に伝達する。
【0072】時刻7において、プロセッサの第2命令実
行ステージ(次EXP2)では、プロセッサの第2データ処
理部141は、次命令実行の第2のデータ処理を行う。
プロセッサの書き込みステージ(WB1)では、汎用レジ
スタ106は、プロセッサと拡張演算器とのデータ処理
部出力バス125のデータを受け取り、格納する。フラ
グ格納レジスタ108は、拡張演算器からプロセッサへ
のフラグデータバス131のフラグ情報を受け取り、格
納する。
【0073】以上のように拡張演算器102は、プロセ
ッサ101内の汎用レジスタ106のデータを直接用い
て演算することができるので、メモリを介してデータの
受け渡しが不要な分だけ高速に実行することができる。
また、プロセッサ101内のフラグ格納レジスタ108
のフラグを参照する場合も同様に高速に実行することが
できる。しかも転送時のデータ不一致が生じることな
く、またプロセッサ101と拡張演算器102とのパイ
プライン処理を乱すことなく実行時間が短縮することが
できる。
【0074】また、拡張演算器102が不要である場
合、プロセッサ101と拡張演算器102と接続バスで
ある拡張演算器とのデータ処理部入力バス124と、拡
張演算器とのデータ処理部出力バス125と、メモリか
らプロセッサと拡張演算器とへの命令供給バス126
と、プロセッサから拡張演算器へのフラグデータバス1
30と、拡張演算器からプロセッサへのフラグデータバ
ス131とを切り離すことが可能である。
【0075】また、従来例で示すように、拡張演算器で
データを処理する場合に、処理するデータをメモリを介
して拡張演算器に転送する必要がなく、実行時間を短縮
することができる。さらに、実施例1では、プロセッサ
101のデコーダ104が拡張命令の種類に応じて継続
数を判別していたが、例えば拡張演算器102の何れか
のデータ処理部から状態管理部129へ演算終了信号線
を接続し、この演算終了信号により、状態管理部129
のステート継続を終了するように構成してもよい。ま
た、拡張命令自身に、プロセッサ101と拡張演算器1
02とのパイプライン段数の差の情報を持たせ、デコー
ダがこの情報より状態管理部129はステート継続回数
を決定するように構成してもよい。
【0076】なお、上記実施例では、プロセッサ101
に対して1つの拡張演算器102を接続した場合の構成
を説明したが、種類が異なる複数の拡張演算器を接続す
る構成としてもよい。例えば、乗算を実行する拡張演算
器と、積和演算を実行する拡張演算器と、除算を実行す
る拡張演算器とを接続する場合、プロセッサ101とそ
れぞれの拡張演算器との間で、命令供給バス126、デ
ータ処理部入力バス124、データ処理部出力バス12
5、フラグデータバス130、フラグデータバス131
の5本のバスを接続する構成とすればよい。この場合、
それぞれの拡張演算器に対する拡張命令は、その命令コ
ードのビットパターンがユニークに割当てられている必
要がある。プロセッサ101は、どの拡張演算器に対す
る拡張命令であっても上記実施例と同様にレジスタデー
タ及びフラグの供給と格納を、上記バス上に行うことに
なる。それぞれの拡張演算器は、命令を解読した結果、
自身に対する拡張命令のみを上記実施例と同様に実行す
ることになる。
【0077】また、上記実施例では、プロセッサ101
が2段、拡張演算器102が4段の実行ステージを持つ
パイプライン処理を行う例を示したが、それぞれのこれ
以外の段数であってもよい。拡張演算器102がb(1
≦b)段の実行ステージを持ち、プロセッサがb以下の
c段(1≦c≦b)の実行ステージを持つ場合には、第
c段目のに状態管理部を設け、b−cの値を継続数とし
てデコーダから状態管理部に通知するように構成すれば
よい。また、プロセッサの実行ステージ数cが拡張演算
器の実行ステージ数bより多い場合(c>b)には、継
続数を0として通知すればよい。この場合、プロセッサ
は、c段分の実行ステージが終了して時点で拡張演算器
からの演算結果を取り込み、拡張演算器は、b段分の実
行ステージ終了時点からプロセッサがc段分の実行ステ
ージを終了して演算結果を取り込むまで出力することに
なる。
【0078】また、命令供給バス126は、プロセッサ
の命令レジスタ112の入力側と拡張演算器の命令レジ
スタ119の入力側とに接続しているが、この代わり
に、命令供給バスをメモリ103からプロセッサの命令
レジスタ112の入力側のみに接続し、プロセッサの命
令レジスタ112の出力側から拡張演算器のデコーダ1
09へ接続する他のバスを設ける構成としてもよい。こ
の場合、拡張演算器の命令レジスタ119を削除できる
とともに、命令供給バスの電気的付加を低減することが
できる。
【0079】さらに、本情報処理装置を1つのLSI上
に構成する場合に、図12に示すレイアウト図のよう
に、プロセッサ101については、主としてデコーダ1
04、制御回路105からなるコントロールモジュール
部と、第1、第2データ処理部140、141とデータ
バス(データ処理部入力バス124、データ処理部出力
バス125、命令供給バス126)等からなるデータパ
ス部とに分類してレイアウトされる。拡張演算器102
についても、主としてデコーダ109、制御回路110
からなるコントロールモジュール部と、第1〜第4拡張
処理部150〜153とデータバス等からなるデータパ
ス部とに分類してレイアウトされる。この中で、通常、
データパス部のレイアウトの一辺は、データバスのビッ
トスライス(データバスのビット幅)に依存するので、
本情報処理装置ではデータバスが共通であることから、
演算種類の異なる新たな拡張演算器を容易に設計するこ
とができ、拡張演算器102を備える場合も備えない場
合も容易に製造することができ、さらに、演算種別が異
なる複数の拡張演算器を1チップ上に備えることも容易
にできる。 <第2実施例>図4は、本発明の第2の実施例における
情報処理装置の構成を示すブロック図である。この情報
処理装置は、プロセッサ201、拡張演算器202、メ
モリ103、退避データ保持バッファ232、ドライバ
259とから構成される。図1に示した第1実施例の構
成と、同じ構成要素には、同じ符号を付してある。以下
同じ構成要素については説明を省略し、異なる点を中心
に説明する。
【0080】同図においてプロセッサ201は、説明の
便宜上命令実行ステージ数は1であるものとし、命令フ
ェッチステージ、命令解読ステージ、命令実行ステー
ジ、書き込みステージからなる4段のパイプライン処理
を行うものとする。第1の実施例と異なる主要な点は、
プロセッサ201と拡張演算器202との間で汎用レジ
スタ106のデータを転送する転送命令(以下、拡張転
送命令と呼ぶ)を実行する点と、割り込み処理開始時に
拡張演算器202にその旨を通知し、その通知に対する
応答を確認してから割り込み処理へ分岐する点である。
このため、割り込み要求信号線240、割り込み信号線
241、完了信号線242が追加されている。また、デ
ータ処理部出力バス125は、第1実施例では32ビッ
ト×2構成としたが、本実施例では、32ビット×1構
成でよい。
【0081】拡張演算器202は、説明の便宜上命令実
行ステージ数は1であるものとし、命令フェッチステー
ジ、命令解読ステージ、命令実行ステージ、書き込みス
テージからなる4段のパイプライン処理を行うものとす
る。第1の実施例と異なる点は、上記拡張転送命令を実
行する点と、プロセッサ201から割り込み処理開始の
通知を受けると、実行中の拡張命令の中断してデータを
退避し、準備ができたことをプロセッサ201に応答す
る点である。そのため、データ処理部入力バッファ23
0、データ処理部出力バッファ231、退避データ保持
バッファ232、その周辺にドライバ250、251、
253〜259が追加されれ、データ処理部入力バッフ
ァ退避バス243、データ処理部出力バッファ復帰バス
245で接続されている。
【0082】ここで、拡張転送命令は、本実施例におい
てはプロセッサ201内部の汎用レジスタ106から、
拡張演算器202内部のデータ処理部入力バッファ23
0へのデータ転送命令と、拡張演算器202内部のデー
タ処理部出力バッファ231から、プロセッサ201内
部の汎用レジスタ106へのデータ転送命令をいう。例
えば、次のように、通常の転送命令(MOVE命令)の
ディスチネーション、ソースにデータ処理部入力バッフ
ァ230(ex_inBUF と略す)、データ処理部出力バッ
ファ231(ex_outBUF と略す)が指定された形式で表
される。 MOV Dn,ex_inBUF ;レジスタDn → ex_inBUFへデー
タ転送 MOV ex_outBUF,Dn ; ex_outBUF → レジスタDnへデ
ータ転送 本実施例にでは、拡張演算器202は、オペランドデー
タが3つ以上の多項演算指示する拡張命令、例えばDn
*Dm+Dlという3項演算を実行するものとする。こ
の場合、拡張転送命令は、3項演算のオペランドデータ
の1つDlの値を事前に拡張演算器202に転送するた
めに利用される。また、3項演算の演算結果が複数ワー
ドに増える場合に、演算後に演算結果の一部をプロセッ
サ201に転送することにも利用される。
【0083】プロセッサ201において割り込み要求信
号線240は、プロセッサ201の外部からの割り込み
要求をプロセッサの制御回路205へ伝達する。割り込
み信号線241は、プロセッサ201の制御回路205
から、拡張演算器202の制御回路210へ割り込み要
求を伝達する。完了信号線242は、割り込み要求時の
処理と割り込み処理完了時の処理との完了を、拡張演算
器202の制御回路210からプロセッサ201の制御
回路205へ伝達する。
【0084】デコーダ204は、第1実施例のデコーダ
104の機能に加えて、拡張転送命令を解読する点が異
なる。より具体的には、解読の結果、転送命令のソース
として汎用レジスタ106が、ディスチネーションとし
てデータ処理部入力バッファ230が指定されている場
合(MOV Dn,ex_inBUFの場合)、(P1.1)レジスタDnから
データを読み出すマイクロ命令と、(P1.2)ドライバ12
2を開いてソースレジスタから読み出されたデータを拡
張演算器用データラッチ118にラッチさせるマイクロ
命令とを発行する。解読の結果、MOV ex_outBUF,Dn の
場合、(P2.1)データ処理部出力バス125からのデータ
をレジスタライトバッファ116にラッチさせるマイク
ロ命令と、(P2.2)レジスタライトバッファ116のデー
タをレジスタDnに書き込みマイクロ命令とを発行する。
また、解読の結果、割り込み処理からの復帰を指示する
命令(rti命令と略す)である場合には、(P3.1)復帰
処理(戻り先アドレスの復帰等)を指示するマイクロ命
令を発行する。
【0085】制御回路205は、第1実施例の制御回路
105の機能に加えて、外部から割り込み要求信号線2
40を介して割り込み要求を受け付けた場合に、割り込
み信号線241を介して拡張演算器202の制御回路2
10に通知した後、拡張演算器202から完了信号線2
42を介して準備完了を示す応答が返ってきた時点で割
り込み処理への分岐を制御する。また、上記(P1.1)(P1.
2)(P2.1)(P2.2)(P3.1)の各マイクロ命令に対応する制御
信号を出力する。
【0086】データ処理部207は、プロセッサ201
の実行ステージにおける処理を実行する。拡張演算器2
02においてデコーダ209は、第1実施例のデコーダ
109の機能に加えて、拡張転送命令及び割り込み復帰
命令を解読する点とが異なっている。より具体的には、
解読の結果、MOV Dn,ex_inBUFである場合、(E1.1)ドラ
イバ251を開いてデータ処理部入力バス124からの
データをデータ処理部入力バッファ230に出力させる
マイクロ命令と、(E1.2)データ処理部入力バス124か
らドライバ251を介して伝達されるデータをデータ処
理部入力バッファ230にラッチさせるマイクロ命令と
を発行する。また、解読の結果、MOV ex_outBUF,Dn の
場合、(E2.1)ドライバ257を開いてデータ処理部出力
バッファ231のデータをデータ処理部出力バス125
に出力させるマイクロ命令と、(E2.2)レジスタライトバ
ッファ116のデータをレジスタDnに書き込みマイクロ
命令とを発行する。また、解読の結果、割り込み処理か
らの復帰命令(rti命令と略す)である場合には、(E
4.1)退避データ保持バッファ232の退避データを読み
出してドライバ259を開くマイクロ命令と、(E4.2)ド
ライバ251を開いてデータ処理部入力バッファ230
に書き込むマイクロ命令と、(E4.3)退避データ保持バッ
ファ232の他の退避データを読み出してドライバ25
9を開くマイクロ命令と、(E4.4)ドライバ256を開い
てデータ処理部出力バッファ231に書き込むマイクロ
命令と、(E4.5)完了信号線242の出力を指示するマイ
クロ命令とを発行する。
【0087】制御回路210は、第1実施例の制御回路
110の機能に加えて、割り込み処理開始時に退避デー
タ保持バッファ232への退避処理を行う。より具体的
には、割り込み信号線241を介して割り込み信号を受
けた場合に、(E3.1)ドライバ258を開いてデータ処理
部入力バッファ230のデータをデータ処理部出力バス
125に出力させる制御と、(E3.2)データ処理部出力バ
ス125上のデータを退避データ保持バッファ232に
書き込む制御と、(E3.3)ドライバ257を開いてデータ
処理部出力バッファ231のデータをデータ処理部出力
バス125に出力する制御と、(E3.4)データ処理部出力
バス125上のデータを退避データ保持バッファ232
に書き足す制御と、(E3.5)完了信号線242の出力とを
行う。また、上記(E1.2)(E1.2)(E2.1)(E2.2)(E4.1)(E4.
2)(E4.3)(E4.5)の各マイクロ命令に対応する各種制御信
号を出力する。
【0088】拡張処理部211は、拡張演算器202の
実行ステージにおける拡張命令を実行する。データ処理
部入力バッファ230は、拡張処理部211が複数のオ
ぺランドを用いて処理するために、プロセッサと拡張演
算器とのデータ処理部入力バス124から転送されるオ
ぺランドを保持するバッファである。
【0089】データ処理部出力バッファ231は、拡張
処理部211が処理し、その結果、複数のデータを出力
するために、プロセッサと拡張演算器とのデータ処理部
出力バス125に転送するデータを保持するバッファで
ある。退避データ保持バッファ232は、拡張演算器の
データ処理部入力バッファ230と拡張演算器のデータ
処理部出力バッファ231とのデータを退避するバッフ
ァであり、本実施例では、32ビットデータ2つ分の容
量を有する先入れ先だし方式のFIFOメモリであるも
のとする。退避データ保持バッファ232は、プロセッ
サ201と拡張演算器202との外部に設置されている
が、プロセッサ201が持つ、あるいは拡張演算器20
2が持つ場合でもよい。また、退避データ保持バッファ
232は、プロセッサと拡張演算器とのデータ処理部出
力バス125に接続されているが、プロセッサと拡張演
算器とのデータ処理部入力バス124とメモリからプロ
セッサへのデータバス127とプロセッサからメモリへ
のデータバス128との何れかに接続してもよい。
【0090】データ処理部入力バッファ退避バス243
は、割り込み要求時に、拡張演算器のデータ処理部入力
バッファ230のデータを、退避データ保持バッファ2
32へ退避するバスである。データ処理部入力バッファ
復帰バス244は、割り込み処理完了時に、退避データ
保持バッファ232に退避したデータを、拡張演算器の
データ処理部入力バッファ230へ復帰するバスであ
る。
【0091】データ処理部出力バッファ復帰バス245
は、割り込み処理完了時に、退避データ保持バッファ2
32に退避したデータを、拡張演算器のデータ処理部出
力バッファ231へ復帰するバスである。ドライバ25
0は、制御回路205の制御により開いて、データ処理
部入力バス124から拡張処理部211へデータを伝達
する。
【0092】ドライバ251は、制御回路205の制御
により開いて、データ処理部入力バス124からデータ
処理部入力バッファ230へデータを伝達する。ドライ
バ253は、制御回路205の制御により開いて、デー
タ処理部入力バッファ230から拡張処理部211へデ
ータを伝達する。ドライバ254は、制御回路205の
制御により開いて、拡張処理部211からデータ処理部
出力バス125へデータを伝達する。
【0093】ドライバ255は、制御回路205の制御
により開いて、拡張処理部211からデータ処理部出力
バッファ231へデータを伝達する。ドライバ256
は、制御回路205の制御により開いて、データ処理部
入力バス124からデータ処理部出力バッファ231へ
データを伝達する。ドライバ257は、制御回路205
の制御により開いて、データ処理部出力バッファ231
からデータ処理部出力バス125へデータを伝達する。
【0094】ドライバ258は、制御回路205の制御
により開いて、データ処理部入力バッファ230から、
プロセッサと拡張演算器とのデータ処理部出力バス12
5へデータを伝達する。ドライバ259は、退避データ
保持バッファ232が保持している退避データを復帰す
るときに開いて、退避データ保持バッファ232から、
プロセッサと拡張演算器とのデータ処理部入力バス12
4へデータを伝達する。
【0095】以上のように構成された本発明の第2の実
施例における情報処理装置について、その動作を(2.
1)汎用レジスタ106からデータ処理部入力バッファ
230への拡張転送命令の動作、(2.2)データ処理
部入力バッファ230のオペランドデータを用いる拡張
命令の動作、(2.3)データ処理部出力バッファ23
1のデータから汎用レジスタ106への拡張転送命令の
動作、(2.4)割り込み処理開始時のデータ処理部入
力バッファ230およびデータ処理部出力バッファ23
1のデータ退避動作、(2.5)割り込み処理終了時の
データ処理部入力バッファ230及びデータ処理部出力
バッファ231へのデータ復帰動作に分けて説明する。
【0096】(2.1)データ処理部入力バッファ23
0への書き込み動作 図5は、プロセッサの汎用レジスタ106が保持するデ
ータをデータ処理部入力バッファ230へ書き込む拡張
転送命令の実行時のパイプライン処理の状態を表すタイ
ムチャートである。同図において、”IF1”はプロセッ
サにおいて拡張転送命令をフェッチするステージであ
る。”DP1”はプロセッサにおいて拡張転送命令を解読
するステージである。”EXP1”はプロセッサにおいて拡
張転送命令を命令実行する第1ステージでありデータ処
理は行わない(NOP)。”WB1”はプロセッサにおい
て拡張転送命令を演算結果を書き込むステージであ
る。”DE1”は拡張演算器において、拡張転送命令を解
読するステージである。”EXE1”は拡張演算器において
拡張演算器の実行命令を実行するステージである。”入
力保持オペランド”はデータ処理部入力バッファ230
が書き込まれたデータを保持し定理タイミングを表す。
【0097】時刻1において、プロセッサの命令フェッ
チステージでは、メモリ103は、命令をメモリからプ
ロセッサと拡張演算器とへの命令供給バス126に載せ
る。時刻1から時刻2に変化するとき、プロセッサの制
御回路205は、IF1からDP1へ移行するため、プロセッ
サの命令レジスタ112を開ける。拡張演算器の制御回
路210は、IF1からDE1へ移行するため、拡張演算器の
命令レジスタ119を開ける。
【0098】時刻2において、プロセッサの命令解読ス
テージ(DP1)では、プロセッサのデコーダ204は、
プロセッサの命令レジスタ112が開いたとき、命令を
受け取り解読する。プロセッサの制御回路205は、プ
ロセッサのデコーダ204が先行的に出力するマイクロ
命令により、プロセッサのドライバ122を開けること
により、プロセッサの汎用レジスタ106のオペランド
をデータ処理部入力バス124に載せる。
【0099】拡張演算器の命令解読ステージ(DE1)で
は、拡張演算器のデコーダ209は、拡張演算器の命令
レジスタ119が開いたとき、命令を受け取り、命令を
解読する。時刻2から時刻3に変化するとき、プロセッ
サの制御回路205は、DP1からEXP1へパイプラインス
テージが変化するときに、プロセッサのマイクロ命令レ
ジスタ113、114、218を開け、その結果、プロ
セッサのデコーダ204から、プロセッサの制御回路2
05へ、ラッチを開いてマイクロ命令を伝達し、パイプ
ライン制御を行うプロセッサの制御回路205からの制
御により、プロセッサと拡張演算器とのデータ処理部入
力バス124から、プロセッサのデータ処理部207
へ、ラッチを開いてオペランドを伝達し、プロセッサと
拡張演算器とのデータ処理部入力バス124のデータ
が、拡張演算器202に達する。拡張演算器の制御回路
210は、DE1からEXE1へパイプラインステージが変化
するときに、拡張演算器のマイクロ命令レジスタ120
を開ける。プロセッサの制御回路205は、プロセッサ
のマイクロ命令レジスタ113が開いたとき、プロセッ
サのデコーダ204のDP1命令解読ステージが解読した
マイクロ命令を受け取る。拡張演算器の制御回路210
は、拡張演算器のマイクロ命令レジスタ120が開いた
とき、拡張演算器のデコーダ209のDE1命令解読ステ
ージが解読したマイクロ命令を受け取る。
【0100】時刻3において、プロセッサの命令実行ス
テージ(EXP1)では、プロセッサのデータ処理部207
は、データ処理を行わない。拡張演算器の命令実行ステ
ージ(EXE1)では、拡張演算器の制御回路210は、拡
張演算器のドライバ251を開けることにより、プロセ
ッサと拡張演算器とのデータ処理部入力バス124の1
個(32ビット)のオペランドを拡張演算器のデータ処
理部入力バッファ230に伝達する。拡張演算器のデー
タ処理部入力バッファ230は、プロセッサと拡張演算
器とのデータ処理部入力バス124の1個のオペランド
を保持する。
【0101】(2.2)データ処理部入力バッファ23
0のオペランドデータを用いる拡張演算命令の実行動作 図6は、拡張演算器202において、プロセッサの汎用
レジスタ106が保持するデータとデータ処理部入力バ
ッファ230が保持するデータとを用いて、3項演算を
行って、演算結果の一部分をプロセッサの汎用レジスタ
106に転送し、演算結果の他の部分をデータ処理部出
力バッファ231に書き込む拡張命令の動作について、
パイプライン処理の状態を表すタイムチャートである。
同図中”出力保持データ”はデータ処理部出力バッファ
231にデータが保持されているタイミングを表す。
【0102】時刻1において、プロセッサの命令フェッ
チステージ(IF1)では、メモリ103は、命令をメモ
リからプロセッサと拡張演算器とへの命令供給バス12
6に載せる。時刻1から時刻2に変化するとき、プロセ
ッサの制御回路205は、IF1からDP1へプロセッサの命
令レジスタ112を開ける。拡張演算器の制御回路21
0は、IF1からDE1へ移行するため、拡張演算器の命令レ
ジスタ119を開ける。
【0103】時刻2において、プロセッサの命令解読ス
テージ(DP1)では、プロセッサのデコーダ204は、
プロセッサの命令レジスタ112が開いたとき、命令を
受け取り、命令を解読する。プロセッサの制御回路20
5は、プロセッサのデコーダ204が先行的に出力する
マイクロ命令により、プロセッサのドライバ122を開
けることにより、プロセッサの汎用レジスタ106のオ
ペランドをプロセッサと拡張演算器とのデータ処理部入
力バス124に載せる。
【0104】拡張演算器の命令解読ステージ(DE1)で
は、拡張演算器のデコーダ209は、拡張演算器の命令
レジスタ119が開いたとき、命令を受け取り、命令を
解読する。時刻2から時刻3に変化するとき、プロセッ
サの制御回路205は、DP1からEXP1へパイプラインス
テージが変化するときに、プロセッサのマイクロ命令レ
ジスタ113、114、218を開け、その結果、プロ
セッサのデコーダ204からプロセッサの制御回路20
5へ、ラッチを開いてマイクロ命令を伝達し、パイプラ
イン制御を行うプロセッサの制御回路205からの制御
により、プロセッサと拡張演算器とのデータ処理部入力
バス124から、プロセッサのデータ処理部207へ、
ラッチを開いてオペランドを伝達し、プロセッサと拡張
演算器とのデータ処理部入力バス124のデータが、拡
張演算器202に達する。拡張演算器の制御回路210
は、DE1からEXE1へパイプラインステージが変化すると
きに、拡張演算器のマイクロ命令レジスタ120を開け
る。プロセッサの制御回路205は、プロセッサのマイ
クロ命令レジスタ113が開いたとき、プロセッサのデ
コーダ204のDP1命令解読ステージが解読したマイク
ロ命令を受け取る。拡張演算器の制御回路210は、拡
張演算器のマイクロ命令レジスタ120が開いたとき、
拡張演算器のデコーダ209のDE1命令解読ステージが
解読したマイクロ命令を受け取る。
【0105】時刻3において、プロセッサの命令実行ス
テージ(EXP1)では、プロセッサのデータ処理部207
は、データ処理を行わない。拡張演算器の命令実行ステ
ージ(EXE1)では、拡張演算器の制御回路210は、拡
張演算器のドライバ250を開けることにより、プロセ
ッサと拡張演算器とのデータ処理部入力バス124の1
個のオペランドを拡張処理部211に伝達し、拡張演算
器のドライバ253を開けることにより、拡張演算器の
データ処理部入力バッファ230の1個のオペランドを
拡張処理部211に伝達する。拡張処理部211は、プ
ロセッサと拡張演算器とのデータ処理部入力バス124
の1個のオペランドと、拡張演算器のデータ処理部入力
バッファ230の1個のオペランドとを処理し結果とし
て2個の処理結果データを出力する。拡張演算器の制御
回路210は、拡張演算器のドライバ254を開けるこ
とにより、拡張処理部211の一方の処理結果データを
プロセッサと拡張演算器とのデータ処理部出力バス12
5に伝達し、プロセッサと拡張演算器とのデータ処理部
出力バス125に載せることにより、処理結果データが
プロセッサ201に達する。拡張演算器の制御回路21
0は、拡張演算器のドライバ255を開けることによ
り、拡張処理部211のもう一方の処理結果データを拡
張演算器のデータ処理部出力バッファ231に伝達す
る。拡張演算器のデータ処理部出力バッファ231は、
もう一方の処理結果データを保持する。
【0106】時刻2から時刻3に変化するとき、プロセ
ッサの制御回路205は、EXP1からWB1へパイプライン
ステージが変化するときに、プロセッサのレジスタライ
トバッファ116を開け、その結果、プロセッサと拡張
演算器とのデータ処理部出力バス125から、プロセッ
サの汎用レジスタ106へ、ラッチを開いて一方の処理
結果データを伝達する。
【0107】時刻4において、プロセッサの汎用レジス
タ106は、一方の処理結果データを保持する。 (2.3)データ処理部出力バッファ231のデータを
読み出して汎用レジスタ106に格納する動作 図7は、データ処理部出力バッファ231が保持するデ
ータをプロセッサの汎用レジスタ106へ書き込む拡張
転送命令の動作について、パイプライン処理の状態を表
すタイムチャートである。
【0108】時刻1において、プロセッサの命令フェッ
チステージでは、メモリ103は、命令をメモリからプ
ロセッサと拡張演算器とへの命令供給バス126に載せ
る。時刻1から時刻2に変化するとき、プロセッサの制
御回路205は、IF1からDP1へ移行するため、プロセッ
サの命令レジスタ112を開ける。拡張演算器の制御回
路210は、IF1からDE1へ移行するため、拡張演算器の
命令レジスタ119を開ける。
【0109】時刻2において、プロセッサの命令解読ス
テージ(DP1)では、プロセッサのデコーダ204は、
プロセッサの命令レジスタ112が開いたとき、命令を
受け取り、命令を解読する。拡張演算器の命令解読ステ
ージ(DE1)では、拡張演算器のデコーダ209は、拡
張演算器の命令レジスタ119が開いたとき、命令を受
け取り、命令を解読する。
【0110】時刻2から時刻3に変化するとき、プロセ
ッサの制御回路205は、DP1からEXP1へパイプライン
ステージが変化するときに、プロセッサのマイクロ命令
レジスタ113、114を開け、その結果、プロセッサ
のデコーダ204から、プロセッサの制御回路205
へ、ラッチを開いてマイクロ命令を伝達し、パイプライ
ン制御を行うプロセッサの制御回路205からの制御に
より、プロセッサと拡張演算器とのデータ処理部入力バ
ス124から、プロセッサのデータ処理部207へ、ラ
ッチを開いてオペランドを伝達する。拡張演算器の制御
回路210は、DE1からEXE1へパイプラインステージが
変化するときに、拡張演算器のマイクロ命令レジスタ1
20を開ける。プロセッサの制御回路205は、プロセ
ッサのマイクロ命令レジスタ113が開いたとき、プロ
セッサのデコーダ204のDP1命令解読ステージが解読
したマイクロ命令を受け取る。拡張演算器の制御回路2
10は、拡張演算器のマイクロ命令レジスタ120が開
いたとき、拡張演算器のデコーダ209のDE1命令解読
ステージが解読したマイクロ命令を受け取る。
【0111】時刻3において、プロセッサの命令実行ス
テージ(EXP1)では、プロセッサのデータ処理部207
は、データ処理を行わない。拡張演算器の命令実行ステ
ージ(EXE1)では、拡張演算器の制御回路210は、拡
張演算器のドライバ257を開けることにより、拡張演
算器のデータ処理部出力バッファ231が保持する処理
結果データを、プロセッサと拡張演算器とのデータ処理
部出力バス125に伝達する。
【0112】時刻2から時刻3に変化するとき、プロセ
ッサの制御回路205は、EXP1からWB1へパイプライン
ステージが変化するときに、プロセッサのレジスタライ
トバッファ116を開け、その結果、プロセッサと拡張
演算器とのデータ処理部出力バス125から、プロセッ
サの汎用レジスタ106へ、ラッチを開いて一方の処理
結果データを伝達する。
【0113】時刻4において、プロセッサの汎用レジス
タ106は、一方の処理結果データを保持する。このよ
うに拡張演算器がバッファを持つことにより、チップ面
積の増大によるコスト上昇と消費電力の増大することな
く拡張演算器が複数のオペランドを処理することができ
る。
【0114】(2.4)割り込み処理開始時のデータ処
理部入力バッファ230およびデータ処理部出力バッフ
ァ231のデータ退避動作。 図8は、プロセッサ201に割り込みが発生し、拡張演
算器のデータ処理部入力バッファ230と、拡張演算器
のデータ処理部出力バッファ231とのデータを、退避
データ保持バッファ232に格納する動作を表すタイム
チャートである。このタイムチャートでは、”ESC1”
は、拡張演算器において拡張演算器のデータ処理部入力
バッファ230を退避する命令を行うことを表す。”ES
C2”は、拡張演算器において拡張演算器のデータ処理部
出力バッファ231を退避する命令を行うことを表す。
【0115】時刻1において、プロセッサ201は、外
部からの割り込み要求信号線240より割り込み要求信
号を受け取る。時刻2において、プロセッサの制御回路
205は、プロセッサから拡張演算部への割り込み信号
線241に割り込み信号を伝達する。拡張演算器の制御
回路210は、プロセッサから拡張演算部への割り込み
信号線241より割り込み信号を受け取る。
【0116】時刻3において、拡張演算器の制御回路2
10は、拡張演算器のドライバ258を開けることによ
り、拡張演算器のデータ処理部入力バッファ230の処
理結果をプロセッサと拡張演算器とのデータ処理部出力
バス125に伝達し、プロセッサと拡張演算器とのデー
タ処理部出力バス125に載せる。退避データ保持バッ
ファ232は、プロセッサと拡張演算器とのデータ処理
部出力バス125よりデータを受け取り格納を更新す
る。
【0117】時刻4において、拡張演算器の制御回路2
10は、拡張演算器のドライバ257を開けることによ
り、拡張演算器のデータ処理部出力バッファ231の処
理結果をプロセッサと拡張演算器とのデータ処理部出力
バス125に伝達し、プロセッサと拡張演算器とのデー
タ処理部出力バス125に載せる。退避データ保持バッ
ファ232は、プロセッサと拡張演算器とのデータ処理
部出力バス125よりデータを受け取り、格納する。
【0118】時刻5において、拡張演算器の制御回路2
10は、拡張演算部からプロセッサへの割り込み手続き
完了信号線242に割り込み準備完了信号を伝達し、プ
ロセッサ201に割り込み処理の許可を与える。 (2.5) 割り込み処理終了時のデータ処理部入力バ
ッファ230及びデータ処理部出力バッファ231への
データ復帰動作。
【0119】図9は、割り込み復帰命令のパイプライン
処理の状態を表すタイムチャートである。このタイムチ
ャートでは、”RTI1”は、プロセッサ201及び拡張演
算器202においてデータ処理部入力バッファ230へ
のデータ復帰処理を表す。”RTI2”は、プロセッサ20
1及び拡張演算器202において、データ処理部出力バ
ッファ231へのデータ復帰処理を表す。
【0120】次いで、拡張演算器202において、割り
込み復帰命令の動作について図9のパイプライン処理の
状態を表すタイムチャートを用いて説明する。時刻1に
おいて、プロセッサの命令フェッチステージでは、メモ
リ103は、割り込み復帰命令をメモリからプロセッサ
と拡張演算器とへの命令供給バス126に載せる。
【0121】時刻1から時刻2に変化するとき、プロセ
ッサの制御回路205は、プロセッサの命令レジスタ1
12を開ける。拡張演算器の制御回路210は、IF1か
らDE1へ移行するため、拡張演算器の命令レジスタ11
9を開ける。時刻2において、プロセッサの命令解読ス
テージ(RTI1)では、プロセッサのデコーダ204は、
プロセッサの命令レジスタ112が開いたとき、割り込
み復帰命令を受け取り、割り込み復帰命令を解読する。
【0122】拡張演算器の命令解読ステージ(RTI1)で
は、拡張演算器のデコーダ209は、拡張演算器の命令
レジスタ119が開いたとき、割り込み復帰命令を受け
取り、割り込み復帰命令を解読する。時刻2から時刻3
に変化するとき、プロセッサの制御回路205は、RTI1
処理で、パイプラインステージが変化するときに、プロ
セッサのマイクロ命令レジスタ113、114を開け、
その結果、プロセッサのデコーダ204から、プロセッ
サの制御回路205へ、ラッチを開いて割り込み復帰マ
イクロ命令を伝達する。拡張演算器の制御回路210
は、RTI1処理で、パイプラインステージが変化するとき
に、拡張演算器のマイクロ命令レジスタ120を開け
る。プロセッサの制御回路205は、プロセッサのマイ
クロ命令レジスタ113が開いたとき、プロセッサのデ
コーダ204の命令解読ステージがRTI1を解読したマイ
クロ命令を受け取る。拡張演算器の制御回路210は、
拡張演算器のマイクロ命令レジスタ120が開いたと
き、拡張演算器のデコーダ209の命令解読ステージが
RTI1を解読したマイクロ命令を受け取る。
【0123】時刻3において、プロセッサの命令解読ス
テージ(RTI2)では、割り込み復帰マイクロ命令を繰り
返し出力する。プロセッサの命令実行ステージ(RTI1)
では、プロセッサの復帰処理を行う。拡張演算器の命令
解読ステージ(RTI2)では、割り込み復帰マイクロ命令
を繰り返し出力する。
【0124】拡張演算器の命令実行ステージ(RTI1)で
は、退避データ保持バッファ232は、退避データ保持
バッファのドライバ259を開いて、プロセッサと拡張
演算器とのデータ処理部入力バス124にデータを載せ
る。拡張演算器の制御回路210は、拡張演算器のドラ
イバ256を開けることにより、プロセッサと拡張演算
器とのデータ処理部入力バス124のデータを拡張演算
器のデータ処理部入力バッファ230に伝達する。拡張
演算器のデータ処理部入力バッファ230は、プロセッ
サと拡張演算器とのデータ処理部入力バス124のデー
タを受け取り、保持する。
【0125】時刻3において、プロセッサの命令解読ス
テージ(RTI3)では、割り込み復帰マイクロ命令を繰り
返し出力する。プロセッサの命令実行ステージ(RTI2)
では、プロセッサの復帰処理を行う。拡張演算器の命令
実行ステージ(RTI2)では、退避データ保持バッファ2
32は、退避データ保持バッファのドライバ259を開
いて、プロセッサと拡張演算器とのデータ処理部入力バ
ス124にデータを載せる。拡張演算器の制御回路21
0は、拡張演算器の制御回路210は、拡張演算器のド
ライバ256を開けることにより、プロセッサと拡張演
算器とのデータ処理部入力バス124のデータを拡張演
算器のデータ処理部出力バッファ231に伝達する。拡
張演算器のデータ処理部出力バッファ231は、プロセ
ッサと拡張演算器とのデータ処理部入力バス124のデ
ータを受け取り、格納する。 <第3実施例>図10は、本発明の実施例3における情
報処理装置の構成を示すブロック図である。
【0126】この情報処理装置は、プロセッサ301
と、拡張演算器302と、メモリ103とから構成され
る。図4に示した第2実施例の構成と、同じ構成要素に
は、同じ符号を付してある。退避データ保持バッファに
ついては、図示と説明を省略する。以下、同じ構成要素
については説明を省略し、異なる点を中心に説明する。
同図においてプロセッサ301は、第2に実施例のプロ
セッサ201の機能に加えて、タスク切り替え機能を有
している。プロセッサ301のタスクの切り替えについ
ては、本実施例ではタスク切り替え命令によって切り替
え処理を実行するものとする。ここで、タスク切り替え
命令は、切り替え先のタスク番号の指定するとともにタ
スク切り替えを指示する命令である。プロセッサ301
のタスク切り替えは一般的な方法でよい。また、データ
処理部出力バス125は、第2実施例と同様に32ビッ
ト×1構成でよい。
【0127】拡張演算器302は、第2の実施例の拡張
演算器202のデータ処理部入力バッファ230、デー
タ処理部出力バッファ231、及び、その周辺のドライ
バの代わりに、データ処理部入力バッファ330、33
1、データ処理部出力バッファ332、333、その周
辺のドライバを備え、タスク管理部361が新たに追加
されている。
【0128】プロセッサ301においてデコーダ304
は、第2実施例のデコーダ204の機能に加えて、タス
ク切り替え命令を解読し、当該命令で指定されたタスク
に切り替えるマイクロ命令を発行する点が異なる。プロ
セッサの制御回路305は、第2実施例の制御回路20
5の機能に加えて、タスク切り替えを実現するマイクロ
命令を受けると、それに対応する各種制御信号を出力す
る。
【0129】拡張演算器302においてデコーダ309
は、第2実施例のデコーダ209の機能に加えて、タス
ク切り替え命令を解読する点が異なる。具体的には、解
読結果がタスク切り替え命令である場合には、当該命令
で指定されたタスク番号をタスク管理部361に格納す
るマイクロ命令を発行する。プロセッサのデータ処理部
207は、プロセッサ301の主なデータ処理を行う。
【0130】制御回路310は、第2の実施例の制御回
路210の機能に加えて、タスク切り替え命令のデコー
ド結果としてのマイクロ命令を受け付けると、当該命令
で指定されたタスク番号をタスク管理部361に格納す
る制御信号を出力する。また、第2実施例で説明した拡
張転送命令のデコード結果としてのマイクロ命令を受け
付けると、タスク管理部361のタスク番号に応じてデ
ータ処理部入力バッファ330とデータ処理部入力バッ
ファ331の一方を選択的に使用する。例えば、タスク
管理部361のタスク番号が1のときには、データ処理
部入力バッファ330、データ処理部出力バッファ33
2を使用し、タスク番号が2のときには、データ処理部
入力バッファ331、データ処理部出力バッファ333
を使用するよう制御する。また例えば、3項演算を行う
拡張命令の場合には、データ処理部入力バッファ330
と331とを選択的に使用し、演算結果が複数のデータ
になる拡張命令の場合には、タスク番号に応じてデータ
処理部出力バッファ332と333とを選択的に使用す
るよう制御する。
【0131】データ処理部入力バッファ330、331
は、それぞれ拡張処理部211が複数のオぺランドを用
いて処理する場合に、データ処理部入力バス124から
転送されるデータを保持するバッファであり、タスク管
理部361のタスク番号に応じて選択される。データ処
理部出力バッファ332、333は、それぞれ拡張処理
部211の演算結果が複数のデータになる場合に、デー
タ処理部出力バス125に転送すべき当該データを保持
するバッファであり、タスク管理部361のタスク番号
に応じて選択される。
【0132】ドライバ350は、制御回路305の制御
によりドライバを開いて、プロセッサと拡張演算器との
データ処理部入力バス124から拡張処理部211へデ
ータを伝達する。ドライバ351は、制御回路305の
制御によりドライバを開いて、プロセッサと拡張演算器
とのデータ処理部入力バス124からデータ処理部入力
バッファ330へデータを伝達する。
【0133】ドライバ352は、制御回路305の制御
によりドライバを開いて、プロセッサと拡張演算器との
データ処理部入力バス124からデータ処理部入力バッ
ファ331へデータを伝達する。ドライバ354は、制
御回路305の制御により、拡張処理部211から、プ
ロセッサと拡張演算器とのデータ処理部出力バス125
へ、ドライバを開いてデータを伝達する。
【0134】ドライバ355は、制御回路305の制御
によりドライバを開いて、拡張処理部211からデータ
処理部出力バッファ332へデータを伝達する。ドライ
バ356は、制御回路305の制御によりドライバを開
いて、拡張処理部211からデータ処理部出力バッファ
333へデータを伝達する。ドライバ357は、制御回
路305の制御によりドライバを開いて、データ処理部
出力バッファ332からプロセッサと拡張演算器とのデ
ータ処理部出力バス125へデータを伝達する。
【0135】ドライバ358は、制御回路305の制御
によりドライバを開いて、データ処理部出力バッファ3
33からプロセッサと拡張演算器とのデータ処理部出力
バス125へデータを伝達する。セレクタ360は、制
御回路305の制御により、データ処理部入力バッファ
330とデータ処理部入力バッファ331とを選択す
る。
【0136】タスク管理部361は、制御回路305の
制御により、タスク番号を保持し、タスク番号を制御回
路305に伝達する。本実施例では、タスク管理部36
1が保持するタスク番号は、タスク1、タスク2とし、
タスク管理部361がタスク1を保持する場合、データ
処理部入力バッファ330と、データ処理部出力バッフ
ァ332とが選択され、タスク管理部361がタスク2
を保持する場合、データ処理部入力バッファ331と、
データ処理部出力バッファ333とが選択されるものと
する。
【0137】以上のように構成された本発明の第3の実
施例における情報処理装置について、その動作を(3.
1)タスク切り替え命令の実行動作、(3.2)プロセ
ッサの汎用レジスタ106が保持するデータを拡張演算
器302のデータ処理部入力バッファへ書き込む拡張転
送命令の動作、(3.3)プロセッサの汎用レジスタ1
06のデータと、データ処理部入力バッファのデータと
を用いて演算し、出力結果をプロセッサの汎用レジスタ
106とデータ処理部出力バッファとへの書き込みを行
う拡張命令の動作、(3.4)プロセッサ201のデー
タ処理部出力バッファのデータをプロセッサの汎用レジ
スタ106へ書き込む拡張転送命令の動作に分けて説明
する。
【0138】(3.1)拡張演算器302におけるタス
ク切り替える命令の実行動作。 命令フェッチステージにおいて、メモリ103は、タス
ク切り替え命令を命令供給バス126に載せる。命令解
読ステージにおいて、制御回路310は、命令レジスタ
119を開ける。デコーダ309は、命令レジスタ11
9が開いたとき、命令を受け取り、タスク切り替え命令
を解読する。拡張演算器の制御回路310は、パイプラ
インステージが変化するときに、マイクロ命令レジスタ
120を開ける。制御回路310は、拡張演算器のマイ
クロ命令レジスタ120が開いたとき、拡張演算器のデ
コーダ309が解読したマイクロ命令を受け取り、タス
ク切り換えを行う制御を行うとともに、タスク管理部3
61に命令で指定されたタスク番号を格納する。拡張転
送命令および3項以上の演算を行う拡張命令の実行時
に、このタスク番号がタスク1であれば、データ処理部
入力バッファ330とデータ処理部出力バッファ332
とが選択され、タスク番号がタスク2であれば、データ
処理部入力バッファ331とデータ処理部出力バッファ
333とが選択される。
【0139】(3.2)拡張演算器302において、タ
スク管理部361がタスク1を保持し、プロセッサの汎
用レジスタ106が保持するデータをデータ処理部入力
バッファ330へ書き込む命令の動作について説明す
る。図5に示したパイプライン処理の状態を表すタイム
チャートは、本動作においても同じタイミングであるの
で、図5を参照しつつ説明する。
【0140】時刻1において、プロセッサの命令フェッ
チステージでは、メモリ103は、命令をメモリからプ
ロセッサと拡張演算器とへの命令供給バス126に載せ
る。時刻1から時刻2に変化するとき、プロセッサの制
御回路305は、IF1からDP1へ移行するため、プロセッ
サの命令レジスタ112を開ける。拡張演算器の制御回
路310は、IF1からDE1へ移行するため、拡張演算器の
命令レジスタ119を開ける。
【0141】時刻2において、プロセッサの命令解読ス
テージ(DP1)では、プロセッサのデコーダ304は、
プロセッサの命令レジスタ112が開いたとき、命令を
受け取り、命令を解読する。プロセッサの制御回路30
5は、プロセッサのデコーダ304が先行的に出力する
マイクロ命令により、プロセッサのドライバ122を開
けることにより、プロセッサの汎用レジスタ106のオ
ペランドをプロセッサと拡張演算器とのデータ処理部入
力バス124に載せる。
【0142】拡張演算器の命令解読ステージ(DE1)で
は、拡張演算器のデコーダ309は、拡張演算器の命令
レジスタ119が開いたとき、命令を受け取り、命令を
解読する。時刻2から時刻3に変化するとき、プロセッ
サの制御回路305は、DP1からEXP1へパイプラインス
テージが変化するときに、プロセッサのマイクロ命令レ
ジスタ113、314、318を開け、その結果、プロ
セッサのデコーダ304から、プロセッサの制御回路3
05へ、ラッチを開いてマイクロ命令を伝達し、パイプ
ライン制御を行うプロセッサの制御回路305の制御に
より、プロセッサと拡張演算器とのデータ処理部入力バ
ス124から、プロセッサのデータ処理部207へ、ラ
ッチを開いてオペランドを伝達し、プロセッサと拡張演
算器とのデータ処理部入力バス124のデータが、拡張
演算器302に達する。拡張演算器の制御回路310
は、DE1からEXE1へパイプラインステージが変化すると
きに、拡張演算器のマイクロ命令レジスタ120を開け
る。プロセッサの制御回路305は、プロセッサのマイ
クロ命令レジスタ113が開いたとき、プロセッサのデ
コーダ304のDP1命令解読ステージが解読したマイク
ロ命令を受け取る。拡張演算器の制御回路310は、拡
張演算器のマイクロ命令レジスタ120が開いたとき、
拡張演算器のデコーダ309のDE1命令解読ステージが
解読したマイクロ命令を受け取る。
【0143】時刻3において、プロセッサの命令実行ス
テージ(EXP1)では、プロセッサのデータ処理部207
は、データ処理を行わない。拡張演算器の命令実行ステ
ージ(EXE1)では、タスク管理部361は、保持するタ
スク情報としてタスク1を、拡張演算器の制御回路31
0へ出力する。拡張演算器の制御回路310は、タスク
管理部361が出力するタスク1により、拡張演算器の
ドライバ351を開けることにより、プロセッサと拡張
演算器とのデータ処理部入力バス124の1個のオペラ
ンドを拡張演算器のデータ処理部入力バッファ330に
伝達する。拡張演算器のデータ処理部入力バッファ33
0は、プロセッサと拡張演算器とのデータ処理部入力バ
ス124の1個のオペランドを保持する。
【0144】(3.3)拡張演算器302においてタス
ク管理部361がタスク1を保持している場合に、プロ
セッサの汎用レジスタ106が保持するデータと、デー
タ処理部入力バッファ330が保持するデータとを用い
て演算し、出力結果をプロセッサの汎用レジスタ106
と、データ処理部出力バッファ332とへの書き込みを
行う拡張命令の動作について説明する。図6に示したパ
イプライン処理の状態を表すタイムチャートは、本動作
においても同じタイミングであるので、図6を参照しつ
つ説明する。
【0145】時刻1において、プロセッサの命令フェッ
チステージでは、メモリ103は、命令をメモリからプ
ロセッサと拡張演算器とへの命令供給バス126に載せ
る。時刻1から時刻2に変化するとき、プロセッサの制
御回路305は、IF1からDP1へ移行するため、プロセッ
サの命令レジスタ112を開ける。拡張演算器の制御回
路310は、IF1からDE1へ移行するため、拡張演算器の
命令レジスタ119を開ける。
【0146】時刻2において、プロセッサの命令解読ス
テージ(DP1)では、プロセッサのデコーダ304は、
プロセッサの命令レジスタ112が開いたとき、命令を
受け取り、命令を解読する。プロセッサの制御回路30
5は、プロセッサのデコーダ304が先行的に出力する
マイクロ命令により、プロセッサのドライバ122を開
けることにより、プロセッサの汎用レジスタ106のオ
ペランドをプロセッサと拡張演算器とのデータ処理部入
力バス124に載せる。
【0147】拡張演算器の命令解読ステージ(DE1)で
は、拡張演算器のデコーダ309は、拡張演算器の命令
レジスタ119が開いたとき、命令を受け取り、命令を
解読する。時刻2から時刻3に変化するとき、プロセッ
サの制御回路305は、DP1からEXP1へパイプラインス
テージが変化するときに、プロセッサのマイクロ命令レ
ジスタ113、314、318を開け、その結果、プロ
セッサのデコーダ304から、プロセッサの制御回路3
05へ、ラッチを開いてマイクロ命令を伝達し、パイプ
ライン制御を行うプロセッサの制御回路305の制御に
より、プロセッサと拡張演算器とのデータ処理部入力バ
ス124から、プロセッサのデータ処理部207へ、ラ
ッチを開いてオペランドを伝達し、プロセッサと拡張演
算器とのデータ処理部入力バス124のデータが、拡張
演算器302に達する。拡張演算器の制御回路310
は、DE1からEXE1へパイプラインステージが変化すると
きに、拡張演算器のマイクロ命令レジスタ120を開け
る。プロセッサの制御回路305は、プロセッサのマイ
クロ命令レジスタ113が開いたとき、プロセッサのデ
コーダ304のDP1命令解読ステージが解読したマイク
ロ命令を受け取る。拡張演算器の制御回路310は、拡
張演算器のマイクロ命令レジスタ120が開いたとき、
拡張演算器のデコーダ309のDE1命令解読ステージが
解読したマイクロ命令を受け取る。
【0148】時刻3において、プロセッサの命令実行ス
テージ(EXP1)では、プロセッサのデータ処理部207
は、データ処理を行わない。拡張演算器の命令実行ステ
ージ(EXE1)では、タスク管理部361は、保持するタ
スク情報としてタスク1を、拡張演算器の制御回路31
0へ出力する。拡張演算器の制御回路310は、拡張演
算器のドライバ350を開けることにより、プロセッサ
と拡張演算器とのデータ処理部入力バス124の1個の
オペランドを拡張処理部211に伝達し、タスク管理部
361が出力するタスク1により、拡張演算器のセレク
タ360が拡張演算器のデータ処理部入力バッファ33
0を選択し、1個のオペランドを拡張処理部211に伝
達する。拡張処理部211は、プロセッサと拡張演算器
とのデータ処理部入力バス124の1個のオペランド
と、拡張演算器のデータ処理部入力バッファ330の1
個のオペランドとを処理し結果として2個の処理結果デ
ータを出力する。拡張演算器の制御回路310は、拡張
演算器のドライバ354を開けることにより、拡張処理
部211の一方の処理結果データをプロセッサと拡張演
算器とのデータ処理部出力バス125に伝達し、プロセ
ッサと拡張演算器とのデータ処理部出力バス125に載
せることにより、処理結果データがプロセッサ301に
達する。拡張演算器の制御回路310は、タスク管理部
361が出力するタスク1により、拡張演算器のドライ
バ355を開けることにより、拡張処理部211のもう
一方の処理結果データを拡張演算器のデータ処理部出力
バッファ332に伝達する。拡張演算器のデータ処理部
出力バッファ332は、もう一方の処理結果データを保
持する。
【0149】時刻3から時刻4に変化するとき、プロセ
ッサの制御回路305は、EXP1からWB1へパイプライン
ステージが変化するときに、プロセッサのレジスタライ
トバッファ116を開け、その結果、プロセッサと拡張
演算器とのデータ処理部出力バス125から、プロセッ
サの汎用レジスタ106へ、ラッチを開いて一方の処理
結果データを伝達する。
【0150】時刻4において、プロセッサの汎用レジス
タ106は、一方の処理結果データを保持する。 (3.4)タスク管理部361がタスク2を保持してい
る場合に、データ処理部出力バッファ333が保持する
データをプロセッサの汎用レジスタ106へ書き込む拡
張転送命令の動作について説明する。図7に示したパイ
プライン処理の状態を表すタイムチャートは、本動作に
おいても同じタイミングであるので、図7を参照しつつ
説明する。
【0151】時刻1において、プロセッサの命令フェッ
チステージでは、メモリ103は、命令をメモリからプ
ロセッサと拡張演算器とへの命令供給バス126に載せ
る。時刻1から時刻2に変化するとき、プロセッサの制
御回路305は、IF1からDP1へ移行するため、プロセッ
サの命令レジスタ112を開ける。拡張演算器の制御回
路310は、IF1からDE1へ移行するため、拡張演算器の
命令レジスタ119を開ける。
【0152】時刻2において、プロセッサの命令解読ス
テージ(DP1)では、プロセッサのデコーダ304は、
プロセッサの命令レジスタ112が開いたとき、命令を
受け取り、命令を解読する。拡張演算器の命令解読ステ
ージ(DE1)では、拡張演算器のデコーダ309は、拡
張演算器の命令レジスタ119が開いたとき、命令を受
け取り、命令を解読する。
【0153】時刻2から時刻3に変化するとき、プロセ
ッサの制御回路305は、DP1からEXP1へパイプライン
ステージが変化するときに、プロセッサのマイクロ命令
レジスタ113、314を開け、その結果、プロセッサ
のデコーダ304から、プロセッサの制御回路305
へ、ラッチを開いてマイクロ命令を伝達し、パイプライ
ン制御を行うプロセッサの制御回路305の制御によ
り、プロセッサと拡張演算器とのデータ処理部入力バス
124から、プロセッサのデータ処理部207へ、ラッ
チを開いてオペランドを伝達する。拡張演算器の制御回
路310は、DE1からEXE1へパイプラインステージが変
化するときに、拡張演算器のマイクロ命令レジスタ12
0を開ける。プロセッサの制御回路305は、プロセッ
サのマイクロ命令レジスタ113が開いたとき、プロセ
ッサのデコーダ304のDP1命令解読ステージが解読し
たマイクロ命令を受け取る。拡張演算器の制御回路31
0は、拡張演算器のマイクロ命令レジスタ120が開い
たとき、拡張演算器のデコーダ309のDE1命令解読ス
テージが解読したマイクロ命令を受け取る。
【0154】時刻3において、プロセッサの命令実行ス
テージ(EXP1)では、プロセッサのデータ処理部207
は、データ処理を行わない。拡張演算器の命令実行ステ
ージ(EXE1)では、タスク管理部361は、保持するタ
スク情報としてタスク2を、拡張演算器の制御回路31
0へ出力する。拡張演算器の制御回路310は、タスク
管理部361が出力するタスク2により、拡張演算器の
ドライバ358を開けることにより、拡張演算器のデー
タ処理部出力バッファ333が保持する処理結果データ
を、プロセッサと拡張演算器とのデータ処理部出力バス
125に伝達する。
【0155】時刻2から時刻3に変化するとき、プロセ
ッサの制御回路305は、EXP1からWB1へパイプライン
ステージが変化するときに、プロセッサのレジスタライ
トバッファ116を開け、その結果、プロセッサと拡張
演算器とのデータ処理部出力バス125から、プロセッ
サの汎用レジスタ106へ、ラッチを開いて一方の処理
結果データを伝達する。
【0156】時刻4において、プロセッサの汎用レジス
タ106は、一方の処理結果データを保持する。なお、
本実施例においてタスク管理部361がタスクを切り替
えることを制御するために、ここでは拡張演算器の制御
回路310が制御を行ったが、外部よりタスク切り替え
信号線を設け、このタスク切り替え信号によってタスク
を切り替えてもよい。
【0157】また、上記第1〜第3実施例では、拡張命
令のオペランドデータとしてレジスタが指定されている
場合を説明したが、オペランドデータとしてメモリデー
タが指定されている場合も同様に動作することができ
る。この場合、プロセッサがメモリアクセスを行うの
で、実行速度の点では従来技術と同等であるが、拡張演
算器内部にメモリアクセスを制御する回路が不要になる
ので、回路規模の点では従来技術よりも小さくすること
ができ、その分コストも低減できる。
【0158】
【発明の効果】以上説明したように、請求項1の発明に
よれば、拡張処理装置がデータ処理装置のデータ保持手
段のデータを用いて演算する場合、及び、拡張処理装置
の演算結果をデータ処理送致のレジスタに格納する場合
に、一旦メモリを経由してデータ転送する必要がなくな
り、データ処理装置と拡張処理装置との間で直接データ
の受け渡しをするので、処理能力の高い情報処理装置を
実現することができるという効果がある。
【0159】請求項2の発明によれば、請求項1の効果
に加えて、複数の拡張処理装置を同時に接続して、多様
な拡張演算命令が混在するプログラムを高速に実行する
ことができるという効果がある。また、必要とされる拡
張処理装置だけを実装することにより、コスト上昇と消
費電力の増大とを抑止することができる。さらに拡張処
理装置を必要としない場合には、データ処理装置から切
り離して実装しなくてもよい。切り離した場合、プロセ
ッサ内部の各配線にかかる電気的負荷が変化しないので
切り離しに関して制約を受けないという効果がある。
【0160】請求項3の発明によれば、請求項1の効果
に加えて、複数のフラグもオペランドデータと同様に、
データ処理装置と拡張処理装置との間で直接受け渡しを
するので、より処理能力の高い情報処理装置を実現する
ことができるという効果がある。請求項4の発明によれ
ば、請求項2の効果に加えて、拡張演算実行ステージと
データ処理装置の実行ステージとで、実際のステージの
サイクル数を合わせるので、データ処理装置のパイプラ
イン動作を乱すことなく、拡張演算命令の実行と、デー
タ処理装置の命令実行との移行をスムーズに行うことが
できるという効果がある。
【0161】請求項5の発明によれば、請求項4の効果
に加えて、前記実行終了通知を伝達する信号線を追加す
ることにより、パイプライン動作を乱さず、簡単な構成
で拡張演算命令への移行をスムーズに行うことができる
という効果がある。請求項6の発明によれば、請求項4
の効果に加えて、データ処理装置と拡張処理装置との間
に拡張命令実行終了を通知する信号線を追加することな
く、また、複数の拡張処理装置の接続にも好適した構成
が実現できるという効果がある。
【0162】請求項7の発明によれば、請求項1、3ま
たは4の効果に加えて、3つ以上のオペランドを要する
拡張演算命令の実行に好適した情報処理装置を実現する
ことができるという効果がある。また、複数のオペラン
ドデータをバスを設けて供給する場合と比べて、チップ
面積の増大によるコスト上昇と消費電力の増大とを抑止
することができる。
【0163】請求項8の発明によれば、請求項7の効果
に加えて、拡張演算命令の実行中に割り込み処理が生じ
た場合、実行時間が増大し性能が劣化を抑止することが
でき、割り込み処理への移行を迅速にすることができる
という効果がある。請求項9の発明によれば、請求項7
の効果に加えて、拡張演算の結果、複数のデータが生成
される場合でも、演算結果をデータ保持手段に高速に格
納することができるという効果がある。
【0164】請求項10の発明によれば、請求項9の効
果に加えて、割り込み処理への移行を迅速にすることが
でき、より柔軟な拡張演算をすることができるという効
果がある。請求項11の発明によれば、請求項の効果に
加えて、複数のタスクを処理する場合に、各タスクに対
応して1対の入力バッファと出力バッファとが使用され
るので、拡張演算器が処理中にタスク切り換え処理が生
じた場合、実行時間の増大と性能劣化とを抑止すること
ができ、高速なタスクスイッチを実現できるという効果
がある。
【図面の簡単な説明】
【図1】本発明の第1の実施例における情報処理装置の
構成を示すブロック図である。
【図2】同実施例における拡張演算装置に対する拡張命
令の一例を示す図である。
【図3】同実施例における情報処理装置におけるパイプ
ライン処理の状態を表すタイムチャートである。
【図4】本発明の第2実施例における情報処理装置の構
成を示すブロック図である。
【図5】同実施例の情報処理装置におけるプロセッサの
汎用レジスタ106が保持するオペランドをデータ処理
部入力バッファ230へ書き込む拡張転送命令のパイプ
ライン処理の状態を表すタイムチャートである。
【図6】同実施例の情報処理装置におけるプロセッサの
汎用レジスタ106が保持するオペランドと、データ処
理部入力バッファ230が保持するオペランドとを用
い、出力結果をプロセッサの汎用レジスタ106とデー
タ処理部出力バッファ231とへの書き込みを行う拡張
処理部211の実行命令のパイプライン処理の状態を表
すタイムチャートである。
【図7】本発明の実施例2の情報処理装置におけるデー
タ処理部出力バッファ231が保持するデータをプロセ
ッサの汎用レジスタ106へ書き込む命令のパイプライ
ン処理の状態を表すタイムチャートである。
【図8】本発明の実施例2の情報処理装置におけるプロ
セッサ201に割り込みが発生し、拡張演算器のデータ
処理部入力バッファ230と、拡張演算器のデータ処理
部出力バッファ231とのデータを、退避データ保持バ
ッファ232に格納する動作を表すタイムチャートであ
る。
【図9】本発明の実施例2の情報処理装置における割り
込み復帰命令のパイプライン処理の状態を表すタイムチ
ャートである。
【図10】本発明の実施例3における情報処理装置の構
成図である。
【図11】本発明の情報処理装置のLSIレイアウトの
一例を示す図である。
【符号の説明】
101 プロセッサ 102 拡張演算器 103 メモリ 104 デコーダ 105 制御回路 106 汎用レジスタ 108 フラグ格納レジスタ 109 デコーダ 110 制御回路 112 命令レジスタ 113 マイクロ命令レジスタ 114 データラッチ 116 レジスタライトバッファ 117 メモリライトバッファ 118 拡張演算器用データラッチ 119 命令レジスタ 120 マイクロ命令レジスタ 121 ドライバ 121〜123 ドライバ 124 データ処理部入力バス 125 データ処理部出力バス 126 命令供給バス 127 データバス 128 データバス 129 状態管理部 130 フラグデータバス 131 フラグデータバス 132〜135 ドライバ 140 第1データ処理部 141 第2データ処理部 143 パイプラインラッチ 150 第1拡張処理部 151 第2拡張処理部 152 第3拡張処理部 153 第4拡張処理部 154 ドライバ

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 メモリ中の命令に従ってデータを処理す
    る主たるデータ処理装置と従たる拡張処理装置とからな
    る情報処理装置であって、 データ処理装置は、 複数のデータ保持領域を有するデータ保持手段と、 メモリ中の命令を取り出す命令取り出し手段と、 取り出された命令を解読し、拡張処理装置で実行すべき
    拡張演算命令を検出する命令検出手段と、 検出された拡張演算命令のオペランドでソースとして指
    定されたデータ保持領域と、デスティネーションとして
    指定されたデータ保持領域とを判別するオペランド判別
    手段と、 判別されたソースのデータ保持領域のデータを拡張処理
    装置に供給するデータ供給手段と、 拡張処理装置から伝送される演算結果を、判別されたデ
    スティネーションのデータ保持領域に格納するデータ格
    納手段とを備え、 拡張処理装置は、 取り出された命令を解読して拡張演算命令を検出する拡
    張命令解読手段と、 データ供給手段から供給されるデータを用いて、拡張命
    令解読手段に検出された拡張演算命令を実行する拡張実
    行手段とを備え、 データ処理装置と拡張処理装置とは、メモリから取り出
    された命令を命令検出手段と拡張命令解読手段とに伝送
    する命令バス、データ供給手段の供給データを拡張実行
    手段に伝送する第1のバス、及び、拡張実行手段の演算
    結果をデータ格納手段に伝送する第2のバスにより接続
    されていることを特徴とする情報処理装置。
  2. 【請求項2】 前記情報処理装置は、さらに複数の前記
    拡張処理装置を備え、 各拡張処理装置は、演算種類が互いに異なる拡張演算命
    令を実行し、 前記命令バスは、メモリから取り出された命令を各拡張
    命令解読手段に伝送し、 前記第1のバスは、データ供給手段の供給データを各拡
    張実行手段に伝送し、 前記第2のバスは、各拡張実行手段の演算結果をデータ
    格納手段に伝送することを特徴とする請求項1記載の情
    報処理装置。
  3. 【請求項3】 前記データ処理装置は、さらに、演算
    結果の状態を表す複数のフラグを保持するフラグレジス
    タを備え、 前記データ供給手段は、ソースのデータ保持領域のデー
    タ供給とともに、フラグレジスタのフラグを拡張処理装
    置に供給し、 前記データ格納手段は、演算結果をディスチネーション
    のデータ保持領域に格納するとともに、拡張処理装置か
    らの新たなフラグをフラグレジスタに格納し、 前記拡張実行手段は、データ供給手段から供給されるデ
    ータとともにフラグを用いて拡張演算命令を実行し、当
    該演算の状態を表す新たなフラグをデータ格納手段に出
    力し、 データ処理装置と拡張処理装置とは、さらに、データ供
    給手段により供給されるフラグを拡張実行手段に伝送す
    る第1のフラグバス、及び、拡張実行手段からの新たな
    フラグをフラグレジスタに伝送する第2のフラグバスに
    より接続されていることを特徴とする請求項1記載の情
    報処理装置、
  4. 【請求項4】 前記データ処理装置は、少なくとも命令
    フェッチステージと、命令解読ステージと命令実行ステ
    ージとを含むパイプライン処理を行い、さらに、 拡張実行手段における拡張演算の実行サイクル数に、命
    令実行ステージのサイクル数を一致させるステージ状態
    管理手段と、 を備え、 前記拡張処理装置は、データ処理装置に同期して動作す
    ることを特徴とする請求項2記載の情報処理装置。
  5. 【請求項5】 前記拡張実行手段は、拡張演算の実行に
    際して、命令実行の最後のサイクルになったときに、ス
    テージ状態管理手段に拡張演算の実行終了を通知し、 前記ステージ状態管理手段は、拡張演算の実行終了通知
    を受けると、受けた時点の実行サイクルで命令実行ステ
    ージを終了させることを特徴とする請求項4記載の情報
    処理装置。
  6. 【請求項6】 前記データ処理装置は、 検出手段により検出された拡張演算命令に応じて、デー
    タ処理装置の実行ステージのサイクル数を決定する決定
    手段を備え、 前記ステージ状態管理手段は、決定されたサイクル数の
    間命令実行ステージを継続させることを特徴とする請求
    項4記載の情報処理装置。
  7. 【請求項7】前記命令検出手段は、データ処理装置から
    拡張処理装置へのデータ転送を指示する第1の転送命令
    を検出し、 前記オペランド判別手段は、検出された第1の転送命令
    のオペランドでソースとしての指定されたデータ保持領
    域を判別し、 前記データ供給手段は、判別された第1の転送命令のソ
    ースのデータ保持領域のデータを第1のバスに出力さ
    せ、 前記拡張処理装置は、さらに、データを保持する入力バ
    ッファを備え、 前記拡張命令解読手段は、前記転送命令を検出した場
    合、第1のバスからのデータを入力バッファに格納し、 前記拡張命令実行手段は、3つ以上のオペランドを要す
    る拡張演算命令の実行に入力バッファのデータを用いる
    ことを特徴とする請求項1、3または4記載の情報処理
    装置。
  8. 【請求項8】 前記情報処理装置は、さらに、データを
    記憶する領域を有する退避バッファを備え、 前記拡張命令解読手段は、割込み処理からの復帰命令を
    検出し、 前記データ処理装置は、割込み要求を受け付けると、割
    込み信号を拡張処理装置に出力し、 前記拡張処理装置は、さらに割込み信号を受けると、前
    記入力バッファのデータを退避バッファに退避させる退
    避手段と、 割り込み処理からの復帰命令が検出されると、退避バッ
    ファのデータを前記入力バッファに復帰させる復帰手段
    とを備えることを特徴とする請求項7記載の情報処理装
    置。
  9. 【請求項9】前記拡張処理装置は、さらに、拡張実行手
    段の演算結果の一部を保持する出力バッファを備え、 前記拡張命令解読手段は、拡張処理装置からデータ処理
    装置へのデータ転送を指示する第2の転送命令を解読し
    た場合、出力バッファのデータを第2のバスに出力さ
    せ、 前記命令検出手段は、前記第2の転送命令を検出し、 前記オペランド判別手段は、検出された第2の転送命令
    のオペランドでディスチネーションとして指定されたデ
    ータ保持領域を判別し、 前記データ格納手段は、第2の転送命令のディスチネー
    ションのデータ保持領域に第2のバスからのデータを格
    納することを特徴とする請求項1、3、4、または7記
    載の情報処理装置。
  10. 【請求項10】 前記情報処理装置は、さらに、複数の
    データを記憶する領域を有する退避バッファを備え、 前記データ処理装置は、割込み要求を受け付けると、割
    込み信号を拡張処理装置に出力し、 前記拡張処理装置は、さらに割込み信号を受けると、前
    記入力バッファおよび出力バッファのデータを退避バッ
    ファに退避させる退避手段と、 割り込み処理からの復帰命令が検出されると、退避バッ
    ファのデータを前記入力バッファ及び出力バッファに復
    帰させる復帰手段と、 を備え、 前記拡張命令解読手段は、割込み処理からの復帰命令を
    検出すると、その旨を復帰手段に通知することを特徴と
    する請求項9記載の情報処理装置。
  11. 【請求項11】前記拡張命令解読手段は、タスクを識別
    するタスク番号を伴うタスク切り替え命令を解読し、 前記拡張処理装置は、さらに、複数の前記入力バッファ
    と、同数の前記出力バッファとを対にして備え、 解読されたタスク切り替え命令に示されるタスク番号に
    対応させた1対の入力バッファと出力バッファに対する
    データ入出力を許可し、他の入力バッファと出力バッフ
    ァに対するデータ入出力を禁止するタスク管理手段を備
    えることを特徴とする請求項9記載の情報処理装置。
JP7106624A 1995-04-28 1995-04-28 情報処理装置 Expired - Lifetime JP2987308B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP7106624A JP2987308B2 (ja) 1995-04-28 1995-04-28 情報処理装置
US08/625,627 US5909565A (en) 1995-04-28 1996-03-29 Microprocessor system which efficiently shares register data between a main processor and a coprocessor
TW085104225A TW310409B (ja) 1995-04-28 1996-04-10
EP96302880A EP0740249B1 (en) 1995-04-28 1996-04-25 Data processing device with coprocessor
DE69619885T DE69619885T2 (de) 1995-04-28 1996-04-25 Datenverarbeitungsanordnung mit Koprozessor
CNB961056444A CN1153155C (zh) 1995-04-28 1996-04-26 装有高效利用主处理器中的寄存器数据的协处理器的信息处理装置
KR1019960013275A KR100235397B1 (ko) 1995-04-28 1996-04-27 정보처리장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7106624A JP2987308B2 (ja) 1995-04-28 1995-04-28 情報処理装置

Publications (2)

Publication Number Publication Date
JPH08305568A true JPH08305568A (ja) 1996-11-22
JP2987308B2 JP2987308B2 (ja) 1999-12-06

Family

ID=14438271

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7106624A Expired - Lifetime JP2987308B2 (ja) 1995-04-28 1995-04-28 情報処理装置

Country Status (7)

Country Link
US (1) US5909565A (ja)
EP (1) EP0740249B1 (ja)
JP (1) JP2987308B2 (ja)
KR (1) KR100235397B1 (ja)
CN (1) CN1153155C (ja)
DE (1) DE69619885T2 (ja)
TW (1) TW310409B (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7376820B2 (en) 2000-03-16 2008-05-20 Fujitsu Limited Information processing unit, and exception processing method for specific application-purpose operation instruction
US8095780B2 (en) 2002-04-18 2012-01-10 Nytell Software LLC Register systems and methods for a multi-issue processor
JP2016535360A (ja) * 2014-07-02 2016-11-10 ヴィア アライアンス セミコンダクター カンパニー リミテッド 非アトミック分割経路融合積和
CN113157636A (zh) * 2021-04-01 2021-07-23 西安邮电大学 协处理器、近数据处理装置和方法

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505290B1 (en) * 1997-09-05 2003-01-07 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor
US5864703A (en) * 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
US6052771A (en) * 1998-01-20 2000-04-18 International Business Machines Corporation Microprocessor with pipeline synchronization
US6434689B2 (en) * 1998-11-09 2002-08-13 Infineon Technologies North America Corp. Data processing unit with interface for sharing registers by a processor and a coprocessor
IL142676A0 (en) * 1999-08-30 2002-03-10 Ip Flex Inc Control program product and data processing system
JP2001092662A (ja) * 1999-09-22 2001-04-06 Toshiba Corp プロセッサコア及びこれを用いたプロセッサ
CN1244050C (zh) * 2000-03-10 2006-03-01 皇家菲利浦电子有限公司 数据处理设备、操作数据处理设备的方法及将程序编译成指令序列的方法
JP3957948B2 (ja) 2000-04-12 2007-08-15 富士通株式会社 演算処理装置
US20060095723A1 (en) * 2001-11-05 2006-05-04 Moyer William C Method and apparatus for interfacing a processor to a coprocessor
US7007101B1 (en) * 2001-11-09 2006-02-28 Radisys Microware Communications Software Division, Inc. Routing and forwarding table management for network processor architectures
US7073048B2 (en) * 2002-02-04 2006-07-04 Silicon Lease, L.L.C. Cascaded microcomputer array and method
US7028167B2 (en) * 2002-03-04 2006-04-11 Hewlett-Packard Development Company, L.P. Core parallel execution with different optimization characteristics to decrease dynamic execution path
US7987341B2 (en) * 2002-10-31 2011-07-26 Lockheed Martin Corporation Computing machine using software objects for transferring data that includes no destination information
CA2503620A1 (en) * 2002-10-31 2004-05-21 Lockheed Martin Corporation Programmable circuit and related computing machine and method
US20040103269A1 (en) * 2002-11-27 2004-05-27 Intel Corporation Processor context register mapping
US7254696B2 (en) 2002-12-12 2007-08-07 Alacritech, Inc. Functional-level instruction-set computer architecture for processing application-layer content-service requests such as file-access requests
US7430652B2 (en) * 2003-03-28 2008-09-30 Tarari, Inc. Devices for performing multiple independent hardware acceleration operations and methods for performing same
US7293159B2 (en) * 2004-01-15 2007-11-06 International Business Machines Corporation Coupling GP processor with reserved instruction interface via coprocessor port with operation data flow to application specific ISA processor with translation pre-decoder
US7765334B2 (en) * 2004-05-12 2010-07-27 Canon Kabushiki Kaisha Electronic apparatus for use with removable storage medium, control method therefor, and program for implementing the method
US7441106B2 (en) 2004-07-02 2008-10-21 Seagate Technology Llc Distributed processing in a multiple processing unit environment
US7395410B2 (en) * 2004-07-06 2008-07-01 Matsushita Electric Industrial Co., Ltd. Processor system with an improved instruction decode control unit that controls data transfer between processor and coprocessor
FR2875982B1 (fr) * 2004-09-28 2006-12-22 Commissariat Energie Atomique Architecture de communication semi-automatique noc pour applications "flots de donnees"
WO2006039710A2 (en) * 2004-10-01 2006-04-13 Lockheed Martin Corporation Computer-based tool and method for designing an electronic circuit and related system and library for same
US7818724B2 (en) * 2005-02-08 2010-10-19 Sony Computer Entertainment Inc. Methods and apparatus for instruction set emulation
JP4211751B2 (ja) * 2005-03-25 2009-01-21 セイコーエプソン株式会社 集積回路装置
US8145882B1 (en) * 2006-05-25 2012-03-27 Mips Technologies, Inc. Apparatus and method for processing template based user defined instructions
US7647475B2 (en) * 2006-09-06 2010-01-12 Mips Technologies, Inc. System for synchronizing an in-order co-processor with an out-of-order processor using a co-processor interface store data queue
US8032734B2 (en) * 2006-09-06 2011-10-04 Mips Technologies, Inc. Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor
US7594079B2 (en) 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
US20080082793A1 (en) * 2006-09-29 2008-04-03 Mips Technologies, Inc. Detection and prevention of write-after-write hazards, and applications thereof
US9946547B2 (en) 2006-09-29 2018-04-17 Arm Finance Overseas Limited Load/store unit for a processor, and applications thereof
JP2008310693A (ja) * 2007-06-15 2008-12-25 Panasonic Corp 情報処理装置
US7930519B2 (en) * 2008-12-17 2011-04-19 Advanced Micro Devices, Inc. Processor with coprocessor interfacing functional unit for forwarding result from coprocessor to retirement unit
FR2942556B1 (fr) * 2009-02-24 2011-03-25 Commissariat Energie Atomique Unite d'allocation et de controle
JP2011138308A (ja) * 2009-12-28 2011-07-14 Sony Corp プロセッサ、コプロセッサ、情報処理システムおよびそれらにおける制御方法
CN101895743B (zh) * 2010-03-11 2013-11-13 宇龙计算机通信科技(深圳)有限公司 一种处理器间编解码数据的传输方法、系统及可视电话
CN103064655A (zh) * 2011-10-20 2013-04-24 知惠科技股份有限公司 模块化程序处理装置
US11132203B2 (en) * 2014-08-14 2021-09-28 Texas Instruments Incorporated System and method for synchronizing instruction execution between a central processor and a coprocessor
CN107451090B (zh) * 2016-06-01 2020-09-11 华为技术有限公司 数据处理系统和数据处理方法
CN106371807B (zh) * 2016-08-30 2019-03-19 华为技术有限公司 一种扩展处理器指令集的方法及装置
CN106598059A (zh) * 2017-01-25 2017-04-26 桂林航天工业学院 基于fpga的多旋翼无人机系统
CN109791503A (zh) * 2018-03-07 2019-05-21 华为技术有限公司 处理中断的方法和装置
US11030075B2 (en) * 2018-11-14 2021-06-08 Microsoft Technology Licensing, Llc Efficient register breakpoints
GB2579617B (en) * 2018-12-06 2021-01-27 Advanced Risc Mach Ltd An apparatus and method for handling exception causing events
CN110502278B (zh) * 2019-07-24 2021-07-16 瑞芯微电子股份有限公司 基于RiscV扩展指令的神经网络协处理器及其协处理方法
US11263014B2 (en) * 2019-08-05 2022-03-01 Arm Limited Sharing instruction encoding space between a coprocessor and auxiliary execution circuitry
CN113254070B (zh) * 2020-02-07 2024-01-02 阿里巴巴集团控股有限公司 加速单元、片上系统、服务器、数据中心和相关方法
CN117667220B (zh) * 2024-01-30 2024-05-17 芯来智融半导体科技(上海)有限公司 指令处理方法、装置、计算机设备和存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4547849A (en) * 1981-12-09 1985-10-15 Glenn Louie Interface between a microprocessor and a coprocessor
EP0526911B1 (en) * 1983-04-18 1998-01-14 Motorola, Inc. A method and apparatus for coordinating execution of an instruction by a coprocessor
US4758950A (en) * 1983-04-18 1988-07-19 Motorola, Inc. Method and apparatus for selectively delaying an interrupt of a coprocessor
JPS62151971A (ja) * 1985-12-25 1987-07-06 Nec Corp マイクロ・プロセツサ装置
JPH0679307B2 (ja) * 1987-10-22 1994-10-05 日本電気株式会社 コプロセッサの並行動作制御方式
JPH01147656A (ja) * 1987-12-03 1989-06-09 Nec Corp マイクロプロセッサ
JP2667864B2 (ja) * 1988-03-23 1997-10-27 株式会社日立製作所 データ処理装置
JPH01243167A (ja) * 1988-03-25 1989-09-27 Hitachi Ltd データ処理装置
JP2741867B2 (ja) * 1988-05-27 1998-04-22 株式会社日立製作所 情報処理システムおよびプロセツサ
JP2946952B2 (ja) * 1992-07-31 1999-09-13 ティーディーケイ株式会社 複合型薄膜磁気ヘッド
US5655131A (en) * 1992-12-18 1997-08-05 Xerox Corporation SIMD architecture for connection to host processor's bus

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7376820B2 (en) 2000-03-16 2008-05-20 Fujitsu Limited Information processing unit, and exception processing method for specific application-purpose operation instruction
US8095780B2 (en) 2002-04-18 2012-01-10 Nytell Software LLC Register systems and methods for a multi-issue processor
JP2016535360A (ja) * 2014-07-02 2016-11-10 ヴィア アライアンス セミコンダクター カンパニー リミテッド 非アトミック分割経路融合積和
CN113157636A (zh) * 2021-04-01 2021-07-23 西安邮电大学 协处理器、近数据处理装置和方法

Also Published As

Publication number Publication date
CN1153155C (zh) 2004-06-09
TW310409B (ja) 1997-07-11
JP2987308B2 (ja) 1999-12-06
DE69619885D1 (de) 2002-04-25
KR960038572A (ko) 1996-11-21
US5909565A (en) 1999-06-01
KR100235397B1 (ko) 1999-12-15
EP0740249A1 (en) 1996-10-30
DE69619885T2 (de) 2002-07-18
CN1140857A (zh) 1997-01-22
EP0740249B1 (en) 2002-03-20

Similar Documents

Publication Publication Date Title
JP2987308B2 (ja) 情報処理装置
CA1321655C (en) Tightly coupled multiprocessor instruction synchronization
JP3658101B2 (ja) データ処理装置
US7343475B2 (en) Supplying halt signal to data processing unit from integer unit upon single unit format instruction in system capable of executing double unit format instruction
JPH09311786A (ja) データ処理装置
KR20040016829A (ko) 파이프라인식 프로세서에서의 예외 취급 방법, 장치 및시스템
US20030093648A1 (en) Method and apparatus for interfacing a processor to a coprocessor
US5961632A (en) Microprocessor with circuits, systems, and methods for selecting alternative pipeline instruction paths based on instruction leading codes
JP4569934B2 (ja) 情報処理装置、例外制御回路及び例外制御方法
US6889320B1 (en) Microprocessor with an instruction immediately next to a branch instruction for adding a constant to a program counter
US6442675B1 (en) Compressed string and multiple generation engine
JP3640855B2 (ja) プロセッサ
JP2003005954A (ja) データ処理装置およびその制御方法
US6922760B2 (en) Distributed result system for high-performance wide-issue superscalar processor
EP1050800A1 (en) A pipelined execution unit
US5784634A (en) Pipelined CPU with instruction fetch, execution and write back stages
JP2001092658A (ja) データ処理回路及びデータ処理装置
US20020108022A1 (en) System and method for allowing back to back write operations in a processing system utilizing a single port cache
JP2000215059A (ja) 命令並列性検証装置付きプロセッサ
JPH07262005A (ja) 拡張されたオペランドバイパスシステム
JPH01106227A (ja) 分岐予測機能を有するデータ処理装置
JP2001034474A (ja) データ処理装置及びデータ処理方法
JP2000322256A (ja) 情報処理装置
JPS63129430A (ja) マイクロプログラム制御装置
JPH0997180A (ja) プログラマブルコントローラ

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081001

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091001

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101001

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111001

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121001

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131001

Year of fee payment: 14

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

EXPY Cancellation because of completion of term
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371