全部博文(436)
分类: LINUX
2013-01-19 17:58:17
第六次读书报告
王博
我这周阅读的是《Execution Migration in a Heterogeneous-ISA Chip Multiprocessor》,我们小组采用分工合作的方式,我负责1,2,3,4章的阅读工作。
这篇文章所讲的大体内容是在异构指令集芯片中执行迁移。首先我知道了ISA是指令集架构,另外通过阅读我获取了诸多有用信息:
不均匀的处理器芯片的处理效率高于均匀的。
我们必须去执行迁移(在不均匀的处理器芯片中)为了去适应时序的改变和外部环境的改变。
指令集的目标:1.简化软件执行步骤2.缩减代码尺寸3.减少缓存4.设计更节能的硬件5.支持特有指令领域
要实现异构指令集所面临的最大困难:程序移动(移动在异构指令集芯片中正在运行的程序)它需要允许程序去利用异构指令集去适应相位和环境的变化。
进程需要改变的原因:
当计算机功率改变时,在为高性能设计的核心中可以移动到为节能设计的核心上。
当一个有优先权和被需要的进程进入运行队列中,其它进程可以被移除出最强有力的核心。
如果一个程序进入一个需要执行多种计算机运算需求的阶段中,执行任务可以移动到对这个新的计算运算类型有强有力支持的核心上。
如果芯片过热,在此区域执行的项目可以移走,如果冷一点的芯片是个不同的指令集,进程仍然可以进行。
研究目标:减少在迁移过程中转化所消耗的时间,最终指针在迁移后保留下正确的,避免研究的无用消耗和减少复杂程度,在执行迁移时固定指针。
我们可以限制在指令集中移动到等量点,然而仍然支持在程序中核心在任意点间的移动,迁移应该在任何指令下均可行。
核心迁移的范围比较广:从子集到指令集。
ARM,MIPS:32位采取精简指令集的处理器架构。
精简指令集较原来相比:指令集数目得到明显提升达数百条,运行周期不再固定。
CMP:多核心,也叫多微处理器核心,是将两个或更多的独立处理器封装在一起的方案,通常在一个集成电路(IC)中。双核心设备只有两个独立的微处理器。一般说来,多核心微处理器允许一个计算设备在不需要将多核心包括在独立物理封装时执行某些形式的线程级并发处理(Thread-Level Parallelism,TLP),这种形式的TLP通常被认为是芯片级多处理。在游戏中,你必须要使用驱动程序来利用第二颗核心。“多核心”、“双核心”的定义在字面使用中有一定差距,他们通常指某些种类的中央处理器(Central Processing Unit,CPU),但是某些时候也应用到DSP和SoC中。另外,某些情况中只适用于在同一个集成电路中的多核心微处理器。这些人将同一封装中集成的独立微处理器芯片称做“多处理模块”、“双核心”等。除非特别说明,本文将使用“多核心”指代在同一集成电路中集成的CPU。
内存相统一化:在每一部分,数量、尺寸、在内存中的相对命令和它们的队列及补充的规则必须统一为了它们在穿过指令集架构时具有相同的虚拟地址,堆和栈同样需要一致。
堆的一致性:为了降低移位成本就必须修改内存。为了消除发现和定位所有的函数指针,函数体就应当被放在相同的虚拟地址里进入每一个ISA,也就意味着函数命令的定义在内存中也是一样的,大小也一样,虽然它们的虚拟地址一样但是他们的函数调用地址不同。堆的一致性不是必须的,因为指向堆的指针将会工作的非常正确在移位后由于堆对象在共享空间的地址是动态产生的,不是硬制的二进制代码。
栈的一致性: 栈对象的指针会固定在迁移过程中, 栈中有许多指针指向他们,移位的时候这些指针都会被修改假设这些对象没有放在一致的地址里。
问题:编译器被修改为生产程序,保持它们中大多数的状态在一个固定的形式上为的是只有少量的数据项需要被放回,不用去修改指针。这样会有很少的迁移消耗。the compiler is modified to produce programs that keep most of their state in an architecture-neutral form so that only a small number of data items must be repositioned and no pointers need to be changed.The result is low migration cost with minimal sacrifice of non-migration performance. 这句话是这样翻译吗?