1. A system for software error-correcting code (ECC) protection or compression of original data using ECC data in a first memory, comprising: a processing core for executing computer instructions and accessing data from a main memory, the processing core comprising at least 16 data registers, each of the data registers comprising at least 16 bytes; and a non-volatile storage medium for storing the computer instructions, wherein the processing core, the non-volatile storage medium, and the computer instructions are configured to implement the software ECC protection or compression of the original data using the ECC data in the first memory, the software ECC protection or compression comprising: a data matrix for holding the original data in the first memory; a check matrix for holding the ECC data in the first memory; an encoding matrix for holding first factors in the main memory, the first factors being for encoding the original data into the ECC data; and a thread for executing on the processing core and comprising: a Galois Field multiplier for multiplying entries of the data matrix by an entry of the encoding matrix; and a sequencer for ordering operations through the data matrix and the encoding matrix using the Galois Field multiplier to generate the ECC data.