我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:双彩网 > 指令控制器 >

cpu按指令执行。DMA控制器有指令吗他是如何执行的?还是直接根据

归档日期:07-05       文本归类:指令控制器      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部CPU执行一条指令,是根据时钟来进行的(也就是时序)。(1)第一步:取指令和分析指令. 首先根据PC所指出的现行指令地址, 从内存中取出该条指令的指令码, 并送到控制器的指令寄存器中, 然后对所取的指令进行分析, 即根据指令中的操作码进行译码, 确定计算机应进行什么操作. 译码信号被送往操作控制部件, 和时序电位、测试条件配合, 产生执行本条指令相应的控制电位序列.(2)第二步:执行指令. 根据指令分析结果, 由操作控制部件器发出完成操作所需要的一系列控制电位, 指挥计算机有关部件完成这一操作, 同时为取下一条指令作好准备. 尽管外界中断请求是随机的,但CPU只有在当前一条指令执行完毕后,即转入公操作时才受理设备的中断请求,这样才不致于使当前指令的执行受到干扰。公操作是指一条指令执行结束后CPU所进行的操作,如中断处理、直接内存传送、取下条指令等 。

  追问:你的答案很详细,后面的能再说具体点么~为什么对中断请求而言,这样做才不会至于使当前指令的执行收到干扰,而DMA请求信号却可以不用等当前指令执行完呢回答:CPU在执行一条具体的指令中间,已经对该条指令所要设计的硬件进行操作,如果这个操作发生到中途的时候,CPU去响应中断,那么,正在进行的硬件变化的状态,是不能够得到保证的。比如,正在执行对某个口线),当执行到一半的时候,你能够确保这个口线?或者该口线处于了高阻态?------因此,可以推而广之,为了防止在执行一条指令的过程,出现未知的不可预测的状态,在一条指令执行完毕之前,是不会去响应中断的。 DMA的方式,并不是要CPU不等当前的指令执行完毕。实际上,中断方式下,外设需与主机传输数据时要请求主给予中断服务,中断当前主程序的执行,自动转向对应的中断处理程序,控制数据的传输,过程始终是在处理器所执行的指令控制之下。 而DMA方式下,是系统中有一个控制器,它是一个可驱动总线的主控部件。当外设与主存储器之间需要传输数据时,外设向DMA控制器发出DMA请求,DMA控制器向CPU发出总线请求,以取得总线控制权,取得控制权以后,DMA控制器按照总线时序控制外设与存储器间的数据传输而不是通过指令来控制数据传输,此时的数据传输,是不需要CPU干预的。

本文链接:http://f-taiken.net/zhilingkongzhiqi/281.html