(57)【要約】【課題】バスの転送負荷を低減して外部処理装置からのデータ転送速度を向上させ、ＣＰＵの処理性能を向上させるようにしたマイクロプロセッサを提供する。【解決手段】外部バス７に接続されたプログラムメモリ６と、プログラムメモリに格納され、外部バス７と外部バスＩ／Ｆ８とを介して転送されるプログラムに従って演算処理を行うＣＰＵ１と、ＣＰＵにより制御回路５を介して制御される外部処理回路４と、外部処理回路からの出力データを格納するＣＰＵチップ１０に内蔵されたデュアルポートメモリ２とを備え、外部処理装置の処理結果（出力データ）をデュアルポートメモリに書き込み、ＣＰＵは高速アクセス可能な内部バスＩ／Ｆ３を介してデュアルポートメモリをアクセスしてデータを読み出し、プログラムに従って処理を行うように構成する。【選択図】　　　　図１
2004139218.tif 000002
【特許請求の範囲】
【請求項１】
所定のプログラムに従い演算を行うＣＰＵと、複数の機能ユニットと前記ＣＰＵとをデータ転送可能に接続するシステムバスと、該システムバス上でのデータ転送を制御するシステムバス制御手段と、外部装置からのデータの書き込みあるいは読み出しの少なくとも一方が可能であって、前記システムバスとは異なるデータ転送路でもって、前記ＣＰＵとの間でデータ転送可能に接続されたメモリとを有することを特徴とするマイクロプロセッサ。
【請求項２】
前記メモリは、デュアルポートメモリであることを特徴とする請求項１に係るマイクロプロセッサ。
【請求項３】
更に、前記ＣＰＵからの信号を受けて、前記外部装置を制御する制御手段を有することを特徴とする請求項１又は２に係るマイクロプロセッサ。
【請求項４】
前記機能ユニットは、少なくともプログラムメモリを含んでいることを特徴とする請求項１〜３のいずれか１項に係るマイクロプロセッサ。
【請求項５】
前記メモリは、前記外部装置に出力されるデータを専ら格納する読み出し専用のメモリと、前記外部装置からのデータを専ら格納する書き込み専用のメモリとからなることを特徴とする請求項１〜４のいずれか１項に係るマイクロプロセッサ。
【請求項６】
前記外部装置は、前記機能ユニットの１つを構成するデータメモリに対しても、データの書き込み或いは読み出しの少なくとも一方が可能に接続されると共に、前記マイクロプロセッサは、更に、前記外部装置がデータの書き込みあるいは読み出しの少なくとも一方を行う先を変更する手段を有することを特徴とする請求項１〜５のいずれか１項に係るマイクロプロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ＣＰＵが単なるコントローラに止まらず何らかの演算処理を行うようにしたマイクロプロセッサに関する。
【０００２】
【従来の技術】
【特許文献１】特開平７−１３９２０号公報
【０００３】
例えば、画像処理装置などに用いられるマイクロプロセッサにおいては、外部処理装置において実行された処理結果（出力データ）に対して、ＣＰＵが更に追加の処理を実行することがある。このような処理を行うシステムは、一般に図５に示すような構成となっている。すなわち、外部処理装置１０１　が処理を行って得られた処理結果（出力データ）は、外部バス１０２　を介して外部バス１０２　に接続されているデータメモリ１０３　に一旦書き込まれる。そして、ＣＰＵ１０４　はデータメモリ１０３　からデータを読み出し、更に何らかの追加のデータ処理を実行する。ここで、ＣＰＵ１０４　を動作させるためのプログラムは、近年はプログラムデータが膨大になっているため、通常外部バス１０２　に接続されているプログラムメモリ１０５　に格納されている。なお、図５において、１０６　はＣＰＵ１０４　と外部バス１０２　間に接続されている外部バスインターフェース、１０７　は外部処理装置１０１　を制御するための制御信号を生成する制御装置であり、１０８　は通常１チップ化されていることを示し、以降かかる１チップ化態様をＣＰＵチップとして説明する。
【０００４】
このように構成されているシステムにおいては、外部バス１０２　にはプログラムメモリ１０５　からのプログラムデータや、データメモリ１０３　からの処理データが、途切れなく転送されている状態となっている。このような状態で、ＣＰＵの処理速度は、要求するデータをいかにして速く取り込むことができるかにかかっている。つまり、外部バスのデータ転送負荷に大きく依存している。更に、ＣＰＵチップ外の外部バスの転送速度はＣＰＵチップ内の内部バスに比べ遅く、外部へのアクセスは内部アクセスに比べ長時間を必要とし、更なるシステムの処理性能の低下要因になっている。
【０００５】
従来、外部バスの転送速度が遅いという問題点を解決するため、例えば特開平７−１３９２０号公報（特許文献１）には、図６に示すような構成のシステムが提案されている。すなわち、メインプロセッサ（ＣＰＵ）２０１　のチップ内にデュアルポートＲＡＭ２０２　を設けておいて、該デュアルポートＲＡＭ２０２　に外部バスを介して外部メモリボード２０３　より転送される遅いデータをバッファリングしておいて、蓄積されたデータに対してメインプロセッサ２０１　がアクセスして取り込むという形態となっている。なお図６において、２０４　はメインプロセッサ２０１　の実行プログラムを格納しているプログラムＲＯＭである。
【０００６】
【発明が解決しようとする課題】
上記提案のシステムによれば、ＣＰＵチップ内に外部メモリボード２０３　からのデータをバッファリングするデュアルポートＲＡＭ２０２　をプログラムＲＯＭ２０４と共に設けることにより、見掛け上の外部アクセス速度の向上は可能となる。しかしながら、チップ内においてプログラムＲＯＭ２０４　に格納されているメインプロセッサ２０１　のプログラムデータと、デュアルポートＲＡＭ２０２　に取り込まれた処理対象データとが同じ内部バス上に存在することになり、メインプロセッサ（ＣＰＵ）２０１　の入力側において、プログラムデータと処理対象データとが競合することには変わりはなく、データ転送負荷を低減するという問題に対する根本的な解決にはなっていない。
【０００７】
本発明は、従来の外部メモリのＣＰＵへのデータ転送における上記問題点を解消するためになされたもので、外部メモリ等の外部装置とＣＰＵ間のデータ転送負荷を低減し、ＣＰＵの処理性能を向上させることの可能なマイクロプロセッサを提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記問題点を解決するため、請求項１に係る発明は、所定のプログラムに従い演算を行うＣＰＵと、複数の機能ユニットと前記ＣＰＵとをデータ転送可能に接続するシステムバスと、該システムバス上でのデータ転送を制御するシステムバス制御手段と、外部装置からのデータの書き込みあるいは読み出しの少なくとも一方が可能であって、前記システムバスとは異なるデータ転送路でもって、前記ＣＰＵとの間でデータ転送可能に接続されたメモリとで、マイクロプロセッサを構成するものである。
【０００９】
このように構成されたマイクロプロセッサにおいては、システムバスとは異なるデータ転送路でＣＰＵと接続された、外部装置からのデータの書き込みあるいは読み出しの可能なメモリを備えているので、外部装置からのデータを書き込んだメモリとＣＰＵとの間のデータ転送と、機能ユニットとＣＰＵとの間のデータ転送とが、同一バス上で競合することがなく、バスの転送負荷を低減して外部装置からのデータ転送速度を向上させ、ＣＰＵの処理性能を向上させることができる。
【００１０】
【発明の実施の形態】
次に、実施の形態について説明する。図１は、本発明に係るマイクロプロセッサの実施の形態を示すブロック構成図である。図１において、１はＣＰＵ、２はＣＰＵチップ内に配設されている高速デュアルポートメモリで、ＣＰＵ１に内部バスと内部バスＩ／Ｆ３を介して接続されている。４は外部処理装置で、該外部処理装置４の処理結果（出力データ）は、ＣＰＵ１の制御によるＣＰＵチップ内配設の制御回路５からの制御信号によって、デュアルポートメモリ２に直接書き込まれるようになっている。すなわち、デュアルポートメモリ２への書き込みは外部処理装置４が行い、外部処理装置４の書き込み動作の制御は制御回路５により行われる。６はプログラムメモリで、外部バス（システムバス）７とＣＰＵチップ内の外部バスＩ／Ｆ８を介してＣＰＵ１に接続されている。なお、９は外部バス７上でのデータ転送を制御するバスコントローラであり、１０はＣＰＵチップを示している。
【００１１】
次に、このように構成されている実施の形態の動作について説明する。従来、ＣＰＵチップ内に高速ＲＡＭが内蔵されているもの（内蔵ＲＡＭタイプチップと呼ばれている）があるが、この内蔵ＲＡＭは外部バスへのアクセスは考慮されておらず、ＣＰＵは内部専用バスを経由してのみアクセスできるようになっている。したがって、ＣＰＵ以外は、その内蔵ＲＡＭにはアクセスできないものである。
【００１２】
これに対して、本発明は、上記のようにデュアルポートメモリ２をＣＰＵチップ１０内に配設し、外部処理装置４及びＣＰＵ１に対してリード・ライト可能にしたもので、したがって、上記構成の実施の形態に係るマイクロプロセッサにおいては、まず外部処理装置４の処理結果をデュアルポートメモリ２に書き込む。一方、ＣＰＵ１は、プログラムメモリ６からのプログラムデータの読み出しは、従来通りに外部バス７を経由して外部バスＩ／Ｆ８を介して行い、外部処理装置４の処理結果が必要になると、高速アクセス可能な内部バスＩ／Ｆ３及び内部バスを経由して、デュアルポートメモリ２をアクセスしてデータを読み出し、所定の処理を実行する。なお、制御回路５は、データの一貫性を保つための回路であり、ＣＰＵ１の意図しない状況で外部処理装置４がデュアルポートメモリ２の内容を書き換えることのないように制御するものである。
【００１３】
このように、上記実施の形態においては、外部バス７に接続されるものはプログラムメモリ６だけとなり、外部処理装置４の処理結果（出力データ）は、ＣＰＵ１が高速でアクセスできるＣＰＵチップ内のデュアルポートメモリ２に直接書き込まれるようになっているので、プログラムメモリ６からＣＰＵ１へのプログラムデータの転送と、外部処理装置４の処理結果（出力データ）のデュアルポートメモリ２を介してのＣＰＵ１への転送とが、同じバスを通り競合することはなくなり、バスの転送負荷を低減し、全体としての処理性能を向上させることができる。またデュアルポートの内部メモリ（デュアルポートメモリ２）を用いているので、メモリへのライト・リードが同時にでき、処理速度を向上させることができ、また全体の構成も簡単にすることができる。
【００１４】
なお、上記実施の形態においては、デュアルポートメモリ２を介してＣＰＵ１が外部処理装置４の処理結果を用いて追加の処理を行うようにしたものを示したが、このＣＰＵ１の追加の処理結果を、デュアルポートメモリ２を介して再び外部処理装置４へ転送し、更に処理を行うようにしてもよい。なお、この際の外部処理装置は同一のものでもよいし、他の外部処理装置でもよい。
【００１５】
また、上記実施の形態の変形例としては、外部処理装置４内の演算回路の一部をＣＰＵチップ内に含めて構成し、１チップ化することもでき、このように構成することにより、外部処理装置とデュアルポートメモリ間のデータ転送を高速化することができる。また、図２に示すように、命令キャッシュ（Ｃａｃｈｅ　）メモリ１１をＣＰＵチップ内に設けることにより、ＣＰＵの処理速度を更に高速化することができる。
【００１６】
更に他の変形例としては、図３に示すように、２つのデュアルポートメモリ２−１，２−２を、外部処理装置に対してリード専用及びライト専用の高速メモリとしてＣＰＵチップ内に設け、各デュアルポートメモリ２−１，２−２に、それぞれ第１の外部処理装置４−１及び第２の外部処理装置４−２を接続し、第２の外部処理装置４−２の処理結果を第２のデュアルポートメモリ２−２を介してＣＰＵ１に転送して追加の処理を行わせ、ＣＰＵ１の処理結果を第１のデュアルポートメモリ２−１を介して第１の外部処理装置４−１へ転送して、更に処理を行わせるように構成してもよい。
【００１７】
更に、他の変形例として、図４に示すように、従来と同様にデータメモリ１２を外部バス７に接続しておいて、ＣＰＵチップ内蔵のデュアルポートメモリ２と外部バス接続のデータメモリ１２とを適応的に選択して用いるようにしてもよい。すなわち、高速アクセスが必要なデータの場合、あるいは転送データ量が多い場合は、外部処理装置４からデュアルポートメモリ２を介してＣＰＵ１に転送して処理させるようにし、一方、アクセスが遅くてもよく、使用頻度の低いデータに関しては、外部処理装置４の処理結果は外部バス７に接続されたデータメモリ１２に保持させておいて、ＣＰＵ１はこのデータメモリ１２からデータを読み出して処理を行うように構成してもよい。なお、ＣＰＵチップ内蔵のデュアルポートメモリ２と外部バス接続のデータメモリ１２の使い分けは、自動的にあるいはマニュアルで適宜選定できるように構成することができる。
【００１８】
【発明の効果】
以上実施の形態に基づいて説明したように、本発明によれば、システムバスとは異なるデータ転送路でＣＰＵと接続された、外部装置からのデータの書き込みあるいは読み出しの可能なメモリを備えているので、外部装置からのデータを書き込んだメモリとＣＰＵとの間のデータ転送と、機能ユニットとＣＰＵとの間のデータ転送とが、同一バス上で競合することがなく、バスの転送負荷を低減して外部装置からのデータ転送速度を向上させ、ＣＰＵの処理性能を向上させることができる。
【図面の簡単な説明】
【図１】本発明に係るマイクロプロセッサの実施の形態を示すブロック構成図である。
【図２】図１に示した実施の形態の変形例を示すブロック構成図である。
【図３】図１に示した実施の形態の他の変形例を示すブロック構成図である。
【図４】図１に示した実施の形態の更に他の変形例を示すブロック構成図である。
【図５】従来のマイクロプロセッサの構成例を示すブロック構成図である。
【図６】従来提案のデータ転送システムを示すブロック図である。
【符号の説明】
１　ＣＰＵ
２　デュアルポートメモリ
２−１　第１のデュアルポートメモリ
２−２　第２のデュアルポートメモリ
３　内部バスＩ／Ｆ
４　外部処理装置
４−１　第１の外部処理装置
４−２　第２の外部処理装置
５　制御回路
５−１　第１の制御回路
５−２　第２の制御回路
６　プログラムメモリ
７　外部バス
８　外部バスＩ／Ｆ
９　バスコントローラ
１０　ＣＰＵチップ
１１　命令キャッシュ（Ｃａｃｈｅ　）メモリ
１２　データメモリ
【図１】
2004139218.tif 000003
【図２】
2004139218.tif 000004
【図３】
2004139218.tif 000005
【図４】
2004139218.tif 000006
【図５】
2004139218.tif 000007
【図６】
2004139218.tif 000008