(57)【特許請求の範囲】
【請求項１】
専用命令により特定のデータ処理に特化した専用データ処理ユニットと、汎用命令により処理を指定可能な汎用性の汎用データ処理ユニットと、前記専用データ処理ユニットおよび汎用データ処理ユニットに対し前記専用命令および前記汎用命令をそれぞれ供給する命令発行ユニットとを有するデータ処理装置の開発方法であって、
前記命令発行ユニットがプログラマブルであり、コードＲＡＭおよびフェッチユニットを含み、前記フェッチユニットは前記コードＲＡＭに格納されたプログラムからフェッチした前記専用命令および前記汎用命令をデコードした制御信号を前記専用データ処理ユニットおよび前記汎用データ処理ユニットにそれぞれ供給するデコード回路を含み、前記プログラムによりアプリケーション用の前記データ処理装置の動作を実証する第１の工程と、
前記命令発行ユニットが前記コードＲＡＭおよび前記フェッチユニットに置き換わるハードウェアロジック回路を含み、前記ハードウェアロジック回路に、前記デコード回路が前記プログラムの前記専用命令および前記汎用命令をそれぞれデコードした制御信号と等価な信号を前記専用データ処理ユニットおよび前記汎用データ処理ユニットにそれぞれ出力させ、前記命令発行ユニットを前記アプリケーション用に特化させる第２の工程とを有する開発方法。
【請求項２】
専用命令により特定のデータ処理に特化した専用データ処理ユニットと、汎用命令により処理を指定可能な汎用性の汎用データ処理ユニットと、前記専用データ処理ユニットおよび汎用データ処理ユニットに対し前記専用命令および汎用命令をそれぞれ供給する命令発行ユニットとを有するデータ処理装置の開発方法であって、
アプリケーションの仕様の一部を実装する前記専用データ処理ユニット、および、前記専用命令および汎用命令により前記仕様を実行するプログラムを開発する第１の最適化段階と、
前記命令発行ユニットがコードＲＡＭおよびフェッチユニットを含み、前記フェッチユニットは前記コードＲＡＭに格納されたプログラムからフェッチした前記専用命令および前記汎用命令をデコードした制御信号を前記専用データ処理ユニットおよび前記汎用データ処理ユニットにそれぞれ供給するデコード回路を含むプログラマブルな前記命令発行ユニットを有する前記データ処理装置により前記プログラムを最適化する第２の最適化段階と、
前記第２の最適化段階の前記命令発行ユニットが前記プログラム中の前記専用命令および汎用命令をデコードした制御信号と等価な信号を前記専用データ処理および前記汎用処理ユニットにそれぞれ出力するハードウェアロジック回路に、前記コードＲＡＭおよびフェッチユニットを置き換えた前記命令発行ユニットを備えた前記データ処理装置を開発する第３の最適化段階とを有する開発方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、専用回路を備えたデータ処理装置に関するものである。
【０００２】
【従来の技術】
ネットワークの高速・大容量化と画像処理、特にデータ圧縮・伸張処理などのアプリケーションを実行する際に処理装置に対する要求に代表されるようなリアルタイムな操作あるいは処理を要求するアプリケーションの多様化は止まる所をしらないといっても過言ではない。このため、高速化するパソコン・ゲーム機などに使用されるプロセッサは極めて高いクロック周波数で動作するようになっており、複数のアプリケーションを高速で処理する能力を持つに至っている。しかしながら、これらのプロセッサは、汎用的な特徴をもつがゆえに、リアルタイムな処理が要求されるものについてすべて対応できるとは限らない。これに対し、ハードワイヤードロジックなどにより特定の処理に特化した専用回路は、リアルタイム応答を要求される処理に対して、その様にデザインすることが可能である。したがって、リアルタイム応答への要求が高いアプリケーションの分野では、データ処理が一クロックでも遅れたら使い物にならなくなるので、専用化してでも応答性を確保する必要がある。
【０００３】
【発明が解決しようとする課題】
したがって、通信・ネットワークや画像処理においては、このような専用化された回路を用いて制御装置を構成する要求が顕著である。しかしながら、この種のアプリケーションの世界では、業界標準仕様が重要であり、この標準対応でなければマーケットに参入できない。このため、各社とも仕様の決定に影響力を及ぼそうとし、かつ、仕様が決定されたらいち早くそのシステムを商品化して市場に投入することがシェアの確保に繋がる。したがって、設計、特にシステムＬＳＩの設計期間を短縮すると共に、その後の仕様変更に対する柔軟性が要求される。専用回路は、設計および検証に係る期間が長く、また、仕様変更に対する柔軟性はほとんどない。したがって、性能的には専用回路が要望されるものの、システムＬＳＩが設計および開発される環境を考慮すると専用回路で対応することが難しい。かといって、上述したように、汎用プロセッサでは、リアルタイム応答性が不十分なことが多い。
【０００４】
このような背景にあって、特願平１１−３０７６８４号に開示されている技術がある。ここでは、汎用プロセッサと同様あるいは小さな規模で汎用処理が可能な汎用データ処理ユニット（ＰＵ）と、特定のデータ処理に特化した専用データ処理ユニット（ＶＵ）とを有するデータ処理装置を提供している。このデータ処理装置では、ＶＵを稼動する専用命令を汎用命令と共にデータ処理装置のプログラムに命令セットとして取り込み、リアルタイム応答が要求される処理についてはＶＵをコールする構成が可能であり、仕様変更などに対してはプログラムレベルあるいはＰＵの処理によって対応できるという特徴を備えている。
【０００５】
さらに、プログラムをフェッチするフェッチユニット（ＦＵ）およびデコーダと、基本的な命令セットを備えたＰＵなどからなる基本的なアーキテクチャを用意し、それによって稼動されるＶＵをアプリケーション毎に換えることができる。したがって、設計および開発に費やされる期間も短縮することが可能であり、実績のある専用回路をＶＵとして取り込むこともできる。このため、リアルタイム性が要求されるアプリケーションに対応するシステムを短期間で開発することが可能であり、さらに、その後の設計変更などにも柔軟に対応することができる。
【０００６】
このように、汎用データ処理ユニット（ＰＵ）と、専用データ処理ユニット（ＶＵ）を採用したアーキテクチャは、リアルタイムな応答性を要求されるアプリケーションに適したシステムを短期間に開発でき、その後の変更にも対応できるものである。そして、アプリケーションに特化した命令を組み込める設計方式として、アプリケーションの仕様に対して最適なプロセッサを開発する方式として用いることも可能である。さらに、データ処理装置として、特にシステムＬＳＩとして高性能なもの、たとえば、低消費電力で、低コストであり、さらにコンパクトなものにする要求は常にある。そこで、本願においては、このアーキテクチャを一歩進め、リアルタイム応答性および柔軟性を犠牲にすることなく、消費電力を低減し、占有面積を小さくすることができるデータ処理装置を提供することも目的としている。
【０００７】
【課題を解決するための手段】
上記のようなシステムにおいて、リアルタイム性を犠牲にすることなく、消費電力を低減し、占有面積を小さくする方法として、汎用的な部分、すなわち、ＰＵなどをすべて専用回路化することが考えられる。これにより、汎用性のある構成をすべて専用回路化できるので、回路構成およびレジスタなどの不使用部分の無駄を省き、回路などを目的に合わせてシンプルにできるので、回路規模を小さくすることができ、消費電力および占有面積の低減を実現できる。しかしながら、専用回路化することにより柔軟性はなくなり、変更などに対応することが困難になる。
【０００８】
仕様が確定したり、システムが成熟することにより変更あるいは修正が必要なくなった段階、あるいは、変更あるいは修正よりも消費電力を低減することなどのほうが優先する段階になると、柔軟性を犠牲にすることは可能であるとしても、ＰＵなどの部分を専用回路化するために再び回路設計、検証などの作業が必要となる。したがって、多大な時間と費用を費やすことになるので、専用回路化するメリットは薄れてしまう。
【０００９】
そこで、本発明においては、ＶＵおよびＰＵの構成は変えずに、これらに命令を発行している部分だけを専用回路化することにより、プログラムをフェッチし、デコードしている機能の部分をコンパクトにして消費電量を低減し、また、占有面積を低減できるようにしている。すなわち、データ処理装置は、専用命令により特定のデータ処理に特化した少なくとも１つの専用データ処理ユニットと、汎用命令により処理を指定可能な汎用性の汎用データ処理ユニットと、専用データ処理ユニットおよび汎用データ処理ユニットに対し専用命令および汎用命令を供給する命令発行ユニットとを有し、この命令発行ユニットをアプリケーションに特化した構成で実現している。
【００１０】
命令発行ユニットをアプリケーションに特化した構成、すなわち、専用回路化、あるいはハードウェアロジック化することにより、柔軟性は上記と同様に減少する。しかしながら、命令発行ユニットだけを専用回路化することにより、プログラマブルな構成からの設計および検証などに費やされる時間および費用を軽減できる。さらに、プログラム制御したときのデータ処理装置の機能は検証されているので、データ処理装置全体の設計をし直したり、検証し直したりする必要はなく、プログラムをデコードした状態を再現できるように命令発行ユニットを専用回路化すればよい。したがって、初期にプログラム開発および検証などで得た過去の資産を継続して活かすことが可能であり、短期間で信頼性が高く、さらにコンパクトで低消費電力のデータ処理装置を提供することができる。
【００１１】
すなわち、本発明においては、専用データ処理ユニットと、汎用データ処理ユニットと、命令発行ユニットとを有するデータ処理装置の開発方法であって、命令発行ユニットがプログラマブルであり、コードＲＡＭおよびフェッチユニットを含み、フェッチユニットはコードＲＡＭに格納されたプログラムからフェッチした専用命令および汎用命令をデコードした制御信号を専用データ処理ユニットおよび汎用処理ユニットにそれぞれ供給するデコード回路を含み、プログラムによりアプリケーション用のデータ処理装置の動作を実証する第１の工程と、命令発行ユニットがコードＲＡＭおよびフェッチユニットに置き換わる組み合わせ回路を含み、組み合わせ回路に、デコード回路がプログラムの専用命令および汎用命令をそれぞれをデコードした制御信号と等価な信号を専用データ処理ユニットおよび汎用データ処理ユニットにそれぞれ出力させ、命令発行ユニットをアプリケーション用に特化させる第２の工程とを有する開発方法を提供する。
【００１２】
プログラマブルであった命令発行ユニットの部分を専用回路化する１つの適当な方法は、予めセットされた制御信号をハードウェア的に順次出力することができるシーケンサ方式である。また、検証済みの専用データ処理ユニットおよび汎用データ処理ユニットの資産をそのまま用いるには、プログラマブルな命令発行ユニットとのインタフェースを同一にすることが望ましく、そのためには、命令発行ユニットは、プログラムをデコードした制御コードと等価な信号で専用命令および汎用命令を発行するようにすることが有効である。すなわち、開発方法の第２の工程において、第１の工程の命令発行ユニットがプログラム中の専用命令および汎用命令をデコードした制御信号と等価な信号で専用命令および汎用命令を発行するように、アプリケーションに特化した命令発行ユニットを作成あるいは開発することが有効である。
【００１３】
したがって、本発明においては、専用データ処理ユニットと、汎用データ処理ユニットと、命令発行ユニットとを有するデータ処理装置を開発する際に、まず、アプリケーションの仕様の一部を実装する専用データ処理ユニット、および、専用命令および汎用命令により仕様を実行するプログラムを開発する第１の最適化段階と、プログラマブルな命令発行ユニットを有するデータ処理装置によりプログラムを最適化する第２の最適化段階とを経た後に、これら第１および第２の最適化段階の資産を活かし、ハードウェアロジック回路を用いた命令発行ユニットを備えたデータ処理装置を開発する第３の最適化段階を実行することができる。
【００１４】
さらに、専用命令を専用データ処理ユニットに出力するときは、汎用データ処理ユニットに対しｎｏｐ命令を出力するようにすることで、シーケンシャルな流れのプログラムにより専用データ処理ユニットおよび汎用データ処理ユニットを制御できるが、命令発行ユニットを専用回路化したときも、同様のタイミングでｎｏｐ命令を汎用データ処理ユニットに出力することにより検証済みの性能を維持することができる。
【００１５】
【発明の実施の形態】
以下に図面を参照しながら本発明についてさらに説明する。図１に、特定の処理に特化した専用データ処理ユニット（専用命令実行ユニット、以降ではＶＵ）１と、汎用的な構成の汎用データ処理ユニット（汎用命令実行ユニットあるいはプロセスユニット、以降ではＰＵ）２とを備えたデータ処理装置（プロセッサ）１０であって、プログラマブルなプロセッサの概略構成を示してある。このプロセッサ１０は、ＶＵ１およびＰＵ２にデコードされた制御信号を提供する命令発行ユニット３を備えている。命令発行ユニット（ディスパッチユニット、以降ではＤＵ）３は、実行形式のプログラムコード（マイクロプログラムコード）を内蔵したコードＲＡＭ４と、このコードＲＡＭ４から命令をフェッチするフェッチユニット５とを備えている。フェッチユニット５は、前の命令あるいはステートレジスタ６の状態、割り込み信号φｉなどによって決まる所定のコードＲＡＭ４の所定のアドレスから命令をフェッチするフェッチ部７と、フェッチされた専用命令あるいは汎用命令（一般命令）をデコードしてそれぞれを専用命令をデコードした制御信号（デコーデド・コントロール・シグナル；Decoded Control Signal）φｖあるいは汎用命令をデコードした制御信号（デコーデド・コントロール・シグナル；Decoded Control Signal）φｐとしてＶＵ１あるいはＰＵ２に供給するデコード回路８とを備えている。さらに、ＰＵ２からは実行状態を示すステータス信号（Exec unit Status Signal）φｓが返され、ＰＵ２およびＶＵ１の状態がステートレジスタ(状態レジスタ)６に反映されるようになっている。
【００１６】
ＰＵ２は、汎用レジスタ、フラグレジスタおよび演算ユニット（ＡＬＵ）などから構成される汎用性の高い実行ユニット（ＥＵ）９と、この実行ユニット９で処理を行う際の一時的な記憶領域となるデータＲＡＭ１２とを備えている。上述した命令発行ユニットＤＵ３および汎用データ処理ユニットＰＵ２を１組の構成単位としてみると、コードＲＡＭ４、ＦＵ５および実行ユニット９を有する構成であり、概略構成は、汎用的なプロセスユニットと同様の構成となる。したがって、ＤＵ３およびＰＵ２をプロセッサユニット１１として見ることも可能であり、このプロセッサユニット１１からＶＵ１を制御するシステムあるいは設計思想でも本例のプロセッサ１０を構成あるいは設計することができる。
【００１７】
ＤＵ３あるいはプロセッサユニット１１からの専用命令φｖを実行する専用データ処理ユニットＶＵ１は、ＤＵ３が供給する命令がＶ命令φｖであるか、およびそれが自己のＶＵ１を起動する命令であるかなどデコードするユニット１３と、予め特定のデータ処理を行うように制御信号をハードウェア的に出力するＦＳＭ（Finite State Machine、ファイナイトステートマシン）１４と、このＦＳＭ１４からの制御信号に従って特定のデータ処理を行うようにデザインされたデータパス部１５と、ＰＵ２とのインタフェースをとるインタフェースレジスタ１６とを備えている。ＶＵ１の内部状態はインタフェースレジスタ１６を介してＰＵ２で参照でき、また、データパス部１５で処理された結果はＰＵ２に供給され、ＰＵ２ではその結果を利用した処理が行われる。ＦＳＭ１４は、専用回路をハードウェアシーケンス制御方式で実現するためのものであり、レジスタに状態を持ち、その状態に応じて制御信号を出力する有限状態マシンである。状態の遷移は、現在の状態と入力信号から組合せ回路で決定される。
【００１８】
図１に示したプロセッサ１０では、コードＲＡＭ４に、汎用命令（Ｐ命令）および専用命令（Ｖ命令）を含んだプログラムが記憶されており、それがＦＵ５でフェッチされ、デコードされた制御信号φｐまたはφｖとして命令発行ユニットＤＵ３から出力される。ＶＵ１は、デコードユニット１３で制御信号φｖを判別して稼動する。また、複数のＶＵ１を備えている場合は、これらの制御信号φｐおよびφｖから、自己のＶＵ１を起動する専用命令に該当する制御信号φｖを判別し、それがＦＵ５から供給されるとＶＵ１は稼動する。一方、ＰＵ２には、汎用命令がデコードされた制御信号φｐだけが供給されるようになっており、Ｖ命令をデコードしたＰＵ２では実行できない命令はＰＵ２には発行されないようになっている。その代わりに、実行を伴わないｎｏｐ命令を示す制御信号が発行され、ＰＵ２の処理はスキップされる。Ｖ命令をデコードした制御信号を発行する代わりにｎｏｐ命令を発行することにより、ＰＵ２はＶ命令あるいはそれをデコードした制御信号に対処する必要がない。ＶＵ１は、アプリケーションなどによって変更されるものであり、ＶＵ１に指示を出す専用命令もアプリケーションによって変わることが多い。ＶＵ１は、アプリケーションに特化した専用回路であり、Ｖ命令をデコードした制御信号を解釈するように設計することは容易である。一方、ＰＵ２は、ｎｏｐ命令が出力されることにより、ＶＵ１に特化した命令に対処する必要がなく、基本命令あるいは汎用命令を解釈して実行できる機能があればよく、汎用性を犠牲にすることなく様々なアプリケーションに対応したＶＵ１と共存し、これらを制御したり、その演算結果を用いて処理を行うことができる。
【００１９】
このように、図１に示したプロセッサ１０は、先に説明した、リアルタイム応答を実現できる専用回路ＶＵ１と、汎用性があるプロセス回路ＰＵ２とを有するものであり、リアルタイム応答性を犠牲にすることなく、設計および開発期間を短縮でき、さらに、その後の変更や修正にも柔軟に対処できるものである。専用回路ＶＵ１は、１つに限定されることはない。アプリケーションで要求される専用処理を処理できるように複数の専用回路ＶＵ１を用意し、それぞれの専用回路ＶＵ１を稼動する複数の専用命令をプログラムコードに含めることが可能である。
【００２０】
図２に、本発明にかかるプロセッサ２０の概略構成を示してある。このプロセッサ２０は、図１に示したプロセッサ１０と同様に、特定の処理に特化した専用データ処理ユニット（ＶＵ）１と、汎用的な構成の汎用データ処理ユニット（ＰＵ）２とを備えたデータ処理装置（プロセッサ）２０であって、これらの構成は図１に示したプログラマブルなプロセッサ１０と同じ構成である。本例のプロセッサ２０も命令発行ユニット（ＤＵ）２１を備えており、本例のＤＵ２１は、組み合わせ回路（ＦＳＭ）２２で構成され、ハードウェアシーケンス制御が採用されている。この組み合わせ回路２２は、状態の遷移が現在の状態を示すステートレジスタ２３の状態と、割り込み信号φｉ、ＰＵ２からのステータス信号φｓなどの入力信号の組合せで決定され、それに応じて制御信号φｐおよびφｖが出力される専用回路である。
【００２１】
本例のＤＵ２１の組み合わせ回路２２は、状態の遷移によって出力される汎用命令に対応する制御信号φｐ、および専用命令に対応する制御信号φｖが、上記のプログラマブルなＤＵ３で供給される制御信号と等価な信号となっている。すなわち、プログラマブルなＤＵ３でプログラム中のＰ命令あるいはＶ命令をデコードした制御信号と等価な信号になっており、ＶＵ１およびＰＵ２と、ＤＵ２１とのインタフェースは、プログラマブルなＤＵ３とまったく同一となっている。このため、本例のプロセッサ２０においても、ＤＵ２１と、ＰＵ２との組み合わせをシーケンサ化されたプロセスユニット２５として設計することも可能であり、ＤＵ２１がシーケンサ化されたプロセスユニット２５と、プログラマブルなプロセッサ１０で採用したものと同じＶＵ１との組み合わせによって本例のプロセッサ２０を構成することも可能である。
【００２２】
さらに、本例のＤＵ２１は、ＶＵ１およびＰＵ２とのインタフェースおよび制御信号φｐおよびφｖを発行するタイミングなどをプログラマブルなＤＵ３と同一に処理できるように、Ｖ命令の制御信号φｖが発行されるときは、ＰＵ２にｎｏｐ命令の制御信号が出力されるようにしている。図３に、そのインタフェース回路２４の一例を示してある。この例では、組み合わせ回路２２からＶ命令である制御信号（デコーデド・コントロール・シグナル；Decoded Control Signal）φｖと汎用命令である制御信号（デコーデド・コントロール・シグナル；Decoded Control Signal）φｐが状態の遷移に応じて順次出力され、それらはＶＵ１に供給され、ＶＵ１のデコードユニット１３がそれを解釈する。一方、制御信号φｖおよびφｐはインタフェース回路２４のセレクタ２７にも入力され、このセレクタ２７にはｎｏｐ命令の制御信号φｎも入力される。そして、組み合わせ回路２１からは、出力されている命令がＶ命令かＰ命令かを示すＶＵ／ＰＵ選択信号φｊが出力され、それによってセレクタ２７がＰ命令の制御信号φｐかｎｏｐ命令の制御信号φｎを選択してＰＵ２へ供給する。
【００２３】
したがって、本例のプロセッサ２０においても、ＰＵ２へは専用命令のデコード信号φｖが供給されることはなく、ＰＵ２は汎用の一般命令を解釈して動作する機能だけで構成することができる。そして、Ｖ命令が供給されるタイミングではｎｏｐ命令がＰＵ２に供給されるようになっているので、命令発行ユニットＤＵ２１としては、Ｐ命令とＶ命令を状態遷移に応じて所定の順番で出力あるいは供給することが可能である。このため、ＤＵ２１では、Ｐ命令とＶ命令とを別々の異なるＦＳＭで取り扱い、並列処理するためにタイミングを合わせて制御するような複雑な構成は不要であり、１つのＦＳＭでシーケンス制御することにより、プロセッサ２０としては、ＶＵ１とＰＵ２とを並列で制御することが可能となる。そして、ＶＵ１とＰＵ２とを並列で制御するタイミングなどの調整は、状態の遷移に応じて出力される制御命令φｖおよびφｐの順番によって行うことができるので、極めてシンプルな構成でありながら、ＶＵ１とＰＵ２との並列処理の調整あるいは調停を組み合わせ回路２２が制御命令を出力するタイミング、すなわち、クロック単位で厳密に制御することが可能である。
【００２４】
このように本例のプロセッサ２０は、特定の処理に特化し、リアルタイム応答性能も高い専用回路によるＶＵ１と、汎用処理に適し、柔軟な制御が可能なＰＵ２とを備え、これらＶＵ１とＰＵ２とを並列に駆動して処理を実行するプロセッサであり、リアルタイム応答性を犠牲にせずに汎用処理との並列度を上げることができ、画像処理あるいはゲームのアプリケーションで重要な割り込み信号φｉに対応する制御などが組み込みやすいプロセッサとなっている。そして、これらＶＵ１およびＰＵ２に制御信号φｖおよびφｐを出力するＤＵ２１がシーケンサ制御方式で専用回路化されている。このため、プログラマブルな命令発行ユニットＤＵ３がコードＲＡＭ、フェッチ部およびデコード回路などを備えているのに対し、専用回路化されている命令発行ユニット２１は、ほとんど組み合わせ回路だけで構成することが可能である。したがって、プロセッサ全体をコンパクトに設計することが可能となり、消費電力を低減することができる。さらに、製造コストを抑えることも可能となる。
【００２５】
しかしながら、専用回路化することにより、仕様の変更などに対処することは難しくなる。したがって、リアルタイム応答が要求される特定のアプリケーションの処理を目的としてＶＵを用いたプロセッサを開発する初期段階で本例のプロセッサ２０を採用することは難しい。このため、第１の工程として、プログラマブルなＤＵ３を搭載したプロセッサ１０を使用してある程度仕様が固まった後に、第２の工程として、本例のプロセッサ２０は、変更がほとんどない状態になった段階で採用される。
【００２６】
即ち、プログラマブルなＤＵにより制御されるＶＵおよびＰＵを備えたプロセッサ（ＶＵＰＵ方式と呼んでいる）では、特殊な演算を専用命令化して専用命令（ＶＵ命令あるいはＶ命令）としてＰＵからコールする形式を採る。従って、Ｖ命令をコールする前後は汎用命令（ＰＵ命令あるいはＰ命令）列となる訳であり、ＶＵが確定した後でも汎用命令であるＰ命令の組み合わせは変更できる。例えば、専用命令（変数を掛けて、掛けて、割って、余りを算出する、といった内容）そのものの仕様は変化しなくても、その専用命令をコールする条件が変わった場合には、Ｐ命令あるいはＰ命令とＶ命令の順番をプログラムにて変更し、呼び出し条件を柔軟に変更することができる。専用命令による処理内容が変わるとＶＵのアーキテクチャにも影響を与えることになるが、専用命令そのものの仕様は変化せず、その適用条件（制御状況）が変わるということはよくあるケースだからである。したがって、プロセッサを開発する第１の段階（第１の工程）では、プログラマブルなＤＵ３を備えているプロセッサは非常に有効である。
【００２７】
しかしながら、全体の仕様が固まってもう変更が見込まれない場合には、もはや、ＰＵが柔軟である必要がなくなり、ＰＵを固定化することが望ましい状態となる。即ち、ソフトウェアでの変更可能である必要が無くなるのである。仕様の変更に対処できる機構がもはや余計なコストあるいは経済的および製品的なディメリットになる可能性があるからである。特にソフトウェアを搭載しているコードＲＡＭが面積と消費電力の観点から余剰なコストとなってしまうのである。
【００２８】
したがって、本例では、第２の段階（第２の工程）として、命令発行ユニットＤＵの単位でハードウェア化している。これに対し、プロセッサ全体を回路構成から見直してハードウェア化することもプロセッサをハードウェア化する１つの方法である。プロセッサ全体の回路構成などを見直してハードウェア化することにより、プロセッサ全体が処理対象のアプリケーションに対し最適化されるので、そのようなプロセッサが製造されたときは、経済的および性能的な効果が非常に大きい。しかしながら、プログラマブルなＶＵＰＵプロセッサを開発および使用してきた間の知識的あるいは経験的な資源を有効に活かすことが難しい。そこで、本例のプロセッサ２０は、第２の工程として、プログラマブルなＶＵＰＵで蓄積された様々な資源を有効に活用することができ、ハードウェア化された信頼性の高いＶＵＰＵを短期間に開発できる方法としてＤＵの単位でハードウェア化する方法を採用している。
【００２９】
図４に基づき、さらに詳細に説明する。図４（ａ）に示すＣ言語で記述されたプログラム３１を実行するプロセッサをＶＵＰＵ方式で実現する場合、そのプログラム３１はコンパイラでアセンブラに変換されて、図４（ｂ）に示す実行形式（ＰＵプログラムコード）３２となる。この際、高速性あるいはリアルタイム性を確保したい部分はあらかじめ人手また自動変換により、Ｃソースコード３１のその部分３１ａを専用ハードウェア、すなわちＶＵ１に置き換える作業を行う。実際に設計する際は、人手あるいは自動により論理設計段階でＣソースコードからＲＴＬモデルに変換しておき、そのＲＴＬを実行あるいは実現する論理回路を、図４（ｂ）に示すＶＵ１として設計および開発する。そして、そのＶＵを稼動する命令を専用命令（Ｖ命令）として用意し、プログラム中でその専用命令をコールする形となる。従って、ＰＵプログラムコード３２のアセンブラ記述の中には専用命令（本例ではＶ−ＯＰ）とその他のＰ命令が記述されていることになる。
【００３０】
さらに具体的に説明する。図４（ａ）のＣプログラム３１のｆｏｒ文内でｆ１からｆ３なる機能ファンクション（加減算等の処理）を行っており、このｆｏｒ文を一専用命令で実行可能とする場合には、この部分３１ａを対象とし、これら機能ファンクションを行うデータパス部（インタフェース・レジスタＶＲを含む専用回路）１５と、このデータパス部１５によりプログラムの一部３１ａの処理を順番で実行するＦＳＭ１４とがＶＵ部として必要となり、これらがハードウェアロジックとして実現される。そして、ＦＳＭ１４を起動するＶ命令がＶ−ＯＰとして定義され、図４（ｂ）に示すＰＵ用のアセンブラプログラム３２に埋め込んだ形態となる。したがって、開発の第１の段階としては、このプログラム３２により、図１に示したプログラマブルなＶＵＰＵプロセッサ１０を制御することができる。
【００３１】
プログラマブルなＶＵＰＵプロセッサ１０は、このようにしてＶ命令が埋め込まれた形のアセンブラプログラム３２により、仕様の変更がＶ命令に及ばない場合にはＰ命令のみの追加・変更・削除で対応できるので非常に便利である。したがって、ＶＵＰＵプロセッサ１０を実際にシステムに組み込みアプリケーションを処理しながら仕様の追加、変更などを行うことができる。先にＣプログラムをプログラマブルなＶＵＰＵプロセッサ用に適応した段階を第１の最適化とすると、ＰＵ用のアセンブラプログラム３２を実システムに使用してブラッシュアップする段階は第２の最適化と呼ぶことができる。
【００３２】
そして、実システムに適用して試用あるいは開発段階が終了すると、その段階でほぼ第２の最適化も終了するので、いったん仕様がフィックスした状態となる。したがって、プログラマブルな仕様は不要となり、上述したようにプログラムコードＲＡＭなどの構成は、第２の最適化が終了したプロセッサにおいては余計なシステムとなる。
【００３３】
このため、本例では図４（ｃ）に示すように、アセンブラプログラム３２の各ステップを状態に割り付け、シーケンサ化し、それを組み合わせ回路２２で実現することにより、ＶＵＰＵプロセッサ１０をハードウェア的にも最適化し、経済的なプロセッサ２０として提供するようにしている。この段階を第３の最適化と呼ぶことができる。本例では、組み合わせ回路２２、すなわち、シーケンサの入力はプロセスユニット２５に対する割り込み信号φｉとＰＵ２のステータス信号φｓであり、ステータス信号φｓはＰＵ（ＰＵ実行ユニット）のファシリティである汎用レジスタ・フラグレジスタ・ＡＬＵなどの状態を伝える信号である。さらに、組み合わせ回路２２の出力は、プログラマブルなＶＵＰＵ１０において命令発行ユニットＤＵ３から供給される制御信号と同じ、すなわち、プログラムがデコードされた制御信号としている。したがって、第３の最適化を行うときに、ＰＵ２の構成はもちろんＶＵ１の構成を変更する必要がなく、命令発行ユニットＤＵの機能だけをハードウェアに置き換えることができる。このため、プロセッサ全体を再設計および検証することなく、専用回路化されたＤＵ２１の機能が確認できれば、プロセッサ２０としては実証済みの信頼性の高いものを提供することができる。その一方で、プログラマブルなＶＵＰＵをハードウェア的に最適化するときに占有面積および消費電力的にメリットの大きな命令発行する部分をコンパクトにすることができるので、最適化のメリットも大きい。
【００３４】
すなわち、本例の、シーケンサ化されたＶＵＰＵプロセッサ２０においては、プログラマブルなＶＵＰＵプロセッサ１０のＰＵ部のフェッチユニットに係る信号と生成されたシーケンサの信号とを置換することにより、シーケンサ化の際の追加検証が極めて少量ですむ。さらに、シーケンサ化の際に、ＰＵ２のすべての汎用レジスタを使用していないアセンブラコードであれば、未使用の汎用レジスタはＰＵ２から削除することはＰＵ２のハードウェアをそれほど大きく変更しないで行うことも可能である。この結果、アセンブラコードを搭載するＲＡＭが削除できるのみならず、従来は未使用のまま搭載されていた汎用レジスタも、そのアセンブラコードをシーケンサ化する際にアセンブラコードの固定化理由により削除することができる。そして、置換されるシーケンサの外部信号は、プログラマブルなＶＵＰＵプロセッサ１０のフェッチユニット５に係る信号においてデコードされた制御信号φｖおよびφｐとＰＵ２からのステータス信号φｓの部分集合となり、最大で一致する特徴を有する。
【００３５】
このように、本例のプロセッサ２０では、命令発行ユニットＤＵを専用回路化し、さらに、ＤＵとＶＵおよびＰＵとのインタフェースはプログラマブルなＶＵＰＵと同じにしてある。このため、Ｃ言語からプログラマブルなＶＵＰＵに最適化した第１の最適化段階の資産と、プログラマブルなＶＵＰＵを実システムなどに適応して最適化した第２の最適化段階の資産を有効に活用し、プログラマブルなＶＵＰＵを専用回路化する第３の段階の最適化（第３の最適化段階）を行うことができる。したがって、コンパクトで低消費電力であり、さらに、リアルタイム応答性に優れた、アプリケーションに特化した専用回路化されたプロセッサを短期間に開発することができ、さらに、信頼性の高いプロセッサを提供することができる。
【００３６】
さらに、本例のプロセッサ２０は、上述したように、オリジナルのＣプログラムを実行するためにＶＵＰＵプロセッサを適用するという第１の最適化に加えて、プログラマブルなＶＵＰＵプロセッサによる実システムに対応した第２の最適化を経た状態で、第３の最適化段階として専用回路化されている。このため、Ｃプログラムを実現するプロセッサを専用回路により直接設計および開発する方法と比較すると、低コストで短期間に信頼性の高いプロセッサを開発することができる。
【００３７】
上述したように専用回路化されたプロセッサは仕様変更などに柔軟に対応できないので、直に専用回路によるプロセッサを開発した場合は、そのような仕様変更に対応できないか、あるいは膨大な時間をかけて再設計するしかない。これに対し、本例のプロセッサ２０は、仕様が決定されるまではプログラマブルな状態で対応することが可能である。さらに、プログラマブルなＶＵＰＵプロセッサはリアルタイム応答性があるので、実際に製品として市場に供給することも可能であり、短期間にアプリケーション用のＬＳＩとして実際にシステムに組み込むことができる。一方、プログラマブルなだけのプロセッサで仕様を決定すると、それを専用回路化した段階で、リアルタイム応答性などが大きく異なってしまい、その段階でさらに仕様変更などが生ずる。これに対し、本例のプロセッサ２０はプログラマブルなＶＵＰＵプロセッサ１０をベースにしたものであり、プログラマブルな段階でリアルタイム応答性があり、実際のデータ処理の性能はプログラマブルであろうとなかろうと等価なもので仕様を決定できる。このため、上述したように、本発明に係る専用回路化されたＶＵＰＵプロセッサ２０は、短期間で開発できると共に、信頼性が高く、開発途上の仕様変更などに柔軟に対応でき、専用回路化された後は、コンパクトで低消費電力のプロセッサにすることができる。また、プログラマブルなＶＵＰＵとプロセッサとしては完全な互換性を担保できるので、シーケンス方式に変更することにより市場の優位性は損なわれることはなく、低コスト化および低消費電力化できるので、さらに優位なプロセッサとして提供することができる。
【００３８】
なお、ＶＵＰＵプロセッサでＣプログラムの処理を行う場合、プログラムコード量が膨大であるときは、プログラマブルなＤＵを実現するゲート数がそれほど増えないのに対し、シーケンサを実現する回路規模が大きくなってしまうので、ＤＵをシーケンサ化するメリットは小さくなる。その境界は一概にはいえないが、図５に示すように、プログラマブルなＤＵ３を実現するゲート数と、シーケンサ（組み込み回路）によるＤＵ２１を実現するゲート数との概略を比較すると、ＰＵのプログラムコードが数百ステップ付近である。したがって、本発明に係る専用回路化されたＶＵＰＵプロセッサ２０は、数百ステップ以下のプログラムコードで処理を実行できるアプリケーションに特に適しており、多大な効果を得ることができる。
【００３９】
また、本例ではＤＵをシーケンサ方式で実現しているが、ワイヤードロジックあるいはゲートロジックなどの異なる形式で専用回路化することも可能である。しかしながら、プログラムコードを専用回路化する最も適当な方式の１つはシーケンサ方式である。さらに、本例のＶＵＰＵ方式のプロセッサは、プログラム制御によりリアルタイム応答性を確保できており、ＤＵをさらに高速にする要求はそれほど大きくない。したがって、シーケンサ方式が本発明では最も適当な方法であるといえる。
【００４０】
【発明の効果】
以上に説明したように、本発明においては、特定のデータ処理に特化した専用データ処理ユニット（専用命令実行ユニット）ＶＵと、汎用命令により汎用処理が実行できる汎用データ処理ユニット(汎用命令実行ユニット)ＰＵとを有するＶＵＰＵプロセッサにおいて、これらに命令を発行する命令発行ユニットＤＵをシーケンサなどのハードウェアロジックで実現するようにしている。したがって、ＤＵをハードウェア化しながら、ＶＵあるいはＰＵに対する信号を、プログラマブルなＶＵＰＵプロセッサにおいてフェッチユニットに係る信号と生成されたシーケンサの信号と置換することが可能となり、シーケンサ化の際の追加検証を極めて少量で済ませることができる。このため、本発明により、リアルタイム応答性を維持しながらプログラマブルで仕様変更などに柔軟に対処できるプログラマブルなＶＵＰＵプロセッサを用いて最適化された資産を活用し、信頼性が高く、コンパクトで、消費電力も少ない専用回路化されたデータ処理装置を提供することができる。
【図面の簡単な説明】
【図１】プログラマブルなＶＵＰＵプロセッサの概要を示す図である。
【図２】本発明に係るシーケンサ方式のＶＵＰＵプロセッサの概要を示す図である。
【図３】シーケンサ方式のＶＵＰＵプロセッサにおいてＰＵに対しｎｏｐ命令を出力する構成例を示す図である。
【図４】Ｃプログラムから、プログラマブルなＶＵＰＵ、そしてシーケンサ方式のＶＵＰＵと最適化が進む概略を示す図である。
【図５】シーケンサ型と、プログラム制御型のゲート数の概略を比較したグラフである。
【符号の説明】
１    専用データ処理ユニット（専用命令実行ユニット）ＶＵ
２    汎用データ処理ユニット（汎用命令実行ユニット）ＰＵ
３、２１    命令発行ユニットＤＵ
４    コードＲＡＭ
５    フェッチユニットＦＵ
９    実行ユニット
１０    プログラマブルなＶＵＰＵプロセッサ(データ処理装置)
２０    シーケンサ方式のＶＵＰＵプロセッサ(データ処理装置)
２２    組み合わせ回路
２３    ステートレジスタ
２４    インタフェース回路
【図１】
0004913955.tif 000002
【図２】
0004913955.tif 000003
【図３】
0004913955.tif 000004
【図４】
0004913955.tif 000005
【図５】
0004913955.tif 000006