1. A method of ensuring the integrity of a software variable stored in a memory, comprising the steps of: verifying the integrity of a hardware environment for the software variable, wherein the hardware environment comprises a processor, a plurality of registers, and a plurality of storage locations in said memory; calculating a first copy of said software variable using said processor and a first set of said plurality of registers; calculating a second copy of said software variable different from said first copy of said software variable using said processor and a second set of said plurality of registers; storing said first said software variable in a first portion of said verified plurality of storage locations in said memory; storing said second said software variable in a second portion of said verified plurality of storage locations in said memory; and comparing said first copy of said software variable from said first portion of said storage locations with said second copy of said software variable from said second portion of said storage locations to thereby ensure the integrity of said software variable stored in said memory.