PyXL 项目开发了一个用于执行 Python 字节码的处理器

引入了专门的 PyXL 处理器,旨在加速 Python 代码的执行。 Python字节码由芯片直接执行,无需JIT、解释或虚拟机。 Python 文件首先被转换成 CPython 字节码,然后转换成由芯片执行的一组专门的 PySM 指令。准备执行代码的工具包是用 Python 编写的,并在基于未修改的 CPython 的标准环境中运行。处理器实现是从头开始开发的,并用 Verilog 电子系统描述和建模语言编写。该处理器的工作原型正在使用 Zynq-7000 FPGA 在电路板上进行测试。

在评估处理 GPIO 事件速度的测试中,PyXL 的性能比基于 MicroPython 的解决方案和 Pyboard 高出 30 倍。当使用以 100 MHz 运行的 PyXL 实现运行测试代码时,GPIO 请求处理延迟(往返延迟)为 480 ns,而使用 MicroPython Pyboard(168 MHz)时则为 14741 ns。将 PyXL 的时钟速度提高到 Pyboard 级别预计会使差距增加多达 50 倍。

在使用 PyBoard 和 MicroPython 操作 GPIO 时,Python 代码通过中间 C 函数与硬件寄存器交互,而 Python 代码本身则在内存中执行。 虚拟机在 PyXL 中,Python 字节码由处理器直接执行,无需额外的层或外部调用即可实现 GPIO 访问。PyXL 的架构采用流水线处理和基于栈的数据存储与处理模型。该平台保留了 Python 的动态类型,并且对变量类型没有任何限制。

在当前的开发阶段,该项目处于工作原型阶段,支持 Python 语言的有限子集,旨在展示高效硬件执行 Python 代码的可能性。计划根据作者的实际需求进一步扩展功能,主要侧重于嵌入式系统的应用和实时信息处理。

PyXL 指令集架构的设计着眼于 CPython 字节码结构及其在硬件中的高效处理,同时考虑到动态类型处理和动态调度等具体细节。 ISA 包括堆栈操作、二进制运算、比较和分支操作、函数调用和内存访问功能的指令。

PyZX 项目实施的技术细节将于 17 月 2025 日在 PyCon XNUMX 会议上公布。正在考虑开放项目开发成果并创建自给自足的 ASIC 芯片的可能性,但尚未就这些问题做出最终决定。该项目由专门从事性能优化和硬件加速器开发的 Ron Livne 开发。



来源: opennet.ru

添加评论