恭喜各位,我把本文内容制作成了md格式和word格式,方便考研学子使用。如需下载请点击md格式下载或word格式下载
个人觉得:《计算机组成原理》这门课,应该设置为大学公共必修课(起码理工科)!
学这门课之前,小编在学习ARM架构,结果越看越迷糊,就果断转入这门课程的学习!
免责声明:本文参考的文章有:《王道计算机组成原理》学习笔记总目录+思维导图;B站视频:2019 王道考研 计算机组成原理;配套教材是《2021年计算机组成原理考研复习指导(王道论坛版)》[如需要这本书,请自己想办法获取],还用了《2020版计算机组成原理·高分笔记·周伟主编》;如果您是考研:请点击跳转知乎经验贴,了解408
本文食用说明:对于考研学子,说真的,建议学完一遍计组,再做题,因为王道这本书里面习题编排的不是很严谨!(前面很多题目,到后面章节才可以找到答案!)。本文的章节序号完全按照《2021年计算机组成原理考研复习指导(王道论坛版)》记录的,与视频有点出入!
计算机组成原理比较经典的书籍有:
唐朔飞的《计算机组成原理》、《计算机组成原理——学习指导与习题解答》白中英的《计算机组成原理》李春葆的《计算机组成原理联考辅导教程》 第一章 计算机系统概述
本章是组成原理的概述,考查时易针对有关概念或性能指标出选择题,也可能综合后续章节的内容出有关性能分析的综合题。掌握本章的基本概念,是学好后续章节的基础。部分知识点在初学时理解不深刻也无须担忧,相信随着后续章节的学习,一定会有更为深入的理解。本章中读者要重点掌握各个性能指标的计算,这部分内容在历年真题中出现的频率很高。
学习本章时,请读者思考以下问题:
1)计算机由哪几部分组成?以哪部分为中心?2)主频高的CPU一定比主频低的CPU快吗?为什么?3)翻译程序、汇编程序、编译程序、解释程序有什么差别?各自的特性是什么?4)不同级别的语言编写的程序有什么区别?哪种语言编写的程序能被硬件直接执行?请读者在学习本章的过程中寻找答案,本章末尾会给出参考答案。
1.1 计算机发展历程 1.1.1 计算机硬件的发展计算机系统=硬件+软件
计算机硬件的发展:
第一代计算机:(使用电子管),第二代计算机:(使用晶体管),第三代计算机:(使用较小规模的集成),第四代计算机:(使用较大规模的集成),已经经历了4代,计算机的速度越来越快,并且体积变得越来越小。 发展趋势:更微型、多用途;更巨型、超高速
晶体管之父:肖克利(1956年诺贝尔物理学奖得主) 1957年,"八叛徒"创立了仙童半导体 1959年,仙童半导体发明了“集成电路” 1968年,摩尔离开仙童,创立intel 1969年,仙童销售部负责人桑德斯离开仙童,创立AMD
摩尔定律,集成电路上的晶体管数量每18月就会翻一翻,所以每18月计算机的处理效率就会提高一倍。
1.1.2 计算机软件的发展计算机软件技术的发展,促进计算机系统的发展。
计算机语言的发展经历了面向机器的机器语言和汇编语言、面向问题的高级语言。其中高级语言的发展真正促进了软件的发展,它经历了从科学计算和工程计算的 FORTRAN、结构化程序设计的 PASCAL到面向对象的C++和适应网络环境的Ja。
同时,直接影响计算机系统性能提升的各种系统软件也有了长足的发展,特别是操作系统,如 Windows、UNIX、 Linux等。
1.1.3 计算机的分类与发展方向可以分为:
电子模拟计算机和电子数字计算机。数字计算机又可以按照用途分为:
专用计算机和通用计算机通用计算机又分为:巨型机、大型机、中型机、小型机、微型机和单片机6类。按照指令和数据流可以分为:
单指令流和单数据流系统(SISD),即传统的冯·诺依曼体系结构。单指令流和多数据流系统(SIMD),包括阵列处理器和向量处理器系统。多指令流和单数据流系统(MISD),这种计算机实际上不存在。多指令流和多数据流系统(MIMD),包括多处理器和计算机系统。 1.2 计算机系统层次结构 1.2.1计算机系统的组成计算机系统由硬件系统和软件系统共同构建起来
1.2.2 计算机硬件的基本组成 1.早期的冯·诺依曼机美籍匈牙利科学家冯·诺依曼最先提出“程序存储”的思想,并成功将其运用在计算机的设计之中,根据这一原理制造的计算机被称为冯·诺依曼结构计算机。由于他对现代计算机技术的突出贡献,因此冯·诺依曼又被称为“现代计算机之父”。 什么是存储程序原理?按此原理,计算机应具有哪几大功能? “程序存储”:指令以代码的形式事先输入到计算机的主存储器中,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。即按地址访问并顺序执行指令 计算机按照此原理应具有5大功能:数据传送功能、数据存储功能、数据处理功能、操作控制功能、操作判断功能
冯诺曼体系结构特点: 计算机硬件系统由五大部件组成(存储器、运算器、控制器、输出设备、输入设备)指令和数据以同等地位存于存储器,可按地址寻访指令和数据用二进制表示指令由操作码和地址码组成存储程序以运算器为中心早期的冯·诺依曼机以运算器为中心,且是单处理机,最根本的特征是采用“存储程序”原理,基本工作方式是控制流驱动方式!


主机:主存、运算器、控制器
五大部分:
输入设备,是指将外部信息以计算机能读懂的方式输入进来,如键盘,鼠标等
输出设备,就是将计算机处理的信息以人所能接受的方式输出出来,比如显示屏,打印机。
存储器,存储器分为 主存储器(内存储器,CPU能直接访问)和 辅助存储器(外存储器,协助主存储器记忆更多的信息,辅助存储器的信息需要导入到主存储器中,才可以被CPU访问)。 主存储器的工作方式是按存储单元的地址进行存取,这种存取方式称为按地址存取方式(相联存储器既可以既可以按照地址寻址,又可以按照内容寻址,为了与传统存储器区别,又称为内容寻址的存储器!) 主存储器是由地址寄存器(MAR),数据寄存器(MDR),存储体,时序控制逻辑,地址寄存器存放访存地址,经过地址译码后找到所选的存储单元。数据寄存器,是存储器与其他部件的中介,用于暂存要从存储器读或写的信息。时序控制逻辑用于产生存储器操作所需的各种时序信号。在现代CPU,MAR和MDR是在CPU中的。 
运算器,是计算机的运算单元,用于算术运算和逻辑运算 运算器的核心单元是算术逻辑单元(ALU) 
控制器,控制器是计算机的指挥中心,有其指挥各部件自动协调第进行工作,现代计算机将运算器和控制器集成到一个芯片上,合成为中央处理器,简称CPU。有程序计数器(PC)、指令寄存器(IR)和控制单元(CU)。 
一般将运算器和控制器集成到同一个芯片上,称为中央处理器(CPU)。CPU和主存储器共同构成主机,而除主机外的其他硬件装置(外存、I/O设备等)统称为外部设备,简称外设。
图1.4所示为冯・诺依曼结构的模型机。CPU包含ALU、通用寄存器组GPRs、标志寄存器、控制器、指令寄存器IR、程序计数器PC、存储器地址寄存器MAR和存储器数据寄存器MDR。图中从控制器送出的虚线就是控制信号,可以控制如何修改PC以得到下一条指令的地址,可以控制ALU执行什么运算,可以控制主存是进行读操作还是写操作(读/写控制信号)。
CPU和主存之间通过一组总线相连,总线中有地址、控制和数据3组信号线。MAR中的地址信息会直接送到地址线上,用于指向读/写操作的主存存储单元;控制线中有读/写信号线,指出数据是从CPU写入主存还是从主存读出到CPU,根据是读操作还是写操作来控制将MDR中的数据是直接送到数据线上还是将数据线上的数据接收到MDR中。
计算机软件,一般分为系统软件和应用软件
系统软件包括 操作系统,数据库管理系统,语言处理系统(比如编译器),分布式软件系统,网络软件系统,标准库系统,服务性系统(比如连接程序)。
应用软件包括各种科学计算类程序,工程设计类程序,数据统计与处理程序。
注意:数据库管理系统和数据库系统是有区别的。数据库管理系统是系统软件。而数据库系统一般是由数据库,数据库管理系统,数据库管理员和应用系统构成。所以只能说它里面有系统软件,但并不能说它为系统软件。
2.三个级别的语言 1)机器语言。又称二进制代码语言,需要编程人员记忆每条指令的二进制编码。机器语言是计算机唯一可以直接识别和执行的语言。2)汇编语言。汇编语言用英文单词或其缩写代替二进制的指令代码,更容易为人们记忆和理解。使用汇编语言编辑的程序,必须经过一个称为汇编程序的系统软件的翻译,将其转换为计算机的机器语言后,才能在计算机的硬件系统上执行。3)高级语言。高级语言(如C、C++、Ja等)是为方便程序设计人员写出解决问题的处理方案和解题过程的程序。通常高级语言需要经过编译程序编译成汇编语言程序,然后经过汇编操作得到机器语言程序,或直接由高级语言程序翻译成机器语言程序。由高级语言转换到汇编语言的过程叫做编译,由汇编语言转换到机器语言的过程叫做汇编,边翻译边执行的叫做解析。
机器语言是唯一可以控制cpu的语言,因为它的符号不利于人识别和书写,为了方便理解和记忆,将机器语言换一些通俗易懂的符号,这就变成了汇编语言。一般来说在在编译器中高级语言先转换为汇编在转换为机器语言,也有直接转换为机器语言的情况。
机器语言是计算机唯一可以直接执行的语言,汇编语言用助记符编写,以便记忆。而正则语言是编译原理中符合正则文法的语言。 解释程序的特点是翻译一句执行一句,边翻译边执行:由高级语言转化为汇编语言的过程称为编译,把汇编语言源程序翻译成机器语言程序的过程称为汇编。
1.2.4 计算机的工作过程 2.指令执行过程的描述(点击链接,视频20min处有详细讲解)


IR存放当下欲执行的指令;PC存放下一条指令的地址; MAR存放欲访问的存储单元地址;MDR存放从存储单元取来的数据! 地址译码器是主存的构成部分,不属于CPU;地址寄存器虽然一般属于主存,但是现代计算机中绝大多数CPU内集成了地址寄存器! 关于CPU存取速度的比较:寄存器(CPU内部)> Cache(高速的SRAM) > 内存 (SDRAM)
上图是计算机的工作流程,首先PC将指令地址发送给MAR,MAR根据地址在存储体中找到指令数据存放在MDR中,之后MDR将指令存放在IR中,取指令结束,之后指令中的操作码进入CU中,地址码重复上述取指令步骤,将数据发送到ACC中,执行指令结束。注意区分指令和数据的依据:指令周期的不同阶段

机器字长、指令字长、存储字长的区别和联系是什么?
机器字长:计算机能直接处理的二进制数据的位数,机器字长一般等于内部寄存器的大小,它决定了计算机的运算精度。指令字长:一个指令字中包含的二进制代码的位数。存储字长:一个存储单元存储的二进制代码的长度。等于MDR的位数, 它们都必须是字节的整数倍。数据字长:数据总线一次能传送信息的位数,它可以不等于MDR的位数。 指令字长一般取存储字长的整数倍,若指令字长等于存储字长的2倍,则需要2次访存来取出一条指令,因此取指周期为机器周期的2倍;若指令字长等于存储字长,则取指周期等于机器周期。 早期的计算机存储字长一般和机器的指令字长与数据字长相等,因此访问一次主存便可取出一条指令或一个数据。随着计算机的发展,指令字长可变,数据字长也可变,但它们必须都是字节的整数倍。 请注意64位操作系统是指特别为64位架构的计算机而设计的操作系统,它能够利用64位处理器的优势。但64位机器既可以使用64位操作系统,又可以使用32位操作系统。而32位处理器是无法使用64位操作系统的。 数据通路带宽 数据总线一次所能传送信息的位数。主存容量 MAR的位数反映存储单元的个数,如MAR为16位,表示存储单元为216 = 64K;若MDR为32位,则存储容量为216x32.
运算速度
吞吐量,指系统在单位时间内处理请求的数量 ;从用户观点看,它是评价计算机系统性能的综合参数! 响应时间,指从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结构的等待时间。
CPU时钟周期。通常为节拍脉冲或T周期,即主频的倒数,它是CPU中最小的时间单位,每个动作至少需要1个时钟周期。 主频(CPU时钟频率)。机器内部主时钟的频率,是衡量机器速度的重要参数。
CPU周期又称为机器周期,由多个时钟周期组成!指令周期>CPU周期>时钟周期CPI(Clock cycle Per Instruction),即执行一条指令所需的时钟周期数。
CPU执行时间,指运行一个程序所花费的时间。 CPU执行时间 = CPU时钟周期数/主频 = (指令条数xCPI)/主频 CPU的性能取决于三个要素:主频、CPI 、指令条数
IPS(Instructions Per Second) =主频/平均CPI,每秒执行多少指令 MIPS(Million Instructions Per Second)=即每秒执行多少百万条指令。
MFLOPS(Mega Floating-point Operations Per Second)=浮点操作次数/(执行时间x106),即每秒执行多少百万次浮点运算。
GFLOPS(Giga Floating-point Operations Per Second)=浮点操作次数/(执行时间x109),即每秒执行多少十亿次浮点运算。
TFLOPS(Tera Floating-point Operations Per Second)=浮点操作次数/(执行时间x1012),即每秒执行多少万亿次浮点运算。
1.4本章开头提出的问题回答 1) 计算机由哪几部分组成?以哪部分为中心? 1)计算机由哪几部分组成?以哪部分为中心? 计算机由运算器、控制器、存储器、输入设备及输出设备五大部分构成,现代计算机通常把运算器和控制器集成在一个芯片上,合称为中央处理器。 而在微处理器面世之前(早期的冯·诺依曼机),运算器和控制器分离,而且存储器的容量很小,因此设计成以运算器为中心的结构,其他部件都通过运算器完成信息的传递。 随着微电子技术的进步,同时计算机需要处理、加工的信息量也与日俱增,大量IO设备的速度和CPU的速度差距悬殊,因此以运算器为中心的结构不能满足计算机发展的要求。现代计算机已经发展为以存储器为中心,使IO操作尽可能地绕过CPU,直接在IO设备和存储器之间完成,以提高系统的整体运行效率。 2) 主频高的CPU一定比主频低的CPU快吗?为什么? 2)主频高的CPU一定比主频低的CPU快吗?为什么? 衡量CPU运算速度的指标有很多,不能以单独的某个指标来判断CPU的好坏。CPU的主频,即CPU内核工作的时钟频率。CPU的主频表示CPU内数字脉冲信号振荡的速度,主频和实际的运算速度存在一定的关系,但目前还没有一个确定的公式能够定量两者的数值关系,因为CPU的运算速度还要看CPU的流水线的各方面的性能指标(架构、缓存、指令集、CPU的位数、 Cache大小等)。由于主频并不直接代表运算速度,因此在一定情况下很可能会出现主频较高的CPU实际运算速度较低的现象来看看小编的配置,感受一下,以后计算机组成原理中的Cache和主频等 

本章内容较为繁杂,由于计算机中数的表示和运算方法与人们日常生活中的表示和运算方法不同,因此理解也较为困难。纵观近几年的真题,不难发现 unsigned、shot、int、long、foat、 double等在C语言中的表示、运算、溢出判断、隐式类型转换、强制类型转换、IEEE754浮点数的表示,以及浮点数的运算,都是考研考查的重点,需要牢固掌握。
在学习本章时,请读者思考以下问题:
1)在计算机中,为什么要采用二进制来表示数据?2)计算机在字长足够的情况下能够精确地表示每个数吗?若不能,请举例说明。3)字长相同的情况下,浮点数和定点数的表示范围与精度有什么区别?4)用移码表示浮点数的阶码有什么好处?请读者在本章的学习过程中寻找答案,本章末尾会给出参考答案。
2.1 数制与编码还是要系统学习一下,不然之前的0x1010还查了好久!
2.1.1 进位计数制及其相互转化 知识点回顾与重点考点(如果知道了,就不用看了)

知识回顾与重点考点

注意:这是为了表示0和9,所以1010~1111都是违法的,以前都没在意!







任意两个码字之间最少变化的二进制位数称为码距,码距大于等于2的数据校验码开始具有检错的能力。码距越大,检错、纠错能力越强。奇偶校验码的码距等于2,可以检测出一位错误(或奇数位错误),但不能确定出错的位置,也不能检测出偶数位错误;海明码的码距大于2,因此不仅可以发现错误,还能指出错误的位置。仅靠增加奇偶校验位的位数不能提高正确性,还要考虑码距。 具有检、纠错能力的数据校验码的实现原理:在编码中,除合法码字外,再加入一些非法码字,当某个合法码字出现错误时,就变为非法码字。合理安排非法码字的数量和编码规则就能达到纠错的目的。
1.奇偶校验码原编码上加一个校验位,码距等于2!
知识回顾与重要考点


终于知道了《UVM实战》中的CRC校验是什么回事了!

CRC校验码是可以纠错的,前面这个是因为信息位太长

8.设阶码和尾数均用补码表示,阶码部分共K+1位(含1位阶符),尾数部分共n+1位(含1位数符),则这样的浮点数的表示范围是多少?
8.设阶码和尾数均用补码表示,阶码部分共K+1位(含1位阶符),尾数部分共n+1位(含1位数符),则这样的浮点数的表示范围是多少? 浮点数的表示范围见表2.9。
第三章 存储系统

本章是历年考査的重点,特别是有关 Cache和存储器扩展的知识点容易出综合题。此外,存储器的分类与特点,存储器的扩展(芯片选择、连接方式、地址范围等),低位交叉存储器,Cache的相关计算与替换算法,虚拟存储器与快表也容易出选择题。读者应在掌握基本原理和理论的基础上,多结合习题进行练习复习,以加深和巩固。另外,读者还需掌握存在 Cache和TLB的计算机中的地址翻译与 Cache映射问题,该问题在《操作系统考研复习指导》中有详细说明。 本章有两个难点:一是 ache映射规律、容量计算及替换特性;二是交又存储器访问时间和访问效率。二者都可与第5章的大题综合,或与第6章总线访问内存时间的计算问题综合。
在学习本章时,请读者思考以下问题:
1)存储器的层次结构主要体现在何处?为何要分这些层次?计算机如何管理这些层次?2)存取周期和存取时间有何区别?3)在虚拟存储器中,页面是设置得大一些好还是设置得小一些好?请读者在学习本章的过程中寻找答案,本章末尾会给出参考答案。 
相联存储器的基本原理是把存储单元所存内容的某一部分作为检索项(即关键字项)去检索该存储器,并将存储器中与该检索项符合的存储单元内容进行读出或写入。所以它是 按内容或地址进行寻址的,价格较为昂贵。 一般用来制作TLB、相联 Cache等。
按在计算机中的作用对存储器分类:
1> 主存储器,简称主存。CPU可以直接随机地对其进行访问,也可以和高速缓存器及辅助存储器交换数据。
2> 辅助存储器,简称辅存,不能与CPU直接相连,用来存放当前暂时不用的程序和数据
3> 高速缓冲存储器,位于主存和CPU之间,用来存放正在执行的程序段和数据
按存储介质分类:
磁表面存储器(磁盘,磁带),磁心存储器半导体存储器(MOS型存储器,双极存储器)和光存储器(光盘)。按存取方式分类:
1> 随机存储器(RAM)。存储器的任何一个存储单元的内容都可以随机存取,而且存取时间与存取单元的物理位置无关,主要用作主存或高速缓冲存储器。
2> 只读存储器(ROM)。存储器的内容只能随机读出而不能写入。。即使断电,内容也不会丢失。
3> 串行访问存储器。对存储单元进行读/写操作时,需按其物理位置的先后顺序寻址,包括顺序存取存储器(如磁带)与直接存取存储器(如磁盘)。
按信息的可保存性分类:
断电后,存储信息即消失的存储器,称为易失性存储器,如RAM。断电后信息仍然保持的存储器,称为非易失性存储器,如ROM,磁表面存储器和光存储器。若某个存储单元所存储的信息被读出时,原存储信息被破坏,则称为破坏性读出;若读出时,被读单元原存储信息不被破坏,则称为非破坏性读出。具有破坏性读出性能的存储器,每次读出操作后,必须紧接一个再生的操作,以便恢复被破坏的信息。
3.1.2 存储器的性能指标
存储器的性能指标,有3个主要的性能指标,存储容量,单位成本和存储速度
1> 存储容量:存储字数*字长
2> 单位成本:每位价格=总成本/总容量
3> 存储速度:数据传输率=数据的宽度/存储周期
存取时间:存取时间时指从启动一次存储器操作到完成该操作所经历的时间,分为读出时间和写入时间。
存取周期:它是指存储器进行一次完整的读写操作所需的全部时间,即连续两次独立访问存储器操作(读或写操作)之间所需的最小时间间隔。
主存带宽:主存带宽又称数据传输率,表示每秒从主存进出信息的最大数量,单位为字/秒,字节/秒 存取时间不等于存储周期,通常存储周期大于存取时间。因为任何一种存储器,在读写操作之后,总要有一段恢复内部状态的复原时间。







原来译码器的功能在这里可以使用!


设CPU有16根地址线,8根数据线,并用MREQ作为访存控制信号(低电平有效),用WR作为读/写控制信号(高电平为读,低电平为写)。现有下列存储芯片:1K×4位RAM,4K×8位RAM,8K×8位RAM,2K×8位ROM,4K×8位ROM,8K×8位ROM及74LS138译码器和各种门电路。画出CPU与存储器的连接图,要求: 1)主存地址空间分配:6000H~67FFH为系统程序区;6800H~6BFFH为用户程序区。 2)合理选用上述存储芯片,说明各选几片? 3)详细画出存储芯片的片选逻辑图。 补充:系统程序区用ROM,用户程序区用RAM
MAR和MDR是直接做在CPU芯片上面的!


交叉存储器实际上是一种模块式的存储器,它能并行执行多个独立的读/写操作。




直接好家伙!






把程序按逻辑结构分段,每段再划分为固定大小的页, 主存空间也划分为大小相等的页, 程序对主存的调入、调出仍以页为基本传送单位。 每个程序对应一个段表,每段对应一个页表 虚拟地址:段号+段内页号+页内地址
3.7.3 快表(TLB)页表、段表存放在主存中,收到虚拟地址后要先访问主存,査询页表、段表,进行虚实地址转换。 放在主存中的页表称为慢表(Page) 提高变换速度→用高速绥沖存储器存放常用的页表项 → 快表(TLB)


指令系统是表征一台计算机性能的重要因素。读者应注意扩展操作码技术,各种寻址方式的特点及有效地址的计算,相对寻址有关的计算,CISC与RISC的特点与区别。本章知识点出选择题的概率较大,但也有可能结合其他章节出有关指令的综合题。2014年、2015年已连续两次出现指令系统和指令流水线的大题。指令系统格式和指令寻址方式与CPU指令执行过程部分紧密结合,希望读者引起重视。
在学习本章时,请读者思考以下问题
1)什么是指令?什么是指令系统?为什么要引入指令系统?2)一般来说,指令分为哪些部分?每部分有什么用处?3)对于一个指令系统来说,寻址方式多和少有什么影响?请读者在本章的学习过程中寻找答案,本章末尾会给出参考答案。 


















中央处理器是计算机的中心,也是本书的难点。其中,数据通路的分析、指令执行阶段的节拍与控制信号的安排、流水线技术与性能分析易出综合题。而关于各种寄存器的特点、指令执行的各种周期与特点、控制器的相关概念、流水线的相关概念也极易出选择题。
在学习本章时,请读者思考以下问题
1)CPU分为哪几部分?分别实现什么功能?2)指令和数据均存放在内存中,计算机如何从时间和空间上区分它们是指令还是数据?3)什么是指令周期、机器周期和时钟周期?它们之间有何关系?4)指令周期是否有一个固定值?为什么?5)什么是微指令?它和第4章谈到的指令有什么关系?6)什么是指令流水线?指令流水线相对于传统计算机体系结构的优势是什么?如何计算指令流水线的加速比?请读者在本章的学习过程中寻找答案,本章末尾会给出参考答案。
【复习提示】 中央处理器是计算机的中心,也是本书的难点。其中,数据通路的分析、指令执行阶段的节拍与控制信号的安排、流水线技术与性能分析易出综合题。而关于各种寄存器的特点、指令执行的各种周期与特点、控制器的相关概念、流水线的相关概念也极易出选择题。
在学习本章时,请读者思考以下问题:
1)CPU分为哪几部分?分别实现什么功能?2)指令和数据均存放在内存中,计算机如何从时间和空间上区分它们是指令还是数据?3)什么是指令周期、机器周期和时钟周期?它们之间有何关系?4)指令周期是否有一个固定值?为什么?5)什么是微指令?它和第4章谈到的指令有什么关系?6)什么是指令流水线?指令流水线相对于传统计算机体系结构的优势是什么?如何计算指令流水线的加速比?请读者在本章的学习过程中寻找答案,本章末尾会给出参考答案。
5.1 CPU的功能和基本构造 5.1.1 CPU的基本功能
CPU的功能:


通用寄存器供用户自由编程,可以存放数据和地址。而指令寄存器是专门用于存放指令的专用寄存器,不能由通用寄存器代替。

条件转移指令执行时,需要对标志寄存器的内容进行测试,判断是否满足转移条件。 转移指令时,需要判断转移是否成功,若成功则PC修改为转移指令的目标地址,否则下一条指令的地址仍然为PC自增后的地址。 指令包括操作码字段和地址码字段,但指令译码器仅对操作码字段进行译码,借以确定指令的操作功能。

注意:CPU内部寄存器大致可分为两类:一类是用户可见的寄存器,可对这类寄存器编程,如通用寄存器组、程序状态字寄存器;另一类是用户不可见的寄存器,对用户是透明的,不可对这类寄存器编程,如存储器地址寄存器MAR、存储器数据寄存器MDR、指令寄存器IR。





间址周期的作用是取操作数的有效地址,因此间址周期结束后,MDR的内容为操作数地址。
执行周期根据IR中的指令字的操作码和操作数通过ALU操作产生执行结果。不同指令的执行操作不同,因此没有统一的数据流向。
中断周期

实际考试中,建议把间址周期合并到执行周期,因为每个人对间址周期的理解是不一样的

注意ALU不是通用寄存器? 
控制器是计算机系统的指挥中心,控制器的主要功能有:











设计步骤:
分析每个阶段的微操作序列写出对应机器指令的微操作命令及节拍安排确定微指令格式编写微指令码点






1.部件功能级、处理机级和处理机间级流水线
根据流水线使用的级别的不同,流水线可分为部件功能级流水线、处理机级流水线和处理机间流水线。部件功能级流水就是将复杂的算术逻辑运算组成流水线工作方式。例如,可将浮点加法操作分成求阶差、对阶、尾数相加以及结果规格化等4个子过程。处理机级流水是把一条指令解释过程分成多个子过程,如前面提到的取指、译码、执行、访存及写回5个子过程。处理机间流水是一种宏流水,其中每一个处理机完成某一专门任务,各个处理机所得到的结果需存放在与下一个处理机所共享的存储器中。2.单功能流水线和多功能流水线
按流水线可以完成的功能,流水线可分为单功能流水线和多功能流水线。单功能流水线指只能实现一种固定的专门功能的流水线;多功能流水线指通过各段间的不同连接方式可以同时或不同时地实现多种功能的流水线。3.动态流水线和静态流水线
按同一时间内各段之问的连接方式,流水线可分为静态流水线和动态流水线。静态流水线指在同一时间内,流水线的各段只能按同一种功能的连接方式工作。动态流水线指在同一时间内,当某些段正在实现某种运算时,另一些段却正在进行另一种运算。这样对提高流水线的效率很有好处,但会使流水线控制变得很复杂。 4.线性流水线和非线性流水线按流水线的各个功能段之间是否有反馈信号,流水线可分为线性流水线与非线性流水线。线性流水线中,从输入到输出,每个功能段只允许经过一次,不存在反馈回路。作线性流水线存在反馈回路,从输入到输出过程中,某些功能段将数次通过流水线,这种流水线适合进行线性递归的运算。 5.5.5 超标量流水线的基本概念 1.超标量流水技术



本章的知识点较少,其中总线仲裁及总线操作和定时方式是难点。本章内容通常以选择题的形式出现,特别是系统总线的特点、性能指标、各种仲裁方式的特点、异步定时方式及常见的总线标准和特点等。总线带宽的计算也可能结合其他章节出综合题
在学习本章时,请读者思考以下问题:
1)引入总线结构有什么好处?2)引入总线结构会导致什么问题?如何解决?请读者在学习本章的过程中寻找答案,本章末尾会给出参考答案。 




总线的性能指标 1.总线的传输周期(总线周期) 2.总线时钟周期 3.总线的工作频率 4.总线的时钟频率 5.总线宽度 6.总线带宽 7.总线复用 8.信号线数


特点:不需要中央仲裁器,每个潜在的主模块都有自己的仲裁器和仲裁号,多个仲裁器竞争使用总线。
当设备有总线请求时,它们就把各自唯一的仲裁号发送到共享的仲裁总线上每个仲裁器将从仲裁总线上得到的仲裁号与自己的仲裁号进行比较;如果仲裁总线上的号优先级高,则它的总线请求不予响应,并撤销它的仲裁号;最后,获胜者的仲裁号保留在仲裁总线上。 6.3 总线操作和定时

总线标准的基本概念:
总线标准是国际上公布或推荐的互连各个模块的标准,它是把各种不同的模块组成计算机系统时必须遵守的规范。按总线标准设计的接口可视为通用接口,在接口的两端,任何一方只需根据总线标准的要求完成自身方面的功能要求,而无须了解对方接口的要求。
系统总线标准:ISA、EISA、VESA、PCI、PCI- Express等。
设备总线标准:IDE、AGP、RS-232C、USB、SATA、SCSI、 PCMCIA等。
局部总线标准:在ISA.总线和CPU总线之间增加的一级总线或管理层,如PCI、PCI-E、VESA、AGP等,可以节省系统的总带宽。
即插即用( Plug-and-Play)的作用是自动配置(低层)计算机中的板卡和其他设备,然后告诉对应的设备都做了什么。把物理设备和软件(设备驱动程序)相配合,并操作设备,在每个设备和它的驱动程序之间建立通信信道
热插拔( hot-plugging或 Hot Swap)即带电插拔,热插拔功能就是允许用户在不关闭系统,不切断电源的情况下取出和更换损坏的硬盘、电源或板卡等部件,从而提高了系统对灾难的及时恢复能力、扩展性和灵活性等,例如一些面向高端应用的磁盘镜像系统都可以提供磁盘的热插拔功能。
6.4.1 常见的总线标准


I/O方式是本章的重点和难点,每年不仅会以选择题的形式考查基本概念和原理,而且可能会以综合题的形式考査,特别是各种IO方式效率的相关计算,中断方式的各种原理、特点、处理过程、中断屏蔽,DMA方式的特点、传输过程、与中断方式的区别等。
在学习本章时,请读者思考以下问题
1)IO设备有哪些编址方式?各有何特点?2)CPU响应中断应具备哪些条件?请读者在学习本章的过程中寻找答案,本章末尾会给出参考答案。
【复习提示】 I/O方式是本章的重点和难点,每年不仅会以选择题的形式考査基本概念和原理,而且可能会以综合题的形式考査,特别是各种IO方式效率的相关计算,中断方式的各种原理、特点、处理过程、中断屏蔽,DMA方式的特点、传输过程、与中断方式的区别等。 在学习本章时,请读者思考以下问题:
请读者在学习本章的过程中寻找答案,本章末尾会给出参考答案。
7.1 I/O系统基本概念 7.1.1 输入/输出系统输入、输出是以主机为中心谈论的!输入、输出设备都属于外部设备


7.2.1 输入设备
用于向计算机系统输入命令和文本、数据等信息的部件。键盘和鼠标是最基本的输入设备。 
用于将计算机系统中的信息输出到计算机外部进行显示、交换等的部件。显示器和打印机是最基本的输出设备。

打印机从打字原理的角度可以分为:击打式和非击打式!

是指除计算机内存及CPU缓存等以外的存储器。硬磁盘、光盘等是最基本的外存设备。
串行:不能同时写和读!








1)I/O设备有哪些编址方式?各有何特点? 统一编址和独立编址。统一编址是在主存地址中划出一定的范围作为I/O地址,以便通过访存指令即可实现对I/O的访问,但主存的容量相应减少。独立编址是指IO地址和主存是分开的,I/O地址不占主存空间,但访存需专门的I/O指令。
2)CPU响应中断应具备哪些条件? 2)CPU响应中断应具备哪些条件? ①在CPU内部设置的中断屏蔽触发器必须是开放的 ②外设有中断请求时,中断请求触发器必须处于“1”状态,保持中断请求信号。 ③外设(接ロ)中断允许触发器必须为“1”,这样才能把外设中断请求送至CPU。 具备上述三个条件时,CPU在现行指令结束的最后一个状态周期响应中断。 7.6 常见问题 1.中断响应优先级和中断处理优先级分别指什么? 1.中断响应优先级和中断处理优先级分别指什么? 中断响应优先级是由硬件排队线路或中断查询程序的查询顺序决定的,不可动态改变;而中断处理优先级可以由中断屏蔽字来改变,反映的是正在处理的中断是否比新发生的中断的处理优先级低(屏蔽位为“0”,对新中断开放),若是,则中止正在处理的中断,转到新中断去处理, 处理完后再回到刚才被中止的中断继续处理。 2.向量中断、中断向量、向量地址三个概念是什么关系? 2.向量中断、中断向量、向量地址三个概念是什么关系? 中断向量:每个中断源都有对应的处理程序,这个处理程序称为中断服务程序,其入口地址称为中断向量。所有中断的中断服务程序入口地址构成一个表,称为中断向量表;也有的机器把中断服务程序入口的跳转指令构成一张表,称为中断向量跳转表。 向量地址:中断向量表或中断向量跳转表中每个表项所在的内存地址或表项的索引值,称为向量地址或中断类型号。 向量中断:指一种识别中断源的技术或方式。识别中断源的目的是找到中断源对应的中断服务程序的入口地址的地址,即获得向量地址。 3.程序中断和调用子程序有何区别? 3.程序中断和调用子程序有何区别? 两者的根本区别主要表现在服务时间和服务对象上不一样。 1)调用子程序过程发生的时间是已知的和固定的,即在主程序中的调用指令(CALL)执行时发生主程序调用子程序过程,调用指令所在位置是已知的和固定的。而中断过程发生的时间一般是随机的,CPU在执行某个主程序时收到中断源提出的中断申请,就发生中断过程,而中断申请一般由硬件电路产生,申请提出时间是随机的。也可以说,调用子程序是程序设计者事先安排的,而执行中断服务程序是由系统工作环境随机决定的 2)子程序完全为主程序服务,两者属于主从关系。主程序需要子程序时就去调用子程序,并把调用结果带回主程序继续执行。而中断服务程序与主程序二者一般是无关的,不存在谁为谁服务的问题,两者是平行关系。 3)主程序调用子程序的过程完全属于软件处理过程,不需要专门的硬件电路;而中断处理系统是一个软/硬件结合的系统,需要专门的硬件电路才能完成中断处理的过程 4)子程序嵌套可实现若干级,嵌套的最多级数受计算机内存开辟的堆栈大小限制;而中断嵌套级数主要由中断优先级来决定,一般优先级数不会很大。 从宏观上看,虽然程序中断方式克服了程序査询方式中的CPU“踏步”现象,实现了CPU与I/O并行工作,提高了CPU的资源利用率,但从微观操作分析,CPU在处理中断服务程序时,仍需暂停原程序的正常运行,尤其是当高速I/O设备或辅助存储器频繁地、成批地与主存交换信息时,需要不断打断CPU执行现行程序,而执行中断服务程序。 4.IO指令和通道指令有何区别? 4.IO指令和通道指令有何区别? I/O指令是CPU指令系统的一部分,是CPU用来控制输入/输出操作的指令,由CPU译码后执行。在具有通道结构的机器中,I/O指令不实现I/O数据传送,主要完成启、停I/O设备,査询通道和I/O设备的状态,及控制通道进行其他一些操作等。 通道指令是通道本身的指令,用来执行I/O操作,如读、写、磁带走带及磁盘找道等操作。 后记完结撒花