説明

データ処理装置

【課題】並列処理のための複数の同種回路を再構成可能回路上に一度に構成できない場合でも、その並列処理を可能とする。
【解決手段】入力された画像データに対して、ランレングス圧縮とハフマン符号化による圧縮符号化を行う場合を考える。再構成可能回路に構成する第1段階のコンフィギュレーションには、並列処理のための2系統のランレングス圧縮回路102a及び102bと、それら各回路の出力データをそれぞれ保持するFIFO108a及び108bとが含まれる。例えば奇数ページのデータがランレングス圧縮回路102aに、偶数ページがランレングス圧縮回路102bに供給される。圧縮処理が進んで、FIFO108a及び108bの少なくとも一方が満杯になった時点で、再構成可能回路は第2段階のコンフィギュレーションに再構成される。これには、圧縮結果を保持したFIFO108a及び108bが残り、更にそれらFIFOから供給されるデータを符号化する2つのハフマン符号化回路が含まれる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置に関する。
【背景技術】
【0002】
特許文献1には、画像データをバンド分割し、圧縮データが全て0の場合は、圧縮処理を省略し、終点符号のみをメモリに送る高速符号化方式が開示されている。
【0003】
特許文献2には、画像データを周波数変換し、低周波領域を色変換することで、色変換と圧縮処理を同時に実行する装置が開示されている。
【0004】
特許文献3に開示された装置では、符号化処理部が、入力された画像データを圧縮符号化する。符号記憶部は、この圧縮符号化後の符号とその符号化前の画像データとを関連付けて記憶する。画像判定処理部は、この記憶されている各画像データと入力画像データとの画像の同一性又は類似性を判定する。符号選択部は、この判定により両画像の同一性又は類似性がないと判定したときは入力画像データについて符号化処理部で符号化を行ない符号記憶部でその圧縮符号化後の符号とその符号化前の画像データとを関連付けて記憶し、画像の同一性又は類似性があると判定したときはその同一性又は類似性があると判定した符号記憶部で記憶されている画像データと関連付けられている符号を出力する。
【0005】
特許文献4に開示された論理検証装置は、動的に再構成可能なFPGAと、複数のコンフィギュレーションデータを格納するコンフィギュレーションメモリと、複数のコンフィギュレーションデータを順次選択してFPGAに順次書き込む動作を複数のコンフィギュレーションデータの全てに対して実行するサイクルを複数回繰り返す第1のセレクト回路を含み、コンフィギュレーションデータによってFPGA上に実現される論理は順次書き込む動作毎に入れ替えられる。また、この文献には、前記論理検証装置が、記憶装置と、該記憶装置と該FPGAとの間の配線接続を自由に構成可能な配線用回路を更に含み、第1のサイクルで該FPGA上に実現される回路から出力される値を該配線用回路を介して該記憶装置に格納し、第2のサイクルで該FPGA上に実現される回路に対して該記憶装置に格納されている該値を該配線用回路を介して入力するように構成することも開示されている。また、前記記憶装置としてFIFO(First In First Out)メモリを用いることも開示されている。
【0006】
特許文献5には、論理回路装置は、複数の回路の各々に関する回路構成情報を記憶する回路構成情報メモリと、動作中に前記回路構成情報を用いて回路構成を再構成可能なプログラマブル論理回路と、前記各回路の処理に関する入力データ及び出力データを、前記各回路ごとに蓄積する処理データメモリと、前記処理データメモリへの前記入力又は出力データの少なくとも一方の蓄積量を前記各回路毎に監視し、これらの蓄積量がある条件を満たした場合に、前記プログラマブル論理回路の回路構成を変更する制御部とを備える。この文献には、処理データメモリとしてFIFOを用いることも開示されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2001−245162号公報
【特許文献2】特開2002−077657号公報
【特許文献3】特開2005−039316号公報
【特許文献4】特開2004−200311号公報
【特許文献5】特開2005−124130号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明は、並列処理のための複数の同種回路を再構成可能回路上に一度に構成できない場合でも、その並列処理を可能とすることを目的とする。
【課題を解決するための手段】
【0009】
請求項1に係る発明は、回路構成を動的に再構成可能な再構成可能回路と、前記再構成可能回路を制御する制御手段と、を備え、前記制御手段は、複数の第1処理回路と、前記複数の第1処理回路の各々にそれぞれ対応する複数の第1保持回路と、を前記再構成可能回路上に再構成する第1段階再構成制御と、前記第1段階再構成制御により前記再構成可能回路上に再構成された前記複数の第1処理回路の各々に対してそれぞれ異なる入力データを入力して並列的に処理させ、前記複数の第1処理回路の各々から出力された処理結果データをそれぞれ対応する前記第1保持回路に入力して保持させることを、前記複数の第1保持回路のうちのいずれかに対して入力された前記処理結果データの量が当該第1保持回路の容量の上限に達するまで繰り返す第1段階処理制御と、前記第1段階処理制御の後、前記複数の第1保持回路は残したまま、前記複数の第1処理回路に代えて複数の第2処理回路を前記再構成可能回路上に再構成する第2段階再構成制御と、前記第2段階再構成制御により前記再構成可能回路上に再構成された前記複数の第2処理回路の各々に対し、それぞれ対応する第1保持回路に保持された前記処理結果データを入力して並列的に処理させ、前記複数の第1保持回路に保持された前記処理結果データのすべてが前記複数の第2処理回路で処理された場合に、再び前記第1段階再構成制御に戻る第2段階処理制御と、を繰り返し実行することを特徴とするデータ処理装置である。
【0010】
請求項2に係る発明は、前記第1段階処理制御において前記複数の第1保持回路の各々に対して入力された前記処理結果データの量に基づき、当該第1段階処理制御の後の前記第2段階処理制御の次に行われる前記第1段階再構成制御での前記複数の第1保持回路の各々の容量を割り当てる容量割当手段であって、前記第1段階処理制御において入力された前記処理結果データの量が多い第1保持回路ほど、より多い容量を割り当てることを特徴とする容量割当手段、を更に備え、前記制御手段は、前記第2段階処理制御の後の前記第1段階再構成制御において、前記複数の第1保持回路の各々として、それぞれ、前記容量割当手段が割り当てた容量を持つ第1保持回路をそれぞれ再構成する、ことを特徴とする請求項1に記載のデータ処理装置である。
【0011】
請求項3に係る発明は、回路構成を動的に再構成可能な再構成可能回路と、前記再構成可能回路を制御する制御手段と、を備え、前記制御手段は、複数の第1処理回路と、前記複数の第1処理回路の各々にそれぞれ対応する複数の第1保持回路と、を前記再構成可能回路上に再構成する第1段階再構成制御と、前記第1段階再構成制御により前記再構成可能回路上に再構成された前記複数の第1処理回路の各々に対してそれぞれ異なる入力データを入力して並列的に処理させ、前記複数の第1処理回路の各々から出力された処理結果データをそれぞれ対応する前記第1保持回路に入力して保持させることを、前記複数の第1保持回路のうちのいずれかに対して入力された前記処理結果データの量が当該第1保持回路の容量の上限に達するまで繰り返す第1段階処理制御と、k=2から(n−1)まで(nは3以上の整数)の各kについて順に、前記第(k−1)段階処理制御の後、前記複数の第(k−1)保持回路は残したまま、前記複数の第(k−1)処理回路に代えて複数の第k処理回路と、前記複数の第k処理回路の各々にそれぞれ対応する複数の第k保持回路と、を前記再構成可能回路上に再構成する第k段階再構成制御と、前記第k段階再構成制御により前記再構成可能回路上に再構成された前記複数の第k処理回路の各々に対し、それぞれ対応する第(k−1)保持回路に保持された前記処理結果データを入力して並列的に処理させ、前記複数の第k処理回路の各々から出力された処理結果データをそれぞれ対応する前記第k保持回路に入力して保持させ、前記複数の第(k−1)保持回路に保持された前記処理結果データのすべてが前記複数の第k処理回路で処理されると、第(k+1)段階再構成制御に進む第k段階処理制御と、を繰り返し実行する中間段階制御と、第(n−1)段階処理制御の後、前記複数の第(n−1)保持回路は残したまま、前記複数の第(n−1)処理回路に代えて複数の第n処理回路を前記再構成可能回路上に再構成する第n段階再構成制御と、前記第n段階再構成制御により前記再構成可能回路上に再構成された前記複数の第n処理回路の各々に対し、それぞれ対応する第(n−1)保持回路に保持された前記処理結果データを入力して並列的に処理させ、前記複数の第(n−1)保持回路に保持された前記処理結果データのすべてが前記複数の第n処理回路で処理された場合に、再び前記第1段階再構成制御に戻る第n段階処理制御と、を繰り返し実行することを特徴とするデータ処理装置である。
【発明の効果】
【0012】
請求項1に係る発明によれば、並列処理のための複数の第1処理回路と複数の第2処理回路とを再構成可能回路上に同時に再構成できない場合でも、その並列処理を実現することができる。
【0013】
請求項2に係る発明によれば、第1段階処理制御の実行期間中の複数の第1処理回路の各々のデータの出力量が均一でない場合に、再構成可能回路の再構成の発生頻度の上昇を抑制することができる。
【0014】
請求項3に係る発明によれば、2以上のkの各々について、並列処理のための複数の第(k−1)処理回路と複数の第k処理回路とを再構成可能回路上に同時に再構成できない場合でも、その並列処理を実現することができる。
【図面の簡単な説明】
【0015】
【図1】実施形態のデータ処理装置の一例を示す図である。
【図2】再構成可能回路部内に構成される第1のコンフィギュレーションAを模式的に示す図である。
【図3】再構成可能回路部内に構成される第2のコンフィギュレーションBを模式的に示す図である。
【図4】変形例のデータ処理装置を示す図である。
【図5】変形例における再構成制御部の処理手順の一例を示す図である。
【図6】FIFO容量判定部の処理手順の一例を示すフローチャートである。
【図7】FIFO容量判定部の処理手順の別の一例を示すフローチャートである。
【図8】第2の変形例における第1のコンフィギュレーションAを模式的に示す図である。
【図9】第2の変形例における第2のコンフィギュレーションBを模式的に示す図である。
【図10】第2の変形例における第3のコンフィギュレーションCを模式的に示す図である。
【発明を実施するための形態】
【0016】
図1に例示するデータ処理装置は、再構成可能回路部10、2系統のデータ入力部12a及び12b、2系統のデータ出力部14a及び14b、再構成制御部16,コンフィギュレーションデータ記憶部18及び次構成選択部20を備える。このうち、再構成可能回路部10は接続構成を動的に組み替え可能な回路要素群からなる回路であるが、これ以外の要素は機能的な観点での要素である。ハードウエアの観点では、このデータ処理装置は、例えば、上述の再構成可能回路部10に加え、再構成可能回路部10の再構成などの制御を行う汎用プロセッサと、RAM(ランダム・アクセス・メモリ)等のメモリと、外部装置との間でのデータの入出力など入出力回路と、を備える。これらハードウエア要素のうちのいくつかが1つの集積回路上に集積されていてももちろんよい。
【0017】
再構成可能回路部10は、内部の論理回路構成を動的に(すなわち当該プロセッサが動作中に)再構成できる回路である。再構成可能回路部10としては、例えば、特開2009−3765号公報に紹介されているDNA(Digital Network Architecture)など、様々な既存の、又はこれから開発される回路を用いることができる。例えば、DNAは、多数の回路要素(PE:プロセッサエレメント)からなるアレイであり、それら回路要素間の接続構成をコンフィギュレーションデータに従って高速(例えば1クロックの間に)組み替え可能となっている。なお、その公報で紹介されたDAPDNAアーキテクチャをこの実施形態に採用した場合、再構成制御部16及び次構成選択部20はDAP(Digital Application Processor)と呼ばれる汎用プロセッサコアで、後述する各機能を表すプログラムを実行することにより実現される。この場合、再構成可能回路部10と汎用プロセッサコアとは1つの動的再構成可能プロセッサ(DRP:Dynamic Reconfigurable Processor)として提供される。もちろん、これはあくまで一例に過ぎず、他の再構成可能プロセッサアーキテクチャを用いてもよい。
【0018】
データ入力部12a及び12bは、再構成可能回路部10上に再構成された処理回路に対して入力データを供給する手段である。例えば、再構成可能回路部10に接続されたメモリ上に確保された入力データ用のバッファ領域が、データ入力部12a及び12bの一例である。この場合、ホストシステム(例えばこのデータ処理装置の装着先のコンピュータのCPU)は、この実施形態のデータ処理装置にデータ処理を実行させる場合、処理対象である入力データをそれら各バッファ領域に転送し、再構成制御部16に対してその入力データの処理を指示する。これに応じ、再構成制御部16は、その入力データをデータ入力部12a及び12bから再構成可能回路部10上に構成された各処理回路に供給する。また、別の例として、ホストシステムからこの実施形態のデータ処理装置に、DMA(ダイレクトメモリアクセス)によりデータを転送してもよく、この場合データ入力部12a及び12bは、例えば、データ処理装置内のDMAコントローラ(図示省略)により割り当てられるチャンネルに相当する。
【0019】
データ出力部14a及び14bは、再構成可能回路部10上に再構成された処理回路から出力されたデータをホストシステムに対して出力する手段である。データ出力部14a及び14bも、上述のデータ入力部12a及び12bと同様、再構成可能回路部10に接続されたメモリ上に確保された出力バッファ、或いはDMAコントローラから割り当てられた出力チャンネルなどがその具体例である。
【0020】
以上に示したように、この実施形態では、データ入力部とデータ出力部をそれぞれ2系統ずつ(12a,12b,14a,14b)設けているが、これは、再構成可能回路部10上に2系統の同種の回路を構成し、並列処理を実行するのに対応したものである(詳細は後述)。
【0021】
再構成制御部16は、再構成可能回路部10内の回路要素の接続関係を制御することで、再構成可能回路部10上にデータ処理のための回路を再構成する。また、再構成制御部16は、再構成可能回路部10上に再構成された回路に対してホストシステムからの指示に応じてデータ入力部12a及び12b経由で入力データを供給したり、その回路からの出力データをデータ出力部14a及び14b経由でホストシステムに返したりする制御を行う。
【0022】
再構成可能回路部10内の回路の再構成は、コンフィギュレーションデータ記憶部18に記憶されたコンフィギュレーションデータに従って行われる。この例では、コンフィギュレーションデータ記憶部18には、図2及び図3に模式的に示す回路構成をそれぞれ表すコンフィギュレーションデータA及びBが記憶される。コンフィギュレーションデータ記憶部18は、例えばデータ処理装置内のRAM又は不揮発性メモリなどの記憶装置上に構成される。コンフィギュレーションデータ記憶部18には、ホストシステムからの制御により新たなコンフィギュレーションデータを追加したり、既存のコンフィギュレーションデータを削除したりすることができる。
【0023】
次構成選択部20は、再構成可能回路部10上に次に再構成すべき回路構成のデータ(コンフィギュレーションデータ)を選択する手段である。コンフィギュレーションデータ記憶部18に記憶されたコンフィギュレーションデータ群をどの順序で再構成可能回路部10に適用するかを示す制御情報が、あらかじめホストシステムから次構成選択部20に設定されている。次構成選択部20は、この制御情報に従い、再構成可能回路部10上に次に構成すべき回路構成を示すコンフィギュレーションデータを選択し、再構成制御部16に渡す。再構成制御部16は、再構成可能回路部10上に現在構成されている回路構成での処理が終わると、次構成選択部20から指示されたそのコンフィギュレーションデータを再構成可能回路部10上に書き込むことで、再構成可能回路部10を次の回路構成へと切り換える。
【0024】
なお、上述したDAPDNAアーキテクチャのように、再構成可能回路部10に複数のバンクを備えるコンフィギュレーションメモリを設け、各バンクにコンフィギュレーションデータをそれぞれ記憶させ、使用するバンクを順次切り替えることで回路の再構成を行う構成としてもよい。例えばコンフィギュレーションメモリのバンク数より多いコンフィギュレーションデータを用いる場合などには、各バンク内のコンフィギュレーションデータを、コンフィギュレーションデータ記憶部18内のコンフィギュレーションデータにより順次書き替えていってもよい。
【0025】
前述のように、この実施形態では、並列処理のために再構成可能回路部10上に2系統の同種の回路を構成する。再構成する回路構成の例を、図2及び図3に例示する。図2及び図3の例は、処理対象のデータとして画像データを受け入れ、その画像データに対して圧縮符号化を施す回路構成の例である。すなわち、この例は、実施形態のデータ処理装置を、画像の圧縮符号化に適用する場合の一例である。また圧縮符号化の一例としてランレングス圧縮回路102a及び102bとハフマン符号化回路110a及び110bとの組合せを用いた例を説明する。
【0026】
ここで、回路規模が有限な再構成可能回路部10上には、ランレングス圧縮回路とハフマン符号化回路の両方を2つずつ同時には構成できないものとする。このような制約に対し、この実施形態では、コンフィギュレーションデータAにより規定される第1段階の回路構成であるコンフィギュレーションA(図2参照)と、コンフィギュレーションデータBにより規定される第2段階の回路構成であるコンフィギュレーションB(図3参照)と、を交互に再構成するという方策で対処する。以下、各回路構成について説明する。
【0027】
図2に示すコンフィギュレーションAは、ランレングス圧縮回路102a及び102b、カウンタ104a及び104b、通知回路106a及び106b、FIFO(先入れ先出し方式の記憶回路)108a及び108bを備える。ランレングス圧縮回路102a、カウンタ104a、通知回路106a、FIFO108aが、後述する図3の回路構成のFIFO108a、ハフマン符号化部110a及び通知回路112aとともに、2系統の処理回路のうちの第1の系統(「a系統」と呼ぶ)を構成する。a系統を構成する各回路要素を指し示す符号には、末尾に記号「a」を付加した。同様に、b系統を構成する各回路要素の符号には、末尾に「b」を付加した。
【0028】
ランレングス圧縮回路102aと102bには、対応するデータ入力部12aと12bとから、処理対象の画像データのうちのそれぞれ異なる部分(各部分のことを処理単位と呼ぶこととする)がそれぞれ入力される。
【0029】
画像データの処理単位は、例えば画像データが複数のページを含んだ文書画像データである場合におけるページであってもよい。この場合、例えばa系統には奇数ページの画像のデータが入力され、b系統には偶数ページの画像のデータが入力される。また、別の例として、1ページの画像の前半と後半をそれぞれ処理単位として、a系統とb系統にそれぞれ割り振ってもよい。この場合、ページごとに順に、a系統にはページの前半部の画像が入力され、b系統にはそれと同時並列的に当該ページの後半部の画像が入力される。なお、以上に例示した処理単位はあくまで一例に過ぎず、この他の処理単位を用いることも考えられる。どのような処理単位を用いるかは、例えば実施形態のデータ処理装置の使用目的に応じて定めればよく、また複数の処理単位を選択可能としておき、ユーザや当該データ処理装置を搭載した画像処理装置の管理者が選択するようにしてもよい。
【0030】
ランレングス圧縮回路102a及び102bは、それぞれ入力される処理単位の画像データに対し、先頭から順に公知のランレングス圧縮処理を行う。ランレングス圧縮回路102a及び102bから出力される圧縮結果のデータは、例えば、画素値(例えば色ごとの濃度(グレースケール)値)とその画素値が走査方向に連続する数であるラン長とのペアが並んだものである(もちろん、これ以外のランレングス形式であってもよい)。
【0031】
ランレングス圧縮回路102a及び102bから出力された圧縮データは、FIFO108a及び108bにそれぞれ入力される。FIFO108a及び108bは、それぞれ自己のデータ容量の限界まで、入力されてくる圧縮データを先入れ先出し順に記憶する。FIFO108a及び108bのデータ容量は、例えば数ワードから数十ワード分などである。例えば、ランレングス情報を表す画素値とラン長とのペアが1ワード(1ワードは例えば2オクテット)のデータとなり、それがデータ容量までFIFOに保持される。
【0032】
この例ではFIFO108a及び108bのデータ容量は実質的に同じにする。例えば、再構成可能回路部10が備える回路要素群のうち、コンフィギュレーションA及びBでFIFO108a及び108b以外の回路を構成するのに必要となる回路要素を除いた残りの回路要素群を二等分して、FIFO108aと108bとを構成すればよい。言い換えれば、コンフィギュレーションAでのFIFO108a及び108b以外の回路(102a、b〜106a、b)と、コンフィギュレーションBでのFIFO108a及び108b以外の回路(110a、b〜112a、b)とのうち、使用する回路要素(PE)が多い方での残りの回路要素群を二等分して各FIFOに割り当てればよい。例えばこのような考え方からFIFO108aと108bのデータ容量を決め、そのデータ容量分の回路要素からなるFIFO108a及び108bをコンフィギュレーションデータA(及びB)にて定義しておけばよい。なお、二等分というのは原理上のものであり、残りの回路要素の数が二等分できない場合は、FIFO108aと108bの容量に多少の差ができてもよい。
【0033】
ここで、FIFO108aと108bは、例えば、再構成可能回路部10内のPE(プロセッサエレメント)を1つ用いて、又は複数組み合わせて、構成すればよい。また、再構成可能回路部10がPE以外に、外部とのデータ入出力のためのFIFO群を有している場合には、それらFIFOを1つ、又は複数組み合わせて、FIFO108a及び108bを構成してもよい。また、再構成可能回路部10内のPEとFIFOとを接続して、FIFO108a及び108bを構成してもよい。
【0034】
カウンタ104a及び104bは、例えばランレングス圧縮回路102a及び102bとFIFO108a及び108bとを結ぶ信号線上の信号を読み取ることにより、ランレングス圧縮回路102a及び102bからFIFO108a及び108bにそれぞれ入力される圧縮データの数を計数する。この計数では、例えば、ランレングス圧縮回路102a及び102bから出力されたワード(又は画素値とラン長とのペア)の数を計数する。
【0035】
ランレングス圧縮回路102a及び102bには互いに異なるデータが入力されるので、それら各回路102a及び102bが出力する圧縮結果のランレングスデータの量は一般に互いに異なる。したがって、FIFO108a及び108bが同じ容量であっても、一般的には、どちらか一方が先に満杯(すなわちFIFOに対してその容量分のデータが入力され保持された状態)となる。一つの例では、各系統の通知回路106a及び106bが、それぞれ対応するカウンタ104a及び104bの計数値を監視し、その計数値が当該系統のFIFO108a又は108bのデータ容量に対応する値に達した場合に、対応するFIFO108a又は108bが満杯となったことを示すFIFO−FULL信号を発するようにしてもよい。この信号を再構成制御部16が受け取って、再構成可能回路部10の再構成のトリガとする。
【0036】
また、別の例として、データが満杯となったFIFO(108a及び108b)自身が、FIFO−FULL信号を発するようにしてもよい(すなわち、FIFO108a及び108bとして、FIFO−FULL信号を発する回路要素を含んだ回路を構成する)。この場合、カウンタ104a及び104bと通知回路106a及び106bはなくてもよい。
【0037】
次に図3を参照して、コンフィギュレーションBについて説明する。コンフィギュレーションBには、FIFO108a及び108b、ハフマン符号化回路110a及び110b、通知回路112a及び112bが含まれる。
【0038】
このうちFIFO108a及び108bは、上述のコンフィギュレーションAにも含まれているものである。すなわち、コンフィギュレーションAに含まれているFIFO108a及び108bは、再構成可能回路部10がコンフィギュレーションBへと再構成される際にも変更されずにそのまま残る。すなわち、コンフィギュレーションAにおいて各FIFO108a及び108bに記憶されたランレングス圧縮結果のデータは、再構成後の再構成可能回路部10(コンフィギュレーションB)中のFIFO108a及び108bにそのまま残ることになる。
【0039】
コンフィギュレーションBでは、FIFO108a及び108bの出力がハフマン符号化回路110aおよび110bにそれぞれ接続される。
【0040】
各ハフマン符号化回路110a及び110bは、それぞれ対応するFIFO108a及び108bから先入れ先出し順に出力されるランレングス圧縮結果のデータを、公知のハフマン符号化方式により符号化する。各ハフマン符号化回路110a及び110bから出力される符号化結果のデータが、データ出力部14a及び14bを介して出力され、ホストシステムに供給される。
【0041】
通知回路112a及び112bは、それぞれ対応するハフマン符号化部110a及び110bに対してFIFO108a及び108bから供給されるデータが無くなった(すなわちFIFOに保持された全データの符号化が完了した)ことを検知すると、その旨を示す完了信号を再構成制御部16に通知する。再構成制御部16は、通知回路112a及び112bの両方から完了信号を受け取った(すなわち両系統のFIFO内のデータの符号化がすべて完了した)時点で、再構成可能回路部10の回路構成を再びコンフィギュレーションAに戻す。
【0042】
次に、再構成制御部16が図2及び図3に例示したコンフィギュレーションA及びBを切り換えながら、データ処理を進めていく手順の例を説明する。
【0043】
再構成制御部16は、画像データの処理開始をホストシステムから指示された場合、まずコンフィギュレーションデータAを用いて、再構成可能回路部10の内部回路を第1段階であるコンフィギュレーションA(図2)へと構成する。そして、コンフィギュレーションAの回路を起動し、各系統のデータ入力部12a及び12bを介してそれぞれ異なる処理単位の画像データをランレングス圧縮回路102a及び102bに入力する。これにより、入力された各処理単位の画像データが先頭からランレングスデータへと変換されていく。これにより、FIFO108a及び108bには、それぞれ対応する処理単位のランレングスデータが蓄積されていく。そして、FIFO108a及び108bの少なくとも一方が満杯になると、再構成制御部16は、通知回路106a又は106bから(またはFIFO108a又は108bから)FIFO−FULL信号を受け取る。
【0044】
FIFO−FULL信号を受け取った再構成制御部16は、コンフィギュレーションデータBに従い、再構成可能回路部10の内部回路を第2段階であるコンフィギュレーションB(図3)へと再構成する。このときの再構成では、FIFO108a及び108bの部分は変更されず、それ以外の回路が構成されていた部分が、ハフマン符号化回路110aおよび110bと通知回路112a及び112bへと書き替えられる。すなわち、ここでの再構成は、再構成可能回路部10全体の再構成ではなく、部分的な再構成である。
【0045】
次に、再構成制御部16は、そのコンフィギュレーションBの回路を起動し、FIFO108a及び108bに保持されたデータが各ハフマン符号化回路110a及び110bに入力されるようにする。これにより、それらデータがそれぞれハフマン符号化され、その符号化結果のデータが順次、各系統のデータ出力部14a及び14bを介して外部(例えばホストシステムが管理するメモリ領域)に出力される。そして、各FIFO108a及び108bの両方が空になる(すなわちそれら各FIFOに保持されたデータ全ての符号化が完了する)と、再構成制御部16は、再び第1段階へと戻り、再構成可能回路部10の内部回路をコンフィギュレーションAへと再構成する。この再構成は、再構成可能回路部10全体を再構成するものであってもよいし、FIFO108a及び108bを残してそれ以外の部分を再構成する部分再構成であってもよい。そして、再びそのコンフィギュレーションAの回路を起動し、各系統にそれぞれ次の処理単位のデータを供給して処理させる。
【0046】
再構成制御部16は、以上のようにコンフィギュレーションAとBを交互に再構成して動作させることで、入力される画像データの圧縮符号化処理を進める。
【0047】
次に、図4〜図7を参照して変形例を説明する。
【0048】
上述の実施形態では、a,b各系統のFIFO108a,108bのデータ容量を実質的に同じにした。これに対し、この変形例では、ランレングス圧縮回路102a及び102bがそれぞれ出力する圧縮データのレート(出力速度、すなわち出力される圧縮データの単位時間あたりの量)に応じて、適応的にFIFO108a及び108bのデータ容量を変える。すなわち、この変形例では、再構成可能回路部10をコンフィギュレーションAに再構成して動作させたときにランレングス圧縮回路102a及び102bがそれぞれ出力する圧縮データのレートを測定する。そして、測定したレート同士の比に応じて、次に再構成可能回路部10をコンフィギュレーションAに再構成するときのFIFO108aと108bのデータ容量をその比に応じたものに変える。
【0049】
例えば、ページごと、或いはページ内の部分ごとの画像の性質の違いなどにより、ランレングス圧縮の効率が異なる場合がある。例えば、テキスト部分やグラフィックス部分はランレングス圧縮の効率がよいが、写真画像の部分はランレングス圧縮の効率が悪い。a,b2つの系統のうち、より圧縮効率が悪い画像の部分を処理する系統は、もう一方の系統よりもFIFOが満杯になりやすい。このため、FIFO108aと108bの容量を均等のままで固定しておくと、a,b2つの系統のうち圧縮効率が悪い方の影響により、コンフィギュレーションの切り換えの頻度が高くなってしまう。そこで、この変形例では、圧縮効率の悪い系統のFIFOの容量をもう一方の系統よりも増やすことで、コンフィギュレーションの切り換え頻度の増大を抑制する。
【0050】
図4は、この変形例のデータ処理装置の構成を示す図である。図4を図1と比較すると分かるように、この変形例では、次に再構成可能回路部10をコンフィギュレーションAに再構成するときのFIFO108aと108bのデータ容量を判定するFIFO容量判定部22を新たに設けている。
【0051】
この変形例でも、再構成制御部16は、図2及び図3にそれぞれ示したコンフィギュレーションA及びBを交互に再構成する。ただし、コンフィギュレーションAにおける通知回路106a及び106bの機能が、上記実施形態のものとは異なる。
【0052】
この変形例では、通知回路106a及び106bは、FIFO108a又は108bの少なくとも一方が満杯になったときに、そのときカウンタ104a及び104bが保持している計数値を再構成制御部16に対して通知する。
【0053】
一つの例では、通知回路106a及び106bは、対応するカウンタ104a又は104bの計数値が、対応するFIFO108a又は108bのデータ容量に対応する値(すなわち満杯を示す値)になったことを検知すると、その旨及び対応するFIFOの計数値をFIFO容量判定部22に通知すると共に、もう一方の通知回路106a又は106bにトリガ信号を送り、その時点での(当該もう一方の通知回路に)対応するカウンタ104a又は104bの計数値をFIFO容量判定部22に通知させる。また、別の例として、通知回路106a及び106bは、例えば、FIFO108a又は108bからFIFO−FULL信号を受けた再構成制御部16からの要求に応じてその通知を行ってもよい。更に別の例として、通知回路106a及び106bがFIFO108a又は108bからFIFO−FULL信号を受け取るように再構成可能回路部10内の内部回路を構成し、そのFIFO−FULL信号に応じて通知回路106a及び106bが(再構成制御部16からの要求が無くても)、対応するカウンタ104a及び104bの計数値をFIFO容量判定部22に通知するようにしてもよい。FIFO108a及び108bの一方が満杯になった時点での、各カウンタ104a及び104bの計数値は、今回のコンフィギュレーションAの期間における、ランレングス圧縮回路102a及び102bのデータ出力のレートに対応する。
【0054】
なお、FIFO108a又は108bのうち、満杯となっている方に対応する計数値は、それらFIFOのデータ容量に対応しており、そのFIFOを構成した再構成制御部16と通信可能なFIFO容量判定部22にとっては既知である。したがって、満杯となっている方のFIFOに対応する計数値は、通知をしないようにしてもよい。
【0055】
FIFO容量判定部22は、これら各通知回路106a及び106bから通知された計数値の情報に基づき(満杯となったFIFOについては、計数値に代えて当該FIFOの既知のデータ容量を用いてもよい)、次に再構成可能回路部10をコンフィギュレーションAに再構成するときの、FIFO108a及び108bのそれぞれのデータ容量を判定する。
【0056】
ここで、再構成可能回路部10が備える回路要素のうち、FIFO108a及び108bに割当可能なものの合計数は決まっている。この合計数は、FIFO108a及び108bの合計のデータ容量に対応する。FIFO容量判定部22は、その合計数(すなわち合計のデータ容量)のうち、FIFO108a及び108bにそれぞれどれだけの数(データ容量)割り当てるのかを判定する。概略的には、FIFO容量判定部22は、各FIFO108a及び108bのデータ容量の比が、対応する通知回路106a及び106bから通知された計数値(またはFIFOの既知のデータ容量)同士の比にできるだけ近くなるよう、各FIFO108a及び108bのデータ容量を決定する。
【0057】
次に、図5を参照して、この変形例における再構成制御部16の処理手順の一例を説明する。
【0058】
この手順では、再構成制御部16は、画像データに対する処理の開始をホストシステムから指示された場合、まずコンフィギュレーションデータAを選択し、FIFO108a及び108bを同容量に設定する(S10)。ここでは、例えばFIFO108aと108bとのデータ容量比を設定すると、再構成制御部16が、そのデータ容量比に応じてコンフィギュレーションデータAにてFIFO108a及び108bに用いる回路要素の数を判定するようにすればよい。また、別の例として、コンフィギュレーションデータAとして、FIFO108aと108bとのデータ容量比が異なる亜種データを複数コンフィギュレーションデータ記憶部18に登録しておき、再構成制御部16が、それら亜種データの中から、設定された容量比に対応するものを選択するようにしてもよい。
【0059】
次に、再構成可能回路部10を、FIFO108aと108bとが同容量との設定の下でコンフィギュレーションデータAにしたがって再構成し、再構成された回路を起動する(S12)。これにより、処理対象の画像データが、処理単位ごとに、順にデータ入力部12a及び12bを介してa及びb系統のランレングス圧縮回路102a及び102bにそれぞれ入力され、圧縮される。
【0060】
この後、再構成制御部16は、FIFO108a及び108bのいずれかが満杯になったとの通知(FIFO−FULL信号)を待つ(S14)。そして、満杯の通知を受け取ると、次の構成としてコンフィギュレーションデータBを選択し(S16)、このデータに従い、再構成可能回路部10のうちFIFO108a及び108bの部分を除いた部分を再構成する。これにより、再構成可能回路部10には図3のコンフィギュレーションが構成される。そして、このコンフィギュレーションを起動する(S18)。これにより、FIFO108a及び108bに蓄積されたランレングス圧縮結果のデータが、それぞれ対応するハフマン符号化回路110a及び110bに供給され、処理される。これにより、ハフマン符号化回路110a及び110bからは、それぞれ対応する処理単位についての圧縮符号化結果のデータが出力され、そのデータが、対応するデータ出力部14a及び14bを介してホストシステムへ返される。
【0061】
なお、ステップS14でいずれかのFIFO108a又は108bが満杯になったことが検知されると、FIFO容量判定部22が、通知回路106a及び106bから通知されたカウンタ104a及び104bの計数値に基づき、次のコンフィギュレーションA(図2)でのFIFO108a及び108bにそれぞれ割り当てるデータ容量(PE等の回路要素の個数)を判定する。この判定結果は、後のS22で利用される。なお、この判定処理については、後で具体例を説明する。
【0062】
また、再構成制御部16は、ハフマン符号化回路110a及び110bの両方に対して供給されるデータが無くなった(すなわちFIFO108a及び108bの両方が空になった)との通知を待つ(S20)。そして、その通知を受けると、再構成制御部16は、FIFO容量判定部22から、先ほど判定された次のコンフィギュレーションAでの各FIFO108a及び108bのデータ容量割当結果を取得する(S22)。そして、次の構成としてコンフィギュレーションデータAを選択するとともに、各FIFO108a及び108bのデータ容量をその割当結果に応じて設定する(S24)。そして、ステップS12に戻り、再構成可能回路部10上に、FIFO108aと108bとをその容量割当設定の下でコンフィギュレーションデータAに従って再構成し、再構成された回路を起動する。
【0063】
以下、ホストシステムから入力される処理対象のデータが無くなるまで、ステップS12〜S24の処理を繰り返す。
【0064】
次に、図6を参照して、FIFO容量判定部22の処理手順の一例を説明する。この例は、図6の下部に示すように、再構成可能回路部10内に合計して4個のFIFO要素(図中、「FIFO」と記載したブロックとして図示した)が確保できる場合の例である。FIFO要素はこれ以上分割不能であり、この要素を1つの単位として、FIFO108aと108bとに割り振ることとなる。
図6の手順では、ステップS14でいずれかのFIFO108a又は108bが満杯になったことが検知されると、FIFO容量判定部22は、通知回路106a及び106bから通知されたa系統(カウンタ104a)及びb系統(カウンタ104b)の計数値CNTa及びCNTbをそれぞれ読み取り(S30)、これらを比較する(S32)。そして、b系統の計数値CNTbの方がa系統の計数値CNTaよりも大きい場合(すなわちS32の判定結果がNoの場合)、次に、以下の関係式が成り立つか否かを判定する(S34)。
CNTb−CNTa≧(1/2)*CNTb
【0065】
この関係式が成り立つのは、b系統の計数値がa系統の計数値の2倍以上である場合である。この場合(すなわちステップS34の判定結果がYesの場合)、FIFO容量判定部22は、FIFO108bの容量をFIFO108aの容量よりも大きく、すなわちFIFO要素4個のうち前者に3個、後者に1個を割り当てると判定する(S38)。なお、この場合、FIFO108bは、あるFIFO要素の出力を別のFIFO要素の入力に接続するという形で3つの要素を連結することにより構成されることとなる。
【0066】
ステップS34の判定結果がNoの場合、b系統の計数値は、a系統の計数値の2倍未満、かつ1倍以上である。この場合、FIFO容量判定部22は、FIFO108bとFIFO108aの容量を均等、すなわちFIFO要素4個を前者と後者に2個ずつ割り当てると判定する(S40)。
【0067】
また、ステップS32の判定結果がYesの場合、FIFO容量判定部22は更に次の関係式が成り立つか否かを判定する(S36)。
CNTa−CNTb≧(1/2)*CNTa
【0068】
この関係式が成り立つのは、a系統の計数値がb系統の計数値の2倍以上である場合である。この場合(すなわちステップS36の判定結果がYesの場合)、FIFO容量判定部22は、FIFO108aの容量をFIFO108bの容量よりも大きく、すなわちFIFO要素4個のうち前者に3個、後者に1個を割り当てると判定する(S42)。
【0069】
ステップS36の判定結果がNoの場合、a系統の計数値は、b系統の計数値の2倍未満、かつ1倍以上である。この場合、FIFO容量判定部22は、FIFO108bとFIFO108aの容量を均等、すなわちFIFO要素4個を前者と後者に2個ずつ割り当てると判定する(S40)。
【0070】
このように、図6の例では、4単位のFIFO要素を、a系統とb系統の計数値の比(すなわちランレングス圧縮データの生成レートの比)にできるだけ近い比で、FIFO108a及び108bに配分している。なお、図6に挙げた計数値の比とFIFO要素の数の比の対応関係はあくまで一例に過ぎない。
【0071】
次に、図7を参照して、再構成可能回路部10内に6個のFIFO要素が確保できる場合の例である。図7において、図6と同様の処理を行うステップには、同じ符号を付して詳細な説明は省略する。
【0072】
この例では、ステップS34の判定結果がYesの場合、FIFO要素6個のうち前者に5個、後者に1個を割り当てると判定する(S60)。
【0073】
また、ステップS34の判定結果がNoの場合、FIFO容量判定部22は更に次の関係式が成り立つか否かを判定する(S50)。
CNTb−CNTa≧(1/3)*CNTb
【0074】
この関係式が成り立つのは、b系統の計数値がa系統の計数値の3/2倍以上2倍未満である場合である。この場合(すなわちステップS50の判定結果がYesの場合)、FIFO容量判定部22は、FIFO要素6個のうちFIFO108bに4個、FIFO108aに2個を割り当てると判定する(S62)。
【0075】
ステップS50の判定結果がNoの場合、b系統の計数値のa系統の計数値の1倍以上3/2倍未満である。この場合、FIFO容量判定部22は、FIFO108bとFIFO108aの容量を均等、すなわちFIFO要素6個を前者と後者に3個ずつ割り当てると判定する(S64)。
【0076】
またステップS36の判定結果がYesの場合、a系統の計数値はb系統の計数値の2倍以上である。この場合、FIFO容量判定部22は、FIFO108aに5個、FIFO108bに1個を割り当てると判定する(S68)。
【0077】
ステップS36の判定結果がNoの場合、FIFO容量判定部22は更に次の関係式が成り立つか否かを判定する(S52)。
CNTa−CNTb≧(1/3)*CNTa
【0078】
この関係式が成り立つのは、a系統の計数値がb系統の計数値の3/2倍以上2倍未満である場合である。この場合、FIFO容量判定部22は、FIFO要素6個のうちFIFO108aに4個、FIFO108bに2個を割り当てると判定する(S66)。
【0079】
そして、ステップS52の判定結果がNoの場合、a系統の計数値のb系統の計数値の1倍以上3/2倍未満である。この場合、FIFO容量判定部22は、FIFO108aとFIFO108bの容量を均等、すなわちFIFO要素6個を前者と後者に3個ずつ割り当てると判定する(S64)。
【0080】
このように、図7の例では、6単位のFIFO要素を、a系統とb系統の計数値の比にできるだけ近い比で、FIFO108a及び108bに配分している。なお、図7に挙げた計数値の比とFIFO要素の数の比の対応関係はあくまで一例に過ぎない。
【0081】
以上の例では、S32〜S36、S50〜S52の比較処理により、FIFO108a及び108bに対する容量の振り分けを判定したが、これは一例に過ぎない。この代わりに、例えばa系統とb系統の計数値の比の範囲ごとに、その範囲に対応するFIFO108aと108bの容量比(例えば各々に割り振るFIFO要素の数の比)を表す対応関係の情報をデータ処理装置内の記憶装置に記憶しておくようにしてもよい。この場合、FIFO容量判定部22は、その対応関係の情報を参照して、FIFO108aと108bの容量比を判定する。
【0082】
また、図6及び図7の例では、再構成可能回路部10内に確保できるFIFO要素の数が偶数であったが、奇数の場合でも、計数値の比とFIFO要素の数の比の対応関係が変えるだけで、同様に取扱可能であることが理解されよう。
【0083】
次に、図8〜図10を参照して、データ処理装置の第2の変形例を説明する。図1〜図7に挙げた実施形態及び変形例は2つのコンフィギュレーションA及びBを交互に再構成したのに対し、この第2の変形例では3つのコンフィギュレーションA,B及びC(それぞれ図8,9及び10に示す)をこの順に巡回的に繰り返し再構成する。
【0084】
この第2の変形例のデータ処理装置の全体構成は、上記実施形態及び変形例に示したもの(図1及び図4を参照)と同様でよい。実施形態及び変形例と変わるのは、再構成可能回路部10に構成する各コンフィギュレーションA,B及びCと、その再構成を制御する再構成制御部16の制御内容である。
【0085】
この変形例では、データ処理装置は、処理対象の入力データをまず第1段階処理回路(122a及び122b:図8参照)で処理し、この処理結果を第2段階処理回路(130a及び130b:図9参照)で処理し、更にこの処理結果を第3段階処理回路(134a及び134b:図10参照)で処理して最終的な処理結果を求める。
【0086】
ここで、再構成可能回路部10には、回路規模の限界から、並列処理のために必要な2つの第1段階処理回路122a及び122bと2つの第2段階処理回路130a及び130bとを同時に構成することはできず、また2つの第2段階処理回路130a及び130bと2つの第3段階処理回路134a及び134bを同時に構成することもできないとする。
【0087】
このような制約を乗り越えるため、再構成可能回路部10内にFIFOを構成して利用する。図8に示すコンフィギュレーションAは、図2に例示したコンフィギュレーションAと同様の構成であり、第1段階処理回路122a及び122b、カウンタ124a及び124b、通知回路126a及び126b、第1段階FIFO128a及び128bを備える。
【0088】
第1段階処理回路122a及び122bは、データ入力部12a及び12bからデータを受け取って、そのデータにあらかじめ定められた第1段階処理を実行する回路である。第1段階処理回路122a、122bの出力は、対応する第1段階FIFO128a、128bと、対応するカウンタ124a、124bとに、それぞれ接続される。第1段階FIFO128a、128bは、第1段階処理回路122a、122bから出力された処理結果のデータを記憶し、先入れ先出し方式で出力する。各カウンタ124a、124bの出力は、対応する通知回路126a、126bに接続される。
【0089】
図8のコンフィギュレーションAにおけるカウンタ124a及び124b、通知回路126a及び126b、並びに第1段階FIFO128a及び128bは、図1又は図4の例におけるカウンタ104a及び104b、通知回路106a及び106b、並びにFIFO108a及び108bと同様の処理を行う。
【0090】
図9に示すコンフィギュレーションBは、図3に例示したコンフィギュレーションBと同様の第1段階FIFO128a及び128b、第2段階処理回路130a及び130b、通知回路132a及び132bに加え、第2段階FIFO134a及び134bを有する。
【0091】
第2段階処理回路130a及び130bは、第1段階FIFO128a及び128bのうち対応するものからそれぞれデータを受け取り、これに対してあらかじめ定められた処理を実行する。第2段階処理回路130a及び130bの処理結果は、第2段階FIFO134a及び134bにそれぞれ蓄積される。通知回路132a及び132bは、図3の例の通知回路112a及び112bと同様、対応する第2段階処理回路130a又は130bに供給されるデータが無くなると、再構成制御部16に通知を行う。
【0092】
図10に示すコンフィギュレーションCは、図3に示したコンフィギュレーションBに似ている。コンフィギュレーションCは、第2段階FIFO134a及び134bと、第3段階処理回路136a及び136bと、通知回路138a及び138bを備える。
【0093】
第3段階処理回路136a及び136bは、第2段階FIFO134a及び134bのうち対応するものからそれぞれデータを受け取り、これに対してあらかじめ定められた処理を実行する。第3段階処理回路136a及び136bの処理結果は、対応するデータ出力部14a又は14bを介してホストシステムへと出力される。通知回路138a及び138bは、図3の例の通知回路112a及び112bと同様、対応する第3段階処理回路136a又は136bに供給されるデータが無くなると、再構成制御部16に通知を行う。
【0094】
この第2の変形例では、コンフィギュレーションBに、第1段階FIFO128a及び128bと、第2段階FIFO134a及び134bという2種類のFIFOが構成される。このため、第1段階FIFO128a及び128bの容量は、第2段階FIFO134a及び134bに割り当てる容量を考慮して決めておく。
【0095】
画像データの処理開始をホストシステムから指示された場合、再構成制御部16は、まず再構成可能回路部10をコンフィギュレーションAへと再構成し、データ入力部12a及び12bに対してそれぞれ対応する処理単位の入力データを供給する。これにより、第1段階処理回路122a及び122bがそれら入力データを処理し、その処理結果が第1段階FIFO128a及び128bに蓄積される。
【0096】
第1段階FIFO128a及び128bの少なくとも一方が満杯になると、再構成制御部16は、再構成可能回路部10を第1段階FIFO128a及び128b以外の部分を部分再構成して、コンフィギュレーションBの回路を構成する。そして、第2段階処理回路130a及び130bに、第1段階FIFO128a及び128b内のデータをそれぞれ供給して処理させる。第2段階処理回路130a及び130bの処理結果は、それぞれ第2段階FIFO134a及び134bに蓄積される。
【0097】
処理が進み、通知回路132a及び132bからの通知により第1段階FIFO128a及び128bの両方が空になったことが分かると、再構成制御部16は、再構成可能回路部10を第2段階FIFO134a及び134b以外の部分を部分再構成して、コンフィギュレーションCの回路を構成する。そして、第3段階処理回路136a及び135bに、第2段階FIFO134a及び134b内のデータをそれぞれ供給して処理させる。第3段階処理回路136a及び136bの処理結果は、対応するデータ出力部14a及び14bを介してホストシステムへと出力される。
【0098】
そして、処理が進み、通知回路138a及び138bからの通知により第2段階FIFO134a及び134bの両方が空になったことが分かると、再構成制御部16は、再構成可能回路部10をコンフィギュレーションAへと再構成し、ホストシステムから供給される次の入力データを処理させる。以降の処理は、既に説明した通りである。
【0099】
以上に説明した制御を、ホストシステムから供給される入力データが無くなるまで繰り返す。
【0100】
この第2の変形例においても、図4〜図7の変形例と同様、コンフィギュレーションAの回路を動作させた期間の第1段階処理回路122aと122bとのデータ出力レートの比(言い換えればカウンタ124a及び124bの計数値の比)に応じて、次にコンフィギュレーションAを再構成するときの第1段階FIFO128a及び128bそれぞれのデータ容量を調整してもよい。また、このような第1段階FIFO128a及び128bそれぞれのデータ容量の調整に合わせて、その次のコンフィギュレーションBにおける第2段階FIFO134a及び134bのデータ容量を調整してもよい。
【0101】
図8〜図10では、3段階のコンフィギュレーションを巡回的に繰り返す例を示したが、同様の考え方で4段階以上のコンフィギュレーションを繰り返す装置を構成することも可能である。
【0102】
一般化すると、n段階(nは3以上の整数)のコンフィギュレーションを巡回的に繰り返すデータ処理装置では、第1段階と第n段階(最終段階)のコンフィギュレーションは、それぞれ図8のコンフィギュレーションAと図10のコンフィギュレーションCと同様のものとなる。それら両段階の中間であるk=2〜(n−1)までの各段階(第k段階)のコンフィギュレーションは、第(k−1)段階の処理結果を保持する2つの第(k−1)FIFOは残したまま、2つの第k段階処理回路と、これら2つの回路の処理結果を蓄積する2つの第k段階FIFOとを含んだものとすればよい。そして、再構成制御部16は、第k段階のコンフィギュレーションでのデータ処理が完了したとき、すなわちそのコンフィギュレーション内の2つの第(k−2)段階FIFOがともに空になったとき、再構成可能回路部10を、当該段階の処理結果を保持した2つの第k段階FIFOは残したまま、第(k+1)段階のコンフィギュレーションに再構成する。そして、第n段階のコンフィギュレーションでの処理が完了した場合、第1段階のコンフィギュレーションに戻る。
【0103】
以上に示した例は、いずれも2系統の並列処理を行うものであったが、3系統以上の並列処理を行うシステムにも容易に拡張可能である。
【0104】
以上に例示した回路構成を用いたデータ処理装置は、例えばプリンタシステム、スキャナシステム、デジタル複写機、ファクシミリ装置、デジタル複合機(プリンタ、スキャナ、複写機等の機能を兼ね備えた装置。ファクシミリ機能や電子メール送受信機能などを更に備える場合もある)などといった画像処理装置に適用することが考えられる。
【符号の説明】
【0105】
10 再構成可能回路部、12a,12b データ入力部、14a,14b データ出力部、16 再構成制御部、18 コンフィギュレーションデータ記憶部、20 次構成選択部、22 FIFO容量判定部、102a,102b ランレングス圧縮回路、104a,104b カウンタ、106a,106b 通知回路、108a,108b FIFO、110a,110b ハフマン符号化回路、112a,112b 通知回路。

【特許請求の範囲】
【請求項1】
回路構成を動的に再構成可能な再構成可能回路と、
前記再構成可能回路を制御する制御手段と、
を備え、
前記制御手段は、
複数の第1処理回路と、前記複数の第1処理回路の各々にそれぞれ対応する複数の第1保持回路と、を前記再構成可能回路上に再構成する第1段階再構成制御と、
前記第1段階再構成制御により前記再構成可能回路上に再構成された前記複数の第1処理回路の各々に対してそれぞれ異なる入力データを入力して並列的に処理させ、前記複数の第1処理回路の各々から出力された処理結果データをそれぞれ対応する前記第1保持回路に入力して保持させることを、前記複数の第1保持回路のうちのいずれかに対して入力された前記処理結果データの量が当該第1保持回路の容量の上限に達するまで繰り返す第1段階処理制御と、
前記第1段階処理制御の後、前記複数の第1保持回路は残したまま、前記複数の第1処理回路に代えて複数の第2処理回路を前記再構成可能回路上に再構成する第2段階再構成制御と、
前記第2段階再構成制御により前記再構成可能回路上に再構成された前記複数の第2処理回路の各々に対し、それぞれ対応する第1保持回路に保持された前記処理結果データを入力して並列的に処理させ、前記複数の第1保持回路に保持された前記処理結果データのすべてが前記複数の第2処理回路で処理された場合に、再び前記第1段階再構成制御に戻る第2段階処理制御と、
を繰り返し実行することを特徴とするデータ処理装置。
【請求項2】
前記第1段階処理制御において前記複数の第1保持回路の各々に対して入力された前記処理結果データの量に基づき、当該第1段階処理制御の後の前記第2段階処理制御の次に行われる前記第1段階再構成制御での前記複数の第1保持回路の各々の容量を割り当てる容量割当手段であって、前記第1段階処理制御において入力された前記処理結果データの量が多い第1保持回路ほど、より多い容量を割り当てることを特徴とする容量割当手段、を更に備え、
前記制御手段は、前記第2段階処理制御の後の前記第1段階再構成制御において、前記複数の第1保持回路の各々として、それぞれ、前記容量割当手段が割り当てた容量を持つ第1保持回路をそれぞれ再構成する、
ことを特徴とする請求項1に記載のデータ処理装置。
【請求項3】
回路構成を動的に再構成可能な再構成可能回路と、
前記再構成可能回路を制御する制御手段と、
を備え、
前記制御手段は、
複数の第1処理回路と、前記複数の第1処理回路の各々にそれぞれ対応する複数の第1保持回路と、を前記再構成可能回路上に再構成する第1段階再構成制御と、
前記第1段階再構成制御により前記再構成可能回路上に再構成された前記複数の第1処理回路の各々に対してそれぞれ異なる入力データを入力して並列的に処理させ、前記複数の第1処理回路の各々から出力された処理結果データをそれぞれ対応する前記第1保持回路に入力して保持させることを、前記複数の第1保持回路のうちのいずれかに対して入力された前記処理結果データの量が当該第1保持回路の容量の上限に達するまで繰り返す第1段階処理制御と、
k=2から(n−1)まで(nは3以上の整数)の各kについて順に、
前記第(k−1)段階処理制御の後、前記複数の第(k−1)保持回路は残したまま、前記複数の第(k−1)処理回路に代えて複数の第k処理回路と、前記複数の第k処理回路の各々にそれぞれ対応する複数の第k保持回路と、を前記再構成可能回路上に再構成する第k段階再構成制御と、
前記第k段階再構成制御により前記再構成可能回路上に再構成された前記複数の第k処理回路の各々に対し、それぞれ対応する第(k−1)保持回路に保持された前記処理結果データを入力して並列的に処理させ、前記複数の第k処理回路の各々から出力された処理結果データをそれぞれ対応する前記第k保持回路に入力して保持させ、前記複数の第(k−1)保持回路に保持された前記処理結果データのすべてが前記複数の第k処理回路で処理されると、第(k+1)段階再構成制御に進む第k段階処理制御と、
を繰り返し実行する中間段階制御と、
第(n−1)段階処理制御の後、前記複数の第(n−1)保持回路は残したまま、前記複数の第(n−1)処理回路に代えて複数の第n処理回路を前記再構成可能回路上に再構成する第n段階再構成制御と、
前記第n段階再構成制御により前記再構成可能回路上に再構成された前記複数の第n処理回路の各々に対し、それぞれ対応する第(n−1)保持回路に保持された前記処理結果データを入力して並列的に処理させ、前記複数の第(n−1)保持回路に保持された前記処理結果データのすべてが前記複数の第n処理回路で処理された場合に、再び前記第1段階再構成制御に戻る第n段階処理制御と、
を繰り返し実行することを特徴とするデータ処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2011−150536(P2011−150536A)
【公開日】平成23年8月4日(2011.8.4)
【国際特許分類】
【出願番号】特願2010−11293(P2010−11293)
【出願日】平成22年1月21日(2010.1.21)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】