摘要

  • ARM1 在制造前已经通过行为模型、指令测试、更快的模拟器、解释器以及 BBC BASIC 和 Tube 系统等真实软件逐层验证;首硅并非面对一张白纸。
  • Sophie Wilson 设计指令集并领导验证工作;第一版 BBC BASIC 行为模型由 Steve Furber 编写,随后还有验证、编译器、物理设计与 VLSI Technology 制造团队共同完成不同环节。
  • 首次启动证明的是被测试的 ISA、实现、板级接口与软件路径相互吻合;它不自动证明穷尽正确性、时序余量、功耗、制造良率、资格认证、量产、生态或商业成功。

在芯片开口之前,软件已经说了很多话

Sophie Wilson 在计算机历史博物馆的口述史中回忆:芯片从 VLSI Technology 返回后,被插入早已准备好的第二处理器板;Tube 操作系统启动,BBC BASIC 随即运行。一个简单命令得到预期结果,团队打开香槟庆祝。

“一次就工作”是一个准确但不完整的缩写。它容易让人以为成功发生在插入芯片的那一刻,仿佛此前只有几张电路图。事实恰好相反:体系结构已经能够执行,测试已经能够提问,软件已经能够形成负载,电路板已经能够接收答案。首硅到来时,团队拥有一套可比较的预期。

因此,启动画面不是工程工作的替代品,而是它的汇合点。只有知道哪些行为在模型中定义、哪些指令被检查、哪些软件被移植、哪些电路被实现,才能解释这张收据到底结清了哪一部分风险。

纠正一处署名,才能看见验证链

Wilson 本人的叙述把分工说得很清楚:Steve Furber 用 BBC BASIC 编写了第一版 ARM 行为模型,速度很慢,每秒只能前进几个周期。Wilson 设计 ARM 指令集,并领导一个更大的团队编写指令测试、验证软件和解释器。Royal Society 的人物档案同样把 ARM 指令集归于 Wilson,并把 ARM 的设计与分析共同归功于 Wilson 和 Furber。

这不是细节修辞。指令集定义软件能看见的操作契约;行为模型把契约变成可运行的参考;微架构决定如何用寄存器、ALU 和控制逻辑实现契约;电路与物理设计再把这些组织成可制造的版图。把这些工作揉成一个“设计了芯片”的动作,会同时抹去验证方法和责任边界。

Wilson 还点名 Hugo Tyson、Jez Wills、Jon Thackray、David Seal 与她一起编写验证软件、确认软件和解释器。Arm 后来回顾 Seal 时,将 ISA 的验证与确认称为他在 Project A 的主要贡献。Lee Smith 和 Harry Meekings 则领导编译器团队。不同人并不是重复做同一件事,而是在不同接口上寻找不一致。

从慢模型到真实程序

第一版模型很慢,却有一个重要优点:它可以充当语义参考。测试可以问,某条指令执行后寄存器和存储器应该是什么状态;条件执行、移位、算术、加载、存储与控制转移是否遵守同一套规则。它不需要像产品一样快,只需要足够明确。

团队随后编写了纯指令模拟器。Wilson 回忆,这些模拟器在 6502 第二处理器上可以达到每秒数十万条模拟 ARM 指令。速度提升改变了验证规模:团队不再只能运行微型用例,而能移植 BBC BASIC、准备 Tube 第二处理器操作系统并编写更多软件。

每一层证据各有用途。指令测试能隔离一个语义;模拟器能覆盖更长的序列;语言运行时会自然组合调用、算术、分支与内存访问;操作系统启动则会触及初始化、接口与板级整合。它们都不能穷尽状态空间,却能让不同来源的行为在同一架构上交叉验证。

真实软件还有另一层意义:它并不是为“证明一切正常”而量身定做的表演。BBC BASIC 有自己的复杂需求。若模型、模拟器和移植之间存在隐含矛盾,较长的软件路径更可能把它暴露出来。软件越早到场,硅片回来后可观察的就越多。

从框图到晶圆,是另一个责任面

Steve Furber 的口述史描述了 ALU、寄存器文件等子模块的短篇规格。这些文档处在原理图和更高层逻辑描述之间,Acorn 的 VLSI 小组据此完成电路与物理设计。Furber 记得直接参与 ARM 的大约有三人;随着 Archimedes 所需四芯片组推进,团队规模才扩大。

VLSI Technology 提供设计工具与制造。该公司的口述史小组把 Wilson、Furber 的架构角色,与实际创建芯片的设计小组、承担流片的代工角色分别说明。把逻辑交给制造并不等于“打印”:行为要经过模块、电路、布局、掩模和工艺的多次翻译,每一层都可能引入偏差。

Hermann Hauser 的作用又不同。他提供高层支持,让探索性想法获得正式项目的空间。后来那句“没有人、没有钱”的故事很适合说明资源约束,却不是验证证据。资源稀缺可能迫使设计保持小而清楚,不能代替测试、评审与实现。

首次启动证明了什么

Tube 系统启动说明处理器已经能执行足够多的预期行为,并与第二处理器环境交互。BBC BASIC 运行则把验证路径延伸到一个复杂且团队熟悉的软件系统。这个结果把 ISA、模型、模拟器、移植软件、微架构、物理设计、制造、板卡和接口连成一条可见链。

它之所以比“某个引脚翻转了”更有力,正因为程序执行同时依赖多个子系统。独立准备的期望在硅上汇合,团队可以合理地说:至少在这条被观察的路径上,物理实现与软件契约吻合。

但它没有覆盖所有指令角落、异常、终端状态、长期运行或电气边界;没有给出代表性负载下的功耗;没有说明不同电压、温度和工艺角下的时序;没有公布晶圆良率、封装可靠性、资格认证、成本或产能。首硅启动也没有自动交付完整配套芯片、成熟操作系统和可量产产品。

Wilson 自己把后续阶段分开叙述:芯片资格验证之后,才有完整 Acorn 机器与更好用的操作系统。Arm 的官方历史还要继续经过 ARM2、Archimedes、1990 年公司成立、许可模式与全球合作网络。后来的巨大市场不能倒流成为 1985 年那条 BASIC 命令已经证明的内容。

“简单”不是免检证书

ARM1 约有 25,000 个晶体管。较小的实现减少了相互作用,也让架构更容易理解。这是降低风险的合理选择,却不是 RISC 项目必然一次成功的定律。简单芯片会失败,更复杂的后续版本也会遇到新的风险。

真正值得学习的是,团队没有因为设计简单而少做验证。它把不确定性前移,让错误尽量在软件、模型和规格仍可修改时暴露。首硅成功并不说明处理器设计很容易;它说明在最昂贵的实物到来前,工程人员已经把大量模糊判断变成了可以比较的运行结果。

贡献边界也是证据结构

Wilson 的 ISA 与验证领导把意图连接到程序;Furber 的模型与微架构把语义连接到实现;Tyson、Wills、Thackray、Seal 等人的验证工作扩大覆盖;Smith、Meekings 与编译器团队增加真实软件路径;Acorn 的 VLSI 工程师构成物理对象;VLSI Technology 提供工具与制造;Hauser 提供组织条件。

团队很小,却不是一个人,也不是一种技能。正因为角色分开,错误才可能被定位在规格、模型、测试、解释器、编译器、模块、电路、板卡或芯片。ARM1 的长期启示并非英雄独自命中,而是一个小团队用清楚的接口让不同证据在首硅那一刻彼此核对。

来源