阅读量:0
01.计算机组成原理和结构
目录介绍
- 01.计算机底层知识
- 1.1 计算机基础组成
- 1.2 理论和实践相结合
- 02.计算机基本硬件
- 2.1 基本硬件组成
- 2.2 输入和输出设备
- 03.冯·诺依曼体系结构
- 3.1 存储程序计算机
- 3.2 冯·诺依曼描述计算机
- 3.3 抽象计算机框架
- 3.4 冯·诺依曼体系延伸
- 3.5 综合案例理解概念
- 3.6 数据交互层面设计
- 3.7 数据流动层面设计
- 3.8 控制层面设计思想
- 3.9 来看一道练习题
- 04.计算机组成原理
- 4.1 计算机知识地图
- 4.2 计算机基本组成
- 4.3 控制器
- 4.4 存储器
- 4.5 输入设备
- 4.6 输出设备
- 4.7 运算器
- 05.如何学习组成原理
- 5.1 知识体系太大了
- 5.2 如何学习该专栏
01.计算机底层知识
1.1 计算机基础组成
- 计算机是由 CPU、内存、显示器这些设备组成的硬件
- 目前,大部分程序员都是从事各种软件开发工作。显然,在硬件和软件之间需要一座桥梁,而“计算机组成原理”就扮演了这样一个角色,它既隔离了软件和硬件,也提供了让软件无需关心硬件,就能直接操作硬件的接口。
- 只需要对硬件有原理性的理解,就可以信赖硬件的可靠性,用高级语言来写程序。无论是写操作系统和编译器这样的硬核代码,还是写 Web 应用和手机 App 这样的应用层代码,都可以做到心里有底。
- 无论你想要学习计算机的哪一门核心课程,之前都应该先学习一下“计算机组成原理”,这样无论是对计算机的硬件原理,还是软件架构,对计算机方方面面的知识都会有一个全局的了解。
1.2 理论和实践相结合
- 说了这么多计算机组成原理的重要性,但到底该怎么学呢?
- “买书如山倒,读书如抽丝”。从业这么多年,周围想要好好学一学组成原理的工程师不少,但是真的坚持下来学完、学好的却不多。
- 对这些问题,从学习和工作的经验看,找到了三个主要原因。
- 第一,广。组成原理中的概念非常多,每个概念的信息量也非常大。比如想要理解 CPU 中的算术逻辑单元(也就是 ALU)是怎么实现加法的,需要牵涉到如何把整数表示成二进制,还需要了解这些表示背后的电路、逻辑门、CPU 时钟、触发器等知识。
- 第二,深。组成原理中的很多概念,阐述开来就是计算机学科的另外一门核心课程。比如,计算机的指令是怎么从你写的 C、Java 这样的高级语言,变成计算机可以执行的机器码的?如果我们展开并深入讲解这个问题,就会变成《编译原理》这样一门核心课程。
- 第三,学不能致用。学东西是要拿来用的,但因为这门课本身的属性,很多人在学习时,常常沉溺于概念和理论中,无法和自己日常的开发工作联系起来,以此来解决工作中遇到的问题,所以,学习往往没有成就感,就很难有动力坚持下去。
02.计算机基本硬件
2.1 基本硬件组成
- 早年,要自己组装一台计算机,要先有三大件,CPU、内存和主板。
- CPU,它是计算机最重要的核心配件,全名你肯定知道,叫中央处理器(Central Processing Unit)。为什么说 CPU 是“最重要”的呢?因为计算机的所有“计算”都是由 CPU 来进行的。自然,CPU 也是整台计算机中造价最昂贵的部分之一。
- 内存(Memory),你撰写的程序、打开的浏览器、运行的游戏,都要加载到内存里才能运行。程序读取的数据、计算得到的结果,也都要放在内存里。内存越大,能加载的东西自然也就越多。
- 主板,存放在内存里的程序和数据,需要被 CPU 读取,CPU 计算完之后,还要把数据写回到内存。然而 CPU 不能直接插到内存上,反之亦然。于是,就带来了最后一个大件——主板(Motherboard)。
2.2 输入和输出设备
- 有了三大件,只要配上电源供电,计算机差不多就可以跑起来了。但是现在还缺