0

这个问题实际上与任何编程语言都没有关系,我认为它与那里的每一种编程语言都有关。

因此,开发人员将代码输入到 IDE 或类似的东西中。IDE 直接或间接地(可能涉及许多步骤:A 将其转换为 B 将其转换为 C 将其转换为 D 等)转换为机器语言(这只是一堆数字)。机器语言是如何解释和运行的?我的意思是,代码最终是否必须归结为某种机械的东西,或者它将如何运行?如果芯片运行代码,什么运行芯片?那是什么?那是什么?不停地不停地。

4

1 回答 1

3

它没有什么真正机械的——计算机的工作方式是电气的。

这不是完整的描述 - 这需要一本书。但它是它如何工作的基础。

整个事物的基础是二极管和晶体管。二极管或晶体管是由一块带有一些杂质的硅制成的,这些杂质有时可以导电。二极管仅允许电流沿一个方向流动,而晶体管仅允许电流沿一个方向流动,其数量与“基极”处提供的电量成正比。所以晶体管的作用就像一个开关,但它是用电而不是机械来打开和关闭的。

因此,当计算机从内存中加载一个字节时,它通过为地址地址的每个位打开单独的线来实现,并且内存芯片根据存储在这些地址线指定的位置中的值打开每个数据位的线.

当计算机加载包含指令的字节时,它会通过打开控制 CPU 其他部分的单独线路来解码指令:

如果指令是算术指令,则一根线可以确定哪些寄存器连接到算术逻辑单元 (ALU),而其他线确定 ALU 是加法还是减法,另一根线可以确定它是左移还是不左移。

如果指令是存储,则打开的线是地址线,确定哪个寄存器连接到数据线的线,以及告诉内存存储值的线。

这些单独的电线打开和关闭的方式是通过二极管和晶体管的庞大集合,但是为了使设计电路易于管理,这些二极管和晶体管组被聚集成标准化组件的组:逻辑门,如 AND、OR 和 NOT 门. 这些逻辑门有一根或两根电线进来,一根电线出来,里面有一堆二极管和晶体管。以下是如何连接所有二极管和晶体管以构成或门的电气原理图:http: //www.interfacebus.com/exclusive-or-gate-internal-schematic.png

然后,当您拥有逻辑门的抽象级别时,设计 CPU 将是一项更易于管理的工作。这是一个仅使用一堆逻辑门芯片构建 CPU 的示例:http: //cpuville.com

原来已经有书了!我刚刚找到了一本书(以及附带视频和课程资料的网站),介绍了如何从头开始制作计算机。看看这个: http: //nand2tetris.org/

于 2014-05-12T03:14:26.907 回答