説明

電子回路及びプログラマブル論理デバイスの使用方法

【課題】汎用性を確保しつつプログラマブル論理デバイス上に構成する回路の動作速度/消費電力を切替可能とする。
【解決手段】プリンタI/Fカードに搭載されたFPGA上に、複数のシーケンサを含むI/F回路を構成させるにあたり、I/Fカードに複数台のプリンタが接続されI/F回路中の一部のシーケンサが高速で動作することが要求される場合には、前記一部のシーケンサがone-hotタイプの状態遷移回路((B)参照)を含むシーケンサで構成された高速動作版のI/F回路をFPGA上に構成させ、I/Fカードにプリンタが1台のみ接続され消費電力低減が重視される場合には、I/F回路中の全てのシーケンサがgrayタイプの状態遷移回路((C)参照)を含むシーケンサで構成された低消費電力版のI/F回路をFPGA上に構成させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は電子回路及びプログラマブル論理デバイスの使用方法に係り、特に、複数の論理回路セルと、個々の論理回路セルの間に設けられ個々の論理回路セルの間の電気的な接続を再構成可能な配線が設けられ、任意の回路を構成可能でかつ一旦構成した回路を変更可能なプログラマブル論理デバイスを備えた電子回路及び該電子回路に適用可能なプログラマブル論理デバイスの使用方法に関する。
【背景技術】
【0002】
近年、ASIC(Application Specific Integrated Circuit)の開発コストの増大を背景として、プログラム可能な論理ICであるプログラマブル論理デバイス(PLD:Programmable Logic Device)が普及してきている。PLDは、AND回路やOR回路、NOT回路、LUT(LookUp Table)回路、Dフリップフロップ等の論理素子がチップ内に多数収められていると共に、個々の論理素子の間の接続を外部から設定可能に構成されており、個々の論理素子の間の接続等を規定する構成情報を与えることで所望の回路を構成可能で、PLDに与える構成情報を変更することで回路構成を変更(再構成)することも可能とされている。なお、PLDにはSPLD(Simple PLD)、CPLD(Complex PLD)、FPGA(Field Programmable Gate Array)等があり、最近では構成情報を1クロックサイクルで再ローディング可能なDAP/DNAも出回ってきている。
【0003】
また、PLD上に構成する回路を再構成可能であることを利用して、PLD上に構成する回路を適宜切り替える技術も提案されており、例えば特許文献1,2には、回路構成が書き替え可能なプログラマブルデバイス上に構成するCPUの個数やCPUに接続されるバスのビット幅を変更することで、CPUの使用効率を向上させると共に消費電力を低減する技術が開示されている。
【0004】
また、特許文献3には、パイプライン処理の段数が異なる複数の回路情報を記憶しておき、FPGAの温度が高い場合には、動作周波数を下げると共にパイプライン処理の段数が少ない回路をFPGA上に構成し、FPGAの温度が低い場合には、動作周波数を上げると共にパイプライン処理の段数が多い回路をFPGA上に構成する技術が開示されている。
【特許文献1】特開2003−186680号公報
【特許文献2】特開2005−50363号公報
【特許文献3】特開2004−22724号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
特許文献1〜3のように、高速な回路をPLD上に構成するか低消費電力の回路をPLD上に構成するかを各種の条件に応じて切り替える技術は、様々な用途に使用可能な汎用性の高い技術として発展が期待される。
【0006】
しかしながら、特許文献1,2に記載の技術は、CPUの個数やCPUに接続されるバスのビット幅を切り替えることで回路の動作速度/消費電力を切り替えるものであり、バスのビット幅を切り替えると、PLD上に構成した回路と外部回路との間のデータ送受のI/F(ビット幅やデータ転送レート等)を切り替える必要が生ずる可能性がある。従って、特許文献1,2に記載の技術は、PLD上に形成した回路の構成を切り替えても、PLD上に構成した回路と外部との間のデータ送受のI/Fは変更したくない等の場合に適用が難しいという問題がある。
【0007】
また、特許文献3に記載の技術は、パイプライン処理の段数を変化させることで動作速度/消費電力を切り替えているので、PLD上に構成する回路がパイプライン化に適した処理を行う回路に限られ、例えばシーケンサ等のようにパイプライン化に適さない処理を行う回路には適用が困難であるという問題がある。
【0008】
本発明は上記事実を考慮して成されたもので、汎用性を確保しつつ回路の動作速度/消費電力を切替可能な電子回路及びプログラマブル論理デバイスの使用方法を得ることが目的である。
【課題を解決するための手段】
【0009】
上記目的を達成するために請求項1記載の発明に係る電子回路は、複数の論理回路セルと、個々の前記論理回路セルの間に設けられ前記個々の論理回路セルの間の電気的な接続を再構成可能な配線が設けられ、任意の回路を構成可能でかつ回路構成の再構成が可能なプログラマブル論理デバイスと、入力されたクロック信号に同期して所定処理を行う第1回路を前記プログラマブル論理デバイス上に構成させるための第1構成情報と、入力されたクロック信号に同期して前記所定処理を行う際のスイッチング回数が前記第1回路よりも少なく動作可能なクロック信号の周波数帯域が前記第1回路よりも低い第2回路を前記プログラマブル論理デバイス上に構成させるための第2構成情報を各々記憶する記憶手段と、前記記憶手段に記憶されている前記第1構成情報又は前記第2構成情報に従って少なくとも前記配線を再構成させることで、前記プログラマブル論理デバイス上に前記第1回路又は前記第2回路を構成させる再構成手段と、を含んで構成されている。
【0010】
請求項1記載の発明に係る電子回路は、複数の論理回路セルと、個々の論理回路セルの間に設けられ個々の論理回路セルの間の電気的な接続を再構成可能な配線が設けられ、任意の回路を構成可能でかつ回路構成の再構成が可能なプログラマブル論理デバイスを備えている。このプログラマブル論理デバイスとしては、PLD、より詳しくはSPLD、CPLD、FPGA、DAP/DNA等を適用することができる。
【0011】
ところで、回路のスイッチング動作は回路の消費電力に大きな影響を及ぼし、回路の消費電力は回路動作中のスイッチング回数に比例して変化する。これに基づき請求項1記載の発明では、入力されたクロック信号に同期して所定処理を行う第1回路をプログラマブル論理デバイス上に構成させるための第1構成情報と、入力されたクロック信号に同期して前記所定処理を行う際のスイッチング回数が前記第1回路よりも少なく動作可能なクロック信号の周波数帯域が前記第1回路よりも低い第2回路をプログラマブル論理デバイス上に構成させるための第2構成情報が記憶手段に各々記憶されており、再構成手段は、記憶手段に記憶されている第1構成情報又は第2構成情報に従って、少なくともプログラマブル論理デバイスに設けられた配線を再構成させることで、プログラマブル論理デバイス上に第1回路又は第2回路を構成させる。
【0012】
このように、請求項1記載の発明では、プログラマブル論理デバイス上に構成する回路を、第1回路又は所定処理を行う際のスイッチング回数が第1回路よりも少なく動作可能なクロック信号の周波数帯域が第1回路よりも低い第2回路へ切替可能とされており、プログラマブル論理デバイス上に第1回路を構成した場合は高速動作が可能となる一方、プログラマブル論理デバイス上に第2回路を構成した場合は消費電力が低減されるので、プログラマブル論理デバイス上に構成する回路の動作速度/消費電力を切替えることができる。
【0013】
また、請求項1記載の発明は、プログラマブル論理デバイス上に構成する回路の動作速度/消費電力を切替えることを、同一処理を行う際のスイッチング回数が異なる回路をプログラマブル論理デバイス上に選択的に構成することで実現しており、動作速度/消費電力を切替えるにあたって、バスのビット幅を切り替えたり、パイプライン処理の段数を切り替える必要はない。従って、動作速度/消費電力を切替えることに伴って、プログラマブル論理デバイス上に構成した回路と外部との間のデータ送受のI/F(ビット幅やデータ転送レート等)が変化することを回避できると共に、パイプライン化が困難な処理を行う回路(例えばシーケンサ等)をプログラマブル論理デバイス上に構成することも可能となり、様々な用途に使用可能な高い汎用性が得られる。
【0014】
なお、請求項1記載の発明に係るプログラマブル論理デバイスは、プログラマブル論理デバイスの個々の論理回路セルが、複数の論理回路要素(例えばフリップフロップやルックアップテーブル等)と、個々の論理回路要素の間に設けられ個々の論理回路要素の間の電気的な接続を再構成可能な配線が設けられ、複数種の論理回路を選択的に構成可能でかつ論理回路の構成の再構成が可能な構成であってもよい。上記構成に該当するプログラマブル論理デバイスとしては、FPGAやDAP/DNA等が挙げられる。プログラマブル論理デバイスが上記構成である場合、再構成手段は、例えば請求項2に記載したように、記憶手段に記憶されている第1構成情報又は第2構成情報に従い、プログラマブル論理デバイスの個々の論理回路セルのうち、プログラマブル論理デバイス上に第1回路又は第2回路を構成させる際に使用する論理回路セルについて、複数種の論理回路のうちの何れかの論理回路を各々構成させることで、プログラマブル論理デバイス上に第1回路又は第2回路を構成させるように構成することができる。これにより、個々の論理回路セルが一定構成の場合と比較して、複数種の論理回路を組合わせて回路を構成することができ、プログラマブル論理デバイス上に構成可能な回路構成の自由度が向上する。
【0015】
また、請求項1記載の発明において、第1回路は第2回路よりも動作可能なクロック信号の周波数帯域が高くされているが、プログラマブル論理デバイスに、個々の論理回路セルに供給するクロック信号を発生させると共に、当該クロック信号の周波数を変更設定可能なクロック信号発生回路が設けられている場合、プログラマブル論理デバイス上に第1回路を構成した場合に第1回路に入力されるクロック信号の周波数と、プログラマブル論理デバイス上に第2回路を構成した場合に第1回路に入力されるクロック信号の周波数を切り替えることは、例えば請求項3に記載したように、第1及び第2構成情報に、プログラマブル論理デバイス上に第1回路が構成された場合のクロック信号の周波数が、プログラマブル論理デバイス上に第2回路が構成された場合のクロック信号の周波数よりも高くなるように、クロック信号の周波数を規定する周波数規定情報も付加しておき、再構成手段を、周波数規定情報に従ってクロック信号の周波数を設定するように構成することで実現できる。これにより、プログラマブル論理デバイス上に第1回路を構成した場合のクロック信号の周波数が、プログラマブル論理デバイス上に第2回路を構成した場合のクロック信号の周波数よりも高くなり、プログラマブル論理デバイス上に第1回路を構成した場合の動作速度(所定処理の処理速度)をプログラマブル論理デバイス上に第2回路を構成した場合よりも高速化することができる。
【0016】
また、請求項1記載の発明において、第1及び第2回路としては、所定の処理として任意の処理を行う回路を適用可能であり、例えば請求項4に記載したように、現在の内部状態を表す情報を保持すると共に、所定の事象が発生する毎に、保持している内部状態を遷移させる状態遷移回路を備え、所定の処理として、状態遷移回路に保持されている現在の内部状態に応じた処理を行うシーケンサを含んで構成することができる。
【0017】
また、請求項4記載の発明のように、第1及び第2回路としてシーケンサを含む回路を適用する場合、シーケンサの状態遷移回路としては、例えば請求項5に記載したように、各々1ビットの値を保持する保持回路(例えばフリップフロップ等)と、現在の内部状態がm種類の内部状態のうちの特定内部状態か否かを表す1ビットの値を保持回路に保持させると共に、特定内部状態への遷移又は特定内部状態からの遷移に関連する所定の事象が発生する毎に、保持回路に保持されている1ビットの値を変更する変更回路と、が内部状態の種類数mと同数だけ各々設けられ、個々の変更回路が、個々の保持回路にm種類の内部状態のうちの互いに異なる内部状態に対応する1ビットの値を保持させる構成(所謂one-hotタイプの状態遷移回路)を採用することができる。
【0018】
上記構成の状態遷移回路は、m個の保持回路の各々に保持されている1ビットの値が、m種類の内部状態のうちの互いに異なる内部状態に対応しており、現在の内部状態を表すmビットの値がm個の保持回路に保持される。従って、保持回路と同数設けられ保持回路に保持されている値を変更する個々の変更回路は、上記の所定の事象が発生する毎に対応する保持回路に保持されている1ビットの値を変更する処理を、他の変更回路と独立に行うことができるので、高速動作が可能(動作可能なクロック信号の周波数帯域が高い)という特長を有しており、第1回路に設けるシーケンサの状態遷移回路として好適である。
【0019】
一方、請求項5に記載の状態遷移回路は、内部状態を変更すべき事象が発生する毎に、対応する保持回路に保持されている1ビットの値を変更する処理が2個の変更回路によって各々行われるので、スイッチング回数が比較的多く消費電力が高いという欠点がある。このため、請求項4記載の発明のように、第1及び第2回路としてシーケンサを含む回路を適用する場合、シーケンサの状態遷移回路としては、例えば請求項6に記載したように、2を底とする内部状態の種類数mの対数値以上のn個設けられ各々1ビットの値を保持する保持回路(例えばフリップフロップ等)と、現在の内部状態を表すnビットの値をn個の保持回路に保持させると共に、所定の事象が発生する毎に、n個の保持回路に保持されているnビットの値を、発生した事象の種類に応じた内部状態を表すnビットの値に変更する単一の変更回路と、を含んだ構成の状態遷移回路(所謂binaryタイプ又はgrayタイプの状態遷移回路)を採用してもよい。なお、保持回路の数nとしては、「2を底とする内部状態の種類数mの対数値」が整数値であれば該整数値を、「2を底とする内部状態の種類数mの対数値」が小数点以下の値を含む値であれば該小数点以下の値を切り上げた値を用いることができる。
【0020】
上記構成の状態遷移回路は、m種類存在している内部状態のうちの現在の内部状態がnビットの値としてn個の保持回路に保持されるので(n<m)、所定の事象の発生に伴ってn個の保持回路に保持されているnビットの値を変更するにあたり、変更回路は新たな内部状態をnビットの値へ変換する必要があり、動作速度の点で不利(動作可能なクロック信号の周波数帯域が低い)という欠点がある。しかし、請求項5に記載の状態遷移回路と比較して、内部状態を変更すべき事象が発生した際に、保持されている1ビットの値が変更される保持回路の数の平均値が2よりも小さく、消費電力が低いという特長を有しているので、第2回路に設けるシーケンサの状態遷移回路として好適である。
【0021】
また、上述した請求項6記載の発明において、m種類の内部状態の何れかに各々対応しているm種類のnビットの値は、例えば請求項7に記載したように、当該値が変更回路によって変更された際の変更後のnビットの値が、変更前のnビットの値に対してnビット中の1ビットのみが変化するように定められていることが好ましい(所謂grayタイプの状態遷移回路)。内部状態を変更すべき事象が発生した際に保持されている1ビットの値が変更される保持回路の数が常に1となり、請求項6に記載のシーケンサの状態遷移回路としてbinaryタイプの状態遷移回路を用いる場合よりも更に消費電力を低減することができる。
【0022】
また請求項1記載の発明において、例えば請求項8に記載したように、プログラマブル論理デバイスの個々の論理回路セルには、個々の論理回路セルに入力されたクロック信号を論理回路セル内の論理回路に入力するか入力を遮断するかを変更可能な遮断回路が各々設けられており、少なくとも第2構成情報には、プログラマブル論理デバイスの個々の論理回路セルのうち、プログラマブル論理デバイス上に第2回路を構成させる際に使用されない論理回路セルに設けられた遮断回路を、クロック信号の入力を遮断する遮断状態に切り替えるための遮断制御情報が付加されており、再構成手段は、プログラマブル論理デバイス上に第2回路を構成させる場合に、第2構成情報に付加されている遮断制御情報に従い、使用されない論理回路セルに設けられた遮断回路を遮断状態に切り替えるように構成することが好ましい。
【0023】
これにより、プログラマブル論理デバイス上に第2回路を構成した状態で、プログラマブル論理デバイスに設けられている複数の論理回路セルのうち、使用されない論理回路セルへのクロック信号の入力が遮断回路によって遮断されるので、プログラマブル論理デバイス上に第2回路を構成した場合の消費電力を更に低減することができる。なお、請求項8記載の発明において、更に、プログラマブル論理デバイスの個々の論理回路セルのうち、プログラマブル論理デバイス上に第1回路を構成させる際に使用されない論理回路セルに設けられた遮断回路を、クロック信号の入力を遮断する遮断状態に切り替えるための遮断制御情報を第1構成情報に付加しておき、再構成手段を、プログラマブル論理デバイス上に第1回路を構成させる場合に、第1構成情報に付加されている遮断制御情報に従い、使用されない論理回路セルに設けられた遮断回路を遮断状態に切り替えるように構成してもよい。これにより、プログラマブル論理デバイス上に第1回路を構成した場合の消費電力も低減できるので好ましい。
【0024】
請求項9記載の発明に係るプログラマブル論理デバイスの使用方法は、複数の論理回路セルと、前記個々の論理回路セルの間に設けられ個々の論理回路セルの間の電気的な接続を再構成可能な配線が設けられ、任意の回路を構成可能でかつ回路構成の再構成が可能なプログラマブル論理デバイスを使用するにあたり、入力されたクロック信号に同期して所定処理を行う第1回路を前記プログラマブル論理デバイス上に構成させるための第1構成情報と、入力されたクロック信号に同期して前記所定処理を行う際のスイッチング回数が前記第1回路よりも少なく動作可能なクロック信号の周波数帯域が前記第1回路よりも低い第2回路を前記プログラマブル論理デバイス上に構成させるための第2構成情報を記憶手段に各々記憶しておき、前記記憶手段に記憶されている前記第1構成情報又は前記第2構成情報に従って少なくとも前記配線を再構成させることで、前記プログラマブル論理デバイス上に前記第1回路又は前記第2回路を構成させることを特徴としているので、請求項1記載の発明と同様に、汎用性を確保しつつ回路の動作速度/消費電力を切替えることが可能となる。
【発明の効果】
【0025】
以上説明したように本発明は、複数の論理回路セルと、個々の論理回路セルの間の電気的な接続を再構成可能な配線が設けられ、任意の回路を構成可能でかつ回路構成の再構成が可能なプログラマブル論理デバイス上に、入力されたクロック信号に同期して所定処理を行う第1回路を構成させるための第1構成情報と、入力されたクロック信号に同期して所定処理を行う際のスイッチング回数が第1回路よりも少なく動作可能なクロック信号の周波数帯域が第1回路よりも低い第2回路を構成させるための第2構成情報を各々記憶しておき、第1構成情報又は前記第2構成情報に従ってプログラマブル論理デバイス上に第1回路又は第2回路を構成させるようにしたので、汎用性を確保しつつ回路の動作速度/消費電力を切替えることが可能となる、という優れた効果を有する。
【発明を実施するための最良の形態】
【0026】
以下、図面を参照して本発明の実施形態の一例を詳細に説明する。図1には、本発明に係る電子回路に相当するプリンタI/F(インタフェース)カード30が搭載され、プリントサーバとして機能することが可能なコンピュータ10が示されている。
【0027】
コンピュータ10はOS(Operating System)の制御下で各種プログラムを実行するCPU12を備えており、CPU12はプロセッサ直結バスであるFSB(FrontSide Bus)14と接続されている。また、コンピュータ10にはPCIバス(Peripheral Component Interconnect Bus)16が設けられており、FSB14はCPUブリッジ(ホスト−PCIブリッジ)18を介してPCIバス16と接続されている。CPUブリッジ18はメモリ20へのアクセス動作を制御するためのメモリコントローラ機能や、FSB18とPCIバス20の間のデータ転送速度の差を吸収するためのデータバッファ等を含んで構成されている。
【0028】
メモリ20はCPUブリッジ18に接続され、CPU12が実行する各種のプログラム(OSや各種デバイスドライバ、BIOS(Basic Input/Output System)、各種のアプリケーション・プログラム等)を読み込んだり、前記プログラムで処理されたデータを書き込む作業領域として利用される。またCPUブリッジ18には、ビデオサブシステムを介してディスプレイが接続されている(図示省略)。ビデオサブシステムは、CPU12からの描画命令を実際に処理し、処理した描画情報をビデオメモリ(VRAM)に一旦書き込むと共に、VRAMから描画情報を読み出してディスプレイに描画データとして出力するビデオコントローラを含んで構成されている。
【0029】
また、PCIバス16にはI/Oブリッジ22が接続されており、I/Oブリッジ22にはHDD(Hard Disk Drive)24が接続されている。I/Oブリッジ22は、PCIバス16とISAバス(図示省略)とのブリッジ機能、DMAコントローラ機能、プログラマブル割り込みコントローラ(PIC)機能、プログラマブル・インターバル・タイマ(PIT)機能、IDE(Integrated Drive Electronics)インタフェース機能、USB(Universal Serial Bus)機能、SMB(System Management Bus)インタフェース機能を備えている。DMAコントローラ機能は、周辺機器(例えばHDD24)とメモリ20との間のデータ転送をCPU12の介在なしに実行するための機能である。またPIC機能は、周辺機器からの割り込み要求(IRQ)に応答して所定のプログラム(割り込みハンドラ)を実行させる機能であり、PIT機能はタイマ信号を所定周期で発生させる機能である。
【0030】
また、PCIバス16にはプリンタI/Fカード30が接続されている。プリンタI/Fカード30は、独自I/Fを有する最大2台のプリンタ26A,26Bをコンピュータに接続しコンピュータからの指示に応じてプリンタ26で印刷処理を行わせるためのI/Fカードであり、コンピュータ10に設けられた図示しないPCIスロットに挿入されることでPCIバス16に接続されている。プリンタI/Fカード30には、PCIバス16経由での制御信号やデータの送受を司るPCI I/F部32と、プリンタI/Fカード30の各部を制御するCPU34と、CPU34によって実行されるプログラムや各種の情報が書き込まれたフラッシュROM36と、DRAM等から成るメモリ38と、本発明に係るプログラマブル論理デバイスとしてのFPGA(Field Programmable Gate Array)40と、プリンタ26の接続ケーブル44を接続するための2個のコネクタ42が各々設けられている。なお、プリンタI/Fカード30に搭載された回路は本発明に係る電子回路に対応している。
【0031】
FPGA40は、チップに構成情報を与えることで当該構成情報に応じた任意の回路を構成させることが可能なPLDの一種であり、FPGA40のチップ上には、例として図2に示すように、多数個の論理回路セル46がマトリクス上に配列されている。
【0032】
個々の論理回路セル46は各々同一構成とされており、図3に示すように、4入力2出力のLUT(ルックアップテーブル)60、D−FF(フリップフロップ)62、6個のプログラマブル・マルチプレクサ(以下、単にMUXという)64,66,68,70,72,74、バッファ76を備えている。論理回路セル46の3本の入力信号線A〜CはLUT60の入力端に各々接続され、入力信号線DはMUX64の2個の入力端の一方とMUX66の2個の入力端の一方に各々接続されている。MUX64の他方の入力端はD−FF62のQ端子に接続され、MUX64の出力端はLUT60の残りの入力端に接続されており、MUX66の他方の入力端はLUT60の出力端Gに接続され、MUX66の出力端はD−FF62のR端子に接続されている。
【0033】
また、入力信号線AはMUX68の2個の入力端の一方に接続されており、MUX68の他方の入力端はLUT60の出力端Fに、MUX68の出力端はD−FF62のS端子に接続されている。またMUX70の3個の入力端は、LUT60の出力端G、MUX64の出力端及びクロック信号入力線Kに各々接続され、MUX70の出力端はバッファ76の入力端に接続されている。バッファ76の出力端は抵抗78を介して給電ラインに接続されると共に、D−FF62の同期信号入力端に接続されている。また、D−FF62のD端子はLUT60の出力端Fに接続され、MUX72,74の3個の入力端はLUT60の出力端F、LUT60の出力端G、D−FF62のQ端子に各々接続され、MUX72の出力端は出力信号線Xに、MUX74の出力端は出力信号線Yに各々接続されている。
【0034】
FPGA40に与える構成情報には、FPGA40上の個々の論理回路セル46に与えるセル構成情報と、FPGA40上の個々のスイッチマトリクス50及び個々のI/Oブロック54(何れも後述)に与える配線構成情報を含んで構成されており、論理回路セル46に設けられた個々のMUX64,66,68,70,72,74は、FPGA40に与えられた構成情報のうち、対応する論理回路セル46に与えられたセル構成情報に従い、複数個の入力端を介して入力される複数の信号のうちの何れか1つを選択的に出力する。従って、論理回路セル46に与えるセル構成情報の内容を切り替えることで、論理回路セル46によって実現される論理回路も、図4(A)〜(C)に示すように切り替わることになる。また、LUT60は変換に使用する変換データを切り替えることで様々な機能(変換)を実現できるが、論理回路セル46に与えるセル構成情報を切り替えることでLUT60に設定する変換データも切り替え可能とされており、図4(A)〜(C)に示す論理回路においてLUT60に設定する変換データを切り替えることで、単一の論理回路セル46によって多様な論理回路を実現することができる。
【0035】
なお、論理回路セル46に設けられたバッファ76は、前記論理回路セル46に与えられたセル構成情報に従い、MUX70から入力端を介して入力された信号(通常はクロック信号)をD−FF62の同期信号入力端へそのまま出力する第1状態、及び、入力信号に拘わらず出力端をハイインピーダンスにする第2状態に切り替わる。バッファ76が第2状態となっている間、D−FF62の同期信号入力端の電位は、抵抗78を介して接続された給電ラインによって一定レベルに維持される。なお、上記のバッファ76は請求項8に記載の遮断回路に対応している。
【0036】
また図2に示すように、FPGA40のチップ上において、マトリクス上に配列された個々の論理回路セル46の間には、各々複数本の配線から成る配線群48がX方向及びY方向に沿って各々配設されており、X方向に延びる配線群48とY方向に延びる配線群48との交差位置には、配線群48を構成する個々の配線の接続を切替可能なスイッチマトリクス50が各々設けられている。スイッチマトリクス50は、FPGA40に与えられた構成情報のうち対応する配線構成情報に従って個々の配線の接続を切り替える。またFPGA40には、外部から入力された基準クロック信号に基づいて、PLL制御によって所定周波数のクロック信号を生成・出力するPLL回路52が設けられている。PLL回路52の出力端は配線群48のうちの何れか1つの配線に接続されており、PLL回路52に接続された配線はクロック信号伝送線として機能する。
【0037】
また、FPGA40のチップ上の周縁部には多数個のI/Oブロック54が配列されており、個々のI/Oブロック54には、配線群48の複数本の配線及びFPGA40のパッケージに設けられた多数個のピンのうちの何れか1つが各々接続されている。図示は省略するがI/Oブロック54もMUX(プログラマブル・マルチプレクサ)を含んで構成されており、FPGA40に与えられた構成情報のうち対応する配線構成情報に従ってMUXが切り替わることで、接続されたピンを入力端子として使用し前記ピンを介して入力された信号を接続された特定配線へ出力したり、接続されたピンを出力端子として使用し接続された特定配線を介して入力された信号を前記ピンへ出力したり、接続された第1の配線を介して入力された信号を接続された第2の配線へ出力する等の複数の状態に切り替わるように構成されている。
【0038】
そして、FPGA40のチップ上に設けられた個々の論理回路セル46は、図示は省略するが配線群48の個々の配線に各々接続されている。従って、FPGA40に構成情報(セル構成情報や配線構成情報等)を与えることで、FPGA40上に設けられた論理回路セル46のうちの所定数の論理回路セル46を使用し、使用する個々の論理回路セル46を所定の構成の論理回路として各々機能させ、かつこれらの論理回路を所定の順序で接続することが可能となり、FPGA40上に所定の構成の回路を構成することができる。また、FPGA40に与える構成情報を切り替えることで、使用する論理回路セル46の数や個々の論理回路セル46によって実現される論理回路の構成、個々の論理回路の接続順序の少なくとも1つを切り替えることができ、FPGA40上に任意の構成の回路を再構成することができる。
【0039】
本実施形態では、FPGA40に与える構成情報がフラッシュROM36に記憶されており、プリンタI/Fカード30のCPU34は、コンピュータ10の電源が投入されてプリンタI/Fカード30に電力が供給されると、フラッシュROM36から構成情報を読み出し、読み出した構成情報をFPGA40のチップ上に設けられた構成情報保持用のメモリセル(図示省略)に書き込むことで、FPGA40に構成情報を与える。これにより、FPGA40に設けられたMUXやスイッチマトリクス50等が構成情報保持用のメモリセルに書き込まれた構成情報に応じて切り替わることで、前記構成情報に対応する回路がFPGA40上に再構成されることになる。また、本実施形態に係るフラッシュROM36には、FPGA40に与える構成情報として複数種の構成情報が記憶されており、CPU34は、電源投入時やFPGA40上に構成している回路を切り替える必要が生ずる毎に、複数種の構成情報のうちの何れか1つの構成情報を選択的にフラッシュROM36から読み出し、読み出した構成情報をFPGA40に与える処理を行う。
【0040】
次に本実施形態の作用として、まずFPGA40に構成される回路について説明する。本実施形態では、プリンタI/Fカード30を、最大2台のプリンタ26A,26Bをコンピュータに接続しコンピュータからの指示に応じてプリンタ26で印刷処理を行わせるI/Fカードとして機能させるために、フラッシュROM36に記憶されている複数種の構成情報は、何れも図5に示すI/F回路80がFPGA40上に構成されるように設定されている。
【0041】
I/F回路80は、PCI I/F部32と接続されPCI I/F部32から入力されるデータを処理する入力I/F部82と、コネクタ42と接続されプリンタ26への出力用としてメモリ38から読み出されたデータを処理する複数の出力I/F部84と、CPU34と接続されCPU34から入力されたアドレスを処理すると共にCPU34との間でデータの送受を行うCPU I/F部86と、メモリ38及び各I/F部82〜86と各々接続され各I/F部82〜86からの指示に従いメモリ38に対するデータの書き込み及び読み出しを行うと共にメモリ38のリフレッシュを制御するメモリI/F部88と、PLL回路52と接続されPLL回路52から供給されたクロック信号から各I/F部82〜88が必要とする周波数のクロック信号を生成して各I/F部82〜88へ供給するクロック発生回路90を含んで構成されている。
【0042】
図6(A)に示すように、入力I/F部82は、入力DMAシーケンサ92と少量(例えば512バイト程度)のバッファメモリを備えた入力DMAバッファ94を含んで構成されており、入力DMAシーケンサ92は、入力DMAバッファ94のバッファメモリの状態(満杯か空か)を監視しながらPCI I/F部32にデータの入力を要求し、PCI I/F部32からDMA転送により入力されたデータ(印刷用データ)を入力DMAバッファ94のバッファメモリに一時記憶させると共に、入力DMAバッファ94のバッファメモリに一時記憶させたデータのメモリ38への書き込みをメモリI/F部88へ要求し、メモリ38への書き込みが可能な状態になると、メモリI/F部88へ書込アドレス(内部アドレス)を通知すると共に入力DMAバッファ94のバッファメモリに一時記憶させたデータをDMA転送によってメモリI/F部88へ出力させる処理を行う。
【0043】
また図6(B)に示すように、出力I/F部84は、出力DMAシーケンサ96と少量(例えば512バイト程度)のバッファメモリを備えた出力DMAバッファ98を含んで構成されており、出力DMAシーケンサ96は、出力DMAバッファ98のバッファメモリの状態(満杯か空か)を監視しながらメモリI/F部88に対してメモリ38からのデータの読み出しを要求し、メモリ38からの読み出しが可能な状態になると、メモリI/F部88へ読出アドレス(内部アドレス)を通知してメモリ38からデータを読み出させ、DMA転送によってメモリI/F部88から入力されたデータ(印刷用データ)を出力DMAバッファ98のバッファメモリに一時記憶させると共に、出力DMAバッファ98のバッファメモリに一時記憶させたデータをコネクタ42、接続ケーブル44を介してプリンタ26へ転送する処理を行う。
【0044】
また図6(C)に示すように、CPU I/F部86は、CPUアクセス制御シーケンサ100とデータバス制御部102を含んで構成されており、CPUアクセス制御シーケンサ100は、CPU34から読出又は書込アドレスが通知されてメモリ38からのデータの読み出し又はメモリ38へのデータの書き込みがCPU34から指示される毎に、指示に応じてデータの読み出し又は書き込みをメモリI/F部88に要求すると共に、通知されたアドレスを内部アドレスへ変換してメモリI/F部88へ通知する。またCPUアクセス制御シーケンサ100は、データの読み出し時には、メモリI/F部88からデータバス制御部102に入力された読出データをCPU34へ転送させ、データの書き込み時には、CPU34からデータバス制御部102に入力された書込データをメモリI/F部88へ転送させる。
【0045】
更に、図6(D)に示すように、メモリI/F部88は、メモリ制御シーケンサ104、データバス制御部106及びリフレッシュカウンタ108を含んで構成されており、メモリ制御シーケンサ104は、入力I/F部82又はCPU I/F部86からメモリ38へのデータの書き込みが指示され、指示された書き込みを実行可能な状態である場合には、読み出しを指示する制御信号をメモリ38へ出力すると共に、書込要求元(入力I/F部82又はCPU I/F部86)から通知された内部アドレスを書込アドレスとしてメモリ38へ通知し、書込要求元からデータバス制御部106に入力された書込データをメモリ38へ出力させる。また、メモリ制御シーケンサ104は、出力I/F部84又はCPU I/F部86よりメモリ38からのデータの読み出しが指示され、指示された読み出しを実行可能な状態である場合には、読み出しを指示する制御信号をメモリ38へ出力すると共に、読出要求元(出力I/F部84又はCPU I/F部86)から通知された内部アドレスを読出アドレスとしてメモリ38へ通知し、メモリ38からデータバス制御部106に入力された読出データを読出要求元へ転送させる。
【0046】
また、リフレッシュカウンタ108はメモリ38に対するリフレッシュの実行周期を管理しており、メモリ制御シーケンサ104は、リフレッシュを実行すべき時期が到来したことを表す信号がリフレッシュカウンタ108から入力されると、メモリ38に対してリフレッシュの実行を指示すると共に、リフレッシュの実行中に入力された読出/書込要求に対してはビジー応答を返し、リフレッシュの実行完了がメモリ38から通知されると、リフレッシュカウンタ108のカウント値をリセットさせる信号をリフレッシュカウンタ108へ出力する。
【0047】
上述したように、I/F回路80を構成する入力I/F部82、出力I/F部84、CPU I/F部86及びメモリI/F部88は各々シーケンサを備えている。シーケンサは、現在の内部状態を保持すると共に、所定の事象が発生する毎に、保持している内部状態を遷移させると共に、遷移後の内部状態に応じた処理を行う回路であり、一例として図7(A)に示す状態遷移では、内部状態が「状態A」の場合は、条件1を満たす事象が発生する迄は「状態A」を維持し、条件1を満たす事象が発生すると「状態B」へ遷移し、内部状態が「状態B」の場合は、条件2を満たす事象が発生する迄は「状態B」を維持し、条件2を満たす事象が発生すると「状態C」へ遷移し、内部状態が「状態C」の場合は、条件3を満たす事象が発生する迄は「状態C」を維持し、条件3を満たす事象が発生すると「状態D」へ遷移し、内部状態が「状態D」の場合は、条件4を満たす事象が発生する迄は「状態D」を維持し、条件4を満たす事象が発生すると「状態A」へ遷移する。
【0048】
上記のような状態遷移を行うために、シーケンサは内部状態を保持・更新する状態遷移回路を含んで構成されているが、状態遷移回路の構成には複数種あり、そのうちの1つとして、例えば図7(B)に示すように、シーケンサの内部状態の種類数をmとしたときに、1ビットの値を保持する保持回路(図ではフリップフロップとして示す)112と、現在の内部状態がm種類の内部状態のうちの特定の内部状態か否かを表す1ビットの値を保持回路112に保持させると共に、特定の内部状態への遷移又は特定内部状態からの遷移に関連する所定の事象(例えば図7(A)に示す状態遷移において、特定内部状態が「状態A」であれば条件1を満たす事象又は条件4を満たす事象)が発生する毎に、保持回路112に保持されている1ビットの値を変更する状態遷移管理部114が、内部状態の種類数mと同数だけ各々設けられた構成(one-hotタイプ)の状態遷移回路110がある。なお、図7はシーケンサの内部状態の種類数m=4を前提としており、状態遷移回路110には保持回路112が4個設けられている。
【0049】
また、状態遷移回路の別の構成として、例えば図7(C)に示すように、2を底とする内部状態の種類数mの対数値以上のn個設けられ各々1ビットの値を保持する保持回路(図ではフリップフロップとして示す)118と、現在の内部状態を表すnビットの値をn個の保持回路118に保持させると共に、内部状態を変更すべき所定の事象が発生する毎に、n個の保持回路118に保持されているnビットの値を、発生した事象の種類に応じた内部状態を表すnビットの値に変更する単一の状態遷移管理部120と、を含んだ構成(binaryタイプ又はgrayタイプ)の状態遷移回路116もある。なお、内部状態の種類数m=4の場合、2を底とする内部状態の種類数mの対数値=2となるので、状態遷移回路116には前記対数値と同数(n=2)個の保持回路118が設けられている。
【0050】
図7(B)に示すone-hotタイプの状態遷移回路110は、4個の保持回路112の各々に保持されている1ビットの値が、4種類の内部状態のうちの互いに異なる内部状態に対応しており(図7(B)に示す図表も参照)、現在の内部状態を表す4ビットの値が4個の保持回路112に保持される。従って、保持回路112と同数設けられ保持回路112に保持されている値を変更する個々の状態遷移管理部114は、上記の所定の事象が発生する毎に対応する保持回路112に保持されている1ビットの値を変更する処理を、他の状態遷移管理部114と独立に行うことができるので、高速動作が可能である(動作可能なクロック信号の周波数帯域が高い)。但し、one-hotタイプの状態遷移回路110では、内部状態の変更時に必ず2個の保持回路112で保持している1ビットの値が変化するので、スイッチング回数が比較的多く消費電力が高いという欠点がある。
【0051】
一方、図7(C)に示すbinaryタイプ又はgrayタイプの状態遷移回路116では、4種類の内部状態のうちの現在の内部状態が2ビットの値にエンコードされて2個の保持回路118に保持されるので、図7(C)にも示すように、状態遷移管理部120は、現在の内部状態を認識するにあたって2個の保持回路118に保持されている2ビットの値を現在の内部状態を表す4ビットの値へデコードする処理を行う必要があると共に、内部状態の変更時には、変更後の内部状態を表す4ビットの値を2ビットの値へエンコードした後に2個の保持回路118に保持させる処理を行う必要があるので、動作速度の点で不利である(動作可能なクロック信号の周波数帯域が低い)。しかし、内部状態を変更すべき事象が発生した際に、保持されている1ビットの値が変更される保持回路118の数の平均値が2よりも小さく、one-hotタイプの状態遷移回路110よりも消費電力が低い。
【0052】
また、状態遷移回路116において、シーケンサの個々の内部状態へのnビットの値の割当方式としては、状態遷移順に並べた個々の内部状態に対し、nビットの2進数の昇順に並べたnビットの値を割り当てる方式(binaryタイプ:図7(C)にbinaryタイプと表記して示す図表も参照)と、状態遷移順に並べた個々の内部状態に対し、状態遷移時に値が変化するビットの数が常に1となるように並べたnビットの値を割り当てる方式(grayタイプ:図7(C)にgrayタイプと表記して示す図表も参照)がある。grayタイプは、内部状態を変更すべき事象が発生した際に、保持されている1ビットの値が変更される保持回路118の数が常に1になるので、binaryタイプよりもgrayタイプを採用した方が状態遷移回路116の消費電力が低くなる。
【0053】
上記に基づき本実施形態では、I/F回路80をFPGA40上に構成させる構成情報として、I/F回路80を構成する各I/F部82〜88のシーケンサに占めるone-hotタイプの状態遷移回路110を備えたシーケンサ及びgrayタイプの状態遷移回路116の割合が異なる2種類のI/F回路80の何れかをFPGA40上に構成させる2種類の構成情報を用意し、各I/F部82〜88のシーケンサに占めるone-hotタイプの状態遷移回路110を備えたシーケンサの割合が高い高速動作版のI/F回路80をFPGA40上に構成させる第1の構成情報と、各I/F部82〜88のシーケンサに占めるgrayタイプの状態遷移回路116を備えたシーケンサの割合が高い低消費電力版のI/F回路80をFPGA40上に構成させる第2の構成情報をフラッシュROM36に予め各々記憶させている。なお、高速動作版のI/F回路80は本発明に係る第1回路、低消費電力版のI/F回路80は本発明に係る第2回路に対応しており、第1及び第2の構成情報を記憶するフラッシュROM36は本発明に係る記憶手段に対応している。
【0054】
高速動作版のI/F回路80及び低消費電力版のI/F回路80において、各I/F部82〜88のシーケンサに占めるone-hotタイプの状態遷移回路110を備えたシーケンサ及びgrayタイプの状態遷移回路116の割合は、高速動作版のI/F回路80及び低消費電力版のI/F回路80に対する要求性能に応じて定めることができる。
【0055】
本実施形態に係るプリンタI/Fカード30は最大2台のプリンタ26A,26Bをコンピュータ10に接続可能なI/Fカードであり、プリンタI/Fカード30を介してコンピュータ10に接続されるプリンタ26の台数は1台の場合と2台の場合がある。このため、以下では、コンピュータ10に2台のプリンタ26が接続されている場合は、第1の構成情報を用いてFPGA40上に高速動作版のI/F回路80を構成させ、コンピュータ10に1台のプリンタ26のみが接続されている場合は、第2の構成情報を用いてFPGA40上に低消費電力版のI/F回路80を構成させる態様を例に、高速動作版のI/F回路80及び低消費電力版のI/F回路80の構成の一例について、具体的な数値を挙げて説明する。なお、本発明は以下に記載した数値に限定されるものではないことを付記しておく。
【0056】
例として図8(A)に示すように、入力I/F部82とPCI I/F部32との間の情報伝送が32ビット幅で33MHzのクロック信号に同期して行われ(伝送速度(ビットレート)=1056Mbps)、出力I/F部84とプリンタ26Aとの間の情報伝送が32ビット幅で55MHzのクロック信号に同期して行われ(伝送速度(ビットレート)=1980Mbps)、出力I/F部84とプリンタ26Bとの間の情報伝送が32ビット幅で66MHzのクロック信号に同期して行われ(伝送速度(ビットレート)=2376Mbps)、CPU I/F部86とCPU34との間の情報伝送が32ビット幅で66MHzのクロック信号に同期して行われる(伝送速度(ビットレート)=2112Mbps)場合を考える。
【0057】
プリンタI/Fカード30に2台のプリンタ26A,26Bが接続された場合、上記各I/F部82〜86が各々メモリI/F部88を介してメモリ38にアクセスするので、メモリI/F部88がI/F回路80の処理速度のボトルネックとなることを回避するためには、メモリI/F部88の処理速度(ビットレート)を、上記各I/F部82〜86におけるビットレートの合計値7524Mbpsよりも大きくする必要がある。ここで、メモリI/F部88とメモリ38との間の情報伝送が64ビット幅で120MHzのクロック信号に同期して行われたとすると伝送速度(ビットレート)は7680Mbpsとなり、上記の要求値を上回るので、メモリI/F部88がI/F回路80の処理速度のボトルネックとなることを回避できる。
【0058】
但し、grayタイプの状態遷移回路116の動作可能周波数帯域の上限は現状で100MHz程度であり、メモリI/F部88のメモリ制御シーケンサ104としてgrayタイプの状態遷移回路116を備えたシーケンサを適用することは困難である。このため、高速動作版のI/F回路80では、I/F部82〜86のシーケンサとしてgrayタイプの状態遷移回路116を備えたシーケンサが適用される一方、メモリI/F部88のメモリ制御シーケンサ104としてone-hotタイプの状態遷移回路110を備えたシーケンサが適用された構成となるように第1の構成情報が設定されている。また、第1の構成情報の中には、高速動作版のI/F回路80のクロック発生回路90が、入力I/F部82に33MHzのクロック信号を供給し、プリンタ26Aとの情報伝送を行う出力I/F部84に55MHzのクロック信号を供給し、プリンタ26Aとの情報伝送を行う出力I/F部84及びCPU I/F部86に66MHzのクロック信号を供給し、メモリI/F部88に120MHzのクロック信号を供給する構成となるように設定された情報(請求項3に記載の周波数規定情報に相当する情報)も含まれている。
【0059】
一方、プリンタI/Fカード30にプリンタ26Aのみが接続された場合、図8(B)に示すように、2個の出力I/F部84のうちプリンタ26Bと接続される出力I/F部84(図8(B)に「出力BI/F部」と表記して示す出力I/F部84)とプリンタ26Bとの間の情報伝送が行われないので、各I/F部82〜86のうち当該出力I/F部84を除いたI/F部におけるビットレートの合計値は5148Mbpsになる。このため、メモリI/F部88とメモリ38との間の情報伝送を64ビット幅で81MHzのクロック信号に同期して行うようにすれば伝送速度(ビットレート)が5184Mbpsとなり、上記の要求値を上回るので、メモリI/F部88がI/F回路80の処理速度のボトルネックとなることを回避できる。そして、上記の周波数81MHzはgrayタイプの状態遷移回路116の動作可能周波数帯域の上限よりも低い。
【0060】
このため、低消費電力版のI/F回路80では、メモリI/F部88を含む全てのI/F部82〜88のシーケンサとしてgrayタイプの状態遷移回路116を備えたシーケンサが適用された構成となるように第2の構成情報が設定されている。また、第2の構成情報の中には、低消費電力版のI/F回路80のクロック発生回路90が、入力I/F部82に33MHzのクロック信号を供給し、プリンタ26Aとの情報伝送を行う出力I/F部84に55MHzのクロック信号を供給し、CPU I/F部86に66MHzのクロック信号を供給し、メモリI/F部88に81MHzのクロック信号を供給する構成となるように設定された情報(請求項3に記載の周波数規定情報に相当する情報)も含まれている。。
【0061】
回路の消費電力は動作周波数におよそ比例するので、高速動作版のI/F回路80に対し、低消費電力版のI/F回路80におけるメモリI/F部88の動作周波数が120MHzから81MHzに低下することで、高速動作版のI/F回路80におけるメモリI/F部88の消費電力を100%とすると、低消費電力版のI/F回路80におけるメモリI/F部88の消費電力は、
100×(81÷120)=67.5%
に低下する。
【0062】
また、高速動作版のI/F回路80では、メモリI/F部88のメモリ制御シーケンサ104としてone-hotタイプの状態遷移回路110を備えたシーケンサを適用しているのに対し、低消費電力版のI/F回路80では、メモリI/F部88のメモリ制御シーケンサ104としてgrayタイプの状態遷移回路116を備えたシーケンサを適用しており、one-hotタイプの状態遷移回路110では、内部状態を変更すべき事象が発生した際に、保持している1ビットの値が変更される保持回路112の数が常に2になるののに対し、grayタイプの状態遷移回路116では、内部状態を変更すべき事象が発生した際に、保持している1ビットの値が変更される保持回路112の数が常に1であり、スイッチング回数が1/2になるので、低消費電力版のI/F回路80におけるメモリI/F部88の消費電力は、上記のように動作周波数を低下させることに加えて、メモリ制御シーケンサ104を、grayタイプの状態遷移回路116を備えたシーケンサへ変更することで更に低減されることになる。
【0063】
また、本実施形態に係る第1及び第2の構成情報は、FPGA40に設けられている論理回路セル46のうち、FPGA40上に構成するI/F回路80の一部を構成する個々の論理回路セル46については、論理回路セル46内のバッファ76が入力されたクロック信号をD−FF62の同期信号入力端へそのまま出力する第1状態となり、FPGA40上にI/F回路80を構成する際に使用しないそれ以外の論理回路セル46については、論理回路セル46内のバッファ76が入力信号に拘わらず出力端をハイインピーダンスにする第2状態になるように設定されている。これにより、FPGA40上に高速動作版及び低消費電力版の何れのI/F回路80を構成した場合にも、使用しない論理回路セル46内のD−FF62へのクロック信号の供給が遮断されるので、高速動作版及び低消費電力版の何れのI/F回路80についても消費電力が更に低減される。なお、第1及び第2の構成情報のうち、使用しない論理回路セル46に対し、論理回路セル46内のバッファ76を第2状態に切り替える情報は、請求項8に記載の遮断制御情報に対応している。
【0064】
ところで、上記のように、FPGA40上に高速動作版のI/F回路80を構成させるか低消費電力版のI/F回路80を構成させるかを、プリンタI/Fカード30を介してコンピュータ10に接続されたプリンタ26の台数に応じて切り替える場合、プリンタI/Fカード30のCPU34は、コンピュータ10の電源が投入されて電力が供給されると、まずプリンタI/Fカード30に接続されているプリンタ26の台数を検知し、検知した台数が2台であればフラッシュROM36から第1の構成情報を読み出し、読み出した第1の構成情報をFPGA40に与えることで、FPGA40上に高速動作版のI/F回路80を構成させ、検知した台数が1台であればフラッシュROM36から第2の構成情報を読み出し、読み出した第2の構成情報をFPGA40に与えることで、FPGA40上に低消費電力版のI/F回路80を構成させる。このように、CPU34は本発明に係る再構成手段に対応している。これにより、プリンタI/Fカード30に接続されているプリンタ26の台数に応じて変化するI/F回路80に対する要求性能に応じて、FPGA40上に構成されるI/F回路80の構成を切り替えることができる。
【0065】
また、プリンタ26とのインタフェースが、コンピュータ10が稼働している状態で接続ケーブル44の抜き差し(所謂ホットプラグ)が可能なインタフェースである場合は、プリンタI/Fカード30に接続されているプリンタ26の台数を検知し、前回検知した台数と比較する処理を周期的に行い、前回検知した台数と相違していた場合には、検知した最新の台数に対応する構成情報をフラッシュROM36から読み出し、読み出した構成情報をFPGA40に与えることで、プリンタI/Fカード30に現在接続されているプリンタ26の台数に対応するI/F回路80をFPGA40上に構成させる処理を行うように、CPU34が実行するプログラムを構成すればよい。
【0066】
なお、上記ではFPGA40上に高速動作版のI/F回路80を構成させるか低消費電力版のI/F回路80を構成させるかを、プリンタI/Fカード30を介してコンピュータ10に接続されたプリンタ26の台数に応じて切り替える態様を説明したが、これに限定されるものではない。例えばプリンタI/Fカード30とプリンタ26との間の伝送速度(ビットレート)が、プリンタ26に加わっている負荷の大きさ等に応じて切り替わる仕様となっていたり、PCIバス16を介してプリンタI/Fカード30に入力されるデータの実質的な転送レートがコンピュータ10に加わっている負荷の大きさによって変化する等のように、プリンタI/Fカード30(I/F回路80)に対する要求性能は時々刻々変化する可能性があるので、プリンタI/Fカード30(I/F回路80)に対する要求性能を検知し、検知した要求性能に応じてFPGA40上に構成するI/F回路80を切り替えるようにしてもよい。
【0067】
また、FPGA等のプログラマブル論理デバイスでは、チップ上の個々の論理回路セル46の間に設けられた個々の配線や個々の論理回路セル46内の個々の配線毎に、容量や信号遅延に関する特性が相違している。このため、例えば図9に示すように容量が大きく信号遅延が小さい配線Aと、容量が小さく信号遅延が大きい配線Bがプログラマブル論理デバイス上に存在していた場合に、プログラマブル論理デバイス上に構成する回路のうち、動作速度を重視した高速動作版の回路については配線Aを使用することで動作速度を更に高速化し、消費電力を重視した低消費電力版の回路については配線Bを使用することで消費電力を更に抑制する等、個々の回路で重視される項目に適した特性を有する配線を用いて回路が構成されるように、個々の回路の構成情報を設定するようにしてもよい。これにより、回路構成自体は同一であっても個々の回路の性能(動作速度又は消費電力)を更に向上させることができる。
【0068】
また、上記ではFPGA40上に高速動作版のI/F回路80を構成させるための第1の構成情報と低消費電力版のI/F回路80を構成させるための第2の構成情報をフラッシュROM36に記憶させた態様を説明したが、FPGA40上に構成する回路の種類数(構成情報の種類数)は上記に限られるものではなく、より多数種類の構成情報を用意しておき、各構成情報に対応するより多数種の回路の中からFPGA40上に構成する回路の選択・切り替えを行うようにしてもよい。
【0069】
また、上記ではプリンタI/Fカード30に搭載したFPGA40上にI/F回路80を構成する場合を例に説明したが、本発明を適用可能なプログラマブル論理デバイスはFPGAに限られるものではなく、例えば構成情報の記憶及び書替えが可能なフラッシュメモリが搭載されたPLD(具体的には、例えばアルテラ社製のMAXII等)、或いはDAP/DNA等のように、回路構成の再構成が可能なプログラマブル論理デバイスであれば本発明を適用可能である。また、プログラマブル論理デバイス上に構成する回路がI/F回路80に限られるものではなく、またプログラマブル論理デバイスを含む本発明に係る電子回路がプリンタI/Fカード30に搭載した回路に限られるものでもなく、本発明はプログラマブル論理デバイスを含む任意の構成の電子回路に適用可能であり、該電子回路の構成や該電子回路に対する要求性能に応じて、任意の構成の第1回路及び該第1回路よりもスイッチング回数が少なく動作可能なクロック信号の周波数帯域が低い任意の構成の第2回路をプログラマブル論理デバイス上に選択的に構成する場合に本発明を適用可能であることは言うまでもない。
【図面の簡単な説明】
【0070】
【図1】本実施形態に係るコンピュータ及びプリンタI/Fカードの概略構成を示すブロック図である。
【図2】FPGAのチップ上の概略構成を示す平面図である。
【図3】FPGAの論理回路セルの構成の一例を示す回路図である。
【図4】(A)〜(C)は図3の論理回路セルによって実現可能な論理回路の一例を示すブロック図である。
【図5】プリンタI/FカードのFPGA上に構成される回路の一例を示すブロック図である。
【図6】(A)〜(D)は図5の回路中の各I/F部の概略構成を示すブロック図である。
【図7】(A)はシーケンサの状態遷移の一例を示す概念図、(B)はone-hotタイプ、(C)はgrayタイプのシーケンサの概略構成図及び各フリップフロップに保持されている値と内部状態との関係を示す図表である。
【図8】プリンタI/Fカードに、(A)は2台のプリンタが接続された場合、(B)はプリンタが1台のみ接続された場合の要求性能の一例を説明するための説明図である。
【図9】特性の異なる配線を選択することによる回路の性能向上を説明するための概念図である。
【符号の説明】
【0071】
30 プリンタI/Fカード
34 CPU
36 フラッシュROM
38 メモリ
40 FPGA
46 論理回路セル
48 配線群
62 D−FF
76 バッファ
110 状態遷移回路
116 状態遷移回路

【特許請求の範囲】
【請求項1】
複数の論理回路セルと、個々の前記論理回路セルの間に設けられ前記個々の論理回路セルの間の電気的な接続を再構成可能な配線が設けられ、任意の回路を構成可能でかつ回路構成の再構成が可能なプログラマブル論理デバイスと、
入力されたクロック信号に同期して所定処理を行う第1回路を前記プログラマブル論理デバイス上に構成させるための第1構成情報と、入力されたクロック信号に同期して前記所定処理を行う際のスイッチング回数が前記第1回路よりも少なく動作可能なクロック信号の周波数帯域が前記第1回路よりも低い第2回路を前記プログラマブル論理デバイス上に構成させるための第2構成情報を各々記憶する記憶手段と、
前記記憶手段に記憶されている前記第1構成情報又は前記第2構成情報に従って少なくとも前記配線を再構成させることで、前記プログラマブル論理デバイス上に前記第1回路又は前記第2回路を構成させる再構成手段と、
を含む電子回路。
【請求項2】
前記プログラマブル論理デバイスの個々の論理回路セルは、複数の論理回路要素と、個々の前記論理回路要素の間に設けられ前記個々の論理回路要素の間の電気的な接続を再構成可能な配線が設けられ、複数種の論理回路を選択的に構成可能でかつ論理回路の構成の再構成が可能とされており、
前記再構成手段は、前記記憶手段に記憶されている前記第1構成情報又は前記第2構成情報に従い、前記プログラマブル論理デバイスの個々の論理回路セルのうち、前記プログラマブル論理デバイス上に前記第1回路又は前記第2回路を構成させる際に使用する論理回路セルについて、前記複数種の論理回路のうちの何れかの論理回路を各々構成させることで、前記プログラマブル論理デバイス上に前記第1回路又は前記第2回路を構成させることを特徴とする請求項1記載の電子回路。
【請求項3】
前記プログラマブル論理デバイスには、前記個々の論理回路セルに供給するクロック信号を発生させると共に、当該クロック信号の周波数を変更設定可能なクロック信号発生回路が設けられており、
前記第1及び第2構成情報には、前記プログラマブル論理デバイス上に前記第1回路が構成された場合の前記クロック信号の周波数が、前記プログラマブル論理デバイス上に前記第2回路が構成された場合の前記クロック信号の周波数よりも高くなるように、前記クロック信号の周波数を規定する周波数規定情報も付加されており、
前記再構成手段は、前記周波数規定情報に従って前記クロック信号の周波数を設定することを特徴とする請求項1記載の電子回路。
【請求項4】
前記第1及び第2回路は、現在の内部状態を表す情報を保持すると共に、所定の事象が発生する毎に、前記保持している内部状態を遷移させる状態遷移回路を備え、前記所定の処理として、前記状態遷移回路に保持されている現在の内部状態に応じた処理を行うシーケンサを含んで構成されていることを特徴とする請求項1記載の電子回路。
【請求項5】
前記シーケンサの前記状態遷移回路は、各々1ビットの値を保持する保持回路と、現在の内部状態がm種類の内部状態のうちの特定内部状態か否かを表す1ビットの値を前記保持回路に保持させると共に、前記特定内部状態への遷移又は前記特定内部状態からの遷移に関連する所定の事象が発生する毎に、前記保持回路に保持されている1ビットの値を変更する変更回路と、が前記内部状態の種類数mと同数だけ各々設けられ、個々の前記変更回路は、個々の前記保持回路に前記m種類の内部状態のうちの互いに異なる内部状態に対応する1ビットの値を保持させることを特徴とする請求項4記載の電子回路。
【請求項6】
前記シーケンサの前記状態遷移回路は、2を底とする前記内部状態の種類数mの対数値以上のn個設けられ各々1ビットの値を保持する保持回路と、現在の内部状態を表すnビットの値を前記n個の保持回路に保持させると共に、所定の事象が発生する毎に、前記n個の保持回路に保持されているnビットの値を、発生した事象の種類に応じた内部状態を表すnビットの値に変更する単一の変更回路と、を含んで構成されていることを特徴とする請求項4記載の電子回路。
【請求項7】
前記m種類の内部状態の何れかに各々対応しているm種類のnビットの値は、当該値が前記変更回路によって変更された際の変更後のnビットの値が、変更前のnビットの値に対してnビット中の1ビットのみが変化するように定められていることを特徴とする請求項6記載の電子回路。
【請求項8】
前記プログラマブル論理デバイスの個々の論理回路セルには、個々の論理回路セルに入力されたクロック信号を論理回路セル内の論理回路に入力するか入力を遮断するかを変更可能な遮断回路が各々設けられており、
少なくとも前記第2構成情報には、前記プログラマブル論理デバイスの個々の論理回路セルのうち、前記プログラマブル論理デバイス上に前記第2回路を構成させる際に使用されない論理回路セルに設けられた遮断回路を、前記クロック信号の入力を遮断する遮断状態に切り替えるための遮断制御情報が付加されており、
前記再構成手段は、前記プログラマブル論理デバイス上に前記第2回路を構成させる場合に、前記第2構成情報に付加されている前記遮断制御情報に従い、前記使用されない論理回路セルに設けられた遮断回路を前記遮断状態に切り替えることを特徴とする請求項1記載の電子回路。
【請求項9】
複数の論理回路セルと、前記個々の論理回路セルの間に設けられ個々の論理回路セルの間の電気的な接続を再構成可能な配線が設けられ、任意の回路を構成可能でかつ回路構成の再構成が可能なプログラマブル論理デバイスを使用するにあたり、
入力されたクロック信号に同期して所定処理を行う第1回路を前記プログラマブル論理デバイス上に構成させるための第1構成情報と、入力されたクロック信号に同期して前記所定処理を行う際のスイッチング回数が前記第1回路よりも少なく動作可能なクロック信号の周波数帯域が前記第1回路よりも低い第2回路を前記プログラマブル論理デバイス上に構成させるための第2構成情報を記憶手段に各々記憶しておき、
前記記憶手段に記憶されている前記第1構成情報又は前記第2構成情報に従って少なくとも前記配線を再構成させることで、前記プログラマブル論理デバイス上に前記第1回路又は前記第2回路を構成させる
ことを特徴とするプログラマブル論理デバイスの使用方法。

【図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


【公開番号】特開2007−180810(P2007−180810A)
【公開日】平成19年7月12日(2007.7.12)
【国際特許分類】
【出願番号】特願2005−375967(P2005−375967)
【出願日】平成17年12月27日(2005.12.27)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】