标签: cache

1

CacheSim-5 实验数据分析

Introduction CacheSim 简单的Cache模拟器 专辑目录本文统计了组相联路数、cache_line_size,cache_size以及替换策略对miss率和读写通信数据量的影响,并以图表的形式展现出来。 1. 组相联路数的影响 不变条件:cache_line_size 32bytes,LRU,Cache_size 32KB 组相联路数 miss率 1 1.735562 2 1....

1

CacheSim-4详细实现cache miss以后的操作

Introduction CacheSim 简单的Cache模拟器 专辑目录本文主要介绍cache miss以后的操作。接上一章的cache hit以后的操作,如果miss了 index = get_cache_free_line(set_base); set_cache_line((_u32)index, addr); if (is_read) { cache_r_count++; } else...

1

CacheSim-3 详细实现check_cache_hit等函数

Introduction CacheSim 简单的Cache模拟器 专辑目录本文详细说明load_trace、check_cache_hit等函数。 1.程序入口 main.cpp主要针对一个测试文件,配置了不同cache line大小,不同组相联路数,不同的替换策略。默认使用写回法。默认cache大小32KB(0x8000 Bytes)。在每次循环里,首先初始化cache的配置,然后设置替换策略...

1

CacheSim-2 类的设计

Introduction CacheSim 简单的Cache模拟器 专辑目录本文说明了模拟的Cache需要完成的功能,以及大体框架设计,通过头文件内容的说明,使读者获得整体的认识。 1.模拟Cache需要完成的功能 1.1 指令读取 由于主存访问trace以文件形式给出,trace文件下载所以需要从文件中读取访存trace。其中trace的格式如下: s 0x1fffff50 1 每行的第一个字符...

1

CacheSim-1 Cache背景知识简介

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

5

手把手教你写Cache模拟器

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

1

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核,可以看...

2

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对程序员都...

0

多级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. Thes...