IBM 1401
设计师 | IBM |
---|---|
位元 | 6位加上单词标记和平等 |
引入 | 1959 |
设计 | CISC |
类型 | 内存内存 |
编码 | 多变的 |
分枝 | 带有修饰符字符的分支指令 |
伊尼亚语 | 大的 |
寄存器 | |
3索引,在内存中,可选 |
IBM 1401是IBM于1959年10月5日宣布的可变字数十进制计算机。非常成功的IBM 1400系列成员,旨在替换用于处理打孔卡上存储并提供的单位记录设备大型计算机的外围服务。 1401被认为是计算机行业的福特T型T ,因为它是大量生产的,并且由于其销量。在用新技术取代后,生产了超过12,000个单位,许多单位被租赁或转售。 1401年于1971年2月8日撤回。
历史
1401项目是从名为World Wide会计机器(WWAM)的IBM项目演变而来的,这反过来反应了Bull Gamma 3的成功。
1401与IBM打孔器设备一起用作独立系统。它也被用作IBM 700或7000系列系统的辅助设备。
1401张配置的每月租金起价为2,500美元(今天价值约25,100美元)。需求超出了预期。
“ IBM令人惊喜(也许很震惊)在最初的五个星期内收到5200次订单,这比机器一生所预测的要多!”到1961年末,在美国安装的2000年大约是所有制造商所有电子存储计算机的四分之一。在1960年代中期,安装1401的数量达到了10,000以上的峰值。 “总的来说,到1960年代中期,世界上所有计算机系统中几乎是1401型系统。”该系统销售至1971年2月。
1401通常被小型企业用作其主要数据处理机,也经常用作大型计算机的离线外围控制器。例如,在此类安装中,使用IBM 7090 ,大型机计算机仅使用磁带进行输入输出。正是1401将输入数据从慢速外围设备(例如IBM 1402卡读取突击)传输到磁带,并将输出数据从磁带传输到卡卡, IBM 1403打印机或其他外围设备。这使大型机的吞吐量不受读卡器或打印机的速度的限制。 (有关更多信息,请参见船上。)一些以后的安装(例如,在NASA)将1401作为前端外围控制器(在直接耦合系统(DCS)中)作为IBM 7094的前端外围控制器。
IBM中的要素,尤其是负责1401部部署的高管约翰·哈斯特拉(John Haanstra )支持其在更大的不断发展需求模型中的延续(例如, IBM 1410 ),但是1964年在最高的决定将资源集中在系统/360上的决定结束了这些努力突然。
IBM面临着Honeywell 200的竞争威胁,以及360年与1401设计的不兼容。 IBM以ROM的形式率先使用了Microcode仿真的使用,因此某些System/360模型可以运行1401个程序。
由于其受欢迎程度和大规模生产,IBM 1401通常被认为是在各个国家中引入的第一台电子大型计算机,例如新加坡(1963年;对于中央公积金委员会)和韩国(1967年;对于1967年;对于The The The The The经济计划委员会)。在1970年代,IBM在印度和巴基斯坦安装了许多1401,直到1980年代就使用了。
在加利福尼亚山景城的计算机历史博物馆中,已经恢复了两个1401系统的操作订单。
建筑学
1401中的每个字母数字都用六个位,称为B,A,8,4,2,1 。 B,A位称为区域位, 8,4,2,1位称为数字位,从IBM 80柱打孔卡中获取的术语。
- 对于数字1到9,位b,a为零,数字BCD用位8,4,2,1编码。数字0编码8,2 。
- 对于字母字符,钻头的设置源自IBM 80柱打孔卡字符代码的区域和数字拳, b,a从12 , b , 11和a从0 ; BCD编码1到9个打孔的BCD编码的位置为8,4,2,1 。因此,在打孔卡字符代码中的字母A( 12,1)编码为b,a,1 。
- 在字符和操作代码表中可以找到带有两个或多个数字打孔的打孔卡字符的编码。
IBM称为1401的字符代码BCD(“二进制编码的十进制”),即使该术语仅描述了十进制数字编码。 1401的字母数字整理序列与打孔卡整理序列兼容。
与每个内存位置相关的还有其他两个位,称为奇数奇偶校验检查和单词标记的m 。 M存在于内存中,但不在打孔卡上,必须使用特殊的机器说明设置;打印内存时,通常通过强调角色来显示。 C是自动计算的,并且在打孔卡上也不存在。
然后,每个内存位置都有以下位:
CBA 8 4 2 1 M
1401可提供六种内存配置:1,400、2,000、4,000、8,000、12,000或16,000个字符。每个字符都是可寻址的,地址范围从0到15999。根据特殊要求将非常少数的1401个字符扩展到32,000个字符。
一些操作使用特定的内存位置(这些位置未保留,可以用于其他目的)。读取一张卡存储从卡中的80列数据存储到存储位置001–080。索引寄存器1、2和3分别在内存位置087-089、092-094和097-099。打孔卡将存储位置的内容打孔101-180的内容。编写一条线印刷内存位置的内容201–332。
1401的指令格式是
Opcode with [A-or-I-or-unit-address [B-address]] [modifier] word mark
opcodes是一个字符。内存地址(“ I”分支目标,A”和“ B”数据),单位地址为三个字符。 OpCode修饰符是一个字符。说明长度为1、2、4、5、7或8个字符。大多数说明必须遵循一个单词标记(通常由单词标记所满足的要求,并在下一个指令的opcode上满足)。
有关操作列表,请参见字符和OP代码。
指令中的三个字符内存地址是五位数内存地址的编码。五位地址的三个低阶数字,即000至999,由三个字符的数字位指定。高阶角色的区域位指定一个增量,如下所示: A 1000, B 2000, B和A在一起3000,可通话为4,000个存储位置。低阶角色的区域位指定为4000、8000或12000的增量,以解决16,000个存储位置(带有IBM 1406存储单元)。例如,三个字符的地址“ i99”是对内存位置3000 + 999或3999的引用。
三个字符内存地址的中间字符的区域位可以指定三个索引寄存器之一,这是许多可选功能之一。
A-Address和B地址引用的操作数可以是:单个存储位置,可变长度字段或可变长度记录。可变长度字段在其低阶(最高)位置上解决,其长度由在其高阶(最低)位置设置的单词标记定义。当执行诸如添加的操作时,处理器将从两个字段的低阶位置开始,并正常运行到高阶,就像一个人在用铅笔和纸时一样。
此类字段长度的唯一限制是可用内存。适用于可变长度字段的说明包括:添加,减去,乘,分隔,比较,将字符移动到A或B单词标记,移动字符和编辑。一个或多个相邻的可变长度字段可以构成可变长度记录。可变长度记录在其高阶位置上解决,其长度由具有单词标记或记录标记字符的组标记定义。指令移动字符记录或组标记可用于组装记录块。将写入磁带的可变长度记录或记录块以其高阶位置解决,其长度由群体标记字符定义,其低阶位置后立即具有单词标记。
使用上一个操作中剩余的地址,可以将相邻字段上的一系列操作“链接”。例如,相邻数据字段的添加可能被编码为A 700,850
,A 695,845
,A 690,840
。通过链接,可以将其编码为A 700,850
,A
,A
- 从第二和第三说明中省略数据地址。
IBM 1401G
IBM 1401G以六种型号出售:(G1和G11:1,400存储位置; G2和G12的2,000; G3和G13,售价为4,000)。 1401和1401G之间的一个区别是如何控制读取器弹跳。
引导和样本程序
当按下1402卡上的“加载”按钮时,将卡读取到存储位置001-080时,将单词标记设置为lotation 001,以表明它是可执行指令,位于位置的单词标记002-080 (如果有)被清除,执行始于位置001的指令。那始终是二元组设置标记,以在以下两个单词(指令)上设置单词标记。单个单词标记指令可以设置两个单词标记,但需要一个单词标记才能自身,因此需要这些指令的顺序,该序列在程序的代码或数据中逐步设置单词标记,并为后续设置设置单词标记单词标记说明。卡中的执行指令继续,设置单词标记,将程序加载到内存中,然后分支到程序的起始地址。要读取后续卡,请明确读取命令(opcode1
)必须作为每张卡上的最后一个指令执行,以将新卡的内容输入001–080的位置。请注意,执行读取命令时,单词标记不会被删除,而是保留下一张卡片的标记。这很方便,因为前几张卡的大部分内容都是在适当的位置设置单词标记;在上半场左右的单词标记设置左右意味着程序员无需再次设置这些单词标记。
可以为各种任务编写单卡程序。通常可用的是一个单卡程序,可以打印出其纸牌的甲板,另一个是将甲板复制到卡拳的情况下。请参阅汤姆·范·弗莱克(Tom van Vleck)的网站。这是一个单卡程序,将打印“ Hello,World!”。按负载(上)读取一张卡,然后在001开始执行(第一个,
)。假设第一个,该程序将自动设置自己的文字标记,
已经有一个文字标记了。
,036008,040015,044022,051029,052053/299/332L0652132.HELLO, WORLD!
按照常规的IBM表示法,下划线显示程序运行后的内存中设置单词标记的位置;在打孔卡上,它们不会在直觉上或打孔数据中显示。
该程序是:
- 设置字标记(opcode
,
操作数036 008)。这必须始终是第一个指令,并且其操作数之一必须始终是008,否则下一个指令将没有一个单词标记来表明它是可执行的指令。 - 附加的单词标记s。下划线显示完成所有单词后的单词在哪里
,
opcodes。该程序的“胆量”只需要从036和进一步的单词标记;直到029的单词标记仅需要设置单词标记说明。由于该程序的核心需要六个单词标记,因此总共需要五个单词标记指令。需要少少的原因是因为最终设置的单词标记不需要在其他设置的单词标记上浪费操作数 - 清除存储- 打印区域的其余部分299-200(opcode
/
操作数299) - 清除存储- 打印区域的一部分332-300(opcode
/
操作数332) - 移动
HELLO, WORLD!
到打印区域(opcodeL
,操作数065和213。由于位置052中的单词标记,移动停止(进行双重工作也定义了停止和分支指令的末端)) - 在打印机上写一行(opcode
2
; “你好世界!”将在最左侧的13个打印机位置上打印) - 停止(opcode
.
)
硬件实现
1401的大多数逻辑电路都是一种二极管 - 晶体管逻辑(DTL),IBM称为CTDL(互补的晶体管二极管逻辑) 。其他IBM电路类型被称为:合金(某些逻辑,但主要是以使用的也使用的属晶型合金晶体管命名的各种非逻辑函数), CTRL (互补的晶体管电阻逻辑,一种电阻器-晶体管逻辑(RTL)) 。后来升级(例如,Tau-9磁带接口)使用“漂移”晶体管(1953年Herbert Kreemer在1953年发明的晶体管)使用更快的DTL,以便其速度,IBM称为SDTDL(饱和的漂移晶体管二极管逻辑) 。这些电路的典型逻辑水平为(S&U水平)高:0 V至-0.5V,低:-6 V至-12 V; (T级)高:6 V至1 V,低:-5.5 V至-6V。
这些电路由安装在单面纸 - 环氧印刷电路板上的离散组件(电阻,电容器,晶体管)构建或5.375 x 4.5英寸(136.5 x 114.3毫米),带有两个16针镀金的边缘连接器(双宽),IBM称为SMS卡(标准模块化系统)。一张卡上的逻辑量与一个7400系列SSI或更简单的MSI软件包中的逻辑量(例如,三到五个逻辑门或单个宽卡上的触发器上的几个拖鞋,最高约二十个逻辑门 - 在双宽卡上触发)。
SMS卡被插入铰链式摆放架上的插座,IBM称为大门。
与以前的单位录制设备相比,使用的模块相当细腻,因此IBM将它们封闭在新发明的包装材料Bubble Wrap中。这是此包装的首次广泛使用之一。它给接受者留下了深刻的印象,并为材料带来了极大的宣传。
像当天的大多数机器一样,1401使用磁核存储器。芯的直径约为1毫米,并使用四线排列(X,Y,Sense和抑制)。内存在每个核心的平面上排列,每个核心存储一个位。八个这样的飞机组成的堆栈存储了4000个存储位置的六个数据位,单词标记位和奇偶校验位。加上八架其他核心较少的飞机以用于其他存储功能,这组成了一个4000个字符的存储器模块。一个这样的模块位于1401的主要外壳中。系统通常可以使用两个,三个或四个这样的模块。附加模块包含在一个附加盒中,即1406核心存储单元,该单元约2英尺平方,高三英尺。
记忆中的操作数串行访问,一次是一个内存位置,1401可以在11.5微秒的基本周期时间内读取或写入一个内存位置。
所有指令时间均以此周期时间的倍数为单位。
IBM 1403打印机
IBM 1403打印机于1959年10月推出了1401数据处理系统。打印机是一个全新的开发项目。
软体
1401的IBM软件包括:
- 1401符号编程系统组装程序。
- 磁带上的自动编码器,一个更高级的汇编器,至少需要4000个字符的内存和四个磁带驱动器。
- 磁盘上的自动编码器类似于但与磁带上的自动编码器相似但与不兼容,至少需要一个1311磁盘驱动器。
- COBOL至少需要4000个字符的内存和四个磁带驱动器。
- RPG的前身FARGO (14-O-ONE自动报告生成操作)至少需要4000个字符的内存。
- Fortran II至少需要8000个字符的内存; 1401 FORTRAN编译器在下面的Haines,LH(1965)中描述。 Fortran编译器为了生成小记忆的代码,使用了解释的“ P代码”的开创性形式,尽管其程序员对其所做的没有任何名称。
- Fortran IV至少需要12000个字符的内存以及四个磁带驱动器或至少一个IBM 1311磁盘驱动器。
- RPG (报告程序生成器);基本RPG至少需要4000个字符的内存。
有关1401软件的IBM目录,请参见IBM 1400系列。
字符和操作代码
1401的操作代码是单个字符。在许多情况下,特别是对于更常见的说明,所选的字符是操作的助记符:a for ad ad,b for branch,s for Smintract等。
该表以字符整理序列。
- 注意:如果设置了单词标记位,则C位将与显示的相反。 C位是由机器自动确定并自动检查的 - 通常,程序员不关心。可以输入C位的唯一方法是手动使用辅助控制台上的开关。程序员可能会在调试时使用这些开关来快速补丁。
BCD字符 | print-a | 打印h | 卡片 | BCD 口碑营销 | 手术 | 定义和注释 |
---|---|---|---|---|---|---|
空白的 | C | |||||
. | . | . | 12-3-8 | BA8 21 | 停 | |
⌑ | ⌑ | ) | 12-4-8 | CBA84 | 清晰的单词标记 | 菱形 |
[ | 12-5-8 | BA84 1 | ||||
< | 12-6-8 | BA842 | 少于 | |||
12-7-8 | CBA8421 | 组标记 | ||||
和 | 和 | + | 12 | CBA | ||
$ | $ | $ | 11-3-8 | CB 8 21 | ||
* | * | * | 11-4-8 | B 84 | ||
] | 11-5-8 | CB 84 1 | ||||
; | 11-6-8 | CB 842 | ||||
Δ | 11-7-8 | B 8421 | 增量(模式更改) | |||
- | - | - | 11 | B | ||
/ | / | / | 0-1 | C A 1 | 清除存储 | |
, | , | , | 0-3-8 | C A8 21 | 设置字标记 | |
% | % | ( | 0-4-8 | A84 | 划分 | 可选的特殊功能。 |
ˠ | 0-5-8 | C A84 1 | 单词分离器 | |||
\ | 0-6-8 | C A842 | 左倾斜 | |||
⧻ | 0-7-8 | A8421 | 磁带段标记 | |||
ƀ | ‡ | ‡ | N/A。 0 | A | 如果没有无成本的RPQ ,就无法从卡中读取,在这种情况下,它将读为8-2。 打孔为零(或带有RPQ的8–2)。胶带上的“偶数”空白。 | |
# | # | = | 3-8 | 8 21 | 修改地址 | 可选(需要超过 4000个字符的内存) |
@ | @ | ' | 4-8 | C 84 | 乘 | 可选的特殊功能。 |
: | 5-8 | 84 1 | ||||
> | 6-8 | 842 | 比...更棒 | |||
√ | 7-8 | C 8421 | 胶带标记 | |||
? | 和 | 和 | 12-0 | CBA8 2 | 零并添加 | 加上零 |
A | A | A | 12-1 | BA 1 | 添加 | |
B | B | B | 12-2 | BA 2 | 指示器上的分支或分支 | 请参阅“指示器上的五个字符分支(b)指令的修饰符”部分 |
C | C | C | 12-3 | CBA 21 | 比较 | |
D | D | D | 12-4 | BA 4 | 移动数值 | (位元) |
E | E | E | 12-5 | CBA 4 1 | 移动角色并编辑 | |
F | F | F | 12-6 | CBA 42 | 控制马车 | (印表机) |
G | G | G | 12-7 | BA 421 | ||
H | H | H | 12-8 | BA8 | 存储B地址寄存器 | 可选的特殊功能。 |
I | I | I | 12-9 | CBA8 1 | ||
! | - | - | 11-0 | B 8 2 | 零和减 | 负零 |
J | J | J | 11-1 | CB 1 | ||
K | K | K | 11-2 | CB 2 | 选择Stacker和其他设备控件 | 请参阅“选择堆栈器(K)指令的修饰符”部分 |
L | L | L | 11-3 | B 21 | 将字符加载到单词标记 | |
M | M | M | 11-4 | CB 4 | 将字符移至单词标记 | |
N | N | N | 11-5 | B 4 1 | 没有操作 | |
O | O | O | 11-6 | B 42 | ||
P | P | P | 11-7 | CB 421 | 将字符移至 记录或组标记 | 可选的特殊功能。 |
Q | Q | Q | 11-8 | CB 8 | 存储A-Address寄存器 | 可选的特殊功能。 |
R | R | R | 11-9 | B 8 1 | ||
‡ | ‡ | ‡ | 0-2-8 | A8 2 | 记录标记 | |
S | S | S | 0-2 | C A 2 | 减去 | |
T | T | T | 0-3 | A 21 | 翻译 | (仅1460年) |
U | U | U | 0-4 | C A 4 | 控制单元 | (磁带) |
V | V | V | 0-5 | A 4 1 | 分支如果单词标记 和/或区域 | |
W | W | W | 0-6 | A 42 | 分支如果有点相等 | 可选的特殊功能。 |
X | X | X | 0-7 | C A 421 | 移动和插入零 | 可选的特殊功能。 |
Y | Y | Y | 0-8 | C A8 | 移动区域 | (位元) |
Z | Z | Z | 0-9 | A8 1 | 移动字符和 抑制零 | |
0 | 0 | 0 | 0 | C 8 2 | ||
1 | 1 | 1 | 1 | 1 | 阅读一张卡 | |
2 | 2 | 2 | 2 | 2 | 写一行 | |
3 | 3 | 3 | 3 | C 21 | 写和阅读 | |
4 | 4 | 4 | 4 | 4 | 打一张卡 | |
5 | 5 | 5 | 5 | C 4 1 | 阅读和打孔 | |
6 | 6 | 6 | 6 | C 42 | 写和拳 | |
7 | 7 | 7 | 7 | 421 | 写,阅读和打孔 | |
8 | 8 | 8 | 8 | 8 | 开始阅读feed | 可选的特殊功能。 |
9 | 9 | 9 | 9 | C 8 1 | 开始打孔 | 可选的特殊功能。 |
其中两个说明,指示器(b)和Select Stacker(k)上的分支,使用“修饰符”操作数。
指示器上的五个字符分支的修饰符(b)指令B OpCode如果后面是三个字符的操作数,则是指示地址的简单无条件分支。如果存在第四个操作数字(包括OpCode在内的总计五个字符),则使其成为条件分支。此“修饰符”字符指定了要测试的条件。
| 选择堆栈器(K)指令的修饰符Select Stacker(K)指令将命令发送到各种设备。它以与1402读者/拳打相关的命名。
|
1401文化
2006年10月,冰岛前卫音乐家JóhannJóhannsson通过音乐出版商4AD发行了专辑IBM 1401,这是用户手册。这个概念是基于1964年的工作,他的父亲是该国最早的计算机之一的首席维护工程师JóhannGunnarsson和该国最早的程序员之一ElíasDaviðsson 。这张专辑最初是为弦乐四重奏,风琴和电子产品而写的,并伴随着长期合作者朋友Ernaómarsdóttir的舞蹈作品。对于专辑录制,Jóhann将其重写为六十件式的弦乐管弦乐队,添加了新的最终动作,并结合了他父亲阁楼中发现的1401唱歌的电子产品和复古卷轴录音。
更知名的是各种演示程序,这些节目节目在CPU和计算机“ Art”上播放音乐,其中主要是使用XS和0s在链条打印机上打印的奇特图片。 IBM 1401是1971年在尼泊尔引入的第一台计算机。当时,尼泊尔的人口约为10,000,000。其他程序将使用打印机打印特定的组/字符序列来生成音乐,并使用打印机锤子生成音调的影响。
基于卡车的便携式版本
1960年配置为军事用途的基于卡车的IBM 1401被指定为一台便携式计算机,并被暱称为Datamobile。