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

课程链接:

计算机组成_北京大学_中国大学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.mzph.cn/news/95823.shtml

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

相关文章

80%测试员被骗,关于jmeter 的一个弥天大谎!

jmeter是目前大家都喜欢用的一款性能测试工具,因为它小巧、简单易上手,所以很多人都愿意用它来做接口测试或者性能测试,因此,在目前企业中,使用各个jmeter的版本都有,其中以jmeter3.x、4.x的应该居多。 但是…

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

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

凉鞋的 Unity 笔记 106. 第二轮循环场景视图Sprite Renderer

106. 第二轮循环&场景视图&Sprite Renderer 从这一篇开始,我们开始进行第二轮循环。 这次我们至少能够在游戏运行窗口看到一些东西。 首先还是在场景层次窗口进行编辑,先创建一个 Sprite,操作如下: 创建后,会在 Scene …

Nginx与Spring Boot的错误模拟实践:探索502和504错误的原因

文章目录 前言502和504区别---都是Nginx返回的access.log和error.log介绍SpringBoot结合Nginx实战502 and 504准备工作Nginx配置host配置SpringBoot 502模拟access.logerror.log 504模拟access.logerror.log 500模拟access.logerror.log 总结 前言 刚工作那会,最常…

JMeter接口自动化测试(数据驱动)

之前我们的用例数据都是配置在HTTP请求中,每次需要增加,修改用例都需要打开JMeter重新编辑,当用例越来越多的时候,用例维护起来就越来越麻烦,有没有好的方法来解决这种情况呢?我们可以将用例的数据存放在cs…

MyBatis过时了吗?

点击下方“JavaEdge”,选择“设为星标” 第一时间关注技术干货! 免责声明~ 任何文章不要过度深思! 万事万物都经不起审视,因为世上没有同样的成长环境,也没有同样的认知水平,更「没有适用于所有人的解决方案…

3263页学习资料,一本在手,python不愁!

Python3.11已经发布,新的版本速度提升2倍,以弥补与其他编程语言在速度上的缺陷。可以预见Python语言在未来的应用范围会越来越广。 python学习方向建议: 如果你是本科及以下学历,建议你学习以下两个方向 爬虫。简单的爬虫库&am…

手机图片合成gif怎么操作?用这个网站试试

制作gif动图的工具越来越多,但是很多时候使用电脑并不方便,想要在手机上制作gif动图的时候应该怎么办呢?很简单,给大家分享一款无需下载手机浏览器就能操作的gif制作(https://www.gif.cn/)工具-GIF中文网&a…

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

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

使用ebpf 监控linux内核中的nat转换

1.简介 Linux NAT(Network Address Translation)转换是一种网络技术,用于将一个或多个私有网络内的IP地址转换为一个公共的IP地址,以便与互联网通信。 在k8s业务场景中,业务组件之间的关系十分复杂. 由于 Kubernete…

tortoiseSVN树冲突解决方案

方案一: 手动导出 trunk 上的文件(夹),把本地目录文件(夹)删了并替换成 trunk上的,再点击测试合并方案二: 如果执行了方案一还是冲突,确认本地和trunk文件一致后,可以跳过冲突的revision

【数据结构】初探时间与空间复杂度:算法评估与优化的基础

🚩纸上得来终觉浅, 绝知此事要躬行。 🌟主页:June-Frost 🚀专栏:数据结构 🔥该文章主要了解算法的时间复杂度与空间复杂度等相关知识。 目录: 🌏 时间复杂度&#x1f52d…

目标检测算法改进系列之Backbone替换为FocalNet

FocalNet 近些年,Transformers在自然语言处理、图像分类、目标检测和图像分割上均取得了较大的成功,归根结底是自注意力(SA :self-attention)起到了关键性的作用,因此能够支持输入信息的全局交互。但是由于…

计算机网络——计算机网络的性能指标(上)-速率、带宽、吞吐量、时延

目录 速率 比特 速率 例1 带宽 带宽在模拟信号系统中的意义 带宽在计算机网络中的意义 吞吐量 时延 发送时延 传播时延 处理时延 例2 例3 速率 了解速率之前,先详细了解一下比特: 比特 计算机中数据量的单位,也是信息论中信…

剑指offer——JZ26 树的子结构 解题思路与具体代码【C++】

一、题目描述与要求 树的子结构_牛客题霸_牛客网 (nowcoder.com) 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(我们约定空树不是任意一个树的子结构) 假如给定A为{8,8,7,9,2,#,#,#,#,4,7},B为{8,9,2}&…

cad图纸如何防止盗图(一个的制造设计型企业如何保护设计图纸文件)

在现代企业中,设计图纸是公司的重要知识产权,关系到公司的核心竞争力。然而,随着技术的发展,员工获取和传播设计图纸的途径越来越多样化,如何有效地防止员工复制设计图纸成为了企业管理的一大挑战。本文将从技术、管理…

计算机竞赛 题目:基于python的验证码识别 - 机器视觉 验证码识别

文章目录 0 前言1 项目简介2 验证码识别步骤2.1 灰度处理&二值化2.2 去除边框2.3 图像降噪2.4 字符切割2.5 识别 3 基于tensorflow的验证码识别3.1 数据集3.2 基于tf的神经网络训练代码 4 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于pyt…

NEFU数字图像处理(1)绪论

一、简介 1.1什么是数字图像 图像是三维场景在二维平面上的影像。根据其存储方式和表现形式,可以将图像分为模拟图像和数字图像两大类 图像处理方法:光学方法、电子学方法 模拟图像:连续的图像数字图像:通过对时间上和数值上连续…

阿里云ECS和轻量服务器有什么区别?

阿里云服务器ECS和轻量应用服务器有什么区别?轻量和ECS优缺点对比,云服务器ECS是明星级云产品,适合企业专业级的使用场景,轻量应用服务器是在ECS的基础上推出的轻量级云服务器,适合个人开发者单机应用访问量不高的网站…

二叉树的初步认识

二叉树是这么一种树状结构:每个节点最多有两个孩子,左孩子和右孩子 重要的二叉树结构 完全二叉树(complete binary tree)是一种二叉树结构,除最后一层以外,每一层都必须填满,填充时要遵从先左后…