CN1159644C - 盘式存储装置和数据预读方法 - Google Patents

盘式存储装置和数据预读方法 Download PDF

Info

Publication number
CN1159644C
CN1159644C CNB018007791A CN01800779A CN1159644C CN 1159644 C CN1159644 C CN 1159644C CN B018007791 A CNB018007791 A CN B018007791A CN 01800779 A CN01800779 A CN 01800779A CN 1159644 C CN1159644 C CN 1159644C
Authority
CN
China
Prior art keywords
advance
read
data
reading
mentioned
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB018007791A
Other languages
English (en)
Other versions
CN1366633A (zh
Inventor
高市典昭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PHC Corp
Original Assignee
松下电器产业株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 松下电器产业株式会社 filed Critical 松下电器产业株式会社
Publication of CN1366633A publication Critical patent/CN1366633A/zh
Application granted granted Critical
Publication of CN1159644C publication Critical patent/CN1159644C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F2003/0697Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6026Prefetching based on access pattern detection, e.g. stride based prefetch
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B2020/1291Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting serves a specific purpose
    • G11B2020/1294Increase of the access speed

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Television Signal Processing For Recording (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)

Abstract

基于刚才的读命令中所访问的区和当前的读命令中所要求的区,检测访问的方向性和区之间的区间隔距离、区尺寸,用这些值来确定进行数据的预读的盘式存储媒体上的位置和尺寸,由此可以对要求负方向,也就是地址减小的方向,或以一定间隔离散分布的数据的连续的读命令高效地进行数据的预读。

Description

盘式存储装置和数据预读方法
技术领域
本发明涉及读出记录在磁盘或光盘等盘式存储媒体上的数据的盘式存储装置,特别是涉及盘式存储装置的数据的预读方式。
背景技术
在盘式存储装置中,为了提高对连续配置的数据的读出速度,使用着这样的预读方式,即在收到下一个读出要求之前,开始读出接在有读出要求的数据块后面的数据块并储存在高速缓冲存储器中,在收到对连续的数据块的读出要求的场合,传输预先读出并储存在高速缓冲存储器中的预读数据,由此不受盘的旋转等待时间或读出头的查找时间的影响地进行数据传输。
作为这种预读方式的一例,有日本专利特开平9-120617号公报所述的“减少计算机中的盘驱动器的电力消耗、使数据传输高速化的方法,以及连接于计算机的盘驱动器”。
可是,在用上述现有方式的预读方式中,把数据块的连续方向假定成一个方向(逻辑块地址增大的方向),对于沿负方向(逻辑块地址减小的方向)读出连续数据的访问,不能预读数据。
如今,对于盘式存储装置,记录和重放动画或声音等数据的用途多起来,在该现有方法中,虽然对正常重放来说可以提供有效的预读方式,但是在进行特殊重放的场合,例如在反向重放时,虽然对于既是以前读出的数据又保存在高速缓冲存储器中的数据来说能够反向重放,但是未保存在高速缓冲存储器中的数据不得不逐次读出。此外,在反向重放时,产生预读本来不需要的沿正向连续的数据的矛盾,存在着不能谋求预读带来的数据传输的提高这样的问题。
此外,在高速重放或高速反向重放等特殊重放时,根据重放速度而跳过间隔的数据被读出。在这种场合,在现有方法中,所要求的数据以外的不需要的数据也保存在高速缓冲存储器中,不能有效地利用高速缓冲存储器。而且,如果重放速度加快则所要求的数据区的间隔也加宽,在同一信道、同一柱面内,下一所要求的数据区变得不存在。在这种场合,如果进行不需要的数据的读出,则需要的数据的预读就来不及了,存在着动画或声音的重放中断这样的问题。
此外,在上述现有的方式中,在把预读的数据放在高速缓冲存储器中的场合,因为是按预读的顺序沿高速缓冲存储器地址增大的方向储存的,故在反向重放时,储存在高速缓冲存储器中的预读数据块的连续性中断。因此,为了确保预读数据块的连续性,有必要对每个预读数据块作成作为向高速缓冲存储器的登记信息的高速缓存入口,登记在高速缓存表中,存在着成为高速缓存表的高效使用的障碍这样的问题。
此外,在象以符合近年的磁带录像机的遥控器中所装备的那种旋转拨盘的停止角度的重放速度进行正向或反向的重放那样的基于变速拨盘操作的重放中,能够分级地切换重放速度,从当前的重放速度返回到以前的重放速度的情况也经常发生。在这种场合,在仅预读在当前的重放速度下需要的数据的预读方法中,存在着不能预读以以前的重放速度的重放中需要的数据这样的问题。
此外,该问题不仅在上述的基于变速拨盘操作的重放中,在一边以使旋转拨盘旋转的速度和方向变更从跳帧重放到高速重放变更速度一边进行正向或反向的重放的基于变速拨盘操作的重放中也同样发生。
此外,在一边指定重放开始位置一边进行重放影像的期待的位置的静止画面输出的场合,考虑用上述变速拨盘操作或微动拨盘操作,频繁切换正向重放、反向重放的情况。在这种场合,在上述现有技术方式中,因为从高速缓冲存储器送出的数据不再保存在高速缓冲存储器中,故在重放方向刚变换后,不得不再次从盘式存储媒体读出数据,存在着不能谋求预读带来的数据传输的提高这样的问题。
发明内容
本发明正是鉴于上述问题而提出的,其目的在于提供一种即使是在进行反向重放、高速重放等特殊重放的场合,也可以谋求数据的预读带来的数据传输的提高的盘式存储装置。
根据本发明,提供一种盘式存储装置,其特征在于包括:储存读命令的历史信息的命令历史信息存储机构,该读命令是从上位装置收到的、读出记录在盘式存储媒体上的数据用的信息;基于记录在上述命令历史信息存储机构的命令,检测数据的预读方向和作为进行预读的数据的间隔的区间隔距离的连续性检测机构;保存作为用来进行数据的预读的规则的预读规则的预读规则保存机构;基于上述读命令、由上述连续性检测机构所检测的数据的预读方向、区间隔距离、和上述预读规则保存机构保存的预读规则,来确定用于数据的预读的预读规则的预读规则确定机构;基于由上述预读规则确定机构所确定的预读规则,来确定进行预读的盘式存储媒体上的位置和尺寸的预读区确定机构;储存所预读的数据的高速缓冲存储器;以及从盘式存储媒体读出由上述预读起动机构所确定的进行预读的数据,控制成在上述高速缓冲存储器中,把在负方向上预读的数据依次储存在在正方向上预读的数据的前方的预读起动机构。由此,可以进行以一定间隔离散分布的数据的预读。而且,通过由预读起动机构进行在上述高速缓冲存储中,把在负方向上预读的数据依次存储在在正方向上预读的数据的前方的控制,可以把在负方向上依次读出的多个预读区的数据以连续的编址配置在高速缓冲器内,该连续的区域数据在高速缓存表中可作为一个入口登录,同时在把存在于高速缓冲存储器上的预读区的数据返送到上位装置时,可以与正方向数据无区别地取出在高速缓冲存储器上存在的预读区的数据。
另外,根据本发明,还包括:保存表示当前正在向上位装置发送的数据的上述高速缓冲存储器上的位置的发送中地址,和表示将要储存下次预读的数据的上述高速缓冲存储器的位置的下次预读数据储存开始地址的高速缓冲存储器指针保存机构;以及至少用上述发送中地址和预定的保护区尺寸算出用来使已经向上位装置送出的至少数块数据残留在高速缓冲存储器上的保护区,当用上述下次预读数据储存开始地址和预读区尺寸算出的预读数据的储存区和上述保护区重合时,上述预读起动机构不进行数据的预读的预读起动判断机构。由此,即使是一边频繁切换正向重放、反向重放一边进行数据的重放的场合,也在切换重放方向的时刻,把刚才重放方向切换前的已经向上位装置送出的数据保存在高速缓冲存储器内成为可能,不用再次从盘式存储媒体读出在刚重放方向切换后的重放中需要的该刚才重放方向切换前已经送出的数据,就可以向上位装置送出。
另外,根据本发明,上述预读规则保存机构保存多个预读规则;上述预读区确定机构在既是由上述预读规则确定机构所确定的预读规则及其一个之前所运用的预读规则存在的场合,而且两个预读规则的预读方向又一致的场合,并用两个预读规则,来确定进行预读的盘式存储媒体上的位置和尺寸。由此,即使在把数据的重放速度从当前的重放速度切换到刚才的重放速度的场合,在所切换的重放速度下需要的数据也被预读,在切换到刚才的重放速度后,不用再次从盘式存储媒体读出需要的数据,就向上位装置送出成为可能。
根据本发明,还提供一种盘式存储装置,其特征在于,包括:储存读命令的历史信息的命令历史信息存储机构,该读命令是从上位装置收到的、读出记录在盘式存储媒体上的数据用的信息;基于记录在上述命令历史信息存储机构的命令检测数据的预读方向、和作为进行预读的数据的间隔的区间隔距离的连续性检测机构;基于上述读命令、和由上述连续性检测机构所检测的数据的预读方向,来确定进行预读的盘式存储媒体上的位置和尺寸的预读区确定机构;储存所预读的数据的高速缓冲存储器;从盘式存储媒体读出由上述预读起动机构所确定的进行预读的数据区的数据,控制成在上述高速缓冲存储器中,把在负方向上预读的数据依次储存在正方向上预读的数据的前方的预读起动机构;保存表示当前正在向上位装置发送的数据的上述高速缓冲存储器上的位置的发送中地址,和表示将要储存下次预读的数据的上述高速缓冲存储器的位置的下次预读数据储存开始地址的高速缓冲存储器指针保存机构,以及至少用上述发送中地址和预定的保护区尺寸算出用来使已经向上位装置送出的至少数块数据残留在高速缓冲存储器上的保护区,当用上述下次预读数据储存开始地址和预读区尺寸算出的预读数据的储存区和上述保护区重合时,上述预读起动机构不进行数据的预读的预读起动判断机构。由此,即使是一边频繁切换正向重放、反向重放一边进行数据的重放的场合,也在切换重放方向的时刻,把刚才重放方向切换前的已经向上位装置送出的数据保存在高速缓冲存储器内成为可能,不用再次从盘式存储媒体读出在刚重放方向切换后的重放中需要的该刚才重放方向切换前已经送出的数据,就可以向上位装置送出。而且,通过由预读起动机构进行在上述高速缓冲存储中,把在负方向上预读的数据依次存储在在正方向上预读的数据的前方的控制,可以把在负方向上依次读出的多个预读区的数据以连续的编址配置在高速缓冲器内,该连续的区域数据在高速缓存表中可作为一个入口登录,同时在把存在于高速缓冲存储器上的预读区的数据返送到上位装置时,可以与正方向数据无区别地取出在高速缓冲存储器上存在的预读区的数据。
本发明还提供与上述盘式存储装置对应的数据预读方法。具体地,
本发明提供一种数据预读方法,其特征在于包括:基于作为从上位装置收到的、读出记录在盘式存储媒体上的数据用的信息的读命令,来检测数据的预读方向和作为进行预读的数据的间隔的区间隔距离的连续性检测步骤;基于上述读命令、由上述连续性检测步骤所检测的数据的预读方向、区间隔距离、以及由保存作为用来进行数据的预读的规则的预读规则保存机构所保存的预读规则,来确定用于数据的预读的预读规则的预读规则确定步骤;基于由上述预读规则确定步骤所确定的用于数据的预读的预读规则,来确定进行预读的盘式存储媒体上的位置和尺寸的预读区确定步骤;以及从盘式存储媒体读出由上述预读区确定步骤所确定的进行预读的上述盘式存储媒体上的位置和尺寸的数据,在高速缓冲存储器中把在负方向上预读的数据依次储存在在正方向上预读的数据的前方的预读起动步骤。
另外,根据本发明,还包括:至少用表示当前正在向上位装置发送的数据的上述高速缓冲存储器上的位置的发送中地址和预定的保护区尺寸算出用来使已经向上位装置送出的至少数块数据残留在高速缓冲存储器上的保护区,当用表示将要储存下次预读的数据的上述高速缓冲存储器上的位置的下次预读数据储存开始地址和预读区尺寸算出的预读数据的存储区和上述保护区重合时,不进行数据的预读的预读起动判断步骤。
另外,根据本发明,还包括:上述预读区确定步骤,在既是由上述预读规则确定步骤所确定的预读规则及其一个之前所运用的预读规则存在的场合,而且两个预读规则的预读方向又一致的场合,并用两个预读规则,来确定进行预读的盘式存储媒体上的位置和尺寸。
本发明还提供一种数据预读方法,其特征在于包括:基于作为从上位装置收到的、读出记录在盘式存储媒体上的数据用的信息的读命令,来检测数据的预读方向;基于上述读命令和由上述连续性检测步骤所检测的数据的预读方向,来确定进行预读的盘式存储媒体上的位置和尺寸的预读区确定步骤;至少用表示当前正在向上位装置发送的数据的上述高速缓冲存储器上的位置的发送中地址和预定的保护区尺寸算出用来使已经向上位装置送出的至少数块数据残留在高速缓冲存储器上的保护区,当用表示将要储存下次预读的数据的上述高速缓冲存储器上的位置的下次预读数据储存开始地址和预读区尺寸算出的预读数据的存储区和上述保护区重合时,不进行数据的预读的预读起动判断步骤;以及在预读数据的储存区和上述保护区不重合时,从盘式存储媒体读出由上述预读区确定步骤所确定的进行预读的上述盘式存储媒体上的位置和尺寸的数据,在作为所预读的数据的储存区的高速缓冲存储器中,把在负方向上预读的数据依次储存在在正方向上预读的数据的前方的预读起动步骤。
附图说明
图1是表示根据本发明的第1实施例的盘式存储装置的构成之一例的方框图。
图2是表示根据本发明的第1实施例的盘式存储装置的基本处理之一例的程序框图。
图3是表示根据本发明的第1实施例的盘式存储装置的预读处理之一例的程序框图。
图4是表示根据本发明的第1实施例的盘式存储装置的连续性检测处理之一例的程序框图。
图5是表示读命令历史表内的数据结构之一例的图。
图6是表示根据本发明的第1实施例的盘式存储装置的预读区确定处理之一例的程序框图。
图7是表示储存在访问区信息保存部内的访问区信息之一例的图。
图8是表示高速缓冲存储器内的数据结构之一例的图。
图9是表示高速缓存表和高速缓存入口之一例的图。
图10是高速缓存入口的状态迁移图。
图11是表示根据本发明的第2实施例的盘式存储装置的构成之一例的方框图。
图12是表示根据本发明的第2实施例的盘式存储装置的预读处理之一例的程序框图。
图13是表示根据本发明的第2实施例的盘式存储装置的连续性检测处理之一例的程序框图。
图14是读命令历史表内的数据结构之一例的图。
图15是表示根据本发明的第2实施例的盘式存储装置的预读规则确定处理之一例的程序框图。
图16是表示预读规则表内的数据结构之一例的图。
图17是表示根据本发明的第2实施例的盘式存储装置的预读规则指针更新处理之一例的程序框图。
图18是表示根据本发明的第2实施例的盘式存储装置的旧规则运用判定处理之一例的程序框图。
图19是表示根据本发明的第2实施例的盘式存储装置的预读区确定处理之一例的程序框图。
图20是表示根据本发明的第3实施例的盘式存储装置的构成之一例的方框图。
图21是表示根据本发明的第3实施例的盘式存储装置的预读处理之一例的程序框图。
图22是表示根据本发明的第3实施例的盘式存储装置的预读起动判断处理之一例的程序框图。
图23是表示高速缓冲存储器指针保存部的数据结构之一例的图。
图24是表示高速缓冲存储器内的数据结构之一例的图。
具体实施方式
(第1实施例)
下面用图1至图10说明根据本发明的第1实施例的盘式存储装置。图1是表示根据本发明的第1实施例的盘式存储装置的构成的方框图之一例。图中,上位装置1对盘式存储装置输出旨在读出记录在盘式存储媒体上的数据的读命令。
此外,根据本发明的第1实施例的盘式存储装置,由主机I/F部2、高速缓存位判定部3、连续性检测部4、作为命令历史信息存储机构的读命令历史表5、预读区确定部6、预读起动部7、盘传输部8、头结构物9、高速缓冲存储器10、主机传输部11、高速缓存表12和访问区信息保存部13组成。
高速缓存位判定部3进行与经由主机I/F部2收到的来自上位装置1的读命令相对应的数据在高速缓冲存储器10上是否存在的调查。
连续性检测部4用储存在作为命令历史信息存储机构的读命令历史表5中的读命令的历史,计算进行数据的预读的访问方向。
作为命令历史信息存储机构的读命令历史表5保存从上位装置1发送的读命令的历史信息。
预读区确定部6基于读命令、由上述连续性检测部4所检测的检测结果、以及储存在访问区信息保存部13内的访问区信息,确定进行预读的盘式存储媒体上的位置和尺寸。
预读起动部7对盘传输部8发出旨在从盘式存储媒体读出由预读区确定部6所确定的进行预读的数据区的数据并储存在高速缓冲存储器10内的指示。
盘传输部8把经由头结构物9从盘式存储媒体读出的数据输出到高速缓冲存储器10。
高速缓冲存储器10保存预读数据。
主机传输部11把从盘式存储媒体11读出的数据经由主机I/F向上位装置1发送。
高速缓存表12保存储存在高速缓冲存储器10内的数据的表。
访问区信息保存部13保存关于由上一次预读访问过的盘式存储媒体的访问区的信息。
接下来,用图2中所示的程序框图说明根据本发明的第1实施例的盘式存储装置的基本处理。
如果高速缓存位判定部3通过主机I/F部2从上位装置1收到读命令,则首先作为读处理的基本处理,检索高速缓存表12而调查所要求的数据在高速缓冲存储器10上是否存在(步骤S1)。
在所要求的数据存在于高速缓冲存储器10上的场合,由主机传输部11把高速缓冲存储器10上的数据经由主机I/F部2向上位装置1传输(步骤S3)。
在所要求的数据未存在于高速缓冲存储器10上的场合,一边对盘传输部8指示把所要求的数据从盘11中经由头结构物9读出到高速缓冲存储器10上(步骤S2)一边由主机传输部11把数据经由主机I/F部2向上位装置1传输所要求的数据(步骤S3)。
接下来,用图3说明由盘式存储装置与上述基本处理同时进行的数据预读处理。
一边实行用上述图2中所示的程序框图说明的基本处理,一边经由主机I/F部2、高速缓存位判定部3收到来自上位装置1的读命令的连续性检测部4,进行根据记录在作为命令历史信息存储机构的读命令历史表5中的上一次的读命令中所要求的数据区的位置和本次的读命令中所要求的数据区的位置计算表示访问方向的访问方向值的连续性检测处理(步骤S4)。
接着,预读区确定部6进行基于本次读命令中所要求的数据区的位置和尺寸、由上述连续性检测部4所检测的访问方向值,确定进行预读的盘式存储媒体上的位置和尺寸的预读区确定处理(步骤S5)。
接着,预读起动部7检索高速缓存表12调查由预读区确定部6所确定的预读区的数据是否存在于高速缓冲存储器10上(步骤S6)。
在由预读区确定部6所确定的预读区的数据未存在于高速缓冲存储器10上的场合,预读起动部7对盘传输部8指示由预读区确定部6所确定的预读区的数据的读出,进行数据的预读(步骤S7)。此外,预读起动部7在数据的预读后,进行表示存在于高速缓冲存储器10上的数据的细目的高速缓存表2的更新处理(步骤S8)。
另一方面,在由预读区确定部6所确定的预读区的数据存在于高速缓冲存储器10上的场合,结束该数据的预读处理。
再者,上述数据的预读处理进行的步骤5中所示的确定预读区的处理以下的处理(步骤S5至步骤S8)反复进行直到收到来自上位装置1的新的命令,进行数据的预读(步骤S9)。
接下来,用图4、图5就上述图3中所示的步骤4的由连续性检测部4进行的连续性检测处理进行说明。
图4是用来说明根据本发明的第1实施例的盘式存储装置的连续性检测部4的动作的程序框图,图5示出储存在读命令历史表5内的读命令之一例。
连续性检测部4首先进行读命令历史表5的更新处理。该更新处理,在图5中,把上一次读取区开头扇区号A置为上二次读取区开头扇区号C,把上一次读取区尺寸B置为上二次读取区尺寸D,把本次读取区开头扇区号G置为上一次读取区开头扇区号A,把本次读取区尺寸H置为上一次读取区尺寸B,把从上位装置1收到的读命令的读取区开头扇区号置为本次读取区开头扇区号G,把从上位装置1收到的读命令的读取区尺寸置为本次读取区尺寸H,并把本次访问方向值I置为上一次访问方向值E,结束读历史表5的更新处理(步骤S11)。
接着,连续性检测部4通过把从上位装置1收到的本次读取区开头扇区号G与由上述步骤S46更新的上一次读取区开头扇区号A进行比较(步骤S12),计算访问方向。此时,访问方向作为二进制的值把正方向1、负方向0取为表示访问方向的值,置为图5中所示的本次访问方向值I(步骤S13或步骤S14),结束连续性检测处理。
接着,预读区确定部5基于本次读命令中所要求的本次读取区开头扇区号与本次的读取区尺寸,以及由上述连续性检测部4所检测的访问方向值,确定作为盘式存储媒体上的开始预读的位置的预读区扇区号和作为进行预读的数据的尺寸的预读区尺寸。
下面用图6、图7就上述图3中所示的步骤S5的由预读区确定部6进行的预读区确定处理进行说明。
图6是用来说明根据本发明的第1实施例的盘式存储装置的预读区确定部6的动作的程序框图,图7示出储存在访问区信息保存部13内的访问区信息之一例。再者,在图7中,访问区信息由作为进行上一次预读的盘式存储媒体的数据区的开头扇区号的访问区开头扇区号Q,和作为由上一次预读所读出的数据的尺寸的访问区尺寸R组成。
在图6中,预读区确定部6首先判断由连续性检测部4所检测的预读方向值是不是表示正方向的访问的“1”(步骤S21)。在预读方向值为“1”的场合,把访问区尺寸R加到访问区开头扇区号Q上,计算预读区扇区号(步骤S22)。
在预读方向值为表示负方向访问的“0”的场合,从访问区开头扇区号Q中减去预读区尺寸Z,计算预读区扇区号(步骤S23)。
如果计算了预读区扇区号(步骤S22、步骤S23),则预读区确定部6把储存在访问信息保存部13内的访问区开头扇区号Q更新为本次计算的预读区扇区号,并且把访问区尺寸R更新为本次的读取区尺寸(S24)。
预读区确定部6把所计算的预读区扇区号和作为预读区尺寸的本次的读取区尺寸输出到预读起动部7,结束预读区确定处理。
预读起动部7检索高速化12调查从预读区确定部6所输出的预读区扇区号和预读区尺寸所示的数据是否存在于高速缓冲存储器10上,在不存在该数据的场合,对盘传输部8指示从预读区确定部6所输出的预读区扇区号和预读区尺寸所示的记录在盘式存储媒体上的数据的读出,进行数据的预读。此外,预读起动部7在上述数据的预读后,进行高速缓存表12的更新并结束预读处理。
另一方面,在存在该数据的场合,进行下一个数据的预读处理。
这样一来,把储存在作为命令历史信息存储机构的读命令历史表5内的刚才的读取中访问的区与当前读命令中所要求的区进行比较,确定进行数据的预读的方向,由此即使对负方向,也就是地址减小的方向连续地读出数据的场合,进行这些数据的预读也成为可能,可以高速地进行负方向数据的连续读出。
接下来,用图8至图10就根据本发明的第1实施例的盘式存储装置把从盘式存储媒体读出的数据储存在高速缓冲存储器10中的方法进行说明。
图8是表示用现有技术的储存方式和本发明的储存方式储存数据的场合的高速缓冲存储器10的储存状态的图。如图8中所示,在把盘式存储装置中的预读区的数据从盘式存储媒体中读出并储存在高速缓冲存储器10中的储存方法中,在用现有技术的数据储存方式把负方向预读数据储存在高速缓冲存储器中的场合,分别把负方向预读数据D1、D2、D3、D4依次储存在正方向高速缓存数据的后方(存储器地址加大的方向)。
在该场合,负方向预读数据D1(LBA 4700~LBA 4799)与负方向预读数据D2(LBA 4600~LBA 4699)的边界为LBA 4600和LBA 4799而产生数据的不连续。这在所有区之间都发生,为了解决该问题,在现有技术的数据储存方式中,有必要针对每个区作成并登记作为向高速缓冲存储器的登记信息的图9中所示的高速缓存入口。另一方面,在根据本发明的数据储存方式中,把沿负方向依次读出的多个预读区的数据依次储存在高速缓冲存储器的地址空间的负方向区中。也就是说,把负方向预读数据D1、D2、D3、D4依次储存在预读数据正方向高速缓存数据的前方(存储器地址减小的方向)。
在该场合,负方向预读数据D1(LBA 4700~LBA 4799)与负方向预读数据D2(LBA 4600~LBA 4699)的边界成为LBA 4700和LBA 4699地被储存,保持各区之间的数据的连续性成为可能。因此,如图10中所示,通过仅变更作为高速缓冲存储器内的信息的开头LBA和高速缓冲存储器内开头地址就可以管理储存在高速缓冲存储器10内的数据,没有必要像现有技术的数据储存方式那样,针对每个区作成新的高速缓存入口。
这样一来,把沿负方向依次读出的多个预读区的数据储存在高速缓冲存储器上的地址空间的负方向区中以便连续性不中断,由此沿负方向依次读出的多个预读区的数据以连续的编址配置在高速缓冲存储器内,简易地管理储存在高速缓冲存储器内的数据成为可能。此外,在把存在于高速缓冲存储器上的预读区的数据送回上位装置1的场合,与正方向数据无区别地取出存在于高速缓冲存储器上的预读区的数据成为可能。
再者,如图1中所示,高速缓存位判定部3和连续性检测部4、预读区确定部6、预读起动部7的各处理由CPU 101来进行,读命令历史表5、高速缓存表12、访问区信息保存部13配置在从CPU 101能够读写的RAM100上。
(第2实施例)
下面用图11至图20就根据本发明的第2实施例的盘式存储装置进行说明。
图11是表示根据本发明的第2实施例的盘式存储装置的构成的方框图。图中,上位装置1对盘式存储装置输出旨在读出记录在盘式存储媒体上的数据的读命令。
此外,根据本发明的第2实施例的盘式存储装置,由主机F/I部2、高速缓存位判定部3、连续性检测部16、作为命令历史信息存储机构的读命令历史表5、预读规则确定部14、作为预读规则保存机构的预读规则表15、预读区确定部17、预读起动部7、盘传输部8、高速缓冲存储器10、主机传输部11、高速缓存表12和访问区信息保存部13组成。
再者,根据本发明的第2实施例的盘式存储装置即使在收到要求以一定间隔离散地分布的数据的连续的读命令的场合,也可以有效地进行数据的预读,在这一点与使要求沿负方向,也就是地址减小的方向分布的数据的读命令的预读成为可能的上述实施例不同。因此,对进行与上述第1实施例相同的动作的构成要素赋予相同的标号,并省略其说明。
连续性检测部16用储存在作为命令历史信息存储机构的读命令历史表5中的读命令的历史,计算进行数据的预读的访问方向,和读出数据的区之间的区间隔距离。
预读规则确定部14基于读命令,和由上述连续性检测部16所检测的数据的预读方向、区间隔距离,作为预读规则保存机构的预读规则表15保存的预读规则,确定用于数据的预读的预读规则。
作为预读规则保存机构的预读规则表15,保存由预读规则确定部14所确定的预读规则。
预读区确定部17基于在预读规则确定部14中所确定的预读规则,以及储存在访问区信息保存部13内的访问区信息,确定开始预读的盘式存储媒体的区的位置和预读区的尺寸。
接下来,虽然是根据本发明的第2实施例的盘式存储装置的基本处理,但是因为与用图2说明的根据第1实施例的盘式存储装置的基本处理相同,故省略其说明。
根据本发明的第2实施例的盘式存储装置一边实施上述基本处理,一边进行以下说明的数据预读处理。
下面用图12就根据本发明的第2实施例的盘式存储装置的数据预读处理进行说明。
一边实施上述用图2说明的基本处理,一边进行通过主机I/F部2从上位装置1收到读命令的连续性检测部16根据记录在作为命令历史信息存储机构的读命令历史表5中的上一次读命令中所要求的数据区的位置和本次读命令中所要求的数据区的位置来计算访问方向和各个区之间的区间隔距离的连续性检测处理(步骤31)。
接着,预读规则确定部14进行用由上述连续性检测部16所计算的访问方向和区之间的区间隔距离以及本次所要求的数据区尺寸,确定用于数据的预读的预读规则的预读规则确定处理(步骤S32)。再者,所确定的预读规则保存在作为预读规则保存机构的预读规则表15中。
预读区确定部17进行是否并用作为在本次读命令中所运用的预读规则之前所运用的预读规则的旧规则来进行数据的预读的旧规则运用判定处理,确定运用于数据的预读的预读规则,进行基于所确定的预读规则,确定进行预读的盘式存储媒体上的位置和尺寸的预读区确定处理(步骤S33)。
接着,预读起动部7检索高速缓存表12调查由预读区确定部17所确定的预读区的数据是否存在于高速缓冲存储器10上(步骤S34)。
在由预读区确定部17所确定的预读区的数据未存在于高速缓冲存储器10上的场合,预读起动部7对盘传输部8指示由预读区确定部17所确定的预读区的数据的读出,进行数据的预读(步骤S35)。此外,预读起动部7在数据的预读后,进行表示存在于高速缓冲存储器10的数据的细目的高速缓存表12的更新处理(步骤S36)。
另一方面,在由预读区确定部17所确定的预读区的数据存在于高速缓冲存储器10上的场合,结束该数据的预读处理。
再者,步骤33的预读区确定处理以后的处理反复进行直到收到来自上位装置1的新的命令,进行数据的预读(步骤S37)。
接下来,用图13、图14就上述图12中所示的步骤31的由连续性检测部16进行的连续性检测处理进行说明。
图13是用来说明根据本发明的第2实施例的盘式存储装置的连续性检测部16的动作的程序框图,图14示出储存在读命令历史表5内的读命令之一例。
连续性检测部16首先进行读命令历史表5的更新处理。该更新处理,在图14中,把上一次读取区开头扇区号A置为上二次读取区开头扇区号C,把上一次读取区尺寸B置为上二次读取区尺寸D,把本次读取区开头扇区号G置为上一次读取区开头扇区号A,把本次读取区尺寸H置为上一次读取区尺寸B,把从上位装置1收到的读命令的读取区开头扇区号置为本次读取区开头扇区号G,把从上位装置1收到的读命令的读取区尺寸置为本次读取区尺寸H,把本次访问方向值I置为上一次访问方向值E,以及把本次区间隔距离J置为上一次区间隔距离F,结束读历史表5的更新处理(步骤S46)。
接着,连续性检测部15通过把从上位装置1收到的本次读取区开头扇区号G与由上述步骤S46更新的上一次读取区开头扇区号A进行比较(步骤S42),计算访问方向。此时,访问方向作为二进制的值把正方向1、负方向0取为表示访问方向的值,置为图14中所示的本次访问方向值I(步骤S43或步骤S44)。
然后,连续性检测部16计算本次读取区开头扇区号G与上一次读取区开头扇区号A的差分的绝对值,作为区间隔距离置为本次区间隔距离J(步骤S45),结束连续性检测处理。
接下来,用图15、16就上述图12中所示的步骤S32的由预读规则确定部14进行的预读规则确定处理进行说明。
图15是用来说明根据本发明的第2实施例的盘式存储装置的预读规则确定部14的动作的程序框图,图16示出储存在预读规则表内的预读规则之一例。
再者,预读规则入口W0至W5是储存在预读规则表内的预读规则入口群,各预读规则入口分别由预读方向值X、预读区间隔距离Y和预读区尺寸Z组成。此外,预读规则更新标志T是表示预读规则被更新了的标志,同时表示旧规则的存在。再者,作为二进制的值,取成在预读规则被更新了的场合置为“1”,在预读规则未被更新的场合置为“0”。预读规则指针U表示当前运用的预读规则。
图15的程序框图中,预读规则确定部14首先判定是否从上位装置1收到对当前的预读规则有整合性的读命令。具体地说,分别判定上述连续性检测处理中计算的本次访问方向值(参照图13的步骤S43、44)与记录在预读规则表15中的预读规则指针U指示的当前预读规则的预读方向(参照图16)的一致性(步骤S51),上述连续性检测处理中计算的本次区间隔距离(参照图13的步骤S45)与记录在预读规则表15中的预读区间隔距离Y(参照图16)的一致性(步骤S52),以及从上位装置1收到的本次读取区尺寸与记录在预读规则表15中的预读规则指针U(参照图16)指示的当前预读规则的预读区尺寸Z的一致性(步骤S53)。
在这些判定(步骤S51至步骤S53)的结果全都一致的场合,因为当前的预读规则可以运用,故不进行变更,照原样运用当前的预读规则。
另一方面,在这些判定(步骤S51至步骤S53)的结果,判定成当前运用的规则不能运用于本次读命令的场合,把上一次读命令与本次读命令进行比较,进行是否可以确定新的预读规则的判断。
也就是说,分别判定上述连续性检测处理中计算的本次访问方向值(参照图13的步骤S43、44)与记录在读命令历史表5中的上一次访问方向值E(参照图14)的一致性(步骤S54),上述连续性检测处理中计算的本次区间隔距离(参照图13的步骤S45)与记录在读命令历史表5中的上一次区间隔距离F(参照图14)的一致性(步骤S55),以及从上位装置1收到的本次读取区尺寸与记录在读命令历史表5中的上一次读取区尺寸B(参照图14)的一致性(步骤S56)。
在这些判定(步骤S54至步骤S56)的结果全都一致的场合,作为新的预读规则更新预读规则表15的预读规则指针U(步骤S57),分别把本次访问方向值置为预读规则表15的更新了的预读规则指针U指示的预读规则入口的预读方向值X(步骤S58),把本次区间隔距离置为预读区间隔距离Y(步骤S59),把本次读取区尺寸置为预读区尺寸Z(步骤S60),更新预读规则。
如果预读规则的更新结束,则把预读规则表15的预读更新标志T置为“1”,结束预读规则确定处理(步骤S65)。
另一方面,在这些判定(步骤S54至步骤S56)的结果有任何一个不一致的场合,因为不能运用新的预读规则,故进行旨在预读对本次的读取区连续的数据的设定。也就是说,更新预读规则表15的预读规则指针U(步骤S61),对预读规则表15的该更新了的预读规则指针U指示的预读规则入口,进行预读对本次的读取区连续的数据的设定。也就是说,分别把本次访问方向值(图13的步骤S43、44)置为预读规则表15的预读方向值X(步骤S62),作为区间隔距离把0置为预读区间隔距离Y(步骤S63),把本次读取区尺寸置为预读区尺寸Z,更新预读规则,结束预读规则确定处理(步骤S64)。再者,在该场合,不进行预读规则表15的预读规则更新标志T的更新。
此外,根据本发明的第2实施例中的盘式存储装置的预读规则保存部15,虽然就有5个预读入口者进行了说明,但是不限于此,只要是有至少一个预读入口者就可以了。
接下来用图17就上述图15中所示的步骤S57和步骤S61的由预读规则确定部15进行的预读规则指针更新处理进行说明。
图17是用来说明根据本发明的第2实施例的盘式存储装置的由预读规则确定部14进行的规则指针更新处理的程序框图。
再者,步骤S57和步骤S61的预读规则指针更新处理是使构成环式缓冲区的预读规则入口群的指示当前的预读规则入口的预读规则指针前进一个入口的处理,每个都是相同的处理。
首先,由预读规则确定部14进行的预读规则指针更新处理对预读规则表15的预读规则指针U进行加1计算(步骤S571)。
接着,把预读规则指针U与最大预读规则入口编号(图16的场合是5)进行比较(步骤S572),在预读规则指针U大于最大预读规则入口编号的场合,在预读规则指针U中置0(步骤S573)。
接下来,用图16、图18就上述图12中所示的步骤S33由预读区确定部17进行的预读区确定处理的旧规则运用判定处理进行说明。
再者,该旧规则运用判定处理的目的在于,在把数据的重放速度从当前的重放速度切换到刚才的重放速度的场合,也以切换了的重放速度预读必要的数据,在切换成刚才的重放速度后,不用再次从盘式存储媒体读出必要的数据就可以向上位装置送出。
图18是用来说明根据本发明的第2实施例的盘式存储装置的预读区确定部17的旧规则运用判定处理的程序框图。
预读区确定部17首先指定预读规则表15的预读规则入口W0~W5内,由预读规则指针U所指示的预读规则入口(步骤S71)。再者,由预读规则指针U所指示的预读规则入口设为W1进行以下的说明。
接着,预读区确定部17进行基于作为步骤S71中所指定的预读规则的预读方向值X1、预读区间隔距离Y1、预读区尺寸Z1来确定进行预读的盘式存储媒体上的位置和尺寸的预读区确定处理(步骤S72)。
接着,预读区确定部17把图16中所示的预读规则表15的预读更新标志置为“1”,而且根据预读规则指针U所指示的预读规则入口的预读方向值X1与其上一个登记的预读规则入口的预读方向值X0是否一致,判断作为当前运用的预读规则之前所运用的预读规则的旧规则的存在,和预读方向是否一致(步骤S73)。
在旧规则存在,而且预读方向一致的场合,因为进行用旧规则的预读,故根据由图16中所示的预读规则表15的预读规则指针U所指示的预读规则入口,指定一个老的预读规则入口(步骤S74)。
接着,预读区确定部17进行基于作为步骤S74中所指定的预读规则的预读方向值X0、预读区间隔距离Y0、预读区尺寸Z0来确定进行预读的盘式存储媒体上的位置和尺寸的预读区确定处理(步骤S75)。
下面用图7、图16、图19就上述图18中所示的步骤S72、和步骤S75的由预读区确定部17进行的预读区确定处理进行说明。
图19是用来说明根据本发明的第2实施例的盘式存储装置的预读区确定部17的预读区确定处理的程序框图,图7示出储存在访问信息保存部13内的访问区信息之一例。再者,在图7中,访问区信息由作为进行上一次预读的盘式存储媒体的数据区的开头扇区号的预读区开头扇区号Q,和作为由上一次预读所读出的数据的尺寸的访问区尺寸R组成。
在图19中,预读区确定部17基于由上述旧规则运用判定处理所指定的图16中所示的预读方向值X、预读区间隔距离Y、预读区尺寸Z,以及图7中所示的储存在访问信息保存部13内的访问区开头扇区号Q和访问区尺寸R,来确定进行本次预读的预读区扇区号和预读区尺寸。
首先,预读区确定部17判断预读方向值X是不是表示正方向访问的“1”(步骤S81)。
在预读方向值为“1”的场合,把预读区间隔Y加到访问区开头扇区号Q上,计算预读区扇区号(步骤S82)。
在预读方向值为表示负方向访问的“0”的场合,从访问区开头扇区号Q中减去预读区尺寸Z,计算预读区扇区号(步骤S83)。
如果计算了预读区扇区号(步骤S82、步骤S83),则预读区确定部17把储存在访问信息保存部13内的访问区开头扇区号Q更新为本次计算的预读区扇区号,并且把预读区尺寸Z登记为访问区尺寸R(S84)。
预读区确定部17向预读起动部7输出所计算的预读区扇区号和预读区尺寸Z,结束预读区确定处理(S85)。
预读起动部7检索高速缓存表12调查由从预读区确定部17所输出的预读区扇区号和预读区尺寸所表示的数据是否存在于高速缓冲存储器10上,在该数据不存在的场合,向盘传输部8指示由从预读区确定部17所输出的预读区扇区号和预读区尺寸所表示的数据的读出,进行数据的预读。此外,预读起动部7在上述数据的预读后进行高速缓存表12的更新而结束数据预读处理。
另一方面,在该数据存在的场合,进行下一个数据预读处理。
再者,虽然是根据本发明的第2实施例的盘式存储装置的把从盘式存储媒体读出的数据储存在高速缓冲存储器10中的储存方式,但是因为与上述第1实施例中用图8至图10说明的数据储存方式相同故省略其说明。
这样一来,把储存在作为命令历史信息存储机构的读命令历史表5内的刚才的读取中所访问的区与当前读命令中所要求的区进行比较,来确定进行数据预读的方向,由此即使在对负方向,也就是地址减小的方向连续地读出数据的场合,进行这些数据的预读也成为可能,可以高速地进行负方向数据的连续读出。
此外,检测读命令的连续性而确定预读规则,用该预读规则确定进行数据的预读的预读区的位置和尺寸,由此针对向以一定间隔分布的数据区的连续的读取要求进行数据的预读成为可能。由此,即使是高速重放保存在盘式存储媒体上的数据时这种连续读出以一定间隔分布的数据的场合,也可以不预读不必要的数据,有效地利用高速缓冲存储器10。
此外,在当前将要运用的预读规则和在其一个前所运用的预读规则存在,且两个预读规则的预读方向一致的场合,并用两个预读规则,确定进行数据的预读的盘式存储媒体上的位置和尺寸,由此即使在把数据的重放速度从当前的重放速度切换到刚才的重放速度的场合,在所切换的重放速度下需要的数据也被预读,在切换到刚才的重放速度后,不用再次从盘式存储媒体读出需要的数据,就向上位装置送出成为可能。
再者,虽然就根据本发明的第2实施例的盘式存储装置的预读区确定部17判断是否并用旧规则进行预读,在并用旧规则进行预读的场合,共用与本次的读命令相对应的本次的预读规则和在本次预读规则之前所运用的旧规则来进行数据的预读者进行了说明,但是不限于此,也可以预读区确定部17不进行旧规则运用判定处理,只是仅用与本次的读命令相对应的本次的预读规则来进行数据的预读。
此外,虽然就根据本发明的第2实施例的盘式存储装置的连续性检测部16检测数据的预读方向和作为进行预读的数据的间隔的区间隔距离,根据预读规则确定部14用该检测结果来确定的预读规则来进行数据的预读者进行了说明,但是不限于此,即使是连续性检测部16检测作为进行预读的数据的间隔的区间隔距离,根据预读规则确定部14用该检测结果来确定的预读规则来进行数据的预读者,也可以对要求以一定间隔离散分布的数据的连续的读命令高效地进行数据的预读。
此外,如图11中所示,高速缓存位判定部3和连续性检测部16、预读规则确定部14、预读区确定部17、预读起动部7的各处理由CPU 103来进行,读命令历史表5、高速缓存表12、访问区信息保存部13、预读规则表15配置在从CPU 103能够读写的RAM 102上。
(第3实施例)
下面用图20至图23说明根据本发明的第3实施例的盘式存储装置。
图20是表示根据本发明的第3实施例的盘式存储装置的构成的方框图之一例。图中,上位装置1对盘式存储装置输出旨在读出记录在盘式存储媒体上的数据的读命令。
此外,根据本发明的第3实施例的盘式存储装置,由主机I/F部2、高速缓存位判定部3、连续性检测部16、作为命令历史信息存储机构的读命令历史表5、预读规则确定部14、预读规则确定部14、作为预读规则保存机构的预读规则表15、预读区确定部17、预读起动部7、盘传输部8、高速缓冲存储器10、主机传输部11、高速缓存表12、访问区信息保存部13、高速缓冲存储器指针保存部18和预读起动判断部19组成。
再者,根据本发明的第3实施例的盘式存储装置设置保护区,以便把已经向上位装置送出的至少数块的数据保留在高速缓冲存储器上,在这一点上与上述第2实施例不同。因此,对进行与上述第2实施例相同的动作的构成要素赋予相同的标号,并省略其说明。
高速缓冲存储器指针保存部18保存表示当前正在向上位装置发送的数据位于的高速缓冲存储器上的位置的发送中地址和表示将要储存下次预读的数据的高速缓冲存储器上的位置的下次预读数据储存开始地址。
预读起动判断部19为了把已经向上位装置送出的至少数块的数据保留在高速缓冲存储器上,进行用保存在上述高速缓冲存储器指针保存部中的发送中地址和下次预读数据储存开始地址来判断是否进行数据的预读的预读起动判断处理。
接下来,虽然是根据本发明的第3实施例的盘式存储装置的基本处理,但是因为与用图2说明的根据第1实施例的盘式存储装置的基本处理相同,故省略其说明。
下面用图21就根据本发明的第3实施例的盘式存储装置的数据预读处理进行说明。
一边实施上述用图2说明的基本处理,一边进行通过主机I/F部2从上位装置1收到读命令的连续性检测部16根据记录在作为命令历史信息存储机构的读命令历史表5中的上一次读命令中所要求的数据区的位置和本次读命令中所要求的数据区的位置来计算访问方向和各个区之间的区间隔距离的连续性检测处理(步骤31)。
接着,预读规则确定部14进行用由上述连续性检测部16所计算的访问方向和区之间的区间隔距离以及本次所要求的数据区尺寸,确定用于数据的预读的预读规则的预读规则确定处理(步骤S32)。再者,所确定的预读规则保存在作为预读规则保存机构的预读规则表15中。
预读区确定部17进行是否并用作为在本次读命令中所运用的预读规则之前所运用的预读规则的旧规则来进行数据的预读的旧规则运用判定处理,确定运用于数据的预读的预读规则,进行基于所确定的预读规则,确定进行预读的盘式存储媒体上的位置和尺寸的预读区确定处理(步骤S33)。
接着,预读起动判断部进行用储存在高速缓冲存储器指针保存部18内的发送中地址和下次预读数据储存开始地址来判断是否进行预读的预读起动判断(步骤S91)。
在判断成不进行预读的场合继续进行预读起动判断处理直到收到来自上位装置1的新的命令(步骤S92)。
在判断成进行预读的场合,预读起动部7检索高速缓存表12调查由预读区确定部17所确定的预读区的数据是否存在于高速缓冲存储器10上(步骤S34)。
在由预读区确定部17所确定的预读区的数据未存在于高速缓冲存储器10上的场合,预读起动部7对盘传输部8指示由预读区确定部17所确定的预读区的数据的读出,进行数据的预读(步骤S35)。此外,预读起动部7在数据的预读后,进行表示存在于高速缓冲存储器10的数据的细目的高速缓存表12的更新处理(步骤S36)。
另一方面,在由预读区确定部17所确定的预读区的数据存在于高速缓冲存储器10上的场合,结束该数据的预读处理。
再者,步骤33的预读区确定处理以后的处理反复进行直到收到来自上位装置1的新的命令,进行数据的预读(步骤S37)。
接下来,上述图21中所示的步骤S31的连续性检测部16进行的连续性检测处理,步骤S32的预读规则确定部14进行的预读规则确定处理,以及步骤S33的预读区确定部17进行的预读区确定处理,因为与上述第2实施例进行的相同,故省略其说明。
接下来,用图22至图24就上述图21中所示的步骤S91的预读起动判断部19进行的预读起动判断处理进行说明。
图22是用来说明根据本发明的第3实施例的盘式存储装置的预读起动判断部19进行的预读起动判断处理的程序框图,图23是表示保存在高速缓冲存储器指针保存部18中的高速缓存表之一例的图,图24是用来说明作为储存在高速缓冲存储器10内的数据受保护的数据区的保护区的说明图。
再者,在图23中,高速缓冲存储器指针保存部18保存表示作为当前正在向上位装置1发送的高速缓冲存储器10上的数据块的开始地址的高速缓冲存储器地址的发送中地址O,和作为将要储存下次预读的数据的高速缓冲存储器上的高速缓冲存储器地址的预读数据储存地址。
预读起动判断部19首先进行在上述预读区确定处理(步骤S33)的过程中所指定的预读规则表14内的预读规则入口的预读方向值是不是“1”,也就是否沿正方向进行预读的判断(步骤S101)。
在预读方向值X为“1”的场合,从保存在高速缓冲存储器指针保存部18中的,作为正在向上位装置1发送的数据块的开始地址的发送中地址O减去预定的保护区尺寸来计算作为对正在送出的数据按规定量保护负方向的数据用的边界地址的保护区地址(步骤S102)。
另一方面,在预读方向值X不是“1”而是“0”的场合,也就是沿负方向进行预读的场合,把图16中所示的预读区尺寸Z和预定的保护区尺寸加到发送中地址O上来计算作为对正在送出的数据按规定量保护正方向的数据用的边界地址的保护区地址(步骤S103)。
接着,预读起动判断部19判断保护区地址是否重合于保存在高速缓冲存储器指针保存部18中的下次预读数据储存开始地址P和图16中所示的预读区尺寸Z中所确定的下次预读数据的储存区(步骤S104)。
在保护区地址重合于下次预读数据的储存区的场合,禁止数据的预读,结束预读起动判断处理(步骤S105)。
另一方面,在保护区地址不重合于下次预读数据的储存区的场合,允许数据的预读,结束预读起动判断处理(步骤S106)。
上述,如果根据预读起动判断处理允许数据的预读则预读起动部7检索高速缓存表12调查由从预读区确定部17所输出的预读区扇区号和预读区尺寸所表示的数据是否存在于高速缓冲存储器10上,在该数据不存在的场合,向盘传输部8指示由从预读区确定部17所输出的预读区扇区号和预读区尺寸所表示的数据的读出,进行数据的预读。此外,预读起动部7在上述数据的预读后进行高速缓存表12的更新而结束数据预读处理。
另一方面,在该数据存在的场合,进行下一个数据预读处理。
再者,虽然是根据本发明的第3实施例的盘式存储装置的把从盘式存储媒体读出的数据储存在高速缓冲存储器10中的储存方式,但是因为与上述第1实施例中用图8至图10说明的数据储存方式相同故省略其说明。
这样一来,用表示当前正在向上位装置1发送的数据处于的高速缓冲存储器上的位置的发送中地址,和表示将要储存下次预读的数据的高速缓冲存储器上的位置的下次预读数据储存开始地址,为了使已经向上位装置送出的至少数块数据残留在高速缓冲存储器上而设置保护区,进行数据的预读,由此即使是一边频繁切换正向重放、反向重放一边进行数据的重放的场合,也在切换重放方向的时刻,把刚才重放方向切换前的已经向上位装置送出的数据保存在高速缓冲存储器内成为可能,不用再次从盘式存储媒体读出在刚重放方向切换后的重放中需要的该刚才重放方向切换前已经送出的数据,就可以向上位装置1送出。
再者,虽然根据本发明的第3实施例的盘式存储装置就在根据上述第2实施例的盘式存储装置上设置高速缓冲存储器指针保存部18和预读起动判断部19者进行了说明,但是不限于此,例如,即使是在根据上述第1实施例的盘式存储装置上设置高速缓冲存储器指针保存部18和预读起动判断部19者也可以得到同样的效果。
此外,如图20中所示,高速缓存位判定部3和连续性检测部16、预读规则确定部14、预读区确定部17、预读起动判断部19、预读起动部7的各处理由CPU 105来进行,读命令历史表5、高速缓存表12、访问区信息保存部13、预读规则表15、高速缓冲存储器指针保存部18配置在从CPU 105能够读写的RAM 104上。
(第4实施例)
在第1至第3实施例中说明的盘式存储装置,图1、图11、图20中所示的CPU 101、103、105用内部持有的ROM内的控制程序来控制。不仅在各种媒体中收纳提供该控制程序,而且经由因特网、其他网络等通信手段提供程序,也可以得到与在本第1至第3实施例中说明的效果同样的效果。
再者,作为记录程序的记录媒体,可以用例如软盘、硬盘、光盘、磁盘、光磁盘、CD-ROM、磁带、穿孔卡片、非易失存储卡等。
产业上的实用性
根据本发明的盘式存储装置可以对储存在磁盘或光盘等盘式存储媒体中的数据的负方向的预读,或以一定间隔离散分布的数据的高效的预读,可以谋求盘式存储装置的由数据预读实现的数据传输的提高。

Claims (8)

1.一种盘式存储装置,其特征在于包括:
储存读命令的历史信息的命令历史信息存储机构,该读命令是从上位装置收到的、读出记录在盘式存储媒体上的数据用的信息;
基于记录在上述命令历史信息存储机构的命令,检测数据的预读方向、和作为进行预读的数据的间隔的区间隔距离的连续性检测机构;
保存作为用来进行数据的预读的规则的预读规则的预读规则保存机构;
基于上述读命令、由上述连续性检测机构所检测的数据的预读方向、区间隔距离、和上述预读规则保存机构保存的预读规则,来确定用于数据的预读的预读规则的预读规则确定机构;
基于由上述预读规则确定机构所确定的预读规则,来确定进行预读的盘式存储媒体上的位置和尺寸的预读区确定机构;
储存所预读的数据的高速缓冲存储器;以及
从盘式存储媒体读出由上述预读起动机构所确定的进行预读的数据,控制成在上述高速缓冲存储器中,把在负方向上预读的数据依次储存在在正方向上预读的数据的前方的预读起动机构。
2.根据权利要求1所述的盘式存储装置,其特征在于还包括:
保存表示当前正在向上位装置发送的数据的上述高速缓冲存储器上的位置的发送中地址,和表示将要储存下次预读的数据的上述高速缓冲存储器上的位置的下次预读数据储存开始地址的高速缓冲存储器指针保存机构,以及
至少用上述发送中地址和预定的保护区尺寸算出用来使已经向上位装置送出的至少数块数据残留在高速缓冲存储器上的保护区,当用上述下次预读数据储存开始地址和预读区尺寸算出的预读数据的储存区和上述保护区重合时,上述预读起动机构不进行数据的预读的预读起动判断机构。
3.根据权利要求1或2所述的盘式存储装置,其特征在于,
上述预读规则保存机构保存多个预读规则;
上述预读区确定机构在既是由上述预读规则确定机构所确定的预读规则及其一个之前所运用的预读规则存在的场合,而且两个预读规则的预读方向又一致的场合,并用两个预读规则,来确定进行预读的盘式存储媒体上的位置和尺寸。
4.一种盘式存储装置,其特征在于包括:
储存读命令的历史信息的命令历史信息存储机构,该读命令是从上位装置收到的、读出记录在盘式存储媒体上的数据用的信息;
基于记录在上述命令历史信息存储机构的命令,检测数据的预读方向、和作为进行预读的数据的间隔的区间隔距离的连续性检测机构;
基于上述读命令、和由上述连续性检测机构所检测的数据的预读方向,来确定进行预读的盘式存储媒体上的位置和尺寸的预读区确定机构;
储存所预读的数据的高速缓冲存储器;
从盘式存储媒体读出由上述预读起动机构所确定的进行预读的数据,控制成在上述高速缓冲存储器中,把在负方向上预读的数据依次储存在在正方向上预读的数据的前方的预读起动机构;
保存表示当前正在向上位装置发送的数据的上述高速缓冲存储器上的位置的发送中地址,和表示将要储存下次预读的数据的上述高速缓冲存储器上的位置的下次预读数据储存开始地址的高速缓冲存储器指针保存机构,以及
至少用上述发送中地址和预定的保护区尺寸算出用来使已经向上位装置送出的至少数块数据残留在高速缓冲存储器上的保护区,当用上述下次预读数据储存开始地址和预读区尺寸算出的预读数据的储存区和上述保护区重合时,上述预读起动机构不进行数据的预读的预读起动判断机构。
5.一种数据预读方法,其特征在于包括:
基于作为从上位装置收到的、读出记录在盘式存储媒体上的数据用的信息的读命令,来检测数据的预读方向和作为进行预读的数据的间隔的区间隔距离的连续性检测步骤;
基于上述读命令、由上述连续性检测步骤所检测的数据的预读方向、区间隔距离、以及由保存作为用来进行数据的预读的规则的预读规则保存机构所保存的预读规则,来确定用于数据的预读的预读规则的预读规则确定步骤;
基于由上述预读规则确定步骤所确定的用于数据的预读的预读规则,来确定进行预读的盘式存储媒体上的位置和尺寸的预读区确定步骤;以及
从盘式存储媒体读出由上述预读区确定步骤所确定的进行预读的上述盘式存储媒体上的位置和尺寸的数据,在高速缓冲存储器中把在负方向上预读的数据依次储存在在正方向上预读的数据的前方的预读起动步骤。
6.根据权利要求5所述的数据预读方法,其特征在于还包括:
至少用表示当前正在向上位装置发送的数据的上述高速缓冲存储器上的位置的发送中地址和预定的保护区尺寸算出用来使已经向上位装置送出的至少数块数据残留在高速缓冲存储器上的保护区,当用表示将要储存下次预读的数据的上述高速缓冲存储器上的位置的下次预读数据储存开始地址和预读区尺寸算出的预读数据的存储区和上述保护区重合时,不进行数据的预读的预读起动判断步骤。
7.根据权利要求5或6所述的数据预读方法,其特征在于,
上述预读区确定步骤,在既是由上述预读规则确定步骤所确定的预读规则及其一个之前所运用的预读规则存在的场合,而且两个预读规则的预读方向又一致的场合,并用两个预读规则,来确定进行预读的盘式存储媒体上的位置和尺寸。
8.一种数据预读方法,其特征在于包括:
基于作为从上位装置收到的、读出记录在盘式存储媒体上的数据用的信息的读命令,来检测数据的预读方向;
基于上述读命令和由上述连续性检测步骤所检测的数据的预读方向,来确定进行预读的盘式存储媒体上的位置和尺寸的预读区确定步骤;
至少用表示当前正在向上位装置发送的数据的上述高速缓冲存储器上的位置的发送中地址和预定的保护区尺寸算出用来使已经向上位装置送出的至少数块数据残留在高速缓冲存储器上的保护区,当用表示将要储存下次预读的数据的上述高速缓冲存储器上的位置的下次预读数据储存开始地址和预读区尺寸算出的预读数据的存储区和上述保护区重合时,不进行数据的预读的预读起动判断步骤;以及
在预读数据的储存区和上述保护区不重合时,从盘式存储媒体读出由上述预读区确定步骤所确定的进行预读的上述盘式存储媒体上的位置和尺寸的数据,在作为所预读的数据的储存区的高速缓冲存储器中,把在负方向上预读的数据依次储存在在正方向上预读的数据的前方的预读起动步骤。
CNB018007791A 2000-03-31 2001-03-30 盘式存储装置和数据预读方法 Expired - Fee Related CN1159644C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000099040A JP3535800B2 (ja) 2000-03-31 2000-03-31 ディスクメモリ装置、データ先読み方法、及び記録媒体
JP99040/2000 2000-03-31
JP99040/00 2000-03-31

Publications (2)

Publication Number Publication Date
CN1366633A CN1366633A (zh) 2002-08-28
CN1159644C true CN1159644C (zh) 2004-07-28

Family

ID=18613440

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018007791A Expired - Fee Related CN1159644C (zh) 2000-03-31 2001-03-30 盘式存储装置和数据预读方法

Country Status (6)

Country Link
US (1) US6965967B2 (zh)
JP (1) JP3535800B2 (zh)
KR (1) KR100466145B1 (zh)
CN (1) CN1159644C (zh)
TW (1) TW550458B (zh)
WO (1) WO2001073538A1 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6968423B2 (en) * 2002-02-05 2005-11-22 Seagate Technology Llc Dynamic data access pattern detection in a block data storage device
JP2004318940A (ja) * 2003-04-14 2004-11-11 Renesas Technology Corp 記憶装置
JP2005011110A (ja) * 2003-06-19 2005-01-13 Hitachi Ltd 情報処理装置、情報処理装置の制御方法、プログラム、及び情報処理システム
JP4117656B2 (ja) * 2003-11-26 2008-07-16 株式会社日立製作所 アクセスパターンを学習する記憶装置
TWI273402B (en) * 2004-07-30 2007-02-11 Mediatek Inc Data buffering method in disc data reading system and system of the same
US7644224B2 (en) * 2005-11-15 2010-01-05 Sandisk Il Ltd. Flash memory device and method
US7425810B2 (en) * 2006-06-30 2008-09-16 Lenovo (Singapore) Pte., Ltd. Disk drive management
JP4767127B2 (ja) * 2006-08-10 2011-09-07 株式会社日立製作所 ファイルサーバ、計算機システム及びファイルの先読み方法。
JPWO2009050765A1 (ja) * 2007-10-17 2011-02-24 東芝ストレージデバイス株式会社 媒体記憶装置のリード/ライト処理方法及び媒体記憶装置
CN102073463B (zh) * 2010-12-28 2012-08-22 创新科存储技术有限公司 流预测方法和装置及预读控制方法和装置
WO2014201696A1 (zh) * 2013-06-21 2014-12-24 华为技术有限公司 一种文件读取方法、存储设备及读取系统
JP5895918B2 (ja) * 2013-09-30 2016-03-30 日本電気株式会社 ディスク装置、ディスク装置における先読み制御方法およびプログラム
US10824335B2 (en) * 2014-07-14 2020-11-03 Western Digital Technologies, Inc. Device and method to store predicted data at a host memory
US9684459B2 (en) 2014-11-17 2017-06-20 Kabushiki Kaisha Toshiba Memory system
KR20190090268A (ko) * 2018-01-24 2019-08-01 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US10642502B2 (en) * 2018-06-29 2020-05-05 Western Digital Technologies, Inc. System and method for prediction of read commands to non-sequential data
US10649776B2 (en) * 2018-06-29 2020-05-12 Western Digital Technologies, Inc. System and method for prediction of multiple read commands directed to non-sequential data
TWI694463B (zh) * 2019-04-18 2020-05-21 祥碩科技股份有限公司 資料儲存設備及其資料預測方法
US11416263B1 (en) 2021-02-12 2022-08-16 Western Digital Technologies, Inc. Boosted boot procedure by background re-arrangement of read patterns
CN113609093B (zh) * 2021-06-30 2023-12-22 济南浪潮数据技术有限公司 一种分布式文件系统的逆序读方法、系统及相关装置
CN113672176B (zh) * 2021-08-13 2023-12-29 济南浪潮数据技术有限公司 一种数据读取方法、系统、设备及计算机可读存储介质
CN114442948A (zh) * 2022-01-14 2022-05-06 济南浪潮数据技术有限公司 一种存储系统预读方法、装置、设备及存储介质
CN114237518B (zh) * 2022-02-22 2022-05-24 苏州浪潮智能科技有限公司 一种数据读取方法、系统、装置及终端

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2881049B2 (ja) * 1991-07-30 1999-04-12 株式会社日立製作所 プリフェッチバッファ
JP3181705B2 (ja) * 1992-08-18 2001-07-03 パイオニア株式会社 記録情報再生装置
JP3104110B2 (ja) * 1993-04-26 2000-10-30 ソニー株式会社 再生装置
JP3566319B2 (ja) * 1993-06-20 2004-09-15 株式会社リコー 情報記憶装置
US5687347A (en) * 1994-09-19 1997-11-11 Matsushita Electric Industrial Co., Ltd. Data providing device, file server device, and data transfer control method
JPH09166997A (ja) * 1995-12-14 1997-06-24 Victor Co Of Japan Ltd 音響信号処理装置
US5752037A (en) * 1996-04-26 1998-05-12 Hewlett-Packard Company Method of prefetching data for references with multiple stride directions
JPH10171713A (ja) 1996-12-09 1998-06-26 Toshiba Corp ディスク記憶装置及び同装置に適用するキャッシュ制御方法
JPH11110139A (ja) * 1997-09-26 1999-04-23 Internatl Business Mach Corp <Ibm> データ読み取り方法及びデータ読み取り装置
JPH11212728A (ja) * 1998-01-26 1999-08-06 Hitachi Ltd 外部記憶サブシステム

Also Published As

Publication number Publication date
CN1366633A (zh) 2002-08-28
US6965967B2 (en) 2005-11-15
TW550458B (en) 2003-09-01
US20030018849A1 (en) 2003-01-23
KR100466145B1 (ko) 2005-01-13
JP3535800B2 (ja) 2004-06-07
KR20020020901A (ko) 2002-03-16
JP2001285805A (ja) 2001-10-12
WO2001073538A1 (fr) 2001-10-04

Similar Documents

Publication Publication Date Title
CN1159644C (zh) 盘式存储装置和数据预读方法
CN1276358C (zh) 用于存储设备的地址转换单元
CN1119804C (zh) 数据记录和/或再现系统及其方法
CN1748194A (zh) 信息处理设备及功率消耗控制方法
CN1752947A (zh) 存储装置、存储控制方法,以及计算机产品
CN1607598A (zh) 含有预加载信息的信息存储媒体及其再现设备和方法
CN1836283A (zh) 信息记录介质、用于信息记录介质的记录装置及方法、用于信息记录介质的重放装置及方法、用于控制记录或重放的计算机程序、以及包括控制信号的数据结构
CN1920952A (zh) 信息记录装置、信息记录方法及计算机程序
CN101038554A (zh) 软件更新方法、更新管理程序和信息处理设备
CN101030223A (zh) 用于处理信息的装置、方法、和计算机程序
CN1934648A (zh) 一次写入型记录介质、用于该一次写入型记录介质的记录装置和记录方法、用于该一次写入型记录介质的重放装置和重放方法、以及计算机程序
CN1366634A (zh) 磁盘装置和数据记录方法及数据重放方法
CN1898654A (zh) 高速缓冲存储器及其控制方法
CN1297905C (zh) 高速缓存控制器、高速缓存控制方法以及计算机系统
CN1225736C (zh) 磁带记录和/或再生装置
CN1842776A (zh) 信息记录读出装置
CN100345121C (zh) 记录重放装置及记录重放方法
CN1797326A (zh) 控制电路以及控制方法
CN1235222C (zh) 标记数字数据的方法
CN101042915A (zh) 信息记录介质、信息记录装置和方法、以及计算机程序
CN1198055A (zh) 库内文件的管理方法和库用服务器装置
CN1143307C (zh) 信息记录方法和设备
CN1294476C (zh) 磁盘装置和磁盘装置的盘访问方法
CN1471101A (zh) 用于可重写记录介质的缺陷管理设备和缺陷管理方法
CN1554089A (zh) 光盘录放方法及录放装置

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: PANASONIC HEALTHCARE + MEDICAL EQUIPMENT CO., LTD.

Free format text: FORMER OWNER: MATSUSHITA ELECTRIC INDUSTRIAL CO, LTD.

Effective date: 20140520

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20140520

Address after: Ehime Prefecture, Japan

Patentee after: Panasonic Healthcare Co., Ltd

Address before: Osaka Japan

Patentee before: Matsushita Electric Industrial Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20040728

Termination date: 20150330

EXPY Termination of patent right or utility model