用于在计算系统处的软件程序中便于动态和高效地管理转换缓冲器预取的机制的制作方法

文档序号:9620869阅读:416来源:国知局
用于在计算系统处的软件程序中便于动态和高效地管理转换缓冲器预取的机制的制作方法
【技术领域】
[0001] 本文描述的实施例一般涉及计算机编程。更特别的,实施例涉及用于在计算系统 处的软件程序中便于动态和高效地管理转换缓冲器预取的机制。
【背景技术】
[0002] 转换后备缓冲器(TLB)涉及硬件缓存,该硬件缓存存储虚拟-物理地址转换以及 被用于提高虚拟地址转换速度。当存储器访问时,执行TLB查找以在该TLB中查找请求的 地址转换,并且如果没找过该转换,该未命中被称为TLB未命中。然而传统的解决方案并不 提供高效的管理TLB未命中的方法;例如,为基于硬件的页面行程表提供的一种传统方法 确定该存储器访问的物理地址或者确定是否存在特定虚拟地址的入口。基于硬件的页面行 程的高延迟使得TLB未命中昂贵和低效,其经常导致执行负载的显著放慢,导致功率和性 能减缓。
【附图说明】
[0003] 在附图中通过举例的方式、但不是以限制的方式阐明实施例,在附图中类似的附 图标记指代类似的元件。
[0004] 图1示出了根据一种实施例的具有预取机制的二进制转换,其为了在软件程序中 便于转换缓冲器预取的基于二进制转换的管理。
[0005] 图2示出了根据一种实施例的具有预取机制的二进制转换。
[0006] 图3示出了根据一种实施例采用由图1的具有预取机制的二进制转换推动的二进 制转换引擎的系统。
[0007] 图4A示出了根据一种实施例基于利用二进制转换的静态代码分析的便于TLB预 取控制的方法。
[0008] 图4B示出了根据一种实施例基于利用二进制转换的动态代码分析和概括的便于 TLB预取控制的方法。
[0009] 图4C示出了根据一种实施例基于便于动态和高效的二进制转换的TLB预取的方 法。
[0010] 图5示出了根据一种实施例的适于实现本公开的实施例的计算机系统。 详细描述
[0011] 在接下来的描述中,阐明了许多特定的细节。然而如文本描述的这样的实施例可 被实行而不需要这些特定的细节。在其它示例中,为了不模糊本说明书的理解,并没有详细 地示出众所周知的电路、结构和方法。
[0012] 实施例提供了一种基于硬件-软件的机制,该机制用于利用基于二进制转换(BT) 的TLB预取机制减少转换后备缓冲器(TLB)的未命中的发生。在一种实施例中,基于BT的 预取机制可包括使用基于硬件-软件的解决方案,这样当采用用于确定、预测和调度TLB预 取的方法时,指令集架构(ISA)可被用于启用基于BT的TLB预取。在一种实施例,基于BT 的机制克服了与传统方法有关的任何问题/限制,并且更通过提高TLB预取的质量而且减 少了与传统的基于硬件-软件的TLB预取方案的有关的复杂性,为关于如静态代码分析和 动态概括的信息的利用做准备以高效地控制和维持TLB预取。
[0013] 提供未来TLB查找的精确预测的实施例通过消除传统地与页面行程延迟相关的 减缓和TLB未命中而增加TLB命中的数目以加速执行代码。例如,TLB查找模式可被观察到 并被用于预测未来的TLB查找。而且,可生成对这些未来的查找的预取请求和提供给例如 TLB页面未命中处理程序(PMH),PMH然后行走页面表以及用被预取的地址转换填入TLB。
[0014] 实施例提供了灵活的和简易的解决方案,其优于死板的和复杂的仅仅硬件的解决 方案。例如,在一种实施例中,利用BT机制,在预取不具有相当的益处时,对于部分或所有 的负载可关掉预取,。此外,BT机制兼容于任何数目的不能由具有传统的基于硬件的技术 完成的机器、硬件封装和预取方案等。
[0015] 而且,诸如当确定静态属性(如在循环中的页面访问中的跨步)可立即用于快速 TLB预取线索(利用传统的系统则这不可能),而这个信息可通过分析静态代码获得时,实 施例可允许确定代码的静态和动态属性。类似的,BT机制的运行时组件通过简单的概括和 分析代码的动态属性学习动态TLB行为。
[0016] 图1示出了根据一种实施例的具有预取机制的二进制转换110,其为了在软件程 序中便于管理基于二进制转换的转换缓冲器预取。计算设备1〇〇用作主机器以采用具有预 取机制的二进制转换("二进制转换机制"或简化为"BT机制")110,其在一种实施例中,当 采用用于精确确定、预测和调度的TLB预取的方法时,便于基于硬件-软件的解决方案利用 ISA以启用基于BT的TLB预取。这个基于BT的TLB查找的精确预测通过消除与由传统方 法带来的延迟一贯相关的缓慢和TLB未命中可增加TLB命中的数目以加速执行代码和它的 工作量。
[0017] 计算设备100可包括移动计算设备,如包括智Η纟电话(如平果公司的iPhone、动 态研究公司的黑莓等)的蜂窝式电话、个人数字助理(PDA)等、平板计算机(如苹果公司 的iPad、三星公司的Galaxy 3等)、膝上计算机(如笔记本、上网本、超级本等)、电子阅读 器(如亚马逊公司的Kindle、庞诺书店的Nook等)等。计算设备100可进一步包括机顶 盒(如基于因特网的有线电视机顶盒等)、以及较大的计算设备,如台式计算机、服务器计 算机等。
[0018] 计算设备100进一步包括一个或多个处理器102、存储设备104、网络设备、驱动器 等等、操作系统(0S) 106、以及输入/输出(I/O)源108,如触摸屏、触摸面板、触摸板、虚拟 或常规键盘、虚拟或常规鼠标等。需要注意的是类似"计算设备"、"节点"、"计算节点"、"客 户端"、"主机"、"服务器"、"存储服务器"、"机器"、"设备"、"计算设备"、"计算机"、"计算系 统"等等的术语在整个文档中可被可替换的使用。
[0019] 在一种实施例中,二进制转换机制110提供采用利用BT的硬件-软件方式的解决 方案以控制和管理TLB预取,该解决方案减少了基于硬件的复杂性,提高了与预取有关的 精确性以及减少了用于TLB预取的功率耗损。在一种实施例中,通过分析静态代码和观察 动态TLB查找,BT被用于推断TLB访问模式。进而,这个推断的模式被用于控制使用控制 指令和明确的预取请求的TLB预取行为。
[0020] 图2示出了根据一种实施例的具有预取机制的二进制转换110。在一种实施例中, 二进制转换机制110包括数个组件,如接收逻辑202、转变逻辑204、包括分析器208的推测 /预测逻辑206、具有选择模块212和应用模块214的指令逻辑210、传送逻辑216、执行逻 辑216、以及通信/兼容性模块218。整个这篇文档,"逻辑"可被替换的称作"组件"或"模 块",并且通过举例的方式包括软件、硬件和/或软件和硬件的任何组合,如固件。
[0021] 在一种实施例中,接收逻辑202接收来自于一个或多个源(如,图3中的硬件预取 器302、304、306)的软件程序的代码指令或代码块,在这种情况下代码指令随后被转发到 转换逻辑204。BT机制110提供虚拟化技术,在这种情况下,通过转换逻辑204可执行的二 进制被从一种ISA无缝的转换为另一种,例如以获得高效率和高性能而不浪费资源和功率 的目的。
[0022] 在一些实施例中,转换逻辑204分析源二进制的代码块并且在目标ISA中生成功 能性等同的代码块(也称为"代码转换"或"代码转换块"),进而,转换逻辑204在代码转 换上执行优化以及为了执行而调度被转换的目标ISA代码块。运行时可负责跟踪所生成的 代码块、在观察代码流的基础上链接起代码转换、跟踪类似于分支行为的动态系统行为以 及通过重转换源二进制代码块响应这些动态行为。在特定场景和实施例中,当源和目标ISA 可能保持一样时,BT也可纯粹地被用于代码优化。可以考虑的是BT机制110不依赖于任 何特定的ISA或目标ISA是否与源ISA相同或不同。
[0023] 在一种实施例中,前面提到的"运行时"指代的是推测/预测逻辑("推测逻 辑")206,其包括能够在运行时或转换代码块执行期间执行转换代码块的运行时跟踪。执 行这个运行时跟踪以当转换代码块正被执行时跟踪它的动态系统行为。然后可通过分析模 块208分析(为动态分析)该动态系统行为,然后将结果发送到转换逻辑204以基于与它 们的动态系统行为有关的结果重转换所转换的代码块。然后为了更加动态和高效的TLB预 取,重新提交所重转换的代码块以用于执行以增加TLB命中和减少TLB未命中。在一种实 施例中,执行逻辑216被用于提交代码或任何其他转换以用于执行或实现。例如初始所转 换的代码块(基于静态分析)可由执行逻辑216提交以用于执行,类似的,仍然可由执行逻 辑216提交重转换的代码块(基于动态分析)以用于执行。
[0024] 在一种实施例中,由推测/预测逻辑206利用如由分析器208提供的静态代码分 析和/或动态代码分析处理代码转换以预测TLB访问的模式,在这种情况下,所推测的模式 然后被用于控制和预测TLB预取。进而,在一种实施例中,所提出的基于BT的TLB预取对 于不用基于硬件的TLB预取器的是适用的和可行的,在这种情况中BT软件生成明确的TLB 预取请求以如利用硬件驱动的TLB预取器一样执行软件驱动预取,例如硬件驱动的TLB预 取器如图3的硬件预取器302、304、306,在这种情况中,除了生成预取,允许灵活性和设计 折衷的BT软件也调谐和控制所述硬件预取器。进而,利用BT机制110, BT运行时被用于学 习TLB预取的效率,其包括当TLB预取被认为是不利的时,禁用TLB预取。
[0025] -旦推测/预测逻辑206提出推测,该推测和任何相关的信息就可被转发到指令 逻辑210。在一种实施例中,指令逻辑210被用于提出TLB预取指令("TLBPF"或"TLBPF 指令")。选择模块212选择TLBPF指令,而应用模块214应用所选择的TLBPF指令。为了 预测和控制TLB预取,该选择的TLBPF指令可用作BT机制110的工具以利用所收集的有关 执行负载的TLB行为的信息。例如,接下来的TLBPF指令三个变形可被用于:1) TLBPF0立即 (imm)用于设置TLB预取模式至立即;2)TLBPFlimm用于设置TLB预取跨向立即;3)TLBPF2 存储器(mem)用于为地址存储器插入TLB预取请求。<
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1