当前位置: 首页 > 专利查询>微软公司专利>正文

利用事务存储器硬件来加速虚拟化和仿真制造技术

技术编号:4644702 阅读:167 留言:0更新日期:2012-04-11 18:40
公开了用于使用事务存储器硬件来加速虚拟化或仿真的各种技术和方法。可通过提供事务存储器硬件上隔离的专用状态并将执行仿真的主机的栈存储在该隔离的专用状态中来便于状态隔离。由中央处理单元执行的存储器访问可由软件监视以检测被仿真的客户机已对其自己的代码序列作出自修改。事务存储器硬件可用于通过利用原子提交特征来便于多线程环境中的分派表更新。提供使用存储在主存储器中的分派表来将客户机程序计数器转换成主机程序计数器的仿真器。访问分派表以查看该分派表是否包含对应于特定客户机程序计数器的主机程序计数器。

【技术实现步骤摘要】
【国外来华专利技术】利用事务存储器硬件来加速虚拟化和仿真祖旦 Ff足仿真是涉及从软件提供中央处理单元的功能的技术。一个优点是仿真是你 能够在任何其他类型的处理器上运行针对特定类型的处理器设计的软件。虚拟 化是提供以允许不止一个操作系统同时运行的方式对硬件分区的能力的技术。 有了虚拟化,物理中央处理单元被分成多个上下文。每一个上下文然后轮流直 接在处理器上运行。即使虚拟化产品一般比仿真产品快,但这两种类型的产品 当今具有限制可实现的速度的若干复杂性。作为一个示例,在仿真期间处理并 发需要可能减缓连续执行的额外同步。作为第二示例,跟踪仿真下的自修改代 码通常招致巨大的性能负担。概述公开了用于使用事务存储器硬件来加速虚拟化或仿真的各种技术和方法。 一个或多个中央处理单元设置有可用于加速虚拟化的事务存储器硬件。该事务 存储器硬件具有维护专用状态的设施、呈现来自软件可见的其他中央处理单元 的存储器访问的设施、以及对专用状态的原子提交的支持。在一个实现中,可使用事务存储器硬件来例如便于对精确异常语义的仿 真。专用状态可用于使得仿真状态能够保持与体系结构状态不一致并只在特定边界上同步。优化的指令序列使用程序块准确(chunk-accurate)模拟执行以尝 试并实现与较慢的指令准确(instruction-accurate)模拟相同的最终效果,该指 令准确模拟被隔离在仅在成功地仿真整个程序块的情况下提交的专用状态中。在另一实现中,可通过提供事务存储器硬件上的隔离的专用状态并将执行 仿真的主机的栈存储在该隔离的专用状态中来便于状态隔离。在又一实现中,自修改代码可使用事务存储器硬件来检测。由中央处理单 元执行的存储器访问可由软件监视以检测被仿真的客户机(guest)已对其自己 的代码序列作出自修改。事务存储器硬件在一个实现中可用于通过利用原子提交特征来便于多线程环境中的分派表更新。提供使用存储在主存储器中的分派表来将客户机程序 计数器转换成主机程序计数器的仿真器。访问分派表以查看该分派表是否包含 对应于特定客户机程序计数器的主机程序计数器。当未找到主机程序计数器 时,可使用事务存储器硬件来在表中引入新的映射。在又一实现中,可通过提供支持维护专用存储器状态的设施和原子提交特征的事务存储器硬件来便于代码回插(code backpatching)。对特定代码作出 的变更被存储在专用状态设施中。回插变更通过尝试使用原子提交特征一次性 地向存储器提交所有变更来制定。高效的调用返回高速缓存在一个实现中可通过使用事务存储器硬件来提 供。存储在专用状态设施中的调用返回高速缓存捕捉要在客户机函数执行完成 后要返回的主机地址。对该调用返回高速缓存使用基于硬件的直接查找散列 表。提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些 概念。本概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在 用于帮助确定所要求保护的主题的范围。附图简述附图说明图1是一个实现的计算机系统的图示。图2是在图1的计算机系统上操作的一个实现的虚拟化/仿真应用程序的 图示。图3是图1的系统的一个实现的处理流程图,其示出在使用事务存储器硬 件来便于对精确异常语义的仿真时所涉及的各阶段。图4是图1的系统的一个实现的示图,其示出了运行程序块准确模拟。图5是图1的系统的一个实现的示图,其示出了在程序块准确模拟引发异 常后运行指令准确模拟。图6是图1的系统的一个实现的处理流程图,其示出在使用事务存储器硬 件来便于状态隔离时所涉及的各阶段。图7是图1的系统的一个实现的处理流程图,其示出在使用事务存储器硬 件来便于对仿真下的自修改代码进行检测时所涉及的各阶段。5图8是图1的系统的一个实现的处理流程图,其示出在使用事务存储器硬 件来便于多线程环境中的分派表更新时所涉及的各阶段。图9是图1的系统的一个实现的处理流程图,其示出在使用事务存储器硬 件来便于多线程环境中的代码回插时所涉及的各阶段。图IO是图1的系统的一个实现的处理流程图,其示出在使用事务存储器 硬件来便于高效的调用返回高速缓存时所涉及的各阶段。详细描述此处的技术和方法可以在虚拟化或仿真系统的一般上下文中描述,但本技 术和方法也用作除此之外的其它目的。在另一实现中,该系统可包括使用事务 存储器硬件来加速虚拟化和/或仿真的一个或多个中央处理器。如图1所示,用于实现本系统的一个或多个部分的示例性计算机系统包括诸如计算设备100等计算设备。在其最基本的配置中,计算设备100通常包括至少一个中央处理单元102和存储器104。这些中央处理单元各自具有事务存储器硬件119,该事务存储器硬件包括维护专用状态120的设施、呈现来自软 件可见的其他中央处理单元的存储器访问124的设施、以及对专用状态的原子 提交126的支持。专用状态120对于其他中央处理单元是不可见的直到其被所 属处理单元显式地原子提交。专用状态120也是可丢弃的。当中央处理丢弃专 用状态时,其存储器视图回退到当前体系结构状态。软件可见的存储器访问124 使得在中央处理单元上运行的软件能检测另一中央处理单元正在访问特定的 存储单元。原子提交特征126使得中央处理单元的专用状态能作为原子提交的 一部分的单元原子地进入主存储器系统。这些事务存储器硬件特征在各种情况 下用于增强虚拟化和/或仿真,如在此处更详细地描述的。取决于计算设备的确切配置和类型,存储器104可以是易失性的(如 RAM)、非易失性的(如ROM、闪存等)或是两者的某种组合。该最基本配 置在图1中由虚线106来示出。另外,设备100还可具有附加特征/功能。例如,设备100还可包含附加 存储(可移动和/或不可移动),包括但不限于磁盘、光盘或磁带。这样的附加 存储在图1中由可移动存储108和不可移动存储110示出。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的 任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。存储器104、可移动存储108和不可移动存储110都是计算机存储介质的示例。计算 机存储介质包括但不限于,RAM、 ROM、 EEPROM、闪存或其它存储器技术、 CD-ROM、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或 其它磁存储设备、或者可用于存储所需信息并且可由设备100访问的任何其它 介质。任何这样的计算机存储介质都可以是设备100的一部分。计算设备100包括允许计算设备100与其它计算机/应用程序115进行通 信的一个或多个通信连接114。设备100还可以具有诸如键盘、鼠标、笔、语 音输入设备、触摸输入设备等输入设备112。还可以包括诸如显示器、扬声器、 打印机等输出设备lll。这些设备在本领域中公知且无需在此处详细讨论。在 一实现中,计算设备100包括虚拟化/仿真应用程序200。虚拟化/仿真应用程 序200将在图2中更详细地描述。现在转向图2并继续参考图1,示出了在计算设备100上运行的虚拟化/ 仿真应用程序200。虚拟化/仿真应用程序200是驻留在计算设备100上的应用 程序之一。然而,可以理解,虚拟化/仿真应用程序200可另选地或另外地被具 体化为一个或多个计算机上的计算机可执行指令和/或图1所示的不同变型。另 选地或本文档来自技高网...

【技术保护点】
一种用于使用事务存储器硬件来便于状态隔离的方法,所述方法包括以下步骤: 访问事务存储器硬件上隔离的专用状态(312);以及 将执行仿真的主机的栈存储在所述隔离的专用状态中(314)。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:M塔耶费尔D米霍卡B西尔瓦
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利