CN1963762A - 堆栈管理***及方法 - Google Patents
堆栈管理***及方法 Download PDFInfo
- Publication number
- CN1963762A CN1963762A CNA2006100726216A CN200610072621A CN1963762A CN 1963762 A CN1963762 A CN 1963762A CN A2006100726216 A CNA2006100726216 A CN A2006100726216A CN 200610072621 A CN200610072621 A CN 200610072621A CN 1963762 A CN1963762 A CN 1963762A
- Authority
- CN
- China
- Prior art keywords
- storehouse
- internal memory
- 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.)
- Granted
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)
- Devices For Executing Special Programs (AREA)
- Executing Machine-Instructions (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Storing Facsimile Image Data (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程序来产生机器码时将会增加内存的使用。
发明内容
本发明的目的在于提供一种堆栈管理***及方法。
本发明的堆栈管理***,包括:一第一内存;一第二内存;以及一控制器,耦接于第一与第二内存之间,该控制器由第一内存储存的多个堆栈区块中识别一第一堆栈区块,其中该第一堆栈区块包括含有至少一指针的数据,在该第一堆栈区块被识别之后,所述的控制器将该第一堆栈区块由第一内存移动至第二内存,且调整原先指向于该第一堆栈区块的指针来指向第二内存中的一新地址。
本发明的堆栈管理***,更包括至少一执行绪,用以存取所述多个堆栈区块,每一堆栈区块记录被执行绪存取的一时间期间,控制器更比对第一内存中相应每一堆栈区块所记录的所述时间期间,从而识别出第一堆栈区块,其中该第一堆栈区块具有最长的所述时间期间。
所述第一堆栈区块更包括堆栈数据、区域变量或虚拟机器内部数据。
所述指针指向第一堆栈区块、第一堆栈区块的堆栈数据、第一堆栈区块的区域变量、第一堆栈区块的虚拟机器内部数据或其它的堆栈区块。
所述控制器更在第一堆栈区块移动至第二内存之前,暂停执行绪存取第一堆栈区块。
所述控制器更在指针调整之后,恢复执行绪。
所述执行绪包括一垃圾收集器(Garage 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指向前一堆栈帧410。前一帧指针424指向包括堆栈帧420的堆栈区块400。类似地,一旦堆栈区块移动时,指针都必须进行调整。
值得注意的是,图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 (20)
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执行绪。
20.如权利要求13所述的堆栈管理方法,其特征在于,第二内存的存取速度快于第一内存。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/268,888 | 2005-11-08 | ||
US11/268,888 US7454572B2 (en) | 2005-11-08 | 2005-11-08 | Stack caching systems and methods with an active swapping mechanism |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1963762A true CN1963762A (zh) | 2007-05-16 |
CN100447744C 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681866A (zh) * | 2011-11-22 | 2012-09-19 | 飞天诚信科技股份有限公司 | 一种运行Java程序的方法和装置 |
Families Citing this family (12)
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 |
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 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6532531B1 (en) * | 1996-01-24 | 2003-03-11 | Sun Microsystems, Inc. | Method frame storage using multiple memory circuits |
US6131144A (en) | 1997-04-01 | 2000-10-10 | Sun Microsystems, Inc. | Stack caching method with overflow/underflow control using pointers |
US6654871B1 (en) * | 1999-11-09 | 2003-11-25 | Motorola, Inc. | Device and a method for performing stack operations in a processing system |
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
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681866A (zh) * | 2011-11-22 | 2012-09-19 | 飞天诚信科技股份有限公司 | 一种运行Java程序的方法和装置 |
CN102681866B (zh) * | 2011-11-22 | 2015-07-22 | 飞天诚信科技股份有限公司 | 一种运行Java程序的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN100447744C (zh) | 2008-12-31 |
TW200719145A (en) | 2007-05-16 |
US7454572B2 (en) | 2008-11-18 |
DE102006008684A1 (de) | 2007-05-10 |
TWI309005B (en) | 2009-04-21 |
US20070106845A1 (en) | 2007-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100447744C (zh) | 堆栈管理***及方法 | |
KR100972723B1 (ko) | 프로액티브 메모리 관리를 위한 컴퓨터 실행 방법, 컴퓨터 판독가능 기록 매체, 및 컴퓨터 판독가능 저장 매체 | |
US7383417B2 (en) | Prefetching apparatus, prefetching method and prefetching program product | |
Sethi et al. | RecShard: statistical feature-based memory optimization for industry-scale neural recommendation | |
CN103019962B (zh) | 数据缓存处理方法、装置以及*** | |
KR20110048531A (ko) | 가상처리장치의 인터럽트 제어 | |
WO2020015550A1 (zh) | 一种对lba信息进行预测的方法及ssd | |
CN103809917A (zh) | 用于存储器的工作调度方法及其存储*** | |
KR102161192B1 (ko) | 코어 트레이스로부터 데이터 마이닝을 하기 위한 방법 및 장치 | |
CN108549574A (zh) | 线程调度管理方法、装置、计算机设备和存储介质 | |
CN102981944A (zh) | 一种基于文件***的日志存储方法 | |
CN115543965A (zh) | 跨机房数据处理方法、设备、存储介质及程序产品 | |
CN101957729A (zh) | 逻辑块变换方法及基于该方法兼容用户读写的方法和装置 | |
CN107346342A (zh) | 一种基于存储计算的文件调用方法与*** | |
CN102521161B (zh) | 一种数据的缓存方法、装置和服务器 | |
CN116521350B (zh) | 基于深度学习算法的etl调度方法及装置 | |
CN110618872B (zh) | 混合内存动态调度方法及*** | |
CN103488772A (zh) | 一种通过外存对文件进行缓存的方法、***及设备 | |
CN104516827B (zh) | 一种读缓存的方法及装置 | |
CN105573885A (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 | |
CN100492299C (zh) | 一种嵌入式软件开发的方法及*** | |
CN117093335A (zh) | 分布式存储***的任务调度方法及装置 | |
Li et al. | An application-oblivious memory scheduling system for DNN accelerators |
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 |