CN107786198A - 可重构逻辑电路 - Google Patents
可重构逻辑电路 Download PDFInfo
- Publication number
- CN107786198A CN107786198A CN201710321227.XA CN201710321227A CN107786198A CN 107786198 A CN107786198 A CN 107786198A CN 201710321227 A CN201710321227 A CN 201710321227A CN 107786198 A CN107786198 A CN 107786198A
- Authority
- CN
- China
- Prior art keywords
- unit
- processing
- selector
- logic circuit
- data 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17724—Structural details of logic blocks
- H03K19/17728—Reconfigurable logic blocks, e.g. lookup tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/76—Protecting 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]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17736—Structural details of routing resources
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17748—Structural details of configuration resources
- H03K19/17756—Structural details of configuration resources for partial configuration or partial reconfiguration
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17748—Structural details of configuration resources
- H03K19/1776—Structural 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
一种可重构逻辑电路,包括:数据处理单元;存储器,在所述存储器中存储有配置控制位的多个组合;以及选择器单元,所述选择器单元选择性地切换存储在所述存储器中的配置控制位的所述多个组合,并且将配置控制位的所述多个组合中的所选择的一个组合提供至所述数据处理单元,以重构所述数据处理单元的处理内容。
Description
技术领域
本发明涉及一种可重构逻辑电路。
背景技术
通常,可重构(可配置)逻辑电路是已知的。
美国专利第4870302号描述了一种能够通过设置使用/不使用逻辑电路而被重构的电子电路。
图13例示出了美国专利第4870302号中所描述的逻辑电路。逻辑电路10包括多个逻辑门21至27。通过配置控制位C0、C1、C2、……和C5来设置使用/不使用逻辑电路,这些配置控制位是基本上与存储器相对应的开关或晶体管。
发明内容
通常,逻辑电路通过基于外部提供的时钟、控制信号和数据总线将数据写入存储器来重构,并且逻辑电路的整个重写需要毫秒级的时间。
在无需重写逻辑电路的操作的情况下,仅在包括该逻辑电路的装置通电时,才需要重写逻辑电路。同时,在需要实时重写处理内容的操作的情况下,如果每个处理单元的处理时间短于毫秒级,则重写时间在整个处理中的占比大。这使得不可能实现所期望的性能。
图14A和图14B示意性地例示出了数据处理时间与用于重构(配置)的重写时间之间的关系。图14A例示出了所期望的处理。在图14A中,处理A和处理B都需要10ms。用于从处理A到处理B的转换的重写时间相比处理A和处理B的处理时间足够短。例如,重写时间期望为1ms或更短。同时,图14B例示出了重写时间例如为90ms的情况。在图14B中,重写时间比处理A和处理B的时间长,并且重写在整个处理中的占比明显大。
虽然也可以部分地重写逻辑电路而不是完全重写逻辑电路,但是重写时间与逻辑电路成比例,并因此如果重写相对大的功能块,则甚至部分重写也将需要相当长的时间。这使得难以实现所期望的处理。
因此,本发明的目的是提供一种使用于重构(配置)的重写时间相比用于数据处理的时间足够短成为可能的可重构逻辑电路。
根据本发明的第一方面,提供了一种可重构逻辑电路,所述可重构逻辑电路包括:数据处理单元;存储器,在所述存储器中存储有配置控制位的多个组合;以及选择器单元,所述选择器单元选择性地切换存储在所述存储器中的配置控制位的所述多个组合,并且将配置控制位的所述多个组合中的所选择的一个组合提供至所述数据处理单元,以重构所述数据处理单元的处理内容。
根据本发明的第二方面,根据第一方面的可重构逻辑电路被配置为使得所述数据处理单元包括多个数据处理单元;所述存储器包括多个存储器;并且所述选择器单元包括多个选择器单元。
根据本发明的第三方面,根据第一方面或第二方面的可重构逻辑电路被配置为使得通过软件来执行在所述选择器单元中的所述切换。
根据本发明的第四方面,根据第一方面或第二方面的可重构逻辑电路被配置为使得通过硬件来执行在所述选择器单元中的所述切换。
根据本发明的第五方面,根据第四方面的可重构逻辑电路被配置为使得所述数据处理单元包括检测数据处理的终止的处理终止检测单元;并且根据从所述处理终止检测单元提供的检测信息来执行在所述选择器单元中的所述切换。
根据本发明的第六方面,根据第五方面的可重构逻辑电路被配置为还包括:重构信息存储单元,在所述重构信息存储单元中从所述处理终止检测单元提供的所述检测信息被保持为重构信息;重构许可信息存储单元,在所述重构许可信息存储单元中保持重构许可信息;以及重构指令单元,所述重构指令单元根据保持在所述重构信息存储单元中的信息和保持在所述重构许可信息存储单元中的信息生成选择器控制信号,并且将所述选择器控制信号提供至所述选择器单元。
根据本发明的第七方面,根据第六方面的可重构逻辑电路被配置为使得在所述存储器中至少存储用于所述数据处理单元中的第一处理的配置控制位的组合和用于所述数据处理单元中的第二处理的配置控制位的组合;所述处理终止检测单元检测所述数据处理单元中的所述第一处理的终止,并且将用于切换到所述第二处理的设置值存储在所述重构信息存储单元中;所述重构许可信息存储单元保持用于从所述第一处理切换到所述第二处理的设置值;在存储在所述重构信息存储单元中的所述设置值和保持在所述重构许可信息存储单元中的所述设置值相互匹配的情况下,所述重构指令单元将所述选择器控制信号提供至所述选择器单元;并且所述选择器单元根据所述选择器控制信号将用于所述第二处理的配置控制位的所述组合提供至所述数据处理单元。
根据本发明的第八方面,根据第一方面至第七方面中的任一方面的可重构逻辑电路被配置为使得所述数据处理单元、所述存储器和所述选择器单元是FPGA。
根据第一方面,可以使用于重构(配置)的重写时间相比用于数据处理的时间足够短。
根据第二方面,可以通过多个可重构逻辑电路的并行处理来提高处理速度。
根据第三方面,可以通过软件来执行重构。
根据第四至第七方面,可以通过硬件来执行重构。此外,能够进一步缩短重写时间。
根据第八方面,可以通过使用现场可编程门阵列(FPGA)来提供可重构逻辑电路。这允许包括改变输入/输出引脚的位置的重构。
附图说明
将基于下列附图对本发明的示例性实施方式进行详细描述,其中:
图1是根据第一实施方式的配置图;
图2是例示出根据第一实施方式的处理时间与重写时间之间的关系的示意图;
图3是根据第二实施方式的配置图;
图4是根据第二实施方式的功能框图;
图5是根据第二实施方式的电路存储单元的配置图;
图6是例示出根据第二实施方式的存储在重构许可寄存器中的设置值的说明图;
图7是根据第二实施方式的时序图;
图8是根据第二实施方式的处理流程图;
图9是用于说明根据第三实施方式的抖动(dithering)的说明图;
图10是用于说明根据第三实施方式的重构的说明图;
图11是根据第四实施方式的***配置图;
图12A至图12C是用于说明根据第四实施方式的处理的说明图;
图13是常规电路的配置图;以及
图14A和图14B是例示出常规电路中的处理时间与重写时间之间的关系的示意图。
具体实施方式
下面参照附图描述本发明的实施方式。
第一实施方式
图1示出了根据本示例性实施方式的可重构逻辑电路的配置。可重构逻辑电路包括数据处理单元10、保持配置控制位的多个组合的保持单元30和选择器单元31。
数据处理单元10与图13所例示出的逻辑电路相同,并且包括多个逻辑门。
配置控制位保持单元30是例如保持配置控制位的多个组合的寄存器。在图1中,配置控制位保持单元30包括用于处理A的保持单元30a、用于处理B的保持单元30b、……以及用于处理X的保持单元30x。保持单元30a、30b、……和30x中的每一个将总共6位(C0、C1、C2、C3、C4和C5)的组合保持在D-FF(D型触发器)中,并将该组合提供至选择器单元31。具体地,配置控制位保持单元30保持用于处理A的配置控制位的组合、用于处理B的配置控制位的组合、……以及用于处理X的配置控制位的组合。保持在配置控制位保持单元30中的配置控制位的组合的数量是两个或更多个,并且没有特定限制,而且在每个组合中的配置控制位的数量不限于6位。
选择器单元31从配置控制位保持单元30接收用于处理A的配置控制位的组合、用于处理B的配置控制位的组合、……以及用于处理X的配置控制位的组合,根据选择器控制信号来选择配置控制位的这些组合中的任意一个,并将所选择的组合提供至数据处理单元10以重构数据处理单元10。
具体地,在数据处理单元10中执行处理A的情况下,选择器单元31将保持在配置控制位保持单元30a中的配置控制位C0至C5的组合提供至数据处理单元10。例如,选择器单元31提供组合(C0=1、C1=1、C2=0、C3=0、C4=0和C5=1)来配置数据处理单元10。接下来,在将数据处理单元10从处理A重构为处理B的情况下,选择单元31将保持在配置控制位保持单元30b中的配置控制位C0至C5的组合提供至数据处理单元10。例如,选择器单元31提供组合(C0=0、C1=0、C2=1、C3=1、C4=1和C5=0)来重构数据处理单元10。
如上所述,配置控制位保持单元30包括针对各种类型的处理的用于保持配置控制位的多个保持单元30,并且当出现进行切换处理的需要时,将处理切换成所期望的处理,例如,根据选择器控制信号或触发信号从处理A切换到处理B,然后切换到处理C。这使得能够缩短用于重构的重写时间。在本示例性实施方式中,重写所需的时间等于选择器单元31中切换所需的时间。因此,可以在1ms或更短的时间内实现重写。
仅通过软件来确定处理切换定时要求。例如,在执行处理A的时刻,CPU(未示出)根据处理程序将用于处理A的触发信号提供至选择器单元31。这使得选择器单元31选择用于处理A的配置控制位的组合以配置数据处理单元10。当通过软件检测到完成处理A时,CPU根据处理程序将用于处理B的触发信号提供至选择器单元31。这使得选择器单元31选择用于处理B的配置控制位的组合以重构数据处理单元10。
第二实施方式
在第一实施方式中,用于重构的重写时间可以被缩短为1ms或更短,例如90μs。同时,在数据处理单元10中进行数据处理所需的时间进一步缩短的情况下,例如缩短为大约10μs,重写的百分比相对大。
图2示意性地例示出了在这种情况下处理时间与重写时间之间的关系。在数据处理单元10中通过硬件在10μs内执行处理A和处理B,并且在选择器单元31中通过软件在90μs内执行切换和重写处理。也就是说,例如,在10μs内执行处理A,在90μs内重写数据处理单元10,在10μs内执行处理B,在90μs内重写数据处理单元10,然后在10μs内执行处理C。在重写时间相对长的情况下,用于重构的重写时间不能被隐藏在整个处理中。在这种情况下,重写时间成为开销(overhead),并且***性能劣化。
鉴于此,在本示例性实施方式中,描述了用于获得比第一实施方式中的重写时间更短的重写时间的配置。
图3例示出了根据本示例性实施方式的可重构逻辑电路的配置。用作可重构逻辑电路的现场可编程门阵列(FPGA)包括数据处理单元32和重构控制器34。
数据处理单元32包括输入控制器321、计算单元322、输出控制器323和处理终止检测单元324。
输入控制器321读取存储在外部存储器36中的数据,并将该数据提供至计算单元322。
计算单元322基于重构的内容来处理该数据,并将处理后的数据提供至输出控制器323。
输出控制器323将计算结果写入外部存储器36。
处理终止检测单元324监测计算单元322的状态和输出控制器323的状态。在检测到处理的终止时,处理终止检测单元324将指示处理的终止的信息提供至重构控制器34侧。
重构控制器34包括重构信息存储单元341、重构许可信息存储单元342、重构执行确定单元343、重构指令单元344和电路存储单元345。
重构信息存储单元341从处理终止检测单元324接收处理终止检测信息。
重构许可信息存储单元342预先保持用于许可重构数据处理单元32的值。
重构执行确定单元343通过对存储在重构信息存储单元341中的信息与存储在重构许可信息存储单元342中的值进行比较来确定存储在重构信息存储单元341中的信息,即从处理终止检测单元324提供的信息与存储在重构许可信息存储单元342中的值是否相互匹配。在存储在重构信息存储单元341中的信息与存储在重构许可信息存储单元342中的值相互匹配的情况下,重构执行确定单元343将指示相互匹配的信号提供至重构指令单元344。
重构指令单元344根据从重构执行确定单元343提供的信号将选择器信号提供至电路存储单元345。
电路存储单元345包括用于各种类型的处理的配置控制位保持单元30和选择器单元31。电路存储单元345根据从重构指令单元344提供的选择器控制信号将配置控制位的组合提供至数据处理单元10的计算单元322,并由此在处理A、处理B、……和处理X之间切换计算单元322的处理内容。
图4和图5是图3所例示的FPGA的功能框图,尤其是重构控制器34。下面作为示例来描述在处理A与处理B之间对处理进行切换的情况。
数据处理单元32的处理终止检测单元324监测计算单元322的状态和输出控制器323的状态。在检测到处理终止时,处理终止检测单元324将电路切换设置值写入用作重构信息存储单元341的电路事件保持寄存器341中。
同时,将电路切换设置值预先存储在用作重构许可信息存储单元342的重构许可寄存器342中。图6例示出了存储在重构许可寄存器342中的设置值的示例。例如,作为十六进制值的三个值“0X00”、“0X01”和“0X02”中的任意一个被存储为设置值。假定“0X00”表示“不重构”,“0X01”表示“重构到处理A”并且“0X02”表示“重构到处理B”。
再次参照图3、图4和图5。当将值从处理终止检测单元324写入电路事件保持寄存器341时,用作重构执行确定单元343的寄存器值比较器343将存储在电路事件保持寄存器341中的值与存储在重构许可寄存器342中的值进行比较。在这些值相互匹配的情况下,寄存器值比较器343将匹配信号提供至用作重构指令单元344的选择器控制信号发生器344。例如,在“0X02”被存储在重构许可寄存器342中,并且基于完成第n行上的处理A,“0X02”也被存储在电路事件保持寄存器341中的情况下,这些值相互匹配,并因此寄存器值比较器343提供匹配信号。在未完成第n行上的处理的情况下,“0X00”被存储在电路事件保持寄存器341中,并且这些值不匹配,并因此寄存器值比较器343不提供匹配信号。
在接收到匹配信号时,选择器控制信号发生器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”。
从处理终止检测单元324提供的值被存储在电路事件保持寄存器341中。当在数据处理单元32中正在执行处理时,处理终止检测单元324输出全“0”值(all 0),即“0X00”,并且将该值存储在电路事件保持寄存器341中。当在数据处理单元32中完成处理A时,处理终止检测单元324输出“0X02”,并将该值存储在电路事件保持寄存器341中。当在数据处理单元32中完成处理B时,处理终止检测单元324输出“0X01”,并将该值存储在电路事件保持寄存器341中。
因此,当在数据处理单元32中完成处理A时,“0X02”被存储在电路事件保持寄存器341中,并且“0X02”也被存储在重构许可寄存器342中,并因此寄存器值比较器343确定所述值相互匹配并输出选择器控制信号。基于该选择器控制信号,用于处理B的配置控制位被从电路存储部345提供至数据处理部32,并且数据处理部32的电路(在图7中表示为前置(foreground)电路)从用于处理A的电路切换到用于处理B的电路。因此,对用于处理B的电路进行切换的设置值,即“0X01”,被存储在重构许可寄存器342中。
图8是根据本示例性实施方式的处理流程图。下面作为示例来描述针对图像的每一行来对处理进行重构的情况。
当重构(配置)处理开始时(S101),电路切换设置值与时钟同步地存储在重构许可寄存器342中(S102)。例如,“0X02”被存储为对用于处理A的电路进行切换的设置值。
接下来,处理终止检测单元324确定图像的第n行上的处理是否已经完成(S103)。在第n行上的处理尚未完成的情况下,连续执行当前处理,并且初始值,即“0X00”,被连续存储在电路事件保持寄存器341中。同时,在第n行上的处理已经完成的情况下,处理终止检测单元324将输出信号存储在电路事件保持寄存器341中(S104)。在第n行上的处理是处理A的情况下,处理终止检测单元324在第n行上的处理完成时将对用于处理A的电路进行切换的设置值即“0X02”提供至电路事件保持寄存器341。
寄存器值比较器343将存储在电路事件保持寄存器341中的值与存储在重构许可寄存器342中的值比较(S105),并确定这些值是否相互匹配,即是否允许重构(S106)。
在这些值不相互匹配的情况下(S106中为“否”),不允许进行重构,并因此不执行重构,而且流程行进到S110中的处理。
在这些值相互匹配的情况下(S106中为“是”),选择器控制信号发生器344输出选择器控制信号(S107),将用于处理B的配置控制位的组合提供至计算单元322,以重构数据处理单元32,即将数据处理单元32的电路配置从用于处理A的电路配置切换到用于处理B的电路配置(S108)。然后,电路事件保持寄存器341被初始化,即,“0X00”被存储在电路事件保持寄存器341中(S109),并且对用于处理B的电路进行切换的设置值,即“0X01”被存储在重构许可寄存器342中(S110)。
在所有行上的处理尚未完成的情况下,针对下一第(n+1)行重复同样的处理(S111和S112)。以此方式,数据处理单元32被重构,同时针对每一行在处理A与处理B之间交替地切换。
第三实施方式
第二实施方式中的硬件重构可以被应用于例如图像的抖动。在本示例性实施方式中,描述了该应用示例。
图9例示出了图像的抖动的示例。图9例示出了图像40的部分放大视图42的抖动矩阵44。在抖动中,为了在打印图像时实现线性的密度,将多值灰度图像转换为区域覆盖调制图像。在抖动中,准备了具有M×N个像素的抖动矩阵(阈值矩阵),并且基于每个像素的值是否超过阈值来确定是否形成二进制点。
在通常的逻辑电路处理中,将具有M×N个像素的抖动矩阵完全存储在存储器中,并且针对每个像素将输入多值数据与矩阵的阈值进行比较。然而,除目标像素之外的抖动矩阵仅用在包括目标像素的行上。这浪费了存储器容量。
鉴于此,在按照行的特定组(例如,N行)重写的抖动矩阵数据的同时执行处理。这减少了逻辑电路使用的存储器容量。此外,可以通过分配因此节省的存储器资源以并行化来增加处理速度。
具体地,例如,在抖动矩阵44由256×256个块组成并且具有64K字(K word)大小的情况下,通过在两个逻辑电路(即,用于奇数行的配置#1和用于偶数行的配置#2)之间交替地切换来执行重构,尽管通常应通过使用64K字节的存储器来针对每个像素坐标(x,y)输出阈值(阈值系数)C。具体地,在配置#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字节的同时执行重构,并由此实现电路成本的降低和并行处理性能的提高两者。在如上所述针对每一行进行重构的情况下,重构的次数为然而,通过在第二实施方式中应用硬件重构来缩短每一重构的时间,能够防止性能的劣化。
第四实施方式
图11示出了根据本示例性实施方式的***配置。***包括主CPU 50、双倍数据速率(DDR)存储器52、CPU总线-PCI桥54、PCI开关56以及每一个都包括FPGA和DDR存储器的多个逻辑电路58a、58b、……和58x。逻辑电路58a由FPGA第1号和DDR存储器构成,并且用于重构FPGA第1号的配置控制位的多个组合被存储在DDR存储器中。配置控制位的一个组合用于将FPGA第1号配置为颜色转换处理电路,配置控制位的另一个组合用于将FPGA第1号配置为校准电路,并且配置控制位的再一个组合用于将FPGA第1号配置为过滤处理电路。类似地,逻辑电路58b由FPGA第2号和DDR存储器构成,并且用于重构FPGA第2号的配置控制位的多个组合被存储在DDR存储器中。
主CPU 50控制逻辑电路58a、58b、……和58x的操作,并且切换逻辑电路58a、58b、……和58x的FPGA的电路配置。此外,主CPU 50使逻辑电路58a、58b、……和58x并行操作。
图12A至图12C示出了并行操作逻辑电路58a、58b、……和58x的情况的示例。在图12A至图12C中,例如,逻辑电路58a的处理由第1号表示,并且逻辑电路58b的处理由第2号表示。
逻辑电路58a(第1号)按照颜色转换处理、校准(CAL)处理和半色调点处理的顺序依次重构,并且以时分方式来执行处理。与此同步地,逻辑电路58b(第2号)按照颜色转换处理、校准(CAL)处理和半色调点处理的顺序依次重构,并且以时分方式来执行处理。此外,逻辑电路58x(第X号)按照过滤处理、校准(CAL)处理和压缩处理的顺序依次重构,并且以时分方式来执行处理。因此,在某一时刻,颜色转换处理和过滤处理被并行执行。在另一时刻,校准处理和校准处理被并行执行。在再一时刻,半色调点处理和压缩处理被并行执行。打印图像处理包括例如颜色转换处理、过滤处理、校准处理、半色调点屏幕处理和压缩处理。然而,重构的处理并不限于此。
如上所述,提供了多个可重构逻辑电路。通过切换配置控制位的组合来对多个可重构逻辑电路的每一个可重构逻辑电路进行重构,并由此以时分方式来执行处理。此外,这些多个可重构逻辑电路并行地执行处理。这使得能够高速处理数据。在打印图像处理中,通过根据打印机的速度来增加电路的数量,能够没有延迟地执行图像处理。
上面已经描述了本发明的实施方式,但本发明并不限于这些实施方式,可以以各种方式来修改示例性实施方式。
例如,在各示例性实施方式中,基本上已经描述了将FPGA用作可重构逻辑电路的情况。另选地,动态可重构处理器(DRP)可以用作可重构逻辑电路。DRP是在电路工作期间可以以超高速(ns级)被重写的处理器。但是应注意的是,在DRP的情况下,只有逻辑块可以被重写和配置,并且CPU、PCI-express IF、DDR存储器IF和直接存储器访问(DMA)控制器不能被改变。因此,输入/输出(IO)引脚的定位没有灵活性。同时,FPGA由逻辑块和各种输入/输出(IO)端口构成,并且可以在将DDR连接到PCI作为IO或将光学装置连接到外部时使用,并且可以灵活地定位输入/输出引脚。例如,FPGA可以包括多个PCIIF并且可以用作PCI开关装置,而且还可以选择是否在其中配置CPU。
具体地,例如在某些处理中,将FPGA配置为CPU、执行处理A的计算单元、DDRIF、PCIIF和光学IF,并且在下一处理中,通过重构计算单元、DDRIF和光学IF来将FPGA重构为CPU、执行处理B的计算单元、PCIIF、PCIIF和PCIIF。因此,使用作为可重构逻辑电路的FPGA允许包括改变输入/输出引脚的位置的重构。
另选地,也能够采用这样的布置,其中考虑到输入/输出引脚在DRP中的位置是固定的,并且FPGA中输入/输出引脚的定位具有灵活性,在不需要改变输入/输出引脚的位置的重构中使用DRP,而在涉及改变输入/输出引脚的位置的重构中使用FPGA。在提供多个可重构逻辑电路的情况下,可以混合DRP和FPGA。
近年来,已经提出了像DRP那样在固定区域中提供CPU和***装置IF的称为SoC的FPGA。这样的SoC也可以用于本发明。
在第一实施方式中,通过软件来执行重构。在第二和第三实施方式中,通过硬件来执行重构。这些实施方式可以组合。具体地,可以通过软件和硬件的协作来执行重构。“通过软件来切换”的表述不仅包括其中完全通过软件来执行切换的方面,还包括主要通过软件来执行切换的方面。“通过硬件来切换”的表述不仅包括其中完全通过硬件来执行切换的方面,还包括主要通过硬件来执行切换的方面。可以通过根据数据处理时间来对硬件或软件相对于数据处理时间的比率进行优化来调整重写时间。在提供多个可重构逻辑电路的情况下,可以针对每一个可重构逻辑电路选择通过软件来重构或通过硬件来重构。例如,能够采用这样的布置,其中通过硬件来重构某组可重构逻辑电路并且通过软来件重构另一组可重构逻辑电路。
出于例示和描述的目的,提供了本发明的示例性实施方式的前述描述。不旨在排它或将本发明限制成所公开的精确形式。显而易见的是,本领域专业技术人员将明白许多修改例和变型例。所选择和描述的实施方式是为了最佳地说明本发明的原理及其实践应用,由此,使得本领域技术人员能够针对各种实施方式并且具有如适于预期特定用途的各种修改例来理解本发明。本发明的范围旨在通过所附的权利要求书及其等同物来限定。
Claims (8)
1.一种可重构逻辑电路,所述可重构逻辑电路包括:
数据处理单元;
存储器,在所述存储器中存储有配置控制位的多个组合;以及
选择器单元,所述选择器单元选择性地切换存储在所述存储器中的配置控制位的所述多个组合,并且将配置控制位的所述多个组合中的所选择的一个组合提供至所述数据处理单元,以重构所述数据处理单元的处理内容。
2.根据权利要求1所述的可重构逻辑电路,其中
所述数据处理单元包括多个数据处理单元;
所述存储器包括多个存储器;并且
所述选择器单元包括多个选择器单元。
3.根据权利要求1或2所述的可重构逻辑电路,其中
通过软件来执行在所述选择器单元中的所述切换。
4.根据权利要求1或2所述的可重构逻辑电路,其中
通过硬件来执行在所述选择器单元中的所述切换。
5.根据权利要求4所述的可重构逻辑电路,其中
所述数据处理单元包括检测数据处理的终止的处理终止检测单元;并且
根据从所述处理终止检测单元提供的检测信息来执行在所述选择器单元中的所述切换。
6.根据权利要求5所述的可重构逻辑电路,所述可重构逻辑电路还包括:
重构信息存储单元,在所述重构信息存储单元中从所述处理终止检测单元提供的所述检测信息被保持为重构信息;
重构许可信息存储单元,在所述重构许可信息存储单元中保持重构许可信息;以及
重构指令单元,所述重构指令单元根据保持在所述重构信息存储单元中的信息和保持在所述重构许可信息存储单元中的信息生成选择器控制信号,并且将所述选择器控制信号提供至所述选择器单元。
7.根据权利要求6所述的可重构逻辑电路,其中
在所述存储器中至少存储用于所述数据处理单元中的第一处理的配置控制位的组合和用于所述数据处理单元中的第二处理的配置控制位的组合;
所述处理终止检测单元检测所述数据处理单元中的所述第一处理的终止,并且将用于切换到所述第二处理的设置值存储在所述重构信息存储单元中;
所述重构许可信息存储单元保持用于从所述第一处理切换到所述第二处理的设置值;
在存储在所述重构信息存储单元中的所述设置值和保持在所述重构许可信息存储单元中的所述设置值相互匹配的情况下,所述重构指令单元将所述选择器控制信号提供至所述选择器单元;并且
所述选择器单元根据所述选择器控制信号将用于所述第二处理的配置控制位的所述组合提供至所述数据处理单元。
8.根据权利要求1至7中的任一项所述的可重构逻辑电路,其中,
所述数据处理单元、所述存储器和所述选择器单元是FPGA。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016164829A JP6786955B2 (ja) | 2016-08-25 | 2016-08-25 | 再構成可能論理回路 |
JP2016-164829 | 2016-08-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107786198A true CN107786198A (zh) | 2018-03-09 |
Family
ID=61240740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710321227.XA Pending CN107786198A (zh) | 2016-08-25 | 2017-05-09 | 可重构逻辑电路 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10795689B2 (zh) |
JP (1) | JP6786955B2 (zh) |
CN (1) | CN107786198A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109240832A (zh) * | 2018-09-25 | 2019-01-18 | 中国电子科技集团公司电子科学研究院 | 一种硬件重构***及方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6713410B2 (ja) * | 2016-11-21 | 2020-06-24 | 日立オートモティブシステムズ株式会社 | 電子制御装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004343559A (ja) * | 2003-05-16 | 2004-12-02 | Ip Flex Kk | 再構成可能な集積回路ユニットを有するデータ処理装置 |
JP2005057452A (ja) * | 2003-08-01 | 2005-03-03 | Matsushita Electric Ind Co Ltd | プログラマブル論理回路 |
CN1722130A (zh) * | 2004-07-12 | 2006-01-18 | 富士通株式会社 | 可重配置运算装置 |
US20060202715A1 (en) * | 2005-03-10 | 2006-09-14 | Fujitsu Limited | Re-configurable circuit and configuration switching method |
CN101189797A (zh) * | 2005-05-31 | 2008-05-28 | Ip菲力股份有限公司 | 可重构的装置 |
JP2008219728A (ja) * | 2007-03-07 | 2008-09-18 | Yaskawa Electric Corp | 再構成可能な演算処理回路 |
JP2008225662A (ja) * | 2007-03-09 | 2008-09-25 | Tohoku Univ | データ書込方法およびその方法を用いた書込制御装置ならびに演算装置 |
US20090113169A1 (en) * | 2007-09-11 | 2009-04-30 | Core Logic, Inc. | Reconfigurable array processor for floating-point operations |
US20160086640A1 (en) * | 2014-09-19 | 2016-03-24 | Kabushiki Kaisha Toshiba | Reconfigurable semiconductor integrated circuit and electronic device |
Family Cites Families (4)
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 |
CN101782893B (zh) * | 2009-01-21 | 2014-12-24 | 上海芯豪微电子有限公司 | 可重构数据处理平台 |
KR101929754B1 (ko) * | 2012-03-16 | 2018-12-17 | 삼성전자 주식회사 | 미니 코어 기반의 재구성가능 프로세서, 이를 위한 스케줄 장치 및 방법 |
-
2016
- 2016-08-25 JP JP2016164829A patent/JP6786955B2/ja not_active Expired - Fee Related
-
2017
- 2017-02-24 US US15/442,041 patent/US10795689B2/en active Active
- 2017-05-09 CN CN201710321227.XA patent/CN107786198A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004343559A (ja) * | 2003-05-16 | 2004-12-02 | Ip Flex Kk | 再構成可能な集積回路ユニットを有するデータ処理装置 |
JP2005057452A (ja) * | 2003-08-01 | 2005-03-03 | Matsushita Electric Ind Co Ltd | プログラマブル論理回路 |
CN1722130A (zh) * | 2004-07-12 | 2006-01-18 | 富士通株式会社 | 可重配置运算装置 |
US20060202715A1 (en) * | 2005-03-10 | 2006-09-14 | Fujitsu Limited | Re-configurable circuit and configuration switching method |
CN101189797A (zh) * | 2005-05-31 | 2008-05-28 | Ip菲力股份有限公司 | 可重构的装置 |
JP2008219728A (ja) * | 2007-03-07 | 2008-09-18 | Yaskawa Electric Corp | 再構成可能な演算処理回路 |
JP2008225662A (ja) * | 2007-03-09 | 2008-09-25 | Tohoku Univ | データ書込方法およびその方法を用いた書込制御装置ならびに演算装置 |
US20090113169A1 (en) * | 2007-09-11 | 2009-04-30 | Core Logic, Inc. | Reconfigurable array processor for floating-point operations |
US20160086640A1 (en) * | 2014-09-19 | 2016-03-24 | Kabushiki Kaisha Toshiba | Reconfigurable semiconductor integrated circuit and electronic device |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109240832A (zh) * | 2018-09-25 | 2019-01-18 | 中国电子科技集团公司电子科学研究院 | 一种硬件重构***及方法 |
CN109240832B (zh) * | 2018-09-25 | 2022-04-19 | 中国电子科技集团公司电子科学研究院 | 一种硬件重构***及方法 |
Also Published As
Publication number | Publication date |
---|---|
JP6786955B2 (ja) | 2020-11-18 |
JP2018033036A (ja) | 2018-03-01 |
US10795689B2 (en) | 2020-10-06 |
US20180060096A1 (en) | 2018-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7518396B1 (en) | Apparatus and method for reconfiguring a programmable logic device | |
US7111224B1 (en) | FPGA configuration memory with built-in error correction mechanism | |
DE60100476T2 (de) | Unterstützung mehrerer konfigurationszustände eines fpga mittels eines auf dem integrierten schaltkreis dafür vorgesehenen prozessors | |
EP0445454B1 (en) | Hardware simulator | |
DE69827589T2 (de) | Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen | |
WO2020227145A1 (en) | Methods and apparatus for performing matrix transformations within a memory array | |
DE19724072C2 (de) | Vorrichtung zur Durchführung eines Blockchiffrierverfahrens | |
DE60219990T2 (de) | Speichertest-Schaltung | |
US10560102B1 (en) | Field programmable gate array including coupled lookup tables | |
CN107786198A (zh) | 可重构逻辑电路 | |
DE10147910A1 (de) | Speichertester weist Speichersätze auf, die für die Verwendung als Fehlererfassungs-RAM, Etiketten-RAM, Pufferspeicher und Stimulus-LOG-RAM konfigurierbar sind | |
WO2014122320A2 (de) | Verändern eines signalwerts eines fpga zur laufzeit | |
DE102005005073A1 (de) | Rekonfigurierbare Architektur zur parallelen Berechnung beliebiger Algorithmen | |
Gokhale et al. | Experience with a hybrid processor: K-means clustering | |
DE19627820A1 (de) | Speichertestvorrichtung | |
DE10231956A1 (de) | Verfahren und Vorrichtung zur systeminternen Programmierung durch einen gemeinsamen Verbindungspunkt von programmierbaren logischen Bauelementen auf mehreren Schaltungsplatinen eines Systems | |
DE10153753B4 (de) | Speichertester unterläßt ein Programmieren von Adressen in erfaßten schlechten Spalten | |
US20040187088A1 (en) | Configurable electronic device with mixed granularity | |
EP1262060B1 (de) | Verfahren und Vorrichtung zum teilweisen Auslesen der Bilddaten eines Bildsensors | |
DE10153665A1 (de) | Speichertester mit verbesserter Nachdecodierung | |
DE112019007386T5 (de) | Verbesserte jtag-register mit gleichzeitigen eingängen | |
US6651155B1 (en) | Apparatus and method for translating a programmable logic device programmer object file | |
US6629215B2 (en) | Multiple port memory apparatus | |
US8363067B1 (en) | Processing multiple regions of an image in a graphics display system | |
CN105009106A (zh) | 可重配置指令单元阵列的并行配置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Tokyo, Japan Applicant after: Fuji film business innovation Co.,Ltd. Address before: Tokyo, Japan Applicant before: Fuji Xerox Co.,Ltd. |
|
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180309 |