使用分支取代的仿真处理器执行的制作方法

文档序号:6594677阅读:176来源:国知局
专利名称:使用分支取代的仿真处理器执行的制作方法
技术领域
本发明一般涉及处理器仿真,并且具体涉及由分支取代(override)逻辑解析分支 指令的仿真方法学。
背景技术
处理器设计的仿真在本领域是公知的。实际上,大量仿真是新处理器设计的工艺 所必需的。仿真涉及通过量化目标处理器组件功能单元的特性并将那些特性相互相关以 便出现的模型(即,有关特性之和)提供实际处理器行为的几乎相同表示而为目标处理器建 模。仿真的一个已知方法提供系统组件的硬件准确模型,如硬件描述语言(HDL)构造 或合成后的其门级实现,并且仿真组件之间传递的实际装置状态和信号。这些仿真虽然高 度准确,但速度较慢,计算要求高,并且仅在硬件准确模型已开发时才能够在设计工艺中表 现良好。相应地,它们不适用于在阐明架构权衡、检测基本性能标准及诸如此类中有用的早 期仿真。仿真的一种更有效方法提供硬件功能单元的更高端周期准确模型,并且经面向事 务的消息传递系统为其交互建模。消息传递系统通过将每个时钟周期分成“更新”阶段和 “通信”阶段而仿真实时执行。周期准确的单元功能在适当的更新阶段中被仿真以便仿真实 际功能单元行为。组件间信令分配到通信阶段以便实现周期准确的系统执行。仿真的准确 度取决于功能单元模型准确地反映实际单元功能和准确地展现组件间信令的程度。甚至诸 如处理器等复杂系统的高准确功能单元模型在本领域是已知的,并且产生了在许多应用中 以高准确度匹配现实硬件结果的仿真。然而,功能单元准确度只是获得诸如处理器等复杂系统的高保真仿真的挑战的一 部分。有意义的仿真另外要求对处理器上的活动准确建模,如指令执行顺序。在许多应用 中,可通过在处理器模块上简单执行相关程序而对处理器活动准确建模。然而,这并不是始 终可能的,特别是在对实时处理器系统建模时。例如,输入/输出行为(I/O)可以是要探究 的关键领域,但实际I/O环境十分复杂,使得准确的I/O模型的开发是不可能或不可行的。 这是关于诸如移动通信装置等许多面向通信的系统的情况。处理器仿真准确度的一个关键方面是指令执行顺序。所有现实程序包括条件分支 指令,其评估在运行时之前是未知的。实际上,在许多情况下,在处理器流水线(pipeline) 中深处的执行阶段中评估指令前,不进行分支评估。为防止流水线暂停(stall),即在评估 分支条件前中止执行,现代处理器采用精密的分支预测技术。在将条件分支指令解码时,基 于过去分支行为和/或其它度量,预测指令的评估,并且基于预测继续指令获取。也就是 说,如果预测为要取分支,则从分支目标地址(可先验已知或者可动态计算得出)获取指令。 如果预测为不取分支,则指令获取继续按顺序进行(在分支指令地址后的地址)。未正确预 测的分支能够要求流水线刷新以清除未正确获取的指令的管道(pipe)以及要求获取正确 指令时的暂停,从而不利地影响了执行速度和功耗。准确的分支预测因此是处理器性能的一个重要方面,并且因而是处理器仿真中非常关注的一个领域。然而,确定许多分支条件的 解析的I/O环境可能太复杂而无法在仿真中准确地建模。

发明内容
—种处理器仿真环境包括操作以根据目标处理器的特性来仿真处理器指令的执 行的处理器执行模型和分支取代逻辑。在处理器执行模型将分支指令解码时,它请求来自 分支取代逻辑的分支指引。分支取代逻辑提供解析分支评估的分支指引以响应请求。请求 和分支指引可采用多种形式。在一个实施例中,请求包括正在仿真的分支指令的地址,并且 可选地包括预测的分支目标地址。分支取代逻辑可通过使用分支指令地址,将与目标处理 器兼容的处理器上执行的指令的执行追踪(execution trace)编排索引。分支指引可包括 取代分支目标地址,该地址可从指令追踪获得或者由分支取代逻辑以其它方式计算得出。 以此方式,在未对复杂I/O建模的仿真环境中可仿真准确的程序执行顺序。


图1是处理器仿真环境的功能框图。图2是仿真处理器执行的方法的流程图。
具体实施例方式图1示出包括处理器执行模型12的处理器仿真环境10。处理器执行模型12根据 目标处理器的特性来仿真指令的执行。目标处理器可以是现有处理器,或者更可能是在开 发的新处理器。处理器执行模型12可包括目标处理器内一个或多个功能单元的硬件准确 模型,如指令单元(IU)、浮点单元(FPU)、存储器管理单元(MMU)或诸如此类。备选或附加 的是,一个或多个功能单元可由周期准确的功能单元来建模,零仿真时间数据和/或参数 在功能单元模型之间传递。通常,处理器执行模型12可包括本领域已知的任何处理器仿真 模型。 处理器执行模型12通过执行从指令库14检索的指令,仿真目标处理器的操作。指 令库14本身可包括存储器功能的仿真模型,如指令高速缓存(I高速缓存)。备选的是,指令 库14可简单地包括能够加载到存储器中并由目标处理器执行的指令的有序清单(如在编 译器/链接器产生的对象模型中)。在一个实施例中,处理器执行模型12通过提供指令地 址(IA) 16,从指令库14获取一个或多个指令。指令库14又提供一个或多个对应指令18 到处理器执行模型12。在各种实施例中,处理器仿真环境10可如所要求的或期望的,另外包括存储器 20、输入/输出功能(I/O) M及诸如此类的仿真模型。例如,存储器模型20可实现为一个 或多个高速缓存。I/O模型M可模拟UART、并行端口、USB接口或其它I/O功能。处理器 仿真环境10可另外包括其它仿真模型,或到诸如图形处理器、加密引擎、数据压缩引擎或 诸如此类(未示出)等另一电路的接口的模型。在一些情况下,处理器仿真环境10不能提供足够精密的I/O模型以确保处理器执 行模型12的有意义仿真。例如,目标处理器可能部署在无线通信系统移动终端中。带有无 线通信系统的移动终端(及其处理器)的复杂、动态交互不能得到准确建模。然而,部署在移动终端中时的目标处理器的性能是关键的,并且开发人员必须能够仿真在该环境中其操作 的许多方面。具体而言,直接和深刻影响其性能的目标处理器的操作的一方面是程序执行路径 -即,分支指令的动态解析。根据本发明的一个或多个实施例,通过分支取代逻辑26在处 理器执行模型12上实行已知或期望的分支指令行为。在处理器执行模型12遇到条件分支 指令时,分支取代逻辑26从处理器执行模型12接收对分支指引的请求28。作为响应,分支 取代逻辑沈提供分支指引30,向处理器执行模型12指示分支评估的解析(即,取或不取)。分支取代逻辑沈可以在几种方式中得到分支指引30。例如,它可检查关注的I/ 0条件下(如在参与无线通信时)不同处理器(如目标处理器的以前版本)上实际执行的存储 在执行追踪32中的指令。备选的是,分支取代逻辑沈可根据各种算法来计算分支指引30, 例如随机、取或不取分支评估的预定概率分布(基于代码的分析和环境的认知、通过I/O环 境和程序的动态分析)或其它方案。以此方式,处理器执行模型12的有意义仿真和分析是 可能的,甚至在I/O环境不能准确地建模的情况下。来自处理器执行模型12的分支指引请求观和来自分支取代逻辑沈的分支指引 30可采用多种形式。例如,在对概率测试适当的一个实施例中,处理器执行模型12可简单 地断言信号为请求观,并且接收单个比特作为分支指引30 -例如,1=取,以及0=不取。这 种情况下,分支取代逻辑26根据某一概率分布来控制分支指令的分支解析,而与正在执行 的代码内的每个单独指令或其功能无关。在另一个实施例中,来自处理器执行模型12的分支指引请求观可采用分支指令 地址(BIA)的形式-即,对其正在仿真执行的分支指令的地址。在此实施例中,分支取代 逻辑26可使用BIA (及可选择地使用偏移)为执行追踪32编排索引以发现如前面执行的 对应分支指令的实际分支解析。在此实施例中,来自分支取代逻辑沈的分支指引30可采 用取代分支目标地址(OBTA)的形式-该地址即处理器执行模型12应从其开始执行新指 令的地址。在特别适合仿真处理器执行模型12内分支预测逻辑的仍有的另一个实施例中, 来自处理器执行模型12的分支指引请求观可包括BIA和预测分支目标地址(BTA)两者。 在此实施例中,来自分支取代逻辑沈的分支指引30可包括指示分支预测的准确度的单个 比特-例如,1=正确预测,以及0=错误预测。分支取代逻辑沈可计算分支预测的准确度, 或者可通过使用BIA与执行追踪32中对应分支指令的实际分支解析进行比较来查明它。备 选的是,分支取代逻辑26可提供OBTA形式中的分支指引30。OBTA将是用于不取分支指引 30的适当增大的BIA,或用于取分支指引30的BTA。注意,BTA无需匹配如处理器执行模型 12计算得出的预测取的BTA -例如,分支取代逻辑沈能够通过提供适当0ΒΤΑ,在程序执行 路径中强制中断或其它更改。图2示出仿真处理器执行的方法100。从框102开始,方法以获取一个或多个指令 开始(框104)。如本领域中已知的,处理器执行模型12可按顺序获取指令,或者它可成组获 取指令,如I-高速缓存行。对于每个获取的指令,处理器执行模型12将指令解码(框105)。 如果指令不是分支指令(框106),则处理器执行模型12仿真指令的执行(框108),例如通过 将指令加载到执行流水线的模型中。在处理器执行模型12将分支指令解码(框106)时,它 向分支取代逻辑26发出对分支指引的请求观(框110)。处理器执行模型12随后从分支取代逻辑沈接收分支指引30 (框112)。处理器执行模型12随后通过获取和执行分支指 引30确定的地址处的指令,仿真分支指令的执行(框114)。请求观和分支指引30可包括仿真的电信号,其中,处理器执行模型12(或至少其 接口的模型)包括硬件准确的仿真模型,如硬件描述语言(HDL)模型、门级模型功能模型或 诸如此类。备选的是,在处理器执行模型12包括周期准确的功能模型的情况下,请求观和 分支指引30可包括根据为处理器仿真环境10定义的面向事务的消息传递系统而在处理器 执行模型12与分支取代逻辑沈之间传递的零仿真时间消息。本领域技术人员可容易为任 何特定仿真环境实现适当的请求观和分支指引30信令。通过分支取代逻辑沈提供分支指引30允许处理器仿真环境10通过最少的I/O 建模或模拟来仿真处理器执行模型12。处理器执行模型12可像目标处理器一样仿真指令, 仅在分支确定点有介入。在期望高程度的仿真准确度时,这特别重要。另外,通过分离分支 取代逻辑沈和处理器执行模型12,可根据特定仿真所期望的或要求的来实现多种分支取 代方案。当然,在不脱离本发明基本特性的情况下,本发明可以不同于本文具体所述那些 方式的其它方式来实现。所示实施例在所有方面均要视为说明性而不是限制性的,并且落 在随附权利要求的意义和等同范围内的所有更改旨在涵盖于其中。
权利要求
1.一种仿真处理器执行的方法,包括解码处理器指令以确定所述指令是否是分支指令;以及通过以下步骤来仿真分支指令的执行从分支取代逻辑请求分支指弓I,从分支取代逻辑接收响应所述请求的分支指引;以及根据来自所述分支取代逻辑的所述分支指引,仿真所述分支指令的执行。
2.如权利要求1所述的方法,其中从分支取代逻辑请求分支指引包括提供所述分支 指令地址到所述取代逻辑。
3.如权利要求2所述的方法,其中从分支取代逻辑请求分支指引还包括提供分支目 标地址到所述取代逻辑。
4.如权利要求1所述的方法,其中从分支取代逻辑接收的所述分支指引包括取代分 支目标地址。
5.如权利要求5所述的方法,其中仿真所述分支处理器指令的执行以响应来自所述 分支取代逻辑的所述分支指引包括仿真在所述取代分支目标地址开始的一个或多个指令 的执行。
6.如权利要求1所述的方法,其中从分支取代逻辑接收的所述分支指引包括比特。
7.—种处理器仿真环境,包括处理器执行模型,操作以根据目标处理器的特性来仿真处理器指令的执行,并且还操 作以在解码分支指令时请求分支指引,接收响应所述请求的分支指引,并且根据所述分支 指引来仿真所述分支指令的执行;以及分支取代逻辑,操作以接收来自所述处理器执行模型的分支指引请求,并提供分支指 引以响应所述请求。
8.如权利要求7所述的处理器仿真环境,还包括所述分支取代逻辑可访问的指令执 行追踪,所述指令执行追踪包括由与所述目标处理器兼容的处理器以前执行的指令。
9.如权利要求7所述的处理器仿真环境,还包括指令库,所述处理器执行模型从所述 指令库获取指令。
10.如权利要求7所述的处理器仿真环境,其中所述指令库对指令高速缓存建模。
11.如权利要求7所述的处理器仿真环境,其中所述分支指引请求包括正在仿真的所 述分支指令的地址。
12.如权利要求11所述的处理器仿真环境,其中所述分支指引请求还包括分支目标 地址。
13.如权利要求7所述的处理器仿真环境,其中所述分支指引包括取代分支目标地址。
14.如权利要求13所述的处理器仿真环境,其中所述处理器执行模型操作以通过仿 真在所述取代分支目标地址开始的一个或多个指令的执行来根据所述分支指引仿真所述 分支指令的执行。
15.如权利要求7所述的处理器仿真环境,其中所述分支指引包括比特。
16.一种处理器执行模型,包括功能单元模型,所述功能单元模型共同操作以根据目 标处理器的特性来仿真处理器指令的执行,并且还操作以在解码分支指令时请求分支指引, 接收响应所述请求的分支指引,以及 根据所述分支指引来仿真所述分支指令的执行。
17.如权利要求16所述的处理器执行模型,其中所述分支指引包括取代分支目标地 址,以及其中所述功能单元模型共同操作以通过仿真在所述取代分支目标地址开始的一个 或多个指令的执行来根据所述分支指引仿真所述分支指令的执行。
全文摘要
一种处理器仿真环境包括操作以根据目标处理器的特性来仿真处理器指令的执行的处理器执行模型和分支取代逻辑。在处理器执行模型将分支指令解码时,它请求来自分支取代逻辑的分支指引。分支取代逻辑提供解析分支评估的分支指引以响应请求。请求可包括分支指令地址。分支取代逻辑可通过使用分支指令地址,将与目标处理器兼容的处理器上执行的指令的执行追踪编排索引。分支指引可包括取代分支目标地址,该地址可从指令追踪获得或者由分支取代逻辑以其它方式计算得出。以此方式,在未对复杂I/O建模的仿真环境中可仿真准确的程序执行顺序。
文档编号G06F17/50GK102144232SQ200980134457
公开日2011年8月3日 申请日期2009年9月4日 优先权日2008年9月4日
发明者A·D·沃克 申请人:爱立信电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1