打印

从arm7到arm9的困惑

[复制链接]
4039|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yyccaa|  楼主 | 2007-1-5 16:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
arm9是哈佛结构的,但是它的地址是统一编址的,存储指令和arm7是相同的,并不区分数据和指令,意味着arm9上也能实现代码的自修改,如果关闭了mmu,和arm7有多大区别呢?用mmu和720T又有什么区别呢?
与avr相比较,avr的程序和数据是独立编址,对这两个区域的存取都有不同的指令,和arm9的做法差别很大。
请高手们解惑,谢谢。

相关帖子

沙发
平常人| | 2007-1-5 16:29 | 只看该作者

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

哈佛结构是说指令存储区和数据存储区可以同时访问,这意味着有两套地址总线、地址译码器和数据总线连到存储器,如果指令存储器和数据存储器互不干扰,操作完全可以并行。

代码的自修改操作时,指令存储器也是数据存储器,操作变成了串行。

使用特权

评论回复
板凳
HWM| | 2007-1-5 17:09 | 只看该作者

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

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

使用特权

评论回复
地板
yyccaa|  楼主 | 2007-1-5 19:43 | 只看该作者

多谢楼上2位的解释。

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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

41

帖子

1

粉丝