US4163288A - Associative memory - Google Patents

Associative memory Download PDF

Info

Publication number
US4163288A
US4163288A US05/785,233 US78523377A US4163288A US 4163288 A US4163288 A US 4163288A US 78523377 A US78523377 A US 78523377A US 4163288 A US4163288 A US 4163288A
Authority
US
United States
Prior art keywords
memory
input
data
associative
multiplexer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
US05/785,233
Other languages
English (en)
Inventor
Daniel Vinot
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
INTERNATIONALE POUR L'INFORMATIQUE CII-HONEYWELL BULL Cie SA
Original Assignee
INTERNATIONALE POUR L'INFORMATIQUE CII-HONEYWELL BULL Cie SA
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 INTERNATIONALE POUR L'INFORMATIQUE CII-HONEYWELL BULL Cie SA filed Critical INTERNATIONALE POUR L'INFORMATIQUE CII-HONEYWELL BULL Cie SA
Application granted granted Critical
Publication of US4163288A publication Critical patent/US4163288A/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means

Definitions

  • the present invention relates to an assembly for associative memories and to a high-performance circuit intended for multiprocessor systems having two hierarchically arranged memory levels.
  • associative memories as memory masks with multiprocessors creates problems from the point of view of the software which, in order to ensure the validity of the information contained in the memories, has constantly to update a validity bit associated with each addressed location in a circuit external to the memories.
  • the problem is all the more complicated because of the numerous write operations which are performed in the auxiliary memory and which may be initiated by any processor.
  • the management involved which is the responsibility of the software, takes time.
  • each address is transmitted simultaneously to all the masks of the system and a search is made. If the search is successful, the corresponding location is indicated as requiring invalidation.
  • the frequency of the invalidating operations increases with the number of processors. If a normal search operation and an invalidating operation cannot be performed simultaneously, priority is given to the invalidating function and this inevitably reduces the performance of the computer. This problem exists in particular in cases where a plurality of processors share the same auxiliary memory via a plurality of masks. If a processor performs a write operation at location Y in the auxiliary memory and if mask O has a copy of this location Y, this copy becomes out of date and thus incorrect and needs to be invalidated.
  • the arrangement which is the subject of the present invention allows simultaneous and independent searches for a local user and for a possible invalidation. It prevents any interference between normal running and the invalidation function as used in the specification, the term "normal” is not an invalidation mode and is used to distinguish between an invalidation mode and a normal processing running mode.
  • the circuit which is the subject of the invention is characterised by the fact that it comprises two association assemblies for a single read/write memory assembly a first assembly comparing the content of the data descriptor word with the words read from the first associative memory assembly and a second assembly comparing the content of the words read from the associative memory to a data descriptor word corresponding to the memory word to be invalidated.
  • FIG. 1 is a general diagram of a double associative memory assembly according to the invention
  • FIG. 2 is a detailed diagram of an embodiment of the double associative memory.
  • the associative memory shown in FIG. 1 contains four memory levels, each level consisting of memory elements of equal capacity which are identified by the numbers 101 to 104, corresponding to the order of the levels from 0 to 3.
  • all the memory levels are addressed by the address word which has to be invalidated whereas in a normal mode, only one memory level is addressed by the address of the word which has to be written or read in said memory level.
  • the address of the word to be invalidated is represented in the Figure by the letters A2 to A6 and this address is applied to point A.
  • the address of the normal word is represented by letters B2 to B6 and is applied to point B.
  • Data description words are placed on lines I0 to IP and J0 to JP.
  • the address A0 to A6 comprises a first bit zone A0 and A1 representing the selection of one of the four memory levels, and a zone extending from A2 to A6 representing an address within a level.
  • the address B2 to B6 is applied simultaneously to all the levels.
  • the selection of the read or write mode is performed by means of the line WE which is connected to point W.
  • the items of data I0 to IP to be written in the normal mode are applied to points N on each level.
  • SA and SB are the outlet points for the memory words from each level when they are addressed by address words A2 to A6 and B2 to B6 respectively.
  • the search is made by means of address A2 to A6, which addresses all the levels simultaneously, and the words read from each level appear at outputs SA and are compared with the data word J0 to Jp to be invalidated by means of four comparators 109 to 112, whose outputs are indicated by the letters P4 to P7.
  • address A2 to A6 addresses all the levels simultaneously
  • the words read from each level appear at outputs SA and are compared with the data word J0 to Jp to be invalidated by means of four comparators 109 to 112, whose outputs are indicated by the letters P4 to P7.
  • the outputs SA from each level of the memory as well as the outputs of the comparators are multiplexed by means of a multiplexer 113, which is controlled by a signal RM applied to a multiplexer control signal input.
  • a signal RM applied to a multiplexer control signal input.
  • input A Connected to input A are two control conductors which transmit the bits A0 and A1 of the address word which select a memory level.
  • the multiplexed inputs are indicated by ⁇ , ⁇ , ⁇ , ⁇ , ⁇ .
  • Input ⁇ is connected to output SA of level 0 101
  • input ⁇ is connected to output SA of level 1 102
  • input ⁇ is connected to output SA of level 2 103
  • input ⁇ is connected to output SA of level 3 104
  • input ⁇ is connected to outputs P0 to P7 of comparators 105 to 112.
  • inputs ⁇ , ⁇ , ⁇ and ⁇ collectively may be considered a first multiplexer data input
  • input ⁇ receiving the comparator outputs P0-P7 may be considered a second multiplexer data input.
  • the actual coupling of the comparator outputs P0-P7 to the input ⁇ is via at least one AND circuit, representative AND circuits being denoted 214 and 216 in FIG. 2.
  • RM 1 and only inputs ⁇ , ⁇ , ⁇ , ⁇ are selected by the address bits A0 and A1.
  • RM assumes the 0 state and input ⁇ is selected.
  • the output of the multiplexer is indicated by 9 and transmits a word which is marked Q0 to QP.
  • An address conflict may exist when there is an invalidating order and an operating order to the same level and to the same address.
  • the conflict will be reported by the combined outputs P0 to P7 of the comparators.
  • FIG. 2 shows in detail an embodiment of a memory.
  • Unit 2O consists of memory means 202 to 205 corresponding respectively to levels 0, 1, 2 and 3 of the memory.
  • a memory mean is selected by means of outputs 1, 2, 3 and 4 of a decoder 201, which are connected respectively to the terminals 4 of memory means 202, 203, 204 and 205 and which emit signals ZS0, ZS1, ZS2 and ZS3 as dictated by the states which appear at the inputs 5 and 6 of the decoder.
  • the inputs 5 and 6 of decoder 201 are connected to the inputs A0 and A1 of the associative memory which receive the two bits (A0, A1) for addressing the memory levels in which the information has to be invalidated.
  • the inputs 1 of each memory means are connected to the five input terminals A2 to A6 of the associative memory which receive the address bits for the information to be invalidated within each level.
  • the inputs 2 of each memory means are connected to the five input terminals B2 to B6 of the double associative memory which receive the address bits for normal information.
  • the inputs 3 of each memory means are controlled by the write authorisation signal WE.
  • the inputs 5 of each memory means are connected together and receive bit I0 of the normal data descriptor.
  • the inputs 1 of the comparators 206, 208, 210 and 212 are connected together and receive bit I0 of the normal data descriptor.
  • the inputs 2 of the same comparators are connected to outputs S00, S10, S20 and S30 of memory means 202 to 205. These comparators emit from their outputs 3 signals K00, K10, K20 and K30, which thus represent a comparison on each level between bit 0 of the memory word and bit I0 of the data descriptor.
  • comparators 207, 209, 211 and 212 are connected respectively to outputs T00, T10, T20 and T30 of memory elements 202 to 205.
  • the inputs 2 of the same comparators are connected together and receive bit J0 of the descriptor for the word to be invalidated. These comparators emit from their outputs 3 signals L00, L10, L20 and L30, which thus represent a comparison on each level between bit 0 of the memory word and bit J0 of the descriptor for the data to be invalidated.
  • An AND circuit 214 receives at its inputs the signals K00, K01, . . . K08, and its output 10 emits the signal P0 when the content of the memory word on level 0 is identical with the content of the normal data descriptor.
  • the signals K01 to K08 are emitted by comparators identical to comparator 206 which are situated in memory units 21 to 2P respectively.
  • AND circuits whose operation is identical to that of AND circuit 214 are provided in the units 219, 220 and 221 shown in broken lines and emit signals P1, P2, and P3, the equations for which are:
  • And circuit 216 receives at its inputs signals L00, L01 . . . L08 and its output 10 emits signal P4 when the content of the memory word on level 0 is identical with the content of the descriptor for the data to be invalidated.
  • the signals L01 to L08 are emitted by comparators identical to comparators 207 which are situated in memory units 21 to 28 respectively.
  • AND circuits whose operation is identical to that of AND circuit 216 are provided in the units 219, 220 and 221 shown in broken lines and emit signals P5, P6 and P7 in accordance with the equations:
  • the succeeding multiplexers emit signals QI to QP.
  • the number of comparators required to recognise the normal data descriptor is equal to the number of memory levels multiplied by the number of memory units. This number is the same for the comparators for recognising the word to be invalidated.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
US05/785,233 1976-04-15 1977-04-06 Associative memory Expired - Lifetime US4163288A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR7611234A FR2348544A1 (fr) 1976-04-15 1976-04-15 Ensemble double de memoire associative
FR7611234 1976-04-15

Publications (1)

Publication Number Publication Date
US4163288A true US4163288A (en) 1979-07-31

Family

ID=9171912

Family Applications (1)

Application Number Title Priority Date Filing Date
US05/785,233 Expired - Lifetime US4163288A (en) 1976-04-15 1977-04-06 Associative memory

Country Status (2)

Country Link
US (1) US4163288A (fr)
FR (1) FR2348544A1 (fr)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4257110A (en) * 1977-04-19 1981-03-17 Semionics Associates, Inc. Recognition memory with multiwrite and masking
US4316225A (en) * 1979-06-05 1982-02-16 Matsushita Electric Industrial Co., Ltd. Rotary head assembly for magnetic recording and reproducing device
US4376974A (en) * 1980-03-31 1983-03-15 Ncr Corporation Associative memory system
US4384343A (en) * 1979-02-12 1983-05-17 Honeywell Information Systems Inc. Firmware controlled search and verify apparatus and method for a data processing system
EP0149389A2 (fr) * 1983-12-29 1985-07-24 Fujitsu Limited Système de commande de traduction d'adresse
US4580240A (en) * 1981-12-15 1986-04-01 Nippon Electric Co., Ltd. Memory arrangement operable as a cache and a local memory
US5446686A (en) * 1994-08-02 1995-08-29 Sun Microsystems, Inc. Method and appartus for detecting multiple address matches in a content addressable memory
US5485418A (en) * 1990-01-16 1996-01-16 Mitsubishi Denki Kabushiki Kaisha Associative memory

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4825360A (en) * 1986-07-30 1989-04-25 Symbolics, Inc. System and method for parallel processing with mostly functional languages

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3581291A (en) * 1968-10-31 1971-05-25 Hitachi Ltd Memory control system in multiprocessing system
US3588839A (en) * 1969-01-15 1971-06-28 Ibm Hierarchical memory updating system
US3602899A (en) * 1969-06-20 1971-08-31 Ibm Associative memory system with match,no match and multiple match resolution
US3693165A (en) * 1971-06-29 1972-09-19 Ibm Parallel addressing of a storage hierarchy in a data processing system using virtual addressing
US3781808A (en) * 1972-10-17 1973-12-25 Ibm Virtual memory system
US3958225A (en) * 1974-01-28 1976-05-18 Teletype Corporation Apparatus and method for controlling a communications terminal
US3967247A (en) * 1974-11-11 1976-06-29 Sperry Rand Corporation Storage interface unit
US3979726A (en) * 1974-04-10 1976-09-07 Honeywell Information Systems, Inc. Apparatus for selectively clearing a cache store in a processor having segmentation and paging

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3644906A (en) * 1969-12-24 1972-02-22 Ibm Hybrid associative memory

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3581291A (en) * 1968-10-31 1971-05-25 Hitachi Ltd Memory control system in multiprocessing system
US3588839A (en) * 1969-01-15 1971-06-28 Ibm Hierarchical memory updating system
US3602899A (en) * 1969-06-20 1971-08-31 Ibm Associative memory system with match,no match and multiple match resolution
US3693165A (en) * 1971-06-29 1972-09-19 Ibm Parallel addressing of a storage hierarchy in a data processing system using virtual addressing
US3781808A (en) * 1972-10-17 1973-12-25 Ibm Virtual memory system
US3958225A (en) * 1974-01-28 1976-05-18 Teletype Corporation Apparatus and method for controlling a communications terminal
US3979726A (en) * 1974-04-10 1976-09-07 Honeywell Information Systems, Inc. Apparatus for selectively clearing a cache store in a processor having segmentation and paging
US3967247A (en) * 1974-11-11 1976-06-29 Sperry Rand Corporation Storage interface unit

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4257110A (en) * 1977-04-19 1981-03-17 Semionics Associates, Inc. Recognition memory with multiwrite and masking
US4384343A (en) * 1979-02-12 1983-05-17 Honeywell Information Systems Inc. Firmware controlled search and verify apparatus and method for a data processing system
US4316225A (en) * 1979-06-05 1982-02-16 Matsushita Electric Industrial Co., Ltd. Rotary head assembly for magnetic recording and reproducing device
US4376974A (en) * 1980-03-31 1983-03-15 Ncr Corporation Associative memory system
US4580240A (en) * 1981-12-15 1986-04-01 Nippon Electric Co., Ltd. Memory arrangement operable as a cache and a local memory
EP0149389A2 (fr) * 1983-12-29 1985-07-24 Fujitsu Limited Système de commande de traduction d'adresse
EP0149389A3 (en) * 1983-12-29 1987-05-20 Fujitsu Limited Address translation control system
US4733350A (en) * 1983-12-29 1988-03-22 Fujitsu Limited Improved purge arrangement for an address translation control system
US5485418A (en) * 1990-01-16 1996-01-16 Mitsubishi Denki Kabushiki Kaisha Associative memory
US5446686A (en) * 1994-08-02 1995-08-29 Sun Microsystems, Inc. Method and appartus for detecting multiple address matches in a content addressable memory

Also Published As

Publication number Publication date
FR2348544B1 (fr) 1979-01-12
FR2348544A1 (fr) 1977-11-10

Similar Documents

Publication Publication Date Title
US4580240A (en) Memory arrangement operable as a cache and a local memory
US4410944A (en) Apparatus and method for maintaining cache memory integrity in a shared memory environment
US4458310A (en) Cache memory using a lowest priority replacement circuit
US4527238A (en) Cache with independent addressable data and directory arrays
US4075686A (en) Input/output cache system including bypass capability
US4751703A (en) Method for storing the control code of a processor allowing effective code modification and addressing circuit therefor
KR100190351B1 (ko) 2-레벨 캐시 메모리의 방해 감소장치 및 방법
US4707784A (en) Prioritized secondary use of a cache with simultaneous access
US3723976A (en) Memory system with logical and real addressing
US5228135A (en) Multiport cache memory control unit including a tag memory having plural address ports and a snoop address part
US4648035A (en) Address conversion unit for multiprocessor system
US4157586A (en) Technique for performing partial stores in store-thru memory configuration
US4797813A (en) Cache memory control apparatus
AU623457B2 (en) Increasing options in locating rom in computer memory space
US4433388A (en) Longitudinal parity
US4453216A (en) Access control system for a channel buffer
US5148539A (en) Address bus control apparatus
US4163288A (en) Associative memory
EP0862761B1 (fr) Detection et correction d'erreurs pour une memoire ram statique partagee
US4870569A (en) Vector access control system
EP0525308A1 (fr) Mappage de mémoire pour antémémoire de processeur
US4441152A (en) Data processing system having ring-like connected multiprocessors relative to key storage
US6412051B1 (en) System and method for controlling a memory array in an information handling system
US5742790A (en) Detection circuit for identical and simultaneous access in a parallel processor system with a multi-way multi-port cache
JPH07282588A (ja) カナーバメモリを作る装置、システム、方法