(57)【要約】【課題】アクセスが速い内部メモリの有利な条件を活かしながら、キャッシュミスによる予測できない処理速度の低下を防止できるメモリ制御ユニットを提供する。【解決手段】内部メモリ１７と、内部メモリ１７に割り当てられたメモリアドレスφａの境界値を格納した境界設定レジスタ２２と、メモリアドレスφａが境界設定レジスタ２２により設定された範囲外であれば、外部メモリ６に対するメモリ選択信号φｓｅを出力する外部メモリ制御部２３とを有するメモリ制御ユニット２１を提供する。このメモリ制御ユニット２１であると、メモリアドレスφａを指定することにより、ユーザは任意に、高速な内部メモリ１７と、大容量の外部メモリ６を使うことができる。【選択図】　　　　図２
2004110299.tif 000002
【特許請求の範囲】
【請求項１】
供給されたメモリアドレスによりアクセスの対象となる内部メモリと、
前記内部メモリに割り当てられた前記メモリアドレスの境界値を格納した内部境界設定レジスタと、
前記メモリアドレスが前記内部境界設定レジスタにより設定された範囲外であれば、外部メモリに対するメモリ選択信号を出力する外部メモリ制御部とを有するメモリ制御ユニット。
【請求項２】
請求項１において、前記外部メモリに対して、前記外部メモリに対する前記メモリ選択信号、前記メモリアドレスを伝達する信号、前記外部メモリに対する書き込みデータ信号を、タイミングを調整して供給する信号供給部を有するメモリ制御ユニット。
【請求項３】
請求項１において、前記内部メモリからの第１の読み出しデータまたは前記外部メモリからの第２の読み出しデータを選択して出力するデータ選択部を有するメモリ制御ユニット。
【請求項４】
請求項３において、前記データ選択部は、出力するデータが前記第１または第２の読み出しデータであることにより、異なるタイミングでレディー信号を出力するメモリ制御ユニット。
【請求項５】
請求項１において、複数の外部メモリに割り当てられた前記メモリアドレスの境界値を格納した外部境界設定レジスタを有し、
前記外部メモリ制御部は、前記メモリアドレスを前記外部境界設定レジスタの境界値と比較し、複数の外部メモリのいずれかに前記メモリ選択信号を出力するメモリ制御ユニット。
【請求項６】
請求項１において、前記内部メモリは、入出力ポートと出力ポートを備えた２ポートメモリであり、前記出力ポートは外部からアクセス可能であるメモリ制御ユニット。
【請求項７】
請求項１に記載のメモリ制御ユニットと、
前記メモリアドレスの生成部と、
前記書き込み用のデータを出力するデータ生成部と、
前記内部メモリまたは外部メモリからの読み出しデータが入力されるデータ入力部とを備えた処理ユニットを有する集積回路装置。
【請求項８】
請求項７において、前記外部メモリはオフチップメモリである集積回路装置。
【請求項９】
請求項７において、複数の処理ユニットを有し、
前記メモリ制御ユニットは、複数の外部メモリに割り当てられた前記メモリアドレスの境界値を格納した外部境界設定レジスタを備えており、
前記外部メモリ制御部は、前記メモリアドレスにより複数の外部メモリのいずれかに前記メモリ選択信号を出力し、
前記複数の外部メモリの少なくとも１つはオフチップメモリであり、他の外部メモリの少なくとも１つは他の処理ユニットの内部メモリである集積回路装置。
【請求項１０】
請求項９において、前記内部メモリは、入出力ポートと出力ポートを備えた２ポートメモリであり、前記出力ポートは前記他の処理ユニットからアクセス可能である集積回路装置。
【請求項１１】
請求項７において、前記内部メモリおよび外部メモリは、プログラム実行形式を格納するコードメモリである集積回路装置。
【請求項１２】
請求項７において、前記内部メモリおよび外部メモリは、プログラム実行時のデータを格納するデータメモリである集積回路装置。
【請求項１３】
請求項７に記載の集積回路装置と、前記外部メモリとなるオフチップメモリとを有するデータ処理システム。
【請求項１４】
供給されたメモリアドレスが、内部境界設定レジスタに格納された境界値により割り当てられた内部メモリの範囲内であれば前記内部メモリにアクセスする第１の工程と、
前記メモリアドレスが前記内部境界設定レジスタにより設定された範囲外であれば、前記メモリアドレスおよび外部メモリに対するメモリ選択信号を出力する第２の工程とを有するメモリの制御方法。
【請求項１５】
請求項１４において、前記第２の工程では、外部境界設定レジスタに格納された複数の外部メモリに割り当てられた境界値により複数の外部メモリのいずれかに前記メモリ選択信号を出力するメモリの制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内部メモリおよび外部メモリの制御に関するものである。
【０００２】
【従来の技術】
外部メモリからプロセッサに対するデータの供給速度を向上するために、小容量のキャッシュメモリをプロセッサの近くにおき、キャッシュメモリを介してプロセッサにデータを供給する階層的な構成が用いられている。このキャッシュシステムは、プロセッサがアクセスするデータの局所性を利用したものであるが、キャッシュメモリにデータがないキャッシュミスが発生すると、キャッシュメモリの内容が入れ替わる。したがって、キャッシュミスの発生頻度が多いと、処理能力は低下する。このため、特開２００２−１１６９５５などにおいては、キャッシュシステムの階層化を進めたり、キャッシュミスが発生し難いように外部メモリに格納されるデータの構成を変えたりしている。
【０００３】
【特許文献１】
特開２００２−１１６９５５号公報
【０００４】
【発明が解決しようとする課題】
システムＬＳＩの分野においても、複数のＣＰＵやＤＳＰ（以降、単にプロセッサと称す）がシリコン上に搭載可能な状況になりつつある。複数のプロセッサが搭載されたカスタムＬＳＩもしくはシステムＬＳＩ（以降、単にＬＳＩと称す）をシリコン上に構成するには、各々のプロセッサを制御するコードや、各々のプロセッサで処理するデータを蓄積するために大きなメモリ容量が必要となる。
【０００５】
これらのコードメモリやデータメモリをすべて同一ＬＳＩチップ上に搭載することは可能であるが、面積が膨大なものとなり経済的ではない。また、メモリは標準品を購入してＬＳＩとは独立させた方がコスト的に有利である。したがって、、システムＬＳＩにおいても、プロセッサの近傍、すなわちＬＳＩ内部に小さなキャッシュ用の内部メモリを設け、外部メモリから内部メモリにデータを転送するキャッシュ制御機構が採用される。ＬＳＩ内部の一次記憶（内部メモリ）と、ＬＳＩ外部の２次記憶（外部メモリ）とに階層的に分離し、これら両者の間にメモリマネージメントユニット（ＭＭＵ）もしくはキャッシュ構造（以降、単にキャッシュ構造と称す）と称される制御機構を置くことにより局所性の高いデータをハンドリングする場合は問題をある程度解決できる。また、キャッシュ構造においては、プログラムを作成するユーザからは外部メモリ（２次記憶）は見えないので、ユーザは１次記憶や２次記憶を意識することなくメモリをアクセスできるというメリットもある。
【０００６】
しかしながら、キャッシュミスが発生すると、内部メモリを介して外部メモリにアクセスするので、キャッシュミスが発生したときは、キャッシュ構造を採用していない場合よりも処理が遅くなる。そして、キャッシュミスが発生するか否かは、キャッシュメモリに格納されているデータの内容に依存するので、個々に予測することは不可能である。キャッシュ構造は、単一のＣＰＵで制御されるコンピュータのメモリ制御の手法として発展してきた経緯があり、ＯＳを含めて複数のユーザ・プログラムもしくはタスクを走行させるのに適した構造である。しかしながら、組込み目的のＬＳＩで処理されるアプリケーションの多くが、通信やネットワークにおけるリアルタイム処理であり、クロック単位で処理を進める必要があるのに、予測しないキャッシュミスが発生してコードあるいはデータに対するアクセスが遅れることは許容できない場合もある。
【０００７】
だからといって、すべてのメモリをＬＳＩに搭載することは上述したように経済的ではないし、システムＬＳＩの規模が大きくなるとそのようなことは不可能になる。すべてのメモリを外部に置くという解もあるが、アクセススピードの点からは内部メモリが有利であり、内部メモリの利点をまったく無視するような設計も不合理である。
【０００８】
そこで、本発明においては、アクセススピードが速い内部メモリの有利な条件を活かしながら、キャッシュミスによる予測できない処理速度の低下を防止することができるメモリ制御ユニットおよびそれを搭載した集積回路装置を提供することを目的としている。また、リアルタイム処理を目的としたプロセッサ組込みＬＳＩにおいて、外部メモリを用いることにより低コストで大容量のメモリを利用可能とし、その一方で、内部メモリを用いることにより処理速度の向上も図ることができるメモリ制御ユニットおよび集積回路装置を提供することも本発明の目的としている。
【０００９】
【課題を解決するための手段】
このため、本発明においては、内部メモリと外部メモリとによる階層的なメモリ構成の代わりに、内部メモリと外部メモリとにより連続するメモリ空間を形成する。そして、プロセッサには内部メモリのメモリ空間（アドレス空間）と外部メモリのメモリ空間（アドレス空間）とがシームレスに接続されたメモリ空間を提供し、それら内部メモリと外部メモリとの境界をレジスタに設定することにより、物理的には、プロセッサ側で単にメモリアドレスを指定するだけで高速アクセス可能なチップ内のメモリと、大容量格納可能なチップ外のメモリと別れてアクセスされるようにしている。
【００１０】
すなわち、本発明においては、供給されたメモリアドレスによりアクセスの対象となる内部メモリと、内部メモリに割り当てられたメモリアドレスの境界値を格納した内部境界設定レジスタと、メモリアドレスが内部境界設定レジスタにより設定された範囲外であれば、外部メモリに対するメモリ選択信号を出力する外部メモリ制御部とを有するメモリ制御ユニットを提供する。このメモリ制御ユニットであると、メモリアドレスを指定することにより、内部メモリと外部メモリとを対して任意にアクセスすることができる。したがって、ユーザは、内部メモリと外部メモリとを意識して使い分けることが可能となり、キャッシュミスが発生することはなく、予測不可能な処理速度の低下を阻止できる。また、ユーザは任意に、高速な内部メモリと、大容量の外部メモリを使うことができる。このため、クロック単位の処理の精度が要求される通信やネットワーク処理のようなリアルタイム処理を実行可能であり、さらに、低コストでコンパクトでありながら、高速性と大容量性とを持つメモリを利用可能なメモリ制御ユニットを本発明により提供できる。
【００１１】
このメモリ制御ユニットを採用することにより、供給されたメモリアドレスが、内部境界設定レジスタに格納された境界値により割り当てられた内部メモリの範囲内であれば内部メモリにアクセスする第１の工程と、メモリアドレスが内部境界設定レジスタにより設定された範囲外であれば、メモリアドレスおよび外部メモリに対するメモリ選択信号を出力する第２の工程とを有するメモリの制御方法を提供できる。
【００１２】
したがって、本発明のメモリ制御ユニットと、メモリアドレスの生成部と、書き込み用のデータを出力するデータ生成部と、内部メモリまたは外部メモリからの読み出しデータが入力されるデータ入力部とを備えた処理ユニットを有する集積回路装置を提供することにより、高速性と大容量性とを持つ内部メモリと外部メモリを利用可能な集積回路装置（ＬＳＩ）であって、ユーザがそれらのメモリを効率よく制御可能なプログラムを構築できるＬＳＩを提供することが可能となる。このＬＳＩにおいて、外部メモリはオフチップメモリであり、ＬＳＩと、外部メモリであるオフチップメモリとを搭載したデータ処理システムあるいはデータ処理装置という形態で提供することも可能である。
【００１３】
外部メモリにアクセスするスピードは、外部メモリの動作速度およびプロセッサからの距離といった点で内部メモリにアクセスするスピードよりも遅い。したがって、外部メモリに対して、外部メモリに対するメモリ選択信号、メモリアドレスを伝達する信号、外部メモリに対する書き込みデータ信号を、タイミングを調整して供給する信号供給部を設けておくことが望ましい。
【００１４】
また、内部メモリと外部メモリとを同一のデータバスに接続しても良いが、プロセッサと外部メモリを接続するバスを内部メモリで駆動すると、内部メモリからデータを読み出すときの処理速度が低下する。このため、内部メモリからの読み出し速度の低下を防ぐには、内部メモリからの第１の読み出しデータまたは外部メモリからの第２の読み出しデータを選択して出力するデータ選択部を設けておくことが望ましい。そして、第１の読み出しデータと第２の読み出しデータとでは出力速度が異なるので、データ選択部は、出力するデータが第１または第２の読み出しデータであることにより、異なるタイミングでレディー信号を出力することが望ましい。
【００１５】
本発明のメモリ制御ユニットを介してアクセス可能な外部メモリは１つに限定されない。各々の外部メモリが、メモリアドレスの内容に応じて自己のメモリに対するアクセス要求であることを判断するアドレス制御部またはアドレス変換部を備えていれば複数の外部メモリに対してアクセスできる。
【００１６】
また、本発明のメモリ制御ユニットを用いて、集積回路装置に分散配置された他の処理ユニットとメモリを介して通信するシステムを構築することができる。他の処理ユニットの内部メモリに書き込むだけの場合は、他の処理ユニットの内部メモリを外部メモリと共通するバスで接続するだけで良い。一方、読み込みも行う場合は、複数の外部メモリに割り当てられたメモリアドレスの境界値を格納した外部境界設定レジスタを設け、外部メモリ制御部は、メモリアドレスを外部境界設定レジスタの境界値と比較し、複数の外部メモリのいずれかにメモリ選択信号を出力することが望ましい。そして、複数の外部メモリの少なくとも１つはオフチップメモリであり、他の外部メモリの少なくとも１つは他の処理ユニットの内部メモリとなる。すなわち、このメモリ制御ユニットでは、上記のメモリの制御方法の第２の工程において、外部境界設定レジスタに格納された複数の外部メモリに割り当てられた境界値により複数の外部メモリのいずれかにメモリ選択信号を出力する。
【００１７】
本発明のメモリ制御ユニットにより、他の処理ユニットの内部メモリに対して、アドレスを指定して書き込んだり、読み込んだりすることにより、他の処理ユニットとデータを交換できる。したがって、プロセッサ間の通信のために複雑なプロトコルは不要となり、単純なソフトウェアおよびハードウェアにより通信システムを構築できる。さらに、アドレスを指定するだけで通信が行えるので、Ｃ言語などのハードウェアを意識しない高級記述言語によりデータ転送を制御することができる。
【００１８】
他の処理ユニットとの通信に適した内部メモリの１つは、入出力ポートと出力ポートを備えた２ポートメモリであり、出力ポートを外部からの通信用として他の処理ユニットに開放することができる。また、本発明のメモリ制御ユニットに、他の処理ユニットの内部メモリにアクセスするためにアドレスを変換する通信用の機能を含めさせることも可能である。
【００１９】
また、本発明のメモリ制御ユニットは、プログラム実行形式を格納するコードメモリ、および、プログラム実行時のデータを格納するデータメモリに対しても適用できる。
【００２０】
【発明の実施の形態】
以下に図面を参照して本発明についてさらに説明する。図１に、本発明のメモリ制御ユニットを備えたデータ処理システムの概要を示してある。図１に示したデータ処理システム１は、システムＬＳＩ２と、このシステムＬＳＩ２によりアクセスされるオフチップのコードメモリ５と、データメモリ６とを備えている。システムＬＳＩあるいはＡＳＩＣ（以下においてはＬＳＩ）２は、複数の処理ユニット（プロセッサ）１０を備えており、それらにより大量の画像データや通信用のデータを処理する機能１９が形成されている。
【００２１】
個々の処理ユニット１０は、特定の処理に特化した専用データ処理ユニット（専用命令実行ユニット、以降ではＶＵ）１１と、汎用的な構成の汎用データ処理ユニット（汎用命令実行ユニットあるいはプロセスユニット、以降ではＰＵ）１２とを備えている。個々の処理ユニット１０は、それぞれが独立した専用回路を備えたプログラマブルなプロセッサであり、ＰＵ１２は、実行形式の制御プログラム（プログラムコード、マイクロプログラムコード）を内蔵したコードＲＡＭ１４と、このコードＲＡＭ１４から命令をフェッチし、専用データ処理ユニット１１および汎用データ処理ユニット１２の実行ユニット１６にデコードされた制御信号を提供するフェッチユニット１５を備えている。コードＲＡＭ１４に格納されたプログラムあるいはオブジェクトコードには、ＶＵ１１に供給される専用命令φｖと、ＰＵ１２において実行される汎用命令φｐとがユーザが意図する処理を実現するように順番に含まれており、フェッチユニット１５は、それぞれの命令φｖおよびφｐをデコードしてＶＵ１１またはＰＵ１２の実行ユニット１６に供給する。
【００２２】
実行ユニット１６は、汎用レジスタ、フラグレジスタおよび演算ユニット（ＡＬＵ）などから構成される汎用性の高い処理回路である。そして、データＲＡＭ１７を一時的な記憶領域としてデータを入出力しながら汎用処理を実行できるようになっている。
【００２３】
ＦＵ１５からの専用命令φｖを実行する専用データ処理ユニットＶＵ１１は、ＦＵ１５が供給する命令がＶ命令φｖであるかなどをデコードするユニット１１ａと、予め特定のデータ処理を行うように制御信号をハードウェア的に出力するシーケンサ（ＦＳＭ（Ｆｉｎｉｔｅ　Ｓｔａｔｅ　Ｍａｃｈｉｎｅ）、ファイナイトステートマシン）１１ｂと、このシーケンサ１１ｂからの制御信号に従って特定のデータ処理を行うようにデザインされたデータパス部１１ｃを備えている。また、ＶＵ１１は、ＰＵ１２からアクセス可能なレジスタ１１ｄを備えており、データパス部２０の処理に必要なデータをインターフェイスレジスタ１１ｄを介してＰＵ１２で制御したり、ＶＵ１１の内部状態をレジスタ１１ｄを介してＰＵ１２で参照できるようになっている。また、データパス部１１ｃで処理された結果はＰＵ１２に供給され、ＰＵ１２ではその結果を利用した処理が行われる。
【００２４】
このデータ処理ユニット１０は、ＰＵ１２を汎用性のあるプラットフォームとし、リアルタイム応答などの特殊な演算が要求される処理を実現できる専用回路を備えたＶＵ１１を組み合わせることにより、専用回路による高速処理性能と、プログラム制御によるフレキシビリティとを兼ね備えている。したがって、リアルタイム応答性を犠牲にすることなく、設計および開発期間を短縮でき、さらに、その後の変更や修正にも柔軟に対処できるものである。このため、ＶＵ１１およびＰＵ１２の組合せを１つまたは複数搭載することにより、多種多様な機能を備えたシステムＬＳＩあるいはＡＳＩＣを短期間に開発および設計できる。以降においては、ＶＵ１１とＰＵ１２との組合せによる処理ユニット１０あるいは処理装置の単位をＶＵＰＵと称することにする。
【００２５】
本例のＰＵ１２は、さらに、コードＲＡＭ１４を含むメモリ制御ユニット２０と、データＲＡＭ１７を含むメモリ制御ユニット２１とを備えている。これらのメモリ制御ユニット２０および２１の構成は共通しているので、以降では、データＲＡＭ１７を含むメモリ制御ユニット２１を代表して説明する。また、オフチップのデータメモリ６を外部メモリと称し、これに対してオンチップのデータＲＡＭ１７を内部メモリと称することにする。メモリ制御ユニット２１は、ＥＵ１６から供給されたメモリアドレスφａによりアクセスの対象となる内部メモリ１７と、内部メモリ１７に割り当てられたメモリアドレスφａの境界値を格納した内部境界設定レジスタ２２と、メモリアドレスφａが内部境界設定レジスタ２２により設定された範囲外であれば、外部メモリ６に対するメモリ選択信号φｓｅを出力する外部メモリ制御部２３とを備えている。さらに、外部メモリ６に対して、メモリ選択信号φｓｅ、メモリアドレスφａ、外部メモリに対する書き込みデータφｄｉを、タイミングを調整して供給する信号供給部２４と、内部メモリ１７からの第１の読み出しデータφｄｏ１または外部メモリ６からの第２の読み出しデータφｄｏ２を選択してＥＵ１６に対して出力するデータ選択部２５を備えている。
【００２６】
コードＲＡＭ１４を内部メモリとして備えたメモリ制御ユニット２０においては、メモリアドレスφａがＦＵ１５から供給されたコードアドレスであり、外部メモリがオフチップのコードメモリ５となる。
【００２７】
図２に、メモリ制御ユニット２１のさらに詳しい構成を示してある。まず、ＰＵ１２のＥＵ１６は、メモリに対するデータのアクセスを制御するデータアクセスリクエスト生成部１６ａを備えている。このデータアクセスリクエスト生成部１６ａは、メモリにアクセスをリクエストする信号φｒｅｑと、書き込み用のデータが出力されていることを示すライト信号φｗとを出力する。ＥＵ１６は、さらに、メモリにアクセスするアドレス（メモリアドレス）φａを出力あるいは供給するデータアドレス生成部１６ｃと、書き込み用のデータφｄｉを出力するライトデータ生成部１６ｂと、メモリから出力された出力データφｄｏが書き込まれるバッファレジスタ部１６ｅを備えている。バッファレジスタ部１６ｅは、出力データφｄｏが用意されたことを示す信号φｒにより出力データφｄｏを格納あるいはラッチする。
【００２８】
メモリ制御ユニット２１は、境界設定レジスタ２２を備えており、内部メモリ１７と外部メモリ６との境界を示すアドレスが記録されている。本例では、メモリ用の連続アドレス空間を２４ビット（１６Ｍワード）とし、先頭の３２ｋワードをオンチップメモリである内部メモリ１７に割り当て、残りを外部メモリであるオフチップメモリ６に割り当てている。この構成によりユーザは、１６Ｍワードの空間を連続的にアスセスしつつ、高速アクセスしたい場合には先頭の３２Ｋワードにデータを格納させればよく、大容量にアクセスしたい場合には残りの領域を使用すればよいことになる。
【００２９】
このため、メモリ制御ユニット２１は、環境設定レジスタ２２に格納された境界値φｃと、供給されたメモリアドレスφａとを比較し、メモリアドレスφａが内部メモリ１７に割り当てられている範囲であれば内部メモリ１７に選択信号φｓｉを出力し、外部メモリ６に割り当てられている範囲であれば外部メモリ６に選択信号φｓｅを出力する外部メモリ制御部２３を備えている。本例の外部メモリ制御部２３は、境界設定レジスタ２２の境界値φｃとメモリアドレスφａとを比較する比較回路２３ａと、その比較結果とリクエスト信号φｒｅｑとから内部メモリ用の選択信号φｓｉを生成するＮＡＮＤ回路２３ｂと、同様に外部メモリ用の選択信号φｓｅを生成するＮＡＮＤ回路２３ｃとを備えている。
【００３０】
外部メモリ用の選択信号φｓｅは、タイミング調整用の信号供給部２４を介して外部メモリ６に供給される。同様に、メモリアドレスφａ、ライトデータφｄｉ、ライト信号φｗも信号供給部２４を介して外部メモリ６に供給される。外部メモリ６に対するアクセスは、内部メモリ１７に対するアクセスより時間がかかるので、信号供給部２４により時間が調整された後に出力される。このため、信号供給部２４は、サイクル・タイミング調整用のフリップフロップ回路（ＦＦ）２４ａおよび２４ｂを備えている。さらに、信号供給部２４は、メモリアドレスφａを外部メモリ６の物理アドレスに変換して出力する外部メモリアドレス制御部２４ｃとを備えている。
【００３１】
一方、外部メモリ６から出力されたデータφｄｏ２は、内部メモリ１７から出力されたデータφｄｏ１と共に、データ選択部２５に供給され、メモリアドレスφａあるいはメモリ選択信号φｓｅを参考にしながら、一方のデータが選択されてＥＵ１６に対する出力データφｄｏとして出力される。このため、データ選択部２５は、外部メモリ６から出力されたデータφｄｏ２と、内部メモリ１７から出力されたデータφｄｏ１の一方を選択するセレクタ２５ａと、タイミングを調整して、出力データφｄｏが出力可能になったらレディー信号φｒを出力するウェート制御部２５ｂとを備えている。このデータ選択部２５は、内部メモリ１７からデータが出力される配線長が外部メモリと同じ程度になってしまうのを防止する効果があり、内部メモリ１７と外部メモリ６とを同列に並べた構成にしたときに内部メモリ１７に対するアクセススピードが低下するのを防止している。
【００３２】
さらに、本例のメモリ制御ユニット２１は、図１に示すように、ＬＳＩ２の他のＶＵＰＵ１０ｃ１および１０ｃ２の内部メモリ１７ｃ１および１７ｃ２に対して、外部メモリ６とほぼ同様にアクセスできるようになっている。このため、図２に示すように、外部メモリ選択信号φｓｅ、メモリアドレスφａ、ライト信号φｗ、ライトデータφｄｉ、出力データφｄｏを供給する信号線がバスを形成するように他のＶＵＰＵ１０ｃ１および１０ｃ２まで延びている。そして、内部メモリ１７ｃ１の出力データφｄｏｃ１と、内部メモリ１７ｃ２の出力データφｄｏｃ２とは、外部メモリ６の出力φｄｏ２とともに第２のデータ選択回路２７に供給され、用意されたセレクタ２７ａによりメモリアドレスφａによりいずれかの出力データが選択される。そして、選択された出力データが第１のデータ選択回路２６により選択されて、ＥＵ１６に供給される。
【００３３】
一方、ライトデータφｄｉは、単純に、外部メモリ６、他のＶＵＰＵの内部メモリ１７ｃ１および１７ｃ２に供給される。そして、メモリアドレスφａにより活性化されたメモリにのみデータが書き込まれる。このため、本例ではライトデータφｉのためのデータ選択部は用意されていない。他のＶＵＰＵ１０ｃ１および１０ｃ２が、ＰＵ１２を構成するＥＵ１６または他の回路要素により、供給されたメモリアドレスφａから自己の内部メモリが選択されたか否かを判断し、さらに、必要であればアドレス変換を行い、それぞれの内部メモリ１７ｃ１あるいは１７ｃ２にデータｄｉを書き込む。
【００３４】
図３に、ＶＵＰＵ１０、ＶＵＰＵ１０ｃ１およびＶＵＰＵ１０ｃ２のそれぞれのＥＵ１６のメモリマップを示してある。ＶＵＰＵ１０のＥＵ１６は、上述したように、２４ビット（１６Ｍワード）の連続アドレス空間３１を備えており、先頭の３２ｋワード３２が内部メモリ１７に割り当てられ、残りのアドレス空間３３が外部メモリ６に割り当てられている。したがって、境界値「００＿８０００ｈ」（φｃ）がメモリ制御ユニット２１の境界設定レジスタ２２に格納されており、メモリアドレスφａが境界値φｃ以下であると内部メモリ１７がアクセスされ、メモリアドレスφａが境界値φｃを超えていると外部メモリ６がアクセスされる。さらに、外部メモリのアドレス空間３３には、ＶＵＰＵ１０ｃ１への送信アドレス領域３４ａと、ＶＵＰＵ１０ｃ２への送信アドレス領域３４ｂとが設定されている。このため、外部メモリ６は、外部メモリ用のアドレス区間３３の内、これらの送信アドレス領域３４ａおよび３４ｂを除いたメモリアドレスφａに対してアクティブとなる。
【００３５】
一方、ＶＵＰＵ１０ｃ１およびＶＵＰＵ１０ｃ２のＥＵ１６は、これらの送信アドレス領域３４ａおよび３４ｂのメモリアドレスφａが供給されると、それぞれのＥＵ１６が内部メモリ１７ｃ１および１７ｃ２に対するアクセスであると判断する。そして、それぞれのＥＵ１６は、ＶＵＰＵ１０の送信アドレス領域３４ａおよび３４ｂを、自己の内部メモリ１７ｃ１および１７ｃ２のアドレス空間３５ａおよび３５ｂのメモリアドレスに変換する。この結果、ＶＵＰＵ１０のメモリ制御ユニット２１は、他のＶＵＰＵ１０ｃ１および１０ｃ２の内部メモリ１７ｃ１および１７ｃ２の通信用に確保された領域に対してアクセスすることが可能となり、ライトデータφｄｉを書き込んだり、出力データφｄｏｃ１またはφｄｏｃ２を得ることができる。したがって、ＶＵＰＵ１０とＶＵＰＵ１０ｃ１の間、またはＶＵＰＵ１０とＶＵＰＵ１０ｃ２との間でデータ交換を行い、ＶＵＰＵ間の通信機能を提供することができる。このＶＵＰＵ間の通信機能をＩＶＣ機構（Ｉｎｔｅｒ　ＶＵＰＵ　Ｃｏｍｍｕｎｉｃａｔｉｏｎ機構）と称することとする。
【００３６】
図４に、メモリ制御ユニット２１におけるメモリを選択する制御をフローチャートにより示してある。まず、ステップ４１において、供給されたメモリアドレスφａが、境界設定レジスタ２２に格納された境界値φｃにより割り当てられた内部メモリ１７の範囲内であるか比較する。内部メモリ１７に割り当てられたアドレス空間の範囲内であれば、ステップ４２において、内部メモリ１７にアクセスする。一方、メモリアドレスφａを境界値φｃと比較したときに、内部メモリ１７に割り当てられたアドレス空間の範囲外であれば、ステップ４３において、外部メモリ６に、メモリ選択信号φｓｅおよびメモリアドレスφａを出力して外部メモリ６にアクセスする。外部メモリ６は、１つのＤＲＡＭまたはＳＲＡＭである必要はなく、複数であっても良い。そして、上述したように、オフチップメモリと共に他のＶＵＰＵの内部メモリであっても良い。
【００３７】
上述したように、本例のＬＳＩ２においては、データメモリだけではなく、コードメモリについても同様にメモリ制御ユニット２０が採用されている。すなわち、コードとデータを分離するハーバード・アーキテクチャ・プロセッサのコードメモリとデータメモリの両方に本発明を適用した例となっている。このため、ＬＳＩ２の内部のメモリ１４および１７と外部のメモリ５および６に分離されてボード上でデータ処理システム１の全体が構成されることになる。このように外部メモリを用いたシステム構築により、コード量、データ量に最適化されたＬＳＩ２の構築が可能となる。これは、汎用的なＣＰＵの使用形態と異なり、リアルタイム処理を要求されるアプリケーションに最適な形態となる。
【００３８】
そして、本例のメモリ制御ユニット２１においては、高速アクセス可能な内部メモリ１７と、高速ではないが大容量の外部メモリ６とが階層的に組み合わされておらず、アドレス空間に内部メモリ１７と外部メモリ６とが表れている。このため、ユーザはプログラムによりメモリアドレスを指定することにより、高速アクセスしたい場合には内部メモリ１７にアクセスでき、大容量にアクセスしたい場合には外部メモリ６に自由にアクセスできる。したがって、データ処理の内容によってメモリの種類を意図的に使い分けることが可能となり、その過程でキャッシュミスが発生することがないので、データアクセスの際に発生する遅延などを事前に詳細に考慮したプログラミングが可能となる。このようなアーキテクチャは、通信や画像処理などの１クロックの単位で処理を行う必要があるリアルタイム処理を実行するには好適である。そして、これらのメモリにアクセスする制御は図４に示したように非常に簡素になり、それに伴って、キャッシュ制御のような複雑なハードウェアも不要である。したがって、本発明により、高速な内部メモリと、大容量の外部メモリを備えたデータ処理システム１であって、経済的であり、また、リアルタイム処理が要求されるアプリケーションに適したデータ処理システム１を提供することができる。
【００３９】
さらに、メモリアドレスφａがＣ言語などの高級言語プログラムにより記述可能な情報であり、また、境界設定レジスタ２２に格納された境界値φｃもＣ言語などの高級言語プログラムにより更新することができる。したがって、内部メモリ１７にアクセスするメモリアドレスの範囲と、外部メモリ６にアクセスするメモリアドレスの範囲は、プログラムにより制御することが可能であり、アプリケーションを実行する中で、内部メモリ１７と外部メモリ６とをプログラマが意図的にフレキシブルに利用することが可能となる。
【００４０】
また、本発明のメモリ制御ユニット２１は、ＶＵＰＵの内部メモリを利用した通信もサポートできる。すなわち、メモリ制御ユニット２１により、ＶＵＰＵ間の通信を、メモリへのアクセスと同じ方法にてＣ言語などから直接に行うことができ、極めて自由にデータ送受を行うことができる。このため、複数のＣ言語により記述されたプロセスが並列に動作するようなＬＳＩ２を設計することが極めて容易となる。すなわち、高級言語により記述されたプロセスを複数に分割した分散処理システムの設計が容易に行えることになり、複数のＶＵＰＵを用いた処理速度の速い分散型のデータ処理システムを本発明により、より手軽に設計することができ、短時間に低コストで分散型のデータ処理システムを市場に供給することが可能となる。
【００４１】
図５に、本発明に係る異なるデータ処理システムの例を示してある。本例のデータ処理システム１も、複数のＶＵＰＵ１０を搭載したＬＳＩ２と、オフチップのメモリ６とを備えており、上記の例と共通する部分には同じ符号を付して説明を省略する。本例のメモリ制御ユニット２１においては、２つの境界設定レジスタ２２ａおよび２２ｂを用いてメモリ空間（アドレス空間）を３分割し、そのうち１つをメモリ制御ユニット２１の内部メモリ１７に割り当て、２つをメモリ制御ユニット２１の外のメモリに割り当てるものである。さらに、メモリ制御ユニット２１の外のメモリの１つは、オフチップの外部メモリ６であり、他の１つは他のＶＵＰＵ１０ｃの内部メモリ１７ｃに割り当てて、プロセッサ間のデータ通信領域に使用するものである。
【００４２】
さらに、ＶＵＰＵ１０およびＶＵＰＵ１０ｃは、それぞれ１ＲＷ／１ＲのデュアルポートＲＡＭを内部メモリ１７および１７ｃとして備えている。これらのデュアルポートＲＡＭ１７および１７ｃのリードオンリのポートは、互いに相手のデータ通信領域がアクセス可能になるように双方のＶＵＰＵ１０ｃおよびＶＵＰＵ１０に開放されている。したがって、ＲＡＭ１７は、ＶＵＰＵ１０ｃにとってリードオンリのメモリとなり、ＲＡＭ１７ｃは、ＶＵＰＵ１０にとってリードオンリのメモリとなる。そして、ＶＵＰＵ１０からＶＵＰＵ１０ｃに伝えたい情報は自己のＲＡＭ１７の通信領域に書き込み、相手のＶＵＰＵ１０ｃが通信領域に書き込まれた情報を読み込むことで伝達される。すなわち、自己の内部メモリが通信用のＲＡＭとなる。ＶＵＰＵ１０ｃからＶＵＰＵ１０への情報の伝達も同様であり、ＶＵＰＵ１０ｃがＲＡＭ１７ｃに書き込むことによりＶＵＰＵ１０に情報を伝達できる。
【００４３】
このため、本例のメモリ制御ユニット２１は、２つの境界設定レジスタ２２ａおよび２２ｂを備えており、その１つ、第１の境界設定レジスタ２２ａには、内部メモリ１７と外のメモリとの境界値φｃ１が格納され、他の１つ、第２の境界設定レジスタ２２ｂには、メモリ制御ユニット２１の外のメモリとなる、他のＶＵＰＵの内部メモリ１７ｃとオフチップの外部メモリ６との境界値φｃ２が格納される。外部メモリ制御部２３は、メモリアドレスφａと第１の境界値φｃ１とを比較する第１の比較器２３ａ１と、メモリアドレスφａと第２の境界値φｃ２とを比較する第２の比較器２３ａ２とを備えている。さらに、リクエスト信号φｒｅｑおよび第１の比較器２３ａ１の比較結果に基づいて内部メモリ１６に対する選択信号φｓｉを出力する第１のＮＡＮＤ回路２３ｂと、リクエスト信号φｒｅｑおよび第２の比較回路２３ａ２の比較結果に基づいて外部メモリ６に対する選択信号φｓｅ１を出力する第２のＮＡＮＤ回路２３ｃと、リクエスト信号φｒｅｑおよび第２の比較回路２３ａ２の比較結果に基づいて他のＶＵＰＵの内部メモリ１７ｃに対する選択信号φｓｅ２を出力する第３のＮＡＮＤ回路２３ｄとを備えている。
【００４４】
外部メモリ６に対する信号の入出力は上記とほぼ同様である。すなわち、選択信号φｓｅ１、メモリアドレスφａ、ライト信号φｗおよびライトデータφｄｉはタイミングを制御する信号供給部２４を介して供給される。また、外部メモリ６からの出力データφｄｏ２は、データ選択部２５により選択されてＥＵ１６に供給される。
【００４５】
一方、他のＶＵＰＵ１０ｃの内部ＲＡＭ１７ｃに対しては、内部ＲＡＭ１７ｃがＶＵＰＵ１０にとってリードオンリメモリとなるので、読み取り動作だけが行われる構成と成っている。すなわち、ライトデータφｄｉおよびライト信号φｗは供給されず、出力データφｄｏｃがデータ選択部２５に供給される。したがって、データ選択部２５からは、内部メモリ１７の出力φｄｏ１、外部メモリ６の出力φｄｏ２および他のＶＵＰＵ１０ｃの内部メモリ１７ｃの出力φｄｏｃのいずれかが選択されて出力される。それと共に、選択された出力データが用意されてたことを示すレディー信号（ウェート制御信号）φｒが出力される。これにより、各メモリ１７、６および１７ｃに対するアクセスのタイミングが調整される。
【００４６】
また、この方式でＶＵＰＵ１０とＶＵＰＵ１０ｃとの通信が行われるように他のＶＵＰＵ１０ｃのＰＵ１２にもメモリ制御ユニット２１が搭載されている。ただし、このメモリ制御ユニット２１の外部メモリは、ＶＵＰＵ１０の内部メモリ１７だけになる。もちろん、ＶＵＰＵ１０ｃのデータを蓄積するオフチップメモリを設けることも可能であり、その場合は、ＶＵＰＵ１０とＶＵＰＵ１０ｃとは全く同じ構成になる。
【００４７】
図６に、ＶＵＰＵ１０およびＶＵＰＵ１０ｃのそれぞれのＥＵ１６のメモリマップを示してある。ＶＵＰＵ１０のＥＵ１６は、内部メモリ１７のメモリ空間３１と、通信相手のＶＵＰＵ１０ｃの内部メモリ１７ｃの内、リードオンリ領域、すなわち通信メモリとして開放されたメモリ空間３６と、外部メモリ６のメモリ空間３３が連続したアドレス空間３１を備えている。したがって、内部メモリ１７のメモリ空間３１の境界値「００＿８０００ｈ」（φｃ１）が第１の境界設定レジスタ２２ａに格納されており、通信メモリとして開放されたメモリ空間３６の境界値「０１＿００００ｈ」（φｃ２）が第２の境界設定レジスタ２２ｂに格納されている。
【００４８】
一方、ＶＵＰＵ１０ｃのＥＵ１６は、内部メモリ１７ｃのメモリ空間３５と、通信相手のＶＵＰＵ１０の内部メモリ１７の内、リードオンリの通信メモリとして開放されたメモリ空間３７が連続したアドレス空間３８を備えている。したがって、内部メモリ１７ｃのメモリ空間３５の境界値「００＿８０００ｈ」（φｃ）が、ＶＵＰＵ１０ｃのメモリ制御ユニット２１の境界設定レジスタ２２に格納されている。
【００４９】
図７に、２つの境界設定レジスタ２２ａおよび２２ｂを備えたメモリ制御ユニット２１におけるメモリを選択する制御をフローチャートにより示してある。まず、ステップ４１において、供給されたメモリアドレスφａが、第１の境界設定レジスタ２２ａに格納された境界値φｃ１により割り当てられた内部メモリ１７の範囲内であるか比較する。内部メモリ１７に割り当てられたアドレス空間の範囲内であれば、ステップ４２において、内部メモリ１７にアクセスする。
【００５０】
一方、メモリアドレスφａを境界値φｃ１と比較したときに、内部メモリ１７に割り当てられたアドレス空間の範囲外のときは、さらに、ステップ４４において、メモリアドレスφａが、第２の境界設定レジスタ２２ｂに格納された境界値φｃ２により割り当てられた通信メモリの範囲内であるか比較する。本例においては、通信相手のＶＵＰＵ１０ｃの内部メモリ１７ｃのうち、ＶＵＰＵ１０にリードオンリとして開放されメモリ空間３６が通信メモリに割り当てられたアドレス空間となり、この範囲内であれば、ステップ４５において、通信相手のＶＵＰＵ１０ｃの内部メモリ１７ｃにアクセスする。
【００５１】
さらに、メモリアドレスφａを第２の境界値φｃ２と比較したときに、通信メモリに割り当てられたアドレス空間の範囲外のときは、ステップ４３において、外部メモリ６にアクセスする。本例のメモリ制御ユニット２１においては、このような簡易な制御で、ＶＵＰＵ間の通信と、内部メモリ１７および外部メモリ６に対するアクセス制御を行うことが可能となる。
【００５２】
図８に、本発明に係るさらに異なるデータ処理システムの例を示してある。本例のデータ処理システム１も、複数のＶＵＰＵ１０を搭載したＬＳＩ２と、オフチップのメモリ６とを備えており、上記の例と共通する部分には同じ符号を付して説明を省略する。上述した１ＲＷ／１ＲのデュアルポートＲＡＭを内部メモリ１７として採用したメモリ制御ユニット２１は、内部メモリ１７と外部メモリ６に対するプレーンなアクセスを可能とし、さらに、簡易な構成でプロセッサ間通信を行うことができる例である。しかしながら、複数のプロセッサ間でのデータ通信目的には適してはいない。そこで、本例のメモリ制御ユニット２１は、通信により受信する領域をアドレス変換し、内部メモリに格納する通信ユニット２８を備えている。
【００５３】
この通信ユニット２８は、ＩＶＣバス２９のバス有効信号ＩＶＣＲＳＥＬにより有効になったアドレスＩＶＣＲＡＤＤＲと比較して、自己の通信ユニット２８がアクセスされる範囲のアドレスが供給されたことを認識するためのＩＶＣ受信領域設定レジスタ２８ａと、比較器２８ｂとを備えている。そして、通信ユニット２８がアクセスされると、受信ＲＡＭアドレスレジスタ２８ｃに格納されたアドレスを用いて、アドレス変換回路２８ｃにより供給されたアドレスＩＶＣＲＡＤＤＲを変換し、自己の通信用の内部データＲＡＭ１７ｂにアクセスする。ＩＶＣバス２９を介して供給された書き込み用のデータＩＶＣＷＤＡＴＡ、リードライト制御信号ＩＶＣＲＷＲＩＴＥはバス有効信号ＩＶＣＲＳＥＬと共に一端ＩＶＣ受信制御バッファレジスタ２８ｅに受信された後、タイミングを調整して通信用の内部メモリ１７ｂに供給される。一方、出力データ（読み込み用のデータ）ＩＶＣＲＲＤＡＴＡと、読み出し用のバスサイクル有効信号ＩＶＣＲＲＥＡＤＹ＿Ｘは、データ選択部２５からＩＶＣリードバッファレジスタ２８ｆにいったん格納された後にＩＶＣバス２９に出力される。
【００５４】
このような通信ユニット２８を設けてアドレス変換することにより、親あるいはバスマスタとなるＶＵＰＵ１０ｐからＩＶＣバス２９により供給される通信用のアドレスＩＶＣＲＡＤＤＲに対して、メモリ制御ユニット２１の内部で内部メモリにアクセスするメモリアドレスφａを独立して設定することが可能となり、内部メモリを汎用性のあるプロセッサ間通信用のメモリとして利用することが可能となる。したがって、ＩＶＣバス２９により、複数のＶＵＰＵ１０を子あるいはスレーブとして接続し、ＩＶＣバス２９を介してＶＵＰＵ１０および１０ｐの間でデータ交換することができる。
【００５５】
たとえば、複数の子のＶＵＰＵ１０に対するマスタのＶＵＰＵ１０ｐからバス２９を介して送信された通信用のアドレスＩＶＣＲＡＤＤＲが以下の通りであったとする。
【００５６】
2004110299.tif 000003
各々のＶＵＰＵ１０においては、応答する通信用のアドレスがＩＶＣ受信領域設定レジスタ２８ａに設定され、その対応（変換先）のアドレス、例えば通信ＲＡＭ１７ｂに割り当てられた「００−８０００ｈ」がＩＶＣ受信ＲＡＭアドレスレジスタ２８ｃに設定される。したがって、ローカルで通信ＲＡＭ１７ｂに割り当てられたアドレスはそれぞれの子のＶＵＰＵ１０で共通にすることができる。即ち、マスタのＶＵＰＵ１０ｐは、アドレス「ＦＦ＿００００ｈ」を受信先の通信アドレスとしてデータ転送し、子のＶＵＰ１０の通信ユニット２８は、これを受けて、実際に通信用メモリ１７ｂにアクセスするためのメモリアドレスφａ２「００＿８０００ｈ」に変換する。
【００５７】
したがって、マスタのＶＵＰＵ１０ｐにおいては、子のＶＵＰＵ１０に対する送信アドレスは、マスタのＶＵＰＵ１０ｐが内部または外部メモリに割り当てていないメモリ空間内のアドレスであれば良く、そのアドレスが子のＶＵＰＵ１０のいずれかに対応することをプログラマが意識していれば良い。したがって、レジスタなどに子の送信アドレスを設定する必要はない。一方、受信側のＶＵＰＵ１０においては、送信アドレスが設定されており、それを受信ＲＡＭアドレスレジスタ２８ｃにより通信用の内部メモリ１７ｂに割り当てられたメモリアドレスに変換されるように設定されていれば、自己の内部メモリ１７ｂに通信用の情報を書き込んだり、読み込むことができる。この関係は、図３に示したＶＵＰＵ１０（図３（ａ））と、ＶＵＰＵ１０ｃ１および１０ｃ２（図３（ｂ）および（ｃ））とにおけるＩＶＣ通信においても同様であり、この場合は、ＶＵＰＵ１０がマスタのＶＵＰＵ、ＶＵＰＵ１０ｃ１および１０ｃ２が子のＶＵＰＵに相当する。
【００５８】
図８に示したＶＵＰＵ１０では、ふたつの境界設定レジスタ２２ａおよび２２ｂを用いて、バス接続によるＩＶＣ受信ＲＡＭ１７ｂをオンチップ高速ＲＡＭで構成すると同時に、他のオンチップ高速ＲＡＭ（非ＩＶＣ受信ＲＡＭ）１７ａとオフチップ大容量ＲＡＭ（非ＩＶＣ受信ＲＡＭ）６とを連続的なメモリ空間としてアクセス可能にしている。したがって、外部メモリ制御部２３からは、ＥＵ１６から供給されるメモリアドレスφａと境界設定レジスタ２２ａおよび２２ｂに格納された境界値φｃ１およびφｃ２を比較して、第１の内部メモリ（非ＩＶＣ受信ＲＡＭ）１７ａを選択する第１の内部メモリ選択信号φｓｉ１と、第２の内部メモリ（ＩＶＣ受信ＲＡＭ）１７ｂを選択する第２の内部メモリ選択信号φｓｉ２と、外部メモリ６を選択する外部メモリ選択信号φｓｅが出力される。
【００５９】
また、通信用の内部メモリ１７ｂは２ＲＷの２ポートＲＡＭであり、子のＶＵＰＵ１０と親のＶＵＰＵ１０ｐの両方により読み書きされることでデータを交換することができる。
【００６０】
図８に示したＶＵＰＵ１０においては、メモリ制御ユニット２１に二つの境界設定レジスタ２２ａおよび２２ｂを設けることにより、メモリ領域を他プロセッサからの通信用オンチップ高速ＲＡＭ領域１７ｂと、自己アクセス用のオンチップメモリ１７ａと、オフチップＲＡＭ６との３つに分割して制御することが可能となり、それらのメモリ領域はすべてプログラムからメモリアドレスを指定することで自由に利用することが可能となる。したがって、高速な自己アクセスを求めるとメモリ容量が不足し、一方、大容量のメモリを求めると高速性が不足するといったトレードオフを効果的に解決することができる。
【００６１】
さらに、通信ユニット２８を設けることによりバスマスタである親のＶＵＰＵ１０ｐより供給されるアドレスをメモリ制御ユニット２１で取り扱い可能なメモリアドレスに変換することが可能となり、複数のＶＵＰＵ１０をＩＶＣバス２９で接続してプロセッサ間の通信を行うことが可能となる。したがって、このＶＵＰＵ１０は、リアルタイム処理目的のプロセッサ組込み型ＬＳＩの構築に極めて有効である。さらに、オフチップメモリ６の側にも通信ユニット２８と同様のアドレス変換機能を持たせることにより、オフチップメモリ６との接続にもＩＶＣバス２９を利用することが可能である。また、オフチップメモリ６の側に調停ユニットとしての機能も持たせることにより、複数のＶＵＰＵ１０に搭載されたメモリ制御ユニット２１から同一のオフチップメモリ６を利用するような構成にすることも可能である。
【００６２】
【発明の効果】
以上に示したように、本発明の集積回路装置およびデータ処理システムにおいては、メモリ制御ユニットに含まれる高速アクセス可能な内部メモリと、メモリ制御ユニットの外にある大容量の外部メモリとの間を階層的に接続するのではなく、内部メモリと外部メモリとにより連続するメモリ空間を形成する。一方で、それら内部メモリと外部メモリとの境界をレジスタに設定することにより、物理的には高速アクセス可能なチップ内のメモリと、大容量格納可能なチップ外のメモリとに対し、メモリアドレスを指定するだけで自由にアクセスできるようにしている。したがって、本発明のメモリ制御ユニットを採用することにより、アクセススピードが速い内部メモリの有利な条件を活かしながら、キャッシュミスによる予測できない処理速度の低下を防止することができ、さらに、大容量の外部メモリも自由にアクセスすることができる。このため、本発明のメモリ制御ユニットは、外部メモリを用いることにより低コストで大容量のメモリを利用可能とし、その一方で、内部メモリを用いることにより処理速度の向上も図ることができ、リアルタイム処理を目的としたプロセッサ組込みＬＳＩを構築するのに好適である。そして、本発明のＬＳＩを用いることにより、画像処理や通信処理に適したデータ処理システムを提供することが可能となる。
【図面の簡単な説明】
【図１】本発明のデータ処理システムの概要を示す図である。
【図２】メモリ制御ユニットおよびＬＳＩの一例を示す図である。
【図３】図２に示すＬＳＩを構成する複数のＶＵＰＵの内部メモリのメモリマップを示す図である。
【図４】図２に示すメモリ制御ユニットの制御を示すフローチャートである。
【図５】異なるメモリ制御ユニットおよびＬＳＩの概略構成を示す図である。
【図６】図５に示すＬＳＩを構成する複数のＶＵＰＵの内部メモリのメモリマップを示す図である。
【図７】図５に示すメモリ制御ユニットの制御を示すフローチャートである。
【図８】さらに異なるメモリ制御ユニットおよびＬＳＩの概略構成を示す図である。
【符号の説明】
１　　データ処理システム
２　　ＬＳＩ（集積回路装置）
５　　オフチップコードメモリ
６　　オフチップデータメモリ
１０　　データ処理ユニット（ＶＵＰＵ）
１１　　専用データ処理ユニット（ＶＵ）
１２　　汎用データ処理ユニット（ＰＵ）
１４　　内部コードメモリ
１５　　フェッチユニット（ＦＵ）
１６　　実行ユニット（ＥＵ）
１７　　内部データメモリ
２０　　コードメモリを内蔵したメモリ制御ユニット
２１　　データメモリを内蔵したメモリ制御ユニット
２２　　境界設置レジスタ
２３　　外部メモリ制御部
２４　　信号供給部
２５　　データ選択部
【図１】
2004110299.tif 000004
【図２】
2004110299.tif 000005
【図３】
2004110299.tif 000006
【図４】
2004110299.tif 000007
【図５】
2004110299.tif 000008
【図６】
2004110299.tif 000009
【図７】
2004110299.tif 000010
【図８】
2004110299.tif 000011