Movatterモバイル変換


[0]ホーム

URL:


GB2253079A - Stable memory protection using capability tables - Google Patents

Stable memory protection using capability tables
Download PDF

Info

Publication number
GB2253079A
GB2253079AGB9125108AGB9125108AGB2253079AGB 2253079 AGB2253079 AGB 2253079AGB 9125108 AGB9125108 AGB 9125108AGB 9125108 AGB9125108 AGB 9125108AGB 2253079 AGB2253079 AGB 2253079A
Authority
GB
United Kingdom
Prior art keywords
stable
stable memory
capability
memory circuit
capabilities
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.)
Withdrawn
Application number
GB9125108A
Other versions
GB9125108D0 (en
Inventor
Brian Arthur Coghlan
Jeremy Owen Jones
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.)
Tolsys Ltd
Original Assignee
Tolsys 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 Tolsys LtdfiledCriticalTolsys Ltd
Publication of GB9125108D0publicationCriticalpatent/GB9125108D0/en
Publication of GB2253079ApublicationCriticalpatent/GB2253079A/en
Withdrawnlegal-statusCriticalCurrent

Links

Classifications

Landscapes

Abstract

A stable memory circuit includes a capability circuit 10 which has an object capability table 14 and a process capability table 15 each of which are stored within stable memory banks. The object capability table 14 stores a capability entry 16 for each page of the stable memory banks and the process capability table 15 stores a list of the object capabilities for those pages that a process may validly access. Since control and access of the capability tables takes place within the stable memory circuit the host processor is unaware of their values and thus it is impossible to modify any capabilities deliberately or accidently. The capabilities may also be used to provide central update logging and central dependency logging. A cache circuit incorporating a stable memory circuit which serves both the data and tags for the cache is disclosed. Further, stable memory circuits may also include disk and network interfaces and may be arranged in fully or partially instantiated N-dimensional configurations. <IMAGE>

Description

"Improvements in and relating to stable memory circuits"The present invention relates to stable memory circuits such as that described in British Patent Specification No.
2237666A.
In this specification, the phrase stable memory circuit" is intended to cover a circuit which includes not only banks of stable memory but also control and manager circuits associated with the stable memory banks.
The present invention is directed towards providing a stable memory circuit with improved protection, caching, disk and network support, and fully or partially instantiated Ndimensional configurations for performing various functions.
According to the invention, there is provided a stable memory circuit comprising means for storing capabilities indicating protection for and function of portions of stable memory banks of the circuit.
Ideally, there is capability for each portion of a memory bank and a means for indicating the capabilities for those portions that each process or activity associated with the stable memory circuit may access (i.e. which capabilities it "owns").
In one embodiment, there is an object capability table and a process capability table, the object capability table specifying a capability entry for each page of the memory bank, the process capability table storing object capabilities for those pages which may be accessed by each process.
The invention also provides a method of accessing a portion of a memory bank in a stable memory circuit comprising the sub-step of accessing the capability tables to determine whether or not access is allowed to that portion of the memory bank.
The invention also provides methods for using the capabilities to collect lists of those pages modified by each process, and to track and resolve dependencies between external caches.
Detailed Description of the InventionThe invention will be more clearly understood from the following description of some embodiments thereof, given by way of example only with reference to the accompanying drawings in which:Fig. 1 is a representation of a stable memory circuit ofthe prior art; Fig. 2 is a representation of one embodiment of thecapability mechanism of a stable memory circuit of theinvention;Figs. 3(a) and 3(b) are representations of stable cachecircuits incorporating a stable memory;Fig. 4 is a representation of a stable memory circuitincluding interfaces for peripheral devices;Figs. 5 and 6 are views showing network arraysincorporating stable memory circuits.
Referring to the drawings, and initially to Fig. 1 there is illustrated a stable memory circuit such as that described inBritish Patent Specification No. 2237666A. The stable memory circuit 1 comprises two or more stable memory banks 2 made up of dual-ported memory circuits such as VRAMs. The memory banks 2 are interconnected by serial data paths 3 in which is connected a stable data engine 4. The stable memory circuit 1 also includes a manager circuit 5 having serial links 6, and a parallel bus interface 7 connected to a parallel bus 8.
Whilst the protection of stable memory can be supported by simple access flags in the address path, here we describe a more elaborate mechanism, where the protection is supported by "capabilities".
Referring now to Fig. 2, one embodiment of the capability mechanism 10 forming part of a stable memory circuit of the invention is illustrated. This capability mechanism 10 uses two tables, namely, an object capability table 14 and a process capability table 15. The object capability table 14 stores a capability entry 16 for each page of the stable memory bank and the process capability table 15 stores a list of the object capabilities for those pages that a process may validly access. As shown, the object capability table is addressed using the memory address. A hash function 18 is applied to the memory address, process identifier, and node identifier in the addressing of the process capability table 15, for which re-hashing 19 may be required.An output line 20 is used for signalling that access may validly proceed and an output line 21 is used if an access may not validly proceed, in which case a "Capability Microtrap" may be generated. In this embodiment, the capability tables 14 and 15 are held within the stable memory banks themselves. Each memory board may contain entries relevant to its own memory, thereby allowing for automatic expansion of the capabilities as the capacity of each board is increased or as the number of memory boards is increased. The definition and handling of these tables should be kept entirely distinct from those for virtual memory management schemes.
The capability tables may be cached at two levels. Firstly, since the tables may be extensive, the entries in memory at any particular time may only be a cached subset of larger tables that may exist on disk. Secondly, to improve performance the parallel bus interface may cache a subset of these memory-resident entries. Parallel bus interface capability cache misses can be automatically resolved by fetching the relevant entry from memory. If no memoryresident entry exists, a Capability Microtrap can be used to interrupt the manager circuit so that it can respond. If the miss indicates a capability entry that is still on disk it may cause the entry to be fetched from disk, otherwise it may handle this as a fault. Faulting on write may be deliberately enforced after every checkpoint so that a list of those pages modified since the last checkpoint may be collected for each process.This is a very important feature, which we call "central update logging", and is an essential component of the "central dependency logging" described later.
The most important feature is that the control and accessing of the capability tables takes place within the stable memory circuit and accordingly the host processor is not aware of their values. In this way, it is impossible to modify any capabilities either deliberately or by accident.
Capability tables define the protection for memory, and imply very little about the stability state of the memory, which is properly maintained within 'stability data structures' for allocated stable memory (stability state is only appropriate to stable memory). However, capabilities should distinguish between stable and non-stable memory, simply to protect the stable memory areas, and the stability data structures can be merged into the capability tables.
"Stable pages" may be allocated either individually or in clusters. Since a stable page is composed from two or more normal pages, each with its own capability entry, the capability tables for stable pages may be replicated (as stable pages), thereby enhancing fault tolerance. The replication also allows a memory read access of the capability entry to be returned from an alternate bank to that for which the access is intended, although this requires that the address for the alternate bank by derived by such logic that it points to the correct capability entry. These entries may be cached by capability caches and checked by appropriate capability logic at the parallel bus interface, and subjected to error detection and correction in the same way as for data.
The stability data structures and capability entries may initially be set to non-stable by the manager circuit, allowing host processors to consider the stable memory circuit as a normal bank of memory of twice or more the capacity of each memory bank. Stable memory can be allocated on a perpage basis, each stable page occupying the space normally occupied by two or more (not necessarily contiguous) memory pages, thus reducing the total capacity incrementally. When no more free pages exist, the host processor must surrender the two or more normal pages for every stable page it asks the manager circuit to allocate, and remap the new stable page, implying that only host processors supporting pages virtual memory schemes may efficiently utilise this stable memory.
It will be appreciated that the use of the capabilities of the invention in this way protects the memory banks from failed host processors or software so that existing non-fail-stop processors may be used for low-cost, high-availability applications.
When only a single parallel bus interface is used, additional external write-through or blocking caches will not affect cache coherency but may affect speed, whilst external writeback caches may affect both coherency and speed. Where multiple parallel bus interfaces are used, centralised "chain directories" (for the external caches) for each parallel bus interface can indicate which cache lines are held externally, and hence which accesses to the stable memory circuit must be propagated forward to the relevant external caches attached to that parallel bus interface. Performance may be greatly improved by maintaining these in a chain directory cache at the parallel bus interface.
Checkpointing is more difficult if caches (particularly writeback caches) are used externally to the stable memory circuit, since dependencies between processes will need to be tracked, and there may be dependencies between data in the various caches that will need to be flushed together. Capabilities can be used to resolve dependencies for external caches by a technique we call "central dependency logging". The cache circuit can 'call-in' the outstanding dirty data from writeback external caches for a checkpoint, either by requesting a flush of all dirty data from the external caches that hold related data (related by dependencies), or by selectively flushing by issuing parallel bus reads -for this data (the external caches will then intervene on behalf of memory).The capability mechanism can assist in either of these procedures, since the Capability Microtrap service routines may gather a list of all the modified pages of a process since the last checkpoint (using central update logging), the ProcessCapability Tables may indicate all those external caches and processes that have shared access to those pages, and a centralised chain directory (for the external caches) within the stable memory circuit may indicated which external cache lines in a page may be dirty.
Configurations that benefit from the InventionThe above arrangements (based on capabilities) provide strong support for caching in a system that uses stable memory. They may, however, also be configured for a cache, yielding a "transport stable cache".
Referring now to Figs 3(a) and 3(b), cache circuits are illustrated incorporating stable memory circuits of the invention. In Fig. 3(a), there is illustrated a cache circuit 22 incorporating a stable memory circuit 23 which stores both the data and tags for the cache. The cache circuit 22 includes a cache controller 24 connected to a tag cache 25, a data cache 26 and an chain directory cache 27.
In Fig. 3(b), there is illustrated a cache circuit 28 having a stable memory circuit 29 which stores cache tags and a separate stable memory circuit 30 which stores cache data.
Each of the cache circuits 22 and 28 could be regarded as a "transparent stable cache" as the stable memory operations would not be monitored or visible to a host processor.
Because tags are stored in the tag cache 25 for both cache circuits, a high probability exists that the tags may be found in the tag cache without having to recall them from the associated stable memory circuit. If the tag cache is a write-through cache, then the cache controller 24 may update the tags at the tag cache 25 and leave the tag cache 25 to update the stable memory circuit 23, or 29, as the case may be. Similarly, the stable memory circuit 23 or 30, is supplemented by the write-through or blocking data cache 26, which will not affect cache coherency but may affect speed.
The cache circuits may be used as the only memory in the computing system which allows all system memory, including caches, to be stable. This simplifies the allocation and management of stable memory, as well as simplifying recovery after a fault.
With it's strong support for caching, a stable memory circuit using the capabilities of the invention may form the core of the nodes of a fully or partially instantiated N-dimensional array network computing system, mapped into a global address space and supporting a system caching mechanism that both maintains global cache coherency and minimises the traffic on the system interfaces. An internal write-through or blocking cache, or additional external write-through caches, will not affect cache coherency, but may affect speed. The capabilities may be used to allow external write-back caching.
N-dimensional array networks may be constructed in two ways, both of which are most easily explained for the fully instantiated two-dimensional case where a two-dimensional array of busses will arise. Firstly, referring to Fig. 5 which illustrates a stable memory circuit bus network 45, the busses include internal stable memory circuit parallel busses 46 (also 8), with a parallel bus 47 bridging the array bus intersections. Host processors 48 are attached to the intersection busses or stable memory circuit processors 49 are attached to the array busses. Although stable memory is attached to the array busses, it is associated with the node at the intersection of these array busses.
Referring now to Fig. 6, a parallel bus network 50 is illustrated in which the roles of the stable memory circuit and parallel buses are swapped so that the array buses are the parallel busses 51 with each stable memory circuit bridging the array bus intersections. Either stable memory circuit processors 52 are attached to the intersection busses, or host processors 53 are attached to the intersection busses via additional manager circuits, or host processors attached to the array busses. Since stable memory is attached to the intersection busses, it is naturally associated with the node at the intersection of the array busses.
This is a more expensive arrangement than that shown in Fig.
5 as every node requires at least two manager circuits instead of one. However, tolerance to faults increases, since each node has duplicated intersection busses, and so can survive a failure of any component relating to one of those busses.
Moreover, the capability mechanism at the parallel bus interface allows the stable memory to be better isolated against array bus failures, particularly those that might propagate random behaviour. For these reasons the parallel bus network might be better suited for highly reliable systems. Either form will give the same functionality.
Because the stable memory attaches to the array busses, the stable memory circuit bus network will result in much greater array bus traffic. This need not be critical, since all memory does not need to be stable, and non-stable memory may be attached to the intersection bus to reduce the usage of array bus bandwidth. To extend the array from two to N dimensions, more manager circuits must be added, thereby increasing the number of array busses. Anyone of ordinary skill in the art will recognise that most other network topologies such as hierarchical networks, can be formed from a partially instantiated N-dimensional array network.
In addition to fully and partially instantiated N-dimensional array networks constructed in the above fashion, the stable data paths may be connected in a fully or partially instantiated N-dimensional array network, with a plurality of stable data engines bridging a plurality of stable data paths, each stable data engine connecting to a plurality of memory banks.
In one embodiment that has been constructed, one dimension of a two-dimensional array of stable data paths interconnects stable data engines that connect to two memory banks in the other dimension. Again, anyone of ordinary skill in the art will recognise that most other network topologies can be formed from a partially instantiated N-dimensional array network.
Since transfer of information with a stable memory circuit occurs via the stable data paths, while normal random accesses to the memories can continue to occur concurrently (ie, transparently), the stable data paths can be intercepted or observed by a stable data engine configured in specific ways, for example, configured as a 'vector engine' to allow trivial and non-trivial vector-related functions to be applied to the stable memory data. Trivial functions can include summing or scaling a vector in one bank, and non-trivial functions can include FIR and IIR filtering functions, or for example, the computation for the response of a neuron (as a vector multiply-accumulate). Various other configurations are also described below.
A more important use of the stable data paths relates to disk and network interfaces. Referring now to Fig. 4, there is illustrated a stable memory circuit, in which parts similar to those described with reference to Fig. 1, are identified by the same reference numerals. The stable memory circuit inFig. 4 includes a disk interface 31 connected to silicon disks 32 and to rotating disks 33. The parallel bus 8 is also connected to a network interface 34 for a network 35. The stable data path 3 is connected to a disk interface 36 for silicon disks 37 and rotating disks 38. The stable data path 3 is also connected to a network interface 39 for a network 40. Note also that the interfaces 32/33 and 37/38 may be combined such that the one disk and network interface is connected to both the parallel bus 8 and the stable data path 3.The stable memory circuit described in Fig. 4 may be referred to as "transparent stable disk".
It will be appreciated that the connection of the stable data paths to disks and to a network yield very high bandwidth transparent disk and network interfaces. Accordingly, operations such as network communications may be performed by the memory itself and may be exploited in any of the ways that a stable memory circuit may be. Multiple disk and network interfaces can provide redundancy for fault tolerance.
This allows disks to be invisible to a host processor, resulting in lower processor overhead and more efficient utilisation of disks, especially rotating disks. Regarding the rotating disks, the disk drive head will generally be operated in a more efficient manner when controlled via the stable memory circuit as sectors of the disk can be written in sequence. This can be done by aggregating disk writes in a buffer in stable memory, and writing these to disk only when absolutely necessary, and even then writing in large blocks at the end of a log - the disk is written progressively from the first track to the last. This increases system performance.
In previous memoryvbased logging file systems the memory was not fault-tolerant, but in this case, since the log is supported by the stable memory circuit, it is resilient to failures, and hence it is safe to keep some committed data only in the log. Again it must be appreciated that the use of the capabilities of the invention protects the memory banks and disk and network interfaces from failed host processors or software so that existing non-fail-stop processors may be used for low-cost, high-availability solutions.
The stable memory circuit may also be configured to support both generation-based and copying 'transparent garbage collectors', and indeed for an asynchronous garbage collection of directed graphs of heap allocated storage for functional or object based language environments. In cases where the locations of references to allocated memory objects are discernable to the stable memory circuit, it can then trace these asynchronously, identifying and collecting garbage, and optionally compacting the heap region as a result. The capabilities may be used to assist in this, particularly where each referenced object has a different capability.
For stable memory circuit systems with only two banks of memory any such garbage collection is only really efficient for large objects, which can be collected transparently using the stable memory circuit block copying mechanisms. If, however, more than two banks of memory are available, and if any one of these can be exclusively allocated to the GarbageCollector (either the manager or some specialised devise) at any time, then the heap may be (transparently) block copied to this bank, where the Garbage Collector can (transparently) identify and collect garbage, and optionally compact the heap.
When finished, either the bank can simply be reallocated for access by the host processors, or the heap can be (transparently) block copied back to whence it came; either way the result is a new heap. A post process will then need to gather any intervening heap changes and update the new heap accordingly. Note that if concurrent usage of the 'old' heap is not required then the bank holding the heap can simply be allocated to the Garbage Collector, and no post processing will be required. The capabilities may then be adjusted to deny unwanted accesses while the garbage collection is in progress.
In the same vein, consistency (within a database) is often maintained by atomic commit operations using Stable Storage, where performance is limited by the disk characteristics.
Ultimately this limits the number of Transactions-Per-Second (TPS), generally considered a vital figure of merit for database systems. A stable memory circuit can be configured to perform fast and fault tolerant transparent atomic commits by buffering updates in stable memory, giving dramatically increased TPS.
The stable memory circuit can be configured as a buffer pool for database segments and persistent memory. Such segments can be mapped on demand by the stable memory circuit if it intercepts accesses by segments by translating a segment name to an appropriate position in the buffer pool. Active segments may be pinned while in use, and unpinned segments may be flushed. The capabilities can be used to provide efficient support for this mechanism by converting segment names to buffer pool addresses and managing the buffer pool. Since the buffer is supported by the stable memory circuit, it is resilient to failures, and hence it is safe to keep some persistent data only in the buffer.
In the same way, the stable memory circuit can be configured to provide efficient support for log based recovery for recoverable memory by reducing disk writes for frequently committed data. The stable memory circuit can be organised as a stable cyclic buffer log, in which multiple versions of the same data may be found, the most recent of which is near the front of the log. Committed data items may be flushed from the log asynchronously, omitting disk writes for data for which there is a later committed version in the log, thus saving disk writes.
All these configurations are materially assisted by the capabilities of the invention, which also protects against failed host processors or software so that existing non-failstop processors may be used for low-cost, high-availability solutions.
The invention is not limited to the embodiments hereinbefore described but may be varied in construction and detail.

Claims (6)

GB9125108A1991-02-191991-11-26Stable memory protection using capability tablesWithdrawnGB2253079A (en)

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
IE055391AIE910553A1 (en)1991-02-191991-02-19Improvements in and relating to stable memory circuits

Publications (2)

Publication NumberPublication Date
GB9125108D0 GB9125108D0 (en)1992-01-22
GB2253079Atrue GB2253079A (en)1992-08-26

Family

ID=11014562

Family Applications (1)

Application NumberTitlePriority DateFiling Date
GB9125108AWithdrawnGB2253079A (en)1991-02-191991-11-26Stable memory protection using capability tables

Country Status (2)

CountryLink
GB (1)GB2253079A (en)
IE (1)IE910553A1 (en)

Cited By (68)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
WO1999044137A3 (en)*1998-02-261999-11-25Sun Microsystems IncStack-based access control
US6226746B1 (en)1998-03-202001-05-01Sun Microsystems, Inc.Stack-based system and method to combine security requirements of methods
US6237009B1 (en)1996-10-112001-05-22Sun Microsystems, Inc.Lease renewal service
US6237024B1 (en)1998-03-202001-05-22Sun Microsystem, Inc.Method and apparatus for the suspension and continuation of remote processes
US6243716B1 (en)1996-10-112001-06-05Sun Microsystems, Inc.Methods and systems for distributed failure detection and recovery using leasing
US6247026B1 (en)1996-10-112001-06-12Sun Microsystems, Inc.Method, apparatus, and product for leasing of delegation certificates in a distributed system
US6253256B1 (en)1997-10-152001-06-26Sun Microsystems, Inc.Deferred reconstruction of objects and remote loading in a distributed system
US6393497B1 (en)1998-03-202002-05-21Sun Microsystems, Inc.Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6421704B1 (en)1998-03-202002-07-16Sun Microsystems, Inc.Method, apparatus, and product for leasing of group membership in a distributed system
US6438614B2 (en)1998-02-262002-08-20Sun Microsystems, Inc.Polymorphic token based control
US6446070B1 (en)1998-02-262002-09-03Sun Microsystems, Inc.Method and apparatus for dynamic distributed computing over a network
US6466947B2 (en)1998-03-202002-10-15Sun Microsystems, Inc.Apparatus and method for dynamically verifying information in a distributed system
US6480863B1 (en)1997-11-172002-11-12Sun Microsystems, Inc.Method and system for multi-entry and multi-template matching in a database
US6487607B1 (en)1998-02-262002-11-26Sun Microsystems, Inc.Methods and apparatus for remote method invocation
GB2378005A (en)*2001-07-272003-01-29Chien-Tzu HouMethod for Controlling Paged Memory Access Attributes
US6560656B1 (en)1998-02-262003-05-06Sun Microsystems, Inc.Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system
US6578044B1 (en)1997-11-172003-06-10Sun Microsystems, Inc.Method and system for typesafe attribute matching
US6598094B1 (en)1998-03-202003-07-22Sun Microsystems, Inc.Method and apparatus for determining status of remote objects in a distributed system
US6604127B2 (en)1998-03-202003-08-05Brian T. MurphyDynamic lookup service in distributed system
US6629154B1 (en)1998-02-262003-09-30Sun Microsystems, Inc.Method and system for deterministic hashes to identify remote methods
US6643650B1 (en)2000-05-092003-11-04Sun Microsystems, Inc.Mechanism and apparatus for using messages to look up documents stored in spaces in a distributed computing environment
US6654793B1 (en)1996-04-232003-11-25Sun Microsystems, Inc.System and method for facilitating dynamic loading of stub information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US6708171B1 (en)1996-04-232004-03-16Sun Microsystems, Inc.Network proxy
US6728737B2 (en)1996-10-112004-04-27Sun Microsystems, Inc.Method and system for leasing storage
US6760815B1 (en)2000-06-022004-07-06Sun Microsystems, Inc.Caching mechanism for a virtual heap
US6763440B1 (en)2000-06-022004-07-13Sun Microsystems, Inc.Garbage collection using nursery regions for new objects in a virtual heap
US6789126B1 (en)2000-05-092004-09-07Sun Microsystems, Inc.Addressing message gates in a distributed computing environment
US6789077B1 (en)2000-05-092004-09-07Sun Microsystems, Inc.Mechanism and apparatus for web-based searching of URI-addressable repositories in a distributed computing environment
US6792466B1 (en)2000-05-092004-09-14Sun Microsystems, Inc.Trusted construction of message endpoints in a distributed computing environment
US6832223B1 (en)1996-04-232004-12-14Sun Microsystems, Inc.Method and system for facilitating access to a lookup service
US6850979B1 (en)2000-05-092005-02-01Sun Microsystems, Inc.Message gates in a distributed computing environment
US6862594B1 (en)2000-05-092005-03-01Sun Microsystems, Inc.Method and apparatus to discover services using flexible search criteria
US6865657B1 (en)2000-06-022005-03-08Sun Microsystems, Inc.Garbage collector for a virtual heap
US6868447B1 (en)2000-05-092005-03-15Sun Microsystems, Inc.Mechanism and apparatus for returning results of services in a distributed computing environment
US6877163B1 (en)1999-06-142005-04-05Sun Microsystems, Inc.Method and system for dynamic proxy classes
US6898618B1 (en)2000-05-092005-05-24Sun Microsystems, Inc.Client-specified display services in a distributed computing environment
US6901518B1 (en)1999-04-082005-05-31Sun Microsystems, Inc.Method and system for establishing trust in downloaded proxy code
US6918084B1 (en)2000-05-092005-07-12Sun Microsystems, Inc.Spawning new repository spaces using information provided in advertisement schema messages
US6917976B1 (en)2000-05-092005-07-12Sun Microsystems, Inc.Message-based leasing of resources in a distributed computing environment
US6934755B1 (en)2000-06-022005-08-23Sun Microsystems, Inc.System and method for migrating processes on a network
US6941410B1 (en)2000-06-022005-09-06Sun Microsystems, Inc.Virtual heap for a virtual machine
US6950875B1 (en)2000-05-092005-09-27Sun Microsystems, Inc.Message conductors in a distributed computing environment
US6957427B1 (en)1997-10-152005-10-18Sun Microsystems, Inc.Remote object activation in a distributed system
US6957237B1 (en)2000-06-022005-10-18Sun Microsystems, Inc.Database store for a virtual heap
US6970869B1 (en)2000-05-092005-11-29Sun Microsystems, Inc.Method and apparatus to discover services and negotiate capabilities
US6973493B1 (en)2000-05-092005-12-06Sun Microsystems, Inc.Mechanism and apparatus for security of newly spawned repository spaces in a distributed computing environment
US7010573B1 (en)2000-05-092006-03-07Sun Microsystems, Inc.Message gates using a shared transport in a distributed computing environment
US7016966B1 (en)2000-05-092006-03-21Sun Microsystems, Inc.Generating results gates in a distributed computing environment
US7065574B1 (en)2000-05-092006-06-20Sun Microsystems, Inc.Messaging system using pairs of message gates in a distributed computing environment
US7072967B1 (en)2000-05-092006-07-04Sun Microsystems, Inc.Efficient construction of message endpoints
US7080078B1 (en)2000-05-092006-07-18Sun Microsystems, Inc.Mechanism and apparatus for URI-addressable repositories of service advertisements and other content in a distributed computing environment
US7188251B1 (en)2000-05-092007-03-06Sun Microsystems, Inc.System and method for secure message-based leasing of resources in a distributed computing environment
US7200848B1 (en)2000-05-092007-04-03Sun Microsystems, Inc.Migrating processes using data representation language representations of the processes in a distributed computing environment
US7243356B1 (en)2000-05-092007-07-10Sun Microsystems, Inc.Remote method invocation with secure messaging in a distributed computing environment
US7260543B1 (en)2000-05-092007-08-21Sun Microsystems, Inc.Automatic lease renewal with message gates in a distributed computing environment
US7296275B2 (en)2001-01-042007-11-13Sun Microsystems, Inc.Method and system for passing objects in a distributed system using serialization contexts
EP1870815A1 (en)*2006-06-232007-12-26Kabushiki Kaisha ToshibaAccess controller and access control method
US7370091B1 (en)2000-05-092008-05-06Sun Microsystems, Inc.Method and apparatus for obtaining space advertisements
US7395333B1 (en)2000-05-092008-07-01Sun Microsystems, Inc.Method and apparatus to obtain negotiated service advertisement
US7398533B1 (en)2000-05-092008-07-08Sun Microsystems, Inc.Remote function invocation with messaging in a distributed computing environment
US7660887B2 (en)2001-09-072010-02-09Sun Microsystems, Inc.Systems and methods for providing dynamic quality of service for a distributed system
US7716492B1 (en)2000-05-092010-05-11Oracle America, Inc.Method and apparatus to obtain service capability credentials
US7734747B2 (en)1998-02-262010-06-08Oracle America, Inc.Dynamic lookup service in a distributed system
US7756969B1 (en)2001-09-072010-07-13Oracle America, Inc.Dynamic provisioning of identification services in a distributed system
US7792874B1 (en)2004-01-302010-09-07Oracle America, Inc.Dynamic provisioning for filtering and consolidating events
US8001232B1 (en)2000-05-092011-08-16Oracle America, Inc.Event message endpoints in a distributed computing environment
US8082491B1 (en)2000-05-092011-12-20Oracle America, Inc.Dynamic displays in a distributed computing environment
US8135796B1 (en)2000-05-092012-03-13Oracle America, Inc.Mechanism and apparatus for accessing and addressing services in a distributed computing environment

Citations (3)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
GB1329721A (en)*1970-05-261973-09-12Plessey Co LtdData processing devices
GB2059652A (en)*1979-09-291981-04-23Plessey Co LtdMemory protection system using capability registers
GB2237666A (en)*1989-09-111991-05-08Trinity College DublinStable memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
GB1329721A (en)*1970-05-261973-09-12Plessey Co LtdData processing devices
GB2059652A (en)*1979-09-291981-04-23Plessey Co LtdMemory protection system using capability registers
GB2237666A (en)*1989-09-111991-05-08Trinity College DublinStable memory

Cited By (95)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US6654793B1 (en)1996-04-232003-11-25Sun Microsystems, Inc.System and method for facilitating dynamic loading of stub information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US6708171B1 (en)1996-04-232004-03-16Sun Microsystems, Inc.Network proxy
US7058954B1 (en)1996-04-232006-06-06Sun Microsystems, Inc.System and method for facilitating dynamic loading of stub information to enable a program operating in one address space to invoke processing of a remote method or procedure in another space
US6832223B1 (en)1996-04-232004-12-14Sun Microsystems, Inc.Method and system for facilitating access to a lookup service
US6938263B2 (en)1996-04-232005-08-30Sun Microsystems, Inc.System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US6247026B1 (en)1996-10-112001-06-12Sun Microsystems, Inc.Method, apparatus, and product for leasing of delegation certificates in a distributed system
US6519615B1 (en)1996-10-112003-02-11Sun Microsystems, Inc.Method and system for leasing storage
US6704756B2 (en)1996-10-112004-03-09Sun Microsystems, Inc.Methods, apparatus, and product for distributed garbage collection
US6263350B1 (en)1996-10-112001-07-17Sun Microsystems, Inc.Method and system for leasing storage
US6314435B1 (en)1996-10-112001-11-06Sun Microsystems, Inc.Methods, apparatus, and product for distributed garbage collection
US6327596B1 (en)1996-10-112001-12-04Sun Microsystems, Inc.Methods, apparatus, and product for distributed garbage collection
US6564240B2 (en)1996-10-112003-05-13Sun Microsystems, Inc.Method, apparatus, and product for leasing of group membership in a distributed system
US6237009B1 (en)1996-10-112001-05-22Sun Microsystems, Inc.Lease renewal service
US6816875B2 (en)1996-10-112004-11-09Sun Microsystems IncMethods, apparatus, and product for distributed garbage collection
US6243716B1 (en)1996-10-112001-06-05Sun Microsystems, Inc.Methods and systems for distributed failure detection and recovery using leasing
US6925644B2 (en)1996-10-112005-08-02Sun Microsystems, Inc.Method, apparatus, and product for leasing of group membership in a distributed system
US6449648B1 (en)1996-10-112002-09-10Sun Microsystems, Inc.Lease renewal service
US7509360B2 (en)1996-10-112009-03-24Sun Microsystems, Inc.Methods, apparatus, and product for distributed garbage collection
US6728737B2 (en)1996-10-112004-04-27Sun Microsystems, Inc.Method and system for leasing storage
US6760736B2 (en)1996-10-112004-07-06Sun Microsystems, Inc.Methods and systems for distributed failure detection and recovery using leasing techniques
US6957427B1 (en)1997-10-152005-10-18Sun Microsystems, Inc.Remote object activation in a distributed system
US6253256B1 (en)1997-10-152001-06-26Sun Microsystems, Inc.Deferred reconstruction of objects and remote loading in a distributed system
US6480863B1 (en)1997-11-172002-11-12Sun Microsystems, Inc.Method and system for multi-entry and multi-template matching in a database
US6578044B1 (en)1997-11-172003-06-10Sun Microsystems, Inc.Method and system for typesafe attribute matching
US6138238A (en)*1997-12-112000-10-24Sun Microsystems, Inc.Stack-based access control using code and executor identifiers
US6934758B2 (en)1997-12-112005-08-23Sun Microsystems, Inc.Stack-based access control using code and executor identifiers
US6389540B1 (en)1998-02-262002-05-14Sun Microsystems, Inc.Stack based access control using code and executor identifiers
US7210148B2 (en)1998-02-262007-04-24Sun Microsystems, Inc.Method and apparatus for dynamic distributed computing over a network
US8713089B2 (en)1998-02-262014-04-29Oracle America, Inc.Dynamic lookup service in a distributed system
WO1999044137A3 (en)*1998-02-261999-11-25Sun Microsystems IncStack-based access control
US6438614B2 (en)1998-02-262002-08-20Sun Microsystems, Inc.Polymorphic token based control
US6560656B1 (en)1998-02-262003-05-06Sun Microsystems, Inc.Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system
US6446070B1 (en)1998-02-262002-09-03Sun Microsystems, Inc.Method and apparatus for dynamic distributed computing over a network
US6487607B1 (en)1998-02-262002-11-26Sun Microsystems, Inc.Methods and apparatus for remote method invocation
US7734747B2 (en)1998-02-262010-06-08Oracle America, Inc.Dynamic lookup service in a distributed system
US6629154B1 (en)1998-02-262003-09-30Sun Microsystems, Inc.Method and system for deterministic hashes to identify remote methods
US6466947B2 (en)1998-03-202002-10-15Sun Microsystems, Inc.Apparatus and method for dynamically verifying information in a distributed system
US9183066B2 (en)1998-03-202015-11-10Oracle America Inc.Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6598094B1 (en)1998-03-202003-07-22Sun Microsystems, Inc.Method and apparatus for determining status of remote objects in a distributed system
US6421704B1 (en)1998-03-202002-07-16Sun Microsystems, Inc.Method, apparatus, and product for leasing of group membership in a distributed system
US6393497B1 (en)1998-03-202002-05-21Sun Microsystems, Inc.Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6237024B1 (en)1998-03-202001-05-22Sun Microsystem, Inc.Method and apparatus for the suspension and continuation of remote processes
US6226746B1 (en)1998-03-202001-05-01Sun Microsystems, Inc.Stack-based system and method to combine security requirements of methods
US6604127B2 (en)1998-03-202003-08-05Brian T. MurphyDynamic lookup service in distributed system
US6901518B1 (en)1999-04-082005-05-31Sun Microsystems, Inc.Method and system for establishing trust in downloaded proxy code
US6877163B1 (en)1999-06-142005-04-05Sun Microsystems, Inc.Method and system for dynamic proxy classes
US6898618B1 (en)2000-05-092005-05-24Sun Microsystems, Inc.Client-specified display services in a distributed computing environment
US7260543B1 (en)2000-05-092007-08-21Sun Microsystems, Inc.Automatic lease renewal with message gates in a distributed computing environment
US6868447B1 (en)2000-05-092005-03-15Sun Microsystems, Inc.Mechanism and apparatus for returning results of services in a distributed computing environment
US6918084B1 (en)2000-05-092005-07-12Sun Microsystems, Inc.Spawning new repository spaces using information provided in advertisement schema messages
US6917976B1 (en)2000-05-092005-07-12Sun Microsystems, Inc.Message-based leasing of resources in a distributed computing environment
US9110711B2 (en)2000-05-092015-08-18Oracle International CorporationDynamic displays in a distributed computing environment
US6862594B1 (en)2000-05-092005-03-01Sun Microsystems, Inc.Method and apparatus to discover services using flexible search criteria
US6643650B1 (en)2000-05-092003-11-04Sun Microsystems, Inc.Mechanism and apparatus for using messages to look up documents stored in spaces in a distributed computing environment
US6850979B1 (en)2000-05-092005-02-01Sun Microsystems, Inc.Message gates in a distributed computing environment
US8135796B1 (en)2000-05-092012-03-13Oracle America, Inc.Mechanism and apparatus for accessing and addressing services in a distributed computing environment
US6950875B1 (en)2000-05-092005-09-27Sun Microsystems, Inc.Message conductors in a distributed computing environment
US6792466B1 (en)2000-05-092004-09-14Sun Microsystems, Inc.Trusted construction of message endpoints in a distributed computing environment
US8082491B1 (en)2000-05-092011-12-20Oracle America, Inc.Dynamic displays in a distributed computing environment
US6970869B1 (en)2000-05-092005-11-29Sun Microsystems, Inc.Method and apparatus to discover services and negotiate capabilities
US6973493B1 (en)2000-05-092005-12-06Sun Microsystems, Inc.Mechanism and apparatus for security of newly spawned repository spaces in a distributed computing environment
US7010573B1 (en)2000-05-092006-03-07Sun Microsystems, Inc.Message gates using a shared transport in a distributed computing environment
US7016966B1 (en)2000-05-092006-03-21Sun Microsystems, Inc.Generating results gates in a distributed computing environment
US6789077B1 (en)2000-05-092004-09-07Sun Microsystems, Inc.Mechanism and apparatus for web-based searching of URI-addressable repositories in a distributed computing environment
US7065574B1 (en)2000-05-092006-06-20Sun Microsystems, Inc.Messaging system using pairs of message gates in a distributed computing environment
US7072967B1 (en)2000-05-092006-07-04Sun Microsystems, Inc.Efficient construction of message endpoints
US7080078B1 (en)2000-05-092006-07-18Sun Microsystems, Inc.Mechanism and apparatus for URI-addressable repositories of service advertisements and other content in a distributed computing environment
US7188251B1 (en)2000-05-092007-03-06Sun Microsystems, Inc.System and method for secure message-based leasing of resources in a distributed computing environment
US7200848B1 (en)2000-05-092007-04-03Sun Microsystems, Inc.Migrating processes using data representation language representations of the processes in a distributed computing environment
US6789126B1 (en)2000-05-092004-09-07Sun Microsystems, Inc.Addressing message gates in a distributed computing environment
US7243356B1 (en)2000-05-092007-07-10Sun Microsystems, Inc.Remote method invocation with secure messaging in a distributed computing environment
US8001232B1 (en)2000-05-092011-08-16Oracle America, Inc.Event message endpoints in a distributed computing environment
US7716492B1 (en)2000-05-092010-05-11Oracle America, Inc.Method and apparatus to obtain service capability credentials
US7577834B1 (en)2000-05-092009-08-18Sun Microsystems, Inc.Message authentication using message gates in a distributed computing environment
US7370091B1 (en)2000-05-092008-05-06Sun Microsystems, Inc.Method and apparatus for obtaining space advertisements
US7395333B1 (en)2000-05-092008-07-01Sun Microsystems, Inc.Method and apparatus to obtain negotiated service advertisement
US7398533B1 (en)2000-05-092008-07-08Sun Microsystems, Inc.Remote function invocation with messaging in a distributed computing environment
US7412518B1 (en)2000-05-092008-08-12Sun Microsystems, Inc.Method and apparatus for proximity discovery of services
US7426721B1 (en)2000-05-092008-09-16Sun Microsystems, Inc.Transformation of objects between a computer programming language and a data representation language
US7444644B1 (en)2000-05-092008-10-28Sun Microsystems, Inc.Secure access of objects generated from data representation language representations of the objects in a distributed computing environment
US7458082B1 (en)2000-05-092008-11-25Sun Microsystems, Inc.Bridging between a data representation language message-based distributed computing environment and other computing environments using proxy service
US7548946B1 (en)2000-05-092009-06-16Sun Microsystems, Inc.Pre-generated message endpoints
US6874066B2 (en)2000-06-022005-03-29Sun Microsystems, Inc.Caching mechanism for a virtual heap
US6865657B1 (en)2000-06-022005-03-08Sun Microsystems, Inc.Garbage collector for a virtual heap
US6934755B1 (en)2000-06-022005-08-23Sun Microsystems, Inc.System and method for migrating processes on a network
US6763440B1 (en)2000-06-022004-07-13Sun Microsystems, Inc.Garbage collection using nursery regions for new objects in a virtual heap
US6760815B1 (en)2000-06-022004-07-06Sun Microsystems, Inc.Caching mechanism for a virtual heap
US6941410B1 (en)2000-06-022005-09-06Sun Microsystems, Inc.Virtual heap for a virtual machine
US6957237B1 (en)2000-06-022005-10-18Sun Microsystems, Inc.Database store for a virtual heap
US7296275B2 (en)2001-01-042007-11-13Sun Microsystems, Inc.Method and system for passing objects in a distributed system using serialization contexts
GB2378005A (en)*2001-07-272003-01-29Chien-Tzu HouMethod for Controlling Paged Memory Access Attributes
US7756969B1 (en)2001-09-072010-07-13Oracle America, Inc.Dynamic provisioning of identification services in a distributed system
US7660887B2 (en)2001-09-072010-02-09Sun Microsystems, Inc.Systems and methods for providing dynamic quality of service for a distributed system
US7792874B1 (en)2004-01-302010-09-07Oracle America, Inc.Dynamic provisioning for filtering and consolidating events
EP1870815A1 (en)*2006-06-232007-12-26Kabushiki Kaisha ToshibaAccess controller and access control method

Also Published As

Publication numberPublication date
IE910553A1 (en)1992-08-26
GB9125108D0 (en)1992-01-22

Similar Documents

PublicationPublication DateTitle
GB2253079A (en)Stable memory protection using capability tables
US6912669B2 (en)Method and apparatus for maintaining cache coherency in a storage system
EP0349122B1 (en)Method and apparatus for filtering invalidate requests
US7130956B2 (en)Storage system including hierarchical cache metadata
US6243795B1 (en)Redundant, asymmetrically parallel disk cache for a data storage system
US9916201B2 (en)Write performance in fault-tolerant clustered storage systems
US7130957B2 (en)Storage system structure for storing relational cache metadata
US5897664A (en)Multiprocessor system having mapping table in each node to map global physical addresses to local physical addresses of page copies
US6675264B2 (en)Method and apparatus for improving write performance in a cluster-based file system
US5435004A (en)Computerized system and method for data backup
US8396937B1 (en)Efficient hardware scheme to support cross-cluster transactional memory
EP0569212A1 (en)Method and means for fast writing data to LRU cached based DASD arrays under diverse fault tolerant modes
US8145870B2 (en)System, method and computer program product for application-level cache-mapping awareness and reallocation
US5504857A (en)Highly available fault tolerant relocation of storage with atomicity
JPH0683706A (en)Method for maintaining common data coherency in sisplex
JPH09511088A (en) Highly Available Error Self-Healing Shared Cache for Multiprocessor Systems
JP3866447B2 (en) Directory entry allocation system and method for use in multiprocessor node data processing system
US5809526A (en)Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation
JPH08235052A (en)System and method for storage of address tag into directory
US7721047B2 (en)System, method and computer program product for application-level cache-mapping awareness and reallocation requests
Kermarrec et al.Design, implementation and evaluation of ICARE: an efficient recoverable DSM
US6298419B1 (en)Protocol for software distributed shared memory with memory scaling
KR20230148736A (en)Systems and methods for a cross-layer key-value store architecture with a computational storage device
Strom et al.A recoverable object store
Shrira et al.How to scale transactional storage systems

Legal Events

DateCodeTitleDescription
WAPApplication withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)

[8]ページ先頭

©2009-2025 Movatter.jp