• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 18
    • 下载费用:30 金币  

    重庆时时彩多久一期: 仿真期间存储器步移序列加速的方法和系统.pdf

    摘要
    申请专利号:

    重庆时时彩单双窍门 www.4mum.com.cn CN201310055854.5

    申请日:

    2013.02.21

    公开号:

    CN103324515A

    公开日:

    2013.09.25

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 9/455申请日:20130221|||公开
    IPC分类号: G06F9/455; G06F11/22 主分类号: G06F9/455
    申请人: 国际商业机器公司
    发明人: D·W·卡明斯; D·A·麦凯; V·R·武尤拉
    地址: 美国纽约阿芒克
    优先权: 2012.02.22 US 13/401,922
    专利代理机构: 北京市金杜律师事务所 11256 代理人: 酆迅
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201310055854.5

    授权公告号:

    ||||||

    法律状态公告日:

    2017.03.01|||2013.10.30|||2013.09.25

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本发明的实施方式提供一种用于在由计算机执行的仿真期间加速仿真的存储器步移序列的系统、方法和程序产品。在一个实施方式中,执行仿真测试用例并且将该仿真的存储器中的一个或多个存储器位置标识为适于包括有效数据。在该仿真的存储器步移序列开始之后,确定标识的存储器位置是否处于在该仿真的存储器步移序列期间将要由仿真的硬件处理的存储器位置之后的指定数目的存储器位置内。如果标识的存储器位置处于该指定数目内,则允许该仿真硬件处理该存储器位置。如果标识的存储器位置不处于该指定数目内,则使该仿真硬件前进到后续存储器位置并且允许该仿真的硬件处理该后续存储器位置。

    权利要求书

    权利要求书
    1.   一种用于在由计算机执行的仿真期间加速仿真的存储器步移序列的方法,所述方法包括:
    执行仿真测试用例,在所述仿真测试用例中测试被限于仿真的存储器的一些部分;
    在所述仿真测试用例的执行期间,将所述仿真的存储器中的一个或多个存储器位置标识为适于包括有效数据;
    在所述仿真的存储器步移序列开始之后,确定标识的存储器位置是否在将要由仿真的硬件处理的存储器位置之后的指定数目的存储器位置内,在所述仿真的存储器步移序列中所述仿真的硬件顺序地处理所述仿真的存储器中的存储器位置;
    响应于标识的存储器位置在将要由所述仿真的硬件处理的所述存储器位置之后的所述指定数目的存储器位置内,允许所述仿真的硬件处理所述存储器位置;以及
    响应于标识的存储器位置不在将要由所述仿真的硬件处理的所述存储器位置之后的所述指定数目的存储器位置内,使所述仿真的硬件前进到所述仿真的存储器中的后续存储器位置,并且允许所述仿真的硬件处理所述后续存储器位置,所述后续存储器位置是标识的存储器位置之前的指定数目的存储器位置。

    2.   根据权利要求1所述的方法,其中所述仿真的硬件维护包括指针的寄存器,所述指针指定所述仿真的存储器中将要由所述仿真的硬件处理的所述存储器位置,并且其中所述使所述仿真的硬件前进到后续存储器位置包括将所述指针设置到所述后续存储器位置。

    3.   根据权利要求1所述的方法,其中所述仿真的硬件包括一个或多个仿真的微处理器组件。

    4.   根据权利要求1所述的方法,其中所述仿真的存储器是仿真的高速缓冲存储器。

    5.   一种用于在由计算机执行的仿真期间加速仿真的存储器步移序列的方法,所述方法包括:
    执行仿真测试用例,在所述仿真测试用例中测试被限于仿真的存储器的一些部分;
    在所述仿真测试用例的执行期间,将所述仿真的存储器中的一个或多个存储器位置标识为适于包括有效数据;
    在所述仿真的存储器步移序列开始之后,确定将要由仿真的硬件处理的存储器位置是否是标识的存储器位置,在所述仿真的存储器步移序列中所述仿真的硬件顺序地处理所述仿真的存储器中的存储器位置;
    响应于将要由所述仿真的硬件处理的所述存储器位置是标识的存储器位置,允许所述仿真的硬件处理所述存储器位置;以及
    响应于将要由所述仿真的硬件处理的所述存储器位置不是标识的存储器位置,使所述仿真的硬件前进到标识的存储器位置,并且允许所述仿真的硬件处理所述标识的存储器位置。

    6.   根据权利要求5所述的方法,其中所述仿真的硬件维护包括指针的寄存器,所述指针指定所述仿真的存储器中将要由所述仿真的硬件处理的所述存储器位置,并且其中所述使所述仿真的硬件前进到标识的存储器位置包括将所述指针设置到所述标识的存储器位置。

    7.   根据权利要求5所述的方法,其中所述仿真的硬件包括一个或多个仿真的微处理器组件。

    8.   根据权利要求5所述的方法,其中所述仿真的存储器是仿真的高速缓冲存储器。

    9.   一种用于在仿真期间加速仿真的存储器步移序列的系统,所述系统包括:
    用于执行仿真测试用例的部件,在所述仿真测试用例中测试被限于仿真的存储器的一些部分;
    用于在所述仿真测试用例的执行期间,将所述仿真的存储器中的一个或多个存储器位置标识为适于包括有效数据的部件;
    用于在所述仿真的存储器步移序列开始之后,确定标识的存储器位置是否在将要由所述仿真的硬件处理的存储器位置之后的指定数目的存储器位置内的部件,在所述仿真的存储器步移序列中所述仿真的硬件顺序地处理所述仿真的存储器中的存储器位置;
    用于响应于标识的存储器位置在将要由所述仿真的硬件处理的所述存储器位置之后的所述指定数目的存储器位置内,允许所述仿真的硬件处理所述存储器位置的部件;以及
    用于响应于标识的存储器位置不在将要由所述仿真的硬件处理的所述存储器位置之后的所述指定数目的存储器位置内,使所述仿真的硬件前进到所述仿真的存储器中的后续存储器位置,并且允许所述仿真的硬件处理所述后续存储器位置的部件,所述后续存储器位置是标识的存储器位置之前的指定数目的存储器位置。

    10.   根据权利要求9所述的系统,其中所述仿真的硬件维护包括指针的寄存器,所述指针指定所述仿真的存储器中将要由所述仿真的硬件处理的所述存储器位置,并且其中用于使所述仿真的硬件前进到后续存储器位置的所述部件还被配置为将所述指针设置到所述后续存储器位置。

    11.   根据权利要求9所述的系统,其中所述仿真的硬件包括一个或多个仿真的微处理器组件。

    12.   根据权利要求9所述的系统,其中所述仿真的存储器是仿真的高速缓冲存储器。

    13.   一种用于在仿真期间加速仿真的存储器步移序列的系统,包括:
    用于执行仿真测试用例的部件,在所述仿真测试用例中测试被限于仿真的存储器的一些部分;
    用于在所述仿真测试用例的执行期间,将所述仿真的存储器中的一个或多个存储器位置标识为适于包括有效数据的部件;
    用于在所述仿真的存储器步移序列开始之后,确定将要由仿真的硬件处理的存储器位置是否是标识的存储器位置的部件,在所述仿真的存储器步移序列中所述仿真的硬件顺序地处理所述仿真的存储器中的存储器位置;
    用于响应于将要由所述仿真的硬件处理的所述存储器位置是标识的存储器位置,允许所述仿真的硬件处理所述存储器位置的部件;以及
    用于响应于将要由所述仿真的硬件处理的所述存储器位置不是标识的存储器位置,使所述仿真的硬件前进到标识的存储器位置,并且允许所述仿真的硬件处理所述标识的存储器位置的部件。

    14.   根据权利要求13所述的系统,其中所述仿真的硬件维护包括指针的寄存器,所述指针指定所述仿真的存储器中将要由所述仿真的硬件处理的所述存储器位置,并且其中用于使所述仿真的硬件前进到标识的存储器位置的所述部件还被配置为将所述指针设置到所述标识的存储器位置。

    15.   根据权利要求13所述的系统,其中所述仿真的硬件包括一个或多个仿真的微处理器组件。

    16.   根据权利要求13所述的系统,其中所述仿真的存储器是仿真的高速缓冲存储器。

    说明书

    说明书仿真期间存储器步移序列加速的方法和系统
    技术领域
    本发明一般性地涉及集成电路设计的计算机仿真,并且更具体地涉及在制造之前的微处理器设计的计算机仿真和验证期间加速存储器步移序列。
    背景技术
    在制造之前(“硅前”)仿真和验证微处理器设计或其他集成电路设计的功能是用于确保制造的设计将正确地执行的重要步骤。工业竞争和其他因素可能迫使研究人员和制造人员减少生产周期时间。但是,由于要探究的可能的测试情况(“测试用例”)以及每个测试用例进行仿真可能花费的时间数量巨大,因此对设计的硅前(pre?silicon)仿真和验证可能是耗费时间的。
    微处理器设计的硅前仿真和验证的一个方面涉及在微处理器的存储器内的仿真操作,如从主存储器获取或向高速缓冲存储器写入。在许多这些仿真中,执行一个或多个存储器步移序列(memory walking sequence)。现代微处理器设计典型地包括用于执行存储器步移序列的机制,在存储器步移序列中微处理器前进到目标存储器,从而一次读取一个存储器位置,并且有可能对那些存储器位置中的每个存储器位置处包括的条目执行一个或多个操作。例如,微处理器可以执行经过目标高速缓冲存储器的高速缓冲存储器步移序列(如高速缓冲存储器清除序列),其中微处理器读取目标高速缓冲存储器中的每个高速缓冲存储器位置并且从那些高速缓冲存储器位置逐出(evict)条目。虽然存储器步移序列可能消耗大量的处理器周期,但是现代微处理器由于它们的时钟速率高而典型地能够快速执行存储器步移序列。
    当执行包括大型存储器(如高速缓冲存储器或主存储器)的微处理器设计的硅前仿真时,仿真经过这些目标存储器的存储器步移序列可能消耗大量的仿真的处理器周期。但是,执行仿真的处理器周期的仿真的微处理器比它的硬件对应物慢得多。执行硅前仿真以测试并且验证存储器步移序列和涉及它们的频繁使用的其他微处理器功能因此可能花费极长的时间,有可能达到仿真不可能被执行或者必须以有限的方式被执行的程度,二者都有在硅前阶段留下无法发现的设计问题的风险。
    用于减少仿真存储器步移序列所需要的测试时间的方法将是有用的。
    发明内容
    本发明的实施方式提供一种用于在由计算机执行的仿真期间加速仿真的存储器步移序列的系统、方法和程序产品。在一个实施方式中,该方法包括执行仿真测试用例,在该仿真测试用例中测试被限于仿真的存储器的一些部分。该方法还包括在该仿真测试用例的执行期间,将该仿真的存储器中的一个或多个存储器位置标识为适于(eligible)包括有效数据。该方法还包括在仿真的存储器步移序列开始之后,确定标识的存储器位置是否处于将要由仿真的硬件处理的存储器位置之后的指定数目的存储器位置内,其中在仿真的存储器步移序列中该仿真的硬件顺序地处理该仿真的存储器中的存储器位置。该方法还包括响应于标识的存储器位置处于将要由该仿真的硬件处理的存储器位置之后的指定数目的存储器位置内,允许该仿真的硬件处理该存储器位置。该方法还包括响应于标识的存储器位置不处于将要由该仿真的硬件处理的存储器位置之后的指定数目的存储器位置内,使该仿真的硬件前进到该仿真的存储器中的后续存储器位置,该后续存储器位置是标识的存储器位置之前的指定数目的存储器位置,并且允许该仿真的硬件处理该后续存储器位置。
    在另一个实施方式中,该方法包括执行仿真测试用例,在该仿真测试用例中测试被限于仿真的存储器的一些部分。该方法还包括在该仿真测试用例的执行期间,将该仿真的存储器中的一个或多个存储器位置标识为适于包括有效数据。该方法还包括在仿真的存储器步移序列开始之后,确定将要由仿真的硬件处理的存储器位置是否是标识的存储器位置,其中在仿真的存储器步移序列中该仿真的硬件顺序地处理该仿真的存储器中的存储器位置。该方法还包括响应于将要由该仿真的硬件处理的存储器位置是标识的存储器位置,允许该仿真的硬件处理该存储器位置。该方法还包括响应于将要由该仿真的硬件处理的存储器位置不是标识的存储器位置,使该仿真的硬件前进到标识的存储器位置,并且允许该仿真的硬件处理该标识的存储器位置。
    附图说明
    图1是根据本发明的一个实施方式的仿真系统的功能框图。
    图2是示出了根据本发明的一个实施方式的测试用例的框图,其中在该测试用例中已知目标高速缓冲存储器的哪些部分在仿真过程期间有可能包括有效数据。
    图3是示出了根据本发明的一个实施方式的加速的存储器步移序列的框图。
    图4是示出了根据本发明的一个实施方式的加速的存储器步移序列的操作步骤的流程图。
    图5是示出了根据本发明的另一个实施方式的加速的存储器步移序列的操作步骤的流程图。
    图6是根据本发明的一个实施方式的图1的计算系统的内部和外部的硬件和软件组件的框图。
    具体实施方式
    简而言之,在仿真环境中执行微处理器设计的硅前仿真和验证的背景中实施本发明的优选实施方式,其中微处理器设计拥有大型目标高速缓冲存储器和硬件机制以执行经过该目标高速缓冲存储器的高速缓冲存储器步移序列。描述了如下测试用例,在该测试用例的仿真期间,知道该目标高速缓冲存储器的哪些部分有可能包括有效数据。
    在测试用例的仿真期间执行的常规高速缓冲存储器步移序列将顺序地前进到该目标高速缓冲存储器,其中仿真的微处理器处理每个高速缓冲存储器位置以确定是否对该高速缓冲存储器位置处包括的条目执行操作并且随后对该条目执行任意合适的操作。相反,在本发明的优选实施方式中,通过跳过该目标高速缓冲存储器的、基于正被仿真的测试用例而已知是空的部分来加速该高速缓冲存储器步移序列。因为仿真的微处理器仅处理该目标高速缓冲存储器中已知有可能包括有效数据的高速缓冲存储器位置,而不是该目标高速缓冲存储器中的全部高速缓冲存储器位置,所以可以减少完成该高速缓冲存储器步移序列所必要的仿真时间。
    在本说明书中使用的术语“高速缓冲存储器”一般性地是指包括但不限于仿真的静态随机访问存储器(如L1、L2和L3高速缓冲存储器)的仿真的微处理器高速缓冲存储器。虽然参照高速缓冲存储器和高速缓冲存储器步移序列来描述本发明的示例性实施方式,但是其他实施方式也可以加速经过其他类型的目标存储器(例如用于执行经过仿真的双列直插式存储器??榈拇娲⑵鞑揭菩蛄械姆抡娴拇娲⑵骺刂破?的存储器步移序列。
    现在将参考附图来详细描述本发明的实施方式。
    图1是根据本发明的一个实施方式的仿真系统100的功能框图。仿真系统100包括计算系统110。计算系统110包括仿真环境112、步移序列控制程序114以及测试用例地址查找程序116,它们一起使得用户能够执行集成电路设计的硅前验证和仿真并且加速在根据本发明的实施方式的那些仿真期间执行的仿真的存储器步移序列。仿真环境112是软件仿真环境,其包括例如用于辅助用户执行集成电路设计的硅前仿真和验证的一套仿真和验证工具。仿真环境112允许用户加载集成电路设计的仿真模型并且在各种测试用例中仿真那些设计的操作。例如,使用仿真环境112,用户可以加载具有大型高速缓冲存储器和主存储器的微处理器设计的仿真模型,可以仿真微处理器如何获取主存储器条目并且将那些条目写入高速缓冲存储器,并且还可以仿真微处理器如何执行高速缓冲存储器步移序列??梢允褂美缟桃悼捎玫墓ぞ?如可从加利福利亚圣何塞的Cadence设计系统公司获得的仿真软件包)来实现仿真环境112。通常,仿真环境112可以是使得用户能够根据本发明的实施方式建模集成电路设计和组件并且仿真测试用例的任意软件或软件组合。
    步移序列控制程序114是被仿真环境112调用的软件???。步移序列控制程序114接收关于仿真环境112内正在执行的存储器步移序列的信息,并且进行操作以跳过目标存储器的、基于正被仿真的测试用例而已知是空的部分,如参照图4和图5更详细地说明的??梢岳缫杂糜诜抡婊肪?12的定制??榛虿寮男问嚼词迪植揭菩蛄锌刂瞥绦?。
    测试用例地址查找程序116是由步移序列控制程序114调用的软件???。在存储器步移序列期间,测试用例地址查找程序116标识目标存储器的、基于正被仿真的测试用例而已知有可能包括有效数据的部分,如参照图4和图5更详细地说明的??梢岳缫杂糜诜抡婊肪?12的定制??榛虿寮男问嚼词迪植馐杂美刂凡檎页绦?16。
    计算系统110还包括内部组件800和外部组件900,并且可以是例如膝上计算机、台式计算机、专用计算机服务器或本领域已知的任意其他计算机系统。通常,计算系统110可以是如参照图6进一步详述的任意可编程的电子设备或者这种设备的组合。在特定实施方式中,计算系统110表示当通过网络(如局域网、广域网或这两个网络的组合)被访问时利用集群计算机和组件作为单个无缝资源池的计算机系统。该实现可以优选用于数据中心以及用于云计算应用。
    图2是示出了根据本发明的一个实施方式的测试用例的仿真的框图,其中在该测试用例中已知目标高速缓冲存储器的哪些部分在仿真过程期间有可能包括有效数据。在该实施方式中,目标高速缓冲存储器204是仿真的高速缓冲存储器,根据n路组相关联高速缓冲存储器映射方案将该仿真的高速缓冲存储器映射到仿真的主存储器,n路组相关联高速缓冲存储器映射方案是可在许多现代微处理器设计中获得的高速缓冲存储器映射方案。在n路组相关联高速缓冲存储器映射方案中,目标高速缓冲存储器204被分割成多个高速缓冲存储器组,每个高速缓冲存储器组包括可以在其中存储主存储器条目的n路或n个高速缓冲存储器位置。仿真的主存储器中的每个存储器地址被映射到具体的高速缓冲存储器组,从而如果仿真的微处理器访问具体的主存储器地址,则该主存储器位置处包括的条目仅可以被存储在仿真的高速缓冲存储器中其被映射到的高速缓冲存储器组内的n个高速缓冲存储器位置处。
    在优选实施方式中,测试用例地址表202用于存储已被选择用于进行测试的仿真的主存储器的存储器地址的相对小的子集。高速缓冲存储器组206a到206d是测试用例地址表202中的至少一个选择的主存储器地址被映射到(由箭头显示)的高速缓冲存储器组。应该注意到,图2是目标高速缓冲存储器204和测试用例地址表202的简化示图。如由省略号所指示的,与所描绘的相比,目标高速缓冲存储器204可以包括更多高速缓冲存储器组,并且测试用例地址表202可以包括更多主存储器地址。
    在优选实施方式中,在测试用例的仿真期间,指示仿真的微处理器访问测试用例地址表202中包括的仿真的主存储器,从而可以将那些主存储器位置处的条目存储在目标高速缓冲存储器204中它们对应的映射的高速缓冲存储器组内的n个高速缓冲存储器位置处并且从其中逐出。取决于具体测试用例的目标,用户可以选择存储在测试用例地址表202中的主存储器地址,允许仿真随机地选择它们或者使用一些其他选择方法。例如,该示例性测试用例的目标可以是测试当高速缓冲存储器组中的全部高速缓冲存储器位置都被有效数据占用并且必须选择用于逐出的牺牲条目时微处理器设计的高速缓冲存储器逻辑如何行动。在该测试用例中,用户可能希望选择已知被映射到相同的高速缓冲存储器组的主存储器地址(例如,如图2中所示),从而该在仿真期间高速缓冲存储器组更快速地被有效数据占用并且可以观察高速缓冲存储器逻辑的行为。
    不管主存储器地址选择方法如何,因为在该示例性实施方式中仿真的微处理器使用n路组相关联高速缓冲存储器方案,所以当在仿真期间仿真的微处理器访问那些主存储器地址时,仅目标高速缓冲存储器204中被映射到测试用例地址表202中的至少一个选择的主存储器地址的那些高速缓冲存储器组才有可能包括有效数据。因此,在仿真测试用例的过程期间,将仅存在相对少量的已知n个高速缓冲存储器位置有可能包括有效数据的高速缓冲存储器组(高速缓冲存储器206),而已知目标高速缓冲存储器204中的大多数高速缓冲存储器组是空的。
    本发明的其他实施方式涉及在涉及其他类型的目标存储器的测试用例的仿真期间加速存储器步移序列。通常,目标高速缓冲存储器204可以是任意仿真的目标存储器;高速缓冲存储器组206可以是该存储器的如下任意部分,其中测试被限于该部分,使得在测试用例的仿真期间已知那些部分内的存储器位置有可能包括有效数据;并且测试用例地址表202可以存储对应于或者此外标识已知有可能包括有效数据的存储器位置的任意存储器地址。
    图3是示出了根据本发明的一个实施方式的加速的存储器步移序列的框图。在所示实施方式中,在测试用例的仿真期间执行加速的高速缓冲存储器步移序列,其中在该测试用例中基于测试用例地址表202中包括的仿真的主存储器地址而已知目标高速缓冲存储器304的有可能包括有效数据的高速缓冲存储器组(高速缓冲存储器组306a到306d),例如参照图2中的优选实施方式所讨论的测试用例。
    在存储器步移序列期间,用于执行存储器步移序列的硬件通常利用存储器步移逻辑302。存储器步移逻辑302维护包括NextLocationPointer(下一个位置指针)指令的寄存器,NextLocationPointer指令指定目标存储器中将要由该硬件处理的存储器位置。在存储器位置的处理完成之后,将NextLocationPointer增加到下一个后续存储器位置以用于该存储器位置的处理,并且针对存储器中的全部存储器位置重复该过程。在图3中所描绘的示例性加速的高速缓冲存储器步移序列中,由步移序列控制程序114控制存储器步移逻辑302,从而跳过目标高速缓冲存储器304的空的高速缓冲存储器组,并且仿真的微处理器仅处理高速缓冲存储器组306内的高速缓冲存储器位置。更具体地,基于存储在测试用例地址表202中的所选择的仿真的主存储器地址,由步移序列控制程序114控制存储器步移逻辑302,从而仿真的微处理器处理至少一个选择的主存储器地址被映射到的高速缓冲存储器组(高速缓冲存储器组306)内的高速缓冲存储器位置,同时跳过高速缓冲存储器组内未被映射到所选择的仿真的主存储器地址的高速缓冲存储器位置。
    图4是示出了用于本发明的一个优选实施方式的操作步骤的流程图,其中通过跳过目标高速缓冲存储器的空的高速缓冲存储器组内的全部高速缓冲存储器位置来加速仿真的高速缓冲存储器步移序列。利用n路组相关联高速缓冲存储器映射方案,将模型在拥有大型目标高速缓冲存储器304的微处理器设计的仿真环境112内加载到主存储器和硬件机制以执行经过该目标高速缓冲存储器的高速缓冲存储器步移序列。在该示例性实施方式中,在仿真环境112内仿真测试用例,其中在该仿真测试用例中基于测试用例地址表202中包括并且被仿真的微处理器访问的选择的主存储器地址而已知目标高速缓冲存储器304中的哪些高速缓冲存储器组有可能包括有效数据。
    在步骤402中,步移序列控制程序114在测试用例的仿真期间检测仿真的高速缓冲存储器步移序列的开始。步移序列控制程序114从仿真环境112接收由NextLocationPointer(“指针位置”)指定的高速缓冲存储器位置。步移序列控制程序114调用测试用例地址查找程序116。
    在步骤404中,测试用例地址查找程序116从测试用例地址表202获取针对具体的测试用例选择的仿真的主存储器地址。在步骤406中,测试用例地址查找程序116标识高速缓冲存储器组内每个选择的主存储器地址被映射到的该高速缓冲存储器位置(“有可能有效的高速缓冲存储器位置”)。测试用例地址查找程序116将该数据传递到步移序列控制程序114。
    在步骤408中,步移序列控制程序114确定将要由仿真的微处理器处理的高速缓冲存储器位置是否是有可能有效的高速缓冲存储器位置。为了如此操作,步移序列控制程序114将该有可能有效的高速缓冲存储器位置与该指针位置进行比较,并且确定是否有可能有效的高速缓冲存储器位置中的一个位置与该指针位置匹配。
    如果指针位置不与一个有可能有效的高速缓冲存储器位置匹配,则在步骤410中,步移序列控制程序114将NextLocationPointer设置到该指针位置之后的下一个有可能有效的高速缓冲存储器位置。在步骤412中,步移序列控制程序114允许仿真的微处理器处理新的指针位置并且随后将NextLocationPointer增加到下一个后续高速缓冲存储器位置。
    如果在步骤408中指针位置与一个有可能有效的位置匹配,则步移序列控制程序114不修改NextLocationPointer。随后在步骤412中,步移序列控制程序114允许仿真的微处理器处理当前指针位置并且随后将NextLocationPointer增加到下一个后续高速缓冲存储器位置。
    在步骤414中,步移序列控制程序114确定仿真的微处理器是否已经处理目标高速缓冲存储器304中的有可能有效的全部高速缓冲存储器位置。例如,步移序列控制程序114可以确定是否存在任意位于步骤412中处理的有可能有效的高速缓冲存储器位置之后的有可能有效的高速缓冲存储器位置。如果步移序列控制程序114确定仿真的微处理器没有处理有可能有效的全部高速缓冲存储器位置,则操作步骤回到步骤408处进行重复。如果步移序列控制程序114确定仿真微处理器已经处理了有可能有效的全部高速缓冲存储器位置,则在步骤416中步移序列控制程序114将NextLocationPointer设置到目标高速缓冲存储器304中的最后一个高速缓冲存储器位置,并且该实施方式的操作步骤结束。
    图5是示出了用于本发明的一个实施方式的操作步骤的流程图,其中与跳过空的高速缓冲存储器组内的全部高速缓冲存储器位置相反,通过跳过目标高速缓冲存储器的空的高速缓冲存储器组内的一些高速缓冲存储器位置来加速仿真的高速缓冲存储器步移序列。该实施方式基于与参照图4所讨论的相同的测试用例,并且可以在用户希望加速仿真的高速缓冲存储器步移序列而且希望测试仿真的微处理器如何处理已知不包括有效数据的高速缓冲存储器位置时使用。例如,用户可能希望在高速缓冲存储器步移序列期间测试仿真的微处理器是否正确地从处理不包括有效数据的高速缓冲存储器位置转换到处理包括有效数据的高速缓冲存储器位置。操作步骤502、504和506分别与图4的操作步骤402、404和406等效,因此,对于这些操作步骤的说明请参考图4的讨论。
    在该实施方式的步骤508中,步移序列控制程序114确定是否目标高速缓冲存储器304的一个有可能有效的高速缓冲存储器位置或者末尾处于将要被仿真的微处理器处理的高速缓冲存储器位置之后的指定数目的高速缓冲存储器位置内。为了如此操作,步移序列控制程序114将有可能有效的高速缓冲存储器位置与指针位置进行比较,并且确定是否目标高速缓冲存储器304中的一个有可能有效的高速缓冲存储器位置或者最后一个高速缓冲存储器位置处于该指针位置之后的指定数目的高速缓冲存储器位置内??梢杂捎没гづ渲酶弥付ㄊ?。
    如果目标高速缓冲存储器304中的一个有可能有效的高速缓冲存储器位置或者最后一个高速缓冲存储器位置处于该指针位置之后的指定数目的高速缓冲存储器位置内,则步移序列控制程序114不修改NextLocationPointer。然后在步骤510中,步移序列控制程序114允许仿真的微处理器处理当前指针位置并且随后将NextLocationPointer增加到下一个后续存储器位置。
    如果目标高速缓冲存储器304中的一个有可能有效的高速缓冲存储器位置或者最后一个高速缓冲存储器位置不处于该指针位置之后的指定数目的高速缓冲存储器位置内,则在步骤512中,步移序列控制程序114确定是否已经由仿真的微处理器处理了有可能有效的全部高速缓冲存储器位置。例如,步移序列控制程序114可以确定是否存在任意位于该指针位置之后的有可能有效的高速缓冲存储器位置。
    如果步移序列控制程序114确定已经由仿真的微处理器处理了有可能有效的全部高速缓冲存储器位置,则在步骤514中,步移序列控制程序114将NextLocationPointer设置到这样一个高速缓冲存储器位置中,该高速缓冲存储器位置是目标高速缓冲存储器304中的最后一个高速缓冲存储器位置之前的指定数目的高速缓冲存储器位置。如在该步骤中使用的指定数目可以等于在步骤508中使用的指定数目。随后在步骤510中,步移序列控制程序114允许仿真的微处理器处理新的指针位置,并且随后将NextLocationPointer增加到下一个后续存储器位置。
    如果在步骤512中步移序列控制程序114确定尚未由仿真的微处理器处理有可能有效的全部高速缓冲存储器位置,则在步骤516中,步移序列控制程序114将NextLocationPointer设置到这样一个高速缓冲存储器位置,该高速缓冲存储器位置是在该指针位置之后下一个有可能有效的高速缓冲存储器位置之前的指定数目的高速缓冲存储器位置。如在该步骤中使用的指定数目可以等于步骤508中使用的指定数目。随后在步骤510中,步移序列控制程序114允许仿真的微处理器处理新的指针位置,并且随后将NextLocationPointer增加到下一个后续高速缓冲存储器位置。
    在步骤518中,步移序列控制程序114确定仿真的高速缓冲存储器步移序列是否已经到达目标高速缓冲存储器304的末尾。例如,步移序列控制程序114可以确定在步骤510中由仿真的微处理器最近处理的高速缓冲存储器位置是否是目标高速缓冲存储器304中的最后一个高速缓冲存储器位置。如果步移序列控制程序114确定仿真的高速缓冲存储器步移序列尚未到达目标高速缓冲存储器304的末尾,则该实施方式的操作步骤回到步骤508处进行重复。如果步移序列控制程序114确定仿真的高速缓冲存储器步移序列已经到达目标高速缓冲存储器304的末尾,则该实施方式的操作步骤结束。
    图4的操作步骤402到416和图5的操作步骤502到516示出本发明的两个或更多实施方式。应该理解,可以在不脱离本发明的精神和预期范围的前提下,修改每个步骤的内容以及操作的次序。此外,图4和图5示出单个存储器步移序列的加速并且已经参照单个存储器步移序列的加速进行了说明。应该理解,在测试用例的仿真期间可以开始多个存储器步移序列,并且可以根据本发明的实施方式加速每个存储器步移序列。
    图6显示了根据本发明的一个例示性实施方式的计算系统110的内部组件800和外部组件900的框图。应该认识到,图6仅提供一个实现的例示,并且不暗示对于可以在其中实现不同实施方式的环境的任意限制??梢曰谏杓坪褪迪忠蠖杂谒杌娴幕肪辰行矶嘈薷?。
    具有内部组件800和外部组件900的计算系统110表示能够执行机器可读程序指令的任意电子设备??梢杂杉扑阆低?10表示的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、膝上设备、多处理器系统、基于微处理器的系统、网络PC、迷你计算机系统和包括任意以上系统或设备的分布式云计算环境。
    内部组件800包括在一个或多个总线826、一个或多个操作系统828以及一个或多个计算机可读的有形存储设备830上的一个或多个处理器820、一个或多个计算机可读RAM822以及一个或多个计算机可读ROM824。计算系统110中的一个或多个操作系统828、仿真环境112以及程序114和116被存储在对应的计算机可读的有形存储设备830上以便被一个或多个对应的处理器820经由一个或多个对应的RAM822(其典型地包括高速缓冲存储器)执行。在图6中所示的实施方式中,每个计算机可读的有形存储设备830是内部硬盘驱动器的磁盘存储设备??商婊坏?,每个计算机可读的有形存储设备830是半导体存储设备,如ROM824、EPROM、闪存或可以存储计算机程序和数字信息的任意其他计算机可读的有形存储设备。
    内部组件800还包括R/W驱动器或接口832以从一个或多个便携式计算机可读的有形存储设备936(如CD?ROM、DVD、存储棒、磁带、磁盘、光盘或半导体存储设备)进行读取并且向其写入。计算系统110中的仿真环境112以及程序114和116可以被存储在一个或多个对应的便携式计算机可读的有形存储设备936上,经由对应的R/W驱动器或接口832被读取并且被加载到对应的有形存储设备830中。
    内部组件800还包括网络适配器或接口836,如TCP/IP适配器卡、无线wi?fi接口卡、3G或4G无线接口卡或其他有线的或无线的通信链路。计算系统110中的仿真环境112以及程序114和116可以经由网络(例如因特网、局域网或其他广域网)和对应的网络适配器或接口836从外部计算机被下载到计算系统110。将计算系统110中的仿真环境112以及程序114和116从网络适配器或接口836加载到有形存储设备830中。网络可以包括铜线、光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。
    外部组件900可以包括计算机显示监视器920、键盘930和计算机鼠标934。外部组件900还可以包括触摸屏、虚拟键盘、触摸板、定点设备和其他人机接口设备。内部组件800包括设备驱动器840以接驳到计算机显示监视器920、键盘930和计算机鼠标934。设备驱动器840、R/W驱动器或接口832和网络适配器或接口836包括硬件和(存储在有形存储设备830和/或ROM824中的)软件。
    已经参照根据本发明的实施方式的方法、装置(系统)和计算机程序产品的框图和/或流程图说明描述了本发明的方面。应该理解,可以由计算机指令实现流程图说明和/或框图的每个框以及流程图说明和/或框图中的框的组合??梢韵蛲ㄓ眉扑慊?、专用计算机或其他可编程数据处理装置的处理器提供这些计算机指令以产生机器,从而经由该计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的框中指定的功能/动作的装置。
    可以用一个或多个编程语言的任意组合编写前述程序,其中该编程语言包括低级、高级、面向对象或非面向对象语言,如Java、Smalltalk、C和C++等等。程序代码可以整个地在用户的计算机上执行或者作为独立的软件包部分地在用户的计算机上执行,部分地在用户的计算机上执行并且部分地在远程计算机上执行,或者整个地在远程计算机或服务器上执行。在后一种情况中,可以经过任意类型的网络包括局域网(LAN)或广域网(WAN),将远程计算机连接到用户的计算机,或者可以与外部计算机进行连接(例如经过使用因特网服务提供商的因特网)??商婊坏?,可以整体地或部分地由计算机电路和其他硬件(未显示)实现前述程序的功能。
    为了说明和描述的目的已经给出了本发明的各种实施方式的前文描述。其不意图是穷举的或将本发明限于所公开的精确形式。本发明的许多修改和变形是可行的。对于本领域的熟练技术人员显而易见的这种修改和变形意图被包括在由所附权利要求定义的本发明的范围内。

    关 键 词:
    仿真 期间 存储器 序列 加速 方法 系统
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:仿真期间存储器步移序列加速的方法和系统.pdf
    链接地址://www.4mum.com.cn/p-5778694.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03