




已阅读5页,还剩125页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,计算机组成原理,1,任课教师:谢彩云Email:xie712课时:1-15周(双周),.,2,教材王爱英,计算机组成与结构第五版,清华大学出版社,2013参考书白中英,计算机组成原理第四版立体化教材,科学出版社,2008陈志勇,计算机组成原理,西安电子科技大学出版社,2009钱晓捷,微型计算机原理及应用,清华大学出版社,2006,.,目录,3,第一章计算机系统概论第二章指令系统第三章中央处理部件CPU第四章存储系统第五章输入输出(I/O)系统,.,1.1计算机的基本概念,4,第一章计算机系统概论,如何正确理解“计算机”这个术语呢?凡是能完成以下三类工作的机器就是计算机:能接受程序和数据的输入,并存储起来;能按照存储的程序对输入的数据进行自动处理并得出结果;能把结果输出。,.,1.2计算机的发展史,5,第一代电子管时代(1946-1958):耗电高,体积大,定点计算,机器语言,汇编语言第二代晶体管时代(1958-1965):变集中处理为分级处理,浮点运算、高级语言第三代中小规模集成电路时代(1965-1970):存储容量大,运算速度快,几十至几百万次/秒第四代大规模集成电路时代(1971至今):向大型机和微型机两个方向发展现代计算机发展方向:巨型化,微型化,网络化,智能化,多媒体化,多核,云计算。,.,第一台通用电子计算机,6,1946年2月14日,第一台通用电子计算机,设计用于计算火炮的弹道重30吨,占地170平方米,18800个电子管,耗电150KW运算速度:5000次加法/秒使用十进制数20个寄存器,每个存放10位的十进制数通过设置6000个开关和其它众多的插头和插座来编程,.,计算机里有什么?,7,.,1.3计算机系统的组成,8,计算机系统:由计算机硬件系统和软件系统组成。,.,9,第二章指令系统,指令、指令系统是计算机中一个最基本的概念。指令系统是计算机的主要属性,位于硬件和软件的交界面上。,.,10,指令:要计算机执行某种操作的命令,指令系统:一台计算机中所有机器指令的集合,它是表征一台计算机性能的重要因素,其格式与功能不仅直接影响到机器的硬件结构,也直接影响到系统软件,影响到机器的适用范围。,2.1基本概念,.,程序:是为实现特定目标或解决特定问题而用计算机语言(汇编语言、高级语言)编写的命令序列的集合。,“(机器)指令”和“程序”的区别,机器指令:计算机硬件可以执行的表示一种基本操作的二进制代码。,程序,机器指令,编译程序,.,12,2.2指令格式,指令格式:用二进制代码表示指令的结构形式,通常分成操作码和地址码两部分。,操作码用来表明本条指令要求计算机完成的操作,如加法,减法,取数等,CPU中有专门的译码电路来识别解释各操作码,地址码用来给出参加本次运算的操作数和运算结果所在的地址,根据地址码个数,指令格式分为零地址、一地址、二地址、三地址、四地址,1001010110100001,.,13,(1)零地址指令,格式:,OP,OP:操作码,如:空操作指令,停机指令,(2)一地址指令,3次访存(A为存储器地址时),寻址范围224=16M,格式:,OP:操作码,A:操作数地址,同时也是操作结果的存储地址,备注:A既可以是存储器地址也可以是寄存器地址,如:加1,减1和移位指令,.,14,(3)二地址指令,或,4次访存(A1和A2均为存储器地址时),寻址范围212=4K,格式:,OP:操作码,A1:第一操作数地址,A2:第二操作数地址,备注:A1,A2既可以是存储器地址也可以是寄存器地址,A1和A2进行操作后结果既可以存于A1中也可以存于A2中,编程时需要参考所用机器的说明书,.,15,4次访存(A1和A2均为存储器地址时),寻址范围28=256,(4)三地址指令,OP:操作码,A1:第一操作数地址,A2:第二操作数地址,A3:结果的地址,备注:A1,A2,A3既可以是存储器地址也可以是寄存器地址,格式:,.,(5)四地址指令,A1:第一操作数地址,A2:第二操作数地址,A3:结果的地址,A4:下一条指令地址,4次访存,寻址范围26=64,OP:操作码,备注:A1,A2,A3,A4既可以是存储器地址也可以是寄存器地址,格式:,.,17,2.3操作码扩展技术,指令操作码通常有两种编码格式:操作码长度固定:操作码集中在指令字的一个字段内特点:控制简单,译码时间短,编码浪费,n位操作码能表示2n条指令操作码长度不固定:操作码分散在指令字的不同字段内特点:能有效压缩操作码的平均长度,控制复杂,指令译码、分析较难,.,18,现代计算机中多采用不等长操作码不同类的指令,其操作码的长度不同。对于一部分不需要操作数的指令可以将指令操作码扩展到操作数字段,操作码的长度随地址码的减少而增加。在不增加指令长度的情况下,能充分利用指令的各个字段扩展操作码的长度,使它可以表示更多的指令。实现不等长操作码可以通过扩展操作码法实现。,.,19,每次扩展的操作码的位数相同。例如:4-8-12扩展法、3-6-9扩展法、4-6-8扩展法,两种扩展方式很难证明哪一种肯定优于另外一种实际中采用哪种方式,有一个重要的原则:使用频度高的指令应分配短的操作码;使用频度低的指令相应地分配较长的操作码(有利于CPU缩短对指令的译码时间,提高指令的执行速度)。,等长扩展,指每次扩展的操作码的位数不相同。例如:4-6-10扩展法、3-6-10扩展法,不等长扩展,操作码扩展实现方式,.,20,等长扩展操作码,16条使用频度最低的指令操作码,000000011110111100001111000111111110111111110000111111110001111111111111,15条使用频度最高的指令操作码,15条使用频度稍低的指令操作码,该系统的指令总数不能超过46条,采用4-8-12等长扩展法确定三种使用频度的操作码的编码方案,.,21,等长扩展操作码,16条使用频度稍低的指令操作码,采用3-7-11等长扩展法确定三种使用频度的操作码的编码方案,该系统的指令总数不能超过38,.,22,不等长扩展操作码,同样的要求还可采用4-5-9不等长扩展,000000010111100001000111110111110000111110001111111111,7条使用频度最高的指令操作码,15条使用频度稍低的指令操作码,16条使用频度稍低的指令操作码,不允许短码是长码的前缀,各条指令的操作码一定不能重复保证解码的唯一性和实时性,.,例题,23,指令长度16位,设计一个具有15条三地址指令、15条双地址指令、15条单地址指令和16条零地址指令的指令系统。,.,24,作业,某计算机指令长度为32位,有3种指令:双操作数指令、单操作数指令、无操作数指令。今采用扩展操作码方式来设计指令,假设操作数地址为12位,已知有双操作数指令K条,单操作数指令L条,问无操作数指令有多少条?,.,25,说明,0000000100100011010001010110011110001001101010111100110111101111,设指令字长度4位,地址码长度1位,只有双地址和单地址指令,双地址指令有3条,单地址指令有多少?(16-322)/2=2,.,26,由于采用扩展操作码方式设计指令,所以对一部分不需要操作数的指令可以将指令操作码扩展到操作数字段。在不增加指令长度的情况下,能充分利用指令的各个字段扩展操作码的长度,使它可以表示更多的指令。本题中,由于指令总长度为32位,操作数地址为12位,则:对于双操作数指令,操作码长度为(32-122)=8位对于单操作数指令,操作码长度为(32-12)=20位对于无操作数指令,操作码长度为32位,.,27,由于双操作数指令有K条,单操作数指令有L条,则它们可设计成如下形式:双操作数指令操作码范围为:000(K-1)二进制数表示单操作数指令操作码范围为:(K)二进制数表示000(K)二进制数表示(L-1)二进制数表示无操作数指令操作码范围为:(K)二进制数表示(L)二进制数表示000(K)二进制数表示(L)二进制数表示111设无操作数指令个数为N,则N=232-K224-L212=(28-K)212-L212,.,28,2.4指令字长,指令字长:一条指令中包含的二进制代码的位数指令字长取决于操作码的长度、地址码的个数以及每个地址的长度指令字长固定,地址码与操作码的长度互相制约,L为指令字长度,N为机器字长度,指令字长与机器字的关系,.,29,2.5数据表示,(1)地址:无符号整数(2)数字:定点数、浮点数、十进制数(3)字符:文本、字符串(4)逻辑数据,2.5.1操作数类型,.,30,目前计算机所用数据字长一般为32位。存储器的地址一般按字节表示。地址空间的规则如下:(1)位于地址A的字:包含的字节位于地址A,A+1,A+2和A+3;(2)位于地址A的半字:包含的字节位于地址A和A+1;(3)位于地址A+2的半字:包含的字节位于地址A+2和A+3;(4)位于地址A的字:包含的半字位于地址A和A+2;,2.5.2存储器格式,A可被整除,.,31,2.5.2数据在存储器中的存放方式,多字节数据存放在存储器中满足“边界对准”半字地址是2的整数倍,字地址是4的整数倍,双字地址是8的整数倍,字节可以存储在任何地址,不满足要求时,填充一个至多个空白字节,对齐方式,字节次序,大端模式:高字节为低地址(Motorola的PowerPC系列的CPU)大端机器处理字符串比较方便小端模式:低字节为低地址(Intel的x86系列CPU)小端机器处理数值比较方便,.,32,对齐方式,存储器(字长32位),边界对准,边界不对准,需要访问两次存储器才能存取一个字,.,例如,16位宽的数0 x1234在小端模式CPU内存中的存放方式(假设从地址0 x4000开始存放)为:而在大端模式CPU内存中的存放方式则为:32位宽的数0 x12345678在小端模式CPU内存中的存放方式(假设从地址0 x4000开始存放)为:而在大端模式CPU内存中的存放方式则为:,字节次序,.,34,2.6寻址方式,寻址方式是指确定本条指令的数据地址以及下一条将要执行的指令地址的方法,与硬件结构密切相关,直接影响指令格式和指令功能,分为指令寻址和数据寻址两类。,指令的寻址方式有两种,一种是顺序寻址方式,另一种是跳跃寻址方式。顺序寻址通过PC加1自动形成下一条指令的地址跳跃寻址通过转移指令实现,转移地址由指令给出或采用相对寻址方式,2.6.1指令寻址,.,35,指令格式为:操作数真实地址称为有效地址EA,由形式地址和寻址特征共同确定。根据寻址特征字段,操作数寻址有多种方式,包括立即寻址、直接寻址、存储器间接寻址、寄存器寻址、寄存器间接寻址、基址寻址、变址寻址、相对寻址、堆栈寻址,2.6.2数据寻址,地址码,.,36,立即寻址方式,目标操作数定义为隐含寻址,源操作数定义为立即寻址,立即数,R0,1616,加法运算,BBBBH,1616H,A5A5H,操作数本身设在指令字中形式地址A是操作数,称为“立即数”S=A,不必访问内存A的位数限制了立即数的范围,.,37,直接寻址方式,操作数在主存储器中指令中直接给出操作数在存储器中的地址EA=A,操作数S=(E)=(A),简单、直观、执行阶段访问一次主存A的位数限制了操作数的寻址范围,修改A的值才能修改操作数地址,.,38,存储器间接寻址方式,形式地址A,定义为存储器间接寻址方式,2480,操作数在主存储器中操作数的有效地址存放在主存的某个单元中EA=(A),S=(A),扩大了操作数的寻址范围执行阶段需要多次访问主存,指令执行时间长,.,39,寄存器寻址方式,操作数在CPU内部的通用寄存器中指令中给出寄存器号EA=Ri,S=(Ri),寄存器号,定义为寄存器寻址方式,指令字短,执行阶段无须访存,减少执行时间,.,40,寄存器间接寻址方式,操作数在主存储器中操作数的有效地址存放在CPU的某个通用寄存器中EA=(Ri),S=(Ri),寄存器号,定义为寄存器间接寻址方式,操作数,205B,主存储器,执行阶段需要访问主存,.,41,基址寻址方式,形式地址A,定义为基址寻址方式,2000,基址寄存器,+,2050,主存储器,操作数在主存储器中操作数的有效地址等于基址寄存器内容与形式地址相加EA=(BR)+A,S=(EA),扩大了操作数的寻址范围执行阶段需要访问主存适用于多道程序用户不可修改BR内容操作系统根据主存使用情况将用户程序安置于主存某一区域(用户不考虑),将基地址送BR,.,42,变址寻址方式,形式地址A,定义为变址寻址方式,2000,变址寄存器,+,2050,主存储器,操作数在主存储器中操作数的有效地址等于变址寄存器内容与形式地址相加EA=(IX)+A,S=(EA),扩大了操作数的寻址范围执行阶段需要访问主存适用于处理数组问题用户设定IXA为数组首地址,改变IX内容即可访问数组元素,.,43,相对寻址方式,定义为相对寻址方式,2000,PC,+,2051,2000,2001,+1,2001,转移目标地址,形式地址,操作数在主存储器中操作数的有效地址等于PC内容与形式地址相加EA=(PC)+A,S=(EA),用于转移类指令指令地址A称为位移量,表示目标地址与当前指令的距离转移地址不固定,随PC值变化,便于编写浮动程序,.,44,堆栈寻址方式,访问速度快寄存器的数目有限读出是破坏性的,堆栈能够具有任意长度能建立多个堆栈可以用对存储器寻址的指令寻址堆栈中的数据,.,某机指令格式如下图所示:图中I为寻址特征位(I=0,直接寻址;I=1,一次间接寻址)。假设存储器部分单元有以下内容:地址号(十六进制)内容(十六进制)0001015E029D037404A40515060407A0指出下列机器指令(十六进制表示)的有效地址。(1)D7;(2)DF;(3)DE;(4)D2。,例题,03457,.,作业,46,某计算机字长16位,主存按字节编址,转换指令采用相对寻址,由两个字节组成,第一字节为操作码字段,第二字节为相对位移量字段。假定取指令时,每取一字节PC自动加1。若某转移指令所在主存地址为2000H,相对位移量字段的内容为06H,则该转移指令成功转移后的目标地址是?,.,47,2.7指令类型,不同机器操作类型不同,所有的机器的通用操作:(1)数据传送:寄存器寄存器,寄存器存储单元,存储单元存储单元,.,48,(2)堆栈操作:入栈和出栈,堆栈遵循先进后出,所以其栈底是固定不变的,而栈顶却在不断变化,为了表示栈顶的位置,有一个寄存器或存储单元用于指出栈顶的地址,称为堆栈指针SP。,压入指令PUSHOPR把OPR的内容(长度为1个字节)压人堆栈其操作是:(SP)-1(SP)OPR(SP)弹出指令POPOPR弹出一个数据(长度为1个字节)送OPR所指定的单元其操作是:(SP)(OPR)(SP)+1(SP)其中,(SP)表示堆栈指针的内容;(SP)表示SP所指的栈顶的内容。,.,49,(3)算术逻辑运算:+、增1、减1、与、或、取反、异或,算术运算指令:ADD(+),SUB(),MUL(),DIV(),INC(增1),DEC(减1)等等。通常根据算术运算的结果置状态位,一般有Z(结果为0)、N(结果为负)、V(结果溢出)、C(产生进位或借位)四个状态位。逻辑运算指令:AND(与),OR(或),NOT(取反),XOR(异或),.,50,(4)移位:算术移位、逻辑移位、循环移位,C:进位位除了算术加法可产生进位位C外,移位操作也可产生进位位C,.,(5)转移:无条件转移、条件转移、过程调用与返回,51,无条件转移:不受任何条件约束,直接把程序转移到指令所规定的目的地,例如jump指令。条件转移:根据计算机处理结果来决定程序如何执行,例如branch指令。过程调用与返回:与转移类指令的区别是需要保留返回地址,例如call和return指令。,.,(6)输入输出:CPU与外设之间的数据交换,输入输出指令的一般格式为:OP-操作码;REG-CPU用于指定与外部设备交换数据的寄存器;A-外部设备寄存器。输入指令IN:完成从A地址所指定的外部设备寄存器中读人一个数据到REG寄存器中;输出指令OUT:是把REG寄存器中的数据送到A地址所指定的外部设备寄存器,52,.,第三章中央处理部件CPU,53,3.1计算机硬件系统,计算机硬件系统由中央处理部件CPU、输入设备、输出设备、存储器组成。其中CPU包含运算器和控制器。,.,54,CPU由运算器和控制器组成,CPU硬件组成,54,.,55,数据缓冲寄存器(MDR):用来暂存由内存读出或写入内存的指令和数据,是CPU和内存、外部设备信息传送的中转站。指令寄存器(IR):用来存放当前正在执行的一条指令。在指令执行期间,指令寄存器的内容不允许发生变化。程序计数器(PC):用来存放将要执行的下一条指令的地址。地址寄存器(MAR):地址寄存器用来保存CPU当前所访问的内存单元的地址。只要CPU和内存交换信息,都要用到地址寄存器和数据缓冲寄存器。累加寄存器(AC):执行算术逻辑操作时,为ALU提供操作数及存放运算结果。状态标志寄存器(PSW):用来存放由指令执行结果所建立的状态以及机器自身的运行状态,第一类为状态标志,第二类为控制标志。,CPU中的主要寄存器,.,56,3.2控制器的组成及基本功能,控制器由程序计数器(PC)、指令寄存器(IR)、指令译码器(ID)、脉冲源及启停线路(时序部件)和时序控制信号形成部件(微操作信号发生器)组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。,3.2.1控制器的硬件组成,.,57,3.4控制器的基本功能及组成,控制器由程序计数器(PC)、指令寄存器(IR)、指令译码器、脉冲源及启停线路(时序部件)和时序控制信号形成部件(微操作信号发生器)组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。,3.4.1控制器的硬件组成,用以存放当前正在执行的指令,存放当前正在执行的指令地址或下一条指令地址。指令地址形成:(PC)+1-PC。或:转移指令修改其内容,对指令寄存器中的操作码进行分析解释,产生相应的控制信号。,操作控制信号有严格的时间要求,绝不能出现任何差错。时序部件的作用是对各种操作实施时间上的控制。,控制器的核心部件,其功能是根据指令操作码、状态信息和时序信号,产生各种微操作控制信号,从而完成取指令和执行指令的任务。,.,取指令发出指令地址,取出指令的内容分析指令(1)对操作码译码产生操作相应部件的控制信号(2)根据寻址方式形成操作数地址。执行指令(1)分析指令后产生控制信号(2)形成下条指令的地址,3.2.2控制器的基本功能,控制程序和数据的输入、结果输出在适当的时候向输入输出设备发出一些相应的命令来完成I/O功能。,对异常情况和某些请求的处理,例如算术运算的溢出、中断请求。,58,.,任务二:从PC中取出指令地址,3.3计算机整个工作过程,停电,任务一:使计算机处于初始状态,结论:(1)程序的执行就是在控制器协调下执行指令的周而复始的过程。(2)控制器作用是协调并控制计算机各部件执行程序的指令序列。,59,.,3.4指令的执行过程,60,.,.,62,CPU完成三件事:从内存中取出指令对程序计数器PC+1对指令操作码进行译码CPU做6个动作:PCMARPC+1PCMARABUSM(MAR)MDRMDRIROP(IR)IDCPU已知道什么操作,CLA指令-取指令阶段,.,63,CLA指令-执行指令阶段,CPU完成一件事:执行累加器清零操作。CPU做2个动作:微操作信号发生器送一控制信号(C)给算术逻辑单元ALU。ALU响应控制信号,将累加寄存器AC的内容全部清零,从而执行了CLA指令。0AC。CPU已完成指令操作,.,64,CPU完成三件事:从内存中取出指令对程序计数器PC+1对指令操作码进行译码CPU做6个动作:PCMARPC+1PCMARABUSM(MAR)MDRMDRIROP(IR)IDCPU已知道什么操作,加法指令-取指令阶段,.,65,加法指令-计算操作数地址阶段,CPU完成一件事:送操作数地址到地址寄存器MAR。CPU做1个动作:把指令寄存器中地址码部分(30)装入地址寄存器MAR,执行:IRMAR操作.,.,66,加法指令-取操作数、执行阶段,CPU完成两件事:取操作数加法操作。CPU做4个动作:MARABUSDBUSMDRMDRALUadd,ALUACCPU完成指令操作,.,作业,上述程序段中,当CPU执行完“JMP21”指令后,程序计数器PC的值是多少?,.,第四章存储系统,68,4.1存储器的分类,在电路中,一个触发器能存储一位二进制代码。,一个触发器电路称为一个存储元(存储位),是存储器中的最小单位。若干个存储元组成一个存储单元,多个存储单元组成存储器。,根据存储元件的性能及使用方法不同,存储器有各种不同的分类方法:,.,69,.,4.2存储器的层次结构,用途:存储器是计算机中用于存储程序和数据的重要部件。对其要求:尽可能快的读写速度、尽可能大的存储容量、尽可能低的成本费用。怎样才能同时实现这些要求呢?显然用一种存储介质是不行的。因此在现代计算机系统中,用多级存储器把要用的程序和数据,按其使用的紧迫程度分段调入存储容量不同、运行速度不同的存储器中。由高速缓冲存储器cache、主存储器、辅助存储器组成三级结构的存储器,由硬软件系统统一调度、统一管理。,.,为了弥补主存速度的不足,在CPU与主存之间设置一个高速小容量的缓冲存储器,称高速缓存(Cache),主要由高速的SRAM组成。其工作原理如下:,我们利用程序运行的局部性特点,把CPU正在访问和即将访问的若干程序块和数据块从主存调入高速缓存中,使CPU大部分从高速缓存中读取指令和存取数据,极大地提高了CPU的访问速度。,4.3高速缓冲存储器(Cache)),CPU,Cache,主存DRAM,地址总线,相联存储表,命中,未命中,数据总线,块,字,字,.,CPU读取数据字时:1)CPU输出字地址同时送到Cache和主存;2)Cache先判断该字是否在Cache中;如果在,Cache直接送给CPU;如果不在,再去主存中读取。3)去主存取字时不仅把该字取出,同时还把该字附近的一块数据都取出送给Cache,以便CPU下次读取字时在Cache中读取。,.,CPU与Cache之间的数据交换以“字”为单位,而Cache与主存之间的数据交换以“块”为单位。一块由若干个字组成,块是定长的。为了实现Cache的上述功能,需要解决这样一些问题:1)Cache与主存中存储单元地址映象关系,主存大而Cache小;(主存中的存储单元放在Cache中哪个存储单元?)2)如何实现地址转换,将访问主存的地址转换成访问Cache的地址;(CPU直接输出的是访问主存单元地址,主存长地址变Cache短地址?)3)若访问Cache未命中且Cache未满时,数据块如何调入?Cache已满时,数据块如何替换?先来先走?4)数据的一致性问题:Cache中的更新数据与内存中的陈旧数据之间的更新。,.,4.3.1地址映象,映象:其物理意义就是位置的对应关系,将主存地址变成Cache地址。常见的映象方式主要有三种:1)直接映象2)全相联映象3)组相联映象,CPU,Cache,主存DRAM,地址总线,相联存储表,命中,未命中,数据总线,块,字,字,.,直接映象方式是多对一影射。主存中的一块只能映象到Cache某一个固定的块中。直接映象的关系式:K=ImodMK:Cache块号,I:主存块号,M:Cache总块数,0,0163248.2032,1,1173349.2033,地址映象直接映像,.,0块,1块,15块,0区,1区,255区,Cache,主存,区号,块号,块内地址,块号,块内地址,主存地址,Cache地址,8位,4位,9位,4位,9位,第0块,第1块,第15块,第16块,第17块,第31块,第2032块,第2033块,第2047块,0,1,2,3,Cache块号,主存区号,块表,.,CPU先送出一个主存地址,用主存地址中的区号与块表中区号比较,若命中:访Cache(按主存地址的块号+块内地址)读出一字送CPU;若未命中:访内存(按主存地址的区号+块号)读出一块送Cache。,.,设一个Cache中有8块,访问主存进行读操作的块地址依次为:10110、11010、10110,求每次访问时Cache的内容。,主存区号,块号,块内地址,2位,3位,主存块号,Cache块号,块内地址,比较,未命中访问内存,000001010011100101110111,000001010011100101110111,内存10区,10110,块表,000001010011100101110111,Cache,调入,调入,10,例题,.,设一个Cache中有8块,访问主存进行读操作的块地址依次为:10110、11010、10110,求每次访问时Cache的内容。,主存区号标记,块号,块内地址,2位,3位,主存块号,Cache块号,块内地址,比较,未命中访问内存,11,10,000001010011100101110111,000001010011100101110111,11,内存11区,11010,块表,000001010011100101110111,Cache,调入,调入,.,设一个Cache中有8块,访问主存进行读操作的块地址依次为:10110、11010、10110,求每次访问时Cache的内容。,主存区号标记,块号,块内地址,2位,3位,主存块号,Cache块号,块内地址,比较,命中,11,10,000001010011100101110111,10110,块表,000001010011100101110111,Cache,访问Cache,.,直接映射方式的优点:硬件比较简单,成本低。直接映射方式的缺点:1)每个主存块对应Cache中一个固定的位置,Cache中即使有空的块,但是如果不是对应的内存块则不能调入进去,所以Cache的利用率不高。2)若未命中,从主存读入的块替换出Cache原先存放的块,但很有可能很短一段时间后又要换入。,.,0块,1块,15块,0块,1块,15块,2047块,Cache,主存,2)全相联映象主存中任一块都可以映象到Cache中任一块上。,块号,块内地址,块号,块内地址,主存地址,Cache地址,11位,9位,4位,9位,地址映象全相联映像,块表,主存块号,0,1,2,3,Cache块号,.,组相联映象(普遍采用)前两种映象的折中方案:组与组之间直接映象,组内全相联映象。将Cache分成u组,每组v块,将主存也分成U组,每组V块,u=V(主存中一个组内的块数=Cache中组数)主存块放到Cache哪个组是固定的,但存放到该组哪个块是灵活的。,主存组号,块号,主存地址,Cache地址,7位,块内地址,3位,Cache组号,3位,块号,块内地址,1位,9位,Cache中每组分2块(1位):两路组相联映象;Cache中每组分4块(2位):四路组相联映象;,9位,地址映象组相联映像,.,0块,1块,0块,1块,7块,0块,1块,7块,0块,1块,7块,0组,1组,255组,Cache,主存,0块,1块,0块,1块,0组,1组,7组,共分8组,主存分256组,每组8块,Cache分8组,每组2块。主存中0、8、16映射于Cache第0组的第0或1块。,两路组相联映象,共分256组,每组分8块,.,比较,命中,未命中访问内存,查找块表,访问Cache,000,001,010,主存组号,Cache组号,主存组号,主存地址,Cache地址,7位,3位,块号,块内地址,9位,Cache组号,块号,块内地址,Cache块号,3位,1位,9位,.,比较,命中,查找块表,访问Cache,主存组号,主存地址,Cache地址,7位,3位,块号,块内地址,9位,Cache组号,块号,块内地址,3位,1位,9位,设一个Cache中有8块,块表如下,访问主存进行读操作的地址为:0101011001000100110、求访问时Cache的地址。,0011000100110,例题,001,主存组号标记,0101011,Cache组号,1,Cache块号,.,4.3.2替换算法,有了Cache使CPU的工作效率大大提高。但是当未命中而将新的主存块调入Cache中而它的可用位置又已被占满时,就产生替换算法问题。替换算法目的:获得最高命中率,使CPU访问的块尽可能都在Cache中。1)先进先出算法FIFO按调入Cache的先后决定淘汰的顺序,淘汰最先调入Cache的块。这种方法:实现容易,系统开销少,但不一定合理,因为有些最先调入的块可能正在使用。2)最近最少使用算法LRU为Cache各块建立一个LRU目录,记录其调用情况,把最近使用过的块放在表的最上面,当需要替换时将在最近一段时间内使用最少的块替换出去。这种方法:命中率高,但算法复杂,系统开销大。,.,设一个容量为4个块的全相联Cache,分别采用FIFO和LRU替换算法,假定访问的主存地址块序列为2、11、2、9、7、6、4、3,画出每次访问后Cache中的内容变化情况。解:FIFO先进先出替换算法主存地址块号:211297643Cache块分配情况:操作状态调入调入命中调入调入替换替换替换,例题,.,设一个容量为4个块的全相联Cache,分别采用FIFO和LRU替换算法,假定访问的主存地址块序列为2、11、2、9、7、6、4、3,画出每次访问后Cache中的内容变化情况。解:LRU最近最少使用替换算法主存地址块号211297643Cache块分配情况:操作状态调入调入命中调入调入替换替换替换,例题,.,CPU对Cache的写入更改了Cache的内容,可选用写操作策略使Cache内容与主存内容保持一致。常用的写操作策略:(1)写回法当CPU写Cache命中时,只修改Cache的内容,而不立即写入主存;只有当此块被换出时才写回主存。减少了访问主存的次数,但存在不一致性的隐患。(2)写直达法当CPU写Cache命中时,同时修改Cache与主存的内容,维护了一致性。当CPU写Cache未命中时,直接修改内存的内容。但是降低了Cache的功效。,4.3.2Cache的一致性问题,.,1、简述存储系统的层次结构,说明每个层次的作用。2、在程序的执行过程中,Cache与主存的地址映射是由()。A操作系统来管理的B程序员调度的C由硬件自动完成的D存储管理硬件和存储管理软件共同完成的,作业,.,虚拟存储器是指主存-辅存层次存取系统,因为CPU只能执行调入主存的程序,所以称“虚拟存储器”。物理地址:由CPU地址引脚送出的,用于访问主存的地址。逻辑地址:由编译程序生成,是访问程序的逻辑地址,其地址空间大小受到辅助存储器容量的限制。Cache-主存层次与主存-辅存层次的地址变换映射方式和替换策略都相同,都是基于程序局部性原理。,4.4虚拟存储器,.,两个存储层次遵循的共同原则是:把程序最近、最常用的部分留在高速存储器中,变得不常用了,再送回到低速存储器中,使存储系统的性能接近高速,价格接近低速。,两个存储层次的区别是:1)主存-Cache主要用来弥补主存和CPU之间的速度差距,主存-辅存主要用来弥补主存的容量不足。2)主存的读写时间是Cache读写时间的5-10倍,而硬磁盘的读写时间是主存的千倍,所以主存未命中,系统相对性能损失大。3)CPU与主存、Cache之间有直接访问通路,与辅存没有。4)主存-Cache之间地址变换、数据替换全部由硬件实现,对程序员完全透明。主存-辅存之间地址变换、数据替换由操作系统中的存储管理软件辅助一些硬件共同实现,对系统程序员可见。(所以,这部分内容也放在操作系统中讲。),4.4.1虚拟存储器的基本概念,.,主存-辅存层次的基本数据传送单位可采用几种不同的方案:段、页、段页。,.,页式虚拟存储器:以页为基本单位与主存交换数据。主存空间也分成同样大小的页。主存分成的页为实页,虚拟存储器分成的页为虚页,程序虚地址分为两个字段:高位字段为虚页号,低位字段为页内地址。程序实地址分为两个字段:高位字段为实页号,低位字段为页内地址。由于虚页与实页大小一样,所以页内地址是相等的。虚页号与实页号之间的变换是通过查找主存中的页表来实现的。,虚页号,页内地址,实页号,页内地址,4.4.2页式虚拟存储器,.,优点:页面的起点和终点地址是固定的,方便造页表,新页调入主存也很容易掌握,页外空间浪费少。缺点:处理、保护、共享都不方便。,页面大小一样,页表在主存中,增加了访问主存次数,即使命中也要先访问主存中的页表,再访问主存单元,所以把页表最活跃部分放在Cache中组成快表。快表由硬件构成,比页表小得多,减少了访问主存的时间开销。,.,.,采用页式虚拟存储器,页表索引地址由页表基址寄存器和虚页号拼接而成,已知某程序中一条指令的虚地址是000001111111100000,页表起始地址为0011,页面大小1K,页表中相关单元最后4位(实页号)为:,例题,.,由于程序都具有一定的模块性,一个复杂的大程序可划分成多个逻辑上相对独立的模块,模块之间的界面和调用关系是可以清楚定义的。这些模块可以是子程序、过程、也可以是某类元素的集合。在段式虚拟存储器中,段是按照程序的逻辑结构划分的,各段的长度因程序各异而不同。(因此,分段管理是按用户的要求提出来的。)编程使用的虚地址包含两部分:高位是段号,低位是段内地址。为了把虚地址变换成主存实地址,需要一个段表;段表也是一个段,驻留在主存中。段表指明各段在主存中的位置:每段的名称、段起点、段长度等。,段号,段内地址,虚地址,4.4.3段式虚拟存储器,.,段起始地址,段起始地址,段起始地址,段式管理,段大小不一样,.,CPU根据虚地址访问,段表的起始地址+段号,形成访问段表对应存储单元的地址,然后根据表内装入位判断该段是否已经调入主存,如果已经调入,从段表中读出该段在主存中的起始地址,与段内地址相加,得到对应的主存实地址。,段号,段表起始地址,段表(主存中),主存地址,装入标志,段表起始地址,虚地址,实地址,段表基址寄存器,段号,不能拼接只能相加。因段大小不一样。段内地址位数不定。,+,段内地址,段基址寄存器,段表访问地址,.,例题,.,段式管理优点:段的分界与程序的自然分界相对应,所以具有逻辑独立性,易于程序的编译、管理、修改和保护,也便于多道程序共享。某些类型的段具有动态可变长度,允许自由调度以便有效利用主存空间。缺点:因为段的长度各不同,起点和终点不定,给主存空间分配带来麻烦,容易在段间留下许多零碎的存储空余空间,造成浪费。,页式存储器,碎片存在页内。(一个大程序可能分4.6个页面)段式存储器,碎片存在段外。(一个大程序分不同大小的段)段外的碎片操作系统可以收集,页内碎片不好收集。,.,段页式管理:结合分段和分页方法。在分段管理方法中,存储器与硬盘交换数据是以可变长的段为单位。对于容量比较大的段来讲,一次分配整个一段的主存空间不太灵活,因为这一大段程序中(现在执行的和没有执行的)都调入内存。因此我们可以把程序按模块分段,段内再分页,进入主存以页为单位。用段表和页表进行两级定位管理。虚拟存储器地址分成3部分:段号,页号,页内地址。,段号,页号,页内地址,4.4.3段页式虚拟存储器,.,段表(主存中),装入,段表地址,虚地址,段表基址寄存器,段起始地址,+,装入,实页号,页表(主存中),页内地址,实地址,实页号,页0,页1,页0,页1,页2,页3,页0,页1,52H,54H,40H,内存实地址,页内地址,段表起始地址,虚页号,段号,段基址寄存器,段表起始地址,段号,段表:用于保存各段相对应的页表首地址页表:用于保存段中各虚页对应的实页,段0,段1,段2,0,1,2,3,4,5,6,7,主存页号,.,作业,1.虚拟存储指的是哪个存储层次?2.虚拟地址和物理地址的概念?根据寻址方式计算出来的有效地址是虚拟地址还是物理地址?3.在计算机中,主存与辅存的工作方式有什么主要差别?,.,第五章输入输出(I/O)系统,5.1输入输出系统的组成输入输出系统包含两部分:外部设备-输入输出设备和辅助存储器外设与主机之间的控制部件(设备控制器设备适配器或接口),.,5.2输入输出设备的寻址方式为了CPU对I/O设备进行寻址和选择,必须给每台设备规定一些地址码(数据寄存器/状态寄存器/命令寄存器对应的地址),称为设备代码(又称端口地址或端口号)。有以下两种寻址方法:专设I/O指令:指令的地址码字段指出输入输出设备的设备代码。直接寻址INAL/AX,n-AL/AX:CPU内部寄存器OUTn,AL/AX-n:立即数,表示设备代码间接寻址(寄存器寻址)INAL/AX,DX-AL/AX:CPU内部寄存器OUTDX,AL/AX-DX:CPU内部寄存器,用于存放设备代码利用访存指令完成I/O功能:从主存的地址空间中分出一部分地址码作为I/O的设备代码,指定设备数据缓冲寄存器或设备状态寄存器。,.,5.3设备控制器(I/O接口)的基本功能及类型,5.3.1设备控制器基本功能实现主机和外围设备之间的数据传送控制实现数据缓冲,以达到主机同外围设备之间的速度匹配接受主机的命令,提供设备接口的状态,并按照主机的命令控制设备,5.3.2I/O接口类型按照数据传送的宽度分并行接口串行接口按照数据传送的控制方式分程序直接控制方式程序中断方式DMA输入输出方式I/O通道控制方式,.,程序直接控制方式,完全通过程序来控制主机和外围设备之间的信息传送。通常在用户的程序中安排一段由输入输出指令和其他指令所组成的程序段直接控制外围设备的工作。程序查询方式-检测“完成”状态标志。控制和硬件实现方式简单外设和主机及各外设之间不能同时工作,系统效率很低,多用于单片机.,.,CPU要从3个设备轮流输入数据,设备1,2,3的状态寄存器端口号分别用STAT1,STAT2,STAT3表示,第5位是输入准备位。INPUT:INAL,STAT1TESTAL,20HJZDEV2CALLFARPTRPROC1DEV2:INAL,STAT2TESTAL,20HJZDEV3CALLFARPTRPROC2DEV3:INAL,STAT3TESTAL,20HJZNO_INPUTCALLFARPTRPROC3NO_INPUT:,例题,.,程序中断传送方式,中断是外围设备用来“主动”通知CPU,准备送出输入数据或接收输出数据的一种方法。一定程度上实现了CPU和外围设备的并行工作提高了计算机系统的工作效率实现了外围设备的并行工作CPU按优先级响应多个I/O设备的中断请求硬件结构相对复杂一些,服务开销时间较大一般适用于随机出现的服务,.,CPU,8259中断控制器,键盘鼠标硬盘打印机,.,中断方式下主机和打印机的工作流程图,.,DMA输入输出方式,DMA简介在外围设备和主存之间开辟的由硬件组成的直接数据传送通路适用于内存和高速外围设备之间大批数据交换CPU只进行预处理和后处理数据传送由I/O系统中增设的DMA控制器完成传送数据的主存地址和需要传送数据的计数值特点:数据传送速度很高传送速率仅受到内存访问时间的限制主存储器被并行工作的CPU和I/O子系统所共享,.,DMA的三种工作方式CPU暂停方式主机响应DMA请求后,让出存储总线
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国异丙肌苷行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国废料回收行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国巴比妥类药物行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国工业烘干设备市场发展分析及市场趋势与投资方向研究报告
- 2025-2030中国家居建材行业市场深度调研及前景趋势与投资研究报告
- 医疗AI在数据驱动时代的伦理与隐私探讨
- 全球化背景下的文学比较-洞察阐释
- macOS平台跨平台框架探究-洞察阐释
- 情绪调节干预与行为改变-洞察阐释
- 多场耦合优化方法研究-洞察阐释
- 2008年安徽省中考英语试卷及答案
- 医疗保障局干部职工能力提升年活动实施方案
- 超市项目投标书(宜佳)标书模板
- 仁爱版八年级下册英语unit5-topic2-教案
- YB/T 2010-2003铁路轨距挡板用热轧型钢
- 2023年辽宁高考数学试题及答案经典word版(理科)
- 设计管理资料课件
- 毛竹脚手架搭设施工方案
- 工贸行业重点可燃性粉尘目录(2015版)
- 内科学教学课件:脑梗死
- 《各级法院代字表》
评论
0/150
提交评论