我一直坚定地认可一个优秀的计算机从业人员OR编程人员必定会有坚实的计算机理论知识作为支撑,只有将计算机相关原理性知识做到熟悉乃至精通掌握,才可以更加长远的在编程领域发展。鉴于此,本文将会跟随北京大学陆俊林博士一起学习计算机组成相关知识,以便能够帮助像我一样理论知识薄弱但是渴望能够在计算机领域一展才华的“猿类”。课程主要对剖析计算机内部机构与计算机工作原理两部分进行展开介绍以及对相关原理性知识深入讲解。
为了能够牢牢掌握陆老师讲授的相关知识,因此做笔记如下,以便加深自己的理解,因时间有限以及知识所限若有遗漏错误之处,请相关同学能够指出以便能够相互学习相互促进。
课程总相关图谱:
课程一共分为以下九讲:
这一讲从计算机的起源开始,讲述冯.诺依曼等人构建现代计算机的历史,并对照当前新型计算机的具体实现,讲解计算机内部结构的基本原理。为了便于计算机内部结构的抽象过程,通过相关类比分析计算机指令的执行过程从而建立计算机结构的整体概念。
第二讲:指令系统体系结构
这一讲选取了两种典型的体系结构进行对照讲解,一种是X86体系结构,另外一种是MIPS体系结构;首先会介绍这两种体系结构的基本特点和编程模型,然后分析典型的指令格式并结合程序实例进行分析讲解。
第三讲:算术逻辑单元
这一讲会深入到计算机内部电路的基本单元,首先讲解怎样从晶体管构建逻辑门,再分析常见逻辑运算的电路实现,然后重点论述加法器的设计并探讨如何改进加法器以提高性能,已达到掌握简单电路的基本运算原理。
第四讲:乘法器和除法器
这一讲会先后分析乘法与除法的运算过程,设计出适合计算机实现的运算方法。会采用一种动态的方式形象的展示乘法器与除法器的运算过程,以便掌握相对复杂的运算部件,然后通过深入分析这两种运算的特点并对运算过程进行优化。与上一讲一起就可以展现计算机的处理器是如何进行常见的逻辑运算了。
第五讲:单周期处理器
这一讲会设计一个相对简单并完整的处理器。首先会分析指令的功能选择合适的部件,构建出数据通路;然后根据每条指令的需求,确定控制信号的生成电路,从而完成整个处理器的结构。处理器是计算机中最复杂的部件,因此这一讲也是本课程的核心重点内容。
第六讲:流水线处理器
这一讲会展现流水线处理器的基本原理,探讨流水线优化的基本方法,并结合单周期处理器讲解采用流水线处理器时会遇到的问题,并分析不同的解决方案。
从第三讲到第六讲都在讲述计算机的处理器,这四讲组成了一个相对独立的板块。
第七讲:存储层次结构
这一讲会讲解计算机中存储结构的基本概念,并分析存储器对计算机整体性能的影响,然后以内存为一个重点讲解其内部结构和运行过程,并分析影响内存性能的要素。本讲的另一个重点是高速缓存,这里会介绍高速缓存的基本结构和运行原理,同时会结合计算机高速缓存的发展过程,讲述计算机高速缓存的基本作用。
第八讲:中断与异常
这一讲主要分析异常处理的起源,并分析异常与中断这两个概念的区别,然后讲解中断处理的基本过程并以X86体系讲解内部中断的处理方式。
第九讲:输入输出设备
这一讲会先介绍输入输出设备的基本结构和运行过程,然后讲解计算机内部管理输入输出设备的三种主要方式:程序控制方式、中断控制方式、复杂的直接存储器访问方式。本讲完成我们即可构建出计算机的整体逻辑框架。