重要
这个话题太大了,没想到写了这么多,后面还有很多要补充的。
1. Abstract
缓存(Cache)是计算机体系结构中用于加速内存访问的重要组件。本文系统地研究了缓存的基本概念、局部性原理、缓存映射方式、替换策略、缓存未命中处理方法及多处理器环境下的缓存一致性协议。通过分析不同缓存策略对系统性能的影响,我们探讨了如何优化缓存设计,以提高数据访问效率,降低缓存未命中率(Miss Rate),从而提升整体计算机系统的性能。
重要
这个话题太大了,没想到写了这么多,后面还有很多要补充的。
缓存(Cache)是计算机体系结构中用于加速内存访问的重要组件。本文系统地研究了缓存的基本概念、局部性原理、缓存映射方式、替换策略、缓存未命中处理方法及多处理器环境下的缓存一致性协议。通过分析不同缓存策略对系统性能的影响,我们探讨了如何优化缓存设计,以提高数据访问效率,降低缓存未命中率(Miss Rate),从而提升整体计算机系统的性能。
Example[1]:
#include <stdio.h>
int add(int i, int j)
{
int res = 0;
__asm ("ADD %[result], %[input_i], %[input_j]"
: [result] "=r" (res)
: [input_i] "r" (i), [input_j] "r" (j)
);
return res;
}
int main(void)
{
int a = 1;
int b = 2;
int c = 0;
c = add(a,b);
printf("Result of %d + %d = %d\n", a, b, c);
}
本文章作为一个 ARM 指令的速查表使用。
MNEMONIC{S}{condition} {Rd}, Operand1, Operand2
本文主要讲述和理解虚拟内存(后文简称 VM, VA 等)、Page、TLB 的概念,行文可能较为跳跃,需要特别注意。
什么是虚拟内存?
Virtual memory is a technique used by operating systems to enable programs to use more memory than is physically available in the system. When a program accesses memory, the address it uses is a virtual address, which is translated by the hardware into a physical address that corresponds to a location in physical memory. This translation process can be slow, especially if it has to be performed every time the program accesses memory.
在服务器架构中,NUMA(Non-Uniform Memory Access)和 Socket(CPU 插槽)是紧密相关但又不同的概念:
1. NUMA 体系结构
NUMA 是一种内存访问架构,在多处理器系统中,每个 CPU 访问本地内存的速度比访问远程(其他 CPU 连接的)内存更快。NUMA 的关键点:
• 每个 NUMA 节点(Node)包含一个或多个 CPU 核心及其本地内存。
• 访问本地 NUMA 节点的内存(Local Memory)速度更快,而访问远程 NUMA 节点的内存(Remote Memory)则会有更高的延迟。