指令周期的数据流
来源:互联网 发布:帝国cms小说 编辑:程序博客网 时间:2024/05/22 14:09
这一部分的知识脉络本身就足够结构化,很容易联想,但是忍不住来编故事以形象化这部分的内容。不仅是因为这部分的知识点很重要也因为这部分的内容有趣。
数据流
数据流是什么?
答:数据流是根据指令要求依次访问的数据序列。
取指周期
首先问,这个部分的核心任务是什么?
从主存中取出指令代码并交到IR中。
上面便是行动的总指南。主存是个宝藏,有各种各样的资源。CPU里面的控制单元是行动的指挥,是个智囊。左右两大护法是MAR和MDR,一个拿着管地址一个管数据。后方PC负责产生MAR需要的地址。也即:左护法听命于PC。
现在任务来了,因为是取指令,那么地址得先明确,PC把地址告诉MAR,MAR并非事必躬亲,而是把这个地址发送到公交车Bus上。外面总共跑着三班公交车A,D,C:地址总线,数据总线和控制总线。
A路公交车专门搬运地址,D路公交车搬运的是数据,C路公交车搬运的是控制信号。
现在MAR把地址信号放在A路公交车上,就可以把地址送到主存那边,告诉主存需要的东西地址在哪里。但是,主存不会随便操作,它受CU的严密管控。因此,要等一个CU的信号过来,这个信号会乘着C路公交过来。等到它来了,主存愉快的配合把数据拿出来了,放到D路公交车上,开回到CPU,右护法MDR一看数据来了,取出来,再跑过去送给IR,任务完成。
所以:
间址周期
核心任务:取操作数的有效地址
因为间址可有一次间址,两次间址乃至更多,这里只用最简单的举例。
取完指令,IR中就有了一条指令,我们知道这个指令中有操作码还有待解析的操作数的地址。因此,用Ad()函数取出IR中的地址码,当然这里也可以去对MDR操作,因为间址是紧跟着取指周期的,MDR还暂存着指令的内容。地址码,一看到地址码,马上就该调用左护法MAR,将地址码交到A路公车,带着它到了主存。同样仅仅地址过来没用,还得等C路公车的信号过来。CU的信号过来告诉主存这么这么办,然后主存把数据放到D路公车,送到了MDR;这个数据是操作数的有效地址,拿着这个地址就可以到主存中找到数据了。
下一步如何进行,是另外的过程了。
执行周期
数据流形态各异,具体问题具体分析。
中断周期
核心任务是:处理中断请求。
在中断部分详细阐述,牵涉到更复杂的控制。
待update。
以上。
- 指令周期的数据流
- 指令周期的基本概念
- 指令,机器指令,指令周期,机器周期的辨析
- 时钟周期 机器周期 指令周期的概念
- 时钟周期,机器周期,指令周期的区别
- 单片机时钟周期、机器周期、指令周期的区别
- 时钟周期 指令周期 机器周期的理解
- 单片机时钟周期、机器周期、指令周期的区别
- 时钟周期,机器周期,指令周期的区别
- 【转】时钟周期,机器周期,指令周期的区别
- 时钟周期、指令周期
- 指令周期
- 指令周期
- 指令周期
- 指令周期
- 时钟周期(振荡周期)、机器周期、指令周期之间的关系、430单片机
- 时钟周期、机器周期、指令周期、总线周期之间的联系与区别介绍
- 关于时钟周期,机器周期,指令周期等各种周期的总结
- JavaScript学习笔记(0)
- gnuplot根据csv的字符串字段值绘制不同颜色的点
- 访问者模式
- 字符串按单词逆序输出
- Android之机型适配
- 指令周期的数据流
- 前端开发框架对比
- Linux常用命令-------其它
- 千里码4:GET&POST
- 35. 内容协商和转码
- 面向对象_final修饰变量的初始化时机
- Struts2学习——0100HelloStruts
- 基础算法模块总结
- LeetCode------------single-number-ii