1) dependence-cache slicing
依赖缓存程序切片
1.
In order to raise the efficiency of program slicing,the article proposes dependence-cache slicing algorithm.
该文针对调试大而复杂的Java程序时存在的问题,提出了使用面向方面技术和依赖缓存程序切片算法实现Java调试工具的思想。
3) program dependency graph
程序依赖图
1.
The main idea of the algorithm is to retain the control-flow information while the threaded program dependency graph is constructed, with which the threaded realized paths can be identified, by doing this we can improve the slice s precision and slicing s efficiency.
介绍一种基于控制流的多线程程序的静态切片算法 ,该算法的主要思想是在构造多线程程序依赖图的同时保留程序的控制流信息 ,利用这些信息能够判断出程序中的多线程可实现路径 ,从而提高多线程程序静态切片的精度和效率 。
4) program dependence graph
程序依赖图
1.
The paper presents a program structure partition method based on the program dependence graph, i.
本文提出了一种基于程序依赖图的程序结构划分的测试方法 ,即程序块划分法 。
2.
This paper handled the transitivity of the information flow with the program dependence graph before constructing the IFG.
利用程序依赖图先处理系统信息流中的传递关系,然后再进行信息流图的生成,从而减少引入系统中不存在的信息流路径,减少信息流分析时的工作量。
3.
To resolve the inter-procedural call,the article converted it to intra-procedural call by establishing a suggestive table,which predigested the complexity of establishing the program dependence graph greatly.
在处理目标程序的过程间调用时,通过建立参数影射关系表,将过程间调用转换为过程内调用,简化了建立程序依赖图的复杂度;在归纳分析目标程序变量类型的基础上,给出了代数运算法则,对程序中的线性运算代码进行等价变换,缩减了切片程序的规模。
5) call graph
程序依赖图
1.
A program understanding technique that combines open compile analysis and reflective instrumentation dynamic analyses is introduced to construct static and dynamic combined call graph for assisting program comprehension.
针对静态程序分析得到的信息冗余且无法反映面向对象目标系统多态和动态绑定的本质特征,而动态分析则与动态程序执行有关的,无法得到完整的依赖关系,提出反射植入动态分析和开放编译静态分析相结合的方式,并将得到的静态和动态信息有机结合起来产生动静态结合程序依赖图。
6) program dependency
程序依赖性
1.
Program dependency analysis is the basic theory on software analysis that can quantify many indexes on program dependency.
程序依赖性分析是软件分析的基本理论,可以对程序的多项依赖性指标进行度量。
补充资料:CPU缓存
缓存的工作原理是当CPU要读取一个数据时,首先从缓存中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。
正是这样的读取机制使CPU读取缓存的命中率非常高(大多数CPU可达90左右),也就是说CPU下一次要读取的数据90都在缓存中,只有大约10需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先缓存后内存。
目前缓存基本上都是采用SRAM存储器,SRAM是英文StaticRAM的缩写,它是一种具有静志存取功能的存储器,不需要刷新电路即能保存它内部存储的数据。不像DRAM内存那样需要刷新电路,每隔一段时间,固定要对DRAM刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,这也是目前不能将缓存容量做得太大的重要原因。它的特点归纳如下:优点是节能、速度快、不必配合内存刷新电路、可提高整体的工作效率,缺点是集成度低、相同的容量体积较大、而且价格较高,只能少量用于关键性系统以提高效率。
按照数据读取顺序和与CPU结合的紧密程度,CPU缓存可以分为一级缓存,二级缓存,部分高端CPU还具有三级缓存,每一级缓存中所储存的全部数据都是下一级缓存的一部分,这三种缓存的技术难度和制造成本是相对递减的,所以其容量也是相对递增的。当CPU要读取一个数据时,首先从一级缓存中查找,如果没有找到再从二级缓存中查找,如果还是没有就从三级缓存或内存中查找。一般来说,每级缓存的命中率大概都在80左右,也就是说全部数据量的80都可以在一级缓存中找到,只剩下20的总数据量才需要从二级缓存、三级缓存或内存中读取,由此可见一级缓存是整个CPU缓存架构中最为重要的部分。
一级缓存(Level1Cache)简称L1Cache,位于CPU内核的旁边,是与CPU结合最为紧密的CPU缓存,也是历史上最早出现的CPU缓存。由于一级缓存的技术难度和制造成本最高,提高容量所带来的技术难度增加和成本增加非常大,所带来的性能提升却不明显,性价比很低,而且现有的一级缓存的命中率已经很高,所以一级缓存是所有缓存中容量最小的,比二级缓存要小得多。
一般来说,一级缓存可以分为一级数据缓存(DataCache,D-Cache)和一级指令缓存(InstructionCache,I-Cache)。二者分别用来存放数据以及对执行这些数据的指令进行即时解码,而且两者可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。目前大多数CPU的一级数据缓存和一级指令缓存具有相同的容量,例如AMD的AthlonXP就具有64KB的一级数据缓存和64KB的一级指令缓存,其一级缓存就以64KB64KB来表示,其余的CPU的一级缓存表示方法以此类推。
说明:补充资料仅用于学习参考,请勿用于其它任何用途。
参考词条