【计算机组成 课程笔记】7.1 存储层次结构概况

news2024/12/26 11:02:47

课程链接:

计算机组成_北京大学_中国大学MOOC(慕课)

7 - 1 - 701-存储层次结构概况(15-'14-'-')_哔哩哔哩_bilibili

这是我们已经非常熟悉的冯·诺依曼计算机结构, 其中和存储功能相关的部件有:存储器和外部记录介质肯定具有存储功能,另外还有一个自带存储功能的运算器。为了描述方便,我们把这些部件统称为存储器。

那么我们看一下计算机中对存储器有哪些要求 。

1. 计算机对存储器的要求

1、首先存储器当中应该保存了将要运行的程序和需要运算的数据,那这些内容在系统通电启动的时候就应该在存储器当中了,而且在断电之后也不会丢失。那么具有这样特定功能的存储器我们称之为非易失性存储器。而断电后存储的信息就会丢失的存储器则称为易失性存储器

  • 易失性存储器:主存和CPU中的通用寄存器都是易失性的存储器,断电后信息就丢失了
  • 非易失性存储器:BIOS芯片和硬盘:在系统通电之后CPU必须要从bios芯片开始执行程序,然后这段程序把硬盘等设备配置好之后再将更多的程序和数据从硬盘搬运到内存,之后CPU才可以在内存里执行程序。 因此在系统中必须要有非易失性的存储器。

2、其次,这样的存储器肯定得是可读又可写的。那在这个结构当中硬盘和主存都是可读可写的, 而BIOS芯片则是一个只读的芯片,倒不是说它完全不支持写操作,而是对它的写需要借助特殊的设备或者特殊的操作过程,非常的麻烦,无法支持经常性地写入数据。

3、存储器最好是能够支持随机访问。所谓随机访问是指对存储器当中任何一个数据的访问所花费的时间与这个数据所在的位置没有关系。对主存的读写和BIOS芯片的读都是支持随机访问的。而硬盘内部实际上是由多个盘片构成,这些盘片处于高速旋转的状态,并由一个机械的读写头去寻找需要访问的数据的位置。这就不是随机访问的模式,而且由于其中有机械部件的存在,速度就变得非常的慢。

4、在计算机当中,存储器的速度,即访问时间也是非常重要的因素,CPU的运行速度很快,在它需要访问存储器的时候,最好能在一个时钟周期内就完成数据的访问,不然就会阻碍CPU后续的操作。而主存的速度是明显高于硬盘的速度的。

所以总体看来,如果我们能够找到一个存储器,支持随机读写,而且是非易失性的,访问时间也很短,那我们就可以考虑只用这样一个存储器和CPU链接。当然我们还要考虑到是否有足够大的容量装下我们需要的程序和数据,还有价格是否能承受,以及功耗是否合适等等。但是现状是我们使用了这么多种不同的存储器,这自然是因为没有一个唯一而完美的解决方案,那我们就从性能和价格等方面,对它们进行一个比较。

2. CPU和存储器的特性对比

这是从1980年-2010年具有代表性的CPU, 我们每隔10年选取一个代表。

80年的8080,时钟频率大约为1MHz,其时钟周期是1000ns。90年的386,时钟周期是50ns,2000年的奔腾II,时钟周期大约为1.6ns,2010年的酷睿i7,时钟周期大约是0.4ns,当然这个时候已经是4核了,实际上它的时钟周期是0.1ns。

与之相比,硬盘的访问时间,在80年的时候是87ms,ms和ns,差了100万倍,所以虽然这30年来,硬盘的访问时间有所提升,但它和CPU的时钟周期完全没有可比性。所以仅从访问时间这一项来看,硬盘从一开始就不具备直接与CPU交互的能力。当然它的优势在于容量大,而且便宜,在这30年里,它的单位容量价格在迅速下降,与此同时容量也在迅速上升,这样就能存储更多的程序和数据,这是硬盘技术的提升所带来的最大好处。

那好,既然硬盘无法与CPU直接交互,我们再来看一下其他的存储器。现在的主存主要靠DRAM实现。它的访问时间在1980年大约是375ns,这时候DRAM实际上比CPU运行得还要快一些,所以这时候并不用担心内存无法给CPU及时提供数据的事情。而到了90年,DRAM的速度已经比CPU的速度慢了,而且后来这个差距越来越大,到了2010年,即使只考虑单核CPU的需求,DRAM的访问时间也和CPU的时钟周期相差100倍,这是因为在这30年里CPU的访问时间提升了2500倍,而DRAM只提升了9倍,所以这个差距明显是在拉大的。不过DRAM的进步也同样体现在其容量和价格上,这30年来,其容量提升了有12万倍之多,而成本也几乎有同样比例的压缩,也就是说我们可以用和30年前同样的价格买到12万倍容量的内存。容量扩大自然是一件好事,但是这个性能的差距也是CPU不能接受的。

那既然DRAM的访问速度受限,我们就只能去寻找其他访问速度更快的存储器。SRAM就是一种选择。SRAM在1980年的访问时间是300ns,比DRAM要快一些,但是很有限,但是SRAM的访问速度提升得很快,30年间提升了大约200倍,而这段时间DRAM只提升了9倍。在很长一段时间内,SRAM的访问时间和CPU的时钟周期基本相当,因此从速度上来说SRAM作为和CPU直接连接的存储器是合适的。但是我们看到它的价格比较贵,在2010年同样容量的SRAM价格是DRAM的1000倍,如果说我们现在花1000块钱就能买到一块非常好的内存条,那你是不是愿意花10万块钱买一个相同容量的SRAM作为内存呢?所以仅从价格因素考虑,SRAM也无法取代DRAM用来作为内存。

所以现在设计的计算机,为了性能和价格的平衡,是在CPU和DRAM(主存)之间加上一个SRAM(也就是Cache,高速缓存),如果我们能让CPU所需要的程序和数据大部分时间都存储在SRAM当中,CPU就可以获得快得多的存储器访问时间。

那是什么时候开始,用SRAM作为Cache加到CPU和DRAM之间的呢?其实从下表中可以看出来,是在1980年到1990年之间,逐渐产生了高速缓存的需求。80386是在CPU芯片外部增加了一块SRAM芯片作为Cache来解决访存的问题。那么到了80486的时候,就已经把Cache集成到了CPU芯片内部,从而缓解CPU和DRAM主存之间的性能差距。

3. 存储层次结构

因此,现代计算机当中都采用了下图这样层次化的存储结构。在这个层次结构中,越往上的部件容量越小,但速度越快,而单位字节的成本更高。越往下的部件容量越大,但速度更慢,而单位字节的成本更低。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1063799.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WEB各类常用测试工具

一、单元测试/测试运行器 1、Jest 知名的 Java 单元测试工具,由 Facebook 开源,开箱即用。它在最基础层面被设计用于快速、简单地编写地道的 Java 测试,能自动模拟 require() 返回的 CommonJS 模块,并提供了包括内置的测试环境 …

Stm32_标准库_6_八种输入出模式

上拉输入与下拉输入 上拉输入:电平默认为高电平,只有当外部输入为低电平时,此IO口电平才会被拉低,经过触发器,再到寄存器,最后传入CPU GPIO_Mode_IPU;下拉输入:电平默认为低电平&am…

4.MySql安装配置(更新版)

MySql安装配置 无论计算机是否有安装其他mysql,都不要卸载。 只要确定大版本是8即可,8.0.33 8.0.34 差别不大即可。 MySql下载安装适合电脑配置属性有关,一次性安装成功当然是非常好的,因为卸载步骤是非常麻烦的 如果第一次安装…

基于SpringBoot的电影评论网站

目录 前言 一、技术栈 二、系统功能介绍 电影信息管理 电影评论回复 电影信息 用户注册 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了电影评…

用友移动管理系统存在任意文件上传漏洞 附POC

文章目录 用友移动管理系统存在任意文件上传漏洞 附POC1. 用友移动管理系统简介2.漏洞描述3.影响版本4.fofa查询语句5.漏洞复现6.POC&EXP7.整改意见8.往期回顾 用友移动管理系统存在任意文件上传漏洞 附POC 免责声明:请勿利用文章内的相关技术从事非法测试&…

Waves 14混音特效插件合集mac/win

Waves14是一款音频处理软件,主要用于音频编辑、混音和母带处理。该软件提供了各种插件,包括EQ、压缩、混响、延迟、失真等,以及一些专业的音频处理工具,如L2限幅器、Linear Phase EQ和多频道扬声器管理。 Mac软件下载:…

朋友圈怎么定点发朋友圈?

微信朋友圈是我们日常生活中常用的社交媒体之一。但有时我们忙碌而可能会忘记发布朋友圈,或是因时间不合适而无法发布。那么,有没有一种方法可以在规定的时间内自动发布朋友圈呢? 当然有啦! 定时发朋友圈可以帮助我们在特定时间点…

re学习(38)HGAME2020-re-Level-Week1-maze

题目描述 You won’t figure out anything if you give in to fear. 学习资料: https://ctf-wiki.github.io/ctf-wiki/reverse/maze/maze-zh/ 附加说明:请走最短路线 题解 分析题目 一看题目:maze 可以确定是一个迷宫题 void __fastcall __noreturn…

使用Thrift实现跨语言RPC调用

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…

基于SpringBoot的智能物流管理系统

目录 前言 一、技术栈 二、系统功能介绍 顾客信息管理 员工信息管理 员工信息管理 门店信息管理 门店信息管理 订单信息管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施…

想要精通算法和SQL的成长之路 - 无重复字符的最长子串和滑动窗口最大值

想要精通算法和SQL的成长之路 - 无重复字符的最长子串 前言一. 无重复字符的最长子串二. 滑动窗口最大值2.1 滑动窗口的基本操作 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 无重复字符的最长子串 原题链接 思路如下: 用一个滑动窗口,该窗口区…

WSL 0x80071772 错误解决方案

WSL 0x80071772 错误解决方案 副标题 WSL 安装到 C 盘以外解决方案 当电脑的存储位置设置为 C 盘以为的位置时安装 WSL 会有如下报错; 原因上面也说过了,保0x80071772的错误主要是因为 WSL 安装到了 C 盘以外的位置,知道了原因也就有了如下的解决方案,该解决方案有两种 解决…

iMazing 2023年最新苹果手机怎么备份恢复照片

目前图像技术发展飞快,HDR和4K照片已经见怪不怪,这些高清照片轻而易举就可以达到10MB以上,所以大家经常会出现手机空间不足的情况,此时就需要把照片移动到电脑上备份。至于照片备份怎么弄,照片备份的软件有哪些&#x…

【Java】抽象类和接口的区别

1. 成员区别 抽象类 变量 常量;有构造方法,有抽象方法,也有非抽象方法接口 常量,抽象方法(JDK8 在接口中定义 非抽象方法) 2. 关系区别 类与类 继承单继承类与接口 实现,单实现和多实现接口…

【Java】HashMap 背诵版

HashMap 背诵版 1. HashMap、Hashtable 和 ConcurrentHashMap 的区别?1.1 线程安全:1.2 继承关系:1.3 允不允许null值: 2. HashMap 的数据结构2.1 什么是hash表?2.2 HashMap 的数据结构 3. 什么是hash冲突,…

输入文本波形动画

效果展示 CSS 知识点 绝对定位 实现页面基础布局 <div class"input_box"><input type"text" required /><!-- 动画实际执行者 --><label>Wavy Input Text Aimation</label> </div>使用 JS 把 label 标签的文字拆分…

UG\NX二次开发 特征选择对话框 UF_UI_select_feature

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,里海BlockUI专栏,C\C++-CSDN博客 感谢粉丝订阅 感谢 qq_42007619 订阅本专栏,非常感谢。 简介: UG\NX二次开发 特征选择对话框 UF_UI_select_feature 效果: 代码: #include <vector>…

[硬件基础]-快速了解触发器

快速了解触发器 文章目录 快速了解触发器1、触发器概述2、触发器和锁存电路之间的区别3、触发器的类型3.1 SR触发器3.2 D触发器3.3 JK触发器3.4 SR触发器和JK触发器的区别3.5 T触发器 触发器是制造存储器件和数字逻辑电路的最重要主题之一。 在本文中&#xff0c;我将讨论触发器…

在LangChain中使用Milvus + openai使用

Milvus(opens in a new tab) 是一个存储、索引和管理由深度神经网络和其他机器学习&#xff08;ML)模型生成的大规模嵌入向量的数据库。 1.文档分割 from langchain.document_loaders import PyPDFLoader pdfloader PyPDFLoader("D:\py\LangChaindao\操作系统原理.pdf&…

安全性算法

目录 一、安全性算法 二、基础术语 三、对称加密与非对称加密 四、数字签名 五、 哈希算法 六、哈希算法碰撞与溢出处理 一、安全性算法 安全性算法的必要性&#xff1a; 安全性算法的必要性是因为在现代数字化社会中&#xff0c;我们经常需要传输、存储和处理敏感的数据…