CN1423196A - 堆栈使用的方法 - Google Patents

堆栈使用的方法 Download PDF

Info

Publication number
CN1423196A
CN1423196A CN02152954A CN02152954A CN1423196A CN 1423196 A CN1423196 A CN 1423196A CN 02152954 A CN02152954 A CN 02152954A CN 02152954 A CN02152954 A CN 02152954A CN 1423196 A CN1423196 A CN 1423196A
Authority
CN
China
Prior art keywords
thread
storehouse
stack
storage unit
storage medium
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
Application number
CN02152954A
Other languages
English (en)
Other versions
CN1218248C (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.)
Lenovo Innovations Co ltd Hong Kong
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of CN1423196A publication Critical patent/CN1423196A/zh
Application granted granted Critical
Publication of CN1218248C publication Critical patent/CN1218248C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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

Landscapes

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

Abstract

本发明的目的在于:当堆栈存储单元堆栈溢出时,Java加速器运行速度的性能下降成为最小。当前分配给堆栈存储单元113的第一线程的堆栈区分配给存储在主存储单元103虚拟堆栈区域的第四线程。于是,第四线程的数据作为堆栈数据进行切换,通过控制器单元112(加速器装置101)复制到堆栈存储单元113的堆栈区域。

Description

堆栈使用的方法
技术领域
本发明涉及Java加速器设备中堆栈的使用方法。此处,″Java″是一个商标。
背景技术
Java是由Sun Microsystems公司(美国)在C++基础上开发的一种面向对象的程序语言,它具有能够创建不依赖特定的操作系统(OS)或特定的个人计算机(PC)运行程序的特点。虽然程序的源代码不依赖于特定的操作系统或特定类型的个人计算机,但它需要一个称为Java虚拟机(VM)的解释程序。
VM是一个提供运行被称为字节码的中间编码功能的软件。VM具有下列特点:字节码作为VM的指令集是非常简洁的。嵌入上述VM到硬件之中的Java芯片被用做开发能够执行有着一小段编码的字节码程序的装置,如便携式终端。
当Java受到更多的重视时,出现了各种加快Java运行速度的尝试。例如,使用硬件来执行部分解释程序的Java加速器来加快Java运行的速度。这样的Java加速器装置提供一个允许高速访问的内部硬件堆栈存储单元来提高堆栈访问速度。
但是,由于允许高速访问的内存的价格昂贵,上述堆栈储存单元的容量倾向于尽可能的小,然而这样会导致堆栈溢出。当溢出发生时,一些装置使用主存储介质(主内存)中预定义的区域供给VM作为堆栈区域使用。不过,这使得加速器的使用没有意义。
发明内容
于是,针对上述问题,本发明的目的在于:即使当堆栈存储单元发生溢出时,使Java加速器装置处理速度的性能下降变为最小。
根据本发明堆栈使用的方法,包括下列步骤:指示Java加速器装置将Java加速器装置中堆栈存储单元的线程由第一线程切换到第二线程;指示Java加速器装置执行分配给堆栈存储单元所切换的第二线程。
根据本方法来使用堆栈,由Java加速器装置执行的第二线程总是出现在提供给Java加速器装置的堆栈存储单元中。
而且最好是,在切换后,第一线程被分配给安排在Java加速器装置之外的主存储介质中预定义的区域。此外,堆栈存储单元被平均分区为多个线程所在的堆栈帧。并且,不能分配给堆栈储存单元的线程将分配给堆栈存储单元相应的主存储介质的虚拟堆栈帧中。
附图简述
图1是对应于本发明所应用实施方案的Java加速器装置堆栈使用方法的示例配置方块图。
图2是对应于本发明实施方案堆栈使用方法的示例流程图。
图3是说明堆栈分区的图。
图4是对应于本发明实施方案堆栈使用方法的示例流程图。
图5(a)-(c)是说明线程切换的图。
发明详述
此后,本发明的一个实施方案将参照附图予以说明。
图1是对应于本发明所应用实施方案的Java加速器装置堆栈使用方法的示例配置方块图。这种加速器装置101被用作连接有着CPU102、主存储介质103、暂态存储单元111、控制单元112和堆栈存储单元113的计算机。
CPU102根据存储在主存储介质103中的程序,处理加速器装置101的软件并进行控制。当Java程序被执行时,在主存储介质103中提供一个虚拟堆栈区域。在加速器装置101中,控制单元112执行解释程序,堆栈数据通过硬件来复制进程。暂态存储单元111被CPU102用来控制加速器装置101。在包含多个等分堆栈区域的堆栈存储单元113中,数据通过控制单元112和CPU102进行读、写。
控制单元112根据CPU102的指令来执行各种程序。当控制单元112从CPU102接收到“Start”指令启动程序时,它执行如:解释器、堆栈存储单元113中堆栈操作的字节码程序;或者当字节码不能被加速器装置101执行时,取指令、停止加速器装置101(STOP)并通知CPU102。
当控制单元112接收到“COPY”指令时,它根据由CPU对暂态存储单元111给出的地址和大小,在堆栈存储单元113的堆栈区域和主存储介质103虚拟堆栈区域间交换数据。这种数据交换程序在线程切换时被执行。
当控制器单元112接收到“GROWUP”指令时,它根据由CPU对暂态存储单元111给出的地址和大小,存储数据到主存储介质103虚拟堆栈区域的堆栈存储单元113的堆栈区域。当控制单元112接收到“CHANGE”指令时,它根据由CPU对暂态存储单元111给出的两个地址,在堆栈存储单元113的堆栈区域交换数据,并重新确定堆栈区域的参考值。
根据本实施方案,如上所述使用堆栈存储单元113的加速器装置可描述为执行如下操作的Java虚拟机。
首先,当CPU102进入一个解释循环时,它传送“START”指令给加速器装置101,然后,并执行解释程序。
当加速器装置101执行解释程序遇到一个硬件不能执行的字节码时,传送“STOP”通知CPU102。当接收到通知后,CPU102执行上述的字节码程序并再次传送“START”指令给加速器装置。然后,不活跃的字节码将由CPU102处理,这样加速器装置101将仅执行特定的字节码程序。帧压入和线程切换将由CPU102执行。
堆栈存储单元113被平均分区为多个区域(单个区域指“堆栈区域”)。一个堆栈区域是一个分配给线程的堆栈帧,这样多个线程就可以同时使用堆栈存储单元113。
当产生的线程数量等于或少于等分的堆栈存储单元113的堆栈区域数量时,线程可以作为堆栈帧直接分配给堆栈区域。当产生的线程数量大于等分的堆栈区域数量时,线程分配给主存储介质103虚拟堆栈区域的虚拟堆栈帧中。
当产生的线程数量大于预订的堆栈区域时,堆栈存储单元113堆栈区域的堆栈数据和虚拟堆栈的虚拟堆栈帧分别被保留,并在线程切换之前保存,这样,当前执行的线程(称作“当前线程”)总时分配给堆栈存储单元113。切换程序通过在CPU102到加速器装置101之间传送一个“COPY”指令来执行切换操作。
当线程产生时,产生线程的堆栈区域其属性将被确定。这些值存储在各自的线程中。当线程成为当前线程时,数据总是位于堆栈存储单元113的同一个区域(堆栈区域)。
为能更加有效的使用堆栈区域,继续存在线程注销的数量、堆栈区域的现有线程和曾有线程将被检查。如果任何不被使用的堆栈区域被发现,将从具有更多线程的现有堆栈区域调用线程开始。这样的线程切换程序是使用硬件在CPU102到加速器装置101间传送“CHANGE”指令进行操作的。
属于每个堆栈区域的线程数量是通过下述方法知道的:当一个新的线程产生时,它分配给有着至少一个线程的堆栈区域。例如:当在线程切换,线程第一次存储在虚拟堆栈区域时,虚拟区域的虚拟堆栈帧的大小就被确定了。相应的,为了存储堆栈区域,固定的对应于每个堆栈区域的虚拟堆栈帧将分配给每个存储在主储存介质103的虚拟堆栈区域的线程。
当一个新的堆栈需要保留一个执行的目标线程(推帧)时、当用作该线程的堆栈数据大小超过堆栈区域的大小时,超出的数据被储存在下面所描述的相应的虚拟堆栈中。这被称作堆栈帧的再增长,通过由CPU102到加速器装置101间传送“GROWUP”指令来执行。当控制单元112接收到“GROWUP”指令,它在虚拟堆栈帧中保存刚刚使用的、存储在堆栈存储单元113线程的堆栈数据。其余的空堆栈区域被用作上述新线程堆栈数据区域(再增长区域)。
其后,当线程的数量超过在堆栈存储单元113中的分区数量的堆栈帧分配装置将参照附图2到4来说明。首先,当产生的线程没有超过在堆栈存储单元113中分区数量时,产生的线程将被直接在堆栈存储单元113的堆栈区域中进行分配。
另一方面,当产生的线程数量超过了堆栈存储单元113的分区数量时,首先,在图2所示流程图的S201步骤中,有着最小数量线程的堆栈数据被查找,查找到的区域在产生的线程中用于存储。
然后,在主存储介质103的虚拟堆栈区域中产生一个虚拟堆栈帧。产生的虚拟堆栈帧的地址存储在上述产生的线程中。而且,存储在产生线程堆栈区域线程的数量被计数。当产生线程归属的堆栈区域确定后(步骤S201)、当线程被真的存储在堆栈区域中时,首先,相应的堆栈区域被选择,然后其它线程是否分配给选定的堆栈区域中被检查(步骤S202)。
当有其它线程分配给选定的堆栈区域中,在主存储介质103的虚拟堆栈帧产生(申请)一个虚拟堆栈帧(步骤S203)。另一方面,当没有线程位于选定的区域(步骤S202)时,线程作为堆栈帧分配给选定的堆栈区域(步骤S204)。图3是堆栈存储单元113被划分为3个区域的一张图,产生的线程数为5。5个产生的线程中,第一线程位于第一堆栈区域,第二线程位于第二区域,第三线程位于第三区域。
第四、第五线程将第一和第二堆栈区域作为分配区域分别存储。但是,因为,第一和第二区域已经分配其它线程,第四和第五线程将不分配堆栈存储单元113,而是在主存储介质103的虚拟堆栈区域中申请各自的虚拟堆栈帧。
然后,根据本实施方案,在堆栈区域和堆栈帧分配各自线程状态,被执行的目标线程和目标装置在堆栈存储单元113中根据下面所描述的线程切换进行定位。这里,线程包括多个装置。其后,堆栈存储单元113被分为3个区域,5个线程被产生,如图3所示。
首先,如图4流程图所示,第四线程是否作为一个线程被切换,分配相应的第一堆栈将被判断(步骤S401)。如果线程切换已经被分配,则无须切换,终止操作。然而,在本案中,第一线程已经分配第一堆栈区域,第四线程的切换将不被分配。于是,下面的程序将执行步骤S402。
然后,是否有其它线程分配堆栈区域将被检查,例如在第一区域(步骤S402)。如图5A所示,因为第一堆栈区域已经分配给第一线程,即,其它已经分配给线程的堆栈区域将被交换,程序执行步骤S403。在步骤S403中,线程的虚拟堆栈帧是否被保存,例如第一线程,保存在虚拟堆栈区域中将被检查。
如图5A所示,在虚拟堆栈区域没有为第一线程给出虚拟堆栈帧,于是程序执行步骤S405来为第一线程在虚拟堆栈区域中保存虚拟堆栈帧。所获得的虚拟堆栈帧的地址保存在相应的线程中(第一线程)。如果线程虚拟堆栈帧的保存被判断为保存在骤S403中,程序执行S404来判断是否保存的虚拟堆栈帧的大小大于相应线程的数据大小(保存数据的大小)。
当堆栈帧被保存,而且其大小大于保存的数据大小,程序执行步骤S406,目前分配给第一线程的第一堆栈区域分配给保存在虚拟堆栈区域的第四线程。保存的数据大小将和始自第一线程的堆栈数据的顶部(至位置SP)有效堆栈数据区域相一致。其结果是,第一堆栈区域将如图5B所示被挪用。
于是,作为堆栈数据切换的第四线程将由控制单元112(加速器装置101)(步骤S407)复制到堆栈存储单元113的第一堆栈区域。第四线程的有效尺寸将由在主存储介质103的虚拟堆栈区域的虚拟堆栈帧复制。而且,第四线程的第一堆栈区域将分配线程。第一线程的数据不再作为当前线程,将不被保存,直至属于同一堆栈区域的第五线程成为当前线程。
另一方面,当没有其它线程位于交换堆栈区域时,例如第一线程,在步骤S402中,程序执行步骤S407,复制第四线程的数据作为堆栈数据切换至堆栈存储单元113的第一存储区域。
相应的,被执行的目标线程将总是处于加速器装置101的堆栈存储单元113中,继续允许高速访问。
如上所述,根据本发明,目标线程总是位于Java加速器装置的堆栈存储单元中被执行。于是,各种优点例如:增强内存访问速度和程序运行速度的性能下降变为最小将被获得。
本发明不背离其思路和基本特征可以同样以其它特定的形式来实施。本实施方案于是考虑的是说明性的各个方面而并非限定,本发明的范围将由附属的权利申明而不是通过放弃在内容和范围上等效于权利申明试图包含的所有变化来指出。

Claims (11)

1.使用堆栈的方法,该方法包括下列步骤:
指示Java加速器装置切换到分配至包含在Java加速器装置内的堆栈存储单元中的线程,由第一线程至第二线程;并
指示Java加速器装置执行分配至堆栈存储单元已切换的第二线程。
2.权利要求1中使用堆栈的方法,其中:切换后第一线程被分配给Java加速器装置外部主存储介质预定义的区域。
3.权利要求1中使用堆栈的方法,其中:堆栈存储单元被平均分区为供线程分配的多个堆栈帧。
4.权利要求2中使用堆栈的方法,其中:堆栈存储单元被平均分区为多个供线程分配的堆栈帧。
5.权利要求3中使用堆栈的方法,其中:线程不能被分配到堆栈存储单元堆栈帧时,将被分配至由主存储介质构建的,相应于堆栈存储单元的虚拟堆栈帧。
6.权利要求4中使用堆栈的方法,其中:线程不能被分配到堆栈存储单元堆栈帧时,将被分配至由主存储介质构建的,相应于堆栈存储单元的虚拟堆栈帧。
7.权利要求2中使用堆栈的方法,其中:主存储介质为硬盘。
8.权利要求3中使用堆栈的方法,其中:主存储介质为硬盘。
9.权利要求4中使用堆栈的方法,其中:主存储介质为硬盘。
10.权利要求5中使用堆栈的方法,其中:主存储介质为硬盘。
11.权利要求6中使用堆栈的方法,其中:主存储介质为硬盘。
CN02152954XA 2001-11-30 2002-11-29 堆栈使用的方法 Expired - Fee Related CN1218248C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001366399A JP2003167737A (ja) 2001-11-30 2001-11-30 スタック使用方法
JP366399/2001 2001-11-30

Publications (2)

Publication Number Publication Date
CN1423196A true CN1423196A (zh) 2003-06-11
CN1218248C CN1218248C (zh) 2005-09-07

Family

ID=19176303

Family Applications (1)

Application Number Title Priority Date Filing Date
CN02152954XA Expired - Fee Related CN1218248C (zh) 2001-11-30 2002-11-29 堆栈使用的方法

Country Status (5)

Country Link
US (1) US6948034B2 (zh)
JP (1) JP2003167737A (zh)
CN (1) CN1218248C (zh)
GB (1) GB2386715B (zh)
HK (1) HK1054605B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1294468C (zh) * 2004-04-09 2007-01-10 南京大学 一种防止缓冲区溢出攻击的动态堆栈内存管理方法
CN100426237C (zh) * 2006-05-25 2008-10-15 浙江大学 一种嵌入式系统运行时堆栈溢出保护方法
CN101667138B (zh) * 2008-09-04 2012-10-03 国际商业机器公司 混合计算环境以及混合计算环境中的数据处理方法
CN104205042A (zh) * 2012-03-30 2014-12-10 英特尔公司 用于具有通用cpu核心和紧密耦合的加速器的处理核心的上下文切换机制
CN104375887A (zh) * 2013-08-16 2015-02-25 联想(北京)有限公司 一种信息处理方法及电子设备

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100597414B1 (ko) 2004-10-21 2006-07-05 삼성전자주식회사 데이터 처리 장치 및 이를 이용한 레지스터 할당 방법
US7870541B1 (en) * 2004-11-01 2011-01-11 Wind River Systems, Inc. Context tracing for software with a frame pointer and a stack pointer and with a stack pointer but without a frame pointer
US7500060B1 (en) * 2007-03-16 2009-03-03 Xilinx, Inc. Hardware stack structure using programmable logic
US8145749B2 (en) 2008-08-11 2012-03-27 International Business Machines Corporation Data processing in a hybrid computing environment
US8230442B2 (en) * 2008-09-05 2012-07-24 International Business Machines Corporation Executing an accelerator application program in a hybrid computing environment
US8527734B2 (en) * 2009-01-23 2013-09-03 International Business Machines Corporation Administering registered virtual addresses in a hybrid computing environment including maintaining a watch list of currently registered virtual addresses by an operating system
US9286232B2 (en) * 2009-01-26 2016-03-15 International Business Machines Corporation Administering registered virtual addresses in a hybrid computing environment including maintaining a cache of ranges of currently registered virtual addresses
US8843880B2 (en) * 2009-01-27 2014-09-23 International Business Machines Corporation Software development for a hybrid computing environment
US8255909B2 (en) 2009-01-28 2012-08-28 International Business Machines Corporation Synchronizing access to resources in a hybrid computing environment
US20100191923A1 (en) * 2009-01-29 2010-07-29 International Business Machines Corporation Data Processing In A Computing Environment
US9170864B2 (en) * 2009-01-29 2015-10-27 International Business Machines Corporation Data processing in a hybrid computing environment
US8180972B2 (en) 2009-08-07 2012-05-15 International Business Machines Corporation Reducing remote reads of memory in a hybrid computing environment by maintaining remote memory values locally
KR101612780B1 (ko) * 2009-11-13 2016-04-18 삼성전자주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템의 메모리 관리 방법
US9417905B2 (en) * 2010-02-03 2016-08-16 International Business Machines Corporation Terminating an accelerator application program in a hybrid computing environment
US8578132B2 (en) * 2010-03-29 2013-11-05 International Business Machines Corporation Direct injection of data to be transferred in a hybrid computing environment
US9015443B2 (en) 2010-04-30 2015-04-21 International Business Machines Corporation Reducing remote reads of memory in a hybrid computing environment
WO2012046301A1 (ja) * 2010-10-05 2012-04-12 富士通株式会社 情報処理装置、情報処理プログラム、および情報処理方法
US9218343B2 (en) 2010-12-20 2015-12-22 International Business Machines Corporation Partition file system for virtual machine memory management
CN104011703B (zh) 2011-12-22 2017-04-12 英特尔公司 用于指定应用线程性能状态的指令的指令处理装置及相关方法
US20140196015A1 (en) * 2013-01-04 2014-07-10 Microsoft Corporation Declaration of lifetime of resource reference
US9098269B2 (en) 2013-01-04 2015-08-04 Microsoft Technology Licensing, Llc System and method to ensure resource access safety with immutable object types
US9189214B2 (en) * 2013-10-30 2015-11-17 International Business Machines Corporation Code stack management
JP6771272B2 (ja) * 2015-07-01 2020-10-21 日立オートモティブシステムズ株式会社 車載電子制御装置及びスタック使用方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01251248A (ja) 1988-03-31 1989-10-06 Toshiba Corp スタックデータ構造用キャッシュ制御方式
JPH02178847A (ja) 1988-12-29 1990-07-11 Nec Corp プログラムの再実行用データテーブル生成方式
JPH04219842A (ja) 1990-12-20 1992-08-10 Nec Corp キャッシュ制御方式
JP2522176B2 (ja) 1993-08-13 1996-08-07 日本電気株式会社 プロセッサの制御方法
US5727178A (en) * 1995-08-23 1998-03-10 Microsoft Corporation System and method for reducing stack physical memory requirements in a multitasking operating system
US6826749B2 (en) * 1998-12-08 2004-11-30 Nazomi Communications, Inc. Java hardware accelerator using thread manager
US6332215B1 (en) * 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
US6401155B1 (en) * 1998-12-22 2002-06-04 Philips Electronics North America Corporation Interrupt/software-controlled thread processing
JP2001256062A (ja) * 2000-03-09 2001-09-21 Omron Corp 割込処理方法およびその方法を用いた演算処理装置
US6915395B1 (en) * 2000-05-03 2005-07-05 Sun Microsystems, Inc. Active address content addressable memory

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1294468C (zh) * 2004-04-09 2007-01-10 南京大学 一种防止缓冲区溢出攻击的动态堆栈内存管理方法
CN100426237C (zh) * 2006-05-25 2008-10-15 浙江大学 一种嵌入式系统运行时堆栈溢出保护方法
CN101667138B (zh) * 2008-09-04 2012-10-03 国际商业机器公司 混合计算环境以及混合计算环境中的数据处理方法
CN104205042A (zh) * 2012-03-30 2014-12-10 英特尔公司 用于具有通用cpu核心和紧密耦合的加速器的处理核心的上下文切换机制
US10120691B2 (en) 2012-03-30 2018-11-06 Intel Corporation Context switching mechanism for a processor having a general purpose core and a tightly coupled accelerator
CN104205042B (zh) * 2012-03-30 2019-01-08 英特尔公司 用于具有通用cpu核心和紧密耦合的加速器的处理核心的上下文切换机制
CN104375887A (zh) * 2013-08-16 2015-02-25 联想(北京)有限公司 一种信息处理方法及电子设备
CN104375887B (zh) * 2013-08-16 2019-06-25 联想(北京)有限公司 一种信息处理方法及电子设备

Also Published As

Publication number Publication date
GB0227104D0 (en) 2002-12-24
HK1054605A1 (en) 2003-12-05
US6948034B2 (en) 2005-09-20
US20030105927A1 (en) 2003-06-05
HK1054605B (zh) 2006-04-21
JP2003167737A (ja) 2003-06-13
GB2386715A (en) 2003-09-24
CN1218248C (zh) 2005-09-07
GB2386715B (en) 2005-10-05

Similar Documents

Publication Publication Date Title
CN1218248C (zh) 堆栈使用的方法
US20100031270A1 (en) Heap manager for a multitasking virtual machine
CN1306399C (zh) 用于网络处理器的虚拟机
US5903899A (en) System and method for assisting exact Garbage collection by segregating the contents of a stack into sub stacks
CN1105968C (zh) 用于在面向对象的系统中的位置特定的信息分配的计算机系统和方法
CN105556466B (zh) 代码堆栈管理方法
US6760818B2 (en) Memory region based data pre-fetching
EP1620800B1 (en) Systems and methods for task migration
US8453132B2 (en) System and method for recompiling code based on locality domain and thread affinity in NUMA computer systems
US20030212719A1 (en) Method for heap memory management and computer system using the same method
US7596569B2 (en) Method and program for space-efficient representation of objects in a garbage-collected system
US7533228B1 (en) Two-pass sliding compaction
CN108701024B (zh) 用于在堆栈机器中分配虚拟寄存器堆栈的方法
CN1271524C (zh) 一种静态内存管理方法
US5680582A (en) Method for heap coalescing where blocks do not cross page of segment boundaries
CN101042660A (zh) 多任务系统中的任务执行环境切换方法
US7293051B1 (en) Collection-set selection using a small priority queue
US20140281060A1 (en) Low-contention update buffer queuing for large systems
WO2014003707A2 (en) Hardware-based accelerator for managing copy-on-write
CN1139032C (zh) 减少存储器需求的程序代码执行装置和方法
Johnsson et al. An overview of the Mesa processor architecture
US8266379B2 (en) Multithreaded processor with multiple caches
US20060059318A1 (en) Managing shared memory usage within a memory resource group infrastructure
US20200249852A1 (en) Methods for Aligned, MPU Region, and Very Small Heap Block Allocations
Quammen et al. Register window management for a real-time multitasking RISC

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
ASS Succession or assignment of patent right

Owner name: LENOVO INNOVATION CO., LTD. (HONGKONG)

Free format text: FORMER OWNER: NEC CORP.

Effective date: 20141202

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; TO: HONG KONG, CHINA

TR01 Transfer of patent right

Effective date of registration: 20141202

Address after: Hongkong, China

Patentee after: LENOVO INNOVATIONS Co.,Ltd.(HONG KONG)

Address before: Tokyo, Japan

Patentee before: NEC Corp.

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

Granted publication date: 20050907

Termination date: 20151129