AU595378B2 - Content-addressable memory system with active memory circuit - Google Patents
Content-addressable memory system with active memory circuit Download PDFInfo
- Publication number
- AU595378B2 AU595378B2 AU79185/87A AU7918587A AU595378B2 AU 595378 B2 AU595378 B2 AU 595378B2 AU 79185/87 A AU79185/87 A AU 79185/87A AU 7918587 A AU7918587 A AU 7918587A AU 595378 B2 AU595378 B2 AU 595378B2
- Authority
- AU
- Australia
- Prior art keywords
- bit
- shift register
- bit map
- memory
- cells
- 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.)
- Ceased
Links
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/903—Querying
- G06F16/90335—Query processing
- G06F16/90339—Query processing by using parallel associative memories or content-addressable memories
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
AU-AI-791 85 87 SPCT WORLD INTELLECTUAL PROPERTY ORGANIZATION INTERNATIONAL APPLICATIO HjU H UIER TIE P NT COOPERATION TREATY (PCT) (51) International Patent Classification 4 (11) International Publication Number: WO 88/ 01411 G06F 12/02, 13/38 Al (43) International Publication Date: 25 February 1988 (25.02.88) (21) International Application Number: PCT/ATJS7/00284 (72) Inventors; and Inventors/Applicants (for US only) ALLEN, Murray, (22) International Filing Date: 21 August 1987 (21.08.87) William [AU/AU]; 10 Havilah Lane, Lindfield, NSW 2016 JAYASOORIAH [SG/SG]; 331-D Pasir (31) Priority Application Numbers: PH 7618 Panjang Road, Lynnsville, Singapore 0511 CO- PH 7619 LOMB, Robert, Michael [US/AU]; 8/7 Reserve Street, West Ryde, NSW 2114 (AU).
(32) Priority Dates: 22 August 1986 (22.08,86) 22 August 1986 (22.08,86) (74) Agents: NOONAN, Gregory, J. et al.; Davies Collison, 1 Little Collins Street, Melbourne, VIC 3000 (33) Priority Country: AU (AU).
(71) Applicants (for all designated States except US): COM- (81) Designated States: AT (European patent), AU, BE (Eu- MONWEALTH SCIENTIFIC AND INDUSTRIAL ropean patent), CH (European patent), DE (Euro- RESEARCH ORGANISATION [AU/AU]; Lime- pean patent), FR (European patent), GB (European stone Avenue, Campbell, ACT 2601 UNISE- patent), IT (European patent), JP, LU (European pa- ARCH LIMITED [AU/AU]; 221-227 Anzac Parade, tent), NL (European patent), SE (European patent), Kensington, NSW 2033 US.
3 1 MAR 198C Published With international search report.
Before the expiration of the time limit for amending the AUSTRALIAN claims and to be republished in the event of the receipt A 19B8 of amendments.
-8MWR 988 PATENT OFFICE 'Tis document contains the, amendments made unde i ni 4 njret i .for Title: A CONTENT-ADDRESSABLE MEMORY SYSTEM rinuting.
WY
64- 66) 68- m 72 62. 76
SI
I
1 (57) Abstract A content-addressable memory system (62) for connection to a host computer (60) hav.ng a host memory (66, 68) storing a plurality of records and a host processor bus the memory system (62) comprising: an idex memory unit (74) for storing a bit map matrix representative of records stored in the host computer the memory unit (74) being, in use, connected to the host processor bus (72) and addressable by the host computer an index processor (76) for accessing bit maps stored in the memory unit (74) and performing bit map seerations on bit maps, the index processor (76) being, in use, connected to the host processor bus (72) and controlled by the host computer and a memory system bus (78) connected between the index memory unit (74) and the index processor the bus (78) being adapted to pass bit maps between the memory unit (74) and the processor (76), i L t7 J WO 88/01411 PCT/AU87/00284 -1- A CONTENT-ADDRESSABLE MEMORY SYSTEM The present invention relates to a content-addressable memory system. The present invention also relates an active memory circuit and a content-addressable memory system including one or more of the active memory circuits.
In computer systems which store a large amount of data in record form, where each each record includeg a number of attributes or pieces of information, conducting a search of the records in order to find those records which have a particular attribute involves a considerable amount of computer time if each detailed record is accessed on the basis of its storage location only. This problem is enhanced if the records are stored in a remote storage location, such as on disc.
One way of alleviating this problem is to store the records in such a way that it is possible to access the records on the basis of their attributes or contents. This type of memory system is known as a i -i WO 88/01411 PCT/AU87/00284 -2content-addressdble memory system and one way of implementing it is to encode a file of records so as to form a bit map matrix on which searches are carried out so as to find records which satisfy a particular query.
The bit map matrix comprises an array of bits in which each row represents a particular record and each column is known as a bit map. Depending on the form of encoding used, each bit in a row usually represents a predetermined attribute of the respective record.
If the bit is high the record possesses the attribute and if the bit is low the record does not possess the attribute. Hence, each bit map provides an indication of which records possess a particular attribute and which records do .ot.
A complex query, such as which records possess particular combination of attributes, is solved by performing a logic operation or a series of logic operations on selected bit maps which correspond to the query so as to generate a bit map which provides dn indication as to which records satisfy the query.
An object of the pre'sent invention is to provide a content-addressable memory system for use with a host computer and which is relatively inexpensive and enables searches to be carried out on records at a relatively fast rate, particularly with respect to the rate at which searches would he carried out by the host computer without the memory system.
y WO 88/01411 PCT/AU87/00284 -3- A further object of the present invention is to provide an active memory circuit which is capable of carrying out logic operations on a bit map matrix.
Another object of the present invention is to provide a content-addressable memory system which includes one or more of the active memory circuits.
In accordance with the present invention there is provided a content-addressable memory system for connection to a host computer having a host memory storing a plurality of records and a host processor bus, said memory system comprising: index memory means for storing a bit map matrix representative of records stored in said host computer, said memory means, being, in use, connected to said host processor bus and addressable by said host computer; index processor means for accessing bit maps stored in said memory means and performing bit map operations on said bit maps, said index processor means being, in use, connected to said host processor bus and controlled by said host computer; and a memory system bus connected between said index memory means and said index processor means, said bus being adapted to pass bit maps between said memory means and said processor means.
Preferably the index memory means comprises a plurality of index memories which each include: an array of memory cells; and WO 88/01411 PCT/AU87/00284Y -4a shift register having a parallel input/output bus connected to said array, and a serial input port and a serial ouput port opposite ends of said shift register, said parallel input/ouput bus being capable of accessing a selected row of data in said array; said memory system bus connects the serial input and output ports of the index memories in parallel to said index processor means; and said selected rows of data accessed simultaneously form at least one bit map.
In accordance with the present invention there is also provided an active memory circuit comprising: an array of memory cells arranged in rows and columns adapted to store at least part of a bit map; a shift register adapted to store at least part of a bit map; and a logic unit connected between said array and said shift register; said array, shift register and logic unit comprising an integrated circuit and said shift register being able to copy a selected column of said array and said logic unit being able to perform d selected logic operation on the contents of said shift register and a selected column of said array, the result of said operation being stored in said shift register.
In accordance with the present invention there is also provided a content-addressable memory as defined f, 1 WO 88/01411 PCT/AU87/00284 above including one or more active memories as defined above.
Preferred embodiments of the present invention will now be described, by way of example only, with reference to the accompany drawings wherein: Figure 1 is a diagram of an array of records and a bit map corresponding to a query made on the array of records; Figure 2 is a diagram of a plurality of bit maps representing records responding to a plurality of constituent queries which generate a bit map responding to a complex query; Figure 3 is a diagram of a bit map matrix containing a superimposed coding index to an array of records; Figure 4 is a diagram of bit maps representing a boolean attribute; figure 5 is a diagram of a bit map matrix search involving logic operations on a binary encoded attribute; Figure 6 is a diagram of a greater than/less than spiit performed on a bit map matrix and includes a listing of an algorithm to perform the split; Figure 7 is a diagram illustrating how a minimum of a bit map matrix is found and includes a listing of an algorithm to (etermine the minimum; Figure 8 is a block diagram of a memory system according to the present invention attached to a host computer;
S-
i I~L- WO 88/01411 PCT/A U87/00284 -6- Figure 9 is a diagram showing the arrangement of memory in the system of Figure 8; Figure 10 is a further diagram of showing the arrangement of memory in the system of Figure 8; Figure 11 is a diagram illustrating bit map operations which the system of Figure 8 can perform; Figure 12 is a diagram of a memory chip of the system of Figure 8; Figure 13 is a diagram of a memory unit of the system of Figure 8; Figure 14 is a diagram of an index processor of the system of Ff.gure 8; Figure 15 is a diagram of data flow in the system of Figure 8; Figure 16 is a block diagram of an active memory circuit according to the present system; figure 17 is a more detailed block diagram of the circuit of Figure 16; Figure 18 is a circuit diagram of a shift register cell and a logic cell of the circuit of Figure 16; Figure 19 is a diagram of indexing memory system architecture employing the active memory of Figure 16; Figure 20 is a diagram of a superimposed code word calculation unit; Figure 21 is a diagram of a unit to determine and store the addresses of responding records; Figure 22 is a diagram of a collapse/expand unit; Figure 23 is a diagram of a specialised table lookup unit; WO 88/01411 PCT/AU87/00284 -7- Figure 24 is a diagram of a plurality of cascading active memory units; and Figure 25 is a diagram of the memory system of Figure 8 employing the active memory circuit of Figure 16.
A file 2, as shown in Figure 1, may be stored in memory incorporated in a computer system or on secondary storage, such as a disc, and comprises a plurality of records 4. In indexing or searching a file 2 we wish to determine whether a set of records 4 will meet a particular property or a query. For example each record 4 may contain information concerning vehicle registrations, such as the colour of vehicle, the owner of a vehicle, the state in which the vehicle is registered and the date on which registration took place. A query, as shown in figure 1, may be to determine from the file 2 which vehicles are red, registered in the state of N.S.W. and registered after ist January 1985. The set of records which respond to such a query can be determined from a bit map 6, as shown in figure 1. A bit map 6 is an array of bits, one per record 4. The bit corresponding to a particular record 4 will be high or 1 if that record 4 satisfies or responds to the query and low or 0 if it does not respond. Thus, the bit map 6 gives a compressed representation of the set of records which satisfy the query. In the illustrated example, a table or file 2 of 4096 records needs 4096 bits or 512 bytes for a bit map 6.
WO 88/01411 PCT/A U87/00284' Figure 1 illustrates a complex query. The bit map 6 or records 4 respond-ing to a complex query can be computed by a simple logical operation on bit maps 8, 10 and 12 representing the records responding to constituent simple queries which make up the complex query, as shown in figure 2. Following the previous example, the query can be brok~en up into three queries in order to determine .hree bit maps 8, 10 and 12 which indicate the records in which a car is red, registered in the state of N.S.W. and thE,, date of registration is later than Ist January 1985, respectively. As shown in figure 2, performing an AN4D operation on the three bit maps 8, 10 and 12 results in the bit map 6 which rit presents the records responding to the complex query. If bit maps are held in memory, computation of a final bit map 6 can be done quickly given the elementary bit maps. 9, 10 and 12 are alreaidy available.
in order to obtain full benefi.t from a high speed bit map processor it 4s desirable to be able to compute the Alementaty query bit maps by logical operations on still. more elementary bi~t maps, One m~ethod of achieving this is to use~ a 3uperixnposed code indexing scheme described in an article entitledc "Partial-Match Retrieval via the Method of Superimposed Codes" Roberts C.S. (1979) Proceedings of IEEE Vol.67, NoA121 pp.1624-2642. The scheme will be briefly described with reference to Figure 3. The array of records 4 is represented in a superimposed code index as a bit matrix 14. Following our previous WO 88/01411 PCT/A U87/00284 -9example in order to determine which records 4 have red cars a predetermined query code 20 is generated. The code 20 indicates that in order to satisfy the query a logical AND operation must be performed on the bit map columns 16 and 18 in order to determine a final bit map 22 which indicates the records which respond to the query. Each column of the matrix 14 is considered to be a bit map and by performing the logical operations indicated by a query 20 a desired bit map 22 is obtained.
The advantages of a superimposed coat. index are as follows: 1. The index is compressed, for example, the index f<Nr 4096 records occupies only 64 kBytes of memory.
2. If the index is represented in the column format as shown in figure 3, only a small fraction of the index must be processed for any particular query.
T
he power of superimposed code indexing can be extended by using methods in which the attributes of the records which are of interest are represented in this form.
The disadvantages of superimposed codiLng, however, are as folloWs: i. All ordering information is lost so that greater than/less than queries cannot be performed, although they can sometimes be approximated by encoding ranges as discrete attributes.
WO 88/01411 PCT/AU87/002844 -i0- 2. There is a (usually small) probability of false drops, so that the bit map produced in response to a query may contain more than the set of records which satisfy or respond to the query. The main problem with this is that it is not possible to use superimposed coding to find records responding to a not equals query, for example cars not registered in
N.S.W.
There are, however, other methods of processing indexes. A boolean attribute of a, record can be encoded as a single bit, for example if the attribute is whether an owner of a car has paid his registration fee requires merely a true or false answer, As shown aw figure 4, a boolean attribute of a record can be determined by merely consulting a bit map 24 of an ,aray 26 of records 28, the bit map 24 comprising the ingle bits representing the attribute. The bit map 24 provides an instant indioarzion whethr the attribute is true. A bit map 30 for a query on that attribute being false is computed by taking the logical complement of the map 30, as shown in figure 4.
This leads to a process whereby exact quality queries can be effected, as shown in figure 5. An attribute, e.g. state of registrationt is encoded as a binary number and the table 32 of that attribute is a collection ot boolean attributes, and exact equality query can be posed as a sequence of true and false boolean queries. A not equals query can be processed WO 88/01411 PCT/A U87/00284 in a similar fashion. As shown in figure 5, a series of boolean operations or logic operations are performed on the columns 34, 36 and 38 of the table 32 in order to determine the bit map 39 which indicates the records where the state of registration is N.S.W.
A disadvantage of the above approach, however, is unless the attribute has very few bits (less than say), it would take more processing time to compute the set of records which responds to the query than it would for a superimposed coded attribute. It is particulary useful, however, for attributes with a very small number of possible values.
As shown in figure 6, queries involving determining the order of records can be computed using bit maps. The algorithm for performing greater than/less than splits is detailed in figure 6 in a "ASCAL format Where the labels L, G and B[i] represent bit map columns or kxl bit matrices, where k4the number of records in a table 40 and n is the number of bits in an encoded record in the tabla 40. W i, t test word 42 and represents the codo on whioh greater or less than query is based. The algoritt., performs a split of the records in the table 40 with respect to the test word 42 provided in the query, The algorithm has two working bit maps, Li map 44 of records known to be less than the test word 42 and G map 46 of records known to be greater than the test Word 42. A given word or encoded record is greater than the test word 42 if the first bit (going ftom. tho 4 s i i i WO 88/01411 PCT/A U87/00284 -12most significant bit to the least significant bit) in which it differs from the test word is greater than the corresponding bit in the test word. The bits can only be 0 or 1 and therefore if a word is greater than the test word the first differing bit must be 0 in the test word and 1 for that bit of the encoded record or word. If a bit in the test word is 0, the set of encoded words decided to be greater than the test word when that bit is considered is the set of encoded words or records with a 1 in that bit. Similarly, if the test word has a 1 in a particular bit position, the set of encoded words on considering that bit position to be less than the test word is the set of encoded records with a 0 in that bit position.
When the test word 42 has a 0 in a particular bit position, an uncharacterised referenc or encoded word of the.table 40 can either continue to be equal to the test 42 or it can be decided to be greater than the test word 42. When the test word 42 has a 1 in that bit position, an uncharacterised encoded word can either continue to be equal to the test word 42 or can be decided to be less than the word 42. Once an encoded word has been characterised as greater than or less than the test word, the characterisation cannot be changed. The split operation requires several bit map operations per bit of an attribute, so that it would be economical to encode the raw attribute in some way which preserves the essential order information. For example, a date attribute which has a range of one year can be encoded with nine bits.
1WO 88/01411 PCT/A U87/00284 -13- By adapting an algorithm from associative memory literature, it is possible using bit map operations to find the minimum of an attribute and the location of the records containing that minimum value, as shown in Figure 7. The algorithm listed in Figure 7 is in a PASCAL format and the labels M and B[i] represent a bit map column whereas W[i] represents one bit of the smallest or minimum encoded word of a bit matrix 48.
The M bit map 50 upon completion of the algorithm indicates which record contains the minimum encoded word of the matrix 48, n being the number of bits in an encoded record of the matrix 48. The algorithm computes the smallest word W 52 and the M bit map together, by analysing one bit map of the matrix 48 at a time from left to right (most significant bits to least significant bits).
At any particular bit position of the matrix 48 the bit map 50 will contain an indication as to the records not yet discarded and the word W 52 would contain the bits of a smallest word as so far determined. If any of the records not yet discarded has an encoded word wih a value 0 in that bit position, then those records having an encoded word with 1 in that bit position cannot be the smallest.
The bits in the M bit map 50 corresponding to records having encoded words with a 1 in that bit position must be set to 0. The smallest word must also have a 0 in that position. However, if all the records not yet discarded have encoded words with the value 1 in that bit position under consideration, then no records WO 88/01411 PCT/AU87/00284, -14may be discarded and the smallest word has a one in that bit position. The step in the algorithm, (M AND B[il) M, can be reduced to testing for whether the bits in a bit map generated by the operation (M AND XOR M are all zero or not (the "all zeroes test"), because if they are all zero the M bit map has not changed and need not be operated on. As this step dominates computation time by reducing it using an all zeroes output from an active memory circuit, as described below, the algorithm is performed more rapidly which makes the algorithm practical.
It is possible to perform a large variety of queries on a bit map index, as described previously.
The index is preferably a table of superimposed coded words with the addition of full binary encodings of boolean and other attributes with a small number of values, attributes where a not equal query is possible, and attributes where order of information is necessary for queries. For economy of memory space, all full binary attributes are encoded by a small number of bits.
A content-addressable memory system 62 which enables the above operations to be performed on a bit map matrix is shown in Figure 8 connected to a host computer 60. The host computer 60 is a conventional computer system comprising a central processing unit 64, a memory 66, a mass storage capability 68, such as a plurality of discs, and an input/output port 70 for peripheral devices. A host processor bus 72 is also HvO 88/01411 PCT/AU87/00284 provided which enables data to transferred between the units 64, 66, 68 and 70 of the host computer The content-addressable memory system 62 comprises an index memory unit 74, an index processor 76 and a memory system bus 78 which connects the index memory unit 74 to the index processor 76 and enables daita to transferred between the memory unit 74 and the processor 76.
The index memory circuit 74 and the index processor 76 are connected to the host processor bus 72. The index processor 76 transfers data to and from the index memory unit 74 and performs operations on the data in response to instructions received from the host computer 60, via the host processor bus 72, The host computer 60 is able to access data from the index memory unit 74 via the host processor bus 72, and to the computer 60 the index memory unit 74 appears to be standard random access memory organized into 16 bit words. Data may be accessed from the index memory unit 74 by the index processor 76, via the memory system bus 78, whilst the memory unit 74 is being accessed by the host computer 60 without memory contention problems. This is because the memory system 62 includes a bus 78 which operates autonomously with respect to the host computer The index memory unit 74 is used to store a bit map matrix which is an encoded representation of records stored in host computer 60. The i:.dex 4 -i li-rl--i-- nw1~1 -r 9-rrb: WVO 88/01411 PCT/A U87/00284 -16processor 76 is designed to perform bit map operations on the matrix stored in the index memory unit 74. A prototype of the memory system 62 has been constructed, known as the attached index machine (AIM). The remaining description of the memory system 62 will be with respect to an implementation of the AIM which includes an index memory unit 74 capable of storing and performing operations on a bit map matrix having a column length of 4096 bits and row length of 256 bits. It is to be understood that the memory system 62 could be used to store and perform operations on a bit map matrix of any practical size.
The memory system 62 is a bit-serial word-parallel content-addressable memory system as it accesses bits of a record serially, whilst accessing all of the records in parallel, the bits being bits of a bit map matrix.
The index memory unit 74 comprises 32 index memories 80 which are arranged in groups of 4 so as to fit on vertical printed circuit boards 82, as shown in Figure 9. The memories 80 are also arranged into 2 banks each comprising 16 memories 80 which are capable of storing a 256 x 4096 bit map matrix. A 4096 bit column, or bit map, is stored in 256 bit portions 82 among 16 index memories 80, as shown in Figure 10, in corresponding locations in the memories The index processor 76 is adapted to access two 4096 bit columns, or bit maps, 84 and 86 from a matrix
I
WO 88/01411 PCT/AU87/00284 -17- 88, as shown in Figure 11, perform a selected bit map operation on the columns 84 and 86 and return the resultant column, or bit map, 90 to the matrix 88.
At present, the AIM is able to perform this function within one 16 microsecond cycle. This includes providing the hcst computer 60 with an indication of whether the bit map 90 comprises all zero bits and, if not, providing a report on the addresses of the records associated with the bits in the column which are high.
An index memory 80 comprises a TMS4161EV4 video memory chip, as shown in Figure 12, Which includes a 64 kbit dynamic random access memory array 92 and a 256 shift register 94. The memory array 92 is connected to the shift register 94 via a parallel 256 bit bus 96. The TMS4161 chip 80 is basically a standard RAM provided with a shift register 94 which is capable of accessing any selected row of the array 92. A row of the array 92 comprises a 256 bit portion 82 of a 4096 bit column or bit map.
By accessing a particular 256 bit row in the array 92 using the address lines 98 and enabling the TR/QE input line 100, data is transferred between the row and the shift register 94. The direction of the transfer is governed by the read/write line 102. To perform a transfer of data between the shift register 94 and a selected row of the array 92 1 sfer request is issued by the index process, and the row is selected. It is necessary at th tage to i r WO 88/01411 PCT/AU87/00284 -18synchronize any access request from the host computer with the transfer request from the processor 76 and this is performed by a 3 way arbitration circuit (not shown) in the index memory unit 74. At any other time the index processor 76 may manipulate the contents of the shift register 94 without interferring with access requests from the host computer The shift register 94 at one end includes a serial output port 104, as shown in Figure 12, and at the other end includes a serial input port 106 and this enables the shift register 94 to be clocked by a clock line 108, so that data at one end of the shift register 94 is outputted via the output port 104 whilst data is inputted at the other end of the shift register 94 via the input port 106.
The index memory unit 74, as shown in Figure 13, is arranged into two banks 110 and 112, each bank comprising 16 index memories 80, as mentioned previously. When a bit map operation is to be performed one operand is selected from the bank 110 and the other operand is selected from the bank 112, The operands are selected by the host computer 60 and in each bank 110 and 112 a predetermined row is accessed in each of the arrays 92 in each bank 110 and 112 and the contents of the predetermined rows transferred to the shift registers 94 of the banks 110 and 112. The shift registers 94 of the banks 110 and 112 thereby both contain a bit map.
4 %WO 88/014-11 PCT/AU87/00284 -19- All of the serial output ports 104 of the shift registers 94 in the first bank 110 are connected in parallel via a first bank output bus 114 to the memory system bus 78. Similarly, all the serial output ports 104 of the shift registers 94 and the second bank 112 are connected via a 16 bit second bank output bus 116 to the memory system bus 78. The operands for a bit map cperation stored in the registers 94 in the two banks 110 and !12 are outputted to the index processor 76 via the buses 114 and 116, by clocking the registers 94 using the clock line 108. Although the bits of the bit maps in the registers 94 of the two banks 110 and 112 are outputted serially, a bit from each portion 82, as shown in Figure 10, 16 bits are outputted simultaneously along each bank output bus 114 and 116 and to the index processor 76 they appear as 16 bit words. The index processor 76 performs a selected bitemap operation,on the 16 bit words inputted via the bank output buses 114 and 116 and sends a resultant 16 bit word back along the memory system bus 78 to a 16 bit bank input bus 118. The bus 78 includes at least three 16 bit data paths.
The bank input bus 118 is connected in parallel to the 16 serial input ports 106 of the registers 94 in the banks 110 and 112. Hence, as 16 bit words are outputted via the bank output buses 114 and 116, a resultant 16 bit word is stored at the opposite ends of the shift registers 94 in the banks 110 and 112.
At the end of the selected bit map operation a resultant bit map is stored in the shift registers 94 WO 88/01411 PCT/AU87/00284, of the first bank 110 and the shift registers 94 of the second bank 112. The index processor 76 then transfers the resultant bit map to a predetermined row, selected by the host computer 60, in the arrays 92 of the first bank 110 or second bank 112.
The index processor 76 includes a host interface port 120 which is connected to the host processor bus 72 via a bidirectional bus 122. The processor 76 also includes a serial functions unit 124 which is connected between the host interface port 120 and the memory system bus 78 via bidirectional buses 126 and 128, respectively.
The serial functions unit 124 operates in response to instructions from the host interface port 120 and it performs the bit map operations on 16 bit words inputted to the'init 124 via the system bus 78.
It also includes circuitry to compare resultant 16 bit words with test words, to determine if the resultant words comprise all zero bits and record the offset location or address location of bits in the resultant words which are high. The serial functions unit 124 can be configured so as to run for 256 cycles when triggered by the host interface port 120, each cycle including accessing two 16 bit words, performing bit map operation on the words, analysing the resultalit word and outputting the resultant word to the bus 78.
The host interface port 120 includes a control unit and receives instructions from the host computer LlrlCI 1 WO 88/01411 PCT/AU87/00284 -21- In response to the instructions received from the host computer 60, the port 120 controls the operations of the serial functions unit 124 and data transfer in and between the index memory unit 74.
Data flow between the index memory unit 74 and the index processor 76 is illustrated in Figure however not all data paths are shown. In performing a b.it map operation two 16 bit words are accessed by the processor 76 from the banks 110 and 112 and each word is inputted simultaneously to the serial functions unit 124. The two words are passed through respective gates 130 and 132 and masked in the gates according to state of respective mask registers 134 and 136. The gates 130 and 132 are connected to the inputs of a boolean logic unit 138 which performs a selected logic operation on the words and outputs the 16 bit result of the operation to a shifting logic unit 140 and a matching logic unit 142. The boolean logic unit 138 is capable of performing a number of logic operations, such as AND, AND NOT, OR, OR NOT, NOT, XOR, XOR NOT OR COPY. COPY is performed by ensuring one of the operands is zero and an OR operation is performed.
The operation to be performed is selected by a control unit 144 in the host interface port 120 in response to instructions received by the host computer The matching logic unit 142 compares resultant 16 bit words outputted by the boolean logic unit 138 with 16 bit test words stored in a test word register 148.
If the resultant words match the teit word the control ir WO 88/01411 PCT/A 87/00284 -22unit 144 stores the offset or address location of the matching resultant word in a FIFO hits register 150.
To perform an all zero test the test word register 138 is loaded with a word having all zeros or low bits.
The shifting logic unit stores the resultant 16 bit words whilst they are compared in the matching logic units 142 and then outputs the resultant words to the banks 110 and 112 in the index memory unit 74. The control unit 134 controls the matchirg logic unit 142 and the shifting logic unit 140 as well as other components of the memory system 62 and receives instructions form the host computer 62 which are stored in an instructions register 152. Although the instruction register 152 is illustrated as forming part of the bank of registers 134, 136, 148 and 150 in the serial functions unit 120 the register 152 usually forms part of the control unit 144.
An active memory circuit or chip 150, as illustrated in figure 16, is designed so as to perform the bit map operations, described above, on a bit map matrix. The circuit 150 comprises a memory portion 152 capable of storing an array of bits, a shift register 154, which is preferably bidirectional, a logic unit or circuit 156 and a temporary storage area or portion 158 for temporarily storing bit maps during operations.
The chip 150, in use, contains an array of bits stored in the memory portion 152. ?he array of bits would represent a bit map matrix. The size of the WO 88/01411 PCT/A U87/00284 -23array is not critical but 256x256 bits would be preferable. The data held in the chip 150, represented by the bits, is done in a different manner to a conventional memory. A bit matrix comprising part of the index to a table of records, in use, is mapped directly onto the array of the memory portion 152. A row 160 in the array holds the index bits representing a single record (256 bits is usually sufficient for complex records). Any column 162 of the array holds a bit map of a table or matrix, of the type described with reference to figures 1 to 7.
The shift register 154 on the chip 150 is similar to that of the registers 94 to memory banks 110 and 112 used in the'AIM, referred to previously. The chip 150 is able to copy a selected column from the bit array stored in the memory portion 152 onto the shift register 154, as in the banks 110 and 112. It is also possible to replace the contents of the shift register with the result of a logical operation performed on a selected column and the previous contents of the shift register 154.
Data may be shifted in and out of the shift register 154 by means of shift in and shift out lines 164 and 166, respectively. The chip 150 also comprises row/column selection input lines 168, and a row input/output line 170 for inputting and outputting data into the memory portion 152 in consecutive rows 160. A plurality of control lines 172 is also provided for controlling the operations performed by i-- WO 88/01411 PCT/AU87/00284 -24the chip or circuit 150 and selecting memory elements of the memory portions 152 and 158. An all zeroes output line 174 is also provided which goes low whenvever the bits of a column stored in the shift register 154 are not all zero. The all zeroes line 174 allows the minimum word algorithm to be performed practically. The command lines 172, inter alia, input signals which control the operation of the shift register 154, the logic unit 156 and input and output of bit maps from the memory portion 152 and the temporary memory portion 158. The inputs on the lines 172 would instruct the chip or circuit 150 to perform the following functions in order to carry out the bit map indexing operations previously described.
AND the contents of the shift register 154 with a selected bit map 162 and store the result in the shift register 154 (ii) OR the 'contents of the shift register 154 with a selected bit map 162 and place the result in the shift register 154 (iii) XOR the content4 of the shift register 154 with a selected bit map 162 and input the contents to the shift register 154.
(iv) Copy a selected bit map 162 to the shift register 154 Copy the contents of the shift register 154 to a selected column 162 of the memory portion 2.
(vi) Complement the contents of the shift register 154 (vii) Shift up one bit the contents of the shift VW0 88/0141 i PCT/A L'37/OO284 register 154 (viii) Shift down one bit the contents of the shift register 154.
For many purposes, including the greater than/less than split operation, it is convenient to have a temporary storage portion 158 in which several extra co2.,umns or bit maps may be stored which cannot bu stored in the shift register 154 simultaneously.
The columns participate in the logical operations in the same manner as the columns of the bit array stored in the memory portion 1,52. The circuit 150 enables all of the bit map logic operations., described, previously, to be performed entirely on board a single cemi-conductor chip. Upon processing a query a fina), bit map can then be examined to identify the records resporoding to the query. This examination is performed by an external circui~t which occesses the bit map through a shift out line 166. As the, index for a table or filie would bestored on a number of chips 150 and since only a few records Will possibly respond to a query, most of bits in t.h0i shift vegistei's 154 containing a final bit map could be all 0. Therefore the all zeroes line 174 provides an indication whether the records corresponding to the code index stored in a chip 150 need be examined in detail or not. If the all zeroes output 174 is high theil the records associated with that respective chip 150 may be discarded as they do not respond to a certain query. Therefore, wi.th the all zeroes output line 174 it is not necessary to search all of the chips 150 associated with the given file as only the WO 88/01411 W088/1411PCT/A U87/OO284' -26chips having a low signal on the all zeroes output line 174 need to be examined in order toi extract a final b ,t map, stored in their respective shift registers 154, to determine the records responding to a certain query.
The indexes stored on the chips 1,50 must be looc,d ontlo the chips 150 from external storage and m~ust be updated. Although the chip 150 processes the indexes column wise, it is convenient for the external storage and updates to beable to access the rows of the memory portion 152 directly which is achieved by serially inputting data via thv, serial input/outpu~,t port 170 which shift bits directly to/from a selected row in the bit array. The rate of this operation is 1 or, 2 MUz which is slower than the shift in/shift out, operation which would be 25,MHz or more. The row input/otutput function could also be adequately carried but using a standard single-bit access port, TQhe active memory circuit 150, as shown in, more detailed in figure 19 comprises a memory array 180 which comprises, a number of 1 bit storage elements 2182 that are addressable by a row column address decoder 184. An array 186 of 1 bit storage elements 182 is also provided to form the temporary storage portion 158. The array 186 is accessed via a temporary bit map address decoder 188. The decoders 184 and 188 Iaccess the arrays 182 and 186 on the basis of select, row/column and addre~s Inputs 190. These inputs 190 form part of the control inputs 172, described previously ,nd the row/column selection inputs 168.
Each one bit memory element 182 provides a bit output WO 88/0141 PCT/AU87/00284 -27- M 192 and a complement of the bit output M 194. Data is written out onto the lines M and M 192 and 194, respectively, of a selected element 182 in response to inputs received from a memory control unit 196 which receives inputs 197 forming part of the control inputs 172.
A bi-directional shift register 154 comprises an array of master-slave flip-flops 198. The contents of the flip-flops 198 may be shifted up or down by respective shift/complement units 1100 which can also complement the contents of the flip-flops 198. A logic unit 1102 is provided for each flip-flop 198 in order to perform selected logic operations on the contents of the shift register 154 and a column of the memory array 180, as described previously. The shift/complement units 1100 and logic units 1102 are controlled by inputs .received from a command decoder 1104 such that each shift complement unit 1100 or each logic unit 1102 functions in the same manner simultaneously. Hence, logic, shifting and complementing operations are performed on a column of bits forming a bit map The command decoder 1104 outputs signals to the units 1100 and 1102 in response to inputs received via commeid lines 1106 which form part of the control lines 172. As the shift recgister 154 is bi-directional data may be shifted in and out of the register 154 via the top of the register 154 or the bottom of the register 154 using a s.:ift in/out top line 1108 or a shift in/out bottom line 1110, respectively. The all zeroes output 174 is obtained WO 88/01411 PCT/A L87/00284f -28by performing a NOR operation on the contents of the flip-flops 198 in a multiple NOR gate 1112.
When the active memory circuit 150 is configured on a single semi-conductor chip each shift/complement unit 1100 and respective flip-flop 198 form a single shift register cell 1150, as shown in figure 18. The shift register cell 1150 comprises a master-slave flip-flop 1152 an~d a plurality of MOSFET transistors 1154 most of which are controlled by control lines which receive outputs from the command decod'er 1104.
The lookthru, control line 1156 allows data to be inputted and outputted via the input S in of the flip-flop 1152 and the not control line 1158 when set high complements the contents of the shift register 1152. The all zeroes line 1160 is brought low whenever the output S 1162 of the flip-flop 1152 is high. When the shift down controll line 1164 is high the contents of the flip-flop of an upper shift register cell 1150 is passed to the input S.i 1164 of the flip-flop 1152. Similarly, when the shift up control line is high the contents of a flip-flop of a lower shift register cell 1150 is passed t o the input 1164 of the flip-flop 1152.
The cell 1170 of the logic unit 1102, as shown in figure 10 comprises an OR gate 1172, an ANDl gate 1174 and an, XOR gate 1176 which performu log.,".c operations on the contents of the flip-flop register 1152, which appears on the output line 1166, and the conte~its of a seleCted memory cell 182, which appears on thoi line M 1170. In order to perform the XOR function the XOR gate 1176 requires inputs from the lines 1180 and 1182 t WO 88/01411 PCT/AU87/00284 -29on which are the complement of the contents in the flip-flop 1152 and the selected memory cell 182, respectively. The logic operations are performed and the results of a selected operation is only outputted to the input 1164 of the flip-flop 1152 when, in accordance with the selected operation, the OR control line 1184, the AND control 1186 or the XOR 1188 goes high. The high and low voltage lines 1190 and 1192, respectively, are provided, as shown in figure 18, for the OR gate 1172 and the AND gate 1174.
When the line M>S 1194 goes high the contents of a selected memory cell 182 is inputted via the line 1178 to the input 1164 of the flip-flop 1152.
Similarly, the contents of the flip-flop 1152 is outputted to a selected memory cell 182 via the line 1162 when the S>M line 1196 goes high. The memory cells 182 when selected by the decoders 184 and 188 to have their contents shifted in and out of the shift register 154 to have logic operations performed on them are selected in a column which may come from the array 180 or the array 186.
The main applications for the active memory circuits are in respect of content-addressable memories, in order to provide indexing for information retrieval and a more specialised table look up as in the AIM, referred to previously.
An active memory dependent subsystem 1200, designed as a co-processor, is attached to a host system via a host system bus 1202, as shown in figure 19. The active memory, which comprises a number of active memory chips or circuits 150, is organized intC II I i- II~ WO M/0/1411 PCT/A U87/00284 a memory subsystem 1200 with addressing and control logic 1206. Control of the active memory to perform specific functions is done by specialised logic units 1208, grouped together into a logic subsystem 1204.
Access to the host system bus 1202, transfer of data, and overall control is performed by an instruction decode/interpret unit 1210.
For general indexing, the logic units 1208 perform the operations described with reference to Figures 1 to 7. Superimposed coding is the most complex of these operations. Figure 20 shows a superimposed code word calculation unit 1220 which accepts as an input a hashed constant and produces either or both a code word (in a register Rl 1222) and a bit map of responding records in the memory subsystem 1200. The random numbers utilized in this unit 1220 are calculated using a linear sequential circuit.
The result of an indexing operation is a bit map of responding records in the memory subsystem 1200.
The host application is interested mainly in the locations of the responding records, not in the bit map per se. Figure 21 illustrates a unit 1230 which holds a plurality of active memory circuits or chips 150 in order to extract a responding bit map from the shift registers of those circuits 150 not reporting all 0's, i.e. those with a low signal on the all zeroes output line, and storing the addresses corresponding to the 1 bits in the responding bit map, in a FIFO storage unit 1232. Preferably the process would be Ripelined, so that the host gets an address ,WO 88/01411 PCT/A U87/00284 -31as soon as it is produced. The unit 1232 operates autonomously calculating further addresses and storing them in the FIFO unit 1232. If the FIFO unit 1232 becomes full before the entire responding bit map has been scanned the unit 1232 pauses until the host has either cancelled their request or query or removed an address from the FIFO 1232. The responding bit map is stored in a bit register 1231 and control is effected by a select/control unit 1233., In: highly dynamic applications, there is a frequent need to insert or delete index entries using the row input/output line 170, as previously described with reference to figure 16. Alternatively, during a given application periodic garbage collection may require a large number of data entries to be removed at one time. One way to perform such an operation is by using a collapse/expand unit 1234, as shown in figure 22. The unit 1234 either collapses or expands the index rows stored in the active memory circuits or chips 150 under control of a bit map. In collapse mode, the bit map has a 1 in every position where an index row is to be removed. The unit copies each row in turn into its row buffer 1236. The unit 234 keeps a count of the number of rows so for removed and uses that to determine the row into which to copy the contents of the row buffer 1236. Expansion operates in the reverse. The bit map would have a 1 in each position in which a row is to be inserted and the copying operation proceeds from the highest row address to the lowest. Zeroes are inserted into the vacant rows. A single bit set in the bit map would WO 88/014J11 PCT/A U87/00284' -32insert or delete a single row. The collapse/expand unit 1234 is controlled by a select/control unit 1235 and a control bit map store 1237 stores the bit map which indicates on which rows a collapse or expansion is to be performed.
A plurality of active memory circuits or chips 150 could be used in many applications for fast table lookup, such as for virtual memory support, node switching a data flow computer, and keeping track of objects in a CAD system. This is a much simpler application of the active memory circuit 150, requiring only equality tests and expecting only one hit, if any, so the elaborate architecture of figure 19 is not required. Figure 23 shows a preferred embodiment of a specialized table look up unit 1236 with, integrated active memory chips 150. The host would supply a test word for storage in a test word register 1239 and the unit 1239 would return in a hit register 1240 an indication as to the the test word's address in a table. The unit 1238 includes a control unit 1241.
The active memory chip 150 preferably has a s--uare array 180 of memory elements 182 with extra columns provided by a temnporary storage array 186. it is clear from the potential applications of the circuit 150 that the row or column views of the array 180 are different, so there is no logical necessity for a symmetrical arrangment of storage elements 182 for bits. An index for a file of 100,000 records fits into 128 bits in most cases. A table look up might need only 32 bits per row but thousands of rows.
WO 88/01411 PCT/AU87/00284 -33- Therefore it may be preferable to design the active memory circuit 150 as a cascadable unit 1250, perhaps 32 bit square. A high density chip might have many of these cascadable units 1250, as illustrated in figure 24.
In a table look up application, portions of the table would reside in each unit 1250 and elementary operations would be performed on all the units 1250 at the same time. For a general indexing dpplication, a logical row might extend over several units or chips 1250 in the row direction. The final bit map is produced section by section using operations selecting all the elements in a single column with a combining process at the end. It is convenient for combining to be able to copy the contents of a selected shift register into the shift register of a unit 1250 furtherest to'the left in its row. Cascading down the column is much simpler requiring only the logical coupling of the shift registers.
The most readily recognisable application of the active memory circuit 150 is in the content-addressable memory system 62 described previously. A content-addressable memory system 62 employing the active memory circuit 150, as shown in Figure 25, comprises 16 video memories 80, forming the index memory unit 74, and 16 active memory circuits 150 which form the index processor 76. The index processor 76 would also include a control unit (not shown) such as the host interface port 120 described previously, to control the active memory circuits 150.
'jw WO 88/01411 PCT/AU87/00284 -34- Bit maps or columns having a size of 4096 bits are transferred -o the bit map storage facilities on the active memory circuits 150, via a 16 bit bus 1500.
Bit map operations are performed on the bit maps stored in the active memory circuit 150 and the results of the operations may be returned to the index memory unit 74 via a 16 bit data bus 1502. The architecture shown in Figure 25 enables complex bit map operations to be performed at a much fast rate as compared to the memory system 62 of Figure 8. The architecture of Figure 25 also enables large bit map matrixes to be stored with the scme amount of memory, and data can be shifted out of the register 94 in the memory unit 74 without having to recover previous data outputted by inputting data at the serial input ports 102 of the registers 94 simultaneously. The bus required for the transfer of data is also only 16 bits wide and, hence, only the transfer of 16 bit words needs to be monitored instead of the transfer of three 16 bit words as in the memory system 62 of Figure 8.
The index processor 76 of the architecture 25 is able to perform bit map operations in cycles less than 1 microsecond.
Claims (13)
- 3. A content-addressable memory system as claimed in claim 2, wherein said arrays may be accessed by said host computer whilst said index processor means accesses said shift registers S4, A content-addressable ,smory system as claimed in claim 2 or 3, wherein said index memories are arranged in a first or second bank and, in performing a predetermined bit map operation, said index processor means accesses a first bit map from said first bank and a second bit map from said second bank said first and second bit maps forming the operands for said operation. A content-addressable memory system as claimed in claim 4, wherein prior to performing said operation said bit maps which form the operands are stored in the shift registers of the respective banks and during said operation said index processor means simultaneously accesses a bit from the serial output port of each shift register said accessed bits forming two words one from each bank performs said operation 37 on said words and outputs the resultant word of the operation to the serial input ports of the shift registers of at least one bank
- 6. A content-addressable memory system as claimed in claim 5, wherein said operation is performed in less than 16 microseconds if said bit maps comprise 4096 bits,
- 7. A content-addressable memory system as claimed in anyone of claims 4 to 6, wherein said index processor means includes: a host interface port connected in f t use, to said host processor bus and Io a serial functions unit connected to said host interface port and said memory system bus said interface port in response to instructions from said host computer accessing said first and second bit maps and causing said serial functions unit to perform a predetermined bit map operation on said first and 'second bit maps,
- 8. A content-addressable memory system as claimed in claim 7, wherein said serial functions Sunit comprises a logic unit having input 4 lines coupled to said serial output ports via said memory system bus and outputs lines coupled to said serial input ports via said memory system bus and a delay unit which enables t.B) output of said logic unit to be monitored.
- 9. An active memory circuit comprising: t an array of memory cells arranged in rows and columns adapted to store at least part of a bit map; a shift register adapted to store at least part of a bit map; and a logic unit connected between said array and said shift register said array shift register and logic unit comprising an integrated circuit and said shift register being able to copy a selected column of said array and said logic unit being able to perform a selected logic operation on the contents of said shift register and a selected column of said array i the result of said operation being stored in said shift register An active memory circuit as claimed in claim 9, wherein said shift register comprises a column of shift register cells and said logic circuit comprises a column of logic cells the logic cells being coupled to ,respective shift register cells and a 4",F respective rows of memory cells
- 11. An active memory circuit as claimed in claim t c 10, wherein said logic cells perform logic operations on the contents of said shift register cells and a selected column of said memory cells and the result of a selected operation is written to the shift register cells when a corresponding control line is enabled. i I I: I ll
- 12. An active memory circuit as claimed in claim 11, wherein said logic operations include NOT, AND, OR, XOR, AND NOT, OR NOT, and XOR NOT.
- 13. An active memory circuit as claimed in any one of claims 10 to 12, wherein said each shift register cell includes a flip-.flop and circuitry to complement the cot :nts of the flip-flop, and shift the contents to another flip-flop in the column of shift register cells
- 14. An active memory circuit as claimed in any one of claims 10 to 13, wherein said logic cells include circuitry which enables the contents of said shift register cells to be stored in a selected column of memcry cells and the contents of a selected column of mmory cells to be stored in said shift regisif when first and second storage control lines are enabled, respectively, An active memory circuit as Jaimed in any one of 'aims 9 to 14 further comprising a NOR gate the output of which goes high when the contents bits stored in said shift register are all low.
- 16. An active memory circuit as claimed in claims 11 or 14 further comprising a command decoder '*It having outputs connected to said control lines said decoder being responsive to inputs received via command lines 4 1 I Y1 ~i L~I- il-_Y-- 40
- 17. A content-addressable memory system as claimed in any one of claims 1 to 3, wherein said index processor means comprises one or more active memories as claimed in any one of claim 9 to 16.
- 18. A content-addressable memory system substantially as hereinbefore described with reference to the accompanying drawings.
- 19. An active \circuit substantially as hereinbefore described with reference to the accompanying drawings. t I I It DATED this 12th day of December, 1989. COMMONWEALTH SCIENTIFIC AND INDUSTRIAL RESEARCH ORGANISATION And UNISEARCH LIMITED By their Patent Attorneys DAVIES COLLISON 8912 12dbwspe,003,csir0. pe,
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AUPH761886 | 1986-08-22 | ||
AUPH761986 | 1986-08-22 | ||
AUPH7618 | 1986-08-22 | ||
AUPH7619 | 1986-08-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
AU7918587A AU7918587A (en) | 1988-03-08 |
AU595378B2 true AU595378B2 (en) | 1990-03-29 |
Family
ID=25643155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
AU79185/87A Ceased AU595378B2 (en) | 1986-08-22 | 1987-08-21 | Content-addressable memory system with active memory circuit |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0321493A4 (en) |
AU (1) | AU595378B2 (en) |
WO (1) | WO1988001411A1 (en) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3190748B2 (en) * | 1992-11-19 | 2001-07-23 | エヌイーシーマイクロシステム株式会社 | RAM scanning device |
EP1049030A1 (en) | 1999-04-28 | 2000-11-02 | SER Systeme AG Produkte und Anwendungen der Datenverarbeitung | Classification method and apparatus |
EP1182577A1 (en) * | 2000-08-18 | 2002-02-27 | SER Systeme AG Produkte und Anwendungen der Datenverarbeitung | Associative memory |
US9177828B2 (en) | 2011-02-10 | 2015-11-03 | Micron Technology, Inc. | External gettering method and device |
PT1288792E (en) | 2001-08-27 | 2012-02-29 | Bdgb Entpr Software Sarl | A method for automatically indexing documents |
US8321357B2 (en) | 2009-09-30 | 2012-11-27 | Lapir Gennady | Method and system for extraction |
US9152883B2 (en) | 2009-11-02 | 2015-10-06 | Harry Urbschat | System and method for increasing the accuracy of optical character recognition (OCR) |
US9213756B2 (en) | 2009-11-02 | 2015-12-15 | Harry Urbschat | System and method of using dynamic variance networks |
US9158833B2 (en) | 2009-11-02 | 2015-10-13 | Harry Urbschat | System and method for obtaining document information |
CN103678556B (en) | 2013-12-06 | 2017-10-10 | 华为技术有限公司 | The method and processing equipment of columnar database processing |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3535694A (en) * | 1968-01-15 | 1970-10-20 | Ibm | Information transposing system |
JPS5148937A (en) * | 1974-10-25 | 1976-04-27 | Fujitsu Ltd | Kiokusochi niokeru junjoseigyohoshiki |
GB1526232A (en) * | 1975-10-08 | 1978-09-27 | Texas Instruments Ltd | Digital data storage systems |
FR2408868A1 (en) * | 1977-11-09 | 1979-06-08 | Aerospatiale | METHOD AND DEVICE FOR THE GENERATION OF STOCHASTIC CONSTANTS |
US4298932A (en) * | 1979-06-11 | 1981-11-03 | International Business Machines Corporation | Serial storage subsystem for a data processor |
JPS5694589A (en) * | 1979-12-27 | 1981-07-31 | Nec Corp | Memory device |
US4412313A (en) * | 1981-01-19 | 1983-10-25 | Bell Telephone Laboratories, Incorporated | Random access memory system having high-speed serial data paths |
JPS5839341A (en) * | 1981-09-02 | 1983-03-08 | Toshiba Corp | Method and device for data access control of data base management system |
GB2127994B (en) * | 1982-09-29 | 1987-01-21 | Apple Computer | Memory management unit for digital computer |
US4757438A (en) * | 1984-07-12 | 1988-07-12 | Texas Instruments Incorporated | Computer system enabling automatic memory management operations |
US4695949A (en) * | 1984-07-19 | 1987-09-22 | Texas Instruments Incorporated | Method for efficient support for reference counting |
-
1987
- 1987-08-21 EP EP19870905919 patent/EP0321493A4/en not_active Withdrawn
- 1987-08-21 AU AU79185/87A patent/AU595378B2/en not_active Ceased
- 1987-08-21 WO PCT/AU1987/000284 patent/WO1988001411A1/en not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
EP0321493A1 (en) | 1989-06-28 |
EP0321493A4 (en) | 1991-11-21 |
AU7918587A (en) | 1988-03-08 |
WO1988001411A1 (en) | 1988-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US3402398A (en) | Plural content addressed memories with a common sensing circuit | |
US4823259A (en) | High speed buffer store arrangement for quick wide transfer of data | |
JP3125884B2 (en) | Content address storage | |
EP0054588B1 (en) | Interactive data retrieval apparatus | |
US4646271A (en) | Content addressable memory having dual access modes | |
US4622653A (en) | Block associative memory | |
US6480931B1 (en) | Content addressable storage apparatus and register mapper architecture | |
US4845664A (en) | On-chip bit reordering structure | |
EP0180239B1 (en) | Content-addressable memory | |
EP0676081A1 (en) | Pattern search and refresh logic in dynamic memory | |
AU595378B2 (en) | Content-addressable memory system with active memory circuit | |
Berra et al. | The Role of Associative Array Processers in Data Base Machine Architecture | |
EP0459703B1 (en) | Content addressable memory | |
EP0166192B1 (en) | High-speed buffer store arrangement for fast transfer of data | |
US5390139A (en) | Devices, systems and methods for implementing a Kanerva memory | |
US4327407A (en) | Data driven processor | |
US4777622A (en) | Associative data storage system | |
Edelberg et al. | Intelligent memory | |
EP0170443B1 (en) | Method for searching an association matrix | |
US5276846A (en) | Fast access memory structure | |
US5485588A (en) | Memory array based data reorganizer | |
JPH02501604A (en) | associative memory system | |
Naden et al. | Fault-tolerant memory organization: Impact on chip yield and system cost | |
EP1155415B1 (en) | Content addressed memories | |
US4077029A (en) | Associative memory |