CN116700604A - 一种基于sas hba的数据传输方法 - Google Patents
一种基于sas hba的数据传输方法 Download PDFInfo
- Publication number
- CN116700604A CN116700604A CN202310140211.4A CN202310140211A CN116700604A CN 116700604 A CN116700604 A CN 116700604A CN 202310140211 A CN202310140211 A CN 202310140211A CN 116700604 A CN116700604 A CN 116700604A
- Authority
- CN
- China
- Prior art keywords
- sas
- disk device
- target disk
- data
- hba
- 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
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 title claims abstract description 42
- 239000000872 buffer Substances 0.000 claims abstract description 69
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000011144 upstream manufacturing Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000011664 signaling Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种基于SAS HBA的数据传输方法和装置,该方法包括:在SAS控制器向目标磁盘设备发送传输请求命令的同时,SAS控制器向主机发送业务数据预取请求;SAS控制器接收从主机内存中预取的业务数据,将业务数据缓存在SASHBA的缓冲区块中,所述缓冲区块与目标磁盘设备的I/O通道相对应;当目标磁盘设备向SAS控制器返回就绪命令时,SAS控制器将缓存的业务数据直接传输到目标磁盘设备。本发明的技术方案降低了业务数据从主机到磁盘设备的I/O传输延迟,减少了SAS系统物理链路的空闲时间,提高了整个SASHBA存储系统的吞吐率和性能,改善了服务器系统用户的体验。
Description
技术领域
本发明属于芯片设计领域,特别涉及一种基于SAS HBA的数据传输方法。
背景技术
在服务器存储系统架构中,HBA(Host Bus Adapter,总线适配器)通常作为主机和外围存储设备之间连接的桥梁,不仅可以扩展服务器外围存储设备连接的数量,而且能够支持不同接口协议之间的转换,丰富了服务器系统的功能,同时满足了多样化系统应用场景。典型的用于存储设备的SAS HBA如图1所示,HBA上游采用服务器领域通用的PCIe总线接口,下游兼容SAS(串行连接SCSI)和SATA(串行ATA)等多种总线接口形态,既能够简化主机系统的外围接口设计,又能够提供主机系统对各种形态存储设备的灵活访问,以及硬件加速的RAID(磁盘冗余阵列)功能。从服务器主机角度来看,通过单一类型的通用PCIe总线接口,即可实现灵活访问SAS或者SATA等协议接口类型的存储设备,满足不同产品对性能、成本、规模和可靠性的需求差异。
图1还展示了一个典型的SAS HBA与上游服务器主机和下游磁盘设备的互联场景。主机服务器与SAS HBA通过PCIe总线连接。SAS HBA内部可以包含一个或多个SAS控制器。每个SAS控制器可以与SAS磁盘通过SAS总线直接互联。每个SAS控制器可以与SATA磁盘通过SATA总线直接互联。SAS控制器通过SAS总线与多级SAS Expander扩展器连接,起到扩展存储网络的作用,从而可以连接大规模SAS/SATA磁盘,实现对大规模磁盘阵列的管理。
SAS是由多种类型的协议组成的,根据连接的设备类型的不同而使用相应的协议进行数据传输。其中SSP(串行SCSI协议)用于传输SCSI命令。根据SAS标准协议的规定,针对SSP(串行SCSI协议)类型设备的数据通信,在SAS控制器和设备之间实施有效数据交换之前,需要控制器和设备首先通过链路层的帧交换建立指定传输速率的SSP类型的连接(Connection)。在连接建立成功后,控制器和设备独占当前物理链路资源,通过SSP协议规定的传输层帧(Frame)进行命令、数据的交换。
图2示出了一个典型的SAS控制器的SSP写I/O操作过程,即将主机业务数据从SAS控制器传输到SAS磁盘进行存储的过程。在SAS标准协议的传输层,通常包含以下4个阶段的帧传输:
1)SAS控制器向SAS磁盘发送SSP COMMAND命令帧,请求将业务数据存储到SAS磁盘的指定扇区;
2)SAS磁盘内部的控制逻辑解析接收到的命令帧,预留内部缓存区,执行磁盘目标扇区的有效性检查等预处理任务。根据磁盘内部所处的不同状态,通常此阶段耗时几十微秒到几毫秒。当预处理就绪后,SAS磁盘将SSP XFER_RDY帧发送至HBA内部的SAS控制器,请求SAS控制器开始传输业务数据;
3)HBA内部的SAS控制器经由上游PCIe总线从主机端DDR内存读取待传输的业务数据,按照SAS协议规定格式封装成SSP DATA帧后发送至SAS磁盘;
4)当SAS磁盘接收数据完成时,返回SSP RESPONSE帧至控制器,一次完整的I/O传输完成。
图3是根据现有技术的SAS HBA写I/O操作数据传输流程示意图。如图3所示,传统的SAS HBA架构设计通常包含SAS控制器、片上总线系统和PCIe Endpoint功能端点等功能模块。当SAS磁盘请求SAS控制器开始传输业务数据时,首先通过过程[R.1]-[R.3]进行服务器主机内存数据读取,再通过过程[D.1]-[D.4]完成SAS磁盘数据存储,具体包括:
1)[R.1]:SAS控制器通过片上总线向HBA内部PCIe Endpoint模块发起读数据类型的总线事务请求;
2)[R.2]:PCIe Endpoint将HBA内部总线读事务翻译成PCIe标准协议的内存(Memory)读取请求,通过PCIe总线发送至主机侧的PCIe RootComplex;
3)[R.3]:主机侧的PCIe RootComplex解析来自HBA的PCIe Memory读取请求,将其翻译为主机的系统总线读事务,读取DDR内的业务数据;
4)[D.1]:主机DDR经由主机系统总线返回业务数据信息至主机侧的PCIeRootComplex;
5)[D.2]:PCIe RootComplex将主机端DDR返回的业务数据按照PCIe协议定义的Completion数据包格式封装,通过PCIe总线发送至HBA的PCIe Endpoint;
6)[D.3]:HBA的PCIe Endpoint解析源自主机的Completion数据包,通过片上系统总线将业务数据返回至SAS控制器;
7)[D.4]:SAS控制器接收片上总线返回的业务数据,将业务数据按照SAS标准协议要求封装成SSP DATA帧格式,并传输至SAS磁盘设备。数据传输过程结束。
可见,当SAS磁盘发送SSP XFER_RDY帧请求SAS控制器传输业务数据时,SAS控制器需要路由穿过HBA片上总线、HBA PCIe Endpoint、PCIe RootComplex和服务器主机系统总线等多个功能模块,访问主机内部DDR获取业务数据。在典型场景下,路由过程中的PCIe总线传输需要实施并串-串并转换,从过程[R.1]-[R.2]-[R.3]到[D.1]-[D.2]-[D.3],整个请求发送-数据返回的物理往返延迟可能高达2微秒左右。由于SAS控制器从主机获取业务数据期间,独占SAS控制器至SAS磁盘之间的物理链路资源,SAS控制器获取业务数据的延迟越大,SAS物理链路的有效利用率越低。因此上述延迟降低了SAS物理链路利用的效率,并且限制了整个系统的吞吐率。
发明内容
本发明的目的在于提供一种基于SAS HBA的数据传输方法和装置,旨在解决SAS控制器获取业务数据延迟过高,从而影响物理链路效率和系统吞吐率的问题。
根据本发明的第一方面,提供了一种基于SAS HBA的数据传输方法,包括:
在SAS控制器向目标磁盘设备发送传输请求命令的同时,所述SAS控制器通过PCIe总线向主机内存发送业务数据预取请求;
所述SAS控制器接收从所述主机内存中预取的所述业务数据,并将所述业务数据缓存在所述SAS HBA的缓冲区块中,所述缓冲区块与所述目标磁盘设备的I/O通道相对应;
当所述目标磁盘设备向所述SAS控制器返回就绪命令时,所述SAS控制器将所述缓冲区块中所缓存的所述业务数据直接传输到所述目标磁盘设备。
优选地,所述SAS控制器将所述缓冲区块中所缓存的所述业务数据直接传输到所述目标磁盘设备,进一步包括:
所述SAS控制器查询所述SAS HBA内部的高速缓存,确定所述高速缓存中与当前目标磁盘设备的I/O通道对应的目标缓冲区块,从所述目标缓冲区块中获取所述业务数据。
优选地,在将所述缓冲区块中所缓存的所述业务数据直接传输到所述目标磁盘设备之后,所述方法还包括:
通过所述PCIe总线向所述主机内存发送剩余业务数据的预取请求。
优选地,基于所述目标磁盘设备的属性以及所述SAS控制器读取所述主机内存数据的延迟,确定所述缓冲区块的数量和大小。
优选地,所述方法还包括,当所述目标磁盘设备存在并发运行的多个I/O通道时,所述并发运行的多个I/O通道按照预定义策略来共享为所述目标磁盘设备分配的缓冲区块。
优选地,所述目标磁盘设备的类型为SAS磁盘或SATA磁盘。
根据本发明的第二方面,提供了一种基于SAS HBA的数据传输装置,包括:
预取单元,用于在SAS控制器向目标磁盘设备发送传输请求命令的同时,通过PCIe总线向主机内存发送业务数据预取请求;
缓存单元,用于接收从所述主机内存中预取的所述业务数据,并将所述业务数据缓存在所述SAS HBA的缓冲区块中,所述缓冲区块与所述目标磁盘设备的I/O通道相对应;
发送单元,用于当所述目标磁盘设备向所述SAS控制器返回就绪命令时,将所述缓冲区块中所缓存的所述业务数据直接传输到所述目标磁盘设备。
优选地,所述发送单元进一步被配置成,查询所述SAS HBA内部的高速缓存,确定所述高速缓存中与当前目标磁盘设备的I/O通道对应的目标缓冲区块,从所述目标缓冲区块中获取所述业务数据。
优选地,所述发送单元进一步被配置成,在将所述缓冲区块中所缓存的所述业务数据直接传输到所述目标磁盘设备之后,通过所述PCIe总线向所述主机内存发送剩余业务数据的预取请求。
优选地,基于所述目标磁盘设备的属性以及所述SAS控制器读取所述主机内存数据的延迟,确定所述缓冲区块的数量和大小。
优选地,当所述目标磁盘设备存在并发运行的多个I/O通道时,所述并发运行的多个I/O通道按照预定义策略来共享为所述目标磁盘设备分配的缓冲区块。
优选地,所述目标磁盘设备的类型为SAS磁盘或SATA磁盘。
相比于现有技术,本发明的技术方案通过在HBA内部设置与磁盘设备相对应的高速缓存,并从服务器主机内部DDR预读取部分数据至该高速缓存,显著降低了业务数据从主机到磁盘设备的I/O传输延迟,因而减少了SAS系统物理链路的空闲时间,提高了整个SASHBA存储系统的吞吐率和性能,有效地改善了服务器系统用户的体验。
本发明的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可以通过在说明书、权利要求书以及附图中所指出的结构和流程来实现和获取。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍,显而易见的是,下面描述中的附图是本发明的某些实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获取其他的附图。
图1是根据现有技术的典型SAS HBA的连接结构示意图。
图2是根据现有技术的典型SAS控制器的写I/O操作过程信令图。
图3是根据现有技术的典型SAS HBA写I/O操作数据传输流程示意图。
图4是根据本发明的SAS HBA设计架构及其写I/O操作的数据传输流程示意图。
图5是根据本发明的基于SAS HBA的数据传输方法的主要流程图。
图6是根据本发明的在HBA内部为磁盘设备的一个或多个I/O分配的缓冲区块的示意图。
图7是根据本发明的SAS HBA数据传输方法的SAS磁盘设备写I/O操作过程信令图。
图8是根据现有技术的SATA磁盘设备写I/O操作过程信令图。
图9是根据本发明的SAS HBA数据传输方法的SATA磁盘设备写I/O操作过程信令图。
具体实施方式
为了使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
为了降低数据通信的延迟,保障高效率地利用物理链路并且提升系统的吞吐率,在SAS控制器对大规模磁盘进行管理的应用场景下,通常在控制器和特定的设备完成指定的I/O交换后,需要及时关闭连接,释放物理链路以供存储拓扑中的其他设备使用,避免长时间占用物理链路,从而造成资源浪费。因此,在SAS控制器与多个SSP设备的多I/O并发交互的过程中,提高SAS控制器和设备之间I/O通信的效率,对于提升数据存储业务的吞吐率是至关重要的。如果缩短SAS控制器从主机获取业务数据的等待时间,就能够减少物理链路资源的独占时间。
基于以上分析,本发明提出了一种高性能的SAS HBA的设计和实现方案,旨在降低SAS控制器获取业务数据的延迟,提升SAS物理链路的利用效率。图4是根据本发明的SASHBA设计架构及其写I/O操作的数据传输流程示意图。除了部署传统的PCIe Endpoint、片上总线和SAS控制器之外,本发明进一步在SAS HBA内部设置用于缓存主机业务数据的高速缓存Memory,如图4所示。系统软件负责高速缓存的管理和划分。在大规模磁盘阵列场景下,按照下游每个SAS磁盘或SATA磁盘设备的属性(如接口速率以及PCIe总线延迟等),系统软件可以从所述高速缓存中划分合适大小和数量的缓冲区块,预留给每个磁盘设备。
利用上述缓冲区块,HBA中的SAS控制器在I/O的命令阶段,可以从主机服务器的DDR预先获取I/O中的指定数量的业务数据,存储至为当前磁盘设备预留的缓冲区块。当SAS或SATA磁盘设备请求SAS控制器传输业务数据时,SAS控制器首先从该缓冲区块读取预先获取的部分业务数据,此时可以迅速启动数据帧的发送事务。以SSP场景为例,当SAS磁盘设备请求SAS控制器传输业务数据时,SAS控制器从缓冲区块读取预先获取的部分业务数据,此时可以迅速启动SSP DATA帧的发送事务。与此同时,SAS控制器通过PCIe总线向主机请求剩余的业务数据,实现流水化作业,以此来降低I/O传输延迟,提升系统效率。
在图4的HBA结构的基础上,参见图5的流程图,本发明提供的所述高性能基于SASHBA的数据传输方法包括:
步骤101:当SAS控制器向目标磁盘设备发送传输请求命令时,所述SAS控制器通过PCIe总线向主机内存发送业务数据预取请求。
结合图4所示的SSP场景下的写I/O数据传输流程,数据存储事务开始时,在过程[P.1]、[P.2]和[P.3]中,SAS控制器向SAS磁盘发送SSP COMMAND命令帧的同时,通过上游PCIe总线接口向服务器主机DDR内存发送预取请求,读取主机DDR中指定数量的业务数据。具体地,SAS控制器通过片上总线向HBA的PCIe Endpoint发起读数据类型的总线事务请求,PCIe Endpoint将HBA内部总线读事务翻译成PCIe标准协议的内存读取请求,通过PCIe总线发送至主机侧的PCIe RootComplex。主机侧的PCIe RootComplex解析来自HBA的PCIeMemory读取请求,将其翻译为主机的系统总线读事务,以读取DDR内的业务数据。
步骤102:所述SAS控制器接收从所述主机内存中预取的所述业务数据,并将所述业务数据缓存在所述SAS HBA的缓冲区块中,所述缓冲区块与所述目标磁盘设备的I/O通道相对应。
在过程[D.1]、[D.2]和[D.3],响应于所述预取请求,服务器主机从PCIe总线接口返回预取的业务数据,并将业务数据缓存至与上述磁盘设备I/O相对应的缓冲区块。具体地,服务器主机DDR经由主机系统总线返回业务数据信息至主机侧的PCIe RootComplex。PCIe RootComplex将主机端DDR返回的业务数据按照PCIe协议定义的Completion数据包格式封装,通过PCIe总线发送至HBA的PCIe Endpoint。然后所述PCIe Endpoint解析源自主机的Completion数据包,通过片上系统总线将业务数据缓存在HBA内部的高速缓存内与磁盘设备I/O相对应的缓冲区块。
步骤103:当所述目标磁盘设备向所述SAS控制器返回就绪命令时,所述SAS控制器将所述缓冲区块中所缓存的所述业务数据直接传输到所述目标磁盘设备。
在图4的过程[R.3],当SAS磁盘准备就绪,并且向SAS控制器发送SSP XFER_RDY帧以向SAS控制器请求数据时,SAS控制器查询HBA内部的高速缓存中当前SAS磁盘设备的I/O通道对应的目标缓冲区块,以请求业务数据。在过程[B.1]和[B.2],由于HBA内部的高速缓存中对应SAS磁盘的缓冲区已经预存有当前I/O的业务数据,因此SAS控制器可以立即启动SSP DATA帧的数据发送事务,具体包括将业务数据按照SAS标准协议要求封装成SSP DATA帧格式,并将数据帧传输至SAS磁盘设备。同时,还可以通过PCIe总线继续向主机请求当前I/O剩余的业务数据,实现流水线作业。举例而言,当SAS控制器将业务数据的第n数据块传输至SAS磁盘设备时,还可以并行地执行步骤101,即向主机发出第n+1数据块的预取请求,从而在第n数据块发送完毕的同时,将第n+1数据块在SAS控制器提前准备就绪,实现业务数据的不间断传输。
其中,HBA内部的高速缓存的管理和分配可以由系统软件来执行。与所述目标磁盘设备的I/O通道相对应的缓冲区块的数量可以是一个或多个。优选地,系统软件可以基于磁盘设备的属性以及SAS控制器读取主机DDR数据的延迟,分配特定数量和大小的缓冲区块,提供I/O业务数据的片内缓存,如图6所示。每个缓冲区块设置有相关联的磁盘设备标识,以及I/O通道的标识等。在同一时刻,每个SAS磁盘设备可能存在并发运行的多个I/O,相应地,设备的多个并发I/O按照预定义策略来共享当前设备分配的缓冲区块。所述预定义策略例如可以是先到先得、高权重优先等。
在本发明优选的实施例中,可以根据磁盘设备的物理链路速率来确定缓冲区块的大小。即以能够抵消SAS控制器读取主机DDR数据的延迟为依据来划分合适的缓冲区块。按照SAS标准协议,SAS/SATA物理链路传输1KB数据帧的耗时T为:
T=(1024+帧封装开销)*8*编码开销/物理链路速率+握手开销
因此,假定下游的SAS类型磁盘#1的物理链路速率12Gbps、8B/10B编码,则SAS总线传输1KB数据耗时大约为1微秒。典型地,如果上游PCIe总线速率为16Gbps,通常SAS控制器读取主机DDR数据的延迟大约为2微秒。因此,至少需要在HBA内部为SAS磁盘#1的每个I/O分配2KB大小的缓冲区块,存储预先读取的I/O业务数据,以抵消SAS控制器访问主机DDR数据的延迟。
同理,假定下游SATA类型磁盘#2的物理链路速率为6Gbps、8B/10B编码,SATA总线传输1KB数据耗时大约1微秒,则需要为SATA磁盘#2的每个I/O分配1KB大小的缓冲区块。
与图2的写I/O操作过程相对应,图7示出了采用本发明的技术方案后,典型的SAS类型磁盘设备的写I/O业务加速场景。
首先,SAS控制器向SAS磁盘发送SSP COMMAND命令帧,请求将业务数据存储到SAS磁盘的指定扇区。与此同时,通过上游PCIe总线接口向服务器主机DDR发送预取请求,读取指定数量的业务数据,例如2KB,并存储到HBA内部的高速缓存中与当前SAS磁盘I/O对应的缓冲区块;
然后,SAS磁盘内部控制逻辑解析收到的SSP COMMAND命令帧,预留内部缓存区、执行磁盘目标扇区的有效性检查等任务。根据磁盘内部所处的不同状态,通常此阶段耗时几十微秒到几毫秒。准备就绪后,SAS磁盘发送SSP XFER_RDY帧至SAS控制器,请求SAS控制器开始传输业务数据;
SAS控制器查询HBA内部的高速缓存,获取当前SAS磁盘对应I/O的缓冲区块,例如图6所示DEV.1:IO.1,如果缓冲区块存储有业务数据,则读取目标缓冲区块内的业务数据,例如2KB,并按照SAS协议规定格式封装成SSP DATA帧,然后发送至SAS磁盘。与此同时,SAS控制器通过上游PCIe总线并行地请求服务器主机DDR获取剩余业务数据。在典型场景下,SAS控制器读取HBA本地高速缓存的延迟大约为0.2微秒;
此时,接收数据完成,SAS磁盘返回SSP RESPONSE帧至SAS控制器,完成一次完整的I/O传输。
可见,当SAS磁盘发送SSP XFER_RDY帧请求SAS控制器传输业务数据时,SAS控制器已经提前完成了访问主机内部DDR的业务数据的工作,能够将预取的业务数据直接转发到对应的SAS磁盘,防止了SAS控制器与SAS磁盘之间的物理链路资源独占现象。
针对SATA类型的磁盘,依此类推,图8和图9分别示出在采用本发明的技术方案前后,典型的SATA类型磁盘的写I/O业务的场景。如图8所示,当SATA将DMA SETUP FIS发送到SAS控制器时,SAS控制器还需要通过上游PCIe总线从主机DDR获取待存储业务数据。相比之下,如图9所示,采用本发明的实现方案,在SAS控制器接收到SATA磁盘返回的SATA D2H FIS的同时,即从服务器主机内部DDR预读取部分数据至HBA内部的高速缓存,从而当SATA磁盘通过DMA SETUP FIS帧请求SAS控制器下发数据时,SAS控制器直接读取HBA的本地高速缓存并实时发送SATA DATA FIS帧。可见,基于与SAS场景相似的原理,本发明对于SATA类型磁盘的I/O事务具有同样的延迟降低效果。
可见,本发明提出的基于SAS HBA的数据传输方法,通过从HBA高速缓存中为下游相应的磁盘设备划分缓冲区块,能够在存储设备链路建立之前提前预取主机DDR中的业务数据。使用本发明的技术方案,I/O事务的延迟能够从大约2微秒降低至大约0.2微秒,显著降低了业务数据从主机到磁盘设备的I/O传输延迟,也减少了SAS系统物理链路的空闲时间,提高了整个SAS HBA存储系统的吞吐率和性能,有效地改善了服务器系统用户的体验。
相应地,本发明在第二方面提供了一种基于SAS HBA的数据传输装置,包括:
预取单元,用于在SAS控制器向目标磁盘设备发送传输请求命令的同时,通过PCIe总线向主机内存发送业务数据预取请求;
缓存单元,用于接收从所述主机内存中预取的所述业务数据,并将所述业务数据缓存在所述SAS HBA的缓冲区块中,所述缓冲区块与所述目标磁盘设备的I/O通道相对应;
发送单元,用于当所述目标磁盘设备向所述SAS控制器返回就绪命令时,将所述缓冲区块中所缓存的所述业务数据直接传输到所述目标磁盘设备。
可以理解,上述实施例中描述的数据帧传输过程、元件拓扑结构和功能模块的数量仅为举例。本领域技术人员还可以根据使用需要,对以上多个实施例的结构特征进行容易想到的组合和调整,或适应性调整上述方法流程的个别步骤的参数或顺序,而不应将本发明的构思限制于上述示例的具体结构和步骤。
尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种基于SAS HBA的数据传输方法,其特征在于,包括:
在SAS控制器向目标磁盘设备发送传输请求命令的同时,所述SAS控制器通过PCIe总线向主机内存发送业务数据预取请求;
所述SAS控制器接收从所述主机内存中预取的所述业务数据,并将所述业务数据缓存在所述SAS HBA的缓冲区块中,所述缓冲区块与所述目标磁盘设备的I/O通道相对应;
当所述目标磁盘设备向所述SAS控制器返回就绪命令时,所述SAS控制器将所述缓冲区块中所缓存的所述业务数据直接传输到所述目标磁盘设备。
2.根据权利要求1所述的基于SAS HBA的数据传输方法,其特征在于,所述SAS控制器将所述缓冲区块中所缓存的所述业务数据直接传输到所述目标磁盘设备,进一步包括:
所述SAS控制器查询所述SAS HBA内部的高速缓存,确定所述高速缓存中与当前目标磁盘设备的I/O通道对应的目标缓冲区块,从所述目标缓冲区块中获取所述业务数据。
3.根据权利要求1所述的基于SAS HBA的数据传输方法,其特征在于,在将所述缓冲区块中所缓存的所述业务数据直接传输到所述目标磁盘设备之后,所述方法还包括:
通过所述PCIe总线向所述主机内存发送剩余业务数据的预取请求。
4.根据权利要求1所述的基于SAS HBA的数据传输方法,其特征在于,基于所述目标磁盘设备的属性以及所述SAS控制器读取所述主机内存数据的延迟,确定所述缓冲区块的数量和大小。
5.根据权利要求1所述的基于SAS HBA的数据传输方法,其特征在于,所述方法还包括,当所述目标磁盘设备存在并发运行的多个I/O通道时,所述并发运行的多个I/O通道按照预定义策略来共享为所述目标磁盘设备分配的缓冲区块。
6.根据权利要求1所述的基于SAS HBA的数据传输方法,其特征在于,所述目标磁盘设备的类型为SAS磁盘或SATA磁盘。
7.一种基于SAS HBA的数据传输装置,其特征在于,包括:
预取单元,用于在SAS控制器向目标磁盘设备发送传输请求命令的同时,通过PCIe总线向主机内存发送业务数据预取请求;
缓存单元,用于接收从所述主机内存中预取的所述业务数据,并将所述业务数据缓存在所述SAS HBA的缓冲区块中,所述缓冲区块与所述目标磁盘设备的I/O通道相对应;
发送单元,用于当所述目标磁盘设备向所述SAS控制器返回就绪命令时,将所述缓冲区块中所缓存的所述业务数据直接传输到所述目标磁盘设备。
8.根据权利要求7所述的SAS HBA的数据传输装置,所述发送单元进一步被配置成,查询所述SAS HBA内部的高速缓存,确定所述高速缓存中与当前目标磁盘设备的I/O通道对应的目标缓冲区块,从所述目标缓冲区块中获取所述业务数据。
9.根据权利要求7所述的SAS HBA的数据传输装置,所述发送单元进一步被配置成,在将所述缓冲区块中所缓存的所述业务数据直接传输到所述目标磁盘设备之后,通过所述PCIe总线向所述主机内存发送剩余业务数据的预取请求。
10.根据权利要求7所述的SAS HBA的数据传输装置,其特征在于,基于所述目标磁盘设备的属性以及所述SAS控制器读取所述主机内存数据的延迟,确定所述缓冲区块的数量和大小。
11.根据权利要求7所述的SAS HBA的数据传输装置,其特征在于,当所述目标磁盘设备存在并发运行的多个I/O通道时,所述并发运行的多个I/O通道按照预定义策略来共享为所述目标磁盘设备分配的缓冲区块。
12.根据权利要求7所述的SAS HBA的数据传输装置,其特征在于,所述目标磁盘设备的类型为SAS磁盘或SATA磁盘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310140211.4A CN116700604B (zh) | 2023-02-20 | 2023-02-20 | 一种基于sas hba的数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310140211.4A CN116700604B (zh) | 2023-02-20 | 2023-02-20 | 一种基于sas hba的数据传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116700604A true CN116700604A (zh) | 2023-09-05 |
CN116700604B CN116700604B (zh) | 2023-11-14 |
Family
ID=87839878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310140211.4A Active CN116700604B (zh) | 2023-02-20 | 2023-02-20 | 一种基于sas hba的数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116700604B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117389733A (zh) * | 2023-10-25 | 2024-01-12 | 无锡众星微系统技术有限公司 | 一种减少开关链开销的sas i/o调度方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102123318A (zh) * | 2010-12-17 | 2011-07-13 | 曙光信息产业(北京)有限公司 | 一种iptv应用的io加速方法 |
CN102160044A (zh) * | 2008-09-22 | 2011-08-17 | 美光科技公司 | PCIe接口上的SATA大容量存储装置仿真 |
CN103336745A (zh) * | 2013-07-01 | 2013-10-02 | 无锡众志和达存储技术股份有限公司 | 一种基于ssd缓存的fc hba及其设计方法 |
US8924610B1 (en) * | 2013-01-29 | 2014-12-30 | Pmc-Sierra Us, Inc. | SAS/SATA store-and-forward buffering for serial-attached-SCSI (SAS) storage network |
CN105007307A (zh) * | 2015-06-18 | 2015-10-28 | 浪潮(北京)电子信息产业有限公司 | 一种存储控制方法和系统 |
KR20160111144A (ko) * | 2015-03-16 | 2016-09-26 | 한국전자통신연구원 | 가상 데스크탑 서비스 시스템 및 상기 시스템에서 가상 디스크 이미지 파일을 관리하는 방법 |
CN113296704A (zh) * | 2021-05-27 | 2021-08-24 | 济南浪潮数据技术有限公司 | Sas hba卡固件日志的在线并行收集方法、装置及设备 |
-
2023
- 2023-02-20 CN CN202310140211.4A patent/CN116700604B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102160044A (zh) * | 2008-09-22 | 2011-08-17 | 美光科技公司 | PCIe接口上的SATA大容量存储装置仿真 |
CN102123318A (zh) * | 2010-12-17 | 2011-07-13 | 曙光信息产业(北京)有限公司 | 一种iptv应用的io加速方法 |
US8924610B1 (en) * | 2013-01-29 | 2014-12-30 | Pmc-Sierra Us, Inc. | SAS/SATA store-and-forward buffering for serial-attached-SCSI (SAS) storage network |
CN103336745A (zh) * | 2013-07-01 | 2013-10-02 | 无锡众志和达存储技术股份有限公司 | 一种基于ssd缓存的fc hba及其设计方法 |
KR20160111144A (ko) * | 2015-03-16 | 2016-09-26 | 한국전자통신연구원 | 가상 데스크탑 서비스 시스템 및 상기 시스템에서 가상 디스크 이미지 파일을 관리하는 방법 |
CN105007307A (zh) * | 2015-06-18 | 2015-10-28 | 浪潮(北京)电子信息产业有限公司 | 一种存储控制方法和系统 |
CN113296704A (zh) * | 2021-05-27 | 2021-08-24 | 济南浪潮数据技术有限公司 | Sas hba卡固件日志的在线并行收集方法、装置及设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117389733A (zh) * | 2023-10-25 | 2024-01-12 | 无锡众星微系统技术有限公司 | 一种减少开关链开销的sas i/o调度方法和装置 |
CN117389733B (zh) * | 2023-10-25 | 2024-04-26 | 无锡众星微系统技术有限公司 | 一种减少开关链开销的sas i/o调度方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116700604B (zh) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6247086B1 (en) | PCI bridge for optimized command delivery | |
US6108684A (en) | Methods and apparatus for balancing loads on a storage subsystem among a plurality of controllers | |
US11379374B2 (en) | Systems and methods for streaming storage device content | |
EP2630579B1 (en) | Unified i/o adapter | |
WO2011151859A1 (en) | Data transfer device and method of controlling the same | |
KR102367359B1 (ko) | 직렬 시스템 버스 인터페이스 및 직접메모리액세스 컨트롤러를 갖는 전자 시스템 및 그 동작 방법 | |
US20230017643A1 (en) | Composable infrastructure enabled by heterogeneous architecture, delivered by cxl based cached switch soc | |
US5416907A (en) | Method and apparatus for transferring data processing data transfer sizes | |
US8694698B2 (en) | Storage system and method for prioritizing data transfer access | |
CN116700604B (zh) | 一种基于sas hba的数据传输方法 | |
CN112199309B (zh) | 基于dma引擎的数据读取方法、装置和数据传输系统 | |
WO2023000770A1 (zh) | 一种处理访问请求的方法、装置、存储设备及存储介质 | |
WO2023103704A1 (zh) | 数据处理方法、存储介质和处理器 | |
CN115129625A (zh) | 外围设备中的增强的存储协议仿真 | |
CN117312201B (zh) | 一种数据传输方法、装置及加速器设备、主机和存储介质 | |
US7421520B2 (en) | High-speed I/O controller having separate control and data paths | |
CN114385534A (zh) | 一种数据处理的方法及装置 | |
CN116483553A (zh) | 计算设备、数据处理方法、系统及相关设备 | |
US7409486B2 (en) | Storage system, and storage control method | |
CN115811509A (zh) | 一种总线通信方法及相关设备 | |
Geoffray | Opiom: Off-processor I/O with myrinet | |
CN114415959B (zh) | 一种sata磁盘动态加速访问方法和装置 | |
JP4606998B2 (ja) | ネットワークキャッシュ装置およびプログラム | |
US7930445B2 (en) | Computer system using remote I/O and I/O data transfer method | |
JP2014167818A (ja) | データ転送装置およびデータ転送方法 |
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 |