上一篇链接:每天两小时学习计算机组成原理——一个学期的第一天,希望能坚持长久✨
下一篇链接:每天两小时学习计算机组成原理——一个学期的第七八九天,希望能坚持长久(第三章直接完结篇)✨
接着进行
那其实前几天都在忙编译原理还有我们的其他课程,所以将我们的计原给冷落了。那不成,怎么说也要雨露匀沾才是,所以今天从现在17:15开始到我晚上睡觉之前的时间都给我们的计原了。
计算机的基本组成
那这一部分一上来,老师就开始普及计算机历史,你要说他讲的好吧,他在这不着重点,但你要说他讲的不好吧,人家能够侃侃而谈。后来我发现我错的离谱啊,老师的那个斜眼看屏幕的小眼神给我看笑了。
冯·诺依曼计算机特点
那废话多说,我们进行正文,那提前给大家说,这一部分可以参考书上的P8页,都有。
这一部分理解就好。
但是我们说一下这种计算机有什么问题。
那冯诺依曼计算机是以运算器为核心运转的,所有的输入输出必须要经过运算器,那运算器本身的工作是很多,很烦忙的。算术,逻辑运算甚至运算结果都暂存到运算器中。
现代计算机硬件框图
那随着这样的问题困扰着程序员,我们就想法子将计算机的结构进行迭代改善。
第一步改进,以存储器为核心,那这个图的层次结构不够明显,我们接着改进一下:
那我们就可以以层次化的结构去表示我们计算机的硬件框图:
那这种类似树状的结构呢,还是不够明显,所以我们可以将其变得更加模块化一些:
那其实这个层次化的模块图还有些部分我们没有展开,比如在我们主存在与CPU进行数据传输前我们有一个高速缓存的部分,而在我们整个主机进行数据的输入输出时,我们首先会有一个接口来连接:
那最后我们自己再进一步给各个部件一个名词:
之后还有一个应对系统复杂性的方法:
了解。
那前面我们已经简单的了解计算机系统的硬件框图,下面,我们通过在计算机上解决问题的方式,让那个计算机去执行一个程序的方式,我们对上面的框图进行细化。
就是计算机在执行一个程序或者解释一条指令的过程当中,到底需要哪些功能,需要解决哪些功能,根据问题,对框图进行细化。
进行一个小总结:
那我们接下来的主要内容就是对红线部分进行分析。
计算机工作步骤
那这一部分我们书上也讲的可详细。不再多说。
上机前准备
这有一个书上的例子:
那我们如果要用指令代码的形式去表述一下:那这是我的笔记,大家可以结合上面的步骤参考理解一下。
那在这里向大家推荐一个B站上的:王道计算机考研 计算机组成原理,那这个视频呢是面向考研大军的。虽然里面的教材与我们使用的教材不一样,但是内容都是类似的内容,无伤大雅,不影响大家的学习。那我这边是去看了几集之后,如果大家时间充裕,那我觉得我们其实可以再学习完我们这边的教学后去那里再去刷相应的视频加深印象一下,毕竟这是考研的必修课,那面对的是考研的学长学姐们,所以里面内容呢也是比较简单易懂的,而且里面的总结性知识更多,实例也比较这边而言要丰富那下面那就是这边对应的一个栗子。
那我们用如下的一段C语言程序来举例:
int a=2,b=3,c=1,y=0;
void main(){
y = a*b+c;
}
那么这段高级语言代码将会编译成类似这样的机器语言代码:
那我们在进行对这个实例的进一步分析之前,我们首先需要对其涉及到的知识点进行一步一步的分析。
计算机的解题过程
我们首先来看一下细化后的计算机组成框图:
存储器
- 基本组成
存储体:可以存放二进制数据,数据在存储体内按地址存储
MAR:存储地址寄存器
MDR:存储数据寄存器
- 读数据基本流程:CPU告诉MAR数据的地址,在主存储体中寻找该地址,并把数据传递给MDR
- 写数据基本流程:CPU告诉MAR想写到的地址,给MDR要写的数据。CPU通过控制总线告诉主存储器操作为写入。