电脑很容易。 还是不行
任何对信息技术感兴趣的人,至少都会想到计算机的实际工作原理。 的确,借助计算机,您可以做很多令人惊讶的事情,以至于无法相信里面发生的一切都是数字的加法。
为什么不自己做呢?
查尔斯·佩佐尔德(Charles Petzold)的著作
《代码》 (
Code )中清楚地看到了这一想法,对于那些想花很多时间却不用手指来理解计算机设备的人来说,这是一本好书。 这本书给我留下了深刻的印象,以至于我决定计算机是一个完全简单的单元,没有什么复杂的东西。
但是事实并非如此。 看完书后,我仍然感到有些隐瞒,对建筑的某些方面完全没有影响。 有关更多信息,我转向了下一本书,
Andrew Tanenbaum撰写的
Computer Architecture 。 本书中的信息要广泛得多,但是我并没有得到我想要的。
在此过程中,我在计算机体系结构领域中的道路停止了,研究开始了,当时我对当时对我而言更有趣的其他项目分散了注意力。 但是,不幸的是,我是无法不悔改而无法使用任何东西的人之一,至少不了解此工具的机制。 它使我寻找有关所有内容的材料。
在阅读了几章有关游戏引擎,编译器,操作系统等的书籍后,一系列的失望都来了。我只是茫然无措:此刻看起来逻辑合理且简单的世界变得庞大而混乱,需要大量的知识。
伟大旅程的开始
令我吃惊的是,某个论坛上的一位用户对一个遭受类似“疾病”困扰的人的回复。对于他来说,IT领域似乎是如此庞大,以至于无法理解。 我记得这些话,每当我遇到新事物时,它们都会帮助我。 每个IT新手都应该说
“不要让自己不知所措” 。
然后我开始以崭新的活力上网搜索文学。 我很幸运地偶然发现了精彩的《
计算系统元素》一书
。 Noam Nisan和Shimon Schocken (没有俄语版)
根据“第一原理构建现代计算机” 。 它是为像我这样的人而设计的,它从头开始,即从逻辑门开始,展示了真正有效的计算机。
我有了一个主意,开始工作。 他从阅读Petzold之后的工作开始-加法器,寄存器,多路复用器。 这些是一些最简单的设备,其工作一点也不难理解(如果不考虑效率的话),您可以在智能手机上方便的应用程序中在10分钟内完成操作。
在下一章中,我从对知识的渴望开始。 根据书中的任务设计ALU。 我不能说我想出了一些东西,而是他们给了我完成的零件,然后我将它们组装在一辆漂亮的汽车中。 但是,当我意识到用自己的双手组装了一个可以正常工作的ALU时,我感到非常荣幸。
初果
随后是一个完全可用的16位处理器,我今天完成了它。 我的幸福没有极限,但我不会停止。 令我遗憾的是,尽管本书中的整个处理器都是从头开始完全组装的,但对于它的汇编器却是下一章的抽象(这是合乎逻辑的,本书的设计或多或少是为了简洁,尽管是详尽的说明)。 经过一番悲伤之后,我意识到汇编语言也是一种编程语言,从头创建一个完整的汇编语言将花费很多时间。
关于书中的汇编器实际上,本书中的这个主题并未被完全省略。 它说可以使用任何高级编程语言编写汇编程序。 作为一个白痴和勇敢的人,此选项不太适合我,我想使用我拥有的处理器用自己的双手完成一切。 是的,我知道我会浪费很多时间,但是我肯定会喜欢的。
编写汇编程序是一个宏伟的目标,但这不是唯一的困难。 我选择的道路一定很困难。 BOOLR程序中的寄存器和常规存储器只能使用逻辑门来实现。 为什么这是一个问题? 这很简单:不重要的1024个字节的RAM数十次尝试将其复合16位寄存器放入我的计算机的RAM中。 结果如下:

一般而言,有时由于缺少RAM而无法打开项目。 它看起来像是一个死胡同,但我不想停在那里。