Chap3 Memory Architectures¶
Types of memory¶
存储器分类
- 非易失存储器(Non-Volatile Memory
) :Preserves contents when power is off- 可擦除可编程只读存储器(erasable programmable read only memory, EPROM
) :可以被紫外线擦除并重新编程 - 电可擦除可编程只读存储器(electrically erasable programmable read only memory, EEPROM
) :可以通过电子方式擦除或编程 - Flash 存储器
- 磁盘存储器:辅助存储器,存储容量大但访问速度慢,一般不用于嵌入式系统
- 可擦除可编程只读存储器(erasable programmable read only memory, EPROM
- 易失存储器(Volatile Memory
) :Loses contents when power is off- 静态随机访问存储器(static random-access memory, SRAM
) :速度快,不需要刷新,成本高,常用于高速缓存(caches) 、暂存器(scratchpads) - 动态随机访问存储器(dynamic random-access memory, DRAM
) :需要定期刷新以保存数据,成本低,常用于主存(main memory) - Boot loader:On power up, transfers data from non-volatile to volatile memory
- 静态随机访问存储器(static random-access memory, SRAM
Flash
Flash 是嵌入式系统广泛采用的主流存储器,主要特点是 ** 按整块擦除 ** 和 ** 按字节编程 **,具有低功耗、高密度、小体积等优点
块擦除:把数据块的所有位,置为逻辑 1,即浮栅晶体管电荷释放
按字节编程:将字节的相应位从 1 变成 0(不能从 0 变成 1,要擦除)
- NOR Flash( 随机读取 )
- 读取速度快,擦除和写速度慢
- 存储容量小,适用于存储嵌入式系统的 ** 固件 / 程序代码 **,如 BIOS 芯片
- NAND Flash( 按块读取 )
- 读取速度慢,擦除和写速度快
- 存储容量大,常用于存储 ** 数据 **,如 USB 驱动器、SSD
SRAM 存储单元
- 基本存储单元通常由 6 个晶体管组成(4 个 N 沟道 MOS 管和 2 个 P 沟道 MOS 管)组成,构成一个双稳态触发器
- 双稳态存储器可以稳定存储一个比特的数据,只要不断电,数据就会一直保持
- 进行读写操作时,通过字线(Word Line)和位线(Bit Line)来控制存储单元,字线激活时,存储单元和位线连接,进行数据的读写
- 随机访问时延接近逻辑门延迟,读写一次即可得到
DRAM 存储单元
- 基本存储单元由一个晶体管和一个电容组成,数据以电荷的形式存储到电容中,有电荷表示 1,无电荷表示 0
- 由于电容存在漏电现象,所以电容上存储的电荷会逐渐丢失,需要定期刷新保持数据的正确性
- 存取时,先进行行选通(Row Address Strobe, RAS
) ,再列选通(Column Address Strobe, CAS) ,一次完整访问需要 2~3 个阶段
Scratchpad:Scratchpad Memory 是集成到芯片上的非 cache 用途的 SRAM 存储器的统称,通常指的是 ** 专用的、显式管理 ** 的高速存储区,有时也称为 **Tightly Coupled Memory(TCM)**
Cache:是一种 ** 硬件管理的、自动执行的 ** 数据缓冲存储器,位于主存和处理器之间,旨在缓存最近使用或常用的数据,以加速对内存的访问
存储器性能指标:存储容量、访问时间、带宽、成本、可靠性
Memory organization¶
内存组织是指程序运行时在内存中的布局方式
静态分配内存(Statically-allocated memory
动态分配内存(Dynamically-allocated memory
栈(Stack
堆(Heap
Memory map¶
操作系统和硬件通过地址转换,将连续地址空间的逻辑地址转换为某个存储器的物理位置
处理器的存储器映射(memory map)定义了如何将地址映射到硬件,且处理器的地址宽度限定了地址空间的总大小
Memory Management Unit¶
如果处理器具有内存管理单元(Memory Management Unit
Memory hierarchies¶
在现代计算机中,为了平衡不同类型的内存之间的速度、成本和容量,内存被组织成一个层次结构
Basic cache organization structure¶
- 有效标签块(Valid Tag Block
) :表示缓存行是否有效 - 集合索引(Set Index
) :用于确定数据应存放在哪个集合 - 块偏移(Block Offset
) :在集合内部用于定位数据 - 标签(Tag
) :用于识别一个特定的内存块
当 CPU 尝试从内存中读取数据时,首先检查缓存。如果请求的地址的标签与缓存行中的标签匹配,则称为缓存命中,数据直接从缓存中读取。如果不匹配,则发生缓存未命中(cache miss
Direct-Mapped Cache¶
直接映射缓存(Direct-Mapped Cache
Set-Assocaitive Cache¶
组相联缓存(Set-Assocaitive Cache
评论区