unsigned
ErasureCodeIsaDefault::get_alignment() const
{
- return k * EC_ISA_VECTOR_OP_WORDSIZE;
+ return k * EC_ISA_ADDRESS_ALIGNMENT;
}
// -----------------------------------------------------------------------------
Developer Notes
===============
-The plugin requires 16*k byte aligned buffers. The encoding tables are computed only
-once when the EC object is created. Decoding Tables have to be computed for
-each decoding since the available data/coding sources may change between calls.
+The plugin provides optimal performance for 32-byte aligned buffer start address and
+k*32 byte aligned buffer length. The encoding tables are computed only once when the EC
+object is created. Decoding Tables have to be computed for each decoding since the available
+data/coding sources may change between calls.
Decoding tables are cached in an LRU cache which is sufficiently large up to (12,4).
For larger configurations the cache might expire the 'oldest' tables and decoding might
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
+#define EC_ISA_ADDRESS_ALIGNMENT 32
#define EC_ISA_VECTOR_SSE2_WORDSIZE 64
#if __GNUC__ > 4 || \