应用于储存装置的沟通方法

文档序号:6579529阅读:195来源:国知局
专利名称:应用于储存装置的沟通方法
技术领域
本发明是关于一种应用于一储存装置与一应用软件的沟通方法,尤指动态地于该 储存装置中选取出一区块地址来作为该储存装置与该应用软件的沟通方法。
背景技术
一般而言,在计算机系统中,当一应用程序对一储存装置执行一自订指令或读取 该储存装置的状态等时,必须先与该储存装置建立起一套沟通机制。在现有的作法中,该应 用程序会先与该储存装置的控制器利用频内(In-Band)的方式固定出一个沟通磁区地址。 接着,该应用程序就可以通过该沟通磁区地址来进行与储存装置的沟通。或者是当应用程 序与储存装置控制器使用频外(Out-of-Band)的方沟通时,储存装置控制器则不需要固定 出一个沟通磁区地址就可以通过该特定的其它传输接口沟通了。然而,现有的作法会存有 不少的问题与缺点。举例来说,在使用频外的方式进行沟通时,该应用程序的指令必须符合 该储存装置的传输接口的信号形式,也就是该储存装置所附属的主机系统必须增加支持该 传输接口的硬件,并再通过一传输连接线方可进行频外方式的沟通,如此一来就增加了该 储存装置的成本。另一方面,若使用频内的方式进行沟通时,当该应用程序要在进行沟通 之前固定出该沟通磁区地址时,为了避开该计算机系统的文件系统所使用到的地址范围, 该应用程序会决定出一个很大的地址,例如利用该储存装置的主要开机记录(MasterBoot Record,MBR)的最后一个可用磁区地址(例如,OxFFFFFFFF)或是大于该储存装置容量的磁 区地址作为该沟通磁区地址,如此一来就产生了兼容性的问题,因为该地址可能不是某些 系统装置控制器或操作系统的合法磁区地址,而使得沟通失效。同时,上述频内的方式也会 有延伸性的问题,因为随着该计算机系统的储存装置的容量日益扩增下,当该固定的磁区 地址在小于储存装置的容量时,该固定的磁区地址就会因为和文件系统分配到的磁区地址 发生冲突,而变成不合法的直接存取磁区地址,也使得沟通失效。此外,在现有技术中另外 一种频内的沟通方式是利用该应用软件的生产商预设的或预先保留的指令来与该储存装 置进行沟通,其也是会遇到兼容性的问题,这是由于某些系统装置控制器并不支持其标准 指令以外的指令,或者必须要加入自订的驱动程序来解决其兼容性的问题。因此,从上述的 现有技术可以得知,如何实现一个高兼容性且高延伸性的储存装置沟通方法已成为业界亟 需解决的问题
发明内容
因此,本发明的目的在于提供一种动态地于一储存装置中选取出一区块地址来作 为该储存装置与一应用软件的沟通方法。本发明提供一种应用于一储存装置与一应用软件的沟通方法,包含有下列步骤 该应用软件于该储存装置中动态地选取出一区块地址作为一特定的区块地址;以及该应用 软件通过对该特定的区块地址进行指令写入或状态读取来与该储存装置进行沟通。


图1的依据本发明应用于一储存装置的沟通方法的实施例流程图。图2是本发明的一交换预设控制信号程序的一实施例状态图。
具体实施方式
在说明书及后续的权利要求书当中使用了某些词汇来指称特定的元件。所属领域 中具有通常知识者应可理解,硬件制造商可能会用不同的名词来称呼同一个元件。本说明 书及后续的权利要求书并不以名称的差异来作为区分元件的方式,而是以元件在功能上的 差异来作为区分的准则。在通篇说明书及后续的请求相当中所提及的“包含”是一开放式 的用语,故应解释成“包含但不限定于”。此外,“耦接” 一词在此是包含任何直接及间接的 电气连接手段,因此,若文中描述一第一装置耦接于一第二装置,则代表该第一装置可直接 电气连接于该第二装置,或者通过其它装置或连接手段间接地电气连接至该第二装置。请参考图1。图1所示是依据本发明应用于一储存装置的沟通方法100的实施例 流程图。为了更清楚描述本发明的精神所在,本发明实施例的沟通方法100,是以一应用软 件对一硬盘(Hard disk)装置之间的沟通方法作为说明,然而,此并不作为本发明的限制。 换句话说,在不限定一操作系统环境以及一传输接口下,任何具有对该储存装置进行读写 磁区数据的能力的应用软件均可利用本发明的沟通方法100进行沟通,此亦属本发明的范 畴所在。请注意,倘若大体上可达到相同的结果,并不需要一定照图1所示的流程中的步骤 顺序来进行,且图1所示的步骤不一定要连续进行,亦即其它步骤亦可插入其中。应用于该 储存装置的沟通方法100包含有下列步骤步骤102 开始;步骤104 动态地通过该应用软件选定该储存装置中的一磁区,并设定该磁区的 地址来作为沟通方法100的一特定区块地址;步骤106 与该储存装置进行一交换预设控制信号程序,以判定该储存装置是否 为一预定的储存装置;步骤108 判断该交换预设控制信号程序是否成功,若是则跳至步骤112,若否则 跳至步骤110 ;步骤110 判定该储存装置不是该预定的储存装置,并结束对该储存装置的沟通;步骤112 判定该储存装置是该预定的储存装置,并锁定和储存该特定区块地址;步骤114 当该储存装置的一控制装置处于一正常沟通状态时,该控制装置通过 对该特定区块地址进行指令写入或状态读取来与该储存装置进行沟通; 步骤116 是否结束该交换预设控制信号程序,若是则跳至步骤118,若否则跳至 步骤114 ;步骤118 结束该交换预设控制信号程序,且在结束该交换预设控制信号程序后 进入一结束沟通状态。本发明的沟通方法100中,为了执行该交换预设控制信号程序,该应用软件会在 该储存装置中选择一磁区,并设定该磁区的地址来作为执行该交换预设控制信号程序所需 的该特定区块地址(步骤104)。请注意,本发明并未限定该应用软件选择该特定区块地址 的方法。换句话说,在本发明的另一实施例中,该应用软件是分析该储存装置的主要开机记录(Master Boot Record,MBR)或磁盘分割表(GUIDPartition Table,GPT)来找出没有被使 用的磁区,并选取该磁区的地址来作为该特定区块地址。此外,在本发明的另一实施例中, 该应用软件在进行沟通之前先建立一暂存文件,且通过一计算机系统的文件系统自动产生 配置给该暂存文件的一区块地址,并选取该区块地址来作为该特定区块地址。请注意,为了 保存该特定区块地址的原始数据,本发明沟通方法100在选定该特定区块地址后,该应用 软件会对该特定区块地址进行读取动作,并将相对应于该特定区块地址的数据内容先进行 备份。当本发明的沟通方法100在步骤108完成判断该交换预设控制信号程序后就会还原 该特定区块地址的数据内容,因为在步骤108中,当其判定该储存装置不是该预定的储存 装置时,该特定区块就不会被存取了。反之,当步骤108判定该储存装置是该预定的储存装 置时,该储存装置就会进入正常的沟通状态,此时只要是合法的指令或预设的交换控制信 号皆不会被写入该特定区块。
接着在步骤106中,该应用软件与该储存装置的一控制装置进行该交换预设控制 信号程序,以判定该储存装置是否为该预定的储存装置。请参考图2,图2所示是本发明的 该交换预设控制信号程序的一状态图。依据本发明图1的实施例,该交换预设控制信号程 序包含有四个预设状态,亦即一开放状态202、一锁定状态204、一非锁定状态206以及一结 束状态208,其中在开放状态202时,该应用软件与该储存装置的该控制装置之间是处于一 准备沟通状态,在锁定状态204时,该应用软件与该储存装置的该控制装置之间是处于一 正常沟通状态,在非锁定状态206时,该应用软件与该储存装置的该控制装置之间是处于 一准备结束沟通状态,在结束状态208时,该应用软件与该储存装置的该控制装置之间是 处于一关闭沟通状态。请注意,虽然本发明的该交换预设控制信号程序包含有四个状态,然 而此并不为本发明所限。换句话说,本发明的该交换预设控制信号程序亦可用其它个数的 状态来实现。举例来说,在本发明的另一实施例中,本发明的该交换预设控制信号程序仅以 锁定状态204与结束状态208来实现。在本发明的另一实施例中,本发明的该交换预设控 制信号程序仅以开放状态202、锁定状态204与结束状态208来实现。在本发明的另一实 施例中,本发明的该交换预设控制信号程序仅以锁定状态204、非锁定状态206与结束状态 208来实现。
请再次参考图2。当本发明沟通方法100在选定该特定区块地址后,该应用软件 与该储存装置的该控制装置之间是处于该关闭沟通状态,亦即结束状态208。在结束状态 208下,该应用软件无法对该储存装置进行存取,该应用程序必需对该控制装置发送一第一 预设指令才能从结束状态208切换至锁定状态204,其中该第一预设指令包含有一准备沟 通指令0PEN_CMD以及一正常沟通指令L0CK_CMD,准备沟通指令0PEN_CMD用以使该控制装 置进入开放状态202,正常沟通指令L0CK_CMD用以使该控制装置进入锁定状态204。因此, 当处于结束状态208的该储存装置的该控制装置接收到准备沟通指令0PEN_CMD时,该控制 装置就会由结束状态208切换至开放状态202。当该控制装置进入开放状态202时,该控制 装置就会开始计时一第一时间值Tl,而该应用程序必需在第一时间值Tl结束前传送正常 沟通指令L0CK_CMD至该控制装置才能将该控制装置从开放状态202切换至锁定状态204。 依据本发明的实施例,当该控制装置切换至锁定状态204时就代表步骤106的该交换预设 控制信号程序成功完成,亦即判定该储存装置是该预定的储存装置(步骤112)。因此,在锁 定状态204下(步骤114),该应用程序得以对该特定区块地址进行指令写入或状态读取来与该储存装置进行沟通,且该应用程序可以正常与该储存装置进行存取。反之,当该控制装 置在第一时间值Tl结束前未接收到来自该应用程序的正常沟通指令LOCK_CMD,则该控制 装置会在第一时间值Tl结束后自动切换回结束状态208,并判定该储存装置不是该预定的 储存装置,以结束对该储存装置的沟通(步骤110)。因此依据本发明所揭露的实施例可以 得知,利用第一时间值Tl来限制正常沟通指令LOCK_CMD的写入时机的退回机制可以防止 意外数据写入时刚好符合准备沟通指令OPEN_CMD的数据格式而改变了该控制装置当下的 状态,亦即结束状态208。另一方面,当该应用程序欲结束与该储存装的锁定状态204时(步骤116),该应 用程序必需对该控制装置发送一第二预设指令才能从锁定状态204切换至结束状态208, 其中该第二预设指令包含有一准备结束沟通指令UNL0CK_CMD以及一结束沟通指令CL0SE_ CMD,准备结束沟通指令UNL0CK_CMD用以使该控制装置进入非锁定状态206,结束沟通指令 CL0SE_CMD用以使该控制装置进入结束状态208。因此,当处于锁定状态204的该储存装置 的该控制装置接收到准备结束沟通指令UNL0CK_CMD时,该控制装置就会由锁定状态204切 换至非锁定状态206。当该控制装置进入非锁定状态206时,该控制装置就会开始计时一第 二时间值T2,而该应用程序必需在第二时间值T2结束前传送结束沟通指令CL0SE_CMD至 该控制装置才能将该控制装置从非锁定状态206切换至结束状态208。依据本发明的实施 例,当该控制装置切换至结束状态208时就代表该应用程序无法再存取该储存装置(步骤 118)。反之,当该控制装置在第二时间值T2结束前未接收到来自该应用程序的结束沟通指 令CL0SE_CMD,则该控制装置会在第二时间值T2结束后自动切换回锁定状态204。因此依 据本发明所揭露的实施例可以得知,利用第二时间值T2来限制结束沟通指令CL0SE_CMD的 写入时机的退回机制可以防止意外数据写入时刚好符合准备结束沟通指令UNL0CK_CMD的 数据格式而改变了该控制装置当下的状态,亦即锁定状态204。此外,当该交换预设控制信号程序成功进入锁定状态204后,该控制装置即锁定 该特定区块地址并启动针对该特定区块地址的单一地址追踪,也就是当该控制装置要对该 特定区块地址进行写入动作时,该控制装置会判断所接收的数据是否为来自该应用程序的 一合法指令。当所接收的数据为该合法指令时,则执行该合法指令。反之,当所接收的数据 并非合法指令时,则将所接收的数据写入至该特定区块地址。换句话说,该控制装置系针对 该特定区块地址且传输长度符合的数据,才会进行判断所接收的数据是否为上述的准备沟 通指令0PEN_CMD、正常沟通指令L0CK_CMD、准备结束沟通指令UNL0CK_CMD和结束沟通指令 CL0SE_CMD中任一指令。更进一步来说,当所接收的数据的地址和长度符合时,该控制装置 除了判断该所接收的数据是否为上述的准备沟通指令0PEN_CMD、正常沟通指令L0CK_CMD、 准备结束沟通指令UNL0CK_CMD和结束沟通指令CL0SE_CMD中任一指令外,也会判断该所 接收的数据是否合法的写入指令。另一方面,若所接收的数据的区块地址或长度不符时,则 不进行数据内容分析;该应用程序亦会储存该特定区块地址来做为后续读写动作的传输地 址,以完成锁定与储存该特定区块地址的机制。在该应用程序确定该特定区块地址后, 本发明的沟通方法100就可以通过一写入 读取机制来对该特定区块地址进行写入指令或读取该控制装置状态的动作。依据本发明 的该实施例,该写入读取机制就是为了避免未知的写入或读取动作影响了该应用程序与该 储存装置利用图2的该交换预设控制信号程序所制定的机制。当该应用程序对每一个该特定区块地址的读取状态动作之前,必须先对该特定区块地址进行写入动作,同时该写入数 据必须是一个合法的指令,则该控制装置执行该合法的指令并准备好一执行结果。接着,当 该应用程序对该特定区块地址进行读取状态时,该控制装置就回传该执行结果给该应用程 序。如此一来,该应用程序与该储存装置的沟通才会正常地完成。请注意,依据本发明的实 施例,该写入数据和该执行结果并不会真正写入至该储存装置的该特定区块地址,而只是 暂时存在该控制装置上的一内存中。此外,若该应用程序在读取该控制装置的状态之前没 有一个合法的指令写入动作,则该控制装置会将该储存装置内对应于该特定区块地址的数 据回传给该应用程序。如此一来,此非指令写入与非状态读取的该写入读取机制可让其它 应用程序对该特定区块地址的存取动作正常完成。此外,当该第一应用程序通过对该特定区块地址进行指令写入或状态读取来与该 储存装置进行沟通时,该控制装置亦同时会检查该区块地址目前是否有被该第一应用程序 之外的一第二应用程序所存取。当该区块地址目前有被该第一应用程序之外的该第二应用 程序所存取时,则该控制装置会将此状况回报至该应用程序,再由该应用程序重新选取一 新的区块地址来与该储存装置建立沟通,以完成一更改地址的机制,亦即重新执行沟通方 法100的步骤。因此,本发明的该应用程序就可以动态地选取该特定的区块地址来与该储 存装置建立沟通。换句话说,为了判定该区块地址目前是否有被该第一应用程序之外的该 第二应用程序所存取,当所接收的数据的地址和长度符合时,该控制装置除了判断该所接 收的数据是否为上述的四个指令外,也会判断该所接收的数据是否合法的写入指令。请注 意,熟悉此项技术者在阅读完本发明图1和图2所揭露的实施例后,必可轻易了解该更改地 址的机制的操作步骤,在此不另赘述。
综上所述,本发明的应用于该储存装置的沟通方法100具备了高兼容性与高延展 性,即此方法可在一储存装置的有效磁区地止内变动存取的磁区地址,而不会与不合法的 磁区地址有冲突而无法使用,且当该储存装置的容量增加时也不会面临磁区地址延伸性的 问题。另一方面,本发明的沟通方法100亦不受限于一计算机的操作系统与该储存装置的 传输接口,即只要该应用程序可以在该操作系统下能够进行读/写一个磁区的动作,就可 以建立与该储存装置的沟通渠道。此外,由于该应用程序在对该特定区块地址进行指令写 入与状态读取时,并不会真正写入到该储存装置的区块中,而只是暂存于该储存装置的控 制装置的存储器中,因此本发明的沟通方法100会较现有技术更快及更有效。以上所述仅为本发明的较佳实施例,凡是根据本发明申请专利范围所做的均等变 化与修饰,皆应属本发明的涵盖范围。
权利要求
一种应用于一储存装置的沟通方法,包含有(a)于该储存装置中动态地选取出一区块地址;以及(b)通过对该区块地址进行指令写入或状态读取来与该储存装置进行沟通。
2.根据权利要求1所述的方法,其特征在于,另包含有与该储存装置进行一交换预设控制信号程序以判定该储存装置是否为一预定的储存 装置;其中步骤(b)是于该储存装置被判定为该预定的储存装置之后才执行。
3.根据权利要求2所述的方法,其特征在于,该交换预设控制信号程序包含有写入至少一第一预设指令至该储存装置,其中该至少一第一预设指令用以使该预定的 储存装置进入一预设状态;以及判断该储存装置是否处于该预设状态来判定该储存装置是否为该预定的储存装置,其 中当该储存装置处于该预设状态时,该储存装置判定为该预定的储存装置。
4.根据权利要求3所述的方法,其特征在于,该预设状态是一正常沟通状态,步骤(b) 是于该储存装置处于该正常沟通状态之下所执行,以及该方法另包含有当处于一结束沟通状态的该预定的储存装置接收到该至少一第一预设指令时,则将该 预定的储存装置由该结束沟通状态切换至该正常沟通状态;以及当处于该正常沟通状态的该预定的储存装置接收到至少一第二预设指令时,则将该预 定的储存装置由该正常沟通状态切换至该结束沟通状态。
5.根据权利要求4所述的方法,其特征在于,该至少一第一预设指令包含有一准备沟 通指令以及一正常沟通指令,该准备沟通指令用以使该预定的储存装置进入一准备沟通状 态,该正常沟通指令用以使该预定的储存装置进入该正常沟通状态,以及将该预定的储存 装置由该结束沟通状态切换至该正常沟通状态的步骤包含有当处于该结束沟通状态的该预定的储存装置接收到该准备沟通指令时,则将该预定的 储存装置由该结束沟通状态切换至该准备沟通状态;当该预定的储存装置进入该准备沟通状态时,开始计时一时间值; 当该预定的储存装置于该时间值内接收到该正常沟通指令时,则将该预定的储存装置 由该准备沟通状态切换至该正常沟通状态;以及当该预定的储存装置于该时间值内未接收到该正常沟通指令时,则将该预定的储存装 置由该准备沟通状态切换回该结束沟通状态。
6.根据权利要求4所述的方法,其特征在于,该至少一第二预设指令包含有一准备结 束沟通指令以及一结束沟通指令,该准备结束沟通指令用以使该预定的储存装置进入一准 备结束沟通状态,该结束沟通指令用以使该预定的储存装置进入该结束沟通状态,以及将 该预定的储存装置由该正常沟通状态切换至该结束沟通状态的步骤包含有当处于该正常沟通状态的该预定的储存装置接收到该准备结束沟通指令时,则将该预 定的储存装置由该正常沟通状态切换至该准备结束沟通状态;当该预定的储存装置进入该准备结束沟通状态时,开始计时一时间值; 当该预定的储存装置于该时间值内接收到该结束沟通指令时,则将该预定的储存装置 由该准备结束沟通状态切换至该结束沟通状态;以及当该预定的储存装置于该时间值内未接收到该结束沟通指令时,则将该预定的储存装置由该准备结束沟通状态切换回该正常沟通状态。
7.根据权利要求1所述的方法,其特征在于,步骤(a)包含有依据该储存装置中未被使用的一储存区块所对应的地址来设定该区块地址。
8.根据权利要求7所述的方法,其特征在于,设定该区块地址的步骤包含有 分析该储存装置的一磁盘分割表以寻找出该磁盘分割表中未被使用的一磁区;以及 以该磁区的地址来设定该区块地址。
9.根据权利要求1所述的方法,其特征在于,步骤(a)包含有 于该储存装置中建立一暂存文件;以及以该暂存文件所配置的地址来设定该区块地址。
10.根据权利要求1所述的方法,其特征在于,步骤(b)包含有当该储存装置进行对应该区块地址的写入动作时,判断所接收的数据是否为一合法指令;当所接收的数据为该合法指令时,则执行该合法指令;以及 当所接收的数据并非为该合法指令时,则将所接收的数据写入至该区块地址。
11.根据权利要求1所述的方法,其特征在于,步骤(b)包含有当该储存装置进行对应该区块地址的读取动作时,判断先前是否有一合法指令在该储 存装置进行对应该区块地址的写入动作时被执行;当有该合法指令在该储存装置进行对应该区块地址的写入动作时被执行,则并回传该 合法指令的一执行结果;以及当没有该合法指令在该储存装置进行对应该区块地址的写入动作时被执行,则回传该 区块地址所储存的数据内容。
12.根据权利要求1所述的方法,其特征在于,一第一应用程序通过对该区块地址进行 指令写入或状态读取来与该储存装置进行沟通,以及该方法另包含有于该第一应用程序欲通过对该区块地址进行指令写入或状态读取来与该储存装置进 行沟通时,检查该区块地址目前是否有被该第一应用程序之外的一第二应用程序所存取; 以及当该区块地址目前有被该第一应用程序之外的该第二应用程序所存取时,则重新执行 步骤(a)与步骤(b)以在该储存装置中选择另一区块地址来使该第一应用程序通过对该另 一区块地址进行指令写入或状态读取来与该储存装置进行沟通。
全文摘要
本发明提供一种应用于一储存装置与一应用软件的沟通方法,包含有下列步骤该应用软件于该储存装置中动态地选取出一区块地址作为一特定的区块地址;以及该应用软件通过对该特定的区块地址进行指令写入或状态读取来与该储存装置进行沟通。
文档编号G06F12/06GK101989233SQ20091016116
公开日2011年3月23日 申请日期2009年7月29日 优先权日2009年7月29日
发明者卢政伟, 李嘉雄 申请人:智微科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1