JP2004272342A - マイクロコンピュータ - Google Patents
マイクロコンピュータ Download PDFInfo
- Publication number
- JP2004272342A JP2004272342A JP2003058414A JP2003058414A JP2004272342A JP 2004272342 A JP2004272342 A JP 2004272342A JP 2003058414 A JP2003058414 A JP 2003058414A JP 2003058414 A JP2003058414 A JP 2003058414A JP 2004272342 A JP2004272342 A JP 2004272342A
- Authority
- JP
- Japan
- Prior art keywords
- register
- coprocessor
- cpu
- ram
- block
- 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
Links
Images
Landscapes
- Microcomputers (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
【課題】データの転送・処理から結果転送までの全ての動作を通しての所用時間の大幅な短縮を図る。
【解決手段】マイクロコンピュータ1は、CPU2と、コプロセッサ3と、それぞれが複数のレジスタ4a〜4nを有する複数のバンクより構成されるレジスタファイル4と、を備え、レジスタファイル4は、複数のバンクの中から1つのバンクを選択する2つのポインタ5,6と、2つのポインタのうちの一方のポインタ5により選択されたバンクが有するレジスタを前記CPU2の専用レジスタとして指定し、2つのポインタのうちの他方のポインタ6により選択されたバンクが有するレジスタをコプロセッサ3の専用レジスタとして指定するポインタ制御部と、を備える。
【選択図】 図1
【解決手段】マイクロコンピュータ1は、CPU2と、コプロセッサ3と、それぞれが複数のレジスタ4a〜4nを有する複数のバンクより構成されるレジスタファイル4と、を備え、レジスタファイル4は、複数のバンクの中から1つのバンクを選択する2つのポインタ5,6と、2つのポインタのうちの一方のポインタ5により選択されたバンクが有するレジスタを前記CPU2の専用レジスタとして指定し、2つのポインタのうちの他方のポインタ6により選択されたバンクが有するレジスタをコプロセッサ3の専用レジスタとして指定するポインタ制御部と、を備える。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
この発明は、マイクロコンピュータに係り、特にデータの転送に用いられるマイクロコンピュータの回路構成に関するものである。
【0002】
【従来の技術】
以前より、RAM(Random Access Memory)上にCPU(Central Processing Unit)レジスタを配置してこれをバンク化する手法が用いられていた。このCPUレジスタのバンク化手法は、割り込みなどを受けてCPUが例外的な処理を行なう場合に、割り込み処理前のCPUレジスタの内容をRAMに一旦退避させる時間や、この例外的な処理が完了したときに退避させていた内容を再度CPUレジスタに復帰させる時間を短縮させるために用いられている。
【0003】
このようなCPUレジスタにおけるバンク化手法に対して、コプロセッサ上のレジスタにおいては、例外的な処理に関連する退避が生じることがないため、バンク化の手法は用いられていない。しかしながら、コプロセッサを使用する場合には、入力データをコプロセッサに転送する時間や、コプロセッサによる演算処理の結果をCPUレジスタまたはRAMへと転送する時間などが、実際のコプロセッサの演算時間に比較して高い比率を有しており、これによりCPUやコプロセッサの全体的な性能が制限されるという問題が生じていた。
【0004】
すなわち、性能の高いコプロセッサを使用する場合、演算処理そのものはコプロセッサの高い性能を駆使して短時間で行なうことができるものの、演算のためにデータをコプロセッサへ転送する時間や演算結果をコプロセッサから転送する時間は演算時間に比較して非常に長くなってしまう。したがって、コプロセッサの実演算時間と転送時間との時間比率が好ましい状態になっていなかった。
【0005】
【発明が解決しようとする課題】
上述したように、従来のマイクロコンピュータによれば、CPUレジスタに関してはバンク化を講じていたが、コプロセッサレジスタについてはバンク化を考えていなかったために、入力データのコプロセッサへの転送時間やコプロセッサからCPUレジスタまたはRAMへの転送時間がコプロセッサの実演算時間に比較して大幅に長くなってしまい、相対的にコプロセッサの利用効率が低下してしまうという問題があった。
【0006】
この発明はコプロセッサレジスタについてもレジスタのバンク化またはRAMのブロック化の手法を用いることにより、データの転送・処理から結果転送までの全ての動作を通しての所用時間の大幅な短縮を図ることのできるマイクロコンピュータを提供することを目的としている。
【0007】
【課題を解決するための手段】
上記目的と達成するため、本発明の基本構成に係るマイクロコンピュータは、CPUと、コプロセッサと、それぞれが複数のレジスタを有する複数のバンクより構成されるレジスタファイルと、を備え、前記レジスタファイルは、前記複数のバンクの中から1つのバンクを選択する2つのポインタと、前記2つのポインタのうちの一方のポインタにより選択されたバンクが有するレジスタを前記CPUの専用レジスタとして指定し、前記2つのポインタのうちの他方のポインタにより選択されたバンクが有するレジスタを前記コプロセッサの専用レジスタとして指定するポインタ制御部と、を備えることを特徴とする。
【0008】
また、上記基本構成に係るマイクロコンピュータにおいて、前記レジスタファイルが、前記レジスタにおける前記バンクの1つ分にそれぞれ対応するエリアを1ブロックとする複数のブロックを備えるRAMにより構成されると共に、前記RAMのブロックごとにデータの読み出しおよび書き込みを行なうための複数のブロック単位読出書込回路と、前記複数のブロックよりなる前記RAM全体から1つのデータのデータの読み出しおよび書き込みを行なうためのRAM全体読出書込回路と、前記複数のブロック単位読出書込回路のそれぞれに接続されてこれらの回路の中から1つの回路を選択して前記CPUに接続すると共に選択されなかった他のブロック単位読出書込回路の中から他の1つを選択して前記コプロセッサに接続するRAMブロック選択回路と、をさらに備えていても良い。
【0009】
また、上記の構成に係るマイクロコンピュータにおいて、外部との間でデータの入出力を行なう入出力回路をさらに備え、この入出力回路により使用される前記レジスタが前記RAM上に形成され、前記ブロック選択回路は前記RAMの各ブロックと前記CPU、前記コプロセッサ、前記入出力回路とを前記RAM上に設けられた前記ブロック単位読出書込回路により選択して接続するように構成しても良い。
【0010】
【発明の実施の形態】
以下、本発明に係るマイクロコンピュータの実施形態について、添付図面を参照しながら詳細に説明する。図1および図2は、この発明の第1実施形態に係るマイクロコンピュータの構成を示すブロック図および説明図である。
【0011】
図1において、第1実施形態によるマイクロコンピュータシステム1は、CPU(Central Processing Unit ―中央演算処理装置―)2と、コプロセッサ3と、レジスタファイル4とを備えており、レジスタファイル4は、n個の汎用レジスタ4a、4b、4cないし4nを備えている。汎用レジスタ4aは、図中にも説明されているように、CPUのレジスタポインタが示す現在の汎用レジスタであり、汎用レジスタ4bは、コプロセッサのレジスタバンクポインタが示す現在の汎用レジスタである。図1に示すように、バンク構造を有する汎用レジスタ4a〜4nにおいて、レジスタファイルの中でCPU2により現在使用中の汎用レジスタ4a以外の汎用レジスタ、図1に示された状態では汎用レジスタ4bがコプロセッサ3のレジスタバンクポインタにより指定されて、コプロセッサ3用の汎用レジスタとして使用されている。
【0012】
図2はレジスタファイル4の構成を示す概略説明図である。図2において、レジスタファイル4のバンク0ないしバンクnは、それぞれレジスタ0ないしレジスタnを有している。CPU2はCPUレジスタバンクポインタ5を備え、コプロセッサ3はコプロセッサレジスタバンクポインタ6を備えている。レジスタファイル4は、CPUレジスタバンクポインタ5からの選択信号によりCPU用のバンクを選択するバンク選択回路7と、コプロセッサレジスタバンクポインタ6からの選択信号によりコプロセッサ用のバンクを選択するバンク選択回路8と、を備えている。このように、レジスタファイル4は2系統のバンクポインタ6,8と、書き込み/読出し回路を備え、それぞれのバンクポインタ6および8により指定されたバンクの汎用レジスタへの書き込み/読出しが可能な構成を有している。
【0013】
図2に示す第1実施形態に係るマイクロコンピュータにおいては、CPU2とコプロセッサ3がそれぞれのバンクポインタ6および8によって示された現在使用することができる汎用レジスタへ書き込み/読出しを行なうことができる。コプロセッサ3が演算終了後に、CPU2はバンクを切り換えることにより、コプロセッサ3様の汎用レジスタ4bとして使用していたバンクをCPU2用の汎用レジスタとして使用する。同時にコプロセッサ3はさらに別のバンクの汎用レジスタ、例えば図1の汎用レジスタ4cを選択して使用することができる。
【0014】
以上の第1実施形態に係るマイクロコンピュータ1によれば、コプロセッサ使用時に演算以外に生じるデータ転送時間を極力なくすことができ、マイクロコンピュータの性能を大幅に向上させることができる。また、この第1実施形態の手法によれば、CPU2が使用しているレジスタ上のデータを使用してコプロセッサが演算を行ない、その結果を再度CPU2が使用する場合に、バンクポインタ5の設定によりバンクを切り換えるだけデータの引き渡しを行なうことができ、特に多数のデータを使用する場合にはCPU2とコプロセッサ3との間のデータ転送に要する時間を削減することができる。
【0015】
第1実施形態のレジスタとしてRAM(Random Access Memory)を用いる具体例を図3,図4に示す第2実施形態に係るマイクロコンピュータを用いて説明する。図3,図4において、図1に示した第1実施形態の構成要素と同一または相当する要素には同一符号を付して重複説明を省略する。図3においては、入出力部9が設けられ、CPU2、コプロセッサ3、入出力部9はデータバス10との間でデータの送受を可能に構成されている。CPU2、コプロセッサ3、入出力部9はRAMブロック選択信号によりRAMブロックを選択するブロック選択回路11にそれぞれ接続され、ブロック選択回路11は、CPU2用のRAMブロックを選択する個別選択部11aと、コプロセッサ3用のRAMブロックを選択する個別選択部11bと、入出力部9用のRAMブロックを選択する個別選択部11cとを備えている。
【0016】
RAM4は、デュアルポート構造を備えており、1バンク分を1ブロックとする独立した複数のブロック4a、4b、4cより構成されている。RAM4の1ポート12は、共通のデータバス10に接続されており、リード/ライト信号により、入力されたアドレスにしたがって複数のブロックから選択して1つのデータを選択するように構成されている。RAM4の別の1ポート13は、ブロックごとに独立した入出力を調整する入出力調整部13a、13b、13cにより、ブロックごとに独立した入出力が可能になっており、RAMセル選択信号によりそれぞれのブロックを選択してCPU2、コプロセッサ3、入出力部9にそれぞれ接続されている。RAM4にはRAMセル選択信号が供給されると共に、ブロック選択回路11にはRAMブロック選択信号が供給されている。
【0017】
図3においては、RAMブロック選択信号がRAMブロック選択回路11に供給されているが、このRAMブロック選択信号は、図4に示すように、RAMブロック選択レジスタ15より供給されている。RAMブロック選択レジスタ15は、CPUレジスタ、コプロセッサレジスタ、入出力レジスタをそれぞれRAM▲1▼、RAM▲2▼、RAM▲3▼のどのセルに割り当てるかを設定するためのレジスタである。
【0018】
RAMブロック選択回路11は、RAMブロック選択レジスタ15からの設定情報にしたがい、それぞれのレジスタ選択信号をRAM▲1▼、RAM▲2▼、RAM▲3▼セル選択信号として振り分けている。例えば、RAM▲1▼がCPU2に接続され、RAM▲2▼がコプロセッサ3に接続され、RAM▲3▼が入出力部9に接続されている状態で、入出力部9に入力されたデータを処理する場合、入出力部9に入力されたデータはRAM▲3▼に格納される。
【0019】
その後、CPU2はRAMブロック選択レジスタの設定を変更して、CPU2における処理の場合にはCPUレジスタをRAM▲3▼のエリアに切り換える。さらに、コプロセッサ処理の場合は、コプロセッサレジスタをRAM▲3▼のブロックに指定する。
【0020】
このように、レジスタをRAM上に配置することにより、RAMブロック選択レジスタの設定によりバンクを選択することができ、kの選択により転送することができるCPUとコプロセッサ間のみならず、入出力部などもRAMに格納されたデータをCPUやコプロセッサと同様に1度に選択することができる。
【0021】
上述した第1および第2実施形態に係るマイクロコンピュータは、それぞれ上記のような構成を備え、動作していたが、本発明の動作に着目した第3実施形態に係るマイクロコンピュータについて、図5を参照しながら説明する。
【0022】
図5に示す第3実施形態のマイクロコンピュータの動作を説明する前に、図6を参照しながら一般的なマイクロコンピュータにおける動作について説明する。
図6に示すように、一般的なマイクロコンピュータにより制御を行なう場合、入出力部から入力されたデータをCPUが読み込んで演算処理を行なった後、処理されたデータに基づいて入出力部への出力を行なうという一連の処理が実行されている。この動作が定常的なループにより実行される場合、CPUが演算を開始する前に、入出力部からCPUの演算用レジスタへの転送が行なわれ、CPUは演算用レジスタに格納されたデータを演算し、その演算結果を再び演算用レジスタに戻している。
【0023】
さらに演算にコプロセッサが必要な場合には、CPUの演算用レジスタからコプロセッサの演算用レジスタへの転送が行なわれ、コプロセッサにより処理された結果は、再びCPUの演算用レジスタへと転送されるという動作が追加されている。演算終了後のデータは、演算結果が格納された演算用レジスタから入出力部出力データ設定用レジスタへ転送されるという動作が繰り返される。
【0024】
これに対して、図5に示すように、第3実施形態に係るマイクロコンピュータの動作は、以下のように行なわれる。まず、入出力部レジスタからCPUの命令を介さずに入出力部自身がレジスタバンク(A)に転送を行なってレジスタバンクを切り換える。この操作によりレジスタバンク(A)は、CPUの演算用レジスタとして使用することができるようになる。また、入出力部は次の入力データをレジスタバンク(B)に転送し、CPUの次回の演算の準備を行なうことができる。
【0025】
CPUでの演算後に、さらにコプロセッサによる演算を行なう場合には、さらにレジスタバンク(A)をコプロセッサ用レジスタとして切り換えを行なった後引き続いて演算を行なうようにしている。コプロセッサの演算が終了した後、レジスタバンク(A)は再び入出力部用レジスタとして切り換える。入出力部は、レジスタバンク(A)に設定されたデータにより出力を行なっている。コプロセッサがレジスタバンク(A)を使用して演算を行なっている間にCPUは入出力部用レジスタからCPU演算用レジスタに切り換えられたレジスタバンク(B)に転送されたデータを演算することが可能となる。
【0026】
これらの動作を連続的に実行することにより、入出力部とCPUとの間のデータの転送、CPUの演算、コプロセッサの演算を並列的に実行することができ、入出力部とCPUとの間、CPUとコプロセッサとの間の転送時間により全体の実行時間が低下することがなくなる。以上のように、入出力部を用いてCPUとコプロセッサを交互に演算させながらレジスタバンクを切り換えることにより、入出力部が入力したデータをまずCPUにて演算させ、次いでコプロセッサに渡して演算させた後に入出力部が引き取って出力することにより、無駄のない動作でデータを入力、演算、出力することができ、しかもCPUとコプロセッサの両方での連続的な演算をも可能にしている。
【0027】
【発明の効果】
以上詳細に説明したように、本発明に係るマイクロコンピュータによれば、コプロセッサ使用時に演算以外に生じるデータの転送時間を極力少なくすることにより、マイクロコンピュータの性能を飛躍的に向上させることができる。
【0028】
また、CPUが使用しているレジスタ上のデータを使用してコプロセッサが演算を行ない、その演算結果を再度CPUが使用する場合に、バンクポインタの設定によりバンクを切り換えるだけでデータの引き渡しを行なうことができる。特に多数のデータを使用する場合には、CPUとコプロセッサとの間のデータの転送に要する時間を大幅に削減することができる。
【0029】
さらに、レジスタをRAM上に設定することにより、RAMブロック選択レジスタの設定によりバンクを選択して転送できるデータがCPUとコプロセッサとの間のみならず、入出力部とCPUまたはコプロセッサとの間でもバンク切り換えにより可能となり、データの引き渡しとCPUおよびコプロセッサの演算とを円滑に切り換えることができる。
【図面の簡単な説明】
【図1】本発明の第1実施形態に係るマイクロコンピュータの基本構成を示すブロック構成図である。
【図2】第1実施形態によるマイクロコンピュータにおけるレジスタの構成を示す概略説明図である。
【図3】本発明の第2実施形態に係るマイクロコンピュータの構成を示すブロック図である。
【図4】第2実施形態のマイクロコンピュータのレジスタ選択動作を説明するためのブロック図である。
【図5】本発明の第3実施形態に係るマイクロコンピュータの動作を説明するためのバンクの切り換え動作図である。
【図6】一般的なCPU、コプロセッサ、入出力部の切り換え動作を示す切り換え動作図である。
【符号の説明】
1 マイクロコンピュータ
2 CPU
3 コプロセッサ
4 レジスタファイル
4a 汎用レジスタ(CPUレジスタバンクポインタの現在レジスタ)
4b 汎用レジスタ(コプロセッサレジスタバンクポインタの現在レジスタ)
5 CPUレジスタバンクポインタ
6 コプロセッサレジスタバンクポインタ
9 入出力部
11 RAMブロック選択回路
15 RAMブロック選択レジスタ
【発明の属する技術分野】
この発明は、マイクロコンピュータに係り、特にデータの転送に用いられるマイクロコンピュータの回路構成に関するものである。
【0002】
【従来の技術】
以前より、RAM(Random Access Memory)上にCPU(Central Processing Unit)レジスタを配置してこれをバンク化する手法が用いられていた。このCPUレジスタのバンク化手法は、割り込みなどを受けてCPUが例外的な処理を行なう場合に、割り込み処理前のCPUレジスタの内容をRAMに一旦退避させる時間や、この例外的な処理が完了したときに退避させていた内容を再度CPUレジスタに復帰させる時間を短縮させるために用いられている。
【0003】
このようなCPUレジスタにおけるバンク化手法に対して、コプロセッサ上のレジスタにおいては、例外的な処理に関連する退避が生じることがないため、バンク化の手法は用いられていない。しかしながら、コプロセッサを使用する場合には、入力データをコプロセッサに転送する時間や、コプロセッサによる演算処理の結果をCPUレジスタまたはRAMへと転送する時間などが、実際のコプロセッサの演算時間に比較して高い比率を有しており、これによりCPUやコプロセッサの全体的な性能が制限されるという問題が生じていた。
【0004】
すなわち、性能の高いコプロセッサを使用する場合、演算処理そのものはコプロセッサの高い性能を駆使して短時間で行なうことができるものの、演算のためにデータをコプロセッサへ転送する時間や演算結果をコプロセッサから転送する時間は演算時間に比較して非常に長くなってしまう。したがって、コプロセッサの実演算時間と転送時間との時間比率が好ましい状態になっていなかった。
【0005】
【発明が解決しようとする課題】
上述したように、従来のマイクロコンピュータによれば、CPUレジスタに関してはバンク化を講じていたが、コプロセッサレジスタについてはバンク化を考えていなかったために、入力データのコプロセッサへの転送時間やコプロセッサからCPUレジスタまたはRAMへの転送時間がコプロセッサの実演算時間に比較して大幅に長くなってしまい、相対的にコプロセッサの利用効率が低下してしまうという問題があった。
【0006】
この発明はコプロセッサレジスタについてもレジスタのバンク化またはRAMのブロック化の手法を用いることにより、データの転送・処理から結果転送までの全ての動作を通しての所用時間の大幅な短縮を図ることのできるマイクロコンピュータを提供することを目的としている。
【0007】
【課題を解決するための手段】
上記目的と達成するため、本発明の基本構成に係るマイクロコンピュータは、CPUと、コプロセッサと、それぞれが複数のレジスタを有する複数のバンクより構成されるレジスタファイルと、を備え、前記レジスタファイルは、前記複数のバンクの中から1つのバンクを選択する2つのポインタと、前記2つのポインタのうちの一方のポインタにより選択されたバンクが有するレジスタを前記CPUの専用レジスタとして指定し、前記2つのポインタのうちの他方のポインタにより選択されたバンクが有するレジスタを前記コプロセッサの専用レジスタとして指定するポインタ制御部と、を備えることを特徴とする。
【0008】
また、上記基本構成に係るマイクロコンピュータにおいて、前記レジスタファイルが、前記レジスタにおける前記バンクの1つ分にそれぞれ対応するエリアを1ブロックとする複数のブロックを備えるRAMにより構成されると共に、前記RAMのブロックごとにデータの読み出しおよび書き込みを行なうための複数のブロック単位読出書込回路と、前記複数のブロックよりなる前記RAM全体から1つのデータのデータの読み出しおよび書き込みを行なうためのRAM全体読出書込回路と、前記複数のブロック単位読出書込回路のそれぞれに接続されてこれらの回路の中から1つの回路を選択して前記CPUに接続すると共に選択されなかった他のブロック単位読出書込回路の中から他の1つを選択して前記コプロセッサに接続するRAMブロック選択回路と、をさらに備えていても良い。
【0009】
また、上記の構成に係るマイクロコンピュータにおいて、外部との間でデータの入出力を行なう入出力回路をさらに備え、この入出力回路により使用される前記レジスタが前記RAM上に形成され、前記ブロック選択回路は前記RAMの各ブロックと前記CPU、前記コプロセッサ、前記入出力回路とを前記RAM上に設けられた前記ブロック単位読出書込回路により選択して接続するように構成しても良い。
【0010】
【発明の実施の形態】
以下、本発明に係るマイクロコンピュータの実施形態について、添付図面を参照しながら詳細に説明する。図1および図2は、この発明の第1実施形態に係るマイクロコンピュータの構成を示すブロック図および説明図である。
【0011】
図1において、第1実施形態によるマイクロコンピュータシステム1は、CPU(Central Processing Unit ―中央演算処理装置―)2と、コプロセッサ3と、レジスタファイル4とを備えており、レジスタファイル4は、n個の汎用レジスタ4a、4b、4cないし4nを備えている。汎用レジスタ4aは、図中にも説明されているように、CPUのレジスタポインタが示す現在の汎用レジスタであり、汎用レジスタ4bは、コプロセッサのレジスタバンクポインタが示す現在の汎用レジスタである。図1に示すように、バンク構造を有する汎用レジスタ4a〜4nにおいて、レジスタファイルの中でCPU2により現在使用中の汎用レジスタ4a以外の汎用レジスタ、図1に示された状態では汎用レジスタ4bがコプロセッサ3のレジスタバンクポインタにより指定されて、コプロセッサ3用の汎用レジスタとして使用されている。
【0012】
図2はレジスタファイル4の構成を示す概略説明図である。図2において、レジスタファイル4のバンク0ないしバンクnは、それぞれレジスタ0ないしレジスタnを有している。CPU2はCPUレジスタバンクポインタ5を備え、コプロセッサ3はコプロセッサレジスタバンクポインタ6を備えている。レジスタファイル4は、CPUレジスタバンクポインタ5からの選択信号によりCPU用のバンクを選択するバンク選択回路7と、コプロセッサレジスタバンクポインタ6からの選択信号によりコプロセッサ用のバンクを選択するバンク選択回路8と、を備えている。このように、レジスタファイル4は2系統のバンクポインタ6,8と、書き込み/読出し回路を備え、それぞれのバンクポインタ6および8により指定されたバンクの汎用レジスタへの書き込み/読出しが可能な構成を有している。
【0013】
図2に示す第1実施形態に係るマイクロコンピュータにおいては、CPU2とコプロセッサ3がそれぞれのバンクポインタ6および8によって示された現在使用することができる汎用レジスタへ書き込み/読出しを行なうことができる。コプロセッサ3が演算終了後に、CPU2はバンクを切り換えることにより、コプロセッサ3様の汎用レジスタ4bとして使用していたバンクをCPU2用の汎用レジスタとして使用する。同時にコプロセッサ3はさらに別のバンクの汎用レジスタ、例えば図1の汎用レジスタ4cを選択して使用することができる。
【0014】
以上の第1実施形態に係るマイクロコンピュータ1によれば、コプロセッサ使用時に演算以外に生じるデータ転送時間を極力なくすことができ、マイクロコンピュータの性能を大幅に向上させることができる。また、この第1実施形態の手法によれば、CPU2が使用しているレジスタ上のデータを使用してコプロセッサが演算を行ない、その結果を再度CPU2が使用する場合に、バンクポインタ5の設定によりバンクを切り換えるだけデータの引き渡しを行なうことができ、特に多数のデータを使用する場合にはCPU2とコプロセッサ3との間のデータ転送に要する時間を削減することができる。
【0015】
第1実施形態のレジスタとしてRAM(Random Access Memory)を用いる具体例を図3,図4に示す第2実施形態に係るマイクロコンピュータを用いて説明する。図3,図4において、図1に示した第1実施形態の構成要素と同一または相当する要素には同一符号を付して重複説明を省略する。図3においては、入出力部9が設けられ、CPU2、コプロセッサ3、入出力部9はデータバス10との間でデータの送受を可能に構成されている。CPU2、コプロセッサ3、入出力部9はRAMブロック選択信号によりRAMブロックを選択するブロック選択回路11にそれぞれ接続され、ブロック選択回路11は、CPU2用のRAMブロックを選択する個別選択部11aと、コプロセッサ3用のRAMブロックを選択する個別選択部11bと、入出力部9用のRAMブロックを選択する個別選択部11cとを備えている。
【0016】
RAM4は、デュアルポート構造を備えており、1バンク分を1ブロックとする独立した複数のブロック4a、4b、4cより構成されている。RAM4の1ポート12は、共通のデータバス10に接続されており、リード/ライト信号により、入力されたアドレスにしたがって複数のブロックから選択して1つのデータを選択するように構成されている。RAM4の別の1ポート13は、ブロックごとに独立した入出力を調整する入出力調整部13a、13b、13cにより、ブロックごとに独立した入出力が可能になっており、RAMセル選択信号によりそれぞれのブロックを選択してCPU2、コプロセッサ3、入出力部9にそれぞれ接続されている。RAM4にはRAMセル選択信号が供給されると共に、ブロック選択回路11にはRAMブロック選択信号が供給されている。
【0017】
図3においては、RAMブロック選択信号がRAMブロック選択回路11に供給されているが、このRAMブロック選択信号は、図4に示すように、RAMブロック選択レジスタ15より供給されている。RAMブロック選択レジスタ15は、CPUレジスタ、コプロセッサレジスタ、入出力レジスタをそれぞれRAM▲1▼、RAM▲2▼、RAM▲3▼のどのセルに割り当てるかを設定するためのレジスタである。
【0018】
RAMブロック選択回路11は、RAMブロック選択レジスタ15からの設定情報にしたがい、それぞれのレジスタ選択信号をRAM▲1▼、RAM▲2▼、RAM▲3▼セル選択信号として振り分けている。例えば、RAM▲1▼がCPU2に接続され、RAM▲2▼がコプロセッサ3に接続され、RAM▲3▼が入出力部9に接続されている状態で、入出力部9に入力されたデータを処理する場合、入出力部9に入力されたデータはRAM▲3▼に格納される。
【0019】
その後、CPU2はRAMブロック選択レジスタの設定を変更して、CPU2における処理の場合にはCPUレジスタをRAM▲3▼のエリアに切り換える。さらに、コプロセッサ処理の場合は、コプロセッサレジスタをRAM▲3▼のブロックに指定する。
【0020】
このように、レジスタをRAM上に配置することにより、RAMブロック選択レジスタの設定によりバンクを選択することができ、kの選択により転送することができるCPUとコプロセッサ間のみならず、入出力部などもRAMに格納されたデータをCPUやコプロセッサと同様に1度に選択することができる。
【0021】
上述した第1および第2実施形態に係るマイクロコンピュータは、それぞれ上記のような構成を備え、動作していたが、本発明の動作に着目した第3実施形態に係るマイクロコンピュータについて、図5を参照しながら説明する。
【0022】
図5に示す第3実施形態のマイクロコンピュータの動作を説明する前に、図6を参照しながら一般的なマイクロコンピュータにおける動作について説明する。
図6に示すように、一般的なマイクロコンピュータにより制御を行なう場合、入出力部から入力されたデータをCPUが読み込んで演算処理を行なった後、処理されたデータに基づいて入出力部への出力を行なうという一連の処理が実行されている。この動作が定常的なループにより実行される場合、CPUが演算を開始する前に、入出力部からCPUの演算用レジスタへの転送が行なわれ、CPUは演算用レジスタに格納されたデータを演算し、その演算結果を再び演算用レジスタに戻している。
【0023】
さらに演算にコプロセッサが必要な場合には、CPUの演算用レジスタからコプロセッサの演算用レジスタへの転送が行なわれ、コプロセッサにより処理された結果は、再びCPUの演算用レジスタへと転送されるという動作が追加されている。演算終了後のデータは、演算結果が格納された演算用レジスタから入出力部出力データ設定用レジスタへ転送されるという動作が繰り返される。
【0024】
これに対して、図5に示すように、第3実施形態に係るマイクロコンピュータの動作は、以下のように行なわれる。まず、入出力部レジスタからCPUの命令を介さずに入出力部自身がレジスタバンク(A)に転送を行なってレジスタバンクを切り換える。この操作によりレジスタバンク(A)は、CPUの演算用レジスタとして使用することができるようになる。また、入出力部は次の入力データをレジスタバンク(B)に転送し、CPUの次回の演算の準備を行なうことができる。
【0025】
CPUでの演算後に、さらにコプロセッサによる演算を行なう場合には、さらにレジスタバンク(A)をコプロセッサ用レジスタとして切り換えを行なった後引き続いて演算を行なうようにしている。コプロセッサの演算が終了した後、レジスタバンク(A)は再び入出力部用レジスタとして切り換える。入出力部は、レジスタバンク(A)に設定されたデータにより出力を行なっている。コプロセッサがレジスタバンク(A)を使用して演算を行なっている間にCPUは入出力部用レジスタからCPU演算用レジスタに切り換えられたレジスタバンク(B)に転送されたデータを演算することが可能となる。
【0026】
これらの動作を連続的に実行することにより、入出力部とCPUとの間のデータの転送、CPUの演算、コプロセッサの演算を並列的に実行することができ、入出力部とCPUとの間、CPUとコプロセッサとの間の転送時間により全体の実行時間が低下することがなくなる。以上のように、入出力部を用いてCPUとコプロセッサを交互に演算させながらレジスタバンクを切り換えることにより、入出力部が入力したデータをまずCPUにて演算させ、次いでコプロセッサに渡して演算させた後に入出力部が引き取って出力することにより、無駄のない動作でデータを入力、演算、出力することができ、しかもCPUとコプロセッサの両方での連続的な演算をも可能にしている。
【0027】
【発明の効果】
以上詳細に説明したように、本発明に係るマイクロコンピュータによれば、コプロセッサ使用時に演算以外に生じるデータの転送時間を極力少なくすることにより、マイクロコンピュータの性能を飛躍的に向上させることができる。
【0028】
また、CPUが使用しているレジスタ上のデータを使用してコプロセッサが演算を行ない、その演算結果を再度CPUが使用する場合に、バンクポインタの設定によりバンクを切り換えるだけでデータの引き渡しを行なうことができる。特に多数のデータを使用する場合には、CPUとコプロセッサとの間のデータの転送に要する時間を大幅に削減することができる。
【0029】
さらに、レジスタをRAM上に設定することにより、RAMブロック選択レジスタの設定によりバンクを選択して転送できるデータがCPUとコプロセッサとの間のみならず、入出力部とCPUまたはコプロセッサとの間でもバンク切り換えにより可能となり、データの引き渡しとCPUおよびコプロセッサの演算とを円滑に切り換えることができる。
【図面の簡単な説明】
【図1】本発明の第1実施形態に係るマイクロコンピュータの基本構成を示すブロック構成図である。
【図2】第1実施形態によるマイクロコンピュータにおけるレジスタの構成を示す概略説明図である。
【図3】本発明の第2実施形態に係るマイクロコンピュータの構成を示すブロック図である。
【図4】第2実施形態のマイクロコンピュータのレジスタ選択動作を説明するためのブロック図である。
【図5】本発明の第3実施形態に係るマイクロコンピュータの動作を説明するためのバンクの切り換え動作図である。
【図6】一般的なCPU、コプロセッサ、入出力部の切り換え動作を示す切り換え動作図である。
【符号の説明】
1 マイクロコンピュータ
2 CPU
3 コプロセッサ
4 レジスタファイル
4a 汎用レジスタ(CPUレジスタバンクポインタの現在レジスタ)
4b 汎用レジスタ(コプロセッサレジスタバンクポインタの現在レジスタ)
5 CPUレジスタバンクポインタ
6 コプロセッサレジスタバンクポインタ
9 入出力部
11 RAMブロック選択回路
15 RAMブロック選択レジスタ
Claims (3)
- CPUと、コプロセッサと、それぞれが複数のレジスタを有する複数のバンクより構成されるレジスタファイルと、を備え、
前記レジスタファイルは、前記複数のバンクの中から1つのバンクを選択する2つのポインタと、前記2つのポインタのうちの一方のポインタにより選択されたバンクが有するレジスタを前記CPUの専用レジスタとして指定し、前記2つのポインタのうちの他方のポインタにより選択されたバンクが有するレジスタを前記コプロセッサの専用レジスタとして指定するポインタ制御部と、を備えることを特徴とするマイクロコンピュータ。 - 前記レジスタファイルが、前記レジスタにおける前記バンクの1つ分にそれぞれ対応するエリアを1ブロックとする複数のブロックを備えるRAMにより構成されると共に、
前記RAMのブロックごとにデータの読み出しおよび書き込みを行なうための複数のブロック単位読出書込回路と、
前記複数のブロックよりなる前記RAM全体から1つのデータのデータの読み出しおよび書き込みを行なうためのRAM全体読出書込回路と、
前記複数のブロック単位読出書込回路のそれぞれに接続されてこれらの回路の中から1つの回路を選択して前記CPUに接続すると共に選択されなかった他のブロック単位読出書込回路の中から他の1つを選択して前記コプロセッサに接続するRAMブロック選択回路と、
をさらに備えることを特徴とする請求項1に記載のマイクロコンピュータ。 - 外部との間でデータの入出力を行なう入出力回路をさらに備え、この入出力回路により使用される前記レジスタが前記RAM上に形成され、前記ブロック選択回路は前記RAMの各ブロックと前記CPU、前記コプロセッサ、前記入出力回路とを前記RAM上に設けられた前記ブロック単位読出書込回路により選択して接続することを特徴とする請求項2に記載のマイクロコンピュータ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003058414A JP2004272342A (ja) | 2003-03-05 | 2003-03-05 | マイクロコンピュータ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003058414A JP2004272342A (ja) | 2003-03-05 | 2003-03-05 | マイクロコンピュータ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004272342A true JP2004272342A (ja) | 2004-09-30 |
Family
ID=33121528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003058414A Pending JP2004272342A (ja) | 2003-03-05 | 2003-03-05 | マイクロコンピュータ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004272342A (ja) |
-
2003
- 2003-03-05 JP JP2003058414A patent/JP2004272342A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2930341B2 (ja) | データ並列処理装置 | |
JPH07113886B2 (ja) | 演算回路 | |
JPS62208158A (ja) | マルチプロセツサシステム | |
JP3987783B2 (ja) | アレイ型プロセッサ | |
US7383419B2 (en) | Address generation unit for a processor | |
JP3576148B2 (ja) | 並列プロセッサ | |
JP2004272342A (ja) | マイクロコンピュータ | |
WO2007099950A1 (ja) | 高速pe間データ再配置機能を有するプロセッサアレイシステム | |
JP3305406B2 (ja) | プログラム制御のプロセッサ | |
JP4060960B2 (ja) | キャッシュ記憶装置 | |
JPH07210545A (ja) | 並列処理プロセッサ | |
JP3256442B2 (ja) | データ転送制御回路 | |
EP1251431A2 (en) | Reduction of bank switching instructions in main memory of data processing apparatus having main memory and plural memory banks | |
JP2878160B2 (ja) | 競合調停装置 | |
JPH08171626A (ja) | データ処理装置 | |
JPH0528092A (ja) | マイクロプロセツサ | |
JPH1185463A (ja) | 演算ネットワーク装置 | |
JPH04262450A (ja) | プロセッサ | |
JPH03196257A (ja) | ベクトル処理装置 | |
JPH01266651A (ja) | 半導体メモリ装置 | |
JPS60247739A (ja) | マイクロプログラム制御装置 | |
JPH04181374A (ja) | ベクトル処理装置 | |
JPH07281910A (ja) | データ処理装置 | |
JPH0468459A (ja) | ディジタル信号処理装置 | |
JPH04181373A (ja) | ベクトル処理装置 |