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