模拟多处理器系统的系统和方法

文档序号:6574292阅读:137来源:国知局
专利名称:模拟多处理器系统的系统和方法
技术领域
本发明涉及多处理器系统的模拟,尤其涉及用于模拟多处理器系 统的模拟系统和方法。
背景技术
周期精确模拟器(cycle-accurate simulator)是评估多处理器系 统的候选设计的重要工具。随着处理器数目的增加,传统的顺序模拟 技术暴露出速度极慢的缺点。具有更高速度的并行模拟技术是对顺序 模拟技术的自然扩展。然而并行模拟技术的问题在于,由于各并行分 支以各自的进度执行模拟,需要保证以全局一致的顺序来进行存储器 访问,即使得各自的存储器访问与全局进度(全局时间)同步。例如, 假设使用包含主处理器a、 b的并行模拟系统对两个处理器A、 B的行 为进行模拟,其中处理器A被模拟为通过主处理器a来写入存储器单 元c,而处理器B被模拟为通过主处理器b来读取存储器单元c。于 是必须以全局一致的顺序来同步这些存储器访问,否则会导致错误的 结果。解决该问题的传统方式包括1)逐周期同步(per-cycle synchronization )(参见David A. Penry Daniel Fay, DavidHodgdon, Ryan Wells, Graham Schelle, David I. August和Daniel A. Connors的"Exploiting Parallelism and Structure to Accelerate the Simulation of Chip Multi-processors", Proceedings of the Twelfth International Symposium on High-Performance Computer Architecture (HPCA), February 2006)。在这种技术中,在每个周期开始时同步所有被模拟的处理器。由于周期是最小时间单位, 因此能够保证正确性。然而由于模拟粒度过细,导致模拟开销极高, 大大降低了整个模拟的速度.2 )栅障同步(barrier synchronization )(参见M. Chidister和 A.George的 "ParallelSimulationof Chipmultiprocessorarchitectures", ACM Transactions on Modeling and Computer Simulation, 12(3):176画200, July 2002)。在这种技术中,每t个时间单 位对所有被模拟的处理器进行同步,这t个时间单位的总和必须小于 存储器访问时延,以保证正确性。然而由于存储器访问时延通常是周 期级的,因此同步开销仍然较高。3 )基于存储器访问的同步(参见M. Chidister和A. George的 "Parallel Simulation of Chipmultiprocessor architectures", ACM Transactions on Modeling and Computer Simulation, 12(3):176-200, July 2002)。在这种技术中,每当遇到存储器访问时对所有被模拟的 处理器进行同步。然而统计数据表明,所有指令中只有30%到40%的 指令是存储器访问指令。因此同步的时间开销仍然较高。图2示出了常规周期精确模拟器的一般功能结构。如图2所示, 周期精确模拟器20通常包括取指模块21、译码模块22、提交模块23、 功能单元24、回写模块25、确认模块26、存储器管理单元(MMU: Memory Management Unit) 27和存储器层次结构28。例如,周期精 确模拟器20中所示的模块和单元可通过硬件及/或软件来实现。可通 过分时或并行体系结构来并行模拟多处理器系统。常规周期精确模拟 器的实例可从美国Michigan州Ann Arbor的SimpleScalar LLC乂〉司 (http:〃www.simplescalar.com/) 获得(Sim-Outorder工具包)。与周期精确模拟器相比,功能模拟器由于考虑的微观体系结构细 节较少而速度较快,并且仍然能够达到相同的存储器访问效果。图1 示出了常规功能模拟器的一般功能结构。如图1所示,功能模拟器IO 通常包括取指模块ll、译码模块12、执行模块13、确认模块14、存 储器管理单元(MMU) 15和存储器层次结构16。例如功能模拟器20 中所示的模块和单元可通过硬件及/或软件来实现。可通过分时或并行 体系结构来并行模拟多处理器系统。常规功能模拟器的实例可从美国 Michigan州AnnArbor的SimpleScalarLLC公司(http:〃www.simplescalar.com/)获得(Sim-Fast工具包)。 发明内容鉴于上述情况,本发明的目的是提供一种用于模拟多处理器系统 的模拟系统和方法,以提高周期精确模拟器的执行速度。本发明基于这样的认识,即多数来自不同被模拟的处理器的存储 器访问是不发生冲突的,因此对所有存储器访问进行同步的保守策略 会浪费大量处理时间。如果能够识别出可能发生冲突的存储器访问并 且只对这些存储器访问执行同步,则会大大降低同步开销。由于功能 模拟器能够更加快速地执行并且能够进行相同的存储器访问,因此可 先通过功能模拟器的执行来识别出可能发生冲突的存储器访问。本发明提供了 一种用于模拟多处理器系统的模拟系统,包括功能 模拟器和并行周期精确模拟器,所述功能模块器还包括访问记录提取 模块,用于获得指令的存储器访问记录,所述并行周期精确模拟器的 每个并行模拟单元还包括存储器访问控制模块,用于提供标识导致访 问存储器层次结构的指令的信息,并且所述模拟系统还包括同步控制 系统,该同步控制系统包括识别装置,用于根据所述功能模拟器在 模拟所述多处理器系统对一可执行程序的执行时由所述访问记录提取 模块提供的指令存储器访问记录,识别出需要同步其存储器访问的指 令的集合;和同步装置,用于根据所述存储器访问控制模块提供的所 述信息确定所述并行模拟单元对一个所述集合中指令的执行,使得所 述指令的存储器访问按照该指令的全局模拟时间所对应的顺序来执 行,其中所述存储器访问控制模块在所述同步完成之前挂起相应存储 器访问的执行,并且响应所述同步装置的控制而恢复被桂起的存储器 访问的执行。本发明还提供了 一种在用于模拟多处理器系统的模拟系统中进 行存储器访问同步控制的方法,所述模拟系统包括功能模拟器和周期 精确模拟器,该方法包括步骤通过所述功能模拟器模拟所述多处理 器系统对一可执行程序的执行,其中获得指令的存储器访问记录;根据所述指令存储器访问记录,识别出需要同步其存储器访问的指令的集合;和通过所述并行周期精确模拟器模拟所述多处理器系统对该可 执行程序的执行,其中由所述并行周期精确模拟器的每个并行模拟单 元提供标识导致访问存储器层次结构的指令的信息,根据所述信息确 定所述并行模拟单元对一个所述集合中指令的执行,使得所述指令的 存储器访问按照该指令的全局模拟时间所对应的顺序来执行,并且其 中所述并行模拟单元在所述同步完成之前挂起相应存储器访问的执 行,并且按照所述顺序恢复被挂起的存储器访问的执行。本发明还提供一种包含执行上述方法的计算机程序的计算机程 序产品。根据本发明,由于能够通过功能模拟器的模拟来确定可能发生沖 突的存储器访问,因此在之后的周期精确模拟器的模拟中避免对所有 存储器访问的同步,因此大大降低了同步开销,提高了模拟速度。


被说明书引用并且构成说明书组成部分的附解了本发明的 实施例,并且和前面的概括说明、下面针对实施例的详细描述一起被 用来说明本发明的原理,其中图l是表示现有技术的功能模拟器的一般功能结构的模块图; 图2是表示出有技术的周期精确模拟器的一般功能结构的模块图;图3是例示基于本发明实施例的模拟系统的 一般功能结构的模块图;图4是例示基于本发明实施例的模拟方法的 一般过程的流程图; 图5是更详细地例示出图4的步骤S5中存储器访问同步的控制 过程的流程图。
具体实施方式
下面将结合具体实施方式
来说明本发明的技术方案.在下面的描述中,给出了某些具体细节以便提供对本发明实施例的充分理解。不 过,本领域技术人员可知,没有这些细节也能实现本发明。在其他情 况下,没有详细表示或描述与计算机、处理器等等有关的公知结构, 以避免不必要地干扰对本发明实施例的描述。应该理解,以下实施例中完成预定处理的部分可通过硬件及/或 软件实现。例如,利用一个或多个处理模块上所执行的软件及/或固件 可执行的特定的处理。通常,用于执行处理的系统可包含更多常规处 理模块及存储器。处理模块可以是单一处理设备或多个处理设备。这 样的处理设备可以是微处理器、微控制器、数字处理器、微型计算机、 中央处理单元的部分、状态机、逻辑电路及/或操作信号的任何设备。 存储器可以是单一存储器器件或多个存储器器件。这样的存储器器件 可以是只读存储器、随机访问存储器、软盘存储器、磁带存储器、可 擦除存储器、系统存储器的部分,及/或以数字格式存储操作指令的任 何设备.注意到,当处理模块实现一个或多个其功能成为状态机或逻 辑电路时,以相应操作指令方式存储的存储器被嵌入在包括该状态机 及/或其他逻辑电路的电路内。例如,这样的系统可以是具有可编译存 储器单元以利于存储器的实现的电路设计工具。除非内容需要,否则在后面的说明书和权利要求书中,词语"包括,,及其类似表述被解释成开放性的"包含"的意思,即"包括,但不限 于"'图3是示出基于本发明实施例的模拟系统的一般功能结构的模块 图.如图3所示,模拟系统50包括功能模拟器10'、周期精确模拟器 20'和基于线索的同步控制系统40。图4是示出基于本发明实施例的模拟方法的一般过程的流程图。 如图3所示,功能模拟器IO,包括取指模块11、译码模块12、执 行模块13、确认模块14、 MMU 15'和存储器层次结构16。取指模块 11用于取得要执行的指令并且将指令提供给译码模块12。译码模块 12理解所获取的指令的语义并且传送给执行模块13。执行模块13用 于根据其语义来执行所译码的指令,并且经由MMU15,来回写所修改的存储器单元的新值,或经由确认模块14来回写所修改的寄存器的新 值。确认模块14用于回写所修改的寄存器的新值,并且更新程序计数 器以便使取指模块11取得下一指令。MMU 15,用于将目标虚拟存储 器空间映射到目标物理存储器空间,并且对于所有存储器相关指令均 是必要的。存储器层次结构16用于模拟目标系统的存储器层次结构, 例如专用一级高速緩存和共享二级高速緩存,并且将目标物理空间映 射到本模拟器的主存储器空间。与现有技术的功能模拟器相比,本发明实施例中的功能模拟器包 括获得指令的存储器访问记录的访问记录提取模块。在下面讨论的例 子中,该模块设置在MMU 15'中。当执行模块13执行一条指令的语 义时,如果其语义包括访问存储器层次结构16,则通过MMU 15,进 行存储器访问。响应于此,与MMU15'相关联的访问记录提取模块提 取有关该指令的信息,即存储器访问记录,包括执行该指令的CPU的 标识、该指令的标识和所访问的存储器位置的地址。根据功能模拟器 的实现所基于的硬软件体系结构和操作系统类型,可采用各种方式来 实现上述访问记录提取模块的功能。例如在釆用WINDOWS操作系 统的情况下,可利用钩子(hook)机制来截取MMU15'进行存储器访 问的事件,进而获取存储器访问记录的信息。该模块也可设置在MMU 15,之外。如图4所示,本发明的方法首先在步骤Sl,通过用功能模拟器 IO,模拟程序的执行,由访问记录提取模块获得存储器访问记录。如图3所示,基于线索的同步控制系统40包括线索产生器41、 线索数据库42和同步装置43。同步控制系统40可基于计算机来实现。如图4所示,当功能模拟器10'对可执行程序的模拟执行完毕时, 接着在步骤S2,同步控制系统40的线索产生器41获得由功能模拟器 10'提取的存储器访问记录。可通过直接通信或中间存储来实现同步控 制系统40与功能模拟器10,之间存储器访问记录的传送。接着在步骤 S3,线索产生器41对所累积的存储器访问记录进行分析,其中针对存 储器访问记录中出现的每个被访问存储器单元的地址,在所累积的存储器访问记录中寻找不同处理器对相同存储器单元地址的访问所涉及 的指令的集合。即针对该地址,确定所累积的存储器访问记录是否表 明有不同的处理器访问到该地址指示的存储器单元。如果有,则找出 包舍所述不同处理器和该地址的所有存储器访问记录,这些存储器访 问记录中标识的指令便构成这样的一个集合。求出这样的集合的方法可能有各种变型。接着,在步骤S4,线索产生器41将所寻找出的这 样的集合存储在线索数据库42中。如图3所示,周期精确模拟器20'包括若干并行模拟单元20-1至 20-n.每个并行模拟单元模拟一个处理器,其工作流程类似于一个串 行周期精确模拟器。每个并行模拟单元都维护自己当前的模拟时间。每个并行模拟单元包括取指模块21、译码模块22、提交模块23、 功能单元24、回写模块25、确认模块26、 MMU 27'和存储器层次结 构28。取指模块21用于取得要执行的指令并且将指令提供给译码模 块22。译码模块22理解所获取的指令的语义并且传送给提交模块23。 提交模块23用于为指令分配临时寄存器,即重命名寄存器,并且将寄 存器分配给相应功能单元24。功能单元24用于根据其语义来执行待 执行的指令,并且经由MMU27'来回写所修改的存储器单元的新值, 或经由回写模块25和确认模块26来回写所修改的寄存器的新值。回 写模块25用于回写所修改的临时寄存器,即重命名的寄存器的新值。 确认模块26用于回写被指令修改的所修改寄存器的新值,并且更新程 序计数器以便使取指模块21取得下一指令。MMU 27,用于将目标虚 拟存储器空间映射到目标物理存储器空间,并且对于所有存储器相关 指令均是必要的。存储器层次结构28用于模拟目标系统的存储器层次 结构,例如专用一级高速緩存和共享二级高速緩存,并且将目标物理 空间映射到本模拟单元的主存储器空间。与功能模拟器中的执行模块 相比,周期精确模拟器的并行模拟单元中的提交模块、功能单元和回 写模块可被认为是更加复杂的流水线30。如图4所示,在步骤S4之后,在步骤S5,由周期精确模拟器20' 的各并行模拟单元执行上述可执行程序.图5是更详细地示出图4的步骤S5中存储器访问同步的控制过 程的流程图。与现有技术的并行周期精确模拟器相比,本发明实施例的周期精 确模拟器20'的并行模拟单元可包括存储器访问控制模块。在下面讨论 的例子中,该模块实现在MMU27'中。如图5所示,在步骤SIO,同步装置43从MMU 27'(即存储器 访问控制模块)获得用于标识导致访问存储器层次结构28的指令的信 息。当功能单元24执行一条指令的语义时,如果其语义包括访问存储 器层次结构28,则通过MMU 27,进行存储器访问。响应于此,由与 MMU 27'相关联的存储器访问控制模块从MMU 27'提供有关该指令 的信息,即该指令的标识。根据周期精确模拟器的实现所基于的硬软 件体系结构和操作系统类型,可采用各种方式来收集和提供指令的标 识信息。例如在采用WINDOWS操作系统的情况下,可利用钩子 (hook)机制来截取MMU 27'进行存储器访问的事件,进而获取该存 储器访问所基于的指令的标识信息。该存储器访问控制模块也可实现 在MMU 27'之外。可选地,上述MMU 15'和MMU 27'提供的标识指令的信息可以 基于可执行程序映像的指令地址。需要注意,在MMU 27,实际执行存储器访问之前向同步装置43 提供指令标识信息,此时存储器访问控制模块使得MMU27'的实际存 储器访问被挂起,直至同步装置43在步骤S11完成同步处理。在步骤Sll,当同步装置43收到来自 一个并行模拟单元的MMU 的指令标识信息时,将其与线索数据库42中存储的各集合中的指令标 识信息相比较,如果与一个集合中的指令标识信息匹配,则识别出该 MMU的要执行的存储器访问需要同步,并对该存储器访问执行同步 控制。同步装置43负责维护并行周期精确模拟器的全局模拟时间。全局模拟时间等于所有并行模拟单元模拟时间的最小值。同步装置43 可以通过检查所有并行模拟单元的当前模拟时间并比较出最小值来获得全局模拟时间。作为一个例子,当同步装置43收到来自一个并行模拟单元的 MMU的指令标识信息并确定相应指令的执行需要同步时,同步装置 43会首先阻塞当前处理器的MMU模拟工作,等待该处理器的虚拟时 间等于全局虚拟时间,然后通知继续其MMU模拟工作。在本并行模 拟系统中,MMU的模拟工作流程与串行模拟器中MMU完全一致。 同步装置因而起到调整MMU模拟动作的发生时间的作用,但不会改 变MMU内部工作机制。举例说明,假设一个并行模拟器有3个并行模拟单元处理器 P0、 Pl和P2。 P0的模拟时间为100秒,Pl的模拟时间为101秒, P2的模拟时间为102秒,则此时的全局模拟时间为100秒。假设此时 P0, P1和P2执行的指令均在线索数据库中被标记为需要同步,则其 执行均被同步装置43挂起。此时同步装置43确定Pl和P2必须等待, 因为它们的模拟时间大于全局模拟时间,而P0可以开始它的MMU 仿真动作,因为它的模拟时间等于全局模拟时间。假设PO完成MMU 仿真动作后时间为103秒,而此时全局模拟时间增长为101秒,于是 同步装置43确定P1也可以开始它的MMU仿真动作,而P2仍然需 要等待。再假设Pl完成MMU仿真动作后时间为104秒,而此时全 局模拟时间变为102秒,于是同步装置43确定P2也可以开始其MMU 仿真动作。作为一种可选方式,当并行模拟单元的MMU执行一条指令时, 存储器访问控制模块首先查询线索数据库,看这条指令是否需要同步。 如果不需要同步,则可以直接执行相应的MMU模拟操作,否则,存 储器访问控制模块使得该并行模拟单元的MMU自行阻塞该指令的执 行,并且等到它的模拟时间等于全局模拟时间时才能继续相应的操作。 这种方式即所谓的自治方式。在这种情况下,同步装置只需要维护全 局模拟时间,或者可以省略同步装置,而由MMU的存储器访问控制 模块自行获得全局模拟时间(例如以所有MMU的当前模拟时间的最 小值为全局模拟时间)。虽然前面将存储集合的设备描述为线索数据库,然而也可以釆用 本领域所知的其它手段来存储,并且该存储功能可以独立存在,也可以集成在功能模拟器或周期精确模拟器中。类似地,线索产生器也可 集成在功能模拟器内,同步装置可集成在周期精确模拟器内。更进一步地,虽然前面的实施例中将功能模拟器,周期精确模拟 器和同步控制系统描述为分立的部分,然而本领域技术人员明白,在 具体的实现中,能够将其任意地组合。虽然前面的实施例中将并行模 拟单元描述为分立的部分,然而在具体实现中,可以采用集中式或分 布式的并行计算技术来实施。另外,前面实施例中各单元之间的通信可采用诸如总线、网络、共享存储器、DMA、中断、消息、管道、事 件、专用连接等等的有线或无线方式的通信技术。虽然在实施例中将集合的识别准则确定为不同处理器对相同存 储器地址的访问,然而可根据具体实施来设计其它的识别准则。优选 地,所识别的集合应包括至少导致写访问的至少一个指令。以上所揭示的内容是将被考虑为说明性的,而不是限制性的,并 且附加的权利要求意欲涵盖所有属于本发明的真实精神及范围的这类 修改、改进及其他实施例。因此,以法律所允许的最大程度,本发明 的范围将由以下权利要求及其等同的最广泛可容许的解释来确定,并 且不应由上述具体实施方式
约束或限制。
权利要求
1. 一种用于模拟多处理器系统的模拟系统,包括功能模拟器和并行周期精确模拟器,其特征在于,所述功能模块器还包括访问记录提取模块,用于获得指令的存储器访问记录,所述并行周期精确模拟器的每个并行模拟单元还包括存储器访问控制模块,用于提供标识导致访问存储器层次结构的指令的信息,并且所述模拟系统还包括同步控制系统,该同步控制系统包括识别装置,用于根据所述功能模拟器在模拟所述多处理器系统对一可执行程序的执行时由所述访问记录提取模块提供的指令存储器访问记录,识别出需要同步其存储器访问的指令的集合;和同步装置,用于根据所述存储器访问控制模块提供的所述信息确定所述并行模拟单元对一个所述集合中指令的执行,使得所述指令的存储器访问按照该指令的全局模拟时间所对应的顺序来执行,其中所述存储器访问控制模块在所述同步完成之前挂起相应存储器访问的执行,并且响应所述同步装置的控制而恢复被挂起的存储器访问的执行。
2. 根据权利要求1的用于模拟多处理器系统的模拟系统,其特 征在于所述访问记录提取模块与所述功能模拟器的存储器管理单元相 关联。
3. 根据权利要求1的用于模拟多处理器系统的模拟系统,其特 征在于所述指令存储器访问记录包括标识执行其所涉及的指令的处理 器、该指令、其所涉及的被访问存储器位置的信息。
4. 根据权利要求3的用于模拟多处理器系统的模拟系统,其特 征在于所述识别装置被进一步构造成将所述集合识别为不同处理器执 行的访问相同存储器位置的指令的集合。
5. 根据权利要求4的用于模拟多处理器系统的模拟系统,其特征在于所述指令存储器访问记录还包括用于标识存储器访问的读写类 型的信息,并且所述识别装置被进一步构造成将所述集合识别为包括 至少导致写访问的至少 一个指令的集合。
6. 根据权利要求1的用于模拟多处理器系统的模拟系统,其特 征在于所述同步控制系统还包括存储装置,用于存储所述集合。
7. 根据权利要求1的用于模拟多处理器系统的模拟系统,其特 征在于所述存储器访问控制模块装置与其所属的并行模拟单元的存储 器管理单元相关联。
8. —种在用于模拟多处理器系统的模拟系统中进行存储器访问 同步控制的方法,所述模拟系统包括功能模拟器和周期精确模拟器, 其特征在于包括步骤通过所述功能模拟器模拟所述多处理器系统对一可执行程序的 执行,其中获得指令的存储器访问记录;根据所述指令存储器访问记录,识别出需要同步其存储器访问的 指令的集合;和通过所述并行周期精确模拟器模拟所述多处理器系统对该可执 行程序的执行,其中由所述并行周期精确模拟器的每个并行模拟单元 提供标识导致访问存储器层次结构的指令的信息,根据所述信息确定 所述并行模拟单元对一个所述集合中指令的执行,使得所述指令的存 储器访问按照该指令的全局模拟时间所对应的顺序来执行,并且其中所述并行模拟单元在所述同步完成之前挂起相应存储器访 问的执行,并且按照所述顺序恢复被挂起的存储器访问的执行。
9. 根据权利要求8的进行存储器访问同步控制的方法,其特征 在于所述获得步骤由所述功能模拟器的存储器管理单元来执行。
10. 根据权利要求8的进行存储器访问同步控制的方法,其特征 在于所述指令存储器访问记录包括标识执行其所涉及的指令的处理 器、该指令、其所涉及的被访问存储器位置的信息。
11. 根据权利要求10的进行存储器访问同步控制的方法,其特 征在于所述识别步骤还包括将所述集合识别为不同处理器执行的访问相同存储器位置的指令的集合。
12. 根据权利要求11的进行存储器访问同步控制的方法,其特 征在于所述指令存储器访问记录还包括用于标识存储器访问的读写类 型的信息,并且所述识别步骤还包括成将所述集合识别为包括至少导 致写访问的至少一个指令的集合。
13. 根据权利要求8的进行存储器访问同步控制的方法,其特征 在于还包括存储所述集合的步骤。
14. 根据权利要求8的进行存储器访问同步控制的方法,其特征 在于所述提供标识导致访问存储器层次结构的指令的信息的步骤由所 述并行模拟单元的存储器管理单元执行。
全文摘要
公开了一种模拟多处理器系统的系统和方法。该模拟系统中,功能模块器包括获得指令存储器访问记录的访问记录提取模块,并行周期精确模拟器的每个并行模拟单元包括提供标识导致访问存储器层次结构的指令的信息的存储器访问控制模块,同步控制系统具有识别装置,用于根据功能模拟器模拟多处理器系统对可执行程序的执行时由提取模块提供的指令存储器访问记录,识别需要同步存储器访问的指令的集合;和同步装置,用于根据所述信息确定并行模拟单元对一个集合中指令的执行,使得指令的存储器访问按照该指令的全局模拟时间所对应的顺序来执行,访问控制模块在同步完成前挂起相应存储器访问的执行,响应同步装置的控制恢复被挂起的存储器访问的执行。
文档编号G06F9/455GK101256502SQ20071008432
公开日2008年9月3日 申请日期2007年2月27日 优先权日2007年2月27日
发明者诚 杨, 鲲 王, 王华勇 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1