从arm7到arm9的困惑

[复制链接]
 楼主| yyccaa 发表于 2007-1-5 16:21 | 显示全部楼层 |阅读模式
arm9是哈佛结构的,但是它的地址是统一编址的,存储指令和arm7是相同的,并不区分数据和指令,意味着arm9上也能实现代码的自修改,如果关闭了mmu,和arm7有多大区别呢?用mmu和720T又有什么区别呢?<br />与avr相比较,avr的程序和数据是独立编址,对这两个区域的存取都有不同的指令,和arm9的做法差别很大。<br />请高手们解惑,谢谢。
平常人 发表于 2007-1-5 16:29 | 显示全部楼层

地址是统一编址并不意味着地址总线、地址译码器只有一套

哈佛结构是说指令存储区和数据存储区可以同时访问,这意味着有两套地址总线、地址译码器和数据总线连到存储器,如果指令存储器和数据存储器互不干扰,操作完全可以并行。<br /><br />代码的自修改操作时,指令存储器也是数据存储器,操作变成了串行。
HWM 发表于 2007-1-5 17:09 | 显示全部楼层

这在于如何理解“哈佛结构”

哈佛结构是早期的计算机体系结构。由于当时的内存成本很高,且应用范围有限,所以程序内存被设计成“固定”的方式(只能由人工加以设置),类似于现在的ROM。当时的“程序存储器”是不能被指令访问的,其总线形式也各不相同。这就是我们现在所称的“哈佛结构”的原始含义。<br />自从单片机问世以来,由于其应用范围的特殊性,“哈佛结构”又被再次引用,典型的有MCS-51系列等。当然现在的“哈佛结构”已被广义化了,凡是程序和数据总线不是同一条的体系结构都被归入“哈佛结构”,这也就是ARM9有时被称为“哈佛结构”的理由。
 楼主| yyccaa 发表于 2007-1-5 19:43 | 显示全部楼层

多谢楼上2位的解释。

是否因该这么理解:<br />arm9使用了改进的哈佛结构,对ram、flash和外设mmu是使用一对地址/数据总线访问,i&nbsp;cache和d&nbsp;cache分时复用这对地址/数据总线,当cache能命中时可以减少取指和内存访问对内核外总线访问的冲突。如果这样,那完全是mmu的效果造成的,也就是说720t也可以说是哈佛结构了?如果禁用了cache,那和冯诺依曼结构也没什么差异了吗?<br />请高手们继续帮忙解释,谢谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

41

帖子

1

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