• 2

SSD跑分低落求解

大家好~小弟上禮拜幫電腦從傳統硬碟換到SSD做小幅升級

但是跑了幾個測試軟體都和網路找到的讀寫速度有明顯的落差

想請版上豐富經驗的大家幫小的找找問題,圖是目前測試到的速度

Bios已開啟AHCI,4K對齊是359424 OK,這值對嗎?

OS:WINDOWS 8.1 64bit

CPU:I5 2400

MB:ASUS p8z77-v deluxe

ram:4GB

SSD:INTEL 535 128GBSSD跑分低落求解


2015-12-22 0:58 發佈
文章關鍵字 SSD

gilo0719 wrote:
大家好~小弟上禮拜...(恕刪)


你SSD連接的SATA 6Gb/s是接哪一個?
應該要接中間灰色的才是原生SATA 6Gb/s喔。

[開箱測試]Intel SSD 535 120GB開箱測試

他跑出來的速度跟你差不多.
現在同一個系列裡120GB or 128GB若是最低的容量, 序列寫入(Sequential write)速度真的就有可能不漂亮.
這已經跟SATA 3的6 Gbit/s傳輸速度沒有關係了,
因為MLC NAND寫入速度很慢, SATA 6Gb/s幾乎只有填滿SSD裡面的DDR3 buffer就要等MLC NAND flash慢慢寫入.
SATA3的6Gb/s在SSD裡也只是一種瞬間傳輸, buffer被塞滿了就會, 主控端就會被迫停下來等.
我個人推測這顆120GB SSD裡面的buffe, 也就是DDR3速度1600~1866 MT/s, DDR3的容量應該也是128MB, 120GB的 ONFi3.0 NV-DDR2 NAND flash組態應該只有2 channel和 4 interleave.
有一次我看到某個系列的SSD裡面的buffer, 也就是DDR3(16 bit)顆粒.
128GB(120GB)裡面的DDR3容量是128MB
256GB(240GB)裡面的DDR3容量是256MB
512GB(480GB)裡面的DDR3容量是512MB
NVMe(PCIe) SSD可能就放更多顆DDR3或是直接用LPDDR3(32 bit).
Seq卡在3xxMB/s的問題很單純,只是接錯SATA port而已
本來應該要接Z77原生SATA3才對,但樓主卻接到ASMedia ASM1061非原生SATA3去了
elb wrote:
[開箱測試]Intel...(恕刪)


其實裡面的記憶體,不是都如所想的,拿來這麼利用的,SandForce的2級映射,又是因為其他因素而影響了,而記憶體大有大的好處,但是越大同樣也是有壞處,需要搭配存取模式調整,所以要看FW規劃好壞才能決定的。
他所跑的速度,老實說是更貼近真實效能的,平常大家看的反而才是被優化過了。

一般的架構,大多是類似這樣的形式居多:



SandForce的架構則為:


changpizz wrote:
其實裡面的記憶體,不...(恕刪)

不清楚你所謂的"其實裡面的記憶體,不是都如所想的,拿來這麼利用的"是指?
若我有說錯請指教錯誤.....

所謂的DDR越大,還必須考量其組態,
SSD裡的DDR還是得要考量頻寬(Band Width, BW)
目前16 bit DDR3/3L 1600MT/s或更快,
還是16bit x 2 or LP-DDR3 (32 bit)1800 MT/s 的BW才夠快.
以目前SATA3 6Gb/s,經過8b/10b編碼後,
真實的資料BW約600MByte/s(max)流入DDR buffer也不是問題,
一顆DDR3/3L的BW已經有1600MT/s x 16bit/8Byte = 3.2 GByte/s.
再由multi-channel DMA及RAID0分配資料到各channel的NV-DDR1/2 NAND flash controller,
最終流至Toggle/ONFi NV-DDR1/2 I/F NAND flash,
現在一顆NV-DDR2 NAND flash有400MB/s 頻寬,
4-channel就有1.6 GByte/s, 8 channel就有3.2 GByte/s,
再加上interleave mode, 是絕對大過3.2GByte/s,
但是每顆NV-DDR2 NAND flash內部的16KB page size, 2-plane,
MLC NAND flash寫入速度拖慢了自己的整體速度,
在4-channel甚至8-channel都有伴隨使用interleave mode也沒有辦法達到300MB/s,
唯獨使用MLC to SLC mode,
或是每顆MLC NAND flash內建容量小的SLC NAND flash的方式可大幅提升寫入速度.
所以x1 PCIe SSD就可有機會達到8xx~9xx MB/s的寫入速度.
這些MLC/TLC的寫入速度雖然很慢, 但是讀取速度也沒有輸SLC NAND太多.
再加上SSD controller內部做ECC, FTL,
foreground or background garbage collection也是會降低傳輸速度,
但沒辦法, 一定要這些, 否則NAND flash 在15nm已經不是以前的SLC 100K,
MLC 10K次寫入/抹除次數,
所以要用這些演算法好好的疼愛這些NAND flash cells才會長壽.
elb wrote:
不清楚你所謂的'其...(恕刪)


我指的是,裡面的DRAM是用在映射部分為主,不是專門用來資料加速的,但是你似乎是把它當成資料的快取在使用了。
或者說,他是用在數據存取的轉換過程用的,但是如果用緩存解釋,又跟他本來用意有所不同了,應該是做數據重組,才是它的工作。

主要部分我就不貼了,因為在檔案內容中都已說明了,總之這句是他的重點:
Moreover, the SF-2000 accomplishes this by adjusting logical capacity, rather than by requiring extra Flash parts be soldered to the PCB.

順帶一提,SSD寫入每個步驟,都有所謂的耗費時間,速度是因為這些耗費掉的時間,最後加總而得知的,跟DRAM有無寫滿,或者頻寬多大是沒有關聯的,因為實際上並不是卡在這些環節,才使得SSD變慢的。(影響可能自然還是會有)

至於MLC快慢的部分,有兩張圖可以參考,但只要看看就好,無需直接對比。
兩顆執行磁碟掃描IO次數

SLC停止掃描後IO次數


即使把MLC的IOx2讓容量問題消失,依然會發現速度還是差一大截,當速度越快時,IO理論上次數是要下降,但是SLC是速度更快,卻有著一樣的存取次數,所以當中還是差了一倍效能。

另外還有一個隱藏性的差異點是,MLC會因為內部數據存取複雜,導致進行上有困難,讓速度因此變慢,但是SLC則沒有這種問題,無論讀寫如何分配,最大總速度都是不變,或保持在差異極小的範圍當中,而MLC如果寫入下降10時,可能讀取會因此下降20,這就如同ADSL非對稱的上下載頻寬,寫入會影響一倍以上的讀取性能,因此讀寫同時進行的複雜情況,就會出現這種情況。

MLC部分效能是憑空消失掉了,這也是為何說實際是SATA2的原因。



當MLC寫入過較多資料後,甚至會出現這種情況,因為本身寫入條件,就是比SLC的難度又更高,而如果只進行讀取和寫入單一條件測試時,一般人並不會在常見測試軟體中,去發現這問題,所以認為與SLC差異性極小,但日常使用偏偏就是這種情形。
changpizz wrote:
我指的是,裡面的DRAM...(恕刪)



網路上我找兩篇
http://www.flashmemorysummit.com/English/Collaterals/Proceedings/2014/20140805_B11_Canepa.pdf
這網站很多資料可以看, 每年都會有公司發表一些作法.

http://arxiv.org/pdf/1502.02239.pdf
這篇第2.1節

SSD裡的DDR當然有做緩衝區加速寫入的效果,
依照16KByte page size的NV-DDR1/2 NAND flash來說,
MLC Program throughput大約只有2x MB/s,
SLC就有~8x MB/s.
MLC也可以當成SLC使用, 一方面當成另一級寫入緩衝提高寫入速度, 但缺點是此容量會減少一半,
但是並不是整個SSD的MLC NAND flash都拿來變成SLC.
8 channel MLC再加interleave mode若不靠DDR緩衝, 原始寫入頂多也只能上2xx MB/s左右.
這跟市面上的512GB SSD sequential write就差很多了.
問題是NAND flash組態要確認才知道有沒有8 channels.
提升寫入速度或是說減少資料量寫入到NAND flash可以使用資料壓縮方式,也就是sandforce Dura write.
只是DDR不完全都全部做緩衝,一部分也做FTL
(也就是你講的mapping, Logical address to Physical address),GC, wear leveling時也會用到.

只是MLC被寫過,要再寫一定要先抹除,那MLC就更慢了.
一個block(256 or 512 pages)可能要3 ms,128GB就難算了.

"MLC部分效能是憑空消失掉了,這也是為何說實際是SATA2的原因"
這句話會容易被誤解,
你若是了解SATA3 6Gb/s的傳輸速度,瞬間傳輸是6Gb/s,真心不變,
buffer無法被及時處理,下一級也無法及時吞下的時候,傳輸是會停一下,
整體看來的速度才無法到達6Gb/s. 但它的傳輸依舊是用6 Gb/s傳輸.
gilo0719 wrote:
大家好~小弟上禮拜...(恕刪)
elb wrote:
網路上我找兩篇http...(恕刪)


找文章其實還是需要先理解跟消化一下的,如果你換成其他產品,那或許可以說是沒有問題的,但是你偏偏挑了一個SandForce.....這....我也不知道該怎麼替你找也許之類的可能性,因為這款SSD產品,其實是可以將FW,顆粒,記憶體各方面的速度,全部拆解開來的。

至於頻寬這一點,我也不知道為何有這麼多人理解成那樣,所謂的頻寬,其實不是固定不變的條件,不過這因為要講到驗證SAS跟SATA的部分了,可能就不是三言兩語就容易說明的,可能你自己搜尋適合的內容,然後看SATA2跟SATA3是如何區分的會比較好一點,因為這條件真的隨時都可能改變的。至於說是不是真心跑6G模式,又回頭講到前面提的了,速度是把條件加上去,再由FW的模式去分類,而讓該基數有了增加的可能,但是別忘記了,那些影響都是可以避免的,基數是不會被影響的。

例如這條件就是只跑基本效能,而這其實才是真實效能。


而這是加上了記憶體的部分,這就是能看到3xx的原因。


如果加上FW部分的介入,就如同這樣子影響情況。


而那些為什麼能夠高效能,可以參考這張圖部分。


如果覺得沒有頭緒的話,我可以提供4K寫的數據與模式。這張圖就說明了,命令,數據內容,大小,長度,QD條件,反應時間,命令耗時,等等的資訊了。不同的指令,不同的數據內容,大小,長度,甚至驅動都是會影響到耗時的部分,這樣子說明應該算是夠仔細了,已經將每一動都列出了,相信應該會容易理解些。


而SandForce在參數設定時,是可以選擇是不是要開啟那些功能,緩衝可有可沒有,如果希望亂數寫入較高,或是循序哪個要突出,其實都可以設定後排除,即使一般無法去調整的情況,也可以透過轉接之類方式分辨出來的。那個不是緩衝延遲一下的原因,而是架構的影響才導致的,就類似上面三張圖的差異那樣,不是意外或運氣因素才有的情況。

不同位置與原始內容等等因素,都會讓每一筆命令有不同結果出現,而這就是答案了。應該能拆的都拆解開了,所以與其看網站文字說明,我反而更相信自己去實驗與分解後,把每一個動作跟環節全部都摸透的最終答案。

changpizz wrote:
找文章其實還是需要先...(恕刪)


不用幫我找可能性.除非你是design house RD或是FAE,但也沒有義務替我找可能性.這點我心存感激.
我是以NAND flash顆粒物理特性的出發點來看,你以系統來看,
但大致上的架構是不會有太大差異, 除非廠商給的顆粒array特性表有錯,才會錯估controller奇特作法.
測試軟體寫入的pattern是1還是0,抑或是亂數寫入,甚至SSD有沒有被使用過,對performance也會有影響.
講到這個, 你對Sandforce foreground garbage collection有研究嗎?

至於SATA2 or 3, 電氣訊號表現出的最準, 整體速度並不能說SATA3產品是SATA2.
假如你對它的電氣特性量測過的話,
microSD/eMMC也是類似的情況,雙方溝通後可以support最高速度傳輸, 絕對不會往其他慢的頻率方式傳輸,
但緩慢寫入是拖垮號稱的速度, 使用者可能會以為廠商唬爛.
其實也是host and device雙方認可的速度傳一段再停下來,傳一段再停下來.
gilo0719 wrote:
大家好~小弟上禮拜...(恕刪)
  • 2
內文搜尋
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?