支持动态二进制翻译的多核体系结构制造技术

技术编号:6006321 阅读:330 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种支持动态二进制翻译的多核体系结构,目的是解决动态二进制翻译过程中的Cache访问冲突和主存冲突等问题。本发明专利技术由多个处理器核、一级Cache、翻译缓存单元、二级Cache和主存控制器组成。一级Cache、翻译缓存单元是每个处理器核私有的,二级Cache和主存控制器由所有处理器核共享。翻译缓存单元由通信控制单元、缓存管理单元、数据存储单元组成。通信控制单元由多路选择器、通信控制单元控制器、传输总线和三个寄存器组成,缓存管理单元由页面替换部件、缓存管理控制部件组成,数据存储单元由源体系结构二进制码缓冲区、目标体系结构二进制码缓冲区和页面映射表组成。采用本发明专利技术可使得数据访问延迟低、翻译吞吐量高、Cache访问冲突小。

【技术实现步骤摘要】

本专利技术涉及集成电路领域微处理器体系结构,特别是一种支持动态二进制翻译的 多核体系结构。
技术介绍
二进制翻译(Binary Translation)如图1所示,用于模拟异构计算机体系结构, 执行没有源程序的二进制代码,辅助从一种体系结构或操作系统向另一种体系结构或操作 系统迁移,是计算系统虚拟化一种重要途径。动态二进制翻译器一般包括翻译模块和执行 模块,与之相对应的,翻译过程分为翻译阶段和执行阶段。在翻译阶段,翻译模块读入源机 器码块,将其转化为目标机上可执行的二进制代码块。在执行阶段,执行模块从指定位置读 取二进制代码块并运行。当执行到一条未翻译的指令,或者频繁执行的代码块入口时,执行 模块将控制权交给翻译模块,进行后续的翻译或再优化工作。翻译阶段和执行阶段交替进 行,直到完成整个程序的翻译和执行。现有的多核体系结构如图2所示,每个处理器核拥有私有一级Cache和共享二级 Cache,处理器核之间通信通过互联网络进行,同时共享主存控制器进行访存操作。操作系 统可以选取任意一个处理器核作为动态二进制翻译的主控处理器,通过主控处理器调用其 它处理器核进行动态二进制翻译。处理器核通过主存控制器从主存读取数据,置于共享和 二级Cache和私有一级Cache。由于Cache的容量有限,二级Cache和私有一级Cache不能 容纳应用程序中所有数据,不同的数据会映射到相同的二级Cache和私有的一级Cache中, 从而引起地址冲突。发生地址冲突时,现有多核体系结构作废原私有一级Cache和共享二 级Cache行中数据,将其替换为新数据。当下回再次访问原数据时,处理器核必须重新从贮 存中读取数据,将其置于私有一级Cache和共享二级Cache中。在此体系结构下,动态二进制翻译器在运行过程中与系统其它线程共享主存控制 器和二级Cache。动态二进制翻译器在翻译过程中频繁从主存中读取源体系结构二进制码, 往主存中写入翻译后目标体系结构二进制码。翻译器翻译过程中对源体系结构程序进行基 本块划分,以基本块为单元进行翻译。当相应的基本块翻译完成时,依据程序控制流中基本 块的跳转关系翻译下一基本块。对基本块采用映射表或者类似模式进行翻译,翻译完的指 令代码不再使用,从而导致动态二进制翻译对数据使用时间局部性和空间局部性较差,对 Cache的利用率低下。在翻译器读取源二进制代码和其他辅助数据过程中,处理器根据共享 的二级Cache替换策略作废二级Cache中的过时数据,容易与系统中其他Cache敏感型应 用程序发生共享的二级Cache访问冲突。此外动态二进制翻译器需要从主存频繁读取源二 进制代码和往主存写入目标二进制代码,对系统访存带宽占用较大。频繁的访存操作一方 面影响动态二进制翻译器自身执行性能,另一方面与系统中诸如流媒体等访存密集型应用 程序发生访存冲突,从而导致系统整体性能的下降。综上所述,目前急需一种新的多核体系结构来解决动态二进制翻译过程中的 Cache访问冲突和主存冲突等问题。针对动态二进制翻译过程对不同数据类型的访问特性设置相应缓存,增加访问通道,使翻译器在二进制翻译过程中并发使用不同类型的片上缓 存,通过这种方式一方面降低动态二进制翻译器对主存的访问频率,提高访存带宽,从而加 速翻译过程;另一方面减少动态二进制翻译器与系统中其它线程的共享Cache访问冲突, 从而提高整个系统的共享Cache利用率。
技术实现思路
本专利技术要解决的技术问题是提供一种新的多核体系结构,解决动态二进制翻译过 程中的Cache访问冲突和主存冲突等问题,使得数据访问延迟低、翻译吞吐量高、Cache访 问冲突小。本专利技术的技术方案是支持动态二进制翻译的多核体系结构由多个处理器核、一级Cache、翻译缓存单 元、二级Cache和主存控制器组成。一级Cache、翻译缓存单元是每个处理器核私有的,一级 Cache、翻译缓存单元的数量与处理器核的数量相同,二级Cache和主存控制器由所有处理 器核共享。翻译缓存单元与私有它的处理器核、核间通信互联网络和主存控制器相连。翻译缓存单元由通信控制单元、缓存管理单元、数据存储单元组成,数据存储单元 中包含三个存储区,分别是源体系结构二进制码缓冲区、目标体系结构二进制码缓冲区和 页面映射表。源体系结构二进制码缓冲区存储源体系结构二进制码,容量为M,M = 4KXL 字,K为1024、L为正整数;目标体系结构二进制码缓冲区存储翻译后的目标体系结构二进 制码,容量为N,N = 4KXJ,K为10M、J为正整数。页面映射表由源-目标页面映射表、目标-源页面映射表,分别用两片缓冲区进行 存储。源-目标页面映射表记录源体系结构二进制码缓冲区与目标体系结构二进制码缓冲 区页面对应关系,大小为L行;目标-源页面映射表记录目标体系结构二进制码缓冲区与源 体系结构二进制码缓冲区页面映射关系,大小为J行。由于一页源体系结构二进制码页面 可能翻译成多页目标体系结构机构页面,目标-源页面映射表同时记录翻译过程中出现的 一对多页面映射和翻译后目标体系结构二进制码页面先后顺序。源-目标页面映射表中表 项与每个源体系结构二进制码缓冲区页面依照编号一一对应。目标-源页面映射表中映射 表项与每个目标体系结构缓冲区页面依照编号一一对应。源-目标页面映射表为Cache类型存储单元,结构与处理器中Cache结构相同,以 线程ID和目的地址作为查询字段,返回是否命中信号和命中表项的编号。源-目标页面映 射表每个表项由线程ID、目的地址、目标缓冲页面号、起始页面号、时间戳和状态字段组成。 线程ID字段为12位,记录申请此页面翻译的线程ID号,0表示没有对应线程;目的地址字 段为30位,记录目标体系结构二进制码缓冲区主存写入地址,若体系结构设计时不允许缓 存管理单元将翻译后的页面代码写入主存,此字段无意义留作扩展;目标缓冲页面号字段 为(lo&J+l)位,存储翻译后代码将被写入的目标体系结构二进制码缓冲区页面的页面号; 当一页源体系结构二进制码页面翻译成多页目标体系结构机构二进制码页面时,起始页面 号字段为(lc^J+Ι)位,记录处理器核翻译出第一个目标体系结构二进制码页面的页面号; 时间戳字段为6位,记录此页面在缓冲区中驻留的时间信息;状态记录3位,该源体系结构 二进制码页面所处的状态,有待翻译、正在翻译、翻译完和无效状态。目标-源页面映射表的每个表项由时标、源缓冲区页号、下一页号组成。时标为6位,记录此目标体系结构缓冲区页面在缓冲区中驻留的时间信息;源缓冲区页号字段为 (log2L+l)位,记录此目标体系结构二进制码缓冲区所对应的源体系结构二进制码缓冲区 页号;下一页号为(log2L+l)位,记录出现一对多翻译时下一完成翻译的目标体系结构二进 制码缓冲区页面号。通信控制单元与主控处理器和缓存管理单元相连,从主控处理器接收页面配置信 息,向缓存管理单元传递页面配置信息;从主控处理器接收翻译请求命令,向缓存管理单元 发出缓存申请;当接收到缓存管理单元就绪信号时,通知主控处理器进行二进制页面代码 传输;当接收到主控处理器发来的开始传输命令时,通知缓存管理单元进行页面传输;当 接收到主控处理器发来的传输终止命令时,通知缓存管理单元页面传输本文档来自技高网
...

【技术保护点】
一种支持动态二进制翻译的多核体系结构,包括多个处理器核、一级Cache、二级Cache和主存控制器,一级Cache是每个处理器核私有的,其数量与处理器核的数量相同,二级Cache和主存控制器由所有处理器核共享;其特征在于支持动态二进制翻译的多核体系结构还包括翻译缓存单元,翻译缓存单元是每个处理器核私有的,其数量与处理器核的数量相同,翻译缓存单元与私有它的处理器核、核间通信互联网络和主存控制器相连;翻译缓存单元由通信控制单元、缓存管理单元、数据存储单元组成,数据存储单元由源体系结构二进制码缓冲区、目标体系结构二进制码缓冲区和页面映射表组成;源体系结构二进制码缓冲区存储源体系结构二进制码,目标体系结构二进制码缓冲区存储翻译后的目标体系结构二进制码;页面映射表由源-目标页面映射表、目标-源页面映射表组成;源-目标页面映射表记录源体系结构二进制码缓冲区与目标体系结构二进制码缓冲区页面对应关系;目标-源页面映射表记录目标体系结构二进制码缓冲区与源体系结构二进制码缓冲区页面映射关系,同时记录翻译过程中出现的一对多页面映射和翻译后目标体系结构二进制码页面先后顺序;源-目标页面映射表中表项与每个源体系结构二进制码缓冲区页面依照编号一一对应,目标-源页面映射表中映射表项与每个目标体系结构缓冲区页面依照编号一一对应;源-目标页面映射表为Cache类型存储单元,结构与处理器中Cache结构相同,以线程ID和目的地址作为查询字段,返回是否命中信号和命中表项的编号;源-目标页面映射表每个表项由线程ID、目的地址、目标缓冲页面号、起始页面号、时间戳和状态字段组成;目标-源页面映射表的每个表项由时标、源缓冲区页号、下一页号组成;通信控制单元与主控处理器和缓存管理单元相连,从主控处理器接收页面配置信息,向缓存管理单元传递页面配置信息;从主控处理器接收翻译请求命令,向缓存管理单元发出缓存申请;当接收到缓存管理单元就绪信号时,通知主控处理器进行二进制页面代码传输;当接收到主控处理器发来的开始传输命令时,通知缓存管理单元进行页面传输;当接收到主控处理器发来的传输终止命令时,通知缓存管理单元页面传输完成;缓存管理单元与通信控制单元、数据存储单元和处理器核相连,从通信控制单元接收页面配置信息,对源体系结构二进制码缓冲区和目标体系结构二进制码缓冲区按照页面配置信息进行页面划分管理;从通信控制单元接收缓存申请,当有可替换缓冲区时向通信控制单元发页面就绪信号,同时更新页面映射表即置源体系结构二进制码缓冲中待写入页面所对应;从通信控制单元接收页面传输开始信号,在源缓冲读写控制信号和目标缓冲读写控制信号的控制下,选通源体系结构二进制码缓冲区或者目标体系结构二进制码缓冲区,通过传输总线往源体系结构二进制码缓冲区写入数据或者从目标体系结构二进制码缓冲区中读取数据;从通信控制单元接收页面传输完毕信号,断开源体系结构二进制码缓冲区或者目标系统结构二进制码缓冲区与传输总线的连接;检测源体系结构二进制码缓冲区是否有未翻译页面,若有未翻译页面,选择其中一个未翻译页面,向处理器核发动态二进制翻译申请,通过传输总线将页面数据发送至处理器核;从处理器核接收目标体系结构二进制码写入信号,选取待写入目标体系结构二进制码页面,通过传输总线往目标体系结构二进制码缓冲区写入数据;接收处理器核翻译完毕信号,更新页面映射表信息;通信控制单元由多路选择器、通信控制单元控制器、传输总线和三个寄存器组成,三个寄存器分别是动态翻译控制寄存器、目的地址寄存器、线程ID寄存器,在体系结构全局地址空间中统一编址;多路选择器为三选一选择器,与目的地址寄存器、动态翻译控制寄存器和线程ID寄存器相连,根据从通信控制单元控制器来的寄存器选择信号,将传输总线中的数据写入相应寄存器中;目的地址寄存器存储目标体系结构二进制码页面主存写入地址;线程ID寄存器存储进行动态二进制翻译请求的线程ID号;动态翻译控制寄存器由Page[N-1:0]、Set、Start、End、Req、Ready、Busy、Available、TargetAddrErr、Process IDErr、BuffErr字段组成;Page[N-1:0]字段存储数据的数值n表示数据存储单元页面以2n×4K字节进行划分;Set位为1时表示通信控制单元需要向缓存管理单元发送页面配置信号和配置信号,通知缓存管理单元以新的页面配置信息对数据存储单元中的源体系结构二进制码缓冲区和目标体系结构二进制码缓冲区重新进行页面划分,其值为0时不做任何处理;Start位为1时表示主控处理器开始进行页面传输;End为1时表明主控处理器页面传输完毕;Req为1时表明主控处理器向缓存管理单元申请源体系结构二进制码缓冲区页面;Ready为1时表明源体系结构二进制码缓冲区就绪,可以进行数据传输;Busy为1时...

【技术特征摘要】

【专利技术属性】
技术研发人员:王志英赖鑫沈立徐帆陈微陈顼颢郑重朱天龙陆华俊游良帅
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1