• 发文
  • 评论
  • 微博
  • 空间
  • 微信

SATA协议简介

FPGA算法工程师 2021-09-13 09:52 发文

概述

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.

声明:本文为OFweek维科号作者发布,不代表OFweek维科号立场。如有侵权或其他问题,请及时联系我们举报。
2
评论

评论

    相关阅读

    暂无数据

    FPGA算法工程师

    聊无线通信技术,致力于FPGA、...

    举报文章问题

    ×
    • 营销广告
    • 重复、旧闻
    • 格式问题
    • 低俗
    • 标题夸张
    • 与事实不符
    • 疑似抄袭
    • 我有话要说
    确定 取消

    举报评论问题

    ×
    • 淫秽色情
    • 营销广告
    • 恶意攻击谩骂
    • 我要吐槽
    确定 取消

    用户登录×

    请输入用户名/手机/邮箱

    请输入密码