用于改进声频和视频数据转移的盘驱动器的制作方法

文档序号:7601778阅读:277来源:国知局
专利名称:用于改进声频和视频数据转移的盘驱动器的制作方法
技术领域
本发明领域涉及与硬盘驱动器间读、写声频/视频数据,具体而言,本发明涉及改进存储在盘驱动器上的声频/视频数据性能的方法和设备。
背景技术
通常,存储在盘驱动器上的数据有两类常规计算机数据和声频/视频数据,后者与存储在盘驱动器上的计算机可读信息相关,其中该数据与产生声频信号和/或视频信号的信息相应。借助于主计算机通过扬声器或监视器把它们翻译成声频和视频表示,使用这些声频和视频信号。声频和视频数据通常包含相对大量的信息,必须存储在计算机盘驱动器上以产生实际声音和图像。例如,约2小时片长的电影可需约4G(千兆)字节的计算机存储空间。
除消耗相当大的计算机存储空间外,该信息还必须以相当高的速率,从存储空间转移至主计算机。主计算机处理该信息并把它导向与扬声器或监视器相连的输出端。例如,主计算机可包含“机顶盒”,从连接电缆或其它通信导线接收电视信号。该机顶盒管理这些电视信号,最终向与之连接的电视机提供信号。
通常以特定方式,例如活动图像专家组(MPEG)标准方式或其某些变换标准接收输入信号。MPEG标准是用于视频和声频压缩的一系列演变标准。例如,MPEG-1是为约每秒1.5兆位传输速率的编码连续图像设计的。MPEG-2是为约每秒4兆位传输速率的编码交错图像设计的。MPEG-2用于数字TV广播和DVD。该机顶盒必须对数据进行解压缩或其它操作以在电视机上呈现该数据用于观看。此外,机顶盒有存储器,以便观看者可暂停观看过程,使输入信息存储在存储器中并可随后检视观看者漏看之处。这样,一旦重新启动观看过程,使用者可观看记录的信息。在该特定情况中,机顶盒必须管理两个电视信号或数据流存储在存储器的输入信号和从存储器导向用户的输出信号。
在逐幅图像观看时,机顶盒可能需向用户接口提供2个(也可能更多)的分开的数据流。自然,越来越多的信号导向电视时,机顶盒必须处理大量信息。当使用者正观看两个信号而瞬间暂停各信号时,结果机顶盒必须处理四个数据流两个输入信号和两个输出信号。从而,必须有效处理信息以避免损失输入信息或在向用户表示的信息中产生不希望的停顿。此外,如果信息存储在盘驱动器中,信息必须以较高速率从盘读取,使主计算机可实时,即以与记录的电影相关的速率处理信息并向使用者或观看者呈现。通常,读取信息不足够快会使产生的声频/视频表示包含间断或降低性能。
典型先进技术附件(Advanced Technology Attachment)(ATA)盘驱动器可用于存储该机顶盒管理的声频/视频信息。但是,不幸的是,通常ATA驱动器并不专为声频/视频数据设计,而实际上是设计成以常规计算机数据工作。常规计算机数据与声频/视频数据不同点在于,常规计算机数据的每一位对计算机处理的操作流程均是潜在关键的,而典型ATA驱动器设计成在存储和检索数据时对数据执行若干测试,以确保存储和检索正确信息。认为常规计算机数据“可靠性关键”,正确数据存储和检索比与获取这种可靠性关联的时间损失要重要得多。
反之,认为声频/视频数据时间或性能是关键的,如果某些声频/视频数据受损或不能读取,通常不会严重影响对使用者的显示。通常,这种数据损失仅对使用者表现为声频或视频信号闪烁或不能检测。但是,如果为试图确保数据可靠性而引起时间损失,从而显示信息有许多中断或跳跃,则所得到的显示对使用者而言是不令人满意的。
与某些用ATA盘驱动器的机顶盒及其管理许多数据流的能力有关的一个特定问题是,在各次从ATA盘驱动器请求数据之间,要损失大量开销时间。实际上,每次请求均降低了声频/视频数据操作处理的性能。
另一特定问题涉及在通信期间降低旋转,用为数据是顺序置于盘驱动器上的。

发明内容
本发明涉及管理与盘驱动器的存储媒体间进行声频/视频数据读写的盘驱动器系统和方法。关于本发明的一个方面,通过在一个命令期间,以较大数据块读写声频/视频数据,盘驱动器获得改进的性能。在已有技术盘驱动器一个命令期间,只能存取不足一个数据道,而本发明在一个数据存取命令期间可存取10个或10个以上数据道。增大存取的数据块规模可减少每次要求对驱动器执行命令时会产生的寻找时间和其它开销时间的损失。
根据本发明另一方面,通过限制常规数据读写存取期间产生的重试或纠错处理次数,而获得改进的声频/视频数据存取性能。减少或限制重试次数可显著增加声频/视频数据的通过量,错误数据对于声频/视频信号的操作或显示通常不是关键的。
阅读下述详细说明和审阅相关附图,本发明特有的这些和各种其它特点和优点将更显而易见。


图1是具有头盘组件和印刷电路板组件的本发明盘驱动器的分解图。
图2表示图1所示盘驱动器的电子器件,包含印刷电路板组件,其中具有用于与主计算机交换数据的处理元件。
图3是图2所示主计算机管理的四个数据流的逻辑表示。
图4是表示本发明一个方面的盘片的逻辑表示。
图5是在声频/视频数据读操作期间,在图1和图2所示的主计算机系统和印刷电路板组件的处理元件间通信和工作的流程图。
图6是在声频/视频数据写操作期间,在图1和图2所示的主计算机系统和印刷电路板组件的处理元件间通信和工作的流程图。
图7说明图5和图6所示一组重试策略检块的逻辑操作。
图8说明部分块规模监测操作。
较佳实施例的详细描述本发明的各实施例逻辑操作实现为(1)作为计算机系统上运行的计算机实施步骤序列和/或(2)作为计算系统中的互连设备模块。实施是根据实现本发明的计算系统所要求的性能进行选择的。从而,构成这里叙述的本发明各实施例的逻辑操作分别指操作、步骤或模块。
图1表示本发明的盘驱动器100。该盘驱动器100包含印刷电路板102、头盘组件部分104和盖板106。头盘组件部分104包含用毂110可绕固定轴112旋转地加以固定的多个盘片108、分离的音圈电机114,后者用于在旋转盘片108上移动一个或多个臂116,从而磁读写头118可进入盘片108的任何部分。印刷电路板102和板或顶盖106附于头盘组件104的基板120的相对测。该顶盖106贴合在音圈电机114、臂116和盘片108上。印刷电路板102用于把盘驱动器100连至主计算机系统(示出图2)并控制盘驱动器100的许多操作功能。
图2是连接头盘组件106和主计算机系统100的印刷电路板102的框图。本发明执行的许多操作是微处理器执行软件程序的结果。通常,程序分为执行特定任务或实现特定抽象数据类型的例行程序、程序、目标、部件、数据结构等。本领域技术人员理解,本发明可用其它计算机系统配置,如膝上型个人计算机、台式个人计算机、多处理器系统、基于微处理器或可编程的消费者电子设备、网络PC、小型机、大型机等来实施。最好,主计算机系统200是机顶计算机系统,如Microsoft公司制造的“Web TV”系统。
主计算机200具有至少一个中央处理单元(CPU)或微处理器202、存储系统204、输入装置(未图示)和如电视机(未图示)等的输出装置。此外,主计算机还包含直接存储器存取(DMA)控制器。这些部件经至少一个系统总线208加以耦联。
微处理器202设计是众所周知的,它包含暂存数据和指令的寄存器(未图示)群。微处理器202可具有各种体系结构中的任一种,这此体系结构包含(但不限于) Intell,Cyrix,AMD,IBM和Motorola公司目前生产的体系结构。
系统存储器204包含随机存取存储器(RAM)210和只读存储器(ROM)。除盘驱动器100(图1)外,主计算机系统存储器204可包含如软盘、磁带、光盘CCD、闪存等长期存储媒体形式的副存储器(未图示)和其它使用电、磁、光或其它记录媒体存储数据的装置。系统存储器204还可包括经输出装置显示图像的视频显示存储器。该存储器可包含具有各种存储容量的备择的各种部件,如盒式磁带存储卡、视频数字盘、伯努里式盒式磁带、随机存取存储器、只读存储器及可用于示范工作环境的各种其它设备。存储系统及其相关的计算机可读媒体中的存储装置提供对计算机可读指令、数据结构、程序和其它计算机系统数据的非易失性存储。
系统总线208可是任一种总线结构类型,如使用任何总线体系结构的存储器总线、外围总线或本地总线。
输入和输出装置与主计算机系统200通信。该装置可是键盘、鼠标、话筒、触模输入板、触摸屏和手持遥控器等。输出装置可是显示器、打印机、扬声器、电视机、触模屏等。某些装置,如网络接口或调制解调器可用作输入和/或输出设备。输入和输出设备可经系统总线208连接计算机。
计算机系统200还包括操作系统和通常是一个或多个应用程序。操作系统包括一组程序,用于控制系统200的工作、资源分配,向用户提供图形用户接口,便于存取本地或远端信息,操作系统还包含某些实用程序,如电子邮件系统。
主计算机系统200接收输入端214的信号。输入端214可连接各类通信线路,如电话、电缆、ISDN、DSL等。最好,主计算机系统可以约每秒10-20兆位速率接收至少两个数据流220和222。经输入端214接收的信息由微处理器202和DMA控制器206管理。接收的信息最好转移至盘驱动器100(图1)的印刷电路板102中的微处理器230。当信息经接收并存储在盘片108中时,主计算机系统也可以类似速率(即10-20兆位/秒)经输出端216把两个输出数据流224和226导至输出设备(未图示)。因相对同时地进行上述动作,在图3逻辑显示中,数据传递速率是约各数据流220、222、224和226的传递速率的4倍。
图3表示在计算机系统200处理时,四个数据流的流向。两个数据流220和222表示两个独立的信道或数据流,作为输入或连至主计算机系统的输入端,而输出数据流224和226表示导至主计算机系统输出端的信号。输入和输出数据流间的间隔表示引入的相对于T0时刻的延时,T0时刻主计算机200从数据流220或222之一接收数据并实际上在T1时刻导向一个输出端。T0至T1的时间限定与数据流相关的时延。
印刷电路板组件102上的微处理器230用于与主算机系统102间接收和发送信号,并用于促使数据流从输入端214向头盘组件104的实际盘片108(图1)转移。在用户希望观看信息前,该信息存储在盘片108上。希望观看时,印刷电路板上的微处理器230与主计算机200和头盘组件104配合检索该信息,用于向使用者显示。
微处理器与DMA控制器232协同工作,便于在RAM234和电缆228间相对快速地转移数据。此外,微处理器执行ROM236中所存软件。经信道238、前置放大器和其它电路240与盘片108间进行数据传送。
在电缆228上,在印刷电路板102部件与主计算机200间遵循ATA、ATA/ATAPI协议进行通信。ATA协议限定盘驱动器100和主计算机200均可识别的命令格式和类型。虽然符合ATA,但驱动器100仍具有用独特方式读写声频/视频数据,以增强主计算机系统200执行存储和检索数据的定时的能力。
盘驱动器获得增强的性能,部分是通过使读/写命令启动大命令计数,以用单一命令转移大量扇区,以及通过在读或写操作期间出错时,动态调节重试数。
在一较佳实施例中,如图4所示,对记录盘上的存储空间设置A/V分区。每盘或盘片有内径扇区,用于常规计算机数据。内扇区最好用于常规计算机数据,因为相对于数据可读或写至盘的速率,该内扇区是盘片108的“最慢”部分。实际上,在外直径处,数据存取速率最快。
设置扇区402作为A/V分区,扇区404是计算机数据类信息的另一扇区或分区。虽然外扇区具有最快存取时间,从而对于时间很关键的A/V数据是最佳位置,但外部分也是系统启动时存取的ATA计算机信息的标准置放位置。因而,A/V分区配置在两个计算机数据类信息分区间。设置这些分区使得可以根据盘上数据块的数据地址或位置,以不同方式处理数据。
为设置A/V分区402,印刷电路板102接收主计算机命令,指示A/V分区的最小逻辑块地址(“LBA”)和最大LBA,用于A/V分区402,实际上,通过规定盘存储空间A/V数据范围的最小值和最大值,主计算机设置A/V数据区。这些值是顺序值,称为LBA,即逻辑块地址。逻辑块地址直接是与硬盘驱动器上每个扇区有关的连续数。现把A/V数据范围或A/V分区中包含LBA的读/写命令识别为A/V读/写命令。
在另一较佳实施例中,主计算机可规定读/写命令是A/V命令。在该实施例中,不必在盘存储空间中设置A/V分区。
图5表示本发明较佳实施例中执行的读命令逻辑操作的流程图。如图5所示,步骤500开始的工作流程用于处理声频/视频数据的读命令。在发布操作步骤502,主计算机发布读命令。在操作步骤502由主计算机发布的该命令包含LBA和计数,其中该计数足以存取一个大到足以可对预定设计准则保持声频/视频性能的数据块。规定设计准则例如包括主计算机管理的数据流数和数据必须读取的最可能速率。该准则与在最坏情况下获得用户满意声像展现必需的每秒总字节数有关。
在操作步骤504,盘驱动器接收主计算机命令。盘驱动器执行决定操作步骤506并解释从主计算机接收的读命令以检测该命令是A/V命令还是常规命令。命令解释包含确定命令与声频/视频数据相关还是与常规计算机数据相关。如果命令包含A/V指示或标志,则操作步骤506对A/V指示或标志进行测试。如果正在使用存储空间的A/V分区,则操作步骤506测试LBA是否在A/V数据范围或分区中。如果命令是常规读命令,则操作流程分支至“否”,流程进至常规ATA操作步骤508。步骤508使用常规读操作在盘上对计算机数据执行读命令。如果命令是A/V命令,则操作流程分支至“是”,至设置重试操作步骤510。
步骤510在盘驱动器上对A/V命令设置适当的重试策略。实际上,步骤510设置在读操作中检测到差错时的重试数。该重试数设置成尽可能提供无差错A/V数据流,它短到不干扰足以保持声频/视频性能的数据流。操作步骤510参照图7详细说明。
在读命令中的计数是256或更小时,启动扇区计数器操作511,以读命令的计数装载扇区计数器。在计数如同A/V命令中通常情况那样是大计数时,操作511把计数设置成255。该扇区计数对每个扇区读取递减计数并由块规模监视器决定操作519使用,以确定读命令何时完成。
操作512转动盘片并把记录头移至正确道。当期望扇区在头正下方时,读数据操作514开始把数据读至盘驱动器上的RAM234。在读操作期间,盘驱动器施加能完成的纠错码校正,并且表示数据是为主计算机准备的。测试操作516寻找操作中的错误。若产生错误且若操作510设置的重试数尚未用尽,操作流程从“是”分支至设置操作517。设置操作对驱动器进行设置以读取产生差错的扇区。读操作514再读该扇区。如果无差错或不需更多重试,则操作流程从“否”分支至数据转移模块518。模块518经DMA控制器232和206,把数据从盘驱动器中的RAM234转移至主计算机200中的存储器。扇区计数器决定操作检测该扇区计数器中的计数是否为零。块规模监视器操作与数据读和数据转移操作异步进行。当块监视器操作中检得的扇区计数为零,则读操作完成,读命令的操作流程在步骤520结束。如果扇区计数器中的扇区计数不为零,则读命令没有完成。更多数据要读和转移,操作流程返回操作512。下文参照图8叙述块监视器操作。
图6表示声频/视频数据写命令过程600的处理。处理在步骤600开始。主机在发布操作602发布命令。主机发布的命令连同用于数据块规模的扇区计数传送至盘驱动器,该数据块规模由数据流数和预定字节流数据速率支配,足以保持声频/视频数据性能以达到设计目标。一旦发布操作602把写命令传送至盘驱动器,则驱动器中的操作605接收写命令,解释操作606解释该命令并确定命令是常规命令还是声频/视频命令。操作606的工作方式与上述对图5讨论的操作方式相同。如果命令是常规写命令,则由操作608处理。如果命令是A/V命令,则操作流程进至设定操作610。
设置重试操作610设置重试策略,确定在写操作期间有差错时的重试数。操作611启动块监视操作中的扇区计数器。操作610和611的操作方式分别与上述图5中操作510和511相同,分别在图7和图8中详细示出。
操作612移动记录头和盘,以把记录头与适当扇区对准。一旦寻找开始,操作614向主机指示,数据转移可开始。在操作615,主机开始向盘驱动器转移数据。如果数据不能获得盘驱动器缓冲空间,则主机可要求暂停或等待直到可获得该空间。
一旦记录头位于正确道和扇区上方,操作616把数据写至盘。如果在执行写操作期间产生差错,则测试操作618检测差错情况并确定是否允许重试。如果设置操作610确定有足够时间重试,则操作流程从“是”分支至配置操作617,该操作配置盘驱动器,重写操作期间出现差错的扇区。操作616再次写至产生差错的扇区。如果没有更多时间或不允许重试,则操作流程从“否”分支并在步骤620结束。
当所有命令数据均已从主计算机转移且已写或根据可得的重试试图写时,则操作618报告包含驱动器未成功写的一个或多个扇区的区域,并向主计算机发送中断请求。
扇区计数决定操作619检测扇区计数器中的计数是否为零。块规模监视器操作与数据读和数据转移操作异步动作。在块监视器操作检测出扇区计数为零时,写操作完成,写命令操作流程在步骤620结束。若扇区计数器中的扇区计数不为零,则写命令没有完成。还有数据要转移和写,操作流程返回操作615。不文参照图8说明块监视器操作。
图7说明设置重试操作510和610中所包含的功能操作。设置操作在步骤700开始。初始,发送操作702从主计算机向驱动器发送命令,该命令包含主计算机允许驱动器用多长时间完成该命令的指示。在一个实施例中,这是7位时间字段。例如,时间字段可给出5个毫秒时间单位,加至用于执行操作的总时间。
在操作704,驱动器接收命令。一旦驱动器接收该命令,确定操作706根据请求的扇区数、估计寻找时间、转至第1请求扇区所需时间、与主算机间转移数据所需时间及需多少开销时间等因数,估算操作所需时间。可预先计算大部分估算时间并存在查找表中以提高效率。如果估算时间大于分配时间,则驱动器返回差错或仅在分配时间中转移尽可能多的信息。
如果从主计算机接收的分配时间大于估计的完成时间,则减操作708从分配时间中减去估计时间(操作706确定的)确定“剩余时间”。该剩余时间用于驱动器在命令期间可执行重试操作。
确定剩余时间后,确定步骤710确定用于进行重试的估计时间。该量取决于盘转动时间,因为通常重试仅包括降低旋转并试图再次读/写同一扇区。该量根据道而变化,但可预先计算其平均值并存储在查找表中以提高效率。
接着,除操作712用每次重试的估算时间除剩余时间,确定操作期间可使用多少次重试。一旦设置重试数,则可按需设定策略,操作计数器利用重试,但一旦计数器确定不再有重试,则差错数据必须转移至主计算机,以在分配时间中得到转移。否则,必须废弃来自主计算机的数据。
作为一个例子,命令可请求读2000个数据扇区并要求整个读动作所费时间为200毫秒或更少。驱动器确定约需165毫秒完成转移,从而留有35毫秒剩余时间。如果每次旋转约需11毫秒,则在读操作期间可尝试三次重试。
在本发明另一实施例中,在它计算机执行设置重试策略的操作。主计算机保持盘驱动器性能历史,从而得知盘驱动器对不同块规模执行不同操作的时长。因而,主计算机可执行图7所示操作且在命令中,向盘驱动器发送参数指示允许的重试数。
块监视器操作由图5和图6中的决定操作519、619分别加上图8中的操作组成。块监视器使用扇区计数器(未图示)和初始包含来自读或写命令的余数计数器(未图示),在转移扇区和更新扇区计数器时,其计数变为余数计数。如上述图5和图6所讨论的那样启动扇动计数器。对于通常具有大于255的大计数的A/V命令,扇区计数器中的初始计数是255,余数计数减少255。读各扇区时,扇区计数递减。
在步骤800开始图8的操作。操作802检测何时扇区计数器中的扇区计数低于阈值。如果扇区计数不低于阈值,则操作808执行不相关操作,如进行伺服动作且流程返回,再次检测扇区计数器中的计数。当扇区计数低于阈值(例如20)时,操作804从余数计数器转移计数,直至扇区计数器中的计数回升至255。例如,测试操作802检测到计数低于阈值时,扇区计数器中的计数是15,则余数计数器的余数计数减少240且240加至扇区计数器。
操作806测试余数计数是否减至零。如果未减至零,则操作流程返回操作808,然后再返回操作802。操作802再次测试是否已有足够扇区转移,从而扇区计数低于阈值。在读/写和转移扇区时,扇区计数减少。在扇区计数再次低于阈值时,重复操作804。在802、804、806和808构成的一个循环期间,余数计数将不会大至足以使扇区计数器中的计数回升至255。该扇区计数将上升,直至余数计数为零。在操作804已更新扇区计数器时,操作806检测到余数计数为零。操作流程在步骤810结束。事实上,停止图8所示循环,扇区计数决定块519或619寻找计数变为零的扇区计数以检测读或写命令完成。
下文是与本发明一较佳实施例有关的详细概要。
0.概述本方案限定一个协议,借助该协议,主计算机(不必是传统的个人计算机)可与备有A/V的ATA驱动器通信,主计算机希望执行某些比常规驱动器(仅意识可靠性关键的计算机数据)中时间上更为关键的读和写操作。
关于发布命令的专用术语遵循高级技术附件/高级技术附件包接口(Advanced Technology Attachment/Advanced Technology Attachment PacketInterface)(“ATA/ATA PI”)协议。具体而言,主计算机试图把命令写回寄存器,状态寄信器中Busy位(“BSY”)设置被设备忽略。从而,仅当驱动器结束任何前面命令后又向驱动器发送命令时,主计算机才认为已“发布命令”。在A/V命令启用时,对支持本文本规格的备有A/V的驱动器写高速缓存禁止。驱动器指示命令完成时,命令已完全实施(如在Write A/V中所说明,可能写重试例外)且准备好立即执行另一命令。
0.1定义
·常规数据(ND)可靠性关键的计算机数据,可要求全部差错修复。
·声频视频数据(A/V)时间上关键的数据,在规定时间中完成命令。如果在允许时间中不能实施差错修复,则差错数据转移至主计算机并报告差错。
·A/V命令这是DMA读/写数据命令,在A/V命令启用时,经命令码0xC9或0xCB发布。
·ND命令这是读/写数据命令,在A/V方式命令禁止时,经命令码0xC8或0xCA或命令码0xC9或0xCB,以PIO方式或DMA方式发布。
1、启动声像特性,(Enabling Audio-Visual Feature)1.1、启动声像特性(Enabling A/V Features)通过提出子命令码0x04(定义为废弃,但先前(ATA文本3)定义为“使能所有自动缺陷再分配”),使用ATA Set Features命令,对读和写A/V数据使用0xC9和0xCB命令码。该子命令码一直使用到可达到ATA标准。
A/V命令码解释的启动经软件复位(Soft Reset)而非硬件复位(Hardreset)或开电源复位(Power-on reset)保持有效。以A/V方式发至驱动器的命令必须由主计算机发出作为逻辑块地址(LBA),命令不能以LBA方式发出(参见读AV/写AV输入)。
扇区计数值识别为下述之一·A/V命令解释由主计算机使能或禁止,或·一旦主计算机软件复位(RST)处理完成,IRQ被使能或禁止。
如果驱动器不能使能/禁止指示的A/V特性,将中止该命令。表1表示扇区计数寄存器值及其各自含义。
表1


1.2、使能大命令计数(Enabling large command counts)美国国家标准学会(ANSI)×3T13委员会,在1999年5月提出支持“实在大”的LBA和16位命令计数的方案。但因提出的协议要求驱动器侧硬件改变且尚未接受包含ATA/ATAPI-6,下述协议变化提供一种短期过渡,而仍在协商新方法。
为在[257,4095]范围中使能计数,主计算机发出具有TBD子命令码、计数寄存器设置为十进制16的SetFeatures命令。这向驱动器指示,主计算机希望发布具有计数高达常规范围16倍的命令。此后,发至驱动器(ND和A/V两者)的读写命令使用特征寄存器4位最低有效位的内容,该4位最低有效位与计数寄存器串级作为命令计数。以此方式,命令计数为零驱动器解释为计数是212。
1.3缺陷管理(Defect Management)额外探寻对流读写有害,因而需避免备用A/V数据扇区。在A/V数据扇区中可能存在备用的理由仅仅是·对先前以ND方式读或写且目前以A/V方式读或写的数据扇区执行更换。
·离机扫描(自监测和报告技术“SMART”)检测失效扇区并进行更换,其中,以A/V方式从初始(未更换)位置起不用专门访问先前更换扇区及标有“待重新分配”的扇区。在A/V方式,放过(A.K.A跳过)处理的唯一缺陷变换。
推荐主计算机以与文件分配表(FAT)类似的方式在主计算机侧对有持续差错的扇区进行缺陷变换。
2、主计算机复位处理(Host Rest Processing)驱动器不需支持ATAPI装置复位,但需对ATA软件复位有快速(毫秒量级)响应时间。即,主计算机需有一种方式以中断驱动器(可有极大计数)当前处理的命令,从而可发布时间上更为关键的命令。此外,主计算机需中止离机写重试或FlushCache命令(参见写AV)。
此外,一旦软件复位处理完成,若该特性已使能,则驱动器将设置中断请求(“IRQ”)(参见1.1)。
ATA符合驱动器完成这些动作的最明显方式是·如果每个ATA端口系统仅有一个驱动器,则主驱动器决不等待从属驱动器。如果一个端口中有两个驱动器,这两个驱动器在复位处理时间上遵循A/V扩充且已禁止写高速缓存,则复位处理时间受到严格约束。注意有从属驱动器使ATA主驱动器必须在寻找从属驱动器的完成状态前至少等待1毫秒。为此,一个端口一个驱动器使事情显著简化,但这不是必须的,只要主计算机对复位处理不在乎等待额外毫秒时间。
·禁止写高速缓冲(在某些驱动器中经厂家规定设备,可能与A/V命令操作码使能相关)。虽然可能驱动器仅对A/V方式命令禁止写高速缓存,但结果复杂性引起状态转换(高速缓存ND写转换至非高速缓存A/V写),使其无吸引力。由于ND写不是“时间上关键”的,禁止“常规数据”写的高速缓存不是一个争论点。
·考虑写高速缓存禁止,ATA/ATAPI技术要求允许废弃已转移至驱动器,而尚未写至驱动器的写数据。注意,协议目前不支持复位时仍在进行中的写操作返回主计算的状态,从而主机软件复位中断的写命令的精确状态是未知的。
禁止写高速缓存有一侧面好处。主计算机可得知允许的数据遍数何时完成及对写是何种差错状态。缺是在于,在连续主计算机写命令之间将浪费旋转。但是,使命令规模与连续数据流中所用的块规模相配,或使用很大的计数(从而与命令保持的数据转移速率相比,旋转降低变得无意义),可缓和该问题。在任何情况下,等待满旋转(顺序非高速缓存写情况)仍比执行全行程寻找且满旋转(最坏情况)花费少得多的时间,因而,由于不影响最坏情况性状况,该问题可看作无重要意义。
3、A/V数据(时间上关键)存取命令(A/V Data Access Commands)使能A/V方式命令时,发布作为操作码0xC9或0xCB的任何DMA读或写命令解释为A/V数据存取请求并隐含成LBA地址请求。在最坏情况仲裁主计算机系统中,很可能存在每个新命令重试有限次数(非零)及对驱动器先前已报告有差错扇区持续重试的时间。由于该可能情况,引入对数据“允许遍数(AllowedPasses)”概念。在A/V操作期间(读或写),驱动器试图在下述条件下读或写扇区·驱动器尚未试图读/写扇区(仅有读/写一遍剩余数据的时间及发生差错使某些扇区不能读/写(同步差错等)从而有某些扇区甚至未被读或写一次,这些情况除外)。
·驱动器有足够的主计算机可获得的缓冲器,从而驱动器认为重试完全从主计算机隐藏(即给定主计算机转移速率,主计算机可获得的缓冲器持续时间大于旋转时间)。
·驱动器不根据每个命令使用主计算机授权的时间分配并计算对重试留有足够时间。驱动器可具有主计算机可支持的在其中编程的速率,从而可回算在考虑寻找、旋转延迟时间及数据转移时间消费后重试可获得多少时间。
3.1读AV/写AV输入(Read AV/Write AV Inputs)表2

允许时间如表2所示,该时间是主计算机允许A/V命令所花费的时间(以5ms为单位)。如果主计算机规定的时间少于驱动器计算的所有数据仅读/写一遍所需时间,则驱动器对主计算机指示的各数据扇区只允许一次尝试。
扇区计数该值表示本命令主计算机希望读或写的扇区数。
起始LBA规定主计算机希望读或写的第1逻辑块地址(“LBA”)。
装置/记录头寄存器LBA设置为1,装置(“DEV”)指示选择的装置。
3.2读AV/写AV/齐平高速缓存A/V的差错输出(Read AV/Write AV/FlushCache A/V-Error Outputs)读AV和写AV命令的寄存器值如下表3所示表3

差错寄存器AV Err置为1。
修复重启动有助于驱动器执行重试。对A/V差错可使用返回至主计算机的号(参见配置AV重试命令),以提示驱动器何处需恢复重试,以在有限时间中获得数据修复最大机会。
差错长度可能出错时报告扇区号(在报告的差错长度中至少一个扇区是出错的)。如果驱动器对长度字段返回零,则表示差错长度超过212-1秒。
命令中差错偏移从命令开始至可能出错的第1扇区的扇区数。
装置/记录头寄存器DEV表示选择的装置。
状态寄存器BSY清至零表示命令完成。
DRDY(盘片备好)置为1。
DF(装置故障)置为零。
DRQ(数据请求)置为零。
OWRIP(处理中脱机写修复),若报告差错时写操作在进行中则该值为1(参见写AV)。
ERR(差错),如果差错寄存器位置为1,则该值置成1。
3.3配置AV重试(Setup AV Retry)该命令是一种方法,借助于它主计算机向驱动器表示,下面的A/V读或写命令处理成先前A/V命令的继续,先前命令已报告差错但主计算机现在对此已确定有更多的时间继续执行A/V重试。重试帮助信息(驱动器可以但不要求解释为重试数)如表4所示发送至驱动器。
表4

3.4写AV(Write AV)Write AV命令由驱动器接收时,驱动器则尽可能快地停止任何脱机行为、寻找至指示位置并开始把主计算机以前提供的数据写至媒体。写整个命令的数据时的允许遍数是驱动器第1优先权。从而,如果Write AV命令有一个写故障扇区N,这不妨碍在主计算机分配的时间中写后面可写的扇区,如果它们在当前差错期间一直继续写。驱动器可(但不请求)保存不能写的写故障数据(不损害驱动器对目前从主计算机写至媒体的数据外的其余数据流的能力),从而可对该部分数据执行离机写。第1差错扇区位置由驱动器通知以用于差错报告。在该写后离机写重试不能清除时,仍允许写继续,从而至少写数据时“第1遍”可对所有命令扇区完成。在写所有扇区时的允许遍数完成时,驱动器报告表5所述结束状态之一。
表5


3.5读AV(Read AV)驱动器ECC应对所有时间全部更正设置,以把A/V读期间不可更正的读差错减至最少。一旦允许的重试已用尽,驱动器应允许扇区继续流至主计算机,而不管扇区中是否有不能更正的ECC差错。下述表6所示“命令一完成”指示由驱动器使用。
表6

如果驱动器必须经备用扇区执行Read AV命令,则它将返回在不能更换位置的任何数据(不可更正的ND或先前的A/V应用),并如果结果发生不可更正读差错,则向主计算机报告A/V差错。
3.6齐平高速缓存(Flush Cache)通常ATA标准命令试图确保高速缓存的ND写在处理前对驱动器是全部对齐的,且以与A/V写相似方式工作。如果响应于Write AV命令,驱动器报告状态为0x55及差错为0x80,则主计算机可向驱动器发出Flush Cache命令以对驱动器清除状态作检查。在驱动器仍试图完成A/V写时,命令没有完成。如果主计算机选择不等待更正尝试,则可用来自主计算机的Soft Reset中断该命令。命令完成时,如表7所示,报告下述状态之一。
表7

4.“常规”数据(可靠性关键)存取命令(“Normal”Data AccessCommands)仅在主计算机确定,可不干扰已为驱动器所做的时间上关键的工作而执行“常规”数据存取命令的条件下,才发布这些命令。在驱动器完成复位处理时,主计算机可用软件复位中断这些命令并重新开始时间上关键的工作。假设无重试请求,则确保命令服务时间(ND和A/V两者及读和写两者)小于或等于T=AxB。
其中,下述16位无符号数定义如下表8所示表8

4.1写ND(Write ND)因为禁止写高速缓存,从主计算机可试图用软件复位中止Write ND起至驱动器可响应止,无明显时延。由于遵循ATA/ATAPI规格,可由驱动器放弃转移至驱动器的扇区并可使媒体上的数据受损。
4.2读ND(Read ND)由于仅当无A/V数据读或写时才发布这些命令,缓冲器可以驱动器供应商相信可帮助主计算机得到其ND型信息的任何方式分段。一旦接收A/V数据存取命令,驱动器可放弃其高速缓存的全部数据并重构缓冲器以对A/V数据进行最佳处理。
上述说明、例子及数据提供对制造和使用本发明构成的完全说明。不脱离本发明的精神和范围可做出本发明的许多实施例,因而未发明归属于后附权利要求。
权利要求
1.一种向主计算机提供声频/视频数据的方法,盘驱动器装置包含至少一个盘片和控制电路,用于与所述盘片间进行数据的存储和检索,其特征在于,该方法包括下述步骤(a)确定从主计算机接收的读/写命令是否与要转移的声频/视频数据相关;(b)如果所述命令与声频/视频数据相关,则限制在执行所述命令期间可获得的重试数。
2.如权利要求1所述的方法,其特征在于,还包括以下述步骤(c)响应于非声频/视频读/写命令,转移非声频/视频数据;(d)响应于声频/视频读/写命令,转移声频/视频数据,其中,所述声频/视频数据转移步骤转移的信息扇区多于在非声频/视频读/写数据转移操作期间转移的扇区。
全文摘要
一种与主计算机通信并向其提供存储数据的盘驱动器装置,该盘驱动器适于提供改进的声频和视频数据转移操作。盘驱动器确定数据转移操作是否与声频/视频数据相关,如果是,则限制数据读或写命令期间可获得的重试数。由于声频视频数据在时间上相对于可靠性更为关键,限制重试尝试不会对用户显示产生显著影响。盘驱动器还可在单个命令期间转移相对大的数据块。限制重试尝试和在单个命令期间转移更多数据使主计算机与盘驱动器间的声频/视频数据转移量显著增大。
文档编号H04N5/85GK1369094SQ00811291
公开日2002年9月11日 申请日期2000年1月7日 优先权日1999年6月4日
发明者J·W·海因斯, H·C·戴维斯 申请人:西加特技术有限责任公司, 微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1