SATA接口协议借鉴了ISO/OSI(七层)和TCP/IP(四层)模型的组织方式和对象、服务、层次封装等概念,将协议分为四层:物理层、数据链路层、传输层、应用层。
当主机端SATA接口的命令寄存器被修改时,即说明接口得到了一个新读写操作指令,应用层会分析得到的硬盘操作命令并根据协议进行相应的解析,解析成对应的传输请求,最后根据数据传输请求要求传输曾进行数据的传输操作。
传输层接受到应用层的数据传输操作请求后,便将SATA接口中相关寄存器的内容按照协议规定的格式封装为一个帧信息结构包FIS(Frame Information Structures),按照协议规定的各种数据传输控制流程,将命令帧信息包及数据信息帧依次传递给链路层。
链路层主要负责控制帧的传输过程。链路层为每一个帧定义了数据帧起始原语(SOF)和数据帧结束原语(EOF),接收方通过辨别它们来判断一个帧的边界。链路层给帧信息封装上SOF和EOF原语,以及CRC校验和数据后,再将待发送的数据进行扰码,扰码完毕后再进行8b/10b编码,最后由物理层发送。
物理层接收到链路层处理过的数据后,将这些数据利用差分信号线发送出去,并通过特有的带外信号(OOB)来检查总线上是否挂载设备。