月度归档: 2022 年 4 月

8 篇文章

(前置知识)简单介绍下Y86指令集的理解
在深入理解计算机系统这本书中,根据x86架构简化后给了一个Y86架构,其中第一个就是关于指令集的解释 先给出一张图 halt指令表示停止指令的执行nop指令占位符,控制时序的目的,强制内存对齐,防止流水线灾难rrmovq表示寄存器到寄存器的传送指令,下面几个指令同理,ir表示立即数到寄存器,rm表示寄存器到内存,mr表示内存到寄存器Opq指令是整数…
几个基本的缓存优化方法
前面已经介绍了一大堆关于cache的技术,那有没有cache优化的方法呢?毕竟我们的应用最终还是要通过优化来增加性能,下面介绍6个缓存优化方法 前面我们提到过,平均内存访问时间可由公式表示: $$\begin{array}{l}Average \ memory \ access \ time = Hit \ time + Miss \ rate \…
总结几个性能计算公式
$$\begin{array}{l}计算cache指引大小: \\2^{index}=\frac{Cache \ size}{Block \ size \times Set \ associativity} \ {\color{Red} 1} \\CPU \ execution \ time = (CPU \ clock \ cycles + Me…
缓存遇到写入时会发生什么
基本上访问cache的操作都是读,写占少数,而所有的指令缓存访问都是读,大多数指令不会写入到内存,所以大多数情况优化cache代表着优化cache read,特别是因为处理器传统上等待读取完成但不需要等待写入 cache读操作时,block的数据读取和tag域检验可以在同时进行,所以只要一拿到block address时就可以直接从缓存中读取数据,…
当遇到cache miss时的替换策略
当遇到cache miss发生时,缓存管理需要选择一个block替换需要存储的数据 当直接映射时非常简单,因为直接映射只有一个block,正好对应,选择block替换即可 当是多路组相联和全相联时,由于有许多block可以被挑选替换,就需要进行选择,主要有三种方法: 随机:随机挑选一个block进行替换最近最少使用(LRU):为了减少信息最近需要被…
简单谈一下cache性能问题
之前已经提到了很多关于cache的相关知识,我们知道,cache命中和未命中造成的性能差异会很大,两种时钟周期差异可以到达10倍以上。简单来说,我们可以将CPU运行时间用以下的式子表示 \( CPU \ execution \ time = (CPU \ clock \ cycles + Memory \ stall \ cycles ) \tim…
记录下cache访问原理
假设我们现在有一个8位的cache 高速缓存 一个32位的存储器 存储器 几乎所有的直接映射cache都使用以下的映射方法: \( (块地址) mod (cache中的块数) \) 所以我们只需要取存储器后面3位来映射到高速缓存 如图所示 由于一个cache可以对应主存中多个不同的地址,如何知道cache中的数据项是否是所请求的字呢?我们在cach…
巨页对性能影响
注意:巨页HP和THP不是一回事,HP俗称静态巨页,THP称为动态巨页,静态巨页是进程前用户自己定义好的,预分配,不会复制迁移,不会被转到swap分区,而THP由于是动态巨页,动态分配,会将内存复制迁移成巨页,造成性能消耗,几乎所有数据库应用都建议将THP关闭 先说结论: 页表大小跟页大小成反比(这里我觉得应该是页表数量,但是原文使用size),当…
Theme Argon
本网站自 2020-12-24 12:00:00 起已运行