我是一名软件开发人员(使用高级语言,如 .NET、C、C++ 等),试图了解计算机如何在较低级别工作。
我对这张图很熟悉:
我正在尝试深入了解链接中的图表如何映射到这样的电路图:
例如,看一下汇编语言语句:
ADD 1,2
我试图了解处理器如何产生“3”作为输出。我意识到这个问题可能很难简单地回答。如果是这样,那么一个链接会有所帮助,也许是一本书。
我是一名软件开发人员(使用高级语言,如 .NET、C、C++ 等),试图了解计算机如何在较低级别工作。
我对这张图很熟悉:
我正在尝试深入了解链接中的图表如何映射到这样的电路图:
例如,看一下汇编语言语句:
ADD 1,2
我试图了解处理器如何产生“3”作为输出。我意识到这个问题可能很难简单地回答。如果是这样,那么一个链接会有所帮助,也许是一本书。
问题是,为了了解计算机如何达到 1 + 2 = 3,您必须了解比您已经了解的更深的 2 个级别。
从最高抽象层次到最物理现实,大致像这样组织计算机(就研究领域而言):
要正确理解为什么计算机可以产生 2+1 = 3,您必须首先确定您愿意“相信”接受什么,以及在您将其内化之前您不会相信什么。那条信息将在你所理解的事物之下的第二层。因此,如果您想在逻辑级别了解加法器电路,您将需要了解“数字”晶体管(特别是 CMOS)的基础知识。
以您之前的站点为例,请考虑此资源。它讨论了“全加器”——最小的完全通用电路,能够进行加法/减法,包括进位和进位。
您还需要了解数字在2 的补码(现代计算机中用于整数运算的数字系统)中的表示方式。
如果你真的想要一门世界级的入门课程,我不能高度推荐佐治亚理工学院的 Scott Wills 教授。他去年因癌症去世,但他的课程仍在继续。佐治亚理工学院 ECE2030(计算机工程导论)课程的教科书和练习全部在线。
祝你好运!
我必须在大学学习同样的内容,我们使用了 非常详细的《计算机组织与设计》一书(但可能对您的需求来说太详细了)。
Patterson 和Hennesy 使用了一些“简单”的MIPS 处理器,并用Assembler 中的一些示例代码展示了CPU 的全部功能。
一般来说,我认为采用一些“简单”处理器(Arduino 左右)并尝试在那里理解该功能是一个好主意,因为从那个到更复杂的差异更多的是实现的指令代码有多大。
PS也许谷歌代码的基本微处理器会有所帮助。它是一个用 Java 模拟的微处理器。
Roger Young的免费书籍How Computers Work - Processor and Main Memory将回答您的问题,它使用继电器而不是晶体管来更好地理解。
我在这里找到了答案。它是对数字相加过程的高级概述。