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