对指令缓冲器进行装入的方法和设备及处理器技术

技术编号:2888047 阅读:212 留言:0更新日期:2012-04-11 18:40
公开一种用于对能够不按序发出指令的处理机的指令缓冲器进行装入的方法和设备。该能够不按序发出指令的处理机包括一个具有多条超高速缓存线的指令超高速缓存。经过一个多路复用器该指令超高速缓存和一个指令缓冲器连接。该指令缓冲器具有若干隙,在该多路复用器的监视下顺序地用来自指令超高速缓存的指令填这些隙。用取地址确定在其中驻留着第一指令的隙。(*该技术在2019年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术一般地涉及用于数据处理的方法和设备,尤其涉及用于对指令缓冲器进行装入的方法和设备。更具体地,本专利技术涉及对能不按序发出指令的超标量处理机的指令缓冲器进行装入的方法和设备。即使不是全部,大部分的超标量处理机能够执行不按序地发出指令。虽然存在许多用于不按序发出指令的实现方法,所有这些方法的关键因素是一个发出队列(或发出逻辑),它根据对数据相关性的求解以及执行资源的可使用性,以代替程序中出现的顺序,确定实际的执行顺序。然而,典型地是把指令按照程序次序存储在处理机的指令超高速缓存(I-超高速缓存)内的超高速缓存线上。此外,每次对指令超高速缓存访问的单位通常大于一条指令。例如,对于具有四字节指令长度的处理机体系结构,每次指令超高速缓存访问可能是32字节宽,这相当于每次指令超高速缓存访问总共为八条指令。即使在最简单的指令超高速缓存设计下,在发送到发出队列之前,必须把这些指令多路传送到具有八个或更少的隙的指令缓冲器中。顺着上述的例子,接着从该指令超高速缓存读出八条指令。然后利用第一条指令的取地址控制一个8对1的多路复用器以把前四条指令选通到一个具有四个隙的指令缓冲器中。该取地址还用于从八条指令中选择一条目标指令以及随后的三条指令以选通到该指示缓冲器中。以替代程序次序的执行次序把全部四条指令选通到指令缓冲器。在这种结构下,当取地址是一条(预测的或实际的)转移指令的结果时,选通到指令缓冲器中的第一条指令可能是八条指令中的任一条。从而,如果转移指令的目标地址指向指令超高速缓存访问的最后一条指令、倒数第二条指令或者甚至倒数第三条指令时,则不会全部填满指令缓冲器内的全部四个隙,这造成损失调度带宽。因此,需要提供一种改进的方法和设备,用于在不损失调度带宽或超高速缓存效率下对指令缓冲器进行装入。鉴于上述,本专利技术的一个目的是提供一种用于数据处理的改进型方法和设备。本专利技术的另一个目的是提供一种改进型的方法和设备,用于装入指令缓冲器。本专利技术的再一个目的是提供一种改进型的方法和设备,用于对能不按序发出指令的超标量处理机的指令缓冲器进行装入。根据本专利技术的方法和设备,一种能不按序发出指令的处理机包括一个具有多条超高速缓存线的指令超高速缓存。经过一个多路复用器该指令超高速缓存和一个指令缓冲器连接。该指令缓冲器包括几个隙,在该多路复用器的监督下用来自该指令超高速缓存的指令顺序地填这些隙。第一指令所驻留的隙是由取地址确定的。如果第一指令不驻留在该指令缓冲器的第一个隙内时,将用来自该指令超高速缓存的相继超高速缓存线的指令填指令缓冲器中的任何空隙。本专利技术的所有目的、特征和优点将在下述详细书面说明中变为清晰。通过连带着附图一起阅读示范实施方式的下述详细说明会最好地理解本专利技术本身、最佳使用方式、其他目的及优点,附图是附图说明图1是根据本专利技术的一种最佳实施方式的能够不按序发出指令的处理机的方块图;图2是用于图1的处理机的不按序发出指令的机制的方块图;图3是一种根据本专利技术的一种最佳实施方式用于向指令缓冲器装入指令的设备;以及图4是一个逻辑电路图,表示根据本专利技术的一种最佳实施方式的用以分析指令缓冲器中指令间相关性的所需逻辑。可以在各种超标量处理机中实施本专利技术。出于说明的目的,本专利技术如下面所说明的一种最佳实施方式是在国际商用机器公司制造的PowerPCTM类处理机中实施的。另外,虽然下面说明的最佳实施方式是和根据精简指令集计算机(RISC)体系结构的定长指令集有关的,所示的原理仍可应用于任何类型的指令集体系结构。现参照附图尤其图1,图1示出一种根据本专利技术的一种实施方式的能够不按序发出指令的处理机的方块图。在处理机10内,总线接口部件12和数据超高速缓存13及指令超高速缓存14连接。数据超高速缓存13以及指令超高速缓存14都是高速缓冲存储器,它们使处理机10能对事先从主存储器(未示出)传送的数据的或者指令的子集达到相对快的访问时间。指令超高速缓存14还和指令部件11连接,后者可以从指令超高速缓存14取指令。处理机10包括三个执行部件,即,整数部件15,装入/存储部件16以及浮点部件17。每个执行部件15-17可以执行一类或多类的指令,在每个处理机周期内,所有的执行部件15-17并发地运行。在终止执行后,取决于指令类型,执行部件15-17把数据结果存储到更名缓冲器。接着,任一个执行部件15-17通知完成部件20已经结束一条指令的执行。最后,通过从各个更名缓冲器分别向通用寄存器18或浮点寄存器19传送结果数据按照程序的次序完成各条指令。现参照图2,其中示出用于图1的处理机10的不按序发出指令的机制的方块图。如图所示,取指令器21生成从指令超高速缓存14(从图1)取某指令的地址。然后从指令超高速缓存14把取出的指令组(如前面所述,典型地从指令超高速缓存中取出多于一条的指令)锁存到指令缓冲器23。逐个地分析指令缓冲器23内的指令,以确定它们对应的源地址和目标地址、所需的执行部件的类型以及任何其它实际执行这些指令所需的信息。那些拥有寄存器目标的指令必须使它们的寄存器目标更名。还必须确定寄存器操作数源的更名后的名。在寄存器更名缓冲器24内执行上述二个操作。另外,指令缓冲器23中的指令可能具有相关性。例如,指令缓冲器23中的指令2可能使用由指令1存储的寄存器目标。由指令相关性分析部件25分析指令缓冲器23内的指令之间的这些相关性,该部件25的输出修改寄存器更名缓冲器24内的更名逻辑的行为。由于寄存器更名缓冲器24尚未具有有关指令缓冲器23内各指令的信息,这样做是需要的。接着把分析过的指令数据和带有更名寄存器信息的正文移入发出队列26中。发出队列26经过状态线27从对应的一个执行部件28(即,图1的执行部件15-17)接收信息以确定发出队列26内某已具有执行所需的全部数据的指令。这样的指令被认为是“准备好发出的”,并且可被发送到当前“自由的”一个执行部件28中。图2中所描述的部件除了指令超高速缓存14和执行部件28之外,最好都驻留在图1的指令部件11内。现参照图3,图中示出一种根据本专利技术的一种实施方式的用于对指令缓冲器装入指令的设备。在该实现中,最好把指令超高速缓存14(图2)划分成偶单元阵列31和奇单元阵列32,以保持最大面密度所需的正方几何形状。偶单元阵列31和奇单元阵列32分别和单元阵列输出寄存器33和34连接。二个输出寄存器33和34都和四个2对1的多路复用器36a-36d连接。每个多路复用器36a-36d独立地和指令缓冲器23内的一个隙连接。由取指令器21(图2)生成的用于取指令的有效地址(EA)典型地为一个EA以及一个EA+访问宽度的形式。这意味着,如果一次指令超高速缓存访问为每条指令为四字节下的四条指令,则产生一个EA以及一个EA+16(假定采用字节寻址方式)。可以理解对于该操作不需要附加的逻辑(运算),它可以简单地通过移位地址的译码以选择指令超高缓存内的一条相邻字线(或超高速缓存线)来实现。该增量以字线的尺寸取模,以考虑到读出宽度。若生成的地址是偶数,则把生成的地址馈入偶单元阵列31并且把增量地址将用于奇单元阵列32。若生成的地址是奇数,则把生成的地址馈入奇单元阵列32并且把增量地址用于偶单元阵列31。以这种方式,从指令超高速缓存中读出本文档来自技高网...

【技术保护点】
一种用于对能够不按序发出指令的处理机的指令缓冲器进行装入的方法,其中所述处理机包括一个具有多条超高速缓存线的指令超高速缓存,所述方法特征在于包括步骤: 利用一个多路复用器把所述指令超高速缓存和所述指令缓冲器相连接,其中所述指令缓冲器包括多个隙; 在所述多路复用器的监视下顺序地把来自所述指令超高速缓存的指令填到所述指令缓冲器的所述多个隙中,其中用取地址确定驻留着第一指令的某个隙;以及 然后,若第一指令未驻留在所述指令缓冲器的第一隙,用来自所述指令超高速缓存的指令填所述指令缓冲器的任何空隙。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:戴维梅茨尔朱尔阿布拉汉西尔伯曼
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1