前言:来吧,继续补硬件知识
磁盘存储器的信息存储原理
(这个图有点老了,实在找不到合适的图,现在磁盘的磁表面应该是垂直排列,这样存储量更大)
- 写 1 时:
线圈通以正向电流,使呈 N - S 状态
-
写 0 时:
线圈通以反向电流,使呈 S-N 状态
-
读时:
磁头固定不动,载体运动。因为载体上小的磁化单元外部的磁力线通过磁头铁芯形成闭合回路,在铁芯线圈两端得到感应电压。根据感应电压的不同的极性,可确定读出为 0 或 1
磁盘的磁道和扇区
磁盘磁道的格式
每个扇段也就是磁道的某一部分,有这样一些组成。
-
间隙
间隙就不说了
-
ID 域
道号:指磁道号。头号:指盘面编号(后面给出)。段号:扇区的编号。CRC 检验错误的数据。
-
数据域
数据有 512 字节。但是一个扇区不止 512 字节。
如何读一个磁盘扇区
-
CPU 对「磁盘控制器」或 DMA 控制器初始化:读命令、磁盘逻辑块号、主存起始地址、数据块大小。然后启动「磁盘驱动器」工作。
-
磁盘控制器读相应的扇区,并按 DMA 方式把数据放入主存
-
当 DMA 传送结束,磁盘孔子器向 CPU 发出 "DMA结束中断请求",要求 CPU 进行相应的后处理
image.png
固态硬盘
闪存(NAND memory)
有三种操作:擦除、编程、读取
注意是:读快!写慢!
- 快擦:所有单元都是 1
- 编程:需要之处都是 0
- 读出:控制栅加正电压,若状态为 0,则读出电路检测不到电流;若状态为 1,则能检测到电流。
固态硬盘
它用闪存颗粒代替了磁盘作为存储介质,利用闪存的特点,以区块写入和抹除的方式进行数据的写入。
写操作比读操作慢得多。顺序读比顺序写大致快一倍,而随机读比随机写大致快 10 倍。
随机读写延时比硬盘低两个数量级(随机读约为几十微秒,随机写约为几百微秒)
一个闪存芯片由若干个区块组成,每个区块由若干页组成。通常,页大小为 512B~4KB,每个区块由 32~128 个页组成,因而区块大小为 16KB~512KB,数据可以按页为单位进行读写。
当需要写某页信息时,必须先对该页所在的区块进行擦除操作。一旦一个区块被擦除过,区块中的每一页就可以直接再写一次。若某一区块进行了大约 100 000 次重复写之后,就会被磨损而变成坏的区块,不能再被使用。因此,闪存翻译层中有一个专门的均化磨损(wear leveling)逻辑电路,试图将擦除操作平均分布在所有区块上,以最大限度地延长 SSD 的使用寿命。由此可见,对于物理区块的写优化是由 SSD 中的硬件实现的,无需软件进行写优化。
点个喜欢呗
网友评论