存储设备和用于该存储设备的缺陷扫描的方法与流程

文档序号:17850623发布日期:2019-06-11 22:10阅读:348来源:国知局

本申请基于并要求于2015年10月1日提交的美国临时专利申请No.62/235,734的优先权,其全部内容在此通过引用而被包含。

技术领域

在此所述的实施例通常涉及存储设备和用于该存储设备的缺陷扫描的方法。



背景技术:

缺陷扫描通常对于诸如硬盘驱动器等的存储设备执行。缺陷扫描是将数据写入诸如磁盘的存储介质、测试数据是否可以被正常读取以及检测其中数据由于缺陷(诸如介质上的刮痕等)而不能被正常读取的缺陷扇区的操作。缺陷扇区的物理地址被登记在缺陷列表中,缺陷扇区被设置为不能用。为了将缺陷扇区设置为不能用,当在缺陷扫描后逻辑地址被映射到物理地址时,可执行所谓的跳过处理。在跳过处理中,逻辑地址不被映射到缺陷扇区的物理地址,但被分配给在缺陷扇区后的扇区的物理地址。可选地,为了将缺陷扇区设置为不能用,可执行所谓的置换处理。在置换处理中,通过在存储介质中准备备用区、将应当映射到缺陷扇区的物理地址的逻辑地址映射到备用区中的正常扇区的物理地址、以及使用备用区中的正常扇区替代缺陷扇区,来避免使用缺陷扇区。即使在存储介质中包括若干缺陷扇区,存储设备也可通过使用缺陷扫描而作为合格物品运送。

随着存储容量提高,缺陷扫描所需的时间也增加,整个制造过程时间也增加。

这种缺陷扫描可不仅对具有磁盘的存储设备执行,而且可对具有诸如固态驱动器(SSD)等的半导体存储器的存储设备执行。



技术实现要素:

一般地,根据实施例,执行缺陷扫描方法以检测存储设备的存储介质中的缺陷部分,存储介质包括多个存储区,多个存储区包括第一存储区和第二存储区。缺陷扫描方法包括:在存储设备连接到主机前,扫描存储介质的一部分存储区以检测其中的缺陷部分,所扫描的存储区包括第一存储区,未扫描的存储区包括第二存储区;将逻辑地址映射到第一存储区的非缺陷部分的物理地址;在存储设备连接到主机后,扫描第二存储区以检测其中的缺陷部分;以及将逻辑地址映射到第二存储区的非缺陷部分的物理地址。

根据本实施例,可缩短检验过程。

附图说明

图1是根据第一实施例的硬盘驱动器的框图;

图2A、图2B和图2C示意性地示出在第一实施例中执行的缺陷扫描期间在物理地址区和逻辑地址区中的数据;

图3是示出根据第一实施例的由硬盘驱动器的主控制器执行的过程的流程的流程图;

图4是示出在第一实施例中由主机执行的过程的流程的流程图;

图5A、图5B、图5C和图5D示意性地示出在第二实施例中执行的缺陷扫描期间在物理地址区和逻辑地址区中的数据;

图6是示出根据第二实施例的由硬盘驱动器的主控制器执行的过程的流程的流程图。

具体实施方式

以下将参考附图描述各种实施例。附图和相关的说明被提供以说明实施例,但并不限制本发明的范围。

一般地,在交货前,在检验过程期间对存储介质的整个区域执行缺陷扫描。然而,根据一个或多个实施例,在交货前,在检验过程期间,对存储介质的区域的一部分执行缺陷扫描,并在交货后,对剩余区域执行缺陷扫描。因此,可减少在交货前的检验时间。数据很少会在交货后立即写入存储介质的整个区域。此外,数据读取操作或数据写入操作并不连续执行24小时。相反,数据读取操作和数据写入操作根据需要执行。也就是说,存在数据读取操作或数据写入操作不执行的空闲时段。缺陷扫描可以在该空闲时段执行。换言之,针对存储介质的“某一区域”的缺陷扫描不需要在交货前执行,可以直到数据第一次写入“该某一区域”才执行。

存储设备包括用于将表示介质上的物理位置的物理地址和由主机管理或由主机的应用使用的逻辑地址进行相互转换的对应表。主机很少用随机逻辑地址写入数据,而通常顺序地写入数据,同时根据某一规则改变逻辑地址,例如,顺序地增加逻辑地址。为此,对于其中逻辑地址是0到预定地址(例如,与最大物理地址的大约三分之一对应的逻辑地址)的区域的缺陷扫描在交货前根据测试程序执行。除了缺陷扫描之外,执行测试程序以执行读/写通道的调整、伺服调整、TPI/BPT调整等。在结束了对部分区域的缺陷扫描后,运送存储设备,并可在适当的期间执行针对剩余区域的缺陷扫描,例如,在交货后的空闲时段。因此,可缩短在交货前缺陷扫描所需的时间。

在交货前执行缺陷扫描的区域的大小和位置可基于对制造时间的请求(短时间请求)、交货后写入条件的预测、在空闲时段的频率预测等而确定。例如,区域不限于包括逻辑地址为0的区域,而可以是包括逻辑地址的最大值的区域或者是包括在0和最大值之间的中间值的逻辑地址的区域。此外,在交货前,缺陷扫描可不仅针对物理地址是连续的一个区执行,而且可针对多个区域执行。

(第一实施例)

图1是根据第一实施例的硬盘驱动器的框图。硬盘驱动器包括磁盘11、主轴电机(SPM)13、致动器14、驱动器IC 15、磁头IC 16、主控制器20等。主控制器20连接到主机设备(未示出,在下文中简称为主机)。

磁盘11是磁记录介质,其包括用于磁记录数据的写入面。磁盘11通过主轴电机13高速旋转。主轴电机13由驱动器IC 15所提供的电流(或电压)驱动。

磁盘11的写入面包括例如多个同心磁道。可选地,磁盘可包括一个螺旋磁道。磁盘11还包括在径向方向上延伸并在圆周方向上以规律的间隔离散排列的多个伺服区域11B。每一个磁道11A中位于相邻伺服区域10B之间的区域用作数据区域11C。每一个磁道11A中的伺服区域10B也称为伺服帧。在每一个磁道11A中由伺服区域11B和与伺服区域11B相邻的数据区域11C形成的区域也称为伺服扇区。数据区域11C包括多个某一尺寸(例如512字节)的数据扇区。

伺服数据和可重复偏摆(RRO)修正数据被写入伺服区域11B中。RRO修正数据用于修正由于磁道的中心线的未对准而引起的伺服数据的错误,其中伺服数据沿着该中心线从正圆写入。在磁头的位置处,伺服数据基于RRO修正数据来进行修正,磁头根据修正后的伺服数据被放置在目标磁道。

写磁头12A和读磁头12B被设置以对应于磁头11的写入面。写磁头12A和读磁头12B附着在被放置在从致动器14的臂14A延伸的悬架14B的顶端的滑动器12上。致动器14由音圈电机(VCM)14C驱动。音圈电机14C由驱动器IC 15所供给的电流(或电压)驱动。通过由音圈电机14C驱动执行器14,写磁头12A和读磁头12B在磁盘11的径向方向上在磁盘11上移动,以便画出圆弧。

参照图1说明了包括单个磁盘12的硬盘驱动器,但可以堆叠多个磁盘。参照图1描述了在一个面上包括写入面的磁盘11,但是,可以在磁盘11的两个面上提供写入面,并可设置一对磁头以面向各自的写入面。

驱动器IC 15在主控制器20中的伺服控制器23的控制下驱动主轴电机13和音圈电机14C。

磁头IC 16也被称为磁头放大器,并包括放大由读磁头12B读取的信号(即,读取信号)的可变增益放大器(VGA)。磁头IC 16将从主控制器20(更具体地,主控制器20中的读/写通道21)输出的写入数据转变为写入电流,并将写入电流输出到写磁头12A。

主控制器20由其中在单个芯片上集成了多个元件的系统LSI实现。主控制器20包括读/写通道21、硬盘控制器(HDC)22、伺服控制器23和存储单元24。

读/写通道21处理与磁盘11上的读写操作相关的信号。例如,读/写通道21将由磁头IC 16放大的读信号转变为数字数据,并从数字数据中解码读数据。读/写通道21从数字数据中提取伺服数据。读/写通道21基于所提取的伺服数据来产生伺服扇区定时信号。伺服扇区定时信号与包括伺服区域11B的伺服扇区对应,其中,所提取的伺服数据被写入伺服区域11B中(更具体地,包括伺服区域11B的伺服扇区中的数据区域11C)。读/写通道21对从硬盘控制器22传递来的写入数据进行编码,并将编码后的写入数据传递到磁头IC 16。

硬盘控制器22通过主机接口(存储接口)连接到主机。主机使用硬盘驱动器作为它自己的存储设备。主机和硬盘驱动器被内置在电子设备中,诸如个人计算机、摄影机、音乐播放器、移动终端、移动电话或打印设备。硬盘控制器22用作主机接口控制器,其将信号传递到主机,以及接收从主机传递的信号。更具体地,硬盘控制器22接收从主机传递的命令(写入命令、读取命令等)。硬盘控制器22控制主机与存储单元24之间的数据传递。硬盘控制器22还用作磁盘接口控制器,其控制通过读/写通道21、磁头IC 16、写磁头12A和读磁头12B向磁盘11写入数据和从磁盘11读取数据。

伺服控制器23通过驱动器IC 15控制主轴电机13和音圈电机14C。磁头12放置在磁盘11上的目标磁道的目标位置,伺服控制器23基于由读/写通道21提取的伺服数据来控制音圈电机14C。音圈电机14C的控制等效于致动器14的旋转角度的控制。

硬盘控制器22和伺服控制器23的每一个都包括微处理器单元(MPU;未示出)。这些MPU通过执行用于硬盘控制器22和伺服控制器23的控制程序来实现硬盘控制器22和伺服控制器23的功能。这些控制程序被存储在闪速存储器24A中。单个MPU可通过时分来执行控制程序。

存储单元24包括闪速存储器24A和RAM 24B。闪速存储器24A是可擦写的非易失性半导体存储器。被配置为实现包括硬盘控制器22和伺服控制器23的主控制器20的功能的控制程序被预先存储在闪速存储器24A中的存储区域的一部分中。控制程序包括用于在交货前和交货后控制缺陷扫描的程序。逻辑地址和物理地址的对应表以及关于缺陷扫描的状态的信息(表明缺陷扫描完成区域的物理地址、逻辑地址等)也被存储在闪速存储器24A的存储区域的另一部分中。RAM 24B的存储区域的至少一部分被用作硬盘控制器22和伺服控制器23的工作区域。存储单元24被内置在图1的主控制器20中,但是存储单元24可以集成在不同于主控制器20的芯片中。

参考图2A、图2B和图2C来描述根据第一实施例的缺陷扫描的概述。由于一个硬盘驱动器可包括多个磁盘,因此,扇区位置由包括柱面数、磁头数和扇区数的物理地址指定。柱面是由具有相同磁道数的多个区域形成的圆柱形区域,柱面数标识磁道。磁头数标识包括所使用的写入面的磁盘。假设硬盘驱动器中的存储介质(磁盘)的物理地址具有用0表示的最小值和用PBAmax表示的最大值。

在交货前的制造过程中,主控制器20基于在闪速存储器24A中存储的缺陷扫描程序,在从0开始顺序地增加物理地址时,执行每一个扇区的写入/读取测试并运行,以检测不可读的缺陷扇区。主控制器20在存储在闪速存储器24A中的缺陷列表中登记缺陷扇区的物理地址。

主控制器20在增加物理地址时执行缺陷扫描,如果物理地址变为预定地址,则主控制器20结束缺陷扫描。预定地址例如是物理地址的最大值PBAmax的大约三分之一。主控制器20跳过逻辑地址到缺陷扇区的物理地址的映射,不将逻辑地址映射到缺陷扇区的物理地址,以便阻止缺陷扇区在缺陷扫描后在逻辑地址被映射到物理地址时使用。当该区域的缺陷扫描结束时,硬盘驱动器被交货。由此,缩短交货前的制造过程。

图2A示意性示出在交货时的物理地址空间和逻辑地址空间。此时的缺陷扫描完成区域中的物理地址的最大值用PBAscan1表示。PBAscan1例如是物理地址的最大值PBAmax的大约三分之一。主控制器20将逻辑地址0到LBAmax1映射到物理地址是0到PBAscan1的缺陷扫描完成区域。由于主控制器20不将逻辑地址映射到缺陷扇区的物理地址,因此,在本实施例中,如果存在缺陷扇区,则逻辑地址的最大值LBAmax1变得比缺陷扫描完成区域中的物理地址的最大值PBAscan1小。逻辑地址被映射到缺陷扫描已经完成的物理地址0到PBAscan1,并且该区域是主机可访问的用户数据区域。包括缺陷扇区的物理地址的缺陷列表被存储在闪速存储器24A中。缺陷扫描完成区域中的(物理和逻辑)地址的最大值也存储在闪速存储器24A中。

因此,对于每一个磁盘(写入面),在交货时的用户数据区域中的逻辑地址的最大值LBAmax1由于缺陷扇区通常是不同的。最近,具有多个硬盘驱动器的诸如数据中心的存储系统通常不采用磁盘阵列(RAID)配置,存储系统中的硬盘驱动器的存储容量可以是不同的。

主控制器20在交货后的空闲时段在缺陷扫描未执行区域中执行缺陷扫描。缺陷扫描从缺陷扫描未执行区域中与缺陷扫描完成区域相邻的扇区开始顺序执行,即,比物理地址PBAscan1大的下一个物理地址的扇区。图2示出缺陷扫描已经在缺陷扫描未执行区域的中间完成的状态下的物理地址空间和逻辑地址空间。此时,缺陷扫描完成区域中的物理地址的最大值PBAscan2和与物理地址的最大值PBAscan2对应的逻辑地址LBAmax2比图2A中示出的PBAscan1和LBAmax1大。在这种情况中,同样,逻辑地址的最大值LBAmax2可以比对应的物理地址PBAscan2小缺陷扇区的值。

另外,当缺陷扫描在空闲时段进行时以及当最大物理地址PBAmax的缺陷扫描已经完成时,存储介质的整个物理地址区域(除了缺陷扇区以外)变成如图2C所示的用户数据区域。用户数据区域的逻辑地址是0到LBAmax3。

当主机向驱动器提供查询命令时,驱动器向主机返回物理地址的最大值PBAmax和缺陷扫描完成区域中的物理地址的最大值PBAscan。主机能够知道映射到PBAscan的LBAmax和用户数据区域的逻辑地址范围,并进一步通过从PBAscan中减去写入区域的物理地址的最大值来知道可执行写入的剩余容量。当使用包括多个磁盘的硬盘驱动器时,或者当应用使用多个硬盘驱动器的系统时,如果数据被写入优先级比具有小的剩余容量的磁盘/驱动器高的具有大的剩余容量的磁盘/驱动器,则增加具有小的剩余容量的磁盘/驱动器的空闲时段,磁盘/驱动器的缺陷扫描可提高。因此,即使在交货时没有完成整个区域的缺陷扫描,当数据写入磁盘/驱动器中时,也可减小缺陷扫描未在磁盘/驱动器执行和不能执行写入的可能性。

图3是示出在交货后主控制器20中执行的过程的流程的流程图。图3所示的过程在硬盘驱动器的电源打开时在后台执行。在步骤102中,主控制器20确定读或写的命令是否已经从主机接收到。如果已经接收到命令(在步骤102中的“是”),则主控制器20在步骤104中根据命令执行过程,并且过程返回到步骤102。

如果还没有接收到命令(在步骤102中的“否”),则在步骤106中,主控制器20确定在接收到上一个命令后是否已过去了某一时段。如果该某一时段还没有过去(在步骤106中的“否”),则过程返回到步骤102。

如果该某一时段已经过去了(在步骤106中的“是”),则认为空闲时段开始,在步骤108中,主控制器20开始缺陷扫描。缺陷扫描在比缺陷扫描完成区域中的物理地址的最大值(在交货时的PBAscan1)更大的下一个物理地址的扇区执行。在完成了一个扇区的扫描后,增加物理地址,并顺序地扫描后续的扇区。缺陷扫描持续进行,直到从主机接收到下一个命令。为此,在步骤110中,主控制器20确定是否已经从主机接收到命令。如果还没有接收到命令(在步骤110中的“否”),则过程返回到步骤110,控制器20继续进行缺陷扫描。

当从主机接收到命令时(在步骤110中的“是”),在步骤112中,主控制器20结束缺陷扫描。逻辑地址被映射到缺陷扫描结束的扇区的物理地址。此时,跳过逻辑地址到缺陷扇区的物理地址的映射。

假设步骤112的缺陷扫描完成状态是图2B所示的状态。主控制器20将缺陷扫描完成区域中的物理地址的最大值PBAscan和与缺陷扫描完成区域中的物理地址的最大值PBAscan对应的逻辑地址LBAmax分别更新为PBAscan2和LBAmax2。主控制器在闪速存储器24A中存储此时的地址和逻辑地址/物理地址的对应表。

在步骤114中,主控制器20执行与在步骤110中从主机接收到的命令对应的过程。在步骤116中,主控制器20确定是否已经接收到结束指令。如果已经接收到结束指令(在步骤116中的“是”),则主控制器20结束过程,或者如果没有接收到结束指令(在步骤116的“否”),则重复步骤102后的过程。因此,当没有从主机接收到命令的时段是某一时段时,执行缺陷扫描,直到接收到命令,即,在空闲时段期间。为此,存储设备可在未执行存储介质中的整个区域的缺陷扫描的情况下交货,可缩短制造过程。

图4是示出在主机中执行的过程的流程的流程图。图4中所示的过程也在主机的电源被打开时在后台执行。在步骤202中,主机确定是否存在应当被写入硬盘驱动器的写入数据。如果存在写入数据,则在步骤204中,主机向硬盘驱动器发送命令以查询用户数据区域的物理地址的最大值PBAscan和硬盘的整个区域的物理地址的最大值PBAmax。响应于该命令,硬盘驱动器向主机返回PBAscan、PBAmax和与最大值对应的逻辑地址。

主机可以仅访问缺陷扫描已经完成的区域。为此,在步骤206中,主机将写入地址(逻辑地址)设置为小于或等于分配给缺陷扫描完成区域的最大物理地址PBAscan的逻辑地址LBAmax的地址。在步骤208中,主机向驱动器发送写入命令(即,写入数据和写入地址)。在驱动器中,执行写入命令,数据被写入与图3所示的步骤104或步骤114中的写入地址(逻辑地址)对应的物理地址的扇区。在步骤210中,主机确定驱动器的处理是否已经结束。如果处理还没有结束,则流程返回到步骤202。

根据本实施例,通过在交货前只对一部分区域执行缺陷扫描并在交货后在空闲时段对剩余区域执行缺陷扫描,可以缩短检验过程。由于主机将缺陷扫描已经完成的区域的逻辑地址设置为数据将被写入的写入地址,因此,即使整个区域的缺陷扫描在写入操作时没有完成,也不会发生问题。由于硬盘驱动器的存储容量变成缺陷扫描已经完成的区域的容量,因此,随着时间的推移,用户数据区域增加。同样,缺陷扫描已经完成的区域相对存储介质的整个区域的比例随着时间的推移而增加。

一般地,登记为具有缺陷的缺陷扇区被替换,整个区域的一部分(例如,整个区域的大约2%)被预先保护为备用区域以用于替换。如果缺陷扇区的总尺寸大于或等于备用区域,则驱动器作为缺陷产品而不交货。即使所检测到的缺陷扇区的数量小并且备用区域有剩余,剩余区域也可被留下作为未使用区域,记录区域可被浪费。根据本实施例,由于缺陷扇区被跳过,因此,用户数据区域是通过从整个物理地址空间减去缺陷扇区的总大小而获得的区域。虽然备用区域的大小在每一个驱动器中不同,但备用区域没有被浪费。

在本实施例中,在交货前已经执行了缺陷扫描的区域是物理地址从0到最大值的大约三分之一的区域,但是,该区域可根据各种情况自由地设置。例如,当空闲时段长或者将被写入的数据量小时,区域可小于该区域,例如,可以是物理地址从0到最大值的大约八分之一的区域,或者可以是不包括逻辑地址0的区域。

(第二实施例)

将参考图5A、图5B、图5C和图5D描述根据第二实施例的缺陷扫描。硬盘驱动器的整个配置与图1所示的根据第一实施例的相同。如图2所示,在第一实施例中在交货前进行了缺陷扫描的区域是物理地址从0到PBAscan1是连续的区域,用户数据区域与物理地址从0到PBAscan1的区域对应。相反,在第二实施例中,两个区域在交货前进行缺陷扫描。如图5A所示,在交货时存在物理地址从0到PBAscan1的第一缺陷扫描完成区域和物理地址从PBAscan-end1到PBAmax的第二缺陷扫描完成区域。换言之,在交货时的存储介质的整个区域包括物理地址从PBAscan1到PBAscan-end1的缺陷扫描未执行区域和位于该缺陷扫描未执行区域的两侧的两个缺陷扫描完成区域。第一缺陷扫描完成区域包括物理地址0,第二缺陷扫描完成区域包括物理地址PBAmax。进一步地,第一缺陷扫描完成区域可比第二缺陷扫描完成区域大,并且尺寸可以是任意的。

在第一实施例中,在交货时的用户数据区域是与缺陷扫描已经完成的物理地址从0到PBAscan1的区域对应的逻辑地址从0到LBAmax1的区域。在第二实施例中,在交货时的用户数据区域是与物理地址的整个范围对应的逻辑地址从0到LBAmax的范围。为此,如果主机在交货后写入数据,则写入地址可以是逻辑地址0到LBAmax。

当主机在交货后写入数据时,如果写入地址是在与物理地址PBAscan1到PBAscan-end1(其是缺陷扫描未执行区域)对应的逻辑地址范围内,如图5B所示,则数据应当被写入的扇区部分A的逻辑地址被重新分配。换言之,扇区部分A的逻辑地址已经被映射到缺陷扫描未执行区域的物理地址,但是被重新映射到第二缺陷扫描完成区域中的物理地址。

当主机写入数据时,如果写入地址是在与第二缺陷扫描完成区域对应的逻辑地址范围内,则逻辑地址不被重新映射,但数据被写入该地址。硬盘驱动器被配置为记录主机写入数据的区域。如果用于写入数据的地址是用户数据区域,则硬盘驱动器从用于向缺陷扫描未执行区域写入的区域中排除该地址,其中该区域是第二缺陷扫描完成区域的固有对象。可选地,硬盘驱动器可禁止主机访问该区域,以防止写入地址变成与第二缺陷扫描完成区域对应的逻辑地址范围,并且如果整个区域的缺陷扫描已经完成,则可使整个区域能够通过主机访问。

类似地,如果写入地址对应于在与物理地址从PBAscan1到PBAscan-end1的区域(即,缺陷扫描未执行区域)对应的逻辑地址范围内的扇区部分B,则扇区部分B的逻辑地址被重新映射到第二缺陷扫描完成区域中的物理地址。

因此,根据第二实施例,与第一实施例相比,在交货后的用户数据区域(即,在其中写入地址可被分配的范围)扩大了。如果写入数据的尺寸小于或等于第二缺陷扫描完成区域的剩余可写入空间的尺寸,则数据肯定可被写入。

如果空闲时段已经到来,则开始缺陷扫描未执行区域的缺陷扫描。在第一实施例中,缺陷扫描对于未执行区域的更小的物理地址的扇区顺序地执行,但是在第二实施例中,缺陷扫描以下面的方式执行。如图5B所示,如果写入命令在空闲时段之前没有执行,则缺陷扫描在未执行区域中的更小的物理地址的扇区中顺序地执行。在空闲时段之前,如果接收到向与缺陷扫描未执行区域对应的地址的写入命令,则写入地址被重新映射到第二缺陷扫描完成区域的物理地址,并且第二缺陷扫描完成区域的剩余可写入空间减小,如图5B所示。然后,缺陷扫描在与第二缺陷扫描完成区域相邻的缺陷扫描未执行区域的更高的物理地址的扇区中顺序地执行,以确保第二缺陷扫描完成区域的剩余量,如图5C所示。

图5C示出在执行缺陷扫描以扩大第二缺陷扫描完成区域时的地址空间。

此后,再次对于下一个空闲时段执行缺陷扫描。然而,如果在下一个空闲时段之前没有发出向与缺陷扫描未执行区域对应的逻辑地址的写入命令,则在未执行区域的更小的物理地址的扇区中顺序地执行缺陷扫描,如图5D所示。在此,如图5D所示,如果在扫描的区域中存在缺陷,则更新逻辑地址到与该缺陷对应的物理地址的映射,以使得没有逻辑地址被映射到物理地址。

图6是示出在交货后由主控制器20执行的过程的流程的流程图。

在步骤402中,主控制器20确定是否已经从主机接收到命令。如果已经接收到命令(在步骤402中的“是”),则在步骤404中,主控制器20确定所接收的命令是否是写入命令。如果所接收的命令不是写入命令(在步骤404中的“否”),则在步骤406中,主控制器20确定所接收的命令是否是读取命令。如果所接收的命令不是读取命令(在步骤406中的“否”),则在步骤408中,主控制器20执行另一个命令处理,然后过程返回到步骤402。

如果所接收的命令是读取命令(在步骤406中的“是”),则在步骤410中,主控制器20确定读取地址是否是与缺陷扫描未执行区域对应的逻辑地址,即,数据是否从缺陷扫描未执行区域读取。如果读取地址是与缺陷扫描未执行区域对应的逻辑地址,则在步骤414中,控制器20向主机通知“访问除了缺陷扫描完成区域以外的区域的错误”。如果读取地址不是与缺陷扫描未执行区域对应的逻辑地址(在步骤410中的“否”),则在步骤412中,控制器20执行读取过程,然后过程返回到步骤402。

如果所接收的命令是写入命令(在步骤404中的“是”),则在步骤416中,主控制器20确定写入地址是否是与缺陷扫描未执行区域对应的逻辑地址,即,数据是否被写入缺陷扫描未执行区域。如果写入地址不是与缺陷扫描未执行区域对应的逻辑地址(在步骤416中的“否”),则在步骤419中,主控制器20执行对于与由写入命令指定的逻辑地址对应的物理地址的写入过程。

如果写入地址是与缺陷扫描未执行区域对应的逻辑地址(在步骤416中的“是”),则在步骤418中,主控制器20将写入地址(逻辑地址)重新映射到第二缺陷扫描完成区域的物理地址,如图5B所示。在步骤419中,主控制器20执行对于第二缺陷扫描完成区域的物理地址的写入过程。

在步骤419的写入过程之后,主控制器20再次执行步骤402的命令接收的确定。

如果没有接收到命令(在步骤402中的“否”),则在步骤422中,主控制器20确定是否在上一个命令的接收后已经过去了某一时段。如果某一时段还没有过去(在步骤422中的“否”),则过程返回到步骤402。

如果已经过去了某一时段(在步骤422中的“是”),则空闲时段被认为开始,在步骤424中,主控制器20确定是否第二缺陷扫描完成区域的自由空间是否减少,如图5B所示。如果自由空间没有减少(在步骤424中的“否”),则在步骤428中,主控制器20对于缺陷扫描未执行区域的更小的物理地址的扇区(在第一缺陷扫描完成区域的一侧)顺序地执行缺陷扫描,与第一实施例类似。如果自由空间减少了(在步骤424中的“是”),则在步骤426中,主控制器20对于缺陷扫描未执行区域的更高的物理地址的扇区(在第二缺陷扫描完成区域的一侧)顺序地执行缺陷扫描。

然后,在步骤430中,主控制器20确定是否从主机接收到命令。如果没有接收到命令(在步骤430中的“否”),则过程返回到步骤430,主控制器20继续缺陷扫描。

当从主机接收到命令时(在步骤430中的“是”),在步骤432中,主控制器20结束缺陷扫描。假设步骤432的缺陷扫描完成状态是图5C所示的状态。主控制器20更新缺陷扫描未执行区域的物理地址的最小值PBAscan和最大值PBAscan-end。主控制器20在闪速存储器24A中存储此时的地址和逻辑地址/物理地址的对应表。

在步骤434中,主控制器20执行根据从主机接收到的命令的过程。在步骤436中,主控制器20确定是否已经接收到结束指令。如果已经接收到结束指令(在步骤436中的“是”),则主控制器20结束过程。如果没有接收到结束指令(在步骤436中的“否”),则过程返回到步骤402。

根据第二实施例,通过在交货前对两个区域执行缺陷扫描、然后在交货后在空闲时段对剩余区域执行缺陷扫描,可缩短交货前的检验过程。如果在交货后接收到的写入命令的逻辑地址被映射到缺陷扫描未执行区域的物理地址,则写入地址(逻辑地址)被重新映射到两个缺陷扫描完成区域中的任意一个中的物理地址,并执行写入命令。如果空闲时段经到来并且缺陷扫描完成区域中的任意一个的尺寸从初始尺寸减小,则执行缺陷扫描以扩大缺陷扫描完成区域。因此,缺陷扫描完成区域中的任何一个可在任何时间被维持在某一尺寸。另外,即使写入命令的地址在缺陷扫描未完成区域中,也可执行写入命令。

在交货前进行了缺陷扫描的两个区域不需要在缺陷扫描未执行区域的两侧存在。可存在至少两个缺陷扫描未执行区域,至少一个缺陷扫描完成区域可被夹在缺陷扫描未执行区域之间。

另外,在交货前进行了缺陷扫描的区域的数量不限于两个,也可以是一个或至少三个。

在上述实施例中,硬盘驱动器(HDD)作为示例提出,但是,这些实施例也可应用于具有非易失性半导体存储器的固态驱动器(SSD)或者SSD和HDD的混合驱动器。

在此描述的系统的各种模块可被实现为软件应用、硬件和/或软件模块、或者一个或多个计算机(诸如服务器)上的组件。尽管各种模块单独说明,但它们可共享相同的基本逻辑或代码的一部分或全部。

尽管已经描述了某些实施例,但这些实施例只以实例的方式给出,而并不意在限制本发明的范围。实际上,在此所述的新颖的实施例可以各种其它形式体现;而且,在不脱离本发明的精神的情况下,可以对在此所述的实施例的形式进行各种省略、替换和改变。所附的权利要求及其等同意在覆盖这样的形式或修改,以落入本发明的范围和精神内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1