大家好,此篇博客记于2022.10.30,目的是分享今天的学习内容,由于刚刚接触这门课程,如果有什么错误或者有什么表达不清楚的地方,请斧正,谢谢。
目录
概述
我所使用的教材的第一章是计算机系统概论,主要介绍了计算机组成概貌及工作原理。
而本篇笔记的内容是计算机的组成原理是讲什么的,为什么说它是计算机硬件的基础课程。
我们要学习计算机组成原理,就必须知道它是什么。
第一节 计算机的基本组成
我们都知道,计算机不仅仅是只有物理上的硬件,还有一些软件。所谓硬件是指计算机的实体部分,软件是人们事先编制好的程序集合,而软件又分为系统软件和应用软件,他们的区别是前者是用来管理硬件,包括分配系统资源和驱动硬件,后者则是用来拓展计算机的功能的。
第二节 计算机的层次
我们可以根据程序员使用的语言层次来了解计算机系统的层次结构:
2.1实际机器M1与虚拟机器M2
首先,当计算机刚刚出现的时候,程序员使用的是机器语言,也就是01编码,所以据说当时的程序员都随身携带一个本子用来记录一些常用的数字以确保要使用的时候不会忘记。
此时我们使用的是实际机器
但是,这种语言的很复杂,一方面不容易维护,另一方面不容易记忆,再加上当时计算机就只是“计算机”,要使用的语言重复率高,所以一方面使用符号来表示指令或数据的地址,另一方面有人想到使用翻译的方法来将一些常用的机器语言段进行“封装”为类似于ADD,SUB这样的词来提升计算时的工作效率,自从汇编语言诞生。
此时我们使用的是虚拟机器
2.2虚拟机器M3和语言之间的关系
跟着时代的发展,计算机的机型越来越多,他们内部的编码也各不相同,导致像汇编语言这样每一条语句都和机器语言的语句对应的语言在不同的机器上就必须使用不同的版本,再加上计算机已经不满足于是一个只能计算的机器了,它要面临更多的问题了,所以更加符合人类的语言习惯的语言出现了——高级语言,像C++,JAVA等等,他们促进了计算机的发展,而计算机的发展又促进了更高级的语言的诞生,像PYTHON和其他的语言。
所以我们可以看到从机器语言到汇编语言,再到高级语言,他们在现代计算机中之间的关系并不是进化,并不是一种的流行导致另一种的消失,我觉得他们之间更像是不同的语种,机器语言是机器所说的语言,而高级语言,汇编语言是人类所说的语言。所以我们可以使用下图来表示他们之间的关系。
所以,不同的编程语言之间通过翻译(编译器)来完成信息的传递。
从而,我们可以知道基本的结构。
第一级 | 虚拟机器M3 | 高级语言 |
第二级 | 虚拟机器M2 | 汇编语言 |
第三级 | 实际语言M1 | 机器语言 |
这就是早期的计算机结构体系。
但是在计算机的发展上,不仅仅只有向更加易于编辑,还有易于携带,所以向下就层次就有了。
将计算机的机械指令转换微指令来执行
第三级 | 虚拟机器M3 | 高级语言 |
第二级 | 虚拟机器M2 | 汇编语言 |
第一级 | 实际机器M1 | 机器语言 |
第零级 | 微程序机器 | 微指令 |
但是刷过手机或者平板的小伙伴们可能知道,其实我们现在使用的计算机还存在一层体系,就是我们常说的操作系统层次,但是由于我们本书不讲这个所以我就没有将他们放到体系中了
第三节 本书所说的内容
3.1从层次上
这张图可以很明显的看到我们主要讲述的是实际机器和微程序机器
3.2从概念上
从上图可以知道程序员是可以分为硬件程序和软件程序的,那怎么区分呢?
很简单的,抓住程序员对于一些基本操作的理解,比如乘法,加法,如果他是直接调用这个函数或者符号,那他就是软件方向的,就是计算机体系结构方向的,但是如果他认为需要先将被加数放在某个位置,然后将加数加进去,那么他就是软件方向的,就是本书所说的计算机组成原理方向的
记于2022.10.30,与诸君共勉。