JP2014154935A - 再構成可能デバイス、及びそれを備えた画像形成装置 - Google Patents
再構成可能デバイス、及びそれを備えた画像形成装置 Download PDFInfo
- Publication number
- JP2014154935A JP2014154935A JP2013020748A JP2013020748A JP2014154935A JP 2014154935 A JP2014154935 A JP 2014154935A JP 2013020748 A JP2013020748 A JP 2013020748A JP 2013020748 A JP2013020748 A JP 2013020748A JP 2014154935 A JP2014154935 A JP 2014154935A
- Authority
- JP
- Japan
- Prior art keywords
- reconfiguration
- reconfigurable device
- area
- reconfigurable
- block
- 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.)
- Pending
Links
Images
Abstract
【課題】パーシャルリコンフィグ可能な再構成可能デバイスにより画像データ処理を実行するときのソフトウェア制御を、ASICで画像データ処理を実行する場合のソフトウェア制御から極力変更せずに実現する。
【解決手段】第2のリコンフィグ用ブロック83は、CPUI/F91、レジスタ92〜95、リコンフィグ制御部96、テーブル設定部97、リコンフィグ領域98を備えている。回路規模を要するテーブルデータは外部のメインメモリなどに格納される。外部のCPUより起動命令が入力されると、リコンフィグ制御部96はリコンフィグ領域98に回路をリコンフィグする。リコンフィグが完了すると、リコンフィグ制御部96はテーブル設定部97にテーブル設定を指示する。テーブル設定部97はテーブル設定の指示を受け、外部に格納されたテーブルデータを設定する。
【選択図】図6
【解決手段】第2のリコンフィグ用ブロック83は、CPUI/F91、レジスタ92〜95、リコンフィグ制御部96、テーブル設定部97、リコンフィグ領域98を備えている。回路規模を要するテーブルデータは外部のメインメモリなどに格納される。外部のCPUより起動命令が入力されると、リコンフィグ制御部96はリコンフィグ領域98に回路をリコンフィグする。リコンフィグが完了すると、リコンフィグ制御部96はテーブル設定部97にテーブル設定を指示する。テーブル設定部97はテーブル設定の指示を受け、外部に格納されたテーブルデータを設定する。
【選択図】図6
Description
本発明は、FPGA(Field Programmable Gate Array)やDRP(Dynamic Reconfigurable Processor)などの再構成可能デバイス、及びそれを備えた画像形成装置に関し、さらに詳しくは、再構成を行うときのソフトウェア制御を簡単にした再構成可能デバイス、及びそれを備えた画像形成装置に関する。
MFP(Multi Function Peripheral)のような画像形成装置においては、複数の複雑なアルゴリズムからなる画像処理を実行する。そこで、所望の実行速度を得るために、画像処理部は、通常、CPU(Central Processor Unit)よりも高速に動作可能なASIC(Application Specific Integrated Circuit)等の論理回路により実現されている。
図11は、従来の画像形成装置において画像処理部を構成するASICの一例を示すブロック図である。このASIC130は、それぞれが内部バスに接続されたCPU131、データ入出力部132a〜c、モータ制御部133、センサ解析部134、DAコントローラ135、スキャナ入力部136、スキャナ画像処理部137、プリンタ画像処理部138、及び画像データ出力部139を備えている。ここで、データ入出力部132a、b、cは、それぞれUSB、Ethernet(登録商標)、カードに対してデータを入出力する。また、本来はこの他にROM/RAM制御用のコントローラなどが存在するが、省略した。
この図において、カードからのプリンタ出力の場合、データ入出力部132cにより画像データを取得し、プリンタ画像処理部138によりプロッタエンジン(図示せず)へ出力可能な形式に変換し、画像データ出力部139によりプロッタエンジンへ画像データを出力する。
また、画像データ出力部139からの出力に並行して、センサ解析部134により機器情報を入手してフィードバックしながら、モータ制御部133によりプロッタエンジンのモータを動作させて用紙搬送やキャリッジの移動などを行う。さらに、DAコントローラ135によりインクジェット記録ヘッドへ出力するアナログデータ(駆動波)を出力する。CPU131はこれらを統括して制御する。このフローでは、スキャナ入力部136、スキャナ画像処理部137、及びデータ入出力部132a、132bは使用しない。
同様に、スキャナ(図示せず)により読み取ったスキャナデータをUSB経由でPC(パーソナルコンピュータ)へ送信する場合、スキャナ入力部136によりスキャナデータを取得し、スキャナ画像処理部137によりスキャナの特性に依存しない画像フォーマット・画質に変換し、データ入出力部132aによりPCへ送信する。このとき、センサ解析部134及びモータ制御部133を使用してスキャナを動作させる。CPU131はこれらを統括して制御する。このフローでは、プリンタ画像処理部138、画像データ出力部139、DAコントローラ135、及びデータ入出力部132b、132cは使用しない。
図12は、ASIC130によりスキャナ画像処理を実行するときのソフト制御フローについて説明するための図である。このソフト制御フローは、CPU131がスキャナ画像処理部137を制御するための処理であり、例えば1ページに1回実行される。
図示のように、まずCPU131はレジスタ設定、即ち画像処理パラメータをスキャナ画像処理部137内のレジスタに設定する処理を行い(ステップS21)、次にスキャナ画像処理部137を起動する(ステップS22)。その後、スキャナ画像処理部137からの画像処理完了の通知を受信したら(ステップS23:YES)、スキャナ画像処理を完了させる。
このように、ユースケースにより使用するモジュールが異なるが、ASICで構成されたモジュールの場合、その機能を自由に変更することができないため、未使用のモジュール用の領域を他の機能に割り当てることはできない。
この問題に対応可能なモジュールとして、FPGAやDRPなどの再構成可能デバイスがある。再構成可能デバイスでは、回路を一旦書き込んだ後でも、別の回路を構成するための回路データ(ハード構成情報)を外部から与えることにより、回路を再構成(リコンフィグレーション)することができる。インターネット等の発達により、再構成可能デバイスの回路を再構成するための回路データを、ネットワーク上に接続されたサーバ装置等からダウンロードすることもできるため、製品出荷後であっても、最新の回路データを画像処理装置に供給できる。また、FPGAの中には、動的に、即ちFPGAの動作中に、回路の一部を再構成(パーシャルリコンフィグレーション)可能なものもある。なお、画像処理部に再構成可能デバイスを用いた画像形成装置としては、特許文献1、2に記載された画像形成装置がある。
しかし、今までのパーシャルリコンフィグレーション(以下、リコンフィグレーションをリコンフィグと言う)では、リコンフィグの開始命令の送出、リコンフィグの完了待ち、及びレジスタやテーブルの初期化など、ASICに比べてソフトの制御項目が増えるという問題がある。その理由は、リコンフィグには、「リコンフィグ期間はハードに対する外部モジュール(CPUなど)のアクセスを受け付けない。」、「リコンフィグすると、内部状態は初期状態に戻る。」という性質があるからである。
本発明は、このような問題を解決するためになされたものであり、その目的は、パーシャルリコンフィグ可能な再構成可能デバイスにより画像データ処理を実行するときのソフトウェア制御を、ASICで画像データ処理を実行する場合のソフトウェア制御から極力変更せずに実現することである。
本発明は、パーシャルリコンフィグ可能なリコンフィグ領域を有するリコンフィグ用ブロックを備えた再構成可能デバイスであって、前記リコンフィグ用ブロックは、画像データ処理要求の入力を検知する入力検知手段と、該入力検知手段による検知に基づいてリコンフィグを実行し、画像データ処理回路及び設定情報記憶エリアを構築するリコンフィグ手段と、前記設定情報記憶エリアに、外部の記憶部に保持されている設定情報を書き込む設定情報書込み手段と、リコンフィグ領域に設定された画像データ処理回路を起動する起動手段と、を有する再構成可能デバイスである。
本発明によれば、パーシャルリコンフィグ可能な再構成可能デバイスにより画像データ処理を実行するときのソフトウェア制御を、ASICで画像データ処理を実行する場合のソフトウェア制御から極力変更せずに実現することができる。
以下、本発明の実施形態について図面を参照して説明する。
〈画像形成装置のハードウェア構成〉
図1は、本発明が適用される画像形成装置のハードウェア構成を示すブロック図である。
〈画像形成装置のハードウェア構成〉
図1は、本発明が適用される画像形成装置のハードウェア構成を示すブロック図である。
この画像形成装置50は、コントローラ部60と、エンジン部70からなる。コントローラ部60は、CPU61、ROM62、RAM63、FPGA64、HDD(ハードディスク装置)65、操作部66、及びエンジンI/F(インタフェース)67と、これらを接続するバス68とを備えている。また、エンジン部70は、スキャナエンジン71、プロッタエンジン72及びコントローラI/F73を備えている。
CPU61は、この画像形成装置50の全体の制御を司るプロセッサである。ROM62は、不揮発性の記憶手段であり、各種データや各種プログラムを記憶する。RAM63は、書き換え可能な記憶手段であって、画像データやその圧縮データを一時的に記憶したり、CPU61が各種プログラムを実行する際のワークメモリとして機能し、実行過程で得られるデータ等を一時的に記憶したりする。HDD65は、磁気的又は光学的に記録可能な記録媒体を有し、画像データやその圧縮データ、各種プログラムや各種設定情報、フォントデータ等を記憶する。CPU61は、ROM62やHDD65に予め記憶された各種プログラムを実行することにより各種機能を実現させ、画像処理装置50の各部の制御を統括的に行う。
FPGA64は、再構成可能なロジックデバイスであり、CPU61が行うには処理能力が不足するような画像処理等の演算処理や、外部機器との間の入出力処理を行う。FPGA64の内部構成及び動作の詳細については後述する。
操作部66は、操作ボタンや操作キーから構成され、ユーザからの操作入力を受け付ける。エンジンI/F67は、エンジン部70とのインタフェースであり、コントローラI/F73を介して、スキャナエンジン71で読み込まれた画像データや、プロッタエンジン72で印刷する画像データ等のデータの授受を行う。
スキャナエンジン71は、読取ガラスやADF(Auto Document Feeder)などの読取台にセットされた原稿の画像を読み取り、その画像を表す画像データに対して各種読取画像処理を施す。各種読取画像処理とは、例えば、シェーディング処理や、RGB処理(色変換処理、フィルタ処理、γ(ガンマ)変換処理、変倍処理等)である。そして、スキャナエンジン71は、処理後の画像データをRGBフォーマットに変換して出力する。
プロッタエンジン72は、電子写真方式やインクジェット方式等の画像形成部を備え、画像形成処理として、RGBフォーマットの画像データをCMYKフォーマットに変換し、印刷用紙等に印刷を行う。コントローラI/F73は、コントローラ部60とのインタフェースであり、上述したようにエンジンI/F67を介してコントローラ部60とデータの授受を行う。
〈FPGAの内部構成〉
図2は、図1におけるFPGAの内部構成を示すブロック図である。FPGA64は、それぞれが内部バスに接続されたCPU81、第1のリコンフィグ用ブロック82、第2のリコンフィグ用ブロック83、モータ制御部84、センサ解析部85、DAコントローラ86を備えている。ここで、モータ制御部84、センサ解析部85、DAコントローラ86は、それぞれ図11における同名の部分と同じ構成を有する。
図2は、図1におけるFPGAの内部構成を示すブロック図である。FPGA64は、それぞれが内部バスに接続されたCPU81、第1のリコンフィグ用ブロック82、第2のリコンフィグ用ブロック83、モータ制御部84、センサ解析部85、DAコントローラ86を備えている。ここで、モータ制御部84、センサ解析部85、DAコントローラ86は、それぞれ図11における同名の部分と同じ構成を有する。
FPGAとはハード構成をプログラミング可能なLSIである。FPGAは一般に電源投入時に、内部又は外部のメモリに格納されたハード構成情報を取り込み、そのハード構成情報に従い内部のハード構成を構築する。また、FPGAの中には、電源投入時以外にも、特定の領域のみのハード構成情報を取り込み、再構成(リコンフィグ)する機能を持つものがある。この機能をパーシャルリコンフィグ機能と呼ぶ。FPGA64では、パーシャルリコンフィグ機能を用いることで、必要に応じてハード構成を切り替えている。つまり、FPGA64は、パーシャルリコンフィグ可能なリコンフィグ領域を有するリコンフィグ用ブロックを備えた再構成可能デバイスである。
即ち、第1のリコンフィグ用ブロック82は、ハード構成を変えることで、画像データ処理回路として、それぞれUSB、Ethernet(登録商標)、カードに対する画像データの入出力を行うデータ入出力部82a、82b、82cとなる。同様に、第2のリコンフィグ用ブロック83には、画像データ処理回路として、スキャナ入力部83a、スキャナ画像処理部83b、プリンタ画像処理部83c、及び画像データ出力部83dのハード構成が構築される。
従って、カードからのプリンタ動作であれば、第1のリコンフィグ用ブロック82にはデータ入出力部82cを構成し、第2のリコンフィグ用ブロック83にはプリンタ画像処理部83c、及び画像データ出力部83dを構成すればよい。また、スキャナエンジン71からの画像データをUSB経由でPCへ送信する場合は、第1のリコンフィグ用ブロック82にはデータ入出力部82aを構成し、第2のリコンフィグ用ブロック83にはスキャナ入力部83a、及びスキャナ画像処理部83bを構成すればよい。同様にして、他のユースケースに対しても、必要な回路のみを構成することで、回路規模を縮小することができる。
〈一般的な構成のリコンフィグ用ブロックの内部構成、及びそれを有するFPGAにおけるソフト制御フロー〉
図3は、図2における第2のリコンフィグ用ブロックの一般的な内部構成を示すブロック図である。図示のように、第2のリコンフィグ用ブロック83は、リコンフィグ制御部96と、リコンフィグ領域98を備えている。
図3は、図2における第2のリコンフィグ用ブロックの一般的な内部構成を示すブロック図である。図示のように、第2のリコンフィグ用ブロック83は、リコンフィグ制御部96と、リコンフィグ領域98を備えている。
図4は、図3に示す第2のリコンフィグ用ブロックを有するFPGAによりスキャナ画像処理を実行するときのソフト制御フローを示すフローチャートである。このフローは、FPGA64内のCPU81が実行する。
CPU81は、まず第2のリコンフィグ用ブロック83内のリコンフィグ領域98が使用中か否かをリコンフィグ制御部96に対する問い合わせの回答により判断する(ステップS1)。そして、使用中でない場合は(ステップS1:NO)、そのままステップS2へ進む。また、使用中の場合は(ステップS1:YES)、使用中でなくなるまで待ち、使用中でなくなったらステップS2へ進む。
ステップS2では、リコンフィグ領域98にスキャナ画像処理部83bが構成されているか否かを判断する(ステップS2)。判断の結果、構成されていない場合は(ステップS2:NO)、リコンフィグ領域98にスキャナ画像処理部83bを構成するように、リコンフィグ制御部96に指示する(ステップS3)。
その後、リコンフィグ制御部96からのリコンフィグ完了の通知を待ち(ステップS4:NO→S4)、その通知を受けたら(ステップS4:YES)、ステップS5へ進む。リコンフィグ領域98にスキャナ画像処理部83bが構成されている場合は(ステップS2:YES)、そのままステップS5へ進む。
ステップS5では、レジスタ設定、即ちスキャナ画像処理部83bの画像処理パラメータを、リコンフィグによりリコンフィグ領域98に作成された設定情報記憶エリアとしてのレジスタに、設定情報(レジスタ設定値、テーブルデータ)を書き込む。
レジスタ設定の後、第2のリコンフィグ用ブロック83内の図示されていない起動レジスタに起動命令を送る(ステップS6)。その後、リコンフィグ領域98に作成された(もしくは第2のリコンフィグ用ブロック83内の図示されていない)完了通知レジスタからの画像処理完了の通知を受信したら(ステップS7:YES)、スキャナ画像処理を完了させる。
この図に示すフローと、図12に示すフローとを比較すると、この図に示すフローは、ステップS1〜S4が追加されているため、煩雑になっている。また、ステップS5の内容がステップS21の内容と同様になるとは限らない。
例えばスキャナ画像処理の内容がテーブルの参照による色変換であり、かつ1ページの画像を2ラインずつ変換する処理の場合について説明する。この場合、ASICを使用する図12のステップS21では、1ライン目は入出力データの領域・色変換のテーブルなどを設定し、2ライン目以降は色変換のテーブルは既に設定したものを使用する。従って、テーブルを書き換える必要はないため、入出力データ領域などを設定するのみでよい。
これに対し、FPGAを使用する図4のステップS5では、1ライン目の処理はステップS21と同様である。しかし、2ライン目以降については、リコンフィグが発生していなければテーブルの入力は不要であるが、例えば1ライン目と2ライン目との間にリコンフィグが発生していると、テーブルが初期化されるため、再設定を行う必要がある。また、リコンフィグ毎にステップS1〜S4を実行することも必要になる。このように、処理単位を細かくする程、設定に要するオーバーヘッドが増加していく。つまり、一般的なリコンフィグでは、ASICに比べてソフトの制御項目が増えるという問題がある。
〈本発明の実施形態に係るリコンフィグの基本動作〉
そこで、本発明の実施形態では、FPGA64内のリコンフィグ用ブロックの内部構成及び動作を工夫することで、ASICに比べてソフトの制御項目が増えるという問題を解決している。まず、本発明の実施形態に係るリコンフィグの基本動作について説明する。
そこで、本発明の実施形態では、FPGA64内のリコンフィグ用ブロックの内部構成及び動作を工夫することで、ASICに比べてソフトの制御項目が増えるという問題を解決している。まず、本発明の実施形態に係るリコンフィグの基本動作について説明する。
図5は、本発明の実施形態に係るFPGAにおけるリコンフィグの基本動作について説明するための図である。この図において、リコンフィグ用ブロック87は、図2における第1のリコンフィグ用ブロック82、第2のリコンフィグ用ブロック83に対応し、モジュール固定ブロック88は、モータ制御部84、センサ解析部85、DAコントローラ86に対応する。
ここで、リコンフィグ用ブロック87にモジュールAとモジュールBが排他的にリコンフィグされる構成であり、現在、モジュールBが展開されているものとする。この状態からモジュールAをリコンフィグするとき、FPGA64は下記(i)〜(vi)の動作を行う。
(i)ソフト→ハード:CPU81はリコンフィグ用ブロック87に対し、モジュールAをリコンフィグさせるコマンドを送る。
(ii)ハード:リコンフィグ用ブロック87は、受け付けたコマンドを内部に記憶する。
(iii)ハード:リコンフィグ用ブロック87は、モジュールBについて、必要な内部情報(レジスタ設定値など)を他領域(外部)に格納(退避)する。
(iv)ハード:リコンフィグ用ブロック87は、モジュールAのリコンフィグに必要なハード構成情報、及び内部情報を他領域から取得し、リコンフィグ及び設定を行う。
(v)ハード:リコンフィグ用ブロック87は、モジュールAを起動する。
(vi)ハード→ソフト:リコンフィグ用ブロック87は、モジュールAによる処理の完了をCPU81に通知する。
このように、(ii)〜(v)をソフトによる行う必要のないハード構成(ソフトに対して隠蔽)しているため、リコンフィグを意識しないソフト開発が可能となる。
(ii)ハード:リコンフィグ用ブロック87は、受け付けたコマンドを内部に記憶する。
(iii)ハード:リコンフィグ用ブロック87は、モジュールBについて、必要な内部情報(レジスタ設定値など)を他領域(外部)に格納(退避)する。
(iv)ハード:リコンフィグ用ブロック87は、モジュールAのリコンフィグに必要なハード構成情報、及び内部情報を他領域から取得し、リコンフィグ及び設定を行う。
(v)ハード:リコンフィグ用ブロック87は、モジュールAを起動する。
(vi)ハード→ソフト:リコンフィグ用ブロック87は、モジュールAによる処理の完了をCPU81に通知する。
このように、(ii)〜(v)をソフトによる行う必要のないハード構成(ソフトに対して隠蔽)しているため、リコンフィグを意識しないソフト開発が可能となる。
〈本発明の実施形態に係る第2のリコンフィグ用ブロックの内部構成〉
図6は、本発明の実施形態に係る第2のリコンフィグ用ブロックの内部構成を示すブロック図である。この構成は、図5に示す基本動作を図2における第2のリコンフィグ用ブロック83で実現可能にしたものである。
図6は、本発明の実施形態に係る第2のリコンフィグ用ブロックの内部構成を示すブロック図である。この構成は、図5に示す基本動作を図2における第2のリコンフィグ用ブロック83で実現可能にしたものである。
図示のように、第2のリコンフィグ用ブロック83は、CPUI/F91、画像データ出力用レジスタ92、プリンタ画像処理用レジスタ93、スキャナ画像処理用レジスタ94、スキャナ入力用レジスタ95、リコンフィグ制御部96、テーブル設定部97、及びリコンフィグ領域98を備えている。ここで、リコンフィグ制御部96が本発明に係るリコンフィグ手段及び起動手段に対応し、テーブル設定部97が設定情報書込み手段に対応する。
CPUI/F91は、CPU81との間でデータの入出力を行う手段である。画像データ出力用レジスタ92、プリンタ画像処理用レジスタ93、スキャナ画像処理用レジスタ94、スキャナ入力用レジスタ95は、それぞれ画像データ出力部83d、プリンタ画像処理部83c、スキャナ画像処理部83b、スキャナ入力部83aが画像データ処理を行うときに使用するパラメータの内、比較的データ量の少ないデータ、即ち例えば画像サイズなどのようなデータを格納する。色変換テーブルデータなど、回路規模を要するデータは、第2のリコンフィグ用ブロック83内ではなく、外部の記憶部としてのメインメモリ(図1におけるRAM63)などに格納する。
また、画像データ出力用レジスタ92、プリンタ画像処理用レジスタ93、スキャナ画像処理用レジスタ94、スキャナ入力用レジスタ95は、CPU81が、それぞれ画像データ出力部83d、プリンタ画像処理部83c、スキャナ画像処理部83b、スキャナ入力部83aを用いる画像処理を起動するための起動レジスタを有する。これらのレジスタは本発明に係る入力検知手段に対応する。
CPU81は、リコンフィグ領域98の状態に関わらず、各機能のレジスタ92〜95にアクセス可能である。ここでは、CPU81からテーブルデータへのアクセス方法として、CPUI/F91やレジスタ92〜95を経由しているが、直接メインメモリの特定領域に書き込み、その領域を指示する形態でもかまわない。
リコンフィグ制御部96は、第2のリコンフィグ用ブロック83全体の動作を制御する手段である。テーブル設定部97は、テーブルデータを外部から取得し、リコンフィグ領域98に設定する手段である。リコンフィグ領域98は、リコンフィグ制御部96が外部から取得したリコンフィグデータによりリコンフィグされるブロックである。
上述の構成をとることで、CPU81は、リコンフィグ領域98の状態に関わらず、全レジスタ及びテーブルにアクセスできる。従って、ハードを起動するためのレジスタにもアクセス可能であり、リコンフィグ領域98が他の機能として使用されていなければ、いつでも起動をかけることができる。
CPU81より起動命令がレジスタ92〜95に書き込まれると、それを基にリコンフィグ制御部96が動作し、リコンフィグデータを取得してリコンフィグ領域98に、対応する機能の回路を構成する。リコンフィグデータは、一般にはFPGA64の外部のROM(ここでは図1におけるROM62)に格納されている。
リコンフィグ領域98のリコンフィグが完了すると、リコンフィグ制御部96はテーブル設定部97にテーブル設定の起動を指示する。テーブル設定部97はテーブル設定の起動を受け、リコンフィグ領域98に構成されたテーブルに対し、外部に格納されたテーブルデータを設定する。
テーブル設定部97は、テーブルデータの設定が完了すると、そのことをリコンフィグ制御部96に通知する。通知を受けたリコンフィグ制御部96は、リコンフィグ領域98に対して起動をかける。
全処理(リコンフィグされた機能を用いた画像データ処理を含む)が完了すると、リコンフィグ領域98から、レジスタ92〜95を通してCPU81に対して完了通知を発行する。
なお、リコンフィグ領域98の状態が起動しようとしている機能と一致する場合は、リコンフィグは不要であるため、リコンフィグ制御部96により、リコンフィグ領域98の状態を検知し、リコンフィグの有無を判断する。
また、上述の説明では、テーブルデータの流れはメインメモリ→リコンフィグ領域98の一方向であった。しかし、処理の途中で使用するテーブルデータが変化し、そのテーブルデータを次の処理で使用するような用途も存在する場合のように、変化したテーブルデータの保持が必要な場合がある。その場合、リコンフィグを実施する前に、リコンフィグ領域98のテーブルに格納されたテーブルデータを、テーブル設定部97を通して、メインメモリに退避させることで、必要な機能を実現する。
〈本発明の実施形態に係る第2のリコンフィグ用ブロック〉
図7は、図6に示す第2のリコンフィグ用ブロックを有するFPGAによりスキャナ画像処理を実行するときのソフト制御フローを示すフローチャートである。
図7は、図6に示す第2のリコンフィグ用ブロックを有するFPGAによりスキャナ画像処理を実行するときのソフト制御フローを示すフローチャートである。
この図において、ステップS11、S12、S13、S14は、それぞれ図4におけるステップS1、S5、S6、S7と同様である。即ち、図4におけるステップS2〜S4に対応するステップが不要なため、CPU81によるソフトウェアの制御が簡略化されている。
ステップS2〜S4に対応するステップが不要な理由は以下のとおりである。リコンフィグの要否は、リコンフィグ制御部96がハード的に実行するため、ステップS2に対応するステップは不要となる。リコンフィグ自体もリコンフィグ制御部96がハード的に自動で実行するため、ステップS3及びS4に対応するステップも不要となる。また、レジスタ設定値はレジスタ92〜95により保持されており、テーブルデータはテーブル設定部97によりハード的に自動で設定されるので、リコンフィグすることによる特有の処理はステップS2のみとなる。また、テーブルの設定もハード化により高速化されているため、全体の処理性能も図4に示すフローに比べて向上する。
さらに、以下のような予約機能を加えることで、ステップS11も省略でき、従来のASICの場合のフロー(図12)と同等のフローで処理を実現することもできる。即ち、例えば、リコンフィグ領域98にスキャナ入力部83aが構成されており、動作中であるとする。ここでCPU81によりスキャナ画像処理の起動がかけられ、スキャナ画像処理用レジスタ94に起動命令が書き込まれた場合、リコンフィグ制御部96は、その起動情報をスキャナ画像処理用レジスタ94の予約領域に格納する。スキャナ入力部83aの処理が完了して、リコンフィグ領域98がフリーとなると、リコンフィグ制御部96は、上記で予約されていたスキャナ画像処理の起動後の処理を実行する。
〈本発明の実施形態に係る第1のリコンフィグ用ブロックの内部構成〉
図8は、本発明の実施形態に係る第1のリコンフィグ用ブロックの内部構成を示すブロック図である。
図8は、本発明の実施形態に係る第1のリコンフィグ用ブロックの内部構成を示すブロック図である。
図示のように、第1のリコンフィグ用ブロック82は、CPUI/F101、それぞれUSB、Ethernet(登録商標)、カードに対するデータ入出力に使用するレジスタ値を格納するためのデータ入出力用レジスタ102、103、104を備えている。また、第1のリコンフィグ用ブロック82は、リコンフィグ制御部105、リコンフィグ領域106、及び、それぞれUSB、Ethernet(登録商標)、カードからのアクセス要求を検知するアクセス要求検知部107、108、109を備えている。
外部アクセスを有する場合、特に、USBやEthernet(登録商標)のように外部からのアクセスが不特定のタイミングで発生するインタフェースの場合、リコンフィグ領域に全ての回路を配置するとアクセス要求を取りこぼすことにつながる。一方で、ローエンドの装置ではUSBプリント時にはEthernet(登録商標)経由でのプリント動作を排除するものもあり、それらの機能が必ずしも同時に実装されている必要がない場合がある。
そこで、本実施形態では、アクセス要求を検知する回路をリコンフィグ領域106外に配置して、アクセス要求があり次第、リコンフィグ領域106にそれぞれのハードを再構成するという構成を採用した。
例えば、アクセス要求検知部108であれば、自分宛のパケットか否かを判定し、自分以外宛のパケットを破棄するフィルタリング回路や、リコンフィグが完了するまでの間に受け取るパケットを保持するためのバッファを備えていることが望ましい。
また、リコンフィグ領域106がUSBとして使用中であるなど、すぐに再構成ができない場合や、バッファの容量が足りなくてオーバーフローする場合など向けに、再送要求する回路まで含んでいてもよい。
また、外部からではなく、内部から外部に対してアクセス要求を出す場合に関しては、図6で示した例のように、CPU81からの起動信号をCPUI/F101がデータ入出力用レジスタ102、103、104に設定することにより、起動信号をトリガとしてリコンフィグを行うことができる。
〈FPGAにおけるメモリ構成〉
図9は、本発明の実施形態に係るFPGAにおけるメモリ構成を示す図であり、図10は、図9における各メモリの特徴を示す図である。
図9は、本発明の実施形態に係るFPGAにおけるメモリ構成を示す図であり、図10は、図9における各メモリの特徴を示す図である。
一般的に、組み込みシステムではDRAM等のメインメモリとフラッシュメモリ等の不揮発性メモリを使用する。図2では省略したが、FPGA64は、メインメモリコントローラ121、及び不揮発性メモリコントローラ122を備えており、それぞれメインメモリ123、不揮発性メモリ124が接続される。また、図示を省略したが、FPGA64内にSRAMが配置されている。回路構成によっては、汎用のSRAMとして使用することもできる。
次に図10に示す各種メモリを図6におけるテーブルデータの退避先として使用する場合について説明する。
《SRAM》
例えば、第2のリコンフィグ用ブロック83で使用したテーブルデータの退避が必要であるとする。第1のリコンフィグ用ブロック82ではブロックサイズに対して、現在使用している機能の実現に要するメモリサイズが小さく、未使用領域がある場合には、未使用領域を汎用SRAMとして構成し、その汎用SRAMにテーブルデータを退避させることができる。
《SRAM》
例えば、第2のリコンフィグ用ブロック83で使用したテーブルデータの退避が必要であるとする。第1のリコンフィグ用ブロック82ではブロックサイズに対して、現在使用している機能の実現に要するメモリサイズが小さく、未使用領域がある場合には、未使用領域を汎用SRAMとして構成し、その汎用SRAMにテーブルデータを退避させることができる。
この場合の優位点は、アクセス自体が高速であることに加え、CPUなど、他の機能にアクセスを阻害されないため、より高速にテーブルを設定可能なことである。劣位点は、未使用領域以上のテーブルデータを格納することができず、第1のリコンフィグ用ブロック82を再構成して未使用領域が減った場合には格納したテーブルデータが破壊されることである。
《フラッシュメモリ》
フラッシュメモリは主にプログラムを格納するメモリとして使用される。また、FPGAの場合、コンフィグ用のデータを格納するためのメモリとしても使用される。近年では、超高集積のNAND型のフラッシュメモリが広く出回り、容量に余裕のあるシステムが増えているので、その空き容量にテーブルデータを退避させることができる。
フラッシュメモリは主にプログラムを格納するメモリとして使用される。また、FPGAの場合、コンフィグ用のデータを格納するためのメモリとしても使用される。近年では、超高集積のNAND型のフラッシュメモリが広く出回り、容量に余裕のあるシステムが増えているので、その空き容量にテーブルデータを退避させることができる。
この場合の優位点は、より多くのテーブルデータを格納できることである。また、不揮発性であるため、仮に省エネモードで周辺のICの電源を落とすなどの制御を実施する場合や、場合によっては機器電源をオフにした場合においても、CPUによるテーブルの設定が不要となる場合もある。
劣位点は、書き換え回数に制限があることと、速度が遅いことであり、短時間にテーブルを何度も書き換える場合や、退避させるテーブルデータが頻繁に変化する場合には向かない。
《DRAM》
DRAMはプログラム実行領域や、データを一時的に格納するためのメモリであり、テーブルデータを格納することもできる。アクセス速度・集積度に関してはSRAMとフラッシュメモリの中間的な性質といえる。
DRAMはプログラム実行領域や、データを一時的に格納するためのメモリであり、テーブルデータを格納することもできる。アクセス速度・集積度に関してはSRAMとフラッシュメモリの中間的な性質といえる。
《複合利用》
上記のとおり、高速性能ではSRAMが優位であるため、高速性能を求められる場合には、FPGA内に未使用領域がある時は極力SRAMを使用することが望ましい。ただし、回路構成によってはテーブルデータを格納できる容量が確保できなかったり、リコンフィグの際にテーブルデータが破壊されたりする場合がある。それを防ぐために、SRAMでテーブル分の容量を確保できない場合や、リコンフィグが発生する場合にはテーブルデータをメインメモリなどに退避させる手段が考えられる。このように、柔軟に格納先を切り替えることで、最適な機能・性能を選択することができる。
上記のとおり、高速性能ではSRAMが優位であるため、高速性能を求められる場合には、FPGA内に未使用領域がある時は極力SRAMを使用することが望ましい。ただし、回路構成によってはテーブルデータを格納できる容量が確保できなかったり、リコンフィグの際にテーブルデータが破壊されたりする場合がある。それを防ぐために、SRAMでテーブル分の容量を確保できない場合や、リコンフィグが発生する場合にはテーブルデータをメインメモリなどに退避させる手段が考えられる。このように、柔軟に格納先を切り替えることで、最適な機能・性能を選択することができる。
以上詳細に説明したように、本発明の実施形態に係るFPGAによれば、下記(1)〜(10)の効果がえられる。
(1)画像データ処理を実行するときのソフトウェアの制御をASICで構成した場合から極力変更なしで実現することができるので、FPGAの回路規模を削減できる。
(2)設定情報を外部の記憶部に格納しておくので、大容量のテーブルデータを設定する場合にも、FPGAの回路規模を抑えることができる。
(3)外部の記憶部として、メインメモリを用いた場合、書き換えの回数の制限がなく、比較的高速にアクセス可能である。
(4)外部の記憶部として、フラッシュメモリなどの不揮発性メモリを用いた場合、途中で省エネ状態に移行するなどで、仮にメインメモリの電源を落としても設定データが保持される。
(5)設定情報をFPGAの使用していない領域を用いた場合、最高速でアクセス可能であり、回路規模の増加にはつながらない。
(6)「FPGAの使用していない領域が足りない場合は外部のメモリを使用する。」、「メインメモリの電源を落とす場合には不揮発性メモリを使用する。」のように、状況に応じて柔軟に格納先を切り替えることで、最適な機能・性能を選択することができる。
(7)起動命令があったことをリコンフィグ実行の判断材料とすることで、不要なリコンフィグを避けることができる。
(8)リコンフィグしようとする領域の回路が動作中であった場合には、起動命令を予約しておき、動作が完了した後、自動的に再構成・設定・起動を制御するので、ソフト制御的に、リコンフィグであることを意識する必要がなくなる。
(9)外部インタフェースからのアクセス要求を検知する回路をリコンフィグ領域ではなく固定領域に確保し、アクセス要求を検知次第、リコンフィグ領域に外部インタフェース回路をリコンフィグする。これにより、アクセス要求のとりこぼしを防止し、確実にリコンフィグすることができる。
(10)アクセス要求を検知するための回路内(又は該回路に併設して)外部インタフェースに再送を要求する回路を設けることにより、リコンフィグの遅れなどに対処することができる。
(1)画像データ処理を実行するときのソフトウェアの制御をASICで構成した場合から極力変更なしで実現することができるので、FPGAの回路規模を削減できる。
(2)設定情報を外部の記憶部に格納しておくので、大容量のテーブルデータを設定する場合にも、FPGAの回路規模を抑えることができる。
(3)外部の記憶部として、メインメモリを用いた場合、書き換えの回数の制限がなく、比較的高速にアクセス可能である。
(4)外部の記憶部として、フラッシュメモリなどの不揮発性メモリを用いた場合、途中で省エネ状態に移行するなどで、仮にメインメモリの電源を落としても設定データが保持される。
(5)設定情報をFPGAの使用していない領域を用いた場合、最高速でアクセス可能であり、回路規模の増加にはつながらない。
(6)「FPGAの使用していない領域が足りない場合は外部のメモリを使用する。」、「メインメモリの電源を落とす場合には不揮発性メモリを使用する。」のように、状況に応じて柔軟に格納先を切り替えることで、最適な機能・性能を選択することができる。
(7)起動命令があったことをリコンフィグ実行の判断材料とすることで、不要なリコンフィグを避けることができる。
(8)リコンフィグしようとする領域の回路が動作中であった場合には、起動命令を予約しておき、動作が完了した後、自動的に再構成・設定・起動を制御するので、ソフト制御的に、リコンフィグであることを意識する必要がなくなる。
(9)外部インタフェースからのアクセス要求を検知する回路をリコンフィグ領域ではなく固定領域に確保し、アクセス要求を検知次第、リコンフィグ領域に外部インタフェース回路をリコンフィグする。これにより、アクセス要求のとりこぼしを防止し、確実にリコンフィグすることができる。
(10)アクセス要求を検知するための回路内(又は該回路に併設して)外部インタフェースに再送を要求する回路を設けることにより、リコンフィグの遅れなどに対処することができる。
50…画像形成装置、64…FPGA、82…第1のリコンフィグ用ブロック、83…第2のリコンフィグ用ブロック、91,101…CPUI/F、92…画像データ出力用レジスタ、93…プリンタ画像処理用レジスタ、94…スキャナ画像処理用レジスタ、95…スキャナ入力用レジスタ、96,105…リコンフィグ制御部、97…テーブル設定部、98,106…リコンフィグ領域。
Claims (9)
- パーシャルリコンフィグ可能なリコンフィグ領域を有するリコンフィグ用ブロックを備えた再構成可能デバイスであって、
前記リコンフィグ用ブロックは、画像データ処理要求の入力を検知する入力検知手段と、該入力検知手段による検知に基づいてリコンフィグを実行し、画像データ処理回路及び設定情報記憶エリアを構築するリコンフィグ手段と、前記設定情報記憶エリアに、外部の記憶部に保持されている設定情報を書き込む設定情報書込み手段と、リコンフィグ領域に設定された画像データ処理回路を起動する起動手段と、を有する再構成可能デバイス。 - 請求項1に記載された再構成可能デバイスにおいて、
前記リコンフィグ手段は、リコンフィグ領域のリコンフィグの要否を判断し、必要と判断した場合のみリコンフィグを実行する、再構成可能デバイス。 - 請求項1に記載された再構成可能デバイスにおいて、
前記入力検知手段は、画像データ処理の起動情報がCPUの制御により設定されるレジスタである、再構成可能デバイス。 - 請求項1に記載された再構成可能デバイスにおいて、
前記入力検知手段は、外部インタフェースからのアクセス要求の検知手段である、再構成可能デバイス。 - 請求項3に記載された再構成可能デバイスにおいて、
前記画像データ処理に必要な設定情報のうち、外部に保持されている設定情報以外のものが前記CPUの制御により設定されるレジスタを有する、再構成可能デバイス。 - 請求項1に記載された再構成可能デバイスにおいて、
前記外部の記憶部は、他のリコンフィグ用ブロックの使用していない領域である、再構成可能デバイス。 - 請求項1に記載された再構成可能デバイスにおいて、
前記外部の記憶部は、メインメモリ又はフラッシュメモリである、再構成可能デバイス。 - 請求項1に記載された再構成可能デバイスにおいて、
前記リコンフィグ手段は、リコンフィグ領域が動作中か否かを判断し、動作中であった場合は、データ修理要求をリコンフィグ用ブロック内に記憶しておき、前記動作が終了した後にリコンフィグを実行する、再構成可能デバイス。 - 請求項1〜8のいずれかに記載された再構成可能デバイスを備えた画像形成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013020748A JP2014154935A (ja) | 2013-02-05 | 2013-02-05 | 再構成可能デバイス、及びそれを備えた画像形成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013020748A JP2014154935A (ja) | 2013-02-05 | 2013-02-05 | 再構成可能デバイス、及びそれを備えた画像形成装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014154935A true JP2014154935A (ja) | 2014-08-25 |
Family
ID=51576425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013020748A Pending JP2014154935A (ja) | 2013-02-05 | 2013-02-05 | 再構成可能デバイス、及びそれを備えた画像形成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014154935A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032010A (zh) * | 2018-07-17 | 2018-12-18 | 阿里巴巴集团控股有限公司 | Fpga器件及基于其的数据处理方法 |
CN110704360A (zh) * | 2019-09-29 | 2020-01-17 | 华中科技大学 | 一种基于异构fpga数据流的图计算优化方法 |
-
2013
- 2013-02-05 JP JP2013020748A patent/JP2014154935A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032010A (zh) * | 2018-07-17 | 2018-12-18 | 阿里巴巴集团控股有限公司 | Fpga器件及基于其的数据处理方法 |
CN110704360A (zh) * | 2019-09-29 | 2020-01-17 | 华中科技大学 | 一种基于异构fpga数据流的图计算优化方法 |
CN110704360B (zh) * | 2019-09-29 | 2022-03-18 | 华中科技大学 | 一种基于异构fpga数据流的图计算优化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9407784B2 (en) | Image processing apparatus, control method thereof, and storage medium | |
US9524177B2 (en) | Information processing apparatus, method for controlling information processing apparatus, and storage medium | |
JP5411530B2 (ja) | 並列処理プロセッサシステム | |
JP5948976B2 (ja) | 画像形成装置および情報処理装置 | |
US20160036998A1 (en) | Image processing apparatus and system for controlling processing for writing configuration data to partial reconfiguration area, and information processing method | |
JP5438371B2 (ja) | 画像処理装置および画像処理方法 | |
JP2015201766A (ja) | 画像処理装置、その制御方法及びプログラム | |
JP6370063B2 (ja) | 画像処理装置及びその制御方法、並びにプログラム | |
JP2014154935A (ja) | 再構成可能デバイス、及びそれを備えた画像形成装置 | |
JP5277615B2 (ja) | データ処理装置及びデータ処理プログラム | |
US9760285B2 (en) | Image processing system and image processing apparatus for configuring logical circuit on circuit according to configuration data | |
JP2014165803A (ja) | 再構成可能デバイス、及びそれを備えた画像形成装置 | |
US20110292448A1 (en) | Program execution control method | |
JP2007223163A (ja) | 画像形成装置、画像表示方法 | |
JP6357804B2 (ja) | 画像処理装置、集積回路、及び画像形成装置 | |
JP6516489B2 (ja) | 情報処理装置 | |
JP4175404B2 (ja) | Dma制御方法及びdmaコントローラ | |
JP5186432B2 (ja) | 画像処理装置 | |
JP5205843B2 (ja) | 演算処理装置及び演算処理プログラム | |
US20220066666A1 (en) | Information processing apparatus and non-transitory computer readable medium | |
US20150124297A1 (en) | Image processing device and image processing method | |
JP5904148B2 (ja) | 再構成可能回路、画像形成装置及びプログラム | |
JP5245803B2 (ja) | 画像処理装置及び画像処理モジュール | |
JP6349995B2 (ja) | データ処理装置 | |
JP6379757B2 (ja) | 画像処理装置および画像形成装置 |