引言
1958年8月1日,在北京中科院计算技术研究所,一台占地数十平方米、由约800个电子管和约2000个二极管组成的庞大机器成功完成了一小段程序的运行。这台机器就是中国第一台通用电子数字计算机,最初命名为八一型计算机,后称103型计算机(103机)。它参照苏联小型通用机M-3仿制改进而来。
中国科学院官方记载了一个生动的细节:当机器调试成功时,时任中国科学院党组书记、副院长张劲夫在现场按捺不住内心的喜悦,风趣地给这台机器取了个小名——“有了”。中国从此”有了”计算机。
103机参照苏联小型通用机M-3仿制改进而来,由中科院计算技术研究所与北京有线电厂(国营738厂)等单位合作研制。该机采用电子管线路,主存容量1024字(磁鼓),字长30位,每秒可进行30次运算。103机的研制成功,标志着中国计算机工业的开端。
那么,这样一台”慢”到极致的机器,究竟是如何被组织起来的?

图1 103计算机照片 注:来源于极客逻辑的《也许这是有史以来最清晰的103机的照片了》
一、宏观架构:从冯·诺依曼到中国实践
103机是一台严格的冯·诺依曼体系结构计算机,其组织结构可以概括为五大部件。
1. 运算器(算术逻辑单元)
103机的运算器由电子管(真空管)构成,专门负责加减乘除四种基本运算。M-3/103机的运算逻辑参照了苏联的设计,其核心是一个串行运算单元——每次处理一位二进制数,通过多个时钟周期串联完成完整字长的运算。
运算器内部包含:
- 加法器
- 寄存器组(包括A寄存器、B寄存器、C寄存器等)
- 移位电路
2. 控制器
控制器从磁鼓存储器中逐条取出指令,解码后发出控制信号。一条指令的执行分为八个步骤(拍),通过脉冲分配器协调时序:
- 指令地址从启动寄存器→选择寄存器,脉冲分配器将读信号送至磁存储器控制线路
- 指令从磁鼓读出到寄存器C
- 启动寄存器加1(为下一条指令做准备);操作码部分→操作部件,第一地址→选择器
- 第二地址→选择寄存器;第一个数由磁鼓→C寄存器
- 第一数从C寄存器→A寄存器
- 第二个数由磁鼓→C寄存器
- 第二个数从C寄存器→B寄存器
- 局部程序发生器发送脉冲序列到运算器执行运算,结果按地址写入磁鼓
这些步骤在今天看来无比繁琐,但这就是当年一台计算机完成一次加法所需经历的完整路径。
3. 存储器
103机的存储器分为两级:
内存储器(主存):最初采用磁鼓存储器。磁鼓是一个表面涂有磁性材料的旋转圆筒,通过磁头读写数据。磁鼓转速为3000转/分,平均读取时间10微秒,写入密度3.2脉冲/毫米。初始容量为1024个字(约4KB),每字32位。后期可选配CX-1型磁芯存储器,容量扩大1倍,速度从每秒30次提升至上千次。
外存储器:早期103机仅有磁鼓,DJS-1型号起增加了磁带机扩展外存。
1024个字是什么概念? 一页A4纸的纯文本大约有3-4KB。也就是说,初期的103机内存只够存放一页文字。
4. 输入设备
- 五单位纸带阅读机:程序和数据事先在纸带上穿孔(有孔代表1,无孔代表0),通过光电阅读机读取。
- 控制打字机:由苏联五单位F50型收发电传机改装,用于操作员与机器的低速交互。
5. 输出设备
- 行式打印机:将结果打印在纸带上。
- 纸带穿孔输出机:用于保存中间结果。
二、微观组织:指令系统与数据通路
指令格式(据GitHub开源硬件/模拟器项目还原)
103机共有64条指令(操作码00~77,八进制),采用双地址指令格式。一条完整的指令字长为30位,格式如下:
| 字段 | 宽度 | 说明 |
|---|---|---|
| 操作码(ОП) | 6位(00~77八进制) | 64种指令 |
| 第一地址(А1) | 12位(0000~7777八进制) | 第一个操作数地址 |
| 第二地址(А2) | 12位(0000~7777八进制) | 第二个操作数地址 |
以Oct Verilog硬件描述语言实现的计算机核心模块中,6位操作码信号定义为 [5:0],地址信号定义为 [11:0],数据通路定义为 [29:0](30位)。
GitHub上的测试程序以如下格式表示指令:
1 | 0000@ +00 3000 3001 |
其中 0000@ 为八进制地址,+00 为八进制操作码,3000 和 3001 分别为两个八进制地址。
据Verilog源代码分析,103机支持以下运算类别:
- 加法(ADD)、减法(SUB)、乘法(MUL)、除法(DIV)
- 逻辑与(AND)
- 数据传送(MOV:C→A、C→B、B→C、存贮器→C)
- 移位(左移、右移)
- 输入输出(I/O)
- 清除(CLEAR A、CLEAR B、CLEAR C)
- 求反(NOT A、NOT B)
- 绝对值控制
字长与数据格式
103机采用30位字长(其蓝本苏联M-3为32位,103机调整为30位),其中:
- 1位符号位(正/负)
- 29位数值位
数据以定点数形式存储,数值范围在[-1, 1)之间的小数范围。这意味着要处理大于1的数字,程序员必须手动进行比例因子(scaling)管理——这在今天完全不可想象。
磁鼓存储器参数
| 参数 | 数值 |
|---|---|
| 类型 | 磁鼓存储器 |
| 容量 | 1024字(初始),后期可选配CX-1型磁芯存储器 |
| 字长 | 30位 |
| 转速 | 3000转/分 |
| 平均读取时间 | 10微秒 |
| 写入密度 | 3.2脉冲/毫米 |
三、物理组织:一间屋子就是一台电脑
占地与规模
103机的主机部分由多个大型机柜组成,总占地面积约40平方米。它包括:
- 运算器与控制器的电子管机柜
- 磁鼓存储器机柜
- 电源机柜(整流器、稳压器)
- 控制台(操作面板,带指示灯、开关、按钮)
电子管与元器件
据中科院官方资料,苏联M-3原型机约使用800个电子管、2000个氧化铜二极管、10000个阻容元件,分装成400个插件插入3个机柜,全机约有10000个接触点和50000个焊接点。103机在仿制过程中将氧化铜二极管换为性能更稳定的晶体二极管。
早期版本的八一型/103型计算机使用了700多只电子管(与M-3相近),央视报道提到的”近四千个半导体锗二极管和八百个电子管”应为103机采用晶体二极管后的配置。后期DJS-3型的磁芯存储器单独使用了376只电子管和424只晶体二极管。
功耗
103机的功耗未见明确的公开数据,但参照同类电子管计算机(如苏联M-3约30-40千瓦),其功率应在数十千瓦级别。这些电能大部分转化为热量散发出去,因此机房需配备专门的通风或冷却系统。
机房环境
当时的计算机房是一个需要穿白大褂、换拖鞋才能进入的洁净空间,需要保持恒温。操作员站在控制台前,通过一排排指示灯观察机器状态,通过拨动开关和按钮进行控制。
四、编程:面对裸机
机器语言编程
103机没有操作系统,没有汇编器,没有编译器。程序员在纸上写出指令序列后,需要在五单位纸带上手动穿孔,然后交给操作员上机运行。
调试方式
调试程序是物理层面的。如果程序出错,操作员会:
- 从纸带机上读回程序检查是否存在穿孔错误
- 在控制台上单步执行每条指令
- 观察指示灯检查哪一步的结果出错
- 如果怀疑硬件故障,需要逐个测试电子管
五、那些”八一型”之后的故事
研制时间线(据中科院官方资料及公开文献)
| 年份 | 事件 |
|---|---|
| 1952年 | 华罗庚从清华大学物色闵乃大、夏培肃、王传英3位青年学者,组建计算机研究小组 |
| 1956年 | “十二年科学规划”将计算技术列为57项重大科技任务之一,同时与半导体、自动化、无线电电子学并列为”四项紧急措施”;6月,计算所筹备委员会成立,华罗庚任主任 |
| 1956年9月 | 中国派出高级专家考察团赴苏联考察计算机技术 |
| 1957年4月 | 何绍宗作为郭沫若代表访苏,获得M-3图纸资料 |
| 1957年11月 | 计算所在西苑旅社宣布M-3工程组成立,莫根生任组长、张梓昌任副组长 |
| 1958年1月 | 计算所中关村科研楼落成,工程组分设电源、运算器、控制器、磁鼓、输入输出5个小组 |
| 1958年5月31日 | 凌晨2时全部完工,经通铃检查确认连线焊接全部正确 |
| 1958年7月 | 完成调机,比原计划提前5个月 |
| 1958年8月1日 | 八一建军节当天试算成功,宣布中国第一台计算机诞生,命名为八一型计算机 |
| 1959年 | 北京有线电厂开始小批量生产103机 |
| 1960年 | 上海有线电厂投产;研制成功CX-1型磁芯存储器,速度提升至每秒上千次;7-8月因质量不稳定停止对外供应 |
| 1961年 | 质量整顿后通过生产鉴定,改名DJS-1型计算机 |
| 1965年 | 全面升级后通过鉴定,命名DJS-3型计算机 |
| 1966年2月 | 晶体管计算机上马,第一代电子管计算机生产画上句号 |
产量
据中科院官方资料记载,从1958年起103机迭代DJS-1、DJS-3两代,先后生产了40多台,供全国用户单位使用。另据档案资料统计,103系列(含八一型、103型、DJS-1、DJS-3)共计生产49台,其中北京有线电厂生产18台103型,上海有线电厂生产7台DJS-1后续版本,另有6台DJS-3。
沿革命名
| 时期 | 名称 | 说明 |
|---|---|---|
| 1957-1958 | 八一型计算机 | 因8月1日公开演示得名 |
| 1958-1960 | 103型计算机 | 北京有线电厂量产时的型号 |
| 1960-1961 | DJS-1型计算机 | 质量整顿后重新鉴定命名 |
| 1963-1966 | DJS-3型计算机 | 升级版,采用磁芯存储器 |
现存遗物
目前,仅有一台DJS-1型计算机保存于曲阜师范大学图书馆。
后续机型
103机研制成功一年多后,104机(每秒1万次)问世。此后中国计算机发展不断加速:
- 1964年:119机(每秒5万次,首台完全自主设计)
- 1973年:150机(每秒百万次,首台集成电路大型机)
- 1983年:银河一号(每秒亿次,首台巨型机)
六、技术启示
回顾103机的架构,可以得出一些超越时代的启示:
体系结构是永恒的。冯·诺依曼结构虽然在103机上用电子管和磁鼓实现,但其核心思想至今仍是通用计算机的基础。
瓶颈决定速度。103机的运算速度是由磁鼓存储器的访问速度决定的——运算器其实还能更快,但取指令和取数据的速度跟不上。这个”存储墙”问题,在今天的处理器中依然存在,只是表现形式从磁鼓变成了DRAM和缓存层次。
以数量换质量。电子管时代的计算机通过大量半导体二极管弥补电子管逻辑的不足,这种”用冗余换可靠”的思路在早期数字电路设计中非常普遍。
后记
“有了”——张劲夫脱口而出的这两个字,不止是一个历史昵称,更准确反映了那个时代对计算能力的渴求。103机不只是一台机器的型号,它是中国计算机事业的”第一块砖”。
每秒30次。那便是中国计算机时代的起点。
参考文献
[1] 中国科学院. 科技自立自强 中国从此”有了”计算机[N/OL]. 中国科学报, 2024-04-01(4). https://www.cas.cn/zt/kjzt/kjzlzqzl/kjzlzq/202404/t20240401_5010363.shtml
[2] 央视《新中国的第一》节目组. 第一部国产电子计算机[EB/OL]. 共产党员网, 2019-07-29. https://www.12371.cn/2019/07/29/VIDE1564364182596530.shtml
[3] 档案归档计划组. 国产电子计算机:八一型计算机(103型计算机)[EB/OL]. Bilibili, 2024-08-21. https://www.bilibili.com/opus/797537395190792199
[4] Computer-103 Organization. 103计算机硬件电路源码(Verilog)[EB/OL]. GitHub. https://github.com/Computer-103/hardware
[5] Computer-103 Organization. 103计算机模拟器[EB/OL]. GitHub. https://github.com/Computer-103/simulator
[6] Computer-103 Organization. 103机测试程序集[EB/OL]. GitHub. https://github.com/Computer-103/test-program
[7] Computer-103 Organization. 103计算机纸带转换器[EB/OL]. GitHub. https://github.com/Computer-103/tape-converter
[8] 极客逻辑. 也许这是有史以来最清晰的103机的照片了[EB/OL]. (2024-05-05). https://geek-logic.com/photo_of_computer_103/