菜缤的世界 CairBin's Blog - 计算机系统
type: channel
link: https://blog.cairbin.top/index.php/tag/计算机系统/
items: 计算机组成原理——存储系统

计算机组成原理——存储系统
type: item
date: 2024-09-22T06:50:00+00:00
description: 计算机组成原理——存储系统存储器层次结构存储器层次结构如下：寄存器（CPU）Cache（高速缓冲存储器）主存磁盘磁带、光盘等按照上述层次结构，自下而上速度依次增快、容量相对依次渐小、造价越来越高昂。有的书上把计算机内部的磁盘统称为“辅存”，把U盘、光盘等成为外存。但是也有部分书籍将磁盘、U盘、光盘等统称为“辅村”或者“外存”。本文按照后者进行描述。我们平常安装的应用程序一般是放在辅存中的，辅存容量大，但是读写较慢。如果CPU直接访问辅存的话，那么CPU就会被辅存的速度拖累，因此CPU想要运行应用程序，需要将辅存中的程序与数据放到内存中去才行。主存中的数据被放到缓存中，CPU可以直接往缓存里写数据和读数据。虽然主存的速度已经很快了，但是相对于CPU来讲仍跟不上CPU的速度，为了解决主存与CPU之间速度的矛盾就在二者之间增加了缓存。主存与辅存之间实现了虚拟存储系统以解决主存容量不够的方式。（参考OS）存储器分类按照存储介质分类：半导体存储器：以半导体器件存储信息（主存、Cache等）磁表面存储器：以磁性材料存储信息（磁盘、磁带等）光存储器：以光介质存储信息（光盘等）按存取方式分类：随机存取存储器（Random Access Memory，RAM）：读写任何一个存储单元所需的时间都几乎相同，与存储单元所在的物理位置无关。顺序存取存储器（Sequential Access Memory， SAM）：读写一个存储单元所需时间取决于存储单元所在的物理位置。直接存取存储器（Direct Access Memory，DAM）：既有随机存取的特性，也有顺序存取的特性。先直接选取信息所在区域，然后按顺序方式存取。其中SAM和DAM统称为串行访问存储器，即读写某个存储单元所需的时间与存储单元的物理位置有关。还有一种叫做相联存储器（Associative Memory），即可以按照内容访问的存储器（Content Addressed Memory， CAM）。如硬件实现的快表（TLB）就是一种CAM。按照信息可更改性分类：读写存储器（Read/Write Memory）：可读也可写，如内存、磁盘等。只读存储器（Read Only Memory）：只能读不能写，如实体音乐专辑使用的CD-ROM。BIOS通常写在ROM中。按照信息等可保存性：易失性存储器：断电后存储信息消失的存储器。（内存、Cache等）非易失性存储器：断电后存储信息依然保持的存储器。（磁盘、光盘）信息读出有两种：破坏性读出：信息读出后，原来的存储信息被破坏（如DRAM芯片，读出数据后要重写）非破坏性读出：信息读出后，原来等存储信息不被破坏（如SRAM芯片、磁盘、光盘等）存储器性能指标存储容量：存储字数*存储字长单位成本：每位价格=总成本/总容量存储速度：传输速率=数据的宽度/存储周期数据的宽度即存储字长。存储周期又称为读写周期读写周期或访问周期，它是存储器进行一次完整的读写操作所需的全部时间，即连续两次独立地访问存储器操作（读或写）之间所需的最小时间间隔，可以划分为存取时间和恢复时间。存取时间是指从启动一次存储器操作到完成该操作所经历的时间，分为读出时间和写入时间。主存带宽又称数据传输率，表示每秒从主存进出信息的最大数量，单位为字/秒、字节/秒、位/秒等。主存储器的基本组成与原理主存基本的半导体元件与原理在前面我们提到过主存储器分为存储体、MAR、MDR，三者在时序控制逻辑电路的协调下配合工作。存储体中包含若干个存储单元，每个存储单元的每一位实际上是由存储元这个电子元件来保存的。存储元包含一个电容和一个MOS管，每个存储元可以存放一个二进制位的0或1。MOS管可以理解为是一种电控开关，输入电压达到某个阀值的时候，MOS管就可以接通。存储器的读写的基本大小之所以是以存储字长为单位的，是因为MOS管的一端接在了同一条线上。主存存储芯片的基本原理MAR连接地址总线和译码器，给定n位地址对应$2^{n}$个存储单元，译码器输出端就有$2^{n}$个字选线。若CPU给定的地址n位全为0到MAR中，译码器会将地址对应的第0根字选线一个高电平输出，由于该行存储元的MOS管同一级都连接到该线上，因此本行存储元都会被选通，与MOS相连的另一端，也就是每一列的数据线（位线）就可以输出该存储字的每一位二进制数据，每一列的位线与MDR相连接，MDR输出端与数据总线相连接，这样CPU就能够通过数据总线拿到MDR里寄存的数据了。由此可见，数据总线的宽度与存储字长是相等的。此外我们还需要一个控制电路来控制译码器、MAR、MDR。由于我们采用电信号传输方式，因此CPU给出的地址到MAR未稳定之前，其地址信息是不能够到译码器中的。当数据输出的时候，只有当数据到MDR稳定之后，才能从数据总线送出数据。这一系列的操作都是要…