对超标量cpu中多个并发调度的指令流建模的方法和装置的制作方法

文档序号:6628324阅读:113来源:国知局
专利名称:对超标量cpu中多个并发调度的指令流建模的方法和装置的制作方法
技术领域
在这里公开并要求权利的本发明总体上涉及一种方法和装置,用于使用特定的计算机语言,建模超标量(super scalar)中央处理单元(CPU)。更具体地,本发明涉及一种上述类型的方法,其中CPU操作的特征是并发调度的指令流,以及该特定语言是顺序语言,例如C或C++。更具体地,本发明涉及一种上述类型的方法,其中包含在CPU中的多个并发操作功能单元分别与虚拟模型主时钟或基准时钟同步。
背景技术
如本领域中熟练的技术人员所知道的,精简指令集计算机(RISC)是设计用来执行精简数量的计算机指令类型的微处理器。这使微处理器能以较高的速度运行。在目前的超标量RISC CPU设计环境中,一个主要的问题是对多个调度的信号指令多数据(SIMD)指令流的确认。更具体地,典型的超标量RISC CPU包括复杂的并发操作机,其中每一个块单元同时运行。而且,RISC CPU的内部定时典型地与多阶段流水线操作相一致。
非常希望能够使用顺序语言,例如C或C++,对RISC CPU的多个调度的指令流进行建模。这将提供一种用于多个调度的SIMD指令流确认的有用工具。但是,这些编译语言的顺序特性使得很难以使用它们对发生于超标量CPU内的并发事件进行建模。加入浮点指令流,使并发问题复杂化,这是因为,CPU中浮点单元(FPU)具有分离的指令队列和执行引擎。另外,由于RISC CPU的内部定时运行于多阶段流水线操作模式,如上所述,例如C或C++等编译模型语言的顺序执行特性不能够正确地对CPU操作进行建模,具有可接受的时钟标准精度或准确度。

发明内容
本发明的各实施方式,基于内部同步时钟机制的产生,提供了上述问题的解决方法。RISC CPU包括多个并发操作的功能单元或功能块,其中每一个单元依照其自身时钟操作,包括多阶段的完全非同步的时钟。借助于本发明,虚拟内部主时钟可以插入到多个流水线机器周期中,其用于对上述RISC CPU功能单元的操作进行建模。在一个有用的实施方式中,本发明专注于一种处理器,其包括多个配置成并发操作的功能单元,以处理指令流。该实施方式包括一种方法,用于使得可以使用例如C或C++等顺序计算机语言对指令处理操作进行建模。该方法包括,生成具有一个时钟周期的虚拟模型主时钟,以及在各个相应的处理周期开始时,初始化功能单元的每一个。该方法进一步包括,在各个相应的处理周期期间,操作每一个功能单元,以实现关于所述指令的一个的任务,以产生结果。在由该时钟周期的一个的特定位置定义的时间上,同时对由各个功能单元提供的所有结果进行评估。将由功能单元提供的评估结果的每一个,连同由该特定的时钟周期位置定义的时间,写入相应的寄存器。


所附权利要求书阐述了被认为是本发明之特征的新颖特征。然而,通过连同附图一起阅读说明性的实施方式的下述详细描述,将更好地理解该发明本身、其优选使用方式、其它目的及其优点,其中图1示出了关于本发明的一个实施方式使用的超标量CPU的框图。
图2示出了用于图1中CPU的执行单元的框图。
图3示出了说明图1中CPU操作的多阶段流水线操作顺序的示意图。
图4示出了根据本发明的一个实施方式,由虚拟模型主时钟生成的同步时钟周期的示意图。
图5示出了用于本发明的一个实施方式的流水线阶段各个步骤的流程图。
图6示出了用于实现本发明的一个实施方式的简化布置的框图。
具体实施例方式
参照图1,其示出了一个作为并发操作功能块或功能单元布置实现的超标量RISC CPU 100。该功能单元包括指令读取器102,多路复用器/分配器104和执行单元106。重排序缓冲器108和完成单元输入重排序缓冲器110共同作为完成缓冲器。图1中功能单元102-110之间的交互,连同总线接口单元112和寄存器文件114在后面进行详述。
进一步参照图1,其示出了定时器116和指令调度单元118,连接到多路复用器104,用于调度指令。还示出了装载/存储单元124,与指令缓存/数据缓存126互连,以及地址翻译单元128,以及协处理器130和缓存132。RISC CPU 100进一步包括分支处理单元134、指令保留站136和内部总线138。
图1中所示实现的功能单元或块的划分基于功能分离。另一个考虑是处理器内部总线边界。由于这些考虑,将处理器微结构划分为整数执行单元IEU、浮点单元FPU、总线接口单元BIU、指令读取单元IFU、浮点寄存器文件FPRF,以及整数寄存器文件IRF,以及图1中所示的其它一些块。
由于加入浮点指令流,使得并发问题变得复杂,这是因为,FPU具有分离的指令队列和执行引擎。这在图2中说明,其示出了一个典型的浮点或整数执行单元200。更具体地,图2示出了执行单元202,从保留队列和调度/寄存器文件204接收输入,并且向完成缓冲器单元206提供输出。图2还示出了包括指令读取器的功能组208,以及功能组210,这两个功能组都连接到单元204。
图1所示RISC CPU中指令的执行是依照多阶段流水线操作顺序进行的。参照图3,其中示出了流水线阶段1-5,其中为了简单,将阶段数目限制为五个(5)。而且,在执行顺序中,可以在同时处理多个指令。因此,图3示出了三个分离的流水线操作302-306,其中,这三个流水线操作用于并发处理三个不同的指令流,分别称为指令流1-3。
进一步参照图3,其示出了在流水线顺序的每一个阶段1期间执行指令读取操作。这一功能由RISC CPU 100的指令读取器单元102实现。在每一个阶段2期间,对在先前阶段1期间读取的指令进行调度和预解码。这一功能由多路复用器/分配器实现。
在阶段3,借助于RISC CPU 100的执行单元106,执行在先前阶段调度的每一个指令。在阶段4期间,将每次执行所得结果输入到包括功能单元108和110的完成缓冲器中。在阶段5期间,借助于总线接口单元112,将缓冲器结果写回到寄存器114中。
在上面的流水线操作中,RISC处理器100内部的每一功能单元可以依照其自身时钟并发运行,而且,多个阶段的时钟相互间可以是非同步的。而且,在多阶段流水线布置中,多指令类型指令流输入到RISC CPU 100中并发操作的功能单元或功能块中。但是,如上所述,例如C或C++等编译模型语言的顺序执行特性不能够正确地对CPU操作进行建模,具有充分的时钟标准精度或准确度。因此,本发明的一个实施方式定义了一个虚拟模型基准或主时钟。有用地,模型主时钟定义为50%占空比的周期时钟,并且其频率等于包括在RISCCPU 100中各个功能单元的最高时钟频率或其整数倍。
参照图4,其示出了具有时钟周期402的模型主时钟。而且,为了简单,示出了流水线顺序的各个阶段,每一个阶段具有主时钟一个时钟周期的时间段。从而,在阶段1-5的每一个期间可操作的、CPU 100的每一个功能单元,同样具有一个时钟周期的时间段。如下文中所详述,主时钟周期的上升沿用于初始化相关功能单元,而下降沿用于评估该功能单元所产生的结果。
尽管在流水线操作顺序的不同阶段执行不同的功能或任务,在每一个阶段期间,实现相同的程序步骤集合。这些步骤包括(1)初始化;(2)任务执行;(3)评估;以及(4)结果输入。在图5的流程图中分别以功能块502-508表示这些步骤。
在阶段N的初始化时,从流水线寄存器读取由先前阶段提供的输出或结果。如上所述,每一个阶段的初始化与主时钟脉冲的上升沿相一致。如果从寄存器读取的输出被看出是错误的,将进行重启操作,以冲洗或清除流水线。
在任务执行步骤504中,依照与特定阶段N相关的功能单元,处理先前步骤的输出。之后,将评估功能506应用于任务执行步骤的结果或输出。如上所述,评估是并发的,或是同步的,与主时钟脉冲的下降沿。
进一步参照图5,其示出了功能块508,该功能块指示阶段N评估的输出被写入到流水线寄存器中。所写入的信息包括评估,并由此与主时钟同步。
在每一个阶段期间,通过在主时钟的下降沿调用每一个功能单元的评估功能,根据不同阶段时钟运行的所有不同功能单元根据模型主时钟同步。结果,可以依照指令流的执行或调度顺序,用顺序计算机语言建模各个功能单元或功能块。
参照图6,其示出了一个简化的处理系统600,用于实现本发明的一个实施方式。系统600总体上包括处理器602、存储设备604,例如数据库等,以及计算机可读介质606。处理器可选择性地是与图1中所示处理器100相同的处理器,或者可以是不同的处理器。
提供本发明的说明书的目的是为了说明和描述,而不是用来穷举或将本发明限制为所公开的形式。对本领域的一般技术人员而言,许多修改和变更都是显而易见的。选择并描述实施方式是为了更好地解释本发明的原理,其实际应用,并使本领域的其他一般技术人员理解带有各种修改的各种实施方式的本发明同样适用于设想的特定用途。
权利要求
1.一种在包括多个配置成并发操作以处理指令流的功能单元的处理器中,用于使得可以使用顺序计算机语言,对所述指令的处理进行建模的方法,所述方法包括下列步骤生成具有一个时钟周期的模型主时钟;在各个相应处理周期的开始,初始化所述功能单元中的每一个;在其相应的处理周期期间,操作每一个功能单元,以实现关于所述指令的一个的任务,以产生结果;在由所述时钟周期的一个的特定位置所定义的时间上,对分别由所有所述功能单元产生的结果进行评估;以及将由所述功能单元产生的所述评估结果中的每一个,连同由所述特定时钟周期位置所定义的所述时间,写入各个相应的寄存器。
2.根据权利要求1所述的方法,其中依照多阶段流水线机器周期,所述功能单元并发操作,以处理所述指令流。
3.根据权利要求2所述的方法,其中在所述时钟周期的一个的下降沿,并发实现所述评估步骤。
4.根据权利要求3所述的方法,其中所述处理器适用于每一个依照多个并发多阶段流水线操作中的一个处理多个指令流每一个。
5.根据权利要求3所述的方法,其中所述初始化步骤包括读取分别对应于所述功能单元的流水线寄存器。
6.根据权利要求5所述的方法,其中在对所述流水线寄存器进行读取之后,所述方法选择性地包括寄存器清除操作。
7.根据权利要求5所述的方法,其中所述处理器包括精简指令集计算机处理器。
8.根据权利要求7所述的方法,其中所述计算机语言选择性地包括C或C++。
9.一种计算机可读介质中的计算机程序产品,用于使得可以使用顺序计算机语言,对指令流的处理进行建模,其中借助于包括多个并发操作的功能单元的处理器对所述指令进行处理,所述计算机程序产品包括第一指令,用于生成具有一个时钟周期的模型主时钟;第二指令,用于在各个相应处理周期的开始,初始化所述功能单元中的每一个;第三指令,用于在其相应处理周期期间,操作每一个功能单元,以实现关于所述指令的一个的任务,以产生结果;第四指令,用于在由所述时钟周期的一个的特定位置所定义的时间上,对分别由所有所述功能单元产生的结果进行评估;以及第五指令,用于将由所述功能单元产生的所述评估结果的每一个,连同由所述特定时钟周期位置所定义的所述时间,写入各个相应的寄存器。
10.根据权利要求9所述的计算机程序产品,其中依照多阶段流水线机器周期,所述功能单元并发操作,以处理所述指令流。
11.根据权利要求10所述的计算机程序产品,其中在所述时钟周期的一个的下降沿,并发实现所述评估。
12.根据权利要求11所述的计算机程序产品,其中所述处理器适用于每一个依照多个并发多阶段流水线操作的一个处理多个指令流每一个。
13.根据权利要求12所述的计算机程序产品,其中所述处理器包括精简指令集计算机处理器。
14.根据权利要求13所述的计算机程序产品,其中所述计算机语言选择性地包括C或C++。
15.一种计算机系统,包括处理器,包括多个配置成并发操作以处理指令流的功能单元;以及计算机可读介质,连接到该处理器,所述介质还包括处理器指令,其配置成可由所述处理器读取,并由此使所述处理器生成具有一个时钟周期的模型主时钟;在各个相应处理周期的开始,初始化所述功能单元的每一个;在其相应处理周期期间,操作每一个功能单元,以实现关于所述指令流的所述指令的一个的任务,以产生结果;在由所述时钟周期的一个的特定位置所定义的时间上,对分别由所有所述功能单元产生的结果进行评估;以及将由所述功能单元产生的所述评估结果的每一个,连同由所述指定时钟周期位置所定义的所述时间,写入各个相应的寄存器,使得可以使用顺序计算机语言对所述指令流的处理进行建模。
16.根据权利要求15所述的系统,其中依照多阶段流水线机器周期,所述功能单元并发操作,以处理所述指令流。
17.根据权利要求16所述的系统,其中在所述时钟周期的一个的下降沿,并发实现对结果的所述评估。
18.根据权利要求17所述的系统,其中所述处理器适用于每一个依照多个并发多阶段流水线操作的一个处理多个指令流。
19.根据权利要求18所述的系统,其中所述处理器包括精简指令集计算机处理器。
20.根据权利要求19所述的系统,其中所述计算机语言选择性地包括C或C++。
全文摘要
本发明提供了一种方法,其中使用了关于RISCCPU的虚拟内部主时钟。该RISC CPU包括多个并发操作的功能单元,其中每一个单元依照其自身时钟运行,以处理指令流,而时钟包括多阶段完全非同步时钟。该方法包括生成具有一个时钟周期的虚拟模型主时钟,以及在各个相应处理周期的开始,初始化功能单元的每一个。该方法进一步包括,在各个相应的处理周期期间,操作每一个功能单元,以实现关于所述指令的一个的任务,以产生结果。借助于该主时钟,以同步的方式评估所有的结果。这使得可以使用例如C或C++等顺序计算机语言对指令处理操作进行建模。
文档编号G06F15/76GK1760827SQ20051008306
公开日2006年4月19日 申请日期2005年7月8日 优先权日2004年10月14日
发明者奥利弗·克伦·班恩 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1