CN1208725C - 缓冲器高速缓冲方法及其装置 - Google Patents
缓冲器高速缓冲方法及其装置 Download PDFInfo
- Publication number
- CN1208725C CN1208725C CNB001030329A CN00103032A CN1208725C CN 1208725 C CN1208725 C CN 1208725C CN B001030329 A CNB001030329 A CN B001030329A CN 00103032 A CN00103032 A CN 00103032A CN 1208725 C CN1208725 C CN 1208725C
- Authority
- CN
- China
- Prior art keywords
- impact damper
- free surface
- size
- data
- balanced tree
- 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
Links
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/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space 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
-
- 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/0643—Management of files
-
- 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/0656—Data buffering arrangements
-
- 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/0676—Magnetic disk device
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)
- Memory System (AREA)
Abstract
一种高速缓冲存储器装置,其包含一个存储部分、一个高速缓冲存储器和一个控制部分。高速缓冲存储器存储平衡树和自由表。在平衡树中分级提供作为节点的包含在缓冲器中的数据,并分别提供具有不同尺寸的自由表。当存在至少一个自由表时,每个自由表包含至少一个自由缓冲器。当在平衡树树中不存在所请求的数据时,控制部分根据所请求数据的尺寸对所需的缓冲器搜索自由表。所需缓冲器的尺寸大于被请求数据的尺寸并尽可能的小。
Description
技术领域
本发明涉及一种文件系统,更具体的涉及一种缓冲器高速缓冲控制方法和其装置。
背景技术
在切换系统中通常提供有通讯信道部分12,用于控制电话用户10之间的电话线路,如图1中所示。通过诸如计算机的中央处理部分14对通讯路由部分12进行控制。即,中央控制部分16从主存储部分18和辅助存储部分20读取程序并解释和执行每个程序的命令。因此,通过将需要的指令和数据发送到通讯路由部分12,从而可对诸如计费功能和呼叫处理功能等所有的功能进行控制。
同样,维护和操作部分(控制台)22与中央处理部分16进行数据交换。
在此切换系统中,可使用各种类型的文件。在此传统的切换系统中,使用具有预定块尺寸的高速缓冲存储器进行高速缓冲操作。参考图2,将描述传统切换系统中的通常的文件操作。假设在作为主存储部分的磁盘部分18上具有一个文件aaa。在磁盘上将文件aaa进行分解为单元块。将文件aaa存储进块100、101、102、205、206、255、256和300。当文件尺寸扩展时,将新的块与最后的一个块相连。当新的块无法与最后的块相连时,将块设置在另外一个位置。例如,如果接着块300的块301被用做新块。如果已经使用了块301,将被释放的块用做新的块。
另外,因为已经占据了很大的存储区,所以在高速缓冲存储器中无法读出整个的文件aaa。因此,在高速缓冲存储器中只读取包含所需数据内容的块。例如,当在由块100、101、102、205、206、255、256和300构成的文件aaa的块101、102和205中存在所需的数据部分时,在高速缓冲存储器中读取块101、102和205中的数据。同样,当在文件aaa的块102中存在所需的数据部分时,只读取高速缓冲存储器中的块102。
在使用具有预定块尺寸的高速缓冲存储器的缓冲器高速缓冲方法中,如果文件的块尺寸小于高速缓冲存储器的尺寸,可以增快读操作的速度。然而,当在切换系统的文件系统中连续访问一些块时,将读取访问操作分为多个I/O过程。为此,无法获得理想的效果。
在日本公开专利申请(JP-A-Heisei 5-158792)中所描述的技术中,当存取的尺寸较大时,设置了一个输入/输出缓冲器,数据被一次存入高速缓冲存储器中。
同样,在使用具有预定块尺寸的高速缓冲存储器的高速缓冲方法中,在与文件的块尺寸无关的情况下进行预定长度尺寸数据访问。因此,当高速缓冲存储器的块尺寸较大时,在处理小文件时会对块的使用造成浪费。
因此建议使高速缓冲存储器的块尺寸可变,以适应此问题。例如,在日本公开专利申请(JP-A-Heisei 10-69429)中揭示了一种技术,其中根据应用程序的请求而定位存储器中的缓冲存储区。然而,此种的使用可变长度的高速缓冲存储器的方法适用于通讯控制程序,其中处理具有预定尺寸的多个数据。在切换装置的文件系统中,因为所需的数据具有各种各样的尺寸,因此此方法不适用。
同样,在日本公开专利申请(JP-A-Heisei 7-311710)中揭示了一种使用散列表的控制高速缓冲存储器的方法。然而,其不适用于将散列表提供给具有可变长度的高速缓冲存储器的高速存取的情况。
在切换装置的文件系统中,因为需要具有大面积的数据区,从实现高速存取的角度看,上述的传统实例并不适用。为此,为了进行高速存取,仍然需应用使用具有预定尺寸块的高速缓冲存储器的方法。在此情况下,无法获得高速访问。
结合上面的描述,在日本公开专利申请(JP-A-Heisei 2-39343)中揭示了一种用于在主计算机和显示器之间进行数据传输的传输和接收缓冲控制系统。缓冲器被提供有具有可变长度的数据存储区、用于存储数据存储区的标题地址的指示符的标题指示符存储区和用于存储数据存储区的尾地址的指示符的尾指示符存储区。
同样,在日本公开专利申请(JP-A-Heisei 7-210365)中揭示了一种诸如激光打印机的图象生成装置。在此文献中,使用定时器检测接收缓冲器是否无存储空间。如果在预定时间后缓冲器仍然无存储空间,则增大缓冲器的尺寸。
发明内容
因此,本发明的第一个目的是提供一种高速缓冲存储方法,其中的高速缓冲存储器的尺寸可变,同时还提供使用该方法的高速缓冲存储装置。
本发明的另外的一个目的是提供一种高速缓冲存储方法,其中可高速的访问具有可变尺寸的文件,和提供一种使用该方法的高速缓冲存储装置。
本发明的第三个目的是提供一种高速缓冲存储方法,其中可根据所请求数据的尺寸释放或插入缓冲器,和应用该方法的高速缓冲存储装置。
本发明的第四个目的在于提供一种高速缓冲存储方法,其中可预先设置具有可变尺寸的缓冲器,从而可选择其中的一个缓冲器,和应用该方法的高速缓冲存储装置。
本发明的第五个目的在于提供一种高速缓冲存储方法,其中使用了平衡树,及应用该方法的高速缓冲存储装置。
本发明的第六个目的在于提供一种高速缓冲存储方法,其中可对平衡树的非平衡进行修正,和应用该方法的高速缓冲存储装置。
为了实现本发明的一个方面,一种高速缓冲存储装置包含一个存储数据的存储部分、高速缓冲存储器和控制部分。高速缓冲存储器存储平衡树和自由表。包含数据的缓冲器被在平衡树中作为节点分级提供,并分别提供具有不同尺寸的自由表。当存在至少一个自由缓冲器时,每个自由表包含至少一个自由缓冲器。控制部分响应数据请求。当在平衡树中不存在被请求的数据时,控制部分根据数据请求部分所请求的数据的尺寸搜索所需缓冲器的自由表。同样,控制部分将所需的缓冲器加到平衡树中将被请求数据从存储部分存储进所需的缓冲器中。在尺寸大于或等于所述被请求数据的尺寸的所述自由表中,所述所需的缓冲器是最小的缓冲器。
这里,当存在至少一个自由缓冲器时,每个自由表包含一个表示尺寸的标题部分和至少一个与标题部分相连的自由缓冲器。控制部分:(a)根据被请求数据尺寸搜索自由表的标题部分,以找出被提供给具有大于被请求数据尺寸的其中尺寸最小的一个自由表,(b)确定所找出的自由表是否包含至少一个自由缓冲器,(c)当确定所发现的自由表不包含至少一个自由缓冲器时,为另外一个作为被寻找自由表的最小尺寸的自由表设定另外一个自由表,及(d)当通过搜索操作或重复设定操作而确定所寻找的自由表包含至少一个自由缓冲器时,将被包含在所寻找的自由表中的自由缓冲器设定作为所需的缓冲器。
同样,当在平衡树的包含数据的缓冲器中存在至少部分被请求的数据时,控制部分从平衡树释放和删除其中一个包含数据的缓冲器。同样,根据被请求数据的尺寸控制部分搜索所需缓冲器的自由表。在此情况下,控制部分根据包含被删除数据的缓冲器的尺寸将包含被删除数据的缓冲器作为自由缓冲器加入到一个自由表中。同样,控制部分根据被请求数据的尺寸、自由表的尺寸和是否至少一个自由缓冲器与每个自由表相连的情况从自由表搜索所需的缓冲器。
同样,当在平衡树的包含数据的缓冲器中存在至少部分被请求的数据时,控制部分从平衡树释放和删除包含数据的缓冲器。同时,控制部分根据被请求数据的尺寸搜索所需的缓冲器的自由表。在此情况下,控制部分根据每个包含被删除数据的缓冲器的尺寸将包含被删除数据的缓冲器作为自由缓冲器加入到自由表中c同时,在这种情况下,控制部分根据被请求数据的尺寸、自由表的尺寸和至少一个自由缓冲器是否与每个自由表相连从自由表搜索所需的缓冲器。
同时,控制部分对平衡树进行修正,从而在平衡树的节点中从根节点到页节点的深度尽量的均匀。同时,控制部分以预定的时间或在控制部分的空闲时间进行修正操作。另外,将高速缓冲存储器应用到切换装置中。
为了实现本发明的另外一个方面,通过确定在平衡树中是否存在一个特定的数据请求而实现高速缓冲存储方法,当确定在平衡树中不存在被请求的数据时,根据被请求数据的尺寸,通过从具有不同尺寸的自由缓冲器中搜索所需的缓冲器而在平衡树中分级设定作为节点的缓冲器,通过将所需的缓冲器加入到平衡树中,然后通过将被请求的数据从存储部分存储进所需的缓冲器中,从而在尺寸大于或等于所述被请求数据的尺寸的所述自由表中,所述所需的缓冲器是最小的缓冲器。
在搜索中,(a)在被请求数据尺寸的基础上寻找其中的一个自由表,其中被寻找的自由表的尺寸是大于被请求数据尺寸的自由表中的尺寸最小的一个,(b)确定被寻找到的自由表是否包含至少一个自由缓冲器,(c)当确定被寻找的自由表不包含至少一个自由缓冲器时,设定下一个作为被寻找自由表的最小尺寸自由表,及(d)当在寻找操作(a)之后或重复设定操作(c)之后确定所寻找的自由表包含至少一个自由缓冲器时,将包含在所寻找自由表中的自由缓冲器设定作为所需的缓冲器。
同时,高速缓冲存储方法可包含如下步骤,当在平衡树的包含数据的缓冲器中存在被请求的数据时,从平衡树释放或删除其中的一个包含数据的缓冲器;根据被请求数据的尺寸搜索所需缓冲器的自由表。在此情况下,该方法还包含根据包含被删除数据的缓冲器的尺寸将包含被删除数据的缓冲器作为自由缓冲器加入到其中的一个自由表中。同时,该方法还包含根据被请求数据的尺寸、自由表的尺寸和至少一个自由缓冲器是否与每个自由表相连从自由表搜索所需的缓冲器。
同时,该方法可以还包含:当在包含平衡树的缓冲器的数据中存在被请求的数据时,从平衡树释放和删除包含数据的缓冲器;同时根据被请求数据的尺寸搜索所需的缓冲器的自由表。在此情况下,该方法还包含根据每个包含被删除数据的缓冲器的尺寸将包含被删除数据的缓冲器作为自由缓冲器加入到自由表中。同时,该方法还包含根据被请求数据的尺寸、自由表的尺寸和至少一个自由缓冲器是否与每个自由表相连从自由表搜索所需的缓冲器。
同时,该方法还包含对平衡树进行修正,从而在平衡树的节点中从根节点到页节点的深度尽量的均匀。在这种情况下,以预定的时间或在控制部分的空闲时间进行修正操作。
附图说明
图1为传统的切换装置的基本结构的方框图;
图2为通过传统的切换装置进行的通常的文件操作的示意图;
图3为用于描述应用了本发明的高速缓冲存储方法的切换装置的基本结构的示意图;
图4为根据本发明的第一实施例的高速缓冲存储器的功能方框图;
图5为高速缓冲存储器中的平衡树的示意图;
图6为根据本发明的第一实施例的用在高速缓冲存储器中的自由表结构的示意图;
图7到图10为根据本发明的第一实施例的用于描述高速缓冲存储器装置的操作的流程图;
图11为平衡树的初始状态的示意图;
图12为将缓冲器插入到平衡树中的示意图;
图13为删除一个缓冲器并将一个新的缓冲器插入到平衡树中的示意图;
图14为用于描述删除平衡树中的缓冲器的操作的示意图;
图15为用于描述将一个新的缓冲器插入到平衡树中的操作的示意图;
图16为用于描述平衡树的初始状态的示意图;
图17为用于示出平衡树的非平衡状态的示意图;及
图18为用于示出对平衡树进行修正的示意图。
具体实施方式
此后,将参考附图对应用本发明的高速缓冲存储器装置的切换装置进行详细描述。
图3示出本发明所使用的切换装置的基本结构。参考图3,切换系统包含通讯路由部分12、处理器(CPU)16、高速缓冲存储部分23,和作为主存储部分的磁盘部分18及作为辅助存储部分20的磁带部分20。通讯路由部分12控制电话用户10之间的电话线路,如图3所述。处理器(CPU)控制通讯路由部分12。即,处理器16从作为主存储部分的磁盘部分18或辅助存储部分20读取程序并解释和执行每个程序命令。因此,将所需的指令和数据发送到通讯路由部分12,从而可对诸如计费功能和呼叫处理功能等所有的功能进行管理。同时,控制台22与处理器16进行数据交换。在高速缓冲存储器装置23上运行本发明的用于高速缓冲存储方法的程序。
图4为根据本发明的第一实施例的高速缓冲存储器装置23的功能方框图。参考图4,高速缓冲存储器部分23由请求接收部分24、平衡树(Btree)搜索部分26、被释放缓冲器搜索部分28、最优缓冲搜索部分30、缓冲插入和删除部分32、平衡树修正部分34、输入和输出控制部分36、高速缓冲存储器38和缓冲器控制部分40构成。
请求接收部分24接收缓冲器获取请求和平衡树修正请求。平衡树搜索部分26搜索平衡树。被释放缓冲器搜索部分28搜索用于释放缓冲器的自由表。最优缓冲器搜索部分30搜索自由表的最优尺寸。缓冲器插入和删除部分32将缓冲器插入到平衡树中或从平衡树中删除缓冲器。平衡树修正部分34调节平衡树的平衡。输入和输出控制部分36控制磁盘18的输入/输出的存取操作。高速缓冲存储器38包含平衡树和自由表。缓冲器控制部分40控制对高速缓冲存储器38的访问。
此后,将参考图5和图6对本发明的高速缓冲存储器装置进行描述。
图5为高速缓冲存储器38中的平衡树和磁盘18的块100到178的示意图。在图5中,平衡树44的每个节点中的缓冲器的数目表示被存储的块的数目。图5示出每个缓冲器由具有可变长度(诸如2个块或3个块)的缓冲器块构成。如图5中所示,高速缓冲存储器38包含用于缓冲器搜索的平衡树44和具有多个尺寸的释放缓冲器的自由表46。平衡树44的每个节点保存一个具有可变长度的缓冲器。
平衡树44为具有两个分支的搜索树。在下层中的左侧分支中设置编号小于节点中缓冲器的编号的缓冲器。在下层右侧分支中设置编号大于节点中缓冲器编号的缓冲器。每个缓冲器具有两个指示符,用于表示左侧缓冲器和右侧缓冲器。在此情况下,从根节点开始平衡树的搜索操作。将节点缓冲器的编号与目标缓冲器的编号进行比较以确定目标缓冲器位于两个分支中的哪一个。因此,通过重复确认操作而进行搜索操作。在此情况下,平衡树44上的每个节点的缓冲器可存储有效的数据,并选择的存储一个或多个连续的数据块。
图6示出了自由表46的结构。对自由表46分别提供不同尺寸的缓冲器。自由表46-1为具有α千字节(KB)的缓冲器的表。自由表46-2为具有β千字节的表。具有一个或多个块的释放缓冲器被与右端的其中一个自由表A相连。在将缓冲器插入到平衡树中时,位于左侧端的缓冲器被从自由表释放并被使用。剩余的缓冲器与相连缓冲器的数据标题部相连。
当访问磁盘18上的文件时,首先搜索平衡树44以确定在平衡树44上是否存在被请求的数据。当未发现被请求的数据时,在自由表46中找到缓冲器以满足被请求数据的尺寸。此时,被找到的缓冲器的尺寸大于请求数据的尺寸并与请求数据的尺寸最接近。然后,将被请求数据从文件存储到所找到的缓冲器中。将被使用的块的标题地址和最后的地址存储进平衡树44上的缓冲器中。在此情况下,可同时进行无失缓冲器控制和高速文件存取。
下面将描述平衡树的缓冲状态。其工作具有三种情况。
情况1:当系统被运行且文件被删除时无需将缓冲器中的数据遗留在平衡树上。因此,在释放状态在缓冲器中无有效数据,而缓冲器只与其中的一个自由表相连。
情况2:存在这样的一种情况,即在该情况下平衡树上的缓冲器中的数据被程序所使用。例如,在复制操作中缓冲器中的数据被使用。在此情况下,缓冲器只与平衡树相连,这是因为在缓冲器中只使用有效数据。
情况3:在该情况下,平衡树上的缓冲器中的数据未被程序所使用。例如,与上述的情况1和2所不同的是,有效数据位于缓冲器中。在此情况下,由于在释放状态有效数据位于平衡树上的缓冲器中,缓冲器被与平衡树和自由表相连。
接着,将参考图7到图10对根据本发明的第一实施例的高速缓冲存储器装置进行描述。
在高速缓冲存储器中存在四个工作模式。第一个工作模式是,在平衡树上的缓冲器中存在被请求的数据。第二中工作模式是,在平衡树中不存在被请求数据。第三种工作模式是,在平衡树上的其中一个缓冲器中存在部分被请求数据。第四中情况是,在平衡树上的多个缓冲器中存在被请求数据。
在图7的流程图中,当从CPU16发出数据获取请求时(步骤S1),图4的高速缓冲存储器装置23的请求接收部分24接收此请求。平衡树搜索部分26通过缓冲器控制部分40对应数据获取请求访问高速缓冲存储器38。因此,平衡树搜索部分26搜索平衡树并确定由块的数量表示的被请求数据是否存在于平衡树上的缓冲器中(步骤S2)。
当在平衡树上的任何一个缓冲器中存在被请求数据时,其确定在平衡树上的单个缓冲器中是否存在部分被请求数据(步骤S3)。如果在单个缓冲器中不存在部分被请求数据,则接着确定在平衡树上的多个缓冲器中是否存在被请求数据(步骤S4)。如果在平衡树上的多个缓冲器中不存在被请求数据,则确定上述的被请求数据存在于平衡树上。因此,使用当前现存的缓冲器(步骤S5)。即,从缓冲器中读出有效数据。在此情况下,平衡树的状态不会发生变化。此操作等同于上述的第一工作模式。
当在步骤S2中确定在平衡树上的缓冲器中不存在被请求数据时,则执行图8中的流程。在此流程中,最优缓冲器搜索部分30和被释放缓冲器搜索部分28通过缓冲器控制部分40访问高速缓冲存储器38以开始对自由表46的搜索操作。
在自由表搜索操作中,最优缓冲器搜索部分30搜索自由表46以确定其中的一个自由表46。即,将自由表的缓冲器尺寸最小的一个设定为暂时缓冲器尺寸(步骤S21)。接着,最优缓冲器搜索部分30将被请求数据的尺寸与暂时缓冲器尺寸进行比较(步骤S22)。当被请求数据的尺寸大于暂时缓冲器尺寸时,最优缓冲器搜索部分30搜索下一个最小缓冲器尺寸的自由表的标题部分,并设定作为暂时缓冲器尺寸(步骤S23)。然后,再次进行步骤S22以将暂时缓冲器尺寸与被请求数据尺寸进行比较。重复进行上述的步骤S22和S23直到找到缓冲器尺寸大于被请求数据尺寸的自由表为止。
当在步骤S22中找到缓冲器尺寸大于被请求数据的尺寸的自由表时,释放缓冲器搜索部分28搜索被寻找的自由表以确定被释放的缓冲器是否与被找到的自由表相连。即,释放缓冲器搜索部分28确定是否找到释放缓冲器(步骤S24)。当在步骤S24中未找到释放缓冲器时,其确定是否存在一个用于缓冲器的具有更大缓冲器尺寸的自由表(步骤S26)。当存在一个用于缓冲器的具有更大尺寸的自由表时,搜索自由表(步骤S27),并确定在自由表中是否存在被释放的缓冲器(步骤S24)。当确定被释放的缓冲器存在于自由表中时,缓冲器插入和删除部分32保留并插入释放的缓冲器到平衡树中。然后,缓冲器被用于将数据通过输入和输出控制部分36存储到缓冲器中的磁盘中(步骤S25)。此操作等同于上述的第二工作模式。如果在步骤S26中未发现任何的有用的缓冲器,程序进入到休眠状态直到释放了任何的有用的缓冲器时为止(步骤S28)。
接着,当在图7的步骤S3中确定在平衡树上的缓冲器中存在被请求数据的一部分时,执行图9中的流程。
即,释放缓冲器搜索部分28、最优缓冲器搜索部分30和缓冲器插入和删除部分32通过缓冲器控制部分40访问高速缓冲存储器38。此时,最优缓冲器搜索部分30如图8的流程所示确定缓冲器尺寸与被请求数据尺寸相符合的一个自由表46。同时,释放缓冲器搜索部分28搜索与被确定的自由表相连的释放缓冲器,如图8中的流程所示。同时,缓冲器插入和删除部分32首先将存储在缓冲器中的数据通过输入和输出控制部分36写到磁盘18上(步骤S31)。然后,缓冲器插入和删除部分32从平衡树释放和删除缓冲器,并将缓冲器与和被释放缓冲器具有相同缓冲器尺寸的其中的一个自由表46相连。然后,缓冲器插入和删除部分32将通过释放缓冲器搜索部分28搜索的新的缓冲器从由最优缓冲器搜索部分30确定的自由表的左端移走。因此,保留了新的缓冲器,而缓冲器插入和删除部分32将新的缓冲器与平衡树相连。即,将新的缓冲器插入到平衡树中(步骤S33)。将被请求数据通过输入和输出控制部分36存储进新缓冲器中。此操作等同于上述的第三工作模式。
接着,当在图7的步骤S4中确定在平衡树上的多个缓冲器中存在被请求数据时,执行图10中的流程。
即,释放缓冲器搜索部分28、最优缓冲器搜索部分30和缓冲器插入和删除部分32通过缓冲器控制部分40访问高速缓冲存储器38。此时,如图8的流程所示,最优缓冲器搜索部分30确定缓冲器尺寸与被请求数据相匹配的其中的一个自由表46。同时,释放缓冲器搜索部分28搜索与被确定的自由表相连的释放缓冲器,如图8中的流程所示。然后,缓冲器插入和删除部分32首先将存储在多个缓冲器中的数据通过输入和输出控制部分36存储进磁盘18中(步骤S41)。然后,缓冲器插入和删除部分32释放并删除所有的多个缓冲器(步骤S42)。然后,缓冲器插入和删除部分32将由释放缓冲器搜索部分28搜索的新的缓冲器从通过最优缓冲器搜索部分30确定的自由表的左端移走。然后保留新的缓冲器,而缓冲器插入和删除部分32将新的缓冲器与平衡树相连。即,将新的缓冲器插入到平衡树中(步骤S43)。将被请求数据通过输入和输出控制部分36存储进新的缓冲器中。此操作等同于上述的第四工作模式。
接着,将详细描述上述四个工作模式的中的平衡树的状态。首先,假设平衡树44的初始状态为图11中所示的状态。
在第一种工作模式中,使用在平衡树上存在的缓冲器。因此,平衡树的状态不发生变化。然而,存储数据的缓冲器的内容被更新。
在第二种工作模式中,假设被请求数据存在于块75到78中。因此,此数据不存在在图11的平衡树上。为此,从其中的一个自由表释放并保留尺寸大于被请求数据尺寸并与被请求数据尺寸最接近的缓冲器。将被保留的缓冲器插入到平衡树中,如图12中所示。此时,缓冲器控制部分40将被插入缓冲器的作为指示符的标题地址写入到具有块57到58的缓冲器中。
在第三种工作模式中,假设被请求数据在块15到17中。此被请求数据存在于图11的平衡树上的具有块15到18的单个缓冲器中。因此,将被存储在具有块15到18的缓冲器中的所有的数据一次存储到磁盘18上然后从平衡树释放和删除平衡树。然后,保留尺寸大于被请求数据且尽可能小的新的缓冲器。将被保留的缓冲器插入到平衡树中,如图13中所示。然后,将块15到17的数据写入到被插入的缓冲器中。在此情况下,另外的一个程序可使用已经被存储到磁盘上的块18的数据。
在第四种工作模式中,假设被请求数据位于块165到167中。此请求数据存在于图11的平衡树中的具有块165和166的缓冲器中和具有块167和168的缓冲器中。因此,这些被存储进两个缓冲器中的数据被存储在磁盘18上,然后从平衡树释放和删除两个缓冲器,如图14中所示。然后,保留尺寸大于被请求数据尺寸和尺寸尽可能小的缓冲器。将被保留的缓冲器插入到平衡树中,如图15中所示。然后,将被请求数据写入到具有块165和167的缓冲器中。通过上述的过程,在图11的平衡树中必须搜索块165到167的被请求数据的两个节点。然而,在图15的平衡树中,必须增大搜索速度。这是因为只搜索一个节点。同时,另外一个程序可使用已经被存储在磁盘18上的块165到167的数据。
如上所述,通过平衡树重复进行缓冲器的插入和删除操作。此时,存在这样的一种情况,即平衡树的平衡性降低。即,从根节点到页节点的层的深度变的不同,即不均匀。在此情况下,当平衡树的平衡性降低时,搜索树的搜索时间较长。为此,需要在适宜的时间修正平衡树的平衡。
接着,将描述根据本发明的第二实施例的在高速缓冲存储器装置中的平衡树的修正操作。根据本发明的第二实施例的高速缓冲存储器装置具有图4中所示的结构。
现在假设平衡树处于图16中所示的状态。同样,假设在图17中所示的平衡树中保留并插入具有块148到150的新的缓冲器。其结果,产生平衡树的非平衡性。在图17中,用虚线围住非平衡部分。由于此种的非平衡性会增大平衡树的搜索时间,因此不希望发生此情况。同时,当从平衡树删除缓冲器时也会发生平衡树的非平衡性。在出现下面两种情况中的一种情况时,进行平衡树的非平衡的修正操作。
(1)如果在插入或删除缓冲器时产生了平衡树的非平衡性,立即对平衡树进行修正以消除非平衡。当存在很少的修正部分时适合应用此方法。
(2)当在不同的部分上进行插入和删除操作时,在CPU16的空闲时间进行修正操作。当在CPU的空闲时间进行修正操作时,根据CPU16的空闲时间的长度适宜的选择是进行整体的修正还是进行部分修正。
修正操作按如下的方式进行:
首先,平衡树搜索部分26搜索非平衡部分。然后,平衡树修正部分34改变缓冲器的指示符,从而从根节点到叶节点的层数或深度变的尽可能的均匀。例如,具有块40和41的缓冲器具有指向具有块198到200的缓冲器的指示符。因此,指示符被改变指向具有块100和101的缓冲器。图16示出在对图17的平衡树进行修正以消除非平衡的平衡树。从具有块40和41的缓冲器到具有块9和10的缓冲器的层数为4。同样,从具有块40和41的缓冲器到具有块57和58的缓冲器的层数为4。因此,层的深度变的均匀,以消除非平衡。
如上所述,根据本发明,可使高速缓冲存储器的长度变化且采用平衡树。因此,可高速的访问具有可变尺寸的数据。
Claims (21)
1.一种高速缓冲存储器装置,包含:
一个存储数据的存储部分;
高速缓冲存储器,其存储平衡树和自由表,包含数据的缓冲器被在所述平衡树中作为节点分级提供,并分别提供具有不同尺寸的所述自由表,当存在至少一个自由缓冲器时,每个所述自由表包含所述至少一个自由缓冲器;以及
控制部分,其响应数据请求,根据所述数据请求部分所请求的数据的尺寸搜索所需缓冲器的所述自由表,当在所述平衡树中不存在所述被请求的数据时,控制部分将所述所需的缓冲器加到所述平衡树中将所述被请求数据从所述存储部分存储进所述所需的缓冲器中,其中在尺寸大于或等于所述被请求数据的尺寸的所述自由表中,所述所需的缓冲器是最小的缓冲器。
2.根据权利要求1所述的高速缓冲存储器装置,其特征在于当存在至少一个所述自由缓冲器时,每个所述自由表包含一个表示所述尺寸的标题部分和至少一个与所述标题部分相连的自由缓冲器,其中所述控制部分:
(a)根据所述被请求数据尺寸搜索所述自由表的所述标题部分,以找出被提供给具有大于所述被请求数据尺寸的其中尺寸最小的一个所述自由表,
(b)确定所找出的所述自由表是否包含至少一个所述自由缓冲器,
(c)当确定所发现的所述自由表不包含至少一个所述自由缓冲器时,为另外一个作为被寻找所述自由表的最小尺寸的所述自由表设定另外一个所述自由表,及
(d)当通过搜索操作或重复设定操作而确定所寻找的所述自由表包含至少一个所述自由缓冲器时,将被包含在所寻找的所述自由表中的所述自由缓冲器设定作为所述所需的缓冲器。
3.根据权利要求1所述的高速缓冲存储器装置,其特征在于当在所述平衡树的所述包含数据的缓冲器中存在至少部分所述被请求的数据时,所述控制部分从所述平衡树释放和删除其中一个所述包含数据的缓冲器,同样,根据所述被请求数据的尺寸所述控制部分搜索所述所需缓冲器的所述自由表。
4.根据权利要求3所述的高速缓冲存储器装置,其特征在于所述控制部分根据所述包含被删除数据的缓冲器的尺寸将所述包含被删除数据的缓冲器作为所述自由缓冲器加入到其中的一个所述自由表中。
5.根据权利要求3所述的高速缓冲存储器装置,其特征在于所述控制部分根据所述被请求数据的尺寸、所述自由表的尺寸和是否至少一个所述自由缓冲器与每个所述自由表相连的情况从所述自由表搜索所述所需的缓冲器。
6.根据权利要求5所述的高速缓冲存储器装置,其特征在于当在所述平衡树的所述包含数据的缓冲器中存在至少部分所述被请求的数据时,所述控制部分从所述平衡树释放和删除多个所述包含数据的缓冲器,所述控制部分根据所述被请求数据的尺寸搜索所述所需的缓冲器的所述自由表。
7.根据权利要求6所述的高速缓冲存储器装置,其特征在于所述控制部分根据每个所述包含被删除数据的缓冲器的尺寸将所述包含被删除数据的缓冲器作为所述自由缓冲器加入到其中的一个所述自由表中。
8.根据权利要求6所述的高速缓冲存储器装置,其特征在于所述控制部分根据所述被请求数据的尺寸、所述自由表的尺寸和至少一个所述自由缓冲器是否与每个所述自由表相连从所述自由表搜索所述所需的缓冲器。
9.根据权利要求1到8中的任何一个权利要求所述的高速缓冲存储器装置,其特征在于所述控制部分对所述平衡树进行修正,从而在所述平衡树的所述节点中从根节点到叶节点的深度尽量的均匀。
10.根据权利要求9所述的高速缓冲存储器装置,其特征在于所述控制部分以预定的时间或在所述控制部分的空闲时间进行所述修正操作。
11.根据权利要求1到8中的任何一个权利要求所述的高速缓冲存储器装置,其特征在于将所述高速缓冲存储器应用到切换装置中。
12.一种高速缓冲存储方法,其特征在于包含:
确定在平衡树中是否存在一个特定的数据请求,缓冲器被分级作为节点提供到所述平衡树中;
当确定在所述平衡树中不存在所述被请求的数据时,根据所述被请求数据的尺寸,从具有不同尺寸的自由缓冲器中搜索所需的缓冲器,在尺寸大于或等于所述被请求数据的尺寸的所述自由表中,所述所需的缓冲器是最小的缓冲器;
将所述所需的缓冲器加入到所述平衡树中;及
将所述被请求数据从存储部分存储进所述所需的缓冲器中。
13.根据权利要求12所述的高速缓冲存储方法,其特征在于所述搜索包含:
(a)在所述被请求数据尺寸的基础上寻找其中的一个所述自由表,其中所述被寻找的自由表的尺寸是大于所述被请求数据尺寸的所述自由表中的尺寸最小的一个,
(b)确定被寻找到的所述自由表是否包含至少一个所述自由缓冲器,
(c)当确定被寻找的所述自由表不包含至少一个所述自由缓冲器时,设定下一个作为被寻找所述自由表的所述最小尺寸自由表,及
(d)当在寻找操作(a)之后或重复设定操作(c)之后确定所寻找的所述自由表包含至少一个所述自由缓冲器时,将包含在所寻找所述自由表中的所述自由缓冲器设定作为所述所需的缓冲器。
14.根据权利要求12所述的高速缓冲存储方法,其特征在于高速缓冲存储方法可包含如下步骤:
当在所述平衡树的所述包含数据的缓冲器中存在所述被请求的数据时,从所述平衡树释放和删除其中的一个所述包含数据的缓冲器;
根据所述被请求数据的尺寸搜索所述所需缓冲器的所述自由表。
15.根据权利要求14所述的高速缓冲存储方法,其特征在于该方法还包含:
根据所述包含被删除数据的缓冲器的尺寸将所述包含被删除数据的缓冲器作为所述自由缓冲器加入到其中的一个所述自由表中。
16.根据权利要求14所述的高速缓冲存储方法,其特征在于该方法还包含:
根据所述被请求数据的尺寸、所述自由表的尺寸和所述至少一个自由缓冲器是否与每个所述自由表相连从所述自由表搜索所述所需的缓冲器。
17.根据权利要求12所述的高速缓冲存储方法,其特征在于当在所述平衡树的所述包含数据的缓冲器中存在所述被请求的数据时,从所述平衡树释放和删除所述包含数据的缓冲器;
同时根据所述被请求数据的尺寸搜索所述所需的缓冲器的所述自由表。
18.根据权利要求17所述的高速缓冲存储方法,其特征在于该方法还包含:
根据每个所述包含被删除数据的缓冲器的尺寸将所述包含被删除数据的缓冲器作为所述自由缓冲器加入到所述自由表中。
19.根据权利要求17所述的高速缓冲存储方法,其特征在于该方法还包含:
根据所述被请求数据的尺寸、所述自由表的尺寸和至少一个所述自由缓冲器是否与每个所述自由表相连从所述自由表搜索所述所需的缓冲器。
20.根据权利要求12到19中的任何一个权利要求所述的高速缓冲存储方法,其特征在于该方法还包含:
对所述平衡树进行修正,从而在所述平衡树的节点中从根节点到叶节点的深度尽量的均匀。
21.根据权利要求20所述的高速缓冲存储方法,其特征在于以预定的时间或在所述控制部分的空闲时间进行所述修正操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05795999A JP3543661B2 (ja) | 1999-03-05 | 1999-03-05 | 交換機ファイルシステムにおけるバッファキャッシュ方法および装置 |
JP057959/1999 | 1999-03-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1266229A CN1266229A (zh) | 2000-09-13 |
CN1208725C true CN1208725C (zh) | 2005-06-29 |
Family
ID=13070568
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB001030329A Expired - Fee Related CN1208725C (zh) | 1999-03-05 | 2000-03-01 | 缓冲器高速缓冲方法及其装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6549982B1 (zh) |
JP (1) | JP3543661B2 (zh) |
CN (1) | CN1208725C (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100528967B1 (ko) * | 2002-12-18 | 2005-11-15 | 한국전자통신연구원 | 가변 길이의 패킷 저장을 위한 메모리 관리 장치 및 방법 |
JP4291664B2 (ja) * | 2003-10-14 | 2009-07-08 | 株式会社日立製作所 | 通信バッファ予約機能を備えるストレージ装置およびシステム |
US7644239B2 (en) | 2004-05-03 | 2010-01-05 | Microsoft Corporation | Non-volatile memory cache performance improvement |
US7490197B2 (en) | 2004-10-21 | 2009-02-10 | Microsoft Corporation | Using external memory devices to improve system performance |
US8914557B2 (en) | 2005-12-16 | 2014-12-16 | Microsoft Corporation | Optimizing write and wear performance for a memory |
US8032675B2 (en) * | 2005-12-28 | 2011-10-04 | Intel Corporation | Dynamic memory buffer allocation method and system |
KR101300657B1 (ko) * | 2007-07-06 | 2013-08-27 | 삼성전자주식회사 | 비휘발성 메모리 및 버퍼 메모리를 포함하는 메모리 시스템및 그것의 데이터 읽기 방법 |
US9032151B2 (en) | 2008-09-15 | 2015-05-12 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US7953774B2 (en) | 2008-09-19 | 2011-05-31 | Microsoft Corporation | Aggregation of write traffic to a data store |
JP6383289B2 (ja) * | 2014-12-29 | 2018-08-29 | 三菱電機インフォメーションネットワーク株式会社 | 入力ファイル処理装置、入力ファイル処理プログラム及び入力ファイル処理方法 |
KR102610846B1 (ko) * | 2016-05-13 | 2023-12-07 | 한국전자통신연구원 | 고속 분산 저장 장치 및 방법 |
JP6936592B2 (ja) * | 2017-03-03 | 2021-09-15 | キヤノン株式会社 | 演算処理装置およびその制御方法 |
GB2595265A (en) * | 2020-05-20 | 2021-11-24 | Imagination Tech Ltd | Memory for storing data blocks |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0239343A (ja) | 1988-07-29 | 1990-02-08 | Fujitsu Ltd | 送受信バッファリング制御方式 |
JPH05158792A (ja) | 1991-12-03 | 1993-06-25 | Oki Electric Ind Co Ltd | キャッシュバッファの一括読込み方式 |
JPH07210365A (ja) | 1994-01-24 | 1995-08-11 | Ricoh Co Ltd | 画像形成装置 |
JPH07311710A (ja) | 1994-05-17 | 1995-11-28 | Mitsubishi Electric Corp | コンピュータのバッファキャッシュ管理方法 |
US5758149A (en) * | 1995-03-17 | 1998-05-26 | Unisys Corporation | System for optimally processing a transaction and a query to the same database concurrently |
JPH1069429A (ja) | 1996-04-09 | 1998-03-10 | Fujitsu Ltd | バッファ割当て管理装置およびバッファ割当て管理プログラム |
US5778430A (en) | 1996-04-19 | 1998-07-07 | Eccs, Inc. | Method and apparatus for computer disk cache management |
-
1999
- 1999-03-05 JP JP05795999A patent/JP3543661B2/ja not_active Expired - Fee Related
-
2000
- 2000-02-29 US US09/516,167 patent/US6549982B1/en not_active Expired - Fee Related
- 2000-03-01 CN CNB001030329A patent/CN1208725C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1266229A (zh) | 2000-09-13 |
US6549982B1 (en) | 2003-04-15 |
JP2000259468A (ja) | 2000-09-22 |
JP3543661B2 (ja) | 2004-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1208725C (zh) | 缓冲器高速缓冲方法及其装置 | |
CN1292370C (zh) | 从源系统复制信息到目标系统的方法 | |
KR102034833B1 (ko) | 플래시 저장장치의 내부 병렬성을 이용하는 키 값 기반의 데이터 액세스 장치 및 방법 | |
US8484548B1 (en) | Anchor tag indexing in a web crawler system | |
US20050262306A1 (en) | Hybrid-cache having static and dynamic portions | |
CN1940922A (zh) | 一种提高搜索信息速度的方法及系统 | |
US20100199027A1 (en) | System and method of managing indexation of flash memory | |
CN1462004A (zh) | 用于产生和使用改进的树形位图数据结构的方法和装置 | |
CN1664790A (zh) | 增加数据存储容量的方法和装置 | |
CN1955948A (zh) | 用于管理高速缓存数据的数字数据处理设备和方法 | |
CN1755636A (zh) | 用于在实时与虚拟化操作系统之间共享资源的系统和方法 | |
CN1309354A (zh) | 用于持久和稳固的存储设备分配的系统和方法 | |
US10642817B2 (en) | Index table update method, and device | |
JP3570323B2 (ja) | アドレスに関するプレフィクスの格納方法 | |
US20160147670A1 (en) | Page cache device and method for efficient mapping | |
CN113553476B (zh) | 一种利用哈希减少写停顿的键值存储方法 | |
CN100338607C (zh) | 一种组织和访问分布式文件系统目录的方法 | |
CN1823327A (zh) | 信息记录介质的数据区域管理方法、使用数据区域管理方法的信息处理装置 | |
JPS62113234A (ja) | レコ−ドセツト分類方法 | |
US7058766B2 (en) | Method and system of adaptive replacement cache with temporal filtering | |
JPH07152646A (ja) | 記憶階層レベル間での交換のコヒーレンシー管理方法 | |
Zhao et al. | Wipdb: a write-in-place key-value store that mimics bucket sort | |
CN1542627A (zh) | 减少快取储存器标签阵列存取动作的系统及其方法 | |
CN1753389A (zh) | 波长路由光网络的实时软抢占方法 | |
CN116594562A (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20050629 Termination date: 20110301 |