JP2018033036A - 再構成可能論理回路 - Google Patents

再構成可能論理回路 Download PDF

Info

Publication number
JP2018033036A
JP2018033036A JP2016164829A JP2016164829A JP2018033036A JP 2018033036 A JP2018033036 A JP 2018033036A JP 2016164829 A JP2016164829 A JP 2016164829A JP 2016164829 A JP2016164829 A JP 2016164829A JP 2018033036 A JP2018033036 A JP 2018033036A
Authority
JP
Japan
Prior art keywords
unit
reconfiguration
selector
data processing
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016164829A
Other languages
English (en)
Other versions
JP6786955B2 (ja
Inventor
領 久木宮
Ryo Kukimiya
領 久木宮
正智 五十嵐
Masatomo Igarashi
正智 五十嵐
雅広 石渡
Masahiro Ishiwatari
雅広 石渡
順一 内山
Junichi Uchiyama
順一 内山
日史 佐々木
Hirofumi Sasaki
日史 佐々木
玉谷 光之
Mitsuyuki Tamaya
光之 玉谷
和雄 山田
Kazuo Yamada
和雄 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2016164829A priority Critical patent/JP6786955B2/ja
Priority to US15/442,041 priority patent/US10795689B2/en
Priority to CN201710321227.XA priority patent/CN107786198A/zh
Publication of JP2018033036A publication Critical patent/JP2018033036A/ja
Application granted granted Critical
Publication of JP6786955B2 publication Critical patent/JP6786955B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17756Structural details of configuration resources for partial configuration or partial reconfiguration
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Logic Circuits (AREA)

Abstract

【課題】データ処理に要する時間に比べて再構成(コンフィグレーション)のための書き換え時間を十分に短くし得る再構成可能論理回路を提供する。
【解決手段】再構成可能論理回路は、データ処理部10と、コンフィグレーションコントロールビット保持部30と、セレクタ部31を備える。コンフィグレーションコントロールビット保持部30は、処理毎の複数組のコンフィグレーションコントロールビットを保持する。セレクタ部31は、セレクタ制御信号に応じていずれかの組のコンフィグレーションコントロールビットを選択してデータ処理部10に供給し、データ処理部10を再構成する。再構成可能論理回路は、FPGAで構成され得る。
【選択図】図1

Description

本発明は、再構成可能論理回路に関する。
従来から、再構成可能(コンフィグラブル)な論理回路が知られている。
特許文献1には、論理回路の使用/未使用を設定することで再構成可能な電子回路が記載されている。
図13は、特許文献1に記載された論理回路である。論理回路10は、複数の論理ゲート21〜27を備えて構成される。C0、C1、C2、・・・C5のコンフィグレーションコントロールビットという、実質的にはメモリに相当するスイッチまたはトランジスタによって論理回路の使用/未使用を設定する。
米国特許第4870302号
論理回路の再構成は、外部からのクロック、制御信号、及びデータバスによりメモリに対してデータを書き込むことで行われ、論理回路の全面的な書き換えにはmsオーダの時間を要していた。
論理回路を書き換えないで運用する場合には、論理回路を備える装置の電源投入時に一度書き換えればそれでよいが、処理の内容をリアルタイムに書き換えながら運用する場合において、その処理単位に求められる処理時間がmsオーダよりも速いときには、書き換え時間が全体の処理に占める割合が多くなり、所望の性能を果たせなくなる。
図14は、データ処理の時間と再構成(コンフィグレーション)のための書き換え時間との関係を模式的に示す。図14(a)は所望の処理であり、処理A及び処理Bにそれぞれ10msを要し、処理Aから処理Bに移行するための書き換え時間はこれらの処理時間に比べて十分に短く、例えば1ms以下であることが望ましい。他方、図14(b)は書き換え時間が例えば90msの場合であり、処理A及び処理Bに要する時間よりも書き換え時間の方が長く、全体の処理に占める書き換えの割合が著しく多くなっている。
なお、論理回路を全面的に書き換えるのではなく、部分的に書き換えることも考えられるが、書き換え時間はロジックの容量に比例し、比較的大きな機能ブロックの書き換えにはたとえ部分的な書き換えであったとしても相応の時間を要することとなるため、所望の処理の実現は困難である。
本発明の目的は、データ処理に要する時間に比べて再構成(コンフィグレーション)のための書き換え時間を十分に短くし得る再構成可能論理回路を提供することにある。
請求項1に記載の発明は、データ処理部と、複数組のコンフィグレーションコントロールビットを記憶する記憶部と、記憶部に記憶された複数組のコンフィグレーションコントロールビットのいずれかの組を選択的に切り替えてデータ処理部に供給してデータ処理部の処理内容を再構成するセレクタ部とを備える再構成可能論理回路である。
請求項2に記載の発明は、データ処理部、記憶部、及びセレクタ部はそれぞれ複数設けられる請求項1に記載の再構成可能論理回路である。
請求項3に記載の発明は、セレクタ部での切り替えは、ソフトウェアで実行される請求項1,2のいずれかに記載の再構成可能論理回路である。
請求項4に記載の発明は、セレクタ部での切り替えは、ハードウェアで実行される請求項1,2のいずれかに記載の再構成可能論理回路である。
請求項5に記載の発明は、データ処理部は、データ処理の終了を検知する処理終了検知部を備え、セレクタ部での切り替えは、処理終了検知部からの検知情報に応じて実行される請求項4に記載の再構成可能論理回路である。
請求項6に記載の発明は、処理終了検知部からの検知情報を再構成情報として保持する再構成情報記憶部と、再構成許可情報を保持する再構成許可情報記憶部と、再構成情報記憶部に保持された情報と再構成許可情報記憶部に保持された情報とに応じてセレクタ制御信号を生成してセレクタ部に供給する再構成指示部とを備える請求項5に記載の再構成可能論理回路である。
請求項7に記載の発明は、記憶部は、少なくとも、データ処理部での第1の処理用のコンフィグレーションコントロールビットの組と、第2の処理用のコンフィグレーションコントロールビットの組を記憶し、処理終了検知部は、データ処理部での第1の処理の終了を検知して第2の処理に切り替える設定値を再構成情報記憶部に格納し、再構成許可情報記憶部は、第1の処理から第2の処理に切り替える設定値を保持し、再構成指示部は、再構成情報記憶部に格納された設定値と、再構成許可情報記憶部に保持されている設定値が一致する場合に、セレクタ部にセレクタ制御信号を出力し、セレクタ部は、セレクタ制御信号に応じてデータ処理部に第2の処理用のコンフィグレーションコントロールビットの組を供給する請求項6に記載の再構成可能論理回路である。
請求項8に記載の発明は、データ処理部、記憶部及びセレクタ部は、FPGA(Field-Programmable Gate Array)で構成される請求項1〜7のいずれかに記載の再構成可能論理回路である。
請求項1に記載の発明によれば、データ処理に要する時間に比べて再構成(コンフィグレーション)のための書き換え時間を十分に短くし得る。
請求項2に記載の発明によれば、さらに、複数の再構成可能論理回路の並列処理により処理を高速化できる。
請求項3に記載の発明によれば、さらに、ソフトウェア的に再構成することができる。
請求項4〜7に記載の発明によれば、さらに、ハードウェア的に再構成することができる。また、これにより書き換え時間をさらに短縮し得る。
請求項8に記載の発明によれば、さらに、FPGA(Field-Programmable Gate Array)を用いて再構成可能論理回路を構成できる。また、これにより入出力ピンの位置の変更も含めた再構成が可能となる。
第1実施形態の構成図である。 第1実施形態の処理時間と書き換え時間の関係を示す模式図である。 第2実施形態の構成図である。 第2実施形態の機能ブロック図である。 第2実施形態の回路記憶部の構成図である。 第2実施形態の再構成許可レジスタの設定値を示す説明図である。 第2実施形態のタイミングチャートである。 第2実施形態の処理フローチャートである。 第3実施形態のディザ処理説明図である。 第3実施形態の再構成説明図である。 第4実施形態のシステム構成図である。 第4実施形態の処理説明図である。 従来回路の構成図である。 従来回路の処理時間と書き換え時間の関係を示す模式図である。
以下、図面に基づき本発明の実施形態について説明する。
<第1実施形態>
図1は、本実施形態における再構成可能論理回路の構成を示す。再構成可能論理回路は、データ処理部10と、複数組のコンフィグレーションコントロールビットを保持する保持部30と、セレクタ部31を備える。
データ処理部10は、図13に示す論理回路10と同一であり、複数の論理ゲートを備えた回路である。
コンフィグレーションコントロールビット保持部30は、複数組のコンフィグレーションコントロールビットを保持するレジスタ等で構成され、図では処理A用の保持部30a、処理B用の保持部30b、・・・、処理X用の保持部30xから構成される。各保持部30a、30b、・・・30xは、それぞれC0、C1、C2、C3,C4、C5の合計6ビットを1組としてD−FF(D型フリップフロップ)に保持してセレクタ部31に出力する。すなわち、コンフィグレーションコントロールビット保持部30は、処理A用のコンフィグレーションコントロールビットの組、処理B用のコンフィグレーションコントロールビットの組、・・・処理X用のコンフィグレーションコントロールビットの組を保持する。保持するコンフィグレーションコントロールビットの組は2以上であれば任意であり、かつ、それぞれの組におけるコンフィグレーションコントロールビットの数も6ビットに限定されない。
セレクタ部31は、コンフィグレーションコントロールビット保持部30からの、処理A用のコンフィグレーションコントロールビットの組、処理B用のコンフィグレーションコントロールビットの組、・・・、処理X用のコンフィグレーションコントロールビットの組を入力し、セレクタ制御信号に応じていずれかのコンフィグレーションコントロールビットの組を選択してデータ処理部10に供給し、データ処理部10を再構成する。
具体的には、データ処理部10にて処理Aを実行する場合、セレクタ部31は、コンフィグレーションコントロールビット保持部30aに保持されているC0〜C5のコンフィグレーションコントロールビットの組をデータ処理部10に供給する。例えば、
C0=1
C1=1
C2=0
C3=0
C4=0
C5=1
の組を出力してデータ処理部10を構成する。次に、データ処理部10を処理Aから処理Bに再構成する場合、セレクタ部31は、コンフィグレーションコントロールビット保持部30bに保持されているC0〜C5のコンフィグレーションコントロールビットの組をデータ処理部10に供給する。例えば、
C0=0
C1=0
C2=1
C3=1
C4=1
C5=0
の組を出力してデータ処理部10を再構成する。
このように、コンフィグレーションコントロールビットを保持する保持部30を複数個処理毎に備えておき、切替が必要な場合にセレクタ制御信号ないしトリガ信号により処理Aから処理B、さらには処理Cと任意の処理に切り替えることで、再構成のための書き換え時間を短縮することができる。本実施形態では、書き換えに要する時間はセレクタ部31での切替に要する時間に等しく、従って1ms以下での書き換えが可能である。
なお、処理の切替タイミングは、ソフトウェア的に処理すればよく、例えば、処理Aの実行タイミングにおいて図示しないCPUが処理プログラムに従い処理A用のトリガ信号をセレクタ部31に出力して処理A用のコンフィグレーションコントロールビットの組を選択させてデータ処理部10を構成し、処理Aが完了したことをソフトウェア的に検知すると、CPUは処理プログラムに従い処理B用のトリガ信号をセレクタ部31に出力して処理B用のコンフィグレーションコントロールビットの組を選択させてデータ処理部10を再構成する。
<第2実施形態>
第1実施形態では、再構成のための書き換え時間を1ms以下、例えば90μsに短縮することが可能であるが、他方で、データ処理部10でのデータ処理に要する時間が更に短くなり、例えば10μs程度になると、相対的に書き換え時間の占める割合が多くなってしまう。
図2は、この場合の処理時間と書き換え時間の関係を模式的に示す。データ処理部10でハードウェア的に処理A及び処理Bを10μsで処理し、他方で、セレクタ部31でソフトウェア的に切替制御して書き換える処理を90μsで処理する。すなわち、処理Aを10μsで行い、90μsでデータ処理部10を書き換え、処理Bを10μsで行い、90μsでデータ処理部10を書き換え、処理Cを10μs実行する等である。相対的に書き換え時間の方が長くなると、再構成のための書き換え時間を全体の中で隠蔽することができず、書き換え時間がオーバヘッドとなってシステム性能が低下する。
そこで、本実施形態では、第1実施形態よりもさらに書き換え時間を短縮する構成について説明する。
図3は、本実施形態における再構成可能論理回路の構成を示す。再構成可能論理回路としてのFPGA(Field-Programmable Gate Array)は、データ処理部32、及び再構成制御部34を備える。
データ処理部32は、入力制御部321、演算部322、出力制御部323、及び処理終了検知部324を備える。
入力制御部321は、外部メモリ36に記憶されたデータを読み込んで演算部322に供給する。
演算部322は、再構成された内容でデータを処理し、出力制御部323に供給する。
出力制御部323は、演算結果を外部メモリ36に書き込む。
処理終了検知部324は、演算部322及び出力制御部323の状態を監視し、処理が終了したことを検知してその情報を再構成制御部34側に供給する。
再構成制御部34は、再構成情報記憶部341、再構成許可情報記憶部342、再構成実施判定部343、再構成指示部344、及び回路記憶部345を備える。
再構成情報記憶部341は、処理終了検知部324からの処理終了検知情報を入力する。
再構成許可情報記憶部342は、予めデータ処理部32の再構成を許可するための値を保持する。
再構成実施判定部343は、再構成情報記憶部341に記憶された情報、すなわち処理終了検知部324から供給された情報と、再構成許可情報記憶部342に記憶された値とを比較し、両者が一致するか否かを判定する。再構成実施判定部343は、両者が一致する場合に,再構成指示部344にその旨の信号を出力する。
再構成指示部344は、再構成実施判定部343からの信号に応じ、セレクタ信号を回路記憶部345に出力する。
回路記憶部345は、処理毎のコンフィグレーションコントロールビット保持部30及びセレクタ部31を備え、再構成指示部344からのセレクタ制御信号に応じていずれかのコンフィグレーションコントロールビットの組をデータ処理部10の演算部322に供給し、演算部322の処理内容を処理A/処理B/・・・処理X間で切り替える。
図4及び図5は、図3に示すFPGAの機能ブロック図を示し、特に再構成制御部34の機能ブロック図を示す。一例として、処理Aと処理Bで切り替える場合について説明する。
データ処理部32の処理終了検知部324は、演算部322及び出力制御部323の状態を監視し、処理が終了したことを検知すると、回路の切り替え設定値を再構成情報記憶部341としての回路イベント保持レジスタ341に書き込む。
他方、再構成許可情報記憶部342としての再構成許可レジスタ342には、事前に回路の切り替え設定値を格納しておく。図6は、再構成許可レジスタ342に格納される設定値の一例を示す。設定値として、例えば16進法で「0X00」、「0X01」、「0X02」の3つの値のいずれかがあり、それぞれ、
「0X00」→再構成しない
「0X01」→処理Aに再構成
「0X02」→処理Bに再構成
を意味するものとする。
再び図3、図4、図5に戻り、回路イベント保持レジスタ341に処理終了検知部324から値が書き込まれると、再構成実施判定部343としてのレジスタ値比較器343は、回路イベント保持レジスタ341に格納された値と、再構成許可レジスタ342に格納された値とを比較し、両値が一致する場合に一致信号を再構成指示部344としてのセレクタ制御信号生成器344に出力する。例えば、再構成許可レジスタ342に「0X02」が格納されており、回路イベント保持レジスタ341にもnライン目の処理Aが完了したことに基づいて「0X02」が格納された場合、両値は一致するので一致信号を出力する。nライン目の処理が完了していない場合、回路イベント保持レジスタ341には「0X00」が格納されており、両値は一致しないので一致信号を出力しない。
セレクタ制御信号生成器344は、一致信号を入力すると、回路記憶部345のセレクタ部31にセレクタ制御信号を出力する。回路記憶部345のセレクタ部31には、処理A用の保持部30aに保持されたコンフィグレーションコントロールビットの組、及び処理B用の保持部30bに保持されたコンフィグレーションコントロールビットの組が供給され、セレクタ部31は、セレクタ制御信号に応じて処理B用のコンフィグレーションコントロールビットの組をデータ処理部32の演算部322に出力する。
図7は、切替時のタイミングチャートを示す。クロックに同期して、再構成許可レジスタ342に切り替え設定値を格納する。例えば、データ処理部32にて、処理A→処理B→処理A→処理B→・・・と処理を切り替える場合、処理A用回路の切り替え設定値を格納し、次に処理B用回路の切り替え設定値を格納する。ここで、「処理A用回路の切り替え設定値」は、処理A用の回路から切り替えるための設定値を意味し、具体的には「0X02」である。また、「処理B用回路の切り替え設定値」は、処理B用の回路から切り替えるための設定値を意味し、具体的には「0X01」である。
また、回路イベント保持レジスタ341には、処理終了検知部324からの値が格納される。処理終了検知部324は、データ処理部32で処理が実行中には全て0(all0)の値、つまり「0X00」の値を出力して回路イベント保持レジスタ341に格納し、データ処理部32で処理Aが完了したときには「0X02」の値を出力して回路イベント保持レジスタ341に格納し、データ処理部32で処理Bが完了したときには「0X01」の値を出力して回路イベント保持レジスタ341に格納する。
従って、データ処理部32で処理Aが完了したときには、回路イベント保持レジスタ341には「0X02」が格納され、再構成許可レジスタ342にも「0X02」が格納されているので、レジスタ値比較器343は両値が一致していると判定してセレクタ制御信号を出力する。このセレクタ制御信号により、回路記憶部345から処理B用のコンフィグレーションコントロールビットがデータ処理部32に供給され、データ処理部32(図ではフォアグラウンド回路と表される)の回路は、処理A用の回路から処理B用の回路に切り替わる。また、これとともに、再構成許可レジスタ342には、処理B用回路の切り替え設定値、すなわち「0X01」が格納される。
図8は、本実施形態の処理フローチャートを示す。なお、画像の各ライン毎に処理を再構成する場合を例にとり説明する。
再構成(コンフィグ)処理を開始すると(S101)、クロックに同期して回路切替設定値を再構成許可レジスタ342に格納する(S102)。例えば、処理A用の回路切り替え設定値として「0X02」を格納する。
次に、処理終了検知部324は、画像のnライン目の処理が完了したか否かを判定する(S103)。nライン目の処理が完了していない場合は現在の処理内容をそのまま続行し、回路イベント保持レジスタ341には初期値、すなわち「0X00」が格納され続けるが、nライン目の処理が完了した場合、処理終了検知部324は、回路イベント保持レジスタ341に出力信号を格納する(S104)。nライン目の処理が処理Aである場合、nライン目の処理が完了すると、処理終了検知部324は、回路イベント保持レジスタ341に処理A用回路の切り替え設定値、すなわち「0X02」を出力して格納する。
レジスタ値比較器343は、回路イベント保持レジスタ341に格納された値と、再構成許可レジスタ342に格納された値とを比較し(S105)、両値が一致して再構成が許可されたか否かを判定する(S106)。
両値が一致しない場合(S106でNO)、再構成が許可されていないとして再構成は実行せず、S110の処理に移行する。
両値が一致する場合(S106でYES)、セレクタ制御信号生成器344はセレクタ制御信号を出力し(S107)、処理B用のコンフィグレーションコントロールビットの組を演算部322に供給して再構成し、データ処理部32を処理A用の回路構成から処理Bの回路構成に切り替える(S108)。そして、回路イベント保持レジスタ341を初期化して「0X00」を格納し(S109)、再構成許可レジスタ342には処理B用の回路切り替え設定値、すなわち「0X01」を格納する(S110)。
全ラインの処理が完了していない場合には、次の(n+1)ラインについて同様の処理を繰り返す(S111、S112)。以上のようにして、ライン毎に処理Aと処理Bを交互に切り替えて再構成する。
<第3実施形態>
第2実施形態におけるハードウェアによる再構成は、例えば画像のディザ処理に適用することができる。本実施形態では、この適用例について説明する。
図9は、画像のディザ処理の一例を示す。画像40の一部拡大図42に対するディザマトリクス44を示す。ディザ処理では、印刷時に濃度をリニアに確保するために多値階調の画像を面積階調に変換する。ディザ処理を実施するに際し、M×N画素のディザマトリクス(閾値マトリクス)を有し、各画素の値が閾値を超えたか否かにより2値ドットを形成するか否かを決定する。
通常の論理回路処理では、M×N画素のディザマトリクスを全てメモリに格納し、1画素ずつ入力多値データとディザマトリクスの閾値とを比較処理する。しかし、対象画素以外のディザマトリクスは対象画素を含むラインでしか使用しないため、結果として無駄なメモリ容量を確保することになる。
そこで、Nライン等、ある程度まとまったライン単位にディザマトリクスデータを書き換えながら処理し、使用する論理回路のメモリ容量を低減し、さらにその分並列化のためにメモリリソースを割り当てることで高速化を図ることができる。
具体的には、例えばディザマトリクス44が256×256のブロックから構成される64Kwordのサイズであるとすると、64Kバイトのメモリを用いて、画素座標(x、y)毎に閾値(閾値係数)Cを出力すべきところ、奇数ライン用のコンフィグレーション#1及び偶数ライン用のコンフィグレーション#2の2つの論理回路を交互に切り替えて再構成する構成とし、コンフィグレーション#1では8Kバイトのメモリを用いて奇数ラインの画素座標(x、y)毎に閾値(閾値係数)Cを出力し、コンフィグレーション#2でも8Kバイトのメモリを用いて偶数ラインの画素座標(x,y+1)毎に閾値(閾値係数)Cを出力し、それぞれの画素値を閾値(閾値係数)と比較する構成とすることで、メモリ容量を低減できる。
図10は、この場合の再構成を模式的に示す。奇数ライン用の閾値回路46及び偶数ライン用の閾値回路48があり、これらがライン毎に動的に再構成される。閾値回路46には、ディザマトリクスとしての8Kバイトの閾値係数テーブルが合計8個設けられ、それぞれ画素座標(x、y)、(x+1,y)、・・・(x+7,y)に対応して閾値係数C1,C2,・・・C8を出力する。また、閾値回路48には、ディザマトリクスとしての8Kバイトの閾値係数テーブルが合計8個設けられ、それぞれ画素座標(x、y+1)、(x+1,y+1)、・・・(x+7,y+1)に対応して閾値係数C1,C2,・・・C8を出力する。奇数ラインにおいて閾値回路46に切り替えて奇数ラインの画素座標(x、y)、(x+1,y)、・・・(x+7,y)に対応して閾値係数C1,C2,・・・C8を出力すると、次に、偶数ラインにおいて閾値回路48に再構成して偶数ラインの画素座標(x、y+1)、(x+1,y+1)、・・・(x+7,y+1)に対応して閾値係数C1,C2,・・・C8を出力する。
この構成によれば、メモリ容量を8Kバイトに低減できるとともに再構成することで、回路コストと並列処理性能を両立させることができる。なお、このようにライン毎に再構成を行う場合には、再構成回数が10〜10回になるが、第2実施形態のようにハードウェア的に再構成を行って1回当たりの再構成時間を短縮することで性能低下を抑制し得る。
<第4実施形態>
図11は、本実施形態のシステム構成を示す。システムは、ホストCPU50、DDR(Double Data Rate)メモリ52、CPU Bus−PCIブリッジ54、PCIスイッチ56、及び複数のFPGAとDDRメモリからなる論理回路58a、58b、・・・、58xを備える。論理回路58aは、FPGANo.1とDDRメモリから構成され、DDRメモリにはFPGANo.1を再構成するための複数組のコンフィグレーションコントロールビットが格納される。ある組は、FPGANo.1を色変換処理回路として構成するためのコンフィグレーションコントロールビットであり、別の組は、FPGANo.1をキャリブレーション回路として構成するためのコントロールビットであり、さらに別の組は、FPGANo.1をフィルタ処理回路として構成するためのコンフィグレーションコントロールビットである。同様に、論理回路58bは、FPGANo.2とDDRメモリから構成され、DDRメモリにはFPGANo.2を再構成するための複数組のコンフィグレーションコントロールビットが格納される。
ホストCPU50は、論理回路58a、58b、・・・、58xの動作を制御し、これらの論理回路58a、58b、・・・、658xのFPGAの回路構成を切り替えるとともに、これらの論理回路58a、58b、・・・、58xを並列動作させて並列処理させる。
図12は、論理回路58a、58b、・・・、58xを並列動作させる場合の一例を示す。図において、論理回路58aの処理をNO.1、論理回路58bの処理をNO.2等と示す。
論理回路58a(NO.1)は、
色変換処理→キャリブレーション(CAL)処理→網点処理
と順次再構成されて時分割処理される。また、これと同期して論理回路58b(NO.2)は、
色変換処理→キャリブレーション(CAL)処理→網点処理
と順次再構成されて時分割処理される。さらに、論理回路58x(No.X)は、
フィルタ処理→キャリブレーション(CAL)処理→圧縮処理
と順次再構成されて時分割処理される。従って、あるタイングでは色変換処理とフィルタ処理が並列処理され、別のタイミングではキャリブレーション処理が並列処理され、さらに別のタイミングでは網点処理と圧縮処理が並列処理される。なお、印刷画像処理では、色変換処理、フィルタ処理、キャリブレーション処理、網点スクリーン処理、圧縮処理等があるが、再構成する処理はこれらに限定されない。
このように、複数の再構成可能論理回路を設け、各再構成可能論理回路においてコンフィグレーションコントロールビットの組を切り替えて再構成することで時分割処理するとともに、これら複数の再構成可能論理回路で並列処理することで、データを高速に処理することが可能である。印刷画像処理では、印刷機の速度に応じて回路数を増やすことで、遅滞なく画像処理を実行することができる。
以上、本発明の実施形態について説明したが、本発明はこれらに限定されず種々の変形が可能である。
例えば、上記の各実施形態では、基本的に再構成可能論理回路としてFPGAを前提として説明したが、再構成可能論理回路としてDRP(Dynamically Reconfigurable Processor)を用いることもできる。DRPは、回路動作中に超高速(nsオーダ)で書き換えできるプロセッサ技術である。但し、DRPの場合、書き換えができる、コンフィグレーション可能なものは論理ブロックのみであり、CPU、PCI−epressIF、DDRメモリIF、DMA(Direct Memory Access)コントローラは変更できず、従って入出力(IO)ピンの位置に自由度はない。これに対し、FPGAは、論理ブロックと多種の入出力(IO)ポートで成り立っており、IOとしてPCIにも、DDRを接続しても、または外部に光デバイスを接続しても使用することができ、入出力ピンの位置にも自由度がある。例えば、PCIIFを複数持たせてPCIスイッチデバイスのように使用することも可能であり、内部にCPUを構成する/構成しないという選択も可能である。
具体的には、ある処理では、
・CPU
・処理Aを行う演算部
・DDRIF
・PCIIF
・光IF
として構成し、次の処理では、演算部、DDRIF及び光IFの部分を再構成し、
・CPU
・処理Bを行う演算部
・PCIIF
・PCIIF
・PCIIF
と再構成する等である。従って、FPGAを前提として再構成可能論理回路を構成することにより、入出力ピンの位置の変更も含めた再構成が可能となる利点がある。
あるいは、DRPでは入出力ピンの位置が固定されており、FPGAでは入出力ピンの位置も自由度があることを考慮し、入出力ピンの位置を変更する必要がない再構成ではDRPを用い、入出力ピンの位置変更も含めて再構成する場合にはFPGAを用いてもよい。複数の再構成可能論理回路を設ける場合において、DRPとFPGAを混在させてもよい。
また、近年、FPGAの中でも、DRPと同様にCPUや周辺デバイスIFを固定的エリアに確保したSoCと呼ばれるFPGAも提案されているが、本発明はこのようなSoCを用いることもできる。
さらに、第1実施形態ではソフトウェア的に再構成し、第2、第3実施形態ではハードウェア的に再構成しているが、両者の中間、すなわちソフトウェアとハードウェアの協働により再構成してもよい。「ソフトウェアで切り替えを実行する」とした場合、全てソフトウェアで切り替える形態の他に、主としてソフトウェアで切り替える形態も含まれる。また、「ハードウェアで切り替えを実行する」とした場合、全てハードウェアで切り替える形態の他に、主としてハードウェアで切り替える形態も含まれる。データ処理時間に応じ、データ処理時間との相対的な関係においてハードウェアあるいはソフトウェアの比率を最適化して書き換え時間を調整してもよい。また、複数の再構成可能論理回路を設ける場合において、ある特定群の再構成可能論理回路についてはハードウェア的に再構成し、別の再構成可能論理回路についてはソフトウェア的に再構成する等、再構成可能論理回路に応じてソフトウェア的に再構成するかハードウェア的に再構成するかを使い分ける構成としてもよい。
10 データ処理部、30 コンフィグレーションコントロールビット保持部、31 セレクタ部、32 データ処理部、34 再構成制御部、36 外部メモリ、321 入力制御部、322 演算部、323 出力制御部、324 処理終了検知部、341 再構成情報記憶部(回路イベント保持レジスタ)、342 再構成許可情報記憶部(再構成許可レジスタ)、343 再構成実施判定部(レジスタ値比較器)、344 再構成指示部(セレクタ制御信号生成器)、345 回路記憶部。

Claims (8)

  1. データ処理部と、
    複数組のコンフィグレーションコントロールビットを記憶する記憶部と、
    記憶部に記憶された複数組のコンフィグレーションコントロールビットのいずれかの組を選択的に切り替えてデータ処理部に供給してデータ処理部の処理内容を再構成するセレクタ部と、
    を備える再構成可能論理回路。
  2. データ処理部、記憶部、及びセレクタ部はそれぞれ複数設けられる
    請求項1に記載の再構成可能論理回路。
  3. セレクタ部での切り替えは、ソフトウェアで実行される
    請求項1,2のいずれかに記載の再構成可能論理回路。
  4. セレクタ部での切り替えは、ハードウェアで実行される
    請求項1,2のいずれかに記載の再構成可能論理回路。
  5. データ処理部は、データ処理の終了を検知する処理終了検知部を備え、
    セレクタ部での切り替えは、処理終了検知部からの検知情報に応じて実行される
    請求項4に記載の再構成可能論理回路。
  6. 処理終了検知部からの検知情報を再構成情報として保持する再構成情報記憶部と、
    再構成許可情報を保持する再構成許可情報記憶部と、
    再構成情報記憶部に保持された情報と再構成許可情報記憶部に保持された情報とに応じてセレクタ制御信号を生成してセレクタ部に供給する再構成指示部と、
    を備える請求項5に記載の再構成可能論理回路。
  7. 記憶部は、少なくとも、データ処理部での第1の処理用のコンフィグレーションコントロールビットの組と、第2の処理用のコンフィグレーションコントロールビットの組を記憶し、
    処理終了検知部は、データ処理部での第1の処理の終了を検知して第2の処理に切り替える設定値を再構成情報記憶部に格納し、
    再構成許可情報記憶部は、第1の処理から第2の処理に切り替える設定値を保持し、
    再構成指示部は、再構成情報記憶部に格納された設定値と、再構成許可情報記憶部に保持されている設定値が一致する場合に、セレクタ部にセレクタ制御信号を出力し、
    セレクタ部は、セレクタ制御信号に応じてデータ処理部に第2の処理用のコンフィグレーションコントロールビットの組を供給する、
    請求項6に記載の再構成可能論理回路。
  8. データ処理部、記憶部及びセレクタ部は、FPGAで構成される
    請求項1〜7のいずれかに記載の再構成可能論理回路。





JP2016164829A 2016-08-25 2016-08-25 再構成可能論理回路 Expired - Fee Related JP6786955B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2016164829A JP6786955B2 (ja) 2016-08-25 2016-08-25 再構成可能論理回路
US15/442,041 US10795689B2 (en) 2016-08-25 2017-02-24 Reconfigurable logical circuit
CN201710321227.XA CN107786198A (zh) 2016-08-25 2017-05-09 可重构逻辑电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016164829A JP6786955B2 (ja) 2016-08-25 2016-08-25 再構成可能論理回路

Publications (2)

Publication Number Publication Date
JP2018033036A true JP2018033036A (ja) 2018-03-01
JP6786955B2 JP6786955B2 (ja) 2020-11-18

Family

ID=61240740

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016164829A Expired - Fee Related JP6786955B2 (ja) 2016-08-25 2016-08-25 再構成可能論理回路

Country Status (3)

Country Link
US (1) US10795689B2 (ja)
JP (1) JP6786955B2 (ja)
CN (1) CN107786198A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6713410B2 (ja) * 2016-11-21 2020-06-24 日立オートモティブシステムズ株式会社 電子制御装置
CN109240832B (zh) * 2018-09-25 2022-04-19 中国电子科技集团公司电子科学研究院 一种硬件重构系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006031127A (ja) * 2004-07-12 2006-02-02 Fujitsu Ltd 再構成可能な演算装置
JP2008225662A (ja) * 2007-03-09 2008-09-25 Tohoku Univ データ書込方法およびその方法を用いた書込制御装置ならびに演算装置
JP2010539582A (ja) * 2007-09-11 2010-12-16 コア ロジック,インコーポレイテッド 浮動小数点演算のための再構成アレイプロセッサ

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4870302A (en) 1984-03-12 1989-09-26 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
US4642487A (en) 1984-09-26 1987-02-10 Xilinx, Inc. Special interconnect for configurable logic array
JP2004343559A (ja) * 2003-05-16 2004-12-02 Ip Flex Kk 再構成可能な集積回路ユニットを有するデータ処理装置
JP2005057452A (ja) * 2003-08-01 2005-03-03 Matsushita Electric Ind Co Ltd プログラマブル論理回路
JP4444860B2 (ja) * 2005-03-10 2010-03-31 富士通株式会社 リコンフィギュラブル回路およびそのコンフィギュレーション方法
CN101189797B (zh) * 2005-05-31 2011-07-20 富士施乐株式会社 可重构的装置
JP2008219728A (ja) * 2007-03-07 2008-09-18 Yaskawa Electric Corp 再構成可能な演算処理回路
CN101782893B (zh) * 2009-01-21 2014-12-24 上海芯豪微电子有限公司 可重构数据处理平台
KR101929754B1 (ko) * 2012-03-16 2018-12-17 삼성전자 주식회사 미니 코어 기반의 재구성가능 프로세서, 이를 위한 스케줄 장치 및 방법
JP2016063490A (ja) * 2014-09-19 2016-04-25 株式会社東芝 再構成可能な半導体集積回路および電子機器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006031127A (ja) * 2004-07-12 2006-02-02 Fujitsu Ltd 再構成可能な演算装置
JP2008225662A (ja) * 2007-03-09 2008-09-25 Tohoku Univ データ書込方法およびその方法を用いた書込制御装置ならびに演算装置
JP2010539582A (ja) * 2007-09-11 2010-12-16 コア ロジック,インコーポレイテッド 浮動小数点演算のための再構成アレイプロセッサ

Also Published As

Publication number Publication date
CN107786198A (zh) 2018-03-09
JP6786955B2 (ja) 2020-11-18
US10795689B2 (en) 2020-10-06
US20180060096A1 (en) 2018-03-01

Similar Documents

Publication Publication Date Title
JP5504985B2 (ja) データ処理装置
WO2018050100A1 (en) Apparatus and method for configuring hardware to operate in multiple modes during runtime
US6288566B1 (en) Configuration state memory for functional blocks on a reconfigurable chip
US5850632A (en) Memory access controller utilizing cache memory to store configuration information
CN100397334C (zh) 半导体器件
JP2006510332A (ja) 集積回路のプログラマブル論理の再構成
US7183796B2 (en) Configuration memory implementation for LUT-based reconfigurable logic architectures
JP6786955B2 (ja) 再構成可能論理回路
JP5533330B2 (ja) データ処理装置
CN112712457B (zh) 数据处理方法以及人工智能处理器
US20160322084A1 (en) Extensible configurable fpga storage structure and fpga device
US9503096B1 (en) Multiple-layer configuration storage for runtime reconfigurable systems
US5132670A (en) System for improving two-color display operations
JP6039113B2 (ja) 再構成可能命令セルアレイの並列構成
CN112685349B (zh) 可变位宽的位操作控制系统及方法
US9853644B2 (en) Multiple-layer configuration storage for runtime reconfigurable systems
JP2008293226A (ja) 半導体装置
JP2005521288A (ja) リコンフィギャラブル・ロジックにおける大型マルチプレクサの実現
WO2021090711A1 (ja) データ処理装置および情報処理装置
US6937061B1 (en) Address decoder for programmable logic device
US20150379164A1 (en) Mixed-width memory techniques for programmable logic devices
JP2008219728A (ja) 再構成可能な演算処理回路
JP2004326543A (ja) コンピュータシステム及びメモリの接続方法
JPH0651751A (ja) 画像表示装置
WO2011147442A1 (en) Indirect register access for a programmable logic device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190610

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200417

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200929

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201012

R150 Certificate of patent or registration of utility model

Ref document number: 6786955

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees