计算机组成原理new15 磁盘

news2024/12/24 10:09:51

文章目录

        • 磁盘的结构
        • 磁盘的性能指标
        • 磁盘阵列
        • 固态硬盘SSD
        • 关于机械硬盘和固态硬盘的地址

这里计算传输时间和数据传输率是难点

磁盘的结构

注:磁盘的基本读取单位是扇区,但是每次只能读取1bit,这里我们应该理解为磁盘每次的读写操作至少要持续一个扇区的范围,即原子性的,即磁盘的读取是串行的,然后先读取到缓冲区中,最后串行转并行。

磁盘的工作原理:通过磁头向磁盘上读写信息,可以将磁头简单理解为一个铁圈,通过施加电流的方式可以使磁头在磁盘上写入信息,也可以在磁头上读出信息,但是需要注意的是磁头每次只能读写1bit的信息。
在这里插入图片描述

在这里插入图片描述

机械硬盘:机械硬盘在同等容量下,比固态硬盘要便宜的,并且机械硬盘的寿命较长,因为使用的是磁性材料,所以基本不存在使用寿命的问题,但是也因为如此,机械硬盘需要受到环境的元素,可能会收到磁场的影响。

磁盘的组成:
在这里插入图片描述
一个机械磁盘由盘片,磁盘驱动器,磁盘控制器,盘片组成。

盘面:由多个盘片组成,一个盘片具有正反两面,每一面上都对应一个读写磁头。(从图中我们可以看出最上面的盘片和最下面的盘片的上面和下面是没有磁头的,原因是为了节省成本)。

磁道:盘片中一个同心圆称为一个磁道,一个磁道由若干个扇区组成。

扇区(块):磁道中类似扇面的一个小平面,是磁盘读写的最小单位,也就说磁盘每次会原子的写入或者读出至少一个扇区的内容。

柱面:不同盘片相同半径同心圆组成的面,柱面的个数说明了磁道的个数。

磁盘驱动器:可以简单理解为磁头摆臂,读写磁头,带动盘片选择的马达等组成

磁盘控制器:简单理解为磁盘和主机交互的接口,简单认为是一个控制电路就好,控制磁盘的正常运转,一个磁盘有一个控制器,常见的标准有IDE,SCSI,SATA。可以认为标准就是磁盘和主机进行交互的时候信息传输的速率,大小等标准。

磁盘的性能指标

   ( 1 ) (1) (1)磁盘容量

磁盘的容量:磁盘所能存储的字节总数称为磁盘的容量,磁盘的容量有非格式化容量和格式化容量之分。
非格式化容量:非格式化容量是理想情况下,即磁盘内部不花费空间装载文件系统,所有空间用来存储数据。非格式化容量就是磁盘理想状态下可用的最大容量
格式化容量:格式化容量是指磁盘装载了文件系统的前提下所能存储数据的容量。

   ( 2 ) (2) (2)记录密度

道密度:沿磁盘半径方向上单位长度的磁道个数

位密度:一个磁道每一个单位长度能够记录的二进制代码的的位数。

面密度:道密度和位密度的乘积

在这里插入图片描述

注:每个磁道含有的扇区的个数都是相同的,虽然看上去不同的扇区的大小不同,但是实际上每个扇区存储的数据都是相同的,这很好理解,因为磁盘的基本读取单位就是扇区,所以必须每个磁道的扇区大小都相同。但是这也造成了一个问题,即磁盘的容量受到内部磁道的限制,因为内部磁道毕竟是有限的,所以存储的数据也是有限的,所以内部磁道能存储的数据量对磁盘能够存取的数据量具有影响。因为外部磁道的存储量需要跟随内部磁道的存储量,但是外部磁道较大,所以外部磁道的位密度较小,内部磁道位密度较大,即每cm需要存储更多的数据。
在这里插入图片描述
注意,磁盘分为内半径和外半径,其中内半径是不能存储磁道的,所以需要及那个外半径减去内半径,剩下来的部分才能存储磁道。
在这里插入图片描述

   ( 3 ) (3) (3)磁盘的平均存取时间
磁盘的平均存取时间一共由以下四个部分组成:

磁盘控制延迟时间:主机向磁盘发送命令的延迟时间
寻道时间:磁盘臂将磁头定位到对应磁道需要的时间(寻道时间一般比较长)
旋转延迟时间:磁头定位到对应扇区需要的时间
传输时间:磁头读取完扇区内的数据需要的时间
计算磁盘的存取时间的时候,由于寻找磁道和扇区的时间是不固定的,所以一般取平均值。
一般来说:存取时间大部分由寻道时间和旋转延迟时间组成。

注意:
寻道时间一般是磁头从最外面的磁道运动的最里面磁道需要时间的一半。
旋转延迟时间一般是取转1圈需要的时间的一半。
传输时间其实就是磁盘的传输速率。需要注意的是,磁盘传输速率
在这里插入图片描述
   ( 4 ) (4) (4)数据传输率
数据传输率D:磁盘在单位时间内向主机传送的数据的字节数,就是数据传输率,这里的数据传输率我们应该更深理解,应该理解为每s磁头可以划过多少次磁道,滑过多少个扇区。单位时间内划过的磁道容量/扇区个数 X 扇区容量就是数据传输率。

如果给了我们转速和磁道的扇区个数:我们就能算出转一圈需要多少时间,然后通过磁道内的扇区数,我们就能够得出转一个扇区需要多少时间。所以说数据传输时间本质是是转过这么多扇区,磁道需要的时间!

每秒的数据传输率=磁道容量(扇区个数 X 扇区容量) X 每秒旋转的次数

对于数据传输率应该有更深刻的理解,数据传输率应该理解为,磁盘在单位时间内不断传输数据,单位时间内能够传输多少。这里我们应该忽略每次的寻道时间和旋转延迟时间等也就是说这里的单位时间是纯粹用来传输数据的时间,即一直传输,假设不需要寻道这些的,单位时间可以传输的量就是数据传输率。

磁盘转一圈需要的时间=时间/旋转的次数
磁盘每秒可以多少转=转数/60s。

主机是如何告诉磁盘自己想要读的扇区在什么位置的?

因为磁盘读取的基本单位是扇区,所以磁盘中的地址是相对扇区的位置来进行编址的。
电脑中可能有多个磁盘,所以需要说明是在哪一个磁盘,而一个磁盘具有一个驱动器,所以也可以指明是哪个驱动器。
在这里插入图片描述
需要注意的是:
假设主机告诉磁盘要写数据,然后主机通过总线将数据发送给磁盘,但是磁盘的写入是串行的,即每次只能写1bit。所以我们可以理解为在磁盘内部有一个写缓冲区用来暂时保存主机发送来的数据,然后磁盘的读写电路每次拿1bit的数据给磁盘进行写入。
将数据读取出也是相同的,因为磁盘最终传输的时候是通过总线将数据一起送给主机,但是因为磁盘每次只能读取1bit,所以我们可以理解为磁盘内部有一个读缓冲器,磁盘读取完的数据先放在读缓冲区,最后在读写电路的控制下并行的通过总线传输给主机。

注:磁盘的读写过程类似是互斥的,读的时候就不能写,写的时候就不能读。
在这里插入图片描述

机械磁盘在收到外部的控制指令后会将这些控制指令放到自己的缓冲区内,然后到缓冲区内逐一取指令执行指令,控制指令一般是寻址,读盘,写盘,又叫做控制字。
在这里插入图片描述

磁盘阵列

在这里插入图片描述

注意:一定要记住RAID是多个硬盘在逻辑上组成的,并且数据在多个硬盘上分叉存储,因为是不同的硬盘,实际上可以做到并行工作,提高了传输率和吞吐量。(这里需要注意理解,正因为是其交叉存储才提高了传输率和吞吐量),传输率和吞吐量都是时间而言的,通过RAID的多块盘交叉存储才能完成,如果是数据都存储在但快盘,就不可能有这样的效率了。

在这里插入图片描述
RAID是多块磁盘构成的磁盘整列:
通过磁盘间的协同工作,完成主机对数据的读写和存储。
冗余:即是否使用空间来存储备份信息
检验:对于传输的数据是否具有检验存储是否正确的能力
   ( 1 ) (1) (1)RAID0
特征:空间都用来存储数据,不存储备份信息和检验信息。无冗余和无检验能力,数据丢失即丢失,存储错误也无法修正,没有容错能力
   ( 2 ) (2) (2) RAID1 镜像盘
假设2块磁盘构成了一个RAID1,那么其中一个盘存储的数据和另一个盘完全相同。即n个盘,n/2盘都是拷贝。具有容错能力,可对数据进行修正或者找回丢失的数据

从RAID2开始,就开始采用海明校验码或者奇偶校验码来对数据进行保障。具有数据的修正能力和丢失找回能力,容错能力高。
   ( 3 ) (3) (3)
   ( 4 ) (4) (4)
   ( 5 ) (5) (5)

注:RAID就类似低位交叉编址,相邻的数据放在不同的磁盘里。因为磁盘是一个独立的个体,所以和低位交叉编制不同,将数据放在不同的磁盘,可以做到磁盘的数据的并行处理,即主机同一时刻处理多个磁盘指挥进行数据的处理,速度得到了很大的提升。

固态硬盘SSD

在这里插入图片描述

原理:使用的Flash闪存芯片,和普通的U盘基本没有什么差别,使用EEPROM电擦除技术。

主机是如何做到访问固态硬盘的?

首先我们需要知道,主机访问硬盘一般都是操作系统指挥的,操作系统一般都是给出逻辑地址,然固态硬盘内的闪存翻译层(类似页表)的玩意会将逻辑地址转为物理地址,固态硬盘能够做到随机访问的一个原因也是因为闪存翻译层的存在,其可以直接进行地址映射,速度非常快。并且还需要注意的是固态硬盘的每次访问的基本单位是页!
在这里插入图片描述
固态硬盘在写入数据的时候,是如何进行擦除的?

固态硬盘擦除的基本单位是块为单位的,其每次会擦除一个块,一般是重复写入某个已有数据的块的时候会进行擦除。这里我们进行个解释:

我们知道,固态硬盘是以块为写入单位的,但是我们当前要写入的块可能原本就已经有数据了,但是固态硬盘无法对数据直接进行覆盖,必须先对数据进行擦除。也就说一个页,只有第一次写入不需要擦除,因为里面没有数据,从第二次写入开始就需要进行擦除了。但是这也导致了一个问题,因为固态硬盘擦除的基本单位是一个块,而一个块内具有多个页,擦除的时候就会导致其他页数据丢失,所以固态硬盘对此进行了处理,其类似写时拷贝,我们看下是如何处理的:
也就是说逻辑地址和物理地址的映射关系可能是会因为一些操作而改变的,例如重复写入。
在这里插入图片描述
事实上,除了写入的时候,固态硬盘具有自己的擦除策略,其还具有两种策略:
本质上是因为每个块都是有擦除寿命的,所以固态硬盘需要检测块的擦除寿命,使得大部分块的擦除寿命是平均的。
   ( 1 ) (1) (1)动态磨损均衡
固态硬盘在写入的时候,会优先选择写入擦除次数较少块,最后修正下逻辑地址和物理地址的映射。
   ( 2 ) (2) (2) 静态磨损均衡
固态硬盘会检测固态硬盘内数据的用处,这个有点抽象,我们举个例子:
固态硬盘内具有检测手段,会定义检测块的寿命和块内数据的用处,例如下图中两个块存储的是电影数据和游戏数据,固态硬盘在检测到以后,会发现存储游戏的块寿命比较短,而游戏数据经常需要写入,所以其会让两个块的内容进行一个交换,即让寿命较短的块存储尽可能是读的数据,寿命较长的块存储尽可能是写的数据。最后修正下逻辑地址和物理地址的映射即可。
在这里插入图片描述
在这里插入图片描述

关于机械硬盘和固态硬盘的地址

无论是机械硬盘还是固态硬盘,其操作者都是操作系统,操作系统在硬件层之上,所以操作系统不会直接参与物理地址,操作系统会管理逻辑地址,当要访问逻辑地址时,操作系统只需要让底下的硬件进行映射转物理地址即可。例如指挥闪存翻译层翻译逻辑地址。但是机械硬盘是否需要地址转换我就不是很懂了。并且我们需要知道物理地址一般是刻录在硬件上的,逻辑地址一般是硬件层之上的。由硬件完成逻辑到物理的转换。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1119073.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初始 c++(1)

目录: 目录 1: 命名空间的详解 2:c的输入与输出关键字及理解 3:详细讲解第一个c程序(每段代码的意思) 4:缺省参数的理解 5:函数重载 引言:从今天开始我们就开始学习c了,让我们一起开始新的知识吧! 1:命名空间 所谓的命名空间…

深度学习学习笔记-模型的修改和CRUD

目录 1.打印模型,理解模型结构2.模型保存与加载3.模型的模块CRUD和模块的层的CRUD 1.打印模型,理解模型结构 import torchclass MyModel(torch.nn.Module):def __init__(self):super().__init__()self.layer1 torch.nn.Sequential(torch.nn.Linear(3, 4),torch.nn.Linear(4, …

云计算——网络虚拟化简介

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​ 目录 前期回顾 前言 一.网络虚拟化 二.网络虚拟化介绍 三.为什么要网络虚拟化 四,网络…

STM32+2.9inch微雪墨水屏(电子纸)实现显示

本篇文章从硬件原理以及嵌入式编程等角度完整的介绍了墨水屏驱动过程,本例涉及的墨水屏为2.9inch e-Paper V2,它采用的是“微胶囊电泳显示”技术进行图像显示,其基本原理是悬浮在液体中的带电纳米粒子受到电场作用而产生迁移,从而改变显示屏各…

【C++初阶】小白入门C++

目录 前言:1、C关键字2、命名空间2.1命名空间是什么2.2为什么要有命名空间2.3命名空间怎么使用2.3.1命名空间的写法2.3.2命名空间是可以嵌套的2.3.3使用命名空间的三种方式 3、C输入和输出3.1初识cout和cin3.2C的输入输出可以自动识别变量类型 4、缺省参数4.1缺省参…

Linux:用户和权限

Linux:用户和权限 1. 认知root用户1.1 root用户(超级管理员)1.2 su和exit命令1.3 sudo命令1.3.1 为普通用户配置sudo认证 2. 用户、用户组管理2.1 用户组管理2.2 用户管理2.3 getent命令 3. 查看权限控制3.1 认知权限信息3.1.1 案例 4. 修改权…

react 实战- 玩转 react 全家桶(进阶)学习

一个命令是怎么运行起来的? Shell运行一个命令,实际上是运行一个脚本 环境变量 装了node以后,node的路径,就被注册到了环境变量里. 一个js的东西,可以注册? bin Webpack配置 构建 import A from A , const Arequire(A) 为什么可以这么写?为哈都行?本质上,是构建工…

人人自媒体的时候,Ai绘画还值得踏入吗?

前言 先说结论,如果你不打算涉足自媒体,平时也从不上网发什么内容去展示自己的话,其实AI绘画对你来说意义不大。但如果你对自媒体感兴趣,会涉及发作品,发内容,甚至去设计图片,那么AI绘画值得你…

【【萌新的SOC学习之自定义IP核的学习与设计】】

萌新的SOC学习之自定义IP核的学习与设计 本章为了更加深入的了解FPGA的自定义IP和IP封装测试等问题 参考了正点原子 第六讲自定义IP核呼吸灯实验 和 第十九章 IP封装与接口定义实验 为了更好的理解自定义IP核 我们先介绍一个带AXI主从接口的IP核 我们可以展开AXI从接口 下…

Vue--》简易资金管理系统后台项目实战(后端)

今天开始使用 node vue3 ts搭建一个简易资金管理系统的前后端分离项目,因为前后端分离所以会分两个专栏分别讲解前端与后端的实现,后端项目文章讲解可参考:前端链接,我会在前后端的两类专栏的最后一篇文章中会将项目代码开源到我…

转行做程序员,多晚都不晚

大家好啊,我是董董灿。 最近有不少小伙伴加我微信咨询一些问题,有同学想了解AI行业的现状,想着转行的,也有在校生想了解毕业后工作方向的,当然也有想学习编程知识的。 诚惶诚恐,没想到之前写的文章&#…

【CHI】CHI协议,transaction事务汇总

前言 CHI协议最难的是什么,就是那一堆各种各样的事务,你不知道什么场景应该使用什么合适的事务,收到X事务又该回复什么事务。相当于CHI给你制定了很多种(尽可能覆盖完全)场景及事务,你需要去了解&#xff0…

英语——分享篇——每日200词——2401-2600

2401——moisture——[mɔɪstʃə(r)]——n.潮气,湿气,水分——moisture——moist潮湿的(熟词)ur你的(编码your)e鹅(编码)——潮湿的地方你的鹅一身潮气——Moisture in the atmosphere condensed into dew during the night.——大气中的水分在夜间凝结…

二阶系统时域响应

二阶系统微分方程 二阶系统传递函数 二阶系统单位阶跃响应 过阻尼系统 临界阻尼系统 欠阻尼系统 无阻尼系统 二阶系统阶跃响应仿真 在Matlab中进行仿真,设置不同阻尼比2、1、0.5和0,可以得到结论: 阻尼比越小,系统响应速度越快&…

YOLOV8改进:RefConv(即插即用!重参数化重聚焦卷积替代常规卷积,无额外推理成本下涨点明显!)

1.该文章属于YOLOV5/YOLOV7/YOLOV8改进专栏,包含大量的改进方式,主要以2023年的最新文章和2022年的文章提出改进方式。 2.提供更加详细的改进方法,如将注意力机制添加到网络的不同位置,便于做实验,也可以当做论文的创新点。 3.涨点效果:RefConv,实现有效涨点! 论文地址…

【项目设计】网络对战五子棋(上)

想回家过年… 文章目录 一、项目前置知识1. websocketpp库1.1 http1.0/1.1和websocket协议1.2 websocketpp库接口的前置认识1.3 搭建一个http/websocket服务器 2. jsoncpp库3. mysqlclient库 二、 项目设计1. 项目模块划分2. 实用工具类模块2.1 日志宏封装2.2 mysql_util2.3 j…

蓝桥杯每日一题2023.10.21

后缀表达式 - 蓝桥云课 (lanqiao.cn) 题目描述 题目分析 30分解法&#xff1a;要求出最大的结果就需要加的数越大&#xff0c;减的数越小&#xff0c;以此为思路简单列举即可 #include<bits/stdc.h> using namespace std; typedef long long ll; const int N 2e5 10…

物联网知识复习

物联网的内涵和体系结构 物联网的基本内涵 物联网的基本内涵在于物联&#xff0c;物物相连或者物和人相连的互联网。 也就是说&#xff0c;它是要由物主动发起的&#xff0c;物物互联的互联网。 它的第一层意思是说物和物相连&#xff1b;第二层意思是说物和人相连。 物联网的…

Gradient conjugate priors and multi-layer neural networks

动机 先验参数 m , α , β , v m,\alpha,\beta,v m,α,β,v和随机变量 τ \tau τ KL散度的形式是&#xff1a; Dynamics of m , α , β , v m,\alpha,\beta,v m,α,β,v Dynamics of m , β , v m,\beta,v m,β,v for a fixed α \alpha α 绿色轨迹连接初始点和目标点…

【linux】Linux 查看内存使用情况的几种方法汇总

文章目录 GUI 查看命令获取命令 free命令 vmstat命令 top命令 htop Linux 查看内存使用情况的几种方法包括使用 free 命令、top 命令、htop 命令、vmstat 命令和/proc/meminfo 文件。这些方法可以帮助用户了解系统内存的使用情况&#xff0c;包括总内存、已用内存、空闲内存、缓…