sata/sas/pcie/usb传输速率对比

本文详细介绍了串行接口如Serial ATA和Serial Attached SCSI (SAS)的数据传输率计算,以及PCI Express (PCIe)不同版本的带宽和编码方案对吞吐量的影响。通过8b/10b和128b/130b编码机制,解释了实际传输速率与标称带宽之间的关系,并列举了USB3.0和3.1的带宽计算方式,强调了编码对速度的影响。

串行通讯而言,数据传输率是指串行接口数据传输的实际比特率,Serial ATA 1.0的传输率是1.5Gbps,Serial ATA 2.0的传输率是3.0Gbps。
与其它高速串行接口一样,Serial ATA接口也采用了一套用来确保数据流特性的编码机制,这套编码机制将原本每字节所包含的8位数据(即1Byte=8bit)编码成10位数据(即
1Byte=10bit),这样一来,Serial ATA接口的每字节串行数据流就包含了10位数据,经过编码后的SerialATA传输速率就相应地变为SeriaATA实际传输速率的十分之一,所以
1.5Gbps=1.5Gb/s(带宽) * 8b/10b(编码)/ 8b(位数)= 150MB/sec,
3.0Gbps=3.0Gb/s(带宽) * 8b/10b(编码)/ 8b(位数)= 300MB/sec。

版本编码方案带宽(Gbit/S)速度(Mbyte/s)
SATA 1.08b/10b1.5150
SATA 2.08b/10b3300
SATA 3.08b/10b6600
版本编码方案带宽(Gbit/S)速度(Mbyte/s)
SAS 1.08b/10b3300
SAS 2.08b/10b6600
SAS 3.08b/10b121200

PCIe 吞吐量(可用带宽)计算方法:

吞吐量 = 传输速率 * 编码方案

例如:PCI-e2.0 协议支持 5.0 GT/s,即每一条Lane 上支持每秒钟内传输 5G个Bit;但这并不意味着 PCIe2.0协议的每一条Lane支持 5Gbps 的速率。

为什么这么说呢?因为PCIe 2.0 的物理层协议中使用的是 8b/10b 的编码方案。
即每传输8个Bit,需要发送10个Bit;这多出的2个Bit并不是对上层有意义的信息。

那么, PCIe 2.0协议的每一条Lane支持 5 * 8 / 10 = 4 Gbps / 8bit = 500 MB/s 的速率。

同理,

PCI-e3.0 协议支持 8.0 GT/s, 即每一条Lane 上支持每秒钟内传输 8G个Bit。

而PCIe 3.0 的物理层协议中使用的是 128b/130b 的编码方案。 即每传输128个Bit,需要发送130个Bit。

那么, PCIe 3.0协议的每一条Lane支持 8 * 128 / 130 = 7.877 Gbps / 8bit= 984.6 MB/s 的速率。

一个PCIe 3.0 x16的通道,x16 的可用带宽为 7.877 * 16 = 126.031 Gbps / 8bit = 15.754 GB/s。

1.0 = 2.5(传输速率) * 8/10(编码) / 8bit (位数)=0.25GB/s = 250MB/s

2.0 = 5.0(传输速率) * 8/10(编码)/ 8bit (位数) = 0.5GB/s = 500MB/s

3.0 =8.0 (传输速率)* 128/130(编码)/8bit (位数)=0.9846GB/s = 984.6MB/s

4.0=16 (传输速率)*128/130(编码)/8bit (位数)=1.969GB/s

5.0=32(传输速率)*128/130(编码)/8bit (位数)=3.938GB/s

j计算方法:带宽(32)*编码(128/130)=吞吐量(Gbyte,以位为单位),再除以8换算字节为单位

PCI Express版本编码方案传输速率吞吐量X1X4X8X16
1.08b/10b2.5GT/s250MB/s1GB/s2GB/s4GB/s
2.08b/10b5GT/s500MB/s2GB/s4GB/s8GB/s
3.0128b/130b8GT/s984.6MB/s3.938GB/s7.877GB/s15.754GB/s
4.0128b/130b16GT/s1.979GB/s7.877GB/s15.754GB/s31.508GB/s
5.0128b/130b32or25GT/s3.938or3.08GB/s15.8or12.3GB/s31.5or24.6GB/s63.0or49.2GB/s

USB3.0和 3.1带宽并不是5Gb/s除以8得到的625MB/s而是采用与SATA相同的10
Bit传输模式(在USB2.0的基础上新增了一对纠错码),因此其全速只有500MB/s。

版本编码方案带宽速度(Mbyte/s)
USB 1.08b12 Mbit/s1.5 MB/s
USB 2.08b480 Mbit/s60 MB/s
USB 3.08b/10b5Gbit/s500 MB/s
USB 3.18b/10b10Gbit/s1000 MB/s

转载参考:https://blog.youkuaiyun.com/qq_44777969/article/details/116662462

在比较 SAS SSD、SATA SSD 和 NVMe SSD 的传输速度时,需要结合接口协议的设计、物理带宽限制以及实际应用场景来分析。 ### 传输速度对比 SATA SSD 通常使用 AHCI(Advanced Host Controller Interface)协议,其理论最大传输速率为 6 Gbps(约 600 MB/s)[^1]。由于 SATA 接口最初是为机械硬盘设计的,其单队列深度和高延迟特性限制了 SSD 的性能发挥。因此,SATA SSD 在顺序读写速度上通常被限制在 500-600 MB/s 范围内。 相比之下,SAS(Serial Attached SCSI)SSD 使用的是面向企业级存储设计的协议,其理论带宽更高。SAS 接口版本主要包括 SAS-1(3 Gbps)、SAS-2(6 Gbps)、SAS-3(12 Gbps)和 SAS-4(24 Gbps),对应的理论传输速率分别为 300 MB/s、600 MB/s、1200 MB/s 和 2400 MB/s。在实际应用中,SAS SSD 的顺序读写速度通常可以达到 1000-2000 MB/s,甚至更高,尤其适合多线程、高并发的场景[^2]。 NVMe(Non-Volatile Memory Express)SSD 则采用了专为 SSD 设计的协议,支持多队列机制(最多 65535 个队列),极大地提升了并行处理能力。NVMe SSD 通常通过 PCIe 接口连接,其传输速度取决于 PCIe 的版本。例如,PCIe 3.0 x4 提供约 4 GB/s 的带宽,而 PCIe 4.0 x4 则可达到约 8 GB/s。目前主流 NVMe SSD 的顺序读写速度可以轻松超过 3000 MB/s,高端产品甚至可达 7000 MB/s 以上[^1]。 从实际性能来看,NVMe SSD 在顺序读写和随机读写(IOPS)方面都显著优于 SAS SSD 和 SATA SSD。特别是在低队列深度的随机读取场景中,NVMe SSD 的低延迟特性使其表现尤为突出。 ### 示例代码:测试 SSD 的顺序读写速度 以下是一个使用 `dd` 命令测试 SSD 顺序读写速度的简单示例: ```bash # 测试写入速度 dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct # 测试读取速度 dd if=testfile of=/dev/null bs=1G count=1 iflag=direct ``` 此命令使用 `dd` 工具进行大块数据的读写测试,`oflag=direct` 和 `iflag=direct` 用于绕过文件系统缓存,从而更真实地反映 SSD 的实际性能。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值