WO2021199386A1 - 曖昧検索回路 - Google Patents

曖昧検索回路 Download PDF

Info

Publication number
WO2021199386A1
WO2021199386A1 PCT/JP2020/015100 JP2020015100W WO2021199386A1 WO 2021199386 A1 WO2021199386 A1 WO 2021199386A1 JP 2020015100 W JP2020015100 W JP 2020015100W WO 2021199386 A1 WO2021199386 A1 WO 2021199386A1
Authority
WO
WIPO (PCT)
Prior art keywords
circuit
signal
storage
value
input
Prior art date
Application number
PCT/JP2020/015100
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 CN202080099451.9A priority Critical patent/CN115398545A/zh
Priority to PCT/JP2020/015100 priority patent/WO2021199386A1/ja
Priority to JP2022511446A priority patent/JP7475080B2/ja
Publication of WO2021199386A1 publication Critical patent/WO2021199386A1/ja
Priority to US17/958,898 priority patent/US11942152B2/en

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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
    • G11C15/046Digital 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 using non-volatile storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1063Control signal output circuits, e.g. status or busy flags, feedback command signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1069I/O lines read out arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0408Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
    • G11C16/0416Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing a single floating gate transistor and no select transistor, e.g. UV EPROM

Definitions

  • the present invention determines from external information which of the internal information stored in the internally mounted memory circuit is the optimum content, makes an ambiguous search for the entire memory circuit, and autonomously responds according to the determination.
  • the outline of the conventional associative memory technology will be described with reference to FIGS. 1 to 3.
  • the conventional associative memory technology is characterized in that it performs a search operation in addition to the operation performed by a general memory such as a read operation and a write operation to a cell in a cell matrix. be.
  • a general memory such as a read operation and a write operation to a cell in a cell matrix.
  • various methods are known as shown in FIG.
  • the storage circuit (or storage element) of the associative memory cell stores the storage data to be searched.
  • Input data that serves as a search key during a search is transmitted to the associative memory cell by a search line (or a search line and a bit line).
  • the associative memory cells ((A) to (D)) using the SRAM store the stored data in the FF (Flip-Flop) which is a storage circuit, and the associative memory cells (E) using the DRAM are floating.
  • the stored data is stored in the parasitic capacitance of the node, and the associative memory cell (F) using the resistance changing element stores the stored data in the resistance changing element.
  • the associative memory cell (A) to (D)) using SRAM are connected in series according to the stored data stored in the storage circuit FF (Flip-Flop) and the potential input from the search line.
  • the ON or OFF of the transistor train is controlled, and when it is ON, the current is conducted from the match line.
  • the associative memory cell (E) using the DRAM conducts current from the match line according to the storage data stored in the parasitic capacitance of the floating node and the potential input from the search line.
  • the associative memory cell (F) using the resistance changing element conducts a current from the match line according to the storage data stored in the resistance changing element and the potential input from the search line.
  • a Binary (binary) type associative memory cell has one storage circuit (or storage element), and a Terray (3 value) type associative memory cell has two storage circuits (or storage elements). Have an individual. The reason why there are many Terrany type storage circuits (or storage elements) is that not only the value 1 or the value 0 is stored as data, but also the mask state called ignore (Don't Care) is stored. ..
  • FIG. 2 is a block diagram of an associative memory in which cells of a SRAM-based Terrany (ternary) type associative memory (CAM: Content Addressable Memory) are arranged in a matrix of M rows ⁇ N columns. In FIG. 2, only the four corners of the M-row ⁇ N-column matrix are displayed.
  • SRAM-based Terrany ternary
  • CAM Content Addressable Memory
  • the search key (input data) input from the outside is transmitted to the associative memory cell of each row in the cell matrix via the search line.
  • the stored data of the FF of the associative memory cell and the input signal transmitted from the search line are out of phase, both data are interpreted as “matching (or matching)".
  • the stored data and the input data are in opposite phase, such as High and Low, or Low and High, the time is "match (or match)".
  • the two gate electrodes of the two transistors in series in the associative memory cell have in-phase inputs such as High and High, or Low and Low.
  • one of the sets is in the ON state, so that the current is conducted to the match line through the one set.
  • one bit of the associative memory cell includes two FFs that are storage circuits, it is necessary to operate the pair of search lines and bit lines for at least two cycles during both the read operation and the write operation. Both the read data and the write data are 2N bits.
  • the word circuit includes one match line and two word lines.
  • FIG. 3 shows the configuration and operation of a word circuit consisting of N cells of the SRAM-based Terrany (ternary) type associative memory of FIG. 1 (C).
  • the notation from cell [3] to cell [N-2] is omitted.
  • the access transistor transistor that conducts a current between the bit line and the storage circuit
  • FF storage circuit
  • the match line aggregates the currents conducted by each cell in the word circuit and sends them to the match determination circuit.
  • the match determination circuit was usually provided with a transistor for setting the match line to a voltage at the RESET potential and a control signal (RESET_bar) for that purpose.
  • RESET_bar a control signal
  • the match line has no current to conduct the cell of the associative memory and there is no potential fluctuation, so the potential level (RESET potential) before the input data is transmitted. To maintain.
  • the output of the match judgment circuit was sent to the address encoder circuit, generated the physical address of the match judgment circuit that detected the match, and output it as "match address output”.
  • Such associative memory is used for packet data processing in network routers, memory management of parallel computers, and the like.
  • the conventional associative memory technology can be interpreted as matching the case where the Hamming distance between the opposite phase of the input data and the stored data is zero.
  • both input data and collation data are generally regarded as multidimensional vectors, and the degree of coincidence is measured by the inner product between the two vectors.
  • the maximum value of the inner product is not a constant value and is collation data. Since it can be different for each, there is a problem that the conventional ternary associative memory (Ternary CAM) cannot handle it.
  • the number of bits having a value of 1 is 1 compared to the number of bits having a value of 0 when the word length is long, even if the individual bits are used. Tends to decrease.
  • the current conduction between the associative memory cell and the match line is not the time of "mismatch” but the time of "match", and the architecture that detects "some degree of match” without spending multiple rows (words). Was required.
  • search The process of finding "stored data that matches the input data” from the many stored data stored on the integrated circuit or in the storage device is called “search”, but in contrast to the “search”, "to some extent with the input data”.
  • search the process of finding matching stored data is sometimes called “ambiguous search”.
  • the present invention is such a "circuit architecture that realizes ambiguous search", and using the circuit architecture, which is the most suitable content or the most suitable response program from external information to internally stored information. It is about the data processing circuit which discriminates whether it is, and responds and operates according to the discriminant.
  • each activation line (90 [0] to [m-1]) of a matrix circuit having a memory cell (10) for storing data has a pulse within a unit time. It is input as a group of input signals weighted by the number of signals, and the number of pulse signals conducting to each activation line according to the data of the memory cell (10) is set to the detection line (70 [0] to [k-1]). And count by the sense circuit (101) and the counting circuit (207) connected to the detection line.
  • the number of pulse signals counted by the counting circuit (207) within a unit time approximates the internal product value between the input information (90) and the stored data of the memory cell (10), so that "similarity" is measured. Assuming that, a circuit that performs such an operation has a "matching degree determination circuit" as a basic main component.
  • the determination circuit (290) compares the expected number of pulses stored in the "second storage circuit (200)" with the number of pulses counted by the counting circuit (207). When the measured number of pulses exceeds the value of the "second storage circuit", a “signal meaning that the similarity is high” is output from the output terminal (260).
  • the “ambiguous search circuit” evaluates and searches the similarity between each of the "information stored inside” and the “input signal from the outside". ".
  • the “signal meaning that the similarity is high” generally, when the similarity is higher, the “signal meaning that the similarity is high” is output from the output terminal (260) earlier. Therefore, the “matching degree determination circuit” that outputs the “signal meaning that the similarity is high” at the earliest stage is regarded as "most matching".
  • the circuit that configures the “ambiguous search circuit” as the basic circuit allows “from external information to the information stored internally, whichever is the most suitable content, or the most suitable response program. It determines which one it is, and based on the result, constructs an autonomous response circuit that starts and responds to a subprogram.
  • the basic configuration of the "autonomous response circuit (801)" of the present invention is shown in FIG.
  • the "autonomous response circuit” is an ordinary “data processing circuit (725)” to which an “ambiguous search circuit (701)", a “memory circuit (735)”, and a “data compression circuit (745 and 755)” are added. "In response to the input information from the external information, which of the internally stored information is the most suitable content or which is the most suitable response program is determined, and the program is started and responds based on the result. ..
  • the present invention is a breakthrough in the developing "optimal electronic circuit for ambiguous search".
  • the technology of "quantifying the definition of similarity and determining the content that is most similar to the input information from the outside from the registered information” searches for vague but probable information based on the similarity, and is probabilistic. It is an indispensable technology for the process of making correct decisions, and will have a great impact on future data processing hardware.
  • Example of traditional associative memory cell Conventional associative memory circuit Word circuit of conventional associative memory Read circuit configuration example
  • Configuration example of a counting circuit using a shift register circuit Configuration example of shift register and judgment circuit Configuration example of the second storage circuit
  • Counter circuit configuration example Configuration example of judgment threshold storage circuit when a counter circuit is used Conceptual diagram of an ambiguous search circuit that outputs time-series information Explanation of Time Series Signal Generation by Ambiguous Search Circuit Figure 1 Explanation of Time Series Signal Generation by Ambiguous Search Circuit Figure 2 12th Embodiment of this invention 13
  • the constituent circuit elements are coded numerically in parentheses () at the end of the name of the constituent circuit elements or in the place where the colon ":" is inserted.
  • the numbers of the sign correspond to each other in the explanatory text and in the explanatory drawing.
  • the name of the component circuit element or the number of the code meaning the component circuit element and the number in alphanumeric characters enclosed in parentheses [].
  • a mathematical formula and it is a sahix that means the number or number of constituent circuit elements.
  • the name of the constituent circuit element in the explanatory text is used by enclosing it in parentheses symbol "" as much as possible.
  • value 1, value 0, High Level, and Low Level may be used for the stored value of the storage circuit and the level of the signal line. There is a difference in the potential level of the digital signal, and the value 1 does not necessarily mean High Level. Modifications with different polarities are always included in the examples, even if not specified. Modifications in which the internal form and arrangement form of the associative memory cell, memory cell, sense amplifier, storage circuit, write circuit, read circuit, control circuit, etc. are different are also expressed as the same embodiment. Also, in the explanatory text and the explanatory diagram, "signal” and “data” can sometimes have a difference in the meaning of information in the physical layer and information in the logical layer, but basically they have the same meaning. Use.
  • the "memory cell (10)" used is “controlling whether or not the current is conducted to the detection line or the bit line depending on the data stored inside. Although it is a "memory cell having a function of performing the above", such a function is common to all known memory cells, and the present invention does not select the type or method of the memory cell.
  • the unit of the circuit for the storage circuit to express a binary number is referred to as “unit storage circuit (55)”.
  • the "unit storage circuit (55)” includes one or a plurality of memory cells (10). Each memory cell (10) in the “unit storage circuit (55)” shares one “activation signal input line (90)", and the “activation signal input line (90)” is shared.
  • the conduction current generated for the signal from " is transmitted to different detection lines (70).
  • other variants are represented by using an example using any of the memory cell techniques.
  • the density of the pulse signal cannot be measured, and therefore the timing at which the density of the pulse signal changes cannot be understood.
  • the "predetermined time” which is the observation period, is excessively long, the density of the pulse signal may be averaged.
  • the "predetermined time” may depend on the “pulse signal width”, but both the “predetermined time” and the “pulse signal width” are application-dependent parameters.
  • an appropriate “predetermined time” is referred to as a "unit time”.
  • the "width of the pulse signal” is required to be a “width” that does not easily overlap with the "pulse signal” from other signal lines, but it is particularly defined because it depends greatly on the manufacturing technology for mounting the circuit. do not.
  • FIG. 5A is a block diagram conceptually showing the configuration of the degree of agreement determination circuit # 1.
  • FIG. 5B only the input / output of the matching degree determination circuit is shown.
  • FIG. 6 is a block diagram conceptually showing the configuration of the degree of agreement determination circuit # 2.
  • the matching degree determination circuit # 2 includes a first storage circuit (40) composed of a memory cell matrix, a counting circuit (207), a second storage circuit (200), and a determination circuit (290).
  • the input signal applied to the "activation signal input line (90)" of the matching degree determination circuit # 2 is a time series of pulse signals applied to each "activation signal input line (90)".
  • the signal value at the moment of t0) has no meaning as data, and has the time series of the pulse signal in the passage of a unit time; ⁇ Pulse signal density per "unit time” and -When the pulse signal density switches from "sparse to dense", -A sequence of signals that expresses a numerical value at a certain timing by using three types of information on the timing at which the density of the pulse signal switches from "dense to sparse".
  • the matching degree determination circuit # 2 converts the serial pulse signal information input from the sequence of the activation signal input line (90 [0: m-1]) by the first storage circuit (40), and serializes it.
  • the number of pulse signals of the detection line (70 [0: k-1]) of k lines transmitted as a group of pulse signals is accumulated by the counting circuit (207), and the generated numerical value is the second storage circuit.
  • the determination circuit (290) sequentially determines whether or not the threshold value set in (200) is exceeded, and when the threshold value is exceeded, a signal indicating that the threshold value is exceeded is output.
  • the “conversion performed by the storage circuit (40)” corresponds to the integrated value of the input activation signal (90 [0: m-1]) and the “memory value of the memory cell of the storage circuit (40)".
  • the conduction current pulse is generated, and the detection line (70) is the sum of the number of pulse signals generated by the input line (90 [0: m-1]) of each activation signal in the "unit time”. I can say.
  • the pulse signals generated by the input lines (90 [0: m-1]) of each activation signal may overlap, and the number of pulse signals may decrease, but at least the pulse signals. Approximate the sum of numbers.
  • Such a conversion similar to a matrix operation by integration and summing (sum of products) is "conversion performed by the storage circuit (40)".
  • the m memory cells (10) sharing the detection line (70) form a detection unit circuit (50), and receive activation signals input from m "activation signal input lines (90)". receive.
  • the activation signal is a pulse signal, and basically, the rising and falling timings of the pulses are not synchronized with each other.
  • the pulse signal transmitted through the "activation signal input line (90)" transmits meaningful information to the number of pulses transmitted during the "unit time” which is a relatively short time interval. For example, if the number of pulses transmitted in the "unit time” is 3, it means the numerical value "3", and if the number of pulses transmitted in the "unit time” is 7, the numerical value is "7", and so on. be.
  • Each of the “m memory cells (10)" has a current pulse on the “detection line (70)” according to the stored value in the memory cell and the pulse signal transmitted through the "activation signal input line (90)". Try to conduct. For example, when the stored value in the memory cell is “value 1”, when a pulse signal is transmitted from the “activation signal input line (90)", a current pulse is conducted to the “detection line (70)", but the memory When the stored value in the cell is "value 0", even if a pulse signal is transmitted from the "activation signal input line (90)", the current pulse is not conducted to the "detection line (70)".
  • the "detection unit circuit (50)" is the total number of conduction current pulses transmitted from each of m “activation signal input lines (90)" at the maximum.
  • the pulse current of the above is conducted to the “detection line (70)” and transmitted to the “counting circuit (207)” via the “detection line current reading circuit (101)".
  • the value is 1.
  • the pulsed conduction current change is converted into a "time-series digital pulse signal" so that the value becomes 0 when the current value is less than or equal to the current defined by the threshold value (112).
  • the number of the digital pulse signals is counted.
  • the supply of the sense circuit (101) and the threshold value (112) is an event that becomes necessary depending on the circuit scale and the method selection of the memory cell, and is not necessarily essential in the present invention.
  • the number to be counted is a finite value.
  • the "activation signal input line (90)" in FIG. 5A is generally called a word line.
  • the detection line (70) in FIG. 5A is generally called a bit line.
  • the word line is shown as a line extending in the horizontal direction and the bit line is shown as a line extending in the vertical direction. Therefore, the circuit representation in each diagram showing the embodiment of the present invention is ordinary. Please note that the circuit diagram of the memory is rotated 90 degrees counterclockwise.
  • the "activation signal input line (90)" in FIG. 5A corresponds to a search line that transmits a signal that forms a part of the search key at the time of search, and is a "detection line (detection line (90)".
  • 70) corresponds to Match Line.
  • the circuit representation in each diagram showing the embodiment of the present invention has the same vertical and horizontal arrangement as the circuit diagram of the memory cell for the normal associative memory, and is not rotated 90 degrees to the left.
  • the maximum number of current pulses that the memory cell (10 [i]) conducts is when the memory cell (10 [i]) conducts the current and the other memory cells (10) do not conduct the current. be.
  • the memory cell (10 [i]) detects the same number of current pulses as the number of input pulses. Conducts to (70).
  • the inner product of the vector "S” whose component is a numerical value consisting of the number of pulses possessed by the detection line (70) and the vector whose component is the data value of the memory cell connected to the detection line (70) (this vector is referred to as "M"). Approximate the calculation that takes the value.
  • the input data represented by the "time series of pulse signals applied to the activation signal line (90)", which is the output value of the counting circuit (207), and stored in the "first storage circuit (40)".
  • the "judgment circuit” outputs a "signal meaning that the similarity is high” at the output terminal (260). Output from.
  • the matching degree determination circuit outputs a "signal meaning that the similarity is high" from the output terminal (260), it will be referred to as "ignited”.
  • each component of the vector “S” is an integer value, but each component of the vector “M” is a one-digit number even as a binary number, and is "value 0" or "value 1". I could only take two values.
  • the k value is an integer value of k ⁇ 2
  • each component of the vector “M” is represented by a “unit storage circuit (55)” composed of a plurality of memory cells.
  • the memory circuit is a unit of the circuit for expressing a binary number.
  • Each memory cell (10) in the “unit storage circuit (55)” shares one “activation signal input line (90)", and the "activation signal input line (90)” is shared.
  • the present invention denies selecting a count other than "2 to the jth power; 2j". It is not something to do.
  • the counting circuit of the "correspondence degree determination circuit # 2" of the present invention shown in FIG. 6 has vector data that can be meant by "time series of pulse-shaped input signal group” and its memory cell. -Has the function and ability to count and output a signal that means the internal product value with the vector data stored in the array.
  • the output of the counting circuit (207) is determined by the numerical value stored in the second storage circuit (200) and the determination circuit (290). Will be compared.
  • the output from the determination circuit is such that the internal product value, which is the output value of the counting circuit, is greater than expected. It is a signal that means whether or not there is.
  • the "counting circuit" of the "matching degree determination circuit # 1" and the “matching degree determination circuit # 2" of the present invention means "time series of pulse-shaped input signal group” with the internal product calculation as the distance.
  • the distance between the possible vector data and the vector data stored in the memory cell array is calculated, and the “judgment circuit” stores the calculated distance in the “second storage circuit". It is determined whether or not the value is equal to or greater than the above value, and if it is "greater than or equal to", a signal meaning "ignition” is output.
  • the inner product value, which means distance can be regarded as “similarity”. Therefore, the "matching degree determination circuit” fires when it receives input data having a “similarity” higher than the numerical value stored in the "second storage circuit".
  • FIG. 7 is a block diagram schematically showing "ambiguous search circuit # 3" according to the third embodiment of the present invention.
  • Flash EEPROM is used as the memory cell of the first storage circuit, but as the memory cell of the present embodiment, "a current is conducted from a bit line by selecting a word line" including DRAM and SRAM.
  • Other memory cells may be used as long as they are "memory cells having a function”.
  • the "activation signal input line (90)” corresponds to the "word line” of the Flash EEPROM memory cell
  • the "detection line [70]” is a "bit line”.
  • the "word line” is connected to the gate terminal of the memory cell (in the case of this embodiment, Flash EEPROM), and the "bit line” is connected to the drain terminal of the memory cell.
  • the circuit that controls reading and writing to the memory cell of the Flash EEPROM and the bit line and word line used at that time are generally known techniques, they are not described in this figure to avoid complication. ..
  • FIG. 8 is a block diagram schematically showing a “correspondence degree determination circuit # 4” according to a fourth embodiment of the present invention.
  • the output data storage circuit receives the “matching degree determination circuit # 4”, a signal (260) output by the determination circuit, which means that the output data has been exceeded, and sequentially outputs the storage data of the output data storage circuit.
  • FIG. 9 is a block diagram schematically showing an "ambiguous search circuit # 1" according to a fifth embodiment of the present invention.
  • the ambiguity search circuit # 1 (11) has n sets of match degree determination circuits of either match degree determination circuit # 1, match degree determination circuit # 2, or match degree determination circuit # 3, and further. Common circuits such as “activation line drive circuit (155)”, “first threshold generation circuit (111)”, “first control circuit (120)”, and “read / write circuit of second storage circuit (read / write circuit) 570) ”is provided.
  • the concordance degree determination circuit (9) in FIG. 9 means the concordance degree determination circuit # 1, the concordance degree determination circuit # 2, or the concordance degree determination circuit # 3.
  • the “activation line drive circuit (155)” input from the outside generates a signal of the “activation signal input line (90)” based on the “input signal (80)", and causes each matching degree determination circuit. It is sent as an input signal.
  • the “first threshold value generation circuit (111)” sets the threshold value (112) of the “detection line current reading circuit (101)” of each matching degree determination circuit.
  • the “read / write circuit (570) of the second storage circuit” receives the signal of the “first control circuit (120)” and receives the signal of the “second storage circuit (200)” of each matching degree determination circuit. Read and write.
  • the “first control circuit (120)” also controls the counting operation of the “counting circuit (207)”. Further, the “counting circuit (207)", the “second storage circuit (200)”, and the “read / write circuit (570) of the second storage circuit” are controlled to control the entire ambiguous search circuit # 1 (11). Set and control the operation mode.
  • the block diagram inside the matching degree determination circuit shown in FIG. 9 is that of the matching degree determination circuit # 2. Further, in FIG. 9, the circuit that controls reading and writing to the “first storage circuit (40)” and the bit lines and word lines used at that time are shown to avoid complication of the figure. No. The circuit that controls reading and writing to the "first storage circuit (40)" and the bit lines and word lines used at that time have generally known configurations and are not the essence of the present invention.
  • the match degree determination circuit is also ambiguous
  • the search circuit has at least a "setting mode”, a “measurement mode”, and a “maintenance” controlled by a first control circuit (120) that operates based on an external control signal input (153). ⁇ Has a mode.
  • the “maintenance mode” the operation of reading or writing the data stored in the first storage circuit (40), the second storage circuit (200), and the ignition cell (530) is performed.
  • the operation modes of the "setting mode” and the “measurement mode the operations of the "counting circuit (207)” and the "second storage circuit (200)” are different.
  • the “setting mode” is an operation of setting data in the storage circuit of the "second storage circuit (200)", and there are at least two types of setting methods.
  • the “second read / write signal (210)” given to the “second storage circuit (200)” from the outside under the control of the “first control circuit (120)” Write data.
  • the write data goes through the “read / write circuit (570) of the second storage circuit”.
  • control circuit (120) selects the counting circuit (207) and the second storage circuit (200) of any of the matching degree determination circuits, and the second storage circuit (200) and the counting circuit (200) among them are selected.
  • the control circuit (120) selects the counting circuit (207) and the second storage circuit (200) of any of the matching degree determination circuits, and the second storage circuit (200) and the counting circuit (200) among them are selected.
  • the input data from the “second read / write signal (210)” is transferred to the “second storage circuit (200)”.
  • the stored data of the“ second storage circuit (200) ” is output to the terminal of the“ second read / write signal (210) ”.
  • the following operation flow is assumed.
  • pulse signals are sequentially applied to the input line of the first storage circuit (40) from the outside at a timing that does not overlap.
  • the current pulse or voltage pulse generated in the detection line as a result of the first stage is counted by the counting circuit (207).
  • the counting result is written in the second storage circuit (200).
  • the counting result counted based on the number of cells of "value 1" in the memory cell (10) of the first storage circuit (40) is "second storage circuit (200)".
  • This counting result is a counting value counted when each of m activation signal lines (90) is activated only once, and is a memory cell connected to a detection line (70) that stores "value 1". It is the number of (10).
  • the pulse signal applied to the "activation signal input line (90)" is counted by the “measurement circuit (207)", and the value generated based on the numerical value and the “second memory circuit (200)” are used.
  • the values stored in “” are compared at any time by the "judgment circuit (290)", and the judgment result is output.
  • the “determination circuit (290)” may be determined by using the value of the “second storage circuit (200)” itself or a numerical value generated based on this value as a threshold value.
  • FIG. 16 is a block diagram showing the internal configuration of the “counting circuit (207)”, which is the main constituent circuit of the coincidence determination circuit of the present invention, and the connection relationship with other circuits connected to the counting circuit.
  • the “k value” representing the number of the detection unit circuit (50), the detection line (70), and the detection line current reading circuit (101) constituting the first storage circuit (40) is “3”. It is assumed that there is. Further, the values corresponding to the "weighting coefficient set in advance for each detection line" in claim 2 are “1" for the detection line (70 [0]) and “1" for the detection line (70 [1]). It is set to "2", and it is set to "4" for the detection line (70 [2]).
  • the counting circuit (207) is composed of a counting circuit front stage circuit (208) and other counting circuit rear stage circuits, and the counting circuit front stage circuit (208) is composed of a counting circuit front stage circuit (208).
  • the number of pulses transmitted from these signals is counted by a counter circuit (508, 509, 511), converted into 3-digit, 2-digit, and 1-digit binary numbers, respectively.
  • the number of pulses transmitted from 70 [2] is 70 [2] for the 3-digit, 2-digit, and 1-digit binary numbers counted by the counter circuit (508, 509, 511).
  • the second digit of the number of pulses transmitted from 1] was added to the second and third digit values of the number of pulses transmitted from 70 [0] to the number of pulses transmitted from 70 [1].
  • a coefficient 4 is used for the number of pulses counted based on the signal from 70 [2]
  • a coefficient is used for the number of pulses counted based on the signal from 70 [1].
  • the number of pulses counted based on the signal from 70 [0] is multiplied by a coefficient of 1, and the sum of them is taken. [Claim 2]
  • the "carrying highest digit value" is applied to the shift register circuit (202) as a 1-bit signal. Digits other than the highest digit of the circuit (208) are rounded down. This has the effect of reducing the circuit scale of the subsequent circuit (209) of the measurement circuit.
  • [Structure of shift register circuit and judgment circuit] 17 and 18 show the "shift register circuit (202)” and the “determination circuit (290)” which are the main circuits constituting the "counting circuit (207)” which is the main component circuit of the match determination circuit of the present invention. It is a block diagram which shows the internal structure with a "second storage circuit (200)".
  • the "Counting Input (201)” input from the left end of FIG. 17 is the output of the "counting circuit pre-stage circuit (208)".
  • the Shift Forward (598) is "value 1”
  • the Shift Response (599) is "value 0”
  • the "value 1" of the FF of the SRU is, for example, in the case of the Fip-Flop consisting of G213 and G214 (FF in SRU [0]), the right node (212) becomes the High level and the left node ( 211) is the state where the Low level is reached.
  • Shift Forward (598) is "value 0"
  • Shift Response (599) is "value 0"
  • the FF data in the SRU consisting of SRU [0] to SRU [x-1] is displayed on the right side of the figure. Shift to the left side, and set "value 0" to the FF of SRU [X-1], which is the rightmost SRU.
  • the value of the Flip-Flop (FF) in the "shift register circuit (202)" may be written as the value of the "second storage circuit (200)". For example, if the data value when the "second storage circuit (200)" is reset is "All zero", the right node of all Flip-Flops will be at the Low level, so that value will be the shift register ( When written in 202), all the FFs in the shift register circuit are also set to "value 0".
  • the determination circuit (290) has a delay circuit composed of a 2-input NAND and an inverter, and the part corresponding to the "value 1" of the shift register is a part corresponding to the "value 1" of the shift register, although the 2-input NAND functions as an inverter, the "value 1" and the “value”.
  • the Low level signal is received from the 2-input NAND from the shift register (202), and the High level signal is received in the other regions. A level appears.
  • FIG. 19 shows an example in which the subsequent circuit of the counting circuit of the “counting circuit (207)”, which is the main constituent circuit of the coincidence determination circuit of the present invention, is configured by using a counter circuit.
  • the "counting circuit front-stage circuit (208)” is the same as the “counting circuit configuration example using the shift register circuit” in FIG. 16, but the components of the “counting circuit rear-stage circuit (209)” are different. It is replaced with the configuration using the "counter circuit” shown in 16 and the "second storage circuit when the counter circuit is used" shown in FIG.
  • FIG. 20 is a configuration example of the counter circuit.
  • the operation of the counter circuit in the setting mode and the operation mode will be described below with reference to FIGS. 20 and 21.
  • the “k value” representing the number of the detection unit circuit (50), the detection line (70), and the detection line current reading circuit (101) constituting the first storage circuit (40).
  • Y counter units (CU [0] to CU [Y-1]) can express large numerical values up to "2 (Y) power", which is a Y-digit binary number, but count.
  • Y Y-digit binary number
  • a "reset control signal (307)” is sent from the “control circuit (120)", and a reset value is written in the "second storage circuit (610)".
  • the reset value is All-0 (binary number 0000 ... 0) or All-1 (binary number 1111 ... 1)
  • the operation becomes simple, but basically. Can be any numerical value.
  • the reset value is All-0 (binary number 0000 ... 0).
  • the "control circuit (120)” sends a "write signal (308)" to the "second storage circuit (610) for the counter circuit", and each counter circuit (CU [0] to CU [Y-] The value of each unit (TIMBU [0] to TIMBU [Y-1]) of the second storage circuit (610) is written in the Flip-Flop (FF) in 1]). Therefore, the FF in the counter circuit (CU [0] to CU [Y-1]) is also All-0 (binary number 0000 ... 0).
  • a pulse signal is sequentially applied to each of the "activation signal input lines (90)" so that the pulses do not overlap, and at the same time, from the "control circuit (120)", the "counter circuit” (560) ”is sent a“ Shift Forward ”signal.
  • the coefficient 4 is assigned to the number of pulses counted based on the signal from 70 [2]
  • the coefficient 2 is assigned to the number of pulses counted based on the signal from 70 [1].
  • the number of pulses counted based on the signal from 70 [0] is multiplied by a coefficient of 1 to obtain the sum of them.
  • an external input signal is applied to the "input line (80)", and the pulse signal is transmitted through the "activation signal input line (90)” and “detection line (70)” to the "counting circuit pre-stage circuit (counting circuit pre-stage circuit). 208) ”.
  • a pulse signal is transmitted to the counting-input (201) to the counter circuit, but unlike the setting mode, the counter rotates in the reverse direction, so the value is decremented from the value written from the second storage circuit (610). ..
  • the value of the counter circuit is initially set. The value returns to All-0 (binary number 0000 ... 0). That is, as many "values 1" as the number of "values 1" detected in the setting mode are detected in the operation mode.
  • the judgment circuit switches the output from the Low level to the High level, and "activity input from the outside".
  • the “signal meaning that the input data meant by the time series of the conversion signal and the stored data of the first storage circuit have a high degree of similarity” is output from the "determination result output terminal (260)".
  • FIG. 10 is a block diagram schematically showing "ambiguous search circuit # 2" according to the sixth embodiment of the present invention.
  • the “ambiguous search circuit # 2" includes the “ambiguous search circuit # 1", a “vertical output detection circuit (534)", and a “timer circuit (116)", and the mounted control circuit is "control”.
  • the circuit (120) is changed to the control circuit (119). Since the circuit that controls reading and writing to the first storage circuit (40) and the bit lines and word lines used at that time have generally known configurations, the drawings are complicated in this drawing. Not listed to avoid.
  • the matching degree determination circuit to be mounted shows an example of the matching degree determination circuit # 2, but the matching degree determination circuit # 1 or the matching degree determination circuit # 3 may be used.
  • the "control circuit (119)” means that the "integrated ignition signal (533)” receives a signal at a high level meaning “ignition” or a timeout from the "timer circuit (116)".
  • the count value of the counting circuit is changed by rewriting the stored value of FF in the "shift register circuit (202)" of all the matching degree determination circuits to the stored value of the "second storage circuit”. Reset and restart the "predetermined period”.
  • the "control circuit (119)” means that the "integrated ignition signal (533)” receives a signal at a high level meaning "ignition” or a timeout from the "timer circuit (116)".
  • control circuit (119) does not require a [vertical output detection circuit] or a “timer circuit”, and the “unit time” is set by the signal of the "external control signal input (153)". Control.
  • the signal of the "external control signal input (153)” may be a multi-bit signal, or may receive an ignition signal of another ambiguous search circuit. [Claim 15] This is because the "vertical output detection circuit (534)" has a configuration of a matching degree determination circuit.
  • the "ignition cell (530)" is a circuit having the same type structure as the “memory cell (10)", but is forcibly “non-ignitioned” according to the data stored in the "ignition cell (530)". It is possible to program the non-use of a specific concordance determination circuit by utilizing the continuation of the state of. In any of the embodiments of the present invention, circuits and connections related to reading and writing of the "ignition cell (530)" are not shown.
  • the "vertical detection line readout circuit (532)" is a general sense amplifier circuit as illustrated in FIG. 4, similar to the detection line readout circuit.
  • the circuit that sets the threshold value (114) is the "third threshold value circuit (113)".
  • FIG. 11 is a block diagram schematically showing "ambiguous search circuit # 3" according to the seventh embodiment of the present invention.
  • the "activation line drive circuit (155)” of the “ambiguous search circuit # 2 (FIG. 9)” is replaced with the “activation line signal generation circuit (156)”.
  • a "pulse generation circuit (535)” is added between the output of the "matching degree determination circuit (2)" and the “ignition cell (530)".
  • the ambiguous search circuit # 3 which is an embodiment accompanied by these changes, does not assume a pulse signal as an external input signal, and is a “activation line (90 [0] to 90 [m-1])”.
  • the pulse signal given to is generated by the "activation line signal generation circuit (156)".
  • the “pulse generation circuit (535)” is configured by combining a delay circuit and a logic circuit. This is a known technique for constructing a pulse generation circuit having a pulse width equal to that of the delay circuit by taking NAND logic or NOR logic between the signal before the delay and the signal after the delay.
  • the "activation line signal generation circuit (156)” uses the same pulse generation circuit to generate the “activation line signal (80)”.
  • Each of the signals of the "activation signal input line (90)" is qualitatively ⁇ Information on pulse density per "unit time” and -When the pulse signal density switches from “sparse to dense", -It has three types of information on the timing at which the density of the pulse signal switches from “dense to sparse”. In addition, these pieces of information are equivalent to "input data meant by the time series of activation signals input from the outside”.
  • the "activation control signal (85 [0] to 85 [Z-1])” which is a signal input to the "activation line signal generation circuit (156)" includes the “activation signal input line (Activation signal input line (156)). It must have all of the amount of information required by "90 [0] to 90 [m-1])", and in general, the number of "activation control signals (85)” is “activation”. The number is larger than the number of signal input lines (90). However, since a lot of information is transmitted not by the serial signal but by the signal input in parallel, the operation of the "ambiguous search circuit # 3" has an advantage that it can be operated at a higher speed than other embodiments. ..
  • FIG. 12 is a block diagram schematically showing "ambiguous search circuit # 4" according to the eighth embodiment of the present invention.
  • the control signal line the signal line (TIM-GBL) used when transferring data between the "read / write circuit of the second storage circuit” and the “match determination circuit", and the “second” in the "match determination circuit”.
  • the connection relationship of the signal line (TIM-LBL) used at the time of data transfer between the "storage circuit” and the "determination circuit” is schematically shown.
  • a cross-point type memory cell is used as the memory cell of the "first storage circuit (40)".
  • the "activation signal input line (90)” is used as the bit line when reading the cell, and the “detection line (70)” is used.
  • the "" can function as a word line at the time of reading.
  • the control signal lines between the "second control circuit (119)" and the "measurement circuit (207)” of the "match determination circuit (2)” are as follows.
  • the 305 controls the access of the second storage circuit (200 or 610).
  • the 306 controls the access of the shift register circuit (202) or the counter circuit (560).
  • 307 resets the stored data of the second storage circuit.
  • -308 instructs to write the storage data of the second storage circuit to the shift register circuit (or counter circuit).
  • 309 instructs to write the data of the shift register circuit (or the counter circuit) to the second storage circuit.
  • -288 instructs the "read / write circuit (570) of the second storage circuit” to read the stored data of the second storage circuit (200 or 610).
  • FIG. 13 is a block diagram schematically showing an "ambiguous search circuit # 5" according to a ninth embodiment of the present invention.
  • the "third” Storage circuit (45) when compared with the "ambiguous search circuit # 3" shown in FIG. 11, in addition to the “first storage circuit (40)” and the “second storage circuit (200)", the "third” Storage circuit (45) ”,“ activation signal line (91) to the third storage circuit ”,“ activation line drive circuit 2 (155 [1]) ”and“ detection line (71) ” It is additionally held and replaced with the "first threshold generation circuit (111)" to the "detection line current reading circuit (101)".
  • the third storage circuit (45) A current pulse can be conducted to the detection line (71) of the third storage circuit according to the storage data of the memory cell, and this current pulse is the "first storage circuit” of the "detection line current reading circuit (101)". Since it functions in a suppressive manner with respect to the "detection of the current pulse from”, it has a function of forcibly suppressing the detection of the similarity of the "matching degree detection circuit # 3 (3)". This function is useful when mimicking the behavior of neuron circuits. [Claim 15]
  • the “detection line current reading circuit (101)" of the “matching degree detection circuit # 3 (3)) has a circuit configuration for detecting the current difference between the" detection line (70) “and the” detection line (71) ". Therefore, for example, a “differential current sense amplifier” as shown in FIG. 4B is used for the “detection line current reading circuit (101)".
  • the effect of suppressing the "detection of the current pulse from the first storage circuit” by the current of the "second detection line (71)” varies greatly depending on the transistor size ratios of Q41 and Q42 of the readout circuit of FIG. 4B. When mimicking the behavior of a neuron circuit, the gate width of the transistor in Q42 is smaller than the gate width in Q41.
  • FIG. 14 is a block diagram schematically showing "ambiguous search circuit # 6" according to the tenth embodiment of the present invention. Comparing this embodiment with the "ambiguous search circuit # 5" shown in FIG.
  • a "second detection line current reading circuit (102)” for detecting a pulse current from the “detection line (71)” of the memory matrix of the “third storage circuit (45)”.
  • a “counting circuit (207)” for counting the number of pulse signals output from the "second detection line current reading circuit (102)".
  • a "pulse current from the detection line (71)" of the memory matrix of the “third storage circuit (45)” is used to detect the pulse current. Since the “second detection line current reading circuit (102)" has been added, the name is “matching degree detection circuit # 6 (6)". Since the circuits related to reading and writing of the memory cells of the first storage circuit (40) and the third storage circuit (45) are known, the description is omitted.
  • the number of pulses from the “detection line current reading circuit (101)” contributes to the count-up or “Shift Forward”.
  • the number of pulses from the "second detection line current reading circuit (102)” contributes to countdown or "Shift Recovery”.
  • the ambiguous search circuit # 6 encodes and outputs the physical address of the "matching degree detection circuit # 4" that emits the "signal meaning that the similarity is high", it is output from the address output circuit (593).
  • the "second storage circuit (200 or 610)" is accessed from the "IO circuit (211) of the second storage circuit” using the address, the second storage circuit (200 or 610) is accessed. ) Reads the data stored in. [Claim 17]
  • FIG. 15 is a block diagram schematically showing "ambiguous search circuit # 7" according to the eleventh embodiment of the present invention. Comparing this embodiment with the "ambiguous search circuit # 5" shown in FIG. -although the first storage circuit was one set in FIG. 18, it is three sets (40 [0], 40 [1], 40 [2]) in FIG. , The activation line drive circuit also has three circuits (155 [0], 155 [1], 155 [2]). Further, each unit of the matching degree determination circuit has a blank setting bit (813).
  • the storage circuit (813) for setting a blank is a storage bit that stops the operation of the match detection circuit and does not forcibly output a signal meaning ignition from the determination circuit (290). (Claim 23) Along with these changes, the name of the activation line drive circuit of the third storage circuit has been changed to the activation line drive circuit D (155 [3]).
  • the "ambiguous search circuit # 4 (14)" includes “activation line drive circuit E”, “first storage circuit E (40 [4])", “detection line current reading circuit E”, and “counting circuit E (counting circuit E). 207) ”,“ second storage circuit E (200) ”,“ determination circuit E (155) ”, and“ vertical detection E (534) ”.
  • the ignition information of the "judgment circuit A (290)" detected by the "ambiguous search circuit # 4 (14)" includes the “activation line drive circuit C (156 [2])” and the “activation line drive circuit D” ( By operating the “first storage circuit C (40 [2])” and the “first storage circuit D (40 [3])” via the “156 [3])", the “counting circuit A (207)" However, since the output of the "ambiguous search circuit # 4 (14)" is input to the "ambiguous search circuit # 8" again, the "input signal [system A]" at that time is completed. The next ambiguous search operation is started under a new input condition including the information of "input signal [system B]".
  • the "similarity is high" from the "judgment circuit A (290)” by the added and mixed “ambiguous search circuit # 4 (14)" without relying on the “vertical output detection circuit (534)".
  • the "ambiguous search circuit # 7" of the present embodiment is a time series from the "input signal [system A]” and the “input signal [system B]”. The operation of performing an ambiguous search based on the input information and the feedback information (92 [0] to 92 [m3-1]) of the ambiguous search result of the previous cycle is repeated, and time-series information is output.
  • FIG. 22 is a conceptual diagram of an ambiguous search circuit that outputs time-series information.
  • the ambiguous search circuit of FIG. 22 does not have a "third storage circuit” for suppression operation, and displays only from the three sides of the "first storage circuit (40)". do.
  • the three-sided "first storage circuit (40)" has two sides of 16 rows x 6 columns and one side of 16 rows x 16 columns, and feedback input is provided for 16 rows x 16 columns. It is done.
  • the cell that is the minimum unit of the matrix constituting each surface represents not a memory cell but a "counting unit circuit (55)".
  • DL [0] to DL [15] do not mean a detection line, but a "detection line group (detection line [0] to detection line [k-1]] of the "counting unit circuit (55)”. ) ”,
  • the connection between the“ unit storage circuit (55) ”and the“ detection line current reading circuit [0] to the detection line current reading circuit [k-1] is schematically shown.
  • FIG. 22 is a conceptual diagram, peripheral circuits such as a counting circuit, a second storage circuit, a determination circuit, and a threshold generation circuit are not described. However, a "first storage circuit" on three sides, a read / write circuit to the second storage circuit, and a word selection circuit (812) for specifying a memory cell at the time of read / write are described. There are various variants in the arrangement of each circuit on the conceptual diagram of FIG. 22, and FIG. 22 represents these layout-dependent variants.
  • a composite memory circuit having a feedback input structure as shown in the conceptual diagram of FIG. 22 generally outputs a time-series signal by appropriately setting the data stored in each "first storage circuit". It has the function and ability to make it, hold the output, and repeat it.
  • FIG. 23 is an example showing the reproduction of time series data due to the structure of the feedback input. Similar to FIG. 23, the matrix sizes of the first storage circuit [system A], the first storage circuit [system B], and the first storage circuit [system FB] are 16 rows ⁇ 6 columns and 16 respectively. Rows x 6 columns, 16 rows x 16 columns.
  • the cell that is the smallest unit of the matrix represents not a memory cell but a "unit storage circuit (55)”. "M”, “N”, “A”, “B” ... ⁇ , Although the symbol “H” is attached, it is assumed that the other “unit storage circuits” have relatively small values, and the symbol “ ⁇ ” is attached.
  • the number of pulses per unit time which is information meant by the time series of pulses input through the input line of the activation signal.
  • the ignition of the detection line group (DL [2]) is fed back input by the signal input line (99 [2]), and an activation signal is sent to the "first storage circuit [system FB]". Since the stored data of the "unit storage circuit (55)", which is the intersection of the signal input line (99 [2]) and the detection line group (DL [9]), has a somewhat large number "A”. , The detection line group (DL [12]) may also ignite. At this point, assuming that the amount of pulse signals of the input signal line (90 [2]) and the input signal line (91 [4]), which were initially large input signals, decreases, the detection line group (DL [9]) ]) Will only ignite.
  • the firing of the detection line group (DL [9]) is fed back again, then the value of "B” in the matrix ignites the detection line group (DL [14]), followed by The detection line group (DL [3]) is ignited by the value of "C” in the matrix.
  • the detection line group (DL [5]) is ignited by the value of "D” in the matrix.
  • the detection line group (DL [12]) is ignited by the value of "E” in the matrix.
  • the detection line group (DL [7]) is ignited by the value of "F” in the matrix.
  • the detection line group (DL [15]) is ignited by the value of "G” in the matrix. and, Depending on the value of "H” in the matrix, the detection line group (DL [2]) is reignited, and A to H are repeatedly ignited.
  • the firing operation was set to loop according to the value of "H” in the matrix, but if the value of the "H” part is sufficiently small or zero, then after that. It is highly possible that the development of ignition will not proceed. Whether or not it actually ignites depends on the size of the actual stored value of the "unit time setting" and the "unit storage circuit (55)" marked with " ⁇ ".
  • the ambiguity detection circuit enables the operation of changing the firing output terminal with time based on the signal input from the outside. Assuming that the signals of 99 [0] to 99 [15] are instruction signals for different subroutine operations, the embodiment of the present invention in which this signal sequence is applied to the control of the program is described as "the first of the present invention. 12 Embodiments ”.
  • each broken line or solid line connecting each "detection line group” means the "unit storage circuit (55)" of 16 rows x 16 columns of the "first storage circuit [system FB]”. do. Since each broken line and each solid line has a direction, they should actually be shown by two lines opposite to each other, but to avoid complicating the figure, only one line is described.
  • the lines meaning "A”, “B” ..., “H”, which are “unit storage circuits” that have “somewhat large numbers”, are shown by thick solid lines, and "A", "B”. "..., The code of" H "is written in the circle.
  • the detection line group (detection line group) (in order, according to "A”, “B” ..., “H” which are “unit storage circuits”
  • the firing of DL [9]) is fed back again and then, depending on the value of "B” in the matrix, DL [14], DL [3]), DL [5], DL [12], DL [ 7]), DL [15], and then DL [2] can be continuously ignited. That is, the connection of the "conceptual diagram of the ambiguous search circuit that outputs time-series information" in FIG. 22 is a network similar to a fully coupled neural network.
  • FIG. 25 is a block diagram schematically showing "autonomous response circuit # 1" according to the twelfth embodiment of the present invention.
  • the "autonomous response circuit # 1 (801)” includes an ambiguity detection circuit A (701), a memory circuit A (735), a data processing circuit (725), a first compression circuit (745), and a second. It is composed of a compression circuit (755).
  • the ambiguity detection circuit A (701) includes “ambiguity search circuit # 1" to “ambiguity search circuit # 7" according to the embodiment of the present invention, and “match degree determination circuit # 1" to “matching degree determination circuit # 1" according to the embodiment of the present invention.
  • the memory circuit A (735) is a memory circuit such as SRAM, DRAM, Flash-Memory, etc., which is a known concept and a known technique for outputting data by inputting an address signal.
  • the data processing circuit (725) is a logic circuit based on a known technique for data processing including a CPU, MPU, PLA, FPGA, and ASIC, and is input based on a program written in the internal memory circuit A. Process the data and output the output data.
  • the first compression circuit (745) and the second compression circuit (755) are circuits that generate a type of data to be input to the ambiguity detection circuit A (701), and are "ambiguous" from “ambiguous search circuit # 1".
  • An ambiguous search circuit configured based on the embodiment of the present invention exemplified in "Search circuit # 8" or the embodiment of the present invention exemplified in "Matching degree determination circuit # 1" to "Matching degree determination circuit # 5", or , A known search circuit or data compression circuit. What kind of embodiment is adopted depends on the scale and type of data handled by "autonomous response circuit # 1 (801)" and the accuracy of the desired response.
  • the "ambiguity detection circuit A (701)" mounted on the “autonomous response circuit # 1 (801)” receives three inputs.
  • the input of the first system is the “input signal: 720" which is the output of the first compression circuit (745), but the data which is the source of the first compression circuit (745) is the “input” which is input from the outside.
  • the "data (710)” or the “input data (710)” input from the outside is preprocessed by the “input signal conversion circuit (715)", or a part of those signals. What kind of data or signal is adopted as “input signal: 720" depends on the embodiment.
  • FIG. 25 shows a case in which the “input signal conversion circuit (715)” is inserted.
  • the input of the second system is the "output of the data processing circuit (740 and 750)" which is the output of the data processing circuit (725).
  • the output of the data processing circuit (725) is a signal (750) indicating the situation of the "data processing circuit (725)", which is often given a name such as "Status signal” or "Flag signal", and "data”.
  • both the “output data (740)” and the “Status signal (750)” are shown as inputs to the second system.
  • the input of the third system is a "control signal (785)” input from the outside.
  • the "control signal (785)” is substantially the “external control signal input (153)" of the “ambiguity detection circuit A (701)", and is included in the “ambiguity detection circuit A (701)”. It writes, reads, sets, and resets data in the storage circuit, and controls the counting circuit.
  • the "external control signal” is used. It is necessary to give an external signal corresponding to "(153)" to the "ambiguous search circuit”.
  • the “ambiguity detection circuit A (701)” has at least one or more "first storage circuits” of the ambiguity search circuit of the present invention inside, and has “input information (720)” input from the outside.
  • the contents stored inside the “ambiguity detection circuit A (701)” are compared, and the information on which of the "data groups” that the most similar contents are most similar to is output as “response output (760)". Then, it is transmitted to "memory circuit A (735)".
  • the "autonomous response circuit # 1 (801)” is an "input signal: 710" meaning an external situation and a “response signal” meaning the output of the "autonomous response circuit # 1 (801)” at that time.
  • the past situation most similar to the combination of "2” is ambiguously searched from the "first storage circuit” in the “ambiguous search circuit A (701)”, and the "past situation” determined to be the most similar
  • the response is output as "response output: 760", and an instruction is given to the data processing circuit (725) through the memory circuit A (735).
  • FIG. 26 is a block diagram schematically showing “autonomous response circuit # 2” according to the thirteenth embodiment of the present invention.
  • the "autonomous response circuit # 2 (802)” includes an ambiguity detection circuit A (701), an ambiguity detection circuit B (702), an ambiguity detection circuit C (703), a memory circuit A (735), and a memory circuit B (736). , The memory circuit C (737) and the synthesis circuit (704).
  • the ambiguity detection circuit A (701), the ambiguity detection circuit B (702), and the ambiguity detection circuit C (703) are described in the "ambiguity search circuit # 1" to the “ambiguity search circuit # 8" and the present invention according to the embodiment of the present invention. It refers to an ambiguous search circuit, a search circuit, or an associative memory circuit exemplified in "match degree determination circuit # 1" to "match degree determination circuit # 5" according to the embodiment of the invention. What kind of embodiment is adopted depends on the scale and type of data handled by "autonomous response circuit # 1 (801)" and the accuracy of the desired response.
  • the memory circuit A (735), the memory circuit B (736), and the memory circuit C (737) are memory circuits that are known concepts and techniques that output data by inputting an address signal.
  • the data processing circuit (725) is a logic circuit based on a known technique for data processing including a CPU, MPU, PLA, FPGA, and ASIC, and inputs input data based on a program written in a memory installed inside. Process and output output data.
  • the "ambiguity detection circuit A (701)”, “ambiguity detection circuit B (702)”, and “ambiguity detection circuit C (703)” each have at least the “first storage circuit” of the ambiguity search circuit of the present invention inside. It has one or more, and compares the combination of information input from the outside with which content is stored inside, and outputs information as to which content is the most similar.
  • the "synthesis circuit (704)" receives a plurality of inputs and synthesizes data meaning a control signal for the "data processing circuit (725)". Specifically, it is the start signal of the program and the control code to be sent at that time.
  • ambiguity detection circuit B a possible combination of the “input signal (720)” and the “response signal (760)” is stored with a certain accuracy or particle size. Further, in the “memory circuit # B (736)", "a value expected in the next step with respect to the input signal (720)” is stored in association with each of these combinations.
  • the “ambiguity detection circuit C (703)” has a constant combination of “input signal (720)” and “value predicted by the ambiguity detection circuit B (702) with respect to the input signal (720) in the next step”. Store with accuracy or a certain particle size. Further, in the “memory circuit # C (737)", the "correction value for the output of the ambiguous search circuit A" is stored in association with each of these combinations.
  • step # 2 the storage data of each ambiguous search circuit and each memory circuit is set and wakes up, and the following operations are performed.
  • step # 1 Based on this, the "ambiguous search circuit A" is ambiguously searched by the current "response signal 2 (780)" and “input signal (720) meaning an external situation”. From the “ambiguous search circuit A", the combination having the highest degree of similarity to the input combination is ignited, and a control signal to be sent to the data processing circuit is generated through the "memory circuit # A (735)".
  • step # 2 the “next step” is obtained from the past combination of the “input signal (720)” and the “response signal (760)” by the “ambiguity detection circuit B (702)” and the “memory circuit B (736)”. Outputs the "expected input signal”.
  • step # 3 the combination of the "expected input signal in the next step” and the “actually generated input signal” by the “ambiguity detection circuit C (703)” and the “memory circuit C (737)” is used. Understand the difference between the two, and generate the necessary “difference correspondence control signal (770)" at that time.
  • step # 4 the "ambiguity detection circuit C (703)" determines the control signal to be sent to the "data processing circuit (725)” determined by the “ambiguity search circuit A” by the “synthesis circuit (704)".
  • the control signal to be sent to the "data processing circuit (725)" is synthesized by the "difference correspondence control signal (770)".
  • FIG. 27 is a block diagram representing a model that abstractly expresses an embodiment of the ambiguous search circuit of the present invention when the input signal systems are two systems (system A and system B). Since the number of circuit blocks constituting the ambiguous search circuit of the present invention is very large and the number of signals is also large, the method of extending the ambiguous search circuit according to the embodiment of the present invention and each storage circuit will be described below by using this model. The maintenance operation of the stored data will be described.
  • the input signal system shown in FIG. 22 includes the configuration of two ambiguous search circuits, and the configuration of the ambiguous search circuit of FIG. 15 having the fourth storage circuit (47) is also included. Include.
  • the “feedback storage circuit [FB]) in the model of FIG. 27 corresponds to the “third storage circuit (45)” in FIG.
  • the function of the "ambiguous search circuit # 4 (14)" in FIG. 15 corresponds to the “vertical output detection circuit (534)" in FIG. 27.
  • control circuit controls the "operation mode” and the read / write operation, and therefore, a “control signal (153)” is input to the control circuit. In this way, the input / output signals of different systems are used for the operation in the "counting mode” and the operation in the "maintenance mode”.
  • FIGS. 28 and 29 are block diagrams illustrating an outline of the "autonomous response circuit # 4" according to the 14th embodiment of the present invention.
  • the "symbol diagram” defined in FIG. 27B is used for quoting the ambiguous search circuit in the block diagrams of FIGS. 28 and 29A.
  • FIG. 28 is a block diagram schematically illustrating “autonomous response circuit # 4” according to the 14th embodiment of the present invention.
  • the "autonomous response circuit # 4" mainly maintains the "data processing circuit (725)” that requires the function of the "measurement mode” that performs the operation of the fuzzy search, and the storage circuit of each fuzzy search circuit. It is composed of a "CPU (871)” and a “backup memory (872)".
  • “Autonomous response circuit # 4" is a technology of "extension of an ambiguity search circuit (880)" equipped with a plurality of ambiguity search circuits, and is an input used for signal transmission in the maintenance mode of the plurality of ambiguity search circuits.
  • the system signal and the output system signal are connected to the maintenance bus.
  • the data of the storage circuit mounted on each of the ambiguous search circuits [0: (S-1)] is read into the "backup memory (872)” under the control of the "CPU (871)", and the data is read into the “backup memory (872)". After performing the process of optimizing the relationship between the physical address and the data, the data is written back to the storage circuit of each ambiguous search circuit.
  • the search data is sent from the "data processing circuit (725)" to each of the ambiguous search circuits [0: (S-1)] through the "ambiguous search bus", and the "data processing circuit (725)” is sent. Receive “ignition” information from them. When multiple firing information is responded, the earliest response will have the highest degree of similarity.
  • FIG. 29 shows the “connection between the ambiguous search circuit and the maintenance bus or the ambiguous search bus” in which details are omitted in FIG. 28.
  • Both the maintenance bus and the ambiguous search bus form a ring bus that transmits data in only one direction, so each register can be operated at high speed.
  • FIG. 30 illustrates the "autonomous response circuit # 4" according to the fifteenth embodiment of the present invention.
  • FIG. 30 is an example showing an outline of an algorithm showing "autonomous response circuit # 4" according to the fifteenth embodiment of the present invention.
  • FIG. 30 shows a plurality of input data (710) with each "input signal conversion circuit (715)”. It is sent to the "ambiguous search circuit A (701)” and the “ambiguous search circuit B (702)” via the “first data compression circuit (745)”, and this operation is shown in the schematic diagram of FIG. 29B.
  • the destination address of the output data is also stored in the memory circuit A, the memory circuit B, and the memory circuit C, the destination of each output of the memory circuit A, the memory circuit B, and the memory circuit C is differently ambiguous in the ring bus. It is a search circuit or "CPU, backup memory, synthesis circuit, IO circuit (881)". When the ambiguous search process is completed, the result is returned to the "data processing circuit (725)" via the "CPU, backup memory, synthesis circuit, IO circuit (881)".
  • the present invention is considerably different from the electronic circuit technology of a conventional circuit in that data is sent to a memory matrix in the form of "time series of pulse signals" and the memory matrix is used as a data conversion circuit. Therefore, in order to put it into practical use, it is necessary to wait for the launch of some related technologies.
  • serial communication is that "the number of wires can be reduced", but on the other hand, it has the disadvantage that the processing speed of the entire circuit can be slowed down because the latency spent on data transmission increases.
  • transmitting data in the form of "time series of pulse signals” can be disadvantages in terms of latency and processing speed, but the disadvantages are "stored data and input data”.
  • the advantages outweigh the disadvantages, supplemented by "thorough parallelization in which the internal product calculation between the two is performed very in parallel in the memory chip” and "integration of the storage circuit and the arithmetic circuit".
  • the balance between advantages and disadvantages can depend on the application, but it is considered that the advantages are very large in applications such as artificial intelligence where it is necessary to constantly mobilize all stored data.

Abstract

「記憶回路の内部に記憶するデータのいずれが、外部からの入力情報と最も類似するか」を検索するニーズは益々広がってきており、記憶回路自体がそのようなメモリ技術への期待は大きく、コンピュータが外部からの情報に、より柔軟に対応できるようにするには必須の技術であると考えられる。 そのような技術を実現するには、記憶回路が、記憶するデータと外部からの入力データの間の類似度を計測する機能を内蔵する必要が必要であった。本発明は、「パルス信号の時系列」という形態で入力データをメモリ・マトリックスに入力することで、従来の記憶回路のメモリ・マトリックスを記憶データと入力データの間の内積距離を計算するデータ変換回路として機能させ、また、混載する記憶データと入力データの内積をリアルタイムで計測する回路の出力を使って、内積値の最も大きな記憶データの在り処を外部に出力することで曖昧検索回路を構成する。

Description

曖昧検索回路
 本発明は、外部情報から、内部に搭載するメモリ回路に記憶する内部情報のいずれが最適なコンテンツがどれであるかを判別し、メモリ回路全体を曖昧検索し、その判別に従って自律応答する回路のアーキテクチャについてである。
 従来の連想メモリ技術の概要を、図1から図3を用いて説明する。従来の連想メモリ技術は、セル・マトリックス内のセルへの読み出し(Read)動作や書き込み(Write)動作のように一般のメモリが行う動作の他に、検索(Search)動作を行うことに特徴がある。連想メモリセルとしては、図1に示すように多彩な方式が知られている。
 連想メモリセルの記憶回路(又は、記憶素子)には、検索の対象となる記憶データが記憶されている。検索時に検索キーとなる入力データがサーチ線(または、サーチ線兼ビット線)によって、連想メモリセルに伝えられる。
 SRAMを使った連想メモリセル((A)から(D))は、記憶回路であるFF(Flip―Flop)に記憶データを記憶し、DRAMを使った連想メモリセル(E)は、フローティングとなるノードの寄生容量に記憶データを記憶し、抵抗変化型素子を使った連想メモリセル(F)は、抵抗変化素子に記憶データを記憶する。
 いずれの場合も、記憶データとサーチ線から入力される電位に応じて、マッチ線から電流を導通する素子をもっている。
 SRAMを使った連想メモリセル((A)から(D))は、記憶回路であるFF(Flip―Flop)に記憶する記憶データとサーチ線から入力される電位に応じて、2個直列となっているトランジスタ列のON、もしくはOFFが制御され、ONの場合には、マッチ線から電流を導通する。
 DRAMを使った連想メモリセル(E)は、フローティングとなるノードの寄生容量に記憶する記憶データとサーチ線から入力される電位に応じて、マッチ線から電流を導通する。
 抵抗変化型素子を使った連想メモリセル(F)は、抵抗変化素子に記憶する記憶データとサーチ線から入力される電位に応じて、マッチ線から電流を導通する。
 SRAMを使ったTernary型の連想メモリセルの場合は、(C)と(D)のように、書き込みや読み出し、検索の動作を行うためのビット線とサーチ線が兼用される場合が多い。
 一般に、Binary(2値)タイプの連想メモリセルは、記憶回路(又は、記憶素子)を1個有し、Ternary(3値)タイプの連想メモリセルは、記憶回路(又は、記憶素子)を2個持つ。Ternaryタイプの記憶回路(又は、記憶素子)が多いのは、データとして、値1、もしくは、値0を記憶するだけでなく、無視(Don‘t Care)と呼ばれるマスク状態を記憶するためである。
 以下、SRAMを使ったTernary型の連想メモリセル((C)もしくは(D))を使った場合を元に、従来例を説明する。
 図2は、SRAMベースのTernary(3値)タイプの連想メモリ(CAM:Content Addressable Memory)のセルが、M行×N列のマトリックス状に配置された連想メモリのブロック図である。図2には、M行×N列のマトリックスの四隅のみ表示されている。
 検索動作時には、サーチ線経由で、外部から入力された検索キー(入力データ)が、セルマトリクス内の各行の連想メモリセルに伝えられる。各連想メモリセル内では、連想メモリセルのFFの記憶データとサーチ線より伝わる入力信号とが逆相となる時に、両データが「一致(もしくは、マッチ)」であると解釈される。記憶データと入力データが、HighとLow、または、LowとHighのように、逆相の時が「一致(もしくは、マッチ)」である。
 連想メモリセル内には、2個直列のトランジスタがあり、両トランジスタのゲート電極にはFFの記憶データと入力データが電位として供給されており、「一致(もしくは、マッチ)」を意味する時には、2個直列のトランジスタのいずれかはOFF状態となり、マッチ線には電流を導通しない。
 記憶データと入力データが「不一致」な場合には、連想メモリセル内の2個直列のトランジスタの2個あるゲート電極には、HighとHigh、または、LowとLowのように、同相の入力が加えられるが、連想メモリセル内には、2個直列のトランジスタが、2セットあるため、いずれかのセットはON状態となるため、いずれかのセットを通じてマッチ線に電流を導通することとなる。
 2セットある2個直列のトランジスタは、各セル内で、排他的論理和(EXCLUSIVE-NOR)の論理を取っていると言われることがあるが、「一致」の場合には電流を導通することなく、「不一致」の場合には電流を導通する。
 連想メモリセル1ビットには、記憶回路であるFFが2個含まれるので、読み出し動作にも、書き込み動作の時にも、サーチ線兼ビット線の対を少なくとも2サイクル動作させる必要ある。読み出しデータも書き込みデータも、2Nビットである。
 以降、連想メモリセルNビットからなる行に、対応するマッチ判定回路を加えた部分を、ワード回路と呼ぶ。ワード回路には、1本のマッチ線と、2本のワード線を含む。
 図3は、図1(C)のSRAMベースのTernary(3値)タイプの連想メモリのセルがN個からなるワード回路の構成と動作を示している。セル[3]から、セル[N-2]までの表記は省いている。また、この図においては、検索動作のみを説明するため、セル中の記憶回路(FF)に対する読み出し動作や書き込み動作に使われるアクセストランジスタ(ビット線と記憶回路の間に電流を導通するトランジスタ)の表示も省いている。
 各セル内で、左右に1対ある2個直列のトランジスタは、記憶データと入力データが「一致」の場合には電流を導通することなく、「不一致」の場合には電流を導通する。
 マッチ線は、各セルが導通する電流をワード回路内で集計して、マッチ判定回路に送る。
 マッチ判定回路には、マッチ判定前には、マッチ線をRESET電位に電圧に設定するためのトランジスタと、そのための制御信号(RESET_bar)が備えられているのが通常であった。
 ワード内に不一致ビットが1ビットも無い場合には、マッチ線には、連想メモリのセルが導通する電流が全く無く、電位変動が無いので、入力データが伝えられる前の電位レベル(RESET電位)を維持する。
 ワード内に不一致ビットが1ビットでも有る場合には、マッチ線には連想メモリのセルが導通する電流が生じ、マッチ線は電位変動する。
 この不一致を意味する電位変動を検出するために、マッチ線に電位変動が生じない場合と、最小の電流が導通した場合の電位との中間の電位が、閾値電位発生回路により生成され、閾値電位としてマッチ判定回路に供給されていた。(例えば、特許文献1参照)
 図3(B)に示すように、従来技術では、入力データと記憶データとの間が、逆相であれば一致とし、全てのセルが一致の場合には電流を導通せず、マッチ線に電位変動が生じない。逆に、入力データと記憶データとの間が、同相であれば不一致とし、1ビットでも不一致の場合には電流を導通し、マッチ線に電位変動を生じた。
 マッチ判定回路の出力は、図1に示すように、アドレスエンコーダ回路に送られ、マッチを検出したマッチ判定回路の物理アドレスを生成し、「マッチアドレス出力」として出力した。
 このような連想メモリは、ネットワークルータ内のパケットデータ処理や並列計算機のメモリ管理等に用いられている。
 従来の連想メモリ技術は、数学的には、入力データの逆相と記憶データとの間のハミング距離がゼロとなる場合を一致としていると解釈することができる。
特許第5480986号 特許第5893465号 特許第5800422号 特表2019-517138 特表2014-504401 特開2020-017281 特開2019-185784
K.Pagiamtzis and A.Sheikholeslami,"Content-addressable memory (CAM) circuits and architectures: A tutorial and survey,"IEEE J.Solid-State Circuits, vol.41, no.3, Mar.2006, pp.712727. 望月彰子、大森隆司、「PATON: 文脈依存性を表現する動的神経回路網モデル」、日本神経回路学会論文誌,Vol.3,No.3(1996),81-89
 手書き文字認識のような認識アプリケーションにては、ハミング距離がゼロでは一致を見出せない場合が多く、そのような場合には、幾分かの不一致を許容し、「ある程度以上一致している」と見なせるワードを判定し照合するワードを検出することが求められる。
 「無視(Don‘t Care)」の設定を変えた複数の行(ワード)を用いることで、従来の3値連想メモリ(Ternary CAM)にても、「部分一致」を検出することは可能であるが、複数の行(ワード)を費やすことはコスト上のディメリットが大きかった。
 「ある程度一致している」と見なして判定・検出するニーズは、ニューロンの演算を模倣するニューラルネットワーク回路を構成する時にも存在する。
 ニューラルネットワーク回路では、一般的に、入力データと照合データを、共に、多次元のベクトルとみなし、両ベクトル間の内積により一致度を計量するが、内積の最大値は一定値ではなく、照合データ毎に異なりうるので、従来型の3値連想メモリ(Ternary CAM)では対応できないのが問題であった。
 従来技術では、連想セル毎に、入力データと記憶データとの間を「不一致」と見做す場合に、マッチ線に電流を導通していたが、連想メモリ登録するデータが大きくなると、少なくとも、ワード単位では、「不一致」となるケースが、「一致」となるケースよりも圧倒的に多くなるので、消費電力の面では問題であった。
 また、前述のニューラルネットワーク回路を使った手書き文字認識のようなアプリケーションにては、個別のビットとしても、ワード長が長くなると、値が0であるビット数に比べ、値が1であるビット数が減るという傾向がある。
 従って、連想メモリセルとマッチ線の間の電流の導通は、「不一致」の時ではなく「一致」の時とし、複数の行(ワード)を費やさずに、「ある程度の一致」を検出するアーキテクチャが求められていた。
 集積回路上やストレジ装置内に記憶させた多くの記憶データの中から、「入力データと一致する記憶データ」を探し出す処理」は「検索」と呼ばれるのに対比させて、「入力データとある程度の一致する記憶データを探し出す処理」を、「曖昧検索」と呼ぶことがある。
 本発明は、そのような「曖昧検索を実現する回路アーキテクチャ」であり、その回路アーキテクチャを用いて、外部情報から、内部に記憶する情報のいずれが最適なコンテンツ、もしくは、最適な応答プログラムがどれであるかを判別し、その判別に従って応答し動作するデータ処理回路についてである。
 「外部情報から、内部に記憶する情報のいずれが最適なコンテンツ、データ、もしくは、最適な応答プログラムがどれであるかを判別する」には、正確には一致することが無い「外部情報」と「内部に記憶する情報」との間の類似度を計測する機能を実現する回路手段の具体化が必要である。
 本発明にては、図6に示すように、データを記憶するメモリセル(10)を持つマトリックス回路の各活性化線(90[0]~[m-1])に、単位時間内のパルス信号数によって重み付けした入力信号の群として入力し、メモリセル(10)のデータに応じて各活性化線に導通するパルス信号の個数を検出線(70[0]から[k-1])にて集計し、検出線につながるセンス回路(101)と計数回路(207)によって数える。
 単位時間内に、計数回路(207)によって計数されたパルス信号の個数は、入力情報(90)とメモリセル(10)の記憶データとの間の内積値を近似するので「類似度」を計測すると想定し、そのような動作を行う回路を「一致度判定回路」を基本の主要構成要素とする。
 「類似度」の判定は、「第2の記憶回路(200)」に記憶する期待するパルス個数と、計数回路(207)によって計数されたパルス個数とを、判定回路(290)にて比較し、計測したパルス個数が「第2の記憶回路」の値を上まった場合には、「類似度が高いことを意味する信号」を出力端子(260)から出力する。
 そして、「一致度判定回路」を元に、図6に示すように、「内部に記憶する情報」の各々と「外部からの入力信号」の間の類似度を評価し検索する「曖昧検索回路」を構成する。 その「類似度が高いことを意味する信号」は、一般的には、より類似度が高いと、より早期に出力端子(260)から「類似度が高いことを意味する信号」が出力されると考えられるので、最も早期に「類似度が高いことを意味する信号」を出力した「一致度判定回路」を「最も一致した」とみなす。
 更に、「曖昧検索」の機能を元に、「曖昧検索回路」を基本回路として構成する回路によって、「外部情報から、内部に記憶する情報のいずれが最適なコンテンツ、もしくは、最適な応答プログラムがどれであるかを判別し、その結果によって、サブ・プログラムを始動し応答する自律応答回路を構成する。
 本発明の「自律応答回路(801)」の基本構成を、図25に示す。
「自律応答回路」は、通常の「データ処理回路(725)」に、「曖昧検索回路(701)」と「メモリ回路(735)」と、「データ圧縮回路(745と755)」を加えることによって、「外部情報からの入力情報に対して、内部に記憶する情報のいずれが最適なコンテンツ、もしくは、最適な応答プログラムがどれであるかを判別し、その結果によって、プログラムを始動し応答する。
 本発明は、発展途上の「曖昧検索に最適な電子回路」についての一つのブレイクスルーである。「類似度の定義を定量化し、登録した情報の中から外部からの入力情報と最も類似度なコンテンツを割り出す」という技術は、類似度を頼りに曖昧ながらも確からしい情報を検索し、確率的に正しい判断を下すという処理には必須な技術であり、今後のデータ処理ハードウエアに対するインパクトは非常に大きい。
 本発明の実施形態図に現れる「第1の記憶回路」には、現状認識の様々なケースが分類されており、そのメモリ・セル・アレイに、外部からの入力信号としての「活性化信号」を送ることにより、登録データの中の最も類似のデータの中から、類似度の高い順に「発火」が行われる。 その「発火」のパターンに基づいて、応答プログラムを始動する。
 この技術により、人間の脳に近い自律的に状況を認識し応答動作を行う装置への応用が期待可能である。
従来の連想メモリセルの例 従来の連想メモリ回路 従来の連想メモリのワード回路 読出し回路の構成例 本発明の第1の実施の形態図 本発明の第2の実施の形態図 本発明の第3の実施の形態図 本発明の第4の実施の形態図 本発明の第5の実施の形態図 本発明の第6の実施の形態図 本発明の第7の実施の形態図 本発明の第8の実施の形態図 本発明の第9の実施の形態図 本発明の第10の実施の形態図 本発明の第11の実施の形態図 シフトレジスタ回路を用いた計数回路の構成例 シフトレジスタと判定回路の構成例 第2の記憶回路の構成例 カウンタ回路を用いた計数回路の構成例 カウンタ回路の構成例 カウンタ回路を用いた時の判定閾値記憶回路の構成例 時系列の情報出力を行う曖昧検索回路の概念図 曖昧検索回路による時系列信号発生の説明図1 曖昧検索回路による時系列信号発生の説明図2 本発明の第12の実施の形態図 本発明の第13の実施の形態図 複雑な曖昧検索回路の抽象化モデル 本発明の第14の実施の形態図 曖昧検索回路とメインテナンス・バスの接続 本発明の第15の実施の形態図.
 以下、本発明の実施形態について図面を参照して説明する。
 説明文中においては、構成回路要素に関しては、スペースの許す限り、構成回路要素の名称の語尾に付ける括弧記号( )の中、もしくは、コロン「:」を挟んだ箇所に、数字による符号を付す。その符号の数字は、説明文中と説明図面では対応させる。
 複数が存在することを強調する構成回路要素がある場合、基本的には、構成回路要素の名称、もしくは、構成回路要素を意味する符号の数字に、括弧記号〔 〕で括った英数字による数、もしくは数式を付し、それらによって構成回路要素の個数、または、本数を意味するサヒックスとする。
 また、構成回路要素の名称と、説明文章との境目が不明となる問題が生ずるのを避けるために、説明文中の構成回路要素の名称は、極力、括弧記号「 」にて括って用いる。
 但し、構成要素の個数を一般化して表現すると図面が余りに煩雑になる場合、存在する構成要素の個数を限定して、例えば、3個と想定して図面中に図示し、明細書中でもその旨説明する。 
 構成回路要素の個数や本数が複数であることが明らかである場合、括弧記号〔 〕で括った英数字による数、数式、等によって構成回路要素の個数や本数を付すのを省略する。
 記憶回路に関する説明においては、本発明とは独立して従来から知られている読み出し回路や書き込み回路や電源回路等に関する回路ブロックやそれに伴う信号線については、記載と表現と説明を省く。従って、多くの説明において、連想メモリセルやメモリセルが接続するビット線やワード線についても表記しない。それら、回路や配線の構成や機能については、本発明を適用した場合でも、通常良く知られている連想メモリやメモリの従来技術の典型や変形が適用されることを前提とする。
 逆に言えば、従来知られているメモリ回路に、本発明の実施形態であるメモリ・マトリックス以外の回路を付加することにより、従来のメモリ回路に、「一致度判定」や「曖昧検索」の機能を付加させることとなる。
 説明文中や説明図中に、適切な用語が確立していない「曖昧検索」との表現を多用するが、これは、入力データを入力信号として入力し、記憶されているデータの中から、「何らかの定義の元での距離が小さい記憶データを探す」との意味であり、日常語でいう「一致度が高い」、もしくは、「類似度が高い」に相当する対象を探すことを表現している。
 連想メモリ回路に関する技術においては、「検索」、「サーチ」、「Search」が多く使われるが、それらは、「厳格な一致」を意味する用語であり、本発明に於ける「曖昧一致」とは意味が異なる。
 ディジタルな信号を扱う場合、記憶回路の記憶値や、信号線のレベルについて、値1、値0,High Level、Low Levelの表現を用いることがあるが、これらの間には、信号の極性とディジタル信号の電位レベルの違いがあり、必ずしも、値1は、High Levelを意味しない。
 明記しない場合にも、極性が異なる変形例は常に実施例に含まれる技術である。
 連想メモリセルや、メモリセル、センスアンプ、記憶回路、書き込み回路、読み出し回路、制御回路などの構成回内部の形態や配置形態が異なる変形例についても同じ実施例として表現する。
 また、説明文中や説明図中では、「信号」と「データ」とは、時には、物理層での情報と、論理層での情報という意味で違いを持ちうるが、基本的には同じ意味で用いる。
 本発明のいずれの実施形態においても、使われる「メモリセル(10)」は、「内部に記憶するデータによって、検出線、もしくはビット線に電流を導通するか、もしくは電流を導通しないかの制御を行う機能を有するようなメモリセル」であるが、そのような機能は公知のメモリセル一般に共通であり、本発明はメモリセルの形式や方式を選ばない。 
 本発明のいずれの実施形態において、記憶回路が2進数を表現する上での回路の単位を「単位の記憶回路(55)」という。「単位の記憶回路(55)」は、メモリセル(10)が1個、もしくは複数個からなる。「単位の記憶回路(55)」の中の各々のメモリセル(10)は、1本の「活性化信号の入力線(90)」を共有し、その「活性化信号の入力線(90)」からの信号に対して発生させる導通電流をそれぞれ異なる検出線(70)に伝える。
 本発明のいずれの実施形態の説明図では、いずれかのメモリセル技術を用いた実施例を用いることによりその他の異形を代表させる。
 本発明の実施形態を説明する時、一致度判定回路や、曖昧検索回路、自律応答回路への入力信号は、たびたび、「印加されるパルス信号の時系列が、それぞれデータとして一定の意味を持つ信号列」となっている。
 例えば、m本の「活性化信号の入力線」の群である「90[0:m-1]」を伝わるデータは、基本的に時系列であることに意味があり、ある時間(t=t0)の瞬間の信号値はデータだけだは、データとしての意味を持たない。
 データとして意味を持つのは、所定の時間の経過の中でのパルス信号の以下のようなパラメータである。
・「所定の時間」当たりのパルス信号の密度
・パルス信号の密度が「疎から密」に切り替わるタイミング
・パルス信号の密度が「密から疎」に切り替わるタイミング
 これら3種類の情報により、あるタイミングでの数値を表現する。
 観察する期間である「所定の時間」が過度に短いと、パルス信号の密度が計測できないので、パルス信号の密度が変化するタイミングも理解できない。一方、観察する期間である「所定の時間」が過剰に長いと、パルス信号の密度が平均化される恐れが生ずる。
 「所定の時間」は、「パルス信号の幅」に依存しうるが、「所定の時間」も「パルス信号の幅」も、用途に依存するパラメータでもある。
 以降、適切な「所定の時間」を「単位時間」と呼ぶ。
 「パルス信号の幅」については、他の信号線からの「パルス信号」と重なりづらい「幅」であることが求められるが、回路を実装する上での製造技術にも大いに依存するので特に定義しない。
 [発明を実施するための第1の形態である一致度判定回路#1]
 以下、第図5と第図6を参照して、本発明の「第1の実施形態」である「一致度判定回路#1」と、本発明の「第2の実施形態」である「一致度判定回路#2」について説明する。
 図5Aは、一致度判定回路#1の構成を概念的に示すブロック図である。
 図5Bには、それら、一致度判定回路の入出力のみを図示した。
 図6は、一致度判定回路#2の構成を概念的に示すブロック図である。
 本発明の第1の実施形態である「一致度判定回路#1」は、第2の実施形態である「一致度判定回路#2」のメモリ・セル・マトリックスの行数(m)が1行であり、「予め設定された重み付け係数」の値が“1“の特殊な場合でもあるので、まず、図6の「第2の実施形態による一致度判定回路#2」を以下に説明する。
 一致度判定回路#2は、メモリ・セル・マトリックスからなる第1の記憶回路(40)と、計数回路(207)と、第2の記憶回路(200)と、判定回路(290)からなる。
 第1の記憶回路(40)や第2の記憶回路(200)に対する読出しや書込みの制御を行う回路や、その際に使われるビット線、ワード線は、通常知られている構成であるため、本図では図面が煩雑となるのを避け記載していない。逆に言えば、従来知られているメモリ回路に、本発明の実施形態であるメモリ・マトリックス以外の回路を付加することにより、メモリ回路に「一致度判定」や「曖昧検索」の機能を付加させることとなる。
 一致度判定回路#2の「活性化信号の入力線(90)」に印加される入力信号は、それぞれの「活性化信号の入力線(90)」に印加されるパルス信号の時系列が、それぞれデータとして一定の意味を持つ信号列である。 即ち、m本の「活性化信号の入力線」の群である「90[0:m-1]」を伝わるデータは、基本的に時系列であることに意味があり、ある時間(t=t0)の瞬間の信号値は、データとしての意味を持たず、単位時間経過の中で、パルス信号の時系列が持つ;
・「単位時間」当たりのパルス信号の密度と、
・パルス信号の密度が「疎から密」に切り替わるタイミングと、
・パルス信号の密度が「密から疎」に切り替わるタイミング
の3種類の情報により、あるタイミングでの数値を表現する信号の列である。
 一致度判定回路#2は、活性化信号の入力線(90[0:m-1])の列から入力するシリアルなパルス信号情報を第1の記憶回路(40)にて変換して、シリアルなパルス信号の群として伝わるk行の前記検出線(70[0:k-1])のパルス信号の個数を、計数回路(207)にて累計し、生成する数値が前記第2の記憶回路(200)に設定された閾値を越えるか否かを判定回路(290)にて逐次判定し、閾値を超えた時に、超えた事を意味する信号を出力する。
 「記憶回路(40)にて行われる変換」は、入力される活性化信号(90[0:m-1])と「記憶回路(40)のメモリセルの記憶値」との積算値に相当する導通電流パルスが生じ、検出線(70)は、「単位時間」の中で、各活性化信号の入力線(90[0:m-1])が発生させたパルス信号数は和算するといえる。
 正確には、各活性化信号の入力線(90[0:m-1])が発生させたパルス信号が重なる可能性があり、パルス信号数は少なくなるかのうせいがあるが、少なくとも、パルス信号数の和算値を近似する。
 このような、積算と和算(積和)による行列演算に似た変換が、「記憶回路(40)にて行われる変換」である。
 その積和値が「第2の記憶回路(200)の記憶値」を上まったと「判定回路(290)」が判定した場合には、「類似度が高いことを意味する信号」を出力端子(260)から出力する。
 この動作が、「一致度判定回路」の一致度判定に関する最も基本的な動作である。
 [一致度判定回路#1の動作]
 次に、図5Aを用いて、一致度判定回路#1の動作をより詳細に説明する。
 検出線(70)を共有するm個のメモリ・セル(10)は、検出単位回路(50)をなし、m本の「活性化信号の入力線(90)」から入力される活性化信号を受け取る。
 活性化信号は、パルス信号であり、基本的には互いにパルスの立ち上がり・立下りのタイミングを同期させていない。 
 また、「活性化信号の入力線(90)」を伝わるパルス信号は、比較的短い時間間隔である「単位時間」の間に伝わるパルス個数に意味ある情報を伝達するとする。
 例えば、「単位時間」に伝わるパルス個数が3個であれば、数値の「3」を意味し、「単位時間」に伝わるパルス個数が7個であれば、数値の「7」する、等である。
 「m個のメモリセル(10)」は、それぞれ、メモリセル内の記憶値と「活性化信号の入力線(90)」を伝わるパルス信号に応じて、「検出線(70)」に電流パルスを導通しようとする。
 例えば、メモリセル内の記憶値が「値1」の時、「活性化信号の入力線(90)」からパルス信号が伝わると、「検出線(70)」に電流パルスを導通するが、メモリセル内の記憶値が「値0」の時には、「活性化信号の入力線(90)」からパルス信号が伝わっても、「検出線(70)」には電流パルスを導通しない。
 従って、一致度判定回路#1では、「検出単位回路(50)」は、最大で、それぞれのm本の「活性化信号の入力線(90)」から伝えられる導通電流パルス個数を合計した個数のパルス電流を「検出線(70)」に導通し、「検出線電流の読出し回路(101)」経由で、「計数回路(207)」に伝える。
 検出線(70)に生ずる電流パルスの個数を、それぞれの入力線(90)から伝えられるパルス個数と等しくするには、それぞれの「活性化信号の入力線(90)」が伝えるパルスが、重ならないようにすることが有効である。
 検出線(70)に生ずるパルス状の導通電流の個数を数えるために、一般には、センス回路(101)にて、閾値(112)が定義する電流以上の電流値となった場合に値1、閾値(112)が定義する電流以下の電流値では値0となるように、パルス状の導通電流変化を「時系列をなすディジタル・パルス信号」に変換して、次段の計数回路にて、そのディジタル・パルス信号の個数を計数する。
 但し、センス回路(101)や、閾値(112)の供給は、回路規模や、メモリセルの方式選択に依存して必要性が生ずる事象であり、本発明においては、必ずしも本質的ではない。 
 ディジタル・パルス信号の個数の計数は、「単位時間」とするので、計数される個数は有限値である。
 一般のメモリセルは、読出し時には、ワード線によって活性化され、ビット線に電流を導通するため、この想定は、非常に一般的であり、SRAM、DRAMなどの揮発性メモリや、EPROM、EEPROM、MASK-ROMなどの不揮発メモリ、そして、新材料メモリと呼ばれることがあるFeRAM、ReRAM、PCM、MRAM等の多くのメモリにても想定することが可能である。
 これらのメモリセルの場合、図5Aの「活性化信号の入力線(90)」は、一般にワード線と呼ばれる。また、図5Aの検出線(70)は、一般にビット線と呼ばれる。
 通常、多くのメモリの回路図では、ワード線を水平方向に伸びる線として示し、ビット線を垂直方向に伸びる線として示すので、本発明の実施形態を示す各図での回路表現は、通常のメモリの回路図とか90度左回転していることに注意していただきたい。
 本発明の実施形態としては、図5Aで示したようなBinary連想メモリ用のメモリセルや、Ternary連想メモリのHalfセルを用いることが可能である。 連想メモリ用のメモリセルを用いる場合には、図5Aの「活性化信号の入力線(90)」は、検索時に検索キーの一部をなす信号を伝えるSearch Lineに相当し、「検出線(70)」は、Match Lineに相当する。
 本発明の実施形態を示す各図での回路表現は、通常連想メモリ用のメモリセルの回路図と同様の縦横の配置となっており、90度左回転している訳ではない。
[類似度の計数]
 以下、本発明における「類似度の計数」の概念をより詳しく説明する。
 i番目のメモリセル(10[i])に供給される「活性化信号の入力線(90[i])」に、単位時間の間に、S(i)個のパルス信号が印加される場合、メモリセル(10[i])は、内部に記憶するデータによって、検出線(70)に電流を導通するか、もしくは、電流を導通しないかの制御を行う。
 一般性を失うことなく、検出線(70)に電流を導通するメモリセル(10[i])の記憶値を「値1」と呼び、電流を導通しない記憶値を「値0」と呼ぶこととする。 記憶値の呼び名を逆とすると、説明文章は少し煩雑となるため、このような設定にて説明を進める。
 従って、メモリセル(10[i])の記憶値が「値1」の場合、「活性化信号の入力線(90[i])」に、単位時間の間に、S(i)個のパルス信号が印加される場合、メモリセル(10[i])は、検出線(70)に、最大で、S(i)個の電流をパルス状に導通する可能性がある。
 メモリセル(10[i])が導通する電流パルスの個数が最大となるのは、メモリセル(10[i])が導通するタイミングで、他のメモリセル(10)が電流を導通しない場合である。 「活性化信号の入力線(90)」の各々が伝えるパルス信号が重ならない場合には、メモリセル(10[i])は、入力されるパルスの個数と同数の個数の電流パルスを検出線(70)に導通する。
 一方、メモリセル(10[i])の記憶値が「値0」の場合、メモリセル(10[i])が、検出線(70)に導通する電流パルス信号の個数はゼロ個である。
 従って、単位時間に、i番目のメモリセル(10[i])が検出線(70)に導通する電流パルス信号の個数を「D」とすると、
 D ≦ S(i) × (メモリセルの記憶値)
となる。
 この計算は、検出線(70)に繋がる全てのメモリセルに対して成り立つ。
つまり、検出線(70)に導通する電流パルス信号の総個数を「D[0]」とすると、「D[0]」は、「活性化信号の入力線(90[i])が単位時間の間に伝えるパルス信号の個数{S[i]}を用いて、
 D[0]≦ Σ{S[i]×{検出線(70)に繋がるメモリセルのデータ値}}
と表現可能である。(注;Σは、i=0から(m-1)までの和算)
 等号が成立するのは、「活性化信号の入力線(90[i],i=0から(m-1))」が伝達する信号パルスが互いに重ならない場合である。 
 ここでも、「活性化信号の入力線(90[i],i=0から(m-1))」が伝達する信号パルスは、上凸、つまり、活性化時には「値1」、非活性化時に「値0」とすると、表記は容易になるので、今後、「活性化信号の入力線(90[i],i=0から(m-1))」が伝達する信号パルスは、一般性を失うことなく、上凸とする。 
 つまり、本発明のアーキテクチャを用いた回路では、計数回路は、単位時間内の「活性化信号の入力線(90[i],i=0から(m-1))」の時系列が単位時間に持つパルス個数値からなる数値を成分とするベクトル「S」と、検出線(70)に繋がるメモリセルのデータ値を成分とするベクトル(このベクトルを「M」とする)との間の内積値を取る計算を近似する。
 計数回路(207)の出力値である、「活性化信号線(90)に印加されたパルス信号の時系列」により表現された入力データと「第1の記憶回路(40)」に記憶されたデータの間で取られた内積値は、「第2の記憶回路の記憶値」を上まった時、「判定回路」は、「類似度が高いことを意味する信号」を出力端子(260)から出力する。
 今後、一致度判定回路が、「類似度が高いことを意味する信号」を出力端子(260)から出力する時、「発火した」と呼ぶこととする。
 [一致度判定回路#2の動作]
 以下に、第6図を参照して、本発明の「第2の実施形態」である、一致度判定回路#2について説明する。
 一致度判定回路#1では、ベクトル「S」の各成分は整数値であるが、ベクトル「M」の各成分は、2進数としても1桁の数であり、「値0」または「値1」の2値しかとることができなかった。
 本発明の一致度判定回路#2では、k値は、k≧2の整数値であり、ベクトル「M」の各成分を、複数のメモリセルからなる「単位の記憶回路(55)」によって表現し、記憶回路が2進数を表現する上での回路の単位である。 「単位の記憶回路(55)」の中の各々のメモリセル(10)は、1本の「活性化信号の入力線(90)」を共有し、その「活性化信号の入力線(90)」からの信号に応答して発生させる導通電流をそれぞれ異なる検出線(70)に伝える。
 即ち、第1の記憶回路は「複数の検出線[j];j=0から(k-1)」が存在し、計数回路には、それら複数の検出線からの信号が伝えられる。[請求項1] 
 それら複数の検出線から、単位時間の間に、検出されるパルス個数を「D[j]」とすると、
 D[j]≦ Σ{S[i]×{検出線[j]に繋がるメモリセルのデータ値}}
である。(注;Σは、i=0から(m-1)までの和算)
 計数回路にて、D[j]に「2のj乗;2」を乗じて積和計算を行うと、計数回路回路の出力「P」は、
P ≦{Σ{S[i]×{(検出線[j]に繋がるメモリセルのデータ値}×(2)}}}
となる。(注;Σは、i=0から(m-1]と、j=0から(k-1)までの2重の和算)
 「2のj乗;2」が、請求項2の「予め設定された重み付け係数」に相当するが、本発明は、「2のj乗;2」以外の計数を選択することを否定するものではない。
 但し、「2のj乗;2」の係数を、ベクトル「M」の各成分に乗ずることにより、「単位の記憶回路(55)」は2進数を表現するので、通常のディジタル計算の枠組みを利用することに便利である。
 以上のように、図6に示した本発明の「一致度判定回路#2」の計数回路は、「パルス形の入力信号群の時系列」が意味しうるベクトル・データと、そのメモリ・セル・アレイの記憶するベクトル・データとの間の内積値を意味する信号を計数し出力する機能と能力を持つ。
[判定回路の動作]
 「一致度判定回路#1」でも、「一致度判定回路#2」でも、計数回路(207)の出力は、第2の記憶回路(200)に記憶された数値と、判定回路(290)によって比較される。
 第2の記憶回路に、予め、単位時間の間に期待される内積値を記憶しておくことにより、判定回路からの出力は、計数回路の出力値である内積値が、期待された以上であるか否かを意味する信号となる。
 本発明の説明文中においては、「計数回路の出力値である内積値が、第2の記憶回路に記憶された期待された以上の値」である場合に、一般性を失うことなく、「値1」を出力するとして説明を進める。
 また、「一致度判定回路#1、または、#2」が、「値1」を出力する状態を「発火する」と呼ぶこととする。
 即ち、本発明の「一致度判定回路#1」、及び、「一致度判定回路#2」の「計数回路」は、内積計算を距離として、「パルス形の入力信号群の時系列」が意味しうるベクトル・データと、そのメモリ・セル・アレイの記憶するベクトル・データとの間の距離を算出し、「判定回路」は、算出された距離が、「第2の記憶回路」に記憶された数値以上であるか否かを判定し、「以上」である場合には、「発火」を意味する信号を出力する。
 距離を意味する内積値は、「類似度」であると見做せる。従って、「一致度判定回路」は、「第2の記憶回路」に記憶された数値以上に「類似度」が高い入力データを受けた時に、発火する。
[発明を実施するための第3の形態である一致度判定回路#3]
 第7図は、本発明の第3の実施形態による「曖昧検索回路#3」を概略的に示すブロック図である。
 本実施形態では、第1の記憶回路のメモリセルとして、Flash EEPROMを用いているが、本実施形態のメモリセルとしては、DRAMやSRAM含めた「ワード線の選択によってビット線から電流を導通する機能を持つメモリセル」であれば、他のメモリセルでも良い。
 本実施形態では、「活性化信号の入力線(90)」は、Flash EEPROMメモリセルの「ワード線」に相当し、「検出線[70]」は「ビット線」である。
 「ワード線」は、メモリセル(本実施例の場合には、Flash EEPROM)のゲート端子に接続し、「ビット線」はメモリセルのドレイン端子に接続している。[請求項3]
 Flash EEPROMのメモリセルに対する読出しや書込みの制御を行う回路やその際に使われるビット線、ワード線は、通常知られている技術であるため、本図では煩雑となるのを避け記載していない。 
[発明を実施するための第4の形態である一致度判定回路#4]
 第8図は、本発明の第4の実施形態による「一致度判定回路#4」を概略的に示すブロック図である。
 「一致度判定回路#4」、前記判定回路が出力する前記超えた事を意味する信号(260)を前記出力データ記憶回路が受けて、前記出力データ記憶回路の記憶データを逐次出力する。[請求項4]
[発明を実施するための第5の形態である曖昧検索回路#1]
 第9図は、本発明の第5の実施形態による「曖昧検索回路#1」を概略的に示すブロック図である。
 曖昧検索回路#1(11)は、一致度判定回路#1、又は、一致度判定回路#2、又は、一致度判定回路#3のいずれかの一致度判定回路をnセット有し、更に、共通回路である「活性化線駆動回路(155)」、「第1の閾値発生回路(111)」、「第1の制御回路(120)」と、「第2の記憶回路の読出し書込み回路(570)」を備える。[請求項4]
 第9図中の一致度判定回路(9)は、一致度判定回路#1、又は、一致度判定回路#2、又は、一致度判定回路#3の意味である。
 外部から入力される「活性化線駆動回路(155)」は、「入力信号(80)」を元に「活性化信号の入力線(90)」の信号を発生させ、各一致度判定回路に入力信号として送っている。
 「第1の閾値発生回路(111)」は、各一致度判定回路の「検出線電流の読出し回路(101)」の閾値(112)を設定する。
 「第2の記憶回路の読出し書込み回路(570)」は「第1の制御回路(120)」の信号を受けて、各一致度判定回路の「第2の記憶回路(200)」のデータの読み出しや書込みを行う。
 「第1の制御回路(120)」は、「計数回路(207)」の計数動作の制御も行う。また、「計数回路(207)」、「第2の記憶回路(200)」、「第2の記憶回路の読出し書込み回路(570)」を制御して、曖昧検索回路#1(11)全体の動作モードを設定し制御する。
 尚、図9にて示す一致度判定回路の内部のブロック図は、一致度判定回路#2のものである。
 また、図9にては、「第1の記憶回路(40)」に対する読出しや書込みの制御を行う回路やその際に使われるビット線、ワード線は、図が煩雑となるのを避け示していない。「第1の記憶回路(40)」に対する読出しや書込みの制御を行う回路やその際に使われるビット線、ワード線は、通常知られている構成であり、本発明の本質でもない。
 各一致度判定回路は、共通の「活性化信号の入力線(90[i],i=0から(m-1))」の信号を受けることにより、それぞれの「第2の記憶回路」に記憶された数値以上に「類似度」が高い入力データを受けたと計数した時に発火し、「判定結果出力(260)」に、「類似度が高いことを意味する信号」を出力する。
 「活性化信号の入力線(90[i],i=0から(m-1))」から入力される信号は、その信号の「単位時間内のパルス個数値」をデータとして送っているので、「一致度判定回路」毎に、その「第1の記憶回路」のデータと、「第2の記憶回路」のデータの違いによって、「類似度」を意味する「内積値」が異なり、より早く増えて発火する回路と、遅く増えて発火する回路の違いが現れる。
 この発火タイミングの違いによって、「判定結果出力(260[0]から260[n-1])」は、これら信号群全体にて、「曖昧検索回路」の中の最も類似度の高い「一致度判定回路」がいずれの回路であるかを示している。[請求項5]
[設定モード(第2の記憶回路への値の設定)]
 一致度判定回路も曖昧検索回路は、少なくとも、外部からの制御信号入力(153)を元に動作する第1の制御回路(120)によって制御される「設定モード」と「計測モード」と「メインテナンス・モード」を持る。「メインテナンス・モード」では、第1の記憶回路(40)、第2の記憶回路(200)、発火セル(530)の記憶するデータの読出し、または、書込みの動作を行う。
 「設定モード」と「計測モード」の動作モードでは、「計数回路(207)」と「第2の記憶回路(200)」の動作は異なりる。 [請求項13]
 「設定モード」は、「第2の記憶回路(200)」の記憶回路にデータを設定する動作であり、設定方法には、少なくとも2種類の方法がある。
 第1の方法においては、「第2の記憶回路(200)」に、「第1の制御回路(120)」の制御にて、外部から与えられる「第2の読出し書込み信号(210)」のデータを書き込む。 書き込み時には、書込みデータは、「第2の記憶回路の読出し書込み回路(570)」を経由する。
 つまり、制御回路(120)は、いずれかの一致度判定回路の計数回路(207)と第2の記憶回路(200)を選択し、その中の第2の記憶回路(200)と計数回路(207)と、また、第2の記憶回路の読出し書込み回路(570)に制御信号を送ることによって、「第2の読出し書込み信号(210)」からの入力データを「第2の記憶回路(200)」に書き込み、また、他の制御信号を送ることによって、「第2の記憶回路(200)」の記憶データを「第2の読出し書込み信号(210)」の端子に出力させる。
 第2の方法の設定モードでは、以下の動作の流れを想定する。
 第一段階では、第1の記憶回路(40)の入力線に、外部から、パルス信号を順次重ならないタイミングで印加してもらう。
 第二段階では、第一段階の結果として検出線に発生する電流パルス、もしくは、電圧パルスを計数回路(207)で計数する。
 第三段階では、計数結果を第2の記憶回路(200)に書き込む。
 上記の第一段階から第三段階は、決して、パイプライン動作のように切り分けたステイトをいうのではなく、「段階」との表現は、動作の流れを表現しているだけである。
 上記の動作の流れによって、第1の記憶回路(40)のメモリセル(10)の中の「値1」のセル数を基に計数される計数結果を「第2の記憶回路(200)」に記憶する。 この計数結果は、m本の活性化信号線(90)が、各々1回だけ活性化された時に計数される計数値であり、「値1」を記憶する検出線(70)につながるメモリセル(10)の個数である。
[計測モード]
 計測モードでは、「活性化信号の入力線(90)」に印加されるパルス信号を「計測回路(207)」で数え、その数値を基に生成する値と「第2のメモリ回路(200)」に記憶された値を「判定回路(290)」にて随時比較し、判定結果を出力する、
 「判定回路(290)」は、「第2の記憶回路(200)」の値そのもの、もしくは、この値を基に生成される数値を閾値として使って判定するのでも良い。
[計数回路の構成]
 図16は、本発明の一致判定回路の主要構成回路である「計数回路(207)」の内部の構成と、計数回路とつながる他の回路との接続関係を示すブロック図である。
 図16では、第1の記憶回路(40)を構成する検出単位回路(50)、検出線(70)、検出線電流の読出し回路(101)の個数を表す「k値」が“3“であることを想定している。
 また、請求項2の「予め検出線毎に設定された重み付け係数」に相当する値は、検出線(70[0])に対しては“1”、検出線(70[1])に対しては“2”、検出線(70[2])に対しては“4”とする。
 計数回路(207)は、計数回路前段回路(208)と、それ以外の計数回路後段回路とからなり、計数回路前段回路(208)は、
[1]  検出線に伝わるパルス信号を読み出す「検出線電流の読出し回路(101)の出力(70[0]、70[1]、70[2])を受け、
[2]  それら信号から伝わるパルス数をカウンタ回路(508、509、511)で数え、それぞれ、3ケタ、2ケタ、1ケタの2進数に変換し、
[3] 70[0]から生成される2進数の上位2ケタ、70[1]から生成される2進数の2ケタ、70[2]から生成される2進数1ケタの数値を、5個のFlip-Flop(512、513、514、515、516)からなるレジスタに格納する。
[4] 更に、レジスタに格納された数値を、Adder回路(517、518、519)にて和算して、次のレジスタ(527、528、529)に格納し、「繰り上がりとなる最上位のケタの値」を1ビットの信号としてシフトレジスタ回路(202)に印加する。
[5] シフトレジスタ回路(202)は、入力される「繰り上がりとなる最上位のケタの値」が切り替わり、計数される値が増える度に、内部のレジスタ値を上位の方にシフトさせる。
 という機能を持つ。
 前述の[3]から[4]の段階では、カウンタ回路(508、509、511)で数えた3ケタ、2ケタ、1ケタの2進数について、70[2]から伝わるパルス数には70[1]から伝わるパルス数の2ケタ目を、70[1]から伝わるパルス数には70[0]から伝わるパルス数の2ケタ目と3ケタ目の値を和算していた。
 このことによって、前述の計数回路前段回路(208)では、70[2]からの信号を元に数えるパルス数には係数4を、70[1]からの信号を元に数えるパルス数には係数2を、70[0]からの信号を元に数えるパルス数には係数1を乗算してそれらの総和を取っていることになる。[請求項2]
 また、前述の[4]の最終段階で、「繰り上がりとなる最上位のケタの値」を1ビットの信号としてシフトレジスタ回路(202)に印加しているが、このことによって、計数回路前段回路(208)の最上位以外のケタの数値を切り捨てている。
 このことによって、計測回路後段回路(209)の回路規模を減らせる効果がある。
 [シフトレジスタ回路と判定回路の構成]
 図17と図18は、本発明の一致判定回路の主要構成回路である「計数回路(207)」を構成する主要回路である「シフトレジスタ回路(202)」と、「判定回路(290)」と、「第2の記憶回路(200)」との内部構成を示すブロック図である。
 図17の左端から入力される「Counting Input(201)」は、「計数回路前段回路(208)」の出力であり、
・Shift Forward(598)が「値1」で、Shift Reversely(599)が「値0」の時には、SRU[0]からSRU[x-1]からなるSRU内のFlip-Flop(FF)のデータを、図の左側から右側にシフトさせ、左端のSRUのFFには、新規に「値1」が現れる。
 SRUのFFの「値1」は、例えばG213とG214からなるFぃp-Flop(SRU[0]内のFF)の場合には、右側ノ-ド(212)がHighレベルとなり、左側ノード(211)がLowレベルとなる状態のこととしている。
 また、
・Shift Forward(598)が「値0」で、Shift Reversely(599)が「値0」の時には、SRU[0]からSRU[x-1]からなるSRU内のFFのデータを、図の右側から左側にシフトさせ、右端のSRUであるSRU[X-1]のFFには、「値0」を設定する。
 但し、「シフトレジスタ回路(202)」の中のFlip-Flop(FF)の値は、「第2の記憶回路(200)」の値を書き込まれることがある。
 例えば、「第2の記憶回路(200)」をリセットした時のデータ値が「Allゼロ」であるとすると、全てのFlip-Flopの右側ノードがLowレベルとなるので、その値がシフトレジスタ(202)に書き込まれると、シフトレジスタ回路内のFFも、全て「値0」と設定される。
 「第2の記憶回路(200)」のリセット時のデータ値を「Allゼロ」として、そのデータを「シフトレジスタ(202)」に書き込むと、シフトレジスタ内のFFも、全て「値0」となり、その状態から、Shift Forward(598)を「値1」、Shift Reversely(599)を「値0」として、「Counting Input(201)」のトグルを開始すると、SRU[0]からSRU[x-1]のFFに、左詰めで、カウントされた個数だけ「値1」が並び、その右側には「値0」が並ぶこととなる。
 つまり、「シフトレジスタ(202)」は、インクリメントされ、計数値が記憶されていることとなる。
 判定回路(290)は、2入力NANDとインバータからなる遅延回路を持つが、シフトレジスタの「値1」に対応する部分は、2入力NANDはインバータとして機能するが、「値1」と「値0」の境目の部分では、シフトレジスタ(202)からの2入力NANDからLowレベルの信号を受け入れ、その他の領域ではHighレベルの信号を受けるので、「判定結果出力(260)」には、Lowレベルが現れる。
 従って、図18の「第2の記憶回路(200)」に、設定モードで計数されたパルス個数を記憶しておいて、そのデータをシフトレジスタのFF列に書き込んだ後に、Shift Forward(598)を「値0」、Shift Reversely(599)を「値1」として、「Counting Input(201)」のトグルを開始すると、第2の記憶回路(200)に書き込まれた回数だけ、トグルを繰り返した時に、シフトレジスタ(202)のFFは、全て「値0」と戻り、「判定結果出力(260)」には、Highレベルが現れる。[請求項14]
 この状態は、「発火」と見做せ、「類似度が、第2の記憶回路に設定した値」となった情報を外部に報告する信号である。
 [カウンタ回路による計測回路の構成]
 図19は、本発明の一致判定回路の主要構成回路である「計数回路(207)」の計数回路後段回路を、カウンタ回路を用いて構成した実施例である。
 図16の「シフトレジスタ回路を用いた計数回路の構成例」とは、「計数回路前段回路(208)」は同じであるが、「計数回路後段回路(209)」の構成要素が異なり、図16に示した「カウンタ回路」と、図17に示した「カウンタ回路を用いた時の第2の記憶回路」を用いる構成に代わっている。
 図20は、カウンタ回路の構成例である。
 以下に、図20と図21を参照して、設定モードと動作モードのカウンタ回路の動作を説明する。
 図16と同様に、ここでも、第1の記憶回路(40)を構成する検出単位回路(50)、検出線(70)、検出線電流の読出し回路(101)の個数を表す「k値」が“3“であるとして説明する。
 カウンタ回路では、Y個のカウンタ・ユニット(CU[0]からCU[Y-1])で、Yケタの2進数である「2の(Y)乗」までの大きな数値を表現可能だが、カウント・アップとカウント・ダウンの両方を行なえる構成とするには、素子数が増えてしまうので一長一短である。
 設定モードでは、先ず、「制御回路(120)」より、「リセット制御信号(307)」を送り、「第2の記憶回路(610)」にリセット値を書き込む。
 リセット値は、All-0(2進数で、0000・・・0)、もしくは、All-1(2進数で、1111・・・・1)である場合に動作がシンプルとなるが、基本的には任意の数値で良い。 説明を簡易とするため、以下の説明では、リセット値を、All-0(2進数で、0000・・・0)とする。
 次に、「制御回路(120)」より、「カウンタ回路用の第2の記憶回路(610)」に「書き込み信号(308)」を送り、各カウンタ回路(CU[0]からCU[Y-1])内のFlip-Flop(FF)に、第2の記憶回路(610)の各ユニット(TIMBU[0]からTIMBU[Y-1])の値を書き込む。
 従って、カウンタ回路(CU[0]からCU[Y-1])内のFFも、All-0(2進数で、0000・・・0)となる。
 次に、順次、「活性化信号の入力線(90)」の1本、1本に、パルス信号をパルスが重ならないように印加し、同時に、「制御回路(120)」より、「カウンタ回路(560)」へ「Shift Foward」信号を送る。
 「計数回路前段回路(208)」の処理により、70[2]からの信号を元に数えるパルス数には係数4を、70[1]からの信号を元に数えるパルス数には係数2を、70[0]からの信号を元に数えるパルス数には係数1を乗算してそれらの総和を取るが、「計数回路前段回路(208)」の処理の最終段階で、「繰り上がりとなる最上位のケタの値」を1ビットの信号(524)のみを、カウンタ回路(560)への入力信号であるCounting-Input(201)とする。従って、「計数回路前段回路(208)」で生成される4ケタの2進数の最上位以外のケタの数値を切り捨てる。
 「カウンタ回路(560)」には、「制御回路(120)」より、「Shift Foward(598)」信号が送られているので、Counting-Input(201)にパルス信号が印加される度に、カウントアップが行われる。
 「活性化信号の入力線(90)」の全てへの順次選択が終了し、その最後の「活性化信号の入力線(90)」につながるメモリセルからの電流パルスが数えられ、「カウンタ回路(560)」による計数が終了すると、次に、「制御回路(120)」より、全ての「カウンタ回路(560)」の値を「第2の記憶回路(610)」に書き込む制御信号(309)が送られ、「カウンタ回路(560)」の中の全てのカウンタの値を「第2の記憶回路(610)」に書き込む。
 これで、設定モードが終了する。
[計測モード]
 次に、図19と図20を用いて、計測モードの動作を説明する。
 計測モードでは、ます、「制御回路(120)」より、「第2の記憶回路(610)」の中のFlop-Flop(FF)の値を、対応する「カウンタ回路(560)」の中のFlop-Flop(FF)に書き込む制御信号(309)が送られ、「第2の記憶回路(610)」の値を、対応する「カウンタ回路(560)」に書きこむ。
 但し、この時、「制御回路(120)」からは、設定モードとは異なり、カウントダウンの指示となる「Shift Reversely(599)」信号が送られるので、カウンタは逆回転する状態に入る。
 次いで、「入力線(80)」に外部からの入力信号が印加され、「活性化信号の入力線(90)」と「検出線(70)」を通じて、パルス信号が、「計数回路前段回路(208)」に送られる。 カウンタ回路には、Counting-Input(201)にパルス信号が伝えられるが、設定モードと異なり、カウンタは逆回転するので、第2の記憶回路(610)から書き込まれた値から数値を減じてゆく。
 「第2の記憶回路(610)」から書き込まれた値の個数だけのパルス信号が、「計数回路前段回路(208)」から「カウンタ回路560」に伝えられると、カウンタ回路の値は、初期値のAll-0(2進数で、0000・・・0)に戻る。
 つまり、設定モードで検出した「値1」の個数だけ、動作モードでも「値1」を検出したこととなる。
 カウンタ回路の値が初期値のAll-0(2進数で、0000・・・0)に戻ると、判定回路(543)は、出力をLowレベルからHighレベルに切り替え、「外部から入力される活性化信号の時系列が意味する入力データと、第1の記憶回路の記憶データの間の類似度が高いことを意味する信号」を、「判定結果出力端子(260)」から出力する。
 以上の説明で、「計数回路前段回路(208)」の中で、係数を乗算した上で和算された数字の3ケタ目までの数値を無視していたので、設定モードと計数モードの計数値には、最大で「値7」までの差異が生じうるが、この差異は許容可能な誤差であると見做す。
[発明を実施するための第6の形態である曖昧検索回路#2]
 第10図は、本発明の第6の実施形態による「曖昧検索回路#2」を概略的に示すブロック図である。
 「曖昧検索回路#2」は、「曖昧検索回路#1」に、更に、「垂直方向出力検出回路(534)」と、「タイマー回路(116)」を備え、搭載される制御回路は「制御回路(120)」から「制御回路(119)」に変更している。
 第1の記憶回路(40)に対する読出しや書込みの制御を行う回路やその際に使われるビット線、ワード線は、通常知られている構成であるため、本図では図面が煩雑となるのを避け記載していない。
 搭載する一致度判定回路は、実施例として、一致度判定回路#2の例を示すが、一致度判定回路#1や一致度判定回路#3であってもかまわない。
[垂直方向出力検出回路の信号に基づく制御回路の動作]
 「垂直方向出力検出回路(524)」は、一致度判定回路#2の出力である「判定結果出力(260)」の各々の「発火セル(530)」を介して接続され、いずれかの「発火セル(530)」が発火した場合には、「垂直方向検出線(531)」と「垂直方向検出線読出し回路(532)」を通じて、「統合化発火信号(533)」にHighレベルを出力する。
 出力された「統合化発火信号(533)」がHighレベルとなることは、曖昧検出回路#2を構成する一致度判定回路のいずれかが「類似度が高いと意味する信号」を出力したことを意味する。
 いずれの「発火セル(530)」も発火しない場合には、「統合化発火信号(533)」はLowレベルである。
 「統合化発火信号(533)」が「発火」を意味するHighレベルとなった場合の「制御回路(119)」の制御による計数動作の制御に関しては、「外部からの制御信号入力(153)」の設定によって、以下のように複数の「設定上の選択肢」を持つ。
[1] 「制御回路(119)」は、「統合化発火信号(533)」が「発火」を意味するHighレベルとなった信号を受けるか、「タイマー回路(116)」からタイムアウトを意味する信号を受けた時に、全ての一致度判定回路の「シフトレジスタ回路(202)」の中のFFの記憶値を、「第2の記憶回路」の記憶値に書き換えることで計数回路の計数値をリセットし、「所定の期間」を再スタートする。[請求項6]
[2] 「制御回路(119)」は、「統合化発火信号(533)」が「発火」を意味するHighレベルとなった信号を受けるか、「タイマー回路(116)」からタイムアウトを意味する信号を受けた時に、全ての一致度判定回路の計数値を強制的に1ステップだけ減ずることを指示する。[請求項6]
[3] 「制御回路(119)」には、[垂直方向出力検出回路]も「タイマー回路」も必要とせず、「外部からの制御信号入力(153)」の信号によって、「単位時間」を制御する。
 「外部からの制御信号入力(153)」の信号は、複数ビットの信号であってよく、他の曖昧検索回路の発火信号を受けるのでもよい。[請求項15]
 これは、「垂直方向出力検出回路(534)」が、一致度判定回路の構成を取るからである。
 「発火セル(530)」は、「メモリセル(10)」と同型の構造を有する回路であるが、「発火セル(530)」に記憶されているデータに応じて、強制的に「非発火」の状態を継続させることを利用して、特定の一致度判定回路の不使用をプログラムすることが可能である。
 本発明の実施の形態図のいずれにおいても、「発火セル(530)」の読出し書込みに関する回路や接続は表記していない。
 「垂直方向検出線読出し回路(532)」は、検出線読出し回路と同様に、図4に例示されたような一般的なセンスアンプ回路である。 その閾値(114)を設定する回路が、「第3の閾値回路(113)」である。
[発明を実施するための第7の形態である曖昧検索回路#3]
 第11図は、本発明の第7の実施形態による「曖昧検索回路#3」を概略的に示すブロック図である。
 本実施例の形態である「曖昧検索回路#3」においては、「曖昧検索回路#2(図9)」の「活性化線駆動回路(155)」が「活性化線信号生成回路(156)」と替わり、「一致度判定回路(2)」の出力と、「発火セル(530)」の間に、「パルス発生回路(535)」が追加される。
 また、外部からの入力信号は、「入力信号(80[0]から80[m-1])」から、「活性化制御信号(85[0]から85[Z-1])」と替わり、「制御回路(118)」には、「活性化線信号生成回路(156)」を制御する機能が追加されている。[請求項12]
 第1の記憶回路(40)に対する読出しや書込みの制御を行う回路やその際に使われるビット線、ワード線は、通常知られている構成であるため、本図では煩雑となるのを避け記載していない。 
 これらの変更を伴う実施形態である曖昧検索回路#3は、外部からの入力信号としてはパルス信号を想定しておらず、「活性化線(90[0]から90[m-1])」に与えるパルス信号を「活性化線信号生成回路(156)」によって生成する。
 「パルス発生回路(535)」は、遅延回路と論理回路を組み合わせて構成される。
 これは、遅延前の信号と、遅延後の信号の間で、NAND論理、もしくは、NOR論理を取ることで、遅延回路分のパルス幅を持つパルス発生回路を構成する公知の技術である。
 「活性化線信号生成回路(156)」が、「活性化線信号(80)」を生成する上でも同様のパルス発生回路を用いる。
 「活性化信号の入力線(90)」の信号の各々は、定性的には、
・「単位時間」当たりのパルス密度という情報と、
・パルス信号の密度が「疎から密」に切り替わるタイミングと、
・パルス信号の密度が「密から疎」に切り替わるのタイミング
の3種類の情報を持つ。また、これらの情報が、「外部から入力される活性化信号の時系列が意味する入力データ」と等価となる。
 従って、「活性化線信号生成回路(156)」に入力される信号である「活性化制御信号(85[0]から85[Z-1])」には、「活性化信号の入力線(90[0]から90[m-1])」が必要とする情報量の全てを持たなくてはならず、一般的には、「活性化制御信号(85)」の本数は、「活性化信号の入力線(90」の本数よりも多くなる。
 しかしながら、多くの情報がシリアル信号よってではなく、パラレルに入力される信号によって伝わるので、「曖昧検索回路#3」の動作は、他の実施形態よりも高速動作が可能である点が利点である。
[発明を実施するための第8の形態である曖昧検索回路#4]
 第12図は、本発明の第8の実施形態による「曖昧検索回路#4」を概略的に示すブロック図である。
 第12図では、第16図、第17図、第18図に示した「第2の制御回路(119)」と「一致判定回路(2)」の「計測回路(207)」との間の制御信号線や、「第2の記憶回路の読出し書込み回路」と「一致判定回路」の間でデータの転送時に用いる信号線(TIM-GBL)や、「一致判定回路」の中の「第2の記憶回路」と「判定回路」の間でデータの転送時に用いられる信号線(TIM-LBL)の接続関係を模式的に示している。
 また、本実施形態では、「第1の記憶回路(40)」のメモリセルとして、クロスポイント型のメモリセルを用いている。
 第12図のように、双方向動作が可能なクロス・ポイント・セルであれば、「活性化信号の入力線(90)」をセルの読出時のビット線として用い、「検出線(70)」を読み出し時のワード線として機能させることができるという利点がある。
 「第2の制御回路(119)」と「一致判定回路(2)」の「計測回路(207)」との間の制御信号線は以下である。
・305は、第2の記憶回路(200、もしくは、610)のアクセスを制御する。
・306は、シフトレジスタ回路(202)、または、カウンタ回路(560)のアクセスを制御する。
・307は、第2の記憶回路の記憶データをリセットする。
・308は、第2の記憶回路の記憶データをシフトレジスタ回路(または、カウンタ回路)に書き込むことを指示する。
・309は、シフトレジスタ回路(または、カウンタ回路)のデータを第2の記憶回路に書き込むことを指示する。
・288は、第2の記憶回路(200、もしくは、610)の記憶データを「第2の記憶回路の読出し書込み回路(570)」に読み出すことを指示する。
・289は、第2の記憶回路(200、もしくは、610)に、「第2の記憶回路の読出し書込み回路(570)」の記憶データを書き込むことを指示する。
・598は、シフトレジスタ回路(または、カウンタ回路)のデータを「昇順に移動させる、または、カウントアップする」ことを指示する。
・599は、シフトレジスタ回路(または、カウンタ回路)のデータを「降順に移動させる、または、カウントダウンする」ことを指示する。
[発明を実施するための第9の形態である曖昧検索回路#5]
 第13図は、本発明の第9の実施形態による「曖昧検索回路#5」を概略的に示すブロック図である。
 本実施形態は、第11図で示した「曖昧検索回路#3」と比較すると、「第1の記憶回路(40)」、「第2の記憶回路(200)」の他に、「第3の記憶回路(45)」と、「第3の記憶回路への活性化信号線(91)」と、「活性化線駆動回路2(155[1])」と「検出線(71)」を追加で持ち、「検出線電流の読出し回路(101)」への「第1の閾値発生回路(111)」に替わっている。
 尚、この「曖昧検出回路#5」を構成する一致度検出回路には、第3の記憶回路(45)のメモリ・マトリックスと検出線(71)が追加となっているので、名称は「一致度検出回路#5(5)」となっている。「第1の記憶回路(40)」と「第3の記憶回路(45)」のメモリセルの読出し書込みに関する回路は、公知であるため、記載を省いている。
 「第3の記憶回路(45)」の活性化信号線(90[0]から90[m2-1])のいくつかに活性化パルスが印加されると、第3の記憶回路(45)のメモリセルの記憶データに従って、第3の記憶回路の検出線(71)に電流パルスが導通されうるが、この電流パルスは、「検出線電流の読出し回路(101)」の「第1の記憶回路からの電流パルスの検出」に対しては抑制的に機能するため、その「一致度検出回路#3(3)」の類似度検出を強制的に抑制する働きを持つ。
 この機能は、ニューロン回路の動作を模倣する時に有用である。[請求項15]
 「一致度検出回路#3(3))の「検出線電流の読出し回路(101)」は、「検出線(70)」と「検出線(71)」の電流差を検出する回路構成を取る必要があり、例えば、図4Bに例を示したような「差動型の電流センスアンプ」を「検出線電流の読出し回路(101)」に用いる。
 「第2の検出線(71)」の電流による「第1の記憶回路からの電流パルスの検出」の抑制効果は、図4Bの読出し回路のQ41、Q42のトランジスタ・サイズ比で大きく変わる。 ニューロン回路の動作を模倣する場合、Q42のトランジスタのゲート幅は、Q41のゲート幅よりも小さくなる。
[発明を実施するための第10の形態である曖昧検索回路#6]
 第14図は、本発明の第10の実施形態による「曖昧検索回路#6」を概略的に示すブロック図である。
 本実施形態を、第13図で示した「曖昧検索回路#5」と比較すると、
・「第3の記憶回路(45)」のメモリ・マトリックスの「検出線(71)」からのパルス電流を検出するための「第2の検出線電流の読出し回路(102)」
・「第2の検出線電流の読出し回路(102)」の出力のパルス信号の個数を計数するための「計数回路(207)」
・「出力端子(260)」から、「類似度が高いことを意味する信号」を出力する「一致度検出回路」の物理アドレスをエンコードして出力する回路である「アドレス・エンコーダ回路(591)」
 と、その出力回路(593)。
・「第2の記憶回路のデータのIO回路(211)」
 を追加で持つ。
 尚、この曖昧検出回路#6を構成する一致度検出回路には、「第3の記憶回路(45)」のメモリ・マトリックスの「検出線(71)」からのパルス電流を検出するための「第2の検出線電流の読出し回路(102)」が追加となっているので、名称は「一致度検出回路#6(6)」となっている。 第1の記憶回路(40)と第3の記憶回路(45)のメモリセルの読出し書込みに関する回路は、公知であるため、記載を省いている。
 曖昧検索回路#6では、「第3の記憶回路(45)」のメモリ・マトリックスの「検出線(71)」からのパルス電流を検出するための「第2の検出線電流の読出し回路(102)」が追加されており、計数動作は、両者の差分をシフトレジスタ回路に入力することで行う。
 「検出線電流の読出し回路(101)」からのパルス個数は、カウント・アップ、または、「Shift Forward」に寄与し、
 「第2の検出線電流の読出し回路(102)」からのパルス個数は、カウント・ダウン、または、「Shift Reversely」に寄与する。
 また、曖昧検索回路#6では、「類似度が高いと意味する信号」を発する「一致度検出回路#4」の物理アドレスをエンコードして出力するので、アドレス出力回路(593)から出力されたアドレスを使って、「第2の記憶回路のIO回路(211)」から、「第2の記憶回路(200、もしくは、610)」をアクセスすると、その第2の記憶回路(200、もしくは、610)に記憶されていたデータを読み出す。[請求項17]
[発明を実施するための第11の形態である曖昧検索回路#7]
 第15図は、本発明の第11の実施形態による「曖昧検索回路#7」を概略的に示すブロック図である。
 本実施形態を、第13図で示した「曖昧検索回路#5」と比較すると、
・第1の記憶回路が、第18図では1セットであったのに対し、第15図では3セット(40[0]、40[1]、40[2])となっており、それに伴い、活性化線駆動回路も3回路(155[0]、155[1]、155[2])持つ。
 また、各一致度判定回路の単位で、空白設定ビット(813)を有する。
 空白設定のための記憶回路(813)は、一致検出回路の動作を停止し、判定回路(290)から発火を意味する信号を強制的に出力させない記憶ビットである。(請求項23)
 それらの変更に伴い、第3の記憶回路の活性化線駆動回路に対する名称を、活性化線駆動回路D(155[3])と変更している。
 第14図の「曖昧検索回路#6」で有していた「垂直方向出力検出回路(534)」が無く、代わりに、「判定回路A(290)」の発火を「曖昧検索回路#4(14)」にて検知し、「制御回路(120)」にフィードバックしている。
 「曖昧検索回路#4(14)」は、「活性化線駆動回路E」、「第1の記憶回路E(40[4])」、「検出線電流読出し回路E」、「計数回路E(207)」、「第2の記憶回路E(200)」、「判定回路E(155)」、「垂直方向検出E(534)」からなる。
 「曖昧検索回路#4(14)」によって検出した「判定回路A(290)」の発火の情報は、「活性化線駆動回路C(156[2])」と「活性化線駆動回路D(156[3])」経由で、「第1の記憶回路C(40[2])」と「第1の記憶回路D(40[3])」を操作することによって「計数回路A(207)」の計数動作のサイクルを終了するが、「曖昧検索回路#4(14)」の出力が、再度「曖昧検索回路#8」に入力されるので、その時点での「入力信号[系統A]」と「入力信号[系統B]」の情報を含めた新たな入力条件にて次の曖昧検索動作を開始することになる。
 「曖昧検索回路#4(14)」の曖昧検索にて、最も類似度の高い「判定回路E(290)」の出力を元に、「第4の記憶回路(47)」のメモリ・マトリックスのワード線が選択され、選択されたメモリセルのデータが、「読出し回路(49)」経由で、最終的な「曖昧検索回路#8の出力(580)」として出力される。[請求項19]
 尚、「曖昧検索回路#4(14)」の制御回路や、「曖昧検索回路#4(14)」や「曖昧検索回路#8(18)」の「第2の記憶回路の読出し書込み回路」や、各々の「第1の記憶回路(40)」についての読出し書込み回路、等の共通回路は、図が煩雑となるのを避け、記載していない。
 「垂直方向出力検出回路(534)」によらずに、追加され混載された「曖昧検索回路#4(14)」によって、「判定回路A(290)」からの「類似度が高いことを意味する信号」を検出し、応答信号を出力することによって、本実施形態の「曖昧検索回路#7」は、「入力信号[系統A]」と「入力信号[系統B]」からの時系列の入力情報と、前サイクルの曖昧検索結果のフィードバック情報(92[0]~92[m3-1])を元に曖昧検索を行うという動作を反復し、時系列の情報を出力する。
[時系列の情報出力を行う曖昧検索回路の概念図]
 曖昧検索回路による時系列信号の発生を、図22、図23、図24にて説明する。
 第22図は、時系列の情報出力を行う曖昧検索回路の概念図である。
 説明を簡単にするために、第22図の曖昧検索回路には、抑制動作のための「第3の記憶回路」は無く、「第1の記憶回路(40)」の3面からだけを表示する。また、3面の「第1の記憶回路(40)」は、16行×6列が2面と、16行×16列が1面であり、16行×16列に対してはフィードバック入力が行われている。
 ここで、各面を構成するマトリックスの最小単位となるセルは、メモリセルではなく、「計数単位回路(55)」を表現している。 
 DL[0]~DL[15]は、検出線を意味しているのではなく、「計数単位回路(55)」が有する「検出線群(検出線[0]~検出線[k-1])」による「単位の記憶回路(55)」と「検出線電流の読出し回路[0]~検出線電流の読出し回路[k-1]」の接続を模式的に示している。
 従って、第22図が表現する検出線の総本数は(16×k)本であり、検出線群は16群である。 出力信号線(99[0]~[15])の総本数は16本である。
 尚、第22図は概念図であるので、計数回路、第2の記憶回路、判定回路や、閾値発生回路等の周辺回路は記載していない。但し、3面の「第1の記憶回路」と、第2の記憶回路への読出し書込み回路と、読出し書込み時にメモリセルを特定するためのワード選択回路(812)を記載している。
 第22図の概念図上の各回路の配置には、様々な異形が存在するが、第22図はそれらのレイアウト依存異形を代表して表現している。
 第22図の概念図のようなフィードバック入力の構造を持つ複合メモリ回路は、一般的に、各「第1の記憶回路」が記憶するデータを適切に設定することにより、時系列の信号を出力させたり、出力をホールドさせたり、繰り返したりする機能と能力を持つ。 
 図23は、フィードバック入力の構造に起因する時系列データの再生を示す例である、
 図23と同様に、第1の記憶回路[系統A]、第1の記憶回路[系統B]、第1の記憶回路[系統FB]のマトリックス・サイズは、各々、16行×6列、16行×6列、16行×16列である。
 マトリックスの最小単位となるセルは、メモリセルではなく、「単位の記憶回路(55)」を表現している。 
 3面のメモリ・マトリックの中の記憶データのうちの「ある程度大きな数字」を持つ「単位の記憶回路」に対しては、「M」、「N」、「A」、「B」・・・・、「H」の記号を付しているが、それ以外の「単位の記憶回路」は比較的に小さな値を持つと想定しており、「・」の記号を付している。
 各第1の記憶回路を示すマトリックスの上部には、活性化信号の入力線を通じて入力されるパルスの時系列が意味する情報である「単位時間当たりのパルス数」が示されている。
 「P」や「Q」は、ある程度大きな数字であり、「・」は小さな数字であることを意味する。
 「入力信号(90[2])」と「入力信号(91[4])」は、検出線群(DL[2])との間で他検出線群に比べて大きな内積値を持つので、時間を経過すると、「類似度が高い」との信号を出力する。その出力信号は、図の右半分のStep=1の列のDL[2]の行に、「値1」と示されている。
 この状況を、「検出線群(DL[2])」が発火したと呼ぶこととする。
 出力信号は、パルス発生回路(535)が搭載された場合には、ある一定期間継続する。
 検出線群(DL[2])の発火は、信号入力線(99[2])にてフィードバック入力され、「第1の記憶回路[系統FB]」に活性化信号を送る。 信号入力線(99[2])と検出線群(DL[9])が交わる箇所である「単位の記憶回路(55)」の記憶データにはある程度大きな数字である「A」が存在するので、検出線群(DL[12])も発火する可能性が生ずる。 この時点で、当初、大きな値の入力信号であった入力信号線(90[2])と入力信号線(91[4])のパルス信号の量が減るとすると、検出線群(DL[9])のみが発火することとなる。
 検出線群(DL[9])の発火は、再びフィードバック入力され、次に、マトリックス内の「B」の値によって、検出線群(DL[14])が発火し、引き続き、
 マトリックス内の「C」の値によって、検出線群(DL[3])が発火し、
 マトリックス内の「D」の値によって、検出線群(DL[5])が発火し、
 マトリックス内の「E」の値によって、検出線群(DL[12])が発火し、
 マトリックス内の「F」の値によって、検出線群(DL[7])が発火し、
 マトリックス内の「G」の値によって、検出線群(DL[15])が発火し、
 そして、
 マトリックス内の「H」の値によって、検出線群(DL[2])が再度発火し、AからHの発火を繰り返すこととなる。
 上記のケースは、マトリックス内の「H」の値によって、発火動作がループするように設定されていたが、「H」の箇所の値が十分に小さいか、ゼロであるとすると、それ以降の発火の展開は進まない可能性が大きい。実際に発火するかどうかは、「単位時間の設定」や「・」と記された「単位の記憶回路(55)」の実際の記憶値の大きさに依存する。
 以上のように、曖昧検出回路によって、外部からの信号入力を元に、発火する出力端子を時間と共に変えてゆく動作が可能である。
 99[0]から99[15]の信号が、各々、別々のサブルーチン動作への指示信号であるとすると、この信号シークエンスをプログラムの制御に適用した本発明の実施形態は、「本発明の第12の実施形態」に示す。
 図24は、図22に示した「時系列の情報出力を行う曖昧検索回路の概念図」の別表現である。
 外周に並ぶDL[0]からDL[15]は、16個の「検出線群」である。各々の「検出線群」には、外部から2系統の信号入力(90[0]から90[5])と(91[0]から91[5])を受け、外部に対して1本の出力99[j](j=0から15のいずれかの数値)を出力する。
 どの「検出線群」にも共通の「90[0]から90[5])と(91[0]から91[5]」が入力されるが、どの「検出線群」に送られる「90[0]から90[5])と(91[0]から91[5])も同じであるように表現すると図が非常に煩雑になるので、それらを結ぶ線は表現されていない。
 円の内側で、各々の「検出線群」の間を結ぶ破線や実線は、「第1の記憶回路[系統FB]」の16行×16列の「単位の記憶回路(55)」を意味する。各破線や各実線は、方向を持つので、実際には互いに逆向きの2本で示すべきであるが、図が煩雑になるのを避け、1本しか記載されていない。
 「ある程度大きな数字」を持つとした「単位の記憶回路」である「A」、「B」・・・・、「H」を意味する線は太い実線で示してあり、「A」、「B」・・・・、「H」の符号が〇印の中に記されている。
 この図は、DL[2]の「検出線群」が発火した場合、「単位の記憶回路」である「A」、「B」・・・・、「H」に従って、順に、検出線群(DL[9])の発火は、再びフィードバック入力され、次に、マトリックス内の「B」の値によって、DL[14]、DL[3])、DL[5]、DL[12]、DL[7])、DL[15]、ついで、DL[2]の発火が連続しうることが分かる。
 つまり、図22の「時系列の情報出力を行う曖昧検索回路の概念図」の接続は、全結合のニューラル・ネットワークに類似するネットワークである。
[本発明の第12の実施形態]
 第25図は、本発明の第12の実施形態による「自律応答回路#1」を概略的に示すブロック図である。 第25図のブロック図中の曖昧検索回路の引用は、図22Bで定義した「シンボル図」を用いる。
 「自律応答回路#1(801)」は、曖昧検出回路A(701)と、メモリ回路A(735)と、データ処理回路(725)と、第1の圧縮回路(745)と、第2の圧縮回路(755)から構成される。
 曖昧検出回路A(701)は、本発明の実施形態である「曖昧検索回路#1」から「曖昧検索回路#7」や、本発明の実施形態である「一致度判定回路#1」から「一致度判定回路#6」を元に構成する曖昧検索回路、もしくは、検索回路をいう。どのような実施形態を採用するかは、「自律応答回路#1(801)」が扱うデータの規模や種類、求める応答の精度による。
 メモリ回路A(735)は、アドレス信号を入力として、データを出力する公知の概念であり公知の技術となっているSRAMや、DRAM、Flash-Memory等のメモリ回路である。
 データ処理回路(725)は、CPU、MPU、PLA、FPGA、ASICをふくめたデータ処理用の公知の技術に基づく論理回路であり、内部に搭載するメモリ回路Aに書き込まれたプログラムを元に入力データを処理して出力データを出力する。
 第1の圧縮回路(745)と、第2の圧縮回路(755)は、曖昧検出回路A(701)に入力するデータの類型を生成する回路であり、「曖昧検索回路#1」から「曖昧検索回路#8」に例示した本発明の実施形態や、「一致度判定回路#1」から「一致度判定回路#5」に例示した本発明の実施形態を元に構成する曖昧検索回路、もしくは、公知の検索回路やデータ圧縮回路をいう。
 どのような実施形態を採用するかは、「自律応答回路#1(801)」が扱うデータの規模や種類、求める応答の精度による。
 「自律応答回路#1(801)」に搭載された「曖昧検出回路A(701)」は、3系統の入力を受け取る。
 第1の系統の入力は、第1の圧縮回路(745)の出力である「入力信号:720」だが、第1の圧縮回路(745)の元となるデータは、外部から入力される「入力データ(710)」、もしくは外部から入力される「入力データ(710)」を「入力信号変換回路(715)」によって前処理されたデータ、もしくは、それら信号の一部である。 どのようなデータ、もしくは、信号を「入力信号:720」として採用するかは、実施形態に依存する。
 図25には、「入力信号変換回路(715)」が挿入されるケースが示されている。
 第2の系統の入力は、データ処理回路(725)の出力である「データ処理回路の出力(740と750)」である。データ処理回路(725)の出力は、一般に「Status信号」もしくは「Flag信号」等の名称がつけられることが多い「データ処理回路(725)」の状況を意味する信号(750)と、「データ処理回路(725)」によって処理された出力である「出力データ(740)」の両方であるが、多くの場合、「Status信号」で良い。図25には、「出力データ(740)」と「Status信号(750)」の両方が、第2の系統の入力として示されている。
 第3の系統の入力は、外部から入力される「制御信号(785)」である。
 「制御信号(785)」は、実質的には、「曖昧検出回路A(701)」の「外部からの制御信号入力(153)」であり、「曖昧検出回路A(701)」の中の記憶回路のデータの書込み、読出し、設定、リセットを行い、計数回路の制御を行う。
 尚、第25図の中では示していないが、「第1の圧縮回路」や「第2の圧縮回路」を本発明の「曖昧検索回路」で構成する場合には、「外部からの制御信号(153)」に相当する外部からの信号を、その「曖昧検索回路」に与える必要がある。
 「曖昧検出回路A(701)」は、内部に、本発明の曖昧検索回路の「第1記憶回路」をすくなくとも1個、もしくは複数有し、外部から入力される「入力情報(720)」を元に「第1のデータ圧縮回路」で生成したコンテンツと、「応答信号2(780)」を元に「第2のデータ圧縮回路」で生成したコンテンツの組み合わせである「データ群」と、「曖昧検出回路A(701)」の内部に記憶するどのコンテンツを比較して、最も類似するコンテンツが記憶した「データ群」のどれに最も類似するかの情報を「応答出力(760)」として出力して、「メモリ回路A(735)」に伝える。
 即ち、「自律応答回路#1(801)」は、外部の状況を意味する「入力信号:710」と、その時点での「自律応答回路#1(801)」の出力が意味する「応答信号2」の組み合わせと最も類似する過去の状況を、「曖昧検索回路A(701)」の中の「第1の記憶回路」の中から曖昧検索し、最も類似すると判定する「過去の状況」の応答を「応答出力:760」として出力し、メモリ回路A(735)を通じて、データ処理回路(725)への指示を行う。
 「曖昧検出回路A(701)」から「メモリ回路A(735)」への情報伝達は、「曖昧検出回路A(701)」の中の「一致度判定装置」の物理アドレスをエンコードして「メモリ回路A(735)」に伝達する場合と、「一致度判定装置」の物理アドレスをエンコードせずに、「一致度判定装置」ごとに「出力データ記憶回路(46)」を持つという実装形態でもよい。[請求項19]、[請求項4]
[本発明の第13の実施形態]
 第26図は、本発明の第13の実施形態による「自律応答回路#2」を概略的に示すブロック図である。
 第26図のブロック図中の曖昧検索回路の引用は、図22Bで定義した「シンボル図」を用いる。
 「自律応答回路#2(802)」は、曖昧検出回路A(701)、曖昧検出回路B(702)と、曖昧検出回路C(703)とメモリ回路A(735)、メモリ回路B(736)、メモリ回路C(737)と、合成回路(704)とから構成されている。
 曖昧検出回路A(701)、曖昧検出回路B(702)、曖昧検出回路C(703)は、本発明の実施形態である「曖昧検索回路#1」から「曖昧検索回路#8」や、本発明の実施形態である「一致度判定回路#1」から「一致度判定回路#5」に例示した曖昧検索回路、もしくは、検索回路、もしくは、連想メモリ回路をいう。どのような実施形態を採用するかは、「自律応答回路#1(801)」が扱うデータの規模や種類、求める応答の精度による。
 メモリ回路A(735)、メモリ回路B(736)、メモリ回路C(737)は、アドレス信号を入力として、データを出力する公知の概念であり公知の技術となっているメモリ回路である。
 データ処理回路(725)は、CPU、MPU、PLA、FPGA、ASICを含めたデータ処理用の公知の技術に基づく論理回路であり、内部に搭載するメモリに書き込まれたプログラムを元に入力データを処理して出力データを出力する。
 「曖昧検出回路A(701)」、「曖昧検出回路B(702)」、「曖昧検出回路C(703)」は、それぞれ、内部に本発明の曖昧検索回路の「第1記憶回路」をすくなくとも1個、もしくは複数有し、外部から入力される情報の組み合わせと、内部に記憶するどのコンテンツを比較して、最も類似するコンテンツがどれであるかという情報を出力する。
 「合成回路(704)」は、複数の入力を受け、「データ処理回路(725)」に対する制御信号を意味するデータを合成する。具体的には、プログラムのスタート信号や、その際に送るべき制御コードである
[曖昧検出回路とメモリ回路に予め書き込んでおくデータ]
 「曖昧検出回路A(701)」には、予め、「応答信号2(780)」と「入力信号(720)」のありうるデータの組み合わせを一定の精度、もしくは粒度で記憶しておく。また、「メモリ回路#A(735)」には、それら組み合わせの各々に対して、データ処理回路に送るべき制御信号を記憶させておく。
 「曖昧検出回路B(702)」には、「入力信号(720)」と「応答信号(760)」のありうる組み合わせを一定の精度、もしくは粒度で記憶しておく。また、「メモリ回路#B(736)」には、それら組み合わせの各々に対して、「入力信号(720)に関して次のStepで予想する値」を対応させて記憶させておく。
 「曖昧検出回路C(703)」には、「入力信号(720)」と「曖昧検出回路B(702)が入力信号(720)に関して次のStepで予想する値」のありうる組み合わせを一定の精度、もしくは、一定の粒度で記憶しておく。また、「メモリ回路#C(737)」には、それら組み合わせの各々に対し、「曖昧検索回路Aの出力に対する補正値」を対応させて記憶させておく。
[自律応答回路#2の動作]
 これらように、各曖昧検索回路と各メモリ回路の記憶データを設定して起き、以下の動作を行う。
 先ず、ステップ#1では、
 その元で、現状の「応答信号2(780)」と「外部状況を意味する入力信号(720)」によって、「曖昧検索回路A」を曖昧検索する。「曖昧検索回路A」からは、入力した組み合わせに最も類似度の高い組み合わせが発火し、「メモリ回路#A(735)」を通じて、データ処理回路に送るべき制御信号を発生させる。
 ステップ#2では、「曖昧検出回路B(702)」と「メモリ回路B(736)」によって、「入力信号(720)」と「応答信号(760)」の過去の組み合わせから、「次のStepで予想される入力信号」を出力する。
 ステップ#3では、「曖昧検出回路C(703)」と「メモリ回路C(737)」によって、「次のStepで予想される入力信号」と、「実際に生じた入力信号」の組み合わせで、両者の差分を理解し、その時に必要な「差分対応制御信号(770)」を発生させる。
 ステップ#4では、「合成回路(704)」によって、「曖昧検索回路A」が割り出した「データ処理回路(725)」に送るべき制御信号に、「曖昧検出回路C(703)」が判定した「差分対応制御信号(770)」によって、「データ処理回路(725)」に送る制御信号を合成する。
[複雑な曖昧検索回路の抽象化モデル]
 第27図は、入力信号の系統が2系統(系統A、系統B)である場合の本発明の曖昧検索回路の実施形態を抽象的に表現するモデルを表現するブロック図である。
 本発明の曖昧検索回路を構成する回路ブロックは非常に多く、また、信号数も多いので、以降、本モデルを用いて、本発明の実施形態における曖昧検索回路の拡張方法と、各記憶回路の記憶データのメインテナンス動作を説明する。
 第27図のモデルは、図22に示した入力信号の系統が2系統の曖昧検索回路の構成を包含し、また、第4の記憶回路(47)を持つ図15の曖昧検索回路の構成も包含する。
 第27図のモデルにおける「フィードバック記憶回路[FB])は、図15における「第3の記憶回路(45)」に相当する。
 図15での「曖昧検索回路#4(14)」の機能は、27図の「垂直方向出力検出回路(534)」に相当する。
 動作モードが、「計数モード」である場合、「入力信号(系統A)」と「入力信号(系統B)」から、曖昧検索のための信号が入力されるが、曖昧検索された結果としての発火信号は「曖昧検索回路の出力信号(99)」から出力され、その信号を元に「第4の記憶回路(47)」のワードが選択され、その内容である読出し出力が「出力信号(580)」として出力される。
 これら、「計数モード」で有効となる「入力信号(系統A)」と「入力信号(系統B)」と「出力信号(580)」を伝える信号を「曖昧検索バス(891)」と呼ぶ。
 一方、「メインテナンス・モード」では、「アドレス選択信号(811)」を元に、「読出し書込み信号(系統A:821)」、もしくは、「読出し書込み信号(系統B:822)」、もしくは、「第2の記憶回路の信号(210)」、もしくは、「読出し書込み信号(FB系統:831)」、もしくは、「第4の記憶回路の読出し書込み信号(841)」を通じて、各信号が対応する記憶回路の記憶データの読出し動作、もしくは、書込み動作を行う。
 これら、「メインテナンス・モード」で有効となる「アドレス選択信号(811)」、「読出し書込み信号(系統A:821)」、「読出し書込み信号(系統B:822)」、「第2の記憶回路の信号(210)」、「読出し書込み信号(FB系統:831)」、「第4の記憶回路の読出し書込み信号(841)」を伝える信号を「メインテナンス・バス(892)」と呼ぶ。
 「動作モード」の制御や、読出し書込み動作の制御は、「制御回路」が行い、そのために制御回路には「制御信号(153)」が入力される。
 このように、「計数モード」での動作と、「メインテナンス・モード」での動作は、別系統の入出力信号が使われる。
[本発明の第14の実施形態]
 第28図と第29図は、本発明の第14の実施形態による「自律応答回路#4」の概要を説明するブロック図である。第28図と第29A図のブロック図中の曖昧検索回路の引用は、図27Bで定義した「シンボル図」を用いる。
 第28図は、本発明の第14の実施形態による「自律応答回路#4」を概略的に説明示すブロック図である。
 「自律応答回路#4」は、主に、曖昧検索の動作を行う「計測モード」の機能を必要とする「データ処理回路(725)」と、各曖昧検索回路の記憶回路のメインテナンスを行う「CPU(871)」と「バックアップ・メモリ(872)」とから構成される。
 「自律応答回路#4」は、複数の曖昧検索回路を搭載する「曖昧検索回路の拡張(880)」の技術であり、それら複数の曖昧検索回路のメインテナンス・モードでの信号伝送に使われる入力系統の信号と出力系統の信号は、メインテナンス・バスにつながれる。
 メインテナンス・モードでは、「CPU(871)」の制御によって、曖昧検索回路[0:(S-1)]の各々が搭載する記憶回路のデータを、「バックアップ・メモリ(872)」に読出し、その物理アドレスとデータの関係を最適化する処理を行った上で、データを各曖昧検索回路の記憶回路に書き戻す。
 「計測モード」では、「曖昧検索バス」を通じて、「データ処理回路(725)」から、検索データを曖昧検索回路[0:(S-1)]の各々に送り、「データ処理回路(725)」それらからの「発火」情報を受ける。 複数の発火情報が応答される場合は、最も早い応答が、最も類似度が高いことになる。
[曖昧検索回路とバスの接続方法]
 第29図は、第28図で細部を省略した「曖昧検索回路とメインテナンス・バスや曖昧検索バスとの接続」を示す。
 曖昧検索回路とメインテナンス・バスの接続の間には、レジスタとFIFOが介在することにより、メインテナンス・バスが空いている時のみ、曖昧検索回路は出力データをメインテナンス・バスに出力する。
 同様に、曖昧検索回路と曖昧検索バスの接続の間には、レジスタとFIFOが介在することにより、曖昧検索バスが空いている時のみ、曖昧検索回路は出力データを曖昧検索バスに出力する。
 メインテナンス・バスも、曖昧検索バスも、一方向にのみデータを伝送するリング・バスを構成するので、各レジスタを高速に動作させることができる。
[本発明の第15の実施形態]
 第30図は、本発明の第15の実施形態による「自律応答回路#4」を説明する。
 第30図は、本発明の第15の実施形態による「自律応答回路#4」を示すアルゴリズムの概略を示す実施例である。
 第28図と第29図で示した「曖昧検索回路の拡張」を行うことにより、出力データを第4の記憶回路」に記載した宛先アドレスの「曖昧検索回路+第4の記憶回路」に送ることができるので、各記憶回路のデータに従って、複数の曖昧検索回路に、自律的にデータを送信することができる。
 ブロック図中の曖昧検索回路の引用は、図22Bで定義した「シンボル図」を用いる。
 例えば、第30図は、本発明の第15の実施形態による「自律応答回路#4」を示すアルゴリズム場合、複数の入力データ(710)は、各「入力信号変換回路(715)」をと各「第1のデータ圧縮回路(745)」経由で、「曖昧検索回路A(701)」と「曖昧検索回路B(702)」に送られるが、この動作は、図29Bの概略図の中では、「データ処理回路(725」」からのデータが、「CPU、バックアップ・メモリ、合成回路、IO回路(881)」経由で、リング・バスを通って、曖昧検索回路A(701)と曖昧検索回路B(702)と曖昧検索回路C(703)に入力されるという動作に対応する。
 メモリ回路A、メモリ回路B、メモリ回路Cには、出力データの行く先アドレスも記憶するので、メモリ回路A、メモリ回路B、メモリ回路Cの各々の出力の行き先は、リングバス中の別の曖昧検索回路であるか、もしくは、「CPU、バックアップ・メモリ、合成回路、IO回路(881)」である。
 曖昧検索処理が終わると、結果は、「CPU、バックアップ・メモリ、合成回路、IO回路(881)」を経由して、「データ処理回路(725)」に戻される。
 本発明は、データを「パルス信号の時系列」という形態でメモリ・マトリックスに送り、メモリ・マトリックスをデータ変換回路として用いるという点で、従来の回路の電子回路技術とはかなり異なっている。そのため、実用に向けては、いくつかの関連技術の立ち上がりを待たなくてはいけないという状況にはある。
 シリアル通信の利点は、「配線数が少なくて済む」ということであるが、一方、データ伝送に費やすレイテンシが増えるので、回路全体の処理スピードを遅くしうるというディメリットを持つ。
 本発明の技術手法においても、データを「パルス信号の時系列」という形態で伝送することが、レイテンシと処理スピード面でのディメリットとなりうるが、その不利益点を、「記憶データと入力データの間の内積計算をメモリチップの中で非常にパラレルに行うという並列化の徹底」と、「記憶回路と演算回路の一体化」によって補い、そのメリットはディメリットを上回る。メリットとディメリットのバランスは、当然ながらアプリケーションに依存しうるのだが、人工知能のように、常に記憶データを総動員する必要のある用途ではメリットは非常に大きいと考えられる。
 電子回路は、従来、入力データと出力データの間の論理的な因果関係が全く明確であったが、曖昧なデータ処理ともいえる本発明の「曖昧検索」は、工業が基盤とする文化面での根本的なチャレンジとなる。この点も、いくつかの関連技術の立ち上がりを必要とするので、保守的に考える立場のアプリケーションでは壁であるかもしれない。
 しかしながら、電子回路は、常に、人間の脳の能力へのチェレンジであった訳であり、また、昨今発展の著しい多くのアプリケーションにては確率過程うことが増え、確定的ではない予測や予想を求めるケースが増えていることからすると、本発明の実用化に向けてのチェレンジは今後の電子回路全般の技術の進化と深化にとって、避けて通ることができない突破が必要な壁だともいえる。
 本技術は、今後の電子回路技術が向かう方向である。
  1 : 一致度判定回路#1
  2 : 一致度判定回路#2
  3 : 一致度判定回路#3
  4 : 一致度判定回路#4
  5 : 一致度判定回路#5
  6 : 一致度判定回路#6
  11 : 曖昧検出回路#1
  12 : 曖昧検出回路#2
  13 : 曖昧検出回路#3
  14 : 曖昧検出回路#4
  15 : 曖昧検出回路#5
  16 : 曖昧検出回路#6
  17 : 曖昧検出回路#7
  10 : 連想メモリセル
  20 : メモリセル
  30 : クロスポイント・セル
  40 : 第1の記憶回路
  42 : 第5の記憶回路
  45 : 第3の記憶回路 
  46 : 出力データ記憶回路
  47 : 第4の記憶回路
  48 : 第4の記憶回路のワード線選択回路
  49 : 第4の記憶回路の読出し回路
  50 : 検出単位回路
  55 : 単位の記憶回路
  61 : 第1の検出線
  62 : 第2の検出線
  70 : 検出線
  71 : 第2の検出線
  80 : 入力線
  81 : 第2の入力線
  85 : 外部からの活性化信号 to 活性化線駆動回路
  86 : 活性化パルス個数情報 to 活性化線信号生成回路
  87 : 活性化制御信号 to 活性化信号制御回路
  90 : 活性化信号の入力線
  91 : 第2の活性化信号の入力線
  99 : 判定結果出力
  101 : 検出線電流の読出し回路
  102 : 第2の検出線電流の読出し回路
  111 : 第1の閾値情報発生器
  112 : 閾値バイアス1
  113 : 第3の閾値情報発生器
  114 : 閾値バイアス3
  115 : バイアス電圧
  116 : タイマー回路
  117 : 第4の制御回路
  118 : 第3の制御回路
  119 : 第2の制御回路
  120 : 第1の制御回路
  151 : 順次選択指示信号
  152 : 順次選択制御信号
  153 : 外部からの制御信号入力
  155 : 活性化線駆動回路
  156 : 活性化線信号生成回路
  157 : 活性化本数制御回路
  158 : 活性化本数制御回路 B
  200 : 第2の記憶回路
  201 : 計数入力
  202 : シフトレジスタ
  203 : シフトレジスタ制御回路
  204 : シフトレジスタのユニット回路
  206 : 第2の計数回路
  207 : 計数回路
  208 : 計数回路前段
  209 : 計数回路後段
  210 : 第2の読出し書込み信号(D2)
  211 : 第2の記憶回路のIO回路
  212 : 第2の記憶回路のIO回路への制御入力
  260 : 判定結果出力
  270 : 出力データ記憶回路の出力
  288 : 読出し制御信号
  289 : 書込み制御信号
  290 : 判定回路
  291 : Shift-Forward at Odd Cycle
  292 : Shift-Forward at Even Cycle
  293 : Shift-Reversely at Odd Cycle
  294 : Shift-Reversely at Even Cycle
  305 : Threshold Information Memory Access Global
  306 : Shift Register Access Global
  307 : Reset Content Global
  308 : Write TIM to SR Global
  309 : Write SR To TIM Global
  404 : Read Write & Reset制御回路
  405 : Write TIM to SR Local
  407 : Reset Content Local
  408 : Shift Register Access Local
  409 : Threshold Information Memory Access Local
  506 : Write SR To TIM Local
  510 : 統合ストロボ信号
  521 : 第4の記憶回路の制御信号
  522 : 第4の書込み信号
  523 : 第4の読出し信号
  530 : 発火セル
  531 : 垂直方向検出線
  532 : 垂直方向検出線読出し回路
  533 : 統合化発火信号
  534 : 垂直方向出力検出回路
  535 : パルス発生回路
  540 : カウンタ制御回路
  543 : 判定回路B
  560 : カウンタ回路
  570 : 第2の記憶回路の読出し書込み回路
  571 : 第4の記憶の入出力IO回路
  572 : 第4の記憶回路外部からの制御信号
  573 : 第4の記憶回路の外部からの書き込み信号
  574 : 第4の記憶回路の外部への読出し信号
  575 : 第4の記憶回路
  580 : 曖昧検索回路#8の出力
  581 : 第2の書込み信号
  582 : 第2の読み出し信号
  585 : Flag出力信号
  590 : アドレス出力
  591 : アドレス・エンコーダ回路
  592 : アドレス・エンコーダ・ユニット回路
  593 : アドレス出力回路
  598 : 順方向にシフト
  599 : 逆方向にシフト
  604 : Read Write & Reset制御回路B
  610 : カウンタ方式での第2の記憶回路
  690 : ワード内周辺回路
  701 : 曖昧検索回路A
  702 : 曖昧検索回路B
  703 : 曖昧検索回路C
  704 : 合成回路
  710 : 入力信号変換回路の入力データ
  715 : 入力信号変換回路
  720 : 入力信号
  725 : データ処理回路
  735 : メモリ回路A
  736 : メモリ回路B
  737 : メモリ回路C
  738 : メモリ回路Bの出力
  739 : メモリ回路Cの出力
  740 : データ処理回路(725)の出力データ
  745 : 第1のデータ圧縮回路
  750 : データ処理回路(725)のStatus信号出力
  755 : 第2のデータ圧縮回路
  760 : 応答出力
  765 : メモリ回路Aの出力
  770 : 差分対応制御信号
  775   : 入力信号変換回路(715)の出力
  780   : 応答信号2
  785 : 制御信号
  795 : 曖昧検索回路Bの出力
  801 : 自律応答回路#1
  802 : 自律応答回路#2
  803 : 自律応答回路#3
  811 : アドレス信号
  812 : ワード選択回路
  813 : 空白制御ビット
  821 : 読出し書込み信号[系統A]
  822 : 読出し書込み信号[系統B]
  826 : 読出し書込み回路[系統A]
  827 : 読出し書込み回路[系統B]
  831 : 読出し書込み信号[系統FB]
  836 : 読出し書込み回路[系統FB]
  841 : 第4の記憶回路の読出し書込み信号
  851 : アドレス線
  852 : 制御信号線
  853 : データ・バス
  861 : 曖昧検索入力信号[系統A]
  862 : 曖昧検索入力信号[系統B]
  863 : 曖昧検索結果応答出力バス
  871 : CPU
  872 : バックアップ・メモリ
  873 : データ処理回路
  880 : 曖昧検索回路の拡張:880
  881 : CPU、バックアップ・メモリ、合成回路、IO回路
  882 : レジスタ
  883 : FIFO
  888 : 曖昧検索回路+第4の記憶回路
  891 : 曖昧検索バス
  892 : メインテナンス・バス

Claims (24)

  1.  少なくともm列×k行(mは2以上の整数、kは1以上の整数)の大きさのマトリックス状に複数の単位の記憶回路(55)を配置した第1の記憶回路(40)と、
     外部から入力される信号を前記単位の記憶回路に伝える活性化信号の入力線の列(90[0:m-1])と、
     前記単位の記憶回路の活性化時の電流を導通させる行方向の検出線の群(70[0:k-1])と、
     入力されるパルス信号の個数を累計する機能を有する計測回路(207)と、
     閾値情報を記憶し出力する第2の記憶回路(200)と、
     判定回路(290)を備え、
     前記活性化信号の入力線の列から入力するシリアルなパルス信号情報を前記第1の記憶回路(40)にて変換して、k行の前記検出線(70[0:k-1])に導通するシリアルなパルス信号個数を、前記計数回路にて計測して累計し生成する数値が、前記第2の記憶回路に設定された閾値を越えるか否かを前記判定回路にて逐次判定し、閾値を超えた時に超えた事を意味する発火信号を前記判定回路が出力することを特徴とする一致度判定回路。
  2.  少なくともm列×k行(mは2以上の整数、kは1以上の整数)の大きさのマトリックス状に複数のメモリセル(10)を配置した第1の記憶回路(40)と、
     外部から入力される信号を前記メモリセルに伝えるm本、もしくは、m対の活性化信号の入力線(90)と、
     前記メモリセルの活性化時の電流を導通させるk本の検出線(70)と、
     前記検出線のそれぞれから伝わる信号個数に関する情報に、予め検出線毎に設定された重み付け係数を乗算して総和して出力する機能を有する計測回路(207)と、
     前記個数情報の判定時の閾値情報を記憶する第2の記憶回路(200)と、
     判定回路(290)を備え、
     所定の時間に、前記活性化信号の入力線の信号が前記第1の記憶回路の前記メモリセルに伝える信号によって前記検出線の各々に導通するパルス信号の個数に、予め検出線毎に設定した重み付け係数を乗算し、そして総和した情報を前記計数回路にて生成し、その少なくとも一部を随時判定回路に伝えることにより、
     前記外部から入力される活性化信号の時系列が意味する入力データと前記第1の記憶回路の記憶データの間の類似度が、前記第2の記憶回路に記憶された閾値情報以上に高いか低いかを逐次判定し、閾値情報以上に高い時に、その結果を意味する発火信号を前記判定回路から出力することを特徴とする一致度判定回路。
  3.  少なくともm行×k列(mは2以上の整数、kは1以上の整数)の単位の記憶回路(55)を有する第1の記憶回路(40)と、
     外部から入力される信号を行方向に前記単位の記憶回路に伝えるワード線の群(90[0:m-1])と、
     前記単位の記憶回路の活性化時の電流を導通させる列方向のk本、もしくは、k対のビット線の群(70[0:k-1])と、
     入力されたパルス信号の個数を累計する機能を有する計測回路(207)と、
     閾値情報を記憶し出力する第2の記憶回路(200)と、
     判定回路(290)を備え、
     前記ワード線の群から入力するシリアルなパルス信号を前記第1の記憶回路にて変換して、前記ビット線列(70[0:k-1])を伝わるシリアルなパルス信号の個数を前記計数回路にて累計し生成した数値が、前記第2の記憶回路に設定された閾値を越えるか否かを前記判定回路にて逐次判定し、閾値を超えた時に、前記判定回路が超えたことを意味する発火信号を出力する一致度判定回路。
  4.  前記一致度判定回路は、更に、出力データ記憶回路(46)を備え、
     前記判定回路(290)が発火信号を出力した時に、前記出力データ記憶回路の記憶データを出力することを特徴とする一致度判定回路。
  5.  前記一致度判定回路を複数(nセット)備え、
     それぞれの前記一致度判定回路の前記活性化信号の入力線、もしくは、ワード線に、共通のシリアルなパルス信号情報を入力することで出力する、それぞれの一致度判定回路からの出力の群によって、どの一致度判定回路が前記第2の記憶回路に設定された閾値を越えたか、もしくは、どの一致度判定回路の第一の記憶回路の記憶情報が入力信号群(90[0:m-1])の意味する数値群の情報と最も類似するかを意味する情報を逐次出力する曖昧検索回路。
  6.  前記曖昧検索回路は、更に、
     少なくとも、垂直方向出力検出回路(534))と、制御回路(119)を備え、
     前記垂直方向出力検出回路(534)によって、前記一致度判定回路のいずれかから類似度が高いことを意味する信号を発したことを検知した時に、
     前記計数回路(207)の計数値を初期値にリセットする、もしくは、前記計数回路の計数値を一定量減ずることを特徴とする曖昧検索回路。
  7.  前記曖昧検索回路は、更に、
     少なくとも、タイマー回路(116)と制御回路(119)を備え、
     タイマー回路が、前記曖昧検索回路の動作が所定の時間を経過したとの信号を発した時に、
     前記計数回路(207)の計数値を初期値にリセットする、もしくは、前記計数回路の計数値を一定量減ずることを特徴とする曖昧検索回路。
  8.  請求項6、もしくは、請求項7の前記曖昧検索回路にて、
     前記計数回路(207)の初期値を、第2の記憶回路(200)のデータから生成された値とすることを特徴とする曖昧検索回路。
  9.  前記曖昧検索回路は、更に、前記一致度判定回路毎にパルス発生回路(535)を備え、
     前記一致度判定回路の前記判定回路が発火出力した時に、パルス信号を生成して、前記判定回路の発火信号に代えて、前記パルス発生回路の出力を、前記一致度判定回路の出力とすることを特徴とする曖昧検索回路。
  10.  前記一致度判定回路毎に備える前記パルス発生回路(535)は、更に、前記第2の記憶回路(200)の記憶値を入力として受け、
     前記一致度判定回路の前記判定回路(290)が発火信号を出力した時に、前記第2の記憶回路(200)の記憶値を元にした個数のパルス信号を生成して、前記判定回路の発火信号に代えて、前記パルス発生回路の出力を、前記曖昧検索回路の出力として出力することを特徴とする曖昧検索回路。
  11.  請求項5の前記曖昧検索回路は、更に、
     前記第2の記憶回路(200)の記憶値を入力信号として受けるパルス発生回路(535)と、垂直方向出力検出回路(534))と、制御回路(118)を備え、
     前記垂直方向出力検出回路によって、前記一致度判定回路の前記判定回路のいずれかが発火信号を発したことを検知した時に、
     前記計数回路の計数値を一定量減じ、更に、
     前記一致度判定回路の前記パルス発生回路より、前記第2の記憶回路の記憶値に応じた回数のパルス信号を前記一致度判定回路の出力として出力することを特徴とする曖昧検索回路。
  12.  前記曖昧検索回路は、更に、
     複数の外部からの入力信号(80[0]から80[z-1])の情報に従って、出力するパルス信号の時系列を順次互いのパルスが重ならないように発生させる活性化線信号生成回路(156)を備え、
     前記活性化線信号生成回路の出力を、前記活性化信号(90)とすることを特徴とする曖昧検索回路。
  13.  前記曖昧検索回路は、更に、
     外部からの制御信号入力(153)を元に、前記一致度判定回路の各々の動作モードを、設定モード(第1の動作モード)、もしくは、計測モード(第2の動作モード)、もしくは、読出し書込みモードと切り替える機能を有する制御回路(118、または、119、または、120)を備え、
     前記設定モード時に、前記活性化信号の入力線、もしくはワード線を通じて伝えるパルス信号を第1の記憶回路(40)に順次印加し、検出線(70)を通じて伝わるパルス信号の個数を元に、前記第1の記憶回路内の値1、もしくは、値0のメモリセルの個数を前記計測回路(207)で数え、その数値を基に生成する値を前記第2のメモリ回路(200)に書き込み、
     前記計測モード時には、前記活性化信号の入力線、もしくはワード線を通じて伝えるパルス信号を第1の記憶回路(40)に順次印加し、検出線(70)を通じて伝わるパルス信号の個数を前記計測回路(207)で数え、その数値を元に生成する値と前記第2のメモリ回路に記憶された値を前記判定回路(290)で比較することで、前記第1の記憶回路の記憶データとの間の類似度が高いことを意味する発火信号を出力し、
     前記読出し書込みモードでは、第1の記憶回路(40)、第2の記憶回路(200)、発火セル(530)の少なくとも一部の記憶するデータの読出し、または、書込みの動作を行うことを特徴とする曖昧検索回路。
  14.  請求項13の前記計測回路は、内部にシフトレジスタ回路、もしくは、カウンタ回路を備え、
     前記制御回路の制御信号に従って、
     前記設定モードでは、先ず、前記シフトレジスタ回路、もしくは、前記カウンタ回路を所定のリセット値にリセットして動作を開始し、前記計測回路を昇順(もしくは降順)に計測動作させることで前記検出線(70)から伝わるパルス信号の個数を数えた計数値を元に生成した値を前記第2のメモリ回路(200)に書き込み、
     前記計測モードでは、先ず、前記シフトレジスタ回路、もしくは、前記カウンタ回路に、前記第2のメモリ回路に記憶された値を元に生成される値を書き込んで、前記設定モードとは逆に、降順(または、昇順)に計測動作を行う計測回路であることを特徴とする曖昧検索回路。
  15.  前記一致度判定回路は、更に、
     複数の第2の活性化信号線(91)と、複数の第2の検出線(71)と、複数の単位の記憶回路(55)からなる、第3の記憶回路(45)と、複数の検出線電流の読出し回路(101)と、前記第2の活性化信号線の駆動回路(155[1])を備え、
     前記活性化信号の入力線(90)によって、前記第1の記憶回路(40)の前記メモリセル(10)が前記検出線(70)に導通する信号のパルス個数を計数する際に、
     前記計数回路(207)が、
     前記第2の活性化信号線(91)によって、前記第2の記憶回路(55)の前記メモリセル(10)が前記第2の検出線(71)に引き起こす導通電流を参照電流として用いた検出線電流の読出し回路(101)の出力によって生成された信号を用いることを特徴とする一致度判定回路。
  16.  請求項15までの前記曖昧検索回路の前記一致度判定回路は、更に、前記複数の検出線電流の読出し回路(101)と対となる、複数の第2の検出線電流の読出し回路(102)と、第2の計数回路(206)を備え、
     前記活性化信号の入力線(90)によって、前記第1の記憶回路(40)の前記メモリセル(10)が前記検出線(70)に導通する信号のパルス個数を計数する際には前記計数回路(207)が数え、
     前記第2の活性化信号線(91)によって、前記第2の記憶回路(55)の前記メモリセル(10)が前記第2の検出線(71)に導通する信号のパルス個数を計数する際には前記計数回路(206)が数え、
     前記シフトレジスタ回路(202)の入力値、または、前記カウンタ回路(560)の入力値としては、前記計数回路(207)の累積する数と前記計数回路(206)の累積する数の差を用いる一致度判定回路であることを特徴とする曖昧検索回路。
  17.  前記曖昧検索回路は、更に、物理アドレス・エンコード回路(591)を備え、
     前記一致度判定回路のいずれかが、前記類似度が高いことを意味する信号を出力した時に、その出力を発した一致度判定回路の物理アドレスを出力することを特徴とする曖昧検索回路。
  18.  曖昧検索回路を複数備え、互いに直列となるように、出力を入力に接続し、
     後段の前記曖昧検索回路の出力の全て、もしくは一部を、前段の前記曖昧検索回路の入力信号の全て、もしくは一部とすることを特徴とする曖昧検索回路。
  19.  前記曖昧検索回路は、更に、第4の記憶回路(47)を備え、
     前記曖昧検索回路の出力を元に、第4の記憶回路をアクセスし、読み出された情報を出力することを特徴とする曖昧検索回路。
  20.  請求項14において、前記リセット値が、2進数での全てのケタの値がゼロ、もしくは、1である数であることを特徴とする曖昧検索回路。
  21.  前記曖昧検出回路は、所定の頻度で、設定モードの動作を行うことを特徴とする曖昧検出回路。
  22.  前記曖昧検索回路が搭載する前記一致検出回路は、更に、第3の計数回路を備え、
     前記一致検出回路の前記判定回路(290)が出力する発火信号の出力回数を、前記第3の計数回路によって計数し、記憶することを特徴とする曖昧検索回路。
  23.  前記曖昧検索回路が搭載する前記一致検出回路は、更に、空白設定のための記憶回路(813)を少なくとも1ビット備え、
     前記一致検出回路を不使用である場合、前記空白設定のための記憶回路への設定によって、前記一致検出回路の動作を停止し、前記判定回路(290)から発火を意味する信号を強制的に出力させないことを特徴とする曖昧検索回路。
  24.  前記曖昧検索回路によって、プログラムの動作を制御するデータ処理回路。
PCT/JP2020/015100 2020-04-01 2020-04-01 曖昧検索回路 WO2021199386A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202080099451.9A CN115398545A (zh) 2020-04-01 2020-04-01 模糊检索电路
PCT/JP2020/015100 WO2021199386A1 (ja) 2020-04-01 2020-04-01 曖昧検索回路
JP2022511446A JP7475080B2 (ja) 2020-04-01 2020-04-01 曖昧検索回路
US17/958,898 US11942152B2 (en) 2020-04-01 2022-10-03 Fuzzy string search circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/015100 WO2021199386A1 (ja) 2020-04-01 2020-04-01 曖昧検索回路

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/958,898 Continuation US11942152B2 (en) 2020-04-01 2022-10-03 Fuzzy string search circuit

Publications (1)

Publication Number Publication Date
WO2021199386A1 true WO2021199386A1 (ja) 2021-10-07

Family

ID=77929775

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/015100 WO2021199386A1 (ja) 2020-04-01 2020-04-01 曖昧検索回路

Country Status (4)

Country Link
US (1) US11942152B2 (ja)
JP (1) JP7475080B2 (ja)
CN (1) CN115398545A (ja)
WO (1) WO2021199386A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024004000A1 (ja) * 2022-06-27 2024-01-04 日本電信電話株式会社 類似性判定方法、類似度計算ユニット、拡散型学習ネットワークおよびニューラル・ネットワークの実行プログラム
WO2024004887A1 (ja) * 2022-06-27 2024-01-04 日本電信電話株式会社 類似性判定方法、学習推論方法およびニューラル・ネットワークの実行プログラム
WO2024004001A1 (ja) * 2022-06-27 2024-01-04 日本電信電話株式会社 ニューラル・ネットワーク回路装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0346195A (ja) * 1989-07-13 1991-02-27 Intel Corp 連想ネツトワーク用シナプスセル
JPH03256184A (ja) * 1990-03-07 1991-11-14 Ricoh Co Ltd 信号処理回路
JPH03283193A (ja) * 1990-03-30 1991-12-13 Hikari Mizutani ハミング距離が一番近い基礎記憶を連想する連想メモリ
JPH04549A (ja) * 1989-07-12 1992-01-06 Ricoh Co Ltd 神経細胞模倣回路網及び神経細胞模倣ユニット
JPH04336657A (ja) * 1991-05-14 1992-11-24 Ricoh Co Ltd 信号処理回路網
JPH0581229A (ja) * 1991-09-24 1993-04-02 Ricoh Co Ltd 信号処理回路網
JP2002500790A (ja) * 1997-05-29 2002-01-08 ノキア・オーワイジェイ 連想ニューラル・ネットワーク

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5480986U (ja) 1977-11-20 1979-06-08
JPS58422U (ja) 1981-06-26 1983-01-05 株式会社日立製作所 ワイヤボンデイングの接続構造
JPS5893465U (ja) 1981-12-14 1983-06-24 シャープ株式会社 工具
US5131073A (en) * 1989-07-12 1992-07-14 Ricoh Company, Ltd. Neuron unit and neuron unit network
US5167006A (en) 1989-12-29 1992-11-24 Ricoh Company, Ltd. Neuron unit, neural network and signal processing method
US5256911A (en) * 1992-06-10 1993-10-26 Intel Corporation Neural network with multiplexed snyaptic processing
JP3582737B2 (ja) * 1993-05-20 2004-10-27 株式会社リコー 信号処理装置
FR2968808A1 (fr) 2010-12-08 2012-06-15 Commissariat Energie Atomique Circuit électronique a architecture neuromorphique
JP5800422B2 (ja) 2011-11-07 2015-10-28 国立大学法人広島大学 連想メモリ
JP5893465B2 (ja) 2012-03-27 2016-03-23 ルネサスエレクトロニクス株式会社 連想記憶装置
JP5916563B2 (ja) 2012-08-23 2016-05-11 国立大学法人広島大学 連想メモリ
JP5480986B2 (ja) 2013-03-04 2014-04-23 ルネサスエレクトロニクス株式会社 連想メモリ
CN103256184A (zh) 2013-05-08 2013-08-21 武刚 人控风力发电设施及其建造方法
US10192162B2 (en) 2015-05-21 2019-01-29 Google Llc Vector computation unit in a neural network processor
JP6833873B2 (ja) 2016-05-17 2021-02-24 シリコン ストーリッジ テクノロージー インコーポレイテッドSilicon Storage Technology, Inc. 不揮発性メモリアレイを使用したディープラーニングニューラルネットワーク分類器
US20190318226A1 (en) 2018-04-12 2019-10-17 Gyrfalcon Technology Inc. Deep Learning Image Processing Systems Using Modularly Connected CNN Based Integrated Circuits

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04549A (ja) * 1989-07-12 1992-01-06 Ricoh Co Ltd 神経細胞模倣回路網及び神経細胞模倣ユニット
JPH0346195A (ja) * 1989-07-13 1991-02-27 Intel Corp 連想ネツトワーク用シナプスセル
JPH03256184A (ja) * 1990-03-07 1991-11-14 Ricoh Co Ltd 信号処理回路
JPH03283193A (ja) * 1990-03-30 1991-12-13 Hikari Mizutani ハミング距離が一番近い基礎記憶を連想する連想メモリ
JPH04336657A (ja) * 1991-05-14 1992-11-24 Ricoh Co Ltd 信号処理回路網
JPH0581229A (ja) * 1991-09-24 1993-04-02 Ricoh Co Ltd 信号処理回路網
JP2002500790A (ja) * 1997-05-29 2002-01-08 ノキア・オーワイジェイ 連想ニューラル・ネットワーク

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024004000A1 (ja) * 2022-06-27 2024-01-04 日本電信電話株式会社 類似性判定方法、類似度計算ユニット、拡散型学習ネットワークおよびニューラル・ネットワークの実行プログラム
WO2024004885A1 (ja) * 2022-06-27 2024-01-04 日本電信電話株式会社 類似性判定方法、類似度計算ユニット、拡散型学習ネットワークおよびニューラル・ネットワークの実行プログラム
WO2024004887A1 (ja) * 2022-06-27 2024-01-04 日本電信電話株式会社 類似性判定方法、学習推論方法およびニューラル・ネットワークの実行プログラム
WO2024004001A1 (ja) * 2022-06-27 2024-01-04 日本電信電話株式会社 ニューラル・ネットワーク回路装置
WO2024004886A1 (ja) * 2022-06-27 2024-01-04 日本電信電話株式会社 ニューラル・ネットワーク回路装置
WO2024004002A1 (ja) * 2022-06-27 2024-01-04 日本電信電話株式会社 類似性判定方法、学習推論方法およびニューラル・ネットワークの実行プログラム

Also Published As

Publication number Publication date
US20230073272A1 (en) 2023-03-09
JPWO2021199386A1 (ja) 2021-10-07
JP7475080B2 (ja) 2024-04-26
US11942152B2 (en) 2024-03-26
CN115398545A (zh) 2022-11-25

Similar Documents

Publication Publication Date Title
WO2021199386A1 (ja) 曖昧検索回路
Marinella et al. Multiscale co-design analysis of energy, latency, area, and accuracy of a ReRAM analog neural training accelerator
CN112581996B (zh) 基于磁性随机存储器的时域存内计算阵列结构
US9697877B2 (en) Compute memory
Umesh et al. A survey of spintronic architectures for processing-in-memory and neural networks
US4296475A (en) Word-organized, content-addressable memory
Mittal et al. A survey of SRAM-based in-memory computing techniques and applications
US4897814A (en) Pipelined "best match" content addressable memory
US11537861B2 (en) Methods of performing processing-in-memory operations, and related devices and systems
CN114675805A (zh) 存储器中计算累加器
US11662980B2 (en) In-memory arithmetic processors
Luo et al. Nonvolatile Boolean logic in the one-transistor-one-memristor crossbar array for reconfigurable logic computing
US20170168775A1 (en) Methods and Apparatuses for Performing Multiplication
Alam et al. Stochastic computing in beyond von-neumann era: Processing bit-streams in memristive memory
US6388909B2 (en) Associative memory for accomplishing longest coincidence data detection by two comparing operations
CN113535120A (zh) 可延展的多位数2n进位内存储加法器装置及操作方法
US11031079B1 (en) Dynamic digital perceptron
Sankaran et al. An event-driven recurrent spiking neural network architecture for efficient inference on FPGA
Imani Machine learning in iot systems: From deep learning to hyperdimensional computing
RU72771U1 (ru) Устройство для параллельного поиска и обработки данных
Bagchi et al. O (1) time sorting algorithms using spiking neurons
CN113391788B (zh) 存储器内算术处理器及存储器内算术处理方法
Babu et al. SpinAPS: A high-performance spintronic accelerator for probabilistic spiking neural networks
Mouallem et al. 1T1R In-Memory Compute for Winner Takes All Application in Kohonen Neural Networks
US11881261B2 (en) CAMs for low latency complex distribution sampling

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: 20929098

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022511446

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20929098

Country of ref document: EP

Kind code of ref document: A1