探秘航天飞机输入输出处理器:独特架构与电路板的奥秘

📅 2026/6/29 15:15:55
探秘航天飞机输入输出处理器:独特架构与电路板的奥秘
Ken Shirriffs博客计算机历史、复古计算机修复、集成电路逆向工程等等探究航天飞机输入输出处理器的电路板航天飞机的五台通用计算机在每次飞行中都发挥着至关重要的作用控制引擎、监控数千个传感器、向宇航员显示数据以及为航天飞机导航。每台计算机由两个60磅重的铝合金盒子组成右侧的盒子是CPU这是一款32位处理器每秒可执行42万条指令。这些计算机是在微处理器普及之前设计的因此处理器由多个塞满简单芯片的电路板构成并且使用磁芯存储器而非DRAM芯片。航天飞机的输入输出处理器IOP和中央处理器CPUAP - 101B。图片由RR拍卖公司提供。左侧的盒子是输入输出处理器IOP它是CPU与航天飞机其他部分之间的连接桥梁。它实现了计算机的输入输出功能主要通过24个高速网络将计算机与航天飞机的系统和传感器相连。但IOP并非仅仅是一个外设它是一台独立的可编程计算机比主CPU更为复杂。IOP拥有独特的架构它是最早的多线程计算机之一在一个物理处理器上实现了25个虚拟处理器具备两种完全不同的指令集。获得了输入输出处理器的两块电路板每块都是9英寸×3英寸的矩形上面密密麻麻地布满了微小的芯片和其他组件。用IBM的术语来说每块电路板被称为一个“页面”请记住这个术语。上面的页面是一个网络接口提供四个网络连接每个连接的传输速率为每秒100万位。IOP包含六块这样的电路板以实现24个网络连接。下面的页面存储着IOP处理器的微代码即定义每条指令的底层代码。一排排白金色的芯片通过微小的金属熔丝存储微代码的位通过熔断每个代表1的熔丝来进行编程。在本文中将解释输入输出处理器的工作原理以及这两个页面的作用。航天飞机输入输出处理器的两个页面“MIA”接口页面和PROM页面。“MIA”接口页面航天飞机有28个数据总线网络将计算机与航天飞机的其他部分相连每台计算机连接其中的24个网络。大量的网络既保证了高性能又确保了可靠性每台计算机与任何航天飞机系统之间至少有两个网络连接。其中八个网络分配给飞行关键系统每个阴极射线管CRT显示器和引擎控制器都连接到四个网络以实现冗余。下面的页面是输入输出处理器中的六个网络接口页面之一。航天飞机工程师喜欢使用首字母缩写词因此这个页面有一个晦涩的名称“MIA”即“多路复用器接口适配器”。许多网络连接到被称为多路复用器/解复用器的盒子这些盒子提供了网络与航天飞机各种模拟和数字组件之间的连接。MIA接口页面上紧密排列着集成电路和其他组件。该页面包含两块印刷电路板分别位于页面的两侧。两侧的电路板几乎完全相同通过比较上面的照片和下面的照片即可看出。主要区别在于连接器的位置发生了变化。网络接口页面称为MIA多路复用接口适配器。该页面进行了大量的返工细棕色的“修补”线在页面上蜿蜒用于修复错误或进行更新。每块电路板实现两个网络接口因此该页面支持四个网络。每个网络通过一对绞合在一起并带有屏蔽的电线传输数据而非同轴电缆。尽管网络传输的是数字数据但通过网络传输的信号是物理电压会随着距离的增加而减弱并且会出现失真和噪声。因此接口页面必须将这些模拟信号转换回0和1。电路板的右半部分是模拟电路。其中一个标有“IBM”的大型金色模块占据了主导地位该模块有46个引脚。这是一个混合模块由晶体管管芯、电阻器、电容器以及可能的集成电路管芯等微小组件组成通过比头发还细的键合线连接在一起。它不完全是一个集成电路而是安装在陶瓷晶圆上的一组独立组件。混合模块在航空航天应用中很受欢迎因为一块模拟组件电路板可以缩小为一个昂贵的模块。这个模块包含两个输入输出端口的模拟电路用于传输网络信号的驱动器以及用于接收信号的放大器和比较器。混合模块旁边安装了各种分立组件电阻器、玻璃电容器、电感器和小型方形变压器。变压器提供了接口板与网络之间的耦合。与以太网一样变压器在计算机与网络之间提供隔离过滤电磁干扰并匹配阻抗这些对于可靠性都非常重要。曼彻斯特马克1号计算机威廉姆斯教授位于左起第二位。照片来自曼彻斯特大学。航天飞机网络的一个关键部分可以追溯到20世纪40年代。1946年弗雷德里克·威廉姆斯成为曼彻斯特大学电气工程系主任。到1949年他的团队创造了具有开创性的曼彻斯特马克1号计算机。在此过程中他们发明了存储程序计算机、威廉姆斯管磁芯存储器出现之前最好的计算机存储器形式以及曼彻斯特进位链至今仍在现代处理器的加法运算中使用。但与此相关的发明是获得专利的曼彻斯特编码这是一种对0和1序列进行编码以便存储或传输的方法。在曼彻斯特编码中每个0位被替换为“低 - 高”序列每个1位被替换为“高 - 低”序列如下所示。这个想法看似简单但它被应用于从软盘和遥控器到以太网和RFID标签的各种领域因此被评为IEEE里程碑。说明曼彻斯特编码的示意图。来自《原型IOP功能描述》第82页。直接发送未编码的二进制数据有两个问题。首先在一长串0或1中很难判断发送了多少位“是六位还是只有五位”其次这样的序列是不平衡的因此存在“直流分量”。如果信号存储在磁性介质上或通过变压器传输这个直流分量就会引发问题。曼彻斯特编码解决了这两个问题。由于每个编码位的中间都有一个跳变因此很容易分离出各个位。此外编码确保0和1的数量相等因此不存在直流分量。由于这些优点曼彻斯特编码被选为航天飞机数据总线网络的编码方式。IOP网络接口的一个关键功能是在串行位和曼彻斯特编码之间进行转换。接口的数字电路相当复杂但大部分逻辑都集中在四个大型金色集成电路中。这些是定制的摩托罗拉集成电路每个网络端口都有一个发送芯片和一个接收芯片。在发送端芯片将二进制数据转换为用于网络的曼彻斯特编码信号。电路还会在每个字的开头插入一个同步信号并添加奇偶校验位。接收芯片则进行相反的操作检测同步信号、解码曼彻斯特信号、验证奇偶校验位并报告任何错误。较小的黑色芯片是简单的晶体管 - 晶体管逻辑TTL芯片主要是移位寄存器。晶体管 - 晶体管逻辑在20世纪70年代非常流行能提供快速、可靠的电路。有12个4位移位寄存器芯片和16个8位移位寄存器。航天飞机的网络通过网络发送24位字将六个4位移位寄存器芯片组合起来可以得到一个24位移位寄存器用于将这些24位字转换为串行数据反之亦然。其余的芯片是简单的逻辑门、触发器、缓冲器和4位计数器。页面的物理结构大约在1967年IBM推出了一系列用于航空电子设备的计算机称为System/4 Pi。这些系统由“页面”构成两块电路板夹着一层金属层用于对流冷却。比指甲还小的扁平封装集成电路成行安装在每块电路板上一块电路板上大约有78个集成电路。当时这些印刷电路板的技术非常先进有六层布线。顶部的两个千斤顶螺丝将页面紧紧固定在系统中。两个98针连接器将页面连接到背板。下面的照片展示了一个典型的4 Pi页面顶部及其成行排列的芯片。标准IBM 4 Pi页面与IOP页面的对比。4 Pi页面由埃里克·施拉普费尔提供。4 Pi页面所在的袋子上标有“FSD AWACS测试仪”这表明它可能是IBM联邦系统部门为E - 3C机载预警与控制系统飞机使用的IBM 4 Pi计算机设计的测试仪。一个输入输出处理器页面上面底部与标准4 Pi页面几乎相同只是宽了一英寸9英寸而非8英寸并且有一个或两个120针连接器而非98针连接器。一英寸的差距看似不大但9英寸的页面可以容纳100个集成电路而不是78个这是一个显著的提升。猜测设计师无法用标准页面将IOP装进可用空间因此不得不做出改变。同样多个输入输出端口可能需要比小连接器更多的连接。页面的两侧都有电路板中间由一块金属板隔开。为了让信号在两块电路板之间流动页面顶部安装了一个特殊的连接器来连接它们。这个连接器不仅提供了电路板之间的直通连接还提供了测试点因此在电路板安装在机箱中时可以探测信号。下面的照片展示了直通连接器的特写。它有三排测试点。第一排红色连接到顶部电路板。中间一排橙色连接到两块电路板并提供直通连接。底部一排蓝色连接到底部电路板。上方的箭头显示了连接器焊接到电路板的位置。MIA页面上的测试点连接器。下面的示意图展示了输入输出处理器的结构成行的页面插入背板。注意IOP前面的128针MIA输入输出连接器它将24条数据总线以及其他信号连接到航天飞机的其他部分。箭头显示了冷却空气如何通过IOP的侧面流动。空气并不流经页面而是通过每个页面内的金属板进行对流散热热量流向机箱侧面的热交换器。CPU和IOP都包含磁芯存储器下面标记为“存储页面”尽管存储器分布在两个盒子中但它被视为一个统一的共享存储器因此CPU和IOP的程序可以存放在任意一个物理盒子的存储器中。IOP的分解图。来自《原型IOP功能描述》。IOP的架构和PROM页面输入输出处理器的高性能设计由并行处理架构专家彼得·科格开发。当时他在IBM联邦系统部门工作航天飞机计算机正是在那里研发的。如今担任圣母大学教授的科格还因科格 - 斯通加法器而闻名这是一种用于如奔腾等处理器的快速电路。输入输出处理器的架构非常独特尽管它只有一个物理处理器但运行着25个虚拟处理器具备两种完全不同的指令集。这些虚拟处理器轮流运行每次只运行一个时钟周期然后让下一个处理器运行。这样做的目的是确保每个网络端口都能获得处理器的可预测且有保障的处理时间因此即使一个网络端口过载也不会影响其他端口。这种方法被称为桶形处理器最早应用于1964年至1969年间世界上最快的计算机——CDC 6600超级计算机。输入输出处理器有两种类型的虚拟处理器当然它们也有晦涩的首字母缩写词BCE和MSC。24个网络端口中的每个端口都有一个BCE即总线控制元件它运行一个小程序在网络端口和存储器之间移动数据字。一个MSC主序列控制器是执行器运行程序来管理BCE。BCE和MSC处理器运行存储在计算机磁芯存储器中的代码。MSC和BCE的指令集彼此完全不同也与主CPU的指令集源自IBM的System/360大型机不同。执行器MSC是一个32位处理器具有普通处理器的标准指令——加法、逻辑运算、分支等等以及配置和启动BCE的专门操作。低级BCE的指令集要小得多也奇怪得多缺乏所有基本指令如算术运算和条件分支即对一个处理器所期望的指令。相反BCE有输入输出指令如传输数据、接收数据、加载超时寄存器、存储状态和等待。在典型的使用场景中CPU指示MSC运行一个程序MSC配置BCE执行一个程序然后BCE按照指定的方式发送和接收数据。当BSE的操作完成后MSC中断CPU由CPU处理数据。这样CPU可以专注于高级算法而不会在网络操作上浪费周期。当MSC和BCE处理器具有完全不同的指令集时它们如何在一个物理处理器上运行呢诀窍在于微代码每个MSC和BCE指令都通过一系列72位的微指令在微代码中实现。一个简单的指令可能需要五条微指令而一个复杂的指令可能需要60条微指令。每条微指令指导IOP物理处理器执行MSC或BCE指令的一个步骤。在每条微指令之后物理处理器切换到下一个虚拟处理器的微指令。物理处理器的架构与MSC或BCE完全不同它有三条16位数据路径和两个可以并行操作的算术逻辑单元ALU。物理处理器为每个虚拟处理器都有一个单独的寄存器组包括一个微指令地址寄存器以跟踪每个虚拟处理器的状态。PROM页面存储了输入输出处理器的大部分微代码。尽管有三个芯片为了节省空间而横向安装但左侧仍有更多的空间被浪费。IOP的微指令存储在上面的PROM页面中。在上面的照片中带有金色盖子的白色芯片是熔丝链接可编程只读存储器PROM芯片。这些不寻常的芯片为每个位都包含一个微小的熔丝。如果熔丝完好无损对应的位就是0而熔断的熔丝代表1位。通过施加17伏的脉冲逐个销毁熔丝来对芯片进行编程实际上就是“烧毁”PROM。之前讨论过熔丝链接PROM芯片。每个PROM芯片可以存储512个4位字因此这个页面总共存储了1024条72位微指令其余的512条微指令存储在另一个页面中。芯片上手工标注了数字因为每个芯片都有独特的编程必须安装在正确的位置。有36个芯片可能会期望芯片编号从1到36。奇怪的是虽然许多芯片是按顺序编号的但其他芯片的编号从55到74没有明显的规律。从物理结构上看PROM页面在几个方面都很独特。它使用双列直插式封装DIP集成电路而不是扁平封装集成电路。DIP是一种较大的集成电路有两排垂直引脚穿过电路板。由于这个页面只有一块电路板因此顶部没有测试点直通连接器。它仍然有中央金属板但集成电路安装在金属板上方而电路板在下方——金属板上有供引脚穿过的间隙。在芯片行之间中央板的厚度与电路板相同。PROM页面的特写展示了芯片的安装方式。黑色芯片比白色芯片厚得多。推测熔丝链接PROM芯片只有DIP封装而没有扁平封装。这些DIP封装比普通的扁平封装集成电路占用更多的空间这个页面的密度大约是普通页面的四分之一。结论航天飞机的CPU和IOP在设计时是先进的但很快就过时了。IBM重新设计了计算机将CPU和IOP合并到一个名为AP - 101S的单个盒子中该计算机于1991年首次飞行。改进后的计算机速度更快内存更大。此外将两个盒子合并为一个总共节省了约300磅的重量。下面的照片展示了安装在航天飞机航空电子设备舱中的三台更新后的AP - 101S计算机。墙壁挡住了第四台计算机第五台在相机后面。这些位置之前是输入输出处理器的安装位置CPU安装在左侧的空处。航空电子设备舱1和2位于乘员舱中层甲板飞行甲板下方朝前看向机头。红色箭头指示AP - 101S计算机。剩下的一台计算机位于中层甲板右后侧的航空电子设备舱3A中。这张照片拍摄于2011年展示了“发现号”航天飞机正在为在史密森尼博物馆展出做准备。原始照片由collectSpace提供调整了亮度。尽管输入输出处理器在航天飞机中起着关键作用但它没有得到像CPU那样的关注。例如尽管NASA的文件详细描述了IOP的架构但找不到任何关于其页面的照片。希望本文能让你相信IOP的架构和物理结构使其成为一个有趣的系统。如需获取更新请在Blueskyrighto.com、Mastodon[email protected]或RSS上关注。感谢理查德提供电路板。感谢迈克·斯图尔特提供关于IOP的文件。感谢collectSPACE的罗伯特·珀尔曼和RR拍卖公司提供照片。AI声明没有使用AI撰写本文文中的破折号是自然使用的注释和参考1. 在某些飞行任务中会在储物柜中携带第六台计算机作为备用以提供更高的可靠性。如果五台计算机中的一台出现故障宇航员可以将电缆连接到备用计算机让它接管故障计算机的工作。在1989年的STS - 30飞行任务中计算机4遇到了“数据奇偶校验外部存储错误”表明存在硬件问题于是启用了备用计算机。2. 怀疑这些页面来自输入输出处理器但很难证明这一点。幸运的是迈克·斯图尔特找到了一份文件即《原型输入/输出处理器功能描述》其中列出了每个IOP插槽中的页面。MIA页面上有一个部件编号6246523 - 3PROM页面有6104848 - 3这些编号与文件中的“MIA”6246523 - 1和“微存储ROM”6104848 - 1相匹配。3. 下面的示意图展示了28个数据总线网络如何连接顶部的五台计算机和航天飞机的各个部分。这些网络分为地面接口、任务关键、飞行仪表、显示系统、大容量存储、计算机间通信和飞行关键等类别。数据总线架构。点击查看大图。改编自《航天飞机航空电子系统》。为什么每台计算机连接24个网络而不是全部28个呢每台航天飞机计算机几乎连接了所有网络这样它们可以同步运行以确保可靠性。唯一的例外是每台计算机将自己的监控数据发送到地面站。由于这些数据对其他计算机不重要因此通过一个名为飞行仪表的专用网络发送到脉冲编码调制PCM盒该盒对数据进行编码以便传输到地面。共有23个共享网络和5个专用网络每台计算机一个因此总共有28个网络其中24个网络连接到特定的计算机。4. 接口页面的两侧几乎完全相同。然而连接器位于页面的左侧或右侧具体取决于查看的是哪一侧。这迫使最底部的去耦电容器移动位置以适应连接器。还发现出于某种原因两侧有一个集成电路不同。5. 虽然许多数据总线网络连接到多路复用器/解复用器MDM但并非总是如此。网络也直接连接到发动机接口单元或显示电子单元等系统。此外MDM不一定是网络与航天飞机传感器之间的最后一步。MDM包含支持十几种输入和输出信号类型的卡数字、模拟、开/关离散和串行。然而航天飞机中的数千个信号更加多样化传感器可以提供交流信号、脉冲、热电偶值、电阻等等。其他盒子将原始传感器信号转换为MDM可以处理的形式这些盒子被称为专用信号调节器DSC。一个DSC有15或30个插槽用于安装执行必要信号转换的卡。因此MDM和DSC结合了固定架构和针对每个角色进行定制的能力。6. 玻璃电容器是一种有趣的组件它使用极薄的玻璃层作为电介质。由于其稳定性和可靠性玻璃电容器在20世纪60年代的航空航天应用中变得流行起来。这些电容器由康宁玻璃公司制造包装上的“CGW”标签表明了这一点。MIA页面上的两个玻璃电容器。电容器上标有军用代码。“J”表示联合陆军/海军规格。“CY”表示玻璃电容器“4”显然表示轴向引线“G”表示温度/电压“510”是值51×100 51皮法“G”表示±2%的容差。不知道为什么一个电容器标有“0F”另一个标有“4G”。7. 航天飞机在计算机和网络之间还有第二层变压器以确保故障设备不会导致网络崩溃。每个设备如IOP通过一个名为数据总线耦合器的小设备连接到网络。这个一英寸的立方体包含一个变压器和几个电阻器用于匹配阻抗。耦合器充当网络分接头提供从网络到设备的短分支。如果设备被移除耦合器还提供线路终端以确保信号完整性。8. 航天飞机的网络与美国军方的串行网络标准MIL - STD - 1553非常相似。1553B标准广泛应用于众多军用飞机、导弹、坦克、海军系统、空客A350商用飞机和詹姆斯·韦伯太空望远镜。然而由于航天飞机的网络和1553标准在20世纪70年代初都在开发中因此这两个网络并不相同。主要区别在于航天飞机使用24位字而不是16位并且字之间有5.5微秒的间隙。9. MIA的功能描述如下- 传输和接收数据- 直流隔离- 并行/串行转换- 串行/并行转换- 同步信号生成和检测- 曼彻斯特编码和解码- 奇偶校验生成和检测- 位计数检测- 向BCE提供状态信息下面的功能框图展示了网络接口一个端口的电路。这个电路在每块电路板上复制两次由于页面两侧都有电路板因此该页面支持四个网络。认为虚线框中的发送和接收框对应于大型摩托罗拉芯片只是“TX”和“RX”放大器在IBM混合模块中而变压器是分立组件。MIA的功能框图。来自《原型IOP功能描述》第82页。点击查看大图。10. 4位移位寄存器芯片是54LS395芯片。这些芯片具有“三态”输出允许它们连接到总线。这些芯片可能提供了电路板与IOP其他部分之间的接口一块电路板上的12个芯片将为每个端口支持一个24位寄存器符合预期。8位移位寄存器芯片是54LS1964移位寄存器。不明白为什么有这么多8位移位寄存器芯片也许它们充当缓冲区。猜测……《原型IOP功能描述》指出IOP在24位MIA移位寄存器和IOP其他部分之间有六个28位4字寄存器。这些8位移位寄存器芯片能否组成这些寄存器即使不需要进行移位操作文档没有明确说明这些寄存器是在MIA页面上还是在不同的页面上。移位寄存器芯片每页提供256位的存储而寄存器文件需要112位因此位数远远超过所需。此外文档说寄存器被构造为每组四个MIA的7 - 44寄存器文件这听起来更像是54LS170寄存器文件芯片例如而不是移位寄存器芯片。可能设计从《原型》功能描述中进行了修改8位移位寄存器提供了额外的缓冲。11. 4 Pi这个名字是基于IBM广受欢迎的大型机系列System/360的一个几何玩笑。System/360通过一个适用于所有应用商业和科学的计算机家族的概念彻底改变了计算机行业。这个名字象征着System/360涵盖了所有360°的应用。4 Pi这个名字将圆的概念扩展到了三维世界4π是构成一个完整球体的立体弧度数量。正如IBM所说“System/4 Pi也填满了一个球体——军事计算机需求的全频谱——适用于机载、太空或舰载使用。”12. 最早的4 Pi系统TC系列使用了不同样式的页面但后续的计算机使用了标准的4 Pi页面包括航天飞机的AP - 101B计算机。然而从下一台计算机B - 1轰炸机中的AP - 101C开始IBM改用了更大的页面。航天飞机升级后的计算机AP - 101S使用了这些更大的页面。详情请参阅关于4 Pi计算机历史的文章。13. 下面的照片展示了扁平封装集成电路如何安装在电路板上。每个集成电路分配有16个焊盘14引脚的集成电路“浪费”了两个焊盘而较大的集成电路则打破了规则模式。每个焊盘连接到一个过孔即穿过电路板的镀孔。这些过孔提供了与电路板不同层上的布线迹线的连接照片中可以看到一些迹线。过孔还固定了通孔组件的引脚。IBM System/360大型机中的电路板使用了非常相似的印刷电路板样式具有规则的过孔网格。这种样式的电路板与大多数其他系统中使用的电路板非常不同后者只在必要的地方打孔并且布线迹线的规则性较差。IBM的样式可能使钻孔更高效并且更易于自动布线但需要薄而精确的迹线和多层电路板这在当时并不常见。与消费电子产品相比IBM的技术非常先进。20世纪60年代IBM就开始使用六层印刷电路板和表面贴装组件但例如苹果公司直到二十年后才转向表面贴装组件。具体来说1986年的Apple IIGS广泛使用了表面贴装组件但一年后的1987年的Macintosh SE仍然完全使用通孔组件。IOP的PROM板特写。照片还展示了一些集成电路如何标有规格控制图SCD编号6088731 - 1而其他集成电路则标有标准部件编号SN54LS151。这个SCD编号对应于一个标准的54S10与非门。这些芯片都有1974年的日期代码74xx不要与7400系列部件编号混淆。下面的照片展示了三种不同类型的扁平封装集成电路。第一种类型最常见引脚从顶部和底部两侧伸出类似于现代的表面贴装集成电路。第二种封装有一个金色外壳。它更小更薄引脚从四个侧面伸出。第三种封装也有四个侧面的引脚但稍大一些。