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


13

我想制造最简单的计算机。我不在乎速度或存储,实际上,低速和低存储是一个巨大的优势,因为我想用晶体管(理想的是继电器)来构建它,并且我希望每个状态都有一个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/


只要在Google周围寻找已经做过此事和类似事情的人,那里就有设计,您可以制作BOM并发现您可能需要更多的金钱和时间。
PlasmaHH

我建议,对于一个学校项目来说,达到晶体管级别可能会有点过多。我认为CMOS中小型集成将更可行,并且可能更容易理解(门,寄存器,缓冲区,解码器等)。您可能会包含一些东西,这些东西演示了如何由晶体管制成门,如何由门制成触发器等)。
图坦卡蒙

1
只是一个想法:您应该手工修改(程序)存储器,以便人们可以用手进行“:”编程。
oyvind

首先,确定您希望计算机能够执行的操作。这将确定您需要多少内存以及指令集应该是什么。
Tony Ennis,

谢谢大家 PlasmaHH:是的,在金钱和时间限制下做到这一点是一个巨大的挑战,这就是为什么没有其他人这样做的原因。Tut:我真的很希望能够看到每个信号。然后,人们将看到如何通过晶体管构建逻辑门。oywind:是的,可以通过具有Web界面的Raspberry Pi对其进行编程,您可以编写自己的代码并查看其是否与网络摄像头一起运行。托尼·恩尼斯(Tony Ennis):我想制造一台显示所有信号的最简单的计算机-这将演示所有方面,并需要非标准架构,例如位串行ALU。
托尼·罗宾逊

Answers:


9

有很多人用分立的晶体管,IC,继电器甚至真空管来建造计算机。它们的范围从4位机器一直到32位。当然,这4位将是您构建和执行任何操作的最简单方法。最早的微处理器是英特尔的4位4004

我将首先从Google搜索“ 家用4位计算机 ”(不带引号)开始。

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

在此处输入图片说明

就内存而言,其中一些项目否则会使用分立晶体管“欺骗”并使用SRAM芯片。它们对于适中的内存非常便宜,32KB为3.28美元,不需要时钟,也不需要刷新。

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

如果可以用1K位来获得,则可以用晶体管触发器构建一个。2048 2N3904的价格为每片3美分(合计60美元,加上其他组件甚至更便宜-电阻器为1/2美分等)。您可以以每片10美元的价格获得PCB制造的产品,然后雇用一个孩子将它们塞满。

中继计算机的历史可以追溯到1930年代后期,最早的计算机之一是哈佛MarkI。这就是哈佛架构名称的来源(与合并两者的冯·诺依曼架构相比,程序空间和数据是分开的)。

最著名的家用中继计算机是哈里·波特(Harry Porter)制造的一台计算机

在此处输入图片说明

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

这是另一台称为Zusie的家用中继计算机的一部分

在此处输入图片说明

许多闪烁的灯。

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


抱歉,“我已经研究了很多年”被埋在第二段中。我已经对帖子的标题进行了编辑,以明确表明它是我关心的内存。如果可以用1K的位数获得成功,则可以用晶体管触发器构建一个。2048 2N3904的价格为每片3美分(合计60美元,加上其他组件甚至更便宜-电阻器为1/2美分等)。您可以以每片10美元的价格获得PCB制造的产品,然后雇用一个孩子来填充它们。
托尼·罗宾逊

ctd ...这比我想像的要近,但是您确实需要地址解码,并且每个存储单元需要放置更多的晶体管。在预算范围内,也许一个晶体管一个电容器的“ DRAM”存储单元也是可能的。
托尼·罗宾逊

@TonyRobinson我确实尝试解决了内存的isuse问题(正如您所承认的那样),但我也试图提供有关您希望使用分立的晶体管和/或继电器制造计算机的信息,并举例说明在此方面已经取得了成功。祝您工作顺利。
tcrosley

6

如果您想要简单的内存,那么别无所求。使用两个晶体管和四个电阻器,您可以拥有一整块内存。您还可以制作一个带有两个交叉耦合的或非门的触发器,或者只购买已经装有一堆触发器的IC。

实际上,非常快的CPU缓存基本上是一堆集成在CPU中的触发器。


2
由于DRAM需要不断刷新,因此DRAM耗电更多,而SRAM空闲时仅使用很小的静态电流。之所以使用电容器是因为它只需要每位一个晶体管,因此允许更高的存储密度。
汤姆·卡彭特

您是对的-我想到的是简单的RTL触发器。我将进行澄清。
Phil Frost

1
IC没了-它们隐藏了实际发生的情况。我希望每个信号都尽可能暴露。我真的不在乎电源-我看不到电源是一个问题,它将连接到Raspberry Pi,因此电源可用。一个晶体管DRAM可能比我之前提到的电容器想法要好得多-我必须弄清楚需要什么晶体管以保持足够低的电荷泄漏(我需要刷新时间)分钟的顺序)。否则,触发器看起来是下一个最好的主意。
托尼·罗宾逊

@TonyRobinson“它将被连接到Raspberry Pi,因此电源可用。” - ...也许。取决于Raspberry Pi可用的最大功率,以及您打算使用哪个逻辑系列。(不过,我希望普通的台式PSU能够提供更多的功率)
user253751'1

2

我同意,拥有一个完整的计算机系统以及一个人眼可以看到的每一个状态的LED指示灯,将非常酷。

所述TIM 8中继计算机使用8个电容器,2个二极管,并在其12个字节RAM的主存储器(数据存储器)的每一个字节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 s /(12 V-7 V)= 200 uF。)

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


1

为什么不只使用简单的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


尽管如今我们将其称为“ W65C02S
Ignacio Vazquez-Abrams

谢谢,我来自6502天(BBC micro但我也在ZX80上工作)。我同意在该级别上有很多东西要学习,的确,我只是在重新阅读《BBC微型计算机高级用户指南》。我真的很想成为下一个层次,您会看到一条5位指令,它会跳过一小组微代码,这些微代码设置了一些寄存器和总线,并调用了一些串行ALU,以便您可以看到所有逻辑一点一点地发生。这就是为什么它将是有史以来最慢的。
托尼·罗宾逊

是的,那会比较慢。您是否查看过以下URL的详细信息: instructionables.com/id/How-to-Build-an-8-Bit-Computer/? ALLSTEPS实际上非常好,并且可以对系统进行一些独特的自定义。
DIYser

0

我同意,拥有一个完整的计算机系统,每一个状态的LED都可以被人眼看见,而不是隐藏在一个神秘的黑匣子中,这非常酷。

您可能会考虑使用或多或少的标准位并行内存总线-可能类似于STEbus(IEEE-1000总线)之类的东西 。

您可能会考虑使用诸如74HC273或74LS373或74HC564之类的IC来存储数据,因此芯片内部数据的当前状态在连接到并行输出引脚的LED上始终可见。然后,使用也连接到这些并行输出引脚的八进制三态缓冲器(例如74HC241或74LS245)或多路复用器将数据集中到总线中。您最终得到了N分之一的解码器芯片和每8位存储2个芯片。“这允许您...查看哪些数据实际存储在RAM的每个字节中。” - 傍盖伊的SAP-1的简单与分立元件RAM可能的计算机Jaromir的Fourbit CPU中的寄存器或Kyle的8位spaghetti CPU中的寄存器使用相同的设置。

Mouser.com当前(2016年)的价格为这种安排(每8位一个八进制存储锁存器和一个八进制3状态缓冲器)每10位数约为0.11美元/位,而数量为500的新LED约为0.05美元/位。 2 ^ 9字节= 512字节= 2 ^ 12位= 4096位,即(非常粗略)

  • LED 205美元
  • 450美元的存储和缓冲芯片
  • $ ??? N个解码器芯片中的1个选择合适的存储或缓冲芯片;电路板,电线,人工等的成本

也许您可以花费大约90美元(大约150美元== 100英镑的预算)构建(非常粗略)64字节的数据存储器(与Atmel ATTINY13或Microchip PIC16F570相同的数据存储器容量)。

您会看到为什么要用现成的32Kx8并行SRAM芯片替换所有这些存储和缓冲芯片以及大多数解码器芯片的诱人原因,而您只需不到10美元就可以拥有更多的存储空间。(联盟AS6C1008-55PCN,赛普拉斯CY7C199CN-15PXC等)

这可能就是为什么大多数自制CPU,从微型 Nibbler 4位CPU 到令人印象深刻的RC​​-3中继计算机 http://www.computerculture.org/2012/09/rc-3-relay-computer/ http://的原因/www.computerculture.org/projects/rc3/ 已连接到用于主存储器的黑盒SRAM芯片。

使用类似标准内存总线的设备,也许您可​​以同时将多个不同的内存板连接到CPU:

  • 几个字节的完全可见的变量存储空间,以及几个字节的完全可见的硬连线程序ROM,对于一些有趣的演示程序而言,它们应该足够了。
  • 当您尚未构建足够完整的可见内存来存储程序或数据时,有时可以插入SRAM芯片以存储程序或数据。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.