微处理器以及相关指令执行的方法技术

技术编号:9618119 阅读:78 留言:0更新日期:2014-01-30 05:51
本发明专利技术提供一种微处理器以及相关指令执行的方法,微处理器包括指令集结构,指令集结构包括呼叫指令类型、返回指令类型及其他指令类型。执行单元用以正确地执行其他指令类型的程序指令。呼叫/返回堆叠具有多个以后进先出方式设置的项目。呼叫/返回堆叠为微处理器的结构状态,其不可被其他指令类型的程序指令所修改,但可被呼叫及返回指令类型的程序指令所修改。微处理器包括提取单元,用以提取程序指令及传送其他指令类型的程序指令至执行单元以被正确地执行。提取单元正确地执行呼叫及返回指令类型的程序指令,而不传送呼叫及返回指令类型的程序指令至执行单元以被正确地执行。本发明专利技术需更少的微处理器资源来解析及引退快速呼叫及返回指令。

Microprocessor and method for executing related instructions

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)至存储器中的一个堆叠的堆叠指针值上)。一个返回指令亦会更新结构堆叠指针暂存器。许多传统处理器也预测地(speculatively)执行指令。也就是说,当传统处理器遇到一个条件分支指令,其预测分支指令的结果(即方向以及目的地址),并根据预测结果继续提取以及执行指令。当一个呼叫或返回指令发生在指令的预测路径上,直到处理器不再预测的执行时,处理器才更新关联于呼叫或返回指令的结构状态,亦即直到处理器解析(resolve)完所有在呼叫或返回指令之前的条件分支指令。也就是说,传统的处理器将呼叫或返回指令送至其多个执行单元,并且在执行单元解析完所有在呼叫或返回指令之前被提取且未引退的条件分支指令之后,更新关联于呼叫或返回指令的结构状态。因此,呼叫以及返回指令像其他指令(例如条件分支指令),会通过执行阶段(stage)以及引退(retirement)阶段以被执行以及引退。因此,就时脉周期来说,呼叫或返回指令的延迟与其他指令相同。再者,呼叫或返回指令消耗相当多的资源,例如,执行单元的时间槽(timeslot)、暂存器别名表(register alias table,以下简称RAT)项目(entry)、保留站项目或重排序缓冲器项目。因此,需要一种具有更佳技术的微处理器,以允许程序来呼叫子程序以及从子程序返回。
技术实现思路
本专利技术实施例提供一种微处理器,包括一指令集结构,其中包括一呼叫指令类型、一返回指令类型以及其他指令类型。且该微处理器包括一执行单元,其用以正确地执行其他指令类型的程序指令;以及一呼叫/返回堆叠,其具有多个以后进先出方式设置的项目。呼叫/返回堆叠为微处理器的结构状态,其不可被其他指令类型的程序指令所修改,但其可被呼叫以及返回指令类型的程序指令所修改。微处理器也包括一提取单元,用以提取程序指令以及传送其他指令类型的程序指令至执行单元以被正确地执行。提取单元正确地执行呼叫以及返回指令类型的程序指令,而不传送呼叫以及返回指令类型的程序指令至执行单元以被正确地执行。本专利技术另一实施例提供一种指令执行的方法,用以立即地执行一微处理器的一提取单元中呼叫以及返回指令类型的程序指令。方法包含由提取单元提取程序指令,其中程序指令包括微处理器的一指令集结构的一呼叫指令类型、一返回指令类型以及其他指令类型。方法包含由提取单元传送其他指令类型的程序指令至微处理器的执行单元以被正确地执行。方法也包含正确地执行呼叫以及返回指令类型的程序指令,而不传送上述呼叫以及返回指令类型的程序指令至执行单元以被正确地执行。其中正确地执行上述呼叫以及返回指令类型的程序指令由提取单元所执行。呼叫以及返回指令类型的程序指令修改一呼叫/返回堆叠,此呼叫/返回堆叠为微处理器的结构状态。其中,呼叫/返回堆叠具有多个个以后进先出方式设置的项目,且其中呼叫/返回堆叠为不可被其他指令类型的程序指令所修改的结构状态。本专利技术的其中一个优点在于,由于提取单元(其可为微码单元)可在不将快速呼叫以及返回指令分配至执行管线的情况下,直接执行以及引退快速呼叫以及返回指令,因此,快速呼叫以及返回指令的执行可以比传统呼叫以及返回指令的执行具有更少的延迟。其次,利用提取单元正确的执行快速呼叫以及返回指令,可避免在传统呼叫以及返回指令中,产生的错误预测以及后续更正(correction)所耗费的微处理器资源。本专利技术的另一个优点为,可使用比传统呼叫以及返回指令所需的更少的微处理器资源来解析以及引退快速呼叫以及返回指令。例如,由于快速呼叫或返回指令并没有被分配至执行管线,因此快速呼叫以及返回指令并不会占用在暂存器别名表、保留站、执行单元或重排序缓冲器中的项目。【附图说明】图1是显示依据本专利技术施例的一微处理器的区块图。图2是显示图1中依据本专利技术的快速呼叫/返回堆叠单元122的区块图。图3是显示一依据本专利技术实施例的流程图,显示快速呼叫/返回堆叠单元的初始化流程。图4是显示依据本专利技术实施例的图1的提取单元的操作流程图,以处理一个快速呼叫指令。图5是显示依据本专利技术实施例的一流程图,用以显示图1的提取单元执行一个快速返回指令的操作。图6是显示依据本专利技术实施例的一流程图,用以显示图1的微处理器执行一个条件分支指令的操作。图7a、图7b与图7c是显示依据本专利技术实施例的一表格,用以显示图1的微处理器100执行一个程序顺序的操作。图8是显示依据本专利技术另一实施例的一微处理器示意图。图9是显示依据本专利技术实施例的一流程图,用以显示图8的微处理器的操作,用以处理由微码所实现的一使用者程序,其中使用者程序可包含可由一微码单元所提取以及执行的快速呼叫以及返回指令。【具体实施方式】为使本专利技术的上述和其他目的、特征、和优点能更明显易懂,下文特举出较佳实施例,并配合所附图式,作详细说明如下。参见图1,是显示依据本专利技术的一微处理器100的区块图。微处理器100包括一提取单元(fetch unit) 104,其从一指令快取106提取程序指令。一指令指针暂存器112提供一提取地址168至指令快取106。提取单元104从指令快取106的提取地址168上提取指令。提取的程序指令可包含使用者程序指令,例如一个操作系统或应用程序。提取的指令可包含一般指令,其中包含条件分支指令(conditional branch instruction,以下简称CB)。提取的指令也包含依据本专利技术的快速呼叫以及返回指令。一般指令(normal instruction)为由微处理器100的执行单元138执行以及引退单元(retire unit) 144引退的程序指令。相反地,一个快速呼叫或返回指令为一由微处理器100的提取单元104或微码单元128所解析以及引退的程序指令,而非由微处理器100的执行单元138以及引退单元本文档来自技高网
...

【技术保护点】
一种微处理器,其特征在于,包括:一提取单元,用以提取多个程序指令,上述程序指令包括一呼叫指令类型、一返回指令类型以及其他指令类型,其中在执行每一上述返回指令类型的指令之前,必须先执行过上述呼叫指令类型的一对应指令;多个执行单元,用以正确地执行上述其他指令类型的程序指令;以及一快速呼叫/返回堆叠单元,其包括多个呼叫/返回堆叠,每个上述呼叫/返回堆叠具有以一后进先出方式设置的多个项目,其中上述呼叫/返回堆叠为上述微处理器的结构状态,其不能被上述其他指令类型的程序指令所修改,其能被上述呼叫指令类型以及上述返回指令类型的程序指令所修改,其中,上述提取单元还用以传送上述其他指令类型的上述程序指令至上述执行单元以被正确地执行,并且上述提取单元用以正确地执行上述呼叫指令类型以及上述返回指令类型的程序指令,而不传送上述呼叫指令类型以及上述返回指令类型的上述程序指令至上述执行单元。

【技术特征摘要】
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·葛兰·亨利泰瑞·派克斯布兰特·比恩
申请(专利权)人:威盛电子股份有限公司
类型:发明
国别省市:

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

1