盘控制器、盘控制系统和盘控制方法

文档序号:6625031阅读:224来源:国知局
专利名称:盘控制器、盘控制系统和盘控制方法
技术领域
本发明涉及应用于诸如软盘之类的盘的控制器、控制系统和控制方法,更具体地说,本发明涉及适用于将盘控制器保持的数据传送到自中央处理单元的盘控制器、盘控制系统和盘控制方法。
软盘控制器(下文称为“FDC”)在中央处理单元(下文称为“CPU”)和软盘驱动器(下文称为“FDD”)之间以字节为单位传输数据,软盘驱动器将数据写入软盘和从软盘中读取数据。
一般来说,由于FDD以大约60kB/S的传输速度从盘中读取数据或将数据写入盘中,CPU不得不每隔16μs将数据传输到FDD中或从FDD中传出。FDC通过系统总线每隔大约16μs将从盘中读取的数据提供到存储器。FDC还通过系统总线每隔大约16μs从存储器中接收将要由FDD写入盘中的数据,并将数据传输给FDD。因此,每隔大约16μs就要占用系统总线供在FDC和CPU之间数据传输用。
上述的数据传输赶不上盘转动速度,除非长时间频繁地重复数据,并且每次从FDC接收到对数据传输的请求也要在相当高的速度下进行操作。此外,伴随着盘的转动,数据传输请求的周期包括百分之几的抖动时间。
因此,为了实现上面的数据传输,CPU应该具有包括中断操作的开销在内的相当大的处理能力。一般来说,当前可用的FDC含有防止CPU过载的DMA(直接存储器访问)数据传输机制。
现在参考

图1对FDC与FDD系统中的软盘之间的数据传输占用系统总线的时间进行说明,图1显示了在数据传输期间系统总线的占用状态。
如图1A和1B所示,软盘上的轨道划分成多个扇区。每个扇区记录预定字节数的数据。此外,在每个字节串之前和之后都提供地址信息、纠错信号和保护每个数据区免受软盘转动偏差影响的间隙。FDC将处于突发状态的数据传送给CPU和从CPU中接收处于突发状态的数据,其中数据分成扇区。
在这样占用系统总线的同时,FDC以与软盘转动速度相对应的速度从软盘中读取数据和将数据写入软盘,并且即使当软盘正在以非均匀的速度转动时,FDC也能读取数据。
上面的DMA数据传输使得有可能降低将由CPU处理的数据量。然而,由于FDC和存储器之间的数据传输每隔大约16μs占用系统总线一次,对整个系统的负载仍然保持很大。另外,在DMA数据传输机制正在传输其它数据的同时,尽管CPU能够处理数据,但系统总线被DMA、FDC等占用着。
因此,本发明的目的是通过提供盘控制器、盘控制系统和盘控制方法克服现有技术中的上述缺点,通过在适当的时间实现在盘控制器与存储器等之间进行的数据传输,其需要花费相对较长时间,这种盘控制器、盘控制系统和盘控制方法适合于显著减少对盘控制器和系统总线的负载。
本发明提供一种用来控制从盘读取数据或将数据写入盘中的盘驱动器的操作的盘控制器,包括存储装置,用来以预定数据量为单位,存储从盘读取的和从盘驱动器提供的数据或通过总线提供的待写入盘的外部数据,该单位是从盘一次读取或写入盘的数据量;和控制装置,用来控制从盘读取的和写入盘的数据;所述控制装置从预定数据量为单位从盘断续地读取提供给存储装置的数据,和以预定数据量为单位断续地将存储装置提供的数据写入盘;和在盘驱动器不是正在从盘读取数据或将数据写入盘的时候,控制装置以预定数据量为单位将从盘读取并存储在存储装置中的数据提供给总线,并以预定数据量为单位将待写入盘的数据从总线提供给存储装置。
本发明还提供一种用来控制盘驱动器的、包括通过总线相互连接的盘控制器和存储器的盘控制系统,其中盘控制器控制存储在存储器中的数据写入盘和从盘读取存储到存储器中的数据,该盘控制器包括存储装置,用来以预定数据量为单位存储从盘读取的和从盘驱动器提供的数据或通过总线提供的待写入盘中的外部数据,该单位是从盘一次读取或写入盘的数据量,和控制装置,用来控制从盘读取和写入盘的数据;控制装置以预定数据量为单位从盘断续地提供传输给存储装置的数据,和以预定数据量为单位断续地将存储装置提供的数据写入盘;和在盘驱动器不是正在从盘读取数据或将数据写入盘的时候,控制装置以预定数据量为单位将从盘读取并存储在存储装置中的数据提供给总线,并以预定数据量为单位将待写入盘的数据从总线提供给存储装置。
本发明还提供一种用来控制从盘读取数据或将数据写入盘中的盘驱动器的操作的盘控制方法,该方法包括下列步骤以预定数据量为单位存储从盘读取并从盘驱动器提供的数据或通过总线传输的待写入盘中的外部数据,该单位是从盘一次读取或一次写入盘的数据量;以预定数据量为单位从盘断续地读取提供给存储装置的数据,或以预定数据量为单位断续地将存储装置提供的数据写入盘;和在盘驱动器不是正在从盘读取数据或将数据写入盘的时候,以预定数据量为单位将从盘读取并存储在存储装置中的数据提供给总线,并以预定数据量为单位将待写入盘的数据从总线提供给存储装置。
正如上文已经描述的,通过利用保持与每扇区数据量相同数据容量的存储装置来实现在盘控制器与存储器之间进行的、需要耗费相对较长时间的数据传输,根据本发明的盘控制器、盘控制系统和盘控制方法非常有利地减少了对中央处理单元和系统总线的负载。
通过结合附图对本发明的优选实施例进行如下详细说明,本发明的这些目的和其它目的、特征和优点将更加显而易见。
图1显示在传统软盘控制器的控制下在数据传输期间系统总线的占用状态;图2是根据本发明的包括软盘控制器的软盘驱动系统的方块图;图3是根据本发明的软盘控制器的方块图;图4显示在根据本发明的软盘控制器的控制下在数据传输期间系统总线的占用状态;图5是在根据本发明的软盘控制器的控制下从软盘上的指定扇区中读取数据所进行的操作的流程图;和图6是在根据本发明的软盘控制器的控制下将数据写入软盘上指定扇区中所进行的操作的流程图。
现在,参考图2,图2以方块图的形式示意地显示了根据本发明的包括软盘控制器(下文称为FDC)的软盘驱动器(下文称为FDD)系统。
FDC概括地用标记1来表示。如图2所示,FDC 1包括将数据写入盘和从盘读取数据的FDD 2;根据通过系统总线6从中央处理单元(下文称为CPU)4提供的信号来控制FDD 2的操作等的FDC 3,CPU 4使FDC 3能实现各种各样的操作;和存储FDD 2已经从软盘读取的数据或FDD 2写入软盘的数据的存储器5。系统总线6将FDC 3、CPU 4和存储器5相互连接起来。
根据来自FDC 3的控制信息,FDD 2将数据写入软盘中或从软盘中读取数据。更具体地说,按照来自FDC 3的控制信息,FDD 2逐个扇区断续地从软盘读取数据。每个扇区是一个预定数据量的单位。FDD 2通过解调器11将逐个扇区从软盘读取的数据提供给缓冲存储器14中,解调器11下面将会作进一步说明。在FDC 3的控制下,FDD 2逐个扇区断续地将通过CRC发生器16和解调器17从缓冲存储器14提供的数据写入软盘中。
如上所述,扇区是写入软盘或从软盘读取的预定数据量的单位。另外,每个扇区包括含有表示扇区的开始和地址的信息的ID字段和数据记录在其中的数据字段。
根据来自CPU 4的控制信息,FDC 3允许FDD 2将数据写入软盘或从软盘中读取数据。更具体地说,在CPU 4的控制下,FDC 3使FDD 2逐个扇区断续地从软盘中读取数据并通过系统总线将读取的数据扇区的数据提供给存储器5。并且,在CPU的控制下,FDC 3使FDD 2逐个扇区断续地将通过系统总线6从存储器5提供的数据写入软盘。
如上所述,CPU 4将请求FDD 2从软盘读取数据或将数据写入软盘的信息传输给FDC 3。
更具体地说,CPU 4将请求FDD 2从软盘读取数据的信息提供给FDC3。接收到请求信息之后,FDC 3使FDD 2从软盘读取数据。并且,CPU 4将请求FDD 2将数据写入软盘的信息提供给FDC 3。接收到请求信息后,FDC 3使FDD 2将数据写入软盘。
存储器5存储已经由FDD 2从软盘读取并从FDC 3通过系统总线6提供的数据或通过系统总线6提供到FDC 3的用于由FDD 2写入软盘的数据。
系统总线6是一条信息从多个信息源的任何一个传输到多个信息目的地的任何一个的路径。更具体地说,系统总线5帮助数据在FDC 3、CPU 4和存储器5之间传输。
现在,参考图3,图3以方块图的形式示意性地显示了根据本发明的软盘控制器(FDC 3)。
如图3所示,FDC 3包括解调从FDD 2提供的数据的解调器11;从解调器11传输的数据中提取地址信息的地址分离器12;计算包含在解调器11提供的数据之中的、用来检验数据中的任何差错的CRC的CRC(循环冗余校验)校验电路13;具有至少一个扇区数据的数据存储容量的、用于FDD 2和CPU 4之间数据传输的缓冲存储器14;控制提供到缓冲存储器14的数据或从缓冲存储器14传输到存储器5等的数据的读和写的存储器控制器15;以预定方式计算从缓冲存储器14提供的数据的CRC发生器;调制从CRC发生器16提供的数据的调制器17;根据从CPU 4通过系统总线6提供的命令来控制整个FDC 3的操作的顺序控制器18;以及用作系统总线6和FDC 3之间的接口的总线驱动器19。
解调器11以字节为单位将已经由FDD 2从软盘读取的和从FDD 2提供的串行数据解调成并行数据,并将解调后的并行数据提供给地址分离器12、CRC校验电路13和缓冲存储器14。
地址分离器12从包含在从软盘读取并从解调器11提供的数据所在的扇区中的ID字段提取地址信息,并将地址信息已从中被提取的数据和所提取的地址信息提供给存储控制器15。更具体地说,地址分离器12从包括在含有从软盘读取并从解调器11提供的数据流的扇区中的ID字段提取作为地址信息的ID信息,根据所提取的信息判断从解调器11提供的当前数据流是否是ID信息,并将判断结果和地址信息已从中被提取的数据提供给存储器控制器15。
还将每一个都根据软盘的一次完整转动形成的索引(index)脉冲从FDD 2提供给地址分离器12。
ID信息包含CRC数,根据该CRC数,可以判断在数据写或读的过程中,当前还在进行的是将数据写入目标扇区还是从目标扇区读取数据。
CRC校验电路13计算包含在从软盘读取并从解调器11提供的数据中的CRC信息,以检验是否有差错包含在从软盘读取的数据之中,并将检验结果传输到存储器控制器15。
缓冲存储器14是先进先出(FIFO)型存储器,它在存储器控制器15的控制下用于FDD 2和CPU 4之间的数据传输,具有至少一个扇区的数据存储容量。缓冲存储器14存储从软盘读取并从解调器11提供的数据或从存储器5经系统总线6和总线驱动器19提供并将写入软盘中的数据。
FIFO存储器是从第一个写入的数据开始,从中依次读取数据的存储器。
当FDD 2从软盘中读取数据时,存储器控制器15根据从地址分离器12和CRC校验电路13提供的信息使缓冲存储器14断续地存储逐个扇区地从软盘读取并从FDD 2经过解调器11提供给缓冲存储器14的数据。也就是说,在存储在缓冲存储器14中的一个扇区的数据已经完全传输到存储器5之后,存储器控制器15使缓冲存储器14存储下面的一个扇区的数据。此外,当FDD2将数据写入软盘中时,存储器控制器15根据来自CPU 4的控制信息,使缓冲存储器14将存储在缓冲存储器14中的待写入软盘的每个一个扇区的数据经过CRC发生器和解调器17提供给FDD 2,并使FDD 2将数据逐个扇区断续地写入软盘。也就是说,存储器控制器15使缓冲存储器14将存储在缓冲存储器14中的一个扇区的数据提供给FDD 2,然后将从存储器5提供到缓冲存储器14中的下面的一个扇区的数据提供给FDD 2。
更具体地说,当FDD 2从软盘读取数据时,存储器控制器15使FDD 2从软盘读取一个扇区的数据,并通过解调器11将读取的一个扇区的数据送给地址分离器12、CRC校验电路13和缓冲存储器14。根据FDD 2从软盘读取并从FDD 2提供的一个扇区的数据,地址分离器12和CRC校验电路13按照上面预定的方式操作,并将预定操作所生成的信息传输给存储器控制器15。存储器控制器15根据从地址分离器12和CRC校验电路13提供的信息使缓冲存储器14存储从软盘读取并提供到缓冲存储器14的一个扇区的数据。此后,顺序控制器18通过总线驱动器19和系统总线6将存储在缓冲存储器14中的一个扇区的数据提供到存储器5。
因此,当存储器控制器15使缓冲存储器14获得从软盘读取的一个扇区的数据并在这个提供的一个扇区的数据传输到存储器5之前不让缓冲存储器14得到任何下面的一个扇区的数据时,存储器控制器15可以使缓冲存储器14断续地存储从软盘逐个扇区读取的数据。
此外,当FDD 2将数据写入软盘时,存储器控制器15根据从CPU 4提供的控制传输信息,使缓冲存储器14将一个扇区的数据通过CRC校验电路16和解调器17提供到FDD 2,已经由顺序控制器18允许将该数据通过系统总线6和总线驱动器19提供到缓冲存储器14,该数据将写到软盘中。当将一个扇区的数据提供到FDD 2完成时,存储器控制器15使存储器5将通过系统总线6和总线驱动器19提供到缓冲存储器14的下面的一个扇区的数据提供到FDD 2。
在从缓冲存储器14将前一个一个扇区的数据提供到FDD 2被完成之前,不将来自存储器5的任何进一步的一个扇区的数据提供给缓冲存储器14。因此,存储器控制器15将从缓冲存储器14提供并将写入软盘中的各扇区的数据提供给FDD 2,从而允许让FDD 2逐个扇区断续地将数据写入软盘。
此外,存储器控制器15允许缓冲存储器14将存储在其中的8-位数据转换成16-位数据或将16-位数据转换成8-位数据。
当缓冲存储器14的存储容量变小时,存储器控制器15可以调整为以系统总线6的全速将数据通过总线驱动器19传输到存储器5等。存储器控制器15还可以调整让缓冲存储器14只将ID已经被排除的数据存储在缓冲存储器14中。
CRC发生器16以预定的方式计算从缓冲存储器14提供的数据,并将计算结果与从缓冲存储器14提供的数据一起提供给调制器17。
在将从CRC发生器16提供的并行数据以字节为单位转换成串行数据之后,调制器17调制用于写入软盘中的转换后串行数据,并将调制后的串行数据提供给FDD 2。
根据从CPU 4经系统总线6提供到FDD 2的命令,顺序控制器18控制整个FDC 3的操作并发出中断请求给CPU 4。
总线驱动器19也用作系统总线6和FDC 3之间的接口。
如上文所述构造而成的FDD系统1具有如下的功能当FDD 2不是正在将数据写入软盘或从软盘读取数据时,FDC 3允许相对较长时间的在FDD 2和CPU 4之间以扇区为单位的数据传输。
更具体地说,在FDD系统1中,由FDD 2从软盘读取的数据从FDD 2经解调器11传送到缓冲存储器14。该数据一次存储在缓冲存储器14中。当FDD 2不是正在将数据写入软盘或从软盘读取数据时,如此一次存储在缓冲存储器14中的数据通过总线驱动器19和系统总线6传送到存储器5。此外,在FDD系统1中,允许FDD 2写入软盘的数据被从存储器5经系统总线6和总线驱动器19一次传送到缓冲存储器14,并且一次存储在缓冲存储器14中。如此一次存储在缓冲存储器14中的数据被从缓冲存储器14经CRC发生器16和调制器17传送到FDD 2。因此,由FDD 2将该数据写入软盘中。
接下来,在FDD系统1中,当FDC 3允许FDD 2从软盘读取数据或将数据写入软盘时,在FDD 2、FDC 3、CPU 4和存储器5之间的数据传输占用系统总线6,现在参考图4对此进行说明。
如图4A和4B所示,软盘上的轨道划分成多个扇区。每个扇区记录预定字节数的数据。并且,在每个字节串之前和之后提供了地址信息、纠错信号和防止每个数据区免受软盘转动变化影响的间隙。在FDD 2逐个扇区地从软盘读取数据、或逐个扇区地将数据写入软盘之后,FDC 3将处于其中数据被划分成扇区的突发(burst)状态的数据传送给CPU 4和从CPU 4中接收该数据。
通常,在这样占用系统总线的同时,FDC 3以与软盘转动速度相对应的速度从软盘中读取数据和将数据写入软盘,和即使在软盘正在以非均匀的速度转动时,FDC 3也能读取数据。
根据本发明的FDC 3可以在软盘上从中没有数据读出或没有数据写入其中的扇区之间的时间,将数据提供到FDD 2或从FDD 2接收数据。因此,FDC 3占用系统总线6所用的时间要比现有技术短得多。
现在,参考图5,图5显示在FDD系统1中FDC 3已经允许FDD 2从软盘上指定扇区中读取的数据一直传输到存储器5所进行的操作的流程图。
图5所示的流程图是基于这样一种假设,即诸如FDD系统1的初始化、FDD 2的起动等一系列预备操作已经完成。
在图5中,首先,在步骤S1、CPU 4将包括指定扇区的地址信息并指令从指定扇区读取数据的命令提供给FDC 3的顺序控制器18,其中地址信息包含读写头号、轨道号、扇区号等。更具体地说,CPU 4将从例如读写头0、轨道0、扇区1中读取数据的命令通过系统总线6和总线驱动器19提供给顺序控制器18。
下一步,在步骤S2,顺序控制器18等待,直到其地址与从CPU 4提供的地址信息相一致的扇区的地址标识符从FDD 2已经从软盘读取的数据流中读取出来。
在步骤S3,顺序控制器18判断是否已经在FDD 2已经从软盘读取的数据中检测到指定扇区。
当顺序控制器18确定已经检测到指定扇区时,操作前进到步骤S7。
另一方面,当顺序控制器18确定没有检测到指定扇区时,操作前进到步骤S4。
在步骤S4,顺序控制器18计数索引脉冲。
在步骤S5,顺序控制器18判断是否已经计数到两个或多个索引脉冲。
当顺序控制器18确定还没有计数到两个或多个索引脉冲时,操作返回到步骤S2。
另一方面,当顺序控制器18确定已经计数到两个或多个索引脉冲时,操作前进到步骤S6。
接下来,在步骤S6,顺序控制器18将表示用当前定位的读写头不能检测到指定扇区的出错信号提供到CPU 4。如果当前读写头位置是正确的,则在软盘转动一整圈时可以检测到指定扇区。除非在计数到两个索引脉冲之前检测到指定扇区,顺序控制器18将表示用当前定位的读写头不能检测到指定扇区的出错信号提供到CPU 4。
在步骤S7,解调器11解调从FDD 2提供的串行数据、以字节为单位将串行数据转换成并行数据并将转换后的数据提供到地址分离器12、CRC校验电路13和缓冲存储器14。
CRC电路13计算包含在从解调器11提供的数据中的、与指定扇区的CRC相一致的地址标识符的CRC。
下一步,在步骤S8,CRC校验电路13判断从解调器11提供的地址标识符CRC是否与计算的地址标识符CRC相一致。
当CRC校验电路13确定来自解调器11的地址标识符CRC与计算的地址标识符CRC相一致并且没有出现错误时,操作前进到步骤S10。
另一方面,当CRC校验电路13确定来自解调器11的地址标识符CRC与计算的地址标识符不相一致和存在错误时,操作前进到步骤S9。
在步骤S9,CRC校验电路13将设置在FDD 2中的软盘是有缺陷的或FDD 2已经从软盘中读取的数据含有错误的CRC出错信息通过存储器控制器15和缓冲存储器14提供给顺序控制器18。
在步骤S10,CRC校验电路13将设置在FDD 2中的软盘没有缺陷的信息和地址标识符提供给存储器控制器15。存储器控制器15根据从CRC校验电路13提供的地址标识符,使缓冲存储器14依次存储从解调器11提供的数据。
下一步,在步骤S11,存储器控制器15判断从解调器11传输的一个扇区的数据是否已经存储在缓冲存储器14中。
当存储器控制器15确定从解调器11传输的一个扇区的数据还没有存储在缓冲存储器14中时,操作返回步骤S10。
另一方面,当存储器控制器15确定从解调器11传输的一个扇区的数据已经存储在缓冲存储器14中时,操作前进到步骤S12。
在步骤S12,CRC校验电路13计算包含在从解调器11提供的数据中的数据区CRC。
接下来,在步骤S13,CRC校验电路13判断包含在从解调器11传输的数据中的数据区的CRC是否与计算的数据区CRC相一致。
当CRC校验电路13确定数据区CRC不与计算的数据区CRC相一致和存在错误时,操作返回步骤S9。
另一方面,当CRC校验电路13确定数据区CRC与计算的数据区CRC相一致和没有错误时,操作前进到步骤S14。
在步骤S14,顺序控制器18将请求接受存储在缓冲存储器14中的数据的中断命令提供到CPU 4。
在从顺序控制器18接收中断命令时,CPU 4能够连续地进行任何其它处理直到它实际上接收到中断命令为止。
接下来,在步骤S15,CPU 4根据从顺序控制器18传输的中断命令,在没有数据正在从软盘中读取的时间内或在记录在软盘中的数据字节串的扇区之间的时间内,将来自缓冲存储器14的一个扇区的数据通过总线驱动器19和系统总线6提供到存储器5中的预定存储区。该数据是以只由FDC 3、CPU 4和存储器5确定的高速度传输的,它并不依赖于软盘的慢速转动。
在步骤S16,顺序控制器18判断从CPU 4到存储器5的数据传输是否已经在预定的时间内完成。
当顺序控制器18确定从CPU 4到存储器5的数据传输已经在预定的时间内完成时,操作前进到步骤S18。
另一方面,当顺序控制器18确定从CPU 4到存储器5的数据传输没有在预定的时间内完成时,下一个扇区的数据不能存储到缓冲存储器14中,因此,操作前进到步骤S17。当顺序控制器18使FDD 2从软盘上多个连续的扇区一个接一个地读取数据时,在允许FDD 2读取下一个扇区的地址标识符之前,CPU 4必须完成从缓冲存储器14经总线驱动器19和系统总线6到存储器5的数据传输。
在步骤S17,顺序控制器18将禁止FDD 2从下一个扇区读取数据的超时错误信息传输给FDD 2,同时将中止从缓冲存储器14通过总线驱动器19和系统总线6到存储器5的数据传输的CPU 4超时错误信息传输给CPU 4。
在步骤S18,顺序控制器18判断是否已经从所有指定扇区读出数据。
当顺序控制器18确定已经从所有指定扇区读出数据时,操作成功地结束。
另一方面,当顺序控制器18确定还没有从所有指定扇区读出数据时,操作返回步骤S1从下一个扇区读取数据。
借助于上面所述的操作,在FDC 3和存储器5之间的、需要花费相对较长时间的数据传输可以在FDD 2不是正在从软盘读取数据的时间逐个扇区地进行,因此,可以显著地减少对CPU 4和系统总线6的负载。
现在,参考图6,图6显示在FDD系统1中,一直到将FDC 3已经允许FDD 2写入软盘上指定扇区中的数据传输列FDD 2所进行的操作的流程图。
图6所示的流程图是基于这样一种假设的,即诸如FDD系统1的初始化、FDD 2的起动等一系列预备操作已经完成。
在图6中,首先,在步骤S21,CPU 4将包括指定扇区的地址信息并指令将数据写入指令扇区的命令通过系统总线6和总线驱动器19提供到FDC 3的顺序控制器18,其中地址信息包括读写头号、轨道号、扇区号等。更具体地说,CPU 4将写入数据至例如读写头0、轨道0、扇区1中的命令通过系统总线6和总线驱动器19传输到顺序控制器18。
下一步,在步骤S22,顺序控制器18在存储在存储器5中的数据中搜索待写入软盘并包括其地址与从CPU 4提供的地址信息相一致的扇区的地址标识符的数据。
在步骤S23,顺序控制器18判断是否已经从存储在存储器5中并待写入软盘中的数据中检测到要写入指定扇区的数据。
当顺序控制器18确定已经检测到要写入指定扇区的数据时,操作前进到步骤S27。
另一方面,当顺序控制器18确定没有检测到要写入指定扇区的数据时,操作前进至步骤S24。
在步骤S24,顺序控制器18计数索引脉冲。
在步骤S25,顺序控制器18判断是否已经计数到两个或更多个索引脉冲。
当顺序控制器18确定还没有计数到两个或更多个索引脉冲时,操作返回到步骤S22。
另一方面,当顺序控制器18确定已经计数到两个或更多个索引脉冲时,操作前进到步骤S26。
接下来,在步骤S26,顺序控制器18将在检索过程中没有从存储器5的存储区检测到待写入指定扇区的数据的出错信号提供到CPU 4。
在步骤S27,顺序控制器18计算包含在从存储器5通过系统总线6和总线驱动器19提供的数据中的、与指定扇区的CRC相一致的地址标识符的CRC。
下一步,在步骤S28,顺序控制器18判断从存储器5提供的数据的地址标识符CRC是否与计算的地址标识符CRC相一致。
当顺序控制器18确定来自存储器5的数据的地址标识符CRC与计算的地址标识符CRC相一致和没有出错时,操作前进到步骤S30。
另一方面,当顺序控制器18确定来自存储器5的数据的地址标识符CRC与计算的地址标识符CRC不相一致和存在错误时,操作前进到步骤S29。
在步骤S29,顺序控制器18将表示存储器5中的存储区有缺陷或FDD 2将写入软盘的数据有错误的CRC错误信息通过总线驱动器19和系统总线6传输到CPU 4。
在步骤S30,顺序控制器18将请求缓冲存储器14传输存储在存储器5中并要由FDD 2写入软盘的一个扇区的数据的中断命令传输到CPU 4。
CPU4将能够连续地进行任何其它处理直到它实际上接收到从顺序控制器18传输的中断命令为止。
下一步,在步骤S31,CPU 4根据从顺序控制器18提供的中断命令将存储在存储器5的预定存储区中的一个扇区的数据通过系统总线6和总线驱动器19传输到缓冲存储器14。数据以只由FDC 3、CPU 4和存储器5确定的和并不依赖于软盘的慢速转速的高速度传输。
在步骤S32,顺序控制器18判断从CPU 4到缓冲存储器14的数据传输是否已经在预定时间内完成。
当顺序控制器18确定从CPU 4到缓冲存储器14的数据传输已经在预定时间内完成,操作前进到步骤S34。
另一方面,当顺序控制器18确定从CPU 4到缓冲存储器14的数据传输没有在预定时间内完成,操作前进到步骤S33。
在步骤S33,顺序控制器18将禁止FDD 2把数据写入软盘上的下一个扇区的超时错误信息传输给FDD 2,同时将中止从存储器5通过系统总线6和总线驱动器19到缓冲存储器14的数据传输的超时错误信息传输到CPU4。也就是说,当顺序控制器18允许FDD 2一个接一个地将数据写到软盘上多个连续的扇区中时,在到达软盘中的下一个数据区之前,CPU 4必须完成将存储在存储器5中数据通过系统总线6和总线驱动器19传输到缓冲器14。
在步骤S34,存储器控制器15从缓冲存储器14读取一个扇区的数据并将它提供到CRC发生器16。CRC发生器16以预定方式计算从缓中存储器14传输的一个扇区的数据,并将计算的CRC信息和一个扇区的数据提供到调制器17。调制器17将所提供的一个扇区的数据,即一个扇区字节的并行数据转换成串行数据,并调制转换后的串行数据以写入软盘。
存储器控制器15使调制器17将调制后的串行数据提供到FDD 2。接着,存储器控制器15让FDD 2在包含待写入软盘的数据的字节串的各扇区之间的时间内,以与软盘的转动速度相对应的速度将调制的一个扇区的串行数据写入软盘。
在步骤S35,存储器控制器15判断FDD 2是否已经将调制的一个扇区的串行数据写入软盘。
当存储器控制器15确定调制的一个扇区的串行数据还没有被写入软盘时,操作返回到步骤S34。
另一方面,当存储器控制器15确定调制的一个扇区的串行数据已经被写入软盘时,操作前进到步骤S36。
在步骤S36,FDD 2将跟随在一个扇区的串行数据之后的由CRC发生器16计算的CRC字节信息以与软盘的转动速度相对应的速度写入软盘。
接下来,在步骤S37,顺序控制器18判断所有数据是否都已经写入指定扇区中。
当顺序控制器18确定所有的数据都已经写入指定扇区,操作成功地结束。
另一方面,当顺序控制器18确定所有数据还没有全部写入指定扇区时,操作返回到步骤S21以便将剩余数据写入下一个扇区。
借助于上述的操作,在FDC 3和存储器5之间的、需要花费相对较长时间的数据传输可以在FDD 2不是正在将数据写入软盘的时间逐个扇区地进行,因此,可以显著地减少对CPU 4和系统总线6的负载。
在图5和6的流程图所示的一系列操作中,缓冲存储器14保持与一个扇区数据量相同的数据容量。然而,缓冲存储器14可以具有为一个扇区数据量的整数倍的缓冲容量。也就是说,当具有各种各样格式的软盘需要控制时,缓冲存储器14可以拥有最大扇区的数据容量的整数倍的缓冲容量。因此,通过提供具有每个扇区的数据容量的整数倍的缓冲容量的缓冲存储器14,访问CPU4的次数可以有效地减少,并使具有冗余容量的存储器更加经济。
在图6的流程图所示的一系列操作中,FDC 3可以适用于在检测到第一扇区之前传输第一数据。
在图5和6的流程图所示的一系列操作中,数据是以字节为单位传输的。但是,由于系统总线6具有几个字节的宽度,因此,视具体情况而定,在与系统总线6的宽度相对应的一个周期内可以几个字节几个字节地传输数据。因此,可以进一步减少对FDD系统1的负载。
在图5和6的流程图所示的一系列操作中,软盘用作记录介质。但是,除了软盘之外记录介质还可以是任何其它盘。
正如上文已经描述的,在根据本发明的FDD系统1中,当具有相对较慢的传输速度的FDD 2与系统总线6相连接时,并不占用系统总线太长时间。即,系统总线可以更高效地得到使用。
在FDD系统1中,CPU 4能够以数据不容易受到由软盘转动速度引起的抖动的影响这样一种方式处理数据。
此外,在根据本发明的FDD系统1中,系统总线6的宽度可以有效地用于数据传输。
并且,在根据本发明的FDD系统1中,即使当通过提高软盘的转动速度来实现高速驱动时,对CPU 4的负载也只增加很小一点。
权利要求
1.一种用于控制从盘读取数据和将数据写入盘的盘驱动器的操作的盘控制器,包括存储装置,用于以预定数据量为单位,存储从盘读取并从盘驱动器提供的数据或通过总线提供的用于写入盘的外部数据,该单位是从盘中一次读取或写入盘的数据量;和控制装置,用来控制从盘读取的和写入盘的数据;并且所述控制装置以预定数据量为单位从盘中断续地读取用于提供给所述存储装置的数据,并以预定数据量为单位断续地将所述存储装置提供的数据写入盘中;和在所述盘驱动器不是正在从盘读取数据或将数据写入盘的时间,所述控制装置以预定数据量为单位将从盘读取并存储在所述存储装置中的数据提供给所述总线,并以预定数据量为单位将来自该总线的用于写入盘的数据提供给所述存储装置。
2.如权利要求1所述的盘控制器,其中所述存储装置能够存储其数量为预定数据量的整数倍的数据。
3.如权利要求1所述的盘控制器,其中所述控制装置将存储在所述存储装置中的数据长度转换成所述总线的宽度并提供该数据作为输出。
4.如权利要求1所述的盘控制器,其中所述预定数据量是盘上一个扇区的数据量。
5.如权利要求1所述的盘控制器,其中所述控制装置检测所述存储装置是否已经存储了以预定数据量为单位的数据,并且只有当所述存储装置已经存储了以预定数据量为单位的数据时才将所述存储在存储装置中的数据提供到盘或总线。
6.如权利要求1所述的盘控制器,进一步包括错误检测装置,用于检测在以预定数据量为单位要从盘读取的或要写入盘的数据和该数据的地址数据中的错误,只有当该错误检测装置在地址数据中没有检测到错误时,所述控制装置才允许所述存储装置存储该数据。
7.一种用来控制盘驱动器的盘控制系统,包括通过总线相互连接在一起的盘控制器和存储器,其中所述盘控制器控制存储在存储器中的数据写入盘和从盘中读取数据以存储到存储器中,该盘控制器包括存储装置,用于以预定数据量为单位,存储从盘读取并从盘驱动器提供的数据或通过总线提供的用于写入盘的外部数据,该单位是从盘中一次读取或写入盘的数据量;和控制装置,用来控制从盘读取的和写入盘的数据;并且所述控制装置以预定数据量为单位从盘中断续地读取用于提供给所述存储装置的数据,并以预定数据量为单位断续地将所述存储装置提供的数据写入盘中;和在所述盘驱动器不是正在从盘读取数据或将数据写入盘的时间,所述控制装置以预定数据量为单位将从盘读取并存储在所述存储装置中的数据提供给所述总线,并以预定数据量为单位将来自该总线的用于写入盘的数据提供给所述存储装置。
8.如权利要求7所述的盘控制系统,其中所述存储装置能够存储其数量为预定数据量的整数倍的数据。
9.如权利要求7所述的盘控制系统,其中所述控制装置将存储在所述存储装置中的数据长度转换成所述总线的宽度并提供该数据作为输出。
10.如权利要求7所述的盘控制系统,其中所述预定数据量是盘上一个扇区的数据量。
11.如权利要求7所述的盘控制系统,其中所述控制装置检测所述存储装置是否已经存储了以预定数据量为单位的数据,并且只有当所述存储装置已经存储了以预定数据量为单位的数据时才将存储在所述存储装置中的数据提供到盘或总线。
12.如权利要求7所述的盘控制系统,进一步包括错误检测装置,用来检测在以预定数据量为单位要从盘读取的或要写入盘的数据和该数据的地址数据中的错误,只有当所述错误检测装置在地址数据中没有检测到错误时,所述控制装置才允许所述存储装置存储该数据。
13.一种用来控制从盘读取数据或将数据写入盘中的盘驱动器的操作的盘控制方法,该方法包括如下步骤以预定数据量为单位存储从盘读取并从盘驱动器提供的数据或通过总线提供的待写入盘中的外部数据,该单位是从盘中一次读取或写入盘的数据量;以预定数据量为单位从盘断续地读取用于提供给存储装置的数据,或以预定数据量为单位断续地将存储装置提供的数据写入盘;和在盘驱动器不是正在从盘读取数据或将数据写入盘的时候,以预定数据量为单位将从盘读取并存储在存储装置中的数据提供给总线,和以预定数据量为单位将来自总线的待写入盘的数据提供给所述存储装置。
14.如权利要求13所述的方法,其中所述存储装置能够存储其数量为预定数据量的整数倍的数据。
15.如权利要求13所述的方法,其中所述控制装置将存储在所述存储装置中的数据长度转换成总线宽度并提供该数据作为输出。
16.如权利要求13所述的方法,其中所述预定数据量是盘上一个扇区的数据量。
17.如权利要求13所述的方法,其中所述控制装置检测所述存储装置是否已经存储了以预定数据量为单位的数据,并且只有当所述存储装置已经存储了以预定数据量为单位的数据时,才将存储在所述存储装置中的数据提供到盘或总线。
18.如权利要求13所述的方法,进一步包括错误检测步骤,用来检测在以预定数据量为单位待从盘读取的或待写入盘的数据和该数据的地址数据中的错误,只有当错误检测步骤在地址数据中没有检测到错误时,所述控制装置才允许所述存储装置存储该数据。
全文摘要
在盘控制系统中,缓冲存储器逐个扇区地存储从盘读取的数据或待写入盘的数据。存储器控制器让软盘驱动器逐个扇区断续地从盘读取传输到缓冲存储器的数据或将从缓冲存储器传输的数据逐个扇区断续地写入盘。当软盘驱动器不是正在将数据写入盘或从盘读取数据时,从盘读取的数据逐个扇区地从缓冲存储器传输到系统总线或待写入盘的数据逐个扇区地从系统总线传输到缓冲存储器。可以显著减少对盘控制器和系统总线的负载。
文档编号G06F13/36GK1271886SQ0010700
公开日2000年11月1日 申请日期2000年4月24日 优先权日1999年4月23日
发明者长谷野慎一 申请人:索尼公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1