版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第八章第八章 冯冯诺依曼(诺依曼(Von NeumannVon Neumann)模)模型型存储程序计算机模型存储程序计算机模型第七章,第七章,判定元件和存储元件判定元件和存储元件基于约翰基于约翰冯冯诺依曼(诺依曼(John Von John Von NeumannNeumann)提出的存储程序计算机模型)提出的存储程序计算机模型现代计算机的构建思想现代计算机的构建思想1943: 1943: ENIACENIAC十进制,电子管十进制,电子管硬连线程序硬连线程序 设置开关设置开关1944: EDVAC1944: EDVAC开始研制开始研制Electronic Discrete Variable A
2、utomatic Computer,Electronic Discrete Variable Automatic Computer,电电子离散变量自动计算机子离散变量自动计算机 程序存储于程序存储于memorymemory之中之中1945: John von Neumann1945: John von NeumannFirst Draft of a Report on EDVAC, First Draft of a Report on EDVAC, 关于关于EDVACEDVAC的报告的报告草案草案 John von NeumannJohn von Neumann(19031957),出生于匈牙
3、出生于匈牙利,利,20世纪最杰出的数世纪最杰出的数学家之一学家之一在计算机科学、经济、在计算机科学、经济、物理学中的量子力学及物理学中的量子力学及几乎所有数学领域都作几乎所有数学领域都作过重大贡献过重大贡献冯冯诺依曼模型诺依曼模型由指令组成的程序和由指令组成的程序和程序所需的数据位于程序所需的数据位于存储器存储器中中指令的执行由指令的执行由处理单处理单元元完成完成指令执行的顺序由指令执行的顺序由控控制单元制单元来控制来控制输入设备输入设备将程序和所将程序和所需的数据送入计算机需的数据送入计算机之中之中输出设备输出设备将执行结果将执行结果送出计算机之外送出计算机之外注意:处理单元和控注意:处理单
4、元和控制单元是制单元是CPU的主要的主要组成部分组成部分存储器存储器处理单元处理单元ALUReg输出设备输出设备*显示器显示器*打印机打印机*磁盘磁盘输入设备输入设备*键盘键盘*鼠标鼠标*扫描仪扫描仪*磁盘磁盘控制单元控制单元PCCPU存储器存储器能够存储信息的二维阵列能够存储信息的二维阵列每一行每一行,存储单元(存储单元(Memory LocationMemory Location)可使用一个唯一的标识符进行识别可使用一个唯一的标识符进行识别,地址地址包含一定大小的内容包含一定大小的内容指令指令数据数据地址和内容地址和内容x0000 0000 x0000 0001x4000 0000 x40
5、00 0001x4000 0002x4000 0003xFFFF FFFFx4000 0003x0000 0001x1000 0000 x1100 0001存储器存储器2 232328 8位,一共有位,一共有2 23232个存储单元,每个存储单个存储单元,每个存储单元可以存储元可以存储8 8个比特个比特有有2 23232个不同存储单元的地址空间和个不同存储单元的地址空间和8 8位的寻址位的寻址能力,可称为能力,可称为4G4G字节(缩写为字节(缩写为GBGB)的存储器)的存储器要确定要确定2 23232个地址,就必须使用个地址,就必须使用3232位二进制数表位二进制数表示示处理单元处理单元计算机
6、里信息的处理是由处理单元执行的计算机里信息的处理是由处理单元执行的现代计算机的处理单元可以包含许多复杂的功现代计算机的处理单元可以包含许多复杂的功能单元,每个都能够执行一个特定的运算(除能单元,每个都能够执行一个特定的运算(除法,平方根等)法,平方根等)最简单的单元最简单的单元ALUALU(Arithmetic and Logic UnitArithmetic and Logic Unit,算术和逻辑单元)算术和逻辑单元)寄存器堆寄存器堆/ /文件文件RegRegALUALU附近附近,临时存取临时存取数据数据例如,计算例如,计算(A+B)(A+B)C C,先,先在存储器中存储在存储器中存储A+
7、BA+B的的结果,结果,随后随后读取出来,再读取出来,再和和C C相乘相乘访问访问存储器的时间远长于执行加法或乘法的存储器的时间远长于执行加法或乘法的时间时间使用使用临时存储空间临时存储空间存储存储A+BA+B的的结果结果字字ALUALU正常处理的信息量的大小通常被称为计算正常处理的信息量的大小通常被称为计算机的机的字长字长(word length)(word length),每一个元素被称为,每一个元素被称为一个一个字字(wordword)取决于计算机的不同用途,每一个指令集结构取决于计算机的不同用途,每一个指令集结构都拥有自己的字长都拥有自己的字长IntelIntel的的Pentium P
8、entium 处理器处理器,3232位位SunSun的的SPARC-V9SPARC-V9和和IntelIntel的的ItaniumItanium处理处理,6464位位寄存器堆寄存器堆/ /文件文件典型的寄存器的大小是和典型的寄存器的大小是和ALUALU处理的值的大小处理的值的大小一样一样每个寄存器都包含一个字每个寄存器都包含一个字控制单元控制单元处理单元负责处理单元负责“执行信息的实际处理执行信息的实际处理”,而控,而控制单元则是制单元则是“指挥指挥信息的处理信息的处理”其具体工作包括:其具体工作包括:在执行程序的过程中,在执行程序的过程中,跟踪跟踪存储器中的指令存储器中的指令在处理指令的过程
9、中,在处理指令的过程中,跟踪跟踪指令的处理阶段指令的处理阶段PCPC跟踪存储器中的指令,确切地说是跟踪要处理跟踪存储器中的指令,确切地说是跟踪要处理的下一条指令的下一条指令为了跟踪哪一条指令是下一步要运行的,控制单为了跟踪哪一条指令是下一步要运行的,控制单元有一个用来容纳下一条指令所在地址的寄存元有一个用来容纳下一条指令所在地址的寄存器器“程序计数器程序计数器”(Program CounterProgram Counter,简,简称称PCPC)/ / “ “指令指针指令指针”控制器控制器控制单元可以是多个控制器,分别从属于各个控制单元可以是多个控制器,分别从属于各个部件部件ALUALU控制器用
10、于控制控制器用于控制ALUALU执行何种运算执行何种运算对于输入和输出则有专门的对于输入和输出则有专门的I/OI/O控制器控制器输入输入/ /输出设备输出设备要使计算机处理信息,信息必须被送入计算机要使计算机处理信息,信息必须被送入计算机中中为了能够使用处理后的结果,它必须能以某种为了能够使用处理后的结果,它必须能以某种形式显示在计算机以外形式显示在计算机以外为输入和输出的目的而出现的设备在计算机术为输入和输出的目的而出现的设备在计算机术语中被称为语中被称为外围设备外围设备(peripheralsperipherals)输入输入/ /输出设备输出设备外围设备外围设备(peripheralspe
11、ripherals)键盘键盘输入;监视器(显示器)输入;监视器(显示器)输出输出输入:输入:鼠标,数字扫描仪鼠标,数字扫描仪、磁盘磁盘输输出:出:打印机打印机,磁盘磁盘DLXDLX数据通路数据通路一个采用一个采用总线结构总线结构、多时钟周期多时钟周期的实现方案的实现方案两端都有箭头的粗黑线结构代表数据通路的两端都有箭头的粗黑线结构代表数据通路的总总线线可用于存储器与处理器之间的通信,也可以用于可用于存储器与处理器之间的通信,也可以用于处理器与处理器与I/OI/O设备之间的通信设备之间的通信主要优点是功能多、成本低,主要缺点是会产生主要优点是功能多、成本低,主要缺点是会产生通信瓶颈通信瓶颈Gat
12、eMDR32GateALU32存储器存储器输入输入输输出出GatePC3232控制单元控制单元处理单元处理单元DLXDLX总线总线DLXDLX的总线由的总线由3232根线和相关的电子元件组成根线和相关的电子元件组成允许将允许将3232位位信息从一个组件传输到另一个组件信息从一个组件传输到另一个组件在总线上一次只可传输一个值在总线上一次只可传输一个值每一个提供数据给总线的组件在它的输入箭头后每一个提供数据给总线的组件在它的输入箭头后都有一个三角形(称为都有一个三角形(称为三态设备三态设备),使计算机的使计算机的控制逻辑一次只允许一个提供者能提供信息给总控制逻辑一次只允许一个提供者能提供信息给总线
13、线从总线获得数据的组件通过将从总线获得数据的组件通过将LD.xLD.x(加载使能)(加载使能)信号设为信号设为1 1(回忆门控锁存器),从而得到信息(回忆门控锁存器),从而得到信息存储器:存储器:MARMAR和和MDRMDR如果要如果要读读出某个存储单元中的内容,首先把它出某个存储单元中的内容,首先把它的地址存入的地址存入地址寄存器地址寄存器(MARMAR),然后查询存),然后查询存储器,该地址所对应的存储单元的内容将会输储器,该地址所对应的存储单元的内容将会输出到出到数据寄存器数据寄存器(MDRMDR)。)。如果要如果要写写一个值到存储单元中,首先要把目的一个值到存储单元中,首先要把目的地址
14、存入地址存入MARMAR,把值存入,把值存入MDRMDR中,然后设中,然后设“写使写使能能”信号为信号为1 1,查询存储器,查询存储器,MDRMDR里的信息就会里的信息就会被写到被写到MARMAR中的地址所对应的存储单元里。中的地址所对应的存储单元里。MARMAR和和MDRMDRMARMAR:3232位位,反映了,反映了DLXDLX的存储器的地址空间是的存储器的地址空间是2 23232个存储单元个存储单元MDRMDR:3232位位,而,而DLXDLX是字节可寻址的,即每个单是字节可寻址的,即每个单元包含元包含8 8位,因此在大多数情况下,位,因此在大多数情况下,MDRMDR包含了包含了从从MA
15、RMAR中的地址开始的中的地址开始的4 4个连续单元的数据个连续单元的数据,有,有时,则包含的是时,则包含的是MARMAR所指的单元中的数据(所指的单元中的数据(8 8位)位)符号扩展的结果(符号扩展的结果(3232位)位)处理单元处理单元ALUALU和寄存器堆和寄存器堆ALUALU可以做加法、减法、乘法、除法、与、或、可以做加法、减法、乘法、除法、与、或、异或、比较、移位等运算异或、比较、移位等运算3232个整数寄存器、个整数寄存器、3232个浮点寄存器个浮点寄存器DLXDLX子集子集未包括整数乘法、除法及浮点数运算等操作,也未包括整数乘法、除法及浮点数运算等操作,也未包括浮点寄存器未包括浮
16、点寄存器控制单元控制单元最最重要的组件是有限状态机,它指挥所有重要的组件是有限状态机,它指挥所有行为行为有限状态机有限状态机的一个输入是的一个输入是CLKCLK,它说明了每个时钟周,它说明了每个时钟周期持续的期持续的时间时间为了为了跟踪指令的处理阶段,控制单元还需要一个指令跟踪指令的处理阶段,控制单元还需要一个指令寄存器(寄存器(Instruction RegisterInstruction Register,简称,简称IRIR),用来保),用来保存正在处理的指令存正在处理的指令。IRIR也是有限状态机的一个输入,也是有限状态机的一个输入,因为要处理的因为要处理的DLXDLX指令决定了计算机要
17、执行的行为指令决定了计算机要执行的行为。程序计数器(程序计数器(PCPC)记录了在当前的指令完成后,下一条要被执行的指令记录了在当前的指令完成后,下一条要被执行的指令所在的地址所在的地址空心箭头空心箭头实心实心箭头表示沿着相应的通路流动的是箭头表示沿着相应的通路流动的是数据元数据元素素空心空心箭头表示控制数据元素处理的箭头表示控制数据元素处理的控制信号控制信号有限状态机有限状态机的所有输出都是空心箭头的所有输出都是空心箭头控制了计算机的处理控制了计算机的处理LD.IRLD.IR(1 1位),控制了当前时钟周期内,指令寄位),控制了当前时钟周期内,指令寄存器(存器(IRIR)是否要从总线上加载新
18、的指令)是否要从总线上加载新的指令GateALUGateALU,决定,决定ALUOutALUOut的值在当前时钟周期内是的值在当前时钟周期内是否被提供给总线否被提供给总线输入输入/ /输出设备输出设备由键盘和显示器组成由键盘和显示器组成最简单的键盘需要两个寄存器,一个数据寄存器最简单的键盘需要两个寄存器,一个数据寄存器(KBDRKBDR),用来保存由键盘键入字符的),用来保存由键盘键入字符的ASCIIASCII码,码,和一个状态寄存器(和一个状态寄存器(KBSRKBSR),用来提供键盘键入),用来提供键盘键入字符的状态信息字符的状态信息最简单的显示器同样需要两个寄存器,一个用来最简单的显示器同
19、样需要两个寄存器,一个用来保存那些将被显示在显示器上的内容的保存那些将被显示在显示器上的内容的ASCIIASCII码码(DDRDDR),另一个用来提供相关的状态信息(),另一个用来提供相关的状态信息(DSRDSR)第第1212章章指令处理指令处理冯冯诺伊曼模型的主要思想诺伊曼模型的主要思想把程序和数据都作为一个把程序和数据都作为一个二进制序列二进制序列存储在计算存储在计算机的机的存储器存储器里,在控制单元的引导下一次执行一里,在控制单元的引导下一次执行一条指令条指令指令在控制单元的指挥下以一种系统的方式被指令在控制单元的指挥下以一种系统的方式被逐步处理,根据指令处理所需进行的操作,可逐步处理,
20、根据指令处理所需进行的操作,可以以将一条指令的执行分解为一系列步骤将一条指令的执行分解为一系列步骤指令处理指令处理多时钟周期多时钟周期的实现方案的实现方案指令的每一步将占用一个时钟周期,不同的指令指令的每一步将占用一个时钟周期,不同的指令可能被分解为不同的步骤,占用不同的时钟周期,可能被分解为不同的步骤,占用不同的时钟周期,“多周期多周期”因此得名因此得名在现代计算机中,时钟周期以在现代计算机中,时钟周期以纳秒纳秒(或称毫微(或称毫微秒,十亿分之一秒)为单位秒,十亿分之一秒)为单位比如,一个比如,一个3.3GHz3.3GHz的处理器在的处理器在1 1秒内有秒内有3333亿个时亿个时钟周期,即一
21、个时钟周期只需钟周期,即一个时钟周期只需0.3030.303纳秒纳秒DLXDLX指令执行阶段指令执行阶段按照按照DLXDLX指令执行的步骤,将处理指令所需的指令执行的步骤,将处理指令所需的操作划分为以下阶段(每条操作划分为以下阶段(每条DLXDLX指令需要其中指令需要其中的的3 3到到5 5个个阶段):阶段):取取指令(指令(Instruction fetchInstruction fetch)译码译码/ /取寄存器(取寄存器(Instruction decode/Register Instruction decode/Register fetchfetch)执行执行/ /有效地址有效地址/
22、/完成分支完成分支(Execution/Effective (Execution/Effective address/Branch completion)address/Branch completion)访问访问内存(内存(Memory accessMemory access)写回写回(Write-backWrite-back)指令指令计算机处理的最基本单位计算机处理的最基本单位计算机计算机程序程序包含了一组指令,每条指令都是由包含了一组指令,每条指令都是由一个一个位序列位序列表示,并且整个程序被存储在计算表示,并且整个程序被存储在计算机的存储器中机的存储器中由两个部分组成:操作码(指令执行
23、的内容)由两个部分组成:操作码(指令执行的内容)和操作数(要操作的对象)和操作数(要操作的对象)DLXDLX子集指令,由子集指令,由32 32 位(一个字)组成,从左位(一个字)组成,从左向右依次编号为向右依次编号为bit31bit0bit31bit0DLX ADDDLX ADD指令指令需要三个操作数:两个源操作数(待加的数据)需要三个操作数:两个源操作数(待加的数据)和一个目标操作数(在加法执行后要存储的和)和一个目标操作数(在加法执行后要存储的和)格式:格式:两个源操作数两个源操作数:包含在寄存器中的包含在寄存器中的值值加法的结果加法的结果:放入放入32个寄存器的某一个个寄存器的某一个32
24、个寄存器个寄存器:需要需要5位位确定每一个确定每一个教材订正:教材订正:R6错了错了31 2625 21 20 16 15 1110 65 00 0 0 0 0 00 0 0 1 0 0 0 1 1 0 0 0 1 1 00 0 0 0 00 0 0 0 0 1R-类型类型R2R6R6未用未用ADDbit31:26bit31:26:000000R000000R类型类型bit5:0bit5:0:要执行的函数,要执行的函数,000001000001,是加法操,是加法操作作bit15:11bit15:11:存储的结果所在的位置,存储的结果所在的位置,R6R6bit25:21bit25:21和和bit
25、20:16bit20:16:存储两个源操作数存储两个源操作数的寄存器,的寄存器,R2R2和和R6R6“将将R2R2(寄存器(寄存器2 2)和)和R6R6里的内容相加,结果里的内容相加,结果存回存回R6R6里。里。”DLX LWDLX LW指令指令L L代表代表加载加载(LoadLoad,读存储器中的值,读存储器中的值,写到寄写到寄存器中存器中),),W W代表字代表字“进入指定的存储单元,从该单元开始,读取进入指定的存储单元,从该单元开始,读取连续连续4 4个存储单元里面包含的值,结果存入一个存储单元里面包含的值,结果存入一个寄存器里个寄存器里”需要两个操作数需要两个操作数:从存储器读出的值和
26、目标寄存器从存储器读出的值和目标寄存器31 26 25 2120 1615 00 1 1 1 0 00 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0LWR3R26bit31:26bit31:26 :011100011100,是,是I I类型的类型的LWLW指令指令bit20:16bit20:16:指令指令执行结束后从存储器里读出的值将执行结束后从存储器里读出的值将存存入的寄存器入的寄存器bit25:21bit25:21 和和bit15:0bit15:0 :用来用来计算出要读取位置的计算出要读取位置的地地址址将将bit15:0bit15:0里
27、的二进制补码整数符号扩展为里的二进制补码整数符号扩展为3232位,再与位,再与bit25:21bit25:21表示的寄存器里的数值相加,结果即为表示的寄存器里的数值相加,结果即为地址地址“基址基址+ +偏移量偏移量”寻址模式寻址模式“将将R3R3里的内容同数值里的内容同数值6 6相加,构成一个存储单元的地相加,构成一个存储单元的地址,从该单元开始,读取连续址,从该单元开始,读取连续4 4个存储单元里面包含的个存储单元里面包含的值,并加载到值,并加载到R2R2里。里。”寻址模式寻址模式:计算计算将要读取的存储单元的地址的将要读取的存储单元的地址的机制机制DLX BEQZDLX BEQZ指令指令(
28、第九章)(第九章)B B代表代表分支分支(BranchBranch),),EQEQ代表代表“相等相等”,Z Z代代表表“零零”“判断某个寄存器的值是否为零,如果等于零,判断某个寄存器的值是否为零,如果等于零,PCPC就被某条指令的地址加载就被某条指令的地址加载”需要两个操作数需要两个操作数:寄存器,某条指令的地址寄存器,某条指令的地址31 2625 2120 1615 010100000011000000001001000110100BEQZR3x1234BEQZBEQZbit31:26bit31:26:101000101000,是,是I I类型类型的的BEQZBEQZ指令指令bit25:21
29、bit25:21:存储源操作数的寄存器存储源操作数的寄存器bit15:0bit15:0:用来计算出用来计算出指令指令地址地址的值的值将将bit15:0bit15:0里的二进制补码整数符号扩展为里的二进制补码整数符号扩展为3232位,再与位,再与PCPC里的数值相加,结果即为地址里的数值相加,结果即为地址PC+SEXT(IR15:0)PC+SEXT(IR15:0)“判断判断R3R3里的值里的值是否为是否为0 0?如果如果R3R3的值为的值为0 0,PCPC就被就被计算计算得到的地址加载得到的地址加载;如果如果R3R3的值不为的值不为0 0,PCPC保持不变保持不变”1 1、取指令阶段取指令阶段从
30、存储器中获得下一从存储器中获得下一条指令,放在控制单条指令,放在控制单元的指令寄存器中元的指令寄存器中为了执行下一条指令为了执行下一条指令的任务,必须先确定的任务,必须先确定它位于哪里它位于哪里程序计数器(程序计数器(PCPC)包含着下一条指令包含着下一条指令的的起始起始地址(地址(DLXDLX指指令由令由3232位组成,需位组成,需要要4 4个连续的存储单个连续的存储单元)元)GateMDR32GateALU32存储器存储器输入输入输输出出GatePC3232控制单元控制单元处理单元处理单元PC取指令阶段取指令阶段步骤步骤(1)(1)MARMARPCPCMDRMDRMemMARMemMARI
31、RIRMDRMDR32GateALU输入输入输输出出GatePC32控制单元控制单元处理单元处理单元IRLD.IRPCGateMDRMDRMAR3232LD.MDR存储器存储器LD.MAR32取指令阶段取指令阶段步骤步骤(2)(2)MARMARPCPCALUOutALUOutPC+4PC+4MDRMDRMemMARMemMARPCPCALUOutALUOutIRIRMDRMDR32GateALU输入输入输输出出GatePC32控制单元控制单元处理单元处理单元IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUPC4GateMDRMDRMAR3232LD.MDR存储器存储器LD.M
32、AR2 2、译码译码/ /取取寄存器阶段寄存器阶段(1)(1)译码译码识别指令识别指令6-64 6-64 译码器译码器:IR31:26IR31:2632GateALU输入输入输输出出GatePC32控制单元控制单元处理单元处理单元IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUPC4GateMDRMDRMAR3232LD.MDR存储器存储器LD.MAR控制器31:26PC2 2、译码译码/ /取取寄存器阶段寄存器阶段(2)(2)取寄存器取寄存器为后面阶段获取为后面阶段获取操作数操作数A A( (IR25:21),IR25:21),B B( (IR20:16), IR20:16
33、), ALUOutALUOutPCPC+ + SEXT(IR15:0)SEXT(IR15:0)32GateALU输入输入输输出出GatePC32IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUGateMDRMDRMAR3232LD.MDR存储器存储器LD.MAR控制器控制器31:26PCSEXT寄存器堆寄存器堆BALD.BLD.A25:2120:1615:032SR1SR2B.SBMUXSR1OUTSR2OUTPC43232译码译码译码:译码:识别指令进而确定下一步要去做什么识别指令进而确定下一步要去做什么6-646-64的译码器的译码器:IR31:26IR31:26依据译码
34、器的输出为依据译码器的输出为1 1的线,决定了余下的的线,决定了余下的2626位位需要做哪些工作需要做哪些工作取寄存器取寄存器示例示例ADDADD指令指令将从将从IR25:21IR25:21和和IR20:16IR20:16所指示的所指示的R2R2和和R6R6中获得源操作数,传给中获得源操作数,传给ALUALU的的A A和和B B寄存寄存器;器;计算计算PCPC与与IR15:0IR15:0符号扩展的和符号扩展的和,结果存储于结果存储于ALUOutALUOut寄存器寄存器。LWLW指令指令将从将从IR25:21 IR25:21 和和IR20:16IR20:16所指示的所指示的R3R3和和R2R2中
35、获得源操作数,传给中获得源操作数,传给ALUALU的的A A寄存器寄存器和和B B寄存器;寄存器;计算计算PCPC与与IR15:0IR15:0符号扩展的和符号扩展的和,结果存储于结果存储于ALUOutALUOut寄存器寄存器。BEQZBEQZ指令指令将从将从IR25:21 IR25:21 和和IR20:16IR20:16所指示的所指示的R3R3和和R0R0中中获得源操作数,传给获得源操作数,传给ALUALU的的A A寄存器寄存器和和B B寄存器;寄存器;计算计算PCPC与与IR15:0IR15:0符号扩展的符号扩展的和和,结果存储于结果存储于ALUOutALUOut寄存器寄存器。有的操作的结果
36、在后面的阶段并不会用到,但这并不浪费时有的操作的结果在后面的阶段并不会用到,但这并不浪费时间,因为这些操作是同时进行的间,因为这些操作是同时进行的3 3、执行执行/ /有效有效地址地址/ /完成分支完成分支根据译码产生根据译码产生的的控控制信号制信号(空心箭头)(空心箭头)ALUOutALUOut A Op BA Op B或或计算有效地址;计算有效地址;或或完成分支完成分支32GateALU输入输入输输出出GatePC32IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUGateMDRMDRMAR3232LD.MDR存储器存储器LD.MAR控制器控制器31:26PCSEXT寄存
37、器堆寄存器堆BALD.BLD.A25:2120:1615:032SR1SR2B.SBMUXSR1OUTSR2OUTPC43232ADDADD指令指令ALUOutALUOut A + BA + B32GateALU输入输入输输出出GatePC32IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUGateMDRMDRMAR3232LD.MDR存储器存储器LD.MAR控制器控制器31:26PCSEXT寄存器堆寄存器堆BALD.BLD.A25:2120:1615:032SR1SR2B.SBMUXSR1OUTSR2OUT43232AMUXA.SPC25:0ALU控制器控制器4LWLW指令
38、指令ALUOutALUOut A A + + SEXT(IR15:0)SEXT(IR15:0)32GateALU输入输入输输出出GatePC32IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUGateMDRMDRMAR3232LD.MDR存储器存储器LD.MAR控制器控制器31:26PCSEXT寄存器堆寄存器堆BALD.BLD.A25:2120:1615:032SR1SR2B.SBMUXSR1OUTSR2OUT43232AMUXA.SPC25:04ALU控制器控制器ALUOp4BEQZBEQZ指令指令Z Z A = 0 A = 0if(Z) if(Z) PC PC ALUOu
39、t ALUOut32GateALU输入输入输输出出GatePC32IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUGateMDRMDRMAR3232LD.MDR存储器存储器LD.MAR控制器控制器31:26PCSEXT寄存器堆寄存器堆BALD.BLD.A25:2120:1615:032SR1SR2B.SBMUXSR1OUTSR2OUT43232AMUXA.SPC2ZZ5:04ALU控制器控制器ALUOp4执行执行/ /有效地址有效地址/ /完成分支完成分支根据译码产生的控制信号,对上一阶段得到的根据译码产生的控制信号,对上一阶段得到的A A寄存器和寄存器和B B寄存器的值执行
40、算术寄存器的值执行算术/ /逻辑运算;逻辑运算;或或计算出处理指令所需的存储单元的地址,即计算出处理指令所需的存储单元的地址,即有效地址;有效地址;或者或者完成分支跳转完成分支跳转示例示例ADDADD指令指令在在ALUALU中进行加法运算,得到加法中进行加法运算,得到加法运算运算结果,存结果,存储于储于ALUOutALUOut寄存器中寄存器中LWLW指令指令选择选择IR15:0IR15:0符号扩展的结果,在符号扩展的结果,在ALUALU中与中与A A寄存寄存器进行加法运算,得到一个器进行加法运算,得到一个有效地址有效地址,存储于,存储于ALUOutALUOut寄存器中寄存器中BEQZBEQZ指
41、令指令如果如果A A寄存器中的值为零,寄存器中的值为零,PCPC被被ALUOutALUOut寄存器寄存器中中的值(上一阶段计算所得)的值(上一阶段计算所得)加载加载,否则保持不变,否则保持不变4 4、访问内存访问内存获取内存中的数据获取内存中的数据LWLW指令指令把在上一阶段计算得到的把在上一阶段计算得到的ALUOutALUOut寄存器中的地址寄存器中的地址加载到地址寄存器加载到地址寄存器MARMAR读取存储器读取存储器,一个,一个3232位的数据被放进数据寄存器位的数据被放进数据寄存器MDRMDRLWLW指令指令访问访问内存内存LWLW指令指令MARMAR ALUOutALUOutMDRMD
42、RMemMARMemMAR32GateALU输入输入输输出出GatePC32IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUGateMDRMDRMAR3232LD.MDR存储器存储器LD.MAR控制器控制器31:26PCSEXT寄存器堆寄存器堆BALD.BLD.A25:2120:1632SR1SR2B.SBMUXSR1OUTSR2OUT43232AMUXA.SPC2ZZ5:04ALU控制器控制器ALUOp4EXT.S25:05 5、写回、写回结果被写到指定的目标中结果被写到指定的目标中LWLW指令指令MDRMDR中的值被写入中的值被写入IR20:16IR20:16所指示的所指
43、示的R2R2中中ADDADD指令指令加法运算的加法运算的ALUOutALUOut寄存器中的结果被写入寄存器中的结果被写入IR15:11IR15:11所指示的所指示的R6R6中中LWLW指令指令结果写到指定目标结果写到指定目标LWLW指令指令(IR20:16)(IR20:16)MDRMDR32GateALU输入输入输输出出GatePC32IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUGateMDRMDRMAR3232LD.MDR存储器存储器LD.MAR控制器控制器31:26PCSEXT寄存器堆寄存器堆BALD.BLD.A25:2120:1632SR1SR2B.SBMUXSR1
44、OUTSR2OUT43232AMUXA.SPC2ZZ32GateBMEM.EN.R.WLD.REG5DR5:04ALU控制器控制器ALUOp4EXT.S25:0ADDADD指令指令(IR15:11)(IR15:11) ALUOutALUOut32GateALU输入输入输输出出GatePC32IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUGateMDRMDRMAR3232LD.MDR存储器存储器LD.MAR控制器控制器31:26PCSEXT寄存器堆寄存器堆BALD.BLD.A25:2120:1632SR1SR2B.SBMUXSR1OUTSR2OUT43232AMUXA.SPC
45、2ZZ32GateBMEM.EN.R.WLD.REG15:11DR.SDRMUX5DR5:04ALU控制器控制器ALUOp4EXT.S25:0下一阶段下一阶段这五个阶段完成之后,控制单元就会从取指令这五个阶段完成之后,控制单元就会从取指令阶段开始执行下一条指令阶段开始执行下一条指令由于在取指令阶段由于在取指令阶段PCPC被更新,包含了存储在存被更新,包含了存储在存储单元中的储单元中的下一条指令的地址下一条指令的地址这样下一条指令接下来就会被读取。处理就这这样下一条指令接下来就会被读取。处理就这样持续下去样持续下去直到被打断直到被打断 不是所有的不是所有的DLXDLX指令都包括上述五个阶段。但指
46、令都包括上述五个阶段。但是所有指令均需要取指令阶段和译码是所有指令均需要取指令阶段和译码/ /取寄存取寄存器阶段器阶段ADDADD指令指令,不需要访问内存阶段不需要访问内存阶段改变执行顺序改变执行顺序ADDADD:处理数据的处理数据的运算指令运算指令LWLW:把数据从一个地方移动到另一个地方的把数据从一个地方移动到另一个地方的数据传数据传送指令送指令BEQZBEQZ:改变指令执行的顺序改变指令执行的顺序的的控制指令控制指令有时会需要先执行第一条指令,接着第二条,第三条,有时会需要先执行第一条指令,接着第二条,第三条,然后又执行第一条,接着第二第三,接着又是第一然后又执行第一条,接着第二第三,接
47、着又是第一条条,即,即循环结构循环结构由于每条指令的执行都是从用由于每条指令的执行都是从用PCPC加载加载MARMAR开始的,因开始的,因此,如果想要改变指令执行的顺序,就需要在此,如果想要改变指令执行的顺序,就需要在PCPC增加增加4 4(即在取指令阶段执行时)后、执行下一指令的取(即在取指令阶段执行时)后、执行下一指令的取指令阶段之前改变指令阶段之前改变PCPC(执行阶段改变执行阶段改变PCPC)DLX JRDLX JR指令指令bits31:26bits31:26:101101101101,JRJRbits25:21bits25:21:包含下一条将要被执行的指令包含下一条将要被执行的指令地
48、址的寄存器地址的寄存器31 26 25 21 20 01 0 1 1 0 10 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0JRR3未用未用“把把R3的内容加载到的内容加载到PC,这样,这样,下一条将要被执行的指令的地址下一条将要被执行的指令的地址就是那个包含在就是那个包含在R3中的地址中的地址”JRJR指令指令从从PC=x80008000PC=x80008000开始开始取指令阶段取指令阶段:IRIR被加载为被加载为JRJR指令,指令,PCPC更新为地址更新为地址x80008004x80008004译码译码/ /取寄存器阶段取寄存器阶段:译
49、码,并取出译码,并取出R3R3和和R0R0中的值,中的值,计算计算PCPC与与SEXT(IR15:0)SEXT(IR15:0)的和的和完成分支阶段完成分支阶段:PCPC被加载为被加载为x80004000 x80004000(假设在指假设在指令开始处令开始处R3R3的内容为的内容为x80004000 x80004000)指令执行完毕(只需要指令执行完毕(只需要3 3个阶段)个阶段)要处理的下一条指令将位于地址要处理的下一条指令将位于地址x80004000 x80004000而不是而不是在地址在地址x80008004x80008004DLXDLX的有限状态机的有限状态机一条指令的执行可能包含一条指
50、令的执行可能包含3535个阶段,每一个个阶段,每一个阶段还由一些步骤组成,而每一个阶段的每一阶段还由一些步骤组成,而每一个阶段的每一步都是由控制单元的有限状态机控制的步都是由控制单元的有限状态机控制的状态在时钟控制下发生转换状态在时钟控制下发生转换寄存器传送语言寄存器传送语言 RTLRTL(Register Transfer Register Transfer LanguageLanguage)硬件描述语言硬件描述语言MxxMxx表示在存储器中表示在存储器中xxxx地址的值地址的值RegxxRegxx表示寄存器表示寄存器xxxx的值的值简化的状态图简化的状态图MARPCALUOutPC+4AR
51、egIR25:21BRegIR20:16ALUOutPC+SEXT(IR15:0)ALUOutA+ SEXT(IR15:0)ALUOutA+BMARALUOutMDRMEMPCARegIR15:11 ALUOut状态状态1状态状态4LWJRADD取指令取指令译码译码/取寄存器取寄存器到状态到状态1到状态到状态1到状态到状态1状态状态XRegIR20:16MDRPC ALUOutMDRMMARIRMDR状态状态2状态状态3R取指令阶段取指令阶段需要需要多个时钟周期多个时钟周期MARPCALUOutPC+4状态状态1取指令取指令PC ALUOutMDRMMARIRMDR状态状态2状态状态3R状态状
52、态1 1第一个时钟周期第一个时钟周期MARPCALUOutPC+4控制信号控制信号GatePCGatePC=1=1LD.MAR=1LD.MAR=1A.S=1A.S=1B.S=01B.S=01ALUOpALUOp=0001=0001LD.ALU=1LD.ALU=132GateALU输入输入输输出出GatePC32IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUGateMDRMDRMAR3232LD.MDR存储器存储器LD.MAR有限状有限状态机态机31:26PCSEXT寄存器堆寄存器堆BALD.BLD.A25:2120:1632SR1SR2B.SBMUXSR1OUTSR2OUT
53、43232AMUXA.SPC2ZZ32GateBMEM.EN.R.WLD.REG15:11DR.SDRMUX5DRCLK4ALUOp4ALU控制器控制器5:0EXT.S25:0状态状态2 2PC ALUOutMDR MMAR控制信号控制信号GateALUGateALU=1=1LD.PC=1LD.PC=1MEM.EN.R.W=0MEM.EN.R.W=0LD.MDR=1LD.MDR=1就绪信号就绪信号(R Readyeady)32GateALU输入输入输输出出GatePC32IRLD.IRPCLD.PC32ALU32ALUOutLD.ALUGateMDRMDRMAR3232LD.MDR存储器存储器LD.MAR有限状有限状态机态机31:26PCSEXT寄存器堆寄存器堆BALD.BLD.A25:2120:1632SR1SR2B.SBMUXSR1OUTSR2OUT43232AMUXA.SPC2ZZ32GateBMEM.EN.R.WLD.REG15:11DR.SDRMUX5DRCLK4ALUOp4ALU控制器控制器RR5:0EXT.S25:0状态状态2 2,有限状态机有限状态机同时同时将将MEM.EN.R.WMEM.EN.R.W设为设为0 0,LD.MDRLD.MDR设为设为1 1读存储器读存储器,MDRMDR被加载从存储器中读取的指令被加载从存储器中读取的指令可能需要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024门面施工现场管理及应急预案合同3篇
- 2024年货物出口合同标的及出口规格
- 2024年社区羽毛球馆租赁协议3篇
- 2024汽车租赁公司新能源车辆推广合同
- 2024年限定版房产市场调研与营销策划服务协议版B版
- 2024年跨界合作居间协议书
- 2024年铁路轨道焊接分包商协议
- 2025年度餐厅与旅行社联合运营美食旅游项目合同3篇
- 2024版铁路安全协议书
- 职业学院工会评优评先实施办法
- 驾驶证学法减分(学法免分)试题和答案(50题完整版)1650
- 《法学概论》课程教学大纲
- 成品油税收分类编码
- 福建省厦门市高一上学期期末考试政治试题 Word版含答案
- 山东中医药大学中西医临床(专升本)学士学位考试复习题
- 铁路货场平面设计说明书
- 抽象函数的单调性
- 2019年血站绩效考核标准
- 义务教育语文课程常用字表3500字
- 盘扣架支架计算小程序EXCEL
- 常规曳引电梯参数计算书
评论
0/150
提交评论