(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-17
(45)【発行日】2024-09-26
(54)【発明の名称】情報処理装置、情報処理プログラム、及びプログラマブル論理回路
(51)【国際特許分類】
G06F 8/656 20180101AFI20240918BHJP
H03K 19/17752 20200101ALI20240918BHJP
G06F 15/78 20060101ALI20240918BHJP
【FI】
G06F8/656
H03K19/17752
G06F15/78 560
(21)【出願番号】P 2020167339
(22)【出願日】2020-10-01
【審査請求日】2023-09-19
(73)【特許権者】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】内山 順一
【審査官】松平 英
(56)【参考文献】
【文献】特開2011-199640(JP,A)
【文献】特開2011-203920(JP,A)
【文献】特開平10-285014(JP,A)
【文献】特開2014-186667(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00-8/38
8/60-8/77
9/44-9/445
9/451
15/78
30/00-30/398
H01L21/82-21/822
27/04
H03K19/098-19/23
(57)【特許請求の範囲】
【請求項1】
プロセッサを備え、
前記プロセッサは、
1の処理機能を実行する処理回路を構成する複数の分割回路に対応した複数の回路構成情報を取得し、
複数の部分再構成領域を、取得した前記複数の回路構成情報に対応する複数の分割回路に再構成する再構成処理を並行して実行させ
、
前記処理回路が実行する処理の次に実行すべき第1の次処理を実行する第1の次処理回路を、前記複数の部分再構成領域の一部の第1の部分再構成領域に再構成可能な場合、前記第1の部分再構成領域を、前記第1の次処理回路に再構成する再構成処理と、前記第1の部分再構成領域以外の第2の部分再構成領域を、前記第1の次処理の次に実行すべき第2の次処理を実行する第2の次処理回路を構成する複数の分割回路の一部の分割回路に再構成する再構成処理と、を並行して実行させる
情報処理装置。
【請求項2】
前記プロセッサは、
前記第1の次処理を実行した後、前記第1の部分再構成領域を、前記第2の次処理回路を構成する複数の分割回路の一部の分割回路以外の分割回路に再構成する
請求項
1記載の情報処理装置。
【請求項3】
前記複数の部分再構成領域は、直列に接続されており、
前記プロセッサは、
前記第1の次処理を実行する場合に、前記第2の部分再構成領域に再構成された前記一部の分割回路の処理の全てを実行しないように設定する
請求項
1又は請求項
2記載の情報処理装置。
【請求項4】
プロセッサを備え、
前記プロセッサは、
1の処理機能を実行する処理回路を構成する複数の分割回路に対応した複数の回路構成情報であって、対応する処理回路を識別するための識別符号を含む複数の回路構成情報を取得し、
複数の部分再構成領域を、取得した前記複数の回路構成情報に対応する複数の分割回路に再構成する再構成処理を並行して実行させ、
前記複数の回路構成情報の各々に含まれる前記識別符号が示す処理回路が同一の場合に、前記再構成処理を実行させる
情報処理装置。
【請求項5】
前記識別符号は、前記部分再構成領域を指定する符号を含み、
前記プロセッサは、
前記部分再構成領域を指定する符号に対応する部分再構成領域を、対応する分割回路に再構成する
請求項
4記載の情報処理装置。
【請求項6】
コンピュータに、
少なくとも1つの処理回路を構成する複数の分割回路のうち少なくとも2つ以上の複数の回路構成情報を取得し、
取得した前記複数の回路構成情報に基づいて、複数の部分再構成領域を、前記複数の回路構成情報に対応する複数の分割回路に再構成する
再構成処理を並行して実行させ
、
前記処理回路が実行する処理の次に実行すべき第1の次処理を実行する第1の次処理回路を、前記複数の部分再構成領域の一部の第1の部分再構成領域に再構成可能な場合、前記第1の部分再構成領域を、前記第1の次処理回路に再構成する再構成処理と、前記第1の部分再構成領域以外の第2の部分再構成領域を、前記第1の次処理の次に実行すべき第2の次処理を実行する第2の次処理回路を構成する複数の分割回路の一部の分割回路に再構成する再構成処理と、を並行して実行させる
処理を実行させるための情報処理プログラム。
【請求項7】
コンピュータに、
少なくとも1つの処理回路を構成する複数の分割回路のうち少なくとも2つ以上の複数の回路構成情報であって、対応する処理回路を識別するための識別符号を含む複数の回路構成情報を取得し、
取得した前記複数の回路構成情報に基づいて、複数の部分再構成領域を、前記複数の回路構成情報に対応する複数の分割回路に再構成する再構成処理を並行して実行させ、
前記複数の回路構成情報の各々に含まれる前記識別符号が示す処理回路が同一の場合に、前記再構成処理を実行させる
処理を実行させるための情報処理プログラム。
【請求項8】
請求項1~
5の何れか1項に記載の情報処理装置と、
前記情報処理装置により再構成される複数の部分再構成領域を含む再構成領域と、
を含むプログラマブル論理回路。
【請求項9】
前記複数の部分再構成領域の各々は、前記複数の部分再構成領域に再構成される可能性がある複数の回路に含まれるリソース回路の種類毎に最大数のリソース回路を含む
請求項8記載のプログラマブル論理回路。
【請求項10】
前記複数の部分再構成領域の各々に含まれるリソース回路の数が同
一である
請求項9記載のプログラマブル論理回路。
【請求項11】
前記複数の部分再構成領域は、バスを介して直列に接続されており、前記バスのバス幅は、前記複数の部分再構成領域に再構成される可能性がある複数の分割回路が必要とするバス幅のうち最大のバス幅である
請求項8~10の何れか1項に記載のプログラマブル論理回路。
【請求項12】
前記複数の再構成領域は、並列に接続されており、
前記複数の分割回路は、同一の処理を実行する回路である
請求項8~10の何れか1項に記載のプログラマブル論理回路。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理プログラム、及びプログラマブル論理回路に関する。
【背景技術】
【0002】
特許文献1には、画像処理装置であって、 内部の回路構成を動的かつ部分的に再構成可能な動的部分再構成部と、 前記動的部分再構成部の回路構成の再構成を制御する再構成制御手段と、を備え、 前記動的部分再構成部に構成される1または複数の処理回路はそれぞれ、データ処理部と、前記データ処理部による処理に用いられるパラメータを保持するパラメータ保持部とを含んで構成され、 前記パラメータ保持部は、前記データ処理部による処理における設定に応じたパラメータに対応する回路構成が定義され、 前記再構成制御手段は、前記データ処理部による処理における設定の変更に応じて前記パラメータ保持部の回路構成のみを再構成することを特徴とする画像処理装置が開示されている。
【0003】
特許文献2には、プログラマブル論理回路に、複数個の回路を順次に再構成しながら、再構成した回路による処理を並行して順次に実行させるようにする場合における前記複数個の回路の再構成方法であって、次に回路を再構成しようとする領域の少なくとも一部に、前に再構成されていて、その処理が実行されている前回路が存在するような回路については、前記前回路の領域と重なる部分と、重ならない部分とに、再構成のためのデータを分割しておき、前記重ならない部分を前記前回路の処理と並行して再構成し、前記前回路の処理が終了した後に、前記重なる部分を再構成することを特徴とするプログラマブル論理回路への回路の再構成方法が開示されている。
【0004】
特許文献3には、構成メモリに記憶した回路構成データを書き換えることにより、所定の再構成単位で再構成可能な再構成可能回路を有する画像処理装置であって、 再構成対象である再構成領域ごとに、前記再構成領域の中に構成される回路に応じた回路構成データを格納する格納手段と、 前記再構成単位の中に複数の再構成領域が含まれる場合、それぞれの再構成領域の中に構成される回路に応じた前記回路構成データを含む書き換え用データを合成する合成手段と、 前記合成手段による合成後の書き換え用データにより前記構成メモリの回路構成データを前記再構成単位で書き換える書き換え手段とを有することを特徴とする画像処理装置が開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2015-149025号公報
【文献】特開2001-320271号公報
【文献】特開2016-170629号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
再構成領域の回路を再構成することで処理機能を切り換えることが可能なFPGA(Field Programmable Gate Array)等の半導体装置では、第1の処理機能から第2の処理機能へ切り換えるとき、前記第2の処理機能を実行できるように再構成領域の回路を再構成する。
【0007】
このため、前記半導体装置は、前記第2の処理機能のための回路を再構成領域に再構成している間は、前記第2の処理機能に係る処理を実行することができない。
【0008】
本発明の目的は、1つの処理機能を実行する回路を1つの再構成領域のみに再構成する場合と比較して、 前記処理機能に係る再構成に要する所要時間を短くすることができる情報処理装置、情報処理プログラム、及びプログラマブル論理回路を提供することにある。
【課題を解決するための手段】
【0009】
第1態様に係る情報処理装置は、プロセッサを備え、前記プロセッサは、1の処理機能を実行する処理回路を構成する複数の分割回路に対応した複数の回路構成情報を取得し、複数の部分再構成領域を、取得した前記複数の回路構成情報に対応する複数の分割回路に再構成する再構成処理を並行して実行させる。
【0010】
第2態様に係る情報処理装置は、第1態様に係る情報処理装置において、前記プロセッサは、前記処理回路が実行する処理の次に実行すべき第1の次処理を実行する第1の次処理回路を、前記複数の部分再構成領域の一部の第1の部分再構成領域に再構成可能な場合、前記第1の部分再構成領域を、前記第1の次処理回路に再構成する再構成処理と、前記第1の部分再構成領域以外の第2の部分再構成領域を、前記第1の次処理の次に実行すべき第2の次処理を実行する第2の次処理回路を構成する複数の分割回路の一部の分割回路に再構成する再構成処理と、を並行して実行させる。
【0011】
第3態様に係る情報処理装置は、第2態様に係る情報処理装置において、前記プロセッサは、前記第1の次処理を実行した後、前記第1の部分再構成領域を、前記第2の次処理回路を構成する複数の分割回路の一部の分割回路以外の分割回路に再構成する。
【0012】
第4態様に係る情報処理装置は、第2態様又は第3態様に係る情報処理装置において、前記複数の部分再構成領域は、直列に接続されており、前記プロセッサは、前記第1の次処理を実行する場合に、前記第2の部分再構成領域に再構成された前記一部の分割回路の処理の全てを実行しないように設定する。
【0013】
第5態様に係る情報処理装置は、第1~第4態様の何れかの態様に係る情報処理装置において、前記複数の回路構成情報は、対応する処理回路を識別するための識別符号を含み、前記プロセッサは、前記複数の回路構成情報の各々に含まれる前記識別符号が示す処理回路が同一の場合に、前記再構成処理を実行させる。
【0014】
第6態様に係る情報処理装置は、第5態様に係る情報処理装置において、前記識別符号は、前記部分再構成領域を指定する符号を含み、前記プロセッサは、前記部分再構成領域を指定する符号に対応する部分再構成領域を、対応する分割回路に再構成する。
【0015】
第7態様に係る情報処理プログラムは、コンピュータに、少なくとも1つの処理回路を構成する複数の分割回路のうち少なくとも2つ以上の複数の回路構成情報を取得し、取得した前記複数の回路構成情報に基づいて、複数の部分再構成領域を、前記複数の回路構成情報に対応する複数の分割回路に再構成する処理を並行して実行させる。
【0016】
第8態様に係るプログラマブル論理回路は、第1~第6態様の何れかの態様に係る情報処理装置と、前記情報処理装置により再構成される複数の部分再構成領域を含む再構成領域と、を含む。
【0017】
第9態様に係るプログラマブル論理回路は、第8態様に係るプログラマブル論理回路において、前記複数の部分再構成領域の各々は、前記複数の部分再構成領域に再構成される可能性がある複数の回路に含まれるリソース回路の種類毎に最大数のリソース回路を含む。
【0018】
第10態様に係るプログラマブル論理回路は、第9態様に係るプログラマブル論理回路において、前記複数の部分再構成領域の各々に含まれるリソース回路の数が同等である。
【0019】
第11態様に係るプログラマブル論理回路は、第8~第10態様の何れかの態様に係るプログラマブル論理回路において、前記複数の部分再構成領域は、バスを介して直列に接続されており、前記バスのバス幅は、前記複数の部分再構成領域に再構成される可能性がある複数の分割回路が必要とするバス幅のうち最大のバス幅である。
【0020】
第12態様に係るプログラマブル論理回路は、第8~第10態様の何れかの態様に係るプログラマブル論理回路において、前記複数の再構成領域は、並列に接続されており、前記複数の分割回路は、同一の処理を実行する回路である。
【発明の効果】
【0021】
第1態様、第7態様、及び第8態様によれば、1つの処理機能を実行する回路を1つの再構成領域のみに再構成する場合と比較して、 前記処理機能に係る再構成に要する所要時間を短くすることができる。
【0022】
第2態様によれば、第2の次処理を実行する第2の次処理回路を構成する複数の分割回路の一部の分割回路を先行して再構成しない場合と比較して、第2の次処理の再構成の所要時間を短くすることができる。
【0023】
第3態様によれば、全ての部分再構成領域で第1の次処理が完了してから、第2の次処理の再構成を実行する場合と比較して、第1の次処理の開始から第2の次処理の完了までの時間を短くすることができる。
【0024】
第4態様によれば、第2の次処理回路を構成する複数の分割回路の一部の分割回路を先行して再構成することができる。
【0025】
第5態様によれば、不適切な画像処理が実行されてしまうのを防止することができる。
【0026】
第6態様によれば、再構成する部分再構成領域を指定することができる。
【0027】
第9態様によれば、再構成される可能性がある複数の回路の何れについても、複数の部分再構成領域の全てに再構成することができる。
【0028】
第10態様によれば、複数の部分再構成領域の各々に含まれるリソース回路の数が同等でない場合と比較して、再構成の所要時間を同等にすることができる。
【0029】
第11態様によれば、バス幅が異なる分割回路の組み合わせが存在する場合でも、バスを再構成する必要がない。
【0030】
第12態様によれば、並列に接続される分割回路について、再構成の所要時間を短くすることができる。
【図面の簡単な説明】
【0031】
【
図4】第1実施形態に係る再構成処理のフローチャートである。
【
図5】再構成領域に回路が再構成された状態を示す図である。
【
図6】再構成領域に回路が再構成された状態を示す図である。
【
図7】再構成領域に回路が再構成された状態を示す図である。
【
図8】再構成の所要時間について説明するためのタイミングチャートである。
【
図10】第2実施形態に係る再構成処理のフローチャートである。
【発明を実施するための形態】
【0032】
以下、図面を参照して、本発明を実施するための形態例を詳細に説明する。
【0033】
(第1実施形態)
【0034】
図1は、本実施形態に係る画像処理装置10の構成図である。画像処理装置10は、例えばスキャナ機能、コピー機能、プリント機能、及びファクシミリ機能等を備え、各種の画像処理を必要とする複合機等に適用されるが、これに限られるものではない。なお、画像処理装置10は、情報処理装置の一例である。
【0035】
図1に示すように、画像処理装置10は、コントローラ11を備える。コントローラ11は、CPU(Central Processing Unit)11A、ROM(Read Only Memory)11B、RAM(Random Access Memory)11C、及び入出力インターフェース(I/O)11Dを備える。そして、CPU11A、ROM11B、RAM11C、及びI/O11Dがシステムバス11Eを介して各々接続されている。システムバス11Eは、コントロールバス、アドレスバス、及びデータバスを含む。なお、CPU11Aは、プロセッサの一例である。
【0036】
また、I/O11Dには、通信部12、記憶部13、及び画像処理部14が接続されている。
【0037】
通信部12は、図示しない上位装置とデータ通信を行うためのインターフェースである。
【0038】
記憶部13は、ハードディスク等の不揮発性の外部記憶装置で構成され、後述する再構成処理プログラム20及び回路構成情報21等を記憶する。CPU11Aは、記憶部13に記憶された再構成処理プログラム20をRAM113Cに読み込んで実行する。なお、再構成処理プログラム20は、情報処理プログラムの一例である。
【0039】
画像処理部14は、回路を再構成することにより、複数種類の画像処理を切り替えて実行するプログラマブル論理回路で構成され、本実施形態では、一例としてFPGA(Field Programmable Gate Array)で構成される。
【0040】
図2に示すように、画像処理部14は、再構成領域SRを備える。再構成領域SRは、部分再構成領域BR1、BR2に予め分割されている。部分再構成領域BR1、BR2は、バスBSを介して直列に接続されている。なお、本実施形態では、一例として再構成領域SRが2つの部分再構成領域BR1、BR2に予め分割されている場合について説明するが、3つ以上の部分再構成領域に分割されていてもよい。以下では、部分再構成領域BR1、BR2を特に区別しない場合には、部分再構成領域BRと称する場合がある。なお、部分再構成領域BR1は第1の部分再構成領域の一例であり、部分再構成領域BR2は第2の部分再構成領域の一例である。
【0041】
部分再構成領域BR1には、コンフィグレーションポートCP1が接続されている。コンフィグレーションポートCP1に回路構成情報が入力されることにより、部分再構成領域BR1が、入力された回路構成情報に対応する回路に再構成される。同様に、部分再構成領域BR2には、コンフィグレーションポートCP2が接続されている。コンフィグレーションポートCP2に回路構成情報が入力されることにより、部分再構成領域BR2が、入力された回路構成情報に対応する回路に再構成される。なお、以下では、コンフィグレーションポートCP1、CP2を特に区別しない場合は、コンフィグレーションポートCPと称する場合がある。
【0042】
なお、部分再構成領域BR1、BR2に再構成された回路の一方の回路の処理の全てを実行しないようにする場合には、例えば処理の全てを実行させたくない回路に対応する設定値をレジスタRGに設定する。これにより、部分再構成領域BR1、BR2の両方に回路が再構成されている場合であっても、例えば部分再構成領域BR2に再構成された回路の処理の全てを実行させたくない場合には、レジスタRGに部分再構成領域BR2に対応する設定値を設定することで部分再構成領域BR1に再構成された回路の処理のみ実行させる。このため、部分再構成領域BR2に再構成された回路は、例えば部分再構成領域BR1に再構成された回路で処理されたデータに対して何も処理をせずにそのまま出力する。
【0043】
ここで、回路構成情報は、部分再構成領域BRに含まれる複数の論理ブロックの接続等に関する接続情報、及び、画像処理の設定に関するパラメータ情報を含む。
【0044】
部分再構成領域BRの再構成に要する所要時間は、回路構成情報の接続情報に基づいて論理ブロックを接続することで回路を再構成する再構成時間と、パラメータ情報に基づいて再構成後の回路の各種設定を行う設定時間と、により定まる。また、部分再構成領域BRの再構成に要する所要時間は、回路規模にほぼ比例する。ここで、回路規模は、例えば部分再構成領域BRに含まれるリソース回路の数等により定まる。また、リソース回路とは、再構成される回路の処理機能を実現するために必要な基本機能を実現する回路である。リソース回路としては、例えば汎用ロジック回路、メモリ、及び信号処理回路(Digital Signal Processor:DSP)等が挙げられるが、これらに限られるものではない。
【0045】
本実施形態では、一例として、画像処理部14が、異なる種類の画像処理A、画像処理B、及び画像処理Cを順次切り替えて実行する場合について説明する。
【0046】
また、1の処理機能の一例としての画像処理Aを実行する処理回路Aは、2つの分割回路A1、A2で構成され、記憶部13には、分割回路A1に対応した回路構成情報21A1、分割回路A2に対応した回路構成情報21A2が記憶されているものとする。
【0047】
また、処理回路Aが実行する画像処理Aの次に実行すべき画像処理Bを実行する処理回路Bは、回路規模が処理回路A、Cの約1/2である回路で構成され、記憶部13には、処理回路Bに対応した回路構成情報21Bが記憶されているものとする。なお、画像処理Bは、第1の次処理の一例であり、処理回路Bは、第1の次処理回路の一例である。
【0048】
また、画像処理Bの次に処理すべき画像処理Cを実行する処理回路Cは、2つの分割回路C1、C2で構成され、記憶部13には、分割回路C1に対応した回路構成情報21C1、分割回路C2に対応した回路構成情報21C2が記憶されているものとする。なお、画像処理Cは、第2の次処理の一例であり、処理回路Cは、第2の次処理回路の一例である。なお、以下では、回路構成情報21A1、21A2、21B、21C1、21C2を特に区別しない場合は、回路構成情報21と称する場合がある。
【0049】
ここで、FPGAには、例えば
図3に示すように、汎用ロジック回路LG、メモリMR、及び信号処理回路SP等のリソース回路がマトリックス上に配置されるのが通常であるが、必ずしも均等に配置されているわけではない。このため、例えば
図3に示すように部分再構成領域BR1、BR2の大きさ(面積)が同じであっても、含まれるリソース回路の種類及び数は場所によって異なる。
【0050】
また、画像処理A~Cは、必要とするリソース回路の種類及び数は異なるため、部分再構成領域BR1、BR2の各々は、部分再構成領域BR1、BR2に再構成される可能性がある複数の回路に含まれるリソース回路の種類毎に最大数のリソース回路を含む。また、部分再構成領域BR1、BR2の各々に含まれるリソース回路の数が同等であることが好ましい。ここで、リソース回路の数が同等であるとは、リソース回路の数が同一である場合に限らず、リソース回路の数の差が閾値(例えば数個)以下である場合も含む。
【0051】
本実施形態では、部分再構成領域BR1、BR2に再構成される可能性がある回路は、分割回路A1、A2、処理回路B、分割回路C1、C2であるため、これらの回路に含まれるリソース回路の種類毎に最大数のリソース回路を含むように、部分再構成領域BR1、BR2を設定する。
【0052】
例えば分割回路A1が必要とするリソース回路が、汎用ロジック回路10個、メモリ2個、DSP3個であり、分割回路A2が必要とするリソース回路が、汎用ロジック回路11個、メモリ2個、DSP2個であったとする。
【0053】
また、処理回路Bが必要とするリソース回路が、汎用ロジック回路5個、メモリ1個、DSP2個であったとする。
【0054】
また、分割回路C1が必要とするリソース回路が、汎用ロジック回路9個、メモリ3個、DSP2個であり、分割回路C2が必要とするリソース回路が、汎用ロジック回路9個、メモリ4個、DSP1個であったとする。
【0055】
さらに、部分再構成領域BR1に再構成される可能性がある回路が分割回路A1、処理回路B、分割回路C1であり、部分再構成領域BR2に再構成される可能性がある回路が分割回路A2、分割回路C2であったとする。
【0056】
この場合、部分再構成領域BR1に必要な汎用ロジック回路LGの数は、分割回路A1、処理回路B、分割回路C1のうち、必要とする汎用ロジック回路LGの数が最大である10個となる。
【0057】
また、部分再構成領域BR1に必要なメモリMRの数は、分割回路A1、処理回路B、分割回路C1のうち、必要とするメモリMRの数が最大である3個となる。
【0058】
また、部分再構成領域BR1に必要な信号処理回路SPの数は、分割回路A1、処理回路B、分割回路C1のうち、必要とする信号処理回路SPの数が最大である3個となる。
【0059】
同様に、部分再構成領域BR2に必要な汎用ロジック回路LGの数は、分割回路A2、分割回路C2のうち、必要とする汎用ロジック回路LGの数が最大である11個となる。
【0060】
また、部分再構成領域BR2に必要なメモリMRの数は、分割回路A2、分割回路C2のうち、必要とするメモリの数が最大である4個となる。
【0061】
また、部分再構成領域BR2に必要な信号処理回路SPの数は、分割回路A2、分割回路C2のうち、必要とする信号処理回路SPの数が最大である2個となる。
【0062】
このように、部分再構成領域BR1に含まれるリソース回路の数は16個、部分再構成領域BR2に含まれるリソース回路の数は17個であり、その差は1個である。このため、部分再構成領域BR1、BR2の再構成時間は、ほぼ同じとなる。
【0063】
また、部分再構成領域BR1、BR2を接続するバスBSのバス幅は、部分再構成領域BR1、BR2に再構成される可能性がある複数の回路が必要とするバス幅のうち最大のバス幅である。
【0064】
例えば従来のように、分割されていない1つの再構成領域SRに処理回路を再構成する場合は、処理回路内における複数の分割回路を接続するバスも再構成されるため、バス幅は自由に設定すればよい。例えば処理回路Aを構成する分割回路A1、A2を接続するバスのバス幅が16ビットであった場合において、処理回路Cを構成する分割回路C1、C2を接続するバスのバス幅は、処理回路Aと同じ16ビットにする必要はなく、例えば64ビットとしてもよい。
【0065】
しかしながら、部分再構成領域BR1、BR2を接続するバスBSは再構成できないため、部分再構成領域BR1、BR2に再構成される可能性がある複数の回路が必要とするバス幅のうち最大のバス幅とする必要がある。
【0066】
このため、例えば分割回路A1、A2を接続するバスBSに必要なバス幅が16ビットであり、分割回路C1、C2を接続するバスBSに必要なバス幅が64ビットであった場合には、バスBSのバス幅は64ビットとする。
【0067】
次に、
図4を参照して、本実施の形態に係る画像処理装置10の作用を説明する。CPU11Aにより再構成処理プログラム20を実行させることで、
図4に示す再構成処理が実行される。なお、
図4に示す再構成処理は、予め定めた時間毎に繰り返し実行される。
【0068】
ステップS100では、CPU11Aが、図示しない上位装置から画像データを受信すると共に画像処理A~Cの何れかの画像処理を実行するよう指示があったか否かを判定する。そして、画像処理の指示があった場合はステップS102へ移行し、画像処理の指示がない場合には本ルーチンを終了する。
【0069】
ステップS102では、CPU11Aが、部分再構成領域BR1、BR2の少なくとも一方について回路の再構成が必要か否かを判定する。そして、再構成が必要な場合はステップS104へ移行する。一方、再構成が必要でない場合、すなわち、上位装置から指示された画像処理に対応する回路が既に部分再構成領域BR1、BR2の少なくとも一方に存在する場合には、ステップS106へ移行する。
【0070】
ステップS104では、CPU11Aが、再構成が必要な回路の回路構成情報21を記憶部13から読み出すことにより取得する。
【0071】
ステップS106では、CPU11Aが、ステップS100で受信した画像データを画像処理部14に出力すると共に、ステップS104で取得した回路構成情報21をコンフィグレーションポートCPに出力する。これにより、回路構成情報21に応じた回路が部分再構成領域BRに再構成され、画像処理が実行される。また、CPU11Aは、必要な場合には、部分再構成領域BR1、BR2に再構成された回路を実行させないための設定値をレジスタRGに設定する。
【0072】
ステップS108では、CPU11Aが、画像処理部14から画像処理後の画像データを受信し、上位装置に出力する。
【0073】
以下、再構成領域SRにおける再構成の具体例について説明する。
【0074】
まず上位装置から画像データを受信すると共に画像処理Aの実行が指示された場合(ステップS100)は、CPU11Aは、記憶部13から処理回路Aを構成する分割回路A1、A2に対応した回路構成情報21A1、21A2を取得する(ステップS104)。
【0075】
そして、取得した画像データを部分再構成領域BR1に出力すると共に、回路構成情報21A1、21A2をコンフィグレーションポートCP1、CP2に並行して出力する(ステップS106)。画像処理部14では、部分再構成領域BR1、BR2を分割回路A1、A2に再構成する再構成処理が並行して実行される。
【0076】
これにより、
図5に示すように、画像処理部14は、分割回路A1、A2により構成された処理回路Aとして機能し、入力された画像データに対して画像処理Aを実行する。
【0077】
次に、上位装置から画像データを受信すると共に画像処理Bの実行が指示された場合(ステップS100)は、CPU11Aは、記憶部13から処理回路Bに対応した回路構成情報21Bと、処理回路Cを構成する分割回路C2に対応した回路構成情報21C2を取得する(ステップS104)。
【0078】
そして、取得した回路構成情報21B、21C2をコンフィグレーションポートCP1、CP2に並行して出力する(ステップS106)。画像処理部14では、部分再構成領域BR1、BR2を処理回路B、分割回路C2に再構成する再構成処理が並行して実行される。また、CPU11Aは、分割回路C2の全ての処理を実行させないための設定値をレジスタRGに設定する。
【0079】
これにより、
図6に示すように、画像処理部14は、処理回路Bとして機能し、分割回路C2は実行されず、入力された画像データに対して画像処理Bを実行する。分割回路C2では、処理回路Bから出力されたデータに対して、分割回路C2の機能に関する全ての処理を実行せずに、そのまま出力する。
【0080】
次に、上位装置から画像データを受信すると共に画像処理Cの実行が指示された場合(ステップS100)は、CPU11Aは、記憶部13から処理回路Cを構成する分割回路C1に対応した回路構成情報21C1を取得する(ステップS104)。そして、取得した回路構成情報21C1をコンフィグレーションポートCP1に出力する(ステップS106)。画像処理部14では、部分再構成領域BR1を分割回路C1に再構成する再構成処理が実行される。
【0081】
これにより、
図7に示すように、画像処理部14は、分割回路C1、C2により構成された処理回路Cとして機能し、入力された画像データに対して画像処理Cを実行する。
【0082】
このように、本実施形態では、再構成領域SRを予め部分再構成領域BR1、BR2に回路規模が同等となるように分割しておき、部分再構成領域BR1、BR2に対する回路の再構成を並行して実行する。これにより、回路を1つの再構成領域SRのみに再構成する場合と比較して、 再構成に要する所要時間が短くなる。
【0083】
図8には、従来のように1つの再構成領域SRのみに回路を再構成する場合、本実施形態のように、部分再構成領域BR1、BR2に並行して回路を再構成する場合における再構成及び画像処理の切り替えに関するタイミングチャートを示した。なお、括弧内の数値は時間を表している。
【0084】
ここでは、説明を簡単にするため、従来のように1つの再構成領域SRのみに回路を再構成する場合の所要時間Tが10(msec)かかるとする。なお、所要時間Tの内訳は、例えば回路の再構成時間T1が5(msec)、パラメータの設定時間T2が5(msec)である。
【0085】
また、部分再構成領域BR1に回路を再構成する所要時間Tが4(msec)かかるとする。なお、所要時間の内訳は、例えば回路の再構成時間T1が2(msec)、パラメータの設定時間T2が2(msec)である。
【0086】
また、部分再構成領域BR2に回路を再構成する所要時間Tが6(msec)かかるとする。なお、所要時間の内訳は、例えば回路の再構成時間T1が3(msec)、パラメータの設定時間T2が3(msec)である。
【0087】
このような場合において、従来のように1つの再構成領域SRのみに回路を再構成する場合において、再構成領域SRに処理回路Aが再構成されている状態で画像処理Aを実行した後に再構成領域SRを処理回路Bに再構成する際の所要時間Tは10(msec)である。また、画像処理Bの実行後に再構成領域SRを処理回路Cに再構成する際の所要時間Tも10(msec)である。
【0088】
これに対し、本実施形態のように部分再構成領域BR1、BR2に対して回路の再構成を並行して実行する場合、処理回路Aを構成する分割回路A1が部分再構成領域BR1に再構成されており、分割回路A2が部分再構成領域BR2に再構成されている状態から画像処理Aを実行した後に、部分再構成領域BR1に処理回路Bを再構成する所要時間Tは4(msec)である。ここで、部分再構成領域BR2については、処理回路Cを構成する分割回路C2を先行して再構成するが、再構成の所要時間Tは6(msec)である。このため、パラメータの設定については、1(msec)分しか実行できない。このため、残り2(msec)分のパラメータの設定については、次の再構成処理に持ち越す。
【0089】
従って、画像処理Aから画像処理Bに切り替える際の再構成の所要時間Tは4(msec)となり、従来と比較して6(msec)短くなる。
【0090】
次に、処理回路Bが部分再構成領域BR1に再構成されており、分割回路C2が部分再構成領域BR2に再構成されている状態で画像処理Bを実行した後に、部分再構成領域BR1に処理回路C1を再構成する所要時間Tは4(msec)である。また、部分再構成領域BR2については、画像処理Cに先行して分割回路C2が部分再構成領域BR2に再構成されているが、残り2(msec)分のパラメータの設定が終わっていない。このため、残り2(msec)分のパラメータの設定を実行する。
【0091】
従って、画像処理Bから画像処理Cに切り替える際の再構成の所要時間Tは4(msec)となる。ここで、部分再構成領域BR2について、先行して分割回路C2の再構成を行わない場合には、部分再構成領域BR2についての再構成の所要時間Tは6(msec)である。これにより、先行して分割回路C2の再構成を行わない場合と比較すると、画像処理Bから画像処理Cに切り替える際の再構成の所要時間Tは2(msec)短くなる。
【0092】
このように、本実施形態では、部分再構成領域BR1、BR2に対する回路の再構成を並行して実行するので、画像処理を切り替える際の再構成の所要時間が短くなる。その結果、画像処理A~Cが終了するまでの時間も短くなる。
【0093】
(第2実施形態)
【0094】
次に、第2実施形態について説明する。画像処理装置10の構成は第1実施形態と同一なので説明は省略する。
【0095】
第2実施形態では、画像処理Aを実行する処理回路Aの具体例について説明する。
【0096】
なお、本実施形態では、処理回路Aは、一例として画像処理Aとしてフィルター処理、具体的には画像を平滑化する平滑化フィルターである場合について説明するが、フィルター処理はこれに限られるものではない。
【0097】
平滑化フィルターでは、処理対象となる入力画像をN×N画素(Nは自然数)のウィンドウを設定し、各画素に係数を設定する。そして、注目画素の画素値を、ウィンドウに設定された係数に基づいて算出し、出力する。
図9には、一例として3×3画素のウィンドウW及び3×3のフィルタマトリクスFを示した。フィルタマトリクスFの各マトリクスにはフィルター係数「1/9」が設定されている。この場合、注目画素G1及び周辺画素G2~G9の各画素の画素値とフィルタマトリクスFの各マトリクスに設定されたフィルター係数との積和演算により得られた値が注目画素G1の画素値となる。
【0098】
ソフトウェアによるフィルター処理では、単純に周辺画素が格納されているメモリのアドレスにアクセスして処理すればよいが、FPGA等のハードウェアデバイスで高速処理する場合は、メモリアクセスがボトルネックとなる場合がある。このため、入力画像をデバイス内部のローカルメモリに一時的にバッファする方法がとられる。
【0099】
従って、平滑化処理を実行する処理回路Aは、入力画像を3×3のウィンドウにバッファリングする分割回路A1と、バッファリングされた3×3画素を参照し、平滑化処理をする分割回路A2と、の2つの分割回路に分けられる。
【0100】
平滑化処理を実行する回路は、通常は1つの回路にまとめられるが、本実施形態では、あえて分割回路A1、A2に分割し、再構成を並列で実行する。これにより、再構成の所要時間が短くなる。
【0101】
なお、上記では部分再構成領域BR1、BR2が直接に接続された例について説明したが、
図9に示すように部分再構成領域BR1、BR2を並列に接続してもよい。なお、
図9ではコンフィグレーションポートCP1、CP2の図示は省略している。
【0102】
図9の構成の場合、画像処理Aを実行する処理回路Aを構成する分割回路A1、A2は、同じ処理を実行する回路である。すなわち、画像処理Aは、複数の画素に対して並行して同じ処理を実行する処理である。
【0103】
このような場合も、通常は処理回路Aを分割せず1つの回路にまとめられるが、本実施形態では、あえて分割回路A1、A2に分割し、再構成を並列で実行する。これにより、再構成の所要時間が短くなる。
【0104】
(第3実施形態)
【0105】
次に、第3実施形態について説明する。画像処理装置10の構成は第1実施形態と同一なので説明は省略する。
【0106】
第3実施形態では、回路構成情報に、対応する処理回路を識別するための識別符号が含まれている場合について説明する。
【0107】
例えば処理回路Aを構成する分割回路A1、A2の回路構成情報には、識別符号「ID-A」が各々含まれる。この場合、部分再構成領域BR1、BR2を分割回路A1、A2に再構成する際には、部分再構成領域BR1、BR2の各々の内部メモリに識別符号「ID-A」が各々記憶される。CPU11Aは、処理回路Aによる画像処理A又は処理回路Cによる画像処理Cを実行する際には、その実行前に、部分再構成領域BR1、BR2の各々の内部メモリに記憶された識別符号が示す処理回路が同一の場合に処理回路による処理を許可する。
【0108】
図10には、第3実施形態にかかる再構成処理のフローチャートを示した。
図10に示す再構成処理は、第1実施形態で説明した
図4に示す再構成処理と比較して、ステップS105A、S105Bの処理が追加されている点が異なる。その他の処理は
図4に示す再構成処理と同一であるので説明は省略する。
【0109】
なお、ステップS105A、S105Bの処理は、実行が指示された画像処理が、複数の分割回路に分割された処理回路で実行される場合に必要な処理であり、処理回路が複数の分割回路に分割されていない画像処理を実行する場合は必要ない。従って、第1実施形態で説明した例の場合、画像処理A、Cを実行する際にはステップS105A、S105Bの処理は実行されるが、画像処理Bを実行する際にはステップS105A、S105Bの処理は実行されない。
【0110】
ステップS105Aでは、CPU11Aが、ステップS104で取得した部分再構成領域BR1、BR2に対応する各々の回路構成情報に含まれる各々の識別符号が同一か否かを判定する。識別符号が同一の場合はステップS106へ移行し、識別符号が同一でない場合はステップS105Bへ移行する。
【0111】
ステップS105Bでは、CPU11Aが、エラーを上位装置へ通知する。すなわち、画像処理は実行されない。このように、部分再構成領域BR1、BR2に記憶された識別符号が同一でない場合は画像処理が実行されないので、不適切な画像処理が実行されてしまうことがない。
【0112】
なお、識別符号は、部分再構成領域を指定する符号を含んでもよい。この場合、CPU11Aは、部分再構成領域を指定する符号に対応する部分再構成領域を、対応する分割回路に再構成する。
【0113】
例えば、処理回路Aを構成する分割回路A1の回路構成情報には、識別符号「ID-A」に、部分再構成領域BR1を指定する符号「1」が付加された識別符号「ID-A1」が含まれる。同様に、処理回路Aを構成する分割回路A2の回路構成情報には、識別符号「ID-A」に、部分再構成領域BR2を指定する符号「2」が付加された識別符号「ID-A2」が含まれる。
【0114】
これにより、CPU11Aは、部分再構成領域BR1が分割回路A1に再構成され、部分再構成領域BR2が分割回路A2に再構成されるように制御する。
【0115】
上記実施形態では、再構成処理プログラム20が記憶部13にインストールされている形態を説明したが、これに限定されるものではない。本実施形態に係る再構成処理プログラム20を、コンピュータ読取可能な記憶媒体に記録した形態で提供してもよい。例えば、本実施形態に係る再構成処理プログラム20を、CD(Compact Disc)-ROM及びDVD(Digital Versatile Disc)-ROM等の光ディスクに記録した形態、若しくはUSB(Universal Serial Bus)メモリ及びメモリカード等の半導体メモリに記録した形態で提供してもよい。また、本実施形態に係る再構成処理プログラム20を、通信部12に接続された通信回線を介して外部装置から取得するようにしてもよい。
【0116】
上記実施形態において、プロセッサとは広義的なプロセッサを指し、汎用的なプロセッサ(例えばCPU:Central Processing Unit、等)や、専用のプロセッサ(例えばGPU:Graphics Processing Unit、ASIC:Application Specific Integrated Circuit、FPGA:Field Programmable Gate Array、プログラマブル論理デバイス、等)を含むものである。
【0117】
また上記実施形態におけるプロセッサの動作は、1つのプロセッサによって成すのみでなく、物理的に離れた位置に存在する複数のプロセッサが協働して成すものであってもよい。また、プロセッサの各動作の順序は上記各実施形態において記載した順序のみに限定されるものではなく、適宜変更してもよい
【符号の説明】
【0118】
10 画像処理装置
14 画像処理部
SR 再構成領域
BR1、BR2 部分再構成領域