JP2004206326A - 演算処理回路及びそれを用いた半導体装置 - Google Patents
演算処理回路及びそれを用いた半導体装置 Download PDFInfo
- Publication number
- JP2004206326A JP2004206326A JP2002373546A JP2002373546A JP2004206326A JP 2004206326 A JP2004206326 A JP 2004206326A JP 2002373546 A JP2002373546 A JP 2002373546A JP 2002373546 A JP2002373546 A JP 2002373546A JP 2004206326 A JP2004206326 A JP 2004206326A
- Authority
- JP
- Japan
- Prior art keywords
- address
- data
- circuit
- register
- arithmetic
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】高速性、自由度を確保しながら、所定の演算機能を実現することができる演算処理回路等を提供する。
【解決手段】レジスタ20〜2n、レジスタ20〜2nに格納されているデータの中から1つのデータをそれぞれ選択するセレクタ41、42、セレクタ41によって選択されたデータと、次の演算ユニット又は外部回路から入力されるデータとの加算を行う加算器43、及び、外部回路から入力されるデータ又は加算器43が出力するデータを、レジスタ20〜2nに格納させるべきデータとしてそれぞれ選択するセレクタ30〜3nをそれぞれ含む演算ユニット10〜1mと、演算ユニット10〜1mを制御するための複数の制御信号を出力するスケジューラ回路2とを具備する。
【選択図】 図1
【解決手段】レジスタ20〜2n、レジスタ20〜2nに格納されているデータの中から1つのデータをそれぞれ選択するセレクタ41、42、セレクタ41によって選択されたデータと、次の演算ユニット又は外部回路から入力されるデータとの加算を行う加算器43、及び、外部回路から入力されるデータ又は加算器43が出力するデータを、レジスタ20〜2nに格納させるべきデータとしてそれぞれ選択するセレクタ30〜3nをそれぞれ含む演算ユニット10〜1mと、演算ユニット10〜1mを制御するための複数の制御信号を出力するスケジューラ回路2とを具備する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、高速性、自由度を確保しながら、所定の演算機能を実現することができる演算処理回路に関する。さらに、本発明は、そのような演算処理回路を用いた半導体装置に関する。
【0002】
【従来の技術】
演算を高速(ワイヤ速度)で処理することができ、且つ演算を行う回路部分の接続を自由に変更できる自由度を有する演算回路を実現するものとして、様々なアーキテクチャが提案されている。
このような従来のアーキテクチャの例として、(i)所望の演算を行うために設計された専用演算回路(ハードウェア)、(ii)汎用プロセッサ、(iii)FPGA(Field Programmable Gate Array)について考察する。
【0003】
上記(i)の専用演算回路は、演算処理を最も高速に行うことができるが、自由度は殆どない。
上記(ii)の汎用プロセッサは、自由度は最も大きいが、高速処理にはあまり向かない。
上記(iii)のFPGAは、上記(i)と(ii)の中間的存在であり、ある程度の高速性及び自由度を両立しようとするものである。
【0004】
上記(i)〜(iii)の他、更に、アーキテクチャレベルで高速性と自由度を両立させるべく、様々なアーキテクチャが提案されている。例えば、古くはアレイプロセッサやベクトルプロセッサが提案されており、最近ではデータパス型プロセッサなどが提案されている。
このように、様々なアーキテクチャが提案されているが、高速性と自由度、さらにはデバイス上のリソースの有効利用、開発環境との連携においては、市場で容易に受け入れられるアーキテクチャが確立されていないことも事実である。
【0005】
特に、近年のアーキテクチャの構成は、デバイス内部に大容量のRAMをキャッシュメモリ又はバッファとして搭載するとともに、このようなRAMを制御するキャッシュメモリコントローラ又はバッファコントローラを搭載している。そして、キャッシュメモリコントローラ又はバッファコントローラが、デバイス外部のメモリのデータを必要に応じてフェッチして利用し、デバイス内部の演算回路が各種の演算を行い、演算結果が外部メモリにストアされる。
上記のような動作を繰り返すためには、大容量のメモリがデバイス外部に必要となる。また、デバイス内部においては、すべてのデータが大容量のRAM(キャッシュメモリ又はバッファ)に存在することとなるため、殆ど全ての演算回路がRAM(キャッシュメモリ又はバッファ)に接続されることが必須であり、RAM(キャッシュメモリ又はバッファ)近傍での配線本数が膨大となり、デバイスを構成する上でのネックとなっている。
【0006】
【発明が解決しようとする課題】
そこで、上記の点に鑑み、本発明は、高速性、自由度を確保しながら、所定の演算機能を実現することができる演算処理回路を提供することを目的とする。また、本発明は、そのような演算処理回路を用いた半導体装置を提供することを更なる目的とする。
【0007】
【課題を解決するための手段】
以上の課題を解決するため、本発明に係る演算処理回路は、所定の機能をそれぞれ実現する(M+1)個(Mは、自然数)の演算ユニットと、(M+1)個の演算ユニットを制御するための複数の制御信号を出力するスケジューラ回路と、を含む演算処理回路であって、第I番目(Iは、1から(M+1)までの自然数)の演算ユニットが、(N+1)個(Nは、自然数)のレジスタと、制御信号に応じて、(N+1)個のレジスタに格納されているデータの中から1つのデータを選択する第1の(N+1)入力1出力セレクタと、第1の(N+1)入力1出力セレクタによって選択されたデータと、第(I+1)番目の演算ユニット又は外部回路から入力されるデータとに所定の演算を行う演算器と、制御信号に応じて、外部回路から入力されるデータ又は演算器が出力するデータを、(N+1)個のレジスタに格納させるべきデータとしてそれぞれ選択する第1〜第(N+1)の2入力1出力セレクタと、制御信号に応じて、(N+1)個のレジスタに格納されているデータの中から1つのデータを選択して第(I−1)番目の演算ユニット又は外部回路に出力する第2の(N+1)入力1出力セレクタとを具備する。
【0008】
また、本発明の第1の観点に係る半導体装置は、本発明に係る演算処理回路と、ライトアドレスのビットの並び順を反転したアドレスを出力するビットインバース回路と、スケジューラ回路の指示に応じてライトアドレス又はビットインバース回路が出力するアドレスをデコードし、複数の演算ユニット内のレジスタであってライトデータを書き込むべきレジスタを決定し、当該レジスタに接続された2入力1出力セレクタに対しライトデータを出力するアドレスデコーダ回路とを具備し、演算処理回路の第J番目(Jは、1から(M+1)までの自然数)の演算ユニット内における第K番目(Kは、1から(N+1)までの自然数)のレジスタが、アドレス((J−1)・(N+1)+K−1)にマッピングされていることを特徴とする。
【0009】
また、本発明の第2の観点に係る半導体装置は、本発明に係る演算処理回路と、リードアドレスのビットの並び順を反転したアドレスを出力するビットインバース回路と、スケジューラ回路の指示に応じてリードアドレス又はビットインバース回路が出力するアドレスをデコードし、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタを決定するアドレスデコーダ回路と、アドレスデコーダ回路の決定に応じて、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタが保持しているデータを選択して外部回路に出力するセレクタとを具備し、演算処理回路の第J番目(Jは、1から(M+1)までの自然数)の演算ユニット内における第K番目(Kは、1から(N+1)までの自然数)のレジスタが、アドレス((J−1)・(N+1)+K−1)にマッピングされていることを特徴とする。
【0010】
また、本発明の第3の観点に係る半導体装置は、本発明に係る演算処理回路と、ライトアドレスをデコードする第1のアドレスデコーダと、リードアドレスをデコードし、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタを決定する第2のアドレスデコーダと、第2のアドレスデコーダの決定に応じて、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタが保持しているデータを選択して外部回路に出力するセレクタとを具備し、演算処理回路の第J番目(Jは、1から(M+1)までの自然数)の演算ユニット内における第K番目(Kは、1から(N+1)までの自然数)のレジスタが、アドレス((K−1)・M+J+K−2)にマッピングされていることを特徴とする。
【0011】
また、本発明の第4の観点に係る半導体装置は、本発明に係る演算処理回路と、ライトアドレスのビットの並び順を反転したアドレスを出力するビットインバース回路と、スケジューラ回路の指示に応じてライトアドレス又はビットインバース回路が出力するアドレスをデコードし、複数の演算ユニット内のレジスタであってライトデータを書き込むべきレジスタを決定し、当該レジスタに接続された2入力1出力セレクタに対しライトデータを出力するアドレスデコーダ回路とを具備し、演算処理回路の第J番目(Jは、1から(M+1)までの自然数)の演算ユニット内における第K番目(Kは、1から(N+1)までの自然数)のレジスタが、アドレス((K−1)・M+J+K−2)にマッピングされていることを特徴とする。
【0012】
また、本発明の第5の観点に係る半導体装置は、本発明に係る演算処理回路と、リードアドレスのビットの並び順を反転したアドレスを出力するビットインバース回路と、スケジューラ回路の指示に応じてリードアドレス又はビットインバース回路が出力するアドレスをデコードし、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタを決定するアドレスデコーダ回路と、アドレスデコーダ回路の決定に応じて、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタが保持しているデータを選択して外部回路に出力するセレクタとを具備し、演算処理回路の第J番目(Jは、1から(M+1)までの自然数)の演算ユニット内における第K番目(Kは、1から(N+1)までの自然数)のレジスタが、アドレス((K−1)・M+J+K−2)にマッピングされていることを特徴とする。
【0013】
また、本発明の第6の観点に係る半導体装置は、本発明に係る演算処理回路と、ライトアドレスをデコードする第1のアドレスデコーダと、リードアドレスをデコードし、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタを決定する第2のアドレスデコーダと、第2のアドレスデコーダの決定に応じて、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタが保持しているデータを選択して外部回路に出力するセレクタとを具備し、演算処理回路の第J番目(Jは、1から(M+1)までの自然数)の演算ユニット内における第K番目(Kは、1から(N+1)までの自然数)のレジスタが、アドレス((K−1)・M+J+K−2)にマッピングされていることを特徴とする。
【0014】
以上の構成によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
【0015】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態について説明する。なお、同一の構成要素については、同一の参照番号で示している。
図1に、本発明の一実施形態に係る演算処理回路を示す。図1において、演算処理回路1は、所定の機能をそれぞれ有する(m+1)個(mは、自然数)の演算ユニット10〜1mと、演算ユニット10〜1mを制御するための複数の制御信号を出力するスケジューラ回路2とを具備する。
【0016】
演算ユニット10〜1mは、図1中の縦方向に配列されており、データが演算ユニット1mから演算ユニット10へ伝達されるように、直列に接続されている。なお、演算ユニット1mには、外部(図1中の上方向)から、8ビットデータが入力され、演算ユニット10は、8ビットデータを外部(図1中の下方向)に出力する。
また、演算ユニット10〜1mには、(n+1)個(nは、自然数)の8ビットデータが外部(図1中の左方向)からそれぞれ入力される。さらに、演算ユニット10〜1mは、(n+1)個の8ビットデータを外部(図1中の右方向)にそれぞれ出力する。
【0017】
図2は、第(m+1)番目の演算ユニット1mの内部構成を示す図である。図2に示すように、演算ユニット1mは、(n+1)個のレジスタ20〜2nと、(n+1)個のセレクタ30〜3n、41、42と、加算器43とを含んでいる。
セレクタ30〜3nは、2入力1出力セレクタであり、スケジューラ回路2から入力される制御信号に応じて、外部回路から入力される8ビットデータ又は加算器43が出力する8ビットデータをそれぞれ選択して出力する。
【0018】
レジスタ20〜2nは、セレクタ30〜3nが出力する8ビットデータをそれぞれ格納する。レジスタ20〜2nが格納する(n+1)個の8ビットデータは、外部回路(図2中の上方向)に出力される。
セレクタ41は、(n+1)入力1出力セレクタであり、スケジューラ回路2から入力される制御信号に応じて、レジスタ20〜2nが格納している8ビットデータの中から1つの8ビットデータを選択して加算器43の一方の入力端子に出力する。
【0019】
加算器43の他方の入力端子には、外部回路から8ビットデータが入力される。加算器43は、2つの入力端子に入力される8ビットデータを加算し、加算結果としての8ビットデータをセレクタ30〜3nに出力する。
セレクタ42は、(n+1)入力1出力セレクタであり、スケジューラ回路2から入力される制御信号に応じて、レジスタ20〜2nが格納している8ビットデータの中から1つの8ビットデータを選択して第m番目の演算ユニット(1m−1)に出力する。
【0020】
図3は、第i番目(iは、2〜mの自然数)の演算ユニット(本実施形態においては、第2番目の演算ユニット11〜第m番目の演算ユニット(1m−1))の内部構成を示す図である。図3に示すように、演算ユニット11〜(1m−1)は、(n+1)個のレジスタ20〜2nと、(n+1)個のセレクタ30〜3n、41、42と、加算器43とを含んでいる。
セレクタ41は、(n+1)入力1出力セレクタであり、スケジューラ回路2から入力される制御信号に応じて、レジスタ20〜2nが格納している8ビットデータの中から1つの8ビットデータを選択して加算器43の一方の入力端子に出力する。
【0021】
加算器43の他方の入力端子には、第(i+1)番目の演算ユニットから8ビットデータが入力される。加算器43は、2つの入力端子に入力される8ビットデータを加算し、加算結果としての8ビットデータをセレクタ30〜3nに出力する。
セレクタ42は、(n+1)入力1出力セレクタであり、スケジューラ回路2から入力される制御信号に応じて、レジスタ20〜2nが格納している8ビットデータの中から1つの8ビットデータを選択して演算ユニット(i−1)に出力する。
【0022】
図4は、第1番目の演算ユニット10の内部構成を示す図である。図4に示すように、演算ユニット10は、(n+1)個のレジスタ20〜2nと、(n+1)個のセレクタ30〜3n、41、42と、加算器43とを含んでいる。
セレクタ41は、(n+1)入力1出力セレクタであり、スケジューラ回路2から入力される制御信号に応じて、レジスタ20〜2nが格納している8ビットデータの中から1つの8ビットデータを選択して加算器43の一方の入力端子に出力する。
【0023】
加算器43の他方の入力端子には、第2番目の演算ユニット11から8ビットデータが入力される。加算器43は、2つの入力端子に入力される8ビットデータを加算し、加算結果としての8ビットデータをセレクタ30〜3nに出力する。
セレクタ42は、(n+1)入力1出力セレクタであり、スケジューラ回路2から入力される制御信号に応じて、レジスタ20〜2nが格納している8ビットデータの中から1つの8ビットデータを選択して外部回路(図4中の下方向)に出力する。
【0024】
次に、演算処理回路1の動作について、図1〜図4を参照しながら説明する。
ここでは、複数の8ビットデータを加算する場合について説明する。
まず、第(m+1)番目の演算ユニット1m内の加算器43が、外部回路(図2中の上方向)から入力される8ビットデータと演算ユニット1m内のレジスタ20に格納されている8ビットデータとの加算を行う。次に、演算ユニット1m内のレジスタ21が、加算結果としての8ビットデータを格納する。そして、演算ユニット1m内のセレクタ42が、演算ユニット1m内のレジスタ21に格納されている8ビットデータを演算ユニット(1m−1)に出力する。
【0025】
次に、第i番目の演算ユニット内の加算器43が、第(i+1)番目の演算ユニットから入力される8ビットデータと第i番目の演算ユニット内のレジスタ20に格納されている8ビットデータとの加算を行う。そして、第i番目の演算ユニット内のレジスタ21が、加算結果としての8ビットデータを格納する。さらに、第i番目の演算ユニット内のセレクタ42が、第i番目の演算ユニット内のレジスタ21に格納されている8ビットデータを第(i−1)番目の演算ユニットに出力する。
【0026】
次に、第1番目の演算ユニット10内の加算器43が、第2番目の演算ユニット11から入力される8ビットデータと演算ユニット10内のレジスタ20に格納されている8ビットデータとの加算を行う。そして、演算ユニット10内のレジスタ21が、加算結果としての8ビットデータを格納する。さらに、演算ユニット10内のセレクタ42が、演算ユニット10内のレジスタ21に格納されている8ビットデータを外部回路(図4中の下方向)に出力する。
【0027】
なお、本実施形態においては、演算ユニット10〜1mが、加算器43をそれぞれ具備することとしているが、加算器43に代えて乗算器を具備することとしても良い。演算ユニット10〜1mが乗算器を具備することとすれば、演算処理回路1は、積和演算等を容易且つ高速に行うことができる。
【0028】
このように、演算処理回路1によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
【0029】
なお、本実施形態においては、演算ユニット10〜1mを図1中の縦方向に配列しているが、演算ユニット10〜1mをマトリクス状に配列することとしても良い。
また、本実施形態においては、外部から8ビットデータが入力され、レジスタ20〜2nが8ビットデータを格納し、加算器43が8ビットデータの加算を行うこととしているが、外部から16ビットデータ、32ビットデータ、又は、64ビットデータが入力され、レジスタ20〜2nが16ビットデータ、32ビットデータ、又は、64ビットデータを格納し、加算器43が16ビットデータ、32ビットデータ、又は、64ビットデータの加算を行うこととしても良い。
また、加算器43に代えて、四則演算器、その他の演算器を用いることとしても良い。
【0030】
次に、本発明の第1の実施形態に係る半導体装置について説明する。図5に、本発明の第1の実施形態に係る半導体装置を示す。図5において、半導体装置50は、演算処理回路1と、ビットインバース回路51と、アドレスデコーダ52とを具備する。
本実施形態においては、演算処理回路1の演算ユニット10〜1m内のレジスタは、半導体装置50のアドレス空間にマッピングされている。図6は、半導体装置50のメモリマップを示す図である。図6に示すように、演算処理回路1の第j番目(jは、1〜(m+1)の自然数)の演算ユニット内における第k番目(kは、1〜(n+1)の自然数)のレジスタは、半導体装置50のアドレス空間内のアドレスであって、((j−1)・(n+1)+k−1)を16進表示したアドレスにマッピングされている。
【0031】
再び図5を参照すると、ビットインバース回路51は、外部から入力されるライトアドレスのビットの並びを逆転させて出力する回路である。例えば、外部からライトアドレス「0010」(2進数)が入力された場合には、ビットインバース回路51は、「0100」(2進数)を出力する。なお、以下において、ビットインバース回路51が出力するアドレスを「ビットインバースアドレス」という。
アドレスデコーダ52は、演算処理回路1内のスケジューラ回路2の指示に応じて、ライトアドレス又はビットインバースアドレスを選択してデコードする回路である。
【0032】
次に、半導体装置50の動作について、図1〜図6を参照しながら説明する。まず、演算処理回路1内のスケジューラ回路2は、ライトアドレス、ビットインバースアドレスのいずれを選択するかをアドレスデコーダ52に指示する。
【0033】
アドレスデコーダ52は、演算処理回路1内のスケジューラ回路2の指示に応じて、ライトアドレス又はビットインバースアドレスを選択してデコードする。そして、アドレスデコーダ52は、演算処理回路1の演算ユニット10〜1m内のレジスタ20〜2nであって、外部から入力される8ビット幅のライトデータを書き込むべきレジスタを決定する。次に、アドレスデコーダ52は、ライトデータを書き込むべきレジスタに接続されたセレクタを演算処理回路1内のスケジューラ回路2に通知する。
【0034】
演算処理回路1内のスケジューラ回路2は、アドレスデコーダ52から通知されたセレクタ(ライトデータを書き込むべきレジスタに接続されたセレクタ)に対し、外部(図5中の左方向)から入力される8ビット幅のライトデータを選択するように指示する。演算処理回路1内のスケジューラ回路2から指示を受けたセレクタ(ライトデータを書き込むべきレジスタに接続されたセレクタ)は、アドレスデコーダ52から入力されるライトデータを選択して出力する。アドレスデコーダ52によってライトデータを書き込むべきレジスタとして決定されたレジスタは、セレクタからライトデータを受け取って格納する。
半導体装置50内の演算処理回路1は、このようにして外部から書き込まれたデータを用いて、所定の演算を行う。
【0035】
このように、半導体装置50によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
また、半導体装置50によれば、アドレスデコーダ52が、演算処理回路1内のスケジューラ回路2の指示に応じて、ライトアドレス又はビットインバースアドレスをデコードし、ライトデータを書き込むべきレジスタを決定する。そのため、例えば、DCT(離散コサイン変換)演算における時間間引きアルゴリズムを容易に実現することができる。
【0036】
次に、本発明の第2の実施形態に係る半導体装置について説明する。図7に、本発明の第2の実施形態に係る半導体装置を示す。図7において、半導体装置60は、演算処理回路1と、ビットインバース回路61と、アドレスデコーダ62と、セレクタ63とを具備する。
本実施形態においては、演算処理回路1の演算ユニット10〜1m内のレジスタは、半導体装置60のアドレス空間にマッピングされている。図8は、半導体装置60のメモリマップを示す図である。図8に示すように、演算処理回路1の第j番目(jは、1〜(m+1)の自然数)の演算ユニット内における第k番目(kは、1〜(n+1)の自然数)のレジスタは、半導体装置60のアドレス空間内のアドレスであって、((j−1)・(n+1)+k−1)を16進表示したアドレスにマッピングされている。
【0037】
再び図7を参照すると、ビットインバース回路61は、外部から入力されるリードアドレスのビットの並びを逆転させて出力する回路である。
アドレスデコーダ62は、演算処理回路1内のスケジューラ回路2の指示に応じて、リードアドレス又はビットインバースアドレスを選択してデコードする回路である。
セレクタ63は、アドレスデコーダ62の指示に応じて、演算処理回路1の演算ユニット10〜1m内のレジスタ20〜2nが保持している8ビットデータのいずれかを選択して、外部(図7中の右方向)に出力する。
【0038】
次に、半導体装置60の動作について、図1〜図4、図7、図8を参照しながら説明する。
まず、半導体装置50内の演算処理回路1は、外部から書き込まれたデータを用いて、所定の演算を行う。
その後、演算処理回路1内のスケジューラ回路2は、リードアドレス、ビットインバースアドレスのいずれを選択するかをアドレスデコーダ62に指示する。
【0039】
アドレスデコーダ62は、演算処理回路1内のスケジューラ回路2の指示に応じて、リードアドレス又はビットインバースアドレスを選択してデコードする。そして、アドレスデコーダ62は、演算処理回路1の演算ユニット10〜1m内のレジスタ20〜2nであって、データを読み出すべきレジスタを決定し、セレクタ63に指示する。
セレクタ63は、アドレスデコーダ62からの指示に応じて、演算処理回路1の演算ユニット10〜1m内のレジスタ20〜2nが保持している8ビットデータのいずれかを選択して、外部(図7中の右方向)に出力する。
【0040】
このように、半導体装置60によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
また、半導体装置60によれば、アドレスデコーダ62が、演算処理回路1内のスケジューラ回路2の指示に応じて、リードアドレス又はビットインバースアドレスをデコードし、データを読み出すべきレジスタを決定する。そのため、例えば、DCT(離散コサイン変換)演算における周波数間引きアルゴリズムを容易に実現することができる。
【0041】
次に、本発明の第3の実施形態に係る半導体装置について説明する。図9に、本発明の第3の実施形態に係る半導体装置を示す。図9において、半導体装置70は、演算処理回路1と、アドレスデコーダ71、72と、セレクタ73とを具備する。
本実施形態においては、演算処理回路1の演算ユニット10〜1m内のレジスタは、半導体装置70のアドレス空間にマッピングされている。図10は、半導体装置70のメモリマップを示す図である。図10に示すように、演算処理回路1の第j番目(jは、1〜(m+1)の自然数)の演算ユニット内における第k番目(kは、1〜(n+1)の自然数)のレジスタは、半導体装置70のアドレス空間内のアドレスであって、((k−1)・m+j+k−2)を16進表示したアドレスにマッピングされている。
【0042】
再び図9を参照すると、アドレスデコーダ71は、ライトアドレスをデコードする回路である。
アドレスデコーダ72は、ライトアドレスをデコードする回路である。
セレクタ73は、アドレスデコーダ72の指示に応じて、演算処理回路1の演算ユニット10〜1m内のレジスタ20〜2nが保持している8ビットデータのいずれかを選択して、外部(図9中の右方向)に出力する。
【0043】
次に、半導体装置70の動作について、図1〜図4、図9、図10を参照しながら説明する。
まず、アドレスデコーダ71は、ライトアドレスをデコードする。そして、アドレスデコーダ71は、演算処理回路1の演算ユニット10〜1m内のレジスタ20〜2nであって、外部から入力される8ビット幅のライトデータを書き込むべきレジスタを決定する。次に、アドレスデコーダ71は、ライトデータを書き込むべきレジスタに接続されたセレクタを演算処理回路1内のスケジューラ回路2に通知する。
【0044】
演算処理回路1内のスケジューラ回路2は、アドレスデコーダ71から通知されたセレクタ(ライトデータを書き込むべきレジスタに接続されたセレクタ)に対し、外部(図9中の左方向)から入力される8ビット幅のライトデータを選択するように指示する。演算処理回路1内のスケジューラ回路2から指示を受けたセレクタ(ライトデータを書き込むべきレジスタに接続されたセレクタ)は、アドレスデコーダ71から入力されるライトデータを選択して出力する。アドレスデコーダ71によってライトデータを書き込むべきレジスタとして決定されたレジスタは、セレクタからライトデータを受け取って格納する。
半導体装置70内の演算処理回路1は、このようにして外部から書き込まれたデータを用いて、所定の演算を行う。
【0045】
次に、アドレスデコーダ72は、リードアドレスをデコードする。そして、アドレスデコーダ72は、演算処理回路1の演算ユニット10〜1m内のレジスタ20〜2nであって、データを読み出すべきレジスタを決定し、セレクタ73に指示する。
セレクタ73は、アドレスデコーダ72からの指示に応じて、演算処理回路1の演算ユニット10〜1m内のレジスタ20〜2nが保持している8ビットデータのいずれかを選択して、外部(図9中の右方向)に出力する。
【0046】
このように、半導体装置70によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
また、半導体装置70においては、演算処理回路1の演算ユニット10〜1m内のレジスタが、図10に示すように、半導体装置70のアドレス空間にマッピングされている。そのため、連続するアドレスに対して連続する書き込みを行うこと(例えば、バーストライト等)が可能であり、また、連続するアドレスに対して連続する読み出しを行うこと(例えば、バーストリード等)が可能である。
【0047】
次に、本発明の第4の実施形態に係る半導体装置について説明する。図11に、本発明の第4の実施形態に係る半導体装置を示す。図11において、半導体装置80は、演算処理回路1と、ビットインバース回路51と、アドレスデコーダ52とを具備する。
本実施形態においては、演算処理回路1の演算ユニット10〜1m内のレジスタは、半導体装置80のアドレス空間にマッピングされている。図12は、半導体装置80のメモリマップを示す図である。図12に示すように、演算処理回路1の第j番目(jは、1〜(m+1)の自然数)の演算ユニット内における第k番目(kは、1〜(n+1)の自然数)のレジスタは、半導体装置80のアドレス空間内のアドレスであって、((k−1)・m+j+k−2)を16進表示したアドレスにマッピングされている。
【0048】
このように、半導体装置80によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
また、半導体装置80によれば、例えば、DCT(離散コサイン変換)演算における時間間引きアルゴリズムを容易に実現することができる。さらに、テーブルを一括して参照するようなテーブル参照型のアルゴリズムを容易に実現することができる。
【0049】
次に、本発明の第5の実施形態に係る半導体装置について説明する。図13に、本発明の第5の実施形態に係る半導体装置を示す。図13において、半導体装置90は、演算処理回路1と、ビットインバース回路61と、アドレスデコーダ62と、セレクタ63とを具備する。
本実施形態においては、演算処理回路1の演算ユニット10〜1m内のレジスタは、半導体装置90のアドレス空間にマッピングされている。図14は、半導体装置90のメモリマップを示す図である。図14に示すように、演算処理回路1の第j番目(jは、1〜(m+1)の自然数)の演算ユニット内における第k番目(kは、1〜(n+1)の自然数)のレジスタは、半導体装置90のアドレス空間内のアドレスであって、((k−1)・m+j+k−2)を16進表示したアドレスにマッピングされている。
【0050】
このように、半導体装置90によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
また、半導体装置90によれば、例えば、DCT(離散コサイン変換)演算における周波数間引きアルゴリズムを容易に実現することができる。さらに、テーブルを一括して参照するようなテーブル参照型のアルゴリズムを容易に実現することができる。
【0051】
次に、本発明の第6の実施形態に係る半導体装置について説明する。図15に、本発明の第6の実施形態に係る半導体装置を示す。図15において、半導体装置100は、演算処理回路1と、アドレスデコーダ71、72と、セレクタ73とを具備する。
本実施形態においては、演算処理回路1の演算ユニット10〜1m内のレジスタは、半導体装置100のアドレス空間にマッピングされている。図16は、半導体装置100のメモリマップを示す図である。図16に示すように、演算処理回路1の第j番目(jは、1〜(m+1)の自然数)の演算ユニット内における第k番目(kは、1〜(n+1)の自然数)のレジスタは、半導体装置100のアドレス空間内のアドレスであって、((k−1)・m+j+k−2)を16進表示したアドレスにマッピングされている。
【0052】
このように、半導体装置100によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
【0053】
【発明の効果】
以上述べたように、本発明によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る演算処理回路を示す図である。
【図2】図1の演算ユニット1mの内部構成を示す図である。
【図3】図1の演算ユニット11〜(1m−1)の内部構成を示す図である。
【図4】図1の演算ユニット10の内部構成を示す図である。
【図5】本発明の第1の実施形態に係る半導体装置を示す図である。
【図6】本発明の第1の実施形態に係る半導体装置のアドレスマップを示す図である。
【図7】本発明の第2の実施形態に係る半導体装置を示す図である。
【図8】本発明の第2の実施形態に係る半導体装置のアドレスマップを示す図である。
【図9】本発明の第3の実施形態に係る半導体装置を示す図である。
【図10】本発明の第3の実施形態に係る半導体装置のアドレスマップを示す図である。
【図11】本発明の第4の実施形態に係る半導体装置を示す図である。
【図12】本発明の第4の実施形態に係る半導体装置のアドレスマップを示す図である。
【図13】本発明の第5の実施形態に係る半導体装置を示す図である。
【図14】本発明の第5の実施形態に係る半導体装置のアドレスマップを示す図である。
【図15】本発明の第6の実施形態に係る半導体装置を示す図である。
【図16】本発明の第6の実施形態に係る半導体装置のアドレスマップを示す図である。
【符号の説明】
1 演算処理回路
2 スケジューラ回路
10、11、… 演算ユニット
20、21、… レジスタ
30、31、…、41、42、63、73 セレクタ
43 加算器
50、60、70、80、90、100 半導体装置
51、61 ビットインバース回路
52、62、71、72 アドレスデコーダ
【発明の属する技術分野】
本発明は、高速性、自由度を確保しながら、所定の演算機能を実現することができる演算処理回路に関する。さらに、本発明は、そのような演算処理回路を用いた半導体装置に関する。
【0002】
【従来の技術】
演算を高速(ワイヤ速度)で処理することができ、且つ演算を行う回路部分の接続を自由に変更できる自由度を有する演算回路を実現するものとして、様々なアーキテクチャが提案されている。
このような従来のアーキテクチャの例として、(i)所望の演算を行うために設計された専用演算回路(ハードウェア)、(ii)汎用プロセッサ、(iii)FPGA(Field Programmable Gate Array)について考察する。
【0003】
上記(i)の専用演算回路は、演算処理を最も高速に行うことができるが、自由度は殆どない。
上記(ii)の汎用プロセッサは、自由度は最も大きいが、高速処理にはあまり向かない。
上記(iii)のFPGAは、上記(i)と(ii)の中間的存在であり、ある程度の高速性及び自由度を両立しようとするものである。
【0004】
上記(i)〜(iii)の他、更に、アーキテクチャレベルで高速性と自由度を両立させるべく、様々なアーキテクチャが提案されている。例えば、古くはアレイプロセッサやベクトルプロセッサが提案されており、最近ではデータパス型プロセッサなどが提案されている。
このように、様々なアーキテクチャが提案されているが、高速性と自由度、さらにはデバイス上のリソースの有効利用、開発環境との連携においては、市場で容易に受け入れられるアーキテクチャが確立されていないことも事実である。
【0005】
特に、近年のアーキテクチャの構成は、デバイス内部に大容量のRAMをキャッシュメモリ又はバッファとして搭載するとともに、このようなRAMを制御するキャッシュメモリコントローラ又はバッファコントローラを搭載している。そして、キャッシュメモリコントローラ又はバッファコントローラが、デバイス外部のメモリのデータを必要に応じてフェッチして利用し、デバイス内部の演算回路が各種の演算を行い、演算結果が外部メモリにストアされる。
上記のような動作を繰り返すためには、大容量のメモリがデバイス外部に必要となる。また、デバイス内部においては、すべてのデータが大容量のRAM(キャッシュメモリ又はバッファ)に存在することとなるため、殆ど全ての演算回路がRAM(キャッシュメモリ又はバッファ)に接続されることが必須であり、RAM(キャッシュメモリ又はバッファ)近傍での配線本数が膨大となり、デバイスを構成する上でのネックとなっている。
【0006】
【発明が解決しようとする課題】
そこで、上記の点に鑑み、本発明は、高速性、自由度を確保しながら、所定の演算機能を実現することができる演算処理回路を提供することを目的とする。また、本発明は、そのような演算処理回路を用いた半導体装置を提供することを更なる目的とする。
【0007】
【課題を解決するための手段】
以上の課題を解決するため、本発明に係る演算処理回路は、所定の機能をそれぞれ実現する(M+1)個(Mは、自然数)の演算ユニットと、(M+1)個の演算ユニットを制御するための複数の制御信号を出力するスケジューラ回路と、を含む演算処理回路であって、第I番目(Iは、1から(M+1)までの自然数)の演算ユニットが、(N+1)個(Nは、自然数)のレジスタと、制御信号に応じて、(N+1)個のレジスタに格納されているデータの中から1つのデータを選択する第1の(N+1)入力1出力セレクタと、第1の(N+1)入力1出力セレクタによって選択されたデータと、第(I+1)番目の演算ユニット又は外部回路から入力されるデータとに所定の演算を行う演算器と、制御信号に応じて、外部回路から入力されるデータ又は演算器が出力するデータを、(N+1)個のレジスタに格納させるべきデータとしてそれぞれ選択する第1〜第(N+1)の2入力1出力セレクタと、制御信号に応じて、(N+1)個のレジスタに格納されているデータの中から1つのデータを選択して第(I−1)番目の演算ユニット又は外部回路に出力する第2の(N+1)入力1出力セレクタとを具備する。
【0008】
また、本発明の第1の観点に係る半導体装置は、本発明に係る演算処理回路と、ライトアドレスのビットの並び順を反転したアドレスを出力するビットインバース回路と、スケジューラ回路の指示に応じてライトアドレス又はビットインバース回路が出力するアドレスをデコードし、複数の演算ユニット内のレジスタであってライトデータを書き込むべきレジスタを決定し、当該レジスタに接続された2入力1出力セレクタに対しライトデータを出力するアドレスデコーダ回路とを具備し、演算処理回路の第J番目(Jは、1から(M+1)までの自然数)の演算ユニット内における第K番目(Kは、1から(N+1)までの自然数)のレジスタが、アドレス((J−1)・(N+1)+K−1)にマッピングされていることを特徴とする。
【0009】
また、本発明の第2の観点に係る半導体装置は、本発明に係る演算処理回路と、リードアドレスのビットの並び順を反転したアドレスを出力するビットインバース回路と、スケジューラ回路の指示に応じてリードアドレス又はビットインバース回路が出力するアドレスをデコードし、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタを決定するアドレスデコーダ回路と、アドレスデコーダ回路の決定に応じて、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタが保持しているデータを選択して外部回路に出力するセレクタとを具備し、演算処理回路の第J番目(Jは、1から(M+1)までの自然数)の演算ユニット内における第K番目(Kは、1から(N+1)までの自然数)のレジスタが、アドレス((J−1)・(N+1)+K−1)にマッピングされていることを特徴とする。
【0010】
また、本発明の第3の観点に係る半導体装置は、本発明に係る演算処理回路と、ライトアドレスをデコードする第1のアドレスデコーダと、リードアドレスをデコードし、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタを決定する第2のアドレスデコーダと、第2のアドレスデコーダの決定に応じて、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタが保持しているデータを選択して外部回路に出力するセレクタとを具備し、演算処理回路の第J番目(Jは、1から(M+1)までの自然数)の演算ユニット内における第K番目(Kは、1から(N+1)までの自然数)のレジスタが、アドレス((K−1)・M+J+K−2)にマッピングされていることを特徴とする。
【0011】
また、本発明の第4の観点に係る半導体装置は、本発明に係る演算処理回路と、ライトアドレスのビットの並び順を反転したアドレスを出力するビットインバース回路と、スケジューラ回路の指示に応じてライトアドレス又はビットインバース回路が出力するアドレスをデコードし、複数の演算ユニット内のレジスタであってライトデータを書き込むべきレジスタを決定し、当該レジスタに接続された2入力1出力セレクタに対しライトデータを出力するアドレスデコーダ回路とを具備し、演算処理回路の第J番目(Jは、1から(M+1)までの自然数)の演算ユニット内における第K番目(Kは、1から(N+1)までの自然数)のレジスタが、アドレス((K−1)・M+J+K−2)にマッピングされていることを特徴とする。
【0012】
また、本発明の第5の観点に係る半導体装置は、本発明に係る演算処理回路と、リードアドレスのビットの並び順を反転したアドレスを出力するビットインバース回路と、スケジューラ回路の指示に応じてリードアドレス又はビットインバース回路が出力するアドレスをデコードし、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタを決定するアドレスデコーダ回路と、アドレスデコーダ回路の決定に応じて、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタが保持しているデータを選択して外部回路に出力するセレクタとを具備し、演算処理回路の第J番目(Jは、1から(M+1)までの自然数)の演算ユニット内における第K番目(Kは、1から(N+1)までの自然数)のレジスタが、アドレス((K−1)・M+J+K−2)にマッピングされていることを特徴とする。
【0013】
また、本発明の第6の観点に係る半導体装置は、本発明に係る演算処理回路と、ライトアドレスをデコードする第1のアドレスデコーダと、リードアドレスをデコードし、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタを決定する第2のアドレスデコーダと、第2のアドレスデコーダの決定に応じて、複数の演算ユニット内のレジスタであってデータを読み出すべきレジスタが保持しているデータを選択して外部回路に出力するセレクタとを具備し、演算処理回路の第J番目(Jは、1から(M+1)までの自然数)の演算ユニット内における第K番目(Kは、1から(N+1)までの自然数)のレジスタが、アドレス((K−1)・M+J+K−2)にマッピングされていることを特徴とする。
【0014】
以上の構成によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
【0015】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態について説明する。なお、同一の構成要素については、同一の参照番号で示している。
図1に、本発明の一実施形態に係る演算処理回路を示す。図1において、演算処理回路1は、所定の機能をそれぞれ有する(m+1)個(mは、自然数)の演算ユニット10〜1mと、演算ユニット10〜1mを制御するための複数の制御信号を出力するスケジューラ回路2とを具備する。
【0016】
演算ユニット10〜1mは、図1中の縦方向に配列されており、データが演算ユニット1mから演算ユニット10へ伝達されるように、直列に接続されている。なお、演算ユニット1mには、外部(図1中の上方向)から、8ビットデータが入力され、演算ユニット10は、8ビットデータを外部(図1中の下方向)に出力する。
また、演算ユニット10〜1mには、(n+1)個(nは、自然数)の8ビットデータが外部(図1中の左方向)からそれぞれ入力される。さらに、演算ユニット10〜1mは、(n+1)個の8ビットデータを外部(図1中の右方向)にそれぞれ出力する。
【0017】
図2は、第(m+1)番目の演算ユニット1mの内部構成を示す図である。図2に示すように、演算ユニット1mは、(n+1)個のレジスタ20〜2nと、(n+1)個のセレクタ30〜3n、41、42と、加算器43とを含んでいる。
セレクタ30〜3nは、2入力1出力セレクタであり、スケジューラ回路2から入力される制御信号に応じて、外部回路から入力される8ビットデータ又は加算器43が出力する8ビットデータをそれぞれ選択して出力する。
【0018】
レジスタ20〜2nは、セレクタ30〜3nが出力する8ビットデータをそれぞれ格納する。レジスタ20〜2nが格納する(n+1)個の8ビットデータは、外部回路(図2中の上方向)に出力される。
セレクタ41は、(n+1)入力1出力セレクタであり、スケジューラ回路2から入力される制御信号に応じて、レジスタ20〜2nが格納している8ビットデータの中から1つの8ビットデータを選択して加算器43の一方の入力端子に出力する。
【0019】
加算器43の他方の入力端子には、外部回路から8ビットデータが入力される。加算器43は、2つの入力端子に入力される8ビットデータを加算し、加算結果としての8ビットデータをセレクタ30〜3nに出力する。
セレクタ42は、(n+1)入力1出力セレクタであり、スケジューラ回路2から入力される制御信号に応じて、レジスタ20〜2nが格納している8ビットデータの中から1つの8ビットデータを選択して第m番目の演算ユニット(1m−1)に出力する。
【0020】
図3は、第i番目(iは、2〜mの自然数)の演算ユニット(本実施形態においては、第2番目の演算ユニット11〜第m番目の演算ユニット(1m−1))の内部構成を示す図である。図3に示すように、演算ユニット11〜(1m−1)は、(n+1)個のレジスタ20〜2nと、(n+1)個のセレクタ30〜3n、41、42と、加算器43とを含んでいる。
セレクタ41は、(n+1)入力1出力セレクタであり、スケジューラ回路2から入力される制御信号に応じて、レジスタ20〜2nが格納している8ビットデータの中から1つの8ビットデータを選択して加算器43の一方の入力端子に出力する。
【0021】
加算器43の他方の入力端子には、第(i+1)番目の演算ユニットから8ビットデータが入力される。加算器43は、2つの入力端子に入力される8ビットデータを加算し、加算結果としての8ビットデータをセレクタ30〜3nに出力する。
セレクタ42は、(n+1)入力1出力セレクタであり、スケジューラ回路2から入力される制御信号に応じて、レジスタ20〜2nが格納している8ビットデータの中から1つの8ビットデータを選択して演算ユニット(i−1)に出力する。
【0022】
図4は、第1番目の演算ユニット10の内部構成を示す図である。図4に示すように、演算ユニット10は、(n+1)個のレジスタ20〜2nと、(n+1)個のセレクタ30〜3n、41、42と、加算器43とを含んでいる。
セレクタ41は、(n+1)入力1出力セレクタであり、スケジューラ回路2から入力される制御信号に応じて、レジスタ20〜2nが格納している8ビットデータの中から1つの8ビットデータを選択して加算器43の一方の入力端子に出力する。
【0023】
加算器43の他方の入力端子には、第2番目の演算ユニット11から8ビットデータが入力される。加算器43は、2つの入力端子に入力される8ビットデータを加算し、加算結果としての8ビットデータをセレクタ30〜3nに出力する。
セレクタ42は、(n+1)入力1出力セレクタであり、スケジューラ回路2から入力される制御信号に応じて、レジスタ20〜2nが格納している8ビットデータの中から1つの8ビットデータを選択して外部回路(図4中の下方向)に出力する。
【0024】
次に、演算処理回路1の動作について、図1〜図4を参照しながら説明する。
ここでは、複数の8ビットデータを加算する場合について説明する。
まず、第(m+1)番目の演算ユニット1m内の加算器43が、外部回路(図2中の上方向)から入力される8ビットデータと演算ユニット1m内のレジスタ20に格納されている8ビットデータとの加算を行う。次に、演算ユニット1m内のレジスタ21が、加算結果としての8ビットデータを格納する。そして、演算ユニット1m内のセレクタ42が、演算ユニット1m内のレジスタ21に格納されている8ビットデータを演算ユニット(1m−1)に出力する。
【0025】
次に、第i番目の演算ユニット内の加算器43が、第(i+1)番目の演算ユニットから入力される8ビットデータと第i番目の演算ユニット内のレジスタ20に格納されている8ビットデータとの加算を行う。そして、第i番目の演算ユニット内のレジスタ21が、加算結果としての8ビットデータを格納する。さらに、第i番目の演算ユニット内のセレクタ42が、第i番目の演算ユニット内のレジスタ21に格納されている8ビットデータを第(i−1)番目の演算ユニットに出力する。
【0026】
次に、第1番目の演算ユニット10内の加算器43が、第2番目の演算ユニット11から入力される8ビットデータと演算ユニット10内のレジスタ20に格納されている8ビットデータとの加算を行う。そして、演算ユニット10内のレジスタ21が、加算結果としての8ビットデータを格納する。さらに、演算ユニット10内のセレクタ42が、演算ユニット10内のレジスタ21に格納されている8ビットデータを外部回路(図4中の下方向)に出力する。
【0027】
なお、本実施形態においては、演算ユニット10〜1mが、加算器43をそれぞれ具備することとしているが、加算器43に代えて乗算器を具備することとしても良い。演算ユニット10〜1mが乗算器を具備することとすれば、演算処理回路1は、積和演算等を容易且つ高速に行うことができる。
【0028】
このように、演算処理回路1によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
【0029】
なお、本実施形態においては、演算ユニット10〜1mを図1中の縦方向に配列しているが、演算ユニット10〜1mをマトリクス状に配列することとしても良い。
また、本実施形態においては、外部から8ビットデータが入力され、レジスタ20〜2nが8ビットデータを格納し、加算器43が8ビットデータの加算を行うこととしているが、外部から16ビットデータ、32ビットデータ、又は、64ビットデータが入力され、レジスタ20〜2nが16ビットデータ、32ビットデータ、又は、64ビットデータを格納し、加算器43が16ビットデータ、32ビットデータ、又は、64ビットデータの加算を行うこととしても良い。
また、加算器43に代えて、四則演算器、その他の演算器を用いることとしても良い。
【0030】
次に、本発明の第1の実施形態に係る半導体装置について説明する。図5に、本発明の第1の実施形態に係る半導体装置を示す。図5において、半導体装置50は、演算処理回路1と、ビットインバース回路51と、アドレスデコーダ52とを具備する。
本実施形態においては、演算処理回路1の演算ユニット10〜1m内のレジスタは、半導体装置50のアドレス空間にマッピングされている。図6は、半導体装置50のメモリマップを示す図である。図6に示すように、演算処理回路1の第j番目(jは、1〜(m+1)の自然数)の演算ユニット内における第k番目(kは、1〜(n+1)の自然数)のレジスタは、半導体装置50のアドレス空間内のアドレスであって、((j−1)・(n+1)+k−1)を16進表示したアドレスにマッピングされている。
【0031】
再び図5を参照すると、ビットインバース回路51は、外部から入力されるライトアドレスのビットの並びを逆転させて出力する回路である。例えば、外部からライトアドレス「0010」(2進数)が入力された場合には、ビットインバース回路51は、「0100」(2進数)を出力する。なお、以下において、ビットインバース回路51が出力するアドレスを「ビットインバースアドレス」という。
アドレスデコーダ52は、演算処理回路1内のスケジューラ回路2の指示に応じて、ライトアドレス又はビットインバースアドレスを選択してデコードする回路である。
【0032】
次に、半導体装置50の動作について、図1〜図6を参照しながら説明する。まず、演算処理回路1内のスケジューラ回路2は、ライトアドレス、ビットインバースアドレスのいずれを選択するかをアドレスデコーダ52に指示する。
【0033】
アドレスデコーダ52は、演算処理回路1内のスケジューラ回路2の指示に応じて、ライトアドレス又はビットインバースアドレスを選択してデコードする。そして、アドレスデコーダ52は、演算処理回路1の演算ユニット10〜1m内のレジスタ20〜2nであって、外部から入力される8ビット幅のライトデータを書き込むべきレジスタを決定する。次に、アドレスデコーダ52は、ライトデータを書き込むべきレジスタに接続されたセレクタを演算処理回路1内のスケジューラ回路2に通知する。
【0034】
演算処理回路1内のスケジューラ回路2は、アドレスデコーダ52から通知されたセレクタ(ライトデータを書き込むべきレジスタに接続されたセレクタ)に対し、外部(図5中の左方向)から入力される8ビット幅のライトデータを選択するように指示する。演算処理回路1内のスケジューラ回路2から指示を受けたセレクタ(ライトデータを書き込むべきレジスタに接続されたセレクタ)は、アドレスデコーダ52から入力されるライトデータを選択して出力する。アドレスデコーダ52によってライトデータを書き込むべきレジスタとして決定されたレジスタは、セレクタからライトデータを受け取って格納する。
半導体装置50内の演算処理回路1は、このようにして外部から書き込まれたデータを用いて、所定の演算を行う。
【0035】
このように、半導体装置50によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
また、半導体装置50によれば、アドレスデコーダ52が、演算処理回路1内のスケジューラ回路2の指示に応じて、ライトアドレス又はビットインバースアドレスをデコードし、ライトデータを書き込むべきレジスタを決定する。そのため、例えば、DCT(離散コサイン変換)演算における時間間引きアルゴリズムを容易に実現することができる。
【0036】
次に、本発明の第2の実施形態に係る半導体装置について説明する。図7に、本発明の第2の実施形態に係る半導体装置を示す。図7において、半導体装置60は、演算処理回路1と、ビットインバース回路61と、アドレスデコーダ62と、セレクタ63とを具備する。
本実施形態においては、演算処理回路1の演算ユニット10〜1m内のレジスタは、半導体装置60のアドレス空間にマッピングされている。図8は、半導体装置60のメモリマップを示す図である。図8に示すように、演算処理回路1の第j番目(jは、1〜(m+1)の自然数)の演算ユニット内における第k番目(kは、1〜(n+1)の自然数)のレジスタは、半導体装置60のアドレス空間内のアドレスであって、((j−1)・(n+1)+k−1)を16進表示したアドレスにマッピングされている。
【0037】
再び図7を参照すると、ビットインバース回路61は、外部から入力されるリードアドレスのビットの並びを逆転させて出力する回路である。
アドレスデコーダ62は、演算処理回路1内のスケジューラ回路2の指示に応じて、リードアドレス又はビットインバースアドレスを選択してデコードする回路である。
セレクタ63は、アドレスデコーダ62の指示に応じて、演算処理回路1の演算ユニット10〜1m内のレジスタ20〜2nが保持している8ビットデータのいずれかを選択して、外部(図7中の右方向)に出力する。
【0038】
次に、半導体装置60の動作について、図1〜図4、図7、図8を参照しながら説明する。
まず、半導体装置50内の演算処理回路1は、外部から書き込まれたデータを用いて、所定の演算を行う。
その後、演算処理回路1内のスケジューラ回路2は、リードアドレス、ビットインバースアドレスのいずれを選択するかをアドレスデコーダ62に指示する。
【0039】
アドレスデコーダ62は、演算処理回路1内のスケジューラ回路2の指示に応じて、リードアドレス又はビットインバースアドレスを選択してデコードする。そして、アドレスデコーダ62は、演算処理回路1の演算ユニット10〜1m内のレジスタ20〜2nであって、データを読み出すべきレジスタを決定し、セレクタ63に指示する。
セレクタ63は、アドレスデコーダ62からの指示に応じて、演算処理回路1の演算ユニット10〜1m内のレジスタ20〜2nが保持している8ビットデータのいずれかを選択して、外部(図7中の右方向)に出力する。
【0040】
このように、半導体装置60によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
また、半導体装置60によれば、アドレスデコーダ62が、演算処理回路1内のスケジューラ回路2の指示に応じて、リードアドレス又はビットインバースアドレスをデコードし、データを読み出すべきレジスタを決定する。そのため、例えば、DCT(離散コサイン変換)演算における周波数間引きアルゴリズムを容易に実現することができる。
【0041】
次に、本発明の第3の実施形態に係る半導体装置について説明する。図9に、本発明の第3の実施形態に係る半導体装置を示す。図9において、半導体装置70は、演算処理回路1と、アドレスデコーダ71、72と、セレクタ73とを具備する。
本実施形態においては、演算処理回路1の演算ユニット10〜1m内のレジスタは、半導体装置70のアドレス空間にマッピングされている。図10は、半導体装置70のメモリマップを示す図である。図10に示すように、演算処理回路1の第j番目(jは、1〜(m+1)の自然数)の演算ユニット内における第k番目(kは、1〜(n+1)の自然数)のレジスタは、半導体装置70のアドレス空間内のアドレスであって、((k−1)・m+j+k−2)を16進表示したアドレスにマッピングされている。
【0042】
再び図9を参照すると、アドレスデコーダ71は、ライトアドレスをデコードする回路である。
アドレスデコーダ72は、ライトアドレスをデコードする回路である。
セレクタ73は、アドレスデコーダ72の指示に応じて、演算処理回路1の演算ユニット10〜1m内のレジスタ20〜2nが保持している8ビットデータのいずれかを選択して、外部(図9中の右方向)に出力する。
【0043】
次に、半導体装置70の動作について、図1〜図4、図9、図10を参照しながら説明する。
まず、アドレスデコーダ71は、ライトアドレスをデコードする。そして、アドレスデコーダ71は、演算処理回路1の演算ユニット10〜1m内のレジスタ20〜2nであって、外部から入力される8ビット幅のライトデータを書き込むべきレジスタを決定する。次に、アドレスデコーダ71は、ライトデータを書き込むべきレジスタに接続されたセレクタを演算処理回路1内のスケジューラ回路2に通知する。
【0044】
演算処理回路1内のスケジューラ回路2は、アドレスデコーダ71から通知されたセレクタ(ライトデータを書き込むべきレジスタに接続されたセレクタ)に対し、外部(図9中の左方向)から入力される8ビット幅のライトデータを選択するように指示する。演算処理回路1内のスケジューラ回路2から指示を受けたセレクタ(ライトデータを書き込むべきレジスタに接続されたセレクタ)は、アドレスデコーダ71から入力されるライトデータを選択して出力する。アドレスデコーダ71によってライトデータを書き込むべきレジスタとして決定されたレジスタは、セレクタからライトデータを受け取って格納する。
半導体装置70内の演算処理回路1は、このようにして外部から書き込まれたデータを用いて、所定の演算を行う。
【0045】
次に、アドレスデコーダ72は、リードアドレスをデコードする。そして、アドレスデコーダ72は、演算処理回路1の演算ユニット10〜1m内のレジスタ20〜2nであって、データを読み出すべきレジスタを決定し、セレクタ73に指示する。
セレクタ73は、アドレスデコーダ72からの指示に応じて、演算処理回路1の演算ユニット10〜1m内のレジスタ20〜2nが保持している8ビットデータのいずれかを選択して、外部(図9中の右方向)に出力する。
【0046】
このように、半導体装置70によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
また、半導体装置70においては、演算処理回路1の演算ユニット10〜1m内のレジスタが、図10に示すように、半導体装置70のアドレス空間にマッピングされている。そのため、連続するアドレスに対して連続する書き込みを行うこと(例えば、バーストライト等)が可能であり、また、連続するアドレスに対して連続する読み出しを行うこと(例えば、バーストリード等)が可能である。
【0047】
次に、本発明の第4の実施形態に係る半導体装置について説明する。図11に、本発明の第4の実施形態に係る半導体装置を示す。図11において、半導体装置80は、演算処理回路1と、ビットインバース回路51と、アドレスデコーダ52とを具備する。
本実施形態においては、演算処理回路1の演算ユニット10〜1m内のレジスタは、半導体装置80のアドレス空間にマッピングされている。図12は、半導体装置80のメモリマップを示す図である。図12に示すように、演算処理回路1の第j番目(jは、1〜(m+1)の自然数)の演算ユニット内における第k番目(kは、1〜(n+1)の自然数)のレジスタは、半導体装置80のアドレス空間内のアドレスであって、((k−1)・m+j+k−2)を16進表示したアドレスにマッピングされている。
【0048】
このように、半導体装置80によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
また、半導体装置80によれば、例えば、DCT(離散コサイン変換)演算における時間間引きアルゴリズムを容易に実現することができる。さらに、テーブルを一括して参照するようなテーブル参照型のアルゴリズムを容易に実現することができる。
【0049】
次に、本発明の第5の実施形態に係る半導体装置について説明する。図13に、本発明の第5の実施形態に係る半導体装置を示す。図13において、半導体装置90は、演算処理回路1と、ビットインバース回路61と、アドレスデコーダ62と、セレクタ63とを具備する。
本実施形態においては、演算処理回路1の演算ユニット10〜1m内のレジスタは、半導体装置90のアドレス空間にマッピングされている。図14は、半導体装置90のメモリマップを示す図である。図14に示すように、演算処理回路1の第j番目(jは、1〜(m+1)の自然数)の演算ユニット内における第k番目(kは、1〜(n+1)の自然数)のレジスタは、半導体装置90のアドレス空間内のアドレスであって、((k−1)・m+j+k−2)を16進表示したアドレスにマッピングされている。
【0050】
このように、半導体装置90によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
また、半導体装置90によれば、例えば、DCT(離散コサイン変換)演算における周波数間引きアルゴリズムを容易に実現することができる。さらに、テーブルを一括して参照するようなテーブル参照型のアルゴリズムを容易に実現することができる。
【0051】
次に、本発明の第6の実施形態に係る半導体装置について説明する。図15に、本発明の第6の実施形態に係る半導体装置を示す。図15において、半導体装置100は、演算処理回路1と、アドレスデコーダ71、72と、セレクタ73とを具備する。
本実施形態においては、演算処理回路1の演算ユニット10〜1m内のレジスタは、半導体装置100のアドレス空間にマッピングされている。図16は、半導体装置100のメモリマップを示す図である。図16に示すように、演算処理回路1の第j番目(jは、1〜(m+1)の自然数)の演算ユニット内における第k番目(kは、1〜(n+1)の自然数)のレジスタは、半導体装置100のアドレス空間内のアドレスであって、((k−1)・m+j+k−2)を16進表示したアドレスにマッピングされている。
【0052】
このように、半導体装置100によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
【0053】
【発明の効果】
以上述べたように、本発明によれば、高速性、自由度を確保しながら、所定の演算機能を実現することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る演算処理回路を示す図である。
【図2】図1の演算ユニット1mの内部構成を示す図である。
【図3】図1の演算ユニット11〜(1m−1)の内部構成を示す図である。
【図4】図1の演算ユニット10の内部構成を示す図である。
【図5】本発明の第1の実施形態に係る半導体装置を示す図である。
【図6】本発明の第1の実施形態に係る半導体装置のアドレスマップを示す図である。
【図7】本発明の第2の実施形態に係る半導体装置を示す図である。
【図8】本発明の第2の実施形態に係る半導体装置のアドレスマップを示す図である。
【図9】本発明の第3の実施形態に係る半導体装置を示す図である。
【図10】本発明の第3の実施形態に係る半導体装置のアドレスマップを示す図である。
【図11】本発明の第4の実施形態に係る半導体装置を示す図である。
【図12】本発明の第4の実施形態に係る半導体装置のアドレスマップを示す図である。
【図13】本発明の第5の実施形態に係る半導体装置を示す図である。
【図14】本発明の第5の実施形態に係る半導体装置のアドレスマップを示す図である。
【図15】本発明の第6の実施形態に係る半導体装置を示す図である。
【図16】本発明の第6の実施形態に係る半導体装置のアドレスマップを示す図である。
【符号の説明】
1 演算処理回路
2 スケジューラ回路
10、11、… 演算ユニット
20、21、… レジスタ
30、31、…、41、42、63、73 セレクタ
43 加算器
50、60、70、80、90、100 半導体装置
51、61 ビットインバース回路
52、62、71、72 アドレスデコーダ
Claims (7)
- 所定の機能をそれぞれ実現する(M+1)個(Mは、自然数)の演算ユニットと、前記(M+1)個の演算ユニットを制御するための複数の制御信号を出力するスケジューラ回路と、を含む演算処理回路であって、
第I番目(Iは、1から(M+1)までの自然数)の前記演算ユニットが、
(N+1)個(Nは、自然数)のレジスタと、
前記制御信号に応じて、前記(N+1)個のレジスタに格納されているデータの中から1つのデータを選択する第1の(N+1)入力1出力セレクタと、
前記第1の(N+1)入力1出力セレクタによって選択されたデータと、第(I+1)番目の演算ユニット又は外部回路から入力されるデータとに所定の演算を行う演算器と、
前記制御信号に応じて、外部回路から入力されるデータ又は前記演算器が出力するデータを、前記(N+1)個のレジスタに格納させるべきデータとしてそれぞれ選択する第1〜第(N+1)の2入力1出力セレクタと、
前記制御信号に応じて、前記(N+1)個のレジスタに格納されているデータの中から1つのデータを選択して第(I−1)番目の前記演算ユニット又は外部回路に出力する第2の(N+1)入力1出力セレクタと、
を具備することを特徴とする演算処理回路。 - 請求項1記載の演算処理回路と、
ライトアドレスのビットの並び順を反転したアドレスを出力するビットインバース回路と、
前記スケジューラ回路の指示に応じて前記ライトアドレス又は前記ビットインバース回路が出力するアドレスをデコードし、前記複数の演算ユニット内の前記レジスタであってライトデータを書き込むべきレジスタを決定し、当該レジスタに接続された前記2入力1出力セレクタに対し前記ライトデータを出力するアドレスデコーダ回路と、
を具備し、
前記演算処理回路の第J番目(Jは、1から(M+1)までの自然数)の前記演算ユニット内における第K番目(Kは、1から(N+1)までの自然数)の前記レジスタが、アドレス((J−1)・(N+1)+K−1)にマッピングされていることを特徴とする半導体装置。 - 請求項1記載の演算処理回路と、
リードアドレスのビットの並び順を反転したアドレスを出力するビットインバース回路と、
前記スケジューラ回路の指示に応じて前記リードアドレス又は前記ビットインバース回路が出力するアドレスをデコードし、前記複数の演算ユニット内の前記レジスタであってデータを読み出すべきレジスタを決定するアドレスデコーダ回路と、
前記アドレスデコーダ回路の決定に応じて、前記複数の演算ユニット内の前記レジスタであってデータを読み出すべきレジスタが保持しているデータを選択して外部回路に出力するセレクタと、
を具備し、
前記演算処理回路の第J番目(Jは、1から(M+1)までの自然数)の前記演算ユニット内における第K番目(Kは、1から(N+1)までの自然数)の前記レジスタが、アドレス((J−1)・(N+1)+K−1)にマッピングされていることを特徴とする半導体装置。 - 請求項1記載の演算処理回路と、
ライトアドレスをデコードする第1のアドレスデコーダと、
リードアドレスをデコードし、前記複数の演算ユニット内の前記レジスタであってデータを読み出すべきレジスタを決定する第2のアドレスデコーダと、
前記第2のアドレスデコーダの決定に応じて、前記複数の演算ユニット内の前記レジスタであってデータを読み出すべきレジスタが保持しているデータを選択して外部回路に出力するセレクタと、
を具備し、
前記演算処理回路の第J番目(Jは、1から(M+1)までの自然数)の前記演算ユニット内における第K番目(Kは、1から(N+1)までの自然数)の前記レジスタが、アドレス((K−1)・M+J+K−2)にマッピングされていることを特徴とする半導体装置。 - 請求項1記載の演算処理回路と、
ライトアドレスのビットの並び順を反転したアドレスを出力するビットインバース回路と、
前記スケジューラ回路の指示に応じて前記ライトアドレス又は前記ビットインバース回路が出力するアドレスをデコードし、前記複数の演算ユニット内の前記レジスタであってライトデータを書き込むべきレジスタを決定し、当該レジスタに接続された前記2入力1出力セレクタに対し前記ライトデータを出力するアドレスデコーダ回路と、
を具備し、
前記演算処理回路の第J番目(Jは、1から(M+1)までの自然数)の前記演算ユニット内における第K番目(Kは、1から(N+1)までの自然数)の前記レジスタが、アドレス((K−1)・M+J+K−2)にマッピングされていることを特徴とする半導体装置。 - 請求項1記載の演算処理回路と、
リードアドレスのビットの並び順を反転したアドレスを出力するビットインバース回路と、
前記スケジューラ回路の指示に応じて前記リードアドレス又は前記ビットインバース回路が出力するアドレスをデコードし、前記複数の演算ユニット内の前記レジスタであってデータを読み出すべきレジスタを決定するアドレスデコーダ回路と、
前記アドレスデコーダ回路の決定に応じて、前記複数の演算ユニット内の前記レジスタであってデータを読み出すべきレジスタが保持しているデータを選択して外部回路に出力するセレクタと、
を具備し、
前記演算処理回路の第J番目(Jは、1から(M+1)までの自然数)の前記演算ユニット内における第K番目(Kは、1から(N+1)までの自然数)の前記レジスタが、アドレス((K−1)・M+J+K−2)にマッピングされていることを特徴とする半導体装置。 - 請求項1記載の演算処理回路と、
ライトアドレスをデコードする第1のアドレスデコーダと、
リードアドレスをデコードし、前記複数の演算ユニット内の前記レジスタであってデータを読み出すべきレジスタを決定する第2のアドレスデコーダと、
前記第2のアドレスデコーダの決定に応じて、前記複数の演算ユニット内の前記レジスタであってデータを読み出すべきレジスタが保持しているデータを選択して外部回路に出力するセレクタと、
を具備し、
前記演算処理回路の第J番目(Jは、1から(M+1)までの自然数)の前記演算ユニット内における第K番目(Kは、1から(N+1)までの自然数)の前記レジスタが、アドレス((K−1)・M+J+K−2)にマッピングされていることを特徴とする半導体装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002373546A JP2004206326A (ja) | 2002-12-25 | 2002-12-25 | 演算処理回路及びそれを用いた半導体装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002373546A JP2004206326A (ja) | 2002-12-25 | 2002-12-25 | 演算処理回路及びそれを用いた半導体装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004206326A true JP2004206326A (ja) | 2004-07-22 |
Family
ID=32811795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002373546A Withdrawn JP2004206326A (ja) | 2002-12-25 | 2002-12-25 | 演算処理回路及びそれを用いた半導体装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004206326A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022527318A (ja) * | 2020-01-21 | 2022-06-01 | 上▲海▼商▲湯▼智能科技有限公司 | データ処理装置、及び人工知能チップ |
-
2002
- 2002-12-25 JP JP2002373546A patent/JP2004206326A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022527318A (ja) * | 2020-01-21 | 2022-06-01 | 上▲海▼商▲湯▼智能科技有限公司 | データ処理装置、及び人工知能チップ |
JP7250953B2 (ja) | 2020-01-21 | 2023-04-03 | 上▲海▼商▲湯▼智能科技有限公司 | データ処理装置、及び人工知能チップ |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230229448A1 (en) | Method and apparatus to sort a vector for a bitonic sorting algorithm | |
US5765216A (en) | Data processor with an efficient bit move capability and method therefor | |
KR101597774B1 (ko) | 마스킹된 전체 레지스터 액세스들을 이용한 부분적 레지스터 액세스들을 구현하기 위한 프로세서들, 방법들 및 시스템들 | |
US11119779B2 (en) | Dual data streams sharing dual level two cache access ports to maximize bandwidth utilization | |
JP2693651B2 (ja) | 並列プロセッサー | |
CN107315575B (zh) | 一种用于执行向量合并运算的装置和方法 | |
JP2014038640A (ja) | 改善されたパイプライン化デジタル信号プロセッサ | |
US20180173532A1 (en) | Streaming engine with multi dimensional circular addressing selectable at each dimension | |
US10891231B2 (en) | Streaming engine with flexible streaming engine template supporting differing number of nested loops with corresponding loop counts and loop offsets | |
US7483283B2 (en) | Apparatus for efficient streaming data access on reconfigurable hardware and method for automatic generation thereof | |
JP2773471B2 (ja) | 情報処理装置 | |
CN111563281A (zh) | 一种支持多种加解密算法的处理器及其实现方法 | |
US20190004799A1 (en) | Stream engine with element promotion and decimation modes | |
JPH04343134A (ja) | プログラムカウンタ装置 | |
JPH11306084A (ja) | 情報処理装置及び記憶媒体 | |
US20070139424A1 (en) | DSP System With Multi-Tier Accelerator Architecture and Method for Operating The Same | |
US11314514B2 (en) | Vector length querying instruction | |
JP2004206326A (ja) | 演算処理回路及びそれを用いた半導体装置 | |
US11604648B2 (en) | Vector bit transpose | |
JP5327432B2 (ja) | 信号処理プロセッサ及び半導体装置 | |
US11704046B2 (en) | Quick clearing of registers | |
US20220214878A1 (en) | Vector reverse | |
CN113721979A (zh) | 可配置位宽的寄存器电路及方法、解码电路和芯片 | |
JP2004234407A (ja) | データ処理装置 | |
JP2006268152A (ja) | 集積回路装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060307 |