用存储接口电路连到主机系统的盘驱动器及接口连接方法

文档序号:6757328阅读:216来源:国知局
专利名称:用存储接口电路连到主机系统的盘驱动器及接口连接方法
技术领域
本发明涉及可连接到主机系统的盘驱动器,并更具体地涉及通过现有的存储接口电路连接到主机系统的盘驱动器、以及接口连接方法,其中,所述存储接口电路还作为输入/输出(IO)串行接口电路。
背景技术
一般地,以硬盘驱动器(HDD)为代表的盘驱动器作为电子装置的存储设备,所述电子装置例如为个人计算机。利用此盘驱动器的电子装置称作主机系统。通常,主机系统和盘驱动器具有它们各自的多用途并行接口,如AT连接(ATA)接口。盘驱动器具有包括多个寄存器的寄存器堆。主机系统使用寄存器操作命令来操作寄存器堆中的寄存器。通过此操作,主机系统在寄存器堆中写命令(命令代码)和执行命令所必需的各种参数。主机系统通过操作寄存器,即,通过访问盘驱动器中的寄存器,而执行命令的执行和数据的发送/接收。
称作串行ATA接口的串行接口近来已经发展成用于增加主机系统和盘驱动器之间数据传输速率的接口。串行ATA接口(串行接口)具有与常规ATA接口(即并行ATA接口或并行接口)不同的物理规范。相应地,为了通过串行ATA接口把主机系统连接到盘驱动器,必需提供用于主机系统和盘驱动器的各个串行ATA接口电路。
进一步地,主机系统数量的增加导致结合卡槽。配备有闪存的存储卡可安装在卡槽中。利用插入到卡槽中的存储卡,主机系统可执行从存储卡读写数据的高速率串行传输。日本专利申请KOKAI出版号2003-69931已经提出一种使大容量盘驱动器(数据存储驱动器)能通过在主机系统中形成的卡槽连接到主机系统的存储接口电路的技术。然而,为了把盘驱动器连接到主机系统的存储接口电路,盘驱动器必须具有符合存储卡接口标准的串行接口电路。

发明内容
本发明的目的是通过只在盘驱动器上增加简单电路就能使盘驱动器经现有存储接口电路连接到主机系统,其中,所述存储接口电路也可用作串行接口电路。
根据本发明的实施例,提供由主机系统使用的盘驱动器。主机系统包括存储接口电路,所述存储接口电路也作为用于把主机系统连接到符合串行接口的输入/输出装置的串行接口电路。盘驱动器包括符合并行接口的盘控制单元、以及通过并行接口连接到盘控制单元的输入/输出接口电路。盘控制单元包括用于保存命令代码和参数的寄存器堆、以及主控制器。寄存器堆包括多个寄存器,所述多个寄存器与包含在符合并行接口的现有寄存器堆中的寄存器等效,主机系统可访问寄存器堆中的多个寄存器。输入/输出接口电路可连接到主机系统的存储接口电路。输入/输出接口电路利用并行接口协议与盘控制单元通信,并且利用串行接口协议与主机系统的存储接口电路通信。当主机系统经过主机系统的存储接口电路向盘驱动器发送一系列寄存器控制命令并且所述系列的寄存器控制命令从输入/输出接口电路传送给盘控制单元时,主控制器根据所述系列的寄存器控制命令来控制寄存器堆中的寄存器,并从寄存器堆获得命令代码和参数。由所述系列的寄存器控制命令指定命令代码和参数。命令代码将在盘驱动器中执行,参数是执行命令代码所必需的。


附图包含在本说明书中并构成说明书的一部分,附图与以上概述和以下实施例的详细描述一起说明本发明的实施例,用于解释本发明的原理。
图1为说明具有根据本发明实施例的硬盘驱动器(HDD)10的系统的配置的框图;图2为说明图1所示寄存器堆112b的结构实例的视图;图3为有助于解释在用于判别连接到图1所示主机20的装置类型的实施例中执行的处理程序的流程图;以及图4A-4C为有助于解释在用于从HDD10读取数据的实施例中执行的处理程序的流程图。
具体实施例方式
以下结合附图详细描述本发明应用于硬盘驱动器的实施例。图1为示出具有根据本发明实施例的硬盘驱动器(HDD)10的系统的配置的框图。图1所示HDD 10例如为与存储卡相同形状的卡型HDD,并且是0.85英寸HDD。所使用的HDD 10连接到主机20。主机20使用HDD 10作为其存储器。主机20是以个人计算机、便携终端、移动电话等为代表的电子装置。主机20包括存储接口电路21、卡槽22以及主控制器23。
存储接口电路21作为用于把主机20的主控制器23连接到插入在卡槽中的存储卡的的存储接口。存储卡例如为安全数字(SD)存储卡。存储接口电路21可连接到除存储卡之外的其它卡。只要所述卡符合存储接口的电气和机械规范就足矣。例如,存储接口电路21还可连接到具有符合串行接口的输入/输出(IO)装置的IO卡。换句话说,存储接口电路21也可用作连接到符合串行接口的IO装置的串行接口电路(IO串行接口电路)。HDD(卡型HDD)10是以安全数字输入/输出卡(SDIO卡)为代表的一种IO卡。
已经知道使用存储接口作为串行接口(IO串行接口)的主机系统。这些主机系统包括可使用符合SD存储接口的卡槽作为符合串行(SDIO串行)接口的卡槽的主机系统。可连接到此主机系统的IO卡(IO装置)一般具有寄存器堆。在这假设主机系统使用存储接口作为串行(SDIO串行)接口,并且,主机系统通过串行接口(经过符合串行接口的卡槽)连接到IO装置。主机系统控制从IO装置读写的数据的传输。具体地,主机系统通过操作IO装置中的寄存器堆,根据IO装置控制程序而控制数据传输。
如上所述,当主机系统控制使用串行接口从IO装置读写的数据传输时,就必须操作寄存器堆。主机系统从具有并行接口(并行ATA接口)的HDD接收数据和向该HDD发送数据的情形也是如此。实施例的特征在于利用此点,HDD 10制作得可连接到主机系统20的存储接口,即,也用作串行接口(IO串行接口)的现有存储接口。
卡槽22用于在其中安装符合存储接口(串行接口)的电气和机械规范的卡(存储卡或IO卡),从而,所述卡可连接到存储接口电路21。在此假设HDD(卡型HDD)10插入到主机系统20的卡槽22中。也可在卡槽22中安装符合存储接口的电气和机械规范并通过接口电缆连接到IO装置的连接器。相应地,即使HDD 10不是卡类型,当它通过接口电缆连接到卡连接器时,也可连接到主机系统20的存储接口电路21。进一步地,卡槽22不总是必需的。例如,如果主机系统20是便携式的小尺寸电子装置如移动电话,HDD 10就可通过主机系统20壳体中的电缆或印刷布线而连接到存储接口电路21。
主控制器23控制主机系统20的每个元件、以及连接到主机系统20的外围装置。当主控制器23通过存储接口电路21连接到HDD 10时,它根据HDD控制程序而控制HDD 10。在此情况下,主控制器23把HDD 10处理成具有多用途并行接口(并行ATA接口)的HDD。
HDD 10包括主HDD单元11、输入/输出(IO)接口电路12和连接器13。主HDD单元11等效于使用并行接口(如ATA接口)来执行并行数据传输的常规HDD,即具有并行接口的HDD。主HDD单元11主要包括硬盘组件(HDA)单元111和硬盘控制(HDC)单元112。
HDA单元111主要包括合并在HDD 10中的机械部分。具体地,HDA单元111包括盘(磁盘)111a、头(磁头)111b和执行器111c。盘111a作为用于磁记录数据的记录介质。头111b用于从盘111a读取数据和向盘111a写数据。执行器111c支撑头111b,从而,头111b可在盘111a上径向移动。图1未示出用于旋转盘111a的主轴电机、用于驱动执行器111c的音圈电机等。
HDC单元112符合多用途并行接口。并行接口例如为在HDD领域中广泛使用的ATA接口(并行ATA接口)。HDC单元112包括电路部分。具体地,HDC单元112包括读/写通道112a、寄存器堆112b和主控制器112c。读/写通道112a是用于执行各类处理的信号处理装置,所述处理例如为信号的模拟-数字转换,对写数据的编码、以及对读数据的解码,其中,所述信号表示头111b从盘111a读取的数据。
寄存器堆112b由多个寄存器形成。当主机系统20利用HDD 10时,寄存器堆112b用于在其中写命令(命令代码)和用于执行命令所需的各种参数。符合并行接口(ATA接口)的常规(现有)HDD也具有与寄存器堆112b等效的寄存器堆。假设常规HDD的每个寄存器堆由m个寄存器R0′、R1′、R2'、…、Rm-1′形成。寄存器R0′的大小为16位(2个字节),并且,寄存器R1′、R2′、…、Rm-1′的大小为8位(1个字节)。
图2示出寄存器堆112b的结构实例。在此实例中,寄存器堆112b由m个寄存器R0、R1、R2、…、Rm-1形成,其中,每个寄存器分别被分配地址n、n+2、n+3、…、n+m。寄存器R0、R1、R2、…、Rm-1的角色与常规HDD的寄存器R0′、R1′、R2′、…、Rm-1′的角色等效。寄存器R0与寄存器R0′一样,大小为16位(2个字节),并且,寄存器R1、R2、…、Rm-1与寄存器R1′、R2′、…、Rm-1′一样,大小为8位(1个字节)。对寄存器R0′、R1′、R2′、…、Rm-1′分配各个地址。寄存器R1′、R2′、…、Rm-1′相对于寄存器R0的地址分别为2、3、…、m。在实施例中,如上所述,对寄存器R0、R1、R2、…、Rm-1分配地址n、n+2、n+3、…、n+m。通过此地址分配,寄存器R1、R2、…、Rm-1相对于寄存器R0的地址与寄存器R1′、R2′、…、Rm-1′相对于寄存器R0′的地址相对应。在此情况下,主控制器112c通过识别寄存器R0的地址n,即偏移地址n,而以与常规HDD中相同的方式处理寄存器R0、R1、R2、…、Rm-1。显而易见,作为基准寄存器的寄存器R0和R0′中每个的相对地址是零。
现在描述寄存器R0-Rm-1的基本情况。寄存器R0例如为数据寄存器。寄存器R0用于以16位(2个字节)为单位保存读过程中的读数据和写过程中的写数据。寄存器R1是错误寄存器。当在读或写过程中发生错误时,寄存器R1用于保存与错误有关的详细信息(错误信息)。如果错误位ERR为“1”,寄存器R1的内容就变为有效,其中,在寄存器(状态寄存器)R8和寄存器(备用寄存器)Rm-2每一个中所保存的状态信息内包括错误位ERR,错误位ERR在后面描述。主机系统20把寄存器R1看作是专用于读的读寄存器。
寄存器R2是扇区计数寄存器。寄存器R2用于保存将要读或写的数据扇区的编号。寄存器R3、R4、R5和R6分别是第一、第二、第三和第四目标逻辑-块-地址(LBA)寄存器。目标LBA寄存器R3、R4、R5和R6用于保存例如包括在28位目标LBA(目标逻辑-块-地址)中的各个位,所述目标LBA把领先的扇区指示为读或写的目标。更具体地,目标LBA寄存器R3、R4、R5和R6分别保存28位目标LBA中所包括的位7-0(第一目标LBA[7-0])、位15-8(第二目标LBA[15-8])、位23-16(第三目标LBA[23-16])、以及位27-24(第四目标LBA[27-24])。
寄存器R8作为用于保存主机系统20所指定命令代码的命令寄存器。主机系统20把命令寄存器R8识别为专用于写的写寄存器。寄存器R8还作为用于保存与HDD 10的状态有关的信息的状态寄存器,其中,该信息报告给主机系统20。主机系统20把状态寄存器R8识别为专用于读的读寄存器。在实施例中,在寄存器R8用作命令寄存器并且在寄存器R8中写命令代码之后,寄存器R8切换为用作状态寄存器。寄存器(状态寄存器)R8保存的状态信息包括数据请求位DRQ、忙位BSY和错误位ERR。位DRQ指示在要求数据传输的命令的执行过程中有可能进行数据传输(DRQ=1)还是不能进行数据传输(DRQ=0)。位BSY指示HDD10工作(BSY=1)或不工作(BSY=0)。在命令代码写到寄存器R8中并且寄存器R8从命令寄存器切换到状态寄存器之后,位BSY设定为“1”,并且在命令代码指定的操作结束之前一直保持为“1”。然而,当发出基于要求数据传输的命令的数据传输请求(DRQ=1)时,位BSY设定为“0”。在读取寄存器R8的内容(状态信息)之后,重置寄存器R8。位ERR指示在执行从主机系统20提供的命令的过程中发生错误(ERR=1)或不发生错误(ERR=0)。
寄存器Rm-2作为用于保存与状态寄存器R8相同的状态信息的备用状态寄存器。备用状态寄存器Rm-2与状态寄存器R8在以下方面不同即使其内容被读取,寄存器Rm-2也不重置。主机系统20把备用状态寄存器Rm-2识别为读寄存器。寄存器Rm-2还作为由主机系统20识别为写寄存器的装置控制寄存器。当系统控制用于HDD 10的重置信号和中断信号时,装置控制寄存器Rm-2由主机系统20使用。
再次参照图1,主控制器112c根据一系列寄存器控制命令而对寄存器堆112b执行寄存器控制。当主机系统20通过存储接口电路21发送给HDD 10的一系列寄存器控制命令经IO接口电路12到达HDC单元112时,执行此寄存器控制。依靠寄存器控制,主控制器112c从寄存器堆获得命令代码和参数。命令代码和参数由所述系列的寄存器控制命令指定。命令代码在HDD 10中执行,并且参数是执行命令代码所必需的。使用这些参数,主控制器112c执行命令代码。
IO接口电路12例如为SDIO接口电路。IO接口电路12通过并行接口连接到主HDD单元11的HDC单元112。进一步地,IO接口电路12可连接到主机系统20的存储接口电路21。IO接口电路12利用并行接口协议与HDC单元112通信,并且利用串行接口协议与主机系统20的存储接口电路21通信。IO接口电路12具有用于把从主机系统20通过存储接口电路21和连接器单元13发送的串行数据转换为并行数据的串行-并行转换功能,并且,具有把从HDC单元112发送的并行数据转换为串行数据的并行-串行转换功能。
IO接口电路12连接到对IO接口(DSIO接口)唯一的寄存器R。寄存器R用于预储存与包含IO接口电路12的装置(在此实施例中为HDD 10)有关的信息(装置信息)。寄存器R保存的装置信息包含装置(HDD 10)的类型、寄存器堆112b中每个寄存器R0-Rm-1的偏移地址n(即,领先寄存器R0的地址n)。
现在描述在上述实施例中执行的以下操作(1)确定通过卡槽22连接到主机系统20的存储接口电路21的装置(连接装置)的类型的操作;(2)主机系统20从HDD 10读取数据的操作;以及(3)主机系统20在HDD 10中写数据的操作。
Re(1)确定连接装置的类型首先参照图3的流程图,描述由主机系统20确定连接装置的类型的操作。与图1所示HDD 10的IO接口电路12类似,安装在主机系统20的卡槽22中的装置的接口电路(符合存储接口)连接到装置信息寄存器R。寄存器R保存与装置有关的装置信息。如果装置具有符合存储接口的接口电路,寄存器R的地址就是与装置类型无关的特定公共地址。进一步地,存储接口具有命令(CMD)线。主机系统20的主控制器23配置为能通过CMD线操作连接到存储接口电路21的装置中的每个寄存器。具体地,当启动主机系统20时,主控制器23产生寄存器控制命令(装置信息读命令)(步骤S11),该命令用于读取连接到存储接口电路21的装置中的装置信息寄存器R的内容(装置信息)。此命令包括用于读取寄存器数据的命令代码、以及用于识别装置信息寄存器R为读取目标如特定地址(特定寄存器地址)的信息。特定寄存器地址是主机系统20的输入/输出空间中的地址(IO地址),该地址被分配给寄存器R。主控制器23产生的寄存器控制命令(装置信息读命令)通过并行传输而发送给存储接口电路21。
主机系统20的存储接口电路21把从主控制器23并行传输的寄存器控制命令(装置信息读命令)转换为串行数据(串行寄存器控制命令)。在此之后,存储接口电路21根据存储接口(串行接口)协议把串行寄存器控制命令传输到插入在卡槽22中的装置(在此实施例中为HDD 10)(步骤S12)。存储接口(串行接口)使用用于传输命令的CMD(命令)线。
插入到卡槽22中的装置根据通过CMD线传输的寄存器控制命令(装置信息读命令)从装置信息寄存器R读取装置信息。在插入到卡槽22中的装置是HDD 10的实施例中,通过IO接口电路12从寄存器R读取与HDD 10有关的装置信息(步骤S21)。装置信息由IO接口电路12转换为串行数据。为响应寄存器控制命令(装置信息读命令),作为串行数据的装置信息由IO接口电路12通过CMD线传输到主机系统20(步骤S22)。在主机系统20中,装置信息由存储接口电路21转换为并行数据,并发送给主控制器23。
在接收到装置信息时,主控制器23识别插入到卡槽22中的装置,即,连接到存储接口电路21的装置(步骤S13)。如果在步骤S14中确定装置是HDD(HDD 10),主控制器23就从装置信息检测包含在HDD 10的寄存器堆112b中的领先寄存器R0的地址n,即,包含在寄存器堆112b中的每个寄存器R0-Rm-1的公共偏移地址n(步骤S15)。随后,主控制器23根据用于HDD的控制程序而把HDD 10处理(识别)为具有并行接口(ATA接口)的HDD。因而,主控制器23通过操作HDD 10中的寄存器堆112b而控制从和到HDD 10的数据传输。
Re(2)从HDD 10读取数据接着参照图4A-4C,描述主机系统20从HDD 10读取数据的操作。主机系统20的主控制器23按以下方式发挥作用,假设HDD 10具有并行接口(ATA接口)。首先,主控制器23产生用于在寄存器堆112b的寄存器R2中写扇区编号的寄存器控制命令(扇区计数寄存器写命令)(步骤S101),其中,寄存器堆112b包括在HDD 10的HDC单元112中。此命令符合并行接口(ATA接口)的标准。该命令包括用于寄存器控制的命令代码(寄存器控制代码)、在IO空间中分配给将被控制的寄存器的地址(寄存器地址)、以及将被写(设定)到寄存器中的参数。如果在此情况下寄存器控制命令是扇区计数寄存器写命令,寄存器地址就指定扇区计数寄存器R2,并且所述参数指示扇区的编号。主控制器23产生的寄存器控制命令(扇区计数寄存器写命令)并行传输给存储接口电路21。
主机系统20的存储接口电路21把从主控制器23并行传输的寄存器控制命令(扇区计数寄存器写命令)转换为串行数据(串行寄存器控制命令)。存储接口电路21根据存储接口(串行接口)协议通过卡槽22把串行寄存器控制命令传输给HDD 10(步骤S102)。存储接口电路21使用用于命令传输的CMD线。
HDD 10的IO接口电路12接收通过CMD线传输的串行寄存器控制命令,把该命令转换为并行寄存器控制命令,并根据并行接口协议把此命令发送给主HDD单元11的主控制器112c。
主控制器112c通过IO接口电路12从主机系统20的主控制器23接收寄存器控制命令。主控制器112c识别IO接口电路12是否为符合并行接口(ATA接口)的主机。从而,在从IO接口电路12接收寄存器控制命令时,主控制器112c根据寄存器控制命令而执行寄存器控制(步骤S201)。换句话说,主控制器112c执行对并行接口(ATA接口)唯一的寄存器控制,该控制用于把包含在命令中的参数写到寄存器堆112b中由寄存器控制命令中包含的寄存器地址所指定的寄存器中。在此执行的寄存器控制命令是扇区计数寄存器写命令,并且包括指定扇区计数寄存器R2的寄存器地址、以及指定扇区编号的参数。相应地,在步骤S201中,通过执行寄存器控制命令(扇区计数寄存器写命令),在寄存器堆112b的扇区计数寄存器R2中写扇区编号。
以与上述相同的方式,主机系统20的主控制器23顺序地产生第一至第四目标LBA寄存器写命令(步骤S103、S105、S107和S109)。第一目标LBA寄存器写命令是用于在第一目标LBA寄存器R3中写第一目标LBA[7-0]的寄存器控制命令。第二目标LBA寄存器写命令是用于在第二目标LBA寄存器R4中写第二目标LBA[15-8]的寄存器控制命令。相似地,第三目标LBA寄存器写命令是用于在第三目标LBA寄存器R5中写第三目标LBA[23-16]的寄存器控制命令。进一步地,第四目标LBA寄存器写命令是用于在第四目标LBA寄存器R6中写第四目标LBA[27-24]的寄存器控制命令。第一至第四目标LBA寄存器写命令包含分别指定寄存器R3、R4、R5和R6的寄存器地址、以及分别指示目标LBA[7-0]、[15-8]、[23-16]和[27-24]的参数。存储接口电路21顺序地把第一至第四目标LBA寄存器写命令转换为各个串行寄存器控制命令,并顺序地把得到的命令传输到HDD 10(步骤S104、S106、S108和S110)。
HDD 10的主控制器112c从HDD 10的IO接口电路12顺序地接收第一至第四目标LBA寄存器写命令。根据接收的第一至第四目标LBA寄存器写命令(寄存器控制命令),主控制器112c分别在寄存器R3、R4、R5和R6中顺序地写目标LBA[7-0]、[15-8]、[23-16]和[27-24](步骤S202、S203、S204和S205)。结果,28位目标LBA[27-0]分散地储存在寄存器R3、R4、R5和R6中。
随后,主机系统20的主控制器23产生寄存器控制命令(命令寄存器写命令),该命令用于在寄存器R8中写将由HDD 10执行的命令代码(例如用于指定读)(步骤S111)。此命令包括用于指定命令寄存器R8的寄存器地址、以及命令代码。HDD 10根据第一至第四目标LBA寄存器写命令,使用已经写在HDD 10的寄存器堆112b中的参数而执行所述命令代码。在此实施例中,此命令代码指定读。寄存器控制命令(命令寄存器写命令)由存储接口电路21转换为串行寄存器控制命令,并传输给HDD 10(步骤S112)。
HDD 10的主控制器112c从HDD 10的IO接口电路12接收串行寄存器控制命令(命令寄存器写命令)。随后,主控制器112c在寄存器R8中写在所接收命令中包括的命令代码(用于指定读)(步骤S206)。结果,主控制器112c确定主机系统20已经向HDD 10发出命令,并且根据在命令寄存器R8中写的命令代码而开始执行操作,即由主机系统20请求的操作(步骤S207)。在此实施例中,开始数据读操作,其中,从盘111a的下述部分读取与寄存器R2所指示扇区编号相应的数据,所述部分从在盘111a上由分散储存在寄存器R3、R4、R5和R6中的目标LBA[27-0]指定的位置开始。
如上所述,在实施例中,如果IO接口电路12(最小规模电路)通过并行接口连接到HDD 10,具有HDC单元112的HDD 10可由串行接口连接1到包含在主机系统20中的现有存储接口电路21,其中,HDC单元112符合多用途并行接口(ATA接口)。结果,主机系统20以与在控制具有通用并行接口的HDD时相同的方式,用寄存器控制命令控制通过存储接口电路21连接到其上的HDD 10。换句话说,主机系统20可通过现有的存储接口向HDD 10提供操作命令(命令代码)和执行命令所必需的参数。而且,在实施例中,使在分配给寄存器堆112b中每个寄存器R0-Rm-1的地址(即相对地址和偏移地址)中包括的相对地址与在分配给现有HDD的每个寄存器R0′-Rm-1′的地址中包括的相对地址相对应,其中,现有HDD符合多用途并行接口。这使得主机系统20能向HDD 10发出命令,并使HDD 10以与主机系统20通过并行接口(ATA接口)连接到HDD 10的情形相同的程序执行命令。相应地,为具有常规并行接口的HDD设计的控制程序可用作由主机系统20的主控制器23执行的盘控制程序。进一步地,当程序设计者新设计盘控制程序时,他们可利用设计用于具有常规并行接口的HDD的控制程序的方法,这减少新设计程序所需的时间和努力。
当开始与写在寄存器R8中的命令代码相应的操作(在此实施例中为数据读)时,HDD 10的主控制器112c把寄存器R8从命令寄存器R8切换为状态寄存器R8。随后,主控制器112c在状态寄存器R8和备用状态寄存器Rm-2中写包括忙位BSY(BSY=1)的状态信息。在此假设通过数据读而把读数据写到数据寄存器R0中。此时,主控制器112c确定可以执行由主机系统20请求的数据传输,由此把包括在状态信息中的忙位BSY和数据请求位DRQ分别重写为“0”和“1”,其中,所述状态信息保存在状态寄存器R8和备用状态寄存器Rm-2的每一个中。
在HDD 10执行命令寄存器写命令之后,主机系统20的主控制器23产生用于从备用状态寄存器Rm-2读取状态信息的寄存器控制命令(备用状态寄存器读命令)(步骤S113)。寄存器控制命令(备用状态寄存器读命令)由存储接口电路21转换为串行寄存器控制命令,并传输给HDD 10(步骤S114)。
HDD 10的主控制器112c从HDD 10的IO接口电路12接收寄存器控制命令(备用状态寄存器读命令)。根据此命令,主控制器112c从备用状态寄存器Rm-2读取状态信息(步骤S208)。主控制器112c向IO接口电路12发送读取的状态信息。IO接口电路12把它转换为串行状态信息,并根据串行接口协议向主机系统20发送串行状态信息(步骤S209)。
主机系统20的主控制器23查询包括在状态信息中的位BSY和DRQ,由此确定是否BSY=1且DRQ=0(步骤S115)。主控制器23重复执行步骤S113,直到它确认BSY=1且DRQ=0为止(步骤S115),即直到HDD 10变得能执行所请求的数据传输为止。在确认BSY=1且DRQ=0时,主控制器23产生用于从状态寄存器R8读取新状态信息的寄存器控制命令(状态寄存器读命令)(步骤S116)。状态寄存器读命令串行传输给HDD 10(步骤S117)。结果,在HDD 10中,以与在备用状态寄存器读命令的情形中相同的方式从状态寄存器R8读取状态信息(步骤S210)。此状态信息由IO接口电路21转换为串行状态信息,并传输给主机系统20(步骤S211)。因而,主机系统20的主控制器23根据命令寄存器写命令而获得状态信息,所述状态信息表示为响应已经写到HDD 10的寄存器R8中的读命令而在HDD10中执行的执行结果。如上所述,在实施例中,主机系统20以与主机系统20和HDD 10通过并行接口(ATA接口)连接的情形中相同的程序获得在HDD 10中的命令执行结果。
在此之后,主控制器23产生用于从寄存器R0读数据的寄存器控制命令(数据寄存器读命令)(步骤S118),并把数据寄存器读命令串行传输到HDD 10(步骤S119)。结果,HDD 10重复读取数据寄存器R0的读数据并把读数据通过IO接口电路12串行传输到主机系统20的操作、以及把随后的读数据写到数据寄存器R0中的操作(步骤S212)。此重复一直持续到主机系统20请求的所有数据项目传输到主机系统20为止。因而,在实施例中,通过串行接口连接系统20和HDD 10,通过串行传输而执行主机系统20与HDD 10之间的数据传输,由此实现比用并行接口连接主机系统和HDD的情形更高速率的数据传输。
另一方面,当主机系统20的主控制器23从HDD 10接收所有请求的数据项目时(步骤S120),再次产生备用状态寄存器读命令(步骤S121)。备用状态寄存器读命令由存储接口电路21转换为串行寄存器控制命令,并传输给HDD 10(步骤S122)。结果,在HDD 10中,从备用状态寄存器Rm-2读取状态信息(步骤S213)。从状态寄存器Rm-2读取的状态信息发送给主机系统20(步骤S214)。
查询包括在从HDD 10发送的状态信息中的位BSY和DRQ,主机系统20的主控制器23确定是否BSY=0且DRQ=0(步骤S123)。在确认BSY=0且DRQ=0(步骤S123)之前,即,在从HDD 10传输所有请求的数据项目之前,主控制器23一直重复上述步骤S121。在确认BSY=0且DRQ=0时,主控制器23产生用于从状态寄存器R8再次读取最新状态信息的寄存器控制命令(状态寄存器读命令)(步骤S124),并把产生的命令串行传输给HDD 10(步骤S125)。HDD 10则从状态寄存器R8读取最新的状态信息(步骤S215)。状态信息由IO接口电路12转换为串行状态信息,并传输给主机系统20(步骤S216)。因而,主机系统20的主控制器23获得表示HDD 10读取的最终数据结果的状态信息。
如果包括在状态信息中的错误位ERR表示发生错误(ERR=1),主机系统20的主控制器23就产生用于从错误寄存器R1读取错误信息的寄存器控制命令(错误寄存器读命令),并把该命令通过存储接口电路21传输给HDD 10。HDD 10则从错误寄存器读取错误信息,并把读取的信息发送给主机系统20。因而,主机系统20的主控制器23以与主机系统20和HDD 10通过并行接口(ATA接口)连接的情形中相同的程序,获得表示在HDD 10中执行命令的过程中错误详细情况的错误信息。
Re(3)在HDD 10中写数据以下简单描述主机系统20在HDD 10中写数据的操作。以与读数据情形中相同的程序,即以与图4A-4C流程图所示相同的程序,主机系统20在HDD 10中写数据。数据写和数据读在与图4B流程图中步骤S118相应的处理中是不同的。具体地,在步骤S118中,主机系统20向HDD 10提供用于从数据寄存器R0读(获得)数据的寄存器控制命令(数据寄存器读命令)。相反,在数据写的情况下,在与步骤S118相应的处理中,主机系统20向HDD 10提供用于在数据寄存器R0中写(传输)数据的寄存器控制命令(数据寄存器写命令)。在此情况下,主机系统20还向HDD 10提供由寄存器R2中设定的扇区编号所指定大小的数据(写数据)。写数据通过数据寄存器R0以两个字节为单位储存在写缓冲器(未示出)中,其中,写缓冲器设置在HDD10的主HDD单元11中。储存在写缓冲器中的写数据以扇区为单位(例如以512字节为单位)写到盘11a上,在盘111a上用分散储存在寄存器R3、R4、R5和R6中的目标LBA[27-0]所指定的位置开始。
在上述实施例中,本发明应用于具有硬盘驱动器(HDD)的系统。然而,本发明还可应用于配置有其它盘驱动器如磁光盘驱动器的系统。只要系统设置有包含符合多用途并行接口的盘控制单元的盘驱动器就足矣。
本领域中技术人员容易明白其它的优点和变化。从而,在更广泛的方面中,本发明不局限于在此示出和描述的特定细节和代表性实施例。相应地,只要不偏后附权利要求及其等效物所定义的本发明一般概念的精神或范围,就可作出各种变更。
权利要求
1.一种由主机系统使用的盘驱动器,主机系统包括存储接口电路,该存储接口电路还作为用于把主机系统连接到符合串行接口的输入/输出装置的串行接口电路,所述盘驱动器的特征在于包括符合并行接口的盘控制单元,所述盘控制单元包括用于保存命令代码和参数的寄存器堆,所述寄存器堆包括多个寄存器,所述多个寄存器与包含在符合并行接口的现有盘驱动器中的寄存器等效,主机系统可访问寄存器堆中的多个寄存器;以及通过并行接口连接到盘控制单元的输入/输出接口电路,所述输入/输出接口电路可连接到主机系统的存储接口电路,所述输入/输出接口电路利用并行接口协议与盘控制单元通信,并且利用串行接口协议与主机系统的存储接口电路通信,其中,盘控制单元包括主控制器,当主机系统通过主机系统的存储接口电路向盘驱动器发送一系列的寄存器控制命令并且所述系列的寄存器控制命令从输入/输出接口电路传送给盘控制单元时,所述主控制器根据所述系列寄存器控制命令来控制寄存器堆中的寄存器,并从寄存器堆获得命令代码和参数,由所述系列的寄存器控制命令指定命令代码和参数,命令代码将在盘驱动器中执行,参数则是执行命令代码所必需的。
2.如权利要求1所述的盘驱动器,特征在于进一步包括保存对盘驱动器唯一的装置信息的装置信息寄存器,主机系统可访问装置信息寄存器。
3.如权利要求2所述的盘驱动器,特征在于公共特定地址分配给装置信息寄存器以及在每个输入/输出装置中包含的相似装置信息寄存器,而与输入/输出装置的类型无关。
4.如权利要求3所述的盘驱动器,特征在于当输入/输出接口电路通过主机系统的存储接口电路从主机系统接收装置信息读命令时,输入/输出接口电路向主机系统的存储接口电路提供由装置信息寄存器保存的装置信息,作为对包括特定地址的装置信息读命令的回复,其中,装置信息寄存器由特定地址指定。
5.如权利要求2所述的盘驱动器,特征在于向寄存器堆中的每个寄存器分配地址,该地址由公共偏移地址和寄存器堆中所述每个寄存器唯一的相对地址表示。
6.如权利要求5所述的盘驱动器,特征在于装置信息寄存器保存的装置信息包括偏移地址。
7.如权利要求5所述的盘驱动器,特征在于分配给寄存器堆中所述每个寄存器的相对地址与分配给符合并行接口的现有盘驱动器中的每个寄存器的相对地址相同。
8.如权利要求1所述的盘驱动器,特征在于向寄存器堆中的每个寄存器分配地址,该地址由公共偏移地址和寄存器堆中所述每个寄存器唯一的相对地址表示。
9.如权利要求8所述的盘驱动器,特征在于分配给寄存器堆中所述每个寄存器的相对地址与分配给符合并行接口的现有盘驱动器中的每个寄存器的相对地址相同。
10.如权利要求1所述的盘驱动器,特征在于寄存器堆包括状态寄存器,所述状态寄存器保存包括错误位的命令执行结果,所述错误位指示是否发生错误;以及错误寄存器,所述错误寄存器保存指示错误细节的错误信息。
11.一种把盘驱动器连接到配备有存储接口电路的主机系统的接口连接方法,该存储接口电路还作为用于把主机系统连接到符合串行接口的输入/输出装置的串行接口电路,所述盘驱动器包括符合并行接口的盘控制单元、以及通过并行接口连接到盘控制单元的输入/输出接口电路,所述输入/输出接口电路可连接到主机系统的存储接口电路,所述输入/输出接口电路利用并行接口协议与盘控制单元通信,并且利用串行接口协议与主机系统的存储接口电路通信,所述接口连接方法的特征在于包括当主控制器通过存储接口电路访问盘驱动器时,通过包含在主机系统中的主控制器产生符合并行接口的一系列寄存器控制命令;主机系统的存储接口电路根据串行接口协议,向盘驱动器传送所述系列的寄存器控制命令;当传送给盘驱动器的一系列寄存器控制命令根据并行接口协议通过盘驱动器的输入/输出接口电路而发送给盘控制单元时,根据传送的一系列寄存器控制命令而在用于保存命令代码和参数的寄存器堆上执行寄存器操作,寄存器操作包括在寄存器堆中写命令代码和参数,由所述系列的寄存器控制命令指定命令代码和参数,命令代码将在盘驱动器中执行,参数则是执行命令代码所必需的,所述寄存器堆包括多个寄存器,所述多个寄存器与包含在符合并行接口的现有盘驱动器中的寄存器等效,主机系统可访问寄存器堆中的多个寄存器;以及使用所述参数来执行命令代码,其中,命令代码和参数保存在寄存器堆中。
12.如权利要求11所述的接口连接方法,特征在于盘驱动器包括保存对盘驱动器唯一的装置信息的装置信息寄存器,接口连接方法进一步包括由主机系统的主控制器从装置信息寄存器读取装置信息;以及基于主机系统的主控制器读取的装置信息而确定连接到主机系统的装置类型,所述确定包括当装置信息指示连接到主机系统的装置是盘驱动器时识别盘驱动器符合并行接口。
13.如权利要求12所述的接口连接方法,特征在于向寄存器堆中的每个寄存器分配地址,该地址由公共偏移地址和寄存器堆中所述每个寄存器唯一的相对地址表示。
14.如权利要求13所述的接口连接方法,特征在于装置信息寄存器保存的装置信息包括偏移地址。
15.如权利要求13所述的接口连接方法,特征在于分配给寄存器堆中所述每个寄存器的相对地址与分配给符合并行接口的现有盘驱动器中的每个寄存器的相对地址相同。
全文摘要
本发明涉及用存储接口电路连到主机系统的盘驱动器及接口连接方法,其中盘驱动器(10)包括符合多用途并行接口的盘控制单元(112)。盘控制单元(112)具有寄存器堆(112b),寄存器堆(112b)包括主机系统(20)可访问的多个寄存器。盘驱动器(10)进一步包括通过并行接口连接到盘控制单元(112)的输入/输出(IO)接口电路(12)。IO接口电路(12)可连接到包含在主机系统(20)中的存储接口电路(21)。IO接口电路(12)利用并行接口协议与盘控制单元(112)通信,并且利用串行接口协议与存储接口电路(21)通信。
文档编号G11B20/10GK1700163SQ20051006848
公开日2005年11月23日 申请日期2005年4月28日 优先权日2004年5月18日
发明者荒川丰, 木下忠明 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1