- PVSM.RU - https://www.pvsm.ru -

Как работает сжатие в объектно-ориентированной архитектуре памяти

Команда инженеров из MIT разработала объектно-ориентированную иерархию памяти для более эффективной работы с данными. В статье разбираемся с тем, как она устроена.

Как работает сжатие в объектно-ориентированной архитектуре памяти - 1 [1]
/ PxHere [2] / PD

Как известно, рост производительности современных CPU не сопровождается соответствующим снижением задержки при обращении к памяти. Разница в изменении показателей от года к году может доходить до 10 раз (PDF, стр.3 [3]). Как результат — возникает бутылочное горлышко, которое не дает в полной мере пользоваться имеющими ресурсами и замедляет обработку данных.

Ущерб производительности наносит так называемая декомпрессионная задержка. В некоторых случаях на подготовительную декомпрессию данных может уходить до 64 процессорных циклов.

Для сравнения: сложение и умножение чисел с плавающей точкой занимают [4] не больше десяти циклов. Проблема в том, что память работает с блоками данных фиксированного размера, а приложения — оперируют объектами, которые могут содержать различные типы данных и отличаться друг от друга по размеру. Чтобы решить проблему, инженеры из MIT разработали объектно-ориентированную иерархию памяти, которая оптимизирует обработку данных.

Как устроена технология

В основе решения лежат три технологии: Hotpads, Zippads и алгоритм сжатия COCO.

Hotpads — это программно-управляемая иерархия сверхоперативной регистровой памяти (scratchpad [5]). Эти регистры называются пэдами (pads) и их три штуки — от L1 до L3. В них хранятся объекты разных размеров, метаданные и массивы указателей.

По сути, архитектура представляет собой систему кэшей, но заточенную для работы с объектами. Уровень пэда, на котором находится объект, зависит от того, как часто его используют. Если один из уровней «переполняется», система запускает механизм, аналогичный «сборщикам мусора» в языках Java или Go. Он анализирует, какие объекты используется реже остальных и автоматически перемещает их между уровнями.

Zippads работает на основе Hotpads — архивирует и разархивирует данные, которые поступают или покидают два последних уровня иерархии — пэд L3 и основную память. В первом и втором пэдах данные хранятся в неизменном виде.

Как работает сжатие в объектно-ориентированной архитектуре памяти - 2

Zippads сжимает объекты, чей объем не превышает 128 байт. Более крупные объекты делятся на части, которые затем размещаются в разных участках памяти. Как пишут разработчики, такой подход повышает коэффициент эффективно используемой памяти.

Для сжатия объектов применяется алгоритм COCO (Cross-Object COmpression), о котором мы расскажем далее, хотя система способна работать и с Base-Delta-Immediate [6] или FPC [7]. Алгоритм COCO представляет собой разновидность разностного сжатия (differential compression [8]). Он сравнивает объекты с «базовыми» и удаляет повторяющиеся биты — см. схему ниже:

Как работает сжатие в объектно-ориентированной архитектуре памяти - 3

По словам инженеров из MIT, их объектно-ориентированная иерархия памяти на 17% производительнее классических подходов. Она гораздо ближе по своему устройству к архитектуре современных приложений, поэтому у нового метода есть потенциал.

Ожидается, что в первую очередь технологию могут начать использовать компании, которые работают с большими данными и алгоритмами машинного обучения. Еще одно потенциальное направление — облачные платформы. IaaS-провайдеры получат возможность эффективнее работать с виртуализацией, системами хранения данных и вычислительными ресурсами.

Наши дополнительные ресурсы и источники:

Как работает сжатие в объектно-ориентированной архитектуре памяти - 4 «Как мы строим IaaS»: материалы о работе 1cloud [9]

Как работает сжатие в объектно-ориентированной архитектуре памяти - 5 Эволюция архитектуры облака 1cloud [10]
Как работает сжатие в объектно-ориентированной архитектуре памяти - 6 Услуга объектного хранилища в 1cloud [11]

Как работает сжатие в объектно-ориентированной архитектуре памяти - 7 Потенциальные атаки на HTTPS и способы защиты от них [12]
Как работает сжатие в объектно-ориентированной архитектуре памяти - 8 Чем похожи и чем различаются подходы Continuous Delivery и Continuous Integration [13]
Как работает сжатие в объектно-ориентированной архитектуре памяти - 9 Как защитить сервер в интернете: опыт 1cloud [14]

Автор: 1cloud

Источник [15]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/mit/317326

Ссылки в тексте:

[1] Image: https://habr.com/ru/company/1cloud/blog/451356/

[2] PxHere: https://pxhere.com/ru/photo/744919

[3] PDF, стр.3: http://aircconline.com/ijcsit/V9N2/9217ijcsit14.pdf

[4] занимают: http://ithare.com/wp-content/uploads/part101_infographics_v08.png

[5] scratchpad: https://en.wikipedia.org/wiki/Scratchpad_memory

[6] Base-Delta-Immediate: https://users.ece.cmu.edu/~omutlu/pub/bdi-compression_pact12.pdf

[7] FPC: https://ieeexplore.ieee.org/document/4589203

[8] differential compression: https://en.wikipedia.org/wiki/Data_differencing

[9] «Как мы строим IaaS»: материалы о работе 1cloud: https://habr.com/ru/company/1cloud/blog/450602/

[10] Эволюция архитектуры облака 1cloud: https://1cloud.ru/blog/our-system-architecture-evolution?utm_source=habrahabr&utm_medium=cpm&utm_campaign=compress&utm_content=blog

[11] Услуга объектного хранилища в 1cloud: https://1cloud.ru/services/storage?utm_source=habrahabr&utm_medium=cpm&utm_campaign=compress&utm_content=site

[12] Потенциальные атаки на HTTPS и способы защиты от них: https://www.facebook.com/1cloudru/photos/a.1526614574327724/2317948435194330/?type=3&theater

[13] Чем похожи и чем различаются подходы Continuous Delivery и Continuous Integration: http://www.facebook.com/1cloudru/posts/2309275519394955

[14] Как защитить сервер в интернете: опыт 1cloud: http://www.facebook.com/1cloudru/posts/2311523002503540

[15] Источник: https://habr.com/ru/post/451356/?utm_campaign=451356