用于动态配置执行资源的具有可扩展指令集架构的处理器制造技术

技术编号:17959755 阅读:31 留言:0更新日期:2018-05-16 05:24
一种动态配置执行资源的具有可扩展指令集架构的处理器。该处理器包括可编程执行单元(PEU),其中可对可编程执行单元进行编程以响应于用户定义指令(UDI)来执行用户定义功能。可编程执行单元包括可编程逻辑元件和可编程互连器,可编程逻辑元件和可编程互连器被共同配置为被编程以执行至少一个处理操作。UDI加载器响应于用于指定UDI和对PEU编程所使用的编程信息的位置的UDI加载指令。可编程执行单元可以针对一个或多个UDI进行编程以用于一个或多个处理。指令表存储各UDI和相应的用以标识该UDI并根据需要可对可编程执行单元进行重新编程的信息。UDI处理程序询问指令表以标识接收到的UDI并将相应信息发送给可编程执行单元从而执行相应的用户定义功能。

A processor with extensible instruction set architecture for dynamically configuring execution resources

A processor with dynamically extensible instruction set architecture for executing execution resources. The processor includes a programmable execution unit (PEU), which can be programmed for a programmable execution unit to perform user defined functions in response to a user defined instruction (UDI). Programmable execution units include programmable logic elements and programmable interconnects, and programmable logic elements and programmable interconnects are configured to be programmed to perform at least one processing operation. The UDI loader responds to the UDI loading instruction for specifying the location of the UDI and the programming information used in PEU programming. A programmable execution unit can be programmed for one or more UDI for one or more processing. The instruction list stores UDI and corresponding information for identifying the UDI and reprogramming the programmable execution unit as required. The UDI handler asks the instruction table to identify the received UDI and sends the corresponding information to the programmable execution unit to perform the corresponding user defined function.

【技术实现步骤摘要】
【国外来华专利技术】用于动态配置执行资源的具有可扩展指令集架构的处理器相关申请的交叉引用本申请要求全部内容针对所有意图和目的而通过引用包含于此的以下美国临时专利申请的优先权。本申请涉及同时提交的全部内容针对所有意图和目的而通过引用包含于此的以下美国专利申请。
本专利技术通常涉及处理器,更特别地,涉及使得能够动态配置执行资源的具有可扩展指令集架构的处理器。
技术介绍
处理器持续变得更强大。如这里所使用的术语“处理器”是指包括微处理器、中央处理单元(CPU)、处理核、微控制器等的任意类型的处理单元。如这里所使用的术语“处理器”还包括诸如集成在芯片或集成电路(IC)上的处理单元等的处理器配置,其中这些芯片或集成电路包括芯片系统(SOC)内所包含的芯片或集成电路等。半导体制造技术正持续改善,从而使速度增加、功耗降低并且使得处理芯片上所集成的电路的尺寸减小。集成尺寸的减小允许在处理单元内并入附加功能。然而,一旦制造了处理器,其执行处理功能及其指令集架构(ISA)基本上是固定的。编程器或编译器不能偏离针对给定处理器配置而定义的标准指令的明确定义的界限、而不冒不适当操作甚至故障的风险。许多应用被编写以包括被设计为进行特定功能或处理操作的一系列指令,其中该特定功能或处理操作并不由处理单元内的任何硬件块来特别进行。通常,这种代码包括可以在应用程序执行期间执行相当多次的软件循环。尽管处理器可以被制造成包括硬件块来进行特定功能以加速执行和完成从而提高该特定应用的性能,但是这种解决方案是不实际的,这是因为该硬件块可能对于任何其它程序均无用处。因此,通用处理器通常被制造成包括相对常见和基本的功能,这些功能对于各种不同的软件应用而言通常是有用且实用的。编程器必须使用所提供的标准指令集来构建算法、功能和操作以满足特定应用的需求。
技术实现思路
根据一个实施例的处理器包括解码器、可编程执行单元(PEU)、指令表和用户定义指令(UDI)加载器。解码器将预定指令集架构的指令转译为处理器的预定本地指令集的本地指令,并将本地指令转发到具有预定执行功能的执行系统。解码器将接收到的UDI加载指令转发到UDI加载器。UDI加载指令指定UDI和编程信息的外部位置。PEU包括可编程逻辑元件和可编程互连器,可编程逻辑元件和可编程互连器被共同配置为被编程以执行至少一个处理操作。指令表可编程为包括至少一个UDI和至少一个与UDI相对应的内部指令。UDI加载器响应于UDI加载指令以利用指定的UDI对指令表进行编程,并且UDI加载器响应于指定的UDI来检索编程信息并对PEU进行编程以执行相应的处理操作。处理器还可以包括UDI处理程序,该UDI处理程序用于判断所接收的UDI是否在指令表中被编程为指定的UDI,以及如果所接收的UDI在指令表中被编程为指定的UDI,则将相应的内部指令转发到PEU以执行相应的处理操作。根据另一实施例的处理器包括至少一个执行单元、PEU、解码器和UDI系统。各执行单元执行处理器的预定本地指令集的本地指令。PEU包括可编程逻辑元件和可编程互连器,可编程逻辑元件和可编程互连器被共同配置为被编程为响应于内部指令执行至少一个处理操作。解码器将预定指令集架构的标准指令转换成处理器的预定本地指令集的本地指令。解码器将用于指定UDI的接收的UDI加载指令和相应编程信息的外部位置转发到UDI系统。UDI系统包括指令表和UDI加载器。指令表可编程为包括至少一个UDI和至少一个相应的内部指令。UDI加载器响应于UDI加载指令,以利用指定的UDI对指令表进行编程,检索相应的编程信息,并利用相应编程信息对PEU进行编程。处理器还可以包括UDI处理程序,该UDI处理程序用于判断所接收的UDI是否在指令表中被编程,以及如果所接收的UDI在指令表中被编程,则将内部指令转发到PEU以执行相应的处理操作。根据一个实施例的使用可动态配置的执行资源来扩展处理器的指令集的方法包括:将包括可编程逻辑元件和可编程互连器的PEU并入到处理器内,可编程逻辑元件和可编程互连器被共同配置为被编程以响应于用户定义指令(UDI)执行用户定义的处理操作;以及响应于接收到包括UDI和用于定位外部可访问的编程信息的地址的UDI加载指令,利用UDI和用于外部可访问的编程信息的地址对指令表进行编程,并且访问编程信息并利用该编程信息对PEU进行编程。该方法还可以包括:响应于接收到用于执行的UDI,访问指令表以判断所接收的UDI是否位于该指令表内,以及如果所接收的UDI位于指令表内,则调用PEU以执行用户定义的处理操作。附图说明参考以下描述和附图,将更好地理解本专利技术的益处、特征和优点,其中:图1是根据本专利技术的一个实施例实现的包括第一可编程执行单元的处理器的简化框图;图2是根据本专利技术的一个实施例实现的图1的处理核的简化框图;图3是根据本专利技术的一个实施例实现的图2的解码器的简化框图;图4是根据本专利技术的一个实施例的图1的可编程执行单元(PEU)的简化框图;图5是示出根据本专利技术的一个实施例的图1的处理核的用于处理应用内所包括的用户定义指令(UDI)的操作的流程图;图6是示出根据本专利技术的一个实施例的图3的UDI加载器的用于与可编程执行单元进行协商以对处理核进行编程从而响应于UDI加载命令进行与UDI相关联的处理操作的操作的流程图;图7是示出根据本专利技术的一个实施例的图3的UDI加载器的用以卸载针对已被操作系统终止的特定进程而编程的各UDI的操作的流程图;图8是根据本专利技术的一个实施例的PEU内的图4的可编程逻辑的更详细的框图;图9是根据本专利技术的一个实施例实现的图8的可编程逻辑元件的示意框图;图10是根据本专利技术的一个实施例实现的图9的查找表(LUT)的示意图;图11是根据本专利技术的一个实施例的用于对PEU进行编程的编程信息的格式的简化框图。图12是示出根据本专利技术的一个实施例的用于生成包含一个或多个UDI和对PEU编程用的相应编程信息的应用的第一方法的简化框图;图13是示出根据本专利技术的一个实施例的用于生成包含一个或多个UDI和对PEU进行编程的相应编程信息的应用的第二方法的简化框图;图14是示出根据本专利技术的一个实施例的用于生成包含一个或多个UDI和对PEU进行编程的相应编程信息的应用的另一方法的简化框图;图15是大致示出根据本专利技术的一个实施例的图1的处理器的操作码空间的简化框图;图16是用根据本发的一个实施例的UDI替代应用程序的例程中的标准代码以提供使用这些UDI的替代应用程序的简化示例;以及图17是用根据本专利技术另一实施例的UDI替代应用程序的例程中的标准代码以提供使用这些UDI的替代应用程序的简化示例。具体实施方式专利技术人已经认识到与具有固定执行资源和相应限制指令集的处理器相关联的低效率。因此,专利技术人开发了一种动态配置与可扩展ISA配合的执行资源以提高处理器工作效率的系统和方法。代替必须使用标准限制指令集来编写代码,软件程序员可以选择编写硬件功能描述来进行特定的处理操作。通过编程工具等将硬件功能描述转换为编程信息,其中将编程信息并入可执行代码中。在执行期间,使用编程信息来对处理器内的可编程执行单元(PEU)进行编程以进行相同的处理操作。PEU是一种硬件加速器,与PEU所替代的代码相比,PEU可以更快且更有效地进行处理操作。软件程序员还可本文档来自技高网
...
用于动态配置执行资源的具有可扩展指令集架构的处理器

【技术保护点】
一种处理器,包括:解码器,用于将预定指令集架构的多个标准指令转译为所述处理器的预定本地指令集的本地指令,并将所述本地指令转发到具有预定执行功能的执行系统,其中所述解码器将接收到的用户定义指令加载指令即UDI加载指令转发到UDI加载器,所述UDI加载指令用于指定UDI以及编程信息的外部位置;可编程执行单元即PEU,其包括多个可编程逻辑元件和多个可编程互连器,所述多个可编程逻辑元件和所述多个可编程互连器被共同配置为被编程以执行至少一个处理操作;以及指令表,其能够被编程为包括至少一个UDI和与所述至少一个UDI各自相对应的至少一个内部指令,其中,所述UDI加载器响应于所述UDI加载指令以利用指定的UDI对所述指令表进行编程,以及所述UDI加载器响应于指定的UDI来检索所述编程信息并对所述PEU进行编程以执行相应处理操作。

【技术特征摘要】
【国外来华专利技术】2015.12.08 US 62/264,816;2016.10.28 US 15/337,1401.一种处理器,包括:解码器,用于将预定指令集架构的多个标准指令转译为所述处理器的预定本地指令集的本地指令,并将所述本地指令转发到具有预定执行功能的执行系统,其中所述解码器将接收到的用户定义指令加载指令即UDI加载指令转发到UDI加载器,所述UDI加载指令用于指定UDI以及编程信息的外部位置;可编程执行单元即PEU,其包括多个可编程逻辑元件和多个可编程互连器,所述多个可编程逻辑元件和所述多个可编程互连器被共同配置为被编程以执行至少一个处理操作;以及指令表,其能够被编程为包括至少一个UDI和与所述至少一个UDI各自相对应的至少一个内部指令,其中,所述UDI加载器响应于所述UDI加载指令以利用指定的UDI对所述指令表进行编程,以及所述UDI加载器响应于指定的UDI来检索所述编程信息并对所述PEU进行编程以执行相应处理操作。2.根据权利要求1所述的处理器,其中,还包括UDI处理程序,其中,所述解码器将接收到的UDI转发到所述UDI处理程序,所述UDI处理程序判断接收到的UDI是否在所述指令表中被编程为指定的UDI,以及如果接收到的UDI在所述指令表中被编程为指定的UDI,则所述UDI处理程序将相应的所述至少一个内部指令转发到所述PEU以执行所述相应处理操作。3.根据权利要求1所述的处理器,其中,所述PEU的所述多个可编程逻辑元件和所述多个可编程互连器被细分为大致相同的多个可编程区段。4.根据权利要求3所述的处理器,其中,所述PEU还包括分配和编程逻辑,所述分配和编程逻辑用于分配适于执行所述相应处理操作的多个所述可编程区段,并利用所述编程信息对所分配的多个所述可编程区段进行编程。5.根据权利要求4所述的处理器,其中,所述编程信息包括资源声明,以及所述分配和编程逻辑使用所述资源声明来确定所述可编程区段的数量。6.根据权利要求1所述的处理器,其中,所述多个可编程逻辑元件包括多个可编程查找表。7.根据权利要求1所述的处理器,其中,所述多个可编程逻辑元件包括多个加法器、多个复用器和多个寄存器。8.根据权利要求1所述的处理器,其中,所述PEU还包括通过所述编程信息编程以对所述多个可编程逻辑元件至少之一和所述多个可编程互连器至少之一进行编程的可编程存储器。9.根据权利要求8所述的处理器,其中,所述编程信息包括位流,所述位流包括被扫描到所述PEU的所述可编程存储器中的多个位。10.根据权利要求1所述的处理器,其中,指定的UDI包括宏指令,以及相应的所述至少一个内部指令包括至少一个微指令。11.根据权利要求10所述的处理器,其中,所述至少一个微指令包括用于指示所述相应处理操作的等待时间的UDI微指令,所述处理器还包括:PEU调度器,用于使用所指示的所述等待时间来对所述UDI微指令向所述PEU的分派进行调度。12.根据权利要求1所述的处理器,其中,对所述PEU进行编程以执行多个处理操作,其中所述多个处理操作各自用于被编程到所述指令表中的多个UDI中的相应UDI。13.根据权利要求12所述的处理器,其中,不同的多个进程各自是由多个进程标识符中的相应进程标识符所标识的,以及所述指令表中的针对所述多个UDI各自的各条目是利用所述多个进程标识符中的相应进程标识符进行编程的。14.根据权利要求13所述的处理器,其中,所述指令表针对所述多个UDI中的各UDI存储唯一执行标识符,所述唯一执行标识符用于标识被编程到所述PEU中的所述多个处理操作中的相应处理操作。15.根据权利要求14所述的处理器,其中,所述PEU将接收到的内部指令应用于所述PEU中的利用所述多个处理操作中的相应处理操作进行编程并且由所述唯一执行标识符所标识的部分。16.一种处理器,包括:至少一个执行单元,用于执行所述处理器的预定本地指令集的本地指令;可编程执行单元即PEU,其包括多个可编程逻辑元件和多个可编程互连器,所述多个可编程逻辑元件和所述多个可编程互连器被共同配置为被编程以响应于内部指令来执行至少一个处理操作;以及解码器,用于将预定指令集架构的多个标准指令转换为所述处理器的所述预定本地指令集的所述本地指令,并将接收到的用户定义指令加载指令即UDI加载指令转发到UDI系统,所述UDI加载指令用于指定UDI以及相应编程信息的外部位置,其中,所述UDI系统包括:指令表,其能够被编程为包括至少一个UDI和相应的至少一个内部指令;以及UDI加载器,用于响应于所述UDI加载指令以利用指定的UDI对所述指令表进行编程,检索所述相应编程信息,并利用所述相应编程信息对所述PEU进行编程。17.根据权利要求16所述的处理器,其中,还包括UDI处理程序,其中,所述解码器将接收到的UDI转发到所述UDI处理程序,所述UDI处理程序判断接收到的UDI是否在所述指令表中被编程,以及如果接收到的UDI在所述指令表中被编程,则所述UDI处理程序将所述内部指令转发到所述PEU以执行所述至少一个处理操作中的相应处理操作。18.根据权利要求16所述的处理...

【专利技术属性】
技术研发人员:G·葛兰·亨利罗德尼·E·虎克泰瑞·派克斯道格拉斯·R·瑞德
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1