组成原理-存储存储器的相关知识

Posted Mount256

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了组成原理-存储存储器的相关知识相关的知识,希望对你有一定的参考价值。

文章目录

1 主存储器

1.1 随机存储器 RAM

特点SRAM(静态)DRAM(动态)
存储信息触发器电容
破坏性读出
需要刷新不要需要(分散刷新、集中刷新、异步刷新)
地址传送行、列地址同时送行、列地址分开两次送(地址复用技术)
读写速度
成本
用途Cache主存

1.2 只读存储器 ROM

  • EPROM、EEPROM、Flash(U盘)
  • SSD(固态硬盘)

1.3 串行访问存储器

  • 磁带、磁盘、光盘(CD-ROM)

1.4 多模块存储器

  • 高位交叉存储器:高位地址表示体号,低位地址表示体内地址
  • 低位交叉存储器:低位地址表示体号,高位地址表示体内地址(常考)

2 字长和存储容量

2.1 存储单位

在计算机组成原理课程中,使用 K、M、G、T 均表示以 2 为底的单位。如 2K 个存储单元的意思是 2048 个存储单元,而不是 2000 个。但是,对于磁盘的存储容量及数据传输率,依然使用以 10 为底的单位。

单位大小十六进制数
K210400H
M22010,0000H
G230~
T240~

注意!!!408 考试使用 KB、MB、GB、TB 表示 2 为底的存储单位!!!

注意!!!408 考试使用 KB、MB、GB、TB 表示 2 为底的存储单位!!!

注意!!!408 考试使用 KB、MB、GB、TB 表示 2 为底的存储单位!!!

10 为底的存储单位2 为底的存储单位
KB = 103BKiB = 210B
MB = 106BMiB = 220B
GB = 109BGiB = 230B
TB = 1012BTiB = 240B

【例】128 MB = 128 * 220 B = 27 * 220 B = 227 B

16MB = 16 * 220 B = 24 * 220 B = 224 B

2.2 字长

  • 字长:用于表示 CPU 内部通用寄存器的宽度。字长包括机器字长、指令字长、存储字长,必须为字节(8 位)的整数倍。

  • 机器字长:机器进行一次整数运算所能处理的二进制数据的位数,即 CPU 位数,或简称为字长。

【注】操作系统位数:操作系统可寻址位数(小于等于 CPU 位数)。32 位处理器只能装 32 位操作系统而不能装 64 位操作系统,64 位处理器能装 32 或 64 位操作系统。

名称16 位机器(CPU)中的位数32 位机器(CPU)中的位数64 位机器(CPU)中的位数
位 (bit, b)111
字节 (byte, B)888
半字 (1B/2B/4B)81632
字 (2B/4B/8B,机器字长)163264
双字3264128
四字64128256
  • 指令字长:一个指令字中包含的二进制位数。

  • 存储字长:一个存储单元存储的二进制位数。

指令字长一般取存储字长的整数倍,若指令字长等于存储字长的 2 倍,则需要 2 个访存周期来取出一条指令;若指令字长等于存储字长,则取指周期等于机器周期。

补充:不同机器下的数据类型长度

类型16 位机器32 位机器64 位机器
char888
short161616
int163232
long323232
long long646464
float163232
double646464

2.3 存储容量

  • 存储容量 = 存储单元个数 * 每个存储单元的长度(位数,又称为存储字长)

【例 1】存储器容量为 2M * 8 位,表示该存储器有 2 * 220 = 221 个存储单元(若为 SRAM,则有 21 根地址线),每个存储单元存放 8 位二进制数据(有 8 根数据线,存储字长为 8 位,即 1 字节),存储容量为 2M * 1B = 2MB。

【例 2】存储器容量为 8K * 16 位,表示该存储器有 8 * 210 = 213 个存储单元(若为 SRAM,则有 13 根地址线),每个存储单元存放 16 位二进制数据(有 16 根数据线,存储字长为 16 位,即 2 字节),存储容量为 8K * 2B = 16KB。

  • 设 A 存储器容量为 x1 * y1 位,B 存储芯片容量为 x2 * y2 位,则组成 A 存储器所需要的 B 芯片片数为(x1 * y1)/(x2 * y2)

【例 3】16 片 2K * 4 位的存储芯片,可设计为多少存储容量的 16 位存储器?

设存储单元个数为 M,则有:(M * 16) / (2K * 4) = 16,解得 M = 8K。

【例 4】内存按字节编址,地址从 90000H 到 CFFFFH,若用存储容量为 16K * 8 位芯片构成该内存,则需要多少块芯片?

存储单元个数为 D0000H - 90000H = 40000H = 4 * 164 = 218 = 28 * 210 = 256K,且内存按字节编址(8 位),所以有:(256K * 8) / (16K * 8) = 16,即需要 16 块芯片。

【例 5】某 32 位机器的内存按字编址,地址从 90000H 到 CFFFFH,若用存储容量为 16K * 8 位芯片构成该内存,则需要多少块芯片?

存储单元个数为 D0000H - 90000H = 40000H = 4 * 164 = 218 = 28 * 210 = 256K,且内存按字编址(每个存储单元大小为 32 位),所以有:(256K * 32) / (16K * 8) = 64,即需要 64 块芯片。

2.4 主存容量的扩展

  • 位扩展法:8K * 1b --> 8K * 8b
  • 字扩展法:16K * 8b --> 64K * 8b
  • 字位同时扩展法:16K * 4b --> 64K * 8b

3 磁盘的平均存取时间

  • 设磁盘转数为 r 转/秒,每条磁道容量为 N 字节,则磁盘传输速率 = r * N

【注】对于磁盘,K、M、G、T 是以 10 为底的单位,而不是以 2 为底!1K = 103,1M = 106,1G = 109,1T = 1012。比如 20MB/s = 20 * 106 B/s ≠ 20 * 220 B/s。

  • (一个扇区的)平均存取时间 = 寻道时间 + 旋转延迟时间(磁头定位到所在扇区的时间)+ 传输时间(磁头扫过一个扇区所用的时间)
  • 默认情况下:旋转延迟时间 = (旋转一圈的时间 / 2) = (1 / 磁盘转数) / 2
  • 传输时间 = (旋转一圈的时间 / 每条磁道的平均扇区数) = (一个扇区的大小 / 数据传输率)

【注】因为在定位过程中,最多旋转 1 圈,最少不用旋转(0 圈),所以在平均情况下,需要旋转半圈,时间需除于 2。

相关例题

【例 1】设磁盘转速为 7200 转/分,平均寻道时间为 9ms,每条磁道的平均扇区数为 400,则访问一个扇区的平均存取时间是多少?

  • 旋转一圈的时间 = (60s / 7200) * 1000 = 8ms,旋转延迟时间 = 1/2 * 旋转一圈所用时间 = 4ms
  • 传输时间 = (60s / 7200) / 400 * 1000 = 0.02ms
  • 寻道时间 = 9ms
  • 平均存取时间 = 寻道时间 + 旋转延迟时间 + 传输时间 = 9ms + 4ms + 0.02ms = 13.02ms

【例 2】设磁盘的转速为 10000 转/分,平均寻道时间为 6ms,磁盘传输速率为 20MB/s,磁盘控制器延迟为 0.2ms,读取一个 4KB 扇区所需的平均时间是多少?

  • 旋转一圈的时间 = (60s / 10000) * 1000 = 6ms,旋转延迟时间 = 1/2 * 旋转一圈所用时间 = 3ms
  • 传输时间 = 读取时间 + 延迟时间 = (4KB) / (20MB/s) * 1000 + 0.2 = 0.2ms + 0.2ms = 0.4ms
  • 寻道时间 = 6ms
  • 平均存取时间 = 寻道时间 + 旋转延迟时间 + 传输时间 = 6ms + 3ms + 0.4ms = 9.4ms

以上是关于组成原理-存储存储器的相关知识的主要内容,如果未能解决你的问题,请参考以下文章

计算机组成原理基础知识-存储器

五分钟理解主存储器的基本组成结构

组成原理-存储Cache 和页式虚拟存储器

(计算机组成原理)第三章存储系统-第六节1:高速缓冲存储器Cache及其相关基本概念程序访问的局部性原理和命中率

(计算机组成原理)第三章存储系统-第四节1:主存储器和CPU的连接

2017.0621.《计算机组成原理》-存储器层次结构