(57)【要約】【課題】高速性、自由度を確保しながら、所定の演算機能を実現することができる演算処理回路等を提供する。【解決手段】レジスタ２０〜２ｎ、レジスタ２０〜２ｎに格納されているデータの中から１つのデータをそれぞれ選択するセレクタ４１、４２、セレクタ４１によって選択されたデータと、次の演算ユニット又は外部回路から入力されるデータとの加算を行う加算器４３、及び、外部回路から入力されるデータ又は加算器４３が出力するデータを、レジスタ２０〜２ｎに格納させるべきデータとしてそれぞれ選択するセレクタ３０〜３ｎをそれぞれ含む演算ユニット１０〜１ｍと、演算ユニット１０〜１ｍを制御するための複数の制御信号を出力するスケジューラ回路２とを具備する。【選択図】  図１
2004206326.tif 000002
【特許請求の範囲】
【請求項１】
所定の機能をそれぞれ実現する（Ｍ＋１）個（Ｍは、自然数）の演算ユニットと、前記（Ｍ＋１）個の演算ユニットを制御するための複数の制御信号を出力するスケジューラ回路と、を含む演算処理回路であって、
第Ｉ番目（Ｉは、１から（Ｍ＋１）までの自然数）の前記演算ユニットが、
（Ｎ＋１）個（Ｎは、自然数）のレジスタと、
前記制御信号に応じて、前記（Ｎ＋１）個のレジスタに格納されているデータの中から１つのデータを選択する第１の（Ｎ＋１）入力１出力セレクタと、
前記第１の（Ｎ＋１）入力１出力セレクタによって選択されたデータと、第（Ｉ＋１）番目の演算ユニット又は外部回路から入力されるデータとに所定の演算を行う演算器と、
前記制御信号に応じて、外部回路から入力されるデータ又は前記演算器が出力するデータを、前記（Ｎ＋１）個のレジスタに格納させるべきデータとしてそれぞれ選択する第１〜第（Ｎ＋１）の２入力１出力セレクタと、
前記制御信号に応じて、前記（Ｎ＋１）個のレジスタに格納されているデータの中から１つのデータを選択して第（Ｉ−１）番目の前記演算ユニット又は外部回路に出力する第２の（Ｎ＋１）入力１出力セレクタと、
を具備することを特徴とする演算処理回路。
【請求項２】
請求項１記載の演算処理回路と、
ライトアドレスのビットの並び順を反転したアドレスを出力するビットインバース回路と、
前記スケジューラ回路の指示に応じて前記ライトアドレス又は前記ビットインバース回路が出力するアドレスをデコードし、前記複数の演算ユニット内の前記レジスタであってライトデータを書き込むべきレジスタを決定し、当該レジスタに接続された前記２入力１出力セレクタに対し前記ライトデータを出力するアドレスデコーダ回路と、
を具備し、
前記演算処理回路の第Ｊ番目（Ｊは、１から（Ｍ＋１）までの自然数）の前記演算ユニット内における第Ｋ番目（Ｋは、１から（Ｎ＋１）までの自然数）の前記レジスタが、アドレス（（Ｊ−１）・（Ｎ＋１）＋Ｋ−１）にマッピングされていることを特徴とする半導体装置。
【請求項３】
請求項１記載の演算処理回路と、
リードアドレスのビットの並び順を反転したアドレスを出力するビットインバース回路と、
前記スケジューラ回路の指示に応じて前記リードアドレス又は前記ビットインバース回路が出力するアドレスをデコードし、前記複数の演算ユニット内の前記レジスタであってデータを読み出すべきレジスタを決定するアドレスデコーダ回路と、
前記アドレスデコーダ回路の決定に応じて、前記複数の演算ユニット内の前記レジスタであってデータを読み出すべきレジスタが保持しているデータを選択して外部回路に出力するセレクタと、
を具備し、
前記演算処理回路の第Ｊ番目（Ｊは、１から（Ｍ＋１）までの自然数）の前記演算ユニット内における第Ｋ番目（Ｋは、１から（Ｎ＋１）までの自然数）の前記レジスタが、アドレス（（Ｊ−１）・（Ｎ＋１）＋Ｋ−１）にマッピングされていることを特徴とする半導体装置。
【請求項４】
請求項１記載の演算処理回路と、
ライトアドレスをデコードする第１のアドレスデコーダと、
リードアドレスをデコードし、前記複数の演算ユニット内の前記レジスタであってデータを読み出すべきレジスタを決定する第２のアドレスデコーダと、
前記第２のアドレスデコーダの決定に応じて、前記複数の演算ユニット内の前記レジスタであってデータを読み出すべきレジスタが保持しているデータを選択して外部回路に出力するセレクタと、
を具備し、
前記演算処理回路の第Ｊ番目（Ｊは、１から（Ｍ＋１）までの自然数）の前記演算ユニット内における第Ｋ番目（Ｋは、１から（Ｎ＋１）までの自然数）の前記レジスタが、アドレス（（Ｋ−１）・Ｍ＋Ｊ＋Ｋ−２）にマッピングされていることを特徴とする半導体装置。
【請求項５】
請求項１記載の演算処理回路と、
ライトアドレスのビットの並び順を反転したアドレスを出力するビットインバース回路と、
前記スケジューラ回路の指示に応じて前記ライトアドレス又は前記ビットインバース回路が出力するアドレスをデコードし、前記複数の演算ユニット内の前記レジスタであってライトデータを書き込むべきレジスタを決定し、当該レジスタに接続された前記２入力１出力セレクタに対し前記ライトデータを出力するアドレスデコーダ回路と、
を具備し、
前記演算処理回路の第Ｊ番目（Ｊは、１から（Ｍ＋１）までの自然数）の前記演算ユニット内における第Ｋ番目（Ｋは、１から（Ｎ＋１）までの自然数）の前記レジスタが、アドレス（（Ｋ−１）・Ｍ＋Ｊ＋Ｋ−２）にマッピングされていることを特徴とする半導体装置。
【請求項６】
請求項１記載の演算処理回路と、
リードアドレスのビットの並び順を反転したアドレスを出力するビットインバース回路と、
前記スケジューラ回路の指示に応じて前記リードアドレス又は前記ビットインバース回路が出力するアドレスをデコードし、前記複数の演算ユニット内の前記レジスタであってデータを読み出すべきレジスタを決定するアドレスデコーダ回路と、
前記アドレスデコーダ回路の決定に応じて、前記複数の演算ユニット内の前記レジスタであってデータを読み出すべきレジスタが保持しているデータを選択して外部回路に出力するセレクタと、
を具備し、
前記演算処理回路の第Ｊ番目（Ｊは、１から（Ｍ＋１）までの自然数）の前記演算ユニット内における第Ｋ番目（Ｋは、１から（Ｎ＋１）までの自然数）の前記レジスタが、アドレス（（Ｋ−１）・Ｍ＋Ｊ＋Ｋ−２）にマッピングされていることを特徴とする半導体装置。
【請求項７】
請求項１記載の演算処理回路と、
ライトアドレスをデコードする第１のアドレスデコーダと、
リードアドレスをデコードし、前記複数の演算ユニット内の前記レジスタであってデータを読み出すべきレジスタを決定する第２のアドレスデコーダと、
前記第２のアドレスデコーダの決定に応じて、前記複数の演算ユニット内の前記レジスタであってデータを読み出すべきレジスタが保持しているデータを選択して外部回路に出力するセレクタと、
を具備し、
前記演算処理回路の第Ｊ番目（Ｊは、１から（Ｍ＋１）までの自然数）の前記演算ユニット内における第Ｋ番目（Ｋは、１から（Ｎ＋１）までの自然数）の前記レジスタが、アドレス（（Ｋ−１）・Ｍ＋Ｊ＋Ｋ−２）にマッピングされていることを特徴とする半導体装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、高速性、自由度を確保しながら、所定の演算機能を実現することができる演算処理回路に関する。さらに、本発明は、そのような演算処理回路を用いた半導体装置に関する。
【０００２】
【従来の技術】
演算を高速（ワイヤ速度）で処理することができ、且つ演算を行う回路部分の接続を自由に変更できる自由度を有する演算回路を実現するものとして、様々なアーキテクチャが提案されている。
このような従来のアーキテクチャの例として、（ｉ）所望の演算を行うために設計された専用演算回路（ハードウェア）、（ｉｉ）汎用プロセッサ、（ｉｉｉ）ＦＰＧＡ（Field Programmable Gate Array）について考察する。
【０００３】
上記（ｉ）の専用演算回路は、演算処理を最も高速に行うことができるが、自由度は殆どない。
上記（ｉｉ）の汎用プロセッサは、自由度は最も大きいが、高速処理にはあまり向かない。
上記（ｉｉｉ）のＦＰＧＡは、上記（ｉ）と（ｉｉ）の中間的存在であり、ある程度の高速性及び自由度を両立しようとするものである。
【０００４】
上記（ｉ）〜（ｉｉｉ）の他、更に、アーキテクチャレベルで高速性と自由度を両立させるべく、様々なアーキテクチャが提案されている。例えば、古くはアレイプロセッサやベクトルプロセッサが提案されており、最近ではデータパス型プロセッサなどが提案されている。
このように、様々なアーキテクチャが提案されているが、高速性と自由度、さらにはデバイス上のリソースの有効利用、開発環境との連携においては、市場で容易に受け入れられるアーキテクチャが確立されていないことも事実である。
【０００５】
特に、近年のアーキテクチャの構成は、デバイス内部に大容量のＲＡＭをキャッシュメモリ又はバッファとして搭載するとともに、このようなＲＡＭを制御するキャッシュメモリコントローラ又はバッファコントローラを搭載している。そして、キャッシュメモリコントローラ又はバッファコントローラが、デバイス外部のメモリのデータを必要に応じてフェッチして利用し、デバイス内部の演算回路が各種の演算を行い、演算結果が外部メモリにストアされる。
上記のような動作を繰り返すためには、大容量のメモリがデバイス外部に必要となる。また、デバイス内部においては、すべてのデータが大容量のＲＡＭ（キャッシュメモリ又はバッファ）に存在することとなるため、殆ど全ての演算回路がＲＡＭ（キャッシュメモリ又はバッファ）に接続されることが必須であり、ＲＡＭ（キャッシュメモリ又はバッファ）近傍での配線本数が膨大となり、デバイスを構成する上でのネックとなっている。
【０００６】
【発明が解決しようとする課題】
そこで、上記の点に鑑み、本発明は、高速性、自由度を確保しながら、所定の演算機能を実現することができる演算処理回路を提供することを目的とする。また、本発明は、そのような演算処理回路を用いた半導体装置を提供することを更なる目的とする。
【０００７】
【課題を解決するための手段】
以上の課題を解決するため、本発明に係る演算処理回路は、所定の機能をそれぞれ実現する（Ｍ＋１）個（Ｍは、自然数）の演算ユニットと、（Ｍ＋１）個の演算ユニットを制御するための複数の制御信号を出力するスケジューラ回路と、を含む演算処理回路であって、第Ｉ番目（Ｉは、１から（Ｍ＋１）までの自然数）の演算ユニットが、（Ｎ＋１）個（Ｎは、自然数）のレジスタと、制御信号に応じて、（Ｎ＋１）個のレジスタに格納されているデータの中から１つのデータを選択する第１の（Ｎ＋１）入力１出力セレクタと、第１の（Ｎ＋１）入力１出力セレクタによって選択されたデータと、第（Ｉ＋１）番目の演算ユニット又は外部回路から入力されるデータとに所定の演算を行う演算器と、制御信号に応じて、外部回路から入力されるデータ又は演算器が出力するデータを、（Ｎ＋１）個のレジスタに格納させるべきデータとしてそれぞれ選択する第１〜第（Ｎ＋１）の２入力１出力セレクタと、制御信号に応じて、（Ｎ＋１）個のレジスタに格納されているデータの中から１つのデータを選択して第（Ｉ−１）番目の演算ユニット又は外部回路に出力する第２の（Ｎ＋１）入力１出力セレクタとを具備する。
【０００８】
また、本発明の第１の観点に係る半導体装置は、本発明に係る演算処理回路と、ライトアドレスのビットの並び順を反転したアドレスを出力するビットインバース回路と、スケジューラ回路の指示に応じてライトアドレス又はビットインバース回路が出力するアドレスをデコードし、複数の演算ユニット内のレジスタであってライトデータを書き込むべきレジスタを決定し、当該レジスタに接続された２入力１出力セレクタに対しライトデータを出力するアドレスデコーダ回路とを具備し、演算処理回路の第Ｊ番目（Ｊは、１から（Ｍ＋１）までの自然数）の演算ユニット内における第Ｋ番目（Ｋは、１から（Ｎ＋１）までの自然数）のレジスタが、アドレス（（Ｊ−１）・（Ｎ＋１）＋Ｋ−１）にマッピングされていることを特徴とする。
【０００９】
また、本発明の第２の観点に係る半導体装置は、本発明に係る演算処理回路と、リードアドレスのビットの並び順を反転したアドレスを出力するビットインバース回路と、スケジューラ回路の指示に応じてリードアドレス又はビットインバース回路が出力するアドレスをデコードし、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタを決定するアドレスデコーダ回路と、アドレスデコーダ回路の決定に応じて、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタが保持しているデータを選択して外部回路に出力するセレクタとを具備し、演算処理回路の第Ｊ番目（Ｊは、１から（Ｍ＋１）までの自然数）の演算ユニット内における第Ｋ番目（Ｋは、１から（Ｎ＋１）までの自然数）のレジスタが、アドレス（（Ｊ−１）・（Ｎ＋１）＋Ｋ−１）にマッピングされていることを特徴とする。
【００１０】
また、本発明の第３の観点に係る半導体装置は、本発明に係る演算処理回路と、ライトアドレスをデコードする第１のアドレスデコーダと、リードアドレスをデコードし、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタを決定する第２のアドレスデコーダと、第２のアドレスデコーダの決定に応じて、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタが保持しているデータを選択して外部回路に出力するセレクタとを具備し、演算処理回路の第Ｊ番目（Ｊは、１から（Ｍ＋１）までの自然数）の演算ユニット内における第Ｋ番目（Ｋは、１から（Ｎ＋１）までの自然数）のレジスタが、アドレス（（Ｋ−１）・Ｍ＋Ｊ＋Ｋ−２）にマッピングされていることを特徴とする。
【００１１】
また、本発明の第４の観点に係る半導体装置は、本発明に係る演算処理回路と、ライトアドレスのビットの並び順を反転したアドレスを出力するビットインバース回路と、スケジューラ回路の指示に応じてライトアドレス又はビットインバース回路が出力するアドレスをデコードし、複数の演算ユニット内のレジスタであってライトデータを書き込むべきレジスタを決定し、当該レジスタに接続された２入力１出力セレクタに対しライトデータを出力するアドレスデコーダ回路とを具備し、演算処理回路の第Ｊ番目（Ｊは、１から（Ｍ＋１）までの自然数）の演算ユニット内における第Ｋ番目（Ｋは、１から（Ｎ＋１）までの自然数）のレジスタが、アドレス（（Ｋ−１）・Ｍ＋Ｊ＋Ｋ−２）にマッピングされていることを特徴とする。
【００１２】
また、本発明の第５の観点に係る半導体装置は、本発明に係る演算処理回路と、リードアドレスのビットの並び順を反転したアドレスを出力するビットインバース回路と、スケジューラ回路の指示に応じてリードアドレス又はビットインバース回路が出力するアドレスをデコードし、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタを決定するアドレスデコーダ回路と、アドレスデコーダ回路の決定に応じて、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタが保持しているデータを選択して外部回路に出力するセレクタとを具備し、演算処理回路の第Ｊ番目（Ｊは、１から（Ｍ＋１）までの自然数）の演算ユニット内における第Ｋ番目（Ｋは、１から（Ｎ＋１）までの自然数）のレジスタが、アドレス（（Ｋ−１）・Ｍ＋Ｊ＋Ｋ−２）にマッピングされていることを特徴とする。
【００１３】
また、本発明の第６の観点に係る半導体装置は、本発明に係る演算処理回路と、ライトアドレスをデコードする第１のアドレスデコーダと、リードアドレスをデコードし、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタを決定する第２のアドレスデコーダと、第２のアドレスデコーダの決定に応じて、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタが保持しているデータを選択して外部回路に出力するセレクタとを具備し、演算処理回路の第Ｊ番目（Ｊは、１から（Ｍ＋１）までの自然数）の演算ユニット内における第Ｋ番目（Ｋは、１から（Ｎ＋１）までの自然数）のレジスタが、アドレス（（Ｋ−１）・Ｍ＋Ｊ＋Ｋ−２）にマッピングされていることを特徴とする。
【００１４】
以上の構成によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
【００１５】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態について説明する。なお、同一の構成要素については、同一の参照番号で示している。
図１に、本発明の一実施形態に係る演算処理回路を示す。図１において、演算処理回路１は、所定の機能をそれぞれ有する（ｍ＋１）個（ｍは、自然数）の演算ユニット１０〜１ｍと、演算ユニット１０〜１ｍを制御するための複数の制御信号を出力するスケジューラ回路２とを具備する。
【００１６】
演算ユニット１０〜１ｍは、図１中の縦方向に配列されており、データが演算ユニット１ｍから演算ユニット１０へ伝達されるように、直列に接続されている。なお、演算ユニット１ｍには、外部（図１中の上方向）から、８ビットデータが入力され、演算ユニット１０は、８ビットデータを外部（図１中の下方向）に出力する。
また、演算ユニット１０〜１ｍには、（ｎ＋１）個（ｎは、自然数）の８ビットデータが外部（図１中の左方向）からそれぞれ入力される。さらに、演算ユニット１０〜１ｍは、（ｎ＋１）個の８ビットデータを外部（図１中の右方向）にそれぞれ出力する。
【００１７】
図２は、第（ｍ＋１）番目の演算ユニット１ｍの内部構成を示す図である。図２に示すように、演算ユニット１ｍは、（ｎ＋１）個のレジスタ２０〜２ｎと、（ｎ＋１）個のセレクタ３０〜３ｎ、４１、４２と、加算器４３とを含んでいる。
セレクタ３０〜３ｎは、２入力１出力セレクタであり、スケジューラ回路２から入力される制御信号に応じて、外部回路から入力される８ビットデータ又は加算器４３が出力する８ビットデータをそれぞれ選択して出力する。
【００１８】
レジスタ２０〜２ｎは、セレクタ３０〜３ｎが出力する８ビットデータをそれぞれ格納する。レジスタ２０〜２ｎが格納する（ｎ＋１）個の８ビットデータは、外部回路（図２中の上方向）に出力される。
セレクタ４１は、（ｎ＋１）入力１出力セレクタであり、スケジューラ回路２から入力される制御信号に応じて、レジスタ２０〜２ｎが格納している８ビットデータの中から１つの８ビットデータを選択して加算器４３の一方の入力端子に出力する。
【００１９】
加算器４３の他方の入力端子には、外部回路から８ビットデータが入力される。加算器４３は、２つの入力端子に入力される８ビットデータを加算し、加算結果としての８ビットデータをセレクタ３０〜３ｎに出力する。
セレクタ４２は、（ｎ＋１）入力１出力セレクタであり、スケジューラ回路２から入力される制御信号に応じて、レジスタ２０〜２ｎが格納している８ビットデータの中から１つの８ビットデータを選択して第ｍ番目の演算ユニット（１ｍ−１）に出力する。
【００２０】
図３は、第ｉ番目（ｉは、２〜ｍの自然数）の演算ユニット（本実施形態においては、第２番目の演算ユニット１１〜第ｍ番目の演算ユニット（１ｍ−１））の内部構成を示す図である。図３に示すように、演算ユニット１１〜（１ｍ−１）は、（ｎ＋１）個のレジスタ２０〜２ｎと、（ｎ＋１）個のセレクタ３０〜３ｎ、４１、４２と、加算器４３とを含んでいる。
セレクタ４１は、（ｎ＋１）入力１出力セレクタであり、スケジューラ回路２から入力される制御信号に応じて、レジスタ２０〜２ｎが格納している８ビットデータの中から１つの８ビットデータを選択して加算器４３の一方の入力端子に出力する。
【００２１】
加算器４３の他方の入力端子には、第（ｉ＋１）番目の演算ユニットから８ビットデータが入力される。加算器４３は、２つの入力端子に入力される８ビットデータを加算し、加算結果としての８ビットデータをセレクタ３０〜３ｎに出力する。
セレクタ４２は、（ｎ＋１）入力１出力セレクタであり、スケジューラ回路２から入力される制御信号に応じて、レジスタ２０〜２ｎが格納している８ビットデータの中から１つの８ビットデータを選択して演算ユニット（ｉ−１）に出力する。
【００２２】
図４は、第１番目の演算ユニット１０の内部構成を示す図である。図４に示すように、演算ユニット１０は、（ｎ＋１）個のレジスタ２０〜２ｎと、（ｎ＋１）個のセレクタ３０〜３ｎ、４１、４２と、加算器４３とを含んでいる。
セレクタ４１は、（ｎ＋１）入力１出力セレクタであり、スケジューラ回路２から入力される制御信号に応じて、レジスタ２０〜２ｎが格納している８ビットデータの中から１つの８ビットデータを選択して加算器４３の一方の入力端子に出力する。
【００２３】
加算器４３の他方の入力端子には、第２番目の演算ユニット１１から８ビットデータが入力される。加算器４３は、２つの入力端子に入力される８ビットデータを加算し、加算結果としての８ビットデータをセレクタ３０〜３ｎに出力する。
セレクタ４２は、（ｎ＋１）入力１出力セレクタであり、スケジューラ回路２から入力される制御信号に応じて、レジスタ２０〜２ｎが格納している８ビットデータの中から１つの８ビットデータを選択して外部回路（図４中の下方向）に出力する。
【００２４】
次に、演算処理回路１の動作について、図１〜図４を参照しながら説明する。
ここでは、複数の８ビットデータを加算する場合について説明する。
まず、第（ｍ＋１）番目の演算ユニット１ｍ内の加算器４３が、外部回路（図２中の上方向）から入力される８ビットデータと演算ユニット１ｍ内のレジスタ２０に格納されている８ビットデータとの加算を行う。次に、演算ユニット１ｍ内のレジスタ２１が、加算結果としての８ビットデータを格納する。そして、演算ユニット１ｍ内のセレクタ４２が、演算ユニット１ｍ内のレジスタ２１に格納されている８ビットデータを演算ユニット（１ｍ−１）に出力する。
【００２５】
次に、第ｉ番目の演算ユニット内の加算器４３が、第（ｉ＋１）番目の演算ユニットから入力される８ビットデータと第ｉ番目の演算ユニット内のレジスタ２０に格納されている８ビットデータとの加算を行う。そして、第ｉ番目の演算ユニット内のレジスタ２１が、加算結果としての８ビットデータを格納する。さらに、第ｉ番目の演算ユニット内のセレクタ４２が、第ｉ番目の演算ユニット内のレジスタ２１に格納されている８ビットデータを第（ｉ−１）番目の演算ユニットに出力する。
【００２６】
次に、第１番目の演算ユニット１０内の加算器４３が、第２番目の演算ユニット１１から入力される８ビットデータと演算ユニット１０内のレジスタ２０に格納されている８ビットデータとの加算を行う。そして、演算ユニット１０内のレジスタ２１が、加算結果としての８ビットデータを格納する。さらに、演算ユニット１０内のセレクタ４２が、演算ユニット１０内のレジスタ２１に格納されている８ビットデータを外部回路（図４中の下方向）に出力する。
【００２７】
なお、本実施形態においては、演算ユニット１０〜１ｍが、加算器４３をそれぞれ具備することとしているが、加算器４３に代えて乗算器を具備することとしても良い。演算ユニット１０〜１ｍが乗算器を具備することとすれば、演算処理回路１は、積和演算等を容易且つ高速に行うことができる。
【００２８】
このように、演算処理回路１によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
【００２９】
なお、本実施形態においては、演算ユニット１０〜１ｍを図１中の縦方向に配列しているが、演算ユニット１０〜１ｍをマトリクス状に配列することとしても良い。
また、本実施形態においては、外部から８ビットデータが入力され、レジスタ２０〜２ｎが８ビットデータを格納し、加算器４３が８ビットデータの加算を行うこととしているが、外部から１６ビットデータ、３２ビットデータ、又は、６４ビットデータが入力され、レジスタ２０〜２ｎが１６ビットデータ、３２ビットデータ、又は、６４ビットデータを格納し、加算器４３が１６ビットデータ、３２ビットデータ、又は、６４ビットデータの加算を行うこととしても良い。
また、加算器４３に代えて、四則演算器、その他の演算器を用いることとしても良い。
【００３０】
次に、本発明の第１の実施形態に係る半導体装置について説明する。図５に、本発明の第１の実施形態に係る半導体装置を示す。図５において、半導体装置５０は、演算処理回路１と、ビットインバース回路５１と、アドレスデコーダ５２とを具備する。
本実施形態においては、演算処理回路１の演算ユニット１０〜１ｍ内のレジスタは、半導体装置５０のアドレス空間にマッピングされている。図６は、半導体装置５０のメモリマップを示す図である。図６に示すように、演算処理回路１の第ｊ番目（ｊは、１〜（ｍ＋１）の自然数）の演算ユニット内における第ｋ番目（ｋは、１〜（ｎ＋１）の自然数）のレジスタは、半導体装置５０のアドレス空間内のアドレスであって、（（ｊ−１）・（ｎ＋１）＋ｋ−１）を１６進表示したアドレスにマッピングされている。
【００３１】
再び図５を参照すると、ビットインバース回路５１は、外部から入力されるライトアドレスのビットの並びを逆転させて出力する回路である。例えば、外部からライトアドレス「００１０」（２進数）が入力された場合には、ビットインバース回路５１は、「０１００」（２進数）を出力する。なお、以下において、ビットインバース回路５１が出力するアドレスを「ビットインバースアドレス」という。
アドレスデコーダ５２は、演算処理回路１内のスケジューラ回路２の指示に応じて、ライトアドレス又はビットインバースアドレスを選択してデコードする回路である。
【００３２】
次に、半導体装置５０の動作について、図１〜図６を参照しながら説明する。まず、演算処理回路１内のスケジューラ回路２は、ライトアドレス、ビットインバースアドレスのいずれを選択するかをアドレスデコーダ５２に指示する。
【００３３】
アドレスデコーダ５２は、演算処理回路１内のスケジューラ回路２の指示に応じて、ライトアドレス又はビットインバースアドレスを選択してデコードする。そして、アドレスデコーダ５２は、演算処理回路１の演算ユニット１０〜１ｍ内のレジスタ２０〜２ｎであって、外部から入力される８ビット幅のライトデータを書き込むべきレジスタを決定する。次に、アドレスデコーダ５２は、ライトデータを書き込むべきレジスタに接続されたセレクタを演算処理回路１内のスケジューラ回路２に通知する。
【００３４】
演算処理回路１内のスケジューラ回路２は、アドレスデコーダ５２から通知されたセレクタ（ライトデータを書き込むべきレジスタに接続されたセレクタ）に対し、外部（図５中の左方向）から入力される８ビット幅のライトデータを選択するように指示する。演算処理回路１内のスケジューラ回路２から指示を受けたセレクタ（ライトデータを書き込むべきレジスタに接続されたセレクタ）は、アドレスデコーダ５２から入力されるライトデータを選択して出力する。アドレスデコーダ５２によってライトデータを書き込むべきレジスタとして決定されたレジスタは、セレクタからライトデータを受け取って格納する。
半導体装置５０内の演算処理回路１は、このようにして外部から書き込まれたデータを用いて、所定の演算を行う。
【００３５】
このように、半導体装置５０によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
また、半導体装置５０によれば、アドレスデコーダ５２が、演算処理回路１内のスケジューラ回路２の指示に応じて、ライトアドレス又はビットインバースアドレスをデコードし、ライトデータを書き込むべきレジスタを決定する。そのため、例えば、ＤＣＴ（離散コサイン変換）演算における時間間引きアルゴリズムを容易に実現することができる。
【００３６】
次に、本発明の第２の実施形態に係る半導体装置について説明する。図７に、本発明の第２の実施形態に係る半導体装置を示す。図７において、半導体装置６０は、演算処理回路１と、ビットインバース回路６１と、アドレスデコーダ６２と、セレクタ６３とを具備する。
本実施形態においては、演算処理回路１の演算ユニット１０〜１ｍ内のレジスタは、半導体装置６０のアドレス空間にマッピングされている。図８は、半導体装置６０のメモリマップを示す図である。図８に示すように、演算処理回路１の第ｊ番目（ｊは、１〜（ｍ＋１）の自然数）の演算ユニット内における第ｋ番目（ｋは、１〜（ｎ＋１）の自然数）のレジスタは、半導体装置６０のアドレス空間内のアドレスであって、（（ｊ−１）・（ｎ＋１）＋ｋ−１）を１６進表示したアドレスにマッピングされている。
【００３７】
再び図７を参照すると、ビットインバース回路６１は、外部から入力されるリードアドレスのビットの並びを逆転させて出力する回路である。
アドレスデコーダ６２は、演算処理回路１内のスケジューラ回路２の指示に応じて、リードアドレス又はビットインバースアドレスを選択してデコードする回路である。
セレクタ６３は、アドレスデコーダ６２の指示に応じて、演算処理回路１の演算ユニット１０〜１ｍ内のレジスタ２０〜２ｎが保持している８ビットデータのいずれかを選択して、外部（図７中の右方向）に出力する。
【００３８】
次に、半導体装置６０の動作について、図１〜図４、図７、図８を参照しながら説明する。
まず、半導体装置５０内の演算処理回路１は、外部から書き込まれたデータを用いて、所定の演算を行う。
その後、演算処理回路１内のスケジューラ回路２は、リードアドレス、ビットインバースアドレスのいずれを選択するかをアドレスデコーダ６２に指示する。
【００３９】
アドレスデコーダ６２は、演算処理回路１内のスケジューラ回路２の指示に応じて、リードアドレス又はビットインバースアドレスを選択してデコードする。そして、アドレスデコーダ６２は、演算処理回路１の演算ユニット１０〜１ｍ内のレジスタ２０〜２ｎであって、データを読み出すべきレジスタを決定し、セレクタ６３に指示する。
セレクタ６３は、アドレスデコーダ６２からの指示に応じて、演算処理回路１の演算ユニット１０〜１ｍ内のレジスタ２０〜２ｎが保持している８ビットデータのいずれかを選択して、外部（図７中の右方向）に出力する。
【００４０】
このように、半導体装置６０によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
また、半導体装置６０によれば、アドレスデコーダ６２が、演算処理回路１内のスケジューラ回路２の指示に応じて、リードアドレス又はビットインバースアドレスをデコードし、データを読み出すべきレジスタを決定する。そのため、例えば、ＤＣＴ（離散コサイン変換）演算における周波数間引きアルゴリズムを容易に実現することができる。
【００４１】
次に、本発明の第３の実施形態に係る半導体装置について説明する。図９に、本発明の第３の実施形態に係る半導体装置を示す。図９において、半導体装置７０は、演算処理回路１と、アドレスデコーダ７１、７２と、セレクタ７３とを具備する。
本実施形態においては、演算処理回路１の演算ユニット１０〜１ｍ内のレジスタは、半導体装置７０のアドレス空間にマッピングされている。図１０は、半導体装置７０のメモリマップを示す図である。図１０に示すように、演算処理回路１の第ｊ番目（ｊは、１〜（ｍ＋１）の自然数）の演算ユニット内における第ｋ番目（ｋは、１〜（ｎ＋１）の自然数）のレジスタは、半導体装置７０のアドレス空間内のアドレスであって、（（ｋ−１）・ｍ＋ｊ＋ｋ−２）を１６進表示したアドレスにマッピングされている。
【００４２】
再び図９を参照すると、アドレスデコーダ７１は、ライトアドレスをデコードする回路である。
アドレスデコーダ７２は、ライトアドレスをデコードする回路である。
セレクタ７３は、アドレスデコーダ７２の指示に応じて、演算処理回路１の演算ユニット１０〜１ｍ内のレジスタ２０〜２ｎが保持している８ビットデータのいずれかを選択して、外部（図９中の右方向）に出力する。
【００４３】
次に、半導体装置７０の動作について、図１〜図４、図９、図１０を参照しながら説明する。
まず、アドレスデコーダ７１は、ライトアドレスをデコードする。そして、アドレスデコーダ７１は、演算処理回路１の演算ユニット１０〜１ｍ内のレジスタ２０〜２ｎであって、外部から入力される８ビット幅のライトデータを書き込むべきレジスタを決定する。次に、アドレスデコーダ７１は、ライトデータを書き込むべきレジスタに接続されたセレクタを演算処理回路１内のスケジューラ回路２に通知する。
【００４４】
演算処理回路１内のスケジューラ回路２は、アドレスデコーダ７１から通知されたセレクタ（ライトデータを書き込むべきレジスタに接続されたセレクタ）に対し、外部（図９中の左方向）から入力される８ビット幅のライトデータを選択するように指示する。演算処理回路１内のスケジューラ回路２から指示を受けたセレクタ（ライトデータを書き込むべきレジスタに接続されたセレクタ）は、アドレスデコーダ７１から入力されるライトデータを選択して出力する。アドレスデコーダ７１によってライトデータを書き込むべきレジスタとして決定されたレジスタは、セレクタからライトデータを受け取って格納する。
半導体装置７０内の演算処理回路１は、このようにして外部から書き込まれたデータを用いて、所定の演算を行う。
【００４５】
次に、アドレスデコーダ７２は、リードアドレスをデコードする。そして、アドレスデコーダ７２は、演算処理回路１の演算ユニット１０〜１ｍ内のレジスタ２０〜２ｎであって、データを読み出すべきレジスタを決定し、セレクタ７３に指示する。
セレクタ７３は、アドレスデコーダ７２からの指示に応じて、演算処理回路１の演算ユニット１０〜１ｍ内のレジスタ２０〜２ｎが保持している８ビットデータのいずれかを選択して、外部（図９中の右方向）に出力する。
【００４６】
このように、半導体装置７０によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
また、半導体装置７０においては、演算処理回路１の演算ユニット１０〜１ｍ内のレジスタが、図１０に示すように、半導体装置７０のアドレス空間にマッピングされている。そのため、連続するアドレスに対して連続する書き込みを行うこと（例えば、バーストライト等）が可能であり、また、連続するアドレスに対して連続する読み出しを行うこと（例えば、バーストリード等）が可能である。
【００４７】
次に、本発明の第４の実施形態に係る半導体装置について説明する。図１１に、本発明の第４の実施形態に係る半導体装置を示す。図１１において、半導体装置８０は、演算処理回路１と、ビットインバース回路５１と、アドレスデコーダ５２とを具備する。
本実施形態においては、演算処理回路１の演算ユニット１０〜１ｍ内のレジスタは、半導体装置８０のアドレス空間にマッピングされている。図１２は、半導体装置８０のメモリマップを示す図である。図１２に示すように、演算処理回路１の第ｊ番目（ｊは、１〜（ｍ＋１）の自然数）の演算ユニット内における第ｋ番目（ｋは、１〜（ｎ＋１）の自然数）のレジスタは、半導体装置８０のアドレス空間内のアドレスであって、（（ｋ−１）・ｍ＋ｊ＋ｋ−２）を１６進表示したアドレスにマッピングされている。
【００４８】
このように、半導体装置８０によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
また、半導体装置８０によれば、例えば、ＤＣＴ（離散コサイン変換）演算における時間間引きアルゴリズムを容易に実現することができる。さらに、テーブルを一括して参照するようなテーブル参照型のアルゴリズムを容易に実現することができる。
【００４９】
次に、本発明の第５の実施形態に係る半導体装置について説明する。図１３に、本発明の第５の実施形態に係る半導体装置を示す。図１３において、半導体装置９０は、演算処理回路１と、ビットインバース回路６１と、アドレスデコーダ６２と、セレクタ６３とを具備する。
本実施形態においては、演算処理回路１の演算ユニット１０〜１ｍ内のレジスタは、半導体装置９０のアドレス空間にマッピングされている。図１４は、半導体装置９０のメモリマップを示す図である。図１４に示すように、演算処理回路１の第ｊ番目（ｊは、１〜（ｍ＋１）の自然数）の演算ユニット内における第ｋ番目（ｋは、１〜（ｎ＋１）の自然数）のレジスタは、半導体装置９０のアドレス空間内のアドレスであって、（（ｋ−１）・ｍ＋ｊ＋ｋ−２）を１６進表示したアドレスにマッピングされている。
【００５０】
このように、半導体装置９０によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
また、半導体装置９０によれば、例えば、ＤＣＴ（離散コサイン変換）演算における周波数間引きアルゴリズムを容易に実現することができる。さらに、テーブルを一括して参照するようなテーブル参照型のアルゴリズムを容易に実現することができる。
【００５１】
次に、本発明の第６の実施形態に係る半導体装置について説明する。図１５に、本発明の第６の実施形態に係る半導体装置を示す。図１５において、半導体装置１００は、演算処理回路１と、アドレスデコーダ７１、７２と、セレクタ７３とを具備する。
本実施形態においては、演算処理回路１の演算ユニット１０〜１ｍ内のレジスタは、半導体装置１００のアドレス空間にマッピングされている。図１６は、半導体装置１００のメモリマップを示す図である。図１６に示すように、演算処理回路１の第ｊ番目（ｊは、１〜（ｍ＋１）の自然数）の演算ユニット内における第ｋ番目（ｋは、１〜（ｎ＋１）の自然数）のレジスタは、半導体装置１００のアドレス空間内のアドレスであって、（（ｋ−１）・ｍ＋ｊ＋ｋ−２）を１６進表示したアドレスにマッピングされている。
【００５２】
このように、半導体装置１００によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
【００５３】
【発明の効果】
以上述べたように、本発明によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る演算処理回路を示す図である。
【図２】図１の演算ユニット１ｍの内部構成を示す図である。
【図３】図１の演算ユニット１１〜（１ｍ−１）の内部構成を示す図である。
【図４】図１の演算ユニット１０の内部構成を示す図である。
【図５】本発明の第１の実施形態に係る半導体装置を示す図である。
【図６】本発明の第１の実施形態に係る半導体装置のアドレスマップを示す図である。
【図７】本発明の第２の実施形態に係る半導体装置を示す図である。
【図８】本発明の第２の実施形態に係る半導体装置のアドレスマップを示す図である。
【図９】本発明の第３の実施形態に係る半導体装置を示す図である。
【図１０】本発明の第３の実施形態に係る半導体装置のアドレスマップを示す図である。
【図１１】本発明の第４の実施形態に係る半導体装置を示す図である。
【図１２】本発明の第４の実施形態に係る半導体装置のアドレスマップを示す図である。
【図１３】本発明の第５の実施形態に係る半導体装置を示す図である。
【図１４】本発明の第５の実施形態に係る半導体装置のアドレスマップを示す図である。
【図１５】本発明の第６の実施形態に係る半導体装置を示す図である。
【図１６】本発明の第６の実施形態に係る半導体装置のアドレスマップを示す図である。
【符号の説明】
１  演算処理回路
２  スケジューラ回路
１０、１１、…  演算ユニット
２０、２１、…  レジスタ
３０、３１、…、４１、４２、６３、７３  セレクタ
４３  加算器
５０、６０、７０、８０、９０、１００  半導体装置
５１、６１  ビットインバース回路
５２、６２、７１、７２  アドレスデコーダ
【図１】
2004206326.tif 000003
【図２】
2004206326.tif 000004
【図３】
2004206326.tif 000005
【図４】
2004206326.tif 000006
【図５】
2004206326.tif 000007
【図６】
2004206326.tif 000008
【図７】
2004206326.tif 000009
【図８】
2004206326.tif 000010
【図９】
2004206326.tif 000011
【図１０】
2004206326.tif 000012
【図１１】
2004206326.tif 000013
【図１２】
2004206326.tif 000014
【図１３】
2004206326.tif 000015
【図１４】
2004206326.tif 000016
【図１５】
2004206326.tif 000017
【図１６】
2004206326.tif 000018