最简单计算机的内存(Pi0K)

电器工程 晶体管 数字逻辑 成分 记忆 中央处理器
2022-02-02 08:15:01

我想构建最简单的计算机。我不关心速度或存储,确实速度慢和存储低是一个巨大的优势,因为我想用晶体管(最好是继电器!)构建它,并且我想要每个状态的 LED。它将通过 Raspberry Pi 进行编程,该 Raspberry Pi 将托管一个摄像头,以便您可以看到每个时钟周期的执行情况(是的,它将以 Hz 而非 GHz 运行)。这将是一个开放式设计,目的是让学校可以购买零件、理解和改进设计。因此,总预算必须远低于 400 英镑,最好是 100 英镑左右。

我已经研究了很多年,并且对 CPU 有很好的想法(最小的寄存器、DIP 开关中的微码和位串行逻辑/算术运算以减少晶体管数量)。我不知道如何获得内存,我想要 1024 到 8096 位。

我能想到的最好的方法是两个 6 位 n 之一的解码器,可以访问 64 x 64 的电容器网格。他们要么有责任,要么没有,阅读会加强这种状态。电容器上将没有 LED,因为此“DRAM”的刷新将按顺序或几分钟进行(这很遗憾,因为这将是唯一不显示状态的部分)。

其他想法包括某种形式的磁带驱动器(紧凑的盒式磁带机制:存储空间大,太复杂,没有搜索),鼓记忆(豆罐周围的磁带:太难让机械工作),机械记忆(自行车车轮和滚珠轴承:位错误太多),核心内存(大型硬铁氧体磁芯:要达到所需的规模仍然非常棘手),磁带/卡(我们仍然可以购买磁带阅读器吗),带有二进制冲孔的旋转磁盘和一些磁性用于存储的内存(太复杂而无法构建)。

最终目标是发布一个可以在一个学年构建的设计,其中 CPU 和内存的所有部分都是“可见的”,因此您可以看到指令获取、解码为微码以及地址解码/寄存器访问/逻辑所有在几分钟内发生。

如果有人对真正便宜的内存(<<100 英镑)有想法,并且很清楚它是如何工作的,那么请告诉我。

托尼

PS 当前播放状态在http://www.blinkingcomputer.org/

4个回答

有很多人用分立的晶体管、IC、继电器甚至真空管构建了计算机。它们的范围从 4 位机器一直到 32 位。当然,4-bitters 将是您可以构建和做任何事情的最简单的。第一个微处理器是英特尔的 4 位4004

我会首先在 Google 上搜索“自制 4 位计算机”(不带引号)。

这是来自晶体管化 4 位计算机的电路板:

在此处输入图像描述

就内存而言,其中一些使用分立晶体管的项目“作弊”并使用 SRAM 芯片。对于中等数量的内存,它们非常便宜,32KB是 3.28 美元,不需要时钟,也不需要刷新。

即使您计算机的其余部分使用继电器,将它们用于内存也会非常昂贵。

如果您可以使用 1K 位,您可以使用晶体管触发器构建一个;2048 个 2N3904 的成本为每个 3 美分(总共 60 美元,加上其他更便宜的组件——电阻为 1/2 美分等)。你可以以每块 10 美元的价格制造 PCB,然后雇一个孩子来填充它们。

中继计算机可以追溯到 1930 年代后期,最早的计算机之一是哈佛 Mark I。这就是哈佛架构这个名字的由来(独立的程序空间和数据,与结合了两者的冯诺依曼架构相比)。

最著名的自制中继计算机是由 Harry Porter 制造的。

在此处输入图像描述

查看计算机运行的视频。让我想起了一个旧的机电电话交换机。

这是另一台名为Zusie的自制中继计算机的一部分:

在此处输入图像描述

很多闪烁的灯光。

最后,这是一个 4 位加法器视频的链接,它由 24 个继电器组成。像这样的加法器是计算机中 ALU(算术逻辑单元)的核心。

如果你想要简单的记忆,那就看看触发器吧。使用两个晶体管和四个电阻,您可以拥有大量内存。你也可以制作一个带有两个交叉耦合或非门的触发器,或者只是购买一个已经有一堆触发器的 IC。

事实上,速度非常快的CPU 缓存基本上就是一堆触发器,集成到 CPU 中。

我同意如果有一个完整的计算机系统,每个状态都有一个 LED,人眼可见,这将是非常酷的。

TIM 8 继电器计算机在其12 字节 RAM 主存储器(数据存储器)中每个字节使用 8 个电容器、2 个二极管和一个 SPDT 继电器。(如果包含寄存器,TIM 8 有 16 字节的可变存储器)。

TIM 8 中继计算机使用穿孔带作为其程序存储器。

在此处输入图像描述

在此处输入图像描述

是否可以用 LED 代替这些二极管,所以会有一个简短的脉冲显示数据进出 RAM 的一个字节?也许如果系统的 DRAM 刷新速度足够快,扫描 RAM 的每个字节,那么这些 LED 上的每一位状态似乎都是可见的(尽管从技术上讲,任何一个瞬间都只会激活一个字节的 LED)。(如果我们想从这些电容器加载和存储数据到基于继电器的寄存器,那些必须是相当大电流的 LED)。

是否可以在每个位存储电容器上放置一个电阻器和一个 LED,真正同时显示每个位状态?(如果我们希望电容器将数据保持足够长的时间以获得合理的刷新率,那么这些必须是电流非常低的 LED 和物理上大的电容器。一些 LED 只需 1 mA 的电流就可以很容易地看到。刷新 1 秒循环和(估计)电容器最初充电至 12 V,即使(估计)电容器上的 7 V 电荷足以为下游硬件充电,则电容器需要额定 C ~= i*t/V = 1 mA * 1 秒 / (12 V - 7 V) = 200 uF。)。

当然,这将比几乎任何基于集成电路的主存储器都要大得多,并且需要更多的人力来组装。

为什么不使用简单的 8 位 CPU(例如 6502)和非常少量的内存(CPU 寄存器、IC RAM 和非常少量的外部存储(例如:FD、HD 或闪存盘等) .) & 然后用幻灯片解释以下内容:

  1. 硬件组件、子组件及其功能
  2. 操作系统、系统程序和用户程序
  3. 加载和执行一个简单的程序,将两个数字相加,将结果存储在每种类型的内存中,并将其显示在视频显示器上。

如果您想让设备尽可能简单且便宜,请使用微控制器开发系统作为您的基本系统,甚至 Arduino 也足够简单且便宜。没有一个学生会建造一个简单的继电器或真空管计算机——也不应该有人真的希望他们这样做。他们应该从一本好书和一个 Arduino 开始,以基本了解编程。稍后,如果他们想进入阅读/控制外部设备,他们可以深入研究特定的编程或工程。

这是一个供您考虑的好项目:http:
//www.instructables.com/id/How-to-Build-an-8-Bit-Computer/?ALLSTEPS