威尼斯人棋牌-威尼斯欢乐娱人城-首页

状态寄存器更新逻辑电路最佳化的系统及其方法

文档序号:6372571
专利名称:状态寄存器更新逻辑电路最佳化的系统及其方法
技术领域
本发明是关于微处理器的领域,特别是关于更新状态寄存器和最佳化逻辑电路。
背景技术
管线式处理(pipeline processing)是一种信息(information)处理的方法。管线(pipeline)是由对信息实行处理的数个单元所组成。在第一个单元完成其对信息的处理之后,信息会被传递到另一单元。对该信息的处理会持续进行,直到信息通过管线中的所有单元为止。
管线的优点是可以增加单位时间的处理量。使得在较少的周期(cycle)之内,可以处理更多的指令(instruction)。
图1示出了一个使用管线式处理的微处理器100的方框图。微处理器100包括指令读取单元(instruction fetch unit)110,该指令读取单元110连接到解码单元115和指令快取单元(insturction cache unit,简称IC)135。解码单元115连接到实行单元120。实行单元120连接到存储器存取单元125。存储器存取单元125连接到寄存器回写单元(register writeback unit)130和存储器140。寄存器缓冲器组105连接到指令读取单元110、解码单元115、实行单元120、和寄存器回写单元130。在一个代表性的实施例中,寄存器回写单元130只能将信号传送到寄存器缓冲器组105,而不能从寄存器缓冲器组105接收信号。
在图1中的微处理器100接收指令顺序作为输入,例如是指令n到指令n+9。指令读取单元110从指令快取单元135,要求和获取指令。指令快取单元135从主处理器存储器获得指令,并存储这些指令。指令快取单元135可以降低指令读取单元110获得指令所需的时间。通过在指令快取单元135中的些指令,指令读取单元110并不需要花费额外的时间等待来自主存储器的指令到达。
当指令读取单元110获取指令时,也会同时要求其它指令。在需要之前,先要求指令,就是一般所知的预取(prefetching)。通过要求指令,快取单元135预取指令,可以进一步降低指令读取单元110等待接收指令所需的时间。在指令读取单元110已经返回指令快取单元135,以获取先前所要求的指令时,指令读取单元110会接收该指令,或必须等待指令快取单元135获得该指令。
每当所要求的指令无法马上提供给指令读取单元110时,指令快取单元135会送出一个等待信号给指令读取单元110。以便告知指令读取单元110其需要等待,以接收该要求,而且在做其它额外的预取要求之前必须等待。
当指令读取单元110从指令快取单元135,接收指令n时,指令读取单元110接下来会要求指令n+1。在下一个时间周期,如果没有从指令快取单元135接收到等待信号,则指令读取单元110会继续要求指令n+2。指令读取单元110接收指令n+1,而解码单元115接收指令n。这个处理程序会持续地在整个微处理器100中进行,直到指令n通过每一个单元、且结果被写回寄存器缓冲器组105为止。
虽然管线式处理可以增加指令群的处理速度,但是,其对于处理必须依赖之前的状态指令(status instruction)的结果的指令而言,仍具有相当困难。状态指令是一种造成系统状态变化的指令,例如是否开启或关闭中断、或是从使用者模式变到系统模式的指令。一旦状态指令已经改变了处理的状态,如果在状态变化期间查询结果,寄存器缓冲器组105会传回错误的结果。
指令的结果会写回寄存器缓冲器组105。因此,每当指令需要上一个指令的结果时,就会在寄存器缓冲器组105中寻找结果。当结果还未写回寄存器缓冲器组105时,就可能产生问题。举例来说,如果实行单元120正在计算一个新的结果,则在该结果写回寄存器缓冲器组105之前,必须先通过存储器存取单元125和寄存器回写单元130。当系统状态变化时,类似的问题也会发生。如果系统状态已经因为状态指令而改变,则在新状态完全通过处理器管线之前,存取依赖目前处理器资源的状态,将会传回错误的结果。
解决这些问题的其中一个方法是数据转送(data forwarding)。如其名称所暗示,数据转送就是将数据或结果,从第一指令转送到第二,也就是一个正在等待该结果的相关(dependent)指令。经由数据转送,相关指令可以毫无错误或延迟地在管线中前进。数据转送可以将系统状态转送到相关指令。接下来所要求的指令就可以获得正确的信息。
数据转送的问题是需要使用额外的硬件来实现。因此将会导致要消耗额外功率的较大晶片。此外,在很多情况下,数据转送必须沿着一条关键路径(critical path)设定。因此会影响整个系统的速度。
本发明打算克服上述的一个或多个前述的问题。

发明内容
为实现本发明的目的,本发明将提供一个用来最佳化更新状态寄存器的管线式微处理器逻辑电路的系统。该系统包括存储单元,用来存储指令;寄存器缓冲器组;读取单元,用来从存储单元读取指令,并且与寄存器缓冲器组连接;以及解码单元,用来解码来自读取单元的指令。其中,当侦测到状态指令时,解码单元会将状态指令的完成延迟一段预定的时间。
为实现本发明的目的,本发明将提供一个用来最佳化更新状态寄存器的管线式微处理器逻辑电路的方法。该方法包括下列步骤在解码单元上接收一个状态指令;在解码单元上指派额外时间周期,直到到达状态指令的终点为止;延迟该状态指令之后的指令,直到额外时间周期结束为止;以及让状态变化通过处理器管线传送。
为使本发明的上述和其它目的、特征、和优点能明显易懂,下文特举一个较佳实施例,并配合所附附图,作详细说明如下


图1示出了一个使用管线式处理的已知的微处理器的方框图。
图2示出了一个根据本发明实现状态寄存器更新逻辑电路最佳化系统的一个微处理器的方框图。
图3示出了一个流程图,用来说明根据本发明实现状态寄存器更新逻辑电路最佳化的程序。
图4示出了一个流程图,用来说明另一个实现状态寄存器更新逻辑电路最佳化的程序。
附图标记说明13 223a-223f寄存器100微处理器105寄存器缓冲器组110指令读取单元115解码单元120实行单元125存储器存取单元130寄存器回写单元135指令快取单元140存储器200微处理器205寄存器缓冲器组210指令读取单元215解码单元217状态变化处理器220实行单元225存储器存取单元230寄存器回写单元235指令快取单元240存储器310~340步骤410~430步骤实施方式图2示出了一个根据本发明用在状态寄存器更新逻辑电路最佳化系统中的微处理器200。图2中的微处理器200使用管线式处理。如前所述,管线式处理使微处理器200增加其处理指令的速度。
在图2中,指令读取单元210连接到解码单元215和指令快取单元235。解码单元215连接到实行单元220。实行单元220连接到存储器存取单元225。存储器存取单元225连接到寄存器回写单元230。存储器存取单元225同时也连接到存储器240。寄存器缓冲器组205连接到指令读取单元210、解码单元215、实行单元220、和寄存器回写单元230。
图2还示出了用在根据本发明实施例的微处理器200的寄存器缓冲器组205中的多个寄存器元件(component)13 223a-223f。解码单元所存取的寄存器13的各个组件,是由处理器的目前状态所控制。在一个脉冲周期结束时,指令读取单元210会获得一个状态指令n。在下一个脉冲周期,状态指令n会移动到解码单元215,而且指令n+1会出现在指令读取单元210。
本发明的解码单元215可以消除与状态指令有关的错误。当在实行单元220中实行时,状态指令n可能会改变系统的状态。
寄存器可能包括如图中所示的微处理器200的寄存器缓冲器组205中的六个元件13 223a-223f。从寄存器13 223a-223f中读取指令,或是将指令写入寄存器13 223a-223f,都是根据目前状态而定。根据系统状态,例如是中断状态、快速中断状态、异常中止(abort)状态、或是未定义指令状态,会从寄存器13 223a-223f的不同组件中读取指令,或是将指令写入寄存器13223a-223f的不同组件。解码单元215可能从寄存器13 223a-223f的六个组件的其中之一读取信息。至于从寄存器13 223a-223f的哪一个组件读取信息,则是根据处理器的目前状态而定。因此,当状态指令n实行时,会改变系统状态,因此也会改变解码单元215所读取的寄存器组件。
当管线中的下一个指令必须依赖前一个状态指令所产生的结果时,问题就会发生。系统的状态已经因为在实行单元220中实行状态指令n而改变,同时解码单元215正在读取一个依赖指令n+1的系统状态所选择的寄存器组件。举例来说,当状态指令n进入实行单元220时,系统可能在状态A。状态指令n会将系统状态改变成状态B。然而,解码单元215正在读取指令n+1的寄存器13。当系统目前是状态A时,解码单元215会从寄存器13的组件A223a读取数据。然而,当指令n+1移入实行单元220时,系统已经变成状态B。指令n+1必须使用来自寄存器13的组件B223b的数据,但是,却具有来自寄存器13的组件A的数据。因此,如果使用根据寄存器13的组件A的结果,指令n+1将会产生错误数据。
因此,在本发明的实施例中,解码单元215配置一个状态变化寄存器(status change handler)217,用来辨识造成状态变化的状态指令。当侦测到状态指令时,解码单元215会让状态指令实行,并且接下来使系统等待一个足够数目的时间周期,以使得状态变化可以通过管线传送。接下来,指令可能会继续进行,而且相关指令所要求的结果将会是正确的。在解码单元215中实现这个足够数量的脉冲周期,可能比数据转送方法需要较少的硬件元件。因为在正常运行时,这种类型的状态指令发生的机率相当微小,所以这些足够数量的脉冲周期对系统性能的影响相当小。
图3示出了一个流程图,用来说明实现状态寄存器更新逻辑电路最佳化的程序。在步骤310中,解码单元215接收指令。在步骤320中,解码单元215产生控制输出,以实行目前指令。在步骤330中,解码单元215判定目前指令是否是一个状态指令。如果目前指令并不是状态指令,则获得下一个指令,并且返回到步骤310。如果目前指令是状态指令,则继续前进到步骤340,检查延迟时间。在步骤340中,检查目前状态变化指令的延迟时间量,以判定是否已经经过足够时间,使状态变化可以通过管线传送。如果已经经过足够时间,则获得下一个指令,并且返回步骤310。如果还未经过足够时间,则前进到步骤320,以继续处理目前指令。步骤320会产生输出,以在状态变化指令的终点处实行一个延迟周期的空闲(idle)指令。在解码延迟周期期间,系统300会改变。
图4示出了一个流程图,用来说明另一个实现状态寄存器更新逻辑电路最佳化的程序。在步骤410中,解码单元215接收指令。在步骤420中,解码单元215判定目前指令是否依赖状态信息。如果目前指令与状态无关,则前进到步骤430,产生控制输出以实行目前指令。如果目前指令与状态有关,则前进到步骤440,决定状态变化是否未定(pending)。在步骤440中,检查前指令的动作,以判定是否已经实行状态变化而且还未被状态变化影响。如果状态变化不是未定,则前进到步骤430,处理目前指令。如果状态变化是未定,则指令会延迟,而且前进到步骤420,重复处理目前指令。当已经经过足够时间让状态变化可以生效时,与目前状态有关的指令,会被送到步骤430实行。在解码延迟周期期间,系统400会改变。
虽然本发明已以一较佳实施例披露如上,然而,其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的实质与范围的前提下,可以进行变化或修改,因此,本发明的保护范围是所附权利要求所限定的范围。
权利要求
1.一种最佳化用来更新状态寄存器的管线式微处理器逻辑电路的系统,包括存储单元,用来存储多个指令;寄存器缓冲器组;读取单元,用来从该存储单元读取指令,并且与该寄存器缓冲器组连接;以及解码单元,用来解码来自该读取单元的指令,其中,当侦测到状态指令时,该解码单元会将该状态指令的完成延迟一段预定的时间。
2.如权利要求1所述的系统,其中,该解码单元判定该指令是否是状态指令。
3.如权利要求2所述的系统,其中,该解码单元指派多个额外时间周期给该状态指令。
4.如权利要求2所述的系统,其中,该实行单元根据该状态指令,传送多个信号,以改变系统状态。
5.如权利要求1所述的系统,其中,该寄存器缓冲器组包含多个与状态有关的寄存器。
6.一种最佳化用来更新状态寄存器的管线式微处理器逻辑电路的方法,包括在解码单元处,接收状态指令;在该解码单元处,指派多个额外时间周期给该状态指令;延迟该状态指令的完成,直到这些额外时间周期结束为止;以及处理该状态指令。
7.如权利要求6所述的方法,其中,指派多个额外时间周期的步骤包括识别该状态指令。
8.如权利要求6所述的方法,其中,指派多个额外时间周期的步骤还包括判定这些额外时间周期是否需要,以让该状态变化可以通过该系统管线传送。
9.如权利要求6所述的方法,在指派多个额外时间周期的步骤之后,以及延迟该状态指令的步骤之前,还包括根据该状态指令,传送多个信号,以改变系统状态。
10.如权利要求6所述的方法,其中,延迟该状态指令直到这些额外时间周期结束为止的步骤包括当目前动作完成时,通知系统等待新动作的开始。
11.如权利要求6所述的方法,其中,处理该状态指令的步骤包括将该状态指令往前送到该管线式微处理器中的其它单元。
全文摘要
一种用来处理管线式微处理器中状态变化的系统及其方法。管线式微处理器在其解码单元判定指令是否是一个状态指令。如果指令被判定是状态指令,则解码单元会将接下来的指令的开始延迟一个足够数目的时间周期,以让状态变化可以通过系统管线传送。
文档编号G06F9/00GK1460928SQ03148690
公开日2003年12月10日 申请日期2003年6月17日 优先权日2002年11月15日
发明者查理斯F·雷洛 申请人:威盛-赛瑞斯企业
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1

威尼斯人棋牌|威尼斯欢乐娱人城

XML 地图 | Sitemap 地图