计算机基础方面的知识,对于一些非科班出身的同窗来说,一直是他们心中的痛,而对于科班出身的同窗,不少同窗在工做以后,也意识到自身所学知识的不足与欠缺,想回头补补基础知识。关于计算机基础的课程不少,内容繁杂,但不管是相关书籍仍是大学课程,都有点脱离工做。特别地,计算机基础知识体系庞杂,想要从零学习或者复习都耗时耗力。程序员
有鉴于此,本系列文章将带你更快的补足编程必备基础知识,涵盖计算机领域三大基础知识:计算机组成原理、操做系统、计算机网络,文章选取了做为程序员最应该掌握的那部分知识,取其精华,弃之于程序员不重要的那部份内容。编程
目的是:服务器
本篇是计算机组成原理之计算机的体系与结构。网络
欢迎关注、转发、收藏、评论性能
冯诺依曼体系,用一句话来归纳就是:将程序指令和数据一块儿存储的计算机设计概念结构。学习
在前面学习计算机的发展历史的时候,咱们知道,早期的计算机只能运行固定用途的程序,怎么理解?举个例子:有个计算机它只能运行数学运算的程序,那么它就不能运行文字处理的软件,也不能拿来玩游戏,若是要让它可以进行别的功能,就须要改变计算机的程序,而在当时,所谓的重写程序并非指如今的从新编译一个程序那么简单,而是必须更改电路或者说更改结构,甚至从新设计这个机器。操作系统
这样就很坑爹了啊。若是说计算机只能用来打游戏,不能用来写代码,或者说只能用来写代码,不能用来玩游戏,那么咱们就不能先玩一会游戏再写一会代码了,这样子是很是不合理的。因而冯诺依曼就想着将程序存储起来,而后在设计底层硬件的时候,再也不是设计专有的电路,而是设计一个通用电路,当咱们须要运行某种程序的时候,咱们先把这段程序翻译成电路可以理解的语言,而后让通用电路去执行相关的逻辑。计算机网络
这就是冯诺依曼体系的核心概念——存储程序指令,设计通用电路。翻译
了解了冯诺依曼体系是怎样诞生的,若是可以理解冯诺依曼体系给计算机领域带来的巨大改变,咱们就能明白冯诺依曼体系为何这么重要了。由冯诺依曼体系所延伸的存储型计算机的概念,改变了以前糟糕的一切,皆由创造一种通用的指令集结构,并将所谓的运算转化为一串程序指令的运行,使整个计算机更有弹性。借助将指令当成一种特殊类型的计算数据,一台存储型的计算机能够轻易地改变其程序,而且在程序的控制下,改变运行的内容,改变的时候不须要从新设计电路,不须要从新改变计算机的结构,这就是冯诺依曼体系所带来的巨大贡献。设计
由冯诺依曼体系指导完成的计算机包含五大组件:
咱们现代全部使用的计算机,从本质上讲,都是冯诺依曼机,包括笔记本电脑、台式电脑、普通服务器、迷你计算机等等。由冯诺依曼体系所指导完成的计算机,必须有如下的几点功能:
冯诺依曼体系结构示意图:
咱们能够看到,存储器和CPU是分开的,这就致使一个问题:CPU和存储器速率之间的问题没法调和。由于CPU是高速运算的,处理速率极快,而存储器没有CPU快,到CPU的数据传输速度慢,这会致使CPU常常空转等待数据传输,这样子是很是浪费资源的。
既然咱们都知道了冯诺依曼体系存在的性能瓶颈,那么,如何解决呢?
现代计算机在冯诺依曼体系结构基础上进行了修改,解决了CPU和存储设备之间的性能差别问题。下面是现代计算机的结构示意图:
能够看到,跟前面不同的是,运算器、控制器和存储器组成了现代计算机的CPU。
存储器,从广义上,能够理解为存储数据的介质,包括磁带和硬盘。可是,这里的存储器主要是指围绕CPU的高速设备,包括寄存器和内存。现代计算机的结构,能够理解为以存储器为核心的结构。
关于存储器,还有不少须要理解的知识,咱们会在后续文章里详细介绍。
这一节,咱们须要了解冯诺依曼体系的含义和它是如何产生的,还须要了解现代计算机的结构和特色以及它解决了什么问题。