内存太贵,前微软工程师直接让AI帮忙造!给1970年古董电脑扩容4MB RAM,成功跑起UNIX
Feature Reading

内存太贵,前微软工程师直接让AI帮忙造!给1970年古董电脑扩容4MB RAM,成功跑起UNIX

通过更稳定的阅读版式、清楚的信息提示与推荐衔接,让文章阅读过程更加完整,也更容易延展到相关主题。

Article View

整合正文阅读、相关推荐与侧栏检索,保持浏览流程连贯

7M体育官方平台|即时比分与赛事新闻 808 阅读 约 5.5 分钟

整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 如今内存价格一路疯涨,不少人直呼「买不起内存了」,该怎么办? 自己造一个,似乎也不是不行。 这听起来像是硬件发烧友才会干的事,但最近,一位前微软工程师真的动手了。 Dave Plummer 曾参与开发 Windows 任务管理器和 Windows 弹球游戏。退休后,他依然没有闲下来,继续折腾各种计算机项目。 这一次,他借助 ChatGPT,从零设计了一块内存板,准备给一台诞生于 1970 年代的老电脑扩容 4MB RAM。 更有意思的是,Plummer 此前从未尝试过 FPGA 编程。从电路设计、PCB 布局,到 FPGA 控制器开发和实际硬件测试,他几乎是一路摸索着完成了整个项目。这番折腾,也让人看到了 AI 辅助开发在软件之外的另一种可能。 老电脑内存太贵,他决定自己造一个 Dave Plummer这次折腾的对象,是一台 DEC PDP-11。 这是一款诞生于 1970 年的经典小型计算机,在计算机发展史上有着相当重要的地位。UNIX 操作系统的早期发展,也与 PDP-11 密切相关。 不过,几十年过去,这些老电脑的配件早已不像现代硬件那样容易购买。尤其是内存。 Plummer在社交平台 X 上发帖吐槽,“如果你觉得普通内存已经够贵了,那不妨试试 PDP-11 的内存。只要能买到,价格差不多是每 MB 1000 美元。” 换句话说,想给这台老电脑配齐 4MB 内存,光内存本身就可能花掉 4000 美元。 这价格,别说给老电脑升级了,拿去买一台相当不错的现代电脑都绰绰有余。 于是,Plummer 决定换个思路:既然这么贵,那不如自己动手造一块。 从原理图到 PCB,ChatGPT 帮他一步步设计 这次项目并不是简单地把几颗内存芯片焊在一起。 Dave Plummer借助 ChatGPT 和在线电路设计工具 EasyEDA,从原理图开始,一步步完成电路设计、PCB 布局和布线,甚至连生产所需的物料清单也准备好了。 Dave Plummer 坦言自己此前做过 PCB,但从未尝试过如此复杂的项目。 要让这块自制内存真正运行起来,还得先了解 PDP-11 的硬件架构。 不分 PDP-11 机型采用 Q-Bus 总线连接各类功能板卡。因此,Dave Plummer 将这块自制内存设计成一张独立板卡,再与搭载 M8190 处理器的板卡一同插入背板,进行实际测试。 这块内存板的核心是一颗 Lattice MachXO2 FPGA 芯片(型号为 2000HC),负责充当内存控制器,外接 4 颗 ISSI 的 1MB 存储芯片。此外,板卡还配备了 U2S 输入输出芯片、DIP 拨码开关、通信接口及若干电容,共同组成完整的电路。 在地址空间方面,M8190 所在系统采用 22 位地址寻址,支持最高 4MB 的寻址空间,其中顶部 256KB 地址空间预留给输入输出设备和只读存储器(ROM)。这也意味着,自制内存板不仅要提供足够的存储容量,还必须遵循原有系统的地址映射规则。 简单来说,FPGA 负责协调现代存储芯片与 PDP-11 之间的数据传输,让这台老电脑能够按照原有的方式访问内存。 设计完成后,Dave Plummer一口气订购了 5 块 PCB,准备开始实际测试。 至此,一块自制内存板的硬件设计基本完成。但真正的挑战,才刚刚开始。 第一次给 FPGA 刷程序,折腾了好几轮,最终成功跑起了 Unix 电路板做好了,不代表它就能正常工作。 Dave Plummer接下来需要把自己编写的 FPGA 程序烧录进去。问题是,他此前从未对 FPGA 芯片进行烧录编程。 于是,他又买了一块 FT232H 转接板,把它连接起来。后来又安装了 openFPGALoader,开始摸索整个烧录流程。 中间没少踩坑。经历几次失败后,他终于成功把程序写进 FPGA。“这对我来说完全是一个全新的领域!”Dave Plummer 说道。 随后,他把新做的 RAM 板插入 PDP-11 的背板,与搭载 M8190 CPU 的主板一起进行测试。 这时候,好消息来了。 电脑已经能够识别这块新内存板,系统也显示出了 4MB RAM,以及预留给 ROM 的地址空间。对于一个第一次尝试如此复杂硬件项目、此前甚至没给 FPGA 刷过程序的人来说,这已经是相当不错的进展。 但Dave Plummer很快发现,事情还没完。 在测试过程中,Dave Plummer遇到了一个相当基础、却又容易踩坑的问题: 这块 RAM 无法正常访问奇数地址。 问题出在内存控制器对数据的处理方式上。 PDP-11 采用 16 位数据总线,一次可以传输两个字节。读取数据时,CPU 会根据地址,自动从这两个字节中选出自己需要的那个。 但Dave Plu

about image

觉得有用?分享给朋友

让更多人看到这篇内容