ComputerSystems
ComputerSystems
目录
硬盘研究
硬盘种类
摘录:https://www.cnblogs.com/641055499-mozai/p/11779936.html
机械硬盘(HDD 硬盘)
机械硬盘是现在最常见最廉价的一种硬盘
它主要有盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成。
① 盘片:硬盘中一般会有多个盘片组成,不同型号的磁盘盘片数量可能不一样。每个盘片包含两个面,每个盘面都会对应一个磁头。一般情况下,盘片的编号自下向上从0开始。数据都会保存在盘片上,而数据的存储依靠盘片上附着的磁性物质。由于磁分两级,正好可以表示二进制的0和1。
盘片分为磁道和扇区,如下图,绿色部分为磁道,蓝色部分为扇区。
磁道是盘面中一圈圈绿色同心圆称为磁道
扇区是从圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区,扇区是磁盘的最小组成单元,通常是512字节。(由于不断提高磁盘的大小,部分厂商设定每个扇区的大小是4096字节)
② 磁头:存储数据时,它可以对硬盘盘片表面上附着的磁性物质的磁极进行改变,读取数据时,则是通过磁头去感应磁阻的变化。这里磁头扮演者极为重要的角色,它也是硬盘里最昂贵的部件。
⑤ 盘片转轴:使盘片进行高速水平转动,从而使得磁头可以读取盘片上的不同扇区的数据。转速一般为5400rpm/m、7200rpm/m、SCSI、SAS型(服务器)的硬盘一般为10000rpm/m、15000rpm/m。转速越快,读/写数据的速度越快。缺点:转速越高,噪音越大、功耗越高、使用寿命越低。
⑥ 磁头控制器:使磁头进行水平圆弧型运动,与磁盘转轴相结合,可以使磁头读取盘片上的任意扇区内的数据。
⑦ 缓存:在机械硬盘中,缓存就是为了加速读/写速度的。如内存中的数据写入到硬盘中,由于内存速度比硬盘快的多,这就导致写入速度太慢,而缓存则大大缓解了这个问题,先将数据写入缓存区,之后硬盘本身再将数据保存到盘片中,而不占用其他资源。而对于读取数据,如果一个数据刚刚被读取过,将临近它位置的数据保留在缓存区中,读取时,若命中,则直接从缓存区读出;若没有命中,则会再次从盘片上读取。
固态硬盘(SSD硬盘)
固态硬盘的接口规范和定义、功能及使用方法上与普通硬盘几近相同,外形和尺寸也基本与普通的 2.5英寸硬盘一致。主要由三部分组成:主控芯片、NAND闪存芯片、固件算法。
① 主控芯片:主控芯片一方面负责合理调配数据在各个闪存芯片上的负荷,另一方面承担了整个数据中转,连接闪存芯片和外部接口。
除此之外,主控还负责ECC纠错、耗损平衡、坏块映射、读写缓存、垃圾回收以及加密等一系列的功能。
② NAND闪存芯片:存储数据的地方,根据不同颗粒的分类
分为::SLC(每个存储单元存储1bit数据)、MLC(每个存储单元存储2bit数据)、TLC(每个存储单元存储3bit数据)
SLC成本高,数据与数据之间影响较小,读写速度极快,数据出错的可能性极小,使用寿命较长
而TLC成本低,但是据与数据之间影响较大,读写速度慢且极易出错,使用寿命较短。
③ 固件算法:主控使用固件算法中的控制程序,去执行自动信号处理,耗损平衡,错误校正码(ECC),坏块管理、垃圾回收算法、与主机设备通信,以及执行数据加密等任务。
由于固件冗余存储至NAND闪存中,因此当SSD制造商发布一个更新时,需要手动更新固件来改进和扩大SSD的功能。
M.2固态硬盘
M.2接口最主要有以下几个优点:支持更高的速率,潜力大;相对PCI-Emini card,节约20%的PCB空间,节省15%的连接器高度,更小巧玲珑;支持PCI-E3.0,USB3.0和SATA3.0三种当前主流标准,接口更“全能”。
机械硬盘深度解析
摘录:https://blog.csdn.net/u013125075/java/article/details/86576640
整体结构
硬盘是电脑主要的存储媒介之一。根据硬盘的读写方式和存储方式不同,当前主流的硬盘可以分为固态硬盘(SSD硬盘)、机械硬盘(HDD 硬盘)两种。由于固态硬盘存在价格昂贵、容量较小和一旦损坏难以修复等特点,当前市场主要流行的依然是机械硬盘。当然,在高端计算机中通常会结合两种硬盘来获取更好的性能,这里暂且不提。故而本博客主要对机械硬盘的结构和原理进行讲解。
硬盘是由很多的盘片组成,而其存储信息的方式就是通过盘片表面的磁性物质来存储数据。把盘片放在显微镜下放大,可以看到盘片表面是凹凸不平的,凸起的地方被磁化,代表数字 1,凹的地方没有被磁化,代表数字 0,因此硬盘可以通过二进制的形式来存储表示文字、图片等的信息。
机械硬盘主要由磁盘、磁头、盘片主轴、控制电机、磁头控制器、数据转换器、接口、缓存等几个部分组成。
所有的盘片都固定在一个旋转轴上,这个轴即盘片主轴。所有的盘片之间是绝对平行的,且在每个盘片的盘面上都有一个磁头来对磁盘上的数据进行读写操作。所有的磁头连在一个磁头控制器上,由磁头控制器负责各个磁头的运动,磁头可沿盘片的半径方向移动,实际上磁头是围绕固定点做圆周移动(如果有兴趣可以通过上面的磁盘结构图自己看,这里不加以解释),而且传统的硬盘中由于所有磁头都固定在同一个控制器上,所以每个磁头同一时刻是同轴的,即从正上方往下看,所有磁头任何时候都是重叠的,在这种情况下每一时刻只有一个磁头能够进行数据的读取。当硬盘启动时盘片在主轴的带动下以每分钟数千转到上万转的速度在高速运转,而磁头在控制器的控制下固定在某个位置上对经过其下方的磁盘区域进行信息的读写。
由前面的描述可知,硬盘的数据主要存储在许多盘片上的磁性物质上,而这些这些信息是通过磁头在某一点上对其下方的转动的磁片进行写入的,故而这些信息以一条条围绕主轴的同心圆细线的形式存在。为了方便描述与管理,我们把这些存储信息的同心圆细线称为磁道,将盘片中用于记录信息的面称为盘面(当前主流的硬盘一般每个盘片的两个面都会用于记录信息,所以每个盘片对应两个盘面。当然,也有部分只有一面用于记录信息的,在此暂不赘述),而多个盘片上半径相同的磁道称为柱面,为了更好的对磁盘资源进行过滤,我们有将每个磁道划分为均匀的几段称为扇区。
下面对几个名词的定义是作用进行解析:
盘面
硬盘的盘片一般用铝合金材料做基片,硬盘的每一个盘片的两个面都可以用于记录信息,一般每个盘面都会得到利用,都可以存储数据,成为盘面。当然,也有的硬盘为了简化磁头结构或其他原因只利用其中一个面来记录信息,这样每个盘片就只对应一个盘面。每一个盘面都有一个盘面号,按顺序从上至下从 0 开始编号。在硬盘系统中,盘面号又叫磁头号,因为每一个盘面都有一个对应的读写磁头。
磁道
磁盘在格式化时被划分成许多用于记录信息的同心圆,这些同心圆轨迹叫做磁道。磁道从外向内从 0 开始顺序编号,硬盘的每一个盘面有 300-1024 个磁道,新式大容量硬盘每面的磁道数更多,信息以脉冲串的形式记录在这些轨迹中,这些同心圆不是连续记录数据,而是被划分成一段段的圆弧。这些圆弧的角速度一样,由于径向长度不一样,所以线速度也不一样,外圈的线速度较内圈的线速度大,**所以同样的转速度下,外圈在同样时间段里,划过的圆弧长度要比内圈划过的圆弧长度大。**磁道是看不见的,只是盘面上以特殊形式磁化了的一些磁化区,在磁盘格式化时就已规划完毕。
柱面
所有盘面上半径相同的磁道构成的一个圆柱面,即在磁盘上所有与主轴距离相同的磁道成为柱面。之所以给出柱面这一概念主要是为了提高磁盘的读写速率。在机械硬盘中数据的读取是依靠磁头来进行的,每个盘面对应一个磁头,而这些磁头通常被固定在同一转轴上,同时这些磁头从磁盘的上方看是重合的,也就是说所有磁头同一时间处于同一半径的磁道上。而由哪个磁头进行数据的读取则由对应的控制系统来进行电子切换,这个过程相对于将磁头移动的相邻的磁道是一个极快的过程,为了提高数据的读/写速率,数据的存储一般是按照柱面的顺序来的,具体的做法就是数据先存储在某一柱面的第一个磁道上,之后建数据存储到同一柱面的第二个磁道上,一直到同一柱面的所有磁道都使用完后才转到下一柱面进行读/写操作。
一个柱面一个柱面地写,以柱面来组织数据
扇区
【扇区内容】
扇区是磁盘读写的基本单位,每个扇区包括 512(现4k,也叫簇)个字节的数据和一些其他信息,这些信息包含存储数据地址的标识符(盘面号,柱面号,扇区号等)和用于保护数据的纠错码(ECC)。
【同密度盘片】
在传统磁盘上,一般盘面上每一个磁道所对应的扇区是相同的,由于盘面上的磁道大小是不均匀的,其中越靠近主轴的磁道长度越小,越远离主轴的磁道长度越大,所以这样的分配方式会造成“大面积小数据”的浪费情况,为了避免这种情况很多硬盘采用同密度盘片,所以半径不同的磁道划分成出来的扇区数量也是不同的,磁道越长所包含的扇区也也就也多。
【扇区号】
关于扇区号,目前主要有两种定义规则
其中一种是每个磁道拥有自己的扇区号,在每个磁道中扇区号都是从0开始增加的,之后通过CHS(也称3D)寻址方式来对对应扇区进行访问
而另一种则是对硬盘上所有的扇区进行统一编号,其编号规则为:LBA(逻辑扇区号)=磁头数 × 每磁道扇区数 × 当前所在柱面号 + 每磁道扇区数 × 当前所在磁头号 + 当前所在扇区号 – 1
这两种方式中,前者适合对每个磁道所拥有的磁道相同的传统磁盘,而后者时候采用同密度盘片的磁盘。
性能
依赖于两部分的机械运动
- 盘面的转动,5400转、7200转,若
- 磁臂的摆动
数据恢复原理
摘录:链接:https://www.zhihu.com/question/20702212/answer/20896739
3-1、简单解释
你所删除的数据并没有被删除,只是标记为此处空闲,可以写入数据。举个简单例子
存储在你的硬盘里面的数据大概是这个样子的:
然后你删除了第3区域的数据,那么它就变成了这个样子的:
数据还在那里,只不过标记为这一块可以重新写入数据了。新写入的数据就会覆盖现有的tomato。
3-2、细化解释 && 文件系统对数据恢复的影响
【系统读取文件】
从**【硬盘的目录区DIR】**读取了文件的相关信息,比如说吧文件名啦,文件的大小啦,文件的修改日期,文件的位置(数据区DATA的簇号)。之后就可以知道数据的位置,再读取就行了。
【系统写入文件】
而硬盘在记录文件时,先要将文件的信息:文件名,文件的大小,文件的修改日期(不包括文件的位置)记录到**【DIR区】,之后在【DATA区】**选一块空地,放进去,顺便往DIR区记录位置。
【系统删除文件】
而文件的删除却很简单,只是把**【DIR区】**文件的第一个字符改为E5(常规删除,如果你用软件覆盖了,就不是如此了,数据也不能恢复了)这也就是说,文件的数据并没有被覆盖,也就为为恢复创造了可能。
【文件系统的影响】
各个文件系统都有不同的原理,这里只是将的普遍原理,如要深究维基百科上有较详细的解释。
- FAT文件系统原理:FAT - 维基百科,自由的百科全书
- NTFS文件系统原理:NTFS - 维基百科,自由的百科全书
- EXT3文件系统原理:ext3 - 维基百科,自由的百科全书
误删除,误格式化,分区表丢失,病毒,误分区……..造成的文件丢失,相比较而言:
FAT32文件系统下文件删除后目录结构就不再完整了,碰到大的文件,因为文件在硬盘上不连续,恢复效果较差,而小文件则能较完美的恢。
而NTFS文件系统在删除文件后,目录结构还是较完整的,即使数据不连续,仍能完美的恢复文件。
所以说为了安全,减少数据误删除的损失,用NTFS文件系统好些。(NTFS用WinHEX直接可以看到$MFT文件表等)
分区,盘符,与卷(未写完)
笔记者原创内容
分区原则
分区原则为:小盘符在盘面外侧、大盘符在盘面内测
而由于磁盘设计上采用了按柱面读取的顺序,使得磁盘上每一个盘面都遵循以上原则
分区对读写的影响
现在的机械硬盘为了避免原理主轴的磁道“面积大,数据小”的浪费情况,采用【同密度盘片】的设计。
远离主轴的磁道更长,面积扇区更多。接近主轴的磁道短,扇区较少。
所以角速度不变的情况下,磁头在外侧的线速度更大,对磁道外侧的小盘符的读取速度更快。
这也是为什么系统盘设计默认是C盘,而其他分盘默认比系统盘的盘符号更大。这是为了让系统盘的文件读取更快。
从Windows自带的磁盘管理工具就能看到相应盘符对应的磁盘位置,左侧在原理主轴,右侧靠近主轴
而磁盘的系统分区是在比系统分区更要读取速率快的位置
(下图仅供参考,实际截图时这里用的固态硬盘,原理和机械硬盘有所不同。但基本类似)
要注意的是,“小盘符在外大盘符在内”原则并不是绝对的,如果以前分过盘,然后把靠近主轴相应的卷改为小的盘符,这个分区依旧会在扇面区靠近主轴的位置
而并不会因为你修改了盘符,这个分区在盘面上存储的位置就变为了原理主轴的位置
盘与卷
【未分配】、【主分区】、【简单卷】
【跨卷盘】
当两个不想邻盘符(在盘面上所存储的位置不相邻、不连续)进行合并后,就会产生一下这种现象
这时这个盘被称为跨卷盘
注意的是,跨卷盘不能为主分区,如果在主分区的基础上创建跨卷盘,系统会自动把这个主分区变为简单卷(记得好像是这样)
MBR分区
详见软件分区
五、文件系统(未写完)
5-1、主要类型
Windows文件系统主要有FAT、NTFS、EXT3三类
详细的原理如下:
- FAT文件系统原理:FAT - 维基百科,自由的百科全书
- NTFS文件系统原理:NTFS - 维基百科,自由的百科全书
- EXT3文件系统原理:ext3 - 维基百科,自由的百科全书
FAT/exFAT文件系统原理
NTFS文件系统原理
EXT3文件系统原理
六、选购相关(未写完)
选购参数
选购看参考的参数:品牌、接口、转速、一些坑
品牌
接口
M.2,SATA
转速
一些坑 —— CMR-SMR(叠瓦盘)
一些坑 —— SLC-MLC-TLC
七、其他
制作工艺那些事(1T = 931G != 1024G?)
1T硬盘
在计算机中,由于二进制的原因,1k = 2^10 = 1024
但是在存储器件的制作中,1000比1024要容易实现。所以制作时使用1000为基准
这就导致了:
制作的1000进制的1T/1024进制表示的1G = (1字节1000^4) / (1字节1024^3) = 931.32 (B字节>KB千字节>MB兆字节>GB兆字节>TB太字节)
商家给你的1T硬盘只有931.32G!而非1024G!
8T硬盘
再看看其他硬盘也同理:
用G来表示:
用T来表示:
完美符合计算公式!
手机存储器
在手机上也是同理的
64G > 640.931 = 59.6G 128G > 1280.931 = 119.2G
事实上也可能低于这个值(手机有一部分内存存储了其他东西)
但有时你在你的手机上看到的还是128G