前兩天江波龍公號發布了“不止于性能,FORESEE P78A SSD斬獲多項兼容平臺認證”一文,阿呆安排我讀一下然后寫一點感想。
首先,我喜歡“不止于性能”這五個字,有大量的SSD評測文章:貼產品圖,貼PCB圖,貼產品參數,然后貼個性能測試的數據(而且連FIO都懶得用,直接CrystalDiskMark)。在看了千篇一律的各種性能測試之后,這次的東西有點意思。
其次,我覺得Modern Standby有點意思,在了解Modern Standby之前,有必要簡單了解一下ACPI規范中的S0~S5狀態。
S0:正常工作狀態
S1:也稱為POS(Power on Suspend,CPU停止工作),其他的硬件設備仍然正常工作;
S2:使用不多,我們不做介紹
S3:待機(Suspend to RAM), 即是把 windows 當前存在內存中的所有資料保存不動,然后進入“假關機”。此時除了內存需要電源來保持資料以外,其它的設備,裝置全部停止供電。
S4: 休眠(Suspend to Disk), 即是把 windows 內存中的資料完整的保存在硬盤中,等開機時就直接從保存這些資料的地方直接完整的讀到內存中,不需要跑一堆應用程序。
S5: 關機狀態

Modern Standby介紹
S3/S4雖然能省電,延長筆記本電腦的使用時間,但是恢復時間過長,已經無法適應當前我們的使用習慣。現在的用戶都被智能手機慣壞了,拿出手機點亮屏幕就要馬上開始操作,如果要等個10來秒那簡直不能忍耐。Intel和微軟順勢推出了Modern Standby的概念,希望能在筆記本上實現類似手機的體驗。比如,用戶合上屏幕就開始省電,打開屏幕就馬上恢復使用,這樣就能做到在不影響客戶體驗的情況下節省電力。
Modern Standby既不是S0,也不是S1,因為CPU并不是處于全速工作狀態(S0),但是也沒有完全關閉(S1)。我們希望手機在屏幕關閉的時候能夠放歌,收微信,同理Modern Standby也賦予筆記本在省電模式下在后臺處理任務的能力,比如收郵件。那我們可以考慮將其理解為S0.5。
那么Modern Standby對NVMe SSD的要求是什么呢?說通俗一點,盡量省電的情況下同時支持讀寫,對此時的讀寫性能沒有高要求(比如只有平時50%水平),但是要求恢復時間短。如果用技術語言表達,就是要求SSD實現高效的NVMe Power State管理。
NVMe 1.2協議中引入Power State的概念:

Power objective和Performance Objective: 系統層面的應用有功耗和讀寫性能的目標,這個是輸入。
Power Manager (Host Software): 這個我理解是NVMe Controller Device Driver
NVMe Express Power State:NVMe規定(Identify Controller Data Structure)最多支持32個Power State Descriptor,其中Power State Descriptor 0是必須support 的,其他都是可選。
Host是如何通過NVMe Power State來控制SSD的呢?大致流程如下:
1.Host給Controller發個Identify Controller Command, Controller會回復一個4K的數據包。
2.Host解析Byte 263獲知Controller支持的Power State的數量

3.Host解析Byte 2079:3140獲知每個Power State下Controller的具體屬性
?例如Controller可以支持四種Power State
?PS0: 均衡模式 (平衡考慮功耗,讀寫性能,延遲,但每個都不突出)
?PS1: OLTP模式 –大量隨機小IO (要求低延遲)
?PS2: 視頻模式 –大小連續大IO (要求高吞吐量)
?PS3: 綠色模式 – 低能耗
4.Host根據正在運行的應用(例如郵箱服務,數據庫服務,視頻服務和股票交易服務等)選擇讓Controller合適的Power State,具體實現是通過Set Feature Command(Feature ID 0x02),在DW 11的Bit 04:00寫入


5.同理,Host也可以通過Get Feature Command來獲知當前Controller所處的Power State

設幾個Power State跳來跳去容易,但具體的跳轉策略才是這個技術的核心價值所在:結合IO Pattern,功耗要求和Enter/Exit Latency來決定跳不跳,何時跳,跳哪里。要設定一個優秀跳轉策略,相信沒有人能夠比Intel + Microsoft更有發言權,而能通過他們的認證,說明P78A完全符合兩位大佬對于功耗和性能兩方面之間平衡的理解。
再次,UNH IOL也有點意思,主要體現在:
1.這不是一個強制的認證
?可以不參加,不影響賣盤
?但國際大廠一般都參加
2.這是一個很貴的認證
?報名成為會員要花錢(每年數千到上萬不等)
?成為會員獲取License文件以后,就獲得送測資格了,每年官方會定期舉行插拔大會讓廠商攜帶樣品集中起來進行測試,測試包括兩部分:
1.NVMe Conformance Test Suite (協議一致性測試)
2.NVMe Interoperability Test Suite (交互性測試)
每年的官方測試活動次數有限,每次大概3天左右,廠商這邊在官方送測前都會自己先進行預測試,預測試一般是跑UNH IOL PC Edition,然而官方正式測試一般是跑UNH IOL LeCroy Edition
你也可以預測試跑UHN IOL LeCroy Edition, 但需要先采購儀器,一套LeCroy的PCIe Analyzer和Exerciser加起來需要20萬美金
3.這是一個很花功夫的認證
UNH IOL認證會考驗SSD對NVMe協議支持的方方面面,以UNH IOL PC Edition 為例,測試項目一共有10個Group,分別是:
?Group 1: Admin Command Set
?Group 2: NVM Command Set
?Group 3: NVM Features
?Group 4: Controller Registers
?Group 5: System Memory Structure
?Group 6: Controller Architecture
?Group 7: Reservations
?Group 8: Autonomous Power State Transitions
?Group 9: Namespace Management
?Group 10: PCI Express Capability Registers
以Group 2里的read command為例,就有以下測試項目:
?Case 1: Valid Read, LR (Limited Retry)=0,FUA (Force Unit Access)=0
?Case2:SLBA out of Range
?Case 3:SLBA in range,NLB goes out of range
?Case 4:SLBA out of range,NLB>MDTS
?Case 5:SLBA out of Range, but lower dword=00000000
?Case 6: Invalid namespace ID
?Case 7: Invalid Namespace ID and SLBA out of range
?Case 8:Valid Read,LR=0,FUA=1
?Case 9:Valid Read,LR=1,FUA=0
?Case 10:Valid Read,LR=1,FUA=1
?Case 11:Valid Read, Invalid PRP address offset
可以看到,一致性測試除了正常read操作,基本上把read命令出可能出現的各種錯誤情況都考慮到了。這些錯誤情況每一個看起來都不復雜,固件處理起來也并不困難,但是要把所有命令的各種錯誤情況都處理的明明白白,固件工程師們需要投入大量的精力。
寫在最后,P78A順利通過Intel Modernstandby認證,我點贊。在UNH IOL這個非強制認證上花功夫,我喜歡。
|
高端微信群介紹 |
|
|
創業投資群 |
AI、IOT、芯片創始人、投資人、分析師、券商 |
|
閃存群 |
覆蓋5000多位全球華人閃存、存儲芯片精英 |
|
云計算群 |
全閃存、軟件定義存儲SDS、超融合等公有云和私有云討論 |
|
AI芯片群 |
討論AI芯片和GPU、FPGA、CPU異構計算 |
|
5G群 |
物聯網、5G芯片討論 |
|
第三代半導體群 |
氮化鎵、碳化硅等化合物半導體討論 |
|
存儲芯片群 |
DRAM、NAND、3D XPoint等各類存儲介質和主控討論 |
|
汽車電子群 |
MCU、電源、傳感器等汽車電子討論 |
|
光電器件群 |
光通信、激光器、ToF、AR、VCSEL等光電器件討論 |
|
渠道群 |
存儲和芯片產品報價、行情、渠道、供應鏈 |

< 長按識別二維碼添加好友 >
加入上述群聊
帶你走進萬物存儲、萬物智能、
萬物互聯信息革命新時代
