US5025367A - Storage allocation and garbage collection using liberate space tokens - Google Patents
Storage allocation and garbage collection using liberate space tokens Download PDFInfo
- Publication number
- US5025367A US5025367A US07/055,716 US5571687A US5025367A US 5025367 A US5025367 A US 5025367A US 5571687 A US5571687 A US 5571687A US 5025367 A US5025367 A US 5025367A
- Authority
- US
- United States
- Prior art keywords
- space
- allocator
- address
- token
- memory section
- 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.)
- Expired - Lifetime
Links
- 230000015654 memory Effects 0.000 claims abstract description 122
- 238000000034 method Methods 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 11
- 238000013500 data storage Methods 0.000 claims 2
- 241000269627 Amphiuma means Species 0.000 claims 1
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 6
- 239000000872 buffer Substances 0.000 description 5
- 238000012546 transfer Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000003245 working effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
- Y10S707/99957—Garbage collection
Definitions
- the present invention relates to a method and device for parallel storage allocation in electronic computers.
- FIG. 1a illustrates the relationship between a processing device and a memory device having the facility for controlling memory space usage.
- a memory device 100 comprises a distribution (allocation) section 100a, a memory section 100b, a delay (defer) processing section 100c and a clear control section 100d.
- Communications channels 101 and 102 lead from processing device 103 to the memory device 100 and from the memory device 100 to the processing device 103 respectively.
- the exchange of information between the operating device 103 and the memory device 100 is all done by the transmission of single data packets, hereinafter referred to as "tokens".
- tokens When the distribution section 100a of the memory device 100 receives a memory space request token 104 it sends a start address for the space (which depends on the size of space required) in the form of a token 105.
- the memory section 100b can also receive a write token 106 or a read request token 107. In response to the former, the memory 100b enters the parameter V into address A, and in response to the latter reads the contents V of address A, and sends the result to the processing device 103 in the form of a data token 108.
- Tokens are not sent directly between the delay management section 100c or the clear control device 100d and the operating device 103.
- the delay management section 100c and the memory section 100b respectively perform the operations of handling read request tokens relating to data which has not yet arrived in the memory section and clearing memory space which the clear control device 100d has finished using.
- the different types of token can be recognized from a code in each token.
- FIG. 1b illustrates schematic examples of each kind of token.
- each token comprises four fields, namely a code field 451, a second field 452, a third field 453, and a fourth field 454.
- the code field 451 is the one used to distinguish between different kinds of token. In the example of FIG. 1 it is allotted four bits, from which can be represented sixteen different kinds of token. For the sake of simplicity, the illustrated fields 452 to 454 each comprise 24 bits, but any length can be selected to suit a particular system. Shaded areas in the diagrams are fields which are not used.
- FIGS. 2a to 2c illustrate in detail the functions of the above-mentioned distribution section 100a and memory section 100b.
- the distribution section 100a seeks and reserves memory space (hereinafter referred to as "space") which is not in use to meet the requirements of the processing device 103. Then it sends a pointer token which identifies the reserved space to the processing device 103.
- channels 201 and 202 carry tokens from and to the processing device 103 respectively, and correspond to the parts labelled 101, 102 in FIG. 1a.
- a distribution table 220 comprises the following items: a valid flag 221, a size field 222, and a start address field 223. When the valid flag 221 is 1 this means that the space to which the associated fields 222 and 223 relate is not in use, that is "free".
- the size field 222 and start address field 223 contain the size and start address of the free space.
- the status address of each space in memory section 100b and the last address of the space comprise a free flag 224 and a size flag 225.
- the free flag 224 is "1" this means its space is not in use; size flag 225 holds the same contents as the size field of the distribution table 220.
- a space request token SRQ 203 which is sent from the processing device 103 to the distribution device 100a includes the two parameters Zr, the size of the space required, and Ra. The workings of this system will now be described in greater detail.
- the distribution section 100a checks the distribution table 220 and searches for an address which stores a value as large as the value for the parameter Zr of the space request token SRQ 203. If such an address is found, the parameter Ra of the space request and the start address of the related space are associated. For example, as shown in FIG. 2b, the address related to space N may be located, and if so a pointer token (PNT) 204 is generated.
- PNT pointer token
- FIG. 2b illustrates the processes which occur when use of the space M is finished (i.e. when the space M has become free).
- the start address SL of the space formed from the joining together of the space L and the space N, and its size (ZL+ZM) are calculated.
- the address which holds the start address (SM) of the space to be registered is not present in the distribution table 200. Accordingly the start address SM and the size ZM are entered into an address in which the valid flag is "0", and the valid flag is changed to "1".
- FIG. 3 shows a system wherein the distribution section 100a and the memory section 100b are separated, and communication between them is carried out entirely by means of tokens.
- the word "separated” hereinafter means communicating completely by means of sending tokens.
- token channels 306 and 307 connect the distribution section 100a and the memory section 100b.
- the channels carry a space request token (RSV) 308 and a liberate space token (LIB) 309.
- the space request token results from the distribution section 100a seeking to turn free space into space in use, and the liberate space token (LIB) 309 results from free space becoming available which must be recorded in the distribution table.
- FIGS. 4a to 4h The problems of this system are explained with reference to FIGS. 4a to 4h.
- FIG. 4a shows the same kind of situation as FIG. 2a, and a space request token (SRQ) 303 is being sent from the processing device 103. In the memory, spaces L and N are free, and space M is in use. The process will be explained below:
- the distribution section 100a checks to see if there is enough free space to satisfy the request. Assuming the space N can accommodate Zr (the requested space) space N is looked up in the distribution table. The distribution section 100a reads the advance address SN and size ZN from the distribution table, joins to these the parameter Ra of the space request token, and referring to FIG. 4b, sends the result to the processing device 103 as a pointer token 404. At the same time, a reserve space token (RSV) 408 which includes SN and ZN as parameters is sent to the memory section 100b. Then the valid flag of the address in the distribution table corresponding to the space N is changed to "0".
- RSV reserve space token
- FIG. 4d illustrates the case in which the space M is no longer in use.
- the memory section 100b When the memory section 100b detects that the space M is no longer in use, it enters "1" into the valid flags in the first and last addresses of space M. Next, in order to determine whether the neighboring spaces are free or not, it reads the addresses adjacent to M, namely (SM-1) and (SM+ZM). As a result of this it is known that the space L is free. From this the start address and size of the space formed by combining L and M and the parameters (SL and ZL+ZM in FIG. 4d) are sent to the distribution device 100a in the form of a liberate space token (LIB) 409.
- LIB liberate space token
- the distribution section 100a When the distribution section 100a receives a liberate space token 409, it extracts its address parameter SL, and searches for the address in the distribution table which holds the parameter SL as a start address. Referring to FIG. 4d, the result is that the address 430 is located in the distribution table, and a new space size (ZL+ZM) is entered in it. The resulting distribution table is as shown in FIG. 4e.
- the distribution section 100a seeks free space and locates space L for example. As a result of this, referring to FIG. 4f, a pointer token 411 and a space request token 412 are generated, and at the same time a "0" is entered into the valid flag of the corresponding address 430.
- the liberate space token 409 When the liberate space token 409 subsequently reaches the distribution section 100a, it seeks an address with the start address SL in the distribution table. No such address is found since the valid flag of address 430 is "0", and therefore as shown in FIG. 4g the start address SL and size (ZL+ZM) are entered into the table as a new space.
- a space request token 412 (shown in FIG. 4f) arrives at the memory section 100b, and as a result the memory section 100b enters "0" into the valid flag of the space which starts with the address SL.
- FIG. 4h The form of tokens RSV 408 of FIGS. 4b, 4d and 4f and the token LIB 409 are shown in FIG. 4h.
- FIGS. 491 to 494 correspond to 451 to 454 of FIG. 1b.
- the address 430 indicates that the space with start address SL and size (ZL+ZM) is free, even though that space is in use, and the contents of the distribution section and those of the memory section therefore do not agree.
- the root of this problem is that there is a time interval between the time that the space M is no longer in use and the memory section 100b has joined adjacent spaces, and the time at which the results of this are entered into the distribution table, and a space request process has been initiated during this time interval. In order to avoid this, it is necessary to establish a special signal line between the memory section 100b and the distribution section 100a and to prevent a space request being effected in the above-mentioned time. When memory space becomes free, it is essential to determine whether or not there is a corresponding store address in the distribution table, and that takes time.
- a parallel storage allocation method in which a distribution section including a series of allocators controls the allocation of memory spaces in a memory section, wherein each memory space which is available for use is associated with a respective allocator and stores an identifier for the respective allocator, data identifying allocators not in use is stored, a list of allocators associated with spaces which are available for use is stored, a check is made each time a memory space is no longer in use to determine the allocator identifier of any space which is available for use and can be combined with the memory space which is no longer in use, a liberate space data is generated when a space is no longer in use, the liberate space data including a first identifier which is the identifier of an allocator selected from the allocators not in use and a second identifier which is the identifier of the allocator related to any space which can be combined with the space which is no longer in use, the distribution section reviews the second identifier
- the present invention also provides a parallel storage allocation device having a distribution section including a series of allocators, and a memory section in which the allocation of memory spaces is controlled by the distribution section, the device comprising means for storing in each memory space which is available for use a respective allocator identifier, means for storing data identifying allocators not in use, means for storing a list of allocators associated with spaces which are available for use, means for detecting when a memory space is no longer in use, means for determining the allocator identifier of any space which is available for use and can be combined with a detected memory space which is no longer in use, means for generating liberate space data related to a detected memory space which is no longer in use, the liberate space data comprising a first identifier which is the identifier of an allocator selected from the allocators not in use and a second identifier which is the identifier of the allocator related to any space which can be combined with the space which is no longer in use
- FIG. 1a is a block diagram of a prior art distribution processing device
- FIG. 1b is a schematic diagram of the form of tokens used in the device of FIG. 1a;
- FIGS. 2a to 2c, FIG. 3, FIGS. 4a to 4h and FIG. 5 are schematic diagrams illustrating the prior art distribution process
- FIGS. 2a, 2b and 2c respectively show receipt of an SRQ, generation of a PNT, and combination of two adjacent memory spaces;
- FIG. 3 is a simple illustration of separate distribution and memory sections and communications therebetween;
- FIGS. 4a to 4h illustrate token exchanges between the distribution section and memory section of FIG. 3;
- FIG. 4a illustrates conditions before receipt of an SRQ
- FIG. 4b shows the generation of PNT and RSV tokens in response to receipt of an SRQ
- FIG. 4c illustrates the generation of a further SRQ and a LIB token
- FIG. 4e illustrates the case in which an LIB signal has been processes in the distribution section before receipt of the further SRQ
- FIG. 4f illustrates the case of an LIB being received after the further SRQ
- FIG. 4g illustrates a problem that can arise with a known system
- FIG. 4h illustrates the token structure
- FIG. 8a illustrates an embodiment of the present upon receipt of an SRQ
- FIG. 8b illustrates the response to receipt of an SRQ
- FIG. 8c illustrates the generation of an FDA
- FIG. 8d illustrates the generation of an LIB and receipt of a further SRQ
- FIG. 8e illustrates the generation of a CMB before receipt of a further SRQ
- FIG. 8f illustrates the generation of a further LIB signal
- FIG. 8g illustrates the generation of RSV signals in response to receipt of the further SRA signal
- FIG. 8h illustrates the token structure
- FIG. 9a illustrates a system incorporating more than one distribution section
- FIG. 9b illustrates the generation of independent pointer tokens
- FIG. 9c illustrates conditions immediately before a space becomes available for use.
- FIG. 9d illustrates the generation of an LIB token
- FIG. 9e illustrates the generation of a CMB token.
- FIG. 6 is a schematic diagram of a memory distribution device in accordance with the present invention.
- FIG. 7 is a schematic diagram of components of the device of FIG. 6;
- FIGS. 8a to 8h illustrate the operation of the device of FIGS. 6 and 7;
- FIGS. 9a to 9e illustrate a further embodiment of the present invention.
- numeral 1 is a processing device which corresponds to the processing device 103 in FIG. 1a.
- Numerals 2 and 3 identify a distribution section and a memory section respectively, which correspond to the distribution section 100a and the memory section 100b in FIG. 1a respectively.
- Numerals 4 and 5 identify communication devices which transfer tokens between the processing device 1 and the distribution section 2 and the memory section 3, and correspond to the channels 101 and 102 in FIG. 1a respectively.
- a buffer 2a temporarily stores tokens which are being sent from the communication section 4.
- Numeral 2b identifies a control section which determines the kind of token being entered and, depending on the kind, either stores the parameters of the token in memory 2c, or reads the contents of the memory 2c.
- Numeral 2d identifies a buffer the purpose of which is to transfer tokens from the control section 2b to the communication device 5.
- numeral 3a identifies a buffer which temporarily stores tokens which have been sent from the communications device 4.
- Numeral 3b identifies a control section which determines the type of token being entered and, depending on the type, either stores the parameters of the token in a memory 3c or reads the contents of the memory 3c.
- Numeral 3d identifies a buffer the purpose of which is to transfer tokens which have been sent from the control section 3d to the communication device 5.
- numeral 30 identifies a memory space in the memory 2c of the distribution section 2
- numeral 31 identifies the memory space in the memory 3c of the memory section 3.
- Numerals 32, 33, 34 and 35 are the channels along which tokens are sent and received, and correspond to the communication devices 4 and 5 in FIG. 6.
- Numeral 603 identifies a space request token
- numeral 604 identifies a pointer token
- numeral 608 identifies a reserve space token
- numeral 609 identifies a liberate space token, and these correspond to the tokens 303, 304, 308 and 309 respectively from FIG. 3.
- Numeral 613 identifies a combine space token (CMB)
- numeral 614 identifies a free allocator token (FDA).
- Numerals 630 to 632 identify allocators, and one of the allocators corresponds to the free space in the memory section 3 of FIG. 6.
- the allocators 630 to 632 form a double chain series which consists of the four words, F-link, B-link, size and start address.
- F-link and B-link indicate the next allocator in the series and the previous allocator in the series respectively.
- the size and start address relate to the corresponding free spaces.
- Numeral 636 identifies the valid flag which indicates when the allocator corresponds to a free space.
- the first and last addresses of the free space within the memory 31 contains the related distribution information.
- the first or start address comprises a valid flag 633, an allocator pointer 634, and a size field 635, but the last word only has the valid flag and the size field.
- the valid flag 633 is "1" when the space is free and "0" when the space is in use.
- the allocator pointer 634 holds the address within the distribution section 2 of the allocator which relates to the space. In a space which is in use, there are only the valid flag 633 and the size field 635 of the beginning address and last address.
- FIGS. 6 and 7 show only one example of a detailed construction in accordance with the present invention.
- the present invention need not be limited to the buffers 2a and 2d and the control section 2b in the distribution section.
- the basic operation of this example of the present invention can best be understood from FIGS. 8a to 8f.
- the distribution section 2 scans the allocator series and seeks a free space of appropriate size. For example, on discovering the space N, the distribution section 2 reads its start address SN and size ZN from within the corresponding allocator A2, adds the parameter Ra of the space request token, and referring to FIG. 8b, sends this to the processing device 103 as a pointer token 604. At the same time it sends a reserve space token 608 to the memory section 3.
- the allocator A2 which corresponds to the space N is taken from the series of allocators, and becomes a free allocator.
- the memory section 3 When the memory section 3 receives (FDA) token 614, it stores the free allocator address. When a memory space is no longer being used, the memory section 3 detects this and starts the process of making the content of the allocator series within the distribution section 2 and the indicated contents of the memory space conform to each other. This process will be described hereinbelow. Referring to FIG. 8c, when space M for example is no longer in use, this means that space M is now a free space.
- memory 3 When memory 3 detects that the space M is no longer in use, it enters a "1" in the free flag of the first and last addresses of this space. Then, in order to determine whether or not the spaces neighboring the space M are free, it reads the addresses (SM-1) and (SM+ZM) which is equal to SN to determine their free flags. The result of this in the situation illustrated in FIG. 8d is that it is discovered that the space L is free.
- the distribution section 2 receives from this token the address A1 of the allocator which corresponds to the space L adjacent to space M.
- the distribution section 2 investigates the valid flag of the address A1.
- this flag is "1" so the distribution section realizes that space L is free and the spaces L and M can be joined together.
- FIG. 8e it generates the combine space token (CMB) 613.
- the CMB token holds the start addresses of the two spaces to be joined together, SL and SM. "0" is then entered into the valid flag of the allocator A1.
- LIB token 609 has four parameters, and is different from the LIB token in FIG. 4h. Even though the distribution section 2 has received the liberate space token (LIB) 609, in fact space combining cannot take place on the occasions when the new allocators are changed into a series as follows:
- FIGS. 9a to 9e show an example of a system in which there are several distribution sections 2A and 2B.
- the distribution sections 2A and 2B receive independently from the processing device 1 space request tokens 610a and 610b, and as shown in FIG. 9b independently give rise to pointer tokens 611a and 611b and space request tokens 612a and 612b.
- the operation of this can lead to contradictions and it is clear that conflict must not arise.
- FIGS. 9c to 9e are intended to illustrate an example of the situation in which a space B is no longer in use.
- a liberate space token 609b is sent to a distribution section 2B which holds an allocator corresponding to the space C.
- the allocator pointer indicates the start of the free space and includes information to distinguish the distribution section 2A or 2B. From this, it is possible to decide the correct destination for the liberate space release token 609b, and it is not necessary as it was in the previous examples to investigate the information in all, the memory 3.
- the distribution section 2B operates in exactly the same way as is described in (i) above, and sends the combine space token (CMB) to the memory section 3.
- the memory section 2 carries out the combining of the spaces just as described above.
- the workings of the situation in which a LIB token 615 indicates an allocator is not in the distribution section 2 takes place as described above in (k) and contradictions do not occur.
- each free space includes a pointer to the respective allocator, and each allocator includes a pointer to the respective free space (for example the start address) and any other desired information relating to the free space, for example its size.
- the memory device investigates whether or not that space can be combined with another free space.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
Description
Claims (5)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB868613069A GB8613069D0 (en) | 1986-05-29 | 1986-05-29 | Parallel storage allocation |
Publications (1)
Publication Number | Publication Date |
---|---|
US5025367A true US5025367A (en) | 1991-06-18 |
Family
ID=10598628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US07/055,716 Expired - Lifetime US5025367A (en) | 1986-05-29 | 1987-05-28 | Storage allocation and garbage collection using liberate space tokens |
Country Status (5)
Country | Link |
---|---|
US (1) | US5025367A (en) |
EP (1) | EP0251461B1 (en) |
JP (1) | JPS63233448A (en) |
DE (1) | DE3784387T2 (en) |
GB (1) | GB8613069D0 (en) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1993003435A1 (en) * | 1991-08-08 | 1993-02-18 | Pure Software, Inc. | Method and apparatus for identifying memory leaks and tracking pointers in a computer program |
US5247658A (en) * | 1989-10-31 | 1993-09-21 | Microsoft Corporation | Method and system for traversing linked list record based upon write-once predetermined bit value of secondary pointers |
US5247634A (en) * | 1990-03-20 | 1993-09-21 | Hewlett-Packard Company | Method of managing memory allocation by association of memory blocks with a tree structure |
US5485613A (en) * | 1991-08-27 | 1996-01-16 | At&T Corp. | Method for automatic memory reclamation for object-oriented systems with real-time constraints |
US5493652A (en) * | 1994-04-29 | 1996-02-20 | International Business Machines Corporation | Management system for a buffer memory having buffers of uniform size in which the buffers are divided into a portion of contiguous unused buffers and a portion of contiguous buffers in which at least some are used |
US5555405A (en) * | 1993-07-06 | 1996-09-10 | Digital Equipment Corporation | Method and apparatus for free space management in a forwarding database having forwarding entry sets and multiple free space segment queues |
US5561785A (en) * | 1992-10-29 | 1996-10-01 | International Business Machines Corporation | System for allocating and returning storage and collecting garbage using subpool of available blocks |
US5577246A (en) * | 1992-09-25 | 1996-11-19 | Lucent Technologies Inc. | Database memory compaction and reclamation method |
US5604902A (en) * | 1995-02-16 | 1997-02-18 | Hewlett-Packard Company | Hole plugging garbage collection for a data storage system |
US5634050A (en) * | 1992-01-29 | 1997-05-27 | Microsoft Corporation | Method and system for file system management using a flash-erasable programmable, read-only memory |
US5652864A (en) * | 1994-09-23 | 1997-07-29 | Ibm | Concurrent storage allocations or returns without need to lock free storage chain |
US5659744A (en) * | 1991-10-15 | 1997-08-19 | International Computers Limited | Data file store system with means for efficiently managing freeing of data blocks |
US5689707A (en) * | 1995-12-04 | 1997-11-18 | Ncr Corporation | Method and apparatus for detecting memory leaks using expiration events and dependent pointers to indicate when a memory allocation should be de-allocated |
WO1997046930A2 (en) * | 1996-06-06 | 1997-12-11 | Electric Communities | Process for distributed garbage collection |
US5933840A (en) * | 1997-05-19 | 1999-08-03 | International Business Machines Corporation | Garbage collection in log-structured information storage systems using age threshold selection of segments |
US5940621A (en) * | 1996-01-23 | 1999-08-17 | Hewlett-Packard Company | Language independent optimal size-based storage allocation |
US6286016B1 (en) * | 1998-06-09 | 2001-09-04 | Sun Microsystems, Inc. | Incremental heap expansion in a real-time garbage collector |
US20020133487A1 (en) * | 2001-03-15 | 2002-09-19 | Microsoft Corporation | System and method for unloading namespace devices |
US20030076764A1 (en) * | 2000-02-28 | 2003-04-24 | Yuri Iwano | File control method |
US20030149854A1 (en) * | 2001-03-15 | 2003-08-07 | Kenji Yoshino | Memory access control system and mangement method using access control ticket |
US20030188117A1 (en) * | 2001-03-15 | 2003-10-02 | Kenji Yoshino | Data access management system and management method using access control tickert |
US20090037498A1 (en) * | 2007-07-30 | 2009-02-05 | Oracle International Corporation | In-memory space management for database systems |
US20150262664A1 (en) * | 2008-07-31 | 2015-09-17 | Unity Semiconductor Corporation | Preservation circuit and methods to maintain values representing data in one or more layers of memory |
CN112306415A (en) * | 2020-11-02 | 2021-02-02 | 成都佰维存储科技有限公司 | GC flow control method and device, computer readable storage medium and electronic equipment |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4864497A (en) * | 1988-04-13 | 1989-09-05 | Digital Equipment Corporation | Method of integrating software application programs using an attributive data model database |
US5664177A (en) * | 1988-04-13 | 1997-09-02 | Digital Equipment Corporation | Data processing system having a data structure with a single, simple primitive |
JP3378594B2 (en) * | 1992-09-25 | 2003-02-17 | 富士通株式会社 | Processing unit that performs database relocation |
EP0686918A1 (en) * | 1994-05-31 | 1995-12-13 | Siemens Nixdorf Informationssysteme AG | Object management method in a data processing system, especially adapted for memory management |
EP0706130A1 (en) * | 1994-10-07 | 1996-04-10 | International Business Machines Corporation | Contiguous memory allocation process |
US6774100B2 (en) | 2000-12-06 | 2004-08-10 | Imaginative Research Associates, Inc. | Anhydrous creams, lotions and gels |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4121286A (en) * | 1975-10-08 | 1978-10-17 | Plessey Handel Und Investments Ag | Data processing memory space allocation and deallocation arrangements |
US4638424A (en) * | 1984-01-12 | 1987-01-20 | International Business Machines Corporation | Managing data storage devices connected to a digital computer |
US4755939A (en) * | 1985-12-04 | 1988-07-05 | International Computers Limited | Garbage collection in a computer system |
US4757438A (en) * | 1984-07-12 | 1988-07-12 | Texas Instruments Incorporated | Computer system enabling automatic memory management operations |
US4775932A (en) * | 1984-07-31 | 1988-10-04 | Texas Instruments Incorporated | Computer memory system with parallel garbage collection independent from an associated user processor |
US4864495A (en) * | 1986-07-30 | 1989-09-05 | Kabushiki Kaisha Toshiba | Apparatus for controlling vacant areas in buffer memory in a pocket transmission system |
US4912629A (en) * | 1986-06-26 | 1990-03-27 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Real-time garbage collection for list processing using restructured cells for increased reference counter size |
-
1986
- 1986-05-29 GB GB868613069A patent/GB8613069D0/en active Pending
-
1987
- 1987-05-15 DE DE8787304321T patent/DE3784387T2/en not_active Expired - Fee Related
- 1987-05-15 EP EP87304321A patent/EP0251461B1/en not_active Expired - Lifetime
- 1987-05-28 JP JP62132564A patent/JPS63233448A/en active Pending
- 1987-05-28 US US07/055,716 patent/US5025367A/en not_active Expired - Lifetime
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4121286A (en) * | 1975-10-08 | 1978-10-17 | Plessey Handel Und Investments Ag | Data processing memory space allocation and deallocation arrangements |
US4638424A (en) * | 1984-01-12 | 1987-01-20 | International Business Machines Corporation | Managing data storage devices connected to a digital computer |
US4757438A (en) * | 1984-07-12 | 1988-07-12 | Texas Instruments Incorporated | Computer system enabling automatic memory management operations |
US4775932A (en) * | 1984-07-31 | 1988-10-04 | Texas Instruments Incorporated | Computer memory system with parallel garbage collection independent from an associated user processor |
US4755939A (en) * | 1985-12-04 | 1988-07-05 | International Computers Limited | Garbage collection in a computer system |
US4912629A (en) * | 1986-06-26 | 1990-03-27 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Real-time garbage collection for list processing using restructured cells for increased reference counter size |
US4864495A (en) * | 1986-07-30 | 1989-09-05 | Kabushiki Kaisha Toshiba | Apparatus for controlling vacant areas in buffer memory in a pocket transmission system |
Non-Patent Citations (2)
Title |
---|
Honroritz et al., "Fundamentals of Data Structures", pp. 140-155. |
Honroritz et al., Fundamentals of Data Structures , pp. 140 155. * |
Cited By (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5247658A (en) * | 1989-10-31 | 1993-09-21 | Microsoft Corporation | Method and system for traversing linked list record based upon write-once predetermined bit value of secondary pointers |
USRE35881E (en) * | 1989-10-31 | 1998-08-25 | Microsoft Corporation | Method and system for traversing linked list record based upon write-once predetermined bit value of secondary pointers |
US5247634A (en) * | 1990-03-20 | 1993-09-21 | Hewlett-Packard Company | Method of managing memory allocation by association of memory blocks with a tree structure |
WO1993003435A1 (en) * | 1991-08-08 | 1993-02-18 | Pure Software, Inc. | Method and apparatus for identifying memory leaks and tracking pointers in a computer program |
US5485613A (en) * | 1991-08-27 | 1996-01-16 | At&T Corp. | Method for automatic memory reclamation for object-oriented systems with real-time constraints |
US5659744A (en) * | 1991-10-15 | 1997-08-19 | International Computers Limited | Data file store system with means for efficiently managing freeing of data blocks |
US6256642B1 (en) | 1992-01-29 | 2001-07-03 | Microsoft Corporation | Method and system for file system management using a flash-erasable, programmable, read-only memory |
US5898868A (en) * | 1992-01-29 | 1999-04-27 | Microsoft Corporation | Method and system for file system management using a flash-erasable, programmable, read-only memory |
US5634050A (en) * | 1992-01-29 | 1997-05-27 | Microsoft Corporation | Method and system for file system management using a flash-erasable programmable, read-only memory |
US5577246A (en) * | 1992-09-25 | 1996-11-19 | Lucent Technologies Inc. | Database memory compaction and reclamation method |
US5561785A (en) * | 1992-10-29 | 1996-10-01 | International Business Machines Corporation | System for allocating and returning storage and collecting garbage using subpool of available blocks |
US5555405A (en) * | 1993-07-06 | 1996-09-10 | Digital Equipment Corporation | Method and apparatus for free space management in a forwarding database having forwarding entry sets and multiple free space segment queues |
US5493652A (en) * | 1994-04-29 | 1996-02-20 | International Business Machines Corporation | Management system for a buffer memory having buffers of uniform size in which the buffers are divided into a portion of contiguous unused buffers and a portion of contiguous buffers in which at least some are used |
US5652864A (en) * | 1994-09-23 | 1997-07-29 | Ibm | Concurrent storage allocations or returns without need to lock free storage chain |
US5604902A (en) * | 1995-02-16 | 1997-02-18 | Hewlett-Packard Company | Hole plugging garbage collection for a data storage system |
US5689707A (en) * | 1995-12-04 | 1997-11-18 | Ncr Corporation | Method and apparatus for detecting memory leaks using expiration events and dependent pointers to indicate when a memory allocation should be de-allocated |
US5940621A (en) * | 1996-01-23 | 1999-08-17 | Hewlett-Packard Company | Language independent optimal size-based storage allocation |
WO1997046930A2 (en) * | 1996-06-06 | 1997-12-11 | Electric Communities | Process for distributed garbage collection |
WO1997046930A3 (en) * | 1996-06-06 | 1998-02-19 | Electric Communities | Process for distributed garbage collection |
US5819299A (en) * | 1996-06-06 | 1998-10-06 | Electric Communities | Process for distributed garbage collection |
US5991779A (en) * | 1996-06-06 | 1999-11-23 | Electric Communities | Process for distributed garbage collection |
US5933840A (en) * | 1997-05-19 | 1999-08-03 | International Business Machines Corporation | Garbage collection in log-structured information storage systems using age threshold selection of segments |
US6286016B1 (en) * | 1998-06-09 | 2001-09-04 | Sun Microsystems, Inc. | Incremental heap expansion in a real-time garbage collector |
US20030076764A1 (en) * | 2000-02-28 | 2003-04-24 | Yuri Iwano | File control method |
US20020133487A1 (en) * | 2001-03-15 | 2002-09-19 | Microsoft Corporation | System and method for unloading namespace devices |
US20030149854A1 (en) * | 2001-03-15 | 2003-08-07 | Kenji Yoshino | Memory access control system and mangement method using access control ticket |
US20030188117A1 (en) * | 2001-03-15 | 2003-10-02 | Kenji Yoshino | Data access management system and management method using access control tickert |
US6877018B2 (en) * | 2001-03-15 | 2005-04-05 | Microsoft Corporation | System and method for unloading namespace devices |
US7225341B2 (en) * | 2001-03-15 | 2007-05-29 | Sony Corporation | Memory access control system and management method using access control ticket |
US7664799B2 (en) * | 2007-07-30 | 2010-02-16 | Oracle International Corporation | In-memory space management for database systems |
US20090037498A1 (en) * | 2007-07-30 | 2009-02-05 | Oracle International Corporation | In-memory space management for database systems |
US20150262664A1 (en) * | 2008-07-31 | 2015-09-17 | Unity Semiconductor Corporation | Preservation circuit and methods to maintain values representing data in one or more layers of memory |
US9536607B2 (en) * | 2008-07-31 | 2017-01-03 | Unity Semiconductor Corporation | Preservation circuit and methods to maintain values representing data in one or more layers of memory |
US9830985B2 (en) | 2008-07-31 | 2017-11-28 | Unity Semiconductor Corporation | Preservation circuit and methods to maintain values representing data in one or more layers of memory |
US10453525B2 (en) | 2008-07-31 | 2019-10-22 | Unity Semiconductor Corporation | Preservation circuit and methods to maintain values representing data in one or more layers of memory |
US10971227B2 (en) | 2008-07-31 | 2021-04-06 | Unity Semiconductor Corporation | Preservation circuit and methods to maintain values representing data in one or more layers of memory |
CN112306415A (en) * | 2020-11-02 | 2021-02-02 | 成都佰维存储科技有限公司 | GC flow control method and device, computer readable storage medium and electronic equipment |
CN112306415B (en) * | 2020-11-02 | 2023-04-11 | 成都佰维存储科技有限公司 | GC flow control method and device, computer readable storage medium and electronic equipment |
Also Published As
Publication number | Publication date |
---|---|
JPS63233448A (en) | 1988-09-29 |
DE3784387D1 (en) | 1993-04-08 |
EP0251461A2 (en) | 1988-01-07 |
GB8613069D0 (en) | 1986-07-02 |
EP0251461A3 (en) | 1989-10-18 |
EP0251461B1 (en) | 1993-03-03 |
DE3784387T2 (en) | 1993-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5025367A (en) | Storage allocation and garbage collection using liberate space tokens | |
US4870571A (en) | Intercomputer communications based on message broadcasting with receiver selection | |
US5893097A (en) | Database management system and method utilizing a shared memory | |
US5896501A (en) | Multiprocessor system and parallel processing method for processing data transferred between processors | |
EP0361176A3 (en) | Method and apparatus for communicating data between multiple tasks in data processing systems | |
US6345348B2 (en) | Memory system capable of supporting different memory devices and a memory device used therefor | |
US4780815A (en) | Memory control method and apparatus | |
EP0366344B1 (en) | Multiprocessor load sharing arrangement | |
US5845148A (en) | Hierarchical processing system and method for down loading information in parallel | |
US5113502A (en) | Method and apparatus for saving and performing industrial control commands | |
EP0734139A2 (en) | A data transfer device with cluster control | |
US5526490A (en) | Data transfer control unit using a control circuit to achieve high speed data transfer | |
EP0249344B1 (en) | Delay management method and device | |
CA2385074C (en) | Method and system for transmitting a chain of messages for database | |
EP0249345B1 (en) | Data packet shortening method and device | |
CN105812203B (en) | A kind of request message processing method and equipment | |
JP3253357B2 (en) | Efficient access to stored data in linked tables | |
JPS601670B2 (en) | Processing data transmission method | |
EP0248557B1 (en) | Memory space clearing control method and device | |
US6181701B1 (en) | Method for optimizing the transmission of ATM cells via connection sections | |
JPS6117024B2 (en) | ||
US6205123B1 (en) | State information managing method and system embodying the same | |
EP0292237A2 (en) | IC card and IC card information processing system using the IC card | |
JPH08249225A (en) | Memory management device | |
JPH0271329A (en) | Inter-program communication system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: VICTORIA UNIVERSITY OF MANCHESTER, THE, OXFORD ROA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNORS:KAWAKAMI, KATSURA;GURD, JOHN R.;REEL/FRAME:004823/0136;SIGNING DATES FROM 19871111 TO 19871119 Owner name: MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD., 1006 OHA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNORS:KAWAKAMI, KATSURA;GURD, JOHN R.;REEL/FRAME:004823/0136;SIGNING DATES FROM 19871111 TO 19871119 Owner name: MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD., A JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KAWAKAMI, KATSURA;GURD, JOHN R.;SIGNING DATES FROM 19871111 TO 19871119;REEL/FRAME:004823/0136 Owner name: VICTORIA UNIVERSITY OF MANCHESTER, THE, A BRITISH Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KAWAKAMI, KATSURA;GURD, JOHN R.;SIGNING DATES FROM 19871111 TO 19871119;REEL/FRAME:004823/0136 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
FPAY | Fee payment |
Year of fee payment: 12 |