用于可移动媒体的驱动器指示机制的制作方法

文档序号:6760724阅读:167来源:国知局
专利名称:用于可移动媒体的驱动器指示机制的制作方法
技术领域
本发明涉及用于可移动媒体的驱动器指示机制。
背景技术
一些电子系统包括可以将数据存储在可移动存储媒体上的存储驱动器。因为存储媒体是可移动的,所以该存储媒体上的数据可以被一个或多个存储驱动器写入。而且,存储媒体的一个或多个部分(例如扇区)可能发生故障。故障可能是由存储媒体本身或由驱动器存取存储媒体时导致的。所期望的是具有可以用来诊断这种故障的信息。

发明内容
本发明涉及一种可使用可移动存储媒体(32)的系统(20),包括存储驱动器(30),设为容纳可移动存储媒体,该可移动存储媒体包括多个可单独寻址单元;以及中央处理单元(“CPU”)(24、36),配置为执行代码(38)以使CPU将数据写入存储媒体的可寻址单元(70)并且也将标识值(72)写入可寻址单元,该标识值表示系统或存储驱动器的身份,该标识值将系统或存储器与可和该存储媒体一起使用的其他系统或存储驱动器区分开。
本发明还涉及一种方法,包括由存储驱动器将数据(86)写入可移动存储媒体上的可寻址单元;以及由存储驱动器将第一值(88)写入可寻址单元,第一值表示存储驱动器的身份。


为了详细描述本发明的示范实施例,现在将参考附图,附图中
图1示出根据本发明一个示范实施例的系统;图2图示在存储媒体上包括驱动器标识符表的一个实施例;图3示出图2的驱动器标识符表的一个示范实施例;图4示出存储媒体的一部分的示例,其中将标识各个存储设备的索引值存储在媒体的可寻址单元中;以及图5示出一个示范方法实施例。
符号表示和术语在下文和权利要求中使用某些术语来指代特定系统组件。如本领域技术人员会认识到的,计算机公司可采用不同名称指代组件。本文档不是要在名称不同但功能相同的组件之间区分。在下文论述和权利要求中,术语“包括”和“包含”是以开放方式使用的,因此应该解释为“包括,但不限于...”。再者,术语“耦合”表示间接或直接的电气连接。由此,如果第一设备耦合到第二设备,则连接可以是通过直接电气连接的,或经由其他设备和连接的间接电气连接的。动词“记录”表示将数据存储、写入或以其他方式传送到存储媒体上。术语“系统”指代两个或两个以上组件的集合,且可以用于例如指代计算机系统或计算机的子系统(例如存储驱动器)。
具体实施例方式
图1示出根据本发明一个示范实施例实施的系统20。如图所示,系统20包括耦合到存储驱动器30的主机22。一般来说,主机22将数据存储在存储驱动器上并从其中读取数据。同样地,主机22代表存储驱动器的数据源和/或代表从存储驱动器检索数据以供主机22或其他设备使用的消费者。主机22可以实施为计算机,存储驱动器30可以在计算机外部或可以位于计算机内部。主机22包括中央处理单元(“CPU”)24以及设备驱动程序26。设备驱动程序26包括由CPU24执行并可以促使CPU执行本文所描述的一个或多个操作的软件。主机22还可以包含为简明起见未专门示出的其他组件。
存储驱动器30设为接纳由人或机器(例如自动化的磁带驱动器加载系统)插入的可移动存储媒体32。存储媒体32可以包括任何适合类型的媒体,如光盘、磁盘、固态存储器等。而且存储媒体可以实施为“一次写入”媒体或“可重写”存储媒体。可以多次将数据记录到一次写入媒体上,但是一旦数据写入一次写入媒体(例如CD-R),则无法覆写或擦除此数据。可重写存储媒体上的数据可以被覆写或擦除。
存储驱动器30还可以包括CPU 36和可以由CPU 36执行的代码38。本文所描述的一个或多个操作可以由执行代码38的存储驱动器的CPU 36执行。而且,本文所描述的所有操作可以由代码38或设备驱动程序26来执行。在其他实施例中,可以由设备驱动程序26来执行本文所描述的一些操作,而由代码38来执行其他操作。下文论述涉及执行各种操作的代码38,但是在其他实施例中可以作为附加或作为备选来使用设备驱动程序26。
存储驱动器30还包括例如可以将相关联的驱动器唯一地标识以使其与所有其他驱动器相区别的驱动器标识符(“ID”)34的标识值。例如,驱动器ID可以包括驱动器制造商指定的序列号。在其他实施例中,驱动器ID 34可以对于至少一些但不是所有其他设备是唯一的。对于本文所公开的主题,驱动器ID 34使得相同存储媒体32在具有相同驱动器ID的两个或两个以上驱动器中被使用的概率足够低就足够了。在本公开文献中术语“唯一的”(如在“唯一的”驱动器ID中)在两种上下文场合中使用。可以将驱动器ID 34存储在存储驱动器30的非易失性存储器中,或可以硬编码到驱动器的电路中(例如驱动器中包含的印刷电路板上形成的走线上的唯一的图形中)。在一些实施例中,驱动器ID是永久的,并由此不可改变。驱动器ID是永久的或者至少在没有专门设备或处理过程的情况下难以更改也是适合的。在其他实施例中,驱动器ID包括主机22的标识符,该标识符替代驱动器的标识符或作为驱动器标识符的附加。而且,驱动器ID包括有关系统10或系统10的用户的公共可获得的信息。作为附加或作为备选,该驱动器ID可以包含依据用于保护系统10的用户的隐私的有效合法过程(例如搜索许可)以合法方式可检索的私人信息。
驱动器ID 34可以包括含有字母字符和/或其他符号的值。在至少一个实施例中,驱动器ID 34包括64-位值,其中含有制造商代码(16位)、型号代码(16位)以及序列号(32位)。可以为每个不同的存储驱动器制造商指定一个唯一的制造商代码,在16位的情况下,可能有超过65000个不同的制造商代码。还可以为存储设备的每个不同的型号(包括期望的修正版)指定一个唯一的型号代码。在16位用于型号代码的情况下,有超过65000个唯一可用的型号代码。序列号通常对于每个驱动器是唯一的。同样地,相同型号的且由相同制造商提供的两个驱动器仍具有不同的驱动器ID,因为驱动器ID的序列号部分不同。驱动器ID的三个部分(制造商代码、型号代码和序列号)可采用任何适合的方式连接在一起或采用其它方式组合在一起或一起使用。
在一个备选实施例中,特定型号的每个驱动器可以具有在运行在驱动器中的固件中编码的驱动器ID。在该实施例中,特定型号的每个驱动器具有相同的32位序列号。如果将固件升级,则驱动器序列号不会改变并仍可用。根据另一个实施例,驱动器ID由主机生成(例如由CPU 24根据设备驱动程序26生成)。当安装驱动器时,驱动程序可提示操作者输入编号,例如可以是印制在驱动器上但驱动控制器电子装置不可读的人可读的序列号。或者,只需人工输入制造商编号和型号编号,设备驱动程序26可生成随机的32位序列号。或者,设备驱动器可以根据与主机计算机相关联的唯一编号、如主机的固件(例如BIOS)的序列号生成序列号。如果设备驱动程序提供序列号,则设备驱动程序应该将该编号保存在非易失存储器中,或者在每次加载设备驱动程序时该驱动程序应采用确定性算法总是重建相同的编号。如果设备驱动程序提供序列号,则驱动器可以在初始化时从设备驱动程序获取驱动器标识。
一般来说,将记录的数据格式转化成可采用多种方式引用的可寻址单元。示例包括扇区、块、簇、磁道以及其他单元集合、如包含预定义扇区数的纠错码(“ECC”)块。在下文论述中,术语“可寻址单元”一般用于指代上文列出的任何存储单元或其他熟知的存储单元。
图2示出包括非用户数据区50和用户数据区54的存储媒体32的实施例。用户数据区54是驱动器30代表主机22上运行的应用程序存储数据的区域。例如,用户期望存储在存储媒体上的诸如文档或电子表格的文件由驱动器30存储在用户数据区。非用户数据区50一般不可用于存储用户数据,而是用于控制和管理目的。根据本发明的至少一些实施例,非用户数据区50可以包括存储媒体的“引入”区,如美国专利编号6330210中所公开的,通过引用结合于本文。在附图的实施例中,非用户数据区50包括驱动器ID表56。可以由驱动器的CPU 36在执行代码38的情况下对驱动器ID表56初始化。对驱动器ID表初始化可以包括预留非用户数据区50的一部分用于存储该表。
图3示出表56的一个实施例。表56配置为包含一个或多个项62。如图3所示,每个项62包括至少一个驱动器ID字段58。驱动器ID字段58设为存储与存储驱动器相关联的驱动器ID(如上述那些)。每个项62还可以包括索引字段60。同样地,表56中的每个项62可以包括索引值和对应的驱动器ID。例如索引值01h(“h”表示十六进制)对应于驱动器1的ID(DRIVE 1 ID)。相似地,索引02h和03h对应于DRIVE 2 ID和DRIVE 3 ID。可以预留至少一些项62以供将来用于存储驱动器ID。在图3所示的实施例中,在用于存储索引值的表中包括了索引字段60。在其他实施例中,在表56中未明确地包括索引字段60,而是基于引用的驱动器ID值在表中的位置来推出每个驱动器ID的索引值。例如,驱动器2是表的第二个项(在基于0的索引方式中),由此将驱动器2视为与索引值2相关联。
根据本发明的多种实施例,每次存储驱动器30以数据写入存储媒体32的可寻址单元时,存储驱动器的CPU 36在代码38的控制下还将索引值写入到以数据写入的该可寻址单元。写入到存储媒体32的可寻址单元的索引值对应于执行该写操作的特定存储驱动器30。写入可寻址单元的索引值对应于驱动器的ID,如通过驱动器ID表56所反映的。例如,如果驱动器1写存储媒体的可寻址单元,则除了数据外,驱动器1还将其对应的索引值写入可寻址单元。而且,被写入数据的存储媒体32的每个可寻址单元还被写入标识特定存储驱动器30的索引值,该特定存储驱动器30用于写可寻址单元。
图4示出存储媒体32的可寻址单元的一部分。图4所示的部分包括可寻址单元1、2、3、4和5。每个可寻址单元包括数据部分70和索引值72。索引值72可以作为与每个可寻址单元相关联的头的一部分而被包括。在一些实施例中,可寻址单元头可以包括地址、控制信息和其他信息以及一个或多个预留的字段。可以将预留的字段的其中之一用于存储索引值。在图4的示例中,使用驱动器1将数据写入可寻址单元1、2和5,并且分别使用驱动器2和3将数据写入到可寻址单元3和4。还可能使用驱动器1将数据写入可寻址单元3和4,但是驱动器2和3随后覆写已经存储在可寻址单元2和3中的任何数据,并相应更新相关联的索引值。索引值72标识最近写可寻址单元的驱动器。存储媒体32还可以结合“遗留驱动器”来使用。遗留驱动器是未配备为按如上所述将驱动器ID写入存储媒体的驱动器。而是,遗留驱动器可能导致如00h的预定值写入到可寻址单元中的位置,而如上所述由驱动器以其它方式将驱动器ID写入上述位置。
用驱动器ID(如果在表中实施的话)和索引值写入驱动器ID表56中的所有项是可能发生的。当发生此情况时并根据至少一些实施例,试图将数据写入可寻址单元的新存储驱动器(即它的驱动器ID尚未存储在表56中的驱动器)可能导致如00h或FFh的预留值而非驱动器ID被写入到一个或多个可寻址单元。在其他实施例中,一旦表56变满,则可以通过用户启动的维护过程来擦除表中的驱动器ID。然后可以将偏移值作为表的一部分存储或存储在存储媒体上的其他地方。该偏移值表示表56中项的数量,并用于计算附加驱动器的新索引。例如,如果表56具有32个项并且所有32个项均被驱动器ID占用(即32个不同驱动器的32个驱动器ID),则可以从表中擦除所有32个驱动器ID。在该示例中,偏移值将是32。当驱动器随后试图写可寻址单元时,作为表56擦除之后第一个写存储媒体的驱动器的该新驱动器将被指定索引值33,通过将偏移值32加初始索引值1计算得到该值。相似地,写存储媒体的下一个驱动器将被指定索引值33,依此类推。实际存储在表56中的索引值将是1、2、3等,但是当存取表56时加上偏移值32。
图5示出包括框80-88的对应方法。图5中所示的一个或多个操作可以同时或依次执行,并可以根据需要省略一个或多个操作。而且,可以按与图5所示不同的次序来执行这些操作。在框80中,用户将存储媒体32插入到存储驱动器30。在某个点,存储驱动器30可以对存储媒体32进行写操作。在框82,存储驱动器30通过检查存储媒体的表56判断特定驱动器先前是否已将数据记录到存储媒体32。如果存储驱动器30之前从未将数据写入到存储媒体32,则表56中将不存在存储驱动器30的驱动器ID。但是,如果存储驱动器30先前已将数据写入到存储媒体32,则表56中将存在存储驱动器30的驱动器ID。如果这是该特定存储驱动器30第一次将数据写入到该特定存储媒体32,则在框84,驱动器的CPU 36通过将驱动器的ID值添加到对应于先前未用的索引值的表中来修改该存储媒体的驱动器ID表56。例如此驱动器可以将其驱动器ID添加到表中索引值04h所对应的先前标记为“预留的”的项。如果驱动器已经对存储媒体32进行过写操作,则存储媒体的驱动器ID表应该已经包含列出该驱动器的ID的项,并在框83,驱动器的CPU将使用在驱动器ID表56中找到的与其驱动器的ID相关联的索引。在框86,存储驱动器30将数据写入到存储媒体32上的可寻址单元。在框88,驱动器30将其索引值写入到正在以数据写入的可寻址单元。在一些实施例中,框86和88作为一个操作来执行,即在一个写事务中将数据和驱动器ID写入到可寻址单元。在一些实例中,在写入数据之前不更新驱动器ID表,驱动器的CPU 36会记住新的索引值,并等待在取出存储媒体32或关闭系统电源之前的某个稍后时间点将新的索引值记录到驱动器ID表56中。在将数据写入到可寻址单元之前、过程中或之后但在从存储驱动器中取出媒体之前写入对驱动器ID表56的任何更改。
根据上面描述的实施例,索引值作为用于标识写可寻址单元的驱动器的标识值存储在可寻址单元中。可以使用表56来标识写过被赋予相关联的索引值的可寻址单元的特定驱动器。在一些实施例中,将与特定驱动器相关联的索引值存储在图3所示的表56中,但是在其他实施例中,从驱动器在该表中的位置推断出特定驱动器的索引值。在一些实施例中,可以将驱动器ID本身(或系统标识符)而非对应的索引值作为标识值写入到可寻址单元。在此后一个实施例中,不使用驱动器ID表(它协助索引值与驱动器ID之间的转换)。
在一些实施例(例如,遗留驱动器)中,可能没有驱动器标识值,而将预定值(例如00h)存储在媒体的可寻址单元中。还可能的是所有可能的驱动器标识符(例如索引值)已经在使用中,因此没有可供新驱动器使用的。在此情况中,使用预定值存储在媒体的可寻址单元中以代替驱动器标识索引值。
上面描述的实施例使存储媒体包含可用于标识哪些驱动器写过存储媒体的特定可寻址单元的核查信息。可采用多种方式使用该核查信息。例如,如果确定存储媒体32的可寻址单元是故障的并且可以确定写入该可寻址单元的索引值,则通过检查驱动器ID表可以判断哪个驱动器最后写过该特定可寻址单元。可寻址单元的故障可能由特定存储设备的问题导致,该特定存储设备可以由该存储设备写入可寻址单元中的信息和媒体的驱动器ID表唯一地标识出来。因此,在一些实施例中,计算机系统可以执行一种方法,该计算机系统具有处理器和适于实施该方法的执行软件。如此执行的该方法包括从可移动存储媒体32中检索信息,并基于该信息确定多个存储驱动器中的哪一个曾在该可移动存储媒体上存储数据。具体地说,该计算机系统接纳可移动存储媒体,并运行该计算机系统的软件以执行该方法来确定哪一个或哪一些存储驱动器先前将数据写入到该可移动存储媒体。上文解释的检索信息的操作包括从可移动存储媒体中检索表56。检索信息的操作还包括检索可移动存储媒体中先前以数据写入的可寻址单元中存储的任何索引值。该方法还要求检查表56并判断从存储媒体上的任何一个可寻址单元中读取的任何索引值是否包含与表中所含的任何索引值的匹配项。表中存储的驱动器ID提供一种机制,通过该机制可确定先前将数据写入存储媒体的可寻址单元且其索引值存储在此可寻址单元上的任何驱动器的身份。
一旦全面理解上述公开内容,多种变化和修改对本领域技术人员将是显而易见的。例如,本文提出的原理可应用于计算机系统以及如光盘录像机的单机存储设备。
权利要求
1.一种可使用可移动存储媒体(32)的系统(20),包括存储驱动器(30),设为容纳所述可移动存储媒体,所述可移动存储媒体包括多个单独可寻址单元;以及中央处理单元(“CPU”)(24、36),配置为执行代码(38)以使所述CPU将数据写入所述存储媒体的可寻址单元(70)并且也将标识值(72)写入所述可寻址单元,所述标识值表示所述系统或所述存储驱动器的身份,所述标识值将所述系统或所述存储器与可和所述存储媒体一起使用的其他系统或存储驱动器区分开。
2.如权利要求1所述的系统,其中所述可寻址单元包括扇区。
3.如权利要求1所述的系统,其中所述可寻址单元包括形成纠错码(“ECC”)块的预定数量的扇区。
4.如权利要求1所述的系统,其中所述存储媒体存储设为包含多个驱动器标识符(58)的表(56),每个驱动器标识符与不同的存储驱动器相关联。
5.如权利要求1所述的系统,其中所述标识值包括索引值(60),通过所述索引值可以访问所述系统或存储驱动器的标识符。
6.如权利要求1所述的系统,其中所述标识值包括所述系统或所述存储驱动器的标识符。
7.如权利要求1所述的系统,其中所述代码使所述CPU判断所述存储驱动器先前是否写过所述存储驱动器。
8.一种方法,包括由存储驱动器将数据(86)写入可移动存储媒体上的可寻址单元;以及由所述存储驱动器将第一值(88)写入所述可寻址单元,所述第一值表示所述存储驱动器的身份。
9.如权利要求8所述的方法,其中写入所述第一值包括写入索引值(72),所述索引值可用于获取所述存储驱动器的身份。
10.如权利要求8所述的方法,其中将所述第一值写入所述可寻址单元包括将所述第一值写入所述可寻址单元的头部。
全文摘要
一种系统(20)(以及相关的方法)包括存储驱动器(30)以及中央处理单元(“CPU”) (24、26)。存储驱动器设为容纳可移动存储媒体(32)。CPU配置为执行代码(38)以使CPU将数据写入存储媒体的可寻址单元(70)并且也将标识值(72)写入可导址单元。该标识值表示该系统或存储驱动器的身份。
文档编号G11B27/10GK1885425SQ20061009591
公开日2006年12月27日 申请日期2006年6月23日 优先权日2005年6月24日
发明者C·R·魏劳赫 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1