内存
tsz danger
这个作者很懒,什么都没留下…
展开
-
Skewed Compressed Caches论文解读
文章目录写在前面文章主旨写在前面很久没写cache压缩的论文了,这次从硬件看看压缩方案文章主旨在现代处理器中,末级缓存(llc)减轻了片外主存储器的带宽限制、高延迟和高能量。增加末级缓存的规模可以提高系统的性能和能源,但代价是面积和功率管理费用高。缓存压缩旨在利用较小缓存的面积和功率,实现较大缓存的好处。压缩缓存通过压缩和压缩缓存块来增加有效容量。压缩缓存设计必须平衡三个经常发生冲突的...原创 2020-04-11 22:18:57 · 578 阅读 · 0 评论 -
FlipNwrite代码解析
#include "DataEncoders/FlipNWrite/FlipNWrite.h"#include <iostream>using namespace NVM;FlipNWrite::FlipNWrite( ){ flippedAddresses.clear( ); /* Clear statistics */ bitsFlipped...原创 2020-04-07 19:53:05 · 423 阅读 · 1 评论 -
NVMAIN 源码解析
void EventQueue::Loop( ncycle_t steps ){ /* Special case. */ if( steps == 0 && nextEventCycle == currentCycle ) { Process( ); return; } ncycle_t stepCycle...原创 2020-04-06 23:37:24 · 459 阅读 · 0 评论 -
DFPC NVM源码增添解析
源码增添分为三个部分部分一NVMain::NVMain( ){ config = NULL; translator = NULL; memoryControllers = NULL; channelConfig = NULL; syncValue = 0.0f; preTracer = NULL; totalReadRequests ...原创 2020-04-06 23:36:49 · 441 阅读 · 0 评论 -
PARSEC 13个benchmark的类别
总共是有13个benchmark的它们的所属类别如下原创 2020-04-05 17:24:01 · 1024 阅读 · 0 评论 -
DFPC的BDI压缩代码详解
multBaseCompressionuint64_t FRFCFS::multBaseCompression ( uint64_t * values, uint64_t size, uint64_t blimit, uint64_t bsize, uint64_t *currWords, uint64_t *currWordPos, uint64_t &pos){ uint6...原创 2020-04-02 18:34:32 · 579 阅读 · 0 评论 -
计算机体系结构学习HW(2)
文章目录写在前面DRAM FRESH前提条件Q2写在前面本分析基于ETH的ETH 263-2210-00L Computer Architecture, Fall 2019DRAM FRESH前提条件一个存储系统有四个通道,每个通道都有两组rank的DRAM芯片。每个内存通道都由一个单独的内存控制器控制。每个rank的DRAM包含八个bank。一个bank包含32K行。一个bank中的每...原创 2020-03-31 16:38:09 · 618 阅读 · 0 评论 -
计算机体系结构学习HW(1)
文章目录写在前面DRAM FRESH前提条件Q1Q1解答写在前面本分析基于ETH的ETH 263-2210-00L Computer Architecture, Fall 2019DRAM FRESH前提条件对于具有4 GB DRAM主存系统且每64毫秒刷新一行的计算机,请回答以下问题。Q1在机器上独立运行两个应用程序(A和B)期间,您会发现应用程序A的内存暂停周期要比应用程序B大得...原创 2020-03-31 15:14:25 · 938 阅读 · 0 评论 -
DFPC的FRFCFS详解
下面给出DFPC的FRFCFS解析首先看看头文件里面多出了什么//EDFPCscheme#define SAMPLECOUNT 128#define FPCCOUNT 3#define BDICOUNT 8#define DYNAMICWORDSIZE 8 //chars原创 2020-03-31 10:33:46 · 2550 阅读 · 0 评论 -
DCW论文解读
写在前面本文题目是A Low Power Phase-Change Random Access Memory using a Data-Comparison Write SchemeDCW方案在写操作期间读取存储的数据。然后,仅当输入数据和存储数据不同时才写入输入数据。原论文是韩语暂时没找到,不过2007年的了估计有用的就这么一句话足矣...原创 2020-03-29 18:57:52 · 679 阅读 · 0 评论 -
数据压缩学习(二)
本节介绍一些传统的数据压缩办法首先指明,这些算法有很多的应用但是也有很多的缺陷传统上,数据缩减是使用字典模型来识别短字符串冗余的数据压缩方法的结果,例如经典的LZ77/LZ88算法。大多数方法首先计算字符串的弱散列,然后逐字节比较散列匹配的字符串。由于时间和空间的复杂性,基于字典模型的压缩方法,如LZO、LZW、DEFLATE,只压缩较小区域中的数据,例如,文件或一组小文件中的数据,这将处理速...原创 2020-03-29 18:50:14 · 750 阅读 · 0 评论 -
DFPC论文解读
文章目录写在前面背景知识已有方案动态patternDFPC核心思想采样阶段分析阶段双模式压缩阶段写在前面本文是cache压缩系列的第九篇,也是目前阶段的最后一篇了背景知识随着大量待处理数据的快速增长,部署大型主存储器的需求越来越大。然而,作为主存储器的传统DRAM技术在单元可扩展性方面面临着巨大的挑战还有电力泄漏。非易失性存储器(nvm),例如相变存储器(PCM)和电阻随机存取内存(R...原创 2020-03-29 17:59:38 · 1333 阅读 · 1 评论 -
FRFCFS详解
首先给出源代码头文件的#ifndef __FRFCFS_H__#define __FRFCFS_H__#include "src/MemoryController.h"#include <deque>namespace NVM {class FRFCFS : public MemoryController// FRFCFS是继承自内存控制的一个子类{ p...原创 2020-03-28 19:20:02 · 2187 阅读 · 0 评论 -
什么是cpu/cache stall
stall的概念:它是停止运转的意思,发生在当cpu执行时,所需要的数据却不在寄存器或cache中,需要去装载内存的数据,这期间有一个等待,这里叫做stall。这个时间大概是several hundred clock cycles。现代操作系统所提供的CPU利用率的数据包括了CPU的stall,实际上stall期间CPU并没有工作。bool FRFCFS::IsIssuable( NVMain...原创 2020-03-28 18:24:38 · 4871 阅读 · 1 评论 -
DFPC源码解读
看看newdatablock的头文件#ifndef __NVMDATABLOCK_H__#define __NVMDATABLOCK_H__#include <vector>#include <stdint.h>#include <ostream>namespace NVM {class NVMDataBlock{ public: ...原创 2020-03-28 16:46:45 · 643 阅读 · 0 评论 -
NVMain详解
本节主要探讨NVMDataBlock这个模块NVMDataBlock.h文件#ifndef __NVMDATABLOCK_H__#define __NVMDATABLOCK_H__#include <vector>#include <stdint.h>#include <ostream>namespace NVM {class NVMDat...原创 2020-03-28 10:45:33 · 1388 阅读 · 0 评论 -
近年Cache 缓存的研究论文解读汇总
文章目录这个论文解读系列是什么为什么写这个系列论文详情这个论文解读系列是什么本系列收录了从2004年到2020年关于cache compression 和NVM的有关研究论文并做一个汇总为什么写这个系列最近在研究cache 压缩方面的有关内容,发现目前没有这方面的详细梳理,于是乎自己每两天读一篇论文,做一个合集,供大家参考论文详情FVC解读FPC压缩论文解读FLIP-N-WRIT...原创 2020-03-21 11:33:12 · 2858 阅读 · 1 评论 -
Base-Victim Compression论文解读
文章目录写在前面背景知识论文贡献写在前面本篇是cache压缩论文解读的第八篇,题目是Base-Victim Compression: An Opportunistic Cache Compression Architecture ,作者是来自intel的三位研究人员背景知识在过去的几十年里,处理技术的进步显著地提高了CPU的性能。不幸的是,存储技术并没有以同样的速度发展。每当必须从内存中完...原创 2020-03-21 11:30:59 · 1139 阅读 · 0 评论 -
FVC解读
文章目录写在前面FVC核心思想数据压缩方法写在前面本文是cache压缩有关论文解读的第6篇,主要介绍一种叫做Frequent Value Compression (FVC)的技术。本来是不打算写FVC的,但是偶然读了一篇质量不错的论文中有很好的例子,就稍微记录一下。FVC核心思想通常在程序执行期间,内存中的大多数位置都会被一小组不同的值占据。作者可以利用这些知识创建一个“频繁值缓存”,它与...原创 2020-03-19 12:31:54 · 2850 阅读 · 0 评论 -
COMPRESSION ARCHITECTURE FOR BIT-WRITE REDUCTION IN NON-VOLATILE MEMORY TECHNOLOGIES论文解读
文章目录写在前面背景知识已有工作扩展知识改进方向写在前面本文是CACHE压缩研究系列的论文解读第7篇,本论文题目是COMPRESSION ARCHITECTURE FOR BIT-WRITE REDUCTION IN NON-VOLATILE MEMORY TECHNOLOGIES,作者是来自 University of Pittsburgh 的 David Dgien背景知识这些新的非...原创 2020-03-19 12:17:32 · 1345 阅读 · 0 评论 -
Compression-Expansion Coding Improvements in MLC/TLC NVM论文解读
写个标题,明天开工(这玩意儿30页)写在前面本论文原标题是 CompEx++: Compression-Expansion Coding for Energy, Latency, and Lifetime Improvements in MLC/TLC NVMs原创 2020-03-18 22:06:05 · 1477 阅读 · 0 评论 -
BDI压缩 Base-Delta-Immediate Compression: Practical Data Compression for On-Chip Caches 论文解读
文章目录写在前面背景知识写在前面本篇是CACHE压缩技术的第五篇,解读的论文是Base-Delta-Immediate Compression: Practical Data Compression forOn-Chip Caches作者是来自CMU和INTEL的实验室的研究人员其他Cache压缩、Cache原理的文章链接如下:FPC压缩论文解读FLIP-N-WRITE详解数...原创 2020-03-17 22:59:41 · 2538 阅读 · 0 评论 -
Mysql中的语句优化
文章目录写在前面对比开始1. count(1) VS count(*)2. where num is null VS where num = 03. in VS exists4. 关于计数和排序的问题阶段总结一阶段总结二写在前面本文针对Mysql中的各种语句进行对比,给出尽可能真实的语句分析,帮助大家优化自己的sql查询。本文所用测试数据库为官方数据库。在做MySQL数据库测试时苦于没有...原创 2020-03-17 21:58:45 · 956 阅读 · 2 评论 -
FPC压缩论文解读
文章目录写在前面背景知识题外话写在前面最近看着方面的工作,争取每天读一篇论文做一个合辑。本篇论文的题目是Frequent Pattern Compression: A Significance-Based Compression Scheme for L2 Caches背景知识随着处理器和内存速度之间的差距越来越大,内存系统设计者可能会发现缓存压缩有利于增加缓存容量和减少片外带宽。大多...原创 2020-03-16 15:15:29 · 2752 阅读 · 0 评论 -
FLIP-N-WRITE详解
文章目录写在前面什么是FLIP-N-WRITE为什么要FLIP-N-WRITEFLIP-N-WRITE的主要思想DCW(数据压缩写入)写在前面网上看了半天都没有写这方面的文章,索性把论文弄下来自己看了看。什么是FLIP-N-WRITEFlip-N-Write,一种简单的微体系结构技术,用更高效的读修改写操作取代PRAM写操作为什么要FLIP-N-WRITE相变随机存取存储器(PRA...原创 2020-03-15 23:28:16 · 2234 阅读 · 0 评论 -
gem5中正确使用缓存的方法
本节博客参考官网和人间之清欢的博客开始以为自己指定了缓存的大小,命令如下build/X86/gem5.opt configs/example/se.py --cmd=tests/test-progs/hello/bin/x86/linux/hello --cpu-type=TimingSimpleCPU --l1d_size=64kB --l1i_size=16kB然后grep一下发现结果...原创 2020-03-11 15:11:58 · 1911 阅读 · 0 评论 -
gem5报错
gem5 报错panic: panic condition fd < 0 occurred: Failed to open file /home/ubuntu/skywf/gem5/configs/tutorial/…/…/…/tests/test-progs/hello/bin/x86/linux/hello.原因:相对路径不对重新更改路径配的脚本有问题,需要自己根据learni...原创 2020-03-11 14:18:48 · 2315 阅读 · 2 评论 -
NVM小白入门
本博客基于NVMain运行机制深入了解之这里是原博客原创内容占比94%,恶黑麻烦右上角和别人一上来就拿着源码分析不太一样,我喜欢看看具体的结构为了方便展示我就windows下看了首先是banks文件夹DDR3是一种计算机内存规格。它属于SDRAM家族的内存产品,提供了相较于DDR2 SDRAM更高的运行效能与更低的电压,是DDR2 SDRAM(同步动态动态随机存取内存)的后继者(增...原创 2020-03-11 14:17:48 · 1121 阅读 · 0 评论 -
gem5报错AttributeError: object 'System' has no attribute 'cpu' (C++ object is not yet constructed, s
gem5报错Traceback (most recent call last): File "<string>", line 1, in <module> File "build/X86/python/m5/main.py", line 457, in main exec(filecode, scope) File "configs/tutorial/...原创 2020-03-11 14:01:06 · 2033 阅读 · 0 评论 -
gem5报错 'KB'
gem5报错信息是KB原因,对大小写区分的必须是kB, 前者小写后者大写原创 2020-03-11 12:17:21 · 784 阅读 · 1 评论 -
python-RuntimeError: maximum recursion depth exceeded
gem5中出现python-RuntimeError: maximum recursion depth exceeded原因: init没有super自己的父类def __init__(self, opts=None): super(L1ICache, self).__init__(opts) if not opts or not opts.l1i_size:...原创 2020-03-10 23:41:32 · 995 阅读 · 0 评论 -
CPU AtomicSimple和TimingSimple的区别
做gem5的时候偶然看到了这两种方式,记录下来参考资料论文这里存在一个字节对齐的问题,还没理解透彻暂时记下来原创 2020-03-10 11:55:29 · 1433 阅读 · 0 评论 -
gem5cache参数
他人解释assoc代表关联度,tag_latency代表标签查找延迟,data_latency代表数据访问延迟,response_latency代表miss后的返回延迟。 assoc = 2 tag_latency = 2 data_latency = 2 response_latency = 2 mshrs = 4 tgts_per_mshr ...原创 2020-03-10 11:25:21 · 1627 阅读 · 0 评论 -
什么是MSHRS
assoc = 2 tag_latency = 2 data_latency = 2 response_latency = 2 mshrs = 4 tgts_per_mshr = 20assoc 组相联mshrs cache的失效状态保存寄存器原创 2020-03-10 11:10:33 · 1560 阅读 · 3 评论 -
计算机系统组成与GEM5
本文主要介绍1.计算机内部存储结构是怎么样的2. 用GEM5和NVMain完成研究的策略3. 具体的代码实现考研啥都不知道的人士适合想了解计算机内部结构的人士/想做一些内存研究但是苦于没有教学资源的人士/笔者也是个新手,所以不正确的地方还请多多指教参考的博客和论文博客1:1 0005641( 2014) 05— 0133— 08面向混合内存体系结构的模拟器预备知识懂得...原创 2020-03-09 12:28:36 · 1931 阅读 · 0 评论 -
数据压缩学习(三)
本节回到主题-数据去重块级重复数据消除主要流程chunking 分块fingerprinting 指纹indexing of fingerprints 指纹索引further compression 进一步压缩(可选)storage management. 存储管理 在这里实际上有很多问题,例如索引过大超过RAM怎么做缓存,以及真实数据存放在哪里、如何寻找以及如何完成IO操作等一...原创 2020-03-08 16:50:19 · 1420 阅读 · 0 评论 -
数据压缩学习(一)
数据压缩之数据去重简介什么是Data deduplication数据去重,简单地说就是重复数据删除。从某种意义上说也是一种数据压缩技术。数据去重的优势节约磁盘空间:对于村出在同一个磁盘上的同一个文件或者是不同的文件之间的重复数据删除可以大大减少磁盘的使用量。节约网络带宽:去重之后的数据在网络上传输可以大大降低网络资源的占用。很多网络同步工具都采用源端数据去重后再上传数据以节约网络带宽...原创 2020-03-08 11:50:29 · 1745 阅读 · 0 评论 -
gem5和NVM的搭建(完整版)
搭建gem5和NVM搭建环境主要参考资料主要参考的博客资源下载由于hg挂了,而且我用的是云机,很多国内的流量无法clone,只好下好了上传,这里整理了过程中用到的所有资源步骤流程路径说明+-- nvmain|+-- gem5|+-- fs-image|+-- benchmark 它们是同一路径!!!正式开始安装nvmwget https://bitbuck...原创 2020-03-08 00:12:54 · 3865 阅读 · 4 评论 -
NVMain和Gem5环境搭建(三)
Gem5环境搭建hg的搭建HG(Mercurial)介绍:Mercurial是一款非常优秀的分布式版本控制系统(DCVS),具有高效率、跨平台、可扩展、使用简便且开源等优点,是目前最为流行的版本控制工具之一。Mercurial英文意为水银,所以常被缩写为Hg。sudo pip install mercurialubuntu@VM-0-5-ubuntu:~$ sudo pip ins...原创 2020-03-03 19:47:14 · 1787 阅读 · 1 评论 -
NVMain和Gem5环境搭建(二)
环境说明由于前几天搞scala(当然主要原因是穷),就把腾讯云的学生机拿出来鼓捣鼓捣然后宝塔连进去+VSCODE SSH 配置如下 操作系统Ubuntu Server 16.04.1 LTS 64位CPU1核内存2GB公网带宽1Mbps这里一直有个问题,就是vscode ssh连进去由于没有sudo权限导致每次改文件都很麻烦,以往用centos倒是没有这个问题,记下来想办法...原创 2020-03-03 12:35:53 · 2433 阅读 · 0 评论