一种在流水线计算机中响应俘获条件的方法,所述计算机由数个处理级组合,包括一个在每个时钟周期从一系列指令检验一条或多条指令的解码级;和一个耦合到所述解码级用于接收由解码级提供的解码指令,评估任何所述解码指令是否满足任何一组俘获条件,和为满足任何所述俘获条件组的任何指令进行一个规定的俘获动作的执行级, 所述方法包括步骤: a)评估在解码级检验的任何指令是否满足任何一组发出时间的俘获条件,所述发出时间俘获组是所述俘获条件组的一个分组;和 b)当确定在解码级所评估的任何一条指令满足一个俘获条件时,则进行分步骤: (i)防止所述序列中第一个这种指令,以及在所述序列中的所述第一个这种指令后的所有一个或多个指令被提供给执行级;和 (ii)进行一个规定的俘获动作。(*该技术在2016年保护过期,可自由使用*)
【技术实现步骤摘要】
本专利技术涉及在解码级识别俘获条件以加快流水线超标量处理器中操作的改进处理器的构架和操作。常规的处理器设计通常涉及读取、解码、执行三个级中的指令控制。在第一级,在由指向最后读取的指令的程序计数器识别的位置从存储器读取一条指令,从而允许读取下一条指令。读取之后,针对可能的数据相关性检查该指令,如果它通过测试,则发出该指令和其操作数用于执行。(数据相关性是指由于仍不能提供指令的数据而不能执行一条指令的情况)。一个虚拟发出程序计数器可以识别发出的指令。一旦解码和发出一条指令,将其送到执行级,在此产生一个被写入一个寄存器文件或一个存储器的结果,从而改变处理器的状态。最近的高级处理器包括一个被称为寄存器记分板(scoreboard)的元件,该寄存器记分板检查用于指令的资源以查看是否有执行指令所需的资源。如果有的话,甚至在执行级中的指令结束之前发出指令,这样会导致失序执行。寄存器记分板记录(锁定)在发出时将由该指令变更的资源。在最初锁定资源的指令通过更新资源随后将它们解锁,并通知处理器之前不能发出想存取那些资源的任何后续指令。这些已知的处理器设计伴随着通常因指令之间的资源相关性造成指令发出中的任何停止将使指令读取停止的缺陷工作。由于几乎没有发出执行的指令,这种停止导致失去性能。另外,计算机系统定义多种指令类型的硬件俘获(trap)条件。硬件俘获条件是指在当前条件下不允许为该指令产生有意义的执行结果的情况。硬件俘获条件通常包括非法指令、特许指令、防止违章、缺页、无效结果、没有任选浮点处理器情况下的浮点指令、和寄存器设定溢出。在每条指令执行之前和之后由计算机系统自动测试硬件俘获条件。如果发现一个俘获条件,提取一个俘获。提取一个俘获包括步骤防止该俘获指令和该指令之后的所有那些指令影响机器状态,将俘获指令的地址保存在计算机设计者熟知的规定俘获地址寄存器中,设定机器模式为管理程序(特许)模式,和从俘获处理程序切换到读取指令。通常通过将一个取决于俘获条件类型的常数并置于一个专用状态寄存器,即俘获基址寄存器(TBR)的内容确定俘获处理程序的地址。另外一种俘获形式是软件俘获。许多计算机系统具有专用指令,软件俘获的副作用是强制俘获。这些由请求操作系统服务(一个″系统调用″)的用户模式程序使用。除俘获处理程序的地址是一个由俘获指令本身计算的变量而不是一个常数外,检测软件俘获所采用的步骤与刚描述的硬件俘获的那些步骤相同。几乎所有计算机系统的实施都是流水线的。在流水线实施中,每条指令最少占用五到七个时钟周期以完全执行。一种典型的步骤顺序是从一个指令高速缓冲存储器读取指令,解码该指令以确定其资源需求,从一个寄存器文件读出该指令的操作数值,执行该指令以产生一个结果;这需要一到三个时钟周期,并将结果回写到该寄存器文件。为保持对硬件的充分利用,每当有可能时每个时钟周期有一个新指令进入流水线。这样,虽然每个单独的指令需要数个周期完全执行,指令的完成速度可高达每个时钟周期一个。某些俘获条件取决于执行结果,因此直到执行级后才能进行测试。对于这些指令,在回写周期期间进行测试,及时防止用无效结果更新寄存器文件。每当检测到一个俘获条件时,俘获的指令之前执行的所有指令的俘获已完成回写阶段,因此其结果已更新寄存器文件。跟随该俘获指令后的所有指令仍然在流水线中。在流水线机器中提取一个俘获是从该流水线清除所有指令并强制读取级切换到俘获处理程序地址的简单事情。在回写阶段提取一个俘获表示因硬件被应用到俘获指令之后的被清除的指令的情况造成的无效程度。在常规处理器中,在提取一个俘获中被清除的指令数量近似等于流水线的长度。这种代价很小,以至为简化起见,所有俘获以相同方式处理。在流水线的某一较早阶段将例如因为未识别或特许而不能执行的一条指令简化地标为俘获。该俘获标记伴随指令贯穿流水线,直到其被识别并在回写阶段起作用。然而,在一个超标量无序处理器中,因在回写阶段提取一个俘获而造成的无效明显增大。简单地说,该处理器与常规流水线的不同在于通过在解码级后插入一个缓冲器(″指令架″)和在执行级后插入另一个缓冲器(″结果架″)。每个缓冲器可保留数条指令,每条指令在缓冲器保留不定的时间长度,等待条件的正确组合以使其进至下一个级。在诸如1990年12月5日提交的题为″具有去耦读取,发出和更新操作的处理器构架和理论分支″的美国专利申请序号No.07/622,893中公开的超标量处理器中,在流水线的第一(读取)和最后(回写)阶段之间的这些缓冲器中可保留多达64条指令。因此,在回写阶段检测和进行一个俘获导致将数十个时钟周期的执行带宽浪费在被清除的指令上。某些类型的俘获直到执行级后才能被检测到。对于这些俘获,浪费现象是不可避免的。但许多类型的俘获可在读取或解码级检测。在现有技术的无序处理器中,正如在传统流水线机器中一样处理在读取或解码级检测的俘获。该指令被标为俘获,然后象任何其它指令一样送入机器。它停留在指令架上等待空闲执行单元以使其能够进至结果架,它在指令架必须等待直到此前读取的所有指令已通过回写阶段。在此整个时间期间,读取和解码级继续送出俘获指令之后的指令,即使解码级知道所有那些随后指令将被清除。在解码级检测的许多种硬件俘获是″不应发生″的类型非法指令,特许或防止违章。象缺页之类在读取级检测的其它类型俘获在俘获处理程序中需要如此大的额外开销,以至即使数十个浪费指令也不明显。但有一类俘获,不是编程错误的软件俘获和寄存器设定溢出预计会发生,并在俘获处理程序中引起一个较低的额外开销。在超标量无序处理器中在回写阶段等待提取该类俘获时浪费的累积效果可能很明显。本专利技术包括用于在靠多条流水线指令工作的超标量处理器中检测和执行程序指令硬件和软件俘获的装置。该装置包括用于从一个指令高速缓冲存储器或从主存储器读取指令的读取装置,一个用于存储从读取装置读取的指令的指令FIFO存储器,和一个根据存储指令的相对使用期限从FIFO存储器移去指令并检查俘获条件的指令的指令解码装置。解码装置响应指令中的俘获标识从FIFO存储器清除所有较新的指令。在本专利技术中,每当解码级在一条指令上检测到一个硬件俘获条件时,它清除该指令和在该指令之后读取的所有那些指令,而不是将该指令转送到指令架。在软件俘获的情况下,仅转送俘获指令,以便得到计算的俘获处理程序地址,并清除所有随后的指令。在规定俘获地址寄存器的副本中保存俘获指令的地址。设定模式为管理程序模式,切换到新寄存器设定,并且只要一得知俘获处理程序地址就强制读取级开始从俘获处理程序读取指令。通过俘获基址寄存器(TBR)与硬件俘获的常数俘获型数值或执行软件俘获指令的结果并置给出俘获处理程序地址。在本专利技术中,提取在解码级检测的硬件俘获仅有的代价是一个在其期间没有指令被放入指令架的小时间窗口。但由于指令架是一个排队装置,在该间隔的开始很可能已经有足够的指令在其中以保持执行级繁忙,直到解码级重新开始发出指令。软件俘获因其必须等待俘获指令以进入执行级而代价较大,但与等待俘获指令以进入回写阶段相比代价要小得多。为了能在解码级检测特许违章,本专利技术在解码级而不是在执行级在俘获处理程序的入口和出口执行进入管理程序模式和从中返回的变化。同样,为了能在解码级检测寄存器设定溢出俘获,本专利技术在解码级本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:戴维·L·伊萨曼,
申请(专利权)人:现代电子美国公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。