← Back to Patent Explorer
US5615360A Expired / Lapsed US ⏱️ 0.0 years remaining

Method for interfacing applications with a content addressable memory

Assignee: International Business Machines Corp
•
Filing: 1994-09-21
•
Granted: 1997-03-25
•
Expires: 2014-09-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The computer system has its parallel and serial implementations, its serial and parallel network and multi-processor configurations, with tight and loose coupling among processors. The computer system has a CAM coupled to the computer system or imbedded therein. CAM requests may be processed serially, or as parallel queries and coupled with PAPS (Parallel Associative Processor System) capabilities (P-CAM). The computer system may be configured as an expert system preferably having combined tuple space (TS) and CAM (content addressable memory) resources, an inference engine and a knowledge base. As an expert system, improvements for production processing are provided which surpass prior ad performance represented by RETE and CLIPS. An inferencing process for production systems is disclosed, and a process for working memory element assertions. The computer system is provided with a language construct which is language independent in the form of a sub-set paradigm having three basic operators and three basic extensions. The basic primitive sub-set paradigm including OUT(); IN() and READ(). Extensions of said basic sub-set are Sample(); SampleList(); and ReadList(). These primitives may be used with LINDA, and with various compilers. EVAL of LINDA is not used but instead the sub-set paradigm is used with CAM for tuple space operations in data base applications. The language construct paradigm is use to envelope and control CAM operations.

Inventors

  • 👤 John D. Bezek
  • 👤 Peter M. Kogge

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 11:14
CPC Classifications
G; G06; G06F; G06F15/00; G06F15/16; G06F15/163; G06F15/173; G06F15/17356; G06F15/17368; G06F15/17337; G06F15/17343; G06F15/17381; G06F15/76; G06F15/80; G06F15/8007; G06F15/8015; G06F15/803; G06F7/00; G06F7/38; G06F7/48; G06F7/483; F; F02; F02B; F02B75/00; F02B75/02; F02B2075/022; F02B2075/027

Claims Analysis

Total Claims: 23
Claim 1
Independent Claim 160 words
A method for interfacing an application program run on a processor to a hardware implemented content addressable memory capable of plural concurrent comparisons, said content addressable memory including a memory array, the method comprising the steps of: using an IN operator for checking the memory array in said content addressable memory for a matching tuple and, if no matching tuple, suspending the portion of the application program using the IN operator until a matching tuple appears in the memory array, providing a matching tuple to the application program and deleting the matching tuple from the memory array; using an OUT operator to place a tuple in the memory array; and using an operator for checking the memory array within said content addressable memory for a matching tuple, selectively suspending or not suspending the portion of the application program issuing the READ operator until a matching tuple appears in the memory array, and providing the matched tuple to the application program.
Claim 2
Independent Claim 160 words
A method for interfacing an application program run on a processor to a hardware implemented content addressable memory capable of plural concurrent comparisons, said content addressable memory including a memory array, the method comprising the steps of: using an IN operator for checking the memory array in said content addressable memory for a matching tuple and, if no matching tuple, suspending the portion of the application program using the IN operator until a matching tuple appears in the memory array, providing a matching tuple to the application program and deleting the matching tuple from the memory array; using an OUT operator to place a tuple in the memory array; and using an operator for checking the memory array within said content addressable memory for a matching tuple, selectively suspending or not suspending the portion of the application program issuing the READ operator until a matching tuple appears in the memory array, and providing the matched tuple to the application program.
Claim 3
Dependent Claim 42 words
The method of claim 1 further comprising the step of using a SAMPLE operator for checking the memory array for a matching tuple and returning the matching tuple if found, the application program not being suspended if a match is not found.
Claim 4
Dependent Claim 41 words
The method of claim 2 further comprising the steps of using a SAMPLELIST operator for checking the memory array for a matching tuple and returning all matching tuples found, the application program not being suspended if a match is not found.
Claim 5
Dependent Claim 63 words
The method of claim 3 further comprising the steps of using a READLIST operator for checking for a matching tuple and returning all matching tuples, if no matching tuple is found, suspending the portion of the application program issuing the READLIST operator, resuming operation of the suspended portion of the application program when one or more matching tuples appear in the memory array.
Claim 6
Dependent Claim 41 words
The method of claim 1 further comprising the steps of using a SAMPLELIST operator for checking the memory array for a matching tuple and returning all matching tuples found, the application program not being suspended if a match is not found.
Claim 7
Dependent Claim 63 words
The method of claim 1 further comprising the steps of using a READLIST operator for checking for a matching tuple and returning all matching tuples, if no matching tuple is found, suspending the portion of the application program issuing the READLIST operator, resuming operation of the suspended portion of the application program when one or more matching tuples appear in the memory array.
Claim 8
Dependent Claim 23 words
A method as recited in claim 1, including the further step of selectively returning one or all said matching tuples to said application.
Claim 9
Independent Claim 86 words
A method for searching a plurality of stored memory elements including the steps of storing at least a portion of said plurality of said stored memory elements in a content addressable memory as working memory elements, concurrently comparing, in said content addressable memory, said working memory elements with a pattern under a mask, and selectively returning either at least one matching working memory element or all matching memory elements to an application program if any working memory element in said content addressable memory matches said pattern.
Claim 10
Independent Claim 86 words
A method for searching a plurality of stored memory elements including the steps of storing at least a portion of said plurality of said stored memory elements in a content addressable memory as working memory elements, concurrently comparing, in said content addressable memory, said working memory elements with a pattern under a mask, and selectively returning either at least one matching working memory element or all matching memory elements to an application program if any working memory element in said content addressable memory matches said pattern.
Claim 11
Dependent Claim 44 words
A method as recited in claim 8, wherein said step of storing at least a portion of said plurality of said stored memory elements in a content addressable memory includes at least one step of applying an OUT operator to said content addressable memory.
Claim 12
Dependent Claim 46 words
A method as recited in claim 8, wherein said storing and comparing steps are controlled by said application program, said method including the further step of suspending said application program if no working memory element is found in said content addressable memory which matches said pattern.
Claim 13
Dependent Claim 22 words
A method as recited in claim 10, wherein said comparing, returning and suspending steps are performed in response to a READ operator.
Claim 14
Dependent Claim 32 words
A method as recited in claim 8, including the further step of suspending said application program if no working memory element is found in said content addressable memory which matches said pattern.
Claim 15
Dependent Claim 22 words
A method as recited in claim 12, wherein said comparing, returning and suspending steps are performed in response to a READLIST operator.
Claim 16
Dependent Claim 21 words
A method as recited in claim 8, wherein said comparing and returning steps are performed in response to a SAMPLE operator.
Claim 17
Dependent Claim 21 words
A method as recited in claim 8, wherein said comparing and returning steps are performed in response to a SAMPLELIST operator.
Claim 18
Dependent Claim 28 words
A method as recited in claim 8, including the further step of removing, from said content addressable memory, said working memory element which is returned to said application.
Claim 19
Dependent Claim 22 words
A method as recited in claim 16, wherein said comparing, returning and removing steps are performed in response or an IN operator.
Claim 20
Dependent Claim 43 words
A method as recited in claim 8, including the further step of selectively suspending or not suspending an application requesting said searching of said plurality of memory elements when no working memory element is found to match said pattern by said comparing step.
Claim 21
Independent Claim 200 words
A method for interfacing an application run on a processor to a hardware implemented content addressable memory using a paradigm having at least two pairs of constructs, each construct of said at least two pairs of constructs, when executed, performing the steps of executing a task in said hardware implemented content addressable memory, and returning matching memory elements from said hardware implemented content addressable memory to said application, wherein one pair of said at least two pairs of constructs differs from another pair of said at least two pairs of constructs by the number of matching working memory elements in said working memory elements returned to said application upon performing said executing step of a construct of said one pair of constructs and said another pair of constructs, and wherein one construct of each of said at least two pairs of constructs differing from another construct of each of said at least two pairs of constructs in a respective returning step by suspending execution of said construct or not suspending execution of said construct if no matching working memory element is found in said content addressable memory until a matching working memory element is placed in said content addressable memory.
Claim 22
Independent Claim 200 words
A method for interfacing an application run on a processor to a hardware implemented content addressable memory using a paradigm having at least two pairs of constructs, each construct of said at least two pairs of constructs, when executed, performing the steps of executing a task in said hardware implemented content addressable memory, and returning matching memory elements from said hardware implemented content addressable memory to said application, wherein one pair of said at least two pairs of constructs differs from another pair of said at least two pairs of constructs by the number of matching working memory elements in said working memory elements returned to said application upon performing said executing step of a construct of said one pair of constructs and said another pair of constructs, and wherein one construct of each of said at least two pairs of constructs differing from another construct of each of said at least two pairs of constructs in a respective returning step by suspending execution of said construct or not suspending execution of said construct if no matching working memory element is found in said content addressable memory until a matching working memory element is placed in said content addressable memory.
Claim 23
Dependent Claim 48 words
A method as recited in claim 19, wherein said paradigm includes one further construct for performing a step of adding a working memory element to said content addressable memory and another further construct for performing a step of deleting a working memory element from said content addressable memory.

References Cited (Backward Citations)

US5014327A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-03-24 2000-09-23 2001-03-25 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-03-24 2004-09-23 2005-03-25 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-03-24 2008-09-23 2009-03-25 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag