[发明专利]排序数组元素以优化数组修改的计算机系统及方法无效
申请号: | 01125741.5 | 申请日: | 1998-01-06 |
公开(公告)号: | CN1339744A | 公开(公告)日: | 2002-03-13 |
发明(设计)人: | R·E·约翰森 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F12/06 | 分类号: | G06F12/06 |
代理公司: | 中国专利代理(香港)有限公司 | 代理人: | 王勇,王忠忠 |
地址: | 美国*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 排序 数组 元素 优化 修改 计算机系统 方法 | ||
本发明总的来说涉及计算机与数据处理系统中实现的数组数据结构,特别是涉及在诸如存储器压缩的应用中对数据结构的操作。
数组是一种常见的数据结构,在计算机或其它数据处理系统中用来存储数据。在数组数据结构中通常把多个数组元素放到一个列表中,通过一个唯一的索引访问每个数组元素。例如,许多计算机存储器系统都以数组来管理,各个存储器单元或一组存储器单元都可被作为数组元素,每一元素都有对之索引的唯一的一个存储器地址。
使用数组数据结构的最主要的优点是它能随机访问,比如能通过指向元素的指针或索引快速访问每一元素。但其缺点是很难有一种高效的方法对改变整个数组大小的修改进行处理。特别是人们希望能对任一数据结构进行紧致存放,只利用所必须的存储器空间。所以,一旦数组被修改,如删除或增加元素,或者是对支持可变大小的数组元素的数组进行修改,改变元素的大小,跟在被修改元素后的每一个元素通常也要修改或移动其在内存的位置。但是移动数组元素是一个费时的内存传输操作,从而降低存储器系统的效率。
另外,每一个数组元素可以用未使用过的存储单元来“填充”,因此可以在不影响数组中随后元素的起始元素地址的情况下,允许元素“变大”或“缩小”。但是这种技术会由于数组中存在尚未使用的存储器而极其浪费。而且这种技术既无法适应数组元素的删除与增加,也无法对溢出了可用填充的较大的数组元素进行修改。
数组一个重要的应用是存储器压缩,这种应用需要高存储密度及快速的存储器传送操作。在一些存储器压缩应用中,数据页被安排成块的数组,然后把块压缩成帧,以减少内存占用量,在对压缩的数据进行修改后,再次对它们进行压缩。不论帧中的数据何时被修改,帧必须重新压缩,这通常改变了帧大小及/或帧中存储的信息量。该页中跟在重新压缩的帧之后的每一帧也通常被更新,例如移动或重压缩,从而优化该页的压缩。当存储在靠近一页的开始的帧中的数据被修改时,通常该页中绝大部分或所有帧都被更新,这对该存储器系统中的总的性能有很显著的影响。
因此减小修改数组中的元素所引起的性能降低是一个实际的问题,特别是在存储器压缩或其它类似应用中。
本发明解决现有技术中在提供维护数组的方式方面有关的这些以及其它问题,该数组通常由一种排序算法对其元素进行排序,该算法至少部分依赖于那些元素有可能被修改的所预测的频率。具有较高修改频率的数组元素放在靠近数组尾部的地方,以便响应对这些元素的修改将通常需要更新的数组元素数减至最小。对于那些具有较小修改可能性的数组元素,保留了需要更新较多数组元素的数组元素修改。这样,响应任一数组元素的修改需要更新的数组元素的平均数目,对于该数组在整体上减少了,从而减少了数组修改的整体性能影响。
本发明还不限于此,它的一个特殊的有益的应用是在存储器压缩领域,这是因为邻近内存逻辑页开始位置的数据要比邻近该页末端位置的数据改变得频繁。对于一个给定页将数据块以倒序排列,无论一个数据块何时被修改,必须要被更新的块的平均数减至最小。
突出本发明特征的这些以及其它优点与特点在随后的 提出,并作为其中的一部分。但为了更好地理解本发明及其通过其应用所带来的优点及其特色,将参照附图及说明来描述本发明,其中描述了本发明的实施例。
图1为描述一个数组中对元素进行各种修改时的框图。
图2为一个计算机系统的框图,它与本发明的原则相一致。
图3是图2中计算机系统的内存映象框图。
图4是描述图2计算机系统的内存逻辑页的框图。
图5是描述图1中计算机系统的一个建立表的项与一个逻辑块数组之间的映射框图。
图6是显示对图5中逻辑块数组进行了一种示例的数据修改后所得的结果的框图。
本发明示意性实施例通常是通过对数值元素进行排序来操作的,这种排序是根据预测的数组元素被修改的有关频率进行的,它允许修改数组元素,这种修改影响到数组尾部的后续元素,从而减少了由于修改数组中的任一给定元素而影响到的数组元素的平均数。特别是最好经常维护在连续内存空间的数组元素,在元素之间很少或几乎没有未使用的空间。从而减小数组占用的存储量。应该可以理解,一个数组的连续存储空间在一定程度上可以是非连续的,即逻辑存储位置可以被映射到固定大小的分区上,比如在随后结合所示意的实施例所讨论的压缩数据分区所示出的。
对可以影响随后数组元素的数组元素修改操作一般包括删除数组元素及增加新的数组元素。而且,对于支持可变长数组元素的数组来说,另一种修改操作还包括改变数组元素的大小。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/01125741.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:包含固定纤维的织物的表面整理
- 下一篇:聚硅氧烷涂布的防水织物