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

基于块计数的过程布局和拆分制造技术

技术编号:5479485 阅读:187 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及用于基于块计数的过程布局和拆分的方法、系统和计算机程序产品。本发明专利技术的各实施例利用代码块计数来通过最小化沿较频繁执行的路径的分支来提供改进所生成的过程代码的执行时间的代码块总体排序。该总体排序是使用区分了优先级的优先次序关系来优化的。例如,优化该总体排序以最大化代码块链在其他代码块链之后的适当放置。该总体排序还被优化来将零计数(未触碰)代码块置于任何非零(已触碰)代码块之后。

【技术实现步骤摘要】
【国外来华专利技术】基于块计数的过程布局和拆分背景1.背景和相关技术计算机系统和相关技术影响社会的许多方面。的确,计算机系统处理信息的能力已转变了人们生活和工作的方式。计算机系统现在通常执行在计算机系统出现以前手动执行的许多任务(例如,文字处理、日程安排和会计等)。最近,计算机系统彼此耦合并耦合到其他电子设备以形成计算机系统和其他电子设备可以在其上传输电子数据的有线和无线计算机网络。因此,许多计算任务的执行分布在多个不同的计算机系统和/或多个不同的计算组件上。随着计算机化的系统日益普及,此类系统内采用的软件和硬件的复杂度也日益增加。一般而言,对看起来愈加复杂的软件的需求持续增长,这进一步趋向于成为推动硬件更大开发的动力之一。然而,即使对于复杂软件而言,在执行期间通过代码的一些路径走得相对(并且可能显著地)更频繁。相反,通过代码的其他路径走得相对不频繁或根本不走。软件代码可包括导致在执行期间走特定代码路径的各种条件或其他分支语句。不幸的是,在执行软件代码时,各代码块在存储器中的布置可能不会考虑较频繁或较不频繁走的路径。即,相对不频繁执行的代码块可能置于较频繁执行的代码块之前,造成执行在非连续存储器部分之间跳本文档来自技高网...

【技术保护点】
一种在包括系统存储器的计算机系统(100)处的用于优化软件过程(111)的执行的方法,所述方法包括:访问包括多个不同代码块(201、202)的可执行过程(111)的动作,所述可执行过程(111)具有起始代码块(201)和将所述过程的执行分成其他代码块(202、203、204)的一个或多个条件语句;访问所述可执行过程(111)的块计数数据(112)的动作,所述块计数数据(112)包括每一代码块的块计数,每一个块计数指示在所述可执行过程(111)的一次或多次先前执行期间代码块被执行了多少次;基于所访问的块计数数据(112)来创建所述可执行过程(111)的一个或多个代码块的一条或多条代码块链(292...

【技术特征摘要】
【国外来华专利技术】US 2008-1-17 12/016,0991.一种在包括系统存储器的计算机系统(100)处的用于优化软件过程(111)的执行的方法,所述方法包括:访问包括多个不同代码块(201、202)的可执行过程(111),操纵所述代码块的每一个来针对在所述过程期间每次执行代码块提供计数;制定所述可执行过程的块图,其中所述块图指示各代码块彼此的相对位置以及每个所述代码块在程序分析期间被执行的次数的计数;创建一条或多条代码块链(292、293),每条链(292、293)包括用于所述可执行过程一个或多个代码块,每个所述链通过从最高计数到最低计数的次序在所述多个代码块中选择每个代码块来形成,其中当所选每个代码块是已有链的前导或后继时将所选的每个代码块分派到所述已有链,当所选的每个代码块既不是已有链的前导也不是已有链的后继时用所选的每个代码块创建新链;标识包含具有非零计数块的代码块链以及仅包含具有零计数的代码块的链;生成多个后集,每个后集指示指定代码块链在每个后集内以总体排序在每条代码块链之后的偏好;生成多个前集,每个前集指示指定代码块链在每个前集内以总体排序在每条代码块链之前的偏好;基于所述前集和后集,生成优先次序关系(117),以用于确定如何排序所述代码块链;基于所述优先次序关系来对所述一条或多条非零代码块链(292、293)进行排序,并且随后将任何零计数代码块链追加到所述排序的末尾,并接着将经排序的代码块链存储在系统存储器中来优化所述可执行过程的后续执行。2.如权利要求1所述的方法,其特征在于,创建所述可执行过程的一个或多个代码块的一条或多条代码块链包括对于一条或多条代码块链执行:访问具有最高块计数的尚未包括在代码块链中的代码块;以及对于所访问的每一个块:确定所访问的代码块是否是已有代码块链中的最后块的后继;确定所访问的代码块是否是已有代码块链中的第一块的前导;以及至少基于确定所访问的代码块是否是已有代码块链的后继的结果和确定所访问的代码块是否是已有代码块链的前导的结果来将所访问的代码块分配给所述一条或多条代码块链。3.如权利要求1所述的方法,其特征在于,还包括创建任何零计数代码块链的排序,包括将任何零计数代码块链根据优先次序关系相互连接。4.如权利要求3所述的方法,其特征在于,对零代码块链进行排序包括最小化后集违反。5.如权利要求3所述的方法,其特征在于,基于优先次序关系来对所述一条或多条零代码块链进行排序包括:确定多条未排序零代码块链中的任何条受到等效的后集违反;以及通过确定所述未排序零代码块链的受到等效的后集违反的哪一条具有与先前排序的零代码块链的连接的最高计数,来对所述多条未排序零代码块链的受到等效的后集违反的任何条进行排序。6.如权利要求1所述的方法,其特征在于,基于优先次序关系来对所述一条或多条代码块链进行排序包括:确定多条未排序非零代码块链中的任何条受到等效的后集违反;以及通过确定所述未排序非零代码块链中的受到等效的后集违反的哪一...

【专利技术属性】
技术研发人员:GA瑞琴斯
申请(专利权)人:微软公司
类型:发明
国别省市:US

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

1