gem5中缓存替换算法主要代码分析

零零散散记录看缓存替换算法源代码时,看到的一些能够和平时理论对应上,并能够加以解释的部分源代码。

阅读更多

Github/码云的ssh免密连接

我的虚拟机上面有两个.ssh文件夹,第一个在/home/malizhen/.ssh目录,用于本机和虚拟机之间的通信,在VSCode中实现本地主机远程登录虚拟机,见搭建与配置下的【VSCode:Remote-SSH配置】博文记录。为方便后期管理,将gem5/nvmain项目部署到码云上,而git项目也基于ssh的原理,就有了我的第二个ssh在/root/.ssh目录,也就是很多博客中说的~/.ssh目录。

阅读更多

FlipNWrite源码解析与修改

在阅读nvmain源码的过程中,发现nvmain里面自带有FlipNWrite的实现方法,只是默认的编码方式并不是FlipNWrite而是default。这是我试着自己修改nvmain代码的第一步,在config配置文件中设置编码方式,这样有一个好处,不用去修改源码,不需要重新编译,方式为根据config文件语法直接设置:DataEncoder FlipNWrite。运行测试命令:

阅读更多

PCM_ISSCC_2012_4GB配置文件参数解析

本文的参考内容来自于MEMORY SYSTEMS Cache,DRAM,Disk这本书,作者为BRUCE JACOB,SPENCER W.NG,DAVID T.WANG。(链接)

阅读更多

BDI源码分析

之前博客有记录BDI压缩算法以及FPC压缩算法的论文阅读记录,在github上面找到了对应的源码来源,基于对这两种压缩算法的理论理解,详细分析算法源码。

阅读更多

FPC源码分析

之前博客有记录BDI压缩算法以及FPC压缩算法的论文阅读记录,在github上面找到了对应的源码来源,基于对这两种压缩算法的理论理解,详细分析算法源码。

阅读更多

gem5主函数main.py

根据gem5的fs测试结果,结合源码分析gem5执行模拟的过程。直接摘取出主函数分析并注释,涉及到的比较重要的其他函数也会在后面一并说明。

阅读更多

SubArray.cpp分析

在nvmain的源代码中,可以看到EnergyModel有两种,energy和current。

阅读更多

Compression Architecture for Bit-write Reduction

Compression Architecture for Bit-write Reduction in Non-volatile Memory Technologies(原文链接)。本文提出了一个基于压缩的架构,实现位写减少。位写减少有很多的好处,包括降低写延迟、降低动态功耗、提高耐受力。提出一个集成进NVM模块的架构,包括(i)一个频繁模式压缩-解压引擎;(ii)和一个比较器协同工作实现减少位写;(iii)一个投机取巧的磨损均衡方案,通过减少部分cell位反复写,平衡分布写,提高内存的耐受力。

阅读更多

Frequent Pattern Compression

Frequent Pattern Compression: A Significance-Based Compression Scheme for L2 Caches( 原文链接)。随着处理器和内存速度之间差距的扩大,内存系统设计人员可能会发现缓存压缩有利于增加缓存容量和减少片外带宽。大多数硬件压缩算法都属于基于字典的类别,这依赖于构建字典并使用其条目对重复数据值进行编码,在压缩大数据块和文件时非常有效。然而,cache line通常为32-256 bytes,每行字典的开销很大,这限制了这种算法的可压缩性,并增加了解压缩延迟。对于这样的短行,基于重要性的压缩可以考虑。

阅读更多