当前位置: 首页 > 专利查询>英特尔公司专利>正文

具有内嵌中断服务功能的中断返回指令制造技术

技术编号:10356437 阅读:134 留言:0更新日期:2014-08-27 12:42
描述了实现在半导体芯片上的指令流水线。该半导体芯片包括执行单元,具有如下项来执行中断处理指令。存储电路,用于保持不同的微操作集合,其中每一微操作集合用于处理不同中断。第一逻辑电路,用于执行所述微操作集合中的一微操作集合以处理中断,所述微操作集合针对该中断而设计。第二逻辑电路,用于在第一逻辑电路已经处理了所述中断之后将程序流返回至调用程序。

【技术实现步骤摘要】
【国外来华专利技术】具有内嵌中断服务功能的中断返回指令
技术介绍

本专利技术的领域一般涉及计算系统,且尤其涉及具有嵌入式中断服务功能的中断返回指令。
技术介绍
指令执行流水线图1示出了在半导体芯片上用逻辑电路实现的处理核100的高级图。该处理核包括流水线101。该流水线由各自被设计成在完全执行程序代码指令所需的多步骤过程中执行特定步骤的多个级组成。这些通常至少包括:1)指令取出和解码;2)数据取出;3)执行;4)写回。执行级对由相同指令标识出并在另一上述先前级(例如,步骤2)中被取出的数据执行由上述先前步骤(例如在步骤I)中所取出和解码的指令所标识出的特定操作。被操作的数据通常是从(通用)寄存器存储空间102中取出的。在该操作完成时所创建的新数据通常也被“写回”到寄存器存储空间(例如,在级4处)。与执行级相关联的逻辑电路通常由多个“执行单元”或“功能单元” 103_1至103_N构成,这些单元各自被设计成执行其自身的独特的操作子集(例如,第一功能单元执行整数数学操作,第二功能单元执行浮点指令,第三功能单元执行自/至高速缓存/存储器的加载/存储操作等等)。由所有这些功能单元执行的所有操作的集合与处理核100所支持的“指令集”相对应。IRET 指令图2涉及中断、错误、或异常的服务。软件程序经常可被视为多个并发的活动程序和/或过程。尽管没有严格要求,实践中,程序/过程202和203对应于不同的软件和/或硬件“线程”。为简洁起见,由于程序、过程和线程可各自被视为所执行的指令的连续序列,术语“程序”也可被用于指过程以及线程。通常,活动程序201 (如,设备驱动程序或应用软件程序)将遭遇一些类型的问题,并通过执行“中断指令”((INTRPT_INSTR))202,向中断处理程序203报告或“抛出”中断、错误、或异常。此处,中断指令202是作为中断、错误、或异常的结果而调用中断处理程序的程序代码的任意部分。另外,将中断、错误、或异常中的任一个称为“中断”。中断处理程序203 —般是专门设计以处理中断(如,操作系统(OS)内核的中断处理程序)的系统程序。由于活动程序201调用中断处理程序203,活动程序201也可被称为调用程序201。中断指令202的功能一般包括将两项信息传递给中断处理程序203:i)标识已经遭遇到的特定问题的特定代码204和/或其他信息项;和ii)返回地址指针205,标识在中断被处理之后要执行的调用程序201的下一个指令206的地址。中断处理程序203 “处理”引起中断发生的问题。处理程序203a的开始部分使用特殊代码204作为查找表206的查找参数,标识被写入来处理由代码204标识的特定问题的子例程程序203b的初始地址。程序流程跳至这个子例程203b且处理引起中断的问题。一旦处理了引起中断的问题,就执行IRET指令203c来使得过程流跳回或“返回”207至调用程序201。由此,IRET指令的功能包括引用引起期望程序流跳转的返回地址指针205。【附图说明】本专利技术是作为示例说明的,而不仅限制于各个附图的图形,在附图中,类似的参考编号表示类似的元件,其中:图1示出指令执行流水线;图2示出处理中断的传统执行;图3示出用于处理中断的改进方法;图4示出执行单元逻辑电路的实施例,该电路能执行对应于改进的中断处理方法的指令;图5示出可由图4的指令执行逻辑执行的方法;图6示出更详细的指令执行流水线;图7示出计算系统。【具体实施方式】概览【具体实施方式】面向问题的处理器开发,特别是在芯片上系统(SOC)实现的嵌入式处理器的情况下,定义为鉴于处理器和SOC芯片被设计用于的广泛扩展的各种应用的处理器指令集。在没有足够防范的情况下,将可适合任何应用的所有指令集设计到“标准核”中可将指令集扩展为包括太多的指令。在服务中断处理的情况下,例如,如果特殊指令被设计为特别地支持可在任何应用/环境中出现的很多各种类型的中断的指令集,指令集扩展为支持中断处理可达到极限,最终导致对于任何应用都是较劣地设计的处理器。即,例如,可能将数十或数百特殊指令设计至标准指令集,但是对于大多应用而言,实际上需要指令的较小的子集。另外,使用的特定子集可对于各应用而不同。与此同时,在中断服务中设计的对在一系列不同的可能/潜在的中断的硬件支持避免了必须逐处理器、逐应用地来定制修改硬件支持、或将硬件支持的中断处理放在一起的相反的问题集。实现中断服务的扩展的硬件支持作为标准处理器设计的一部分而不过度扩展处理器的指令集的问题的解决方法在于,将硬件支持设计到IRET指令本身的功能里。此处,IRET指令接受:i)第一输入操作数X,标识遇到的特定问题,和ii)第二输入操作数Y,是标识在处理了引起中断的问题之后将要被执行的调用程序的下一个指令的地址。显然,将中断服务的硬件支持内嵌到IRET指令的功能里并没有扩展指令集。SP,可调用相同的IRET指令来将控制转移回(可能地)引起(可能地)任何中断的任何调用程序,且IRET指令已经将直接处理(可能地)任何中断的能力内嵌在自身内。方便起见,本专利技术的IRET指令此后将被称为IRET0VLD指令(IRET “过载”的助记符号)。图3示出可直接与图2的传统过程流相比较的过程流。此处,与图2中类似,调用程序301向中断处理程序303提出中断302。如上所述,中断指令302的功能包括将两项信息传递给中断处理程序303:i)标识已经遭遇到的特定问题的特定代码304和/或其他信息项JPii)返回地址指针305,标识在已处理中断之后要执行的调用程序301的下一个指令306的地址。在一个实施例中,通过调用程序301,两项信息304、305正式被传输写入寄存器或存储器空间。之后,这两项的地址被包括在形式IRET0VLDXY的指令内。此处,X对应于问题代码信息304且Y对应于返回地址指针305。在一实施例中,X和Y不是显性操作数而被隐性地传输。例如,在又一个实施例中,X参数通过控制寄存器的部分被传输至中断处理程序,控制寄存器诸如x86架构中的CRl控制寄存器或其他架构中的等效的控制寄存器。另夕卜,返回地址指针Y完全没有被实现为操作数。而是,当中断发生时,返回地址指针被推入内核栈。IRET0VLD指令从内核栈(且没有从显性操作数)中得到返回地址和处理器状态标志。然而,为简洁起见和容易理解,在下文描述中提及X和Y,就好像它们是显性的。然而,读者要注意,使用控制寄存器和将返回地址推入内核栈允许IRET0VLD指令向下兼容地或通过代码调用,该代码没有理解IRET0VLD的功能而是作为传统IRET指令。由此,为了保持IRET0VLD向下兼容,或至少能在不引入新的指令的情况下增加新的功能,IRET0VLD指令在技术上被实现为“IRET”指令而不是新的“IRET0VLD”指令。以此方式,理解此处描述的“新的” IRET功能的新的软件可利用该指令,同时,例如,未理解IRET功能的旧有软件可仍引用作为传统IRET指令的指令。响应于调用程序301的调用,由处理器流水线取出并解码IRETOVLD X Y指令。在流水线的数据取出阶段,信息的X和Y项304、305被取出并呈现给执行单元,该执行单元执行IRETOVLD X Y指令的功能。IRETOVLD X Y指令的执行本文档来自技高网...
具有内嵌中断服务功能的中断返回指令

【技术保护点】
一种实现在半导体芯片上的指令流水线,包括:执行单元,具有如下部件以执行中断处理指令:a)存储电路,用于保持不同的微操作集合,其中每一微操作集合用于处理不同中断;b)第一逻辑电路,用于执行所述不同微操作集合中的一微操作集合以处理中断,所述微操作集合针对所述中断而设计;c)第二逻辑电路,用于在所述第一逻辑电路已经处理了所述中断之后将程序流返回至调用程序。

【技术特征摘要】
【国外来华专利技术】1.一种实现在半导体芯片上的指令流水线,包括: 执行单元,具有如下部件以执行中断处理指令: a)存储电路,用于保持不同的微操作集合,其中每一微操作集合用于处理不同中断; b)第一逻辑电路,用于执行所述不同微操作集合中的一微操作集合以处理中断,所述微操作集合针对所述中断而设计; c)第二逻辑电路,用于在所述第一逻辑电路已经处理了所述中断之后将程序流返回至调用程序。2.如权利要求1所述的指令流水线,其特征在于,所述存储电路是ROM。3.如权利要求1所述的指令流水线,其特征在于,所述执行单元还包括查找表电路,所述查找表电路响应于呈现给所述查找表电路的所述中断的问题代码来提供指向所述存储电路内的所述集合之一的指针。4.如权利要求3所述的指令流水线,其特征在于,所述查找表电路包括ROM。5.如权利要求3所述的指令流水线,其特征在于,所述查找表电路耦合至寄存器,所述寄存器用于存储所述问题代码。6.如权利要求1所述的指令流水线,其特征在于,还包括用于存储返回指针地址的寄存器。7.如权利要求6所述的指令流水线,其特征在于,所述寄存器耦合至所述第二逻辑电路。8.一种实现在半导体芯片上的指令流水线,包括: 执行单元,具有如下部件以执行中断处理指令: a)存储电路,用于保持不同的微操作集合,其中每一微操作集合用于处理不同中断; b)第一逻辑电路,用于执行所述不同微操作集合中的一微操作集合以处理中断,所述微操作集合针对所述中断而设计; c)第二逻辑电路,用于在所述第一逻辑电路已经处理了所述中断之后将程序流返回至调用程序; d)寄存器,用于保持由所述调用程序提供的所述指令的输入操作数信息,所述输入操作数信息指定由所述调用程序所期望的数据项,所述寄存器耦合至所述第一逻...

【专利技术属性】
技术研发人员:X·蒋方震S·马基嫩R·G·伊利卡尔R·艾耶
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1