[考题]arm系统的32位总线和16位总线

[复制链接]
3351|1
 楼主| avr32 发表于 2009-5-28 22:28 | 显示全部楼层 |阅读模式
如果你对arm的存储系统有兴趣,或者自认为很了解的话,请做下面几道题:<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;背景:现在有一块arm版,使用两个2个16bits位宽的32M字节容量的sdram组成一个32bits总线宽度,容量为64M字节的一个系统。<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<font color=#FF0000>问题1、不限定总线宽度为32bits,请画出16bits总线宽度和32bits总线宽度、存储容量都为64M的框架草图;</font><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<font color=#0000FF>问题2、请说明16位数据总线宽度和32位总线宽度哪种方式系统效率高,好,请说出为什么?请说出这两种总线方式读取一个word(4字节)的流程;</font><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<font color=#FF0000>问题3、请问sdram的数据总线可以交叉吗?具体点说:我们一般连接数据总线一般都是从sdram的d0---&gtcpu的d0&nbsp;,d1--&gtd1.....d31--d31,请问,这个顺序可以打乱吗?那地址总线的顺序可以打乱吗?嘿嘿,sram的数据总线和地址总线可以打乱吗?</font><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<font color=#0000FF>问题4、假如我们的系统中可以将32bits的总线随意设置为16bits,则可以成为两种系统,32bits的64M的系统,16bits的32M的系统,我们以16bits的总线向0x21f00000地址中写入了数据0x11223344,我们以32bits的总线来读取这个数据,那么读取的地址是多少,为什么?以小端存储格式为例,读回来的数据格式是什么样的,大端模式了?sdram的起始地址是0x20000000。</font><br /><br /><br />请告诉你的答案及原因!四个问题可任意回答一个问题.
lelee007 发表于 2009-5-29 02:29 | 显示全部楼层

第三个问题

32位数据线可以乱接,因为存进去和读出来都是通过同一套总线,所以在CPU端写到SDRAM里边某一个地址中某一个数据,虽然此时存储的数据与实际数据不一定一样,但是如果CPU需要读入这个数据的时候,读进去的结果会和写入的是一样的,因为要通过交换连接的总线再逆变换一次,比如我们将DB[5]和DB[11]交换,我们将数据<br />0000&nbsp;0000&nbsp;0000&nbsp;0000&nbsp;0000&nbsp;0000&nbsp;0010&nbsp;0000<br />写入SDRAM某一个地址,写入后,该地址存储的结果实际将会是<br />0000&nbsp;0000&nbsp;0000&nbsp;0000&nbsp;1000&nbsp;0000&nbsp;0000&nbsp;0000<br />即数据中的第六位的1将会写在第12位上,而第12位的0将会写在第六位上<br /><br />靠,有点无聊,冇的耐心写下去了<br /><br />LZ琢磨琢磨俺说的对与否
您需要登录后才可以回帖 登录 | 注册

本版积分规则

127

主题

1189

帖子

0

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