每个程序员都应该知道的内存知识

每个程序员都应该知道的内存知识

fetch150zy

What Every Programmer Should Know About Memoey

Introduction

内存和CPU速度差距越来越大 - The CPU-Memory Gap

当然,磁盘就更慢了,所以主存作为磁盘的缓存,显然主存成为计算机的性能瓶颈

关于克服性能瓶颈的几个方向:

  1. RAM硬件层面上实现更高速以及并行化
  2. Memory控制器优化
  3. CPU cache
  4. Direct memory access (DMA)

Commodity Hardware Today

关于南北桥

  1. Northbridge

    内存控制器:RAM

  2. Sourthbridge

    IO接口:PCI-E、SATA、USB

很多操作/数据都需要经过北桥,造成很多性能瓶颈

Better

image-20240310175628142

北桥和内存分离的设计,瓶颈变成北桥

NUMA (Non-Uniform Memory Architecture)

image-20240310180543766

RAM Types

  • static RAM (SRAM),用于cache

  • dynamic RAM (DRAM),用于主存

现在主存采用的大多是SDRAM,属于DRAM