Lobsters | 📄 原文链接 | 2026-11-02 收录

在 FPGA 上跑 Haskell:Ouros 处理器的 IO 与自动多线程

来源:bathtub-01.github.io — 2026-11-01

📋 概述

博士生 Yukang Xie 介绍把 Haskell 处理器 Ouros 放上 FPGA 并补上 IO 能力的工作。Ouros 是基于组合子的图归约机,不执行指令序列,而是把程序编译成组合子图后反复归约:每个应用(App)是一个定长字,大型表达式是一串靠指针连起来的 App 存在堆里,Dereference Heap、Reducer、ALU 三块硬件以数据令牌流转,因此是数据流驱动而非指令驱动。IO 用状态传递的 IO monad 接上,World 只是个占位整数,底层操作落到 AXI4-Lite 总线读写寄存器,于是没有软件运行时也没有内核陷入。设计在 AMD 捐赠的 AUP-ZU3 板上以 100 MHz 运行,约占 27% LUT、7% 寄存器、40% BRAM。

🔑 核心要点

💡 金句

从程序员的角度看,它不过是在读写一些寄存器,其中一部分连着外面的世界。
← 返回 Lobsters 首页