July 13, 2022

Ежедневные знания от Neonlabs - Pipelining (Русская версия)

-Solana смогла увеличить свою скорость, максимально используя аппаратные возможности, предлагаемые твердотельными накопителями NVMe. Разработчики оптимально использовали возможности современных процессоров и, в частности, архитектуры, отвечающей за обработку цепочек, известных как конвейеры.

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

-Способ постоянно использовать все аппаратное обеспечение. То есть, сетевые карты, ядра процессора и все ядра видеокарты. Для этого команда разработчиков Solana использовала идею из дизайна процессоров. Они создали четырехтактный программный менеджер транзакций, названный TPU (Transaction Processing Unit - блок обработки транзакций) применительно к процессорам CPU и GPU.

-В сети Solana механизм цепочки обработки (или TPU), таким образом, проходит следующие четыре этапа:
1 - Получение данных, на уровне ядра операционной системы.
2 - Проверка подписи, управляемая графической картой - процессором, который особенно хорошо подходит для параллельных вычислений.
3 - Управление финансовым регистром, или банкингом, осуществляемое центральным процессором.
4 - Запись, снова выполняется ядром.

-Когда блоки завершены и отправлены валидаторам, TPU немедленно работает над следующими транзакциями, уже получив пакеты данных для обработки, проверив их подписи и выполнив необходимые финансовые операции. Таким образом, блоки могут обрабатываться в быстром темпе.

-Для того чтобы обеспечить ожидаемую производительность, на узле должны одновременно работать две различные цепочки обработки: TPU в качестве ведущей цепочки обработки и TVU (Transaction Validating Unit), используемый в качестве цепочки обработки, предназначенной для проверки. Аппаратное обеспечение и данные, необходимые для вычислений, являются стандартными и одинаковыми. Эти два процесса просто разбиты на разные аппаратные элементы, поскольку они будут по-разному использовать ресурсы.

Официальные страницы NeonLabs: