顯示廣告
隱藏 ✕
※ 本文為 applejone. 轉寄自 ptt.cc 更新時間: 2011-08-17 10:20:32
看板 PC_Shopping
作者 jk21234 (BL2400PT真不錯)
標題 Re: [情報] AMD 推出自有顆粒 DDR3 記憶體模組
時間 Wed Aug 10 00:57:52 2011


※ 引述《jk21234 (BL2400PT真不錯)》之銘言:
: → ultra055012:簡單的說把除非把DRAM改成SRAM並做成主流記憶體大小才  08/09 09:58
: → ultra055012:會改變速度,跟課本上理想情況一樣,不過不太可能      08/09 09:58

課本上會介紹的是標準的6T-SRAM,但其實現在並不是靠這個.
如1T-SRAM跟embedded DRAM的應用是比較近期,課本上不一定有的課題.

: 推 RIFF:1.問一下.為何雙或三通道對效能影響很小?  flash使用多通道卻  08/09 10:49
: → RIFF:  提升許多流量                                             08/09 10:50

我個人推測,這是一種strip size的問題...(也許用這個詞稱呼不盡然正確)

cpu向記憶體讀寫資料,基本的單位是一條cache line,
而這個大小可能才32byte~128byte之間,

以一條DRAM DIMM是64bit(=8 byte)來看,單通道的時候,需要花4~16(32~128除8byte)
個cycle來完成一次傳輸中的burst動作.可是假設雙通道,由記憶體控制器把cache
line各拆一半給兩個通道的話.就變成用2~8個cycle來完成,可是每個動作都需要
等待一定的延遲時間,假定平均是9 cycle好了(低到不可能的數據,DDR3-1600的
CL都已經11 cycle了,所以真正的DDR3模組平均延遲是11+N起跳)...


有點難理解的話......

單通道花這麼長的時間

|------------|XXXXXXXX -->送你8筆各8byte的資料,


雙通道花這麼長的時間.

|------------|XXXX  A  -->A,B各送你4筆8byte的資料.
|------------|XXXX  B

理論上只有打XX的部分的時間縮成一半,但它本來就只有一部分了.
真正改進效能的幅度 要看縮短的部分佔有全體的時間多少.
(也就是上面兩個的全長比值)

單通道,傳遞32~128byte,花了9+4~9+16=13~25個cycle,
雙通道,傳遞...............9+2~9+8=11~17個cycle,
改進幅度大概是20~33%之間.不過以benchmark用"MB/S"來評比的話,
純記憶體讀寫benchmark大約後者是提升20~45%的數據.

咦.查證如Sandra在測試記憶體讀寫的時候,雙通道速度

通常只領先單通道30~40%之間而非兩倍.和這個假定的結果

很符合.

如果要避免這問題,就是一開始僅可能的合併資料變成連續的長資料,
或者是能獨立針對每個記憶體通道作存取.這樣可以有效提升記憶體系統的
效率.不過這個在比如網路處理器(並非上網用的,而是高階switch,router
的核心晶片),以及GPU上,由於它們需要超快速的streming data處理能力.
所以可以看見這種作法.


一般的cpu上沒有,原因可以推測一個是記憶體控制器的成本,另外個原因是有cache,
cpu cache若大到可以有85%的命中率,那麼記憶體速度增加100%,頂多也增加整體3~5%
的效能數字.那麼就是同樣的die size,要加強cache方面還是記憶體控制器方面.

基本上GPU會花1/4以上的面積在記憶體控制器,CPU會花2/5的面積在cache.

Flash ROM的話基本上它被當I/O使用,最低存取長度可能是0.5~8KB不等.
每顆記憶體的界面應該是16~32bit間,這樣連續存取的cycle數量就會長達
256~1000個cycle以上.


不過其實靠這個沒解決問題,因為Flash的初始化時間不短,大概是略低於100us,
比記憶體的延遲多了一千倍以上.

所以實際上是靠interleave/overlap/hidden latency的技巧去作的,怎說??

原本記憶體系統讀取多筆資料是:
|-----|AAAA|-------|BBBB|-------|CCCC|
主要的特色就是它在等待任一筆資料還沒回來的空窗期,就是純粹等,甚麼都沒有作.

SSD的系統大概會是:

|----|AAAA|
   |-------|BBBB|
          |---------|CCCC|
    v  v   v   v   v

|----|AAAA|BBBB|----|CCCC| 變成這樣.

將多筆資料存取的延遲互相重合.實際所花的時間就會少很多.

可是記憶體系統為何不見學習I/O系統這種設計?
一個可能的原因是這樣會踩到RAMBUS的專利(除了它沒看過有相似的設計).
另外成本也是,作一個SSD控制器,每秒要處理的讀寫要求少於10萬筆,
但是記憶體控制器,每秒要處理的讀寫要求可能在一億筆以上.這表示這種
進階的記憶體控制器本身要是快速的晶片,具有高速的運算能力,
準備高速進出的command queue,容量不低且能超過記憶體速度數倍的buffer
等都要齊全....成本應該會跟一顆cpu有得拼.

: → RIFF:2.cpu功耗時脈不拉高的話-例20w  其實記憶體與處理器L2出來的  08/09 10:51
: → RIFF:  流量差不多,因此.甚至不需要用到L3                        08/09 10:52

看不懂...不過主記憶體跟主流是SRAM(但是並非完整6T)的L2 cache
速度差異很大.當然記憶體速度和L2的速度差異不大的時候不需要塞L3.

如果L3本身沒有比記憶體快很多(K6-3時代的onboard cache邏輯上是L3.....)
也可能不需要L3 cache.

: 推 RIFF:3.看slc flash從50nm到25nm 好像iops並沒有明顯的提升?        08/09 11:02
: → RIFF:  我想這對將來的架構會有影響                               08/09 11:03

: → RIFF:4.如你所說:pc引進了flash  比起沒flash前 記憶體的延遲應該  08/09 11:08
: → RIFF:  加速:為什麼我們不拉高記憶體的時脈                       08/09 11:10
: → RIFF:  例如.我們可否採用ddr1-1200mhz 這延遲可以比20ns快         08/09 11:17

因為是DRAM,DRAM的先天延遲(RAW Latency)是改進不了的...
並不是DDR-400的延遲比較小,那只有標出來的數字比較小而已.

DDR-400時代的話,CL=3算是一般,CL=2.5叫做高級
DDR2-800的時候,CL=6叫做爛,CL=5算一般,CL=4只有加壓模組才有
DDR3-1600...CL=11是一般,CL=9算是低延遲模組.

可是,DDR-400下的CL=3,DDR2-800下的CL=6,DDR3-1600下的CL=12,
指的都是同樣長的延遲.只是因為CL的標示單位是cycle,而它跟data
rate成反比而已.這問題就像是問1公噸,950公斤,900000公克,哪個
比較重一樣...數字是增加的,但真正代表的意義是緩降的.


SDRAM的Raw Latency並沒有改進.從PC133走到DDR,DDR2等的作法差別則是:

  FP DRAM:

      <------>A

PC133:     DDR:          DDR2(類推...XD):
   ----A      -----A
   +---B      +----B
              +----C
              +----D

資料是在內部分散成更多單元的,而叫醒它們的時間無法改進,
只是叫更多單元來輪流輸出.上面這個圖看起來雖然像是多通道,
不過這個是完成在單一的DRAM晶片內部.

所以用現在的水準想去生產DDR-1200MHZ,它應該也是CL=12或者是CL=11吧
(比如你手邊有DDR400的話可以自己確認,它SPD是不是400下CL=3,333下
 CL就是2.5,266跟200的話CL會更低)

更大的問題當然是作不出來啦,因為只有同樣數量的bank,卻要負擔快起三倍的速度,
它們本來就沒這麼快了....

再來就是PCB的問題,基本上從PC133,DDR400,DDR2-800等,data rate是加倍的.
可是pcb上幫你拉的基本時脈是不變,都在100~200MHZ之間,而以多組時脈去作
差動來達成倍增的data rate,DDR3怎麼作到我不是很清楚...換言之DDR-1200,

就是要在主機板上拉一個露在空氣中,600MHZ頻率的線而且還是平行bus不可以有

clock skew.換句話說就算你拿SRAM或者任何外星科技冒充DDR模組,搞一個DDR-
1200,也沒有辦法作在主機板上.

: 推 kkcity59:ddr1-1200mhz...因為我們根本做不出這麼快的CELL....      08/09 21:46
: → kkcity59:flash的速度跟他的edurance有關,不是你想拉高就拉高      08/09 21:50
: → kkcity59:越小的製程edurance就越差,flash要快就得跑高壓同步模式  08/09 21:51
: → kkcity59:L3有沒有CPU廠商會評估,但他無疑是很方便的多核交換中心  08/09 21:51
: → kkcity59:我想目前的狀況,Intel/AMD/IBM都很願意加入L3的設計      08/09 21:52
: → kkcity59:個人電腦上資料處理量根本不高啊,伺服器上就會差很多     08/09 21:53
: 推 ChaosK:長知識有推                                               08/09 23:07
: 推 landattack:推                                                   08/09 23:18

--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.37.163.46
batschris:未看先推1F 08/10 01:01
TaiyoYuden:我跟上篇一起看 看成中...2F 08/10 01:07
pomelo168168:看不懂還是要推3F 08/10 01:10
soem:結論一: 雙通道是有明顯改進,但是只佔整體的不到5%4F 08/10 01:20
soem:結論二: 用外星科技做得出DDR-1200,但主機板沒法做出那種頻率
wahaha99:專業6F 08/10 01:38
wild2012:好感動 我居然看得懂...  淚推7F 08/10 01:38
skiOMG:再次專業推   (雖然只看得懂4成= = )8F 08/10 02:37
three456:簡單易懂  好文9F 08/10 03:16
fanzero:推專業10F 08/10 03:30
AXby:有神快拜11F 08/10 05:42
one9870:推這篇~解說很簡易了~12F 08/10 05:48
quamtum:dramc也是會偷latency,例如多發req進cache,data remap讓13F 08/10 07:13
quamtum:bank使用率最大,不是笨笨等row col切換

有PreCL等可以在特定條件下多偷掉1-2 cycle的Latency,
但是它影響的部分算很小,為了簡化說明....

PC上的SDRAM體系的有效傳輸率一般認為在40%~60%之間.
不過各種I/O界面,bus等的有效傳輸率大概都有85%起跳.
Rambus也是號稱自己有90%有效傳輸率,還是認定SDRAM體系沒做同
I/O界面般複雜的hide latency的協定比較接近事實.

dre34317:看電蝦長知識15F 08/10 09:22
mailforclass:專業文必推16F 08/10 10:23
※ 編輯: jk21234         來自: 114.37.142.126       (08/10 13:33)
adolphjong:好專業 只能吸收兩三成..17F 08/10 15:06
nprton22:有看有推!!!!!!看電蝦~~長腦袋!!!18F 08/10 20:12
xtt:好文不來膜拜一下怎行~~19F 08/11 11:06
YoshihiroK:原來才增加20~30%左右...20F 08/12 17:41

--
※ 看板: PC_Shopping 文章推薦值: 0 目前人氣: 0 累積人氣: 146 
作者 jk21234 的最新發文:
點此顯示更多發文記錄
分享網址: 複製 已複製
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇