首页> 中国专利> 支持动态二进制翻译的多核体系结构

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

摘要

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

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-03-02

    未缴年费专利权终止 IPC(主分类):G06F9/45 授权公告日:20130619 终止日期:20150114 申请日:20110114

    专利权的终止

  • 2013-06-19

    授权

    授权

  • 2011-07-06

    实质审查的生效 IPC(主分类):G06F9/45 申请日:20110114

    实质审查的生效

  • 2011-05-25

    公开

    公开

说明书

技术领域

本发明涉及集成电路领域微处理器体系结构,特别是一种支持动态二进制翻译的多核体系结构。

背景技术

二进制翻译(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=4K×L字,K为1024、L为正整数;目标体系结构二进制码缓冲区存储翻译后的目标体系结构二进制码,容量为N,N=4K×J,K为1024、J为正整数。

页面映射表由源-目标页面映射表、目标-源页面映射表,分别用两片缓冲区进行存储。源-目标页面映射表记录源体系结构二进制码缓冲区与目标体系结构二进制码缓冲区页面对应关系,大小为L行;目标-源页面映射表记录目标体系结构二进制码缓冲区与源体系结构二进制码缓冲区页面映射关系,大小为J行。由于一页源体系结构二进制码页面可能翻译成多页目标体系结构机构页面,目标-源页面映射表同时记录翻译过程中出现的一对多页面映射和翻译后目标体系结构二进制码页面先后顺序。源-目标页面映射表中表项与每个源体系结构二进制码缓冲区页面依照编号一一对应。目标-源页面映射表中映射表项与每个目标体系结构缓冲区页面依照编号一一对应。

源-目标页面映射表为Cache类型存储单元,结构与处理器中Cache结构相同,以线程ID和目的地址作为查询字段,返回是否命中信号和命中表项的编号。源-目标页面映射表每个表项由线程ID、目的地址、目标缓冲页面号、起始页面号、时间戳和状态字段组成。线程ID字段为12位,记录申请此页面翻译的线程ID号,0表示没有对应线程;目的地址字段为30位,记录目标体系结构二进制码缓冲区主存写入地址,若体系结构设计时不允许缓存管理单元将翻译后的页面代码写入主存,此字段无意义留作扩展;目标缓冲页面号字段为(log2J+1)位,存储翻译后代码将被写入的目标体系结构二进制码缓冲区页面的页面号;当一页源体系结构二进制码页面翻译成多页目标体系结构机构二进制码页面时,起始页面号字段为(log2J+1)位,记录处理器核翻译出第一个目标体系结构二进制码页面的页面号;时间戳字段为6位,记录此页面在缓冲区中驻留的时间信息;状态记录3位,该源体系结构二进制码页面所处的状态,有待翻译、正在翻译、翻译完和无效状态。

目标-源页面映射表的每个表项由时标、源缓冲区页号、下一页号组成。时标为6位,记录此目标体系结构缓冲区页面在缓冲区中驻留的时间信息;源缓冲区页号字段为(log2L+1)位,记录此目标体系结构二进制码缓冲区所对应的源体系结构二进制码缓冲区页号;下一页号为(log2L+1)位,记录出现一对多翻译时下一完成翻译的目标体系结构二进制码缓冲区页面号。

通信控制单元与主控处理器和缓存管理单元相连,从主控处理器接收页面配置信息,向缓存管理单元传递页面配置信息;从主控处理器接收翻译请求命令,向缓存管理单元发出缓存申请;当接收到缓存管理单元就绪信号时,通知主控处理器进行二进制页面代码传输;当接收到主控处理器发来的开始传输命令时,通知缓存管理单元进行页面传输;当接收到主控处理器发来的传输终止命令时,通知缓存管理单元页面传输完成。

缓存管理单元与通信控制单元、数据存储单元和处理器核相连,从通信控制单元接收页面配置信息,对源体系结构二进制码缓冲区和目标体系结构二进制码缓冲区按照页面配置信息进行页面划分管理;根据从通信控制单元接收的数据传输控制信号,检测页面映射表信息,若检测到有未翻译页面,则向处理器核发翻译请求信号;根据从处理器核接收的页面访问地址信号,查询访问地址在页面映射表中是否存在,若存在,则从目标体系结构二进制码缓冲区读取访问地址所对应的翻译后页面数据,将翻译后页面数据发送给通信控制单元;若不存在,则从通信控制单元接收源体系结构二进制码页面数据,将其写入源体系结构二进制码缓冲区中。

通信控制单元由多路选择器、通信控制单元控制器、传输总线和三个寄存器组成。三个寄存器分别是动态翻译控制寄存器、目的地址寄存器、线程ID寄存器,在体系结构全局地址空间中统一编址。多路选择器为三选一选择器,与目的地址寄存器、动态翻译控制寄存器和线程ID寄存器相连,根据从通信控制单元控制器来的寄存器选择信号,将传输总线中的数据写入相应寄存器中。

目的地址寄存器存储目标体系结构二进制码页面主存写入地址;线程ID寄存器存储进行动态二进制翻译请求的线程ID号。动态翻译控制寄存器由Page[N-1:0]、Set、Start、End、Req、Ready、Busy、Available、Targe tAddrErr、Process IDErr、BuffErr字段组成。Page[N-1:0]是N位,Page字段存储数据的数值n表示数据存储单元页面以2n×4K字节进行划分;Set位是一位,其值为1时表示通信控制单元需要向缓存管理单元发送页面配置信号和配置信号,通知缓存管理单元以新的页面配置信息对数据存储单元中的源体系结构二进制码缓冲区和目标体系结构二进制码缓冲区重新进行页面划分,其值为0时不做任何处理;Start位是一位,其值为1时表示主控处理器开始进行页面传输;End是一位,其值为1时表明主控处理器页面传输完毕;Req是一位,其值为1时表明主控处理器向缓存管理单元申请源体系结构二进制码缓冲区页面;Ready是一位,其值为1时表明源体系结构二进制码缓冲区就绪,可以进行数据传输;Busy是一位,其值为1表明处理器核正在进行动态二进制翻译;Available是一位,表明源体系结构二进制码缓冲区是否可用,为1表示可用,为0表示不可用;TargetAddrErr是一位,其值为1表明进行动态二进制翻译时发生目标地址未设定错误,在主控处理器尚未设定目的地址寄存器就开始进行页面传输时发生;ProcessIDErr是一位,其值为1表明进行动态二进制翻译时表明发生线程ID未设定错误,在主控处理器开始进行页面传输尚未设定线程ID寄存器时发生;BuffErr是一位,其值为1表明进行动态二进制翻译时发生源体系结构二进制码缓冲区页面未申请错误,在主控处理器没有申请到有效源体系结构二进制码缓冲区页面就启动页面传输。

通信控制单元控制器是一个状态机,与动态翻译控制寄存器、目的地址寄存器、线程ID寄存器相连,并通过传输总线和缓存管理单元相连。

通信控制单元控制器状态机由初始状态、总线监测状态、缓存申请状态、启动传输状态、传输结束状态、故障检测状态组成,状态转移过程是:

处理器核复位后通信控制单元控制器进入初始状态,将动态翻译控制寄存器、目的地址寄存器、线程ID寄存器初始化为0,状态机进入总线监测状态。

在总线监测状态,监控传输总线地址。若传输总线地址与动态翻译控制寄存器、目的地址寄存器、线程ID寄存器的地址之一相等,根据传输总线地址设置寄存器选择选择信号,控制多路选择器将总线上数据写入相应寄存器;从动态翻译控制寄存器读取Req字段,若Req字段为1,进入缓存申请状态;若Req为0,则从动态翻译控制寄存器中读取Start字段,若Start字段为1,则进入启动传输状态。

在缓存申请状态,检测缓存就绪信号是否有效,若有效,置动态翻译控制寄存器Ready字段,跳回总线监测状态;否则向缓存管理单元发缓存申请信号,继续处于缓存申请状态。

在启动传输状态,检测动态翻译控制寄存器Start字段是否有效,若为有效,检查目的地址寄存器和线程ID寄存器是否为0,若两个寄存器都不为0,向缓存管理单元发传输开始信号,进入传输结束状态,否则进入故障检测状态。

在传输结束状态,检测动态翻译控制寄存器End字段,若End为1,向缓存管理单元发传输完毕信号,同时将开始信号置为0,向缓存管理单元发传输完毕信号,同时将目的地址寄存器和线程ID寄存器重置为0,回到总线监测状态,否则继续处于传输结束状态;

在故障检测状态,检测动态翻译控制寄存器Ready字段是否有效,若无效,则置动态翻译控制寄存器BuffErr字段;检测目的地址寄存器寄存器是否为0,若为0则置动态翻译控制寄存器TargerAddrErr字段;检测线程ID寄存器是否为0,若为0,则置动态翻译控制寄存器中ProcessIDErr字段。操作完毕之后跳回总线检测状态。

缓存管理单元从通信控制单元接收缓存申请,当有可替换缓冲区时向通信控制单元发页面就绪信号,同时更新页面映射表即置源体系结构二进制码缓冲中待写入页面所对应;从通信控制单元接收页面传输开始信号,在源缓冲读写控制信号和目标缓冲读写控制信号的控制下,选通源体系结构二进制码缓冲区或者目标体系结构二进制码缓冲区,通过传输总线往源体系结构二进制码缓冲区写入数据或者从目标体系结构二进制码缓冲区中读取数据;从通信控制单元接收页面传输完毕信号,断开源体系结构二进制码缓冲区或者目标系统结构二进制码缓冲区与传输总线的连接;检测源体系结构二进制码缓冲区是否有未翻译页面,若有未翻译页面,选择其中一个未翻译页面,向处理器核发动态二进制翻译申请,通过传输总线将页面数据发送至处理器核;从处理器核接收目标体系结构二进制码写入信号,选取待写入目标体系结构二进制码页面,通过传输总线往目标体系结构二进制码缓冲区写入数据;接收处理器核翻译完毕信号,更新页面映射表信息。

缓存管理单元由页面替换部件、缓存管理控制部件组成。页面替换部件和缓存管理控制部件和数据存储单元中的页面映射表相连,接收从缓存管理控制部件传输来的源页面替换信号,读取页面映射表中源体系结构二进制码页面表项中时间戳字段和状态字段,采用通用的页面替换算法(如LRU算法)从已翻译页面中选取下一次进行传输的页面,向缓存管理控制部件发所选取的源页面号;接收从缓存管理控制部件传输来的目标页面替换信号,读取页面映射表中目标体系结构二进制码页面表项中时标字段和状态字段,采用页面替换算法从已翻译页面中选取下一次进行传输的页面,向缓存管理控制部件发所选取的目标页面号。缓存管理控制部件与页面替换部件、页面映射表和通信控制单元相连,监测从通信控制单元传输来的缓存申请信号,读取页面替换部件返回的源体系结构二进制码缓冲区页号,若页号不为0,则向通信控制单元发缓存就绪信号;监测从通信控制单元传输来的传输开始信号,若有效,则选通原体系结构二进制码缓冲区或者目标体系结构二进制码缓冲区;监测从通信控制单元传输来的传输完毕信号,在传输完毕信号有效时,向页面替换部件发页面替换信号;从外部页面映射表读取源体系结构二进制码页面信息,检测是否有页面处于未翻译状态,若有处于未翻译状态的页面则向处理器核发翻译请求信号,向处理器核传递未翻译页面;监测处理器核发出的目标体系结构二进制码写入信号,若有效时,从替换部件读取目标页面号,根据目标页面号计算目标体系结构二进制码缓冲区页面访问高地址,向目标体系结构二进制码缓冲区发使能信号,将处理器核发来的翻译后目标体系结构二进制码代码写入目标页面号随对应的页面中;监测处理器核发出的目标体系结构二进制码写入信号,若信号从有效跳变成无效时,向页面替换部件发页面替换信号,读取页面替换部件返回的目标页面号,将目标-源页面映射表中当前传输页面所对应表项中下一页号字段置为替换部件返回的目标页面号,并将替换部件返回的目标页面号所对应表项的源缓冲区页号字段置为正在进行翻译的源体系结构二进制码缓冲区页面号;监测处理器核发出的翻译完毕信号,当翻译完毕信号有效时,向页面替换部件发页面替换信号,将目标-源页面映射表中传输页面所对应表项中下一页号字段置为0。

缓存管理控制部件由初始化逻辑、源体系结构二进制码页面传输控制状态机和目标体系结构二进制码页面访问控制状态机组成。初始化逻辑以4K字节为基本单位对源体系结构二进制码缓冲区、目标体系结构二进制码缓冲区进行页面划分,划分后的页面按地址顺序编号,编号从1开始,依次递增。初始化逻辑通过读写总线将源-目标页面映射表和目标-源页面映射表表目录表项全都初始化为0,置缓存就绪信号。初始化完成后,初始化逻辑向源体系结构二进制码页面传输控制状态机和目标体系结构二进制码页面访问控制状态机发初始化完毕信号,启动此两个状态机。

源体系结构二进制码页面传输控制状态机与初始化逻辑、页面映射表和外部通信控制单元相连,由空闲状态、传输请求监控、页面写入准备、传输结束、页面读取准备、页面发送状态和页面发送完毕状态组成,其状态转移关系是:

当处理器核复位时,状态机处于空闲状态,当接收到从初始化逻辑发来的初始化完毕信号有效时转移至传输请求监控状态。

当状态机处于传输请求监控状态时,置源页面替换信号为无效;读取页面替换部件返回的源页面号,若不为0,置缓存就绪信号为有效;若传输开始信号有效,将线程ID和目的地址传递给页面映射表,读取自页面映射表传来的页面命中信号,若页面命中信号为有效则置传输总线中等待信号为有效,进入页面读取准备状态,若页面命中信号无效,进入页面写入准备状态;

当状态机处于页面写入准备状态时,将线程ID和目的地址分别写入页面替换部件所选取的源页面号所对应的源-目标页面映射表表项中相应字段,并将页面映射表项中状态字段置为待翻译表明此页面等待翻译;同时根据页面替换部件返回的源页面号计算出源体系结构二进制码缓冲区页面访问的地址高位,地址高位由源页面号与页面大小相乘获得,向源体系结构二进制码缓冲区发使能信号,进入页面写入状态;

当状态机处于页面写入状态时,若传输完毕信号有效,进入传输结束状态,否则继续处于页面写入状态;

当状态机处于传输结束状态时,将源-目标页面映射表除页面替换部件返回的源页面号所对应源-目标页面映射表表项其余有效映射表项时间戳字段自增1;同时置缓存就绪为无效,向页面替换部件发源页面替换信号,选取下一次传输缓存页面,返回传输监控状态;

当状态机处于页面读取准备状态时,读取源-目标页面映射表线程ID和目的地址字段与缓存管理控制单元控制发来的线程ID和目的地址相等表项的起始页面号字段,以起始页面号为索引查询目标-源页面映射表中相应表项,使能目标体系结构二进制码缓冲区,页面访问的高地址由目标缓冲页面号与页面大小相乘获得,进入页面发送状态;

当状态机处于页面发送状态时,检测通信控制单元发出的传输完毕信号,若有效,进入页面发送完毕状态,否则继续处于页面发送状态;

当状态机处于页面发送完毕状态时,从目标-源页面映射表表项中读取下一页号,将源-目标页面映射表中“命中”的表项中目标缓冲页面号置为所读取的下一页号,返回传输请求监控状态。

目标体系结构二进制码页面访问控制状态机与初始化逻辑、页面映射表和处理器核相连,由空闲状态、翻译状态检测状态、翻译状态、代码写入状态、页面轮换状态组成,其状态转移过程为:

当处理器核复位时,状态机处于空闲状态,当初始化完毕有效时,转移至翻译状态检测状态。

当状态机处于翻译状态检测状态时,扫描源-目的映射表表项中翻译状态字段,若有状态字段为“待翻译”的映射表项,选定源-目的映射表中该表项,根据所选取表项编号计算源体系结构二进制码缓冲区页面访问的高地址,源体系结构二进制码缓冲区页面访问的高地址由所选取表项编号与页面大小相乘获得,向源体系结构二进制码缓冲区发使能信号;根据页面替换部件选取的目标页面号计算目标体系结构二进制码缓冲区页面访问高地址,目标体系结构二进制码缓冲区页面访问的高地址由目标页面号与页面大小相乘获得,并向目标体系结构二进制码缓冲区发使能信号,进入翻译状态;

当状态机处于翻译状态时,检测从处理器核发来的目标体系结构二进制码写入信号是否有效,若有效,向页面替换部件发目标页面替换信号,选取下一传输待写入页面,进入代码写入状态;若翻译结束信号有效,返回翻译状态检测状态;

当状态机处于代码写入状态时,置目标页面替换信号为无效,检测目标体系结构二进制码写入信号是否为有效,若有效继续处于代码写入状态,若为无效则进入页面轮换状态;

当状态机处于页面轮换状态时,根据页面替换部件选取的目标页面号更新待写入目标体系结构二进制码缓冲区高地址,目标体系结构二进制码缓冲区页面访问的高地址由目标页面号与页面大小相乘获得。若此时从处理器核来的翻译完毕信号无效,则更新目标-源页面映射表表项中下一页号字段为页面替换部件选取的目标页面号,否则下一页号字段设为0。同时更新“源缓冲区页号”字段为待翻译映射表项表项编号和“时标”字段为0,其余目标-源页面映射表项时标字段自增1。读取所选定待翻译映射表项,若其起始页面号字段为0,将其设置为当前目标二进制码缓冲区页号,返回翻译状态。

页面替换部件与缓存管理控制单元和页面映射表相连,从缓存管理控制部件读取源页面替换信号,若源页面替换信号有效,则读取源-目标页面映射表,根据源-目标页面映射表项中的时间戳信息,选取时间戳值最大表项所对应的页面作为下一待写入源体系结构二进制码缓冲区页面,将页面映射表发来的源页面号传递给缓存管理控制单元;接收从缓存管理控制单元发来目标页面替换信号,读取目标-源页面映射表,根据目标-源页面映射表项中时标字段,选取时标值最大表项所对应的页面作为下一待写入目标体系结构二进制码缓冲区页面,将目标页面号传递给缓存管理控制单元。

页面替换部件由源体系结构二进制码页面替换状态机和目标体系结构二进制码页面替换状态机组成。处理器核复位时,源体系结构二进制码页面替换状态机和目标体系结构二进制码页面替换状态机启动。

源体系结构二进制码页面替换状态机由空闲状态、页面选择状态、信号检测状态、页面映射更新状态组成,其开机复位状态为空闲状态。其状态转移过程如下所示:

当处于空闲状态时,源-目标页面映射表初始化为0,在源体系结构二进制码缓冲区随机选取任一页面为候选写入页面,将源页面号置成选取页面的页面号发往缓存管理控制单元,同时向通信控制单元发送缓存就绪信号,进入信号检测状态。

当处于信号检测状态时,检测源页面替换信号是否有效,若无效继续处于信号监测状态,否则进入页面选择状态。

当处于页面选择状态时,读取源-目标页面映射表信息,比较状态字段为“翻译完”表项中的时间戳字段数值,选取时间戳字段数值最大表项所对应源体系结构二进制码缓冲区页面为待写入页面,将源页面号置成待写入页面的页面号,置缓存就绪信号有效,进入页面映射更新状态;若所有映射表项的状态都不是“翻译完”,则选取0为待写入页面号,继续处于页面选择状态。

当处于页面映射更新状态时,根据页面选择状态所选取源页面号,更新源-目标页面映射表中所对应表项的中“目标缓冲页面号”、“时间戳”和“起始页面号”字段为0,同时设“状态”字段为未翻译,进入页面信号检测状态。

目标体系结构二进制码页面替换状态机包含的状态和状态转移过程与源体系结构二进制码页面替换状态机转移过程相同,它们之间的差异在于:从信号检测状态转移至页面选择状态时,目标体系结构二进制码页面替换状态机需要目标页面替换信号为有效;在页面选择状态时,读取目标-源映射表表项,选取目标-源映射表表项中时标字段数值最大所对应的目标二进制码缓冲区页面为待写入页面,将目标页面号置成待写入页面的页面号发往缓存管理单元,进入页面映射更新状态;当处于页面更新状态时,根据页面选择状态所选取的目标页面号更新目标-源映射表表项的中“源缓冲页面号”、“时标”和“下一页面号”字段为0。

处理器核是通用或者专用处理器核,与缓存管理单元相连,从缓存管理单元接收翻译请求,通过传输总线从源体系结构二进制缓冲区中读取页面代码,进行动态二进制代码翻译;当翻译出完整页面代码后置目标体系结构写入信号通知缓存管理单元进行页面写入,通过传输总线往目标体系结构二进制码缓冲区中写入页面数据;当动态二进制翻译完毕时,置翻译完毕信号通知缓存管理单元翻译完毕。

采用本发明可以达到以下技术效果:

1、在主存控制器和处理器核间增加翻译缓存单元,翻译缓存单元中缓存管理单元负责源(目标)体系结构二进制码页面通信和管理,减轻了处理器核进行二进制码页面通信和管理开销;

2、翻译缓存单元中数据缓存单元缓存了源(目标)体系结构二进制码页面,一方面降低了处理器核的页面访问延迟,另一方面使得处理器核进行页面访问时避开了一级Cache,避免了与系统中其它应用程序一级Cache的访问冲突,从而减小了处理器核进行动态二进制翻译时一级Cache的失效率;

3、由于减小了通信开销,降低了通信延迟,减小了一级Cache的失效率,提高了处理器核二进制翻译的效率,因此提高了二进制翻译吞吐量高。

附图说明

图1是背景技术所述传统动态二进制翻译流程示意图;

图2是现有多核处理器体系结构示意图;

图3为本发明总体逻辑结构图;

图4为本发明翻译缓存单元逻辑结构图;

图5为本发明的通信控制单元逻辑结构图;

图6为本发明的缓存管理单元逻辑结构图;

图7为本发明缓存管理单元的中缓存管理控制部件示意图;

图8为本发明页面替换部件示意图;

图9为本发明的处理器核进行动态二进制翻译逻辑结构图;

图10为本发明通信控制单元中通信控制单元控制器状态机示意图;

图11为本发明缓存管理单元中源体系结构二进制码页面传输控制状态机示意图;

图12为本发明缓存管理单元中目标体系结构二进制码页面访问控制状态机示意图;

图13为本发明页面替换部件中源(目标)体系结构二进制码页面替换状态机示意图。

具体实施方式

图3为本发明总体逻辑结构图。支持动态二进制翻译的多核体系结构由多个处理器核、一级Cache、翻译缓存单元、二级Cache和主存控制器组成。一级Cache、翻译缓存单元是每个处理器核私有的,一级Cache、翻译缓存单元的数量与处理器核的数量相同,二级Cache和主存控制器由所有处理器核共享。翻译缓存单元与私有它的处理器核、核间通信互联网络和主存控制器相连。

图4为本发明翻译缓存单元逻辑结构图。翻译缓存单元由通信控制单元、缓存管理单元、数据存储单元组成,数据存储单元中包含三个存储区,分别是源体系结构二进制码缓冲区、目标体系结构二进制码缓冲区和页面映射表。源体系结构二进制码缓冲区存储源体系结构二进制码,容量为M,M=4K×L字,K为1024、L为正整数;目标体系结构二进制码缓冲区存储翻译后的目标体系结构二进制码,容量为N,N=4K×J,K为1024、J为正整数。

通信控制单元与主控处理器和缓存管理单元相连,从主控处理器接收页面配置信息,向缓存管理单元传递页面配置信息;从主控处理器接收翻译请求命令,向缓存管理单元发出缓存申请;当接收到缓存管理单元就绪信号时,通知主控处理器进行二进制页面代码传输;当接收到主控处理器发来的开始传输命令时,通知缓存管理单元进行页面传输;当接收到主控处理器发来的传输终止命令时,通知缓存管理单元页面传输完成。

缓存管理单元与通信控制单元、数据存储单元和处理器核相连,从通信控制单元接收页面配置信息,对源体系结构二进制码缓冲区和目标体系结构二进制码缓冲区按照页面配置信息进行页面划分管理;根据从通信控制单元接收的数据传输控制信号,检测页面映射表信息,若检测到有未翻译页面,则向处理器核发翻译请求信号;根据从处理器核接收的页面访问地址信号,查询访问地址在页面映射表中是否存在,若存在,则从目标体系结构二进制码缓冲区读取访问地址所对应的翻译后页面数据,将翻译后页面数据发送给通信控制单元;若不存在,则从通信控制单元接收源体系结构二进制码页面数据,将其写入源体系结构二进制码缓冲区中。

图5为本发明的通信控制单元逻辑结构图。通信控制单元由多路选择器、通信控制单元控制器、传输总线和三个寄存器组成。三个寄存器分别是动态翻译控制寄存器、目的地址寄存器、线程ID寄存器,在体系结构全局地址空间中统一编址。多路选择器为三选一选择器,与目的地址寄存器、动态翻译控制寄存器和线程ID寄存器相连,根据从通信控制单元控制器来的寄存器选择信号,将传输总线中的数据写入相应寄存器中。

图6为本发明的缓存管理单元逻辑结构图。缓存管理单元从通信控制单元接收缓存申请,当有可替换缓冲区时向通信控制单元发页面就绪信号,同时更新页面映射表即置源体系结构二进制码缓冲中待写入页面所对应;从通信控制单元接收页面传输开始信号,在源缓冲读写控制信号和目标缓冲读写控制信号的控制下,选通源体系结构二进制码缓冲区或者目标体系结构二进制码缓冲区,通过传输总线往源体系结构二进制码缓冲区写入数据或者从目标体系结构二进制码缓冲区中读取数据;从通信控制单元接收页面传输完毕信号,断开源体系结构二进制码缓冲区或者目标系统结构二进制码缓冲区与传输总线的连接;检测源体系结构二进制码缓冲区是否有未翻译页面,若有未翻译页面,选择其中一个未翻译页面,向处理器核发动态二进制翻译申请,通过传输总线将页面数据发送至处理器核;从处理器核接收目标体系结构二进制码写入信号,选取待写入目标体系结构二进制码页面,通过传输总线往目标体系结构二进制码缓冲区写入数据;接收处理器核翻译完毕信号,更新页面映射表信息。

缓存管理单元由页面替换部件、缓存管理控制部件组成。页面替换部件和缓存管理控制部件和数据存储单元中的页面映射表相连,接收从缓存管理控制部件传输来的源页面替换信号,读取页面映射表中源体系结构二进制码页面表项中时间戳字段和状态字段,采用通用的页面替换算法(如LRU算法)从已翻译页面中选取下一次进行传输的页面,向缓存管理控制部件发所选取的源页面号;接收从缓存管理控制部件传输来的目标页面替换信号,读取页面映射表中目标体系结构二进制码页面表项中时标字段和状态字段,采用页面替换算法从已翻译页面中选取下一次进行传输的页面,向缓存管理控制部件发所选取的目标页面号。缓存管理控制部件与页面替换部件、页面映射表和通信控制单元相连,监测从通信控制单元传输来的缓存申请信号,读取页面替换部件返回的源体系结构二进制码缓冲区页号,若页号不为0,则向通信控制单元发缓存就绪信号;监测从通信控制单元传输来的传输开始信号,若有效,则选通原体系结构二进制码缓冲区或者目标体系结构二进制码缓冲区;监测从通信控制单元传输来的传输完毕信号,在传输完毕信号有效时,向页面替换部件发页面替换信号;从外部页面映射表读取源体系结构二进制码页面信息,检测是否有页面处于未翻译状态,若有处于未翻译状态的页面则向处理器核发翻译请求信号,向处理器核传递未翻译页面;监测处理器核发出的目标体系结构二进制码写入信号,若有效时,从替换部件读取目标页面号,根据目标页面号计算目标体系结构二进制码缓冲区页面访问高地址,向目标体系结构二进制码缓冲区发使能信号,将处理器核发来的翻译后目标体系结构二进制码代码写入目标页面号随对应的页面中;监测处理器核发出的目标体系结构二进制码写入信号,若信号从有效跳变成无效时,向页面替换部件发页面替换信号,读取页面替换部件返回的目标页面号,将目标-源页面映射表中当前传输页面所对应表项中下一页号字段置为替换部件返回的目标页面号,并将替换部件返回的目标页面号所对应表项的源缓冲区页号字段置为正在进行翻译的源体系结构二进制码缓冲区页面号;监测处理器核发出的翻译完毕信号,当翻译完毕信号有效时,向页面替换部件发页面替换信号,将目标-源页面映射表中传输页面所对应表项中下一页号字段置为0。

图7为本发明缓存管理单元的中缓存管理控制部件示意图。缓存管理控制部件由初始化逻辑、源体系结构二进制码页面传输控制状态机和目标体系结构二进制码页面访问控制状态机组成。初始化逻辑以4K字节为基本单位对源体系结构二进制码缓冲区、目标体系结构二进制码缓冲区进行页面划分,划分后的页面按地址顺序编号,编号从1开始,依次递增。初始化逻辑通过读写总线将源-目标页面映射表和目标-源页面映射表表目录表项全都初始化为0,置缓存就绪信号。初始化完成后,初始化逻辑向源体系结构二进制码页面传输控制状态机和目标体系结构二进制码页面访问控制状态机发初始化完毕信号,启动此两个状态机。

图8为本发明页面替换部件示意图。页面替换部件与缓存管理控制单元和页面映射表相连,从缓存管理控制部件读取源页面替换信号,若源页面替换信号有效,则读取源-目标页面映射表,根据源-目标页面映射表项中的时间戳信息,选取时间戳值最大表项所对应的页面作为下一待写入源体系结构二进制码缓冲区页面,将页面映射表发来的源页面号传递给缓存管理控制单元;接收从缓存管理控制单元发来目标页面替换信号,读取目标-源页面映射表,根据目标-源页面映射表项中时标字段,选取时标值最大表项所对应的页面作为下一待写入目标体系结构二进制码缓冲区页面,将目标页面号传递给缓存管理控制单元。

图9为本发明的处理器核进行动态二进制翻译逻辑结构图。处理器核是通用或者专用处理器核,与缓存管理单元相连,从缓存管理单元接收翻译请求,通过传输总线从源体系结构二进制缓冲区中读取页面代码,进行动态二进制代码翻译;当翻译出完整页面代码后置目标体系结构写入信号通知缓存管理单元进行页面写入,通过传输总线往目标体系结构二进制码缓冲区中写入页面数据;当动态二进制翻译完毕时,置翻译完毕信号通知缓存管理单元翻译完毕。

图10为本发明通信控制单元中通信控制单元控制器状态机示意图。通信控制单元控制器是一个状态机,与动态翻译控制寄存器、目的地址寄存器、线程ID寄存器相连,并通过传输总线和缓存管理单元相连。通信控制单元控制器状态机由初始状态、总线监测状态、缓存申请状态、启动传输状态、传输结束状态、故障检测状态组成。

图11为本发明缓存管理单元中源体系结构二进制码页面传输控制状态机示意图。源体系结构二进制码页面传输控制状态机与初始化逻辑、页面映射表和外部通信控制单元相连,由空闲状态、传输请求监控、页面写入准备、传输结束、页面读取准备、页面发送状态和页面发送完毕状态组成。

图12为本发明缓存管理单元中目标体系结构二进制码页面访问控制状态机示意图。目标体系结构二进制码页面访问控制状态机与初始化逻辑、页面映射表和处理器核相连,由空闲状态、翻译状态检测状态、翻译状态、代码写入状态、页面轮换状态组成。

图13为本发明页面替换部件中源(目标)体系结构二进制码页面替换状态机示意图。源(目标)体系结构二进制码页面替换状态机由空闲状态、页面选择状态、信号检测状态、页面映射更新状态组成。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号