-
Python 을 하드웨어에서 직접 실행하는 커스텀 프로세서 로, 인터프리터 나 JIT 없이 동작함
- PyXL의 GPIO 왕복 시간은 480ns로, MicroPython의 PyBoard보다 30배 빠름
- Zynq-7000 FPGA에서 실행되며, ARM CPU가 설정과 메모리를 처리함
-
GPIO는 일반 목적 입출력을 의미하며, PyXL은 이를 하드웨어에서 직접 실행하여 VM이나 소프트웨어 스택을 거치지 않음
-
실시간 제어 시스템, 로봇 공학, 임베디드 산업 시스템 등에서 결정론적이고 일관된 성능을 제공
PyXL 소개
-
PyXL은 Python을 하드웨어에서 직접 실행하는 커스텀 프로세서임
-
인터프리터나 JIT 없이 실리콘에서 Python 코드를 실행함
-
CPython ByteCode를 커스텀 어셈블리로 변환하여 파이프라인 프로세서에서 실행함
PyXL의 특징
-
C나 인라인 루프가 아님
-
MicroPython이나 JIT가 아님
-
Linux나 운영체제를 실행하지 않음
-
결정론적이고 속도를 위해 설계된 Python 전용 프로세서임
PyXL의 실행 환경
-
Zynq-7000 FPGA에서 실행되며, Arty-Z7-20 개발 보드 사용
-
PyXL 코어는 100MHz에서 실행됨
-
ARM CPU가 설정과 메모리를 처리하며, Python 코드는 하드웨어에서 직접 실행됨
GPIO란 무엇인가?
-
GPIO는 일반 목적 입출력을 의미하며, 소프트웨어가 LED, 버튼, 센서, 모터 등을 제어할 수 있게 함
-
MicroPython에서는 Python 코드가 C 함수와 상호작용하여 하드웨어 레지스터를 처리함
-
PyXL은 Python 바이트코드를 하드웨어에서 직접 실행하여 인터프리터나 함수 호출 없이 네이티브 하드웨어에서 실행함
GPIO 테스트
-
Arty 보드의 두 핀을 점퍼 케이블로 연결하여 테스트함
-
Python 프로그램을 작성하여 GPIO 핀1이 1로 설정된 후 다른 핀에서 1이 측정될 때까지의 시간을 측정함
-
PyXL과 PyBoard의 MicroPython VM을 비교하는 비디오를 통해 성능 차이를 확인함
PyXL의 프로그램 구조
-
Python 프로그램은 CPython Bytecode로 컴파일된 후 PyXL 어셈블리로 변환됨
-
바이너리가 생성되어 네트워크를 통해 Arty 보드로 전송됨
-
ARM CPU가 애플리케이션을 받아 PyXL 하드웨어와 공유 메모리에 복사하고 실행함
플랫폼 비교
-
GPIO 왕복 지연 시간: PyXL은 480ns, **MicroPython (PyBoard)**는 14,741ns
-
PyXL은 PyBoard보다 30배 빠르며, 클럭 속도를 정규화하면 50배 빠름
PyXL의 장점
-
Python VM은 소프트웨어 인터프리터를 기반으로 하여 오버헤드와 복잡성을 초래함
-
PyXL은 이러한 장벽을 제거하여 Python 코드를 하드웨어에서 직접 실행함
-
GPIO 접근은 물리적이며, 제어 흐름은 예측 가능하고 일관된 성능을 제공함
PyXL의 응용 분야
-
실시간 제어 시스템에서 순수 Python으로 구현 가능
-
ML 추론 및 센서 응답 루프에서 엄격한 시간 제한을 충족함
-
로봇 공학에서 모터 피드백 및 센서 융합을 사이클 수준의 정밀도로 처리함
-
임베디드 산업 시스템에서 타이밍과 신뢰성이 중요한 경우에 적합함