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

文档序号:6353174阅读:289来源:国知局
专利名称:支持动态二进制翻译的多核体系结构的制作方法
技术领域
本发明涉及集成电路领域微处理器体系结构,特别是一种支持动态二进制翻译的 多核体系结构。
背景技术
二进制翻译(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)位,记录出现一对多翻译时下一完成翻译的目标体系结构二进 制码缓冲区页面号。通信控制单元与主控处理器和缓存管理单元相连,从主控处理器接收页面配置信 息,向缓存管理单元传递页面配置信息;从主控处理器接收翻译请求命令,向缓存管理单元 发出缓存申请;当接收到缓存管理单元就绪信号时,通知主控处理器进行二进制页面代码 传输;当接收到主控处理器发来的开始传输命令时,通知缓存管理单元进行页面传输;当 接收到主控处理器发来的传输终止命令时,通知缓存管理单元页面传输完成。缓存管理单元与通信控制单元、数据存储单元和处理器核相连,从通信控制单元 接收页面配置信息,对源体系结构二进制码缓冲区和目标体系结构二进制码缓冲区按照页 面配置信息进行页面划分管理;根据从通信控制单元接收的数据传输控制信号,检测页面 映射表信息,若检测到有未翻译页面,则向处理器核发翻译请求信号;根据从处理器核接收 的页面访问地址信号,查询访问地址在页面映射表中是否存在,若存在,则从目标体系结构 二进制码缓冲区读取访问地址所对应的翻译后页面数据,将翻译后页面数据发送给通信控 制单元;若不存在,则从通信控制单元接收源体系结构二进制码页面数据,将其写入源体系 结构二进制码缓冲区中。通信控制单元由多路选择器、通信控制单元控制器、传输总线和三个寄存器组成。 三个寄存器分别是动态翻译控制寄存器、目的地址寄存器、线程ID寄存器,在体系结构全 局地址空间中统一编址。多路选择器为三选一选择器,与目的地址寄存器、动态翻译控制寄 存器和线程ID寄存器相连,根据从通信控制单元控制器来的寄存器选择信号,将传输总线 中的数据写入相应寄存器中。目的地址寄存器存储目标体系结构二进制码页面主存写入地址;线程ID寄存器 存储进行动态二进制翻译请求的线程ID号。动态翻译控制寄存器由Page[N-l:0]、Mt、 Start、End、Req、Ready、Busy、Available、Targe tAddrErrΛ Process IDErrΛ BuffErr 字段 组成。Page[N-l:0]是N位,I^age字段存储数据的数值η表示数据存储单元页面以2nX4K 字节进行划分;Set位是一位,其值为1时表示通信控制单元需要向缓存管理单元发送页面 配置信号和配置信号,通知缓存管理单元以新的页面配置信息对数据存储单元中的源体系 结构二进制码缓冲区和目标体系结构二进制码缓冲区重新进行页面划分,其值为0时不做 任何处理Jtart位是一位,其值为1时表示主控处理器开始进行页面传输;End是一位,其 值为1时表明主控处理器页面传输完毕;Req是一位,其值为1时表明主控处理器向缓存管 理单元申请源体系结构二进制码缓冲区页面;Ready是一位,其值为1时表明源体系结构 二进制码缓冲区就绪,可以进行数据传输;Busy是一位,其值为1表明处理器核正在进行动 态二进制翻译;Available是一位,表明源体系结构二进制码缓冲区是否可用,为1表示可 用,为0表示不可用;TargetAddrErr是一位,其值为1表明进行动态二进制翻译时发生目 标地址未设定错误,在主控处理器尚未设定目的地址寄存器就开始进行页面传输时发生; ProcessIDErr是一位,其值为1表明进行动态二进制翻译时表明发生线程ID未设定错误, 在主控处理器开始进行页面传输尚未设定线程ID寄存器时发生;BuffEn 是一位,其值为1 表明进行动态二进制翻译时发生源体系结构二进制码缓冲区页面未申请错误,在主控处理器没有申请到有效源体系结构二进制码缓冲区页面就启动页面传输。通信控制单元控制器是一个状态机,与动态翻译控制寄存器、目的地址寄存器、线 程ID寄存器相连,并通过传输总线和缓存管理单元相连。通信控制单元控制器状态机由初始状态、总线监测状态、缓存申请状态、启动传输 状态、传输结束状态、故障检测状态组成,状态转移过程是处理器核复位后通信控制单元控制器进入初始状态,将动态翻译控制寄存器、目 的地址寄存器、线程ID寄存器初始化为0,状态机进入总线监测状态。在总线监测状态,监控传输总线地址。若传输总线地址与动态翻译控制寄存器、目 的地址寄存器、线程ID寄存器的地址之一相等,根据传输总线地址设置寄存器选择选择信 号,控制多路选择器将总线上数据写入相应寄存器;从动态翻译控制寄存器读取Req字段, 若Req字段为1,进入缓存申请状态;若Req为0,则从动态翻译控制寄存器中读取^art字 段,若Mart字段为1,则进入启动传输状态。在缓存申请状态,检测缓存就绪信号是否有效,若有效,置动态翻译控制寄存器 Ready字段,跳回总线监测状态;否则向缓存管理单元发缓存申请信号,继续处于缓存申请 状态。在启动传输状态,检测动态翻译控制寄存器Mart字段是否有效,若为有效,检查 目的地址寄存器和线程ID寄存器是否为0,若两个寄存器都不为0,向缓存管理单元发传输 开始信号,进入传输结束状态,否则进入故障检测状态。在传输结束状态,检测动态翻译控制寄存器End字段,若End为1,向缓存管理单元 发传输完毕信号,同时将开始信号置为0,向缓存管理单元发传输完毕信号,同时将目的地 址寄存器和线程ID寄存器重置为0,回到总线监测状态,否则继续处于传输结束状态;在故障检测状态,检测动态翻译控制寄存器Ready字段是否有效,若无效,则置动 态翻译控制寄存器BufTErr字段;检测目的地址寄存器寄存器是否为0,若为0则置动态翻 译控制寄存器TargerAddrErr字段;检测线程ID寄存器是否为0,若为0,则置动态翻译控 制寄存器中ftOcessIDErr字段。操作完毕之后跳回总线检测状态。缓存管理单元从通信控制单元接收缓存申请,当有可替换缓冲区时向通信控制单 元发页面就绪信号,同时更新页面映射表即置源体系结构二进制码缓冲中待写入页面所对 应;从通信控制单元接收页面传输开始信号,在源缓冲读写控制信号和目标缓冲读写控制 信号的控制下,选通源体系结构二进制码缓冲区或者目标体系结构二进制码缓冲区,通过 传输总线往源体系结构二进制码缓冲区写入数据或者从目标体系结构二进制码缓冲区中 读取数据;从通信控制单元接收页面传输完毕信号,断开源体系结构二进制码缓冲区或者 目标系统结构二进制码缓冲区与传输总线的连接;检测源体系结构二进制码缓冲区是否有 未翻译页面,若有未翻译页面,选择其中一个未翻译页面,向处理器核发动态二进制翻译申 请,通过传输总线将页面数据发送至处理器核;从处理器核接收目标体系结构二进制码写 入信号,选取待写入目标体系结构二进制码页面,通过传输总线往目标体系结构二进制码 缓冲区写入数据;接收处理器核翻译完毕信号,更新页面映射表信息。缓存管理单元由页面替换部件、缓存管理控制部件组成。页面替换部件和缓存管 理控制部件和数据存储单元中的页面映射表相连,接收从缓存管理控制部件传输来的源页 面替换信号,读取页面映射表中源体系结构二进制码页面表项中时间戳字段和状态字段,采用通用的页面替换算法(如LRU算法)从已翻译页面中选取下一次进行传输的页面,向 缓存管理控制部件发所选取的源页面号;接收从缓存管理控制部件传输来的目标页面替换 信号,读取页面映射表中目标体系结构二进制码页面表项中时标字段和状态字段,采用页 面替换算法从已翻译页面中选取下一次进行传输的页面,向缓存管理控制部件发所选取的 目标页面号。缓存管理控制部件与页面替换部件、页面映射表和通信控制单元相连,监测从 通信控制单元传输来的缓存申请信号,读取页面替换部件返回的源体系结构二进制码缓冲 区页号,若页号不为0,则向通信控制单元发缓存就绪信号;监测从通信控制单元传输来的 传输开始信号,若有效,则选通原体系结构二进制码缓冲区或者目标体系结构二进制码缓 冲区;监测从通信控制单元传输来的传输完毕信号,在传输完毕信号有效时,向页面替换部 件发页面替换信号;从外部页面映射表读取源体系结构二进制码页面信息,检测是否有页 面处于未翻译状态,若有处于未翻译状态的页面则向处理器核发翻译请求信号,向处理器 核传递未翻译页面;监测处理器核发出的目标体系结构二进制码写入信号,若有效时,从替 换部件读取目标页面号,根据目标页面号计算目标体系结构二进制码缓冲区页面访问高地 址,向目标体系结构二进制码缓冲区发使能信号,将处理器核发来的翻译后目标体系结构 二进制码代码写入目标页面号随对应的页面中;监测处理器核发出的目标体系结构二进制 码写入信号,若信号从有效跳变成无效时,向页面替换部件发页面替换信号,读取页面替换 部件返回的目标页面号,将目标-源页面映射表中当前传输页面所对应表项中下一页号字 段置为替换部件返回的目标页面号,并将替换部件返回的目标页面号所对应表项的源缓冲 区页号字段置为正在进行翻译的源体系结构二进制码缓冲区页面号;监测处理器核发出的 翻译完毕信号,当翻译完毕信号有效时,向页面替换部件发页面替换信号,将目标-源页面 映射表中传输页面所对应表项中下一页号字段置为0。缓存管理控制部件由初始化逻辑、源体系结构二进制码页面传输控制状态机和目 标体系结构二进制码页面访问控制状态机组成。初始化逻辑以4K字节为基本单位对源体 系结构二进制码缓冲区、目标体系结构二进制码缓冲区进行页面划分,划分后的页面按地 址顺序编号,编号从1开始,依次递增。初始化逻辑通过读写总线将源-目标页面映射表和 目标-源页面映射表表目录表项全都初始化为0,置缓存就绪信号。初始化完成后,初始化 逻辑向源体系结构二进制码页面传输控制状态机和目标体系结构二进制码页面访问控制 状态机发初始化完毕信号,启动此两个状态机。源体系结构二进制码页面传输控制状态机与初始化逻辑、页面映射表和外部通信 控制单元相连,由空闲状态、传输请求监控、页面写入准备、传输结束、页面读取准备、页面 发送状态和页面发送完毕状态组成,其状态转移关系是当处理器核复位时,状态机处于空闲状态,当接收到从初始化逻辑发来的初始化 完毕信号有效时转移至传输请求监控状态。当状态机处于传输请求监控状态时,置源页面替换信号为无效;读取页面替换部 件返回的源页面号,若不为0,置缓存就绪信号为有效;若传输开始信号有效,将线程ID和 目的地址传递给页面映射表,读取自页面映射表传来的页面命中信号,若页面命中信号为 有效则置传输总线中等待信号为有效,进入页面读取准备状态,若页面命中信号无效,进入 页面写入准备状态;当状态机处于页面写入准备状态时,将线程ID和目的地址分别写入页面替换部件所选取的源页面号所对应的源-目标页面映射表表项中相应字段,并将页面映射表项中 状态字段置为待翻译表明此页面等待翻译;同时根据页面替换部件返回的源页面号计算出 源体系结构二进制码缓冲区页面访问的地址高位,地址高位由源页面号与页面大小相乘获 得,向源体系结构二进制码缓冲区发使能信号,进入页面写入状态;当状态机处于页面写入状态时,若传输完毕信号有效,进入传输结束状态,否则继 续处于页面写入状态;当状态机处于传输结束状态时,将源-目标页面映射表除页面替换部件返回的源 页面号所对应源-目标页面映射表表项其余有效映射表项时间戳字段自增1 ;同时置缓存 就绪为无效,向页面替换部件发源页面替换信号,选取下一次传输缓存页面,返回传输监控 状态;当状态机处于页面读取准备状态时,读取源-目标页面映射表线程ID和目的地址 字段与缓存管理控制单元控制发来的线程ID和目的地址相等表项的起始页面号字段,以 起始页面号为索引查询目标-源页面映射表中相应表项,使能目标体系结构二进制码缓冲 区,页面访问的高地址由目标缓冲页面号与页面大小相乘获得,进入页面发送状态;当状态机处于页面发送状态时,检测通信控制单元发出的传输完毕信号,若有效, 进入页面发送完毕状态,否则继续处于页面发送状态;当状态机处于页面发送完毕状态时,从目标-源页面映射表表项中读取下一页 号,将源-目标页面映射表中“命中”的表项中目标缓冲页面号置为所读取的下一页号,返 回传输请求监控状态。目标体系结构二进制码页面访问控制状态机与初始化逻辑、页面映射表和处理器 核相连,由空闲状态、翻译状态检测状态、翻译状态、代码写入状态、页面轮换状态组成,其 状态转移过程为当处理器核复位时,状态机处于空闲状态,当初始化完毕有效时,转移至翻译状态 检测状态。当状态机处于翻译状态检测状态时,扫描源-目的映射表表项中翻译状态字段, 若有状态字段为“待翻译”的映射表项,选定源-目的映射表中该表项,根据所选取表项编 号计算源体系结构二进制码缓冲区页面访问的高地址,源体系结构二进制码缓冲区页面访 问的高地址由所选取表项编号与页面大小相乘获得,向源体系结构二进制码缓冲区发使能 信号;根据页面替换部件选取的目标页面号计算目标体系结构二进制码缓冲区页面访问 高地址,目标体系结构二进制码缓冲区页面访问的高地址由目标页面号与页面大小相乘获 得,并向目标体系结构二进制码缓冲区发使能信号,进入翻译状态;当状态机处于翻译状态时,检测从处理器核发来的目标体系结构二进制码写入信 号是否有效,若有效,向页面替换部件发目标页面替换信号,选取下一传输待写入页面,进 入代码写入状态;若翻译结束信号有效,返回翻译状态检测状态;当状态机处于代码写入状态时,置目标页面替换信号为无效,检测目标体系结构 二进制码写入信号是否为有效,若有效继续处于代码写入状态,若为无效则进入页面轮换 状态;当状态机处于页面轮换状态时,根据页面替换部件选取的目标页面号更新待写入 目标体系结构二进制码缓冲区高地址,目标体系结构二进制码缓冲区页面访问的高地址由目标页面号与页面大小相乘获得。若此时从处理器核来的翻译完毕信号无效,则更新目 标-源页面映射表表项中下一页号字段为页面替换部件选取的目标页面号,否则下一页号 字段设为0。同时更新“源缓冲区页号”字段为待翻译映射表项表项编号和“时标”字段为 0,其余目标-源页面映射表项时标字段自增1。读取所选定待翻译映射表项,若其起始页面 号字段为0,将其设置为当前目标二进制码缓冲区页号,返回翻译状态。页面替换部件与缓存管理控制单元和页面映射表相连,从缓存管理控制部件读取 源页面替换信号,若源页面替换信号有效,则读取源-目标页面映射表,根据源-目标页面 映射表项中的时间戳信息,选取时间戳值最大表项所对应的页面作为下一待写入源体系结 构二进制码缓冲区页面,将页面映射表发来的源页面号传递给缓存管理控制单元;接收从 缓存管理控制单元发来目标页面替换信号,读取目标-源页面映射表,根据目标-源页面映 射表项中时标字段,选取时标值最大表项所对应的页面作为下一待写入目标体系结构二进 制码缓冲区页面,将目标页面号传递给缓存管理控制单元。页面替换部件由源体系结构二进制码页面替换状态机和目标体系结构二进制码 页面替换状态机组成。处理器核复位时,源体系结构二进制码页面替换状态机和目标体系 结构二进制码页面替换状态机启动。源体系结构二进制码页面替换状态机由空闲状态、页面选择状态、信号检测状态、 页面映射更新状态组成,其开机复位状态为空闲状态。其状态转移过程如下所示当处于空闲状态时,源-目标页面映射表初始化为0,在源体系结构二进制码缓冲 区随机选取任一页面为候选写入页面,将源页面号置成选取页面的页面号发往缓存管理控 制单元,同时向通信控制单元发送缓存就绪信号,进入信号检测状态。当处于信号检测状态时,检测源页面替换信号是否有效,若无效继续处于信号监 测状态,否则进入页面选择状态。当处于页面选择状态时,读取源-目标页面映射表信息,比较状态字段为“翻译 完”表项中的时间戳字段数值,选取时间戳字段数值最大表项所对应源体系结构二进制码 缓冲区页面为待写入页面,将源页面号置成待写入页面的页面号,置缓存就绪信号有效,进 入页面映射更新状态;若所有映射表项的状态都不是“翻译完”,则选取0为待写入页面号, 继续处于页面选择状态。当处于页面映射更新状态时,根据页面选择状态所选取源页面号,更新源-目标 页面映射表中所对应表项的中“目标缓冲页面号”、“时间戳”和“起始页面号”字段为0,同 时设“状态”字段为未翻译,进入页面信号检测状态。目标体系结构二进制码页面替换状态机包含的状态和状态转移过程与源体系结 构二进制码页面替换状态机转移过程相同,它们之间的差异在于从信号检测状态转移至 页面选择状态时,目标体系结构二进制码页面替换状态机需要目标页面替换信号为有效; 在页面选择状态时,读取目标-源映射表表项,选取目标-源映射表表项中时标字段数值最 大所对应的目标二进制码缓冲区页面为待写入页面,将目标页面号置成待写入页面的页面 号发往缓存管理单元,进入页面映射更新状态;当处于页面更新状态时,根据页面选择状态 所选取的目标页面号更新目标-源映射表表项的中“源缓冲页面号”、“时标”和“下一页面 号”字段为0。处理器核是通用或者专用处理器核,与缓存管理单元相连,从缓存管理单元接收
14翻译请求,通过传输总线从源体系结构二进制缓冲区中读取页面代码,进行动态二进制代 码翻译;当翻译出完整页面代码后置目标体系结构写入信号通知缓存管理单元进行页面写 入,通过传输总线往目标体系结构二进制码缓冲区中写入页面数据;当动态二进制翻译完 毕时,置翻译完毕信号通知缓存管理单元翻译完毕。采用本发明可以达到以下技术效果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 = 4KXL字,K为10M、L为正整数;目标体系结构二进制码 缓冲区存储翻译后的目标体系结构二进制码,容量为N,N = 4KX J,K为1024、J为正整数。通信控制单元与主控处理器和缓存管理单元相连,从主控处理器接收页面配置信 息,向缓存管理单元传递页面配置信息;从主控处理器接收翻译请求命令,向缓存管理单元 发出缓存申请;当接收到缓存管理单元就绪信号时,通知主控处理器进行二进制页面代码 传输;当接收到主控处理器发来的开始传输命令时,通知缓存管理单元进行页面传输;当 接收到主控处理器发来的传输终止命令时,通知缓存管理单元页面传输完成。缓存管理单元与通信控制单元、数据存储单元和处理器核相连,从通信控制单元 接收页面配置信息,对源体系结构二进制码缓冲区和目标体系结构二进制码缓冲区按照页 面配置信息进行页面划分管理;根据从通信控制单元接收的数据传输控制信号,检测页面 映射表信息,若检测到有未翻译页面,则向处理器核发翻译请求信号;根据从处理器核接收 的页面访问地址信号,查询访问地址在页面映射表中是否存在,若存在,则从目标体系结构 二进制码缓冲区读取访问地址所对应的翻译后页面数据,将翻译后页面数据发送给通信控 制单元;若不存在,则从通信控制单元接收源体系结构二进制码页面数据,将其写入源体系 结构二进制码缓冲区中。图5为本发明的通信控制单元逻辑结构图。通信控制单元由多路选择器、通信控 制单元控制器、传输总线和三个寄存器组成。三个寄存器分别是动态翻译控制寄存器、目的 地址寄存器、线程ID寄存器,在体系结构全局地址空间中统一编址。多路选择器为三选一 选择器,与目的地址寄存器、动态翻译控制寄存器和线程ID寄存器相连,根据从通信控制 单元控制器来的寄存器选择信号,将传输总线中的数据写入相应寄存器中。图6为本发明的缓存管理单元逻辑结构图。缓存管理单元从通信控制单元接收缓 存申请,当有可替换缓冲区时向通信控制单元发页面就绪信号,同时更新页面映射表即置 源体系结构二进制码缓冲中待写入页面所对应;从通信控制单元接收页面传输开始信号, 在源缓冲读写控制信号和目标缓冲读写控制信号的控制下,选通源体系结构二进制码缓冲 区或者目标体系结构二进制码缓冲区,通过传输总线往源体系结构二进制码缓冲区写入数 据或者从目标体系结构二进制码缓冲区中读取数据;从通信控制单元接收页面传输完毕 信号,断开源体系结构二进制码缓冲区或者目标系统结构二进制码缓冲区与传输总线的连 接;检测源体系结构二进制码缓冲区是否有未翻译页面,若有未翻译页面,选择其中一个未 翻译页面,向处理器核发动态二进制翻译申请,通过传输总线将页面数据发送至处理器核; 从处理器核接收目标体系结构二进制码写入信号,选取待写入目标体系结构二进制码页 面,通过传输总线往目标体系结构二进制码缓冲区写入数据;接收处理器核翻译完毕信号, 更新页面映射表信息。缓存管理单元由页面替换部件、缓存管理控制部件组成。页面替换部件和缓存管 理控制部件和数据存储单元中的页面映射表相连,接收从缓存管理控制部件传输来的源页 面替换信号,读取页面映射表中源体系结构二进制码页面表项中时间戳字段和状态字段, 采用通用的页面替换算法(如LRU算法)从已翻译页面中选取下一次进行传输的页面,向缓存管理控制部件发所选取的源页面号;接收从缓存管理控制部件传输来的目标页面替换 信号,读取页面映射表中目标体系结构二进制码页面表项中时标字段和状态字段,采用页 面替换算法从已翻译页面中选取下一次进行传输的页面,向缓存管理控制部件发所选取的 目标页面号。缓存管理控制部件与页面替换部件、页面映射表和通信控制单元相连,监测从 通信控制单元传输来的缓存申请信号,读取页面替换部件返回的源体系结构二进制码缓冲 区页号,若页号不为0,则向通信控制单元发缓存就绪信号;监测从通信控制单元传输来的 传输开始信号,若有效,则选通原体系结构二进制码缓冲区或者目标体系结构二进制码缓 冲区;监测从通信控制单元传输来的传输完毕信号,在传输完毕信号有效时,向页面替换部 件发页面替换信号;从外部页面映射表读取源体系结构二进制码页面信息,检测是否有页 面处于未翻译状态,若有处于未翻译状态的页面则向处理器核发翻译请求信号,向处理器 核传递未翻译页面;监测处理器核发出的目标体系结构二进制码写入信号,若有效时,从替 换部件读取目标页面号,根据目标页面号计算目标体系结构二进制码缓冲区页面访问高地 址,向目标体系结构二进制码缓冲区发使能信号,将处理器核发来的翻译后目标体系结构 二进制码代码写入目标页面号随对应的页面中;监测处理器核发出的目标体系结构二进制 码写入信号,若信号从有效跳变成无效时,向页面替换部件发页面替换信号,读取页面替换 部件返回的目标页面号,将目标-源页面映射表中当前传输页面所对应表项中下一页号字 段置为替换部件返回的目标页面号,并将替换部件返回的目标页面号所对应表项的源缓冲 区页号字段置为正在进行翻译的源体系结构二进制码缓冲区页面号;监测处理器核发出的 翻译完毕信号,当翻译完毕信号有效时,向页面替换部件发页面替换信号,将目标-源页面 映射表中传输页面所对应表项中下一页号字段置为0。图7为本发明缓存管理单元的中缓存管理控制部件示意图。缓存管理控制部件由 初始化逻辑、源体系结构二进制码页面传输控制状态机和目标体系结构二进制码页面访问 控制状态机组成。初始化逻辑以4K字节为基本单位对源体系结构二进制码缓冲区、目标体 系结构二进制码缓冲区进行页面划分,划分后的页面按地址顺序编号,编号从1开始,依次 递增。初始化逻辑通过读写总线将源-目标页面映射表和目标-源页面映射表表目录表项 全都初始化为0,置缓存就绪信号。初始化完成后,初始化逻辑向源体系结构二进制码页面 传输控制状态机和目标体系结构二进制码页面访问控制状态机发初始化完毕信号,启动此 两个状态机。图8为本发明页面替换部件示意图。页面替换部件与缓存管理控制单元和页面 映射表相连,从缓存管理控制部件读取源页面替换信号,若源页面替换信号有效,则读取 源-目标页面映射表,根据源-目标页面映射表项中的时间戳信息,选取时间戳值最大表项 所对应的页面作为下一待写入源体系结构二进制码缓冲区页面,将页面映射表发来的源页 面号传递给缓存管理控制单元;接收从缓存管理控制单元发来目标页面替换信号,读取目 标-源页面映射表,根据目标-源页面映射表项中时标字段,选取时标值最大表项所对应的 页面作为下一待写入目标体系结构二进制码缓冲区页面,将目标页面号传递给缓存管理控 制单元。图9为本发明的处理器核进行动态二进制翻译逻辑结构图。处理器核是通用或者 专用处理器核,与缓存管理单元相连,从缓存管理单元接收翻译请求,通过传输总线从源体 系结构二进制缓冲区中读取页面代码,进行动态二进制代码翻译;当翻译出完整页面代码后置目标体系结构写入信号通知缓存管理单元进行页面写入,通过传输总线往目标体系结 构二进制码缓冲区中写入页面数据;当动态二进制翻译完毕时,置翻译完毕信号通知缓存 管理单元翻译完毕。图10为本发明通信控制单元中通信控制单元控制器状态机示意图。通信控制单 元控制器是一个状态机,与动态翻译控制寄存器、目的地址寄存器、线程ID寄存器相连,并 通过传输总线和缓存管理单元相连。通信控制单元控制器状态机由初始状态、总线监测状 态、缓存申请状态、启动传输状态、传输结束状态、故障检测状态组成。图11为本发明缓存管理单元中源体系结构二进制码页面传输控制状态机示意 图。源体系结构二进制码页面传输控制状态机与初始化逻辑、页面映射表和外部通信控制 单元相连,由空闲状态、传输请求监控、页面写入准备、传输结束、页面读取准备、页面发送 状态和页面发送完毕状态组成。图12为本发明缓存管理单元中目标体系结构二进制码页面访问控制状态机示意 图。目标体系结构二进制码页面访问控制状态机与初始化逻辑、页面映射表和处理器核相 连,由空闲状态、翻译状态检测状态、翻译状态、代码写入状态、页面轮换状态组成。图13为本发明页面替换部件中源(目标)体系结构二进制码页面替换状态机示 意图。源(目标)体系结构二进制码页面替换状态机由空闲状态、页面选择状态、信号检测 状态、页面映射更新状态组成。
18
权利要求
1. 一种支持动态二进制翻译的多核体系结构,包括多个处理器核、一级Cache、二级 Cache和主存控制器,一级Cache是每个处理器核私有的,其数量与处理器核的数量相同, 二级Cache和主存控制器由所有处理器核共享;其特征在于支持动态二进制翻译的多核体 系结构还包括翻译缓存单元,翻译缓存单元是每个处理器核私有的,其数量与处理器核的 数量相同,翻译缓存单元与私有它的处理器核、核间通信互联网络和主存控制器相连;翻译缓存单元由通信控制单元、缓存管理单元、数据存储单元组成,数据存储单元由源 体系结构二进制码缓冲区、目标体系结构二进制码缓冲区和页面映射表组成;源体系结构 二进制码缓冲区存储源体系结构二进制码,目标体系结构二进制码缓冲区存储翻译后的目 标体系结构二进制码;页面映射表由源-目标页面映射表、目标-源页面映射表组成;源-目标页面映射表 记录源体系结构二进制码缓冲区与目标体系结构二进制码缓冲区页面对应关系;目标-源 页面映射表记录目标体系结构二进制码缓冲区与源体系结构二进制码缓冲区页面映射关 系,同时记录翻译过程中出现的一对多页面映射和翻译后目标体系结构二进制码页面先后 顺序;源-目标页面映射表中表项与每个源体系结构二进制码缓冲区页面依照编号一一对 应,目标-源页面映射表中映射表项与每个目标体系结构缓冲区页面依照编号一一对应;源-目标页面映射表为Cache类型存储单元,结构与处理器中Cache结构相同,以线程 ID和目的地址作为查询字段,返回是否命中信号和命中表项的编号;源-目标页面映射表 每个表项由线程ID、目的地址、目标缓冲页面号、起始页面号、时间戳和状态字段组成; 目标-源页面映射表的每个表项由时标、源缓冲区页号、下一页号组成; 通信控制单元与主控处理器和缓存管理单元相连,从主控处理器接收页面配置信息, 向缓存管理单元传递页面配置信息;从主控处理器接收翻译请求命令,向缓存管理单元发 出缓存申请;当接收到缓存管理单元就绪信号时,通知主控处理器进行二进制页面代码传 输;当接收到主控处理器发来的开始传输命令时,通知缓存管理单元进行页面传输;当接 收到主控处理器发来的传输终止命令时,通知缓存管理单元页面传输完成;缓存管理单元与通信控制单元、数据存储单元和处理器核相连,从通信控制单元接收 页面配置信息,对源体系结构二进制码缓冲区和目标体系结构二进制码缓冲区按照页面配 置信息进行页面划分管理;从通信控制单元接收缓存申请,当有可替换缓冲区时向通信控 制单元发页面就绪信号,同时更新页面映射表即置源体系结构二进制码缓冲中待写入页面 所对应;从通信控制单元接收页面传输开始信号,在源缓冲读写控制信号和目标缓冲读写 控制信号的控制下,选通源体系结构二进制码缓冲区或者目标体系结构二进制码缓冲区, 通过传输总线往源体系结构二进制码缓冲区写入数据或者从目标体系结构二进制码缓冲 区中读取数据;从通信控制单元接收页面传输完毕信号,断开源体系结构二进制码缓冲区 或者目标系统结构二进制码缓冲区与传输总线的连接;检测源体系结构二进制码缓冲区是 否有未翻译页面,若有未翻译页面,选择其中一个未翻译页面,向处理器核发动态二进制翻 译申请,通过传输总线将页面数据发送至处理器核;从处理器核接收目标体系结构二进制 码写入信号,选取待写入目标体系结构二进制码页面,通过传输总线往目标体系结构二进 制码缓冲区写入数据;接收处理器核翻译完毕信号,更新页面映射表信息;通信控制单元由多路选择器、通信控制单元控制器、传输总线和三个寄存器组成,三个 寄存器分别是动态翻译控制寄存器、目的地址寄存器、线程ID寄存器,在体系结构全局地址空间中统一编址;多路选择器为三选一选择器,与目的地址寄存器、动态翻译控制寄存器 和线程ID寄存器相连,根据从通信控制单元控制器来的寄存器选择信号,将传输总线中的 数据写入相应寄存器中;目的地址寄存器存储目标体系结构二进制码页面主存写入地址;线程ID寄存器存储 进行动态二进制翻译请求的线程ID号;动态翻译控制寄存器由Page[N-l:0]、Set, Start, End、Req、Ready> Busy、Available、TargetAddrErr、Process IDErr> BuffErr 字段组成; Page[N-l :0]字段存储数据的数值η表示数据存储单元页面以2nX4K字节进行划分;Set位 为1时表示通信控制单元需要向缓存管理单元发送页面配置信号和配置信号,通知缓存管 理单元以新的页面配置信息对数据存储单元中的源体系结构二进制码缓冲区和目标体系 结构二进制码缓冲区重新进行页面划分,其值为0时不做任何处理Atart位为1时表示主 控处理器开始进行页面传输;End为1时表明主控处理器页面传输完毕;Req为1时表明主 控处理器向缓存管理单元申请源体系结构二进制码缓冲区页面;Ready为1时表明源体系 结构二进制码缓冲区就绪,可以进行数据传输;Busy为1时表明处理器核正在进行动态二 进制翻译;Available表明源体系结构二进制码缓冲区是否可用,为1表示可用,为0表示 不可用;TargetAddrEn 为1表明进行动态二进制翻译时发生目标地址未设定错误,在主控 处理器尚未设定目的地址寄存器就开始进行页面传输时发生;ftOcessIDErr为1表明进行 动态二进制翻译时表明发生线程ID未设定错误,在主控处理器开始进行页面传输尚未设 定线程ID寄存器时发生;BuffErr为1表明进行动态二进制翻译时发生源体系结构二进制 码缓冲区页面未申请错误,在主控处理器没有申请到有效源体系结构二进制码缓冲区页面 就启动页面传输;缓存管理单元由页面替换部件、缓存管理控制部件组成;页面替换部件和缓存管理控 制部件和数据存储单元中的页面映射表相连,接收从缓存管理控制部件传输来的源页面替 换信号,读取页面映射表中源体系结构二进制码页面表项中时间戳字段和状态字段,采用 通用的页面替换算法从已翻译页面中选取下一次进行传输的页面,向缓存管理控制部件发 所选取的源页面号;接收从缓存管理控制部件传输来的目标页面替换信号,读取页面映射 表中目标体系结构二进制码页面表项中时标字段和状态字段,采用页面替换算法从已翻译 页面中选取下一次进行传输的页面,向缓存管理控制部件发所选取的目标页面号;缓存管 理控制部件与页面替换部件、页面映射表和通信控制单元相连,监测从通信控制单元传输 来的缓存申请信号,读取页面替换部件返回的源体系结构二进制码缓冲区页号,若页号不 为0,则向通信控制单元发缓存就绪信号;监测从通信控制单元传输来的传输开始信号,若 有效,则选通原体系结构二进制码缓冲区或者目标体系结构二进制码缓冲区;监测从通信 控制单元传输来的传输完毕信号,在传输完毕信号有效时,向页面替换部件发页面替换信 号;从外部页面映射表读取源体系结构二进制码页面信息,检测是否有页面处于未翻译状 态,若有处于未翻译状态的页面则向处理器核发翻译请求信号,向处理器核传递未翻译页 面;监测处理器核发出的目标体系结构二进制码写入信号,若有效时,从替换部件读取目标 页面号,根据目标页面号计算目标体系结构二进制码缓冲区页面访问高地址,向目标体系 结构二进制码缓冲区发使能信号,将处理器核发来的翻译后目标体系结构二进制码代码写 入目标页面号随对应的页面中;监测处理器核发出的目标体系结构二进制码写入信号,若 信号从有效跳变成无效时,向页面替换部件发页面替换信号,读取页面替换部件返回的目标页面号,将目标-源页面映射表中当前传输页面所对应表项中下一页号字段置为替换部 件返回的目标页面号,并将替换部件返回的目标页面号所对应表项的源缓冲区页号字段置 为正在进行翻译的源体系结构二进制码缓冲区页面号;监测处理器核发出的翻译完毕信 号,当翻译完毕信号有效时,向页面替换部件发页面替换信号,将目标-源页面映射表中传 输页面所对应表项中下一页号字段置为0 ;缓存管理控制部件由初始化逻辑、源体系结构二进制码页面传输控制状态机和目标体 系结构二进制码页面访问控制状态机组成;初始化逻辑对源体系结构二进制码缓冲区、目 标体系结构二进制码缓冲区进行页面划分;初始化逻辑通过读写总线将源-目标页面映射 表和目标-源页面映射表表目录表项全都初始化为0,置缓存就绪信号;初始化完成后,初 始化逻辑向源体系结构二进制码页面传输控制状态机和目标体系结构二进制码页面访问 控制状态机发初始化完毕信号,启动此两个状态机;处理器核是通用或者专用处理器核,与缓存管理单元相连,从缓存管理单元接收翻译 请求,通过传输总线从源体系结构二进制缓冲区中读取页面代码,进行动态二进制代码翻 译;当翻译出完整页面代码后置目标体系结构写入信号通知缓存管理单元进行页面写入, 通过传输总线往目标体系结构二进制码缓冲区中写入页面数据;当动态二进制翻译完毕 时,置翻译完毕信号通知缓存管理单元翻译完毕。
2.如权利要求1所述的支持动态二进制翻译的多核体系结构,其特征在于所述通信控 制单元控制器是一个状态机,与动态翻译控制寄存器、目的地址寄存器、线程ID寄存器相 连,并通过传输总线和缓存管理单元相连;通信控制单元控制器状态机由初始状态、总线监测状态、缓存申请状态、启动传输状 态、传输结束状态、故障检测状态组成,状态转移过程是处理器核复位后通信控制单元控制器进入初始状态,将动态翻译控制寄存器、目的地 址寄存器、线程ID寄存器初始化为0,状态机进入总线监测状态;在总线监测状态,监控传输总线地址;若传输总线地址与动态翻译控制寄存器、目的地 址寄存器、线程ID寄存器的地址之一相等,根据传输总线地址设置寄存器选择选择信号, 控制多路选择器将总线上数据写入相应寄存器;从动态翻译控制寄存器读取Req字段,若 Req字段为1,进入缓存申请状态;若Req为0,则从动态翻译控制寄存器中读取^art字段, 若Mart字段为1,则进入启动传输状态;在缓存申请状态,检测缓存就绪信号是否有效,若有效,置动态翻译控制寄存器Ready 字段,跳回总线监测状态;否则向缓存管理单元发缓存申请信号,继续处于缓存申请状态; 在启动传输状态,检测动态翻译控制寄存器^art字段是否有效,若为有效,检查目的 地址寄存器和线程ID寄存器是否为0,若两个寄存器都不为0,向缓存管理单元发传输开始 信号,进入传输结束状态,否则进入故障检测状态;在传输结束状态,检测动态翻译控制寄存器End字段,若End为1,向缓存管理单元发传 输完毕信号,同时将开始信号置为0,向缓存管理单元发传输完毕信号,同时将目的地址寄 存器和线程ID寄存器重置为0,回到总线监测状态,否则继续处于传输结束状态;在故障检测状态,检测动态翻译控制寄存器Ready字段是否有效,若无效,则置动态翻 译控制寄存器BufTErr字段;检测目的地址寄存器寄存器是否为0,若为0则置动态翻译控 制寄存器TargerAddrErr字段;检测线程ID寄存器是否为0,若为0,则置动态翻译控制寄存器中I^ocessIDErr字段;操作完毕之后跳回总线检测状态。
3.如权利要求1所述的支持动态二进制翻译的多核体系结构,其特征在于所述源体系 结构二进制码页面传输控制状态机与初始化逻辑、页面映射表和外部通信控制单元相连, 由空闲状态、传输请求监控、页面写入准备、传输结束、页面读取准备、页面发送状态和页面 发送完毕状态组成,其状态转移关系是当处理器核复位时,状态机处于空闲状态,当接收到从初始化逻辑发来的初始化完毕 信号有效时转移至传输请求监控状态;当状态机处于传输请求监控状态时,置源页面替换信号为无效;读取页面替换部件返 回的源页面号,若不为0,置缓存就绪信号为有效;若传输开始信号有效,将线程ID和目的 地址传递给页面映射表,读取自页面映射表传来的页面命中信号,若页面命中信号为有效 则置传输总线中等待信号为有效,进入页面读取准备状态,若页面命中信号无效,进入页面 写入准备状态;当状态机处于页面写入准备状态时,将线程ID和目的地址分别写入页面替换部件所 选取的源页面号所对应的源-目标页面映射表表项中相应字段,并将页面映射表项中状态 字段置为待翻译表明此页面等待翻译;同时根据页面替换部件返回的源页面号计算出源体 系结构二进制码缓冲区页面访问的地址高位,地址高位由源页面号与页面大小相乘获得, 向源体系结构二进制码缓冲区发使能信号,进入页面写入状态;当状态机处于页面写入状态时,若传输完毕信号有效,进入传输结束状态,否则继续处 于页面写入状态;当状态机处于传输结束状态时,将源-目标页面映射表除页面替换部件返回的源页 面号所对应源-目标页面映射表表项其余有效映射表项时间戳字段自增1 ;同时置缓存就 绪为无效,向页面替换部件发源页面替换信号,选取下一次传输缓存页面,返回传输监控状 态;当状态机处于页面读取准备状态时,读取源-目标页面映射表线程ID和目的地址字段 与缓存管理控制单元控制发来的线程ID和目的地址相等表项的起始页面号字段,以起始 页面号为索引查询目标-源页面映射表中相应表项,使能目标体系结构二进制码缓冲区, 页面访问的高地址由目标缓冲页面号与页面大小相乘获得,进入页面发送状态;当状态机处于页面发送状态时,检测通信控制单元发出的传输完毕信号,若有效,进入 页面发送完毕状态,否则继续处于页面发送状态;当状态机处于页面发送完毕状态时,从目标-源页面映射表表项中读取下一页号,将 源-目标页面映射表中“命中”的表项中目标缓冲页面号置为所读取的下一页号,返回传输 请求监控状态。
4.如权利要求1所述的支持动态二进制翻译的多核体系结构,其特征在于所述目标 体系结构二进制码页面访问控制状态机与初始化逻辑、页面映射表和处理器核相连,由空 闲状态、翻译状态检测状态、翻译状态、代码写入状态、页面轮换状态组成,其状态转移过程 为当处理器核复位时,状态机处于空闲状态,当初始化完毕有效时,转移至翻译状态检测 状态;当状态机处于翻译状态检测状态时,扫描源-目的映射表表项中翻译状态字段,若有状态字段为“待翻译”的映射表项,选定源-目的映射表中该表项,根据所选取表项编号计 算源体系结构二进制码缓冲区页面访问的高地址,源体系结构二进制码缓冲区页面访问的 高地址由所选取表项编号与页面大小相乘获得,向源体系结构二进制码缓冲区发使能信 号;根据页面替换部件选取的目标页面号计算目标体系结构二进制码缓冲区页面访问高地 址,目标体系结构二进制码缓冲区页面访问的高地址由目标页面号与页面大小相乘获得, 并向目标体系结构二进制码缓冲区发使能信号,进入翻译状态;当状态机处于翻译状态时,检测从处理器核发来的目标体系结构二进制码写入信号是 否有效,若有效,向页面替换部件发目标页面替换信号,选取下一传输待写入页面,进入代 码写入状态;若翻译结束信号有效,返回翻译状态检测状态;当状态机处于代码写入状态时,置目标页面替换信号为无效,检测目标体系结构二 进制码写入信号是否为有效,若有效继续处于代码写入状态,若为无效则进入页面轮换状 态;当状态机处于页面轮换状态时,根据页面替换部件选取的目标页面号更新待写入目标 体系结构二进制码缓冲区高地址,目标体系结构二进制码缓冲区页面访问的高地址由目标 页面号与页面大小相乘获得;若此时从处理器核来的翻译完毕信号无效,则更新目标-源 页面映射表表项中下一页号字段为页面替换部件选取的目标页面号,否则下一页号字段设 为0 ;同时更新“源缓冲区页号”字段为待翻译映射表项表项编号和“时标”字段为0,其余 目标-源页面映射表项时标字段自增1 ;读取所选定待翻译映射表项,若其起始页面号字段 为0,将其设置为当前目标二进制码缓冲区页号,返回翻译状态;页面替换部件与缓存管理控制单元和页面映射表相连,从缓存管理控制部件读取源页 面替换信号,若源页面替换信号有效,则读取源-目标页面映射表,根据源-目标页面映射 表项中的时间戳信息,选取时间戳值最大表项所对应的页面作为下一待写入源体系结构二 进制码缓冲区页面,将页面映射表发来的源页面号传递给缓存管理控制单元;接收从缓存 管理控制单元发来目标页面替换信号,读取目标-源页面映射表,根据目标-源页面映射表 项中时标字段,选取时标值最大表项所对应的页面作为下一待写入目标体系结构二进制码 缓冲区页面,将目标页面号传递给缓存管理控制单元;页面替换部件由源体系结构二进制码页面替换状态机和目标体系结构二进制码页面 替换状态机组成;处理器核复位时,源体系结构二进制码页面替换状态机和目标体系结构 二进制码页面替换状态机启动。
5.如权利要求1所述的支持动态二进制翻译的多核体系结构,其特征在于所述源体系 结构二进制码页面替换状态机由空闲状态、页面选择状态、信号检测状态、页面映射更新状 态组成,其开机复位状态为空闲状态,其状态转移过程如下所示当处于空闲状态时,源-目标页面映射表初始化为0,在源体系结构二进制码缓冲区随 机选取任一页面为候选写入页面,将源页面号置成选取页面的页面号发往缓存管理控制单 元,同时向通信控制单元发送缓存就绪信号,进入信号检测状态;当处于信号检测状态时,检测源页面替换信号是否有效,若无效继续处于信号监测状 态,否则进入页面选择状态;当处于页面选择状态时,读取源-目标页面映射表信息,比较状态字段为“翻译完”表 项中的时间戳字段数值,选取时间戳字段数值最大表项所对应源体系结构二进制码缓冲区页面为待写入页面,将源页面号置成待写入页面的页面号,置缓存就绪信号有效,进入页面 映射更新状态;若所有映射表项的状态都不是“翻译完”,则选取0为待写入页面号,继续处 于页面选择状态;当处于页面映射更新状态时,根据页面选择状态所选取源页面号,更新源-目标页面 映射表中所对应表项的中“目标缓冲页面号”、“时间戳”和“起始页面号”字段为0,同时设 “状态”字段为未翻译,进入页面信号检测状态。
6.如权利要求1所述的支持动态二进制翻译的多核体系结构,其特征在于所述目标体 系结构二进制码页面替换状态机包含的状态和状态转移过程与源体系结构二进制码页面 替换状态机转移过程相同,它们之间的差异在于从信号检测状态转移至页面选择状态时, 目标体系结构二进制码页面替换状态机需要目标页面替换信号为有效;在页面选择状态 时,读取目标-源映射表表项,选取目标-源映射表表项中时标字段数值最大所对应的目标 二进制码缓冲区页面为待写入页面,将目标页面号置成待写入页面的页面号发往缓存管理 单元,进入页面映射更新状态;当处于页面更新状态时,根据页面选择状态所选取的目标页 面号更新目标-源映射表表项的中“源缓冲页面号”、“时标”和“下一页面号”字段为0。
7.如权利要求1所述的支持动态二进制翻译的多核体系结构,其特征在于所述源体系 结构二进制码缓冲区容量为M,M = 4KXL字,K为1024、L为正整数;目标体系结构二进制 码缓冲区容量为N,N = 4KXJ, K为10M、J为正整数;源-目标页面映射表大小为L行,目 标-源页面映射表大小为J行;源-目标页面映射表中线程ID字段为12位,记录申请此页 面翻译的线程ID号,0表示没有对应线程;目的地址字段为30位,记录目标体系结构二进 制码缓冲区主存写入地址,若体系结构设计时不允许缓存管理单元将翻译后的页面代码写 入主存,此字段无意义留作扩展;目标缓冲页面号字段为位,存储翻译后代码将被 写入的目标体系结构二进制码缓冲区页面的页面号;当一页源体系结构二进制码页面翻译 成多页目标体系结构机构二进制码页面时,起始页面号字段为lo&J+l位,记录处理器核翻 译出第一个目标体系结构二进制码页面的页面号;时间戳字段为6位,记录此页面在缓冲 区中驻留的时间信息;状态记录3位,该源体系结构二进制码页面所处的状态,有待翻译、 正在翻译、翻译完和无效状态;目标-源页面映射表中时标为6位,记录此目标体系结构缓 冲区页面在缓冲区中驻留的时间信息;源缓冲区页号字段为lc^2L+l位,记录此目标体系结 构二进制码缓冲区所对应的源体系结构二进制码缓冲区页号;下一页号为log2L+l位,记录 出现一对多翻译时下一完成翻译的目标体系结构二进制码缓冲区页面号。
8.如权利要求1所述的支持动态二进制翻译的多核体系结构,其特征在于所述动态翻 译控制寄存器中的I^age [N-1 0]是N位,Set位是一位,Start位是一位,End是一位,Req是 一位,Ready 是一位,Busy 是一位,Available 是一位,TargetAddrErr 是一位,ProcessIDErr 是一位,BuffErr是一位。
9.如权利要求1所述的支持动态二进制翻译的多核体系结构,其特征在于所述缓存管 理控制部件中的初始化逻辑以4K字节为基本单位对源体系结构二进制码缓冲区、目标体 系结构二进制码缓冲区进行页面划分,划分后的页面按地址顺序编号,编号从1开始,依次 递增。
全文摘要
本发明公开了一种支持动态二进制翻译的多核体系结构,目的是解决动态二进制翻译过程中的Cache访问冲突和主存冲突等问题。本发明由多个处理器核、一级Cache、翻译缓存单元、二级Cache和主存控制器组成。一级Cache、翻译缓存单元是每个处理器核私有的,二级Cache和主存控制器由所有处理器核共享。翻译缓存单元由通信控制单元、缓存管理单元、数据存储单元组成。通信控制单元由多路选择器、通信控制单元控制器、传输总线和三个寄存器组成,缓存管理单元由页面替换部件、缓存管理控制部件组成,数据存储单元由源体系结构二进制码缓冲区、目标体系结构二进制码缓冲区和页面映射表组成。采用本发明可使得数据访问延迟低、翻译吞吐量高、Cache访问冲突小。
文档编号G06F15/16GK102073533SQ20111000812
公开日2011年5月25日 申请日期2011年1月14日 优先权日2011年1月14日
发明者徐帆, 朱天龙, 沈立, 游良帅, 王志英, 赖鑫, 郑重, 陆华俊, 陈微, 陈顼颢 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1