发明名称 一种基于GPU的Cache模拟器及其空间并行加速模拟方法
摘要 本发明提出了一种基于GPU的Cache模拟器及其空间并行加速方法,该Cache模拟器包括Cache初始化模块、Trace预处理模块、Trace基数排序模块、Cache模拟模块及Cache模拟结果统计显示模块,本发明依托GPU强大的并行处理资源,对访存序列进行预处理,利用Cache配置文件的关联性,通过运行在GPU上的基数排序算法对访存序列进行并行排序,得到映射到每一个组上的连续的访存序列,从而进行组间并行的Cache模拟,并通过不同层次不同粒度的并行模拟算法,有效的缩短了Cache模拟时间,提高了Cache的模拟效率,精确模拟Cache的行为,并且开发环境简单,易于实现。
申请公布号 CN101814039B 申请公布日期 2011.05.18
申请号 CN201010105094.0 申请日期 2010.02.02
申请人 北京航空航天大学 发明人 万寒;高小鹏;王志强;李毅;龙翔
分类号 G06F9/455(2006.01)I;G06F12/08(2006.01)I;G06T1/20(2006.01)I;G06T1/60(2006.01)I 主分类号 G06F9/455(2006.01)I
代理机构 北京永创新实专利事务所 11121 代理人 周长琪
主权项 一种基于GPU的Cache模拟器,其特征在于,包括Cache初始化模块、Trace预处理模块、Trace基数排序模块、Cache模拟模块、Cache模拟结果统计显示模块;Cache初始化模块用于对Cache配置进行初始化,将Cache配置参数传递给Trace预处理模块和Cache模拟模块;Trace预处理模块用于从用户设定的Trace文件读取访存序列,根据Cache配置参数中的Cache的块大小和Cache组数计算访存序列中各访存记录将映射到的Cache组号,并记录映射到每个Cache组的访存记录的数量,计算每个Cache组中的第一个访存记录在整体访存序列中的下标;Trace基数排序模块用于在GPU的显存中为访存序列动态分配空间,将经过Trace预处理模块处理后的访存序列下载到分配好的GPU的显存空间,并对访存序列以Cache组号为关键字并行地进行基数排序;Cache模拟模块,在GPU上启动多个线程并行地运行,并对线程内各要模拟的Cache组内的块进行初始化,设置每一个Cache块的标记tag为0,状态state为无效Invalid,定位映射到该线程要模拟的Cache组的第一个访存记录的下标,依次读取访存记录,对于每一个访存记录,与组内的Cache块进行匹配,确定是否命中,并根据替换策略调整组内的Cache块的组织结构,若命中,则更新所命中的Cache块的state信息,更新Cache统计信息及Cache块的组织结构;若缺失,则替换Cache块,判断要替换出去的Cache块是否是脏块,若不是脏块,对该Cache块不做处理,若是脏块,则写回下一级Cache,然后更新Cache统计信息及Cache块的组织结构,同时以该访存记录访问下一级Cache;Cache模拟结果统计显示模块用于对Cache模拟模块产生的各Cache组的局部统计信息进行综合,得到整个Cache模拟的统计结果和性能参数,将其保存到结果文件或输出到终端;Cache块包括tag信息与state信息,Cache块层数由用户或Cache配置文件指定,第一层Cache块信息及各Cache组的局部统计信息存放在共享存储器Shared Memory里,其他层次的Cache块信息、各Cache组的局部统计信息与访存序列存放在全局存储器Global Memory中。
地址 100191 北京市海淀区学院路37号