文章目录
前言
一、故事前传
在之前的文章中,我们有提到SATA主要包括:应用层(Application Layer), 传输层(Transport Layer),链路层(Link Layer)以及物理层(Physical Layer), SATA结构如下图:
二、SATA Link Layer解析
我们先来看看link layer的结构:
从上面Link layer的结构,我们可以看到link layer的作用大致可以包括以下几点:
Frame flow control
CRC的生成与检测
对数据与控制字符的Scrmable/Descramble
8b/10b编解码
将传输层进来的数据转为Frame
Link layer在SATA通讯中参与的过程可以这样理解:
通过插入各种primitive基元(详细解析请见本篇后面内容)进行流量控制,在成功传递完有效资料后,链结层(Linker layer)等待对方的应答,并把结果传给上层;
传输层(transport layer)传送进来FIS,链结层(Linker layer)计算CRC值,加扰(Scramble)和8B/10B编码后,加上SOF和EOF封装成frame ,传递给物理层(Physical layer)。
注:SOF=Start of Frame, EOF=End of Frame。
从物理层接收到有效资料时,进行8B/10B解码、解扰(Descramble)以及CRC效验,然后将资料提交到传输层。
总结