JP2010117806A - 半導体装置、および、半導体装置によるデータ処理方法 - Google Patents

半導体装置、および、半導体装置によるデータ処理方法 Download PDF

Info

Publication number
JP2010117806A
JP2010117806A JP2008289397A JP2008289397A JP2010117806A JP 2010117806 A JP2010117806 A JP 2010117806A JP 2008289397 A JP2008289397 A JP 2008289397A JP 2008289397 A JP2008289397 A JP 2008289397A JP 2010117806 A JP2010117806 A JP 2010117806A
Authority
JP
Japan
Prior art keywords
calculation
data
dynamic reconfigurable
reconfigurable circuit
circuit
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.)
Granted
Application number
JP2008289397A
Other languages
English (en)
Other versions
JP5231949B2 (ja
Inventor
Yoshifumi Yoshikawa
宜史 吉川
Shigehiro Asano
滋博 浅野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008289397A priority Critical patent/JP5231949B2/ja
Priority to US12/544,122 priority patent/US8402251B2/en
Publication of JP2010117806A publication Critical patent/JP2010117806A/ja
Application granted granted Critical
Publication of JP5231949B2 publication Critical patent/JP5231949B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

【課題】リコンフィギュラブル回路における条件実行をより高速に行うことができる半導体装置を提供すること。
【解決手段】第1の演算を行う演算器10Aと、第2の演算を行う演算器10Dと、命令アドレスを演算器10Aと演算器10Dとへ出力するとともに、データの演算器10Aへの入力を制御するコントローラ11と、演算器10Aが演算した第1の演算結果を演算器10Dに転送する間接命令アドレスバス14とを備え、演算器10Aは、命令アドレスにより特定される第1の演算に必要な実行回路により、データに対して第1の演算を行い、第1の演算結果を間接命令アドレスバス14に出力し、演算器10Dは、命令アドレスをアドレスとして内部に備えるメモリ1001から読み出される情報に基づいて、命令アドレスまたは第1の演算結果のいずれかにより特定される第2の演算に必要な実行回路により、データに対して第2の演算を行い、演算結果を出力する。
【選択図】 図1

Description

本発明は、動的リコンフィギュラブル回路技術を用いた半導体装置、および、半導体装置によるデータ処理方法に関するものである。
近年、携帯機器など小面積・低消費電力が求められる機器においても、機能の複雑化、多様化が進み、このような機器にも高い性能が必要とされてきている。高性能と小面積・低消費電力を両立させるためには、専用ハードウェアの製造・開発は避けられない。しかしながら、機能の複雑化・多様化に伴い専用ハードウェアの製造・開発費は年々増大している。この製造・開発費を削減するものとして、動的リコンフィギュラブル回路技術を用いた半導体装置が注目されている。
動的リコンフィギュラブル回路技術を用いた半導体装置は、FPGAのようなリコンフィギュラブル回路と、そのリコンフィギュラブル回路に実行させたい回路(以下、単に実行回路と称す)を構築するのに必要な回路情報を複数蓄えておくための記憶装置を備えており、ソフトウェアなどによりあらかじめ決められた規則に従って、動作時に必要な回路情報を読み出して実行回路を構築できる装置である。動作時に実行回路を変えられる点が、FPGAを用いた従来の半導体装置とは異なる。
この半導体装置を用いると、FPGA同様に専用ハードウェアの開発費が低減されるだけでなく、実行回路を動的に構築することにより小さな半導体装置上に多様な機能が実現できるため、専用ハードウェアの製造費も低減されると期待されている。
動的リコンフィギュラブル回路技術を用いた半導体装置の例としては、NECエレクトロニクスのDRP(Dynamically Reconfigurable Processor・・・非特許文献1参照)や、IMECのADRES(Architecture for Dynamically Reconfigurable Embedded System・・・非特許文献2参照)が挙げられる。
NECエレクトロニクスのDRPは、演算を行う基本要素であるPE(Processing Element)が2次元アレイ状に並べられ、その中央に状態遷移コントローラが配置されるという構造を持つ。PEは実行回路を構築可能な演算装置で、PE内部にある命令メモリに演算の種類やPE間の接続関係といった回路情報が複数格納されている。各PEは状態遷移コントローラから与えられる命令ポインタに従って命令メモリから回路情報を読み出して、動的に実行回路を構築する。
DRPの状態遷移コントローラでは、単純な状態分岐が可能となっており、PEアレイ部から状態遷移コントローラに送られるイベント信号により分岐先の状態を決定する。この機構により、PEアレイにより演算された結果を条件として、次にPEアレイで行われる演算を動的に決定するという、条件実行の仕組みを実現できる。
一方、IMECのADRESは、演算を行う基本要素であるRC(Reconfigurable Cell)が2次元アレイ状に並べられ、一部のRCがデータレジスタを介して、プロセッサと結合されるという構造を持つ。RCは実行回路を構築可能な演算装置で、RC内部にあるコンフィギュレーションメモリに演算の種類やRC間の接続関係といった回路情報が複数格納されている。これらの回路情報が、RCの内部にあるコンフィギュレーションカウンタの出力をアドレスとして、コンフィギュレーションメモリから読み出され、動的に実行回路が構築される。
ADRESのプロセッサは、RC内部のコンフィギュレーションカウンタを初期化することにより、RCにおける実行回路の構築を制御する。ADRESのプロセッサは、データレジスタを介してRCによる演算結果を読み出せるため、読み出した演算結果に応じてRCのコンフィギュレーションカウンタを初期化することにより、RCの演算結果を条件として、次にRCで行われる演算を動的に決定するという、条件実行の仕組みを実現できる。
また、RCにおける演算ではpredicate論理がサポートされているため、異なるRCで異なる演算を実行したのち、別のRCにより演算されたpredicate値に従って、一つの演算結果だけを選択してRC内部のレジスタにセットすることにより、データ単位での条件実行も実現できる。
「リコンフィギュラブルシステム」、オーム社、ページ189−194 "Custom implementation of the coarse−grained reconfigurable ADRES architecture for multimedia purposes", International Conference on Field Programmable Logic and Applications, page 106−111
高性能な動的リコンフィギュラブル回路技術を用いた半導体装置を実現するためには、半導体装置において実行された演算の結果に応じて次に実行する演算を決定するという条件実行を高速に行う必要がある。
ところがDRPでは、状態遷移コントローラにおける状態分岐の仕組みを用いて条件実行を実現しているため、PEごとに異なる演算結果を条件とする条件実行を同時に行うことはできず、すべてのPEで一つの演算結果を条件とする条件実行しかできない。
また、ADRESにおけるpredicate論理を用いた条件実行の仕組みでは、データ単位で条件実行を行えるが、一つの条件実行を行うために多数のRCを利用しなければならないという問題がある。
さらに、ADRESにおけるプロセッサを用いた条件実行の仕組みでは、DRPにおける単純な状態分岐の仕組みを用いた条件実行よりも複雑な条件実行が行えるが、RCでの演算結果を条件として、次に実行する演算を決定するための処理をプロセッサにより行っているため、条件実行にかかる時間はDRPよりも長い。
本発明は、上記に鑑みてなされたものであって、リコンフィギュラブル回路における条件実行をより高速に行うことができる半導体装置、および、半導体装置によるデータ処理方法を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、第1の演算を行う第1の動的リコンフィギュラブル回路と、第1の記憶手段を内部に備え、第2の演算を行う第2の動的リコンフィギュラブル回路と、前記第1の演算に必要な実行回路および前記第2の演算に必要な実行回路を特定するための値である第1アドレスを、前記第1の動的リコンフィギュラブル回路と第2の動的リコンフィギュラブル回路とへ出力するとともに、前記第1の演算に用いられるデータの前記第1の動的リコンフィギュラブル回路への入力を制御するコントローラと、前記第1の動的リコンフィギュラブル回路が演算した第1の演算結果を、前記第2の動的リコンフィギュラブル回路に転送するバスと、を備え、前記第1の動的リコンフィギュラブル回路は、前記第1アドレスにより特定される前記第1の演算に必要な実行回路により、入力された前記データに対して前記第1の演算を行い、前記第1の演算結果を前記バスに出力し、前記第2の動的リコンフィギュラブル回路は、前記第1アドレスに指定される前記第1の記憶手段上の情報に基づいて、前記第1アドレスまたは前記第1の演算結果のいずれかにより特定される前記第2の演算に必要な実行回路により、入力されたデータに対して前記第2の演算を行い、第2の演算結果を出力すること、を特徴とする。
また、本発明は、第1の動的リコンフィギュラブル回路と、記憶手段を内部に備える第2の動的リコンフィギュラブル回路と、コントローラと、バスと、を備えた半導体装置によるデータ処理方法において、前記コントローラが、第1アドレスを、前記第1の動的リコンフィギュラブル回路と第2の動的リコンフィギュラブル回路とへ出力する第1の出力ステップと、前記コントローラが、データの前記第1の動的リコンフィギュラブル回路への入力を制御する制御ステップと、前記第1の動的リコンフィギュラブル回路が、前記第1アドレスにより特定される前記第1の演算に必要な実行回路により、入力された前記データに対して前記第1の演算を行う第1の演算ステップと、前記第1の動的リコンフィギュラブル回路が、前記第1の演算ステップで演算した第1の演算結果を前記バスに出力する第2の出力ステップと、前記バスが、前記第1の演算結果を、前記第2の動的リコンフィギュラブル回路に転送する転送ステップと、前記第2の動的リコンフィギュラブル回路が、前記第1アドレスに指定される前記第1の記憶手段上の情報に基づいて、前記第1アドレスまたは前記第1の演算結果のいずれかにより特定される前記第2の演算に必要な実行回路により、入力されたデータに対して前記第2の演算を行う第2の演算ステップと、前記第2の動的リコンフィギュラブル回路が、第2の演算ステップで演算した第2の演算結果を出力する第3の出力ステップと、を含むこと、を特徴とする。
本発明によれば、リコンフィギュラブル回路における条件実行をより高速に行うことができるという効果を奏する。
以下に添付図面を参照して、この発明にかかる半導体装置、および、半導体装置によるデータ処理方法の最良な実施の形態を詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
(半導体装置の構成)
図1は、本実施の形態にかかる半導体装置の構成を示すブロック図である。半導体装置1は、プロセッサなどの外部装置2からの指示によりデータ処理を行うものであって、9個の演算器10A〜10I、コントローラ11、データメモリ12、直接命令アドレスバス13、および、間接命令アドレスバス14を備えて構成されている。なお、ここでは、データ処理とは、個々の演算を行った一連の演算の総称のこととする。
演算器10A〜10Iは、演算に必要な実行回路を特定するための回路情報に従って実行回路を構築し、データ処理を実現する。回路情報としては、演算器10A〜10Iに対する入力データと出力データの対応関係を示すテーブルや、演算器10A〜10Iの演算の種類を決定する設定信号の値など、実施例によりさまざまな情報が用いられる。回路情報は、外部装置2により、演算器10A〜10Iの内部のメモリに格納される。
演算器10A〜10Iは、直接命令アドレスバス13および間接命令アドレスバス14に接続する。演算器10A〜10Iは、直接命令アドレスバス13の値と、間接命令アドレスバス14の値のいずれか一方の値をアドレスとして、演算器10A〜10Iの内部にあるメモリ(後述する回路情報記憶部101)から回路情報を読み出して実行回路を構築する。
また、演算器10A〜10Cは、データメモリ12および演算器10D〜10Fに接続し、データメモリ12から入力されるデータに対して、構築された実行回路により演算を行い、演算結果を演算器10D〜10Fおよび間接命令アドレスバス14に出力する。また、演算器10D〜10Fは、演算器10A〜10Cおよび演算器10G〜10Iに接続し、演算器10A〜10Cから入力されるデータに対して演算を行って、演算結果を演算器10G〜10Iおよび間接命令アドレスバス14に出力する。さらに、演算器10G〜10Iは、演算器10D〜10Fおよびデータメモリ12に接続し、演算器10D〜10Fから入力されるデータに対して演算を行って、演算結果をデータメモリ12に出力する。
なお、演算器10A〜10Iには、それぞれ最大3つのデータが入力される。これらのデータを演算器10A〜10Iに入力するためのデータポートを、それぞれ演算器10の入力0、入力1、および、入力2とする。ここで、図1において、演算器10A〜10Iの各ブロック内に表記されている0、1、および、2は、それぞれ入力0、入力1、および、入力2のデータポートを示している。なお、本実施の形態では、演算器10A〜10Cには、2つのデータ(入力0、入力1)のみ入力される。
ここで、演算器10A〜10Iは、動的リコンフィギュラブル回路を構成する。なお、動的リコンフィギュラブル回路とは、複数の異なる値をとりうる情報(回路情報)に応じて、入力信号と出力信号の関係が変更される回路を有していれば、どのようなものであってもよい。例えば、動的リコンフィギュラブル回路とは、メモリに記憶された複数の回路情報のうち、命令アドレス(例えば、ポインタなど)によって指定される回路情報に応じて、入出力関係が変更される回路を備えるものであってもよい。さらに、動的リコンフィギュラブル回路とは、複数の演算器を備え、回路情報に応じて、各演算器の演算内容(入出力関係)および各演算器間の接続関係が変更されるものであってもよい。
なお、本実施の形態では、演算器10の数は9個であるが、半導体装置1に必要とされる演算能力などに応じて変更してもよい。また、各演算器10の間を接続するデータ線の数や、演算器10とデータメモリ12とを接続するデータ線の数も、必要とされるデータ転送能力などに応じて変更してもよい。また、演算器10A〜10Iは、内部のメモリから回路情報を読み出すのではなく、外部のメモリから回路情報を読み出してもよい。演算器10の構成については、後ほど、演算器10におけるデータ処理の説明で、さらに詳しく説明する。
コントローラ11は、データメモリ12および直接命令アドレスバス13に接続する。コントローラ11は、記憶部(後述するプログラムコードメモリ11B)に記録されたコードに従って、演算器10A〜10Iが内部のメモリから回路情報を読み出すためのアドレスを、サイクルごとに直接命令アドレスバス13にセットする。また、コントローラ11は、同じコードに従って、データメモリ12からのデータ読み出しおよびデータメモリ12へのデータ書き込みを制御するための制御情報を、データメモリ12に出力する。ここでサイクルとは、同期式回路において記憶素子部の値が変化してから、次に記憶素子部の値が変化するまでの最小時間単位である。コントローラ11の構成については、後ほど、コントローラ11におけるデータ処理の説明で、さらに詳しく説明する。
データメモリ12は、半導体装置1がデータ処理の開始時に与えるデータや、半導体装置1によるデータ処理の中間結果または最終結果を一時的に保持する。データメモリ12には、データ処理の開始前に外部装置2により初期の入力データが書き込まれる。また、半導体装置1は、データメモリ12に保持されたデータ処理の中間結果を再び入力データとして、データ処理を続けることもできる。データメモリ12に保持された最終結果は、外部装置2によりデータメモリ12から読み出される。
直接命令アドレスバス13は、コントローラ11から受け取った命令アドレスを演算器10A〜Iに出力する。間接命令アドレスバス14は、前段の演算器10から受け取った演算結果を後段の演算器10へ転送する。
(データ処理の流れの概要)
次に、本実施の形態にかかる半導体装置1におけるデータ処理の開始から終了までの流れの概要を説明する。
コントローラ11は、記憶部(後述するプログラムコードメモリ11B)に格納されたコードを毎サイクル解釈し、それに従って、演算器10A〜10Iがデータ処理に必要な回路情報を内部のメモリ(後述する回路情報記憶部101)から読み出すためのアドレスを、直接命令アドレスバス13にセットする。また、コントローラ11は、同じコードを解釈して、データメモリ12に制御情報(データ読み出し要求とデータ書き込み要求)を転送する。
データメモリ12は、コントローラ11からデータ読み出し要求を受け取るたびに、その要求に従ってデータメモリ12からデータを読み出し、演算器10A〜Cに転送する。また、データメモリ12は、コントローラ11からデータ書き込み要求を受け取るたびに、その要求に従って演算器10G〜Iから出力されたデータをデータメモリ12に書き込む。
演算器10は、サイクルごとに演算を行う。図2は、演算器10の動作を示すフローチャートである。初めに、演算器10は、演算器10の内部のメモリ(後述する回路情報記憶部101)から回路情報を読み出すためのアドレスとして、直接命令アドレスバス13の値と間接命令アドレスバス14の値のどちらを用いるかを決定する(ステップS1)。なお、決定の方法については、後ほど、演算器10におけるデータ処理についての説明の中で説明する。
次に、演算器10は、ステップS1で決定された値をアドレスとして内部のメモリ(後述する回路情報記憶部101)から回路情報を読み出し、データ処理に必要な実行回路を構築する(ステップS2)。
次に、演算器10は、ステップS2で構築された実行回路により、データメモリ12または別の演算器10から入力されるデータを演算し、演算結果を接続するデータメモリ12または別の演算器10に出力する(ステップS3)。
最後に、演算器10は、ステップS3で演算された結果を、間接命令アドレスバス14に設定するかどうかを判定し、設定が必要と判定された場合には、ステップS3で演算された結果を間接命令アドレスバス14に設定する(ステップS4)。一方、設定が不要と判定された場合には、ステップS3で演算された結果は間接命令アドレスバス14に設定されず、間接命令アドレスバス14には、以前に別の演算器10で設定された結果がそのまま設定される。
なお、ステップS4で演算器10により間接命令アドレスバス14に設定された値は、その演算器10が演算結果を出力する別の演算器10が、ステップS1で回路情報を読み出すためのアドレスとして用いられる。このようにして、すべての演算器10A〜Iがサイクルごとに行う演算が決定され、演算が行われる。
そして、コントローラ11が全てのコードを解釈し終えた時点で、コントローラ11は外部装置2に処理の完了を通知し、データ処理は終了する。
最後に、外部装置2は、処理の完了通知を受けた後に、データメモリ12に蓄えられた半導体装置1の演算結果を読み出す。
(演算器におけるデータ処理)
次に、演算器10におけるデータ処理について詳しく説明する。図3は、演算器10の構成を示すブロック図である。演算器10は、命令アドレス決定部100、回路情報記憶部101、演算部102、および、間接命令アドレス出力部103を備えて構成されている。
命令アドレス決定部100は、回路情報記憶部101から回路情報を読み出す際のアドレスとして、直接命令アドレスバス13の値と間接命令アドレスバス14の値の、どちらを用いるかを決定する。命令アドレス決定部100は、直接命令アドレスバス13、間接命令アドレスバス14、回路情報記憶部101、および、間接命令アドレス出力部103に接続する。
命令アドレス決定部100は、メモリ1001とセレクタ1002とを備えて構成されている。メモリ1001には、直接命令アドレスバス13の値であるアドレスとそれに対応する出力値が対応付けて記憶されており、この出力値が回路情報記憶部101のアドレスを決定するための情報となる。本実施の形態では、直接命令アドレスバス13の値であるアドレス0、1、2、...、nに対して、出力値として0または1の値が記憶されている。メモリ1001は、直接命令アドレスバス13の値であるアドレスが入力されると、それに対応する出力値をセレクタ1002へ出力する。
図4は、メモリ1001に記憶されている直接命令アドレスバス13の値であるアドレスとそれに対応する出力値の一例を示す図である。なお、メモリ1001に記憶されている直接命令アドレスバス13の値であるアドレスとそれに対応する出力値の関係は、各演算器10A〜10Iごとに任意に設定が可能である。なお、本実施の形態では、図4のような情報がメモリ1001に記憶されているが、これに限定されるものではなく、直接命令アドレスバス13の値と間接命令アドレスバス14の値のいずれか一方を一意に選択可能な情報であればよい。
セレクタ1002には、直接命令アドレスバス13の値、間接命令アドレスバス14の値、および、メモリ1001からの出力値が入力される。そして、セレクタ1002は、メモリ1001からの出力値に基づいて、直接命令アドレスバス13の値と、間接命令アドレスバス14の値のいずれかを選択し、この値を回路情報記憶部101と間接命令アドレス出力部103とへ出力する。そして、出力された値(アドレス)は、回路情報記憶部101から回路情報を読み出すためのアドレスとなる。なお、本実施の形態では、メモリ1001から読み出される値が0の場合には直接命令アドレスバス13の値が選択され、1の場合には間接命令アドレスバス14の値が選択される。
回路情報記憶部101は、演算部102に構築される実行回路を決定するための回路情報を格納するメモリである。回路情報記憶部101は、命令アドレス決定部100および演算部102に接続する。回路情報記憶部101からは、命令アドレス決定部100が出力する値(アドレス)に対応する回路情報が読み出され、演算部102に出力される。
図5は、回路情報記憶部101に格納される回路情報の構造の一例を示す図である。回路情報は、演算指定フィールド、入力データ指定フィールド、出力データ指定フィールド、および、即値フィールドからなる。
演算指定フィールドは、演算部102で行う演算の種類を指定するための回路情報である。なお、本実施の形態では、演算指定フィールドは2ビットとし、図5に示す規則に従って演算部102の演算の種類を決定するが、演算部102が必要とする演算の種類(数)に合わせて、演算指定フィールドの定義は変更しても構わない。
入力データ指定フィールドは、演算器10に入力されるデータのいずれを、演算部102における入力A、Bとして用いるかを指定するためのフィールドである。なお、本実施の形態では、演算器10に入力されるデータとしては、入力0、入力1、および、入力2の各データポートから入力される各データと、即値フィールドに格納された各データとがある。また、本実施の形態では、入力データ指定フィールドは4ビットとし、図5に示す規則に従って演算部102の入力A、Bを決定するが、各演算器10間の接続本数や、演算部102が必要とする入力データの数に合わせて、入力データ指定フィールドの定義は変更しても構わない。
出力データ指定フィールドは、演算器10が出力するデータを指定するためのフィールドである。なお、本実施の形態では、出力データ指定フィールドは2ビットとし、出力データ指定フィールドが“00”の場合には、演算部102で演算された結果が演算器10から出力され、“01”、“10”、“11”の場合には、それぞれ演算器10の入力0、入力1、入力2の各データポートから入力される各データが演算器10からそのまま出力される。出力データ指定フィールドの定義は、演算器10に入力されるデータの数などに応じて変更しても構わない。
このように、演算器10の入力0、入力1、入力2の各データポートから入力される各データの値を、演算器10からそのまま出力する機能は、演算器10により演算した結果を間接命令アドレスバス14にセットしておき、別の演算器10において、この演算結果を回路情報記憶部101に記憶されている演算に用いる回路情報を読み出すためのアドレスとして使用することが可能である半導体装置1においては、データ処理に必要なデータを転送するためのデータパスを十分に確保するという点で効果がある。この機能がない場合には、演算器10が演算結果を間接命令アドレスバス14にセットする際には、その演算器10からデータ処理に用いるデータを他の演算器10に転送することはできなくなり、使用可能なデータパスの数は減少する。
即値フィールドは、入力データ指定フィールドにより演算部102の入力として即値が指定された場合に、演算部102に入力されるデータを格納するフィールドである。また、選択演算の結果として出力されるデータを指定するフィールドとしても利用される。なお、即値フィールドに格納されたデータは、演算部102に入力されるデータ、および、選択演算の結果として出力されるデータとして共用することが可能である。なお、本実施の形態では、即値フィールドは8ビットとし、4ビットごとにそれぞれ演算部102の入力A、入力Bに即値が指定された場合に入力されるデータを格納するが、即値フィールドの定義は、必要とされる即値の精度や演算部102の入力数などに応じて適宜変更しも構わない。
演算部102は、回路情報記憶部101から入力される回路情報に従って、演算に必要な実行回路を構築して演算を行う。演算部102は、回路情報記憶部101、間接命令アドレス出力部103、入力0、入力1、および、入力2の各データポート、および、後段の演算器10(最後段の演算器10の場合はデータメモリ12)に接続する。
図6は、演算部102の構成の一例を示すブロック図である。図6では、回路情報に従って、入力A、入力B、および、演算器10の出力を選択するための実行回路の構築は、回路情報の入力データ指定フィールドおよび出力データ指定フィールドに従って、セレクタ1020、1021、1023の出力を選択することにより実現している。また、回路情報の演算指定フィールドにより指定される演算を行うための実行回路の構築は、演算指定フィールドにより指定され得る演算を、それぞれ加算器1024、減算器1025、シフタ1026、選択器1027で別々に実行し、それらの結果を、演算指定フィールドに従って、セレクタ1022により選択することで実現している。
セレクタ1022により選択されたデータは、回路情報の出力データ指定フィールドの値によらず、そのまま間接命令アドレス出力部103に出力される。一方、演算器10の出力データは、入力0、入力1、および、入力2の各データポートから入力される各データ、および、セレクタ1022の出力の中から、出力データ指定フィールドの値に従いセレクタ1023により選択され、出力される。
間接命令アドレス出力部103は、演算部102から入力されるデータを、間接命令アドレスバス14にセットするかどうかを決定する。間接命令アドレス出力部103は、命令アドレス決定部100、演算部102、および、間接命令アドレスバス14に接続する。
間接命令アドレス出力部103は、メモリ1030を備えて構成されている。メモリ1030には、命令アドレス決定部100から出力される値(直接命令アドレスバス13の値か間接命令アドレスバス14の値のいずれか)であるアドレスとそれに対応する出力値が対応付けて記憶されており、この出力値が演算部102から入力されるデータ値を間接命令アドレスバス14に設定するか否かを決定するための情報となる。本実施の形態では、命令アドレス決定部100から出力される値であるアドレス0、1、2、...、nに対して、出力値として0または1の値が記憶されている。メモリ1030は、命令アドレス決定部100から出力される値であるアドレスが入力されると、それに対応する出力値を間接命令アドレスバス14へ出力する。
図7は、メモリ1030に記憶されている命令アドレス決定部100から出力される値であるアドレスとそれに対応する出力値の一例を示す図である。なお、メモリ1030に記憶されている命令アドレス決定部100から出力される値であるアドレスとそれに対応する出力値の関係は、各演算器10A〜10Iごとに任意に設定が可能である。なお、本実施の形態では、図7のような情報がメモリ1030に記憶されているが、これに限定されるものではなく、演算部102から入力されるデータ値を間接命令アドレスバス14に設定するか否かを一意に決定可能な情報であればよい。
間接命令アドレス出力部103は、メモリ1030から出力される出力値を間接命令アドレスバス14に出力するとともに、演算部102から入力されるデータをそのまま間接命令アドレスバス14に出力する。本実施の形態では、メモリ1030から出力される出力値が0の場合には、演算部102から入力される値は間接命令アドレスバス14に設定されず、メモリ1030から出力される出力値が1の場合には、演算部102から入力される値が間接命令アドレスバス14に設定される。なお、演算部102から入力される値が間接命令アドレスバス14に設定されない場合には、以前に設定された値が変更されずそのまま設定された状態となる。
(コントローラにおけるデータ処理)
次に、コントローラ11におけるデータ処理について詳しく説明する。図8は、コントローラ11の構成を示すブロック図である。コントローラ11は、制御部11A、プログラムコードメモリ11B、および、プログラムカウンタ11Cを備えて構成されている。
制御部11Aは、プログラムコードメモリ11Bおよびプログラムカウンタ11Cに接続する。制御部11Aは、プログラムカウンタ11Cの値をアドレスとして、プログラムコードメモリ11Bからプログラムコードを読み出す。さらに、制御部11Aは、読み出されたプログラムコードに基づいて、データメモリ12からのデータ読み出しのための制御情報(読み出しアドレス)と、データメモリ12へのデータ書き込みのための制御情報(書き込みアドレスおよび後述する有効フラグ)とをデータメモリ12へ出力するとともに、命令アドレスを直接命令アドレスバス13へ出力する。
なお、プログラムコードメモリ11Bには、データ処理の開始前に、外部装置2によりプログラムコードが書き込まれる。また、プログラムカウンタ11Cの値は、プログラムコードの先頭アドレスに更新される。
図9は、プログラムコードメモリ11Bに格納されるプログラムコードの構造例を示した図である。本実施の形態では、プログラムコードは、データメモリ12の読み出しアドレスを示す入力アドレス(読み出しアドレス)、データメモリ12の書き込みアドレスを示す出力アドレス(書き込みアドレス)、命令アドレス、有効フラグ、および、終端フラグからなる。なお、本実施の形態では、入力0と入力1の2つのデータポートにデータを入力するため、入力アドレスは、入力アドレス0と入力アドレス1の2種類ある。
プログラムコードは1サイクルで1アドレスずつ解釈される。プログラムカウンタ11Cは、1アドレスの解釈を終えるたびに1つ増加する。そして、入力アドレス(読み出しアドレス)、出力アドレス(書き込みアドレス)、および、有効フラグは、データメモリ12に転送される。ここで、有効フラグは、データメモリ12への書き込みが有効であるかどうかを示すもので、有効でない場合には、演算器10G〜Iの演算結果はデータメモリ12に書き込まれない。
終端フラグは、プログラムコードの終端を示すもので、制御部11Aはプログラムコードの終端アドレスの解釈を終えると、データ処理の完了を外部装置2に通知する。また、制御部11Aは、外部装置2から新たなデータ処理の開始を通知されるまで、データメモリ12への書き込みは無効となるように有効フラグを出力する。
(半導体装置の動作例)
次に、本実施の形態における半導体装置1で、条件に応じて演算が実行される際の動作例を説明する。図10は、半導体装置1が演算を行う際の動作を説明する図である。なお、図10では、動作例で説明されている半導体装置1の構成ユニットのみを示し、他の構成ユニットについては省略する。また、説明を容易にするために、動作例の説明に必要な演算器10の動作のみを説明し、他の演算器10の動作については説明を省略する。
初めに、コントローラ11は、直接命令アドレスバス13に“0”をセットするとともに、データメモリ12に対して、演算器10Aおよび10Bの入力0および1のデータポートに転送するデータの読み出し要求を転送する。なお、本動作例では、入力アドレス(読み出しアドレス)0のアドレスは0、入力アドレス(読み出しアドレス)1のアドレスは1であり、データメモリ12のアドレス0に記憶されたデータ3が、演算器10Aおよび10Bの入力0のデータポートに転送され、データメモリ12のアドレス1に記憶されたデータ1が、演算器10Aおよび10Bの入力1のデータポートに転送される。また、直接命令アドレスバス13にセットされた“0”は、演算器10Aおよび10Bの命令アドレス決定部100に転送される。
そして、演算器10Aにおいては、以下の動作が行われる。まず命令アドレス決定部100では、メモリ1001の直接命令アドレスバス13のアドレス“0”に対応する出力値“0”が読み出され、セレクタ1002へ出力される。セレクタ1002では、メモリ1001から読み出される出力値が“0”であるため、直接命令アドレスバス13の値“0”を選択し、直接命令アドレスバス13の値“0” が回路情報記憶部101に出力される。
そして、回路情報記憶部101からは、命令アドレス決定部100が出力するアドレス“0”に対応する回路情報が読み出され、演算部102に出力される。なお、この時の回路情報は、演算指定フィールドが“11”、入力データ指定フィールドが“0001”、出力データ指定フィールドが“01”、即値フィールドが“00010010”である。演算部102では、この回路情報に従って演算が行われる。回路情報の入力データ指定フィールドが“0001”なので、入力Aは、入力0のデータポートからのデータ3となり、入力Bは、入力1のデータポートからのデータ1となる。さらに、回路情報の演算指定フィールドが“11”なので、演算は選択となり、入力Bは0でないため、即値フィールド “00010010”の上位4ビットである“0001”、すなわち、“1”が選択され、演算部102の演算結果は“1”となる。
また、間接命令アドレス出力部103では、命令アドレス決定部100から出力される値が“0”であるため、メモリ1030のアドレス“0”から出力値“1”が読み出される。そして、出力値が1の場合には、演算部102の演算結果である“1”が間接命令アドレスバス14にセットされる。また、回路情報の出力データ指定フィールドが“01”であるため、データメモリ12から演算器10Aの入力0のデータポートに入力されるデータ“3”が、演算器10Aから出力データとして出力される。
そして、演算器10Aからの出力データ“3”が演算器10Dの入力0のデータポートに転送され、演算器10Bからの出力データ“5”が演算器10Dの入力1のデータポートに転送される。また、直接命令アドレスバス13にセットされた“0”は、演算器10Dの命令アドレス決定部100に転送される。
その後、演算器10Dにおいては、以下の動作が行われる。まず命令アドレス決定部100では、メモリ1001の直接命令アドレスバス13のアドレス“0”に対応する出力値“1”が読み出され、セレクタ1002へ出力される。セレクタ1002では、メモリ1001から読み出される出力値が“1”であるため、間接命令アドレスバス14の値“1”を選択し、間接命令アドレスバス14の値“1” が回路情報記憶部101に出力される。
そして、回路情報記憶部101からは、命令アドレス決定部100が出力するアドレス“1”に対応する回路情報が読み出され、演算部102に出力される。なお、この時の回路情報は、演算指定フィールドが“00”、入力データ指定フィールドが“0001”、出力データ指定フィールドが“00”、即値フィールドが“00000000”である。演算部102では、この回路情報に従って演算が行われる。回路情報の入力データ指定フィールドが“0001”なので、入力Aは、入力0のデータポートからのデータ3となり、入力Bは、入力1のデータポートからのデータ5となる。さらに、回路情報の演算指定フィールドが“00”なので、演算は加算となり、演算部102の演算結果は3+5=“8”となる。
また、間接命令アドレス出力部103では、命令アドレス決定部100から出力される値が“1”であるため、メモリ1030のアドレス“1”から出力値“0”が読み出される。出力値が0の場合には、演算部102の演算結果である“8”は間接命令アドレスバス14にセットされず、以前の演算器10Aでの演算結果である“1”がセットされたままとなる。また、回路情報の出力データ指定フィールドが“00”であるため、演算部102の演算結果である“8”が、演算器10Dから出力データとして出力される。
上述した動作例では、データメモリ12から演算器10Aの入力1のデータポートに入力されるデータが“1”であったため、間接命令アドレスバス14に“1”がセットされて、演算器10Dでは回路情報記憶部101のアドレス“1”から読み出される回路情報に従って演算が行われたが、データメモリ12から演算器10Aの入力1のデータポートに入力されるデータが“0”の場合には、以下の様になる。
すなわち、入力Bは、入力1のデータポートからのデータ0となり、回路情報の演算指定フィールドが“11”なので、演算は選択となり、入力Bは0であるため、即値フィールド “00010010”の下位4ビットである“0010”、すなわち、“2”が選択され、演算部102の演算結果は“2”となる。そして、間接命令アドレス出力部103では、命令アドレス決定部100から出力される値が“0”であるため、メモリ1030のアドレス“0”から出力値“1”が読み出され、演算部102の演算結果である“2”が間接命令アドレスバス14にセットされて、演算器10Dでは回路情報記憶部101のアドレス“2”から読み出される回路情報に従って演算が行われる。
このようにして、ある演算器10で実行される演算を、データメモリ12や別の演算器10から入力されるデータを条件として条件実行することが可能になる。
また、上述した動作例では、演算器10Aにデータメモリ12から入力されるデータに応じて、演算器10Dの演算を条件実行する際の動作を説明したが、命令アドレス決定部100のメモリ1001と、間接命令アドレス出力部103のメモリ1030に、適切な値を設定することにより、様々な型の条件実行が可能となる。
例えば、上述した動作例において、演算器10Gのメモリ1001のアドレス“0”に出力値“1”をセットしておけば、間接命令アドレスバス14にセットされた演算器10Aでの演算結果である値“1” が回路情報記憶部101に出力されることにより、結果として、演算器10Aにデータメモリ12から入力されるデータに応じて、演算器10Gの演算をも条件実行することが可能となる。
また、上述した動作例において、演算器10Dのメモリ1030のアドレス“1”に出力値“1”をセットし、演算器10Gのメモリ1001のアドレス“0”に出力値“1”をセットしておけば、演算器10Dの演算結果が間接命令アドレスバス14にセットされることにより、演算器10Gでは演算器10Dの演算結果をアドレスとして、回路情報記憶部101から回路情報が読み出されて演算が行われる。この動作例では、まず演算器10Aにデータメモリ12から入力されるデータに応じて、演算器10Dで演算が条件実行されたあと、さらに演算器10Dで実行された演算結果に応じて演算器10Gで演算が条件実行されるという動作になる。
さらに、上述した動作例において、演算器10Dのメモリ1001のアドレス“0”に出力値“0”をセットし、演算器10Gのメモリ1001のアドレス“0”に出力値“1”をセットしておけば、演算器10Dでは、演算器10Aの演算結果にかかわらず、常に直接命令アドレスバス13が示す値“0”をアドレスとして回路情報記憶部101から読み出された回路情報に従って演算が行われる。一方、演算器10Gでは、演算器10Aの演算結果に応じて演算が条件実行される。
(変形例)
次に、本実施の形態にかかる半導体装置の変形例について説明する。本実施の形態にかかる半導体装置1では、初めに、演算器10A〜Cで演算が行われ、次に、演算器10A〜Cの演算結果に応じて演算器10D〜Fで演算が条件実行され、続いて、演算器10D〜Fの演算結果に応じて演算器G〜Iで演算が条件実行されるというように、1サイクルの間に3段の演算が順に行われる必要がある。そのため、半導体装置1における1サイクルの時間を十分に長くする必要があるが、1サイクルの時間が長くなると、半導体装置1の性能が低下するという問題がある。この問題を解決するため、変形例にかかる半導体装置1’では、演算器10A〜Iがパイプライン式に演算を行うようにする。
図11は、半導体装置の変形例の構成を示すブロック図であり、図12は、コントローラの変形例の構成を示すブロック図である。半導体装置1’は、9個の演算器10A〜10I、コントローラ11’、データメモリ12、直接命令アドレスバス13、間接命令アドレスバス14、および、複数のタイミングラッチ15を備えて構成されている。また、コントローラ11’は、制御部11A、プログラムコードメモリ11B、プログラムカウンタ11C、および、複数のタイミングラッチ11Dを備えて構成されている。
タイミングラッチ15は、直接命令アドレスバス13、間接命令アドレスバス14、および、演算器10A〜Iの出力に設けられ、演算器10A〜Iがパイプライン式に演算を行うようにする。タイミングラッチ15は、フリップフロップなどのクロックごとに出力が変化する記憶素子が用いられる。
タイミングラッチ11Dは、コントローラ11からデータメモリ12へデータ書き込みのための制御情報(書き込みアドレスおよび有効フラグ)を送信する線の途中に設けられ、データ書き込みのための制御情報(書き込みアドレスおよび有効フラグ)がコントローラ11からデータメモリ12へパイプライン式に転送されるようにする。タイミングラッチ11Dは、フリップフロップなどのクロックごとに出力が変化する記憶素子が用いられる。
なお、図11では、タイミングラッチ15の数は18個であるが、この数は、演算器10の数などの回路設計によって適宜変更される。同様に、図12のタイミングラッチ11Dの数も回路設計によって適宜変更される。
図11の半導体装置1’では、あるサイクルに演算器10が間接命令アドレスバス14にセットする値や、演算器10が出力する演算結果は、そのサイクルのうちには演算器10が接続する後段の演算器10には伝搬せず、その次のサイクルで後段の演算器10に伝搬する。そのため、半導体装置1’における1サイクルは、演算器10において1つの演算が行われるのに十分な長さであればよいため、理想的な場合には、図1で説明した半導体装置1における1サイクルの時間の3分の1にまで減少させることができる。
図11の半導体装置1’では、演算器10A〜Iがパイプライン式に演算を行うため、1つのデータ処理を行うのに要するサイクル数は、図1で説明した半導体装置1の3倍となり、1つのデータ処理を行うのに要する時間は変わらない。しかしながら、2つのデータ処理を連続してパイプライン式に行うのに要するサイクル数は、1つのデータ処理を行うのに要するサイクル数より1つ大きいだけである。このように、2つ以上のデータ処理を連続して実行する場合には、図11の半導体装置1’は、図1の半導体装置1よりも高い性能が得られる。
一方、図11の半導体装置1’では、図1の半導体装置1と比べて、挿入される記憶素子(タイミングラッチ)の分だけ面積が大きくなるため、半導体装置に求められる性能や面積の要求に応じて、適切な実施の形態を用いる必要がある。
このように、本実施の形態にかかる半導体装置によれば、リコンフィギュラブル回路により演算された結果を、別のリコンフィギャラブル回路がメモリから回路情報を読み出す際のアドレスとして利用することができ、複数のリコンフィギュラブル回路で各々異なる演算結果を条件として条件実行を行う仕組みを従来よりも少ないリコンフィギュラブル回路を利用するだけで実現できるので、より多くの条件実行を並列に実行できるようになり、リコンフィギュラブル回路における条件実行をより高速に行うことが可能となる。
本発明は、演算処理を行う全ての半導体装置に有用である。
本実施の形態にかかる半導体装置の構成を示すブロック図である。 演算器の動作を示すフローチャートである。 演算器の構成を示すブロック図である。 メモリに記憶されている直接命令アドレスバスの値であるアドレスとそれに対応する出力値の一例を示す図である。 回路情報記憶部に格納される回路情報の構造の一例を示す図である。 演算部の構成の一例を示すブロック図である。 メモリに記憶されている命令アドレス決定部から出力される値であるアドレスとそれに対応する出力値の一例を示す図である。 コントローラの構成を示すブロック図である。 プログラムコードメモリに格納されるプログラムコードの構造例を示した図である。 半導体装置が演算を行う際の動作を説明する図である。 半導体装置の変形例の構成を示すブロック図である。 コントローラの変形例の構成を示すブロック図である。
符号の説明
1、1’ 半導体装置
2 外部装置
10A、10B、10C、10D、10E、10F、10G、10H、10I 演算器
11、11’ コントローラ
11A 制御部
11B プログラムコードメモリ
11C プログラムカウンタ
11D、15 タイミングラッチ
12 データメモリ
13 直接命令アドレスバス
14 間接命令アドレスバス
100 命令アドレス決定部
101 回路情報記憶部
102 演算部
103 間接命令アドレス出力部
1001、1030 メモリ
1002、1020、1021、1022、1023 セレクタ
1024 加算器
1025 減算器
1026 シフタ
1027 選択器

Claims (8)

  1. 第1の演算を行う第1の動的リコンフィギュラブル回路と、
    第1の記憶手段を内部に備え、第2の演算を行う第2の動的リコンフィギュラブル回路と、
    前記第1の演算に必要な実行回路および前記第2の演算に必要な実行回路を特定するための値である第1アドレスを、前記第1の動的リコンフィギュラブル回路と前記第2の動的リコンフィギュラブル回路とへ出力するとともに、前記第1の演算に用いられるデータの前記第1の動的リコンフィギュラブル回路への入力を制御するコントローラと、
    前記第1の動的リコンフィギュラブル回路が演算した第1の演算結果を、前記第2の動的リコンフィギュラブル回路に転送するバスと、を備え、
    前記第1の動的リコンフィギュラブル回路は、
    前記第1アドレスにより特定される前記第1の演算に必要な実行回路により、入力された前記データに対して前記第1の演算を行い、前記第1の演算結果を前記バスに出力し、
    前記第2の動的リコンフィギュラブル回路は、
    前記第1アドレスに指定される前記第1の記憶手段上の情報に基づいて、前記第1アドレスまたは前記第1の演算結果のいずれかにより特定される前記第2の演算に必要な実行回路により、入力されたデータに対して前記第2の演算を行い、第2の演算結果を出力すること、
    を特徴とする半導体装置。
  2. 前記第2の動的リコンフィギュラブル回路は、前記第1の記憶手段から読み出される情報が、第1の値の場合には前記第1アドレスにより前記第2の演算に必要な実行回路を特定し、第2の値の場合には前記第1の演算結果により前記第2の演算に必要な実行回路を特定すること、を特徴とする請求項1に記載の半導体装置。
  3. 前記第2の動的リコンフィギュラブル回路は、第2の記憶手段をさらに備え、前記第1アドレスまたは前記第1の演算結果のいずれかに指定される、前記第2の記憶手段上の情報に基づいて、前記第2の演算結果を前記バスに出力するかどうかを決定すること、を特徴とする、請求項1または2に記載の半導体装置。
  4. 前記第2の動的リコンフィギュラブル回路は、前記第2の記憶手段から読み出される情報が、第3の値の場合には前記第2の演算結果を前記バスに出力し、第4の値の場合には前記第2の演算結果を前記バスに出力しないこと、を特徴とする請求項3に記載の半導体装置。
  5. 前記第2の動的リコンフィギュラブル回路は、前記第2の演算結果を前記バスに出力する際に、前記入力されたデータを前記第2の演算結果とともに出力すること、を特徴とする請求項1から4のいずれか一項に記載の半導体装置。
  6. 前記コントローラと、前記第1の動的リコンフィギュラブル回路と、前記第2の動的リコンフィギュラブル回路とはパイプライン式に接続され、前記第1アドレスと、前記第1の演算結果は、パイプライン式に転送されること、を特徴とする請求項1から5のいずれか一項に記載の半導体装置。
  7. 前記第2の動的リコンフィギュラブル回路と接続し、第3の演算を行う第3の動的リコンフィギュラブル回路をさらに備え、
    前記バスは、前記第1の演算結果または前記第2の演算結果を、前記第3の動的リコンフィギュラブル回路に転送し、
    前記第3の動的リコンフィギュラブル回路は、
    前記コントローラが出力する前記第1アドレスに指定される、内部に備える第3の記憶上の情報に基づいて、前記コントローラが出力する前記第1アドレス、または、前記バスから読み出される前記第1の演算結果または前記第2の演算結果のいずれかにより特定される前記第3の演算に必要な実行回路で、入力されるデータに対して演算を行い、第3の演算結果を出力すること、
    を特徴とする請求項1から6のいずれか一項に記載の半導体装置。
  8. 第1の動的リコンフィギュラブル回路と、記憶手段を内部に備える第2の動的リコンフィギュラブル回路と、コントローラと、バスと、を備えた半導体装置によるデータ処理方法において、
    前記コントローラが、第1アドレスを、前記第1の動的リコンフィギュラブル回路と前記第2の動的リコンフィギュラブル回路とへ出力する第1の出力ステップと、
    前記コントローラが、データの前記第1の動的リコンフィギュラブル回路への入力を制御する制御ステップと、
    前記第1の動的リコンフィギュラブル回路が、前記第1アドレスにより特定される前記第1の演算に必要な実行回路により、入力された前記データに対して前記第1の演算を行う第1の演算ステップと、
    前記第1の動的リコンフィギュラブル回路が、前記第1の演算ステップで演算した第1の演算結果を前記バスに出力する第2の出力ステップと、
    前記バスが、前記第1の演算結果を、前記第2の動的リコンフィギュラブル回路に転送する転送ステップと、
    前記第2の動的リコンフィギュラブル回路が、前記第1アドレスに指定される前記第1の記憶手段上の情報に基づいて、前記第1アドレスまたは前記第1の演算結果のいずれかにより特定される前記第2の演算に必要な実行回路により、入力されたデータに対して前記第2の演算を行う第2の演算ステップと、
    前記第2の動的リコンフィギュラブル回路が、第2の演算ステップで演算した第2の演算結果を出力する第3の出力ステップと、を含むこと、
    を特徴とする半導体装置によるデータ処理方法。
JP2008289397A 2008-11-12 2008-11-12 半導体装置、および、半導体装置によるデータ処理方法 Expired - Fee Related JP5231949B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008289397A JP5231949B2 (ja) 2008-11-12 2008-11-12 半導体装置、および、半導体装置によるデータ処理方法
US12/544,122 US8402251B2 (en) 2008-11-12 2009-08-19 Selecting configuration memory address for execution circuit conditionally based on input address or computation result of preceding execution circuit as address

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008289397A JP5231949B2 (ja) 2008-11-12 2008-11-12 半導体装置、および、半導体装置によるデータ処理方法

Publications (2)

Publication Number Publication Date
JP2010117806A true JP2010117806A (ja) 2010-05-27
JP5231949B2 JP5231949B2 (ja) 2013-07-10

Family

ID=42166254

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008289397A Expired - Fee Related JP5231949B2 (ja) 2008-11-12 2008-11-12 半導体装置、および、半導体装置によるデータ処理方法

Country Status (2)

Country Link
US (1) US8402251B2 (ja)
JP (1) JP5231949B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014103235A1 (ja) * 2012-12-25 2014-07-03 日本電気株式会社 演算装置及び演算方法
US9742954B2 (en) 2015-12-24 2017-08-22 Fuji Xerox Co., Ltd. Data processing apparatus, data processing method, and non-transitory computer readable medium
US11681498B2 (en) 2019-03-27 2023-06-20 Tdk Corporation Neural network arithmetic processing device and neural network arithmetic processing method

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016100142A2 (en) * 2014-12-15 2016-06-23 Hyperion Core Inc. Advanced processor architecture
JP7370158B2 (ja) * 2019-04-03 2023-10-27 株式会社Preferred Networks 情報処理装置および情報処理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257549A (ja) * 2006-03-24 2007-10-04 Toshiba Corp 半導体装置
JP2008530642A (ja) * 2005-02-07 2008-08-07 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト 低レイテンシーの大量並列データ処理装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5915123A (en) * 1997-10-31 1999-06-22 Silicon Spice Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements
US6349346B1 (en) * 1999-09-23 2002-02-19 Chameleon Systems, Inc. Control fabric unit including associated configuration memory and PSOP state machine adapted to provide configuration address to reconfigurable functional unit
JP3674515B2 (ja) 2000-02-25 2005-07-20 日本電気株式会社 アレイ型プロセッサ
JP4950796B2 (ja) 2007-07-31 2012-06-13 株式会社東芝 半導体装置
JP2009129046A (ja) * 2007-11-21 2009-06-11 Panasonic Corp リコンフィギュラブル回路,リコンフィギュラブル回路の機能変更方法および通信装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008530642A (ja) * 2005-02-07 2008-08-07 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト 低レイテンシーの大量並列データ処理装置
JP2007257549A (ja) * 2006-03-24 2007-10-04 Toshiba Corp 半導体装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014103235A1 (ja) * 2012-12-25 2014-07-03 日本電気株式会社 演算装置及び演算方法
US9507541B2 (en) 2012-12-25 2016-11-29 Nec Corporation Computation device, computation method, and medium
JPWO2014103235A1 (ja) * 2012-12-25 2017-01-12 日本電気株式会社 演算装置及び演算方法
US9742954B2 (en) 2015-12-24 2017-08-22 Fuji Xerox Co., Ltd. Data processing apparatus, data processing method, and non-transitory computer readable medium
US11681498B2 (en) 2019-03-27 2023-06-20 Tdk Corporation Neural network arithmetic processing device and neural network arithmetic processing method

Also Published As

Publication number Publication date
US20100122071A1 (en) 2010-05-13
JP5231949B2 (ja) 2013-07-10
US8402251B2 (en) 2013-03-19

Similar Documents

Publication Publication Date Title
JP4861030B2 (ja) 半導体装置
CN109542515B (zh) 运算装置及方法
JP5178346B2 (ja) 半導体装置、および、半導体装置によるデータ処理方法
US8145804B2 (en) Systems and methods for transferring data to maintain preferred slot positions in a bi-endian processor
JP5231949B2 (ja) 半導体装置、および、半導体装置によるデータ処理方法
US8949575B2 (en) Reversing processing order in half-pumped SIMD execution units to achieve K cycle issue-to-issue latency
JPH1165844A (ja) パイプラインバイパス機能を有するデータ処理装置
CN102402415A (zh) 一种动态可重构阵列内数据缓存的装置及方法
US7461235B2 (en) Energy-efficient parallel data path architecture for selectively powering processing units and register files based on instruction type
US8171259B2 (en) Multi-cluster dynamic reconfigurable circuit for context valid processing of data by clearing received data with added context change indicative signal
US7917707B2 (en) Semiconductor device
JP2000322235A (ja) 情報処理装置
US8631173B2 (en) Semiconductor device
JP5370352B2 (ja) Simd型プロセッサアレイシステム及びそのデータ転送方法
JP6378515B2 (ja) Vliwプロセッサ
US20110271078A1 (en) Processor structure of integrated circuit
CN113407239B (zh) 一种基于异步单轨的流水线处理器
JP5701930B2 (ja) 半導体装置
CN117009287A (zh) 一种于弹性队列存储的动态可重构处理器
US8719615B2 (en) Semiconductor device
KR100896269B1 (ko) SIMD/SISD/Row/Column 동작을 할 수있는 SIMD 병렬 프로세서
JP2009193466A (ja) 半導体装置
JP2001092658A (ja) データ処理回路及びデータ処理装置
CN116136834A (zh) 一种处理器
JP2003122561A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110324

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130213

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: 20130226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130322

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160329

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees