信息处理装置、其控制方法,以及程序的制作方法

文档序号:6578175阅读:131来源:国知局
专利名称:信息处理装置、其控制方法,以及程序的制作方法
技术领域
本发明涉及信息处理装置,其控制方法,以及程序。
背景技术
当使用诸如便携式摄像机(camcorder)之类的家用装置将视频流记录 到具有诸如硬盘装置或存储卡之类的块I/O的设备中时,首先多个文件被 打开并且附加数据随后被写入其中。由于这些文件共同组成了流,因此如 果一部分文件被损坏,则可能丢失较长时间段中的流。
可是,硬盘装置具有用于提高传送性能的写缓冲器(写缓存)。另 外,由于硬盘装置没有足够的抗冲击和抗震动性,因此,这些装置往往具 有拥有尽可能大的容量的写缓存以便稳定地记录数据。因此,如果在数据 被写入硬盘装置时发生电源故障,则由于存储在写缓存中的大量数据丢 失,因此损坏变得严重。
在这点上,提供了使得存储在写缓存中的所有数据段被写入硬盘装置 的同步缓存命令(例如,参见日本专利申请早期公开No.平6-259198 (此 后,称为专利文献1)))。主装置基于要传送的数据的类型和重要性等 级来最佳地选择同步缓存命令的发布频率。例如,在视频流等的情况中, 在针对一帧数据的写命令发布之后,发布同步缓存命令,以使得该帧数据 安全地被写入硬盘装置。
根据本发明的一个实施例,硬盘驱动器(HDD)的队列中的写命令被 分组为针对文件的写命令和针对元数据的写命令,从而优化写命令的写序 列。相反,在专利文献1描述了这样一种技术在从主装置接收到写命令 之后,从整个队列检索可以用来访问HDD的写命令。

发明内容
与主装置发布的并且由盘存储装置接收的写命令有关的信息被存储在队列中。盘存储装置以接收的顺序从队列读取与写命令有关的信息,并且 根据同步缓存命令执行对HDD的写处理。主装置发布作为写命令的用于 文件的写命令以及用于表示与文件的大量数据有关的分配信息等的元数据 的写命令。然而,不保证主装置总是在用于文件的写命令之后发布用于元
数据的写命令,并且不保证总是以发布的顺序将写命令写入HDD中。因 此,如果在执行同步缓存命令时发生电源故障,则存在仅元数据被写入 HDD而文件的大量数据未被适当写入HDD的可能性。在这种情况中,担 心会出现其元数据指示已经被记录的文件实际上未被适当记录的不一致, 从而在流包括多个文件时导致丢失长时间段中的流。
鉴于前面的问题,希望提供一种可以当在写入盘期间发生电源故障时 使数据丢失最小化的信息处理装置、其控制方法,以及程序。
根据本发明的一个实施例,提供了一种用于控制对盘的写入的信息处 理装置。该信息处理装置包括命令接收部件、队列存储部件和控制部件。 命令接收部件从主装置接收写命令以及控制与写命令有关的缓存的控制命 令。队列存储部件存储用于由命令接收部件接收的写命令和控制命令的队 列。控制部件判定存储在队列中的写命令是用于文件的数据的第一写命令 还是用于与该文件相对应的元数据的第二写命令,当控制命令由命令接收 部件接收时使已接收并存储在队列中的至少一个第一写命令和至少一个第 二写命令成组,将执行序号指派给组中的第一写命令和第二写命令以使得 第一写命令到盘的数据写入优先于第二写命令的数据写入被执行,并且根 据所指派的执行序号控制第一写命令和第二写命令的执行。
根据本方面的该实施例,通过确定队列的组中的写序号以使得用于文 件的数据的第一写命令优先于用于元数据的第二写命令被写入盘,可以防 止在控制命令的执行期间由于电源故障仅元数据被写入盘的情形发生,由 此防止其元数据指示已经记录的文件实际上未被适当记录的不一致性。因 此,可以减小丢失长时间段中的流的风险。
第一写命令可以以连续数据为对象。控制部件可以确定用于将文件的 数据写入盘的存储区域中的连续位置的多个第一写命令,并且可以将队列 中的链接信息指派给多个第一写命令。因此,可以在将多个第一写命令统一为一个等同的写命令的情况下来执行对盘的写处理。
信息处理装置还可以包括缓冲部件,该缓冲部件将多个第一写命令的 每个的文件的数据存储在队列中。当命令接收部件接收相对于存储在缓冲 部件中的文件的数据的用于写入更新数据的新的第一写命令时,控制部件 可以将用于禁止对从主装置接收的用于文件的数据的读命令作出响应的信 息指派给队列中的第一写命令。因此,可以防止在未更新的文件的旧数据 存储在缓冲部件的情况下控制部件对主装置作出响应的问题。
盘在空间上可以被划分为写有文件的数据的第一存储区域和写有元数 据的第二存储区域。控制部件将执行序号分派给用于将文件的数据写入第 一存储区域中的连续位置的多个第一写命令的每个,以使得文件的数据从 接近盘的第二存储区域的第一存储区域的一侧被写入第一存储区域,并且 可以根据所指派的执行序号控制多个第一写命令的每个的执行。因此,可 以减少磁头的总的寻找距离。
根据本发明的另一实施例,提供了一种用于控制对盘的写入进行控制 的信息处理装置的方法。该方法包括从主装置接收写命令以及控制与写 命令有关的缓存的控制命令,并且将写命令和控制命令存储在队列中;判 定存储在队列中的写命令是用于文件的数据的第一写命令还是用于与文件 相对应的元数据的第二写命令;当控制命令在接收步骤中被接收时,使己 接收并存储在队列中的至少一个第一写命令和至少一个第二写命令成组; 将执行序号指派给组中的第一写命令和第二写命令以使得第一写命令到盘 的数据写入优先于第二写命令的数据写入被执行;并且根据所指派的执行 序号执行第一写命令和所述第二写命令。
根据本发明的另一实施例,提供了一种控制对盘进行写入并且使得内 置在信息处理装置中的计算机用作命令接收部件、队列存储部件和控制部 件的程序。命令接收部件从主装置接收写命令以及控制与写命令有关的缓 存的控制命令。队列存储部件存储用于由命令接收部件接收的写命令和控 制命令的队列。控制部件判定存储在队列中的写命令是用于文件的数据的 第一写命令还是用于与该文件相对应的元数据的第二写命令,当控制命令 由命令接收部件接收时使已接收并存储在队列中的至少一个第一写命令和至少一个第二写命令成组,将执行序号指派给组中的第一写命令和第二写 命令以使得第一写命令到盘的数据写入优先于第二写命令的数据写入被执 行,并且根据所指派的执行序号控制第一写命令和第二写命令的执行。
如上所述,根据本发明的实施例,即使在对盘进行写入期间发生电源 故障,也可以使数据丢失最小化。
考虑到下面对如在附图中所示的本发明的最佳模式实施例的详细描述 将更清楚本发明的这些和其它目的、特征和优点。


图1是示出根据本发明实施例的盘存储装置的结构的框图2是示出写命令的结构的示图3是示出同步缓存命令的结构的示图4是描述FAT 32文件系统的示意示图5是示出队列的进程的流程图6是示出在已接收到的写命令之后的另一可访问HDD的写命令的 情况中的示例的示图7是描述队列的结构的示图8是描述设置不返回标志(no-return flag)的处理的示例的流程 图;以及
图9是描述确定写命令的HDD写序号的技术的示图。
具体实施例方式
接下来,参考附图描述本发明的实施例。
图1是示出根据本发明实施例的作为信息处理装置的盘存储装置的结 构的框图。
如图1所示,根据本实施例的盘存储装置10包括通用串行总线 (USB)接口控制部件11 (命令接收部件)、内部总线12、接口控制部 件13、控制部件14、存储器控制部件15、缓冲存储器16、硬盘驱动器 (HDD) 17、存储器18 (队列存储部件),以及中央处理单元(CPU)19。
USB接口控制部件11是这样的模块,其与主装置20的USB接口控 制部件21协同操作来控制盘存储装置IO和主装置20之间的接口。主装置 20是诸如视频相机或便携式摄像机之类的电子装置,并且例如包括CPU 22、存储器23、成像部件24和记录部件25。 USB接口控制部件11通过 内部总线12向控制部件14提供从主装置20的USB接口控制部件21接收 的写命令,并且将从主装置20传送来的写数据存储在USB接口控制部件 11的端点(End point) FIFO (EP) 111中,直到EP 111变满为止。当EP 111变满变满时,USB接口控制部件11通过内部总线12将写数据传送到 存储器控制部件15。盘存储装置10和主装置20之间的接口不限于USB 系统,而可以使用传送速率等于或高于USB系统的传送速率的另外的接 口,例如,IEEE 1394系统。
内部总线12是在盘存储装置10的模块之间传输命令和数据的传输路径。
存储器控制部件15将通过内部总线12从USB接口控制部件11获得 的写数据存储在缓冲存储器16中。
缓冲存储器16包括临时存储要传送到HDD 17的写数据的写缓冲 器,以及临时存储从HDD 17传送来的并且尚未传送到主装置20的读数据 的读缓冲器。
接口控制部件13是控制内部总线12和HDD 17之间的接口的模块。 控制部件14将关于写命令(例如,SCSI (盘存储装置10)命令)的 信息以及关于从主装置20接收的同步缓存命令的信息存储在设置在存储 器中的队列中,并且对信息执行预定处理。另外,从该操作开始异步地, 控制部件14从队列读取信息,将信息转换为HDD 17可以解释的格式的写 命令(例如,ATA命令),并且通过接口控制部件13将经转换的写命令 提供给HDD 17。
CPU 19总地控制整个盘存储装置10,例如以通过内部总线12交换模 块之间的命令和数据。存储器18用作存储器控制部件15和CPU 19的工 作区域等。主装置20在数据要被写入HDD 17时发布写命令。
图2是示出写命令的结构的示图。该写命令包括作为表示命令类型的 命令描述符块(CDB)数据的操作码、逻辑块寻址(LBA)、长度等。操 作码是与写命令的类型相对应的代码。LBA是要写入HDD 17的数据的头 逻辑块地址。长度是要写入HDD 17的数据的长度。当盘存储装置从主装 置20接收写命令时,主装置20将关于该写命令的信息存储在队列中。稍 后将描述存储在队列中的关于写命令的信息。
另外,主装置20发布执行存储在队列中的所有写命令的称为同步缓 存命令的写缓存控制命令,以便将存储在写缓存中的整个数据记录在 HDD 17上。
图3是示出同步缓存命令的结构的示图。该同步缓存命令包括作为表 示命令的类型的CDB数据的操作码、IMMED、 LBA和块数。操作码是与 同步缓存命令的类型相对应的代码。IMMED是指定主装置20是否要接收 对完成到HDD 17的数据写入的通知的信息。当主装置20要接收通知时, 指定"0"。当主装置20不接收通知时,指定"1"。即,在IMMED == 0 的情况中,主装置20在接收对完成到HDD 17的数据写入的通知之前,主 装置20不能发布下一写命令。在IMMED:1的情况中,主装置20不必等 待对完成到HDD 17的数据写入的通知而可以发布下一写命令。更具体而 言,在IMMED = 1的情况中,当确认由已接收到的每个写命令指定的起 始LBA、长度等有效时,盘存储装置10向主装置20发送回表示这种状况 的类似"Good Status (好状态)"之类的状态,以便将存储在写缓冲器中 的数据写到HDD17上。主机装置20检查状态并发布下一个写命令。LBA 表示要写入HDD 17的数据的头逻辑缓冲器地址。块数表示要写入HDD 17的块数。然而,如果"00h"被指定为块数,则存储在写缓存中的所有 数据段都被写入HDD17。接下来,将描述"00h"被指定为块数的情况。
为了更安全地将数据写入HDD 17,需要指定IMMED = 0并且在确认 完成了到HDD 17的数据写入之后发布下一写命令。然而,在这种情况 中,存在如下问题写缓存的使用效率以及数据传送性能降低了,或者如 果由于振动等使到HDD 17的数据写入被临时禁止,则立即会发生错误。因此,在根据本实施例的主装置20中,指定IMMED二1。
接下来,参考图4描述FAT32文件系统。在FAT32文件系统中,其 每个都是HDD 17的盘存储区域中的最小存取单元的多个(2的幂)扇区 (sector)被联合成为作为最小文件数据管理单元的一个簇(cluster)。集 权按LBA值的升序被指派有簇号。在下面的描述中,假设簇号是通过忽 略偏移将LBA值除以16而获得的(其中,在LBA空间中,具有簇号0的 簇将被分配)。在这种情况中, 一个簇为8K字节。
图4的文件分配表(FAT) 31是记录有指示以何种顺序将文件数据的 片段存储在哪些簇中的链接信息的表格。因此,在FAT 31中,使用簇号 来代替LBA值。由FAT文件系统管理的存储区域由MBR/PBR区 (region) 32、 FAT区33以及文件和目录数据区34构成。
MBR/PBR区32是存储主引导记录(MBR)和分区引导记录(PBR) 的记录区域。MBR/PBR区32的位置在LBA空间中是固定的。FAT区33 是存储存储了文件的大量数据的簇的簇号的链接信息的区。FAT区33的 位置在LBA空间中也是固定的。文件和目录数据区34是存储用于组织并 管理文件的文件的大量数据和目录数据(目录项)的区。每个目录项包括 针对每个文件的文件名和簇号(起始簇号),在该簇号处记录了与文件名 相对应的文件的数据的头。
当文件被读取时,文件系统从目录项中检索被指定为读取目标的文件 名,并且读取与文件名相对应的起始簇号。文件系统从由起始簇号指定的 簇中读取数据。此后,参考FAT区33,文件系统检查在与起始簇号相对 应的簇之后的下一簇,并且从该下一簇读取数据。此后,参考FAT区 33,文件系统以相同的方式从连续地被链接起来的簇中读取数据。最后, 一旦从FAT区33确认了指示文件的数据的结束的文件的结尾(EOF), 则文件系统停止读取文件的数据。
每个目录项还存储诸如到父目录和子目录的指针以及存取时间之类的 元信息。在诸如便携式摄像机之类的家用装置中,应用软件可以使得特定 数据和目录被放置在预定LBA范围中(应用保留区35)。
接下来,将描述根据本实施例的盘存储装置中的基于从主装置20接收的写命令和同步缓存命令的队列的处理。
图7是示出存储与从主装置20接收的写命令和同步缓存命令有关的 信息的队列的示例的表。
首先,参考图7,描述存储在队列中的信息的结构。在每次接收到写
命令或同步缓存命令时,关于每个命令的信息被存储在队列中。与存储在 队列中的每个命令有关的信息包括接收序号、命令类型、地址类型、起始
LBA、用于写入HDD 17的写序号、链接标志、链接目的地指针、不返回 标志等等。
接收序号表示信息存储在队列中的顺序,即从主装置20接收的写命 令和同步缓存命令的接收顺序。命令类型是指示所接收到的命令是写命令 (写)还是同步缓存命令(同步)的信息。地址类型是基于在所接收到的 写命令中包含的起始LBA和长度而确定的,并且是指示所接收到的写命 令是用于写入保留区(FAT区33)的命令还是用于写入文件和目录数据区 34的命令的信息。对于HDD 17的写序号指示所接收到的写命令实际执行 对于HDD 17的写处理的顺序。链接标志是指示由所接收到的写命令指定 的LBA范围是否接续到由另一写命令指定的LBA范围。如果这些LBA范 围是连续的,则链接标志设为"1",而如果这些LBA不是连续的,则链 接标志设为"0"。链接目的地指针是表示作为在链接标志=1时的条目的 联接目的地以及其位置关系的条目的信息。不返回标志是这样的标志,用 于禁止与所接收到的写命令相关联的存储在缓冲存储器16中的写数据被 发送来作为对从主装置20接收到的读命令的响应。如果不返回标志设为 "1",则作为对读命令的响应,写数据不被发送。
在发布了同步缓存命令之后,主装置20在如下模式中操作主装置 20发布下一写命令,而无需从盘存储装置被通知已完成对HDD 17的数据 写入(IMMED= 1)。因此,出现了一种情形,其中,例如,当同步缓存 命令的条目之后,下一写命令的条目另外地存储在如图7所示的队列中。
例如,图7示出了如下情况中的队列其中,连续地接收到六个写命 令(接收序号1至6)、 一个同步缓存命令(接收序号7)、五个写命令 (接收序号8至12)、 一个同步缓存命令(接收序号13) 、 二个写命令(接收序号14和15)、 一个同步缓存命令(接收序号16) 、 二个写命令 (接收序号17)。
这里,基于同步缓存命令被连续地处理的写命令的至少一个条目称为 "组"。换言之,在图7所示的队列中,指派有接收序号1至6的写命令 的条目为组l,指派有接收序号8至12的写命令的条目为组2,指派有接 收序号14和15的写命令的条目为组3,以及指派有接收序号17的写命令 的条目为组4。在这种情况中,尚未接收到请求执行组4的条目的写命令 的同步缓存命令。因此,此后,如果主装置20发布新的写命令,则指派 有接收序号18的条目被添加到队列,并且关于该新的写命令的信息存储 在其中。
图5是示出对主装置20发布的命令的队列的处理的进程的流程图。 为了简化,假设由写命令指定的数据的长度都等于或小于一个地址块。
首先,控制部件14通过USB接口控制部件11接收主装置20发布的 命令(步骤S101)。这里,假设主装置20发布的命令为写命令、读命令
和同步缓存命令中的任一个。
控制部件14基于在所接收到的命令中包含的操作码判定所接收到的 命令的类型。如果控制部件14确定所接收到的命令是写命令(步骤S102 中的否+步骤S103中的否),则控制部件14将新的条目添加到队列中, 并且在该条目中存储接收序号、命令类型和起始LBA。
此后,控制部件14判定该写命令所指定的LBA范围是否与队列中被 指派有用于写入HDD 17的固定序号的条目的写命令所指定的LBA范围相 同(步骤S104)。换言之,控制部件14判定与当前接收到的写命令相对 应的写数据是否是将被改写到与已经被指派有固定写序号并存储在队列中 的其它写命令相对应的写数据的数据。稍后将描述"队列中被指派有用于 写入HDD17的固定序号的条目"。
接下来,将描述这样的情况由当前接收到的写命令指定的LBA范 围与队列中由被指派有用于写入HDD 17的固定序号的条目的任意写命令 不匹配(步骤S104中的否)。在这种情况中,控制部件14判定由当前接收到的命令指定的LBA范 围是否在LBA空间中的保留区(FAT区33)内(步骤S105)。如果由当 前接收到的写命令指定的LBA范围在保留区内,则意味着与写命令相对 应的写数据是表示与文件的大量数据的分配信息、记录持续时间、文件大 小等有关的信息的元数据。相反,如果由当前接收到的写命令指定的LBA 范围未在保留区内,则意味着与写命令相对应的写数据是文件的大量数 据。在此示例中,假设"0"至"10"的起始LBA是保留区而"11"及以 后的起始LBA是文件和目录数据区34。
(接收到用于文件写入的写命令的情况)
首先,将描述在与写命令相对应的写数据是文件的大量数据的情况中 的控制部件14的操作(步骤S105中的否)。
在这种情况中,控制部件14将"数据"存储为新近添加到队列中的 条目中的地址类型。此后,控制部件14从队列中的最近一组检索继当前 接收到的写命令之后可以用来访问HDD 17的另一写命令(步骤S106)。 继当前接收到的写命令之后的可以用来访问HDD 17的另一写命令是指定 接续到由当前接收到的写命令指定的LBA范围的LBA范围的另一写命 令。如果未发现另一相关写命令(步骤S107中的否),则控制部件14将 队列中的同一组中的用于文件的写命令中的最小有效号(least significant number)设置为用于由当前接收到的写命令写入HDD 17的写序号,并且 将该写序号存储在队列中的新的条目中(步骤S108)。
此后,控制部件14判定添加到队列中的条目的数目是否等于或大于 预定上限值(步骤SU3)。如果添加到队列中的条目的数目小于上限值, 则控制部件14从主装置20接收下一命令,并且执行对新接收到的命令执 行相同的处理。如果添加到队列中的条目的数目等于或大于上限值,则控 制部件14停止从主装置20接收命令直到队列中的空间变得可用为止。
控制部件14与从主装置20接收命令异步地执行控制以基于存储在队 列中的最先的组的每个条目的信息执行到HDD 17的数据写入。从队列中 删除已写入HDD 17的组中的每个条目。结果,可以从主装置20接收下一 命令,并且可以将接收到的命令存储在队列中。如果控制部件14发现了继当前接收到的写命令之后的可以用来访问
HDD 17的另一写命令(步骤S107中的是),则控制部件14将队列中的 同一组中的用于文件的写命令中的最小有效号设置为用于由当前接收到的 写命令写入HDD 17的写序号,将所指派的写序号存储在队列中的新的条 目中,并且将链接标志和链接目的地指针存储在新的条目和继新的条目之 后的可以用来访问HDD 17的另一写命令的条目中(步骤S109)。结果, 完成了将用于文件的写数据的写命令添加到队列中的处理。
此后,以前面的方式,控制部件14判定添加到队列中的条目的数目 是否等于或大于预定上限值(步骤S113)。如果条目的数目小于预定上限 值,则控制部件14从主装置20接收下一命令并且对接收到的命令执行相 同的处理。另外,如果条目的数目等于或大于预定上限值,则控制部件14 停止从主装置20接收下一命令直到队列中的空间变得可用为止。
图6是示出当发现继当前接收到的写命令之后的可以用来访问HDD 17的另一写命令时更新队列的示例的示图。指派有接收序号5的写命令的 条目是新近添加的条目。在当前接收到的写命令中,地址类型是"数据" 并且起始LBA是"12"。另一方面,在指派有接收序号3并且属于队列 中的同一组1的条目中,起始LBA是"11"。因此,控制部件14确定当 前接收到的写命令在指派有接收序号3的条目之后。结果,设置了指派有 接收序号3和5的条目的链接标志和链接目的地指针。此外,在指派有接 收序号4的写命令的条目中,地址类型是"元"。即,由于该条目是用于 元数据的写命令的条目,因此,当前接收到的写命令的条目的用于写入 HDD 17的写序号早于指派有接收序号4的条目的写序号。在图6所示的 示例中,由于已经存储了用于文件的大量数据的写命令的三个条目,因 此,用于写入HDD17的当前接收到的写命令的条目的序号变为"4"。因 此,用于写入HDD 17的指派有接收序号4的写命令的条目的序号从"4" 降到(lower) "5"。
(接收到用于元数据的写命令的情况)
接下来,将描述控制部件14在在步骤S105中判定由写命令指定的 LBA范围在保留区内(步骤S105)的情况中的操作。在这种情况中,控制部件14将"元"存储为新近添加到队列的条目
中的地址类型。此后,控制部件14将组中用于写入HDD 17的最小有效写 序号存储在队列中的新的条目中(步骤S110)。因此,用于写入HDD 17 的元数据的写序号被指派有组中的最小有效序号。 (接收到同步缓存命令的情况)
接下来,将描述在步骤S103中判定当前接收到的命令是同步缓存命 令的情况中的操作。
控制部件14将关于同步缓存命令的信息存储在新近添加到队列的条 目中。换言之,控制部件14将"同步缓存命令"存储为条目中的命令类 型。此后,控制部件14在接收到同步缓存命令之前为已经添加到队列中 的写命令的连续的条目中的每个固定用于写入HDD 17的写序号(步骤 Sill)。因此,设置了如上所述的"指派有用于写入HDD 17的固定写序 号的并且存储在队列中的条目"。此后,指派给这些条目的用于写入 HDD 17的写序号禁止被改变。
此后,以前面的方式,控制部件14判定添加到队列的条目的数目是 否等于或大于预定上限值(步骤S113)。如果条目的数目小于预定上限 值,则控制部件14从主装置20接收下一命令并且针对接收到的命令执行 相同的处理。如果条目的数目等于或大于预定上限值,则控制部件14停 止从主装置20接收下一命令直到队列中的空间变得可用为止。
接下来,将描述在步骤S104中判定由当前接收到的写命令指定的 LBA范围与队列中被指派有用于写入HDD 17的固定写序号的条目之一的 LBA范围相同的情况(步骤S104中的是)。
在这种情况中,控制部件14为指定了与当前接收到的写命令相同的 LBA范围的另一写命令的条目设置不返回标志(步骤S112)。此后,如 果控制部件14在队列中存储了设置有不返回标志的条目时从主装置20接 收到指定了条目的相同的LBA范围的读命令(步骤S102中的是),则控 制部件14对具有与条目中的写命令相对应的写数据的主装置20不作出反 应。而是,控制部件14对具有与新的写命令相对应的写数据的主装置20 作出反应(步骤S114)。因此,可以防止控制部件14对具有存储在缓冲存储器16中的未更新文件的旧的写数据的主装置20作出反应的问题。
接下来,将参考图8描述用于设置不返回标志的处理的示例。将描述
在已存在图7所示的队列的情况下接收到图8所示的其起始LBA是"30" (接收序号18)的新的写命令的情况。在这种情况中,控制部件14检查 由当前接收到的命令指定的LBA范围是否与队列中已经指派有用于写入 HDD 17的固定写序号的任意条目的LBA范围是否相同。结果,控制部件 14判定指派有接收序号14的写命令的条目符合条件。在这种情况中,指 派有用于写入HDD 17的接收序号14的写命令的条目的写序号已经由指派 有接收序号16的同步缓存命令固定。如图8所示,控制部件14基于判定 结果为指派有接收序号14的条目设置不返回标志,从而禁止与写命令相 关联的存储在缓冲存储器16中的写数据被发送而作为对来自主装置20的 读命令的响应。
如果控制部件14在步骤S102中判定接收到的命令是读命令,则控制 部件14执行控制以基于读命令立即执行读处理(步骤S114)。 (基于关于队列的信息到HDD的写操作)
如上所述,在盘存储装置10中,控制部件14将与从主装置20接收到 的写命令和同步缓存命令有关的信息存储在设置在存储器18中的队列 中,并且对信息执行预定处理。与该操作异步地,控制部件14读取关于 队列的信息,将信息转换为HDD 17可以解释的格式的写命令,并且通过 接口控制部件13将写命令提供给HDD 17。此时,控制部件14读取与队 列中的最先的组(组1)的条目的写命令有关的信息,并且基于写命令执 行控制以执行到HDD 17的写处理。在完成了基于组1的写命令的写入之 后,控制部件14读取与组2的条目中的写命令有关的信息,并且基于写 命令执行控制以执行写处理。每个组中的条目的写命令是根据队列中用于 写入HDD 17的写序号而被连续执行的。此时,控制部件14基于组中己为 写命令的条目设置的链接标志和链接目的地指针确定组中多个写命令的链 接关系,并且执行控制以使得要链接的写命令的每个都由一个等同的写命 令取代并且被提供给HDD 17。
可用如下两种方法来确定同一组中用于文件的写命令的用于写入HDD17的写序号。
第一方法包括根据如图7的队列中所示的写命令被接收的顺序设置写 序号。
第二方法包括对组中的写序号排序以使得寻找距离变短。图9是描述 该方法的示图。当控制部件14接收新的写命令时,控制部件14将新的写 命令的起始LBA与同一组中的另一写命令的起始LBA相比较,并且设置 具有较小起始LBA值的写命令,即,起始LBA接近磁头LBA的写命令禁 止超过其它的。在图9所示的示例中,由于新的写命令(接收序号18)的 起始LBA为"30",并且同一组中的另一写命令(接收序号17)的起始 LBA为"31",则控制部件14将优先级高于另一写命令(接收序号17) 的用于写入HDD 17的写序号指派给新的写命令(接收序号18)。因此, 用于写入HDD 17的另一写命令(接收序号17)的写序号从"14"降到 "15",并且用于写入HDD 17的新的写命令(接收序号18)的写序号被 设为"14"。
通过这样设置具有较高优先级的用于写入HDD 17的写序号并且具有 较小起始LBA值的写命令,可以减小磁头的总的寻找距离。这是因为, 在用于前面组的写处理中,最接近于磁头LBA的保留区最后通常写有元 数据。
根据本实施例,可以获得如下效果。
通常,关于写命令的信息按从主装置接收命令的顺序被添加到队列 中,并且到HDD的写处理是通过根据同步缓存命令按接收命令的顺序从 队列读取关于写命令的信息来执行的。此时,主装置发布用于文件的写命 令以及用于表示文件的大量数据的分配信息、记录持续时间、文件大小、 帧数等的元数据的写命令。然而,不保证主装置总是在用于文件的写命令 之后发布用于元数据的写命令,并且不保证到HDD的写入总是按照发布 的顺序来执行。例如,在图7中指派有接收序号12的写命令的元数据是 表示指派有接收序号8至11的写命令的文件的大量数据的分配信息、记 录持续时间、文件大小等的元数据。然而, 一般地,主装置不一定在用于 文件的大量数据的写命令之后发布用于元数据的写命令。因此,存在这样的可能性如果在写期间发生了电源故障,则会出现仅元数据被写入
HDD而文件的大量数据未被适当写入HDD的情形。在这种情况中,担心 会发生其元数据指示已经记录的文件实际上未被适当记录在HDD上的不 一致性,从而导致丢失长时间段中的流。
相反,仅文件的大量数据被写在HDD上而元数据未写在HDD上的情 况等同于大量数据未写入HDD的情况。在这种情况中丢失的流的量小于 仅元数据写在HDD上从而导致元数据和文件的大量数据之间的不一致的 情况。
根据本实施例,用于写入HDD的用于文件的写命令的写序号被设置 为优先级高于用于元数据的写命令的写序号。因此,即使当执行同步缓存 命令时发生电源故障,也可以防止仅元数据被写入HDD的情形。结果, 可以防止其元数据指示已经记录的文件实际上未被适当记录在HDD上的 不一致。因此,可以减少丢失长时间段中的流的风险。另外,由于减少了 在FAT区33与文件和目录数据区34之间移动的磁头的寻找次数,因此, 可以提高数据传送速率。
另外,根据本实施例,用于将文件的大量数据写在HDD的存储区域 中的连续的LBA范围中的多个写命令被确定,并且链接标志和链接目的 地指针被存储在队列中的这些命令的各个条目中。结果,多个写命令被统 一为写入到HDD 17的一种等同的写命令。
在前面的实施例中,描述了 IMMED= 1的情况。然而,本实施例在 当确认完成了到HDD 17的数据写入之后,主装置20发布下一写命令的 IMMED = 0的情况中也有效。
本申请包含与在2008年6月30日向日本专利局提交的日本优先权专 利申请JP 2008-171766中公开的主题有关的主题,该申请的全部内容通过 引用被结合于此。
本领域的技术人员应当明白,可以根据设计要求和其它因素进行各种 修改、组合、子组合和变更,只要它们在所附权利要求或其等同物的范围 之内。
权利要求
1.一种控制对盘的写入的信息处理装置,包括命令接收部件,该命令接收部件从主装置接收写命令以及控制与所述写命令有关的缓存的控制命令;队列存储部件,该队列存储部件存储用于由所述命令接收部件接收的所述写命令和所述控制命令的队列;以及控制部件,该控制部件判定存储在所述队列中的所述写命令是用于文件的数据的第一写命令还是用于与所述文件相对应的元数据的第二写命令;当所述控制命令被所述命令接收部件接收时,将已接收并存储在所述队列中的至少一个第一写命令和至少一个第二写命令成组;将执行序号指派给所述组中的所述第一写命令和所述第二写命令,以使得所述第一写命令的对所述盘的数据写入优先于所述第二写命令的数据写入而被执行;并且根据所指派的执行序号,控制所述第一写命令和所述第二写命令的执行。
2. 根据权利要求1所述的信息处理装置, 其中,所述第一写命令针对连续的数据,并且其+,所述控制部件确定用于将所述文件的数据写入所述盘的存储区 域中的连续位置的多个所述第一写命令,并且所述控制部件将所述队列中 的链接信息指派给所述多个第一写命令。
3. 根据权利要求2所述的信息处理装置,还包括缓冲部件,该缓冲部件将所述多个第一写命令中的每个第一写命令的 所述文件的数据存储在所述队列中,其中,当所述命令接收部件接收到相对于存储在所述缓冲部件中的所 述文件的数据的用于写入更新数据的新的第一写命令时,所述控制部件将 用于禁止对从所述主装置接收的用于所述文件的数据的读命令作出响应的 信息指派给所述队列中的所述第一写命令。
4. 根据权利要求3所述的信息处理装置,其中,所述盘在空间上被划分为写有所述文件的数据的第一存储区域和写有所述元数据的第二存储区域,并且其中,所述控制部件将所述执行序号分派给用于将所述文件的数据写 入所述第一存储区域中的连续位置的所述多个第一写命令的每个第一写命 令,以使得所述文件的数据从所述第一存储区域的接近所述盘的所述第二 存储区域的一侧被写入所述第一存储区域,并且所述控制部件根据所指派 的执行序号控制所述多个第一写命令的每个的执行。
5. —种控制对盘的写入的信息处理装置的控制方法,包括 从主装置接收写命令以及控制与所述写命令有关的缓存的控制命令,并且将所述写命令和所述控制命令存储在队列中;判定存储在所述队列中的所述写命令是用于文件的数据的第一写命令 还是用于与所述文件相对应的元数据的第二写命令;当所述控制命令在接收步骤中被接收时,将已接收并存储在所述队列 中的至少一个第一写命令和至少一个第二写命令成组;将执行序号指派给所述组中的所述第一写命令和所述第二写命令,以 使得所述第一写命令的对所述盘的的数据写入优先于所述第二写命令的数 据写入而被执行;并且根据所指派的执行序号执行所述第一写命令和所述第二写命令。
6. —种控制对盘的写入的程序,所述程序使得内置在信息处理装置中 的计算机用作命令接收部件,该命令接收部件从主装置接收写命令以及控制与所述 写命令有关的缓存的控制命令;队列存储部件,该队列存储部件存储用于由所述命令接收部件接收的 所述写命令和所述控制命令的队列;以及控制部件,该控制部件判定存储在所述队列中的所述写命令是用于文 件的数据的第一写命令还是用于与所述文件相对应的元数据的第二写命 令;当所述控制命令被所述命令接收部件接收时,将已接收并存储在所述 队列中的至少一个第一写命令和至少一个第二写命令成组;将执行序号指 派给所述组中的所述第一写命令和所述第二写命令,以使得到所述第一写 命令优先于所述第二写命令的数据写入而被执行;并且根据所指派的执行 序号控制所述第一写命令和所述第二写命令的执行。
全文摘要
本发明公开了信息处理装置、其控制方法,以及程序。信息处理装置控制对盘的写入。命令接收部件从主装置接收写命令以及控制与写命令有关的缓存的控制命令。队列存储部件存储用于由命令接收部件接收的写命令和控制命令的队列。控制部件判定存储在队列中的写命令是用于文件的数据的第一写命令和用于与该文件相对应的元数据的第二写命令的哪个,当控制命令由命令接收部件接收时使已接收并存储在队列中的至少一个第一写命令和至少一个第二写命令成组,将执行序号指派给组中的第一写命令和第二写命令以使得第一写命令到盘的数据写入优先于第二写命令的数据写入被执行,并且根据所指派的执行序号控制第一写命令和第二写命令的执行。
文档编号G06F3/06GK101620516SQ20091013950
公开日2010年1月6日 申请日期2009年6月30日 优先权日2008年6月30日
发明者佐佐木延治, 田村哲也, 西村章, 铃木一也 申请人:索尼株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1