计算机基础方面的知识,对于一些非科班出身的同学来讲,一直是他们心中的痛,而对于科班出身的同学,很多同学在工作之后,也意识到自身所学知识的不足与欠缺,想回头补补基础知识。关于计算机基础的课程很多,内容繁杂,但无论是相关书籍还是大学课程,都有点脱离工作。特别地,计算机基础知识体系庞杂,想要从零学习或者复习都耗时耗力。

有鉴于此,本系列文章将带你更快的补足编程必备基础知识,涵盖计算机领域三大基础知识:计算机组成原理、操作系统、计算机网络,文章选取了作为程序员最应该掌握的那部分知识,取其精华,弃之于程序员不重要的那部分内容。

目的是:

本篇是计算机组成原理之计算机的体系与结构。

历史文章:

更适合程序员的计算机组成原理基础知识:计算机的发展历史

编程必备基础知识之计算机组成原理篇:计算机的分类

欢迎关注、转发、收藏、评论

冯诺依曼体系

冯诺依曼体系,用一句话来概括就是:将程序指令和数据一起存储的计算机设计概念结构。

了解了冯诺依曼体系是怎样诞生的,如果能够理解冯诺依曼体系给计算机领域带来的巨大改变,我们就能明白冯诺依曼体系为什么这么重要了。由冯诺依曼体系所延伸的存储型计算机的概念,改变了之前糟糕的一切,皆由创造一种通用的指令集结构,并将所谓的运算转化为一串程序指令的运行,使整个计算机更有弹性。借助将指令当成一种特殊类型的计算数据,一台存储型的计算机可以轻易地改变其程序,并且在程序的控制下,改变运行的内容,改变的时候不需要重新设计电路,不需要重新改变计算机的结构,这就是冯诺依曼体系所带来的巨大贡献。

由冯诺依曼体系指导完成的计算机包含五大组件:

  1. 存储器:用来存放程序和数据
  2. 控制器:用来控制程序的流转和数据的输入运行,以及处理运算结果
  3. 运算器:主要运行算数运算和逻辑运算,并将中间结果暂存到运算器中
  4. 输入设备:用来将人们熟悉的信息形式转换为机器能够识别的信息形式,常见的有键盘,鼠标等
  5. 输出设备:可以将机器运算结果转换为人们熟悉的信息形式,如打印机输出,显示器输出等

我们现代所有使用的计算机,从本质上讲,都是冯诺依曼机,包括笔记本电脑、台式电脑、普通服务器、迷你计算机等等。由冯诺依曼体系所指导完成的计算机,必须有以下的几点功能:

  1. 能够把需要的程序和数据送至计算机中(由输入设备完成)
  2. 能够长期记忆程序、数据、中间结果及最终运算结果的能力(由存储器完成)
  3. 能够具备算术、逻辑运算和数据传送等数据加工处理的能力(由运算器、控制器完成)
  4. 能够按照要求将处理结果输出给用户(由输出设备完成)

冯诺依曼体系结构示意图:

计算机系统架构与算法(程序员必备计算机组成原理知识)(1)

我们可以看到,存储器和CPU是分开的,这就导致一个问题:CPU和存储器速率之间的问题无法调和。因为CPU是高速运算的,处理速率极快,而存储器没有CPU快,到CPU的数据传输速度慢,这会导致CPU经常空转等待数据传输,这样子是非常浪费资源的。

计算机系统架构与算法(程序员必备计算机组成原理知识)(2)

既然我们都知道了冯诺依曼体系存在的性能瓶颈,那么,如何解决呢?

现代计算机的结构

现代计算机在冯诺依曼体系结构基础上进行了修改,解决了CPU和存储设备之间的性能差异问题。下面是现代计算机的结构示意图:

计算机系统架构与算法(程序员必备计算机组成原理知识)(3)

可以看到,跟前面不一样的是,运算器、控制器和存储器组成了现代计算机的CPU。

存储器,从广义上,可以理解为存储数据的介质,包括磁带和硬盘。但是,这里的存储器主要是指围绕CPU的高速设备,包括寄存器和内存。现代计算机的结构,可以理解为以存储器为核心的结构。

关于存储器,还有很多需要理解的知识,我们会在后续文章里详细介绍。

总结

这一节,我们需要了解冯诺依曼体系的含义和它是如何产生的,还需要了解现代计算机的结构和特点以及它解决了什么问题。

,