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

Activity masking with mask context of SIMD processors

Assignee: The AT&T MVPD Group LLC
•
Filing: 1995-03-10
•
Granted: 1996-09-10
•
Expires: 2015-03-10
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Disclosed is a masking technique for a SIMD processor (10) which is capable of masking a plurality of individual machine operations within a single instruction incorporating a plurality of operations. To accomplish this each different machine operation within the instruction includes a number of masking bits which address a specific location in a mask register (60). The mask register (60) includes a mask bit bank (62). The mask location selected within the mask register (60) is bit-wise ANDed with a mask context bit (66) in order to establish whether the processing element will be enabled or disabled for a particular conditional sub-routine which is called. One of the bit locations in the mask bit bank (60) is a hard-wired unconditional bit which overrides the mask context bit (66) in order to enable the processing elements in special situations. In addition, a scalar mask bit is provided to facilitate scalar processing. By this operation, instructional parallelism can be incorporated in order to increase through-put of the processor.

Inventors

  • 👤 James J. Radigan
  • 👤 David A. Schwartz

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-26 09:33
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/30003; G06F9/30072; G06F9/38; G06F9/3885; G06F9/3887; G06F9/3889

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 218 words
A single instruction multiple data (SIMD) architecture including multiple interconnected processing elements, each of said processing elements comprising: memory means for storing data; function means for performing computational and/or Input/Output (I/O) operations; multi-operation instruction register means for storing an instruction for normally causing said function means to simultaneously perform multiple operations; mask register means for storing a plurality of mask bits, said mask register means including a mask context bit register holding a mask context bit, said mask context bit being logically combined with at least one of the plurality of mask bits for masking one of the operations; means for setting a condition mask bit, said condition mask bit being one of the plurality of mask bits, wherein the condition mask bit selectively prevents certain operations from being performed; and stack means for storing the contents of the mask register means during a subroutine call so as to save a context of the processing element during the subroutine call, wherein a state of the mask context bit prior to the subroutine call is stored in the stack means, and wherein a state of the condition mask bit is stored in the mask context bit register during the subroutine call, said stack means stacking multiple contents of the mask register means in sequence for multiple nested subroutine calls.
Claim 2
Dependent Claim 218 words
A single instruction multiple data (SIMD) architecture including multiple interconnected processing elements, each of said processing elements comprising: memory means for storing data; function means for performing computational and/or Input/Output (I/O) operations; multi-operation instruction register means for storing an instruction for normally causing said function means to simultaneously perform multiple operations; mask register means for storing a plurality of mask bits, said mask register means including a mask context bit register holding a mask context bit, said mask context bit being logically combined with at least one of the plurality of mask bits for masking one of the operations; means for setting a condition mask bit, said condition mask bit being one of the plurality of mask bits, wherein the condition mask bit selectively prevents certain operations from being performed; and stack means for storing the contents of the mask register means during a subroutine call so as to save a context of the processing element during the subroutine call, wherein a state of the mask context bit prior to the subroutine call is stored in the stack means, and wherein a state of the condition mask bit is stored in the mask context bit register during the subroutine call, said stack means stacking multiple contents of the mask register means in sequence for multiple nested subroutine calls.
Claim 3
Dependent Claim 24 words
The SIMD architecture according to claim 1 wherein the mask context bit is selectively bit-wise logically ANDed with the at least one mask bit.
Claim 4
Dependent Claim 26 words
The SIMD architecture according to claim 2 wherein one bit of the mask register means is a hard-wired unconditional bit which overrides the mask context bit.
Claim 5
Dependent Claim 19 words
The SIMD architecture according to claim 1 wherein the mask register means includes a plurality of function unit bits.
Claim 6
Dependent Claim 20 words
The SIMD architecture according to claim 4 wherein one bit of the mask register means is a hard-wired true bit.
Claim 7
Dependent Claim 22 words
The SIMD architecture according to claim 4 wherein the mask register means includes eight bits selectively addressable by a three-bit address location.
Claim 8
Dependent Claim 19 words
The SIMD architecture according to claim 1 wherein a North-Western most processing element is selected to perform scalar operations.
Claim 9
Dependent Claim 48 words
The SIMD architecture according to claim 7 wherein the mask register means includes a scalar mask context bit, said scalar mask context bit being zero at every processing element except for the North-Western most processing element in order to perform scalar processing in the North-Western most processing element.
Claim 10
Dependent Claim 65 words
The SIMD architecture according to claim 1 further comprising return means for returning the contents of the stack means to the mask register means at the end of the subroutine call to put the mask register means back to its state prior to the subroutine call, and returning the mask context bit during the subroutine call to the condition mask bit before the subroutine call.
Claim 11
Independent Claim 268 words
A method of data processing in a single instruction multiple data stream processor which includes a plurality of processing elements, said method comprising the steps of: administering a set of instructions to each of the processing elements in which at least one instruction includes a plurality of different machine operations; administering a predetermined set of data to each of the processing elements; masking each individual machine operation within a single instruction which does not satisfy requirements of a particular conditional statement within the set of instructions, said step of masking including the steps of selecting a specific mask bit from a set of mask bit registers, logically combining the selected mask bit with a mask context bit for masking a particular machine operation, said mask context bit being stored in a mask context bit register and being set according to the particular conditional statement, and enabling or disabling the processing element depending on the outcome of the combining step; and storing the contents of the mask bit registers and the mask context bit in a stack during a subroutine call so as to save a context of the processing element when the processing element performs a subroutine, said step of storing the contents of the mask context bit including storing a state of the mask context bit prior to the subroutine call in the stack and storing the specific mask bit in the mask context bit register, said step of storing the contents of the mask register in the stack including storing multiple contents of the mask register in sequence on the stack for multiple nested subroutine calls.
Claim 12
Independent Claim 268 words
A method of data processing in a single instruction multiple data stream processor which includes a plurality of processing elements, said method comprising the steps of: administering a set of instructions to each of the processing elements in which at least one instruction includes a plurality of different machine operations; administering a predetermined set of data to each of the processing elements; masking each individual machine operation within a single instruction which does not satisfy requirements of a particular conditional statement within the set of instructions, said step of masking including the steps of selecting a specific mask bit from a set of mask bit registers, logically combining the selected mask bit with a mask context bit for masking a particular machine operation, said mask context bit being stored in a mask context bit register and being set according to the particular conditional statement, and enabling or disabling the processing element depending on the outcome of the combining step; and storing the contents of the mask bit registers and the mask context bit in a stack during a subroutine call so as to save a context of the processing element when the processing element performs a subroutine, said step of storing the contents of the mask context bit including storing a state of the mask context bit prior to the subroutine call in the stack and storing the specific mask bit in the mask context bit register, said step of storing the contents of the mask register in the stack including storing multiple contents of the mask register in sequence on the stack for multiple nested subroutine calls.
Claim 13
Dependent Claim 37 words
The method according to claim 10 wherein the step of selecting a mask bit from a mask bit register includes the steps of selecting a mask bit from a mask bit register including a hard-wired true bit.
Claim 14
Dependent Claim 43 words
The method according to claim 10 wherein the step of selecting a mask bit from a mask bit register includes the steps of selecting a mask bit from a mask bit register including a hard-wired unconditional bit which overrides the mask context bit.
Claim 15
Dependent Claim 51 words
The method according to claim 10 further comprising the step of logically ORing a bit in a global response flag register with a bit in a global response flag register from every other processing element to determine if any of the processing elements meet the conditional requirements of the conditional instruction.
Claim 16
Dependent Claim 30 words
The method according to claim 10 wherein the step of selecting a mask bit from a mask register includes selecting a mask bit from an eight bit function bit bank.
Claim 17
Dependent Claim 44 words
The method according to claim 10 further comprising the step of logically ANDing a special purpose mask context bit with a scalar mask context bit, wherein the scalar mask context bit can only be true at one PE in order to facilitate scalar processing.
Claim 18
Dependent Claim 42 words
The method according to claim 10 further comprising the step of returning the contents of the stack that was previously stored in the mask bit registers prior to the subroutine call to the mask bit registers after completion of the subroutine call.
Claim 19
Dependent Claim 295 words
A single instruction multiple data architecture including multiple interconnected processing elements, each of said processing elements comprising: memory means for storing data; function means for performing computational operations and Input/Output (I/O) operations; multi-operation instruction register means for storing an instruction for normally causing said function means to simultaneously perform their respective operations; mask register means for storing a plurality of mask bits, at least one mask bit being associated with the function means, said mask register means further including a mask context bit register for storing a mask context bit, said mask context bit being selectively bit-wise logically ANDed with at least one function mask bit; means for setting the at least one mask bit as a function of a condition of the data in said memory means, wherein the contents of said mask register means selectively prevents certain operations from being performed; stack means for storing the contents of the mask register means during a subroutine call so as to save a context of the processing element when the processing element performs a subroutine, wherein a state of the mask context bit prior to the subroutine call is stored in the stack means, and wherein the at least one function mask bit is stored in the mask context bit register during the subroutine call, said stack means stacking multiple contents of the mask register means in sequence for multiple nested subroutine calls; and return means for returning contents of the stack to the mask register means at an end of the subroutine call to put the mask register means back to its state before the subroutine call, said return means returning the state of the mask context bit register to the at least one function mask bit at the end of the subroutine call.
Claim 20
Dependent Claim 295 words
A single instruction multiple data architecture including multiple interconnected processing elements, each of said processing elements comprising: memory means for storing data; function means for performing computational operations and Input/Output (I/O) operations; multi-operation instruction register means for storing an instruction for normally causing said function means to simultaneously perform their respective operations; mask register means for storing a plurality of mask bits, at least one mask bit being associated with the function means, said mask register means further including a mask context bit register for storing a mask context bit, said mask context bit being selectively bit-wise logically ANDed with at least one function mask bit; means for setting the at least one mask bit as a function of a condition of the data in said memory means, wherein the contents of said mask register means selectively prevents certain operations from being performed; stack means for storing the contents of the mask register means during a subroutine call so as to save a context of the processing element when the processing element performs a subroutine, wherein a state of the mask context bit prior to the subroutine call is stored in the stack means, and wherein the at least one function mask bit is stored in the mask context bit register during the subroutine call, said stack means stacking multiple contents of the mask register means in sequence for multiple nested subroutine calls; and return means for returning contents of the stack to the mask register means at an end of the subroutine call to put the mask register means back to its state before the subroutine call, said return means returning the state of the mask context bit register to the at least one function mask bit at the end of the subroutine call.
Claim 21
Dependent Claim 25 words
The architecture according to claim 17 wherein one bit of a both the mask bits associated with the function means is a hard-wired true bit.
Claim 22
Dependent Claim 25 words
The architecture according to claim 17 wherein one bit of the mask register means is a hard-wired unconditional bit which overrides the mask context bit.
Claim 23
Dependent Claim 58 words
The architecture according to claim 17 wherein the mask register means includes a global response flag register for storing a global response flag bit, said global response flag bit being logically ORed with another global response flag bit of each processing element to determine if any of the processing elements meets conditional requirements of a particular instruction sequence.
Claim 24
Dependent Claim 45 words
The architecture according to claim 17 wherein the mask register means includes a scalar mask contect bit register storing a scalar mask context bit wherein the scalar mask context bit is zero everywhere except a North-Western most processing element in order to facilitate scalar processing.

References Cited (Backward Citations)

US4435758A Cited
US5045995A Cited
US4907148A Cited
GB2201015A Cited
US5307506A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag