当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于用单个命令对多个不连续地址范围的传送进行排队的方法和系统技术方案

技术编号:7151792 阅读:277 留言:0更新日期:2012-04-11 18:40
公开了用于在单个命令内对多个不连续地址范围的传送进行排队的方法和系统。系统的实施例包括系统处理器、用于存储数据和可执行软件的存储器,和用于接收存储在系统存储器中的传送命令的存储设备。主机控制器接口驱动器由一个或更多个系统处理器执行,并且从存储设备传送请求中收集多个不连续地址范围,对每一个不连续范围将起始地址和要传送的数据的数量记录在已标记命令列表中。将已标记命令列表中的地址范围的数量和已标记传送的操作码记录在一命令中,并且将所述命令和所述已标记命令列表存储在该存储设备的命令表中。将存储器中命令表的基地址和已标记命令列表的偏移量记录在存储在命令队列的命令头中。

【技术实现步骤摘要】
【国外来华专利技术】
本公开总体上涉及访问硬盘和/或非易失性存储器的领域。具体地说,本公开涉及在单个命令内对多个非连续地址范围的传送进行排队。
技术介绍
在现代计算系统中可以采用各种存储设备来存储和访问软件和/或数据。通常这些存储设备可以包括诸如硬盘驱动器(HDD)的磁存储设备、诸如光盘(CD)的光存储盘、和闪速存储器固态驱动器(SSD)。在HDD中,信息被存储在高速旋转的磁盘上,并且由多个读/写磁头从盘片读取以及向盘片写入信息。微控制器控制磁头相对于盘片的运动,微控制器与外部接口进行通信并与磁盘高速缓存缓冲器一起工作。数据可以被存储在盘片的不同部分,并且当工作负载为随机或接近随机时,可能花费大量时间将磁头移动到盘片上的所需位置。重新排序写请求和读取先行(look-ahead read)能够明显提高HDD系统中的性能。逻辑区块寻址(LBA)通常用于指定在存储设备中数据区块的位置。LBA可以是指地址或是指区块(例如,索引),其中第一区块为LBA = 0、第二区块为LBA= 1等等。LBA 方案替代了诸如磁柱-磁头-扇区(OB)方案这样的早期寻址方案,该方案向操作系统软件暴露了存储设备的物理细节。逻辑区块通常可以是512字节或IOM字节(ISO 9660 CD 使用2048字节的区块)。需要区块级I/O的系统调用将LBA定义传递给存储设备驱动器。 对于一些简单的情况,逻辑区块大小可以与能够从存储设备中读取或向存储设备写入的最小物理扇区的大小相同。在SSD中,基于NAND (或NOR)逻辑的闪速存储器将数据存储在微控制器管理的一些芯片中。SSD具有更快的读取时间(即,仅仅要找到和读取一个或多个所需单元),但是具有相对较慢的写入时间(即,在一个或多个单元中写入新数据之前必须从其中擦除现有数据)。因为不必担心旋转的磁盘或读/写磁头,所以其访问等待时间比HDD的访问等待时间要短。为了通过重新排序数据传送请求来实现更高的性能,已经引入诸如原生命令排队 (Native Command Queuing, NCQ)的排队技术(例如,在串行 ATA(Advanced Technology Attachment,高级技术附件)HDD中使用)来允许对读和写命令执行顺序进行优化。用于SSD 的排队的一个优点在于,多个命令能够被传送到设备从而使得在设备完成一组命令时不会被阻塞。还存在得益于让尽可能多的数据进行传送的大规模并行的实现。主机控制器接口(例如,用于串行ATA(SATA)设备的高级主机控制器接口(AHCI), 或用于闪速存储器存储设备的非易失性存储器主机控制器接口(NVMHCI))是一种硬件装置,其允许软件通过系统存储器结构与设备(例如主机总线适配器)进行通信,以便利用诸如NCQ这样的技术。许多现代操作系统,例如 Microsoft Windows 、Berkeley SoftwareDistribution (BSD,有时被称为Berkeley Unix)和Linux 为诸如AHCI这样的主机控制器接口提供支持,但是这种接口可能仅仅支持命令队列中有限数量的(即,32个)未执行 (in-flight)命令,并且对于每个完成的请求可能产生系统中断。通常,许多请求或命令能够容易地被一起满足和完成,并且随着设备性能的提高,它们能够具有处理更多命令的能力。另一方面,SCSI协议可以允许对多达264个命令进行排队,但是支持这种长队列的实现可能花费昂贵,并且协议开销会明显大于AHCI中的协议开销。迄今为止,还没有完全研究出用于为较大数量的存储设备传送请求进行服务的更有效的方法、结构和系统。附图说明本专利技术以示例的方式说明并且不受限于附图的图示。图1示出了用于用单个命令请求多个不连续地址范围的存储设备传送的系统的一个实施例。图2示出了用于用单个命令请求多个不连续地址范围的存储设备传送处理的一个实施例的流程图。图3示出了用于用单个命令请求多个不连续地址范围的存储设备传送处理的一个可替代的实施例的流程图。图如示出了用于说明存储设备传送的地址范围的数据结构的一个实施例。图4b示出了包括不连续地址范围的已标记传送命令和已标记命令列表的命令表数据结构的一个实施例。图如示出了用于说明存储设备已标记传送命令的数据结构的一个实施例。图4d示出了用于说明存储设备已标记传送命令的数据结构的一个可替代的实施例。图如示出了用于说明存储设备命令头的数据结构的一个实施例,该存储设备命令头包括存储器中的命令表的基地址和不连续的地址范围的已标记命令列表的偏移量。图4f示出了用于说明包括多个命令头的存储设备命令队列的数据结构的一个实施例。图4g示出了用于说明存储设备已标记传送命令的数据结构的一个可替代的实施例。具体实施例方式以下公开用于在单个命令内对多个不连续地址范围的传送进行排队的方法和系统。在一些实施例中,该系统可以包括一个或更多个系统处理器、用以存储数据和可执行软件的系统存储器,和用以接收存储在系统存储器中的传送命令的存储设备。在一些实施例中,当存储在系统存储器中的主机控制器接口驱动器(例如用于串行ATA(高级技术附件)设备的高级主机控制器接口(AHCI),或用于NAND闪速存储器存储设备的非易失性存储器主机控制器接口(NVMHCI))由一个或更多个系统处理器执行时,可以从存储设备传送请求中收集多个不连续的地址范围,并针对每个不连续的地址范围将起始地址和要传送的数据的数量记录在已标记命令列表中。还可以将在已标记的命令列表中的不连续的地址范围的数目的计数和在已标记传送的操作码记录在一命令中,并且将该命令和已标记的命令列表存储到存储设备的系统存储器中的命令表中。可以将命令表的存储器基地址和已标记命令列表的偏移量(offset)记录在命令头中,其被按照特定的主机控制器接口存储在命令队列中。在一些替代实施例中,以主机-设备寄存器FIS (帧信息结构),可以将已标记传送命令按照物理传送机制(例如,与在诸如,ATAPI (ΑΤΑ分组接口)命令和/或SATA NCQ命令这样的SATA命令中一样)传递给存储设备。已标记传送命令可以指示存储了多个不连续地址范围的已标记命令列表的可用性,存储设备可以要求其作为数据FIS(即,一个数据分组或多个数据分组)。由此,用单个命令对多个不连续地址范围的传送进行排队可以提供更有效和成本节省的方法、结构和系统,以服务更大数量的存储设备传送请求。在以下的描述中,阐述了很多具体细节。然而,应该理解的是,可以在没有这些具体细节的情况下实践本专利技术的实施例。在其它情况下,没有详细地示出公知的电路、结构和技术以免模糊对本说明书的理解。可以按照如下教导来实现本专利技术的这些以及其它实施例,并且显然,在不脱离本专利技术的更广的精神和范围的情况下,可以在下列教导中做出各种修改和改变。因此,本说明书和附图应被视为是举例说明,而不是限制性的意义,并且应仅仅按照权利要求及其等价物来衡量本专利技术。图1示出了用单个命令请求多个不连续地址范围的存储设备传送的系统101的一个实施例。系统101包括多个系统处理器中央处理器111、存储器控制处理器112、1/0控制处理器113、图形处理器114,也可以包括DMA (直接存储器存取)处理器。此外系统101 包括一些存储设备,诸如SSD 12本文档来自技高网...

【技术保护点】
1.一种用于对与单个命令相关联的多个传送进行排队的方法,所述方法包括:通过接口发送单个命令以请求存储设备传送多个不连续地址范围;以及在所述多个不连续地址范围的传送结束时接收单个中断。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:R·罗耶
申请(专利权)人:英特尔公司
类型:发明
国别省市:US

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

1