type
status
date
slug
summary
tags
category
icon
password
 
 
计算机内存的组织方式 分层内存结构 ,解释了这种结构如何在性能成本之间取得平衡
 
计算机内存 一场 性能与成本的trade off
 
 
 
notion image
 
notion image
 
存储器组织研究指南
目标
  • 掌握层次化存储器组织的概念。
  • 理解每一层存储器如何影响系统性能,以及性能如何衡量。
  • 掌握缓存、虚拟内存、内存分段、分页和地址转换的概念。
内存类型
  • 主存: RAM (随机存取存储器) 和 ROM (只读存储器)。
  • RAM:DRAM (动态RAM): 需要定期刷新,成本较低,设计简单。
  • SRAM (静态RAM): 速度非常快,不需要刷新,用于构建缓存。断电后数据丢失。
  • ROM: 不需要刷新,需要很少的电荷就能保持内存,用于存储永久或半永久数据。断电后数据保留。
存储器层次结构
  • 组织内存以在最低成本下提供最佳性能。
  • 层次结构:CPU 寄存器(最小,最快)-> 缓存 -> 主存 -> 磁盘(最大,最慢)。
  • 访问过程: CPU 首先请求最近的内存(通常是缓存)。如果未找到数据,则查询主存。如果主存中也没有,则请求磁盘。
  • 命中 (Hit): 在给定的存储器层级找到数据。
  • 未命中 (Miss): 在给定的存储器层级未找到数据。
  • 命中率 (Hit Rate): 在给定的存储器层级找到数据的百分比。
  • 未命中率 (Miss Rate): 在给定的存储器层级未找到数据的百分比。未命中率 = 1 - 命中率。
  • 命中时间 (Hit Time): 在给定的存储器层级访问数据所需的时间。
  • 未命中惩罚 (Miss Penalty): 处理未命中所需的时间,包括替换内存块所需的时间以及将数据传递到处理器所需的时间。
  • 局部性原则:时间局部性 (Temporal Locality): 最近访问的数据元素倾向于再次被访问。
  • 空间局部性 (Spatial Locality): 访问倾向于聚集。
  • 顺序局部性 (Sequential Locality): 指令倾向于按顺序访问。
缓存内存 (Cache Memory)
  • 通过将最近使用的数据存储在更靠近 CPU 的位置来加速访问。
  • 比主存小得多,但访问时间是主存的一小部分。
  • 通常按内容寻址(内容寻址内存),而不是按地址寻址。
  • 主存地址被分成字段,在主存和缓存之间创建多对一映射。
  • 缓存块中的标签字段用于区分不同的主存块。
  • 缓存映射方案:
  • 直接映射缓存 (Direct Mapped Cache): 主存块 X 映射到缓存块 Y = X mod N(其中 N 是缓存块数)。
  • 缺点: 容易发生抖动(thrashing),当程序频繁访问映射到同一个缓存块的不同主存块时。
  • 全相联缓存 (Fully Associative Cache): 主存块可以放置在缓存中的任何位置。
  • 主存地址被分成两个字段:标签和字。
  • 需要并行搜索所有标签,需要特殊且昂贵的硬件。
  • 需要替换策略来决定哪个块被逐出(牺牲块)。
  • 组相联缓存 (Set Associative Cache): 结合了直接映射和全相联缓存的思想。
  • 主存引用映射到缓存中的一组几个块。
  • 主存地址被分成三个字段:标签、组和字。
  • 组字段决定了主存块映射到的组。
  • 替换策略:
  • 最优替换策略 (Optimal Replacement Policy): 理想但无法实现,选择未来最长时间不会被访问的块。
  • 最近最少使用 (LRU - Least Recently Used): 跟踪块最后一次被访问的时间,并逐出未使用的最长时间的块。
  • 缺点: 复杂,需要维护每个块的访问历史。
  • 先进先出 (FIFO - First-In, First-Out): 逐出在缓存中停留时间最长的块,无论何时最后使用。
  • 随机替换策略 (Random Replacement Policy): 随机选择一个块进行替换。
  • 优点: 永不发生抖动。
  • 缓存性能衡量:
  • 有效访问时间 (EAT - Effective Access Time): 考虑了命中率和不同内存层级的相对访问时间的加权平均值。
  • 对于两级内存:EAT = H × AccessC + (1-H) × AccessMM,其中 H 是缓存命中率,AccessC 和 AccessMM 分别是缓存和主存的访问时间。
  • 写策略 (Write Policy):
  • 写直达 (Write Through): 在每次写入时同时更新缓存和主存。
  • 缺点: 每次写入时主存必须更新,降低了更新的访问时间。
  • 写回 (Write Back): 仅当块被选定为替换时才更新内存。
  • 优点: 内存流量最小化。
  • 缺点: 内存值可能与缓存值不一致,在多用户系统中造成问题。
  • 缓存组织:
  • 统一或集成缓存 (Unified or Integrated Cache): 指令和数据都缓存。
  • 哈佛缓存 (Harvard Cache): 数据和指令分开缓存。
  • 优点: 提供了更好的局部性。
  • 缺点: 增加了复杂性。
  • 缓存性能改进:
  • 牺牲缓存 (Victim Cache): 添加一个小的相联缓存来保存最近被逐出的块。
  • 跟踪缓存 (Trace Cache): 指令缓存的一个变体,保存程序分支的解码指令。
  • 多级缓存层次结构:
  • Level 1 缓存 (L1): 在处理器上,速度最快。
  • Level 2 缓存 (L2): 可能在主板上或扩展卡上,或与 CPU 在同一芯片上。
  • Level 3 缓存 (L3): 在处理器和主存之间。
  • 缓存包含性:
  • 包含缓存 (Inclusive Cache): 相同的数据可能存在于多个缓存级别。
  • 严格包含缓存 (Strictly Inclusive Caches): 保证较小缓存中的所有数据都存在于下一层级。
  • 排他缓存 (Exclusive Caches): 只允许一个数据副本。
虚拟内存 (Virtual Memory)
  • 通过使用磁盘驱动器的一部分作为主存的扩展来提供更大的内存容量。
  • 分页 (Paging): 虚拟内存将主存分成独立管理的页框,不立即需要时写入(或分页)到磁盘。
  • 物理地址 (Physical Address): 物理内存的实际内存地址。
  • 虚拟地址 (Virtual Address): 程序创建的地址,由内存管理器映射到物理地址。
  • 页故障 (Page Fault): 当逻辑地址要求从磁盘加载页面时发生。
  • 内存碎片 (Memory Fragmentation): 分页过程导致创建小的、不可用的内存地址集群。
  • 页表 (Page Table): 维护有关每个页面的位置(无论是在磁盘上还是在内存中)的数据结构。每个活动进程都有一个页表。
  • 地址转换: 操作系统将虚拟地址转换为物理地址。
  • 虚拟地址被分成页字段偏移字段
  • 页字段决定了地址的页面位置。
  • 偏移字段指示地址在页面内的位置。
  • 逻辑页号通过页表查找转换为物理页框号。
  • 转换后备缓冲区 (TLB - Translation Look-Aside Buffer): 一个特殊的相联缓存,存储虚拟页到物理页的映射,因为页表被频繁读取。
内存组织复习测验
请用 2-3 个句子简要回答以下问题:
  1. 解释 DRAM 和 SRAM 之间的主要区别。
  1. 什么是存储器层次结构?它有什么目的?
  1. 解释“命中”和“未命中”的含义。
  1. 什么是局部性原则?列出三种类型的局部性。
  1. 描述直接映射缓存的工作原理。它有什么主要缺点?
  1. 全相联缓存与直接映射缓存的主要区别是什么?
  1. 在组相联缓存中,地址被分成哪三个字段?
  1. 简要描述 LRU 缓存替换策略。
  1. 解释写直达和写回写策略之间的区别。
  1. 什么是虚拟内存?它有什么好处?
答案键
  1. DRAM 需要定期刷新以保持数据,而 SRAM 不需要刷新。SRAM 比 DRAM 快得多,并且用于构建缓存。
  1. 存储器层次结构是将不同类型的内存按速度和成本分层组织的方式。它的目的是以最低的成本提供最佳的整体系统性能。
  1. 命中是指在给定的存储器层级(例如缓存或主存)找到了所需的数据。未命中是指在当前层级没有找到数据,需要从下一层级获取。
  1. 局部性原则是指程序访问内存的行为倾向于访问最近使用过的数据或靠近最近使用过的数据的数据。三种类型是时间局部性、空间局部性和顺序局部性。
  1. 在直接映射缓存中,每个主存块只能映射到缓存中的一个特定块位置(通过模运算确定)。主要缺点是如果程序频繁访问映射到同一个缓存块的不同主存块,会导致频繁的缓存块替换,即抖动。
  1. 全相联缓存允许任何主存块存储在缓存中的任何块位置。与直接映射缓存不同,它不限制主存块到特定的缓存位置。
  1. 在组相联缓存中,内存地址被分成标签、组和字三个字段。组字段确定了内存块可以映射到的缓存中的一组块。
  1. LRU (最近最少使用) 缓存替换策略是一种算法,它通过跟踪每个缓存块最后一次被访问的时间来工作。当需要逐出块时,它会选择在缓存中停留时间最长时间而未被使用过的块。
  1. 写直达策略在每次写入时同时更新缓存和主存。写回策略只在缓存块被选定为替换时才更新主存。
  1. 虚拟内存是一种内存管理技术,它使用磁盘空间作为主存的扩展,从而为程序提供了比实际物理内存更大的地址空间。它的好处是能够运行需要更多内存的程序,并允许更多程序同时运行。
论述题建议
请选择以下五个问题中的任何一个,以论述题的形式进行回答:
  1. 详细阐述存储器层次结构如何通过利用局部性原则来提高系统性能。在你的论述中包含命中率、未命中率、命中时间和未命中惩罚的概念。
  1. 比较和对比直接映射、全相联和组相联缓存映射方案。讨论每种方案的优点、缺点和适用场景。
  1. 分析不同的缓存替换策略(LRU、FIFO、随机)。讨论它们的工作原理、优缺点以及它们如何影响缓存性能。
  1. 详细解释虚拟内存的工作原理,包括分页的概念、虚拟地址到物理地址的转换过程以及页表的作用。
  1. 讨论缓存和虚拟内存在现代计算机系统中的协同作用,以及它们如何共同提高整体系统性能和内存管理效率。
术语表
  • RAM (随机存取存储器): 一种允许数据被直接访问的内存类型,访问时间与数据的位置无关。主存的两种主要类型之一。
  • ROM (只读存储器): 一种内存类型,数据在制造时写入,通常不能修改。用于存储引导程序和固件等永久或半永久数据。
  • DRAM (动态RAM): 一种 RAM 类型,使用电容器存储数据,需要定期刷新以保持数据。
  • SRAM (静态RAM): 一种 RAM 类型,使用锁存器存储数据,不需要刷新,速度比 DRAM 快。常用于构建缓存。
  • 存储器层次结构: 计算机系统中组织内存的不同层级(寄存器、缓存、主存、磁盘),按速度、成本和容量递减。
  • 命中 (Hit): 在给定的存储器层级找到所需的数据。
  • 未命中 (Miss): 在给定的存储器层级未找到所需的数据,需要从下一层级获取。
  • 命中率 (Hit Rate): 在给定的存储器层级找到数据的百分比。
  • 未命中率 (Miss Rate): 在给定的存储器层级未找到数据的百分比 (1 - 命中率)。
  • 命中时间 (Hit Time): 在给定的存储器层级成功访问数据所需的时间。
  • 未命中惩罚 (Miss Penalty): 处理未命中所需的时间,包括从下一层级获取数据并将其载入当前层级所需的时间。
  • 局部性原则: 计算机程序倾向于在短时间内重复访问相同数据或靠近最近访问过的数据的趋势。
  • 时间局部性 (Temporal Locality): 最近访问的数据元素很可能在不久的将来再次被访问。
  • 空间局部性 (Spatial Locality): 如果访问了某个内存位置,则其附近的内存位置也很可能在不久的将来被访问。
  • 顺序局部性 (Sequential Locality): 程序指令倾向于按顺序执行。
  • 缓存内存 (Cache Memory): 一种小而快的内存,存储最近使用的主存数据和指令,以减少对较慢主存的访问。
  • 内容寻址内存 (Content Addressable Memory): 一种可以通过其内容而不是其地址来访问的内存类型。缓存通常按内容寻址。
  • 直接映射缓存 (Direct Mapped Cache): 一种缓存组织方案,其中每个主存块只能映射到缓存中的一个特定位置。
  • 有效位 (Valid Bit): 缓存块中的一个位,指示该块是否包含有效数据。
  • 抖动 (Thrashing): 当程序频繁访问映射到缓存中同一位置的不同块,导致频繁的块逐出和加载,从而降低性能的现象。
  • 全相联缓存 (Fully Associative Cache): 一种缓存组织方案,其中任何主存块都可以放置在缓存中的任何位置。
  • 牺牲块 (Victim Block): 从缓存中被逐出的块,以便为新块腾出空间。
  • 组相联缓存 (Set Associative Cache): 一种缓存组织方案,其中缓存被分成多个组,每个主存块映射到缓存中的一个特定组,但可以在该组内的任何位置。
  • 替换策略 (Replacement Policy): 在需要逐出缓存块时选择哪个块被替换的算法(例如,LRU、FIFO、随机)。
  • 最优替换策略 (Optimal Replacement Policy): 一种理想化的替换策略,可以预知未来,并逐出在未来最长时间不会被访问的块。
  • 最近最少使用 (LRU - Least Recently Used): 一种替换策略,逐出在缓存中停留时间最长而未被使用过的块。
  • 先进先出 (FIFO - First-In, First-Out): 一种替换策略,逐出在缓存中停留时间最长的块,无论何时最后使用。
  • 随机替换策略 (Random Replacement Policy): 一种替换策略,随机选择一个缓存块进行替换。
  • 有效访问时间 (EAT - Effective Access Time): 考虑了不同内存层级的访问时间和命中率的加权平均访问时间。
  • 脏块 (Dirty Block): 在缓存中被修改过但尚未写回主存的块。
  • 写策略 (Write Policy): 确定何时将缓存中的修改写入主存的策略。
  • 写直达 (Write Through): 一种写策略,在每次写入时同时更新缓存和主存。
  • 写回 (Write Back / Copyback): 一种写策略,仅当缓存块被选定为替换时才将修改写回主存。
  • 统一或集成缓存 (Unified or Integrated Cache): 一种缓存组织,其中指令和数据都存储在同一个缓存中。
  • 哈佛缓存 (Harvard Cache): 一种缓存组织,其中指令和数据存储在单独的缓存中。
  • 牺牲缓存 (Victim Cache): 一种小的相联缓存,用于存储最近从主缓存中逐出的块,以提高性能。
  • 跟踪缓存 (Trace Cache): 指令缓存的一种变体,存储解码后的指令序列,用于程序分支。
  • 包含缓存 (Inclusive Cache): 一种缓存层次结构属性,其中较低层级的缓存中的所有数据都存在于较高层级的缓存中。
  • 严格包含缓存 (Strictly Inclusive Caches): 一种包含缓存的类型,保证较低层级的缓存中的所有数据都存在于紧邻的较高层级。
  • 排他缓存 (Exclusive Caches): 一种缓存层次结构属性,其中数据块只能存在于缓存层次结构中的一个级别。
  • 虚拟内存 (Virtual Memory): 一种内存管理技术,通过将磁盘空间用作主存的扩展,为程序提供更大的地址空间。
  • 分页 (Paging): 一种虚拟内存技术,将内存(物理内存和虚拟内存)分割成固定大小的块(页面或页框)。
  • 页框 (Page Frame): 物理内存中用于存储页面的固定大小的块。
  • 物理地址 (Physical Address): 物理内存中的实际地址。
  • 虚拟地址 (Virtual Address): 程序生成的地址,由内存管理器映射到物理地址。
  • 页故障 (Page Fault): 当程序访问的虚拟地址对应的页面不在物理内存中时发生的事件。
  • 内存碎片 (Memory Fragmentation): 内存中存在许多小而分散的可用空间,但没有足够大的连续空间来满足内存分配请求的情况。分页可能导致内部碎片。
  • 页表 (Page Table): 操作系统维护的数据结构,用于将虚拟页号映射到物理页框号。
  • 页字段 (Page Field): 虚拟地址中指示页面编号的部分。
  • 偏移字段 (Offset Field): 虚拟地址和物理地址中指示地址在页面或页框内位置的部分。
  • 转换后备缓冲区 (TLB - Translation Look-Aside Buffer): 一种特殊的相联缓存,存储最近使用的虚拟地址到物理地址的映射,以加速地址转换。
 
 
 
 
 
 
 
 
 
 
 
 
RSA (cryptosystem)加密了解Research about Computational Economics
Loading...
盛溪
盛溪
盛溪的学习&生活博客
Announcement
🌟 欢迎来到盛溪的博客!🌟
大家好,我是盛溪。在这里,我将分享我的生活感悟、学习心得以及其他一些有趣的发现。希望我的文章能为你的生活带来一点启发和乐趣。
📅 更新通知:
  • 我会定期更新博客,分享新的内容。你可以通过RSS订阅或关注我的社交媒体账号来及时获取更新通知。
💬 互动环节:
  • 如果你有任何问题或想法,欢迎在评论区留言。我非常期待与你的互动!
📚 推荐阅读:
  • 不定期推荐一些我觉得有价值的书籍或资源,希望能对你有所帮助。
感谢你的访问和支持,希望你能常来逛逛!
盛溪敬上