ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ PyXL Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅Ρ‚ процСссор для выполнСния Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄Π° Python

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ спСциализированный процСссор PyXL, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для ускорСния выполнСния ΠΊΠΎΠ΄Π° Π½Π° языкС Python. Π‘Π°ΠΉΡ‚ΠΊΠΎΠ΄ Python Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ‡ΠΈΠΏΠΎΠΌ Π±Π΅Π· JIT, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин. Π€Π°ΠΉΠ»Ρ‹ Π½Π° языкС Python Π²Π½Π°Ρ‡Π°Π»Π΅ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ CPython, послС Ρ‡Π΅Π³ΠΎ Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ прСобразуСтся Π² спСциализированный Π½Π°Π±ΠΎΡ€ инструкций PySM, выполняСмых Ρ‡ΠΈΠΏΠΎΠΌ. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ написан Π½Π° Python ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² стандартном ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Π½Π° Π±Π°Π·Π΅ Π½Π΅ΠΌΠΎΠ΄ΠΈΡ†ΠΈΡ„ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ CPython. РСализация процСссора Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° с нуля ΠΈ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π° Π½Π° языкС описания ΠΈ модСлирования элСктронных систСм Verilog. Π Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ процСссора тСстируСтся Π½Π° ΠΏΠ»Π°Ρ‚Π°Ρ… с FPGA Zynq-7000.

Π’ ΠΏΡ€ΠΎΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹Ρ… тСстах, ΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий 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), ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉΡΡ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… ускоритСлСй.



Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru
author avatar
ProHoster ΠšΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Π½Ρ‚, ВСхничСский спСциалист
A technical specialist at ProHoster with over six years of experience in server administration, VPN solutions, and network security. I manage infrastructure setup and support, monitor service stability, and implement solutions to protect client data. I also contribute to performance optimization and compliance with modern security and privacy requirements.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ