其他分享
首页 > 其他分享> > 深入理解计算机系统(六)

深入理解计算机系统(六)

作者:互联网

  1. 访问主存

数据流通过称为 总线(bus) 的共享电子电路在处理器和DRAM主存之间来来回回。每次CPU和主存之间的数据传送都是通过一系列步骤来完成的,这些步骤称为 总线事务(bus transaction)读事务(read transaction) 从主存传送数据到CPU。写事务(read transaction) 从CPU传送数据到主存。

计算机系统的主要部件有CPU芯片、IO桥接器(芯片组,包括内存控制器),以及组成主存的DRAM内存模块。

在这里插入图片描述

当CPU执行如下读事务会发生什么?
m o v q   A , % r a x movq\ A,\%rax movq A,%rax
读事务是由以下三个步骤组成的。
在这里插入图片描述

当CPU执行如下写事务会发生什么?
m o v q   % r a x , A movq\ \%rax,A movq %rax,A
写事务是由以下三个步骤组成的。

在这里插入图片描述

6.1.2 磁盘存储

  1. 磁盘构造

在这里插入图片描述

  1. 磁盘容量

一个磁盘上可以记录地最大位数称为它的最大容量,简称容量

在这里插入图片描述

读/写磁盘内容时:

在这里插入图片描述

磁盘以扇区大小的块来读写数据 。对扇区的访问时间:

  1. 逻辑磁盘块

线代磁盘将它们复杂的构造呈现为一个简单的视图,一个B个扇区代销的逻辑块的序列,编号为0,1,…,B-1。磁盘封装中有一个硬件/固件设备,称为磁盘控制器,维护着逻辑块号和物理磁盘扇区之间的映射关系。

当操作系统想要执行一个I/O操作时,发送一个命令到磁盘控制器,控制器上的固件执行一个快速表查找,将一个逻辑块号翻译成一个 (盘面,磁道,扇区)的三元组,这个三元组唯一标识了对应的物理扇区。

  1. 连接I/O设备

虽然I/O总线比系统总线和内存总线慢,但是它可以容纳种类繁多的第三方I/O设备。

在这里插入图片描述

  1. 访问磁盘

CPU使用一种称为内存映射 的技术来向I/O设备发射命令。在使用内存映射I/O的系统中,地址空间中有一块地址是为与I/O设备通信保留的。每个这样的地址称为一个I/O端口。当一个设备连接到总线时,它与一个或多个端口相关联(它被映射到一个或多个端口)。

在这里插入图片描述

其中,设备可以自己执行读或者写总线事务而不需要CPU干涉的过程,称为直接内存访问(Direct Memory Access,DMA)。这种数据传送称为DMA传送。

6.1.3 固态硬盘

固态硬盘(Solid State Disk,SSD) 是一种基于闪存 的存储技术。SSD封装插到I/O总线上标准硬盘插槽(通常是USB或SATA)中。一个SSD由一个或多个闪存芯片闪存翻译层组成,闪存芯片替代传统旋转磁盘中的机械驱动器,而闪存翻译层是一个硬件/固件设备,扮演与磁盘控制器相同的角色,将对逻辑块的请求翻译成对底层物理设备的访问。

如下图,一个闪存由B个块的序列组成,每个块由p页组成。通常,页的大小是512字节 ~ 4KB,块是由32 ~ 128页组成,块的大小为16KB ~ 512KB。数据是以页为单位读写的。 只有在一页所属的块整个被擦除之后,才能写这一页(通常是指该块中的所有位都被设置为1)。

在这里插入图片描述

读SSD比写要快。随机读和写的性能差是由底层闪存基本属性决定的。

在这里插入图片描述

随机写很慢有两个原因:

优点: 固态硬盘由半导体存储器构成,没有移动的部件,因而随机访问时间比旋转磁盘要快,能耗更低,同时也更结实。

缺点:因为反复写之后,闪存块会磨损,所以SSD也容易磨损。

标签:计算机系统,闪存,总线,扇区,磁道,理解,深入,磁盘,CPU
来源: https://blog.csdn.net/Kiefer_lin/article/details/120634491