
机械硬盘结构

机械硬盘-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保持一致








