CPU的模型控制信号+1CPUALUACMDRPCPSWRMARIRIDCU…主存I/O计算机的工作过程假设在某计算机的指令系统中设计有如下的几条指令:(1)LOADR1,M1(2)STOREM3,R1(3)ADDR1,M2(4)JMPL(1)是传送类指令,其含义是将M1中的内容装入R1。(2)也是传送类指令,其含义是将R1的内容存入M3中。(3)是运算类指令,其含义是将R1的内容与M2中的内容相加后存入R1。(4)是转移类指令,其含义是无条件转向L处。如果要求将M1的内容与M2的内容相加后存入M3(可表示为(M1)+(M2)→(M3)),再将程序转向L处的指令继续执行,则可用上面给出的各指令编写出如下的程序来实现:汇编语言程序机器语言程序程序的功能LOADR1,M10000101100000101将M1的内容送入R1ADDR1,M20001101100000110将R1的内容加上M2的内容再送回R1STOREM3,R10010101100000111将R1的内容送入M3中JMPL0011000000010001转向L处继续执行那里的指令汇编时,假设存储单元的地址M1、M2、M3分别为5、6、7,其内容分别为12、34、0;地址L为17;R1寄存器的编号为1011;四条指令LOAD、ADD、STORE、JMP的操作码分别为0000、0001、0010、0011。每条机器指令的第2个字节都是存储单元地址,第一个字节左边4位是操作码,右边4位是寄存器号或0000。上述机器语言程序可被计算机识别,但不能被执行,还需要为其分配存储器地址。例如,上述机器语言程序可能按如下方式分配存储器地址:0000010100001100M1000001100010001000000111000000000000100000001011000010010000010100001010000110110000101100000110000011000010101100001101000001110000111000110000000011110001000100010000…………..00010001…………..M2M3“LOADR1,M1”的第一个字节“LOADR1,M1”的第二个字节“ADDR1,M2”的第一个字节“ADDR1,M2”的第二个字节“STOREM3,R1”的第一个字节“STOREM3,R1”的第二个字节“JMPL”的第一个字节“JMPL”的第二个字节第五条指令(只有一个字节)第六条指令指令及程序的执行过程计算机执行程序的过程可归纳如下:(1)控制器把PC中的指令地址送往存储器地址寄存器MAR,并发出读命令“M读”。存储器按给定的地址读出指令,经由存储器数据寄存器MDR送往控制器,保存在指令寄存器IR中。(2)指令译码器ID对指令寄存器IR中的指令进行译码,分析指令的操作性质,并由控制电路向存储器、运算器等有关部件发出指令所需要的微命令。(3)当需要由存储器向运算器提供数据时,控制器根据指令的地址部分,形成数据所在的存储单元地址,并送往存储器地址寄存器MAR,然后向存储器发出读命令“M读”,从存储器中读出的数据经由存储器数据寄存器MDR送往运算器。(4)当需要由运算器向存储器写入数据时,控制器根据指令的地址部分,形成数据所在的存储单元地址,并送往存储器地址寄存器MAR,再将欲写的数据存入存储器数据寄存器MDR,最后向存储器发出写命令“M写”,MDR中的数据即被写入由MAR指示地址的存储单元中。(5)一条指令执行完毕后,控制器就要接着执行下一条指令。为了把下一条指令从存储器中取出,通常控制器把PC的内容加上一个数值,形成下一条指令的地址,但在遇到“转移”指令时,控制器则把“转移地址”送入PC。控制器不断重复上述过程的(1)到(5),每重复一次,就执行了一条指令,直到整个程序执行完毕。LOADR1,M1ADDR1,M2STOREM3,R1JMPLLM1M2M3abcIRPCMARMDRR0Rn-1YZABUSDBUS控制电路指令译码控制信号ALUABF内部总线存储器图5.8单总线CPU的计算机的基本结构(模型机)下面,以前面给出的、由4条指令组成的程序段为例,结合图5.8中所示的计算机结构,简述指令及程序的执行过程。LOADR1,M1ADDR1,M2STOREM3,R1JMPL假设程序及数据已经装入了存储器,第一条指令的地址已经装入了PC寄存器。(1)取指令“LOADR1,M1”并执行①取指令“LOADR1,M1”并形成下一条指令的地址:(i)控制器发“PCOUT”和“MARIN”信号,使PC→MAR;(ii)控制器发“M读”信号,使存储器的内容(指令)→MDR,通过DBUS;(iii)控制器发“PC加”信号,使PC+n→PC,其中n为该指令占用的地址数;(iv)控制器发“MDROUT”和“IRIN”信号,使MDR→IR。②执行指令“LOADR1,M1”:(i)控制器发“IROUT”和“MARIN”信号,使IR中指令的地址段(即M1)→MAR;(ii)控制器发“M读”信号,使存储器M1的内容(数据)→MDR,通过DBUS;(iii)控制器发“MDROUT”和“R1IN”信号,使MDR→R1。(2)取指令“ADDR1,M2”并执行①取指令“ADDR1,M2”并形成下一条指令的地址:操作过程同(1)中的①。②执行指令“ADDR1,M2”:(i)控制器发“IROUT”和“MARIN”信号,使IR中指令的地址段(即M2)→MAR;(ii)控制器发“M读”信号,使存储器M2的内容(数据)→MDR,通过DBUS;(iii)控制器发“MDROUT”和“YIN”信号,使MDR→Y(即ALU的A端);(iv)控制器发“R1OUT”,使R1→内部总线(即ALU的B端);(v)控制器发“add”信号,使A+B→Z;(vi)控制器发“ZOUT”和“R1IN”信号,使Z→R1。(3)取指令“STOREM3,R1”并执行①取指令“STOREM3,R1”并形成下一条指令的地址:操作过程同(1)中的①。②执行指令“STOREM3,R1”:(i)控制器发“IROUT”和“MARIN”信号,使IR中指令的地址段(即M3)→MAR;(ii)控制器发“R1OUT”和“MDRIN”信号,使R1→MDR;(iii)控制器发“M写”信号,使MDR→存储器M3中,通过DBUS。(4)取指令JMPL并执行①取指令JMPL并形成下一条指令的地址:操作过程同(1)中的①。②执行指令JMPL:控制器发“IROUT”和“PCIN”信号,使IR中指令的地址(即L)→PC。指令的几种执行方式指令流水线基本思想Flynn分类法1966Flynn分类法:根据指令流和数据流的多倍性对计算机系统结构进行分类,基本思想:是计算机工作过程是指令流的执行和数据流的处理。指令流:机器执行的指令序列数据流:由指令流调用的数据序列(包括输入数据和中间结果)多倍性:在系统性能的瓶颈部件上处于同一执行阶段的指令或数据的最大个数。1.单指令流单数据流SISD典型的SISD机器:传统的顺序计算机SISD机器结构:CU:控制部件IS:指令流PU:处理部件DS:数据流MU:存储部件CUMUPUI/OISDSIS2.单指令流多数据流SIMD单指令流一多数据流SIMD超级计算机单控制器、多处理单元和多对数据进行处理PU:处理单元MM:本地存储器(分布存储器)CUPU1ISISPUn从主机加载程序DSDSMM1MMn3.多指令流单数据流MISD多指令流一单数据流MISD多个处理器,对同一数据流进行处理MM主存贮模块,SM共享存储器DSCU1PE1ISPEnCUn……IS…MM1MMn………DSI/O4.多指令流多数据流MIMD多机系统----多个处理器系统或多计算机系统每个处理机可以独立执行指令和处理数据一般并行计算机大多采用这种结构。共享存储器为:紧耦合分布存储器为:松耦合I/OCU1PE1ISPEnCUnIS…SM…MM1MMn…ISISI/O