分类: 学术

CacheSim-2 类的设计

Introduction CacheSim 简单的Cache模拟器 专辑目录本文说明了模拟的Cache需要完成的功能,以及大体框架设计,通过头文件内容的说明,使读者获得整体的认识。 1.模拟Cache需要完成的功能 1.1 指令读取 由于主存访问trace以文件形式给出,trace文件下载所以需要从文件中读取访存trace。其中trace的格式如下: s 0x1fffff50 1 每行的第一个字符是表示该条指令的类型,s为写(store),r为读(read)。中间的十六进制数为内存地址,最后一个...

CacheSim-1 Cache背景知识简介

Introduction CacheSim 简单的Cache模拟器 专辑目录 本文简要介绍Cache的背景知识,以及Cache结构的划分。 在计算机系统中,CPU高速缓存(英语:CPU Cache,在本文中简称缓存)是用于减少处理器访问内存所需平均时间的部件。在金字塔式存储体系中它位于自顶向下的第二层,仅次于CPU寄存器。其容量远小于内存,但速度却可以接近处理器的频率。 当处理器发出内存访问请求时,会先查看缓存内是否有请求数据。如果存在(命中),则不经访问内存直接返回该数据;如果不存在(失效),...

手把手教你写Cache模拟器

Introduction 项目地址: 也放到了CacheSim-开源中国上 这个专辑记录了写一个非常简单的cache模拟器的过程。 主要是因为我要做的研究里,使用gem5来跑程序太慢了,所以只能自己在项目里实现一个简易的cache模拟器,获得一些实验数据。 正好加州大学圣迭戈分校(University of California, San Diego,简称为UCSD,又常译为加州大学圣地亚哥分校)有一门Principles of Computer Archictecture的课程,其中有个cac...

NVIDIA Tegra TK/X系列板子的零拷贝(zero copy)问题

Introduction 本文原本系翻译,原文地址:Zero Copy on Tegra K1,后(2017.8.25)经学长(http://zangcq.me)指出文章错误,更新部分内容。 之前写过的关于cuda 零拷贝的文章: CUDA零复制内存 CUDA锁页内存和零复制 以下是NVIDIA论坛和Google Groups里关于tegra板子零拷贝的讨论,给出的观点也是零拷贝在unified memory上是没有发生copy行为的,强烈推荐看他们的讨论,可能需要翻墙。 Jetson TK1 ...

Linux查看cache信息

Introduction 本文介绍了如何在linux下查看cache的信息,并进行简单的分析。 unix设计哲学 一切皆文件 Linux也很好的继承了这个理念。 cpu cache 我的cpu: Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz cpu文件 文件夹/sys/devices/system/cpu就是对cpu的文件映射。进入以后,随便进一个cpu核,可以看到cache文件夹,tree以后: . ├── index0 │ ├── coherency_lin...

GPU寄存器

Introduction 本文将简单介绍GPU中的寄存器。 寄存器 寄存器是GPU片上高速缓存, 执行单元可以以极低的延迟访问寄存器。寄存器的基本单元式寄存器文件,每个寄存器文件大小为32bit。局部存储器对于每个线程,局部存储器也是私有的。如果寄存器被消耗完。数据将被存储在局部存储器中。如果每个线程使用了过多的寄存器,或声明了大型结构体或数据,或者编译器无法确定数据的大小,线程的私有数据就有可能被分配到local memory中,一个线程的输入和中间变量将被保存在寄存器或者是局部存储器中。局部...

arm的cache lock down(cache 锁)

Introdution arm官方手册中关于cache lock down的部分Arm9 Processers的Rev0.ARM940T Technical Reference Manual.Caches and Write Buffer Cache lock down部分。鉴于我的水平,请和上面官网的文档部分结合查看,本文主要是对上文的翻译。如有纰漏,恳请指正。绝大多数情况下cache对程序员都是透明的,但是仍然会出现要求cache line不要被替换的需求出现,所以大多数架构都支持对cach...

多级cache的管理策略

Exclusive vs Inclusive cache的多级管理策略wiki上的说明部分 Multi-level caches introduce new design decisions. For instance, in some processors, all data in the L1 cache must also be somewhere in the L2 cache. These caches are called strictly inclusive. Other proc...

Gem5 安装记录

Introduction GEM5是一款模块化的离散事件驱动全系统模拟器,它结合了M5和GEMS中最优秀的部分,是一款高度可配置、集成多种ISA和多种CPU模型的体系结构模拟器 本文记录了我安装gem5安装的过程。我的所有压缩包都放在了~/gem5/下,最后安装出来的路径是~/gem5/gem5-stable,你可以根据自己的情况执行下面的命令所有的压缩包都在这里:gem5的百度云分享里面还有个很好的入门教程gem5_hipeac.pdf 安装步骤 sudo apt-get update # 安...

nvida jetson Tegra k,x系列ubuntu系统源设置

由于是arm平台,使用的应该是arm hf。教育网支持ipv6,改为国内的源更新会更快,速度可到10MB/s. 国内教育网的源 deb http://ipv6.mirrors.ustc.edu.cn/ubuntu-ports/ xenial main restricted universe multiverse deb-src http://ipv6.mirrors.ustc.edu.cn/ubuntu-ports/ xenial main restricted universe multive...