存储器

概念

存储器是计算机中非常重要的组成部分,存储器是用来存储程序代码和数据的部件,有了存储器,计算机才具有记忆功能。

电脑CPU是没有记忆功能的,他需要数据的时候都是先从存储器中读出,再进行逻辑运算,处理。

处理完后再把数据存储到存储器中,下次再调用。

存储器-分类

存储器的分类

存储器是计算机系统中的记忆设备,用来存放程序和数据。

计算机系统的运行速度在很大程度上受存储器速度的制约。

为增加CPU工作效率,出现了I/O与存储器直接存取方式(DMA)

从某种意义而言,存储器的性能已经成为计算机系统的核心

按照不同角度可对存储器作出不同分类

按存储介质分类

存储介质是指能寄存“0”、“1”两种代码并能区别两种状态的物质或元器件。存储介质主要有半导体器件、磁性材料和光盘等。

(1)半导体存储器

存储元件由半导体组成的存储器称为半导体存储器。优点:体积小、功耗低、存取时间短;缺点:当电源消失时,所存信息也随即丢失,它是一种易失性存储器,近年来研制出用非挥发性材料制成的半导体存储器,克服了信息易失的弊病。 半导体存储器又可按材料的不同分为两类

双极型(TTL)半导体存储器 MOS半导体存储器

###(2)磁表面存储器

磁表面存储器是在金属或塑料基体的表面上涂一层磁性材料作为记录介质,工作时磁层随载磁铁高速运转,用磁头在磁层上进行读/写操作,故称为磁表面存储器。按载磁体形状的不同,可分为磁盘、磁带和磁鼓。 这类存储器具有非易失性的特点

###(3)磁芯存储器

磁芯是由硬磁材料做成的环状元件,在磁芯中穿有驱动线和读出线,这样便可进行读写操作。它是不易失的永久记忆存储器。 但是,体积过大、工艺复杂、功耗太大

(4)光盘存储器

应用激光在记录介质(磁光材料)上进行读/写的存储器,具有非易失性的特点。既有记录密度高、耐用性好、可靠性高和可互换性强等特点。

按存取方式分类

###(1)随机存储器(Random Access Memory, RAM)

RAM是一种可读/写存储器,其特点是存储器的任何一个存储单元的内容都可以随机存取,而且存取时间与存储单元的物理位置无关。计算机系统中的主存都采用这种随机存储器。由于存储信息原理的不同,RAM又可分为静态RAM(以触发器原理寄存信息)和动态RAM(以电容充放电原理寄存信息)

###(2)只读存储器(Read Only Memory, ROM)

只读存储器是能对其存储的内容读出,而不能对器重新写入的存储器。这种存储器一旦存入了原始信息后,在程序执行过程中,只能将内部信息读出,而不能随意重新写入新的信息去改变原始信息。

###(3)串行访问存储器

如果对存储单元进行读/写操作时,需按其物理位置的先后顺序寻找地址,则这种存储器称为串行访问存储器

按在计算机中的作用分类

(1)主存储器:可以和CPU直接交换信息

(2)辅助存储器:主存储器的后援存储器,用来存放当前暂时不用的程序和数据。

(3)缓冲存储器:用在两个速度不同的部件之中

存储器分类

存储器的层次结构

储存器三大性能指标:速度、容量和每位价格(位价)

三者难以面面俱到

存储器的层次结构

对于上面的存储器结构图, 从上往下, 速度:高 –> 低; 容量:小–>大; 价格:高–> 低。

以前 CPU 里面只包含寄存器, 不包含缓存, 但是随着集成电路的发展, 渐渐的将某些缓存也放进CPU里面。

为什么我们要对存储器进行分层?

一般我们想要的存储器都是 速度快、容量大并且价格低的, 但是从上图可以看出没有一种是满足这种要求的, 所以我们只 能利用不同种类的存储器形成一个存储体系, 来基本达到要求。

在这个体系中,每两层之间通过软件或者硬件或者软硬件结合的方式结合在一起, 信息在各级之间是自动传输的。

这样,在某一级程序员眼里看来,存储就是一个整体,存储器内部是透明的。

以上有两个主要层次: 主存 - 辅存。 主存 - CPU。

主存 - 辅存

主存 - 辅存: 这个层次主要是为了解决容量问题, 信息在这两个层次之间传输是利用软硬件结合的方式,因为这里对 传输速度的要求不是很大。

这个层次无论是对何种级别的程序员都是透明的(包括机器语言程序员)。

主存-辅存构成的这 个部分又称为虚拟存储器,那这个空间地址如何定义呢?

是使用主存的空间地址还是辅存的空间地址呢?

在这个层次上给 出了一个新的定义:虚地址, 逻辑地址。

关于这部分内容可以看看:为什么要有虚拟地址

主存 - CPU

这个层次主要是为了解决主存 - CPU之间速度相差过大的问题。信息在这个层次传输是利用纯硬件方式,通过在 主存 - CPU 之间加一个Cache(缓存)来解决这个问题,Cache 速度比CPU慢比主存快很多, 但是Cache功耗大,内存较小。

Cache里面的内容是主存内容的副本, 如果CPU的绝大多数指令能在Cache中找到, 那么计算机运行速度无疑会快很多。

缓存 - 主存 之间的地址就是主存的地址, 实地址, 物理地址; 主存是按内容查找的。

个人感受

做事的认真程度

  1. 看到简书一位同学的绘图十分精美,觉得非常棒。值得学习。

  2. 这是一件非常枯燥的事情,大概能学下来的人都是孤独的吧。

  3. 做的时候我有些急于求成,反而觉得整理的东西很不完整。需要耐心仔细整理一遍。相信以后的自己一定会感谢现在的自己。

老技术

个人忽然觉得这些技术才是真正沉淀写来的精髓。

  1. 比如对于价格和性能之间的衡量,采用的层次结构,组合出来的又便宜有快的存储器。

  2. 比如 DRAM, SRAM 的优缺点比较。对于 DRAM 死区的处理,确实非常的精妙。对于编程也有很大的借鉴意义。

参考资料

《计算机组成原理》P80

常用存储器介绍

存储器(一) - 概述

计算机组成原理目录

4.1 存储器概述