一种非标准SATA接口的驱动方法和系统技术方案

技术编号:30644571 阅读:47 留言:0更新日期:2021-11-04 00:48
本发明专利技术公开了一种非标准SATA接口的驱动方法和系统,通过获取io并将io缓存至内存中,如果没有触发下发io的条件,就一直获取新的io并将这些io缓存至内存中,如果触发了下发io的条件,则将内存中的全部io合并为一个请求后,通过非标准控制器发送到硬盘中,此方法能够提高单次读写硬盘时携带的io数,提升了SATA数据的传输吞吐量,从而提高非标准SATA控制器读写硬盘的速率。硬盘的速率。硬盘的速率。

【技术实现步骤摘要】
一种非标准SATA接口的驱动方法和系统


[0001]本专利技术涉及数据存储
,特别涉及一种非标准SATA接口的驱动方法和系统。

技术介绍

[0002]SATA(Serial Advanced Technology Attachment)是串行高级技术附件,一种基于行业标准的串行硬件驱动器接口,标准的SATA控制器逻辑内部提供了完整命令集和NCQ队列功能。
[0003]现有缺少NCQ命令排序和命令队列的非标准SATA控制器在读写SATA硬盘时,速度很慢,远远达不到标准SATA控制器读写硬盘速度的水平。

技术实现思路

[0004]本专利技术旨在至少解决现有技术中存在的技术问题。为此,本专利技术提出一种非标准SATA接口的驱动方法和系统,能够提高非标准SATA控制器读写硬盘的速率。
[0005]本专利技术的第一方面,提供一种非标准SATA接口的驱动方法,包括以下步骤:
[0006]获取io,并将所述io存储于内存中;
[0007]若触发下发io的条件,则将所述内存中的所有所述io合并为一个请求后,通过非标准SATA控制器发送至SATA硬盘,以使所述SATA硬盘根据所述io执行对应操作。
[0008]根据本专利技术的实施例,至少具有如下技术效果:
[0009]获取io并将io缓存至内存中,如果没有触发下发io的条件,就一直获取新的io并将这些io缓存至内存中,如果触发了下发io的条件,则将内存中的全部io合并为一个请求后,通过非标准SATA控制器发送到硬盘中,此方法能够提高单次读写硬盘时携带的io数,提升了SATA数据的传输吞吐量,从而提高非标准SATA控制器读写硬盘的速率。
[0010]根据本专利技术的一些实施例,所述获取io,包括以下步骤:获取来自操作系统的bio;将所述bio划分为读方向io或写方向io。
[0011]根据本专利技术的一些实施例,所述将所述io存储于内存中包括:按照获取所述io的先后顺序依次将所述io存储于内存中。
[0012]根据本专利技术的一些实施例,所述下发io的条件为bio扇区非连续。
[0013]根据本专利技术的一些实施例,所述非标准SATA接口的驱动方法,还包括步骤:进行超时检测,若所述内存中存储的第一个所述io的存储时间超出阈值,则将所述内存中的所有所述io发送至SATA硬盘。
[0014]根据本专利技术的一些实施例,所述SATA硬盘为SATA固态硬盘。
[0015]本专利技术的第二方面,提供一种非标准SATA接口的驱动系统,包括:数据存储管理模块、数据存储控制模块以及SATA硬盘;所述数据存储管理模块用于将所述io存储于内存中,若触发下发io的条件,则将所述内存中的所有所述io合并为一个请求后发送至数据存储控制模块;所述数据存储控制模块,与所述数据存储管理模块通信连接,用于将所述请求发送
至SATA硬盘;所述SATA硬盘,与所述数据存储控制模块通信连接,用于根据所述请求执行对应操作。
[0016]根据本专利技术的实施例,至少具有如下技术效果:
[0017]如果没有触发下发io的条件,数据存储管理模块就一直获取io并将这些io缓存至内存中,如果触发了下发io的条件,则将内存中的全部io合并为一个请求后发送通过数据存储控制模块发送至硬盘中,此系统能够提高单次读写硬盘时携带的io数,提升了SATA数据的传输吞吐量,从而提高读写硬盘的速率。
[0018]根据本专利技术的一些实施例,所述下发io的条件为bio扇区非连续。
[0019]根据本专利技术的一些实施例,所述下发io的条件为所述下发io的时间间隔超过预设阈值。
[0020]本专利技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。
附图说明
[0021]本专利技术的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0022]图1是本专利技术实施例提供的一种非标准SATA接口的驱动方法的步骤图;
[0023]图2是本专利技术实施例提供的一种非标准SATA接口的驱动系统的结构示意图;
[0024]图3是本专利技术实施例提供的写入方向的分类排序算法;
[0025]图4是本专利技术实施例提供的读取方向的分类排序算法;
[0026]图5是本专利技术实施例提供的基于FPGA模块实现的非标准SATA控制器;
[0027]图6是本专利技术实施例提供的数据存储管理模块;
[0028]图7是本专利技术实施例提供的数据读写逻辑模块;
[0029]图8是本专利技术实施例提供的fio写入;
[0030]图9是本专利技术实施例提供的fio读取;
[0031]图10是本专利技术实施例提供的文件复制;
[0032]图11是本专利技术实施例提供的测试程序。
具体实施方式
[0033]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行完整地描述,显然,所描述的实施例仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0034]非另有定义,本专利技术所使用的所有的技术和科学术语与属于本专利技术的
的技术人员通常理解的含义相同。本专利技术中在本专利技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是在于限制本专利技术。
[0035]SATA(Serial Advanced Technology Attachment)是串行高级技术附件,一种基于行业标准的串行硬件驱动器接口,标准的SATA控制器逻辑内部提供了完整命令集和NCQ队列功能。标准SATA 2.0接口性能,理论速度能达到375MB/s。
[0036]在计算机系统中,中央处理器,内存和硬盘是最重要的三个硬件,中央处理器从硬盘中读取数据,交给内存,然后中央处理器再在内存中取数据进行处理,它们的存储读取速度是递增的。而硬件驱动器接口,就是连通内存和硬盘的一种接口。
[0037]所以想要提升计算机系统的运算性能,提升内存和硬件之间的数据传输速率是非常必要的,而想要提升内存和硬件之间的传输速率,可以从它们之间的接口入手,SATA就是这么一种接口。
[0038]由于兼容、设备硬件等方面的考虑,SATA控制器并不总是包含SATA协议中所有的命令集和功能,这些SATA控制器称为非标准SATA控制器,由于缺少某些命令集或功能,导致这些非标准SATA控制器在读写硬盘时,速度非常慢,拖累了计算机系统的运算性能。
[0039]为解决上述问题,本专利技术以一种由FPGA实现的非标准SATA控制器为例,此种SATA控制器逻辑内部只提供了ATA标准命令中的READ_DMA_EXT(0x25)、WRITE_DMA_EXT(0x35)、IDENTIFY_DEVICE(0xEC),无NCQ命令排序,无命令队列。
[0040]参照图1,本专利技术的第一方面,提供一种非本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种非标准SATA接口的驱动方法,其特征在于,包括以下步骤:获取io,并将所述io存储于内存中;若触发下发io的条件,将所述内存中的所有所述io合并为一个请求后,通过非标准SATA控制器发送至SATA硬盘,以使所述SATA硬盘根据所述请求执行对应操作。2.根据权利要求1所述的一种非标准SATA接口的驱动方法,其特征在于,所述获取io,包括以下步骤:获取来自操作系统的bio;将所述bio划分为读方向io或写方向io。3.根据权利要求1所述的一种非标准SATA接口的驱动方法,其特征在于,所述将所述io存储于内存中包括:按照获取所述io的先后顺序依次将所述io存储于所述内存中。4.根据权利要求1所述的一种非标准SATA接口的驱动方法,其特征在于:所述下发io的条件为bio扇区非连续。5.根据权利要求1至4任一项所述的一种非标准SATA接口的驱动方法,其特征在于,还包括步骤:进行超时检测,若所述内存...

【专利技术属性】
技术研发人员:熊帮发童乐李旭勇朱国定喻政
申请(专利权)人:湖南兴天电子科技有限公司
类型:发明
国别省市:

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

1