009集——磁盘详解——电脑数据如何存储在磁盘

        很多人也知道数据能够保存是由于设备中有一个叫做「硬盘」的组件存在,但也有很多人不知道硬盘是怎样储存这些数据的。这里给大家讲讲其中的原理。

        首先我们要明白的是,计算机中只有0和1,那么我们存入硬盘的数据,实际上也就是一堆0和1,换句话说,我们如果有办法记录0和1就可以记录数据了,比如我们有2个灯泡,一个不亮一个亮就可以表示01,即数字1,两个都亮11,即表示数字2,越大的数可以用越多的灯泡来表示。

      硬盘分为机械硬盘和固态硬盘,由于结构的不同它们储存数据的原理也不同。先来看机械硬盘,其最重要的结构是两面涂有磁性材料的磁盘,在工作时会以每分钟7200转的速度旋转。

   磁盘的作用就是记录数据,在盘片上有序的排列了很多的小颗粒材料,它们都是磁性物质,可以被永久磁化和改变磁极,这两个磁极就分别表示了计算机二进制中的0和1。

     写入数据时,距离盘面3纳米的磁头会利用电磁铁,改变磁盘上磁性材料的极性来记录数据,两种极性分别对应0或1。而读取数据时,旁边的读取器可以识别磁性材料的不同极性,再还原成0或1。

        由于磁盘是转动后读写数据的,所以,当初设计就是在类似磁盘同心圆上面切出一个一个的小区块,这些小区块整合成一个圆形,让机器手臂上的磁头去存取。

        这个小区块就是磁盘的最小物理储存单位,称之为扇区 (sector),大小一般是512字节,而同一个扇区组合成的圆就是所谓的磁道(track)。

这里不得不说到字节知识。

        位:"位 (bit)"是电子计算机中最小的数据单位。

每一位的状态只能是0或1。 字节:8个二进制位构成1个"字节 (Byte)",它是存储空间的基本计量单位

字节:在多数的计算机系统中,一个字节是一个8位长的数据单位,大多数的计算机用一个字节表示一个字符、数字或其他字符。 一个字节也可以表示一系列二进制位。 

位(bit)字节(Byte)(这两个不能搞错)

1B=8b

1KB=1024B

1M=1024KB

1G=1024M

1TB=1024G

        因此,磁头要想读取某个文件,必须在电机驱动下,先找到对应的磁道,再等磁盘转到对应扇区才行,一般会有十几毫秒的延迟,这就让机械硬盘在读取分散于磁盘各处的数据时,速度将大幅降低。

        相较于机械硬盘里面的复杂结构,固态硬盘就要简单许多。它主要是靠FLASH芯片来作为储存数据的介质,由主控芯片来承担数据的中转,并调配数据储存在闪存芯片上面。

   闪存的基本存储单元是浮栅晶体管,其中的浮栅被二氧化硅包裹,和上下绝缘,在断电时也能够保存电子,当电子数量高于一个中间值就表示0,低于中间值就表示1。

          晶体管每次写入数据前都要先擦除,在P极上加一个电压,浮栅中原有的电子会因为量子隧穿效应通过绝缘层被吸出来,让浮栅中的电子数量低于中间值,还原成1;如果要写入0,就在控制极加一个电压,让电子穿过绝缘层再注回浮栅,使电子数量高于中间值,表示0。

        但在读取时,闪存无法直接得知浮栅中有多少电子。因为往控制极加一定大小的电压,会导通这两个N极。控制极上的电压越大,N极间的电流也越大。然而,存储0的浮栅,相比存储1的浮栅,有更多的电子,会抵消控制极上的电压,所以控制极需要更大的电压才能导通两个N极。

        因此,当不知道浮栅中有多少电子时,就可以往控制极加一个中间值电压,如果两个N极导通,就能反推出浮栅中的电子较少,识别为1;如果没有导通,就说明浮栅中的电子较多,识别为0。

        传统的单阶存储单元SLC ,电子数量只有两种状态,只能保存一比特的数据。而多阶存储单元MLC、TLC和QLC ,它们的电子数量有4~16种状态,一个单元可保存2~4比特。

         多阶存储单元大大降低了固态硬盘单位容量的成本,但也影响了硬盘寿命和性能。这是因为晶体管擦写数据时,二氧化硅绝缘层会困住一部分电子,这些电子的累积会逐渐抵消控制极上的电压,使得控制极为了导通两个N极所需的电压越来越大,当这个偏移超过中间值,那么读取时也就无法分辨0和1。

        而多阶存储单元由于不同状态之间分得非常细,也就更容易受这种偏移的影响,所以从SLC到QLC,它们总的擦写次数呈几何级数递减。

        总结来说,机械硬盘是磁头通过磁盘旋转来读写数据的,所以磁盘读写数据的速度跟磁盘的旋转速度有很大的关系,磁盘转得越快磁头就能更快的访问到更多区域,速度自然就越快了。但也正是转速比较快,所以抗震抗摔以及抗尘能力比较差,试想每分钟几千转的磁盘震了一下或者撞上了灰尘,磁头即使只是发生了一点点小小的偏移,也会带来不可逆转的损坏。

        而固态硬盘由于没有了机械结构,完全不用担心这些的问题。但是固态硬盘也有一个硬伤就是:它是靠在存储单元里面存放电子的方式来存储数据。而电子大家知道是一个非常非常小的东西,这样如果同一个位置存放电子再擦除,如此反复长久以来就会出现不稳定的情况,比如电子会写不上。尤其是将要到来的QLC储存芯片,每个存储单元里面放了4个电子,由于电子之间也会互相影响,导致寿命大大减少。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux常见指令(一)

一、基本指令 1.1ls指令 语法 : ls [ 选项 ][ 目录或文件 ] 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。 常用选项: -a 列出目录下的所有文件,包括以 .…

【Java程序员面试专栏 分布式中间件】Redis 核心面试指引

关于Redis部分的核心知识进行一网打尽,包括Redis的基本概念,基本架构,工作流程,存储机制等,通过一篇文章串联面试重点,并且帮助加强日常基础知识的理解,全局思维导图如下所示 基础概念 明确redis的特性、应用场景和数据结构 什么是Redis,Redis有哪些应用场景 Redi…

CSP-动态规划-最长公共子序列(LCS)

一、动态规划 动态规划(Dynamic Programming,简称DP)主要用于求解可以被分解为相似子问题的复杂问题,特别是在优化问题上表现出色,如最短路径、最大子数组和、编辑距离等。动态规划的核心思想是将原问题分解为较小的子…

Python第十七章(继承)

继承:子类继承父类的所有方法和属性 一。单继承:一个子类继承一个父类 注释:B是子类,继承了A的函数方法,当调用B时候,会同时使用A中的全部方法,object类是顶级类或者基类,其他子类叫…

机器学习入门--门控循环单元(GRU)原理与实践

GRU模型 随着深度学习领域的快速发展,循环神经网络(RNN)已成为自然语言处理(NLP)等领域中常用的模型之一。但是,在RNN中,如果时间步数较大,会导致梯度消失或爆炸的问题,…

《山雨欲来-知道创宇 2023 年度 APT 威胁分析总结报告》

下载链接: https://pan.baidu.com/s/1eaIOyTk12d9mcuqDGzMYYQ?pwdzdcy 提取码: zdcy

【sgCreateTableColumn】自定义小工具:敏捷开发→自动化生成表格列html代码(表格列生成工具)[基于el-table-column]

源码 <template><!-- 前往https://blog.csdn.net/qq_37860634/article/details/136126479 查看使用说明 --><div :class"$options.name"><div class"sg-head">表格列生成工具</div><div class"sg-container"…

python in Vscode

背景 对于后端的语言选择&#xff1a; python&#xff0c;java&#xff0c;JavaScript备选。 选择Python 原因&#xff1a;可能是非IT专业的人中&#xff0c;会Python的人比较多。 目的 之前使用的IDE是VSCODE&#xff0c;在WSL的环境下使用。现在需要在在WSL的VSCODE下使…

使用Properties类读取配置文件

读取配置文件 使用Properties类读取配置文件。 Properties类本质上是个hashmap 常用方法 getProperty ( String key)&#xff1a; 用指定的键在此属性列表中搜索属性。也就是通过参数 key &#xff0c;得到 key 所对应的 value。load ( InputStream inStream)&#xff1a; 从输…

字符串拼接 - 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 200分 题解&#xff1a; Java / Python / C 题目描述 给定 M 个字符( a-z ) &#xff0c;从中取出任意字符(每个字符只能用一次)拼接成长度为 N 的字符串&#xff0c;要求相同的字符不能相邻。 计算出给定的字符列表…

Maui blazor ios 按设备类型设置是否启用safeArea

需求&#xff0c;新做了个app&#xff0c; 使用的是maui blazor技术&#xff0c;里面用了渐变背景&#xff0c;在默认启用SafeArea情况下&#xff0c;底部背景很突兀 由于现版本maui在SafeArea有点bug&#xff0c;官方教程的<ContentPage SafeAreafalse不生效&#xff0c;于…

【机器学习】数据清洗之识别重复点

&#x1f388;个人主页&#xff1a;甜美的江 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;机器学习 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步…

STM32 HAL库 STM32CubeMX -- IWDG(独立看门狗)

STM32 HAL库 STM32CubeMX -- IWDG 一、IWDG简介二、独立看门狗的工作原理三、驱动函数初始化函数HAL IWDG Init()初始化函数HAL IWDG Init()其他宏函数 四、超时时间计算第一种办法第二种办法&#xff08;推荐&#xff09; 一、IWDG简介 看门狗(Watchdog)就是MCU上的一种特殊的…

SORA:OpenAI最新文本驱动视频生成大模型技术报告解读

Video generation models as world simulators&#xff1a;作为世界模拟器的视频生成模型 1、概览2、Turning visual data into patches&#xff1a;将视觉数据转换为补丁3、Video compression network&#xff1a;视频压缩网络4、Spacetime Latent Patches&#xff1a;时空潜在…

SAP PP学习笔记- 豆知识02 - 品目要谁来维护?怎么决定更不更新品目的数量金额?

其实都是在品目类型的Customize中设定的。 咱们这里简单试着说一下什么场景使用。 1&#xff0c;SAP中品目有很多View&#xff0c;都要由哪些部门来维护呢&#xff1f; 其实就是谁用谁维护呗。 在新建一个品目的时候&#xff0c;品目Type本身就决定了该品目要由哪些部门来维…

【STM32 CubeMX】串口编程DMA

文章目录 前言一、DMA方式1.1 DMA是什么1.2 CubeMX配置DMA1.3 DMA方式函数使用DMA的发送接收函数 总结 前言 在嵌入式系统中&#xff0c;串口通信是一项至关重要的功能&#xff0c;它允许单片机与外部设备进行数据交换&#xff0c;如传感器、显示器或其他设备。然而&#xff0…

【数据结构】16 二叉树的定义,性质,存储结构(以及先序、后序、中序遍历)

二叉树 一个二叉树是一个有穷的结点集合。 它是由根节点和称为其左子树和右子树的两个不相交的二叉树组成的。 二叉树可具有以下5种形态。 性质 一个二叉树第i层的最大结点数为 2 i − 1 2^{i-1} 2i−1, i ≥ 1 i \geq 1 i≥1 每层最大结点可以对应完美二叉树&#xff08;…

阿里云服务器租用收费标准价格表(2024年更新)

2024年最新阿里云服务器租用费用优惠价格表&#xff0c;轻量2核2G3M带宽轻量服务器一年61元&#xff0c;折合5元1个月&#xff0c;新老用户同享99元一年服务器&#xff0c;2核4G5M服务器ECS优惠价199元一年&#xff0c;2核4G4M轻量服务器165元一年&#xff0c;2核4G服务器30元3…

Gitee入门之工具的安装

一、gitee是什么&#xff1f; Gitee&#xff08;码云&#xff09;是由开源中国社区在2013年推出的一个基于Git的代码托管平台&#xff0c;它提供中国本土化的代码托管服务。它旨在为个人、团队和企业提供稳定、高效、安全的云端软件开发协作平台&#xff0c;具备代码质量分析、…

React18原理: 核心包结构与两大工作循环

React核心包结构 1 ) react react基础包&#xff0c;只提供定义 react组件(ReactElement)的必要函数一般来说需要和渲染器(react-dom,react-native)一同使用在编写react应用的代码时, 大部分都是调用此包的api比如, 我们定义组件的时候&#xff0c;就是它提供的class Demo ext…