CN103177152A - 局部重配置电路 - Google Patents

局部重配置电路 Download PDF

Info

Publication number
CN103177152A
CN103177152A CN2012105598686A CN201210559868A CN103177152A CN 103177152 A CN103177152 A CN 103177152A CN 2012105598686 A CN2012105598686 A CN 2012105598686A CN 201210559868 A CN201210559868 A CN 201210559868A CN 103177152 A CN103177152 A CN 103177152A
Authority
CN
China
Prior art keywords
circuit
configuration
data
local gravity
control circuit
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
CN2012105598686A
Other languages
English (en)
Other versions
CN103177152B (zh
Inventor
B·玛加班度
D·A·瑞斯
L·M·毛戈
N·D·纳谷
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.)
Altera Corp
Original Assignee
Altera Corp
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 Altera Corp filed Critical Altera Corp
Publication of CN103177152A publication Critical patent/CN103177152A/zh
Application granted granted Critical
Publication of CN103177152B publication Critical patent/CN103177152B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Logic Circuits (AREA)

Abstract

本发明涉及局部重配置电路。集成电路可以包括局部重配置(PR)电路,其用于重配置存储器阵列的一部分。PR电路可以包括主电路、控制电路、地址寄存器以及第一、第二和第三数据寄存器。主电路可以发送一系列PR指令给控制电路。控制电路可以包括用于解压缩已压缩的指令的解压缩电路,用于解密已加密的指令的解密电路,用于检测指令中的错误的错误检验电路,以及逻辑电路。地址寄存器可以选择期望的帧。可以将选定的帧加载进入第三数据寄存器中。可以将第三数据寄存器的内容移位进入第一数据寄存器中。第一数据寄存器的内容可以根据期望的逻辑功能利用逻辑电路进行修改,移位进入第二数据寄存器中,并且写入选定的帧中。

Description

局部重配置电路
相关申请的交叉引用
本申请要求2012年5月25日提交的美国专利申请13/481,506的优先权,和2011年12月21日提交的美国临时专利申请61/578,864的优先权,该申请的全部内容通过引用并入本文。
技术领域
本文涉及集成电路,并且更具体地涉及用于对诸如可编程集成电路的集成电路执行局部重配置的电路。
背景技术
可编程集成电路是一种用户可以对其编程以实现所期望的定制逻辑功能的集成电路。在通常情况下,逻辑设计者利用计算机辅助设计工具设计定制逻辑电路。当设计过程完成时,计算机辅助设计工具产生配置数据。该配置数据被加载到存储器元件中以配置该器件,从而执行定制逻辑电路的功能。
常常利用随机访问存储器(RAM)单元形成存储器元件。因为在器件编程过程中将配置数据加载到RAM单元中,所以有时将RAM单元称为配置存储器或者配置随机访问存储器单元(CRAM)。
在可编程器件正常工作过程中,已加载的CRAM单元产生静态输出信号,这些信号被施加到晶体管(例如传输晶体管)的栅极。CRAM输出信号将一些晶体管打开并且将其他晶体管关闭。这种选择性激活可编程器件上的某些晶体管定制化可编程器件的工作,使得该可编程器件执行其计划中的功能。
可以将配置数据按配置比特流的形式供应给可编程器件。在将第一配置比特流加载到可编程器件后,可以在称为重配置的过程中,通过加载不同的配置比特流重配置该可编程器件。在重配置的过程中,常常加载整组配置数据。然而,利用称为局部重配置的过程,仅仅重配置配置比特中的一部分,这有时可以是有利的。
发明内容
提供了一种集成电路,其包括存储器元件与局部重配置电路,局部重配置电路用于重配置存储器元件中选定的部分。存储器元件可以按行和列布置并且可以统称为存储器阵列。
局部重配置(PR)电路可以包括PR主电路(host circuit)、PR控制电路、地址寄存器以及第一、第二和第三数据寄存器。PR主电路可以用于与PR控制电路执行握手过程,以初始化PR控制电路,并且可以给PR控制电路提供一系列局部重配置指令。在一些实施例中,PR指令可以是压缩的和/或加密的。在此情况下,PR控制电路可以包括可操作用于解压缩和/或解密指令的电路。
PR控制电路可以包括错误检验电路,其被配置为确定每个PR指令是否包含错误。如果当前的PR指令是错误的,则错误检验电路可以给PR主电路提供有效的错误信号,以提醒主电路这个错误。当主电路接收到有效的错误信号时,主电路可以重新发送错误的指令,或者可以重新发送整个系列的PR指令。如果当前PR指令不包括任何错误,则错误检验电路可以给PR主电路提供无效的错误信号,并且可以执行当前指令。
PR控制电路可以引导地址寄存器在存储器阵列中选择期望的行(或者帧)用于读访问或者写访问。在一系列说明性的操作中,可以读取选定行的存储器元件并且将其存储在第一数据寄存器中。第一数据寄存器随后可以并行加载其内容到第二数据寄存器中。接着,可以将第二数据寄存器的内容串行移出到PR控制电路中。基于当前PR指令中提供的数据比特,PR控制电路可以修改移位的数据内容(例如,可以利用特定的逻辑功能来处理来自第二数据寄存器的数据比特和当前指令中的数据比特,以产生修改的数据比特)。接着,修改的内容可以串行移回到第二数据寄存器中。
接着,可以将第二数据寄存器的内容并行移位到第三数据寄存器中。接着,可以将第三数据寄存器的内容加载到选定行的存储器元件中。接着,地址寄存器可以用于选择不同行的存储器元件以便进行重配置。
本发明的进一步特征、其本质与各种优点将会从附图与下列详细说明中变得更清晰。
附图说明
图1是根据本发明实施例的说明性可编程集成电路的图示。
图2是根据本发明实施例示出了配置数据是如何由逻辑设计系统生成并且加载入可编程器件中从而配置器件以便在系统中工作的图示。
图3是根据本发明实施例的说明性存储器元件的电路图。
图4是根据本发明实施例的说明性集成电路的图示,该集成电路具有存储器元件阵列,以及可以用于对存储器元件阵列执行局部重配置的局部重配置电路。
图5是根据本发明实施例的一系列说明性的局部重配置指令的图示。
图6是根据本发明实施例的说明性局部重配置指令类型的表格。
图7是根据本发明实施例的说明性局部重配置帧类型的表格。
图8是根据本发明实施例用于操作图4的局部重配置电路的说明性步骤的流程图。
图9A与9B是根据本发明实施例示出了在图4的局部重配置电路的工作过程中,控制信号与关联的数据流的行为的时序图。
图10是根据本发明实施例示出了可以如何对局部重配置指令进行压缩和/或加密的图示。
图11是根据本发明实施例的说明性局部重配置控制电路的图示,该控制电路具有解密电路、解压缩电路与错误检验电路。
具体实施方式
本发明实施例涉及集成电路,并且更具体地涉及具有存储器元件的集成电路。包括存储器元件的集成电路可以包括存储器芯片、数字信号处理电路、微处理器、专用集成电路(ASIC)、专用标准产品(applicationspecific standard product)(ASSP)、可编程集成电路,或者其他合适的集成电路,可编程集成电路是例如可编程门阵列(PAL)、可编程逻辑阵列(PLA)、现场可编程逻辑阵列(FPLA)、电可编程逻辑器件(EPLD)、电可擦除可编程逻辑器件(EEPLD)、逻辑单元阵列(LCA)、现场可编程门阵列(FPGA)等。
诸如可编程集成电路的集成电路利用可编程存储器元件存储配置数据。在对可编程集成电路进行编程的过程中,加载配置数据进入存储器元件中。在可编程集成电路的正常工作期间,每个存储器元件提供静态输出信号。存储器元件供应的静态输出信号用作控制信号。这些控制信号被施加于在集成电路上的可编程逻辑以定制可编程逻辑,从而执行所期望的逻辑功能。
存储器元件可以被组织为具有数个行和列的阵列。例如,存储器阵列电路可以在可编程逻辑器件集成电路上形成为数百或者数千的行和列。图1的可编程集成电路10是在其上可以形成存储器阵列电路的说明性集成电路的示例。
如图1中所示,可编程集成电路10可以具有输入输出电路12,其用于通过输入输出引脚14驱动走器件10的信号并且接收来自其他器件的信号。可以使用诸如全局和局部垂直和水平导线与总线的互连资源16来路由器件10上的信号。互连资源16包括固定互连(导线)和可编程互连(即,各固定互连之间的可编程互连)。可编程逻辑18可以包括组合和时序逻辑电路。可以配置可编程逻辑18以执行定制逻辑功能。
可编程集成电路10包括存储器元件20,其可以利用引脚14和输入输出电路12加载有配置数据,也称为编程数据。一旦加载了数据,每个存储器元件提供对应的静态控制输出信号,其控制可编程逻辑18中的关联的逻辑部件的状态。存储器元件输出信号通常用于控制金属氧化物半导体(MOS)晶体管的栅极。一些晶体管可以是p沟道金属氧化物半导体(PMOS)晶体管。在诸如多路复用器的可编程部件中,很多这些晶体管可以是n通道金属氧化物半导体(NMOS)传输晶体管。当存储器元件输出是高电平时,将打开由该存储器元件控制的NMOS传输晶体管,以将逻辑信号从其输入传输到其输出。当存储器元件输出是低电平时,传输晶体管被关闭并且不传输逻辑信号。
典型的存储器元件20由被配置为形成交叉耦合反相器的数个晶体管形成。也可以利用其他布置,例如具有更多分布式类反相器电路的单元。通过一种合适的方法,互补金属氧化物半导体(CMOS)集成电路技术用于形成存储器元件20,所以本文将对基于CMOS的存储器元件实现作为示例进行描述。在可编程集成电路的背景中,存储器元件存储配置数据并且因此有时称为配置随机访问存储器(CRAM)单元。
图2中示出了用于器件10的说明性系统环境。器件10可以安装在系统38中的板36上。通常情况下,可编程逻辑器件10可以接收来自编程设备或者来自其他合适设备或者器件的配置数据。在图2的示例中,可编程逻辑器件10是如下类型的可编程逻辑器件,其接收来自关联的集成电路40的配置数据。在这种类型的布置中,如果期望的话,电路40可以被安装在与可编程逻辑器件10相同的板36上。电路40可以是可擦除可编程只读存储器(EPROM)芯片,具有内建存储器的可编程逻辑器件配置数据加载芯片(有时称为配置器件),或者其他合适的电路。当系统38启动时(或者在另一个合适的时间),用于配置可编程逻辑器件的配置数据可以从器件40供应给可编程逻辑器件,如路径42示意示出的。供应给可编程逻辑器件的配置数据可以被存储于可编程逻辑器件中的配置随机访问存储器元件20中。
系统38可以包括处理电路44、存储装置46和其他与器件10通信的系统部件48。系统38的部件可以位于诸如板36的一个或者更多板上,或者在其他合适安装结构或者外壳上,并且可以通过总线和其他电气路径50进行互连。
配置器件40可以经由诸如路径52的路径供应用于器件10的配置数据。例如,配置器件40可以从配置数据加载装置54或者其他合适的在配置器件40中存储该数据的设备接收配置数据。器件40可以在安装到板36之前或者之后加载数据。
设计与实现可编程逻辑器件中的期望的逻辑电路会是费力任务。因此逻辑设计者通常利用基于计算机辅助设计工具(CAD)的逻辑设计系统来辅助其设计电路。逻辑设计系统可以帮助逻辑设计者设计与测试系统的复杂电路。当设计完成时,逻辑设计系统可以用于产生配置数据,用于对合适的可编程逻辑器件进行电编程。
如图2所示,逻辑设计系统56所产生的配置数据可以经由诸如路径58的路径提供给设备54。设备54将配置数据提供给器件40,使得器件40可以稍后将该配置数据经由路径42提供给可编程逻辑器件10。系统56可以基于一个或更多计算机和一个或更多软件程序。一般情况下,软件和数据可以被存储于系统56中的任意计算机可读介质(存储装置),并且在图2中示意示为存储器60。
在通常情况下,逻辑设计者利用逻辑设计系统56生成定制电路设计。系统56产生对应的配置数据,这些配置数据被提供给配置器件40。通电后,可编程逻辑器件10上的配置器件40和数据加载电路用于将配置数据加载到器件10的CRAM单元20中。接着,器件10可以用于系统38的正常工作中。
图3是CRAM单元20的电路图。如图1所示,单元20可以包括一对交叉耦合反相器(例如锁存器)和两个存取晶体管。锁存器可以包括反相器INV1和INV2。反相器INV1可以具有耦合到反相器INV2的输入的输出,而反相器INV2可以具有耦合到反相器INV1的输入的输出。按此方式交叉耦合的反相器INV1和INV2形成了单元20的存储部分。
单元20的存储部分可以是被配置为在第一和第二数据存储节点(即,第一数据存储节点X和第二数据存储节点Y)上存储数据的双稳态元件。反相器INV1的输出可以耦合到第二数据存储节点Y,而反相器INV2的输出可以耦合到第一数据存储节点X(例如参看图3)。
诸如存取晶体管TA1和TA2的存取晶体管可以连接到存储器单元20的存储部分,以执行读和写操作。如图3所示,存取晶体管TA1可以耦合在诸如第一数据线72-1的第一数据线(例如,在其上传递真实数据信号D的真实数据线)和第一数据存储节点X之间,而存取晶体管TA2可以耦合在诸如第二数据线72-2的第二数据线(例如,在其上传递互补数据信号nD的互补数据线)和第二数据存储节点Y之间。晶体管TA1和TA2可以各自具有耦合到在其上传递地址信号ADD的地址线70(有时称为字线)的栅极。因此,有时晶体管TA1和TA2可以称为地址晶体管。
在正常工作过程中(例如,单元20维持配置数据的正常工作模式),使地址信号ADD有效(例如,将地址信号ADD拉低),以关闭存取晶体管TA1和TA2,使得单元20的存储部分在数据存储节点X和Y上维持已存储的数据值。例如,维持“0”的单元20可以具有处于逻辑“1”的第一数据存储节点X以及处于逻辑“0”的第二数据存储节点Y。
在读操作过程中,可以对数据线72-1和72-2进行预充电(例如,可以将数据信号D和nD预充电到高电压)。接着,可以使地址信号ADD有效(例如,可以将地址信号ADD升高),以使存取晶体管TA1和TA2能够从单元20中读取数据。具有耦合到数据线72-1和72-2的感测电路(例如感测放大器74)可以用于确定单元20是否存储“0”(例如,存储节点Y是否存储“0”)或者“1”(例如,存储节点Y是否存储“1”)。
在写操作过程中,可以将期望的数据值呈现在数据线72-1和72-2上,同时使地址信号ADD有效,以使存取晶体管TA1和TA2能够将期望的数据值写入单元20。例如,可以将线72-1上的数据D驱动到逻辑“1”而可以将线72-2上的信号nD驱动到逻辑“0”,以将“0”写入单元20中。
供应给存储器元件20的信号有时可以统称为控制信号。在特定的背景中,这些信号中的一些可以称为电源信号、清零信号、数据信号、地址信号等。这些不同的信号种类不互相排斥。
每个存储单元20可以在对应的输出路径64上供应对应的输出信号。输出路径64可以耦合到数据存储节点Y。每个输出信号是静态输出控制信号,其可以用于配置诸如晶体管62的对应的晶体管(例如,输出信号可以用于控制对应的晶体管62的栅极)或者在关联的可编程逻辑电路中的其他电路元件。晶体管62有时可以称为传输晶体管或者传输门。晶体管62的状态(关闭或者开启)控制是否允许信号在其源漏端子之间传输。
图3中所示的存储器单元20仅仅是说明性的。存储器单元20的存储部分可以具有多于两个的交叉耦合反相器,或者可以利用任意合适数量的形成锁存器的晶体管形成。如果期望,存储器单元20可以利用单端读/写方案实现,可以包括清零晶体管(例如,可以全局使能以清除器件10上的存储器单元的内容的晶体管)等。
在器件10初始地加载有一组配置数据后(例如,利用与图2相关描述的配置器件40),可以通过加载不同的一组配置数据来重配置器件10。有时会期望经由有时称为局部重配置的过程,重配置器件10上的仅一部分存储器单元。由于存储器单元通常地按阵列布置,因此可以通过将新数据值仅写入到阵列中的选定的矩形区域来执行局部重配置。
图4是集成电路10的图示,该集成电路10包括诸如存储器阵列99的存储器单元20阵列。一般情况下,存储器阵列99中可以有数百或者数千行和列。存储器阵列99可以是器件10上的数个存储器阵列中的一个,可以是更大的阵列中的一部分的子阵列,或者可以是任意其他合适的一组存储器单元20的一部分。
如图4所示,器件10可以包括耦合到存储器阵列99的局部重配置电路100。局部重配置电路100可以用于重配置存储器阵列99中的选定的部分,而使阵列99中除选定的部分外的部分处于其原来的配置状态。局部重配置电路(PR)电路100可以包括局部重配置主电路102、局部重配置控制电路104、地址寄存器106、第一数据寄存器(本文有时称为数据寄存器A(DRA))、第二数据寄存器(本文有时称为数据寄存器B(DRB))和第三数据寄存器(本文有时称为先行(look-ahead)数据寄存器(DRLA))。在本发明另一个合适的实施例中,PR主电路102可以在器件10外部并且可以用作单独的部件,用于在局部重配置操作期间与控制电路104接口连接。
阵列99内的一行存储器单元中的每个存储器单元20可以耦合到关联的地址线70,经由该关联的地址线70提供对应的地址信号ADD。例如,第一行存储器单元中的每个存储器单元20可以耦合到在其上供应地址信号ADD1的第一地址线;第二行存储器单元中的每个存储器单元20可以耦合到在其上供应地址信号ADD2的第二地址线;…,和第n行存储器单元中的每个存储器单元20可以耦合到在其上供应地址信号ADDn的第n地址线。耦合到公共地址线的存储器单元20(例如,来自阵列99内的同一行的存储器单元)可以统称为“帧”(frame)、存储器的帧或者存储器帧。每个不同的地址线70可以耦合到地址寄存器106(如路径70`所示)。
可以配置地址寄存器106以供应期望的地址信号(即,地址信号ADD1-ADDn)给阵列99中相应的存储帧。地址寄存器106可以在任意时间点仅仅在地址线中选定的一个上供应单个有效的地址信号(例如,地址寄存器106被配置为在某个时间选择一个帧)。例如,地址寄存器106可以是由一系列触发器形成的移位寄存器,每个触发器用于在其输出提供对应的地址信号。该一系列触发器中仅单个给定的触发器存储逻辑“1”,而除给定的触发器外的触发器存储逻辑零。如果期望,逻辑“1”可以被移位到该一系列触发器中的任意其他触发器,只要仅有一个触发器存储逻辑“1”(即有效的地址信号)。
阵列99内的一列存储器单元中的每个存储器单元20可以耦合到一对关联的数据线72(例如数据线72-1和72-2)。数据线72有时可以称为位线。例如,第一列存储器单元中的每个存储器单元20可以耦合到第一对数据线;第二列存储器单元中的每个存储器单元20可以耦合到第二对数据线;….,而第m列存储器单元中的每个存储器单元20可以耦合到第m对数据线。
寄存器DRB可以经由写驱动器电路耦合到相应的一列存储器单元(如路径126所示)。可以配置寄存器DRB以存储要被利用写驱动器电路写入存储器阵列99中的选定的帧的数据值。例如,寄存器DRB可以包括第一存储元件、第二存储元件、第三存储元件等,其中第一存储元件将第一数据值通过第一写驱动器供应给第一列存储器单元中的选定的存储器单元,第二存储元件将第二数据值通过第二写驱动器供应给第二列存储器单元中的选定的存储器单元,第三存储元件将第三数据值供应给第三列存储器单元中的选定的存储器单元等。按此方式布置,寄存器DRB可以用作存储在局部重配置操作期间可以被加载进入选定的存储器帧中的数据比特。
每一列存储器单元可以通过关联的读感测电路耦合到寄存器DRLA中相应的存储器元件(如路径124所示)。可以配置寄存器DRLA以存储利用读感测电路(参看例如图3的感测放大器74)从存储器阵列99中的选定的帧中读出的数据值。例如,寄存器DRLA可以包括第一存储元件、第二存储元件、第三存储元件等,其中第一存储元件可操作用于经由第一感测放大器74接收来自第一列存储器单元中的选定的存储器单元的第一读取值,第二存储元件可操作用于经由第二感测放大器74接收来自第二列存储器单元中的选定的存储器单元的第二读取值,第三存储元件可操作用于经由第三感测放大器74接收来自第三列存储器单元中的选定的存储器单元的第三读取值,以此类推。按此方式布置,寄存器DRLA可以用作存储在局部重配置操作期间从选定的存储帧中读出的数据比特。
术语“行”和“列”仅代表引用存储器阵列99中具体的多组单元20的一种方式,并且有时可以交换使用。如果期望,可以在存储器阵列99中使用其他图案的线。例如,可以使用不同数量的电源信号、数据信号和地址信号。
寄存器DRA可以耦合在寄存器DRLA和寄存器DRB之间。在局部重配置期间的一个合适的步骤中,地址寄存器106可以用于选择要读出的存储器的帧。选定的帧的读数据值可以被存储于寄存器DRLA中。在另一个合适的步骤中,可以将寄存器DRLA的内容转移到寄存器DRA(例如,可以将存储于寄存器DRLA中的数据比特并行地移位入寄存器DRA中)。在另一个合适的步骤中,可以基于由PR主电路192提供的新数据值修改寄存器DRA的内容。在另一个合适的步骤中,可以将寄存器DRA的已修改内容转移到寄存器DRB(例如,可以将存储于寄存器DRA中的数据比特并行地移位入寄存器DRB中)。接着,可以利用关联的写驱动器将已移位入寄存器DRB中的已修改的数据值写入选定的帧。一般地,存储器阵列99内的仅一部分帧按此方式重配置(例如,当前用户逻辑的仅一个或更多部分被重配置,而不影响其他不需要改变的逻辑部分)。如果期望,可以利用此方法重配置整个存储器阵列99。
地址寄存器106、寄存器DRA、寄存器DRB和寄存器DRLA的操作可以利用诸如时钟信号Clk和控制信号Vctrl的信号控制,这些信号由PR控制电路104通过路径122提供。图4中利用三个数据寄存器DRA、DRB和DRLA的示例仅仅是说明性的,并且不用作限定本发明的范围。如果期望,局部重配置电路100可以包括少于三个数据寄存器,多于三个数据寄存器,并且可以包括地址解码器而不是移位寄存器。
主电路102可以被配置为通过路径114提供局部重配置比特流Bpr给控制电路104。可以通过输入输出引脚14从片外源(例如,从图2的配置器件40)提供比特流Bpr给主电路102。比特流Bpr可以包括一系列指令,每条指令包括在局部重配置操作期间用于引导控制电路104操作的有用信息。在发送流Bpr之前,电路102可以通过路径110与电路104交换握手信号VHANDSHAKE。此握手过程用作将电路102和104初始化到期望的开始状态,并且例如,可以配置地址寄存器以使与阵列99中的第一帧关联的地址信号(例如,可以在握手过程完成后即选择第一帧)。
控制电路104可以包括错误检验电路108,其配置为接收流Bpr并且检验流Bpr中的指令是否包含任何错误。图5是由一系列指令形成的说明性比特流Bpr的图示。如图5所示,每个PR指令可以至少包括具体说明将要执行的操作类型的作业码(或者操作码)、与该特定类型操作关联的数据比特以及循环冗余检验(CRC)位。不同指令可以包括不同比特长度的数据。可以检测出的错误的数量由错误检验电路108所用的错误检验机制的类型确定。例如,可以利用等式(1)中所示的16位多项式实现错误检验电路108。
G(x)=x16+x15+x2+1           (1)
可以通过给定指令中的原始数据(例如,操作码和对应的数据比特)除以多项式G(x),来计算给定指令中的CRC位。在等式(1)的示例中,多项式G(x)可以具有等于11000000000000101的数字表示。CRC位可以等于得到的多项式除法的余数。一般情况下,原始数据的长度大于CRC多项式的长度。
在接收来自主电路102的指令后,控制电路104可以重新计算CRC位(有时称为检验值),以确定原始数据是否无意地被损坏。错误检验电路108可以产生对应的错误信号VERROR并通过路径112回到主电路192。如果重新计算的检验值匹配给定指令中附着的CRC位,则错误检验电路108可以保持VERROR无效。如果重新计算的检验值不匹配给定指令中附着的CRC位,则检测出错误,并且错误检验电路108可以使信号VERROR有效。
电路108可以对每个指令基执行错误检验。为了防止不期望地损坏存储器阵列99,可以不执行示出错误的指令(例如,将不履行使VERROR有效的指令)。主电路102可以通过监测使信号VERROR有效的频率来追踪成功执行的指令的数量。当检测出错误时,主电路102可以重新发送整个比特流Bpr,或者可以仅重新发送失败的指令,而不必重新发送整个比特列Bpr。如果期望,电路108还可以被配置为校正错误指令。按此方式操作,可以允许PR控制电路104执行校正后的PR指令,而不必重新发送整个比特流Bpr。
当期望将新数据加载进入选定的帧时,错误检验电路108可以提供从当前指令的“数据”部分中提取的局部重配置数据Dpr。控制电路104可以包括诸如布尔(Boolean)逻辑电路116的可配置逻辑电路。数据Dold(例如,存储于寄存器DRA中的旧数据比特)和Dpr按串联形式分别馈送到逻辑电路116的第一和第二输入。可配置逻辑电路116可以被配置为提供期望的布尔逻辑功能,例如逻辑与(AND)功能,逻辑或(OR)功能,逻辑异或(XOR)功能,逻辑与非(NAND)功能,逻辑或非(NOR)功能,逻辑异或非(XNOR)功能,和/或其他合适逻辑功能。
例如,考虑第一情形,在其中逻辑电路116被配置为两输入逻辑与门。逻辑与门116可以在其第一输入上接收通过路径120从寄存器DRA输出移位出的数据比特Dold,可以在其第二输入上接收从错误检验电路108移位出的数据比特Dpr,并且可以在其输出上产生数据比特Dnew,其通过路径118移位回到寄存器DRA的输入,其中数据比特Dnew等于当前已接收到的Dold和Dpr的逻辑与的积。
如另一个示例,考虑第二情形,在其中逻辑电路116被配置为两输入逻辑异或门。逻辑异或门116可以在其第一输入上接收通过路径120从寄存器DRA输出移位出的数据比特Dold,可以在其第二输入上接收从错误检验电路108移位出的数据比特Dpr,并且可以在其输出上产生数据比特Dnew,其通过路径118移位回到寄存器DRA的输入,其中数据比特Dnew等于当前已接收到的Dold和Dpr的逻辑异或的积。因此,可以基于其旧数据Dold的内容、从主电路102提供的数据Dpr的内容和逻辑电路116当前实现的布尔逻辑功能,按循序移位的方式修改寄存器DRA。因此,修改后的寄存器DRA的内容可以代表将被加载入存储器阵列99中对应的帧的重配置比特。
图6是可以分配给每个PR指令操作码部分的说明性指令类型的表格。如图6所示,不同种类的指令可以至少包括:SKIP_LEFT、SKIP_RIGHT、CLEAR_AR、SELECT_FRAME0、LOAD_FIRST_PR_FRAME、WRITE_LAST_PR_FRAME、AND、OR、XOR、SCRUB和PR_DONE。SKIP_LEFT指令可以使电路104产生控制信号(例如,控制信号Clk和/或Vctrl),这些信号通过左移地址指针,引导地址寄存器106跳过当前帧。与SKIP_LEFT指令关联的数据比特可以指示要被移位的帧的数量(例如,地址指针可以左移一个量,这个量与关联的数据比特值成比例)。SKIP_RIGHT指令可以使电路104产生控制信号,这些信号通过右移地址指针,引导地址寄存器106跳过当前帧。与SKIP_RIGHT指令关联的数据比特可以指示要被移位的帧的数量(例如,地址指针可以右移一个量,这个量与关联的数据比特值成比例)。
CLEAR_AR指令可以使电路104产生控制信号,该信号导致清除地址寄存器106的内容,使得没有帧被选择。例如,可以复位寄存器106中的每个触发器,以存储默认值零。SELECT_FRAME0指令可以使电路104产生控制信号,该信号引导地址寄存器106选择存储器阵列99的第一帧。例如,可以将逻辑“1”移位进入地址寄存器106中的首个(第一)触发器,其供应第一地址信号给阵列99中的第一行存储器单元20。SELECT_FRAME0指令通常跟在CLEAR_AR指令后执行。
LOAD_FIRST_PR_FRAME指令可以引导电路104产生控制信号,该信号将寄存器DRLA加载来自存储器阵列99中局部重配置区域的第一帧的读数据。局部重配置区域可以指代存储器阵列99内的在局部重配置操作期间应该被重配置的一系列连续帧(例如,参看图4中的局部重配置区域101)。如图4所示,PR区域101的第一帧不需要是与存储器阵列99中的第一帧相同的帧。区域101可以包括单个框、两个连续帧或者多于两个的连续帧。在区域101仅包括单个帧的情形中,第一PR帧等同于单个帧。如果期望,存储器阵列99可以包括多个非重叠PR区域101,这些区域在局部重配置过程期间被修改(例如,可以利用局部重配置电路100对多组连续帧进行重配置)。
WRITE_LAST_PR_FRAME指令可以引导电路104产生控制信号,这些信号将寄存器DRB的内容加载进入PR区域101中的最后一个帧。在区域101仅包括单个帧的情形中,最后的PR帧等同于该单个帧。
逻辑与指令可以将逻辑电路116配置为实现逻辑与功能(例如,产生于逻辑电路116输出上的比特Dnew可以等于在其第一输入上接收的比特Dold和在其第二输入上接收的比特Dpr的逻辑与的积)。逻辑或指令可以将逻辑电路116配置为实现逻辑或功能(例如,产生于逻辑电路116输出上的比特Dnew可以等于在其第一输入上接收的比特Dold和在其第二输入上接收的比特Dpr的逻辑或的积)。逻辑异或指令可以将逻辑电路116配置为实现逻辑异或功能(例如,产生于逻辑电路116输出上的比特Dnew可以等于在其第一输入上接收的比特Dold和在其第二输入上接收的比特Dpr的逻辑异或的积)。SCRUB指令可以将比特Dnew简单地设置为在错误检验电路108输出上提供的比特Dpr(例如,根据用户指定数据Dpr对Dnew进行刷新,而不管现有的数据Dold)。如果期望,控制逻辑电路116可以支持除图6表格中所列举类型外的布尔指令。可以将在逻辑电路116的第二输入上接收的数据比特Dpr包括在具有指令类型202的每个指令的数据部分中(参看图6)。
当指令类型等于可用的逻辑操作202中的一种时,操作码可以进一步包括PR帧类型。如图7所示,不同类型的PR帧可以至少包括:SINGLEPR帧类型标示符、FIRST PR帧类型标示符、LAST PR帧类型标示符和REGULAR PR帧类型标示符。SINGLE PR帧类型标示符指示PR区域仅包括单个帧,并且该单个帧是当前选定的帧。FIRST PR帧类型标示符指示当前选定的帧是包括至少两个连续帧的PR区域中的第一帧。LAST PR帧类型标示符指示当前选定的帧是具有至少两个连续帧的PR区域中的最后一个帧。REGULAR PR帧类型标示符指示当前选定的帧是具有至少三个连续帧的PR区域中的一个帧,但这个帧既不是第一帧,也不是最后一个帧。
PR_DONE指令可以指示完成了存储器阵列99的局部重配置。与图6和7相关描述的不同指令类型和PR帧类型仅仅是说明性的,并且不用作限定本发明的范围。如果期望,PR主电路102和控制电路104可以被配置为处理任意合适的指令类型和PR帧类型。
图8是用于操作局部重配置电路100的说明性步骤的流程图。可以将阵列99置于空闲状态300(例如,利用阵列99控制的逻辑电路可以临时地置于空闲模式中)。为了初始化局部重配置操作,主电路102可以通过经由路径110传递控制信号VHANDSHAKE来与控制电路204执行握手过程(步骤302)。一旦握手完成,PR主电路102可以开始通过路径114发送指令比特流Bpr给PR控制电路104。
在步骤304中,控制电路104可以检查最近未读的指令的操作码。如果操作码指示SKIP(即,SKIP_LEFT或者SKIP_RIGHT)、CLEAR_AR或者SELECT_FRAME0指令类型,则可以配置地址寄存器106来选择合适的帧(步骤306)。例如,地址寄存器306可以左移或者右移有效的地址信号期望的量,可以被复位以均存储逻辑零,或者可以被配置为选择阵列99的第一帧。如果操作码指示LOAD_FIRST_PR_FRAME指令类型,则可以将选定的帧从阵列99读入先行寄存器DRLA中(步骤310)。如果操作码指示WRITE_LAST_PR_FRAME指令类型,则可以将寄存器DRB的内容写入存储器阵列99中的选定的帧中(步骤320)。
如果操作码指示逻辑操作202中的一个并且具有SINGLE或者FIRST局部重配置帧类型,则可以根据指定的逻辑功能计算数据Dnew,并且可以利用关于图4中所述的循环移位机制将该数据Dnew移位入寄存器DRA中(步骤312)。如果操作码指示逻辑操作202中的一个并且具有REGULAR或者LAST局部重配置帧类型,则可以将寄存器DRB的内容写入存储器阵列99中的选定的帧中(步骤318)。步骤312可以紧接着步骤318。
在步骤312完成之后,处理可以继续到步骤314和316中的一个。如果操作码指示REGULAR或者FIRST帧类型,则可以将选定的帧从阵列99读入先行寄存器DRLA中,并且可以将寄存器DRA的内容并行地移位进入寄存器DRB中(步骤314)。如果操作码指示SINGLE或者LAST帧类型,则可以将寄存器DRA的内容并行地移位进入寄存器DRB中,而不必向寄存器DRLA加载读数据(步骤316)。
当步骤306、310、314、316或者320中任意一个完成时,错误检验电路108可以用于执行CRC错误检验(步骤308)。如果当前指令不包含任何错误,则信号VERROR可以保持无效,并且处理可以循环回到步骤304,以评估比特流Bpr中随后的指令(如路径326所示)。如果当前指令包含至少一个错误,则可以使信号VERROR有效,并且PR主电路102可以现在重新发送当前指令(或者可选地在稍后时间),或者可以重新发送整个PR比特流Bpr(步骤324)。接着,处理可以循环回到步骤304如路径326所示。
图9A和9B是时序图,其示出了控制信号和关联的数据流在局部重配置电路100的操作期间的行为。在时间t1之前,可以执行CLEAR_AR指令(例如,参看图9A)。在时间t1处,可以执行SELECT_FIRST_FraME指令(例如,通过将逻辑“1”移位进入地址寄存器106中的首个触发器,地址寄存器指针可以指向存储器阵列99中的第一帧)。
在时间t2处,可以执行LOAD_FIRST_PR_FRAME指令。具体地,可以将第一帧的内容读入寄存器DRLA中。在时间t3处,可以使用具有第一帧类型的指令和关联的逻辑操作<oper>计算Dnew。操作<oper>可以是布尔逻辑功能202中选定的任意一个(如图6)。具体地,将寄存器DRLA的内容并行地移位进入寄存器DRA中,接着利用关于图4所述的循环移位机制对寄存器DRA的内容进行修改并且将其重新写入寄存器DRA中。按此方式将已修改的数据比特填入寄存器DRA,这有时可以称为执行读改写(RMW)。在时间t4处,地址寄存器指针右移一位,以指向阵列99的第二帧,并且将第二帧加载进入寄存器DRLA中。在该指令结束时,可以将寄存器DRA的内容移位进入寄存器DRB中。
在时间t5处,可以使用具有REGULAR帧类型的指令和关联的<oper>计算Dnew。在该时间处,可以通过暂时左移地址指针一位,将寄存器DRB的内容写入“前一个”帧(例如,第一帧)。接着,将寄存器DRLA的内容并行地移位进入寄存器DRA,并且基于选定的<oper>利用读改写重新填入寄存器DRA。接着,可以通过将指针右移两位,寄存器DRLA继续读“下一个”帧(即,存储器阵列99中的第三帧)。
接着,可以评估并且执行具有REGULAR帧类型的一系列指令。在具有REGULAR帧类型的该一系列指令之后可以是具有LAST帧类型的指令(参看,图9B中的时间t6)。在最后一个REGULAR指令结束时,可以将寄存器DRA中的已修改内容(当前存储了用于第n-1帧的重配置比特)并行地移位进入寄存器DRB中。在时间t6处,可以将当前存储重配置比特的DRB的已修改内容写入第n-1帧,同时寄存器DRLA将从第n帧读取的内容加载到要利用与LAST指令关联的<oper>进行修改的寄存器DRA中。在LAST指令结束时,可以将寄存器DRA中的已修改内容(当前存储用于第n帧的重配置比特)并行地移位进入寄存器DRB中。
在时间t7处,可以执行WRITE_LAST_PR_FRAME指令。具体地,地址指针可以指向第n帧(即,PR区域101中的最后一帧),并且可以将寄存器DRB的内容加载到第n帧。接着,在WRITE_LAST_PR_FRAME指令之后可以是SKIP指令,以重配置另一个目标PR区域,或者可以是PR_DONE,从而表示局部重配置过程的完成。如果期望,主电路102可以在器件10的操作期间的任意时间点处初始化局部重配置,以重配置阵列99的任意期望的部分。
图9A和9B(在其中多于两个连续帧被重配置)中所示的指令序列仅仅是说明性的。考虑PR区域101仅包括两个帧的另一个示例。对于该情形,合适的指令比特流可以包括按下列顺序排列的指令:LOAD_FIRST_PR_FRAME  、FIRST_<oper>、LAST_<oper>、WRITE_LAST_PR_FRAME和PR_DONE(或者SKIP,如果有另一个非相邻PR区域要被重配置的话)。考虑PR区域101仅包括单个帧的另一个示例。对于该情形,合适的指令比特流可以包括按下列顺序排列的指令:LOAD_FIRST_PR_FRAME、SINGLE_<oper>、WRITE_LAST_PR_FRAME和PR_DONE(或者SKIP)。一般情况下,器件10中任意数量的存储器阵列99可以利用本文所述的说明性方法进行局部重配置。
在本发明的一些实施例中,可以对比特流Bpr进行压缩和/或加密(例如参看图10)。可以利用压缩算法对指令进行压缩,例如LZ77算法、霍夫曼编码(Huffman encoding)、基于算术编码的算法或者其他已知的数据压缩算法。可以利用加密算法对指令进行加密,例如高级加密标准(AES)128算法或者AES 256算法(作为示例)。在一个合适的布置中,可以对比特流Bpr进行压缩和加密。在另一个合适的布置中,可以仅对比特流Bpr进行压缩。在另一个合适的布置中,可以仅对比特流Bpr进行加密。
如图11所示,控制电路104可以包括(除了错误检验电路108之外)的解密电路(例如解密电路400)和解压缩电路(例如解压缩电路402)。解密电路400可以用于对已加密的Bpr执行解密。解压缩电路402可以用于对已压缩的Bpr执行解压缩。在指令流Bpr同时被压缩和加密的情形中,可以将流Bpr传输通过电路400和402两者(例如,电路400和402可以均被激活)。在指令流Bpr仅被压缩但没被加密的情形中,流Bpr可以仅传输通过电路402而绕过电路400(例如,电路402可以转换到使用状态而电路400可以转换离开使用状态)。在指令流Bpr仅被加密但没有被压缩的情形中,流Bpr可以仅传输通过电路400而绕过电路402(例如,电路400可以转换到使用状态而电路402可以转换离开使用状态)。
附加实施例:
附加实施例1.一种集成电路,包括:存储器元件阵列;和局部重配置电路,其耦合到所述存储器元件阵列,其中所述局部重配置电路包括:控制电路;和数据寄存器电路,其可操作用于存储从所述存储器元件阵列中的选定行的存储器元件中读取的数据,并且修改读取的数据以产生已修改的数据,其中所述控制电路可操作用于将来自所述数据寄存器电路的所述已修改的数据加载到所述存储器元件阵列中的所述选定行的存储器元件中。
附加实施例2.根据附加实施例1中所述的集成电路,其中所述局部重配置电路进一步包括:地址寄存器,其由所述控制电路控制,其中所述地址寄存器可操作用于产生对应于所述选定行的存储器元件的有效的地址信号。
附加实施例3.根据附加实施例1中所述的集成电路,其中所述局部重配置电路进一步包括:主电路,其可操作用于提供多个局部重配置指令给所述控制电路。
附加实施例4.根据附加实施例1中所述的集成电路,其中所述控制电路进一步可操作用于接收多个局部重配置指令,并且其中所述控制电路包括错误检验电路,所述错误检验电路可操作用于确定所述多个局部重配置指令中的每个指令是否包括错误并且校正所述局部重配置指令中的所述错误。
附加实施例5.根据附加实施例1中所述的集成电路,其中所述控制电路进一步可操作用于接收多个局部重配置指令,并且其中所述控制电路包括可配置逻辑电路,所述可配置逻辑电路可操作用于基于所述多个局部重配置指令中的给定的局部重配置指令产生所述已修改的数据。
附加实施例6.根据附加实施例5中所述的集成电路,其中所述可配置逻辑电路包括:第一输入,其可操作用于接收来自所述数据寄存器电路的输出的所述读取的数据;第二输入,其可操作用于接收从所述给定的局部重配置指令中提取的新数据;和输出,在所述输出上将所述已修改的数据提供给所述数据寄存器电路的输入。
附加实施例7.根据附加实施例5中所述的集成电路,其中所述数据寄存器电路包括:第一数据寄存器,其可操作用于存储所述读取的数据;第二数据寄存器,其可操作用于接收来自所述第一数据寄存器的所述读取的数据,其中所述控制电路被配置为修改所述读取的数据,以在所述第二数据寄存器中产生所述已修改的数据;和第三数据寄存器,其可操作用于接收来自所述第二数据寄存器的所述已修改的数据,其中所述控制电路被配置为将来自所述第三数据寄存器的所述已修改的数据加载到所述存储器元件阵列中的所述选定行的存储器元件中,并且其中所述可配置逻辑电路进一步可操作用于实现选自如下群组中的逻辑功能:逻辑与功能,逻辑或功能,逻辑异或功能,逻辑与非功能,逻辑或非功能和逻辑异或非功能。
附加实施例8.根据附加实施例1中所述的集成电路,其中所述控制电路进一步可操作用于接收至少一个已压缩的局部重配置指令,并且其中所述控制电路包括解压缩电路,所述解压缩电路可操作用于解压缩所述至少一个已压缩的局部重配置指令。
附加实施例9.根据附加实施例1中所述的集成电路,其中所述控制电路进一步可操作用于接收至少一个已加密的局部重配置指令,并且其中所述控制电路包括解密电路,所述解密电路可操作用于解密所述至少一个已加密的局部重配置指令。
附加实施例10.一种操作局部重配置电路的方法,所述局部重配置电路耦合到存储器元件阵列,其中所述局部重配置电路和所述存储器元件阵列形成在集成电路上,并且其中所述局部重配置电路包括控制电路、地址寄存器和数据寄存器电路,所述方法包括:用所述控制电路接收多个局部重配置指令,其中所述多个局部重配置指令中的给定的局部重配置指令包括局部重配置存储器数据;从所述存储器元件阵列中的选定行的存储器元件中读取数据,并且将读取的数据加载到所述数据寄存器电路中;至少部分基于所述读取的数据和所述局部重配置存储器数据,对存储于所述数据寄存器电路中的所述读取的数据进行修改;和将已修改的数据加载到所述选定行的存储器元件中。
附加实施例11.根据附加实施例10中所述的方法,其中将所述读取的数据加载到所述数据寄存器电路中包括将所述读取的数据加载到所述数据寄存器电路中的第一数据寄存器,所述方法进一步包括:将来自所述第一数据寄存器的所述读取的数据加载到所述数据寄存器电路中的第二数据寄存器。
附加实施例12.根据附加实施例11中所述的方法,其中所述控制电路包括可配置逻辑电路,并且其中对存储于所述数据寄存器电路中的所述读取的数据进行修改包括:用所述可配置逻辑电路产生所述已修改的数据;和将由所述逻辑电路产生的所述已修改的数据串行移位到所述第二数据寄存器中。
附加实施例13.根据附加实施例12中所述的方法,其中所述可配置逻辑电路具有第一输入和第二输入,所述方法进一步包括:用所述可配置逻辑电路的所述第一输入,串行接收来自所述第二数据寄存器的输出的所述读取的数据;和用所述可配置逻辑电路的所述第二输入,串行接收所述局部重配置存储器数据。
附加实施例14.根据附加实施例13中所述的方法,其中产生所述已修改的数据包括:利用所述可配置逻辑电路实现选自以下群组中的逻辑功能:逻辑与功能,逻辑或功能,逻辑异或功能,逻辑与非功能,逻辑或非功能和逻辑异或非功能;和通过对接收到的读取的数据和接收到的局部重配置存储器数据执行选定的逻辑功能,以此来产生所述已修改的数据。
附加实施例15.根据附加实施例10中所述的方法,其中所述局部重配置电路进一步包括主电路,并且其中接收所述多个局部重配置指令包括:用所述控制电路接收来自所述主电路的所述多个局部重配置指令。
附加实施例16.根据附加实施例10中所述的方法,其中所述控制电路包括具有输出的错误检验电路,所述方法进一步包括:用所述错误检验电路,确定所述给定的局部重配置指令是否包括错误;和响应于确定所述给定的局部重配置指令是错误的,在所述错误检验电路的所述输出上使错误信号有效。
附加实施例17.根据附加实施例10中所述的方法,其中所述多个局部重配置指令包括一系列已加密的指令,并且其中所述控制电路包括解密电路,所述方法进一步包括:用所述解密电路解密所述一系列已加密的指令。
附加实施例18.根据附加实施例10中所述的方法,其中所述多个局部重配置指令包括一系列已压缩的指令,并且其中所述控制电路包括解压缩电路,所述方法进一步包括:用所述解压缩电路解压缩所述一系列已压缩的指令。
附加实施例19.一种操作局部重配置电路的方法,所述局部重配置电路耦合到存储器元件阵列并且包括控制电路,其中所述局部重配置电路和所述存储器元件阵列形成在集成电路上,所述方法包括:用所述控制电路接收一系列局部重配置指令;用所述控制电路中的错误检验电路,确定所述一系列局部重配置指令中的给定的局部重配置指令是否包含错误;和响应于确定所述给定的局部重配置指令是错误的,阻止所述给定的局部重配置指令在所述存储器元件阵列上执行。
附加实施例20.根据附加实施例19中所述的方法,其中所述局部重配置电路进一步包括主电路,所述方法进一步包括:用所述主电路提供所述一系列局部重配置指令给所述控制电路;和响应于确定所述给定的局部重配置指令是错误的,利用所述控制电路来提供有效的错误信号给所述主电路。
附加实施例21.根据附加实施例20中所述的方法,其中所述一系列局部重配置指令包括已加密且已压缩的局部重配置指令,并且其中所述控制电路包括解密电路和解压缩电路,所述方法进一步包括:用所述解密电路解密所述局部重配置指令;和用所述解压缩电路解压缩所述局部重配置指令。
上述仅仅是说明本发明的原理,并且在不背离本发明的范围和精神的情况下,本领域技术人员可以进行各种修改。上述实施例可以单独实施,或者以任意组合方式实施。

Claims (21)

1.一种集成电路,包括:
存储器元件阵列;和
局部重配置电路,其耦合到所述存储器元件阵列,其中所述局部重配置电路包括:
控制电路;和
数据寄存器电路,其可操作用于存储从所述存储器元件阵列中的选定行的存储器元件中读取的数据,并且修改读取的数据以产生已修改的数据,其中所述控制电路可操作用于将来自所述数据寄存器电路的所述已修改的数据加载到所述存储器元件阵列中的所述选定行的存储器元件中。
2.根据权利要求1中所述的集成电路,其中所述局部重配置电路进一步包括:
地址寄存器,其由所述控制电路控制,其中所述地址寄存器可操作用于产生对应于所述选定行的存储器元件的有效的地址信号。
3.根据权利要求1中所述的集成电路,其中所述局部重配置电路进一步包括:
主电路,其可操作用于提供多个局部重配置指令给所述控制电路。
4.根据权利要求1中所述的集成电路,其中所述控制电路进一步可操作用于接收多个局部重配置指令,并且其中所述控制电路包括错误检验电路,所述错误检验电路可操作用于确定所述多个局部重配置指令中的每个指令是否包括错误并且校正所述局部重配置指令中的所述错误。
5.根据权利要求1中所述的集成电路,其中所述控制电路进一步可操作用于接收多个局部重配置指令,并且其中所述控制电路包括可配置逻辑电路,所述可配置逻辑电路可操作用于基于所述多个局部重配置指令中的给定的局部重配置指令产生所述已修改的数据。
6.根据权利要求5中所述的集成电路,其中所述可配置逻辑电路包括:第一输入,其可操作用于接收来自所述数据寄存器电路的输出的所述读取的数据;第二输入,其可操作用于接收从所述给定的局部重配置指令中提取的新数据;和输出,在所述输出上将所述已修改的数据提供给所述数据寄存器电路的输入。
7.根据权利要求5中所述的集成电路,其中所述数据寄存器电路包括:
第一数据寄存器,其可操作用于存储所述读取的数据;
第二数据寄存器,其可操作用于接收来自所述第一数据寄存器的所述读取的数据,其中所述控制电路被配置为修改所述读取的数据,以在所述第二数据寄存器中产生所述已修改的数据;和
第三数据寄存器,其可操作用于接收来自所述第二数据寄存器的所述已修改的数据,其中所述控制电路被配置为将来自所述第三数据寄存器的所述已修改的数据加载到所述存储器元件阵列中的所述选定行的存储器元件中,并且其中所述可配置逻辑电路进一步可操作用于实现选自如下群组中的逻辑功能:逻辑与功能,逻辑或功能,逻辑异或功能,逻辑与非功能,逻辑或非功能和逻辑异或非功能。
8.根据权利要求1中所述的集成电路,其中所述控制电路进一步可操作用于接收至少一个已压缩的局部重配置指令,并且其中所述控制电路包括解压缩电路,所述解压缩电路可操作用于解压缩所述至少一个已压缩的局部重配置指令。
9.根据权利要求1中所述的集成电路,其中所述控制电路进一步可操作用于接收至少一个已加密的局部重配置指令,并且其中所述控制电路包括解密电路,所述解密电路可操作用于解密所述至少一个已加密的局部重配置指令。
10.一种操作局部重配置电路的方法,所述局部重配置电路耦合到存储器元件阵列,其中所述局部重配置电路和所述存储器元件阵列形成在集成电路上,并且其中所述局部重配置电路包括控制电路、地址寄存器和数据寄存器电路,所述方法包括:
用所述控制电路接收多个局部重配置指令,其中所述多个局部重配置指令中的给定的局部重配置指令包括局部重配置存储器数据;
从所述存储器元件阵列中的选定行的存储器元件中读取数据,并且将读取的数据加载到所述数据寄存器电路中;
至少部分基于所述读取的数据和所述局部重配置存储器数据,对存储于所述数据寄存器电路中的所述读取的数据进行修改;和
将已修改的数据加载到所述选定行的存储器元件中。
11.根据权利要求10中所述的方法,其中将所述读取的数据加载到所述数据寄存器电路中包括将所述读取的数据加载到所述数据寄存器电路中的第一数据寄存器,所述方法进一步包括:
将来自所述第一数据寄存器的所述读取的数据加载到所述数据寄存器电路中的第二数据寄存器。
12.根据权利要求11中所述的方法,其中所述控制电路包括可配置逻辑电路,并且其中对存储于所述数据寄存器电路中的所述读取的数据进行修改包括:
用所述可配置逻辑电路产生所述已修改的数据;和
将由所述逻辑电路产生的所述已修改的数据串行移位到所述第二数据寄存器中。
13.根据权利要求12中所述的方法,其中所述可配置逻辑电路具有第一输入和第二输入,所述方法进一步包括:
用所述可配置逻辑电路的所述第一输入,串行接收来自所述第二数据寄存器的输出的所述读取的数据;和
用所述可配置逻辑电路的所述第二输入,串行接收所述局部重配置存储器数据。
14.根据权利要求13中所述的方法,其中产生所述已修改的数据包括:
利用所述可配置逻辑电路实现选自以下群组中的逻辑功能:逻辑与功能,逻辑或功能,逻辑异或功能,逻辑与非功能,逻辑或非功能和逻辑异或非功能;和
通过对接收到的读取的数据和接收到的局部重配置存储器数据执行选定的逻辑功能,以此来产生所述已修改的数据。
15.根据权利要求10中所述的方法,其中所述局部重配置电路进一步包括主电路,并且其中接收所述多个局部重配置指令包括:
用所述控制电路接收来自所述主电路的所述多个局部重配置指令。
16.根据权利要求10中所述的方法,其中所述控制电路包括具有输出的错误检验电路,所述方法进一步包括:
用所述错误检验电路,确定所述给定的局部重配置指令是否包括错误;和
响应于确定所述给定的局部重配置指令是错误的,在所述错误检验电路的所述输出上使错误信号有效。
17.根据权利要求10中所述的方法,其中所述多个局部重配置指令包括一系列已加密的指令,并且其中所述控制电路包括解密电路,所述方法进一步包括:
用所述解密电路解密所述一系列已加密的指令。
18.根据权利要求10中所述的方法,其中所述多个局部重配置指令包括一系列已压缩的指令,并且其中所述控制电路包括解压缩电路,所述方法进一步包括:
用所述解压缩电路解压缩所述一系列已压缩的指令。
19.一种操作局部重配置电路的方法,所述局部重配置电路耦合到存储器元件阵列并且包括控制电路,其中所述局部重配置电路和所述存储器元件阵列形成在集成电路上,所述方法包括:
用所述控制电路接收一系列局部重配置指令;
用所述控制电路中的错误检验电路,确定所述一系列局部重配置指令中的给定的局部重配置指令是否包含错误;和
响应于确定所述给定的局部重配置指令是错误的,阻止所述给定的局部重配置指令在所述存储器元件阵列上执行。
20.根据权利要求19中所述的方法,其中所述局部重配置电路进一步包括主电路,所述方法进一步包括:
用所述主电路提供所述一系列局部重配置指令给所述控制电路;和
响应于确定所述给定的局部重配置指令是错误的,利用所述控制电路来提供有效的错误信号给所述主电路。
21.根据权利要求20中所述的方法,其中所述一系列局部重配置指令包括已加密且已压缩的局部重配置指令,并且其中所述控制电路包括解密电路和解压缩电路,所述方法进一步包括:
用所述解密电路解密所述局部重配置指令;和
用所述解压缩电路解压缩所述局部重配置指令。
CN201210559868.6A 2011-12-21 2012-12-20 局部重配置电路 Active CN103177152B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161578864P 2011-12-21 2011-12-21
US61/578,864 2011-12-21
US13/481,506 US8797061B2 (en) 2011-12-21 2012-05-25 Partial reconfiguration circuitry
US13/481,506 2012-05-25

Publications (2)

Publication Number Publication Date
CN103177152A true CN103177152A (zh) 2013-06-26
CN103177152B CN103177152B (zh) 2017-09-29

Family

ID=47469768

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210559868.6A Active CN103177152B (zh) 2011-12-21 2012-12-20 局部重配置电路

Country Status (3)

Country Link
US (1) US8797061B2 (zh)
EP (1) EP2608412A1 (zh)
CN (1) CN103177152B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106663050A (zh) * 2014-07-28 2017-05-10 三菱电机株式会社 差分数据生成系统、数据更新系统以及差分数据生成方法
CN108090022A (zh) * 2016-11-22 2018-05-29 英特尔公司 有用于存储配置数据的堆叠存储器管芯的可编程集成电路
CN108563871A (zh) * 2015-05-28 2018-09-21 阿尔特拉公司 用于配置和重新配置部分重新配置区域的方法和装置
CN110178310A (zh) * 2016-12-09 2019-08-27 诺基亚美国公司 针对可重构集成电路的控制系统
CN113628644A (zh) * 2020-05-07 2021-11-09 力晶积成电子制造股份有限公司 半导体存储器及其部分写入方法
CN114579189A (zh) * 2022-05-05 2022-06-03 深圳云豹智能有限公司 单核以及多核访问寄存器数据的方法、处理器和系统

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9577643B1 (en) * 2013-11-26 2017-02-21 Altera Corporation Secure partial reconfiguration regions
US9203408B1 (en) 2014-04-04 2015-12-01 Altera Corporation Reconfigurable logic analyzer circuitry
US9299396B1 (en) 2014-07-15 2016-03-29 Altera Corporation Programmable integrated circuits with in-operation reconfiguration capability
US9576095B1 (en) 2014-07-30 2017-02-21 Altera Corporation Partial reconfiguration compatibility detection in an integrated circuit device
CN104575425B (zh) * 2015-01-09 2017-04-12 深圳市华星光电技术有限公司 扫描驱动电路及其与非门逻辑运算电路
US9584130B1 (en) * 2016-01-11 2017-02-28 Altera Corporation Partial reconfiguration control interface for integrated circuits
US9590634B1 (en) * 2016-06-13 2017-03-07 Baysand Inc. Metal configurable hybrid memory
US10606779B2 (en) * 2016-09-16 2020-03-31 Altera Corporation Methods and apparatus for performing partial reconfiguration in a pipeline-based network topology
US10642630B1 (en) * 2018-08-27 2020-05-05 Liquid Instruments Pty. Ltd. Process of programming field programmable gate arrays using partial reconfiguration

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3824564A (en) * 1973-07-19 1974-07-16 Sperry Rand Corp Integrated threshold mnos memory with decoder and operating sequence
US6255848B1 (en) * 1999-04-05 2001-07-03 Xilinx, Inc. Method and structure for reading, modifying and writing selected configuration memory cells of an FPGA
US20050242836A1 (en) * 2004-04-30 2005-11-03 Xilinx, Inc. System monitor in a programmable logic device
US7227378B2 (en) * 2002-12-13 2007-06-05 Xilinx, Inc. Reconfiguration of a programmable logic device using internal control
US7328335B1 (en) * 2004-10-01 2008-02-05 Xilinx, Inc. Bootable programmable logic device for internal decoding of encoded configuration data

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6738962B1 (en) * 2000-06-12 2004-05-18 Altera Corporation Configuration and/or reconfiguration of integrated circuit devices that include programmable logic and microprocessor circuitry
US7162644B1 (en) * 2002-03-29 2007-01-09 Xilinx, Inc. Methods and circuits for protecting proprietary configuration data for programmable logic devices
US6810514B1 (en) * 2002-07-03 2004-10-26 Xilinx, Inc. Controller arrangement for partial reconfiguration of a programmable logic device
US7634713B1 (en) 2006-05-16 2009-12-15 Altera Corporation Error detection and location circuitry for configuration random-access memory
US8390325B2 (en) * 2006-06-21 2013-03-05 Element Cxi, Llc Reconfigurable integrated circuit architecture with on-chip configuration and reconfiguration
US7906984B1 (en) * 2008-02-26 2011-03-15 The United States Of America As Represented By The Secretary Of The Air Force Relocatable field programmable gate array bitstreams for fault tolerance
US7973556B1 (en) * 2009-03-05 2011-07-05 Xilinx, Inc. System and method for using reconfiguration ports for power management in integrated circuits
US8415974B1 (en) * 2011-03-09 2013-04-09 Xilinx, Inc. Methods and circuits enabling dynamic reconfiguration

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3824564A (en) * 1973-07-19 1974-07-16 Sperry Rand Corp Integrated threshold mnos memory with decoder and operating sequence
US6255848B1 (en) * 1999-04-05 2001-07-03 Xilinx, Inc. Method and structure for reading, modifying and writing selected configuration memory cells of an FPGA
US7227378B2 (en) * 2002-12-13 2007-06-05 Xilinx, Inc. Reconfiguration of a programmable logic device using internal control
US20050242836A1 (en) * 2004-04-30 2005-11-03 Xilinx, Inc. System monitor in a programmable logic device
US7328335B1 (en) * 2004-10-01 2008-02-05 Xilinx, Inc. Bootable programmable logic device for internal decoding of encoded configuration data

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106663050A (zh) * 2014-07-28 2017-05-10 三菱电机株式会社 差分数据生成系统、数据更新系统以及差分数据生成方法
US9900026B2 (en) 2014-07-28 2018-02-20 Mitsubishi Electric Corporation Differential data creating apparatus, data updating apparatus, and differential data creating method
CN106663050B (zh) * 2014-07-28 2018-04-13 三菱电机株式会社 差分数据生成系统、数据更新系统以及差分数据生成方法
CN108563871A (zh) * 2015-05-28 2018-09-21 阿尔特拉公司 用于配置和重新配置部分重新配置区域的方法和装置
CN108563871B (zh) * 2015-05-28 2022-05-27 阿尔特拉公司 用于配置和重新配置部分重新配置区域的方法和装置
CN108090022A (zh) * 2016-11-22 2018-05-29 英特尔公司 有用于存储配置数据的堆叠存储器管芯的可编程集成电路
CN108090022B (zh) * 2016-11-22 2024-02-02 英特尔公司 有用于存储配置数据的堆叠存储器管芯的可编程集成电路
CN110178310A (zh) * 2016-12-09 2019-08-27 诺基亚美国公司 针对可重构集成电路的控制系统
CN113628644A (zh) * 2020-05-07 2021-11-09 力晶积成电子制造股份有限公司 半导体存储器及其部分写入方法
CN113628644B (zh) * 2020-05-07 2024-01-23 力晶积成电子制造股份有限公司 半导体存储器及其部分写入方法
CN114579189A (zh) * 2022-05-05 2022-06-03 深圳云豹智能有限公司 单核以及多核访问寄存器数据的方法、处理器和系统

Also Published As

Publication number Publication date
US20130162290A1 (en) 2013-06-27
CN103177152B (zh) 2017-09-29
EP2608412A1 (en) 2013-06-26
US8797061B2 (en) 2014-08-05

Similar Documents

Publication Publication Date Title
CN103177152A (zh) 局部重配置电路
JP4213585B2 (ja) Fpga集積回路におけるストリームファイルのための暗号化方法
US11194519B2 (en) Results processing circuits and methods associated with computational memory cells
CA2428031C (en) Programmable logic device with decryption algorithm and decryption key
US6981153B1 (en) Programmable logic device with method of preventing readback
US7058177B1 (en) Partially encrypted bitstream method
US6441641B1 (en) Programmable logic device with partial battery backup
CN101663816B (zh) 使用自旋转移力矩磁阻装置的软件可编程逻辑
EP3087564B1 (en) Apparatuses, memories, and methods for address decoding and selecting an access line
US6957340B1 (en) Encryption key for multi-key encryption in programmable logic device
CN102651240A (zh) 检错和纠错电路
US7868646B1 (en) Soft error upset hardened integrated circuit systems and methods
JP2007179733A (ja) 不揮発性強誘電体メモリ装置のコード化セル及びその駆動方法
US8436649B2 (en) Semiconductor device, information processing apparatus, and method for configuring circuits of semiconductor device
JP2010170609A (ja) 不揮発性半導体記憶装置
Tian et al. A field programmable transistor array featuring single-cycle partial/full dynamic reconfiguration
CN105869674A (zh) 半导体装置的控制电路及其方法
CN103839577B (zh) 存储电路
US7545933B2 (en) Decryption circuit, encryption circuit, logic cell, and method of performing a dual-rail logic operation in single-rail logic environment
CN103559905A (zh) 具有主存储单元和需要预设操作的辅存储单元的半导体设备
KR101799905B1 (ko) 메모리를 이용한 물리적 복제 불가능 함수 보안 칩
JPH11339499A (ja) 出力ドライバを共有する並列ビットテスト回路とこれを用いた並列ビットテスト方法、及びその半導体メモリ装置
US20070230079A1 (en) Semiconductor device
Lee et al. Emergence of universal global behavior from reversible local transitions in asynchronous systems
JP4593346B2 (ja) 汎用論理モジュール及びそれを有する回路

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant