JP2016009907A - プログラマブルデバイスおよびその制御方法 - Google Patents

プログラマブルデバイスおよびその制御方法 Download PDF

Info

Publication number
JP2016009907A
JP2016009907A JP2014128054A JP2014128054A JP2016009907A JP 2016009907 A JP2016009907 A JP 2016009907A JP 2014128054 A JP2014128054 A JP 2014128054A JP 2014128054 A JP2014128054 A JP 2014128054A JP 2016009907 A JP2016009907 A JP 2016009907A
Authority
JP
Japan
Prior art keywords
control
circuits
processing
circuit
selector
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
JP2014128054A
Other languages
English (en)
Other versions
JP6259361B2 (ja
Inventor
彩希 八田
Saki Hatta
彩希 八田
田中 伸幸
Nobuyuki Tanaka
伸幸 田中
重松 智志
Satoshi Shigematsu
智志 重松
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2014128054A priority Critical patent/JP6259361B2/ja
Publication of JP2016009907A publication Critical patent/JP2016009907A/ja
Application granted granted Critical
Publication of JP6259361B2 publication Critical patent/JP6259361B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Logic Circuits (AREA)

Abstract

【課題】処理回路と制御回路とが1対1対応である従来の構成方法と比較して、処理回路の利用効率が高いプログラマブルデバイスおよびその制御方法を提供する。【解決手段】複数の処理回路と、前記複数の処理回路の制御内容を読み出すためのアドレスを出力するプログラムカウンタと、前記処理回路の各々に対する制御内容が記憶された記憶素子とを備え、プログラムカウンタから出力された前記アドレスで指定される前記制御内容を読み出す複数の制御回路と、前記処理回路と同数以上であり、前記処理回路と前記制御回路との間に介挿されたセレクタと、を有し、前記制御回路は、前記記憶素子から読み出した前記制御内容を制御信号として前記セレクタに出力し、前記セレクタは、前記複数の制御回路から出力される全ての制御信号を入力とし、前記全ての制御信号のうちの1つの制御信号を選択し、その選択結果を前記処理回路に出力する。【選択図】図1

Description

本発明は、複数制御回路と複数処理回路とを備えるプログラマブルデバイスに関する。
組込み機器向けのSoC(System on a Chip)は、ユーザのニーズに迅速に対応するために製品化サイクルの短縮化が進められており、特にSoC開発期間の短縮が必要とされている。SoCの開発にはハードウェア開発とソフトウェア開発とが含まれる。そのため、SoC開発期間を短縮するには、ハードウェア開発とソフトウェア開発とのいずれかの開発期間の短縮が必要である。
上述した観点から、近年、ハードウェアのアーキテクチャを変更することなく、ソフトウェアのアーキテクチャの変更のみでハードウェアの機能を変更可能なプログラマブルデバイスが提案されている。このプログラマブルデバイスをSoCに搭載することにより、システム変更や機能拡張の要求に対して迅速に対応可能となる。プログラマブルデバイスは、例えば、シングルコアCPU(Central Processing Unit)、マルチコアCPU、FPGA(Field-Programmable Gate Array)、DRP(Dynamic Reconfigurable Processor)等である。なお、これらのプログラマブルデバイスの性能としては、高速演算性、小面積、低消費電力が求められている。
図11は、プログラマブルデバイスの一般的な構成を示す図である。図11に示すように、プログラマブルデバイス100は、複数の処理回路110(処理回路110−1、処理回路110−2、…、処理回路110−R(Rは2以上の整数))と制御回路120とを備える。処理回路110の各々は、制御回路120と配線で接続されている。処理回路110は、各種演算器や演算用レジスタ、データメモリ、キャッシュメモリなどの記憶素子を備え、データの演算、データの保持等を実行する。処理回路110の各々は、対応するそれぞれの制御回路120から出力された制御信号の内容により、処理回路110毎におけるデータの演算、データの保持等の実行される処理内容が変化する。制御回路120は、命令アドレスを出力するプログラムカウンタや命令を格納する命令メモリ等の記憶素子を含み、命令フェッチ、命令デコードを実行する。制御回路120は、処理回路110に対する制御内容(命令)を制御信号として処理回路110に出力する。プログラマブルデバイス100は、制御回路120内に含まれる記憶素子のプログラムを書き換えることによって、処理回路110の機能(制御内容)を書き換えることが可能となる。
従来、プログラマブルデバイス100を用いた回路の信号伝送の高速化をはかるために、処理回路群と制御回路との組み合わせを要素回路として、その要素回路間を相互に連携させ、パイプライン処理を行うことが知られている(特許文献1参照)。図12は、2つの要素回路を用いて2段パイプラインを組んだ際の要素回路のパイプライン動作のタイミングチャートを示す。要素回路200−1は、制御回路120とR個の処理回路を備える。要素回路200−2は、制御回路120とL個の処理回路を備える。図12に示すように、プログラマブルデバイス100は、処理回路と制御回路とが1対1対応で構成された要素回路200−1と要素回路200−2とを組み合わせて2段のパイプライン動作を実現させている。
特開平6−51984号公報
しかしながら、上述のプログラマブルデバイスの構成において、1つのパイプラインの処理回路で複数の処理を実現する場合、処理回路の利用効率の点で無駄が生じる。例えば、図13に示すように、2つの要素回路(200−1及び200−2)で2段のパイプラインを組み、処理Aと処理Bを実行させる場合を考える。図13は、1つのパイプラインの処理回路で複数の処理を実現する方法を説明する図である。図13(a)は、1つのパイプラインで処理Aを実行する場合を説明する図である。図13(b)は、1つのパイプラインで処理Bを実行する場合を説明する図である。なお、処理A又は処理Bを実行するために使用している処理回路を白く塗りつぶし、使用していない処理回路を斜線で塗りつぶしている。
図13(a)に示すように、処理Aを実行する場合、すべての処理回路110が使用されている。しかし、図13(b)に示すように、処理Bを実行する場合、すべての処理回路110が使用されるわけではなく、使用されない処理回路110が多い場合がある。上述したように、実行させる処理によって使用される処理回路の数が異なる場合、構成される処理回路の数は、複数の実行すべき処理の中で、最も多くの処理回路を使用する処理に応じで決めなければならない。このため、最も多くの処理回路を使用する処理以外の処理を実行する場合には、処理回路の利用効率が悪くなるおそれがあった。
本発明はこのような事情に鑑みてなされたもので、その目的は、処理回路と制御回路とが1対1対応である従来の構成方法と比較して、処理回路の利用効率が高いプログラマブルデバイスおよびその制御方法を提供することである。
本発明の一態様は、複数の処理回路と、前記複数の処理回路の制御内容を読み出すためのアドレスを出力するプログラムカウンタと、前記処理回路の各々に対する制御内容が記憶された記憶素子とを備え、前記プログラムカウンタから出力された前記アドレスで指定される前記制御内容を読み出す複数の制御回路と、前記処理回路と同数以上であり、前記処理回路と前記制御回路との間に介挿されたセレクタと、を有し、前記制御回路は、前記記憶素子から読み出した前記制御内容を制御信号として前記セレクタに出力し、前記セレクタは、前記複数の制御回路から出力される全ての制御信号を入力とし、前記全ての制御信号のうちの1つの制御信号を選択し、その選択結果を前記処理回路に出力することを特徴とするプログラマブルデバイスである。
また、本発明の一態様は、複数の処理回路と、前記複数の処理回路の制御内容を読み出すためのアドレスを出力するプログラムカウンタを備え、前記プログラムカウンタで生成された前記アドレスを制御信号として出力する複数の制御回路と、前記複数の制御回路から出力される全ての制御信号を入力とし、前記全ての制御信号のうちの1つの制御信号を選択し、その選択結果を前記処理回路に出力する、前記処理回路と同数以上であり前記処理回路と前記制御回路との間に介挿されたセレクタと、を有し、前記処理回路の各々は、自身の制御内容を記憶し、前記セレクタから出力された前記アドレスで指定される前記制御内容を読み出すことを特徴とするプログラマブルデバイスである。
また、本発明の一態様は、上述したプログラマブルデバイスであって、前記セレクタの選択信号は、前記処理回路の出力結果である。
また、本発明の一態様は、上述したプログラマブルデバイスであって、前記制御回路の各々と前記処理回路の各々との対応付けが記憶されているレジスタをさらに有し、前記レジスタは、その対応付けに応じて選択信号を前記セレクタに送信する。
また、本発明の一態様は、複数の処理回路と複数の制御回路と、前記処理回路と同数以上であり、前記処理回路と前記制御回路との間に介挿されたセレクタとを有するプログラマブルデバイスの制御方法であって、前記制御回路が、前記処理回路の各々に対する制御内容が記憶された記憶素子から、複数の処理回路の制御内容を読み出すためのアドレスで指定される前記制御内容を読み出し、読み出した前記制御内容を制御信号として前記セレクタに出力する過程と、前記セレクタが、前記複数の制御回路から出力される全ての制御信号を入力とし、前記全ての制御信号のうちの1つの制御信号を選択し、その選択結果を前記処理回路に出力する過程と、を有することを特徴とするプログラマブルデバイスの制御方法である。
また、本発明の一態様は、複数の処理回路と複数の制御回路と、前記処理回路と同数以上であり、前記処理回路と前記制御回路との間に介挿されたセレクタとを有するプログラマブルデバイスの制御方法であって、前記制御回路が、前記複数の処理回路の制御内容を読み出すためのアドレスを制御信号として前記セレクタに出力する過程と、前記セレクタの各々が、前記複数の制御回路から出力される全ての制御信号を入力とし、前記全ての制御信号のうちの1つの制御信号を選択し、その選択結果を前記処理回路に出力する過程と、前記処理回路の各々が、自身の制御内容を記憶し、前記前記セレクタから出力された前記アドレスで指定される前記制御内容を読み出す過程と、を有する特徴とするプログラマブルデバイスの制御方法である。
以上説明したように、本発明によれば、処理回路と制御回路とが1対1対応である従来の構成方法と比較して、処理回路の利用効率が高いプログラマブルデバイスおよびその制御方法を提供することができる。
本発明の第1の実施形態におけるプログラマブルデバイス1の構成例を示すブロック図である。 本発明の第1の実施形態における制御回路20−1の構成例を示すブロック図である。 本発明の第1の実施形態における分岐条件テーブル及び制御内容テーブルの一例を示す図である。 本発明の第1の実施形態における第1の変形例を示す図である。 本発明の第1の実施形態における第2の変形例を示す図である。 本発明の第2の実施形態におけるプログラマブルデバイス1Aの構成例を示すブロック図である。 本発明の第2の実施形態における処理回路10A−1の構成例を示すブロック図である。 本発明の第2の実施形態における制御内容テーブルの一例を示す図である。 本発明の第2の実施形態における制御回路20A−1の構成例を示すブロック図である。 本発明の第2の実施形態における分岐条件テーブルの一例を示す図である。 プログラマブルデバイスの一般的な構成を示す図である。 従来の2段パイプラインを組んだ際の要素回路のパイプライン動作のタイミングチャートを示す図である。 従来の1つのパイプラインの処理回路で複数の処理を実現する方法を説明する図である。
以下に、実施形態におけるプログラマブルデバイスを、図面を用いて説明する。
(第1の実施形態)
以下、第1の実施形態におけるプログラマブルデバイス1について、図面を用いて説明する。図1は、本発明の第1の実施形態におけるプログラマブルデバイス1の構成例を示すブロック図である。図1に示すように、プログラマブルデバイス1は、M(Mは2以上の整数)個の処理回路10(処理回路10−1、処理回路10−2、…、処理回路10−M)、N(Nは2以上の整数)個の制御回路20(制御回路20−1、制御回路20−2、…、制御回路20−N)、M個の第1のセレクタ30(第1のセレクタ30−1、第1のセレクタ30−2、…、第1のセレクタ30−M)を備えている。
処理回路10は、第1のセレクタ30の各々から出力された制御信号に基づいてデータの演算、データの保持等を実行する回路である。処理回路10は、加算器、乗算器、論理演算等の各種演算器と演算用レジスタ、データメモリ、キャッシュメモリ等の記憶素子とを備えている。なお、制御信号は、処理回路10が実行する処理内容(以下、「制御内容」とする。)を示す。
第1のセレクタ30は、処理回路10と制御回路20との間に介挿されている。第1のセレクタ30の入力端子は、制御回路20−1、制御回路20−2、…、制御回路20−Nの各々に接続されている。また、第1のセレクタ30の出力端子は、処理回路10と1対1で接続されている。
第1のセレクタ30は、選択信号に基づいて、各制御回路20から出力される制御信号から1つの信号を選択する。第1のセレクタ30が使用する選択信号は、例えば処理回路10から出力される上記制御内容に対応した処理結果を示す信号である。そして、第1のセレクタ30は、選択した制御信号を処理回路10に出力する。これより、外部からの選択信号に応じて処理回路10に出力する制御信号を切り替えることで、制御回路20の制御対象とすべき処理回路10を変更できる。すなわち、パイプラインでの処理内容によって制御対象を変更できるようになる。
制御回路20は、処理回路10に対する制御内容を示した制御信号を第1のセレクタ30を介して処理回路10に出力する。図2は、制御回路20−1の構成例を示すブロック図である。なお、制御回路20−2、…、制御回路20−Nの構成は、図2に示す制御回路20−1の構成例と同様の構成を有している。
制御回路20−1は、プログラムカウンタ50、記憶素子60、分岐先判定部70、第2のセレクタ80を備えている。
プログラムカウンタ50は、不図示のレジスタ及びインクリメンタを備えている。プログラムカウンタ50は、第2のセレクタ80から記憶素子60の分岐先を示す値、すなわちプログラムカウンタ値(PC値)を取得すると、取得したプログラムカウンタ値をレジスタに設定する。そして、プログラムカウンタ50は、設定したプログラムカウンタ値を処理回路10の制御内容を読み出すためのアドレスとして記憶素子60に出力する。インクリメンタは、プログラムカウンタ50がプログラムカウンタ値を記憶素子60に出力する毎に、レジスタに設定されているプログラムカウンタ値に1を加算し、加算したプログラムカウンタ値を第2のセレクタ80に出力する。
記憶素子60には、分岐条件テーブル及び制御内容テーブルが記憶されている。図3(a)は、分岐条件テーブルの一例を示す図である。分岐条件テーブルは、処理回路10に出力する制御内容が記憶されている記憶素子60のアドレスを決定するために用いられるテーブルである。分岐条件テーブルには、複数の分岐先PC値と、その分岐先PC値の各々に対応する分岐条件とがアドレスに対応づけられ記憶されている。分岐条件は、分岐先判定部70へと入力される信号との比較を行う条件値であり、比較した結果、一致/不一致などの判定結果をもとに第2のセレクタ80へと制御信号を出力する。
図3(a)に示すように、分岐条件テーブルには、例えば、第1の分岐先PC値とその第1の分岐先PC値に対応する第1の分岐条件、第2の分岐先PC値とその第2の分岐先PC値に対応する第2の分岐条件等、a個の分岐先PC値と分岐条件との組み合わせがk個のアドレス毎に記憶されている。上述したように、分岐数をa分岐として、分岐先を示すデータをnビット、分岐条件を示すデータをxビットとすると、分岐条件と分岐先に関するデータは1アドレス当たり(n+x)×aビットのデータ容量になる。
図3(b)は、制御内容テーブルの一例を示す図である。制御内容テーブルは、全ての処理回路10の制御内容を決定するために用いられるテーブルである。制御内容テーブルには、処理回路10の各々に対する制御内容がアドレス毎に記憶されている。例えば、図3(b)に示すように、制御内容テーブルには、処理回路10−1、処理回路10−2、…、処理回路10−Mのそれぞれの処理回路に対する制御内容がk個のアドレス毎に記憶されている。上述したように、処理回路10毎に出力する制御信号のビット幅をmビットとすると、1アドレス当たり(m×M)ビットのデータ容量となる。
上述したように、最大分岐数をa分岐、分岐先を示すデータをnビット、分岐条件を示すデータをxビットとすると、分岐条件デーブルの1アドレス当たりのデータは、(n+x)×aビットになる。また、制御内容テーブルの1アドレス当たりのデータは、(m×M)ビットになる。よって、アドレスの最大値をkとした場合、本構成の記憶素子60の容量はk×((m×M)+((n+x)×a))ビットとなる。
制御回路20−1は、記憶素子60においてプログラムカウンタ値を取得すると、分岐条件テーブルを読み出す。制御回路20−1は、取得したプログラムカウンタ値をアドレスとして、そのアドレスに対応するa個の分岐先PC値及び分岐条件を分岐条件テーブルから抽出する。制御回路20−1は、抽出したa個の分岐先PC値を第2のセレクタ80に出力する。制御回路20−1は、抽出したa個の分岐条件を分岐先判定部70に出力する。また、制御回路20−1は、記憶素子60においてプログラムカウンタ値を取得すると、制御内容テーブルを読み出す。制御回路20−1は、取得したプログラムカウンタ値をアドレスとして、そのアドレスに対応するM個の処理回路の制御内容を制御内容テーブルから抽出する。制御回路20−1は、M個の処理回路、すなわち処理回路10の制御内容を制御信号として、第1のセレクタ30に出力する。
分岐先判定部70は、記憶素子60からa個の分岐条件を取得する。分岐先判定部70は、処理回路10から上記制御内容に対応した処理結果を取得する。分岐先判定部70は、取得した処理結果とa個の分岐条件とに基づいて第2のセレクタ80に選択信号を出力する。例えば、分岐先判定部70は、第1の分岐条件、第2の分岐条件、…、第aの分岐条件の各々と、取得した処理結果とを比較し、その処理結果が分岐条件を満足するか否かを判定する。分岐先判定部70は、処理結果が満足した分岐条件に対応する分岐先PC値を選ぶことを指示する選択信号を第2のセレクタ80に出力する。ただし、処理結果がどの分岐条件にも満足しない場合、分岐先判定部70は、プログラムカウンタ値に1を加算した値を選ぶことを指示する選択信号を第2のセレクタ80に出力する。
第2のセレクタ80は、データバスを介して記憶素子60に接続されている。第2のセレクタ80は、分岐先判定部70からの選択信号に基づいて、記憶素子60内のアドレスの分岐先PC値を選択する。第2のセレクタ80は、選択した分岐先PC値をプログラムカウンタ50に出力する。すなわち、第2のセレクタ80は、分岐先判定部70からの選択信号によって切換えられ適切なパスを選択する。
上述したように、プログラマブルデバイス1は、複数の処理回路10と複数の制御回路20と、その間を処理回路と同数の第1のセレクタ30で接続する構成であるプログラマブルデバイスである。制御回路20は、処理回路10各々に対する制御内容を記憶した記憶素子60と記憶素子60内のアドレスを指定するプログラムカウンタ50とを備える。第1のセレクタ30は、制御回路20の全ての制御信号を入力とし、そのうちの1つの制御信号を選択し、第1のセレクタ30での選択結果を処理回路10に出力する。これにより、多くの処理回路を必要としない処理に対しては、別の処理に対して処理回路と制御回路を使用することが可能となる。すなわち、記憶素子から出力される命令を制御信号として、任意にいずれかの処理回路へと出力できる。よって、処理回路の各々と制御回路とが配線された従来の構成方法と比較して、処理回路の利用効率が高いプログラマブルデバイスの構成方法を提供することができる。
また、本実施形態では、M個の処理回路がN個の制御回路全てに任意に接続できるため、処理回路の各々と制御回路とが固定的に配線された従来の構成方法と比較して、処理回路を削減することができる。よって、プログラマブルデバイス回路の低面積化、低電力化も可能となる。
以上述べた実施形態は全て本発明の実施形態を例示的に示すものであって限定的に示すものではなく、本発明は他の種々の変形態様および変更態様で実施することができる。
図4は、本発明の第1の実施形態における第1の変形例である。上述した実施形態では、第1のセレクタ30の選択信号に関して限定されないが、例えば、図4に示すように、制御回路20の各々と処理回路10の各々との対応付けを予め外部の選択設定レジスタ300に記憶されており、選択設定レジスタ300は、その対応付けに応じて選択信号を第1のセレクタ30の各々に送信することで、第1のセレクタ30の各々を切り替えるようにしてもよい。また、第1のセレクタ30は、外部から選択信号を受信するようにしてもよい。
図5は、本発明の第1の実施形態における第2の変形例である。上述した実施形態では、第1のセレクタ30の選択信号に関して限定されないが、図5に示すように、処理回路10の各々からの出力に応じて、第1のセレクタ30の各々を切り替えるような構成にしてもよい。このような構成にすることにより、処理回路10からの出力結果に応じて、動的に処理回路10を制御可能となる。
上述の実施形態では、制御回路20において、プログラムカウンタ50の分岐が行えるように分岐先判定部70を含む構成として説明したが、これに限定されない。例えば、各制御回路20は分岐先判定部70を持たず、プログラムカウンタ50のみで、アドレスを順番に読み出して制御するようにしても良い。
また、上述の実施形態では、制御回路20の分岐先判定部70に処理結果を入力したが、これに限定されない。例えば、制御回路20の外部に固定的な設定レジスタを用意しておき、その設定レジスタから制御回路20に値を出力するようにしてもよい。また、処理回路10の処理結果及び設定レジスタから出力される値の中から選択できるようにしてもよい。
また、上述の実施形態では、処理回路10の各々に出力する制御信号のビット幅をmビットと一定として説明したが、すべての処理回路10への制御信号のビット幅を同一にする必要はない。よって、処理回路10の演算器の種類や規模により、制御信号線のビット幅は異なるようにしてもよい。なおその場合は、記憶素子60の容量も変わる。
(第2の実施形態)
以下、第2の実施形態におけるプログラマブルデバイス1Aについて、図面を用いて説明する。本実施形態のプログラマブルデバイス1Aは、第1の実施形態において制御回路20の記憶素子60に記憶している制御内容テーブルを、各処理回路へと分散させる。なお、第1の実施形態と同じ構成には、同じ符号を付してその説明を省略する。
図6は、本発明の第2の実施形態におけるプログラマブルデバイス1Aの構成例を示すブロック図である。図6に示すように、プログラマブルデバイス1Aは、M(Mは2以上の整数)個の処理回路10A(処理回路10A−1、処理回路10A−2、…、処理回路10A−M)、N(Nは2以上の整数)個の制御回路20A(制御回路20A−1、制御回路20A−2、…、制御回路20A−N)、M個の第1のセレクタ30A(第1のセレクタ30A−1、第1のセレクタ30A−2、…、第1のセレクタ30A−M)を備えている。
処理回路10Aは、第1のセレクタ30Aの各々から出力された制御信号に基づいてデータの演算、データの保持等を実行する回路である。図7は、処理回路10A−1の構成例を示すブロック図である。なお、処理回路10A−2、…、処理回路10A−Mの構成は、図7に示す処理回路10A−1の構成例と同様の構成を有している。
処理回路10A−1は、記憶素子11A及び制御部12Aを備えている。
記憶素子11Aには、制御内容テーブルが記憶されている。図8は、制御内容テーブルの一例を示す図である。制御内容テーブルには、自回路の制御内容に対する制御内容がアドレス毎に記憶されている。例えば、図8に示すように、制御内容テーブルには、処理回路10A−1の処理回路に対する制御内容がk個のアドレス毎に記憶されている。制御内容テーブルの1アドレス当たりのデータは、mビットとすると、アドレスの最大値をkとした場合、本構成の記憶素子11Aの容量はk×mビットとなる。
処理回路10A−1は、第1のセレクタ30A−1を介して制御回路20A−1から制御信号を取得すると、その制御信号が示すアドレスに対応する制御内容を抽出する。そして、処理回路10A−1は、抽出した制御内容を制御部12Aに出力する。
制御部12Aは、記憶素子11Aから制御信号を受信すると、その制御信号に基づいて、演算等の処理を実行する。
第1のセレクタ30Aは、処理回路10Aと制御回路20Aとの間に介挿されている。第1のセレクタ30Aの入力端子は、制御回路20A−1、制御回路20A−2、…、制御回路20A−Mの各々に接続されている。また、第1のセレクタ30Aの出力端子は、処理回路10Aと1対1で接続されている。
第1のセレクタ30Aは、外部からの選択信号に基づいて、各制御回路20Aから出力されるアドレスを示す制御信号から1つの信号を選択する。そして、第1のセレクタ30Aは、選択した制御信号を処理回路10Aに出力する。これより、外部からの選択信号に応じて処理回路10Aに出力する制御信号を切り替えることで、制御回路20Aの制御対象とすべき処理回路10Aを変更できる。すなわち、パイプラインでの処理内容によって制御対象を変更できるようになる。
制御回路20Aは、記憶素子11Aのアドレスを示す制御信号を第1のセレクタ30を介して処理回路10Aに出力する。図9は、制御回路20A−1の構成例を示すブロック図である。なお、制御回路20A−2、…、制御回路20A−Nの構成は、図9に示す制御回路20A−1の構成例と同様の構成を有している。
制御回路20A−1は、プログラムカウンタ50、記憶素子60A、分岐先判定部70、第2のセレクタ80Aを備えている。
記憶素子60Aには、分岐条件テーブルが記憶されている。図10は、分岐条件テーブルの一例を示す図である。分岐条件テーブルには、複数の分岐先PC値と、その分岐先PC値の各々に対応する分岐条件とが記憶素子11Aのアドレスに対応づけられ記憶されている。例えば、図10に示すように、分岐条件テーブルには、第1の分岐先PC値とその第1の分岐先PC値に対応する第1の分岐条件、第2の分岐先PC値とその第2の分岐先PC値に対応する第2の分岐条件等、a個の分岐先PC値と分岐条件との組み合わせがk個のアドレス毎に記憶されている。上述したように、分岐数をa分岐として、分岐先を示すデータをnビット、分岐条件を示すデータをxビットとすると、分岐条件と分岐先に関するデータは1アドレス当たり(n+x)×aビットのデータ容量になる。
制御回路20A−1は、記憶素子60Aにおいてプログラムカウンタ値を取得すると、分岐条件テーブルを読み出す。制御回路20A−1は、取得したプログラムカウンタ値をアドレスとして、そのアドレスに対応するa個の分岐先PC値及び分岐条件を分岐条件テーブルから抽出する。制御回路20A−1は、抽出したa個の分岐先PC値を第2のセレクタ80Aに出力する。制御回路20A−1は、抽出したa個の分岐条件を分岐先判定部70に出力する。
分岐先判定部70Aは、記憶素子60からa個の分岐条件を取得する。分岐先判定部70Aは、処理回路10Aから処理回路10の処理結果を取得する。分岐先判定部70Aは、取得した処理結果とa個の分岐条件とに基づいて第2のセレクタ80Aに選択信号を出力する。例えば、分岐先判定部70Aは、第1の分岐条件、第2の分岐条件、…、第aの分岐条件の各々と、取得した処理結果とを比較し、その処理結果が分岐条件を満足するか否かを判定する。分岐先判定部70Aは、処理結果が満足した分岐条件に対応する分岐先PC値を選ぶことを指示する選択信号を第2のセレクタ80Aに出力する。ただし、処理結果がどの分岐条件にも満足しない場合、分岐先判定部70Aは、プログラムカウンタ値に1を加算した値を選ぶことを指示する選択信号を第2のセレクタ80Aに出力する。
第2のセレクタ80Aは、データバスを介して記憶素子60に接続されている。第2のセレクタ80は、分岐先判定部70Aからの選択信号に基づいて、記憶素子60A内のアドレスの分岐先PC値を選択する。第2のセレクタ80Aは、選択した分岐先PC値をアドレスとしてプログラムカウンタ50及び第1のセレクタ30に出力する。すなわち、第2のセレクタ80は、分岐先判定部70からの選択信号によって切換えられ適切なパスを選択する。
上述したように、プログラマブルデバイス1Aは、複数の処理回路10Aと複数の制御回路20Aと、その間を処理回路Aと同数の第1のセレクタ30で接続する構成であるプログラマブルデバイスである。制御回路20Aは、記憶素子60内のアドレスを指定するプログラムカウンタ50を備える。第1のセレクタ30は、制御回路20の全ての制御信号を入力とし、そのうちの1つの制御信号を選択し、第1のセレクタ30での選択結果を処理回路10に出力する。処理回路は、処理回路10各々に対する制御内容を全て記憶した記憶素子11Aを備え、その制御信号に対応する制御内容を実行する。これにより、多くの処理回路を必要としない処理に対しては、別の処理に対して処理回路と制御回路を使用することが可能となる。すなわち、記憶素子から出力される命令を制御信号として、任意にいずれかの処理回路へと出力できる。よって、処理回路の各々と制御回路とが固定的に配線された従来の構成方法と比較して、処理回路の利用効率が高いプログラマブルデバイスの構成方法を提供することができる。
また、本実施形態では、M個の処理回路がN個の制御回路全てに任意に接続できるため、処理回路の各々と制御回路とが固定的に配線された従来の構成方法と比較して、処理回路を削減することができる。よって、プログラマブルデバイス回路の低面積化、低電力化も可能となる。
また、第1の実施形態では、制御回路20の記憶素子60は、全ての処理回路10への制御内容を示すデータ、すなわち制御内容テーブルを記憶し、その制御内容を制御信号として第1のセレクタ30に出力する。そのため制御信号のビット幅は、制御回路20の個数Mに比例して大きくなり、第1のセレクタ30の規模も増加してしまう。本発明の第2の実施形態では、制御内容テーブルを記憶素子60Aではなく、処理回路10Aに記憶させた。そして、各制御回路の記憶素子60Aからの制御信号を、制御内容を示すデータではなく、各制御回路内のプログラムカウント値とした。プログラムカウント値は制御回路20Aの個数によらず、一定のビット幅であり、その幅も小さい。これより、制御回路20Aからの制御信号の出力のビット幅がnビットになる。よって、各第1のセレクタ30の規模が第1の実施形態の第1のセレクタ30より小型にすることができる。また、全体の記憶素子の容量は変わらずに制御信号のビット幅と第1のセレクタの規模を小さくすることができるので、全体の回路規模を削減することができる。
以上述べた実施形態は全て本発明の実施形態を例示的に示すものであって限定的に示すものではなく、本発明は他の種々の変形態様および変更態様で実施することができる。
上述した実施形態では、第1のセレクタ30の選択信号に関して限定されないが、例えば、図4に示すように、制御回路20Aの各々と処理回路10Aの各々との対応付けを予め外部の選択設定レジスタ300に記憶されており、選択設定レジスタ300は、その対応付けに応じて選択信号を第1のセレクタ30の各々に送信することで、第1のセレクタ30の各々を切り替えるようにしてもよい。また、第1のセレクタ30は、外部から選択信号を受信するようにしてもよい。
また、上述した実施形態では、第1のセレクタ30の選択信号に関して限定されないが、処理回路10の各々からの出力に応じて、第1のセレクタ30の各々を切り替えるような構成にしてもよい。このような構成にすることにより、処理回路10Aからの出力結果に応じて、動的に処理回路10Aを制御可能となる。
上述の実施形態では、制御回路20Aにおいて、プログラムカウンタ50の分岐が行えるように分岐先判定部70Aを含む構成として説明したが、これに限定されない。例えば、各制御回路20Aは分岐先判定部70Aを持たず、プログラムカウンタ50のみで、アドレスを順番に読み出して制御するようにしてもよい。
また、上述の実施形態では、制御回路20Aの分岐先判定部70Aに処理結果を入力したが、これに限定されない。例えば、制御回路20Aの外部に固定的な設定レジスタを用意しておき、その設定レジスタから制御回路20Aに値を出力するようにしてもよい。また、処理回路10Aの処理結果及び設定レジスタから出力される値の中から選択できるようにしてもよい。
また、上述の実施形態では、処理回路10Aの各々に出力する制御信号のビット幅をn ビットと一定として説明したが、すべての処理回路10への制御信号のビット幅を同一にする必要はない。よって、処理回路10の演算器の種類や規模により、制御信号線のビット幅は異なるようにしてもよい。なおその場合は、記憶素子60Aの容量も変わる。
また、上述の実施形態では、第1のセレクタ30は、処理回路と同数である構成としたが、これに限定されてない。例えば、第1のセレクタ30は、処理回路と同数以上であってもよい。
1、1A、100 プログラマブルデバイス
10、10A、110 処理回路
20、20A、120 制御回路
30、30A 第1のセレクタ
50 プログラムカウンタ
11A、60、60A 記憶素子
12A 制御部
70 分岐先判定部
80、80A 第2のセレクタ
200−1、200−2 要素回路
300 選択設定レジスタ

Claims (6)

  1. 複数の処理回路と、
    前記複数の処理回路の制御内容を読み出すためのアドレスを出力するプログラムカウンタと、前記処理回路の各々に対する制御内容が記憶された記憶素子とを備え、前記プログラムカウンタから出力された前記アドレスで指定される前記制御内容を読み出す複数の制御回路と、
    前記処理回路と同数以上であり、前記処理回路と前記制御回路との間に介挿されたセレクタと、
    を有し、
    前記制御回路は、前記記憶素子から読み出した前記制御内容を制御信号として前記セレクタに出力し、
    前記セレクタは、前記複数の制御回路から出力される全ての制御信号を入力とし、前記全ての制御信号のうちの1つの制御信号を選択し、その選択結果を前記処理回路に出力する
    ことを特徴とするプログラマブルデバイス。
  2. 複数の処理回路と、
    前記複数の処理回路の制御内容を読み出すためのアドレスを出力するプログラムカウンタを備え、前記プログラムカウンタで生成された前記アドレスを制御信号として出力する複数の制御回路と、
    前記複数の制御回路から出力される全ての制御信号を入力とし、前記全ての制御信号のうちの1つの制御信号を選択し、その選択結果を前記処理回路に出力する、前記処理回路と同数以上であり前記処理回路と前記制御回路との間に介挿されたセレクタと、
    を有し、
    前記処理回路の各々は、
    自身の制御内容を記憶し、前記セレクタから出力された前記アドレスで指定される前記制御内容を読み出す
    ことを特徴とするプログラマブルデバイス。
  3. 前記セレクタの選択信号は、前記処理回路の出力結果であることを特徴とする請求項1又は請求項2に記載のプログラマブルデバイス。
  4. 前記制御回路の各々と前記処理回路の各々との対応付けが記憶されているレジスタをさらに有し、
    前記レジスタは、その対応付けに応じて選択信号を前記セレクタに送信することを特徴とする請求項1又は請求項2に記載のプログラマブルデバイス。
  5. 複数の処理回路と複数の制御回路と、前記処理回路と同数以上であり、前記処理回路と前記制御回路との間に介挿されたセレクタとを有するプログラマブルデバイスの制御方法であって、
    前記制御回路が、前記処理回路の各々に対する制御内容が記憶された記憶素子から、複数の処理回路の制御内容を読み出すためのアドレスで指定される前記制御内容を読み出し、読み出した前記制御内容を制御信号として前記セレクタに出力する過程と、
    前記セレクタが、前記複数の制御回路から出力される全ての制御信号を入力とし、前記全ての制御信号のうちの1つの制御信号を選択し、その選択結果を前記処理回路に出力する過程と
    を有することを特徴とするプログラマブルデバイスの制御方法。
  6. 複数の処理回路と複数の制御回路と、前記処理回路と同数以上であり、前記処理回路と前記制御回路との間に介挿されたセレクタとを有するプログラマブルデバイスの制御方法であって、
    前記制御回路が、前記複数の処理回路の制御内容を読み出すためのアドレスを制御信号として前記セレクタに出力する過程と、
    前記セレクタの各々が、前記複数の制御回路から出力される全ての制御信号を入力とし、前記全ての制御信号のうちの1つの制御信号を選択し、その選択結果を前記処理回路に出力する過程と、
    前記処理回路の各々が、自身の制御内容を記憶し、前記前記セレクタから出力された前記アドレスで指定される前記制御内容を読み出す過程と、
    を有する特徴とするプログラマブルデバイスの制御方法。
JP2014128054A 2014-06-23 2014-06-23 プログラマブルデバイスおよびその制御方法 Active JP6259361B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014128054A JP6259361B2 (ja) 2014-06-23 2014-06-23 プログラマブルデバイスおよびその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014128054A JP6259361B2 (ja) 2014-06-23 2014-06-23 プログラマブルデバイスおよびその制御方法

Publications (2)

Publication Number Publication Date
JP2016009907A true JP2016009907A (ja) 2016-01-18
JP6259361B2 JP6259361B2 (ja) 2018-01-10

Family

ID=55227222

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014128054A Active JP6259361B2 (ja) 2014-06-23 2014-06-23 プログラマブルデバイスおよびその制御方法

Country Status (1)

Country Link
JP (1) JP6259361B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2021145132A1 (ja) * 2020-01-14 2021-07-22

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01243123A (ja) * 1988-03-24 1989-09-27 Nec Corp 情報処理装置
JPH0651984A (ja) * 1992-06-05 1994-02-25 Hitachi Ltd マイクロプロセッサ
JP2005267615A (ja) * 2004-02-16 2005-09-29 Matsushita Electric Ind Co Ltd 並列演算プロセッサ
JP2006018539A (ja) * 2004-06-30 2006-01-19 Fujitsu Ltd 時分割多重処理可能なリコンフィギュラブル回路
JP2008191856A (ja) * 2007-02-02 2008-08-21 Nec Computertechno Ltd 情報処理システム
WO2010122746A1 (ja) * 2009-04-22 2010-10-28 パナソニック株式会社 情報処理装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01243123A (ja) * 1988-03-24 1989-09-27 Nec Corp 情報処理装置
JPH0651984A (ja) * 1992-06-05 1994-02-25 Hitachi Ltd マイクロプロセッサ
JP2005267615A (ja) * 2004-02-16 2005-09-29 Matsushita Electric Ind Co Ltd 並列演算プロセッサ
JP2006018539A (ja) * 2004-06-30 2006-01-19 Fujitsu Ltd 時分割多重処理可能なリコンフィギュラブル回路
JP2008191856A (ja) * 2007-02-02 2008-08-21 Nec Computertechno Ltd 情報処理システム
WO2010122746A1 (ja) * 2009-04-22 2010-10-28 パナソニック株式会社 情報処理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2021145132A1 (ja) * 2020-01-14 2021-07-22
WO2021145132A1 (ja) * 2020-01-14 2021-07-22 Yoda-S株式会社 演算装置
JP7265806B2 (ja) 2020-01-14 2023-04-27 Yoda-S株式会社 演算装置

Also Published As

Publication number Publication date
JP6259361B2 (ja) 2018-01-10

Similar Documents

Publication Publication Date Title
CN107548488B (zh) 具有dsp引擎及增强上下文切换能力的中央处理单元
JP4485272B2 (ja) 半導体装置
JP2007207136A (ja) データ処理装置、データ処理方法、及びデータ処理プログラム
US20180032657A1 (en) Control program and control method for programmable logic device and information processing apparatus including the same
JP2006040254A (ja) リコンフィギュラブル回路および処理装置
US20220129247A1 (en) Semiconductor device and method of controlling the semiconductor device
JP6259361B2 (ja) プログラマブルデバイスおよびその制御方法
JP2006011825A (ja) 再構成可能演算装置および半導体装置
US8041925B2 (en) Switch coupled function blocks with additional direct coupling and internal data passing from input to output to facilitate more switched inputs to second block
JP2006302132A (ja) 信号処理装置及び再構成可能論理回路装置及び再構成可能順序回路
JP2011034190A (ja) データ処理装置
JP3723775B2 (ja) データ処理装置
US7814296B2 (en) Arithmetic units responsive to common control signal to generate signals to selectors for selecting instructions from among respective program memories for SIMD / MIMD processing control
JP4184224B2 (ja) 並列実行プロセッサ、命令割当方法
US20070220236A1 (en) Reconfigurable computing device
JP2006018411A (ja) プロセッサ
WO2014103235A1 (ja) 演算装置及び演算方法
US9748954B2 (en) Calculation device and calculation method
JP4646840B2 (ja) 回路構成を動的に切り替える並列処理装置
TWI810262B (zh) 用於計算機器的可變位元寬資料格式的單打包和拆包網路及方法
US8719615B2 (en) Semiconductor device
RU2710890C1 (ru) Вычислительная система для научно-технических расчетов
JP3989397B2 (ja) 集積回路装置およびその装置に対するデータ設定装置
JP2001209575A (ja) 信号処理装置
JP5701930B2 (ja) 半導体装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170829

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171208

R150 Certificate of patent or registration of utility model

Ref document number: 6259361

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150