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

2013年(47)

2012年(79)

2011年(192)

2010年(118)

分类: 项目管理

2012-12-17 18:06:49

为了充分利用一个异构指令集架构的协同管理平台,我们必须能够在异构的多核之间进行移位操作为了适应程序语言的变化和变化的外部条件。这篇名为移位执行在一个异构的指令及架构芯片的多重处理器的论文旨在探索移位在异构指令及架构协同管理平台。

现代通用的处理器在单膜上包含多核和行业路线图呼吁增加核的数量,当前行业生产均匀的CMP,然而研究结果表明单ISA(指令及架构)异构CMP(协同管理平台)可以取得更大的性能和功效,限制多核在单ISA上消除了一个重要的维度的潜在异构性。ISA已经被设计用来满足不同的目标:使硬件实现简单,以减少代码大小、减少内存访问,使更节能的硬件设计,或支持特定领域指令。异构指令集架构的协同管理平台将允许架构师的灵活性来创建更高效的多核处理器混合工作负载。为了异构ISA CMP的可行,还得克服障碍,这篇沦为建议解决重大意义的障碍“进程移位”。一些特定用途的异构多重处理器已经被生产,叫做MPSoCs,用来计算在特定的需要多种算法来解决问题的领域。执行移位在异构单指令及架构的CMP比在均匀的CMP更具有挑战性,而这个最重要的是要求状态的转变在移位期间。

第三小节是关于移位的综述。当移位被需要的时候,操作系统必须操作四个步骤来促进移位,必须重新排序在另一个内核上,通过改变页表图来促进进入内核移位到核。The first two tasks-process scheduling and page table manipulation-are common operating system responsibilities and require no further discussion here. The final two tasks-binary translation and state transformation-are unique to heterogeneous-ISA migration.在论文中详细研究了一个特别的实例关于异构核的移位。我们假设要被移位的程序用C来写,脱离内联的汇编码,又假设外联的函数库被用来编译,最后假设一些相似的与在ISA里,相同的字节顺序和基本的数据大小。快速的移位呼吁最小的状态转变,这个取决于内存像的一致性。

第四节讲的是内存像的一致性。为了促进快速执行移位,每一个二进制代表每个程序期望在虚拟地址中发现相同的项目块数据。这就使得操作移位没有重排数据块成为可能。为了获得内存像的一致性,在每一个部分对象数据选择、大小、它们在内存中相近的命令,还有算法和填充规则都要一样以便它们的虚拟地址始终如一的当进入ISA时。全局数据的一致性,ISA可能使全部不同的部分使用同样的数据。在一定大小下的数据放在相同的数据块,这个允许快速进入数据对象而在得到较少的指令去接触这些数据块用一个基本的指针。内存块的一致性,为了降低移位成本就必须修改内存。为了消除发现和定位所有的函数指针,函数体就应当被放在相同的虚拟地址里进入每一个ISA,也就意味着函数命令的定义在内存中也是一样的,大小也一样,虽然它们的虚拟地址一样但是他们的函数调用地址不同。堆的一致性不是必须的,因为指向堆的指针将会工作的非常正确在移位后由于堆对象在共享空间的地址是动态产生的,不是硬制的二进制代码。堆的一致性是有用的在确保移位后程序有一个准确的记录哪一个堆是利用了的,哪一个是空的。

栈的一致性。对象在栈里可能需要调节或者重排序由于两个原因,许多命令都有硬编码堆栈偏移量,所以这些对象必须被移动在移位期间或者这些偏移量必须放在一致的地方在内存中。还有就是栈中有许多指针指向他们,而移位的时候这些指针都会被修改假如这些对象没有放在一致的地址里。

 

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