问一个关于cpu体系结构方面的问题(ARM)

[复制链接]
3547|7
 楼主| fineamy 发表于 2007-6-28 00:54 | 显示全部楼层 |阅读模式
最近在看RISC&nbsp;cpu&nbsp;核,对cache分为icache,dcache的实现很迷惑,不明白指令译码后如何区分该存入ICACHE还是DCACHE.<br />希望能在这个板块得到答案。(至少斑竹rickyice有研究哈)<br /><br /><a href="https://bbs.21ic.com/club/bbs/list.asp?boardid=35&page=1&t=2581615&tp=%u5173%u4E8EARM%u7684%u4F53%u7CFB%u7ED3%u6784" target=_blank>https://bbs.21ic.com/club/bbs/list.asp?boardid=35&page=1&t=2581615&tp=%u5173%u4E8EARM%u7684%u4F53%u7CFB%u7ED3%u6784</a><br /><br />另外请介绍下网上是否有相关资料,谢谢!
平常人 发表于 2007-6-28 07:54 | 显示全部楼层

谁说指令译码后才存入Cache?仔细看看你推荐的帖子中的框图

指令译码和执行是在CPU核中。
 楼主| fineamy 发表于 2007-6-28 08:28 | 显示全部楼层

可能

多说几句<br /><br />问题<br />图一是arm内部框图<br />1。图中指令CACHE和数据CACHE分开了,那么其分别存储的什么,分别是指令和数据?难道在CPU译码前就把指令给分解了分别进入指令CACHE和数据CACHE,不大可能。很多CPU都是这样,不太明白cache分开的实现机制?<br />2。另问指令MMU是介于外部MEM和cache之间还是介于CACHE和cpu核之间。我认为可能是后者,<br />另贴一图,从图中看出,cache分为指令CACHE和数据CACHE几乎是标准实现,<br /><br />另外能否结合一条指令执行把ARM内核框图中的各单元动作解释一下,谢谢。<br />上图中准确的说只是图示了armCPU&nbsp;内核和外围单元的框图,而armCPU(即图中的arm9tdmi&nbsp;core)&nbsp;内部单元类似alu,freeze,except,timer,pc等这些单元并没有画出来,<br /><br />对应体系结构的标准单元来说---理下思路<br />上图中图示了<br />asb:biu即总线接口单元,<br />cache:一级分成指令CACHE和数据CACHE<br />MMU:分成指令MMU和数据MMU<br />WB:有时称sb,即回写缓冲,<br />DU:调试单元即图中TRACE&nbsp;INTERFACE&nbsp;PORT,这里不明白怎么又还有一个JTAG<br /><br />图中的r13,cp15不知是什么。还有WRITE&nbsp;BACK&nbsp;PA&nbsp;TAG&nbsp;RAM好像是一个转换表,不太明白。<br /><br />cpu执行时,asb从外部读取指令进入CACHE,ASB由mmu转换地址给出。。。。。。不太明白了,这里mmu也分成了指令指令MMU和数据MMU,那么地址转换如何实现呢???<br />
 楼主| fineamy 发表于 2007-6-28 08:32 | 显示全部楼层

方便讨论

下面是标准CACHE实现。
 楼主| fineamy 发表于 2007-6-28 08:37 | 显示全部楼层

arm框图

把图贴上来,21ic贴图还有限制,太麻烦了
 楼主| fineamy 发表于 2007-6-28 08:49 | 显示全部楼层

就是不明白这种

数据和指令分开的实现机制
xyhang 发表于 2007-7-9 10:00 | 显示全部楼层

指令和数据是两个通道啊

如果不分开的话,读指令和写数据就不能并行了。指令的读取是依据pc为地址的cpu总是一条一条指令读(指令cache一般只有读操作),数据cache的读写是由指令产生的典型的load,store指令都会造成数据cache的读写。而指令cache只要cpu在运行就会读的。
guohui703 发表于 2007-7-24 11:25 | 显示全部楼层

re

7楼的说得好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

59

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部