【计算机组成原理/习题+笔记】第四章 存储器(上)

发布于:2025-02-11 ⋅ 阅读:(70) ⋅ 点赞:(0)

一、概论

1.1存储器分类

1.按存储介质分类(注意易失性)

(1)半导体存储器  TTL晶体管、MOS管、主存、cache 易失

(2)磁表面存储器  磁头、载磁体           非易失

(3)磁芯存储器    硬磁材料、环状元件    非易失

(4)光盘存储器    激光、磁光材料        非易失

2.按信息的可保存性

易失性存储器:通电的时候01保存,断电即丢失——主存,cache

非易失性存储器:断电后存储信息依然保持——磁盘,光盘

3.按存取方式分类

(随机访问)

(1)随机存取存储器RAM读写任何一个存储单元的用时都是相同的,与存取单元所在的物理位置无关

随机存储器  在程序的执行过程中可读可写

只读存储器  在程序的执行过程中只读

(串行访问)

(2)顺序存储存储器SAM读写一个存储单元所需时间取决于该存储单元的物理位置  磁带

(3)接存取存储器DAM  磁盘

先直接选取信息所在区域,再按顺序存取。速度介于随机存取存储器和顺序存储存储器之间

4.按在计算机中的作用分类

1.2存储器的层次结构

1.存储器三个主要特性的关系

CPU中也有缓存

存储器三个主要指标:速度、容量、价格。速度越快价格越高;容量越大,价格越低,速度也更慢。

2.缓存——主存层次和主存——辅存层次

CPU和缓存、主存能交换信息;缓存和CPU、主存能交换信息;主存和CPU、缓存、辅存能交换信息。

缓存-主存层次解决了CPU和主存间的速度差异问题。由于缓存速度比主存快,只要将CPU近期要用的信息调入缓存,CPU便可以直接从缓存中获取信息,提高访存速度。但缓存容量小,需要不断的将主存内容调入,这一过程是硬件实现的,对程序员透明。

主存—辅存层次解决了主存容量不够的问题。辅存的速度低于主存,但容量比主存大得多,存储着暂时未用到的信息。当CPU需要使用这些信息时,再调入主存,供CPU直接访问。这一过程由硬件和操作系统共同实现。

辅存中的数据要调入主存中才能被CPU访问

没保存的时候,数据存在主存里(比如ctrl c)是易失的

二、主存储器

2.1概述

1.主存的基本组成

以下是对一个主存存储芯片的抽象(主存使用DRAM,所以图中为栅极电容)

控制电路的意义:当地址线中的信号稳定后才能送入译码器。

MAR经过译码驱动才能找到要访问的单元;存储体经过读写电路才能和MDR交互

2.主存和CPU的联系

译码驱动器和读写电路制作在主存中,而MAR和MDR制作在CPU芯片内

3.主存中存储单元地址的分配

地址:地址编号小的是低地址,地址编号大的是高地址

数据:靠右的是低位,靠左的是高位

小端存储:低位对应低地址,高位对应高地址

大端存储:高位字节存在低地址,低位字节存在高地址(字节越靠左位越高)

例:12345678H 的存储

假定每个字含4个字节,其中编号高的字节为高位字节;2整个字的地址用最低地址表示

12345678H是一个字(一行一个字),两个数字是一个字节

大端存储:

小端存储:

注意:每个存储单元内部不需要调换顺序

设地址线 24 根   按字节寻址 2^24=16M

若字长为 16 位   按字寻址   8MW,字长增加一倍,行数减少一半

若字长为 32 位   按字寻址   4MW

4.主存的技术指标

(1)存储容量  

主存存放二进制代码的总位数,存储字数*字长,如(1M*8位)

(2)存储速度

存取时间  又称为存储器的访问时间,指启动一次存储器操作到完成该操作所需的全部时间;分为读出时间、写入时间

存取周期  连续两次独立的存储器操作(读或写)所需的最小间隔时间。读/写的平均值,因为写一般较慢。

存取周期大于存取时间,因为存取后还有恢复时间

(3)主存带宽/数据传输率:每秒出入主存的最大信息数量  位/秒(b/s),字/秒,字节/秒(B/s)

3种提高存储器带宽的方法:缩短存取周期,增加存储字长(MDR反映),增加存储体

2.2半导体存储芯片简介

0.基本的半导体原件及原理

一个存储元包括一个MOS管和一个电容。电容用于存储01比特。MOS管起到开关的作用。当MOS管接高电压时,变为导体,外界可以对电容读或写。

多个存储元构成了存储单元,存储元的个数称为存储字长。存储字的长度是不固定的,而字节是固定8bit。

存储单元中,红色的线(字选线)连接MOS管,通高电压时将一行所有MOS管导通,电容中的0或1由绿色的线(数据线/位线)导出。所以每次读写的是一个存储字。

多个存储单元构成存储体。

1.半导体存储芯片的基本结构

有x根地址线,就有2^x个存储单元。2^10=1K

14根地址线,10根是1K,4根是16,共16K(2^14)

片选线:CS、CE 传输芯片选择信号或者芯片使能信号,用来选择存储芯片

读写控制线:一根线WE(低电平写,高电平读);两根线OE允许读、WE允许写

存储芯片片选线的作用

2.半导体存储芯片的译码驱动方式

(1)线选法

4根地址线,译码后能选择16个字线,每个字线对应8个芯片,每次对字线上芯片的所有位进行读出或写入

缺点:如果有一个1M的地址线,那么在内存中就要部署 220个字线,来对这1M的存储单元写入数据,这样会对内存电路集成中造成很大困难,所以这种方法更适合存储量不大的芯片

(2)重合法

地址线分为两组,行列各5根线,各能译出32种数,两者结合确定存储单元的地址

一个存储单元只有一个存储元件,每次只输出一位

若使用线选法,需要2^10=1024根线;现在只需要2^5*2=64根线。

存储结构复杂,芯片集成度高,存储容量大

使用行列地址,减少选通线的数量

掌握线选法和重合法的优劣及差异

2.3随机存取存储器(RAM)

1.静态RAM(SRAM)

使用双稳态触发器(有两种稳定状态)存储信息

(1)静态RAM基本电路的读操作

T1~T4是晶体管,存储数据;如果A’高A低,表示1;如果A’低A高,表示0。

T5T6是写入和读出状态的,同时作为行选择信号

行列地址选择信号导入,将T5678电路导通;读选择信号导入;数据导出

(2)静态RAM基本电路的写操作

先输入行/列地址选择将电路导通,然后写选择信号(两路)传入

三角形带个圈是反相信号,写的时候需要两个信号

静态RAM(SRAM)——芯片举例

A0~A9地址总线  WE读写  CS片选  I/O数据总线  Vcc电源高压输入  GND地线

SRAM的数据存储依赖于电源,并且当电源关闭时数据会丢失,因此它被视为易失型存储器。

重合法改进,之前是一次选一行一列,怎么一次选一行四列?

Intel 2114 RAM矩阵(64*64)

行地址线6条,64位字线;列地址线4条,16位字线

芯片分为四组,每组16列*64行

行地址一次选择64行中的某一行,列地址一次选择每一组的某一列,共4位数据

写的时候是两路反相电压

2.动态RAM(DRAM)

(1)动态RAM基本单元电路

使用栅极电容存储信息

三管式

Cg电容,保存数据

数据读出步骤

  1. 预充电信号打开
  2. VDD给读数据线充电,使其变为高电平,代表数据1
  3. 读选择信号有效
  4. T2打开
  5. 若Cg没有充电,代表0
  6. T1 不会打开
  7. 读数据线为高电平,为1
  8. 若Cg有充电,代表1
  9. T1打开
  10. 放电后读数据线为低电平,代表0

读出与原存信息相反

数据写入步骤

  1. 写数据线开通
  2. 写选择线有电流
  3. T3开通
  4. 数据为0,Cg放电
  5. 数据为1,Cg充电

写入与输入信息相同

单管式

数据读出步骤

  1. 字线充电
  2. Cs没有电,代表0
  3. 数据线没有电流,代表0
  4. Cs有电,数据线有电流,代表1

数据写入步骤

  1. 字线充电
  2. 数据线没有电,写入0
  3. 数据线有电流,写入1

(2)动态RAM芯片举例

1.三管动态RAM芯片(Intel 1103)读

2.三管动态RAM芯片(Intel 1103)写

SRAM用触发器,DRAM用电容,较简单,但是读数据时电容会损失电,每次操作时用刷新放大器每次对一行充电

DRAM和SRAM都是易失型存储器

(3)动态RAM刷新

刷新:对DRAM定期进行的全部重写过程。

刷新与行地址有关,一次刷新一行

3.1集中刷新默认刷新时间间隔为2ms(2ms内要把全部存储单元刷新),存取周期为0.5us,以128*128矩阵为例)

刷新时间间隔内要对所有芯片充电,一次刷新一行,共128行,一次刷新占用一个存取周期的时间。刷新时间间隔内存在4000个存取周期。

集中式:最后128周期(64us)统一进行刷新,但是该128个周期无法读写,称为死区。死区为64us死时间率为128/4000*100%=3.2%

刷新时间间隔:2ms

3.2分散刷新:存取后接着刷新

无死区。存取周期变为0.5us+0.5us

出现了过度刷新

刷新时间间隔:128us

3.3异步刷新

2ms被128行分割,得15.6us,则15.6us刷新一行

每行每隔2ms刷新一次,死区为0.5us

将刷新安排在指令译码阶段,不会出现死区

刷新时间间隔2ms

刷新由存储器自行完成,不需要CPU控制

一个 8Kx8 位的动态 RAM 芯片,某内部结构排列成256 × 256 形式,存取周期为 0.5 us,刷新最大间隔时间为 2ms。采用集中刷新时,死时间率为百分之多少?采用分散刷新(注意此时存取周期有变化)时,实际的刷新间隔为多少us?采用异步刷新时,每隔多少us刷新一行?

总的周期数:2ms/0.5us=4000

刷新占用周期数=256

死时间率=256/4000=6.4%

0.5us+0.5us=1us

刷新间隔=256*1=256us

2000/256=7.8us

(4)动态RAM与静态RAM的比较

DRAM需要一个电容+1~3个晶体管,而SRAM需要8个晶体管

芯片引脚与速度有关,速度快引脚多

DRAM有引脚复用,提高集成度;SRAM的速度快是其特性,不使用引脚复用

管件多的损耗大

速度快的价格高

DRAM适合做主存(集成度高),SRAM适合做缓存(速度快)

(5)DRAM地址线复用

行地址、列地址可以分两次传送,可以减少一半的地址引脚。比如2K,11根地址线,可以分为5+6,地址引脚只需要6。

而SRAM的行列地址可以一次传送,因为SRAM集成度低,容量小。

2.4只读存储器ROM

1.掩模ROM(MROM)

行列交叉线有MOS管——通电后接地变0——反相后变1——输出1

行列选择线交叉处有 MOS “1”

行列选择线交叉处无 MOS 管为0

用户无法改变原始状态

制造成本较低,批量生产时具有成本优势。

适用于量产的、数据固定不变的应用。

2.PROM(一次性编程)

熔丝断为“0”

熔丝未断为1

用户可以在编程时用大电流将熔丝烧断。故只能支持一次编程

3.EPROM(多次性编程)

(1)N型沟道浮动栅MOS电路

G栅极  S源  D漏

D端加正电压 形成浮动栅 SD不导通为“0”

D端不加正电压 不形成浮动栅  SD导通为“1”

紫外线可以全部擦洗

2716型EPROM的逻辑图和引脚

引脚有地址线、数据线,还有电源引出头Vcc和Vpp,Vss为地。CS为片选端,读出时为低电平,编程时为高电平。PD/progr是功率下降/编程输入端,读出时为低电平,此端为高电平时,使EPRONM功率下降。没有读写控制线。

4.EEPROM(多次性编程)

电可擦写:用电气方法将存储内容擦除再重写

在联机条件下,可以局部擦写、全部擦写

5.FLASH Memory(闪速型存储器)

有EPROM的优点:价格便宜、集成度高

有EEPROM的优点:电可擦洗重写

比EEPROM快;具备RAM功能:可与CPU直连

下列有关RAM和ROM的叙述中正确的是()。

I. RAM是易失性存储器,ROM是非易性存储器

II. RAM 和 ROM 都是采用随机存取方式进行信息访问

III. RAM 和 ROM 都可用作 Cache

IV.RAM和ROM都需要进行刷新

A. 仅I、II      B. 仅II 、III

C. 仅I、II、III   D. 仅II 、III、IV

A

cache用高速SRAM制作

下列关于闪存(Flash Memory)的叙述中,错误的是( )

A信息可读可写,并且读、写速度一样快

B存储元由 MOS 管组成,是一种半导体存储器

C掉电后信息不丢失,是一种非易失性存储器

D采用随机访问方式,可替代计算机外部存储器

A

写的时候要擦除,较慢

2.5存储器与CPU的连接

1.存储器容量的扩展

(1)位扩展(增加存储字长)

用两个1K*4位的存储芯片组成1K*8位的存储器:

地址线、CS、WE共用;其中一片的数据线作为高4位D7~D4,另一片作低四位D3~D0

2)字扩展(增加存储字的数量)

用两个1K*8位的存储芯片组成2K*8位的存储器

A10作片选信号。片选信号为低电平表示选择,所以A10低电平时CS0有效,高电平时反相后CS1有效。

也叫线选法,一个地址线分为两路,通过非门,使一个为1一个为0。

(3)字、位扩展

用8片1K×4位存储芯片组成4K×8位的存储器

1K是10条地址线,4K是12条存储线,多出两条片选线

8位则是两个芯片一组

用512K × 8位的闪存存储芯片组成一个4M × 32位的半导体只读存储器,则:

(1)该存储器有多少根数据线?

(2)该存储器有多少根地址线?

(3)存储容量是多少 MB?

(4)共需几片这种存储芯片?

1.32

2.22

3.16

4.32

假定用若干个2 K ×4位芯片组成一个8 K ×8位存储器,则地址0B1FH所在芯片的最小地址是()

A 0000H

B 0600H

C 0700H

D 0800H

D

需要8个芯片,两两一组

每一组的地址为2k,11根地址线

8k总共13根地址线,所以12-13为片选线

题目中0B1FH=0000 1011 0001 1111,很显然取低11位作为片内地址,低12~13位作为片选地址,很显然 0B1FH低十三位为=000(0 1)(011 0001 1111) 很显然选片地址为01 代表第二组芯片

2.存储器与CPU的连接

(1)地址线的连接
通常情况是将CPU地址线的低位与存储芯片的地址线相连。CPU地址线的高位或在存储芯片扩充时用,或做其它用途,入片选信号。
例如:16K×1位存储芯片连接时,地址线有14根与CPU相连。
(2)数据线的连接
CPU的数据线数与存储芯片的数据线数也不一定相等。此时必须对存储芯片扩展。使其数据位数与CPU的数据线相等。
(3)读/写命令线的连接
CPU读/写命令线一般可直接与存储芯片的读/写控制端相连,通常高电平为读,低电平为写。ROM不连读写,连的是PD/Progr。
(4)片选线的连接
存储器由许多存储芯片组成,哪一片被选中完全取决于该存储芯片的片选控制端CS非能否收到来自CPU的片选有效信号。
片选有效信号与CPU的访存控制信号MREQ非(低电平有效)有关,因为只有当CPU要求访存时,才需要选择存储芯片。若CPU访问I/O时,则MREQ非为高电平,表示不要求存储器工作。

(5)译码器左上角为使能线路,相当于供电用的,需满足高/低电平的要求译码器才能工作。可以连外接电源、MREQ、CPU多余的地址线。ABC确定Y的有效输出(低电平),其余Y都为高电平。

a10必须用上,不然选择RAM时就会选到一些不存在的地址

每根线都要用上,根据该芯片的地址特性确定,比如地址用12位,13位始终为1,那就要将13位并入片选信号中,让13位取1时片选信号有效

与非门:全0才为0,类似或门

假设同上一题,要求最小8K为系统程序区,相邻16K为用户程序区,最大4K为系统程序工作区

(1)写出对应的二进制地址码

(2)确定芯片的数量及类型

(3)分配地址线

(4)确定片选信号

2.7提高访存速度的措施

(1)采用高速器件

(2)采用层次结构 cache——主存

(3)调整主存结构

1.单体多字系统

每次从存储器中取出4个值或指令放到数据寄存器中,CPU使用时,通过单字长寄存器从其中取出一个即可。

问题:

1.写入时,先写入单字长寄存器中,再写入4位数据寄存器中,放到存储器中时,就可能覆盖其他3个位置上的数据,造成覆写。如果想只写到1个位置上,还要实现这样的功能,存储器就会比较复杂。

2.取数或者指令时,数据或指令不是连续存放的,就会造成麻烦。比如取了4个指令,结果第一个指令是跳转指令,那么根本用不到后面3个指令。

2.多体并行系统

(1)高位交叉  单体内顺序编址

每个单体的前几位是相同的,后面几位递增

前两位是存储体号,后四位是存储地址
数据在存储体内按照列存放的。
问题:
一个存储体的芯片在准备数据时,其它存储体的芯片可以并行存取。

但是连续读取一个存储体的数据时,其它存储器会空闲。在连续访问时性能并未提升。

(2)低位交叉  各个体轮流编址

每个单体的后几位相同,前几位递增

低位交叉特点:

对连续地址的数据进行操作时可以顺序访问各个存储体,实现流水线方式存取

在一个存取周期中,cpu通过总线正好对所有存储体进行访问,不耽误时间。

应满足T=nr,连续读取n个字所需的总时间为T+(n-1)r

高位交叉存储中的字连续存放,总是访问同一个存储体,不能保证程序的局部性原理

低位交叉存储中的字交叉存放,通常会流水访问存储体,保证了程序的局部性原理

若机器采用四体低位交叉存储器,现分别执行下述操作:第一(读取6个连续地址单元中存放的存储字,重复80次);第二(读取8个连续地址单元中存放的存储字,重复60次)则第一种、第二种所花费的时间之比为(C)

A.1:1  B. 2:1  C.4:3  D.3:4

第一种情况,读取数据块123412,再重复时,要注意不能立即读1,要等一会

第二种可以连续读

画图解题,

最后一次用时单独考虑

设有 4 个模块组成的四体存储器结构,每个体的存储字长为 32 位,存取周期为 200 ns。假设数据总线宽度为 32 位,总线传输周期为和50ns,试求顺序存储和交叉存储的存储器带宽

解:顺序存储(高位交叉编址)和交叉存储(低位交叉编址)连续读出 4 个字的信息量是 32 x 4 = 128 位。

顺序存储存储器连续读出 4 个字的时间是200ns*4=800ns

交叉存储存储器连续读4个字的时间是200+(4-1)*50=350ns

带宽分别为128/(8*10-7)=16*107bps;128/(3.5*10-7)=37*107bps

s,ms,us,ns

下面有关存储器的说法中正确的是 ()

A SRAM 是非易失性存储器, DRAM是易失性存储器

B辅存是按顺序访问的存储器,主存一般是按随机存取方式访问的存储器

C辅存是非易失性存储器,主存是易失性存储器

D RAM 和 ROM 都可用作 Cache

C

ROM只读不写,不可用作cache

某计算机主存容量为 64 KB ,其中 ROM 区为4KB, 其余为 RAM 区,按字节编址现在要用 2 K*8位的 ROM 芯片和 4K * 4 位的 RAM 芯来设计该存储器,则需要上述规格的 ROM 芯片数和 RAM 芯片数分别是

A1,15

B2,15

C1,30

D2,30

D

0000-07FF, 0800-0FFF,……

0800H

地址线需要11根。由于DRAM可以分时复用,即先传送行地址,再传送列地址,所以行列地址分为5、6时地址引脚数最小。减少刷新开销即行数最少。所以行是5,列是6。r、c是字线数。

交叉存储,访问64个字用时:T+T/4*(64-1) = 67T/4

顺序存储,64T

某计算机主存按字节编址,由 4 个 64M×8 位的 DRAM 芯片采用交叉编址方式构成,并与宽度为 32 位的存 储器总线相连,主存每次最多读写 32 位数据。若 double 型变量 x 的主存地址为 804 001AH,则读取 x 需要的存储周期数是

低位交叉存储,一个总线周期(1/4存取周期)读出8位,double为64bit,需要8个总线周期。由x的主存地址得知x存在第三个单体中。读8个需要3周期。

double/long 64bit; int/float 32bit; char/short 16bit;

某计算机使用 4 体交叉编址存储器,假定在存储器总线上出现的主存地址(十进制)序列为 8005,8006,8007,8008,8001,8002,8003,8004,8000则可能发生访存冲突的地址对是()

A 8000,8004

B 8002,8007

C 8001,8008

D 8004,8008

D

画图,

0 1 2 3

4 5 6 7

8 9 10 11

一个存取周期内(4个总线周期内),一个存储体不能访问两次

 


网站公告

今日签到

点亮在社区的每一天
去签到