CN1167946A - 响应于对相同文件的多个请求对数据进行分配的装置 - Google Patents
响应于对相同文件的多个请求对数据进行分配的装置 Download PDFInfo
- Publication number
- CN1167946A CN1167946A CN97101034A CN97101034A CN1167946A CN 1167946 A CN1167946 A CN 1167946A CN 97101034 A CN97101034 A CN 97101034A CN 97101034 A CN97101034 A CN 97101034A CN 1167946 A CN1167946 A CN 1167946A
- Authority
- CN
- China
- Prior art keywords
- file
- read request
- piece
- read
- data
- 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.)
- Pending
Links
- 230000004044 response Effects 0.000 title description 6
- 238000012546 transfer Methods 0.000 claims abstract description 5
- 230000015654 memory Effects 0.000 claims description 266
- 230000005055 memory storage Effects 0.000 claims description 122
- 238000000034 method Methods 0.000 claims description 111
- 238000003860 storage Methods 0.000 claims description 82
- 238000004891 communication Methods 0.000 claims description 30
- 230000006870 function Effects 0.000 claims description 2
- 239000000284 extract Substances 0.000 abstract 1
- 238000007726 management method Methods 0.000 description 63
- 238000010586 diagram Methods 0.000 description 29
- 241001269238 Data Species 0.000 description 20
- 230000008569 process Effects 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 9
- 238000013500 data storage Methods 0.000 description 8
- 238000012217 deletion Methods 0.000 description 8
- 230000037430 deletion Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0677—Optical disk device, e.g. CD-ROM, DVD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F2003/0697—Digital 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
读请求频率计数单元对来自请求客户的对于每个文件的读请求的频率进行计数。读请求频率确定单元确定是否有其读请求频率已经达到预定值的文件。当有其读请求频率已经达到预定值的文件时,文件发送指示单元向请求客户发送其读请求频率已经达到预定值的文件。
Description
本发明涉及数据分配装置、存储装置、控制这些装置的方法、数据传送系统,更具体地涉及能够用于处理比如电影图象、语音和音乐数据等这样的大量顺序数据的系统的方法。
最近,对存储比如图象、语音,音乐等等这样的顺序多媒体数据使得多个用户能够检索和使用数据的系统的需求不断增长。
这种系统具有下述优点。
(1)能够同时发出对存储装置中同一文件的多个读请求。
(2)几乎没有对存储装置的写请求,因此数据读请求对数据写请求的比率高。
(3)在信号读请求下从存储装置读的数据量大,并且是顺序读的。
因此,系统应该对同时从多个用户对同一文件发出的读请求进行快速应答。
图1示出常规存储装置和数据传送系统的结构。
在图1中,121、122和123分别是客户1、客户2和客户N。
服务器124在客户121、122和123的请求下从存储设备130读数据和向其写数据。
存储设备130是一个存储装置,保存有大量比如图象、语音、音乐等等这样的顺序多媒体数据。
服务器接口装置131是存储设备130与服务器124之间的接口。
存储装置接口单元132与存储设备130和存储装置136进行接口。
存储控制装置133对从存储装置136读和向其写进行控制。
控制装置134对从存储控制装置133读和向其写进行控制。
控制存储器135保存一个用于从存储装置136读和向其写的程序。
存储装置136存储每个文件的数据。例如,文件A存储电影A,而文件B存储电影B。
下面描述图1所示的结构的工作。
在客户121、122和123的读请求下,服务器124通知存储设备130读所请求的文件。该通知通过服务器接口装置131发送到控制装置134,并且控制装置134指示存储装置接口单元132根据控制存储器135的读控制程序去读所指定的数据。
存储装置接口单元132在来自存储装置136的文件中检索指定数据,并且将该数据传送到服务器接口装置131。服务器接口装置131从存储装置接口单元132接收所发送的数据,并且将其传送到服务器124。服务器124将所接收的数据传送到请求客户121、122和123。
如果存储装置136处于正在写或读数据而不能立即开始读所指定的数据的期间,则存储装置接口单元132通知控制装置134:存储装置136忙。控制装置134通知服务器接口装置131:存储装置136忙。该通知从服务器接口装置131发送到服务器124,服务器124指示已经发出读请求的客户121、122和123等待读数据。
下面描述从客户121、122和123向存储装置136写数据的情形。
客户121、122和123向服务器124发出写数据的请求。服务器124向服务器接口装置131发出写请求。来自服务器124的写请求从服务器接口装置131发送到控制装置134,控制装置134根据控制存储器135的写控制程序访问存储装置接口单元132,向存储装置接口单元132要求写能力。
如果存储装置136等待写数据,则存储装置接口单元132通知控制装置134能够向存储装置136写数据,并且该通知经过服务器接口装置131发送到服务器124。服务器124向已经发出写请求的客户121、122和123通知能够成功地写数据。
已经发出写请求的客户121、122和123将待写数据传送到服务器124。服务器124在从客户121、122和123收到数据后将待写数据传送到服务器接口装置131。待写数据被传送到存储装置接口单元132,并写入存储装置136。
当存储装置136正忙并且不能写数据时,存储装置接口单元132通知控制装置134存储装置136忙,并且控制装置134通知服务器接口装置131存储装置136忙。服务器接口装置131通知服务器124存储装置136忙,并且服务器124通知客户121、122和123存储装置136忙。
然而,即使常规数据传送系统从多个客户(客户1(121),2(122)和N(133))同时接收对同一文件的读请求,它也根据各个客户121、122和123的请求从存储装置136检索所请求文件中的数据,并且按发出请求的顺序将该数据传送到每个请求客户121、122和123。
例如,几乎同时从客户1(122)、2(122)和N(123)按这种顺序接收对文件A的读请求。服务器124向服务器接口装置131发出对文件A的读请求。在上述控制下,从存储设备130的存储装置136检索文件A中的数据,并传送到服务器124。服务器124将文件A中的数据传送到第一个请求客户(客户1(121))。
当传送结束时,服务器124类似地请求服务器接口装置131再次读文件A。在上述读控制下,从存储设备130的存储装置136检索文件A中的数据,并且传送到服务器124。服务器124将数据传送到下一个客户2(122)。
当完成向客户2(122)传送数据时,服务器请求服务器接口装置131再次读文件A。根据上述读控制方法,从存储设备130的存储装置136检索文件A中的数据,并且传送到服务器124。服务器124将数据传送到第三个请求客户N(123)。
这样,即使常规数据传送系统从多个客户121、122和123几乎同时接收对同一文件的读请求,也通过存储装置136从同一文件重复的读数据,并且传送到服务器124,而且服务器124在每次读数据时顺序传送文件中的数据,因此传送效率不高。
尤其是当文件的内容涉及比如包括画面、语音、音乐等电影数据这样的大量顺序多媒体数据时,需要长时问从存储装置136读数据。因此,客户121、122和123必须长时间等待,并且不能立即回答客户121、122和123的请求。
本发明目的在于提供一种数据分配装置、存储装置和用于控制这些装置的方法,以及数据传送系统,以便当多个客户发出对于相同文件的读请求时,有效地检索所请求的数据以便于传送。
为解决上述问题,本发明包括一个读请求频率计数单元,用于对每个文件对来自请求客户的读请求的频率进行计数;一个读请求频率确定单元,用于确定是否有一个其读请求频率已经达到预定值的文件;以及文件发送指示单元,用于指定传送其读请求频率已经达到预定时间的文件。
这样,经常对其做出读请求的文件能够在做出请求之后的短时间内同时被传送到多个请求客户。因此,不必在短时间内重复地读取经常对其做出读请求的同一文件,并且能够降低请求客户的装置上的负载,将等待时间缩短直到得到所请求文件。
本发明的第二方面还包括第一存储单元,用于存储文件;第二存储单元,具有比第一存储单元更高的读速度;以及一个存储器控制单元,用于优先存储以较高频率对其做出读请求的文件。
这样,能够快速地从第二存储单元读并且发送经常被读的文件,从而缩短了独占第一存储单元以读文件所需的时间,并且也缩短了不能访问第一存储单元的时间。因此,能够成功地降低请求客户的等待时间。
根据本发明第三方面,存储装置包括存储单元,以文件为单位保存大量顺序数据;以及存储器控制单元,用于控制在存储单元中所保存的数据的输入和输出。该存储器控制单元包括:控制单元,用于控制读存储单元内的数据;读请求确定单元,用于确定对存储单元中所保存的同一文件的数据的读请求;读请求频率计数单元,用于每次做出读请求时对读文件的请求的频率进行计数,或者用于在预定时间间隔更新每个文件的计数值;以及读开始确定单元,用于在该文件的读请求频率计数值达到预定常量时指示控制单元读相应文件。利用该结构,在读该文件的请求的频率达到预定频率时或者在从第一个读请求已经过去预定时间之后,读文件。
这样,能够在做出读请求之后的短时间内,同时向多个请求客户发送对其频繁做出读请求的文件。另一方面,在已经过去预定时间之后,能够同时向多个请求客户发送对其极少做出读请求的文件。因此,不必不顾读请求的频率在短时间内重复读同一文件,并且能够降低发送装置上的负载,使等待时间缩短直到得到所请求的文件。
根据本发明第四方面,存储装置包括请求客户信息读单元,用于从服务器读读请求接收表的内容;以及数据传送单元,用于根据读请求接收表的内容向请求客户传送文件的串行数据。
这样,因为能够直接从存储装置向请求客户传送所请求的文件中的串行数据,所以能够缩短向请求客户发送所请求文件中的串行数据所需的时间,并且能够成功地降低服务器上的负载。
根据本发明第五方面,在管理高速缓冲存储器的存储区时所使用的高速缓冲存储器管理表包括文件管理表,在管理高速缓冲存储器中所存储的文件的优先权时使用;以及块管理表,在管理每个文件的块存储器优先权时使用。
因此,能够以文件为单位将数据存储在高速缓冲存储器中或从高速缓冲存储器中删除,从而在高速缓冲存储器中所存储的数据不致在文件中不连续,并且顺利地读已经对其做出从高速缓冲存储器读请求的文件。
图1示出常规存储装置和数据传送系统;
图2是显示根据本发明第一实施方式的数据分配装置的结构的框图;
图3是显示根据本发明第一实施方式的存储装置的结构的框图;
图4是显示根据本发明第二实施方式的存储装置的结构的框图;
图5是显示根据本发明第一实施方式的接收装置的结构的框图;
图6示出根据本发明第一实施方式控制高速缓冲存储器的方法;
图7是显示根据本发明第一实施方式的数据传送系统的结构的框图;
图8是显示根据本发明第二实施方式的数据传送系统的结构的框图;
图9示出根据本发明第一实施方式的读请求频率计数单元和读请求表;
图10示出图8所示的数据传送系统的工作;
图11是示出根据本发明第一实施方式的图8中所示的数据传送系统的工作的流程图;
图12是示出根据本发明第二实施方式的图8中所示的数据传送系统的工作的流程图;
图13是示出根据本发明第三实施方式的图8中所示的数据传送系统的工作的流程图;
图14是显示根据本发明第二实施方式的数据传送系统的结构的框图;
图15是示出根据本发明第一实施方式的图14中所示的数据传送系统的工作的流程图;
图16是示出根据本发明第二实施方式的图14中所示的数据传送系统的工作的流程图;
图17示出根据本发明第一实施方式控制高速缓冲存储器的方法;
图18示出根据本发明第一实施方式控制高速缓冲存储器的方法;
图19是示出根据本发明第一实施方式控制高速缓冲存储器的方法的流程图(1);
图20是示出根据本发明第一实施方式控制高速缓冲存储器的方法的流程图(2);
图21A示出根据本发明第一实施方式在高速缓冲存储器中存储一块的方法;
图21B示出根据本发明第二实施方式在高速缓冲存储器中存储一块的方法;
图21C示出根据本发明第三实施方式在高速缓冲存储器中存储一块的方法;
图22是显示根据本发明第三实施方式的数据传送系统的结构的框图;
图23是显示根据本发明第四实施方式的数据传送系统的结构的框图。
下面参照附图描述根据本发明实施方式的数据分配装置。
图2是显示根据本发明一个实施方式的数据分配装置的结构的框图。
在图2中,读请求频率计数单元1001为每个文件对来自请求客户的文件读请求频率进行计数。读请求频率确定单元1002确定是否有其读请求频率已经达到预定值的文件。如果有读请求频率已经达到预定值的文件,则文件发送指示单元1003发出一个向请求客户发送其读请求频率已经达到预定值的的文件的指示。
因此,因为读请求频率计数单元1001指示对于对其经常做出读请求的文件由读请求频率计数单元1001所计数的读请求频率在短时间内达到预定值,所以文件发送指示单元1003快速发出一个向请求客户发送文件的指示,并且能够在已经做出读请求之后的短时间内对多个请求客户同时发送该文件。
另外,因为能够通过只读一次文件而向多个请求客户发送文件,所以不必在短时间内重复地读对其经常做出读请求的同一文件,从而降低了发送装置上的负载。
下面,参照附图描述根据本发明实施方式的存储装置。
图3是示出根据本发明第一实施方式的存储装置的结构的框图。
在图3中,存储设备1包括一个存储数据的存储装置2和一个用于对从存储装置2读数据和向其写数据进行控制的存储器控制单元3。
存储装置2以文件为单位存储比如视频程序这样的大量串行数据。
存储器控制单元3对从存储装置2读数据和向其写数据进行控制。
数据输入/输出单元11输入和输出读请求、写请求、数据等。
读请求确定单元12确定读请求。
读请求频率计数单元13对于每个文件对在存储装置2中所存储的同一文件的读请求的频率进行计数,或者即使没有读请求也以预定时间间隔更新计数值。
读请求频率保持单元13’保存指示每个文件的读请求的频率。
读开始确定单元14确定在读请求频率保持单元13’中所保存的计数值是否已到达预定值,并且确定开始读其计数值已经达到预定值的文件。
读控制单元16控制从存储装置2读数据。
图3中所示的存储器控制单元3由只读数据所需的结构代表,省略了写数据所需的结构。
下面描述图3中所示的存储装置的工作。描述限于数据读请求的操作。
数据输入/输出单元11接收由数据请求客户向存储设备1发出的请求。读请求确定单元12从数据输入/输出单元11所收到的请求中确定数据读请求。读请求频率计数单元13对每个所请求文件的读请求进行计数,并且将计数值存储在读请求频率保持单元13’中。即使没有读请求,读请求频率计数单元13也以预定时间间隔更新所有文件的计数值。读开始确定单元14确定由读请求频率计数单元13所获得的计数值是否已经达到预定值。如果该值已经达到预定值,则读开始确定单元14确定读相应文件,并且指示读控制单元16读相应文件中的数据。
读控制单元16从存储装置2读指定文件中的数据,并且向数据输入/输出单元11传送数据。数据输入/输出单元11将从存储装置2读的数据传送到请求客户。如果从存储装置2读的数据是由多个客户请求的数据,则向每个客户传送该数据。
如上所述,根据本发明第一实施方式的存储装置在单个读操作中读由多个客户几乎同时请求的文件中的数据,并且向每个请求客户传送该数据。因此,能够降低从存储装置2读数据的频率,并且显著提高读数据的效率。
图4是显示根据本发明第二实施方式的存储装置的结构的框图,图4中所述的实施方式涉及控制高速缓冲存储器5的方法。
如图4所示,当通过设置高速缓冲存储器5来传送数据时,存储器控制单元3的物理或逻辑块可以是高速缓冲存储器5中的替换单位。当新的块存储在高速缓冲存储器5中时,如果高速缓冲存储器5可用则将该块存储在其中。如果高速缓冲存储器5不可用,则由一个新块替换现有块中的一个。
然而,如果简单地以块为单位在高速缓冲存储器5中对文件中串行数据的块进行管理,则从前导块(最早的块)去除各块。如果文件读请求是在去除块之后做出的,则所去除的块中的一个可能是对其已经做出读请求的文件的块。在这种情形下,不能执行命中传送,从而降低数据提供效率。
为避免这种无效性,图4所示的第二实施方式包括一个高速缓冲存储器管理表22,并且既以文件为单位又以块为单位在高速缓冲存储器5中对空白区域进行管理。
在本发明第二实施方式中将要处理的数据更易于受到对存储设备1的访问请求的读,并且数据是大量串行数据。因此,在存储设备1中设置高速缓冲存储器5是有效的。当与其中只设置一个高速缓冲存储器5的情形相比,既以文件为单位又以块为单位对高速缓冲存储器5的空白区域进行控制能够进一步提高高速缓冲存储器5的数据传送能力。
也就是说,根据本发明第二实施方式,在利用存储设备1对读文件中的数据进行控制的方法中,存储器控制单元3包括高速缓冲存储器5和高速缓冲存储器管理表22,存储设备1包括用于以文件为单位保存大量串行数据的存储装置2和用于对存储装置2所保存的数据的输入和输出进行控制的存储器控制单元3。
高速缓冲存储器管理表22包括一个在对高速缓冲存储器5中所存储的文件的优先权进行管理中所用的文件管理表23;以及一个在对每个文件的块存储器的优先权进行管理中所用的块管理表24。
高速缓冲存储器控制程序21在文件管理表23上为所请求的文件定义将要存储在高速缓冲存储器5中的最高优先权。
高速缓冲存储器控制程序21在块管理表24上也对对其已经做出读请求的块定义最高优先权,并且以从最近请求的块开始的顺序依次递减优先权。如果高速缓冲存储器5中没有区域以写新的块,则高速缓冲存储器控制程序21以向文件分配的最低优先权开始的顺序确定将要去除的文件,并且以文件中所分配的最低优先权开始的顺序去除各块。
当存储顺序受到访问的串行数据时,检查串行数据的可访问性。如果串行数据块中的某些块存储在高速缓冲存储器5中并且如果获得对上述块之前一个块的访问,则对该文件分配最高优先权,不从高速缓冲存储器5中去除各块,并且从对其已经做出访问请求的块之后一点的一个块开始,到存储在高速缓冲存储器5中的块紧接其前的一个块,都存储在高速缓冲存储器5。
在图4中,1示出存储装置,2示出用于以文件为单位保存大量串行数据的存储装置。例如,串行数据可以是电影数据等等,并且存储单元2以文件为单位存储比如电影、音乐和语音数据这样的大量串行多媒体数据。
5示出高速缓冲存储器。控制单元6控制存储装置2和高速缓冲存储器5。控制存储器20保存控制单元6的控制程序等。高速缓冲存储器控制程序21利用控制单元6控制高速缓冲存储器5。
高速缓冲存储器管理表22包括在管理高速缓冲存储器5的文件中所用的文件管理表23;以及在管理各块中所用的块管理表24。
文件管理表23用于对高速缓冲存储器5中所存储的文件的管理,并且当去除一个块时保存存储文件时的优先权。
块管理表24保存存储每个文件的块时的优先权。
图5是示出根据本发明一个实施方式的接收装置的结构的框图。
在图5中,接收装置25设置在数据请求客户中,并且接口26将通信电路与接收装置25连接起来。缓冲器27存储从数据请求目的地所发送的数据。读单元28以预定读速度读存储在缓冲器27中的数据。29是一个CRT。一个操作单元30是一个用于请求向数据请求目的地发送数据、或者发出快进、倒退、暂停数据等指令的操作单元。
例如,接收装置25在缓冲器27中存储在以高速从图4所示的高速缓冲存储器5读之后所发送的数据。当读单元28以预定读速度读存储在缓冲器27中的数据时,可以以正常速度再现比如电影画面这样的图象,并且可以执行比如快进处理、倒退处理、暂停等等的特定再现操作。
图6示出控制图4中所示的高速缓冲存储器5的方法。
在图6中,23和23’示出文件管理表。文件管理表23存储文件i,文件j,…,文件k,各文件中含有将要基于优先极存储在高速缓冲存储器5中的数据。例如,当对文件管理表23中的文件k做出读请求时,则产生文件管理表23’,向文件k分配最高的优先权。这样,最后作为含有一块的文件所读的文件被分配最高的优先权,并且最早所读的文件被分配最低的优先权(最近最少使用(LRU)方法)。
24-1、24-2和24-3是块管理表。
块管理表24-1为文件i所用,并且存储在高速缓冲存储器5中所存储的文件i的数据块,为每块分配优先权以适当地去除各块。也就是说,块管理表24-1示出高速缓冲存储器5中所存储的块m、…和块n的状态。块m的优先权最高,块n的优先权最低。一个文件中的各块由先入先出(FIFO)方法或者LRU方法管理。为最新的块分配最高的优先权,使得能够首先去除最老的块。
块管理表24-2为文件j所用,并且示出高速缓冲存储器5中所存储的块o、…和块p的状态。块o的优先权最高,块p的优先权最低。
块管理表24-3为文件k所用,并且示出高速缓冲存储器5中所存储的块q、…和块r的状态。块q的优先权最高,块r的优先权最低。
以下所述是图4所示的存储装置的工作。
在图6中,文件管理表23记录文件i、文件j和文件k。为文件i分配最高优先权,为文件k分配最低优先权。
在文件管理表23的状态下,当在做出读文件k的请求时,如在文件管理表23’中那样为文件k分配最高优先权。这样,以LRU方法对文件进行管理,为最近读的文件分配最高的优先权,为最早读的文件分配最低的优先权。
当去除一块时,参照文件管理表23,使得能够从被分配最低优先权的文件中的块开始顺序去除各块。
例如,当参照图6中所示的文件管理表23时,顺序去除文件k中的块q、…和块r。
文件是以FIFO方法从被分配最低优先权的块开始顺序去除的。也可以LRU方法去除它们。
例如,当去除文件k中的块q、…和块r时,首先去除块r,最后去除块q。
这样,通过结合使用文件管理表23和块管理表24对高速缓冲存储器5进行管理,降低了可能去除被频繁使用的文件中的块的概率,从而提高命中传送的概率。
当连续受到访问的串行数据存储在高速缓冲存储器5中时,检查串行数据访问状态。如果串行数据中的某些块存储在高速缓冲存储器5中,并且访问在这些块之前的串行数据中的数据,则为该文件分配最高优先权而不去除各块,并且从对其已经做出访问请求的块开始到紧接在高速缓冲存储器5中所存储的块之前的各块得到存储。因此,能够增大命中传送的概率。
参照附图对根据本发明的一个实施方式的数据传送系统进行描述。
图7(A)示出将从存储装置所读的数据从服务器传送到客户的结构。
图7(B)示出该存储装置包括一个与客户的接口,并且示出用于将从存储装置所读的数据直接从存储装置传送到客户的结构。
在图7中,31、32和33分别示出客户1、2和N。
35是服务器,36是读请求接收表,用于存储所请求的文件名和请求文件的相应客户31、32和33。37是一个存储设备,在存储设备37中设置一个客户接口模块38,用作与客户31、32和33的接口。
图8详细示出图7(A)所示的数据传送系统的服务器35和存储设备37的结构。
在图8中,35是服务器,36是读请求接收表。数据缓冲器36’暂时存储传送数据。37是存储设备。例如,在读请求接收表36上记录到客户1已经做了对存储装置41中所存储的文件A的读请求,客户2已经做出对存储装置41中所存储的文件B的读请求,客户3已经做出对存储装置4中所存储的文件A的读请求,客户N已经做出对存储装置41中所存储的文件A的读请求。
在存储设备37中,40是一个存储器控制单元,并且41是比如磁盘装置、光学读取数据存储部件、CD-ROM等的存储装置,用于存储大量数据,与图3所示的存储装置2相应。
在存储器控制单元40中,服务器接口模块45从服务器35接收对存储装置41的读或写请求。在读过程中,从装置接口模块46接收从存储装置41所读的数据,并且输出到服务器35。在写过程中,向装置接口模块46传送从服务器35接收的写数据。服务器接口模块45与图3中所示的数据输入/输出单元11相应。
数据缓冲器45’暂时存储传送数据。
在收到来自接口模块45的读请求后,装置接口模块46从存储装置41检索由服务器接口模块45所请求的数据,将该数据传送到服务器接口模块45,并且在来自服务器接口模块45的写请求下,将从服务器35所传送的数据写入存储装置41。
数据缓冲器46’暂时保存传送数据。
控制装置47是微处理器单元(MPU)。
控制存储器51保存控制单元50的控制程序等等。
读请求确定程序52确定来自服务器35的请求是否是数据读请求。
读指示程序53指示装置接口模块46去读数据。
读开始确定程序54确定开始读数据。
读请求频率计数程序55包括计数器,定时器等等,对每个文件的读请求频率进行计数,并且当没有读请求时以预定时间间隔更新每个文件的计数值。
读请求表56保存每个文件的读请求的频率。
图9示出读请求频率计数单元的一个实施方式和读请求表56。
在图9中,读请求频率计数单元55’存储读请求频率计数程序55。
读请求表56保存指示每个文件的读请求的频率的值(每次做出一个请求时,从初值减1)。例如,‘3’保存为指示文件A的读请求的频率的值,‘4’保存为指示文件B的读请求的频率的值。
在读请求频率计数单元55’中,在每次做出对所请求的文件的一个读请求时,读请求表更新单元61从指示所请求文件的读请求频率的初值上减1。即使没有读请求,读请求表更新单元61也以预定时间间隔更新在表上所记录的每个文件的计数值。
在每次读文件时,读请求文件数更新单元62对所请求的文件的读请求的频率进行计数,并且不为已经请求的文件更新读请求文件数保持单元64的值,而是仅为在做出读请求时除所请求文件之外的文件更新读请求文件数保持单元64的值。
读请求频率初值保持单元63’保存指示每个文件的读请求的频率的初值。
读请求文件数保持单元64保存一个文件的读请求的频率。
图10示出图8所示的数据传送系统的工作,并且示出图9所示的读请求表56和读请求文件数保持单元64内容的改变。
在图10中,假定从存储装置41读文件的数据,并且当读文件三次时向服务器35传送。在读请求频率初值保持单元63’中,例如,将‘2’设置为指示文件A的读请求的频率的初值,并且将‘2’设置为指示文件B的读请求的频率的初值。
在图10中,56是读请求表,64是读请求文件数保持单元。
图10中的(0)示出读请求表56和读请求文件数保持单元64的初始状态。即,在读请求表56上将指示文件A和B的读请求的频率的值设置为0,并且也将读请求文件数保持单元64中的受到读请求的文件数设置为0。
图10中的(1)示出当在图10中所示的(0)状态中在预定时间做出对文件A的读请求时,读请求表56和读请求文件数保持单元64的状态。
在这种情形下,在读请求表56上将读请求频率初值保持单元63’的初值2设置为文件A的读请求频率。以减法对读请求的频率进行计数。每次读文件时,将指示读请求频率的值减1。当指示读请求频率的值指示‘0’时,假定已经做了三次读请求并且读数据。于是,将读请求文件数保持单元64设置为1。在读请求表56上文件B的读请求频率保持为‘0’。
图10中的(2)示出当在图10中所示的(1)状态中在预定时间做出对文件B的读请求时,读请求表56和读请求文件数保持单元64的状态。
在这种情形下,在读请求表56上将读请求频率初值保持单元63’的初值2设置为文件B的读请求频率。将读请求文件数保持单元64的值1增为2。在读请求表56上文件A的读请求频率保持为‘2’。
图10中的(3)示出当在图10中所示的(2)状态中在预定时间做出对文件A的读请求时,读请求表56和读请求文件数保持单元64的状态。
在这种情形下,在读请求表56上将文件A的读请求频率设置为1,这是从初值2上减1获得的。读请求文件数保持单元64保持为2,并且读请求表56上文件B的读请求频率保持为2。
图10中的(4)示出当在图10中所示的(3)状态中在预定时间做出对文件A的读请求时,读请求表56和读请求文件数保持单元64的状态。
在这种情形下,文件A的读请求频率设置为0,这是从文件A的读请求的频率1上减1获得的。在该例中,当读请求的频率变为0时,从存储装置41读文件A中的数据,并且传送到服务器35。然后,从读请求文件数保持单元64’的值2上减1,获得差1。在读请求表56上文件B的读请求频率保持为2。
此时,服务器35通过参照图8所示的读请求接收表36,检索已经对文件A做出读请求的三个客户1、3和N。然后,服务器35将文件A中的数据同时传送到做出对文件A的请求的三个客户1、3和N。
这样,客户1、3和N能够接收文件A中的数据,即使对于读请求的频率达到预定值时还没有超过预定时间,从而将等待时间缩短至已经收到文件A中的数据。因为通过从存储装置41读一次数据就能够向做出读文件A请求的三个客户1、3和N发送文件A中的数据,所以能够成功地降低存储器控制单元40或存储装置41上的负载。
图10中的(5)示出当在图10中所示的(4)状态中没有读请求时,读请求表56和读请求文件数保持单元64的状态。
在这种情形下,因为读请求文件数保持单元64的值未设为0,则识别出有已经对其做出读请求的文件B,但还没有实际地读。在预定时间之后,在读请求表56上从文件B的读请求频率上减1,该频率自动更新为1。读请求文件数保持单元63的值1保持为1。读请求文件数保持单元64中的读请求频率保持为1,并且在读请求表56上的文件A的读请求频率保持为0。
图10中的(6)示出当在图1 0中所示的(5)状态中没有读请求时,读请求表56和读请求文件数保持单元64的状态。
在这种情形下,在预定时间之后,从文件B的读请求频率上减1,该频率自动更新为0。因为文件B的读请求频率置为0,所以从存储装置41读文件B中的数据并传送至服务器35。
然后,通过从读请求文件数保持单元64的值1上减1得到0。因为读请求文件数保持单元64的值变为0,所以识别出没有对其已经做出请求而未读的文件。
当服务器35收到文件B中的数据时,它通过参照图8所示的读请求接收表36来检索请求读文件B的客户2。然后,服务器35将文件B中的数据发送至已经做出对文件B的读请求的客户2。
这样,在已经过了预定时间之后,客户2能够收到其读请求频率尚未达到预定值的文件B中的数据。
在图10所示的例子中,文件A和B的读请求频率的初值设为2。如果假设文件A的读请求频率高而文件B的读请求频率低,则可以将文件A的读请求频率的初值设为较大,而将文件B的读请求频率的初值设为较小。
例如,如果文件B的读请求频率的初值设为0,则请求客户能够立即接收文件B中的数据,而不等待通过预定时间。当在预定时间之内只有一个读请求的文件时,这是尤其有效的。
下面参照图10所示的读请求作为例子详细描述图8所示的数据传送系统的工作。
假设图7(A)所示的客户1已经对图8所示的存储装置41中所存储的文件A做出读请求。响应于来自客户1的对于文件A的读请求,服务器35在读请求接收表36上记录与客户1相应的文件A。服务器35向存储设备37的服务器接口模块45传送文件A的读请求。服务器接口模块45接收文件A的读请求。
控制装置47确定控制单元50和读请求确定程序52已经做出对文件A的读请求。读请求频率计数程序55(即,图9所示的读请求频率计数单元55’)在读请求表56上将文件A的读频率值的初值设为2。通过将初值设为2,在做出第三个读请求时可以读数据。然后,在读请求文件数保持单元64中设置1。上述操作与图10所示的(1)所指的状态相应。
下面,假定客户2在来自客户1的读请求过去预定时间之前做出对文件B的读请求。响应于来自客户2的对文件B的读请求,服务器35将与客户2相应的文件B记录在读请求接收表36上。该对文件B的读请求从服务器35传送到存储设备37的服务器接口模块45。服务器接口模块45接收对于文件B的读请求。
控制装置47确定已经从控制单元50和读请求确定程序52做出对文件B的读请求。读请求频率计数程序55(即图9中所示的读请求频率计数单元55’)在读请求表56上将文件B的读频率值的初值设为2。然后,向读请求文件数保持单元64的值加1,并且设置结果2。上述操作与图10中(2)所示的状态相应。
下面,假定客户3在来自客户2的对于文件B的读请求过去预定时间之前做出对文件A的读请求。响应于来自客户3的对于文件A的读请求,服务器35在读请求接收表36上记录与客户3相应的文件A。该对于文件A的读请求从服务器35传送到存储设备37的服务器接口模块45。服务器接口模块45接收该对于文件A的读请求。
控制装置47确定已经从控制单元50和读请求确定程序52做出读请求。读请求频率计数程序55(即图9中所示的读请求频率计数单元55’)在读请求表56上将文件A的读频率值设为通过从2上减1得到的1。因为已经做出对于文件A的读请求,所以不改变读请求文件数保持单元64的值。上述操作与图10中(3)所示的状态相应。
下面,假定客户N在来自客户3的对于文件A的读请求过去预定时间之前做出对文件A的读请求。响应于来自客户N的对于文件A的读请求,服务器35在读请求接收表36上记录与客户N相应的文件A。该对于文件A的读请求从服务器35传送到存储设备37的服务器接口模块45。服务器接口模块45接收该对于文件A的读请求。
控制装置47确定已经从控制单元50和读请求确定程序52做出读请求。读请求频率计数程序55(即图9中所示的读请求频率计数单元55’)在读请求表56上将文件A的读频率值设为通过从1上减1而得到的0。
读开始确定程序54确定读请求表上的对于文件A的读请求频率值已经变为0,并且通知读指示程序53该确定。然后,激活读指示程序53,控制单元50指示装置接口模块46去读存储装置41中的文件A。从读请求文件数保持单元64的值2上减1,获得差1。上述操作与图10中(4)所示的状态相应。
当装置接口模块46从控制装置47接收指示去读文件A时,它从存储装置41读文件A的数据,并将数据传送至服务器接口模块45。服务器接口模块45接收文件A的数据并将数据传送到服务器35。
服务器35从服务器接口模块45收到的文件A的数据后,将数据保存在数据缓冲器36’中。然后,服务器35参照读请求接收表36,并将文件A的数据传送至在读请求接收表36上所记录的客户1、2和N。当完全将数据传送至每个客户时,清除数据缓冲器36’中的数据,并且清除读请求接收表36上的文件A的接收记录。
假设在过去预定时间之后没有做出下一个读请求。因为读请求文件数保持单元64的值不为0,所以读请求频率计数单元55(即,图9所示的读请求频率计数单元55’)识别到有一个已经对其做出读请求且尚未读的文件B,并且在读请求表56上从读频率值2上减1,获得差1。上述操作与图10中(5)所示的状态相应。
假设在过去预定时间之后没有做出下一个读请求。因为读请求文件数保持单元64的值不为0,所以读请求频率计数单元55(即,在图9所示的读请求频率计数单元55’)识别到有一个已经对其做出读请求且尚未读的文件B,并且在读请求表56上从读频率值1上减1,获得差0。
读开始确定程序54确定读请求表56上的对于文件B的读请求频率值已经变为0,并且通知读指示程序53文件B的读请求频率已经变为0。然后,激活读指示程序53,控制单元50指示装置接口模块46去读文件B。从读请求文件数保持单元64的值1上减1,获得差0。上述操作与图10中(6)所示的状态相应。
当装置接口模块46接收指令去读文件B时,它从存储装置41读文件B的数据,并将数据传送至服务器接口模块45。服务器接口模块45接收文件B的数据并将数据传送到服务器35。
服务器35从服务器接口模块45收到文件B的数据后,将数据保存在数据缓冲器36’中。然后,服务器35参照读请求接收表36,并将从服务器接口模块45收到的文件B的数据传送至请求客户2。当完全传送了文件B的数据时,清除数据缓冲器36’中的数据,并且清除读请求接收表36上的文件B的接收记录。
图11是示出图8所示的数据传送系统的工作的第一实施方式的流程图,并且示出做出读请求的情形。在图11所示的实施方式中,在已经过去预定时间时发送所有所请求的文件,而不管读请求的频率值。
在图11中,在步骤S1设置N=0,作为初值。N是指已经对其做出读请求的文件的个数,它存储在图9所示的读请求文件数保持单元64中。
然后,在步骤S2,确定图7所示的客户31、32和33是否已经做出读请求。如果有读请求,则控制转到步骤S3。如果没有任何读请求,控制转到步骤S12。
在步骤S3,确定当前所请求的文件是否与任何一个已经请求的文件相同。如果有相同的文件,则控制转到步骤S7。如果没有相同文件,则控制转到步骤S4。
在步骤S4,因为当前所请求的文件从未被请求过,所以读请求文件的个数N增1。
在步骤S5和S6,将初值C0设置为文件的读请求频率值Cj。将在读数据之前的请求频率+1设定为初值C0(该值比参照图8所述的初值大1)。
因为在步骤S7中确定已经在步骤S3请求了相同的文件,所以控制转到步骤S8。
在步骤S8,从所有文件的读请求的频率值Ci上减1。
然后,在步骤S9,确定读请求的任何频率值Ci是否指示0。如果有一个指示0的读请求频率值Ci,则控制转到步骤S10。如果没有指示0的读请求频率值Ci,则重复执行步骤S2以及其后的处理。
然后,在步骤S10,从存储装置41读其读请求频率值Ci为0的文件的数据。
在步骤S11,从受到读请求的文件的个数N减1。
在步骤S2中如果没有读请求,则在步骤S12确定在读请求文件数保持单元64中所保存的受到读请求的文件的个数N是否为0。如果受到读请求的文件的个数N大于0(即,如果受到读请求的文件的个数N不为0),则重复执行步骤S8以及其后的处理。如果受到读请求的文件的个数N为0,则重复执行步骤S2以及其后的处理。
图12是示出图8所示数据传送系统的操作的第二实施方式的流程图。在图12所示的实施方式中,如果文件被频繁请求,则在读请求频率已经达到预定值时发送所请求的文件。如果不被频繁请求,则如果已经过去预定时间,即使读请求频率尚未达到预定值,也发送所请求的文件。
在图12中,在步骤S21设置N=0,作为初值。N是指已经对其做出读请求的文件的个数,它存储在图9所示的读请求文件数保持单元64中。
然后,在步骤S22,确定图7所示的客户31、32和33是否已经做出读请求。如果有读请求,则控制转到步骤S23。如果没有任何读请求,控制转到步骤S33。
在步骤S23,确定当前所请求的文件是否与任何一个已经请求的文件相同。如果有相同的文件,则控制转到步骤S27。如果没有相同文件,则控制转到步骤S24。
在步骤S24,因为当前所请求的文件从未被请求过,所以读请求文件的个数N增1。
在步骤S25和S26,将初值C0设置为文件的读请求频率值Cj,并且控制转到步骤S27。将在读数据之前的请求频率+1设定为初值C0。
在步骤S27,所有文件的读请求频率值Ci减1,控制转到步骤S30。
因为在步骤S28中确定在步骤S23上已经请求了相同的文件,所以控制转到S29。
在步骤S29,已经接受对其的读请求的相同文件的读请求频率值Ci减1,控制转到步骤S30。
然后,在步骤S30,确定读请求的任何频率值Ci是否指示0。如果有一个指示0的读请求频率值Ci,则控制转到步骤S31。如果没有指示0的读请求频率值Ci,则重复执行步骤S22以及其后的处理。
然后,在步骤S31,从存储装置41读其读请求频率值Ci为0的文件的数据。
在步骤S32,从受到读请求的文件的个数N减1。
在步骤S22中如果没有读请求,则在步骤S33确定在读请求文件数保持单元64中所保存的受到读请求的文件的个数N是否为0。如果受到读请求的文件的个数N大于0,则重复执行步骤S27以及其后的处理。如果受到读请求的文件的个数N为0,则重复执行步骤S22以及其后的处理。
图13是示出图8中所示的数据传送系统的操作的第三实施方式的流程图。
在图13所示的例子中,除了参照图12所解释的方法之外,可以选择完全视频点播方法或者近似视频点播方法。
在视频点播(VOD)方法中,在所发送的请求下,通过设置在每家的顶置盒(set top box-STB)从积累了具有多个标题的影像的有线电视中心(CATV中心)向请求用户发送所请求的视频数据。
视频点播可以是完全视频点播(FVOD)或者是近似视频点播(NVOD)。
在完全视频点播方法中,在用户请求时可以立即获得所请求的视频节目。当用户请求一个视频节目时,立即广播所请求的视频节目。该用户能够独占地观看该视频节目,不仅能再播放该视频节目而且能够快进、倒退和暂停该视频节目,就象操作盒式录象机或视频盘那样。为了实现这些功能,在完全视频点播方法中,每个用户各自使用专用信道。
另一方面,近似视频点播方法也称为时移(time-shift)业务,在不同时间以预定时间间隔沿多个信道广播单个视频节目。例如,以1分钟间隔利用120个信道的流提供一个两小时的视频节目。这样,用户在等待至多一分钟后能够从开始观看所请求的视频节目。
在图13中,在步骤S41设置N=0,作为初值。N是指已经对其做出读请求的文件的个数,它存储在图9所示的读请求文件数保持单元64中。设置初值C0,选择一种方法。该方法可以从方法1至3中选择。方法1是完全视频点播方法。方法2是近似视频点播方法。方法3发送读请求频率已经达到预定值的文件。当选择方法1时,即选择完全视频点播时,将初值C0设为1。当选择方法2时,即选择近似视频点播时,将初值C0设为与一个在读数据之前的预定时间相应的值。当选择方法3时,将初值C0设为在读数据之前的读请求的频率+1。
然后,在步骤S42,确定图7中所示的客户31、32和33是否已经做出读请求。如果有读请求,则控制转到步骤S43。如果没有任何读请求,则控制转到步骤S54。
在步骤S43,确定当前所请求的文件是否与任何一个已经请求的文件相同。如果有相同的文件,则控制转到步骤S47。如果没有相同文件,则控制转到步骤S44。
在步骤S44,因为当前所请求的文件从未被请求过,所以读请求文件的个数N增1。
在步骤S45和S46,将初值C0设置为文件的读请求频率值Cj,并且控制转到步骤S50。
在步骤S50,所有文件的读请求频率值Ci减1,控制转到步骤S51。
因为在步骤S47中确定在步骤S43上已经请求了相同的文件,所以控制转到S48。
在步骤S48,确定是否已经在步骤S41选择了方法2。如果选择了方法2,则控制转到步骤S50。如果选择了方法1或3,则控制转到步骤S49。
在步骤S49,从已经接受了对其的读请求的相同文件的读请求的频率值Ci上减1,控制转到步骤S51。
然后,在步骤S51,确定读请求的任何频率值Ci是否指示为0。如果有指示为0的读请求频率值Ci,则控制转到步骤S51。如果没有指示为0的读请求频率值Ci,则重复执行步骤S42以及其后的处理。
如果在步骤S41选择了方法1,则将初值C0设为1,并且在步骤S50中从读请求的频率Ci上减1,获得差0。因此,在步骤S51恒定地确定为“是”。如果选择了方法1,则在步骤S52总是从存储装置41读新请求的文件,并且能够立即发送新请求的文件。
然后,在步骤S52,从存储装置41读其读请求频率值Ci为0的文件的数据。
在步骤S53,从受到读请求的文件的个数N上减1。
如果在步骤S42中没有读请求,则在步骤S54确定在读请求文件数保持单元64中所保存的受到读请求的文件的个数N是否为0。如果受到读请求的文件的个数N大于0,则重复执行步骤S50以及其后的处理。如果受到读请求的文件的个数N为0,则重复执行步骤S42以及其后的处理。
图14是示出根据本发明第二实施方式的数据传送系统的结构的框图。
根据图14所示的实施方式,当做出访问存储设备37的请求时,将以高的概率读大量串行数据。因此,在存储设备37中设置高速缓冲存储器48,从高速缓冲存储器48传送数据(命中传送),从而提高数据提供能力。
因此,根据图14所示的实施方式,将高速缓冲存储器48加到图8所示的结构中。
即,在图14中,35是服务器,36是读请求接收受表,36’是数据缓冲器,40是存储器控制单元,41是存储装置,45是服务器接口模块,46是装置接口模块,48是高速缓冲存储器,50是控制单元(MPU),51是控制存储器,52是读请求确定程序,54是读开始确定程序,55是读请求频率计数程序,56是读请求表,57是用于控制高速缓冲存储器46的高速缓冲存储器控制程序,以及60是用于管理高速缓冲存储器48的高速缓冲存储器管理表。
根据图14所示的实施方式的操作与根据图8所示的实施方式的操作相同,所不同的是与高速缓冲存储器48有关的操作。即,高速缓冲存储器管理表60包括一个在对将要存储在高速缓冲存储器48中的文件的优先权进行管理中所用的文件管理表60;以及一个在存储每个文件的块时对优先权进行管理中所用的块管理表。
在从客户收到对于一个文件的读请求后,服务器35将与请求客户相应的对其已做出读请求的文件记录在读请求接收表36上。然后,该文件读请求从服务器35传送到存储设备37的服务器接口模块45。服务器接口模块45接收该文件读请求。
控制装置47通过控制单元50和读请求确定程序52确定已经做出读请求,激活高速缓冲存储器控制程序57,并且在由文件管理表所管理的所有文件之中,对由客户所请求的文件分配最高优先权,以便在高速缓冲存储器48中存储。在由块管理表24所管理的文件中各块中,对最近受到读请求的块分配最高优先权,对最早受到读请求的块分配最低优先权。
当在高速缓冲存储器48中没有块区域写新数据时,从最低优先权开始选择其块将要被删除的文件。因此,从最低优先权开始去除将要删除的文件的各块。
控制装置47激活读请求频率计数程序55,并且更新请求文件的读频率。读开始确定程序54确定是否有一个其读频率已经达到一个预定值的文件或者有一个自从对其做出读请求开始已经过去预定时间的文件。将其读频率已经达到一个预定值的文件或者自从对其做出读请求开始已经过去预定时间的文件定义为读开始文件。如果已经定义了读开始文件,参照高速缓冲存储器管理表60的文件管理表,并且检查是否将读开始文件输入到文件管理表中。
当将读开始文件输入文件管理表中时,控制单元50指示服务器接口模块45从高速缓冲存储器48读该读开始文件。服务器接口模块45从高速缓冲存储器48读该读开始文件,并且将该文件发送到服务器35。
如果读开始文件尚未输入到文件管理表,则控制单元50指示装置接口模块46从存储装置41读该读开始文件。装置接口模块46从存储装置41读该读开始文件,并且将该文件发送到服务器接口模块45。服务器接口模块45将从装置接口模块46收到的读开始文件发送到服务器35。
因为高速缓冲存储器控制程序57在高速缓冲存储器48按照优先权存储对其已经做出最近读请求的文件,所以对其频繁地做出读请求的文件总是频繁地从高速缓冲存储器48中读。另一方面,没有对其做出读请求的文件或者只做出一次读请求而没有后续请求的文件不存储在高速缓冲存储器48中。因此,这样的文件很可能是从存储装置41读。
服务器35将从服务器接口模块45收到的读开始文件的数据保存在数据缓冲器36’中。然后,服务器35参照读请求接收表36,并且将读开始文件的数据传送到在读请求接收表36上所记录的客户。当已经完全将所有数据传送到每个客户时,清除数据缓冲器36’中的数据,并且清除读请求接收表36上的读请求文件的接收记录。
当高速缓冲存储器48存储将要串行访问的串行数据时,高速缓冲存储器控制程序57检查串行数据的访问状态。如果高速缓冲存储器48存储含有将要串行访问的串行数据的文件的一部分块时,并且如果访问在由高速缓冲存储器48所存储的块之前的一个块时,则对受到访问的文件分配最高优先权。
另外,在高速缓冲存储器48中存储从受到访问请求的块之后预定数目块的一块开始到在高速缓冲存储器48中所存储的块之前的一块的各块,而不删除在高速缓冲存储器48中所存储的块。
这样,如果高速缓冲存储器48未存储受到访问请求的块,则预先读在受到访问请求的块之后的块,并且存储存储在高速缓冲存储器48中。因此,对于比如电影和音乐数据这样的多媒体数据,在读受到访问请求的块时,能够以高的概率一起读在受到访问请求的块之后的各块。因此,能够高速缓冲存储器命中在受到访问请求的块之后的各块,从而提高数据传送效率。
图15是示出根据图14所示的数据传送系统的第一实施方式的操作的流程图。图15中所示的实施方式是通过将高速缓冲存储器48所执行的读操作加到图12所示的实施方式而实现的。
在图15中,在步骤S61将受读请求的文件的个数N设为0。
然后,在步骤S62,确定客户是否已经做出读请求。如果有对文件的读请求,则控制转到步骤S63。如果没有对文件的读请求,控制转到步骤S74。
在步骤S63,确定所请求的文件是否与一个已经对其做出读请求的文件匹配。如果已经对相同的文件做出读请求,则控制转到步骤S68。如果没有对相同文件做出读请求,则控制转到步骤S64。
在步骤S64,因为在步骤S63确定当前所请求的文件从未被请求过,所以受读请求的文件的个数N增1。
在步骤S65和S66,将初值C0设置为文件的读请求频率值Cj,并且控制转到步骤S67。将初值C0设置为在读数据之前的读请求频率+1。
在步骤S67,指示在高速缓冲存储器48中读对其做出新的读请求的文件。此时,对新近受到读请求的文件分配最高优先权,以便于在高速缓冲存储器48中存储。如果在高速缓冲存储器48中没有对于新受到读请求的文件的存储区域,则首先从高速缓冲存储器48中去除被分配了最低优先权的文件,然后将新受到读请求的文件存储在高速缓冲存储器48中。
在步骤S68,对于所有文件从读请求的频率值Ci上减1,并且控制转到步骤S71。
因为在步骤S69确定已经在步骤S63请求的同一文件,所以控制转到步骤S70。
在步骤S70,对于已经接受读请求的相同文件的读请求的频率值Ci减1,控制转到步骤S71。
然后,在步骤S71,确定读请求的任何一个频率值Ci是否指示为0。如果有指示为0的读请求的频率值Ci,则控制转到步骤S72。如果没有指示为0的读请求的频率值Ci,重复执行步骤S62以及其后的处理。
然后,在步骤S72,从高速缓冲存储器48读其读请求频率值Ci为0的文件的数据。如果其读请求频率值Ci为0的文件的数据未保存在高速缓冲存储器48中,则从存储装置41读其读请求频率值Ci为0的文件的数据。
在步骤S73,从受到读请求的文件的个数N上减1。
如果在步骤S62中没有读请求,则在步骤S74确定受到读请求的文件的个数N是否为0。如果受到读请求的文件的个数N大于0,则重复执行步骤S68以及其后的处理。如果受到读请求的文件的个数N为0,则重复执行步骤S62以及其后的处理。
图16是示出根据图14所示的数据传送系统的第二实施方式的操作的流程图。图16中所示的实施方式是通过将高速缓冲存储器48所执行的读操作加到图13所示的实施方式而实现的。
在图16中,在步骤S81,将受到读请求的文件的个数N设为0,作为初值。设置初值C0,选择一种方法。该方法可以从方法1至3中选择。方法1是完全视频点播方法。方法2是近似视频点播方法。方法3发送读请求频率已经达到预定值的文件。当选择方法1时,即选择完全视频点播时,将初值C0设为1。当选择方法2时,即选择近似视频点播时,将初值C0设为与一个在读数据之前的预定时间相应的值。当选择方法3时,将初值C0设为在读数据之前的读请求的频率+1。
然后,在步骤S82,确定客户是否已经做出读请求。如果有读请求,则控制转到步骤S83。如果没有任何读请求,则控制转到步骤S95。
在步骤S83,确定当前所请求的文件是否与任何一个已经请求的文件相同。如果有相同的文件,则控制转到步骤S88。如果没有相同文件,则控制转到步骤S84。
在步骤S84,因为在步骤S83中当前所请求的文件从未被请求过,所以读请求文件的个数N增1。
在步骤S85和S86,将初值C0设置为文件的读请求频率值Cj,并且控制转到步骤S87。
在步骤S87,指示在高速缓冲存储器48中读对其做出新的读请求的文件。此时,对新近受到读请求的文件分配最高优先权,以便于在高速缓冲存储器48中存储。如果在高速缓冲存储器48中没有对于新受到读请求的文件的存储区域,则首先从高速缓冲存储器48中去除被分配了最低优先权的文件,然后将新受到读请求的文件存储在高速缓冲存储器48中。
在步骤S88,对于所有文件从读请求的频率值Ci上减1,并且控制转到步骤S51。
因为在步骤S89确定已经在步骤S83请求的同一文件,所以控制转到步骤S90。
在步骤S90,确定是否已经在步骤S81选择了方法2。如果选择了方法2,则控制转到步骤S88。如果选择了方法1或3,则控制转到步骤S91。
在步骤S91,从已经接受了对其的读请求的相同文件的读请求的频率值Ci上减1,控制转到步骤S92。
然后,在步骤S92,确定读请求的任何频率值Ci是否指示为0。如果有指示为0的读请求频率值Ci,则控制转到步骤S93。如果没有指示为0的读请求频率值Ci,则重复执行步骤S82以及其后的处理。
然后,在步骤S93,从高速缓冲存储器48读其读请求频率值Ci为0的文件的数据。如果其读请求频率值Ci为0的文件的数据未保存在高速缓冲存储器48中,则从存储装置41读其读请求频率值Ci为0的文件的数据。
在步骤S94,从受到读请求的文件的个数N上减1。
如果在步骤S82中没有读请求,则在步骤S95确定受到读请求的文件的个数N是否为0。如果受到读请求的文件的个数N大于0,则重复执行步骤S88以及其后的处理。如果受到读请求的文件的个数N为0,则重复执行步骤S82以及其后的处理。
图17示出根据本发明一个实施方式控制高速缓冲存储器的方法。图17(A)示出以LRU方法管理文件的方法,图17(B)示出以FIFO方法管理文件的方法。
在图17(A)中,71和71’是文件管理表。在图17(B)中,72和72’是块管理表。
文件管理表71存储文件i,文件j,…,文件k,…,以及文件l。为文件i分配最高优先权,为文件l分配最低优先权。如果在文件管理表71的这种状态下做出文件k的读请求,则产生文件管理表71’,为文件k分配最高优先权。
这样,以LRU方法管理文件,为最近被读的文件分配最高优先权,为第一个被读的文件分配最低优先权。
当从高速缓冲存储器中删除块时,参照文件管理表71,从最少使用的文件l的前导块顺序删除块。即,在图17(B)中,文件l的块管理表72存储块p、…、块d、块c、…、块b和块n。为块p分配最高优先权,为块n分配最低优先权。当删除块时,从被分配了最低优先权的块n、然后是被分配了第二最低优先权的块b开始顺序删除它们。
这样,删除频繁使用的文件中的块的概率低,从而提高了命中传送的概率。
以FIFO方法或者LRU方法从高速缓冲存储器删除各块。如果在高速缓冲存储器中只有最后半部分文件,并且如果做出对前半部分文件的读请求,则在高速缓冲存储器中按照优先权存储在受到读请求的块之后的文件前半部分中的块,从而提高了命中传送的概率。
当利用FIFO方法管理块时,为最后一个受到读请求的文件的表项(记录)分配最高优先权。当利用LRU方法管理块时,受到读请求的块的表项被移到具有最高优先权的位置。
下面参照图17(B)描述利用FIFO方法的块管理方法。
以下所述是从高速缓冲存储器删除一块以及在高速缓冲存储器中存储一个受到读请求的文件的N个块的方法。
首先,在N个块的读请求下,参照图17(A)中所示的文件管理表71,在高速缓冲存储器中检测被分配了最低优先权的文件的表项。
然后参照用于以块为单位对分配了最低优先权的并通过参照文件管理表71而获得的文件进行管理的块管理表72,使得能够选择被分配了较低优先权的N个块。在图17(B)所示的例子中,选择了块c、…、块b以及块n。从高速缓冲存储器中顺序删除所选择的块c、…、块b以及块n。
然后,在曾经存储所删除的N个块的高速缓冲存储器中存储受到读请求的N个块的内容。在图17(B)所示例子中,在高速缓冲存储器中存储块块e、…以及块g。此时,将文件l的块管理表72更新为块管理表72’,其中为块e、…以及块g分配高优先权,而为块p、…以及块d分配低优先权。
图18示出根据本发明一个实施方式对高速缓冲存储器中的块进行管理的方法。图18所示的实施方式是为了使将要受到使用的文件中的块避免从高速缓冲存储器中无意地删除。
在图18中,71和71’是文件管理表,72是文件k的块管理表。
当从高速缓冲存储器删除文件时,首先检查文件的访问状态。
如果获得对将要删除的块之前的块的访问,则停止删除文件中的块。例如,假设文件k中的块存储在高速缓冲存储器中,在图18(A)中从文件k的中间到结尾,并且将要从高速缓冲存储器中删除文件k的从中间到结尾的块。此时,如果做出对文件k的前导块A的访问请求,则停止从高速缓冲存储器中删除文件k的从中间到结尾的块。
如果暂停块的删除,则在用于管理文件单元的文件管理表上将该文件的表项移到被分配了最高优先权的位置。例如,在图18(B)中,文件管理表71存储文件i、…、文件j以及文件k,为文件i分配最高优先权,为文件k分配最低优先权。当暂停从高速缓冲存储器中删除文件k中的块时,将文件管理表71更新为文件管理表71’,在文件管理表71上为文件k分配最高优先权,如图18(C)所示。
如果没有做出对将要删除的块之前的块的访问请求,则实际删除将要删除的块,例如,假设在图18(A)中,文件k的块存储在高速缓冲存储器中,从文件k的中间到结尾,并且将要从高速缓冲存储器中删除文件k的从中间到结尾的块。此时,如果没有做出对文件k的前导块A的访问请求,则从高速缓冲存储器中删除文件k的从中间到结尾的块。
图19和图20是示出根据本发明一个实施方式的控制高速缓冲存储器的方法的流程图。
在图19中,当在步骤S101中做出对文件的读请求时,在文件管理表上为受到读请求的文件分配最高优先权。
然后,在步骤S102确定将要读的文件的整个数据是否存储在高速缓冲存储器中。如果“是”,则处理终止。如果“否”,则控制转到步骤S103。
然后在步骤S103确定是否只要将要读的文件的整个数据的后半部存储在高速缓冲存储器中。如果“是”,则控制转到步骤S104,并且将要存储的块的个数M设为将要读的文件的前半部的块的个数。
如果在步骤S103中为“否”,则控制转到步骤S105,并且将要存储的块的个数M设为将要读的文件的块的个数。
接着,在步骤S106,设置高速缓冲存储器中空白块的个数N。
然后,在步骤S107,对高速缓冲存储器中空白块的个数N与将要存储在高速缓冲存储器中的块的个数M进行比较。如果高速缓冲存储器中的空白块的个数N等于或大于将要存储到高速缓冲存储器中的块的个数M,则控制转到步骤S108,并且从高速缓冲存储器中的空白块的个数N上减去将要存储到高速缓冲存储器中的块的个数M获得值,将该值设置为高速缓冲存储器中空白块的个数N。然后,控制转到如图20所示的步骤S113。
另一方面,如果在步骤S107中高速缓冲存储器中空白块的个数N小于将要存储到高速缓冲存储器中的块的个数M,则控制转到步骤S109,并且从将要存储到高速缓冲存储器中的块的个数M上减去高速缓冲存储器中空白块的个数N获得值,将该值设置为将要删除的块的个数K。然后,控制转到步骤S110。
然后,在步骤S110,将高速缓冲存储器中空白块的个数N设为0。
接着,在步骤S111,参照文件管理表,确定被分配了最低优先权的文件。
在步骤S112,通过在被分配了最低优先权的文件中从最低优先权开始顺序选择K个块,并且从高速缓冲存储器中删除所选择的K个块,将空白块保留在高速缓冲存储器中。
然后,在图20所示的步骤S113中,将M个块存储在高速缓冲存储器中的空白块中。
在步骤S114,将N设置为高速缓冲存储器中空白块的个数。
图21A示出根据本发明第一实施方式在高速缓冲存储器中存储块的方法。根据图21A所示的实施方式,如果将一个块中的数据存储在高速缓冲存储器中并且当存储了顺序访问的串行数据时获得对含有该数据的块之前的块的访问,则存储从受到访问请求的块之后的下一块开始到存储在高速缓冲存储器中的块之前的一块的各块。
当只有后一半读文件存储在高速缓冲存储器中时,对文件的前一半做出读请求。例如,在图21A中,文件k中的数据包括一个存储在高速缓冲存储器中的部分C和一个未存储在高速缓冲存储器中的部分F。未存储在高速缓冲存储器中的部分F与文件k的前半部分相应,而存储在高速缓冲存储器中的部分C与文件k的后半部分相应。
假定对文件k第一块A做出访问请求。利用对文件k的块A的读请求,存储在高速缓冲存储器中的文件k的部分C可能受到读请求的概率高。因此,不删除存储在高速缓冲存储器中文件k的部分C。
然后,按照优先权将从受到读请求的块到部分C之前的块存储在高速缓冲存储器中。例如,在图21A中,当文件k中的块A中的比如电影和音乐数据这样的多媒体数据受到读请求时,从文件k中块A之后的块B开始到紧接存储在高速缓冲存储器中的部分C之前的块受到读请求的概率高。因此,顺序读从文件k中块B开始到紧接存储在高速缓冲存储器中的部分C之前的各块,并且存储在高速缓冲存储器中。
图21B示出根据本发明第二实施方式在高速缓冲存储器中存储各块的方法。根据图21B所示的实施方式,如果将一个块中的数据存储在高速缓冲存储器中并且当存储了顺序访问的串行数据时获得对含有该数据的块之前的块的访问,则存储从受到访问请求的块之后的预定数目的块开始到存储在高速缓冲存储器中的块之前的一块的各块。
当只有后一半读文件存储在高速缓冲存储器中时,对文件的前一半做出读请求。例如,在图21B中,文件k中的数据包括一个存储在高速缓冲存储器中的部分C和一个未存储在高速缓冲存储器中的部分F。未存储在高速缓冲存储器中的部分F与文件k的前半部分相应,而存储在高速缓冲存储器中的部分C与文件k的后半部分相应。
假定对文件k的块A做出访问请求。利用对文件k的块A的读请求,存储在高速缓冲存储器中的文件k的部分C可能受到读请求的概率高。因此,不删除存储在高速缓冲存储器中文件k的部分C。
然后,按照优先权将从受到读请求的块到部分C之前的块存储在高速缓冲存储器中。例如,在图21B中,当文件k中的块A中的比如电影和音乐数据这样的多媒体数据受到读请求时,从文件k中块A之后的块B开始到紧接存储在高速缓冲存储器中的部分C之前的块受到读请求的概率高。立即读取和发送文件k中块A之后的某些块。因此,顺序读从紧接文件k中块A之后的块D开始到紧接存储在高速缓冲存储器中的部分C之前的各块,并且存储在高速缓冲存储器中。
图21C示出根据本发明第三实施方式在高速缓冲存储器中存储各块的方法。根据图21C所示的实施方式,如果将一个块中的数据存储在高速缓冲存储器中并且当存储了顺序访问的串行数据时获得对含有该数据的块之前的块的访问,则以相反的方向将数据顺序存储在从已经存储的块之前的块开始到受到读请求的块的各块中。
当只有后一半读文件存储在高速缓冲存储器中时,对文件的前一半做出读请求。例如,在图21C中,文件k中的数据包括一个存储在高速缓冲存储器中的部分C和一个未存储在高速缓冲存储器中的部分F。未存储在高速缓冲存储器中的部分F与文件k的前半部分相应,而存储在高速缓冲存储器中的部分C与文件k的后半部分相应。
假定对文件k的第一块A做出访问请求。利用对文件k的块A的读请求,存储在高速缓冲存储器中的文件k的部分C可能受到读请求的概率高。因此,不删除存储在高速缓冲存储器中文件k的部分C。
然后,按照优先权将从受到读请求的块到部分C之前的块存储在高速缓冲存储器中。例如,在图21C中,当文件k中的块A中的比如电影和音乐数据这样的多媒体数据受到读请求时,从文件k中块A之后的块B开始到紧接存储在高速缓冲存储器中的部分C之前的块受到读请求的概率高。因此,将从文件k中块B开始到紧接存储在高速缓冲存储器中的部分C之前的各块存储在高速缓冲存储器中。因为从文件k中的块B顺序发送各块,所以从紧接存储在高速缓冲存储器中的部分C之前的块E开始到文件k中的前导块A的相反方向读取预先读的块并存储在高速缓冲存储器中。
图22是示出根据本发明第三实施方式的数据传送系统的结构的框图。图22所示的结构是通过将客户接口模块49加到图8所示的结构以便将从存储装置31所读的数据直接传送至客户来实现的。
在图22中,35是服务器,36是读请求接收表,36’、45’和46’是数据缓冲器,37是存储设备,41是存储装置,45是服务器接口模块,46是装置接口模块,47是控制装置,49是客户接口模块,50是控制单元(MPU),51是控制存储器,80是目的客户通知单元,81是数据输出单元,82是目的客户确定单元,而83是数据输入单元。
在从一个客户收到对文件的读请求时,服务器35将与请求客户相应的已经对其做出读请求的文件记录在读请求接收表36上。然后,从服务器35向存储设备37的服务器接口模块45发送该文件读请求。服务器接口模块45接收该文件读请求。
控制装置47确定是否有一个其读频率已经达到预定值的文件或者有一个对其自从做出对文件的读请求开始已经过去预定时间的文件。将其读频率已经达到预定值的文件或者对其自从做出读请求开始已经过去预定时间的文件定义为读开始文件。如果已经定义了读开始文件,则控制单元50指示装置接口模块46从存储装置41读一个读开始文件。装置接口模块46从存储装置41读该读开始文件,将所读数据发送到客户接口模块49的数据输入单元83。
控制单元50指示服务器接口模块45的目的客户通知单元80通知客户接口模块49读请求接收表36的内容。
客户接口模块49从目的客户通知单元80接收读请求接收表36的内容,并且通过目的客户确定单元82确定读开始文件的目的客户。通过数据输出单元81将读开始文件发送到请求该读开始文件的客户。
这样,根据图22所示的实施方式,能够通过客户接口模块49将从存储装置41所读的数据直接传送到每个客户,从而降低服务器35上的负载,并且缩短将从存储装置41所读的数据传送到每个客户所需的时间。
图23是示出根据本发明第四实施方式的数据传送系统的结构的框图。图23所示结构是通过将高速缓冲存储器48加到图22中所示的结构而获得的。当利用高速缓冲存储器48传送数据时,可以使用存储装置41中的物理或逻辑块作为高速缓冲存储器48中的替换单位。当将新的数据存储在高速缓冲存储器48中时,如果高速缓冲存储器48可用,则将其存储在其中。如果高速缓冲存储器48中没有空白块,则从高速缓冲存储器48中删除一个适当的块以为新的块保留空白区域。
如果在高速缓冲存储器48中简单地以块为单位管理块中的串行数据(文件),则从文件中的前导块开始删除各块。因此,如果在已经做出文件读请求之后删除一块,则可能删除受到读请求的文件的块。在这种情形下,不能进行命中传送,从而降低了数据提供能力。为了避免这种情形,根据图23所示实施方式设置一个高速缓冲存储器管理表85,既可以以文件为单位也可以以块为单位对高速缓冲存储器48中的空白区域进行管理。
如果一个块中的数据存储在高速缓冲存储器48中并且在存储顺序访问的串行数据以及检查串行数据的访问状态时获得对含有该数据的块之前的一块的访问,则为当前文件分配最高优先权。
从在紧接受到访问的块之后的块开始或者在受到访问的块之后预定数目块的块开始到存储在高速缓冲存储器48中的块之前的一块为止将各块存储在高速缓冲存储器48中,而不删除在受到访问的文件中的块。否则,以相反的次序存储从存储在高速缓冲存储器48中的块之前的开始一块到受到读请求的块为止的各块。
在图23中,35是服务器,36是读请求接收表,36’、45’和46’是数据缓冲器,37是存储设备,41是存储装置,45是服务器接口模块,46是装置接口模块,48是高速缓冲存储器,49是客户接口模块,50是控制单元(MPU),51是控制存储器,80是目的客户通知单元,81是数据输出单元,82是目的客户确定单元,83是数据输入单元,84是高速缓冲存储器控制程序,而85是高速缓冲存储器管理表。
在从一个客户收到对文件的读请求时,服务器35将与请求客户相应的已经对其做出读请求的文件记录在读请求接收表36上。然后,从服务器35向存储设备37的服务器接口模块45发送该文件读请求。服务器接口模块45接收该文件读请求。
控制装置47确定已经由控制装置50做出读请求,激活高速缓冲存储器控制程序84,并且在高速缓冲存储器管理表85所管理的文件中为由客户所请求的文件分配最高优先权,以便在高速缓冲存储器84中存储。在由高速缓冲存储器管理表85所管理的每个文件中的各块中,为最近受到读请求的块分配最高优先权,而为第一个受到读请求的块分配最低优先权。
当高速缓冲存储器48中没有块区域写入新数据时,从最低优先权到最高优先权确定文件块删除次序。根据所确定的文件删除次序,按次序从最低优先权删除块。
控制装置47确定是否有一个其读频率已经达到预定值的文件或者有一个对其自从做出对文件的读请求开始已经过去预定时间的文件。将其读频率已经达到预定值的文件或者对其自从做出读请求开始已经过去预定时间的文件定义为读开始文件。如果已经定义了读开始文件,则控制单元47参照高速缓冲存储器管理表85,并且检查是否将一个读开始文件输入到高速缓冲存储器管理表85中。
如果将一个读开始文件输入到高速缓冲存储器管理表85中,则控制单元50指示客户接口模块49从高速缓冲存储器48读该读开始文件。客户接口模块49从高速缓冲存储器48读该读开始文件,并且将该文件输入到数据输入单元83中。
控制单元50指示服务器接口模块45的目的客户通知单元80通知客户接口模块49读请求接收表36的内容。
客户接口模块49从目的客户通知单元80接收读请求接收表36的内容,并且通过目的客户确定单元82确定读开始文件的目的客户。通过数据输出单元81将读开始文件发送到请求该读开始文件的客户。
如果未将读开始文件输入高速缓冲存储器管理表85中,则控制单元50指示装置接口模块46从存储装置41读该读开始文件。装置接口模块46从存储装置41读该读开始文件,将文件发送到客户接口模块49的数据输入单元83。
控制单元50指示服务器接口模块45的目的客户通知单元80通知客户接口模块49读请求接收表36的内容。
当客户接口模块49从目的客户通知单元80收到读请求接收表36的内容时,通过目的客户确定单元82确定读开始文件的目的客户。然后,客户接口模块49将读开始文件通过数据输出单元81发送到请求该读开始文件的客户。
通过激活高速缓冲存储器控制程序85,控制单元50检查将数据存储在高速缓冲存储器48中的受到顺序访问的串行数据的访问状态。
如果含有顺序受到访问的串行数据的文件中的一部分块存储在高速缓冲存储器48中,并且如果获得对存储在高速缓冲存储器48中的块之前的块的访问,则为受到访问的文件分配最高优先权。然后,在不删除存储在高速缓冲存储器48中的块的情况下,从在所请求访问的块之后预定数目块的一块开始到存储在高速缓冲存储器48中的块之前的一块止,将各块存储在高速缓冲存储器48中。
这样,根据图23所示的实施方式,能够经过客户接口模块49将所读数据直接从高速缓冲存储器48传送到每个客户,从而降低了服务器35、存储装置41、服务器接口模块45以及装置接口模块46上的负载,并且缩短了将所读数据从高速缓冲存储器48传送到每个客户所需的时间。
如上述,即使同时做出多个请求以访问存储大量串行数据的存储装置中的同一文件中的数据,根据本发明的实施方式,也能够通过单个读操作将数据传送至每个请求客户。因此,能够极大地提高从存储装置读数据的效率。
根据本发明的一个方面,当读大量串行数据时,当在高速缓冲存储器中处理大量串行数据时,考虑到各种特点和倾向对操作进行控制。因此,通过设置高速缓冲存储器,能够极大地提高数据传送能力。
Claims (20)
1.存储设备,具有用于以文件为单位保存串行数据的存储装置和用于对存储装置中所保存的串行数据的输入和输出进行控制的存储器控制单元,所述存储器控制单元包括:
读控制单元,用于对读所述存储装置的串行数据进行控制;
读请求确定单元,用于确定对存储在所述存储装置中的相同文件中的串行数据的多个读请求;
读请求频率计数单元,用于在每次做出读请求时对文件读请求频率进行计数;以及
读开始确定单元,用于当文件读请求的频率计数值达到预定值时指示所述读控制单元去读该文件中的串行数据。
2.根据权利要求1的存储设备,其中
所述读请求频率计数单元在每次做出读请求时对文件读请求频率进行计数,并且以预定时间间隔对每个文件的计数进行更新;以及
当文件读请求频率达到预定频率或从第一个读请求开始已经过去了预定时间后,所述读开始确定单元指定读该文件中的串行数据。
3.利用存储设备控制数据读取的方法,该存储设备具有用于以文件为单位保存串行数据的存储装置和用于对存储单元中所保存的串行数据的输入和输出进行控制的存储器控制单元,所述方法包括步骤:
对读取存储装置的串行数据进行控制;
确定对存储单元中所存储的相同文件中串行数据的多个读请求;
在每次做出读请求时对文件读请求频率进行计数;
以确定时间间隔对每个文件的计数值进行更新;
当文件的读请求频率计数值达到预定值时指定读取该文件;以及
当文件的读请求频率计数达到预定值或者在从该文件的第一个读请求开始已经过去预定时间之后时读取文件。
4.根据权利要求3的方法,其中
所速存储控制单元包括高速缓冲存储器和高速缓冲存储器管理表;
所述高速缓冲存储器管理表包括在对所述高速缓冲存储器中所存储的文件的优先权进行管理中所用的文件管理表,以及在对每个文件的存储块的优先权进行管理中所用的块管理表;以及
所述方法包括步骤:
在所述文件管理表上对所请求的文件分配最高优先权;
对最近受到读请求的块分配最高优先权,对最先受到读请求的块分配最低优先权;
确定当高速缓冲存储器中没有块的存储区域以供写新数据时将要按照从文件的最低优先权开始的次序对其块进行删除的文件,然后按照从文件中块的最低优先权开始的次序删除块;以及
当存储了顺序受到访问的串行数据时对串行数据的访问状态进行检查,当文件中的块含有在高速缓冲存储器所存储的数据以及获得对含有该数据的块之前的块的访问时,对该文件分配最高优先权,并且存储从受到访问请求的块之后预定数目块的一块开始到存储在高速缓冲存储器中的块止的各块,而不删除含有该数据的块。
5.根据权利要求4的方法,其中
当将串行数据存储在高速缓冲存储器中时,从在受到访问请求的块之后的下一块开始或者从在受到访问请求的块之后预定数目块的一块开始到存储在高速缓冲存储器中的块之前的一块止,按照串行数据的次序存储各块。
6.根据权利要求4的方法,其中
当将未存储在高速缓冲存储器中的一部分受到访问请求的串行数据存储在高速缓冲存储器中时,从存储在高速缓冲存储器中的块之前的一块开始按照串行数据的相反次序存储各块。
7.用于利用存储装置对文件中的数据进行控制的存储器控制装置,该存储装置具有用于以文件为单位保存串行数据的存储装置和用于对存储装置中所保存的串行数据的输入和输出进行控制的存储器控制单元,包括:
高速缓冲存储器管理表,在对高速缓冲存储器的存储区域进行管理中所用,其中
所述高速缓冲存储器管理表包括:
文件管理表,在对将要从存储装置存储到高速缓冲存储器的文件优先权进行管理中所用;以及
块管理表,在对文件管理表中所管理的每个文件的块存储优先权进行管理中所用。
8.利用存储装置控制文件数据读取的方法,该存储装置具有用于以文件为单位保存串行数据的存储单元和用于对存储单元中所保存的串行数据的输入和输出进行控制的存储器控制单元,其中
所述存储控制单元包括高速缓冲存储器和高速缓冲存储器管理表;
所述高速缓冲存储器管理表包括在对所述高速缓冲存储器中所存储的文件的优先权进行管理中所用的文件管理表,以及在对每个文件的存储块的优先权进行管理中所用的块管理表;以及
所述方法包括步骤:
在所述文件管理表上对所请求的文件分配最高优先权,以便于在高速缓冲存储器中存储;
对最近受到读请求的块分配最高优先权,对最先受到读请求的块分配最低优先权;
确定当高速缓冲存储器中没有块的存储区域以供写新数据时将要按照从文件的最低优先权开始的次序对其块进行删除的文件,然后按照从文件中块的最低优先权开始的次序删除块;以及
当存储了顺序受到访问的串行数据时对串行数据的访问状态进行检查,当文件中的块含有在高速缓冲存储器所存储的数据以及获得对含有该数据的块之前的块的访问时,对该文件分配最高优先权,并且存储从受到访问请求的块之后预定数目块的一块开始到存储在高速缓冲存储器中的块止的各块,而不删除含有该数据的块。
9.根据权利要求8的方法,其中
当将串行数据存储在高速缓冲存储器中时,从在受到访问请求的块之后的下一块开始或者从在受到访问请求的块之后预定数目块的一块开始到存储在高速缓冲存储器中的块之前的一块止,按照串行数据的次序存储各块。
10.根据权利要求8的方法,其中
当将未存储在高速缓冲存储器中的一部分受到访问请求的串行数据存储在高速缓冲存储器中时,从存储在高速缓冲存储器中的块之前的一块开始按照串行数据的相反次序存储各块。
11.数据传送系统,具有一个服务器,用于在来自请求客户的读请求下向存储设备发出读请求、接收所请求的数据并且将该数据传送到请求客户,以及与该服务器连接的存储设备,所述服务器包括:
读请求接收表,存储与请求客户相应的受到读请求的文件,其中
所述存储设备包括用于以文件为单位保存串行数据的存储装置和用于对存储装置中所保存的串行数据的输入和输出进行控制的存储器控制单元,所述存储控制单元包括:
读控制单元,用于对读所述存储单元的串行数据进行控制;
读请求确定单元,用于确定存储在所述存储单元中的相同文件中的串行数据的多个读请求;
读请求频率计数单元,用于在每次做出读请求时对文件读请求频率进行计数;
读开始确定单元,用于当文件读请求的频率计数值达到预定值时指示所述读开始确定单元去读该文件中的串行数据;以及
所述服务器通过在读指令下从存储设备的读操作中读串行数据,将串行数据传送到多个请求客户。
12.根据权利要求11的数据传送系统,其中
所述存储控制单元包括高速缓冲存储器和高速缓冲存储器管理表;
所述高速缓冲存储器管理表包括在对将要存储在所述高速缓冲存储器中的文件优先权进行管理中所用的文件管理表,以及在对每个文件的存储块的优先权进行管理中所用的块管理表;
在所述文件管理表上对所请求的文件分配最高优先权;
对最近受到读请求的块分配最高优先权,对最先受到读请求的块分配最低优先权;
确定当高速缓冲存储器中没有块的存储区域以供写新数据时将要按照从文件的最低优先权开始的次序对其块进行删除的文件,然后按照从文件中块的最低优先权开始的次序删除块;以及
当存储了顺序受到访问的串行数据时对串行数据的访问状态进行检查,当文件中的块含有在高速缓冲存储器所存储的数据以及获得对含有该数据的块之前的块的访问时,对该文件分配最高优先权,并且存储从受到访问请求的块之后预定数目块的一块开始到存储在高速缓冲存储器中的块止的各块,而不删除含有该数据的块。
13.根据权利要求11的数据传送系统,其中
所述存储设备包括:
请求客户信息读单元,用于从所述服务器读所述读请求接收表的内容;以及
数据传送单元,用于根据读请求接收表的内容将文件的串行数据传送到请求客户。
14.数据分配装置,包括:
读请求频率计数装置,用于为每个文件对来自请求客户的对于文件的读请求的频率进行计数;
读请求频率确定装置,用于确定是否有其读请求频率已经达到预定值的文件;以及
文件发送指示装置,用于指定将其读请求频率已经达到预定值的文件发送到读请求客户。
15.根据权利要求14的数据分配装置,其中
所述读请求频率确定单元将频繁受到读请求的文件的预定值设定为大值,将极少频繁受到读请求的文件的预定值设定为小值。
16.根据权利要求14的数据分配装置,还包括:
第一存储装置,对文件进行存储;
第二存储装置,具有比所述第一存储装置更高读速度;以及
存储控制装置,在所述第二存储装置中按照优先权存储频繁受到读请求的文件。
17.根据权利要求15的数据分配装置,还包括:
用于选择第一方法、第二方法或第三方法的选择装置;
完全视频点播执行装置,用于当选择第一方法时通过将预定值设定为1来执行完全视频点播方法;
近似视频点播执行装置,用于当选择第二方法时通过在文件读请求开始的预定时间之后指定向请求客户发送文件来执行近似视频点播方法;以及
初值设定装置,用于当选择第三方法时将预定值设置为等于或大于2的值。
18.用于指示计算机执行以下功能的计算机可读介质:
为每个文件对来自请求客户的文件读请求频率进行计数;
确定是否有文件读请求频率已经达到预定值的文件;以及
指定向请求客户发送其文件读请求频率已经达到预定值的文件。
19.存储设备,具有用于在文件中保存数据的存储装置和用于对保存在存储装置中的数据的输入和输出进行控制的存储器控制单元,所述存储器控制单元包括:
用于对存储在所述存储装置中的相同文件中的数据确定多个读请求的装置;
用于在每次做出读请求时对文件读请求频率进行计数的装置;以及
用于在文件读请求频率计数值达到预定值时或者在自从第一个读请求过去预定时间之后读文件中的数据的装置。
20.对从存储装置中的文件中读取数据进行控制的方法,包括步骤:
对存储在存储单元中的相同文件中的数据确定多个读请求;
每次做出读请求时对文件读请求频率进行计数;以及
在文件读请求频率计数值达到预定值时或者在自从该文件的第一个读请求过去预定时间之后读文件中的数据。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP924896 | 1996-01-23 | ||
JP009248/96 | 1996-01-23 | ||
JP348030/96 | 1996-12-26 | ||
JP8348030A JPH09265429A (ja) | 1996-01-23 | 1996-12-26 | データ配信装置、記憶装置とその制御方法およびデータ転送システム |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1167946A true CN1167946A (zh) | 1997-12-17 |
Family
ID=26343931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN97101034A Pending CN1167946A (zh) | 1996-01-23 | 1997-01-22 | 响应于对相同文件的多个请求对数据进行分配的装置 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0786718A3 (zh) |
JP (1) | JPH09265429A (zh) |
KR (1) | KR19980063245A (zh) |
CN (1) | CN1167946A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1764916B (zh) * | 2003-03-07 | 2010-08-18 | 诺基亚公司 | 用于频率计数的方法和装置 |
CN1975655B (zh) * | 2005-11-29 | 2011-04-20 | 国际商业机器公司 | 用于管理对存储装置的访问的方法和设备 |
CN102209038A (zh) * | 2011-06-15 | 2011-10-05 | 中山大学 | 一种交互式流媒体缓冲的实现方法及其装置 |
CN108668142A (zh) * | 2017-03-27 | 2018-10-16 | 华为软件技术有限公司 | 视频播放方法及装置 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000062547A1 (en) * | 1999-04-09 | 2000-10-19 | Opentv, Inc. | Bandwidth management on a hybrid point to point broadcast |
EP1190575B1 (en) * | 1999-06-18 | 2009-08-12 | Intel Corporation | Systems and methods for enhanced visual presentation using interactive video streams |
FR2795834B1 (fr) * | 1999-07-01 | 2001-09-14 | Television Francaise 1 Soc | Procede et systeme de gestion locale de la distribution de programmes multimedia |
KR20020030381A (ko) * | 2000-10-17 | 2002-04-25 | 송유진 | 네트워크상에서의 광고웹서버에 의한 광고전송시스템 |
JP4505977B2 (ja) * | 2000-11-10 | 2010-07-21 | ソニー株式会社 | データ蓄積装置およびその方法、ならびに記録媒体 |
JP4540556B2 (ja) * | 2005-06-22 | 2010-09-08 | 株式会社神戸製鋼所 | データアクセス方法及びそのプログラム |
US20110238927A1 (en) * | 2008-11-21 | 2011-09-29 | Hiroyuki Hatano | Contents distribution device , contents distribution control method, contents distribution control program and cache control device |
JP5514245B2 (ja) * | 2012-03-15 | 2014-06-04 | 株式会社東芝 | ビデオ配信サーバ及びビデオ配信方法 |
JP6901262B2 (ja) * | 2017-01-05 | 2021-07-14 | Kddi株式会社 | コンテンツ配信システムの転送装置及びプログラム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0368683B1 (en) * | 1988-11-11 | 1996-01-24 | Victor Company Of Japan, Limited | Data handling apparatus |
US5150472A (en) * | 1989-10-20 | 1992-09-22 | International Business Machines Corp. | Cache management method and apparatus for shared, sequentially-accessed, data |
JPH03231339A (ja) * | 1990-02-07 | 1991-10-15 | Toshiba Corp | データベースアクセス方式 |
JP2618149B2 (ja) * | 1991-04-22 | 1997-06-11 | インターナショナル・ビジネス・マシーンズ・コーポレイション | キャッシュ内のデータ記憶スペースを管理する方法及びキャッシュ内でページ置換を行う装置 |
JPH06119218A (ja) * | 1992-10-08 | 1994-04-28 | Nippon Telegr & Teleph Corp <Ntt> | ファイルキャッシュ制御方法 |
ES2139645T3 (es) * | 1993-11-17 | 2000-02-16 | Cit Alcatel | Video en red de demanda. |
-
1996
- 1996-12-26 JP JP8348030A patent/JPH09265429A/ja active Pending
-
1997
- 1997-01-22 CN CN97101034A patent/CN1167946A/zh active Pending
- 1997-01-22 EP EP97100948A patent/EP0786718A3/en not_active Withdrawn
- 1997-01-22 KR KR1019970001780A patent/KR19980063245A/ko not_active IP Right Cessation
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1764916B (zh) * | 2003-03-07 | 2010-08-18 | 诺基亚公司 | 用于频率计数的方法和装置 |
CN1975655B (zh) * | 2005-11-29 | 2011-04-20 | 国际商业机器公司 | 用于管理对存储装置的访问的方法和设备 |
CN102209038A (zh) * | 2011-06-15 | 2011-10-05 | 中山大学 | 一种交互式流媒体缓冲的实现方法及其装置 |
CN102209038B (zh) * | 2011-06-15 | 2015-11-25 | 中山大学 | 一种交互式流媒体缓冲的实现方法及其装置 |
CN108668142A (zh) * | 2017-03-27 | 2018-10-16 | 华为软件技术有限公司 | 视频播放方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
KR19980063245A (ko) | 1998-10-07 |
JPH09265429A (ja) | 1997-10-07 |
EP0786718A2 (en) | 1997-07-30 |
EP0786718A3 (en) | 1997-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1238790C (zh) | 接收并存储广播内容、响应用户请求使内容成为可利用状态的接收终端装置 | |
CN100336352C (zh) | 内容发布系统、描述数据发布设备和内容发布方法 | |
CN1120425C (zh) | 存储器控制器和存储器控制方法 | |
CN1189830C (zh) | 数字广播接收机的事件发送方法及装置 | |
CN1969292A (zh) | 用户轮廓管理系统 | |
CN1794729A (zh) | 数据配置管理方法及系统和装置以及程序 | |
CN1167946A (zh) | 响应于对相同文件的多个请求对数据进行分配的装置 | |
CN1790528A (zh) | 重放装置及其方法、记录介质和程序 | |
CN1498367A (zh) | 信息处理装置、存储器管理装置、存储器管理方法及信息处理方法 | |
CN1112637C (zh) | 信息获取代理系统和信息传送管理系统 | |
CN1856069A (zh) | 通信系统、记录装置和方法、记录介质和程序 | |
CN1755695A (zh) | 信息处理设备、方法和程序 | |
CN1681306A (zh) | 信息处理系统、信息处理方法和计算机程序 | |
CN1318797A (zh) | 动态代理人服务程序装置 | |
CN1201519C (zh) | 数据一致性检测装置、数据一致性判断装置及数据挑选装置 | |
CN1658665A (zh) | 存储器管理方法、图像处理设备和存储器管理程序 | |
CN1260643C (zh) | 数据处理系统和方法、信息处理装置和方法 | |
CN1252646C (zh) | 图像处理方法和图像处理装置 | |
CN1416276A (zh) | 中间数据接收装置、方法、程序和记录媒体以及发送装置、传输方法 | |
CN1203395A (zh) | 文件管理装置和方法及记录文件管理程序的记录媒体 | |
CN1681287A (zh) | 数字照相机、像簿管理方法、像簿管理程序产品、以及像簿管理程序传送介质 | |
CN1113347C (zh) | 信息数据记录和重放装置 | |
CN1167073C (zh) | 数据记录装置和方法 | |
CN1290026C (zh) | 信息提供系统和信息服务设备 | |
CN1783784A (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 |