В проведённых тестах, оценивающих скорость обработки событий GPIO, PyXL опережает решение на базе MicroPython и платы Pyboard в 30 раз. При выполнении тестового кода при помощи реализации PyXL, работающей с тактовой частотой 100MHz, задержка обработки запроса GPIO (Roundtrip Latency) составила 480 нс, а при помощи MicroPython Pyboard (168MHz) — 14741 нс. Предполагается, что повышение тактовой частоты PyXL до уровня Pyboard позволит увеличить разрыв до 50 раз.
При работе с GPIO на MicroPython при использовании платы PyBoard код на языке Python взаимодействует с аппаратными регистрами через промежуточные Си-функции, при этом сам Python-код выполняется в виртуальной машине. В PyXL байткод Python выполняется напрямую процессором и доступ к GPIO осуществляется без дополнительных прослоек и внешних вызовов. Архитектура PyXL использует использует конвейерную обработку (pipelining) и стековую модель хранения и обработки данных. Платформа сохраняет динамическую типизацию Python и не накладывает ограничений на типы переменных.
На текущем этапе развития проект находится на стадии рабочего прототипа, поддерживающего ограниченное подмножество языка Python и нацеленное на демонстрацию возможности эффективного аппаратного выполнения Python-кода. Дальнейшее расширение функциональности планируют производить у учётом реальных потребностей автора, которые в основном сосредоточены на применении для встраиваемых систем и обработки информации в режиме реального времени.
Архитектура набора команд процессора PyXL спроектирована с оглядкой
на структуру байткода CPython и его эффективную обработку на аппаратном уровне с учётом специфики, такой как динамическая обработка типов и динамическая диспетчеризация. ISA включает инструкции для манипуляции стеком, бинарные операции, операции сравнения и ветвления, возможности вызова функций и доступа к памяти.
Технические детали реализации проекта PyZX будут представлены 17 мая на конференции PyCon 2025. Рассматривается возможность открытия наработок проекта и создания самодостаточного ASIC-чипа, но решение по этим вопросам пока окончательно не принято. Проект развивает Рон Ливне (Ron Livne), специализирующийся на оптимизации производительности и разработке аппаратных ускорителей.
Источник: http://www.opennet.ru/opennews/art.shtml?num=63157