升入理解计算机系统学习笔记

磁盘存储

磁盘是广为应用的保存大量数据的存储设备,存储数据的数量级可以达到几百到几千千兆字节,而基于RAM的存储器只能有几百或几千兆字节。不过,从磁盘上读信息的时间为毫秒级,比从DRAM读慢了10万倍,比从SRAM读慢了100万倍。

  1. 磁盘构造

磁盘是由盘片(platter)构成的。每个盘片有两面或者称为表面(surface),表面覆盖着磁性记录材料。盘片中央有一个可以旋转的主轴(spindle),它使得盘片以固定的旋转速率 (rotational rate)旋转,通常是 5400~15000 转每分钟(Revolution Per Minute,RPM)。磁盘通常包含一个或多个这样的盘片,并封装在一个密封的容器内。

下图中展示了一个典型的磁盘表面的结构。

每个表面是由一组称为磁道(track)的同心圆组成的。每个磁道被划分为一组扇区(sector)。每个扇区包含相等数量的数据位(通常是512 字节),这些数据编码在扇区上的磁性材料中。扇区之间由一些间隙(gap)分隔开, 这些间隙中不存储数据位。间隙存储用来标识扇区的格式化位。

盘是由一个或多个叠放在一起的盘片组成的,它们被封装在一个密封的包装里,如下图所示。整个装置通常被称为磁盘驱动器(d1sk drive),通常简称为磁盘(disk)。

  1. 磁盘容量

一个磁盘上可以记录的最大位数称为它的最大容量,或者简称为容量。磁盘容量是由以下技术因素决定的:

记录密度(recording density)(位/英寸):磁道一英寸的段中可以放入的位数。

磁道密度(track density)(道/英寸):从盘片中心出发半径上一英寸的段内可以有的磁道数。

面密度(areal density)(位/平方英寸):记录密度与磁道密度的乘积。

下面的公式给出了一个磁盘的容量:

  1. 磁盘操作

磁盘用读/写头(read/write head)来读写存储在磁性表面的位,而读写头连接到一个传动臂(actuator arm)---端,如图 所示。

传动臂沿着半径轴前后移动称之为寻道(seek)。

磁盘以扇区大小的块来读写数据。对扇区的访问时间(access time)有三个主要的部分:

寻道时间(seek time):为了读取某个目标扇区的内容,传动臂首先将读/写头定位到包含目标扇区的磁道上。移动传动臂所需的时间称为寻道时间。

旋转时间(rotational latency):一旦读/写头定位到了期望的磁道,驱动器等待目标扇区的第一个位旋 转到读/写头下。这个步骤的性能依赖于当读/写头到达目标扇区时盘面的位置以及 磁盘的旋转速度。

最大旋转延迟(以秒为单位)是:

传送时间(transfer time):当目标扇区的第一个位位于读/写头下时,驱动器就可以开始读或者写该扇区的内容了。一个扇区的传送时间依赖于旋转速度和每条磁道的扇区数目。

一个扇区以秒为单位的平均传送时间如下:

  1. 逻辑磁盘块

由于现代磁盘构造复杂,有多个盘面,这些盘面上有不同的记录区。为了对操作系统隐藏这样的复杂性,现代磁盘将它们的构造呈现为一个简单的视图,一个B个扇区大小的逻辑块的序列,编号为0,1,...,B---1。磁盘封装中有一个小的硬件/固件设备,称为磁盘控制器,维护着逻辑块号和实际(物理)磁盘扇区之间的映射关系。

  1. 连接 I/O设备

例如图形卡、监视器、鼠标、键盘和磁盘这样的输人/输出(I/O)设备,都是通过 I/O 总线,例如Intel 的外围设备互连(Peripheral Component Interconnect, PCI)总线连接到 CPU 和主存的。系统总线和内存总线是与CPU相关的,与它们不同,诸如PCI这样的I/0总线设计成与底层CPU无关。例如,PC和Mac都可以使用PCI总线。

虽然I/O总线比系统总线和内存总线慢,但是它可以容纳种类繁多的第三方I/O设 备。例如,在图中,有三种不同类型的设备连接到总线。

通用串行总线(Universal Serial Bus, USB)控制器是一个连接到 USB总线的设备的中转机构,USB总线是一个广泛使用的标准,连接各种外围I/O设备,包括键盘、鼠标、调制解调器、数码相机、游戏操纵杆、打印机、外部磁盘驱动器和固态硬盘。

图形卡(或适配器)包含硬件和软件逻辑,它们负责代表CPU在显示器上画像素。

主机总线适配器将一个或多个磁盘连接到I/O总线,使用的是一个特别的主机总线接口定义的通信协议。

  1. 访问磁盘

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

相关推荐
gjf05_0525 分钟前
人该怎样活着呢?版本75.8
学习
li星野2 小时前
【学习记录】PCB与PCBA核心知识全解析:从设计到制造的关键细节
学习·制造
卿卿的产品经理日记2 小时前
【AI产品经理实战】Day 35|从“沉迷工具“到回归 AI 底层:Skill 收官、系统复盘与下一个 13 天
人工智能·学习·产品经理
一条泥憨鱼3 小时前
【从0开始学习计算机网络】| ARP 协议:地址解析,ARP 欺骗,链路层寻址
网络·后端·学习·计算机网络
HY小宝F4 小时前
树莓派智能摄像头系统 30 天重学计划之 Day 04 · HTTP / API:控制链入口 —— 学习总结
网络协议·学习·http
Go Work4 小时前
2026 Cadence SPB 24.1中文版安装图文详解(附安装包)
经验分享·笔记
ACP广源盛139246256734 小时前
HDMI2.0 转 DP1.4 桥接方案评估:国产 GSV2125C@ACP 芯片选型笔记
笔记·硬件架构·hdmi·type-c·国产芯片
龙仔7254 小时前
RustDesk 自建服务器 Key 强校验配置笔记
运维·服务器·笔记
悟乙己5 小时前
AFAC2026 赛题四金融长文本 Agent竞赛学习笔记:赛题解析(一)
笔记·学习·金融
霍霍的袁5 小时前
【C++】哈希表实现指南:从原理到开放定址法、链地址法的实现
c++·学习·哈希算法·散列表·visual studio