HN 공개: Python을 실행하는 하드웨어 프로세서 개발

12 hours ago 3

  • Python 을 하드웨어에서 직접 실행하는 커스텀 프로세서 로, 인터프리터JIT 없이 동작함
  • PyXL의 GPIO 왕복 시간은 480ns로, MicroPython의 PyBoard보다 30배 빠름
  • Zynq-7000 FPGA에서 실행되며, ARM CPU가 설정과 메모리를 처리함
  • GPIO일반 목적 입출력을 의미하며, PyXL은 이를 하드웨어에서 직접 실행하여 VM이나 소프트웨어 스택을 거치지 않음
  • 실시간 제어 시스템, 로봇 공학, 임베디드 산업 시스템 등에서 결정론적이고 일관된 성능을 제공

PyXL 소개

  • PyXLPython을 하드웨어에서 직접 실행하는 커스텀 프로세서
  • 인터프리터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 함수와 상호작용하여 하드웨어 레지스터를 처리함
  • PyXLPython 바이트코드를 하드웨어에서 직접 실행하여 인터프리터함수 호출 없이 네이티브 하드웨어에서 실행함

GPIO 테스트

  • Arty 보드의 두 핀을 점퍼 케이블로 연결하여 테스트함
  • Python 프로그램을 작성하여 GPIO 핀11로 설정된 후 다른 핀에서 1이 측정될 때까지의 시간을 측정함
  • PyXLPyBoardMicroPython VM을 비교하는 비디오를 통해 성능 차이를 확인함

PyXL의 프로그램 구조

  • Python 프로그램CPython Bytecode로 컴파일된 후 PyXL 어셈블리로 변환됨
  • 바이너리가 생성되어 네트워크를 통해 Arty 보드로 전송됨
  • ARM CPU애플리케이션을 받아 PyXL 하드웨어공유 메모리에 복사하고 실행함

플랫폼 비교

  • GPIO 왕복 지연 시간: PyXL480ns, **MicroPython (PyBoard)**는 14,741ns
  • PyXLPyBoard보다 30배 빠르며, 클럭 속도정규화하면 50배 빠름

PyXL의 장점

  • Python VM소프트웨어 인터프리터를 기반으로 하여 오버헤드복잡성을 초래함
  • PyXL은 이러한 장벽을 제거하여 Python 코드를 하드웨어에서 직접 실행함
  • GPIO 접근물리적이며, 제어 흐름예측 가능하고 일관된 성능을 제공함

PyXL의 응용 분야

  • 실시간 제어 시스템에서 순수 Python으로 구현 가능
  • ML 추론센서 응답 루프에서 엄격한 시간 제한을 충족함
  • 로봇 공학에서 모터 피드백센서 융합사이클 수준의 정밀도로 처리함
  • 임베디드 산업 시스템에서 타이밍신뢰성이 중요한 경우에 적합함

Read Entire Article