The various Reed Solomon implementations detailed below can be customized to work with other RS (n, k) codes to yield similar results in performance.
Optimized Reed Solomon Software
The pure software implementation is dominated computationally by multiplication over a finite field (Galois Field multiplication). The encoder requires 71,181 cycles per codeword on a MIPS32 processor and the decoder requires 66,045 cycles.
Scalar GF Multiply Support
This is the simplest form of VOCAL’s hardware acceleration. The Scalar GF Multiply Support extends the capabilities of the MIPS32 processor by taking advantage of MIPS Technologies CorExtend capability to decrease the number of cycles to 23,305 cycles to encode and 9,174 cycles per codeword to decode on the MIPS32 processor.
SIMD GF Multiply Support
The SIMD GF Multiply Support requires 128 bytes of local ROM memory, but increases the performance to 3,918 cycles per megabit to encode and 3,078 cycles per codeword to decode.
RS Encode Kernel
The RS Encode Kernel uses 1024 bytes of local ROM memory to encode. The number of cycles to process a codeword on a MIPS32 cpu falls to 2,702 cycles for encoding and decoding only consumes 828 cycles with this implementation.
Table 1 – Reed Solomon Benchmarks