外贸平台都有什么网站,wordpress只能访问首页,芜湖弋江区最新消息,个人工商查询官网入口查询文章目录 概述原语通用原语连接管理原语连接通信原语 地址帧IDENTIFY地址帧OPEN地址帧 链路复位Link ResetHard ResetSATA的Link Reset 连接管理建立连接连接仲裁 流量控制SSP流控Credit Advance SMP流控 相关参考 概述
SAS链路层用于定义原语、地址帧以及连接相关的内容… 文章目录 概述原语通用原语连接管理原语连接通信原语 地址帧IDENTIFY地址帧OPEN地址帧 链路复位Link ResetHard ResetSATA的Link Reset 连接管理建立连接连接仲裁 流量控制SSP流控Credit Advance SMP流控 相关参考 概述
SAS链路层用于定义原语、地址帧以及连接相关的内容提供认证序列、hardreset序列、连接管理以及SSP、STP和SMP帧传输等功能
原语
原语定义为第一个字符为K28.3或K28.5的双字其作用是保持链路传输中的数据同步及时钟补偿等。原语格式定义如下 SAS链路中的原语根据作用可大致分为三类通用原语、连接管理原语、连接通信原语。
通用原语
原语描述ALIGN用于速率调整保持连接的phy传输速率一致HARD_RESET发起Hard ResetBROADCAST链路变化原语由Expander发出指示SAS网络中存在链路发生变化ERROR用于误码
连接管理原语
连接管理原语用于配合地址帧进行连接管理包括CLOSE、AIP等。
原语描述SOAF/EOAF地址帧的起始与结束标识OPEN_ACCEPT接受一个连接请求OPEN_REJECT拒绝一个连接请求携带的字符数据指示了拒绝连接的原因AIP连接仲裁原语连接建立过程中由被请求端发送携带的字符数据指示了当前未建立的原因CLOSE关闭一条连接BREAK中断一条连接
连接通信原语
连接通信原语主要用于SSP、SMP连接内的数据通信包括ACK、NAK等。
原语描述SOF/EOF帧的起始与结束标识RRDY允许发送帧CREDIT_BLOCED用于流控ACK/NAK用于对COMMAND、TASK、XFER_RDY、RESPONSE帧进行响应正常时返回ACK异常返回NAKDONE数据帧传输完成
地址帧
SAS协议定义了两种类型的地址帧IDENTIFY地址帧和OPEN地址帧分别用于IDENTIFY序列中交互设备信息和建立连接请求。地址帧在链路上的传输格式如下 地址帧的通用格式定义如下
IDENTIFY地址帧
当SAS设备之间链路建立后两端设备会发送IDENTIFY地址帧以交换双方的设备信息。IDENTIFY地址帧格式如下
OPEN地址帧
SAS通信模型中约束SAS设备之间要进行数据通信必须要先建立一条端到端的连接。作为连接的发起方需要通过发送OPEN地址帧以请求建立一条到目标设备的数据连接通路。OPEN地址帧格式定义如下
链路复位
SAS链路定义了多种级别的链路复位序列包括Link Reset、Hard Reset。
Link Reset
Link Reset会重新触发两端的链路协商以及信息认证Link Reset流程如下
Hard Reset
Hard Reset对比Link Reset流程多出了一个Hard Reset的序列通常这个序列会发送一个Hard Reset类型的原语。Target端在接收到Hard Reset原语后可能会做一些额外的资源清理等例如SAS盘就可能回去清除盘上所有正在运行的IO。
SATA的Link Reset
SATA的链路复位要单独进行说明SATA协议只定义了Link Reset这一种方式其Link Reset序列示意图如下
连接管理
SAS协议要求启动器端口和目标器端口在进行数据通信之前必须要先建立连接。根据链路层所承载的协议不同连接类型可以分为三种分别为SSP连接、STP连接和SMP连接其中
SSP连接用于SSP Initiator端口和SSP Target端口之间传输SCSI命令请求、任务管理请求以及数据帧等STP连接用于SSP Initiator端口和STP Target端口之间传输SATA数据帧其中STP Target端口有Expander设备提供代理SATA设备与SSP Inititor设备建立STP连接SMP连接用于SMP Initiator端口和SMP Target端口之间传输SMP请求和SMP响应数据。
建立连接
待续。。。
连接仲裁
待续。。。
流量控制
流量控制用于保证发送端发送的流量不会超出接收端的接收能力而导致数据被接收端丢掉。基本的实现流量控制的方式有两种一种是基于反压机制例如以太网使用的Global Pause、PFC等另外一种是基于信用的流控 高速链路大都采用这种方式例如PCIe。SAS协议使用基于信用的流量控制机制本端如果要发送数据必须要先收到对端的信用。
SSP流控
SSP链路层的流控使用RRDY原语来授予SSP帧信用以允许连接中的其它SSP phy发送帧。本端在每次接收到一个RRDY原语时都会将递增信用计数每个信用都会允许本端向对端发送一个SSP帧帧发送完后信用也会递减。
Credit Advance
除了RRDY原语外OPEN地址帧CREDIT ADVANCE位也可以用来授予SSP帧信用。它的运作机制如下
如果本端具有可用的接收资源则它可以通过在OPEN地址帧中将CREDIT ADVANCE位设置为1来预付信用这样可以允许本端在接收到OPEN_ACCEPT之后才发送RRDY而在对端接收到CREDIT ADVANCE位设置为1的OPEN地址帧后会增加SSP帧信用同时也会忽略下一个接收到的RRDY原语。
SMP流控
SMP链路层其实并未实现流量控制SMP帧的交互是一个简单的请求-响应的通信模型。当接受SMP连接时就意味着SMP Target端口已经准备好接受SMP请求了同样的对于SMP Intiator端口当发送SMP请求时也就做好了接受SMP响应的准备。
相关参考
《SAS Protocol Layer》《SAS Storage Archteciture》》