CA1185378A - Content-addressable memory modules with associative clear - Google Patents

Content-addressable memory modules with associative clear

Info

Publication number
CA1185378A
CA1185378A CA000431650A CA431650A CA1185378A CA 1185378 A CA1185378 A CA 1185378A CA 000431650 A CA000431650 A CA 000431650A CA 431650 A CA431650 A CA 431650A CA 1185378 A CA1185378 A CA 1185378A
Authority
CA
Canada
Prior art keywords
match
register
data
content
signal
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
Application number
CA000431650A
Other languages
French (fr)
Inventor
David L. Houseman
Paul Bowden
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
Data General Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Data General Corp filed Critical Data General Corp
Application granted granted Critical
Publication of CA1185378A publication Critical patent/CA1185378A/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90339Query processing by using parallel associative memories or content-addressable memories

Abstract

ABSTRACT

A content-addressable memory module which performs an associative clear operation in response to a clear signal provided on a clear line. The associative clear operation simultaneously clears all registers in the content-addressable memory module whose contents match bits in a pattern input to the content-addressable memory module.
A mask input along with the pattern determines which bits of the pattern are significant for the match. Each register in the content-addressable memory module has a bidirectional match line associated with it. A register's bidirectional match line carries a match signal only in that register contains data matching the pattern bits specified by the mask and the bidirectional match line is receiving a match signal from an external source. Clearing logic associated with each register clears the register when a clear signal appears on the clear line while the register's bidirectional match line is carrying a match signal. In content-addressable memories constructed of such content-addressable memory modules, memory match lines connect match lines associated with a number of registers. The memory match line and all of the match lines connected to it carry match signals only if if each of the registers associated with the match lines con-tains data matching the pattern and mask input to the content-addressable memory module containing the register.
The content-addressable memory module further contains logic allowing the use of encoded addresses to address individual registers in the content-addressable memory module.

Description

5~7~ .

CONTENT-ADDRESSABLE MEMORY MODULE WITB ASSOCIATIVE CLEAR

CROSS-REFE~ENCES TO RELATED APPLICATIONS

BACKGROUND OF THE INVENTION

1 Yield of the Invention The present invention relates to memory circuits for use in digital computer systems and more specifically to content-addressable memory circuits.
2 Description o~ Prior.Art In the prior art, content-addressable memory modules (CAMMs) have been developed which perform match operations in addition to the read and write operations performed by standard memory circuits. In read and write operations, memory modules respond to addressesO In the read operation, --1-- , ., . .
3'~

an address is presented to the memory module and the memory module returns the data stored at that address; in the write operation, an address and data are presented to the memory module and the data is stored at the address.

In the match operation~ on the other hand, an item of data is input to a CAMM, and if a matching item of data is contain~d in the CAMM, the CAMM indicates its location by activating a match line corresponding to the register con-taining the matching item of data. The degree of match required to activate the match line may be controlled by presenting a CAMM with mask bits as well as with the input data. Each mask bit corresponds to an input data bit; if the mask bit is set, the corresponding input da~a bit is ignored when data in the registers is compared with the item of data presented to the CAllM. Examples of such prior art CAMMs are the InteltR~ 3104, the Signetics~10155, and thë Fairchild~
F100142. Such CA~Ms are generally designed so that they may be easily combined together to form content-addressable memories (CAMs). A CAM has the same properties as a CAMM, except that a single CAM register is made up of a correspon-ding register from each of the CAMMs making up the CAM.

CAMs as described above may be used in digital computer systems to construct caches allowing fast access to frequently-used values by means of keys representing the values. For example, an operand in an instruction stream may contain information from which a memory address may be calculated. Once the memory address has been calculated, the memory address may be loaded into a cache and the operand may ~ t~ ~ ~v~
O

"

be used as a key to access the memory address in the cache.
Such a cache may be constructed by combining a CAM with a fast-access memory. In the combination, each register of the fast-access memory may correspond to a register of a CAM, and a match line from the CAM register may serve to address the corresponding register of the fast-access memory. The CAM
registers contain operands, and the corresponding registers of the fast-access memory contain the memory addresses corresponding to the operands. When an operand appears in 13 the instruction stream, it is presented to the CA~. If the , CAM contains the operand, the match line for the CAM register containing the operand becomes active and thereby addresses the corresponding register of the fast-access memory. The fast-access memory then respon~s by providing the memory address contained in the corresponding register. If the CAM
does not contain the operand, a fault occurs to which the digital computer system responds by calculating the memory address represented by the operand and loading the operand into a CAM register and the memory address into the corres-ponding register of the fast-access memory.

The use of prior-art CAMs in applications such as that just described has been hindered by the amount of time required to clear the registers of prior-art CAMs. Such clearing is often necessary when a call or return operation is performed or when one process is removed from a processor and another loaded onto a processor. Such operations occur frequently in modern digital data processing systems, and the amount of time required to perform them has an important . .

53 7~

impact on overall system performance. In CAMs of the prior art, a register may be cleared only by performing a write operation to the register to be cleared. Thus, clearing an entire CA~I requires separate write operations to each regis-ter in the CAM and clearing a CAM entry for a given operandrequires presenting the operand to the CAM to obtain the address of the register containing the CAM and then perfor-ming a write operation to the register specified by the address.

The foregoing problem of the prior art and other pro blems as well are solved by the the invention described below.

- .
-4-,. _ ,.
5~

SUM~Y OF T~E INVENTION

The present invention provides a CAMM in which all registers which contain data matching a pattern input as modified by a mask input are simultaneously cleared when a clear signal is received in the CAMM. The mask input modi-fies the pattern input by specifying that certain bits of the pattern input be ignored when testing for a match between the pattern input and data stored in the registers. If the mask input specifies that all bits of the pattern input are to be ignored, all data contained in the registers matches the pattern input and all registers of the CA~I are simultane-- ously cleared on receipt of the clear siynal.
The CA~ includes input lines for receiving data to be stored in the registers and t~e pattern inputj mask input lines for receiving a mask, a clear line for receiving a clear signal, registers for storing data, and bidirectional match lines associated with each register for providing and receiving a mat~h signal. The bidirectional match lines carry a match signal only when the register associated with the match line contains stored data matching the pattern input and the match line is simultaneously receiving a match signal from an external source.
The registers have three principal components: logic forming flip-flops for storing individual bits of data, match detection logic responsive to the data stored in the register, the data input lines~ and the mask input lines for , detecting a matching data item and providing a match signal to the bidirectional match line associated with the register, and clearing logic responsive to the clear line and the bidirectional match line for clearing the register in response to the simultaneous occurrence of a match sisnal on the bidirectonal match line and a clear signal on the clear line.

CA~s of the present invention may be combined to form CAMs with the properties of the CAMM. In such CAMs, clear lines from the CAMMs making up the CAM are connected to a mernory clear line and match lines from ~egisters in the CAr~s are connected to memory match lines. A memory match line carries a match signal only if all match lines connected to the memory match line are providing match signals.
Consequently, the match lines connected to a memory match line provide a matcn signal to the clearing logic only if the match detection logic of each register in the CAM register detects a match. CAMM registers whose match lines are connected to a common memory match line are therefore cleared only if each of the registers connectea to the memory match line contain aata matching the pattern input to the CA~
containing that register.

It is thus an object of the present invention to provide an irnproved digital computer system.

25It is a further object of the present invention to provide an improved CAMM for use in digital computer systems.

.
,.

~S3~3 It is another object of the present invention to provide a CAMM having an associative clear operation.

It is a still further object of the present invention to provide a CAMM wherein all CAMM registers may be simultane-ously cleared.

It is yet another object of the present invention to provide a CAMM wherein a set of CAMM registers may be simul-taneously cleared.

It is a yet further object of the present invention to provide a CAMM having encoded addressing.

It is still another obje~t o~ the present invention to provide an improved CAM.

It is a yet further object of the present invention to provide a CAM having an associative clear operation.

It is a final object of the present invention to provide - a CAM wherein sets of registers or the entire CAM may be simultaneously cleared.

Other objects, advantages, and features of the present invention will be understood by those of ordinary skill in the art after referring to the following detailed description of the preferred embodiment and drawings~ whereiD:

BRIEF DESCRIPTION OE THE DRAWINGS

Figure 1 is a block diagrarn showing an illustrative embodiment of a content-addressable memory module having the properties of the present invention;

Figure 2 is a block diagram showing an illustrative embodiment of a content-addressable memory module employi~g content-addressable memory modules having the properties of the present invention;

Figure 3 is a representation of the con~ents of a - content-addressable memory employing content-addressable memory modules having the properties of the present invention before and after a clear operation;

Figure 4 is a block diagram showing a second illustra-tive embodiment of a content-addressable memory employing content-addressable memory modules having the properties of the present invention;

Figure 5 is a simplified logic diagram of a single register of a preferred embodiment of the content-addressable memory module of the present invention;

. ~igures 6 and 6A through 6F together make up a complete logic diagram of a TTL gate array implementation of a pre-ferred embodiment of a content-addressable memory module of the present invention; and Figure 7 is a truth table showing the decoding of the encoded addresses used in the TTL gate array implementation of Figure 6, 3~gl~ -DESCRIPTION OF T~E PRE~RRED EMBODIMENTS

1 Introduction In the following description of the preferred embodim-ents of the present invention, content-addressable memories are first described in general. Next functional descriptions of a content-addressable memory module of the present inven-tion and of content-addressable memories formed from content-addressable memory modules of the present invention are presented. Finally, a detailed implementation of a content-addressable memory module of the present invention is disclosed. -1.1 General Description of Co~tent-Addressable Memo~ie~

A content-addressable memory ~CAM) is a memory which not only stores data, but also performs a match operation. In this operation, the CAM is given an item of data as input and if the CAM contains a matching item of data, i.e., one in which the values of certain bits are the same as that of corresponding bits of the item of data provided as input, the CAM indicates which register of the CAM contains the matching data. In many CAMs, a mask input selects the bits of the input data which are compared with the corresponding bits of the data contained in the CAM register. A data item stored in a CAM register matches the input data if the bits in thc ..9~

data item in the CAM register cor~esponding to the ~it5 of the input data item selected by tbe mask input match the selected bits of the data input item. Other bits in the data item stored in the CAM do not affect the match.

1.2 CAMs o the Presen't Inventio~
Besides performing match operations with or without masking, CAMs of the present invention perform an associative clear operation. In a clear operation, all bits in a regis-ter of a CAM are set to 0; in an associative clear operation, all bits in a given register of a CAM are set to 0 if there is a match between the data input to a CAM as masked by the mask input and the contents of a given CAM register.
Finally, CAMs of the present invention perform read and write operations like those of standard memories.

2 Content-Addressable ~emory Modules of ~he Present Invention -- Pigure 1 ~
A CAM of the present invention may include one or more CAM modules (CAMMs). Referring to Figure 1, there is dis-closed a block diagram of a single CAMM 101 of the present invention. CAMM 101 contains a plurality of registers 105 for storing data. CAMM 101 further receives inputs of data to be stored in registers 105 from data input lines 117~
masking inputs from mask lines 127, addresses of registers 105 from external address lines 113, and control signals from control lines 12g. Control lines 129 include output enable (OE) line 131 for enabling output of data fom CAMM 101, write , 3~ 3 enable tWE) line 133 for enabling the storage of data on data input llnes 117 in CAM~ 101, and clear (CLR) line 135 for enabling the associative clearing of registers 105. CAMM 101 provides outputs of data stored in registers 105 on data output lines 119. Finally, C~MM 101 both receives inputs and provides outputs on bidirectional external match lines 125.
Each external match line 125 corresponds to a register 105 in CAMM 101 and a external match line 125 may be connected to external match lines 125 of other ~AMMs 101. The input received on a external match line 125 for a given register 105 indicates whether the contents of registers 105 of other CAMMs 101 whose external match lines 125 are connected to the external match line 125 of a given CAMM register 105 match the data inputs to those CAMMS 101 as masked by the mask inputs. The outp~t of an external match line 125 for a given register 105 indicates whether the contents of that register matches the data and mask inputs received by its CAI~M 101.

3 Internal Structure of CAMM io~
Internally, CA~ 101 is made up of register set 103 consisting of registers 105, address decoder 109 for decoding addresses of registers 105 received on external address lines 113, internal address lines 115 for transmitting decoded addresses from address decoder 109 to registers 105, clear logic 111 for performing the associative clear operation, internal match lines 121 for transmitting match signals between registers 105, clear logic 111, and external match lines 125, and internal clear lines 123 for transmitting 5~'7~.~
C
lear signals between clear logic 111 and registers 105.

Each register 105 consists of a plurality of cells 107 for storing a single bit of data. Each cell 107 in a given register 105 corresponds to a single data input line 117, a single data output line 119, and a single mask line 127.
Thus, if each register 105 has O..m cells 107, there are O..m data input lines 117, data output lines 119, and mask lines 125. In Figure 1, the plurality of data input lines 117 is indicated by d(O)..d(m), the plurality of mask lines hy e(O)..e(m), and the plurality of data output lines by y(O)..y(m). Data input line d(0) carries data to cell 107 (0) of a register lOS speciied by an address on external address lines 113, data output line y(0~ carries data from cell 107 (0) of a register 105 specified by an address, and mask line e(0) masks data input line d(0).

Each register 105 corresponds to a single internal address line 115, a single internal match line 121, and a single internal clear line 123. In Figure 1, the plurality of registers 105 is indicated by r(O)..r(l), the plurality of internal address lines 115 by a(O)..a(lj, the plurality of internal match lines 121 by m(O)..m(l), the plurality of internal clear lines 123 by c(O)..c(l), and the plurality of external match lines 125 by MA(o)..~(l). If i is in 0..1, then internal address line 115 a(i)~ internal match line 121 m(i~, internal clear line 123 c(i), and external match line 125 ~(i) all cor~espond to register r~i) 105. Further, a given cell 107 in registers 105 is indicated by q(i,j), where i specifies register 105 to which cell 107 q belongs and j , .

~,~s ~r~7~ ' specifies a single cell 107 of cells 107 O..m in register i.
Thus, cell 107 (0) of register 105 r(1) is specified by q (1,0) .

Internal ~atch line 121 m(i) and external match line 125 r~(i) are related as follows: if either is inactive, the other is also inactive. Internal match line 121 m(i) is inactive if its corresponding register 105 r(i) does not mateh the data on data input lines 117 as masked by the inputs on mask lines 125. The electrical properties of external match lines 125 are such that corresponding external match lines from a plurality of CAMMs 101 may be conneeted together; since each such connected external match line 125 r~A(i? is inactive if its corresponding internal match line 121 m(i) is inactive, all such connected external mateh lines 125 MASi) are inactive if any of the corresponding internal match lines 121 m(i) is inaetive, and if an external match lines 125 MA(i) is inactive, all-internal match lines 125 m(i) connected thereto are also inactive~ ~n logieal terms, therefore, the state of an external match line 125 MA(i) is the logical product of the states of all internal match lines 121 m(i) in the cAr~Ms 101 whose external match lines 125 are conneeted.
Clear logic 111 determines the state of an individual clear line 12i c(i) in response to external match line 125 ~A(i) and CLR line 125. If external match line 125 MA(i) and CLR 135 are simultaneously active, clear logic 111 actives clear line 123 c(i), thereby setting cells 107 q(i,O~.m) o~
register 105 r(i) to a value indicating a binary 0O As 3'~ .

mentioned above, external match line MA~i~ is active only if its corresponding internal match line m(i) is active. Where external match lines 125 MA(i) of a plurality of CAMMs 101 are connected together, therefore, no register 105 r~i) in any of the plurality of CAMMs 101 is cleared unless internal match lines m(i) 121 in all of the plurality of CAMMs 101 are active, that is, unless the contents of each register 105 r(i~ in the plurality of CAMMs 101 matches the inputs on data input lines 117 as masked by mask lines 125 in that CAMM 101.

External address lines 113 consist of a plurality of address lines A(0)..A(k) which transmit a binary encoded address specifying a register 105 to address decoder 109.
Address decoder 109 decodes the address and activates inter-nal address line 115 corresponding to register 105 specified on external address lines 113. For example, in a CAMM 101 with 8 registers 105, the external address lines 113 may consist of lines A(0)..A(2) and internal address lines 115 may consist of lines a(0)..a(7)0 The three external address lines 113 allow a binary representation of the integers 0 through 7 and address decoder 109 decodes this binary repre-sentation and activates internal address line 115 for regis-ter 105 specified by the integer represented by external address lines 113.

4 Operati~ns Performed by CANM 101 As mentioned above, CAMM 101 performs four operations: a read operation, a write operation, a match operation, and a clear operation. In a read operation, ~E 131 is active, 35;~ ~

external address lines 113 specify a register 105 r(i), and data output lines 119 y(O)..y~m) are set to the values of cells 105 q~i,0) .q~i,m). In a write operation, WE 133 is active, external address lines 113 specify a register 105 r~i), and cells 105 q~i,O).. q~i,m) are set to the values on data input lines 117 d~O)... d(m).

In a match operation, WE 133 and CL~ 135 are both inactive. The inputs are data on data lines 117 d~O)..a(m~
and mask enable signals on mask lines 127 e~O)..e~m). If a mask line 127 e(j) is active, then the value of data line 117 d(j) is disregarded when testing for a match. If the con-tents of cells 107 q~i,O)..q~i,m) for a given register lOS
r(i) match all values on data lines 117 d(O)..d(m) which are not masked by active masl; lines 127, then internal match line 121 m~i) becomes active. In logical terms, this may be defined as follows:
m(i) = mp [(q(i,j) d(j)) + e~j)]
j=O
where P is the logical product.

In the associative clear operation, finally, WE 133-is inactive and CLR 135 is active. As previously mentioned, i CLR 135 c~i), internal match line 121 m(i), and external match line 125 /lA(i) are all active, match and clear logic 111 clears register r(i). Since external match line 125 MA(i) is active only if internal match lines 121 m~i) for all CAM~ls 101 whosé external match lines 125 MA(i) are connected together are active, a clear takes place only if there are matches for all C~MMs 101 whose external match lines 125 MA(i) are connecte~O

3~ r~

4.~ ~Ms Composed of CAHMs lOl -- Pigure ;!

In most applications, an individual CAMM 101 like the one just described is combined with other CAMMs 101 to make a CAM. Pigure 2 is a block diagram representing a CAM 201 made up of a plurality or CAMMs 101. Inputs to CAM 201 include data on CAM data input lines 213, masks on CAM mask lines 215, control signals on CAM control lines 211, and encoded addresses on CAM address lines 211. Outputs include data on CAM data output lines 214 ànd CAM match signals on CAM match lines 217.

4~3.1 Behavior of CAM 201 The behavior of CAM 201 is determined by the manner in which CAMMs 101 making up CAM 201 are connected by CAM
address lines 211, CAM control lines 212, and CAM match lines 217~ CAM address lines 211 CA(0).. .CA (k) are connected to .
external address lines 113 A(0)... A(k) of all CAMMs 101 in CAM
201, and consequently, an address i on CAM address lines 211 specifies register 105 r(i) in all CAMMs 101 making up CAM
201. CAM control lines 212 consist of CAM OE line 221, connected to OE line 131 of all CAMMs 101 making up CAM 201, CAM WE line 223, connected to WE line 133 of all CAPIMs 101 in CAM 201, and CAM CLR line 225, connected to CLR line 135 of all CAMMs 101 in CAM 201. As a consequence of these connections, when a CAM control line in CAM control lines 212 becomes active, its corresponding control line in control lines 129 in all CAMMs 101 making up CAM 201 becomes active.
CAM match lines 217 CMA(0)..CMA(l), finally, are connnected S~

to external match lines 125 MA(O~..MA~l) in all CAMMs 101 making up CAM 201. As previously explained, when external match lines 125 corresponding to a register 105 r(i) in a plurality of CAMMs 101 are connected together, a failure of S the con,ents of a register 105 r(i) to match the values of register 205 r(i)'s data inputs 117 as masked by its mask inputs 125 deactivates its external match line 125 MA(i), and this in turn deactivates all external ~natch lines 125 MA(i) connected to it. Consequently, CAM match line 217 CMA~i) is active only if for each register 105 r(i) in the group of CAMMs 101 forming CAM 201, the value of data inpu~s 117 as masked by mask inputs 127 of each register 105 r(i) matches the contents of that register 105 r(i) As a result of these connections between CAMMs 101 making up CAM 201, correspondirig registers 105 r~i) in CAMMs 101 making up CAM 201 behave as a single logical register 219 R(i), indicated by dashed lines in Figure 2. if CAM 201 contains s CAMMs 101 and each register r(i) contains n cells 107, then logical register 219 R(i) contains sn cells 107.
In Figure 2, these cells are specified as cells lo?
q(i,O)..q(i,p), where p = sn-l. Just as all registers lOS
r(i) in CAMMs 101 making up CAM 201 form a logical register R(i) 219, so do all data input lines 117 in these CAI~ls 101 form CAM data input lines 213, all data output lines 119 form CAM data output lines 214, and all mask lines 127 form CAM
mask lines 215. 'rhere are as many CAM data input lines 213, CAM data output lines 214, and CAM mask lines 215 as there are cells 107 q in a logical register 219. In Figure 2, the lines comprising CAM data input lines 213 are specified by D(0)..D(p), those comprising CAM data output lines 214 by Y(0)..Y(p), and those comprising CAM mask lines 215 by E50)..E(p), where p = sn-l as before.

4.3.2 Operations Performed by CAM 201 As a conseqence of the manner in which CAMMs 101 are connected to form CAM 201, all of the reading, writing, matching, and clearing functions performed by a CAMM 101 can be performed by CAM 201 o In a read operation, CAM OE line 221 is active and CAM
address lines 211 specify an address. Consequently, control line OE 131 of each CAl~ 101 is active, external address lines 113 of each CAMM 101- specify a corresponding register 105 r(i), and data output lines 119 are set to the values of the cells 105 making up register 105 r(i). Since all the . .
registers 105 r(i) together make up logical register 219 R(i), and all of the data output lines together make up CAM
data output lines 214, the result is to set CAM data output lines 214 Y(0~..Y(p) to the values of cells 105 g(i,0)..q(i,p) in logical register 219 R(i~. Similarly, in the ~rite operation, CAM WE line 223 is active, CAM address lines 211 specify an address, and cells 105 q(i,0~..q(i,p) in logical register 219 R(i) indicated by the address are set to the values of CAM data input lines 213 D(0) . .Dtp) .

.. . .
In a match operation, CAM data input lines 213 D(0)....... ......D(p) specify the data to be matched with the contents 353'~

of logical registers 219 and CAM mask lines 215 E(O)..E(p) specify which bits of the data are to be ignored in determin-ing whether there is a match. Since CAM match line 217 CMA(i~ corresponding to a logical register 219 R(i) connects all ~xternal match lines 125 MA(i) for registers 105 r~i) comprising logical register 219 R(i), CAM match line 217 CNA(i) and all external match llnes 125 MA(i) are deactivated as previously described if the contents of any register lOS
r(i) fail to match unmasked bits on CAM data input lines 213 correspon~ing to the cells 105 contained in register 105 r~i). The state of CAM match line 217 CMA~i) thus indicates whether the con~ents of logical register 219 R(i) match the data on CAM data input lines 213 D(O).~D(p). In logical terms, this may be expressed as follows: -CMA(i) = PP [(q(i,j) d(j)) + e(j)]
j=O
where P is the logical product as before.
As may be seen from the above equation, a match operation for a logical register 219 k(i) in,CAM 201 is completely equiva-lent to a match operation for a register 105 r(i) in CAMM
101 .

The behavior of the clear operation in CAM 201 is determined by the behavior of the match operation and by the fact that CLR lines 135 of all CANMs 101 in CAM 201 are connected to CAM CLR line 225, and consequently, all CLR
lines 135 are active when CAM CLR line 225 is active~ As explained in the description of CAMMs 101, a register 105 r~i) is cleared only if CLR line 135 and external match line 125 MA(i) are both active. External match line 125 MA(i) for 3'~

a register 105 r(i) in a logical register 219 R(i) is active only if internal match lines 121 m~i) for all registers lD5 r~i) making up logical register 219 R~i) are active.
Therefore, registers 105 rli) making up logical register 219 R(i), and thus, logical register 219 R(i) itself, are cleared only if the contents of logical register 219 R(i) match the data on CAM data input lines 213 as masked by the input on CAM mask lines 215. As with the other operations, the clear operation on a logical register 219 R(i) is thus completely equivalent to the clear operation on a register 105 r(i).

4.3.3 Example Match and Clear Operations -- Figure 3 A concrete example of a match operation and a clear operations in a CAM 201 is provided by Figure 3. Figure 3 shows the state of cells 107, CAM data input lines 213, CAM
mask lines 215, internal match lines 121, internal clear lines 123, and CAM match lines 217 for a CAM 201 comprised of two CAMMs 101. Each CAMM 101 contains 8 4-bit registers 105, and consequently, CAM 201 of Figure 3 contains 8 eight-bit logical registers 219. Figure 3 represents CAM 201 as follows: Table 301 represents the inputs to CAM 201 at the time of the match and clear operations; row D corresponds to CAM data input lines 213, and row E corresponds to CAM mask lines 215; the columns specify individual CAM data input lines 213 and CAM mask lines 215. The value at the intersec-tion of a row and a column specifies the value on the line specified by the column in the set of lines specified hy the row.

5~
Tables 305 ancl 307 show the st~te of CAM 201 be~ore and after an associa~ive clear operation. In these tables, part 302 represents the state of CAMM 101 0 and part 303 the state of CAMM 101 1 making up CAM 201. In ta~les 305 and 307, each row corresponds to a logical register 219 and the numbered columns correspond to cells 107. The value at the intersec-tion of a row and a numbered column is tnus the value of that cell 107 specified by the column number in logical register 219 specified by the row number. Table 305 further contains lettered columns; the letters heading these columns specify lines in CAMMs 101 corresponding to registers 105 making up logical registers 219 in CAM 201 and lines in CAM 201 itself.
The letter M 121 specifies internal match lines 121, the letter C 123 specifies internal clear lines 123, the letters MA specify external match line 125, and the letters Cl~A
specify CAM match lines 215. As previously explained, the state of a CAM match line 215 is the same as the state of the external match lines 125 connected to it. Again, the value at the intersection of a row and a lettered column is the state of the line specified by the letter corresponding to the register specified by the row.

Turning now to the operation illustrared in Figure 3, the values of CAM mask lines 215 determine which values on CAM data input lines 213 are relevant to the matchO In Figure 3, CAM mask lines E(2).. E(7) all have the value 1;
consequently, any value in cells 107 q(i,2)..q(i,7) produces a match when compared with the value on the corresponding line of CAM data input lines 213 1:\(2)..D7) and only the '7~

values in cells 107 q(i,O)..q(i,l) may fail to match when coJ,lpared with the value of the corresponding data input line of data input lines 213 D(O)..D(l). The effect of the masking can be seen in column m for CAMM 1 303. Since all CAM mask lines 215 corresponding to cells 107 contained in CAMM 1 303 are active, the contents of these cells are indifferent and all internal match lines 121 in CAMM 1 303 are active. In CAMM 0 302, on the other hand, only CAM mask lines 215 corresponding to cells 107 q(i,2)..q(i,3) are active, and thus, the contents of cells 107 q(i,0) and q(i,l) are relevant to the match. As Figure 3 shows, only in registers 105 (1), (4), and (5) do the contents of these cells match the values on the corresponding CAM data lines D(O)..D(l), and only internal match lines 121 corresponding to these registers 105 are active.
. - ,. . .
Further, since all internal match lines 121 m(i) in registers 105 r(i) making up a logical register 219 R(i) must be active in order for the CAM match line 217 corresponding to a logical register 219 R(i) to be active, only CAM match lines 217 for logical registers 219 (1), (~, and (5) are active. Finally, an internal clear line 123 c(i) in CAM~ 0 302 or CAMM 1 303 is active only lf CAM CLR 225 is active and external match line MA (i) 125 is active. Since the state of external match line ~(i) 125 is identical with the state of CAM match line 217 to which it is connected and only CA;~
match lines 219 for logical registers (1), (~), and (5) are active, onl~ those internal clear lines 123 in CAMM 0 302 and CAMM 1 303 are active which correspond to registers 105 ~ 3~3 ~ ~

making up logical registers 219 1, 4, and 5. As shown in Table 307 of Figure 3; showing the state of the cells 107 in CAM 201 after the clear operation, all cells 107 making up these logical registers 219 have been set to 0.

The associative clear operation illustrated in Figure 3 may be used to simultaneously clear all data having a certain type code from a CAM 201 while leaving data with other type codes undisturbed. For example, the leftmost two bits of the data stored in CAM 201 of ~igure 3 might be such a type code.
In the example of Figure 3, CAM mask lines 215 mask all bits but those containing the type code, and the unmasked CAM data input lines 213 have the value 10, specifying a type code.
As apparent in Figure 3, when CAM CLR line 225 is active, all CAM 201 logical registers 219 containing aata with the type code 10 are cleared.
, ~ . .
4.3.4 ~aMs with Different Properties Formed from CAMMS lO1 --Eigure 4 By varying the manner in which CAMMs 101 are connected together, CAMs with differing properties may be formed.
Figure 4 presents an example of such a CAM, a CAM with status registers. CAM 401 has two main parts: status registers 415 and data registers ~17. Data registers 417 contain data;

each register in status registers 415 is associated with a data register 417 ana contains status information about that data reyister ~17. Status information might include a bit indicating that the contents of the associated data register 417 are valid or one indicating that the associated data ~ ~ ~ 33~ ~

register 417 is being loaded. The association of registers in status registers 415 with registers in data registers 417 is accomplished by connecting all CAMMs 101 in CAM 401 to common CAM address lines 40~, whereby a single aadress refers either to a register in status registers 415 or the register in data registers fil7 associated with it. The division of CAM 401 into t~lo sets of registers is accomplished by connec-ting CAMMs 101 making up data registers 417 to one set 403 of CAM inpu~, output, masking, control, and match lines and CAMM
101 making up status registers 415 to another set 405, thus making it possible to perform read, write, match, and clear operations independently on status registers ~lS and data registers 417.

4.4 Implementation of a ~hMM 101 The discussion now turns to an exemplary impiementation of a CAMM 101. The exemplary implementation is presented merely for purposes of illustration; other implementations are possible which are capable of performing the same opera--tions as the exemplary implementation and are thus equivalent to it. The exemplary implementation discussed herein uses TTL gate array technology. In this technology, all logic functions must be expressed by means of NAND gates and inverters. Because of the complexities introduced into the implementation by this constraint, it is advantageous to first discuss ~igures 5 and 5A, which together present a simplified logic diagram for a single register of a CA~ 101 Thereupon, the discussion will turn to the exemplary imple-"

mentation of CAMM 101 itself.

4.4.1 Simpli~ied Logic Diagram ~or ~ Singl~ Register of a CAMM 101 -- Figu~e 5 The logic diagram of ~igures 5 and 5A employs AND gates, OR gates, and RS flip-flops, that is, flip-flops having an S
input whose activation sets the flip-flop to 1, an R input whose activation sets the flip flop to 0, a y output which has the value to which the flip-flop was last set, and a y output whose value is the complement of that of the y output.
Figures 5 and 5A represent a single register 567 (i~, out-lined in dotted lines, and additional elements showing register 567 (i)'s relationship to the remainder of CAMM 101 to which it belongs. Register 567 (i) is functionally equivalent to register 105 r~i) of Figure 1. Register 567 (i) is capable of storing four bits and consequently is made up of four ~ells 565 (i,0)..(i,3), equivalent to cells 107 q(i,0)..q(i,m) of Figure 1.

4.4.1.1 Inputs and Outputs of Register 5~7 li) Inputs to register 567 (i) consist of: mask lines e(0) 501 through e(3) 507, corresponding to mask lines 127 e(0)..e(m) of Figure l; data input lines d(0) 509 and d(l) 571 through d(3) 575, corresponding to lines d(0)..d(m) of input data lines 117, data complement lines d(0) 511 and d(l) , 577 through d(3) 581, carrying values which are the logical complement of the values on corresponding data input lines d(0) 509 and d(1) 571 through d(3) 575; OE line 508, corres-..

ponding to OE line 131, WE line 510, corresponding to WE line 133, internal clear line c(i) 523 corresponding to clear line c(i) of internal clear lines 123, and internal address line a(i) 513 corresponding to line a(i) of internal address lines 115.
Resister 567 (i)'s outputs include register data output lines yti,0) 539 through y(i,3) 551 and an external match line corresponding to line MA(i) of external match lines 125 in Figure 1. As previously mentioned, external match lines MA 125 are bi-directional and may be connected to other external match lines MA 125. When so connected, an external match line MA 125 is active only if all other external match lines MA 125 connected to it are active. In Fisure 5, the bidirectional nature of the external match line and its relationship to corresponding match lines of other CA~s 101 is expressed by representing the external match line for register 567(i) as two lines, MA(i)out 556 and MA(i~in 559.
MA(i)out 556 is a continuation of internal match line m~i~
555; MA(i~in 559 is connected to CAM match line CI~A(i) 564~
corresponding to a line in CAM match lines 217 of Figure 2.
The relationship betveen lines MA(i)out 556, MA(i)in 559, and their equivalents in other CAMMS 131 is shown by means of vire AND gate 563 (in dotted lines). Inputs to gate 563 are lines ~(i)out for CAMMs 101 whose external match lines MA
125 are connected, its output is CAM match line CAM(i) 564, and MA(i)in 559's value is determined by the value of CAM
match line CMA(i) 56~.

l~ 3'~

4.4.1.2 Detailed Discussion of Cell 565 ~i,O) Since all cells 565 in register 567 (i) are identical, only cell 565 (i,0) is discussed in detail. Cell 565 (i,0)'s inputs are mask line e(0) 507, data input line d(0) 509, data complement line d(0) 511, internal address line a(i) 513, OE
line 508, WE line 510, and internal clear line cl(i) 523.
Cell 565 (i,0)'s outputs are cell match line m(i) 541 and cell output data line y(i,0) 539. The logical components of cell 565 (i,0) are: AND gate 515, receiving inputs from WE
line 510, data line d(0) 509, and internal address line a(i) 513; AND gate 517, receiving inputs from W~ line 510, data complement line d(0) 511, and internal address line a(i) 513;
OR gate 525, receiving inputs from internal clear line c(i) 523 and AND gate 517; RS flip-flop RS(i,0) S29, receiving its S input from AND gate 515 and its R input from OR gate 525;
AND gate 533, receiving inputs from data line d(0) 509 and the y output of RS flip-flop RS~i,0~ 529; AND gate 534, receiving inputs from data complement line d(0) 511 and the y output of RS flip-flop RS(i,0); OR gate 540, receiving inpu~s from AND gates 533 and 534 and mask line e(0) 507; and AND
gate 535, receiving inputs from internal address line a(i) 513 and the y output of RS flip-flop RS(i,0) 529.

4.4.1.3 Operations on Register 567 (i~

~1hen read, write, match and associative clear operations are performed on the contents of register 567 (i), the components of cell 565 (i,0) interact as follows: In a write operation to register 567 (i) to which cell 565 ~i,0) . 27-~ 5~
belongs, WE line 510 and internal address line a(i~ 513 are both active. Consequently, the statçs of lines 519 and 521 carrying the outputs of AND gates 515 and 517 respectively, depend on whether data input line d(0~ 509 is active. If it is, then da~a complement line d~0j 511 is inactive, line Sl9 is active, and line 521 is inactive. If data input line d(0 509 is inactive, the reverse is true. Line 519 is connected to the S input of flip-flop RS(i,0) 529, and consequently/ if line 519 is active, flip-flop RS(i,0) 529 is set to 1. Line 521 is connected to OR gate 523, which in turn is connectea to the R input of flip-flop RS(i,0) 529. Therefore, if line 521 is active, flip-flop RS(i,0) 529 is reset to 0. Tnus, after a write operation, the value at the y output of flip-flop RS(i,0) 529 is identical to the value represented on data input line d~0) 509 at the time of the write operation.

As Figure 5 shows, internal address line aSi) 513 and WE
line 510 are connected to other cells 565 in register 567 Si) in the same fashion as they are connected to cell 565 (i,0), and each of the other cells receives inputs from its equiva-lents to data input line d(0) 509 and data complement linéd(0) 511 in the same fashion as cell 565 (i,0). Thus, at the end of a write operation, RS flip flops 529 (i,0..3) in register 567 Si) contain the values on data input lines d(0) 509 through dS3) 575.

In a read operation; internal address line aSi) 513 and OE line 508 are active. Internal address line aSi) 513 and line 531 from the y output of flip-flop RSSi,0) 529 serve as inputs to AND gate 535, whose output is cell data line 539 3';;~

y(i,0). Thus, when internal address line a(i) 513 is active, the value of the y output of flip-flop RS~i,0) 529 determines the value of cell output data line 539. Cell output data line 539 is an input to OR gate 569, along with the equiva-lent lines from other registers 567. Thus, if cell outputdata line 539 is active, line 570~ the output of OR gate 569, is active. Line 570 is one input to AND gate 571; the other input is OE line 5Q8; consequently, when address line a(i) 513 and OE line 508 are active, cell data output line y(0) 573's value is determined by the value of the y output o~
flip-flop RS(i,0) 529. Since internal address line a(i) 513 and OE line 508 are connected in the same fashion in all cells 565 ma~ing up register (i) 567, the values at the y outputs of these registers' RS flip-flops (i,0..3) determine the values on data output lines y(0) 573 through y(3) 579.
When a register is not being addsessed, the outputs of the AND gates corresponding to AND gate 535 are inactive~
Conseguently, only the values in cells 565 (i,0..3) of the addressed register 567 (i) determine the values of data output lines y(0) 573 through y(3) 579.

In a match operation, the value at the y output of flip-flop RS(i,0) 529 is compared with the value on data input line d(0) 509 unless mask line e(0~ 517 is active.
When the operation is performed, the value at the y output of flip-flop RS(i.,0) 529, carried on line 531, and the value on data input line d(0) 509 are both input to ~ND gate 533. At the same time the value of the y output of flip-flop RS(i,0) 529, carried on line 532, and the value on data complement S~'7~

line d(0) 511 are both input to ~ND gate 534. Consequently, if the value on data input line d~0) 509 matches the value at the y output, either line 537, the output of AND gate 533, or line 536, the output of AND gate 534, is active. Line 537 is active if data input line d(0) 509 and line 531, carrying the value of the y output, are both active, that is, if the data on data input line d~0) 509 and the data in flip-flop RSli,0) both have the value 1, and line 536 is be active if data complement line d(0) 511 and line 532, carrying the value of the y output are both a~tive, that is, if the data on data input line d(0) 509 and the data in flip-flop RS(i,0) 529 both have the value 0. Lines 536 and 537 are inputs to OR
gate 540, and consequently, OR gate 540's output, line 541, is active if either line 536 o~ line 537 is active. If, on the other hand, the data on data input line d(0) 509 does not match the data in flip-flop RS(i,0) 529, neither~AN~ gate 533 nor AND gate 534 has two active inputs, and output lines 537 and 536 are both inactive.

The third input to OR gate 540 is mask line e(0) 507.
When data line d(0) 509 is being masked, mask line e(0) 507 is active and OR gate 540's output line 541 is active regar-dless of the values of lines 536 and 537, that is, regardless of whether data line d(0~ 509 has the same value as flip-flop RS(i,0) 529. Line 541 and its equivalents from the other cells 565 in register 567 serve as inp~ts to AND gate 553, whose output is internal match line m(i) 555, corresponding to one of internal match lines 121. Consequently, internal match line m(i) 555 for a register (i) 567 is active only if )3'~

all cell match lines for register (i) 567's cells are active.

The associative clear operation takes place when CLR
line 512 is activated. If external match line ~A(i)in 559 is active when CLR line 512 is activated, cell (i,0) 555 is cleared. CLR line 512 and external match line MA(i)in 559 are inputs to AND gate 514, which has internal clear line c(i) 523 as its output. Internal clear line c(i) 523 provi-des an input to OR gate 525, whose output is connected via line 527 to the R input of flip-flop RS(i,0) 529. Thus, when CLR line 512 a~d external match line MA~i)in 559 are active, internal clear line c(i) 523 is active, line 527 is active, and flip-flop RS(i,0) is set to 0. Since internal clear line c(i) 523 is connected as described above to all other cells 56S in register (i) 567, all cells 565 in register (i) 567 are cleared simultaneously with cell (i,0) 565. As previ~
ously mentioned, an external match line l~(i) 1~5 is active only if all other external match lines MR(i) 125~from other CAMMs 101 connected to it are active, and thusr if an asso-ciative clear operation may be petformed on register (i) 567, it may be performed on corresponding registers 567 whose external match lines are connected to register (i) 567.

4.5 A TTL Gate Array Implementation of CAMN 101 -- Figures 6 and 6A through 6F

Figures 6 and 6A through 6F together contain a logic diagram for an ~xemplary TTL gate array implementation of an eight-register by four-bit CAI~M 101. The form of the logic in this implementation is dictated by logical and electrical `7~ .
characteristics of the TTL gate array. The only logical devices which may be formed from the gate array are NAND
gates and inverters. Further, each NAND gate must have three inputs and a given NAND gate or inverter can drive a maximum of four other NAND gates or invertersO In Figure 6, only the cells of a single register are shown in detail; cells of remaining registers are represented as boxes with labelled inputs and outputs; the cells and registers so represented are, however, identical to the cells and register shown in detail.

4.5.1 Inputs and Outputs of the TTL Gate Array Implementatio~

CAMM 101 represented in Figures 6 and 6A through 6F, has the following inputs. on Figure 6, data input lines D0 6167, Dl 6171, D2 6175, and D3 6179, corresponding to data input lines 117 of Figure 1; mask lines E0 6169, El 6173, E2 6177, and E3 6181, corresponding to mask lines 127 and serving to mask the corresponding data input line when they are active;
on Figure 6A, external address lines A0 6026; AI 6028, and A2 6030, corresponding to external address lines 113; on Figure 6D, OE line 6197, corresponding to OE 131; and on Figure 6A, write enable line WE 6068, corresponding to WE 133, and CLR
line 6081, corresponding to CLR 135. Lines WE 6068, OE 6197, and CLR 6081 are all normally active and are inactivated to specify a write, read, or clear operation respectively.
Outputs ~rom CAMM 101 represented in Figure 6 are data output lines Y0 6147, Yl 6153, Y2 6157t and Y3 6161, on Figures 6D
and 6F corresponding to data output lines 119 and bidirec-, .

~L~L~5~ '7~

tional external match lines ~10 6182 through M7 6196 on Figure 6C corresponding to external match lines 125 in Figure 1. As specified on Figure 6C, external match lines M0 6182 through ~17 6196 are connected to open collector outputs. When one such external match line M0 6182 through M7 6196 is connected to e:;ternal match lines from other CA~lMs 101 of the type disclosed in Fisure 6, the result is a wire AND: none of the connected external match lines will be active unless all of them are.

4.5.2 Functional Subdivisions of the TTL Implementation CA~ 101 of Figure 6A has the following functional subdivisions, outlined in dashed lines: on Figure 6, data-and mask input 6183, for receiving inputs from data input lines D0 6167 through D3 6179 and mask lines E0 6169 through E3 6181; on Figure 6A, address decoder 6067, corresponding to address decoder 109, for receiving e~ternal address lines A0 6026 through A2 6028 and decoding addresses received on these lines; on Figures 6D and 6E, data outputs 6142 for outputting data received from registers 6176; on Figure 6B, clear logic 6090, corresponding to clear logic 111, for clearing indivi-dual registers 6176; and on Figure 6B, match logic 6189, for detecting matches. In addition, one register, register (0) 6187, on Figure 6B, is outlined with dashed lines, and one cell of register (0) 6187, cell (0,0) 6185, is so outlined.
Registers 6187 correspond to registers 105 of Figure 1, and cells 6185 correspond to cells 107~ The discussion deals first with each of these functional divisions and then with 53'7~

their interaction in the read, write, match, and associative clear operations.

4.5.2.1 Data and ~ask Inputs 6183 Data and mask inputs 6183 on Figure 6 include data input lines DO 6167 through D3 6179, mask lines EO 6169 through E3 6181 paired with the data lines, and associated logic. Since each data input line-mask line pair has the same logic, only that for data input line DO 6167 and mask line EO 6169 is discussed in detail. Beginning with DO 6167, the logic includes inverter 6001, with DO 6167 as its input and line 6003 as its output; inverter 6005, with line 6003 as its input and line 6011 as its output; inverter 6007, with mask line EO 6169 as its input and line 6009 as its output; NAND
gate 6013, with inputs from lines 6003 and 6009 and an output to line 6017; inverters 6023, having line 6017 as their input and lines to cells 6185 as their outputs; NAND gate 6015, with inputs from lines 6009 and 6011 and an output to line 6019, and inverters 6020, with inputs from line 6019 and lines to cells 6185 as their outputs. In the following, only IDOA line 6025, the output of inverter 6021, and IDOA line 6024, the output of inverter 6022, are discussed in detail.
In the portion of data and mask inputs 6183 associated with data input line DO 6167 and mask line EO 6169, the inputs DO 6167 and EO 6169 and the outputs IDOA 6024 and IDOA
6025 have the following relationships: if data input line DO
6167 is not being masked, that is, if mask line EO 6169 is inactive, IDOA line 6024 is set to the value o data inpu~

line DO 6167 an~ IDOA line 6025 is set to the complement of that value; if data input line D~ 6167 is being masked, that is, if ~0 6169 is active, IDOA line 6024 and IDOA line 6025 are both inactiveO These relationships are achieved as follows: beginning with the case in which no masking is taking place, when mask line EO 6169 is inactive, line 6009 is active and the values of the outputs of NAND gates 6013 and 6015 depend on the values of lines 6003 and 6011 respectively. The values of lines 6003 and 6011 in turn depend on the value of data input line DO 6167. If data input line DO 6167 is active, line 6003 i9 inactive and line 6011 is active. Consequently, line 6019, the output of NAND
gate 6015, is inactive, and its inversion, IDOA line 6024, is active, while line 6017, the output of NAND gate 6013, is active, and its inversion, IDOA line 6025, is inactive. If data input line DO 6167 iq inactive, the reverse of the above is true. Thus, when mask line EO 6169 is inactive, IDOA line 6024's value is always identical with that of data input line DO 6167 and IDOA line 6025's value is always the complement of the value of data input line DO 6167. When data input line DO 6167 is being masked on the other hand, mask line EO
6169 is active, line 6009 is inactive, and conse4uently, NAND
gates 6013 and 6015 have active outputs 6017 and 6019 and IDOA line 6024 and IDOA line 6025 are inactive regardless of the value of data input line DO 6167.

4.5.2.2 Address Decoder 6067 Fiyures 6A and 7 3'~

Turning now to address decoder 6067, on Figure 6A, address decoder 6067's inputs are external address lines A0 6026, Al 6028, and A2 6030 and its outputs are internal address lines 6065, corresponding to internal address lines 115. Each line in internal address lines 6065 is associated with a register 6187. Lines in internal address lines 6065 are active unless register 6187 associated with a line is being addressed; in that case, the line asso~iated with register 6187 being addressed is inactive. Thus, address decoder 6066 operates by activating all internal address lines 6065 but the one for the register specified by external address lines A0 6026 through A2 6030.

Address decoder 6066 consists of inverters 6027 through 6043 and NA~D gates 6051 through 6054. Each address line A0 6026 through A2 6030 is input to an inverter and the output from that inverter is input to another inverterO Thus, for each address line A0 6026 through A2 6030, there is availa~le from the first inverter a signal which is the complement of the signal on the corresponding external address line and from the second inverter a signal which is identical with that on the corresponding external address line. The signals obtained from the inverter outputs are then input to NAND
gates 6051 through 6054. Each of these gates takes three inputs, one derived from address line A0 6026, one from address line Al 6028, and one from address line A2 6030. An input derived from a given address line is obtained from the output of either the first or second inverter following the address line. The input's value is therefore either identi-_ -36-~ 35~

cal with the value o~ the address line or the complemen~ of that value. For example, NAND gate 6063 takes as its inputs line 6033, line 6035, and line 6049~ Line 6033's value is the complement of the value of external address line A0 6026, line 6035's value is the complement of the value of external address line Al 6028, and line 6049's value is identical with that of external address line A2 6030. The inputs to to NAND
gates 6051 through 6064 are distributed among the gates in such fashion that a given combination of signals on exteLnal address lines A0 6026 through A2 6030 causes one of NAND
gates 6051 through 6064 to have an inactive OlltpUt and the remainder to have active outputs~ ~or instance, NAND gate 6064 takes as its inputs line 6037, whose value is the complement of the value on external address line A2 6030, line 6035, whose value is the complement of the value on external address line Al 6028, and line 6033, whose value is the complement of the value on' external address line 6026.
NAND gate 6064's output 6067 is active unless line 6037, line 6035, and line 6028 are all simultaneously active, and the latter is true only if external address lines A0 6026 through A2 6030 are simultaneously inactive, that is, only if the values on external address lines A0 6026 through A2 6030 represent a binary 0. With all other NAND gates 6051 through 6063, when external address lines A0 6026 through A2 6030 are simultaneously inactive, at least one input line to each of NAND gates 6051 through 6063 is inactive, and consequently, all NAND gates 6051 through 6063 have active outputs.
. , .

The complete relationship between combinatiOns 0~
signals on external address lines AO 6026 through A2 6030 and outputs on internal address lines 6065 is illustrated in the truth table in Figure 7. In that table, the table rows indicate the eight possible combinations of values on address lines AO 6026 through A2 6030 and the table columns indicate individual NAND gates 6051 through 6054 and their input lines. The table entries themselves show the output of the NAND gate specified by the entry's column for the values on address lines AO 6026 through A2 6030 specified by the entry's row.

4.5.2.3 Cell 6185 (r~
Turning now to cell 6185 (0,0), on Figure 6B, cell 6185 (0,0) has the following inputs: data line IDOA 6024 and data complement line IDOA 6025 from data and mask inputs 6183, internal address line XAO 6067, from NAND gate 6064 of add ss decoder 6066, internal''wtite enable line WEO 6078, whose value is derived from external write énable line WE
6068 by way of inverters 6069, 6071, and 6073 on Figure 6A, and is therefore.the complemant of the value of external write enable line WE 6068, and internal clear line CLRO 6089, - which corresponds to internal clear lines 123 except that internal clear line CLR~ 6089 is inactive when an associative - clear operation is taking place. Outputs from cell 6185 (0,0) are cell data line IYO 6113, whose value is the comple-, ment of the value stored in cell 6185 (0,0), and cell match lines 6117 and 6121, which are both active when either data input line DO 6167 is mas~ed or the value contained in cell 6185 (0,0) matches the value on data input line DO 6167.

Cell 6185 (0,0) consists of: inverter 6091, receiving its input from internal address line XAO 6067, NAND gate 6095, receiving its inputs from inverter 6091, WEO line 6078, and data line IDOA 6024; NAND gate 6097, receiving its inputs from inverter 6091, WEO line 6078, and data complement line IDOA 6025, NAND gate 6103, receiving its inputs from NAND
gate 6095 and NAND gate 6107; NAND gate 6107, receiving its inputs from NAND gate 6103, NAND gate 6097, and internal clear line CLRO 6089; NAND gate 6111, receiving its inputs from NAND gate 6105 and inverter 6091; NAND gate 6115, receiving its inputs from data line IDOA 6024 and NAND gate 6107, and NAND gate 6119, receiving its inputs from NAND gate lS 6103 and data complement line IDOA 6025. Finally, connection point 6122, connecting the outputs of NAND gates 6115 and 6119, is a wire AND; consequently, if either or both of lines . .. .
6117 and 6119 is inactive, line 6123 is inactive.
The components of cell 6185 (0,0) perform the same logical functions as the components of cell 565 (i,O) in Figure 5. NAND gates 6095 and 6097 take inputs which are equivalent to those ~or AND gates 515 and 517 in Figure 5 and provide outputs which are the complements of those of AND
gates 515 and 517. Line 6099, the output of NAND gate 6095, is active unless line 6093, line IDOA 6024, and line WEO 60?8 are all active. Line 6093 is the complement of internal address line XOA 6067, and consequently, is active only when register 6187 is being addressed, while line WEO 6078 is active only when a write operation is taking place.
Therefore, line 6099 is inactive only wheh a write operation to register 6187 (O~ is taking place and line IDOA 6024 is active. During a write operation to register 6187 (O), line 6099's value is thus the complement of the value of line IDOA
6024~ NAND gate 6097's inputs are line 6093, line WEO 6078, and l~ne IDOA 6025, and like NAND gate 6097, its output 6101 is inactive only when a write operation to register 6187 (O) is taking place and line IDOA 6025 is active. During a write ~peration, therefore, Line 6101's value is the complement of the value of line IDOA 6025 and also the complement of the value of line 6099. At other times, both line 6101 and line 6099 are active.
NAND gates 6103 and 6107 function as an RS flip-flop with R and s inputs which change the flip-flop's state when they become inactive. NAND gates 6103 and 6107 and NAND
gates 6095 and 6097 together thus are logically equivalent to AND gates 515 and 517 and RS flip-flop 529 in Figure 5. In the RS flip-flop formed by NAhD gates 6103 and 6107, line 6105, the output of NAND gate 6103, is the Y output and line 6109, the output of NAND gate 6107 is the Y output. The set operation works as follows: line 6099 is the S input. As the output of NAND gate 6095, it is inactive only when input aata line IDOA 6024, write enable line WEO 6078, and line 6093, the complement of internal address line XAO 6067, are active.
When line 6099 is inactive, line 6105 becomes active, iOe., -the Y output is set to 1. At the same time, line 6109 becomes inactive, i.e., the Y output is set to 0. This action takes place as fGllows: line 6105, line 61Dl and CLRO
line 6089 are inputs to NAND gate 6107. On a write operation, CLRO line 6089 is active. If line IDOA 602~ is active, lines 6105 and 6101 are also active; consequently, line 6109, the Y outpuc, is inactive. If, on the other hand, line IDOA 6024 is inactive, line 6099 is active, lines 6105 and 6101 are inactive, and line 6109 is active. Thus, in this case, the Y output has the value O and the Y output the value 1~

CLR line 6089 acts as the R input to the flip-flop formed by NAND gates 6103 ana 6107 only when no write opera-tion is taking place. Under these circumstances, write enable line WEO 6078 is inactive, and consequently, lines 6099 and 6101 are active~ When the flip-flop formed by NAND
gates 6103 and 6107 contains the value 0, line 6105 is inactive and line 6109 is active regardless of the value of CLR line 6089. When the flip-flop formed by NAND gates 6103 and 6107 contains the value 1, line 6105 is active along with line 6101 and the value of CLR line 6089 determines the value of lines 6109 and 6105. If CLR line 6089 remains active~
line 6109 remains inactive and line 6105 remains active; if CLR line 6089 becomes inactive, line 6109 becomes active and line 6105 becomes inactive, giving the flip-flop's Y output the value O and its Y output the value lo Since either line 6101 or 6089 can reset the flip-flop formed by NAND gates 6103 and 6107, the connection of these lines to NAND gate 6107 is functionally equivalen- to OR gate 525 in Figure 5, ~Yj3'7~

NAND gate 6111 in Figure 6A inactivates cell data line 6113 when both line 6093 and line 6105 are active. Line 6093 is the complement of internal address line XA0 6067, and is therefore active when register 6187 (0,0) is being addressed. Line 6105 is the Y output of the flip-flop formed by NAND gates 6103 and 6107, and consequently, when register 6187 (0,0) is being addressed, cell data line line IY0 6113's value is the complement of the value on line 6105. As shown on Figures 6E and 6F, cell data line IY0 6113 receives outputs from equivalent cells of all registers in the CAMM
101 described in Figure 6 and then serves as an input to tri-state NAND gate 6145 on Figure 5F. It thus effectively ORs these outputs and is equivalent to OR gate 569 in Figure 5. Tri-state NAND gate 6145's output is data output line Y0 6147. This line has three states, active, inactive, and off.
- It is in the latter state when OE line 6197 is inactive and its complement, line 614~, is active; otherwise, input line 6143 is at VCC and is always active, and consequently, data . ~ . .
output line Y0 6147's value is the complement of the value of cell data line IY0 6113, or the value of the Y output of the flip-flop formed by NAND gates 6103 and 6107. Together, NAND
gates 6145 and 6111 output the value of the Y output of cell 6185 (0,0) when register 6187 (0) is addressed and output has been enabled; NAND gates 6145 and 6111 are thus logically equivalent to AND gates 535 and 571 of Figure 5.
Turning again to Figure 6B, NAND gates 6115, 6119, and the wire AND formed by connection 6122 be~ween the outpu.s of NAND gates 6115, 6119, and internal match line 6123, finally, ~ 3~

perform the match function ~or cell 6185 (0,0~ and are thus equivalent to AND gates 533 and 534 and OR gate 540 in Pigur~
5. NAND gate 6115 takes as its inputs line IDOA 6024 and line 6109 from the Y output of the flip-flop formed by NAND
gates 6103 and 6107. NAND gate 6119 takes as its inputs line IDOA 6025 and line 6105 from the Y output of the flip-flop.
If mask line ÆO 6169 is inactive, then, as described in the discussion of data and mask inputs-6183 above, the values on line IDOA 6024 and line IDOA 6025 are complementary. A~ also explained above, the values on lines 6105 and 6109 are always complementary. Consequently, when the value on line IDOA
6024 is the same as the value on line 6105; NAND gates 6115 and 6119 have complementary inputs and their outputs, lines 6117 and 6121, are both active. When the value on line IDOA
is different from that on line 6105, one of NAND gates 6115 and 6119 has both inputs high, and lines 6117 and 6121 have have complementary values. When lines 6117 and 6121 are both active, the output from the AND formed by connection 6122 is active, indicating a match. When lines 6117 and 6121 have complementar~ values, the output from the AND formed by connection 6122 is inactive, indicating no match~ ~hus, when mask line EO 6169 is inactive, the output from the AND formed by connection 6122 is equivalent to the output of 0~ gate 540 when mask line e(O) 507 is inactiveO

As mentioDed in the discussion of data and mask inputs 61~3, when mask line EO 6169 is active, both line IDOA 6024 and line IDOA 6025 are inactiveO Since line IDOA 6024 serves as an input to NAND gate 6115, and line IDOA as an input to _~3 , 53 7~

NAND gate 6119, the outputs of the NAND gates, lines 6117 and 6121 respectively, are both active regardless of the values on lines 6105 and 6109 and the output from the AND formed by connection 6122 is active, indicating a match. Thus, data and mask inputs 6183, NAND gates 6115 and 6119 and the AND
formed by connection 6122 produce the same results when mask line E0 6169 is active as OR gate 540 in Figure 5.

4.5 2.4 R~qis~er 6187 (0) Cell 6185(0,0) and three e~uivalent cells 6185 form register 6187t0). All cells 6185 in register 6187 (0) take internal address line XA0 6067, and internal clear line CLR0 6089 as inputs and output to internal match line 6123.
Because the cells in register 6187 share internal address line XAO 6067, internal clear line CLR0 6089, and internal match line 6123, they act as a single unit in read, write, match, and associative clear operationsO

4.5.2~5 Data Outputs 6142 Data outputs 6142, on Figures 6D and 6F, ou~puts data contained in CAMM 101 registers 6187 to data output lines Y0 6147 through Y3 6161. Data to be output is received from lines IY0 6113, IYl 6125, IY2 6131, and IY3 6137. As previ-ously explained, when a read operation is being performed, the values on these lines are the complements of the values in cells 6185 (i,0) through (i,3) of register 6187 (i) currently being addressed. Each of these lines is one input to one of NAND gates 6145 through 6159. NAND gates 6145 _~q_ '7~
-through 6159 are tri-state~ that is, their outputs have three states, active, inactive, and off. The off state is con-trolled by OE line 6197. When OE line 6197 is active, line 6149 is inactive, and NAND gates 6145 through 6159 have no output; otherwise, their outputs are the NAND of their inputs. The other input to each of NAND gates 6155 through 6159 is line 6143, which is always active. Cons~quently, when OE line 6197 is inactive, the outputs of NAND gates 6145 through 6159 are the complements of the values on lines 6113, 6125, 6131, and 6137, that is, identical with the values contained in cells 6185 (i,0) through (i,3) in register 6187 (i) .

4.5.2.6 Match Logic 6189 Match logic 6189 for register 6187 (0), on Figure 6C, consists of internal match line 6123, inverter 6125, NAND
gate 6129, and external match line M0 6182. The match logic for the other registers 6187 is identical, and consequently, only that for register 6187(0) is explained in detail.

Internal match line 6123 connects the output of wire AND
6122 with the outputs of equivalent wire ANDs in the other cells 6185 of register 6187 (0) and thereby forms another wire AND taking the output of wire AND 6122 and the outputs of its equivalents as inputs. Thus~ internal match line 6123 is active only if the outputs of wire AND 6122 and its equivalents are all active, that is, only if each cell 6185 in register 6187 (0) indicates a match; Internal match line 6123 thus performs the function of AND gate 553 of Figure 5.

' ~ ~,r~

Internal ~atch line 6123 then serves as an input to inverter 6125, whose output, line 6126, is an input to NAND
gate 6129. ~he other input to NAND gate 6129, line 6143, is at Vcc and therefore always active. In consequence, N~ND
gate 6129's output is inactive unless line 6126 is inactive, that is, unless internal match line 6123 is active. As indicated on Figure 6A, external match line M0 6182 is an open collector output; hence, it acts as the output of a wire AND connecting the outputs of the equivalents of NAND gate 6129 in all CAMM registers 6187 whose equivalents to external match line ~10 6182 are connected to external match line M0 6182, and if any sf these external match lines are inactive, external match line M0 6182 is inactive.

4.5.2.7 Clear Logic 6090 Clear logic 6090 on Figures 6A and 6B activates internal - clear line CLR0 6089 and its equivalents in other registers 6187. Inputs to clear logic 6090 are CLR line 6081, which is active except when an associative clear operation is being performed, ana external match lines M0 6182 through M7 6196.
Clear logic 6090 includes inverter 6083 and inverters 6084.
Inverters in inverters 6084 are all identical to inverter 6088, and consequently, only that inverter is described in detai. Inverter 6088 has a control input, entering at the side of inverter 6088, as well as an input for the signal heing inverted As long as the control input is inactive, inverter 6088's output is active; when the control input is active, inverter 6088's output is the complement of the value .

;3'~~

o~ the signal being inverted. Inverter 6088 thus behaves like a NAND gate in that inverter 6088's ouput is inactive only if the control input and the input signal are both active. The control input for inverter 6088 is line 6095, which is the output of inverter 6083 and the signal input is external match line M0 6182. Line 6095's value is thus the complement of the value of CLR line 6081, and internal clear line CLR0 6089 is inactive, clearing register 6187~0), only if CLR lihe 6081 is inactive when external match line ~0 6182 is active. Taken together, therefore, inverter 6083 and inverter 6088 are equivalent to AND gate 514 of Figure 5.

.5.3 Operations in the T~L ~ate Array Implementa~i~n Operations in the TTL gate array implementation are analogous to those discussed in reference to Figure 5 On a write operation to register 6187 (0), on Figure 6B, WE line 6068 is inactive and address lines A0 6026 through A3 6030 specify register 6187(0). Consequently, in each cell 6185 of the register, WE0 line 6078 is active, internal address line XAO 6097 is inactive, the line corresponding to line ID0A
6024 in cell 6185 (0,0) has the value of the line correspon-ding to data input line D0 6167, and the line corresponding to line IDOA 6025 has that value's complement. As explained in the discussion of cell 6185 (0,0), when WEU line 6078 is active and internal address line XA0 6097 is inactive, the RS
flip-flop contained in each cell 6185 is set to the value on the data input line of data input lines D0 6167 through D3 6179 corresponding to that cell 6185 :~lB',~ 3 In a read operation on register 6187 (0), output enable line OE 6197 is inactivated and external address lines 6026 through 6030 specify register 6187 (0), deactivating internal address line XA0 6067. As explained in the discussion of cell 6185 (0,0), when internal address line XA0 6067 is inactive, line IY0 6113 and its equivalents in the other cells 6185 making up register 6187(03 have values which are the complement of the value at the Y output of cell 6185's flip-flop. The discussion of data outputs 6142 further showed that when output enable line OE 6197 is inactivated, the complements of the values of line 6113 and its equiva-lents in the other cells 6185 making up register 6187 (0) are output at data outputs Y0 6147 through Y(3) 6161. Since the values output at data outputs Y~0) 6147 through Y(3) 6161 are the complements of the values on line 6113 and its equivalents, they are identical with the values at the Y
outputs of cells 6185 making up register 6187(0).
.
Turning now to a match operation, as previously ex-plained with regard to cell 6185 (0,0), whenever a value on a data line D0 6167 through D3 6179 matches the value of its corresponding cell 6185 or whenever mask line E0 6169 through E3 6181 is active, the output of the connection in cell 6185 corresponding to connection 6122 in ~ell 6185 (0,0~ i9 active. All o~ the connections corresponding to connection 6122 in cells 6185 belonging to a register 6187 (i) are connected by the line in register 6187 (i) corresponding to internal match line 6123 of register 6187 (0). As explained in the discussion of match logic 6189~ internal match line ;.
_ '7~

6123 and its equivalents function as wire A~Ds ta~ing the outputs from connection 6122 and its equivalents as inputs.
T~e equivalent of internal match line 6123 for a register 6187 (i) is therefore active only if all outputs from connec-tions equivalent to connection 6122 are active. If the equivalent of internal match line 6123 for a r~gister 6187 (i) is active, then, as explained in the discussion of match logic 6189, external match line M0 6182 through M7 6196 corresponding to register 6187 (i) is active unless external match line M0 6182 through 6196 corresponding to register 6187 ~i) is connected to external Match lines M0 6182 through 6196 belonging to other CAMMs 101 and one of these external match lines M0 6182 through 6196 is inactive.
An associative clear operation, finally, is executed for a register 6187 (i) when external match line M0 6182 through M7 6196 corresponding to register 6187 (i) is active and CLR
line 6081 is inactivated. As explained in the discussion of clear logic 6090, under these circumstances, the e~uivalent of line CLR0 608~ is inactive, and as explained in the discussion of cell 6185 (0,0), when this is the case, all cells 6185 belonging to register 6187 (i) are simultaneously set to 0.
Embodiments of the present invention may have specific forms other than those presented in Figures 1 through 7. The functions of the present invention may be performed by arrangements of logical devices other than those presented herein and different techniques may be used to implement the present invention. For example, the present invention may be , 3~
.

implemented using discrete devices, on a chip containing a single CAMM 101, or on a chip containing a plurality of CAMMs 201, and the devices on the chips may be formed using various technologies. Similarly, the number o~ bits in a register and the number of registers in a CAMM 101 may vary from implementation to implementation, The invention may be embodied in yet other specific forms without departing from.the spirit or essential charac-teristics thereof. Thus, the present embodiments are to be consiaered in all respects as illustrative and not restrictive, the scope of the invention being indicated by the appendeà claims rather than the foregoing description, and all changes which come within the rneaning and Lange of equivalency of the claims are therefore intended to be embraced therein. . ~:

What is claimed is:

Claims (43)

THE EMBODIMENTS OF THE INVENTION IN WHICH AN EXCLUSIVE
PROPERTY OR PRIVILEGE IS CLAIMED ARE DEFINED AS FOLLOWS:
1. A content-addressable memory module comprising:
(1) a plurality of register means; and (2) means for simultaneously clearing certain ones of said plurality of register means, said simultaneous clearing means including.

(a) means for selecting said certain ones of said plurality of register means to be cleared;
(b) means for receiving a clear signal in said content-addressable memory module, and (c) clearing means connected to said register selection means, to each register means of said plurality of register means, and to said clear signal receiving means for simultaneously clearing said certain ones of said plurality of register means on receipt of said clear signal in said clear signal receiving means,
2. A content-addressable memory module comprising:
(1) a plurality of register means, each register means of said plurality of register means containing one stored item of data, (2) means for receiving a pattern item of data;
(3) means for receiving a clear signal specifying that certain ones of said plurality of register means are to be cleared, said certain ones being said register means containing said stored items of data matching said pattern item of data; and (4) means for simultaneously clearing said certain ones of said register means, said simultaneous clearing means being connected to said plurality of register means, to said pattern receiving means, and to said clear signal re-ceiving means and responding to said stored item of data, said pattern item of data, and said clear signal by simultan-eously clearing said certain ones of said register means on receipt of said clear signal in said clear signal receiving means.
3. In the content-addressable memory module of claim 2, and wherein:
a pattern sequence of bits in said pattern item of data corresponds to a certain sequence of bits in each one of said stored items of data and said stored item of data matches said pattern item of data when said bits in said certain sequence match said bits in said pattern sequence.
4. In the content-addressable memory module of claim 3, and wherein:
said simultaneous clearing means includes (a) a plurality of means for detecting said register means containing said stored items of data matching said pattern item of data, each one of said plurality of match detection means being associated with one said register means and being responsive to said stored item of data contained in said one said register means and to said pattern item of data, and each one of said plurality of match detection means acting to provide a match signal when said one said register means associated with said one match detection means contains said stored item of data matching said pattern item of data, (b) means for providing a register clearing signal specifying any one of said register means in response to said clear signal and to said match signal, and (c) a plurality of means for clearing said register means, each one of said register clearing means being asso-ciated with one of said register means and being responsive to said register clearing signal.
5. In the content-addressable memory module of claim 4, and wherein:
said content-addressable memory module further in-cludes a plurality of bidirectional match signalling means for providing said match signal from said content-addressable memory module, receiving said match signal from an external source, and providing said match signal to said register clearing signal providing means, each bidirectional match signalling means of said plurality of bidirectional match signalling means being associated with one register means of said plurality of register means and being connected to said match detection means associated with said associated register means and to said register clearing signal providing means, and each said bidirectional match signalling means providing said match signal to said register clearing signal providing means only when said bidirectional match signalling means is simultaneously receiving said match signal from said connected match detection means and from said external source.
6. In the content-addressable memory module of claim 5, and wherein:
said bidirectional match signalling means is a match line connected to said match detection means and to said register clearing signal providing means;
said match line provides and receives a match state and a no-match state;
said match signal is said match state; and each said match line is connected to an open-collector driver circuit in said associated match detection means and said open-collector driver circuit places said connected match line in said no match state unless said stored item of data in said register means associated with said match detection means matches said pattern item of data.
7. In the content-addressable memory module of claim 3, and wherein.
said content-addressable memory module further in-cludes means for receiving a masking item of data for speci-fying said pattern sequence of bits and said simultaneous clearing means is further con-nected to said masking item receiving means and is responsive to said masking item of data.
8. In the content-addressable memory module of claim 7, and wherein:
said masking item of data further specifies a non-pattern sequence of bits in said pattern data item;
said stored items of data further contain a second certain sequence of hits corresponding to said non-pattern sequence of bits; and one said stored item of data matches said pattern data item when said first certain sequence of bits matches said pattern sequence of bits, regardless of the values of bits in said second certain sequence of bits.
9. In the content-addressable module of claim 8, and wherein;

said masking item of data specifies all said bits in said pattern item of data as said non-pattern sequence of bits, whereby all said stored items of data match said pattern item of data, all said register means in said plura-lity of register means are said certain ones of said plura-lity of register means, and said simultaneous clearing means simultaneously clears all said register means in said plurality of register means upon receipt of said clear signal in said clear signal receiving means.
10. In the content-addressable memory module of claim 9, and wherein:
said simultaneous clearing means further includes (a) a plurality of means for detecting said register means containing said stored items of data matching said pattern item of data, each one of said plurality of match detection means being associated with one said register means, being responsive to said stored item of data contained in said one said register means, to said pattern item of data, and to said mask item of data, and providing a match signal when said one said register means associated with said one match detection means contains said stored item of data matching said pattern item of data, (b) means for providing a register clearing signal to any one of said register means in response to said clear signal and to said match signal, (c) a plurality of means for clearing said register means, each one of said register clearing means being asso-ciated with one of said register means and being responsive to said register clearing signal.
11. In the content-addressable memory module of claim 10, and wherein:
said content-addressable memory module further in-cludes a plurality of bidirectional match signalling means for providing said match signal from said content-addressable memory module, receiving said match signal from an external source, and providing said match signal to said register clearing signal providing means, each bidirectional match signalling means of said plurality of bidirectional match signalling means being associated with one register means of said plurality of register means and being connected to said match detection means associated with said associated register means and to said register clearing signal providing means, and each said bidirectional match signalling means pro-viding said match signal to said register clearing signal providing means only when said bidirectional match signalling means is simultaneously receiving said match signal from said connected match detection means and from said external source.
12. A content-addressable memory module comprising:
(1) a plurality of register means, each register means of said plurality of register means containing one stored item of data;
(2) means for receiving a pattern item of data;
(3) a plurality of means for detecting said register means containing said stored items of data matching said pattern item of data, each one of said plurality of match detection means being associated with one said register means, being responsive to said stored item of data contained in said one said register means and to said pattern item of data, and providing a match signal when said one said register means associated with said one match detection means contains said stored item of data matching said pattern item of data;
and (4) a plurality of bidirectional match signalling means for providing said match signal from said content-addressable memory module and receiving said match signal from an external source, each one of said bidirectional match signalling means being associated with one of said register means and responsive to said match signal from said match detection means associated with said associated register means and to said match signal from said external source, and acting to provide said match signal only when simultaneously receiving said match signal from said associated match detec-tion means and from said external source.
13. In the content-addressable memory module of claim 12, and wherein said bidirectional match signalling means is a match line connected to said associated match detection means for providing and receiving a match state and a no-match state;
said match signal is said match state; and said match line is connected to an open-collector driver circuit in said associated match detection means and said open-collector driver circuit places said connected match line in said no match state unless said stored item of data in said register means associated with said match detection means matches said pattern item of data.
14. In the content-addressable memory module of claim 13, and wherein:
said match state is a high voltage and said no match state is a low voltage.
15. In the content-addressable memory module of claim 14, and wherein.
a pattern sequence of bits in said pattern item of data corresponds to a certain sequence of bits in each one of said stored items of data, said match detection means is re-sponsive to said pattern sequence of bits and to said certain sequence of bits, and said stored item of data matches said pattern item of data when said bits in said certain sequence match said bits in said pattern sequence.
16. In the content-addressable memory module of claim 15, and wherein:
said content-addressable memory module further includes means for receiving a masking item of data for specifying said pattern sequence of bits and said match detection means is further connected to said masking item receiving means and is responsive to said masking item of data.
17, In the content-addressable memory module of claim 16, and wherein:
said masking item of data further specifies a non-pattern sequence of bits in said pattern item of data;
said stored items of data further contain a second certain sequence of bits corresponding to said non-pattern sequence of bits; and one said stored item of data matches said pattern item of data when said first certain sequence of bits matches said pattern sequence of bits, regardless of the values of bits in said second certain sequence of bits.
18. In the content-addressable memory of claim 1, 2 or 12 and wherein said content-addressable memory module further comprises:
address receiving means connected to said plurality of register means for receiving an encoded address specifying an addressed register means of said plurality of register means from an external source, decoding said encoded address to generate an address signal for said addressed register means specified by said encoded address, and providing said address signal to said addressed register means, each register means of said plurality of register means being responsive to said address signal.
19. In the content-addressable memory module of claim 1, 2 or 12, and wherein said content-addressable memory module further comprises:
data input means for receiving an input item of data from an external source;
means for receiving an address specifying an addressed register means of said plurality of register means from an external source and providing an address signal for said addressed register means;
data output means for outputting one said stored item of data from said content-addressable memory module;
means for receiving an output enable signal from an external source;
means for receiving a write enable signal from an external source;
data writing means connected to said plurality of register means, said address receiving means, said data input means, and said write enable signal receiving means for setting said stored item of data in said addressed register means to the value of said input data item in response to said input item of data, said address signal and said write enable signal;
data reading means connected to said plurality of register means, said address receiving means, said data output means, and said output enable signal receiving means for providing said stored item of data in said addressed register means to said data output means in response to said address signal and said output enable signal.
20. A content-addressable memory comprising:
(1) a plurality of content-addressable memory modules, each content-addressable memory module of said plurality of con-ten-t-addressable memory modules including (a) a plurality of register means, each register means of said plurality of register means containing one stored item of data;
(b) means for receiving a pattern item of data;
(c) means for receiving a clear signal specifying that certain ones of said plurality of register means are to be cleared, said certain ones being said register means containing said stored items of data matching said pattern item of data; and (d) means for simultaneously clearing said certain ones of said register means, said simultaneous clearing means being connected to said plurality of register means, to said pattern item receiving means, and to said clear signal re-ceiving means and responding to said stored item of data, said pattern item of data, and said clear signal by simultan-eously clearing said certain ones of said register means on receipt of said clear signal in said clear signal receiving means; and (2) memory clear signal providing means connected to said clear signal receiving means in each one of said plurality of memory module for simultaneously providing said clear signal to all said content-addressable memory modules in said plurality of content-addressable memory modules.
21. In the content-addressable memory of claim 20, and wherein:
said simultaneous clearing means includes (i) a plurality of means for detecting said register means containing said stored items of data matching said pattern item of data, each one of said plurality of match detection means being associated with one said register means and being responsive to said stored item of data contained in said one said register means and to said pattern item of data, and each one of said plurality of match detection means acting to provide a match signal when said one said register means associated with said one match detection means contains said stored item of data matching said pattern item of data, (ii) means for providing a register clearing signal to any one of said register means in response to said clear signal and to said match signal, and (iii) a plurality of means for clearing said register means, each one of said register clearing means being associated with one of said register means and being responsive to said register clearing signal;
said content-addressable memory module further includes a plurality of bidirectional match signalling means for providing said match signal from said content-address-able memory module, receiving said match signal from an ex-ternal source, and providing said match signal to said register clearing signal providing means, each bidirectional match signalling means of said plurality of bidirectional match signalling means being associated with one register means of said plurality of register means and being connected to said match detection means associated with said associated register means and to said register clearing signal pro-viding means, and each said bidirectional match signalling means providing said match signal to said register clearing signal providing means only when said bidirectional match signalling means is simultaneously receiving said match signal from said connected match detection means and from said external source; and said content-addressable memory further includes a plurality of memory match signalling means for receiving said match signal from said bidirectional match signalling means and serving as said external source for providing said match signal to said bidirectional match signalling means, each are of said memory match signalling means correspond-ing to one of said bidirectional match signalling means, being connected to said corresponding said match signalling means in each of said content-addressable memory modules, and providing said match signal to said connected bidirectional match signalling means only when all of said connected bidi-rectional match signalling means are providing said match signal, whereby said content-addressable memory responds to said clear signal provided by said memory clear signal pro-viding means by clearing said register means only when said register means contain said stored items of data matching said pattern item of data and said register means are associated with said bidirectional match signalling means which are receiving said match signal from said memory match signalling means.
22. In the content-addressable memory of claim 21, and wherein said content-addressable memory further comprises:
an additional plurality of said content-addressable memory modules; and an additional said memory clear signal providing means connected to said clear signal receiving means in each one of said additional plurality of memory modules, and wherein each one of said plurality of memory match signalling means is further connected to said corres-ponding bidirectional match signalling means in each content-addressable memory module of said additional plurality of content-addressable memory modules.
23. In the content-addressable memory of claim 21, and wherein said content-addressable memory further comprises:
an additional plurality of said content-addressable memory modules; and an additional plurality of memory match signalling means, each one of said additional plurality of memory match signalling means being connected to said corresponding said match signalling means in each of said content-addressable memory modules of said additional plurality of content-addressable memory modules; and wherein said memory clear signal providing means is further connected to said clear signal receiving means in each content-addressable memory module of said additional plurality of memory modules.
24. In the content-addressable memory of claim 21, and wherein:
a pattern sequence of bits in said pattern item of data corresponds to a certain sequence of bits in each one of said stored items of data and said stored item of data matches said pattern item of data when said bits in said certain sequence match said bits in said pattern sequence.
25. In the content-addressable memory of claim 24, and wherein:
said simultaneous clearing means includes (i) a plurality of means for detecting said register means containing said stored items of data matching said pattern item of data, each one of said plurality of match detection means being associated with one said register means and being responsive to said stored item of data con-tained in said one said register means and to said pattern sequence of bits, and each one of said plurality of match detection means acting to provide a match signal when said one said register means associated with said one match detec-tion means contains said stored item of data matching said pattern item of data, (ii) means for providing a register clearing signal to any one of said register means in response to said clear signal and to said match signal, and (iii) a plurality of means for clearing said register means, each one of said register clearing means being associated with one of said register means and being responsive to said register clearing signal;
said content-addressable memory module further includes a plurality of bidirectional match signalling means for providing said match signal from said content-addressable memory module, receiving said match signal from an external source, and providing said match signal to said register clearing signal providing means, each bidirectional match signalling means of said plurality of bidirectional match signalling means being associated with one register means of said plurality of register means and being connected to said match detection means associated with said associated register means and to said register clearing signal pro-viding means, and each said bidirectional match signalling means providing said match signal to said register clearing signal providing means only when said bidirectional match signalling means is simultaneously receiving said match signal from said connected match detection means and from said external source; and said content-addressable memory further includes a plurality of memory match signalling means for receiving said match signal from said bidirectional match signalling means and serving as said external source for providing said match signal to said bidirectional match signalling means, each one of said memory match signalling means corresponding to one of said bidirectional match signalling means, being connected to said corresponding said match signalling means in each of said content-addressable memory modules, and pro-viding said match signal to said connected bidirectional match signalling means only when all of said connected bi-directional match signalling means are providing said match signal, whereby said content-addressable memory responds to said clear signal provided by said memory clear signal pro-viding means by clearing said register means only when said register means contain said stored items of data matching said pattern item of data and said register means are asso-ciated with said bidirectional match signalling means which are receiving said match signal from said memory match signalling means.
26. In the content-addressable memory of claim 21, and wherein:
said content-addressable memory module further includes means for receiving a masking item of data for specifying said pattern sequence of bits and said simultaneous clearing means is further con-nected to said masking item receiving means and is responsive to said masking item of data.
27. In the content-addressable memory of claim 26, and wherein:
said masking item of data further specifies a non-pattern sequence of bits in said pattern data item;
said stored items of data further contain a second certain sequence of bits corresponding to said non-pattern sequence of bits; and one said stored item of data matches said pattern item of data when said first certain sequence of bits matches said pattern sequence of bits, regardless of the valves of bits in said second certain sequence of bits.
28. In the content-addressable memory of claim 27, and wherein:
said masking item of data specifies all said bits in said pattern item of data as said non-pattern sequence of bits, whereby all said stored items of data match said pattern item of data, all said register means in said plur-ality of register means are said certain ones of said plur-ality of register means, and said simultaneous clearing means simultaneously clears all said register means in said plurality of register means upon receipt of said clear signal in said clear signal receiving means.
29. In the content-addressable memory module of claim 26, and wherein:
said simultaneous clearing means further includes (i) a plurality of means for detecting said regi-ster means containing said stored items of data matching said pattern item of data, each one of said plurality of match detection means being associated with one said register means, being responsive to said stored item of data contained in said one said register means, to said pattern item of data, and to said mask item of data, and providing a match signal when said one said register means associated with said one match detection means contains said stored item of data matching said pattern item of data, (ii) means for providing a register clearing signal to any one of said register means in response to said clear signal and to said match signal, and (iii) a plurality of means for clearing said register means, each one of said register clearing means being associated with one of said register means and being responsive to said register clearing signal;
said content-addressable memory module further includes a plurality of bidirectional match signalling means for providing said match signal from said content-addressable memory module, receiving said match signal from an external source, and providing said match signal to said resister clearing signal providing means, each bidirectional match signalling means of said plurality of bidirectional match signalling means being associated with one register means of said plurality of register means and being connected to said match detection means associated with said associated register means and to said register clearing signal providing means, and each said bidirectional match signalling means providing said match signal to said register clearing signal providing means only when said bidirectional match signalling means is simultaneously receiving said match signal from said con-nected match detection means and from said external source;
and said content-addressable memory further includes a plurality of memory match signalling means for receiving said match signal from said bidirectional match signalling means and serving as said external source for providing said match signal to said bidirectional match signalling means, each one of said memory match signalling means corresponding to one of said bidirectional match signalling means, being con-nected to said corresponding said match signalling means in each of said content-addressable memory modules, and providing said match signal to said connected bidirectional match sig-nalling means only when all of said connected bidirectional match signalling means are providing said match signal, whereby said content-addressable memory responds to said clear signal provided by said memory clear signal providing means by clearing said register means only when said register means contain said stored items of data matching said pattern item of data and said register means are asso-ciated with said bidirectional match signalling means which are receiving said match signal from said memory match sig-nalling means.
30. In the content-addressable memory of claim 29, and wherein said content-addressable memory further com-prises:
an additional plurality of said content-addressable memory modules; and an additional said memory clear signal providing means connected to said clear signal receiving means in each one of said additional plurality of memory modules, and wherein each one of said plurality of memory match signalling means is further connected to said corresponding bidirectional match signalling means in each content-address-able memory module of said additional plurality of content-addressable memory modules.
31. In the content-addressable memory of claim 29, and wherein said content-addressable memory further comprises:
an additional plurality of said content-addressable memory modules; and an additional plurality of memory match signalling means, each one of said additional plurality of memory match signalling means being connected to said corresponding said match signalling means in each of said content-address-able memory modules of said additional plurality of content-addressable memory modules; and wherein said memory clear signal providing means is further connected to said clear signal receiving means in each one of said additional plurality of memory modules.
32. A content-addressable memory comprising:
(1) a plurality of content-addressable memory modules, each one of said plurality of content-addressable memory modules including (a) a plurality of register means, each regis-ter means of said plurality of register means containing one stored item of data;
(b) means for receiving a pattern item of data;
(c) a plurality of means for detecting said register means containing said stored items of data matching said pattern item of data, each one of said plurality of match detection means being associated with one said register means, being responsive to said stored item of data contained in said one said register means and to said pattern item of data, and providing a match signal when said one said register means associated with said one match detecting means contains said stored item of data matching said pattern item of data; and (d) a plurality of bidirectional match signal-ling means for providing said match signal from said content-addressable memory module and receiving said match signal from an external source, each one of said bidirectional match signalling means being associated with one of said register means and responsive to said match signal from said match detection means associated with said associated register means and to said match signal from said external source, and acting to provide said match signal only when simultaneously receiving said match signal from said associated match detec-tion means and from said external source; and (2) a plurality of memory match signalling means for receiving said match signal from said bidirectional match signalling means and serving as said external source for pro-viding said match signal to said bidirectional match signal-ling means, each one of said memory match signalling means corresponding to one of said bidirectional match signalling means, being connected to said corresponding said match signal-ling means in each of said content-addressable memory modules, and providing said match signal to said connected bidirectional match signalling means only when all of said connected bi-directional match signalling means are providing said match signal.
33. In the content-addressable memory of claim 32, and wherein said content-addressable memory further com-prises:
an additional plurality of said content-addressable memory modules; and an additional plurality of said memory match sig-nalling means, each one of said additional plurality of memory match signalling means being connected to said corres-ponding said match signalling means in each of said content-addressable memory modules of said additional plurality of content-addressable memory modules.
34. In the content-addressable memory of claim 32, and wherein:
said bidirectional match signalling means is a match line connected to said match detection means and clear-ing signal providing means;
said memory match signalling means is a memory match line connected to a corresponding said match line in each one of said content-addressable memory modules;
said match line and said memory match line provide and receive a match state and a no-match state;
said match signal is said match state; and each said match line is connected to an open-collector driver circuit in said associated match detection means and said open-collector driver circuit places said con-nected match line and said connected memory match line in said no match state unless said stored item of data in said regis-ter means associated with said match detection means matches said pattern item of data.
35. In the content-addressable memory of claim 34, and wherein:
said match state is a high voltage and said no match state is a low voltage.
36. In the content-addressable memory of claim 35, and wherein:
a pattern sequence of bits in said pattern item of data corresponds to a certain sequence of bits in each one of said stored items of data, said match detection means is responsive to said pattern sequence of bits and to said cer-tain sequence of bits, and said stored item of data matches said pattern item of data when said bits in said certain sequence match said bits in said pattern sequence.
37. In the content-addressable memory of claim 36, and wherein:

said content-addressable memory module further includes means for receiving a masking item of data for specifying said pattern sequence of bits and said match dtection means is further connected to said masking item receiving means and is responsive to said masking item of data.
38. In the content-addressable memory module of claim 37, and wherein:
said masking item of data further specifies a non-pattern sequence of hits in said pattern data item;
said stored items of data further contain a second certain sequence of bits corresponding to said non-pattern sequence of bits; and one said stored item of data matches said pattern item of data when said first certain sequence of bits matches said pattern sequence of bits, regardless of the values of bits in said second certain sequence of bits.
39. In the content-addressable module of claim 38, and wherein:
said masking item of data specifies all said bits in said pattern item of data as said non-pattern sequence of bits, whereby said memory match line is in said match state when first certain memory modules of said plurality of memory modules receive said masking items of data speci-fying all said bits in said pattern items of data received by said first certain memory modules as said non-pattern bits, second certain memory modules of said plurality of memory modules receive said masking items not specifying all said bits in said pattern item of data as said non-pattern bits, and said stored items of data in said register means associated with said memory match lines in said second certain memory modules match said pattern items received by said second certain memory items.
40. In the content-addressable memory of claim 39, and wherein said content-addressable memory further com-prises:
an additional plurality of said content-addressable memory modules; and an additional plurality of said memory match signal-ling means, each one of said additional plurality of memory match signalling means being connected to said corresponding said match signalling means in each of said content-address-able memory modules of said additional plurality of content-addressable memory modules.
41. In the content-addressable memory of claim 20, 24 or 32, and wherein:
said content-addressable memory module further in-cludes address receiving means connected to said plurality of register means for receiving an encoded address specifying an addressed register means of said plurality of register means from an external source, decoding said encoded address to generate an address signal for said addressed register means specified by said encoded address, and providing said address signal to said addressed register means, each regis-ter means of said plurality of register means being responsive to said address signal; and (2) memory register address providing means connected to each said address receiving means in said plurality of memory modules for simultaneously providing said encoded address to said address receiving means in each one of said plurality of memory modules, whereby said encoded address provided by said memory register address providing means specifies a memory register made up of said addressed register means in each one of said plurality of memory modules.
42. In the content-addressable memory of claim 20, 24 or 32 and wherein:
each content-addressable memory module of said plurality of content-addressable memory modules and of said additional plurality of content-addressable memory modules further includes address receiving means connected to said plurality of register means for receiving an encoded address specifying an addressed register means of said plurality of register means from an external source, decoding said en-coded address to generate an address signal for said addressed register means specified by said encoded address, and pro-viding said address signal to said addressed register means, each register means of said plurality of register means being responsive to said address signal; and said content-addressable memory further includes memory register address providing means connected to each said address receiving means in said plurality of memory modules and to said address receiving means in said additional plurality of memory modules for simultaneously providing said encoded address to said address receiving means in each one of said plurality of memory modules and in each one of said additional plurality of memory modules.
43. In the content-addressable memory of claim 20, 24 or 32, and wherein:
each content-addressable memory module of said plurality of content-addressable memory modules and of said additional plurality of content-addressable memory modules further includes address receiving means connected to said plurality of register means for receiving an encoded address specifying an addressed register means of said plurality of register means from an external source, decoding said en-coded address to generate an address signal for said addressed register means specified by said encoded address, and pro-viding said address signal to said addressed register means, each register means of said plurality of register means being responsive to said address signal; and said content-addressable memory further includes memory register address providing means connected to each said address receiving means in said plurality of memory modules for simultaneously providing said encoded address to said address receiving means in each one of said plurality of memory modules; and additional memory register address providing means connected to each said address receiving means in said addi-tional plurality of memory modules for simultaneously pro-viding an additional said encoded address to said address receiving means in each one of said additional plurality of memory modules.
CA000431650A 1982-09-13 1983-06-30 Content-addressable memory modules with associative clear Expired CA1185378A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/417,801 US4559618A (en) 1982-09-13 1982-09-13 Content-addressable memory module with associative clear
US417,801 1982-09-13

Publications (1)

Publication Number Publication Date
CA1185378A true CA1185378A (en) 1985-04-09

Family

ID=23655451

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000431650A Expired CA1185378A (en) 1982-09-13 1983-06-30 Content-addressable memory modules with associative clear

Country Status (2)

Country Link
US (1) US4559618A (en)
CA (1) CA1185378A (en)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1262969A (en) * 1985-06-25 1989-11-14 Ascii Corporation Memory system
US4680760A (en) * 1985-08-05 1987-07-14 Motorola, Inc. Accelerated test apparatus and support logic for a content addressable memory
US4789967A (en) * 1986-09-16 1988-12-06 Advanced Micro Devices, Inc. Random access memory device with block reset
DE3727846A1 (en) * 1987-08-20 1989-03-02 Vmei Lenin Nis ASSOCIATIVE OPERATION STORAGE DEVICE
US4791606A (en) * 1987-09-01 1988-12-13 Triad Semiconductors International Bv High density CMOS dynamic CAM cell
US5023833A (en) * 1987-12-08 1991-06-11 California Institute Of Technology Feed forward neural network for unary associative memory
US4825412A (en) * 1988-04-01 1989-04-25 Digital Equipment Corporation Lockout registers
US4996666A (en) * 1988-08-12 1991-02-26 Duluk Jr Jerome F Content-addressable memory system capable of fully parallel magnitude comparisons
US5072422A (en) * 1989-05-15 1991-12-10 E-Systems, Inc. Content-addressed memory system with word cells having select and match bits
US5053991A (en) * 1989-10-06 1991-10-01 Sanders Associates, Inc. Content-addressable memory with soft-match capability
US5125098A (en) * 1989-10-06 1992-06-23 Sanders Associates, Inc. Finite state-machine employing a content-addressable memory
US5107501A (en) * 1990-04-02 1992-04-21 At&T Bell Laboratories Built-in self-test technique for content-addressable memories
US5588030A (en) * 1993-10-13 1996-12-24 Maxtor Corporation Apparatus and method for the synchronization of data in a bit stream
US5860085A (en) * 1994-08-01 1999-01-12 Cypress Semiconductor Corporation Instruction set for a content addressable memory array with read/write circuits and an interface register logic block
US5893929A (en) * 1996-04-29 1999-04-13 Intel Corporation Mutually controlled match-line-to-word-line transfer circuit
US5852569A (en) * 1997-05-20 1998-12-22 Quality Semiconductor, Inc. Content addressable memory multiple match detection circuit
GB9815370D0 (en) * 1998-07-16 1998-09-16 Harman M G Content addressable memory
WO2000011602A2 (en) 1998-08-20 2000-03-02 Apple Computer, Inc. Method and apparatus for generating texture
US6771264B1 (en) 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
US6128207A (en) * 1998-11-02 2000-10-03 Integrated Device Technology, Inc. Low-power content addressable memory cell
EP1791063A1 (en) * 1999-06-30 2007-05-30 Apptitude, Inc. Method and apparatus for monitoring traffic in a network
US6771646B1 (en) * 1999-06-30 2004-08-03 Hi/Fn, Inc. Associative cache structure for lookups and updates of flow records in a network monitor
US6789116B1 (en) * 1999-06-30 2004-09-07 Hi/Fn, Inc. State processor for pattern matching in a network monitor device
US6101116A (en) * 1999-06-30 2000-08-08 Integrated Device Technology, Inc. Six transistor content addressable memory cell
US6553453B1 (en) 1999-09-10 2003-04-22 Sibercore Technologies, Inc. Variable width content addressable memory device for searching variable width data
US6275406B1 (en) 1999-09-10 2001-08-14 Sibercore Technologies, Inc. Content address memory circuit with redundant array and method for implementing the same
US6392910B1 (en) 1999-09-10 2002-05-21 Sibercore Technologies, Inc. Priority encoder with multiple match function for content addressable memories and methods for implementing the same
US6339539B1 (en) 1999-09-10 2002-01-15 Sibercore Technologies, Inc. Content addressable memory having read/write capabilities that do not interrupt continuous search cycles
US6362990B1 (en) 1999-09-10 2002-03-26 Sibercore Technologies Three port content addressable memory device and methods for implementing the same
US6430072B1 (en) 2001-10-01 2002-08-06 International Business Machines Corporation Embedded CAM test structure for fully testing all matchlines
US7185175B2 (en) * 2004-01-14 2007-02-27 International Business Machines Corporation Configurable bi-directional bus for communicating between autonomous units
US7599044B2 (en) 2005-06-23 2009-10-06 Apple Inc. Method and apparatus for remotely detecting presence
US9298311B2 (en) 2005-06-23 2016-03-29 Apple Inc. Trackpad sensitivity compensation
US7577930B2 (en) 2005-06-23 2009-08-18 Apple Inc. Method and apparatus for analyzing integrated circuit operations
US7433191B2 (en) 2005-09-30 2008-10-07 Apple Inc. Thermal contact arrangement
US7598711B2 (en) 2005-11-23 2009-10-06 Apple Inc. Power source switchover apparatus and method
US7940278B2 (en) * 2005-12-08 2011-05-10 Xerox Corporation Method and system for programming for image enhancement
US9411600B2 (en) * 2013-12-08 2016-08-09 Intel Corporation Instructions and logic to provide memory access key protection functionality
US11307791B2 (en) * 2019-05-24 2022-04-19 Texas Instruments Incorporated Quick clearing of registers

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3997882A (en) * 1975-04-01 1976-12-14 Burroughs Corporation Content addressable memory system employing charge coupled device storage and directory registers and N/(1-H) counter refresh synchronization
US4296475A (en) * 1978-12-19 1981-10-20 U.S. Philips Corporation Word-organized, content-addressable memory

Also Published As

Publication number Publication date
US4559618A (en) 1985-12-17

Similar Documents

Publication Publication Date Title
CA1185378A (en) Content-addressable memory modules with associative clear
US4322795A (en) Cache memory utilizing selective clearing and least recently used updating
US4670858A (en) High storage capacity associative memory
US4580240A (en) Memory arrangement operable as a cache and a local memory
US5274790A (en) Cache memory apparatus having a plurality of accessibility ports
FI80352C (en) SYSTEM FOER BUFFERTMINNE.
CA1224566A (en) Content addressable memory cell
CA1204517A (en) Universal memory
US4812969A (en) Address translation unit
EP0341899B1 (en) Content addressable memory array
US3588830A (en) System for using a memory having irremediable bad bits
JPS5823375A (en) Selective cash clearing method of and apparatus for data processing system
JPH0271497A (en) Memory-system, address of which can be assigned by content
JPS624745B2 (en)
JPH0814801B2 (en) Programmable access memory
US5388072A (en) Bit line switch array for electronic computer memory
EP0706131A2 (en) Method and system for efficient miss sequence cache line allocation
CA1080366A (en) First in - first out memory array containing special bits for replacement addressing
US5060136A (en) Four-way associative cache with dlat and separately addressable arrays used for updating certain bits without reading them out first
KR950000027B1 (en) Serial input/output semiconductor memory
US4943914A (en) Storage control system in which real address portion of TLB is on same chip as BAA
JPH07120312B2 (en) Buffer memory controller
US4942521A (en) Microprocessor with a cache memory in which validity flags for first and second data areas are simultaneously readable
US3389377A (en) Content addressable memories
US5359557A (en) Dual-port array with storage redundancy having a cross-write operation

Legal Events

Date Code Title Description
MKEC Expiry (correction)
MKEX Expiry