计算机组成原理从第一遍来看,他是讲计算机的各个部件是如何工作的,各个部件之间是怎样协调运行的,所以这里我才感受的了什么是自下而上描绘了整个计算机的蓝图。我是用的王道版的计算机,因为原来看过编码这本书(计算机科普入门向的书),所以对里面的一些知识理解起来还是比较顺畅的。
王道是按照408大纲顺序编制的第一章讲了计算机组成原理的概述,将计算机分成了6大块--------数据的表示与运算,存储器,CPU,指令系统,系统总线,I/O设备。在第一章,也讲了一些计算机的发展过程和历史,同时简略减少了从用户到计算机运算的数据流向,程序语言-----汇编语言-----机器语言,在最后也介绍了计算机的性能指标,如机器字长,吞吐量,时钟周期等,大致讲了一些不全(在后面的章节会出现机器周期,指令周期,总线的时钟周期等各种指标)。
第二章讲的数据的表示,计算机是如何将如汉字,数字,图像(这里是最后一章I/O接口那里会详细的说明)等进行表示的,为什么计算机要用二进制,讲解了各种进制的相互转换,原码,反码,补码,移码的概念和相互之间的转换。之后讲解了二进制的各种表如BCD码二进制去表示十进制,ASCII表示各种符号,和汉字的内码表去如何表示汉字。对于溢出和校检等也做出了讨论和判断方法的介绍。之后和存储结合起来讲了两种数据表示方法,定点数和浮点数。在最后面讲解了如何利用这些数据进行加减乘除运算,其实最后都是通过加法操作实现的,所以后面对加法器进行了讲解,这里其实是对CPU中的ALU进行了讲解(所以在CPU那章并没有介绍ALU)。
第三章是存储系统,先是介绍了存储器的分类RAM和ROM,之后介绍了性能指标。存取时间,存取周期等,它这里多次强调两者的区别(后面3.3半导体那章DRAM的时候才恍然大悟),之后讲解了存储器的层次结构,为后面讲解的内容进行铺垫。讲解了半导体随机存储器的构成和原理,后面讲解了SRAM和DRAM的概念和特殊的性质。之后用半导体的各种信号线进行了读周期和写周期的信号控制和时序图。这里的信号线在下几章的讲解也会用到,因为存储器是要与CPU进行相连的(这里会和总线那章联系,因为是通过总线进行相连的),之后因为链接会设计字,位等不匹配的问题(这里感觉字扩展就是增加存储器的容量),之后介绍了字扩展法,位扩展法,字位扩展法(后面介绍的大多是这个逻辑有点意思,如页式虚拟存储器,段式虚拟存储器,段页式虚拟存储器),也会遇到速度不匹配,所以这里会用到双端口的RAM和多模块的存储器来解决(多模块就第一次出现了流水线的概念,这个感觉在计算机中是一种非常重要的思想,后面章节也会用到并在第五章进行了专门的讲解,这里其实也是用到了指令流水的思想),上面提升的方法是有限的,所以后面用到了Cache和主存的组合来解决这个问题(这里解释了为什么计算机会采用那样的存储器的层级结构)就是讲主存中CPU常访问的内容存放在Cache中,因为Cache离CPU更近,而且速度更快。所以怎么判断是否为常用的,这里就讲解了直接映射,全相联映射和组相联映射。但会出现Cache满了如何替换和数据读写修改的问题,所以分别介绍了先进先出算法,近期最少使用算法。全写法,写回发,写分配法等解决方案。但主存的容量很小,不能满足需要,这里有发明了主存-辅存的结构层次构成了虚拟存储器,介绍了页式存储器,段式存储器和段页式存储器,最后介绍了快表。
第四章讲解的是指令系统,我理解就相当于水一样,结合CPU和存储器构成的水渠,进行流动,并对其进行控制。讲解了指令的构成(第一章略微的介绍了由地址码和操作码构成),这里进行了更细致的分类,零地址指令,一地址指令和二进制指令等。后面介绍了指令的寻址方式,寻找操作数的方法和下一条指令的寻址方法(这里介绍了一种PC+1的方法到第五章讲数据通路的时候我才比较清晰的理解)。最后介绍了CISC和RISC(这里关于硬布线和微程序在第五章才讲)。
第五章CPU,这里真的是难点,可以感受到他是第一次将各个知识去融合起来出题,所以知识杂乱。首先介绍了CPU的组成和各个部件比如指令寄存器(IR),程序计数器(PC),运算器,控制器,之后介绍了指令的执行过程,将指令周期更加细分为机器周期在细分为时钟周期,这里讲解了指令的数据流,对于在各个阶段指令是如何协调CPU,总线,存储器去完成工作的(这里比较绕,但理解还比较容易),在后面讲解了数据通路(这里它讲解了和指令执行过程的区别,我理解的是两个一个是具备,一个是整体),这里王道书只用了2页,但视频课讲解了许多,而且从这里开始CPU真正的难点就出来了,非常的绕。之后讲解了微程序控制器和硬布线控制器讲解了如何进行控制,最后详细介绍了流水线的概念,并讲解了它的性能指标,吞吐率,加速比等。
第六章讲解了总线,主要讲解了系统总线,讲解了总线的结构,总线的性能指标(这里也是非常的容易混淆),总线会在多个设备竞争中存在如何选择的问题就和Cache-主存中块类似,如果选择这里也给出了方法,主要讲解了集中仲裁的三种方式。最后讲解了总线的操作和定时还有总线的标准。
第七章讲I/O设备,一开始我以为很简单了全是记忆的内容,其实这里面也是综合的内容比较多,主要是在I/O控制那一块,之后讲解了I/O接口,讲解了如何和I/O设备如何和主机进行通信,在这之后讲解了I/O的控制方式程序查询方式和DMA方式,这里和CPU那块类似,非常的绕需要去理解和梳理。
整体学下来其实感觉内容并不是很多,但是细节很多,它并没有深入的对各个内容进行讲解,感觉还是整体上对计算机组成和数据的流动这些底层进行了简单讲解。第一轮我是先看一遍王道书,之后看王道的视频,最后做选择题和进行写博客进行回忆。整体下来可以说是学到后面对前面的知识记忆变弱,有遗忘。第一轮对于我的收获是,在知识的理解上没有遗漏并且形成了整体,即使遗忘在反思的时候也能很快回忆起来。至此第一轮的复习结束。