能够同时处理若干数据流的磁盘存储装置的制作方法

文档序号:6394953阅读:233来源:国知局
专利名称:能够同时处理若干数据流的磁盘存储装置的制作方法
技术领域
本发明涉及一种磁盘存储装置,它能够同时处理多个数据流,确切地说,本发明涉及一种适用于同时进行一个数据流的记录和一个数据流的再现的磁盘存储装置,以及一种控制若干数据流的方法。
背景技术
众所周知,硬盘驱动器(后文中称为“HDD”)是使用磁盘作为存储介质的磁盘存储装置。近来HDD的存储容量一直在提高。与之对应,已经有越来越多的HDD在音像(AV)应用中记录AV数据。不仅如此,为了AV应用已经开发出了包括HDD的数据记录和再现装置,称为录像机。许多这样的录像机具有一种功能,在向HDD记录(写入)AV数据的同时,再现已经记录在HDD中的另一份AV数据。例如,这种类型的录像机有可能在记录用户指定电视节目之AV数据的同时,再现另一个电视节目的AV数据。在这种情况下,记录在HDD中的或者从中再现的AV数据通常是顺序数据,即在时间上是连续的数据。因此这种AV数据被称为数据流(AV流)。
近来的录像机还有一种功能,把用户指定电视节目之数据流记录在HDD中的同时,按照对应的记录时间,在一个任意的时间间隔之后,再现这个节目数据流的每个部分。不仅如此,也已经开发出了包括HDD和数字多用盘(DVD)驱动器(DVD刻录机)的录像机。这种类型的录像机有可能把DVD中已记录的数据流记录在HDD中的同时,再现HDD中已经记录的另一个数据流。
以这种方式,为了AV应用而包括HDD的录像机能够同时进行一个数据流的记录和一个数据流的再现。不过,它却不可能同时对HDD进行多次访问。因此,为了AV应用而采用HDD的主机,通过向HDD一个一个地顺序发送多个写或读命令,对若干数据流进行记录或再现。在这种情况下,一个命令指定的数据读写正在执行时,后续命令指定的数据读写就必须等待。
数据流必须实时地进行记录和再现。因此,主机向HDD提供的读写命令具有时限信息。时限就是对应命令指定的读写可用的最长时间(也就是容许时间)。带有时限信息的命令(读写命令)被称为带时限命令。
在现有技术中,录像机应用了HDD之后,假若在执行一条带时限读命令时,例如发生了一个错误,在时限之内就会重复地重试。在这种情况下,需要确定执行该命令所需的时间是否超过时限。假设在这种情况下,正在同时执行从磁盘再现一个数据流和向这个磁盘上记录一个数据流。进一步假设通过重复地重试直到超过时限,使为了再现该数据流所需执行的读命令(也就是读操作)持续执行。在这种情况下,为了记录一个数据流所需执行的写命令(也就是写操作)就必须等待。那么,在写操作完成之前,就超过了写操作的时限。
同样,如果在一条带时限写命令指定的写操作中发生了一个错误,在时限之内也会重复地重试。如果重复地重试直到超过时限,写操作就会挂起。这时,如果在HDD中有一条读命令正在等待执行,就可以执行它。不过,由于写操作已经被挂起,写数据可能无法保证。
同时记录或再现若干数据流的状态随时间而变化。日本专利申请公开号11-327807介绍了一种技术,如果仅仅同时处理少数几个数据流,就把以上时限对应的超时时间改变为相对长一些的时间。使用这份资料中介绍的常规技术,能够降低即使超时时间已经过去之后,读写操作还未完成的频度。
如上所述,利用AV应用中的常规HDD,如果在执行一条带时限读命令时,发生了一个错误,可能会重复地重试,直到超过时限。不过,在执行一条读命令之前,可能知道在时限之内,这条读命令指定的读操作无法完成执行。例如,在磁盘上把磁头移动到目标位置(目标磁道)所需的搜索时间,以及把读命令指定规模的数据进行传输所需的时间(数据传输时间),如果二者之和超过了时限,就是这种情况。因此,在现有技术中,即使在执行一条带时限读命令之前,已经知道该命令要求的读操作超过了HDD的基本能力,可能也会进行读操作,直到超过时限。在这种情况下,如果有记录一个数据流的任何写命令正在等待执行,那么在执行写操作之前,就超过了写命令指定的写操作时限。在这种情况下,写数据无法保证。
另一方面,利用以上资料中介绍的常规技术,如果仅仅同时处理少数几个数据流,就把时限(超时时间)改变为相对长一些的时间。因此,这种常规技术能够降低即使超时时间已经过去之后,读写操作还未完成的频度。不过,如果同时处理众多的数据流,这就是不可能的。在这种情况下,在写操作完成之前,也可能超过了这项写操作的时限。不仅如此,写数据也无法保证。

发明内容
本发明的一个目的是确保写数据,如果同时进行一个数据流的记录和一个数据流的再现,就优先安排记录数据流所用的写命令的执行。
按照本发明的一个方面,提供了一种磁盘存储装置,它能够同时处理主机指定的多个数据流,其中一个磁头从磁盘上读取数据并向磁盘上写入数据。该磁盘存储装置包括执行装置、探测装置和控制装置。执行装置以时间序列的方式,顺序地执行主机提供的、指示要写入之数据流的带时限写命令,以及主机提供的、指示要读取之数据流的带时限读命令。探测装置探测任何写命令指定的写操作中已经发生的错误。如果探测装置探测到任何写命令指定的写操作中已经发生了错误,控制装置就对执行装置进行控制。换言之,无论到目前为止执行写操作所用的时间是否在写命令指定的时限之内,控制装置都使执行装置继续进行写操作。
附图简要说明在说明书中加入并构成其一部分的附图,展示了本发明的若干实施例,并且连同上面给出的一般说明和下面给出的若干实施例的详细说明,用于讲解本发明的原理。


图1是一幅框图,显示了依据本发明一个实施例的AV应用中所用之硬盘驱动器的配置;图2是一幅简图,显示了图1中的磁盘111的格式;图3是一幅图表,显示了图1中搜索时间表123a中数据结构的一个实例;图4是一幅图表,显示了图1中传输率表123b中数据结构的一个实例;图5是一幅流程图,显示了按照该实施例之写操作的过程;图6是一幅流程图,显示了按照该实施例之读操作的过程。
具体实施例方式
下面将要参考这些附图,介绍一个实施例,其中把本发明应用于AV应用所用的一个硬盘驱动器。图1是一幅框图,显示了依据这个实施例的AV应用中所用之硬盘驱动器(后文中称为HDD)10的配置。假设HDD10配备在一个数据记录和再现装置(后文中称为录像机)中,它把HDD10用作AV应用所用的HDD。一般说来,HDD10包括一个磁头磁盘组合件单元(后文中称为HDA单元)11以及一个印刷电路板单元(后文中称为PCB单元)12。
HDA单元11包括一个盘片(磁盘)111、一个头部(磁头)112、一个主轴电机(后文中称为SPM)113、一个传动机构114、一个音圈电机(后文中称为VCM)115、一个电机激励器116和一个磁头IC117。磁盘111是一种记录介质,它具有两个盘面上下盘面。磁盘111的两个盘面中,至少有一个构成了记录表面,以磁性方式把数据记录在上面。磁头112安置在磁盘111构成记录表面的一个盘面上。在图1中,为了便于展示,仅仅显示了单一磁头112。不过,通常磁盘的两个盘面都构成各自的记录表面,各个盘面上都安置着磁头。不仅如此,对于图1中的配置,假设HDD包括单一的磁盘111。不过,在HDD中可以叠合多个磁盘111。
图2显示了磁盘111的格式。如图2所示,在磁盘111的圆周方向上等间隔、离散地安排着多个伺服区域200,在磁盘111的半径方向上放射状延伸。在每个伺服区域200中,预先记录着伺服数据。伺服数据包含着使磁头112在磁盘111的目标位置上定位所需的位置信息。在磁盘111的记录表面上,相邻的伺服区域200之间的区域用作数据区域。在磁盘111的记录表面上,安排着众多的同心磁道(数据磁道)202。在数据区域201中,在每个磁道202上提供了多个数据区段203。
一种称为CDR(常密度记录)的记录格式,应用于磁盘111。应用了CDR格式之磁盘111的记录表面,为了便于管理而在磁盘111的半径方向上划分为多个区。在图2所示的实例中,为了便于展示,磁盘111的记录表面划分为Z0和Z1两个区,以便于管理。每个磁道(柱面)中数据区段203的数目,Z0和Z1这两个区不同。在磁盘111的外围区,每个磁道(柱面)中数据区段203的数目设置得更大。采用这种设置是为了提高磁盘111的格式化效率,有效地利用磁盘的外围区域,该处磁道(柱面)的实际圆周长度更大。众所周知,从磁盘111读取数据或者向它写入数据时,在磁盘111的外围区,数据传输率更高。
回过来参考图1,磁头112用于从磁盘111读取数据(数据再现)以及向磁盘111写入数据(数据记录)。SPM113使磁盘111高速旋转。磁头112安装在传动机构114的尖端。传动机构114具有一个VCM115,作为传动机构114的激励源。传动机构114受到VCM115的激励,使磁头112在磁盘111的半径方向上移动。SPM113和VCM115由各自的激励电流(一个SPM电流和一个VCM电流)激励,二者都是由电机激励器116提供。为了使SPM113以额定的速度旋转,电机激励器116向SPM113提供SPM电流,其量值由一个CPU122指定。为了使磁头112定位在磁盘111上的目标位置,电机激励器116也向VCM115提供VCM电流,其量值也由该CPU指定。磁头112连接到一个磁头IC(磁头放大器电路)117。磁头IC117包括一个读放大器和一个写放大器,前者放大磁头112读取的读信号,后者把写数据转换为一个写电流。
PCB单元12包括一个读/写IC(读/写通道)121、一个CPU122、一个闪速ROM123、一个CPU-RAM124、一个磁盘控制器(后文中称为HDC)125、一个缓冲区RAM126、一个门阵列127和一条CPU总线128。121至128这些元件安装在一片印刷电路板(PCB;未显示)上。CPU122、闪速ROM123、CPU-RAM124、HDC125和门阵列127,由CPU总线128相互连接。
读/写IC121是一个信号处理器件。读/写IC121进行多种信号处理,包括读信号的模数转换、写数据的编码和读数据的解码。
CPU122以一种分时方式,对HDD10中除了电机激励器116以外的其它元件提供控制,并且对电机激励器116提供使磁盘111定位在磁盘111上目标位置所需的控制。CPU122提供的控制包括按照主机20发出的读写命令,由HDC125进行的读/写控制。对于包括HDD10的录像机,主机20是主控制器。主机20把HDD10用作AV应用所用的HDD。为了进行记录或再现,主机20向HDD10发出一连串读写命令,这些命令对应于用户指定的数据流记录或再现。当用户操作以导线或无线电连接到主机20的输入设备(未显示)时,就通过该输入设备把数据流记录或再现的规格传送到主机。输入设备是例如一个遥控器。
闪速ROM123是一种可重写的非易失性存储器,它存放着CPU122要执行的程序(控制程序)。闪速ROM123的某些存储区域用于存放一个搜索时间表123a和一个传输率表123b。搜索时间表123a中预先存放了把磁头112移动到一个目标磁道所需的时间(即搜索时间)使用到达目标之前通过的磁道数目作为一个参数。传输率表123b中预先存放了磁盘111的每个区中数据传输率的信息。CPU-RAM124用作CPU122使用并存放着CPU122所用的若干变量的一个工作区。
图3显示了搜索时间表123a中数据结构的一个实例。如该图所示,表123a存放着对于每个预定的磁道数目Nti(i=1,2,...n),搜索时间Tsi的信息。搜索时间Tsi表示在磁盘111的半径方向上,使磁头112移动与磁道数目Nti相等的距离所需的时间。换言之,搜索时间表123a中存放的信息,表示磁道数目与搜索时间之间的对应关系。随着磁头112移向磁盘111的中心或外围,磁道数目与搜索时间之间的关系会改变。因此,可以按照磁头112移动的每个方向,在搜索时间表123a中存放磁道数目与搜索时间之对应关系的指示信息。
图4显示了传输率表123b中数据结构的一个实例。如该图所示,表123b中存放着Z0和Z1两区的每一个中,数据传输率的信息TR0和TR1,它们用于从Z0或Z1区读取数据,或者向Z0或Z1区写入数据。
HDC125不仅连接到CPU总线128,而且连接到读/写IC121、缓冲区RAM126和门阵列127。门阵列127产生出控制HDD10所需的多种信号。HDC125还通过主机接口30,连接到主机20。使用控制寄存器(未显示)来控制HDC125和门阵列127。控制寄存器分配在CPU122所用地址空间的某些区域中。CPU122对这些区域进行读取和写入,以控制对应的HDC125或门阵列127。
HDC125接收主机20传送的命令(读/写命令等),并且控制着主机20和HDC125之间的数据传输。HDC125还控制着磁盘111或HDC125之间的数据传输,以及一个控制缓冲区RAM126的缓冲区控制功能。HDC125具有一个状态寄存器(SREG)125a。
当主机20执行一条写命令时,主机20向HDC125传送的数据(写数据)暂时存放在缓冲区RAM126中。按照门阵列127发出的一个控制信号,HDC125把存放在缓冲区RAM126中的写数据传送到读/写IC121中。读/写IC121对HDC125传送的写数据进行编码,并且把编码后的写数据输出到磁头IC117。输出到磁头IC117的编码后写数据由磁头IC117转换为一个写信号。转换为写信号的数据,由磁头12写入磁盘111上写命令指定的区域。
另一方面,在执行主机20发出的一条读命令时,磁头112读取磁盘111上读命令指定区域中记录的一个数据信号。磁头IC117放大磁头112读取的信号(读信号)。磁头IC117放大后的读信号,由读/写IC121进行解码。HDC125按照门阵列127发出的一个控制信号,对读/写IC121解码后的数据进行处理,以产生要向主机20传送的数据(读数据)。该数据存放在缓冲区RAM126中,并且由HDC125传送到主机20。
现在,对图1中HDD10进行的若干操作将给出一个顺序说明;对于按照一条写命令进行的写操作和按照一条读命令进行的读操作,将会给出分别的说明。假设录像机设置为两种模式,第一和第二模式。在第一模式中,在HDD10中为用户指定的电视节目记录一个数据流(后文中称为第一数据流)。在第二模式中,从HDD10再现用户指定的、已经记录在HDD10中的数据流(后文中称为第二数据流)。
在这种状态下,主机20依次向HDD10发出一连串记录第一数据流所需的带时限写命令。同时,主机20还依次发出一连串再现第二数据流所需的带时限读命令。HDD10中的HDC125接收主机20发出的命令。HDC125收到的命令,由HDC125按照收到的顺序,在缓冲区RAM126中提供的一个队列缓冲区中进行排队。CPU122以收到的顺序,一个一个地从队列缓冲区中取出这些命令并执行。
首先,将参考图5中的流程图,对HDD10中执行的写操作给出说明。假设HDD10中的CPU122开始执行一条带时限写命令,它是主机20通过主机接口30向HDD10提供的。在这种情况下,CPU122根据写命令指定的访问起始地址(逻辑地址),确定磁盘111上的一个访问(写)起始磁道(目标磁道)和一个访问(写)起始区段(目标区段)。CPU122在HDC125的对应控制寄存器中设置已确定的访问起始磁道和访问起始区段(步骤S1和S2)。
然后,CPU122提供搜索控制,使磁头112(它安装在传动机构114的尖端)从当前位置移动到访问起始磁道(步骤S3)。在搜索控制中,为了激励VCM115而控制电机激励器116。每一次磁头112从磁盘111上的伺服区域200读取伺服数据时,CPU122都根据伺服数据中包含的位置信息,提供搜索控制。根据磁头112读取的位置信息,探测到磁头已经到达访问起始磁道之后,CPU122就确定,搜索控制(搜索操作)已经完成了。在这种情况下,CPU122就使HDC125执行所需的写操作,以便把主机20传送的数据,在前面设定的访问起始磁道中,从前面设定的访问起始区段开始,逐个区段地依次写入适当的区段(步骤S4)。在写命令指定的数据规模(区段数目)对应的一个区域上进行这项写操作,该区域开始于访问起始区段。
如果在按照写命令的写操作(数据写入)中,HDC125没有探测到任何错误(步骤S5),CPU122就完成了这条写命令的执行(步骤S6)。在这种情况下,如果在队列缓冲区中有任何等待的命令,CPU122就把该时刻最早排入队列的命令取出队列缓冲区,并且执行它。这时,CPU122在HDC125的状态寄存器125a中设置一种状态,表明前一命令(在这种情况下是写命令)的执行已经正确地完成了。主机20通过主机接口30,可以读取状态寄存器125a的内容。所以,主机20通过读取HDC125中状态寄存器125a的内容,就能够了解HDD10中命令的执行结果。
相反,如果在按照写命令的数据写入中,HDC125探测到一个错误(步骤S5),CPU122就进至步骤S7。在步骤S7,CPU122判断直到现在执行写命令所用的时间T是否在时限Ttl之内。注意,由提供给该写命令的时限信息来表明时限Ttl。如果写命令的执行时间T不超过时限Ttl(步骤S7),CPU122就返回步骤S1,以便重试这条命令。相反,如果写命令的执行时间T超过了时限Ttl,CPU122就进至步骤S8。在步骤S8,CPU122判断在记录一个数据流的同时,是否正在进行一个数据流的再现。
即使写命令的执行时间T超过了时限Ttl(步骤S7),如果没有数据流正在再现(步骤S8),CPU122就确定写命令指定的写操作能够继续进行。在这种情况下,CPU122就返回步骤S1,以便重试写命令。相反,如果有任何的数据流正在再现(步骤S8),CPU122就判断在队列缓冲区中是否有任何读命令(步骤S9)。即使有一个数据流再现的过程正在执行(步骤S8),如果在队列缓冲区中没有读命令(步骤S9),CPU122也就确定写命令指定的写操作能够继续进行。在这种情况下,CPU122就返回步骤S1,以便重试写命令。因此,在本实施例中,即使在时限Ttl之内写命令无法完成,如果没有数据流正在再现,也就重试这条写命令。同样,即使在时限Ttl之内写命令无法完成而且有任何数据流正在再现,如果没有读命令正在等待执行,也就重试这条写命令。
相反,如果有任何数据流正在再现(步骤S8)而且在队列缓冲区中有任何读命令(步骤S9),CPU122就确定写命令不能重试。在这种情况下,CPU122就如同在时限Ttl之内没有完成的写命令已经正确地完成了那样(步骤S10),在主机上执行操作。确切地说,CPU122在HDC125的状态寄存器中设置了一种哑状态,该哑状态表明在时限Ttl之内没有完成的写命令已经正确地完成了。CPU122的这种操作等效于强制CPU122了解(通知CPU122)写命令的执行已经正确地完成了。
然后,CPU122就把最早排入队列的读命令取出队列缓冲区。然后,CPU122不是执行已取出队列的读命令,而是让HDC125向主机20传送这条命令指定之预定哑数据的规模(步骤S11)。这就强制已取出队列之命令的执行必须完成。这等效于在短时间内执行已取出队列的读命令。然后CPU122返回步骤S1,以便重试在时限Ttl之内未能完成的写命令。
因此在本实施例中,在执行带时限写命令导致重试超过时限Ttl的一种特别状态下,HDD10就如同这条写命令的执行已经正确地完成了一样,在主机20上执行操作。换言之,HDD10形式上完成了写命令的执行。另一方面,这条写命令指定的写操作在HDD10中继续执行。因此,即使出现了以上的特别状态,HDD10也能够保护写数据以确保记录数据的质量。在本实施例中,当以上特别状态出现时,即使正在执行一个再现数据流的过程,而且有任何读命令正在等待执行,也优先安排写命令的执行。在这种情况下,读数据不受保护,因此降低了再现数据的质量。不过,再现数据的质量降低是暂时的。不仅如此,HDD10不是执行读命令,而是向主机20传送哑数据。因此,执行读命令所需的时间就能够用于继续执行写命令。这就使优先安排写命令的执行引起的不利效应减至最小。
现在,将参考图6中的流程图,对HDD10中执行的读操作给出说明。假设HDD10中的CPU122开始执行主机20提供的一条带时限读命令。在这种情况下,CPU122根据读命令指定的访问起始地址,确定磁盘111上的一个访问(读)起始磁道和一个访问(读)起始区段。CPU122在HDC125的对应控制寄存器中设置已确定的访问起始磁道和访问起始区段(步骤S1和S2)。
然后,CPU122计算一个预测的搜索时间Tp和一个预测的传输数据量Ap(步骤S23)。预测的搜索时间Tp表示,使磁头112从当前位置移动到访问起始磁道(目标磁道)之操作(即搜索操作)所需的时间。另一方面,预测的传输数据量Ap表示,从访问起始磁道上访问起始区段开始的一个区域,在时间(Ttl-Tp)之内,能够读取的数据量(数据规模)。从时限Ttl减去预测的搜索时间Tp,就获得了时间(Ttl-Tp)。
根据磁道数目(柱面数目)Nt和搜索时间表123a,预测的搜索时间Tp的计算如下。注意,磁道数目Nt对应于从当前位置对应的磁道直至访问起始磁道的磁道数。换言之,磁道数目Nt对应于搜索操作期间移动磁头的距离(后文中这个数目将称为搜索磁道数目)。首先,CPU122在搜索时间表123a中寻找小于但是最接近数目Nt的磁道数目Nti。接着,CPU122在搜索时间表123a中寻找大于但是最接近数目Nt的磁道数目Nti+1。然后,CPU122从搜索时间表123a中取出信息——有关磁道数目Nti和Nti+1的信息以及与搜索时间Tsi和Tsi+1相关联的信息。CPU122使用搜索时间Tsi和Tsi+1,通过插值来计算搜索磁道数目Nt对应的搜索时间Ts。CPU122确定计算出的搜索时间Ts为预测的搜索时间Tp。如果在搜索时间表123a中存放着数目Nt对应之磁道数目的指示信息,与数目Nt相关联的搜索时间Ts就用作预测的搜索时间Tp。
根据访问起始磁道所属的区Zi和传输率表123b,预测的传输数据量Ap的计算如下。首先,CPU122从传输率表123b中,读入区Zi固有的数据传输率TRi中的信息。数值TRi表示在区Zi上进行读取时,根据单位时间能够传送的数据量(例如区段数目),所用的数据传输率。CPU122把数值TRi乘以时间(Ttl-Tp),以计算(Ttl-Tp)之内能够传送的数据量,作为预测的传输数据量Ap(=TRi(Ttl-Tp))。在这种关系中,如果磁盘111上不应用CDR格式,那么磁盘111上所有磁道的数据传输率就相同。在这种情况下,就可以总是应用相同的数据传输率TR。
一旦CPU122计算出了预测的搜索时间Tp和预测的传输数据量Ap(步骤S23),它就进至步骤S24。在步骤S24,CPU122判断预测的搜索时间Tp是否在读命令提供之时限信息指示的时限Ttl之内。换言之,CPU122判断(预测)在时限Ttl之内,是否有可能完成一个把磁头112从当前位置移动到访问起始磁道的搜索操作,。
如果可以预测在时限Ttl之内能够完成搜索操作(步骤S24),CPU122就进至步骤S25。在步骤S25,CPU122判断预测的传输数据量Ap是否小于要执行之读命令指定的传输数据量(请求的传输数据量)Ar。换言之,CPU122判断(预测)在时间(Ttl-Tp)之内,是否能够传送读命令请求的数据量(数据规模)。如果在时间(Ttl-Tp)之内,能够传送所请求的数据量,CPU122就确定,执行读命令的条件已经建立。在这种情况下,为了进行读命令指定的读操作,CPU122就提供搜索控制,它使磁头112从当前位置移动到访问起始磁道(步骤S26)。
一旦磁头112到达了访问起始磁道,CPU122就确定搜索控制(搜索操作)已经完成。在这种情况下,CPU122就使HDC125进行读操作,以便从读命令指定之数据规模(区段数目)对应的一个区域,一个区段一个区段地顺序读取数据(步骤S27)。该区域开始于以上介绍的、在步骤S21和S22中设定的访问起始磁道上的访问起始区段。
如果HDC125探测到在按照读命令的数据读取中有错误(步骤S28),CPU122就返回步骤S21,以便重试这条命令。然后,在读命令的重试期间,再次判断在时限Ttl之内,这条命令的重试是否能够完成(步骤S24或S25)。
相反,如果在按照读命令的数据读取中没有探测到错误,换言之,读命令指定之数据规模对应的所有数据都已经正确地读取(步骤S28),CPU122就结束这条命令的执行(步骤S29)。在这种情况下,如果在队列缓冲区中有任何等待的命令,CPU122就把该时刻最早排入队列的命令取出队列缓冲区,并且执行它。这时,CPU122在HDC125的状态寄存器125a中设置一种状态,表明前一命令(在这种情况下是读命令)的执行已经正确地完成了。主机20可以引用状态寄存器125a中设定的状态。主机20能够引用这个状态,以便了解对应命令的执行已经正确地完成了。
相反,如果预测到在时限Ttl之内,搜索操作无法完成(步骤S24),CPU122就确定,执行读命令的条件没有建立。在这种情况下,CPU122不是读命令,而是让HDC125向主机20传送这条命令指定之预定哑数据的规模(步骤S30)。这就强制读命令的执行必须完成。这等效于在短时间内执行读命令——已知在时限之内搜索操作无法完成。这时,如果在队列缓冲区中有任何等待的命令,CPU122就把该时刻最早排入队列的命令取出队列缓冲区,并且执行它。然后,尽管CPU122没有执行前面的读命令,它还是在HDC125的状态寄存器125a中设置一种哑状态,表明这条命令的执行已经正确地完成了。
如果预测到在时间(Ttl-Tp)之内,无法传送(读取)读命令请求的数据量(步骤S25),CPU122也确定,执行读命令的条件没有建立。在这种情况下,CPU122也执行步骤S30,让HDC125向主机20传送哑数据。
因此在本实施例中,事先预测在时限Ttl之内,一条带时限读命令是否能够在HDD10中执行。作出这种预测时,考虑了搜索时间(即HDD10的基本能力)和读命令请求的数据量(请求的传输数据量)。然后,如果读命令请求的读操作超过了HDD10的基本能力,HDD10就向主机20传送哑数据,而不是执行这条命令。因此,可知即使一条读命令请求的读操作超过时限Ttl,本实施例也能够避免无谓地执行这条读命令。不仅如此,在本实施例中,由于避免了这种无谓的操作,如果记录一个数据流的同时,再现同一个或另一个数据流,就能够对记录数据流的写命令给予执行优先级。
在以上的实施例中,为了AV应用而在录像机中采用HDD。不过,在个人计算机中也能够采用HDD来记录和再现数据流。不仅如此,在以上实施例的说明中,本发明应用于HDD(硬盘驱动器)。不过,本发明也可以应用于HDD以外的磁盘存储装置,比如光盘驱动器和磁光盘驱动器,只要它们能够读写。
对于本领域的技术人员,不难设想出其它的优点和修改。所以,从广义上来说,本发明并不限于本文所示和介绍的特定细节和代表性实施例。因此,对于附带的权利要求书及其相当内容定义的一般发明概念,在不脱离其实质和范围的情况下,可以作出多种修改。
权利要求
1.一种能够同时处理主机指定的多个数据流的磁盘存储装置,其中一个磁头从一个磁盘读取数据及向一个磁盘写入数据,该磁盘存储装置的特征在于包括按照一个时间序列,顺序执行带时限写命令和带时限读命令的装置,写命令由主机提供并指示要写入的一个数据流,读命令由主机提供并指示要读取的一个数据流;探测在任何写命令指定的写操作中已经发生一个错误所用的装置;以及控制执行装置所用的装置,如果探测装置探测到在任何写命令指定的写操作中已经发生了一个错误,控制装置就会运行,无论到目前为止进行写操作所用的时间是否在写命令指定的时限之内,都使执行装置继续进行写操作。
2.根据权利要求1的磁盘存储装置,其特征在于进一步包括如果探测装置探测到在写操作中已经发生了一个错误,就判断到目前为止进行写命令指定的写操作所用的时间是否在写命令指定的时限之内所用的装置;以及向主机传送预定哑数据所用的装置,如果确定进行写操作所用的时间超过了时限,而且有一条读命令正等待执行,该传送装置就会运行,向主机传送哑数据作为读命令请求的读数据,而不是执行读命令。
3.根据权利要求2的磁盘存储装置,其特征在于,控制装置包括如果确定进行写操作所用的时间超过了时限,就判断是否正在再现一个数据流所用的装置;如果确定正在再现一个数据流,就判断是否有一条读命令正等待执行所用的装置;以及如果确定有一条读命令正等待执行,就激活传送装置所用的装置。
4.根据权利要求2的磁盘存储装置,其特征在于进一步包括,如果确定进行写操作所用的时间超过了时限,就如同写命令已经正确完成时那样,在主机上执行操作所用的装置。
5.根据权利要求4的磁盘存储装置,其特征在于进一步包括一个状态寄存器,它保持的状态指示着执行装置执行命令的结果,并且该结果能由主机引用,其中对主机起作用的装置在状态寄存器中设定一个哑状态,表明写命令的执行已经正确地完成。
6.根据权利要求1的磁盘存储装置,其特征在于进一步包括,在开始执行读命令之前,预测带时限读命令的执行是否在读命令指定的时限之内完成所用的装置,其中如果预测装置预测到读命令的执行不能在时限之内完成,控制装置就强制执行装置结束读命令的执行。
7.根据权利要求6的磁盘存储装置,其特征在于,如果预测装置预测到读命令的执行不能在时限之内完成,传送装置就向主机传送预定的哑数据作为读命令请求的读数据,而不是执行读命令。
8.根据权利要求6的磁盘存储装置,其特征在于,预测装置根据读命令指定的磁盘上访问起始磁道的位置、磁头的当前位置和读命令指定的要读取的数据量,预测带时限读命令的执行是否在读命令指定的时限之内完成,读命令的执行包括把磁头移动到访问起始磁道的一个搜索操作以及在搜索操作已经完成之后,从磁盘上读取读命令指定的数据量的一个操作。
9.根据权利要求8的磁盘存储装置,其特征在于,预测装置包括预测把磁头移动到读命令指定的磁盘上访问起始磁道所需的搜索时间所用的装置;预测在从读命令指定的时限减去预测搜索时间所用的装置预测的搜索时间而获得的剩余时间之内,从自读命令指定的访问起始磁道上的访问起始区段开始的一个区域,能够读取的数据量所用的装置;以及判断读命令的执行是否在时限之内完成所用的装置,如果预测搜索时间所用的装置预测的搜索时间在时限之内,并且如果预测数据量所用的装置预测的数据量超过了读命令指定的要读取的数据量,判断装置就判定读命令的执行在时限之内完成,否则就判定读命令的执行不能在时限之内完成。
10.根据权利要求9的磁盘存储装置,其特征在于进一步包括一个搜索时间表,对于每个预定的磁道数目,指明磁道数目与使磁头移动与磁道数目对应的距离所需搜索时间之间的对应关系,其中预测搜索时间所用的装置根据从与磁头当前位置对应的磁道直至读命令以及搜索时间表指定的磁盘上的访问起始磁道的磁道数目,预测使磁头移动与磁道数目对应的距离所需的搜索时间。
11.根据权利要求6的磁盘存储装置,其特征在于探测装置还探测在读命令指定的读操作中,已经发生了一个错误;如果探测装置探测到在读命令指定的读操作中已经发生了一个错误,预测装置就再次预测读命令的执行是否在读命令指定的时限之内完成;以及如果在预测装置的第二次预测中确定读命令的执行在时限之内完成,控制装置就使执行装置继续执行读命令。
12.一种控制数据流的方法,该方法应用于能够同时处理主机指定的多个数据流的一种磁盘存储装置,该方法的特征在于包括按照一个时间序列,顺序执行带时限写命令和带时限读命令,写命令由主机提供并指示要写入的一个数据流,读命令由主机提供并指示要读取的一个数据流;探测在任何写命令指定的写操作中已经发生一个错误;以及控制写命令的重试,使得如果探测到在任何写命令指定的写操作中已经发生了一个错误,无论到目前为止进行写操作所用的时间是否在写命令指定的时限之内,都执行写命令的重试。
13.根据权利要求12的方法,其特征在于进一步包括如果探测到在写操作中已经发生了一个错误,判断到目前为止进行写命令指定的写操作所用的时间是否在写命令指定的时限之内;以及向主机传送预定哑数据,使得如果确定进行写操作所用的时间超过了时限,而且有一条读命令正等待执行,就向主机传送哑数据作为读命令请求的读数据,而不是执行读命令;其中,如果确定进行写操作所用的时间超过了时限,而且有一条读命令正等待执行,就在已经向主机传送了哑数据之后,重试写命令。
全文摘要
在一种能够同时处理主机指定的多个数据流的磁盘存储装置中,确定正在执行的写命令指定的写操作中是否发生了一个错误(S4、S5)。如果确定已经发生了一个错误,无论到目前为止进行写操作所用的时间是否在写命令指定的时限之内,都重试写命令(S7、S1-S4)。
文档编号G06F13/10GK1577569SQ20041003015
公开日2005年2月9日 申请日期2004年3月19日 优先权日2003年6月30日
发明者多和田冬辉, 市川靖彦 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1