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

Database engine

Assignee: International Business Machines Corp
•
Filing: 1994-10-21
•
Granted: 1996-07-16
•
Expires: 2014-10-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A processor functioning as a coprocessor attached to a central processing complex provides efficient execution of the functions required for database processing: sorting, merging, joining, searching and manipulating fields in a host memory system. The specialized. functional units: a memory interface and field extractor/assembler, a Predicate Evaluator, a combined sort/merge/join unit, a hasher, and a microcoded control processor, are all centered around a partitioned Working Store. Each functional unit is pipelined and optimized according to the function it performs, and executes its portion of the query efficiently. All functional units execute simultaneously under the control processor to achieve the desired results. Many different database functions can be performed by chaining simple operations together. The processor can effectively replace the CPU bound portions of complex database operations with functions that run at the maximum memory access rate improving performance on complex queries.

Inventors

  • 👤 Richard I. Baum
  • 👤 Glen A. Brent
  • 👤 Donald H. Gibson
  • 👤 David B. Lindquist

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 22:08
CPC Classifications
G; G06; G06F; G06F15/00; G06F15/76; G06F15/78; G06F16/00; G06F16/20; G06F16/28; G06F16/284; F; F02; F02B; F02B75/00; F02B75/02; F02B2075/022; F02B2075/027; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99933; Y10S707/99934; Y10S707/99937; Y10S707/99941; Y10S707/99943; Y10S707/99951; Y10S707/99952

Claims Analysis

Total Claims: 10
Claim 1
Independent Claim 225 words
A method of executing relational database functions in a database engine processor having a control unit, a working memory and a plurality of independently controllable processing elements interconnected by an internal control bus and an internal data bus, each of said plurality of processing elements selectively performing predetermined functions, comprising the steps of: (a) fetching, with a single invocation of said database engine processor, a command block from a system memory in a host computer, said command block comprising a database command and a location in the system memory of a predicate to be used during the processing of the database command; (b) parsing the database command into a sequence of predetermined database processing operations to be performed; (c) selecting, based on selected ones of said predetermined functions performable by said plurality of independently controllable processing elements, ones of the processing elements to perform each of the database processing operations identified in step (b) responsive to said single invocation of said processor; (d) controlling, independently of the host computer, based on the database command, the selected ones of the processing elements to perform the sequence of predetermined database processing operations; (e) temporarily collecting results of the performing of step (d) from said selected ones of said processing elements in the working memory; and (f) assembling the results collected in step (e) into the system memory.
Claim 2
Independent Claim 225 words
A method of executing relational database functions in a database engine processor having a control unit, a working memory and a plurality of independently controllable processing elements interconnected by an internal control bus and an internal data bus, each of said plurality of processing elements selectively performing predetermined functions, comprising the steps of: (a) fetching, with a single invocation of said database engine processor, a command block from a system memory in a host computer, said command block comprising a database command and a location in the system memory of a predicate to be used during the processing of the database command; (b) parsing the database command into a sequence of predetermined database processing operations to be performed; (c) selecting, based on selected ones of said predetermined functions performable by said plurality of independently controllable processing elements, ones of the processing elements to perform each of the database processing operations identified in step (b) responsive to said single invocation of said processor; (d) controlling, independently of the host computer, based on the database command, the selected ones of the processing elements to perform the sequence of predetermined database processing operations; (e) temporarily collecting results of the performing of step (d) from said selected ones of said processing elements in the working memory; and (f) assembling the results collected in step (e) into the system memory.
Claim 3
Dependent Claim 84 words
The method of claim 1 further comprising the steps of: (g) reading the predicate from the location in the system memory included in said block fetched from said system memory; (h) causing the control unit to generate predicate evaluation instructions based on said predicate read from said system memory; (i) loading the predicate evaluation instructions into a preselected one of the processing elements; and (j) causing the preselected one of the processing elements to process the predicate in accordance with the predicate evaluation instructions.
Claim 4
Dependent Claim 58 words
A method, as recited in claim 2, further comprising the steps of: (k) determining a data format from the database command fetched in (a); (l) commanding an extractor, based on data read from said system memory, to extract records and data fields from said system memory; and (m) storing said extracted records and data fields in local memory.
Claim 5
Dependent Claim 26 words
A method, as recited in claim 3, wherein said step of assembling is performed by said extractor and said results are assembled in said data format.
Claim 6
Dependent Claim 38 words
A method, as recited in claim 4, further comprising the step of: (n) signaling a host processor by outputting a signal thereto from said processor, wherein said signal indicates that data in said command block has been processed.
Claim 7
Dependent Claim 54 words
A method, as recited in claim 1, wherein said plurality of processing elements is arranged in a pipeline fashion, wherein a first one of said processing elements fetches a block of data from local memory, processes said data based on said predetermined function, and passes an output block of data into said local memory.
Claim 8
Dependent Claim 36 words
A method, as recited in claim 6, wherein said first one of said processing elements then signals a next one of said processing elements, wherein said signal indicates a location of said output block of data.
Claim 9
Dependent Claim 27 words
A method, as recited in claim 1, wherein said processing elements are processable as at least two stages, said at least two stages constructing complex database commands.
Claim 10
Dependent Claim 29 words
A method, as recited in claim 1, wherein, after said single invocation of said processor, said controlling of said processing elements requires no further intervention of said host computer.

References Cited (Backward Citations)

US4598385A Cited
EP0066061A2 Cited
US4514826A Cited
EP0070119A2 Cited
US4787026A Cited
US4967341A Cited
US4894768A Cited
US5239663A Cited
WO1989012277A1 Cited
GB2235798A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-07-16 2000-01-15 2000-07-16 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-07-16 2004-01-15 2004-07-16 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-07-16 2008-01-15 2008-07-16 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag