存储系统 【一】

存储系统 【一】

存储系统的知识大致可分为三类:cache、虚拟存储、与cpu的通信

存储芯片

多个存储元组成的的存储矩阵M * N,用存储单元数量*位宽表示,如:32k*8bit,通过地址线在32k中选择数据行进行读写,每次读写固定为8bit。

  1. 数据线:数量等于位数,通过地址线控制门电路,从而在实现指定单元的数据读写
  2. 地址线:数量n 满足2n>=M2^{n} >= M ,比如1k有10根 ( 210=10242^{10} = 1024 )
  3. 除此之外还有片选线(选择芯片)、读写控制线等。

    32k 👉 32*1024
    8bit (位) = 1 Byte (字节),现在的32位、64位指的就是这个位
⚠️⚠️  字(word) 是指计算机体系中的基本数据单元,由 CPU 字长(word size)决定
如32位系统中 1 word = 4bytes, 而64位系统中 1 word = 8bytes

位扩展

位扩展与字扩展 ,其中字数扩展只需要通过片选线即可。
通过串连地址线、控制线等,再扩展数据线读写高低位的数据,实现用n块N bit的芯片组成n*N bit的存储器。

DRAM 与 SRAM

👆上面提到的存储元在常见的元件有电容、二极管、晶体管...,根据不同元件的特性(包括结构、速度、功耗、成本等)便有了用途各异的多种RAM,其中最为常见的就是DRAM与SRAM。

编址

Cache

CPU计算很快,但主存很慢,所以设计了一种更快的存储器: cache 。然而cache的造价很高,一般不会有很大容量。而如何提高cache的命中率便是芯片设计中的一道课题。

程序的局部性原理

因为程序的循环设计所以有:

  1. 时间局部性:现在用的数据,将来很可能依然使用
  2. 空间局部性: 现在用的数据,将来很可能使用到其物理空间相邻的数据

数据块


将相邻的内存组合成块;cache主存以字块(block)为单位进行交互 ; cpu主存cpucache 以字(wrod)为单位进行交互。

数据映射

按块编址: 对于地址xxx...x2m2^m块,只需将前m位标识为块地址,剩余为块内地址即可。
主存的块数远大于 cache的块, 即主存地址的m > cache地址的m

映射关系

全相联映射‌

‌定义‌:主存中的每一块可以映射到Cache中的任何一个位置。
‌优点‌:灵活性高,命中率高,块冲突率低。
‌缺点‌:实现复杂,成本较高,适用于小容量Cache。
‌地址结构‌:主存字块标记、字块内地址。

直接映射‌:

‌定义‌:每个主存块只能映射到Cache中的一个特定位置。(一般就是轮着来)
‌优点‌:实现简单,成本低。
‌缺点‌:命中率较低,容易出现Cache颠簸。
‌地址结构‌:主存字块标记、Cache字块地址、字块内地址。

组相联映射‌

‌定义‌:将Cache分为若干组,每个主存块可以映射到特定组中的任意一个位置。
‌优点‌:结合了直接映射的简单性和全相联映射的高命中率。
‌缺点‌:实现复杂度介于直接映射和全相联映射之间。
‌地址结构‌:主存字块标记、组地址、字块内地址。

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...