首页> 中国专利> 利用原生命令排队标记实现磁盘驱动器的信息保护

利用原生命令排队标记实现磁盘驱动器的信息保护

摘要

公开了一种磁盘驱动器,其包括磁盘和在磁盘上方被致动的磁头。所述磁盘驱动器进一步包括控制电路,其可操作用于从主机接收原生命令排队(NCQ)存取命令,其中所述NCQ存取命令包括至少一个逻辑块地址(LBA)和用于标识存取命令的标记字段。该标记字段被评估以确定逻辑块的尺寸,从而在磁盘驱动器和主机之间传送逻辑块。在一个实施例中,标记字段包括从一个数字范围选择的标记数字,该数字范围包括标识第一逻辑块大小的第一数字范围和标识第二逻辑块大小的第二数字范围。

著录项

  • 公开/公告号CN101751962A

    专利类型发明专利

  • 公开/公告日2010-06-23

    原文格式PDF

  • 申请/专利权人 西部数据技术公司;

    申请/专利号CN200910253356.5

  • 发明设计人 C·E·史蒂文斯;

    申请日2009-12-07

  • 分类号G11B20/10;G11B20/18;G11B5/48;

  • 代理机构北京纪凯知识产权代理有限公司;

  • 代理人赵蓉民

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 00:22:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-06-11

    授权

    授权

  • 2011-12-07

    实质审查的生效 IPC(主分类):G11B20/10 申请日:20091207

    实质审查的生效

  • 2010-06-23

    公开

    公开

说明书

背景技术

磁盘驱动器可以根据各种通信/接口协议进行制造,例如IDE、并行和串行SCSI以及并行和串行ATA。每个协议通常由标准委员会审查和批准,该标准委员会发布磁盘驱动器和操作系统制造商所遵守的规范。该规范包括用于执行写/读命令的参数,诸如起始逻辑块地址(LBA)、要写/读的逻辑块的数量和每个逻辑块要传递的数据字节的数目(例如,512、1024、2048等)。一些协议也可以指定与每个逻辑块一起传递的附加的保护信息字节,以便实现在写操作过程中从主机通过磁盘驱动器控制电路和缓冲区并可选地至磁盘以及之后在读操作期间可选地返回到主机的“端到端”保护。例如,SCSI磁盘驱动器可以实现T10协议(由国际信息科技标准委员会在www.incits.org限定),该协议规定了与每个逻辑模块一起传送的附加的8个字节的信息,所述8个字节的信息包括2个字节的CRC数据、2个字节的应用程序数据和4个字节的参考标记,该参考标记标识逻辑块的LBA。这种附加的保护信息有助于防止遭受当数据在主机和磁盘驱动器之间传送时可能发生的虚假数据错误以及磁盘驱动器中未知的固件错误,当数据被写入磁盘以及可选地从磁盘读取时未知的固件错误可能会无意地破坏数据或对数据进行误操作。

在串行ATA磁盘驱动器(由SATA-IO管理组织在www.serialata.org限定)的原生命令排队(NCQ)中使用的当前协议不包括用于实现端到端保护的保护信息。因此,在不需要标准委员会修改当前协议的情况下实现用于NCQ串行ATA磁盘驱动器的信息保护是令人期望的。

附图说明

图1A示出根据本发明的实施例的磁盘驱动器,其包括磁盘、在磁盘上方被致动的磁头和控制电路。

图1B是根据本发明的实施例由控制电路为接收NCQ存取命令而执行的流程图,该NCQ存取命令包括用于为每个逻辑块确定要传送的字节数量的标记字段。

图1C示出标记字段的示例格式,其中标记数字选自一数字范围,且每个范围标示一个逻辑块尺寸。

图2示出包括标记字段的NCQ读/写命令的示例格式。

图3示出标记字段的示例格式,其中标记数字选自一数字范围,并且每个范围指定逻辑块包含的保护信息的一种类型。

图4示出根据本发明的实施例的示例性控制电路,其包括用于处理保护信息的错误检测代码(EDC)生成器。

图5A是根据本发明的实施例的流程图,其中NCQ写命令被存储在命令队列中,并且之后利用旋转位置优化(RPO)算法被选择。

图5B是根据本发明的实施例的流程图,其中NCQ读命令被存储在命令队列中,并且之后利用RPO算法被选择。

具体实施方式

图1A示出根据本发明的一个实施例的磁盘驱动器,其包括磁盘2和在磁盘2上方被致动的磁头4。该磁盘驱动器进一步包括可操作用于执行图1B所示的流程图的控制电路6。原生命令排队(NCQ)存取命令被从主机接收,其中NCQ存取命令包括至少一个逻辑块地址(LBA)和用于标识该存取命令的标记字段。该标记字段被评估以确定逻辑块的大小(步骤10),以便在磁盘驱动器和主机之间传送逻辑块(步骤12)。图1C图示说明本发明的一个实施例,其中标记字段包括从一个数字范围选择的标记数字,该数字范围包括标识第一逻辑块尺寸的第一范围(0-N)和标识第二逻辑块尺寸的第二范围((N+1)-M)。

在图1A的实施例中,磁盘2包括限定多个数据磁道16的多个嵌入式伺服扇区140-14N。每个伺服扇区14i包括磁头定位信息,诸如用于在寻道过程中粗略定位的磁道地址和用于在写/读操作期间精确定位并追踪目标磁道的中心线的伺服脉冲串。控制电路6处理从磁头4发出的读信号18以将伺服扇区解调成位置错误信号(PES)。使用适当的补偿滤波器对PES进行过滤以产生施加到VCM 22的控制信号20,VCM 22使致动器臂24在减小PES的方向绕一枢轴旋转。

图2示出串行ATA NCQ读/写存取命令的常规格式(参见ATA8-ACS),其包括标记字段(COUNT字段的比特/位7∶3)。传统上,该标记字段用于将写/读数据与待处理的存取命令关联起来,所述存取命令由主机启动并由磁盘驱动器接收。由于存取命令可以在磁盘驱动器中排队,因此主机可以启动若干存取命令,这些存取命令由磁盘驱动器以任意适当的顺序处理(例如,利用旋转位置优化(RPO)算法)。当磁盘驱动器从命令队列选择命令以便执行时,标记字段用于将该命令与写/读数据相关联。以前,标记字段中的标记数字被简单地递增来标识每个新的存取命令。本发明扩展了对标记字段的限定,使得标记数字不仅标识待定的存取命令,而且它还标识与存取命令有关的逻辑块的尺寸。

在一个实施例中,逻辑块尺寸可根据逻辑块是否包括用于实现端对端保护的保护信息(在写操作期间从主机通过磁盘驱动器控制电路和缓冲区并可选地到达磁盘,之后在读操作期间可选地回到主机)而不同。在图3所示的示例性实施例中,标记字段包括在0和31之间的标记数字,其中标记数字0-5标识没有保护信息的存取命令(例如,512字节的逻辑块),标记数字6-10标识包括根据用户数据生成的校验数据(例如,CRC字节)的存取命令(例如,520字节的逻辑块),标记数字11-20标识包括校验数据和用于标识存取命令的LBA的LBA参考字段的存取命令(例如,520字节的逻辑块),标记数字21-31标识没有保护信息的存取命令(例如,520字节的逻辑块)。

在一个实施例中,主机对NCQ存取命令进行配置,该NCQ存取命令包括具有与存取命令的类型相对应的标记数字(即,逻辑块的尺寸)的标记字段。在一个实施例中,对于相同类型的每个新存取命令,主机简单地在对应范围内递增标记数字。在一个实施例中,主机可以查询磁盘驱动器以确定标记数字的范围和对应的逻辑块尺寸(以及保护信息是否被实现)。在另一个实施例中,主机可以使用标识存取命令的期望的标记数字范围来配置磁盘驱动器,期望的标记数字范围包括逻辑块尺寸和保护信息特征。在一个实施例中,如果具有特定逻辑块尺寸的存取命令更频繁地出现,则主机可偏移(skew)标记数字范围。

图4示出根据本发明的一个实施例的磁盘驱动器,其中图1A的控制电路6包括多个组件,包括用于执行控制程序的代码段的微处理器(uP)26。微处理器26通常通过uP缓存控制器30存取快速uP缓存28(例如,SRAM),缓存控制器30缓存正被执行的操作码和程序数据。控制程序的代码段通常存储在磁盘2上并且在磁盘驱动器被供电时加载到缓冲存储器32(例如,SDRAM)中。当微处理器26执行控制程序时,uP缓存控制器30将来自外部缓冲存储器32的对应操作码的脉冲串传递给uP缓存28,用于由微处理器26快速存取。由于缓冲存储器32通常与其它控制组件共享,因此缓冲控制器34实施仲裁算法以仲裁对缓冲存储器32的存取。可共享对缓冲存储器32的存取的示例性控制组件包括主机接口36、磁盘接口38、数据缓存控制器40和ECC控制器42,以上组件中的一个或多个可以与微处理器26集成在片上系统(SOC)中,或以独立的集成电路来实现。

在一个实施例中,控制电路6包括执行指令的微处理器26,这些指令可操作用于促使微处理器26执行流程图中描述的步骤和本文描述的其他功能。这些指令可存储在任何计算机可读介质中。在一个实施例中,它们可存储在微处理器外部的非易失性半导体存储器(未显示)中,或与微处理器集成在SOC中。在另一实施例中,这些指令被存储在磁盘2上并且在磁盘驱动器被供电时被读入易失性半导体存储器中。在又一实施例中,控制电路6包括适当的逻辑电路,诸如状态机电路。

主机接口36促进读操作和写操作期间磁盘驱动器和主机之间的数据传输。在写操作期间,主机接口36在将从主机接收的写数据写入到磁盘2之前将其在缓冲存储器32中分级(stage)。在主机实施数据路径保护的实施例中,主机接口36使用EDC生成器40A根据从主机接收的写数据(可选地和LBA)生成校验数据。由主机接口36生成的校验数据与和写命令一起接收的校验数据相比校,以验证写数据是无错误(errorfree)地从主机接收的。EDC生成器40A可包括任意适当的电路,诸如用于生成适当校验数据(如循环冗余校验(CRC)数据等)的适当多项式生成器。主机接口36将写数据和校验数据(可选地以及LBA)存储在缓冲存储器32中。微处理器26通常执行调度算法(例如,RPO算法),以在适当的时候执行写命令,例如,当磁头4接近与写命令对应的目标数据扇区时。

磁盘接口38使用HDA执行实际接口功能,以将存储在缓冲存储器32中的数据写入到磁盘2上。当执行写命令时,磁盘接口38从缓冲存储器32读取写数据,并可使用EDC生成器40B根据写数据(可选地和LBA)生成校验数据。之后,磁盘接口38将存储在缓冲存储器32中的校验数据与所生成的校验数据进行比较以检测是否有错误发生。如果没有检测到错误,则磁盘接口38通过将写数据写入到磁盘2上的目标数据扇区来执行写操作,所述写数据可能包括也可能不包括校验数据(可选地和LBA)。

在读操作期间,磁盘接口38从LBA所标识的数据扇区读取数据,该数据是从主机接收的。如果校验数据不是存储在磁盘2上,则磁盘接口38可以利用EDC生成器40B根据读数据(可选地和LBA)生成校验数据,并且之后将该数据和校验数据存储在缓冲存储器32中。当主机接口36准备向主机传送数据时,主机接口36从缓冲存储器32读取数据并利用EDC生成器40A根据该数据(可选地和LBA)生成校验数据。主机接口36将存储在缓冲存储器32中的校验数据与所生成的校验数据进行比较以检测是否有错误发生。如果没有检测到错误,则主机接口36将数据传送给主机,并且如果主机实施数据路径保护,则主机接口36还将校验数据传送给主机。

ECC控制器42对从磁盘2读取的数据以及在缓冲存储器32中分级的数据实施适当的错误校正算法。在一个实施例中,磁盘接口36在根据该数据(可选地和LBA)生成校验数据之前等待,直到ECC控制器42完成对在缓冲存储器32中分级的数据的校正。通过这种方式,在对经校正的数据扇区执行读操作期间生成EDC数据。在可替代的实施例中,当从磁盘2读取数据时,磁盘接口38生成校验数据并将校验数据存储在缓冲存储器32中。如果ECC控制器42对缓冲存储器32中的数据作随后的校正(例如,使用软件ECC算法),则ECC控制器42利用任何适当技术更新对应的校验数据。例如,由ECC控制器42生成的校正符号可用于更新校验数据,以反映对在缓冲存储器32中分级的数据所作的校正。

图5A示出了根据本发明的一个实施例用于实现NCQ写命令的流程图。当磁盘驱动器从主机接收NCQ写命令(步骤44)时,该命令被存储在命令队列中(步骤46)而不是被立即执行。如果写缓存被使能,则评估写命令的标记字段(步骤48)以从主机请求写数据的对应逻辑块并将该写数据缓存到图4的缓冲器32中。控制电路6还评估标记字段以确定将从主机接收的逻辑块的尺寸,以及可选地评估逻辑块是否包括校验数据。参见图3的实施例,如果写命令的标记在0-5或21-31的范围内,则从主机接收的(多个)逻辑块不包括校验数据,并且如上所述,控制电路6可在内部生成校验数据并且将该校验数据附加到(多个)逻辑块。如果标记在6-10或11-20的范围内,则从主机接收的(多个)逻辑块包括如上参照图4所述被处理的校验数据。

控制电路6执行适当的调度算法(例如,RPO算法)以在最佳时间从命令队列选择NCQ写命令(步骤50)。在一个实施例中,排队的命令的标记可以通过调度算法进行评估,从而有助于以优先顺序排列命令(即,标记范围可被分配不同的优先级)。当从命令队列选择写命令时,控制电路6将(多个)LBA转换为对应的(多个)物理块地址PBA(步骤52),并且之后将逻辑块写到磁盘2上对应的(多个)数据扇区(步骤54)。如果写缓存被禁能,则在从命令队列选择写命令后,控制电路6评估标记以从主机请求写数据,之后将该写数据写入到磁盘。

图5B示出了根据本发明的一个实施例用于实现NCQ读命令的流程图。当磁盘驱动器从主机接收NCQ读命令(步骤56)时,该命令被存储在命令队列中(步骤58)而不是被立即执行。通过这种方式,控制电路6可执行适当的调度算法(例如,RPO算法),以在最佳时间从命令队列选择NCQ读命令(步骤60)。如上所述,调度算法可以评估排队的命令的标记,从而有助于以优先顺序排列命令。

当从命令队列中选择读命令时,控制电路6评估标记字段以确定要从磁盘读取并传送给主机的逻辑块的尺寸(步骤62),包括是否基于上述标记范围和每个逻辑块一起传送校验数据。控制电路6将命令中的(多个)LBA转换成(多个)PBA(步骤64),并从对应的数据扇区读取逻辑块(步骤66)。之后,控制电路6使用标记字段向主机传送逻辑块(步骤68)。也就是说,标记字段用于通知主机被传送的逻辑块对应于之前被主机启动的特定读命令。如果读命令的读数据被缓存,则控制电路6可立即执行读命令,采用的方式是利用标记字段将缓存的数据传送到主机,而不是把命令排在命令队列中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号