米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> 松下電器産業株式会社

発明の名称 情報処理装置
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開平7−93150
公開日 平成7年(1995)4月7日
出願番号 特願平5−234428
出願日 平成5年(1993)9月21日
代理人 【弁理士】
【氏名又は名称】岡田 和秀
発明者 五木田 諭
要約 目的
命令が分岐命令であるときに従来例でみられた条件分岐命令により生じるディレイスロットを解消し、条件判定までの時間を有効に活用する状態で命令実行の高速化を図る。

構成
メモリ101から取り込んだ命令がデコーダ111によって分岐命令と判断されたとき、分岐条件が成立するか否かを判定するまでの時間内に条件成立時の命令と条件非成立時の命令とを予めフェッチしてそれぞれを各演算器103,104に割り当て、演算を行わせる。一方、条件判定回路113は条件の判定を行い成立するか非成立かに応じて選択信号を出力し、選択手段105は選択信号によって演算器103,104のいずれか一方を選択し、その演算結果を外部に送出させる。
特許請求の範囲
【請求項1】 少なくとも一つ以上の命令が格納されているメモリと、複数個の演算器と、前記メモリから命令をフェッチし、命令が分岐命令の場合に分岐条件が成立するか否かを判定するまでの時間内に分岐命令の条件成立時の命令と条件非成立時の命令とを予めフェッチしてそれぞれ別個の演算器に割り当て、分岐条件成立時には選択信号を送出する制御回路と、前記制御回路からの選択信号により複数個の演算器の演算結果のいずれか一つを選択し外部へ出力する選択手段とを備えたことを特徴とする情報処理装置。
【請求項2】 n個の演算器と、分岐命令がn個の分岐先をもつ条件分岐命令の場合に分岐先のn個の命令をフェッチしn個の演算器に割り当てる制御回路と、前記n個の演算器からの出力を入力とする選択手段とを備えた請求項1に記載の情報処理装置。
【請求項3】 n個の演算器と、分岐命令がm個(m≦n)の分岐先をもつ条件分岐命令の場合に分岐先のm個の命令をフェッチしs個(s≦m)の演算器に割り当てる制御回路と、前記s個の演算器からの出力を入力とする選択手段とを備えた請求項1に記載の情報処理装置。
発明の詳細な説明
【0001】
【産業上の利用分野】本発明は、パイプライン機構をサポートしている情報処理装置に関するものである。
【0002】
【従来の技術】近年、情報処理分野における処理の高速化に伴い、多くの情報処理装置では命令実行を行う実行部を複数に分割し、並列に動作可能とすることによって、パイプライン機構をサポートしている。
【0003】以下、図面を参照しながら、上記した従来の情報処理装置の一例について説明する。図4は従来の情報処理装置の構成を示すブロック図である。図4において、メモリ501は制御回路510と接続されている。演算器503はデータ入力線502とデータ出力線504とに接続され、制御回路510とも接続されている。制御回路510は、PC生成部512(PC:プログラムカウンタ)、デコーダ511、条件判定回路513から構成されている。
【0004】以上のように構成された従来の情報処理装置について、以下、その動作を説明する。
【0005】メモリ501は、制御回路510で解釈可能な命令列をデータとして格納している。その命令はデコーダ511によって解釈される。ここで、命令が演算命令の場合と、分岐命令の場合とに分けて説明する。
【0006】まず、命令が分岐命令以外の命令であって演算命令であるとする。メモリ501から得た命令が演算命令であれば、デコーダ511はその演算命令を解釈し、PC生成部512に伝えるとともに、演算器503を起動する。演算器503は、データ入力線502から入力される演算データをもとに所定の演算を行い、演算結果をデータ出力線504に送り出す。一方、PC生成部512はメモリ501に対するアドレスを決定する。そのアドレスをもとに制御回路510はメモリ501から次の命令を得る。
【0007】ここで重要なことは、情報処理装置がパイプライン機構をサポートしているため、制御回路510は、以前の命令実行が終了していなくても、次の命令をメモリ501から読み込むことが可能であるということである。こうすることにより、命令取り込み動作、デコーダ511による命令解釈および命令実行などの一連の命令処理を並列に実行でき、資源活用効率の高い情報処理装置となすことができる。
【0008】次に、命令が分岐命令である場合を説明する。メモリ501から得た命令が分岐命令である場合、デコーダ511はその分岐命令を解釈し、条件判定回路513に知らせる。条件判定回路513はそれをもとに条件を生成し、PC生成部512に伝える。PC生成部512はその条件に従ってメモリ501に対するアドレスを生成する。そのアドレスをもとに制御回路510はメモリ501から次の命令を得る。
【0009】この場合に重要な点は、分岐命令が実行されると、分岐条件が成立するかしないかによって、実行すべき命令が変わってくるために、条件判定が決定されるまで次の命令をメモリ501から取り込む(フェッチ)動作ができないということである。つまり、演算命令の場合とは異なり、一連の命令処理を並列に実行することはできないのである。
【0010】この動作タイミングをパイプラインで表したのが図5である。以下、この図5をもとに説明する。ここでは、5段のパイプラインを実現したもので、ステージは、Fetch(フェッチ:命令取り込み),decode(デコード:命令解釈),Execute(エクスキュート:命令実行), write1, write2の各ステージに分割されているものとする。図において、IFは条件分岐命令、mulは掛け算命令、nopはno operation命令(何もしない)である。
【0011】条件分岐命令IFが発行された場合、その次の命令のアドレスが決定されるのは命令実行(Execute)ステージ以降であり、IF命令が命令実行(Execute)ステージの終了後において初めて次のmul命令の実行が開始される。その結果、IF命令とmul命令との間に2命令分のパイプ空きであるnop命令が生じることになる。
【0012】
【発明が解決しようとする課題】しかしながら、上記のような従来構成では、条件分岐命令をフェッチしてから条件分岐判断をし、条件成立か非成立かを判定するまでに時間がかかり、その間、命令パイプに無駄なスロット(空き)が存在することになる。これは、分岐によって生じたスロットであるため、ディレイスロットと呼ぶが、このようなディレイスロットが存在するために分岐までの時間が大きな無駄になっていた。
【0013】また、近年の傾向では、このような無駄を防ぐために、定められた条件のもとで分岐予測を行い、投機的な命令実行を行ってパイプラインのディレイスロットを埋めることが行われているが、それは確率的なものであるために、予測が外れた場合には先行実行した命令が無駄になるという問題があった。
【0014】このように従来の手法では、いずれにしても情報処理装置の実行効率が低いという問題が生じていた。
【0015】本発明は、このような事情に鑑みて創案されたものであって、条件判定までの時間を有効に活用し、装置内の資源を利用し、命令実行効率の高い情報処理装置を提供することを目的とする。
【0016】
【課題を解決するための手段】本発明に係る情報処理装置は、少なくとも一つ以上の命令が格納されているメモリと、複数個の演算器と、前記メモリから命令をフェッチし、命令が分岐命令の場合に分岐条件が成立するか否かを判定するまでの時間内に分岐命令の条件成立時の命令と条件非成立時の命令とを予めフェッチしてそれぞれ別個の演算器に割り当て、分岐条件成立時には選択信号を送出する制御回路と、前記制御回路からの選択信号により複数個の演算器の演算結果のいずれか一つを選択し外部へ出力する選択手段とを備えたことを特徴とするものである。
【0017】
【作用】分岐条件が成立するか否かを判定するまでの時間内に、条件成立時の命令と条件非成立時の命令との二つの命令をともにフェッチしてそれぞれを演算器に割り当てておいて、後から選択するように構成したので、条件分岐命令によって生じるディレイスロットを解消することができ、連続的な命令実行が可能となる。
【0018】
【実施例】以下、本発明の実施例に係る情報処理装置について、図面を参照しながら説明する。
【0019】第1実施例図1は本発明の第1実施例の情報処理装置の構成を示すブロック図である。図1において、101はメモリ、102はデータ入力線、103は演算器(A)、104は演算器(B)、105は選択手段、110は制御回路、111はデコーダ、112はPC生成部(PC:プログラムカウンタ)、113は条件判定回路である。制御回路110はデコーダ111とPC生成部112と条件判定回路113とから構成されている。メモリ101は制御回路110のデコーダ111と接続されている。演算器103と演算器104はそれぞれデータ入力線102と選択手段105とに接続され、また、デコーダ111にも接続されている。選択手段105は制御回路110の条件判定回路113に接続されている。デコーダ111はPC生成部112と条件判定回路113に接続され、PC生成部112はメモリ101に接続されている。
【0020】以上のように構成された情報処理装置について、以下、図1を用いて動作を説明する。
【0021】メモリ101は、制御回路110のデコーダ111において解釈可能な命令列をデータとして格納している。ここで、命令が演算命令の場合と分岐命令の場合とに分けて説明する。
【0022】■ 演算命令の場合命令が分岐命令以外であって演算命令である場合、メモリ101から取り込んだ演算命令をデコーダ111が解釈し、PC生成部112に伝えるとともに、演算器103を起動する。すると、演算器103はデータ入力線102から入力した演算データに基づいて何らかの演算を行い、演算結果を外部へ送出する。
【0023】一方、PC生成部112はメモリ101に対するアドレスを生成する。制御回路110は、そのアドレスをもとにしてメモリ101から次の命令を取り込む。
【0024】ここで、重要なことは、本実施例の情報処理装置がパイプライン機構をサポートしているので、制御回路110は以前の命令の実行が終了していなくても、次の命令をメモリ101から取り込むことが可能であるという点である。このことにより、命令取り込み動作、デコーダ111による命令解釈、命令実行などの一連の命令処理を並列に実行することができ、情報処理装置の資源を有効に活用することができる。この場合、命令の種類によっては、複数並列演算命令をサポートしているならば、その命令を実行しても何ら差し支えは生じない。すなわち、演算器103と演算器104の両方を選択し同時に動作させてもかまわない。
【0025】■ 分岐命令の場合メモリ101から取り込んだ命令が分岐命令の場合、デコーダ111はその命令を解釈し、条件判定回路113に知らせる。条件判定回路113は、それをもとにして条件を生成し、条件が成立するか否かを判定する。そして、その判定の結果、得られた選択信号を選択手段105に送出する。
【0026】一方、PC生成部112は、条件成立時のアドレスと条件非成立時のアドレスの両方をメモリ101に発行する。それらのアドレスをもとに制御回路110のデコーダ111はメモリ101から命令を取り込み、分岐条件成立時と条件非成立時のアドレスの部分から命令を予めフェッチし、それぞれを演算器103と演算器104とに割り当てる。この割り当ては、条件判定回路113が分岐条件が成立するか否かを判定している時間内に実行される。演算器103と演算器104は、それぞれの演算結果を選択手段105に出力する。選択手段105は、条件判定回路113から送られてくる選択信号に応じて、演算器103と演算器104とのいずれか一方から外部に演算結果を送出する。
【0027】ここで注目すべきことは、条件判定が行われている間に、次の命令が各演算器103,104に割り当てられ、条件判定が終了した時点で両演算器103,104のうちいずれか一つを選択するように構成されている点である。このことにより、演算命令のフェッチ、デコード、演算というフェーズを並列に処理することができるのである。
【0028】この動作タイミングをパイプラインで表したのが図2である。以下、この図2をもとに説明する。ここでは、5段のパイプラインを実現したもので、ステージは、Fetch(フェッチ:命令取り込み),decode(デコード:命令解釈),Execute(エクスキュート:命令実行), write1, write2の各ステージに分割されているものとする。図において、IFは条件分岐命令、mulは掛け算命令、addは加算命令である。
【0029】本実施例においては、条件分岐命令IFが発行された場合、その次の命令のアドレスが決定されるのは命令実行(Execute)ステージ以降であるが、条件成立時のmul命令と条件非成立時のadd命令が命令実行(Execute)ステージの終了までにおいて先行して実行されているため、条件が成立、非成立のいずれになったとしても、その条件判定結果に応じた演算結果を選択することができる。
【0030】したがって、IF命令の後に、add命令とmul命令とを並列に実行するようにパイプを詰めることができる。従来例のように2命令分のパイプ空きであるnop命令が生じることはない。
【0031】以上のように、本実施例によれば、複数の演算器103,104を設け、条件分岐命令後で条件判定後に、いずれか一つの演算器の演算結果を選択することにより、従来例でみられた条件分岐命令によって生じるディレイスロットを解消することができ、情報処理装置の資源を有効に活用して、連続的な命令実行を高速に処理していくことができるのである。
【0032】なお、一般的に述べると、n個の演算器を設け、これに対して、分岐命令がn個の分岐先をもつ条件分岐命令の場合に分岐先のn個の命令をフェッチしn個の演算器に割り当てる制御回路となし、前記n個の演算器からの出力を入力とする選択手段とを備えた情報処理装置であれば、本発明の趣旨に合致する。
【0033】第2実施例図3は本発明の第2実施例の情報処理装置の構成を示すブロック図である。図3において、301はメモリ、302はデータ入力線、3031〜303nはn個の演算器、305は選択手段、310は制御回路、311はデコーダ、312はPC生成部(PC:プログラムカウンタ)、313は条件判定回路である。制御回路310はデコーダ311とPC生成部312と条件判定回路313とから構成されている。メモリ301は制御回路310のデコーダ311と接続されている。演算器3031〜303nはそれぞれデータ入力線302と選択手段305とに接続され、また、デコーダ311にも接続されている。選択手段305は制御回路310の条件判定回路313に接続されている。デコーダ311はPC生成部312と条件判定回路313に接続され、PC生成部312はメモリ301に接続されている。
【0034】以上のように構成された情報処理装置について、以下、図3を用いて動作を説明する。
【0035】メモリ301は、制御回路310のデコーダ311において解釈可能な命令列をデータとして格納している。ここで、命令が演算命令の場合と分岐命令の場合とに分けて説明する。
【0036】■ 演算命令の場合命令が分岐命令以外であって演算命令である場合、メモリ301から取り込んだ演算命令をデコーダ311が解釈し、PC生成部312に伝えるとともに、演算器3031〜303nのうちのいずれか一つを起動する。起動された演算器はデータ入力線302から入力した演算データに基づいて何らかの演算を行い、演算結果を外部へ送出する。
【0037】一方、PC生成部312はメモリ301に対するアドレスを生成する。制御回路310は、そのアドレスをもとにしてメモリ301から次の命令を取り込む。
【0038】ここでも、重要なことは、本実施例の情報処理装置がパイプライン機構をサポートしているので、制御回路310は以前の命令の実行が終了していなくても、次の命令をメモリ301から取り込むことが可能であるという点である。このことにより、命令取り込み動作、デコーダ311による命令解釈、命令実行などの一連の命令処理を並列に実行することができ、情報処理装置の資源を有効に活用することができる。この場合、命令の種類によっては、複数並列演算命令をサポートしているならば、その命令を実行しても何ら差し支えは生じない。すなわち、n個の演算器3031〜303nの中からm個(m≦n)を選択し同時に動作させてもかまわない。
【0039】■ 分岐命令の場合メモリ301から取り込んだ命令が分岐命令の場合、デコーダ311はその命令を解釈し、条件判定回路313に知らせる。条件判定回路313は、それをもとにして条件を生成し、条件が成立するか否かを判定する。そして、その判定の結果、得られた選択信号を選択手段305に送出する。
【0040】一方、PC生成部312は、条件成立時のアドレスと条件非成立時のアドレスの両方をメモリ301に発行する。それらのアドレスをもとに制御回路310のデコーダ311はメモリ301から命令を取り込み、分岐条件成立時と条件非成立時のアドレスの部分から命令を予めフェッチし、それぞれをn個の演算器3031〜303nに割り当てる。この割り当ては、条件判定回路313が分岐条件が成立するか否かを判定している時間内に実行される。演算器3031〜303nは、それぞれの演算結果を選択手段305に出力する。選択手段305は、条件判定回路313から送られてくる選択信号に応じて、演算器3031〜303nのうちいずれか一つから外部に演算結果を送出する。
【0041】また、分岐命令によっては、分岐先が3つ以上存在する場合がある。このような多分岐命令を実行する場合でも、分岐先の命令数が演算器の個数n以内の場合であれば、分岐可能性の命令をそれぞれの演算器に割り当てることが可能である。したがって、多分岐命令の場合でも、分岐数がn以下の場合は実行可能である。
【0042】ここでも注目すべきことは、条件判定が行われている間に、次の命令が各演算器3031〜303nに割り当てられ、条件判定が終了した時点でn個の演算器3031〜303nのうちいずれか一つを選択するように構成されている点である。このことにより、分岐命令のフェーズ、デコード、条件判定というフェーズと、演算命令のフェッチ、デコード、演算というフェーズを並列に処理することができるのである。
【0043】以上のように、本実施例によれば、n個の演算器3031〜303nを設け、条件分岐命令後で条件判定後に、いずれか一つの演算器の演算結果を選択することにより、従来例でみられた条件分岐命令によって生じるディレイスロットを解消することができ、情報処理装置の資源を有効に活用して、連続的な命令実行を高速に処理していくことができるのである。
【0044】なお、一般的に述べると、n個の演算器を設け、これに対して、分岐命令がm個(m≦n)の分岐先をもつ条件分岐命令の場合に分岐先のm個の命令をフェッチしs個(s≦m)の演算器に割り当てる制御回路となし、前記s個の演算器からの出力を入力とする選択手段とを備えた情報処理装置であれば、本発明の趣旨に合致する。
【0045】
【発明の効果】以上のように本発明は、分岐命令の際の分岐条件判定時間内に複数の演算器に対して条件成立時の命令と条件非成立時の命令との二つの命令をともにフェッチしてそれぞれを演算器に割り当てておいて、後から選択するように構成したので、条件分岐命令によって生じるディレイスロットを解消することができ、連続的な命令実行を可能とした高速な情報処理装置を提供することができる。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013