性能是存儲設(shè)備生產(chǎn)廠家重要競爭力,也是客戶最直觀了解的方面。得一微在怎么檢查性能可優(yōu)化點,以及長時間使用能維持性能平穩(wěn)方面,提出了更高的追求。
在Host進行寫讀操作時,性能的上限是由總線的數(shù)據(jù)傳輸速度加上Flash操作時間來確定的。一個通道理想的寫入狀態(tài)是,數(shù)據(jù)總線一直被有效數(shù)據(jù)占據(jù)。這個時候不可避免會存在的影響性能的方面為:
命令發(fā)送時間:無法避免的部分
RB時間:通過切CE等方式解決,這里不做討論
非Host數(shù)據(jù)傳輸時間:不屬于Host使用的Flash帶寬
FW運行時間:不能隱藏在Flash操作中的耗時操作
在固定Flash模型之后,就要去盡量的靠近性能上限。實際對Flash進行操作時,會有大量時間不處于理想狀態(tài),經(jīng)常出現(xiàn)實際測量速度小于計算速度。該文章就是在討論:如何縮短不理想狀態(tài)的用時占比。
怎樣在這些細(xì)枝末節(jié)處判斷,是否能進一步優(yōu)化呢?較好的方式是使用邏輯分析儀抓取一份時序圖。觀察時序圖中是否有明顯數(shù)據(jù)總線空白時間,以及表格刷新時間是否合理。
下圖是抓取的一個較好的寫命令波形。可以看到DataBus總是被寫入數(shù)據(jù)占用,沒有大量空白的現(xiàn)象。寫的過程中,RB總線一直處于繁忙狀態(tài),F(xiàn)W沒有去等待上一次寫命令的RB,而是切換CE進行操作。同時也可以觀察到存在數(shù)據(jù)總線為空白的狀態(tài)。
但是當(dāng)放大該部分可以看到,足足有400+us是沒有進行Flash操作的。在各個接口都加入GPIO8的輸出后:就可以根據(jù)波形分析出此處在走什么流程,以及怎樣去減少不必要的時間損耗。
寫入Flash的數(shù)據(jù)可以分為:Host寫入數(shù)據(jù),表格數(shù)據(jù)、冗余數(shù)據(jù)、填充數(shù)據(jù)。除Host寫入數(shù)據(jù)外,其他數(shù)據(jù)對Host來說都是不必要的寫入,但又是固件運行所需要的。減少非Host數(shù)據(jù)的刷新,也是對性能的一個優(yōu)化。
某版本測試下4K隨機寫入,平均只有30+M/S:
得一微團隊發(fā)現(xiàn)了該細(xì)節(jié),通過減少非Host使用的Flash帶寬,得平均性能提升到了70M/S:
最終測試得到兩個容量相差一倍的相同顆粒盤,采用了該方案的卻能在4K隨機瞬時寫性能上做到一致,甚至在4K隨機滿盤更加優(yōu)秀。
通過在時序圖中分析每段時間占用情況,可以更好的了解性能阻塞點??梢苑治龀霎a(chǎn)品內(nèi)部是處于一個什么樣的狀態(tài)?正在處理怎樣的事情?耗時是否合理?以及是否可以進行優(yōu)化?正是得一微團隊在細(xì)枝末節(jié)中不斷計較,不斷精進,不斷優(yōu)化,用匠心磨礪產(chǎn)品,才能使得產(chǎn)品獲得更高的速度、更平穩(wěn)可靠的狀態(tài)以及更優(yōu)的性能表現(xiàn)。
基于如此追求,得一微旗下全自主工業(yè)存儲解決品牌“硅格 (SiliconGo)”,為行業(yè)客戶提供完整的工業(yè)用固態(tài)存儲解決方案,產(chǎn)品皆搭載得一微自研的主控芯片,具備寬溫、高度客制、高可靠性、高密度封裝、大容量等特性,能夠保障產(chǎn)品在嚴(yán)苛環(huán)境下的數(shù)據(jù)完整性和可靠性,已廣泛應(yīng)用于軌道交通、工業(yè)電腦、服務(wù)器、視頻監(jiān)控、網(wǎng)絡(luò)通訊、電力能源、智能家居、車載等眾多領(lǐng)域。