US4183464A - Hash-coding data storage apparatus with error suppression - Google Patents
Hash-coding data storage apparatus with error suppression Download PDFInfo
- Publication number
- US4183464A US4183464A US05/906,054 US90605478A US4183464A US 4183464 A US4183464 A US 4183464A US 90605478 A US90605478 A US 90605478A US 4183464 A US4183464 A US 4183464A
- Authority
- US
- United States
- Prior art keywords
- output
- hash
- storage arrangement
- spurious
- further store
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
Definitions
- This invention relates to data storage apparatus.
- data processing it is often necessary to store a set of data values and then, at some later point of time, to test whether a given value is a member of the stored set of values.
- the simplest method of doing this is to store the data values in a random-access memory.
- this has the disadvantage that the whole memory must be searched to find out whether a given data value is stored in it. This can obviously be very time-consuming.
- the data values could be stored in a contents-addressable memory, allowing all the stored data values to be compared very rapidly with the given data value.
- contents-addressable memories are very expensive compared with normal random-access memories.
- Another method of storing data values is the hash-coding technique described, for example, in an article by Burton H. Bloom in Communications of the ACM, Vol. 13, No. 7, July 1970 pages 422-426.
- each data value is hash-coded in a plurality of different ways to produce a plurality of different bit addresses. These addresses are used in turn to address a hash area, containing a number of individually addressable bits, and each bit so addressed is set to "1".
- this value is hash-coded in the same way, and the hash area is addressed as before.
- Such hash-coding storage arrangements can give a faster response time than a simple random-access memory, without being as expensive as a contents-addressable memory.
- one property of a storage arrangement of this type is that it may produce a number of spurious outputs; that is to say, the output may occasionally indicate that a given data value has been stored when, in fact, it has not.
- spurious outputs may not be objectionable, provided they are not too frequent, and any inconvenience caused by them is outweighed by the saving in cost and/or response time.
- one object of the present invention is to provide a way of doing this.
- a data storage apparatus comprising.
- (d) means for utilising the contents of the further store to suppress the spurious outputs from the hash-coding storage arrangement.
- the further store may also be a hash-coding storage arrangement.
- FIG. 1 is a block circuit diagram of the apparatus
- FIG. 2 shows one of the hashing circuits of FIG. 1 in greater detail.
- the apparatus is arranged to receive a sequence of 24-bit data values over an input data path 10 and to store selected ones of those values.
- the selected values are indicated by applying a "select" signal to a control input line 11.
- the apparatus comprises first and second hash-coding storage arrangements 12 and 13.
- the storage arrangement 12 contains three hashing circuits 14, which hash-code the input data value in three different ways to produce three 12-bit hash addresses. These hash addresses are applied to the address inputs of three random-access memories 15, each of which contains 4096 individually addressable bit locations. A binary "1" can be written into the addressed bit location of each memory 15 by applying a "1" to a control line 16 which is connected to the write enable inputs of all three memories 15. This causes the memories to store a pattern of bits representing the input data value.
- the outputs of the three memories 15 are fed to an AND gate 17 which produces a "1" output whenever the addressed bit location in each memory contains a "1".
- the output of the AND gate 17 provides an indication that the data value which is currently applied to the input data path 10 is one of the previously selected values. Of course, as mentioned previously, some of the output signals from the AND gate 17 will be spurious.
- FIG. 2 this shows one of the hashing circuits 14 in greater detail.
- the input data value is applied to two cyclic shift registers 18, 19, each of which is arranged to shift the value to the right by a predetermined number of binary places. (Bits which are shifted out of the right-hand end of the register are fed back to the left-hand end).
- the least significant twelve bits of each shift register are then applied to an exclusive-OR gate 20 which forms the exclusive-OR of each corresponding pair of bits from the two shift registers, to produce a 12-bit output, which constitutes the hash address output of the hashing circuit.
- the three hashing circuits 14 are all identical in structure, except that the shifts produced in the shift registers 18, 19 are different for each circuit, such that the three hash addresses are virtually statistically independent of each other.
- the shift registers 18, 19 may shift the data value by 12 and 18, 2 and 16, and 8 and 20 binary places respectively.
- the second hash coding storage arrangement 13 is similar to the first, except that the random-access memories 15 in this second arrangement contain only 1024 bits each, and the hash addresses produced by the hashing circuits 14 are therefore only 10 bits in length. The reason for this is that, as will be seen, the second arrangement is only required to store the data values which produce spurious outputs in the first arrangement, and hence does not need such a large information capacity.
- the shifts produced by the shift registers 18, 19 in the hashing circuits 14 of the second arrangement 13 are chosen to be different in each hashing circuit 14 and to be different from those in the hashing circuits of the first arrangement 12.
- the shifts may be 0 and 6, 10 and 20, and 4 and 22 binary places respectively.
- the sequence of data values is applied to the input data path 10 for a second time, and once again, whenever one of the selected data values occurs, a binary "1" is applied to the control line 11.
- the control line 21 is disabled and instead another control line 23 is enabled.
- the control line 23 is connected to one input of an AND gate 24, the other inputs of which receive the output of the first storage arrangement 12 and the inverse of the signal on the control line 11.
- the AND gate 24 is therefore enabled whenever
- the AND gate 24 is enabled whenever the output of the first storage arrangement 12 is spurious.
- the output of the AND gate 24 is applied to the control line 16 of the second storage arrangement 13, and therefore causes the arrangement 13 to remember the data value on the data path 10.
- the second storage arrangement remembers those data values which were erroneously remembered by the first storage arrangement during the first phase.
- the apparatus may be used to test whether any given data value was one of the selected values.
- the data value which is to be tested is applied to the input data path 10, and another control line 25 is enabled (the control lines 21, 23 being disabled).
- the control line 25 is connected to one input of an AND gate 26, the other inputs of which receive the output of the first storage arrangement 12 and the inverse of the output of the second storage arrangement 13.
- the gate 26 is enabled only if (a) the first storage arrangement 12 indicates that the data value was one of the selected data values and (b) the second storage arrangement 13 does not produce an error indication.
- the second storage arrangement 13 suppresses the spurious outputs from the first storage arrangement 12.
- the second storage arrangement 13 may itself produce some spurious outputs and may therefore indicate that some outputs of the first storage arrangement 12 are spurious when, in fact, they are not; i.e. it may suppress a perfectly valid output.
- the number of such cases will, in general, be extremely small and may be acceptable in certain applications.
- a third hash-coding storage arrangement may be used to remember the spurious outputs from the second storage arrangement, and to suppress these outputs; a third input phase would then be required to write information into this third storage arrangement.
- the first storage arrangement 12 could be made to remember the non-selected data values instead of the selected ones, the second storage arrangement being used, as before to remember the spurious output from the first store.
- the output of the gate 26 would also be inverted.
- any spurious output from the second storage arrangement 13 would have the effect of producing a spurious output from the AND gate 26, rather than suppressing a valid output. This might be preferable, depending on the particular application.
- each arrangement might include one, two, or more than three memories.
- each hash-coding arrangement might be similar to the "Method 2" described in the above-referred article by Burton H. Bloom).
- the way in which the hash addresses are formed could be varied: examples of other methods of forming a hash address are described, for example, in an article by Robert Morris in Communications of the ACM, Vol. 11 No. 1, January 1978, page 34.
- Another possible modification might be to replace the second storage arrangement 13 by a contents-addressable memory. This might be economically feasible if the number of spurious outputs from the first storage arrangement 12 were very small.
Abstract
Hash-coding storage arrangements are known which are capable of storing data values efficiently and permitting rapid testing of whether a given data value is stored. However, such arrangements may produce erroneous outputs. The invention reduces or eliminates these erroneous outputs by providing a further store (which may itself be a hash-coding storage arrangement) which identifies the erroneous outputs, and is used to suppress them.
Description
This invention relates to data storage apparatus. In data processing, it is often necessary to store a set of data values and then, at some later point of time, to test whether a given value is a member of the stored set of values. The simplest method of doing this is to store the data values in a random-access memory. However, this has the disadvantage that the whole memory must be searched to find out whether a given data value is stored in it. This can obviously be very time-consuming. Alternatively, the data values could be stored in a contents-addressable memory, allowing all the stored data values to be compared very rapidly with the given data value. However, contents-addressable memories are very expensive compared with normal random-access memories.
Another method of storing data values is the hash-coding technique described, for example, in an article by Burton H. Bloom in Communications of the ACM, Vol. 13, No. 7, July 1970 pages 422-426. In particular, in "Method 2" described on page 423 of this article, each data value is hash-coded in a plurality of different ways to produce a plurality of different bit addresses. These addresses are used in turn to address a hash area, containing a number of individually addressable bits, and each bit so addressed is set to "1". To test whether a given data value has been stored, this value is hash-coded in the same way, and the hash area is addressed as before.
If all the addressed bits are equal to "1", then it is assumed that the given data value is stored. Our British patent specification No. 1491706 describes another such hash-coding storage arrangement in which, instead of a single hash area, a plurality of separate areas are used.
Such hash-coding storage arrangements can give a faster response time than a simple random-access memory, without being as expensive as a contents-addressable memory. However, one property of a storage arrangement of this type is that it may produce a number of spurious outputs; that is to say, the output may occasionally indicate that a given data value has been stored when, in fact, it has not. As explained in the above-referenced article, in some applications such spruious outputs may not be objectionable, provided they are not too frequent, and any inconvenience caused by them is outweighed by the saving in cost and/or response time.
Nevertheless, it may still be desirable to reduce the number of spurious outputs, and one object of the present invention is to provide a way of doing this.
According to the invention, there is provided a data storage apparatus comprising.
(a) a hash-coding storage arrangement of a type which provides spurious outputs;
(b) means for checking the output of the storage arrangement to detect the spurious outputs;
(c) a further store for storing signals identifying the detected spurious outputs; and
(d) means for utilising the contents of the further store to suppress the spurious outputs from the hash-coding storage arrangement.
Preferably, the further store may also be a hash-coding storage arrangement.
One data storage apparatus and method in accordance with the invention will now be described by way of example with reference to the accompanying drawings of which:
FIG. 1 is a block circuit diagram of the apparatus; and
FIG. 2 shows one of the hashing circuits of FIG. 1 in greater detail.
Referring to FIG. 1, the apparatus is arranged to receive a sequence of 24-bit data values over an input data path 10 and to store selected ones of those values. The selected values are indicated by applying a "select" signal to a control input line 11.
The apparatus comprises first and second hash- coding storage arrangements 12 and 13. The storage arrangement 12 contains three hashing circuits 14, which hash-code the input data value in three different ways to produce three 12-bit hash addresses. These hash addresses are applied to the address inputs of three random-access memories 15, each of which contains 4096 individually addressable bit locations. A binary "1" can be written into the addressed bit location of each memory 15 by applying a "1" to a control line 16 which is connected to the write enable inputs of all three memories 15. This causes the memories to store a pattern of bits representing the input data value. The outputs of the three memories 15 are fed to an AND gate 17 which produces a "1" output whenever the addressed bit location in each memory contains a "1". The output of the AND gate 17 provides an indication that the data value which is currently applied to the input data path 10 is one of the previously selected values. Of course, as mentioned previously, some of the output signals from the AND gate 17 will be spurious.
Referring now to FIG. 2, this shows one of the hashing circuits 14 in greater detail. The input data value is applied to two cyclic shift registers 18, 19, each of which is arranged to shift the value to the right by a predetermined number of binary places. (Bits which are shifted out of the right-hand end of the register are fed back to the left-hand end). The least significant twelve bits of each shift register are then applied to an exclusive-OR gate 20 which forms the exclusive-OR of each corresponding pair of bits from the two shift registers, to produce a 12-bit output, which constitutes the hash address output of the hashing circuit. The three hashing circuits 14 are all identical in structure, except that the shifts produced in the shift registers 18, 19 are different for each circuit, such that the three hash addresses are virtually statistically independent of each other. For example, in the three hashing circuits, the shift registers 18, 19 may shift the data value by 12 and 18, 2 and 16, and 8 and 20 binary places respectively.
Returning to FIG. 1, the second hash coding storage arrangement 13 is similar to the first, except that the random-access memories 15 in this second arrangement contain only 1024 bits each, and the hash addresses produced by the hashing circuits 14 are therefore only 10 bits in length. The reason for this is that, as will be seen, the second arrangement is only required to store the data values which produce spurious outputs in the first arrangement, and hence does not need such a large information capacity.
The shifts produced by the shift registers 18, 19 in the hashing circuits 14 of the second arrangement 13 are chosen to be different in each hashing circuit 14 and to be different from those in the hashing circuits of the first arrangement 12. For example, in the three hashing circuits of the second arrangement 13, the shifts may be 0 and 6, 10 and 20, and 4 and 22 binary places respectively.
The way in which information is written into the apparatus will now be described. This takes place in two phases. (It is assumed that the contents of all the random-access memories 15 are initially set to zero). In the first phase, a sequence of data values is applied to the input data path 10, and for selected data values a binary "1" is applied to the control line 11. During this first phase, a control line 21 is enabled, so that each time a "1" occurs on line 11 an AND gate 22 is enabled, and a "1" is applied to the control line 16 of the first storage arrangement 12, thus causing the selected data value to be remembered.
During the second phase, the sequence of data values is applied to the input data path 10 for a second time, and once again, whenever one of the selected data values occurs, a binary "1" is applied to the control line 11. This time, the control line 21 is disabled and instead another control line 23 is enabled. The control line 23 is connected to one input of an AND gate 24, the other inputs of which receive the output of the first storage arrangement 12 and the inverse of the signal on the control line 11. The AND gate 24 is therefore enabled whenever
(a) an output signal is produced by the first storage arrangement 12 and at the same time
(b) no signal is present on the control line 11.
In other words, the AND gate 24 is enabled whenever the output of the first storage arrangement 12 is spurious. The output of the AND gate 24 is applied to the control line 16 of the second storage arrangement 13, and therefore causes the arrangement 13 to remember the data value on the data path 10. Thus, the second storage arrangement remembers those data values which were erroneously remembered by the first storage arrangement during the first phase.
After information has been written into the apparatus as described above, the apparatus may be used to test whether any given data value was one of the selected values. The data value which is to be tested is applied to the input data path 10, and another control line 25 is enabled (the control lines 21, 23 being disabled). The control line 25 is connected to one input of an AND gate 26, the other inputs of which receive the output of the first storage arrangement 12 and the inverse of the output of the second storage arrangement 13.
It can therefore be seen that the gate 26 is enabled only if (a) the first storage arrangement 12 indicates that the data value was one of the selected data values and (b) the second storage arrangement 13 does not produce an error indication. Thus, it can be seen that the second storage arrangement 13 suppresses the spurious outputs from the first storage arrangement 12.
It will be appreciated that the second storage arrangement 13 may itself produce some spurious outputs and may therefore indicate that some outputs of the first storage arrangement 12 are spurious when, in fact, they are not; i.e. it may suppress a perfectly valid output. The number of such cases will, in general, be extremely small and may be acceptable in certain applications. Where it is not acceptable, a third hash-coding storage arrangement may be used to remember the spurious outputs from the second storage arrangement, and to suppress these outputs; a third input phase would then be required to write information into this third storage arrangement.
Alternatively, by including an inverter in the control line 11, the first storage arrangement 12 could be made to remember the non-selected data values instead of the selected ones, the second storage arrangement being used, as before to remember the spurious output from the first store. In this case, the output of the gate 26 would also be inverted. The net result is basically the same as before. However, in this modification any spurious output from the second storage arrangement 13 would have the effect of producing a spurious output from the AND gate 26, rather than suppressing a valid output. This might be preferable, depending on the particular application.
In other modifications, different numbers of random-access memories might be used in the hash-coding storage arrangements, i.e. instead of three, each arrangement might include one, two, or more than three memories. (Where only one random-access memory is used, each hash-coding arrangement might be similar to the "Method 2" described in the above-referred article by Burton H. Bloom). Moreover, the way in which the hash addresses are formed could be varied: examples of other methods of forming a hash address are described, for example, in an article by Robert Morris in Communications of the ACM, Vol. 11 No. 1, January 1978, page 34.
Another possible modification might be to replace the second storage arrangement 13 by a contents-addressable memory. This might be economically feasible if the number of spurious outputs from the first storage arrangement 12 were very small.
Claims (5)
1. A data storage apparatus comprising:
(a) a hash-coding storage arrangement of a type which produces spurious output signals;
(b) checking means connected to the output of said storage arrangement for detecting said spurious output signals;
(c) a further store, connected to the output of said checking means, for storing signals identifying the detected spurious output signals; and
(d) gating means connected to the output of the storage arrangement and to the output of the further store, for suppressing transmission of output signals from the storage arrangement which are identified by the further store as being spurious.
2. A data storage apparatus comprising:
(a) a hash-coding storage arrangement for storing representations of selected members of a sequence of data values and then, in response to a given data value, producing an output signal indicating whether or not a representation of that given value has been stored, the arrangement being such that some of said output signals may be spurious;
(b) checking means connected to the output of said storage arrangement for detecting said spurious output signals;
(c) a further store, connected to the output of said checking means, for storing representations of the data values which produce the detected spurious output signals; and
(d) gating means connected to the output of the storage arrangement and to the output of the further store, for suppressing transmission of output signals from the storage arrangement which are identified by the further store as being spurious.
3. Apparatus according to claim 2, wherein said further store also consists of a hash-coding storage arrangement.
4. Apparatus according to claim 2 wherein said hash-coding storage arrangement comprises
(a) means for hash-coding an input data value in a plurality of different ways to produce a plurality of hash addresses;
(b) a plurality of random access memories each containing a plurality of individually addressable bit locations, address inputs of the memories being connected to the hash-coding means so as to receive respective ones of said hash address;
(c) means connected to data inputs of said random access memories for writing a predetermined binary value into the addressed bit locations of the memories; and
(d) means connected to data outputs of said random-access memories, for producing an output signal whenever the addressed bit locations all contain said predetermined binary value.
5. A method of storing and retrieving information, comprising the steps:
(a) storing the information in a hash-coding storage arrangement of a type which produces spurious outputs;
(b) checking the output of the storage arrangement to detect the spurious outputs;
(c) storing signals in a further store, identifying the spurious outputs; and
(d) retrieving information from the hash-coding storage arrangement, using the output of the further store to suppress transmission of the spurious outputs.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB21973/77 | 1977-05-25 | ||
GB21973/77A GB1564563A (en) | 1977-05-25 | 1977-05-25 | Data sotrage apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
US4183464A true US4183464A (en) | 1980-01-15 |
Family
ID=10171858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US05/906,054 Expired - Lifetime US4183464A (en) | 1977-05-25 | 1978-05-15 | Hash-coding data storage apparatus with error suppression |
Country Status (7)
Country | Link |
---|---|
US (1) | US4183464A (en) |
JP (1) | JPS53145530A (en) |
AU (1) | AU514957B2 (en) |
DE (1) | DE2821110C2 (en) |
FR (1) | FR2392469A1 (en) |
GB (1) | GB1564563A (en) |
ZA (1) | ZA782651B (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0304302A2 (en) * | 1987-08-19 | 1989-02-22 | Forbes J. Burkowski | Data retrieval system |
US7942371B1 (en) | 2010-04-30 | 2011-05-17 | Underground Devices, Inc. | Conduit spacer for duct banks |
US9467294B2 (en) | 2013-02-01 | 2016-10-11 | Symbolic Io Corporation | Methods and systems for storing and retrieving data |
US9628108B2 (en) | 2013-02-01 | 2017-04-18 | Symbolic Io Corporation | Method and apparatus for dense hyper IO digital retention |
US9817728B2 (en) | 2013-02-01 | 2017-11-14 | Symbolic Io Corporation | Fast system state cloning |
US10061514B2 (en) | 2015-04-15 | 2018-08-28 | Formulus Black Corporation | Method and apparatus for dense hyper IO digital retention |
US10120607B2 (en) | 2015-04-15 | 2018-11-06 | Formulus Black Corporation | Method and apparatus for dense hyper IO digital retention |
US10133636B2 (en) | 2013-03-12 | 2018-11-20 | Formulus Black Corporation | Data storage and retrieval mediation system and methods for using same |
US10572186B2 (en) | 2017-12-18 | 2020-02-25 | Formulus Black Corporation | Random access memory (RAM)-based computer systems, devices, and methods |
US10725853B2 (en) | 2019-01-02 | 2020-07-28 | Formulus Black Corporation | Systems and methods for memory failure prevention, management, and mitigation |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4418275A (en) * | 1979-12-07 | 1983-11-29 | Ncr Corporation | Data hashing method and apparatus |
GB2137782B (en) * | 1983-03-24 | 1986-11-26 | Int Computers Ltd | Data transformation circuits |
JPS636776U (en) * | 1986-06-30 | 1988-01-18 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4032765A (en) * | 1976-02-23 | 1977-06-28 | Burroughs Corporation | Memory modification system |
US4045779A (en) * | 1976-03-15 | 1977-08-30 | Xerox Corporation | Self-correcting memory circuit |
US4047163A (en) * | 1975-07-03 | 1977-09-06 | Texas Instruments Incorporated | Fault-tolerant cell addressable array |
US4066880A (en) * | 1976-03-30 | 1978-01-03 | Engineered Systems, Inc. | System for pretesting electronic memory locations and automatically identifying faulty memory sections |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5033068U (en) * | 1973-07-18 | 1975-04-10 | ||
JPS5067528A (en) * | 1973-10-15 | 1975-06-06 | ||
GB1491706A (en) * | 1974-06-19 | 1977-11-16 | Int Computers Ltd | Information storage apparatus |
JPS51147924A (en) * | 1975-06-13 | 1976-12-18 | Fujitsu Ltd | Memory unit |
JPS5266339A (en) * | 1975-11-28 | 1977-06-01 | Hitachi Ltd | Display of memory test results |
JPS5288944U (en) * | 1975-12-26 | 1977-07-02 |
-
1977
- 1977-05-25 GB GB21973/77A patent/GB1564563A/en not_active Expired
-
1978
- 1978-05-09 ZA ZA00782651A patent/ZA782651B/en unknown
- 1978-05-13 DE DE2821110A patent/DE2821110C2/en not_active Expired
- 1978-05-15 US US05/906,054 patent/US4183464A/en not_active Expired - Lifetime
- 1978-05-24 JP JP6214378A patent/JPS53145530A/en active Granted
- 1978-05-24 AU AU36414/78A patent/AU514957B2/en not_active Expired
- 1978-05-25 FR FR7815637A patent/FR2392469A1/en active Granted
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4047163A (en) * | 1975-07-03 | 1977-09-06 | Texas Instruments Incorporated | Fault-tolerant cell addressable array |
US4032765A (en) * | 1976-02-23 | 1977-06-28 | Burroughs Corporation | Memory modification system |
US4045779A (en) * | 1976-03-15 | 1977-08-30 | Xerox Corporation | Self-correcting memory circuit |
US4066880A (en) * | 1976-03-30 | 1978-01-03 | Engineered Systems, Inc. | System for pretesting electronic memory locations and automatically identifying faulty memory sections |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0304302A3 (en) * | 1987-08-19 | 1991-06-12 | Forbes J. Burkowski | Data retrieval system |
EP0304302A2 (en) * | 1987-08-19 | 1989-02-22 | Forbes J. Burkowski | Data retrieval system |
US7942371B1 (en) | 2010-04-30 | 2011-05-17 | Underground Devices, Inc. | Conduit spacer for duct banks |
US9467294B2 (en) | 2013-02-01 | 2016-10-11 | Symbolic Io Corporation | Methods and systems for storing and retrieving data |
US9584312B2 (en) | 2013-02-01 | 2017-02-28 | Symbolic Io Corporation | Methods and systems for storing and retrieving data |
US9628108B2 (en) | 2013-02-01 | 2017-04-18 | Symbolic Io Corporation | Method and apparatus for dense hyper IO digital retention |
US9817728B2 (en) | 2013-02-01 | 2017-11-14 | Symbolic Io Corporation | Fast system state cloning |
US9977719B1 (en) | 2013-02-01 | 2018-05-22 | Symbolic Io Corporation | Fast system state cloning |
US10789137B2 (en) | 2013-02-01 | 2020-09-29 | Formulus Black Corporation | Fast system state cloning |
US10133636B2 (en) | 2013-03-12 | 2018-11-20 | Formulus Black Corporation | Data storage and retrieval mediation system and methods for using same |
US10061514B2 (en) | 2015-04-15 | 2018-08-28 | Formulus Black Corporation | Method and apparatus for dense hyper IO digital retention |
US10346047B2 (en) | 2015-04-15 | 2019-07-09 | Formulus Black Corporation | Method and apparatus for dense hyper IO digital retention |
US10606482B2 (en) | 2015-04-15 | 2020-03-31 | Formulus Black Corporation | Method and apparatus for dense hyper IO digital retention |
US10120607B2 (en) | 2015-04-15 | 2018-11-06 | Formulus Black Corporation | Method and apparatus for dense hyper IO digital retention |
US10572186B2 (en) | 2017-12-18 | 2020-02-25 | Formulus Black Corporation | Random access memory (RAM)-based computer systems, devices, and methods |
US10725853B2 (en) | 2019-01-02 | 2020-07-28 | Formulus Black Corporation | Systems and methods for memory failure prevention, management, and mitigation |
Also Published As
Publication number | Publication date |
---|---|
JPS53145530A (en) | 1978-12-18 |
DE2821110A1 (en) | 1978-12-07 |
GB1564563A (en) | 1980-04-10 |
AU3641478A (en) | 1979-11-29 |
FR2392469B1 (en) | 1983-03-11 |
AU514957B2 (en) | 1981-03-05 |
JPS6141028B2 (en) | 1986-09-12 |
DE2821110C2 (en) | 1982-05-27 |
ZA782651B (en) | 1979-05-30 |
FR2392469A1 (en) | 1978-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5796758A (en) | Self-checking content-addressable memory and method of operation for detecting multiple selected word lines | |
US4959811A (en) | Content addressable memory including comparison inhibit and shift register circuits | |
US4064489A (en) | Apparatus for searching compressed data file | |
US3803560A (en) | Technique for detecting memory failures and to provide for automatically for reconfiguration of the memory modules of a memory system | |
US5752260A (en) | High-speed, multiple-port, interleaved cache with arbitration of multiple access addresses | |
US5530837A (en) | Methods and apparatus for interleaving memory transactions into an arbitrary number of banks | |
US4183464A (en) | Hash-coding data storage apparatus with error suppression | |
US6353910B1 (en) | Method and apparatus for implementing error correction coding (ECC) in a dynamic random access memory utilizing vertical ECC storage | |
US4170039A (en) | Virtual address translation speed up technique | |
US3037697A (en) | Information handling apparatus | |
GB1360930A (en) | Memory and addressing system therefor | |
US3588830A (en) | System for using a memory having irremediable bad bits | |
GB853551A (en) | Improvements in data transmission systems | |
JPS635839B2 (en) | ||
KR840008849A (en) | Buffer storage control system | |
US3887901A (en) | Longitudinal parity generator for mainframe memories | |
US5765203A (en) | Storage and addressing method for a buffer memory control system for accessing user and error imformation | |
EP0437217A2 (en) | Memory tester | |
US4016409A (en) | Longitudinal parity generator for use with a memory | |
US4388701A (en) | Recirculating loop memory array having a shift register buffer for parallel fetching and storing | |
EP0139094B1 (en) | Raster scan digital display system with a multiple memory device comparator facility | |
US4044336A (en) | File searching system with variable record boundaries | |
US4992979A (en) | Memory structure for nonsequential storage of block bytes in multi bit chips | |
US5825204A (en) | Apparatus and method for a party check logic circuit in a dynamic random access memory | |
KR910014819A (en) | Dual-Port Cache Tag Memory |