WO2011040335A1 - 連想メモリ - Google Patents

連想メモリ Download PDF

Info

Publication number
WO2011040335A1
WO2011040335A1 PCT/JP2010/066563 JP2010066563W WO2011040335A1 WO 2011040335 A1 WO2011040335 A1 WO 2011040335A1 JP 2010066563 W JP2010066563 W JP 2010066563W WO 2011040335 A1 WO2011040335 A1 WO 2011040335A1
Authority
WO
WIPO (PCT)
Prior art keywords
circuit
data
pulse
determination
search
Prior art date
Application number
PCT/JP2010/066563
Other languages
English (en)
French (fr)
Inventor
ハンス ユルゲン マタウシュ
哲士 小出
タニア アンサリ
渉 今福
彰大 賀谷
Original Assignee
国立大学法人広島大学
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 国立大学法人広島大学 filed Critical 国立大学法人広島大学
Priority to US13/499,112 priority Critical patent/US8587980B2/en
Publication of WO2011040335A1 publication Critical patent/WO2011040335A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements

Definitions

  • the present invention relates to an associative memory having a minimum distance search function.
  • an associative memory having a minimum distance search function has attracted attention.
  • the associative memory stores R reference data having a width of W bits (W and R are natural numbers).
  • search data search data
  • the associative memory searches for the most similar (closest distance) data from among a plurality of reference data.
  • Non-Patent Document 1 Finding reference data that is most similar to the input data string is a basic process in pattern matching (see Non-Patent Document 1). Therefore, the minimum distance search associative memory is useful in information processing such as image compression and image recognition.
  • the minimum distance search associative memory is disclosed in Patent Document 1, for example.
  • Patent Document 2, Non-Patent Document 2, and Non-Patent Document 3 disclose fully parallel associative memories having a search function for a Hamming distance, a Manhattan distance, and an Euclidean distance.
  • the conventional associative memory includes a memory array unit, a Winner Line-up Amplifier (hereinafter referred to as WLA), and a Winner Take All circuit (hereinafter referred to as WTA).
  • the memory array unit includes memory cells arranged in a matrix. A plurality of memory cells arranged in the same row of the memory array section store W-bit width reference data.
  • the memory array unit further includes a plurality of comparison circuits each corresponding to each row. The comparison circuit generates a comparison current signal corresponding to the distance between the reference data stored in the memory cell in the corresponding row and the search data input from the outside.
  • the WLA circuit includes a plurality of current-voltage conversion circuits each corresponding to each comparison circuit. Each current-voltage conversion circuit converts the comparison current signal output from the corresponding comparison circuit into a voltage.
  • WLA circuit among the converted plurality of voltages are amplified to a predetermined voltage V W to the lowest voltage is the voltage level as Winner.
  • the other voltage is amplified to a predetermined voltage V L as Loser.
  • Winner corresponds to the reference data most similar to the search data.
  • Loser corresponds to reference data other than the reference data most similar to the search data.
  • the WTA circuit further amplifies the voltage received from the WLA circuit and outputs the amplified voltage.
  • the associative memory the reference data stored in the memory cells of the row which is amplified to the voltage V W is determined in the most similar reference data to the search data.
  • the WLA circuit uses transistor elements arranged corresponding to each row, and each voltage is higher than a predetermined threshold voltage V ref . It is determined whether or not it is larger. Then, a voltage smaller than the threshold voltage V ref is amplified to the voltage V W and a voltage larger than the threshold voltage V ref is amplified to the voltage VL .
  • the characteristics of the transistor elements used for the voltage determination described above need to match in each row. However, the characteristics of transistor elements inevitably vary. The use of different properties transistor to a voltage determined in line that should not be amplified to the original voltage V W, may become amplified to the voltage V W occurs. In short, an erroneous search may occur in a conventional associative memory that searches for reference data by converting the comparison current signal of each row into a voltage.
  • An object of the present invention is to provide an associative memory that can suppress erroneous searches.
  • the associative memory includes storage means, comparison means, pulse generation means, and determination means.
  • the storage means stores a plurality of reference data.
  • the comparison means compares the input search data and each of the plurality of reference data in parallel, and obtains the distance between the search data and the reference data for each reference data.
  • the pulse generation means generates a pulse signal having a frequency corresponding to the obtained distance for each reference data.
  • the determining unit determines the reference data closest to the search data among the plurality of reference data based on the frequencies of the plurality of generated pulse signals.
  • the associative memory according to the present invention does not convert the distance between the reference data and the search data into a current value or a voltage value as in the prior art, and generates a pulse signal having an oscillation frequency corresponding to the distance. Since analog processing such as converting the distance into a current value or a voltage value is not performed, an erroneous search due to variations in transistor element characteristics is unlikely to occur.
  • the pulse generation means includes a plurality of oscillation means corresponding to a plurality of reference data.
  • Each oscillation means outputs a pulse signal having a higher frequency as the distance between the search data and the corresponding reference data is smaller.
  • the determining means determines the reference data corresponding to the oscillating means that has output the pulse signal having the highest oscillation frequency as the reference data closest to the search data.
  • the determination unit further includes a plurality of determination units corresponding to the plurality of oscillation units.
  • the determining means determines the reference data closest to the search data based on the determining means that has received the pulse signal from the oscillating means earliest among the plurality of determining means.
  • the reference data closest to the search data is determined based on the time difference of receiving the pulse signal, not the current voltage difference. Therefore, it is difficult to be affected by variations in transistor element characteristics.
  • the content addressable memory further includes a plurality of frequency dividing means corresponding to the oscillation circuit.
  • Each frequency dividing means divides the pulse signal output from the corresponding oscillating means by a predetermined frequency dividing ratio, and outputs the result to the corresponding determining means.
  • the determining means can specify the pulse signal received earliest with higher accuracy.
  • the determination unit further includes a latch instruction node connected to the plurality of determination units, and a charging unit that charges the latch instruction node.
  • Each determination unit includes a discharge unit and a latch unit.
  • the discharging means receives the output signal from the corresponding oscillating means, and discharges the latch instruction node when the output signal is a pulse signal.
  • the latch means latches the output signal received by the discharging means when the latch instruction node is discharged.
  • the level of the output signal output from the determination unit that has received the pulse signal earliest and the level of the output signal output from the other determination unit can be set to different levels.
  • the determination means includes a plurality of determination means connected in a tournament manner.
  • Each of the plurality of determination units arranged in the first stage includes a plurality of first pulse determination units, a pulse reception determination node, and a charging unit.
  • the first pulse determining means receives the output signal of the corresponding oscillating means.
  • the pulse acceptance determination node is connected to a plurality of first pulse determination means.
  • the charging means charges the pulse acceptance determination node.
  • the first pulse determination means includes first discharge means and latch means.
  • the first discharging means discharges the pulse receiving node when receiving the pulse signal as the output signal of the corresponding oscillating means.
  • the latch means latches the output signal received by the first discharging means when receiving the clock signal.
  • the tournament determination means arranged in the second and subsequent stages includes a plurality of second pulse determination means, a pulse acceptance determination node, and a charging means.
  • the second pulse determination means is connected to the pulse acceptance determination node of the corresponding tournament determination means in the preceding stage.
  • the pulse acceptance determination node is connected to a plurality of second pulse determination means.
  • the second pulse determination unit includes a second charging unit.
  • the second charging unit discharges the pulse reception node when the pulse reception determination node of the corresponding determination unit in the preceding stage is discharged.
  • the uppermost determination unit further includes a clock generation unit.
  • the clock generation means outputs a clock signal when the pulse acceptance determination node is discharged.
  • each pulse acceptance determination node can be reduced. Therefore, it is possible to shorten the time from when the pulse signal is received until the clock signal is output.
  • the transmission means includes a plurality of inverters connected in series and a stage number selection means.
  • the stage number selection means selects the number of stages of the inverter according to the distance between the search data and the corresponding reference data.
  • the oscillation frequency can be adjusted according to the number of inverter stages.
  • the determination unit includes a plurality of counter units corresponding to the plurality of oscillation units.
  • the counting means receives the pulse signal from the corresponding oscillating means, counts the total number of received pulses, and generates an output signal that is activated when a predetermined number of pulses are received.
  • reference data similar to the search data can be sequentially determined in the order similar to the search data.
  • the associative memory further includes pulse invalidation means.
  • the pulse invalidating means corresponds to the reference data determined by the determining means up to j ⁇ 1 times in the j-th search (j is an integer satisfying 1 ⁇ j ⁇ k, k is an integer of 2 or more).
  • the pulse signal output from the oscillation means is invalidated.
  • reference data similar to the search data can be sequentially determined in the order similar to the search data.
  • FIG. 2 is a circuit diagram of a unit data storage circuit and a unit data comparison circuit in FIG. 1.
  • FIG. 2 is a functional block diagram showing a configuration of an oscillation circuit in FIG. 1.
  • FIG. 4 is a circuit diagram of a delay circuit in FIG. 3.
  • FIG. 2 is a circuit diagram of the WTA circuit in FIG. 1. It is a figure which shows the relationship between the number of stages of the inverter in the oscillation circuit shown in FIG. 3, and the dispersion
  • FIG. 11 is a circuit diagram of the delay circuit in FIG. 10.
  • FIG. 12 is a circuit diagram of another delay circuit different from FIG. 11.
  • FIG. 13 is a circuit diagram of another delay circuit different from FIGS. 11 and 12.
  • FIG. 14 is a circuit diagram of another delay circuit different from FIGS. 11 to 13.
  • FIG. 18 is a functional block diagram illustrating configurations of a storage circuit, a comparison circuit, and an oscillation circuit in the first row in the memory array section in FIG. 17. It is a functional block diagram which shows the structure of the oscillation circuit in FIG.
  • FIG. 20 is a functional block diagram showing a configuration of a delay circuit in FIG. 19.
  • an associative memory 100 includes a memory array unit 10 and a WTA (Winner Take All) circuit 20.
  • the memory array unit 10 includes a memory unit 1, a row decoder 2, a column decoder 3, a read / write circuit 4, and a search data storage circuit 5.
  • the memory unit 1 includes unit data storage circuits (Unit Storage: US) US 11 to US 1W , US 21 to US 2W ,..., US R1 to US RW .
  • W is a natural number of 2 or more
  • R is a natural number of 2 or more.
  • an arbitrary unit data storage circuit is described as US ij (1 ⁇ i ⁇ W, 1 ⁇ j ⁇ R).
  • Unit data storage circuits (Unit Storage: US) US 11 to US 1W , US 21 to US 2W ,..., US R1 to US RW are arranged in a matrix.
  • a plurality of unit data storage circuits US ij arranged in the same row constitute a storage circuit S i .
  • the unit data storage circuits US 11 to US 1W arranged in the first row constitute the storage circuit S 1 .
  • the unit data storage circuits US 21 to US 2W arranged in the second row constitute a storage circuit S 2
  • the unit data storage circuits US R1 to US RW arranged in the R row are stored in the storage circuit S.
  • R is constructed.
  • the storage circuit S i for each row stores W-bit width reference data. Specifically, the storage circuit S1 corresponding to the first row stores W-bit width reference data. The storage circuit S2 corresponding to the second row stores other reference data different from the reference data stored by the storage circuit S1. Each of the plurality of unit data storage circuits US ij in the storage circuit S i stores corresponding 1-bit data of the reference data.
  • Memory unit 1 further includes a plurality of comparator circuits C 1 ⁇ C R corresponding to the respective storage circuits S 1 ⁇ S R.
  • Comparator circuit C 1 corresponds to the storage circuits S 1 disposed in the first row.
  • the comparator circuit C 2 corresponds to the storage circuit S 2 arranged in the second row.
  • the comparator circuit C R corresponds to the storage circuit S R which is disposed in the R line.
  • the comparison circuit C 1 includes a plurality of unit data comparison circuits (unit comparators: UC) UC 11 to UC 1W .
  • the comparison circuit C 2 corresponding to the second row includes a plurality of unit data comparison circuits UC 21 to UC 2W .
  • the comparison circuits C 3 to C R corresponding to the third to R-th rows include a plurality of unit data comparison circuits UC 31 to UC 3W ,..., UC R1 to UC RW .
  • Unit data comparison circuits UC 11 to UC 1W are arranged corresponding to unit data storage circuits US 11 to US 1W , respectively.
  • Unit data comparison circuits UC 21 to UC 2W are arranged corresponding to unit data storage circuits US 21 to US 2W , respectively.
  • the unit data comparator circuits UC 31 ⁇ UC 3W, ⁇ , UC R1 ⁇ UC RW are each unit data storage circuit US 31 ⁇ US 3W, ⁇ , corresponding to US R1 ⁇ US RW Arranged.
  • an arbitrary comparison circuit is described as C i
  • an arbitrary unit data comparison circuit is described as UC ij .
  • Comparator circuit C i of each row receives the search data of W bit width from the outside. Then, comparing the search data and the reference data of the corresponding stored in the storage circuit S i a W bits wide. More specifically, the comparison circuit C i obtains the distance between the search data and the reference data (hamming distance in this example). The comparison between the reference data of each row and the search data is executed in parallel. That is, each comparator circuit C i is the comparison between the corresponding i-th row of reference data search data is performed in parallel (simultaneously).
  • the memory unit 1 further includes a pulse generation circuit.
  • the pulse generation circuit includes a plurality of oscillation circuits (OCillating Circuits: OC) OC 1 to OC R.
  • OC oscillation circuits
  • OC i an arbitrary oscillation circuit is referred to as OC i .
  • Each oscillation circuit OC i is arranged in each row. Specifically, the oscillation circuit OC 1 corresponds to the storage circuit S 1 and the comparison circuit C 1 . Oscillator circuit OC 2 corresponds to the storage circuit S 2, and the comparator circuit C 2. Similarly, the oscillation circuit OC R corresponds to the storage circuit S R and the comparison circuit C R.
  • the oscillation circuit OC i outputs a pulse signal P i having an oscillation frequency corresponding to the Hamming distance obtained by the comparison circuit C i .
  • the oscillation circuit OC 1 outputs a pulse signal P 1 having an oscillation frequency corresponding to the Hamming distance between the reference data stored in the first row (storage circuit S 1 ) and the search data.
  • Oscillator circuit OC 2 outputs a pulse signal P 2 with the oscillation frequency corresponding to the Hamming distance between the second row of the reference data and the search data.
  • the oscillating circuit OC R outputs a pulse signal P R having the oscillation frequency corresponding to the Hamming distance between the first R rows of reference data and search data.
  • the pulse generating circuit having a plurality of oscillation circuits OC 1 ⁇ OC R generates a pulse signal P 1 ⁇ P R corresponding to each row of the reference data.
  • the transmission frequency of the pulse signal P i corresponds to the Hamming distance between the reference data in the corresponding row (i th row) and the search data. Specifically, the smaller the Hamming distance, the higher the oscillation frequency, and the larger the Hamming distance, the lower the oscillation frequency.
  • the row decoder 2 designates an address in the row direction of the memory unit 1.
  • the column decoder 3 designates an address in the column direction of the memory unit 1.
  • the Read / Write circuit 4 writes reference data to the unit data storage circuits US 11 to US 1W , US 21 to US 2W ,..., US R1 to US RW specified by the row decoder 2 and the column decoder 3.
  • the Read / Write circuit 4 further writes the search data in the search data storage circuit 5.
  • the search data storage circuit 5 stores the search data written by the Read / Write circuit 4.
  • WTA circuit 20 receives a plurality of pulse signals P 1 ⁇ P R generated by the pulse generating circuit (oscillation circuit OC 1 ⁇ OC R). WTA circuit 20 based on the oscillation frequency of the pulse signals P 1 ⁇ P R, to determine the reference data most similar to the search data. WTA circuit 20, of the pulse signals P 1 ⁇ P R, the oscillation frequency is to identify the maximum pulse signals P i. Then, to determine the reference data stored in the row corresponding to a particular pulse signals P i (the i-th row), the most similar reference data to the search data.
  • WTA circuit 20 includes a plurality of determination circuits (Judgment Circuit) JC 1 ⁇ JC R corresponding to a plurality of oscillation circuits OC 1 ⁇ OC R.
  • JC i an arbitrary determination circuit is described as JC i .
  • a plurality of decision circuits JC 1 ⁇ JC R receive the corresponding pulse signals P 1 ⁇ P R.
  • the oscillation frequency changes most quickly the voltage level of the maximum of the pulse signal P i.
  • judgment circuits JC 1 ⁇ JC R earliest level change determining circuit JC i which receives the pulse signal P i and outputs the activated judgment signal (Judgment Signal) JS i.
  • the remaining determination circuits JC i that have received the signal P i whose level has changed after the second output the inactivated determination signal JS i .
  • the activated determination signal JS indicates “1” and includes the voltage VDD.
  • the deactivated determination signal JS i indicates “0” and is composed of the voltage Vref (Vref ⁇ VDD).
  • the activated determination signal JS i indicates that the reference data in the corresponding row (i-th row) is the reference data most similar to the search data (hereinafter, this reference data is referred to as Winner). Further, the deactivated determination signal JS i indicates that the reference data in the corresponding row is not the reference data most similar to the search data (hereinafter, this reference data is referred to as “Loser”).
  • the reference data stored in the storage circuit S 2 is most similar to the search data.
  • the pulse signals P 1 ⁇ P R the highest oscillation frequency of the pulse signal P 2. Therefore, WTA circuit 20, of the decision signal JS 1 ⁇ JS R, only the determination signal JS 2 activates, deactivates the remaining decision signal JS i.
  • the associative memory 100 does not replace the difference in the distance between the reference data and the search data with the current and voltage differences. Instead, the difference in distance is replaced with a difference in pulse oscillation frequency. That is, if the distance is different, the oscillation frequency is also different. If the oscillation frequency is different, the time at which the pulse first rises (or falls) is different, so that the difference in distance replaces the time difference.
  • the associative memory 100 determines reference data most similar to the search data based on this time difference. When converting the difference in distance into current and voltage differences, analog processing is performed. In this case, as described above, an erroneous search may occur due to variations in characteristics of transistor elements used to separate Winner and Loser.
  • the associative memory 100 determines Winner by replacing the difference in distance with the difference in oscillation frequency (time difference). That is, Winner is determined by digital processing. Therefore, it is difficult to be affected by variations in characteristics of transistor elements, and erroneous search is suppressed.
  • each bit data constituting the reference data having the W bit width is referred to as reference bit data.
  • Each bit data constituting the reference data having a W bit width is referred to as search bit data. That is, the reference data has W reference bit data, and the search data has W search bit data corresponding to the reference bit data.
  • Unit data storage circuit US 11 constitute a SRAM device.
  • Unit data storage circuit US 11 includes a latch circuit 210 for latching the data, and an n-type MOS transistors 201 and 202.
  • N-type MOS transistors 201 and 202 are connected in series.
  • a latch circuit 210 is connected between the n-type MOS transistors 201 and 202.
  • the gate of the n-type MOS transistors 201 and 202 are respectively connected to the word line WL 1.
  • Word line WL 1 is connected to row decoder 2.
  • n-type MOS transistors 201 and 202 are turned on.
  • the n-type MOS transistor 201 supplies 1-bit reference bit data D constituting reference data input from the outside to the latch circuit 210.
  • the n-type MOS transistor 202 receives reference bit data DQ, which is an inverted signal of the reference bit data D, and supplies it to the latch circuit 210.
  • the latch circuit 210 includes two inverters I1 and I2.
  • the input terminal of inverter I1 is connected to the output terminal of inverter I2.
  • the output terminal of inverter I1 is connected to the input terminal of inverter I2.
  • Inverter I 1 receives reference bit data D from n-type MOS transistor 201.
  • Inverter I 2 receives reference bit data DQ from n-type MOS transistor 202. Therefore, the latch circuit 210 latches 1-bit reference bit data D.
  • the reference bit data D is “1” or “0”.
  • the reference bit data D is “1” indicates that the signal supplied from the n-type MOS transistor 201 to the latch circuit 210 is at H level, and the reference bit data D is “0” when the signal is at L level. Indicates that there is.
  • Search bit data CAM is input to the unit data comparison circuit UC11 from the outside.
  • the search bit data CAM is 1-bit data constituting the search data, and corresponds to the unit data storage circuit US11.
  • the unit data comparison circuit UC11 compares the reference bit data D stored in the unit data storage circuit US11 with the search bit data CAM to obtain a distance (Hamming distance). Then outputs the calculated distance to the corresponding oscillating circuit OC 1.
  • Unit data comparator circuit UC 11 includes two transfer gates TG1, TG2 and an inverter I3.
  • Each transfer gate TG1 and TG2 includes an n-type MOS transistor and a p-type MOS transistor.
  • the gate of the p-type MOS transistor in transfer gate TG 1 receives reference bit data D from latch circuit 210, and the gate of the n-type MOS transistor receives reference bit data DQ from latch circuit 210.
  • the gate of the p-type MOS transistor in transfer gate TG 2 receives reference bit data DQ from latch circuit 210 from latch circuit 210, and the gate of the n-type MOS transistor receives reference bit data D from latch circuit 210.
  • Transfer gate TG1 receives search bit data CAM from the outside.
  • Transfer gate TG2 receives search bit data CAMQ, which is an inverted signal of search bit data CAM, from the outside.
  • the node N1 outputs a signal output from the turned-on transfer gate TG1 or TG2 as a path enable signal path_ena.
  • the inverter I3 outputs a path enable signal path_enaq obtained by inverting the path enable signal path_ena. That is, the unit data comparator circuit UC 11 has two signal Path_ena, outputs the Path_enaq.
  • the two signals path_ena and path_enaq are comparison results between the reference bit data D and the search bit data CAM, and correspond to the Hamming distance.
  • the signal path_ena becomes L level and the signal path_enaq becomes H level.
  • the transfer gate TG1 is turned off and the TG2 is turned on.
  • both the reference bit data D and the search bit data CAM are “0”, the transfer gate TG1 is turned on and TG2 is turned off.
  • the signal path_ena becomes L level and the signal path_enaq becomes H level.
  • the signal path_ena becomes H level and the signal path_enaq becomes L level.
  • the transfer gate TG1 is turned off and TG2 is turned on.
  • the transfer gate TG1 is turned on and TG2 is turned off.
  • the signal path_ena is at the H level and the signal path_enaq is at the L level.
  • Signal path_ena and path_enaq determines the oscillation frequency of the pulse signal P 1 that is oscillating circuit OC 1 generation.
  • the unit data storage circuits US 12 to US 1W , US 21 to US 2W ,... US R1 to US RW have the same configuration as the unit data storage circuit US 11 .
  • the unit data comparison circuits UC 12 to UC 1W , UC 21 to UC 2W ,... UC R1 to UC RW have the same configuration as the unit data comparison circuit UC 11 .
  • the oscillation circuit OC 1 outputs a pulse signal P 1 having an oscillation frequency corresponding to the distance (Hamming distance) between the W-bit width reference data stored in the storage circuit S 1 and the W-bit width search data. Specifically, the smaller the distance between the reference data and the search data, that is, the closer the reference data is to the search data, the higher the oscillation circuit OC 1 outputs the pulse signal P 1 having a higher oscillation frequency.
  • FIG. 3 is a functional block diagram of the oscillation circuit OC 1.
  • oscillation circuit OC 1 includes a plurality of delay circuits DC 11 to DC 1W .
  • the delay circuits DC 11 to DC 1W correspond to the unit data comparison circuits UC 11 to UC 1W , respectively.
  • the delay circuits DC 11 to DC 1W are connected in series. Among the plurality of delay circuits DC 11 to DC 1W connected in series, the output terminal of the delay circuit DC 11 located at the end is connected to the output node N10. The input terminal of the delay circuit DC1W located at the other end is connected to the output terminal of the NAND gate 300.
  • NAND gate 300 is responsible for starting the oscillation circuit OC 1.
  • An enable signal ENA for starting the oscillation circuit OC 1 is input to one input terminal of the NAND gate 300. The other input terminal is connected to output node N10.
  • the NAND gate 300 When the enable signal ENA is activated (H level), the NAND gate 300 functions as an inverting circuit that inverts and outputs the input signal.
  • each of the delay circuits DC 11 to DC 1W inverts the received signal and outputs it to the outside. That is, each of the delay circuits DC 11 to DC 1W also functions as the inverting circuit described above. Therefore, the oscillation circuit OC1 includes an odd number of inversion circuits (NAND gate 300 at startup and delay circuits DC 11 to DC 1W ) connected in a ring shape.
  • FIG. 4 shows a circuit diagram of a delay circuit DC 11.
  • the delay circuit DC 11 includes a plurality of inverters I10 ⁇ I14, and a stage number selection circuit SE to select the number of stages of inverters.
  • the stage number selection circuit SE includes two transfer gates TG10 and TG11.
  • the transfer gate TG10 is turned on when receiving an H level signal path_ena and an L level signal path_enaq. That is, when the reference bit data D outputted from the corresponding unit data comparator circuit UC 11 and search bit data CAM does not match, the transfer gate TG10 is turned on.
  • the transfer gate TG11 is turned on when receiving an L level signal path_ena and an H level signal path_enaq. That is, when the reference bit data D matches the search bit data CAM, the switch circuit TG11 is turned on.
  • a plurality of inverters I10 to I14 are connected in series.
  • a transfer gate TG10 is connected between the inverter I13 and the inverter I14.
  • the switch circuit TG11 is connected between the input terminal of the inverter I10 and the input terminal of the inverter I14.
  • Number selection circuit SE selects the number of stages of inverters in accordance with the comparison result of the corresponding unit data comparator circuit UC 11. As a result of the comparison in the unit data comparison circuit UC11, when the reference bit data D matches the search bit data CAM, the transfer gate TG10 is turned off and TG11 is turned on. Therefore, the input signal of the delay circuit DC11 is output to the outside via the one-stage inverter I14.
  • the transfer gate TG10 is turned on and the TG11 is turned off. Therefore, the input signal of the delay circuit DC11 is output to the outside via a five-stage inverter. That is, the delay time becomes longer when the reference bit data D and the search bit data do not match.
  • the delay circuit DC11 selects either a path with a small number of inverter stages (short path), a path with a large number of inverter stages (long path), or a short path or a long path according to the Hamming distance between the reference bit data and the search bit data. And a stage number selection circuit for selection.
  • the other delay circuits DC 12 to DC 1W have the same configuration as that of the delay circuit DC 11 . Therefore, in the oscillator circuit OC 1, more reference data stored W bit wide storage circuits S 1 is similar to the search data of W bits wide, i.e., as the distance between the reference data and the search data is small, the inverter The number of steps is reduced. This is because the number of data unit comparison circuits UC 1j that output the L-level signal path_ena and the H-level signal path_enaq is relatively large. The smaller the number of inverter stages, the shorter the delay time. Therefore, the oscillation circuit OC1 outputs the high oscillation frequency pulse signal P 1.
  • the oscillation circuit OC1 outputs a low oscillating frequency pulse signal P 1.
  • the transmission circuit OC1 outputs a pulse signal P1 having an oscillation frequency corresponding to the distance between the reference data of the storage circuit S1 and the search data.
  • the oscillation circuit OC1 reduces the number of inverter stages to be used as the distance between the reference data and the search data is smaller. Therefore, the pulse signal P1 having a higher oscillation frequency is output as the reference data is similar to the search data.
  • Each of the oscillation circuits OC 2 to OC R has the same configuration as the oscillation circuit OC 1 . Therefore, among the oscillation circuits OC 1 to OC R , the reference data most similar to the search data is stored in the storage circuit S i corresponding to the oscillation circuit OC i that has output the pulse signal P i having the maximum oscillation frequency. Yes.
  • NAND gate 300 receives the signal on node N10 and enable signal ENA, and outputs a NAND logic operation result to delay circuit DC1W . As described above, the NAND gate 300 starts or stops the oscillation circuit OC 1 according to the enable signal ENA. When the enable signal ENA is inactive (L level), the NAND gate 300 always outputs an H level signal. Therefore, the signal output from the oscillation circuit OC 1 is constant at H level. That is, the oscillation circuit OC 1 does not output a pulse signal.
  • WTA circuit 20 receives the pulse signal P 1 ⁇ P R from the oscillator circuit OC 1 ⁇ OC R. Then, based on the oscillation frequency of the pulse signals P 1 ⁇ P R, to determine the most similar reference data to the search data (Winner).
  • WTA circuit 20 includes a plurality of decision circuits JC 1 ⁇ JC R, a precharge circuit 30, a latch instruction node N40. Each determination circuits JC 1 ⁇ JC R are connected to the latch instruction node N40.
  • the precharge circuit 30 When the precharge circuit 30 receives an enable signal ENAQ which is an inverted signal of the enable signal ENA, the precharge circuit 30 supplies and charges the latch instruction node N40. As a result, the voltage of latch instruction node N40 rises to the H level (VDD).
  • Determination circuit JC 1 receives the output signal of corresponding oscillation circuit OC 1 .
  • Determination circuit JC 2 receives the output signal of oscillation circuit OC 2 .
  • the judgment circuit JC 3 ⁇ JC R receives the output signal of the oscillation circuit OC 3 ⁇ OC R respectively.
  • the determination circuit JC1 includes an inverter I20, a delay circuit 251, a latch circuit 252, a discharge circuit 250, and a clock generation circuit 253.
  • Inverter I20 receives the output signal of the oscillator circuit OC 1, and outputs to the node N30 is inverted.
  • the discharge circuit 250 is composed of an n-type MOS transistor.
  • the n-type MOS transistor is connected between the latch instruction node N40 and the GND node to which the ground voltage is supplied, and its gate is connected to the node N30.
  • Discharge circuit 250 discharges latch instruction node N40 when an H level signal is input to the gate of the n-type MOS transistor. That is, when the determination circuit JC 1 receives the pulse signal P 1 , the discharge circuit 250 reduces the voltage level of the latch instruction node N 40 to the ground voltage (L level).
  • the clock generation circuit 253 outputs the clock signal CLK when the latch instruction node N40 becomes L level.
  • the clock generation circuit 253 includes an inverter I21. The input terminal of inverter I21 is connected to latch instruction node N40. Clock generation circuit 253 outputs an H level clock signal CLK when latch instruction node N40 attains an L level.
  • the latch circuit 252 is composed of a D flip-flop. Latch circuit 252, upon receiving the H-level clock signal CLK, and latches the output signal of the inverter I20, and outputs a determination signal JS 1 to the outside.
  • Delay circuit 251 when the pulse signal P 1 from the oscillation circuit OC 1 is output, adjusted to the inverted signal of the pulse signal P 1 is inputted to the latch circuit 252 when the clock generation circuit 253 outputs a clock signal To do.
  • the delay circuit 251 may not be provided.
  • Judgment circuit JC 2 ⁇ JC R has the same configuration as the judgment circuit JC 1.
  • Discharge circuit 250 and the clock generation circuit 253 of the judgment circuits JC 1 ⁇ JC R are both connected to a latch instruction node N40. Therefore, if the discharge of any of the decision circuit discharge circuit 250 latch instruction node N40 of JC, all of the decision circuit JC 1 ⁇ JC R of the clock generation circuit 253 outputs a clock signal CLK of the H level.
  • the pulse signals P 1 ⁇ P R is constant at H level.
  • the oscillation circuit OC 2 among the oscillation circuits OC 1 to OC R outputs a pulse signal P 2 having the maximum oscillation frequency.
  • the output signal of the oscillator circuit OC 2 is faster than the output signal of the other oscillator circuit OC i, the voltage level changes from H level to L level. Therefore, out of the discharge circuits 250 in each determination circuit JC i , the discharge circuit 250 of the determination circuit JC 2 operates earliest and sets the latch instruction node N40 to the L level.
  • the latch circuit 252 of the determination circuit JC 2 receives a signal of H level.
  • the latch circuit 252 of the other judgment circuit JC 1, JC 3 ⁇ JC R has received the L level signal.
  • the clock generation circuit 253 in each judgment circuit JC i outputs the H level of the clock signal CLK at once. Therefore, only the latch circuit 252 in the judgment circuit JC 2 latches the H level signal, other judgment circuit JC 1, JC 3 ⁇ latch circuit 252 in the JC R latches the L level signal.
  • the judgment circuit JC 2 outputs an H level judgment signal JS 2 showing a Winner, other judgment circuit JC 1, JC 3 ⁇ JC R determination of L level indicating Loser signal JS 1, JS 3 and outputs the ⁇ JS R.
  • the associative memory 100 generates a pulse signal having an oscillation frequency corresponding to the distance between the reference data and the search data. Then, based on the oscillation frequency of the pulse signal, reference data to be Winner is determined.
  • the oscillation circuit OC i includes a plurality of stages of inverters. Even if the characteristics of the transistor elements constituting the inverter vary, the influence of the characteristics variation can be suppressed because there are a plurality of inverter stages. That is, even if the characteristics of the transistor elements vary, it is possible to suppress variations in the oscillation frequency.
  • FIG. 6 is a graph showing the relationship between the number of inverter stages in the oscillation circuit OCi and variations in oscillation frequency.
  • the graph in FIG. 6 was obtained by the following method. First, oscillator circuits with 17, 33, 65, and 129 inverter stages were fabricated, respectively. The gate length of the CMOS transistor used was 90 nm.
  • a pulse signal was generated for each manufactured oscillation circuit using various power supply voltages.
  • the oscillation frequency of the generated pulse signal was measured.
  • the average value of the measured oscillation frequency was normalized as 1, and the standard deviation was obtained.
  • the vertical axis in FIG. 6 indicates the standard deviation (%) of each oscillation circuit. Referring to FIG. 6, it can be seen that the variation in the oscillation frequency is suppressed as the number of inverter stages is increased.
  • the associative memory 100 As described above, the associative memory 100 according to the first embodiment, the WTA circuit 20, based on the oscillation frequency of the pulse signals P 1 ⁇ P R, to determine the reference data as a Winner. Therefore, a pulse signal P i having the maximum oscillation frequency, as the difference between the oscillation frequency of a pulse signal P i having a high oscillation frequency in the second large, less prone to false detection of Winner.
  • the associative memory 110 newly includes a frequency dividing unit 35 between the memory unit 10 and the WTA circuit 20 as compared with the associative memory 100.
  • Other configurations of the associative memory 110 are the same as those of the associative memory 100.
  • Frequency divider 35 is provided with a plurality of frequency divider (Frequency Divider) FD 1 ⁇ FD R.
  • Other configurations of the associative memory 110 are the same as those of the associative memory 100.
  • the frequency dividing circuit FD 1 receives the pulse signal P 1 of the oscillation circuit OC 1 . Then, divide the frequency of the pulse signal P 1 by a predetermined division ratio. In this example, the frequency dividing circuit FD 1 divides the pulse signal P 1 by 1.5. However, the frequency division ratio is not limited to 1.5. Dividing the pulse signal P 2 ⁇ P R at another frequency divider circuit FD 2 ⁇ FD R same dividing ratio is also the frequency dividing circuit FD 1.
  • Each determination circuits JC 1 ⁇ JC R in WTA circuit 20 receives the frequency-divided pulse signals P 1 ⁇ P R. WTA circuit 20 based on the frequency-divided pulse signals P 1 ⁇ P R, to determine the Winner.
  • Dividing the pulse signal P i by a predetermined frequency division ratio increases the difference between the waveform change of the pulse signal P i having the highest oscillation frequency and the waveform change of the pulse signal P i having the next highest oscillation frequency. Can do. This point will be described with reference to FIG.
  • FIG. 8 is a diagram illustrating the waveforms of the pulse signals P 1 and P 2 when each frequency dividing circuit FD i divides the pulse signal P i at a frequency division ratio of 1.5.
  • P 1 (FD 1 ) in the figure indicates the pulse signal P 1 output from the frequency dividing circuit FD 1 .
  • P 2 (FD 2 ) in the figure indicates the pulse signal P 2 output from the frequency dividing circuit FD 2 .
  • P 1 in the figure indicates the pulse signal P 1 is inputted to the frequency divider FD 1
  • P 2 in the figure indicates the pulse signal P 2 to be inputted to the frequency divider FD 2.
  • the highest frequency of the pulse signal P 1 and the frequency of the P 2 is the next highest.
  • the time difference between the first waveform change between the pulse signals P 1 and P 2 before input to the frequency divider is Td1.
  • the time difference of the first waveform change between the divided pulse signals P 1 (FD 1 ) and P 2 (FD 2 ) is Td2.
  • the time difference Td2 is larger than the time difference Td1.
  • the frequency dividing circuit FD 1 ⁇ FD R increases and the first waveform change of the pulse signal as a Winner, then the time difference between the first waveform change in the high frequency pulse signal. Therefore, the WTA circuit 20 can determine the winner more accurately.
  • the WTA circuit 20 of the associative memory 100 as shown in FIG. 5, all of the decision circuit JC 1 ⁇ JC R are connected to one latch instruction node N40.
  • Latch instruction node N40 of WTA circuit 20 is longer in order to be connected to all the decision circuits JC 1 ⁇ JC R. Therefore, the load capacity of latch instruction node N40 is large. Therefore, it takes time for the voltage level of latch instruction node N40 to drop to the ground voltage after the n-type MOS transistor in discharge circuit 250 is turned on. If it takes time to lower the voltage level of the latch instruction node N40, it takes time to determine Winner.
  • the associative memory according to the present embodiment includes a new WTA circuit 25 shown in FIG. 9 instead of the WTA circuit 20.
  • Other configurations are the same as those of the associative memory 100.
  • WTA circuit 25 includes a plurality of determination blocks JB.
  • the plurality of determination blocks JB are connected to a plurality of stages in a tournament manner.
  • the tournament formula has n stages from the first stage which is the lowest stage to the nth stage which is the uppermost stage (n is a natural number of 2 or more).
  • a plurality of decision blocks JB1 arranged in a first stage falls lowermost includes R number of first pulse determination circuits PJC 1 ⁇ PJC R.
  • the R first pulse determination circuits PJC 1 to PJC R are divided into a plurality of determination blocks JB1.
  • Each determination circuit JB1 includes less than R first pulse determination circuits PJC i and a pulse reception determination node N50.
  • Each of the first pulse determination circuits PJC 1 ⁇ PJC R is compared with the judgment circuit JC 1 ⁇ JC R in FIG. 5, no clock generation circuit 253.
  • the other structure is the same as the judgment circuit JC 1 ⁇ JC R.
  • Each first pulse determination circuits PJC 1 ⁇ PJC R receive respectively a pulsed signal P 1 ⁇ P R from the corresponding oscillating circuit OC 1 ⁇ OC R.
  • Each determination block JB 1 further includes a pulse reception determination node N50 and a precharge circuit 30.
  • the precharge circuit 30 charges the pulse acceptance determination node N50.
  • Pulse acceptance determination node N50 a plurality of first pulse determination circuit PJC i contained in decision block JB 1 (wherein, R less than pieces) are connected to. More specifically, it is connected to the discharge circuit 250 in each first pulse determination circuit PJC i .
  • Pulse acceptance determination node N50 has a smaller load capacity than latch instruction node N40.
  • each of the plurality of determination blocks JB2 arranged in the second stage includes a precharge circuit 30, a pulse reception determination node N50, and a plurality of second pulse determination circuits PJ.
  • Each second pulse determination circuit PJ is connected to a pulse reception determination node N50 in the corresponding determination block JB1.
  • the second pulse determination circuit PJ includes an inverter I20 and a discharge circuit 250.
  • the second pulse determination circuit PJ is connected to the pulse reception determination node N50 in the determination block JB2 to which the second pulse determination circuit PJ belongs. More specifically, discharge circuit 250 in second pulse determination circuit PJ is connected to pulse reception determination node N50.
  • the precharge circuit 30 charges the pulse acceptance determination node N50.
  • each determination block JB arranged in the third to n ⁇ 1th stages is the same.
  • the second pulse determination circuit PJ in the determination block JB arranged in the (n-1) th stage is a corresponding determination block JB among the plurality of determination blocks JB arranged in the previous stage, that is, the (n-2) th stage.
  • One determination block JBn is arranged in the nth stage which is the uppermost stage.
  • the determination block JBn newly includes a clock generation circuit 31 as compared with the determination block JB2.
  • Other configurations are the same as those of the determination block JB2.
  • the clock generation circuit 31 outputs the clock signal CLK when the pulse reception determination node N50 becomes L level.
  • the configuration in the clock generation circuit 31 is the same as that of the clock generation circuit 253 in FIG. That is, the clock generation circuit 31 includes the inverter I21.
  • the WTA circuit 25 includes the determination blocks JB1 to JBn connected in a multi-stage tournament system from the first stage to the n-th stage.
  • the number of first or second pulse determination circuits connected to each pulse reception determination node N50 is smaller than the number of determination circuits connected to the latch instruction node N40 in FIG. Therefore, the load capacity of each pulse reception determination node N50 is smaller than the load capacity of latch instruction node N40. Therefore, the time taken to lower pulse acceptance determination node N50 from the H level to the L level can be made shorter than that of latch instruction node N40.
  • the determination blocks JB1 to JBn are arranged in the tournament type, the load capacity of the pulse reception determination node N50 can be reduced. Therefore, after receiving a pulse signal P i of the highest frequency in decision block JB1 is possible to shorten the time until the clock signal CLK. In other words, the determination time of Winner can be shortened.
  • the delay circuit DC ij is provided for each data unit storage circuit US ij .
  • the delay circuit DC ij increases the number of transistor elements used. Therefore, one delay circuit may correspond to a plurality of data unit storage circuits.
  • Associative memory in place of the oscillator circuit OC 1 ⁇ OC R, includes a new oscillator circuit OSC 1 ⁇ OSC R.
  • Other configurations are the same as those of the associative memory 100.
  • the oscillation circuit OSC 1 compared with the oscillation circuit OC 1, the delay circuit DC 11, DC 12, in place of ⁇ ⁇ ⁇ DC 1W, the delay circuit DLC 11, DLC 12, ⁇ ⁇ ⁇ DCL 1T (T is a natural number of 1 or more) and distance determination circuits DJ 11 to DJ 1T are provided.
  • the distance determination circuits DJ 11 to DJ 1T correspond to the delay circuits DLC 11 to DLC 1T .
  • Other configurations are the same as those of the oscillation circuit OC1.
  • the activated NAND gate 300 inverts the input signal.
  • Each of the delay circuits DLC 11 to DLC 1T also inverts the input signal. Therefore, the NAND gate 300 and the delay circuits DLC 11 to DLC 1T function as an inverting circuit. That is, the oscillation circuit OSC 1 includes an odd number of inversion circuits. Therefore, an even number of delay circuits DLC 11 to DLC 1T are included. An odd number of inverting circuits (NAND gate 300 and delay circuits DLC 11 to DLC 1T ) are connected in series in a loop.
  • Each of the delay circuits DLC 11 to DLC 1T determines the oscillation frequency of the pulse signal P 1 based on the comparison result of the two data unit comparison circuits UC ij .
  • the distance determination circuits DJ 11 to DJ 1T receive the comparison results (two signals path_ena and signal path_enaq) from the two data unit comparison circuits UC ij . Then, the Hamming distance is obtained from the comparison result. Then, a signal corresponding to the obtained Hamming distance is output to the corresponding delay circuits DLC 11 to DLC 1T .
  • the delay circuits DLC 11 to DCL 1T and the NAND gate 300 are connected in series in a loop shape.
  • the output terminal of the delay circuit DLC 11 located at the end is connected to the output node N10.
  • the input terminal of the delay circuit DLC 1T located at the other end is connected to the output terminal of the NAND gate 300.
  • the configuration of the delay circuit DLC 11 is shown in FIG.
  • the delay circuit DLC 11 includes a first delay stage 70, a second delay stage 71, an inverter I 71, and a stage number selection circuit 72.
  • the stage number selection circuit 72 includes transfer gates TG71, TG72, and TG73.
  • the stage number selection circuit 72 selects the number of inverter stages to be used in accordance with the signals S0 to S2 from the distance determination circuit DJ11. In other words, the stage number selection circuit 72 selects a delay time (oscillation frequency) according to the Hamming distance.
  • Each of the first delay stage 70 and the second delay stage 71 includes an even number of inverters connected in series.
  • the first delay stage 70 receives and delays the output of the preceding delay circuit DLC 12 .
  • the second delay stage 71 receives the output of the first delay stage 70 and delays it.
  • Transfer gates TG71 to TG73 in the stage number selection circuit 72 are connected in parallel. Transfer gates TG71 to TG73 are each composed of an n-type MOS transistor and a p-type MOS transistor.
  • the transfer gate TG71 is turned on when the corresponding distance determining circuit DJ 11 receives the output signal / S0 of H level of the output signal S0 and L level from.
  • the output signal / S0 is an inverted signal of the signal S0.
  • the delay circuit DLC 11 passes the input signal through the transfer gate TG71 and outputs it to the inverter I71.
  • the delay circuit DLC11 supplies the input signal to the first delay stage 70. Then, the output of the first delay stage 70 is supplied to the inverter I71.
  • the oscillation circuit DLC 11 has three paths (a short path without a delay stage, a middle path having a delay stage 71, a long path having delay stages 71 and 72) and the number of stages for selecting any one of the three paths. And a selection circuit 72. Each path has a different delay time.
  • the number of inverter stages is five (first delay stage 70 + inverter I71).
  • the delay circuit DLC 11 selects the long path.
  • the number of inverter stages is nine (first delay stage 70, second delay stage 71, and inverter I71).
  • delay circuits DLC 12 to DLC 1T have the same configuration as the delay circuit DLC 11 .
  • the delay circuit DLC includes two delay stages and can set three delay times according to the number of delay stages to be used.
  • the delay circuit DLC selects the number of delay stages to be used according to two comparison results obtained from two reference bit data and two search bit data. As a result, one delay time is selected from the three delay times.
  • the delay circuit DLC can set a delay time according to L (L is a natural number of 2 or more) reference bit data, search bit data, and the comparison result. More specifically, the delay circuit DLC includes a plurality of delay stages and can set L + 1 delay times according to the number of delay stages to be used. The delay circuit DLC selects one delay time (path) from the L + 1 delay times (paths) according to the L comparison results. The signal input to the delay circuit DLC is delayed by the selected delay time and output to the next delay circuit DLC. In short, when the L reference bit data and the search bit data are compared, the delay circuit DLC includes L + 1 paths. Each path has a different delay time.
  • the first stage inverters of the first delay stage 70 and the second delay stage 71 may be tri-state inverters.
  • the tri-state inverter I701 is activated when it receives the H level signal S1 or S2.
  • Tri-state inverter I702 is activated when it receives signal S2 at H level.
  • the input nodes of the second-stage inverters of the delay stages 70 and 71 are in a floating state. Therefore, the node level may fluctuate due to noise or the like, and the inverter may operate. As shown in FIG. 13, if NOR gates 721 and 722 are used instead of the tri-state inverters I701 and I702, the input node of the second-stage inverter does not float. Therefore, it is possible to prevent the second and subsequent inverters from operating due to the influence of noise or the like.
  • NOR gate 721 When the NOR gate 721 receives the L level signal / S1 or the L level signal / S2, the NOR gate 721 operates as a NOT gate (inverter). NOR gate 722 operates as a NOT gate when it receives L level signal / S2.
  • a dummy NOR gate 722 may be disposed between the second delay stage 71 and the transfer gate TG73.
  • the capacitance related to the wiring of each path can be made the same. Therefore, the design of the delay circuit of each path can be made the same at the time of design.
  • the associative memory 100 described above searches for reference data closest to the search data. However, it may be preferable that a plurality of reference data close to the search data can be searched in the order close to the search data.
  • the associative memory 200 has a feedback circuit 50 newly as compared with the associative memory 100.
  • Other configurations are the same as those of the associative memory 100.
  • the feedback circuit 50 includes a plurality of feedback circuits 51 to 5R.
  • the feedback circuits 51 to 5R are activated in response to the control signal CON.
  • the feedback circuit 51 When the feedback circuit 51 receives the determination signal JS 1 at the H level, it outputs an H level feedback signal.
  • the output node of the oscillating circuit OC 1 is charged upon receiving an H level feedback signal. That is, when feedback circuit 51 receives determination signal JS 1 at the H level, it charges the output node of oscillation circuit OC 1 . Therefore, the output signal of the oscillation circuit OC 1 is fixed at the H level. Be if pulse signal P 1 is output, the pulse signal P 1 is disabled.
  • the feedback circuit 51 does not charge the output node of the oscillation circuit OC 1 when the determination signal JS 1 is at L level. However, once the determination signal JS 1 becomes H level, the H level feedback signal is continuously supplied to the output node of the oscillation circuit OC 1 thereafter.
  • the operation of the associative memory 200 having the above configuration is as follows.
  • the associative memory 200 starts the first search. At this time, the associative memory 200 searches for reference data most similar to the search data.
  • the search data is input to the comparator circuits C 1 ⁇ C R. Thereafter, the enable signal ENA becomes H level, the oscillation circuit OC 1 ⁇ OC R starts operating.
  • the determination signal JS 2 becomes H level
  • the other judgment signal JS 1, JS 3 ⁇ JS R is L level.
  • the feedback circuits 51 to 5R are activated in response to the control signal CON.
  • Feedback circuit 52 receives the judgment signal JS 2 H level, to charge the output node of the oscillation circuit OC 2. As a result, the voltage level of the output node of oscillation circuit OC2 is maintained at the H level. Therefore, the pulse signal P 2 output from the oscillation circuit OC 2 is disabled.
  • the enable signal ENA input to the oscillation circuits OC 1 to OC R once becomes inactive (L level).
  • the associative memory 200 executes a second search.
  • the enable signal ENA becomes H level again. Therefore, the oscillation circuit OC 1 ⁇ OC R is based on the same comparison result as the first time, again outputs a pulse signal P 1 ⁇ P R.
  • the output node of the oscillation circuit OC 2 is maintained at the H level by the feedback circuit 52.
  • the pulse signal P 2 is invalidated, it remains at the output signal H level of the oscillation circuit OC 2. Therefore, WTA times circuit 20 based on the pulse signal P 2 other signals P 1 other than, P 3 ⁇ P R, to determine the reference data closest to the search data.
  • the judgment signal JS 1 becomes H level
  • the other signal JS 2 ⁇ JS R has an L level.
  • the reference data corresponding to the signal JS 1 that has become H level by the second search (that is, the reference data stored in the storage circuit S 1 ) corresponds to the second reference data similar to the search data.
  • the feedback circuit 51 charges the output node of the oscillation circuit OC 1 . In short, the feedback circuit 51 invalidates the pulse signal P 1 of the oscillation circuit OC 1 .
  • the oscillation circuits OC 1 and OC 2 cannot output a pulse signal. Therefore, from the other reference data already excluding reference data retrieved (reference data storage circuit S 1 and S 2), the reference data which is most similar to the search data is searched. The retrieved reference data corresponds to the third closest data to the retrieved data.
  • the j-th search (j is an integer satisfying 1 ⁇ j ⁇ k, k is an integer equal to or greater than 2), and the determination signal JSi of the H level is received by the j-1th search.
  • the output of the oscillation circuit OCi corresponding to the output determination circuit JCi is invalidated.
  • the content addressable memory 200 can search a plurality of reference data closer to the search data in the order closer to the search data by invalidating the output of the oscillation circuit OC i using the feedback circuit 50.
  • only one reference data can be searched in one search process. Therefore, when searching for a plurality of reference data close to the search data, the search processing must be executed as many times as the desired number of reference data.
  • FIG. 16 shows a functional block diagram of the associative memory 300 according to the present embodiment.
  • the associative memory 300 includes a counter unit 40 in place of the WTA circuit 20 as compared with the associative memory 100.
  • the counter unit 40 includes a plurality of counter circuits 41 to 4R.
  • the counter circuit 41 receives the pulse signal P 1 of the oscillator circuit OC 1. Then, it counts the pulses of the pulse signal P 1. When the count number reaches a predetermined number CT (for example, 10), the count circuit 41 outputs a determination signal JS 1 at H level.
  • a predetermined number CT for example, 10
  • the counter circuits 42 ⁇ 4R respectively receive the pulse signals P 2 ⁇ P R of the oscillation circuit OC 2 ⁇ OC R. Then, it counts the pulses of the pulse signals P 2 ⁇ P R. When the count reaches a predetermined number CT, the counter circuits 42 ⁇ 4R are sequentially outputs a determination signal JS 2 ⁇ JS R H level.
  • the oscillation circuit OC 1 ⁇ OC R is as reference data corresponding to similar to the search data, increasing the oscillation frequency of the pulse signals P 1 ⁇ P R.
  • Counter circuits 41 ⁇ 4R the oscillation frequency is fast enough experience high pulse signals P 1 ⁇ P R, and outputs a determination signal JS 1 ⁇ JS R H level.
  • the determination signal JS 1 ⁇ JS R is in the order of reference data corresponding to similar to the search data, it rises to the H level sequentially.
  • the counter unit 40 Based on the output order of the H level judgment signal JS 1 ⁇ JS R, the counter unit 40, the reference data close to the search data can be determined in order of proximity to the search data.
  • the associative memory 300 can search a plurality of reference data close to the search data in one search process.
  • the associative memory when the Hamming distance is applied has been described.
  • the associative memory according to the present invention can also be applied to the Manhattan distance.
  • the associative memory 400 includes the memory array unit 10 and the WTA circuit 20 in the same manner as the associative memory 100.
  • the memory array unit 10 includes a memory unit 1, a row decoder 2, a column decoder 3, a read / write circuit 4, and a search data storage circuit 5.
  • Each of the unit data storage circuits US 11 to US 1W , US 21 to US 2W ,..., US R1 to US RW in the memory unit 1 stores reference data in units of K bits.
  • the unit data storage circuit US ij (1 ⁇ j ⁇ w) arranged in the i-th row (1 ⁇ i ⁇ R).
  • the data stored in the unit data storage circuit US ij is referred to as reference data REF ij . That is, the reference data REF i stored in the i-th row is composed of REF i1 , REF i2 ,... REF ij ,.
  • search data input from the outside is SW.
  • Search data SW is, SW 1, SW 2, ⁇ SW j, consists of ⁇ SW w.
  • the unit data storage circuit US ij stores the k-bit reference data REF ij . Therefore, the unit data storage circuit US ij includes k storage circuits (for example, SRAM elements). Each storage circuit stores reference bit data (1st digit reference bit data to most significant (kth) reference bit data) of each digit of the reference data REF ij .
  • the unit data comparison circuit UC ij calculates the Manhattan distance between the reference data REF ij (k bits) stored in the corresponding unit data storage circuit US ij and the search data SW j (k bits).
  • the unit data storage circuit US 11 includes K storage circuits SRAM 11 to SRAM 1K .
  • the storage circuit SRAM 11 stores reference bit data of the first digit of the reference data REF 11 .
  • the reference bit data of the K-th digit of the reference data REF 11 is stored in the storage circuit SRAM 1K .
  • Unit data comparator circuit UC 11 includes a K-bit subtractor 410, an absolute value calculation circuit 420.
  • the K-bit subtractor 410 and the absolute value calculation circuit 420 calculate the absolute value of the difference between the search data SW 1 and the reference data REF 11 .
  • the K-bit subtractor 410 makes a difference between the reference bit data in the first digit of the reference data REF 11 and the search bit data in the first digit of the search data SW 1 . Then, the absolute value calculation circuit 420 converts the difference value into an absolute value and outputs it as output signals OJ1 and / OJ1.
  • the output signal / OJ1 is an inverted signal of the output OJ1.
  • the K bit subtractor 410 makes a difference between the reference bit data of the second digit of the reference data REF 11 and the search bit data of the second digit of the search data SW 1 .
  • the absolute value calculation circuit 420 converts the difference value into an absolute value and outputs it as output signals OJ2 and / OJ2.
  • the K-bit subtractor 410 and the absolute value calculation circuit 420 similarly calculate the bit data after the third digit of the reference data REF 11 , and output the output signals OJ3 to OJK and / OJ3 to / OJK.
  • the comparison results (for the output signals OJ1 to OJK ⁇ W) of the reference data REF 11 to REF 1W and the search data SW 1 to SW w stored in the data unit storage circuits US 11 to US 1W in the same first row are all Are input to the same oscillation circuit OCM 1 .
  • the oscillation circuit OCM 1 determines the oscillation frequency of the output pulse signal P 1 according to the comparison result of the comparison circuit C 1 , that is, the Manhattan distance between the obtained reference data REF 1 and the search data SW.
  • the oscillation circuit OCM 1 includes an even number of delay circuits DL101 to DL10W and a NAND gate 300.
  • the even number of delay circuits DL101 to DL10W and the NAND gate 300 function as an inverting circuit that inverts an input signal during operation. Therefore, the oscillation circuit OCM1 includes a plurality of inverting circuits connected in series in a loop shape.
  • the output of the delay circuit DL101 is output to the outside and input to the NAND gate 300. That is, the delay circuits DL101 to DL10W and the NAND gate 300 constitute a ring oscillator.
  • Delay circuit DL101 corresponds to a data unit storage circuit US 11.
  • Delay circuit DL102 corresponds to a data unit storage circuit US 12.
  • the delay circuits DL103 to DL10W correspond to the data unit storage circuits US 13 to US 1W , respectively.
  • Delay circuit DL101 includes a plurality of delay circuits DJ 1 to DJ K and an inverter I50. Delay circuits DJ 1 to DJ K and inverter I50 are connected in series.
  • the delay circuit DJ 1 includes a delay stage DEL 1 and a stage number selection circuit 55.
  • the delay stage DEL1 is composed of a plurality of inverters connected in series.
  • the delay circuit DJ 1 selects the number of inverter stages to be used according to the output signal OJ1. In other words, the delay circuit DJ 1 selects whether to use the delay stage DEL1 according to the signal OJ1.
  • Distance determination circuit DJ 1 receives an output from delay circuit DL102. Then, based on the unit signal outputted from the data comparator circuit UC 11 OJ1 and / OJ1, among the reference data REF 11 stored in the unit data storage circuit US 11, determine the distance of the reference bit data of the first digit .
  • the first digit of the reference bit data of the reference data REF 11 is, when matching the first digit of the search bit data of the search data SW 1, signal OJ1 becomes H level, the signal / OJ1 has an L level.
  • the stage number selection circuit 55 includes transfer gates GT10 and GT11. Transfer gates TG10 and TG11 are connected in parallel. Delay stage DEL1 is connected between the input terminal of the delay circuit DJ 1 and transmission gate GT10.
  • the transfer gate TG 11 When the reference bit data of the first digit of the reference data REF 11 matches the search bit data of the first digit of the search data SW 1 , the transfer gate TG 11 is turned on and TG 10 is turned off. In this case, the input signal passes through the transfer gate GT11 without passing through the delay stage DEL1, and is output to the outside.
  • the transfer gate GT10 is turned on.
  • the input signal is delayed by the delay time ⁇ T1 set by the delay stage DEL1, and output to the outside.
  • the delay circuit DJ 1 can set two delay times, and selects the longer one of the two delay times when the reference bit data and the search bit data are different.
  • the delay circuits DJ 2 to DJ K operate in the same manner as the delay circuit DJ 1 .
  • Each of the delay circuits DJ2 to DJk can set two types of delay times, and selects one of the two types of delay times according to the comparison result between the reference bit data and the search bit data. Therefore, the delay circuit DL101 can set 2 k delay times based on the comparison result between the k-bit reference bit data and the k-bit search bit data. In other words, the delay circuit DL101 has a path 2 k as having different delay times from each other, selects a path according to the Manhattan distance between the k number of reference bit data and the k search bit data.
  • the delay time of the delay stages in the delay circuit DJ 2 is twice the delay stage DEL 1. That is, the delay time ⁇ T is set longer as the digit increases. Thus, a longer delay time is set as the digit is closer to the most significant bit. That is, the longer the Manhattan distance, the longer the delay time.
  • Each of the delay circuits DL102 to DL10W has the same configuration as the delay circuit DL101 and operates in the same manner. Therefore, the oscillation circuit OCM 1 outputs a signal having an oscillation frequency corresponding to the Manhattan distance between the reference data stored in the storage circuit S1 and the search data. Specifically, a signal with a higher oscillation frequency is output as the Manhattan distance between the reference data and the search data is shorter.
  • the configuration and operation of the storage circuit S 1 , the comparison circuit C 1, and the oscillation circuit OCM 1 in the first row have been described.
  • the configurations and operations of the storage circuits S 2 to S R , the comparison circuits C 2 to C R and the oscillation circuits OCM 2 to OCM R in the second and subsequent rows are the same as those of the storage circuit S 1 , the comparison circuit C 1 and the oscillation circuit OCM. Same as 1 .
  • the associative memory 400 can change the oscillation frequency according to the distance.
  • the associative memory according to the present invention can be applied not only to the Hamming distance and the Manhattan distance but also to the Euclidean distance.
  • the configuration of the associative memory applied to the Euclidean distance is the same as that of the associative memory 400.
  • Each of the unit data storage circuits US 11 to US 1W , US 21 to US 2W ,..., US R1 to US RW in the memory unit 1 stores reference data in units of K bits.
  • the reference data REF i stored in the storage circuit Si in the i-th row the data stored in the unit data storage circuit US ij is referred to as reference data REF ij . That is, the reference data REF i stored in the i-th row is composed of REF i1 , REF i2 ,... REF ij ,.
  • search data input from the outside is SW.
  • Search data SW is, SW 1, SW 2, ⁇ SW j, consists of ⁇ SW w.
  • the unit data storage circuit US ij stores K-bit reference data REF ij . Therefore, the unit data storage circuit US ij includes K storage circuits (SRAM elements). Each storage circuit stores bit data of each digit of the reference data REF ij (from the first digit bit data to the most significant (kth) bit data).
  • the unit data comparison circuit UC ij calculates the Euclidean distance between the reference data REF ij (k bits) stored in the corresponding unit data storage circuit US ij and the search data SW j (k bits).
  • the unit data storage circuit US 11 includes K storage circuits SRAM 11 to SRAM 1K .
  • the memory circuit SRAM 11 stores bit data of the first digit of the reference data REF 11 .
  • bit data of the K-th digit of the reference data REF 11 is stored in the storage circuit SRAM 1K .
  • Unit data comparator circuit UC 11 includes a K-bit subtractor 410, an absolute value calculation circuit 420, a comparison current signal generation circuit 430, an analog square circuit 440, an A / D converter 450.
  • the K-bit subtractor 410 and the absolute value calculation circuit 420 calculate the absolute value of the difference between the search data SW 1 and the reference data REF 11 .
  • the calculation result is converted into an analog current having a value corresponding to the absolute value by the corresponding comparison current signal generation circuit 430.
  • the converted analog current is squared by the analog square circuit 440.
  • the Euclidean distance between the reference data REF 11 and the search data SW 1 is output as an analog current value.
  • the A / D converter 450 digitally converts the output analog current. As a result, the Euclidean distance is output as n-bit digital data.
  • the oscillation circuit OCE 1 outputs a pulse signal P 1 having an oscillation frequency corresponding to the Euclidean distance, like the oscillation circuit OC 1 and the OCM 1 .
  • the oscillation circuit OCE 1 includes a delay stage composed of a plurality of inverters and a stage number selection circuit.
  • the stage number selection circuit in the oscillation circuit OCE 1 selects a smaller number of inverter stages to be used as the Euclidean distance is smaller. Therefore, the pulse signal P 1 of the high oscillating frequency as the Euclidean distance is smaller is output.
  • the operations of the other unit data storage circuits US 12 to US 1W and the unit data comparison circuits UC 12 to UC 1W in the storage circuit S 1 in the first row are also as described above. Further, the configurations and operations of the storage circuits S 2 to S R , the comparison circuits C 2 to C R, and the oscillation circuits OCE 2 to OCE R in the second and subsequent rows are the same as those of the storage circuit S 1 , the comparison circuit C 1, and the oscillation circuit OCE. Same as 1 . Therefore, the associative memory to which the Euclidean distance is applied can change the oscillation frequency according to the distance, as in the associative memory 100.
  • the WTA circuit 20 (FIG. 5) and the WTA circuit 25 (FIG. 9) have been described.
  • the WTA circuit is not limited to FIGS.
  • FIG. 22 shows another example of the WTA circuit.
  • WTA circuit 350 includes a detection circuit 351 and a plurality of determination circuits JC 11 to JC 1R .
  • Judgment circuit JC 11 corresponds to the oscillation circuit OC 1, receives the output signal of the oscillation circuit OC 1.
  • the judgment circuit JC 12 corresponds to the oscillation circuit OC 2
  • the oscillation circuit JC 1R correspond to the oscillation circuit OC R.
  • the determination circuit JC 11 does not have the discharge circuit 250 and the clock generation circuit 253 as compared with the determination circuit JC 1 .
  • Other structure is the same as the judgment circuit JC 1.
  • the configuration of the determination circuits JC 12 to JC 1R is the same as that of the determination circuit JC 11 .
  • the detection circuit 351 receives the output of the transmission circuits OC 1 to OC R and detects the pulse signal output earliest.
  • the detection circuit 351 outputs a detection signal when receiving the earliest output pulse signal. More specifically, the detection circuit 351 receives the output of the inverter I20 in each of the determination circuits JC11 to JC1R. When a pulse signal is first received from any inverter I20, a detection signal is output.
  • Latch circuit 252 in determination circuits JC 11 to JC 12 receives the output of inverter I20. That is, the output signals of the corresponding oscillation circuits OC 1 to OC R are received. When the detection signal is received, the output signals from the transmission circuits OC 1 to OC R are latched.
  • the determination circuit JC 11 When the determination circuit JC 11 receives the pulse signal earliest (that is, when the oscillation circuit OC 1 outputs a pulse signal having the highest frequency), the latch circuit 252 in the determination circuit JC 11 latches the H level signal. To do. Then, the latch circuits 252 in the other determination circuits JC 12 to JC 1R latch the L level signal. As a result, the judgment circuit JC 11 outputs a determination signal JS 1 of H level indicating the Winner, other judgment circuits JC 12 ⁇ JC 1R, outputs the determination circuits JS 2 ⁇ JS R indicating the Loser.
  • the detection circuit 350 may be a wired OR circuit that receives the output of the inverter I20 in each of the determination circuits JC 11 to JC 1R , or may be composed of a plurality of stages of OR circuits.

Landscapes

  • Dram (AREA)
  • Memory System (AREA)

Abstract

誤検索を抑制できる連想メモリを提供する。連想メモリ(100)内の保存回路(S)は参照データを保存する。比較回路(C)は外部から検索データを受け、参照データと検索データとの距離(たとえばハミング距離)を求める。発振回路(OC)は、比較回路(C1)が求めた距離に応じた発振周波数を有するパルス信号(P)を出力する。同様に、発振回路(OC~OC)は、対応する保存回路(S~S)内の参照データと検索データとの距離に応じた発振周波数を有するパルス信号(P~P)を出力する。 WTA回路(20)は、パルス信号(P~P)を受ける。そして、最も発振周波数が高いパルス信号を出力した発振回路に対応する保存回路に保存された参照データを、検索データに最も類似した参照データ(Winner)に決定する。

Description

連想メモリ
 本発明は、最小距離検索機能を有する連想メモリに関する。
 画像圧縮及び画像認識の分野において、最小距離検索機能を有する連想メモリが注目されている。連想メモリはWビット幅R個の参照データを記憶する(W及びRは自然数)。データ列(検索データ)が入力されたとき、連想メモリは、複数の参照データの中から最も類似した(距離の近い)データを検索する。
 入力されたデータ列と最も類似の参照データを見つけることは、パターンマッチングにおいて基本的な処理である(非特許文献1参照)。したがって、画像圧縮や画像認識等の情報処理において、最小距離検索連想メモリは有用である。最小距離検索連想メモリはたとえば、特許文献1に開示されている。さらに、ハミング距離、マンハッタン距離及びユークリッド距離の検索機能を有する全並列型の連想メモリが特許文献2、非特許文献2及び非特許文献3に開示されている。
特開2002-288985号公報 特開2005-209317号公報
D. R. Tveter, "The Pattern RecognitionBasis of Artificial Intelligence," Los Alamitos, CA: IEEE computersociety, 1998. H. J. Mattausch, T. Gyohten, Y. Soda, and T. Koide, "Compact Associative-Memory Architecture with Fully-Parallel Search Capability for the Minimum Hamming Distance," IEEE Journal of Solid-State Circuits, Vol. 37, pp. 218-227, 2002. H. J. Mattausch, N. Omori, S. Fukae, T.Koide and T. Gyohten, "Fully-Parrallel Pattern-Matching Engine with Dynamic Adaptibility to Hamming or ManhattanDistance," 2002 Symposium on VLSI Circuits Digest of Technical Papers, pp. 252-255, 2002. M. Ikeda, et al., "Time-domain minimum-distance detector and its application to low-power coding schema on chip- interface," Proc. of ESSCIRC '97, pp.464-467, 1998.
 従来の連想メモリは、メモリアレイ部と、Winner Line-up増幅回路(Winner Line-up Amplifier:以下、WLAという)と、Winner Take All回路(以下、WTAという)とを備える。メモリアレイ部は、行列状に配置されたメモリセルを備える。メモリアレイ部の同じ行に配列された複数のメモリセルは、Wビット幅の参照データを記憶する。メモリアレイ部はさらに、各々が各行に対応した複数の比較回路を備える。比較回路は、対応する行のメモリセルに記憶された参照データと、外部から入力された検索データとの距離に応じた比較電流信号を生成する。
 WLA回路は、各々が各比較回路に対応した複数の電流電圧変換回路を備える。各電流電圧変換回路は、対応する比較回路から出力された比較電流信号を電圧に変換する。WLA回路は、変換された複数の電圧のうち、電圧レベルが最も低い電圧をWinnerとして所定の電圧Vに増幅する。そして、それ以外の電圧をLoserとして所定の電圧Vに増幅する。ここで、Winnerは、検索データに最も類似する参照データに対応する。そして、Loserは、検索データに最も類似する参照データ以外の他の参照データに対応する。WTA回路は、WLA回路から受けた電圧をさらに増幅して出力する。連想メモリでは、電圧Vに増幅された行のメモリセルに記憶された参照データが検索データに最も類似した参照データに決定される。
 変換された複数の電圧を電圧V及び電圧Vに増幅するために、WLA回路は、各行に対応して配置されたトランジスタ素子を用いて、各電圧が所定のしきい値電圧Vrefよりも大きいか否かを判定する。そして、しきい値電圧Vrefよりも小さい電圧を電圧Vに増幅し、しきい値電圧Vrefよりも大きい電圧を電圧Vに増幅する。
 上述の電圧判定に用いられるトランジスタ素子の特性は、各行で一致している必要がある。しかしながら、トランジスタ素子の特性はどうしてもばらつく。特性が異なるトランジスタを電圧判定に用いれば、本来電圧Vに増幅されないはずの行で、電圧Vに増幅されてしまう場合が生じる。要するに、各行の比較電流信号を電圧に変換することで参照データを検索する従来の連想メモリでは、誤検索が生じる場合がある。
 本発明の目的は、誤検索を抑制できる連想メモリを提供することである。
 本発明による連想メモリは、保存手段と、比較手段と、パルス生成手段と、決定手段とを備える。保存手段は、複数の参照データを保存する。比較手段は、入力された検索データと、複数の参照データの各々とを並列に比較して、検索データと参照データとの距離を、参照データごとに求める。パルス生成手段は、求めた距離に応じた周波数を有するパルス信号を参照データごとに生成する。決定手段は、生成された複数のパルス信号の周波数に基づいて、複数の参照データのうち、検索データに最も近い参照データを決定する。
 本発明による連想メモリは、従来のように、参照データと検索データとの距離を電流値や電圧値に変換せず、距離に応じた発振周波数を有するパルス信号を生成する。距離を電流値や電圧値に変換するといったアナログ処理を行わないため、トランジスタ素子特性のばらつきに起因した誤検索が生じにくい。
 好ましくは、パルス生成手段は、複数の参照データに対応した複数の発振手段を備える。各発振手段は、検索データと対応する参照データとの距離が小さいほど、周波数の高いパルス信号を出力する。決定手段は、発振周波数の最も高いパルス信号を出力した発振手段に対応した参照データを、検索データに最も近い参照データに決定する。
 より好ましくは、決定手段はさらに、複数の発振手段に対応した複数の判定手段を備える。決定手段は、複数の判定手段のうち、発振手段からのパルス信号を最も早く受信した判定手段に基づいて、検索データに最も近い参照データを決定する。
 この場合、電流電圧差ではなく、パルス信号を受ける時間差に基づいて検索データに最も近い参照データを決定する。そのため、トランジスタ素子特性のばらつきの影響を受けにくい。
 好ましくは、連想メモリはさらに、発振回路に対応した複数の分周手段を備える。各分周手段は、対応する発振手段から出力されたパルス信号を所定の分周比で分周して、対応する判定手段に出力する。
 この場合、決定手段は、最も早く受信したパルス信号をより精度良く特定できる。
 好ましくは、決定手段はさらに、複数の判定手段に接続されたラッチ指示ノードと、ラッチ指示ノードを充電する充電手段とを備える。各判定手段は、放電手段と、ラッチ手段とを備える。放電手段は、対応する発振手段からの出力信号を受け、出力信号がパルス信号であるときラッチ指示ノードを放電する。ラッチ手段は、ラッチ指示ノードが放電されたときに放電手段が受けている出力信号をラッチする。
 この場合、最も早くパルス信号を受信した判定手段が出力する出力信号のレベルと、その他の判定手段が出力する出力信号のレベルとを異なるレベルにできる。
 好ましくは、決定手段は、トーナメント式に接続された複数の判定手段を備える。第1段目に配置された複数の判定手段の各々は、複数の第1のパルス判定手段と、パルス受付判定ノードと、充電手段とを備える。第1のパルス判定手段は、対応する発振手段の出力信号を受ける。パルス受付判定ノードは、複数の第1のパルス判定手段に接続される。充電手段は、パルス受付判定ノードを充電する。第1のパルス判定手段は、第1の放電手段と、ラッチ手段とを備える。第1の放電手段は、対応する発振手段の出力信号としてパルス信号を受けたとき、パルス受付ノードを放電する。ラッチ手段は、クロック信号を受けたとき第1の放電手段が受けている出力信号をラッチする。第2段目以降に配置されたトーナメント判定手段は、複数の第2のパルス判定手段と、パルス受付判定ノードと、充電手段とを備える。第2のパルス判定手段は、前段の対応するトーナメント判定手段のパルス受付判定ノードに接続される。パルス受付判定ノードは、複数の第2のパルス判定手段が接続される。第2のパルス判定手段は第2の充電手段を備える。第2の充電手段は、前段の対応する判定手段のパルス受付判定ノードが放電されたとき、パルス受付ノードを放電する。最上段の判定手段はさらに、クロック生成手段を備える。クロック生成手段は、パルス受付判定ノードが放電されたとき、クロック信号を出力する。
 この場合、各パルス受付判定ノードの負荷容量を小さくすることができる。そのため、パルス信号を受けてからクロック信号が出力されるまでの時間を短縮できる。
 好ましくは、発信手段は、直列に接続された複数のインバータと、段数選択手段とを備える。段数選択手段は、検索データと対応する参照データとの距離に応じて、インバータの段数を選択する。
 この場合、インバータの段数に応じて発振周波数を調整できる。
 好ましくは、決定手段は、複数の発振手段に対応する複数のカウンタ手段を備える。カウント手段は、対応する発振手段からパルス信号を受け、受けたパルスの総数をカウントし、所定数のパルスを受けたとき活性化された出力信号を生成する。
 この場合、検索データに類似した参照データを、検索データに類似する順に順次決定することができる。
 好ましくは、連想メモリはさらに、パルス無効化手段を備える。パルス無効化手段は、j(jは、1<j≦kを満たす整数、kは、2以上の整数)回目の検索において、j-1回目までに決定手段により決定された参照データに対応する発振手段から出力されるパルス信号を無効化する。
 この場合、検索データに類似した参照データを、検索データに類似する順に順次決定することができる。
本発明の実施の形態による連想メモリの全体構成を示す機能ブロック図である。 図1中のユニットデータ保存回路とユニットデータ比較回路の回路図である。 図1中の発振回路の構成を示す機能ブロック図である。 図3中の遅延回路の回路図である。 図1中のWTA回路の回路図である。 図3に示した発振回路内のインバータの段数と発信周波数のばらつきとの関係を示す図である。 本発明の第2の実施の形態による連想メモリの全体構成を示す機能ブロック図である。 図7中の分周回路を用いた場合のパルス信号の波形の変化を説明するための図である。 本発明の第3の実施の形態による連想メモリのWTA回路の回路図である。 本発明の第4の実施の形態による連想メモリの発振回路の構成を示す機能ブロック図である。 図10中の遅延回路の回路図である。 図11と異なる他の遅延回路の回路図である。 図11及び図12と異なる他の遅延回路の回路図である。 図11~図13と異なる他の遅延回路の回路図である。 本発明の第5の実施の形態による連想メモリの全体構成を示す機能ブロック図である。 本発明の第6の実施の形態による連想メモリの全体構成を示す機能ブロック図である。 本発明の第7の実施の形態による連想メモリの全体構成を示す機能ブロック図である。 図17中のメモリアレイ部内の第1行目の保存回路、比較回路及び発振回路の構成を示す機能ブロック図である。 図18中の発振回路の構成を示す機能ブロック図である。 図19中の遅延回路の構成を示す機能ブロック図である。 本発明の第8の実施の形態による連想メモリのメモリアレイ部内の第1行目の保存回路、比較回路及び発振回路の構成を示す機能ブロック図である。 本発明の第9の実施の形態による連想メモリのWTA回路の構成を示す機能ブロック図である。
 以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
 [第1の実施の形態]
 [全体構成]
 図1を参照して、本発明の実施の形態による連想メモリ100は、メモリアレイ部10と、WTA(Winner Take All)回路20とを備える。
 メモリアレイ部10は、メモリ部1と、行デコーダ2と、列デコーダ3と、Read/Write回路4と、検索データ保存回路5とを備える。
 メモリ部1は、ユニットデータ保存回路(Unit Strage:US)US11~US1W、US21~US2W、・・・、USR1~USRWを備える。ここで、Wは2以上の自然数であり、Rは2以上の自然数である。以降の説明では、任意のユニットデータ保存回路をUSij(1≦i≦W、1≦j≦R)と記載する。
 ユニットデータ保存回路(Unit Strage:US)US11~US1W、US21~US2W、・・・、USR1~USRWは、行列状に配置される。同じ行に配列された複数のユニットデータ保存回路USijは保存回路Sを構成する。たとえば、第1行に配列されたユニットデータ保存回路US11~US1Wは、保存回路Sを構成する。同様に、第2行に配列されたユニットデータ保存回路US21~US2Wは、保存回路Sを構成し、第R行に配列されたユニットデータ保存回路USR1~USRWは、保存回路Sを構成する。
 各行の保存回路SはWビット幅の参照データを記憶する。具体的には、第1行に対応した保存回路S1は、Wビット幅の参照データを記憶する。第2行に対応した保存回路S2は、保存回路S1が保存する参照データと異なる他の参照データを記憶する。保存回路S内の複数のユニットデータ保存回路USijの各々は、参照データのうちの対応する1ビットデータを記憶する。
 メモリ部1はさらに、各保存回路S~Sに対応した複数の比較回路C~Cを備える。比較回路Cは、第1行に配置された保存回路Sに対応する。比較回路Cは、第2行に配置された保存回路Sに対応する。同様に、比較回路Cは、第R行に配置された保存回路Sに対応する。
 比較回路Cは、複数のユニットデータ比較回路(Unit Comparator:UC)UC11~UC1Wを備える。同様に、第2行に対応した比較回路Cは、複数のユニットデータ比較回路UC21~UC2Wを備える。同様に、第3行~第R行に対応した比較回路C~Cは、複数のユニットデータ比較回路UC31~UC3W、・・・、UCR1~UCRWを備える。
 ユニットデータ比較回路UC11~UC1Wは、それぞれ、ユニットデータ保存回路US11~US1Wに対応して配置される。ユニットデータ比較回路UC21~UC2Wは、それぞれ、ユニットデータ保存回路US21~US2Wに対応して配置される。以下、同様にして、ユニットデータ比較回路UC31~UC3W、・・・、UCR1~UCRWは、それぞれ、ユニットデータ保存回路US31~US3W、・・・、USR1~USRWに対応して配置される。
 以降の説明では、任意の比較回路をC、任意のユニットデータ比較回路をUCijと記載する。
 各行の比較回路Cは、外部からWビット幅の検索データを受け付ける。そして、検索データと、対応する保存回路Sに保存されたWビット幅の参照データとを比較する。より具体的には、比較回路Cは、検索データと参照データとの距離(本例ではハミング距離)を求める。各行の参照データと検索データとの比較は、並列に実行される。つまり、各比較回路Cは、対応する第i行の参照データと検索データとの比較を、並列(同時)に実行する。
 メモリ部1はさらに、パルス生成回路を備える。パルス生成回路は、複数の発振回路(Oscillating Circuit:OC)OC~OCを備える。以降、任意の発振回路をOCと記載する。
 各発振回路OCは、各行に配置される。具体的には、発振回路OCは、保存回路S及び比較回路Cに対応する。発振回路OCは、保存回路S及び比較回路Cに対応する。同様に、発振回路OCは、保存回路S及び比較回路Cに対応する。
 発振回路OCは、比較回路Cにより求められたハミング距離に応じた発振周波数を有するパルス信号Pを出力する。具体的には、発振回路OCは、第1行(保存回路S)に保存された参照データと検索データとのハミング距離に応じた発振周波数を有するパルス信号Pを出力する。発振回路OCは、第2行の参照データと検索データとのハミング距離に応じた発信周波数を有するパルス信号Pを出力する。同様に、発信回路OCは、第R行の参照データと検索データとのハミング距離に応じた発信周波数を有するパルス信号Pを出力する。
 要するに、複数の発振回路OC~OCを備えたパルス生成回路は、各行の参照データに応じたパルス信号P~Pを生成する。パルス信号Pの発信周波数は、対応する行(第i行)の参照データと検索データとのハミング距離に対応する。具体的には、ハミング距離が小さい程、発振周波数は高く、ハミング距離が大きい程、発振周波数は低い。
 行デコーダ2は、メモリ部1の行方向のアドレスを指定する。列デコーダ3は、メモリ部1の列方向のアドレスを指定する。Read/Write回路4は、行デコーダ2及び列デコーダ3により指定されたユニットデータ保存回路US11~US1W、US21~US2W、・・・、USR1~USRWに参照データを書き込む。Read/Write回路4はさらに、検索データを検索データ保存回路5に書き込む。
 検索データ保存回路5は、Read/Write回路4によって書き込まれた検索データを保存する。
 WTA回路20は、パルス生成回路(発信回路OC~OC)で生成された複数のパルス信号P~Pを受ける。WTA回路20は、パルス信号P~Pの発振周波数に基づいて、検索データに最も類似する参照データを決定する。WTA回路20は、パルス信号P~Pのうち、発振周波数が最大のパルス信号Pを特定する。そして、特定されたパルス信号Pに対応する行(第i行)に記憶された参照データを、検索データに最も類似した参照データに決定する。
 WTA回路20は、複数の発振回路OC~OCに対応した複数の判定回路(Judgment Circuit)JC~JCを備える。以降、任意の判定回路をJCと記載する。複数の判定回路JC~JCは、対応するパルス信号P~Pを受ける。パルス信号P~Pのうち、発振周波数が最大のパルス信号Pの電圧レベルが最も早く変化する。判定回路JC~JCのうち、最も早くレベル変化したパルス信号Pを受けた判定回路JCは、活性化された判定信号(Judgment Signal)JSを出力する。2番目以降にレベル変化した信号Pを受けた残りの判定回路JCは、非活性化された判定信号JSを出力する。活性化された判定信号JSは「1」を示し、電圧VDDからなる。非活性化された判定信号JSは「0」を示し、電圧Vref(Vref<VDD)からなる。活性化された判定信号JSは、対応する行(第i行)の参照データが検索データに最も類似した参照データ(以降、この参照データをWinnerという)であることを示す。また、非活性化された判定信号JSは、対応する行の参照データが検索データに最も類似した参照データではない(以降、この参照データをLoserという)ことを示す。
 たとえば、メモリ部1に記憶された複数の参照データのうち、保存回路Sに記憶された参照データが検索データに最も類似していると仮定する。この場合、パルス信号P~Pのうち、パルス信号Pの発振周波数が最も高い。そのため、WTA回路20は、判定信号JS~JSのうち、判定信号JSのみを活性化し、残りの判定信号JSを非活性化する。
 以上のとおり、連想メモリ100は、従来の連想メモリのように、参照データと検索データとの距離の違いを電流及び電圧差に置き換えない。代わりに、距離の違いをパルスの発振周波数の違いに置き換える。つまり、距離が異なれば発振周波数も異なる。発振周波数が異なれば、パルスが最初に立ち上がる(又は立ち下がる)時刻が異なるため、距離の違いが時間差に置き換わる。連想メモリ100は、この時間差に基づいて、検索データに最も類似する参照データを決定する。距離の違いを電流及び電圧差に変換する場合、アナログ処理が実行される。この場合、上述のとおり、WinnerとLoserを分けるために利用されるトランジスタ素子の特性ばらつきにより誤検索が生じる場合がある。これに対して、連想メモリ100は、距離の違いを発振周波数の違い(時間差)に置き換えてWinnerを決定する。つまり、デジタル処理によりWinnerを決定する。そのため、トランジスタ素子の特性のばらつき影響を受けにくく、誤検索が抑制される。
 以下、保存回路S内のユニットデータ保存回路USijと、比較回路C内のユニットデータ比較回路UCijと、パルス生成回路内の発振回路OCと、WTA回路20とについて詳述する。以降の説明では、Wビット幅の参照データを構成する各ビットデータを参照ビットデータという。また、Wビット幅の参照データを構成する各ビットデータを検索ビットデータという。つまり、参照データはW個の参照ビットデータを有し、検索データは、参照ビットデータに対応するW個の検索ビットデータを有する。
 [ユニットデータ保存回路及びユニットデータ比較回路]
 図2を参照して、ユニットデータ保存回路US11は、SRAM素子を構成する。ユニットデータ保存回路US11は、データをラッチするラッチ回路210と、n型MOSトランジスタ201、202とを含む。n型MOSトランジスタ201及び202は直列に接続される。そして、n型MOSトランジスタ201と202との間には、ラッチ回路210が接続される。n型MOSトランジスタ201及び202のゲートは、それぞれワード線WLに接続される。
 ワード線WLは行デコーダ2に接続される。行デコーダ2がワード線WLを選択したとき、n型MOSトランジスタ201及び202はオンになる。このとき、n型MOSトランジスタ201は、外部から入力された参照データを構成する1ビットの参照ビットデータDをラッチ回路210に供給する。n型MOSトランジスタ202は、参照ビットデータDの反転信号である参照ビットデータDQを受け、ラッチ回路210に供給する。
 ラッチ回路210は、2つのインバータI1及びI2を含む。インバータI1の入力端子はインバータI2の出力端子と接続される。インバータI1の出力端子はインバータI2の入力端子と接続される。インバータI1はn型MOSトランジスタ201から参照ビットデータDを受ける。インバータI2はn型MOSトランジスタ202から参照ビットデータDQを受ける。そのため、ラッチ回路210は1ビットの参照ビットデータDをラッチする。参照ビットデータDは「1」又は「0」である。参照ビットデータDが「1」とは、n型MOSトランジスタ201からラッチ回路210に供給される信号がHレベルである場合を示し、参照ビットデータDが「0」とは、信号がLレベルであることを示す。
 ユニットデータ比較回路UC11には、外部から検索ビットデータCAMが入力される。検索ビットデータCAMは、検索データを構成する1ビットのデータであり、ユニットデータ保存回路US11に対応する。ユニットデータ比較回路UC11は、ユニットデータ保存回路US11で保存されている参照ビットデータDと、検索ビットデータCAMとを比較して、距離(ハミング距離)を求める。そして、求めた距離を対応する発振回路OCに出力する。
 ユニットデータ比較回路UC11は、2つのトランスファゲートTG1、TG2とインバータI3とを含む。
 各トランスファゲートTG1、TG2は、n型MOSトランジスタと、p型MOSトランジスタとで構成される。トランスファゲートTG1内のp型MOSトランジスタのゲートは、参照ビットデータDをラッチ回路210から受け、n型MOSトランジスタのゲートは参照ビットデータDQをラッチ回路210から受ける。トランスファゲートTG2内のp型MOSトランジスタのゲートは、ラッチ回路210から参照ビットデータDQをラッチ回路210から受け、n型MOSトランジスタのゲートは参照ビットデータDをラッチ回路210から受ける。
 参照ビットデータDのレベル(「1」又は「0」)に応じて、トランスファゲートTG1及びTG2のいずれか一方がオンになり、他方はオフになる。トランスファゲートTG1は外部から検索ビットデータCAMを受ける。トランスファゲートTG2は、検索ビットデータCAMの反転信号である検索ビットデータCAMQを外部から受ける。
 ノードN1はオンされたトランスファゲートTG1又はTG2から出力された信号を、パスイネーブル信号path_enaとして出力する。インバータI3はパスイネーブル信号path_enaを反転したパスイネーブル信号path_enaqを出力する。つまり、ユニットデータ比較回路UC11は、2つの信号path_ena、path_enaqを出力する。2つの信号path_ena、path_enaqは、参照ビットデータDと検索ビットデータCAMとの比較結果であり、ハミング距離に相当する。
 参照ビットデータDと検索ビットデータCAMとが一致する場合、信号path_enaはLレベルになり、信号path_enaqはHレベルになる。たとえば、参照ビットデータD及び検索ビットデータCAMがいずれも「1」である場合、トランスファゲートTG1がオフになり、TG2がオンになる。また、参照ビットデータD及び検索ビットデータCAMがいずれも「0」である場合、トランスファゲートTG1がオンになり、TG2がオフになる。その結果、信号path_enaはLレベルになり、信号path_enaqはHレベルになる。
 一方、参照ビットデータDと検索ビットデータCAMとが一致しない場合、信号path_enaはHレベルになり、信号path_enaqはLレベルになる。たとえば、参照ビットデータDが「1」であり、検索ビットデータCAMが「0」である場合、トランスファゲートTG1がオフになり、TG2がオンになる。参照ビットデータDが「0」であり、検索ビットデータCAMが「1」である場合、トランスファゲートTG1がオンになり、TG2がオフになる。その結果、信号path_enaはHレベルになり、信号path_enaqはLレベルになる。
 信号path_ena及びpath_enaqは、発振回路OC生成されるパルス信号Pの発振周波数を決定する。
 ユニットデータ保存回路US12~US1W、US21~US2W、・・・USR1~USRWは、ユニットデータ保存回路US11と同じ構成からなる。また、ユニットデータ比較回路UC12~UC1W、UC21~UC2W、・・・UCR1~UCRWは、ユニットデータ比較回路UC11と同じ構成からなる。
 [発振回路]
 発振回路OCは、保存回路Sに記憶されたWビット幅の参照データとWビット幅の検索データとの距離(ハミング距離)に応じた発振周波数のパルス信号Pを出力する。具体的には、参照データと検索データとの距離が小さい程、つまり、参照データが検索データに類似する程、発振回路OCは、高い発振周波数のパルス信号Pを出力する。
 図3は発振回路OCの機能ブロック図である。図3を参照して、発振回路OCは、複数の遅延回路(Delay Circuit)DC11~DC1Wを含む。遅延回路DC11~DC1Wはそれぞれ、ユニットデータ比較回路UC11~UC1Wに対応する。
 遅延回路DC11~DC1Wは直列に接続される。直列された複数の遅延回路DC11~DC1Wのうち、端に位置する遅延回路DC11の出力端子は出力ノードN10に接続される。また、他方の端に位置する遅延回路DC1Wの入力端子は、NANDゲート300の出力端子と接続される。NANDゲート300は、発振回路OCを起動する役割を有する。NANDゲート300の一方の入力端子には、発振回路OCを起動するためのイネーブル信号ENAが入力される。また他方の入力端子は出力ノードN10と接続される。
 イネーブル信号ENAが活性化(Hレベル)されたとき、NANDゲート300は、入力信号を反転して出力する反転回路として機能する。一方、各遅延回路DC11~DC1Wは、受けた信号を反転して外部に出力する。つまり、各遅延回路DC11~DC1Wも上述の反転回路として機能する。したがって、発振回路OC1は、リング状に連結された奇数個の反転回路(起動時のNANDゲート300及び遅延回路DC11~DC1W)を備える。
 図4に遅延回路DC11の回路図を示す。遅延回路DC11は、複数のインバータI10~I14と、インバータの段数を選択する段数選択回路SEとを備える。段数選択回路SEは、2つのトランスファゲートTG10及びTG11を備える。トランスファゲートTG10は、Hレベルの信号path_enaとLレベルの信号path_enaqとを受けたときにオンする。つまり、対応するユニットデータ比較回路UC11から出力された参照ビットデータDと検索ビットデータCAMとが一致しないとき、トランスファゲートTG10はオンする。
 トランスファゲートTG11は、Lレベルの信号path_enaとHレベルの信号path_enaqとを受けたときにオンする。つまり、参照ビットデータDと検索ビットデータCAMとが一致したとき、スイッチ回路TG11はオンになる。
 複数のインバータI10~I14は直列に接続される。インバータI13とインバータI14との間にはトランスファゲートTG10が接続される。そして、スイッチ回路TG11は、インバータI10の入力端子とインバータI14の入力端子との間に接続される。
 段数選択回路SEは、対応するユニットデータ比較回路UC11の比較結果に応じてインバータの段数を選択する。ユニットデータ比較回路UC11での比較の結果、参照ビットデータDと検索ビットデータCAMとが一致する場合、トランスファゲートTG10がオフになり、TG11がオンになる。そのため、遅延回路DC11の入力信号は1段のインバータI14を介して外部に出力される。
 一方、参照ビットデータDと検索ビットデータCAMとが異なる場合、トランスファゲートTG10がオンになり、TG11がオフになる。そのため、遅延回路DC11の入力信号は、5段のインバータを介して外部に出力される。つまり、参照ビットデータDと検索ビットデータとが一致しない方が、遅延時間が長くなる。
 要するに、遅延回路DC11は、インバータ段数が少ないパス(ショートパス)と、インバータ段数が多いパス(ロングパス)と、参照ビットデータと検索ビットデータとのハミング距離に応じてショートパス及びロングパスのいずれかを選択する段数選択回路とを備える。
 他の遅延回路DC12~DC1Wも、遅延回路DC11と同じ構成を有する。したがって、発振回路OCでは、保存回路Sに記憶されたWビット幅の参照データがWビット幅の検索データに類似するほど、つまり、参照データと検索データとの距離が小さい程、インバータの段数が少なくなる。なぜなら、Lレベルの信号path_enaとHレベルの信号path_enaqとを出力するデータユニット比較回路UC1jの数が相対的に多くなるからである。インバータの段数が少ないほど、遅延時間は短くなる。したがって、発振回路OC1は、発振周波数の高いパルス信号Pを出力する。
 一方、保存回路Sに記憶された参照データと検索データとの距離が遠い程、発振回路OC内で利用されるインバータの段数は多くなる。そのため、発振回路OC1は発振周波数の低いパルス信号Pを出力する。
 以上の構成により、発信回路OC1は、保存回路S1の参照データと検索データとの距離に応じた発振周波数のパルス信号P1を出力する。発振回路OC1は、参照データと検索データとの距離が小さい程、利用するインバータの段数を減らす。そのため、参照データが検索データに類似する程、高い発振周波数を有するパルス信号P1を出力する。
 発振回路OC~OCはそれぞれ、発振回路OCと同じ構成を有する。したがって、発振回路OC~OCのうち、発振周波数が最大となるパルス信号Pを出力した発振回路OCに対応する保存回路Sに、検索データに最も類似した参照データが格納されている。
 NANDゲート300は、ノードN10上の信号とイネーブル信号ENAとを受け、NAND論理演算結果を遅延回路DC1Wに出力する。上述のとおり、NANDゲート300は、イネーブル信号ENAに応じて発振回路OCを起動又は停止する。イネーブル信号ENAが非活性(Lレベル)のとき、NANDゲート300は常にHレベルの信号を出力する。そのため、発振回路OCから出力される信号はHレベルで一定である。つまり、発振回路OCは、パルス信号を出力しない。
 [WTA回路]
 WTA回路20は、発振回路OC~OCからパルス信号P~Pを受ける。そして、パルス信号P~Pの発振周波数に基づいて、検索データに最も類似した参照データ(Winner)を決定する。
 図5を参照して、WTA回路20は、複数の判定回路JC~JCと、プリチャージ回路30と、ラッチ指示ノードN40とを備える。各判定回路JC~JCは、ラッチ指示ノードN40に接続される。
 プリチャージ回路30は、イネーブル信号ENAの反転信号であるイネーブル信号ENAQを受けたとき、ラッチ指示ノードN40に電荷を供給し、充電する。これにより、ラッチ指示ノードN40の電圧はHレベル(VDD)に上昇する。
 判定回路JCは、対応する発振回路OCの出力信号を受ける。判定回路JCは、発振回路OCの出力信号を受ける。同様に、判定回路JC~JCは、発振回路OC~OCの出力信号をそれぞれ受ける。
 判定回路JC1は、インバータI20と、遅延回路251と、ラッチ回路252と、放電回路250と、クロック生成回路253とを備える。
 インバータI20は、発信回路OCの出力信号を受け、反転してノードN30に出力する。放電回路250は、n型MOSトランジスタからなる。n型MOSトランジスタは、ラッチ指示ノードN40と接地電圧が供給されるGNDノードとの間に接続され、そのゲートはノードN30に接続される。放電回路250は、n型MOSトランジスタのゲートにHレベルの信号が入力されたとき、ラッチ指示ノードN40を放電する。つまり、判定回路JCは、パルス信号Pを受けたとき、放電回路250によりラッチ指示ノードN40の電圧レベルを接地電圧(Lレベル)まで低下する。
 クロック生成回路253は、ラッチ指示ノードN40がLレベルとなったときにクロック信号CLKを出力する。クロック生成回路253は、インバータI21からなる。インバータI21の入力端子はラッチ指示ノードN40に接続される。クロック生成回路253は、ラッチ指示ノードN40がLレベルになったとき、Hレベルのクロック信号CLKを出力する。
 ラッチ回路252は、Dフリップフロップで構成される。ラッチ回路252は、Hレベルのクロック信号CLKを受けたとき、インバータI20の出力信号をラッチして、判定信号JSを外部に出力する。
 遅延回路251は、発振回路OCからパルス信号Pが出力された場合、クロック生成回路253がクロック信号を出力するときにパルス信号Pの反転信号がラッチ回路252に入力されるように調整する。ただし、遅延回路251はなくてもよい。
 判定回路JC~JCは、判定回路JCと同じ構成を有する。各判定回路JC~JCの放電回路250及びクロック生成回路253は、いずれもラッチ指示ノードN40と接続されている。したがって、いずれかの判定回路JCの放電回路250がラッチ指示ノードN40を放電すれば、全ての判定回路JC~JCのクロック生成回路253はHレベルのクロック信号CLKを出力する。
 発振回路OC~OCの出力信号にパルスが形成されていないとき、つまり、発振回路OCがパルス信号Pを出力する前、パルス信号P~PはHレベルで一定である。ここで、発振回路OC~OCのうち、発振回路OCが最大の発振周波数のパルス信号Pを出力したと仮定する。
 この場合、発信回路OCの出力信号が、他の発振回路OCの出力信号よりも早く、電圧レベルがHレベルからLレベルに変化する。そのため、各判定回路JC内の放電回路250のうち、判定回路JCの放電回路250が最も早く動作してラッチ指示ノードN40をLレベルにする。
 このとき、判定回路JCのラッチ回路252はHレベルの信号を受ける。しかしながら、他の判定回路JC、JC~JCのラッチ回路252はLレベルの信号を受けている。ラッチ指示ノードN40がLレベルになると、各判定回路JC内のクロック生成回路253が一斉にHレベルのクロック信号CLKを出力する。そのため、判定回路JC内のラッチ回路252のみがHレベルの信号をラッチし、その他の判定回路JC、JC~JC内のラッチ回路252はLレベルの信号をラッチする。
 以上の工程により、判定回路JCはWinnerを示すHレベルの判定信号JSを出力し、他の判定回路JC、JC~JCはLoserを示すLレベルの判定信号JS、JS~JSを出力する。
 以上のとおり、本実施の形態による連想メモリ100は、参照データと検索データとの距離に応じた発振周波数のパルス信号を生成する。そして、パルス信号の発振周波数に基づいて、Winnerとなる参照データを決定する。
 参照データと検索データとの距離を発振周波数に変換すれば、従来の連想メモリのようにトランジスタ素子の特性のばらつきによる誤検索が発生しにくい。発振回路OCは複数段のインバータを備える。インバータを構成するトランジスタ素子の特性にばらつきが生じても、インバータ段数は複数存在するため、特性ばらつきの影響を抑えることができる。つまり、トランジスタ素子の特性にばらつきが生じても、発振周波数のばらつきを抑制することができる。
 図6は発振回路OCi内のインバータの段数と発振周波数のばらつきとの関係を示すグラフである。図6のグラフは次の方法で求めた。初めに、インバータ段数が17段、33段、65段及び129段の発振回路をそれぞれ作製した。使用するCMOSトランジスタのゲート長は90nmとした。
 作製された各発振回路に種々の電源電圧を用いてパルス信号を生成した。生成されたパルス信号の発振周波数を測定した。測定された発振周波数の平均値を1として正規化し、標準偏差を求めた。図6中の縦軸は、各発振回路の標準偏差(%)を示す。図6を参照して、インバータ段数が多いほど、発振周波数のばらつきが抑えられることが分かる。
 [第2の実施の形態]
 上述のとおり、第1の実施の形態による連想メモリ100では、WTA回路20が、パルス信号P~Pの発振周波数に基づいて、Winnerとなる参照データを決定する。したがって、最大の発振周波数を有するパルス信号Pと、2番目に高い発振周波数を有するパルス信号Pとの発振周波数の差が大きいほど、Winnerの誤検出が起こりにくい。
 図7を参照して、第2の実施の形態による連想メモリ110は、連想メモリ100と比較して、メモリ部10とWTA回路20との間に、分周部35を新たに備える。連想メモリ110のその他の構成は、連想メモリ100と同じである。
 分周部35は、複数の分周回路(Frequency Divider)FD~FDを備える。連想メモリ110のその他の構成は、連想メモリ100と同じである。
 分周回路FDは、発振回路OCのパルス信号Pを受ける。そして、パルス信号Pの周波数を所定の分周比で分周する。本例では、分周回路FDは、パルス信号Pを1.5分周する。ただし、分周比は1.5に限られない。他の分周回路FD~FDも分周回路FDと同じ分周比でパルス信号P~Pを分周する。
 WTA回路20内の各判定回路JC~JCは、分周されたパルス信号P~Pを受ける。WTA回路20は、分周されたパルス信号P~Pに基づいて、Winnerを決定する。
 パルス信号Pを所定の分周比で分周すれば、最も高い発振周波数のパルス信号Pの波形変化と、次に高い発振周波数のパルス信号Pの波形変化との差を大きくすることができる。図8を用いてこの点を説明する。
 図8は、各分周回路FDが分周比1.5でパルス信号Pを分周した場合の、パルス信号P及びPの波形を示す図である。図中のP(FD)は、分周回路FDから出力されたパルス信号Pを示す。図中のP(FD)は、分周回路FDから出力されたパルス信号Pを示す。図中のPは、分周回路FDに入力されるパルス信号Pを示し、図中のPは、分周回路FDに入力されるパルス信号Pを示す。
 ここで、パルス信号Pの周波数が最も高く、Pの周波数が次に高いと仮定する。図8に示すとおり、分周回路に入力される前のパルス信号PとPとの最初の波形変化の時間差はTd1である。
 一方、分周されたパルス信号P(FD)とP(FD)との最初の波形変化の時間差はTd2となる。時間差Td2は時間差Td1よりも大きい。要するに、分周回路FD~FDは、Winnerとなるパルス信号の最初の波形変化と、次に周波数の高いパルス信号の最初の波形変化との時間差を増大する。そのため、WTA回路20はより正確に、Winnerを決定できる。
 [第3の実施の形態]
 連想メモリ100内のWTA回路20では、図5に示すように、全ての判定回路JC~JCが1つのラッチ指示ノードN40に接続される。WTA回路20のラッチ指示ノードN40は、全ての判定回路JC~JCに接続されるために長い。そのため、ラッチ指示ノードN40の負荷容量は大きい。したがって、放電回路250内のn型MOSトランジスタがオンになってから、ラッチ指示ノードN40の電圧レベルが接地電圧に落ちるまでに時間がかかる。ラッチ指示ノードN40の電圧レベルを落とすのに時間がかかれば、Winnerの決定も時間がかかる。
 そこで、本実施の形態による連想メモリは、WTA回路20の代わりに図9に示す新たなWTA回路25を備える。その他の構成は連想メモリ100と同じである。
 図9を参照して、WTA回路25は、複数の判定ブロックJBを備える。複数の判定ブロックJBは、トーナメント式に複数段に接続される。図9では、最下段である第1段から、最上段である第n段(nは2以上の自然数)まで、n段のトーナメント式となっている。
 最下段に当たる第1段目に配列された複数の判定ブロックJB1は、R個の第1パルス判定回路PJC~PJCを含む。換言すれば、R個の第1パルス判定回路PJC~PJCは、複数の判定ブロックJB1に分割される。
 各判定回路JB1は、R個未満の第1パルス判定回路PJCとパルス受付判定ノードN50とを備える。第1パルス判定回路PJC~PJCの各々は、図5中の判定回路JC~JCと比較して、クロック生成回路253を有さない。その他の構成は判定回路JC~JCと同じである。各第1パルス判定回路PJC~PJCは、対応する発振回路OC~OCからパルス信号P~Pをそれぞれ受ける。
 各判定ブロックJBはさらに、パルス受付判定ノードN50と、プリチャージ回路30とを備える。プリチャージ回路30は、イネーブル信号ENAQを受けたとき、パルス受付判定ノードN50を充電する。
 パルス受付判定ノードN50は、判定ブロックJBに含まれる複数の第1パルス判定回路PJC(ただし、R個未満)に接続される。より具体的には、各第1パルス判定回路PJC内の放電回路250に接続される。
 図5中のラッチ指示ノードN40に接続される判定回路JCはR個である。これに対して図9中の各パルス受付判定ノードN50に接続される第1パルス判定回路PJCはR個未満である。パルス受付判定ノードN50は、ラッチ指示ノードN40と比較して、負荷容量が小さい。
 トーナメント式に接続された判定ブロックのうち、第2段目~第n-1段目に配列される判定ブロックJB2~JBn-1の構成について説明する。図9を参照して、第2段目に配列される複数の判定ブロックJB2の各々は、プリチャージ回路30と、パルス受付判定ノードN50と、複数の第2パルス判定回路PJとを含む。
 各第2パルス判定回路PJは、対応する判定ブロックJB1内のパルス受付判定ノードN50に接続される。第2パルス判定回路PJは、インバータI20と、放電回路250とを備える。第2パルス判定回路PJは、自身が属する判定ブロックJB2内のパルス受付判定ノードN50に接続される。より具体的には、第2パルス判定回路PJ内の放電回路250がパルス受付判定ノードN50と接続される。プリチャージ回路30は、イネーブル信号ENAQを受けたとき、パルス受付判定ノードN50を充電する。
 第3段目~第n-1段目に配列された各判定ブロックJBの構成も同じである。第n-1段目に配列された判定ブロックJB内の第2パルス判定回路PJは、前段、つまり、第n-2段目に配列された複数の判定ブロックJBのうち、対応する判定ブロックJB内のパルス受付判定ノードN50に接続される。
 最上段である第n段には、1つの判定ブロックJBnが配置される。判定ブロックJBnは、判定ブロックJB2と比較して、クロック生成回路31を新たに備える。他の構成は判定ブロックJB2と同じである。
 クロック生成回路31は、パルス受付判定ノードN50がLレベルになったとき、クロック信号CLKを出力する。クロック生成回路31内の構成は図5中のクロック生成回路253と同じである。つまり、クロック生成回路31はインバータI21を備える。
 以上のとおり、WTA回路25は、第1段~第n段までの複数段のトーナメント式に接続された判定ブロックJB1~JBnを備える。各パルス受付判定ノードN50に接続される第1又は第2パルス判定回路の数は、図5中のラッチ指示ノードN40に接続される判定回路の数よりも少ない。したがって、各パルス受付判定ノードN50の負荷容量は、ラッチ指示ノードN40の負荷容量よりも小さい。そのため、パルス受付判定ノードN50をHレベルからLレベルに下げるのにかかる時間は、ラッチ指示ノードN40よりも短くすることができる。
 要するに、トーナメント式に判定ブロックJB1~JBnを配置すれば、パルス受付判定ノードN50の負荷容量を小さくできる。そのため、判定ブロックJB1内が最も高い周波数のパルス信号Pを受けてから、クロック信号CLKが出力されるまでの時間を短くできる。換言すれば、Winnerの決定時間を短くできる。
 [第4の実施の形態]
 第1の実施の形態では、データユニット保存回路USijごとに遅延回路DCijを設けた。しかしながら、このような構成では、使用されるトランジスタ素子数が多くなる。そのため、1つの遅延回路を複数のデータユニット保存回路に対応させてもよい。
 本実施の形態による連想メモリは、発振回路OC~OCに代えて、新たな発振回路OSC~OSCを備える。その他の構成は連想メモリ100と同じである。
 図10を参照して、発振回路OSCは、発振回路OCと比較して、遅延回路DC11、DC12、・・・DC1Wに代えて、遅延回路DLC11、DLC12、・・・DCL1T(Tは1以上の自然数)と、距離判定回路DJ11~DJ1Tとを備える。距離判定回路DJ11~DJ1Tは、遅延回路DLC11~DLC1Tに対応する。その他の構成は発振回路OC1と同じである。
 活性化されたNANDゲート300は入力信号を反転する。また、遅延回路DLC11~DLC1Tの各々も、入力信号を反転する。したがって、NANDゲート300及び遅延回路DLC11~DLC1Tは、反転回路として機能する。つまり、発振回路OSCは、奇数個の反転回路を備える。したがって、遅延回路DLC11~DLC1Tは偶数個含まれている。奇数個の反転回路(NANDゲート300及び遅延回路DLC11~DLC1T)はループ状に直列に連結されている。
 各遅延回路DLC11~DLC1Tは、2つのデータユニット比較回路UCijの比較結果に基づいて、パルス信号Pの発振周波数を決定する。
 各距離判定回路DJ11~DJ1Tは、2つのデータユニット比較回路UCijから比較結果(2つの信号path_ena及び信号path_enaq)を受ける。そして、比較結果からハミング距離を求める。そして、求めたハミング距離に応じた信号を、対応する遅延回路DLC11~DLC1Tに出力する。
 具体的には、距離判定回路DJ11は、ユニットデータ比較回路UC11及びUC12から比較結果を受ける。比較の結果、ユニットデータ保存回路US11及びUS12に格納された参照ビットデータDの全てが対応する検索ビットデータCAMと一致するとき(つまり、ハミング距離=0のとき)、距離判定回路DJ11は、Hレベルの信号S0を出力する。そして、Lレベルの信号S1及びS2を出力する。また、信号S0、S1及びS2の反転信号/S0、/S1及び/S2を出力する。
 2つの参照ビットデータのうち、いずれか1つが対応する検索ビットデータと一致するとき(つまり、ハミング距離=1のとき)、距離判定回路DJ11は、Hレベルの信号S1を出力し、Lレベルの信号S0及びS2を出力する。
 2つの参照ビットデータのいずれも対応する検索ビットデータと一致しないとき(距離=2であるとき)、距離判定回路DJ11は、Hレベルの信号S2を出力し、Lレベルの信号S0及びS1を出力する。
 上述のとおり、遅延回路DLC11~DCL1TとNANDゲート300は、ループ状に直列に接続される。複数の遅延回路DLC11~DLC1Tのうち、端に位置する遅延回路DLC11の出力端子は出力ノードN10に接続される。また、他方の端に位置する遅延回路DLC1Tの入力端子は、NANDゲート300の出力端子と接続される。
 遅延回路DLC11の構成を図11に示す。遅延回路DLC11は、第1の遅延段70と、第2の遅延段71と、インバータI71と、段数選択回路72とを備える。段数選択回路72は、トランスファゲートTG71、TG72及びTG73を備える。段数選択回路72は、距離判定回路DJ11からの信号S0~S2に応じて、利用するインバータの段数を選択する。換言すれば、段数選択回路72は、ハミング距離に応じて遅延時間(発振周波数)を選択する。
 第1の遅延段70及び第2の遅延段71はそれぞれ、直列に接続された偶数個のインバータを含む。第1の遅延段70は、前段の遅延回路DLC12の出力を受け、遅延する。第2の遅延段71は、第1の遅延段70の出力を受け、遅延する。
 段数選択回路72内のトランスファゲートTG71~TG73は並列に接続される。トランスファゲートTG71~TG73はそれぞれ、n型MOSトランジスタとp型MOSトランジスタとで構成される。トランスファゲートTG71は、対応する距離判定回路DJ11からHレベルの出力信号S0とLレベルの出力信号/S0を受けるとオンになる。ここで、出力信号/S0は、信号S0の反転信号である。要するに、トランスファゲートTG71は、データユニット保存回路US11及びUS12に格納された参照データがいずれも検索データと一致したとき(距離=0のとき)、オンになる。このとき、遅延回路DLC11は、入力信号をトランスファゲートTG71に通してインバータI71に出力する。
 トランスファゲートTG72は、Hレベルの信号S1とLレベルの信号/S1(信号S1の反転信号)とを受けるとオンになる。つまり、距離=1のときにオンになる。このとき、遅延回路DLC11は、入力信号を第1の遅延段70に供給する。そして、第1の遅延段70の出力をインバータI71に供給する。
 トランスファゲートTG73は、Hレベルの信号S2とLレベルの信号/S2(信号S2の反転信号)とを受けるとオンになる。つまり、距離=2のときにオンになる。このとき、トランスファゲートTG13は、第2の遅延段71の出力をインバータI71に供給する。
 要するに、発振回路DLC11は、3つのパス(遅延段のないショートパス、遅延段71を有するミドルパス、遅延段71及び72を有するロングパス)と、3つのパスのうちいずれか1つを選択する段数選択回路72とを備える。各パスは、それぞれ異なる遅延時間が設定されている。発振回路DLC11は、2つの参照ビットデータと検索ビットデータとの比較結果に応じて、3つのパスの中から1つのパスを選択する。上述の例では、距離=0のとき、遅延回路DLC11は、ショートパスを選択する。このとき、利用するインバータの段数は1つ(インバータI71のみ)である。距離=1のとき、遅延回路DLC11は、ミドルパスを選択する。このとき、インバータの段数は5つである(第1の遅延段70+インバータI71)。距離=2のとき、遅延回路DLC11は、ロングパスを選択する。このとき、インバータ段数は9個である(第1の遅延段70、第2の遅延段71及びインバータI71)。
 なお、遅延回路DLC12~DLC1Tは遅延回路DLC11と同じ構成を有する。
 上述のとおり、遅延回路DLCは複数の比較結果に応じてインバータの段数を変える。そのため、発振回路DLC11は、発振回路DC11と比較して、利用するトランジスタ素子数を減らすことができる。さらに、参照データと検索データが一致した場合(距離=0の場合)のインバータ段数を減らすことができる。そのため、より高周波のパルス信号を出力できる。その結果、WTA回路20がWinnerを決定する時間をより短くできる。
 上述の例では、遅延回路DLCは、2つの遅延段を含み、利用する遅延段数に応じて3つの遅延時間を設定できる。遅延回路DLCは、2つの参照ビットデータと2つの検索ビットデータから得られる2つの比較結果に応じて、利用する遅延段数を選択する。その結果、3つの遅延時間の中から1つの遅延時間が選択される。
 遅延回路DLCはL(Lは2以上の自然数)個の参照ビットデータと検索ビットデータと比較結果に応じて遅延時間を設定することもできる。より具体的には、遅延回路DLCは、複数の遅延段を含み、利用する遅延段数に応じてL+1個の遅延時間を設定できる。遅延回路DLCは、L個の比較結果に応じて、L+1個の遅延時間(パス)の中から1つの遅延時間(パス)を選択する。遅延回路DLCに入力された信号は、選択された遅延時間だけ遅延して次段の遅延回路DLCに出力される。要するに、L個の参照ビットデータと検索ビットデータとを比較する場合、遅延回路DLCは、L+1個のパスを備える。各パスは異なる遅延時間が設定される。
 なお、図12に示すように、第1の遅延段70及び第2の遅延段71の初段のインバータをトライステート型のインバータにしてもよい。トライステートインバータI701は、Hレベルの信号S1又はS2を受けると活性化する。また、トライステートインバータI702は、Hレベルの信号S2を受けると活性化する。距離=0のとき、第1の遅延段70及び第2の遅延段71は動作せず、距離=1のとき、第2の遅延段71は動作しない。したがって、消費電力を削減できる。
 トライステートインバータI701及びI702が非活性の場合、各遅延段70及び71の2段目のインバータの入力ノードは浮遊状態となる。そのため、ノイズ等の影響でノードのレベルが変動し、インバータが動作してしまう場合がある。図13に示すように、トライステートインバータI701及びI702に代えて、NORゲート721及び722を用いれば、2段目のインバータの入力ノードが浮遊状にならない。そのため、ノイズ等の影響で2段目以降のインバータが動作するのを防止できる。
 NORゲート721は、Lレベルの信号/S1又はLレベルの信号/S2を受けると、NOTゲート(インバータ)として動作する。また、NORゲート722は、Lレベルの信号/S2を受けると、NOTゲートとして動作する。
 さらに、図14に示すように、第2の遅延段71とトランスファゲートTG73との間にダミーのNORゲート722を配置してもよい。この場合、各パスの配線に係る容量を同じにできる。そのため、設計時において、各パスの遅延回路の設計を同じにすることができる。
 [第5の実施の形態]
 上述の連想メモリ100は、検索データに最も近い参照データを検索する。しかしながら、検索データに近い参照データを、検索データに近い順に複数検索できる方が好ましい場合がある。
 図15を参照して、本実施の形態による連想メモリ200は、連想メモリ100と比較して、新たにフィードバック回路50を備える。その他の構成は連想メモリ100と同じである。
 フィードバック回路50は、複数のフィードバック回路51~5Rを備える。各フィードバック回路51~5Rは、制御信号CONを受けて起動する。
 フィードバック回路51は、Hレベルの判定信号JSを受けたとき、Hレベルのフィードバック信号を出力する。発振回路OCの出力ノードは、Hレベルのフィードバック信号を受けて、充電される。つまり、フィードバック回路51は、Hレベルの判定信号JSを受けると、発振回路OCの出力ノードをチャージする。そのため、発振回路OCの出力信号はHレベルで固定される。たとえパルス信号Pが出力されても、パルス信号Pが無効化される。
 フィードバック回路51は、判定信号JSがLレベルのとき、発振回路OCの出力ノードをチャージしない。しかし、いったん判定信号JSがHレベルになると、それ以降、Hレベルのフィードバック信号を発振回路OCの出力ノードに供給し続ける。
 同様に、フィードバック回路52~5Rはそれぞれ、対応する判定信号JS~JSがHレベルになるまで、発振回路OC~OCの出力ノードをチャージしない。しかし、いったん判定信号JS~JSがHレベルになると、それ以降、発振回路OC~OCの出力ノードをチャージし続ける。
 以上の構成を有する連想メモリ200の動作は次のとおりである。
 連想メモリ200は初めに、1回目の検索を開始する。このとき、連想メモリ200は検索データに最も類似する参照データを検索する。
 初めに、各比較回路C~Cに検索データが入力される。その後、イネーブル信号ENAがHレベルとなり、発振回路OC~OCが動作を開始する。ここで、保存回路Sに記憶された参照データが検索データに最も類似すると仮定する。この場合、判定信号JSがHレベルとなり、その他の判定信号JS、JS~JSはLレベルとなる。
 フィードバック回路51~5Rは、制御信号CONを受けて起動する。フィードバック回路52は、Hレベルの判定信号JSを受けると、発振回路OCの出力ノードをチャージする。その結果、発振回路OC2の出力ノードの電圧レベルはHレベルに維持される。そのため、発振回路OCから出力されるパルス信号Pは無効化される。
 第1回目の検索が終了したとき、発振回路OC~OCに入力されるイネーブル信号ENAはいったん非活性(Lレベル)となる。
 続いて、連想メモリ200は、第2回目の検索を実行する。このとき、イネーブル信号ENAが再びHレベルになる。そこで、発振回路OC~OCは第1回目と同じ比較結果に基づいて、パルス信号P~Pを再び出力する。
 しかしながら、発振回路OCの出力ノードは、フィードバック回路52によりHレベルに維持されている。したがって、パルス信号Pは無効化され、発振回路OCの出力信号Hレベルのままとなる。そのため、WTA回回路20は、パルス信号P以外の他の信号P、P~Pに基づいて、最も検索データに近い参照データを決定する。ここで、保存回路Sに記憶された参照データが検索データに最も近いと仮定する。この場合、判定信号JSがHレベルとなり、その他の信号JS~JSはLレベルとなる。
 第2回目の検索によりHレベルとなった信号JSに対応する参照データ(つまり、保存回路Sに記憶された参照データ)は、検索データに2番目に類似する参照データに相当する。
 判定信号JSがHレベルになると、フィードバック回路51は発振回路OCの出力ノードをチャージする。要するに、フィードバック回路51は発振回路OCのパルス信号Pを無効化する。第3回目の検索時では、発振回路OC及びOCはパルス信号を出力できない。そのため、既に検索された参照データ(保存回路S及びSの参照データ)を除く他の参照データから、検索データに最も類似する参照データが検索される。検索された参照データは検索データに3番目に近いデータに相当する。
 以上のとおり、連想メモリ200は、j回目(jは、1<j≦kを満たす整数、kは、2以上の整数)回目の検索において、j-1回目までにHレベルの判定信号JSiを出力した判定回路JCiに対応する発振回路OCiの出力を無効化する。これにより、検索処理を実行するごとに、検索データに近い参照データを、検索データに近い順に検索することができる。
 [第6の実施の形態]
 第5の実施の形態による連想メモリ200は、フィードバック回路50を用いて発振回路OCの出力を無効化することにより、検索データに近い参照データを検索データに近い順に複数検索できる。しかしながら、1回の検索処理で1つの参照データしか検索できない。したがって、検索データに近い参照データの複数検索する場合、希望する参照データ数と同じ回数の検索処理を実行しなければならない。
 図16に本実施の形態による連想メモリ300の機能ブロック図を示す。図16を参照して、連想メモリ300は、連想メモリ100と比較して、WTA回路20に代えて、カウンタ部40を備える。
 カウンタ部40は、複数のカウンタ回路41~4Rを備える。カウンタ回路41は、発振回路OCのパルス信号Pを受ける。そして、パルス信号Pのパルスをカウントする。カウント数が所定数CT(たとえば10個)となったとき、カウント回路41はHレベルの判定信号JSを出力する。
 同様に、カウンタ回路42~4Rはそれぞれ、発振回路OC~OCのパルス信号P~Pを受ける。そして、各パルス信号P~Pのパルスをカウントする。カウント数が所定数CTとなったとき、カウンタ回路42~4RはHレベルの判定信号JS~JSを順次出力する。
 上述のとおり、発振回路OC~OCは、対応する参照データが検索データに類似するほど、パルス信号P~Pの発振周波数を高くする。カウンタ回路41~4Rは、発振周波数が高いパルス信号P~Pを受けるほど早く、Hレベルの判定信号JS~JSを出力する。したがって、判定信号JS~JSは、対応する参照データが検索データに類似する順に、順次Hレベルに立ち上がる。Hレベルの判定信号JS~JSの出力順に基づいて、カウンタ部40は、検索データに近い参照データを、検索データに近い順に決定できる。
 以上のとおり、連想メモリ300は、1回の検索処理で、検索データに近い参照データを複数個検索することができる。
 [第7の実施の形態]
 上述の実施の形態では、ハミング距離を適用した場合の連想メモリについて説明した。しかしながら、本発明による連想メモリは、マンハッタン距離にも適用できる。
 図17を参照して、連想メモリ400は、連想メモリ100と同様に、メモリアレイ部10と、WTA回路20とを備える。
 メモリアレイ部10は、図1と同様に、メモリ部1と、行デコーダ2と、列デコーダ3と、Read/Write回路4と、検索データ保存回路5とを備える。
 メモリ部1内のユニットデータ保存回路US11~US1W、US21~US2W、・・・、USR1~USRWの各々は、参照データをKビット単位で保存する。
 ここで、第i行(1≦i≦R)に配置されたユニットデータ保存回路USij(1≦j≦w)に注目する。第i行の保存回路Siに保存された参照データREFのうち、ユニットデータ保存回路USijに保存されたデータを参照データREFijとする。つまり、第i行に保存された参照データREFは、REFi1、REFi2、・・・REFij、・・・REFiwで構成される。また、外部から入力される検索データをSWとする。検索データSWは、SW、SW、・・・SW、・・・SWで構成される。
 検索データSWと参照データREFとの間のマンハッタン距離は、次の式(1)で示される。
Figure JPOXMLDOC01-appb-M000001
 上述のとおり、ユニットデータ保存回路USijはkビットの参照データREFijを保存する。そのため、ユニットデータ保存回路USijはk個の記憶回路(たとえばSRAM素子)を備える。各記憶回路は、参照データREFijの各桁の参照ビットデータ(第1桁の参照ビットデータ~最上位(第k桁)の参照ビットデータ)をそれぞれ記憶する。
 ユニットデータ比較回路UCijは、対応するユニットデータ保存回路USijに保存された参照データREFij(kビット)と、検索データSW(kビット)とのマンハッタン距離を算出する。
 図18に、第1行(i=1)に配置されるユニットデータ保存回路とユニットデータ比較回路と発振回路との機能ブロック図を示す。
 ユニットデータ保存回路US11は、K個の記憶回路SRAM11~SRAM1Kを備える。記憶回路SRAM11には、参照データREF11の第1桁目の参照ビットデータが記憶されている。同様に、記憶回路SRAM1Kには、参照データREF11の第K桁目の参照ビットデータが記憶されている。
 ユニットデータ比較回路UC11は、Kビット減算器410と、絶対値演算回路420とを備える。Kビット減算器410及び絶対値演算回路420は、検索データSWと参照データREF11との差の絶対値を算出する。
 具体的には、Kビット減算器410は、参照データREF11の第1桁目の参照ビットデータと、検索データSWの第1桁目の検索ビットデータとを差分する。そして、絶対値演算回路420は、その差分値を絶対値に換算し、出力信号OJ1及び/OJ1として出力する。出力信号/OJ1は出力OJ1の反転信号である。
 同様に、Kビット減算器410は、参照データREF11の第2桁目の参照ビットデータと検索データSWの第2桁目の検索ビットデータとを差分する。そして、絶対値演算回路420は、その差分値を絶対値に換算し、出力信号OJ2及び/OJ2として出力する。Kビット減算器410及び絶対値演算回路420は、参照データREF11の第3桁目以降のビットデータについても同様に算出し、出力信号OJ3~OJK及び/OJ3~/OJKを出力する。
 同じ第1行のデータユニット保存回路US11~US1Wに格納された参照データREF11~REF1Wと検索データSW~SWの比較結果(出力信号OJ1~OJK×W個分)は、全て、同じ発振回路OCMに入力される。
 発振回路OCMは、比較回路C1の比較結果、つまり、求められた参照データREFと検索データSWとのマンハッタン距離に応じて、出力するパルス信号Pの発振周波数を決定する。
 発振回路OCMの機能ブロック図を図19に示す。発振回路OCMは偶数個の遅延回路DL101~DL10Wと、NANDゲート300とを備える。偶数個の遅延回路DL101~DL10WとNANDゲート300とは、動作時に、入力信号を反転する反転回路として機能する。したがって、発振回路OCM1は、ループ状に直列に連結された複数の反転回路を備える。遅延回路DL101の出力は外部に出力されると共に、NANDゲート300に入力される。つまり、遅延回路DL101~DL10W及びNANDゲート300はリングオシレータを構成する。
 遅延回路DL101はデータユニット保存回路US11に対応する。遅延回路DL102はデータユニット保存回路US12に対応する。以降、同様に、遅延回路DL103~DL10Wは、データユニット保存回路US13~US1Wにそれぞれ対応する。
 遅延回路DL101の構成を図20に示す。遅延回路DL101は、複数の遅延回路DJ~DJと、インバータI50とを備える。遅延回路DJ~DJ及びインバータI50は直列に接続される。
 遅延回路DJは、遅延段DEL1と段数選択回路55とを備える。遅延段DEL1は、直列に接続された複数のインバータで構成される。遅延回路DJは、出力信号OJ1に応じて、利用するインバータ段数を選択する。換言すると、遅延回路DJは、信号OJ1に応じて遅延段DEL1を利用するか否かを選択する。
 距離判定回路DJは、遅延回路DL102からの出力を受ける。そして、ユニットデータ比較回路UC11から出力された信号OJ1及び/OJ1に基づいて、ユニットデータ保存回路US11に保存された参照データREF11のうち、第1桁目の参照ビットデータの距離を求める。参照データREF11の第1桁目の参照ビットデータが、検索データSWの第1桁目の検索ビットデータと一致するとき、信号OJ1はHレベルとなり、信号/OJ1はLレベルとなる。一方、参照データREF11の第1桁目の参照ビットデータが、検索データSWの第1桁目の検索ビットデータと一致しないとき、信号OJ1はLレベルとなり、信号/OJ1はHレベルとなる。
 段数選択回路55は、トランスファゲートGT10とGT11とを備える。トランスファゲートTG10及びTG11は並列に接続される。遅延段DEL1は、遅延回路DJの入力端子とトランスミッションゲートGT10との間に接続される。
 参照データREF11の第1桁目の参照ビットデータと検索データSWの第1桁目の検索ビットデータとが一致するとき、トランスファゲートTG11がオンになり、TG10がオフになる。この場合、入力信号は遅延段DEL1を通らずにトランスファゲートGT11を通過し、外部に出力される。
 一方、参照データREF11の第1桁目の参照ビットデータと検索データSWの第1桁目の検索ビットデータとが一致しないとき、トランスファゲートGT10がオンになる。この場合、入力信号は遅延段DEL1により設定された遅延時間ΔT1だけ遅延して、外部に出力される。
 要するに、遅延回路DJは、2通りの遅延時間を設定でき、参照ビットデータと検索ビットデータとが異なる場合に2通りの遅延時間のうち、長い方の遅延時間を選択する。
 遅延回路DJ~DJも遅延回路DJと同様に動作する。各遅延回路DJ2~DJkは、2通りの遅延時間を設定でき、参照ビットデータと検索ビットデータとの比較結果に応じて2通りの遅延時間のいずれかを選択する。そのため、遅延回路DL101は、kビットの参照ビットデータとkビットの検索ビットデータとの比較結果に基づいて、2通りの遅延時間を設定できる。換言すると、遅延回路DL101は、互いに遅延時間の異なる2通りのパスを備え、k個の参照ビットデータとk個の検索ビットデータとのマンハッタン距離に応じてパスを選択する。
 遅延回路DJ内の遅延段の遅延時間は、遅延段DELの2倍とする。つまり、桁が上がるに従って遅延時間ΔTを長く設定する。これにより、桁が最上位ビットに近いほど、長い遅延時間が設定される。つまり、マンハッタン距離が大きい程、遅延時間が長くなる。
 各遅延回路DL102~DL10Wも、遅延回路DL101と同じ構成を有し、同様の動作をする。そのため、発振回路OCMは、保存回路S1に保存された参照データと検索データとのマンハッタン距離に応じた発振周波数の信号を出力する。具体的には、参照データと検索データとのマンハッタン距離が近い程、高い発振周波数の信号を出力する。
 上述では第1行の保存回路S、比較回路C及び発振回路OCMの構成及び動作を説明した。しかしながら、第2行目以降の保存回路S~S、比較回路C~C及び発振回路OCM~OCMの構成及び動作も、保存回路S、比較回路C及び発振回路OCMと同様である。
 したがって、連想メモリ400は、連想メモリ100と同様に、距離に応じて発振周波数を変更できる。
 [第8の実施の形態]
 本発明による連想メモリは、ハミング距離やマンハッタン距離だけでなく、ユークリッド距離にも適用できる。
 ユークリッド距離に適用される連想メモリの構成は、連想メモリ400と同様である。メモリ部1内のユニットデータ保存回路US11~US1W、US21~US2W、・・・、USR1~USRWの各々は、参照データをKビット単位で保存する。第i行の保存回路Siに保存された参照データREFのうち、ユニットデータ保存回路USijに保存されたデータを参照データREFijとする。つまり、第i行に保存された参照データREFは、REFi1、REFi2、・・・REFij、・・・REFiwで構成される。また、外部から入力される検索データをSWとする。検索データSWは、SW、SW、・・・SW、・・・SWで構成される。
 検索データSWと参照データREFとの間のユークリッド距離は、次の式(2)で示される。
Figure JPOXMLDOC01-appb-M000002
 ユニットデータ保存回路USijはKビットの参照データREFijを保存する。そのため、ユニットデータ保存回路USijはK個の記憶回路(SRAM素子)を備える。各記憶回路は、参照データREFijの各桁のビットデータ(第1桁のビットデータ~最上位(第k桁)ビットデータ)をそれぞれ記憶する。
 ユニットデータ比較回路UCijは、対応するユニットデータ保存回路USijに保存された参照データREFij(kビット)と、検索データSW(kビット)とのユークリッド距離を算出する。
 図21に、第1行(i=1)に配置されるユニットデータ保存回路とユニットデータ比較回路と発振回路との機能ブロック図を示す。
 ユニットデータ保存回路US11は、K個の記憶回路SRAM11~SRAM1Kを備える。記憶回路SRAM11には、参照データREF11の第1桁目のビットデータが記憶されている。同様に、記憶回路SRAM1Kには、参照データREF11の第K桁目のビットデータが記憶されている。
 ユニットデータ比較回路UC11は、Kビット減算器410と、絶対値演算回路420と、比較電流信号生成回路430と、アナログスクエア回路440と、A/Dコンバータ450とを備える。
 Kビット減算器410及び絶対値演算回路420は、検索データSWと参照データREF11との差の絶対値を算出する。算出結果は、対応する比較電流信号生成回路430で絶対値に応じた値のアナログ電流に変換される。
 変換されたアナログ電流はアナログスクエア回路440で2乗される。これにより、参照データREF11と、検索データSWとのユークリッド距離がアナログ電流値で出力される。
 A/Dコンバータ450は、出力されたアナログ電流をデジタル変換する。これにより、ユークリッド距離がnビットのデジタルデータで出力される。
 発振回路OCEは、発振回路OCやOCMと同様に、ユークリッド距離に応じた発振周波数のパルス信号Pを出力する。発振回路OCEは、複数のインバータからなる遅延段と、段数選択回路とを備える。発振回路OCE内の段数選択回路は、ユークリッド距離が小さいほど、使用するインバータ段数を少なく選択する。そのため、ユークリッド距離が小さいほど高い発信周波数のパルス信号Pが出力される。
 第1行の保存回路S内の他のユニットデータ保存回路US12~US1W、ユニットデータ比較回路UC12~UC1Wの動作も上述の通りである。また、第2行目以降の保存回路S~S、比較回路C~C及び発振回路OCE~OCEの構成及び動作も、保存回路S、比較回路C及び発振回路OCEと同様である。したがって、ユークリッド距離を適用した連想メモリも、連想メモリ100と同様に、距離に応じて発振周波数を変更できる。
 [第9の実施の形態]
 上述の実施の形態において、WTA回路20(図5)やWTA回路25(図9)について説明した。しかしながら、WTA回路は、図5や図9に限定されない。
 図22は、WTA回路の他の例を示す。図22を参照して、WTA回路350は、検知回路351と、複数の判定回路JC11~JC1Rとを備える。判定回路JC11は発振回路OCに対応し、発振回路OCの出力信号を受ける。同様に、判定回路JC12は発振回路OCに対応し、発振回路JC1Rは発振回路OCに対応する。
 判定回路JC11は、判定回路JCと比較して、放電回路250及びクロック生成回路253を有さない。他の構成は判定回路JCと同じである。判定回路JC12~JC1Rの構成は、判定回路JC11と同じである。
 検知回路351は、発信回路OC~OCの出力を受け、最も早く出力されたパルス信号を検知する。検知回路351は、最も早く出力されたパルス信号を受けたとき、検知信号を出力する。より具体的には、検知回路351は、各判定回路JC11~JC1R内のインバータI20の出力を受ける。そして、いずれかのインバータI20から最初にパルス信号を受けたとき、検知信号を出力する。
 判定回路JC11~JC12内のラッチ回路252は、インバータI20の出力を受ける。つまり、対応する発振回路OC~OCの出力信号を受ける。そして、検知信号を受けたとき、発信回路OC~OCからの出力信号をラッチする。
 判定回路JC11が、最も早くパルス信号を受けるとき(つまり、発振回路OCが最も周波数の高いパルス信号を出力するとき)、判定回路JC11内のラッチ回路252は、Hレベルの信号をラッチする。そして、他の判定回路JC12~JC1R内のラッチ回路252は、Lレベルの信号をラッチする。以上の結果、判定回路JC11はWinnerを示すHレベルの判定信号JSを出力し、他の判定回路JC12~JC1Rは、Loserを示す判定回路JS~JSを出力する。
 検知回路350は、各判定回路JC11~JC1R内のインバータI20の出力を受けるワイヤードOR回路であってもよいし、複数段のOR回路で構成されてもよい。
 以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。

Claims (12)

  1.  複数の参照データを保存する保存手段と、
     入力された検索データと、前記複数の参照データの各々とを並列に比較して、前記検索データと前記参照データとの距離を、前記参照データごとに求める比較手段と、
     前記求めた距離に応じた周波数を有するパルス信号を前記参照データごとに生成するパルス生成手段と、
     前記生成された複数のパルス信号の周波数に基づいて、前記複数の参照データのうち、前記検索データに最も近い参照データを決定する決定手段とを備える連想メモリ。
  2.  請求項1に記載の連想メモリであって、
     前記パルス生成手段は、
     前記複数の参照データに対応した複数の発振手段を備え、
     前記各発振手段は、前記検索データと前記対応する参照データとの距離が小さいほど、周波数の高い前記パルス信号を出力し、
     前記決定手段は、発振周波数の最も高いパルス信号を出力した発振手段に対応した参照データを、前記検索データに最も近い参照データに決定する連想メモリ。
  3.  請求項2に記載の連想メモリであって、
     前記決定手段はさらに、
     前記複数の発振手段に対応した複数の判定手段を備え、
     前記決定手段は、前記複数の判定手段のうち、前記発振手段からのパルス信号を最も早く受信した判定手段に基づいて、前記検索データに最も近い参照データを決定する連想メモリ。
  4.  請求項2に記載の連想メモリであってさらに、
     前記発振回路に対応した複数の分周手段を備え、
     各分周手段は、対応する発振手段から出力されたパルス信号を所定の分周比で分周して、対応する判定手段に出力する連想メモリ。
  5.  請求項3に記載の連想メモリであって、
     前記決定手段は、
     前記複数の判定手段に接続されたラッチ指示ノードと、
     前記ラッチ指示ノードを充電する充電手段とを備え、
     前記各判定手段は、
     対応する前記発振手段からの出力信号を受け、前記出力信号が前記パルス信号であるとき前記ラッチ指示ノードを放電する放電手段と、
     前記ラッチ指示ノードが放電されたときに前記放電手段が受けている前記出力信号をラッチするラッチ手段とを備える連想メモリ。
  6.  請求項2に記載の連想メモリであって、
     前記決定手段は、
     複数段のトーナメント式に接続された複数の判定手段を備え、
     第1段目に配置された複数の判定手段の各々は、
     各々が対応する発振手段の出力信号を受ける複数の第1のパルス判定手段と、
     前記複数の第1のパルス判定手段に接続されたパルス受付判定ノードと、
     前記パルス受付判定ノードを充電する充電手段とを備え、
     前記第1のパルス判定手段は、
     前記対応する発振手段の出力信号としてパルス信号を受けたとき、前記パルス受付ノードを放電する第1の放電手段と、
     クロック信号を受けたとき前記第1の放電手段が受けている出力信号をラッチするラッチ手段とを備え、
     第2段目以降に配置された判定手段は、
     各々が、前段の対応する判定手段のパルス受付判定ノードに接続された、複数の第2のパルス判定手段と、
     前記複数の第2のパルス判定手段が接続されたパルス受付判定ノードと、
     前記充電手段とを備え、
     前記第2のパルス判定手段は、
     前段の対応するトーナメント判定手段のパルス受付判定ノードが放電されたとき、前記パルス受付ノードを放電する第2の放電手段を備え、
     最上段の判定手段はさらに、
     前記パルス受付判定ノードが放電されたとき、クロック信号を出力するクロック信号生成手段を備える連想メモリ。
  7.  請求項2に記載の連想メモリであって、
     前記発信手段は、直列に接続された複数のインバータと、
     前記検索データと前記対応する参照データとの距離に応じて、前記インバータの段数を選択する段数選択手段とを備える連想メモリ。
  8.  請求項2に記載の連想メモリであって、
     前記決定手段は、
     複数の前記発振手段に対応する複数のカウンタ手段を備え、
     前記カウンタ手段は、対応する発振手段からパルス信号を受け、所定数のパルスを受けたとき活性化された出力信号を生成する連想メモリ。
  9.  請求項2に記載の連想メモリであってさらに、
     j(jは、1<j≦kを満たす整数、kは、2以上の整数)回目の検索において、j-1回目までに決定手段により決定された参照データに対応する発振手段から出力されたパルス信号を無効化するパルス無効化手段を備えることを特徴とする連想メモリ。
  10.  請求項2に記載の連想メモリであって、
     前記参照データは、複数の参照ビットデータを含み、
     前記検索データは、前記参照ビットデータに対応する複数の検索ビットデータを含み、
     前記比較手段は、前記各参照ビットデータと前記各検索ビットデータとをハミング距離に基づいて比較し、
     前記発信手段は、
     直列に接続される複数の遅延手段を備え、
     前記各遅延手段は、L+1個(Lは自然数)通りの遅延時間を設定可能であり、L個の参照ビットデータ及び検索ビットデータの比較結果に応じて、前記遅延時間を選択する連想メモリ。
  11.  請求項2に記載の連想メモリであって、
     前記参照データは、複数の参照ビットデータを含み、
     前記検索データは、前記参照ビットデータに対応する複数の検索ビットデータを含み、
     前記比較手段は、前記参照ビットデータと前記検索ビットデータとをマンハッタン距離に基づいて比較し、
     前記発信手段は、
     直列に接続される複数の遅延手段を備え、
     前記各遅延手段は、2(kは自然数)通りの遅延時間を設定可能であり、k個の参照ビットデータ及び検索ビットデータの比較結果に応じて、前記遅延時間を選択する連想メモリ。
  12.  請求項3に記載の連想メモリであって、
     前記決定手段はさらに、
     前記複数の発信手段から出力されるパルス信号のうち、最も早く出力されたパルス信号を検知する検知手段を備え、
     前記各判定手段は、
     対応する前記発信手段から出力信号を受け、前記検知手段が最も早く出力されたパルス信号を検知したとき、前記出力信号をラッチする、連想メモリ。
PCT/JP2010/066563 2009-10-01 2010-09-24 連想メモリ WO2011040335A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/499,112 US8587980B2 (en) 2009-10-01 2010-09-24 Associative memory

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-229601 2009-10-01
JP2009229601A JP5224601B2 (ja) 2009-10-01 2009-10-01 連想メモリ

Publications (1)

Publication Number Publication Date
WO2011040335A1 true WO2011040335A1 (ja) 2011-04-07

Family

ID=43826155

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/066563 WO2011040335A1 (ja) 2009-10-01 2010-09-24 連想メモリ

Country Status (3)

Country Link
US (1) US8587980B2 (ja)
JP (1) JP5224601B2 (ja)
WO (1) WO2011040335A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013101729A (ja) * 2011-11-07 2013-05-23 Hiroshima Univ 連想メモリ
WO2014030383A1 (ja) * 2012-08-23 2014-02-27 国立大学法人広島大学 連想メモリ

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6085187B2 (ja) * 2013-02-13 2017-02-22 国立大学法人広島大学 連想メモリ
JP6308216B2 (ja) * 2013-06-26 2018-04-11 日本電気株式会社 連想メモリセル及び連想メモリ
US10439599B2 (en) * 2015-09-24 2019-10-08 Intel Corporation Non-boolean associative processor degree of match and winner take all circuits
US10741228B2 (en) 2016-03-28 2020-08-11 Tohoku University Memory device
US10643701B2 (en) 2016-05-13 2020-05-05 Tohoku University Memory device and memory system
US11837289B2 (en) * 2021-08-31 2023-12-05 International Business Machines Corporation Compact low-leakage multi-bit compare CAM cell
EP4283620A1 (en) * 2022-05-24 2023-11-29 Nokia Technologies Oy Determining distances between vectors

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002288985A (ja) * 2001-01-19 2002-10-04 Univ Hiroshima 半導体連想メモリ
JP2005209317A (ja) * 2004-01-26 2005-08-04 Hiroshima Univ 最小マンハッタン距離検索連想メモリ装置
JP2009134810A (ja) * 2007-11-30 2009-06-18 Hiroshima Univ 連想メモリおよびそれを用いた検索システム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1227497B1 (en) 2001-01-19 2006-05-31 President of Hiroshima University Semiconductor associative memory
US7852652B1 (en) * 2007-06-29 2010-12-14 Netlogic Microsystems, Inc. Match line precharge circuits and methods for content addressable memory (CAM) device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002288985A (ja) * 2001-01-19 2002-10-04 Univ Hiroshima 半導体連想メモリ
JP2005209317A (ja) * 2004-01-26 2005-08-04 Hiroshima Univ 最小マンハッタン距離検索連想メモリ装置
JP2009134810A (ja) * 2007-11-30 2009-06-18 Hiroshima Univ 連想メモリおよびそれを用いた検索システム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"2010 fifth IEEE International Symposium on Electronic Design, Test and Applications, IEEE", 13 January 2010, article T. T. BUI ET AL.: "A Low-Power Associative Processor with the R-th Nearest-Match Hamming- Distance Search Engine Employing Time-Domain Techniques", pages: 54 - 57, XP031653277 *
"Proceedings of the 24th European Solid-State Circuits Conference (ESSCIRC 1998), IEEE", 22 September 1998, article M. IKEDA ET AL.: "Time-Domain Minimum- Distance Detector and Its Application to Low Power Coding Scheme on Chip Interface", pages: 464 - 467, XP010823514 *
"Proceedings of the 36th European Solid-State Circuits Conference (ESSCIRC 2010), IEEE", 14 September 2010, article H. J. MATTAUSCH ET AL.: "Low-Power Word- Parallel Nearest-Hamming-Distance Search Circuit based on Frequency Mapping", pages: 538 - 541, XP031788427 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013101729A (ja) * 2011-11-07 2013-05-23 Hiroshima Univ 連想メモリ
WO2014030383A1 (ja) * 2012-08-23 2014-02-27 国立大学法人広島大学 連想メモリ

Also Published As

Publication number Publication date
US8587980B2 (en) 2013-11-19
JP2011076688A (ja) 2011-04-14
US20120188811A1 (en) 2012-07-26
JP5224601B2 (ja) 2013-07-03

Similar Documents

Publication Publication Date Title
JP5224601B2 (ja) 連想メモリ
KR100810778B1 (ko) 다중매치검출회로 및 방법
US9620214B2 (en) Content addressable memory with reduced power consumption and increased search operation speed
US7596010B2 (en) Semiconductor memory device
US11527282B2 (en) SRAM with burst mode operation
US10770132B1 (en) SRAM with burst mode address comparator
JP5893465B2 (ja) 連想記憶装置
US8400803B2 (en) Content addressable memory device
WO2000041055A2 (en) Match line control circuit for content addressable memory
JP2009134810A (ja) 連想メモリおよびそれを用いた検索システム
CN117271436B (zh) 基于sram的电流镜互补存内计算宏电路、及芯片
JP5800422B2 (ja) 連想メモリ
US6795325B1 (en) Semiconductor memory
CN101950584B (zh) 内容定址存储器及其设计方法
US9911496B2 (en) Associative memory for realizing a k-nearest neighbors algorithm
JP5035732B2 (ja) オフセット除去回路、それを備えた連想メモリおよびオフセット電圧の除去方法
EP4205112A1 (en) Sram with advanced burst mode address comparator
Yeo et al. State of the art ML sensing schemes for low-power CAM in nano-scale CMOS technologies
Manikandan et al. Design of novel CAM core cell structures for an efficient implementation of low power BCAM system
Jia et al. A low power and high speed CAM design using pulsed voltage for search-line
Yang et al. Novel content addressable memory architecture for adaptive systems
KR20100138445A (ko) 반도체 장치 및 반도체 장치의 내부전압 발생회로

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10820452

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
WWE Wipo information: entry into national phase

Ref document number: 13499112

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10820452

Country of ref document: EP

Kind code of ref document: A1