用在数据存储设备中的最小帧缓冲器管理器的制作方法

文档序号:6749314阅读:141来源:国知局
专利名称:用在数据存储设备中的最小帧缓冲器管理器的制作方法
背景技术
本发明一般地涉及数据存储设备,特别涉及用来显著减少和/或使数据存储设备中所需要的帧缓冲量最小、以充分地支持从存储设备到主机设备的数据传输的方法和装置。
现有技术诸如压缩盘(CD)或数字通用盘(DVD)之类的光盘是一种无磁性数据存储介质,其中,通过采用激光束将细微刻痕烧灼(burn)进介质的表面来存储相对大量的数字信息。通过采用一个较低功率的激光感测刻痕的有或无来读取所存储的数据。
现在有许多不同类型的光盘系统(即,光盘格式和设备)。在当代个人计算机(PC)中所使用的最常用的光盘系统之一是压缩盘只读存储器(CD-ROM)。CD-ROM提供了一个只读光学存储介质,在其上只存储一次数据,然后采用CD-ROM驱动器读许多次。一个CD-ROM盘可以包含数字图象、音频、视频和/或文本数据的混合流。数字通用盘只读存储器(DVD-ROM)可以提供更大的容量。在将来,DVD-ROM还会更快。其他先进的光盘系统也允许用户向光盘写数据。举例来说,一个压缩盘可记录(CD-R)系统只允许用户写到光盘的每个扇区一次,而一个压缩盘可重写(CD-RW)系统允许用户多次写光盘的每个扇区。其他显著的光盘系统包括压缩盘磁光(CD-MO)盘,该盘也是可重写的。
从这些例示光盘系统中读取数据一般用PC的处理器或主机处理器请求从光盘扫描一个数据块并通过外围总线传送到主机处理器或主存储器开始。一个数据块一般包括多个更小的数据块或数据帧。这些数据帧一般在光盘驱动器内被预处理并聚集成多个组,然后通过外围总线传送到主机处理器。举例来说,一个例示性的用在PC中的16XCD-ROM驱动器一般包括预处理重现数据的数字信号处理装置和一个在将一组帧(例如,每组大约4到8帧)以单个脉冲串传送到主机处理器之前存储数据帧的缓冲器管理装置,在一个128千字节动态随机存取存储器(DRAM)中,该缓冲器管理装置一般长大约2到3千字节。
这种类型结构的问题之一是,由于与一个典型的主机处理器相联系的固有等待时间,在光盘驱动器内需要大存储容量来充分地缓冲数据帧,而这会经常被其他电路/设备所中断。如此,一旦由光盘驱动器聚集和准备了脉冲串传送,则主机处理器不必准备好接收下一组帧。
由光盘驱动器内的缓冲器管理过程引入了另外的等待时间。缓冲器管理过程通常由依赖于一个嵌入式基于固件的处理器的块译码器电路实施。这个基于固件的处理器被构造为运行一个实时固件程序(例如,核心程序、轮询环、事件驱动器、混合电路等等)。虽然缓冲器管理过程具有一个有限处理开销,但它也可以时常被块译码器和/或光盘驱动器内的其他电路所中断。另外,还有与一组帧的脉冲串传送相联系的额外的开销等待时间,一组帧的脉冲串传送可能需要中断基于固件的处理器,例如在每次中断处理特定数目的帧(例如,直至10帧)。又例如,缓冲器管理过程需要能够使脉冲串传送与主机处理器相协调。这一般包括附加信令,并且如果主机处理器正忙或被中断则要经受进一步的延迟。因此,由缓冲器管理器引入的等待时间会变化,并且时常相当大。
在提供一个可接受的从光盘驱动器到主机处理器的数据传送速率的努力中,在光盘驱动器内提供有一个相当大并且常常是昂贵的外部存储器(例如,DRAM)。这个外部存储器由缓冲器管理器用来存储数据帧和调节整个系统的不确定等待时间。
对于更复杂的情况,随着光盘驱动器速度的提高,在光盘驱动器内需要的存储器量很可能需要随之增大。例如,某些以具有一个外部128千字节DRAM的16X CD-ROM的两倍速度运行的常规的32X CD-ROM驱动器常常需要另外128千字节的存储器,采取一个外部256千字节DRAM的形式。
于是,需要减少由光盘驱动器引入的等待时间、并因此减少在光盘驱动器中所需的存储器量、以便支持增大的数据传送速率的方法和装置。
发明概述依据本发明的方法和装置通过用一个具有纯基于硬件的数字逻辑设计的改进块译码器来代替具有基于固件的处理器的常规块译码器,显著减少了由光盘驱动器引入的等待时间。与常规块译码器不同,改进的块译码器最好一次传送一帧或更少的数据,而不是传送一组帧。因此,在光盘驱动器中所需的存储器量被显著减少到一个可以用在单个块译码器集成电路中的数字逻辑有利地包括的量上。于是,改进的块译码器降低了光盘驱动器的复杂性,降低了制造成本,同时还支持增大的数据传送速率。
依据本发明的某些方面,可以将本发明的各个实施例用于各种数据存储设备中,这些数据存储设备包括光盘驱动器、磁驱动器/磁带以及类似的以大致固定的速率流过数据的数据存储设备。
上述需要和其他需要由一个可以用在计算机系统中的数据存储设备所满足。所述数据存储设备包括一个存储介质和一个读部件,所述读部件被安排为从存储介质读取数据并输出一个读信号。还提供一个数据机来接收该读信号并根据该读信号输出数字数据。然后采用一个译码器电路顺序地输出数字数据的第一部分和数字数据的第二部分。在一单个集成电路管芯上有利地形成的译码器电路既包括存储器,也包括逻辑。逻辑识别存储器内的第一存储单元和第二存储单元。逻辑在第一存储单元存储数字数据的第一部分,在第二存储单元存储数字数据的第二部分。逻辑还被构造为从第一存储单元检索数字数据的第一部分,并将数字数据的第一部分例如输出到一个外部设备,同时将第二部分存储在第二存储单元。因为这个集成和数据传送过程,所以该数据存储设备与基于固件的处理器相比具有相当低的开销等待时间。这个时间节省使得该数据存储设备能支持更快的数据传送速率。
依据本发明的其他特定实施例,存储器可以是随机存取存储器(RAM),例如是动态RAM(DRAM)或静态RAM(SRAM)。存储器包括第一缓冲器和第二缓冲器,分别由它们各自的存储单元来识别。在其他特定实施例中,第一和第二缓冲器每个都具有与数字数据的第一和第二部分大致相同的尺寸。因此,例如,在某些实施例中,各个部分和缓冲器是每一个的长度都在大约2千字节和大约3千字节之间。在另一些实施例中的其他特征包括在逻辑内的可清除计数器,用来识别已经存储了多少字节的数字数据和/或两个缓冲器或多个缓冲器的状态。
依据本发明的其他实施例,提供了一种用于将一数据块从存储介质传送到外部设备的方法。该方法包括通过读出记录在一个存储介质上的数据来产生一个流动数字信号、并将该流动数字信号分成多个分组的步骤。该方法还包括采用一单个集成电路来1)在第一时间窗期间将第一分组存储在第一缓冲器中,2)在第二时间窗期间将随后产生的第二分组存储在第二缓冲器中,3)在第二时间窗期间从第一缓冲器检索第一分组,以及4)在第二时间窗期间向外部设备提供第一分组。这提供了大致连续的过程,因为在第一时间窗结束之后第二时间窗立即开始。
依据本发明的又一些实施例,单个集成电路还用来5)在第三时间窗期间将随后产生的第三分组存储在第一缓冲器中,以及6)在第三时间窗期间从第二缓冲器检索第二个第一分组。在这样一个实施例中,该方法还包括在第三时间窗期间向外部设备提供第二分组的步骤。这又提供了大致连续的过程,因为在第二时间窗结束之后第三时间窗立即开始。
依据本发明的另一个实施例,提供了一种用在被构造为支持存储设备内的读操作的单个集成电路中的方法。该存储设备被构造为产生一个预定用于一外部设备的数据流。所述方法包括下列步骤1)将一个数据流的一部分存储到第一缓冲器,2)将数据流的随后部分存储到第二缓冲器,同时还将第一缓冲器的内容传送到一个外部设备,3)将数据流的再随后部分存储到第一缓冲器,同时还将第二缓冲器的内容传送到外部设备,以及4)重复步骤1到4,直到数据流停止。
在下面的说明中将部分地陈述本发明的其他方面、优点和新颖特征,并且对于考查了下列说明或者学习了本发明的实践的本领域普通技术人员将部分地变得显而易见。本发明的目的和优点将通过在附带的权利要求中特别指出的手段和组合来实现和获得。
附图简要说明下面参考附图,其中具有相同标号的元件代表相似的元件,其中

图1是显示一个具有存储设备的常规计算机系统的方框图。
图2是显示图1中的具有单独的块译码器和驱动器存储器的常规存储设备的方框图。
图3是显示图2中的具有基于固件的缓冲器管理器的常规块译码器的方框图,基于固件的缓冲器管理器响应一个固件程序,并被构造为将多组帧存储在驱动器存储器,并在脉冲串传送中同时传送多组帧。
图4是显示依据本发明的特定实施例的在一单个集成电路(IC)管芯上形成的改进块译码器的方框图;改进块译码器具有一个不需要使用单独的驱动器存储器并且一次传送不多于一帧的最小帧缓冲器管理器。
图5是显示依据本发明的特定实施例的图4中的具有共置(co-locate)缓冲器、计数器和逻辑的基于硬件的最小帧缓冲器管理器的方框图。
图6A-D在图形上示范了依据本发明的特定实施例的图5中在一个读操作的各种例示时间窗期间帧数据存储和传送进出缓冲器。
图7是显示依据本发明的特定实施例的一个用于将数据存储在缓冲器中的过程的流程图,该过程在最小帧缓冲器管理器的逻辑中体现。
图8是显示依据本发明的特定实施例的一个用于将存储的数据从缓冲器传送到主机处理器的过程的流程图,该过程在最小帧缓冲器管理器的逻辑中体现。
图9是显示依据本发明的又一些特定实施例的具有最小帧缓冲器管理器和功能减少的数据机接口逻辑的改进块译码器的方框图,其中功能减少的数据机接口逻辑与一个具有增大功能设备驱动器性能的主机处理器一起使用。
发明的详细说明图1是显示诸如PC的常规计算机系统10的一部分的方框图,包括主机处理器12、主存储器14、总线16和存储设备18。主机处理器12一般被构造为从主存储器14和存储设备18读数据和/或向其写数据。从存储设备18读出的数据在由处理器12处理之前一般被记录进主存储器14。同样,在特定结构中,数据由主机处理器12从主存储器14读出,并通过总线16提供给存储设备18,在存储设备18数据被写进一个存储介质。总线16一般是一个外围总线,例如小计算机系统接口(SCSI)、先进技术附件分组接口(ATAPI)或类似的格式化总线(例如,IEEE 1394串行总线)。
出于简化的目的,这个文本的下面部分着重于读操作,其中,主机处理器12已经请求从存储设备18读取一数据块并通过总线16提供给主机处理器12和/或主存储器14。本领域普通技术人员将会认识到,本发明也能适用于支持写操作的传送数据,其中,主机处理器12通过总线16将一个数据块从主存储器14传送到存储设备18。
图2是显示如图1所示的例示性存储设备18中的主要子系统的方框图。存储设备18包括存储介质22,例如CD或DVD。存储介质22一般可从存储设备18取出。当被正确地插进存储设备18时,存储介质22在存储设备18内被支持,并由一个伺服组件24所旋转。伺服组件24一般包括主轴马达和安装结构(图中都未显示)。伺服组件24连接到驱动器控制器26。驱动器控制器26一般是微处理器,被构造为控制存储设备18中的各个子系统并通过总线16与主机处理器12进行通信。
由读/写组件28从存储设备22读(或向其写入)数据。对于一个读操作,读/写组件28包括激光二极管和激光拾取电路(二者都未显示)。在读(或写)操作期间,读/写组件28由伺服组件24在控制器26的控制下在存储介质22上有选择地定位。数据通常是沿一个具有恒定凹点(例如,数据位)尺寸的连续螺旋轨迹存储在存储介质22上。因此,在存储介质外侧上的每转的信息内容大于内侧上每转的信息内容。
读/写组件28可相对于存储介质22移动,以便它能够在一特定轨迹上定位,并在存储介质旋转时沿轨迹读取所希望的数据。
由读/写组件28输出一个模拟信号,并提供给数据机30、例如数字信号处理器(DSP)。数据机30例如采用常规的模数变换技术将模拟信号变换成一个数字数据流。根据存储设备的类型,数据机30还可以被构造为解扰、校正、提取、排除和/或否则修改数据流中的某些数据。例如,在某些CD-ROM驱动器中,数据机30采用常规的解调技术(例如,数据限幅)和交叉交插里德所罗蒙码(CIRC)校正技术来从模拟信号提取主数据(MD)和子码数据。在常规CD-ROM上的数据被分成多个数据帧,每个数据帧具有大约2352字节的MD和96字节的子码数据。子码数据格式实际上包括98个字节,但两个字节或空位被留成空白,以检测子码帧的开始。余下的96个空位每个空位包含一个字节的子码数据。如图所示,数据机30还被连接到设备控制器26,并对其响应。
将从数据机30得到的数字数据提供给一个块译码器32。块译码器32被构造为有助于数字数据通过总线接口35和总线16到主机处理器12的传送。在读操作期间,块译码器32将数据帧聚集并存储在驱动器存储器34中。块译码器32然后通过总线接口35和总线16以一单个脉冲串传送将一组帧(例如,大约4到8帧)从驱动器存储器34传送到主机处理器12。下面将更详细地说明块译码器32。块译码器32与设备控制器26相连并对其响应。
驱动器存储器34一般是一个常规DRAM芯片,可以与块译码器32相连,或者也可以与其分开。驱动器存储器34的尺寸和工作参数随着存储设备18的工作速度、块译码器32的操作和等待时间以及主机处理器12的操作和等待时间而变化。当块译码器以脉冲串传送多组帧时,CD-ROM具有存储驱动器存储器34中的至少大约50帧数据的存储容量是很常见的。例如,对于一个16X CD-ROM,驱动器存储器34通常需要为大约128千字节,对于一个32X CD-ROM,通常需要多至256千字节。
存储设备18还包括提供与总线16的连通性的总线接口35。总线接口35是一个特别为特定格式的总线16设计的常规接口电路。因此,例如,在特定结构中,总线接口35可以是SCSI、ATAPI、IEEE-1394或其他类似的总线接口。总线接口35还连接到驱动器控制器26并对其响应。
图3是显示如图2所示的例示性块译码器32的方框图,块译码器32以脉冲串传送多组帧。块译码器32包括数据机接口逻辑36、缓冲器管理器38、主机接口逻辑40和控制器接口逻辑42。数据机接口逻辑36被构造为与数据机30交换数据,并通过控制器接口逻辑42响应来自缓冲器管理器38和驱动器控制器26的命令。在某些结构中,数据机接口逻辑36也被构造为对每帧数据检测和校正同步和数据误差。因此,大量常规的检错/纠错一般在数据机接口逻辑36内的主数据和子码数据上完成。
主机接口逻辑40被构造为与总线接口35交换数据,并通过控制器接口逻辑42响应来自缓冲器管理器38和驱动器控制器26的命令。同样,控制器接口逻辑42被构造为帮助在驱动器控制器26与缓冲器管理器38、数据机接口逻辑36与主机接口逻辑40之间交换控制信息。
缓冲器管理器38一般是基于固件的处理器,可操作地响应一个实时固件程序(该程序一般存储在与控制器26相联系的只读存储器(ROM)中(未显示))。在支持读操作时,缓冲器管理器38通过数据机接口逻辑36接收数字数据流,并将数据作为数据帧存储在驱动器存储器34中。固件程序一般采用队列指针(即,指向各种数据队列的软件指针),其中,数据在逻辑上被一队列一队列地传送。缓冲器管理器38在一个读操作期间可以经受各种中断。例如,驱动器控制器26、数据机接口逻辑36或主机接口逻辑40可以中断缓冲器管理器38以请求一个服务。为了支持更高的数据传送速率(例如,与一个16X CD-ROM相联系的速率),以及在使由这种中断产生的等待时间的影响最小化的努力中,缓冲器管理器38从数据机30将一组帧聚集在驱动器存储器34中,并在一预定数目的帧准备好由控制器26进一步处理时中断控制器26。例如,在特定结构中,在块译码器32中断控制器26之前存储十帧数据。这趋向于减少控制器26的中断率。
在过去,这个解决方案(脉冲串传送多组帧)已经能够支持提高的数据传送速率,其中假设驱动器存储器34足够大。因此,以后产生的CD-ROM驱动器一般需要更大的驱动器存储器34和相应修改的固件程序。
随着近来发展32X CD-ROM驱动器的趋势,由于减少了的处理时间和可归因于固件处理器的等待时间的不确定性,对这种类型的“升级”的可行性表示怀疑。例如,在特定结构中,在接收、存储和传送一帧数据时,固件处理器的开销升至大约600微秒不是不常见的。如果在帧处理期间还发生一次中断,则这个开销还将增大。在32XCD-ROM中,每帧数据在大约每417微秒到达,因此对一组帧的脉冲串传送的需要是极为重要的。
其结果为,下一代CD-ROM驱动器很可能需要更大组的帧和更大的驱动器存储器34。这趋向于提高存储设备的复杂性和制造成本,并可能影响存储设备支持某些时间一关键的读操作的性能。
考虑这个附加背景,图4是显示依据本发明的特定例示性实施例的改进的块译码器32’的方框图,其中该改进的块译码器32’具有一个一次传送不多于一帧数据的最小帧缓冲器管理器50。改进的块译码器32’与图3中的块译码器32具有相似的电路。例如,数据机接口逻辑36、主机接口逻辑40以及控制器接口逻辑42的功能保持基本不变。然而,改进的块译码器32’替代了块译码器32和驱动器存储器4。
由于改进的块译码器32’全部都以硬件实现,所以不需要固件干预来保持数据流向主机12。因此,在处理一帧数据中与改进的块译码器32’相联系的开销实质上小于具有基于固件的缓冲器管理器38和固件程序的常规块译码器32。因此,在存储设备22内的缓冲帧量可以被显著减少,并且在某些结构中被最小化。如同下面详细说明的,依据本发明的特定实施例,可以以最小延迟将数据帧或甚至数据子帧传送到主机处理器12。由于与改进的块译码器32’相联系的等待时间很小(例如,传播延迟一般低至大约200-500纳秒),所以可以被支持的数据传送速率的限制因子在本质上是在读操作期间主机处理器12的操作和等待时间。
依据本发明的特定最佳实施例,改进的块译码器32’被制造在一单个IC芯片或管芯上。本领域普通技术人员将会认识到,改进的块译码器32’内的缓冲器56(参见图5)足够小到可行地且/或经济地采用常规逻辑制造过程来制造,或者相反地,改进的块译码器32’和最小缓冲器56内的各种逻辑电路可以用常规的随机存取存储器(RAM)制造过程来制造。
改进的块译码器32’包括硬件实现的逻辑,这将在下面以及在图5、6A-6D、7和8的例示性实施例中进行说明和显示。本领域普通技术人员将容易地认识到,可以采用常规逻辑电路设计工具和制造过程以各种方式来构造例如包括缓冲器、寄存器、计数器和比较/判决逻辑电路的逻辑功能。如此,下面的说明着重改进的块译码器32’在一个读操作期间的逻辑功能。
图5是显示依据本发明的特定实施例的例示性最小帧缓冲器管理器50的方框图。缓冲器管理器50包括数据机指针逻辑52、主机指针逻辑54、缓冲器56和缓冲器计数器58。
在缓冲器管理器50的设计中的重要方面之一是希望使缓冲器56的尺寸最小,其中缓冲器56用于存储一帧或一帧的一部分(即,一个子帧)。因此,依据本发明的特定实施例,缓冲器56被构造为存储两帧数据。一帧用于存储新输入的帧,另一帧用于检索先前存储的帧。因此,例如假设一帧数据大约3千字节长,则缓冲器56具有大约6千字节(即,2×3千字节)的RAM、例如静态随机存取存储器(SRAM)。在帧更小或传送子帧数据的结构中,RAM数量将进一步减小。
采用两个指针来识别存储在缓冲器56中的帧或子帧的存储单元或地址。有一个与从数据机30检索的需要被存储的数据帧或子帧相联系的数据机指针(PDE),还有一个与需要传送到主机处理器12的数据帧或子帧相联系的主机指针(PHOST)。数据机指针由数据机指针逻辑52建立和管理,数据机指针逻辑52通过数据机接口逻辑36从数据机30接收数据,并将接收的数据存储在缓冲器56中。主机指针由主机指针逻辑54建立和管理,主机指针逻辑54从缓冲器56检索所存储的数据,并将检索出的数据提供给主机接口逻辑40和最终提供给主机处理器12。
缓冲器计数器58响应来自数据机指针逻辑52和主机指针逻辑54的命令,并可由其读取。缓冲器计数器58内的内容或计数值代表包含准备传送到主机处理器12的数据的缓冲器56内的(一预定尺寸的)帧或空位数。数据机指针逻辑52被构造为在存储一帧数据或以一子帧数据填充空位时递增缓冲器计数器58。主机指针逻辑54被构造为在从缓冲器56检索并传送一帧数据或一个空位的内容时递减缓冲器计数器58。在初始化或复位时,缓冲器计数器58被设置为“零”。
图6A至6D在图形上显示了缓冲器56以及采用指针(即PDE和PHOST)在一个读操作的不同时间窗期间控制对存储在其中的数据的访问。图6A显示了具有“N”个帧缓冲器62a-b的缓冲器56。虽然帧缓冲器的数目可以更多,但最好只有两个(即,N=2),以便使改进块译码器32’的成本最小。在这个例示性安排中的帧缓冲器62a-b每一个都被构造为存储长度不大于大约3千字节的一帧数据。在一个读操作期间,每个指针分别指向帧缓冲器“第一”或帧缓冲器“第二”,即62a或62b。如图所示,每个指针从帧缓冲器62a向帧缓冲器62b递增,然后循环回帧缓冲器62a。
如图6B所示,在读操作开始之前的时间t0,两个指针都指向或识别帧缓冲器62a。在时间t0时缓冲器56中没有新数据,因为读操作还没有被主机处理器12所请求。因此,缓冲器计数器58等于“0”。
接着参看图6C,在读操作开始之后的时间t1,一帧数据已经被完全存储在帧缓冲器62a中,同样,PDE被递增或设置为识别帧缓冲器62b,缓冲器计数器58已经由数据机指针逻辑52增量到“1”。
在时间t1之后,数据机指针逻辑52能够开始向帧缓冲器62b写所接收的下一帧数据,假如PDE不等于PHOST。
当PDE变为识别帧缓冲器62b时,则PHOST不等于PDE,并且允许主机指针逻辑54检索出存储在帧缓冲器62a中的帧,并将该帧传送给主机处理器12,其中也假设缓冲器计数器58不等于“0”。当主机指针逻辑54已经完成该传送时,递减缓冲器计数器58。例如,缓冲器计数器可以从“1”递减回“0”,或者,在主机12出于某些原因已经等待并且缓冲器计数器更高的其他情况下,缓冲器计数器从“2”递减到“1”。主机指针逻辑54也递增或设置PHOST以识别帧缓冲器62b。缓冲器56最好被构造为支持对帧缓冲器62a和62b的同时访问。
继续进行读操作,如图6D所示,在时间t2,数据机指针逻辑52已经完成将一帧数据存储到帧缓冲器62b,PDE已经变为指向帧缓冲器62a,并且缓冲器计数器58再次被数据机指针逻辑52增量到“1”。当PDE改变时,则PHOST不等于PDE,因此主机指针逻辑54可以检索存储在帧缓冲器62b中的帧,并将该帧传送给主机处理器12,其中也假设缓冲器计数器58不等于“0”。
如此,在一个读操作期间,PHOST实质上试图赶上PDE,或者反之亦然。如果PDE在PHOST前面足够远以便完全地循环缓冲器56并且实际上等于PHOST(例如,试图超过PHOST),则存在一个溢出条件。当存在一个溢出条件时,数据机指针逻辑52防止更多的数据进入缓冲器56,并通知数据机接口逻辑36和/或驱动器控制器26停止来自数据机30的数据流。当主机指针逻辑54最后能够将下一帧传送到主机处理器12时,则PHOST递增,PDE不再等于PHOST。此时,溢出条件结束,数据机指针逻辑52再次通知数据机接口逻辑36和/或驱动器控制器26通过重新查找操作重新启动数据流。重新查找操作使得存储设备22最终返回读操作中发生溢出条件的点。
图7显示了依据本发明的特定实施例的一个实质上在数据机指针逻辑52中实现的读操作过程200的流程图。过程200包括一个初始化步骤202,其中缓冲器计数器58、PDE和PHOST被设置或重设成初始值。
在初始化之后,在步骤204,存储设备18等待接收来自主机处理器12的读请求命令。读请求命令实质上请求从存储介质22向主机处理器12传送一个特定的数据块。该数据块一般包括多个数据帧。作为响应,存储设备18例如通过总线16将数据块作为数据帧或数据子帧定位、读取和传送到主机处理器12。作为步骤204的一部分,存储设备12、最好是改进块译码器32或设备控制器26向主机处理器12发送一个应答或类似的响应。
接着,在步骤206和208,如果需要的话,数据机指针逻辑52重设缓冲器计数器58,并开始接收从存储介质22读取的数据块。作为步骤206的一部分,数据机指针逻辑52递增一个索引指针或类似的索引机构来追踪接收到的数据的字节数(或其他增量)。作为步骤208的一部分,将接收的字节存储在缓冲器56中由PDE识别的存储单元中。当整个数据帧或一预定数据子帧已经被接收并存储在缓冲器56中时,则在步骤210递增PDE以识别缓冲器56中的下一个存储单元。同样,在步骤212,当整个数据帧或预定数据子帧已经被接收并存储在缓冲器56中时,则缓冲器计数器58递增。
在步骤214根据PDE和PHOST的比较进行判决。如果PDE和PHOST识别缓冲器56中的同一存储单元,则如上所述出现一个溢出条件,退出过程200。如果PDE和PHOST未识别缓冲器56中的同一存储单元,则过程200继续到步骤214。如果未出现溢出条件,则过程200返回步骤208以接收下一个数据帧或数据子帧。
图8显示了依据本发明的特定实施例的实质上在主机指针逻辑54内实现的相应的读操作过程300的流程图。过程300包括步骤302,其中存储设备18等待接收来自主机处理器12的读请求命令。
当接收到一个读请求命令时,过程300继续进行到步骤304,其中根据PHOST和PDE的比较以及/或缓冲器计数器58中的计数值作出判决。如果PHOST和PDE不识别缓冲器56中的同一存储单元,或者缓冲器计数器58不等于“0”,则过程300继续进行到步骤308。如果PHOST和PDE识别缓冲器56中的同一存储单元,或者缓冲器计数器58等于“0”,则过程300在步骤304等待。
当缓冲器计数器58大于“0”时,则在缓冲器56中在由PHOST识别的存储单元中有数据,该数据现在正准备被传送到主机处理器12。然后在步骤308将由PHOST识别出的存储在缓冲器56的帧缓冲器或空位中的数据例如通过主机接口逻辑40、总线接口35和总线16传送给主机处理器12。接着,在步骤310,递增PHOST以识别缓冲器56中的下一个存储单元。在步骤312,递减缓冲器计数器58。
然后在步骤314判断是否已经完成了读请求命令。如果整个数据块已经被传送到主机处理器12,则读操作已经完成,由存储设备18将一个相关的状态信号提供给主机处理器12。如果已经完成了读操作,则过程300返回步骤302,等待下一个读请求命令。如果读操作还未完成,则过程300返回步骤304,试图将下一数据帧或子帧传送给主机处理器12。
依据本发明的又一个实施例,过程200和过程300可以被合并在一起,在改进的块译码器32’内提供有一个联合逻辑。还可以了解到,在过程200或300内可以包括另外的握手或其他状态信令,以便在一个或多个电路/设备之间提供必要的通信。
虽然在所显示的改进的块译码器32’和/或缓冲器管理器50的例示性实施例中的各种逻辑功能/电路是分开的,但应该认识和预料到,实际上的逻辑电路可以被组合或聚集在一起以提高效率和/或性能。
依据本发明的又一个实施例,改进的块译码器32’包括一个功能减少的数据机接口逻辑36’。图9显示了与图4中的改进的块译码器32’类似的改进的块译码器32”,除此之外改进的块译码器32”用功能减少的数据机接口逻辑36’来代替数据机接口逻辑36。如同下面将要更加详细地说明的,改进的块译码器可以用在一个低成本存储设备18中,其中假设主机处理器12具有一个具有增强的功能性能的设备驱动器。
提供改进的块译码器32’和/或32”的原因之一是使数据块传送过程流线化。依据本发明的一个方面,改进块译码器32’和/或32”实质上通过减少对复杂的基于固件的缓冲器管理性能的需求而使数据块传送过程流线化。
将这个流线化方法运用在数据机接口逻辑36’内的检错/纠错性能上。例如,依据本发明的特定实施例,将通常在数据机接口逻辑36的特定结构中提供的特定功能(例如,对一帧数据中的主数据的纠错)移到主机处理器12中,从而使得所产生的数据机接口逻辑36’的复杂性显著降低。这个降低的复杂性将减少工作等待时间/运行以及与块译码器32’相联系的制造成本。
因此,依据本发明的特定例示性实施例,数据机接口逻辑36’的功能不包括一个完整的纠错组。数据机接口逻辑36”实质上在将数据传递到最小帧缓冲器管理器50之前只在数据上进行有限集合的校验/功能。
根据由数据机接口逻辑36’对于每帧数据执行的有限集合的校验/功能的结果,将状态数据插入每帧数据中的主数据的未使用部分。例如,在将数据帧传递到最小帧缓冲器管理器50之前,可以将一个状态字或多个字加到每帧数据的空闲(未使用)区域中。
状态字识别在数据上执行的有限集合的校验/功能的特定结果。举例来说,在一个状态字中包括几个标记标识符,其中每个标记标识符代表一个特定校验/功能的结果。一旦该数据帧已经被传送到主机处理器12,则由主机处理器12使用状态字或多个字(例如,运行一个存储设备驱动程序)来确定是否需要对每帧数据进行另外的处理。
如此,则由主机处理器12而不是块译码器32”来有利地执行特定的复杂和/或耗时的功能。例如,已经发现,与主数据相联系的纠错功能可以由主机处理器12高效地进行,从而显著降低块译码器32”内的数据机接口逻辑36’的复杂性。例如,在常规的块译码器32内需要大约4千字节的局部缓冲存储器(未显示)来进行主数据的纠错。将纠错处理移到主机处理器12消除了对块译码器32”内的这个大缓冲存储器的需求。当与在主数据上执行数据校正的常规数据机接口逻辑36相比时,在数据机接口逻辑36’内的相关硬件逻辑的数量/复杂性也有相当大的减少。例如,在特定实施例中,可以将逻辑门的数量从大约40,000减少到大约15,000。
因此,依据本发明的特定实施例,数据机接口逻辑36’执行下列已知的校验/功能中的至少一个(但不必按照下面的顺序)。数据机30确定在主数据中是否出现一个同步滑移,并因此设置一个两字节状态字内的MD同步滑移标记。同样,数据机接口逻辑36’确定在子码数据中是否出现一个同步滑移,并因此设置该两字节状态字中的子码同步滑移标记。
依据已知/标准算法,数据机接口逻辑36’还在子码数据的Q-通道部分上进行CRC,并因此设置该两字节状态字内的Q-通道CRC故障标记。数据机30还采用已知/标准算法在主数据上进行检错校验(EDC),并因此设置该两字节状态字内的EDC故障标记。数据机接口逻辑36’还设置两字节状态字内的关于其他常规数据校验的其他标记,例如基于C2数据校验的C2指针标记。
数据机接口逻辑36’还确定该帧的分-秒-帧(MSF)是否正确(即,与前一帧的MSF相比,看起来为正确的顺序),并因此设置两字节状态字内的MSF标记。将数据机接口逻辑36’构造为例如从前一帧数据确认帧标题中的模式字段是否已经意外地改变。数据机接口逻辑36’在两字节状态字中设置模式标记,以识别是否发生了这样的模式改变。
还可以将数据机接口逻辑36’构造为当同步数据出于某些原因不存在或者不完整时在一帧数据的主数据内进行内插或提供适当的同步模式或同步数据。如果数据机接口逻辑36’在一帧数据内提供了同步数据,则将内插标记设置为识别该同步数据由数据机接口逻辑36’插入或完成。
主机处理器12响应每帧数据中的2-字节(或其他长度的状态字)。例如,MD同步滑移标记可以识别出在主数据中已经有了一个同步滑移,这可能需要校正。同样,子码同步滑移标记识别出在子码数据中已经有了一个同步滑移,这可能需要校正。在某些例子中,Q-通道CRC故障标记还可以使主机处理器12试图进一步调查Q-通道数据的有效性。
如果EDC故障标记识别出在主数据中检测到一个差错,则主机处理器将使得由主机处理器12进行一个常规纠错过程,以校正主数据。基于一般在数据机30中进行的C2数据校验的C2指针标记还向主机处理器12提供关于已经由数据机接口逻辑36’进行了的处理的信息。同样,将主机处理器12进一步构造为根据需要响应以校正或解决由MSF标记、模式标记和内插标记识别出的问题。
根据所标记的问题/特征,在状态字中提供的信息可能需要主机处理器12忽略数据、替换数据、校正数据和/或从存储设备18请求新数据。
作为本发明的结果,改进的块译码器32’(或32”)允许将从存储介质22检索出的数据实质上以连续数据流的形式通过总线16传送给主机处理器12,只对控制器26进行最小数目的中断,即,在接收到来自主机处理器12的对数据块的请求时进行第一次中断,在完成整个数据块到主机处理器12的传送时进行第二次中断,其中假设在改进的块译码器32’(或32”)内没有出现溢出条件。
虽然已经结合当前考虑的最实用的和最佳实施例描述了本发明,应该理解,本发明并不限于所公开的实施例,相反,本发明覆盖了在附带的权利要求书的精神和范围内包括的各种修改和等效设备。
权利要求
1.一种与计算机系统一起使用的数据存储器(18),所述数据存储设备(18)包括读组件(28),被安排为从一个存储介质(22)读取数据,并输出一个读信号;数据机(30),被安排为接收所述读信号,并根据所述读信号输出数字数据;以及译码器电路(32’),被安排为接收所述数字数据,接着输出所述数字数据的第一部分和所述数字数据的第二部分,译码器电路(32’)在一单个集成电路管芯上形成,包括存储器(56)和逻辑(52,54),其中,逻辑(52,54)被安排为识别存储器(56)内的第一存储单元(62a)和第二存储单元(62b),并将第一部分存储在第一存储单元(62a)中,将第二部分存储在第二存储单元(62b)中,同时将第二部分储存在第二存储单元(62b)中,从第一存储单元(62a)检索第一部分,并输出第一部分。
2.如权利要求1所述的数据存储设备(18),其中,存储器(56)包括第一缓冲器(62a)和第二缓冲器(62b),第一缓冲器(62a)由第一存储单元(62a)识别,第二缓冲器(62b)由第二存储单元(62b)识别,其中,第一缓冲器(62a)与第一部分的尺寸大约相同,第二缓冲器(62b)与第二部分的尺寸大约相同。
3.如权利要求2所述的数据存储设备(18),其中,第一部分和第二部分中的每一个包括多个字节的数字数据,逻辑(52,54)还包括第一可复位计数器(58),所述第一可复位计数器(58)被安排为识别由逻辑(52,54)存储在存储器(56)中的数字数据的多个数据帧。
4.如权利要求3所述的数据存储设备(18),其中,逻辑(52,54)还包括第二可复位计数器,所述第二可复位计数器被安排为识别由逻辑(52,54)存储在存储器(56)中的数字数据信号的多个选定部分。
5.如权利要求4所述的数据存储设备(18),其中,数字数据的第一和第二部分包括在大约2和大约3千字节之间的数字数据,存储器(56)包括大约6千字节的随机存取存储器(RAM)。
6.如权利要求1所述的数据存储设备(18),其中,存储介质(22)是一个光学存储盘。
7.如权利要求1所述的数据存储设备(18),还包括一个总线接口(40),被安排为接收由译码器电路(32’)输出的第一部分,并输出一个适合于通过总线(16)向至少一个外部设备传输的格式化部分。
8.如权利要求1所述的数据存储设备(18),还包括一个控制器(26),所述控制器(26)与读组件(28)、数据机(30)和译码器电路(32’)可操作地相连,并被安排为有选择地控制由读组件产生读信号、控制由数据机(30)产生数字数据、以及控制由译码器电路(32’)输出第一部分。
9.如权利要求1所述的数据存储设备(18),其中,译码器电路(32’)还被构造为检测数字数据内的至少一个差错,并识别出在数字数据内已检测到差错。
10.如权利要求9所述的数据存储设备(18),其中,译码器电路(32’)将状态数据插入数字数据,所述状态数据识别出已检测到差错。
11.如权利要求10所述的数据存储设备(18),其中,状态数据包括从一个标识符集合中选择出的至少一个标识符,所述标识符集合包括主数据同步滑移标记、子码数据同步滑移标记、Q-通道循环冗余校验(CRC)故障标记、检错校验(EDC)标记、C2指针标记、分-秒-帧(MSF)标记、模式标记和内插标记。
12.一种用于从存储介质(22)向外部设备传送数据块的方法,所述方法包括下列步骤1)通过读出记录在存储介质(22)上的数据产生一个流线化数字信号;2)将流线化数字信号分成多个分组;3)采用一单个集成电路(32’)来a)在第一时间窗期间将第一分组存储在集成电路(32’)中的第一缓冲器(62a)中;b)在第二时间窗期间将随后产生的第二分组存储在集成电路(32’)中的第二缓冲器(62b)中;c)在第二时间窗期间从第一缓冲器(62a)检索出第一分组;以及4)在第二时间窗期间将第一分组提供给外部设备,其中,第二时间窗在第一时间窗结束之后立即开始。
13.如权利要求12所述的方法,其中,作为步骤3)的一部分,单个集成电路(32’)还用于d)在第三时间窗期间将随后产生的第三分组存储在第一缓冲器(62a)中;e)在第三时间窗期间从第二缓冲器(62b)检索出第二个第一分组;以及其中,所述方法还包括5)在第三时间窗期间将第二分组提供给外部设备,其中,第三时间窗在第二时间窗结束之后立即开始。
14.如权利要求13所述的方法,其中,步骤3)还包括在每次从第一缓冲器(62a)或第二缓冲器(62b)检索出多个分组中的一个时将缓冲器计数器递减。
15.如权利要求12所述的方法,其中,将流线化数字信号分成多个分组的步骤还包括检测所述流线化数字信号内的至少一个差错,并在多个分组的每一个中识别出检测到差错。
16.如权利要求15所述的方法,其中,在多个分组的每一个中识别出检测到差错的步骤还包括将状态数据插入多个分组的每一个中,其中状态数据识别已检测到差错。
17.如权利要求16所述的方法,其中,状态数据包括从一组标识符中选择出的至少一个标识符,所述标识符组包括主数据同步滑移标记、子码数据同步滑移标记、Q-通道循环冗余校验(CRC)故障标记、检错校验(EDC)标记、C2指针标记、分-秒-帧(MSF)标记、模式标记和内插标记。
18.一种用在单个集成电路(32’)中的方法,其中所述集成电路(32’)被配置为支持在产生送到外部设备的数据流的存储设备(18)内的读操作,所述方法包括下列步骤1)将数据流的一部分存储到第一缓冲器(62a);2)将数据流的随后部分存储到第二缓冲器(62b),同时还将第一缓冲器(62a)的内容传送到外部设备;3)将数据流的再随后部分存储到第一缓冲器(62a),同时还将第二缓冲器(62b)的内容传送到外部设备;以及4)重复步骤1至4,直到数据流停止。
19.一种用在存储设备中的单个集成译码器电路(32’),所述译码器电路(32’)包括输入接口电路(36),被可操作地构造为与第一外部信源相连,并从其接收输入数字数据;输出接口电路(40),被可操作地构造为与第二外部信源相连,并向其传送输出数字数据;具有可识别第一缓冲器(62a)和可识别第二缓冲器(62b)的存储器(56),其中,存储器(56)被安排为允许对第一缓冲器(62a)和第二缓冲器(62b)同时进行读/写访问;以及与输入接口电路(36)、输出接口电路(40)和存储器(56)相连的逻辑(52,54),逻辑(52,54)被安排为对第一缓冲器(62a)和第二缓冲器(62b)同时进行读/写访问,用于将输入数字数据的一部分存储到第一缓冲器(62a),将输入数字数据的随后部分存储到第二缓冲器(62b),同时通过将第一缓冲器(62a)的内容传送到输出接口电路(40)来产生输出数字数据,并随后将输入数字数据的再随后部分存储到第一缓冲器(62a),同时通过将第二缓冲器(62b)的内容传送到输出接口电路(40)来产生输出数字数据。
全文摘要
以一单个集成电路(IC)的形式为块译码器提供了在各种数据存储设备中使用的方法和装置。块译码器被构造为从存储介质向诸如主计算机的处理器之类的外部设备传送流线化数据,而不将任何显著的由开销引入的等待时间引入数据传输。这通过采用纯基于硬件的逻辑并实质上将存储设备内需要的缓冲数据量最小化来实现。可以将所得的块译码器集成进一单个IC,因为所需的缓冲存储器量可以采用常规逻辑制造工艺、例如互补型金属氧化物半导体(CMOS)工艺经济地制造。
文档编号G11B20/10GK1291307SQ99801390
公开日2001年4月11日 申请日期1999年6月3日 优先权日1998年6月19日
发明者K·罗斯 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1