02计算机组成原理-存储器技术(上)
02计算机组成原理-存储器技术上引言1.存储器基本概念介绍1.1局部性原理1.2块1.3命中2.存储器分层结构3.磁盘存储器引言从早期开始我们的程序员就希望我们的电脑可以存储无限的数据并且还能以极快的速度进行存储。本章开始我们就来探讨一下我们是如何构建一个超大容量的存储器的。想象一下假设你正在厨房里准备一顿晚餐。你已经从冰箱里拿出了蔬菜、肉类和一些调料放在了厨房的台面上。但是你发现还需要一瓶橄榄油来烹饪而你并没有在台面上找到它。于是你开始在厨房的橱柜和架子上寻找橄榄油。经过一番搜索你终于找到了那瓶橄榄油并将其放在了台面上你之前准备好的食材旁边。现在台面上摆放着你需要的所有食材和调料你不再需要频繁地在橱柜和台面之间往返寻找。接下来你可以专注于烹饪把大部分时间都花在准备和烹饪晚餐上而不是在寻找食材和调料上。试比较这两种情况一种是在你的台面上有很多调料另一 种是台面上只有一个调料你不得不频繁的去架子上寻找。很明显在台面上放很多调料可以节省时间。而且就像你不会同时以相同的概率使用每一种调料一个程序也不会同时以相同的概率访问它全部的代码或数据。否则, 不可能让存储器在保持大容量的同时又能快速访问。同理我们可以构建一个大容量的虚拟存储器它能像小容量的存储器那样被快速访问。我们称之为“虚拟存储器”或“虚拟内存”的机制使得大容量的存储设备如硬盘可以像小容量的快速存储器一样被访问同时仍然保持了其大容量和高速度的特性。这种机制的关键在于它利用了程序的局部性原理。1.存储器基本概念介绍存储器其实是存储器系统每种不同的存储器它们是什么原理采用什么技术构成的我们会给大家介绍。先给大家介绍几个概念1.1局部性原理局部性原理是指CPU在访问存储器时无论是存取指令还是存取数据所访问的存储单元都趋于聚集在一个较小的连续区域中。即在任何时间内. 程序访问的只是地址空间相对较小的一部分内容。这种特性在程序执行时表现得尤为明显即程序在执行时倾向于引用临近于其他最近引用过的数据项的数据项或者最近引用过的数据项本身。局部性原理主要分为两种类型时间局部性和空间局部性。时间局部性:某个数据项在被访问之后可能很快被再次访问的特性即某个数据项在一个较短的时间间隔内很可能又被访问。程序循环、堆栈等结构是产生时间局部性的主要原因。例如在循环语句中循环体内部的指令和数据会被反复访问因此它们的时间局部性很高。空间局部性:某个数据项在被访问之后与其地址相近的数据项可能很快被访问的特性。程序的指令大部分时间是顺序执行的而且程序的数据结构如数组是连续存放的。这种顺序执行和连续存放的特性使得空间局部性得以体现。在以上代码片段中对sum的访问具有良好的时间局部性对a数组的访问具有良好的空间局部性。注意对a数组没有时间局部性因为时间局部性是对同一个地址空间而循环中是对数组里面的每一个元素进行访问而不是重复地访问具体某一个。存储器层次结构的设计正是基于局部性原理旨在平衡存储速度、容量和成本之间的矛盾以达到更高的系统性能。基于这两个局部性原理现代计算机系统使用多级存储器来优化性能与成本的平衡。1.2块无论数据如何分层数据的处理和交换过程都是两个层之间相互交换不可能跨层交换所以在描述的存储器层次结构中“块”Block或行Line是数据传输的基本单位。当数据从一个层次迁移到另一个层次时并不是以字节或者单个数据项为单位而是以固定大小的数据块进行。这个设计选择主要是为了效率考虑虽然一次性移动较大块的数据可能会暂时占用更多带宽但它减少了管理和迁移数据所需的元数据开销整体上提高了系统的性能。块大小即行长度是一个重要的设计参数它影响着缓存的效率、命中率以及硬件复杂度。块大小的选择需要权衡多个因素包括程序访问模式、缓存大小、以及硬件设计的复杂性和成本。常见的块大小有32字节、64字节、128字节等具体大小根据不同的系统和应用需求而定。1.3命中在存储器层次结构中“命中”Hit指的是处理器请求的数据恰好存在于高速缓存即高层存储器中这意味着数据可以迅速获取无需访问更慢的下一层存储器从而显著减少数据访问延迟。相反“缺失”Miss发生时处理器请求的数据不在高速缓存中系统必须继续到下一层存储器如主存中去查找所需的数据块。这个过程涉及更多的延迟因为下层存储器的访问速度通常较慢。命中率Hit Rate是衡量存储器层次结构效率的关键指标之一它表示数据请求在高速缓存中命中的概率。高命中率意味着大多数数据请求可以在高速缓存中得到满足从而系统整体运行效率高响应速度快。缺失率Miss Rate即1减去命中率反映了数据请求不能在高速缓存中找到而需要从下一层存储器获取的比例它是评估和优化存储器层次设计时需要关注的重要参数。通过提高命中率、降低缺失率可以有效提升系统的整体性能。命中时间Hit Time是指处理器在高速缓存中成功找到所需数据所需的时间它包括了访问延迟和比较标记以及有效位用于确认数据有效性的信息的时间。由于高速缓存使用的是高速且成本较高的技术它的访问速度远超于下层存储器因此命中时间相对较短。这个时间包括了以下几个部分查找时间在高速缓存中查找指定地址所需的时间。这通常通过比较地址标签tag来完成。数据传输时间一旦找到数据将数据从高速缓存传输到处理器所需的时间。缺失代价Miss Penalty则是当数据在高速缓存中未命中时必须从下一层存储器如主存中检索数据所经历的额外延迟。这个代价包括了多个步骤识别缺失、访问下一层存储器获取数据、将数据传输到高速缓存中可能还需要替换高速缓存中已有的某个数据块最后再将数据传送给处理器。这个过程远比单纯的命中时间要长是影响系统性能的关键因素。等待时间等待低层存储器响应请求的时间。这通常比高层存储器的响应时间要长得多。数据传输时间将数据从低层存储器传输到高层存储器如从主存到高速缓存的时间。处理缺失的额外开销这包括在高层存储器中找到一个空的块来存储新数据替换策略、更新相关数据结构如目录或标签数组等所需的时间。2.存储器分层结构存储器系统是一个具有不同容量成本和访问时间的存储设备的层次结构存储器层次结构的设计正是基于局部性原理旨在平衡存储速度、容量和成本之间的矛盾以达到更高的系统性能。基于这两个局部性原理现代计算机系统使用多级存储器来优化性能与成本的平衡。存储器层次结构通常包括以下几级寄存器Registers这是离CPU最近的存储器访问速度最快成本也最高容量最小。它们通常由CPU直接访问用于存储当前正在处理的数据和指令。高速缓存Cache位于CPU和主存之间速度比主存快得多但成本也更高。缓存通常使用SRAM静态随机访问存储器来实现因为SRAM比DRAM动态随机访问存储器更快但更昂贵。缓存利用局部性原理来存储最近被访问的数据和指令以便快速访问。主存储器Main Memory或RAMRandom Access Memory这是大多数程序直接访问的存储器。主存通常使用DRAM来实现因为它每比特的成本比SRAM低得多。主存的容量比缓存大得多但访问速度比缓存慢。辅助存储器Secondary Storage如硬盘、固态硬盘SSD、光盘等这些存储器的容量大但访问速度比主存慢得多。它们用于存储不经常访问的数据和程序以及需要长期保存的数据。构建存储器层次结构主要有 4 种技术1、DRAM动态随机存取存储器1.主要用于主存储器通常称为RAM。2.每比特成本低于SRAM但速度较慢。3.容量大每比特占用空间较少因此等量的硅可以制造更多的DRAM。4.需要定期刷新以保持数据因为电容会漏电。2、SRAM静态随机存取存储器1.通常用于高速缓存Cache和寄存器。2.每比特成本高于DRAM但速度更快。3.不需要刷新电路来保持数据因为使用交叉反接的晶体管来存储数据。3、闪存Flash Memory1.非易失性存储器即使断电也能保持数据。2.通常用于个人移动设备中的二级存储器如SSD固态驱动器和USB闪存盘。3.访问速度比DRAM慢但比磁盘快。4.每比特成本介于DRAM和磁盘之间。4、磁盘Disk1.通常是服务器中容量最大且速度最慢的一层。2.访问时间最长但每比特成本最低。3.分为HDD硬盘驱动器和SSD固态驱动器虽然这里的SSD与闪存中的SSD有所不同但技术上更接近于闪存。tips:构成主存的还有只读存储器ROM用于存放固定不变的信息。比如BIOS随着时间推移这些技术持续发展比如SSD固态硬盘的普及大幅提升了二级存储的速度逐渐在某些场景下替代传统的机械硬盘同时新的存储技术如3D XPoint和MRAM等也在探索更优的性能与成本平衡点以满足未来计算需求。今天我们先来讲磁盘存储器3.磁盘存储器磁盘存储器硬盘存储器作为传统的数据存储设备其工作原理基于磁性记录技术。抽象化后大概张数据就存放磁盘面上磁盘装在磁盘驱动器上而磁盘驱动器的核心部件就是机械臂杆连的磁头用于读写数据磁盘控制器是硬盘存储器和主机的接口。我们主要看磁盘的存储的功能所以主要讲盘片大家可以看到图中是有多个盘面的磁盘会向同心圆一样中间是空心的空心的原因是为了安装一个转轴一圈称为一个磁道数据就存在这一个个磁道上。一圈分成多个扇区一个扇区是记录数据的最小的基本单位。大家注意磁盘的两面是都能用的细心点的同学可以看到是用两片夹住的。换扇区的时候是盘面转机械臂杆是固定不动的。接下来大家看点书面的东西数据组织结构柱面磁盘由多个盘面组成每个盘面有多个磁道。每个磁道被划分为多个扇区扇区是磁盘上存储数据的最小单元。访问每个盘面的磁头连在一起相互协调运动以确保每个盘面的磁头同时访问到相同的扇区这些扇区就构成了一个柱面。在硬盘中柱面Cylinder是一个逻辑概念它代表了所有盘面在相同半径上的磁道组成的集合。当操作系统需要读取或写入一系列连续的数据时理想情况下它会首先定位到包含这些数据的第一个柱面然后在该柱面内顺序读取或写入不同盘面的扇区而无需移动磁头到不同的磁道这样可以大大提高数据传输速度。找数据过程柱面—盘面—扇区数据访问寻道Seek当需要访问的数据不在当前磁头所在的磁道上时磁头需要移动到目标磁道上。这个过程称为寻道所需的时间称为寻道时间。这是数据访问过程中最耗时的步骤涉及到将磁头从当前位置移动到目标数据所在的磁道上。寻道时间直接影响了硬盘的随机访问性能。平均寻道时间是衡量硬盘随机访问性能的重要指标通常介于3毫秒到13毫秒之间。然而这个平均值是基于理论上的所有可能寻道距离的平均实际情况中由于数据访问的局部性即程序倾向于连续或附近区域访问数据以及操作系统的智能调度如预读和缓存策略实际平均寻道时间往往低于厂商提供的标称值大约在标称值的25%到33%之间。操作系统和应用程序的行为对实际性能有很大影响。例如文件连续读取、缓存策略和I/O调度算法如CFQ、Deadline、Noop等可以减少不必要的寻道操作利用数据访问的局部性从而缩短平均寻道时间和整体响应时间。旋转延迟Rotational Delay即使磁头已经位于正确的磁道上也还需要等待盘片旋转使目标扇区移动到磁头下方。这个时间取决于当前扇区与磁头之间的角度差以及盘片的旋转速度。这个等待时间称为旋转延迟。理论上平均旋转延迟是磁盘旋转一周时间周期的一半。这是因为一旦磁盘开始旋转磁头有可能在旋转周期的任何时刻到达目标位置因此平均而言它需要等待半个周期。给定磁盘每分钟的转速RPM我们可以计算出平均旋转延迟。公式是平均旋转延迟每分钟转数/2×60秒数据传输Data Transfer当目标扇区旋转到磁头下方时磁头就可以开始读写数据了。这个过程的时间取决于扇区的大小和磁盘的转速。这个数据传输速度相对较快但受制于硬盘的内部传输速率和接口速度。磁盘缓存大多数磁盘控制器内置有高速缓存用来存储最近访问过的数据。该缓存仅保存最近传输过的扇区数据。这样做有几个好处传统上硬盘数据布局遵循扇区-磁道-柱面模型在传统模型中人们通常认为邻近的块在同一磁道上访问同一柱面上的块不需要寻道时间因此访问时间较短。然而随着磁盘接口层次的提升和技术的演进这些假设不再适用。特别是为了优化连续数据读写的性能硬盘的数据布局有了很大的改变逻辑块地址LBA随着硬盘容量的增加CHSCylinder-Head-Sector柱面-磁头-扇区寻址方式已不再适用现代硬盘广泛使用逻辑块地址Logical Block Addressing, LBA来标识每一个存储块。LBA提供了一个统一、连续的地址空间隐藏了底层的物理布局复杂性。大概先写这些吧今天的博客就先写到这谢谢您的观看。

相关新闻

史上最简单的Clawdbot(龙虾)安装教程(仅15分钟即可部署完成)

史上最简单的Clawdbot(龙虾)安装教程(仅15分钟即可部署完成)

目前爆火的Clawdbot是什么? Clawdbot是能完全掌管你电脑的AI智能体,拥有你电脑的最大权限,能根据你的要求自动操作电脑完成任务,可以说是目前最接近AGI的产品形态。 简单讲,Clawdbot 能操作整个电脑的、开启了YOLO模…

2026/5/17 12:56:35 阅读更多 →
给 Java 应用装一个 Sidecar:Seamless AppServer Sidecar 安装与部署指南

给 Java 应用装一个 Sidecar:Seamless AppServer Sidecar 安装与部署指南

GitHub 项目地址 https://github.com/BugSymphony/seamless-appserver-sidecar 如果该项目对你有帮助,欢迎 Star ⭐ 支持项目发展 Seamless AppServer Sidecar 安装与部署教程 1. 项目简介 Seamless AppServer Sidecar 是一个轻量级、非侵入式的Java应用服务器扩展…

2026/7/2 19:58:27 阅读更多 →
妲鹭Darwur甲醛检测仪G600:电化学精准芯,守护全家呼吸安全

妲鹭Darwur甲醛检测仪G600:电化学精准芯,守护全家呼吸安全

新房装修的欣喜,总被无形的甲醛阴霾笼罩;迎接新生命的期待,最怕室内污染悄悄伤害宝宝;租房入住的安心,需要一份靠谱的空气质量答案。作为I类致癌物,甲醛藏在板材、家具、油漆中,释放周期长达3-1…

2026/5/17 12:56:33 阅读更多 →

最新新闻

如何快速定位Windows热键冲突:专业检测工具终极指南

如何快速定位Windows热键冲突:专业检测工具终极指南

如何快速定位Windows热键冲突:专业检测工具终极指南 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是否曾经…

2026/7/3 10:04:57 阅读更多 →
QMK Toolbox:让机械键盘固件管理变得像呼吸一样简单

QMK Toolbox:让机械键盘固件管理变得像呼吸一样简单

QMK Toolbox:让机械键盘固件管理变得像呼吸一样简单 【免费下载链接】qmk_toolbox A Toolbox companion for QMK Firmware 项目地址: https://gitcode.com/gh_mirrors/qm/qmk_toolbox 你是否曾经面对一堆复杂的命令行工具,只为给你的机械键盘刷写…

2026/7/3 9:58:55 阅读更多 →
Qt项目引入第三方库,使用已编译库文件和源码编译方式的区别

Qt项目引入第三方库,使用已编译库文件和源码编译方式的区别

Qt项目引入第三方库,使用已编译库文件和源码编译方式的区别 一、对比总览维度已编译库文件方式(预编译)源码编译方式(源码集成)构建速度快,直接链接预编译好的二进制,跳过编译过程慢&#xff0c…

2026/7/3 9:54:54 阅读更多 →
3分钟掌握Adobe-GenP:Adobe全家桶免费激活终极指南

3分钟掌握Adobe-GenP:Adobe全家桶免费激活终极指南

3分钟掌握Adobe-GenP:Adobe全家桶免费激活终极指南 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP Adobe-GenP是一款专为Adobe Creative Cloud系列软件设…

2026/7/3 9:52:54 阅读更多 →
终极指南:Mammoth.js如何实现Word文档到HTML的智能转换

终极指南:Mammoth.js如何实现Word文档到HTML的智能转换

终极指南:Mammoth.js如何实现Word文档到HTML的智能转换 【免费下载链接】mammoth.js Convert Word documents (.docx files) to HTML 项目地址: https://gitcode.com/gh_mirrors/ma/mammoth.js Mammoth.js是一个强大的JavaScript库,专门用于将Mic…

2026/7/3 9:52:53 阅读更多 →
村长团队ZM3从零制作GTA5可旋转风车模型+轴心绑定+物理动画超详细步骤教程

村长团队ZM3从零制作GTA5可旋转风车模型+轴心绑定+物理动画超详细步骤教程

ZM3从零制作GTA5可旋转风车完整模型轴心绑定物理动画全套超详细无脑实操教程一、打开ZM3并提前调好所有GTA5专用基础环境(不调后面百分百报错)1.直接双击电脑桌面上的zModeler3软件图标,等软件完全打开,不要点任何弹窗广告&#x…

2026/7/3 9:48:52 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻