首页> 中国专利> 用于更新集成电路中的配置数据的电路和技术

用于更新集成电路中的配置数据的电路和技术

摘要

本发明涉及用于更新集成电路中的配置数据的电路和技术。一种操作集成电路的方法可以包括经由例如外围组件互连高速(PCIe)协议的输入输出协议接收更新请求。当接收所述更新请求时,将所述集成电路置于更新模式下。将状态信息存储在所述集成电路上的预定义寄存器中,并且随后可以更新所述集成电路上的配置数据。将断言的更新模式信号存储在所述集成电路上的状态寄存器中以表明所述集成电路处于所述更新模式下。所述配置数据可以包括核心配置部分和外围配置部分。当所述集成电路处于所述更新模式下时,仅更新所述核心配置,同时可以保存所述外围配置部分。

著录项

  • 公开/公告号CN104572554A

    专利类型发明专利

  • 公开/公告日2015-04-29

    原文格式PDF

  • 申请/专利权人 阿尔特拉公司;

    申请/专利号CN201410554735.9

  • 发明设计人 T·M·吕;T·L·宋;

    申请日2014-10-17

  • 分类号G06F13/40;

  • 代理机构北京纪凯知识产权代理有限公司;

  • 代理人赵蓉民

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-18 08:25:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-04-10

    授权

    授权

  • 2015-05-27

    实质审查的生效 IPC(主分类):G06F13/40 申请日:20141017

    实质审查的生效

  • 2015-04-29

    公开

    公开

说明书

本申请要求2013年10月21日申请的第14/058,935号美国专利申请案 的优先权,所述申请案在此以全文引用的方式并入本文中。

背景技术

例如现场可编程门阵列(FPGA)、复杂可编程逻辑装置(CPLD)以及 其类似装置的可编程集成电路装置可以用于实施多种功能。作为一个实 例,FPGA装置可以经配置以基于不同用户设计执行各种用户功能。

集成电路装置一般包括核心区域和外围区域。一个用户设计配置因此 可以被分成两个图像:核心配置图像和外围配置图像。核心配置图像用于 配置核心区域中的逻辑元件或逻辑块,而外围配置图像用于配置例如输入 输出寄存器、收发器块等的外围元件。

为了配置一个装置,电路设计者可以通过多种可用的输入输出协议 (例如,外围组件互连高速(PCIe)协议)将外围图像和核心图像加载到装 置上。通常,电路设计者可以在稍后阶段调节和更新设计(例如,以便满 足将来的应用需求),并且可以因此将经更新的核心配置图像加载到装置 上。

当经更新的核心配置图像被加载到装置上时,重置装置。当装置被重 置时,可能会丢失应用数据或状态信息。因此,一旦重置装置,即使尚未 更新外围配置图像,可以特定于应用的外围设置(例如,收发器校准信 息)也可能被重置或重写为默认设置。

这在本文所描述的实施例出现的此情形内。

发明内容

本发明提供了用于更新集成电路中的配置数据的电路和技术。本发明 的实施例包括使得在不丢失状态信息或专用设置的情况下允许更新集成电 路装置的配置的电路和技术。

应了解,本发明可以多种方式实施,例如程序、设备、系统或装置。 下文描述了本发明的几个创造性实施例。

操作集成电路的方法可以包括经由输入输出协议接收更新请求。作为 一个实例,集成电路可以在用户模式下操作并且当在用户模式下时可以经 由外围组件互连高速(PCIe)协议接收更新请求。当接收更新请求时,集 成电路被置于更新模式下。在更新集成电路上的配置数据之前,将状态信 息存储在集成电路中的预定义寄存器中。将断言的(asserted)更新模式信 号存储在集成电路上的状态寄存器中以表明集成电路已(或曾经)被置于 更新模式下。当集成电路处于更新模式下时,可以保留其配置数据的一部 分。

操作集成电路的方法可以包括当集成电路处于更新(或初始化)模式 下时将集成电路置于用户模式下。从状态寄存器检索到断言的状态信号。 集成电路可以包括用于存储状态信息的多种预定义寄存器。当已经从状态 寄存器中检索到断言的状态信号时,随后可以检索到存储在预定义寄存器 中的先前状态信息。随后将检索到的先前状态信息恢复到集成电路核心区 域中的核心寄存器中。

集成电路可以包括输入输出协议电路,所述输入输出协议电路从芯片 外元件接收配置数据。当集成电路在用户模式下操作时(例如,在正常操 作期间)可以接收配置数据。集成电路可以进一步包括专用状态寄存器和 多个预定义存储元件。专用状态寄存器用于基于接收到的配置数据存储断 言的状态信号,而预定义存储元件用于存储先前状态信息。集成电路的核 心区域中的控制器电路可以经调适以利用接收到的配置数据对集成电路的 至少一部分进行配置。

附图说明

图1为根据本发明的一个实施例的集成电路的简化框图。

图2示出了根据本发明的实施例的耦接到配置装置和主机系统的说明 性集成电路装置。

图3示出了根据本发明的实施例的说明性外围组件互连高速(PCIe) 电路,其具有用于存储状态信息的预定义寄存器和专用状态模式寄存器。

图4示出了根据本发明的实施例的用于更新集成电路中的配置数据的 说明性步骤。

图5示出了根据本发明的实施例的用于将先前状态信息和应用数据恢 复到集成电路中的说明性步骤。

具体实施方式

本文中所提供的实施例包括用以更新集成电路(IC)中的配置数据并 且在完成更新操作时使IC恢复到其先前已知状态的电路和技术。

然而,对于所属领域的技术人员将显而易见的是,可以在没有这些具 体细节中的一些或全部的情况下实践本示例性实施例。在其他情况下,并 未详细描述众所周知的操作以免不必要地混淆本实施例。

例如现场可编程门阵列(FPGA)装置的IC装置一般尤其包括存储器 模块、逻辑块、时钟生成电路和输入输出元件。图1(意图为说明性的且 非限制性的)示出了可以实施本发明的实施例的IC 100的简化框图。IC 100包括位于IC 100的外围区域处的核心逻辑区域115和输入输出元件 110。用于时钟生成和时钟同步的其他辅助电路,例如锁相回路(PLL) 125,可以位于外围区域中,与输入输出元件110相邻。

应注意,如IC 100的单个装置可以潜在地支持多个不同的接口,并且 每个单独的输入输出组110可以用不同的接口或协议(例如,高速串行接 口协议)支持不同的输入输出标准。信号可以通过输入输出元件110从核 心逻辑区域115(和IC 100上的其他逻辑块)传输到外部电路或可以连接 到IC 100的其他组件中。因此,从外部电路接收到的在输入输出元件110 处的信号可以从输入输出元件110路由到核心逻辑区域115或IC 100上的 其他逻辑块(未示出)。核心逻辑区域115随后可以基于接收到的信号执行 功能。

核心逻辑区域115可以填充有逻辑单元,所述逻辑单元除了电路以外 可以包括“逻辑元件”(LE)117或核心寄存器。LE 117可以进一步包括基 于查阅表的逻辑区域并且可以被分组为“逻辑阵列块”(LAB)。LE 117和 LE或LAB群组可以经配置以执行用户所需的逻辑功能。作为一个实例,核 心逻辑区域115可以进一步包括可以用来保持配置数据并且提供不同逻辑 信号的随机存取存储器(RAM)元件,例如静态随机存取存储器 (SRAM)单元、配置RAM(CRAM)位、查阅表RAM(LUTRAM)单 元。

加载到核心逻辑区域115中的配置存储器中的配置数据因此可以用于 产生控制信号,所述控制信号配置LE 117以及LE和LAB群组中的任一者 以执行所需逻辑功能。在一个已知布置中,用于配置IC装置100的配置数 据可以分成核心配置数据和外围配置数据。核心配置数据包括核心逻辑区 域115内的LE 117(或其他块)的配置信息,而外围配置数据包括IC 100 的外围区域中的电路或逻辑元件的配置设置(例如,输入输出元件110、时 钟校准设置等)。配置数据可以通过IC 100支持的不同协议加载到IC 100 中,所述协议例如,外围组件互连高速(PCIe)协议。因此,加载到IC 100中的配置数据可以按需要进行更新(例如,可以重写例如核心配置数 据的配置数据的一部分,同时可以保留例如外围配置数据的另一部分)。

图2示出了根据本发明的实施例的耦接到配置装置205和主机系统210 的说明性IC装置200。配置数据一般经由配置装置205加载到IC装置200 上。或者,代替使用例如配置装置205的外部闪存或存储器模块,IC装置 200可以使用主机系统210进行配置。

在一个实施例中,主机系统210可以是经由链路205耦接到IC 200的 计算机系统的中央处理单元(CPU)。作为一个实例,链路205可以是 PCIe连接器并且输入输出电路212适合PCIe协议。配置数据可以经由链路 205从主机系统210加载到IC 200。在被传输到控制器电路215之前,配置 数据在输入输出电路212处接收,控制器电路215随后利用接收到的配置 数据对核心区域218进行配置。应注意,在本文中未详细描述更新核心区 域218中的配置信息(例如,重置核心寄存器等)以免不必要地混淆本发 明时,控制器电路215执行众所周知的操作。

在一个实施例中,主机系统210可以将不同的配置图像加载到IC 200 上。举例而言,如上文所解释,配置数据可以分成核心配置数据和外围配 置数据。核心配置数据可以用来配置或重置核心区域218中的核心寄存 器,而外围配置数据可以用来配置或重置外围区域214A和214B中的电 路。

一般来讲,在最先的实例中,IC 200被置于“初始化模式”下,以便 配置其核心区域218以及外围区域214A和214B两者。当IC 200经完全配 置时,其可以进入“用户模式”并且因此可以基于其配置执行用户指定的 功能。基于实际用户应用,可以按需要调节和调谐外围区域214A和214B 中的电路。举例而言,IC 200中的收发器信道可以经对准或调适至特定的 速度以满足不同的应用需求。

在一个实施例中,当在IC 200已经被初始化之后的稍后时间里经由主 机系统210更新核心区域218中的配置时,不重置外围区域214A和214B 中的此种专用设置。作为一个实例,输入输出电路212可以包括PCIe电 路,所述PCIe电路包括预定义数据或可以在IC 200更新时用来存储状态 信息或应用数据的状态寄存器。一旦更新操作完成(更新操作的具体细节 将参考图3到图5如下解释),所存储的状态信息因此可以被恢复到IC 200 中。

图3示出了根据本发明的实施例的说明性PCIe电路,其具有用于存储 状态信息的预定义寄存器和专用状态模式寄存器。PCIe电路包括PCIe处 理层325和PCIe底层320。应注意,PCIe处理层325管理核心区域330与 PCIe底层320之间的通信。作为完整的PCIe协议栈的一部分,PCIe底层 320可以包括数据链路层和物理层,在图3的实施例中未示出所述数据链 路层和所述物理层的细节以免混淆本发明。

在一个实施例中,图3中示出的PCIe电路可以是IC的一部分(例 如,图2中的IC 200的输入输出电路212的一部分)。当IC从物理链路 (例如,图2的链路205)接收数据包时,数据包从PCIe底层320传输到 PCIe处理层325。缓冲器302接收数据包并且将数据包传输到多路分用电 路303。根据特定数据包中所含有的数据的类型,多路分用电路303可以 选择性地将数据包传输到核心区域330或PCIe处理层325中的配置空间寄 存器(CSR)310。举例而言,如果数据包含有在IC的正常操作期间(例 如,在用户模式期间)接收到的规则用户数据信号,那么数据包可以被传 输到核心区域330或用户应用层(未示出)以供进一步处理。

如果数据包含有配置数据,那么可以将其路由到CSR 310。在图3的 实施例中,CSR 310包括模式寄存器312、数据/状态寄存器314以及控制/ 状态寄存器316。模式寄存器312可以是用于存储IC的配置模式(例如, 更新模式、初始化模式等)的专用寄存器,数据/状态寄存器314可以是在 更新IC的配置时用于存储状态信息或专用数据的预定义寄存器群组,并且 控制/状态寄存器316可以是用于监测IC装置上的配置操作的状态的寄存 器集合。

作为一个实例,IC可以经由PCIe物理链路(例如,PCIe电缆、PCIe 连接器等)从外部组件接收更新指令。在更新核心区域330中加载的现有 配置数据345之前,状态信息和应用数据可以经由本地管理接口(LMI) 电路308从核心区域330传输到预定义数据/状态寄存器314中,并且可以 将断言的更新状态信号存储在模式寄存器312中。应注意,LMI电路308 允许于核心区域330中的用户应用的入口能够存储数据并且访问从CSR 310中的寄存器产生的状态和数据。在一个实施例中,核心区域330可以包 括压缩电路348(和/或加密电路)以在经由LMI 308将经压缩(和/或经加 密)的数据传输到数据/状态信息寄存器314之前压缩(和/或加密)应用 数据或状态信息。

在将状态信息和相关应用数据传输到数据/状态寄存器314之后,可以 更新配置数据345。为了配置IC或更新配置数据345,接收到的经更新的 配置信息可以经由控制电路305从CSR 310传输到核心区域330中的配置 控制器电路340。应注意,配置空间寄存器310中的控制/状态寄存器316 在配置操作期间可以传输并且接收控制和状态信号。配置控制器340可以 用经更新的配置更新核心区域330中加载的配置数据345。为了简洁起 见,本文中未描述IC装置的配置的具体细节。

在更新配置数据345之后,可以将存储在数据/状态寄存器314中的先 前状态信息恢复到核心区域330中。在一个实施例中,在更新操作之后, 访问模式寄存器312以判定当前配置模式。如果断言更新状态模式信号, 那么随后将先前状态信息恢复到核心区域330中。否则的话,如果断言初 始化模式信号或解除断言更新状态模式信号,那么IC的外围配置被更新并 且外围区域(图3中未示出)的设置被重置。

取决于操作模式,多路复用电路306经由PCIe底层320选择性地将信 号从核心区域330或CSR 310传输到IC外。举例而言,如果IC处于用户 模式下,那么多路复用电路306将用户数据包从核心区域330传输到IC 外。如果IC处于配置初始化或更新模式下,那么多路复用电路306可以将 传输控制或状态信号从CSR 310传输到IC外。

图4示出了根据本发明的实施例的用于更新IC中的配置数据的说明性 步骤。在步骤410处,IC接收输入的更新操作的信号。应注意,IC已经可 以进行配置和初始化。因此,当在用户模式下操作时,IC可以接收输入的 更新操作信号。举例而言,IC可以接收含有配置更新请求的数据包。当接 收到此种请求时,在步骤420处,将IC置于更新模式下(或从用户模式切 换到更新模式)。在步骤430处,将应用数据和状态信息存储在预定义状态 寄存器中。如图3中所示,预定义状态寄存器可以是PCIe处理层325中的 CSR 310的一部分。

在步骤440处,更新IC的核心区域中的配置数据。如上文所解释,在 更新操作期间不更新IC的外围区域中的设置和配置。在步骤450处,将断 言的更新模式信号存储在专用状态寄存器(例如,图3的模式寄存器312) 中。在步骤460处,当完成更新操作时,可以使IC回到用户模式下。

图5示出了根据本发明的实施例的用于将先前状态信息和应用数据恢 复到IC中的说明性步骤。在步骤510处,检查存储在专用状态寄存器中的 模式信号。在一个实施例中,当例如图4中所描述的更新操作开始时,专 用状态寄存器可以存储断言的更新模式信号。在步骤520处,判定IC的当 前模式。如果IC不处于更新模式下(例如,IC处于初始化模式下),那么 在步骤525处重置并且初始化IC的外围配置。如果IC处于更新模式下 (例如,当从专用状态寄存器中检索断言的更新模式信号时),那么在步骤 530处检索存储在预定义状态寄存器中的数据和状态信息。在步骤540 处,将检索到的数据和状态信息恢复到IC中。

在这一阶段,IC可能已经恢复到其先前已知状态并且可以继续从该特 定状态操作。应了解,即使图4和图5中示出了特定的步骤,也可以视需 要省略图4和图5中示出的方法中的某些步骤。或者,在此情形中可以包 括额外的步骤(例如,在将数据和状态信息存储在状态寄存器中之前对其 进行加密或压缩等)。

到目前为止,相对于可编程逻辑电路描述实施例。本文中所描述的方 法和设备可以并入到任何适合的电路中。举例而言,所述方法和设备还可 以并入到多种类型的装置中,例如微处理器或其他集成电路。示例性集成 电路包括(仅举几例)可编程阵列逻辑(PAL)、可编程逻辑阵列(PLA)、 现场可编程逻辑阵列(FPLA)、电可编程逻辑装置(EPLD)、电可擦除可编 程逻辑装置(EEPLD)、逻辑单元阵列(LCA)、现场可编程门阵列 (FPGA)、专用标准产品(ASSP),专用集成电路(ASIC)。

本文中所描述的可编程逻辑装置可以是包括以下项中的一或多个的数 据处理系统的一部分:组件;处理器、存储器、I/O电路;以及外围装 置。数据处理系统可以用于许多应用中,例如计算机联网、数据联网、仪 表化、视频处理、数字信号处理或需要使用可编程或可再编程逻辑的优点 的任何其他适合的应用。可编程逻辑装置可以用来执行多种不同的逻辑功 能。举例而言,可以将可编程逻辑装置配置为与系统处理器协同工作的处 理器或控制器。可编程逻辑装置还可以用作仲裁器,用于仲裁对数据处理 系统中的共享资源的访问。在又一实例中,可以将可编程逻辑装置配置为 处理器与系统中的其他组件中的一个之间的接口。在一个实施例中,可编 程逻辑装置可以是受让方所拥有的装置群中的一个。

虽然以特定的顺序描述所述方法操作,但应理解,可以在所描述的操 作之间执行其他操作,可以调节所描述的操作使得它们在略微不同的时间 发生,或者可以使所描述的操作分布在一个系统中,所述系统允许在与处 理相关联的各个间隔处发生处理操作,只要以所需方式执行叠加操作的处 理。

补充实施例:

补充实施例1。一种操作集成电路的方法,所述方法包含:经由输入 输出协议在所述集成电路处接收更新请求;响应于接收所述更新请求,将 所述集成电路置于更新模式下;将状态信息存储在多个预定义寄存器中; 在存储所述状态信息之后,更新所述集成电路的配置数据;以及将断言的 更新模式信号存储在所述集成电路上的状态寄存器中。

补充实施例2。根据补充实施例1所述的方法,其中所述输入输出协 议包含外围组件互连高速(PCIe)协议,所述协议包括多个配置空间寄存 器(CSR),并且其中所述接收所述更新请求包含:经由所述PCIe协议接 收数据包,其中所述数据包包含包头;基于所述包头识别所述数据包中的 信息的类型;以及响应于识别所述数据包中的配置数据,将所述数据包传 输到多个CSR中。

补充实施例3。根据补充实施例2所述的方法,其中所述多个配置空 间寄存器(CSR)包括所述状态寄存器和所述多个预定义寄存器,所述方 法进一步包含:将从所述集成电路的核心区域产生的用户数据存储到所述 多个预定义寄存器中。

补充实施例4。根据补充实施例1所述的方法,其中在将所述集成电 路置于所述更新模式下之前,将所述状态信息存储在所述多个预定义寄存 器中,所述方法进一步包含:将所述集成电路置于用户模式下;从所述状 态寄存器检索所述断言的更新模式信号;以及响应于所述断言的更新模式 信号,恢复存储在所述多个预定义寄存器中的所述状态信息。

补充实施例5。根据补充实施例4所述的方法,其中当所述集成电路 处于所述用户模式下时接收所述更新请求。

补充实施例6。根据补充实施例1所述的方法,其进一步包含:在将 所述状态信息存储在所述多个预定义寄存器中之前,使用压缩电路压缩所 述状态信息。

补充实施例7。根据补充实施例1所述的方法,其中所述配置数据包 含核心配置数据和外围配置数据,并且其中更新所述集成电路的所述配置 数据包含:仅更新所述核心配置数据,同时保存所述外围配置数据。

补充实施例8。一种操作集成电路的方法,所述方法包含:当所述集 成电路处于第一模式下时,将所述集成电路置于不同于所述第一模式的第 二模式下;检索存储在状态寄存器中的断言的状态信号;响应于所述断言 的状态信号,检索存储在多个预定义寄存器中的先前状态信息;以及将所 述先前状态信息恢复到所述集成电路的核心区域中的多个寄存器中。

补充实施例9。根据补充实施例8所述的方法,其中所述第一模式包 含更新模式,并且其中所述第二模式包含用户模式,所述方法进一步包 含:当所述集成电路处于所述用户模式下时,经由输入输出协议在所述集 成电路处接收更新请求;响应于接收所述更新请求,将所述集成电路置于 所述更新模式下;以及在所述存储所述先前状态信息之后更新所述集成电 路的配置数据。

补充实施例10。根据补充实施例9所述的方法,其进一步包含:在将 所述集成电路置于所述更新模式下之前,将所述断言的状态信号存储在所 述状态寄存器中。

补充实施例11。根据补充实施例9所述的方法,其进一步包含:在更 新所述配置数据之前,将所述先前状态信息存储在所述多个预定义寄存器 中。

补充实施例12。根据补充实施例11所述的方法,其中所述集成电路包 含外围组件互连高速(PCIe)电路,其中所述多个预定义寄存器包含来自 所述PCIe电路中的多个配置空间寄存器(CSR)的至少一个数据保留寄存 器,并且其中将所述先前状态信息存储在所述多个预定义寄存器中包含: 将从所述集成电路的所述核心区域产生的用户数据存储到所述至少一个数 据保留寄存器中。

补充实施例13。根据补充实施例12所述的方法,其中所述集成电路包 含经调适以与所述核心区域和所述PCIe电路中的所述多个CSR通信的接 口电路,并且其中将所述先前状态信息恢复到所述集成电路的所述核心区 域中的所述多个寄存器中包含:使用所述接口电路访问所述至少一个数据 保留寄存器;以及检索存储在所述至少一个数据保留寄存器中的所述用户 数据。

补充实施例14。一种集成电路,其包含:输入输出协议电路,当所述 集成电路处于第一操作模式下时,所述输入输出协议电路从芯片外元件接 收配置数据;专用状态寄存器,所述专用状态寄存器至少部分基于接收到 的所述配置数据存储断言的状态信号;多个预定义存储元件,所述多个预 定义存储元件基于所述断言的状态信号存储先前状态信息;以及在所述集 成电路的核心区域中的控制器电路,所述控制器电路经调适以利用接收到 的所述配置数据对所述集成电路的至少一部分进行配置,并且当所述集成 电路被置于不同于所述第一操作模式的第二操作模式下时,所述控制器电 路进一步经调适以将所述先前状态信息从所述核心区域传递到所述多个预 定义存储元件中。

补充实施例15。根据补充实施例14所述的集成电路,其中所述输入输 出协议电路包含外围组件互连高速(PCIe)协议电路,并且其中所述PCIe 协议电路包括多个配置空间寄存器,所述多个配置空间寄存器包括所述专 用状态寄存器。

补充实施例16。根据补充实施例15所述的集成电路,其中所述多个配 置空间寄存器包含所述多个预定义存储元件,所述集成电路进一步包含: 接口电路,所述接口电路经调适以与所述控制器电路和所述多个配置空间 寄存器通信,其中经由所述接口电路将所述先前状态信息从所述控制器电 路传递到所述多个预定义存储元件。

补充实施例17。根据补充实施例14所述的集成电路,其中所述第一模 式包含用户模式,其中所述第二模式包含更新模式,并且其中所述断言的 状态信号包含断言的更新模式信号。

补充实施例18。根据补充实施例17所述的集成电路,其中所述控制器 电路经调适以基于所述断言的更新模式信号将所述先前状态信息从所述多 个预定义存储元件恢复到所述核心区域中。

补充实施例19。根据补充实施例17的所述集成电路,其中所述核心区 域包括核心配置数据,所述集成电路进一步包含:具有外围配置数据的外 围区域,其中所述控制器电路经调适以基于接收到的所述配置数据仅更新 所述核心配置数据,并且进一步经调适以基于所述断言的更新模式信号维 持所述外围配置。

补充实施例20。根据补充实施例19所述的集成电路,其中所述外围 区域包含收发器电路,并且其中所述外围配置数据包含所述收发器电路的 用户设置。

前文仅说明本发明的原理,并且在不脱离本发明的精神和范围的情况 下,所属领域的技术人员可以进行各种修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号