The invention provides a microprocessor and a method for executing related instructions. The microprocessor comprises an instruction set structure, and the instruction set structure comprises a call instruction type, a return instruction type and other instruction types. The execution unit is a program instruction that performs other instruction types correctly. The call / return stack has items with multiple first in first out settings. The call / return stack is the structural state of the microprocessor, which cannot be modified by the program instructions of other instruction types, but can be modified by the program instructions that call and return the instruction type. The microprocessor includes the extraction unit, which extracts the program instructions and transmits the program instructions of other instruction types to the execution unit to be executed correctly. The extraction unit performs the program instructions of the call and return instruction correctly, without transmitting the program instructions of the call and return instruction to the execution unit to be executed correctly. The present invention needs less processor resources to quickly call and return instructions and retire.
【技术实现步骤摘要】
本申请是申请日为2010年3月4日、申请号为201010126866.9、专利技术名称为“”的申请的分案申请。
本专利技术有关于微处理器,特别有关于一管线(pipelined)微处理器中的呼叫以及返回指令的处理。
技术介绍
程序通常包含子程序呼叫指令(subroutine call instructions)以及从子程序返回指令(return instruction)。一个呼叫指令会使得一个程序流程从目前的程序或指令序列改变至一个与目前提取及执行的程序不同的一指令序列或程序。一呼叫指令指定(specify) 一个呼叫地址或称目的地址,其为子程序的第一个指令的地址。此外,呼叫指令指示处理器储存在呼叫指令之后的下一个指令地址,此地址称为返回地址。一返回指令也会使得一个程序流程改变至一个与目前提取及执行的程序不同的一个指令序列。然而,一个返回指令并没有明确的指定目的地址(target address)。此外,一个返回指令指示微处理器使用最近一个储存的返回地址当做不同指令序列的第一指令的地址,或是一现在返回(now-returning)子程序的地址。上述现在返回子程序中的返回指令使得处理器开始提取在最近一个已执行的呼叫指令的次一指令。呼叫以及返回指令将更新系统的结构状态(architectural state)。例如,于一个传统x86架构中的处理器,一个呼叫指令更新一个结构堆叠指针暂存器以及更新存储器(即:将一个返回地址推入(push)至存储器中的一个堆叠的堆叠指针值上)。一个返回指令亦会更新结构堆叠指针暂存器。许多传统处理器也预测地(speculativ ...
【技术保护点】
一种微处理器,其特征在于,包括:一提取单元,用以提取多个程序指令,上述程序指令包括一呼叫指令类型、一返回指令类型以及其他指令类型,其中在执行每一上述返回指令类型的指令之前,必须先执行过上述呼叫指令类型的一对应指令;多个执行单元,用以正确地执行上述其他指令类型的程序指令;以及一快速呼叫/返回堆叠单元,其包括多个呼叫/返回堆叠,每个上述呼叫/返回堆叠具有以一后进先出方式设置的多个项目,其中上述呼叫/返回堆叠为上述微处理器的结构状态,其不能被上述其他指令类型的程序指令所修改,其能被上述呼叫指令类型以及上述返回指令类型的程序指令所修改,其中,上述提取单元还用以传送上述其他指令类型的上述程序指令至上述执行单元以被正确地执行,并且上述提取单元用以正确地执行上述呼叫指令类型以及上述返回指令类型的程序指令,而不传送上述呼叫指令类型以及上述返回指令类型的上述程序指令至上述执行单元。
【技术特征摘要】
2009.03.04 US 61/157,351;2009.06.09 US 12/481,1991.一种微处理器,其特征在于,包括: 一提取单元,用以提取多个程序指令,上述程序指令包括一呼叫指令类型、一返回指令类型以及其他指令类型,其中在执行每一上述返回指令类型的指令之前,必须先执行过上述呼叫指令类型的一对应指令; 多个执行单元,用以正确地执行上述其他指令类型的程序指令;以及 一快速呼叫/返回堆叠单元,其包括多个呼叫/返回堆叠,每个上述呼叫/返回堆叠具有以一后进先出方式设置的多个项目,其中上述呼叫/返回堆叠为上述微处理器的结构状态,其不能被上述其他指令类型的程序指令所修改,其能被上述呼叫指令类型以及上述返回指令类型的程序指令所修改, 其中,上述提取单元还用以传送上述其他指令类型的上述程序指令至上述执行单元以被正确地执行,并且上述提取单元用以正确地执行上述呼叫指令类型以及上述返回指令类型的程序指令,而不传送上述呼叫指令类型以及上述返回指令类型的上述程序指令至上述执行单元。2.根据权利要求1所述的微处理器,其特征在于,上述提取单元将相应于上述呼叫指令类型的一返回地址推入至上述呼叫/返回堆叠中,接着在上述呼叫指令类型的上述程序指令所指定的一目的地址上提取一程序指令。3.根据权利要求1所述的微处理器,其特征在于,上述提取单元将相应于上述返回指令类型的一返回地址 从上述呼叫/返回堆叠中推出,接着在上述呼叫/返回堆叠所推出的上述返回地址上提取一程序指令。4.根据权利要求1所述的微处理器,其特征在于,上述呼叫/返回堆叠能由上述提取单元所修改且不能由上述执行单元所修改。5.根据权利要求1所述的微处理器,其特征在于,上述呼叫/返回堆叠设置在上述微处理器中。6.根据权利要求1所述的微处理器,其特征在于,还包括: 一微码单元,耦接至上述执行单元,用以提取一微码指令,上述微码指令包括一微码呼叫指令类型、一微码返回指令类型以及微码其他指令类型,上述微码单元用以传送上述微码呼叫指令类型、上述微码返回指令类型以及上述微码其他指令类型的上述微码指令以使其被正确地执行; 其中当上述程序指令为一以微码实现的程序指令,上述提取单元转换控制权至上述微码单元,并且上述微码单元用以正确地执行上述微码呼叫指令类型以及上述微码返回指令类型的程序指令,而不传送上述微码呼叫指令以及上述微码返回指令至上述执行单元。7.根据权利要求1所述的微处理器,其特征在于,上述呼叫/返回堆叠被设置为一环形队列,其中上述其他指令类型包含一条件分支指令类型,其中当上述提取单元在发送未被上述执行单元所解析的上述条件分支指令类型的一程序指令之后提取到上述呼叫指令类型以及上述返回指令类型的一程序指令时,上述微处理器配置上述呼叫/返回堆叠的一新呼叫/返回堆叠,并且复制目前呼叫/返回堆叠的内容至上述新呼叫/返回堆叠,以及将上述新呼叫/返回堆叠设置为上述目前呼叫/返回堆叠。8.根据权利要求7所述的微处理器,其特征在于,当上述微处理器侦测到上述呼叫/返回堆叠中没有任何一个能被配置时,上述提取单元暂停提取程序指令并等候直到上述呼叫/返回堆叠的一个为可用。9.一种快速执行呼叫以及返回指令类型的程序指令的方法,其特征在于,上述方法包括下列步骤: 由一提...
【专利技术属性】
技术研发人员:G·葛兰·亨利,泰瑞·派克斯,布兰特·比恩,
申请(专利权)人:威盛电子股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。