从1834年直到1871年去世,查尔斯·巴贝奇(Charles Babbage)一直致力于分析机的设计与实现。虽然分析机最后没有真正实现,但它似乎是一种既可行又完整的计算机体系结构。分析机旨在提供一种通用的可编程计算设备,它完全是机械式的,大部分部件由黄铜制造,使用蒸汽机来驱动传动轴工作。分析机借鉴了提花织机的穿孔卡片、音乐盒中的旋转圆筒,以及他早期设计的差分机(在他有生之年并没有完全实现,与计算机相比,差分机更像是一种专门的计算器),否则,分析机就完全是巴贝奇的原创。与现代计算机采用二进制数不同,分析机采用带符号的十进制数,这是机械技术与数字电子技术最大的不同之处。建造有10个位置的机械轮很简单,因此巴贝奇选择了人类易于理解的以10为基数的计数格式,这在技术上并不困难。另外,简单的数字电路无法像机械轮那样轻易地保持十种不同的状态。
在分析机中,所有数字都是40位十进制数。使用如此多的数位可能是为了减少数值溢出的问题。分析机不支持浮点计算。在分析机中,每个数字存储在共有40个轮子的垂直轴上,每个轮子能够停在与数字0~9相对应的10个位置。第41个数字轮子上有一个符号:该轮子上的任意偶数代表一个正号,任意奇数代表一个负号。分析机的轴在某种程度上类似于现代处理器中使用的寄存器,不同之处在于轴的读出是破坏性的。如果需要在读取一个轴之后仍保留该轴的值,则必须使用另一个轴来存储该值的副本。通过与每个数字轮啮合一个齿轮,然后旋转轮子读出数值,可以实现将数字从一个轴传送到另一个轴,或者在计算中使用。用作系统内存的轴统称为存储(store)。
两个数字相加的过程有点类似于教给小学生的加法。假设一个存储在轴上的加数要与另一个轴上的被加数(也称为累加器)相加。机器通过一串齿轮将每个加数的数字轮连接到相应的被加数的数字轮。然后将每个加数向下旋转到零,同时驱动累加器数字沿递增的方向进行等效旋转。如果累加器的数字从9回转到0,则累加器的下一个数位将递增1。该进位操作可能需要在多个数位间传播(考虑将1加到999999)。该过程结束时,加数轴将保持在数值0,被加数轴将保持两个数字的和。从一个数字到下一个数字的进位传播是加法过程中机械上最复杂的部分。分析机中的操作由音乐盒状的旋转桶在构件磨机(mill)中进行顺序处理,该构件类似于现代CPU中的处理组件。每条分析机指令都在圆桶的垂直位置上进行编码,特定位置的螺柱如果存在,则与机械的某一部分接合,不存在则该部分的状态保持不变。根据巴贝奇的设想,包含进位传播在内,两个40位数字相加大约需要3秒。巴贝奇为分析机提出了几个至今仍有意义的重要概念。他的设计支持一定程度的并行处理,从而加速了一系列输出为数字表的数值计算。加法等数学运算支持流水线形式,在该流水线中,对不同数据的顺序运算在时间上重叠。
巴贝奇很清楚机械设备的复杂性,为了防止摩擦、齿轮齿隙和随着时间的推移出现的磨损等效应引起的错误,分析机在跨轴的数据传输过程中采用了“锁定”机制。该机制强制使数字轮进入有效位置,并防止累积误差使轮子漂移到不正确的值。锁定的使用类似于现代处理器中的数字逻辑门对潜在的弱输入信号进行放大以产生更强的输出。分析机使用穿孔卡片进行编程,并支持分支操作和嵌套循环。分析机最复杂的程序由Ada Lovelace开发,用于计算伯努利数。巴贝奇制造了分析机样机的一部分试验模型,该模型现在收藏于伦敦的科学博物馆。