本文档描述了阿波罗制导计算机 (AGC) 的解释器和扩展动词系统。解释器充当处理 AGC 内部解释性代码的虚拟机,而扩展动词则为宇航员提供超越基本操作的专用飞船控制和导航功能。
阿波罗制导计算机采用两种不同类型的指令运行:基本机器指令(直接代码)和解释性指令。解释器组件执行更高级的解释性语言,这种语言允许以比直接机器代码更紧凑的形式进行复杂的数学运算和控制逻辑。
扩展动词(动词代码 40-99)通过 DSKY(显示和键盘)界面为宇航员和地面控制人员提供了飞船操作、导航和系统管理的专用功能。这些动词对于校准、状态矢量更新和操纵计算等任务操作至关重要。
来源:Comanche055/INTERPRETER.agc34-56), Comanche055/EXTENDED_VERBS.agc49-58)
AGC 解释器充当一个执行解释性代码的虚拟机。它维护自己的执行上下文,包括指令指针 (LOC)、多用途累加器 (MPAC) 和操作专用寄存器。
解释器包含以下关键组件
解释器支持三种主要操作模式
| 模式 | 描述 | 用于 |
|---|---|---|
| 矢量模式 | 三组件矢量运算 | 飞船姿态、导航矢量 |
| 双精度标量 | 2寄存器精度运算 | 高精度计算 |
| 三精度标量 | 3寄存器精度运算 | 需要时可扩展精度 |
来源:Comanche055/INTERPRETER.agc72-109), Comanche055/INTERPRETER.agc302-383), Comanche055/INTERPRETER.agc552-610)
当 AGC 程序调用 INTPRET 进入解释模式时,解释器的执行流程开始。解释器随后按顺序处理解释性指令,直到遇到 EXIT 指令或其等效指令。
INTPRET 设置执行环境NEWOPS 获取下一对操作码DANZIG) 处理每个操作码来源:Comanche055/INTERPRETER.agc47-58), Comanche055/INTERPRETER.agc77-107)
解释性操作码被分为不同类别,前缀位决定操作类型。调度器处理这些前缀,将执行路由到相应的处理程序。
| 操作码范围 | 前缀 | 类型 | 示例 |
|---|---|---|---|
| 00-37 | 0xxxx | 基本操作 | VLOAD, DLOAD, PDDL |
| 40-77 | 1xxxx | 基本操作 | VAD, DMPR, UNIT |
| 100-137 | 100xxx | 分支/索引操作 | AXT, SXA, BRANCH |
| 140-177 | 101xxx | 一元操作 | SQRT, SIN, COS |
跳转表 (INDJUMP, MISCJUMP, UNAJUMP) 作为调度向量,根据操作码将执行路由到相应的操作例程。
来源:Comanche055/INTERPRETER.agc91-106), Comanche055/INTERPRETER.agc302-383), Comanche055/INTERPRETER.agc364-383)
扩展动词(动词代码 40-99)通过 DSKY 界面提供专用功能。它们通过系统管理、导航和任务特定操作来扩展 AGC 的基本功能。
扩展动词系统包括
GOEXTVB - 处理通过 DSKY 输入的动词代码LST2FAN - 分派到相应的动词处理程序来源:Comanche055/EXTENDED_VERBS.agc49-115), )
扩展动词按功能类别分组
惯性测量单元 (IMU) 操作 (V40-V46)
状态矢量操作 (V47, V67, V70-V73, V80-V81)
显示功能 (V82-V89)
系统控制 (V48, V56-V58, V68, V96)
实用功能 (V74-V77, V92)
来源:Comanche055/EXTENDED_VERBS.agc53-116), )
以下是 AGC 中一些最重要的扩展动词
| 动词 | 姓名 | 功能 | 处理器 |
|---|---|---|---|
| V40 | 归零 CDU | 归零 IMU CDU 角度 | VBZERO |
| V41 | 粗略校准 | 粗略校准 IMU 或光学系统 | VBCOARK |
| V42 | 精细校准 | 通过陀螺仪扭矩精细校准 IMU | IMUFINEK |
| V47 | 移动登月舱状态矢量 | 将登月舱状态矢量传输到指挥舱 | LMTOCMSV |
| V48 | DAP 数据加载 | 加载自动驾驶数据 | DAPDISP |
| V49 | 机组定义操纵 | 启动自动姿态操纵 | CREWMANU |
| V70-V73 | 更新参数 | 更新起飞时间、内存、时钟 | V70UPDAT 等 |
| V82 | 轨道参数 | 显示轨道参数 | V82PERF |
| V83 | 交会对接参数 | 显示距离、距离变化率 | V83PERF |
| V96 | 终止积分 | 停止轨道积分 | VERB96 |
解释器和扩展动词系统协同工作,提供任务操作所需的计算能力
解释器包含与基本 AGC 功能交互的特殊操作
RTB 操作允许解释性代码调用基本 AGC 例程
| RTB 操作 | 功能 | 描述 |
|---|---|---|
| LOADTIME | 加载 AGC 时钟 | 将 TIME1/TIME2 加载到 MPAC 中 |
| PULSEIMU | 扭矩陀螺仪 | 向 IMU 陀螺仪发送指令 |
| SIGNMPAC | MPAC 的符号 | 将 MPAC 设置为其内容的符号 |
| NORMUNIT | 归一化矢量 | 安全地创建单位矢量 |
| VECSGNAG | 矢量符号一致性 | 强制矢量分量中的符号一致性 |
存储操作管理 MPAC 和内存之间的数据传输
| 存储代码 | 功能 | 描述 |
|---|---|---|
| STORE | 基本存储 | 存储 MPAC 内容 |
| STODL | 存储并双重加载 | 存储 MPAC 并加载新的双精度值 |
| STOVL | 存储并矢量加载 | 存储 MPAC 并加载新的矢量 |
| STCALL | 存储并调用 | 存储 MPAC 并调用子程序 |
来源:Comanche055/RT8_OP_CODES.agc41-320), Comanche055/INTERPRETER.agc385-470)
解释器和扩展动词系统是阿波罗制导计算机软件架构的关键组成部分。解释器为复杂的数学运算提供了虚拟机,而扩展动词则通过标准化界面使宇航员能够访问专用飞船功能。
这些系统共同实现了月球任务所需的计算能力,涵盖从轨道操纵到着陆操作以及返回地球的全过程。其精妙的设计平衡了 AGC 有限的硬件资源与太空导航对计算的严苛需求。