JP2008158699A - Processor - Google Patents
Processor Download PDFInfo
- Publication number
- JP2008158699A JP2008158699A JP2006345059A JP2006345059A JP2008158699A JP 2008158699 A JP2008158699 A JP 2008158699A JP 2006345059 A JP2006345059 A JP 2006345059A JP 2006345059 A JP2006345059 A JP 2006345059A JP 2008158699 A JP2008158699 A JP 2008158699A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- instruction
- vector
- data
- register
- 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.)
- Pending
Links
Images
Landscapes
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
Description
本発明は、プロセッサに関し、特に、ベクトル演算を実行可能なプロセッサに関する。 The present invention relates to a processor, and more particularly to a processor capable of performing vector operations.
従来より、複数のプロセッサを含むマルチプロセッサが開発され、実用化されている。例えば、コントロールプロセッサが全体的な処理及び例外的な処理を行い、ベクトルコプロセッサが反復処理を行うように構成されるマルチプロセッサが提案されている(例えば、特許文献1参照)。 Conventionally, a multiprocessor including a plurality of processors has been developed and put into practical use. For example, a multiprocessor has been proposed in which a control processor performs overall processing and exceptional processing, and a vector coprocessor performs iterative processing (see, for example, Patent Document 1).
その提案に係るシステムでは、コントロールプロセッサがスカラ演算を行い、ベクトルコプロセッサがベクトル演算を行うが、コントロールプロセッサが、ベクトルコプロセッサの初期化、開始及び停止を行うようになっている。これにより、2つのプロセッサの処理の同期化を実現するものである。 In the system according to the proposal, the control processor performs a scalar operation and the vector coprocessor performs a vector operation, and the control processor initializes, starts, and stops the vector coprocessor. As a result, the processing of the two processors is synchronized.
しかし、このようなマルチプロセッサを、ベクトル演算におけるベクトル長が短い(すなわち、データ数が少ない)データ処理に適用すると、初期化、開始及び停止のための、コントロールプロセッサのオーバヘッドが高くなり、プロセッサ全体の性能が上がり難いという問題があった。これは、コントロールプロセッサとベクトルコプロセッサの間の通信が律速し、プロセッサ全体の性能が制限されるからである。
そこで、本発明は、ベクトル演算用のプロセッサを制御するプロセッサのオーバヘッドを少なくしてプロセッサ全体の性能の低下を防止することができるプロセッサを提供することを目的とする。 Therefore, an object of the present invention is to provide a processor that can reduce the overhead of the processor that controls the processor for vector operation and can prevent the performance of the entire processor from being lowered.
本発明の一態様によれば、ベクトル演算のためのベクトル演算用パラメータを出力する第1のプロセッサと、前記ベクトル演算を前記ベクトル演算用パラメータに基づいて実行する第2のプロセッサと、を含み、前記第2のプロセッサは、前記ベクトル演算用パラメータを格納する第1のレジスタと、前記第1のプロセッサから指定された命令に従って、前記第1のレジスタに前記ベクトル演算用パラメータを書き込むスカラプロセッサと、前記第1のプロセッサにより指定された命令を、前記第1のレジスタに格納された前記ベクトル演算用パラメータに基づいて実行する1以上のベクトルプロセッサと、を有する According to an aspect of the present invention, the method includes: a first processor that outputs a vector operation parameter for vector operation; and a second processor that executes the vector operation based on the vector operation parameter; The second processor includes a first register that stores the vector operation parameter, a scalar processor that writes the vector operation parameter to the first register in accordance with an instruction specified by the first processor, One or more vector processors that execute an instruction designated by the first processor based on the vector operation parameter stored in the first register;
本発明によれば、ベクトル演算用のプロセッサを制御するプロセッサのオーバヘッドを少なくしてプロセッサ全体の性能の低下を防止することができるプロセッサを実現することができる。 ADVANTAGE OF THE INVENTION According to this invention, the processor which can reduce the overhead of the processor which controls the processor for vector operations, and can prevent the fall of the performance of the whole processor is realizable.
以下、図面を参照して本発明の実施の形態を説明する。
(プロセッサ1全体の構成)
まず、本実施の形態に係わるプロセッサの構成を説明する。図1は、本実施の形態に係わるプロセッサの構成を示すブロック図である。
以下、本実施の形態は、デジタルテレビジョン装置における画像データと音声データのデコード装置としてのプロセッサの例で説明する。
Embodiments of the present invention will be described below with reference to the drawings.
(Configuration of the entire processor 1)
First, the configuration of the processor according to the present embodiment will be described. FIG. 1 is a block diagram showing a configuration of a processor according to the present embodiment.
Hereinafter, the present embodiment will be described using an example of a processor as a decoding device for image data and audio data in a digital television apparatus.
図1に示すプロセッサ1は、2つのサブプロセッサ2,3を含むマルチプロセッサである。第1のプロセッサ2は、制御用及びオーディオデータ処理用のプロセッサであり、第2のプロセッサ3は、ビデオデータ処理用のプロセッサである。制御用のプロセッサ2は、プロセッサ3の制御と、音声データのデコード処理とを行い、ベクトル演算用のプロセッサ3は、ブロック単位(例えばマクロブロック単位)に分割された画像データに対して、ブロック毎に同じ処理を繰り返すような画像データのデコード処理を行う。
The
プロセッサ1は、さらに、ダイレクトメモリアクセス(以下、DMAという)コントローラ(以下、DMACと略す)4と、バスインターフェース(以下、バスI/Fと略す)5を有する。バスI/F5は、プロセッサ2と3を、グローバルバス7に接続するためのインターフェースである。グローバルバス7には、記憶部である主メモリ6が接続されている。よって、プロセッサ2と3は、グローバルバス7を介して主メモリ6と接続されている。グローバルバス7は、プロセッサ1と主メモリ6間のデータの送受信だけでなく、デジタルテレビジョン装置の他の機能等を実現するための回路、プロセッサ、チップ等との通信を行うためのバスでもある。
The
また、プロセッサ2とプロセッサ3は、制御バス8を介して、互いに接続され、かつ制御バス8にはDMAC4が接続されている。
さらにまた、プロセッサ3は、ローカルバス9を介してバスI/F5と接続されている。
The
Furthermore, the
プロセッサ2は、命令キャッシュ11と、データキャッシュ12と、中央処理装置(以下、CPUと略す)13とを含んで構成され、上述したように、プロセッサ3の制御と音声データの処理とを行う。
プロセッサ3は、命令メモリ21と、データメモリ22と、ベクトルレジスタ23と、DMAC24と、制御バスレジスタ25と、制御レジスタ26と、スカラプロセッサ31と、複数(ここでは2つ)のベクトルプロセッサ32、33とを含んで構成され、画像データのデコード処理を行う。
なお、図1では、プロセッサ3には、2つのベクトルプロセッサ32,33が設けられているが、3つ以上でもよい。
The
The
In FIG. 1, the
(プロセッサ2、プロセッサ3及びDMA4の構成)
次に、それぞれがサブプロセッサであるプロセッサ2とプロセッサ3の構成について説明する。
まず、プロセッサ2について説明する。
命令キャッシュ11は、CPU13が実行すべき1つの命令あるいは複数の命令(複数の命令からなるプログラムも、以下単に命令という)を一時的に格納するためのキャッシュであり、データキャッシュ12は、CPU13が処理すべきデータ及び処理したデータを一次的に格納するためのキャッシュである。
CPU13は、データキャッシュ12に格納されたデータについて、命令キャッシュ11に格納された命令を読み出して実行する。
プロセッサ2の命令キャッシュ11に格納される命令は、主メモリ6から読み出された命令である。データキャッシュ12に書き込まれるデータも、主メモリ6から読み出されたデータである。プロセッサ2において処理されてデータキャッシュ12に一時的に格納されたそれぞれのデータは、主メモリ6に転送されて記憶される。
(Configuration of
Next, the configurations of the
First, the
The
The
The instruction stored in the
従って、プロセッサ2は、主メモリ6に記憶された命令を実行し、主メモリ6に記憶されたプロセッサ3において実行すべき命令とデコードすべき対象データをDMAC4によりプロセッサ3に転送し、プロセッサ3に所定の画像処理、ここではデコード処理をベクトル演算により実行させる。
また、プロセッサ2は、後述するように、プロセッサ3にベクトル演算用パラメータを出力する。
Therefore, the
Further, the
次に、プロセッサ3について説明する。
命令メモリ21は、スカラプロセッサ31、ベクトルプロセッサ32,33及びDMAC24がそれぞれ実行すべき、あるいは実行可能な命令を記憶するための記憶領域を有する命令保持部である。
データメモリ22は、デコードすべき対象データと、デコードされた結果データとを、それぞれ記憶するための記憶領域を有するデータ保持部である。すなわち、データメモリ22は、対象データ記憶領域と結果データ記憶領域の2つの記憶領域を有する。
Next, the
The
The
命令メモリ21に書き込まれる命令も、主メモリ6から読み出された命令であり、データメモリ22に書き込まれるデータも、主メモリ6から読み出されたデータである。なお、プロセッサ3において処理されて得られた結果の結果データも、データメモリ22に出力され、その後転送されて、主メモリ6に記憶される。
The instruction written to the
ベクトルレジスタ23は、ベクトルプロセッサ32,33とデータメモリ22の間に設けられ、ベクトルプロセッサ32,33が処理する対象の単位データ、例えば16×16画素のマクロブロックデータを連続して格納するレジスタである。ベクトルプロセッサ22,23において処理すべき対象データと、ベクトルプロセッサ22,23において処理して得られた結果データが格納される。すなわち、ベクトルレジスタ23は、対象データ格納領域と結果データ格納領域の2つの格納領域を有する。
The
DMAC24は、ベクトルレジスタ23とデータメモリ22間で、対象データ及び結果データの転送を行うための転送部を構成する。DMAC24の動作は、命令メモリ21から読み出されたスカラLIW(Long Instruction Word)命令中に含まれる命令によって制御される。従って、あるベクトル演算が実行されている間に、その後に処理される対象データを、データメモリ22からベクトルレジスタ25へ予め転送してセットしておくようにすることができる。DMAC24を制御する命令については後述する。
制御バスレジスタ25は、命令メモリ21中の実行すべき命令のアドレス、データメモリ22中の処理すべき対象データのアドレス、処理して得られた結果データを格納するアドレス等を、プロセッサ2により制御バス8を介して書き込まれることによって、指定するためのレジスタである。
The DMAC 24 constitutes a transfer unit for transferring target data and result data between the
The
例えば、命令メモリ21には、それぞれがサブルーチンプログラムとしての複数の命令が格納され、データメモリ22にも、大きなサイズのデータが格納される場合がある。そのような場合、制御バスレジスタ25には、命令メモリ21中のどの命令(サブルーチン)を起動するのかを示すプログラムカウンタの初期値、及び大きなサイズのデータを格納するデータメモリ22中のデータのアドレスが保持される。
For example, the
具体的には、処理して得られた大きなサイズの結果データを、ローカルバス9を介して、プロセッサ2へのアドレスデータ等を供給する場合、制御バスレジスタ25には、スカラプロセッサ31及びベクトルプロセッサ32,33によって、その結果データを書き込む、データメモリ22中のアドレスデータが書き込まれる。
なお、プロセッサ2とプロセッサ3との間で、小さなサイズのデータの送受信が行われる場合もある。そのような場合、制御バスレジスタ25には、プロセッサ2とプロセッサ3との間で受け渡される小さなデータ構造のデータも格納される。
Specifically, when large-sized result data obtained by processing is supplied to the
In some cases, data of a small size is transmitted and received between the
制御レジスタ26は、プロセッサ2から受信した、ベクトルプロセッサ32,33が各種ベクトル演算を行うときに必要なベクトル演算用パラメータを格納するためのレジスタである。制御レジスタ26の複数のレジスタのそれぞれには、ベクトル演算の繰り返し回数、ベクトル演算時の自動インクリメントの幅、ベクトル演算器で使用する定数値データ、各ブロックの特徴量データ等のスカラデータが格納される。これらのデータは、制御バス8経由でプロセッサ2からは直接設定されない。これらのデータは、スカラプロセッサ31によって、直接、制御レジスタ26に設定される。
The
プロセッサ3のスカラプロセッサ31は、内部に汎用レジスタを持ち、算術論理演算命令、分岐命令などを実行する回路を含む。後述するように、スカラプロセッサ31は、プロセッサ2により指定された命令に従って、ベクトルプロセッサ32,33において実行される命令に関するパラメータを書き込んでセットするためのプロセッサである。スカラプロセッサ31が、必要に応じて制御バスレジスタ25と制御レジスタ26に対するデータの読み書きをすることができるように、スカラプロセッサ31と、制御バスレジスタ25及び制御レジスタ26との間は、データ転送用バス41,42によって接続されている。
The
例えば、スカラプロセッサ31が、ベクトルプロセッサ32,33において得られた画像の複雑度を示す特徴量データに基づいて各ブロックの特徴量に基づく処理等を行うような場合、その特徴量データに関するデータは、制御バスレジスタ25あるいは制御レジスタ26に書き込まれる。
For example, when the
なお、スカラプロセッサ31は、オペレーティングシステム(以下、OSという)等の処理を実行しないプロセッサである方が好ましい。スカラプロセッサ31をOSの処理ができるように構成してもよいが、OSの処理ができるように構成すると、半導体装置であるチップにおけるスカラプロセッサ31の部分の面積が広くなってしまうというデメリットがある。後述するように、パラメータの設定の処理だけ、あるいはパラメータの設定処理に加えて所定のスカラ演算(例えば、画像の特徴量の計算)を行うだけであれば、スカラプロセッサ31は、OSの処理を実行できないようなプロセッサである方が好ましい。
さらになお、スカラプロセッサ31は、ベクトルプロセッサ32,33において実行される命令に関するパラメータをセットするための専用のプロセッサであってもよい。
The
Furthermore, the
ベクトルプロセッサ32,33は、それぞれプロセッサ2により指定された命令を、制御レジスタ26に格納されたベクトル演算用パラメータに基づいて実行する。すなわち、ベクトルプロセッサ32,33は、それぞれ、必要に応じて、制御バスレジスタ25、制御レジスタ26及びベクトルレジスタ23からデータを読み出し、指定された命令に基づく演算を繰り返し実行し、演算結果の結果データを制御バスレジスタ25またはベクトルレジスタ23に書き込む。そのため、ベクトルプロセッサ32,33と、制御バスレジスタ25及び制御レジスタ26との間は、データ転送用バス41,42によって接続されている。ベクトルプロセッサ32,33は、それぞれ異なる演算を実行するようにしてもよいし、同じ演算を行うようにしてもよい。
特に、複数の命令にそれぞれ対応した複数のパラメータデータを制御レジスタ26に同時に設定できるように、スカラプロセッサ31と制御レジスタ26の間を接続するように設けられたデータ転送用バス42は、複数の信号線あるいは複数のバスから構成されている。ここでは、3つの命令に対応したパラメータデータを制御レジスタ26に並列に書き込んで設定できるように、3つのバスの信号線が並列に設けられている。そのため、データ転送用バス42は、制御バス8よりも並列データ転送能力が高くなるので、プロセッサ3は、複数のベクトルプロセッサ(ここでは2つのベクトルプロセッサ32,33)を同時に実行させて並列処理させることができる。
The
In particular, a
後述するように、スカラプロセッサ31用の命令の中には、スカラプロセッサ31が制御レジスタ26にどのようなデータを設定するかを指示する命令も含まれている。これにより、プロセッサ2が、制御レジスタ26に対するパラメータデータの設定を行う必要はないので、プロセッサがプロセッサ3を制御するためのオーバヘッドが少なくなる、すなわちプロセッサ2と3の間の通信により、プロセッサ1全体の処理速度が制限されるというようなことが無くなる。
As will be described later, the instruction for the
また、本実施の形態では、一つのスカラプロセッサ31に対して、複数の(ここでは2つの)ベクトルプロセッサ32,33が設けられている。これにより、従来のように、プロセッサ2から複数のベクトルプロセッサとの間で通信を行われないようにして、プロセッサ1の処理速度が制限されるというようにすることができる。
In this embodiment, a plurality of (here, two)
DMAC4は、主メモリ6と命令メモリ21の間、及び主メモリ6とデータメモリ22の間での、DMAによるデータ転送を行う転送部を構成する。DMAC4は、プロセッサ2のCPU13の制御の下で、主メモリ6と命令メモリ21の間、及び主メモリ6とデータメモリ22の間のデータ転送処理を行う。具体的には、プロセッサ2のCPU13は、DMAC4を制御して、実行すべき命令と対象データをそれぞれ主メモリ6から読み出して、命令メモリ21とデータメモリ22へデータ転送し、結果データをデータメモリ22から、主メモリ6へ転送して書き込む。そして、実行すべき命令は、ベクトル演算の場合、同じ処理を繰り返し実行することが多いので、命令メモリ21には、複数の命令が格納可能となっている。
The
そして、CPU13は、命令メモリ21に格納した命令のアドレスデータを、プロセッサ3の制御バスレジスタ25の所定の領域に、制御バス8経由で書き込む。具体的には、後述するように、デコード処理を行うときに、プロセッサ2は命令メモリ21中の、命令の先頭アドレスを指定することによって、プロセッサ3に、実行すべき命令を通知して指定することができる。
Then, the
なお、処理内容あるいは処理対象データによっては、プロセッサ3における命令メモリ21とデータメモリ22は、それぞれキャッシュでもよい。さらになお、プロセッサ3の命令メモリ21とデータメモリ22の容量を大きく取れる場合も、キャッシュミスの発生も低くなるので、命令メモリ21とデータメモリ22はそれぞれキャッシュでもよい。
Note that the
以上のように、プロセッサ1は、音声データと画像データの処理を行う、いわゆるメディアプロセッサであるが、プロセッサ2は、プロセッサ3を制御して、画像データのデコード処理を行わせている。
なお、本実施の形態では、上述したように、プロセッサ3は、画像データをブロック単位に分割してブロック毎に同じ処理を繰り返すような画像のデコード処理を行う。そのため、プロセッサ3では、そのような処理に最適なように、キャッシュではなく、それぞれ記憶容量が比較的小さい命令メモリ21とデータメモリ22が用いられている。これは、そのような処理の場合、CPU13は、デコード処理のために実行すべき命令及びデコード処理すべきデータを予測可能であること、そして、キャッシュを用いるとキャッシュミスの発生による処理の停止が発生してしまうからである。
As described above, the
In the present embodiment, as described above, the
(命令)
次に、プロセッサ3において実行される命令について説明する。
プロセッサ3において実行される命令には、大きく分けて、スカラLIW命令とベクトルLIW命令の2種類ある。特に、スカラLIW命令は、プロセッサ3内のDMAC24が実行するDMAに関する各種パラメータを設定するフィールドと、ベクトル演算用のパラメータを制御レジスタ26に設定するためのフィールドを含む。
(order)
Next, instructions executed in the
The instructions executed in the
命令メモリ26には、スカラプロセッサ31用の命令としてのスカラLIW命令と、ベクトルプロセッサ32,33用の命令としてのベクトルLIW命令とが混在した命令群が記憶される。従って、スカラLIW命令とベクトルLIW命令は、それぞれ、スカラプロセッサ用の命令であるのか、ベクトル演算用の命令であるのかが識別できるようにするための指定(あるいは識別)フィールドを有する。なお、ベクトルLIW命令には、その命令がベクトルプロセッサ32と33のいずれのプロセッサ用の命令なのかを示す、すなわち識別するデータが含まれる。
The
図2は、複数の命令が記憶された命令メモリ21の構成を説明するための図である。図2に示すように、命令メモリ21には、複数のLIW命令が記憶され、スカラプロセッサ31用の命令と、ベクトルプロセッサ32,33用の命令が混在して含まれている。CPU13が、複数のLIW命令の中から実行すべき命令を指定するときには、命令メモリ21中の、その実行すべき命令の先頭アドレスを指定することによって、ベクトルプロセッサ32,33に実行すべき命令を通知する。
FIG. 2 is a diagram for explaining the configuration of the
図3は、各LIW命令の構成例を示す図である。1つのLIW命令50は、ここでは、128ビット長を有している。スカラLIW命令とベクトルLIW命令のいずれの場合も、1つのLIW命令50は、スカラプロセッサ21用の命令なのか、あるいはベクトルプロセッサ31,32のいずれのプロセッサ用の命令なのかを示すフィールド51を含む。すなわち、実行すべきプロセッサを識別するための識別フィールドを有する。さらに、本実施の形態では、1つのLIW命令50は、4つのフィールド52,53,54,55を有する。
まず、LIW命令50がスカラLIW命令の場合について説明する。スカラLIW命令には、DMAC24に対するDMA命令である場合と、ベクトル演算用のパラメータを制御レジスタ26に設定するためのベクトル演算パラメータ設定命令である場合とがある。
FIG. 3 is a diagram illustrating a configuration example of each LIW instruction. Here, one
First, the case where the
スカラLIW命令がDMAC24に対するDMA命令の場合、フィールド52にはDMAC24用の起動指示とDMA用のパラメータ(例えば、データメモリ22中の対象データのアドレスデータ等)とが含まれ、他のフィールド53,54,55には、何も実行しないことを示すNOPが含まれるように記述される。言い換えると、DMAC24は、スカラLIW命令中のフィールド52に含まれるパラメータ等に基づいて、ベクトルレジスタ23とデータメモリ22の間でDMAを行うように構成されている。
なお、DMAC24用の起動命令とDMA用のパラメータを、スカラLIW命令中に含めるようにしたのは、スカラLIW命令と、ベクトルLIW命令とを比べた場合、スカラプロセッサ31に供給させるスカラ演算用の命令は、ベクトルプロセッサ32,33に実行させる命令よりも短くて済むためである。
When the scalar LIW instruction is a DMA instruction for the
The start instruction for
また、スカラLIW命令がベクトル演算のための各種パラメータを制御レジスタ26に設定するための命令の場合、フィールド53,54,55には各種パラメータを制御レジスタ26に設定するためパラメータが含まれる。具体的には、フィールド53,54,55には、それぞれ、制御レジスタ26中のレジスタの番号とパラメータの値が含まれる。制御レジスタ26中の各レジスタは、ベクトル演算における各種パラメータのそれぞれに対応しており、そのレジスタの番号を指定し、その番号のレジスタにパラメータの値を書き込むことにより、ベクトル演算の各種パラメータが設定され得る。各種パラメータは、例えば、ベクトル演算の繰り返し回数、ベクトル演算時の自動インクリメントの幅、ベクトル演算器で使用する定数値データ等である。よって、スカラLIW命令は、ベクトルプロセッサ32,33のそれぞれにおいて実行されるベクトル演算のための各種パラメータを、制御レジスタ26に設定するための命令を含む。
以上のように、スカラLIW命令は、DMAC24に対するDMA処理の指示をする命令である場合と、ベクトル演算のためのパラメータ設定の指示をする命令である場合がある。また、ベクトルLIW命令は、識別フィールドで指定されたベクトルプロセッサで実行される命令である。すなわち、命令メモリ21に記憶される命令には、DMAC24に対するDMA処理の指示をする命令と、ベクトル演算のためのパラメータ設定の指示をする命令と、ベクトルプロセッサで実行される命令とが含まれ、かつ、DMA処理の指示をする命令と、ベクトル演算のためのパラメータ設定の指示をする命令とは、1つのLIW命令中に含まれる。
When the scalar LIW instruction is an instruction for setting various parameters for vector operation in the
As described above, the scalar LIW instruction may be an instruction for instructing
ベクトル演算は、識別フィールドで指定されたベクトルプロセッサにおいて、対応するレジスタに格納されたパラメータを用いて実行される。例えば、ベクトルプロセッサ32において、あるベクトル演算が、繰り返し実行される場合、制御レジスタ26内の、ベクトルプロセッサ3の繰り返し回数を格納する所定のレジスタのデータに基づいて、命令メモリ21中の1つの又は複数のベクトルLIW命令がその回数だけ繰り返し実行される。なお、そのような繰り返し回数等のパラメータは、上述したように、スカラプロセッサ31によって、制御レジスタ26に格納される。
The vector operation is executed using the parameters stored in the corresponding register in the vector processor specified by the identification field. For example, when a vector operation is repeatedly executed in the
従って、複数の命令をベクトルLIW命令中に含ませることができるので、複数の(ここでは2つの)ベクトルプロセッサのうち、一つのベクトルプロセッサが自動的に、ある演算を繰り返し実行している間に、別のベクトルプロセッサが、ベクトルLIW命令により起動されて、別の演算を自動的に繰り返し実行するようにすることができる。また、複数のベクトルプロセッサが自動的にある演算を繰り返し実行している間に、並行して、スカラプロセッサ31がスカラLIW命令を実行することもできる。さらに、DMAC24は、スカラプロセッサ31とベクトルプロセッサ32,33による処理とは、並行してDMAを実行することができる。
Therefore, since a plurality of instructions can be included in the vector LIW instruction, one of the plurality (here, two) of vector processors is automatically executed while a certain operation is repeatedly executed. Another vector processor can be activated by the vector LIW instruction to automatically perform another operation repeatedly. In addition, the
(処理の流れ)
次に、プロセッサ2とプロセッサ3との間で、画像データのデコード処理を行う際にお互いに処理の同期を取るための動作について説明する。図4は、プロセッサ2と3の間での処理の流れの例を説明するための図である。図4は、複数のマクロブロックのデータをデコードするときに、プロセッサ2からの1回の命令の起動で、複数のマクロブロックのデータに対して、同じ命令を実行する場合の例を示す。
上述したように、はじめに、プロセッサ2は、DMA4によって、実行すべき命令あるいは複数の命令群(すなわちプログラム)を、命令メモリ21に予めロード、すなわち転送して記憶させておく(ステップS1)。これは、画像データのデコード処理のように、複数のブロックに対して同じ命令を繰り返して行うような場合は、その命令が命令メモリ21に一旦格納されれば、その後は、その格納された命令を繰り返して実行すればよいからである。
なお、デコード処理の直前に、プロセッサ2が、命令メモリ21に、DMAC4によって転送してもよい。
(Process flow)
Next, an operation for synchronizing processing between the
As described above, first, the
Note that the
そして、次に、プロセッサ2は、デコードすべき対象データを、プロセッサ3のデータメモリ22へ転送して供給する(ステップS2)。ここでは、例えば、対象データとして、複数のマクロブロックのデータが、まとめてデータメモリ22の対象データ記憶領域に転送される。そのとき、供給されるデータの構造すなわちサイズが、小さい場合と大きい場合がある。
小さなサイズの対象データをプロセッサ3へ転送する場合、プロセッサ2は、制御バス8経由でプロセッサ3内の制御バスレジスタ25に、その対象データを直接に書き込むようにして、転送する。
Then, the
When transferring target data of a small size to the
これに対して、大きなデータ構造の対象データをプロセッサ3へ転送する場合は、プロセッサ2は、まず、第1段階として、DMAC4を利用して、ローカルバス9経由でプロセッサ3内のデータメモリ22の対象データ記憶領域にDMAによりデータ転送する。なお、プロセッサ2は、マクロブロック単位で対象データの転送を行うのではなく、1回のDMAC4の起動で複数のデータをまとめて転送するようにしてもよい。
On the other hand, when transferring the target data having a large data structure to the
そして、第2段階として、プロセッサ2は、転送した対象データのアドレスデータ、すなわちデータメモリ22中のアドレスデータを、プロセッサ3の制御バスレジスタ25に制御バス8経由で書き込む。その結果、プロセッサ3は、デコードすべき対象データのアドレスデータを得ることができる。
Then, as the second stage, the
第3段階として、命令メモリ21に格納されたDMAC24に対する命令によって、プロセッサ3内のDMAC24が起動される。DMAC24は、制御バスレジスタ25に格納されたアドレスデータを用いて、DMAにより、データメモリ22中の1つのマクロブロックのデータをベクトルレジスタ23に転送する。なお、プロセッサ2は、1回のDMAC24の起動で複数のマクロブロックのデータをまとめて転送してもよい。
以上のようにして、デコードすべき対象データが、プロセッサ3のベクトルレジスタ23に格納される。
As a third stage, the
As described above, the target data to be decoded is stored in the
また、DMAにより結果データを主メモリ6へ転送するために、プロセッサ2は、プロセッサ3に、結果データを格納する、データメモリ22中のアドレスを通知する(ステップS3)。この通知は、上述したように、プロセッサ2が、制御バスレジスタ25にそのアドレスを書き込むことによって行われる。
Further, in order to transfer the result data to the
次に、プロセッサ2は、命令メモリ21中の実行すべき命令を、プロセッサ3へ通知する。この通知は、具体的には、プロセッサ2が、制御バス8経由で、プロセッサ3の制御バスレジスタ25の所定の領域に、実行すべき命令(あるいはサブルーチン)の、命令メモリ26中の先頭アドレスデータを書き込むことによって行われる。これにより、プロセッサ2は、プロセッサ3に、命令メモリ21中の、実行すべき命令を指定することができる。
Next, the
そして、プロセッサ2が、制御バス8経由で、制御バスレジスタ25の所定の領域(上記の命令の先頭アドレスのデータを格納した領域とは別の領域)に、起動指示を示すデータ、例えばフラグデータを書き込む。これにより、プロセッサ2は、例えばプロセッサ3のベクトルプロセッサ32,33に、命令の起動を指示することができる(ステップS4)。
その結果、プロセッサ3において、指定されたアドレスから命令が起動され、指定されたベクトルプロセッサにおいてその命令が実行される(ステップS11)。
このとき、命令の起動は1回行うだけで、その命令は、複数のマクロブロックのデータに対して繰り返すように行われる。例えば、マクロブロック毎に同じ命令を実行するような場合、複数のマクロブロックに対して繰り返しその命令を実行するように、所定のパラメータ(例えば繰り返し回数のパラメータ)を設定することによって、最初に1回だけ命令を起動するだけで、指定されたベクトルプロセッサが複数のマクロブロックに対して、同じ命令を実行するようにすることができる。
Then, the
As a result, the
At this time, the instruction is activated only once, and the instruction is repeated for the data of a plurality of macroblocks. For example, when the same instruction is executed for each macroblock, a predetermined parameter (for example, a parameter for the number of repetitions) is set to 1 so that the instruction is repeatedly executed for a plurality of macroblocks. It is possible to cause the designated vector processor to execute the same instruction for a plurality of macroblocks by activating the instruction only once.
プロセッサ2は、ステップS4の後は、プロセッサ3から1つのマクロブロックに対する命令の実行が終了したか否かを判定する(ステップS5)。
一方、プロセッサ3は、命令を1つのマクロブロックに対して実行し、その命令の実行が終了すると、割り込み命令をプロセッサ2へ出力する。その結果、割り込み命令はプロセッサ2に受信され、プロセッサ2は、1つのマクロブロックに対する命令の実行が終了したことが判る。よって、ステップS5において、命令の実行が終了したと判断されて、結果データを主メモリ6へ出力する(ステップS6)。
After step S4, the
On the other hand, the
なお、デコードデータ、すなわち結果データは、一旦、ベクトルレジスタ23に格納されるが、その後は、DMAC24により、データメモリ22中の結果データ記憶領域中の指定されたアドレスに転送されて格納される。よって、結果データは、データメモリ22から主メモリ6あるいはプロセッサ2へ出力される。
具体的には、デコードして得られた結果データのサイズあるいは構造が、小さい場合と大きい場合がある。小さなデータ構造のデータの場合、プロセッサ3が、制御バス8経由で、プロセッサ3内の制御バスレジスタ25に、結果データを書き込む。そして、プロセッサ2は、その制御バスレジスタ25からその結果データを直接に読み出すことによって、結果データを得ることができる。
The decoded data, that is, the result data is temporarily stored in the
Specifically, the size or structure of the result data obtained by decoding may be small or large. In the case of data having a small data structure, the
また、大きなデータ構造の結果データを、データメモリ22から主メモリ6へ転送する場合は、ステップS3において、データメモリ22のどこに結果データを格納すべきかのアドレスは指定されているので、プロセッサ3は、命令メモリ21中のDMAC24のDMA転送を実行させる命令により、DMAC24を起動して、ベクトルレジスタ23からデータメモリ22の結果データ記憶領域の指定されたアドレスに、結果データを転送することができる。なお、プロセッサ3は、1回のDMAC24の起動で複数のデータをまとめて、ベクトルレジスタ23からデータメモリ22へ転送するようにしてもよい。
Further, when transferring the result data having a large data structure from the
そして、プロセッサ2は、DMAC4を用いて、ローカルバス9を経由して、データメモリ22から主メモリ6へ結果データを転送して出力する。
なお、ここでも、プロセッサ2は、1回のDMAC4の起動で複数の結果データをまとめて、データメモリ22から主メモリ6へ転送するようにしてもよい。
Then, the
Here again, the
対象データが主メモリ6へ出力されると、次にデコードすべき対象データがあるか否かを判定、すなわちデコードすべき対象データである全てのマクロブロックについて命令の実行が終了したか否かを判断する(ステップS7)。
When the target data is output to the
全てのマクロブロックについて処理が終了していない場合は、処理は、ステップS5に戻り、プロセッサ2は、ステップS5において、プロセッサ3から割り込み命令を受信するのを待つ。割り込み命令が受信されると、ステップS5で、次のマクロブロックのデータに対する命令の実行が終了したと判断され、プロセッサ2は、全てのマクロブロックについて命令の実行が終了するまで、ステップS5からS7を繰り返す。
If the processing has not been completed for all macroblocks, the processing returns to step S5, and the
従って、プロセッサ3は、複数のマクロブロックのデータに対して順次、命令を実行し、各マクロブロックに対する命令の実行が終了する度に、割り込み命令を出力する。指定されたすべてのマクロブロックのデータに対する命令の実行が終了すると、プロセッサ3の処理は、停止する。
Accordingly, the
このとき、具体的には、プロセッサ3では、命令メモリ21に格納されたDMAC24に対する命令によって、DMAC24が起動され、データメモリ22中の対象データがベクトルレジスタ23に転送される。そして、プロセッサ3は、次の対象データである各マクロブロックのデータに対して、命令を実行するが、その命令の起動は、プロセッサ2から行われず、上述したように、その命令は、繰り返し回数等のパラメータによって設定された回数だけ、プロセッサ3において自動的実行される。そして、各マクロブロックに対して命令の実行が終了する度に、結果データが出力され、かつ次の処理すべき対象データが入力されて、その命令が実行される。
At this time, specifically, in the
従って、例えば、n個のマクロブロックに対して、同じデコード処理を施すために命令をn回実行する場合であっても、プロセッサ2は、最初の1回目だけ、プロセッサ3に対して命令の起動を行うだけで、後は、プロセッサ3内で、n個のマクロブロックに対して自動的に同じ命令を実行させることができる。よって、プロセッサ2は、その間、他の処理を実行することができる。
図5は、プロセッサ2と3の間での処理の流れの他の例を説明するための図である。図4と同じ処理については、同じ符号を付し、説明は省略する。図5は、複数のマクロブロックのデータをデコードするときに、プロセッサ2からの命令の起動の度に、1つのマクロブロックのデータに対して、命令が実行される場合の例を示す。
図5の場合も、はじめに、プロセッサ2は、DMA4によって、実行すべき命令あるいは複数の命令群を、命令メモリ21にロードしておく(ステップS1)。
そして、次に、プロセッサ2は、デコードすべき対象データであるマクロブロックのデータを、DMA4によってプロセッサ3のデータメモリ22へ転送して供給する(ステップS2)。ここでは、例えば、対象データとして、1つのマクロブロックのデータが、データメモリ22の対象データ記憶領域に転送される。
Therefore, for example, even when an instruction is executed n times to perform the same decoding process on n macroblocks, the
FIG. 5 is a diagram for explaining another example of the flow of processing between the
Also in the case of FIG. 5, first, the
Then, the
また、供給される対象データの構造すなわちサイズが、小さい場合と大きい場合があるが、図4で説明した手順と同じ手順で、対象データは、プロセッサ2からプロセッサ3へ転送される。
その結果、デコードすべき対象データが、プロセッサ3のベクトルレジスタ23に格納される。
また、プロセッサ2は、結果データを記憶する、データメモリ22中のアドレスを、プロセッサ3に通知する(ステップS3)。
Further, although the structure, that is, the size of the supplied target data may be small or large, the target data is transferred from the
As a result, the target data to be decoded is stored in the
Further, the
そして、プロセッサ2は、プロセッサ3に、命令の起動を指示する(ステップS4)。
その結果、プロセッサ3において、指定されたアドレスから命令が起動され、命令が実行されるが、命令中に書かれたHALT命令(停止命令)が実行されると、ベクトルプロセッサは一旦停止する(ステップS21)。
Then, the
As a result, in the
HALT命令が実行されると、プロセッサ3は、HALT命令が実行されたことをプロセッサ2へ通知し、プロセッサ2は、命令の実行の終了を検知することができる。
When the HALT instruction is executed, the
プロセッサ2は、ステップS4の後、命令の実行が終了したか否かを監視し(ステップS5)、その終了を検知すると、結果データを出力する(ステップS6)。結果データの出力は、図4の場合と同様である。
After step S4, the
対象データが主メモリ6へ出力されると、次にデコードすべき対象データがあるか否かを判定、すなわちデコードすべき全てのマクロブロックについて命令の実行が終了したか否かを判断する(ステップS22)。
When the target data is output to the
全てのマクロブロックについて命令の実行が終了していない場合は、プロセッサ2の処理は、ステップS2に戻り、次のマクロブロックの対象データを主メモリ6から、データメモリ22へ転送して供給する(ステップS2)。
以下、上述したステップS2からS22までの処理が、指定された全てのブロックについて実行されるまで、繰り返される。
If the instruction execution has not been completed for all the macroblocks, the processing of the
Thereafter, the above-described processing from steps S2 to S22 is repeated until all the designated blocks are executed.
プロセッサ3は、対象データである1つのマクロブロックのデータに対する命令の実行の最後にHALT命令を実行し、その後は、その命令の実行については停止状態となる。ステップS4において、プロセッサ2から命令の起動がされると、再度、命令を実行する。
このようにして、複数のマクロブロックのデータに対して、同一の命令が連続して実行される。
The
In this way, the same instruction is continuously executed on the data of a plurality of macroblocks.
図5のような処理においても、プロセッサ2は、ベクトル演算のための処理としては、命令の指定と起動を行うだけでよいので、プロセッサ3に対する制御のためのオーバヘッドが少なくて済む。
Also in the process as shown in FIG. 5, the
以上のように、上述した実施の形態に係るプロセッサ1によれば、ベクトル演算用のプロセッサ3を制御する制御用のプロセッサ2のオーバヘッドを少なくしてプロセッサ全体の性能の低下を防止することができる。
As described above, according to the
また、プロセッサ1によれば、ベクトル演算命令を命令メモリ21からベクトルプロセッサ32,33に直接供給するので、ベクトル演算の起動頻度が高いアプリケーションに対しても、プロセッサ1の性能が低下し難い。
Further, according to the
さらにまた、適用するアプリケーションのスカラ演算とベクトル演算の比率に応じて、プロセッサ3内のベクトルプロセッサの数を柔軟に調整できるので、広範囲な種々のアプリケーションに応じて、低コストでかつ高い性能を達成できる構成を提供することができる。
Furthermore, the number of vector processors in the
(変形例)
次に、変形例を説明する。
図6は、1つの制御用のプロセッサに対して、ベクトル演算を行う複数のプロセッサを設けた第1の変形例のプロセッサの構成例を示すブロック図である。図1の構成と同じ構成要素については、同じ符号を付して説明は省略する。図6に示すように、メディアプロセッサであるプロセッサ1Aは、1つのプロセッサと、それぞれがベクトル演算を行う複数のプロセッサを含んで構成されている。プロセッサ1Aにおいて、制御用のプロセッサ2Aは、図1のプロセッサ2と同じ構成を有する。ベクトル演算を行うm個のプロセッサ3A1〜3Am(以下、纏めてあるいはそれぞれのプロセッサを指すときは、プロセッサ3Aという)は、それぞれ図1のプロセッサ3と同じ構成を有し、プロセッサ3A1〜3Amのそれぞれにおいて、制御バスレジスタ25は、制御バス8に接続されており、命令メモリ21とデータメモリ22は、ローカルバス9に接続されている。なお、mは、整数である。DMAC4Aは、上述したDMAC4と同様に、各プロセッサ3Aの命令メモリ21と主メモリ6との間、及び各プロセッサ3Aのデータメモリ22と主メモリ6との間、における命令及びデータの転送を、プロセッサ2Aの制御の下で実行する。
(Modification)
Next, a modified example will be described.
FIG. 6 is a block diagram illustrating a configuration example of a processor according to a first modified example in which a plurality of processors that perform vector operations are provided for one control processor. The same components as those in FIG. 1 are denoted by the same reference numerals and description thereof is omitted. As shown in FIG. 6, the processor 1A, which is a media processor, includes a single processor and a plurality of processors each performing vector operations. In the processor 1A, the
このような構成によれば、ベクトル演算に高い性能を要求された場合に、プロセッサ3Aを複数個設けて並列度を上げても、プロセッサ2は、ベクトル演算のための処理としては、命令の指定と起動を行うだけでよいので、オーバヘッドが少なくて済む。
According to such a configuration, when high performance is required for vector operation, even if a plurality of processors 3A are provided to increase the degree of parallelism, the
上述した特開平10-149341号公報に開示の構成に比べても、図6の構成のプロセッサ1Aの方が、オーバヘッドは少なくて済むものである。
すなわち、上述した特開平10-149341号公報に開示の構成においては、ベクトル演算に高い性能を要求された場合、ベクトルコプロセッサを複数設けて並列度を上げることにより、より高い性能に対応することもできるが、コントロールプロセッサは、複数のベクトルコプロセッサに対する、開始、停止等のための制御のオーバヘッドも高くなり、性能の向上は上がり難い。なお、より高い性能を上げるには、コントロールプロセッサとベクトルコプロセッサからなるプロセッシングコアを、複数並べて設けることも考えられるが、そのようなマルチプロセッサが適用装置される装置によっては、コストパフォーマンスが低くなる。
Compared to the configuration disclosed in Japanese Patent Laid-Open No. 10-149341 described above, the processor 1A having the configuration of FIG. 6 requires less overhead.
That is, in the configuration disclosed in Japanese Patent Laid-Open No. 10-149341 described above, when high performance is required for vector calculation, it is possible to cope with higher performance by providing a plurality of vector coprocessors to increase the degree of parallelism. However, the control processor has a high control overhead for starting, stopping, etc. for a plurality of vector coprocessors, and it is difficult to improve the performance. In order to increase the performance, it may be possible to arrange a plurality of processing cores composed of a control processor and a vector coprocessor. However, depending on the device to which such a multiprocessor is applied, the cost performance is lowered. .
これに対して、第1の変形例に係るプロセッサによれば、一つの汎用の制御用のプロセッサ2Aに対して複数のサブプロセッサを接続できるので、ベクトル演算処理の比率が、制御処理に対して高いアプリケーションについては、従来よりも効率よく高い性能を達成できる。また、プロセッサ3Aの単位でサブプロセッサを増やすことが可能であるので、プロセッサ1Aは、アプリケーションに応じてプロセッサ3Aの数を調整することにより、さまざまなアプリケーションに対して、効率よく高い性能を達成できる構成を提供することができる。さらに、各プロセッサ3A内にスカラプロセッサを含み、そのスカラプロセッサがベクトルプロセッサを素早く起動するための処理を行うので、プロセッサ3Aの数が増えてもベクトル演算の起動処理が律速しにくい。
On the other hand, according to the processor according to the first modification, a plurality of sub-processors can be connected to one general-
図7は、制御用のプロセッサにSIMD(Single Instruction/Multiple Data)コプロセッサを設け、さらに、ベクトル演算を行うプロセッサにもSIMDコプロセッサを設けた第2の変形例のプロセッサの構成例を示すブロック図である。図1の構成と同じ構成要素については、同じ符号を付して説明は省略する。 FIG. 7 is a block diagram showing a configuration example of a processor according to a second modified example in which a SIMD (Single Instruction / Multiple Data) coprocessor is provided in a control processor, and a SIMD coprocessor is also provided in a processor that performs vector operations. FIG. The same components as those in FIG. 1 are denoted by the same reference numerals and description thereof is omitted.
プロセッサ2Bは、拡張可能な汎用プロセッサであるCPU13を有し、CPU13には、拡張機能を実行するプロセッサとしてSIMDコプロセッサ14が接続されている。また、サブプロセッサとしてのプロセッサ3Bには、図1と同様の構成に加えて、SIMDコプロセッサ34を有する。SIMDコプロセッサ34は、内部にコプロセッサ用の汎用レジスタを有する。この場合、スカラLIW命令は、ベクトル演算用パラメータを設定するためのスカラ演算を指定するフィールドと、DMAC24へのパラメータを設定するフィールドとに加えて、SIMDコプロセッサ34における演算を指定するフィールドと、を含む。
The processor 2B has a
このような構成によれば、ベクトル演算を行うプロセッサ3Bにおいて、画像データに対するデブロッキング処理の前処理における検出処理等の処理を、スカラプロセッサであるSIMDコプロセッサ14又は34にさせることができるので、プロセッサ1Bの処理能力の向上を図ることができる。すなわち、例えば、画像等の処理において、ベクトル演算による画像処理した結果に対して、スカラ量を算出し、さらにそのスカラ量に基づいて別な処理を行うような、ベクトル演算とスカラ演算とが混在している複雑な応用の場合には、スカラ演算をSIMDコプロセッサ14又は34にさせることができる。
According to such a configuration, in the
すなわち、上述した特開平10-149341号公報に開示の構成においては、このようなベクトル演算とスカラ演算とが混在している複雑な応用の場合、スカラ演算量の増加に対して、ベクトル演算量は相対的に増えないので、プロセッサ全体の性能は上がり難い。 That is, in the configuration disclosed in the above-mentioned Japanese Patent Application Laid-Open No. 10-149341, in the case of a complicated application in which such vector calculation and scalar calculation are mixed, the amount of vector calculation is increased with respect to an increase in the amount of scalar calculation. Does not increase relatively, so the overall performance of the processor is unlikely to increase.
これに対して、第2の変形例に係るプロセッサ1Bによれば、ベクトル長が短い処理に対してはSIMDコプロセッサ14又は34で処理するようにできるので、ベクトル長の長い処理と短い処理が混在しているときに、プロセッサ3Bにおいて効率よく高い性能を達成することができる。
On the other hand, according to the processor 1B according to the second modification, the
以上説明した実施の形態に係わる装置は、デジタルテレビジョン装置であったが、上述したプロセッサ1、1A、1Bは、デジタルテレビジョン装置以外にも、例えば、DVDレコーダ等の他のデジタル家電製品、車載用画像認識処理装置、ロボット用画像認識処理装置等の各種画像処理装置、パーソナルコンピュータ、携帯電話等の機器にも適用可能である。
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
The apparatus according to the embodiment described above is a digital television apparatus. However, the above-described
The present invention is not limited to the above-described embodiments, and various changes and modifications can be made without departing from the scope of the present invention.
1,1A,1B プロセッサ、2,2A,2B,3,3A,3B サブプロセッサ、7 グローバルバス、8 制御バス、9 ローカルバス、21 命令メモリ、41,42 データ転送用バス、50 LIW命令、51〜55 フィールド 1, 1A, 1B processor, 2, 2A, 2B, 3, 3A, 3B sub-processor, 7 global bus, 8 control bus, 9 local bus, 21 instruction memory, 41, 42 data transfer bus, 50 LIW instruction, 51 ~ 55 fields
Claims (5)
前記ベクトル演算を前記ベクトル演算用パラメータに基づいて実行する第2のプロセッサと、
を含み、
前記第2のプロセッサは、
前記ベクトル演算用パラメータを格納する第1のレジスタと、
前記第1のプロセッサから指定された命令に従って、前記第1のレジスタに前記ベクトル演算用パラメータを書き込むスカラプロセッサと、
前記第1のプロセッサにより指定された命令を、前記第1のレジスタに格納された前記ベクトル演算用パラメータに基づいて実行する1以上のベクトルプロセッサと、
を有することを特徴とするプロセッサ。 A first processor for outputting vector operation parameters for vector operation;
A second processor that executes the vector operation based on the vector operation parameters;
Including
The second processor is
A first register for storing the vector operation parameters;
A scalar processor for writing the vector operation parameter to the first register in accordance with an instruction designated by the first processor;
One or more vector processors that execute instructions designated by the first processor based on the vector operation parameters stored in the first register;
A processor characterized by comprising:
記憶部から前記命令保持部に前記複数の命令を書き込むために、前記複数の命令を前記記憶部から前記命令保持部に転送する第1の転送部と、
を有し、
前記1以上のベクトルプロセッサは、それぞれ、前記指定された命令のアドレスに基づいて、前記複数の命令の中から前記第1のプロセッサにより指定された命令を実行することを特徴とする請求項2に記載のプロセッサ。 An instruction holding unit for holding a plurality of instructions executable in the one or more vector processors;
A first transfer unit configured to transfer the plurality of instructions from the storage unit to the instruction holding unit in order to write the plurality of instructions from the storage unit to the instruction holding unit;
Have
3. The one or more vector processors each execute an instruction designated by the first processor from the plurality of instructions based on an address of the designated instruction. The processor described.
それぞれが、前記ベクトル演算を前記ベクトル演算用パラメータに基づいて実行する複数の第2のプロセッサと、
を含み、
前記複数の第2のプロセッサは、それぞれ、
前記ベクトル演算用パラメータを格納する第1のレジスタと、
前記第1のプロセッサから指定された命令に従って、前記第1のレジスタに前記ベクトル演算用パラメータを書き込むスカラプロセッサと、
前記第1のプロセッサにより指定された命令を、前記第1のレジスタに格納された前記ベクトル演算用パラメータに基づいて実行する1以上のベクトルプロセッサと、
を有することを特徴とするプロセッサ。 A first processor for outputting vector operation parameters for vector operation;
A plurality of second processors each executing the vector operation based on the vector operation parameters;
Including
Each of the plurality of second processors is
A first register for storing the vector operation parameters;
A scalar processor for writing the vector operation parameter to the first register in accordance with an instruction designated by the first processor;
One or more vector processors that execute instructions designated by the first processor based on the vector operation parameters stored in the first register;
A processor characterized by comprising:
前記ベクトル演算を前記ベクトル演算用パラメータに基づいて実行する第2のプロセッサと、
を含み、
前記第2のプロセッサは、
前記ベクトル演算用パラメータを格納する第1のレジスタと、
前記第1のプロセッサから指定された命令に従って、前記第1のレジスタに前記ベクトル演算用パラメータを書き込む第1のスカラプロセッサと、
前記第1のプロセッサから指定された命令に従って、所定のスカラ演算を行う第2のスカラプロセッサと、
前記第1のプロセッサにより指定された命令を、前記第1のレジスタに格納された前記ベクトル演算用パラメータに基づいて実行する1以上のベクトルプロセッサと、
を有することを特徴とするプロセッサ。 A first processor for outputting vector operation parameters for vector operation;
A second processor that executes the vector operation based on the vector operation parameters;
Including
The second processor is
A first register for storing the vector operation parameters;
A first scalar processor for writing the vector operation parameter to the first register in accordance with an instruction designated by the first processor;
A second scalar processor that performs a predetermined scalar operation in accordance with an instruction designated by the first processor;
One or more vector processors that execute instructions designated by the first processor based on the vector operation parameters stored in the first register;
A processor characterized by comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006345059A JP2008158699A (en) | 2006-12-21 | 2006-12-21 | Processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006345059A JP2008158699A (en) | 2006-12-21 | 2006-12-21 | Processor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008158699A true JP2008158699A (en) | 2008-07-10 |
Family
ID=39659549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006345059A Pending JP2008158699A (en) | 2006-12-21 | 2006-12-21 | Processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008158699A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8858393B2 (en) | 2011-09-23 | 2014-10-14 | Chrysler Group Llc | Apparatus and method for rapid warm-up of a combustion engine |
JP2014235613A (en) * | 2013-06-03 | 2014-12-15 | 富士通株式会社 | Signal processing apparatus and signal processing method |
WO2020059156A1 (en) * | 2018-09-18 | 2020-03-26 | Nec Corporation | Data processing system, method, and program |
-
2006
- 2006-12-21 JP JP2006345059A patent/JP2008158699A/en active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8858393B2 (en) | 2011-09-23 | 2014-10-14 | Chrysler Group Llc | Apparatus and method for rapid warm-up of a combustion engine |
JP2014235613A (en) * | 2013-06-03 | 2014-12-15 | 富士通株式会社 | Signal processing apparatus and signal processing method |
WO2020059156A1 (en) * | 2018-09-18 | 2020-03-26 | Nec Corporation | Data processing system, method, and program |
JP2022500782A (en) * | 2018-09-18 | 2022-01-04 | 日本電気株式会社 | Data processing systems, methods, and programs |
JP7136343B2 (en) | 2018-09-18 | 2022-09-13 | 日本電気株式会社 | Data processing system, method and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8020169B2 (en) | Context switching system having context cache and a register file for the save and restore context operation | |
US7627697B2 (en) | Device using multiple DMA controllers for transferring data between a storage device and multiple processing units | |
US20070130446A1 (en) | Processor apparatus including specific signal processor core capable of dynamically scheduling tasks and its task control method | |
US20060200826A1 (en) | Processor and information processing method | |
US9043806B2 (en) | Information processing device and task switching method | |
JP2006216060A (en) | Data processing method and data processing system | |
KR102332523B1 (en) | Apparatus and method for execution processing | |
JP3561506B2 (en) | Arithmetic system | |
US20110173361A1 (en) | Information processing apparatus and exception control circuit | |
JP6744806B2 (en) | Multiprocessor | |
JP2008158699A (en) | Processor | |
JP2006338538A (en) | Stream processor | |
US20090138634A1 (en) | Semiconductor integrated circuit device which executes data transfer between a plurality of devices connected over network, and data transfer method | |
US7949860B2 (en) | Multi thread processor having dynamic reconfiguration logic circuit | |
JP5233078B2 (en) | Processor and processing method thereof | |
US7805596B2 (en) | Highly integrated multiprocessor system | |
JP4756599B2 (en) | Data processing device | |
JP2005258509A (en) | Storage device | |
US7076641B2 (en) | Programmable controller | |
US20140092123A1 (en) | Drawing control device | |
JP4389797B2 (en) | Processor and information processing method | |
JP6115564B2 (en) | Data processing system, semiconductor integrated circuit and control method thereof | |
JP2013125288A (en) | Data processing device and data processing method | |
JP2005322240A (en) | Method and system for access for register with index | |
JP2006003981A (en) | Information processor and information processing method, recording medium and its program |