JP2001167058A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP2001167058A
JP2001167058A JP34777999A JP34777999A JP2001167058A JP 2001167058 A JP2001167058 A JP 2001167058A JP 34777999 A JP34777999 A JP 34777999A JP 34777999 A JP34777999 A JP 34777999A JP 2001167058 A JP2001167058 A JP 2001167058A
Authority
JP
Japan
Prior art keywords
fpu
microprocessor
cpu
temporary storage
dedicated
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
JP34777999A
Other languages
English (en)
Inventor
Atsushi Kotani
敦 小谷
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 JP34777999A priority Critical patent/JP2001167058A/ja
Publication of JP2001167058A publication Critical patent/JP2001167058A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Abstract

(57)【要約】 【課題】 CPUを代表例とするマイクロプロセッサと
FPU(浮動小数点演算処理装置)を代表例とする専用
プロセッサとの並行処理を可能とした情報処理装置にお
いて、マイクロプロセッサの待ち時間を短縮し処理能力
を向上する。 【解決手段】 マルチFPU構成とする。FPU接続制
御部40におけるFPU状態レジスタ42が複数のFP
U20a,20b,20cの状態を監視しておく。CP
U10a,10b,10cのいずれかからFPU接続制
御部40におけるFPU状態解読部44に要支援命令の
リクエストがあると、FPU状態レジスタ42の情報に
基づいて不動作で空いている状態のFPUをリクエスト
をしたCPUにつなぐようにFPU選択部30を制御す
る。また、一時記憶レジスタ選択制御部70から一時記
憶レジスタ選択部60の制御を介して一時記憶レジスタ
50の使用エリアにデータ破壊の不具合が生じないよう
にする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、中央演算処理装置
(CPU)などの主とするマイクロプロセッサ以外に例
えば浮動小数点演算処理装置(FPU:Floating-point
Processing Unit)などの専用プロセッサ(コプロセッ
サ)を備え、マイクロプロセッサと専用プロセッサとの
並行処理を可能に構成した情報処理装置にかかわり、特
には、専用プロセッサの使用効率を高めるとともにマイ
クロプロセッサの処理能力を高める技術に関するもので
ある。
【0002】
【従来の技術】図5は上記のような構成の従来の情報処
理装置について、その一例の電気的構成を示すブロック
図である。図5において、符号の511,512はCP
U、513,514は命令メモリ(Inst Mem;インスト
ラクションメモリ)、515はデータメモリ(DMEM)、
520は一方のCPU512に専属のFPU(浮動小数
点演算処理装置)、530は一時記憶レジスタ、600
はメインコントロール部(Main Ctrl)、601は命令
メモリ(Inst Mem)、602はデータメモリ(DMEM)で
ある。
【0003】この従来技術のマルチCPU方式の情報処
理装置は、マイクロプロセッサとしてのCPUが処理す
べき負荷が増大したとき、例えば浮動小数点演算を行う
必要が生じたときに、その浮動小数点演算を専用プロセ
ッサとしてのFPUにまかせることにし、CPU自身
は、その間に別の処理を進める、換言すれば、CPUと
FPUとの並行処理が可能な状態に構成されている。
【0004】メインコントロール部(Main Ctrl)60
0が各CPU511,512に対して、マイクロコード
などの命令群をコンパイル(翻訳)した結果、及び各C
PUの動作状態等により、どのCPUにその処理を行わ
せるかを判断し、装置全体の動作の制御を行っている。
例えば、行わせる処理が通常の計算処理つまりFPUを
使わなくても完了する処理や、制御系の処理の場合は、
各CPU511,512の動作の状態信号より、メイン
コントロール部600は現在処理の空いている方のCP
Uへ処理を依頼する。
【0005】行わせる処理が精度を必要とする浮動小数
点演算を含む場合は、各CPU511,512の処理の
空き具合によらず、付加機能としてFPU521がつい
ている方のCPU512へ処理が依頼される。したがっ
て、FPU521を用いる処理が連続して発生するとき
には、装置全体が待ち状態になり、先のFPU521を
用いる処理が終了した後において初めてCPU512へ
タスクが渡される。
【0006】上記の従来技術の場合には、FPUがつな
がっているのは特定のCPUであって、他のCPUには
FPUへの使用権がない。
【0007】そこで、個々のCPUに個別に1対1の関
係でFPUを接続したマルチCPU・マルチFPU構成
の情報処理装置が考えられる。個々のCPUは、他のC
PUがFPUを使用していようと使用していなかろう
と、そのことには無関係に独自にFPUを使用すること
が可能となる。
【0008】
【発明が解決しようとする課題】上記のうちの前者の特
定のCPU512にのみFPU521がつながっている
形態の従来技術の場合、次のような問題がある。すなわ
ち、CPU512が浮動小数点演算を含む第1のタスク
をFPU521に渡したのち、独自の処理を行い、その
うちに浮動小数点演算を含む第2のタスクが生起したと
きに、その第2のタスクをFPU521に渡そうとして
も、もし第1のタスクが終了していなければ、渡すこと
ができず、第1のタスクが終了するまで待たなければな
らない。
【0009】例えば処理速度の高速化や扱うデータ量の
増大化が進んでいるグラフィックス処理を行う情報処理
装置においては、特に座標変換等で必要不可欠である浮
動小数点演算を含むタスク処理と、他に浮動小数点演算
を必要とするタスクが連続的に発生したとき、または次
々と座標変換が発生した場合などにおいては、変換しな
ければならない座標点数に比例して処理の待ち時間が増
加し、システム性能の低下を招くといった問題がある。
【0010】また、各CPUごとにFPUが1対1の関
係でつながっているようにした従来技術の場合には、F
PUを複数備えていても、1つのFPUはそれ専属の1
つのCPUにしかつながっておらず、あるCPUにおい
てFPUを用いる状況が断続的に発生したときに、その
FPUにおいて先行する浮動小数点演算を含む処理が終
了していない限りは、次の浮動小数点演算を含む処理は
待ち状態とならざるを得ず、結果的に装置全体の性能低
下を招くといった問題がある。
【0011】上記の説明においては、マイクロプロセッ
サとしてCPUを例にあげ、専用プロセッサとしてFP
U(浮動小数点演算処理装置)を例にあげたが、上記の
ような問題は、CPUとFPUの組み合わせに限らず、
広く一般に、マイクロプロセッサと専用プロセッサとの
並行処理を可能とした情報処理装置に当てはまることが
らである。
【0012】本発明は上記した課題の解決を図るべく創
作したものであって、CPUなどのマイクロプロセッサ
とFPUなどの専用プロセッサとの並行処理を可能とし
た情報処理装置において、装置全体の処理能力の向上を
図ることを目的としている。特には、浮動小数点演算処
理を行うマルチCPU方式の情報処理装置の処理速度の
向上を図ることを目的としている。
【0013】
【課題を解決するための手段】上記した課題の解決を図
ろうとする本発明にかかわる情報処理装置は、第一に、
専用プロセッサを複数備えることとしている。そして、
第二に、複数の専用プロセッサのうち不動作状態つまり
は空いている状態にある専用プロセッサを選択的に使用
可能となすこととしている。マイクロプロセッサが一つ
の専用プロセッサを占有している状態において、同じマ
イクロプロセッサに新たな専用プロセッサの支援を必要
とする命令が生じたときは、別の専用プロセッサにその
命令の実行を依存することができる。したがって、専用
プロセッサに空きがある限りにおいて、換言すれば、空
き状態にある専用プロセッサが存在する限りにおいて、
マイクロプロセッサは処理を待つ必要がなく、独自の処
理の遂行が可能となり、装置全体の処理能力が高まる。
【0014】
【発明の実施の形態】以下、本発明の実施の形態を総括
的に説明する。以下において必要に応じて、マイクロプ
ロセッサが専用プロセッサの支援を必要とする命令のこ
とを「要支援命令」と呼ぶことにする。
【0015】本願第1の発明の情報処理装置は、マイク
ロプロセッサ以外に複数の専用プロセッサを備え、前記
マイクロプロセッサが要支援命令についてのリクエスト
を行ったときに前記複数の専用プロセッサのうち不動作
状態にある専用プロセッサに対して前記マイクロプロセ
ッサの接続を行うように構成されている。
【0016】この第1の発明によると、マイクロプロセ
ッサに対して複数の専用プロセッサが用意されている。
したがって、マイクロプロセッサは、その複数の専用プ
ロセッサのうち現在不動作となっているすなわち空いて
いる状態の専用プロセッサに対して使用権をもつことが
できる。そのような使用権を行使できる相手側の専用プ
ロセッサが複数あるので、専用プロセッサの支援を必要
とする要支援命令が連続してまたは断続して発生した場
合に、一部の専用プロセッサがすでに動作状態に入って
いても、あるいは課せられた命令の実行が未だ終了して
いなくても、他の空いている状態の専用プロセッサを利
用することができるため、マイクロプロセッサとしては
待機をしなくてもよいことになる。そのような待機しな
くてもよい確率が大幅に増大する。このことによって、
装置全体の処理能力の向上を図ることが可能となる。
【0017】本願第2の発明の情報処理装置は、マイク
ロプロセッサと、複数の専用プロセッサと、前記マイク
ロプロセッサと前記複数の専用プロセッサのいずれかと
の接続状態を選択する選択手段と、前記複数の専用プロ
セッサの状態を監視しており前記マイクロプロセッサか
らリクエストがあったときに前記マイクロプロセッサを
不動作状態の専用プロセッサに接続するように前記選択
手段の制御を行う接続制御手段とを備えた構成となして
ある。これは、上記の第1の発明をより詳しく記述した
ものに相当する。
【0018】この第2の発明による作用は次のとおりで
ある。マイクロプロセッサは専用プロセッサの支援を必
要とする要支援命令が発生したときに、接続制御手段に
対してリクエストを行う。接続制御手段は複数の専用プ
ロセッサが現在動作状態にあるのか不動作状態にあるの
かを監視しているが、マイクロプロセッサからリクエス
トがあったときの各専用プロセッサの状態を把握して、
不動作で空いている状態の専用プロセッサを、リクエス
トをしたマイクロプロセッサに接続するように選択手段
を制御する。
【0019】このような作用により、この第2の発明
は、上記の第1の発明について記述したように、専用プ
ロセッサの支援を必要とする要支援命令が連続してまた
は断続して発生した場合に、マイクロプロセッサとして
は待機をしなくてもよくて、いずれかの空いている状態
の専用プロセッサを使うことのできる確率が大幅に増大
していることになり、結果として、装置全体の処理能力
の向上につながるのである。
【0020】本願第3の発明の情報処理装置は、複数の
マイクロプロセッサと、複数の専用プロセッサと、前記
複数のマイクロプロセッサのいずれかと前記複数の専用
プロセッサのいずれかとの接続状態を選択する選択手段
と、前記複数の専用プロセッサの状態を監視しており前
記複数のマイクロプロセッサのいずれかからリクエスト
があったときにそのリクエストをしたマイクロプロセッ
サを不動作状態の専用プロセッサに接続する制御を行う
接続制御手段とを備えた構成となしたものである。この
第3の発明は、上記の第2の発明において、マイクロプ
ロセッサが複数あること、およびそのいずれのマイクロ
プロセッサも、また選択手段がいずれのマイクロプロセ
ッサに対しても、上記の第2の発明の機能をもつことを
記述している。
【0021】この第3の発明による作用は次のとおりで
ある。理解を容易にするために、ここでひとつの例とし
て、マイクロプロセッサがμ1とμ2の2つあり、専用
プロセッサがλ1とλ2の2つあると仮定する。
【0022】この場合、μ1がλ1を占有している状態
で、μ2がλ2に使用権を発動することはもちろん可能
である。逆に、μ2がλ1を占有している状態で、μ1
がλ2に使用権を発動することももちろん可能である。
【0023】μ1がλ1を占有している状態で、μ1に
次の要支援命令があったとすると、μ1はλ2に対して
も使用権を発動することが可能である。
【0024】同様に、μ1がλ2を占有している状態
で、μ1に次の要支援命令があったとすると、μ1はλ
1に対しても使用権を発動することが可能である。
【0025】また、μ2がλ1を占有している状態で、
μ2に次の要支援命令があったとすると、μ2はλ2に
対しても使用権を発動することが可能である。
【0026】同様に、μ2がλ2を占有している状態
で、μ2に次の要支援命令があったとすると、μ2はλ
1に対しても使用権を発動することが可能である。
【0027】また、別の例として、マイクロプロセッサ
がμ1とμ2とμ3の3つあり、専用プロセッサがλ1
とλ2とλ3の3つあると仮定する。
【0028】この場合、μ1がλ1を占有し、μ2がλ
3を占有している状態で、μ1に次の要支援命令があっ
たとすると、μ1はλ2に対しても使用権を発動するこ
とが可能である。
【0029】同様に、μ1がλ1を占有し、μ2がλ3
を占有している状態で、μ2に次の要支援命令があった
とすると、μ2はλ2に対しても使用権を発動すること
が可能である。
【0030】こらに、別の例として、マイクロプロセッ
サがμ1とμ2とμ3の3つあり、専用プロセッサがλ
1とλ2とλ3とλ4の4つあると仮定する。マイクロ
プロセッサの個数と専用プロセッサの個数とは必ずしも
同じである必要ではなくて、いずれが多くても少なくて
もよい。
【0031】この場合、μ1がλ2を占有し、μ2がλ
1を占有している状態で、μ1に次の要支援命令があっ
たとすると、μ1はλ3に対しても使用権を発動するこ
とが可能であり、さらにμ2に次の要支援命令があった
とすると、μ2はλ4に対しても使用権を発動すること
が可能である。
【0032】また、μ1がλ2を占有し、μ2がλ3を
占有している状態で、μ1に次の要支援命令があったと
すると、μ1はλ1に対しても使用権を発動することが
可能であり、μ1にさらに次の要支援命令があったとす
ると、μ1はλ4に対しても使用権を発動することが可
能である。
【0033】以上の例において、複数のマイクロプロセ
ッサと専用プロセッサとが並列処理の状態にあるとき
に、いずれかの処理が終了して専用プロセッサに空きが
生じたとすると、依然として他の専用プロセッサを占有
しているマイクロプロセッサにさらなる次の要支援命令
があれば、その空きが生じた専用プロセッサに対しても
使用権を発動することが可能である。
【0034】このように第3の発明によると、非常にダ
イナミックで流動的なかたちで、個々のマイクロプロセ
ッサは複数の専用プロセッサをきわめて有効に活用する
ことができる。したがって、マイクロプロセッサの待機
を極力減らし、要支援命令を直ちに専用プロセッサを用
いて実行させることのできる確率が飛躍的に増大し、装
置全体の大幅な処理能力の向上を図ることができる。
【0035】本願第4の発明の情報処理装置は、上記の
第3の発明において、前記リクエストをしたマイクロプ
ロセッサからそのデータを受け取って一時記憶し、前記
リクエストされた専用プロセッサにそのデータを受け渡
す中継の一時記憶手段を備えており、前記リクエストを
したマイクロプロセッサは前記一時記憶手段にデータ転
送を完了したのちは独自の処理を実行し、前記マイクロ
プロセッサから命令を受け取った前記専用プロセッサは
前記一時記憶手段をアクセスしながら前記リクエストの
命令の処理を実行するように構成されているものであ
る。
【0036】この第4の発明によると、マイクロプロセ
ッサは専用プロセッサに対して使用権を発動する際に、
その要支援命令の実行に必要なデータを一時記憶手段に
転送する。要支援命令のリクエストを受けた専用プロセ
ッサは、その要支援命令の実行に必要なデータをマイク
ロプロセッサからではなく一時記憶手段から読み込めば
よい。その結果として、マイクロプロセッサは専用プロ
セッサの処理に制約されることなく、その独自の処理を
自由に実行することができ、さらなる処理能力の向上を
期することができる。
【0037】本願第5の発明の情報処理装置は、上記の
第4の発明において、前記複数のマイクロプロセッサと
前記一時記憶手段との間および前記複数の専用プロセッ
サと前記一時記憶手段との間に介挿されて接続状態を選
択する一時記憶用選択手段と、前記接続制御手段からの
どの専用プロセッサを接続するかの情報に基づいてその
専用プロセッサに対応した領域を前記一時記憶手段に設
定しかつその設定領域に対して前記データ転送のために
前記リクエストをしたマイクロプロセッサを接続するよ
うに前記一時記憶用選択手段を制御する一時記憶選択制
御手段とを備えた構成となしたものである。
【0038】この第5の発明による作用は次のとおりで
ある。個々の専用プロセッサは一時記憶手段においてそ
れ特有の領域が割り当てられている。一時記憶選択制御
手段はリクエストに応じることとなった専用プロセッサ
に特有の領域を一時記憶手段において確保するように一
時記憶用選択手段を制御する。その結果として、あるマ
イクロプロセッサとある専用プロセッサとが接続されて
おり、かつ別のマイクロプロセッサと別の専用プロセッ
サとが接続されている多重の並行処理にあって、一時記
憶手段を共用したとしても、各専用プロセッサが使用す
る領域が明確に区画されていることから、誤ったデータ
の上書きによって処理に必要なデータが破壊されてしま
うといった不具合を確実に防止することができる。
【0039】本願第6の発明の情報処理装置は、上記の
第1〜第5の発明において、前記マイクロプロセッサが
中央演算処理装置(CPU)であり、前記専用プロセッ
サが浮動小数点演算処理装置(FPU)などの数値演算
プロセッサ(NDP:Numerical Data Processor)であ
るというものである。
【0040】これは、特に、近年の、処理速度の高速化
や扱うデータ量の増大化が進んでいるグラフィックス処
理を行う情報処理装置において有効となる。例えば、座
標変換等で必要不可欠である浮動小数点演算を含むタス
ク処理と、他に浮動小数点演算を必要とするタスクが連
続的に発生したとき、または次々と座標変換が発生した
場合などにおいて、従来技術では変換しなければならな
い座標点数に比例して処理の待ち時間が増加しシステム
性能の低下を招いていたが、この第6の発明によれば、
上述の作用のとおりに全体の処理能力が大幅に向上して
いるので、そのようなグラフィックス処理にも充分に対
応することが可能となる。
【0041】本願第7の発明の情報処理装置は、上記の
第1〜第6の発明において、前記複数のマイクロプロセ
ッサとして外部CPUもアクセス可能に構成されている
というものである。外部CPUに対しても、本装置がも
つ資源を有効に活用することが可能となり、トータルの
能力アップを図ることができる。
【0042】なお、この明細書において、「CPU」
(Central Processing Unit)という記述は、通称の代
表的なものを取り上げているだけであって、その他の表
現として、例えば「MPU」(Micro Processor Unit)
なども含めて、また、専用プロセッサとしては、上記の
例以外に、例えば「DSP」(Digital Signal Process
or)なども含めて、それぞれ最も広義に解釈し得るもの
としてとらえなければならない。
【0043】以下、本発明にかかわるマルチCPU方式
の情報処理装置の具体的な実施の形態を図面に基づいて
詳細に説明する。以下の実施の形態は、マイクロプロセ
ッサとしてCPU(中央演算処理装置)を例にあげ、専
用プロセッサとしてFPU(浮動小数点演算処理装置)
を例にあげる。
【0044】図1、図2、図3は図示表示として一部ず
つが重複した階層的構造をなしている。図1は本発明の
実施の形態のマルチCPU方式の情報処理装置における
主要構成を抽出して示した基本的な電気的構成を示すブ
ロック図、図2はマルチCPU方式の情報処理装置の内
部におけるより詳しい配線関係を示すとともに、マルチ
CPU方式の情報処理装置と外部の要素との関係につい
てより詳しい関係を示すブロック図、図3はマルチCP
U方式の情報処理装置の構成要素としてのFPU接続制
御部および一時記憶レジスタ選択部についてより詳しい
構成を示すブロック図である。
【0045】まず、図1によって本実施の形態のマルチ
CPU方式の情報処理装置の主要構成について説明す
る。
【0046】図1において、符号の100は本実施の形
態のマルチCPU方式の情報処理装置、200は外部記
憶装置、300は外部CPUである。また、10a,1
0b,10cは互いに独立した状態で動作するマイクロ
プロセッサの代表例としてのCPU(中央演算処理装
置)、11a,11b,11cは各CPU10a,10
b,10cが実行すべき命令を格納している命令メモリ
(インストラクションメモリ:IM)、12a,12
b,12cは各CPU10a,10b,10cが処理に
用いるデータを格納するデータメモリ(DM)、20
a,20b,20cは専用プロセッサの代表例としての
浮動小数点演算処理を行うFPU(フローティング演算
ユニット)、30は複数のCPU10a,10b,10
cと複数のFPU20a,20b,20cとの制御信号
の接続を切り換えるFPU選択部、40はFPU選択部
30を制御することによりCPU10a,10b,10
cとFPU20a,20b,20cとの接続状態を制御
するFPU接続制御部、42は複数のFPU20a,2
0b,20cのいずれかが動作状態にあるかまたは不動
作状態にあるかなどの情報やどのCPU10a,10
b,10cおよび外部CPU100のうちどのCPUが
マスターになっているかの情報を示すFPU状態レジス
タである。FPU状態レジスタ42はFPU接続制御部
40に含まれているものとして扱ってよい。FPU選択
部30が特許請求の範囲にいう「選択手段」相当し、F
PU接続制御部40が同じく「接続制御手段」に相当し
ている。
【0047】FPU状態レジスタ42は、FPU20
a,20b,20cの動作状態を確認し、その動作状態
を各CPU10a,10b,10cに伝えるように構成
されている。
【0048】FPU接続制御部40は、CPU10a,
10b,10cのいずれかから要支援命令の代表例とし
ての浮動小数点演算処理のリクエストがあったときに、
FPU状態レジスタ42の情報を解読し、不動作となっ
ているすなわち空いている状態のいずれかのFPUとリ
クエストしているマスターのCPUとを接続するように
FPU選択部30を制御するように構成されている。C
PU10a,10b,10cとFPU20a,20b,
20cの接続の関係は、固定的に定まっているわけでは
なく、常に流動的なものとなる。
【0049】CPUに接続されることとなるFPUは、
そのCPUからの浮動小数点演算の命令を受けて、浮動
小数点演算を実行するものとして構成されている。
【0050】符号の50はCPU10a,10b,10
cや外部CPU100のうちマスターとなるCPUから
スレイブとなるFPUに対して浮動小数点演算処理に必
要となるデータを転送する際のデータの一時記憶を行う
ための一時記憶レジスタである。一時記憶レジスタ50
には、FPUに処理を行わせる際の計算対象データや、
その他計算に必要な係数等が一時的に格納されるように
なっている。この一時記憶レジスタ50が特許請求の範
囲にいう「一時記憶手段」に相当している。
【0051】ところで、例えば第1のCPU10aと例
えば第3のFPU20cとが接続されている状態で、同
時に、例えば第2のCPU10bと例えば第1のFPU
20aとが接続される状態も起こり得る。さらには、第
3の接続状態が同時に起こることもあり得る。そのよう
な場合に、あるCPUが一時記憶レジスタ50にアクセ
スしているときに、別のCPUが同時に一時記憶レジス
タ50にアクセスすることになる。そのときに、一時記
憶レジスタ50の記憶領域においてデータの上書きでデ
ータの不測の破壊が生じる場合が起こり得る。
【0052】符号の60は、そのような不都合の発生を
防止するために、一時記憶レジスタ50とCPU10
a,10b,10cとの間および一時記憶レジスタ50
とFPU20a,20b,20cとの間ならびに一時記
憶レジスタ50と外部CPU300との間で交通整理的
に接続状態を調停(アービトレーション)する一時記憶
レジスタ選択部である。また、70はFPU接続制御部
40がFPU状態レジスタ42を解読した結果として一
時記憶レジスタ選択部60を上記のように制御する一時
記憶レジスタ選択制御部である。一時記憶レジスタ選択
部60が特許請求の範囲にいう「一時記憶用選択手段」
に相当し、一時記憶レジスタ選択制御部70が同じく
「一時記憶選択制御手段」に相当している。
【0053】次に、図2によってマルチCPU方式の情
報処理装置100と外部の要素との関係についてより詳
しい構成を説明する。
【0054】200はマルチCPU方式の情報処理装置
100についての外部記憶装置(DMEM)、300は
外部CPU、310は外部CPU300が実行すべき命
令を格納している外部命令メモリ(IMEM)、320
は外部CPU300の処理に用いるデータを格納する外
部データメモリ(DMEM)である。
【0055】81はマルチCPU方式の情報処理装置1
00におけるCPU10a,10b,10cが処理する
データの入出力を行うために外部記憶装置200との通
信を制御するデータメモリインタフェース(DM I
F)、82はCPU10a,10b,10cと外部記憶
装置200との間でアクセスの調停(アービトレーショ
ン)を行うデータバス調停部(Data Bus Arbiter)
である。83はマルチCPU方式の情報処理装置100
におけるCPU10a,10b,10cと外部CPU3
00との間で命令やデータのやりとりを行うI/Oイン
タフェース(I/O IF)である。
【0056】FPU選択部30およびFPU接続制御部
40は、マルチCPU方式の情報処理装置100の内部
のCPU10a,10b,10cに対するのと同様に、
外部CPU300とも接続されている。図2において、
FPU接続制御部40とCPU10a,10b,10c
のそれぞれおよび外部CPU300とが往復矢印の接続
ライン84,85で結ばれていることに留意されたい。
これは、CPUからのリクエストとFPUからの確認
(アクノリッジ)とを示している。
【0057】次に、図3によってFPU接続制御部40
および一時記憶レジスタ選択部60についてより詳しい
構成を説明する。
【0058】FPU接続制御部40は、FPU状態レジ
スタ42のほかにFPU状態解読部(DEC;Decode
r)44と外部CPUインタフェース46とを備えてい
る。
【0059】CPU10a,10b,10cの各々はF
PU状態解読部44に対して浮動小数点演算のためのリ
クエストを送出するようになっている。FPU状態解読
部44は、リクエストを受け取ると、FPU状態レジス
タ42を参照して、不動作状態となっているFPUがあ
るかどうか、またそれはどのFPUかを解読し、リクエ
ストを発したCPUに対して、その結果を知らせる。さ
らに、FPU状態解読部44は、前記のように、FPU
20a,20b,20cのうち不動作状態のFPUを、
リクエストのあったCPUに接続するようにFPU選択
部30に対して制御信号を送出する。84aはリクエス
トの信号ライン、84bはアクノリッジの信号ラインで
あり、これらは図2の接続ライン84に相当している。
【0060】なお、FPUの不動作状態を判定すること
につけて、厳密にFPUの使用状態というのは、FPU
が動作している状態を含むのはもちろん、そのときに該
当FPUのマスターとなっているCPUが演算用のデー
タを一時記憶レジスタ50へ転送している状態、およ
び、逆に演算結果を一時記憶レジスタ50から自身のデ
ータメモリへ転送している状態も含むものである。
【0061】一時記憶レジスタ50は、3つのFPU2
0a,20b,20cに対応して3つのバンク50a,
50b,50cを有している。一時記憶レジスタ選択部
60は、CPU10a,10b,10cおよびFPU2
0a,20b,20cの各々ならびに外部CPU300
からバンク50a,50b,50cの各々への書き込み
の切り換えを行うための第1の複数のセレクタ60a‥
と、CPU10a,10b,10cおよびFPU20
a,20b,20cの各々からのバンク50a,50
b,50cの各々の読み出しの切り換えを行うための第
2の複数のセレクタ60b‥と、外部CPU300から
のバンク50a,50b,50cの各々の読み出しの切
り換えを行うための第3のセレクタ60cとを備えてい
る。
【0062】一時記憶レジスタ選択制御部70は、一時
記憶レジスタ選択部60における各セレクタ60a,6
0b,60cを調停的に制御するようになっている。そ
のことによって、一時記憶レジスタ50において上書き
によるデータの破壊を防止している。このことの詳しい
動作については後述する。
【0063】次に、上記のように構成された本実施の形
態のマルチCPU方式の情報処理装置100の動作を図
4のフローチャートに従って説明する。
【0064】ステップS10において外部CPU300
が各装置内部のCPU10a,10b,10cに行わせ
るべき処理の割り付けを行う。ステップS20において
各CPU10a,10b,10cを起動し、処理を開始
する。起動をかけられた各CPU10a,10b,10
cは、ステップS30において浮動小数点演算処理が必
要か否かを判断し、浮動小数点演算処理が不要であると
きはステップS40に進んで浮動小数点演算を伴わない
通常の処理を実行する。そして、ステップS200にお
いて終了条件を満たすのを待つ。
【0065】一方、ステップS30において浮動小数点
演算処理が必要であると判断したときはステップS10
0に進んで該当計算命令群をFPU20a,20b,2
0cのいずれかに処理させるべく、当該のCPUはFP
U接続制御部40におけるFPU状態解読部44に対し
てFPU使用のためのリクエストを発行する。
【0066】リクエストを受けたFPU状態解読部44
は、ステップS110,S120においてFPU状態レ
ジスタ42の状態を見る。すなわちFPU20a,20
b,20cのいずれが不動作となっているすなわち空い
ている状態となっているか否かをモニタする。そして、
空いている状態のFPUがないときはステップS130
に進んで、リクエストしてきたCPUに対して待機信号
を送出する。
【0067】空いている状態のFPUがあったとき、ま
たはFPUに空きが発生したときには、リクエストを許
可し、ステップS140において該当CPUから空き状
態の使用可能なFPU(20a,20b,20cのいず
れか)が使用する一時記憶レジスタ50のバンク(50
a,50b,50cのいずれか)へ演算用のデータを転
送する。
【0068】そして、ステップS150において、該当
のFPUは、現在のマスターとなっているCPUの命令
による浮動小数点演算処理を実行する。このとき、マス
ターとなっているCPUはFPUを投機的に実行させる
ものである。したがって、CPU10a,10b,10
cのうちの任意のCPUと、FPU20a,20b,2
0cのうちの投機的につながっている任意のFPUとの
組み合わせには様々なものがある。
【0069】ある1つのCPUとある1つのFPUとが
つながって処理を実行している状態で、別のCPUと別
のFPUとが並行して処理を実行することが可能であ
り、さらには、残りのCPUと残りのFPUとが並行し
て処理を実行することも可能である。
【0070】また、同一のCPUにおいてFPUの支援
を必要とする要支援命令が連続してあるいは断続して発
生したときに、その同じCPUが異なる複数のFPUに
対して同時的あるいは並行的に使用権を発動しているこ
とが起こり得る。詳しくは、記述の第3の発明による作
用を参照されたい。μi ,λi (i=1,2‥)で説明
したとおりである。
【0071】個々のFPUにおいて、その浮動小数点演
算処理が終了すると、ステップS160においてFPU
状態レジスタ42はそれ自身単独のFPUについて処理
が終了したことを示す状態に変化し、マスターとなって
いたCPUに知らせるが、これに伴って、通知を受けた
CPUは演算結果を一時記憶レジスタ50から自身のデ
ータメモリ(12a,12b,12cのいずれか)に転
送する。そして、ステップS200に進み、終了条件を
満たすのを待つ。
【0072】ステップS200において終了条件が満た
されたと判断したときは、ステップS210に進んで外
部CPU300に対して終了割り込みを行い、次の指令
を待つ。すなわち、ステップS220で外部CPU30
0からの起動を待ち、起動があればステップS20に戻
り、また、ステップS230でシステムの終了を待ち、
終了がなければステップS220に戻る。
【0073】次に、一時記憶レジスタ50を共用するこ
とに起因してのデータ上書きによるデータ破壊の防止に
ついて説明する。
【0074】上記したように、一時記憶レジスタ選択部
60は誤ったデータの上書きにより、一時記憶レジスタ
50に格納されているデータが不測に破壊されないよう
にするためのものである。
【0075】マルチCPU方式の情報処理装置100に
おけるCPU10a,10b,10cのいずれかがFP
U20a,20b,20cのいずれかに対して浮動小数
点演算系の処理を行わせたい場合、まず演算に必要なデ
ータをCPU自身のデータメモリ(12a,12b,1
2cのいずれか)から一時記憶レジスタ50に転送しな
ければならない。その際に、他のCPUが使用している
FPUがアクセスしている一時記憶レジスタ50内のア
ドレス領域に対してデータを上書きしないように、該当
CPUはFPU接続制御部40におけるFPU状態解読
部44に対してFPUの使用リクエストを出し、それを
受けたFPU状態解読部44はFPU状態レジスタ42
を参照し、不動作となっているすなわち空いている状態
のFPUへの通信を許可する。
【0076】あるFPUに対してあるCPUがマスター
となっており、まだFPU自体には起動をかけていない
状態であることをFPU状態レジスタ42が確認した場
合、そのことをFPU状態解読部44が解読し、その解
読結果に基づいて一時記憶レジスタ選択制御部70を介
して一時記憶レジスタ選択部60におけるセレクタ60
a‥,60b‥を制御し、そのFPUがアクセスする領
域の一時記憶レジスタ50のバンク(50a,50b,
50cのいずれか)の入力、出力ポートに対してマスタ
ーとなったCPUからの入力、出力バスを接続し、ある
決められたアドレス領域のみにアクセスを制限するよう
に制御を行う。
【0077】マスターとなったCPUがFPUに起動を
かけた場合は、そのFPUがもともと使用する入力、出
力ポートに接続し、FPUにおいて浮動小数点演算処理
を行わせる。
【0078】最後にFPUの処理が終了し、結果が一時
記憶レジスタ50に残っている状態の場合は、再びマス
ターとなっているCPUの入力、出力バスが接続され、
演算結果を自身のメモリに転送し、転送終了後にFPU
接続制御部40に対して起動信号の無効を伝え、以降の
処理に入る。
【0079】以上のような接続制御を行うことにより、
他のFPUの使用するデータの破壊を防ぐことが可能と
なる。
【0080】以上詳しく説明してきたように、本実施の
形態の情報処理装置によれば、複数FPUが存在する構
成をとり、いずれかのCPUが浮動小数点演算系の命令
をすでにあるFPUに処理させている状態であったとし
ても、その同じCPUに新たな浮動小数点演算系の命令
が発生したときには、先のFPUが処理を終えていなく
ても、別のFPUが空いていればそちらに処理を依頼す
ることが可能となる。したがって、浮動小数点演算処理
が多発するようなアプリケーションの場合における従来
技術の課題であったところの、あるCPUにのみにしか
FPUがついていなかったり、CPUとFPUが1対1
でしかつながっていないといったハードウェアの制限で
発生する浮動小数点演算系命令の待ち時間の問題をうま
く解消することができ、待ち時間の大幅な減少を可能と
なし、装置全体の性能を向上させることができるに至っ
たのである。
【0081】以上、本発明の実施の形態について詳述し
てきたが、本発明は上記の実施の形態に限定される必要
性はなく、次のような実施の形態も含み得るものであ
る。 (1)CPUで代表されるマイクロプロセッサとして
は、その個数が複数の場合で説明したが、その個数は任
意であって、図示の3つの場合以外の任意の複数のほ
か、単一の場合も含み得るものとする。すなわち、単一
のマイクロプロセッサであっても、それに複数の専用プ
ロセッサが選択的に接続される構成の場合を含み得るも
のとする。 (2)マスターとなったCPUからFPUに要支援命令
の実行を依頼するに際して、そのCPUから一時記憶レ
ジスタ50にデータを転送するようにしたが、必ずしも
それにとらわれる必要性はなく、一時記憶レジスタ50
を省略して、FPUにそのCPUに付属のデータメモリ
にアクセスさせるように構成してもよきものとする。 (3)一時記憶レジスタ50を有するとしても、共通の
ものではなく、個々のFPUに専用の複数の一時記憶レ
ジスタを設けてもよいし、あるいは、個々のCPUに専
用の複数の一時記憶レジスタを設けてもよきものとす
る。
【0082】上記の(1)〜(3)は互いに独立した事
項であり、これらのうち任意の事項を任意数適当に組み
合わせてもよきものとする。
【0083】本願の明細書または図面に記載してある任
意の事項について、その省略の可能性、または特許請求
の範囲への追加ならびに発明の詳細な説明の変更の可能
性を留保する。
【0084】
【発明の効果】本発明によれば、CPU(中央演算処理
装置)が一例とされるマイクロプロセッサに対してFP
U(浮動小数点演算処理装置)が一例とされる複数の専
用プロセッサを備えておき、専用プロセッサの不動作で
空いている状態の確認を経た上での合理的なマイクロプ
ロセッサと専用プロセッサとの結び付きを配分するの
で、マイクロプロセッサが一つの専用プロセッサを占有
している状態において、同じマイクロプロセッサに新た
な専用プロセッサの支援を必要とする命令が生じたとき
は、別の専用プロセッサにその命令の実行を依存するこ
とができる。したがって、空き状態にある専用プロセッ
サが存在する限りにおいて、マイクロプロセッサは処理
を待つ必要がなく、独自の処理の遂行が可能となり、装
置全体の処理能力を大幅に高めることができる。
【図面の簡単な説明】
【図1】 本発明の実施の形態のマルチCPU方式の情
報処理装置における主要構成を抽出して示した基本的な
電気的構成を示すブロック図
【図2】 上記図1の実施の形態のマルチCPU方式の
情報処理装置の内部におけるより詳しい配線関係および
マルチCPU方式の情報処理装置と外部の要素との関係
についてより詳しい関係を示すブロック図
【図3】 上記図1の実施の形態のマルチCPU方式の
情報処理装置の構成要素としてのFPU接続制御部およ
び一時記憶レジスタ選択部についてより詳しい構成を示
すブロック図
【図4】 上記の実施の形態のマルチCPU方式の情報
処理装置の動作を示すフローチャート
【図5】 従来技術のマルチCPU方式の情報処理装置
の電気的構成を示すブロック図
【符号の説明】
10a,10b,10c…マイクロプロセッサの一例と
してのCPU(中央演算処理装置) 11a,11b,11c…命令メモリ 12a,12b,12c…データメモリ 20a,20b,20c…専用プロセッサの一例として
のFPU(浮動小数点演算処理装置) 30…選択手段の一例としてのFPU選択部 40…接続制御手段の一例としてのFPU接続制御部 42…FPU状態レジスタ 44…FPU状態解読部 46…外部CPUインタフェース 50…一時記憶手段としての一時記憶レジスタ 50a,50b,50c…バンク 60…一時記憶用選択手段としての一時記憶レジスタ選
択部 60a,60b,60c…セレクタ 70…一時記憶選択制御手段としての一時記憶レジスタ
選択制御部 81…データメモリインタフェース 82…データバス調停部 83…I/Oインタフェース 84a…リクエストの信号ライン 84b…アクノリッジの信号ライン 100…マルチCPU方式の情報処理装置 200…外部記憶装置 300…外部CPU 310…外部命令メモリ 320…外部データメモリ

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 マイクロプロセッサ以外に複数の専用プ
    ロセッサを備え、前記マイクロプロセッサがリクエスト
    を行ったときに前記複数の専用プロセッサのうち不動作
    状態にある専用プロセッサに対して前記マイクロプロセ
    ッサの接続を行うように構成されていることを特徴とす
    る情報処理装置。
  2. 【請求項2】 マイクロプロセッサと、複数の専用プロ
    セッサと、前記マイクロプロセッサと前記複数の専用プ
    ロセッサのいずれかとの接続状態を選択する選択手段
    と、前記複数の専用プロセッサの状態を監視しており前
    記マイクロプロセッサからリクエストがあったときに前
    記マイクロプロセッサを不動作状態の専用プロセッサに
    接続するように前記選択手段の制御を行う接続制御手段
    とを備えていることを特徴とする情報処理装置。
  3. 【請求項3】 複数のマイクロプロセッサと、複数の専
    用プロセッサと、前記複数のマイクロプロセッサのいず
    れかと前記複数の専用プロセッサのいずれかとの接続状
    態を選択する選択手段と、前記複数の専用プロセッサの
    状態を監視しており前記複数のマイクロプロセッサのい
    ずれかからリクエストがあったときにそのリクエストを
    したマイクロプロセッサを不動作状態の専用プロセッサ
    に接続する制御を行う接続制御手段とを備えていること
    を特徴とする情報処理装置。
  4. 【請求項4】 前記リクエストをしたマイクロプロセッ
    サからそのデータを受け取って一時記憶し、前記リクエ
    ストされた専用プロセッサにそのデータを受け渡す中継
    の一時記憶手段を備えており、前記リクエストをしたマ
    イクロプロセッサは前記一時記憶手段にデータ転送を完
    了したのちは独自の処理を実行し、前記マイクロプロセ
    ッサから命令を受け取った前記専用プロセッサは前記一
    時記憶手段をアクセスしながら前記リクエストの命令の
    処理を実行するように構成されていることを特徴とする
    請求項3に記載の情報処理装置。
  5. 【請求項5】 前記複数のマイクロプロセッサと前記一
    時記憶手段との間および前記複数の専用プロセッサと前
    記一時記憶手段との間に介挿されて接続状態を選択する
    一時記憶用選択手段と、前記接続制御手段からのどの専
    用プロセッサを接続するかの情報に基づいてその専用プ
    ロセッサに対応した領域を前記一時記憶手段に設定しか
    つその設定領域に対して前記データ転送のために前記リ
    クエストをしたマイクロプロセッサを接続するように前
    記一時記憶用選択手段を制御する一時記憶選択制御手段
    とを備えていることを特徴とする請求項4に記載の情報
    処理装置。
  6. 【請求項6】 前記マイクロプロセッサが中央演算処理
    装置(CPU)であり、前記専用プロセッサが浮動小数
    点演算処理装置(FPU)などの数値演算プロセッサ
    (NDP)である請求項1から請求項5までのいずれか
    に記載の情報処理装置。
  7. 【請求項7】 前記複数のマイクロプロセッサとして外
    部CPUもアクセス可能に構成されていることを特徴と
    する請求項1から請求項6までのいずれかに記載の情報
    処理装置。
JP34777999A 1999-12-07 1999-12-07 情報処理装置 Pending JP2001167058A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP34777999A JP2001167058A (ja) 1999-12-07 1999-12-07 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP34777999A JP2001167058A (ja) 1999-12-07 1999-12-07 情報処理装置

Publications (1)

Publication Number Publication Date
JP2001167058A true JP2001167058A (ja) 2001-06-22

Family

ID=18392529

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34777999A Pending JP2001167058A (ja) 1999-12-07 1999-12-07 情報処理装置

Country Status (1)

Country Link
JP (1) JP2001167058A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007179326A (ja) * 2005-12-28 2007-07-12 Matsushita Electric Ind Co Ltd 演算処理装置
JP2007520766A (ja) * 2003-06-23 2007-07-26 インテル コーポレイション データドリブンアーキテクチャにおける選択可能なハードウェアアクセラレータのための装置及び方法
JP2007328461A (ja) * 2006-06-06 2007-12-20 Matsushita Electric Ind Co Ltd 非対称マルチプロセッサ
JP2009037626A (ja) * 2008-09-04 2009-02-19 Panasonic Corp コンパイラ
JP2009542107A (ja) * 2006-06-21 2009-11-26 クゥアルコム・インコーポレイテッド アルゴリズムを実装する際の汎用プロセッサからの非効率に対処するためのデバイスおよび方法
US8307141B2 (en) 2008-12-10 2012-11-06 Fujitsu Limited Multi-core processor, control method thereof, and information processing apparatus
US9558151B2 (en) 2011-02-22 2017-01-31 Renesas Electronics Corporation Data processing device and data processing method thereof
JP2020027613A (ja) * 2018-08-10 2020-02-20 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド 人工知能チップ及び人工知能チップに用いられる命令実行方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8754893B2 (en) 2003-06-23 2014-06-17 Intel Corporation Apparatus and method for selectable hardware accelerators
JP2007520766A (ja) * 2003-06-23 2007-07-26 インテル コーポレイション データドリブンアーキテクチャにおける選択可能なハードウェアアクセラレータのための装置及び方法
US7714870B2 (en) 2003-06-23 2010-05-11 Intel Corporation Apparatus and method for selectable hardware accelerators in a data driven architecture
US8063907B2 (en) 2003-06-23 2011-11-22 Intel Corporation Apparatus and method for selectable hardware accelerators in a data driven architecture
JP2007179326A (ja) * 2005-12-28 2007-07-12 Matsushita Electric Ind Co Ltd 演算処理装置
JP2007328461A (ja) * 2006-06-06 2007-12-20 Matsushita Electric Ind Co Ltd 非対称マルチプロセッサ
JP2009542107A (ja) * 2006-06-21 2009-11-26 クゥアルコム・インコーポレイテッド アルゴリズムを実装する際の汎用プロセッサからの非効率に対処するためのデバイスおよび方法
JP2009037626A (ja) * 2008-09-04 2009-02-19 Panasonic Corp コンパイラ
US8307141B2 (en) 2008-12-10 2012-11-06 Fujitsu Limited Multi-core processor, control method thereof, and information processing apparatus
US9558151B2 (en) 2011-02-22 2017-01-31 Renesas Electronics Corporation Data processing device and data processing method thereof
JP2020027613A (ja) * 2018-08-10 2020-02-20 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド 人工知能チップ及び人工知能チップに用いられる命令実行方法
JP7011627B2 (ja) 2018-08-10 2022-01-26 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 人工知能チップ及び人工知能チップに用いられる命令実行方法
US11372673B2 (en) 2018-08-10 2022-06-28 Beijing Baidu Netcom Science And Technology Co., Ltd. Artificial intelligence chip and instruction execution method for artificial intelligence chip

Similar Documents

Publication Publication Date Title
US6938253B2 (en) Multiprocessor communication system and method
US20070074214A1 (en) Event processing method in a computer system
JPH01200466A (ja) データ処理システム
US20060059489A1 (en) Parallel processing system, interconnection network, node and network control method, and program therefor
CA2478570A1 (en) Data processing apparatus and system and method for controlling memory access
US7996592B2 (en) Cross bar multipath resource controller system and method
KR100834180B1 (ko) 프로그램/명령어의 실행을 구동하는 “l”구동법 및그것의 아키텍처와 프로세서
JPH06161950A (ja) 複式バス・アーキテクチャを有する計算システムに使用するデータ伝送の管理方法。
JP2000293436A (ja) パイプラインメモリシステムにおける複数のターゲットへの複数の未解決要求のサポート
US5594880A (en) System for executing a plurality of tasks within an instruction in different orders depending upon a conditional value
JP2001167058A (ja) 情報処理装置
JPH0997184A (ja) 効率的な割込み処理を含む情報処理システム
JP4402624B2 (ja) 負荷管理装置および負荷管理方法
JP2001333137A (ja) 自主動作通信制御装置及び自主動作通信制御方法
US6282144B1 (en) Multi-ported memory with asynchronous and synchronous protocol
JP2813182B2 (ja) マルチプロセッサコンピュータ複合装置
JPH0855097A (ja) データ処理システム及びそのメモリアクセス方法
JPH11272632A (ja) マルチプロセッサシステム
JPH05210481A (ja) 直接アクセス式ビデオバス
JP2004513457A (ja) 付加的なプロセッサを用いてデータ交換する通信システム
JPH09218859A (ja) マルチプロセッサ制御システム
JP2002312302A (ja) 周辺装置
JP2705955B2 (ja) 並列情報処理装置
JPH05165641A (ja) シングルチップマイクロコンピュータ
JPH056333A (ja) マルチプロセサシステム