SATA传输层状态机优化方法技术

技术编号:27809426 阅读:15 留言:0更新日期:2021-03-30 09:36
本发明专利技术提供了一种SATA传输层状态机优化方法,当SAS控制器满足第一条件时,将所述状态机从HT_DS_FIS状态迁移到HT_HostIdle状态;当SAS控制器满足第二条件时,将所述状态机从HT_DMAOTrans1状态迁移到所述HT_HostIdle状态;以及当SAS控制器满足第三条件时,将所述状态机从所述HT_HostIdle状态迁移到HT_DMAOTrans2状态。本发明专利技术改进标准SATA传输层状态机的运转机制,消除了状态机中的多种异常,提供对SAS控制器并发控制多SATA设备场景的正确支持。确支持。确支持。

【技术实现步骤摘要】
SATA传输层状态机优化方法


[0001]本专利技术属于磁盘连接
,特别涉及一种SATA传输层状态机优化方法。

技术介绍

[0002]SATA(Serial ATA)是一种高速串行总线,采用点对点的传输方式,内置数据/命令校验单元,纠错能力强,支持热插拔,具有管脚数量少、数据传输速率快、可靠性高、兼容性好等特性,目前被业界广泛用于存储设备和主机之间的主要I/O接口。
[0003]SAS(串行连接SCSI)作为新一代SCSI技术,类似SATA技术同样采用串行接口以获得更高的传输速度。同时,SAS设计考虑向下兼容SATA技术,通过STP协议(SATA通道协议)实现SAS控制器和SATA设备之间的互联和数据传输。SAS协议标准中的STP协议规范定义了SAS系统和SATA设备通信技术细节,其中STP的传输层,采用SATA标准协议定义的传输层实现为基础,并适配SAS标准中的Port层(端口层)功能。
[0004]典型的SAS数据存储拓扑结构中,SAS控制器通过一级或者多级Expander(磁盘扩展器)扩展支持大规模磁盘的管理。SAS Expander中通常集成了STP/SATA桥,完成SAS协议到SATA协议的转换,以兼容SATA磁盘设备连接。图1描述了SAS控制器和多个SATA设备互联时的主要组件。其中SAS控制器作为控制命令和数据读写命令的发起者,负责管理整个存储系统的拓扑结构,发出磁盘数据读写命令,接收设备响应;SAS Expander,用于扩展存储系统的拓扑结构,内部集成STP/SATA桥以兼容SATA设备连接;STP/SATA桥完成SAS标准中STP协议到SATA协议的转换,帮助SATA设备接入SAS系统;SATA磁盘存储设备,存储业务数据。
[0005]然而,SATA标准协议在制定之初,并未充分考虑对SAS应用场景的支持,在SAS控制器并发访问多个SATA设备的应用场景下,SATA标准协议的传输层无法正确、高效的完成SAS标准中定义的数据交互过程,导致数据通信失败。对比标准SATA传输层,SAS的STP传输层需要和SAS的PL层(端口层)配合工作,实现一个SAS控制器和多个SATA设备并发交互。
[0006]为说明SATA标准传输层在支持SAS的STP应用场景时存在的问题,如图2所示,以FPDMA(SATA标准中定义的First

Party DMA)写数据事务为例,陈述典型的SAS的STP传输层消息交互场景。当一个SAS控制器并发控制两个SATA设备时:
[0007]1.H1.1:SAS控制器请求向SATA设备#1写入数据,发送FPDMA写命令,传输层发送Host

Device RegisterFIS(Frame Information Structure,SATA传输层数据结构);
[0008]2.D1.1:SATA设备#1发送命令应答给SAS控制器,提示成功收到命令,传输层发送Device

Host RegisterFIS;
[0009]3.H1.2:SAS控制器请求向SATA设备#2写入数据,发送FPDMA写命令,传输层发送Host

Device RegisterFIS;
[0010]4.D2.1:SATA设备#2发送命令应答给SAS控制器,提示成功收到命令,传输层发送Device

Host RegisterFIS;
[0011]5.D1.2:SATA设备#1准备就绪,传输层发送DMA SetupFIS,通知SAS控制器此次传输设备可以接收的数据大小、偏移地址;D比特为“0”且Auto

Activate比特为“1”,请求SATA
控制器发送一帧数据;
[0012]6.D2.2:SATA设备#2准备就绪,传输层发送DMA Setup FIS,通知SAS控制器此次传输设备可以接收的数据大小、偏移地址,D比特为“0”且Auto

Activate比特为“1”,请求SATA控制器发送一帧数据;
[0013]7.H2.1:SAS控制器传输层发送一帧DataFIS给SATA设备#1;
[0014]8.H2.2:SAS控制器传输层发送一帧DataFIS给SATA设备#2;
[0015]9.D1.3:SATA设备#1数据接收完毕,传输层发送Set Device Bits FIS,描述FPDMA写命令处理完成;
[0016]10.D2.3:SATA设备#2数据接收完毕,传输层发送Set Device Bits FIS,描述FPDMA写命令处理完成。
[0017]根据标准协议中的SATA传输层状态机描述可知,其中在步骤D1.2/D2.2,控制器的传输层接收到SATA设备端的DMA Setup FIS后,状态机进入HT_DS_FIS(HTDS1)状态,此时如果未检测到DMA Setup FIS错误,D比特为“0”且Auto

Activate比特为“1”,则状态迁移至HT_DMAOTrans2(HTDA3)状态,启动SAS控制器内部DMA控制器开始发送Data FIS。而图2所示场景中,在SAS控制器收到SATA设备#1的DMA Setup FIS后,即刻收到SATA设备#2的DMA Setup FIS,导致标准SATA传输层状态机发生异常,无法继续后续业务处理。
[0018]编号传输层状态接收到的FIS类型结果1HTDS1:HT_DS_FISDMASetupFIS异常2HTDS1:HT_DS_FISDMAActivateFIS异常3HTDS1:HT_DS_FISSetDeviceBitsFIS异常4HTDS1:HT_DS_FISDevicetoHostRegisterFIS异常5HTDA1:HT_DMA_FISDMASetupFIS异常6HTDA1:HT_DMA_FISDMAActivateFIS异常7HTDA1:HT_DMA_FISSetDeviceBitsFIS异常8HTDA1:HT_DMA_FISDevicetoHostRegisterFIS异常
[0019]表1
[0020]参见表1,除HT_DS_FIS(HTDS1)状态迁移之外,传输层还可能发生与并发访问有关的其他类似的异常。

技术实现思路

[0021]本专利技术的目的在于针对目前SATA标准协议传输层在SAS应用中存在的缺陷,提出并发访问多SATA设备应用场景下的改进方法,实现对STP场景的正确、高效支持。
[0022]本专利技术在第一方面提供了一种SATA传输层状态机优化方法,包括:
[0023]当SAS控制器满足第一条件时,将所述SATA传输层状态机从HT_DS_FIS状态迁移到HT_HostIdle状态;
[0024]当SAS控制器满足第二条件时,将所述SATA传输层状态机从HT_DMAOTrans1状态迁移到所述HT_HostIdle状态;以及
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种SATA传输层状态机优化方法,其特征在于,包括:当SAS控制器满足第一条件时,将所述SATA传输层状态机从HT_DS_FIS状态迁移到HT_HostIdle状态;当SAS控制器满足第二条件时,将所述SATA传输层状态机从HT_DMAOTrans1状态迁移到所述HT_HostIdle状态;以及当SAS控制器满足第三条件时,将所述SATA传输层状态机从所述HT_HostIdle状态迁移到HT_DMAOTrans2状态。2.根据权利要求1所述的SATA传输层状态机优化方法,其特征在于,所述第一条件进一步包括:在所述SATA传输层状态机的HT_DS_FIS状态下,未检测到DMA Setup FIS错误,并且FIS帧的D比特为“0”且Auto

Activate比特为“1”。3.根据权利要求1所述的SATA传输层状态机优化方法,其特征在于,所述第二条件进一步包括:在所述SATA传输层状态机的HT_DMAOTrans1状态下,DMA Activate FIS未检测到错误。4.根据权利要求3所述的SATA传输层状态机优化方法,其特征在于,在将状态迁移到HT_HostIdle状态之前,还包括:保存DMA Activate FIS内容信息。5.根据...

【专利技术属性】
技术研发人员:宫晓渊赵新宇张辅云李兵
申请(专利权)人:无锡众星微系统技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1