Comment by Retr0id

14 days ago

By the way, the reason the address->IC mapping is non-trivial is for performance reasons.

If you were, for example, iterating over a column of a 2D array with a stride equal to some power of two, you'd end up hitting the same IC repeatedly. This limits your bandwidth to that of a single IC, rather than balancing it over all of them. (I'm simplifying a little, but that's the gist)

So they try to "swizzle" things, using a formula like the one in the article.