JP4913955B2 - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP4913955B2 JP4913955B2 JP2001160876A JP2001160876A JP4913955B2 JP 4913955 B2 JP4913955 B2 JP 4913955B2 JP 2001160876 A JP2001160876 A JP 2001160876A JP 2001160876 A JP2001160876 A JP 2001160876A JP 4913955 B2 JP4913955 B2 JP 4913955B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- data processing
- general
- dedicated
- unit
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
Description
【発明の属する技術分野】
本発明は、専用回路を備えたデータ処理装置に関するものである。
【0002】
【従来の技術】
ネットワークの高速・大容量化と画像処理、特にデータ圧縮・伸張処理などのアプリケーションを実行する際に処理装置に対する要求に代表されるようなリアルタイムな操作あるいは処理を要求するアプリケーションの多様化は止まる所をしらないといっても過言ではない。このため、高速化するパソコン・ゲーム機などに使用されるプロセッサは極めて高いクロック周波数で動作するようになっており、複数のアプリケーションを高速で処理する能力を持つに至っている。しかしながら、これらのプロセッサは、汎用的な特徴をもつがゆえに、リアルタイムな処理が要求されるものについてすべて対応できるとは限らない。これに対し、ハードワイヤードロジックなどにより特定の処理に特化した専用回路は、リアルタイム応答を要求される処理に対して、その様にデザインすることが可能である。したがって、リアルタイム応答への要求が高いアプリケーションの分野では、データ処理が一クロックでも遅れたら使い物にならなくなるので、専用化してでも応答性を確保する必要がある。
【0003】
【発明が解決しようとする課題】
したがって、通信・ネットワークや画像処理においては、このような専用化された回路を用いて制御装置を構成する要求が顕著である。しかしながら、この種のアプリケーションの世界では、業界標準仕様が重要であり、この標準対応でなければマーケットに参入できない。このため、各社とも仕様の決定に影響力を及ぼそうとし、かつ、仕様が決定されたらいち早くそのシステムを商品化して市場に投入することがシェアの確保に繋がる。したがって、設計、特にシステムLSIの設計期間を短縮すると共に、その後の仕様変更に対する柔軟性が要求される。専用回路は、設計および検証に係る期間が長く、また、仕様変更に対する柔軟性はほとんどない。したがって、性能的には専用回路が要望されるものの、システムLSIが設計および開発される環境を考慮すると専用回路で対応することが難しい。かといって、上述したように、汎用プロセッサでは、リアルタイム応答性が不十分なことが多い。
【0004】
このような背景にあって、特願平11−307684号に開示されている技術がある。ここでは、汎用プロセッサと同様あるいは小さな規模で汎用処理が可能な汎用データ処理ユニット(PU)と、特定のデータ処理に特化した専用データ処理ユニット(VU)とを有するデータ処理装置を提供している。このデータ処理装置では、VUを稼動する専用命令を汎用命令と共にデータ処理装置のプログラムに命令セットとして取り込み、リアルタイム応答が要求される処理についてはVUをコールする構成が可能であり、仕様変更などに対してはプログラムレベルあるいはPUの処理によって対応できるという特徴を備えている。
【0005】
さらに、プログラムをフェッチするフェッチユニット(FU)およびデコーダと、基本的な命令セットを備えたPUなどからなる基本的なアーキテクチャを用意し、それによって稼動されるVUをアプリケーション毎に換えることができる。したがって、設計および開発に費やされる期間も短縮することが可能であり、実績のある専用回路をVUとして取り込むこともできる。このため、リアルタイム性が要求されるアプリケーションに対応するシステムを短期間で開発することが可能であり、さらに、その後の設計変更などにも柔軟に対応することができる。
【0006】
このように、汎用データ処理ユニット(PU)と、専用データ処理ユニット(VU)を採用したアーキテクチャは、リアルタイムな応答性を要求されるアプリケーションに適したシステムを短期間に開発でき、その後の変更にも対応できるものである。そして、アプリケーションに特化した命令を組み込める設計方式として、アプリケーションの仕様に対して最適なプロセッサを開発する方式として用いることも可能である。さらに、データ処理装置として、特にシステムLSIとして高性能なもの、たとえば、低消費電力で、低コストであり、さらにコンパクトなものにする要求は常にある。そこで、本願においては、このアーキテクチャを一歩進め、リアルタイム応答性および柔軟性を犠牲にすることなく、消費電力を低減し、占有面積を小さくすることができるデータ処理装置を提供することも目的としている。
【0007】
【課題を解決するための手段】
上記のようなシステムにおいて、リアルタイム性を犠牲にすることなく、消費電力を低減し、占有面積を小さくする方法として、汎用的な部分、すなわち、PUなどをすべて専用回路化することが考えられる。これにより、汎用性のある構成をすべて専用回路化できるので、回路構成およびレジスタなどの不使用部分の無駄を省き、回路などを目的に合わせてシンプルにできるので、回路規模を小さくすることができ、消費電力および占有面積の低減を実現できる。しかしながら、専用回路化することにより柔軟性はなくなり、変更などに対応することが困難になる。
【0008】
仕様が確定したり、システムが成熟することにより変更あるいは修正が必要なくなった段階、あるいは、変更あるいは修正よりも消費電力を低減することなどのほうが優先する段階になると、柔軟性を犠牲にすることは可能であるとしても、PUなどの部分を専用回路化するために再び回路設計、検証などの作業が必要となる。したがって、多大な時間と費用を費やすことになるので、専用回路化するメリットは薄れてしまう。
【0009】
そこで、本発明においては、VUおよびPUの構成は変えずに、これらに命令を発行している部分だけを専用回路化することにより、プログラムをフェッチし、デコードしている機能の部分をコンパクトにして消費電量を低減し、また、占有面積を低減できるようにしている。すなわち、データ処理装置は、専用命令により特定のデータ処理に特化した少なくとも1つの専用データ処理ユニットと、汎用命令により処理を指定可能な汎用性の汎用データ処理ユニットと、専用データ処理ユニットおよび汎用データ処理ユニットに対し専用命令および汎用命令を供給する命令発行ユニットとを有し、この命令発行ユニットをアプリケーションに特化した構成で実現している。
【0010】
命令発行ユニットをアプリケーションに特化した構成、すなわち、専用回路化、あるいはハードウェアロジック化することにより、柔軟性は上記と同様に減少する。しかしながら、命令発行ユニットだけを専用回路化することにより、プログラマブルな構成からの設計および検証などに費やされる時間および費用を軽減できる。さらに、プログラム制御したときのデータ処理装置の機能は検証されているので、データ処理装置全体の設計をし直したり、検証し直したりする必要はなく、プログラムをデコードした状態を再現できるように命令発行ユニットを専用回路化すればよい。したがって、初期にプログラム開発および検証などで得た過去の資産を継続して活かすことが可能であり、短期間で信頼性が高く、さらにコンパクトで低消費電力のデータ処理装置を提供することができる。
【0011】
すなわち、本発明においては、専用データ処理ユニットと、汎用データ処理ユニットと、命令発行ユニットとを有するデータ処理装置の開発方法であって、命令発行ユニットがプログラマブルであり、コードRAMおよびフェッチユニットを含み、フェッチユニットはコードRAMに格納されたプログラムからフェッチした専用命令および汎用命令をデコードした制御信号を専用データ処理ユニットおよび汎用処理ユニットにそれぞれ供給するデコード回路を含み、プログラムによりアプリケーション用のデータ処理装置の動作を実証する第1の工程と、命令発行ユニットがコードRAMおよびフェッチユニットに置き換わる組み合わせ回路を含み、組み合わせ回路に、デコード回路がプログラムの専用命令および汎用命令をそれぞれをデコードした制御信号と等価な信号を専用データ処理ユニットおよび汎用データ処理ユニットにそれぞれ出力させ、命令発行ユニットをアプリケーション用に特化させる第2の工程とを有する開発方法を提供する。
【0012】
プログラマブルであった命令発行ユニットの部分を専用回路化する1つの適当な方法は、予めセットされた制御信号をハードウェア的に順次出力することができるシーケンサ方式である。また、検証済みの専用データ処理ユニットおよび汎用データ処理ユニットの資産をそのまま用いるには、プログラマブルな命令発行ユニットとのインタフェースを同一にすることが望ましく、そのためには、命令発行ユニットは、プログラムをデコードした制御コードと等価な信号で専用命令および汎用命令を発行するようにすることが有効である。すなわち、開発方法の第2の工程において、第1の工程の命令発行ユニットがプログラム中の専用命令および汎用命令をデコードした制御信号と等価な信号で専用命令および汎用命令を発行するように、アプリケーションに特化した命令発行ユニットを作成あるいは開発することが有効である。
【0013】
したがって、本発明においては、専用データ処理ユニットと、汎用データ処理ユニットと、命令発行ユニットとを有するデータ処理装置を開発する際に、まず、アプリケーションの仕様の一部を実装する専用データ処理ユニット、および、専用命令および汎用命令により仕様を実行するプログラムを開発する第1の最適化段階と、プログラマブルな命令発行ユニットを有するデータ処理装置によりプログラムを最適化する第2の最適化段階とを経た後に、これら第1および第2の最適化段階の資産を活かし、ハードウェアロジック回路を用いた命令発行ユニットを備えたデータ処理装置を開発する第3の最適化段階を実行することができる。
【0014】
さらに、専用命令を専用データ処理ユニットに出力するときは、汎用データ処理ユニットに対しnop命令を出力するようにすることで、シーケンシャルな流れのプログラムにより専用データ処理ユニットおよび汎用データ処理ユニットを制御できるが、命令発行ユニットを専用回路化したときも、同様のタイミングでnop命令を汎用データ処理ユニットに出力することにより検証済みの性能を維持することができる。
【0015】
【発明の実施の形態】
以下に図面を参照しながら本発明についてさらに説明する。図1に、特定の処理に特化した専用データ処理ユニット(専用命令実行ユニット、以降ではVU)1と、汎用的な構成の汎用データ処理ユニット(汎用命令実行ユニットあるいはプロセスユニット、以降ではPU)2とを備えたデータ処理装置(プロセッサ)10であって、プログラマブルなプロセッサの概略構成を示してある。このプロセッサ10は、VU1およびPU2にデコードされた制御信号を提供する命令発行ユニット3を備えている。命令発行ユニット(ディスパッチユニット、以降ではDU)3は、実行形式のプログラムコード(マイクロプログラムコード)を内蔵したコードRAM4と、このコードRAM4から命令をフェッチするフェッチユニット5とを備えている。フェッチユニット5は、前の命令あるいはステートレジスタ6の状態、割り込み信号φiなどによって決まる所定のコードRAM4の所定のアドレスから命令をフェッチするフェッチ部7と、フェッチされた専用命令あるいは汎用命令(一般命令)をデコードしてそれぞれを専用命令をデコードした制御信号(デコーデド・コントロール・シグナル;Decoded Control Signal)φvあるいは汎用命令をデコードした制御信号(デコーデド・コントロール・シグナル;Decoded Control Signal)φpとしてVU1あるいはPU2に供給するデコード回路8とを備えている。さらに、PU2からは実行状態を示すステータス信号(Exec unit Status Signal)φsが返され、PU2およびVU1の状態がステートレジスタ(状態レジスタ)6に反映されるようになっている。
【0016】
PU2は、汎用レジスタ、フラグレジスタおよび演算ユニット(ALU)などから構成される汎用性の高い実行ユニット(EU)9と、この実行ユニット9で処理を行う際の一時的な記憶領域となるデータRAM12とを備えている。上述した命令発行ユニットDU3および汎用データ処理ユニットPU2を1組の構成単位としてみると、コードRAM4、FU5および実行ユニット9を有する構成であり、概略構成は、汎用的なプロセスユニットと同様の構成となる。したがって、DU3およびPU2をプロセッサユニット11として見ることも可能であり、このプロセッサユニット11からVU1を制御するシステムあるいは設計思想でも本例のプロセッサ10を構成あるいは設計することができる。
【0017】
DU3あるいはプロセッサユニット11からの専用命令φvを実行する専用データ処理ユニットVU1は、DU3が供給する命令がV命令φvであるか、およびそれが自己のVU1を起動する命令であるかなどデコードするユニット13と、予め特定のデータ処理を行うように制御信号をハードウェア的に出力するFSM(Finite State Machine、ファイナイトステートマシン)14と、このFSM14からの制御信号に従って特定のデータ処理を行うようにデザインされたデータパス部15と、PU2とのインタフェースをとるインタフェースレジスタ16とを備えている。VU1の内部状態はインタフェースレジスタ16を介してPU2で参照でき、また、データパス部15で処理された結果はPU2に供給され、PU2ではその結果を利用した処理が行われる。FSM14は、専用回路をハードウェアシーケンス制御方式で実現するためのものであり、レジスタに状態を持ち、その状態に応じて制御信号を出力する有限状態マシンである。状態の遷移は、現在の状態と入力信号から組合せ回路で決定される。
【0018】
図1に示したプロセッサ10では、コードRAM4に、汎用命令(P命令)および専用命令(V命令)を含んだプログラムが記憶されており、それがFU5でフェッチされ、デコードされた制御信号φpまたはφvとして命令発行ユニットDU3から出力される。VU1は、デコードユニット13で制御信号φvを判別して稼動する。また、複数のVU1を備えている場合は、これらの制御信号φpおよびφvから、自己のVU1を起動する専用命令に該当する制御信号φvを判別し、それがFU5から供給されるとVU1は稼動する。一方、PU2には、汎用命令がデコードされた制御信号φpだけが供給されるようになっており、V命令をデコードしたPU2では実行できない命令はPU2には発行されないようになっている。その代わりに、実行を伴わないnop命令を示す制御信号が発行され、PU2の処理はスキップされる。V命令をデコードした制御信号を発行する代わりにnop命令を発行することにより、PU2はV命令あるいはそれをデコードした制御信号に対処する必要がない。VU1は、アプリケーションなどによって変更されるものであり、VU1に指示を出す専用命令もアプリケーションによって変わることが多い。VU1は、アプリケーションに特化した専用回路であり、V命令をデコードした制御信号を解釈するように設計することは容易である。一方、PU2は、nop命令が出力されることにより、VU1に特化した命令に対処する必要がなく、基本命令あるいは汎用命令を解釈して実行できる機能があればよく、汎用性を犠牲にすることなく様々なアプリケーションに対応したVU1と共存し、これらを制御したり、その演算結果を用いて処理を行うことができる。
【0019】
このように、図1に示したプロセッサ10は、先に説明した、リアルタイム応答を実現できる専用回路VU1と、汎用性があるプロセス回路PU2とを有するものであり、リアルタイム応答性を犠牲にすることなく、設計および開発期間を短縮でき、さらに、その後の変更や修正にも柔軟に対処できるものである。専用回路VU1は、1つに限定されることはない。アプリケーションで要求される専用処理を処理できるように複数の専用回路VU1を用意し、それぞれの専用回路VU1を稼動する複数の専用命令をプログラムコードに含めることが可能である。
【0020】
図2に、本発明にかかるプロセッサ20の概略構成を示してある。このプロセッサ20は、図1に示したプロセッサ10と同様に、特定の処理に特化した専用データ処理ユニット(VU)1と、汎用的な構成の汎用データ処理ユニット(PU)2とを備えたデータ処理装置(プロセッサ)20であって、これらの構成は図1に示したプログラマブルなプロセッサ10と同じ構成である。本例のプロセッサ20も命令発行ユニット(DU)21を備えており、本例のDU21は、組み合わせ回路(FSM)22で構成され、ハードウェアシーケンス制御が採用されている。この組み合わせ回路22は、状態の遷移が現在の状態を示すステートレジスタ23の状態と、割り込み信号φi、PU2からのステータス信号φsなどの入力信号の組合せで決定され、それに応じて制御信号φpおよびφvが出力される専用回路である。
【0021】
本例のDU21の組み合わせ回路22は、状態の遷移によって出力される汎用命令に対応する制御信号φp、および専用命令に対応する制御信号φvが、上記のプログラマブルなDU3で供給される制御信号と等価な信号となっている。すなわち、プログラマブルなDU3でプログラム中のP命令あるいはV命令をデコードした制御信号と等価な信号になっており、VU1およびPU2と、DU21とのインタフェースは、プログラマブルなDU3とまったく同一となっている。このため、本例のプロセッサ20においても、DU21と、PU2との組み合わせをシーケンサ化されたプロセスユニット25として設計することも可能であり、DU21がシーケンサ化されたプロセスユニット25と、プログラマブルなプロセッサ10で採用したものと同じVU1との組み合わせによって本例のプロセッサ20を構成することも可能である。
【0022】
さらに、本例のDU21は、VU1およびPU2とのインタフェースおよび制御信号φpおよびφvを発行するタイミングなどをプログラマブルなDU3と同一に処理できるように、V命令の制御信号φvが発行されるときは、PU2にnop命令の制御信号が出力されるようにしている。図3に、そのインタフェース回路24の一例を示してある。この例では、組み合わせ回路22からV命令である制御信号(デコーデド・コントロール・シグナル;Decoded Control Signal)φvと汎用命令である制御信号(デコーデド・コントロール・シグナル;Decoded Control Signal)φpが状態の遷移に応じて順次出力され、それらはVU1に供給され、VU1のデコードユニット13がそれを解釈する。一方、制御信号φvおよびφpはインタフェース回路24のセレクタ27にも入力され、このセレクタ27にはnop命令の制御信号φnも入力される。そして、組み合わせ回路21からは、出力されている命令がV命令かP命令かを示すVU/PU選択信号φjが出力され、それによってセレクタ27がP命令の制御信号φpかnop命令の制御信号φnを選択してPU2へ供給する。
【0023】
したがって、本例のプロセッサ20においても、PU2へは専用命令のデコード信号φvが供給されることはなく、PU2は汎用の一般命令を解釈して動作する機能だけで構成することができる。そして、V命令が供給されるタイミングではnop命令がPU2に供給されるようになっているので、命令発行ユニットDU21としては、P命令とV命令を状態遷移に応じて所定の順番で出力あるいは供給することが可能である。このため、DU21では、P命令とV命令とを別々の異なるFSMで取り扱い、並列処理するためにタイミングを合わせて制御するような複雑な構成は不要であり、1つのFSMでシーケンス制御することにより、プロセッサ20としては、VU1とPU2とを並列で制御することが可能となる。そして、VU1とPU2とを並列で制御するタイミングなどの調整は、状態の遷移に応じて出力される制御命令φvおよびφpの順番によって行うことができるので、極めてシンプルな構成でありながら、VU1とPU2との並列処理の調整あるいは調停を組み合わせ回路22が制御命令を出力するタイミング、すなわち、クロック単位で厳密に制御することが可能である。
【0024】
このように本例のプロセッサ20は、特定の処理に特化し、リアルタイム応答性能も高い専用回路によるVU1と、汎用処理に適し、柔軟な制御が可能なPU2とを備え、これらVU1とPU2とを並列に駆動して処理を実行するプロセッサであり、リアルタイム応答性を犠牲にせずに汎用処理との並列度を上げることができ、画像処理あるいはゲームのアプリケーションで重要な割り込み信号φiに対応する制御などが組み込みやすいプロセッサとなっている。そして、これらVU1およびPU2に制御信号φvおよびφpを出力するDU21がシーケンサ制御方式で専用回路化されている。このため、プログラマブルな命令発行ユニットDU3がコードRAM、フェッチ部およびデコード回路などを備えているのに対し、専用回路化されている命令発行ユニット21は、ほとんど組み合わせ回路だけで構成することが可能である。したがって、プロセッサ全体をコンパクトに設計することが可能となり、消費電力を低減することができる。さらに、製造コストを抑えることも可能となる。
【0025】
しかしながら、専用回路化することにより、仕様の変更などに対処することは難しくなる。したがって、リアルタイム応答が要求される特定のアプリケーションの処理を目的としてVUを用いたプロセッサを開発する初期段階で本例のプロセッサ20を採用することは難しい。このため、第1の工程として、プログラマブルなDU3を搭載したプロセッサ10を使用してある程度仕様が固まった後に、第2の工程として、本例のプロセッサ20は、変更がほとんどない状態になった段階で採用される。
【0026】
即ち、プログラマブルなDUにより制御されるVUおよびPUを備えたプロセッサ(VUPU方式と呼んでいる)では、特殊な演算を専用命令化して専用命令(VU命令あるいはV命令)としてPUからコールする形式を採る。従って、V命令をコールする前後は汎用命令(PU命令あるいはP命令)列となる訳であり、VUが確定した後でも汎用命令であるP命令の組み合わせは変更できる。例えば、専用命令(変数を掛けて、掛けて、割って、余りを算出する、といった内容)そのものの仕様は変化しなくても、その専用命令をコールする条件が変わった場合には、P命令あるいはP命令とV命令の順番をプログラムにて変更し、呼び出し条件を柔軟に変更することができる。専用命令による処理内容が変わるとVUのアーキテクチャにも影響を与えることになるが、専用命令そのものの仕様は変化せず、その適用条件(制御状況)が変わるということはよくあるケースだからである。したがって、プロセッサを開発する第1の段階(第1の工程)では、プログラマブルなDU3を備えているプロセッサは非常に有効である。
【0027】
しかしながら、全体の仕様が固まってもう変更が見込まれない場合には、もはや、PUが柔軟である必要がなくなり、PUを固定化することが望ましい状態となる。即ち、ソフトウェアでの変更可能である必要が無くなるのである。仕様の変更に対処できる機構がもはや余計なコストあるいは経済的および製品的なディメリットになる可能性があるからである。特にソフトウェアを搭載しているコードRAMが面積と消費電力の観点から余剰なコストとなってしまうのである。
【0028】
したがって、本例では、第2の段階(第2の工程)として、命令発行ユニットDUの単位でハードウェア化している。これに対し、プロセッサ全体を回路構成から見直してハードウェア化することもプロセッサをハードウェア化する1つの方法である。プロセッサ全体の回路構成などを見直してハードウェア化することにより、プロセッサ全体が処理対象のアプリケーションに対し最適化されるので、そのようなプロセッサが製造されたときは、経済的および性能的な効果が非常に大きい。しかしながら、プログラマブルなVUPUプロセッサを開発および使用してきた間の知識的あるいは経験的な資源を有効に活かすことが難しい。そこで、本例のプロセッサ20は、第2の工程として、プログラマブルなVUPUで蓄積された様々な資源を有効に活用することができ、ハードウェア化された信頼性の高いVUPUを短期間に開発できる方法としてDUの単位でハードウェア化する方法を採用している。
【0029】
図4に基づき、さらに詳細に説明する。図4(a)に示すC言語で記述されたプログラム31を実行するプロセッサをVUPU方式で実現する場合、そのプログラム31はコンパイラでアセンブラに変換されて、図4(b)に示す実行形式(PUプログラムコード)32となる。この際、高速性あるいはリアルタイム性を確保したい部分はあらかじめ人手また自動変換により、Cソースコード31のその部分31aを専用ハードウェア、すなわちVU1に置き換える作業を行う。実際に設計する際は、人手あるいは自動により論理設計段階でCソースコードからRTLモデルに変換しておき、そのRTLを実行あるいは実現する論理回路を、図4(b)に示すVU1として設計および開発する。そして、そのVUを稼動する命令を専用命令(V命令)として用意し、プログラム中でその専用命令をコールする形となる。従って、PUプログラムコード32のアセンブラ記述の中には専用命令(本例ではV−OP)とその他のP命令が記述されていることになる。
【0030】
さらに具体的に説明する。図4(a)のCプログラム31のfor文内でf1からf3なる機能ファンクション(加減算等の処理)を行っており、このfor文を一専用命令で実行可能とする場合には、この部分31aを対象とし、これら機能ファンクションを行うデータパス部(インタフェース・レジスタVRを含む専用回路)15と、このデータパス部15によりプログラムの一部31aの処理を順番で実行するFSM14とがVU部として必要となり、これらがハードウェアロジックとして実現される。そして、FSM14を起動するV命令がV−OPとして定義され、図4(b)に示すPU用のアセンブラプログラム32に埋め込んだ形態となる。したがって、開発の第1の段階としては、このプログラム32により、図1に示したプログラマブルなVUPUプロセッサ10を制御することができる。
【0031】
プログラマブルなVUPUプロセッサ10は、このようにしてV命令が埋め込まれた形のアセンブラプログラム32により、仕様の変更がV命令に及ばない場合にはP命令のみの追加・変更・削除で対応できるので非常に便利である。したがって、VUPUプロセッサ10を実際にシステムに組み込みアプリケーションを処理しながら仕様の追加、変更などを行うことができる。先にCプログラムをプログラマブルなVUPUプロセッサ用に適応した段階を第1の最適化とすると、PU用のアセンブラプログラム32を実システムに使用してブラッシュアップする段階は第2の最適化と呼ぶことができる。
【0032】
そして、実システムに適用して試用あるいは開発段階が終了すると、その段階でほぼ第2の最適化も終了するので、いったん仕様がフィックスした状態となる。したがって、プログラマブルな仕様は不要となり、上述したようにプログラムコードRAMなどの構成は、第2の最適化が終了したプロセッサにおいては余計なシステムとなる。
【0033】
このため、本例では図4(c)に示すように、アセンブラプログラム32の各ステップを状態に割り付け、シーケンサ化し、それを組み合わせ回路22で実現することにより、VUPUプロセッサ10をハードウェア的にも最適化し、経済的なプロセッサ20として提供するようにしている。この段階を第3の最適化と呼ぶことができる。本例では、組み合わせ回路22、すなわち、シーケンサの入力はプロセスユニット25に対する割り込み信号φiとPU2のステータス信号φsであり、ステータス信号φsはPU(PU実行ユニット)のファシリティである汎用レジスタ・フラグレジスタ・ALUなどの状態を伝える信号である。さらに、組み合わせ回路22の出力は、プログラマブルなVUPU10において命令発行ユニットDU3から供給される制御信号と同じ、すなわち、プログラムがデコードされた制御信号としている。したがって、第3の最適化を行うときに、PU2の構成はもちろんVU1の構成を変更する必要がなく、命令発行ユニットDUの機能だけをハードウェアに置き換えることができる。このため、プロセッサ全体を再設計および検証することなく、専用回路化されたDU21の機能が確認できれば、プロセッサ20としては実証済みの信頼性の高いものを提供することができる。その一方で、プログラマブルなVUPUをハードウェア的に最適化するときに占有面積および消費電力的にメリットの大きな命令発行する部分をコンパクトにすることができるので、最適化のメリットも大きい。
【0034】
すなわち、本例の、シーケンサ化されたVUPUプロセッサ20においては、プログラマブルなVUPUプロセッサ10のPU部のフェッチユニットに係る信号と生成されたシーケンサの信号とを置換することにより、シーケンサ化の際の追加検証が極めて少量ですむ。さらに、シーケンサ化の際に、PU2のすべての汎用レジスタを使用していないアセンブラコードであれば、未使用の汎用レジスタはPU2から削除することはPU2のハードウェアをそれほど大きく変更しないで行うことも可能である。この結果、アセンブラコードを搭載するRAMが削除できるのみならず、従来は未使用のまま搭載されていた汎用レジスタも、そのアセンブラコードをシーケンサ化する際にアセンブラコードの固定化理由により削除することができる。そして、置換されるシーケンサの外部信号は、プログラマブルなVUPUプロセッサ10のフェッチユニット5に係る信号においてデコードされた制御信号φvおよびφpとPU2からのステータス信号φsの部分集合となり、最大で一致する特徴を有する。
【0035】
このように、本例のプロセッサ20では、命令発行ユニットDUを専用回路化し、さらに、DUとVUおよびPUとのインタフェースはプログラマブルなVUPUと同じにしてある。このため、C言語からプログラマブルなVUPUに最適化した第1の最適化段階の資産と、プログラマブルなVUPUを実システムなどに適応して最適化した第2の最適化段階の資産を有効に活用し、プログラマブルなVUPUを専用回路化する第3の段階の最適化(第3の最適化段階)を行うことができる。したがって、コンパクトで低消費電力であり、さらに、リアルタイム応答性に優れた、アプリケーションに特化した専用回路化されたプロセッサを短期間に開発することができ、さらに、信頼性の高いプロセッサを提供することができる。
【0036】
さらに、本例のプロセッサ20は、上述したように、オリジナルのCプログラムを実行するためにVUPUプロセッサを適用するという第1の最適化に加えて、プログラマブルなVUPUプロセッサによる実システムに対応した第2の最適化を経た状態で、第3の最適化段階として専用回路化されている。このため、Cプログラムを実現するプロセッサを専用回路により直接設計および開発する方法と比較すると、低コストで短期間に信頼性の高いプロセッサを開発することができる。
【0037】
上述したように専用回路化されたプロセッサは仕様変更などに柔軟に対応できないので、直に専用回路によるプロセッサを開発した場合は、そのような仕様変更に対応できないか、あるいは膨大な時間をかけて再設計するしかない。これに対し、本例のプロセッサ20は、仕様が決定されるまではプログラマブルな状態で対応することが可能である。さらに、プログラマブルなVUPUプロセッサはリアルタイム応答性があるので、実際に製品として市場に供給することも可能であり、短期間にアプリケーション用のLSIとして実際にシステムに組み込むことができる。一方、プログラマブルなだけのプロセッサで仕様を決定すると、それを専用回路化した段階で、リアルタイム応答性などが大きく異なってしまい、その段階でさらに仕様変更などが生ずる。これに対し、本例のプロセッサ20はプログラマブルなVUPUプロセッサ10をベースにしたものであり、プログラマブルな段階でリアルタイム応答性があり、実際のデータ処理の性能はプログラマブルであろうとなかろうと等価なもので仕様を決定できる。このため、上述したように、本発明に係る専用回路化されたVUPUプロセッサ20は、短期間で開発できると共に、信頼性が高く、開発途上の仕様変更などに柔軟に対応でき、専用回路化された後は、コンパクトで低消費電力のプロセッサにすることができる。また、プログラマブルなVUPUとプロセッサとしては完全な互換性を担保できるので、シーケンス方式に変更することにより市場の優位性は損なわれることはなく、低コスト化および低消費電力化できるので、さらに優位なプロセッサとして提供することができる。
【0038】
なお、VUPUプロセッサでCプログラムの処理を行う場合、プログラムコード量が膨大であるときは、プログラマブルなDUを実現するゲート数がそれほど増えないのに対し、シーケンサを実現する回路規模が大きくなってしまうので、DUをシーケンサ化するメリットは小さくなる。その境界は一概にはいえないが、図5に示すように、プログラマブルなDU3を実現するゲート数と、シーケンサ(組み込み回路)によるDU21を実現するゲート数との概略を比較すると、PUのプログラムコードが数百ステップ付近である。したがって、本発明に係る専用回路化されたVUPUプロセッサ20は、数百ステップ以下のプログラムコードで処理を実行できるアプリケーションに特に適しており、多大な効果を得ることができる。
【0039】
また、本例ではDUをシーケンサ方式で実現しているが、ワイヤードロジックあるいはゲートロジックなどの異なる形式で専用回路化することも可能である。しかしながら、プログラムコードを専用回路化する最も適当な方式の1つはシーケンサ方式である。さらに、本例のVUPU方式のプロセッサは、プログラム制御によりリアルタイム応答性を確保できており、DUをさらに高速にする要求はそれほど大きくない。したがって、シーケンサ方式が本発明では最も適当な方法であるといえる。
【0040】
【発明の効果】
以上に説明したように、本発明においては、特定のデータ処理に特化した専用データ処理ユニット(専用命令実行ユニット)VUと、汎用命令により汎用処理が実行できる汎用データ処理ユニット(汎用命令実行ユニット)PUとを有するVUPUプロセッサにおいて、これらに命令を発行する命令発行ユニットDUをシーケンサなどのハードウェアロジックで実現するようにしている。したがって、DUをハードウェア化しながら、VUあるいはPUに対する信号を、プログラマブルなVUPUプロセッサにおいてフェッチユニットに係る信号と生成されたシーケンサの信号と置換することが可能となり、シーケンサ化の際の追加検証を極めて少量で済ませることができる。このため、本発明により、リアルタイム応答性を維持しながらプログラマブルで仕様変更などに柔軟に対処できるプログラマブルなVUPUプロセッサを用いて最適化された資産を活用し、信頼性が高く、コンパクトで、消費電力も少ない専用回路化されたデータ処理装置を提供することができる。
【図面の簡単な説明】
【図1】プログラマブルなVUPUプロセッサの概要を示す図である。
【図2】本発明に係るシーケンサ方式のVUPUプロセッサの概要を示す図である。
【図3】シーケンサ方式のVUPUプロセッサにおいてPUに対しnop命令を出力する構成例を示す図である。
【図4】Cプログラムから、プログラマブルなVUPU、そしてシーケンサ方式のVUPUと最適化が進む概略を示す図である。
【図5】シーケンサ型と、プログラム制御型のゲート数の概略を比較したグラフである。
【符号の説明】
1 専用データ処理ユニット(専用命令実行ユニット)VU
2 汎用データ処理ユニット(汎用命令実行ユニット)PU
3、21 命令発行ユニットDU
4 コードRAM
5 フェッチユニットFU
9 実行ユニット
10 プログラマブルなVUPUプロセッサ(データ処理装置)
20 シーケンサ方式のVUPUプロセッサ(データ処理装置)
22 組み合わせ回路
23 ステートレジスタ
24 インタフェース回路
Claims (2)
- 専用命令により特定のデータ処理に特化した専用データ処理ユニットと、汎用命令により処理を指定可能な汎用性の汎用データ処理ユニットと、前記専用データ処理ユニットおよび汎用データ処理ユニットに対し前記専用命令および前記汎用命令をそれぞれ供給する命令発行ユニットとを有するデータ処理装置の開発方法であって、
前記命令発行ユニットがプログラマブルであり、コードRAMおよびフェッチユニットを含み、前記フェッチユニットは前記コードRAMに格納されたプログラムからフェッチした前記専用命令および前記汎用命令をデコードした制御信号を前記専用データ処理ユニットおよび前記汎用データ処理ユニットにそれぞれ供給するデコード回路を含み、前記プログラムによりアプリケーション用の前記データ処理装置の動作を実証する第1の工程と、
前記命令発行ユニットが前記コードRAMおよび前記フェッチユニットに置き換わるハードウェアロジック回路を含み、前記ハードウェアロジック回路に、前記デコード回路が前記プログラムの前記専用命令および前記汎用命令をそれぞれデコードした制御信号と等価な信号を前記専用データ処理ユニットおよび前記汎用データ処理ユニットにそれぞれ出力させ、前記命令発行ユニットを前記アプリケーション用に特化させる第2の工程とを有する開発方法。 - 専用命令により特定のデータ処理に特化した専用データ処理ユニットと、汎用命令により処理を指定可能な汎用性の汎用データ処理ユニットと、前記専用データ処理ユニットおよび汎用データ処理ユニットに対し前記専用命令および汎用命令をそれぞれ供給する命令発行ユニットとを有するデータ処理装置の開発方法であって、
アプリケーションの仕様の一部を実装する前記専用データ処理ユニット、および、前記専用命令および汎用命令により前記仕様を実行するプログラムを開発する第1の最適化段階と、
前記命令発行ユニットがコードRAMおよびフェッチユニットを含み、前記フェッチユニットは前記コードRAMに格納されたプログラムからフェッチした前記専用命令および前記汎用命令をデコードした制御信号を前記専用データ処理ユニットおよび前記汎用データ処理ユニットにそれぞれ供給するデコード回路を含むプログラマブルな前記命令発行ユニットを有する前記データ処理装置により前記プログラムを最適化する第2の最適化段階と、
前記第2の最適化段階の前記命令発行ユニットが前記プログラム中の前記専用命令および汎用命令をデコードした制御信号と等価な信号を前記専用データ処理および前記汎用処理ユニットにそれぞれ出力するハードウェアロジック回路に、前記コードRAMおよびフェッチユニットを置き換えた前記命令発行ユニットを備えた前記データ処理装置を開発する第3の最適化段階とを有する開発方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001160876A JP4913955B2 (ja) | 2000-05-29 | 2001-05-29 | データ処理装置 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000158222 | 2000-05-29 | ||
JP2000-158222 | 2000-05-29 | ||
JP2000158222 | 2000-05-29 | ||
JP2001160876A JP4913955B2 (ja) | 2000-05-29 | 2001-05-29 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002055813A JP2002055813A (ja) | 2002-02-20 |
JP4913955B2 true JP4913955B2 (ja) | 2012-04-11 |
Family
ID=26592796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001160876A Expired - Fee Related JP4913955B2 (ja) | 2000-05-29 | 2001-05-29 | データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4913955B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8914618B2 (en) * | 2005-12-29 | 2014-12-16 | Intel Corporation | Instruction set architecture-based inter-sequencer communications with a heterogeneous resource |
JP5157129B2 (ja) * | 2006-02-01 | 2013-03-06 | 株式会社デンソー | 情報処理装置およびその回路設計方法 |
JP2007317152A (ja) * | 2006-05-29 | 2007-12-06 | Yuundo:Kk | 情報処理装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02197924A (ja) * | 1989-01-27 | 1990-08-06 | Matsushita Electric Ind Co Ltd | 中央演算処理装置 |
US5093908A (en) * | 1989-04-17 | 1992-03-03 | International Business Machines Corporation | Method and apparatus for executing instructions in a single sequential instruction stream in a main processor and a coprocessor |
FR2656710A1 (fr) * | 1989-12-29 | 1991-07-05 | Radiotechnique Compelec | Microcontroleur pour l'execution rapide d'un grand nombre d'operations decomposable en sequence d'operations de meme nature. |
JP3099889B2 (ja) * | 1990-06-29 | 2000-10-16 | 株式会社東芝 | 電子計算機、プログラマブル論理回路及びプログラム処理方法 |
JPH08106375A (ja) * | 1994-10-03 | 1996-04-23 | Ricoh Co Ltd | 信号処理演算器 |
GB2325535A (en) * | 1997-05-23 | 1998-11-25 | Aspex Microsystems Ltd | Data processor controller with accelerated instruction generation |
JPH11161615A (ja) * | 1997-11-25 | 1999-06-18 | Mitsubishi Electric Corp | 制御命令演算処理装置 |
JP2000207202A (ja) * | 1998-10-29 | 2000-07-28 | Pacific Design Kk | 制御装置およびデ―タ処理装置 |
-
2001
- 2001-05-29 JP JP2001160876A patent/JP4913955B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002055813A (ja) | 2002-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20020010848A1 (en) | Data processing system | |
JP3835754B2 (ja) | 集積回路の設計方法及びそれによって設計された集積回路 | |
US20060026578A1 (en) | Programmable processor architecture hirarchical compilation | |
Pimentel | The artemis workbench for system-level performance evaluation of embedded systems | |
JP4651790B2 (ja) | データ処理装置 | |
US7484186B2 (en) | Method for designing a system LSI | |
US20020152061A1 (en) | Data processing system and design system | |
US20130290693A1 (en) | Method and Apparatus for the Automatic Generation of RTL from an Untimed C or C++ Description as a Fine-Grained Specialization of a Micro-processor Soft Core | |
JP4913955B2 (ja) | データ処理装置 | |
GB2371648A (en) | System with general-purpose processor and special-purpose processor | |
Balarin et al. | Processes, interfaces and platforms. Embedded software modeling in Metropolis | |
US20050097306A1 (en) | No-instruction-set-computer processor | |
JP4152659B2 (ja) | データ処理システムおよび設計システム | |
JP2005234968A (ja) | 演算処理装置 | |
US8433553B2 (en) | Method and apparatus for designing a processor | |
KR100557518B1 (ko) | 시스템 대규모 집적 회로, 그 설계 방법, 및 그에 대한프로그램 | |
Meyer et al. | HDL FSM Code Generation Using a MIPS-based Assembler | |
Carro et al. | Algorithms and architectures to computational systems implementation | |
JP2006011840A (ja) | 組み込みシステム | |
Gorjiara et al. | GNR: A formal language for specification, compilation, and synthesis of custom embedded processors | |
Wei | A FPGA-based Soft Multiprocessor System for JPEG Compression | |
Kempa et al. | SOPC builder: performance by design | |
Fritzell | A System for Fast Dynamic Partial Reconfiguration using GoAhead: Design and Implementation | |
Lyons | Meeting the embedded design needs of automotive applications [RISC instruction set architecture] | |
Herrholz et al. | ANDRES-ANalysis and Design of run-time REconfigurable, heterogeneous Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20080228 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080305 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080520 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080521 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101119 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110114 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110208 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110411 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120116 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120120 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150127 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |