热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

20211013传统机械硬盘工作原理、传统CMR磁盘与SMR瓦叠磁盘区别、固态硬盘原理、ASSSSDBenchmark、

一、传统机械硬盘工作原理如图,机械硬盘主要由磁片、马达、磁头臂、磁头组成磁片上有许多“小格”,能够存储两种极性,也就是所谓的010110

一、传统机械硬盘工作原理

在这里插入图片描述
如图,机械硬盘主要由 磁片、马达、磁头臂、磁头组成

磁片上有许多“小格”,能够存储两种极性,也就是所谓的010110等二进制,来达到存储数据的效果

在工作时,磁头可以判断极性,悬浮在磁片上几纳米,通过磁头臂与马达的旋转,就可以读取磁盘表面的数据
在这里插入图片描述
磁盘表面又会划分为无数的磁道和许许多多的扇区

假设磁盘要读取某信息时(如图所示红色区域),磁头臂就先旋转到某一对应磁道上,再等待马达驱动磁片旋转到对应扇区,从而读取该数据
在这里插入图片描述
这就是传统机械硬盘(垂直式存储记录)的基本工作原理


二、传统CMR磁盘与SMR瓦叠磁盘区别

我们放大磁片表面,将它拉直,就会发现:写磁头写入的数据(绿色区域)很宽,而读磁头仅仅需要窄窄一条就能读取(橘色区域),现阶段技术无法将写磁头做小。这也就相当于磁片上一部分区域被浪费了,而且磁道与磁道中间也会有间隔
这就是传统的磁盘,也叫作CMR磁盘
在这里插入图片描述
从图中就可以轻易看出,传统CMR磁盘会浪费部分磁盘区域,导致数据密度不会变得很大

为此,一种新技术诞生了:SMR(瓦叠磁盘)------ 将一条条的磁道像瓦片一样堆叠起来

在这里插入图片描述
前文可知:读磁头只有很窄的一条,而写磁头却很宽。
可以将磁道像瓦片一样堆叠起来。写入一行新数据,会盖到下一磁道,而写入下一磁道数据时,会将前面的数据覆盖
在这里插入图片描述
这样,虽然每次写数据,都要覆盖下条磁道,但写下条磁道时,会将之前的数据覆盖。

而读磁头比较窄,所以丝毫不影响读磁头的工作
在这里插入图片描述
这样的新技术,看似节约了磁盘容量,提升了磁盘的密度,可事实上是这样吗?

当改磁道的数据时,传统CMR磁盘由于磁道与磁道间互不干扰,直接更改磁道数据即可:
在这里插入图片描述
而新技术SMR瓦叠磁盘,在改写数据时,必然会影响到其他磁道的数据:
在这里插入图片描述
怎么解决呢?解决的方法也很简单:

为了改写该磁道的数据,先将下磁道数据 “搬走” 。而你将该磁道数据改写完成后,要将刚 “搬走” 磁道的数据再移回来,可这样再写入就又会影响下磁道的数据。就这样,为了改写一个磁道的数据,而牵连变动了很多磁道

在这里插入图片描述
原来CMR磁盘只需要一次写入就能完成的操作,新技术SMR瓦叠可能要很多次才能完成

因此这种新技术看起来很厉害,能够大幅提高磁盘容量(换过来说就是相同容量成本低),但是性能十分弱鸡

而改写所影响的其他磁道的数据,需要事先 “搬走” ,这也就是为什么缓存会从传统CMR磁盘的64M变成了SMR瓦叠磁盘的256M

这个所谓的256M缓存,不是加量不加价,而是用来存放搬走的数据的
在这里插入图片描述
综上所述:SMR瓦叠磁盘作为一种新技术,可以让硬盘厂家在相同的材料成本下,做出容量更大的磁盘。但是性能却相对传统的CMR磁盘弱鸡不少。因此选购磁盘时一定不要买SMR瓦叠磁盘。通常情况下就是看缓存是64M还是256M


三、固态硬盘原理、ASS SSD Benchmark、

上文所述,传统机械硬盘是纯纯的传统物理,而固态硬盘所处的是量子力学领域

在这里插入图片描述
如图,浮栅级中有大量电子,当电子数目高于一定的阈值时,判断为正,也就是0,否则为负,判断为1

在读取数据时,给控制级施压,如果源级与漏级之间导通,则说明电子数目多,判断正,也就是0;没有导通,也就是电子数目少,判断为1

写入数据时,给P级施压,电子从浮栅级析出到P级,从而控制浮栅级电子数目,来判断正负;给P级施压,电子又会从P级析出到控制级

无数的浮栅堆在一起,就可以存储大量的数据,也就是NAND颗粒,也就是前文提到的闪存颗粒,也就是固态硬盘表面的 “黑块”

而读写的操作是通过主控来实现的

在工作时,为了提高性能,添加了缓存区域(类似电脑中的内存)来进行缓冲,也就是 主控 --> 缓存 --> 闪存

当缓存跑完后,主控会直接和闪存颗粒交互,此时会出现阶梯式的性能下降(一次读写大容量时)

在这里插入图片描述

相对于固态硬盘这种量子力学领域的纯电信号电路结构,传统的机械硬盘物理磁结构会有很大弊端:

在这里插入图片描述
最左边为传统机械硬盘,中间为sata3固态硬盘,最右边为M.2 Nvme固态硬盘

可以看出,机械硬盘相较于固态硬盘,在随机读写(4K和4K-64)和延迟(访问时间)有着巨大差距

附:
Seq:顺序读写 体积很大,数量稀少。如:电影、压缩包、图片、大文件
4K:随机读写 体积不大,数量巨多的分散性文件。如: 系统、游戏、软件等
4K64Thread:多线程随机读写 并发地进行多次4K随机读写
Acc.time:访问延迟 寻道寻址能力

不难想到,就顺序读写来说,如果数据刚好在同一磁道上,那机械硬盘几乎不需要寻道寻址,很轻松就能跑出高速
而到了随机读写上,数据分散在磁片面各个位置,磁头臂必须多次存道寻址,因此传统机械硬盘的随机读写性能低下
循环往复的寻道寻址,磁头臂旋转与磁片旋转都需要时间,这也就造成了很大延迟

我们的日常使用,是零散文件非常多的操作系统、软件、游戏等
真正影响日常体验的,恰恰是4K随机读写与延迟。

因此,机械硬盘显然更适于企业或个人用户存储大量数据(文件、图片、压缩包),不适合于日常使用


推荐阅读
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 本文介绍如何使用 Python 提取和替换 .docx 文件中的图片。.docx 文件本质上是压缩文件,通过解压可以访问其中的图片资源。此外,我们还将探讨使用第三方库 docx 的方法来简化这一过程。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 帝国CMS多图上传插件详解及使用指南
    本文介绍了一款用于帝国CMS的多图上传插件,该插件通过Flash技术实现批量图片上传功能,显著提升了多图上传效率。文章详细说明了插件的安装、配置和使用方法。 ... [详细]
  • 探索12个能显著提升iPhone使用体验的隐藏技巧,掌握这些功能后,你会发现生活更加便捷高效。 ... [详细]
  • 本文深入探讨了 Redis 的两种持久化方式——RDB 快照和 AOF 日志。详细介绍了它们的工作原理、配置方法以及各自的优缺点,帮助读者根据具体需求选择合适的持久化方案。 ... [详细]
  • 本文详细介绍了在企业级项目中如何优化 Webpack 配置,特别是在 React 移动端项目中的最佳实践。涵盖资源压缩、代码分割、构建范围缩小、缓存机制以及性能优化等多个方面。 ... [详细]
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
author-avatar
欧阳俊俊2502921727
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有