JP7325210B2 - 情報処理装置及びその制御方法 - Google Patents

情報処理装置及びその制御方法 Download PDF

Info

Publication number
JP7325210B2
JP7325210B2 JP2019073720A JP2019073720A JP7325210B2 JP 7325210 B2 JP7325210 B2 JP 7325210B2 JP 2019073720 A JP2019073720 A JP 2019073720A JP 2019073720 A JP2019073720 A JP 2019073720A JP 7325210 B2 JP7325210 B2 JP 7325210B2
Authority
JP
Japan
Prior art keywords
circuit
alu
timing
signal
processing
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
JP2019073720A
Other languages
English (en)
Other versions
JP2020173517A5 (ja
JP2020173517A (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 JP2019073720A priority Critical patent/JP7325210B2/ja
Priority to US16/839,327 priority patent/US11550546B2/en
Publication of JP2020173517A publication Critical patent/JP2020173517A/ja
Publication of JP2020173517A5 publication Critical patent/JP2020173517A5/ja
Application granted granted Critical
Publication of JP7325210B2 publication Critical patent/JP7325210B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/418Address circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/419Read-write [R-W] circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Logic Circuits (AREA)
  • Stored Programmes (AREA)
  • Image Processing (AREA)

Description

本発明は、プログラマブル回路を有する情報処理装置及びその制御方法及びプログラムに関するものである。
回路の内部機能を自由に構成することができるFPGA(Field Programmable Gate Array)またはPLD(Programmable Logic Device)等のプログラマブル回路が知られている。このようなプログラマブル回路は、例えば内部に複数持つ要素回路であるALU(Arithmetic and Logic Unit)を使用して所望の処理回路を実現することができる。また、このようなプログラマブル回路では、ALUの機能を規定するコンフィギュレーション情報を書き換えることで処理回路を切り替えることが可能となる。例えば特許文献1では、コンフィギュレーション情報をシフトレジスタの構成で各ALUに伝搬し、処理回路を切り替えている。また、各ALUはコンフィギュレーション情報の書き換えが許可された時のみ書き換えを行うことで、所望のALUのみコンフィギュレーション情報の書き換えを行うことができる構成となっている。
また、特許文献2には、SRAM等のメモリを演算に使用するプログラマブル回路が開示されている。
特開2006-25379号公報 特開2010-244238号公報
コンフィギュレーション情報を書き換える際には、未出力データの破壊を防ぐために処理回路が入力信号を全て演算完了し、演算結果を出力した後に書き換える必要がある。つまり、データを出力し終わるまでは、入力を停止する必要があり、スループットを向上させることが困難であった。
本発明は上記課題に鑑みて成されたものであり、プログラマブル回路のスループットを向上させる技術を提供しようとするものである。
この課題を解決するため、例えば本発明の情報処理装置は以下の構成を備える。すなわち、
それぞれが2入力1出力の算術演算回路である複数のALU(Arithmetic and Logic Unit)を有するプログラマブル回路を有し、当該プログラマブル回路を用いて複数の種類の処理を行う情報処理装置であって、
前記プログラマブル回路を第1の処理の回路設定から第2の処理の回路設定に切り替えるためのコンフィグレーション情報、及び、前記コンフィグレーション情報に含まれる前記回路設定の切り替えタイミングを示すタイミング情報に基づいて前記ALUを更新する手段であって前記プログラマブル回路を前記第1の処理の回路設定から前記第2の処理の回路設定に切り替える場合、前記タイミング情報に基づき前記ALUの入力データに同期した書き換え信号を前記入力データに付与し、前記ALUが前記書き換え信号に応じて更新されるように制御を行う更新手段を有し、
前記複数のALUはそれぞれ、2つの入力データの何れかを選択する選択部と、前記2つの入力データに対する遅延量を調整する遅延調整部と、を有し、
前記更新手段は、前記第1の処理における最終のデータが前記複数のALUのうちの上流側のALUから出力されるタイミング前記上流側のALU前記第2の処理に係るコンフィグレーション情報に基づいて更新され、前記第1の処理における最終のデータが前記上流側のALUよりも下流側のALUから出力されるタイミング前記下流側のALU前記第2の処理に係るコンフィグレーション情報に基づいて更新されるように、前記書き換え信号を付与する制御を行い、
前記ALUの前記2つの入力データに対する遅延量は、前記選択部により選択された入力データに付与された書き換え信号に基づいて更新され、
前記ALUは、算術演算の結果と前記選択された入力データに付与された書き換え信号とを出力することを特徴とする
本発明によれば、プログラマブル回路を用いて複数種類の処理を行う場合における、プログラマブル回路のスループットを向上させることが可能になる。
第1の実施形態における信号処理装置を示すブロック図。 第1の実施形態における信号処理装置の動作を示すフローチャート。 第1の実施形態における従来のプログラマブル回路のタイミングチャート。 第1の実施形態におけるプログラマブル回路のタイミングチャート。 第2の実施形態における従来のプログラマブル回路のタイミングチャート。 第2の実施形態におけるプログラマブル回路のタイミングチャート。 第2の実施形態におけるプログラマブル回路の構成を示すブロック図。 第3の実施形態におけるプログラマブル回路のタイミングチャート。 実施形態におけるALUの構成を示すブロック図。 実施形態におけるALUによるパルス生成回路の構成を示すブロック図。 第1の実施形態におけるALUの構成を示すブロック図。 第4の実施形態におけるプログラマブル回路のタイミングチャート。 第4の実施形態におけるタイミング制御部とプログラマブル回路の構造を示す図。 第5の実施形態におけるタイミング制御部とプログラマブル回路の構造を示す図。 第6の実施形態における信号処理装置を示すブロック図。 第6の実施形態におけるデータ記憶部を使用した時の書き換え信号の伝搬を示す図。 第7の実施形態におけるデータ記憶部を使用した時の書き換え信号の伝搬を示す図。
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
[第1の実施形態]
図1は、第1の実施形態における情報処理装置のブロック構成図である。本装置は、装置全体の制御を司るCPU107、データ記憶部106a、106b、信号処理装置100、及び、外部記憶部110を有する。
信号処理装置100は、プログラマブル回路部101、コンフィギュレーション制御部103、回路情報記憶部113、タイミング制御部104、データフロー制御部108から構成される。
プログラマブル回路部101は、FPGAまたはPLD等で構成されるものであり、コンフィギュレーション情報を保持する複数のデータ記憶部112と、要素回路(処理単位)である複数のALU(Arithmetic and Logic Unit)102で構成され、データ記憶部106bに保持されている処理データを被処理データとして入力し、信号処理を行う。データ記憶部112は、コンフィギュレーション制御部103より渡されるコンフィギュレーション情報を保持するレジスタである。ALU102は2入力1出力の論理演算器であり、データ記憶部112に保持されたコンフィギュレーション情報に基づいて複数の信号の中から2つの信号を選択し、例えば加算や減算などの所望の演算を行うことが出来る。このALU102を組み合わせることで所望の処理回路を実現することが出来る。
回路情報記憶部113は、データ記憶部106aに保持されている回路情報を保持するSRAM等の記憶部である。後述するコンフィギュレーション制御部103は回路情報を複数回参照する。回路情報をあらかじめ信号処理装置100内の回路情報記憶部113に保存しておくことで、コンフィギュレーション制御部103が回路情報を高速に読み出すことができる。
コンフィギュレーション制御部103は、回路情報記憶部113に保持されている回路情報を読み出す。そして、コンフィギュレーション制御部103は、読み出した回路情報をデコードする。このデコード結果、コンフィグレーション情報、及び、コンフィグレーション情報に含まれる各種設定情報毎の書き換えタイミングを表すタイミング情報が得られる。コンフィギュレーション制御部103は、得られたコンフィギュレーション情報をデータ記憶部112に転送し、タイミング情報をタイミング制御部104に設定し、タイミング制御部104による書き換え信号105の生成タイミングを規定する。また、コンフィギュレーション制御部103は、後述するデータフロー制御部108において、入力処理データのフロー制御に必要な制御情報を設定する。
タイミング制御部104は、コンフィギュレーション情報制御部103の制御下にて、後述するパルス形式の書き換え信号105を任意のタイミングで生成し、入力される被処理データに同期して伝搬する。
書き換え信号105は、複数のALU102のコンフィギュレーション情報を更新するタイミングを知らせるロード信号であり、入力された信号に同期して伝搬される。
書き換え信号105を生成するタイミングは、所望の処理回路で処理するデータの最終処理タイミングで発行することが望ましい。処理するデータの最終処理タイミングで発行することで、各ALUがそれぞれ所望のデータ数分処理を完了した後に、コンフィギュレーション情報を更新することができる。
データフロー制御部108は、プログラマブル回路部101に入出力される処理データを制御する。このデータフロー制御部108は、コンフィギュレーション制御部103から渡される制御情報に基づいて、入力処理データのフロー制御を行う。
データ記憶部106aは、本実施形態の信号処理装置100で使用する回路情報を記憶する一時記憶手段であり、SRAM等で構成される。
データ記憶部106bは、本実施形態の信号処理装置100で使用する処理データを記憶する一時記憶手段であり、SRAM等で構成される。またデータ記憶部106bは、後述するCPU107のワークエリアを提供する。
CPU107はプログラムに従って演算処理及び制御処理を実行するプロセッサ等の制御部である。不図示の記憶部に記憶された各種プログラムにより各種信号処理を実行する。
外部記憶部110は、CF(コンパクトフラッシュ(登録商標))やSDカード等のデータを記録することが出来るデータ保持部である。
次に、図9を用いてALU102の内部構成を説明する。ALU102は、入力選択部901、遅延調整部902、演算部903により構成され、2入力1出力の算術演算回路として機能する。各入力は独立して遅延量調整が可能で、内部の演算器の直前で選択された入力信号の遅延が揃うように構成されている。
入力選択部901は、データ記憶部112に保持されたデータにしたがって、複数の信号904からALU102で使用する2つの信号を選択する。複数の信号904は、例えばデータ記憶部106bから入力される処理データや、複数存在するALU102の出力信号の内の1つを選択することができる。選択された信号はそれぞれA側入力データA_IN、B側入力データB_INとする。A側入力セレクタ905aは、複数の入力信号から、A側入力データ選択レジスタAinSel906aの設定値に基づいて1つを選択して、A_INとして遅延調整部902に出力する。B側入力セレクタ905bは、複数の入力信号から、B側入力データ選択レジスタBinSel906bの設定値に基づいて1つを選択して、B_INとして遅延調整部902に出力する。
ALU102内に存在する複数の入力データ選択レジスタ906a、906b、909a、909b、912はそれぞれ信号を選択するセレクタの設定値を保持するレジスタである。これら複数のレジスタの設定値は、データ記憶部112に保持されたコンフィギュレーション情報である。
入力データを選択する設定を保持する入力データ選択レジスタ906a、906bは、それぞれの入力データ選択レジスタ906a、906bに対応したセレクタ905a、905bが出力した信号に同期して伝搬されている書き換え信号105を参照する。それら書き換え信号105がHighの場合、データ記憶部112に保持された設定値を、入力データ選択レジスタ906a,906bにロードする。例えばA側入力データ選択レジスタ906aは、信号A_INに同期して伝搬されている書き換え信号907aを参照し、907aがHighの時、データ記憶部112に保持された設定値を設定する。
このように、書き換え信号105を遅延させることで、複数のレジスタそれぞれにおける最後のデータが到達するタイミング、もしくは次の回路設定が適用される最初のデータが到達するタイミングで設定値を更新することが可能となる。
遅延調整部902は、入力選択部901によって選択された入力信号A_INとB_INの遅延調整を行う。遅延調整部902は、多段の遅延素子908a、908bを持ち、シフトレジスタを構成する事で多段の遅延調整を実現することが出来る。A側遅延選択レジスタ909aを設定することで、所望の段数の遅延素子908aの出力を、後段の演算部903に信号DELAY_Aとして出力する。同様にB側遅延選択レジスタ909bを設定することで、所望の段数の遅延素子908bの出力を、後段の演算部903に信号DELAY_Bとして出力する。
演算部903は、遅延調整された2つの入力信号DELAY_A、DELAY_Bを用いて所定の演算を行う。図に示している演算器は本実施形態の一例であり、実際にどのような演算器を搭載するかについての制限はない。例えば四則以外に、論理演算子AND,ORや比較演算子などを搭載してもよい。また、演算器の後にビットシフトする機構を設けてもよい。演算結果選択セレクタ911は、演算結果選択レジスタ912の設定値に基づいて演算結果を選択し、ALU102の出力として後段に出力する。
プログラマブル回路部101はこのようなALU102を複数組み合わせて所望の処理回路を実現する。ここで、処理回路の一例としてパルス生成回路を図10に例示する。
図10は、ALU102を2個使用して作られたパルス生成回路である。参照符号1000及び1001は前記ALU102にコンフィギュレーション情報を設定して得た演算回路の例示である。
ALU1000はカウンタ(積算回路)を実現しており、2入力のうちの1入力のみを使用している。入力信号1002を固定値1とすることで、インクリメントするカウンタ構成を実現できる。
ALU1001は、比較器を構成し、ALU1000からのカウント値が比較値1003と等価な時にHighとしてパルス信号1005を出力する。
このようにALUを組み合わせることで、パルス生成回路等の所望の回路を実現することが可能となる。
<プログラマブル回路処理例>
本実施形態では、イメージセンサー上の分割画素を用いた瞳分割方式によるデフォーカス量の取得から距離マップを形成する処理フローの一部をプログラマブル回路で実施する例を説明する。分割画素を持つイメージセンサーの構成や、視差画像に対応した距離マップの取得手法については、既知の技術を使用するものとし、その説明は省略する。
図2は、視差画像からデフォーカス量を検出して距離マップを作成する処理のフローチャートである。撮像面からの視差画素取得及び、距離マップ生成自体は従来の技術であり、本発明の本旨には影響しないため、その説明については割愛する。ここでは距離マップ取得のための演算処理の一部をプログラマブル回路で実施する際の、回路の書き換え信号105の伝搬を例示する。視差画像は本実施形態では2分割画素とし、それぞれA像、B像と定義する。
S200にて、A像の信号から輝度値(以下、Y値とする)を取得する。S201にて、B像信号からも同様にY値を取得する。S202にて、S200及びS201で得られたY値から、視差間の相関演算を行う。S203にて、S202の相関演算で得た視差間の相対的な像ズレ量からデフォーカス量が推定される。S204にて、レンズ収差による面内のデフォーカス量ムラが補正される。
本実施形態では、上記のS200~S204のように処理の種類が変わるたびに、プログラマブル回路部101内のALU構成を切り替えるため、S200~S204それぞれにて回路情報200~204を設定する。回路情報200~204は図1のデータ記憶部106a上にあらかじめ格納されている。プログラマブル回路部101の初期化時に、CPU107の制御下で、回路情報200~204が回路情報記憶部113に転送される。
コンフィギュレーション制御部103は、回路情報200をデコードして、図9の入力データ選択レジスタ906a、906bに設定すべき値を、各ALU102に渡す。プログラマブル回路部101の回路コンフィギュレーションに係るレジスタは、データ記憶部112のようなプライマリレジスタと、入力データ選択レジスタ906a,906bのようなセカンダリレジスタのダブルバッファ構成を取る。コンフィギュレーション制御部103は、回路情報200に基づいてプライマリレジスタに渡した値を、各ALU102に搭載したセカンダリレジスタに転送させる。そして、転送完了後、コンフィギュレーション制御部103は、プライマリレジスタを次の回路情報に更新すべく、回路情報記憶部113に対して回路情報201の転送を要求する。
各ALU102内に存在するセカンダリレジスタが設定値を更新するタイミングは、各設定レジスタで設定したセレクタの出力信号に同期して伝搬されている書き換え信号が、各設定レジスタに到達したタイミングである。書き換え信号は、タイミング制御部108により任意のタイミングで生成され、プログラマブル回路部101の入力信号に同期して伝搬している。このようにすることで、それぞれのALU102における1つ目の回路設定における処理が終了した次のサイクルで、2つ目の回路設定における処理を開始することが可能となる。複数のALU102を伝搬し、最終段のALU102から出力された書き換え信号は、1つ目の回路設定における処理がすべて終了したことを知らせるパルス信号と等価である。そのため、コンフィギュレーション制御部103は、最終段のALU102から出力された書き換え信号を読み取り、プライマリレジスタに次の回路設定値を設定する。
上記書き換え信号を伝搬することによる効果を、図3と図4を用いて説明を行う。
図4は本実施形態の主旨である書き換え信号105を用いた場合の処理回路切り替えを示すタイミングチャートである。また、図3は、図4と比較するために、書き換え信号を用いない従来の場合の処理回路切り替えを示すタイミングチャートである。処理回路1として、例えば相関演算を行うための積分回路の一部を、ALU301とALU302で構成している。処理回路1におけるALU301は、相関演算を行う際に、傷データ等の異常データを除去するためのリミッタ回路である。ALU302は積分回路である。
処理回路2として、例えばデフォーカス量推定のための変換係数乗算回路の一部を、ALU301とALU302で構成している。処理回路2において、ALU301は、変換係数を乗算する前のオフセット調整回路である。ALU302は乗算回路である。
ALU301のA側入力を301A、B側入力を301B、演算内容を301C,出力信号を301Oとする。ALU302のA側入力を302A、B側入力を302B、演算内容を302C,出力信号を302Oとする。また、それぞれのALUの遅延量は2段とする。そして、処理回路1、処理回路2はそれぞれ10サイクル処理する。
図3(a)は、上記説明した処理回路1および処理回路2におけるALU301とALU302の構成を示す。図3(b)は、処理回路1および処理回路2のタイミングチャートを示す。タイミングチャート上で“*”と示されている信号は、ドントケアを示す。タイミングt303は信号処理開始のタイミングを示す。タイミングt306は処理回路1で処理すべき最終データの入力するタイミングである。図3(b)では、従来のように、全てのレジスタを一斉に切り替える。そのため、全てのALUで処理回路1の演算が完了するまで、入力データを停止する必要がある。タイミングt306から、全てのALUの処理回路1における処理が完了するタイミングt304までを示す期間(斜線で示している)では、入力データを停止している。タイミングt304にて、全てのレジスタに対して切り替え信号307が発行され、処理回路1の設定から処理回路2の設定に切り替わる。その後、タイミングt304からt305まで、処理回路2の処理が実行される。
これに対して、図4では、回路設定の切り替えに、タイミング制御部104より生成された書き換え信号を使用する。図4では、書き換え信号をUpdate407としている。Update407は、処理回路1の最終データであるタイミングt404で発行され、入力データIdatに同期して各ALUを伝搬する。そのため、ALU301に書き換え信号が到達するのは、処理回路1におけるALU301の処理が全て完了したタイミングt404である。タイミングt404においてALU301は処理回路2に更新され、タイミングt410まで処理回路2の処理を実行する。
また、後段に位置するALU302に書き換え信号が到達するタイミングは、処理回路2におけるALU302の処理が全て完了したタイミングt406である。タイミングt406においてALU302は処理回路2に更新され、タイミングt411まで処理回路2の処理が実行される。
ALU302は、入力信号Idatに対して、ALU301の2遅延分の遅延がある。そのため、ALU301とALU302で処理回路1の全ての処理が終了するタイミングが異なる。この時、処理回路の書き換え信号Update407を伝搬させることで、それぞれのALUにおける処理回路1が終わるタイミングで、それぞれのALUが処理回路2に更新される。このようにすることで、処理回路を切り替えるための停止期間が必要なくなり、スループットを向上させることが可能となる。
以上説明したように本実施形態によれば、書き換え信号をデータ信号に同期して伝搬させることで、回路情報の書き換えをパイプライン形式に実行し、プログラマブル回路のスループットを向上させることが出来る信号処理装置を提供することができる。
また、ALU102の入力選択部901(図9参照)は、入力信号選択レジスタ906a、906bの初期値を、書き換え信号が付与されている信号を選択するように設定することが望ましい。本実施形態では書き換え信号は入力データに付与されており、全ての信号に付与されているわけではない。そのため、本実施形態では入力データなど、書き換え信号が付与されている信号を初期値として設定しておくことで、全てのALU102に書き換え信号が行き渡らせることができる。
また、ALU102に複数存在する入力データ選択レジスタが設定値を更新するタイミングは、もう一方の入力信号に付与されている書き換え信号を選択できる構成としてもよい。例えば図9において、B側入力信号として、パラメータ等の書き換え信号が付与されていない信号を選択した場合、B側信号には書き換え信号が到達しないので、入力データ選択レジスタ906bや909bの書き換えが行えない。そこで、図11の様に、もう一方の入力信号に付与されている書き換え信号を参照できるようにしてもよい。図11は、図9に比べて、A側書き換え信号セレクタ1103、A側書き換え信号選択レジスタ1101、B側書き換え信号セレクタ1104、B側書き換え信号選択レジスタ1102を持つ。このようにすることで、入力データ選択レジスタ906a,906b,909a,909bは任意の入力信号に付与されている書き換え信号を参照することが可能となる。
なお、上記実施形態では、2つのALUの接続関係について説明したが、3つ以上のALUが接続される場合にも適用できる。3つ以上のALUが連続して接続されている場合にも、隣接する2つ、すなわち、上流側、下流側のALUについて上流側のALUの更新タイミングを下流側のALUの処理に係るサイクル数だけ早めて更新すればよい。
[第2の実施形態]
次に、本発明に係る第2の実施形態について説明する。上記第1の実施形態では、処理回路1と処理回路2において、それぞれの回路の遅延量が等しい場合を例に説明を行ったが、それぞれの回路の遅延量は異なっていてもよい。この時、データフロー制御部108は、処理回路1と処理回路2の遅延量の差だけ、入力データを停止するように制御する。
以下、図5と図6を参照して、本実施形態における信号処理回路100の動作について説明する。
図6はデータフロー制御部108を用いて入力データの停止を行う場合の処理回路切り替えを示すタイミングチャートである。図5は図6と比較するために、入力データの停止を行わない従来の場合の処理回路切り替えを示すタイミングチャートである。処理回路1は、第1の実施形態と同じく相関演算を行うための積分回路の一部を、ALU501とALU502で構成している。処理回路2は、第1の実施形態と同じくデフォーカス量推定のための変換係数乗算回路の一部を構成するが、変換係数を乗算する前のオフセット調整回路が無いものとして、乗算回路のみとする。
図5(a)では、上記説明した処理回路1及び処理回路2それぞれのALU501とALU502の構成を示す。図5(b)では、処理回路1及び処理回路2のタイミングチャートを示す。
図5の処理回路1のALU502のA側入力信号は、ALU501の出力信号を選択している。そして、処理回路2のALU502は、入力データIdatを選択している。そのため、処理回路1から処理回路2に変わる際に遅延量が減少し、データの追い越しが発生している。具体的には、図5(b)のタイミングt506~t508間の2データが、データの追い越しが発生して消失している。このため、処理回路2における全てのデータを正しく処理することができない。
これに対して、図6では、回路設定の切り替え時に、データフロー制御部108を用いて入力データの停止動作を行う。図6では、処理回路1の入力データを全て入力し終えたタイミングt604で、入力データを停止する。停止するサイクル数は、処理回路1の遅延量と、処理回路2の遅延量の差である2サイクルに設定する。このようにすることで、ALU502において、処理回路における全てのデータに対して正しく処理を行うことが可能となる。
以上説明したように本第2の実施形態によれば、回路設定を切り替える際に、処理中の回路の遅延量に対して、次の処理の回路の遅延量が少ない場合、データの追い越しを防ぐために入力データを停止させることで、データの消失を防ぎ、所望の処理を行うことが可能となる。
また、上記データの追い越しを防ぐ手段として、遅延調整回路を挿入することで、停止期間の発生を抑えることができる。図7に、データの追い越し防止の遅延調整回路を挿入した回路を示す。図6との違いは、処理回路2においてALU501を遅延調整回路として持つことである。遅延調整回路としては、ALU102内部の遅延調整部902(図9参照)を設定して所望の遅延量を持たせることができる。また、図7に示すように0値と加算することで、入力データを遅延させただけの遅延調整回路とすることができる。このような遅延調整回路を、処理回路2に挿入することで、遅延量が等しくなり、停止期間の発生を抑え、スループットを向上させることが可能となる。
[第3の実施形態]
次に、本発明に係る第3の実施形態について説明する。第2の実施形態では、処理回路1の遅延量に比べて処理回路2の遅延量が少ない場合を例に説明を行ったが、処理回路1の遅延量に比べて処理回路2の遅延量が多い場合を説明する。この時、データフロー制御部108は、処理回路1と処理回路2の遅延量の差だけ発生する余分データを無効データとして扱うように、データの有効無効を判別する制御信号validを制御する。
図8を参照して、本実施形態における信号処理回路100の動作について説明する。図8(b)はデータフロー制御部108を用いて制御信号validを制御するタイミングチャートである。入力データの有効/無効を判定する制御信号をIVAL812、プログラマブル回路101から出力される出力データ(図8(a)における802O)の有効無効を信号処理100の後段の回路に知らせる制御信号をOVAL813とする。図8(a)の処理回路1でのALU802のA側入力信号は入力データIdatを選択する。そして、処理回路2でのALU802は、ALU801の出力信号を選択している。そのため、処理回路1から処理回路2に変わる際に遅延量が増加し、余分データ814が、タイミングt804からt806の期間で発生する。このデータは無効なデータであるため、後段の回路に無効データであることを知らせる必要がある。そこで、無効データが出力されるタイミング(処理回路1の最終出力タイミング)でOVAL813をLowに制御することで、後段の回路に無効データであることを知らせることができる。
以上説明したように本実施形態によれば、回路設定を切り替える際に、処理中の回路の遅延量に対して、次の処理の回路の遅延量が多い場合、無効データの出力を知らせるために制御信号を制御することで、所望の処理を行うことが可能となる。
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
[第4の実施形態]
第4の実施形態を以下に説明する。本実施形態における装置構成は図1と同じとし、その構成の説明は省略する。
ここで、タイミング制御部104から発行される書き換え信号105の本数について図13を参照して説明を行う。タイミング制御部104は、複数のパルス生成器を持つ。図13は、タイミング制御部104が、9つのALU1301~1307に対する、9つのパルス生成器1321~1329を有することを示している。個々のパルス生成器は、カウンタとコンパレータで構成される。そして、パルス生成器1321~1329は、ALU1301~1307への書き込み信号1311~1319(図1の書き換え信号105はこれらを包含するものである)を発行する。それぞれのパルス生成器に含まれるカウンタは、カウントのスタートタイミングを個別に設定することができる。スタートタイミングは、1つ目の回路設定において、対応するALUに処理対象のデータが到達するまでにかかる遅延量の分だけ遅らせる。例えばALU1302に対応するカウンタパルス生成器1322では2サイクル、ALU1303に対応するパルス生成器カウンタ1323では4サイクル遅らせる。例えば1つ目の回路設定で10サイクル分処理を行うとすると、ALU1302に対して発行される書き換え信号1312は、1つ目の回路設定で処理が開始されてから12サイクル後に発行される。また、ALU1303に対して発行される書き換え信号1313は、1つ目の回路設定で処理が開始されてから14サイクル後に発行される。このように各ALUに個別の書き換えタイミングを設定することで、それぞれのALUにおける1つ目の回路設定の処理が終了した次のサイクルで2つ目の回路設定の処理を開始することができる。
また、タイミング制御部104は1つのカウンタと複数のコンパレータを持ち、所定のカウント値になった時に書き換え信号105を発行する形態としてもよい。この場合、カウンタは各ALUの演算遅延の分だけ追加でカウントする必要がある。
なお、必ずしもカウンタを複数持つ必要はなく、1つのカウンタに対して遅延量をオフセットとすることで、それぞれのALUの遅延量に対応した書き換え信号105を発行することが可能である。また、書き換え信号105を発行するタイミングをALUの個数に応じて設定することで、カウンタの数を削減してもよい。
画像処理における水平カウンタのように回路設定毎に追加でカウントを行いたくない場合は、1つ目の回路設定における所定のカウント値が、各ALUの演算遅延の分だけ遅れるため、2つ目の回路設定に持ち越すように設定をする。
また、書き換え信号105はプログラマブル回路部101が入力データに対して信号処理を開始する前に一度発行される。ダブルバッファ構成をとるため、信号処理を開始する前に1つ目の回路設定をALU102内に存在するセカンダリレジスタに更新させる必要がある。そのため、プライマリレジスタに回路情報を設定し、入力データに対して信号処理を開始する前に一度発行することで、セカンダリレジスタが設定値を更新する。
上記書き換え信号105を複数持つことによる効果を、図3と12を用いて説明を行う。
図3、及び、図12における処理回路1は、例えば相関演算を行うための積分回路の一部を、ALU301とALU302で構成している。処理回路1において、ALU301では相関演算を行う際に、傷データ等の異常データを除去するためのリミッタ回路である。ALU302は積分回路である。
また、処理回路2は、例えばデフォーカス量推定のための変換係数乗算回路の一部を、ALU301とALU302で構成している。処理回路2におけるALU301では変換係数を乗算する前のオフセット調整回路である。そして、ALU302は乗算回路である。
ALU301のA側入力を301A、B側入力を301B、演算内容を301C,出力信号を301Oとする。ALU302のA側入力を302A、B側入力を302B、演算内容を302C,出力信号を302Oとする。また、それぞれのALUの遅延量は2段とする。処理回路1、処理回路2はそれぞれ10サイクル処理する。
図3(a)では、上記説明した処理回路1および処理回路2におけるALU301とALU302の構成を示す。図3(b)では、処理回路1および処理回路2のタイミングチャートを示す。タイミングチャート上で*と示されている信号は、ドントケアを示す。t303は信号処理開始タイミングを示す。タイミングt306は処理回路1で処理すべき最終データの入力タイミングである。図3では従来のように、全てのレジスタを一斉に切り替える。そのため、全てのALUで処理回路1の演算が完了するまで、入力データを停止する必要がある。タイミングt306から、全てのALUの処理回路1における処理が完了するタイミングt304までの期間(図示の斜線で示す期間)、入力データを停止している。タイミングt304のタイミングで全てのレジスタに対して切り替え信号307が発行され、処理回路1の設定から処理回路2の設定に切り替わる。その後、タイミングt304からt305まで、処理回路2の処理が実行される。
これに対して、図12では回路設定の切り替えに、タイミング制御部104より生成された書き換え信号105を使用する。図12では、ALU301が使用する書き換え信号をUpdate_ALU301とし、カウンタ305が発行する。ALU302が使用する書き換え信号をUpdate_ALU302とし、カウンタ306が発行する。Update_ALU301はALU301における処理回路1の最終データであるタイミングt404(カウンタカウンタ305が10サイクルカウントしたタイミング)で発行される。図9で示したように、ALU301内の設定を保持するデータ記憶部はそれぞれ内部で遅延した後に更新される。タイミングt406においてALU301内の全ての、設定を保持するデータ記憶部は処理回路2に更新され、タイミングt410まで処理回路2の処理を実行する。ALU302は、入力信号Idatに対して、ALU301の2遅延分の遅延がある。そのため、ALU301とALU302で処理回路1の全ての処理が終了するタイミングが異なる。この時、カウンタ306は、ALU302に対して、12サイクルをカウントしたタイミングt406においてUpdate_ALU302を発行する。また、カウンタ306は1つ目の回路設定での処理開始から2サイクル分の遅延が経過したタイミングt405からカウントを開始し、10サイクルをカウントしたタイミングt406でUpdate_ALU302を発行してもよい。ALU301と同様にALU302内の設定を保持するデータ記憶部はそれぞれ内部で遅延した後に更新される。タイミングt408においてALU302内の全ての、設定を保持するデータ記憶部は処理回路2に更新され、タイミングt411まで処理回路2の処理を実行する。このようにすることで、処理回路を切り替えるための停止期間が必要なくなり、スループットを向上させることが可能となる。
以上説明したように本第4の実施形態によれば、書き換え信号105をデータ信号に同期して伝搬させることで、回路情報の書き換えをパイプライン形式に実行し、プログラマブル回路のスループットを向上させることが出来る信号処理装置を提供することができる。
なお、本実施形態では、プライマリレジスタとセカンダリレジスタを、シフトレジスタで構成したがその限りではない。例えば、前記2つのレジスタをバンキングレジスタとして構成してもよい。そのような場合においては、書き換え信号105の発行に基づいて決定する使用中ではないレジスタ側をプライマリレジスタとして使用することで本実施形態の適用が可能となる。
[第5の実施形態]
本発明に係る第5の実施形態を説明する。上記第4の実施形態では、タイミング制御部から発行される書き換え信号105は、1つのALUにつき1つとして説明を行ったが、任意の数のALUごとに1つの書き換え信号105を発行してもよい。本第5の実施形態は、対応するALUに処理対象のデータが到達するまでにかかる遅延量が等しいALUごとに書き換え信号105を発行する点で、第4の実施形態とは異なる。なお、本第5の実施形態における装置構成は、第1の実施形態の図1と同じとし、それらの説明は省略する。
図14は、本第5の実施形態におけるタイミング制御部104とプログラマブル回路101との構成を示す図であり、特に、タイミング制御部104から発行される書き換え信号105の本数とALUとの対応関係を示している。それぞれのALUには、タイミング制御部104内のパルス生成器1410~1412を選択する書き換え信号選択部1413~1417を持つ。図14は、例としてクランプ計算を行う例を示している。ALU1402で巡回係数Paramをかけ、ALU1405で積分を行って補正値を得る。その後、ALU1406で、入力データに対して得られた補正値を減算する。ALU1401,ALU1404は遅延を合わせるための遅延素子として動作する。
この時、並列関係にあるALU1401,ALU1402は処理対象のデータが到達するまでにかかる遅延量が等しいものとする。2つのALU1401,1402は同じタイミングで処理が完了し、次の回路設定で処理を開始することができるので、ALU1401とALU1402に必要な書き換え信号105は同じで良い。そこでALU1401とALU1402が同じパルス生成器カウンタ1410から発行される書き換え信号105を参照するように書き換え信号選択部1413、1414を制御する。同様に、ALU1404,ALU1405も処理対象のデータが到達するまでにかかる遅延量が等しい。そのため、同じパルス生成器カウンタ1411から発行される書き換え信号105を参照するように書き換え信号選択部1415、1416を制御する。ALU1406は別のパルス生成器カウンタ1412を参照するように書き換え信号選択部1417を制御する。上記の結果、必要なパルス生成器カウンタは図示のごとく3つとなる。
なお、並列関係にあるALU1401、ALU1402の遅延量が異なる場合には、それら2つのALUの更新タイミングが、遅延量に多い方に合わせればよい。
このように、対応するALUに処理対象のデータが到達するまでにかかる遅延量が等しいALUごとに同じパルス生成器カウンタから発行される書き換え信号105を参照することで、パルス生成器カウンタの数を減らし、回路規模を削減することができる。
また、書き換え信号選択部は特定の領域のALU毎に持つとしてもよい。このようにすることで、書き換え信号選択部を減らすことが可能となる。
[第6の実施形態]
第6の実施形態を以下に説明する。図15は、本第5の実施形態における情報処理装置のブロック構成図である。第1の実施形態における構成との違いは、プログラマブル回路101にデータ記憶部114とデータアクセス制御部115が追加された点であり、これ以外は図1と同じであるので、データ記憶部114、データアクセス制御部115以外の構成についての説明は省略する。また、ALU102内の構造も図9と同様であるものとする。
プログラマブル回路101内のデータ記憶部114は、信号処理装置100で使用する演算結果や、演算に使用する補正値等を記憶する一時記憶手段であり、SRAM等で構成される。データアクセス制御部115は、データ記憶部114へのアクセスを制御するための制御信号を出力する制御部である。このデータアクセス制御部115は、コンフィギュレーション制御部103より転送されるコンフィギュレーション情報に基づいて、アドレス信号、チップセレクト信号、データの読み書きを許可するリクエスト信号をデータ記憶部114へ出力する。
なお、本第6の実施形態におけるタイミング制御部104は、上記第4、第5の実施形態と同様、コンフィギュレーション情報制御部103の制御下にて、書き換え信号105を任意のタイミングでパルス生成し、複数のALU102に転送する。書き換え信号105は、複数のALU102のコンフィギュレーション情報を更新するタイミングを知らせるロード信号である。書き換え信号105を生成するタイミングは、複数のALU102がそれぞれ最後のデータを処理するタイミング、もしくは次の回路設定が適用される最初のデータを処理するタイミングで発行することが望ましい。このようにすることで、各ALU102がそれぞれ所望のデータ数分処理を完了した後に、コンフィギュレーション情報を更新することができる。
<プログラマブル回路処理例>
本第6の実施形態は、第1の実施形態と同様、イメージセンサー上の分割画素を用いた瞳分割方式によるデフォーカス量の取得から距離マップを形成する処理フローの一部をプログラマブル回路で実施する例を、図2を再度参照して説明する。分割画素を持つイメージセンサーの構成や、視差画像に対応した距離マップの取得手法については、既知の技術を使用してよい。
S200にて、A像信号から輝度値(以下、Y値とする)を取得する。S201にて、B像信号からY値を取得する。そして、S202にて、S200とS201で得られたY値から、視差間の相関演算を行う。S203では、S202の相関演算で得た視差間の相対的な像ズレ量からデフォーカス量を推定する。そして、S204ではレンズ収差による面内のデフォーカス量ムラを補正する。
本第6の実施形態では、前記S200~S204それぞれのステップにて、プログラマブル回路部101内のALU構成を切り替えるように、S200~S204に対して、それぞれの回路情報200~204を設定する。回路情報200~204は図1のデータ記憶部106a上にあらかじめ格納されている。プログラマブル回路部101の初期化時に、回路情報200~204を回路情報記憶部113に転送する。
コンフィギュレーション制御部103は、回路情報200をデコードして、図9の入力データ選択レジスタ906a、906b等の複数のレジスタ設定値を、各ALU102に渡す。プログラマブル回路部101の回路コンフィギュレーションに係るレジスタは、データ記憶部112のようなプライマリレジスタと、入力データ選択レジスタ906a,906bのようなセカンダリレジスタのダブルバッファ構成を取る。コンフィギュレーション制御部103は、回路情報200に基づいてプライマリレジスタに渡した値を各ALU102に搭載したセカンダリレジスタに転送する。そして、コンフィギュレーション制御部103は、転送完了後に、プライマリレジスタを次の回路情報に更新すべく、回路情報記憶部113に対して回路情報201の転送を要求する。
各ALU102内に存在するセカンダリレジスタが設定値を更新するタイミングは、各設定レジスタで設定したセレクタの出力信号に同期して伝搬されている書き換え信号が、各設定レジスタに到達したタイミングである。書き換え信号は、タイミング制御部108により任意のタイミングで生成され、プログラマブル回路部101の入力信号に同期して伝搬している。このようにすることで、それぞれのALU102における1つ目の回路設定における処理が終了した次のサイクルで、2つ目の回路設定における処理を開始することが可能となる。複数のALU102を伝搬し、最終段のALU102から出力された書き換え信号は、1つ目の回路設定における処理がすべて終了したことを知らせるパルス信号と等価である。そのため、コンフィギュレーション制御部103は、最終段のALU102から出力された書き換え信号を読み取り、プライマリレジスタに次の回路設定値を設定する。
上記書き換え信号を伝搬することによる効果は、第1の実施形態における図3と図4で説明した通りである。
書き換え信号105を入力データに同期して伝搬する場合、入力データを選択したALU102に書き換え信号が伝搬する。もしくは入力データを選択したALU102の出力を参照した他のALU102に書き換え信号が伝搬する。しかし、SRAM等のデータ記憶部114の読出しデータは、必ずしもリコンフィギャラブル回路部101の入力データに同期しているとは限らないため、書き換え信号105が伝搬されない。例えば、図4における処理回路1で0~4095までのルックアップテーブルを作成し、処理回路2で作成したルックアップテーブルを参照した処理を行う場合を考える。書き換え信号105はルックアップテーブルの最終データである値4095に同期して保存されるが、処理回路2において、値4095が参照されるタイミングが、処理回路2における最終データであるとは限らない。
この問題を解決するために、本第6の実施形態ではデータ記憶部114を制御するための制御信号に同期して書き換え信号105を伝搬し、データ記憶部114は書き換え信号105を、読み出されるデータに同期して伝搬させる。
図16は、本第6の実施形態における、データ記憶部114を使用した時の書き換え信号105の伝搬を示す図である。図16(a)では、入力データIdat1606に対して、データ記憶部114に保持されたオフセット値を減算する処理を例示している。図16(b)では、それぞれの信号のタイミングチャートを示す。
ALU1601は入力データIdat106を遅延する遅延素子として働き、ALU1602は入力データIdat1606からオフセット値を減算する減算器として動作する。
SRAM等のデータ記憶部114からデータを読み出す時には、データアクセス制御部115から、リードアドレスAddr1603、データ記憶部114を選択するチップセレクト信号/CS1604、リクエスト信号/WE1605を出力する。
リードアドレスAddr1603は読み出すデータの番地を示すアドレスである。チップセレクト信号/CS1604はデータ記憶部114を選択する。チップセレクト信号/CS1604は負論理であり、チップセレクト信号/CS1604がLowの時、データ記憶部114が選択され、Addr1603、リクエスト信号/WE1605の入力が有効となる。リクエスト信号/WE1605はデバイスへの読み書き許可信号である。リクエスト信号/WE705は負論理であり、リクエスト信号/WE1605がLowの場合はライトアクセスとなり、Highの場合はリードアクセスとなる。
本第6の実施形態では、タイミング制御部104より出力される書き換え信号105はタイミングt1611で発行され、入力データとリードアドレス1603に同期して伝搬する。データ記憶部114は、書き換え信号105を所定の遅延量だけ遅延させて、リードデータに同期して伝搬させる。所定の遅延量とは、リードのリクエストを行ってからデータ記憶部114のデータが読み出されるまでに必要な遅延量(以下、読出し遅延量と呼ぶ)である。本第6の実施形態では、読出し遅延量を2サイクルとしている。そのため、リードデータRdData1607に同期して伝搬される書き換え信号UpdateDelay1616はタイミングt1613のタイミングでHighとなる。このようにすることでデータ記憶部114からリードデータRdData1607に同期して書き換え信号が伝搬されるため、ALU1602のB入力側のレジスタの書き換えを行うことが可能となる。
本実施形態では書き換え信号105をリードアドレス1603に同期して伝搬したが、チップセレクト信号/CS1604に同期して伝搬してもよい。また、リクエスト信号/WE1605に同期して伝搬してもよい。
以上説明したように本第6の実施形態によれば、書き換え信号105をデータ信号とデータ記憶部114を制御する制御信号に同期して伝搬させることで、回路情報の書き換えをパイプライン形式に実行し、プログラマブル回路のスループットを向上させることが出来る信号処理装置を提供することができる。
なお、本第6の実施形態では、プライマリレジスタとセカンダリレジスタを、シフトレジスタで構成したがその限りではない。例えば、前記2つのレジスタをバンキングレジスタとして構成してもよい。そのような場合においては、書き換え信号105の発行に基づいて決定する使用中ではないレジスタ側をプライマリレジスタとして使用することで本実施例の適用が可能となる。
[第7の実施形態]
次に、本発明に係る第7の実施形態について説明する。上記第6の実施形態では、データ制御部114において、書き換え信号105を、読出し遅延量と同じだけ遅延させて、リードデータに同期して伝搬させたが、遅延量を異ならせてもよい。本第7の実施形態では、データ制御部114に伝搬された書き換え信号105の遅延量を任意のタイミングでリードデータに同期して伝搬させることができる点で第6の実施形態とは異なる。なお、本第7の実施形態における他の構成は、第6の実施形態と同様であるため、それらの説明は省略する。
図17は、本第7の実施形態におけるデータ記憶部114を使用した時の書き換え信号の伝搬を示す図である。図17では、データ記憶部114に保存された前フレームの画像データと入力データの2タップの平均フィルタを行うための加算処理を例示している。本実施形態では、データ記憶部114はカウンタ1700を更に有する。カウンタ1700は、データ記憶部114に伝搬された書き換え信号105が伝搬された時に、カウントを開始し、所望の遅延量Length1701だけカウントをした後に書き換え信号UpdateDelay1616を発行し、リードデータRdData1607に同期して伝搬する。図17では、Length1701を1に設定しているため、タイミングt1711でカウントが開始され、1サイクル後であるタイミングt1712で書き換え信号UpdateDelay161が発行され、リードデータに同期して伝搬される。データ記憶部114の読出し遅延が2に対して、UpdateDelay1616を1サイクル遅延させて発行するため、書き換え信号の伝搬を1サイクル早めている。
2タップ平均フィルタのように入力信号の位相がずれている場合、演算結果のデータには無効なデータが含まれる。2タップ平均フィルタの為の加算処理を行うALU1703では、A側の入力信号に対してB側の入力信号を1サイクル遅延させており、タイミングt1716のタイミングでA側の入力信号が無く、無効な演算結果を出力するため、スループットを向上させることが困難となる。それに対して、本実施形態ではデータ記憶部114から発行される書き換え信号105の伝搬を1サイクル早めることで、有効なデータ領域である来民具t1716まで演算を行い、次の処理回路に切り替えるため無効な演算を行わない。このようにすることで、スループットを向上させることが可能となる。
また、本実施形態ではデータ記憶部114に伝搬した書き換え信号を任意のタイミングでリードデータに同期して伝搬させるためにカウンタを用いたが、シフトレジスタの構成で実現してもよい。
以上の説明のように、本実施形態によれば、書き換え信号をデータ信号に同期して伝搬させることで、コンフィギュレーション情報の書き換えをパイプライン形式で実行することで、プログラマブル回路のスループットを向上させることが出来る。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
100…信号処理装置、101…プログラマブル回路、102…ALU、103…コンフィグレーション制御部制御部、104…タイミング制御部、105…書き換え信号

Claims (11)

  1. それぞれが2入力1出力の算術演算回路である複数のALU(Arithmetic and Logic Unit)を有するプログラマブル回路を有し、当該プログラマブル回路を用いて複数の種類の処理を行う情報処理装置であって、
    前記プログラマブル回路を第1の処理の回路設定から第2の処理の回路設定に切り替えるためのコンフィグレーション情報、及び、前記コンフィグレーション情報に含まれる前記回路設定の切り替えタイミングを示すタイミング情報に基づいて前記ALUを更新する手段であって前記プログラマブル回路を前記第1の処理の回路設定から前記第2の処理の回路設定に切り替える場合、前記タイミング情報に基づき前記ALUの入力データに同期した書き換え信号を前記入力データに付与し、前記ALUが前記書き換え信号に応じて更新されるように制御を行う更新手段を有し、
    前記複数のALUはそれぞれ、2つの入力データの何れかを選択する選択部と、前記2つの入力データに対する遅延量を調整する遅延調整部と、を有し、
    前記更新手段は、前記第1の処理における最終のデータが前記複数のALUのうちの上流側のALUから出力されるタイミング前記上流側のALU前記第2の処理に係るコンフィグレーション情報に基づいて更新され、前記第1の処理における最終のデータが前記上流側のALUよりも下流側のALUから出力されるタイミング前記下流側のALU前記第2の処理に係るコンフィグレーション情報に基づいて更新されるように、前記書き換え信号を付与する制御を行い、
    前記ALUの前記2つの入力データに対する遅延量は、前記選択部により選択された入力データに付与された書き換え信号に基づいて更新され、
    前記ALUは、算術演算の結果と前記選択された入力データに付与された書き換え信号とを出力する
    とを特徴とする情報処理装置。
  2. 前記更新手段は、前記複数のALU前記ALUによる処理対象であるデータに同期して伝搬される前記書き換え信号に応じて更新されるように、前記書き換え信号を付与する制御を行うことを特徴とする請求項1に記載の情報処理装置。
  3. 前記書き換え信号が付与されていないデータが前記2つの入力データのうちの一方である場合、前記選択部は、前記2つの入力データのうちの他方を選択することを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記遅延調整部は、前記2つの入力データのうちの一方を遅延させる第1の遅延回路と他方を遅延させる第2の遅延回路とを含み、前記選択部は、それぞれが前記2つの入力データの何れかを選択する第1のセレクタと第2のセレクタとを含み、前記第1のセレクタにより選択された入力データに付与された書き換え信号に基づいて前記第1の遅延回路の遅延量が更新され、前記第2のセレクタにより選択された入力データに付与された書き換え信号に基づいて前記第2の遅延回路の遅延量が更新されることを特徴とする請求項1から3の何れか1項に記載の情報処理装置。
  5. 複数のALU(Arithmetic and Logic Unit)を有するプログラマブル回路を有し、当該プログラマブル回路を用いて複数の種類の処理を行う情報処理装置であって、
    前記プログラマブル回路を第1の処理の回路設定から第2の処理の回路設定に切り替えるためのコンフィグレーション情報、及び、前記コンフィグレーション情報に含まれる前記回路設定の切り替えタイミングを示すタイミング情報を保持する保持手段と、
    前記プログラマブル回路を前記第1の処理の回路設定から前記第2の処理の回路設定に切り替える場合、前記タイミング情報に基づき、前記第1の処理における最終のデータが前記複数のALUにおける上流側のALUから出力されるタイミングに基づき前記上流側のALUを前記第2の処理に係るコンフィグレーション情報に基づいて更新し、前記第1の処理における最終のデータが前記上流側のALUよりも下流側のALUから出力されるタイミングに基づき前記下流側のALUを前記第2の処理に係るコンフィグレーション情報に基づいて更新する更新手段と、
    前記第1の処理の回路設定での前記プログラマブル回路の遅延量が、前記第2の処理の回路設定での前記プログラマブル回路の遅延量よりも少ない場合、前記プログラマブル回路を前記第1の処理の回路設定から前記第2の処理の回路設定に切り替える場合に、当該遅延量の差に応じて、前記プログラマブル回路への入力データ停止するデータフロー制御手段とを有することを特徴とする情報処理装置。
  6. 前記データフロー制御手段は、前記第1の処理の回路設定での前記プログラマブル回路の遅延量が、前記第2の処理の回路設定での前記プログラマブル回路の遅延量より多い場合、前記プログラマブル回路を前記第1の処理の回路設定から前記第2の処理の回路設定に切り替える場合に、当該遅延量の差に応じて、前記プログラマブル回路への入力データの有効/無効を示す制御信号を発生する手段を有することを特徴とする請求項に記載の情報処理装置。
  7. 前記更新手段は、前記複数のALUに対し、それぞれの遅延量に応じて更新する信号を発生する複数のパルス生成器を有し、当該複数のパルス生成器で発生した信号を、前記複数のALUを更新するための信号として供給することを特徴とする請求項5に記載の情報処理装置。
  8. 前記複数のALUのうち接続関係が並列の関係にあるALUは、1つのパルス生成器から発生した信号に従って更新されることを特徴とする請求項に記載の情報処理装置。
  9. 前記プログラマブル回路は、
    ワークエリアとして使用するSRAMと、
    該SRAMのデータを前記ALUに供給するため、当該SRAMのアドレス、リード、ライトを、前記コンフィグレーション情報に基づき制御する制御部と
    を含むことを特徴とする請求項1から8の何れか1項に記載の情報処理装置。
  10. それぞれが2入力1出力の算術演算回路である複数のALU(Arithmetic and Logic Unit)を有するプログラマブル回路を有し、当該プログラマブル回路を用いて複数の種類の処理を行う情報処理装置の制御方法であって、
    前記プログラマブル回路を第1の処理の回路設定から第2の処理の回路設定に切り替えるためのコンフィグレーション情報、及び、前記コンフィグレーション情報に含まれる前記回路設定の切り替えタイミングを示すタイミング情報に基づいて前記ALUを更新する工程であって、前記プログラマブル回路を前記第1の処理の回路設定から前記第2の処理の回路設定に切り替える場合に、前記タイミング情報に基づき前記ALUの入力データに同期した書き換え信号を前記入力データに付与し、前記ALUが前記書き換え信号に応じて更新されるように制御を行う更新工程とを有し、
    前記複数のALUはそれぞれ、2つの入力データの何れかを選択する選択部と、前記2つの入力データに対する遅延量を調整する遅延調整部と、を有し、
    前記更新工程は、前記第1の処理における最終のデータが前記複数のALUのうちの上流側のALUから出力されるタイミングで前記上流側のALUが前記第2の処理に係るコンフィグレーション情報に基づいて更新され、前記第1の処理における最終のデータが前記上流側のALUよりも下流側のALUから出力されるタイミングで前記下流側のALUを前記第2の処理に係るコンフィグレーション情報に基づいて更新されるように、前記書き換え信号を付与する制御を行い、
    前記ALUの前記2つの入力データに対する遅延量は、前記選択部により選択された入力データに付与された書き換え信号に基づいて更新され、
    前記ALUは、算術演算の結果と前記選択された書き換え信号とを出力する
    ことを特徴とする情報処理装置の制御方法。
  11. 複数のALU(Arithmetic and Logic Unit)を有するプログラマブル回路を有し、当該プログラマブル回路を用いて複数の種類の処理を行う情報処理装置の制御方法であって、
    前記プログラマブル回路を第1の処理の回路設定から第2の処理の回路設定に切り替えるためのコンフィグレーション情報、及び、前記コンフィグレーション情報に含まれる前記回路設定の切り替えタイミングを示すタイミング情報に基づいて前記ALUを更新する工程であって前記プログラマブル回路を前記第1の処理の回路設定から前記第2の処理の回路設定に切り替える場合、前記タイミング情報に基づき、前記第1の処理における最終のデータが前記複数のALUにおける上流側のALUの出力されるタイミングに基づき前記上流側のALUを前記第2の処理に係るコンフィグレーション情報に基づいて更新し、前記第1の処理における最終のデータが前記上流側のALUよりも下流側のALUから出力されるタイミングに基づき前記下流に位置するALUを前記第2の処理に係るコンフィグレーション情報に基づいて更新する更新工程とを有し、
    前記第1の処理の回路設定での前記プログラマブル回路の遅延量が、前記第2の処理の回路設定での前記プログラマブル回路の遅延量よりも少ない場合、前記プログラマブル回路を前記第1の処理の回路設定から前記第2の処理の回路設定に切り替える場合に、当該遅延量の差に応じて、前記プログラマブル回路への入力データ停止する
    とを特徴とする情報処理装置の制御方法。
JP2019073720A 2019-04-08 2019-04-08 情報処理装置及びその制御方法 Active JP7325210B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019073720A JP7325210B2 (ja) 2019-04-08 2019-04-08 情報処理装置及びその制御方法
US16/839,327 US11550546B2 (en) 2019-04-08 2020-04-03 Processing apparatus, method of controlling the same, and non-transitory computer readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019073720A JP7325210B2 (ja) 2019-04-08 2019-04-08 情報処理装置及びその制御方法

Publications (3)

Publication Number Publication Date
JP2020173517A JP2020173517A (ja) 2020-10-22
JP2020173517A5 JP2020173517A5 (ja) 2022-04-12
JP7325210B2 true JP7325210B2 (ja) 2023-08-14

Family

ID=72662009

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019073720A Active JP7325210B2 (ja) 2019-04-08 2019-04-08 情報処理装置及びその制御方法

Country Status (2)

Country Link
US (1) US11550546B2 (ja)
JP (1) JP7325210B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7433931B2 (ja) 2020-01-27 2024-02-20 キヤノン株式会社 情報処理装置及びその制御方法及びプログラム
US11947487B2 (en) * 2022-06-28 2024-04-02 Advanced Micro Devices, Inc. Enabling accelerated processing units to perform dataflow execution

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005303990A (ja) 2004-02-27 2005-10-27 Matsushita Electric Ind Co Ltd 半導体記憶装置
US20060004993A1 (en) 2004-06-30 2006-01-05 Fujitsu Limited Processor and pipeline reconfiguration control method
JP2006085574A (ja) 2004-09-17 2006-03-30 Ip Flex Kk データ処理システムおよびその制御方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4414297B2 (ja) 2004-07-09 2010-02-10 パナソニック株式会社 プログラマブルロジックデバイス、コンフィギュレーション装置、コンフィギュレーション方法
JP2006236106A (ja) * 2005-02-25 2006-09-07 Canon Inc データ処理装置及びデータ処理方法
JP4838009B2 (ja) * 2006-02-22 2011-12-14 富士通セミコンダクター株式会社 リコンフィグラブル回路
JP5431003B2 (ja) 2009-04-03 2014-03-05 スパンション エルエルシー リコンフィギュラブル回路及びリコンフィギュラブル回路システム
JP5821332B2 (ja) * 2011-06-30 2015-11-24 株式会社ソシオネクスト リコンフィグ可能な集積回路装置
JP6092649B2 (ja) * 2013-02-15 2017-03-08 キヤノン株式会社 演算装置、アレイ型演算装置およびその制御方法、情報処理システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005303990A (ja) 2004-02-27 2005-10-27 Matsushita Electric Ind Co Ltd 半導体記憶装置
US20060004993A1 (en) 2004-06-30 2006-01-05 Fujitsu Limited Processor and pipeline reconfiguration control method
JP2006085574A (ja) 2004-09-17 2006-03-30 Ip Flex Kk データ処理システムおよびその制御方法

Also Published As

Publication number Publication date
US20200319852A1 (en) 2020-10-08
JP2020173517A (ja) 2020-10-22
US11550546B2 (en) 2023-01-10

Similar Documents

Publication Publication Date Title
JP6106779B2 (ja) 動的に再構成可能なパイプライン型プリプロセッサ
JP7325210B2 (ja) 情報処理装置及びその制御方法
US8581913B2 (en) Data processing apparatus and image processing apparatus
US11721373B2 (en) Shared multi-port memory from single port
US9552328B2 (en) Reconfigurable integrated circuit device
US10394989B2 (en) Method for creating an FPGA netlist
WO2013187191A1 (ja) I/oデバイス、プログラマブルロジックコントローラ及び演算方法
US10031846B1 (en) Transposition of two-dimensional arrays using single-buffering
US9940303B2 (en) Method and apparatus for decimation in frequency FFT butterfly
Cadenas et al. Parallel pipelined array architectures for real-time histogram computation in consumer devices
CN108198125B (zh) 一种图像处理方法及装置
JP7433931B2 (ja) 情報処理装置及びその制御方法及びプログラム
KR102440129B1 (ko) 저전력 모드 지원 컴퓨터 시스템 및 그것의 방법
US9966932B2 (en) Parallel filtering method and corresponding apparatus
US7607115B1 (en) System, method and computer program product for timing-independent sequential equivalence verification
US7673117B2 (en) Operation apparatus
JP2021182724A (ja) 信号処理装置及びその駆動制御方法
KR100481586B1 (ko) 모듈러 곱셈 장치
US9390220B2 (en) Bus-based clock to out path optimization
US9507541B2 (en) Computation device, computation method, and medium
TWI766891B (zh) 半導體裝置的處理器與其操作方法
JP2007018440A (ja) アーキテクチャ検証装置
JP2022500782A (ja) データ処理システム、方法、およびプログラム
CN111382094B (zh) 一种数据处理方法及装置
JP2010287122A (ja) 多重化用補助peおよび半導体集積回路

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

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220331

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230322

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230801

R151 Written notification of patent or utility model registration

Ref document number: 7325210

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151