具有流水线泡沫检测装置的微处理器的制作方法

文档序号:6594570阅读:121来源:国知局
专利名称:具有流水线泡沫检测装置的微处理器的制作方法
技术领域
本发明涉及根据权利要求1的前序的微处理器,根据权利要求8的前序的用于激 励微处理器的方法,以及该微处理器在机动车中的使用。
背景技术
流水线微体系结构或流水线是提高微处理器中的处理核的性能的已知方式。在 这种情况下,将机器命令的执行分解成重叠执行的连续任务单元。在程序命令或机器命令 的执行期间,这样的重叠能够增加吞吐量。通过扩展流水线的功能可进一步增加每个时钟 周期或时钟单位执行的命令数。一种可能的扩展通过例如超标量(superscalar)技术来提 供。这样的技术借助于动态分配用于将多条机器命令从命令序列同时转移至并行操作的功 能单元。在该命令的执行期间,微处理器处理动态分配本身。这意味着,在实际编译期间, 没有发生动态分配。VLIW(超长指令字)技术是流水线功能的备选扩展选择。与超标量技术相比,VLIW 技术不涉及在运行时通过处理器将命令动态分配给各个功能单元,而且编译器将可并行执 行的命令分组。即使使用上述扩展之一,流水线微体系结构的性能也可能受到流水线冲突(也称 为流水线危害)而削弱。流水线冲突的出现可导致流水线的执行被临时停止,这也称为流 水线停顿。流水线停顿不涉及整个流水线的阻塞。当指令被停止时,典型地,仅减慢随后命 令的执行,而先前命令继续执行。流水线执行中形成的间隙称为流水线泡沫。在流水线微体系结构中,举例来说可发生如下流水线冲突-资源冲突(结构危害)举例来说,当两个不同的流水线阶段希望同时访问相同 的资源时,例如,相同的单端口存储器,这种情况就发生了。-数据依赖性(数据危害)随后的命令等待先前的命令,例如,以更新寄存器中的 数据。-控制流中的冲突(控制危害)控制流发生冲突,其中从来自其他命令的数据获 得分支命令的目的地址,因此,分支命令的执行可被减慢例如对于来自其他命令的这些数 据的估计时间。为了防止流水线的执行为此而停止,使用或实施分支预测,例如,预先推测 性地计算分支地址。如果发现预测是正确的,则在没有中断的情况下执行继续。然而,如果 分支预测不正确,则其间执行的命令必须被拒绝(流水线刷新)。这占据了大量时间,特别 对于长流水线微体系结构。当流水线再装满时,在某些流水线阶段中,这必然形成流水线泡 沫。为了减少流水线泡沫,已知各种技术,其作用于编译器中或流水线的硬件实现中 或流水线微体系结构中。对于编译器,通常,寻找配置参数集,使得流水线冲突的频率对于 指定应用最低。在硬件方面,在流水线微体系结构中通常实施额外的防备,以尽可能地防止 流水线泡沫出现,或者促使处理器中流水线冲突的更快解决。文档WO 2004/111838A1描述了一种方法,其部分地避免了由于数据依赖性带来的流水线冲突。在这个情境中,匹配的流水线阶段保证了访问相同寄存器的两条命令不彼 此阻塞。文档US 2003/0200421A1公开了一种方法,其中处理器重新组织在多次通过之后 执行的命令,从而尽可能在没有流水线冲突的情况下进行所述执行。在这些方法以及其他 类似公开的情况下,主要强调了优化流水线体系结构以避免流水线冲突。文档EP 0352103A2提出了一种用于操作流水线处理单元的处理器和方法,其中 借助于第一流水线部分中的流水线泡沫检测装置来检测流水线泡沫,之后通过复写操作消 除流水线泡沫。

发明内容
本发明的目的在于提出一种微处理器和一种用于激励微处理器的方法,所述微处 理器能够改善地避免流水线泡沫。本发明通过权利要求1的微处理器和权利要求8的方法来实现该目的。具体地,本发明基于以下思想向流水线泡沫检测装置增加最小执行时钟周期查 明单元和/或真实执行时钟周期查明单元,以便允许相对精确地分析流水线泡沫的出现。根据本发明的微处理器优选地适于允许软件开发者对于流水线冲突发生时执行 程序代码的质量的深度分析。减少流水线泡沫的已知方法允许许多软件开发者仅在有限程度主动地评估对于 流水线冲突的避免的作用。典型的软件开发者配置有为其计划预先配置的编译器,用于微 处理器中的静态流水线微体系结构。如果将他的程序代码与其他程序代码合并,则目前,他 估计他的程序代码引起流水线冲突的程度仅仅是不精确的。根据本发明的微处理器和根据本发明的方法具有特别优点,可对于通过软件开发 者任意选择的程序代码部分提供关于流水线响应或发生流水线泡沫的反馈。在具有用于 具有优化流水线微体系结构的可用微处理器的规定的编译器的情况下,这允许软件开发者 相对快速和容易地分析程序部分参与到流水线冲突的生成的程度。这使得程序代码得以改 善,以避免流水线泡沫。在软件开发者核查程序或程序代码过程中,这可便利地通过与程序 代码本身的优化相结合而优化的编译器设置来实现。优选地,流水线微体系结构至少包括微处理器的控制器的部分。术语“处理”优选地覆盖术语“执行”。术语“优化”有利地被理解为表示最佳化以避免流水线泡沫。优选地,时钟周期的数目等同或备选地理解为表示执行时间,特别为非离散执行 时间。流水线泡沫检测装置优选地还具有真实执行时钟周期查明单元,用于基本查明一 条或多条程序命令通过流水线微体系结构和/或由后者处理的执行时钟周期的实际数目。 在这种情况下,真实执行时钟周期查明单元特别包括计数部件。优选地,所述微处理器的命令集具有流水线泡沫测试开始命令和流水线泡沫测试 停止命令,其可用于激励所述流水线泡沫检测装置,从而启动和结束流水线泡沫测试,由此 激活和去激活所述流水线泡沫检测装置。所述最小执行时钟周期查明单元优选地具有机器代码执行时钟周期关联单元,其查明对于从机器代码最近加载的命令的执行时钟周期的最小数目。优选地,所述流水线泡沫检测装置和所述流水线微体系结构被设计为,在所述流 水线微体系结构中加载了所述流水线泡沫测试开始命令之后和/或当在所述流水线微体 系结构中执行所述流水线泡沫测试开始命令时,分别启动所述最小执行时钟周期查明单元 和所述真实执行时钟周期查明单元,并且他们查明对于一条或多条命令的执行时钟周期的 最小和真实数目,之后,当在所述流水线微体系结构中加载所述流水线泡沫测试停止命令 时或在后者中执行时或由后者写回时,停止所述最小执行时钟周期查明单元和所述真实执 行时钟周期查明单元。所述真实执行时钟周期查明单元优选地具有监视单元,其对于由所述流水线微体 系结构处理的每条命令形成执行时钟周期的实际数目和执行时钟周期的最佳数目之差,所 述执行时钟周期的最佳数目在所述流水线泡沫检测装置是活动时通过所述最小执行时钟 周期查明单元来查明,其中所述监视单元特别具有最大值存储器单元,其存储最大差的值。所述流水线泡沫检测装置优选地具有结果存储器,其输入端连接至所述最小执行 时钟周期查明单元和所述真实执行时钟周期查明单元,以及在其中存储执行时钟周期的最 佳数目的总和和/或执行时钟周期的实际数目的总和和/或这些总和之间的差,其中这些 总和涉及一条或多条程序命令的执行,特别涉及通过所述流水线微体系结构和/或通过后 者执行的和/或在单流水线泡沫测试期间通过后者处理的所有程序命令。该方法有利地通过可由微处理器执行的程序来扩展,其具有至少一条流水线泡沫 测试开始命令和至少一条流水线泡沫测试停止命令,其激励所述流水线泡沫检测装置中的 所述最小执行时钟周期查明单元和真实执行时钟周期查明单元,并且由此启动和结束流水 线泡沫测试,因此特别通过以下来激活和去激活所述流水线泡沫检测装置在所述流水线 微体系结构中加载了所述流水线泡沫测试开始命令(BTON)之后,分别启动所述最小执行 时钟周期查明单元和所述真实执行时钟周期查明单元,并且他们基本查明对于一条或多条 命令的时钟周期的最小和真实数目;之后,当在所述流水线微体系结构中加载或执行或写 回所述流水线泡沫测试停止命令(BTOFF)时,停止所述最小执行时钟周期查明单元和所述 真实执行时钟周期查明单元。特定有利地,程序代码在各个位置分别具有流水线泡沫测试 开始命令和流水线泡沫测试停止命令,由此可对于流水线泡沫的出现分析由这些命令包含 的程序代码的部分,以及可特别优选地结合编译器设置优化相关程序代码部分。有利地,根据本发明的整个微处理器或各个模块或所述微处理器的部分实现为代 码,特别地为比特代码,其用作多目的逻辑芯片的激励,例如,特别地FPGA (现场可编程门 阵列)。特别地,当项目的数目相对较少时,由此可相比于ASIC的使用节省成本。本发明还涉及在机动车,特别地在机动车控制系统和/或安全系统中,特别优选 地在机动车制动系统中微处理器的使用。本发明优选地用于特别在程序代码的核查处理中软件开发者对于程序代码的优 化。在从属权利要求和参照附图的示例性实施例的描述中可得到其他优选实施例。


图1示出流水线微体系结构和与其关联的流水线泡沫检测装置的示例性实施例;
图2示出在流水线微体系结构中流水线泡沫测试的示例性命令执行;以及图3示出示例性程序代码,包括流水线泡沫测试开始命令和流水线泡沫测试停止 命令,其允许软件开发者以相对灵活的方式分析在流水线冲突发生时程序代码的质量。
具体实施例方式通过图1中的实例示出的流水线微体系结构1包括各个流水线阶段。依据流水线 微体系结构的设计,阶段数可能大不相同。例如,图1示出以下流水线阶段-IF(指令提取)阶段10 经由输入总线15将机器代码或OP代码14以及相关数 据(例如操作数或目的地址)馈送至这个流水线阶段。-ID(指令解码)阶段11 当加载或提取了命令时,在这个阶段11中对命令解码。-EX(执行)阶段12 在命令被解码和识别后,执行该命令。-WB(写回)阶段13 在这个阶段,例如通过流水线输出总线16将结果写回寄存 器,并且可能保持准备用于进一步的执行步骤。流水线微体系结构1连接至流水线泡沫检测装置2。经由输入总线4提取的命令 也可用于流水线泡沫检测装置2。只要识别流水线泡沫测试开始命令ΒΤ0Ν,优选地在阶段 IO(IF),或在阶段11 (ID),流水线微体系结构1使用信号路径17来触发流水线泡沫检测装 置2开始流水线泡沫测试,之后流水线泡沫检测装置2监视流水线执行。在这个情境中,监 视主要涉及查明对于命令序列的时钟周期时间的理论最佳或最低数目和实际发生的时钟 周期时间的数目之间的差。在开启流水线泡沫检测装置2之后,其使用最小执行时钟周期 查明单元3确定对于在步骤10 (IF)提取的每条命令的时钟周期的最小或最佳数目。为此, 后者具有机器代码时钟周期关联单元6,最小执行时钟周期查明单元3使用其根据输入总 线15提供的命令的比特值或命令的OP代码推导或确定对于在步骤IO(IF)加载的命令的 时钟周期的理论最佳数目。当阶段IO(IF)提取了新命令时,使用信号路径17,流水线微体 系结构1通知最小执行时钟周期查明单元3。真实执行时钟周期查明单元4的计数部件5 经由信号路径17、18和19连接至流水线微体系结构1,因此可基本上查明对于一条命令或 对于多条程序命令或命令的时钟周期的实际检测数目。通过真实执行时钟周期查明单元4 的监视单元7形成由最小执行时钟周期查明单元3查明的、执行时钟周期的最佳数目与执 行时钟周期的实际数目之间的差。因此,监视单元7提供对于最近执行的程序命令的各个 监视结果。此外,基于该实例,监视单元7包括最大值存储器单元20,其存储对于执行的命 令的最大差的值,也就是说,时钟周期的理论最低数目与时钟周期的实际发生数目的最大 差。结果存储器单元9(累加器)的输入端连接至最小执行时钟周期查明单元3和真实执 行时钟周期查明单元4,并且基于该实例,存储执行时钟周期的最佳数目的总和、执行时钟 周期的实际数目的总和、以及各个寄存器中这些总和之间的差,这三个总和涉及所有程序 命令的执行,他们在单流水线泡沫测试期间通过流水线微体系结构来执行。当在流水线泡沫测试的开始触发最小执行时钟周期查明单元3时,重设结果存储 器单元9。流水线泡沫检测装置2仅在流水线泡沫测试期间是活动的,否则,也就是说处于 非活动状态,不传送任何结果。当流水线泡沫测试停止命令BTOFF到达流水线微体系结构 1的最后阶段13(WB)时,其将停止信号发送至流水线泡沫检测装置2。然后,各个流水线泡 沫测试结束,并且在流水线泡沫检测装置2中获得的结果保持不变,直到加载或处理了下一个流水线泡沫测试开始命令ΒΤ0Ν。图2示出通过事件41开始以及通过事件43结束的用于流水线泡沫测试的示例性 序列。当在阶段IO(IF)中提取流水线泡沫测试开始命令BTON之后或当时,发生事件41。 当流水线泡沫测试停止命令BTOFF到达最后流水线阶段WB或被写回时,发生事件43。这通 过程序的图示细节44示出,其包括流水线泡沫测试命令BTON和BT0FF,这个程序的命令的 相关执行序列在用于微处理器时钟46 (elk)的流水线执行方案45中详细示出。在选择要检查的程序代码50的部分的方面,上述方法为软件开发者提供了相对 高的灵活性。图3通过实例示出软件开发者如何将流水线泡沫测试命令BTON和BT0FF、51 和52任意地插入至程序代码50中。
权利要求
1.一种微处理器,包括流水线微体系结构(1)和流水线泡沫检测装置O),其特征在 于,所述流水线泡沫检测装置(2)具有最小执行时钟周期查明单元(3),用于查明对于通过 流水线微体系结构(1)和/或由后者处理的一条或多条程序命令的执行时钟周期的最小和/或最佳数目。
2.如权利要求1所述的微处理器,其特征在于,所述流水线泡沫检测装置(2)还具有真 实执行时钟周期查明单元G),特别包括计数器部件(5),用于基本查明通过流水线微体系 结构(1)和/或由后者处理的一条或多条程序命令的执行时钟周期的实际数目。
3.如权利要求2所述的微处理器,其特征在于,所述微处理器的命令集具有流水线泡 沫测试开始命令(BTON)和流水线泡沫测试停止命令(BTOFF),其可用于激励所述流水线泡 沫检测装置O),从而启动和结束流水线泡沫测试,由此激活和去激活所述流水线泡沫检测 装置⑵。
4.如权利要求1至3中至少一项所述的微处理器,其特征在于,所述最小执行时钟周期 查明单元03)具有机器代码执行时钟周期关联单元(6),其查明对于从机器代码(0P代码) 最近加载的命令的执行时钟周期的最小数目。
5.如权利要求3或4所述的微处理器,其特征在于,所述流水线泡沫检测装置(2)和所 述流水线微体系结构(1)被设计为,在所述流水线微体系结构中加载了所述流水线泡沫测 试开始命令(BTON)之后和/或当在所述流水线微体系结构中执行所述流水线泡沫测试开 始命令(BTON)时,分别启动所述最小执行时钟周期查明单元(3)和所述真实执行时钟周期 查明单元(4),并且他们查明对于一条或多条命令的执行时钟周期的所述最小和真实数目, 之后,当在所述流水线微体系结构(1)中加载所述流水线泡沫测试停止命令(BTOFF)时或 在后者中执行时或由后者写回时,停止所述最小执行时钟周期查明单元C3)和所述真实执 行时钟周期查明单元G)。
6.如权利要求3至5中至少一项所述的微处理器,其特征在于,所述真实执行时钟周期 查明单元(4)具有监视单元(7),其对于由所述流水线微体系结构(1)处理的每条命令,形 成所述执行时钟周期的实际数目和所述执行时钟周期的最佳数目之间的差,所述执行时钟 周期的最佳数目在所述流水线泡沫检测装置( 是活动时通过所述最小执行时钟周期查 明单元C3)来查明,其中所述监视单元(7)特别具有最大值存储器单元(20),其存储最大差 的值。
7.如权利要求2至6中至少一项所述的微处理器,其特征在于,所述流水线泡沫检测 装置( 具有结果存储器(9),其输入端连接至所述最小执行时钟周期查明单元C3)和所 述真实执行时钟周期查明单元G),以及在其中存储所述执行时钟周期的最佳数目的总和 和/或所述执行时钟周期的实际数目的总和和/或这些总和之间的差,其中这些总和涉及 一条或多条程序命令的执行,特别涉及通过所述流水线微体系结构(1)和/或通过后者执 行的和/或在单流水线泡沫测试期间通过后者处理的所有程序命令。
8.一种用于激励微处理器的方法,特别地如权利要求1至7中至少一项所述的微处理 器,包括流水线微体系结构(1)和流水线泡沫检测装置O),该装置提供关于在所述流水线 微体系结构(1)中流水线泡沫的出现的信息,其特征在于,可由所述微处理器执行的程序 激励在所述流水线泡沫检测装置O)中的最小执行时钟周期查明单元(3),其查明对于通 过流水线微体系结构(1)和/或由后者处理的一条或多条程序命令的执行时钟周期的最小和/或最佳数目。
9.如权利要求8所述的方法,其特征在于,可由所述微处理器执行的所述程序具有至 少一条流水线泡沫测试开始命令(BTON)和至少一条流水线泡沫测试停止命令(BTOFF),其 激励所述流水线泡沫检测装置( 中的所述最小执行时钟周期查明单元( 和真实执行时 钟周期查明单元(4),并且由此启动和结束流水线泡沫测试,因此特别通过以下来激活和去 激活所述流水线泡沫检测装置O)在所述流水线微体系结构(1)中加载了所述流水线泡沫测试开始命令(BTON)之后,分 别启动所述最小执行时钟周期查明单元(3)和所述真实执行时钟周期查明单元,并且 他们基本查明对于一条或多条命令的时钟周期的最小和真实数目;之后,当在所述流水线 微体系结构(1)中加载或执行或写回所述流水线泡沫测试停止命令(BTOFF)时,停止所述 最小执行时钟周期查明单元(3)和所述真实执行时钟周期查明单元G)。
10.在机动车中如权利要求1至7中至少一项所述的微处理器的使用。
全文摘要
本发明公开了一种微处理器,包括流水线微体系结构(1)和流水线泡沫检测装置(2),其中,所述流水线泡沫检测装置(2)包括最小执行时钟周期查明单元(3),用于确定一条或多条程序命令的执行时间周期的最小和/或最佳数目,所述周期经过所述流水线微体系结构(1)和/或由此被处理。
文档编号G06F9/30GK102138127SQ200980133368
公开日2011年7月27日 申请日期2009年9月1日 优先权日2008年9月4日
发明者A·基施鲍姆, L·D·卡布莱帕 申请人:大陆-特韦斯贸易合伙股份公司及两合公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1