從外部看,很少有東西能夠比USB存儲棒(或U盤)或SD格式的存儲卡更簡單,這些存儲產(chǎn)品每個都包含有一個閃存陣列、一個USB接口和一個存儲控制器,為基于文件的非易失性存儲提供通用支持。但是,大多數(shù)通用型設(shè)備并不提供下述的功能,來容易地支持通過物理緊湊外形實現(xiàn)覆蓋范圍廣泛的許多應(yīng)用案例:各種各樣的系統(tǒng)現(xiàn)在都將支持USB或SD外圍設(shè)備作為標(biāo)準(zhǔn),可適用于除數(shù)據(jù)存儲以外的應(yīng)用。
這些方面使得USB或SD格式存儲設(shè)備成為構(gòu)建增強(qiáng)功能、可靠性和安全性等增值應(yīng)用的絕佳平臺。為確保高運(yùn)行時間和安全操作,存儲的可靠性至關(guān)重要。傳統(tǒng)的USB和SD控制器通過執(zhí)行磨損均衡(wear leveling)等操作來保持閃存的壽命和有限寫入的耐久性。但是,這些設(shè)備專為大眾市場應(yīng)用而設(shè)計,與嵌入式應(yīng)用有不同的要求。它們通常針對多媒體文件和文檔等批量數(shù)據(jù)存儲進(jìn)行了優(yōu)化,而嵌入式系統(tǒng)具有極其多樣的功能,并具有除永久存儲之外的不同要求。
嵌入式系統(tǒng)需要一個可靠的非易失性存儲解決方案,可針對傳感器數(shù)據(jù)更新和來自其他實時監(jiān)控器的數(shù)據(jù)等小量數(shù)據(jù)應(yīng)用而進(jìn)行優(yōu)化。寫入文件系統(tǒng)的配置文件可能與用于大文件更新的配置文件差別很大,而表示傳感器狀態(tài)的某個變量在正常操作期間可以重新寫入數(shù)百萬次。通常存儲地址也非常分散,導(dǎo)致非常不平衡的訪問。這將對任何閃存存儲單元的可靠性造成挑戰(zhàn),如果管理不善,可能導(dǎo)致失效或故障,盡管該陣列中的其余部分卻很少使用。
嵌入式系統(tǒng)的設(shè)計人員還需要確保更新已正確完成,并且非易失性內(nèi)存的內(nèi)容不會因為在完成工作之前由于停電或任務(wù)崩潰導(dǎo)致的寫入失敗而過時。這就是為嵌入式環(huán)境優(yōu)化的存儲控制器的關(guān)鍵所在,它能夠包括為各種嵌入式應(yīng)用提供可靠的非易失性存儲所需的功能。
此外,通過結(jié)合支持定制算法的能力,可以使存儲設(shè)備的效用最大化。采用一個智能控制器,并可通過應(yīng)用程序編程接口(參見下文)訪問的豐富功能,存儲控制器可以成為嵌入式系統(tǒng)的關(guān)鍵組件,或充當(dāng)智能協(xié)處理器,充分利用可移除閃存的優(yōu)勢。
如果能夠?qū)⒓用芎推渌踩夹g(shù)嵌入到獨立于主機(jī)CPU的存儲設(shè)備,將可以極大地提高系統(tǒng)的抗篡改能力,并為智能移動存儲開辟了新的市場。通過將安全功能內(nèi)置到已批準(zhǔn)的USB存儲棒或SD卡中,系統(tǒng)管理員可以確保拒絕接受未經(jīng)保護(hù)的外圍設(shè)備?;诖蟊娛袌鯱SB存儲控制器的現(xiàn)成解決方案無法提供相同級別的功能、可靠性和安全性,而集成了支持可靠閃存存儲所需核心功能的可編程USB存儲控制器則可以提供這些,甚至更多功能。
系統(tǒng)開發(fā)人員可使用自定義特性來實現(xiàn)各種增值功能。例如,如果系統(tǒng)提供有效的安全證書,這些功能可以確保系統(tǒng)只能讀取或?qū)懭朐O(shè)備的信息,因而可以用來防止IP盜竊或通過非常難以保護(hù)的接口引入惡意軟件,但仍支持在終端設(shè)備中使用可移除存儲。例如,通過這種方式,制造商可以保留維護(hù)工程師安裝軟件更新或訪問運(yùn)行時間數(shù)據(jù)的授權(quán),且具有可以驗證的額外好處。
為了安全訪問閃存陣列,存儲控制器需要支持有效的加密基元(encryption primitives),這些基元可以經(jīng)由用戶應(yīng)用組合到解決方案中。訪問定制硬件是進(jìn)一步的要求。
為了增加保護(hù),設(shè)備本身可能包括生物識別技術(shù)或傳感器,以確保它只能在特定的位置使用。例如,USB或SD卡上基于GPS的傳感器可以檢查設(shè)備是否在核準(zhǔn)位置上使用,如果在該區(qū)域外使用,則會觸發(fā)警報。這些額外的傳感器和功能可以為制造商提供時間限制和位置鎖定鍵,這些鍵僅在存儲單元存在時才起作用。這樣可以支持多種面向服務(wù)的業(yè)務(wù)模型,并且是桌面型閃存控制器所不具備的功能。
Hyperstone為了設(shè)計其智能閃存控制器,考慮到了這些方面以及許多其他要求。作為標(biāo)準(zhǔn),控制器本身需要執(zhí)行許多對嵌入式系統(tǒng)非常重要的功能。例如,磨損均衡算法考慮了小量寫入和零散數(shù)據(jù),并可自動整合這些元素以確保更高效和可靠的運(yùn)行。通過集成一個應(yīng)用程序接口(API),還可以通過用戶定義的功能擴(kuò)展智能存儲控制器的全部功能。
該API能夠提供所需的許多服務(wù),以支持USB和SD存儲的增值應(yīng)用。開發(fā)人員可以在核心服務(wù)之上構(gòu)建更廣泛的增值應(yīng)用,能夠訪問USB驅(qū)動器或SD模塊上的定制硬件。為了支持這些,控制器可以提供16個通用I/O線路,可配置為SDIO、SPI或I2C接口。通過這些接口,可以連接數(shù)字傳感器、RF收發(fā)器和其他附加元件。例如,用戶可以配置I/O線路以支持ISO7816協(xié)議,這樣可以集成訂戶身份模塊(Subscriber Identity Module,SIM)等專用外設(shè)來代表存儲控制器執(zhí)行身份驗證。每次讀取或?qū)懭攵伎梢詸z查其安全狀態(tài),并在數(shù)據(jù)傳入和傳出卡閃存陣列過程中對數(shù)據(jù)進(jìn)行加密和解密。這可確保在移動存儲丟失或被盜時,其中的數(shù)據(jù)能夠得到保護(hù)。
USB模塊可以充當(dāng)安全連接器,只有當(dāng)認(rèn)證模塊插入I/O端口時,才允許對系統(tǒng)進(jìn)行調(diào)試和測試訪問。模塊外表面上的外部連接器能夠提供必要的端口,但是,某些應(yīng)用不需要如此高的安全級別,供應(yīng)商可以選擇使用USB端口作為向客戶提供升級和增強(qiáng)產(chǎn)品的方式。例如,內(nèi)置于模塊中、并由存儲控制器管理的MEMS麥克風(fēng)可以增加音頻錄制功能。
在Hyperstone架構(gòu)中,客戶自己的固件擴(kuò)展不依賴于底層的閃存技術(shù)。不同格式閃存之間的差異由控制器本身的內(nèi)置功能處理,用戶二進(jìn)制文件可以使用傳統(tǒng)寫入進(jìn)行更新,并且能夠使用存儲控制器固件上的地址范圍鎖定來防止無意或有害的寫入。一旦固件已經(jīng)加載到設(shè)備上,就可以刪除它的更新能力。架構(gòu)還支持冗余固件以及錯誤檢測和糾正,可確保在固件的一個副本如果損壞或更新失敗時不會危害到設(shè)備。
開發(fā)Hyperstone存儲控制器所使用的是許多工程師都熟悉的標(biāo)準(zhǔn)軟件工具,支持一個基于GNU的編譯器工具鏈。為了調(diào)試,采用了Eclipse IDE和GNU調(diào)試器(GDB)。
通過為增值應(yīng)用實施硬件和軟件的安全性保證(hooks),Hyperstone的閃存控制器可實現(xiàn)全新類別的存儲設(shè)備。這些設(shè)備不僅可以提高存儲單元本身的可靠性和安全性,還可以充當(dāng)抗御對物聯(lián)網(wǎng)(IoT)和工業(yè)物聯(lián)網(wǎng)(IIoT)系統(tǒng)攻擊的主干。通過可編程I/O訪問硬件外設(shè),存儲模塊本身也可以成為智能設(shè)備。借助于使用GPS接收器、編碼器和加速計等MEMS傳感器,存儲模塊遠(yuǎn)不止再是簡單的數(shù)據(jù)存儲庫,而是能夠打開全新可移除存儲設(shè)備大門的全新技術(shù)。