这些微控制器套件通常是 4 位或 8 位,可用于编写简单的游戏。然而,这台机器是一台被称为“世界顶级低性能计算机”的“1位机”,所以这个游戏有点“难”。
焊接完成
背面
对于某个CPU应该调用多少位有多种思考方式,但是在这个套件中,通用寄存器(A寄存器)是1位x 1,地址总线宽度决定了可以处理的内存容量也是 1 位,并且随着处理的进行而加载目标,推进地址的程序计数器也是 1 位。
输出是一个LED,显示A寄存器的二进制信息,并且由于有两种方式:开或关,所以这也是1位。
1位的地址总线宽度意味着只有两个地址,0和1,也就是说只能写入两行程序。由于有两个地址,因此 1 位程序计数器就足够了,这是一个令人惊奇(但自然)的规范。
另一方面,一个地址(字)的大小为1位,不能同时表示操作码(指令)和后面的操作数(数字或地址),因此保留2位。
导致这款CPU性能低下的另一个因素是它的时钟频率为1Hz。由于它是“1Hz”而不是 1GHz 或 1MHz,因此该周期每秒进行一次。就连被誉为计算机鼻祖的“ENIAC”,据说也能在200μs内完成1次加法运算,光是这套套件的速度就快了5000倍。
开始编程
这台机器是用机器语言编程的,但只有两条指令:“ADD(加法)”和“JMP(跳转)”。在每个之后,写入 ADD 命令要添加的数字(0 或 1),或者 JMP 写入要跳转到的地址(0 或 1)。
使用DIP开关设置指令和数据,这成为程序。ADD 指令在机器语言中为 0(关闭),JMP 指令在机器语言中为 1(打开)。该DIP开关是一个ROM,并且由于有四个开关,因此“ROM容量= 4位”。
程序由DIP开关设置
由于指令很少,数据也只是一位二进制数,所以只能做“一位二进制数相加”和“Lticker”(LED闪烁),如说明书上所说。
一位二进制数的加法是使用助记符(一种更易于人类阅读的机器语言形式)完成的。
(第一行是“地址0”,第二行是“地址1”)。此时拨码开关设置为OFF/ON/ON/ON。当您按下复位按钮并执行时,关闭的 A 寄存器 LED(红色)将在下一个时钟点亮。这意味着“0+1=1”已经计算出来了。“JMP 1”表示停留在地址1,表示处理结束。
当执行0+1时,A寄存器中的红色LED亮起,所以答案是1。
接着,继续
所以 DIP 开关是关/开/开/关。由于地址0处加1,寄存器A的LED点亮。下面的地址1表示“返回地址0”,因此A寄存器加1。这是一个二进制数,表示“1+1=10”,但由于要相加的部分只能处理 1 位,因此进位被忽略并变为 0。然后又加1,于是就变成了L勾。
这个“忽略进位的一位二进制数相加”就变成了“0+0=0”、“0+1=1”、“1+0=1”、“1+1=0”,逻辑门“异或” (异或)本身。如果您实际查看电路图,您会发现它由使用四个与非门的异或门组成。
因此,简单来说,这款CPU可以称为“获得异或的设备”(或者不带进位功能的半加器)。
74HC74芯片是一个D型触发器,有两个电路,每个电路用来保存A寄存器和程序计数器的值。这也可以从电路图中读出。
电路图
顺便说一句,这个CPU似乎被设计为自动返回到地址0并循环,除非您在地址1(第2行)处指定停止(JMP 1)。该程序 -
(关/开/关/开),A寄存器中加1的速度是之前L代码程序的两倍,因此A寄存器中的LED也继续以两倍的速度闪烁。
为什么大家对1位CPU如此感兴趣
这款1位CPU虽然以低性能计算机为卖点,但它同时也是计算机发展历史的一个见证。它没有现代微控制器的复杂功能,如标志寄存器或堆栈指针,但它是一个有趣的教育工具,可以让用户体验计算机的基本原理。
尽管与流行的单板计算机如Raspberry Pi 5相比,1位 CPU 组裝套件的规格微不足道,但它可以激发人们对微控制器和计算机逻辑的兴趣。对于一些创客和DIY爱好者来说,具有无限的吸引力。它为学习者提供了一个了解CPU原理和逻辑电路的好机会,并且是一个有趣的挑战,可以边学习边尝试解读电路图,
期待未来有更多类似的探索性产品出现,推动计算机技术的进步和革新。