首页> 中国专利> 采用独立存取中间存储器的超标量处理器系统中加强指令调度的方法和系统

采用独立存取中间存储器的超标量处理器系统中加强指令调度的方法和系统

摘要

可在超标量处理器系统中进行单周期指令调度的方法和系统,该系统同时调度多条指令到执行单元以供执行,并将其结果存放于特定的通用寄存器中。每一指令一般至少包含一个源操作数以及一个目的操作数。提供了多个中间存储缓冲器,并且每当一指令被调度到一可用的执行单元,为被调度的指令中任一目的操作数据一特定的中间存储缓冲器,以允许在一个周期中调度指令,因为不必判定和选择特定通用寄存器或被指定的另外的通用寄存器。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-03-23

    未缴年费专利权终止 IPC(主分类):G06F9/38 授权公告日:19991208 终止日期:20100208 申请日:19940106

    专利权的终止

  • 1999-12-08

    授权

    授权

  • 1996-01-03

    实质审查请求的生效

    实质审查请求的生效

  • 1994-09-14

    公开

    公开

说明书

本发明一般涉及一种改进的数据处理系统,并特别涉及在超标量处理器系统中用于加强的指令调度效率的方法和系统。更具体地,本发明涉及在应用独立存取中间存储器的超标量处理系统中用于加强指令调节的一种方法和系统。

当今新型数据处理系统的设计者正不断努力加强这类系统诸方面的性能。短周期时间和每条指令的低循环(CPI)率的实现,是强化数据处理效率的一种技术。这些技术在加强的数据处理系统中应用的一个良好范例,是国际商业机器公司的RISC系统/6000(RS/6000)计算机。该RS/6000系统设计是为有效地执行复杂的工程和科学数值计算应用程序以及多用户的商业环境。RS/6000处理器应用了超标量实现方案,而同时产生和执行多指令。

同时产生和执行多指令需要能够以高指令带宽并行执行的独立功能单元。RS/6000系统通过采用单独分支、定点与实质上流水线化的浮定处理单元,而实现了这一点。这类系统中就处理器的流水线化性质而言,必须注意为执行后继指令所必须的特定指令的结果应在被调度后续指令之前获得。保证不会出现这种所谓“数据机关性危险”的一种技术是限制特定指令的调度,直到所有先前的指令都已调度时为止。虽然这一技术保证了数据相关性危险不会发生。但应用这一技术所碰到的性能恶化是显著的。

于是,现代超标量数据处理系统常应用所谓“数据相关互锁电路”。这类电路包含其操作与指令调度电路原理协调一致的逻辑,从而保证了为正确执行该指令所必须的先前指令得出的结果已获得之前不会调度一个指令。实现数据相关互锁电路的逻辑量正比于每一指令中的源操作数。源操作数是用来访问寄存器文件内一个操作数的指令中的一个字段。

虽然数据相关互锁电路使得数据相关危险得以避免,同时不会遇到上述的性能上的本质恶化,但对于包含大量源和目的操作数的指令,数据相关互锁电路的设计与实现变得相当复杂。

对由于在每一处理器循环中同时执行多指令而发生的数据相关危险,也应用了称为“寄存器更名”的方法而试图予以克服,寄存器更名是用以向寄存器暂时存放特定指令的结果的一种技术,以备在指令的最终结果存放在寄存器文件之前可能由后面的指令所用。寄存器更名,一般是通过提供带有额外的存储单元和用来标识特定的物理寄存器的一个指针装置的寄存器文件来实现的,该特定的物理寄存器已指定给逻辑寄存器。

虽然这一技术在那些否则可能需要串行执行的地方使得能够同时调度和执行多指令,但在应用这类技术将指令调度到执行存储单元时存在一个问题。用于存储指令执行结果的目的存储单元,以及用于实现该执行所必需的操作数的源存储单元,必须进行识别,以便对一个指令进行调度。复杂的寄存器更名方案需应用查寻表和/或逻辑电路,并且往往导致在用于访问该包括了可更名寄存器的寄存器文件的执行单元之间出现争用,因而降低了这类系统的处理效率。

因而显著需要一种方法和系统,它们通过提供独立可访问的中间存储器设备而能够在超标量处理器系统内加强指令调度,从而使用于数据目的的执行单元之间的争用减到最小。

因而本发明的一个目的是提供一种改进的数据处理系统。

本发明的另一目的在于提供一种用于超标量处理器系统中提高指令调度效率的一种改进的方法和系统。

本发明的又一目的,是提供一种应用独立被访问中间存储器在超标量处理系统中强化指令调度的方法和系统。

现将说明的如何达到上述目的。本发明的方法和系统允许在超标量处理器系统中强化指令的调度,该系统将多条指令同时调度到一组执行单元中去,以在特定的通用寄存器中执行和放置执行结果。每一指令一般至少包含一个源操作数的一个目的操作数。提供了多个中间存储缓冲器,其每一个都通过一个独立总线耦合到所有的执行单元。每当一个指令调度到一个可用的执行单元时,一个特定的中间存储缓冲器就被指定给该被调度的指令内任何目的操作数,通过消除对判定和选择特定的通用寄存器或被指定的替换的通用寄存器的要求,并通过允许执行单元通过独立总线直接访问指定的中间存储缓冲器,从而能够有效地进行指令的调度,并消除了与其他执行单元可能发生的访问争用。

本发明的以上以及其他目的、特点和优点将在以下详细的书面说明中更为明了。

作为本发明特征的新颖之处在所附权利要求中列出。而本发明自身以及较佳应用方式、及其进一步的目的和优点,则宜参考下述结合附图对示范实施例的详述而予以理解。在附图中:

图1是一可用以实现本发明的方法和系统的超标量数据处理系统的高级框图;

图2是图1的可用以实现本发明的方法和系统的超标量数据处理系统的指令调度电路的更详细的框图;

图3是根据本发明的方法和系统描述图1的超标量数据处理系统中的中间存储缓冲器用法的高级框图;

图4是根据本发明的方法和系统的调度控制过程的图示;

图5是根据本发明的方法和系统描述对于单循环指令调度过程的逻辑流程图;

图6是描述根据本发明在一个被选指令确定源操作数过程的逻辑流程图。

现参见附图特别是图1,该图示出可用以实现本发明的方法和系统的超标量数据处理系统10的一个高级框图。如图所示,数据处理系统10包括用于存储数据、指令等的存储器18。在存储器18内存储的数据和指令最好以本专业技术人员熟知的方式应用高速缓冲存储器/存储器接口20进行存取。高速缓冲存储器系统的规格和用法在数据处理技术中是熟知的,因此本申请中将不再赘述。但本技术专业人员将会理解,通过应用当代的有关高速缓冲存储器技术,大部分的存储器存取可利用暂存于高速缓冲存储器/存储器接口20中的数据而实现。

来自高速缓冲器/存储器接口20的指令一般加载到指令调度器22,该指令调度器最好包括多个排队位置。在超标量数据处理系统的一个典型实施例中,指令调度器内的每一位置可包含二到八个指令,于是在一个给定的循环之中可将多至八个的指令加载到指令调度器22之中,这取决于有多少有效指令被高速缓冲存储器/存储器接口20传送以及在指令调度器22内有多少可用空间。

作为在那种超标量数据处理系统的中的典型,指令调度器22被用以向执行单元24调度指令。如图1中所示,数据处理系统10可能包括一个或多个浮点单元、定点处理器单元、加载/存储单元以及一个分支处理单元,这取决于设计的选择。于是指令调度器22可将多个指令逐个在单独一个循环中分别调度到每一执行单元中。执行单元可能包括保留站,这些保留站能够按设计选择,允许将一个以上的指令在一个周期内调度到单一指令单元中。于是在一个周期内,超标量处理器中多个执行单元的每一个可收到多个指令。而且,在多处理器系统中,指令能被调度到与多处理器相关联的多执行单元24之中。

现参见图2,其中表示出可用以实现本发明方法和系统的图1中的超标量数据处理系统的指令调度电路的更详细的框图。如图所示,来自高速缓冲存储器/存储器接口20的指令通常按应用程序指定的顺序成组地加载到指令调度器22之中。于是,按设计的选择,指令以两个、四个或八个为一组被从高速缓冲存储器/存储器接口20加载到指令调度器22中,以便根据机会被调度到执行单元24中一个或多个执行单元之中。如图2中的示范实施例所示,这些执行单元可包含一个浮点执行单元26、多个加载/存储单元28和30、多个定点执行单元32和34以及一个分支执行单元36。当然,如上所述,按设计上的选择,在数据处理系统10中可包含多些或少些数目的不同类型的执行单元。

如这里所述的典型的超标量数据处理系统中所示,还设置了多个通用寄存器。在图2所示的实施例中,设置了两组通用寄存器:浮点通用寄存器44与定点通用寄存器46。于是,图2所示的执行单元中多指令执行的结果通常被存储在选定的通用寄存器内,以备将来使用。按本发明的一个重要特点,还提供了多个中间存储缓冲器。即浮点中间存储缓冲器40与定点中间存储缓冲器42。如以下较详细说明所述,每一执行单元都经由一独立总结连接到每一中间存储缓冲器。于是,执行单元所需的或是由指令在一个执行单元内执行所产生的数据,可能被放在一个独立总线上的并存储在一指定的中间存储缓冲器中,以备其他执行单元应用或进而传送到通用寄存器中。

这样,就不需要保留通常与寄存器更名模式相联系复杂的查寻表,并可以有效地指定中间存储缓冲器立即用于目的操作数的存储位置,从而允许指令在单一处理周期内被调度,因为数据位置不需要在寄存器更名文件中判定。而且能允许指令以非顺序方式执行,这些指令的输出暂存于缓冲器内,以便按应用程序特定的顺序在通用寄存器内进一步组合。

如图所示,各定点执行单元通过一个独立的总线与定点中间存储缓冲器42耦合,而浮点执行单元通过一独立总线连接到每一浮点中间存储缓冲器40。如本技术专业人员所应明白的,加载/存储单元28与30必须连接到浮点中间存储缓冲器40以及定点中间存储缓冲器42,因为这些单元将既要加载和存储定点数据又要加载和存储浮点数据。

根据本发明的另一个重要特点,提供了完成缓冲器48。完成缓冲器48用于跟踪记录在执行单元24内执行的多标量指令的完成。如上所述,这些指令执行的结果分别暂存于相关的中间存储缓冲器内,并在表明指令或一组指令已应用程序特定的顺序被成功执行完成时,完成缓冲器48可被用来启动以将已完成的那些指令数据结果传输到相关的通用寄存器中去。而且,在异常条件出现的情形下,完成缓冲器48可被用来启动任何在异常情形之前已完成的指令执行的结果的存储,并控制指令调度器22在异常条件出现的那一点重新开始处理过程,从而使得废弃的或无效的数据能够有效地被有效的输出所替代,或对于特定类型的例外情形按照特定的应用程序的规定的那样启动一个新的指令序列。

现参见图3,其中显示出按本发明的方法和系统的图1的超标量处理器系统之中的中间存储缓冲器用法的高级框图。设置了可被指令调度器22存取的存储缓冲器索引58。如下再作较详细的说明,存储缓冲器索引58被用于存储和保留多个中间存储缓冲器60的每一个与指令的通用寄存器62之间的关系的显示,以便在执行后继的指令时应用。

多个中间存储缓冲器60最好连接到多个独立总线64上。在较佳实施例中,独立总线64的数目等于中间存储缓冲器60的数目,每个中间存储缓冲器连接到一个总线。每个中间存储缓冲器60都可从相应的独立总线64读出或对其进行写入。本专业人员应理解,所应用的总线数目是可按设计要求变化的。

所示的多个执行单元24a,24b,24c与多个独立总线64的每一条耦合。在较佳实施例中,执行单元24a,24b,24c可包含一个浮点执行单元、多个加载/存储单元、多个定点执行单元和一个分支执行单元。但本专业人员当能明白,执行单元的数量和类型是可按设计要求而变化的。

多个执行单元24a,24b,24c的每一个也可由每一独立总线64上读取和对其进行写入。于是多个执行单元24a,24b,24c通过多独立总线64与多个中间存储缓冲器60的每一个耦合。于是,当数据在一个执行单元中由一个指令的执行而产生时,该执行单元可将此数据存放在对应于已被规定为该数据目的地的指定中间存储缓冲器的总线上,在该缓冲器上数据可被暂时存储。同时,执行单元通过将“有效”位设定为一个适当的状态,而显示总线上的数据是有效的。这样,当数据在总线上时,且在数据被存储在指定的中间存储缓冲器之前或在同时,任何需要这一数据的其他执行单元都能从总线上检索该数据。于是设置独立总线的优点就在于无需在缓冲器中存储这数据并在此后又从该缓冲器中存取之。直接从总线检索数据的能力将大大增加该处理器系统的操作速度。

仍参见图3,可看到多条独立总线64的每一个都与通用寄存器62耦合。当一个指令要被调度到一个执行单元时,被指定的中间存储缓冲器与选定的通用寄存器之间的关系最好存储在存储缓冲器索引58之中。当其他执行单元需要这些执行结果时,可应用存储缓冲器索引58中的信息传送这些结果。如果更为详细描述的,存储在存储缓冲器索引58中的信息,可是用于指定的中间存储缓冲器的标识符,该缓冲器的存取是应用通用寄存器的通用寄存器标识或一个标识符进行的,而通用寄存器的存取是应用被指定的中间存储缓冲器的标识进行的。

这样,由于对于每一待调度的指令中的目的操作数中间存储缓冲器可立即被指定为存储位置,而无需通用寄存器文件的更名,因而也就不需要维持通常与寄存器更名模式相关的复杂的查寻表。而且,由于每一指令的执行结果被暂存于中间存储缓冲器60之中并可通过利用存储在缓冲器索引58之中的信息及完成缓冲器48的内容(见图2)而被后继指令继续使用,因而存储缓冲器索引58可按非顺序方式执行指令。

参见图4,其中示意表示出按本发明的方法和系统的调度控制过程。如图所示,在指令调度缓冲器64之中示出了多个指令。这样,指令66、68、70和72表示已按应用规定的顺序加载到指令调度缓冲器64之中的多个指令。如图所示,每一指令一般包含一个源操作数和一个目的操作数;但本技术专业的人员应当明白,也可出现较多的操作数。

按照本发明的一个重要特点,一个偿试的调度指令72要求分配中间存储缓冲器以用于调度DN。而且必须规定一个用于源操作数SN的位置。按本发明的方法和系统这一点是通过首先将源操作数SN与指令调度缓冲器64内的先于该源操作数的诸目的操作数进行比较而实现的。于是,比较单元74被用来将目的操作数D3,D2及D1与源操作数SN作比较的。这一过程被用以判定规定给源操作数SN的位置当前是否在指令调度缓冲器64之内。由于每一指令可顺序地修改该源操作数的内容且由于指令调度缓冲器64内的指令在应用程序特定的顺序内被进一步设定,故先于指令72并与源操作数SN相等的最近的目的操作数被应用。于是,如果应用比较单元74的第一比较表示一个匹配,则对源操作数SN的说明就被设置为等于目的操作数D3。类似地,对源操作数SN的说明在没有优先的目的操作数与源操作数SN匹配的情形下也可被设定为目的操作数D2或D1

参见图5,其中的逻辑流程图表示按本发明的方法和系统单周期指令调度的过程。如图示该过程始于块80然后进行到块82。块82表示判断是否产生了执行单元对于一特定指令的请求。如果没有,则此过程仅在此重复,直至有执行单元请求已产生时为止。正在执行单元的请求产生之后,则过程进到块84。

块84表示判定该指令所要求的执行单元是否可用。如果不可用,则过程在此仅作重复,直至有适当的执行单元成为可得到时为止。此后过程进到块86。块86表示判定对于该待调度的指令中每一个目的操作数,中间存储缓冲器是否可用。根据本发明的一个重要特点,中间存储缓冲器被指定给指令中每一目的操作数,以使指令及其相关的数据可在单一处理器周期中得到调度。而无须在通用寄存器文件内的复杂的寄存器更名判定。如果对于选定的指令内的目的操作数的指定,中间存储缓冲器不可用,则该过程等待这种中间存储缓冲器的可用性。

进而过程进到块88。块88说明在中间存储缓冲器可用时,这类中间存储缓冲器向被选指令中的目的操作数的分配。之后过程进到块90。块90表示判定是否被选指令中所有源操作数都已被规定。如将更详细描述的,在允许该指令被调度之前,对于包含在一个指令中的每一源操作数必须规定源或位置以获得数据。在被选指令中所有源操作数都没有被规定的情形下,该过程仅作重复,直至对每一源操作数的说明被判定为止。

因而,在被选的指令中所有的源操作数均已规定之后,该过程进到块92。块92表示在当前处理器周期中被选指令的调度与数据的说明。于是,通过为每一指令中的目的操作数指定中间存储缓冲器,本发明的方法和系统允许一个指令和执行这指令必须的数据说明在单一处理器周期中被调度。之后,该过程进到块94并返回。虽然上述过程各步是作为串行发生而说明的,但本专业人员应明白,出于效率上的考虑这些步将一般实际上是同时并行发生的。

最后,参见图6,其中表示出一逻辑流程图,该流程表示按本发明的方法和系统在一选定的指令中规定源操作数的过程。如图所示,该过程在块100开始,然后进到块102。块102表示在指令中标识源操作数以便说明。之后该过程进到块104。块104表示判定指令调度缓冲器中一指令中的先前目的操作数是否等于所考虑的当前源操作数。如果相等则过程进到块106。

块106表示向最近先前目的操作数缓冲器的分配设定源操作数说明。当然,本技术专业人员会明白,应用程序特定的顺序中相继的指令会改变已经赋给一特定目的缓冲器的内容。于是该最近先前目的操作数缓冲器的分配必须总是要被利用的。之后,该过程进到块114并返回,使得指令如图5所示那样被调度。

再看块104,当指令调度缓冲器中设有先前目的操作数而与当前源操作数相等时,则该过程进到块108。块108表示判定用于这个源操作数的一个指令缓冲器是否已在缓冲器索引中被指定。如已指定,则过程进到块110。块110表示向缓冲器索引中指定的缓冲器设定源操作数说明,然后该过程进到块114并返回。这样,如果中间存储缓冲器已被指定给先前目的地(该先前目的地在当前指令中是作为源的),则既使该先前目的地指令已被调度,也能完成适当的中间存储缓冲器的识别。

最后再看块108,当用于被识别的源操作数的缓冲器在缓冲器索引中未被指定时,则过程进到块112。块112表示向通用寄存器文件中的指定通用寄存器设定源操作数说明,然后过程返回,如块114所示。

虽然在该流程图中的过程是以串行的方式说明的,专业人员会明白,为了增加指令调度的效率,判定先前目的操作数是否等于当前操作数、指令缓冲器是否在缓冲器索引中已被指定、或通用寄存器是否应设定用于当前源操作数的说明,一般是并行发生的,这就大大地提高了处理的效率。

本发明虽然参照较佳实施例进行了具体的描述,专业技术人员能够理解,在不背离本发明的精神的范围的情况下,可在其形式和细节上作出各种变化。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号