实现存储设备专用命令的方法及存储设备的制作方法

文档序号:6563223阅读:167来源:国知局
专利名称:实现存储设备专用命令的方法及存储设备的制作方法
技术领域
本发明涉及存储技术领域,尤其涉及一种实现存储设备专用命令的方法及存储设备。
背景技术
存储设备一般都支持标准的接口协议,例如IDE(Integrated DriveElectronics,电子集成驱动器)/ATA(Advanced Technology Attachment,高级技术附加装置)、SCSI(Small Computer System Interface,小型计算机系统接口)、USB(Universal Serial Bus,通用串行总线)等协议,主机(host computer)的操作系统通常也都支持这些标准协议。除了标准协议中定义的通用命令外,存储设备的制造商还定义了自己的专用命令(Vendor Unique Command,以下简称专用命令)。通过这些专用命令能实现标准协议以外的特殊功能,为产品的设计开发、测试和性能维护等提供方便。但是,由于这些专用命令都不属于标准的接口协议,而且不同的制造商定义的专用命令一般都不同,因此操作系统一般不支持这些专用命令。
要使主机能够支持这些专用命令来完成特定的功能,设计人员必须编写驱动程序或者编写DOS模式下的软件,来操作端口向存储设备分发专用命令。对于不同的操作系统,设计人员需要编写不同的驱动程序。而且,当存储设备通过适配器与主机连接时,例如,使用带USB桥接芯片的适配器,开发人员必须获得适配器厂商的支持,通过USB得命令序列来向存储设备发送专用命令。可见,要实现存储设备的专用命令,需要做许多额外的工作,增加了存储设备开发过程的复杂程度,延长了开发周期。

发明内容
本发明公开了一种实现存储设备专用命令的方法及存储设备,在不编写或更改驱动程序的基础上,就能实现主机支持存储设备的专用命令。
为此,本发明采用如下技术方案
一种实现存储设备专用命令的方法,包括步骤扩展存储设备的逻辑地址,其中,设置每个扩展的逻辑地址与一个专用命令对应;存储设备接收操作命令,解析其中的逻辑地址,并判断解析的逻辑地址是否在扩展的逻辑地址范围内,若是,执行解析的逻辑地址对应的专用命令。
所述方法还包括若解析的逻辑地址在有效的逻辑地址范围内,执行存储设备的通用命令。
在存储设备接收操作命令之前,所述方法还包括主机调用以存储设备的逻辑地址为参数的读写函数;主机的操作系统根据读写函数调用驱动程序;驱动程序通过接口,将操作命令下发给存储设备。
所述方法还包括在解析的逻辑地址既不在有效的逻辑地址范围内、也不在扩展的逻辑地址范围内的情况下,存储设备向主机返回错误信息。
所述存储设备包括以逻辑地址为读写命令参数的存储设备。
所述以逻辑地址为读写命令参数的存储设备包括使用电子集成驱动器接口的存储设备。
所述使用电子集成驱动器接口的存储设备包括硬盘或光盘。
一种存储设备,包括操作命令解码器、专用命令解码器、专用命令执行器和控制器;所述操作命令解码器,用于在控制器的控制下接收操作命令,并解析出操作命令包含的逻辑地址;所述专用命令解码器,用于存储扩展的逻辑地址与专用命令的对应关系;并且,对操作命令解码器解析的扩展的逻辑地址进行解码,得到逻辑地址对应的专用命令;所述专用命令执行器,用于执行专用命令解码器得到的专用命令;所述控制器,用于对操作命令解码器解析的逻辑地址所属范围进行判断,并根据判断结果控制专用命令解码器和专用命令执行器工作。
所述存储设备还包括通用命令执行器;
所述通用命令执行器,用于执行存储设备的通用命令。
所述存储设备包括以逻辑地址为读写命令参数的存储设备。
所述以逻辑地址为读写命令参数的存储设备包括使用电子集成驱动器接口的存储设备。
所述使用电子集成驱动器接口的存储设备包括硬盘或光盘。
本发明通过扩展存储设备的逻辑地址,实现了存储设备的专用命令。可见,本发明通过直接调用主机操作系统提供的通用读写命令,对特殊的逻辑地址进行读写,来实现对存储设备专用命令的调用。采用本发明,不需要开发人员编写或更改驱动程序,就能实现主机对存储设备专用命令的调用,从而简化了存储设备的开发程序,缩短了开发周期,节约了开发成本。
而且,本发明对各种操作系统是通用的。也就是,在主机的不同的操作系统上,都可以实现对存储设备专用命令的支持。可见,本发明提高了存储设备专用命令的兼容性。


图1为本发明实现存储设备专用命令的流程图;图2为本发明实施例中实现存储设备专用命令的流程图;图3为本发明中主机与存储设备的系统结构示意图。
具体实施例方式
本发明主要通过对存储设备逻辑地址的扩展,以及将扩展的逻辑地址作为操作命令的参数,来实现主机支持存储设备的专用命令。
如图1所示,本发明包括以下步骤步骤101扩展存储设备的逻辑地址,其中,设置每个扩展的逻辑地址与一个专用命令对应;步骤102存储设备接收主机操作命令,解析其中的逻辑地址;步骤103判断解析的逻辑地址是否在扩展的逻辑地址范围内,若是,则执行解析的逻辑地址对应的专用命令。
其中,存储设备包括各种现有的或未来出现的用于存储的装置,包括以逻辑地址为读写命令参数的存储设备,特别是使用IDE接口的存储设备,比如,硬盘或光盘等。这些存储设备都有一个有效的逻辑地址范围。本发明中,有效的逻辑地址是这样定义的存储设备根据容量的大小,可以有不同的逻辑地址范围,该范围是指从零开始到最大的逻辑地址,在该范围内进行读写是允许的,在该范围外读写就会发生读写错误,这个范围就是有效的逻辑地址范围。有效的逻辑地址与存储设备上存储单元的物理地址相对应。主机对这个有效的逻辑地址范围内的逻辑地址进行读写,就能实现对存储媒质上的对应的物理地址进行读写。当读写操作的逻辑地址不在该有效逻辑地址范围内时,存储设备通常返回错误信息。
本发明是在这个有效的逻辑地址范围之外,自定义一个特殊的逻辑地址范围,也就是对存储设备的逻辑地址进行扩展。在扩展的逻辑地址范围内,根据需要,自行定义各个逻辑地址对应的含义,也就是专用命令。主机对扩展的逻辑地址范围内的某个逻辑地址进行读写时,存储设备并不返回错误信息,而是调用预先定义的专用命令,从而实现主机对存储设备专用命令的调用。
在使用某个专用命令时,只需要知道该专用命令对应的逻辑地址,然后通过调用主机的操作系统提供的标准的文件读写函数,对该逻辑地址进行读写操作,就能实现专用命令的调用。
下面详细介绍本发明的一个实施例。
如图2所示,本实施例流程包括步骤201扩展存储设备的逻辑地址;如前所述,也就是设置逻辑地址和专用命令的对应关系,完成对存储设备逻辑地址的扩展。扩展的逻辑地址大于有效的逻辑地址。
步骤202应用程序调用读写函数,读写函数以逻辑地址为参数;主机上的应用程序负责调用操作系统提供的标准文件读写函数。
若想调用专用命令,则在调用标准文件读写函数时,将专用命令对应的逻辑地址作为函数调用的参数。
步骤203文件系统对读写函数作相应处理;并调用驱动程序;
函数调用后,操作系统中的文件系统对读写函数进行相应的处理,并根据读写函数,调用操作系统提供的设备驱动程序。
步骤204驱动程序通过接口,将操作命令下发给存储设备;读写函数经过文件系统的处理后,得到操作任务和参数。设备驱动程序通过接口硬件,将由操作任务和参数构成的操作命令下发给存储设备。
步骤205存储设备对操作命令进行解码,得到逻辑地址;存储设备通过自身的操作命令解码器,对操作命令进行解码操作,从而获得操作命令中包含的参数,也就是逻辑地址。
步骤206判断逻辑地址是否在有效的逻辑地址范围内,若是,执行步骤207;否则,执行步骤208;对于逻辑地址,首先要判断它是否在有效的逻辑地址范围内,若是,则执行存储设备的通用命令,否则,判断其是否在扩展的逻辑地址范围内。
步骤207执行存储设备的通用命令;存储设备执行接口协议规定的标准的数据读写操作,对存储媒质进行读写。
步骤208判断逻辑地址是否在步骤201所扩展的逻辑地址范围内,若是,执行步骤209;否则,执行步骤211;步骤209对扩展的逻辑地址进行解码;其中,步骤209的逻辑地址是指专用命令对应的逻辑地址,也就是它落入到扩展的逻辑地址的范围内。通过对逻辑地址进行解码操作,得到逻辑地址所对应的专用命令。
如果逻辑地址既不在有效的逻辑地址范围内,也不在扩展的逻辑地址范围内,则说明读写函数调用的逻辑地址参数出错了。
步骤210执行逻辑地址对应的专用命令;步骤211向主机返回错误信息。
其中,对于步骤206、步骤207和步骤208,也可以由以下步骤进行替换判断逻辑地址大小,若逻辑地址落入有效逻辑地址范围内,则执行存储设备的通用命令;若逻辑地址落入扩展逻辑地址范围内,则执行步骤209和步骤210;若逻辑地址既不在有效逻辑地址内也不在扩展逻辑地址内,则执行步骤211。
本发明还公开了一种存储设备,用该存储设备实现专用命令的系统示意图如图3所示,系统包括主机301和存储设备302。
主机301包括应用程序311和操作系统312。应用程序311负责调用操作系统312提供的标准文件读写函数,在调用标准文件读写函数时,以逻辑地址作为函数的参数,特别地,以专用命令对应的逻辑地址作为参数。操作系统312中的文件系统对函数作相应的处理,并且根据函数调用操作系统312提供的设备驱动程序,由设备驱动程序通过接口硬件将由读写任务和参数构成的操作命令下发给存储设备302。
存储设备302接到操作命令后,由操作命令解码器进行命令解码,当解码得到的逻辑地址在有效的逻辑地址范围内时,执行接口协议规定的标准的数据读写操作,对存储媒质进行读写。当解码得到的逻辑地址不在有效的逻辑地址范围内时,存储设备302并不返回错误信息,而是判断逻辑地址是否在扩展的逻辑地址内,若是,则由专用命令解码器对逻辑地址进行解码,得到逻辑地址对应的专用命令,并由专用命令执行器执行专用命令;若不是,则返回错误信息。
由图3可知,存储设备302包括操作命令解码器313、通用命令执行器314、专用命令解码器315、专用命令执行器316和控制器317。
操作命令解码器313用于,对存储设备接收到的操作命令解码,得到逻辑地址,以及其它命令参数。
通用命令执行器314用于,执行存储设备的通用命令。
专用命令解码器315预先保存有扩展逻辑地址和专用命令的对应关系,并且,专用命令解码器315对经过控制器317判断、已确定是扩展的逻辑地址进行译码操作,得到其对应的专用命令。专用命令执行器316用于,执行专用命令解码器315得到的专用命令。
控制器317统一对操作命令解码器313、通用命令执行器314、专用命令解码器315和专用命令执行器316进行控制。主要包括,对操作命令解码器313解析的逻辑地址作范围判断,若判断结果表明逻辑地址在有效的逻辑地址内,则指示通用命令执行器314执行通用命令;若判断结果表明逻辑地址在扩展的逻辑地址范围内,则指示专用命令解码器315对扩展的逻辑地址进行解码,并指示专用命令执行器316执行专用命令。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种实现存储设备专用命令的方法,其特征在于,所述方法包括扩展存储设备的逻辑地址,其中,设置每个扩展的逻辑地址与一个专用命令对应;存储设备接收操作命令,解析其中的逻辑地址,并判断解析的逻辑地址是否在扩展的逻辑地址范围内,若是,执行解析的逻辑地址对应的专用命令。
2.根据权利要求1所述的实现存储设备专用命令的方法,其特征在于,所述方法还包括若解析的逻辑地址在有效的逻辑地址范围内,执行存储设备的通用命令。
3.根据权利要求1或2所述的实现存储设备专用命令的方法,其特征在于,在存储设备接收操作命令之前,所述方法还包括主机调用以存储设备的逻辑地址为参数的读写函数;主机的操作系统根据读写函数调用驱动程序;驱动程序通过接口,将操作命令下发给存储设备。
4.根据权利要求1或2所述的实现存储设备专用命令的方法,其特征在于,所述方法还包括在解析的逻辑地址既不在有效的逻辑地址范围内、也不在扩展的逻辑地址范围内的情况下,存储设备向主机返回错误信息。
5.根据权利要求1或2所述的实现存储设备专用命令的方法,其特征在于,所述存储设备包括以逻辑地址为读写命令参数的存储设备。
6.根据权利要求5所述的实现存储设备专用命令的方法,其特征在于,所述以逻辑地址为读写命令参数的存储设备包括使用电子集成驱动器接口的存储设备。
7.根据权利要求6所述的实现存储设备专用命令的方法,其特征在于,所述使用电子集成驱动器接口的存储设备包括硬盘或光盘。
8.一种存储设备,其特征在于,所述存储设备包括操作命令解码器、专用命令解码器、专用命令执行器和控制器;所述操作命令解码器,用于在控制器的控制下接收操作命令,并解析出操作命令包含的逻辑地址;所述专用命令解码器,用于存储扩展的逻辑地址与专用命令的对应关系;并且,对操作命令解码器解析的扩展的逻辑地址进行解码,得到逻辑地址对应的专用命令;所述专用命令执行器,用于执行专用命令解码器得到的专用命令;所述控制器,用于对操作命令解码器解析的逻辑地址所属范围进行判断,并根据判断结果控制专用命令解码器和专用命令执行器工作。
9.根据权利要求8所述的存储设备,其特征在于,所述存储设备还包括通用命令执行器;所述通用命令执行器,用于执行存储设备的通用命令。
10.根据权利要求8或9所述的存储设备,其特征在于,所述存储设备包括以逻辑地址为读写命令参数的存储设备。
11.根据权利要求10所述的存储设备,其特征在于,所述以逻辑地址为读写命令参数的存储设备包括使用电子集成驱动器接口的存储设备。
12.根据权利要求11所述的存储设备,其特征在于,所述使用电子集成驱动器接口的存储设备包括硬盘或光盘。
全文摘要
本发明公开了一种实现存储设备专用命令的方法,包括步骤扩展存储设备的逻辑地址,其中,设置每个扩展的逻辑地址与一个专用命令对应;存储设备接收操作命令,解析其中的逻辑地址,并判断解析的逻辑地址是否在扩展的逻辑地址范围内,若是,执行解析的逻辑地址对应的专用命令。本发明通过扩展存储设备的逻辑地址,实现了存储设备的专用命令。采用本发明,不需要开发人员编写驱动程序就能调用存储设备的专用命令,简化了存储设备的开发程序,缩短了开发周期,节约了开发成本;而且,本发明提高了存储设备专用命令的兼容性。本发明还公开了一种存储设备。
文档编号G06F13/00GK1959659SQ20061015231
公开日2007年5月9日 申请日期2006年9月21日 优先权日2006年9月21日
发明者阮玉园, 杨天文 申请人:重庆禾兴江源科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1