Двумерные структуры данных с возможностью кэширования и заполняющие пространство кривые

Я читал, что заполняющие пространство кривые, такие как кривая Пеано, полезны для поддержания кэш-памяти. структуры данных в линейном адресном пространстве, поскольку они сохраняют физическую пространственную локальность.

Тем не менее, я не уверен, как на самом деле их использовать. Есть ли у какой-нибудь из этих кривых формулы для быстрого преобразования линейного адреса в координаты (x, y) и наоборот? В противном случае, как мне определить, где в памяти искать определенную пару координат? Пример был бы очень полезен.


person user541686    schedule 11.01.2015    source источник
comment
кривая Z-порядка имеет довольно эффективное отображение (просто чередуйте биты координат ). Я видел, что он использовался только для хеширования с учетом местоположения, а не для фактического размещения вещей в памяти.   -  person    schedule 12.01.2015
comment
@delnan: О ... есть ли что-то, что используется для размещения вещей в памяти?   -  person user541686    schedule 12.01.2015
comment
Я никогда не слышал, чтобы какая-либо подобная кривая использовалась для размещения вещей в памяти. Просматривая статью в Википедии, кажется, что некоторые люди действительно выкладывали матрицы в этом порядке для алгоритма Штрассена. Я просто никогда не слышал об этом раньше. Я довольно скептически отношусь к преимуществам в большинстве случаев.   -  person    schedule 12.01.2015
comment
@delnan: Понятно, хорошо, спасибо.   -  person user541686    schedule 12.01.2015


Ответы (1)


Как указано в комментарии, переведите координату в двоичный файл и чередуйте ее. Затем обработайте его числом с основанием 4, если вам нужен четырехъядерный ключ.

person Gigamegs    schedule 14.03.2015