作者Acme ( )
看板Electronics
标题Re: [问题] sdram位址线接错
时间Sat Feb 21 20:20:17 2009
※ 引述《screws (screws)》之铭言:
: 想请问一个问题
: 如果我不小心把cpu到sdram的address bus接错了.
: 假设是a0,a1接错了,这样会发生什麽事?
: 是可以照常存取,还是会出错呢?
: 我想了一天,一直觉得最後读取出来的资料应该不会错
: 可是我同事在奸笑...= =真的会读出错的资料吗?
1.
若是 CPU 是 32 bit bus :
Write cycle : a0,a1会拿去做 byte decode,然後产生 DQM
Read cycle : 一次应该会读 32 bit 进 CPU
这时进去 CPU 的 byte 的排列应该会出问题
如果 CPU 是 8 bit bus , 那应该 ok
2.
chip 内应该不会只有 CPU一个master会去存取 sdram
也有 别的 master (ex: DMA) 会去存取
这样 一边是 CPU 读写 另一边是DMA 写读 ,也会出问题
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.39.118
1F:推 pupucar:1的问题 主要是要看CPU是否为byte addressing和device的 02/24 14:02
2F:→ pupucar:databus宽度决定读写时是否BURST 02/24 14:03
3F:→ pupucar:才知道会不会乱掉 这也跟记忆体控制器的实现方式有关 02/24 14:04
4F:→ pupucar:2的话 不管CPU还DMA都是由内部BUS透过记忆体控制器来存取 02/24 14:06
5F:→ pupucar:外部记忆体 所以并无影响 02/24 14:07
6F:→ Acme:1.sdram 通常要support Byte access 02/24 23:06
7F:→ Acme:2.cpu到sdram线接错了...不表示dma也错... 02/24 23:07
8F:→ Acme:32bit bus会错...因为read 都是直接读 32 bit 02/24 23:09