引言
Datalight 這家公司專門從事嵌入式系統(tǒng)相關(guān)的軟件開發(fā),他們有一套移動終端設(shè)備的數(shù)據(jù)存儲方案,用來保證手機、筆記本、電腦醫(yī)療設(shè)備、汽車設(shè)備等等的數(shù)據(jù)安全。
Cameron Dahl,是一名華盛頓大學(xué)的電子工程系應(yīng)屆生,他在Datalight實習(xí)期間,參與了一項存儲系統(tǒng)功耗對比的項目,本文是他自述的一段測試經(jīng)歷:使用PicoScope 4424示波器測試eMMC功耗的過程,并給出了測試結(jié)果。以下是Dahl提供的報告:
項目概覽
Datalight開發(fā)了一種容錯的文件系統(tǒng),以及一些提升eMMC性能的驅(qū)動,供移動設(shè)備使用。最初我被分配的一項任務(wù)是:給好幾種不同的eMMC閃存模塊測量功耗,對比使用Datalight軟件前后的提升,給市場部門提供一些圖表方便宣傳展示。
圖1:PicoScope 4424 測試eMMC案例
收集數(shù)據(jù)
從一開始我就在想怎么從移動設(shè)備收集數(shù)據(jù),有效地表征eMMC的功耗,為了模仿真實的應(yīng)用,我先在使用Datalight文件系統(tǒng)的Linux上運行性能跑分軟件,結(jié)果會在命令行或者圖形界面里面顯示出來。
然后,我再測試了一組使用標準Linux文件系統(tǒng)的情況,對比它和Datalight之間的區(qū)別。
eMMC卡通常使用一個很小的方形封裝,它可以直接焊接到PCB上面,也可以跟USB-SD讀卡器連接。封裝的尺寸有3種,每種的讀卡器都不相同,大部分的讀卡器都沒有把Vcc供電引腳印出來,他們基本上都是當作SD卡槽來用的。另外一些有Vcc引出的讀卡器,會帶有一個兩針的跳線,他們就是專門用來測量eMMC功耗用的。
在測試過程中,我用到了兩個讀卡器的型號,MicronNumonyx 和SamDisk iNAND,他們都引出了Vcc信號,我在Vcc跳線的兩根針之間插入一個1Ω的電阻,借此測量功耗。
通過這種方法,我測試了許多種不同的eMMC卡,并且把它們的功耗做了對比。
測量功耗
上面已經(jīng)提到我用了1Ω電阻,測量兩端的壓差然后反算電流。實際測試時,我用兩根示波器的表筆分別測量電阻兩端的電壓。當然,為了測試報告好看,最終的結(jié)果還需要換算成功率數(shù)值。eMMC的供電電壓大約是3.315V,所以最終eMMC功耗是:Pr= i x 3.315 – i*i 其中i是電流值。
大量數(shù)據(jù)怎么辦
剛開始我是用Excel來收集數(shù)據(jù)的,后來發(fā)現(xiàn)它最多只能存100萬行左右,而我需要記錄500萬個數(shù)據(jù)點,直接把數(shù)據(jù)保存成Excel格式行不通。所以我用了一個開源軟件CSVed,每次記錄100萬個數(shù)據(jù),分5次記錄,然后把它們拼起來。
圖2:CSVed測試結(jié)果記錄界面
測試設(shè)備方面,我曾嘗試用自己熟悉的TektronixMSO/DPO 2000系列,把數(shù)據(jù)保存成csv格式,同時保留波形截圖。但是很快就遇到了問題:
雖然我可以用Tektronix示波器抓到500萬個數(shù)據(jù)點,但是不幸地是當我抓取這么長時間波形的時候,采樣率就變得太低了。我理想的測試時長是15分鐘甚至更長,在這個過程當中,我不但要記錄整段的功耗波形,還需要放大去分析局部的一些細節(jié),比如在eMMC進行讀寫操作的時候?qū)?yīng)的功耗變化。換句話說我需要示波器在記錄長時間波形的同時,采樣率也足夠高。
圖3:Tektronix 波形截圖
另外,每測量一組結(jié)果我都要把數(shù)據(jù)和截圖用優(yōu)盤導(dǎo)入到電腦上,這非常耗時,在后面進行大量測試的時候這會浪費很多時間,所以我開始調(diào)研有沒有基于PC控制的示波器。
入手PicoScope
后來我查到了PicoTechnology,在官網(wǎng)上我瀏覽了各種PicoScope的型號,然后一個本地的代理商給我講解了它們各自的特點和區(qū)別。在我的測試應(yīng)用里面,Tektronix只能工作在12.5KS/s采樣率下,歸根結(jié)底是存儲深度的限制。而PicoScope同檔次的產(chǎn)品存儲深度可以達到Tektronix的10倍以上,因此記錄同樣長度的時間,采樣率也就能高出10倍。
我立刻向Datalight公司申請買一臺PicoScope 4424, 一個星期就到貨了。
PicoScope軟件界面很好用,所以從硬件到軟件都比Tektronix 那一臺好太多了。我可以一次記錄更長的時間,更多的波形,把數(shù)據(jù)保存到PC的過程也簡便了許多。這一下子就解決了我之前遇到的所有問題。
用了PicoScope以后,在保證采樣率足夠的前提下,我的測試流程時間提高到了7-10分鐘,這在原來的Tektronix示波器上是辦不到的。并且PicoScope軟件還提供了一個自動保存截圖的功能,每一組測試完成,就會自動保存一張截圖到硬盤,在運行過程中實時自動保存,保證數(shù)據(jù)、截圖順序依次存儲,比手動保存可靠方便。
圖4:PicoScope 波形截圖
測試流程
我的Datalight性能測試流程有兩種,分別叫FSStress(數(shù)據(jù)庫仿真)和BDevTest(底層塊傳輸性能工具),跑分軟件在Linux平臺上用的是IOmeter,Android上面用的是RLBenchmark.Android上面的測試要求更精細,需要分別測量每個eMMC模塊的功耗以及整板的功耗。
此外我還測試了整板的供電壓降,對于eMMC而言,一點小小的壓降都會導(dǎo)致卡識別不出來。(因涉及公司商業(yè)秘密,未貼出電流測試對比圖)
總結(jié)
PicoScope 成功地幫助我測量并整理了eMMC的功耗數(shù)據(jù),這些結(jié)果直觀準確地反映了Datalight對于eMMC的功耗提升。PicoScope讓我能夠長時間地記錄準確的電流波形,軟件強大的功能直接可以換算功率數(shù)值,不需要再等待Excel漫長的計算過程。所以于我而言,PicoScope真的是最理想的測試設(shè)備。我想將來我會一直用它,并且也強烈推薦給你們。