辛明勇,祝健楊,徐長寶,姚 浩,劉德宏
(1.貴州電網有限責任公司電力科學研究院,貴州貴陽 550002;2.南方電網數字電網研究院有限公司,廣東廣州 510663)
在電網數字化轉型過程中,海量電網數據的同步性存儲是一個亟需解決的難題。電網數據的存儲體系,直接影響著處理器的整體工作性能和功耗水平,合適的存儲技術能夠顯著提升處理器的數據處理效率,避免重復的數據計算。其中,多核處理器通過增加核的數量以提升處理器的可擴展性和并行性,逐漸取代了單核處理器在電子產品中的應用。但目前應用于海量電網數據儲存的多核處理器存儲技術研究尚不成熟,數據存儲同步性差、數據重復顯著且數據存儲缺乏條理性,影響了多核處理器的整體工作質量。
為此,國內的研究學者對此展開了深入研究和探索。文獻[1]提出的基于FPGA 和FLASH 的多核處理器層次化存儲技術采用FPGA 微型處理器,采用RS422 串行轉換模式將串行數據轉換為并行數據模式,包含一級存儲模塊和二級存儲模塊,內設FLASH處理器,執行控制模塊的控制指令,存儲穩定性高且易于實現,但該技術不能有效剔除重復數據,存在抗冗余度較低的問題。文獻[2]提出的基于CloudSim 的多核處理器層次化存儲技術,以層次組織結構進行設備劃分,并采用CloudSim 層進行拓展功能集成,整體靈活性較強,且抗冗余度高,但數據存儲同步性較差,易出現存儲誤差等現象。文獻[3]提出的基于Hadoop 云存儲架構的多核處理器層次化存儲技術,采用Hadoop 云存儲架構對數據存儲技術進行優化,能夠有效提升數據存儲的吞吐量和存儲效率,但整體同步性較低,僅適用于網絡數據存儲,適應性不高。
為解決以上問題,文中提出了基于循環神經網絡的多核處理器層次化存儲技術,并針對其實際應用性能進行了實驗驗證。
非對稱多核處理器屬于異構處理器的一種,其設計原理是在同構處理器的基礎上保留中斷控制器、寄存器、總線以及電源等結構設計,采用指令集架構設計方案進行整體設計,保證指令的正確生成、發送和執行,并引用并行ILP 設計流水線,提升處理器的資源處理效率,且為滿足異核同步運行需求,每個核的流水線設計架構各不相同。與此同時,異構多核處理器的緩存系統采用可動態配置緩存架構,支持算法替換和策略回寫,有效降低程序訪存帶寬,提升程序訪存效率[4-5]。異構多核處理器和同構多核處理器的結構差異如圖1 所示。

圖1 異構多核處理器和同構多核處理器的結構差異
并行多核處理器快速卷積算法以循環神經網絡算法為基礎,包含數據布局、數據轉換以及矩陣乘等三部分核心內容。首先,數據布局是指數據在多核處理器存儲單元中的存儲方式,文中綜合考慮數據布局轉換開銷、矩陣乘算法的訪存順利、算法實現的訪存范圍等多種影響因素設計數據布局。
定義I表示數據輸入特征圖,O表示數據輸出特征圖,F表示數據存儲格式,D、U均表示存儲矩陣的內部張量,α、β、γ均為矩陣分塊計算中的參數。
在上述數據布局下,當數據存儲格式和大小確定后,建立數據轉換矩陣AT,P和Q為常數,數據轉換過程如式(1)所示:
式中,z為轉換后的輸出數據。
經過上述數據轉換后,采用向量單元計算矩陣乘,由于非對稱多核處理器由寄存器、一級緩存器、二級緩存器等層次組成[6-8],故采用分塊式方法最大限度地挖掘數據價值,將矩陣分為大小為4×4 的子矩陣,矩陣乘的計算方法如下:
其中,C為矩陣乘的計算結果;ui為子矩陣;CN為ui在寄存器中重用次數。
優化后的矩陣乘示意圖如圖2 所示。

圖2 優化后的矩陣乘示意圖
為提高數據存儲效率,文中以循環神經網絡為基礎構建神經網絡模型,采用分層次數據存儲方式,將不同結構的數據進行分類存儲,在數據存儲時,統一化數據存儲格式,以IFC 數據為標準數據存儲格式,并將數據的屬性信息以osg 格式存入數據庫中,在進行數據查詢和提取時,通過存儲節點讀取數據庫中osg 數據,再調用屬性信息查詢函數,就能實現高效率且高精度的數據存取[9-11]。基于循環神經網絡的數據存取過程如圖3 所示。

圖3 基于循環神經網絡的數據存取過程
數據庫的設計需綜合考慮多種因素,既要滿足數據的存儲需求,又要減輕編碼負擔,保證數據存儲的安全性和穩定性的同時,又要便于維護和管理。為此,針對多核處理器的存儲需求,根據數據與數據、數據與存儲空間之間的組織關系,建立CompoenentInfo 數據表存儲數據組織關系,包含存儲節點、數據編號、屬性編號、數據類別、數據名稱、存儲層級等字段[12]。
1)ES 存儲節點的復雜度計算
由于ES 存儲節點只具備數據存儲功能,不具備數據查詢功能,故ES 存儲節點的總體網絡消息傳輸復雜度TMCES為:
其中,n為數據傳輸數量;ri為第i個子存儲節點的存儲效率;為數據發送節點的發送效率。
根據數據存儲復雜度的定義,計算一個存儲節點最大可能存儲的數據量,即考慮最極端存儲狀態下,多核處理器中產生的所有數據都經過一個存儲節點進行存儲,則ES 存儲節點的數據存儲復雜度HTCES為:
式中,sd為數據存儲的報文大小。
2)LS 存儲節點的復雜度計算
相較于ES 存儲節點,LS 存儲節點不具備數據存儲通信功能,僅具備數據查詢功能,LS 存儲節點的總體網絡消息傳輸復雜度TMCLS為:
式中,Ri為第i個子存儲節點的查詢效率。
同上,考慮數據存儲復雜度,在最極端存儲情況下,LS 存儲節點的數據存儲復雜度HTCLS為:
式中,sq為查詢數據的大小。
3)DCS 存儲節點的復雜度計算
相較于以上兩種存儲節點,DCS 存儲節點兼具數據存儲功能和查詢功能[13-16],使用散列函數將每個數據類型映射到特定的存儲空間,每個子存儲節點在主存儲節點的控制下進行分層次數據存儲,DCS存儲節點的總體網絡消息傳輸復雜度TMCDCS為:
在極端存儲狀態下,所有數據包、查詢數據以及恢復數據都經過同一個子存儲節點,則DCS 存儲節點的數據存儲復雜度HTCDCS為:
選用文中提出的基于循環神經網絡的多核處理器層次化存儲技術與傳統的基于FPGA 和FLASH 的多核處理器層次化存儲技術及基于Hadoop 云存儲架構的多核處理器層次化存儲技術進行實驗對比。
參考多核處理器的相關配置需求,設置的實驗參數如表1 所示。

表1 實驗參數
根據上述實驗參數,選用文中提出的存儲技術和傳統存儲技術進行數據存儲,為保證實驗結果的權威性和可靠性,以數據存儲的同步性和抗冗余度為三種存儲技術的評價指標,對三種存儲技術進行綜合評價。其中數據存儲抗冗余度是指存儲技術抗數據重復的抗重復度,數據存儲抗冗余度T的計算公式如下:
式中,w為相鄰數據屬性值的累計變化次數;x為數據的存儲行數;y為數據的存儲列數。
數據存儲同步性的實驗結果如圖4 所示。
從圖4 可以看出,基于FPGA 和FLASH 技術的最高同步誤差為0.18,平均同步誤差為0.13,數據存儲同步性較為不理想。基于Hadoop 云存儲架構的最高同步誤差為0.23,平均同步誤差為0.17,數據存儲同步性差,不適用于多核處理器的設計中。相較于之下,本文提出的基于循環神經網絡的存儲技術,同步誤差普遍低于0.1,平均同步誤差為0.04。
對三種存儲技術的存儲同步性進行驗證后,針對三種存儲技術的數據存儲抗冗余度進行實驗對比,實驗結果如圖5 所示。

圖5 數據存儲抗冗余度對比結果
從圖5 可以看出,隨著重復數據數量的不斷增加,三種存儲技術的抗冗余度不斷下降,但下降程度各不相同。基于FPGA 和FLASH 的平均抗冗余度為76%,基于Hadoop 云存儲架構的平均抗冗余度為84%,而文中提出的基于循環神經網絡的存儲技術,最低抗冗余效果為89%,平均抗冗余度為96%,整體抗冗余度高。原因在于,文中提出的存儲算法以循環神經網絡為基礎進行并行多核處理器快速卷積運算,通過數據布局、轉換以及矩陣乘,能夠過濾大部分冗余數據,避免絕大部分的數據重復存儲。
隨著處理器數據存儲數量的不斷增加以及應用環境的逐漸復雜,處理器的存儲需求逐漸升高,傳統的多核處理器層次化存儲技術雖然搭載便捷、存儲量大,但處理同步性差、抗冗余度低,為此,為滿足多核處理器的存儲需求,并解決傳統存儲技術出現的問題,文中提出了基于循環神經網絡的多核處理器層次化存儲技術,實現對數據的多層次穩定存儲。實驗結果表明,文中提出的存儲技術同步性好、抗冗余度高,能夠對數據進行穩定且安全的存儲,使處理器的數據處理更加高效、可靠。