存储器

来源:互联网 发布:unity3d 鼠标点击移动 编辑:程序博客网 时间:2024/04/28 23:21

存储器


1.存储器的分类

1. 按与CPU的连接和功能分类

  1. ==主存储器(CPU可以直接访问)==

    CPU能直接访问的存储器,用来存放当前运行的程序和数据。由于设在主机内部,所以又称内存储器,简称内存或主存

  2. ==辅助存储器(CPU不能直接访问)==

    是为了解决主存容量不足而设置的存储器,用来存放当前不参加运行的程序和数据。当需要运行存放在辅存中的程序时,需要将所需内容成批地调入内存供CPU使用,CPU不能直接访问辅存。由于辅存是外部设备的一种,所以又称为外存储器,简称外存

  3. 高速缓存存储器

    是一种介于主存与CPU之间,用来解决CPU与主存间速度匹配问题的高速小容量的存储器。用来存放CPU立即要运行或刚使用过的程序和数据。


2. 按存取方式分类

  1. 随机存取存储器(RAM, random access memory)

    存储器任何单元的内容均可以按其地址随机读取或写入,而且存取时间与单元的物理位置==无关==。

    ==一般主存储器主要由RAM组成。==

  2. 只读存储器(ROM, read only memory)

    任何单元的内容只能随机的读取信息,而不能写入信息。ROM可以作为主存的一部分,用以存放不变的程序和数据。

  3. 顺序存取存储器(SAM, sequential access memory)

    存储器所存信息的排列、寻址和读写操作都是按顺序进行的,并且存取时间与信息在存储器中的物理位置==有关==

  4. 直接存取存储器(DAM, direct access memory)


3. 按存储介质分类

凡具有两个稳定物理状态,可以用来记忆二进制代码的文职或物理器件均成为存储介质。

  1. 磁芯存储器

  2. 半导体存储器

    可分为双极型和MOS型

  3. 磁表面存储器

  4. 光存储器



2. 主存的组成和基本操作

基本组成

基本组成框架(看计算机组成原理 P140):

地址总线–>地址寄存器–>地址译码与驱动电路–>==存储阵列== <–>读写电路

<–>数据寄存器<–>地址总线


  1. ==存储器==存储器的核心部分,是存储二进制信息的主体,也成为存储体。

    存储体==由大量存储单元构成==,为了区分各个存储单元,把它们进行统一编号,这个编号称为地址,又称地址码==地址码与存储单元是一一对应的,每个存储单元都有自己唯一的地址。==

  2. ==编址单位==:可寻址的最小单位

    • 某些计算机按字(word)编址的,最小可寻址信息单元为一个机器字,连续的存储器地址对应于连续的机器字。

    • 多数计算机是按字节(byte)编址的,最小寻址单位为一个字节。一个32位字长的按字节寻址的计算机,一个存储器字包含四个可单独寻址的字节单元,由==地址的低两位区分==(siehe Folien RO_VL13 s.57)。

  3. ==地址寄存器==:用于存放所要访问的存储单元的地址

    要对某一存储单元进行存取操作,首先要通过地址总线把要被访问的单元的地址放到地址寄存器中。

  4. ==地址译码与驱动电路==

    把地址寄存器中的地址进行译码,通过对应的地址选择线到存储阵列中找到要访问的存储单元并驱动其完成指定的操作。

  5. 读写电路与数据寄存器

    (==存储阵列,读写电路,数据寄存器,数据总线之间都是双箭头)==

    作用是:根据CPU的读写指令,把数据寄存器的内容写入被访问的存储单元,或者从被访问单元中读出信息送入数据寄存器中,以供CPU或IO使用(所以它们之间的箭头是双向的 –> 既能写也能读)

    • 读:读出的信息需先放到数据寄存器,然后通过数据总线传送给CPU或者IO系统

    • 写:必须先将要写入的信息经数据总线传入数据寄存器,再经读写电路写入被访问的存储单元

  6. 时序控制电路

    用于接收来自CPU的读写控制信号,产生存储器操作所需的各种时序控制信号,控制存储器完成指定的操作。

    若存储器采用异步控制的方式,当一个存取操作完成,该控制电路还应该出存储器操作完成(MFC)信号


基本操作

主存用来==存放CPU正在运行的程序和数据==,和CPU的关系最为密切。主存与CPU之间的连接是由总线支持的。(连接方式见计算机组成原理 p141)

CPU 总线 主存 MAR —> 地址 MDR <–> Data 读写控制信号 – R/W –> 时序控制电路 … <– MFC – 时序控制电路

+ 读:当CPU要从存储器中读取一个字

1. CPU把被访单元的地址地址送到存储器地址寄存器MAR(Memory Address Register)2. 经地址总线把地址传送给主存,同时发出“读”命令3. 存储器通过时序控制电路接到“读”命令,根据地址从被选存储单元中读出信息,并经数据总线送入存储器数据寄存器MDR(Memory Data Register)。**==MAR和MAR都是位于CPU内==**
  • 写:为了存一个字到主存

    1. CPU把要存入的存储单元地址经MAR送入主存,并把要存入的信息字送入MDR,发出“写”命令。
    2. 存储器在这个命令的控制下,经数据总线把MDR的内容写入指定地址的存储单元。



3.存储器的主要技术指标

衡量一个半导体存储器的主要技术指标有:

1. 存储容量

指半导体存储芯片所能存储的二进制信息的位数,单位是==kb==(kilo**==Bits==)、==mb==(mega==Bits==**)等。

注意与==计算机系统的存储容量==区分

讨论芯片容量,单位是 ==bit==

讨论计算机存储器容量,单位是 ==Byte==


2. 速度

由于存储芯片的工作速度慢于CPU的工作速度,所以存储芯片的工作速度直接影响CPU执行指令的速度(回忆MIMA中取指令的5个Takt的过程,以及store和load的指令的执行过程)。

存储芯片的速度通常用==取数时间(Memory Access Time)====存取周期(Memory Cycle Time)==来表示。

(1)Memory Access Time (访问时间、取数时间)

==从启动一次存储器存取操作到完成该操作所经历的时间==,通常被记为 ==tAA==

对存储器的某一个单元进行一次“读”操作,例如CPU取指令或者取数据,访问时间就是指 从把要被访问的存储单元的地址加载到存储器芯片的==地址引脚==上开始,直到读取的数据或者指令在存储器芯片的==数据引脚==上可以使用为止,两者之间的时间差就是访问时间。

另一个常见的参数:==tCA==

指: 从加载到存储器芯片的选片(chip select, CS)信号引脚上的选片信号有效开始,知道读取的数据或指令在存储器芯片的数据引脚上可以使用为止的这段时间间隔。

(2)Memory Cycle Time(存取周期、读写周期)

指: ==对存储器进行连续两次存取操作所需要的最小时间间隔==

通常:== Memory Cycle Time >= Memory Access Time==(有些存储器在一次存取操作后需要有一定的恢复时间)

(3)总线带宽(频宽、数据传输率)

==存储器带宽、频宽 = 存储器总线宽度 / 存取周期==

==存储器在单位时间内所存取的二进制信息的位数==

(4)价格

常用每位价格来衡量:

存储器容量为S位, 总价格为C,每位价格:

c = C / S

半导体存储器的总价格正比于存储容量,反比于存取时间。容量、速度、价格三个指标相互矛盾、相互制约 –> 高速存储器旺旺价格也高,因而容量不可能很大。



存储器系统的层次结构

存储器系统层次 访问时间 存储容量 1.寄存器 几ns 128个Byte就合适 2.高速缓存存储器 寄存器的几倍 几mB 3.主存 几十ns 几十mB到数千mB 4.硬盘 几GB到几十GB 最少要10ms以上 5.光盘、磁带 如果加上介质的取出和插入驱动器的时间,得以秒来计算 一般脱机存放,容量只受限于用户的预算

从上往下,有三个关键参数==逐渐增大==

  1. 访问时间逐渐增长

    • 寄存器:几ns
    • 高速缓存:寄存器的几倍
    • 主存:几十ns
    • 磁盘:最少要10ms以上
    • 磁带、光盘:如果加上介质的取出和插入驱动器的时间,得以秒来计算
  2. 存储容量逐渐增大

  3. 同样的钱能买到的存储容量增大(存储每位的价格 (c = C / S) 逐渐减小)

0 0