我多年来一直是计算机迷。我可以使用多种语言进行编程,甚至可以构建它们。前几天我和一个伙伴坐在一起,问一台计算机实际上是如何取电并用它来做点什么的,而我们只是想不通,谷歌也帮不上什么忙。
我的意思是,计算机如何持续吸收电流并将其变成1和0,然后实际上对那些1和0进行处理,例如打开灯15秒钟?
我了解门(AND,OR,NOR,NAND,NOT)以及有关二极管,电阻器和晶体管的一些知识,但是我认为这是用真正的外行术语解释的理想场所!
有人能指出我正确的方向还是给我一个简短的解释?
我多年来一直是计算机迷。我可以使用多种语言进行编程,甚至可以构建它们。前几天我和一个伙伴坐在一起,问一台计算机实际上是如何取电并用它来做点什么的,而我们只是想不通,谷歌也帮不上什么忙。
我的意思是,计算机如何持续吸收电流并将其变成1和0,然后实际上对那些1和0进行处理,例如打开灯15秒钟?
我了解门(AND,OR,NOR,NAND,NOT)以及有关二极管,电阻器和晶体管的一些知识,但是我认为这是用真正的外行术语解释的理想场所!
有人能指出我正确的方向还是给我一个简短的解释?
Answers:
这是一个广泛的问题,没有一个简单的答案。从电子沿着铜线飞跃到在Firefox中创建网站还有很长的路要走。我将尝试从下到上为您提供概述,并向您指出要查找的正确内容。
基本动机是像在做算术一样¹计算事物。首先要看的是如何表示数字。有很多方法,使用十进制或三进制,我认为甚至是八进制,但最终,二进制胜出了。现在我们知道我们必须构建处理两个值的设备-我们将它们称为和。
请注意,还有多种将数字编码为二进制的方法。组装第一个处理器后,您就会意识到以某些方式做事的优势。流行的例子是2补码和IEEE浮点数。对于初学者,请将自己限制为简单的自然数。
假设我们使用二进制编码。想一想您在小学时如何学习加法,并写下二进制数字。事实证明,布尔代数的构建基块已经为您服务;使用逻辑门构建基本加法器(和其他算术函数)很容易。
如何建立这种门不在计算机科学的范围之内。电子工程使用例如管或晶体管提供了多种解决方案。有关此问题,请前往电气工程堆栈交换。
并非所有的门都具有同样快的速度,并且并非计算的所有部分都具有相同数量的门。因此,我们必须格外小心,以确保各个操作都不会相互超越。实践证明,使用全局时钟很有用;给定的门网络的结果是循环结束时输出线的状态(当门级联至其各自的最终状态时,其状态可能会发生巨大变化)。
这意味着可能必须存储一个周期的结果,直到下一个周期开始为止,例如,如果您连接了回路。您可以使用许多基本元素来产生不同的效果,所有这些基本元素都是由门构成的。有些被称为触发器。它们也用于构建寄存器,这些元素存储所需数量的时钟周期的数字。
现在您有无数的设计选择。您的处理器提供哪些算术运算?您的命令是什么样的?看看与其他设计相比,早期形式更容易的MIPS架构可能具有教育意义。看一下计划:
原始来自http://ube.ege.edu.tr/~erciyes/CENG311
本质上,它是在获取和分解命令,一组寄存器,一个ALU和控件。命令对在哪个操作数上执行哪个ALU操作进行编码(通过它们所保存的寄存器的编号),如何操作程序计数器²或要从内存中加载/存储的寄存器³。
到现在为止,假设您已经弄清楚了如何构建内存以及提供命令的方法,那么您将拥有现代意义上的工作处理器。在走向现代机器的过程中,必须做出许多选择。这里有一些:
上面的内容在很大程度上受历史的影响。在拥有不同思想的不同世界中,计算机的工作方式可能有所不同。实际上,有许多计算模型,其中一些模型具有许多优点,可以使它们在许多情况下作为对真实机器的抽象有用。还尝试模仿大脑的工作方式,即启用神经计算,或更广泛地利用自然界中观察到的问题解决和信息存储策略,最主要的是DNA和量子计算。
因此,也许(希望如此)上面的信息是距现在还有50或100年的全部古代历史。
现在播客安全!从基本原理开始,进行了一系列有关计算机工作方式的文章。
数字上的差距是因为其他所有情节都是“听众反馈”情节,因此您可能也想观看这些情节。同样在241到247之间,由于当时有关国家强迫CA向其提供根证书的最新消息,他们做了几集有关SSL的文章。
还有EP。248是“便携式狗杀手”,它不会杀死狗,而是史蒂夫小时候独自制造的声波武器,以帮助教邻居的狗不要上栅栏线并试图攻击人行道上的人。
计算机通过以一致的,定义的方式操纵能量梯度(然后将其解释为1和0)来工作。定义计算机的是一致性,而分离不同处理器的是定义。
另外,了解仅两个逻辑门(OR和AND)如何足以构成任何通用计算机。另请参阅Danny Hillis和Tinkertoy计算机。
计算机是大型的同步逻辑系统,这意味着
的信息由两个电电压表示和布尔操作由晶体管(形成数字电路)来实现。
只要计算机通电(大量内存),它就有专门的电路来保留信息。它具有执行二进制算术的专用电路(实际上,这些位以组的形式处理-通常以8的倍数-共同表示一个整数)。它具有基于内存地址的专门路由功能,而内存地址不过是整数。
最后但并非最不重要的一点是,现代计算机还具有一个程序,该程序也存储在RAM中,该程序是一列编码为整数的指令的列表,该程序按顺序执行,通常从内存中获取数据,执行一些算术并将结果发送回内存。
在您的方案中,可以想到一种实现,其中将经过时间存储在RAM中的某个位置,并且程序指示
请注意,如今所有这些元素都达到了高度的复杂性,在这个非常简短的概述中的每个句子都应得到几本解释书。
有几种方法可以执行延迟功能或将二进制数据转换为十进制数据或信号强度。输入值“ 15”时,计算机将在屏幕上显示数字15的位图图像。这实际上是二进制值,此刻您的键盘二进制代码也已发送到cpu。它将解析数据,然后将代码转换为ALU(算术逻辑单元)处理单元,将其转换为脉冲后再转换为DAC芯片。现在,模拟信号正在控制触发器电路的频率(从khz到hz的频率)。现在,频率输出将定向到RAM,如果数据为“ 1111”,则CPU读取RAM以匹配。这就是4秒。