CN114721984A - 面向低延时应用的sata接口数据传输方法和系统 - Google Patents

面向低延时应用的sata接口数据传输方法和系统 Download PDF

Info

Publication number
CN114721984A
CN114721984A CN202210338746.8A CN202210338746A CN114721984A CN 114721984 A CN114721984 A CN 114721984A CN 202210338746 A CN202210338746 A CN 202210338746A CN 114721984 A CN114721984 A CN 114721984A
Authority
CN
China
Prior art keywords
data
channel
fis
priority
improved
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.)
Granted
Application number
CN202210338746.8A
Other languages
English (en)
Other versions
CN114721984B (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.)
Hunan Greatwall Galaxy Technology Co ltd
Original Assignee
Hunan Greatwall Galaxy 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 Hunan Greatwall Galaxy Technology Co ltd filed Critical Hunan Greatwall Galaxy Technology Co ltd
Priority to CN202210338746.8A priority Critical patent/CN114721984B/zh
Publication of CN114721984A publication Critical patent/CN114721984A/zh
Application granted granted Critical
Publication of CN114721984B publication Critical patent/CN114721984B/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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)

Abstract

本申请涉及一种面向低延时应用的SATA接口数据传输方法和系统。所述方法是对SATA接口标准协议功能的扩展,配置寄存器FIS帧携带通道与优先级参数,便于各层之间进行调度操作,以及传输数据进行优先级标记,将数据通道与配置通道分离,双通道的划分中优先对配置通道进行调度,数据通道中数据传输的调度根据优先级进行调度,保证了配置通道的实时性,以及优先级抢占方式,保证高优先级数据能够及时响应,这样高优先级应用感知到了传输时延变低。采用本方法对SATA接口传输方式对不同优先级的应用做优先级区分,可以应用程序感知时延低的问题,以及对控制信道与数据信道划分保证控制信道带宽不被强占问题。

Description

面向低延时应用的SATA接口数据传输方法和系统
技术领域
本申请涉及数据传输技术领域,特别是涉及一种面向低延时应用的SATA接口数据传输方法。
背景技术
随着固态硬盘的广泛应用,SATA标准接口技术取代PATA技术,成为了硬盘的新接口标准。SATA标准协议定义了主机与设备进行通信的模式,接口主要包括应用层,传输层,数据链路层,物理层。在主机与设备收发数据时,主机利用应用层提供的指令执行收发操作并进行指令解析,向处理器提供设备运行状态,生成对数据的读写请求,读取与设置设备的工作模式,然后在发送时通知传输层构造FIS帧,在接受时解析传输层的FIS帧,并判断出应用层命令类型执行相应的操作。传输层主要负责FIS帧的封装与解析,在发送时传输层将映射寄存器中的命令,数据按照协议规定的结果进行封装,之后将封装的帧信息结构传递给数据链路层进行发送,接收数据时,传输层将数据链路层中的信息流按照标准协议定义的帧信息结构进行解析,并通知应用层处理相应命令。数据链路层主要的功能是负责把传输层传递的帧进行编码,校验,扰码,封装帧边界,把物理层传递的信息进行解码,校验,解扰,帧解析处理。物理层主要是完成发送端数据的并串转换,并将数字信号转化为物理差分信号,接收端采样信号,完成串并转化传输给数据链路层。
现有的SATA接口协议在多应用传输场景中当一个应用程序进行接口长时间传输时,其他应用就只能等待当前的应用传输完成后才能执行,这样对与一些需要低延时的应用来说,这样的传输协议是不可接受的;另外,在数据传输过程中控制数据和普通数据在同一个通道进行传输,如果普通数据流占用了接口全部带宽,那么控制信息就没有带宽进行数据传输了。
发明内容
基于此,有必要针对上述技术问题,提供一种面向低延时应用的SATA接口数据传输方法和系统。该方法根据数据优先级的划分以及数据通道与配置通道分离,以此来保证高优先级数据能够及时响应,这样高优先级应用感知到了传输时延变低。解决了现有接口传输方式对不同优先级的应用做优先级区分以便解决应用程序感知时延低的问题,以及对控制信道与数据信道划分保证控制信道带宽不被强占问题。
一种面向低延时应用的SATA接口数据传输方法,所述方法应用于主机端与设备端之间,所述方法包括:
主机端:
在应用层进行收发数据时,将根据SATA驱动提供的命令和配置寄存器构造的命令、传输的数据优先级以及传输参数传送给传输层。
在传输层,根据应用层的命令、传输的数据优先级以及传输参数,构造改进的主机端寄存器FIS帧;所述改进的主机端寄存器FIS帧是在SATA标准协议主机端寄存器FIS帧的中增加通道类型标志位和传输的数据优先级标志位得到的;所述通道类型包括配置通道和数据通道。
根据改进的FIS帧中的通道类型标志位优先对配置通道和数据通道进行调度,然后根据数据优先级标志位对数据通道内的传输数据进行调度;并将调度后的改进的FIS帧传送到数据链路层。
设备端:
在传输层接收到改进的FIS帧的解析结果时,根据改进的FIS帧的解析结果确定改进的FIS帧的类型,并根据改进的FIS帧的类型采用与主机端相同的调度方法对接收到的改进的FIS帧进行调度。
在其中一个实施例中,根据应用层的命令、传输的数据优先级以及传输参数,构造改进的主机端寄存器FIS帧,包括:
当应用层的命令为读写设备命令时,根据应用层的读写设备命令、传输的数据优先级以及传输参数构造改进的主机端寄存器FIS帧;所述改进的主机端寄存器FIS帧是将SATS标准接口协议中主机端寄存器FIS帧结构中的第一个R位设置为通道类型标志位,第二个和第三个R位设置为传输的数据优先级得到的。
在其中一个实施例中,根据改进的FIS帧中的通道类型标志位优先对配置通道和数据通道进行调度,然后根据数据优先级标志位对数据通道内的传输数据进行调度;并将调度后的改进的FIS帧传送到数据链路层,包括:
根据改进的FIS帧中的通道类型标志位确定通道类型,并对配置通道和数据通道采用绝对优先级调度SP算法进行通道调度。
根据数据优先级标志位确定数据优先级,并根据数据优先级对数据通道内的数据采用加权优先级轮询调度WRR算法对数据通道中的数据进行调度。
将调度后的改进的FIS帧传送到数据链路层。
在其中一个实施例中,在传输层接收到改进的FIS帧的解析结果时,根据改进的FIS帧的解析结果确定改进的FIS帧的类型,并根据改进的FIS帧的类型采用与主机端相同的调度方法对接收到的改进的FIS帧进行调度,步骤后还包括:
传输层把改进的FIS帧中的传输内容传递给应用层;所述传输内容包括:传输参数、数据优先级以及命令。
应用层进行对应的命令解析操作,并根据得到的解析结果判断主机端是否进行发送或者接收操作。
当判断结果为是时,则传输层发送改进的PIO建立FIS帧或改进的DMA建立FIS帧给主机端。
根据应用层解析的命令执行数据封装操作,并将封装后的数据发送给主机端,或者接收主机端发送的改进的数据FIS帧,并存储在相应的位置。
在其中一个实施例中,当判断结果为是时,则传输层发送改进的PIO建立FIS帧或改进的DMA建立FIS帧给主机端;改进的PIO建立FIS帧或改进的DMA建立FIS帧,步骤中的改进的PIO建立FIS帧是将SATS标准接口协议中PIO建立FIS帧结构中的R位设置为通道类型标志位得到的;改进的DMA建立FIS帧是将SATS标准接口协议中DMA建立FIS帧结构中的R位设置为通道类型标志位得到的。
在其中一个实施例中,根据应用层解析的命令执行数据封装操作,并将封装后的数据发送给主机端,或者接收主机端发送的改进的数据FIS帧,并存储在相应的位置,步骤中所述改进的数据FIS帧是将SATS标准接口协议中DMA建立FIS帧结构中的第二个R位设置为通道类型标志位,第三个和第四个R位设置为传输的数据优先级得到的。
一种面向低延时应用的SATA接口数据传输系统,所述系统包括:主机端和设备端;
所述主机端,用于在应用层进行收发数据时,将根据SATA驱动提供的命令和配置寄存器构造的命令、传输的数据优先级以及传输参数传送给传输层;在传输层,根据应用层的命令、传输的数据优先级以及传输参数,构造改进的主机端寄存器FIS帧;所述改进的主机端寄存器FIS帧是在SATA标准协议主机端寄存器FIS帧的中增加通道类型标志位和传输的数据优先级标志位得到的;所述通道类型包括配置通道和数据通道;根据改进的FIS帧中的通道类型标志位对配置通道和数据通道进行通道调度,然后根据数据优先级标志位对数据通道内的传输数据进行调度;并将调度后的改进的FIS帧传送到数据链路层。
设备端:在传输层接收到改进的FIS帧的解析结果时,根据改进的FIS帧的解析结果确定改进的FIS帧的类型,并根据改进的FIS帧的类型采用与主机端相同的调度方法对接收到的改进的FIS帧进行调度。
上述面向低延时应用的SATA接口数据传输方法和系统,所述方法是对SATA接口标准协议功能的扩展,配置寄存器FIS帧携带通道与优先级参数,便于各层之间进行调度操作,以及传输数据进行优先级标记,将数据通道与配置通道分离,双通道的划分中优先对配置通道进行调度,数据通道中数据传输的调度根据优先级进行调度,保证了配置通道的实时性,以及优先级抢占方式,保证高优先级数据能够及时响应,这样高优先级应用感知到了传输时延变低。采用本方法对SATA接口传输方式对不同优先级的应用做优先级区分,可以应用程序感知时延低的问题,以及对控制信道与数据信道划分保证控制信道带宽不被强占问题。
附图说明
图1为一个实施例中面向低延时应用的SATA接口数据传输方法的应用场景图;
图2为一个实施例中面向低延时应用的SATA接口数据传输方法的流程示意图;
图3为一个实施例中传输层双通道调度图;
图4为另一个实施例中带优先级的数据收发流程图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的面向低延时应用的SATA接口数据传输方法,可以应用于如图1所示的应用环境中。其中,主机端101通过SATA接口协议网络与设备端102进行传输。主机端利用SATA接口应用层传输数据主要通过两种方式PIO与DMA的方式。主机端101可以是服务器或计算机;设备端102可以是SATA接口的存储设备。
在一个实施例中,如图2所示,提供了一种面向低延时应用的SATA接口数据传输方法,该方法应用于主机端与设备端之间,该方法包括如下:
主机端:
步骤200:在应用层进行收发数据时,将根据SATA驱动提供的命令和配置寄存器构造的命令、传输的数据优先级以及传输参数传送给传输层。
步骤202:在传输层,根据应用层的命令、传输的数据优先级以及传输参数,构造改进的主机端寄存器FIS帧;所述改进的主机端寄存器FIS帧是在SATA标准协议主机端寄存器FIS帧的中增加通道类型标志位和传输的数据优先级标志位得到的;所述通道类型包括配置通道和数据通道。
具体的,数据优先级是反映当前传输数据是否需要优先传输的重要标志,当系统应该需要低延时数据时,系统发出的指令需要在特定的时限内得到反馈,因此需要对传输数据做优先级标记,接口根据优先级的标记做出保证传输带宽,抢占低优先级数据保证高优先级数据传输操作。数据优先级划分为三个优先级,分别为高优先级、中优先级、低优先级,用0,1,2分别作为数据的标记。
传输参数主要是标识出需要读取数据的地址与范围。
配置通道用0作为标记,数据通道用1作为标记。
配置寄存器FIS帧携带通道与优先级参数,便于各层之间进行调度操作,以及传输数据进行优先级标记。
步骤204:根据改进的FIS帧中的通道类型标志位优先对配置通道和数据通道进行调度,然后根据数据优先级标志位对数据通道内的传输数据进行调度;并将调度后的改进的FIS帧传送到数据链路层。
具体的,配置通道主要是主设备进行控制的,配置通道一般占用的传输带宽小,但是该通道控制了整个交互过程,在低时延场景中非常重要,要保证绝对不能丢失控制信息。数据通道按应用的高中低优先级进行数据传输,相比配置通道,数据通道的数据优先级没有配置通道高,因此在数据传输中优先保证配置通道,其次保证数据通道中的高,中,低优先级数据。
设备端:
步骤206:在传输层接收到改进的FIS帧的解析结果时,根据改进的FIS帧的解析结果确定改进的FIS帧的类型,并根据改进的FIS帧的类型采用与主机端相同的调度方法对接收到的改进的FIS帧进行调度。
上述面向低延时应用的SATA接口数据传输方法中,所述方法是对SATA接口标准协议功能的扩展,配置寄存器FIS帧携带通道与优先级参数,便于各层之间进行调度操作,以及传输数据进行优先级标记,将数据通道与配置通道分离,双通道的划分中优先对配置通道进行调度,数据通道中数据传输的调度根据优先级进行调度,保证了配置通道的实时性,以及优先级抢占方式,保证高优先级数据能够及时响应,这样高优先级应用感知到了传输时延变低。采用本方法对SATA接口传输方式对不同优先级的应用做优先级区分,可以应用程序感知时延低的问题,以及对控制信道与数据信道划分保证控制信道带宽不被强占问题。
在其中一个实施例中,步骤202包括:当应用层的命令为读写设备命令时,根据应用层的读写设备命令、传输的数据优先级以及传输参数构造改进的主机端寄存器FIS帧;改进的主机端寄存器FIS帧是将SATS标准接口协议中主机端寄存器FIS帧结构中的第一个R位设置为通道类型标志位,第二个和第三个R位设置为传输的数据优先级得到的。
具体的,改进的主机端寄存器FIS帧结构如表1所示。该FIS帧是用于将应用层的命令,优先级,数据参数等信息发往设备端。当设备端应用层收到主机端的改进的主机端寄存器FIS帧时,才能开始解析命令,后续启动相应的优先级数据收发以及其他命令相关的操作。
表1改进的主机端寄存器FIS帧
Figure BDA0003574038260000071
其中各字段的含义为:FIS帧类型为27h,表明是主机端寄存器FIS,FIS的长度是5个双字;Command为命令位,表示FIS帧传输了应用层命令寄存器内容;C位为1,表示本次传输是用于命令寄存器更新,为0表示本次传输是用于设备控制更新;CH为通道类型位,为1,表示本次传输数据走的是数据通道,为0表示是配置通道;Pri表示传输的数据优先级,0表示高优先级、1表示中优先级、2表示低优先级;PM Port表示当设备通过端口倍增器连接时,PM PORT可以指定FIS需要被发送的设备端口地址;Device包含了设备寄存器内容;Features(7:0)表示特征寄存器的内容;Features(15:8)表示扩展地址字段内容;Control:保存设备控制寄存器的影子寄存器块的内容;Count表示设备扇区计数寄存器内容。
在其中一个实施例中,步骤204包括:根据改进的FIS帧中的通道类型标志位确定通道类型,并对配置通道和数据通道采用绝对优先级调度SP算法进行通道调度;根据数据优先级标志位确定数据优先级,并根据数据优先级对数据通道内的数据采用加权优先级轮询调度WRR算法对数据通道中的数据进行调度;将调度后的改进的FIS帧传送到数据链路层。
具体的,数据通道与配置通道间使用绝对优先级调度SP算法,数据通道分为高,中,低三个优先级的加权轮询调度WRR算法。传输层双通道调度图如图3所示。
SP:Strict Priority(严格优先级),SP调度严格按照优先级从高到低的次序优先发送较高优先级队列中的分组,当较高优先级队列为空时,再发送较低优先级队列中的分组。队列7优先级最高,队列0优先级最低。
在其中一个实施例中,步骤206后还包括:传输层把改进的FIS帧中的传输内容传递给应用层;传输内容包括:传输参数、数据优先级以及命令;应用层进行对应的命令解析操作,并根据得到的解析结果判断主机端是否进行发送或者接收操作;当判断结果为是时,则传输层发送改进的PIO建立FIS帧或改进的DMA建立FIS帧给主机端;根据应用层解析的命令执行数据封装操作,并将封装后的数据发送给主机端,或者接收主机端发送的改进的数据FIS帧,并存储在相应的位置在其中一个实施例中,当判断结果为是时,则传输层发送改进的PIO建立FIS帧或改进的DMA建立FIS帧给主机端;改进的PIO建立FIS帧或改进的DMA建立FIS帧,步骤中的改进的PIO建立FIS帧是将SATS标准接口协议中PIO建立FIS帧结构中的R位设置为通道类型标志位得到的;改进的DMA建立FIS帧是将SATS标准接口协议中DMA建立FIS帧结构中的R位设置为通道类型标志位得到的。改进的DMA建立FIS帧和改进的PIO建立FIS帧携带通道信息。改进的DMA建立FIS帧结构如表2所示,改进的PIO建立FIS帧结构如表3所示。
表1改进的DMA建立FIS帧结构
Figure BDA0003574038260000081
其中各字段的含义为:FIS类型值为41h,表明该FIS为DMA设置FIS,确定了该FIS的长度为7个双字,同时也确定了剩余字段的内容;A:D位置1时,A位也相应地置1,此时如果DMA传输的数据已经就绪,主机端便向设备端发起第一个数据FIS。如果该位置0,则需要发送DMA激活FIS来触发数据FIS的传输;I:设备的中断位。设备应该根据收到的主机端寄存器FIS中的n IEN位来设定该位的值,而不能随意修改;D:D位置1表明后续数据是从主机传向设备,D位置0表示数据是从设备传到主机;R:R位为保留位,需要置零。;CH为通道类型位,为1,表示本次传输数据走的是数据通道,为0表示是配置通道;PM Port:当端设备通过端口倍增器连接到主机时,PM Port可以指定FIS需要被发送的设备端口地址。该字段由主机设定。PM Port字段长度为4,说明最多能连接15个设备;DMA Buffer Identifier Low和DMABuffer Identifier Low:用于标识主机存储器中DMA缓冲区的位置;DMA Buffer Offset:表明到缓冲区的字节偏移量;DMA Transfer Count:表明需要读取或写入的字节数;
表2改进的PIO建立FIS帧结构
Figure BDA0003574038260000091
其中各字段的含义为:FIS类型类型值为5Fh的值。定义其余的FIS字段。确定了该FIS的长度为5个双字;E_Status:包含后续数据FIS结束时命令块状态寄存器的新值;Sector Count:保存命令块的计数(7:0)寄存器的内容;Sector Count(exp):包含阴影寄存器块的计数(15:8)字段的内容;Error(错误)-包含在设备帧的所有后续数据结束时命令块的错误寄存器的新值;Status:包含用于启动主机数据传输的命令块状态寄存器的新值;R:R位为保留位,需要置零;I:设备的中断位。设备应该根据收到的主机端寄存器FIS中的nIEN位来设定该位的值;D:D位置1表明后续数据是从主机传向设备,D位置0表示数据是从设备传到主机;CH为通道类型位,为1,表示本次传输数据走的是数据通道,为0表示是配置通道;PM Port:当端设备通过端口倍增器连接到主机时,PM Port可以指定FIS需要被发送的设备端口地址;Device:保存命令块的设备寄存器的内容;LBA Low:保存命令块的LBA(7:0)寄存器的内容;LBA Mid:保存命令块的LBA(15:8)寄存器的内容;LBA High:保存命令块的LBA(23:16)寄存器的内容;LBA Low(exp):包含阴影寄存器块的LBA(31:24)字段的内容;LBA Mid(exp):包含阴影寄存器块的LBA(39:32)字段的内容;LBA High(exp):包含阴影寄存器块的LBA(47:40)字段的内容;Transfer Count:数据FIS中要传输的字节数。
每个帧都携带通道信息,帧功能主要是设备端通知主机端设备已经做好准备发送或者接收数据。
在其中一个实施例中,根据应用层解析的命令执行数据封装操作,并将封装后的数据发送给主机端,或者接收主机端发送的改进的数据FIS帧,并存储在相应的位置,步骤中改进的数据FIS帧是将SATS标准接口协议中DMA建立FIS帧结构中的第二个R位设置为通道类型标志位,第三个和第四个R位设置为传输的数据优先级得到的。改进的DATA FIS帧携带通道与优先级信息。改进的DATA FIS帧结构如表4所示。
表3改进的DATA FIS帧结构
Figure BDA0003574038260000101
数据帧是数据信息主体结构,帧内容如表4所示。数据FIS帧可以由主机发送也可以由设备发送,有效负载在1到2048之前。FIS帧类型为46h,DATA FIS帧中携带了通道与优先级信息,便于传输中进行调度。
在一个具体的实施例中,带优先级的数据收发流程图如图4所示,当主机应用进行收发数据时,利用SATA驱动提供的命令以及配置寄存器,构造出当前需要进行PIO/DMA操作的命令,以及数据传输的优先级,数据读写地址等信息。协议将应用层的命令分成了12中类型,常用的读写操作类型为PIO Data_In类型、PIO Data_Out类型、DMA_In类型、DMA_Out类型。每一种类型分别对应着一系列命令比如READ STREAM DMA EXT命令属于DMA_In类型,WRITE DMA命令、WRITE DMA EXT命令、WRITE DMA FUA EXT命令属于DMA_Out类型。当应用层根据系统驱动给的指示,分析出需要执行的命令,按照命令的协议处理流程,把命令与数据优先级,传输参数传送给传输层,进行进一步处理。
传输层根据应用层命令的处理流程,以及系统传送的数据传输优先级,传输参数,构造改进的FIS帧。FIS帧是SOF与EOF之间用于主机与设备通信的有效载荷。当应用层需要读写设备时,传输层需要构造改进的主机端寄存器FIS帧,结构如表1所示。该FIS帧是用于将应用层的命令、优先级、数据参数等信息发往设备端。当设备端应用层收到改进的主机端寄存器FIS帧时,才能开始解析命令,后续启动相应的收发以及其他命令相关的操作。传输层是收发数据解析命令的关键层,在低延时的要求下,做了一个双通道划分也就是配置通道与数据通道。配置通道主要是主备进行控制的,一般占用的传输带宽小,但是该通道控制了整个交互过程,在低时延场景中非常重要,要保证绝对不能丢失控制信息。因此数据通道与配置通道的调度可以使用绝对优先级调度SP算法,数据通道里面数据可以使用加权优先级轮询调度WRR算法。
发送端(主机端)数据链路层把传输层传递的帧进行编码,校验,扰码,封装帧边界,然后传输给物理层,物理层发送端数据的并串转换,并将数字信号转化为物理差分信号发送到对端设备。设备端的物理层接收数据完成串并转化传输给数据链路层,设备端数据链路层把物理层传递的信息进行解码,校验,解扰,帧解析处理,传输给设备端传输层。
设备端传输层接收主机端的寄存器配置FIS帧后,首先确定接收到的FIS帧的类型,接收FIS帧的调度同时也与主机端一样,分为数据通道与配置通道,两通道间使用绝对优先级调度SP算法,数据通道分为高,中,低三个优先级的加权轮询调度。调度之后,设备端传输把FIS帧中的传输内容,包括参数,数据优先级,命令等信息传递给应用层,应用层进行对应的命令解析操作,应用层判断主机端是否进行发送或者接收操作向传输层指示发送PIO/DMA SETUP FIS帧,DMA建立FIS帧结构如表2所示,PIO建立FIS帧结构如表3所示。根据应用层解析的命令执行数据封装操作发送给主机端,或者接收主机端发送的数据FIS帧,然后存储在相应的位置。数据FIS帧结构如表4所示。当完成全部数据传输之后,发送响应FIS表示传输完成。主机端根据帧里面的内容判断传输状态,并设置状态寄存器内容通知系统应用。如果传输出错,主机端提供出错信息,并通知系统是否进行重传或者上报中断操作。至此,整个数据传输流程操作完成。
以应用层DMA_In类型命令READ DMA命令为例进行示例说明,介绍整个交互过程,READ DMA命令类型码为C8h,整个过程的交互如下所示。
Step1:主机端软件首先初始化DMA控制器,包括指定存储硬盘数据内存空间地址,本次传输的数据优先级;
Step 2:主机软件启动主机开始进行交互传输;
Step 3:主机端应用层解析出应用指令,并发出READ DMA命令,命令,命令类型封装在寄存器配置FIS中,其中里面也包含了通道类型,与读数据操作的优先级;
Step 4:主机端传输层发送出寄存器FIS到设备端;
Step 5:设备端接收到寄存器FIS之后,校验FIS的正确性,并且解析出其中的READDMA命令,数据优先级,数据读写地址。然后启动接收端命令执行状态机;
Step 6:设备端应用层发送DMA SETUP FIS帧通知主机已经准备好开始发送数据;
Step 7:设备端然后通过DATA FIS帧向主机发送数据,数据中包含了有效数据段,数据通道与本次数据传输优先级信息;
Step 8:主机端接收数据按照优先级信息进行调度接收,并且校验其中数据的正确性;
Step 9:设备端根据要读取的数据量,进行封装DATA FIS数量,然后循环传输直至数据结束;
Step 10:当数据传输结束,设备端发送寄存器FIS通知主机端;
Step 11:主机端接收FIS,并解析其中的接收信息状态;
Step 12:主机端向主机软件发中断与状态信息,结束本次传输命令。
在一个实施例中,提供了一种面向低延时应用的SATA接口数据传输系统,所述系统包括:主机端和设备端;
主机端,用于在应用层进行收发数据时,将根据SATA驱动提供的命令和配置寄存器构造的命令、传输的数据优先级以及传输参数传送给传输层;在传输层,根据应用层的命令、传输的数据优先级以及传输参数,构造改进的主机端寄存器FIS帧;所述改进的主机端寄存器FIS帧是在SATA标准协议主机端寄存器FIS帧的中增加通道类型标志位和传输的数据优先级标志位得到的;所述通道类型包括配置通道和数据通道;根据改进的FIS帧中的通道类型标志位对配置通道和数据通道进行通道调度,然后根据数据优先级标志位对数据通道内的传输数据进行调度;并将调度后的改进的FIS帧传送到数据链路层。
设备端:在传输层接收到改进的FIS帧的解析结果时,根据改进的FIS帧的解析结果确定改进的FIS帧的类型,并根据改进的FIS帧的类型采用与主机端相同的调度方法对接收到的改进的FIS帧进行调度。
在其中一个实施例中,改进的主机端寄存器FIS帧是将SATS标准接口协议中主机端寄存器FIS帧结构中的第一个R位设置为通道类型标志位,第二个和第三个R位设置为传输的数据优先级得到的。
在其中一个实施例中,通道调度采用绝对优先级调度SP算法进行通道调度;数据通道内的传输数据的调度采用加权优先级轮询调度WRR算法。
在其中一个实施例中,设备端,还用于传输层把改进的FIS帧中的传输内容传递给应用层;传输内容包括:传输参数、数据优先级以及命令;应用层进行对应的命令解析操作,并根据得到的解析结果判断主机端是否进行发送或者接收操作;当判断结果为是时,则传输层发送改进的PIO建立FIS帧或改进的DMA建立FIS帧给主机端;根据应用层解析的命令执行数据封装操作,并将封装后的数据发送给主机端,或者接收主机端发送的改进的数据FIS帧,并存储在相应的位置。
在其中一个实施例中,改进的PIO建立FIS帧是将SATS标准接口协议中PIO建立FIS帧结构中的R位设置为通道类型标志位得到的;改进的DMA建立FIS帧是将SATS标准接口协议中DMA建立FIS帧结构中的R位设置为通道类型标志位得到的。
在其中一个实施例中,改进的数据FIS帧是将SATS标准接口协议中DMA建立FIS帧结构中的第二个R位设置为通道类型标志位,第三个和第四个R位设置为传输的数据优先级得到的。
应该理解的是,虽然图1和图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1和图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种面向低延时应用的SATA接口数据传输方法,其特征在于,所述方法应用于主机端与设备端之间,所述方法包括:
主机端:
在应用层进行收发数据时,将根据SATA驱动提供的命令和配置寄存器构造的命令、传输的数据优先级以及传输参数传送给传输层;
在传输层,根据应用层的命令、传输的数据优先级以及传输参数,构造改进的主机端寄存器FIS帧;所述改进的主机端寄存器FIS帧是在SATA标准协议主机端寄存器FIS帧的中增加通道类型标志位和传输的数据优先级标志位得到的;所述通道类型包括配置通道和数据通道;
根据改进的FIS帧中的通道类型标志位对配置通道和数据通道进行调度,然后根据数据优先级标志位对数据通道内的传输数据进行调度;并将调度后的改进的FIS帧传送到数据链路层;
设备端:
在传输层接收到改进的FIS帧的解析结果时,根据改进的FIS帧的解析结果确定改进的FIS帧的类型,并根据改进的FIS帧的类型采用与主机端相同的调度方法对接收到的改进的FIS帧进行调度。
2.根据权利要求1所述的方法,其特征在于,根据应用层的命令、传输的数据优先级以及传输参数,构造改进的主机端寄存器FIS帧,包括:
当应用层的命令为读写设备命令时,根据应用层的读写设备命令、传输的数据优先级以及传输参数构造改进的主机端寄存器FIS帧;所述改进的主机端寄存器FIS帧是将SATS标准接口协议中主机端寄存器FIS帧结构中的第一个R位设置为通道类型标志位,第二个和第三个R位设置为传输的数据优先级得到的。
3.根据权利要求1所述的方法,其特征在于,根据改进的FIS帧中的通道类型标志位对配置通道和数据通道进行调度,然后根据数据优先级标志位对数据通道内的传输数据进行调度;并将调度后的改进的FIS帧传送到数据链路层,包括:
根据改进的FIS帧中的通道类型标志位确定通道类型,并对配置通道和数据通道采用绝对优先级调度SP算法进行通道调度;
根据数据优先级标志位确定数据优先级,并根据数据优先级对数据通道内的数据采用加权优先级轮询调度WRR算法对数据通道中的数据进行调度;
将调度后的改进的FIS帧传送到数据链路层。
4.根据权利要求1所述的方法,其特征在于,在传输层接收到改进的FIS帧的解析结果时,根据改进的FIS帧的解析结果确定改进的FIS帧的类型,并根据改进的FIS帧的类型采用与主机端相同的调度方法对接收到的改进的FIS帧进行调度,步骤后还包括:
传输层把改进的FIS帧中的传输内容传递给应用层;所述传输内容包括:传输参数、数据优先级以及命令;
应用层进行对应的命令解析操作,并根据得到的解析结果判断主机端是否进行发送或者接收操作;
当判断结果为是时,则传输层发送改进的PIO建立FIS帧或改进的DMA建立FIS帧给主机端;
根据应用层解析的命令执行数据封装操作,并将封装后的数据发送给主机端,或者接收主机端发送的改进的数据FIS帧,并存储在相应的位置。
5.根据权利要求4所述的方法,其特征在于,当判断结果为是时,则传输层发送改进的PIO建立FIS帧或改进的DMA建立FIS帧给主机端;改进的PIO建立FIS帧或改进的DMA建立FIS帧,步骤中的所述改进的PIO建立FIS帧是将SATS标准接口协议中PIO建立FIS帧结构中的R位设置为通道类型标志位得到的;
所述改进的DMA建立FIS帧是将SATS标准接口协议中DMA建立FIS帧结构中的R位设置为通道类型标志位得到的。
6.根据权利要求4所述的方法,其特征在于,根据应用层解析的命令执行数据封装操作,并将封装后的数据发送给主机端,或者接收主机端发送的改进的数据FIS帧,并存储在相应的位置,步骤中所述改进的数据FIS帧是将SATS标准接口协议中DMA建立FIS帧结构中的第二个R位设置为通道类型标志位,第三个和第四个R位设置为传输的数据优先级得到的。
7.一种面向低延时应用的SATA接口数据传输系统,其特征在于,所述系统包括:主机端和设备端;
所述主机端,用于在应用层进行收发数据时,将根据SATA驱动提供的命令和配置寄存器构造的命令、传输的数据优先级以及传输参数传送给传输层;在传输层,根据应用层的命令、传输的数据优先级以及传输参数,构造改进的主机端寄存器FIS帧;所述改进的主机端寄存器FIS帧是在SATA标准协议主机端寄存器FIS帧的中增加通道类型标志位和传输的数据优先级标志位得到的;所述通道类型包括配置通道和数据通道;根据改进的FIS帧中的通道类型标志位对配置通道和数据通道进行通道调度,然后根据数据优先级标志位对数据通道内的传输数据进行调度;并将调度后的改进的FIS帧传送到数据链路层;
设备端:在传输层接收到改进的FIS帧的解析结果时,根据改进的FIS帧的解析结果确定改进的FIS帧的类型,并根据改进的FIS帧的类型采用与主机端相同的调度方法对接收到的改进的FIS帧进行调度。
8.根据权利要求7所述的系统,其特征在于,所述改进的主机端寄存器FIS帧是将SATS标准接口协议中主机端寄存器FIS帧结构中的第一个R位设置为通道类型标志位,第二个和第三个R位设置为传输的数据优先级得到的。
9.根据权利要求7所述的系统,其特征在于,所述通道调度采用绝对优先级调度SP算法进行通道调度;
数据通道内的传输数据的调度采用加权优先级轮询调度WRR算法。
10.根据权利要求7所述的系统,其特征在于,所述设备端,还用于传输层把改进的FIS帧中的传输内容传递给应用层;所述传输内容包括:传输参数、数据优先级以及命令;应用层进行对应的命令解析操作,并根据得到的解析结果判断主机端是否进行发送或者接收操作;当判断结果为是时,则传输层发送改进的PIO建立FIS帧或改进的DMA建立FIS帧给主机端;根据应用层解析的命令执行数据封装操作,并将封装后的数据发送给主机端,或者接收主机端发送的改进的数据FIS帧,并存储在相应的位置。
CN202210338746.8A 2022-03-30 2022-03-30 面向低延时应用的sata接口数据传输方法和系统 Active CN114721984B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210338746.8A CN114721984B (zh) 2022-03-30 2022-03-30 面向低延时应用的sata接口数据传输方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210338746.8A CN114721984B (zh) 2022-03-30 2022-03-30 面向低延时应用的sata接口数据传输方法和系统

Publications (2)

Publication Number Publication Date
CN114721984A true CN114721984A (zh) 2022-07-08
CN114721984B CN114721984B (zh) 2024-03-26

Family

ID=82241936

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210338746.8A Active CN114721984B (zh) 2022-03-30 2022-03-30 面向低延时应用的sata接口数据传输方法和系统

Country Status (1)

Country Link
CN (1) CN114721984B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009037479A (ja) * 2007-08-02 2009-02-19 Seiko Epson Corp データ転送制御装置及び電子機器
US20100262721A1 (en) * 2009-04-09 2010-10-14 Micron Technology, Inc. Memory controllers, memory systems, solid state drives and methods for processing a number of commands
CN101876952A (zh) * 2009-11-27 2010-11-03 西安奇维测控科技有限公司 一种主机端传输层与应用层软硬交互系统及方法
KR20110125989A (ko) * 2010-05-14 2011-11-22 주식회사 노바칩스 반도체 칩 및 이를 구비하는 반도체 시스템
CN102567252A (zh) * 2010-12-09 2012-07-11 北京华虹集成电路设计有限责任公司 一种硬盘和主机之间数据传输方法和系统
US20150012670A1 (en) * 2013-07-05 2015-01-08 Phison Electronics Corp. Command executing method, connector and memory storage device
CN104348751A (zh) * 2013-07-31 2015-02-11 中兴通讯股份有限公司 虚拟输出队列授权管理方法及装置
WO2016000478A1 (zh) * 2014-06-30 2016-01-07 曙光云计算技术有限公司 一种存储控制器及其使用方法
CN109358820A (zh) * 2018-12-04 2019-02-19 北京和讯永源科技有限公司 数据访问方法、装置、电子设备及计算机可读存储介质
CN111176553A (zh) * 2018-11-13 2020-05-19 西部数据技术公司 固态驱动器中的带宽限制
CN112416830A (zh) * 2020-12-09 2021-02-26 鸿秦(北京)科技有限公司 一种nvme与sata协议转换的实现电路

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009037479A (ja) * 2007-08-02 2009-02-19 Seiko Epson Corp データ転送制御装置及び電子機器
US20100262721A1 (en) * 2009-04-09 2010-10-14 Micron Technology, Inc. Memory controllers, memory systems, solid state drives and methods for processing a number of commands
CN102439576A (zh) * 2009-04-09 2012-05-02 美光科技公司 存储器控制器、存储器系统、固态驱动器及用于处理若干个命令的方法
CN101876952A (zh) * 2009-11-27 2010-11-03 西安奇维测控科技有限公司 一种主机端传输层与应用层软硬交互系统及方法
KR20110125989A (ko) * 2010-05-14 2011-11-22 주식회사 노바칩스 반도체 칩 및 이를 구비하는 반도체 시스템
CN102567252A (zh) * 2010-12-09 2012-07-11 北京华虹集成电路设计有限责任公司 一种硬盘和主机之间数据传输方法和系统
US20150012670A1 (en) * 2013-07-05 2015-01-08 Phison Electronics Corp. Command executing method, connector and memory storage device
CN104348751A (zh) * 2013-07-31 2015-02-11 中兴通讯股份有限公司 虚拟输出队列授权管理方法及装置
WO2016000478A1 (zh) * 2014-06-30 2016-01-07 曙光云计算技术有限公司 一种存储控制器及其使用方法
CN111176553A (zh) * 2018-11-13 2020-05-19 西部数据技术公司 固态驱动器中的带宽限制
CN109358820A (zh) * 2018-12-04 2019-02-19 北京和讯永源科技有限公司 数据访问方法、装置、电子设备及计算机可读存储介质
CN112416830A (zh) * 2020-12-09 2021-02-26 鸿秦(北京)科技有限公司 一种nvme与sata协议转换的实现电路

Also Published As

Publication number Publication date
CN114721984B (zh) 2024-03-26

Similar Documents

Publication Publication Date Title
US10503679B2 (en) NVM express controller for remote access of memory and I/O over Ethernet-type networks
US7561573B2 (en) Network adaptor, communication system and communication method
US9811678B2 (en) Method and system for transferring data and instructions through a host file system
US6708233B1 (en) Method and apparatus for direct buffering of a stream of variable-length data
CN111930676B (zh) 多处理器间的通信方法、装置、系统及存储介质
US8819125B2 (en) Method of transmitting data of USB device to server, and client terminal performing the method
US7200641B1 (en) Method and system for encoding SCSI requests for transmission using TCP/IP
CN111427517A (zh) 一种数据处理方法以及NVMe存储器
US20050135395A1 (en) Method and system for pre-pending layer 2 (L2) frame descriptors
US20220166857A1 (en) Method and Apparatus for Processing Data in a Network
JP2021501491A (ja) バッファ状態報告方法、端末及びコンピュータ記憶媒体
US7460531B2 (en) Method, system, and program for constructing a packet
EP3270322B1 (en) Encrypting system level data structures
US7177913B2 (en) Method, system, and program for adding operations identifying data packets to structures based on priority levels of the data packets
US10719376B2 (en) Methods and apparatus for multiplexing data flows via a single data structure
CN114721984B (zh) 面向低延时应用的sata接口数据传输方法和系统
CN116610623A (zh) 一种数据读取方法、装置、电子设备及存储介质
US6693905B1 (en) Data exchange unit
CN108140005B (zh) 在存储器系统协议中提供文件信息的系统及方法
CN113127389B (zh) Sas stp业务加速方法
KR100898345B1 (ko) Toe의 패킷 수신 하드웨어 장치 및 toe 패킷 수신하드웨어를 이용한 수신 시스템 및 수신 방법
CN116893987B (zh) 硬件加速方法、硬件加速器及硬件加速系统
US7428242B2 (en) Action list for a split media access and control layer communications system
US20150180777A1 (en) Data processing apparatus and method
CN111200594A (zh) 接收数据的方法、装置、数据接收设备和存储介质

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