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

Method and system for dynamically generating computer instructions for performing a logical operation on bitmaps

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1992-07-06
•
Granted: 1997-02-18
•
Expires: 2012-07-06
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and system for generating a set of computer instructions to implement a logical operation to be performed on a plurality of bitmaps. A Boolean equation is specified that has a plurality of terms that use Boolean operations. Subsets of computer instructions are generated that implement each of the Boolean operations of the terms. When executing a routine to display a bitmap (bitBLT routine), a logical operation and a plurality of bitmaps are specified. The routine determines which of the generated subsets of computer instructions are needed to implement the specified logical operation. The determined subsets of computer instructions are then retrieved and combined to form the set of computer instructions that implements a logical operation. The set of computer instructions can then be executed to effect a display of a bitmap with the specified logical operation.

Inventors

  • 👤 Charles Whitmer

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-25 00:22
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F8/00; G06F8/30; G06F7/00; G06F9/44

Claims Analysis

Total Claims: 111
Claim 1
Independent Claim 151 words
A method of generating a set of computer instructions to implement a logical operation to be performed on a plurality of bitmaps, the method comprising the steps of: specifying a Boolean equation, the equation having a plurality of terms, wherein each term has a corresponding coefficient; for each term of the Boolean equation, generating a subset of computer instructions that implements the term; storing each generated subset of computer instructions in a computer instructions table; and during execution of a computer program, requesting a logical operation; mapping the requested logical operation to a set of coefficients; determining which stored subsets of computer instructions are needed to implement the requested logical operation based on the mapped set of coefficients; retrieving the determined subsets of computer instructions from the computer instructions table; and combining the retrieved subsets of computer instructions to generate the set of computer instructions that implements the requested logical operation.
Claim 2
Independent Claim 151 words
A method of generating a set of computer instructions to implement a logical operation to be performed on a plurality of bitmaps, the method comprising the steps of: specifying a Boolean equation, the equation having a plurality of terms, wherein each term has a corresponding coefficient; for each term of the Boolean equation, generating a subset of computer instructions that implements the term; storing each generated subset of computer instructions in a computer instructions table; and during execution of a computer program, requesting a logical operation; mapping the requested logical operation to a set of coefficients; determining which stored subsets of computer instructions are needed to implement the requested logical operation based on the mapped set of coefficients; retrieving the determined subsets of computer instructions from the computer instructions table; and combining the retrieved subsets of computer instructions to generate the set of computer instructions that implements the requested logical operation.
Claim 3
Dependent Claim 53 words
The method of claim 1 including the step of generating a coefficient table, and wherein the step of determining which stored subset of computer instructions are needed includes the step of retrieving the mapped set of coefficients from the coefficient table using the requested logical operation as an index into the coefficient table.
Claim 4
Dependent Claim 54 words
The method of claim 2 wherein the step of generating the coefficient table includes the steps of: for each set of coefficients, determining a logical operation that the set of coefficients represents; and storing the set of coefficients in the coefficient table using the determined logical operation as an index into the coefficient table.
Claim 5
Dependent Claim 230 words
The method of claim 2 wherein the specified Boolean equation is F(S.sub.1, S.sub.2, D)=α.sub.0 ·1⊕α.sub.1 ·S.sub.1 ⊕α.sub.2 ·S.sub.2 ⊕α.sub.3 ·D⊕α.sub.4 ·S.sub.1 S.sub.2 ⊕α.sub.5 ·S.sub.1 D⊕α.sub.6 ·S.sub.2 D⊕α.sub.7 ·S.sub.1 S.sub.2 D; wherein α 0 . . . α 7 are logical operation-specific coefficients of the equation, where ⊕ represents the Boolean exclusive-OR operator, where · and juxtaposition represent the Boolean AND operator, where logical 1, S 1 , . . . , S 1 S 2 D are terms of the equation, and where S 1 , S 2 , and D are bitmaps; and wherein the step of generating the coefficient table comprises the following steps: for each set of coefficients, wherein each coefficient in the set of coefficients is represented by α i , and where i=1, 2, . . . 8; initializing a saved logical operation number to 0; for S 1 =the values 1 and 0, for S 2 =the values 1 and 0, for D=the values 1 and 0, evaluating the Boolean equation using the set of coefficients and the values of S 1 , S 2 , and D; multiplying the saved logical operation number by 2; and adding the result of the evaluated Boolean equation to the multiplied saved logical operation; and storing the set of coefficients in the coefficient table using the saved logical operation number as in index into the coefficient table.
Claim 6
Independent Claim 164 words
A method of generating a set of computer instructions to implement a logical operation to be performed on a plurality of bitmaps, the method comprising the steps of: specifying a Boolean equation, the equation having a plurality of terms, wherein the specified Boolean equation describes all possible logical operations that can be performed on the bitmaps, and wherein the number of terms of the specified equation is less than the total number of possible logical operations; for each term of the Boolean equation, generating a subset of computer instructions that implements the term; storing each generated subset of computer instructions in a computer instructions table; and during execution of a computer program, requesting a logical operation; determining which stored subsets of computer instructions are needed to implement the requested logical operation; retrieving the determined subsets of computer instructions from the computer instructions table; and combining the retrieved subsets of computer instructions to generate the set of computer instructions that implements the requested logical operation.
Claim 7
Independent Claim 164 words
A method of generating a set of computer instructions to implement a logical operation to be performed on a plurality of bitmaps, the method comprising the steps of: specifying a Boolean equation, the equation having a plurality of terms, wherein the specified Boolean equation describes all possible logical operations that can be performed on the bitmaps, and wherein the number of terms of the specified equation is less than the total number of possible logical operations; for each term of the Boolean equation, generating a subset of computer instructions that implements the term; storing each generated subset of computer instructions in a computer instructions table; and during execution of a computer program, requesting a logical operation; determining which stored subsets of computer instructions are needed to implement the requested logical operation; retrieving the determined subsets of computer instructions from the computer instructions table; and combining the retrieved subsets of computer instructions to generate the set of computer instructions that implements the requested logical operation.
Claim 8
Independent Claim 215 words
A method of generating a set of computer instructions to implement a logical operation to be performed on a plurality of bitmaps, the method comprising the steps of: specifying a Boolean equation, the equation having a plurality of terms wherein the specified Boolean equation is F(S.sub.1, S.sub.2, D)=α.sub.0 ·1⊕α.sub.1 ·S.sub.1 ⊕α.sub.2 ·S.sub.2 ⊕α.sub.3 ·D⊕α.sub.4 ·S.sub.1 S.sub.2 ⊕α.sub.5 ·S.sub.1 D⊕α.sub.6 ·S.sub.2 D⊕α.sub.7 ·S.sub.1 S.sub.2 D wherein α 0 . . . α 7 are logical operation-specific coefficients of the equation, where ⊕ represents the Boolean exclusive-OR operator, where · and juxtaposition represent the Boolean AND operator, where logical 1, S 1 , . . . , S 1 S 2 D are terms of the equation, and where S 1 , S 2 , and D are bitmaps; for each term of the Boolean equation, generating a subset of computer instructions that implements the term; storing each generated subset of computer instructions in a computer instructions table; and during execution of a computer program, requesting a logical operation; determining which stored subsets of computer instructions are needed to implement the requested logical operation; retrieving the determined subsets of computer instructions from the computer instructions table; and combining the retrieved subsets of computer instructions to generate the set of computer instructions that implements the requested logical operation.
Claim 9
Independent Claim 215 words
A method of generating a set of computer instructions to implement a logical operation to be performed on a plurality of bitmaps, the method comprising the steps of: specifying a Boolean equation, the equation having a plurality of terms wherein the specified Boolean equation is F(S.sub.1, S.sub.2, D)=α.sub.0 ·1⊕α.sub.1 ·S.sub.1 ⊕α.sub.2 ·S.sub.2 ⊕α.sub.3 ·D⊕α.sub.4 ·S.sub.1 S.sub.2 ⊕α.sub.5 ·S.sub.1 D⊕α.sub.6 ·S.sub.2 D⊕α.sub.7 ·S.sub.1 S.sub.2 D wherein α 0 . . . α 7 are logical operation-specific coefficients of the equation, where ⊕ represents the Boolean exclusive-OR operator, where · and juxtaposition represent the Boolean AND operator, where logical 1, S 1 , . . . , S 1 S 2 D are terms of the equation, and where S 1 , S 2 , and D are bitmaps; for each term of the Boolean equation, generating a subset of computer instructions that implements the term; storing each generated subset of computer instructions in a computer instructions table; and during execution of a computer program, requesting a logical operation; determining which stored subsets of computer instructions are needed to implement the requested logical operation; retrieving the determined subsets of computer instructions from the computer instructions table; and combining the retrieved subsets of computer instructions to generate the set of computer instructions that implements the requested logical operation.
Claim 10
Independent Claim 208 words
A method of generating a set of computer instructions to implement a logical operation to be performed on a plurality of bitmaps, the method comprising the steps of: specifying a Boolean equation, the equation having a plurality of terms wherein the specified Boolean equation is F(S.sub.1, S.sub.2, D)=λ.sub.0 S.sub.1 S.sub.2 D+λ.sub.1 S.sub.1 S.sub.2 D'+λ.sub.2 S.sub.1 S.sub.2 'D+λ.sub.3 S.sub.1 S.sub.2 'D'+λ.sub.4 S.sub.1 'S.sub.2 D+λ.sub.5 S.sub.1 'S.sub.2 D'+λ.sub.6 S.sub.1 'S.sub.2 'D+λ.sub.7 S.sub.1 'S.sub.2 'D' wherein λ 0 . . . λ 7 are logical operation-specific coefficients of the equation, where + represents the Boolean inclusive-OR operator, where juxtaposition represents the Boolean AND operator, where ' represents the Boolean complement operator, and where S 1 , S 2 , and D are bitmaps; for each term of the Boolean equation, generating a subset of computer instructions that implements the term; storing each generated subset of computer instructions in a computer instructions table; and during execution of a computer program, requesting a logical operation; determining which stored subsets of computer instructions are needed to implement the requested logical operation; retrieving the determined subsets of computer instructions from the computer instructions table; and combining the retrieved subsets of computer instructions to generate the set of computer instructions that implements the requested logical operation.
Claim 11
Independent Claim 208 words
A method of generating a set of computer instructions to implement a logical operation to be performed on a plurality of bitmaps, the method comprising the steps of: specifying a Boolean equation, the equation having a plurality of terms wherein the specified Boolean equation is F(S.sub.1, S.sub.2, D)=λ.sub.0 S.sub.1 S.sub.2 D+λ.sub.1 S.sub.1 S.sub.2 D'+λ.sub.2 S.sub.1 S.sub.2 'D+λ.sub.3 S.sub.1 S.sub.2 'D'+λ.sub.4 S.sub.1 'S.sub.2 D+λ.sub.5 S.sub.1 'S.sub.2 D'+λ.sub.6 S.sub.1 'S.sub.2 'D+λ.sub.7 S.sub.1 'S.sub.2 'D' wherein λ 0 . . . λ 7 are logical operation-specific coefficients of the equation, where + represents the Boolean inclusive-OR operator, where juxtaposition represents the Boolean AND operator, where ' represents the Boolean complement operator, and where S 1 , S 2 , and D are bitmaps; for each term of the Boolean equation, generating a subset of computer instructions that implements the term; storing each generated subset of computer instructions in a computer instructions table; and during execution of a computer program, requesting a logical operation; determining which stored subsets of computer instructions are needed to implement the requested logical operation; retrieving the determined subsets of computer instructions from the computer instructions table; and combining the retrieved subsets of computer instructions to generate the set of computer instructions that implements the requested logical operation.
Claim 12
Independent Claim 173 words
A method of generating a set of computer instructions to implement a logical operation to be performed on a plurality of bitmaps, the method comprising the steps of: specifying a Boolean equation, the equation having a plurality of terms; for each term of the Boolean equation, generating a subset of computer instructions that implements the term; storing each generated subset of computer instructions in a computer instructions table; and during execution of a computer program, requesting a logical operation; determining which stored subsets of computer instructions are needed to implement the requested logical operation; retrieving the determined subsets of computer instructions from the computer instructions table; and combining the retrieved subsets of computer instructions to generate the set of computer instructions that implements the requested logical operation, wherein the stored subsets of computer instructions include alternative subsets of computer instructions for each term of the specified Boolean equation and wherein the alternative subsets of computer instructions are optimized to be a first subset of computer instructions of the combined subsets of computer instructions.
Claim 13
Independent Claim 173 words
A method of generating a set of computer instructions to implement a logical operation to be performed on a plurality of bitmaps, the method comprising the steps of: specifying a Boolean equation, the equation having a plurality of terms; for each term of the Boolean equation, generating a subset of computer instructions that implements the term; storing each generated subset of computer instructions in a computer instructions table; and during execution of a computer program, requesting a logical operation; determining which stored subsets of computer instructions are needed to implement the requested logical operation; retrieving the determined subsets of computer instructions from the computer instructions table; and combining the retrieved subsets of computer instructions to generate the set of computer instructions that implements the requested logical operation, wherein the stored subsets of computer instructions include alternative subsets of computer instructions for each term of the specified Boolean equation and wherein the alternative subsets of computer instructions are optimized to be a first subset of computer instructions of the combined subsets of computer instructions.
Claim 14
Dependent Claim 50 words
The method of claim 8 wherein the stored subsets of computer instructions use a result register, wherein the alternative subsets of computer instructions implement the terms by storing the value of each term directly in the result register without performing a Boolean operation on previous contents of the result register.
Claim 15
Independent Claim 164 words
A method of generating a set of computer instructions to implement a logical operation to be performed on a plurality of bitmaps, each bitmap having a plurality of bits, the method comprising the steps of; specifying a Boolean equation, the equation having a plurality of terms; for each term of the Boolean equation, generating a subset of computer instructions that implements the term; storing each generated subset of computer instructions in a computer instructions table; and during execution of a computer program, requesting a logical operation; determining which stored subsets of computer instructions are needed to implement the requested logical operation; retrieving the determined subsets of computer instructions from the computer instructions table; combining the retrieved subsets of computer instructions to generate the set of computer instructions that implements the requested logical operation; and combining the generated set of computer instructions with stored computer instructions which are common to all logical operations, the common stored computer instructions for looping through bits of the bitmaps.
Claim 16
Independent Claim 164 words
A method of generating a set of computer instructions to implement a logical operation to be performed on a plurality of bitmaps, each bitmap having a plurality of bits, the method comprising the steps of; specifying a Boolean equation, the equation having a plurality of terms; for each term of the Boolean equation, generating a subset of computer instructions that implements the term; storing each generated subset of computer instructions in a computer instructions table; and during execution of a computer program, requesting a logical operation; determining which stored subsets of computer instructions are needed to implement the requested logical operation; retrieving the determined subsets of computer instructions from the computer instructions table; combining the retrieved subsets of computer instructions to generate the set of computer instructions that implements the requested logical operation; and combining the generated set of computer instructions with stored computer instructions which are common to all logical operations, the common stored computer instructions for looping through bits of the bitmaps.
Claim 17
Dependent Claim 25 words
The method of claim 10 wherein the common stored computer instructions are optimized to use only the bitmaps required to implement the requested logical operation.
Claim 18
Dependent Claim 25 words
The method of claim 10 wherein the common stored computer instructions are optimized to validate only the bitmaps required to implement the requested logical operation.
Claim 19
Independent Claim 127 words
A method for storing a set of computer instructions to implement logical operations on a plurality of inputs, the method comprising the steps of: specifying an equation that represents a plurality of logical operations that can be performed on the inputs, the equation describing all possible logical operations that can be performed on the inputs, the equation having a plurality of terms where the number of terms is less than the total number of possible logical operations; and for each term of the equation, generating a subset of computer instructions that implements the term; and storing each generated subset of computer instructions in a computer instructions table so that certain subsets of the computer instructions can be retrieved, combined, and executed to perform a specified logical operation.
Claim 20
Independent Claim 127 words
A method for storing a set of computer instructions to implement logical operations on a plurality of inputs, the method comprising the steps of: specifying an equation that represents a plurality of logical operations that can be performed on the inputs, the equation describing all possible logical operations that can be performed on the inputs, the equation having a plurality of terms where the number of terms is less than the total number of possible logical operations; and for each term of the equation, generating a subset of computer instructions that implements the term; and storing each generated subset of computer instructions in a computer instructions table so that certain subsets of the computer instructions can be retrieved, combined, and executed to perform a specified logical operation.
Claim 21
Dependent Claim 62 words
The method of claim 13 wherein each term has a corresponding coefficient and each logical operation is represented by a set of coefficients, and including the steps of specifying a logical operation to be performed on the plurality of inputs; and determining which stored subsets of computer instructions are needed to implement the specified logical operation based on the set of coefficients.
Claim 22
Dependent Claim 52 words
The method of claim 14 including the step of generating a coefficient table, and wherein the step of determining which stored subsets of computer instructions are needed includes the step of retrieving the set of coefficients from the coefficient table using the specified logical operation as an index into the coefficient table.
Claim 23
Dependent Claim 54 words
The method of claim 15 where the step of generating the coefficient table includes the steps of: for each set of coefficients, determining a logical operation that the set of coefficients represents; and storing the set of coefficients in the coefficient table using the determined logical operation as an index into the coefficient table.
Claim 24
Dependent Claim 49 words
The method of claim 14, each input having a plurality of bits, and including the additional step of combining the determined subsets of computer instructions with stored computer instructions which are common to all logical operations, the common stored computer instructions being used to control looping through the bits.
Claim 25
Dependent Claim 24 words
The method of claim 17 wherein the common stored computer instructions are optimized to load only the input required by the specified logical operation.
Claim 26
Dependent Claim 24 words
The method of claim 17 wherein the common stored computer instructions are optimized to validate only the inputs required by the specified logical operation.
Claim 27
Dependent Claim 23 words
The method of claim 13 wherein the specified equation describes all possible logical operations that can be performed on the plurality of inputs.
Claim 28
Dependent Claim 93 words
The method of claim 13 wherein the specified equation is F(S.sub.1, S.sub.2, D)=α.sub.0 ·1⊕α.sub.1 ·S.sub.1 ⊕α.sub.2 ·S.sub.2 ⊕α.sub.3 ·D⊕α.sub.4 ·S.sub.1 S.sub.2 ⊕α.sub.5 ·S.sub.1 D⊕α.sub.6 ·S.sub.2 D⊕α.sub.7 ·S.sub.1 S.sub.2 D wherein α 0 . . . α 7 are logical operation-specific coefficients of the equation, where ⊕ represents the Boolean exclusive-OR operator, where · and juxtaposition represent the Boolean AND operator, where logical 1, S 1 , . . . , S 1 S 2 D are terms of the equation, and where S 1 , S 2 , and D are the input.
Claim 29
Dependent Claim 86 words
The method of claim 13 wherein the specified equation is F(S.sub.1, S.sub.2, D)=λ.sub.0 S.sub.1 S.sub.2 D+λ.sub.1 S.sub.1 S.sub.2 D'+λ.sub.2 S.sub.1 S.sub.2 'D+λ.sub.3 S.sub.1 S.sub.2 'D'+λ.sub.4 S.sub.1 'S.sub.2 D+λ.sub.5 S.sub.1 'S.sub.2 D'+λ.sub.6 S.sub.1 'S.sub.2 'D+λ.sub.7 S.sub.1 'S.sub.2 'D' wherein λ 0 . . . λ 7 are logical operation-specific coefficients of the equation, where + represents the Boolean inclusive-OR operator, where juxtaposition represents the Boolean AND operator, where ' represents the Boolean complement operator, and where S 1 , S 2 , and D are the input.
Claim 30
Dependent Claim 48 words
The method of claim 13 wherein the stored subsets of computer instructions include alternative subsets of computer instructions for each term of the specified equation and wherein the alternative subsets of computer instructions are optimized to be a first subset of computer instructions in the generated computer code.
Claim 31
Dependent Claim 38 words
The method of claim 23 wherein the stored subsets of computer instructions use a result register, where the optimization includes storing directly in the result register without performing an operation on the previous contents of the result register.
Claim 32
Independent Claim 182 words
A method for storing a set of computer instructions to implement logical operations on a plurality of inputs, the method comprising the steps of: specifying an equation that represents a plurality of logical operations that can be performed on the inputs, the equation describing all possible logical operations that can be performed on the inputs, the equation having a plurality of terms where the number of terms is less than the total number of possible logical operations, each term having a corresponding coefficient, each logical operation being represented by a set of coefficients; generating a coefficient table; for each term of the equation, generating a subset of computer instructions that implements the term; and storing each generated subset of computer instructions in a computer instructions table; specifying a logical operation to be performed on the plurality of inputs; and determining which stored subset of computer instructions are needed to implement the specified logical operation base on the set of coefficients by retrieving the set of coefficients from the coefficient table using the specified logical operation as an index into the coefficient table.
Claim 33
Independent Claim 182 words
A method for storing a set of computer instructions to implement logical operations on a plurality of inputs, the method comprising the steps of: specifying an equation that represents a plurality of logical operations that can be performed on the inputs, the equation describing all possible logical operations that can be performed on the inputs, the equation having a plurality of terms where the number of terms is less than the total number of possible logical operations, each term having a corresponding coefficient, each logical operation being represented by a set of coefficients; generating a coefficient table; for each term of the equation, generating a subset of computer instructions that implements the term; and storing each generated subset of computer instructions in a computer instructions table; specifying a logical operation to be performed on the plurality of inputs; and determining which stored subset of computer instructions are needed to implement the specified logical operation base on the set of coefficients by retrieving the set of coefficients from the coefficient table using the specified logical operation as an index into the coefficient table.
Claim 34
Dependent Claim 54 words
The method of claim 25 where the step of generating the coefficient table includes the steps of: for each set of coefficients, determining a logical operation that the set of coefficients represents; and storing the set of coefficients in the coefficient table using the determined logical operation as an index into the coefficient table.
Claim 35
Independent Claim 195 words
A method for storing a set of computer instructions to implement logical operations on a plurality of inputs, each input having a plurality of bits, the method comprising the steps of: specifying an equation that represents a plurality of logical operations that can be performed on the inputs, the equation describing all possible logical operations that can be performed on the inputs, the equation having a plurality of terms where the number of terms is less than the total number of possible logical operations, each term having a corresponding coefficient, each logical operation being represented by a set of coefficients; for each term of the equation, generating a subset of computer instructions that implements the term; and storing each generated subset of computer instructions in a computer instructions table; specifying a logical operation to be performed on the plurality of inputs; and determining which stored subset of computer instructions are needed to implement the specified logical operation base on the set of coefficients by combining the determined subsets of computer instructions with stored computer instructions which are common to all logical operations, the common stored computer instructions being used to control looping through the bits.
Claim 36
Independent Claim 195 words
A method for storing a set of computer instructions to implement logical operations on a plurality of inputs, each input having a plurality of bits, the method comprising the steps of: specifying an equation that represents a plurality of logical operations that can be performed on the inputs, the equation describing all possible logical operations that can be performed on the inputs, the equation having a plurality of terms where the number of terms is less than the total number of possible logical operations, each term having a corresponding coefficient, each logical operation being represented by a set of coefficients; for each term of the equation, generating a subset of computer instructions that implements the term; and storing each generated subset of computer instructions in a computer instructions table; specifying a logical operation to be performed on the plurality of inputs; and determining which stored subset of computer instructions are needed to implement the specified logical operation base on the set of coefficients by combining the determined subsets of computer instructions with stored computer instructions which are common to all logical operations, the common stored computer instructions being used to control looping through the bits.
Claim 37
Dependent Claim 24 words
The method of claim 27 wherein the common stored computer instructions are optimized to load only the input required by the specified logical operation.
Claim 38
Dependent Claim 23 words
The method of claim 27 wherein the common stored computer instructions are optimized to validate only the inputs required by specified logical operation.
Claim 39
Independent Claim 195 words
A method for storing a set of computer instructions to implement logical operations on a plurality of inputs, the method comprising the steps of: specifying an equation that represents a plurality of logical operations that can be performed on the inputs, the equation describing all possible logical operations that can be performed on the inputs, the equation having a plurality of terms where the number of terms is less than the total number of possible logical operations, wherein the specified equation is F(S.sub.1, S.sub.2, D)=α.sub.0 ·1⊕α.sub.1 ·S.sub.1 ⊕α.sub.2 ·S.sub.2 ⊕α.sub.3 ·D⊕α.sub.4 ·S.sub.1 S.sub.2 ⊕α.sub.5 ·S.sub.1 D⊕α.sub.6 ·S.sub.2 D⊕α.sub.7 ·S.sub.1 S.sub.2 D wherein α 0 . . . α 7 are logical operation-specific coefficients of the equation, where ⊕ represents the Boolean exclusive-OR operator, where · and juxtaposition represent the Boolean AND operator, where logical 1, S 1 , . . . , S 1 S 2 D are terms of the equation, and where S 1 , S 2 , and D are the input; and for each term of the equation, generating a subset of computer instructions that implements the term; and storing each generated subset of computer instructions in a computer instruction table.
Claim 40
Independent Claim 195 words
A method for storing a set of computer instructions to implement logical operations on a plurality of inputs, the method comprising the steps of: specifying an equation that represents a plurality of logical operations that can be performed on the inputs, the equation describing all possible logical operations that can be performed on the inputs, the equation having a plurality of terms where the number of terms is less than the total number of possible logical operations, wherein the specified equation is F(S.sub.1, S.sub.2, D)=α.sub.0 ·1⊕α.sub.1 ·S.sub.1 ⊕α.sub.2 ·S.sub.2 ⊕α.sub.3 ·D⊕α.sub.4 ·S.sub.1 S.sub.2 ⊕α.sub.5 ·S.sub.1 D⊕α.sub.6 ·S.sub.2 D⊕α.sub.7 ·S.sub.1 S.sub.2 D wherein α 0 . . . α 7 are logical operation-specific coefficients of the equation, where ⊕ represents the Boolean exclusive-OR operator, where · and juxtaposition represent the Boolean AND operator, where logical 1, S 1 , . . . , S 1 S 2 D are terms of the equation, and where S 1 , S 2 , and D are the input; and for each term of the equation, generating a subset of computer instructions that implements the term; and storing each generated subset of computer instructions in a computer instruction table.
Claim 41
Independent Claim 188 words
A method for storing a set of computer instructions to implement logical operations on a plurality of inputs, the method comprising the steps of: specifying an equation that represents a plurality of logical operations that can be performed on the inputs, the equation describing all possible logical operations that can be performed on the inputs, the equation having a plurality of terms where the number of terms is less than the total number of possible logical operations, wherein the specified equation is F(S.sub.1, S.sub.2, D)=λ.sub.0 S.sub.1 S.sub.2 D+λ.sub.1 S.sub.1 S.sub.2 D'+λ.sub.2 S.sub.1 S.sub.2 'D+λ.sub.3 S.sub.1 S.sub.2 'D'+λ.sub.4 S.sub.1 'S.sub.2 D+λ.sub.5 S.sub.1 'S.sub.2 D'+λ.sub.6 S.sub.1 'S.sub.2 'D+λ.sub.7 S.sub.1 'S.sub.2 'S' wherein λ 0 . . . λ 7 are logical operation-specific coefficients of the equation, where + represents the Boolean inclusive-OR operator, where juxtaposition represents the Boolean AND operator, where ' represents the Boolean complement operator, and where S 1 , S 2 , and D are the input; and for each term of the equation, generating a subset of computer instructions that implements the term; and storing each generated subset of computer instructions in a computer instructions table.
Claim 42
Independent Claim 188 words
A method for storing a set of computer instructions to implement logical operations on a plurality of inputs, the method comprising the steps of: specifying an equation that represents a plurality of logical operations that can be performed on the inputs, the equation describing all possible logical operations that can be performed on the inputs, the equation having a plurality of terms where the number of terms is less than the total number of possible logical operations, wherein the specified equation is F(S.sub.1, S.sub.2, D)=λ.sub.0 S.sub.1 S.sub.2 D+λ.sub.1 S.sub.1 S.sub.2 D'+λ.sub.2 S.sub.1 S.sub.2 'D+λ.sub.3 S.sub.1 S.sub.2 'D'+λ.sub.4 S.sub.1 'S.sub.2 D+λ.sub.5 S.sub.1 'S.sub.2 D'+λ.sub.6 S.sub.1 'S.sub.2 'D+λ.sub.7 S.sub.1 'S.sub.2 'S' wherein λ 0 . . . λ 7 are logical operation-specific coefficients of the equation, where + represents the Boolean inclusive-OR operator, where juxtaposition represents the Boolean AND operator, where ' represents the Boolean complement operator, and where S 1 , S 2 , and D are the input; and for each term of the equation, generating a subset of computer instructions that implements the term; and storing each generated subset of computer instructions in a computer instructions table.
Claim 43
Independent Claim 150 words
A method for storing a set of computer instructions to implement logical operations on a plurality of inputs, the method comprising the steps of: specifying an equation that represents a plurality of logical operations that can be performed on the inputs, the equation describing all possible logical operations that can be performed on the inputs, the equation having a plurality of terms where the number of terms is less than the total number of possible logical operations; and for each term of the equation, generating a subset of computer instructions that implements the term; and storing each generated subset of computer instructions in a computer instructions table wherein the stored subsets of computer instructions include alternative subsets of computer instructions for each term of the specified equation and wherein the alternative subsets of computer instructions are optimized to be a first subset of computer instructions in the generated computer code.
Claim 44
Independent Claim 150 words
A method for storing a set of computer instructions to implement logical operations on a plurality of inputs, the method comprising the steps of: specifying an equation that represents a plurality of logical operations that can be performed on the inputs, the equation describing all possible logical operations that can be performed on the inputs, the equation having a plurality of terms where the number of terms is less than the total number of possible logical operations; and for each term of the equation, generating a subset of computer instructions that implements the term; and storing each generated subset of computer instructions in a computer instructions table wherein the stored subsets of computer instructions include alternative subsets of computer instructions for each term of the specified equation and wherein the alternative subsets of computer instructions are optimized to be a first subset of computer instructions in the generated computer code.
Claim 45
Dependent Claim 38 words
The method of claim 32 wherein the stored subsets of computer instructions use a result register, where the optimization includes storing directly in the result register without performing an operation on the previous contents of the result register.
Claim 46
Independent Claim 117 words
A method for generating a set of computer instructions to implement logical operations on a plurality of inputs, the method comprising the steps of: specifying an equation that represents a plurality of logical operations that can be performed on the inputs, the equation having a plurality of terms; for each term of the equation, generating a subset of computer instructions that implements the term; during execution of a computer program, requesting a logical operation; determining which generated subsets of computer instructions are needed to implement the requested logical operation; retrieving the determining subsets of computer instructions; and combining the retrieved subsets of computer instructions to generate the set of computer instructions that implements the requested logical operation.
Claim 47
Independent Claim 117 words
A method for generating a set of computer instructions to implement logical operations on a plurality of inputs, the method comprising the steps of: specifying an equation that represents a plurality of logical operations that can be performed on the inputs, the equation having a plurality of terms; for each term of the equation, generating a subset of computer instructions that implements the term; during execution of a computer program, requesting a logical operation; determining which generated subsets of computer instructions are needed to implement the requested logical operation; retrieving the determining subsets of computer instructions; and combining the retrieved subsets of computer instructions to generate the set of computer instructions that implements the requested logical operation.
Claim 48
Dependent Claim 47 words
The method of claim 34 wherein each term has a corresponding coefficient, wherein the logical operation represents a set of coefficients for the equation, and wherein the step of determining which generated subsets of computer, instructions are needed makes the determination based on the set of coefficients.
Claim 49
Dependent Claim 45 words
The method of claim 35 including the step of generating a coefficient table, and wherein the step of determining which generated subsets of computer instructions are needed includes the step of retrieving the set of coefficients from the coefficient table based on requested logical operation.
Claim 50
Dependent Claim 42 words
The method of claim 36 wherein the step of generating the coefficient table includes the steps of: for each set of coefficients, determining a logical operation that the set of coefficients represents; and storing the set of coefficients in the coefficient table.
Claim 51
Dependent Claim 50 words
The method of claim 34 wherein the generated subsets of computer instructions include alternative subsets of computer instructions for each term of the specified equation and wherein the alternative subsets of computer instructions are optimized to be a first subset of computer instructions of the combined subsets of computer instructions.
Claim 52
Dependent Claim 35 words
The method of claim 38 wherein the generated subsets of computer instructions store a value of the term directly in the result register without performing a Boolean operation on previous contents of the result register.
Claim 53
Dependent Claim 51 words
The method of claim 34 wherein each input has a plurality of bits, and including the additional step of combining the generated set of computer instructions with computer instructions which are common to all logical operations, the common computer instructions being used to control looping through the bits of the input.
Claim 54
Dependent Claim 23 words
The method of claim 40 wherein the common computer instructions are optimized to load only the input required by the requested logical operation.
Claim 55
Dependent Claim 23 words
The method of claim 40 wherein the common computer instructions are optimized to validate only the input required by the requested logical operation.
Claim 56
Dependent Claim 43 words
The method of claim 34 wherein the specified equation describes all possible logical operations that can be performed on the plurality of inputs, and wherein the number of terms of the specified equation is less than the total number of possible logical operations.
Claim 57
Dependent Claim 97 words
The method of claim 34 wherein the specified equation is F(S.sub.1, S.sub.2, D)=α.sub.0 ·1⊕α.sub.1 ·S.sub.1 ⊕α.sub.2 ·S.sub.2 ⊕α.sub.3 ·D⊕α.sub.4 ·S.sub.1 S.sub.2 ⊕α.sub.5 ·S.sub.1 D⊕α.sub.6 ·S.sub.2 D⊕α.sub.7 ·S.sub.1 S.sub.2 D wherein α 0 . . . α 7 are logical operation-specific coefficients of the equation, where ⊕ represents the Boolean exclusive-OR operator, where · and juxtaposition represent the Boolean AND operator, where logical 1, S 1 , . . . , S 1 S 2 D are terms of the equation, and where S 1 , S 2 , and D are bitmaps representing the plurality of input.
Claim 58
Dependent Claim 92 words
The method of claim 34 wherein the specified equation is the Boolean equation F(S.sub.1, S.sub.2, D)=λ.sub.0 S.sub.1 S.sub.2 D+λ.sub.1 S.sub.1 S.sub.2 D'+λ.sub.2 S.sub.1 S.sub.2 'D+λ.sub.3 S.sub.1 S.sub.2 'D'+λ.sub.4 S.sub.1 'S.sub.2 D+λ.sub.5 S.sub.1 'S.sub.2 D'+λ.sub.6 S.sub.1 'S.sub.2 'D+λ.sub.7 S.sub.1 'S.sub.2 'D' wherein λ 0 . . . λ 7 logical operation-specific coefficients of the equation, where + represents the Boolean inclusive-OR operator, where juxtaposition represent the Boolean AND operator, where ' represents the Boolean complement operator, and where S 1 , S 2 , and D are bitmaps representing the plurality of input.
Claim 59
Independent Claim 100 words
A method for performing a logical operation on a plurality of inputs, the method comprising the steps of: specifying a Boolean equation, the equation having a plurality of terms; for each term of the Boolean equation, generating a subset of computer instructions that implements the term; during execution of a computer program, specifying a logical operation; determining which generated subsets of computer instructions are needed to implement the requested logical operation; and combining the determined subsets of computer instructions to generate a set of computer instructions that implements the specified logical operation; and executing the generated set of computer instructions.
Claim 60
Independent Claim 100 words
A method for performing a logical operation on a plurality of inputs, the method comprising the steps of: specifying a Boolean equation, the equation having a plurality of terms; for each term of the Boolean equation, generating a subset of computer instructions that implements the term; during execution of a computer program, specifying a logical operation; determining which generated subsets of computer instructions are needed to implement the requested logical operation; and combining the determined subsets of computer instructions to generate a set of computer instructions that implements the specified logical operation; and executing the generated set of computer instructions.
Claim 61
Dependent Claim 43 words
The method of claim 46 wherein the specified Boolean equation describes all possible logical operations that can be performed on the inputs, and wherein the number of terms of the specified Boolean equation is less than the total number of possible logical operations.
Claim 62
Independent Claim 119 words
A method for generating a set of computer instructions to implement a logical operation to be performed on two source bitmaps, S 1 and S 2 , and a destination bitmap, D, the method comprising the steps of: generating a subset of computer instructions for each term of a Boolean equation that defines all possible 256 logical combinations of S 1 , S 2 , and D, the Boolean equation having 8 terms, each term having a Boolean operation and a corresponding subset of computer instructions that implements the Boolean operation; and during execution of a computer program, combining subsets of computer instructions that are needed to implement the logical operation to form the generated set of computer instructions.
Claim 63
Independent Claim 119 words
A method for generating a set of computer instructions to implement a logical operation to be performed on two source bitmaps, S 1 and S 2 , and a destination bitmap, D, the method comprising the steps of: generating a subset of computer instructions for each term of a Boolean equation that defines all possible 256 logical combinations of S 1 , S 2 , and D, the Boolean equation having 8 terms, each term having a Boolean operation and a corresponding subset of computer instructions that implements the Boolean operation; and during execution of a computer program, combining subsets of computer instructions that are needed to implement the logical operation to form the generated set of computer instructions.
Claim 64
Independent Claim 116 words
An apparatus for performing a logical operation on a plurality of bitmaps, the apparatus having a subset of computer instructions that implements each term of a Boolean equation, the apparatus comprising: means for indentifying which subsets of computer instructions are needed to implement the logical operation, the means for identifying including means for specifying coefficients of the Boolean equation that implement the logical operation; and means for selecting subsets of computer instructions based on the specified coefficients; means for combining the identified subsets of computer instructions into a set of computer instructions that implements the logical operation; and means for executing the set of computer instructions to perform the logical operation on the plurality of bitmaps.
Claim 65
Independent Claim 116 words
An apparatus for performing a logical operation on a plurality of bitmaps, the apparatus having a subset of computer instructions that implements each term of a Boolean equation, the apparatus comprising: means for indentifying which subsets of computer instructions are needed to implement the logical operation, the means for identifying including means for specifying coefficients of the Boolean equation that implement the logical operation; and means for selecting subsets of computer instructions based on the specified coefficients; means for combining the identified subsets of computer instructions into a set of computer instructions that implements the logical operation; and means for executing the set of computer instructions to perform the logical operation on the plurality of bitmaps.
Claim 66
Independent Claim 168 words
An apparatus for performing a logical operation on a plurality of inputs, the apparatus comprising: means for storing a plurality of subsets of computer instructions that implement each term of a Boolean equation, wherein the Boolean equation is F(S.sub.1, S.sub.2, D)=λ.sub.0 S.sub.1 S.sub.2 D+λ.sub.1 S.sub.1 S.sub.2 D'+λ.sub.2 S.sub.1 S.sub.2 'D+λ.sub.3 S.sub.1 S.sub.2 'D'+λ.sub.4 S.sub.1 'S.sub.2 D+λ.sub.5 S.sub.1 'S.sub.2 D'+λ.sub.6 S.sub.1 'S.sub.2 D'+λ.sub.7 S.sub.1 'S.sub.2 'D' wherein λ 0 . . . λ 7 are logical operation-specific coefficients of the equation, where + represents the Boolean inclusive-OR operator, where juxtaposition represents the Boolean AND operator, where ' represents the Boolean complement operator, and where S 1 , S 2 , and D are bitmaps; means for identifying which stored subsets of computer instructions are needed to implement the logical operation; means for combining the identified subsets of computer instructions into a set of computer instructions that implements the logical operation; and means for executing the set of computer instructions to perform the logical operation on the plurality of inputs.
Claim 67
Independent Claim 168 words
An apparatus for performing a logical operation on a plurality of inputs, the apparatus comprising: means for storing a plurality of subsets of computer instructions that implement each term of a Boolean equation, wherein the Boolean equation is F(S.sub.1, S.sub.2, D)=λ.sub.0 S.sub.1 S.sub.2 D+λ.sub.1 S.sub.1 S.sub.2 D'+λ.sub.2 S.sub.1 S.sub.2 'D+λ.sub.3 S.sub.1 S.sub.2 'D'+λ.sub.4 S.sub.1 'S.sub.2 D+λ.sub.5 S.sub.1 'S.sub.2 D'+λ.sub.6 S.sub.1 'S.sub.2 D'+λ.sub.7 S.sub.1 'S.sub.2 'D' wherein λ 0 . . . λ 7 are logical operation-specific coefficients of the equation, where + represents the Boolean inclusive-OR operator, where juxtaposition represents the Boolean AND operator, where ' represents the Boolean complement operator, and where S 1 , S 2 , and D are bitmaps; means for identifying which stored subsets of computer instructions are needed to implement the logical operation; means for combining the identified subsets of computer instructions into a set of computer instructions that implements the logical operation; and means for executing the set of computer instructions to perform the logical operation on the plurality of inputs.
Claim 68
Dependent Claim 32 words
The apparatus of claim 50 wherein the means for identifying includes means for specifying coefficients of the Boolean equation; and means for selecting subsets of computer instructions based on the specified coefficients.
Claim 69
Independent Claim 175 words
An apparatus for performing a logical operation on a plurality of inputs, the apparatus comprising: means for storing a plurality of subsets of computer instructions that implement each term of a Boolean equation wherein the Boolean equation is F(S.sub.1, S.sub.2, D)=α.sub.0 ·1⊕α.sub.1 ·S.sub.1 ⊕α.sub.2 ·S.sub.2 ⊕α.sub.3 ·D⊕α.sub.4 ·S.sub.1 S.sub.2 ⊕α.sub.5 ·S.sub.1 D⊕α.sub.6 ·S.sub.2 D⊕α.sub.7 ·S.sub.1 S.sub.2 D wherein α 0 . . . α 7 are logical operation-specific coefficients of the equation, where ⊕ represents the Boolean exclusive-OR operator, where · and juxtaposition represent the Boolean AND operator, where logical 1, S 1 , . . . , S 1 S 2 D are terms of the equation, and where S 1 , S 2 , and D are bitmaps; means for identifying which stored subsets of computer instructions are needed to implement the logical operation; means for combining the identified subsets of computer instructions into a set of computer instructions that implements the logical operation; and means for executing the set of computer instructions to perform the logical operation on the plurality of inputs.
Claim 70
Independent Claim 175 words
An apparatus for performing a logical operation on a plurality of inputs, the apparatus comprising: means for storing a plurality of subsets of computer instructions that implement each term of a Boolean equation wherein the Boolean equation is F(S.sub.1, S.sub.2, D)=α.sub.0 ·1⊕α.sub.1 ·S.sub.1 ⊕α.sub.2 ·S.sub.2 ⊕α.sub.3 ·D⊕α.sub.4 ·S.sub.1 S.sub.2 ⊕α.sub.5 ·S.sub.1 D⊕α.sub.6 ·S.sub.2 D⊕α.sub.7 ·S.sub.1 S.sub.2 D wherein α 0 . . . α 7 are logical operation-specific coefficients of the equation, where ⊕ represents the Boolean exclusive-OR operator, where · and juxtaposition represent the Boolean AND operator, where logical 1, S 1 , . . . , S 1 S 2 D are terms of the equation, and where S 1 , S 2 , and D are bitmaps; means for identifying which stored subsets of computer instructions are needed to implement the logical operation; means for combining the identified subsets of computer instructions into a set of computer instructions that implements the logical operation; and means for executing the set of computer instructions to perform the logical operation on the plurality of inputs.
Claim 71
Dependent Claim 32 words
The apparatus of claim 52 wherein the means for identifying includes means for specifying coefficients of the Boolean equation; and means for selecting subsets of computer instructions based on the specified coefficients.
Claim 72
Independent Claim 119 words
An apparatus for performing a logical operation on a plurality of inputs, the apparatus comprising: means for storing a plurality of subsets of computer instructions that implement each term of a Boolean equation; means for identifying which stored subsets of computer instructions are needed to implement the logical operation, the means for identifying including means or specifying coefficients of the Boolean equation that implement the logical operation; and means for selecting subsets of computer instructions based on the specified coefficients; means for combining the identified subsets of computer instructions into a set of computer instructions that implements the logical operation; and means for executing the set of computer instructions to perform the logical operation on the plurality of inputs.
Claim 73
Independent Claim 119 words
An apparatus for performing a logical operation on a plurality of inputs, the apparatus comprising: means for storing a plurality of subsets of computer instructions that implement each term of a Boolean equation; means for identifying which stored subsets of computer instructions are needed to implement the logical operation, the means for identifying including means or specifying coefficients of the Boolean equation that implement the logical operation; and means for selecting subsets of computer instructions based on the specified coefficients; means for combining the identified subsets of computer instructions into a set of computer instructions that implements the logical operation; and means for executing the set of computer instructions to perform the logical operation on the plurality of inputs.
Claim 74
Independent Claim 76 words
An apparatus for generating a value of a logical operation on a plurality of inputs, the apparatus comprising: means for mapping a binary representation of the logical operation to a set of coefficients for the terms; means for determining a result of each term of a Boolean equation based on the input and the mapped binary representation; and parity means for generating the parity of the results, the parity being the value for the logical operation.
Claim 75
Independent Claim 76 words
An apparatus for generating a value of a logical operation on a plurality of inputs, the apparatus comprising: means for mapping a binary representation of the logical operation to a set of coefficients for the terms; means for determining a result of each term of a Boolean equation based on the input and the mapped binary representation; and parity means for generating the parity of the results, the parity being the value for the logical operation.
Claim 76
Independent Claim 222 words
An apparatus for performing a logical operation on a plurality of bits, comprising: bit storage means for each of the plurality of bits, each bit storage means having an output serial line for outputting the bit; means for storing coefficients of terms of a Boolean equation, the coefficients representing the logical operation to be performed on the bits, the means for storing having a plurality of input logical operation lines and a plurality of output coefficient lines, wherein when a logical operation is specified on the input logical operation lines, the coefficients for the specified logical operation are output to the output coefficient lines; a plurality of logic gates for determining a result of each term of the Boolean equation, each logic gate with input term lines and an output term line, wherein the input term lines are connected to the output serial lines and to the output coefficient lines to effect generating the result of each term of the Boolean equation; and term combining means with input combining lines and an result line, the input combining lines being connected to the output term lines, the result line having a value which is a result combining the input combining lines, wherein the result represents the logical operation performed on the bits output on the output serial lines of the bit storage means.
Claim 77
Independent Claim 222 words
An apparatus for performing a logical operation on a plurality of bits, comprising: bit storage means for each of the plurality of bits, each bit storage means having an output serial line for outputting the bit; means for storing coefficients of terms of a Boolean equation, the coefficients representing the logical operation to be performed on the bits, the means for storing having a plurality of input logical operation lines and a plurality of output coefficient lines, wherein when a logical operation is specified on the input logical operation lines, the coefficients for the specified logical operation are output to the output coefficient lines; a plurality of logic gates for determining a result of each term of the Boolean equation, each logic gate with input term lines and an output term line, wherein the input term lines are connected to the output serial lines and to the output coefficient lines to effect generating the result of each term of the Boolean equation; and term combining means with input combining lines and an result line, the input combining lines being connected to the output term lines, the result line having a value which is a result combining the input combining lines, wherein the result represents the logical operation performed on the bits output on the output serial lines of the bit storage means.
Claim 78
Dependent Claim 36 words
The apparatus of claim 56 wherein the plurality of logic gates are logical-AND gates and the term combining means is a parity generator in which the result line is the parity of the input combining lines.
Claim 79
Dependent Claim 48 words
The apparatus of claim 56 wherein each bit storage means includes a shift register for receiving each bit of a bitmap in parallel and for shifting each bit of the bitmap in serial to effect the performing of logical operation on each of the bits of the bitmaps.
Claim 80
Independent Claim 218 words
An apparatus for performing a logical operation on a plurality of bits, comprising: bit storage means for each of the plurality of bits, each bit storage means having an output serial line for outputting the bits; means for storing coefficients of terms of a Boolean equation, the coefficients representing the logical operation to be performed on the bits, the means for storing having a plurality of output coefficient lines; a plurality of logic gates for determining a result of each term of the Boolean equation, each logic gate with input term lines and an output term line, wherein the input term lines are connected to the output serial lines and to the output coefficient lines to effect generating the result of each term of the Boolean equation, wherein the plurality of logic gates are logical-AND gates; and term combining means with input combining lines and an result line, the input combining lines being connected to the output term lines, the result line having a value which is a result combining the input combining lines, wherein the result represents the logical operation performed on the bits output on the output serial lines of the bit storage means, wherein the term combining means is a parity generator in which the result line is the parity of the input combining lines.
Claim 81
Independent Claim 218 words
An apparatus for performing a logical operation on a plurality of bits, comprising: bit storage means for each of the plurality of bits, each bit storage means having an output serial line for outputting the bits; means for storing coefficients of terms of a Boolean equation, the coefficients representing the logical operation to be performed on the bits, the means for storing having a plurality of output coefficient lines; a plurality of logic gates for determining a result of each term of the Boolean equation, each logic gate with input term lines and an output term line, wherein the input term lines are connected to the output serial lines and to the output coefficient lines to effect generating the result of each term of the Boolean equation, wherein the plurality of logic gates are logical-AND gates; and term combining means with input combining lines and an result line, the input combining lines being connected to the output term lines, the result line having a value which is a result combining the input combining lines, wherein the result represents the logical operation performed on the bits output on the output serial lines of the bit storage means, wherein the term combining means is a parity generator in which the result line is the parity of the input combining lines.
Claim 82
Independent Claim 231 words
An apparatus for performing a logical operation on a plurality of bits, comprising: bit storage means for each of the plurality of bits, each bit storage means having an output serial line for outputting the bit, wherein each bit storage means includes a shift register for receiving each bit of a bitmap in parallel and for shifting each bit of the bitmap in serial to effect the performing of the logical operation on each of the bits of the bitmaps; means for storing coefficients of terms of a Boolean equation, the coefficients representing the logical operation to be performed on the bits, the means for storing having a plurality of output coefficient lines; a plurality of logic gates for determining a result of each term of the Boolean equation, each logic gate with input term lines and an output term line, wherein the input term lines are connected to the output serial lines and to the output coefficient lines to effect generating the result of each term of the Boolean equation; and term combining means with input combining lines and an result line, the input combining lines being connected to the output term lines, the result line having a value which is a result combining the input combining lines, wherein the result represents the logical operation performed on the bits output on the output serial lines of the bit storage means.
Claim 83
Independent Claim 231 words
An apparatus for performing a logical operation on a plurality of bits, comprising: bit storage means for each of the plurality of bits, each bit storage means having an output serial line for outputting the bit, wherein each bit storage means includes a shift register for receiving each bit of a bitmap in parallel and for shifting each bit of the bitmap in serial to effect the performing of the logical operation on each of the bits of the bitmaps; means for storing coefficients of terms of a Boolean equation, the coefficients representing the logical operation to be performed on the bits, the means for storing having a plurality of output coefficient lines; a plurality of logic gates for determining a result of each term of the Boolean equation, each logic gate with input term lines and an output term line, wherein the input term lines are connected to the output serial lines and to the output coefficient lines to effect generating the result of each term of the Boolean equation; and term combining means with input combining lines and an result line, the input combining lines being connected to the output term lines, the result line having a value which is a result combining the input combining lines, wherein the result represents the logical operation performed on the bits output on the output serial lines of the bit storage means.
Claim 84
Dependent Claim 167 words
A computer-readable medium containing instructions for causing a computer system to generate a set of computer instructions to implement a logical operation to be performed on a plurality of bitmaps, by: specifying a Boolean equation, the equation having a plurality of terms, wherein the specified Boolean equation describes all possible logical operations that can be performed on the bitmaps, and wherein the number of terms of the specified equation is less than the total number of possible logical operations; for each term of the Boolean equation, generating a subset of computer instructions that implements the term; storing each generated subset of computer instructions in a computer instructions table; and during execution of a computer program, requesting a logical operation; determining which stored subsets of computer instructions are needed to implement the requested logical operation; retrieving the determined subsets of computer instructions from the computer instructions table; and combining the retrieved subsets of computer instructions to generate the set of computer instructions that implements the requested logical operation.
Claim 85
Dependent Claim 167 words
A computer-readable medium containing instructions for causing a computer system to generate a set of computer instructions to implement a logical operation to be performed on a plurality of bitmaps, by: specifying a Boolean equation, the equation having a plurality of terms, wherein the specified Boolean equation describes all possible logical operations that can be performed on the bitmaps, and wherein the number of terms of the specified equation is less than the total number of possible logical operations; for each term of the Boolean equation, generating a subset of computer instructions that implements the term; storing each generated subset of computer instructions in a computer instructions table; and during execution of a computer program, requesting a logical operation; determining which stored subsets of computer instructions are needed to implement the requested logical operation; retrieving the determined subsets of computer instructions from the computer instructions table; and combining the retrieved subsets of computer instructions to generate the set of computer instructions that implements the requested logical operation.
Claim 86
Dependent Claim 129 words
A computer-readable medium containing instructions for causing a computer system to store a set of computer instructions to implement logical operations on a plurality of inputs, by: specifying an equation that represents a plurality of logical operations that can be performed on the inputs, the equation describing all possible logical operations that can be performed on the inputs, the equation having a plurality of terms where the number of terms is less than the total number of possible logical operations; and for each term of the equation, generating a subset of computer instructions that implements the term; and storing each generated subset of computer instructions in a computer instructions table so that certain subsets of the computer-instructions can be retrieved, combined, and executed to perform a specified logical operation.
Claim 87
Dependent Claim 129 words
A computer-readable medium containing instructions for causing a computer system to store a set of computer instructions to implement logical operations on a plurality of inputs, by: specifying an equation that represents a plurality of logical operations that can be performed on the inputs, the equation describing all possible logical operations that can be performed on the inputs, the equation having a plurality of terms where the number of terms is less than the total number of possible logical operations; and for each term of the equation, generating a subset of computer instructions that implements the term; and storing each generated subset of computer instructions in a computer instructions table so that certain subsets of the computer-instructions can be retrieved, combined, and executed to perform a specified logical operation.
Claim 88
Dependent Claim 60 words
The computer-readable medium of claim 62 wherein each term has a corresponding coefficient and each logical operation is represented by a set of coefficients, and including specifying a logical operation to be performed on the plurality of inputs; and determining which stored subsets of computer instructions are needed to implement the specified logical operation based on the set of coefficients.
Claim 89
Dependent Claim 47 words
The computer-readable medium of claim 63 including generating a coefficient table, and wherein the step of determining which stored subsets of computer instructions are needed includes retrieving the set of coefficients from the coefficient table using the specified logical operation as an index into the coefficient table.
Claim 90
Dependent Claim 49 words
The computer-readable medium of claim 64 wherein generating the coefficient table includes: for each set of coefficients, determining a logical operation that the set of coefficients represents; and storing the set of coefficients in the coefficient table using the determined logical operation as an index into the coefficient table.
Claim 91
Dependent Claim 46 words
The computer-readable medium of claim 63, each input having a plurality of bits, and including combining the determined subsets of computer instructions with stored computer instructions which are common to all logical operations, the common stored computer instructions being used to control looping through the bits.
Claim 92
Dependent Claim 25 words
The computer-readable medium of claim 66 wherein the common stored computer instructions are optimized to load only the input required by the specified logical operation.
Claim 93
Dependent Claim 25 words
The computer-readable medium of claim 66 wherein the common stored computer instructions are optimized to validate only the inputs required by the specified logical operation.
Claim 94
Dependent Claim 24 words
The computer-readable medium of claim 62 wherein the specified equation describes all possible logical operations that can be performed on the plurality of inputs.
Claim 95
Dependent Claim 94 words
The computer-readable medium of claim 62 wherein the specified equation is F(S.sub.1, s.sub.2, D)=α.sub.0 ·1⊕α.sub.1 ·S.sub.1 ⊕α.sub.2 ·S.sub.2 ⊕α.sub.3 ·D⊕α.sub.4 ·S.sub.1 S.sub.2 ⊕α.sub.5 ·S.sub.1 D⊕α.sub.6 ·S.sub.2 D⊕α.sub.7 ·S.sub.1 S.sub.2 D wherein α 0 . . . α 7 are logical operation-specific coefficients of the equation, where ⊕ represents the Boolean exclusive-OR operator, where · and juxtaposition represent the Boolean AND operator, where logical 1, S 1 , . . . , S 1 S 2 D are terms of the equation, and where S 1 , S 2 , and D are the input.
Claim 96
Dependent Claim 87 words
The computer-readable medium of claim 62 wherein the specified equation is F(S.sub.1, S.sub.2, D)=λ.sub.0 S.sub.1 S.sub.2 D+λ.sub.1 S.sub.1 S.sub.2 D'+λ.sub.2 S.sub.1 S.sub.2 'D+λ.sub.3 S.sub.1 S.sub.2 'D'+λ.sub.4 S.sub.1 'S.sub.2 D+λ.sub.5 S.sub.1 'S.sub.2 D'+λ.sub.6 S.sub.1 'S.sub.2 'D+λ.sub.7 S.sub.1 'S.sub.2 'D' wherein λ 0 . . . λ 7 are logical operation-specific coefficients of the equation, where + represents the Boolean inclusive-OR operator, where juxtaposition represents the Boolean AND operator, where ' represents the Boolean complement operator, and where S 1 , S 2 , and D are the input.
Claim 97
Dependent Claim 49 words
The computer-readable medium of claim 62 wherein the stored subsets of computer instructions include alternative subsets of computer instructions for each term of the specified equation and wherein the alternative subsets of computer instructions are optimized to be a first subset of computer instructions in the generated computer code.
Claim 98
Dependent Claim 39 words
The computer-readable medium of claim 72 wherein the stored subsets of computer instructions use a result register, where the optimization includes storing directly in the result register without performing an operation on the previous contents of the result register.
Claim 99
Dependent Claim 120 words
A computer-readable medium containing instructions for causing a computer system to generate a set of computer instructions to implement logical operations on a plurality of inputs, by: specifying an equation that represents a plurality of logical operations that can be performed on the inputs, the equation having a plurality of terms; for each term of the equation, generating a subset of computer instructions that implements the term; during execution of a computer program, requesting a logical operation; determining which generated subsets of computer instructions are needed to implement the requested logical operation; retrieving the determined subsets of computer instructions; and combining the retrieved subsets of computer instructions to generate the set of computer instructions that implements the requested logical operation.
Claim 100
Dependent Claim 120 words
A computer-readable medium containing instructions for causing a computer system to generate a set of computer instructions to implement logical operations on a plurality of inputs, by: specifying an equation that represents a plurality of logical operations that can be performed on the inputs, the equation having a plurality of terms; for each term of the equation, generating a subset of computer instructions that implements the term; during execution of a computer program, requesting a logical operation; determining which generated subsets of computer instructions are needed to implement the requested logical operation; retrieving the determined subsets of computer instructions; and combining the retrieved subsets of computer instructions to generate the set of computer instructions that implements the requested logical operation.
Claim 101
Dependent Claim 45 words
The computer-readable medium of claim 74 wherein each term has a corresponding coefficient, wherein the logical operation represents a set of coefficients for the equation, and wherein determining which generated subsets of computer instructions are needed makes the determination based on the set of coefficients.
Claim 102
Dependent Claim 40 words
The computer-readable medium of claim 75 including generating a coefficient table, and wherein determining which generated subsets of computer instructions are needed includes the step of retrieving the set of coefficients from the coefficient table based on requested logical operation.
Claim 103
Dependent Claim 37 words
The computer-readable medium of claim 76 wherein generating the coefficient table includes: for each set of coefficients, determining a logical operation that the set of coefficients represents; and storing the set of coefficients in the coefficient table.
Claim 104
Dependent Claim 44 words
The computer-readable medium of claim 74 wherein the specified equation describes all possible logical operations that can be performed on the plurality of inputs, and wherein the number of terms of the specified equation is less than the total number of possible logical operations.
Claim 105
Dependent Claim 98 words
The computer-readable medium of claim 74 wherein the specified equation is F(S.sub.1, S.sub.2, D)=α.sub.0 ·1⊕α.sub.1 ·S.sub.1 ⊕α.sub.2 ·s.sub.2 ⊕α.sub.3 ·D⊕α.sub.4 ·S.sub.1 s.sub.2 ⊕α.sub.5 ·S.sub.1 S⊕α.sub.6 ·S.sub.2 D⊕α.sub.7 ·S.sub.1 S.sub.2 D wherein α 0 . . . α 7 are logical operation-specific coefficients of the equation, where ⊕ represents the Boolean exclusive-OR operator, where · and juxtaposition represent the Boolean AND operator, where logical 1, S 1 , . . . , S 1 S 2 D are terms of the equation, and where S 1 , S 2 , and D are bitmaps representing the plurality of input.
Claim 106
Dependent Claim 94 words
The computer-readable medium of claim 74 wherein the specified equation is the Boolean equation F(S.sub.1, S.sub.2, D)=λ.sub.0 S.sub.1 S.sub.2 D+λ.sub.1 S.sub.1 S.sub.2 D'+λ.sub.2 S.sub.1 S.sub.2 'D+λ.sub.3 S.sub.1 S.sub.2 'D'+λ.sub.4 S.sub.1 'S.sub.2 D+λ.sub.5 S.sub.1 'S.sub.2 D'+.sub.6 S.sub.1 'S.sub.2 'D+λ.sub.7 S.sub.1 'S.sub.2 'D' wherein λ 0 . . . λ 7 are logical operation-specific coefficients of the equation, where + represents the Boolean inclusive-OR operator, where juxtaposition represents the Boolean AND operator, where ' represents the Boolean complement operator, and where S 1 , S 2 , and D are bitmaps representing the plurality of input.
Claim 107
Dependent Claim 51 words
The computer-readable medium of claim 74 wherein the generated subsets of computer instructions include alternative subsets of computer instructions for each term of the specified equation and wherein the alternative subsets of computer instructions are optimized to be a first subset of computer instructions of the combined subsets of computer instructions.
Claim 108
Dependent Claim 36 words
The computer-readable medium of claim 81 wherein the generated subsets of computer instructions store a value of the term directly in the result register without performing a Boolean operation on previous contents of the result register.
Claim 109
Dependent Claim 48 words
The computer-readable medium of claim 74 wherein each input has a plurality of bits, and including combining the generated set of computer instructions with computer instructions which are common to all logical operations, the common computer instructions being used to control looping through the bits of the input.
Claim 110
Dependent Claim 24 words
The computer-readable medium of claim 83 wherein the common computer instructions are optimized to load only the input required by the requested logical operation.
Claim 111
Dependent Claim 24 words
The computer-readable medium of claim 83 wherein the common computer instructions are optimized to validate only the input required by the requested logical operation.

References Cited (Backward Citations)

US4823281A Cited
US4799056A Cited
US5313227A Cited
US5041992A Cited
US5241625A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag