作者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