Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2208709
  • 博文数量: 436
  • 博客积分: 9833
  • 博客等级: 中将
  • 技术积分: 5558
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-29 10:27
文章存档

2013年(47)

2012年(79)

2011年(192)

2010年(118)

分类: LINUX

2013-01-20 13:18:40



PIE的主要思想就是先将一项工作做大(小)核心上试运行,然后估测此项工作在小(大)核心上运行的各项数据,进而评估此项任务在哪个核心上运行更能节省资源,这样能及时的挽回损失。



PIE scheduling also requires the number of LLC misses and the number of dynamically executed instructions, which can be measured using existing hardware performance counters.In other words, most of the profile information needed by PIE can be readily measured on existing hardware.PIE评估过程中需要的数据有些是可以通过硬件直接测得的,但是有些是不可以的,下面将一些需要计算的数据的计算方法列出。

(一)关于MLP比率和ILP比率的相关计算(关于MLP损耗的计算方法参见第(三)部分)

MLPratio= MLPbig/MLPsmall  1

ILPratio= CPIbase big/CPIbase small   2

 

We use MLP ratio to quantify MLP loss and ILP ratio to quantify ILP loss.

 MLP ratio代表MLP的损耗,ILP ratio代表ILP的损耗


CPI = CPIbase+CPImem.   (3)

 

Therefore, we useMLP, ILP, and CPI stack information to develop our PIE model (see Figure 3)

因此我们用MLPILPCPI的信息来建立我们的PIE模型参照图3

(二)大小核心性能的计算方法

we estimate the performance on a small core while executing on a big core in the following manner:

我们用一下方法评估小核心的性能当在大核心上执行的时候

CPIsmall=CPIbase small+CPImem small=CPIbase small+CPImem big× MLPratio.   (4)

Similarly, we estimate the performance on a big core while executing on a small core asfollows:

类似的,我们用以下的方法评估大核心的性能当在小核心上运行的时候

CPIbig=CPIbase big+CPImem big=CPIbase big+CPImem small/MLPratio.  (5)

 

CPIbase big refers to the base CPI component on the bigcore estimated from the execution on the small core;CPIbase small is defined similarly.

由此可推断CPIbase big是在小核心上执行时预测到的大核心基本组件的信息,CPIbase small使用相似的方法定义的。



(三)关于MLP损耗的计算方法

Combining these MLP estimates with measured MLP numbers on the current core type enables
predicting the MLP ratio using Formula 1, which in its turn enables estimating the
memory CPI components on the other core type, using Formulas 4 and 5

将预测的MLP的数值与当前核心上测量的MLP的数值相结合,运用公式(1)计算MLP比率,以便于将来公式(4)(5)的使用。

 

We therefore estimate the big-core MLP as the average number of memory accesses in the big-core reorder buffer. Quantitatively, we do so by calculating the average number of LLC misses per instruction observed on the small core (MPIsmall) multiplied by the big-core reorder buffer size:

因此我们假定MLP big-core代表在大核心中访存次数的平均值;MPIsmall是每个进程的平均访问失败的次数

MLPbig= MPIsmall×ROB size.  (6)

MLPsmall= MPIbig×D.  (7)    

 

The PIE model requires that the average dependency distance D be computed over the dynamic instruction stream. This can be done by requiring a table with as many rows as there are architectural registers. The table keeps track of which instruction last wrote to an architectural register. The delta in dynamic instruction count between a register write and subsequent read then is the dependency distance.

计算D的时候用的是一个工作表(table),并且这个表和寄存器(architectural registers)的排数一样多。这个表跟踪的是最后一条写入寄存器的指令。关系距离(即D)就是当前位置到要查找的位置的指令数量

 

(四)关于CPIbase big的计算方法

CPIbase big= 1/Wbig.

We estimate the base CPI component for the big core as one over the issue width Wbig of the big core:由此句可以知道Wbig应该是大核心的宽度



阅读(886) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~