CN100447744C - 堆栈管理系统及方法 - Google Patents
堆栈管理系统及方法 Download PDFInfo
- Publication number
- CN100447744C CN100447744C CNB2006100726216A CN200610072621A CN100447744C CN 100447744 C CN100447744 C CN 100447744C CN B2006100726216 A CNB2006100726216 A CN B2006100726216A CN 200610072621 A CN200610072621 A CN 200610072621A CN 100447744 C CN100447744 C CN 100447744C
- Authority
- CN
- China
- Prior art keywords
- internal memory
- storehouse
- storehouse block
- block
- stack
- 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.)
- Active
Links
Images
Classifications
-
- 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/0875—Addressing 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Executing Machine-Instructions (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Storing Facsimile Image Data (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
一种堆栈管理系统及方法。堆栈管理系统包括一第一内存、一第二内存,第二内存的存取速度快于第一内存、与耦接于第一与第二内存间的一控制器。控制器由第一内存中储存的多个堆栈区块中识别一第一堆栈区块,其中第一堆栈区块包括含有至少一指针的数据。在第一堆栈区块被识别之后,控制器将第一堆栈区块由第一内存移动至第二内存,且调整原先指向于第一堆栈区块的指针来指向第二内存中的一新地址。
Description
技术领域
本发明是有关于堆栈管理,特别有关于一种具有主动交换机制的堆栈管理系统及方法。
背景技术
在计算机科学中,堆栈机器是一种常见的计算模型,其内存是以堆栈的型态来进行存取。堆栈机器应用于实作或仿真计算机操作。对于堆栈机器,如果要切换至一线程(Thread)或呼叫一个方法,必须提供一个相应的堆栈。而在堆栈中,指令的储存与项目的取出都必须依据放入/取出规则(Push/Pop Rule)来进行。也就是,一个项目被放入堆栈的最上方,且由堆栈的最上方取出项目,并将剩余的项目往上移动一个位准(Level)。
对于堆栈机器而言,堆栈存取的效率是非常重要的。举例来说,Java虚拟机器是一个以堆栈为基础的机器。一个Java堆栈包括堆栈数据、区域变量与虚拟机器内部数据。由于堆栈所需的内存空间非常大,堆栈通常是储存于具有较低存取速率的正常内存中。然而,所有Java虚拟机器的计算都是在堆栈上进行。因此,在较低存取速率的正常内存中储存堆栈将会严重降低Java虚拟机器的处理效率。
目前已经有多种公知机制可以用来加速堆栈的存取。Harlan McGhan,MikeO’Connor提出一种Java字节码(Bytecode)(Java机器指令)的直接执行引擎,称作PicoJava。PicoJava配备一个圆形的缓冲缓存器作为堆栈缓存器,其中堆栈缓存器的底部与堆栈缓存器的顶部相连。新的项目将会被放入堆栈的上方,使得堆栈变大,且项目可以由堆栈的上方取出,使得堆栈变小。如果堆栈持续成长且放入堆栈缓存器的项目数目超过一高水位标记值时,则会执行一溢出(Spill)机制,其中最老的项目将会被移至其它的堆栈内存。如果项目由堆栈中取出且堆栈缓存器中的项目数目掉到一低水位标记值之下时,则会执行一填满(Fill)机制,其中堆栈内存中的项目将被复制至堆栈缓存器中。另外,ARMJazelle科技提出一种架构,其额外配备最多4个在缓存器中维护的堆栈组件,用以将内存的存取降到最少。其中,堆栈的溢出与填满都是由硬件来自动处理。在PicoJava与Jazelle科技中,必须提供与使用额外的硬件。
此外,一种公知的软件方法可以用来改善堆栈机器的处理效率,其中JIT(Just-In-Time,实时)或AOT(Ahead-Of-Time,事先)编译器可以通过将字节码转译为机器码,从而将复杂的堆栈操作转换为中央处理单元内的简单的缓存器操作。然而,JIT或AOT编译器编译Java程序来产生机器码时将会增加内存的使用。
发明内容
本发明的目的在于提供一种堆栈管理系统及方法。
本发明的堆栈管理系统,包括:一第一内存;一第二内存,第二内存的存取速度快于第一内存;以及一控制器,耦接于第一与第二内存之间,该控制器由第一内存储存的多个堆栈区块中识别一第一堆栈区块,其中该第一堆栈区块包括含有至少一指针的数据,在该第一堆栈区块被识别之后,所述的控制器将该第一堆栈区块由第一内存移动至第二内存,且调整原先指向于该第一堆栈区块的指针来指向第二内存中的一新地址。
本发明的堆栈管理系统,更包括至少一线程,用以存取所述多个堆栈区块,每一堆栈区块记录被线程存取的一时间段,控制器更对比第一内存中相应每一堆栈区块所记录的所述时间段,从而识别出第一堆栈区块,其中该第一堆栈区块具有最长的所述时间段。
所述第一堆栈区块更包括堆栈数据、区域变量或虚拟机器内部数据。
所述指针指在调整之前向第一堆栈区块、第一堆栈区块的堆栈数据、第一堆栈区块的区域变量、第一堆栈区块的虚拟机器内部数据或其它的堆栈区块。
所述控制器更在第一堆栈区块移动至第二内存之前,暂停线程存取第一堆栈区块。
所述控制器更在指针调整之后,恢复线程。
所述线程包括一垃圾收集器(Garbage Collector)或一Java线程。
所述第一内存为一外部内存,且第二内存为一内部存储器。
本发明的堆栈管理方法,使用于包括一第一内存与一第二内存的系统。首先,由第一内存中储存的多个堆栈区块中识别一第一堆栈区块,其中第一堆栈区块是第一内存中系统最常存取的堆栈区块。之后,暂停第一堆栈区块的存取操作,且将第一堆栈区块由第一内存移动至第二内存,第二内存的存取速度快于第一内存。在移动之后,系统可以存取在第二内存中的第一堆栈区块。
所述第一堆栈区块的移动步骤更包括:找出至少一指针,其原来指向第一内存中第一堆栈区块的一原始地址;以及调整指针来指向第二内存中的一新地址。
所述调整步骤更包括将一位移量加至指针的原始地址中。
所述第一内存为一外部内存,且第二内存为一内部存储器。
本发明的另一种堆栈管理方法,使用于包括一第一内存与一第二内存的系统。首先,由第一内存中储存的多个堆栈区块中识别一第一堆栈区块,其中第一堆栈区块包括含有至少一指针的数据。之后,将第一堆栈区块由第一内存移动至第二内存,第二内存的存取速度快于第一内存,且调整原先指向于第一堆栈区块的指针来指向第二内存中的一新地址。
所述系统更包括至少一线程,用以存取所述多个堆栈区块,每一堆栈区块记录被线程存取的一时间段,其中所述识别步骤更对比第一内存中相应每一堆栈区块所记录的时间段,从而识别出第一堆栈区块,其中第一堆栈区块具有最长的所述时间段。
所述第一堆栈区块更包括堆栈数据、区域变量或虚拟机器内部数据。
所述指针在调整之前指向第一堆栈区块、第一堆栈区块的堆栈数据、第一堆栈区块的区域变量、第一堆栈区块的虚拟机器内部数据或其它的堆栈区块。
所述的堆栈管理方法,更包括在第一堆栈区块移动至第二内存之前,暂停线程存取第一堆栈区块。
所述的堆栈管理方法,更包括在指针调整之后,恢复线程。
所述线程包括一垃圾收集器或一Java线程。
本发明上述方法可以通过程序代码方式收录于实体媒体中。当程序代码被机器加载且执行时,机器变成用以实行本发明的装置。
附图说明
图1为一示意图是显示依据本发明实施例的堆栈管理系统。
图2为一示意图是显示线程与堆栈区块间的关系。
图3为一示意图是显示依据本发明实施例的堆栈区块。
图4为一示意图是显示依据本发明实施例的堆栈区块中的堆栈帧。
图5为一流程图是显示依据本发明实施例的堆栈管理方法。
图6为一示意图是显示依据本发明实施例的经过移动,但尚未进行指针调整的堆栈区块。
图7为一示意图是显示依据本发明实施例的经过移动,且进行指针调整的堆栈区块。
100堆栈管理系统
110第一内存
120第二内存
130虚拟机器
141、142、221、222、223、310、320、400堆栈区块
220堆栈
210、330线程
311、411、421堆栈数据
312、412、422区域变量
313虚拟机器内部数据
410、420堆栈帧
413、423前一堆栈指针
414、424前一帧指针
415、425堆栈指针
416、426其它虚拟机器数据
S510、S520、...、S560步骤
具体实施方式
图1显示依据本发明实施例的堆栈管理系统。堆栈管理系统100可以是一个数据处理系统,其包括一第一内存110、一第二内存120、与一处理器(未显示)用以执行一虚拟机器130,如一Java虚拟机器。在一些实施例中,数据处理系统可以是一嵌入式系统,如移动台(Mobile Station)。第一内存110与第二内存120分别储存多个堆栈区块(141与142)。在此实施例中,第一内存110可以是一外部内存,且第二内存120可以是一个内部存储器。换言之,第二内存120的存取速度将快于第一内存110。然而,第二内存120的容量可能是受限的,且只有既定数目的堆栈区块可以储存在第二内存120中,而其它的堆栈区块将会储存于第一内存110中。在本发明中,如果第一内存110中有较常存取的堆栈区块,堆栈管理系统100将会先辨别出这些较常存取的堆栈区块,之后再将她们移动至第二内存120中。因此,较常存取的堆栈区块将可以更有效率的进行存取。在此实施例中,为了要识别这些较常存取的堆栈区块,虚拟机器130将会剖绘(Profile)第一内存110中的所有堆栈区块。
堆栈管理系统100可以处理存取堆栈区块的至少一个线程。在此实施例中,堆栈管理系统100的虚拟机器130可以同时处理多个线程(内容(Context))。图2显示线程与堆栈区块间的关系。如图2所示,每一线程210可以存取自己的堆栈220,其包括多个堆栈区块(221、222、与223)。值得注意的是,在一些实施例中,一个堆栈可以只包括一个堆栈区块,且虚拟机器130包括一排程器(Scheduler),用以排程内容切换(Context Switch)程序与重新排程包括线程的内容、一中断服务程序(ISR)分配器(Dispatchetr),用以分配至特定的中断服务程序、与至少一中断服务程序,用以服务特定的中断。剖绘堆栈区块包括分析效能、计算资源利用率、或在特定堆栈区块上的执行时间等。在一些实施例中,为了要剖绘这些堆栈区块,必须要在个别堆栈区块中增加一个额外的字段(未显示)。当执行内容切换程序、重新排程来分配至特定中断服务程序、或服务特定中断服务程序时,内容的额外信息,如累积的存取时间与/或存取频率将会被记录至被存取的堆栈区块的额外字段中。
由于剖绘分析必须要记录额外的信息,在一些实施例中,排程器、中断服务程序分配器、与中断服务程序的处理程序将会修改。在排程器找出需要切换的一内容之后,将会记录一时间与此内容的辨识数据。在中断服务程序分配器找出一中断来源之后,将会在跳到中断服务程序之前与/或跳到中断服务程序之后记录一时间与此中断来源的辨识数据。在服务中断之前与/或服务中断之后,中断服务程序将会记录一时间与中断的辨识数据。记录的时间与辨识数据可以用来进行内容剖绘。值得注意的是,排程器、中断服务程序分配器、与中断服务程序的处理程序的修改并不限定于此,且用以记录额外信息的方式也不限定于此。一般来说,处理器通常花费大部分时间在某些线程,以及线程的特定堆栈区块之上。虚拟机器130可以使用剖绘的结果来在第一内存110与第二内存120间移动堆栈区块。
图3显示依据本发明实施例的堆栈区块。如图3所示,堆栈区块310包括堆栈数据311、区域变量312、与虚拟机器内部数据313。堆栈数据311是当程序执行时所需的数据。区域变量312包括对象,如Java对象与任何类型数字的参考(Reference)。虚拟机器内部数据313可以具有指向堆栈数据311、区域变量312、与虚拟机器内部数据313本身的指针。另外,另一个堆栈区块320与/或一线程330可以具有指针来指向堆栈区块310。一旦堆栈区块移动时,指针所指向的地址都必须进行调整。在一些实施例中,可以通过将指针所指向的原始地址加上一位移量来完成指针的调整。
图4是显示依据本发明实施例的堆栈区块中的堆栈帧。在此实施例中,堆栈400包括多个堆栈帧(Frame)(410与420)。堆栈帧420包括堆栈数据421、区域变量422、前一堆栈指针423、前一帧指针424、堆栈指针425与虚拟机器数据426。其中,前一堆栈指针423、前一帧指针424、堆栈指针425与虚拟机器数据426包含于前述的虚拟机器内部数据中。前一堆栈指针423指向堆栈数据411。前一帧指针424指向堆栈帧410。类似地,一旦堆栈区块移动时,指针都必须进行调整。
值得注意的是,图3与图4中所述的堆栈区块结构与指针都仅是需要调整的可能的堆栈区块结构与指针,而并非用来限制本发明。本领域中熟习技艺者可以应用本发明至所有类型的堆栈区块结构。
图5显示依据本发明实施例的堆栈管理方法。如步骤S510,对于系统中的堆栈区块进行剖绘以判断那些堆栈区块是较常存取的。如前所述,堆栈区块的剖绘可以根据记录的额外信息,如累积存取时间与存取频率来进行。值得注意的是,可以移动至第二内存120的堆栈区块数目可以依据第二内存120的可用空间与剖绘结果来决定。如步骤S520,暂停目前存取选定的堆栈区块的线程。如步骤S530,移动堆栈区块。移动堆栈区块的动作包括将堆栈区块由第一内存110移动至第二内存120,以及在第一内存110与第二内存120间交换堆栈区块。举例来说,如果第二内存120中具有一特定数目的堆栈区块的可用空间,则不在第二内存120中,且前此特定数目的较常存取的堆栈区块将会被移动至第二内存120。如果第二内存120中没有可用空间,且第一内存110中一第一堆栈区块的存取频率大于第二内存120中一第二堆栈区块的存取频率时,则第一与第二堆栈区块将会被交换。图6显示依据本发明实施例的经过移动,但尚未进行指针调整的堆栈区块。如图6所示,原先在第一内存110中的堆栈区块310被移动至第二内存120。在堆栈区块310移动之后,移动至第二内存120的堆栈区块的虚拟机器内部数据313中的指针仍然指向第一内存110中堆栈数据311、区域变量312与虚拟机器内部数据313的原始地址。另外,在堆栈区块320中的指针与线程330也仍然指向第一内存110中堆栈区块310的原始地址。如步骤S540,将移动的堆栈区块的指针,以及指向移动的堆栈区块的堆栈区块与线程进行调整。图7显示依据本发明实施例的经过移动且进行指针调整的堆栈区块。在指针调整之后,移动至第二内存120的堆栈区块的虚拟机器内部数据313中的指针被调整来指向第二内存120中堆栈数据311、区域变量312与虚拟机器内部数据313的新地址。另外,堆栈区块320中的指针与线程330被调整来指向第二内存120中堆栈区块310的新地址。如步骤S550,被暂停的线程被恢复来执行,从而线程可以正确地指向且存取堆栈区块。如步骤S560,判断虚拟机器130是否要停止作业。如果没有停止作业,流程回到步骤S510。如果虚拟机器130要停止作业,则结束整个流程。
本发明的方法,或特定型态或其部分,可以以程序代码的型态包含于实体媒体,如软盘、光盘片、硬盘、或是任何其它机器可读取(如计算机可读取)储存媒体,其中,当程序代码被机器,如计算机加载且执行时,此机器变成用以参与本发明的装置。本发明的方法与装置也可以以程序代码型态通过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序代码被机器,如计算机接收、加载且执行时,此机器变成用以参与本发明的装置。当在一般用途处理器实际操作时,程序代码结合处理器提供一操作类似于应用特定逻辑电路的独特装置。
上述具体实施方式仅用以说明本发明,而非限定本发明。
Claims (19)
1.一种堆栈管理系统,其特征在于,包括:
一第一内存;
一第二内存,第二内存的存取速度快于第一内存;以及
一控制器,耦接于第一与第二内存之间,该控制器由第一内存储存的多个堆栈区块中识别一第一堆栈区块,其中该第一堆栈区块是第一内存中最常存取的堆栈区块,该第一堆栈区块包括含有至少一指针的数据,在该第一堆栈区块被识别之后,所述的控制器将该第一堆栈区块由第一内存移动至第二内存,且调整原先指向于该第一堆栈区块的指针来指向第二内存中的一新地址,其中,该新地址为该第一堆栈区块移动至第二内存后,该第一堆栈区块在该第二内存中的一新地址。
2.如权利要求1所述的堆栈管理系统,其特征在于,更包括至少一线程,用以存取所述多个堆栈区块,每一堆栈区块记录被线程存取的一时间段,控制器更对比第一内存中相应每一堆栈区块所记录的所述时间段,从而识别出第一堆栈区块,其中该第一堆栈区块具有最长的所述时间段。
3.如权利要求1所述的堆栈管理系统,其特征在于,所述第一堆栈区块更包括堆栈数据、区域变量或虚拟机器内部数据。
4.如权利要求3所述的堆栈管理系统,其特征在于,所述原先指向于该第一堆栈区块的指针在调整之前指向第一堆栈区块、第一堆栈区块的堆栈数据、第一堆栈区块的区域变量、第一堆栈区块的虚拟机器内部数据。
5.如权利要求2所述的堆栈管理系统,其特征在于,所述控制器更在第一堆栈区块移动至第二内存之前,暂停线程存取第一堆栈区块。
6.如权利要求5所述的堆栈管理系统,其特征在于,所述控制器更在指针调整之后,恢复线程。
7.如权利要求2所述的堆栈管理系统,其特征在于,所述线程包括一垃圾收集器或一Java线程。
8.如权利要求1所述的堆栈管理系统,其特征在于,所述第一内存为一外部内存,且第二内存为一内部存储器。
9.一种堆栈管理方法,使用于包括一第一内存与一第二内存的系统,其特征在于,包括下列步骤:
由第一内存中储存的多个堆栈区块中识别一第一堆栈区块,其中该第一堆栈区块是第一内存中所述系统最常存取的堆栈区块;
暂停第一堆栈区块的存取操作;以及
将第一堆栈区块由第一内存移动至第二内存,第二内存的存取速度快于第一内存,
其中,在第一堆栈区块移动之后,所述系统可以存取在第二内存中的第一堆栈区块。
10.如权利要求9所述的堆栈管理方法,其特征在于,所述第一堆栈区块的移动步骤更包括:
找出至少一指针,其原来指向第一内存中第一堆栈区块的一原始地址;以及
调整所述指针来指向第二内存中的一新地址,其中,该新地址为该第一堆栈区块移动至第二内存后,该第一堆栈区块在该第二内存中的一新地址。
11.如权利要求10所述的堆栈管理方法,其特征在于,所述调整步骤更包括将一位移量加至所述指针的原始地址中。
12.如权利要求9所述的堆栈管理方法,其特征在于,所述第一内存为一外部内存,且第二内存为一内部存储器。
13.一种堆栈管理方法,使用于包括一第一内存与一第二内存的系统,其特征在于,包括下列步骤:
由第一内存中储存的多个堆栈区块中识别一第一堆栈区块,其中该第一堆栈区块是第一内存中最常存取的堆栈区块,该第一堆栈区块包括含有至少一指针的数据;
将第一堆栈区块由第一内存移动至第二内存,第二内存的存取速度快于第一内存;以及
调整原先指向于第一堆栈区块的指针来指向第二内存中的一新地址,其中,该新地址为该第一堆栈区块移动至第二内存后,该第一堆栈区块在该第二内存中的一新地址。
14.如权利要求13所述的堆栈管理方法,其特征在于,所述系统更包括至少一线程,用以存取所述多个堆栈区块,每一堆栈区块记录被线程存取的一时间段,其中所述识别步骤更对比第一内存中相应每一堆栈区块所记录的时间段,从而识别出第一堆栈区块,其中该第一堆栈区块具有最长的所述时间段。
15.如权利要求13所述的堆栈管理方法,其特征在于,所述第一堆栈区块更包括堆栈数据、区域变量或虚拟机器内部数据。
16.如权利要求15所述的堆栈管理方法,其特征在于,所述原先指向于该第一堆栈区块的指针在调整之前指向第一堆栈区块、第一堆栈区块的堆栈数据、第一堆栈区块的区域变量、第一堆栈区块的虚拟机器内部数据。
17.如权利要求14所述的堆栈管理方法,其特征在于,更包括在第一堆栈区块移动至第二内存之前,暂停线程存取第一堆栈区块。
18.如权利要求17所述的堆栈管理方法,其特征在于,更包括在指针调整之后,恢复线程。
19.如权利要求14所述的堆栈管理方法,其特征在于,所述线程包括一垃圾收集器或一Java线程。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/268,888 US7454572B2 (en) | 2005-11-08 | 2005-11-08 | Stack caching systems and methods with an active swapping mechanism |
US11/268,888 | 2005-11-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1963762A CN1963762A (zh) | 2007-05-16 |
CN100447744C true CN100447744C (zh) | 2008-12-31 |
Family
ID=37950049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100726216A Active CN100447744C (zh) | 2005-11-08 | 2006-04-05 | 堆栈管理系统及方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7454572B2 (zh) |
CN (1) | CN100447744C (zh) |
DE (1) | DE102006008684A1 (zh) |
TW (1) | TWI309005B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100809293B1 (ko) * | 2006-03-10 | 2008-03-04 | 삼성전자주식회사 | 가상 머신에서 스택을 관리하는 장치 및 그 방법 |
US8618717B2 (en) * | 2009-07-02 | 2013-12-31 | Sierra Wireless, Inc. | System and method for connection to a wireless network |
CN102681866B (zh) * | 2011-11-22 | 2015-07-22 | 飞天诚信科技股份有限公司 | 一种运行Java程序的方法和装置 |
GB2516091A (en) * | 2013-07-11 | 2015-01-14 | Ibm | Method and system for implementing a dynamic array data structure in a cache line |
US9754001B2 (en) | 2014-08-18 | 2017-09-05 | Richard Banister | Method of integrating remote databases by automated client scoping of update requests prior to download via a communications network |
US10838983B2 (en) | 2015-01-25 | 2020-11-17 | Richard Banister | Method of integrating remote databases by parallel update requests over a communications network |
US10838827B2 (en) | 2015-09-16 | 2020-11-17 | Richard Banister | System and method for time parameter based database restoration |
US10990586B2 (en) | 2015-09-16 | 2021-04-27 | Richard Banister | System and method for revising record keys to coordinate record key changes within at least two databases |
US10003634B2 (en) * | 2016-05-14 | 2018-06-19 | Richard Banister | Multi-threaded download with asynchronous writing |
JP2017227969A (ja) * | 2016-06-20 | 2017-12-28 | 富士通株式会社 | 制御プログラム、システム、及び方法 |
US11194769B2 (en) | 2020-04-27 | 2021-12-07 | Richard Banister | System and method for re-synchronizing a portion of or an entire source database and a target database |
US11321171B1 (en) | 2021-03-19 | 2022-05-03 | Microsoft Technology Licensing, Llc | Memory operations management in computing systems |
US11599415B2 (en) | 2021-07-09 | 2023-03-07 | Microsoft Technology Licensing, Llc | Memory tiering techniques in computing systems |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6131144A (en) * | 1997-04-01 | 2000-10-10 | Sun Microsystems, Inc. | Stack caching method with overflow/underflow control using pointers |
CN1295279A (zh) * | 1999-11-09 | 2001-05-16 | 摩托罗拉公司 | 在处理系统中用于执行堆栈弹出与压入操作的装置和方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69734399D1 (de) * | 1996-01-24 | 2006-03-02 | Sun Microsystems Inc | Verfahren und vorrichtung zur stapel-cachespeicherung |
US20030110357A1 (en) * | 2001-11-14 | 2003-06-12 | Nguyen Phillip V. | Weight based disk cache replacement method |
US20040210454A1 (en) | 2003-02-26 | 2004-10-21 | Coughlin Bruce M. | System and method for providing technology data integration services |
US7987453B2 (en) * | 2004-03-18 | 2011-07-26 | International Business Machines Corporation | Method and apparatus for determining computer program flows autonomically using hardware assisted thread stack tracking and cataloged symbolic data |
-
2005
- 2005-11-08 US US11/268,888 patent/US7454572B2/en active Active
-
2006
- 2006-02-21 DE DE102006008684A patent/DE102006008684A1/de not_active Withdrawn
- 2006-03-17 TW TW095109302A patent/TWI309005B/zh active
- 2006-04-05 CN CNB2006100726216A patent/CN100447744C/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6131144A (en) * | 1997-04-01 | 2000-10-10 | Sun Microsystems, Inc. | Stack caching method with overflow/underflow control using pointers |
CN1295279A (zh) * | 1999-11-09 | 2001-05-16 | 摩托罗拉公司 | 在处理系统中用于执行堆栈弹出与压入操作的装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20070106845A1 (en) | 2007-05-10 |
US7454572B2 (en) | 2008-11-18 |
TWI309005B (en) | 2009-04-21 |
CN1963762A (zh) | 2007-05-16 |
DE102006008684A1 (de) | 2007-05-10 |
TW200719145A (en) | 2007-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100447744C (zh) | 堆栈管理系统及方法 | |
KR100972723B1 (ko) | 프로액티브 메모리 관리를 위한 컴퓨터 실행 방법, 컴퓨터 판독가능 기록 매체, 및 컴퓨터 판독가능 저장 매체 | |
US8793427B2 (en) | Remote memory for virtual machines | |
Sethi et al. | RecShard: statistical feature-based memory optimization for industry-scale neural recommendation | |
US20070005905A1 (en) | Prefetching apparatus, prefetching method and prefetching program product | |
CN103959275B (zh) | 优化多处理器计算系统中的存储器存取的方法和系统 | |
KR20110048531A (ko) | 가상처리장치의 인터럽트 제어 | |
CN104156197A (zh) | 微处理器以及微处理器操作方法 | |
CN102981944B (zh) | 一种基于文件系统的日志存储方法 | |
KR102161192B1 (ko) | 코어 트레이스로부터 데이터 마이닝을 하기 위한 방법 및 장치 | |
CN108549574A (zh) | 线程调度管理方法、装置、计算机设备和存储介质 | |
US20150261684A1 (en) | Memory management with priority-based memory reclamation | |
KR101996641B1 (ko) | 메모리 오버레이 장치 및 방법 | |
CN115543965A (zh) | 跨机房数据处理方法、设备、存储介质及程序产品 | |
Li et al. | SEAL: User experience-aware two-level swap for mobile devices | |
Arif et al. | Exploiting CXL-based memory for distributed deep learning | |
US20050066305A1 (en) | Method and machine for efficient simulation of digital hardware within a software development environment | |
CN102521161B (zh) | 一种数据的缓存方法、装置和服务器 | |
CN116521350B (zh) | 基于深度学习算法的etl调度方法及装置 | |
CN110618872B (zh) | 混合内存动态调度方法及系统 | |
CN107346342A (zh) | 一种基于存储计算的文件调用方法与系统 | |
CN103488772A (zh) | 一种通过外存对文件进行缓存的方法、系统及设备 | |
Subedi et al. | Rise: Reducing i/o contention in staging-based extreme-scale in-situ workflows | |
Lee et al. | MRT-PLRU: A general framework for real-time multitask executions on NAND flash memory | |
CN117093335A (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 |