在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3027|回复: 6

请问arm instruction -> amba bus signal

[复制链接]
发表于 2009-4-22 12:45:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我目前主要想找arm926ej-s 这颗cpu 转出来的instruction
想把他的instruction 转成bus signal



我重新发帖来厘清一下我的想法

1.  arm cpu 发instruction 给bus 要bus 做事情
需要透过一个wrapper 来帮他转成 AMBA signal

2. 在arm 网站找文件要找哪一种的?
我找到的有datasheet, reference manual
可是我都看过 不知道是不是我理解错误
我竟然找不到我用的到的资料
老扁或是各位有经验的大哥们 可以帮帮我吗?

3. 除了这以上的东西之外
我还需要注意些什么?




目前我能拿的讯息就只有
1. cpu 想去哪个位址拿资料(instruction fetch)
2. 拿到的资料是什么(instruction)

我想从资料里面分析哪些instruction 是要求做burst
但是单从instruction(opcode) 我觉得是应该得不到结果的
应该是需要wrapper帮忙的



这是我所遇到的问题
请帮帮我吧!!!!
发表于 2009-4-22 23:33:06 | 显示全部楼层
首先,如果你想把arm926ej-s的instructions转换成AMBA 总线接口信号,那么你对arm926ej-s的你对arm926ej-s的结构并不了解,arm926ej-s自带2个AHB Master,根本不需要再接wapper。
建议你首先找一下arm926ej-s的 TRM,先了解一下架构。
实际上arm926ej-s就是ARM9 加上AHB BIU、MMU、ETM、Coprocessor、TCM以及Cache控制器构成的。
发表于 2009-4-23 00:25:58 | 显示全部楼层
1:首先简单的说说CPU的工作原理:

a:存储结构:ICache(指令Cache),Dcache(数据Cache),以及外部存储器;
b:Cache中的内容,CPU可以直接访问,不需要通过总线;
c:复位后,取指部件会自动到一个某个地址A取指,首先,它看看要的指令是否在Icache中,如果在,读出送去译码等等,如果不在Icache中,也就是Miss,这时需要将存储器的数据加载到Cache中;
d:加载过程:Icache发出请求给总线接口逻辑,通过仲裁(可能有数据访存请求),提交给AHB-Master,这个Master将这个访存请求发给总线,进入总线传输,数据回来后,装到Icache中,可能多个数据,通常是一个cache行;
e:Icache得知数据已经准备好(为了提高性能,通常在写Icache的时候,同时也将数据送给取值部件),通知取值部件将数据拿走,并开始流水;

数据访问也是同样的方式,不会像你说的那样,有一条指令直接去访问总线,总线对指令来说(或者对软件来说)是透明的,指令可见的东西只有存储器和寄存器,连Cache都看不到(通常看不到Cache,除非一些特权的指令,需要对Cache进行一致性维护,用户指令是看不到Cache的,用户指令不知道他的数据、指令是在Cache中还是在存储器中);
发表于 2009-4-23 00:36:09 | 显示全部楼层
2:你提到:
我想从资料里面分析哪些instruction 是要求做burst 
但是单从instruction(opcode) 我觉得是应该得不到结果的应该是需要wrapper帮忙的;



这个Burst应该是做死的逻辑,比如,你的是Icache的装填,那么应该是Burst,一次总线传输过程,需要多个数据(一个Cache行);那么,你的Master在接受到Icache加载请求时,就按Burst方式发出;
但是,如果你是对IO空间、或者不可Cache、不可缓冲的地址空间的访问,那么,每次总线传输只能传操作的数据,即访问的是哪个地址,就传那个数据;因此,你的Master接受到IO空间的访问请求时,就按Single方式传输;



不知道我说明白了没有、希望对你有启发。
有不明白的地方,可以继续探讨。
 楼主| 发表于 2009-4-23 11:52:07 | 显示全部楼层
感恩 這些細節 原本都只是再書本上
沒想到真的躍然"實體" ^^" 不少体误

我经过一番思索
看了arm7 datasheet (官方网站似乎没有提供arm9 datasheet)
应该是我自己implement wrapper

应该是我用词不当
ARM926EJ-s 似乎是个平台、架构
并非是单纯一颗cpu
但是恰巧我只能取得他向总线发出的instruction

就像是上面回文所说的
wrapper 写死的
他的opcode中有叙述各个栏位
以及描述各种size 的取值方法( 从总线的方法 )
以及相依的address 该怎么加减

如果没错的话
我应该会从这边自己着手动作把他implementation出来
将opcode 解释成AMBA burst signal



另外一个问题是
BIU这个东西似乎看起来很像是wrapper 在做的事情
不知道我有没有理解错误
发表于 2010-9-10 10:19:45 | 显示全部楼层
学习...
发表于 2013-2-20 17:19:25 | 显示全部楼层
学习...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-24 06:48 , Processed in 0.024045 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表