一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于可编程逻辑器件的远程编程系统和方法与流程

2022-03-05 05:24:52 来源:中国专利 TAG:

用于可编程逻辑器件的远程编程系统和方法
1.相关申请的交叉引用
2.本技术要求于2019年5月29日提交的题为“用于可编程逻辑器件的远程编程系统和方法(remote programming systems and methods for programmable logic devices)”的美国临时专利申请第62/854,164号的权益和优先权,该申请通过引用整体并入本文。
技术领域
3.本发明总体上涉及可编程逻辑器件,并且更具体地涉及此类设备的存储器、通信接口和/或其他资产的远程管理。


背景技术:

4.可编程逻辑器件(pld)(例如,现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld)、现场可编程片上系统(fpsc)或其他类型的可编程设备)可以配置有各种用户设计以实施期望功能。通常,用户设计被合成并映射到可配置的资源(例如,可编程逻辑门、查找表(lut)、嵌入式硬件或其他类型的资源)和特殊pld中可用的互连。然后可以确定用于合成和映射的用户设计的物理放置和布线,以生成用于特殊pld的配置数据。
5.包括pld的主机设备的制造商通常投入大量资源为其选择的pld类型和/或能力开发配置,并且通常通过在主机设备售出和/或部署后提供持续的设备支持而受益于感知到的客户满意度。因此,本领域需要远程且安全地管理pld配置的系统和方法,特别是在用户难以手动管理的计算应用和计算架构的情境中。
附图说明
6.图1示出了根据本公开的实施例的可编程逻辑器件(pld)的块图。
7.图2示出了根据本公开的实施例的用于pld的逻辑块的块图。
8.图3示出了根据本公开的实施例的pld的设计过程。
9.图4示出了根据本公开的实施例的包括远程pld的主机设备的块图。
10.图5示出了根据本公开的实施例的远程pld管理系统的块图。
11.图6示出了根据本公开的实施例的用于与主机设备集成的远程pld的管理过程。
12.图7示出了根据本公开的实施例的用于与主机设备集成的远程pld的管理过程。
13.通过参考下面的详细描述,最好地理解本公开的实施例及其优点。应当理解,相似的附图标记用于标识附图中的一个或多个中示出的相似元件,其中,在其中示出是为了示出本公开的实施例的目的而不是为了限制本公开的目的。
具体实施方式
14.本公开提供用于管理用于在用于计算应用和架构的各种主机设备中使用的远程可编程逻辑器件(“远程pld”或“远程可编程pld”,如本文中可互换使用的)的内部和外部资
产(例如,结构、总线、端口和/或存储器扇区)的系统和方法),如本文所述。例如,实施例提供了用于通过利用配置映像/配置数据对远程pld(例如,通过有线和/或无线网络)进行远程编程来管理远程pld的个体资产和/或成组资产的远程提供、重新提供(例如,更新)和调试的系统和方法,该配置映像/配置数据本身可以根据发布器定义的配置和/或操作情境受到保护,以帮助降低或消除发布器的数据的丢失或提取或此类数据的重新编程的风险。
15.根据本文阐述的实施例,提供了用于管理用户设计在pld中(通常并且更具体地,在远程pld中)的实施的技术。在各种实施例中,用户设计可以被转换成一组pld部件(例如,配置用于逻辑、算术或其他硬件功能)和pld中可用的相关联的互连,和/或由一组pld部件(例如,配置用于逻辑、算术或其他硬件功能)和pld中可用的相关联的互连来表示。例如,pld可以包括多个可编程逻辑块(plb),每个plb包括多个逻辑单元,以及可以用于互连plb和/或逻辑单元的各种可配置的布线资源。在一些实施例中,每个plb可以利用2到16个或2到32个逻辑单元来实施。
16.一般地,pld结构包括一个或多个布线构造和布置在可编程功能块(例如,pfb和/或plb)内的类似布置的逻辑单元的阵列。布线构造的目的是以实现预期功能所需的这种组合方式将逻辑单元/plb的端口可编程地相互连接。在将用户设计合成、映射、放置和/或布线到多个pld部件中时,可以使用布线灵活性和可配置的功能嵌入。由于各种用户设计优化过程,其可能导致大量的设计时间和成本,因此用户设计可以相对有效地实施,从而释放可配置的pld部件,否则这些部件将被附加操作和布线资源占用。在一些实施例中,优化的用户设计可以由识别由pld提供的各种类型的部件及其相关联的信号的网表来表示。在产生转换的用户设计的网表的实施例中,可以对此类网表执行优化过程。一旦优化,此类配置可以用于直接对pld进行编程,例如,或者可以加密和签名和/或以其他方式安全以分布到远程pld,并且此类过程可以包括一个或多个密钥提供过程,如本文所述。“远程pld”可以通过包括各种附加“硬”引擎或模块而与更通用的pld不同,这些引擎或模块被配置为提供一系列远程管理功能,这些远程管理功能可以链接到pld结构的操作,以提供可配置的计算功能和/或架构,如本文所述。
17.现在参考附图,图1示出了根据本公开的实施例的pld 100的块图。pld 100(例如,现场可编程门阵列(fpga))、复杂可编程逻辑器件(cpld)、现场可编程片上系统(fpsc)或其他类型的可编程设备)通常包括输入/输出(i/o)块102和逻辑块104(例如,也称为可编程逻辑块(plb)、可编程功能单元(pfu)或可编程逻辑单元(plc))。更一般地,pld 100的个体元件可以被称为pld结构。
18.i/o块102为pld 100提供i/o功能(例如,以支持一个或多个i/o和/或存储器接口标准),而可编程逻辑块104为pld 100提供逻辑功能(例如,基于lut的逻辑或基于逻辑门阵列的逻辑)。附加i/o功能可以由串行器/解串器(serdes)块150和物理编码子层(pcs)块152提供。pld 100还可以包括硬知识产权核心(ip)块160以提供附加功能(例如,在硬件中提供的基本上预定的功能,其可以利用比逻辑块104更少的编程来配置)。
19.pld 100还可以包括存储器块106(例如,eeprom块、块sram和/或闪存)、时钟相关电路系统108(例如,时钟源、pll电路和/或dll电路),和/或各种布线资源180(例如,互连和适当的开关逻辑以提供用于在整个pld 100中路由信号的路径,诸如用于时钟信号、数据信号或其他),视情况而定。一般地,如本领域技术人员将理解的,pld 100的各种元件可用于
为期望应用执行它们的预期功能。
20.例如,某些i/o块102可以用于对存储器106进行编程或向/从pld 100传输信息(例如,各种类型的用户数据和/或控制信号)。其他i/o块102包括第一编程端口(其可以表示中央处理单元(cpu)端口、外设数据端口、spi接口和/或sysconfig编程端口)和/或第二编程端口,诸如联合测试动作组(jtag)端口(例如,通过采用诸如电气和电子工程师协会(ieee)1149.1或1532标准之类的标准)。在各种实施例中,可以包括i/o块102以接收配置数据和命令(例如,通过一个或多个连接140)以配置pld 100以用于其预期用途,并且与serdes块150、pcs块152、硬ip块160和/或逻辑块104一起用于支持串行或并行设备配置和信息传递,视情况而定。
21.应当理解,各种元件的数量和放置不是限制性的并且可以取决于期望应用。例如,对于期望应用或设计规范(例如,对于所选的可编程设备的类型),可能不需要各种元件。此外,应当理解,为了清楚起见以块形式示出了元件,并且各种元件通常将分布在整个pld 100中,诸如在逻辑块104、硬ip块160和布线资源(例如,图2的布线资源180)中或之间,以执行它们的常规功能(例如,存储配置pld100的配置数据或在pld 100内提供互连构造)。还应当理解,本文公开的各种实施例不限于可编程逻辑器件,诸如pld 100,并且还可以应用于各种其他类型的可编程设备,如本领域技术人员将理解的。
22.外部系统130可以用于创建pld 100的期望用户配置或设计,并且生成对应的配置数据以对pld 100进行编程(例如,配置)。例如,系统130可以向一个或多个i/o块102、serdes块150和/或pld 100的其他部分提供此类配置数据。因此,可编程逻辑块104、各种布线资源和pld 100的任何其他适当部件可以被配置为根据用户指定的应用来操作。
23.在示出的实施例中,系统130被实施为计算机系统。就此而言,系统130包括例如一个或多个处理器132,其可以被配置为执行提供在一个或多个存储器134中和/或以非暂时性形式存储在一个或多个非暂时性机器可读介质136(例如,其可以在系统130的内部或外部)中的指令,诸如软件指令。例如,在一些实施例中,系统130可以运行pld配置软件,诸如可从晶格半导体公司(lattice semiconductor corporation)获得的晶格金刚石系统规划器(lattice diamond system planner)软件,以允许用户创建期望配置并生成对应的配置数据以对pld 100进行编程。
24.系统130还包括,例如,用以向用户显示信息的用户界面135(例如,屏幕或显示器),和用以接收用户命令或设计条目以准备pld 100的期望配置的一个或多个用户输入设备137(例如,键盘、鼠标、轨迹球、触摸屏、和/或其他设备)。
25.图2示出了根据本公开的实施例的pld 100的逻辑块104的块图。如所讨论的,pld 100包括多个逻辑块104,这些逻辑块104包括各种部件以提供逻辑和算术功能。在图2所示的示例实施例中,逻辑块104包括多个逻辑单元200,这些逻辑单元200可以在逻辑块104内部和/或使用布线资源180在外部互连。例如,每个逻辑单元200可以包括各种部件,诸如:查找表(lut)202、模式逻辑电路204、寄存器206(例如,触发器或锁存器)和各种可编程多路复用器(例如,可编程多路复用器212和214),用于为逻辑单元200和/或为逻辑单元200之间选择期望信号路径。在此示例中,lut 202接受四个输入220a-220d,这使其成为四输入lut(其可以缩写为“4-lut”或“lut4”),其可以由用于pld 100的配置数据进行编程以实施具有四个或更少输入的任何适当的逻辑操作。模式逻辑204可以包括各种逻辑元件和/或附加输
入,诸如输入220e,以支持各种模式的功能,如本文所述。在其他示例中,针对pld的特殊实施方式,lut 202可以是任何其他合适的大小,具有任何其他合适数量的输入。在一些实施例中,可以为不同的逻辑块104和/或不同的逻辑单元200提供不同大小的lut。
26.在一些实施例中,来自lut 202和/或模式逻辑204的输出信号222可以传达通过寄存器206以提供逻辑单元200的输出信号233。在各种实施例中,来自lut 202和/或模式逻辑204的输出信号223可以直接传达到输出223,如图所示。取决于多路复用器210-214和/或模式逻辑204的配置,输出信号222可以根据控制信号230临时存储(例如,锁存)在锁存器206中。在一些实施例中,用于pld 100的配置数据可以将逻辑单元200的输出223和/或233配置为被提供为分级或级联布置(例如,包括多个级)中的另一逻辑单元200(例如,在另一逻辑块或相同逻辑块中)的一个或多个输入以配置不能在单个逻辑单元200中实施的逻辑操作(例如,具有太多输入而不能由单个lut 202实施的逻辑操作)。此外,如本文所述,逻辑单元200可以利用多个输出和/或互连来实施以促进可选择的操作模式。
27.模式逻辑电路204可以用于pld 100的一些配置以有效地实施算术操作,诸如加法器、减法器、比较器、计数器或其他操作,以有效地形成一些扩展逻辑操作(例如,高阶lut、多位数据上工作),以有效地实施相对小的ram,和/或允许在逻辑、算术、扩展逻辑和/或其他可选择的操作模式之间进行选择。就此而言,跨多个逻辑单元202的模式逻辑电路204可以链条式连接在一起以在相邻逻辑单元202之间传达进位输入信号205和进位输出信号207和/或其他信号(例如,输出信号222),如本文所述。在图2的示例中,进位输入信号205例如可以直接传达到模式逻辑电路204,或者可以通过配置一个或多个可编程多路复用器来传达到模式逻辑电路204,如本文所述。在一些实施例中,模式逻辑电路204可以跨多个逻辑块104链条式连接。
28.图2所示的逻辑单元200只是示例,并且根据不同实施例的逻辑单元200可以包括pld部件不同组合和布置。此外,虽然图2示出了具有八个逻辑单元200的逻辑块104,但是根据其他实施例的逻辑块104可以包括更少的逻辑单元200或更多的逻辑单元200。逻辑块104的逻辑单元200中的每一个可以用于实施由pld 100实施的用户设计的一部分。就此而言,pld 100可以包括许多逻辑块104,每个逻辑块104可以包括用于共同实施用户设计的逻辑单元200和/或其他部件。
29.如本文进一步描述的,当pld 100被配置为实施用户设计时,用户设计的部分可以被调整以占用更少的逻辑单元200、更少的逻辑块104和/或具有更少的布线资源180的负担。根据各种实施例的此类调整可以识别要在占用逻辑单元200和/或逻辑块104的多个实施例的布置中实施的某些逻辑、算术和/或扩展逻辑操作。如本文进一步描述的,优化过程可以对与本文描述的算术/逻辑操作相关联的各种信号连接进行布线,使得逻辑、波纹算术或扩展逻辑操作可以实施到要与前述算术/逻辑操作相关联的一个或多个逻辑单元200和/或逻辑块104中。
30.图3示出了根据本公开的实施例的用于pld的设计过程300。例如,图3的过程可以由运行拉希采钻石(lahice diamond)软件的系统130执行以配置pld 100。在一些实施例中,图3中引用的各种文件和信息可以存储在例如一个或多个数据库中和/或存储器134、机器可读介质136和/或其他中的其他数据构造。在各种实施例中,当存储和/或输送到pld 100和/或其他设备或系统时,此类文件和/或信息可以被加密或以其他方式安全。
31.在操作310中,系统130接收指定pld 100的期望功能的用户设计。例如,用户可以与系统130交互(例如,通过用户输入设备137和表示设计的硬件描述语言(hdl)代码)来识别用户设计的各种特征(例如,高级逻辑操作、硬件配置和/或其他特征)。在一些实施例中,可以在寄存器传递级(rtl)描述(例如,门级描述)中提供用户设计。系统130可以执行一个或多个规则检查以确认用户设计描述了pld 100的有效配置。例如,系统130可以拒绝无效配置和/或请求用户提供新的设计信息,视情况而定。
32.在操作320中,系统130合成设计以创建网表(例如,合成的rtl描述),这将用户设计的抽象逻辑实施方式识别为多个逻辑部件(例如,也称为网表部件),这些逻辑部件可以包括pld 100的可编程部件和硬ip部件。在一些实施例中,网表可以以电子设计交换格式(edif)存储在本地通用数据库(ngd)文件中。
33.在一些实施例中,在操作320中将设计合成为网表可以涉及将用户设计中的逻辑操作、硬件配置和/或其他特征的高级描述转换(例如,翻译)为一组pld部件(例如,被配置用于逻辑、算术或其他硬件功能以实现用户设计的逻辑块104、逻辑单元200和pld 100的其他部件)及其相关联的互连或信号。取决于实施例,转换后的用户设计可以表示为网表。
34.在一些实施例中,在操作320中将设计合成为网表还可以涉及对用户设计执行优化过程(例如,用户设计被转换/翻译成一组pld部件及其相关联的互连或信号)以减少传播延迟、pld资源和布线资源的消耗,和/或以其他方式优化在配置为实施用户设计时的pld的性能。取决于实施例,优化过程可以在表示转换/翻译后的用户设计的网表上执行。取决于实施例,优化过程可以在网表中表示优化的用户设计(例如,以产生优化的网表)。
35.在一些实施例中,优化过程可以包括优化逻辑功能操作、波纹算术操作和/或扩展逻辑功能操作的某些实例,当pld被配置为实施用户设计时,这些实例将占用多个可配置的pld部件(例如,逻辑单元200、逻辑块104和/或布线资源180)。例如,优化过程可以包括检测实施用户设计的逻辑功能操作、波纹算术操作、扩展逻辑功能操作和/或对应的布线资源的多个模式或可配置的逻辑单元,互换实施各种操作的逻辑单元的操作模式以减少用于实施操作的pld部件和/或布线资源的数量和/或减少与操作相关联的传播延迟,和/或对对应的lut和/或模式逻辑进行重新编程以考虑互换后的操作模式。
36.在另一个示例中,优化过程可以包括检测用户设计中的扩展逻辑功能操作和/或对应的布线资源,将扩展逻辑操作实施为具有单个物理逻辑单元输出的多模式或可转换逻辑单元,将第一组逻辑单元的逻辑单元输出布线或联接到第二组逻辑单元的输入以减少用于实施扩展逻辑操作的pld部件和/或布线资源的数量和/或减少与扩展逻辑操作相关联的传播延迟,和/或对对应的lut和/或模式逻辑进行编程以至少利用第一组逻辑单元和第二组逻辑单元实施扩展逻辑功能操作。
37.在另一个示例中,优化过程可以包括检测实施用户设计中的逻辑功能操作、波纹算术操作、扩展逻辑功能操作和/或对应的布线资源的多个模式或可配置的逻辑单元,交换实施各种操作的逻辑单元的操作模式以沿pld内的信号路径提供可编程寄存器以减少与信号路径相关联的传播延迟,以及对对应的lut、模式逻辑和/或其他逻辑单元控制位/寄存器进行重新编程以考虑交换后的操作模式和/或对可编程寄存器进行编程以存储或锁存信号路径上的信号。
38.在操作330中,系统130执行映射过程,该映射过程识别可以用于实施用户设计的
pld 100的部件。就此而言,系统130可以将优化的网表(例如,作为优化过程的结果在操作320中存储的)映射到pld 100提供的各种类型的部件(例如,逻辑块104、逻辑单元200、嵌入式硬件和/或pld 100的其他部分)及其相关联的信号(例如,以逻辑方式,但尚未指定放置或布线)。在一些实施例中,映射可以在一个或多个先前存储的ngd文件上执行,映射结果存储为物理设计文件(例如,也称为ncd文件)。在一些实施例中,映射过程可以作为操作320中的合成过程的一部分来执行以产生映射到pld部件的网表。
39.在操作340中,系统130执行放置过程以将映射的网表部件分配给驻留在pld 100的特定物理位置处的特殊物理部件(例如,分配给特殊逻辑单元200、逻辑块104、布线资源180、和/或pld 100的其他物理部件),并且因此确定用于pld 100的布局。在一些实施例中,可以在一个或多个先前存储的ncd文件上执行放置,其中放置结果存储为另一个物理设计文件。
40.在操作350中,系统130执行布线过程以基于在操作340中确定的放置布局来对pld 100的部件之间的连接(例如,使用布线资源180)进行布线以实现放置的部件之间的物理互连。在一些实施例中,可以在一个或多个先前存储的ncd文件上执行布线,其中布线结果存储为另一物理设计文件。
41.在各种实施例中,在操作350中对连接进行布线可以进一步涉及对用户设计执行优化过程以减少传播延迟、pld资源和/或布线资源的消耗,和/或以其他方式优化在配置为实施用户设计时的pld的性能。在一些实施例中,优化过程可以在表示转换/翻译后的用户设计的物理设计文件上执行,并且优化过程可以在物理设计文件中表示优化的用户设计(例如,以产生优化的物理设计文件)。
42.在一些实施例中,优化过程可以包括优化逻辑功能操作、波纹算术操作和/或扩展逻辑功能操作的某些实例,当pld被配置为实施用户设计时,这些实例将占用多个可配置的pld部件(例如,逻辑单元200、逻辑块104和/或布线资源180)。例如,优化过程可以包括检测实施用户设计中的逻辑功能操作、波纹算术操作、扩展逻辑功能操作和/或对应的布线资源的多个模式或可配置的逻辑单元,互换实施各种操作的逻辑单元的操作模式以减少用于实施操作的pld部件和/或布线资源的数量和/或减少与操作相关联的传播延迟,和/或对对应的lut和/或模式逻辑进行重新编程以考虑互换后的操作模式。
43.在另一个示例中,优化过程可以包括检测用户设计中的扩展逻辑功能操作和/或对应的布线资源,将扩展逻辑操作实施为具有单个物理逻辑单元输出的多模式或可转换逻辑单元,将第一组逻辑单元的逻辑单元输出布线或联接到第二组逻辑单元的输入以减少用于实施扩展逻辑操作的pld部件和/或布线资源的数量和/或减少与扩展逻辑操作相关联的传播延迟,和/或对对应的lut和/或模式逻辑进行编程以至少利用第一组逻辑单元和第二组逻辑单元实施扩展逻辑功能操作。
44.在另一个示例中,优化过程可以包括检测实施用户设计中的逻辑功能操作、波纹算术操作、扩展逻辑功能操作和/或对应的布线资源的多个模式或可配置的逻辑单元,交换实施各种操作的逻辑单元的操作模式以沿pld内的信号路径提供可编程寄存器以减少与信号路径相关联的传播延迟,并对对应的lut、模式逻辑和/或其他逻辑单元控制位/寄存器进行重新编程以考虑交换后的操作模式和/或对可编程寄存器进行编程以存储或锁存信号路径上的信号。
45.布线中的变化可以传播回先前的操作,诸如合成、映射和/或放置,以进一步优化用户设计的各个方面。
46.因此,在操作350之后,可以提供一个或多个物理设计文件,其指定在已经针对pld 100进行合成(例如,转换和优化)、映射、放置和布线(例如,进一步优化)之后(例如,通过组合对应的先前操作的结果)的用户设计。在操作360中,系统130生成用于合成、映射、放置和布线后的用户设计的配置数据。在各种实施例中,此类配置数据可以被加密、签名和/或以其他方式保护以作为此类生成过程的一部分,如本文更充分地描述的。在操作370中,系统130通过例如通过连接140将配置数据位流(例如“配置”或“配置映像”)加载到pld 100中来利用配置数据配置pld 100。此类配置可以以例如,加密、签名或不安全/未认证形式提供,并且pld 100可以被配置为不同地处理安全和不安全配置,如本文所述。此外,pld 100可以被实施为远程pld并且连接140可以包括一个或多个有线和/或无线网络和/或设置在pld 100和系统130之间的通信链路,如本文关于图4-图7更充分地描述的。
47.图4示出了根据本公开的实施例的包括远程pld 410的主机设备440的块图。在各种实施例中,远程pld 410可以由类似于关于图1中的pld 100描述的那些元件来实施,但是具有被配置为促进在特殊计算应用和/或架构(诸如主机设备400)内的远程pld 410的操作和/或远程编程或与其的通信的附加可配置和/或硬ip元件,如本文所描述的。
48.例如,如图4中示出的实施例所示,远程pld 410可以包括通过各种总线链接到非易失性存储器(nvm)420的pld结构400、可编程i/o 404和/或其他集成电路(ic)模块406,所有这些都可以在单片ic上实施,如图所示。更一般地,pld结构400可以由关于pld 100描述的各种元件中的任何一个来实施,并且可以使用类似于关于图3描述的设计过程300的设计过程来配置以根据期望配置生成pld结构400和对pld结构400进行编程。具体地,远程pld 410可以被配置为例如在根据接收到的配置对pld结构400进行编程之前使用图4中标识的各种硬ip元件来接收、解密、认证和/或验证接收到的配置,或者以其他方式与用于远程pld 410的管理系统通信,如本文所述。
49.在各种实施例中,主机设备440可以包括通信模块450和/或其他主机设备模块460,它们可以被远程pld 410采用并且被配置为例如促进远程pld 410的远程管理,或者促进特殊主机设备应用,如本文所述。主机设备440可以被实施为智能电话、膝上型计算机、平板计算机、台式计算机、智能环境传感器、家庭自动化设备(例如,传感器和/或致动器)、已部署但以其他方式无人值守的装备控制器模块(例如,用于山顶气象站、无人农场装备、太阳能供电/无人飞行器和船只),和/或被实施为例如能够与远程pld 410对接的各种其他主机设备,如本文所述。
50.nvm 420可以被实施为硬ip资源,其被配置为提供用于促进远程pld 410操作的数据的安全非易失性存储。nvm 420可以包括多个不同的扇区,诸如一个或多个配置映像扇区、设备密钥扇区(例如,aes密钥扇区和单独的公钥/密钥对扇区)、用户闪存(ufm)扇区和/或其他定义的存储扇区。例如,配置映像扇区可以各自存储用于pld结构400的配置,以便允许它们被选择(例如,基于版本或日期)并用于对pld结构400进行编程。修整扇区可以用于存储制造商修整、设备标识符、设备类别标识符和/或特定于特殊远程pld 410的其他数据,例如,诸如可修改的客户特定订购部件号和/或生成的客户id号。设备密钥扇区可以用于存储加密/解密密钥、公钥/私钥和/或特定于特殊远程pld 410的其他安全密钥。ufm扇区可以
用于存储通常可由pld结构400访问的用户数据,诸如特定于配置或应用的安全密钥、证书和/或其他安全(的)用户数据。nvm 420的任何一个或多个个体元件、部分或扇区例如可以被实施为可配置的存储器,或一次性可编程(otp)存储器,如本文所述。
51.可编程i/o 404可以被实施为至少部分可配置的资源和/或硬ip资源,其被配置为例如跨总线402(例如,内部和/或集成通信总线,其被配置为将pld结构400的部分链接到可编程i/o 404、nvm 420和/或远程pld 410的其他元件)并且根据一个或多个外部总线接口和/或协议408提供或支持pld结构400和外部控制器、存储器和/或其他设备(诸如通信模块450)之间的通信链路。可编程i/o 404还可以被配置为支持pld结构400和/或nvm 420跨总线402和/或外部总线接口/协议408与通信模块450和/或主机设备440的其他元件(例如,附加于或替代外部系统130/机器可读介质136)之间的通信,如本文所述。在一些实施例中,总线402和/或可编程i/o 404可以与pld结构400集成。更一般地,在图4中示出为分离的远程pld 410的一个或多个元件可以彼此集成和/或在彼此内。
52.其他ic模块406可以被实施为被配置为促进远程pld 410的操作的硬和/或可配置的ip资源。例如,其他ic模块406可以包括被实施为硬ip资源的安全引擎,其被配置为提供由pld结构400和/或主机设备440使用的各种安全性功能。其他ic模块406还可以包括被实施为硬ip资源的配置引擎,其被配置为管理远程pld 410的各种元件的配置和/或其间的通信,包括管理或控制远程pld 410的元件的配置、pld结构400的启动和整个远程pld 410的流量控制。在一些实施例中,其他ic模块406可以包括一个或多个通信模块(例如,类似于主机设备440的通信模块450),其与远程pld 410集成并且可以执行各种操作或操作子集以形成和/或管理通过有线和/或无线网络进行的通信链路,如本文所述。
53.在进一步的实施例中,其他ic模块406可以例如包括根据jtag、i2c、spi和/或其他外部访问总线或协议中的一个或多个实施的一个或多个附加外部访问总线,其被配置为提供至和/或自通信模块450和/或其他主机设备模块460的访问。例如,虽然在图4中示出为集成为远程pld 410内的硬ip资源,但nvm 420或类似的附加硬ip资源可以是与主机设备440集成(例如,作为其他主机设备模块460)并且通过内部总线402、外部总线接口/协议408和/或此类外部访问总线或协议中的任何一种或组合可访问(例如,通过pld结构400和/或pld结构400的其他元件)。
54.在各种实施例中,通信模块450可以被实施为网络通信ic,该网络通信ic被配置为形成到用于管理远程pld 410的操作的远程外部设备(例如,通过一个或多个有线和/或无线网络)的通信链路。例如,在一些实施例中,通信模块450可以被实施为无线通信模块,其被配置为支持到通信网络,并且因此到远程pld管理系统或通信地联接到此类通信网络的此类远程pld管理系统的pld配置代理的无线通信链路(例如,根据wifi、蓝牙、zigbee、zwave、近场通信(nfc)、蜂窝、和/或其他开放和/或专有无线通信协议形成),如本文所述。在此类实施例中,通信模块450可以被配置为管理此类无线通信链路的各种安全特征(例如,建立通信链路凭证、采用通信链路凭证以建立无线通信链路、协商用于通过此类无线通信链路建立的加密通信隧道的加密密钥,诸如传输层安全(tls)),例如,和/或可以被配置为由远程pld 410和/或其他主机设备模块460控制以管理此类安全特征。具体地,远程pld 410可以被配置为通过外部总线接口/协议408和/或由远程pld 410和/或主机设备440实施的其他外部总线接口/协议来对通信模块450的操作进行控制,取代否则将由主机设备440
进行的控制。
55.其他主机设备模块460可以包括各种计算、传感器和/或执行器元件,这些元件被配置为实施特殊主机设备应用,例如,诸如远程传感器应用、远程控制器应用和/或远程计算应用,如本文所述。其他主机设备模块460还可以包括各种其他通信总线、功率存储和输送元件、用户界面(例如,按钮、键盘、鼠标、触控板和/或显示器/触摸屏显示器)以支持此类主机设备应用。在一个实施例中,其他主机设备模块460包括电特性传感器,其被配置为检测和/或测量换能器元件(例如,也是其他主机设备模块460的元件)的电状态,该换能器元件用于测量与主机设备440相关联的环境条件。在另一个实施例中,其他主机设备模块460包括通常在例如智能电话、膝上型计算机、平板计算机和/或台式计算机内和/或在智能环境传感器、家庭自动化设备(例如,传感器和/或致动器)、装备控制器模块、无人飞行器或船只、各种类型的工业装备和/或其他主机设备内发现的各种电子设备,如本文所述。
56.图5示出了根据本公开的实施例的远程pld管理系统500的块图。例如,管理系统500的一个或多个元件可以被配置为执行关于图6-图7描述的管理过程的至少一部分。在图5所示的实施例中,远程pld管理系统500包括pld配置发布器510和pld配置代理520,它们被配置为通过通信链路512和通信网络514彼此通信。一般地,通信链路512可以由被配置为支持去往和来自通信网络514的数据通信的一个或多个有线和/或无线通信链路来实施,并且通信网络514可以由被配置为通常支持数据通信的一个或多个局域网和/或广域网(例如,互联网服务提供商、蜂窝网络和/或互联网)来实施。远程pld管理系统500的其余元件或节点中的每一个通常可以实施为主机设备440,每个主机设备440的范围类似于图4的主机设备440并且包括远程pld 410,该远程pld 410被配置为跨通信链路512和通信网络514或通信链路522与pld管理系统500和/或pld管理系统500的一个或多个元件(包括pld配置代理520)通信。
57.在各种实施例中,远程pld管理系统500可以被配置为管理与用于主机设备440的远程pld 410的配置映像相关联的和/或与用于类似于远程pld 410和/或主机设备440的远程pld和/或主机设备的各种安全通信机构相关联的主机设备440的提供、重新提供、调试、遥测报告和/或其他操作方面。例如,在一些实施例中,管理系统500可以包括可选的凭证生成器530,其可以被实施为用户输入设备(例如,智能电话、平板计算机、膝上型计算机、台式计算机),其能够形成到主机设备440的间接通信链路516和/或直接通信链路524以向主机设备440提供通信链路凭证,从而使主机设备440能够建立到或通过通信网络514的通信链路512,和/或到远程pld管理系统500的一个或多个元件或节点(诸如,到pld配置代理520和/或pld配置发布器510)的通信链路522。此类通信链路凭证可以包括无线通信凭证、预共享tls或其他证书、与远程pld管理系统500的一个或多个元件或节点相关联的url或其他代理标识符、与由pld配置发布器510生成并由pld配置发布器510和/或pld配置代理520使其安全(加密和/或签名)的受保护的配置映像相关联的公钥或私钥,和/或其他通信链路凭证,如本文所述。
58.pld配置发布器510可以被实施为一个或多个服务器,每个服务器具有一个或多个处理器和/或存储器,服务器被配置为生成用于远程pld 410的pld结构400和/或与主机设备440相关联的pld结构400的受保护的配置映像,类似于图3的设计过程300。pld配置发布器510还可以被配置为例如直接向每个主机设备440和/或远程pld 410或向pld配置代理
520提供此类受保护的配置映像,以便管理分布到主机设备440。在一些实施例中,pld配置发布器510可以被配置为生成用于pld结构400的修改后的受保护的配置映像,该修改后的受保护的配置映像被设计为识别、校正和/或减轻在远程pld 410和/或主机设备440的操作中检测到的操作异常,如本文所述。
59.pld配置代理520可以被实施为一个或多个服务器,每个服务器具有一个或多个处理器和/或存储器,服务器被配置为管理一组远程pld 410(例如,嵌入主机设备440和/或与主机设备440集成),如图5所示。例如,pld配置代理520可以被实施为在云计算基础设施内运行的一个或多个代理实例。在特定实施例中,pld配置代理520可以被配置为从远程pld 410/主机设备440接收操作警报,基于此类操作警报生成操作警报报告,并且向pld配置发布器510提供操作警报报告。更一般地,pld配置代理520可以被配置为例如根据各种通信链路凭证(例如,由pld配置发布器510、主机设备440或凭证生成器530中的一个或多个提供)将受保护的配置映像分布到远程pld 410/主机设备440。
60.在一些实施例中,pld配置代理520可以被实施为通过通信链路512和/或522和/或通信网络514来实施的消息队列遥测传输(mqtt)代理,消息队列遥测传输(mqtt)代理被配置为根据发布-订阅消息协议(例如,转发和过滤)执行各种扩展管理操作。例如,pld配置代理520可以被配置为支持具有对应的分层访问权限制裁的分层主题,例如,其可以绑定到特殊设备标识符(例如,特定于的特殊远程pld和/或主机设备)或设备类别标识符(例如,特定于远程pld和/或主机设备的范围或类别,诸如与特殊制造商、零售商、地理区域和/或设备的其他范围或类别相关联的那些)。在一些实施例中,pld配置代理520可以被配置为支持例如pld配置代理520和pld配置发布器510之间以及pld配置代理520和一个或多个主机设备440之间的加密通信隧道(例如,诸如tls隧道和/或证书处理)的形成。
61.在附加实施例中,pld配置代理520可以被配置为提供受保护的配置映像的压缩和/或分割,以便通过mqtt协议(例如,并且包括各种消息大小限制)向主机设备440提供大于128kb或256kb的受保护的配置映像。例如,pld配置代理520可以被配置为提供消息压缩,该消息压缩被实施为向主机设备440提供的受保护的配置映像的运行长度编码。在各种实施例中,远程pld 410和/或主机设备440可以被配置为接收此类压缩的和/或分割的受保护的配置映像消息并使用适当的解码过程和/或通过将受保护的配置映像存储在nvm 420中来重建受保护的配置映像。在特殊实施例中,pld配置代理520可以被配置为提供各种服务质量(qos)特征。
62.在一些实施例中,pld配置发布器510和pld配置代理520中的任一者或两者可以被配置为提供基于服务器的用户界面(sbui),该基于服务器的用户界面(sbui)被配置为促进主机设备440的发现和保留。例如,此类sbui可以被配置为生成统计数据库,该统计数据库包括与主机设备440和/或远程pld 410相关联的详细通信信息,诸如发现日志(例如,通过设备标识符、设备类别标识符、mac地址、通信时间和/或其他通信日志信息)、受保护的配置映像的下载和/或与管理系统500相关联的其他通信信息。在各种实施例中,pld配置发布器510和pld配置代理520可以彼此集成。
63.更一般地,远程pld管理系统500可以省略pld配置代理520并且被配置为使用pld配置发布器510和/或远程pld管理系统500的其他节点来执行各种管理操作而不依赖于代理架构。例如,远程pld管理系统500和/或远程pld管理系统500的各个节点可以被配置为从
远程pld 410/主机设备440接收操作警报,基于此类操作警报生成操作警报报告,和/或向远程pld管理系统500的任何其他元件提供操作警报报告。更一般地,远程pld管理系统500可以被配置为例如根据各种通信链路凭证(例如,由pld配置发布器510、远程pld 410、主机设备440或凭证生成器530中的一个或多个提供的)将受保护的配置映像分布到远程pld 410/主机设备440。
64.在一些实施例中,远程pld管理系统500可以被配置为根据各种不同的消息协议和/或架构执行各种扩展管理操作,这些消息协议和/或架构包括超文本传递协议(http)、超文本传递协议安全(https)、mqtt、高级消息队列协议(amqp)、受限应用协议(coap)、可扩展消息存在协议(xmpp)、具象状态传递(rest)、rabbitmq、谷歌云、kafka、zeromq、grpc、简单队列服务(sqs),和/或各种不同的发布-订阅消息协议(例如,转发和过滤),这些中的每一个可以包括或需要或可以不包括或需要消息代理或实例的实施,并且这些中的每一个可以通过通信链路512和/或522和/或通信网络514实施。例如,远程pld管理系统500可以被配置为支持具有对应的分层访问权限制裁的分层主题,例如,其可以绑定到特殊设备标识符(例如,特定于特殊远程pld和/或主机设备)或设备类别标识符(例如,特定于远程pld和/或主机设备的范围或类别,诸如,与特殊制造商、零售商、地理区域和/或设备的其他范围或类别相关联的那些)。在一些实施例中,远程pld管理系统500可以被配置为支持远程pld管理系统500的任何元件和一个或多个主机设备440之间的加密通信隧道(例如,诸如tls隧道和/或证书处理)的形成。
65.在附加实施例中,远程pld管理系统500可以被配置为提供受保护的配置映像的压缩和/或分割,以便通过任何选择的一个或多个协议(例如,并且包括各种消息大小限制)向主机设备440提供大于128kb或256kb的受保护的配置映像。例如,远程pld管理系统500可以被配置为提供消息压缩,该消息压缩被实施为向主机设备440提供的受保护的配置映像的运行长度编码。在各种实施例中,远程pld 410和/或主机设备440可以被配置为接收此类压缩的和/或分割的受保护的配置映像消息并使用适当的解码过程和/或通过将受保护的配置映像存储在远程pld 410和/或主机设备440内的nvm(例如,nym420)中来重构受保护的配置映像。在特殊实施例中,远程pld管理系统500可以被配置为提供各种服务质量(qos)特征。
66.在一些实施例中,远程pld管理系统500可以被配置为提供基于服务器的用户界面(sbui),该基于服务器的用户界面(sbui)被配置为促进主机设备440的发现和保留。例如,此类sbui可以被配置为生成统计数据库,该统计数据库包括与主机设备440和/或远程pld 410相关联的详细通信信息,诸如发现日志(例如,通过设备标识符、设备类别标识符、mac地址、通信时间和/或其他通信日志信息)、受保护的配置映像的下载和/或与远程pld管理系统500相关联的其他通信信息。
67.图6示出了根据本公开的实施例的与主机设备集成的远程pld的管理过程。在一些实施例中,图6的操作可以被实施为由与图1-图5中描绘的对应的电子设备、模块和/或构造相关联的一个或多个逻辑器件执行的软件指令。更一般地,图6的操作可以利用软件指令和/或电子硬件(例如,电感器、电容器、放大器、致动器或其他模拟和/或数字部件)的任何组合来实施。应当理解,过程600的任何步骤、子步骤、子过程或块可以以不同于图6所示的实施例的顺序或布置来执行。例如,在其他实施例中,一个或多个块可以从过程600中省略,
并且可以包括其他块。此外,块输入、块输出、各种传感器信号、传感器信息、校准参数和/或其他操作参数可以在移动到过程600的下一部分之前存储到一个或多个存储器。虽然过程600是参考图1-图5的系统、设备和元件描述的,但过程600可以由其他系统、设备和元件执行,并且包括电子系统、设备、元件、组件和/或布置的不同选择。在过程600的开始时,各种系统参数可以例如通过类似于过程600的过程的先前执行来填充,或者可以被初始化为零和/或与从过程600的过去操作导出的典型的、存储的和/或学习的值对应的一个或多个值,如本文所述。
68.在块610中,逻辑器件生成用于远程pld的受保护的配置。例如,pld配置发布器510和/或外部系统130可以被配置为生成用于用户界面440的远程pld 410的受保护的配置映像。在各种实施例中,可以至少部分地基于与驻留在pld配置发布器510或外部系统130中、远程pld 410的nvm 420中、pld配置代理520中和/或远程pld管理系统500的其他节点中的远程pld 410对应的设备标识符和/或设备类别标识符生成此类配置映像。在一些实施例中,可以通过使用公钥加密技术对配置镜像进行加密和/或签名来保护此类配置镜像,例如,其中适当的私钥/公钥对驻留在pld配置发布器510或外部系统130中,并且驻留在远程pld 410的nvm 420中,并且其中在部署主机设备440之后在通过通信链路512或514和/或通信网络514部署或交换远程pld 410之前存储公钥。在其他实施例中,可以通过利用存储/驻留在pld配置发布器510或外部系统130两者中以及远程pld 410的nvm 420中的对称密钥加密配置映像来保护此类配置映像。在各种实施例中,此类加密和/或签名可以至少部分地由pld配置代理520和/或远程pld管理系统500的其他节点执行。
69.在块620中,逻辑器件从pld配置发布器接收受保护的配置。例如,pld配置代理520可以被配置为从pld配置发布器510接收用于主机设备440的远程pld 410的受保护的配置映像。在一些实施例中,pld配置发布器510和/或pld配置代理520可以被配置为例如通过通信网络514并且在彼此之间建立通信链路512,并且通过此类通信链路传送受保护的配置映像(例如,pld配置发布器510可以向pld配置代理520提供受保护的配置映像)。在特定实施例中,通信链路512可以被实施为安全通信链路,诸如tls通信链路或例如通过通信链路512经由密钥交换建立的其他加密通信隧道。在替代实施例中,pld配置代理520可以被配置为接收未受保护的配置映像并使用关于块610描述的保护技术中的一个或多个来保护该配置。在其中远程pld管理系统500缺少pld配置代理520的实施例中,例如,过程600可以省略块620,或者pld配置发布器510和/或远程pld管理系统500的其他节点可以被配置为接收配置并且使用关于块610描述的保护技术(该保护技术可以分层在块610中提供的保护之上)中的一个或多个来保护该配置。
70.在块630中,逻辑器件向远程pld提供受保护的配置。例如,pld配置代理520可以被配置为经由通信模块450向主机设备440的远程pld 410提供在块620中接收和/或接收并保护的受保护的配置映像。在一些实施例中,主机设备440和/或远程pld 410可以被配置为经由主机设备440的通信模块450通过通信网络514与pld配置代理520形成通信链路512和/或522。例如,形成此类通信链路可以包括远程pld 410经由可编程i/o 404和/或总线402和/或408控制通信模块(例如通信模块450)进入热点模式以允许凭证生成器530提供通信链路凭证(例如,通过间接通信链路516和/或直接通信链路524)以形成通过通信网络514或到通信网络514并且因此到pld配置代理520的通信链路512和/或522。形成此类通信链路可以包
括远程pld 410控制通信模块450通过此类通信链路建立加密通信隧道。在形成此类通信链路后,主机设备440的远程pld 410可以被配置为从pld配置代理520接收受保护的配置映像,如本文所述。在远程pld管理系统500缺少pld配置代理520的实施例中,pld配置发布器510和/或远程pld管理系统500的其他节点可以被配置为经由可由远程pld 410访问的通信模块和/或根据本文描述的通信链路形成协议向主机设备440的远程pld 410提供受保护的配置。
71.在块640中,逻辑器件根据受保护的配置对远程pld进行编程。例如,远程pld 410可以被配置为根据由远程pld管理系统500的元件(包括pld配置代理520)提供的并且在块630中由远程pld 410接收的受保护的配置映像(例如,在块610中由pld配置发布器510生成)对远程pld 410的pld结构400和/或nvm 420进行编程,类似于关于图3的设计过程300描述的编程过程。在各种实施例中,主机设备440和/或远程pld 410可以被配置为将受保护的配置映像存储在远程pld 410的nvm 420中和/或通过远程pld 410的可编程i/o 404将通信模块520提供的受保护的配置映像联接到pld结构400(例如,经由总线408和/或402),如本文所述。
72.在一些实施例中,主机设备440和/或远程pld 410可以被配置为在对pld结构400进行编程之前认证此类受保护的配置映像。在一个实施例中,其中使用与pld配置发布器510相关联的私钥对受保护的配置映像进行签名(例如,由pld配置发布器510、pld配置代理520和/或远程pld管理系统500的某个其他元件签名),对应的公钥可以存储在远程pld 410的nvm 420中,并且认证可以包括使用公钥来验证使用与pld配置发布器510相关联的私钥对受保护的配置映像进行签名。在另一个实施例中,其中受保护的配置映像包括与远程pld相关联的设备标识符和/或设备类别标识符410,设备标识符和/或设备类别标识符可以存储在远程pld 410的nvm 420中,并且认证可以包括将受保护的配置映像的设备标识符和/或设备类别标识符与存储在nvm 420中的设备标识符和/或设备类别标识符进行比较。也可以在此类认证发生之后执行对称或非对称解密。
73.图7示出了根据本公开的实施例的用于与主机设备集成的远程pld的管理过程。在一些实施例中,图7的操作可以被实施为由与图1-图5中描绘的对应的电子设备、模块和/或构造相关联的一个或多个逻辑器件执行的软件指令。更一般地,图7的操作可以利用软件指令和/或电子硬件(例如,电感器、电容器、放大器、致动器或其他模拟和/或数字部件)的任何组合来实施。应当理解,过程700的任何步骤、子步骤、子过程或块可以以不同于图7所示的实施例的顺序或布置来执行。例如,在其他实施例中,一个或多个块可以从过程700中省略,并且可以包括其他块。此外,块输入、块输出、各种传感器信号、传感器信息、校准参数和/或其他操作参数可以在移动到过程700的下一部分之前存储到一个或多个存储器。虽然过程700是参考图1-图5的系统、设备和元件描述的,但过程700可以由其他系统、设备和元件执行,并且包括电子系统、设备、元件、组件和/或布置的不同选择。在过程700的开始时,各种系统参数可以例如通过类似于过程700的过程的先前执行来填充,或者可以被初始化为零和/或与从过程700的过去操作导出的典型的、存储的和/或学习的值对应的一个或多个值,如本文所述。
74.在块710中,逻辑器件从远程pld接收操作警报。例如,pld配置发布器410、pld配置代理520和/或远程pld管理系统500的其他节点可以被配置为从远程pld 410(例如,经由通
信模块450)接收对应于与pld结构400相关联的操作异常的操作警报。在一些实施例中,远程pld 410和/或主机设备440可以被配置为检测与pld结构400相关联的操作异常(例如,使用一个或多个其他ic模块406和/或其他主机设备模块460),至少部分地基于检测到的操作异常和/或与远程pld 410的操作和/或检测到的操作异常相关联的遥测数据生成操作警报,并且例如经由使用通信模块450建立的通信链路512和/或514向pld配置发布器410、pld配置代理520和/或远程pld管理系统500的其他节点提供操作警报,如本文所述。此类操作异常可以包括例如意外重启、来自传感器元件的意外数据、计算生成的意外数据和/或与远程pld 410和/或主机设备440的操作相关联的其他操作异常。在各种实施例中,操作警报可以包括与此类检测到的操作异常相关联的调试信息,该调试信息可以由例如根据特殊配置映像配置的pld结构400生成并存储在nvm 420中。
75.在替代实施例中,pld配置发布器410、pld配置代理520和/或远程pld管理系统500的其他节点可以被配置为向远程pld 410发出检查状态命令,例如,诸如在接收操作警报之前,或在从远程pld 410接收操作确认之前。此类操作确认可以被配置为经由使用通信模块450建立的通信链路512和/或514向pld配置发布器410、pld配置代理520和/或远程pld管理系统500的其他节点输送操作异常的缺少,诸如指示用于远程pld 410的正常或预期操作状态的遥测数据,如本文所述。在各种实施例中,pld配置发布器410、pld配置代理520和/或远程pld管理系统500的其他节点可以被配置为周期性地轮询一个或多个远程pld 410和/或将操作警报和/或操作确认的日志(例如,由此类警报/异常/确认的日期和时间/时间戳交叉引用)包括在操作警报报告中。
76.在块720中,逻辑器件基于接收到的操作警报生成操作警报报告。例如,pld配置发布器410、pld配置代理520和/或远程pld管理系统500的其他节点可以被配置为至少部分地基于由远程pld 410提供并由pld配置发布器410、pld配置代理520和/或远程pld管理系统500的其他节点在块710中接收操作警报和/或操作确认来生成操作警报报告。在一些实施例中,此类操作警报报告可以包括接收到的操作警报和/或操作确认中包括的任何或所有信息(例如,调试信息)。在其他实施例中,pld配置发布器410、pld配置代理520和/或远程pld管理系统500的其他节点可以被配置为将由一个或多个远程pld410和/或主机设备440提供的多个操作警报聚集成单个操作警报报告。在进一步的实施例中,pld配置发布器410、pld配置代理520和/或远程pld管理系统500的其他节点可以被配置为包括与此类操作警报和/或操作确认相关联的附加管理数据,诸如接收时间、设备标识符或设备类别标识符、与每个操作警报和/或操作确认相关联的主题和/或子主题、由提供操作警报和/或操作确认的远程pld订阅的和/或由pld配置发布器410、pld配置代理520和/或远程pld管理系统500的其他节点提供的所有主题和/或子主题的列表,和/或附加管理数据,如本文所述。
77.在块730中,逻辑器件向pld配置发布器提供操作警报报告。例如,pld配置代理520和/或远程pld管理系统500的其他节点可以被配置为通过通信链路512和/或通信网络514向pld配置发布器510提供在块720中生成的操作警报报告。
78.在块740中,逻辑器件生成用于远程pld的修改后的受保护的配置。例如,pld配置发布器510可以被配置为接收由pld配置发布器410、pld配置代理520和/或远程pld管理系统500的其他节点在块730中提供的操作警报报告并且至少部分地基于操作警报报告和与远程pld 410对应的设备标识符和/或设备类别标识符(例如,用于认证和验证目的)生成用
于pld结构400的修改后的受保护的配置映像。在各种实施例中,修改后的受保护的配置映像可以被配置为识别、校正和/或减轻在块710中由远程pld 410检测到的操作异常。例如,在一些实施例中,修改后的受保护的配置映像可以被配置为生成与检测到的操作异常相关联并存储在nvm 420中的附加或定向调试信息,以启用或禁用远程pld 410和/或主机设备440的功能,和/或生成对用户的可见或可听警报(例如(经由其他主机设备模块460)以通知用户更换远程pld 410和/或主机设备440或以其他方式手动减轻检测到的操作异常。一旦生成了此类修改后的受保护的配置映像,pld配置发布器510就可以被配置为向pld配置代理520和/或远程pld管理系统500的其他节点提供修改后的受保护的配置映像。更一般地,块740可以包括关于图6中的过程600的块610描述的任何操作。
79.在块750中,逻辑器件从pld配置发布器接收修改后的受保护的配置。例如,pld配置代理520和/或远程pld管理系统500的其他节点可以被配置为从pld配置发布器510接收在块740中生成的修改后的受保护的配置映像。在各种实施例中,修改后的受保护的配置映像可以至少部分地基于在块720中生成的操作警报报告。更一般地,块750可以包括关于图6中的过程600的块620描述的任何操作。
80.在块760中,逻辑器件向远程pld提供修改后的受保护的配置。例如,pld配置发布器410、pld配置代理520和/或远程pld管理系统500的其他节点可以被配置为经由通信模块450向远程pld 410和/或主机设备440提供在块750中接收到的修改后的受保护的配置。更一般地,块760可以包括关于图6中的过程600的块630描述的任何操作。
81.在块770中,逻辑器件根据修改后的受保护的配置对远程pld进行编程。例如,远程pld 410和/或主机设备440可以被配置为接收由pld配置发布器410、pld配置代理520和/或远程pld管理系统500的其他节点在块760中提供的修改后的受保护的配置,并且根据修改后的受保护的配置映像对pld结构400进行编程。在各种实施例中,修改后的受保护的配置映像可以被配置为识别、校正和/或减轻在块710中检测到的操作异常,如本文所述。在一些实施例中,修改后的受保护的配置映像可以存储在远程pld 410的nvm 420中和/或通过远程pld 410的可编程i/o 408联接到pld结构400。更一般地,块770可以包括关于图6中的过程600的块640描述的任何操作。在完成此类编程后,远程pld 410可以根据修改后的受保护的配置重新启动和/或操作。
82.因此,通过采用本文描述的系统和方法,本公开的实施例能够提供用于远程pld的灵活且安全的管理。可以安全地更新、调试和/或以其他方式管理主机设备的远程pld,而不会有暴露客户数据的风险并且对用户干预的需求最小。此外,远程pld可以根据例如更新的客户数据或根据新的客户应用安全地重新提供,而不需要将远程pld返回给制造商。
83.在适用的情况下,可以使用硬件、软件或者硬件和软件的组合来实施本公开提供的各种实施例。此外,在适用的情况下,在不脱离本公开的精神的情况下,本文中阐述的各种硬件部件和/或软件部件可以组合成包括软件、硬件和/或两者的复合部件。在适用的情况下,在不脱离本公开的精神的情况下,本文阐述的各种硬件部件和/或软件部件可以被分成包括软件、硬件或两者的子部件。此外,在适用的情况下,考虑了软件部件可以实施为硬件部件,反之亦然。
84.根据本公开的软件,诸如非暂时性指令、程序代码和/或数据,可以存储在一个或多个非暂时性机器可读介质上。还考虑了本文中标识的软件可以使用一个或多个通用或专
用计算机和/或联网的和/或其他方式的计算机系统来实施。在适用的情况下,本文描述的各个步骤的顺序可以改变、组合成复合步骤和/或分成子步骤以提供本文描述的特征。
85.上述实施例说明而非限制本发明。还应当理解,根据本发明的原理,许多修改和变化是可能的。因此,本发明的范围仅由所附权利要求限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献