EP1966703B1 - Méthode et appareil de détection matérielle d'échappement dynamique dans des environnements d'exécution gérés - Google Patents

Méthode et appareil de détection matérielle d'échappement dynamique dans des environnements d'exécution gérés Download PDF

Info

Publication number
EP1966703B1
EP1966703B1 EP06845735.7A EP06845735A EP1966703B1 EP 1966703 B1 EP1966703 B1 EP 1966703B1 EP 06845735 A EP06845735 A EP 06845735A EP 1966703 B1 EP1966703 B1 EP 1966703B1
Authority
EP
European Patent Office
Prior art keywords
scope
local
global
cache line
attribute
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
Application number
EP06845735.7A
Other languages
German (de)
English (en)
Other versions
EP1966703A1 (fr
Inventor
Quinn A. Jacobson
Suresh Srinivas
Anne C. Bracy
Hong Wang
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of EP1966703A1 publication Critical patent/EP1966703A1/fr
Application granted granted Critical
Publication of EP1966703B1 publication Critical patent/EP1966703B1/fr
Active 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
    • 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
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0269Incremental or concurrent garbage collection, e.g. in real-time systems

Definitions

  • US 6757891 Disclosed in US 6757891 is a computer-implemented method for reducing a computing overhead associated with objects that are local to a particular thread and can be accessed solely by that thread. Dynamically during runtime, an object is determined to be local to a particular thread and can be accessed solely by that thread, whereby a computing overhead associated with that object may be reduced. Likewise, cash locality may be optimised in respect of objects that are determined to be global so as to avoid putting them in the same cache line, whilst thread-local objects are preferably stored in a cache line associated with that thread.
  • a virtual machine logically partitions a physical machine, such that the underlying hardware of the machine appears as one or more independently operating VMs.
  • CVM 102 may include a virtual machine monitor (VMM) that creates CVM 102 and runs on platform hardware 140 to facilitate for other software the extraction of one or more VMs. Accordingly, CVM 102 may function as a self-contained platform, running its own operating system (OS) and application software. As shown in FIG. 1 , CVM 102 provides the abstraction of host platform hardware 140.
  • host platform 140 may include a multi-core processor to support the running of multiple application threads.
  • MRTE 100 provides automatic memory management, type management, threads and synchronization and dynamic loading facilities.
  • the automatic memory management provided by MRTE 100 typically includes management of heap 106.
  • a heap is an area of memory reserved for dynamic memory allocation needs of an application.
  • the heap is reserved for data that is created at runtime, usually because the size, quantity or lag-time of an object to be allocated cannot be determined at compile time.
  • management of this relatively limited memory, to maximize available storage capacity is a substantial limitation.
  • CVM 102 may include an execution engine 112.
  • the execution engine 112 may directly interpret bytecodes into instructions that are understood by the processor of host platform 140.
  • allocated objects can be classified as either (1) local, such that, such objects are visible to a single thread, or (2) global, such that, the object is visible to more than one thread.
  • multi-threaded MRTE environments for example, as shown in FIG. 1 , many optimizations can be applied when working on objects that are known to be local to a single thread. Since a local object is only reachable by a single thread, a local object is only referenced by local pointers or linked to by other local objects of the same thread. Hence, many synchronization operations can be avoided and local objects can be allocated to enable local reclaiming, thus minimizing the workload of global GC 114.
  • a large percentage of objects are, indeed, local, but it is a challenge to determine, for a given object, if it is local or not.
  • a first approach for determining whether an object is local is provided by performing compiler static analysis of a program to determine, from when an object is created until it is destroyed that there is no possible way for the object to become reachable from another thread.
  • static analysis identifies a small fraction of objects that are provably local.
  • AAT introduces user controlled attribute bits 234 that are associated with cache lines 201.
  • association of such metadata, or attribute bits, with blocks of memory is not limited to the association of attribute bits with cache lines and may include the incorporation of such attribute bits within system memory and even within the paging of memory to disk, according to the desired implementation.
  • FIG. 3 is a block diagram illustrating, in one embodiment, LOAD_AND_SET instruction 216 and LOAD_AND_CHECK instruction 218, which may be referred to herein as "AAT instructions.”
  • the LOAD_AND_SET instruction 216 performs a normal memory LOAD_AND_SET, a specified attribute bit 234 for the reference line 201 to a specified value (e.g., the second attribute bit to the value of one).
  • the thread can ask to be notified asynchronously if the associated line 201 is invalidated from its local cache 200.
  • UMS unexpected memory state
  • AAT can be further extended to provide a set of one of AAT range descriptors.
  • These user-programmable range descriptors define a range of the virtual memory space defined by base and bound or equivalent method, wherein the line's actual attributes are overwritten for LOAD_AND_CHECK instructions 218. Accordingly, in one embodiment, when a target address of a LOAD_AND_CHECK instruction 218 falls within a predefined AAT range, instead of comparing the expected attribute value against the actual AAT attributes for the reference line, the expected attribute value is compared against the override attribute provided for the range.
  • AAT range descriptors have no effect with respect to the detecting and reporting lines that are invalidated or evicted.
  • write barrier logic 110 ( FIG. 1 ) checks if the object 254 that the global object is about to point to (second (target) object) 254 is currently a local object.
  • the second object 254 is identified as a local object, the second object 254 needs to be converted from a local object to a global object before the pointer update operation can be executed.
  • each object 256 reachable from the second object is converted to a global object.
  • Table 2 illustrates the pseudo code for performing such operations. TABLE 2
  • a driver controller 683 may be coupled to PCI link 682 and may control operations of hard disk drive 681.
  • VM 602, write barrier logic 610, run-time storage manager (RSM) 612 and garbage collector (GC) 614 may be stored on the hard disk drive 681.
  • the hard disk drive 681 may serve as the boot-up device including, for example, a loader program to load the various host components as well as the VM 602 to load MRTE components.
  • a different system configuration may be used.
  • the MRTE 600 ( FIG. 6 ) includes a multicore CPU 660 and MRTE 700 ( FIG. 7 ) includes CMP 650
  • a multiprocessor system (where one or more processors may be similar in configuration and operation to the CPU 660/CMP 760 described above) may benefit from hardware-based dynamic escape detection of various embodiments.
  • Further different type of system or different type of computer system such as, for example, a server, a workstation, a desktop computer system, a gaming system, an embedded computer system, a blade server, etc., may be used for other embodiments.

Claims (19)

  1. Procédé de détection d'échappement dynamique caractérisé par :
    l'association de chaque objet créé par un programme d'application à une ligne d'antémémoire de début (201) de l'objet respectif dans une antémémoire (200), de telle sorte qu'un bit d'attribut de portée (234) de chaque objet respectif soit déterminé en fonction d'un bit d'attribut de portée (234) d'une ligne d'antémémoire de début (201) de chaque objet respectif ;
    la détection d'une actualisation de pointeur (250) d'un premier objet (252) ayant une portée globale, l'actualisation de pointeur (250) servant à actualiser une liaison (253) du premier objet (252) afin de pointer vers un second objet (254) ;
    l'émission d'une instruction unique pour établir qu'une liste d'attributs de portée (234) associée au second objet (254) identifie que la portée du second objet (254) est globale ; et
    l'appel d'un sous-programme de gestion pour vérifier que la portée du second objet (254) est locale si l'instruction unique détecte que l'attribut de portée associé au second objet (254) identifie que la portée du second objet (254) est locale ; et
    la conversion, si le second objet (254) est identifié comme étant local, du second objet en un objet global.
  2. Procédé selon la revendication 1, dans lequel l'association de chaque objet est caractérisée en outre par :
    le codage d'un descripteur d'objet de chaque objet créé par le programme d'application pour identifier que la portée de chaque objet respectif est l'une d'une portée locale ou d'une portée globale.
  3. Procédé selon la revendication 1, dans lequel l'association de chaque objet est caractérisée en outre par :
    l'association d'un bit d'attribut de portée (234) à chaque ligne d'antémémoire (201) de l'antémémoire (200) ;
    le mappage de chaque objet créé par un programme d'application dans une mémoire ; et
    l'établissement d'un bit d'attribut de portée (234) d'une ligne respective mise en antémémoire sur local ou global au chargement de chaque objet respectif dans une ligne d'antémémoire (201) respective de l'antémémoire (200).
  4. Procédé selon la revendication 1, dans lequel l'émission de l'instruction est caractérisée en outre par :
    l'émission d'une instruction LOAD_AND_CHECK (218) pour vérifier qu'un bit d'attribut de portée (234) d'une ligne d'antémémoire de début (201) du second objet (254) identifie que la portée du second objet (254) est locale ; et
    l'appel, par l'instruction LOAD_AND_CHECK (218), du sous-programme de gestion si le bit d'attribut de portée (234) de la ligne d'antémémoire de début (201) du second objet indique que la portée du second objet (254) est locale.
  5. Procédé selon la revendication 1, dans lequel l'appel du sous-propramme de gestion est caractérisé en outre par :
    la lecture d'un descripteur d'objet du second objet (254) ; et
    la comparaison d'un attribut de portée du descripteur d'objet local pour déterminer que l'attribut de portée du descripteur d'objet local indique ou non que la portée du second objet (254) est locale ; et
    dans lequel, la conversion, si le second objet (254) est identifié comme local, du second objet en un objet global comprend la conversion du second objet (254) d'un objet local en un objet global si l'attribut de portée indiqué par le descripteur d'objet du second objet (254) indique que la portée du second objet (254) est locale.
  6. Procédé selon la revendication 5, caractérisé en outre par :
    l'identification de chaque objet (256) joignable depuis le second objet (254) ; et
    la conversion de chaque objet (256) joignable depuis le second objet (254) en un objet global.
  7. Procédé selon la revendication 6, dans lequel la conversion de chaque objet est caractérisée en outre par :
    le codage d'un descripteur d'objet de chaque objet (256) pour identifier une portée de chaque objet respectif comme une portée locale ou une portée globale ; et
    l'établissement d'un bit d'attribut de portée (234) de chaque objet (256) joignable depuis le second objet (254) sur global.
  8. Procédé selon la revendication 1, caractérisé en outre par :
    l'actualisation du pointeur (253) du premier objet (252) pour qu'il pointe vers le second objet (254).
  9. Article de fabrication ayant un support accessible par machine comportant des données associées, dans lequel les données, quand elles sont sollicitées, amènent une machine à effectuer un procédé selon la revendication 1, caractérisé en outre par :
    le codage d'un descripteur d'objet de l'objet cible pour identifier que la portée de l'objet cible est globale si la portée de l'objet cible est vérifiée en tant que portée locale.
  10. Article de fabrication selon la revendication 9, dans lequel le support accessible par machine comporte en outre des données associées, lesquelles quand elles sont sollicitées, amènent en outre la machine à effectuer :
    la tenue à jour d'une liste d'objets de tous les objets locaux générés par un programme d'application ;
    la détection de l'expulsion d'une ligne d'antémémoire (201) de la mémoire (200) ;
    l'interrogation de la liste d'objets pour déterminer que la ligne d'antémémoire expulsée (201) est une ligne d'antémémoire de début (201) d'au moins un objet local expulsé ; et
    le chargement à nouveau de la ligne d'antémémoire (201) dans l'antémémoire (200) si la ligne d'antémémoire expulsée (201) est une ligne d'antémémoire de début (201) de l'objet local expulsé.
  11. Article de fabrication selon la revendication 10, dans lequel le support accessible par machine comporte en outre des données associées, lesquelles quand elles sont sollicitées, amènent en outre la machine à effectuer :
    l'identification de tous les objets initialement chargés dans l'antémémoire (200) pour établir un bit d'attribut respectif de chaque objet identifié sur une portée locale par défaut ; et
    l'actualisation de la valeur d'attribut de portée d'un objet cible si le sous-programme de gestion détecte qu'un descripteur d'objet de l'objet cible identifie que l'objet cible a une portée locale.
  12. Article de fabrication selon la revendication 9, dans lequel le support accessible par machine comporte en outre des données associées, lesquelles quand elles sont sollicitées, amènent en outre la machine à effectuer :
    la comparaison, par l'instruction unique, d'une adresse cible de l'instruction unique à au moins une plage d'adresses prédéterminée ;
    la détermination comme valeur de bit d'attribut d'une plage d'adresses prédéterminée que l'adresse cible se trouve dans la plage d'adresses prédéterminée ; et
    la comparaison d'un attribut de portée de la plage prédéterminée à une valeur de portée locale prédéterminée.
  13. Article de fabrication selon la revendication 9, dans lequel le support accessible par machine comporte en outre des données associées, lesquelles quand elles sont sollicitées, amènent en outre la machine à effectuer :
    la restriction de tous les objets locaux à la création dans une plage d'adresses prédéterminée ; et
    la fourniture d'un établissement de bit d'attribut prioritaire pour la plage.
  14. Article de fabrication selon la revendication 9, dans lequel le support accessible par machine comporte en outre des données associées, lesquelles quand elles sont sollicitées, amènent en outre la machine à effectuer :
    l'actualisation de la valeur d'attribut de portée de l'objet cible si le sous-programme de gestion détecte qu'un descripteur d'objet de l'objet cible identifie l'objet cible comme ayant une portée locale ; et
    l'actualisation du pointeur (253) de l'objet global pour qu'il pointe vers l'objet cible.
  15. Système de détection d'échappement dynamique comprenant :
    une plate-forme hôte comportant une antémémoire (200) comportant au moins un bit d'attribut de portée (234) pour chaque ligne d'antémémoire (201) dans l'antémémoire (200) ; et
    un environnement d'exécution géré (MRTE" (100, 300, 400, 500), le MRTE (100, 300, 400, 500) comportant une logique de barrière d'écriture (110, 310, 410, 510, 610) adaptée pour associer chaque objet créé par un programme d'application à une ligne d'antémémoire de début (201) de l'objet respectif dans une antémémoire (200), de telle sorte qu'un bit d'attribut de portée (234) de chaque objet respectif soit déterminé en fonction d'un bit d'attribut de portée (234) d'une ligne d'antémémoire de début (201) de chaque objet respectif et émettre une instruction unique pour établir qu'un attribut de portée, associé à un objet cible d'une actualisation de pointeur depuis un objet global, identifie qu'une portée de l'objet cible est globale et appeler un sous-programme de gestion pour vérifier que la portée du second objet est locale si l'attribut de portée associé à l'objet cible identifie que la portée de l'objet cible est locale, et convertir, si le second objet (254) est identifié comme étant local, le second objet en un objet global.
  16. Système selon la revendication 15, caractérisé en outre par :
    un moniteur de machine virtuel "VMM" (320, 420, 520) pour charger une machine virtuelle "VM" et un ramasse-miettes global (114, 314, 414, 514, 614).
  17. Système selon la revendication 15, la plate-forme hôte étant caractérisée par :
    une mémoire système couplée à un réseau d'interconnexion ; et
    un multiprocesseur sur puce couplé au réseau d'interconnexion, le multiprocesseur sur puce comprenant une pluralité de coeurs de processeur, chaque coeur de processeur servant à supporter une VMM (320, 420, 520), la VMM (320, 420, 520) servant à charger un gestionnaire de mémorisation à l'exécution (112, 312, 412, 512, 612) et un ramasse-miettes global (114, 314, 414, 514, 614).
  18. Système selon la revendication 15, dans lequel la logique de barrière d'écriture (110, 310, 410, 510, 610) sert en outre à associer un bit d'attribut de portée (234) à chaque ligne d'antémémoire (201) de l'antémémoire (200), pour mapper chaque objet créé par un programme d'application avec un bloc mémoire et établir un bit d'attribut de portée (234) sur local ou global pour chaque objet respectif chargé dans l'antémémoire (200).
  19. Programme informatique défini par des instructions exécutables par machine, qui, lorsqu'elles sont exécutées sur une machine, exécutent un procédé de détection d'échappement dynamique selon l'une quelconque des revendications 1 à 8.
EP06845735.7A 2005-12-30 2006-12-18 Méthode et appareil de détection matérielle d'échappement dynamique dans des environnements d'exécution gérés Active EP1966703B1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/322,484 US20070162475A1 (en) 2005-12-30 2005-12-30 Method and apparatus for hardware-based dynamic escape detection in managed run-time environments
PCT/US2006/048278 WO2007078920A1 (fr) 2005-12-30 2006-12-18 Méthode et appareil de détection matérielle d’échappement dynamique dans des environnements d’exécution gérés

Publications (2)

Publication Number Publication Date
EP1966703A1 EP1966703A1 (fr) 2008-09-10
EP1966703B1 true EP1966703B1 (fr) 2015-03-04

Family

ID=38066481

Family Applications (1)

Application Number Title Priority Date Filing Date
EP06845735.7A Active EP1966703B1 (fr) 2005-12-30 2006-12-18 Méthode et appareil de détection matérielle d'échappement dynamique dans des environnements d'exécution gérés

Country Status (4)

Country Link
US (1) US20070162475A1 (fr)
EP (1) EP1966703B1 (fr)
CN (2) CN102693188B (fr)
WO (1) WO2007078920A1 (fr)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4262174B2 (ja) * 2004-09-09 2009-05-13 キヤノン株式会社 シミュレーション時間取得方法
US20070162475A1 (en) * 2005-12-30 2007-07-12 Intel Corporation Method and apparatus for hardware-based dynamic escape detection in managed run-time environments
TW200731134A (en) * 2006-02-14 2007-08-16 Mitac Int Corp Software system structure and application program processing method
US7774372B2 (en) * 2007-05-16 2010-08-10 International Business Machines Corporation Computer program product and method for database management system supporting multiple temporary tables
US20100023479A1 (en) * 2008-07-24 2010-01-28 Inernational Business Machines Corporation Hexadecimal file fast decompression method
EP2761441A4 (fr) * 2011-09-30 2015-04-01 Hewlett Packard Development Co Commande de dispositif virtualisé dans des systèmes informatiques
JP6044181B2 (ja) * 2012-08-24 2016-12-14 富士通株式会社 ガーベジコレクションのための情報処理方法、プログラム及び装置
JP6223001B2 (ja) * 2013-06-06 2017-11-01 キヤノン株式会社 画像処理装置、その制御方法、及びプログラム
US11030105B2 (en) * 2014-07-14 2021-06-08 Oracle International Corporation Variable handles
CN105389615B (zh) * 2015-12-09 2018-01-09 天津大学 一种嵌套式的动态软硬件划分环境变化检测方法
US9785735B1 (en) 2016-10-11 2017-10-10 International Business Machines Corporation Parallel incremental global routing
KR102612918B1 (ko) * 2018-07-27 2023-12-13 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
CN112328510B (zh) * 2020-10-29 2022-11-29 上海兆芯集成电路有限公司 进阶主机控制器及其控制方法
CN116755845B (zh) * 2023-08-22 2023-11-14 北京中电华大电子设计有限责任公司 数据处理方法和装置

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03251926A (ja) * 1990-02-28 1991-11-11 Nec Corp オブジェクト管理装置
US5202998A (en) * 1990-08-31 1993-04-13 International Business Machines Corporation Fast, simultaneous multi-processor system status communication interface
US5555398A (en) * 1994-04-15 1996-09-10 Intel Corporation Write back cache coherency module for systems with a write through cache supporting bus
US5761670A (en) * 1995-12-08 1998-06-02 Sun Microsystems, Inc. System and method for space efficient object locking using global and local locks
US5974438A (en) * 1996-12-31 1999-10-26 Compaq Computer Corporation Scoreboard for cached multi-thread processes
EP0856797B1 (fr) * 1997-01-30 2003-05-21 STMicroelectronics Limited Système d'antémémoire pour des processus concurrents
US5909698A (en) * 1997-03-17 1999-06-01 International Business Machines Corporation Cache block store instruction operations where cache coherency is achieved without writing all the way back to main memory
US6094729A (en) * 1997-04-08 2000-07-25 Advanced Micro Devices, Inc. Debug interface including a compact trace record storage
US5974507A (en) * 1997-04-14 1999-10-26 International Business Machines Corporation Optimizing a cache eviction mechanism by selectively introducing different levels of randomness into a replacement algorithm
US6412056B1 (en) * 1997-10-01 2002-06-25 Compac Information Technologies Group, Lp Extended translation lookaside buffer with fine-grain state bits
US6157986A (en) * 1997-12-16 2000-12-05 Advanced Micro Devices, Inc. Fast linear tag validation unit for use in microprocessor
US6189112B1 (en) * 1998-04-30 2001-02-13 International Business Machines Corporation Transparent processor sparing
US6282554B1 (en) * 1998-04-30 2001-08-28 Intel Corporation Method and apparatus for floating point operations and format conversion operations
US6332181B1 (en) * 1998-05-04 2001-12-18 International Business Machines Corporation Recovery mechanism for L1 data cache parity errors
US6366946B1 (en) * 1998-12-16 2002-04-02 Microsoft Corporation Critical code processing management
US6636950B1 (en) * 1998-12-17 2003-10-21 Massachusetts Institute Of Technology Computer architecture for shared memory access
GB2345160B (en) * 1998-12-23 2003-08-20 Ibm Virtual machine memory management
JP3611295B2 (ja) * 2000-03-09 2005-01-19 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータシステム、メモリ管理方法及び記憶媒体
US6748496B1 (en) * 2000-04-18 2004-06-08 Ati International Srl Method and apparatus for providing cacheable data to a peripheral device
US6757891B1 (en) * 2000-07-12 2004-06-29 International Business Machines Corporation Method and system for reducing the computing overhead associated with thread local objects
US6502170B2 (en) * 2000-12-15 2002-12-31 Intel Corporation Memory-to-memory compare/exchange instructions to support non-blocking synchronization schemes
AU2002231289A1 (en) * 2000-12-19 2002-07-01 Coolernet, Inc. System and method for multimedia authoring and playback
US6748501B2 (en) * 2000-12-30 2004-06-08 International Business Machines Corporation Microprocessor reservation mechanism for a hashed address system
JP4434534B2 (ja) * 2001-09-27 2010-03-17 株式会社東芝 プロセッサ・システム
US6785774B2 (en) * 2001-10-16 2004-08-31 International Business Machines Corporation High performance symmetric multiprocessing systems via super-coherent data mechanisms
GB2381092B (en) * 2001-10-19 2005-10-19 Ibm Object locking in a shared VM environment
US6854039B1 (en) * 2001-12-05 2005-02-08 Advanced Micro Devices, Inc. Memory management system and method providing increased memory access security
US20030126379A1 (en) * 2001-12-31 2003-07-03 Shiv Kaushik Instruction sequences for suspending execution of a thread until a specified memory access occurs
US6918030B2 (en) * 2002-01-10 2005-07-12 International Business Machines Corporation Microprocessor for executing speculative load instructions with retry of speculative load instruction without calling any recovery procedures
JP3866597B2 (ja) * 2002-03-20 2007-01-10 株式会社東芝 内部メモリ型耐タンパプロセッサおよび秘密保護方法
US7269717B2 (en) * 2003-02-13 2007-09-11 Sun Microsystems, Inc. Method for reducing lock manipulation overhead during access to critical code sections
US7089373B2 (en) * 2003-06-12 2006-08-08 International Business Machines Corporation Shadow register to enhance lock acquisition
US7287126B2 (en) * 2003-07-30 2007-10-23 Intel Corporation Methods and apparatus for maintaining cache coherency
US20050138306A1 (en) * 2003-12-19 2005-06-23 Panchbudhe Ankur P. Performance of operations on selected data in a storage area
US7114036B2 (en) * 2004-01-14 2006-09-26 International Business Machines Corporation Method and apparatus for autonomically moving cache entries to dedicated storage when false cache line sharing is detected
US7562361B2 (en) * 2004-02-26 2009-07-14 Microsoft Corporation Thread-based limitation on computer application
US7421539B1 (en) * 2004-05-18 2008-09-02 Sun Microsystems, Inc. Method and system for concurrent garbage collection and mutator execution
US7594234B1 (en) * 2004-06-04 2009-09-22 Sun Microsystems, Inc. Adaptive spin-then-block mutual exclusion in multi-threaded processing
US7624236B2 (en) * 2004-12-27 2009-11-24 Intel Corporation Predictive early write-back of owned cache blocks in a shared memory computer system
EP1880278A1 (fr) * 2005-05-13 2008-01-23 Abb Research Ltd. Maintien de la consistance des donnees entre des applications integrees
US20070124546A1 (en) * 2005-11-29 2007-05-31 Anton Blanchard Automatic yielding on lock contention for a multi-threaded processor
US7987452B2 (en) * 2005-12-15 2011-07-26 International Business Machines Corporation Profile-driven lock handling
US20070162475A1 (en) * 2005-12-30 2007-07-12 Intel Corporation Method and apparatus for hardware-based dynamic escape detection in managed run-time environments

Also Published As

Publication number Publication date
CN101322106A (zh) 2008-12-10
CN102693188A (zh) 2012-09-26
WO2007078920A1 (fr) 2007-07-12
US20070162475A1 (en) 2007-07-12
EP1966703A1 (fr) 2008-09-10
CN102693188B (zh) 2015-11-18
CN101322106B (zh) 2012-04-25

Similar Documents

Publication Publication Date Title
EP1966703B1 (fr) Méthode et appareil de détection matérielle d'échappement dynamique dans des environnements d'exécution gérés
US9529611B2 (en) Cooperative memory resource management via application-level balloon
US8719543B2 (en) Systems and methods implementing non-shared page tables for sharing memory resources managed by a main operating system with accelerator devices
US8756397B2 (en) System and method for cooperative virtual machine memory scheduling
US8453015B2 (en) Memory allocation for crash dump
US20110161620A1 (en) Systems and methods implementing shared page tables for sharing memory resources managed by a main operating system with accelerator devices
JP4668166B2 (ja) ゲストがメモリ変換されたデバイスにアクセスする方法及び装置
CN111190752B (zh) 虚拟机共享内核内存的方法及装置
US10152409B2 (en) Hybrid in-heap out-of-heap ballooning for java virtual machines
Yan et al. Hardware translation coherence for virtualized systems
US10678705B2 (en) External paging and swapping for dynamic modules
Wang et al. Memento: Architectural Support for Ephemeral Memory Management in Serverless Environments
Bakita et al. Enabling GPU memory oversubscription via transparent paging to an NVMe SSD
US20230029331A1 (en) Dynamically allocatable physically addressed metadata storage
Marathe Improving virtual memory performance in virtualized environments
Laier Towards Power-Aware Memory for Virtual Machines
Cox et al. Hardware Translation Coherence for Virtualized Systems

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20080328

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

17Q First examination report despatched

Effective date: 20080925

DAX Request for extension of the european patent (deleted)
REG Reference to a national code

Ref country code: DE

Ref legal event code: R079

Ref document number: 602006044730

Country of ref document: DE

Free format text: PREVIOUS MAIN CLASS: G06F0012020000

Ipc: G06F0012080000

GRAJ Information related to disapproval of communication of intention to grant by the applicant or resumption of examination proceedings by the epo deleted

Free format text: ORIGINAL CODE: EPIDOSDIGR1

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

RIC1 Information provided on ipc code assigned before grant

Ipc: G06F 12/08 20060101AFI20140520BHEP

Ipc: G06F 12/02 20060101ALI20140520BHEP

INTG Intention to grant announced

Effective date: 20140625

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

INTG Intention to grant announced

Effective date: 20141024

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: AT

Ref legal event code: REF

Ref document number: 714394

Country of ref document: AT

Kind code of ref document: T

Effective date: 20150415

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 602006044730

Country of ref document: DE

Effective date: 20150416

REG Reference to a national code

Ref country code: AT

Ref legal event code: MK05

Ref document number: 714394

Country of ref document: AT

Kind code of ref document: T

Effective date: 20150304

Ref country code: NL

Ref legal event code: VDEP

Effective date: 20150304

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: ES

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150304

Ref country code: LT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150304

Ref country code: SE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150304

Ref country code: FI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150304

REG Reference to a national code

Ref country code: LT

Ref legal event code: MG4D

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: AT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150304

Ref country code: LV

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150304

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150605

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: NL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150304

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150304

Ref country code: EE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150304

Ref country code: CZ

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150304

Ref country code: RO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150304

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150706

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: PL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150304

Ref country code: IS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150704

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 602006044730

Country of ref document: DE

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150304

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150304

26N No opposition filed

Effective date: 20151207

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150304

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20151231

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LU

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20151218

Ref country code: MC

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150304

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150304

REG Reference to a national code

Ref country code: IE

Ref legal event code: MM4A

REG Reference to a national code

Ref country code: FR

Ref legal event code: ST

Effective date: 20160831

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CH

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20151231

Ref country code: LI

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20151231

Ref country code: IE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20151218

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: FR

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20151231

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: HU

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO

Effective date: 20061218

Ref country code: BG

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150304

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CY

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150304

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: TR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150304

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 20201001

Year of fee payment: 15

GBPC Gb: european patent ceased through non-payment of renewal fee

Effective date: 20211218

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20211218

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20221123

Year of fee payment: 17

P01 Opt-out of the competence of the unified patent court (upc) registered

Effective date: 20230518