机械硬盘结构
机械硬盘-Hard Disk Drive,简称 HDD
机械硬盘主要由磁盘盘片、磁头、主轴与传动轴等组成,数据就存放在磁盘盘片中。
盘面物理上讲就是一个铝合金或者玻璃盘子,上面涂一层磁性材料,然后上面覆盖一层润滑保护涂层。
磁头沿盘片的半径方向运动,加上盘片每分钟几千转的高速旋转(目前机械硬盘的常见转速是 7200 r/min),磁头就可以定位在盘片的指定位置上进行数据的读写操作。信息通过离磁性表面很近的磁头,由电磁流来改变极性方式被电磁流写到磁盘上,信息可以通过相反的方式读取。
另外,因为机械硬盘的超高转速,机械硬盘在读取或写入数据时,非常害怕晃动和磕碰。如果内部有灰尘,则会造成磁头或盘片的损坏,所以机械硬盘内部是封闭的,如果不是在无尘环境下,则禁止拆开机械硬盘。
为避免磁头和盘片的磨损,在工作状态时,磁头悬浮在高速转动的盘片上方,间隙只有0.1~0.3um,磁头不与盘片直接接触,在电源关闭之后,磁头会自动回到在盘片上着陆区,此处盘片并不存储数据,是盘片的起始位置。
当磁盘旋转时,磁头若保持在一个位置上,磁盘会被划分成一个又一个的圈,每一圈就是一个磁道(Track)。资料存储手段从LMR进展到PMR这中又有CMR、SMR等技术。
固态硬盘结构
固态硬盘-Solid State Drive,简称 SSD
一般固态硬盘由三大块主控芯片、闪存颗粒(NAND FLASH)、缓存单元(DRAM)构成。区别于机械硬盘由磁盘、磁头等机械部件构成,整个固态硬盘结构无机械装置,全部是由电子芯片及电路板组成。
主控芯片
类似电脑中CPU,是固态硬盘的核心器件。作用主要有:
- 负责协调整个SSD的程序运行、数据调度包括平衡闪存颗粒的平均损耗等,直接决定了一块固态硬盘的性能高低;
- 运行固件算法,执行错误校正码、坏块管理、垃圾回收算法等等重要任务;
- 当数据由接口传输至SSD时,要由主控芯片中转至闪存颗粒进行存储。
DRAM缓存
储存FTL表,缓解写入放大(延长寿命),缓存配置有三种缓存方案:
- 全缓存方案,DRAM存储全部的FTL表,一般是1TB容量的固态配1GB的DRAM缓存(企业级固态DRAM更多,一般是1TB配1.25GB)
- 小缓存方案:DRAM存储常用的FTL表,完整的表放在NAND闪存颗粒里
- 无缓存方案:NVME1.2之前的M2固态和SATA固态,将FTL表存储至NAND闪存颗粒中
- HMB方案:NVME1.2之后的固态可以借用电脑内存中的64M容量拿来存放常用FTL表,完整FTL表放在NAND闪存颗粒里(简称偷内存方案)
NAND闪存颗粒
闪存颗粒负责数据的存储,在固态硬盘里面,闪存颗粒则替代了机械磁盘成为了存储单元。
根据NAND闪存中电子单元密度的差异,可以分为SLC(单层次存储单元)、MLC(双层存储单元),TLC(三层存储单元)以及QLC(四层式存储)
- SLC(单层式存储)为单层电子结构,写入数据时电压变化区间小,寿命长,读写次数在10万次以上
- MLC(多层式存储)使用高低电压构建的双层电子结构,寿命长,价格中等,读写次数在5000次左右
- TLC(三层式存储)是MLC闪存延伸存储密度最高(达3bit/cell),容量是MLC的1.5倍,造价成本低,使命寿命也低,读写次数在1 000~2000次左右
- QLC(四层式存储)存储密度最高(达4 bit/cell),容量是MLC的2倍,读写次数仅为100-300次左右
固态硬盘工作原理
SSD 控制器通过若干个主控通道并行操作这些 NAND Flash 颗粒,就像 Raid0 一样,这样可以提高数据写入的并行性及效率。
每一个 NAND Flash 颗粒又进一步细分为多个 block (块),每一个 block 又包含多个 page
在 SSD 内部,SSD 控制器和 Flash 之间的最小访问单元粒度是 page。一般一个 page 的大小为4k,一个 block 包括16个 page。
在写入数据的时候,像 Raid0 的工作机制一样,同时并行地将数据写入到每个 Flash 颗粒的 block 中可用的 page 上,当一个 block 写满之后会接着写下一个 block。
常见硬盘接口
IDE硬盘接口
Integrated Drive Eectronics,并口,即电子集成驱动器,IDE外观为40脚插针,笔记本使用的IDE接口为44脚插针,多出的4脚为供电接口
主板上的IDE接口
硬盘上的IDE接口
IDE硬盘接口定义
接口序号 | 接口定义 |
---|---|
01 | Reset |
02 | GND |
03 | Data 7 |
04 | Data 8 |
05 | Data 5 |
06 | Data 9 |
07 | Data 5 |
08 | Data 10 |
09 | Data 4 |
10 | Data 11 |
11 | Data 3 |
12 | Data 12 |
13 | Data 2 |
14 | Data 13 |
15 | Data 1 |
16 | Data 14 |
17 | Data 0 |
18 | Data 15 |
19 | GND |
20 | KEY |
21 | Not Connected |
22 | GND |
23 | Write Strobe |
24 | GND |
25 | Read Strobe |
26 | GND |
27 | IO_CH_RDY |
28 | Address Latch Enable |
29 | Not Connected |
30 | GND |
31 | Interrupt Request |
32 | IO ChipSelect 16 |
33 | Address 1 |
34 | Not connected |
35 | Address 0 |
36 | Address 2 |
37 | 1F0-1F7 |
38 | 3F6-3F7 |
39 | Led driver |
40 | GND |
IDE接口速率
接口代号 | 接口别称 | 接口速率 |
---|---|---|
0 | - | 16.7MB/s |
1 | - | 25.0MB/s |
2 | Ultra ATA/33 | 33.3MB/s |
3 | - | 44.4MB/s |
4 | Ultra ATA/66 | 66.7MB/s |
5 | Ultra ATA/100 | 100MB/s |
6 | Ultra ATA/133 | 133MB/s |
7 | Ultra ATA/167 | 167MB/s |
SATA硬盘接口
SATA是Serial ATA(Serial Advanced Technology Attachment)亦称串口
SATA接口分为SATA数据接口(7针)电源接口(15针)
电源上的SATA供电接口
主板上的SATA数据接口
SATA硬盘接口定义
SATA供电接口定义
接口序号 | 接口定义 | 一般线色 |
---|---|---|
01 | 直流3.3V正极 | 橙色 |
02 | 直流3.3V正极 | 橙色 |
03 | 直流3.3V正极,预充电,与第2路配对 | 橙色 |
04 | 接地,一般与负极相连,与第1路配对 | 黑色 |
05 | 接地,一般与负极相连,与第2路配对 | 黑色 |
06 | 接地,一般与负极相连,与第3路配对 | 黑色 |
07 | 直流5V正极,预充电,与第2路配对 | 红色 |
08 | 直流5V正极 | 红色 |
09 | 直流5V正极 | 红色 |
10 | 接地,一般与负极相连,与第2路配对 | 黑色 |
11 | 保留针脚 | 黑色 |
12 | 接地,一般与负极相连,与第1路配对 | 黑色 |
13 | 直流12V正极,预充电,与第2路配对 | 黄色 |
14 | 直流12V正极 | 黄色 |
15 | 直流12V正极 | 黄色 |
SATA数据接口定义
接口序号 | 接口定义 |
---|---|
01 | 接地,一般与负极相连 |
02 | 数据发送正极信号接口 |
03 | 数据发送负极信号接口 |
04 | 接地,一般与负极相连 |
05 | 数据接收正极信号接口 |
06 | 数据接收负极信号接口 |
07 | 接地,一般与负极相连 |
SATA接口速率
接口代号 | 接口速率(理论上限) | 编码 |
---|---|---|
PATA | 133MB/s | - |
SATA1.0 | 150MB/s | 8b/10b |
SATA2.0 | 300MB/s | 8b/10b |
SATA3.0 | 600MB/s | 8b/10b |
SATA Express | 1969MB/s | 128b/130b |
miniPCIe(mSATA)硬盘接口
MINI PCI-E 接口包含PCIe 总线、USB 2.0总线、SMBus总线、无线LED指示IO,使用3.3V供电。
mSATA (mini-SATA)是迷你版本SATA接口,外型和电子介面与mini PCI-E完全相同,都是54Pin。但电子信号不同,两者互不兼容。
mSATA接口,用于连接固态硬盘设备。其安装位置为“全高卡”空间,可通过SSD卡固定螺孔位置来判断。
mini PCI-E接口,用于安装无线网卡或3G/4G上网模块),安装位置有“半高、全高“之分。
mSATA数据接口定义
接口代号 | 接口定义 | 接口代号 | 接口定义 |
---|---|---|---|
01 | - | 02 | 3.3V |
03 | - | 04 | GND |
05 | - | 06 | - |
07 | - | 08 | - |
09 | GND | 10 | - |
11 | - | 12 | - |
13 | - | 14 | - |
15 | GND | 16 | - |
17 | - | 18 | GND |
19 | - | 20 | - |
21 | GND | 22 | - |
23 | TX+ | 24 | GND |
25 | TX- | 26 | GND |
27 | GND | 28 | - |
29 | GND | 30 | - |
31 | RX- | 32 | - |
33 | RX+ | 34 | GND |
35 | GND | 36 | RESERVED |
37 | GND | 38 | RESERVED |
39 | 3.3V | 40 | GND |
41 | 3.3V | 42 | - |
43 | GND | 44 | - |
45 | RESERVED | 46 | - |
47 | RESERVED | 48 | - |
49 | DA/DSS | 50 | GND |
51 | Presence Dtection | 52 | 3.3V |
mSATA数据接口速率与SATA保持一致
M.2 SATA硬盘接口
M.2接口,是一种新的主机接口方案,可以兼容多种通信协议,如sata、PCIe、USB、HSIC、UART、SMBus等。
M.2接口有两种接口定义:Socket 2(B&M key)和Socket 3(M key)
Socket 2,支持SATA、PCI-E x2接口的SSD、无线网卡、3G/4G网卡及其他非存储设备。
Socket 3,支持专为高性能存储设计,使用PCI-E x4接口,应用于NVMe PCIe M.2固态硬盘。M.2 SATA引脚定义
接口代号 | 接口定义 | 接口代号 | 接口定义 |
---|---|---|---|
01 | GND | 02 | 3.3V |
03 | GND | 04 | 3.3V |
05 | - | 06 | - |
07 | - | 08 | - |
09 | GND | 10 | DAS/DSS#(I/O) |
11 | - | 12 | 3.3V |
13 | - | 14 | 3.3V |
15 | GND | 16 | 3.3V |
17 | - | 18 | 3.3V |
19 | - | 20 | - |
21 | GND | 22 | - |
23 | - | 24 | - |
25 | - | 26 | - |
27 | GND | 28 | - |
29 | - | 30 | - |
31 | - | 32 | - |
33 | GND | 34 | - |
35 | - | 36 | - |
37 | - | 38 | DEVSLP(I) |
39 | GND | 40 | SMB_CLK(I/O)(0/1.8V) |
41 | SATA B+ | 42 | SMB_DATA(I/O)(0/1.8V) |
43 | SATA B- | 44 | ALERT#(O)(0/1.8V) |
45 | GND | 46 | - |
47 | SATA A- | 48 | - |
49 | SATA A+ | 50 | - |
51 | GND | 52 | - |
53 | - | 54 | - |
55 | - | 56 | Reserved for MFG_DATA |
57 | GND | 58 | Reserved for MFG_CLOCK |
59 | - | 60 | - |
61 | - | 62 | - |
63 | - | 64- | |
65 | - | 66- | |
67 | - | 68 | SUSCLK(32kHZ)(I)(0/3.3V) |
69 | GND-SATA | 70 | 3.3V |
71 | GND | 72 | 3.3V |
73 | GND | 74 | 3.3V |
75 | GND | - | - |
M.2 SATA数据接口速率与SATA保持一致