In reply to Sagar Shah:
A "payload" is usually a contiguous set of variously sized data. That fits well with SystemVerilog's dynamic array type. An associative array is used to model set of data, each with a unique key. People use associative to model sparsely populated memories because only the locations that are used get allocated. You could use an associative array to model a contiguous array, but there would be a lot of extra overhead.