《自己动手写CPU》书评

写作背景

作为一名WEB工程师,我并非计算机科班出身,但对“软件(机器码)如何控制机器”这一话题非常感兴趣。为了深入了解这个问题,我学习了汇编语言、C语言、计算机组成原理和数字电路基础,并使用Logisim设计了一个CPU。然而,我发现Logisim实现的CPU无法解决我对总线系统和输入输出系统的所有疑惑。尽管如此,我对CPU的理解已经有了很大的提升。

于是,我决定手动实现一个玩具CPU,并找到了这本书。整体来说,它为我提供了很多帮助。

适合读者

本书适合那些对教科书内容不满足的读者,如《计算机组成原理》等相关书籍的学习者。本书可以作为实践参考,帮助读者理解书本上抽象的概念,同时培养动手能力。此外,从事嵌入式开发的朋友也会从本书对处理器的一些介绍中受益。

对于那些对软件领域非常感兴趣且想深入了解硬件/软件协同工作的朋友,本书也是非常适合的。尽管涉及硬件,但不需要你有硬件基础。

需要具备的基础

作为软件领域的一员,我从软件工程师的角度来回答这个问题。

  1. 数字逻辑电路基础
    该部分是可选的。如果你不打算成为硬件工程师,那么不需要掌握硬件部分的知识。如果有时间,可以看看逻辑门、组合逻辑电路、时序逻辑电路和真值表等内容。

  2. 计算机组成原理
    该部分建议具备。了解这些原理有助于更好地指导实践。书中很多内容来源于《计算机组成原理》,没有这方面的知识,书中的内容可能难以理解。

  3. 汇编语言
    该部分是必须的。可以是x86、MIPS、ARM、RISC-V等任意一种。

  4. 工具链
    该部分是可选的。这些工具有很多教程,可以轻松掌握,如Linux基础、GCC工具链和虚拟机等。

书中内容

本书使用Verilog HDL代码实现了一个小型的MIPS 32 CPU + 总线 + 外部设备的物理计算机。认真实践书中的内容,可以让你对计算机的软硬件有一个清晰的认识。相比于其他书籍,如《计算机组成原理》、《CSAPP》、《计算机组成与设计:硬件/软件接口》,本书更具细节和实践性,最终产物是一个真实可运行的物理计算机。

书中的不足

  1. 代码可读性不佳,在命名方面有所欠缺。

我的感受

软件和硬件本质上是相似的,都是调用接口。软件依赖硬件,硬件依赖物理。

近年来,程序员就业形势严峻,尤其是前端和后端领域。很多培训机构开始转向嵌入式行业。然而,无论是前端、后端、人工智能还是嵌入式,都是计算机领域的一部分,都需要深入理解计算机如何工作。

如果你在一个子领域没有深入钻研,转到另一个领域也未必能找到出路。计算机领域的任何方向都有前途,只要你有坚定的目标和深入的探索。

计算机相关领域本质上是工程学、逻辑学、数学和算法的综合。如果选择对自己有利的领域并深耕下去,计算机领域的任何方向都有前途。以下几点尤为重要:

  1. 工程学
    软件架构是最重要的。学会管理、维护和发展一个庞大的有机体是非常关键的。

  2. 数学
    尤其在人工智能领域,数学是最重要的工具。

  3. 算法
    掌握基础的数据结构与算法有助于提升程序性能。快速查找数据在大流量场景中尤为重要。

总之,无论是前端、后端、人工智能还是嵌入式,都是计算机控制的一部分。深耕某一领域才能更好地发挥计算机的潜力。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值