JP3611714B2 - プロセッサ - Google Patents
プロセッサ Download PDFInfo
- Publication number
- JP3611714B2 JP3611714B2 JP09612498A JP9612498A JP3611714B2 JP 3611714 B2 JP3611714 B2 JP 3611714B2 JP 09612498 A JP09612498 A JP 09612498A JP 9612498 A JP9612498 A JP 9612498A JP 3611714 B2 JP3611714 B2 JP 3611714B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- arithmetic unit
- wiring information
- programmable
- wiring
- 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
- Microcomputers (AREA)
- Logic Circuits (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の属する技術分野】
本発明は、プログラムに従って処理を実行するプロセッサに係り、特にディジタル信号をプログラムに従って処理を実行する信号処理プロセッサに好適なプロセッサに関する。
【0002】
【従来の技術】
従来のプログラム制御の典型的なプロセッサは、図27に示すプロセッサX1のように、データあるいはプログラムを記憶するメモリX13、演算を実行する演算器X14、データを一時的にラッチするレジスタX11、信号の入出力の制御、命令のフェッチとそのデコード、バスの制御などを行う制御器X12から構成され、この制御器X12には通常命令フェッチ用のプログラムカウンタが含まれる。なお、プロセッサの構成と機能のより詳細については、例えば、「ULSI設計技術」(社団法人電子情報通信学会 発行)を参照。
【0003】
とくに、演算器X14は、例えば汎用の算術論理演算を実行する演算器(ALU)を含み、レジスタX11あるいはメモリX13から読み出されたのデータを制御器X12を介して取り込み、命令に従ってこのデータに対して演算を実行し、演算結果データを制御器X12を介してレジスタX11あるいはメモリX13に転送する。
【0004】
一方、特開平7−73014号明細書には、複数の演算器を有し、入力データに応じて必要な演算器を選択してそのデータに対する演算を実行するプロセッサも提案されている。すなわち、図29に示すように、このプロセッサX3は、演算器として、加算器X33、減算器X34、乗算器X35、自乗器X36、論理演算器X37を実行する演算器を有し、命令デコーダX31により解読された命令に応じて入力回路X32から供給される入力データに対して使用する演算器を動的および静的に選択し、結果データを出力回路X38を介して外部に出力する。
【0005】
他のプロセッサとしては、信号処理プロセッサも知られている。このプロセッサの構造も基本的には図27に示すものと同じであるが、この信号処理プロセッサには、音声信号あるいは画像信号でよく使用される演算を実行可能な演算器が含まれている。このようなプロセッサはプログラムを変えることにより、異なる信号処理を実行できるようになる。
【0006】
しかし、画像処理の用途によっては、信号処理プロセッサよりも高速に処理を実行するために、特定の処理を高速に実行するように構成された専用の大規模集積回路(LSI)が使用されることが多い。その一例は、画像信号の圧縮・伸張処理を実行する専用LSIである。近年のマルチメディア化に伴い、画像信号の圧縮・伸張技術はそのキー技術として注目を浴びている。それに伴い、画像信号の圧縮伸張方式に関する標準の規格化がITU−TやISO等によりなされている。例えば、テレビ電話・会議等の通信用途を目的とした規格としては、H.261,H.262(ITU−T勧告)があり、蓄積メディアを目的とした規格としては、ISO−13818,ISO−11172(ISO勧告)等がある。
【0007】
これらの標準に基づいて圧縮された画像信号の伸張処理を実行するための専用LSIがすでに多数開発されている。代表的な画像伸張処理回路には、図28に示すように、画像処理専用のLSIが含まれている。可変長復号器(VLD)X22は、ビットストリームのコードの復号を行うLSIである。逆量子化器(IQ)X23は、量子化されている信号を元の信号にするLSIである。逆離散コサイン変換器(IDCT)X24は、圧縮処理でよく利用される離散コサイン変換(DCT)の逆変換である逆離散コサイン変換を実行するLSIである。動き補償回路(MC)X25は、動画像に動きを補償する処理を実行するLSIである。表示器(DISP)X26は、動画像を図示しない表示装置に表示するための処理を実行するLSIである。画像伸張処理回路X2には、これらの他に、画像信号の圧縮ビットストリームが入力され、画像伸張処理回路X2の全体を制御するホストインターフェース&制御器X21と、外部メモリとのインターフェイスを行うメモリ制御器X27が含まれている。個々の回路の機能及び処理内容については、たとえば、ITU−TあるいはISOの勧告を参照。
【0008】
圧縮された画像信号の伸張処理では、画像フレーム(あるいは画像フィールド)を、図31Aに示すように複数のブロックに分割し、そのブロック単位に信号処理を実行することが一般的である。専用LSIは、各ブロックに対して特定の信号処理を実行する演算器であるとも考えることもできる。それぞれの演算器は、特定の信号処理を高速に行うことができるように構成され、かつ、これらの演算器は、図31Bの下側に示すようにパイプライン処理により異なる処理を並列に実行することが可能なように構成され、1フレームに許容される時間内で画像フレーム内の信号処理を実行することができる。
【0009】
【発明が解決しようとする課題】
上記の画像処理専用の演算器を使用すると高速に画像処理を実行できる。しかし、画像処理のLSIをそれぞれ製造するコストが高くなる。
【0010】
さらに、近年、画像処理技術の進歩が著しく、次々とより高度の画像処理技術が提案されている。このような新しい画像処理技術を取り込むには、各画像処理専用のLSIが行う画像処理を、新たな仕様に基づいて変更する必要がある。しかし、専用のLSIを使用する方法では、このような新しい画像処理技術を導入するにはLSIを新たに開発しなければならない。このように、専用のLSIを使用する方法は、処理の仕様の変更に対応しにくい。
【0011】
さらに、画像処理に使用される複数の専用のLSIの中には、共通する演算機能があり、画像処理回路全体としては演算器に冗長性があり回路規模を増大しているという問題がある。
【0012】
一方、既に述べた画像処理を信号処理プロセッサにより実行させるには、前述の複数の専用LSIが実行する処理を要求する命令をプロセッサに実行させることが考えられる。しかし、一般に、画像処理のような信号処理は、図27に示しているような構造の従来の信号処理プロセッサに含まれる比較的単純な複数の演算を続けて実行する必要がある。また、そのようなプロセッサに含まれている演算器では高速に処理できない演算を使用する。しかし、従来のプロセッサは、複数の演算の組み合わせからなる複合演算を高速に実行できる演算器は含まれていない。また、信号処理とくに画像処理でよく実行される処理を高速に実行できる演算器も含まれていない。したがって、このようなプロセッサで、信号処理を実行させた場合、図31Bの上段に示すように、処理時間が増大し、上記のような複数の専用の演算器を使用した場合のような高速な処理を実行できない。このことは、図29に示したような構成のプロセッサでも変わりはない。
【0013】
また、画像処理用の専用の演算器を付加された汎用のプロセッサも販売されている。しかし、このようなプロセッサでは、プロセッサ内の演算器と付加された演算器の間には、同じ機能の回路が含まれ、回路的に無駄であるという問題は残る。さらに、新しい画像処理技術に適した演算を高速に実行させたいときには、プロセッサ内の汎用の演算器を使用するか、付加された演算器が改良されるのを待たなければならない。汎用の演算器を使用した場合には、処理速度が期待できない。
【0014】
さらに、従来のプロセッサでは、その処理をより高速にするためには、たとえば、図30(a)にあるように、複数の演算器をプロセッサ内に設け、それらを並列に動作させることが考えられる。これにより、Z1=A+B、Z2=C+Dという二つの加算を並列に実行できる。しかし、このような演算器では、図30(b)に示すような、Z1=A+B、Z2=Z1+C、すなわち、Z2=A+B+Cとなるような従属演算を実行できない。このような従属演算も実行可能にするには、従来のプロセッサでは、図30(b)の演算器を別に設けなければならない。したがって、図30(a)と(b)に示すような二つの加算器を使用する異なる演算のために別々の演算器を重複して使用しなければならず、回路的には無駄が生じる。
【0015】
したがって、本発明の目的は、演算器の回路規模を縮小するのに適した演算器を有するプロセッサを提供することである。
【0016】
本発明の他の目的は、演算の仕様が変更された場合にも変更後の演算仕様に即して新たな演算を実行するのに適した演算器を有するプロセッサを提供することである。
【0017】
さらに、本発明のさらに他の目的は、複数の命令が要求する異なる演算、とくに、複数の演算を組み合わせた複合演算を実行するのに適した演算器を有するプロセッサを提供することである。
【0018】
【課題を解決するための手段】
上記目的を達成するために、本発明よるプロセッサでは、
演算器が、電気的に変更可能なプログラマブルゲートアレーにより構成されたプログラマブル演算器により構成され、
制御回路により、複数の命令が要求する複数の演算をそれぞれ実行する複数の演算器を上記プログラマブルゲートアレーを共用して実現するために予め定められた、上記プログラマブルゲートアレーの論理構造を変更するための複数の配線情報の内、実行すべき命令が要求する演算を実行する演算器を実現するための一つの配線情報を供給するように、実行すべき命令に依存して上記複数の配線情報を切り替えて上記プログラマブル演算器に供給する。
【0019】
より具体的には、
上記プログラマブル演算器は、
それぞれ電気的に変更可能なプログラマブルゲートアレーにより構成された複数の論理ブロックと、
上記複数の論理ブロック間の接続を電気的に切り替え可能な可変信号線網とを有する。
【0020】
上記複数の配線情報の各々は、上記複数の論理ブロック内、一つの演算に対応して定められ、その演算を実行する演算器を少なくとも複数の論理ブロックを使用して実現させるための配線情報であって、上記少なくとも複数の論理ブロックの各々論理構造を切り替えるための第1の情報と上記少なくとも複数の論理ブロック間の接続を切り替えるための第2の情報を含む。
【0021】
上記制御回路は、各命令の実行時に、その命令のための配線情報内の第1,第2の情報を、その命令が要求する演算に対応して定められた複数の論理ブロックと上記可変信号線網にそれぞれ供給する。
【0022】
さらに具体的には、上記複数の論理ブロックは、2次元マトリックス状に配置され、
上記可変信号線網は、
第1の方向に延在した複数の第1種の信号線と、
第1の方向と直交する第2の方向に延在した複数の第2種の信号線と、
上記複数の第1種の信号線と上記複数の第2種の信号線との間の接続を切り替えるための、マトリックス状に配置された複数のスイッチとを有する。
【0023】
本発明に係るプロセッサのさらに他の態様では、
異なる演算器を実現するように論理構造を電気的に変更可能なプログラマブル演算器とそのための制御回路とを有する。
【0024】
上記プログラマブル演算器は、
複数の論理ブロックと、
上記複数の論理ブロック間の接続を電気的に切り替え可能な可変信号線網とを有する。
【0025】
上記複数の論理ブロックは、それぞれ異なる演算器を構成する複数の演算器回路ブロックを含む。
【0026】
上記制御回路は、
上記プログラマブル演算器の論理構造を電気的に切り替え、もって異なる演算器の一つを上記プログラマブル演算器により実現させるための複数の配線情報を記憶した記憶回路と、
複数の命令の各々を実行すべき時に、その命令に応答して上記複数の配線情報の一つを読み出し、上記可変信号線網に供給する読み出し回路とを有する。
【0027】
上記複数の配線情報は、それぞれ上記複数の演算器回路ブロックの内の複数の演算器回路ブロックの間の接続を電気的に切り替え、もって異なる演算器を上記プログラマブル演算器により実現させるための複数の配線情報を含む。
【0028】
さらに具体的的には、
上記複数の論理ブロックは、2次元マトリックス状に配置され、
上記可変信号線網は、
第1の方向に延在した複数の第1種の信号線と、
第1の方向と直交する第2の方向に延在した複数の第2種の信号線と、
上記複数の第1種の信号線と上記複数の第2種の信号線との間の接続を切り替えるための、マトリックス状に配置された複数のスイッチとを有する。
【0029】
【発明の実施の形態】
以下、本発明に係るプロセッサを図面に示したいくつかの実施の形態を参照してさらに詳細に説明する。なお、以下においては、同じ参照番号は同じものもしくは類似のものを表わすものとする。また、発明の第2の実施の形態以降においては、発明の第1の実施の形態との相違点を主に説明するに止める。
【0030】
<発明の実施の形態1>
図1Aにおいて、信号処理プロセッサ1には、本発明に特徴的なプログラマブル演算器14とそれを制御するための演算器制御器15が設けられている。プログラマブル演算器14は、その論理構造を電気的に変更可能な回路から構成され、その論理構造を変更することにより実行する命令に適切な演算器を構成することが可能である。演算器制御器15は、プロセッサ1で実行される命令を全てに対する配線情報を予め記憶し、実行すべき命令を解読したときに、その命令に応じて、そのその命令が要求する演算器を実現するために必要な配線情報をプログラマブル演算器14に送り、それにより、その命令が必要とする演算器をプログラマブル演算器14により実現させる。なお、プロセッサ1には、データあるいはプログラムを記憶するメモリ13、データを一時的にラッチするレジスタ11、信号の入出力の制御やバスの制御、メモリ13から命令のフェッチ、フェッチされた命令の解読などを行う制御器12が含まれている。制御器12にはフェッチすべき命令のアドレスを指定するプログラムカウンタが含まれる。信号処理プロセッサ1は、単一の半導体チップ上に大規模集回路(LSI)により実現される。
【0031】
本実施の形態で使用する命令は、図6Aの150に示すように、命令コードとオペランドと配線コードを含む。オペランドフィールドは、命令が使用するオペランドが保持されているメモリのアドレスあるいはそのオペランドが保持されているレジスタの番号を含むオペランド指定フィールドである。複数のオペランドを指定する場合には、このオペランドフィールドはそれぞれのオペランドを指定する情報を含む。制御器12内には、命令150を解読する命令デコーダを有し、その命令デコーダの出力に従い、命令150のオペランドフィールドが指定するオペランドを読み出し、プログラマブル演算器14に供給する。また、命令150の命令コードもプログラマブル演算器14に供給する。命令150の配線コードを演算器制御器15に供給する。
【0032】
図1Bに示すように、プログラマブル演算器14は、マトリックス状に配置されている、それぞれ電気的に構成を変更可能な複数の可変論理ブロック(CLB)143と、演算を受けるべきデータを入力するための入力インターフェイス141と演算結果データを出力するための出力インターフェイス144と、これらの可変論理ブロック(CLB)143の入力端と出力端および入力インターフェイス141、出力インターフェイス144を相互に接続するための、電気的にパスを切り替え可能な可変信号線網が設けられる。可変論理ブロック(CLB)143は、ここでは、2行3列に配置されているが、この行数と列数はあくまで一例であって、プロセッサの主たる用途あるいは性能に依存して適宜決定すればよい。
【0033】
各可変論理ブロック(CLB)143は、論理回路を実現するため複数のトランジスタで構成された回路要素を含む。これらの回路を以下では基本論理素子と呼ぶ。各可変論理ブロック(CLB)143内には、図示しない複数の接続スイッチがさらに設けられている。それらの複数種類の基本論理素子の内の一つの入力端を、その(CLB)143内の他の任意の基本論理解路の出力端に接続するか、その可変論理ブロック(CLB)143の上側、下側、左側あるいは右側の配線チャネルの各々内の複数の信号線のいずれかと接続するか、あるいはそれらの複数種類の基本論理素子の内の一つの出力端を、その可変論理ブロック(CLB)143の上側、下側、左側あるいは右側の配線チャネルのそれぞれ内の複数の信号線のいずれかと接続する。各可変論理ブロック(CLB)143には、上記複数の接続スイッチに対応して図示しない複数のメモリ素子がさらに設けられている。各メモリ素子は、対応するスイッチのオンオフ動作(接続、切断動作)を指定する。例えば、メモリ素子に電荷が与えられた場合には、オン動作を行うことによりスイッチを接続するように動作する。各可変論理ブロック(CLB)143内のこれらのメモリ素子に与える電荷を制御することにより、その可変論理ブロック(CLB)143が実現する論理構造を切り替えることができる。
【0034】
各可変論理ブロック(CLB)143は、上に説明したように、複数の基本論理素子と、それらの間の接続あるいはそれらと配線チャネルとの間の接続を切り替える複数の接続スイッチと、それぞれ一つの接続スイッチに対応する複数の書き換え可能なメモリ素子とからなる。具体的には、基本論理素子としては、(1)トランジスタを使用する(2)たとえばAND,OR,NAND,フリップフロップ等を実現するように構成された複数のマクロセルを使用する(3)基本論理素子としてランダムアクセスメモリ(RAM)を利用して、異なる入力信号に対応するアドレスに、それらの入力信号に対して可変論理ブロック(CLB)143が生成すべき出力信号を予め記憶する(4)これらの複合構造等が考えられる。本実施の形態では、上記複数のマクロセルを使用する。このような可変論理ブロックはすでにフィールドプログラマブルゲートアレー(FPGA)(あるいはフィールドプログラマブルロジックアレー(FPLA)とも呼ばれる)として、とくに、電気的に構造を変更可能なFPGAあるいはFPLAとして知られている回路を使用して実現できる。
【0035】
可変論理ブロック(CLB)は、1つの可変論理ブロック(CLB)で一つの演算器を構成できない場合には、複数の可変論理ブロック(CLB)を次に述べる可変信号線網により接続して一つの演算器を構成する。
【0036】
本実施の形態では、可変論理ブロック(CLB)143間の接続を切り替える可変信号線網は、複数のスイッチマトリックス(SM)142と、複数の配線チャネル140X、140Yにより構成される。すなわち、各行の複数の可変論理ブロック(CLB)143の図上での上側および下側には、図の水平方向(これをX方向と呼ぶ)に延びる配線チャネル140Xが設けられ、各列の可変論理ブロックの図の右側および左側には、図の垂直方向(これをY方向と呼ぶ)に延びる複数の配線チャネル140Yが設けられている。さらに、入力インターフェイス141の出力端に接続してY方向の配線チャネル140Yが設けられ、出力インターフェイス144の入力端に接続して、4つのY方向の配線チャネル140Yが設けられている。
【0037】
各X方向の配線チャネル140Xおよび各Y方向の配線チャネル140Yはそれぞれ所定の複数の信号線を含む。これらの信号線の数は、可変論理ブロック(CLB)143の総数とそれらにより実現したい演算器の数と、演算に使用されるデータのビット数、演算結果データのビット数などに依存して決定すればよい。最も望ましいのは、任意の可変論理ブロック(CLB)143の出力を任意の可変論理ブロック(CLB)143の入力に供給できること、その供給に必要な信号線が、他の可変論理ブロック(CLB)143の出力をさらに他の可変論理ブロック(CLB)143へ供給するのに必要な信号線と競合しないように選択できることである。
【0038】
各可変論理ブロック(CLB)143は、その上側および下側に位置するX方向の配線チャネル140X内の複数の信号線の内の、その各可変論理ブロック(CLB)143に対応して予め定められた複数の信号線145Xに後に説明する接続スイッチを介して接続されている。同様に、各可変論理ブロック(CLB)143は、その右側および左側に位置するY方向の配線チャネル140Y内の複数の信号線内の、その各可変論理ブロック(CLB)143に対応して予め定められた複数の信号線145Yに後に説明する接続スイッチを介して接続されている。
【0039】
各スイッチマトリックス(SM)142は、隣接する一対のX方向の配線チャネル140Xと隣接する一対のY方向の配線チャネル140Yとに対応して設けられ、それらの間の接続を切り替えるのに使用される。但し、図の左端の列および右端の列に属する一部のスイッチマトリックス(SM)142は、一つのX方向の配線チャネル140Xと隣接する一対のY方向の配線チャネル140Yとに対応して設けられ、それらの間の接続を切り替えるのに使用される。複数のスイッチマトリックス(SM)142のマトリックスは、ここでは、可変論理ブロック(CLB)143の行数、列数よりもそれぞれ1だけ多い行数と列数、ここでは3行4列でもって配置されている。
【0040】
図2にスイッチングマトリクス(SM)142の例を示す。参照番号140X1と140X2は、それぞれ隣接する二つのX方向の配線チャネルを示し、140Y1と140Y2は、それぞれ隣接する二つのY方向の配線チャネルを示す。二つのX方向の配線チャネル140X1,140X2に含まれる信号線の数は同じである。二つのY方向の配線チャネル140Y1,140Y2に含まれる信号線についても同じである。ここでは説明の簡単化のために、X方向の配線チャネル140X1、140X2には、それぞれ4つの信号線H1,H2,H3,H4およびHH1,HH2,HH3、HH4が含まれ、Y方向の配線チャネル140X1、140Y2にはそれぞれ4つの信号線V1,V2,V3,V4及びVV1,VV2,VV3,VV4が含まれると仮定している。
【0041】
スイッチングマトリクス142には、一対のX方向の信号線と一対のY方向の信号線との組み合わせに対応して一つのスイッチ1421が設けられ、いずれかの一対のX方向の信号線たとえばH1、HH1と、いずれかの一対のY方向の信号線たとえばV1、VV1は、それらの信号線対の組に対応する一つのスイッチ、たとえば図の左上隅に位置するスイッチ1421の位置にまで延びている。そのスイッチ1421は、対応する一対のX方向の信号線H1、HH1の任意の一つまたはその両方と、対応する一対のY方向の信号線V1、VV1の任意の一つまたはその両方との間の接続を切り替える。他のスイッチ1421も同様である。
【0042】
スイッチ1421の構成は、色々考えられるが、図3Aにその一例を示す。図3では、そのスイッチに入力されている4つの信号線HX、HHX、VX、VVXを相互に接続するための4つの、それぞれCMOSトランジスタからなるスイッチ回路1421Sを有する。図では、スイッチ回路1421Sの内部には簡単化のために複数のCMOSトランジスタに代えて一つのトランジスタのみを示す。各スイッチ回路1421S内の端子1421Tは、そのスイッチ回路に接続される端子を示し、この端子に図示しないメモリ素子が接続されている。メモリ素子は、たとえばフリップフロップのようなデータを電気的に書き込み可能な素子からなる。そのメモリ素子には、演算器制御器15から配線情報ビットが書き込まれる。それにより、そのスイッチ回路1421Sのオン/オフを切り替えることができる。
【0043】
入力インターフェイス141は、制御器12から供給される、演算に使用するデータを受け取り、Y方向の配線チャネル140Yのいずれかに供給する。
【0044】
出力インターフェイス144は、Y方向の配線チャネル140Yに接続され、そのいずれかに供給される演算結果データを受け取り、制御器12に供給する。これらの入力インターフェイス141、出力インターフェイス144も、可変論理ブロック(CLB)143と同様に電気的に論理構造を変更可能な可変論理ブロックにより構成され、演算器制御器15からの配線情報によりその論理構造を変更する。
【0045】
図1Cに示すように、演算器制御部15は、配線命令デコーダ151と、配線情報記憶部152と、演算器出力制御部153とから構成される。配線情報記憶部152は、種々の演算器をプログラマブル演算器14により実現するための複数の配線情報を予め記憶する。既に述べたように、プログラマブル演算器14内の各可変論理ブロック(CLB)143には、その論理構造を切り替えるための複数の接続スイッチと、それぞれの接続スイッチを制御する信号を記憶する図示しない複数のメモリ素子が含まれている。各配線情報は、複数のビットからなるデータであり、各ビットは、プログラマブル演算器14内のこれらのメモリ素子の一つに対応する。
【0046】
既に述べたように、制御器12(図1A)により解読された命令150の配線コードが制御器12から配線命令デコーダ151に供給される。配線命令デコーダ151は、供給された配線コードを解読し、その命令が使用する演算器を実現するため配線情報を配線情報記憶部152から読み出し、その情報をプログラマブル演算器14に供給する。プログラマブル演算器14はその配線情報に従い、各可変論理ブロック(CLB)143、入力インターフェイス141、出力インターフェイス144の論理構造を変更するとともに、可変信号線網を構成する各スイッチングマトリクス142の接続動作を切り替える。
【0047】
なお、プログラマブル演算器14は、論理演算だけでなく、演算の途中で、例えばオーバーフローや種々のフラグなど演算結果に依存する信号も出力するように構成される。そのような信号を生成する回路の例は、実施の形態2で使用される、図12(b)に示した回路と等価な回路が使用できる。演算器出力制御部153は、プログラマブル演算器14で、演算の途中で生成されるこのような信号を制御器12に出力する回路である。
【0048】
図6Aには、配線情報記憶部152の具体的な構造の例を示す。配線情報記憶部152は、可変論理ブロック(CLB)143用の複数の配線情報を記憶したROM152Aと、スイッチングマトリクス142用の複数の配線情報を記憶したROM152Bとからなる。ROM152Aには、入力インターフェイス141、出力インターフェイス144のための配線情報も含まれるが、以下では簡単化のためにこの配線情報は説明しない。
【0049】
配線命令デコーダ151は、実行すべき命令の配線コードを解読して配線情報記憶部152内のROM152A、152Bのアドレスを生成する。本実施の形態では、配線コードは、命令コードとは別に命令150内に付加されているが、他の方法により命令の中にプログラマブル演算器14の配線を指定する情報を含ませてもよい。たとえば、命令コードの中に配線コードを含めることも可能である。その場合には、命令コードが制御器12より演算器制御器15に供給される。
【0050】
各配線コードに対して生成されるアドレスの具体的な例を、図6Bに示す。この例では、配線コードは3ビットであり配線命令デコーダ151は、ROM(CLB)152A用の2ビットのアドレスとROM(SM)152B用の2ビットのアドレスとからなる4ビットを並列に出力する。デコーダ151から出力されたROMアドレスは、配線情報記憶部152内の二つのROM152A、152Bに入力され、ROM152A、152Bは、プログラマブル演算器14内の各可変論理ブロック143の論理構造を指定する一つの配線情報と、スイッチングマトリクス142の結線を指示する一つの配線情報を線152Cを介してプログラマブル演算器14内の図示しない複数のメモリ素子に供給する。
【0051】
ROM152Aが供給する配線情報は、複数のビットからなるデータであり、各ビットはプログラマブル演算器14の複数の可変論理ブロック143内に存在する、図示しない複数のメモリ素子の一つに対応する。ROM152Bが供給する配線情報は、複数のビットからなるデータであり、各ビットはプログラマブル演算器14の複数のスイッチングマトリクス142内に存在する、図示しない複数のメモリ素子の一つに対応する。こうして、ROM152Aが供給する配線情報とROM152Bが供給する配線情報の全ビットは、プログラマブル演算器14内の複数のメモリ素子に並列に供給される。
【0052】
ROM152A、152Bの出力の具体的な例を図6C、6Dにそれぞれ示した。ROM152Aは、実現すべき種々の演算器の論理構造を実現する配線データを出力する。したがって、この配線データは、各可変論理ブロック143に対応したデータを有し、一つの可変論理ブロック143に対応したデータは、その可変論理ブロック143に含まれた図示しない複数のメモリ素子に対応した複数のビットからなる。ROM152Bは、並列配線、従属配線等の配線情報を出力する。したがって、この配線情報は、各スイッチングマトリクス142に対応したデータを有し、一つのスイッチングマトリクス142に対応したデータは、そのスイッチマトリックス142内に含まれた図示しない複数のメモリ素子に対応した複数のビットからなる。したがって、線152Cは、ROM152A、152Bから出力された情報の全ビットを並列に転送できることが転送時間の短縮の上で望ましい。しかし、線152Cの線幅がこれらの情報の全ビット数より小さくせざるを得ないときには、配線情報記憶部152を、二つのROM152A、152Bの出力情報を時分割に転送するように構成すればよい。
【0053】
以下具体的に図6Bから図6Dに基づいて、プログラマブル演算器14における異なる演算器の実現を説明する。図6Bの備考欄に示すように、配線コードは、プログラマブル演算器14に、通常の算術論理演算器(ALU)、並列加算器、縦列加算器、乗算器、割り算器、積和演算器をそれぞれ実現させるときに、“000”、“001”、“010”、“011”、“100”、“101”を持つ。ここで、通常の算術論理演算器は、二つのオペランドに対する加減算および二つのオペランドに対するアンドあるいはオア等の複数の簡単な論理演算を行う演算器であり、乗算あるいは割り算は行わない。この演算器の例は、後の実施の形態2で使用される、図12(b)に示された回路と等価な回路である。並列加算器、縦列加算器はそれぞれ図30(a)、(b)に示した構造の演算器を言う。乗算器の例は、後の実施の形態2で使用される、図12(a)に示された回路と等価な回路である。
【0054】
たとえば、プログラマブル演算器14により通常の算術論理回路を実現させるときには、図6Bに示すように配線コード“000”が使用され、デコーダ151は、ROM152A、152B用のアドレスとして“00”、“00”を出力する。図6Cから分かるように、ROM152Aは、アドレス“00”に対して“ALU構成データ”を出力する。このデータは、予め定められた複数の可変論理ブロック143を組み合わせて算術論理演算器を構成するための配線情報であり、このデータはこれらの可変論理ブロック143に供給される。ROM152Bは、アドレス“000”に対して通常配線を実現する配線情報を出力する。ここで、通常配線とは、プログラマブル演算器14により通常の算術論理回路を実現させるときに、複数のスイッチマトリックス142により実現されるべき配線を指定する情報を言う。
【0055】
すなわち、通常の算術論理回路を使用する命令は二つのオペランドを指定する。入力インターフェイス141は、これらのオペランドを制御器12から受け取り、予め定められた複数の可変論理ブロック143に並行して供給する論理構造を採るように、上記ALU構成データにより構成される。それらの可変論理ブロック143と他の複数の可変論理ブロックを含む一群の可変論理ブロックが、互いに組み合わされて一つの算術論理演算器を実現するように上記ALU構成データにより構成される。複数のスイッチマトリックス142は、入力インターフェイス141から出力された二つのデータを上記二つの特定の可変論理ブロック143に入力データとして供給し、上記一群の可変論理ブロック143の一つから出力される結果データを出力インターフェイス144に供給するように、上記通常配線を実現する配線情報により構成される。出力インターフェイス144は、この結果データを出力する論理構造となるように上記ALU構成データにより構成される。こうして、プログラマブル演算器14は、通常の算術論理演算器を実現する。
【0056】
このようにして実現された通常の算術論理演算器により、四則演算および複数の簡単な論理演算のいずれかを行うための制御信号は、すでに述べたように、制御器12が命令内の命令コードを解読して生成し、入力インターフェイス141を介して供給する。言い換えると、この通常の算術論理演算器が実行可能な複数の演算のいずれかを指定する複数の命令に対して、プログラマブル演算器14の論理構造は変更されないで、命令コードによりその動作が切り替えられるようになっている。本実施の形態では、配線コードを命令コードとは別に定めたので、異なる命令コードの命令に対して同じ配線コードを指定でき、これらの命令に対しては、プログラマブル演算器14の論理構造自体は変更する必要がない。
【0057】
たとえば、プログラマブル演算器14により並列演算器を実現させるときも縦列演算器を実現させるときも、図6Bに示すように配線コード“001”、“010”がそれぞれ使用される。配線コード“001”と“010”のいずれに対しても、デコーダ151は、ROM152A用のアドレスとして“01”を出力する。図6Cから分かるように、ROM152Aは、アドレス“01”に対して加算器構成データを出力する。このデータは、第1群の可変論理ブロック143と第2群の可変論理ブロック143によりそれぞれ二つの入力端を有する第1,第2の加算器を構成するためのデータである。
【0058】
一方、配線コード“001”と“010”に対して、デコーダ151は、ROM152B用のアドレスとして“01”、”10”を出力する。図6Cから分かるように、ROM152Bは、アドレス“01”と“10”に対してそれぞれ並列配線と従属配線を指定する配線情報をする。ここで並列配線を指定する配線情報は、上記第1、第2の加算器を互いに独立の加算器として動作させるための配線情報であり、それより、プログラマブル演算器14に並列加算器を実現させる。一方、従属配線を指定する配線情報は、上記第1,第2の加算器を縦列に接続し、それにより3つの入力データに対する加算を行う加算器を実現するための配線情報であり、それより、プログラマブル演算器14に縦列加算器を実現させる。このように、配線情報記憶部152を、可変論理ブロック143の論理構造を指定するROM152Aと、スイッチマトリックス142のスイッチ動作を指定するROM152Bに区分して構成したので、並列加算器と縦列加算器のように異なる演算器を実現するときでも、一方のROM、ここではROM152A内の同じデータを使用できる。このため、配線情報記憶部152の必要な容量を減少できる。なお、他の演算器を実現する場合も同様に行われるので、それらに関する詳細な説明は簡単化のために省略する。
【0059】
プロセッサ1の動作の概要は以下の通りである。制御器12がメモリ13内に記憶されたプログラム命令をフェッチし、この命令を解読し、この命令が演算命令であるときには、外部の図示しないメモリ及び内部のメモリ13等のデバイスから演算を受けるべきデータを読み込み、レジスタ11にデータを一時ラッチする。ラッチされたデータは、制御器12を通じてプログラマブル演算器14の入力インターフェイス141に入力される。制御器12は、さらに、その命令の命令コードを解読して結果の信号をその入力インターフェイス141に送付する。さらに、演算器制御部15にその命令内の配線コードを送付する。演算器制御部15は、その配線コードをデコーダ151で解読し、配線情報記憶部152を読み出すアドレスを生成する。このアドレスに基づいて、配線記憶部152からは、プログラマブル演算器14に適切な配線情報が読み出される。その配線情報に従い、スイッチングマトリクス(SM)142のスイッチ動作と、可変論理ブロック(CLB)143の論理構造と、入力インターフェイス141の論理構造と、出力インターフェイス144の論理構造とが変化し、プログラマブル演算器14は上記命令が必要とする演算器を実現する。プログラマブル演算器14での演算結果データは、制御器12を介してレジスタ11あるいはメモリ13に記憶される。プログラマブル演算器14から、演算の途中で例えばオーバーフローや各種フラグが出力されると、この信号は、演算器制御器15内の演算器出力制御部153に入力され、必要に応じて制御器12にフィードバックされる。なお、この信号を配線情報記憶部152に入力し、それが出力する配線情報が変更されるように使用してもよい。
【0060】
以上のごとく、本実施の形態では、演算器制御部15による制御により、プログラマブル演算器14内の複数の可変論理ブロック(CLB)143の論理構造が変更され、さらに、複数のスイッチマトリックス(SM)142の接続動作が切り替えられ、さらに、入力インターフェイス141、出力インターフェイス144の論理構造が変更されることにより、プログラマブル演算器14が、実行すべき命令が要求する演算器を実現する。しかも、プログラマブル演算器14は、実行すべき命令に応じて、異なる演算器を動的に切り替えて実現することができる。したがって、本実施の形態で使用するプログラマブル演算器が実行する複数の演算を複数の専用演算器を使用して実行させる場合に比べて、必要な回路規模は小さくて済む。すなわち、複数の機能演算を行う演算器の冗長性を削減することができ、回路規模の増加を抑制する。
【0061】
さらに、プロセッサで実行させるべき演算の仕様が変更された場合にも変更後の演算仕様に即して新たな演算を実行させるには、配線情報記憶部152に記憶する配線情報を適宜書き換えたプロセッサを用意すればよい。プログラマブル演算器14等の回路は変更する必要はない。したがって、このような演算の仕様の変更に対応して新たなプロセッサを開発することが容易となり、開発コストの低減にも寄与する。
【0062】
さらに、並列加算と縦列加算により例示されるように、複数の可変論理ブロック(CLB)が行う演算を組み合わせて複合演算を実行することも容易となる。さらにそれらの複合演算に用いる演算の組み合わせを変更することも容易となる。さらにそれらの複合演算に用いる演算の数を変更することも容易となる。
【0063】
とくに、本実施の形態では、可変論理ブロックが2次元マトリックス状に配置され、かつ、可変信号線網も、X方向の複数の信号線と、Y方向の複数の信号線と、それらを接続する、マトリックス状に配置された複数のスイッチマトリックス(SM)から構成されるので、任意の複数の可変論理ブロックを組み合わせて複合演算を実行させること、また、それらの可変論理ブロックの組み合わせを変更して異なる複合演算を実行させるのが容易になる。
【0064】
また、次のような効果も期待でき、より安価で機能性の高い信号処理プロセッサの実現を可能にする。
【0065】
1)演算器が対応する演算に対して最適な構成であるため、プロセッサの動作周波数を上昇を抑制し、低消費電力化が可能となる。
【0066】
2)命令に応じて、ダイナミックに演算を実行できるため、プログラムステップ数が削減できる。
【0067】
<発明の実施の形態1の変形例>
本発明は、実施の形態1に限定されない。以下に例示する態様を含め、他のいろいろの態様で実施可能である。
【0068】
(1)可変論理ブロック(その1)
各可変論理ブロック(CLB)143内の図示しないメモリ素子を省略し、その可変論理ブロック(CLB)143内の接続スイッチを制御する信号を演算器制御器15から必要な期間供給し続ける構造にすることもできる。同様に、各スイッチングマトリクス142内の図示しないメモリ素子を省略し、その可変論理ブロック(CLB)143内の接続スイッチを制御する信号を演算器制御器15から必要な期間供給し続ける構造にすることもできる。しかし、実施の形態1で記載したメモリ素子を使用した場合には、プログラマブル演算器14がある命令の演算を実行中に演算器制御器15が次の命令を解読することができる。
【0069】
(2)可変論理ブロック(その2)
各可変論理ブロック(CLB)143は、既に例示したようないろいろの方法で実現できる。図4には、基本論理素子としてランダムアクセスメモリ(RAM)を利用して、異なる入力信号に対応するアドレスに、それらの入力信号に対して可変論理ブロック(CLB)143が生成すべき出力信号を予め記憶する方法を採用したときの可変論理ブロック(CLB)143の構造の例を示す。すなわち、可変論理ブロック143内に、論理RAM L1,L2,L3,L4が配置される。4ビットの加算器を実現する場合には、これらの論理RAM L1,L2,L3,L4は、図に示されるように相互に結線され、さらに互いに異なるX方向またはY方向の配線チャネル140に接続される。結線は図示しない接続スイッチを制御して行われる。これらの論理RAM L1,L2,L3,L4には、表に示されるような入出力関係を実現するデータが演算器制御器15の制御下で記憶される。
【0070】
これらの論理RAM間の接続およびこれらの論理RAMと可変信号線網との間の接続を同様に図示しない接続スイッチを制御して切り替えることにより、異なる演算器をその可変論理ブロック143により実現させることができる。なお、図においても、これらの接続スイッチを制御する配線情報を記憶するメモリ素子は図示していない。
【0071】
(3)可変論理ブロック(その3)
図5は、可変論理ブロック143の他の構成例である。可変論理ブロック143は、入力インターフェイス1431、サブ可変論理ブロック(SCLB)1432、スイッチングマトリクス1433、出力インターフェイス1434から構成され、各ブロック間の自由に結線できる構成である。入力インターフェイス1431、出力インターフェイス1434はそれぞれ互いに異なるX方向またはY方向の配線チャネル140に接続される。図5の構造は、図1に示したプログラマブル演算器14の構成を、各可変論理ブロック(CLB)143内に取り入れた構成である。このような構成をとることにより、可変論理ブロック143は、より複雑な論理構造にも対応することが可能となる。
【0072】
(4)可変信号線網
可変信号線網も実施の形態1とは異なる構造でもって実現することができる。たとえば、図1Cでは、同じ行に属するX方向の複数の配線チャネルに含まれる信号線は、複数のスイッチングマトリクス142により分断されていた。しかし、これらのX方向の複数の配線チャネルに含まれる信号線を共通の信号線により実現することもできる。このことは、同じ列に属する複数のY方向の配線チャネルに属する信号線についても同じである。
【0073】
この場合、可変信号線網を構成する複数の信号線は、図1CのX方向の延在する複数の可変論理ブロック143の存在範囲より少し広い範囲に亘り延在し、各行に属する複数のスイッチングマトリクス142に対応し、それらのスイッチングマトリクス142に共通に設けられた複数の信号線と、図1CのY方向の延在する複数の可変論理ブロック143の存在範囲より少し広い範囲に亘り延在し、各列に属する複数のスイッチングマトリクス142に対応し、それらのスイッチングマトリクス142に共通に設けられた複数の信号線とよりなる。すなわち、図2に示した一対の互いに対応するX方向の信号線が常に接続されていることになる。一対の互いに対応するY方向の信号線も同じである。
【0074】
このとき、スイッチングマトリクス142を構成する各スイッチ回路1421は、図3Bのように構成することができる。すなわち、図において、各スイッチ回路1421は、一つのX方向の信号線と一つのY方向の信号線を接続する一つの各スイッチ回路1421Sからなる。
【0075】
(5)配線情報記憶部152
図7は、演算器制御器15内の配線情報記憶部152としてRAM回路を用いた例を示す。RAM回路を用いることにより、配線情報を変更することが可能となる。これにより、プログラマブル演算器14に実行させる演算の種類がより広げられる。例えば、それまで使用していた演算の種類と異なる演算を使用する新たな信号処理を実行させたい場合、その信号処理の実行に必要となるプログラマブル演算器14の配線情報をRAM回路に新たに書き込むことにより、新たな信号処理を実行することが可能である。
【0076】
(6)演算器制御器15(その1)
図8には、プログラマブル演算器14が実行した演算結果に応じてプログラマブル演算器14が次に実行すべき演算を変化させる必要がある場合に使用できる演算器制御器15の構成例を示す。すなわち、プログラマブル演算器14が判断命令等を実行した結果、分岐フラグが立った場合、既に述べたようにそのフラグ情報が演算器出力制御部153(図1C)に線14Aを介して供給される。プログラマブル演算器14が次に実行すべき演算をそのフラグ情報により変える場合は、その変更を次のようにして行うことができる。図8(a)では、演算器出力制御部153は、そのフラグを線14Aを介して取り込み、デコーダ151にそのフラグ情報を線153Bを介して転送する。デコーダ151は、そのフラグ情報に応じて配線情報記憶部152に供給するアドレスを変更するように構成される。それでもって当該次に実行すべき演算に対応する適切な配線情報を配線情報記憶部152より出力させることができる。
【0077】
(7)演算器制御器15(その2)
図8(b)には、図8(a)に対する代替案を示す。配線コード内に直接プログラマブル演算器14を制御する情報がある場合、デコーダ151でその命令を解読し、直接演算器制御器153を通じて、直接プログラマブル演算器14に信号を伝達する。また、プログラマブル演算器14からのフラグ情報が演算器制御器153に入力され、そのフラグ情報に応じて演算器制御器153がプログラマブル演算器14に信号を伝達する構成をとる。
【0078】
(8)演算器制御器15(その3)
実施の形態1で使用した命令には命令コードとは別に配線コードが設けられた。しかし、配線コードを使用しないで、命令コードを解読して、配線情報を配線情報記憶部152から読み出すように、デコーダ151を構成することもできる。この場合、実施の形態1における、並列加算器と縦列加算器を異なる命令に対して生成するときに、ROM152A内の同じ情報をしたのと同じことをするように、このデコーダを構成することができる。
【0079】
<発明の実施の形態2>
図9は、プログラマブル演算器14の他の構成例を示す。プログラマブル演算器14には、図1Aの可変論理ブロック143に代えて、乗算器147、算術論理演算器148等の複数の固定配線の演算器が2次元マトリックス状に設けられる。すなわち、実施の形態1では、1つあるいは複数の可変論理ブロックが組み合わされ、命令に即した演算器を実現した。本実施例では、特定の演算を実現する複数の演算器をあらかじめ配置し、可変信号線網によりその演算器の接続を変更する。
【0080】
図9では、演算器は3行2列に配置されている。これらの演算器を接続する可変信号線網を構成するために、複数群のX方向のバス140XBと複数群のY方向のバス140YBとが設けられる。図では、演算器の行数より1多い群数(4群)のX方向バス140XBと、演算器の列数より1多い群数(3群)のY方向バスとが設けられている。各群のX方向バスは、2より多い複数(たとえば4)のバスからなる。各バス140XBは、一つの行に属する複数の演算器のX方向の存在範囲より広い範囲に亘って存在する。各バス140XBのバス幅は一つの演算データあるいは演算結果データの幅に等しい。各群のY方向バスは2より多い複数(たとえば4)のバスからなる。各バス140YBは、一つの列に属する複数の演算器のY方向の存在範囲より広い範囲に亘って存在する。各バス140YBのバス幅は一つの演算データあるいは演算結果データの幅に等しい。
【0081】
X方向のバス140XBとY方向のバス140YBの総数は、実現する演算器の数に応じて決定すればよい。最も望ましいのは、任意の演算器の出力を任意の演算器の入力に供給できること、その供給に必要なバスを、他の演算器の出力をさらに他の演算器へ供給するのに必要なバスと競合しないように選択できることである。少なくとも、各演算器の出力は、他の一部の複数の演算器に入力できることが望ましい。
【0082】
各群のX方向のバス140XBと各群のY方向のバス140YBが交差するポイントには、バススイッチングマトリクス(BSM)145が配置される。各演算器間をいずれか一対のX方向のバス140XBに接続する。すなわち、各演算器への一対の入力線と一群のX方向のバス140XBの結線部分には、サブスイッチングマトリクス(SSM)146が配置される。そのサブスイッチングマトリクス(SSM)146は、その一群のX方向のバス140XBの内の一対のバスをその一対の入力線に接続する。その演算器の出力線と他の一群のX方向のバス140XBの結線部分にもサブスイッチングマトリクス(SSM)146が配置される。そのサブスイッチングマトリクス(SSM)146は、その一群のX方向のバス140XBの内の一つのX方向のバス140XBをその演算器の出力線に接続する。こうして、複数の演算器が、複数群のバス140XBと140YBにより接続される。本実施の形態でのプログラマブル演算器14は、実施の形態1のそれに比較して、演算機能の自由度は低下するものの、予め設計された固定の演算器を配置するため、回路規模を削減できる。
【0083】
バススイッチングマトリクス145の構成例を図10(a)に示す。バススイッチングマトリクス145は、4つの、Nビット幅(Nは複数)のX方向のバス140XBを、4つの、Nビット幅のY方向のバス140YBの任意のものに接続するために、各X方向のバスBH1、、またはBH4と、各Y方向のバスBV1、、BV4の交点に配置された複数のスイッチ回路1451を有する。
【0084】
図11には、スイッチ回路1451の具体例である。ここでは、一つのX方向のバスBHXが4本の信号線BHX_0〜BHX_3からなり、一つのY方向のバスBHYが4本の信号線BHY_0〜BHY_3からなると仮定している。スイッチ回路1451は、各X方向の信号線と各Y方向の信号線との交点に設けられた複数のCMOSのスイッチ1451Sからなり、それらのゲートを共通の端子1451Tに結線され、これらのスイッチ1451Sが同時にオンオフされる点が、実施の形態2におけるスイッチングマトリクス142と異なる点である。この端子は図示しないメモリ素子に接続されるのは実施の形態1の場合と同じである。
【0085】
また、サブスイッチングマトリクス146の構成を図10(b)に示す。図9から分かるように、サブスイッチングマトリクス146は、X方向のバス群140XBを一つの演算器への二つの入力端に接続するとともに、他の一つの演算器の出力端を他のX方向のバス群140XBに接続する。但し、二つの乗算器147にそれぞれ接続された二つのサブスイッチングマトリクス146では、他の演算器の出力端との接続路は使用されていない。また、図9の最下位位置にある二つのサブスイッチングマトリクス146では、いずれかの演算器の二つの入力端への接続路が使用されていない。したがって、サブスイッチングマトリクス146は、図10(b)に示すように、一群のX方向のバスBH1、、BH4の内の任意のものを、演算器への二つの入力バスBVV1、BVV2と他の演算器の出力バスBV1にそれぞれ接続するスイッチ1451により構成されればよい。但し、図9においては、演算器からの出力バスに接続されたX方向のバスBH’を設け、このバスも二つの入力バスBVV1、BVV2に接続できるように構成されている。
【0086】
図12は、図9中の乗算器147の構成を示した例である。この例では、乗算器147は、ブースのデコーダ回路1471と部分積の生成・加算回路1472及び加算部1473から構成され、2つのデータを乗算し出力する構成をとる。乗算器の概要及び構成については、様々な構成が考えられるが、それらの詳細は、本発明の本質に関わらないので省略する。
【0087】
図12には、算術演算器(ALU)の構成例も示した。算術演算器148は、入力選択器1481,加減算・論理演算器1482、出力選択器1483、オーバーフロー検出回路1484から構成され、2つの入力信号に対して、加算、減算、論理和、論理積、排他論理和の演算を実行する。実行中に出力されるオーバーフロー等のフラグ信号は、オーバーフロー検出器1484で検出される。出力データは、選択器1484で選択され出力される。図の点線は、演算器制御器15からの配線情報であり、入力データの選択や演算器1482の制御、オーバーフロー検出器1484の制御、出力選択器1483から出力するデータの選択等を行う。また、オーバーフロー検出器1484からフラグ情報が演算器制御器15に出力される。本例は、基本的な算術演算器の構成を示した例であり、他の例も多数考えられる。
【0088】
本実施の形態では、演算器制御器15に使用する配線情報記憶部152には、実施の形態1で使用した可変論理ブロック143の論理構造を指定する配線情報を記憶しなくてよい。また、可変信号線網もバス140XB、140YB、バススイッチ145、サブスイッチングマトリクス146により構成されるので、それに合わせて、配線情報記憶部152に記憶する配線情報を実施の形態1の場合と変更すればよい。
【0089】
動作例の概要は、プログラムの命令を制御器12が判断し、演算器に関する命令については、図中の点線で示したパスを通して、演算制御部15に演算命令として指示する。演算命令を受けた演算制御部は、その命令を命令デコーダ151で解読し、配線情報記憶部152に記憶してある適切な配線情報を指示する。配線記憶部152からは、プログラマブル演算器14に、適切な配線情報が指示され、それに従い、バススイッチングマトリクス(BSM)145やサブスイッチングマトリクス(SSM)146の結線を変更し、命令に応じた演算器の組み合わせと接続を実現する。データは、プログラムの命令に従い、レジスタ11あるいはメモリ13から、制御器12を通じてプログラマブル演算器14に供給され、演算されてその結果は、再び制御器12を介してレジスタ11あるいはメモリ13に記憶される。演算の途中で出現する信号(例えば、オーバーフローや各種フラグ)は、プログラマブル演算器14から出力され、演算器制御器15内の演算器出力制御部153に入力され、その情報は、必要に応じて制御器12にフィードバックされたり、配線情報記憶部に入力され配線情報を変更するように動作する。
【0090】
以上から明らかなように、本実施の形態では、予め論理構造が固定された複数の演算器を使用するが、それらの演算器を接続する信号線網が可変の構造となっている。したがって、複数の固定の演算器が行う演算を組み合わせて複合演算を実行することが容易となる。さらにそれらの複合演算に用いる演算の組み合わせを変更することも容易となる。さらにそれらの複合演算に用いる演算の数を変更することも容易となる
とくに、本実施の形態では、演算器が2次元マトリックス状に配置され、可変信号線網も、X方向の複数の信号線と、Y方向の複数の信号線と、それらを接続する、マトリックス状に配置された複数のスイッチマトリックス、すなわち、複数のバススイッチングマトリクス(BSM)145と複数のサブスイッチングマトリクス(SSM)146から構成されるので、任意の複数の演算器を組み合わせて複合演算を実行させること、また、それらの演算器の組み合わせを変更して異なる複合演算を実行させるのが容易になる。さらに、複合演算に用いる演算器の数の変更も容易となる。
【0091】
しかも、この複合演算を変更したいときには、配線情報記憶部152の記憶内容を書き換えるだけでよい。したがって、プロセッサを開発後にある命令の演算処理の内容を変更したくなったときでも、そのような変更が容易となる。あるいは、他の複合演算を必要とする命令を新たにプロセッサにより実行可能としたい場合にも、そのための変更も配線情報記憶部152を書き換えることにより簡単に実現できる。
【0092】
実施の形態1では、可変論理ブロック143が行う演算自体を変更できたが、本実施の形態では、むしろ複数の演算器を複合して使用するような複雑な処理を一つの命令で実行させるときに、その演算を行う演算器を実現することあるいはその演算を変更することが容易となる。
【0093】
また、本実施の形態では、配線情報記憶部152には、実施の形態1で記憶した、可変論理ブロック143の論理構造に関する配線情報を記憶する必要がないので、配線情報記憶部152のメモリ容量を少なくできる。
【0094】
<発明の実施の形態2の変形例>
本実施の形態にも種々の変形が可能である。
【0095】
(1)実施の形態1で使用した技術を本実施の形態で使用することも可能である。たとえば、図9では、バススイッチングマトリクス145とサブスイッチングマトリクス146を利用したが、これらに代えて、図1及び図2、図3に示した配線チャネルとスイッチングマトリクスを利用することも可能である。但し、実施の形態2のように、バスを単位として可変信号線網を構成する方が、回路的に構造が簡単である。可変信号線網のスイッチ動作を切り替えるための配線情報も少なくて済み、それらを転送する信号線の数も少なくて済む。
【0096】
(2)実施の形態1に対してすでに記載した種々の変形例も、可変論理ブロック143の使用に関する部分を除けば本実施の形態にも適用可能である。
【0097】
<発明の実施の形態3>
本実施の形態においては、画像信号処理に適するように構成されたプログラマブル演算器を有するプロセッサ、特に圧縮された画像信号を伸張する処理に適するように構成されているプログラマブル演算器を有するプロセッサを提供する。以下では、実施の形態2との相違点を主として説明するに止める。
【0098】
図13Aに示すように、プログラマブル演算器14には、論理構造がすでに決定された演算器として、一つの乗算器147、一つの算術演算器(ALU)148の他に、新たに二つのシフト機能付き加算器149、RAM14I、8個のレジスタ14Aから14Hが設けられる。可変信号線網は、基本的には実施の形態2と同様に、複数群のX方向のバスと、複数群のY方向のバスと、複数のバススイッチングマトリクス145、複数のサブスイッチングマトリクス146よりなる。算術演算器(ALU)148は4入力、2出力の加算器であり、二つのサブスイッチングマトリクス146からそれぞれ二つのデータが供給され、一つのサブスイッチングマトリクス146に二つのデータを供給する。レジスタ14A、14C、14Dは2つのデータを並列に読み書きできる。他のレジスタ14B、14E、14F、14G、14Hはいずれも一つのデータを保持可能である。
【0099】
レジスタ14Eから14Hは、それぞれ入力インターフェイス141と対応するバススイッチングマトリクス145との間に設けられている。最左列の演算器には、乗算器147、レジスタ14Aが属し、中央の列には、二つのシフト機能付き加算器149が属する。これらの二つの演算器列のいずれにも属する演算器として算術演算器(ALU)148、レジスタ14Dが設けられている。最右列には、二つのシフト機能付き加算器149、レジスタ14B、14Cが属する。図13Bに示すように、演算器制御器15内の配線情報記憶部152は、RAM回路により構成される。そこには、以下に説明するように、本プロセッサを圧縮された画像信号を伸張する処理に使用するために、VLD配線情報、IQ配線情報、IDCT配線情報、MC配線情報が記憶されている。他の信号処理を実行するときには、この配線情報記憶部152に記憶する配線情報を書き換える。
【0100】
図14は、シフト付き加算器149の構成例を示す。シフト付き加算器149は、シフト回路1491と加減算器1492から構成される。入力データは、シフト回路1491により適当にシフトされ加減算器1492の一方の入力に入力され、もう一方の入力ポートに入力されるデータと加減算される。図中に示した斜線付きの四角形の端子1491Tは、演算器制御器15からの制御情報の入力あるいは出力ポイントである。以下同様である。
【0101】
図15に、図13で使用されるレジスタの構成例を示す。図13では、バス幅が異なる2種類のレジスタが利用されている。単位長のレジスタ、たとえば14B、14E、14F、14G、14Hは、図15(a)に示すように、基本的には選択器14XS1とフリップフロップ14XR1で構成される。入力データか現在出力しているデータを選択器14XS1で選択し、フリップフロップ14XR1に入力し、入力クロック(CLK)に応じて入力データをラッチさせる。一方、バス幅が2倍のレジスタ、たとえば14A、14C、14Dは、図13(b)に示すように、このレジスタ回路を独立に2個含んでいる。図13で使用されるレジスタの各々へのデータ書き込みタイミングを指定する信号は、制御器12が命令を解読して生成する。
【0102】
より具体的な例として、画像信号の伸張処理を例にして、伸張の各処理でプログラマブル演算器内の演算器がどのように組み合わされるかを説明する。伸張処理で必要とされる機能演算の代表的なものは、以下の通りである。
【0103】
1)可変長符号の復号(VLD)処理:圧縮された画像信号の符号列(可変長符号を含む)を、復号する処理
2)逆量子化(IQ)処理:復号された符号列は、圧縮器により量子化されたデータであるため、逆量子化の処理を行うことにより、圧縮される以前のデータに近づける処理
3)逆離散コサイン変換(IDCT)処理:逆量子化されたデータは、圧縮器により離散コサイン変換された信号であり、この変換の逆変換を行う処理
4)動き(MC)補償処理:逆変換された信号は、そのまま画像データとなる信号もあるが、圧縮器により以前のフレームのデータとの差分が取られていることがある。そのため、以前のフレームのデータと逆離散コサイン変換されたデータとの加算を行う処理
その他にも必要となる処理があるが、以下ではこれらの4つの処理を実行するためにプログラマブル演算器14がどのような構成になるかを説明する。
【0104】
(1)可変長復号処理
可変長符号化は、シンボルの発生頻度に応じて符号語を割り振ることにより、発生情報量を抑制する技術である。即ち、発生頻度高いシンボルには、短い符号長の符号語を割り振り、派生頻度の低いシンボルには逆に長い符号語を割り振る。よく知られている可変長符号に、ハフマン符号化がある。この可変長符号の復号回路として、バレルシフタを利用する構成がある。その構成例を図16に示し、その動作説明図を図17に示す。
【0105】
圧縮された符号列は、図17に示すように1/0のパターンで入力される。入力された符号列は、図中の例では、4ビットを一つの区切りとして扱い、図16のREG2(201)に入力される。REG1(202)、REG2(201)の4ビットの符号は、図中の結線に従い選択器203,204,205,206に入力され、各選択器は4入力の1本を選択して出力する。図17の例では、REG1(202)に‘1001’、REG2(201)に‘1011’がラッチされており、各選択器は、最左ビットを選択することにより、REG3(207)には、‘1001’がラッチされる。REG2(207)にラッチされた信号は、テーブルRAM208に入力され、復号値はREG4(209)に符号長はREG5(20A)にラッチされる。
【0106】
図17の例では、可変長符号と復号値、符号長の関係が表に示されるような関係だとする。テーブルRAM208には、図17の表に従い復号値と符号長を記憶しておく。REG3(207)の出力(符号)をアドレスとして、このテーブルRAM208を読み出す。REG3(207)の出力‘1001’に対して、RAM208は、復号値2、符号長2を出力し、それぞれをREG4(209)、REG5(20A)にラッチする。復号値は、そのまま出力されるが、符号長は、加算器20Bに入力され、REG6(20C)のデータと加算された後、REG6(20C)にラッチされる。図17の例では、REG6の最初の値は、0であるためREG5の符号長2がそのままREG6にラッチされる。
【0107】
REG6の出力は、各選択器の制御端子に入力されている。REG6の出力が2は、選択器の入力の3番目を選択することを意味する。すなわち、REG6の出力値+1番目の入力線を選択する。そのため、次の選択器からの出力は、‘0110’になる。そして同様の処理を行い、その次の選択器からの出力‘1101’が出力される。そして、この‘1101’を復号すると、符号値2、符号長3となり、加算器20Bは、REG6にラッチされている3と加算するため、キャリー信号を発生する。2ビット加算器であるため、キャリー信号が発生すると、REG2のデータはREG1にラッチされ、REG2には新たなデータ1011がラッチされる。以上の動作を繰り返すことによりスムーズに可変長符号の復号処理が実行できる。
【0108】
本実施の形態では、この可変長符号の復号処理を図13Aのプログラマブル演算器14で実行させるために、この復号処理を要求する一つの命令を実行する。演算器制御器15内の命令デコーダ151は、この命令を解読して配線情報記憶部152からVLD配線情報を読み出す。読み出された配線情報はプログラマブル演算器14内のバススイッチングマトリクス145、サブスイッチングマトリクス146に送られる。図18にプログラマブル演算器14でこの復号処理を実行した場合の配線例を示す。
【0109】
入力インターフェイス141を通して、まずレジスタ14Fに符号データが入力される。このレジスタ14Fが、図16のREG2に当たる。レジスタ14Fの出力は、レジスタ14A内の一つのレジスタの入力に接続される。このレジスタ14A内の一つのレジスタが、図16のREG1に当たる。また、レジスタ14Fの出力は、シフト加算器149の入力に接続される。また、レジスタ14A内の一つのレジスタの出力は、また別のシフト加算器149の入力に接続される。シフト加算器149のシフト機能を利用して出力された信号は、また、別のシフト加算器149に入力され、加算される。即ち、この3つのシフト加算器149は、図16の選択器の機能に当たる。
【0110】
その出力は、レジスタ14Aのもう一方のレジスタに記憶される。そのレジスタからの出力は、RAM14Iに入力される。レジスタ14Aのもう一方のレジスタは、図16中のREG3にあたり、RAM14Iは、テーブルRAM208に当たる。RAM14Iからは、復号値と符号長が出力され、復号値は、レジスタ14Cにラッチされる。符号長は、さらにもう一つのシフト加算器149に入力され、レジスタ14Bの出力と加算され、そのレジスタ14Bに再び記憶される。即ち、このシフト付き加算器が図16中の加算器20Bであり、レジスタ14BがREG6に当たる。
【0111】
(2)逆量子化処理
逆量子化は、復号されたデータ(DCT係数)に量子化スケールとWマトリクスを乗算して実行する。詳細については、ISOやITU−Tの勧告書を参照。このため、図19に示すような回路21が必要となる。復号されたデータ(DCT係数)は、レジスタ212でラッチされ、スケーリング回路213でスケールリングされ、乗算回路214でWマトリクスと演算され、レジスタ215にラッチされる。
【0112】
本実施の形態では、この逆量子化処理を図13Aのプログラマブル演算器14で実行させるために、この逆量子化処理を要求する一つの命令を実行する。演算器制御器15内の命令デコーダ151は、この命令を解読して配線情報記憶部152からIQ配線情報を読み出す。読み出された配線情報はプログラマブル演算器14内の複数のバススイッチングマトリクス145、複数のサブスイッチングマトリクス146に送られる。図20にプログラマブル演算器14でこの逆量子化処理を実行した場合の配線例を示す。
【0113】
入力インターフェイス141を介して入力されたDCT係数は、レジスタ14Fにラッチされる。レジスタ14Fの出力は、シフト加算器149に入力され、スケーリング処理が行われ、その出力を乗算器147の入力に接続する。Wマトリクスは、入力インターフェイス141を通じてレジスタ14Eに入力され、レジスタ14Eの出力は、乗算器147のもう一方の入力端に接続される。乗算結果は、レジスタ14Aでラッチされ、出力インターフェイスCLBから出力される。
【0114】
(3)逆離散コサイン変換処理
逆離散コサイン変換は、積和演算が基本となり、逆量子化されたデータに対して変換行列を演算する演算である。詳細については、ISOあるいはITU−Tの勧告書を参照。この処理のためには図21の回路22が必要となる。すなわち、逆量子化されたデータは、レジスタ221にラッチされた後、乗算器224に入力される。変換行列は、レジスタ222にラッチされた後、乗算器224のもう一方の入力に入力され、乗算が行われる。乗算結果は、レジスタ224にラッチされた後、加算回路225の一方の入力となる。加算回路224のもう一方の入力は、レジスタ226の出力である。加算結果は、レジスタ226に入力され、累積加算回路を実現する。
【0115】
本実施の形態では、この逆離散コサイン変換処理を図13Aのプログラマブル演算器14で実行させるために、この逆離散コサイン変換処理を要求する一つの命令を実行する。演算器制御器15内の命令デコーダ151は、この命令を解読して配線情報記憶部152からIDCT配線情報を読み出す。読み出された配線情報はプログラマブル演算器14内の複数のバススイッチングマトリクス145、複数のサブスイッチングマトリクス146に送られる。図22にプログラマブル演算器14でこの逆離散コサイン変換処理を実行した場合の配線例を示す。
【0116】
逆量子化されたデータは、入力インターフェイス141を通じて、レジスタ14Eにラッチされる。同様に変換行列も、入力インターフェイス141を通じて、レジスタ14Fにラッチされる。レジスタ14E及びレジスタ14Fの出力は、乗算器147の入力となり乗算される。乗算結果は、レジスタ14Aに入力され、出力インターフェイスCLBを介して出力される。
【0117】
(4)動き補償処理
動き補償処理は、既に復号した画像に現復号画像を加算する演算が必要となる。図23に例示する回路23は、2つのリファレンス画像Ref1及びRef2と、現復号画像を加算する構成である。リファレンスデータは、レジスタ231及びレジスタ232にラッチされた後に、加算器234により加算され、その出力は従属に接続された加算器235の一方の入力とされる。また、復号データは、レジスタ233にラッチされた後に、加算器235のもう一方の入力とされ加算される。
【0118】
本実施の形態では、この動き補償処理を図13Aのプログラマブル演算器14で実行させるために、この動き補償処理を要求する一つの命令を実行する。演算器制御器15内の命令デコーダ151は、この命令を解読して配線情報記憶部152からMC配線情報を読み出す。読み出された配線情報はプログラマブル演算器14内の複数のバススイッチングマトリクス145、複数のサブスイッチングマトリクス146に送られる。図24にプログラマブル演算器14でこの動き補償処理を実行した場合の配線例を示す。
【0119】
レファレンスデータは、入力インターフェイス141を通じて、レジスタ14Eとレジスタ14Fにラッチされ、シフト加算器149の入力となる。シフト加算器149の出力は、別のシフト加算器149の一方の入力と接続される。そのシフト加算器149のもう一方の入力である現フレームの復号データは、入力インターフェイス141を通じてレジスタ14Gにラッチされ、そのレジスタ14Gから出力されたデータである。そのシフト加算器149の出力は、レジスタ14Dにラッチされた後に、出力インターフェイスCLBを介して出力される。
【0120】
実施の形態2の利点は、本実施の形態にもあてはまる。さらに、本実施の形態では以下の利点がある。本実施の形態によるプロセッサでは、圧縮された動画像の復号処理に必要な複数の信号処理のいずれをも共通のプログラマブル演算器14を使用して実行できる。すなわち、プログラマブル演算器14により、これらの個々の処理を実行する種々の演算器を実現できたことになる。これらの処理が共通のプログラマブル演算器14により実行されるために、それぞれの処理を別々に実行する複数の専用の演算器を使用する場合よりも、必要な回路全体の規模が少なくて済む。しかも、本プロセッサにより異なる信号処理を実行するには、配線情報記憶部152に予め多くの処理を実行するための配線情報を記憶するか、あるいは必要な配線情報をこの配線情報記憶部152に記憶すればよい。
【0121】
圧縮された動画像の復号処理に必要な複数の信号処理の各々は、複雑な演算を組み合わせた複合演算を必要とするが、本実施の形態はこのような複合演算を容易に実行することができる。
【0122】
さらに、信号処理の仕様が変更された場合でも、配線情報を変更することにより、その変更後の処理を実行するように、プログラマブル演算器14を再構成することは容易である。したがって、新たな原理に基づいて信号処理方法自体が改良された場合にも、その新たな方法に基づいて信号処理を行うように、プログラマブル演算器14を再構成することが極めて容易となる。
【0123】
<発明の実施の形態3の変形例>
本発明は、実施の形態3に限定されるのではなく、それに対してもいろいろの変形が可能である。たとえば、すでに説明した実施の形態1,2に記載の技術あるいはそれぞれの実施の形態に対して記載した変形例は本実施の形態にも適用可能である。
【0124】
また、実施の形態3においては、可変長復号、逆量子化、逆離散コサイン変換、動き補償の各機能を実現するプログラマブル演算器14の配線を説明したが、勿論、各演算で利用していない演算器は、他の演算の実行中に並行して利用できるような配線にすることも可能である。例えば、算術演算器148を、可変長符号処理を行っている時に同時に別の処理を行う配線を施すということも可能である。
【0125】
<変形例>
以上の説明は、プロセッサ内に演算部が一つしかない例で説明したが、本発明のプログラマブル演算器は、演算器が複数あるプロセッサにおいて、それらの演算器の一つとして利用することも可能である。例えば、図25に示すように、プロセッサ内に、算術演算器などの演算器16とは別に、本発明のプログラマブル演算器14及び演算器制御器15を使用してもよい。
【0126】
また、図26に示すように、本発明に係るプログラマブル演算器14と演算器制御器15の組の他に、同様の要素14’、15’の組が少なくとも一つ同じプロセッサ1内に存在してもよい。
【0127】
【発明の効果】
本発明によれば、回路規模が小さくてよい演算器を使用するプロセッサが得られる。
【0128】
さらに、本発明によれば、演算の仕様が変更された場合にも変更後の演算仕様に即して新たな演算を実行するのに適した演算器を有するプロセッサが得られる。
【0129】
さらに、本発明によれば、複数の命令が要求する異なる演算、とくに、複数の演算を組み合わせた複合演算を実行するのに適した演算器を有するプロセッサが得られる。
【図面の簡単な説明】
【図1A】本発明に係るプロセッサの概略ブロック図。
【図1B】図1Aの装置に使用するプログラマブル演算器の概略ブロック図。
【図1C】図1Aの装置に使用する演算器制御器の概略ブロック図。
【図2】図1Aの装置に使用するスイッチングマトリクスの概略構成図。
【図3A】本発明のスイッチングマトリクス内のスイッチの構成例の図。
【図3B】本発明のスイッチングマトリクス内のスイッチの他の構成の図。
【図4】本発明の可変論理ブロック(CLB)の構成例の図。
【図5】本発明の可変論理ブロック(CLB)の別の構成例の図。
【図6A】演算器制御器内の配線情報記憶部の構成例の図。
【図6B】演算器制御器内のデコーダの出力アドレスを示す図。
【図6C】配線情報記憶部内のROMの出力を示す図。
【図6D】配線情報記憶部内の他のROMの出力を示す図。
【図7】演算器制御器の他の構成例の図。
【図8】演算器制御器のさらに他の構成例の図。
【図9】本発明に係る他のプログラマブル演算器の概略ブロック図。
【図10A】バススイッチングマトリクスの構成例の図。
【図10B】サブスイッチングマトリクスの構成例の図。
【図11】バススイッチングマトリクス内のスイッチの構成例の図。
【図12】乗算器及び算術演算器の構成例の図。
【図13A】本発明に係るさらに他のプログラマブル演算器の概略ブロック図。
【図13B】本発明に係るさらに他の演算器制御器の概略ブロック図。
【図14】プログラマブル演算器内のシフト加算器の構成例の図。
【図15】プログラマブル演算器内のレジスタの構成例の図。
【図16】従来の可変長復号回路の図。
【図17】従来の可変長復号回路の説明図。
【図18】可変長復号回路をプログラマブル演算器で実現した場合の接続例の図。
【図19】従来の逆量子化回路の図。
【図20】逆量子化回路をプログラマブル演算器で実現した場合の接続例の図。
【図21】従来の逆離散コサイン変換(DCT)回路の図。
【図22】逆離散コサイン変換をプログラマブル演算器で実現した場合の接続例の図。
【図23】従来の動き補償回路の図。
【図24】動き補償回路をプログラマブル演算器で実現した場合の接続例の図。
【図25】本発明の一実施例であるプロセッサの図。
【図26】本発明の一実施例であるプロセッサの図。
【図27】従来の一般的なプロセッサの図。
【図28】従来の一般的な画像伸張LSIの図。
【図29】従来のプロセッサの図。
【図30】従来のプロセッサの問題点の説明図。
【図31A】従来の画像処理におけるブロック単位の処理の説明図。
【図31B】従来の画像伸張処理の説明図。
Claims (10)
- 論理素子の接続を変更することにより、論理素子を共有してかつ複数の論理構造を実現する電気的に変更可能なプログラマブルゲートアレーにより構成されたプログラマブル演算器と、
上記プログラマブルゲートアレーを命令に応じて論理構造を変更することが可能な制御回路とを有し、
上記命令は、実行すべき演算の種類を規定する第1コードと、オペランドと、上記演算の接続関係を規定する第2コードと、を含み、
上記制御回路は、予め定められた上記プログラマブルゲートアレーの論理構造を変更するための複数の配線情報を予め記憶しており、実行すべき命令に含まれる上記第2コードに基づいて上記複数の配線情報の一つを読み出して上記プログラマブル演算器に供給し、
上記プログラマブル演算器は、上記配線情報に基づいて上記プログラマブルゲートアレーの論理構造を変更して、上記第1コードと上記オペランドで指定される演算を実行することを特徴とするプロセッサ。 - 上記プログラマブル演算器は、
それぞれ電気的に変更可能なプログラマブルゲートアレーにより構成された複数の論理ブロックと、
上記複数の論理ブロック間の接続を電気的に切り替え可能な可変信号線網とを有し、
上記複数の配線情報の各々は、上記複数の論理ブロック内、一つの演算に対応して定められ、その演算を実行する演算器を少なくとも複数の論理ブロックを使用して実現させるための配線情報であって、上記少なくとも複数の論理ブロックの各々論理構造を切り替えるための第1の情報と上記少なくとも複数の論理ブロック間の接続を切り替えるための第2の情報を含み、
該制御回路は、各命令の実行時に、その命令のための配線情報内の第1,第2の情報を、その命令が要求する演算に対応して定められた複数の論理ブロックと上記可変信号線網にそれぞれ供給する請求項1記載のプロセッサ。 - 上記制御回路は、
上記複数の配線情報を記憶した記憶回路と、
実行すべき命令に含まれる上記第2コードに基づいて、上記複数の配線情報の一つを読み出し、上記複数の論理ブロックと上記可変信号線網に供給する回路とを有する請求項2記載のプロセッサ。 - 上記複数の論理ブロックは、2次元マトリックス状に配置され、
上記可変信号線網は、
第1の方向に延在した複数の第1種の信号線と、
第1の方向と直交する第2の方向に延在した複数の第2種の信号線と、
上記複数の第1種の信号線と上記複数の第2種の信号線との間の接続を切り替えるための、マトリックス状に配置された複数のスイッチとを有する請求項2または3記載のプロセッサ。 - 命令に応じて演算機能を実現するように論理構造を電気的に変更可能なプログラマブル演算器と上記プログラマブル演算器の論理構造を変更するための制御回路とを有し、
上記命令は、実行すべき演算の種類を規定する第1コードと、オペランドと、
上記演算の接続関係を規定する第2コードと、を含み、
上記プログラマブル演算器は、
複数の論理ブロックと、
上記複数の論理ブロック間の接続を電気的に切り替え可能な可変信号線網とを有し、
上記制御回路は、
上記命令で指定される演算機能を上記プログラマブル演算器により実現させるための複数の配線情報を記憶した記憶回路と、
複数の命令の各々を実行すべき時に、上記記憶回路から、上記複数の配線情報のうちの上記命令に含まれる上記第2コードに対応する配線情報を読み出して上記可変信号線網に供給する読み出し回路とを有し、
上記配線情報は、上記命令で指定される演算機能を上記プログラマブル演算器に含まれる上記論理ブロックにより実現させるものであることを特徴とするプロセッサ。 - 上記複数の論理ブロックは、2次元マトリックス状に配置され、
上記可変信号線網は、
第1の方向に延在した複数の第1種の信号線と、
第1の方向と直交する第2の方向に延在した複数の第2種の信号線と、
上記複数の第1種の信号線と上記複数の第2種の信号線との間の接続を切り替えるための、マトリックス状に配置された複数のスイッチとを有する請求項5記載のプロセッサ。 - プログラマブル演算器と、制御回路と、を含み、命令を実行するプロセッサであって、
上記プログラマブル演算器は、複数の論理回路ブロックと上記複数の論理回路ブロックを相互に接続する可変信号線網とを含み、
上記可変信号線網は、配線情報に基づいて上記複数の論理回路ブロックの相互接続関係を形成するものであって、
上記制御回路は、命令デコーダと、記憶回路と、を含み、
上記命令デコーダは、上記命令を解読して、実行すべき処理を指定する第1の制御信号を上記プログラマブル演算器に出力するとともに、上記処理に対応する上記配線情報を指定する第2の制御信号を上記記憶回路に出力し、
上記記憶回路は、上記命令で指定され得る複数の上記配線情報を予め格納しており、上記命令デコーダから出力された第2の制御信号で指定される上記配線情報を読み出して、上記プログラマブル演算器に供給し、
上記プログラマブル演算器は、上記配線情報に基づいて上記可変信号線網を制御して上記複数の論理回路ブロックの相互接続関係を形成し、上記第1の制御信号で指定される処理を実行することを特徴とするプロセッサ。 - 上記論理回路ブロックは、論理素子の接続を変更することにより、論理素子を共有してかつ複数の論理構造を実現する電気的に変更可能なプログラマブルゲートアレーにより構成され、
上記配線情報は、上記論理回路ブロックを変更する情報をさらに含むことを特徴とする請求項7記載のプロセッサ。 - 上記命令は、実行すべき処理を示す命令コードと、オペランドを示すオペランドコードと、上記配線情報を指定する配線コードとを含むことを特徴とする請求項7もしくは8記載のプロセッサ。
- 上記命令は、実行すべき処理を示す命令コードと、オペランドを示すオペランドコードとを含み、
上記命令コードは、上記配線情報を指定する情報を含むことを特徴とする請求項7もしくは8記載のプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09612498A JP3611714B2 (ja) | 1998-04-08 | 1998-04-08 | プロセッサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09612498A JP3611714B2 (ja) | 1998-04-08 | 1998-04-08 | プロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11296345A JPH11296345A (ja) | 1999-10-29 |
JP3611714B2 true JP3611714B2 (ja) | 2005-01-19 |
Family
ID=14156642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP09612498A Expired - Fee Related JP3611714B2 (ja) | 1998-04-08 | 1998-04-08 | プロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3611714B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170035012A (ko) * | 2015-09-22 | 2017-03-30 | 삼성전자주식회사 | 부호화된 크기 방식을 이용한 디지털 신호 프로세서 및 이를 포함하는 무선 통신 수신기 |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6556044B2 (en) * | 2001-09-18 | 2003-04-29 | Altera Corporation | Programmable logic device including multipliers and configurations thereof to reduce resource utilization |
AU4992300A (en) * | 1999-05-07 | 2000-11-21 | Morphics Technology, Inc. | Apparatus and method for programmable datapath arithmetic arrays |
JP2004512716A (ja) * | 2000-10-02 | 2004-04-22 | アルテラ・コーポレイション | 専用プロセッサ装置を含むプログラマブルロジック集積回路装置 |
GB2370380B (en) * | 2000-12-19 | 2003-12-31 | Picochip Designs Ltd | Processor architecture |
WO2002050665A1 (en) * | 2000-12-20 | 2002-06-27 | Koninklijke Philips Electronics N.V. | Data processing device with a configurable functional unit |
US7325123B2 (en) | 2001-03-22 | 2008-01-29 | Qst Holdings, Llc | Hierarchical interconnect for configuring separate interconnects for each group of fixed and diverse computational elements |
US7962716B2 (en) | 2001-03-22 | 2011-06-14 | Qst Holdings, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
US7249242B2 (en) | 2002-10-28 | 2007-07-24 | Nvidia Corporation | Input pipeline registers for a node in an adaptive computing engine |
US7752419B1 (en) | 2001-03-22 | 2010-07-06 | Qst Holdings, Llc | Method and system for managing hardware resources to implement system functions using an adaptive computing architecture |
US6836839B2 (en) | 2001-03-22 | 2004-12-28 | Quicksilver Technology, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
US7653710B2 (en) | 2002-06-25 | 2010-01-26 | Qst Holdings, Llc. | Hardware task manager |
JP3613396B2 (ja) * | 2001-06-25 | 2005-01-26 | 日本電気株式会社 | 機能ブロック |
KR20040022706A (ko) * | 2001-07-19 | 2004-03-16 | 소니 가부시끼 가이샤 | 연산 장치 및 화상 처리 장치 |
US7046635B2 (en) | 2001-11-28 | 2006-05-16 | Quicksilver Technology, Inc. | System for authorizing functionality in adaptable hardware devices |
US6986021B2 (en) * | 2001-11-30 | 2006-01-10 | Quick Silver Technology, Inc. | Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements |
US8412915B2 (en) | 2001-11-30 | 2013-04-02 | Altera Corporation | Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements |
US7403981B2 (en) | 2002-01-04 | 2008-07-22 | Quicksilver Technology, Inc. | Apparatus and method for adaptive multimedia reception and transmission in communication environments |
JP3723775B2 (ja) * | 2002-01-10 | 2005-12-07 | 松下電器産業株式会社 | データ処理装置 |
FR2838208B1 (fr) * | 2002-04-03 | 2005-03-11 | Centre Nat Rech Scient | Architecture de calcul logique comprenant plusieurs modes de configuration |
JP3736509B2 (ja) * | 2002-08-02 | 2006-01-18 | ソニー株式会社 | 演算装置及びその演算方法 |
US6924664B2 (en) * | 2003-08-15 | 2005-08-02 | Kilopass Technologies, Inc. | Field programmable gate array |
JP3838367B2 (ja) * | 2003-12-26 | 2006-10-25 | 東京エレクトロン株式会社 | プログラマブル論理回路制御装置、プログラマブル論理回路制御方法及びプログラム |
JP4594666B2 (ja) * | 2004-07-12 | 2010-12-08 | 富士通株式会社 | 再構成可能な演算装置 |
JP2006053687A (ja) * | 2004-08-10 | 2006-02-23 | Sony Corp | 演算装置 |
EP1849095B1 (en) * | 2005-02-07 | 2013-01-02 | Richter, Thomas | Low latency massive parallel data processing device |
JP2007122209A (ja) * | 2005-10-26 | 2007-05-17 | Nec System Technologies Ltd | 3次元グラフィックス描画装置、その方法及びプログラム |
US8266199B2 (en) * | 2006-02-09 | 2012-09-11 | Altera Corporation | Specialized processing block for programmable logic device |
US8266198B2 (en) * | 2006-02-09 | 2012-09-11 | Altera Corporation | Specialized processing block for programmable logic device |
US8386553B1 (en) | 2006-12-05 | 2013-02-26 | Altera Corporation | Large multiplier for programmable logic device |
US7930336B2 (en) | 2006-12-05 | 2011-04-19 | Altera Corporation | Large multiplier for programmable logic device |
US8959137B1 (en) | 2008-02-20 | 2015-02-17 | Altera Corporation | Implementing large multipliers in a programmable integrated circuit device |
US8805916B2 (en) * | 2009-03-03 | 2014-08-12 | Altera Corporation | Digital signal processing circuitry with redundancy and bidirectional data paths |
US8862650B2 (en) | 2010-06-25 | 2014-10-14 | Altera Corporation | Calculation of trigonometric functions in an integrated circuit device |
JP2012048573A (ja) * | 2010-08-27 | 2012-03-08 | Canon Inc | 半導体集積回路、データ処理装置 |
US9600278B1 (en) | 2011-05-09 | 2017-03-21 | Altera Corporation | Programmable device using fixed and configurable logic to implement recursive trees |
US8949298B1 (en) | 2011-09-16 | 2015-02-03 | Altera Corporation | Computing floating-point polynomials in an integrated circuit device |
US9053045B1 (en) | 2011-09-16 | 2015-06-09 | Altera Corporation | Computing floating-point polynomials in an integrated circuit device |
US9098332B1 (en) | 2012-06-01 | 2015-08-04 | Altera Corporation | Specialized processing block with fixed- and floating-point structures |
US8996600B1 (en) | 2012-08-03 | 2015-03-31 | Altera Corporation | Specialized processing block for implementing floating-point multiplier with subnormal operation support |
US9207909B1 (en) | 2012-11-26 | 2015-12-08 | Altera Corporation | Polynomial calculations optimized for programmable integrated circuit device structures |
US9189200B1 (en) | 2013-03-14 | 2015-11-17 | Altera Corporation | Multiple-precision processing block in a programmable integrated circuit device |
US9348795B1 (en) | 2013-07-03 | 2016-05-24 | Altera Corporation | Programmable device using fixed and configurable logic to implement floating-point rounding |
US9684488B2 (en) | 2015-03-26 | 2017-06-20 | Altera Corporation | Combined adder and pre-adder for high-radix multiplier circuit |
US9698790B2 (en) * | 2015-06-26 | 2017-07-04 | Advanced Micro Devices, Inc. | Computer architecture using rapidly reconfigurable circuits and high-bandwidth memory interfaces |
US10942706B2 (en) | 2017-05-05 | 2021-03-09 | Intel Corporation | Implementation of floating-point trigonometric functions in an integrated circuit device |
JP6885640B1 (ja) * | 2020-10-01 | 2021-06-16 | 株式会社ラムダシステムズ | 画像処理装置 |
CN114339106B (zh) * | 2022-01-07 | 2023-06-09 | 北京格非科技股份有限公司 | 一种超高清sdi、ip多画面信号处理器 |
-
1998
- 1998-04-08 JP JP09612498A patent/JP3611714B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170035012A (ko) * | 2015-09-22 | 2017-03-30 | 삼성전자주식회사 | 부호화된 크기 방식을 이용한 디지털 신호 프로세서 및 이를 포함하는 무선 통신 수신기 |
KR102372362B1 (ko) * | 2015-09-22 | 2022-03-08 | 삼성전자주식회사 | 부호화된 크기 방식을 이용한 디지털 신호 프로세서 및 이를 포함하는 무선 통신 수신기 |
Also Published As
Publication number | Publication date |
---|---|
JPH11296345A (ja) | 1999-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3611714B2 (ja) | プロセッサ | |
US8880850B2 (en) | Low power, high performance, heterogeneous, scalable processor architecture | |
US20230089878A1 (en) | Lossy Data Compression | |
US9665540B2 (en) | Video decoder with a programmable inverse transform unit | |
Toyokura et al. | A video DSP with a macroblock-level-pipeline and a SIMD type vector-pipeline architecture for MPEG2 CODEC | |
Wang et al. | A reconfigurable multi-transform VLSI architecture supporting video codec design | |
KR20050065548A (ko) | 비디오 코딩을 위한, 낮은 복잡도의 통합형 변환 | |
Gove | The MVP: a highly-integrated video compression chip | |
US20070198901A1 (en) | Configurable interface for connecting various chipsets for wireless communication to a programmable (multi-)processor | |
Ben Atitallah et al. | An FPGA comparative study of high‐level and low‐level combined designs for HEVC intra, inverse quantization, and IDCT/IDST 2D modules | |
Dias et al. | Unified transform architecture for AVC, AVS, VC-1 and HEVC high-performance codecs | |
US11405622B2 (en) | Lossless compression techniques | |
Chen et al. | High-throughput multistandard transform core supporting MPEG/H. 264/VC-1 using common sharing distributed arithmetic | |
Tung et al. | MMX-based DCT and MC algorithms for real-time pure software MPEG decoding | |
Dang | VLSI architecture for real-time image and video processing systems | |
EP1779256A2 (en) | Programmable processor architecture | |
US7756351B2 (en) | Low power, high performance transform coprocessor for video compression | |
Park et al. | A low complexity reconfigurable DCT architecture to trade off image quality for power consumption | |
Hilgenstock et al. | A video signal processor for MIMD multiprocessing | |
JP3052516B2 (ja) | 符号化データ処理装置 | |
JP4243277B2 (ja) | データ処理装置 | |
JP2004234407A (ja) | データ処理装置 | |
Lin et al. | High performance architecture for unified forward and inverse transform of HEVC | |
Saponara et al. | ASIP-based reconfigurable architectures for power-efficient and real-time image/video processing | |
Homma et al. | A systematic approach for analyzing fast addition algorithms using counter tree diagrams |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040423 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040511 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040705 |
|
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: 20041005 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041020 |
|
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: 20081029 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081029 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091029 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |