CN112559406B - Sata传输层状态机优化方法 - Google Patents

Sata传输层状态机优化方法 Download PDF

Info

Publication number
CN112559406B
CN112559406B CN202011527304.5A CN202011527304A CN112559406B CN 112559406 B CN112559406 B CN 112559406B CN 202011527304 A CN202011527304 A CN 202011527304A CN 112559406 B CN112559406 B CN 112559406B
Authority
CN
China
Prior art keywords
state
fis
sata
transport layer
state machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011527304.5A
Other languages
English (en)
Other versions
CN112559406A (zh
Inventor
宫晓渊
赵新宇
张辅云
李兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Zhongxing Microsystem Technology Co ltd
Original Assignee
Wuxi Zhongxing Microsystem Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuxi Zhongxing Microsystem Technology Co ltd filed Critical Wuxi Zhongxing Microsystem Technology Co ltd
Priority to CN202011527304.5A priority Critical patent/CN112559406B/zh
Publication of CN112559406A publication Critical patent/CN112559406A/zh
Application granted granted Critical
Publication of CN112559406B publication Critical patent/CN112559406B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0028Serial attached SCSI [SAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0032Serial ATA [SATA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3802Harddisk connected to a computer port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3852Converter between protocols

Abstract

本发明提供了一种SATA传输层状态机优化方法,当SAS控制器满足第一条件时,将所述状态机从HT_DS_FIS状态迁移到HT_HostIdle状态;当SAS控制器满足第二条件时,将所述状态机从HT_DMAOTrans1状态迁移到所述HT_HostIdle状态;以及当SAS控制器满足第三条件时,将所述状态机从所述HT_HostIdle状态迁移到HT_DMAOTrans2状态。本发明改进标准SATA传输层状态机的运转机制,消除了状态机中的多种异常,提供对SAS控制器并发控制多SATA设备场景的正确支持。

Description

SATA传输层状态机优化方法
技术领域
本发明属于磁盘连接技术领域,特别涉及一种SATA传输层状态机优化方法。
背景技术
SATA(Serial ATA)是一种高速串行总线,采用点对点的传输方式,内置数据/命令校验单元,纠错能力强,支持热插拔,具有管脚数量少、数据传输速率快、可靠性高、兼容性好等特性,目前被业界广泛用于存储设备和主机之间的主要I/O接口。
SAS(串行连接SCSI)作为新一代SCSI技术,类似SATA技术同样采用串行接口以获得更高的传输速度。同时,SAS设计考虑向下兼容SATA技术,通过STP协议(SATA通道协议)实现SAS控制器和SATA设备之间的互联和数据传输。SAS协议标准中的STP协议规范定义了SAS系统和SATA设备通信技术细节,其中STP的传输层,采用SATA标准协议定义的传输层实现为基础,并适配SAS标准中的Port层(端口层)功能。
典型的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磁盘存储设备,存储业务数据。
然而,SATA标准协议在制定之初,并未充分考虑对SAS应用场景的支持,在SAS控制器并发访问多个SATA设备的应用场景下,SATA标准协议的传输层无法正确、高效的完成SAS标准中定义的数据交互过程,导致数据通信失败。对比标准SATA传输层,SAS的STP传输层需要和SAS的PL层(端口层)配合工作,实现一个SAS控制器和多个SATA设备并发交互。
为说明SATA标准传输层在支持SAS的STP应用场景时存在的问题,如图2所示,以FPDMA(SATA标准中定义的First-Party DMA)写数据事务为例,陈述典型的SAS的STP传输层消息交互场景。当一个SAS控制器并发控制两个SATA设备时:
1.H1.1:SAS控制器请求向SATA设备#1写入数据,发送FPDMA写命令,传输层发送Host-Device RegisterFIS(Frame Information Structure,SATA传输层数据结构);
2.D1.1:SATA设备#1发送命令应答给SAS控制器,提示成功收到命令,传输层发送Device-Host RegisterFIS;
3.H1.2:SAS控制器请求向SATA设备#2写入数据,发送FPDMA写命令,传输层发送Host-Device RegisterFIS;
4.D2.1:SATA设备#2发送命令应答给SAS控制器,提示成功收到命令,传输层发送Device-Host RegisterFIS;
5.D1.2:SATA设备#1准备就绪,传输层发送DMA SetupFIS,通知SAS控制器此次传输设备可以接收的数据大小、偏移地址;D比特为“0”且Auto-Activate比特为“1”,请求SATA控制器发送一帧数据;
6.D2.2:SATA设备#2准备就绪,传输层发送DMA Setup FIS,通知SAS控制器此次传输设备可以接收的数据大小、偏移地址,D比特为“0”且Auto-Activate比特为“1”,请求SATA控制器发送一帧数据;
7.H2.1:SAS控制器传输层发送一帧DataFIS给SATA设备#1;
8.H2.2:SAS控制器传输层发送一帧DataFIS给SATA设备#2;
9.D1.3:SATA设备#1数据接收完毕,传输层发送Set Device Bits FIS,描述FPDMA写命令处理完成;
10.D2.3:SATA设备#2数据接收完毕,传输层发送Set Device Bits FIS,描述FPDMA写命令处理完成。
根据标准协议中的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的DMASetup FIS,导致标准SATA传输层状态机发生异常,无法继续后续业务处理。
编号 传输层状态 接收到的FIS类型 结果
1 HTDS1:HT_DS_FIS DMASetupFIS 异常
2 HTDS1:HT_DS_FIS DMAActivateFIS 异常
3 HTDS1:HT_DS_FIS SetDeviceBitsFIS 异常
4 HTDS1:HT_DS_FIS DevicetoHostRegisterFIS 异常
5 HTDA1:HT_DMA_FIS DMASetupFIS 异常
6 HTDA1:HT_DMA_FIS DMAActivateFIS 异常
7 HTDA1:HT_DMA_FIS SetDeviceBitsFIS 异常
8 HTDA1:HT_DMA_FIS DevicetoHostRegisterFIS 异常
表1
参见表1,除HT_DS_FIS(HTDS1)状态迁移之外,传输层还可能发生与并发访问有关的其他类似的异常。
发明内容
本发明的目的在于针对目前SATA标准协议传输层在SAS应用中存在的缺陷,提出并发访问多SATA设备应用场景下的改进方法,实现对STP场景的正确、高效支持。
本发明在第一方面提供了一种SATA传输层状态机优化方法,包括:
当SAS控制器满足第一条件时,将所述SATA传输层状态机从HT_DS_FIS状态迁移到HT_HostIdle状态;
当SAS控制器满足第二条件时,将所述SATA传输层状态机从HT_DMAOTrans1状态迁移到所述HT_HostIdle状态;以及
当SAS控制器满足第三条件时,将所述SATA传输层状态机从所述HT_HostIdle状态迁移到HT_DMAOTrans2状态。
优选地,所述第一条件进一步包括:
在所述SATA传输层状态机的HT_DS_FIS状态下,未检测到DMA Setup FIS错误,并且FIS帧的D比特为“0”且Auto-Activate比特为“1”。
优选地,所述第二条件进一步包括:
在所述SATA传输层状态机的HT_DMAOTrans1状态下,DMA Activate FIS未检测到错误。
优选地,在将状态迁移到HT_HostIdle状态之前,还包括:
保存DMA Activate FIS内容信息。
优选地,所述第三条件进一步包括:
在所述HT_HostIdle状态下,SAS控制器有数据FIS等待发送。
优选地,所述将状态迁移至HT_DMAOTrans2状态之后,进一步包括:
启动SAS控制器内部DMA,发送DataFIS至SATA设备。
优选地,进一步包括:
在所述状态机处于所述HT_HostIdle状态下,当链路层检测到SATA设备发送帧的请求X_RDY原语,则将状态机迁移到HT_ChkTyp状态,传输层检查接收到的FIS帧类型。
优选地,在将状态机迁移到所述HT_ChkTyp状态之后,进一步包括:
如果收到DMA Setup FIS帧,将状态机迁移到HT_DS_FIS状态,保存DMA Setup FIS帧的内容信息,以供数据发送阶段使用。
优选地,所述DMA Setup FIS帧的内容信息包括请求的数据字节数、偏移量、Auto-Activate比特是否置位。
相比于现有技术,本发明具有以下优点:
本发明改进标准SATA传输层状态机的运转机制,解决状态机中的各类异常,提供对SAS控制器并发控制多SATA设备场景的正确支持,提升系统的吞吐率。
本发明的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据现有技术的SAS控制器与多SATA设备互联的结构图。
图2示出了根据现有技术的STP传输层消息通信的典型流程图。
图3示出了根据本发明的优选实施例的传输层多个状态及迁移条件的示意图。
图4-1和图4-2分别示出了本发明的STP传输层状态机优化方法应用前后的效果对比时序图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种SATA传输层状态机优化方法,通过定义新的SATA传输层状态机迁移条件和目的状态,改进标准SATA传输层状态机的运转机制,解决状态机中的各类异常,提供对SAS控制器并发控制多SATA设备场景的正确支持。
首先,本发明的方案需要对SATA标准传输层状态机中多个状态进行优化,包括:
1.HTDS1:HT_DS_FIS状态优化
表2对照形式示出了HTDS1状态下的状态迁移表(应当注意的是,在表2-4中,删除线部分表示从标准SATA传输层状态定义中移除的部分,粗体字部分表示在标准SATA传输层状态定义基础上新增的部分,其余为继承了标准SATA传输层状态定义的部分)。如表2第4项,如果未检测到DMA Setup FIS错误,并且FIS帧的D比特为“0”且Auto-Activate比特为“1”,则SATA标准传输层状态机不再迁移至HT_DMAOTrans2(HTDA3)状态,而是将状态迁移至HT_HostIdle(HTI1)状态。
Figure BDA0002851013460000071
表2
2.HTDA2:HT_DMAOTrans1状态优化
如表3第1,2项,HTDA2状态下,如果DMA Activate FIS状态正确,未检测到错误,则SATA标准传输层状态机不再停留在HT_DMAOTrans1状态或迁移至HT_DMAOTrans2(HTDA3)状态,而是被优化为保存DMA Activate FIS内容信息,并将状态迁移至HT_HostIdle(HTI1)状态。
Figure BDA0002851013460000072
表3
3.HTI1:HT_HostIdle状态优化
如表4第7项,在HTI1状态已有状态转移表的基础上增加以下转移条件:如果SAS控制器有数据FIS等待发送,则将SATA标准传输层状态机的状态迁移至HT_DMAOTrans2(HTDA3)状态。
Figure BDA0002851013460000073
表4
本发明优化后的传输层状态机,有效解决了表1描述的8类异常场景,以提供对SAS控制器并发控制多SATA设备的正确支持。
在本发明优选的实施例中,优化后的传输层相关状态迁移过程如图3所示,该状态迁移过程同样适用于SATA标准业务场景。具体状态和事件如下:
状态S1:HT_HostIdle(HTI1)状态,传输层空闲,等待接收SATA设备发送FIS,或者应用层下发命令或数据;
事件T1:在处于传输层空闲状态HTI1时,控制器命令层配置命令寄存器,请求传输层下发FPDMA写命令给SATA设备(与表4第1项相对应),迁移到状态S2;
状态S2:HT_CmdFIS(HTCM1)状态,传输层依据命令寄存器构造Hostto DeviceRegisterFIS,通知链路层发送FIS;
事件T2:在处于HTCM1状态时,链路层将FPDMA命令FIS发送完成,迁移到状态S3;
状态S3:HT_CmdTransStatus(HTCM2)状态,检查链路层和物理层FIS发送是否正确结束;
事件T3:在处于HTCM2状态时,FPDMA命令FIS正确发送,传输层返回状态S1即空闲状态HTI1;
事件T4:在处于传输层空闲状态HTI1时,链路层检测到SATA设备发送帧的请求X_RDY原语(对应表4第3项),迁移到状态S4;
状态S4:HT_ChkTyp(HTI2)状态,传输层检查接收到的FIS帧类型;
事件T5:在处于状态HTI2时,收到DMA Setup FIS帧,迁移到状态S5;
状态S5:HT_DS_FIS(HTDS1)状态,保存DMA Setup FIS帧的内容信息,如请求的数据字节数、偏移量、Auto-Activate比特是否置位等,提供数据发送阶段使用;
事件T6:在处于状态HTDS1时,DMA Setup FIS信息保存完毕,未检测到DMA SetupFIS错误,D比特为“0”且Auto-Activate比特为“1”,传输层返回空闲状态HTI1(对应于表2第4项),迁移到状态S1即空闲状态HTI1;
事件T7:在处于传输层空闲状态HTI1时,应用层数据准备完毕,请求发送DataFIS(对应于表4第7项),迁移到状态S6;
状态S6:HT_DMAOTrans2(HTDA3)状态,启动控制器内部DMA,发送DataFIS至SATA设备;
事件T8:在处于HTDA3状态时,SAS控制器启动DMA传输,开始发送一帧DataFIS,迁移到状态S7;
状态S7:HT_DMAEnd(HTDA4)状态,等待SAS控制器DMA发送完成;
事件T9:在HTDA4状态下,SAS控制器DMA未检测到错误,传输层返回状态S1即空闲状态HTI1;
事件T10:在处于状态HTI2时,传输层接收到DMA Activate FIS,迁移到状态S8;
状态S8:HT_DMA_FIS(HTDA1)状态,即HTI2状态检测收到DMA Activate FIS;
事件T11:在处于状态HTDA1时,DMA Active FIS状态检测未发现错误,迁移到状态S9;
状态S9:HT_DMAOTrans1(HTDA2)状态,保存DMA Active FIS的状态信息;
事件T12:在处于状态HTDA2时,传输层状态机返回空闲状态HTI1(对应表3第1项),等待应用层数据准备完成后(即事件T7),再迁移至S6状态,实施数据发送;
事件T13:在处于状态HTI2时,传输层收到Set Device Bits FIS,迁移到S10状态;
状态S10:HT_DB_FIS(HT_DB0)状态,接收Set Device Bits FIS,检查内容和状态;
事件T14:在HT_DB0状态下,Set Device Bits FIS状态检测未发现错误,迁移到状态S11;
状态S11:HT_Dev_Bits(HT_DB1)状态,解析Set Device Bits FIS内容信息,更新SATA命令层Status和Error寄存器;
事件T15:在HT_DB1状态下,状态检查完成,并且未检测到错误,此时返回S1即HTI1空闲状态。
通过对SATA标准传输层HTDS1、HTDA2和HTI1状态机的优化,有效解决了SAS控制器并发控制多个SATA设备时遇到的各类异常。
根据图3所述的状态机迁移过程,结合图2所述SAS业务场景的状态机迁移顺序如下,在确保数据传输业务正常完成后,SATA传输层状态机成功回到空闲状态HTI1,状态机完成闭环操作:
HTI1→HTCM1→HTCM2→HTI1→HTCM1→HTCM2→HTI1→HTI2→HTDS1→HTI1→HTDS1→HTI1→HTDA3→HTDA4→HTI1→HTDA3→HTDA4→HTI1→HTI2→HTDB0→HTDB1→HTI1→HTI2→HTDB0→HTDB1→HTI1
需要说明的是,图3所示的状态机迁移过程仅用于说明而非限定本发明的技术方案。本领域技术人员应当理解,在本发明基础上可以根据实际需要而对磁盘阵列的结构以及状态机的事件数量、状态数量等做出容易想到的任意调整,而不应将本发明限于上述示例的具体结构或参数。
图4-1和图4-2的信号时序图以FPDMA写命令为例,对比了STP传输层状态机优化前后的效果。如图4-1所示,在图2所述SAS业务场景下,从状态S1开始,即HT_HostIdle(HTI1),传输层空闲,等待接收SATA设备发送的FIS,或者应用层下发命令或数据;当通过SAS控制器的SEND_CMD信号拉高从而导致事件T1发生时,即控制器命令层配置命令寄存器,请求传输层下发FPDMA写命令给SATA设备#1,然后迁移到状态S2即HT_CmdFIS(HTCM1),传输层依据命令寄存器构造Host to Device RegisterFIS,通知链路层发送FIS;随后迁移到状态S3。状态S3为HT_CmdTransStatus(HTCM2),检查链路层和物理层命令FIS发送是否正确结束。当通过SAS控制器的GOT_R_OK信号拉高从而导致事件T2发生时,即链路层成功发送FPDMA命令FIS,接收到SATA设备#1回复的R_OK应答原语,回到状态HTI1。由于状态形成闭环,SAS控制器重复S1-S2-S3-S1传输层状态迁移过程,将该过程定义为序列R1,继续发送命令给SATA设备#2。
当通过SAS控制器的GOT_X_RDY信号拉高(事件T3.1)时,即链路层收到SATA#1设备发送的X_RDY原语,请求SAS控制器接收FIS帧;并迁移到状态S4即HT_ChkTyp(HTI2),传输层检查接收到的FIS帧类型。当通过SAS控制器的GOT_DSUP信号拉高从而导致事件T4.1发生时,即检测到DMA Setup FIS类型帧;并迁移到状态S5即HT_DS_FIS(HTDS1),保存DMA SetupFIS帧的内容信息,如请求的数据字节数、偏移量、Auto-Activate比特是否置位等。在HTDS1状态下,如果通过SAS控制器的AUTO_ACT信号和GOT_X_RDY信号拉高从而分别导致事件T5和T3.1发生,即DMA Setup FIS帧中第2字节的D比特为“0”,Auto Activate比特为“1”;并且SATA设备#2发送X_RDY原语请求发送DMA Setup FIS,则迁移到状态S6即ERROR状态,SATA传输层状态机异常,并且SATA标准协议未定义HTDS1状态下收到SATA#2设备发送FIS请求时的正确处理方式。此后,即使将GOT_X_RDY或AUTO_ACT信号拉低,或将GOT_DSUP信号拉高,即使其他SATA设备再次请求发送FIS,状态机仍被死锁在ERROR异常状态。
如图4-2所示,在本发明优化后的传输层状态机中,状态S1/S2/S3/S4/S5,以及事件T1/T2/T3.1/T4.1与图4-1完全一致。不同于上述事件T5,当传输层处于状态S5(HTDS1)状态时,如果通过AUTO_ACT信号拉高导致事件T5.1的发生,即检测到DMA Setup FIS帧中第2字节的D比特为“0”,Auto Activate比特为“1”,则状态被迁移至HT_HostIdle(HTI1)状态,传输层重新回到空闲状态,完成接收状态机的闭环操作。在HTI1空闲状态下,如果通过GOT_X_RDY拉高,导致事件T3.2发生,即SAS控制器链路层接收到SATA设备#2的X_RDY原语,请求SAS控制器接收FIS帧,则迁移到状态S4即HTI2状态。而当GOT_X_RDY拉低,并且GOT_DSUP信号拉高,导致事件T4.2发生,即传输层检测接收到DMA Setup FIS帧时,则再次迁移到状态S5(HTDS1)状态。换句话说,优化后的状态机依次进行HTI1→HTI2→HTDS1→HTI1状态迁移,完成接收SATA设备#2的DMA Setup FIS任务,且状态机回到空闲状态HTI1。
除图2所述的一个SAS控制器并发控制两个SATA设备的场景之外,本发明的构思同样适用于多个SATA设备的场景;即每次接收到一个SATA设备的FIS帧,都可通过上述状态迁移闭环回到空闲状态HTI1,而不会出现状态死锁。
由时序图清晰可见,本发明优化后的SATA传输层状态机有效解决了SAS控制器和多SATA设备并发通信场景下,传输层HTDS1状态时接收到DMA Setup FIS的异常问题,保证了多设备并发数据业务的正确进行。另外,本领域技术人员可以预见,针对表1所述的其他异常场景,其异常处理方式均与时序图4-2相类似。本发明上述方案同样适用于标准SPL-3所规定的窄端口和宽端口场景。由此可见,实施本发明优化方案的状态机后可以有效处理多种异常情况,保证SAS控制器并发控制多个SATA设备的数据通信业务正确完成。更加高效地利用物理链路提升了整个存储系统的吞吐率。
本发明合理利用SATA传输层状态机现有状态,在不引入新状态的情况下,以最小成本有效解决了表1中描述的各类异常问题,弥补了SATA标准协议中传输层状态机的缺陷,完善了SATA传输层对STP场景的支持,对于提升SATA协议的可靠性提供了有效支撑。
尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (6)

1.一种SATA传输层状态机优化方法,其特征在于,包括:
当SAS控制器满足第一条件时,将所述SATA传输层状态机从HT_DS_FIS状态迁移到HT_HostIdle状态;
当SAS控制器满足第二条件时,将所述SATA传输层状态机从HT_DMAOTrans1状态迁移到所述HT_HostIdle状态;以及
当SAS控制器满足第三条件时,将所述SATA传输层状态机从所述HT_HostIdle状态迁移到HT_DMAOTrans2状态;
所述第一条件进一步包括:
在所述SATA传输层状态机的HT_DS_FIS状态下,未检测到DMA Setup FIS错误,并且FIS帧的D比特为“0”且Auto-Activate比特为“1”;
所述第二条件进一步包括:
在所述SATA传输层状态机的HT_DMAOTrans1状态下,DMA Activate FIS未检测到错误;
所述第三条件进一步包括:
在所述HT_HostIdle状态下,SAS控制器有数据FIS等待发送。
2.根据权利要求1所述的SATA传输层状态机优化方法,其特征在于,在将状态迁移到HT_HostIdle状态之前,还包括:
保存DMA Activate FIS内容信息。
3.根据权利要求1所述的SATA传输层状态机优化方法,其特征在于,所述将状态迁移至HT_DMAOTrans2状态之后,进一步包括:
启动控制器内部DMA,发送Data FIS至SATA设备。
4.根据权利要求1所述的SATA传输层状态机优化方法,其特征在于,进一步包括:
在所述状态机处于所述HT_HostIdle状态下,当链路层检测到SATA设备发送帧的请求X_RDY原语,则将状态机迁移到HT_ChkTyp状态,传输层检查接收到的FIS帧类型。
5.根据权利要求4所述的SATA传输层状态机优化方法,其特征在于,在将状态机迁移到所述HT_ChkTyp状态之后,进一步包括:
如果收到DMA Setup FIS帧,将状态机迁移到HT_DS_FIS状态,保存DMA Setup FIS帧的内容信息,以供数据发送阶段使用。
6.根据权利要求5所述的SATA传输层状态机优化方法,其特征在于,所述DMA SetupFIS帧的内容信息包括请求的数据字节数、偏移量、Auto-Activate比特是否置位。
CN202011527304.5A 2020-12-22 2020-12-22 Sata传输层状态机优化方法 Active CN112559406B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011527304.5A CN112559406B (zh) 2020-12-22 2020-12-22 Sata传输层状态机优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011527304.5A CN112559406B (zh) 2020-12-22 2020-12-22 Sata传输层状态机优化方法

Publications (2)

Publication Number Publication Date
CN112559406A CN112559406A (zh) 2021-03-26
CN112559406B true CN112559406B (zh) 2021-11-19

Family

ID=75030798

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011527304.5A Active CN112559406B (zh) 2020-12-22 2020-12-22 Sata传输层状态机优化方法

Country Status (1)

Country Link
CN (1) CN112559406B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113127389B (zh) * 2021-04-16 2022-08-26 无锡众星微系统技术有限公司 Sas stp业务加速方法
CN114579489B (zh) * 2022-03-15 2023-01-24 无锡众星微系统技术有限公司 一种双模sata传输层优化方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0774854A3 (de) * 1995-11-16 2000-01-26 Robert Bosch Gmbh Informationsserver für eine Vermittlungsanlage
CN105607874A (zh) * 2015-12-31 2016-05-25 湖南国科微电子股份有限公司 Sata协议加速模块、主机与硬盘通信方法及固态硬盘控制器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814245B2 (en) * 2006-10-05 2010-10-12 Lsi Corporation Apparatus and methods for improved SATA device interaction without a SAS expander
CN101876952B (zh) * 2009-11-27 2013-09-11 西安奇维测控科技有限公司 一种主机端传输层与应用层软硬交互系统及方法
WO2013076532A1 (en) * 2011-11-25 2013-05-30 Freescale Semiconductor, Inc. Controller, sata system and method of operation therefor
CN110941580B (zh) * 2019-10-31 2021-07-27 苏州浪潮智能科技有限公司 读取信息的方法和串行小型计算机系统接口sas扩展器
CN111526094B (zh) * 2020-04-24 2022-02-11 中电科航空电子有限公司 一种rstp状态机调度的方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0774854A3 (de) * 1995-11-16 2000-01-26 Robert Bosch Gmbh Informationsserver für eine Vermittlungsanlage
CN105607874A (zh) * 2015-12-31 2016-05-25 湖南国科微电子股份有限公司 Sata协议加速模块、主机与硬盘通信方法及固态硬盘控制器

Also Published As

Publication number Publication date
CN112559406A (zh) 2021-03-26

Similar Documents

Publication Publication Date Title
CN112559407B (zh) Stp链路层状态机优化方法
CN112559406B (zh) Sata传输层状态机优化方法
US7805543B2 (en) Hardware oriented host-side native command queuing tag management
US8751718B2 (en) Apparatus and methods for a simplified, multi-client SAS port for management of other devices in an enhanced SAS device
CN110910921A (zh) 一种命令读写方法、装置及计算机存储介质
CN108062234B (zh) 一种通过mailbox协议实现服务器主机访问BMC FLASH的系统及方法
CN114020677B (zh) 一种stp连接管理方法和装置
CN112765078B (zh) 支持多磁盘pio命令并发的stp传输层实现方法
WO2021164452A1 (zh) 一种主机端与fpga加速器之间的数据同步方法
WO2021109777A1 (zh) 一种数据文件的导入方法及装置
CN105718396A (zh) 一种大数据主设备传输的i2c总线装置及其通讯方法
JP2001202295A (ja) サブシステム
JP4988213B2 (ja) ストレージ・デバイスを保守する装置、該装置の動作方法及びコンピュータ読み取り可能な記憶媒体
US7689743B2 (en) Data copy system apparatus and method
US6108723A (en) System for implementing hardware automated control of burst mode data transfer over a communication link between devices operating in a block mode
CN113220231B (zh) 一种支持stp应用的自适应流控方法与装置
WO2021082877A1 (zh) 访问固态硬盘的方法及装置
US20230091817A1 (en) Protocol buffer-based cache mirroring method
WO2018133879A1 (zh) 一种服务器及其处理数据的方法
CN109445686B (zh) 一种存储磁盘以及存取数据的方法
CN116049069A (zh) 数据读取方法及相关装置
WO2022126534A1 (zh) 数据处理方法及相关设备
CN114579489B (zh) 一种双模sata传输层优化方法
JP2007011659A (ja) インターフェース装置、ディスクドライブ及びインターフェース制御方法
CN111831226B (zh) 一种自主输出nvme协议命令加速处理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant