(57)【特許請求の範囲】
【請求項１】
特定のデータ処理に適した専用回路を備えた専用処理ユニットと、
汎用のデータ処理に適した汎用処理ユニットと、
コードメモリよりフェッチした命令コードが前記専用処理ユニットにおける処理を規定した専用命令であれば、それを前記専用処理ユニットに供給し、前記命令コードが前記汎用処理ユニットにおける処理を規定した汎用命令であれば、それを前記汎用処理ユニットに供給するフェッチユニットとを有し、
前記汎用処理ユニットは、前記フェッチユニットからの前記汎用命令に基づき動作する第１のモードと、前記専用処理ユニットからのダイレクトアクセスコマンドに基づき動作する第２のモードとを備え、さらに前記汎用処理ユニットは、データ処理を実行する実行部と、前記汎用命令および前記ダイレクトアクセスコマンドのいずれかに基づき前記実行部を制御する制御部とを備えており、
前記実行部は、前記第１のモードにおいてデータ処理を実行する汎用回路であって、汎用レジスタ、演算器およびデータＲＡＭを含む汎用回路と、
前記第２のモードにおいて前記専用処理ユニットから前記汎用回路の前記汎用レジスタに対してデータを入出力するデータパス、前記専用処理ユニットから前記汎用回路の前記演算器に対してデータを入出力するデータパス、および、前記専用処理ユニットから前記汎用回路の前記データＲＡＭに対してデータを入出力するデータパスとを備えているデータ処理装置。
【請求項２】
請求項１において、前記制御部は、前記専用処理ユニットから前記ダイレクトアクセスコマンドに先立ち前記第２のモードをリクエストする信号を受け取ると、それ以前の前記汎用命令に基づく前記実行部における処理を終了し、その前記汎用命令に続く前記汎用命令をフェッチするためのアドレスを記憶し、前記専用処理ユニットに対し前記ダイレクトアクセスコマンドの発行を許可する信号を出力するデータ処理装置。
【請求項３】
特定のデータ処理に適した専用回路を備えた専用処理ユニットと、汎用のデータ処理に適した汎用処理ユニットと、コードメモリよりフェッチした命令コードが前記専用処理ユニットにおける処理を規定した専用命令であれば、それを前記専用処理ユニットに供給し、前記命令コードが前記汎用処理ユニットにおける処理を規定した汎用命令であれば、それを前記汎用処理ユニットに供給するフェッチユニットとを有するデータ処理装置の制御方法であって、
前記汎用処理ユニットは、データ処理を実行する実行部と、前記汎用命令および前記専用処理ユニットからのダイレクトアクセスコマンドのいずれかに基づき前記実行部を制御する制御部とを含み、前記実行部は、汎用レジスタ、演算器およびデータＲＡＭを含む汎用回路、前記専用処理ユニットから前記汎用回路の前記汎用レジスタに対してデータを入出力する第１のデータパス、前記専用処理ユニットから前記汎用回路の前記演算器に対してデータを入出力する第２のデータパス、および、前記専用処理ユニットから前記汎用回路の前記データＲＡＭに対してデータを入出力する第３のデータパスとを備えており、
当該制御方法は、
前記制御部が、前記フェッチユニットからの前記汎用命令に基づくデータ処理を前記汎用回路で実行する第１のステップと、
前記制御部が、前記ダイレクトコマンドに基づくデータ処理を前記第１のデータパス、前記第２のデータパスおよび前記第３のデータパスの少なくともいずれかにより実行する第２のステップとを有するデータ処理装置の制御方法。
【請求項４】
請求項３において、前記第２のステップを開始する前に、前記制御部が、前記専用処理ユニットから前記ダイレクトアクセスコマンドに先立ち前記第２のステップをリクエストする信号を受け取ると、それ以前の前記汎用命令に基づく処理を終了し、前記汎用命令に続く前記汎用命令をフェッチするためのアドレスを記憶し、前記専用処理ユニットに対し前記ダイレクトアクセスコマンドの発行を許可する信号を出力する第３のステップを有するデータ処理装置の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、専用回路を備えたデータ処理装置に関するものである。
【０００２】
【従来の技術】
アプリケーションに特化したプロセッサの要求が高まっている。例えば、画像処理、ネットワーク処理といった分野では各処理に特化した専用回路と、その専用回路を駆動する専用命令を装着可能とし、個々のアプリケーションの仕様に柔軟に対応できるプロセッサがコストパフォーマンス上有利である。そのようなプロセッサについては本願出願人も、特開２０００−２０７２０２号にて提案している。
【０００３】
【発明が解決しようとする課題】
アプリケーションの仕様に柔軟に対応できるプロセッサにおける難しさの１つは、ユーザの要求、すなわち要求仕様に対しいかに自由度の高い専用命令（ユーザ専用命令）が装着できるかということと、その専用命令をいかにオーバヘッドの少ない状態で実行できるかということとのトレードにあるといえる。
【０００４】
上記の特開２０００−２０７２０２号に開示されたプロセッサは、専用処理ユニット（専用データ処理ユニット、以降においてはＶＵ）と、汎用処理が可能な汎用処理ユニット（基本実行ユニットあるいはプロセッサユニット、以降においてはＰＵ）を備えている。したがって、汎用処理ユニットＰＵをベースとした汎用処理機能に加えて、ユーザの要求仕様に対応した処理に特化した専用回路を極めて高い自由度で装着でき、ユーザが定義した専用命令を実装することが可能となっている。さらに、ＰＵおよびＶＵが共通に参照できるレジスタが用意されており、ＭＯＶＥ命令などのレジスタ転送命令を実行するだけでＰＵとＶＵとの間でのデータ転送が可能となっており、ＶＵとして、ＰＵとのデータ交換を含めた極めて高い自由度の専用命令を実装できるアーキテクチャとなっている。
【０００５】
近年、画像処理あるいはネットワーク処理といったリアルタイムな処理が要求される分野では、さらに高いレベルで高速処理あるいはリアルタイムな処理性能が要求されつつある。たとえば、レジスタ転送を採用している上記のプロセッサにおいて、ＶＵにて、ＰＵのデータに対してユーザ独自の専用命令によりデータ処理を行う場合、まず、ＰＵからデータを転送し、演算結果を再びＶＵから転送するために少なくとも２サイクルの処理が基本的に必要である。ＶＵにおける処理内容が例えば数十クロック程度の多数のクロックを消費するのであれば、ＶＵとＰＵの間のデータ転送に費やされるクロックは、その処理で消費されるクロックに対する比率が小さいのでそれほど問題にはならない。しかしながら、ＶＵの処理が積和演算を基本とするもので数クロックで終えてしまうような場合には、データ転送に費やされるクロックが極めて大きなオーバヘッドとして見えてくる。特に、プロセッサの処理速度を向上するために、専用回路化して専用命令で実行可能とする処理の範囲を増大すると、専用回路の処理で消費されるクロック数は減少する傾向となり、データ転送のオーバヘッドが増大しやすい。
【０００６】
また、ＰＵとＶＵとで共通に参照できるレジスタを採用した方法は、汎用性は高いが、ＰＵおよびＶＵの内部レジスタからデータ転送用のレジスタへ転送するだけで１サイクルを消費するので、ＶＵとＰＵとの間でデータ転送をしようとすると往復で合計４サイクルを消費する。したがって、データ転送で消費されるクロック数を削減することにより大幅に処理速度を向上できる。しかしながら、ＰＵの構成をＶＵの構成に合わせて変形することは、ＰＵの汎用性を犠牲にすることになり、ユーザの仕様に合わせて自由な構成のＶＵを実装するためのプラットフォームとしての価値が低下する。さらに、ＰＵも含めて設計しなおすことになると、プロセッサの開発期間とコストが増加することになり経済的な解決策でもない。
【０００７】
そこで、本発明においては、ＰＵの汎用性を犠牲にすることなく、ＶＵとＰＵとのデータ転送のオーバヘッドを削減可能なデータ処理装置およびその制御方法を提供することを目的としている。そして、ＶＵとＰＵの間のデータ転送に伴うクロック消費を表面に現さずに、あるいはほとんど現さずにＶＵにおける処理を実行することができるデータ処理装置およびその制御方法を提供することを目的としている。
【０００８】
【課題を解決するための手段】
本発明においては、特定のデータ処理に適した専用回路を備えた専用処理ユニットと、汎用のデータ処理に適した汎用処理ユニットと、コードメモリよりフェッチした命令コードが専用処理ユニットにおける処理を規定した専用命令であれば、それを専用処理ユニットに供給し、命令コードが汎用処理ユニットにおける処理を規定した汎用命令であれば、それを汎用処理ユニットに供給するフェッチユニットとを有するデータ処理装置において、汎用処理ユニットに、フェッチユニットからの第１の命令に基づき動作する第１のモードと、専用処理ユニットからの第２の命令に基づき動作する第２のモードとを設ける。このため、汎用処理ユニットには、データ処理を実行する実行部と、第１の命令および第２の命令のいずれかに基づき実行部を制御する制御部とを設ける。これにより、本発明の専用処理ユニットと、汎用処理ユニットと、フェッチユニットとを有するデータ処理装置の制御方法は、汎用処理ユニットがフェッチユニットからの第１の命令に基づき動作する第１のステップと、汎用処理ユニットが専用処理ユニットからの第２の命令に基づき動作する第２のステップとを有する。フェッチユニットから専用処理ユニットおよび汎用処理ユニットに供給される命令は、フェッチした専用命令あるいは汎用命令そのものでも良く、あるいはフェッチユニットでデコードした信号あるいは命令であっても良い。
【０００９】
本発明のデータ処理装置では、第１のモードあるいは第１のステップにおいて、汎用処理ユニットの処理と専用処理ユニットの処理とをフェッチユニットから供給される汎用命令および専用命令によりプログラムレベルで個別にあるいは並列に実行できる。それと共に、第２のモードあるいは第２のステップにおいては、汎用処理ユニットの処理を専用処理ユニットの制御下で行うことが可能であり、汎用処理ユニットと専用処理ユニットとを１つの命令、すなわち、専用命令で同期させることができる。したがって、汎用処理ユニットと専用処理ユニットで共通の処理を実行することが可能であり、汎用処理ユニットのハードウェア資源あるいはその一部を、専用処理ユニットのデータパスとして処理を行うことが可能となる。
【００１０】
このため、汎用処理ユニットから共通のレジスタなどを介してデータを専用処理ユニットに転送しなくても、汎用処理ユニットの内部レジスタなどの資源と、専用処理ユニットの演算器などの資源とからなるデータパスにより同じあるいは共通の処理を実行できる。たとえば、汎用処理ユニットの内部レジスタ（汎用レジスタ）に記録されたデータを専用処理ユニットの専用回路で処理し、その結果を再び汎用レジスタに格納する処理が、フリップフロップなどが介在したときの遅延を除けば、専用処理ユニット内にデータがある条件で専用回路において処理するのと同じサイクル、すなわちクロック数で実行することが可能である。したがって、データ転送で消費されるクロック数を削減でき、データ転送などのコマンドは不要となるので、プログラム上ではデータ転送のために消費されるサイクルが現れないようにすることができる。
【００１１】
専用処理ユニットが第２のモードあるいは第２のステップを必要とするか否かは、本発明に係るデータ処理装置で実現しようとしているアプリケーションの仕様などに依存する。しかしながら、汎用処理ユニットの標準的なアーキテクチャあるいは制御コマンドとして第２のモードあるいは第２のステップを実現できるようになっていれば、仕様によって開発あるいは設計される専用処理ユニットを搭載するプラットフォームとしての汎用処理ユニットの汎用性を犠牲にしないで、本発明の効果を得ることができる。
【００１２】
このように、本発明のデータ処理装置およびその制御方法においては、専用処理ユニット側からの第２の命令により、汎用処理ユニットのハードウェアリソースを専用処理ユニットのハードウェアリソースとして用いて処理を行うことができる。その間、汎用処理と専用処理との並列性を犠牲にすることになるが、専用回路の一部として汎用処理ユニットの資源を利用できる。このため、上記のように汎用処理ユニットと専用処理ユニットとの間のデータ転送にかかる処理時間がほとんどプログラムの作成については影響を与えなくなると共に、重複したハードウェア資源を省略することが可能となり、専用処理ユニットをコンパクトにすることができる。さらに、専用回路の一部として汎用処理ユニットの汎用的な回路構成を、無理なく取り込むことができるので、専用命令の自由度を大幅に広げることができる。そして、汎用処理ユニットと専用処理ユニットの間で個別の処理としてデータ転送を行う必要がなくなるので、データ転送に伴うオーバヘッドも大幅に低減できる。
【００１３】
したがって、本発明のデータ処理装置およびその制御方法により、アプリケーションの仕様に柔軟に対応できる専用回路を備えたプロセッサあるいはデータ処理装置であって、ユーザの要求、すなわち要求仕様に対し、自由度の高い専用命令（ユーザ専用命令）を装着可能であり、その専用命令をオーバヘッドがない、あるいはオーバヘッドが見えない状態で実行できるデータ処理装置を提供することができる。
【００１４】
汎用処理ユニットの制御部に、専用処理ユニットから第２の命令に先立ち第２のモードをリクエストする信号を受け取ると、それ以前の第１の命令に基づく実行部における処理を終了し、その第１の命令に続く汎用命令をフェッチするためのアドレスを記憶し、専用処理ユニットに対し第２の命令の発行を許可する信号を出力するようにすることが望ましい。また、制御方法においては、第２のステップを開始する前に、専用処理ユニットから第２の命令に先立ち、第２のステップをリクエストする信号を受け取ると、それ以前の第１の命令に基づく処理を終了し、その第１の命令に続く汎用命令をフェッチするためのアドレスを記憶し、専用処理ユニットに対し第２の命令の発行を許可する信号を出力する第３のステップを設けることが望ましい。これにより、汎用処理ユニットのハードウェアリソースを用いて専用処理ユニットが行う処理を、プログラム化された汎用命令から独立して、専用処理ユニットから完全に制御することが可能となる。すなわち、このデータ処理装置用のプログラムとしては、専用命令だけで、専用処理ユニットが汎用処理ユニットのハードウェアリソースを用いた処理を行うのを制御することが可能となる。そして、汎用処理ユニットとしては割り込み処理と同様に、その処理が終了すると、プログラム中に汎用命令で定義された処理を続行できる。
【００１５】
さらに、専用処理ユニットから供給される第２の命令のフォーマットは、フェッチユニットから供給される第１の命令と同じフォーマットであっても良く、あるいは異なるフォーマットであっても良い。フェッチユニットから供給される汎用命令あるいはそれをデコードした命令と同一のフォーマットで専用処理ユニットから第２の命令が供給されれば、汎用処理ユニットの制御部の構成はほとんど変えずに専用処理ユニットの制御下で動作するようにできる。
【００１６】
一方、制御部に、第１の命令をデコードするデコード・実行制御部と、このデコード・実行制御部からの指示により、該デコード・実行制御部からの第３の命令または専用処理ユニットからの第２の命令のいずれかを選択して実行部を構成する論理・演算要素に対する制御信号に変換して供給する制御ロジック部とを設けることも可能である。専用処理ユニットから供給される第２の命令は、すでに汎用処理ユニットのデコード・実行制御部でデコードされた状態のデータとなっているので、デコード・実行制御部における処理サイクルを短縮あるいは省くことが可能となる。したがって、専用処理ユニットにおいて汎用処理ユニットのハードウェア資源を用いた処理をより早い段階で実行できる。また、専用処理ユニットは、アプリケーションの仕様などに基づき、それに特化された回路構成となっているので、汎用的なフォーマットで命令を汎用処理ユニットに出力するメリットはなく、制御ロジック部で実行可能なデータあるいは信号で第２の命令を出力することも容易である。
【００１７】
このように、第２のモードあるいは第２のステップでは、汎用処理ユニットのハードウェア資源の少なくとも１部を専用処理ユニットに対し解放することが可能であり、処理速度が速くリアルタイム処理にさらに適したプロセッサを低コストで提供することができる。特にメリットが大きいのは、汎用処理ユニットと専用処理ユニットの間でデータを交換する必要がある処理、たとえば、専用処理ユニットから、汎用処理ユニットの汎用レジスタに対してデータを入出力する処理、汎用処理ユニットの演算器を用いて演算する処理、および、汎用処理ユニットのデータＲＡＭに対してデータを入出力する処理である。したがって、第２の命令はダイレクトアクセスコマンドであり、本発明の一態様は、特定のデータ処理に適した専用回路を備えた専用処理ユニットと、汎用のデータ処理に適した汎用処理ユニットと、コードメモリよりフェッチした命令コードが前記専用処理ユニットにおける処理を規定した専用命令であれば、それを前記専用処理ユニットに供給し、前記命令コードが前記汎用処理ユニットにおける処理を規定した汎用命令であれば、それを前記汎用処理ユニットに供給するフェッチユニットとを有し、前記汎用処理ユニットは、前記フェッチユニットからの前記汎用命令に基づき動作する第１のモードと、前記専用処理ユニットからのダイレクトアクセスコマンドに基づき動作する第２のモードとを備え、前記汎用処理ユニットは、データ処理を実行する実行部と、前記汎用命令および前記ダイレクトアクセスコマンドのいずれかに基づき前記実行部を制御する制御部とを備えており、前記実行部は、前記第１のモードにおいてデータ処理を実行する汎用回路であって、汎用レジスタ、演算器およびデータＲＡＭを含む汎用回路と、前記第２のモードにおいて前記専用処理ユニットから前記汎用回路の汎用レジスタに対してデータを入出力するデータパス、前記専用処理ユニットから前記汎用回路の前記演算器に対しデータを入出力するデータパス、および、前記専用処理ユニットから前記汎用回路の前記データＲＡＭに対してデータを入出力するデータパスとを備えているデータ処理装置である。また、本発明の異なる態様の１つは、特定のデータ処理に適した専用回路を備えた専用処理ユニットと、汎用のデータ処理に適した汎用処理ユニットと、コードメモリよりフェッチした命令コードが前記専用処理ユニットにおける処理を規定した専用命令であれば、それを前記専用処理ユニットに供給し、前記命令コードが前記汎用処理ユニットにおける処理を規定した汎用命令であれば、それを前記汎用処理ユニットに供給するフェッチユニットとを有するデータ処理装置の制御方法であって、前記汎用処理ユニットは、データ処理を実行する実行部と、前記汎用命令および前記専用処理ユニットからのダイレクトアクセスコマンドのいずれかに基づき前記実行部を制御する制御部とを含み、前記実行部は、汎用レジスタ、演算器およびデータＲＡＭを含む汎用回路、前記専用処理ユニットから前記汎用回路の汎用レジスタに対してデータを入出力する第１のデータパス、前記専用処理ユニットから前記汎用回路の前記演算器に対しデータを入出力する第２のデータパス、および、前記専用処理ユニットから前記汎用回路の前記データＲＡＭに対してデータを入出力する第３のデータパスとを備えており、当該制御方法は、前記制御部が、前記フェッチユニットからの前記汎用命令に基づくデータ処理を前記汎用回路で実行する第１のステップと、前記制御部が、前記ダイレクトコマンドに基づく処理を前記第１のデータパス、前記第２のデータパスおよび前記第３のデータパスの少なくともいずれかにより実行する第２のステップとを有するデータ処理装置の制御方法である。
【００１８】
【発明の実施の形態】
以下に図面を参照しながら本発明についてさらに説明する。図１に、特定の処理に特化した専用処理ユニット（専用データ処理ユニット、以降ではＶＵ）１と、汎用的な構成の汎用処理ユニット（汎用データ処理ユニットあるいはプロセスユニット、以降ではＰＵ）２とを備えたデータ処理装置（システムＬＳＩあるいはプロセッサ）１０の概略構成を示してある。このプロセッサ１０は、ＶＵ１およびＰＵ２にデコードされた制御信号あるいは命令を供給するフェッチユニット（以降ではＦＵ）３を備えており、コードＲＡＭ４に記録された実行形式のプログラムコード（マイクロプログラムコード）５から命令コード（マイクロコード）をフェッチし、デコードステージ命令として出力する。このため、ＦＵ３は、次の命令コードの先頭アドレスを記録するレジスタ６と、ＰＵ２からの制御信号φｎによりレジスタ６のアドレスまたはデコードされた命令φｐで指示されたアドレスのいずれかを選択し、そのアドレスを次の命令コードをフェッチするためにＲＡＭ４に出力するセレクタ７と、フェッチされたデータをアライメントして命令コードの種別を判別しデコードステージの命令として出力するコードアライメント回路８とを備えている。したがって、次の命令コードのアドレスはＰＵ２からフィードバックされてＦＵ３に入力される。コードアライメント回路８はバッファとしても機能し、必要があれば、命令コードをプリフェッチすることも可能である。
【００１９】
ＲＡＭ４に記録されたプログラム５は、ＶＵ１における処理を規定する専用命令（以下ではＶＵ命令）と、ＰＵ２における処理を規定する汎用命令（以下ではＰＵ命令）とを備えている。そして、ＦＵ３は、これらのＶＵ命令、ＰＵ命令をデコードしてＶＵ１およびＰＵ２にそれぞれ供給する機能を備えている。このため、フェッチした命令コードがＶＵ命令であれば、それをアライメントしたＶＵデコードステージ命令φｖを格納するレジスタ９ｖと、フェッチした命令コードがＰＵ命令であれば、それをアライメントしたＰＵデコードステージ命令φｐを格納するレジスタ９ｐを備えている。なお、以降では、ＶＵ命令およびそれに対応するＶＵデコードステージ命令をＶＵ命令φｖとして説明し、ＰＵ命令およびそれに対応するＰＵデコードステージ命令をＰＵ命令φｐとして説明する。
【００２０】
専用処理ユニットＶＵ１は、ユーザ命令である専用命令（ＶＵ命令）を実行するユニットであり、ＶＵ命令φｖをデコードし、その命令φｖで規定されたデータ処理に適した回路における処理を制御するデコードおよび実行制御回路１１を備えている。そして、ＶＵデコード回路１１は、シーケンサあるいは他のハードウェアロジック回路による状態遷移論理（ＦＳＭ）を用いてハード的に処理を実行する回路である。このため、ＶＵ命令φｖが供給されると、予め設定された複数の処理が、設定された順番で実行される。図１に示したＶＵ１では、ＶＵ命令φｖにより、ＶＵ１が単独で行う処理１を実行し、次に、ＰＵ２の汎用レジスタ（ＰＵレジスタ）を用いて行う処理２およびＶＵ１のリソースを用いて行う処理３とを実行し、さらに、ＰＵ２のデータＲＡＭを用いて行う処理４を実行するデータパス（専用回路）が用意されている。
【００２１】
汎用処理ユニットＰＵは、汎用命令あるいは基本命令の実行ユニットであり、汎用プロセッサとほぼ同じ構成が採用される。本例では、ＰＵ命令φｐをデコードし、ＡＬＵなどの汎用的な演算処理ユニットを備えた回路の制御を行うＰＵ制御部２０を備えている。本例のＰＵ制御部２０は、ＰＵ命令φｐをデコードし、後述する各回路部の演算処理ユニットあるいはレジスタ単位で制御可能な制御信号あるいは制御命令φ３に展開するデコード・実行制御回路２１と、このデコード・実行制御回路２１から供給された制御命令φ３から実際に各演算処理ユニットあるいはレジスタの単位で命令を発行するダイレクトＰＵ制御ロジック部２２とを備えている。
【００２２】
そして、汎用処理を行う回路、すなわち、実行部２３としては、入出力のデータパスを切替可能なセレクタ論理を含む汎用レジスタ（ＰＵレジスタ）へアクセス可能な第１の汎用回路部２５と、セレクタ論理とフラグ生成論理を含む汎用演算器を備えた第２の汎用回路部２６と、セレクタ論理を含むデータＲＡＭにアクセス可能な第３の汎用回路部２７とが用意されており、これらを適当に結合することで様々な処理を実行することができる。
【００２３】
また、ＶＵ１とＰＵ２との間にはデータ転送用の２つのデータバスＶＵＲＤＡＴＡ３２と、ＶＵＷＤＡＴＡ３１とが用意されている。これらのＶＵＲＤＡＴＡ３２と、ＶＵＷＤＡＴＡ３１は、３２ビット（３１から０）であり、各々１６ビット単位（１５〜０、３１〜１６）にてアクセスできるようになっている。さらに、ＶＵ１とＰＵ２との間には、互いの制御を行う為にＰＵデコード・実行制御部２１とＶＵ１との間で制御信号を交換可能な第１の制御信号線３５と、ＰＵ制御ロジック部２２に対しＶＵ１から命令（第２の命令）φ２を供給可能な第２の制御信号線３６が用意されている。
【００２４】
第１の制御信号線３５によりＶＵ１とＰＵデコード・実行制御部２１との間でリソースアクセス要求信号ＶＵＤＰＡＲＥＱ（以降ではＲＥＱ）と、アクノレッジ信号ＶＵＤＰＡＡＣＫ（以降ではＡＣＫ）と、要求解除信号ＶＵＤＰＡＥＮＤ（以降ではＥＮＤ）とが交換される。リソースアクセス要求信号ＲＥＱは、ＶＵ命令φｖによりＶＵ１で実行する処理のためにＰＵ２の実行部２３の資源が要求される場合にＶＵ１からＰＵ２に送出される制御信号である。アクノレッジ信号ＡＣＫは、ＰＵ２の側がアクセス受け入れ可能な状態となったことを示す信号でありＰＵ２からＶＵ１に送出される。ＰＵ２では、リソースアクセス要求信号ＲＥＱを受信すると、実行部２３で実行中のＰＵ命令φｐの次の命令には進まず、その実行中のＰＵ命令φｐに関する処理が終了すると次のＰＵ命令φｐのフェッチアドレスをレジスタＢＩＰに格納し、アクノレッジ信号ＡＣＫを送出する。この際、次のＰＵ命令φｐを実行するためにコンディションコードなどの他の情報も必要な場合は、フェッチアドレスと共に適当なレジスタに退避させる。
【００２５】
要求解除信号ＥＮＤは、ＰＵ２の実行部２３を用いたＶＵ１における処理が終了するＶＵ１からＰＵ２に送出される制御信号であり、ＰＵ２の実行部２３の制御がＶＵ１からＰＵ２に戻される。したがって、ＰＵ２では、要求解除信号ＥＮＤを受信すると、レジスタＢＩＰに格納されたアドレスをＦＵ３に送って、プログラムメモリ４のプログラム５から次の命令をフェッチさせる。
【００２６】
第２の制御信号線３６によりＶＵ１からＰＵ制御ロジック部２２に供給される命令コードＶＵＤＰＡＣＭＤ（以降ではダイレクトアクセスコマンドまたはコマンドＣＭＤ）は、ＶＵ１からＰＵ２にダイレクトアクセスする詳細を示す信号である。したがって、ＶＵ１がＰＵ２の実行部２３をダイレクトに制御するための命令であり、ＰＵ２がＦＵ３から供給を受けるＰＵ命令φｐを第１の命令とすると、本発明の第２の命令φ２に対応するものである。ダイレクトアクセスコマンドＣＭＤは、ＦＵ３から供給されるＰＵ命令φｐ（第１の命令φ１）に対応する制御命令φ３と共に制御ロジック部２２に供給され、制御ロジック部２２でデコード・実行制御部２１の指示に従って選択される。そして、制御命令φ３またはコマンドＣＭＤのいずれか選択された命令に対応する制御信号が制御ロジック部２２から実行部２３の演算器あるいはレジスタなど論理・演算要素に供給され、実行部２３における処理が実行される。
【００２７】
図２に、コマンドＣＭＤの例を示してある。本例のコマンドＣＭＤは８ビットの命令であり、ＶＵ１からＰＵ２の第１の汎用回路２５の汎用レジスタ（ＰＵレジスタ）にダイレクトにアクセスする処理と、ＰＵ２の第３の汎用回路２７のデータＲＡＭにダイレクトにアクセスする処理プログラムを定義している。さらに、ＰＵ２の第２の汎用回路２６の演算器にダイレクトにアクセスする処理なども定義することが可能である。
【００２８】
図３に、本例のデータ処理装置１０においてＶＵ１がＰＵ２にダイレクトアクセスするときの処理をフローチャートにより示してある。図３（ａ）はＰＵ２の処理であり、通常はステップ６１においてＦＵ３から供給されたＰＵ命令φｐをデコードし、ステップ６７においてＰＵ命令により指示された処理を実行部２３で実行する。そして、ステップ６８で、次のＰＵ命令のフェッチアドレスを出力してＦＵ３から次のＰＵ命令の供給を受ける。もちろん、これらのステップはパイプライン処理で行われており、各ステップは並列に実行される。
【００２９】
この通常の制御ロジック（第１のステップ）に加えて、本例のＰＵ２においては、ステップ６２でＶＵ１からダイレクトアクセス要求（リソースアクセス要求）ＲＥＱがあると、ステップ６３で、実行部２３で実行中の処理を終了すると共に、次のＰＵ命令のフェッチアドレスを退避レジスタＢＩＰに退避する制御ロジックを設けてある。そして、この制御ロジック（第２のステップ）では、さらに、ステップ６４でアクノレッジ信号ＡＣＫをＶＵ１に発行し、実行部２３の制御をＶＵ１に開放する。その後、ステップ６５でＶＵ１から解除信号ＥＮＤを受信するまで、ステップ６６で、ＶＵ１から供給されるダイレクトアクセスコマンドＣＭＤによる処理を実行部２３で実行する。したがって、解除信号ＥＮＤを受信するまで、ＰＵ２は、コマンドＣＭＤの制御下に入り、ＶＵ１の側から任意に制御することが可能となる。ステップ６５で解除信号ＥＮＤを受信すると、ステップ６８に移行して、退避レジスタＢＩＰのフェッチアドレスを出力し、次のＰＵ命令をＦＵ３で取得してＰＵ命令を実行する処理に戻る。
【００３０】
本例のプロセッサ１０においては、ＦＵ３がＶＵ命令をフェッチすると、ＰＵ２にはＰＵ命令としてＮＯＰを供給する。このＶＵ１およびＰＵ２を備えたデータ制御装置（ＶＵＰＵプロセッサ）１０では、プロセッサ１０で実行するアプリケーションの仕様によって様々なＶＵ命令を実装することができるが、ＶＵ命令の如何にかかわらずＰＵ２にはＮＯＰが供給されるので、ＰＵ２の汎用性を失わずに様々な専用回路を備えたＶＵ１と組み合わせることができるようになっている。
【００３１】
このため、ＶＵ１においては、図３（ｂ）に示すように、通常は、まず、ステップ７１でＦＵ３から供給された命令がＶＵ命令であることを確認し、ＶＵ命令であるとすると、ステップ７２でＶＵ命令をデコードする。そして、ステップ７３でＶＵ命令がＰＵ２のリソースを必要とするダイレクトアクセス命令であるか否かを判断する。ダイレクトアクセス命令でなければ、ステップ７８でＶＵ１のリソースだけを用いて処理を行う。一方、ＶＵ命令がダイレクトアクセス命令であると、ステップ７４でアクセス要求ＲＥＱをＰＵ２に発行し、ステップ７５でＰＵ２からのアクノレッジ信号ＡＣＫを待つ。アクノレッジ信号ＡＣＫが来ると、ステップ７６でダイレクトコマンドＣＭＤをＰＵ２に発行しながら、ＰＵ２のリソースとＶＵ１のリソースとを用いた処理を同期させながら実行する。そして、ステップ７７で、ＶＵ命令に規定された処理が終了すると解除信号ＥＮＤをＰＵ２に出力してＰＵ２のリソースを開放する。これらの信号およびコマンドは、ＶＵ１の専用回路として組み込まれている状態遷移論理（ＦＳＭ）などのハードウェアロジックにより出力される。
【００３２】
このように、本例のデータ処理装置であるプロセッサあるいはシステムＬＳＩ１０は、プログラム５を構成するＶＵ命令およびＰＵ命令を配列された順番にＦＵ３でフェッチしてＶＵ１あるいはＰＵ２に供給する。したがって、１つのプログラム５によりＶＵ１およびＰＵ２の処理を適宜制御することが可能であり、同期回路などを設けなくても、プログラム５のレベルでＶＵ１とＰＵ２とにおける処理を、並列処理も含めて、制御することができる。そして、ＶＵ１とＰＵ２との処理を命令コードをフェッチするサイクル、すなわち、クロック単位で制御することができる。また、複数のＶＵ１を有するプロセッサにおいても、それら複数のＶＵ１の並列処理をプログラムレベルでクロック単位で制御することができる。
【００３３】
もちろん、ＶＵ１とＰＵ２との同期が必要な場合は、ＶＵ命令の完了を待ち合わせる同期命令を用意することにより、プログラムレベルで同期させることも可能である。そして、本例のプロセッサ１０においては、ＶＵ命令により、ＰＵ命令とは独立して、ＶＵ１の側からＰＵ２にダイレクトアクセスする同期処理を定義することができる。したがって、ＰＵ命令により構成されるプログラム５のＰＵ２の制御シーケンスを設計しなおしたり、再構成しなくても、アプリケーションの仕様にしたがってＶＵ１を開発あるいは設計するときに、必要なときは適宜、ＰＵ２のリソースを用いたＶＵ１の処理をＶＵ命令として導入することが可能となる。したがって、ＰＵ２とＶＵ１との間のデータ転送時間が現れない処理や、ＰＵ２とＶＵ１のハードウェアリソースを用いた同期的な処理をフレキシブルに導入することが可能となる。そして、そのような処理をＶＵ１で行うために必要なハードウェアを予めＰＵ２に組み込んでおくことにより、ＰＵ２の再設計を行う必要はなく、また、ＰＵ２の汎用性を低下させることもない。そこで、本例のプロセッサ１０においては、ＰＵ２の制御部２０が、ダイレクトアクセス要求ＲＥＱやダイレクトアクセスコマンドＣＭＤなどに対応できるようにすると共に、実行部２３のリソースを開放することができるＶＵＷＤＡＴＡ３１およびＶＵＲＤＡＴＡ３２などのデータパスを実装している。
【００３４】
各々の協調命令についてさらに説明する。図４に、ダイレクトアクセスが要求されるＶＵ命令を実行したときのタイミングチャートを示してある。また、図５および図６に、ダイレクトアクセスを実行したときのデータの流れを示してある。この例では、５クロック目にダイレクトアクセス要求ＲＥＱ（ＶＵＤＰＡＲＥＱ）がＶＵ１からＰＵ２に発行される。このとき、ＰＵ２はフェッチアドレス「１０１ｈ」のＡＤＤ命令による制御信号（ＥＸ＿ＷＢ＿Ｉｎｓｔ）が制御ロジック部２２から実行部２３に出力され、ＰＵ命令デコード・実行制御部２１はＦＵ３からフェッチアドレス「１０２ｈ」のＭＯＶＥ命令を受けている。したがって、ＡＤＤ命令を実行すると共に、６クロック目で、次のＰＵ命令のフェッチアドレス「１０２ｈ」を退避レジスタＢＩＰに格納すると共に、アクノレッジ信号ＡＣＫ（ＶＵＤＰＡＡＣＫ）をＶＵ１に発行する。これにより、ＶＵ１は、７クロック目にダイレクトコマンドＶＵＤＰＡＣＭＤを発行する。
【００３５】
７クロック目に出力されたコマンドＣＭＤ（ＶＵＤＰＡＣＭＤ）はＰＵ２の汎用レジスタのＲ０のデータを読み出す命令であり、これにより８クロック目にＲ０のデータがＶＵＷＤＡＴＡ３１からＶＵ１に供給される。そして、９クロック目に、汎用レジスタのＲ１に書き込む命令と共に、ＶＵ１で処理されたデータがＶＵＲＤＡＴＡ３２からＰＵ２に供給される。
【００３６】
図５に、このダイレクトアクセスの処理のデータの流れの概要を示してある。
ＰＵ２において、汎用レジスタ（ＰＵレジスタ）２５ａおよびセレクタ２５ｂを含む第１の汎用回路２５と、ＰＵ演算器２６ａ、入力レジスタ２６ｂおよび２６ｃ、さらに、セレクタ２６ｄおよび２６ｅを含む第２の汎用回路２６とでは、ダイレクトコマンドＣＭＤにより制御ロジック２２から出力された信号φｅにより、セレクタ２６ｄでＰＵレジスタ２５ａのＲ０レジスタのデータがＶＵＷＤＡＴＡ３１に出力されるように設定される。
【００３７】
一方、ＶＵ１において、ＶＵ演算器１６ａ、セレクタ１６ｂおよび１６ｃを含む第２の専用回路１６では、ＶＵデコード回路１１からの信号によりセレクタ１６ｂがＶＵＷＤＡＴＡ３１を入力とし、セレクタ１６ｃがＶＵレジスタ１５ａのデータを入力として選択するように設定される。そして、ＶＵ演算器１６ａがユーザ定義の演算を行い、１６ビットの結果（必要に応じてフラグ情報）がセレクタ１９を介してＶＵＲＤＡＴＡ３２から出力される。
【００３８】
さらに、ＰＵ２において、汎用レジスタ（ＰＵレジスタ）２５ａおよびセレクタ２５ｂを含む第１の汎用回路２５では、ダイレクトコマンドＣＭＤにより制御ロジック２２から出力された信号φｅによりＶＵＲＤＡＴＡ３２のデータがＰＵレジスタ２５に書き込まれるようにセレクタ２５ｂが設定される。したがって、ＶＵ１においてＰＵ２の汎用レジスタ２５ａのデータを用いて行って演算した結果が、汎用レジスタ２５ａにライトバックされる。したがって、ＰＵ２の汎用レジスタ２５ａをＶＵ１が読み出して演算し、さらにＰＵ２の汎用レジスタ２５ａにライトバックする処理が３クロックで終了する。このため、本例のＶＵＰＵプロセッサ１０においては、ＰＵ２のデータを用いてＶＵ１で処理する際に、ＰＵ２からＶＵ１にデータ転送のオーバーヘッドはなく、そのような処理であってもＶＵ１で高速に実行することができる。
【００３９】
ＶＵ１では、ＶＵ命令により、ＶＵ１からＰＵ２の汎用レジスタ２５ａにデータを入出力する処理に続いて、ＰＵ２のデータＲＡＭ２７ａにデータを入出力する処理が行われる。１０クロック目にデータＲＡＭ２７ａのデータを読み出すコマンドＣＭＤがＰＵ２に発行され、それと共にＶＵＲＤＡＴＡ３２から読み出すデータのアドレスが供給される。そして、１２クロック目にデータＲＡＭ２７ａのデータがＶＵＷＤＡＴＡ３１からＶＵ１に供給され、ＶＵ１で処理される。そして、その結果が１３クロック目にＶＵＲＤＡＴＡ３２に出力されると共に、データＲＡＭ２７ａにデータを書き込むコマンドＣＭＤがＶＵ１からＰＵ２に供給され、データＲＡＭ２７ａにＶＵ１から出力されたデータが記録される。
【００４０】
図６に、このダイレクトアクセスの処理のデータの流れの概要を示してある。
データＲＡＭ２７ａ、アドレスのオフセットを加算する加算器２７ｂ、アドレス入力を選択するセレクタ２７ｃ、およびデータ入力を選択するセレクタ２７ｄを含むＰＵ２の第３の汎用回路２７においては、ダイレクトアクセスコマンドＣＭＤにより制御ロジック部２２から出力される信号φｅにより、セレクタ２７ｃおよび２７ｄがＶＵＲＤＡＴＡ３２からのデータ（アドレス）を入力として選択するように設定され、第２の汎用回路２６のセレクタ２６ｄがデータＲＡＭ２７ａの出力をレジスタ２６ｂを介してＶＵＷＤＡＴＡ３１に出力するように設定される。
【００４１】
ＶＵ１においては、第１の専用回路１５のセレクタ１５ｂがＶＵＷＤＡＴＡ３１を選択してそのデータをＶＵレジスタ１５ａに書き込むように設定される。さらに、ＶＵレジスタ１５ａの出力がセレクタ１９を介してＶＵＲＤＡＴＡ３２に出力するようにセットされており、１０クロック目にはＶＵＲＤＡＴＡ３２にリードアドレスだけが出力され、１３クロック目にはライトアドレスとデータが出力される。
【００４２】
したがって、ＰＵ２のデータＲＡＭ２７ａとＶＵ１のＶＵレジスタ１５ａの間のデータ転送が、ＰＵの汎用レジスタ２５ａさらにはＶＵおよびＰＵの共用のレジスタなどを用いなくても行うことが可能である。したがって、ＶＵ１とＰＵ２の間で、データＲＡＭ２７ａに対してデータを入出力する最小のクロック数でデータを入出力することが可能となり、その処理のために消費するクロックを大幅に削減できる。この際、ＰＵ２がＶＵ１の処理に拘束され、ＰＵ２の処理が進まない状態になるが、ＰＵ２とＶＵ１との間でデータ転送が必要になるとすると、それに伴ってＰＵ２で独自に消費される時間を省くことができるので、結果としてＰＵ２における処理時間も短縮することができる。そして、さらに汎用レジスタ２５ａなどを介してデータ転送する処理も省くことが可能となるので、ＰＵ２の処理効率も大幅に向上する。
【００４３】
このようにして、ダイレクトアクセスを要求するＶＵ命令により実行される処理が、ＰＵ２の汎用レジスタ２５ａとデータＲＡＭ２７ａにそれぞれ入出力する処理であると、それらが終了した１５クロック目にダイレクトアクセス要求信号ＲＥＱが反転して低レベルになる。ダイレクトアクセス要求信号ＲＥＱ（ＶＵＤＰＡＲＥＱ）の反転信号が要求解除信号ＥＮＤ（ＶＵＤＰＡＥＮＤ）になっている。ＰＵ２は、要求解除信号ＥＮＤを受け取ると、１６クロック目にアクノレッジ信号ＡＣＫ（ＶＵＤＰＡＡＣＫ）も反転させて、ＶＵ１の制御から開放されたことをＶＵ１に伝達する。そして、１６クロック目に退避レジスタＢＩＰに格納されていたフェッチアドレス「１０２ｈ」をＦＵ３から出力し、ＶＵ１からのダイレクトアクセス要求により中断していたＰＵ命令による処理を継続して行う。
【００４４】
図７に、ＰＵ２に対するダイレクトアクセス要求が生ずる重要なケースの他の例として、ＰＵ２の演算器をＶＵ１からダイレクトに利用する際のデータの流れを示してある。ＰＵ２は、基本命令実行ユニットであり、ＶＵ１の機能に関わらず一定の機能を提供するようになっている既定義のユニットである。したがって、ＰＵ２の演算器を利用可能とすることにより、それによりカバーできる演算機能についてはＶＵ１のハードウェアリソースを省略することも可能となる。
【００４５】
このため、ＰＵ２の第２の汎用回路２６においては、ＶＵ１から出力されるデータバスＶＵＲＤＡＴＡ３２の０〜１５ビットのデータと、ＶＵＲＤＡＴＡ３２の１６〜３１ビットのデータとを、ＰＵ２の演算器２６ａの入力ポートＡおよびＢにそれぞれアサインし、ＰＵ２の演算器２６ａで演算が実行されるようにデータパスを形成する。さらに、ＰＵ演算器２６ａの出力をＶＵＷＤＡＴＡ３１によりＶＵ１に供給するデータパスを形成する。
【００４６】
これにより、ＶＵ１からＰＵ２の演算器２６ａにデータを入出力することができるデータパスが形成され、ＶＵ１のレジスタ１５ａのデータをＰＵ２の演算器２６ａで演算し、その結果をレジスタ１５ａにライトバックする処理を実行することが可能となる。したがって、ＶＵ１からＰＵ２の演算器２６ａをストレスなく利用できる環境が提供されるので、ＰＵ演算器２６ａの多様な演算機能をＶＵ１から利用することが可能となり、ＶＵ１に実装されるユーザ論理、すなわち専用命令の自由度は大幅に向上する。そして、その自由度の高い専用命令（ＶＵ命令）を、データ転送のためのクロックを消費させずに、高速に実行することができる。したがって、ユーザあるいはアプリケーションで要求される仕様に極めて柔軟に対応できると共に、リアルタイム処理に適した実行速度も高く、低コストでコンパクトなプロセッサあるいはシステムＬＳＩを提供することができる。
【００４７】
このようにＰＵ２の制御部２０に、ＶＵ１からのダイレクトアクセス要求に対応して実行部２３を開放し、ＶＵ１のダイレクトアクセスコマンドで実行部２３を制御することができる機能を設けることにより、ＰＵ２がＦＵ３から供給されたＰＵ命令で動作する第１のモードに加えて、ＶＵ１からの命令に基づきに動作する第２のモードを設けることができる。したがって、第２のモードでは、ＰＵ２のリソースの一部をＶＵ１に開放することが可能となり、ＶＵ１における処理を実行するためのデータパスの一部としてＰＵ２のリソースを組み込める。このため、上記で説明したように、ＶＵ命令としてＰＵ２にダイレクトにアクセスするダイレクトアクセス命令を規定することが可能となり、ＶＵ１とＰＵ２との間のデータ転送をＭＯＶＥ命令なしに行うことが可能となる。また、ＶＵ１の演算器を利用した演算、ＰＵ２の演算器を利用した演算、ＰＵ２のデータＲＡＭへのアクセスがクロックを浪費することなく行えることになる。したがって、汎用機能を備えたＰＵ２をプラットフォームとしてユーザロジックを実現するＶＵ１を実装したプロセッサ（ＶＵＰＵプロセッサ）１０の処理効率を大きく改善することができる。この効果は、本発明を適用しないと、データ転送が頻繁に行われることになる、ＶＵ１における処理が数クロックで終えるような短いユーザ命令（ＶＵ命令）の場合に極めて顕著に効果を発揮することになる。もちろん、データ転送などを目的とした他のユーザ定義の標準的なＶＵ命令を定義しないとうことではなく、ＰＵ２の汎用レジスタ２５ａとＶＵ１のＶＵレジスタ１５ａの間でデータ転送を行うＭＯＶＥ命令なども使用できる。
【００４８】
さらに、ＰＵ２のリソースをＶＵ１で利用できる第２のモードで最も効果が得られる処理は、ＰＵ２の汎用レジスタ２５ａに入出力する処理と、汎用の演算器２６ａを利用する処理と、データＲＡＭ２７ａに入出力する処理であり、本例のＰＵ２には、上述したように、これらの処理に対応したデータ入出力用のデータパスを設けている。これらのデータパスの構成は、上記にて開示した回路に限定されるものではないが、ＰＵ２に標準的に設けておくことにより、ダイレクトアクセス命令をＶＵ命令として利用できるＶＵ１を実装するプロセッサ１０のプラットフォームとしてＰＵ２は機能する。そして、このような構成にしても、ＰＵ２の汎用性が犠牲にされることはなく、ＶＵ１およびＶＵＰＵプロセッサ１０で実現可能な仕様の範囲を拡張することができる。そして、より高いレベルで柔軟性と高速化とを実現しうるプロセッサを提供することができる。
【００４９】
本例においては、ＰＵ２の制御部２０の制御ロジック部２２のレベルでＶＵ１からのダイレクトアクセスコマンドＣＭＤをデコードし実行部２３をＶＵ１の制御下で動くようにしているが、ダイレクトアクセスコマンドＣＭＤをデコードするレベルはこれに限定されるものではない。たとえば、ＦＵ３から供給されるＰＵ命令φｐと同じレベルで、ＶＵ１からＰＵ２にダイレクトアクセスコマンドＣＭＤが供給されても良い。この場合、制御部２０をデコード・実行制御部２１と制御ロジック部２２とに階層化しなくても良いので、ＰＵ２への影響は小さいと思われる。しかしながら、ＦＵ３から供給されたＰＵ命令φｐとダイレクトアクセスコマンドＣＭＤが競合することになるので、より実行部２３に近いレベルで第３の命令φ３と競合している上記の例と比較すると、第２のモードへ移行するタイミングが遅くなる。したがって、ＶＵ１の処理速度を優先し、リアルタイムな処理の効率を向上できることを考えると、本例のように、ＰＵ２の実行部２３にできるだけ近い制御階層でダイレクトアクセスコマンドＣＭＤを処理するアーキテクチャが好ましい。
【００５０】
【発明の効果】
以上に説明したように、上記にて説明したＶＵＰＵプロセッサは、ユーザ仕様などに従い高速化が必要とされる処理を専用回路化して実装することができるＶＵと、エラー処理などの汎用的な機能をサポートし、プログラムにより仕様変更などに対し極めて柔軟に対応することができるＰＵとを備えており、プログラマブルな柔軟性と、専用回路による高速性とを併せもつプロセッサである。そして、ＶＵはユーザ設計が可能であり、ユーザ命令をＶＵ命令として自由に組み込むことができる自由度の高いセミカスタムプロセッサでもある。したがって、アプリケーション専用プロセッサとして高機能のシステムＬＳＩを極めて短期間に低コストで開発および製造することが可能である。
【００５１】
そして、本発明においては、ＶＵ側から直接、ＰＵのレジスタやデータＲＡＭを命令コマンドベースでアクセスすることができるアーキテクチャをＰＵに導入しており、ＶＵ命令として、ＰＵのリソースをＶＵに開放する命令を実装することができる。したがって、ＶＵ主体でデータ処理を構築する場合においては余計なクロックも消費せず、制御も簡便となり、性能向上と開発期間の短縮に極めて効果がある。
【００５２】
すなわち、ＰＵとＶＵとの間のデータ転送をレジスタを経由して行っていたのでは、そのために必ず１クロックは消費し、往復で少なくとも２クロックを余分に消費していた。また、ＰＵ側のリソースで処理を行おうとすれば、ＰＵ命令で実行する必要があり、さらに、ＶＵ側からＰＵ側にデータをいったん移動させる必要もあった。したがって、ＶＵ側でＰＵ側のデータあるいはリソースを用いて処理を行おうとすると処理速度の低下と煩雑な制御手順が伴い、さらに開発効率も非常に悪いものであった。それに対し、本発明のＶＵＰＵプロセッサにおいては、ＶＵとＰＵとの間のデータ転送に必要なオーバーヘッドを実質的になくすことが可能となり、ＶＵにおける処理時間をさらに短縮でき、画像処理やネットワーク処理などのリアルタイム応答性が要求されるアプリケーションにさらに適したプロセッサを提供できる。加えて、ＰＵのリソースがＶＵに開放されることにより、ＰＵの機能をＶＵ命令、すなわち、ユーザ命令の一部として利用することが可能となり、ＶＵのリソースを増大させることなく、さらに自由度の高いＶＵ命令を組み込むことが可能となる。したがって、本発明のデータ処理システムは、さらに高いレベルで柔軟性と高速性とを同時に実現できるプロセッサあるいはシステムＬＳＩを提供可能であり、本発明により、高速ネットワーク、画像処理アプリケーションなどにさらに適したデータ処理装置を提供できる。
【００５３】
そして、このような効果を創生するために、本発明では、ＰＵ側にダイレクトアクセス要求を受付する機能とダイレクトアクセス命令あるいはコマンドを受付のポートあるいは機能を用意し、かつ、ＰＵ側にそれに対応する制御論理を構成することによりプラットフォームなるアーキテクチャを提供できる。そして、そのアーキテクチャを利用しようとする場合は、ＶＵ側にダイレクトアクセス要求信号の生成や命令コマンドの生成を行う機能を用意すれば良い。もし、本発明に係る機能が必要なく、従来のＭＯＶＥ命令によるデータ転送のみで十分であるような場合においては、ＶＵ側は従来どおりの仕様で設計を行えば良いので、ＶＵを設計および開発するユーザの負担が軽減されるものの増加することにはならない。
【図面の簡単な説明】
【図１】本発明に係るデータ処理装置（プロセッサ）の概略構成を示すブロック図である。
【図２】ダイレクトアクセスコマンドの例を示す図である。
【図３】ＰＵおよびＶＵにおける処理の概要を示すフローチャートである。
【図４】ＰＵにダイレクトアクセスするＶＵ命令を実行するときのタイミングチャートである。
【図５】ＶＵからＰＵにダイレクトアクセスする際のデータパスの概要を示す図であり、汎用レジスタに入出力する処理を示す図である。
【図６】ＶＵからＰＵにダイレクトアクセスする際のデータパスの概要を示す図であり、データＲＡＭに入出力する処理を示す図である。
【図７】ＶＵからＰＵにダイレクトアクセスする際のデータパスの概要を示す図であり、汎用演算器に入出力する処理を示す図である。
【符号の説明】
１    専用処理ユニットＶＵ
２    汎用処理ユニットＰＵ
３    フェッチユニットＦＵ
４    コードＲＡＭ
５    プログラム
１０    プロセッサ（データ処理装置）
【図１】
0004865960.tif 000002
【図２】
0004865960.tif 000003
【図３】
0004865960.tif 000004
【図４】
0004865960.tif 000005
【図５】
0004865960.tif 000006
【図６】
0004865960.tif 000007
【図７】
0004865960.tif 000008