[发明专利]基于片上网络互连的多核存储系统仿真器有效
申请号: | 201410148038.3 | 申请日: | 2014-04-14 |
公开(公告)号: | CN103914333B | 公开(公告)日: | 2017-12-01 |
发明(设计)人: | 吴俊敏;崔贤芬;赵小雨 | 申请(专利权)人: | 中国科学技术大学苏州研究院 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 苏州创元专利商标事务所有限公司32103 | 代理人: | 范晴,夏振 |
地址: | 215123 江苏省苏州*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 网络 互连 多核 存储系统 仿真器 | ||
技术领域
本发明属于存储系统仿真领域,具体涉及一种基于片上网络互连的多核存储系统仿真器。
背景技术
早期的单核计算机系统通过提升芯片频率达到提高计算机性能的目的,但是随之而来的是产生过多的热量且不能得到相应的性能提升,于是产生了多核。为了对多核处理器及其片上网络进行研究,可使用体系结构仿真技术进行模拟,并运行程序进行测试和验证。当前主流的系统仿真器比如Simplescalar、M5主要是模拟处理器,每个仿真器都有各自的关注点。比如前者主要是模拟处理器的执行过程,后者主要是仿真网络主机,很少有仿真器把重点放在存储系统上。现有的仿真器大都使用高级语言编写,而仿真过程模拟的是硬件的功能,传统的方法是使用高级语言编写代码后,再转化为硬件语言描述,整个实现的过程周期长、效率低。
发明内容
本发明目的在于提供一种基于片上网络互连的多核存储系统仿真器,解决了多核下存储系统互连问题。存储系统的执行过程可以细化到时钟级,与真实系统的执行过程类似,采用SystemC语言描述的系统更接近真实系统的工作过程。多核下的互连采用片上网络结构,片上网络的优点是易于扩展,如若需要往整个系统中再添加新的核心,只需在片上网络中再添加一路由器并连接一处理器,整个系统可以照常运行。
为解决现有方法中的问题,本发明提供的技术方案是:
一种基于片上网络互连的多核存储系统仿真器,其特征在于所述仿真器以SystemC的内核作为整个仿真器的驱动内核,包括用于仿真各个处理器核心的一级高速缓存的缓存模块、用于仿真各个处理器核心的二级高速缓存的路由模块和用于提供功能仿真的QEMU模块;若干个路由模块互连仿真处理器核心共享的二级高速缓存形成的片上网络,每个路由模块设置有一组与缓存模块连接的信号线;所述路由模块将缓存模块或者路由模块传递的pkt消息分发到另一缓存模块或者另一路由模块。
优选的技术方案中:所述pkt消息包括data字段、id字段、dest数组字段、addr字段、cur_addr字段、change_data字段、index字段;其中data字段用于存储消息中的数据;id字段用于表示路由模块的编号;dest数组字段用于表示pkt信息需要发送的目的地;addr字段表示缓存行的地址;cur_addr字段表示缓存行的起始地址;change_data字段表示写操作的数据;index字段为标记字段。
优选的技术方案中:所述pkt消息中index字段为0时,表示没有特殊功能;index字段为1时,从二级缓存或DRAM中取块并返回给发送者;index字段为2时,修改二级缓存及DRAM中相应块的内容,同时发送给除自己之外的一级缓存,表示对某个地址执行了写操作;index字段为3时,从二级缓存发给DRAM要求其刷新相应的缓存块;index字段为4时,修改二级缓存及DRAM中的字,并将该字对应的块传送给发送该消息的源一级缓存;index字段为5时,表示一级缓存未找到某行数据,需要从其它一级缓存中查看是否有该数据。
优选的技术方案中:每个路由模块中设置有路由表,所述路由表中存储路由模块输出时的路由选择路径。
优选的技术方案中:每个路由模块维护一个消息队列,每次路由模块采用轮询的方式将输入信号线中的pkt消息存入消息队列中。
优选的技术方案中:所述缓存模块采用组相联映射策略和写回方法,替换时随机选择某一缓存行,在缓存块中设置若干指向实际存储信息的缓存行的指针,每个缓存行包含Valid字段、data字段、tag字段和dirty字段;其中Valid字段用于表示该缓存行是否有效;data字段指向存储“字块”的单元;tag字段为标记位,当接收到某个地址之后,比较标记位确认是否与此缓存行匹配;dirty字段判断是否为脏数据,该行数据有没有被写过。
优选的技术方案中:所述仿真器还包括驱动模块,驱动模块向缓存模块发起读或写操作,并传输其它相关信号。
优选的技术方案中:所述驱动模块和缓存模块都由时钟发生器控制,驱动模块和缓存模块之间通过5根信号线连接进行信号传输,包括Func信号线、Data_in信号线、Addr信号线、Data_out信号线和Done_sig信号线;其中Func信号线用以通知缓存模块执行操作;Data_in信号线是提供驱动模块向缓存模块中的某个单元传送写入的数据;Addr信号线用于表示驱动模块想要读/写的地址;Data_out信号线用于驱动模块发送读操作,通过Data_out信号线返回所读单元的数据;Done_sig信号线用于结束一次执行过程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学技术大学苏州研究院,未经中国科学技术大学苏州研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410148038.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种去氟活化水滤料
- 下一篇:一种自动生成印制板流水号的方法