6.1 存储技术介绍

待补充 560

一、存储技术

1.1 随机存储内存

随机存储内存(Random-access memory,RAM)有两种形式——静态和动态。静态RAM(SRAM)速度更快,其价格也显著高于动态RAM(DRAM)。SRAM被用来作为缓存内存,DRAM被用来作为主存以及图像系统的帧缓存(frame buffer)。

1.1.1 静态RAM

在这里插入图片描述
在这里插入图片描述

1.1.2 动态RAM

在这里插入图片描述
在这里插入图片描述

1.1.3 传统DRAMs

DRAM芯片上的格子(cell)被划分成d个超格(supercell),每个超格包含w个DRAM格。一个 d × w d\times w d×w的DRAM中可以存储dw位的信息。超格的组织形式是r行c列的长方形数组,其中rc=d。每一个超格都有(i,j)形式的下标,i代表行,j代表列。

例如,图6.3展示了一个 16 × 8 16\times8 16×8的DRAM芯片的组织形式:
在这里插入图片描述
其中d=16超格,w=8位每超格,r=4行,c=4列。阴影部分指代在地址(2,1)处的超格。信息通过一种称为引脚(pins)的外部连接器流入和流出芯片。每个引脚携带1位的信号。图6.3展示了两类这样的引脚:一个8位的数据引脚,每次可以传递1字节的数据进入或流出芯片,还有一个2位的地址引脚,这个引脚携带了超格的行和列信息。其他传递控制信息的引脚没有显示在图中。

每个DRAM芯片都会连接到称为内存控制器(memory controller)的电路元件上,内存控制器可以一次传输进或传输出w位数据。为了读取位于(i,j)超格处的信息,内存控制器将行地址i及列地址j发送到DRAM中。DRAM将超格(i,j)中的内存返回到内存控制器中。行地址i被称为RAS请求(Row Access Strobe request),而列地址j被称为CAS请求(Column Access Strobe request)。注意RAS和CAS请求共享相同的DRAM地址引脚。

例如,为了从图6.3中的 16 × 8 16\times8 16×8的DRAM中读取(2,1)超格,内存控制器会发送行地址2,如图6.4(a)中所示:
在这里插入图片描述
DRAM通过将row2中整行的数据拷贝进入一个内部行缓冲区中进行回应。接下来,内存控制器发送列地址1,如图6.4(b)中所示,DRAM将超格(2,1)中的8位数据从行缓冲区中拷贝出来,并将这些数据发送到内存控制器中。

在这里插入图片描述

1.1.4 内存模块

在这里插入图片描述
在这里插入图片描述

练习 6.1
在这里插入图片描述

在这里插入图片描述

1.1.5 增强的DRAMs

DRAMs内存有很多种类,新的种类随着处理器速度的快速提升而有规律地出现在市场上。每个新的种类都基于基本的动态内存格,但是这些种类会优化访问DRAM格的速度。

  • 快速页模式(fast page mode DRAM,FPM DRAM):传统的DRAM拷贝一整行超格进入内部行缓存中,但是仅仅使用其中一个并抛掉其他的。FPM DRAM通过允许连续访问行缓冲区中同一行来提高效率。例如,在传统DRAM中为了从行i中读取4个超格,内存控制器需要发送四对RAS/CAS请求,虽然每次行地址i都是相同的。在FPM DRAM中进行同样的读取时,内存控制器首先发送一个初始RAS/CAS请求,然后接下来会发送三个CAS请求。初始RAS/CAS请求将行i拷贝进入行缓冲区中,然后返回CAS寻址到的超格。接下来三个超格都是直接从行缓冲区中进行读取,因此要比原始的方式要快
  • 拓展数据流出DRAM(Extended data out DRAM,EDO DRAM):这是FPM DRAM的一种强化类型,allows the individual CAS signals to be spaced closer together in time.
  • 在这里插入图片描述

1.1.6 非易失性内存(nonvolatile memory)

DRAM和SRAM是易失的,当失去电压后它们所存储的信息就都消失了。而非易失性内存在断电后仍然可以保存它们的数据。非易失性内存有很多种。从历史原因考量,它们共同被称为只读内存(ROMs),尽管一些ROMs可以被写入并读取。ROMS通过它们可以被写入及写入的机制进行区分。

可重编程ROM(programmable ROM,PROM)可以被重编程一次。PROMs内有一种熔断机制,每个内存格会被高电流熔断一次。

可擦除重编程ROM(EPROM)拥有一个透明石英窗口,允许光到达存储格。
在这里插入图片描述

1.1.7 访问主内存

数据在处理器和DRAM主内存间不断传输,通过称为总线(buses)的共享电路导线。在CPU和主存间的每次数据传输都通过一系列称为总线事务(bus transaction)的步骤完成。一个读事务(read transaction)将数据从主存传输到CPU,一个写事务(write transaction)将数据从CPU传输到主存。

总线是一组携带地址、数据及控制信号的并排的导线。取决于特定的导线设计,数据和地址信号可以共享同样的导线组,也可以使用不同的导线组。同样的,可以有多于两个设备共享相同的总线。控制线携带同步事务及辨别正在执行的是哪种事务的信号。例如,判断这个事务是有关主内存,还是有关一些其他的I/O设备,例如一个磁盘控制器。还可以判断这个事务是写事务还是读事务,这个在总线上的数据是地址还是数据项?

图6.6展示了一个示例计算机系统的说明:
在这里插入图片描述
最主要的组成部分是CPU芯片,一个称为I/O桥(I/O bridge)的芯片集,以及组成主存的DRAM内存模块。这些组成部分又一对总线连接起来:一个连接CPU和I/O桥的系统总线(system bus)以及一个连接I/O桥和主存的内存总线(memory bus)。

I/O桥将系统总线的电信号翻译为内存总线的电信号。I/O桥还会将系统总线和内存总线连接到一个I/O总线,这个I/O总线由I/O设备共享,例如磁盘和图形卡。现在,我们主要关注它连接内存总线的功能。

考虑当CPU执行一个装载指令时发生了什么,指令如下:

movl A,%eax

当将地址A处的内容装载进入寄存器%eax时,在CPU芯片上称为总线接口(bus interface)的电路器件会启动总线上的一个读事务。这个读事务包含三个步骤。首先,CPU将地址A放置到系统总线上。接下来I/O桥将这个信号传递到内存总线上(图6.7(a)所示):
在这里插入图片描述
接下来,主存会感受到内存总线上传来的地址信号,从内存总线上读取这个地址,从DRAM中获取数据字,并将数据写入内存总线。I/O桥将这个内存总线信号翻译为系统总线信号,并通过系统总线传递这个信号(图6.7(b))所示。最终,CPU会察觉到系统总线上的数据,从总线中读取数据,将它复制到寄存器%eax中(图6.7©)所示。

相反地,如果CPU执行一个存储指令,例如:

movl %eax,A

此时会将寄存器%eax中的内容写入地址A中,CPU会首先启动一个写事务。同样的,接下来有三个步骤。首先,CPU将地址放置于系统总线上。内存从内存总线中读取地址并且等待数据到来(图6.8(a))所示:
在这里插入图片描述
接下来,CPU将数据字从%eax寄存器复制到系统总线上(图6.8(b))所示。最终,主存从内存总线中读取数据,并将数据存储在DRAM中(图6.8©)所示。

1.2 磁盘存储

磁盘中存储了大量的数据,相比主存来说它的容量也十分庞大。但是从磁盘中读取数据要比DRAM中读取数据慢10万倍,比从SRAM中读取数据慢100万倍。

1.2.1 磁盘的几何结构

磁盘由盘片(platters)构成。每个盘片都有两边,或两个表面(surfaces),覆盖了磁性记录材料。盘片中心的旋转轴用一个固定的旋转速率旋转盘片,通常的速度为在5400到15000转每分钟(RPM)。一个磁盘通常包含一个或多个这种包装在密封容器内的盘片。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2.2 磁盘存储能力

待补充 606

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值