存储器¶
RAM¶
随机存取存储器(英语:Random Access Memory,缩写:RAM)。
它可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。
RAM工作时可以随时从任何一个指定的地址写入(存入)或读出(取出)信息。
特点¶
- 随机存取
- 易失性,断电就丢失数据。
- 对静电敏感,静电会干扰存储器内电容器的电荷,引致数据流失,甚至烧坏电路。
- 需要刷新,由于使用电容,电容或许会漏电,因此需要定期刷新。
SRAM¶
静态存储单元是在静态触发器的基础上附加门控管而构成的。
因此,它是靠触发器的自保功能存储数据的。
SRAM存放的信息在不停电的情况下能长时间保留,状态稳定,不需外加刷新电路,从而简化了外部电路设计。
但由于SRAM的基本存储电路中所含晶体管较多,故集成度较低,且功耗较大。
SRAM特点
* 存储原理:由触发器存储数据。
* 单元结构:六管NMOS或OS构成。
* 优点:速度快、使用简单、不需刷新、静态功耗极低;常用作Cache。
* 缺点:元件数多、集成度低、运行功耗大。
DRAM¶
DRAM利用电容存储电荷的原理保存信息,电路简单,集成度高。
由于任何电容都存在漏电,
因此,当电容存储有电荷时,过一段时间由于电容放电会导致电荷流失,使保存信息丢失。
解决的办法是每隔一定时间(一般为2ms)须对DRAM进行读出和再写入,
使原处于逻辑电平“l”的电容上所泄放的电荷又得到补充,原处于电平“0”的电容仍保持“0”,这个过程叫DRAM的刷新。
DRAM的刷新操作不同于存储器读/写操作,主要表现在以下几点
* 刷新地址由刷新地址计数器产生,不是由地址总线提供
* DRAM基本存储电路可按行同时刷新,所以刷新只需要行地址,不需要列地址
* 刷新操作时存储器芯片的数据线呈高阻状态,即片内数据线与外部数据线完全隔离
DRAM与SRAM相比具有集成度高、功耗低、价格便宜等优点,所以在大容量存储器中普遍采用。 DRAM的缺点是需要刷新逻辑电路,且刷新操作时不能进行正常读,写操作。
DRAM特点如下
* 存储原理:利用MOS管栅极电容可以存储电荷的原理,需刷新(早期:三管基本单元;之后:单管基本单元)。
* 刷新:为及时补充漏掉的电荷以避免存储的信息丢失,必须定时给栅极电容补充电荷的操作。
* 刷新时间:定期进行刷新操作的时间。该时间必须小于栅极电容自然保持信息的时间(小于2ms)。
* 优点: 集成度远高于SRAM、功耗低,价格也低。
* 缺点:因需刷新而使外围电路复杂;刷新也使存取速度较SRAM慢,所以在计算机中,DRAM常用于作主存储器。
尽管如此,由于DRAM存储单元的结构简单,所用元件少,集成度高,功耗低,所以已成为大容量RAM的主流产品。
存储类型¶
存储访问时间¶
CPU cache 架构¶

如上图所示
* 每个核独有L1指令和数据cache。
* 每个核都有L2cache。
* 所有核共享L3cahce。应该是每个CPU插槽上所有核共享。
CPU cache例子¶

如上如右下角所示:
* L1级cache分为数据和指令两种,总大小为:核心数 * cache对应大小。
* L1级cache均为8路关联。
linux下查看cache¶
linux下在/sys目录下查看cache相关信息
| Bash | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
cache结构¶
cache以固定大小的块与主存交换,该块叫做cache块,或者cache line。

如上图所示:
cache分组,每组若干行。
地址计算:
* 假设cpu访问内存使用的虚拟地址长度为m(x86-64上为48),
* cache每块大小为B字节,
* cache有S组
* 每组E个,
* tag位长度为:t = m - b - e - s
注意:
* 计算cache总大小时,不包含每行的tag和flag字段。
* 标志位实际还有效位(valid bit)、脏位(dirty bit)、使用位(use bit)等。
cache映射¶
直接关联¶
当E=1时
组关联¶
当 1 < E < S时
全关联¶
当E=S时,即为全关联
