CN100565476C - 存储器碎片整理的数据处理系统和方法 - Google Patents

存储器碎片整理的数据处理系统和方法 Download PDF

Info

Publication number
CN100565476C
CN100565476C CNB2006800036933A CN200680003693A CN100565476C CN 100565476 C CN100565476 C CN 100565476C CN B2006800036933 A CNB2006800036933 A CN B2006800036933A CN 200680003693 A CN200680003693 A CN 200680003693A CN 100565476 C CN100565476 C CN 100565476C
Authority
CN
China
Prior art keywords
fifo
address realm
address
storage arrangement
storer
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
CNB2006800036933A
Other languages
English (en)
Other versions
CN101164049A (zh
Inventor
马克·J·G·贝库依
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN101164049A publication Critical patent/CN101164049A/zh
Application granted granted Critical
Publication of CN100565476C publication Critical patent/CN100565476C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Communication Control (AREA)

Abstract

在基于流的通信环境中提供了一种数据处理系统。该数据处理系统包括:至少一个处理单元(PU1、PU2),用于对多个处理任务(j1-j5)进行基于流的处理;存储器装置(MEM),具有地址范围;多个FIFO存储器,所述多个FIFO存储器分别映射到存储器装置(MEM)的地址范围的一部分。每个FIFO与所述多个处理任务(j1-j5)之一相关联,以便能够进行通信。提供了地址转换单元(ATU),用于识别存储器装置(MEM)中当前未由所述多个FIFO使用的地址范围,并将至少一个FIFO的地址范围移到存储器装置(MEM)中当前未使用的地址范围。

Description

存储器碎片整理的数据处理系统和方法
技术领域
本发明涉及一种包括至少一个处理单元和存储器的数据处理系统,以及一种针对数据处理系统内的存储器碎片整理的方法。
背景技术
在现代嵌入式系统中,尤其是在用于流处理的嵌入式系统中,可用(片上)存储器的管理对于其整体性能非常重要。典型地,提供存储器管理器来管理存储器。基本上通过分配和释放部分存储器的过程来执行管理。可将存储器分为多个块。通过针对n个连续字节的地址空间的请求、以及返回指示这种地址空间的指针,来执行分配。通过在不再需要时释放所指示的地址空间或块来执行释放。此外,存储器管理器跟踪已分配块之间的未分配块或自由块。然而,随着连续的分配和释放,存储器成为碎片,使得由于没有足够的连续地址,新数据不能够写入存储器。
存在多种技术,用于执行存储器的碎片整理,即压缩和碎片收集。压缩技术基于将所有已分配块移到存储器的一端,以便组合所有的自由地址空间。移动已分配块包括复制已分配块中的所有数据。首先计算所有每个块的新位置,已确定块要被移动或复制的距离。然后,通过添加指针所指的块要移动的量,来更新每个指针。其后,移动或复制数据。垃圾收集可以看作自动存储器管理策略,用于识别并移动任何无法到达的存储器空间,并收回该存储器空间。垃圾收集识别不可访问的块,并可通过引用计数(reference counting)、标记和扫描(mark-and-sweep)以及生成算法(generational algorithm),来执行垃圾收集。引用计数在每个块中保持对指向块的指针数目的计数。在计数下降到零时,释放该块。标记和扫描技术包括对所有非垃圾块进行标记、并扫描所有块,并且将未标记的块返回到自由块列表中。扫描通常还包括上述压缩。生成收集包括将存储器分为不同的空间。将所有块复制到新的空间,以释放旧空间,并且可添加到自由块列表中。
US 6,286,016涉及一种数据处理系统,通过动态地扩展并压缩堆栈(heap)来实时收集垃圾。将存储器分为至少两个部分。将一个存储器部分中的可到达存储器块或行复制到第二部分,使得在第一存储器部分中仅剩下无法到达的块或行。由于必须在存储器部分之间复制数据,所以该技术需要额外的带宽和额外的时钟周期。
US 5,218,698涉及一种存储器管理方法,用于通过从存储器中丢弃废弃对象来收集垃圾。识别所有可访问的对象,并将其复制到附加复制空间。因此,需要额外对数据进行复制。
在Lim等的“A memory-efficient real-time non-copying garbagecollector”,SIGPLAN Notices,vol.34,no.3,pp.118-129,1999年3月中,描述了一种垃圾收集器。使用逐页收集来定位自由空间的页,如果需要,在自由列表之间动态地重新分配自由空间的页。虚拟存储器用于动态地将自由页映射到连续范围。这样,将碎片缩减为单个页。如果页数较少,则列表较小,碎片较大。对于较小的碎片,列表将增长,会消耗大量的存储器空间。例如,如果将16M字节的存储器分为100Kb的块,则需要640个条目的列表的存储器空间,而如果将16M字节的存储器分为100字节的块,则需要640000个条目的存储器空间。
上述问题同样出现在具有多个处理单元的数据处理系统中,即多处理器系统,其通过FIFO在多个处理单元之间彼此进行通信。FIFO是一个连续的存储器块,在该存储器块中可分配多个逻辑FIFO。一个处理单元用作产生器,产生数据或将数据写入FIFO,而另一个处理单元用作消耗器,读取或消耗来自FIFO的数据。然而,如果FIFO满或空,则数据的产生或消耗将停止或中断。
特别地,如果处理单元正在处理多个不同的任务或者多个处理单元访问单个FIFO处理器,则在运行时间启动和停止了一些任务,则FIFO处理器成为碎片。每个不同的处理任务需要FIFO处理器的一部分。在一个时间点处,一个任务可停止,该任务不再使用与该任务相关联或为该任务保留的存储器位置,该存储器位置重新变为可用。然而,后续任务可能在上述任务停止之前就已经启动,则该后续任务被分配到上述第二任务之后的存储器地址范围。然而,如果该第二任务停止,则由于两个任务之间的地址范围未由任何任务的数据占据,则存储器变为碎片。因此,可能出现以下情况,即另一任务请求向FIFO存储器进行写访问,但是遭到拒绝,即使在FIFO存储器中有足够的空间,因为该空间未通过公共地址范围相关联,而是FIFO存储器上的碎片。
发明内容
因此,本发明的目的是提供一种数据处理系统以及一种存储器碎片整理方法,其能够通过对可用存储器进行碎片整理,有效地使用可用的存储器,但是不会显著降低性能。
由根据权利要求1所述的数据处理器系统、根据权利要求4所述的存储器碎片整理方法以及根据权利要求5所述的电子设备来实现该目的。
因此,在基于流的通信环境下提供一种数据处理系统。该数据处理系统包括:至少一个处理单元,用于对多个处理任务进行基于流的处理;存储器装置,具有地址范围;以及多个FIFO存储器,所述多个FIFO存储器分别映射到存储器装置的地址范围的一部分。每个FIFO与所述多个处理任务之一相关联,以便能够进行通信。提供地址转换单元,用于识别存储器装置中当前未由所述多个FIFO使用的地址范围,并将至少一个FIFO的地址范围移到存储器装置中当前未使用的地址范围。
因此,可避免复杂的垃圾收集方案,并且无需实际的数据复制,减小了复制数据的开销。此外,在存储器碎片整理期间,不同任务的时间行为不受影响。描述了一种即使不考虑碎片也不需要自由列表的方法。
根据本发明的一个方面,地址转换单元适用于将FIFO的地址范围移到存储器装置中邻接更高或邻接更低的当前未使用的地址范围。
根据本发明的另一个方面,读指针和写指针每个均与FIFO相关联。一旦读指针和写指针达到FIFO的末端,则地址转换单元将每个指针改变为所移到的地址范围。在运行时间,仅更新写和读指针,来执行碎片整理。
本发明还涉及一种在基于流的通信环境中的数据处理系统中的存储器的碎片整理的方法,该数据处理系统具有:至少一个处理单元,用于对多个处理任务进行基于流的处理;存储器装置,具有地址范围;以及多个FIFO存储器,所述多个FIFO存储器分别映射到存储器装置的地址范围的一部分。每个FIFO与所述多个处理任务之一相关联,以便能够进行通信。识别存储器装置中当前未由所述多个FIFO使用的地址范围。将至少一个FIFO的地址范围移到存储器装置中当前未使用的地址范围。
本发明还涉及一种在基于流的通信环境中的电子设备。该电子设备包括:至少一个处理单元,用于对多个处理任务进行基于流的处理;存储器装置,具有地址范围;以及多个FIFO存储器,所述多个FIFO存储器分别映射到存储器装置的地址范围的一部分。每个FIFO与所述多个处理任务之一相关联,以便能够进行通信。提供地址转换单元,用于识别存储器装置中当前未由所述多个FIFO使用的地址范围,并将至少一个FIFO的地址范围移到存储器装置中当前未使用的地址范围。
本发明基于以下理念:改善基于FIFO的媒体流处理环境中的存储器碎片整理。在执行任务时,每次将一个逻辑FIFO的位置移到存储器中的最高/最低空位置。在特定时间周期之后,所有逻辑FIFO均被连续地放置在存储器中。可通过一旦达到FIFO的末端并且出现更高/更低的空位置、则改变FIFO的读/写指针(至更高/更低空位置),来实现位置转移。
附图说明
参考下面所述的实施例,阐述本发明的这些和其它方面,并且本发明的这些和其它方面将显而易见。
图1示出了根据本发明的片上系统的基本构造的框图;以及
图2示出了存储器的碎片的基本表示。
具体实施方式
本发明的优选实施例的构造特别地设计用于处理多处理环境中的连续媒体流,即,该构造设计用于媒体处理应用,能够在运行时间进行重新配置,而不会显著降低性能。这种媒体应用的信号处理包括利用FIFO周期通信行为来进行基于流的处理。有效的逻辑FIFO实现要求一个FIFO的地址范围连续,使得通过FIFO中指针的递增可找到FIFO中的下一个字。
图1示出了根据本发明优选实施例的片上系统的构造的框图。该系统包括第一和第二处理单元PU1、PU2、存储器装置MEM和地址转换单元ATU。第一和第二处理单元PU1、PU2每个均与存储器和地址转换单元ATU相连。存储器装置MEM和地址转换单元ATU也相连。尽管这里示出了两个处理单元,图1的构造也可通过多个处理单元来实现。处理单元PU1、PU2与存储器MEM之间的连接可涉及数据连接或数据总线,而处理单元PU1、PU2经由地址转换单元ATU与存储器装置之间的连接涉及地址连接或地址总线。地址转换单元ATU用于将处理单元PU1、PU2的地址范围转换为存储器装置MEM的地址范围,即将逻辑地址转换为实际物理地址。处理单元PU1、PU2的通信优选地是基于FIFO的,其中FIFO映射到存储器装置MEM,即FIFO是映射到存储器装置MEM的存储器。
可选地,可在处理单元PU1、PU2与存储器装置MEM之间连接切换装置SM(未示出),以便选择处理单元PU1、PU2之一,并将所选的处理单元PU1、PU2连接到存储器装置MEM。附加地或择一地,还可提供资源管理单元RMU(未示出),其与地址转换单元ATU和存储器装置MEM相连。资源管理单元RMU用于管理整个数据处理系统的资源。
图2示出了图1的存储器装置的碎片的基本表示。这里,在三个不同的时刻,即t=x,t=x+y和t=x+y+z,示出了存储器装置MEM中的情况。存储器装置MEM包括从0至70的地址范围AD。每个任务j1-j5与数据处理器系统所处理的流之一的处理相对应,并实现为FIFO。每个任务使用并占用存储器装置MEM的存储空间的一部分。在t=x处,将4个任务的数据存储在存储器装置MEM中。第一任务j1需要10个地址或10个存储器位置,即从1至10。第二任务j2需要20个存储器位置(从10至30),第三任务j3需要20个存储器位置(从30至50),第四任务j4需要10个存储器位置(从50至60)。在t=x+y时,第二任务j2的处理停止,并且不再需要存储器位置10-29,并释放存储器位置10-29。在t=x+y+z时,需要30个连续存储器位置的第五任务j5启动。然而,由于在存储器装置MEM中没有30个连续或连贯的存储器位置,所以拒绝第五任务j5。
为了避免存储器空间成为碎片的问题,在执行任务时,即在运行时间,将与一个任务相关联的一个逻辑FIFO移到存储器装置MEM中最高或最低的未占用位置。这可以在并未实际复制数据的情况下实现。通过在FIFO的末端到达原始位置之后,继续读取或写入新的更靠上的位置,可向上移动任务的FIFO的位置。参考基于图2的情况来描述该方案。在第三任务的数据达到地址49(在t=x+y)之后,将该任务的后续数据连续地写入存储器地址范围10-29。这同样适用于从存储器空间或与第三任务j3相关联的FIFO读取数据的情况。换言之,只要已经访问了FIFO中最后的数据项,并且处理要通过访问FIFO中的第一数据项来继续,则将FIFO的位置改变为邻接(next)靠上(靠下)的自由存储器空间,使得将下一个数据项写入存储器装置中不同的更靠上的地址中。将FIFO的地址范围向上移到FIFO中最后的数据项之后。只要已经将写和读指针移到了地址范围10-29,则可释放先前由第三任务j3占用的存储器范围30-49,并且通过将指针更新为以30开始的地址范围,可由第四任务j4来重新使用该地址范围。一旦移动了第四任务j4的FIFO,则可将第五任务j5的FIFO容纳在存储器装置MEM中。
地址转换单元ATU设计用于监控系统的地址总线。它可检测每个FIFO的末端。一旦达到FIFO的末端,则进行对FIFO的该末端的读/写,将连续读/写的指针(或地址)改变为下一个靠上的自由地址。因此,地址转换单元ATU还必须识别未使用的存储器空间,以确定是否可向上移动FIFO的地址范围,从而成功地避免存储器碎片。根据本实施例,地址转换单元ATU以硬件实现。但是,软件实现也是可以的。
这种实现的伪代码描述如下:
If(wp_base==base+range)
        wp_base=p_base;
wp=wp_base+wp_curr;
wp_curr=(wp_cirr+1)%range;
if(rp==base+range)
        rp_base=p_base;
signal_finish_move();
rp=rp_base+rp_curr;
rp_curr=(rp_curr+1)%range;
在逻辑FIFO中,使用读指针rp和写指针wp。读指针的值仅由消耗方更新,而写指针的值仅由产生方更新。由于只有一个任务更新这些指针,所以不需要使用标志(semaphore)。消耗方和产生方任务当然可以读取两个指针。根据两个指针wp、rp之差和FIFO的字数的容量,可得到FIFO中的数据量以及FIFO中的空间大小。例如,如果令牌大小是一个字,则读指针减去写指针的结果表明在FIFO中存储了多少数据字。FIFO中的空间大于容量-(wp-rp)。通过在指针中保留附加的MSB位,可处理指针rp、wp的围包效应(wrap around effect)。关于更多的信息,参见Lippens等的“A Scalable and Flexible DataSynchronization Scheme for Embedded HW-SW Shared-MemorySystems”,Proceedings of the 14th international symposium on Systemssynthesis (ISSS’01)September 30-October 03,2001,Montreal,Canada。
FIFO起始于在上述伪代码中标记为“base”的特定地址。对FIFO的访问与base有关。在写指针在当前位置wp_curr超过FIFO的末端(base+range)之后,改变指针wp的“base”,即wp_base。这样,将新数据写入存储器中较低的位置,并且FIFO在存储器中向上移动(向地址0移动)。在读指针rp超过(base_range)之后,移动FIFO。给定最小的读数据率,可计算将FIFO移到新位置所花费的时间。
如果令牌大于一个字,则也可根据指针wp和rp来计算FIFO中的令牌个数。FIFO中的令牌个数与floor((wp-rp)/tokensize)相对应。例如,读取令牌中的数据字将改变指针rp,但是并不改变该等式的结果。因此,产生方将知道,未释放任何令牌,并且没有额外空间变得可用。
为了使片上存储器的整体量尽可能地小,优选地尽可能有效地执行所需数据的缓冲。这可通过给要处理的每个流提供缓冲器或FIFO来实现,其中该缓冲器必须能够处理流的峰值带宽需求。可选解决方案是提供单个更大的共享缓冲器,代替多个较小的缓冲器。可通过在处理单元之间切换来执行多个处理单元对缓冲器的访问。然而,为了(确实地)确保针对所有数据流的实时限制(对于音频或视频处理),每个流必须能够在任意时间访问所需量的缓冲器空间。因此,可将缓冲器空间或高速缓存器空间分配给分离的流。
由于不同的数据流彼此独立地工作,并且动态地将高速缓存器或缓冲器空间分配或重新分配给不同的流,所以运行时间期间重新配置不同流非常难,因为不会出现没有任何有效流的单个时刻。
可选地或附加地,可将缓冲器或高速缓存器分为用于基于流的周期性处理的部分,并分为用于随机访问的部分,例如调试器。
本发明的上述原理还可通过电子设备而不是数据处理系统来实现。
应该注意,上述实施例示出而不是限制本发明,并且在不背离所附权利要求的范围的情况下,本领域的技术人员能够设计多种可选实施例。在权利要求中,置于括号之间的任何附图标记均不应该被理解为限制权利要求。单词“包括”并不排除权利要求所列元素或步骤之外的元素或步骤的存在。元素之前的单词“一个”并不排除多个这种元素的存在。在列举了多个装置的设备权利要求中,这些装置中的一些可由同一个硬件项目来实现。唯一的事实是,彼此不同的从属权利要求中的特定措施并不表示这些措施的组合不能够产生有效效果。
此外,权利要求中的任意附图标记均不应该被理解为限制本发明的范围。

Claims (4)

1.一种基于流的通信环境中的数据处理系统,包括:
-至少一个处理单元,用于对多个处理任务进行基于流的处理;
-存储器装置,具有地址范围;
-多个FIFO存储器,所述多个FIFO存储器分别映射到存储器装置的地址范围的一部分;其中,每个FIFO存储器与所述多个处理任务之一相关联,以便能够进行通信;
-地址转换单元,用于识别存储器装置中当前未由所述多个FIFO存储器使用的地址范围,并将至少一个FIFO存储器的地址范围移到存储器装置中当前未使用的地址范围。
2.根据权利要求1所述的数据处理系统,其中
地址转换单元适用于将FIFO存储器的地址范围移到存储器装置中邻接更高或邻接更低的当前未使用的地址范围。
3.根据权利要求2所述的数据处理系统,包括
与FIFO存储器相关联的读指针和写指针,只要读指针和写指针达到FIFO存储器的末端,则地址转换单元将每个指针改变为所移到的地址范围。
4.一种在基于流的通信环境中整理数据处理系统中的存储器的碎片的方法,该数据处理系统具有:至少一个处理单元,用于对多个处理任务进行基于流的处理;存储器装置,具有地址范围;以及多个FIFO存储器,所述多个FIFO存储器分别映射到存储器装置的地址范围的一部分,所述方法包括步骤:
将每个FIFO存储器与所述多个处理任务之一相关联,以便能够进行通信;
识别存储器装置中当前未由所述多个FIFO存储器使用的地址范围;
将至少一个FIFO存储器的地址范围移到存储器装置中当前未使用的地址范围。
CNB2006800036933A 2005-01-31 2006-01-26 存储器碎片整理的数据处理系统和方法 Expired - Fee Related CN100565476C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP05100602.1 2005-01-31
EP05100602 2005-01-31

Publications (2)

Publication Number Publication Date
CN101164049A CN101164049A (zh) 2008-04-16
CN100565476C true CN100565476C (zh) 2009-12-02

Family

ID=36648718

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006800036933A Expired - Fee Related CN100565476C (zh) 2005-01-31 2006-01-26 存储器碎片整理的数据处理系统和方法

Country Status (5)

Country Link
US (1) US20080270676A1 (zh)
EP (1) EP1846828A2 (zh)
JP (1) JP2008529149A (zh)
CN (1) CN100565476C (zh)
WO (1) WO2006079986A2 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101661486B (zh) * 2008-08-28 2012-11-07 国际商业机器公司 对包含虚拟机的宿主机硬盘进行碎片整理的方法和系统
US9397961B1 (en) * 2012-09-21 2016-07-19 Microsemi Storage Solutions (U.S.), Inc. Method for remapping of allocated memory in queue based switching elements

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2633744B1 (fr) * 1988-07-01 1991-02-08 Dassault Electronique Dispositif de memoire vive electronique
US5218698A (en) * 1991-11-22 1993-06-08 Aerojet-General Corporation Garbage collection system for a symbolic digital processor
US5426639A (en) * 1991-11-29 1995-06-20 At&T Corp. Multiple virtual FIFO arrangement
US5301141A (en) * 1992-05-01 1994-04-05 Intel Corporation Data flow computer with an articulated first-in-first-out content addressable memory
US5463776A (en) * 1994-09-22 1995-10-31 Hewlett-Packard Company Storage management system for concurrent generation and fair allocation of disk space among competing requests
GB9510932D0 (en) * 1995-05-31 1995-07-26 3Com Ireland Adjustable fifo-based memory scheme
IL116984A (en) * 1996-01-31 2000-07-26 Galileo Technology Ltd Multiple FIFO array and method of construction thereof
US6094695A (en) * 1998-03-11 2000-07-25 Texas Instruments Incorporated Storage buffer that dynamically adjusts boundary between two storage areas when one area is full and the other has an empty data register
US6286016B1 (en) * 1998-06-09 2001-09-04 Sun Microsystems, Inc. Incremental heap expansion in a real-time garbage collector
US20020078317A1 (en) * 2000-12-19 2002-06-20 Matsushita Electric Industrial Co., Ltd. First-in, first-out (FIFO) memory with moving boundary
JP2004517399A (ja) * 2000-12-22 2004-06-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ フラグメンテーションを減少させるための方法及びシステム
DE60128993T2 (de) * 2001-02-06 2008-02-28 Nortel Networks S.A. Mehrfachratenringpuffer und entsprechendes Betriebsverfahren
US6832303B2 (en) * 2002-01-03 2004-12-14 Hewlett-Packard Development Company, L.P. Method and system for managing an allocation of a portion of a memory
US7007183B2 (en) * 2002-12-09 2006-02-28 International Business Machines Corporation Power conservation by turning off power supply to unallocated resources in partitioned data processing systems

Also Published As

Publication number Publication date
CN101164049A (zh) 2008-04-16
EP1846828A2 (en) 2007-10-24
JP2008529149A (ja) 2008-07-31
WO2006079986A3 (en) 2006-11-16
US20080270676A1 (en) 2008-10-30
WO2006079986A2 (en) 2006-08-03

Similar Documents

Publication Publication Date Title
Rumble et al. Log-structured Memory for {DRAM-based} Storage
US7975114B2 (en) Memory management based on concurrent garbage collection using safepoints
US6308185B1 (en) Methods and apparatus for generational dynamic management of computer memory
EP0993634B1 (en) Method and apparatus for managing hashed objects
US5893121A (en) System and method for swapping blocks of tagged stack entries between a tagged stack cache and an untagged main memory storage
Hertz et al. Garbage collection without paging
US6434577B1 (en) Scalable-remembered-set garbage collection
CN101595460B (zh) 用于收集非托管存储空间的实现
Chang et al. A high performance memory allocator for object-oriented systems
US6868488B2 (en) Binned remembered sets
JP5052512B2 (ja) 仮想マシン環境における予測可能な結果のガベージコレクションのためのシステム及び方法
US7035884B2 (en) Placement of allocation trains in the train algorithm
KR101183009B1 (ko) 메모리 관리
CN102722432B (zh) 追踪内存访问的方法和装置
US20040122875A1 (en) Scalable, space-efficient, parallel remembered-sets
EP1131720A1 (en) Train-algorithm-based garbage collector employing fixed-size remembered sets
JP2006092532A (ja) 最近アクセスしたリソースのデータ局所性の増加
JPS63253445A (ja) データ格納効率の改善方法とシステム
CN101178689A (zh) 一种NAND Flash存储器的动态管理方法
CN1114864C (zh) 动态存贮器空间的分配
US20040088339A1 (en) Efficient encoding of references into a collection set
US7062518B2 (en) Efficiently supporting the existence of long trains in a generation managed by the train algorithm
CN100565476C (zh) 存储器碎片整理的数据处理系统和方法
Wilson Operating system support for small objects
US7155467B1 (en) Adaptive type-partitioned garbage collection

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
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: 20091202

Termination date: 20140126