步步构建计算机的知识体系(一)

141 阅读4分钟

by shihang 学而不思则罔,思而不学则殆

前言

现在绝大部分java程序员all is spring,spring is all,反正就各种框架,这些都是上层的东西,等于空中楼阁,不迟早会塌么。

我们应该像楼房一样,逐层逐层地去打好基础,才能牢固,才能走得更加远。

计算机的起源

图灵机

这里必须提到一个人,计算机之父-艾伦·麦席森·图灵,这位大佬提出了一种抽象的计算模型-图灵机,一直是现代计算机的工作方式。下面是图灵机的模型

图灵机模型

图灵机由下面几个部门组成

  • 最上面的Program指令

  • 中间像小鸟一样的State状态机

  • 最下方的tape纸带

它的工作方式: 在每个时刻,机器头都要从当前纸带上读入一个方格信息,然后结合自己的内部状态查找程序表,根据程序输出信息到纸带方格上,并转换自己的内部状态,然后进行移动

冯诺依曼体系

艾伦·麦席森·图灵提出了计算机的模型图灵机,而另外一位大佬,现代计算机之父-约翰·冯·诺依曼,明确提出了计算机的体系架构,称为冯诺依曼体系结构。它的核心

  • 数字计算机的数制采用2进制

    人类都使用10进制,为什么人类制造的计算机不用10进制呢?
    其实主要原因是进制在物理上容易实现,电子元件一般都具有开关2个状态,并且和数学上的true false相呼应
    
  • 计算机应该按照程序顺序执行,顺序是指程序预先定义好的顺序

  • 由运算器、控制器、存储器、输入输出设备组成

    计算机一开始设计是用来算术计算的,我们来推理一下这几个组成吧
    1. 到此已经有了2进制来代表数据了,那么我们肯定要用数据来计算呀,不然只有数据有什么用呢,对不对?所以就有了运算器
    2. 有了运算器不够呀,那得知道做什么运算,是加减乘除哪一种,所以就有了控制器
    3. 这好像还不够呀,例如1*(2+1),先计算括号内的2+1,这时得到的3需要暂时先存储起来呀,所以有了存储器
    4. 既然是计算机,那么预期就是我给一个式子,你给我一个输出。那我式子总要通过某种方法告诉计算机吧,这就有了输入设备。同理计算机总要有一个方法告诉我计算结果吧,所以有了输出设备
    

计算机的硬件构成

上面提到约翰·冯·诺依曼他明确了计算机的体系架构,那什么是计算机的体系机构呢?这时我们应该去翻翻书看看。我们参考《计算机体系结构精髓》,我们是小白,当然看看第一张基础知识啦

发现这些都是数学+物理呀,果然学好数理化走遍天下都不怕,称为数字逻辑吧。这里写几个重点吧

  • 晶体管-用来造cpu的,这是cpu的核心元件
  • 逻辑门和电路-逻辑门的true false刚好对应2进制,并且根据逻辑门,可以根据条件控制通电断电,通电断电不正代表1和0
  • 布尔代数
  • 还有锁存器等等

这些不正是组成计算机硬件必要的东西和知识吗?即计算机体系结构研究的是组成计算机硬件必要的知识

都说理论指导实践,这句话没错。根据冯诺依曼体系提到的4大组成部分,在计算机硬件中由以下几个对应的部分组成

  • 运算器 + 控制器-CPU
  • 存储器-硬盘和内存
  • 输入输出设备-外部设备

我们不禁又发出疑问,这些硬件如何配合的呢?这不就是与计算机组成原理相关的吗。