JP7433931B2 - 情報処理装置及びその制御方法及びプログラム - Google Patents

情報処理装置及びその制御方法及びプログラム Download PDF

Info

Publication number
JP7433931B2
JP7433931B2 JP2020011044A JP2020011044A JP7433931B2 JP 7433931 B2 JP7433931 B2 JP 7433931B2 JP 2020011044 A JP2020011044 A JP 2020011044A JP 2020011044 A JP2020011044 A JP 2020011044A JP 7433931 B2 JP7433931 B2 JP 7433931B2
Authority
JP
Japan
Prior art keywords
circuit
delay
alu
unit
timing
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.)
Active
Application number
JP2020011044A
Other languages
English (en)
Other versions
JP2021118459A (ja
JP2021118459A5 (ja
Inventor
和馬 坂東
洋平 堀川
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2020011044A priority Critical patent/JP7433931B2/ja
Priority to US17/157,605 priority patent/US11201622B2/en
Publication of JP2021118459A publication Critical patent/JP2021118459A/ja
Publication of JP2021118459A5 publication Critical patent/JP2021118459A5/ja
Application granted granted Critical
Publication of JP7433931B2 publication Critical patent/JP7433931B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0175Coupling arrangements; Interface arrangements
    • H03K19/017581Coupling arrangements; Interface arrangements programmable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/10Indexing scheme relating to groups G06F5/10 - G06F5/14
    • G06F2205/104Delay lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Logic Circuits (AREA)
  • Power Sources (AREA)
  • Advance Control (AREA)
  • Semiconductor Integrated Circuits (AREA)

Description

本発明は、情報処理装置及びその制御方法及びプログラムに関するものである。
回路の内部機能を自由に構成することができるFPGA(Field Programmable Gate Array)またはPLD(Programmable Logic Device)等のプログラマブル回路が知られている。このようなプログラマブル回路は、例えば内部に複数持つ要素回路であるALU(Arithmetic and Logic Unit)を使用して所望の処理回路を実現することができる。また、このようなプログラマブル回路では、ALUの機能を規定するコンフィギュレーション情報を書き換えることで処理回路を切り替えることが可能となる(特許文献1)。
また、プログラマブル回路は、その自由度を確保するため、1つの処理回路のみに特化した専用回路であるASIC(Application Specific Integrated Circuit)に比べて回路規模が大きく、消費電力が大きい。そのため、演算に使用されないALUに対して、供給される電源電圧を下げる技術もある(特許文献2)。
特開2006-25379号公報 特開2006-244519号公報
しかしながら、コンフィギュレーション情報を書き換える際には、データの破壊を防ぐために、処理回路が入力信号を演算完了した後に書き換える必要がある。そのため、演算完了するまで入力データを停止する必要があり、スループットを向上させることが困難である。特許文献2のように、処理回路から演算結果を全て出力してから電源電圧を下げる構成では、演算結果を出力し終える前に演算が完了しているALU単位での消費電力削減を行うことが困難である。
本発明は上記課題に鑑みて成されたものであり、これまでよりもプログラマブル回路のスループットを向上させつつ、その消費電力を抑制する技術を提供しようとするものである。
この課題を解決するため、例えば本発明の情報処理装置は以下の構成を備える。すなわち、
複数の、2入力1出力のALU(Arithmetic and Logic Unit)を有するプログラマブル回路と、
設定されたタイミングで設定された回路情報に従い、前記プログラマブル回路を更新する更新部とを有する情報処理装置であって、
前記プログラマブル回路における前記複数のALUのそれぞれは、
設定された種類の演算を2つのデータに対して行い、前記演算の結果を出力する演算部と、
入力された2つのデータを、独立して設定された遅延量に従ってそれぞれ遅延し、前記遅延された2つのデータを前記演算部に供給する遅延部と、
外部から設定された情報に従い、前記遅延部に対する遅延量と前記演算部に対する演算を行うタイミングとを制御する制御部を有し、
前記更新部は、
前記プログラマブル回路における着目ALUが第1の処理回路として処理すべき最終データを入力したとき、前記遅延部が有する複数の遅延素子それぞれに対して、それぞれに応じたクロックゲーティングの開始タイミングを設定する
ことを特徴とする。
本発明によればプログラマブル回路のスループットを向上させつつ、その消費電力を抑制することが可能になる。
第1の実施形態における信号処理装置を示すブロック図。 第1の実施形態における信号処理装置の動作を示すフローチャート。 第1の実施形態におけるALUの構成を示すブロック図。 第1の実施形態におけるクロックゲート制御部の構成を示すブロック図。 プログラマブル回路のALUの遷移図。 図5Aのプログラマブル回路のタイミングチャート。 第1の実施形態におけるプログラマブル回路のALUの遷移図。 図6Aのプログラマブル回路のタイミングチャート。 第3の実施形態におけるALUの構成を示すブロック図。 第4の実施形態におけるALUの構成を示すブロック図。 パルス生成回路をALUで構成した場合の具体的なブロック図。 第4の実施形態におけるプログラマブル回路のタイミングチャート。 第4の実施形態における遅延調整部内の遅延部の構成を示すブロック図。 第2の実施形態におけるALUの構成を示すブロック図。 第2の実施形態におけるプログラマブル回路のタイミングチャート。 第4の実施形態におけるプログラマブル回路のタイミングチャート。
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
[第1の実施形態]
図1は、第1の実施形態にかかわる情報処理装置のブロック構成図である。この装置は、装置全体の制御を司るCPU107、データ記憶装置106a,106b、信号処理装置100、外部記憶装置110を有する。なお、本実施形態の情報処理装置は、デジタルカメラに代表される撮像装置に実装されるものとして説明する。撮像装置には、様々なハードウェアが設けられているが、それらについては本実施形態の主眼ではないので、図1では実施形態に関する部分のみを示していると理解されたい。
信号処理装置100は、プログラマブル回路部101、コンフィギュレーション制御部103、回路情報記憶部113、タイミング制御部104、データフロー制御部108から構成される。
プログラマブル回路部101はFPGA又はPLD等で構成され、データ記憶部106bに保持されている処理データを被処理データとして入力し、設定された信号処理を実行する。そして、プログラマブル回路部101は、コンフィギュレーション情報を保持する複数のデータ記憶部112、要素回路である複数のALU(Arithmetic and Logic Unit)102、及びデータ記憶部114を有する。データ記憶部112はコンフィギュレーション制御部103より渡されるコンフィギュレーション情報を保持するレジスタである。ALU102は、2入力1出力の論理演算器であり、データ記憶部112に保持されたコンフィギュレーション情報に基づいて複数の信号の中から2つの信号を選択し、この2つの信号に対して、例えば加算や減算などの所望の演算を行い、その結果を出力する。このALU102を組み合わせることで所望の処理回路を実現することが出来る。
回路情報記憶部113は、データ記憶部106aに保持されている回路情報(書き換えタイミングに関する情報も含まれる)を保持するSRAMに代表されるメモリである。後述のコンフィギュレーション制御部103は回路情報を複数回参照する。このため、回路路情報をあらかじめ信号処理装置100内の高速アクセス可能な回路情報記憶部113に保存しておく。これが、回路情報記憶部113がSRAMで構成される理由である。
コンフィギュレーション制御部103は、回路情報記憶部113に保持されている回路情報を読み出す。そして、コンフィギュレーション制御部103は、読み出した回路情報をデコードして得た情報を、コンフィギュレーション情報として、所望のデータ記憶部112に転送し、設定する。また、コンフィギュレーション制御部103は、後述のタイミング制御部104において、後述の書き換え信号105を生成するタイミングを規定する。また、コンフィギュレーション制御部103は、後述のデータフロー制御部108に、入力処理データのフロー制御に必要な制御情報を設定する。
タイミング制御部104は、コンフィギュレーション情報制御部103の制御下にて、後述の書き換え信号105を任意のタイミングでパルス生成し、入力される被処理データに同期して伝搬させる。
書き換え信号105は、複数のALU102のコンフィギュレーション情報を更新するタイミングを知らせるロード信号であり、プログラマブル回路部101内にて伝搬していく。
書き換え信号105を生成するタイミングは、所望の処理回路で処理するデータの最終処理タイミングで発行することが望ましい。処理するデータの最終処理タイミングで発行することで、各ALUがそれぞれ所望のデータ数分処理を完了した後に、コンフィギュレーション情報を更新することができる。また、書き換え信号は処理するデータの最初のタイミングで発行してもよい。書き換え信号をデータの最終処理タイミングで発行する場合、一番目の処理回路を実行する前に、全てのALUに対してコンフィギュレーション情報を更新する必要がある。書き換え信号を処理するデータの最初のタイミングで発行する場合、更新されるタイミングで1サイクルのデータ停止期間が必要となるが、前述の更新動作を省略することができる。
データフロー制御部108は、プログラマブル回路部101に入出力される処理データを制御する。また、データフロー制御部108は、コンフィギュレーション制御部103から渡される制御情報に基づいて、入力を制御する動作を行う。
データ記憶部114は、プログラマブル回路部101内での、演算の結果を一時的に保持するためのバッファメモリであり、高速アクセスのためにSRAMで構成される。このデータ記憶部114は、例えば、シェーディング補正を行うための1ライン分の補正値や、フィルタ処理を行うためのラインバッファの役割を果たす。
データ記憶部106aは、本実施形態の信号処理装置100で使用する回路情報を記憶する一時記憶手段であり、DRAMに代表されるメモリで構成される。また、データ記憶部106bは、本実施形態の信号処理装置100で使用する処理データを記憶する一時記憶手段であり、DRAMに代表されるメモリで構成される。また後述のCPU107のwork領域を提供する。
CPU107は、内部のROMに格納されたプログラムに従って演算処理及び制御処理を実行するプロセッサ等の制御部であり、本装置全体の制御を司る。外部記憶部110は、CF(コンパクトフラッシュ(登録商標))やSDカード等のデータを記録することが出来るデータ保持部である。
次に、信号処理装置100におけるALU102の内部構成を説明する。信号処理装置100内の多数のALU102は、いずれも同じ構成である。図3は、その中の1つのALU102の構成を示している。
ALU102は、大きく分けると、入力選択部301、遅延調整部302、演算部303、クロックゲート制御部316、及び、書き換え信号遅延部325により構成される。2入力1出力の算術演算回路として扱うが、各入力は独立した遅延量調整を可能として、内部の演算器の直前で選択された入力信号の遅延がそろうように構成している。
入力選択部301は、複数の信号304から、ALU102で使用する2つの信号を選択する。複数の信号304は、例えばデータ記憶部106bから入力される処理データや、複数存在する他のALU102の出力信号の内の1つを選択することができる。選択された信号は、それぞれA側入力データA_IN、B側入力データB_INとして出力される。具体的には、A側入力セレクタ305aは、複数の入力信号から、A側入力データ選択レジスタAinSel306aの設定値に基づいて選択した信号を、A_INとして遅延調整部302に出力する。B側入力セレクタ305bは、複数の入力信号から、B側入力データ選択レジスタBinSel306bの設定値に基づいて選択した信号を、B_INとして遅延調整部302に出力する。
ALU102内に存在する複数のデータ記憶部306a、306b、309a、309b、312それぞれは、信号を選択するセレクタの設定値を保持するレジスタで構成される。これら複数のレジスタに設定される設定値は、データ記憶部112に保持されたコンフィギュレーション情報の一部である。
入力データを選択するための設定値を保持するデータ記憶部306a、306bは、それぞれのデータ記憶部306a、306bに対応したセレクタ305a、305bが出力した信号に同期して伝搬されている書き換え信号105を参照する。そして、データ記憶部306a、306bは、それら書き換え信号105がHighの場合、自身に保持された設定値をロード(更新)する。例えばA側入力データ選択レジスタ306aは、信号A_INに同期して伝搬されている書き換え信号307aを参照し、307aがHighの時、データ記憶部112に保持された設定値318aを設定する。このように、書き換え信号を入力信号に同期して伝搬することで、複数のレジスタそれぞれにおける最終処理タイミングで設定値を更新することが可能となる。
遅延調整部302は、入力選択部301によって選択された入力信号A_INとB_INを入力し、それらの出力するタイミングを調整(遅延調整)する。このため、遅延調整部302は、多段の遅延部308a、308bを持ち、シフトレジスタを構成する事で遅延調整を実現することが出来る。図3では例として5段分の遅延量調整が可能な構成を示しているが、遅延調整可能な段数はこれに限らない。A側遅延選択レジスタ309aを設定することで、遅延調整部302は、遅延部308aによる所望の段数で遅延させた入力信号A_INを、後段の演算部303に出力する。同様に、A側遅延選択レジスタ309bを設定することで、遅延調整部302は、遅延部308bによる所望の段数で遅延させた入力信号B_INを、後段の演算部303に出力する。
演算部303は、遅延調整された2つの入力信号を用いて、設定された演算を行う。図に示している演算器は本実施形態の一例であり、演算器の種類は特に制限はない。例えばAND,OR等の論理演算器や、比較演算器などを搭載してもよい。また、演算器の後にビットシフトする機構を設けてもよい。演算結果選択セレクタ311は、演算結果選択レジスタ312の設定値に基づいて演算結果を選択し、ALU102の出力として後段に出力する。演算結果選択セレクタ311は、後述の書き換え信号遅延部325で遅延調整を行った書き換え信号105が演算結果選択セレクタ311に到達したタイミングで次の設定値に更新される。図3ではA側の書き換え信号322aを使用しているが、322bと選択できる構成にしてもよい。
書き換え信号遅延部325は、入力選択部301から出力された書き換え信号307a、307bを遅延する。書き換え信号307a、307bの遅延量は、遅延調整部302で設定する遅延量と等しくするため、遅延選択レジスタ309a、309bの設定値が参照される。
この結果、書き換え信号が入力されたとき、その直前に入力されたデータに対して、1つ前の書き換え信号で定義された演算処理を演算部303が実行できるようになる。
クロックゲート制御部316は、遅延調整部302、演算部303のクロックゲーティング(クロックの停止)を行う。クロックゲート制御部316は、複数のクロックゲート部3171a~3175a、3171b~3175b、3176、クロックイネーブル設定レジスタ320を持つ。
本実施形態におけるプログラマブル回路101は、複数のALU102を用いて所望の処理を実現する。目的とする処理を実現するために使用されないALUのクロックゲーティングを行うことで、プログラマブル回路101の消費電力を削減することが可能となる。クロックゲート制御部316は、ALU102に対してクロックゲートのイネーブル信号を、書き換え信号105がクロックイネーブル設定レジスタ320に到達したタイミングで更新し、各クロックゲート部3171a,3171b,…,3175a,3175bに遅延して伝搬させる。書き換え信号105は処理するデータの最終タイミングに同期して伝搬されるため、各遅延部単位でデータを出力したタイミングでそれぞれクロックゲーティングを行うことが可能となる。図3ではA側の書き換え信号307aを使用しているが、307bと選択できる構成にしてもよい。
図4(a)に、実施形態におけるクロックゲート部の構成を示す。図4(a)では、例としてクロックゲート部3172aを示している。図示の如く、2つのANDゲート401,402、及び、コンパレータ403で構成される。
図4(b)は同図(a)における各信号のタイミングチャートを示す。クロックゲート部3172aは、多段の遅延部308aの2段目の遅延部のクロックゲーティングを制御する。そのため、コンパレータ403が比較で参照する閾値には“2”が設定される。この閾値は、コンフィギュレーション制御部103により設定される。この結果、クロックイネーブルがHighかつA側の遅延調整量ADelaySelが2以上の時になってはじめてクロックが供給される。他のクロックゲート部も同じ構成であるが、コンパレータに設定される閾値がそれぞれに適した値を持つことになる。このような構成とすることで、遅延調整量に応じたクロックゲーティングが可能となる。
プログラマブル回路部101は、上述したALU102を複数組み合わせて所望の処理回路として機能する。プログラマブル回路部101を、パルス生成回路として機能させた例を図9に示す。図9は、ALU102を2個使用して作られたパルス生成回路である。参照符号900及び901は前記ALU102にコンフィギュレーション情報を設定して得た演算回路の例示である。ALU900は、カウンタ(積算回路)を実現しており、2入力のうちの1入力のみを使用している。入力信号902を固定値1とすることで、インクリメントするカウンタ構成を実現できる。一方、ALU901は比較器を構成し、ALU900のカウント値が比較値903と等価な時にHigh、異なる場合にLowとしてパルス信号905を出力する。このようにALUを組み合わせることで、パルス生成回路等の所望の回路を実現することが可能となる。
<プログラマブル回路処理例>
本実施形態では、イメージセンサー上の分割画素を用いた瞳分割方式によるデフォーカス量の取得から距離マップを形成する処理フローの一部を、プログラマブル回路101で実施する例を説明する。分割画素を持つイメージセンサーの構成や、視差画像に対応した距離マップの取得手法については、既知の技術を使用するものとする。
図2は、視差画像からデフォーカス量を検出して距離マップを作成する処理のフローチャートである。撮像面からの視差画素取得及び、距離マップ生成自体は従来の技術であり、本実施形態の本旨には影響しないため、その説明は割愛する。ここでは距離マップ取得のための演算処理の一部をプログラマブル回路101で実施する際の、回路の書き換え信号105の伝搬を例示する。視差画像は本実施形態では2分割画素とし、それぞれA像、B像と定義する。
S200にて、CPU107は、A像信号から輝度値(以下、Y値とする)を取得する。S201にて、CPU107は、B像信号からY値を取得する。
S202にて、CPU107は、S200とS201で得られたY値から、視差間の相関演算を行う。
S203にて、CPU107は、S202の相関演算で得た視差間の相対的な像ズレ量からデフォーカス量を推定する。
S204にて、CPU107は、レンズ収差による面内のデフォーカス量ムラを補正する。
本実施形態では、前記のS200~S204それぞれのステップにて、プログラマブル回路部101内のALU構成を切り替える。つまり、CPU107は、S200~S204それぞれにて、プログラマブル回路101に対して、それぞれに対応する回路情報200~204を設定する。回路情報200~204は、図1のデータ記憶部106a上にあらかじめ格納されている。CPU197は、プログラマブル回路部101の初期化時に、回路情報200~204を回路情報記憶部113に転送する。
コンフィギュレーション制御部103は、回路情報200をデコードして、図3の306a、306b等で示したような複数のレジスタ設定値を、各ALU102に渡す。プログラマブル回路部101の回路コンフィギュレーションに係るレジスタは、データ記憶部112のようなプライマリレジスタと、306a,306bのようなセカンダリレジスタのダブルバッファ構成を取る。コンフィギュレーション制御部103は、回路情報200に基づいてプライマリレジスタに渡した値を各ALU102に搭載したセカンダリレジスタに転送させる。そして、転送完了後に、コンフィギュレーション制御部103は、プライマリレジスタを次の回路情報に更新すべく、回路情報記憶部113に対して回路情報201の転送を要求する。
各ALU102内に存在するセカンダリレジスタが設定値を更新するタイミングは、各設定レジスタで設定したセレクタの出力信号に同期して伝搬されている書き換え信号が、各設定レジスタに到達したタイミングである。書き換え信号は、タイミング制御部108により任意のタイミングで生成され、プログラマブル回路部101の入力信号に同期して伝搬している。このようにすることで、それぞれのALU102における1つ目の回路設定における処理が終了した次のサイクルで、2つ目の回路設定における処理を開始することが可能となる。複数のALU102を伝搬し、最終段のALU102から出力された書き換え信号は、1つ目の回路設定における処理がすべて終了したことを知らせるパルス信号と等価である。そのため、コンフィギュレーション制御部103は、最終段のALU102から出力された書き換え信号を読み取り、プライマリレジスタに次の回路設定値を設定する。
上記書き換え信号を伝搬することによる効果を、図5A,5Bと図6A,6Bを参照して説明する。
図6Aは本実施形態の主旨である書き換え信号105を用いた場合の処理回路切り替えの様を示し、図6Bはそのタイミングチャートである。図5A、5Bは、図6A、6Bと比較するために、書き換え信号を用いない従来の場合の処理回路切り替えの様とそのタイミングチャートである。
図5Aは、1つのALU00が異なる処理回路へ遷移するシーケンスを示している。図示の処理回路1は、入力データIDATを2倍にするための加算回路ALU00で構成される様を示している。そして、同図の処理回路2は、ALU00以外のALUを用いて所望の処理回路を実現しているため、ALU00は演算を行わないことを示している。そして、同図の処理回路3は、入力データIDATと、ALU01の演算結果を加算する加算回路ALU00を示している。
入力データIDATとALU01の演算結果の加算するタイミングを調整するために、処理回路3ではB側の遅延調整量を5から2に変更する。処理回路1,2,3はそれぞれ10サイクル分の入力データを処理するものとする。図5Bは処理回路1,2,3のタイミングチャートを示している。
まず、タイミングt503にて、信号処理が開始される。タイミングt504は、処理回路1で処理すべき最終データの入力タイミングである。図5A,Bの場合、従来のように、全てのレジスタを一斉に切り替える。そのため、全てのALUで処理回路1の演算が完了するまで、入力データを停止する必要がある。タイミングt507から、全てのALUの処理回路1における処理が完了するタイミングt504までの期間、入力データを停止している。タイミングt504にて全てのレジスタに対して切り替え信号501が発行され、処理回路1の設定から処理回路2の設定に切り替わる。
タイミングt504からタイミングt505の期間では、処理回路2の処理が実行されるが、ALU00は処理を行わないため、クロックゲーティングされている。タイミングt505からタイミングt506の期間では、処理回路3の処理が実行される。
このように従来のシーケンスの場合、処理回路を切り替えるごとに、データの入力を停止する。このため、プログラマブル回路部101の他のALUが処理回路2として機能している期間でのALU00の低消費電力化はできても、肝心のスループットを向上させることはできない。
これに対して、本実施形態が適用する図6A,6Bの場合、回路設定の切り替えに、タイミング制御部104より生成された書き換え信号を使用する。以下、図6A,6Bを参照し、場合によっては図3のALU構成を参照して説明する。
詳細は以下で明らかにするが、本第1の実施形態においては、ALUのスループットを従来よりも高くするため、ALUを書き換えるタイミングは、そのALUデータが前回に設定した処理回路として機能している際の、演算すべき最終データを入力するタイミングとする。このため、プログラマブル回路部101内の着目しているALU00が「処理回路1」として最終データを入力するタイミングt604で、着目ALU00以外の他のALUに「処理回路2」として機能する書き換えを行う。
また、コンフィギュレーション制御部103は、このタイミングt604で、着目ALU00に対し、「処理回路1」として最後の演算結果のデータを出力する期間にて、用済みとなった遅延部308a、308bの遅延素子それぞれに対し、それぞれに応じたクロックゲーティングの開始タイミングを設定する。これにより、着目ALU00が処理回路として、その役割を終えるまでの消費電力を低くできる。
更に、コンフィギュレーション制御部103は、着目ALU以外の「処理回路2」として機能しているALUによる最終データを入力するタイミングt605、言い換えれば、着目ALU00が「処理回路3」として機能するタイミングで、ALU00の内部の遅延部308a、308bに、演算対象のデータが揃って格納されるように設定する。この際、ALU00の内部の遅延部308a、308bへの演算対象のデータの格納の開始するタイミング以前では、遅延部308a、308bの全てはクロックゲーティングが行われた状態となる。また、着目ALU00が「処理回路3」として機能する際に、遅延部308a、308b内の未利用となる幾つかの遅延素子(図6BではBDeley3~5)は、クロックゲーティングを継続する。この結果、着目ALU00が「処理回路1」→「処理回路3」と切り替わる間の消費電力を低くでき、且つ、従来よりも高いスループットを実現できる。以下、その具体例を説明する。
図6Bでは、書き換え信号をUpdate601bとして示している。Update601bは、処理回路1の最終データであるt604のタイミングで発行され、入力データIDATに同期して各ALUを伝搬する。そのため、B側の入力信号選択レジスタBinSelが処理回路2に書き換わるタイミングはタイミングt604である。B側の遅延調整量選択レジスタBDelaySelが書き換わるタイミングは5サイクル遅延したタイミングt611である。また、処理回路2から処理回路3に切り替わるタイミングは、ALU01の出力タイミングであるタイミングt612である。
B側遅延部の出力BDelay1~BDelay5はそれぞれタイミングt604から順次遅延したタイミングt607~t611で処理回路2に切り替わり、クロックゲーティングされる。このようにすることで、処理回路を切り替えるための停止期間が必要なくなり、スループットを向上させることが可能となる。また、処理回路2から処理回路3では、タイミングt611から順次クロックがオンになる。ただし、処理回路3ではB側の遅延調整量が2であり、BDelay3~5は処理回路3において使用されないため、クロックゲーティングされる。このように、演算に使用するALUであっても、遅延部単位でクロックゲーティングを行う。近年LSIは大規模化する傾向にあり、プログラマブル回路のALUの数も増加傾向にあるため、本実施系のようにALU102中の遅延部単位でクロックゲーティングを行うことで、消費電力の削減効果を高めることが可能となる。
以上説明したように、本実施形態によれば、書き換え信号をデータ信号に同期して伝搬させ、書き換え信号と、ALU内の遅延調整量に基づいてクロックゲーティングを行う構成とした。このようにすることで、回路情報の書き換えをパイプライン形式に実行し、プログラマブル回路のスループットを向上させつつ、遅延部単位でクロックゲーティングを行うことで消費電力を削減することが可能な信号処理装置を提供することができる。
[第2の実施形態]
次に、本発明に係る第2の実施形態を説明する。上記第1の実施形態では、処理回路の変化によって入力データの遅延量が増えた分だけ、ALU内の遅延調整量を減少させた時に、遅延調整部に不要なデータが入る期間が存在した。具体的には図6A,Bの場合には、BDelay1に対するタイミングt614~t616の期間、及び、BDelay2に対するタイミングt615~t617の期間である。この期間はALU00の出力に寄与しないにもかかわらずクロックが入っているため、消費電力を増やす要因となる。そこで本第2の実施形態では、処理回路の変化によってALU内の遅延調整量が変化する量に応じて、クロックゲーティング期間を延長する構成とした。
図12に本第3の実施形態におけるALUの構成を示す。図3と同一の構成要素には同一の参照符号を付している。図12において、図3との大きな違いは、クロックゲートのイネーブル信号に対してクロックゲーティング期間を延長するためのカウンタ1201が追加された点である。処理回路が変更した時の遅延調整量の変化量1302をコンフィギュレーション制御部103が計算し、その値をカウンタ1201に設定する。これにより、遅延調整量が減少した数だけ、クロックゲートのイネーブル期間(クロック停止の期間)を延長させることができる。
図13に、本第2の実施形態におけるALUの遷移に係るタイミングチャートを示す。なお、ALUの遷移は図6Aと同じであるものとする。
第1の実施形態のクロックイネーブル信号320に対して、クロックイネーブル期間を延長した信号1301を使用することで、タイミングt614~t616の期間、t615~t617の期間でそれぞれ遅延部BDelay1、BDelay2がクロックゲーティングされる。
以上説明したように、本第2の実施形態では、処理回路の変化によってALU内の遅延調整量が変化する量に応じて、クロックゲーティング期間を延長する構成とすることで、ALU内の遅延部のクロックゲーティング期間を最適化し、実施形態1に比べて消費電力を削減することが可能となる。
[第3の実施形態]
次に、本発明に係る第3の実施形態を説明する。先の第1の実施形態では、クロックゲート制御部106内でクロックゲートのイネーブル信号を遅延して伝搬したが、コンフィギュレーション制御部103が直接制御してもよい。
図7に本第3の実施形態におけるALUの構成を示す。図3と同一の構成要素には同一の参照符号を付している。図7では、クロックゲート制御部316内に、クロックゲートのイネーブル信号を遅延させるための遅延部が無く、コンフィギュレーション制御部103から各クロックゲート部317にクロックイネーブル信号が接続されている。コンフィギュレーション制御部103は回路情報記憶部113からコンフィギュレーション情報を取得し、各ALU102の遅延調整量とクロックイネーブル状態を把握することができる。そのため、ALU102の各遅延部にそれぞれクロックイネーブルを直接設定することが可能である。プログラマブル回路内の柔軟性を確保するため、ALU102の数は多いので、ALU102のクロックイネーブル遅延部を削除することで回路規模を削減することが可能となる。
以上説明したように、本第3の実施形態では、コンフィギュレーション制御部から各ALU内の遅延部に対してそれぞれクロックイネーブル設定を行うことで、実施形態1に比較して回路規模を抑えることが可能となる。
[第4の実施形態]
次に、本発明にかかる第4の実施形態を説明する。第1の実施形態では演算に使用しないALUに対してクロックゲート制御を行うことで消費電力を削減したが、固定値を入力する構成としてもよい。
図8に本第4の実施形態におけるALUの構成を示す。図3と同一の構成要素には同一の参照符号を付している。図8では、クロックゲート制御部316が無い。また、クロックゲートを行わないため、書き換え信号の遅延調整は遅延調整部302により行われる。
本第4の実施形態では、所望の処理回路の演算に未利用となるALUに対して固定値を入力させる。このためには、未利用となるALUについては、固定値を選択するように予め設定した回路情報を容易すればよい。CMOSLSIの動作時の電力であるダイナミック電力は、各遅延部のデータが変化する際に発生するスイッチング電力が支配的である。そのため、演算に使用しないALUに対して固定値を入力することで、各ALUのスイッチング電力を削減することが可能となる。
図10に本実施形態におけるタイミングチャートを示す。また、ALUの遷移は図6Aと同様に、処理回路1,2,3を処理する。違いは処理回路2においてクロックゲート制御は行わず、固定値0を入力することである。
このような構成とすることで、クロックゲーティング制御を行わずに回路規模を抑えつつ、演算に使用しない期間のスイッチング電力を削減することが可能となる。
また、遅延調整部302の遅延部308a、309bを図11のような構成とすることで、第1の実施形態と同様に、ALUとして演算に使用されている場合でも、遅延部単位でスイッチング電力を削減することが可能となる。DelayNum1101は遅延部308aの段数を表す。このようにすることで、遅延調整量ADelaySelより大きい遅延段数の遅延部に対して固定値0を入力することができ、消費電力を更に削減することが可能となる。図14にタイミングチャートを示す。また、図6AのALUの遷移において、処理回路2のクロックゲートされていた箇所が固定値0となる。
また、固定値は例えば10等の、0以外の値でもよい。例えば第一の処理回路で積分器を構成し、第二の処理回路で演算に使用しないためALUの入力値を0以外の固定値にした場合、意図せず積分値が更新されてしまうことがある。そのため、積分動作を制御するイネーブル信号を用いることで不要な積分動作による消費電力の増加を抑えることが可能となる。
以上説明したように本第4の実施形態によれば、演算に使用しないALUに対して固定値を入力することで、スイッチング電力を削減することが可能となる。
以上、第1乃至第4の実施形態を説明したが、上記からもわかるように、回路情報の書き換えをパイプライン方式で実行し、プログラマブル回路のスループットを向上させつつ、遅延部の遅延素子単位でクロックゲーティングを行うことで消費電力を削減することができる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
100…信号処理装置、101…プログラマブル回路、102…ALU、103…コンフィギュレーション制御部、104…タイミング制御部、105…書き換え信号

Claims (7)

  1. 複数の、2入力1出力のALU(Arithmetic and Logic Unit)を有するプログラマブル回路と、
    設定されたタイミングで設定された回路情報に従い、前記プログラマブル回路を更新する更新部とを有する情報処理装置であって、
    前記プログラマブル回路における前記複数のALUのそれぞれは、
    設定された種類の演算を2つのデータに対して行い、前記演算の結果を出力する演算部と、
    入力された2つのデータを、独立して設定された遅延量に従ってそれぞれ遅延し、前記遅延された2つのデータを前記演算部に供給する遅延部と、
    外部から設定された情報に従い、前記遅延部に対する遅延量と前記演算部に対する演算を行うタイミングとを制御する制御部を有し、
    前記更新部は、
    前記プログラマブル回路における着目ALUが第1の処理回路として処理すべき最終データを入力したとき、前記遅延部が有する複数の遅延素子それぞれに対して、それぞれに応じたクロックゲーティングの開始タイミングを設定する
    ことを特徴とする情報処理装置。
  2. 前記更新部は、
    前記プログラマブル回路における着目ALU以外のALUが第2の処理回路として最終データを入力したとき、前記着目ALUが第3の処理回路として機能するために前記遅延部において利用される遅延素子に対するクロックの供給の開始のタイミングを設定し、前記第3の処理回路として利用しない遅延素子に対するクロックゲーティングを継続するように設定する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記プログラマブル回路は、FPGA(Field Programmable Gate Array)またはPLD(Programmable Logic Device)であることを特徴とする請求項1または2に記載の情報処理装置。
  4. 複数の、2入力1出力のALU(Arithmetic and Logic Unit)を有するプログラマブル回路を有する情報処理装置の制御方法であって、
    前記プログラマブル回路における前記複数のALUのそれぞれは、
    設定された種類の演算を2つのデータに対して行い、前記演算の結果を出力する演算部と、
    入力された2つのデータを、独立して設定された遅延量に従ってそれぞれ遅延し、前記遅延された2つのデータを前記演算部に供給する遅延部と、
    外部から設定された情報に従い、前記遅延部に対する遅延量と前記演算部に対する演算を行うタイミングとを制御する制御部を有し、
    前記制御方法は、設定されたタイミングで設定された回路情報に従い、前記プログラマブル回路を更新する更新工程を有し、
    前記更新工程は、
    前記プログラマブル回路における着目ALUが第1の処理回路として処理すべき最終データを入力したとき、前記遅延部が有する複数の遅延素子それぞれに対して、それぞれに応じたクロックゲーティングの開始タイミングを設定する
    ことを特徴とする情報処理装置の制御方法。
  5. 前記更新工程は、
    前記プログラマブル回路における着目ALU以外のALUが第2の処理回路として最終データを入力したとき、前記着目ALUが第3の処理回路として機能するために前記遅延部において利用される遅延素子に対するクロックの供給の開始のタイミングを設定し、前記第3の処理回路として利用しない遅延素子に対するクロックゲーティングを継続するように設定する
    ことを特徴とする請求項に記載の情報処理装置の制御方法。
  6. 前記プログラマブル回路は、FPGA(Field Programmable Gate Array)またはPLD(Programmable Logic Device)であることを特徴とする請求項4または5に記載の情報処理装置の制御方法。
  7. コンピュータが読み込み実行することで、前記コンピュータに、請求項に記載の方法が有する工程を実行させるためのプログラム。
JP2020011044A 2020-01-27 2020-01-27 情報処理装置及びその制御方法及びプログラム Active JP7433931B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020011044A JP7433931B2 (ja) 2020-01-27 2020-01-27 情報処理装置及びその制御方法及びプログラム
US17/157,605 US11201622B2 (en) 2020-01-27 2021-01-25 Information processing apparatus, control method thereof, and non-transitory computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020011044A JP7433931B2 (ja) 2020-01-27 2020-01-27 情報処理装置及びその制御方法及びプログラム

Publications (3)

Publication Number Publication Date
JP2021118459A JP2021118459A (ja) 2021-08-10
JP2021118459A5 JP2021118459A5 (ja) 2023-02-06
JP7433931B2 true JP7433931B2 (ja) 2024-02-20

Family

ID=76970362

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020011044A Active JP7433931B2 (ja) 2020-01-27 2020-01-27 情報処理装置及びその制御方法及びプログラム

Country Status (2)

Country Link
US (1) US11201622B2 (ja)
JP (1) JP7433931B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7471913B2 (ja) 2020-05-20 2024-04-22 キヤノン株式会社 信号処理装置及びその駆動制御方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004531149A (ja) 2001-05-02 2004-10-07 インテル・コーポレーション 再配置可能な論理環境で使用するための効率的な高性能データ動作エレメント
JP2006163815A (ja) 2004-12-07 2006-06-22 Matsushita Electric Ind Co Ltd 再構成可能な信号処理プロセッサ
JP2020173517A (ja) 2019-04-08 2020-10-22 キヤノン株式会社 情報処理装置及びその制御方法法及びプログラム
JP2021182724A (ja) 2020-05-20 2021-11-25 キヤノン株式会社 信号処理装置及びその駆動制御方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously
FR2770661B1 (fr) * 1997-11-03 2001-08-10 Inside Technologies Microprocesseur comprenant des moyens de concatenation de bits
US6574579B1 (en) * 1999-01-08 2003-06-03 Advantest Corporation Waveform generating device
US7949883B2 (en) * 2004-06-08 2011-05-24 Hrl Laboratories, Llc Cryptographic CPU architecture with random instruction masking to thwart differential power analysis
JP4414297B2 (ja) * 2004-07-09 2010-02-10 パナソニック株式会社 プログラマブルロジックデバイス、コンフィギュレーション装置、コンフィギュレーション方法
US7620839B2 (en) * 2005-12-13 2009-11-17 Lattice Semiconductor Corporation Jitter tolerant delay-locked loop circuit
JP4298718B2 (ja) 2006-04-18 2009-07-22 パナソニック株式会社 再構成可能な信号処理プロセッサ
JP2008092190A (ja) * 2006-09-29 2008-04-17 Fujitsu Ltd 遅延回路及びプロセッサ
US7647535B2 (en) * 2006-12-19 2010-01-12 Integrated Device Technology, Inc. Using a delay clock to optimize the timing margin of sequential logic
JP5186802B2 (ja) * 2007-05-08 2013-04-24 富士通セミコンダクター株式会社 マイクロプロセッサ
AU2009209933B2 (en) * 2008-01-31 2012-01-19 Tokyo Keiki Inc. Reconfigurable device
JP5821332B2 (ja) * 2011-06-30 2015-11-24 株式会社ソシオネクスト リコンフィグ可能な集積回路装置
US8762444B2 (en) * 2011-09-28 2014-06-24 Nvidia Corporation Fast condition code generation for arithmetic logic unit
KR101403945B1 (ko) * 2012-10-31 2014-07-01 한국 천문 연구원 레이저 추적 시스템의 광전자 제어 장치
CN108616348B (zh) * 2018-04-19 2019-08-23 清华大学无锡应用技术研究院 使用可重构处理器实现安全算法、解密算法的方法及***
KR20210027897A (ko) * 2019-09-03 2021-03-11 삼성전자주식회사 다이오드 및 캐패시터를 포함하는 온도 센서

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004531149A (ja) 2001-05-02 2004-10-07 インテル・コーポレーション 再配置可能な論理環境で使用するための効率的な高性能データ動作エレメント
JP2006163815A (ja) 2004-12-07 2006-06-22 Matsushita Electric Ind Co Ltd 再構成可能な信号処理プロセッサ
JP2020173517A (ja) 2019-04-08 2020-10-22 キヤノン株式会社 情報処理装置及びその制御方法法及びプログラム
JP2021182724A (ja) 2020-05-20 2021-11-25 キヤノン株式会社 信号処理装置及びその駆動制御方法

Also Published As

Publication number Publication date
US11201622B2 (en) 2021-12-14
JP2021118459A (ja) 2021-08-10
US20210234543A1 (en) 2021-07-29

Similar Documents

Publication Publication Date Title
US10558431B2 (en) Memristor-based multipliers using memristors-as-drivers (MAD) gates
JP7465848B2 (ja) 非同期パイプラインのステージの動作速度の制御
JP3504088B2 (ja) 論理回路
US11429389B2 (en) Data selection for a processor pipeline using multiple supply lines
JP7433931B2 (ja) 情報処理装置及びその制御方法及びプログラム
TW202303383A (zh) 高效能的基於表的狀態機
JP4753895B2 (ja) 遅延調整回路を有するアレイ型プロセッサ
US11550546B2 (en) Processing apparatus, method of controlling the same, and non-transitory computer readable storage medium
JP2004062281A (ja) パイプライン演算処理装置及びパイプライン演算制御方法
Mora et al. Fast and compact evolvable systolic arrays on dynamically reconfigurable FPGAs
JP2021182724A (ja) 信号処理装置及びその駆動制御方法
US20130342255A1 (en) Signal delay device and control method
JP2015230619A (ja) データ処理装置
JP6089949B2 (ja) Simd型プロセッサ
JP6046319B1 (ja) 再構成可能命令セルアレイのシリアル構成
US20240161799A1 (en) Programmable signal processing apparatus
JP2015014833A (ja) 再構築可能なlsi
Snehi et al. Design and Implementation of Parallel FIR Filter based on Brent Kung Adder using Image System
JP2001257566A (ja) イネーブル付きラッチ回路
JP2011217279A (ja) リコンフィギュラブル回路及びリコンフィギュラブル回路の駆動方法
JP2006261780A (ja) プログラマブル論理回路装置
JPS63282531A (ja) レジスタ回路
JPS63286936A (ja) レジスタ回路
JPH10177480A (ja) デジタル信号処理装置
JP2011058807A (ja) データ取込保持装置

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230127

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230127

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231012

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240207

R151 Written notification of patent or utility model registration

Ref document number: 7433931

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151