文档库 最新最全的文档下载
当前位置:文档库 › 105-计算机执行指令的过程

105-计算机执行指令的过程

计算机程序的执行过程

一。计算机程序的执行过程 程序就是指令的集合 为使计算机按预定要求工作,首先要编制程序。程序是一个特定的指令序列,它告诉计算机要做哪些事,按什么步骤去做。指令是一组二进制信息的代码,用来表示计算机所能完成的基本操作。 1.程序 程序是为求解某个特定问题而设计的指令序列。程序中的每条指令规定机器完成一组基本操作。如果把计算机完成一次任务的过程比作乐队的一次演奏,那么控制器就好比是一位指挥,计算机的其它功能部件就好比是各种乐器与演员,而程序就好像是乐谱。计算机的工作过程就是执行程序的过程,或者说,控制器是根据程序的规定对计算机实施控制的。例如,对于算式 计算机的解题步骤可作如下安排: 步骤1:取a ; 步骤2:取b ; 步骤3:判断; . 若b≥0,执行步骤4 .若b<0,执行步骤6 步骤4:执行a+b; 步骤5:转步骤7; 步骤6:执行a-b; 步骤7:结束。 计算机的工作过程可归结为:取指令→分析指令→执行指令→再取下一条指令,直到程序结束的反复循环过程。通常把其中的一次循环称为计算机的一个指令周期。总之,我们可把程序对计算机的控制归结为每个指令周期中指令对计算机的控制。 2.指令 程序是由指令组成的。指令是机器所能识别的一组编制成特定格式的代码串,它要求机器在一个规定的时间段(指令周期)内,完成一组特定的操作。指令的基本格式可归结为操作码OP和操作数地址AD两部分,具体内容是: ⑴指出计算机应完成的一组操作内容,如传送(MOV)、加法(ADD)、减法(SUB)、输出、停机(HLT)、条件转移(JZ)等。这部分称为指令的操作码部分。 ⑵两个操作数的地址和存放结果的地址及寻址方式。 ⑶为保证程序执行的连续性,在执行当前指令时,还需指出下一条指令的地址。由于指令在存储器中一般是顺序存放的,所以只要设置一个指令指针(IP),每执行一条指令,IP自动加1,便自动指出下一条指令的地址,而不必在指令中专门指出下一条指令的地址。只有在转移指令中才指出下一条指令的地址。此时,IP的内容将随转移指令所指示的内容改变。 3.指令的执行 指令规定的内容是通过控制器执行的,或者说控制器是按照一条指令的内容指挥操作的。 ⑴控制器的功能

计算机系统结构作业答案第三章(张晨曦)

3.1 -3.3为术语解释等解答题。 3.4 设一条指令的执行过程分为取指令,分析指令和执行指令3个阶段,每个阶段所需时间分别为ΔT, ΔT, 2ΔT,分别求出下列各种情况下,连续执行N条指令所需的时间。 (1) 顺序执行方式 (2) 只有“取指令”与“执行指令”重叠 (3) “取指令”,“分析指令”与“执行指令”重叠 解: (1) 4NΔT (2) (3N+1) ΔT (3) 2(N+1) ΔT 3.6 解决流水线瓶颈问题有哪两种常用方法? 解: (1) 细分瓶颈段 将瓶颈段细分为若干个子瓶颈段 (2) 重复设置瓶颈段 重复设置瓶颈段,使之并行工作,以此错开处理任务 3.9 列举下面循环中的所有相关,包括输出相关,反相关,真数据相关。 for(i = 2; i < 100; i=i+1) { a[i] = b[i] + a[i]; -----(1) c[i+1] = a[i] + d[i]; -----(2) a[i-1] = 2*b[i]; -----(3) b[i+1] = 2*b[i]; -----(4) } 解: 输出相关:第k次循环时(1)与第k+1轮时(3) 反相关:第k次循环时(1)和(2)与第k-1轮时(3) 真数据相关:每次循环(1)与(2),第k次循环(4)与k+1次循环(1),(3),(4) 3.12 有一指令流水线如下所示 50ns 50ns 100ns 200ns (1)求连续如入10条指令的情况下,该流水线的实际吞吐率和效率 (2)该流水线的“瓶颈”在哪一段?请采用两种不同的措施消除此“瓶颈”。对于你所给出 的两种新的流水线连续输入10条指令时,其实际吞吐率和效率各是多少? 解:(1)(m表示流水线级数,n 表示任务数)

单片机的组成结构及指令执行过程

单片机的组成结构及指令执行过程单片机结构 单片机结构 常用的单片机以MCS-51系列单片机为例,它的组成框图如图1-2所示。 微处理器由运算器和控制器两个部分组成,还有包括相关的寄存器。 1.运算器 运算器由运算部件——算术逻辑单元(Arithmetic & Logical Unit,简称ALU)、累加器和寄存器等几部分组成。ALU的作用是把传来的数据进行算术或逻辑运算,输入来源为两个8位数据,分别来自累加器和数据寄存器。ALU能完成对这两个数据进行加、减、与、或、比较大小等操作,最后将结果存入累加器。例如,两个数6和7相加,在相加之前,操作数6放在累加器中,7放在数据寄存器中,当执行加法指令时,ALU即把两个数相加并把结果13存入累加器,取代累加器原来的内容6。 运算器有两个功能: (1) 执行各种算术运算。 (2) 执行各种逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。 运算器所执行全部操作都是由控制器发出的控制信号来指挥的,并且,一个算术操作产生一个运算结果,一个逻辑操作产生一个判决。 2.控制器 控制器由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器等组成,是发布命令的“决策机构”,即协调和指挥整个微机系统的操作。其主要功能有: (1) 从内存中取出一条指令,并指出下一条指令在内存中的位置。 (2) 对指令进行译码和测试,并产生相应的操作控制信号,以便于执行规定的动作。 (3) 指挥并控制CPU、内存和输入输出设备之间数据流动的方向。 微处理器内通过内部总线把ALU、计数器、寄存器和控制部分互联,并通过外部总线与外部的存储器、输入输出接口电路联接。外部总线又称为系统总线,分为数据总线DB、地址

cpu指令运行说明

cpu指令运行说明 cpu指令运行说明一计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。 取指令的任务是:根据程序计数器pc中的值从程序存储器读出现行指令,送到指令寄存器。 分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。 计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。 一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路和数据总线送入到存储器,然后逐条取出执行。但单片机中的程序一般事先我们都已通过写入器固化在片内或片外程序存储器中。因而一开机即可执行指令。 下面我们将举个实例来说明指令的执行过程: 开机时,程序计算器pc变为0000h。然后单片机在时序电路作用下自动进入执行程序过程。执行过程实际上就是取出指令(取出存储器中事先存放的指令阶段)和执行指令(分析和执行指令)的循环过程。 例如执行指令:mov a,#0e0h,其机器码为“74h e0h”,该指令的功能是把操作数e0h送入累加器,

0000h单元中已存放74h,0001h单元中已存放e0h。当单片机开始运行时,首先是进入取指阶段,其次序是: 1 程序计数器的内容(这时是0000h)送到地址寄存器; 2 程序计数器的内容自动加1(变为0001h); 3 地址寄存器的内容(0000h)通过内部地址总线送到存储器,以存储器中地址译码电跟,使地址为0000h的单元被选中; 4 cpu使读控制线有效; 5 在读命令控制下被选中存储器单元的内容(此时应为74h)送到内部数据总线上,因为是取指阶段,所以该内容通过数据总线被送到指令寄存器。至此,取指阶段完成,进入译码分析和执行指令阶段。 由于本次进入指令寄存器中的内容是74h(操作码),以译码器译码后单片机就会知道该指令是要将一个数送到a累加器,而该数是在这个代码的下一个存储单元。所以,执行该指令还必须把数据(e0h)从存储器中取出送到cpu,即还要在存储器中取第二个字节。其过程与取指阶段很相似,只是此时pc已为0001h。指令译码器结合时序部件,产生74h操作码的微操作系列,使数字e0h 从0001h单元取出。因为指令是要求把取得的数送到a累加器,所以取出的数字经内部数据总线进入a累加器,而不是进入指令寄存器。至此,一条指令的执行完毕。单片机中pc="0002h",pc 在cpu每次向存储器取指或取数时自动加1,单片机又进入下一取指阶段。这一过程一直重复下去,直至收到暂停指令或循环等待指令暂停。cpu就是这样一条一条地执行指令,完成所有规定cpu指令运行说明二首先,cpu的内部结构可以分为控制

指令的执行过程

举个实例来说明指令的执行过程: 开机时,程序计算器PC变为0000H。然后单片机在时序电路作用下自动进入执行程序过程。执行过程实际上就是取出指令(取出存储器中事先存放的指令阶段)和执行指令(分析和执行指令)的循环过程。 例如执行指令:MOV A,#0E0H,其机器码为“74H E0H”,该指令的功能是把操作数E0H送入累加器,0000H单元中已存放74H,0001H单元中已存放E0 H。当单片机开始运行时,首先是进入取指阶段,其次序是: 1 程序计数器的内容(这时是0000H)送到地址寄存器; 2 程序计数器的内容自动加1(变为0001H); 3地址寄存器的内容(0000H)通过内部地址总线送到存储器,以存储器中地址译码电跟,使地址为0000H的单元被选中; 4 CPU使读控制线有效; 5 在读命令控制下被选中存储器单元的内容(此时应为74H)送到内部数据总线上,因为是取指阶段,所以该内容通过数据总线被送到指令寄存器。 至此,取指阶段完成,进入译码分析和执行指令阶段。 由于本次进入指令寄存器中的内容是74H(操作码),以译码器译码后单片机就会知道该指令是要将一个数送到A累加器,而该数是在这个代码的下一个存储单元。所以,执行该指令还必须把数据(E0H)从存储器中取出送到CPU,即还要在存储器中取第二个字节。其过程与取指阶段很相似,只是此时PC已为0001H。指令译码器结合时序部件,产生74H操作码的微操作系列,使数字E0H从0001H 单元取出。因为指令是要求把取得的数送到A累加器,所以取出的数字经内部数据总线进入A累加器,而不是进入指令寄存器。至此,一条指令的执行完毕。单片机中PC=0002H,PC在CPU每次向存储器取指或取数时自动加1,单片机又进入下一取指阶段。这一过程一直重复下去,直至收到暂停指令或循环等待指令暂停。CPU就是这样一条一条地执行指令,完成所有规定的功能

1、设一条流水线的执行过程分成取指令、分析指令和执行指令三个阶段

1、设一条流水线的执行过程分成取指令、分析指令和执行指令三个阶段,每个阶段所需的时间分别为t、t和2t,分别求出下列各种情况下,连续执行N条指令所需的时间。 (1)顺序执行方式; (2)只有取指令和执行指令重叠执行; (3)取指令、分析指令和执行指令重叠执行; 2、有一条流水线如下所示 (1)求连续输入10 条指令,该流水线的实际吞吐率和效率; (2)该流水线的瓶颈在哪一段?请采取2种不同的措施消除此“瓶颈”。对于你所给出的新流水线,计算连续输入10 条指令时,其实际吞吐率和效率; 3、在改进的DLX 流水线上运行如下代码序列: LOOP: LW R1, 0(R2) ADDI R1, R1, # 1 SW 0(R2), R1 ADDI R2, R2, # 4 SUB R4, R3, R2 BNEZ R4, LOOP 其中,R3 的初始值是R2+396。假设:在整个代码序列的运行过程中,所有的存储器访问都是命中的,并且在一个时钟周期中对同一个寄存器的读操作和写操作可以通过寄存器“定向”。问: (1)在没有任何其它定向(或旁路)硬件的支持下,请画出该指令序列执行的流水线时空图。假设采用排空流水线的策略处理分支指令,且所有的存储器访问都可以命中Cache,那么执行上述循环需要多少个时钟周期? (2)假设该DLX 流水线有正常的定向路径,请画出该指令序列执行的流水线时空图。假设采用预测分支失败的策略处理分支指令,且所有的存储器访问都可

以命中Cache,那么执行上述循环需要多少个时钟周期? (3)假设该DLX 流水线有正常的定向路径,请对该循环中的指令进行调度。注意可以重新组织指令的顺序,也可以修改指令的操作数,但是不能增加指令的条数。请画出该指令序列执行的流水线时空图,并计算执行上述循环需要的时钟周期数? 4.根据需要展开下面的循环并且进行指令调度,直到没有任何延迟。指令的延迟如表: Code: Loop: LD F0,0(R1) MULTD F0,F0,F2 LD F4,0(R2) ADDD F0,F0,F4 SD 0(R2),F0 SUBI R1,R1,8 SUBI R2,R2,8 BNEQZ R1,LOOP 5.列举下面循环中的所有相关,包括输出相关,反相关,真相关和循环相关。

相关文档
相关文档 最新文档