[发明专利]一种程序数据与代码局部性的量化方法有效

专利信息
申请号: 201310408418.1 申请日: 2013-09-10
公开(公告)号: CN103500117A 公开(公告)日: 2014-01-08
发明(设计)人: 蔡根;杨艳琴;徐文超 申请(专利权)人: 华东师范大学
主分类号: G06F9/45 分类号: G06F9/45;G06F11/36;G06F19/00
代理公司: 上海蓝迪专利事务所 31215 代理人: 徐筱梅;张翔
地址: 200241 *** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种程序数据与代码局部性的量化方法,其过程为:剖析目标程序获取指令访问数据信息、指令与数据的组织信息及热度信息;将上述信息映射到空间几何坐标系中;在空间几何坐标系中建模立方体;将热度信息投射为立方体密度;当给定局部开始与结束位置时,构建局部空间长方体;使用局部空间长方体进行局部性程度计算;在局部性程度计算时建模并使用了立方体体积、密度及质量属性;当指令具有跳转出局部长方体的指令时,将长方体分割为子长方体进行计算。本发明可以从程序特征角度来对程序局部性进行定量。
搜索关键词: 一种 程序 数据 代码 局部性 量化 方法
【主权项】:
一种程序数据与代码局部性的量化方法,其特征在于包括以下步骤:a)使用剖析工具对程序的指令特征及数据特征进行剖析;b)获取剖析结果:指令访问数据信息、指令及数据的组织信息、运行时热度信息;c)将步骤b)中获取的结果用作原始程序特征信息来进行后续计算;d)使用右手坐标系建立空间坐标系OXYZ;e)在步骤d)中建立的空间坐标系OXYZ基础上,进一步构造可视化程序特征空间坐标图,使用步骤c)中获取的基础信息向步骤d)中所建立的空间坐标系映射,具体包括:ⅰ)将数据项映射为X轴即数据维度,将指令项映射为Y轴即指令维度,将热度项映射为Z轴即热度维度;ⅱ)将指令及数据的组织信息映射为轴内的摆放方式;ⅲ)将指令使用数据映射为空间坐标中的单位立方体;单位立方体体积V为1,赋予密度属性ρ并置初始值为1,得其初始质量M = ρV = 1;f)在建立的空间坐标系中放置立方体,具体包括:ⅰ)从原点开始,X轴、Y轴和Z轴分别向其正方向依次使用单位为1的立方空间;ⅱ)当Y轴指令项第一次访问X轴数据项,在XY相应立方空间坐标处放置立方体,当Y轴指令项再次访问X轴数据项时,在XY相应立方空间坐标处向上叠加单位立方体;g)将步骤e)中的热度维度(Z轴)投射为立方体密度,具体包括:ⅰ)定义Zmax为存在立方体的空间坐标的Z分量的最大值;ⅱ)使用Z=Zmax处的XY平面向Z轴负方向挤压,停止于Z=1处的XY平面;ⅲ)将各XY坐标处存在的立方体密度ρ设为其投射之前立方柱高度;使用投射后的程序空间坐标图计算局部性程度,具体包括:ⅰ)定义Xmax为存在立方体的空间坐标的X分量的最大值,Ymax为存在立方体的空间坐标的Y分量的最大值;ⅱ)定义局部性程度计算的输入为[Ys,Ye];Ys为目标局部的Y轴坐标的开始处,Ye为目标局部的Y轴坐标结束处,0 <= Ys < Ye <= Ymax;ⅲ)计算[Xs,Xe]:使用X = 0处的YZ平面向X轴正向移动,当其受到[Ys,Ye]范围的立方体表面阻止时停止,令Xs等于停止位置处的X坐标;使用X = Xmax处的YZ平面向X轴负向移动,当其受到[Ys,Ye]范围内的立方体表面阻止时停止,令Xe等于停止位置处的X坐标;ⅳ)当前程序空间坐标图中的平面X‑ Xs = 0,X–Xe = 0,Y–Ys = 0, Y–Ye = 0, Z = 0,Z–1 = 0确定了目标局部的长方体表示;j)设局部性程度为L(Ys,Ye),使用步骤h)中ⅳ)确定的目标局部的长方体表示及其相关属性包括密度、边沿,计算目标局部的局部性程度,具体包括:ⅰ)当局部内部无跳转跳出长方体范围时,有L(Ys,Ye) = M(Xs,Xe,Ys,Ye,0,1)/V(Xs,Xe,Ys,Ye,0,1)= (∑(ρXiYj * V(Xi,Xi+1,Yj,Yj+1,0,1))) /((Xe‑Xs) * (Ye‑Ys)) 其中,M(Xs,Xe,Ys,Ye,0,1)指长方体的质量,V(Xs,Xe,Ys,Ye,0,1)为长方体的体积,ρXiYi为平面X–Xi = 0,X–(Xi + 1) = 0,Y–Yj = 0,Y–(Yj + 1) = 0,Z = 0,Z–1 = 0所围的立方体的投射密度,Xi和Yi均为整数且Xi∈[X1,X2‑1]、Yj∈[Y1,Y2‑1];ⅱ)当局部内部有跳转跳出立方体范围时,使用跳转位置的XZ平面切分当前长方体;设当前长方体被切分成的子长方体数为n,切分位置Y分量坐标分别为(Y1,Y2,Y3…Yn‑1),其跳转方向对应为(D1,D2,…Dn‑1),对任意的Di(1<=i<=n‑1)有Di = Ys或Di = Ye;Di = Ys表示跳转方向为Y轴负向,Di = Ye表示跳转方向为Y轴正向;对每一个子长方体,分别计算其局部性程度:L(Ys,Y1) = M(Xs,Xe,Ys,Y1,0,1)/(V(Xs,Xe,Ys,Y1,0,1) + V(X1,X2,Y1,D1,0,1))L(Y1,Y2) = M(Xs,Xe,Y1,Y2,0,1)/(V(Xs,Xe,Y1,Y2,0,1) + V(X1,X2,Y1,D2,0,1))…L(Yn‑1,Ye) = M(Xs,Xe,Yn‑1,Ye,0,1)/(V(Xs,Xe,Yn‑1,Ye) + V(X1,X2,Yn‑1,Ye,0,1))使用上述计算的局部性程度结果作为子长方体修正密度,用此修正密度计算子长方体的质量:M(Ys,Y1) = L(Ys,Y1) * V(Xs,Xe,Ys,Y1,0,1)M(Y1,Y2) = L(Y1,Y2) * V(Xs,Xe,Y1,Y2,0,1)…M(Yn‑2,Yn‑1) = L(Yn‑2,Yn‑1) * V(Xs,Xe,Yn‑2,Yn‑1,0,1)M(Yn‑1,Ye) = L(Yn‑1,Ye) * V(Xs,Xe,Yn‑1,Ye,0,1)使用上述计算结果再次计算局部性程度:L(Ys,Ye) = (M(Ys,Y1) + M (Y1,Y2) … + M(Yn‑1,Ye))/V(Xs,Xe,Ys,Ye,0,1);其中:所述剖析工具为编译器及运行时统计分析工具。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华东师范大学,未经华东师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201310408418.1/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top