SATA协议简介

news/2024/11/9 0:57:01/

1、概述

本文档主要介绍SATA的发展历程以及SATA相关协议,为后续SATA驱动框架分析做基础知识准备。

2、SATA简介

2.1 SATA发展历程

2.1.1 PATA硬盘

PATA硬盘叫做并行ATA硬盘(Parellel ATA)。为了限制其信号放大系统产生的高噪声,常采用高达5V的电压来传输正常信号,但是采用大电压导致生产成本上升,同时也不利于高速传输系统的设计和制造。由于数据是并列传输所以它的传输速率受到并行限制,故总体传输率最快能达到133MB/s。

2.1.2 SATA硬盘

SATA硬盘,即SATA(Serial ATA)又被称为串口硬盘。SATA采用差分信号系统,该系统能有效将噪声滤除,因此SATA就不需要使用高电压传输去抑制噪声,只需要使用低电压操作即可。

在数据传输这一方面,SATA的速度比PATA更加快捷,并支持热插拔。另一方面,SATA总线使用了嵌入式时钟频率信号,具备了比以往更强的纠错能力,能对传输指令(不仅是数据)进行检查,如果发现错误会自动矫正,提高了数据传输的可靠性。不过,SATA和PATA最明显的分别,是用上了较细的排线,有利机箱内部的空气流通,某程度上增加了整个平台的稳定性。

目前SATA接口主要有SATA1.0、SATA2.0、SATA3.0这三个版本,三种主流规范的带宽与传输速度的对比如图 2.1所示。
在这里插入图片描述

图 2.1 SATA传输速度对比

2.1.3 拓扑结构

SATA是用来取代大容量存储设备并行ATA链接方式的高速串行链接方式。

对于并行ATA设备,多个设备通过主/从(master/slave)通信技术链接到并行ATA总线上,其链接方式如图 2.2所示。
在这里插入图片描述

图 2.2 PATA拓扑结构

而SATA的拓扑结构是点对点式的,主机可以通过多个链接支持多个设备,每个设备百分百占用总线带宽,并且一个设备的链接出错不会影响其他设备的链接,其链接方式如图 2.3所示。
在这里插入图片描述

图 2.3 SATA拓扑结构

2.2 SATA协议

2.2.1 SATA接口结构

SATA接口使用4根电缆传输数据,其结构图如图 2.4所示。Tx+、Tx-表示输出差分数据线,对应的,Rx+、Rx-表示输入差分数据线。
在这里插入图片描述

图 2.4 SATA接口结构图

2.2.2 协议模型

SATA接口协议借鉴TCP/IP模型,将SATA接口划分为四个层次来实现,包括物理层、链路层、传输层、应用层,其体系结构如图 2.5所示。

在这里插入图片描述

图 2.5 SATA体系结构

2.2.3 物理层分析

物理层采用全双工串行传输方式,主要功能是进行信号的串并及并串转化。物理层接收来自链路层的数据信息,将接收到的并行的数字逻辑信号转换为串行的差分物理信号,发送到主机端。相应的物理层能将来自主机端的串行差分物理信号转化为并行的逻辑信号传送到链路层。

为了提高 SATA 接口的扩展能力和响应能力, SATA 协议还引进了带外信号(Out Of Band,OOB)来协助物理层进行上电初始化以及复位操作。

2.2.4 链路层分析

链路层的主要功能是通过控制原语的传递来控制信息帧的整个传输过程,保证帧信息能够正确的发送与接收并能进行流量的控制,防止数据发送过快或接受过多。

1)接收来自物理层的信息,对信息帧进行编码、解码、校验和扰码,然后给传输层发送 SOF 原语,通知传输层接收数据,当数据发送完成后,给传输层发送EOF原语,通知传输层该帧传输完成。

2)接收来自传输层的信息,给接收的信息头封装上SOF原语和EOF原语,然后对信息帧进行编码、解码、校验、扰码,传送给物理层。

链路层的控制原语是用来控制和维持串行链路数据传输状态。它们是以32位数据为单位的信息包,控制原语一共有18种,它们都有各自的功能,如:ALIGN原语用来做物理层中数据对齐;SOF、EOF原语用来做数据传输时信息帧的边界定义等。

2.2.5 传输层分析

传输层主要负责FIS帧信息结构的封装与解封。

1)传输层接收到来自应用层的数据传输操作请求后,将相关寄存器中信息按SATA协议规定的标准格式封装为FIS传递给链路层。当链路层正确接收完成后,能给传输层反馈成功完成本次传输的信号。

2)传输层接收到来自链路层的SOF信号后,能接收FIS信息帧,并能判断该FIS的类型,根据FIS类型,判断该FIS是否是有效的FIS。如果是则将该FIS中的命令和数据等按照SATA协议规定进行解析,映射到各个寄存器中,然后能通知应用层接收相应寄存器的值。如果该FIS无效,则丢弃。

2.2.6 应用层分析

应用层能够进行接受来自主机端的命令,根据命令的要求将自身的信息发送给主机端,或是接收来自主机端的以PIO或DMA方式传输的数据,同时写入闪存中,也能从闪存中以PIO或DMA的方式读出数据,传送给主机端。

在应用层采用两个FIFO对数据进行缓冲,一个为读FIFO,一个为写FIFO。应用层能接收来自传输层的数据帧送入写FIFO中或将来自总线的数据保存在读FIFO中,然后通知传输层构造数据帧。

3、参考资料

1、《Serial ATA Revision 3.0》


http://www.ppmy.cn/news/394485.html

相关文章

浅谈 SATA接口

转载自品略图书馆 http://www.pinlue.com/article/2020/03/3012/4810071415935.html 摘要 SATA是Serial ATA的缩写,即串行ATA。这是一种完全不同于并行ATA的新型硬盘接口类型,由于采用串行方式传输数据而得名。SATA总线使用嵌入式时钟信号,…

#SATA# SATA 实际管脚接线图

前言 概述实际接线管脚图PATA 接口M.2U.2AHCINVMe 概述 SATA是Serial ATA的缩写,即串行ATA。它是一种电脑总线,主要功能是用作主板和大量存储设备(如硬盘及光盘驱动器)之间的数据传输。这是一种完全不同于并行PATA的新型硬盘接口…

HyperLynx(十七)SATA的设计与仿真

1.SATA接口简介 2.SATA的电路仿真 1.SATA接口简介 SATA是Serial ATA的缩写,即串行ATA。这是一种完全不同于并行ATA的新型硬盘接口类型,因采用串行方式传输数据而得名。SATA总线使用嵌人式时钟信号,具备了更强的纠错能力,与以往相…

SATA线也会影响硬盘性能?

分享一篇文章:http://tech.watchstor.com/labs-145899.htm 硬盘性能和SATA线到底有多大关系? 转载于:https://blog.51cto.com/atom8023/1339003

linux查看sata端口速率,Linux查看SATA速度和具体设备

查看SATA速度和具体设备 SATA 速度确认 方法一 dmesg |grep SATA 输出 [ 2.977661] ahci 0000:00:17.0: AHCI 0001.0301 32 slots 4 ports 6 Gbps 0xf impl SATA mode [ 3.030344] ata1: SATA max UDMA/133 abar m2048@0xf714b000 port 0xf714b100 irq 124 [ 3.030345] ata2: S…

计算机硬盘线拔不出来,硬盘线常见问题解答

硬盘线可以把旧的机械/固态硬盘和平板电脑连接起来,从而更快捷的完成文件传输。 下文为硬盘线使用中的常见问题解答。 usb转sata转换器接上没反应 1:SATA硬盘有3.5寸(台式机)和2.5寸(笔记本里的硬盘)之分,如果使用的是3.5寸硬盘,则需要在转接线接上12V 2A DC5.5*2.1mm的电源…

sata接口 图解 定义_【sata硬盘三个接口】sata硬盘接口图解_sata硬盘接口电路

2014-11-11 11:59:33 使用SATA(Serial ATA)口的硬盘又叫串口硬盘,是未来PC机硬盘的趋势,现已基本取代了传统的PATA硬盘。在联想笔记本win7系统​下通过SATA硬盘提升硬盘性能的技巧分... 2018-04-15 16:50:43 ide是一种硬盘接口,是早期常用的硬盘接口,ide也称为ATA接口,现在…

同一台机器不同的sata线居然传输率不同

一般的人感觉sata线是小事情,但是一旦出现问题,那就是很难排查出来是否是sata 数据线的问题,因为东西虽小但是传输率不同,硬盘的读取速度和突发就不同,下面我测试了两个不同的sata数据线类型,同一个硬盘&am…