一文了解SATA协议
概述
SATA是一种基于行业标准的串行硬件驱动器接口,以连续串行的方式传输数据,支持热插拔,主要用于SATA主机与大容量存储设备之间的数据传输。
目前,SATA一共发展了三代,分别为SATA1、SATA2和SATA3,向后兼容,每一代SATA具有相应的传输功能定义,并且它们的传输速率也不尽相同。SATA1的传输速率只有150MB/s,SATA2扩展为300MB/s,SATA3将端口的传输速率提升至6Gbit/s。
SATA3协议一共分为五层:应用层、命令层、传输层、链路层和物理层。由于命令层包含于应用层,因此在某些文献中,将应用层和命令层进行了合并,统称为应用层,这样SATA3协议一共分为四层。根据SATA接口协议,SATA主机端和设备端实现通信时,各层之间进行对等交互。
本文对SATA协议做简单介绍。
01
物理层
02
链路层
03
传输层
04
命令层/应用层
总结
应用层:负责所有ATA命令的解析和执行,向处理器报告硬盘的运行状态,发起数据读写请求,完成硬盘工作模式的设置和读取等。
命令层:负责解析ATA指令,做出相应的回应,并指导传输层构建FIS。
传输层:负责构建和解析FIS,完成组帧和解帧,调整命令层和链路层之间的数据格式,完成主机和设备的命令交互和数据传递。
链路层:SATA链路层执行过程为:主机端发送数据,计算其32bit的CRCR校验和,并将该校验和与发送的有效数据进行加扰,放在有效数据帧的最后一帧,经过8B/10B编码后传输至物理层;设备端接收数据,对接收的有效数据进行8B/10B解码以及解扰操作,计算本组数据的CRC校验和,并与设备端接收的校验和比较。
物理层:物理层位于协议的最底层,其功能是通过OOB(Out-of-Band)信号的检测以及原语交互,实现主机端控制器与设备端控制器的链路初始化和速度协商,并将主机和设备的链路状态向链路层反馈,建立数据通道,实现串并转换、并串转换等操作。目前,Xilinx的高速收发器可支持物理层设计与实现,并且包含了8B/10B编解码等功能。
文章图片来源网络,更多关于SATA协议的详细说明,可参考:
[1] Serial ATA International Organization. Serial ATA International Organization: Serial ATA Revision 3.0 specification.
[2] Mindshare,Inc.SATA Storage Technology.
-
一文详解Flink知识体系
2021-09-13 -
一文揭秘芯片为什么这么缺
2021-09-10 -
锦浪科技与国家电投签署战略合作协议
2021-09-10 -
一文教你使用python+Keras检测年龄和性别
2021-09-09 -
欧佩克能否就削减明天的产量达成协议?
2021-09-08 -
一文学会使用CNN进行人脸关键点识别
2021-09-08 -
一文了解均衡的秘密之FFE
2021-09-08 -
Linux从头学:一文理解【任务管理】和【任务切换】
2021-09-08 -
瓦克化学与英利就聚合物供应交易达成协议
2021-09-07 -
阿里GATNE:一文了解异构图的表示学习
2021-09-06 -
Cepsa与Masdar达成协议,在伊比利亚(Iberia)拥有600兆瓦可再生能源
2021-09-05 -
一文教你如何使用自动编码器进行图像去噪
2021-09-03 -
一文了解如何使用CNN进行图像分类
2021-09-02 -
盛运3:管理人关于签署重整投资协议暨确定重整投资人
2021-09-02 -
一文带你破解DDOS攻击原理
2021-08-31