CN100520736C - 在虚拟机中管理栈的设备和方法 - Google Patents

在虚拟机中管理栈的设备和方法 Download PDF

Info

Publication number
CN100520736C
CN100520736C CNB200710086085XA CN200710086085A CN100520736C CN 100520736 C CN100520736 C CN 100520736C CN B200710086085X A CNB200710086085X A CN B200710086085XA CN 200710086085 A CN200710086085 A CN 200710086085A CN 100520736 C CN100520736 C CN 100520736C
Authority
CN
China
Prior art keywords
memory
stack
stack piece
piece
frame pointer
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
CNB200710086085XA
Other languages
English (en)
Other versions
CN101034374A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN101034374A publication Critical patent/CN101034374A/zh
Application granted granted Critical
Publication of CN100520736C publication Critical patent/CN100520736C/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/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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

提供一种在虚拟机中管理栈的设备和方法。所述设备包括:第一存储器,如果在虚拟机中执行压栈和出栈中的至少一个,则所述第一存储器检查栈块的空间并分配帧指针;和第二存储器,与外部总线连接,并存储通过所述外部总线从第一存储器复制的帧。

Description

在虚拟机中管理栈的设备和方法
本申请以于2006年3月10日在韩国知识产权局提交的第10-2006-0022872号韩国专利申请为基础并要求其优先权,该公开完全包含于此,以资参考。
技术领域
与本发明一致的方法和设备涉及在虚拟机中管理栈。更具体地说,本发明涉及可在对栈执行压栈或者出栈时通过使用与处理器直接连接的存储器来减少栈开销的在虚拟机中管理栈的设备和方法。
背景技术
通常,虚拟机提供保证应用的移动性的标准应用执行环境。这里,这种虚拟机的典型示例是Java虚拟机(JVM)。
Java是一种可以用于产生独立平台代码的面向对象编程语言。Java代码通过Java编译器被编译为Java字节代码,并且JVM执行所述Java字节代码。
图1A示出了一般JVM的结构。
如所示,JVM包括:类加载器11、执行引擎12、方法区13、堆14、Java栈15、个人计算机(PC)寄存器16和本地方法栈17。
类加载器11从网络或者文件系统读取Java类文件,根据包括在类文件中的内部信息将该文件放入存储器中的适当位置,并且初始化内部状态。
作为用于执行类的执行代码的执行引擎12识别并执行JVM机器命令,并在执行的同时将JVM命令转换为中央处理单元(CPU)的机器代码,以提高速度。
图1B示出了传统Java类文件的结构。
如所示,Java类通常以类文件格式被发送或者被存储,并且所述类文件格式包括各种关于类的属性。这里,所述类文件格式包括指示基本属性的类头、管理全部常量的常量池、包括关于类文件的接口的信息的接口、包括关于文件的信息的字段和被存储为字节代码的方法。
图2A示出了用于通过JVM管理Java栈的基本单位。
StackStruct用于管理栈块(chuck),并且StackStruct包括栈的大小和下一栈的指针信息。
FrameStruct用于管理每当调用函数时产生的帧,并且FrameStruct包括关于正在执行的方法的信息、前一帧的指针、前一栈的指针、前一程序计数器、监视器对象和属于当前帧的栈块。
图2B示出了传统栈管理结构。这里,对管理JVM 10中的栈的过程进行描述。当执行压栈和出栈时发生管理栈的过程。
首先,在通过调用类中的函数执行对栈的压栈的情况下,通过检查栈块23的空间来检查是否可以添加帧指针。
随后,如果栈块23的空间不充足,则检查是否存在下一栈块。在不存在下一栈块的情况下,从存储器中的堆区分配新的栈块22。
如果栈块22已经在下一定位中被分配,则栈块22被指定为当前栈块。
随后,在指定的栈块22生成帧指针24,并且指定在最高的帧指针中生成的帧指针24。
随后,当前帧指针24的栈块被指定为分配的区的栈块22。
此外,在通过调用函数执行出栈的情况下,当前帧指针24移动到前一帧指针,例如,帧指针25。
随后,当前帧指针25的栈块被指定为当前帧指针25指向的栈块23。
然而,在以以上所示的方式操作栈的情况下,栈区存在于通过外部总线连接的通用存储区中。
这样,根据传统技术,为了处理存储器中的数据,存储器中的数据应当被读取到寄存器,但是,由于数据是经由外部总线读取的,所以传输速率变得较低,这是一个问题。
第2004-111193号韩国未审查专利(Management of Stack-Based MemoryUsage in a Processor)公开了一种技术,即,确定数据子系统是作为高速缓冲存储器还是禁止从外部存储器的行取(line fetch)的便笺式存储器操作,并对控制位编程以使该数据子系统根据该确定被操作为高速缓冲存储器或是便笺式存储器。然而,该专利没有涉及当读取栈时从与处理器直接连接的存储器,即,不是连接到外部总线的通用存储器中读取数据的技术。
发明内容
本发明示例性实施例克服以上缺点和以上没有描述的其他缺点。此外,不要求本发明克服上述缺点,并且本发明示例性实施例可以不克服上述任何问题。
本发明提供一种在虚拟机中管理栈的设备和方法,所述设备和方法可以通过在直接与处理器连接的存储器中定位虚拟机的栈,缩短访问栈的时间来提高性能。
根据本发明示例性实施例,提供一种用于在虚拟机中管理栈的设备,所述设备包括:第一存储器,如果在虚拟机中执行压栈和出栈中的至少一个,则所述第一存储器检查栈块的空间并分配帧指针;和第二存储器,与外部总线连接,并存储通过所述外部总线从第一存储器复制的帧。
根据本发明另一示例性实施例,提供一种在虚拟机中管理栈的方法,所述方法包括:如果在预定栈内执行压栈,则检查第一存储器中的栈块的空间;如果所述栈块的空间不足,则检查是否存在第二存储器中分配的栈块;如果在第二存储器中存在栈块,则将第一存储器中存储的帧指针复制到第二存储器的栈块;将第一存储器的栈块指定为当前栈块,并给指定的栈块分配新的帧指针;和将帧指针指定为当前帧指针。
根据本发明另一示例性实施例,提供一种在虚拟机中管理栈的方法,所述方法包括:如果在预定栈内执行出栈,则将当前帧指针移到前一帧指针;将当前帧指针指向的栈块指定为当前栈块;检查指定的栈块是否位于第一存储器;如果所述栈块不位于第一存储器,则将所述栈块复制到第一存储器;和将位于第一存储器的栈块指定为当前栈块。
附图说明
通过结合附图对本发明示例性实施例的详细描述,本发明的以上和其他方面将变得更加清楚,其中:
图1A示出了一般Java虚拟机(JVM)的结构。
图1B示出了传统Java类文件的结构。
图2A示出了通过JVM管理Java栈的基本单位。
图2B示出了传统栈管理结构。
图3示出了根据本发明示例性实施例的在虚拟机中管理栈的设备的框图。
图4A、图4B和图4C示出了根据本发明另一示例性实施例的用于在虚拟机中管理栈的设备中管理栈的操作。
图5是示出根据本发明另一示例性实施例的在虚拟机中管理栈的方法中的压栈操作的流程图。
图6是示出根据本发明另一示例性实施例的在虚拟机中管理栈的方法中的出栈操作的流程图。
图7是示出根据本发明另一示例性实施例的通过执行在虚拟机中管理栈的方法得来的测量性能结果的曲线图。
具体实施方式
将参照附图详细描述本发明的示例性实施例。
通过参照以下对示例性实施例和附图的详细描述,本发明将被更加容易地理解。然而,本发明可以以很多不同形式被实施,不应当被理解为限于在此所述的示例性实施例。而是提供了这些实施例,从而本公开将全面和完整,并且本发明的构思将被完全地转达给本领域技术人员,并且本发明仅由权利要求所限定。贯穿说明书,相同的标号指示相同的组件。
以下参照根据本发明示例性实施例的用户接口、方法和计算机程序产品的流程图例示来描述本发明。应该理解,流程图例示的每一个方框和在流程图例示中的方框的组合可由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或者其他可编程数据处理设备的处理器以产生设备,从而经计算机或者其他可编程数据处理设备的处理器执行的指令创建用于实现在一个流程图方框或多个流程图方框中描述的功能的装置。
这些计算机程序指令也可被存储在可指导计算机或者其他可编程数据处理设备以特定方式工作的计算机可用或计算机可读存储器中,以便存储在计算机可用或计算机可读存储器中的指令生产包括执行在一个流程图方框或多个流程图方框中描述的功能的指令装置的产品。
计算机程序指令也可被载入计算机或其他可编程数据处理设备以使得一系列操作步骤在计算机或其他可编程设备上被执行以产生计算机执行的过程,从而在计算机或其他可编程设备上执行的指令提供用于实现在一个流程图方框或多个流程图方框中描述的功能的步骤。
并且,流程图例示的每个方框可表示模块、代码段或代码部分,其包括一个或多个用于实现特定逻辑功能的可执行指令。还应该注意,在一些可选择的实现中,在方框中提到的功能可不按所述顺序发生。例如,根据所涉及的功能,连续显示的两个方框实际上可能基本上同时发生,或者所述方框有时可能以相反的顺序被执行,
图3示出了根据本发明示例性实施例的用于在虚拟机中管理栈的设备的框图。
本发明示例性实施例不限于特定虚拟机,而可被应用于所有类型的虚拟机,诸如,微软公司的普通语言运行时(CLR)和Smalltalk。此外,为了便于描述,在此描述中使用由ARM有限公司生产的紧密耦合存储器(TCM)。然而,本发明的这个示例性实施例不限于TCM,而包括直接与处理器通信的全部类型的存储器。
如所示,ARM926EJ-S微单元300完全兼容,并且包括32位精简指令集计算机(RISC)CPU、灵活的指令大小、数据高速缓存、TCM接口和存储器管理单元(MMU)。
此外,ARM926EJ-S微单元300支持单独指令和数据总线,并且与先进的微控制器总线体系结构(AMBA)数据总线兼容,这与适用于单独指令和基于多层AHB的系统的AHB接口兼容。
此外,ARM926EJ-S微单元300实现指令集,所述指令集包括改进的16×32位多层,并执行单周期操作。这里,所述指令集包括16位定点数字信号处理器(DSP)指令,提高了多信号处理算法和应用的性能,并且支持Java字节代码的执行。
此外,ARM926EJ-S微单元300可执行大多数操作系统和中间件,并且可实现单微控制器单元(MCU)DSP和Java解决方案。此外,提高了Java字节代码的执行效率,消耗非常少的Java功能,并且提高了Java即时(JIT)编译器的性能。ARM926EJ-S微单元300被应用与下一代智能电话、个人数字助理(PDA)、第三代基带、应用处理器、基于平台操作系统的装置、数字静物相机、音频和视频解码器等。
此外,数据TCM(DTCM)(第一存储器)310是用于定位栈块的空间以便提高虚拟机的性能。DTCM包括一个或者多个栈块和帧指针。
此外,DTCM 310是当执行压栈和出栈时使用的存储空间,在用于添加新的帧指针的空间不充足的情况下,存储在DTCM中的帧指针被复制到第二存储器320,并随后分配新的帧指针。
第二存储器320被连接到外部总线(AHB),并且包括多堆区。这里,第二存储器320指的是SDRAM、双倍数据速率SDRAM(DDR SDRAM)或者存储器总线DRAM(RDRAM)。
此外,第二存储器320不存储当前栈块和帧指针,而是存储从DTCM310复制的帧指针。图4A、图4B和图4C显示了在存在于TCM区的堆区和第二存储器的堆区中管理栈的过程。
由此,本发明的示例性实施例管理在ARM926EJ-S的DTCM(第一存储器310)中使用的栈(或者帧指针),因此,快速执行提高性能的虚拟机的操作。
图4A、图4B和图4C示出了根据本发明另一示例性实施例的用于在虚拟机中管理栈的设备中的管理栈的操作。这里,TCM区包括一个或者多个栈块和帧指针。
如图4A中所示,在通过调用函数执行压栈的情况下,检查TCM区的栈块,以便确定是否可添加新的帧指针(例如,图4C中的标号450)。
在因为当前栈块的空间不足而不能添加帧指针的情况下,检查是否存在已经在下一堆区(例如标号420)分配的栈块。这里,在下一堆区分配的栈块应当具有用于存储已经被存储在TCM 410中的帧指针412到414的充足空间。
在没有已经被分配给下一堆区(例如标号420)的栈块的情况下,如图4B所示生成新的堆区430,并且分配栈块431。
随后,已经存储在TCM区410的帧指针412到414被复制到分配的堆区430的栈块431。
随后,如图4C所示,TCM区410的栈块411被指定为当前栈块,并且新的帧指针450被分配给当前栈块411。随后,帧指针450被指定为当前帧指针。
此外,在存在已经在下一堆区(例如标号420)分配的栈块421的情况下,已经被存储在TCM区410中的帧指针412到414被复制到栈块421。这里,生成新的堆区430的过程被省略。
此外,当将栈复制到TCM区410时,链接列表可被改为偏移(offset)类型以优化性能,并且可在另一存储区中定位下一栈。
例如,如图4B所示,在测量栈块411的底端地址和每个帧指针之间的相对距离451到453之后,基于测量的相对距离计算相对距离的差。随后,如果帧指针被复制到下一栈块,则该帧指针可基于相对距离的差被定位。
图5是示出根据本发明另一示例性实施例的在虚拟机中管理栈的方法中的压栈操作的流程图。
首先,如果执行压栈(S500),则检查TCM区410的栈块空间(S510)。这里,检查栈块空间以为了添加新的帧指针。
在TCM区410的栈块空间不足的情况下(S520),检查是否有分配给堆区的栈块(S530)。这里,在堆区分配的栈块应当具有用于存储存储在TCM区410中的帧指针的充足的空间。此外,在分配的堆区中没有栈块的情况下(S540),在新堆区中分配栈块(S550),随后,存储在TCM区410中的帧指针被复制到堆区的栈块(S560)。
随后,TCM区410的栈块被指定为当前栈块(S570),并且新的帧指针被分配给指定为当前栈块的栈块(S580)。
随后,存储在TCM区410的栈块中的新的帧指针被指定为当前帧指针
(S590)。
此外,在分配的堆区中存在栈块的情况下(S540)。随后,以相同的方式执行操作S560到S590。
此外,在TCM区410的栈块空间充足(S520)的情况下,TCM区410的栈块被指定为当前栈块(S570)。随后,以相同的方式执行步骤S580和S590。
因此,当在栈中写入数据时,因为该数据被写入直接与处理器相连的存储器(例如,TCM区)中,所以减少了写入消耗的时间。
图6是示出根据本发明另一示例性实施例的在虚拟机中管理栈的方法中的出栈操作的流程图。参照图4B和4C对出栈操作进行描述。
首先,如果执行出栈,则当前帧指针(例如,图4C中的标号450)被移动到前一帧指针(例如标号422)(S600和S610)。
随后,存在当前移动的帧指针(例如标号422)的栈块(例如标号421)被指定为当前栈块(S620),并且检查指定的栈块(例如标号421)是否位于TCM区410。
在当前栈块(例如标号421)不位于TCM区410中的情况下(S630),当前栈块(例如标号421)被复制到TCM区410(S640),并且当前栈块(例如标号421)被指定为TCM区410的下一栈块(S650)。
随后,TCM区410的栈块(例如标号411)被指定为当前栈块(S660)。
此外,在当前栈块(例如标号421)位于TCM区410(S630)的情况下,栈块(例如标号421)被指定为当前栈块(S660)。
因此,当读取栈中的数据时,因为从直接与处理器相连的存储器(例如,TCM区)中读取该数据,所以减少了读取消耗的时间。
图7是示出根据本发明另一示例性实施例的通过执行在虚拟机中管理栈的方法得来的测量性能的结果的曲线图。
如所示,Java虚拟机的栈位于TCM 410,并且比较了传统C解释器和ASM解释器的性能。
这样,通过在TCM 410中而不是外部存储器中定位所述栈,性能被额外提高了1.6倍,而总体性能被提高了3到4倍。
本领域普通技术人员应当理解,在不脱离由权利要求限定的本发明示例性实施例的精神和范围的情况下,可在形式和细节上做出各种替换、修改和改变。因此,清楚的是上述示例性实施例仅为示例性目的而不被理解为本发明的限定。
本发明示例性实施例的方法和设备可具有以下优点。
首先,当执行压栈或者出栈时,使用直接与处理器连接的存储器(例如,TCM),因此减少了栈开销,从而提高了虚拟机的性能。
其次,当在栈内读取或者写入数据时,数据被读取并写入到直接与处理器连接的存储器(例如,TCM)中,而不是通过外部总线,因此减少了读取或者写入花费的时间,从而提高了虚拟机的总体性能。

Claims (6)

1、一种用于在虚拟机中管理栈的设备,所述设备包括:
第一存储器,如果在虚拟机中执行压栈和出栈中的至少一个,则所述第一存储器检查栈块的空间并分配帧指针;和
第二存储器,与外部总线连接,并存储通过所述外部总线从第一存储器复制的帧,
其中,第一存储器在不使用外部总线的情况下直接与处理器通信。
2、一种在虚拟机中管理栈的方法,所述方法包括:
如果在栈内执行压栈,则检查第一存储器中的第一栈块的空间;
如果第一栈块的空间不足,则检查是否存在第二存储器中分配的第二栈块;
如果第二栈块在第二存储器中,则将第一存储器中存储的帧指针复制到第二存储器的第二栈块;
将第一存储器的第一栈块指定为当前栈块,并给指定的栈块分配新的帧指针;和
将帧指针指定为当前帧指针,
其中,第一存储器在不使用外部总线的情况下直接与处理器通信。
3、如权利要求2所述的方法,其中,如果第二栈块不存在于第二存储器中,则分配新的栈块。
4、如权利要求2所述的方法,其中,如果存储在第一存储器中的帧指针被复制到第二存储器,则栈类型链接列表被改为偏移类型。
5、一种在虚拟机中管理栈的方法,所述方法包括:
如果在栈内执行出栈,则将当前帧指针移到前一帧指针;
将当前帧指针指向的栈块指定为当前栈块;
检查指定的栈块是否位于第一存储器;
如果所述栈块不位于第一存储器,则将所述栈块复制到第一存储器;和
将位于第一存储器的栈块指定为当前栈块,
其中,第一存储器在不使用外部总线的情况下直接与处理器通信。
6、如权利要求5所述的方法,其中,如果将栈块复制到第一存储器,则栈类型链接列表被改为偏移类型。
CNB200710086085XA 2006-03-10 2007-03-09 在虚拟机中管理栈的设备和方法 Expired - Fee Related CN100520736C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020060022872A KR100809293B1 (ko) 2006-03-10 2006-03-10 가상 머신에서 스택을 관리하는 장치 및 그 방법
KR1020060022872 2006-03-10

Publications (2)

Publication Number Publication Date
CN101034374A CN101034374A (zh) 2007-09-12
CN100520736C true CN100520736C (zh) 2009-07-29

Family

ID=38480275

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200710086085XA Expired - Fee Related CN100520736C (zh) 2006-03-10 2007-03-09 在虚拟机中管理栈的设备和方法

Country Status (3)

Country Link
US (1) US7685397B2 (zh)
KR (1) KR100809293B1 (zh)
CN (1) CN100520736C (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100928865B1 (ko) * 2008-02-28 2009-11-30 주식회사 안철수연구소 컴퓨터 시스템에서의 스택 확장 및 보호 방법과 그 장치
CN101833471A (zh) * 2010-05-07 2010-09-15 沈阳理工大学 一种虚拟机的单栈设计方法
CN102681866B (zh) * 2011-11-22 2015-07-22 飞天诚信科技股份有限公司 一种运行Java程序的方法和装置
KR101478354B1 (ko) * 2012-12-12 2015-01-02 한국전자통신연구원 가상 데스크탑 서비스를 위한 이미지 복사 방법
CN106681692A (zh) * 2015-11-09 2017-05-17 联发科技(新加坡)私人有限公司 控制装置、集成电路及任务栈的管理方法
CN112631722A (zh) * 2020-12-24 2021-04-09 北京握奇数据股份有限公司 一种字节码指令集精简方法和系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100618718B1 (ko) * 1996-01-24 2007-01-31 선 마이크로시스템즈 인코퍼레이티드 스택메모리구조에서의캐싱방법및장치
US5835958A (en) * 1996-10-29 1998-11-10 Sun Microsystems, Inc. Method and apparatus for dynamically sizing non-contiguous runtime stacks
US5898885A (en) * 1997-03-31 1999-04-27 International Business Machines Corporation Method and system for executing a non-native stack-based instruction within a computer system
US6594708B1 (en) * 1998-03-26 2003-07-15 Sun Microsystems, Inc. Apparatus and method for object-oriented memory system
US6457111B1 (en) * 1999-12-14 2002-09-24 International Business Machines Corporation Method and system for allocation of a persistence indicator for an object in an object-oriented environment
WO2003025743A1 (fr) 2001-09-12 2003-03-27 Hitachi, Ltd. Systeme processeur ayant un accelerateur java
KR20040011193A (ko) 2002-07-29 2004-02-05 엘지전자 주식회사 수소 저장합금을 이용한 냉난방장치
EP1489518B1 (en) 2003-06-19 2008-02-06 Texas Instruments Incorporated Embedded garbage collection
US7454572B2 (en) * 2005-11-08 2008-11-18 Mediatek Inc. Stack caching systems and methods with an active swapping mechanism

Also Published As

Publication number Publication date
CN101034374A (zh) 2007-09-12
KR20070092558A (ko) 2007-09-13
US20070214322A1 (en) 2007-09-13
KR100809293B1 (ko) 2008-03-04
US7685397B2 (en) 2010-03-23

Similar Documents

Publication Publication Date Title
CN100520736C (zh) 在虚拟机中管理栈的设备和方法
JP5348429B2 (ja) 持続性メモリのためのキャッシュコヒーレンスプロトコル
CN103164342B (zh) 数据可用性的挂载时协调
CN104011689B (zh) 非易失性存储器损耗管理
CN110045915A (zh) 使用存储装置中的系统时间戳的后台数据刷新
CN101473438A (zh) 具有单个接口的混合存储器设备
CN101030170A (zh) 多状态高速缓存一致性方案的设备、系统和方法
CN107533442A (zh) 用于对异构系统存储器中的存储器功率消耗进行优化的系统和方法
CN106663045A (zh) 在存储器与主机系统之间交换ecc元数据
CN102110196A (zh) 并行运行多用户操作系统间的数据安全传输方法及系统
CN100383792C (zh) 缓存数据库数据组织方法
EP3971818A1 (en) Picture processing method and apparatus
US11138034B2 (en) Method and apparatus for collecting information, and method and apparatus for releasing memory
US20200042187A1 (en) Writing same data on a storage system
WO2015176664A1 (zh) 一种数据操作的方法、设备和系统
CN102567225A (zh) 一种管理系统内存的方法及装置
CN115470156A (zh) 基于rdma的内存使用方法、系统、电子设备和存储介质
TW200945033A (en) Memory allocation and access method and device using the same
US8402199B2 (en) Memory management system and method thereof
CN107577612B (zh) 移动装置和将数据存储在移动装置中的方法
CN107861887B (zh) 一种串行易失性存储器的控制方法
CN101196851B (zh) 闪存的数据管理方法
CN102270179A (zh) 用于cad系统的基于片元的数据存储和处理方法及其系统
CN102479074A (zh) 一种跟踪gui列表刷新内容的方法、装置及应用系统
WO2021139733A1 (zh) 一种对内存进行分配的方法、设备及计算机可读存储介质

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090729

Termination date: 20180309

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