2 ms·
I wouldn't be surprised if they have. Coincidence... I was just working on such an optimisation. But rather than compression as some commenters suggested, the
by jlokier 8y ago
I wouldn't be surprised if they have.
Coincidence... I was just working on such an optimisation. But rather than compression as some commenters suggested, the method is to use separate cache lines for the low and high 32-bit halves, re-encoding values so that small signed and unsigned integers and JVM-style compressed pointers (> 4GiB) only need the low half, and keeping track of when the high half is not required.
That saves cache space. Cache bandwidth to main memory can also be reduced, which also reduces energy consumption on the memory bus, but this is considerably more complicated and involves changes to the ECC encoding.
The same method works with 32-bit pointers, non-pointer integers, and JVM-style compressed pointers over a larger than 32-bit range.
These methods don't save RAM, but they do reduce cache pressure and memory bandwidth.