基于片上网络互连的多核存储系统仿真器技术方案

技术编号:16674879 阅读:31 留言:0更新日期:2017-12-01 15:42
本发明专利技术公开了一种基于片上网络互连的多核存储系统仿真器,其特征在于所述仿真器以SystemC的内核作为整个仿真器的驱动内核,包括用于仿真各个处理器核心的一级高速缓存的缓存模块、用于仿真各个处理器核心的二级高速缓存的路由模块和用于提供功能仿真的QEMU模块;若干个路由模块互连仿真处理器核心共享的二级高速缓存形成的片上网络,每个路由模块设置有一组与缓存模块连接的信号线;所述路由模块将缓存模块或者路由模块传递的pkt消息分发到另一缓存模块或者另一路由模块。该仿真器能够用来进行目标系统的系统软件开发,使得软硬件开发可以同时进行,加快系统开发速度。

A multi-core storage system simulator based on network interconnection on chip

The invention discloses a multi-core simulator storage system based on network, which is characterized in that the simulator with SystemC kernel as the core of the entire driving simulator, including simulation for each processor core level cache cache module, routing module simulation for each processor core level two cache and for the QEMU module function simulation; network several routing module interconnection simulation processor core shared level two cache on chip formation, each routing module is provided with a set of cache module is connected with the signal line; the routing module will cache module or routing module transmission pkt message is sent to another cache module or another routing module. The simulator can be used to develop the system software of the target system, so that the development of software and hardware can be carried out at the same time and speed up the development of the system.

【技术实现步骤摘要】
基于片上网络互连的多核存储系统仿真器
本专利技术属于存储系统仿真领域,具体涉及一种基于片上网络互连的多核存储系统仿真器。
技术介绍
早期的单核计算机系统通过提升芯片频率达到提高计算机性能的目的,但是随之而来的是产生过多的热量且不能得到相应的性能提升,于是产生了多核。为了对多核处理器及其片上网络进行研究,可使用体系结构仿真技术进行模拟,并运行程序进行测试和验证。当前主流的系统仿真器比如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信号线用于结束一次执行过程。本专利技术利用SystemC的内容今昔跟仿真,SystemC这种编程语言既能描述硬件行为,也可以实现软件,SystemC是C++的宏和库,C++语言是面向对象的,而且现存有许多功能完善的执行代码工具。该仿真器使用QEMU模块进行功能仿真,QEMU仿真器具有高效、支持多种体系结构、动态二进制翻译等特点。最终实现的存储系统分为二级结构,一级缓存为处理器私有,二级缓存为共享。存储系统将通过片上网络与QEMU模块互连形成一个完整的多核计算机系统。QEMU是功能仿真器,用于模拟处理器模块的功能。可以通过在SystemC模块中预留接口,并且在QEMU模块中将部分功能使用SystemC细化,从而将两模块之间共有的SystemC部分连接通信。由于QEMU是功能仿真器,本专利技术将QEMU仿真器中剥离其中的处理器功能模块,添加到该存储系统仿真器中可以形成一个完整的多核计算机系统。该存储系统仿真器具体包括三个模块:缓存模块、路由模块和QEMU模块。首先由sc_start()语句启动SystemC的内核作为整个仿真器的驱动内核。然后QEMU模块启动进程,该进程会对底层的存储系统发起读/写某地址中的数据操作。程序运行之时,存储系统会调用各自的构造函数为存储器分配存储空间。当整个系统运行时,模块内部会执行相应的操作,QEMU中的进程执行的操作会通过屏幕显示出来结果,由结果可以看出是否得到所需地址的值。相对于现有技术中的方案,本专利技术的优点是:本专利技术的仿真器能够用来进行目标系统的系统软件开发,使得软硬件开发可以同时进行,加快系统开发速度。多个核心之间的片上网络互连能够缩短核间的互连线,降低核间通信延迟,提高通信效率和数据传输带宽。使用片上网络互连有利于系统的扩展。附图说明下面结合附图及实施例对本专利技术作进一步描述:图1是本专利技术基于片上网络互连的多核存储系统仿真器的互连图图2是本专利技术片上网络互连结构图;图3是本专利技术路由模块的简要示意图;图4是缓存模块的结构示意图;图5是本专利技术基于片上网络互连的多核存储系统仿真器qemu模块的通信架构图;图6是本专利技术驱动模块与缓存模块的通信示意图。具体实施方式以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本专利技术而不限于限制本专利技术的范围。实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件。实施例本实施例采用一种新的互连方式:片上网络互连方式。多核下的缓存采用分级结构,采用二级缓存结构,一级缓存为各个核心所私有,二级缓存为各个核心所共享;由于一级缓存为多个核所私有,各个核会对同一缓存块中的数据执行不同的操作,所以容易造成数据不一致。一、缓存模块缓存模块是本文档来自技高网...
基于片上网络互连的多核存储系统仿真器

【技术保护点】
一种基于片上网络互连的多核存储系统仿真器,其特征在于所述仿真器以SystemC的内核作为整个仿真器的驱动内核,包括用于仿真各个处理器核心的一级高速缓存的缓存模块、用于仿真各个处理器核心的二级高速缓存的路由模块、用于提供功能仿真的QEMU模块、驱动模块;若干个路由模块互连仿真处理器核心共享的二级高速缓存形成的片上网络,每个路由模块设置有一组与缓存模块连接的信号线;所述路由模块将缓存模块或者路由模块传递的pkt消息分发到另一缓存模块或者另一路由模块;所述驱动模块向缓存模块发起读或写操作,并传输其它相关信号,在缓存模块中定义与驱动模块连接的信号线以及为其缓存行的存储分配空间;通过QEMU模块启动进程对底层的存储系统发起读/写某地址中的数据操作,存储系统调用各自的构造函数为存储器分配存储空间,QEMU模块的处理器模块与存储系统之间的通信系统包括QEMU消息源、通信信道和互连模块,所述QEMU模块中消息源是产生通信的源头,包括两大类,一类是处理器节点,另一类是外部设备,不同的消息源使用不同的通道发送消息,通信信道通过进程连接QEMU模块和SystemC,所述互连模块用于传递信息。

【技术特征摘要】
1.一种基于片上网络互连的多核存储系统仿真器,其特征在于所述仿真器以SystemC的内核作为整个仿真器的驱动内核,包括用于仿真各个处理器核心的一级高速缓存的缓存模块、用于仿真各个处理器核心的二级高速缓存的路由模块、用于提供功能仿真的QEMU模块、驱动模块;若干个路由模块互连仿真处理器核心共享的二级高速缓存形成的片上网络,每个路由模块设置有一组与缓存模块连接的信号线;所述路由模块将缓存模块或者路由模块传递的pkt消息分发到另一缓存模块或者另一路由模块;所述驱动模块向缓存模块发起读或写操作,并传输其它相关信号,在缓存模块中定义与驱动模块连接的信号线以及为其缓存行的存储分配空间;通过QEMU模块启动进程对底层的存储系统发起读/写某地址中的数据操作,存储系统调用各自的构造函数为存储器分配存储空间,QEMU模块的处理器模块与存储系统之间的通信系统包括QEMU消息源、通信信道和互连模块,所述QEMU模块中消息源是产生通信的源头,包括两大类,一类是处理器节点,另一类是外部设备,不同的消息源使用不同的通道发送消息,通信信道通过进程连接QEMU模块和SystemC,所述互连模块用于传递信息。2.根据权利要求1所述的基于片上网络互连的多核存储系统仿真器,其特征在于所述pkt消息包括data字段、id字段、dest数组字段、addr字段、cur_addr字段、change_data字段、index字段;其中data字段用于存储消息中的数据;id字段用于表示路由模块的编号;dest数组字段用于表示pkt消息需要发送的目的地;addr字段表示缓存行的地址;cur_addr字段表示缓存行的起始地址;change_data字段表示写操作的数据;index字段为标记字段。3.根据权利要求2所述的基于片上网络互连的多核存储系统仿真器,其特征在于所述pkt消息中index字段为0时,表示没有特殊功能;index字段为1时,从二级缓存或DRAM中取块并返回给发送者;index字段为2时,修改二级缓存及D...

【专利技术属性】
技术研发人员:吴俊敏崔贤芬赵小雨
申请(专利权)人:中国科学技术大学苏州研究院
类型:发明
国别省市:江苏,32

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

1