(57)【要約】【課題】データの転送・処理から結果転送までの全ての動作を通しての所用時間の大幅な短縮を図る。【解決手段】マイクロコンピュータ１は、ＣＰＵ２と、コプロセッサ３と、それぞれが複数のレジスタ４ａ〜４ｎを有する複数のバンクより構成されるレジスタファイル４と、を備え、レジスタファイル４は、複数のバンクの中から１つのバンクを選択する２つのポインタ５，６と、２つのポインタのうちの一方のポインタ５により選択されたバンクが有するレジスタを前記ＣＰＵ２の専用レジスタとして指定し、２つのポインタのうちの他方のポインタ６により選択されたバンクが有するレジスタをコプロセッサ３の専用レジスタとして指定するポインタ制御部と、を備える。【選択図】  図１
2004272342.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、コプロセッサと、それぞれが複数のレジスタを有する複数のバンクより構成されるレジスタファイルと、を備え、
前記レジスタファイルは、前記複数のバンクの中から１つのバンクを選択する２つのポインタと、前記２つのポインタのうちの一方のポインタにより選択されたバンクが有するレジスタを前記ＣＰＵの専用レジスタとして指定し、前記２つのポインタのうちの他方のポインタにより選択されたバンクが有するレジスタを前記コプロセッサの専用レジスタとして指定するポインタ制御部と、を備えることを特徴とするマイクロコンピュータ。
【請求項２】
前記レジスタファイルが、前記レジスタにおける前記バンクの１つ分にそれぞれ対応するエリアを１ブロックとする複数のブロックを備えるＲＡＭにより構成されると共に、
前記ＲＡＭのブロックごとにデータの読み出しおよび書き込みを行なうための複数のブロック単位読出書込回路と、
前記複数のブロックよりなる前記ＲＡＭ全体から１つのデータのデータの読み出しおよび書き込みを行なうためのＲＡＭ全体読出書込回路と、
前記複数のブロック単位読出書込回路のそれぞれに接続されてこれらの回路の中から１つの回路を選択して前記ＣＰＵに接続すると共に選択されなかった他のブロック単位読出書込回路の中から他の１つを選択して前記コプロセッサに接続するＲＡＭブロック選択回路と、
をさらに備えることを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項３】
外部との間でデータの入出力を行なう入出力回路をさらに備え、この入出力回路により使用される前記レジスタが前記ＲＡＭ上に形成され、前記ブロック選択回路は前記ＲＡＭの各ブロックと前記ＣＰＵ、前記コプロセッサ、前記入出力回路とを前記ＲＡＭ上に設けられた前記ブロック単位読出書込回路により選択して接続することを特徴とする請求項２に記載のマイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、マイクロコンピュータに係り、特にデータの転送に用いられるマイクロコンピュータの回路構成に関するものである。
【０００２】
【従来の技術】
以前より、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）上にＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）レジスタを配置してこれをバンク化する手法が用いられていた。このＣＰＵレジスタのバンク化手法は、割り込みなどを受けてＣＰＵが例外的な処理を行なう場合に、割り込み処理前のＣＰＵレジスタの内容をＲＡＭに一旦退避させる時間や、この例外的な処理が完了したときに退避させていた内容を再度ＣＰＵレジスタに復帰させる時間を短縮させるために用いられている。
【０００３】
このようなＣＰＵレジスタにおけるバンク化手法に対して、コプロセッサ上のレジスタにおいては、例外的な処理に関連する退避が生じることがないため、バンク化の手法は用いられていない。しかしながら、コプロセッサを使用する場合には、入力データをコプロセッサに転送する時間や、コプロセッサによる演算処理の結果をＣＰＵレジスタまたはＲＡＭへと転送する時間などが、実際のコプロセッサの演算時間に比較して高い比率を有しており、これによりＣＰＵやコプロセッサの全体的な性能が制限されるという問題が生じていた。
【０００４】
すなわち、性能の高いコプロセッサを使用する場合、演算処理そのものはコプロセッサの高い性能を駆使して短時間で行なうことができるものの、演算のためにデータをコプロセッサへ転送する時間や演算結果をコプロセッサから転送する時間は演算時間に比較して非常に長くなってしまう。したがって、コプロセッサの実演算時間と転送時間との時間比率が好ましい状態になっていなかった。
【０００５】
【発明が解決しようとする課題】
上述したように、従来のマイクロコンピュータによれば、ＣＰＵレジスタに関してはバンク化を講じていたが、コプロセッサレジスタについてはバンク化を考えていなかったために、入力データのコプロセッサへの転送時間やコプロセッサからＣＰＵレジスタまたはＲＡＭへの転送時間がコプロセッサの実演算時間に比較して大幅に長くなってしまい、相対的にコプロセッサの利用効率が低下してしまうという問題があった。
【０００６】
この発明はコプロセッサレジスタについてもレジスタのバンク化またはＲＡＭのブロック化の手法を用いることにより、データの転送・処理から結果転送までの全ての動作を通しての所用時間の大幅な短縮を図ることのできるマイクロコンピュータを提供することを目的としている。
【０００７】
【課題を解決するための手段】
上記目的と達成するため、本発明の基本構成に係るマイクロコンピュータは、ＣＰＵと、コプロセッサと、それぞれが複数のレジスタを有する複数のバンクより構成されるレジスタファイルと、を備え、前記レジスタファイルは、前記複数のバンクの中から１つのバンクを選択する２つのポインタと、前記２つのポインタのうちの一方のポインタにより選択されたバンクが有するレジスタを前記ＣＰＵの専用レジスタとして指定し、前記２つのポインタのうちの他方のポインタにより選択されたバンクが有するレジスタを前記コプロセッサの専用レジスタとして指定するポインタ制御部と、を備えることを特徴とする。
【０００８】
また、上記基本構成に係るマイクロコンピュータにおいて、前記レジスタファイルが、前記レジスタにおける前記バンクの１つ分にそれぞれ対応するエリアを１ブロックとする複数のブロックを備えるＲＡＭにより構成されると共に、前記ＲＡＭのブロックごとにデータの読み出しおよび書き込みを行なうための複数のブロック単位読出書込回路と、前記複数のブロックよりなる前記ＲＡＭ全体から１つのデータのデータの読み出しおよび書き込みを行なうためのＲＡＭ全体読出書込回路と、前記複数のブロック単位読出書込回路のそれぞれに接続されてこれらの回路の中から１つの回路を選択して前記ＣＰＵに接続すると共に選択されなかった他のブロック単位読出書込回路の中から他の１つを選択して前記コプロセッサに接続するＲＡＭブロック選択回路と、をさらに備えていても良い。
【０００９】
また、上記の構成に係るマイクロコンピュータにおいて、外部との間でデータの入出力を行なう入出力回路をさらに備え、この入出力回路により使用される前記レジスタが前記ＲＡＭ上に形成され、前記ブロック選択回路は前記ＲＡＭの各ブロックと前記ＣＰＵ、前記コプロセッサ、前記入出力回路とを前記ＲＡＭ上に設けられた前記ブロック単位読出書込回路により選択して接続するように構成しても良い。
【００１０】
【発明の実施の形態】
以下、本発明に係るマイクロコンピュータの実施形態について、添付図面を参照しながら詳細に説明する。図１および図２は、この発明の第１実施形態に係るマイクロコンピュータの構成を示すブロック図および説明図である。
【００１１】
図１において、第１実施形態によるマイクロコンピュータシステム１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ  ―中央演算処理装置―）２と、コプロセッサ３と、レジスタファイル４とを備えており、レジスタファイル４は、ｎ個の汎用レジスタ４ａ、４ｂ、４ｃないし４ｎを備えている。汎用レジスタ４ａは、図中にも説明されているように、ＣＰＵのレジスタポインタが示す現在の汎用レジスタであり、汎用レジスタ４ｂは、コプロセッサのレジスタバンクポインタが示す現在の汎用レジスタである。図１に示すように、バンク構造を有する汎用レジスタ４ａ〜４ｎにおいて、レジスタファイルの中でＣＰＵ２により現在使用中の汎用レジスタ４ａ以外の汎用レジスタ、図１に示された状態では汎用レジスタ４ｂがコプロセッサ３のレジスタバンクポインタにより指定されて、コプロセッサ３用の汎用レジスタとして使用されている。
【００１２】
図２はレジスタファイル４の構成を示す概略説明図である。図２において、レジスタファイル４のバンク０ないしバンクｎは、それぞれレジスタ０ないしレジスタｎを有している。ＣＰＵ２はＣＰＵレジスタバンクポインタ５を備え、コプロセッサ３はコプロセッサレジスタバンクポインタ６を備えている。レジスタファイル４は、ＣＰＵレジスタバンクポインタ５からの選択信号によりＣＰＵ用のバンクを選択するバンク選択回路７と、コプロセッサレジスタバンクポインタ６からの選択信号によりコプロセッサ用のバンクを選択するバンク選択回路８と、を備えている。このように、レジスタファイル４は２系統のバンクポインタ６，８と、書き込み／読出し回路を備え、それぞれのバンクポインタ６および８により指定されたバンクの汎用レジスタへの書き込み／読出しが可能な構成を有している。
【００１３】
図２に示す第１実施形態に係るマイクロコンピュータにおいては、ＣＰＵ２とコプロセッサ３がそれぞれのバンクポインタ６および８によって示された現在使用することができる汎用レジスタへ書き込み／読出しを行なうことができる。コプロセッサ３が演算終了後に、ＣＰＵ２はバンクを切り換えることにより、コプロセッサ３様の汎用レジスタ４ｂとして使用していたバンクをＣＰＵ２用の汎用レジスタとして使用する。同時にコプロセッサ３はさらに別のバンクの汎用レジスタ、例えば図１の汎用レジスタ４ｃを選択して使用することができる。
【００１４】
以上の第１実施形態に係るマイクロコンピュータ１によれば、コプロセッサ使用時に演算以外に生じるデータ転送時間を極力なくすことができ、マイクロコンピュータの性能を大幅に向上させることができる。また、この第１実施形態の手法によれば、ＣＰＵ２が使用しているレジスタ上のデータを使用してコプロセッサが演算を行ない、その結果を再度ＣＰＵ２が使用する場合に、バンクポインタ５の設定によりバンクを切り換えるだけデータの引き渡しを行なうことができ、特に多数のデータを使用する場合にはＣＰＵ２とコプロセッサ３との間のデータ転送に要する時間を削減することができる。
【００１５】
第１実施形態のレジスタとしてＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を用いる具体例を図３，図４に示す第２実施形態に係るマイクロコンピュータを用いて説明する。図３，図４において、図１に示した第１実施形態の構成要素と同一または相当する要素には同一符号を付して重複説明を省略する。図３においては、入出力部９が設けられ、ＣＰＵ２、コプロセッサ３、入出力部９はデータバス１０との間でデータの送受を可能に構成されている。ＣＰＵ２、コプロセッサ３、入出力部９はＲＡＭブロック選択信号によりＲＡＭブロックを選択するブロック選択回路１１にそれぞれ接続され、ブロック選択回路１１は、ＣＰＵ２用のＲＡＭブロックを選択する個別選択部１１ａと、コプロセッサ３用のＲＡＭブロックを選択する個別選択部１１ｂと、入出力部９用のＲＡＭブロックを選択する個別選択部１１ｃとを備えている。
【００１６】
ＲＡＭ４は、デュアルポート構造を備えており、１バンク分を１ブロックとする独立した複数のブロック４ａ、４ｂ、４ｃより構成されている。ＲＡＭ４の１ポート１２は、共通のデータバス１０に接続されており、リード／ライト信号により、入力されたアドレスにしたがって複数のブロックから選択して１つのデータを選択するように構成されている。ＲＡＭ４の別の１ポート１３は、ブロックごとに独立した入出力を調整する入出力調整部１３ａ、１３ｂ、１３ｃにより、ブロックごとに独立した入出力が可能になっており、ＲＡＭセル選択信号によりそれぞれのブロックを選択してＣＰＵ２、コプロセッサ３、入出力部９にそれぞれ接続されている。ＲＡＭ４にはＲＡＭセル選択信号が供給されると共に、ブロック選択回路１１にはＲＡＭブロック選択信号が供給されている。
【００１７】
図３においては、ＲＡＭブロック選択信号がＲＡＭブロック選択回路１１に供給されているが、このＲＡＭブロック選択信号は、図４に示すように、ＲＡＭブロック選択レジスタ１５より供給されている。ＲＡＭブロック選択レジスタ１５は、ＣＰＵレジスタ、コプロセッサレジスタ、入出力レジスタをそれぞれＲＡＭ▲１▼、ＲＡＭ▲２▼、ＲＡＭ▲３▼のどのセルに割り当てるかを設定するためのレジスタである。
【００１８】
ＲＡＭブロック選択回路１１は、ＲＡＭブロック選択レジスタ１５からの設定情報にしたがい、それぞれのレジスタ選択信号をＲＡＭ▲１▼、ＲＡＭ▲２▼、ＲＡＭ▲３▼セル選択信号として振り分けている。例えば、ＲＡＭ▲１▼がＣＰＵ２に接続され、ＲＡＭ▲２▼がコプロセッサ３に接続され、ＲＡＭ▲３▼が入出力部９に接続されている状態で、入出力部９に入力されたデータを処理する場合、入出力部９に入力されたデータはＲＡＭ▲３▼に格納される。
【００１９】
その後、ＣＰＵ２はＲＡＭブロック選択レジスタの設定を変更して、ＣＰＵ２における処理の場合にはＣＰＵレジスタをＲＡＭ▲３▼のエリアに切り換える。さらに、コプロセッサ処理の場合は、コプロセッサレジスタをＲＡＭ▲３▼のブロックに指定する。
【００２０】
このように、レジスタをＲＡＭ上に配置することにより、ＲＡＭブロック選択レジスタの設定によりバンクを選択することができ、ｋの選択により転送することができるＣＰＵとコプロセッサ間のみならず、入出力部などもＲＡＭに格納されたデータをＣＰＵやコプロセッサと同様に１度に選択することができる。
【００２１】
上述した第１および第２実施形態に係るマイクロコンピュータは、それぞれ上記のような構成を備え、動作していたが、本発明の動作に着目した第３実施形態に係るマイクロコンピュータについて、図５を参照しながら説明する。
【００２２】
図５に示す第３実施形態のマイクロコンピュータの動作を説明する前に、図６を参照しながら一般的なマイクロコンピュータにおける動作について説明する。
図６に示すように、一般的なマイクロコンピュータにより制御を行なう場合、入出力部から入力されたデータをＣＰＵが読み込んで演算処理を行なった後、処理されたデータに基づいて入出力部への出力を行なうという一連の処理が実行されている。この動作が定常的なループにより実行される場合、ＣＰＵが演算を開始する前に、入出力部からＣＰＵの演算用レジスタへの転送が行なわれ、ＣＰＵは演算用レジスタに格納されたデータを演算し、その演算結果を再び演算用レジスタに戻している。
【００２３】
さらに演算にコプロセッサが必要な場合には、ＣＰＵの演算用レジスタからコプロセッサの演算用レジスタへの転送が行なわれ、コプロセッサにより処理された結果は、再びＣＰＵの演算用レジスタへと転送されるという動作が追加されている。演算終了後のデータは、演算結果が格納された演算用レジスタから入出力部出力データ設定用レジスタへ転送されるという動作が繰り返される。
【００２４】
これに対して、図５に示すように、第３実施形態に係るマイクロコンピュータの動作は、以下のように行なわれる。まず、入出力部レジスタからＣＰＵの命令を介さずに入出力部自身がレジスタバンク（Ａ）に転送を行なってレジスタバンクを切り換える。この操作によりレジスタバンク（Ａ）は、ＣＰＵの演算用レジスタとして使用することができるようになる。また、入出力部は次の入力データをレジスタバンク（Ｂ）に転送し、ＣＰＵの次回の演算の準備を行なうことができる。
【００２５】
ＣＰＵでの演算後に、さらにコプロセッサによる演算を行なう場合には、さらにレジスタバンク（Ａ）をコプロセッサ用レジスタとして切り換えを行なった後引き続いて演算を行なうようにしている。コプロセッサの演算が終了した後、レジスタバンク（Ａ）は再び入出力部用レジスタとして切り換える。入出力部は、レジスタバンク（Ａ）に設定されたデータにより出力を行なっている。コプロセッサがレジスタバンク（Ａ）を使用して演算を行なっている間にＣＰＵは入出力部用レジスタからＣＰＵ演算用レジスタに切り換えられたレジスタバンク（Ｂ）に転送されたデータを演算することが可能となる。
【００２６】
これらの動作を連続的に実行することにより、入出力部とＣＰＵとの間のデータの転送、ＣＰＵの演算、コプロセッサの演算を並列的に実行することができ、入出力部とＣＰＵとの間、ＣＰＵとコプロセッサとの間の転送時間により全体の実行時間が低下することがなくなる。以上のように、入出力部を用いてＣＰＵとコプロセッサを交互に演算させながらレジスタバンクを切り換えることにより、入出力部が入力したデータをまずＣＰＵにて演算させ、次いでコプロセッサに渡して演算させた後に入出力部が引き取って出力することにより、無駄のない動作でデータを入力、演算、出力することができ、しかもＣＰＵとコプロセッサの両方での連続的な演算をも可能にしている。
【００２７】
【発明の効果】
以上詳細に説明したように、本発明に係るマイクロコンピュータによれば、コプロセッサ使用時に演算以外に生じるデータの転送時間を極力少なくすることにより、マイクロコンピュータの性能を飛躍的に向上させることができる。
【００２８】
また、ＣＰＵが使用しているレジスタ上のデータを使用してコプロセッサが演算を行ない、その演算結果を再度ＣＰＵが使用する場合に、バンクポインタの設定によりバンクを切り換えるだけでデータの引き渡しを行なうことができる。特に多数のデータを使用する場合には、ＣＰＵとコプロセッサとの間のデータの転送に要する時間を大幅に削減することができる。
【００２９】
さらに、レジスタをＲＡＭ上に設定することにより、ＲＡＭブロック選択レジスタの設定によりバンクを選択して転送できるデータがＣＰＵとコプロセッサとの間のみならず、入出力部とＣＰＵまたはコプロセッサとの間でもバンク切り換えにより可能となり、データの引き渡しとＣＰＵおよびコプロセッサの演算とを円滑に切り換えることができる。
【図面の簡単な説明】
【図１】本発明の第１実施形態に係るマイクロコンピュータの基本構成を示すブロック構成図である。
【図２】第１実施形態によるマイクロコンピュータにおけるレジスタの構成を示す概略説明図である。
【図３】本発明の第２実施形態に係るマイクロコンピュータの構成を示すブロック図である。
【図４】第２実施形態のマイクロコンピュータのレジスタ選択動作を説明するためのブロック図である。
【図５】本発明の第３実施形態に係るマイクロコンピュータの動作を説明するためのバンクの切り換え動作図である。
【図６】一般的なＣＰＵ、コプロセッサ、入出力部の切り換え動作を示す切り換え動作図である。
【符号の説明】
１  マイクロコンピュータ
２  ＣＰＵ
３  コプロセッサ
４  レジスタファイル
４ａ  汎用レジスタ（ＣＰＵレジスタバンクポインタの現在レジスタ）
４ｂ  汎用レジスタ（コプロセッサレジスタバンクポインタの現在レジスタ）
５  ＣＰＵレジスタバンクポインタ
６  コプロセッサレジスタバンクポインタ
９  入出力部
１１  ＲＡＭブロック選択回路
１５  ＲＡＭブロック選択レジスタ
【図１】
2004272342.tif 000003
【図２】
2004272342.tif 000004
【図３】
2004272342.tif 000005
【図４】
2004272342.tif 000006
【図５】
2004272342.tif 000007
【図６】
2004272342.tif 000008