[发明专利]一种松耦合结构的并行多核全系统模拟器在审
| 申请号: | 201611108730.9 | 申请日: | 2016-12-06 |
| 公开(公告)号: | CN106775597A | 公开(公告)日: | 2017-05-31 |
| 发明(设计)人: | 张为华;李弋;鲁云萍 | 申请(专利权)人: | 复旦大学 |
| 主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/50 |
| 代理公司: | 上海正旦专利代理有限公司31200 | 代理人: | 陆飞,陆尤 |
| 地址: | 200433 *** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 耦合 结构 并行 多核 全系统 模拟器 | ||
1.一种并行多核处理器的全系统模拟器,其特征在于,框架结构分为4个主要部分:功能模拟模块、时序模拟模块、通用接口模块、差异检测和调节模块;其中:
所述功能模拟模块,用于实现特定的功能模拟模型,负责执行指令和收集应用程序和操作系统的执行信息,并将指令分解成时序模拟所需的体系结构无关的指令流和数据流信息,写入到功能模拟模块和时序模拟模块中间的通用接口,从而传送给时序模拟模块;
所述时序模拟模块,用于实现特定的时序模拟模型,负责从通用接口中取得指令的接口信息,对指令进行时序模拟,并更新体系结构的状态信息;
所述通用接口模块,该模块里面包含一个指令缓冲区和一个内存访问表(MAT)结构;指令缓冲区主要用于存放功能模拟模型传递的指令流信息,MAT则主要用于存储内存访问的数据流信息;
所述差异检测和调节模块,主要负责比较功能模拟和时序模拟行为的不一致性,并根据不一致的原因分别调用相应的处理模块进行调节。
2.根据权利要求1所述的并行多核处理器的全系统模拟器,其特征在于,针对模拟器在运行时的4种精确性影响因素:还设计了错误路径处理模块块、异常和中断处理模块、共享内存访问的检测和修正模和共享页表访问的检测和修正模块,以修正精确性影响因素发生时引入的错误;其中:
所述错误路径处理模块,用于处理异常或中断发生时功能模拟和时序模拟模块执行路径的不一致;在时序模拟模型出现分支预测错误时,为功能模拟模块创建出一个与当前时序模拟模块系统状态完全一致的轻量级错误路径系统,在这个系统内继续执行经过分支预测的指令路径,当被预测错误的指令完成后,不执行提交而直接退出错误路径模拟,从而避免更改实际流水线的状态;
所述异常和中断处理模块,用于处理异常或中断发生时功能模拟和时序模拟模块执行路径的不一致;当中断或异常发生时,该模块为功能模拟模块创建出一个与当前时序模拟模块系统状态完全一致的轻量级错误路径系统,在这个系统内继续执行中断或异常发生后的指令路径,当错误路径的指令完成后,不执行提交而直接退出错误路径模拟,从而避免更改实际流水线的状态;
所述共享内存访问的检测和修正模块,用于检测和修正提前执行的功能模拟模型与时序模拟模型的内存访问顺序不一致,以修正共享内存访问顺序不一致所带来的时序不精确性,避免导致模拟结果的不精确;共享内存访问的检测和修正模块通过两步操作来避免功能模拟模型和时序模拟模型之间对于共享内存的访问顺序不一致:首先在功能模拟模型执行时记录下各个处理器核访问内存的顺序;然后在时序模拟模型中内存指令提交时,检查时序模拟模型与功能模拟模型对共享内存的访问顺序是否一致,从而确定两者的执行行为是否有冲突,如果发生冲突,需要根据时序模拟模型的系统状态回滚功能模拟模型;
所述共享页表访问的检测和修正模块,用于简化共享页表访问顺序冲突的处理;当功能模拟模块在遇到MMU miss时,不再继续执行指令,直到时序模拟模块提交这条指令时,即跳转到正确的MMU miss处理路径时再继续执行,从而使得功能模拟模块和时序模拟模块在共享页表的访问顺序上保持了一致。
3.根据权利要求2所述的并行多核处理器的全系统模拟器,其特征在于,当需要对一条指令进行模拟时,系统的模拟流程如下:首先,功能模拟模块执行被模拟的指令;接着,功能模拟模块将把指令本身的信息以及进行时序模拟所需要的执行信息通过通用接口传递给时序模拟模块;然后,时序模拟模块要对这条指令模拟时,从通用接口中读出这条指令的相关信息,对它进行时序模拟;在时序模拟时,差异检测和调节模块检测影响模拟精确性的事件,并根据被检测到的精确性影响因素对应地调用错误路径处理模块、共享内存访问的检测和修正模块、异常和中断处理模块和共享页表访问的检测和修正模块对功能模拟模型进行修正,保证功能模拟模型模拟的路径与时序模拟模型模拟的路径一致,从而保证模拟的精确性;最后,在这条指令在时序模拟模块中完成提交时,更新时序模拟模型的体系结构状态。
4.根据权利要求3所述的并行多核处理器的全系统模拟器,其特征在于,通用接口模块的设计不依赖于功能模拟模型和特定指令集体系结构相关信息;此外,由于时序模拟模型主要模拟流水线依赖及存储结构,通用接口模块包含这两方面用于时序模拟的相关信息;通用接口的主要功能是在功能模拟和时序模拟模块之间传输指令流和数据流信息;其中:
所述指令流信息记录在指令缓冲区当中,大小可通过配置文件设定;缓冲区的每一项保存了指令进行时序模拟所需的信息,由功能模拟模型模拟完一条指令后填写;每一项看做是对应指令的踪迹,主要包括三方面的信息:流水线相关信息,存储访问信息以及修改的体系结构状态信息;
所述数据流信息存储在一个两维的表MAT中;MAT的第一个维度是一个以物理地址为键值的散列,其中的每个节点称为内存地址节点;每一个内存地址节点拥有一个保存功能模拟模型对内存的访问顺序队列,用来记录对于该内存地址被各个核的访问顺序;队列的每个节点记录某一次访问的具体信息,包括这次访问来自哪个核,是读操作还是写操作,以及对内存的改变等信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611108730.9/1.html,转载请声明来源钻瓜专利网。





