近日,一位i而来自BBC的软件工程师Daniel Harper 从浅入深,分享了以代码的方式来实现CPU所有功能的可行性,希望对大家了解计算机的内容原理有所帮助。
以下为译文:
几个月前,我突然意识到自己并补真正理解计算机内部的工作原理。我仍然不明白现代计算机具体是怎么工作的。
然而,我读了J.Clark Scott 撰写的一本叫<<But How Do It Know?>> 的书,书中描述了一个简单8位计算机,从与非门(NAND gate) 到寄存器、RAM、CPU、ALU和I/O的细节。
此书使我产生了在代码中实现一个CPU的渴望。
我不知道 L1/L2 cache 是什么,我不知道流水线是什么,我不完全确定我理解Meltdown 和 spectre 漏洞文件。有人告诉我他们正在优化代码以好好利用CPU cache的时候,我也
不太确定X86指令的含义是什么。我不明白人们如何利用GPU或TPU工作。我甚至不知道TPU是个什么东西。我也不知道如何使用SIMD指令。
但所有这些都使建立在你需要的知识基础之上,所以如果只是先看看地图,我就没法最终达到目的地。这意味着要回归基础并从简单的东西开始动手实操。书中描述的“科斯特计算机”很简单。这就是我选择它的原因。
自古英雄出炼狱,从来富贵入凡尘。