国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于高速安全存儲(chǔ)SoC芯片的PCIe與SATA通路驗(yàn)證

2024-06-01 07:11:11于哲周舜民陳方

于哲 周舜民 陳方

摘 要:針對(duì)傳統(tǒng)SATA控制器存儲(chǔ)系統(tǒng)性能受限、安全性不足問(wèn)題,提出并設(shè)計(jì)了一款可實(shí)現(xiàn)PCIe(peripheral component interconnect express)與SATA(serial advanced technology attachment)協(xié)議傳輸數(shù)據(jù)互轉(zhuǎn),基于SM4算法實(shí)現(xiàn)本地?cái)?shù)據(jù)安全存儲(chǔ)的高速安全存儲(chǔ)SoC(system of chip)芯片。通過(guò)構(gòu)建合理的片內(nèi)PCIe與SATA互轉(zhuǎn)數(shù)據(jù)傳輸通路,利用PCIe VIP(verification intellectual property)及UVM(universal verification methodology)技術(shù)搭建系統(tǒng)應(yīng)用級(jí)仿真驗(yàn)證平臺(tái),設(shè)計(jì)基于SystemVerilog語(yǔ)言的源激勵(lì)用例和C固件,利用腳本自動(dòng)化控制實(shí)現(xiàn)仿真驗(yàn)證。仿真結(jié)果表明,該SoC芯片通路上各設(shè)備鏈路建立正確,實(shí)現(xiàn)PCIe與SATA互轉(zhuǎn)通路數(shù)據(jù)正確傳輸,測(cè)試帶寬472 MBps,基于SM4算法的本地安全存儲(chǔ)加解密無(wú)誤,SM4算法加解密帶寬1.33 Gbps。根據(jù)仿真實(shí)驗(yàn)結(jié)果可知,該P(yáng)CIe與SATA橋接轉(zhuǎn)換SoC芯片架構(gòu)設(shè)計(jì)是可行的,實(shí)現(xiàn)了本地?cái)?shù)據(jù)的安全存儲(chǔ),為進(jìn)一步進(jìn)行數(shù)據(jù)高速轉(zhuǎn)換訪(fǎng)問(wèn)、安全傳輸存儲(chǔ)研究奠定了重要基礎(chǔ)。

關(guān)鍵詞:PCIe與SATA互轉(zhuǎn);PCIe VIP ;UVM;C固件

中圖分類(lèi)號(hào):TP336?? 文獻(xiàn)標(biāo)志碼:A??? 文章編號(hào):1001-3695(2024)05-030-1496-06

doi: 10.19734/j.issn.1001-3695.2023.09.0445

Research on PCIe and SATA path verification based on high speed secure storage SoC

Abstract:This paper proposed a high-speed secure storage SoC (system of chip) chip to address the issues of limited performance and insufficient security in traditional SATA controller storage systems, which could achieve the protocol data exchange between PCIe and SATA, implement local data secure storage based on the SM4 algorithm. By constructing a reasonable data transmission path between on-chip PCIe and SATA, utilizing PCIe VIP and UVM to build a system application-level simulation verification platform, it designed SystemVerilog language testcases and C code firmware, and controlled verification automation ran with scripts. The results show that on-chip devices IP establish links and channel data transmission correctly with bandwidth of 472 MBps between PCIe and SATA, SM4 algorithm implement local storage data encryption and decryption correctly, bandwidth up to 1.33 Gbps. According to the experimental results, it can be concluded that the SoC chip architecture design for PCIe and SATA bridging conversion is feasible, achieving secure storage of local data, and laying an important foundation for further research on high-speed data conversion access and secure transmission storage.

Key words:PCIe and SATA mutual conversion; PCIe VIP; UVM; C firmware

0 引言

傳統(tǒng)SATA(serial advanced technology attachment)[1]接口協(xié)議技術(shù)曾廣泛應(yīng)用于各種高速存儲(chǔ)傳輸設(shè)備,在當(dāng)今數(shù)據(jù)呈幾何式爆發(fā)增長(zhǎng)的時(shí)代,SATA接口因其最高只能達(dá)到6 Gbps[1]的速率限制,已難以滿(mǎn)足當(dāng)前高速數(shù)據(jù)存儲(chǔ)傳輸需求。采用高速串行全雙工點(diǎn)對(duì)點(diǎn)通信架構(gòu)模式的PCIe接口協(xié)議技術(shù),憑借其出色的傳輸速率、強(qiáng)大的兼容擴(kuò)展能力[2~5],在計(jì)算通信、服務(wù)器、存儲(chǔ)設(shè)備等眾多應(yīng)用領(lǐng)域逐漸成為主流,成為新一代高速設(shè)備必備功能接口[4~6]。SATA因其開(kāi)發(fā)相對(duì)簡(jiǎn)單、成本低,在低端單一盤(pán)數(shù)據(jù)傳輸存儲(chǔ)領(lǐng)域仍占據(jù)較大份額,具有較大的應(yīng)用價(jià)值。在大容量服務(wù)器存儲(chǔ)領(lǐng)域,連接服務(wù)器主機(jī)實(shí)現(xiàn)RAID(redundant array of independent disks)磁盤(pán)存儲(chǔ)陣列擴(kuò)展連接的接口主要還是SATA接口。同時(shí),在航天航空、通信系統(tǒng)、大數(shù)據(jù)服務(wù)器集群等對(duì)芯片穩(wěn)定性和安全性要求高的應(yīng)用場(chǎng)景[5],都部署有成熟的SATA應(yīng)用,難以在短期內(nèi)實(shí)現(xiàn)PCIe的全面替換,SATA與PCIe將在較長(zhǎng)一段時(shí)間內(nèi)共存。當(dāng)前市場(chǎng)上常見(jiàn)的PCIe與SATA互轉(zhuǎn)存儲(chǔ)芯片主要為國(guó)外芯片,價(jià)格較高,安全性難以保證[5,8]。因此,研究實(shí)現(xiàn)兩種不同接口協(xié)議設(shè)備間數(shù)據(jù)高速交互傳輸具有重要意義。

當(dāng)前,有關(guān)PCIe與SATA協(xié)議數(shù)據(jù)傳輸高速互轉(zhuǎn)研究主要集中于存儲(chǔ)領(lǐng)域主機(jī)與存儲(chǔ)系統(tǒng)接口互轉(zhuǎn)功能實(shí)現(xiàn)、大型RAID磁盤(pán)陣列或多通道存儲(chǔ)陣列系統(tǒng)構(gòu)建以及相關(guān)的帶寬、性能優(yōu)化研究。有關(guān)PCIe與SATA協(xié)議數(shù)據(jù)互轉(zhuǎn)典型研究有:文獻(xiàn)[5]研究設(shè)計(jì)了一種基于片內(nèi)總線(xiàn)控制交互的4路PCIe控制器轉(zhuǎn)4路SATA AHCI控制實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換傳輸電路,并在FPGA上進(jìn)行測(cè)實(shí)驗(yàn)證;文獻(xiàn)[6]指出傳統(tǒng)CPU處理SATA固態(tài)硬盤(pán)讀寫(xiě)存在內(nèi)存帶寬、實(shí)時(shí)數(shù)據(jù)等性能限制,提出并設(shè)計(jì)采用FPGA作為邏輯控制中心進(jìn)行SATA固態(tài)盤(pán)的RAID0存儲(chǔ)陣列系統(tǒng)設(shè)計(jì),F(xiàn)PGA邏輯系統(tǒng)中優(yōu)化設(shè)計(jì)的內(nèi)存管理模塊及RAID0陣列模塊是實(shí)現(xiàn)高速PCIe到SATA轉(zhuǎn)換的關(guān)鍵,系統(tǒng)實(shí)現(xiàn)了穩(wěn)定的高帶寬數(shù)據(jù)存儲(chǔ);文獻(xiàn)[7]研究了一套基于VPX總線(xiàn)架構(gòu)為底板的數(shù)據(jù)交互存儲(chǔ)系統(tǒng),存儲(chǔ)子板與主機(jī)數(shù)據(jù)交換以VPX總線(xiàn)架構(gòu)底板上的SRIO總線(xiàn)作為通信總線(xiàn)媒介,實(shí)現(xiàn)了一種存儲(chǔ)陣列獨(dú)立可控的數(shù)據(jù)交互存儲(chǔ)系統(tǒng);文獻(xiàn)[8]研究設(shè)計(jì)了一款基于RISC_V處理器的HBA橋轉(zhuǎn)接控制器芯片,旨在填補(bǔ)HBA橋接芯片國(guó)產(chǎn)化空白,支持8路PCIe 3.0和8路SATA傳輸接口,可實(shí)現(xiàn)兩者獨(dú)立或構(gòu)建通道進(jìn)行數(shù)據(jù)存儲(chǔ)交互。上述研究雖然以單板、單芯片方式直接或多板卡間接通信實(shí)現(xiàn)了PCIe與SATA協(xié)議數(shù)據(jù)轉(zhuǎn)換功能,但并未關(guān)注數(shù)據(jù)本地存儲(chǔ)安全方面內(nèi)容。本文提出的高速安全存儲(chǔ)SoC芯片可實(shí)現(xiàn)類(lèi)似HBA橋控芯片的主機(jī)內(nèi)存與存儲(chǔ)系統(tǒng)數(shù)據(jù)交互,也可用作SATA固態(tài)盤(pán)的主控,同時(shí)通過(guò)硬件實(shí)現(xiàn)本地?cái)?shù)據(jù)安全存儲(chǔ)。

本文自研的高速安全存儲(chǔ)SoC芯片是一款可以滿(mǎn)足多種存儲(chǔ)介質(zhì)數(shù)據(jù)安全傳輸和訪(fǎng)問(wèn)控制需求的自主可控存儲(chǔ)安全加固SoC芯片,集成了PCIe 2.0和SATA 3.0版本等高速傳輸接口模塊,在設(shè)計(jì)的C固件驅(qū)動(dòng)下,可實(shí)現(xiàn)PCIe和SATA協(xié)議接口互轉(zhuǎn)訪(fǎng)問(wèn)功能,文中基于PCIe VIP和UVM技術(shù)對(duì)此進(jìn)行系統(tǒng)層面的仿真驗(yàn)證[9~14]。

1 芯片及驗(yàn)證數(shù)據(jù)通路設(shè)計(jì)

1.1 芯片架構(gòu)

圖1為設(shè)計(jì)集成有PCIe、SATA等高速外設(shè)接口的高速安全存儲(chǔ)SoC芯片主要模塊體系架構(gòu)示意圖。芯片以ASIC(application specific integrated circuit)設(shè)計(jì)為思想核心,以32位多層AMBA(advanced microcontroller bus architecture)總線(xiàn)矩陣作為系統(tǒng)架構(gòu)總樞紐,采用具有國(guó)產(chǎn)自主知識(shí)產(chǎn)權(quán)的32位龍芯LS232嵌入式CPU,支持硬件實(shí)現(xiàn)商密SM4存儲(chǔ)數(shù)據(jù)流加解密算法,算法可編程配置密鑰,集成硬件實(shí)現(xiàn)網(wǎng)絡(luò)MAC、網(wǎng)絡(luò)協(xié)議棧解析等功能單元,外部安全檢測(cè)部件包括電壓、溫度和光檢測(cè)等常規(guī)通用傳感器功能支持,具備豐富的(如UART、SPI、IIC等)低速接口,并包含DMA控制、中斷、時(shí)鐘、復(fù)位等系統(tǒng)控制必備模塊。

1.2 驗(yàn)證數(shù)據(jù)通路設(shè)計(jì)

PCIe功能復(fù)雜,可應(yīng)用于多種不同場(chǎng)景,每種應(yīng)用場(chǎng)景下需要進(jìn)行特定的需求配置,在高速存儲(chǔ)SoC芯片中主要配置實(shí)現(xiàn)應(yīng)用PCIe最核心的高速數(shù)據(jù)傳輸功能。設(shè)計(jì)高速存儲(chǔ)SoC芯片PCIe EP(end point)、SATA host及SATA device三者構(gòu)成片內(nèi)高速數(shù)據(jù)傳輸通路。

1.2.1 數(shù)據(jù)通路傳輸理論基礎(chǔ)

PCIe與SATA協(xié)議實(shí)現(xiàn)采用類(lèi)似TCP/IP的分層結(jié)構(gòu)設(shè)計(jì),且兩者核心都包含傳輸層、數(shù)據(jù)鏈路層及物理層,兩者物理層都使用差分對(duì)信號(hào)進(jìn)行物理電氣層數(shù)據(jù)傳輸[1~5,11~14]。在設(shè)備進(jìn)行穩(wěn)定的數(shù)據(jù)傳輸之前,PCIe和SATA都必須確保鏈路已建立且運(yùn)行穩(wěn)定,SATA設(shè)備間通過(guò)OOB(out of band)序列交互方式進(jìn)行穩(wěn)定鏈路建立,PCIe由物理層基于LTSSM(link training and status state machine)狀態(tài)機(jī)自動(dòng)完成鏈路初始化與訓(xùn)練實(shí)現(xiàn)穩(wěn)定鏈路建立。對(duì)于協(xié)議數(shù)據(jù)信息、控制交互信息的邏輯傳輸,兩者都采用定義封裝成幀的方式進(jìn)行傳輸,圖2和3分別為PCIe和SATA的幀格式。對(duì)于PCIe協(xié)議,信息由傳輸層形成TLP(transaction layer packet)包傳輸?shù)轿锢韺咏?jīng)過(guò)的每一層。都會(huì)對(duì)幀添加相應(yīng)的頭或尾標(biāo)識(shí)符,其中framing指在物理層添加的對(duì)應(yīng)數(shù)據(jù)幀格式start和end標(biāo)識(shí)符;在接收端則每層依次進(jìn)行相應(yīng)層的頭尾封裝剝離。對(duì)于SATA而言,傳輸層形成FIS(frame information structure)幀,經(jīng)由數(shù)據(jù)鏈路層添加幀頭和幀尾標(biāo)識(shí)符生成在物理層傳輸?shù)姆庋b幀,物理層不再封裝成幀。由于SATA的內(nèi)部buffer空間只有7個(gè)雙字大小,在數(shù)據(jù)傳輸過(guò)程中會(huì)引入HOLDp和HOLDAp源語(yǔ)實(shí)現(xiàn)數(shù)據(jù)流控機(jī)制,在大數(shù)據(jù)量傳輸過(guò)程中頻繁的流控操作將消耗大量時(shí)間,這也限制了SATA速率進(jìn)一步大幅提高的可能性,PCIe則不存在該問(wèn)題。

1.2.2 待驗(yàn)數(shù)據(jù)通路設(shè)計(jì)

高速存儲(chǔ)SoC中可通過(guò)PCIe EP與SATA host/device兩者或三者之間組合構(gòu)成多種片內(nèi)高速數(shù)據(jù)傳輸通路。為了最大限度地測(cè)試SoC對(duì)片內(nèi)各高速接口數(shù)據(jù)傳輸控制是否正確實(shí)現(xiàn)合理調(diào)度及各模塊通路功能,本文將片上SATA host和SATA device模塊進(jìn)行PHY引腳互連,構(gòu)成片上SATA loop回路,PCIe EP通過(guò)PHY與PCIe VIP互連,片內(nèi)兩個(gè)DPRAM模塊作為數(shù)據(jù)緩存橋梁,整體上構(gòu)成一個(gè)主要由PCIe與SATA host及SATA device共同作用的數(shù)據(jù)通路。

預(yù)期設(shè)計(jì)中,假定正向數(shù)據(jù)傳輸由PCIe RC(root complex)端發(fā)起,通過(guò)PCIe鏈路將數(shù)據(jù)發(fā)送到片上PCIe端,片上PCIe通過(guò)內(nèi)置DMA將接收到的數(shù)據(jù)發(fā)送到DPRAM0,SATA host從DPRAM0讀取數(shù)據(jù),通過(guò)SATA loop回路發(fā)送到片上SATA device端,SATA device將接收到的數(shù)據(jù)寫(xiě)入DPRAM1進(jìn)行存儲(chǔ);反向數(shù)據(jù)傳輸通路則由SATA device從DPRAM1讀出數(shù)據(jù)發(fā)起,數(shù)據(jù)依次經(jīng)由SATA host到DPRAM0到PCIe EP再到PCIe RC端。通路中PCIe RC功能由PCIe VIP替代實(shí)現(xiàn),整個(gè)數(shù)據(jù)通路的功能由燒錄到SoC芯片中相關(guān)C固件驅(qū)動(dòng)代碼調(diào)度控制實(shí)現(xiàn)。待驗(yàn)通路結(jié)構(gòu)如圖4所示。

2 驗(yàn)證平臺(tái)

2.1 驗(yàn)證平臺(tái)設(shè)計(jì)及運(yùn)行

驗(yàn)證平臺(tái)設(shè)計(jì)分為兩部分,包含構(gòu)建驗(yàn)證DUT(design under test)數(shù)據(jù)通路的SoC芯片和基于UVM的ENV驗(yàn)證環(huán)境。SoC芯片部分由待驗(yàn)DUT通路和C代碼組成,C代碼實(shí)現(xiàn)芯片的固

件驅(qū)動(dòng),控制芯片相關(guān)設(shè)計(jì)功能實(shí)現(xiàn)。C代碼固件設(shè)計(jì)是整個(gè)平臺(tái)通路運(yùn)行測(cè)試設(shè)計(jì)關(guān)鍵之一,將在3.3節(jié)進(jìn)行詳細(xì)設(shè)計(jì)說(shuō)明。驗(yàn)證平臺(tái)部分,interface定義了ENV所需的PCIe接口相關(guān)信號(hào),ENV例化整個(gè)仿真環(huán)境所需的組件,包括PCIe VIP、LTSSM monitor、scoreboard及agent等組件[9~14]。PCIe VIP用作仿真的RC端BFM(bus functional model)模型,其中testcase作用于VIP的API以控制平臺(tái)的激勵(lì)源產(chǎn)生,LTSSM monitor組件用于對(duì)PCIe鏈接建立過(guò)程LTSSM狀態(tài)跳變的監(jiān)測(cè),scoreboard用作結(jié)果比較,agent組件中例化兩個(gè)monitor分別用作PCIe EP端RX和TX方向的接口信息監(jiān)測(cè)收集,并送入scoreboard進(jìn)行對(duì)比。monitor組件實(shí)現(xiàn)PCIe接口TLP傳輸協(xié)議時(shí)序邏輯功能。圖5為驗(yàn)證平臺(tái)架構(gòu)示意圖。

驗(yàn)證平臺(tái)運(yùn)行分為基于SoC的C固件運(yùn)行和UVM機(jī)制控制的仿真環(huán)境運(yùn)行兩部分,makefile腳本組織實(shí)現(xiàn)平臺(tái)運(yùn)行管理。平臺(tái)運(yùn)行中,C固件代碼源文件與定義的頭文件、啟動(dòng)文件及編譯鏈接腳本文件等文件一起進(jìn)行編譯鏈接生成hex文件,hex文件加載到flash暫存,待加載到內(nèi)存后,CPU從內(nèi)存中讀取操作指令運(yùn)行。ENV環(huán)境按照UVM的執(zhí)行流程運(yùn)行,依次執(zhí)行build、connect、configure、main、shutdown及report等階段phase,進(jìn)行UVM平臺(tái)組件的創(chuàng)建、連接、參數(shù)配置、主體運(yùn)行及結(jié)果報(bào)告等UVM樹(shù)結(jié)構(gòu)創(chuàng)建及平臺(tái)運(yùn)行流程管理[9~14]。在build_phase階段將同時(shí)完成PCIe VIP的實(shí)例化及相關(guān)全局變量和隨機(jī)值的初始化設(shè)置。

2.2 PCIe VIP應(yīng)用架構(gòu)分析

圖6為驗(yàn)證平臺(tái)中PCIe VIP的架構(gòu)示意圖,其主體包括API應(yīng)用模塊和PCIe SVC VIP兩部分,其中PCIe SVC VIP為synopsys提供一個(gè)加密PCIe BFM總線(xiàn)功能模型實(shí)例,可配置實(shí)現(xiàn)PCIe RC端功能。API應(yīng)用模塊作為實(shí)現(xiàn)VIP功能的主機(jī)端應(yīng)用模塊,主要由link_ctrl類(lèi)、pcie_cdm類(lèi)、pcie_tlp_xactn類(lèi)、pcie_device_rules類(lèi)及pcie_device_cb類(lèi)五大應(yīng)用實(shí)現(xiàn)類(lèi)組成,實(shí)現(xiàn)鏈路建立控制、接收測(cè)試用例配置和激勵(lì)源控制生成等功能。

在仿真初始化鏈路訓(xùn)練階段,VIP通過(guò)link_ctrl類(lèi)的應(yīng)用與DUT中的PCIe EP建立穩(wěn)定鏈路;當(dāng)需要通過(guò)VIP對(duì)DUT中相關(guān)配置空間寄存器和內(nèi)存進(jìn)行訪(fǎng)問(wèn)操作時(shí),VIP實(shí)例化調(diào)用實(shí)現(xiàn)pcie_cdm類(lèi)功能,通過(guò)類(lèi)中定義的相關(guān)功能函數(shù)構(gòu)建配置和內(nèi)存訪(fǎng)問(wèn)激勵(lì);API中pcie_tlp_xactn類(lèi)主要用于VIP與DUT中PCIe EP交互的TLP包發(fā)送或接收的交互,以及對(duì)DUT訪(fǎng)問(wèn)請(qǐng)求作出相應(yīng)的響應(yīng);VIP根據(jù)pcie_device_rules類(lèi)中定義實(shí)現(xiàn)的過(guò)濾規(guī)則對(duì)接收和發(fā)送的包進(jìn)行仲裁判斷;通過(guò)創(chuàng)建例化pcie_device_cb類(lèi)定義的各種API虛擬回調(diào)函數(shù),VIP可實(shí)現(xiàn)對(duì)應(yīng)函數(shù)功能的訪(fǎng)問(wèn)或測(cè)試。

3 驗(yàn)證實(shí)現(xiàn)

3.1 測(cè)試點(diǎn)說(shuō)明

本文以滿(mǎn)足系統(tǒng)應(yīng)用需求為核心出發(fā)點(diǎn),重點(diǎn)關(guān)注片上系統(tǒng)高速傳輸模塊不同應(yīng)用組合方式的通路數(shù)據(jù)傳輸,以及SoC芯片中數(shù)據(jù)流安全存儲(chǔ)加解密功能正確實(shí)現(xiàn)與否。用例處理根據(jù)PCIe VIP發(fā)送數(shù)據(jù)的方式分為非鏈?zhǔn)胶玩準(zhǔn)紻MA傳輸兩種,同時(shí)考慮與SATA的DMA、PIO、NCQ的不同數(shù)據(jù)傳輸方式組合及SM1、SM4加解密功能實(shí)現(xiàn)。表1列出SoC系統(tǒng)軟件層面C固件測(cè)試用例,exp和act分別為預(yù)期和實(shí)際運(yùn)行的測(cè)試結(jié)果。

3.2 激勵(lì)用例實(shí)現(xiàn)

驗(yàn)證平臺(tái)中RC模式的PCIe VIP激勵(lì)源由testcase控制生成,激勵(lì)用例擴(kuò)展于BaseTest,BaseTest擴(kuò)展自u(píng)vm_test,在build_phase和configure_phase階段完成相關(guān)用例名的注冊(cè)、組件連接和控制變量配置,在用例的main_phase主體中完成用例的功能實(shí)現(xiàn)[9~14],主體功能實(shí)現(xiàn)中調(diào)用的函數(shù)在VIP應(yīng)用中以帶參形式提供,產(chǎn)生輸出的激勵(lì)序列通過(guò)PCIe PHY鏈路注入SoC芯片進(jìn)行流通傳輸。

在激勵(lì)源用例中,main_phase是控制激勵(lì)產(chǎn)生的核心,設(shè)計(jì)功能控制流程類(lèi)似,對(duì)于PCIe VIP而言,仿真中修改配置相應(yīng)應(yīng)用模式和參數(shù)即可。其功能實(shí)現(xiàn)主要包括:a)調(diào)用find_trgt1_address函數(shù)分別配置PCIe VIP發(fā)送端的DMA內(nèi)存起止地址和DUT中接收數(shù)據(jù)存放的起始地址;b)調(diào)用creat_context函數(shù)進(jìn)行DMA操作必需的讀寫(xiě)類(lèi)型、傳輸字節(jié)大小、起始及結(jié)束地址等參數(shù)配置;c)完成DMA傳輸配置后,調(diào)用set_rie_done_addr和set_rie_data函數(shù)設(shè)置RC端DMA操作傳輸完成處的中斷標(biāo)志;d)在完成DMA傳輸相關(guān)控制參數(shù)和中斷配置后,調(diào)用hit_doorbell函數(shù)配置選擇DMA數(shù)據(jù)傳輸?shù)耐ǖ啦?dòng)數(shù)據(jù)傳輸;e)通過(guò)wait_all_xactions_done函數(shù)檢測(cè)判斷本次DMA數(shù)據(jù)傳輸?shù)慕Y(jié)束或等待超時(shí)。圖7為激勵(lì)源main_phase數(shù)據(jù)傳輸處理控制流程。

3.3 通路C固件實(shí)現(xiàn)

通路C固件主要對(duì)PCIe EP、SATA host及SATA device三種設(shè)備初始化、功能實(shí)現(xiàn)及系統(tǒng)調(diào)度流程控制等功能進(jìn)行驅(qū)動(dòng)實(shí)現(xiàn),其實(shí)現(xiàn)流程主體架構(gòu)可分為設(shè)備初始化、PCIe EP功能實(shí)現(xiàn)、SATA host功能實(shí)現(xiàn)、SATA device功能實(shí)現(xiàn)四部分。

平臺(tái)中通路C固件代碼主體可分成設(shè)備初始化和設(shè)備功能控制實(shí)現(xiàn)兩部分。在設(shè)備初始化階段,PCIe初始化主要完成設(shè)備capbility遍歷確定,設(shè)備工作模式、內(nèi)存地址分配及DMA初始化配置等工作;SATA初始化主要完成PRD、PRD命令list、各種命令FIS等結(jié)構(gòu)體內(nèi)存地址分配,進(jìn)行全局復(fù)位控制,配置SATA host和device進(jìn)入鏈路建立交互階段等。PCIe功能主要通過(guò)nonll_dma_config、dma_doorbell、dma_com等函數(shù)實(shí)現(xiàn),其中nonll_dma_config函數(shù)對(duì)PCIe內(nèi)部DMA的操作類(lèi)型、傳輸字節(jié)大小、起止地址等相關(guān)寄存器進(jìn)行配置,dma_doorbell和dma_com則實(shí)現(xiàn)DMA的使能、通道控制及觸發(fā)控制功能。SATA host在完成鏈路建立后首先執(zhí)行中斷和錯(cuò)誤寄存器復(fù)位操作,SATA device在鏈路建立完成后,將發(fā)送signature FIS幀告知host已準(zhǔn)備好并復(fù)位端口中斷和錯(cuò)誤寄存器,host在檢測(cè)到device已準(zhǔn)備好后,復(fù)位對(duì)應(yīng)port的中斷和錯(cuò)誤寄存器;其后device進(jìn)入檢測(cè)觸發(fā)狀態(tài),等待接收host端發(fā)送的命令幀,host端執(zhí)行命令FIS結(jié)構(gòu)體,包括PRD list長(zhǎng)度、讀取數(shù)據(jù)的起始地址、數(shù)據(jù)長(zhǎng)度、配置命令的類(lèi)型等各個(gè)字段域值的配置,并獲取數(shù)據(jù)組織命令幀發(fā)送給device。device收到host發(fā)送的命令幀后,首先解析幀中命令域的值,根據(jù)命令類(lèi)型進(jìn)行相應(yīng)的讀或?qū)懖僮?,device根據(jù)解析出的命令類(lèi)型組織構(gòu)建PRD結(jié)構(gòu)體的數(shù)據(jù)存放或讀取地址、實(shí)體長(zhǎng)度、數(shù)據(jù)長(zhǎng)度等字段域值,通過(guò)FPDMA發(fā)送或接收DATA FIS,完成所有DATA FIS數(shù)據(jù)接收后,device發(fā)送D2H(device to host)FIS告知host此次傳輸操作結(jié)果,host獲取D2H中的狀態(tài)信息,清除端口的命令事件、命令及中斷等寄存器值,固件主體功能至此結(jié)束。圖8為C固件主體設(shè)計(jì)流程。對(duì)于安全存儲(chǔ)SoC芯片內(nèi)嵌SM4商密存儲(chǔ)數(shù)據(jù)流加解密安全算法的實(shí)現(xiàn),通過(guò)配置寄存器選擇加解密模式、當(dāng)前模式下的密鑰值、使能加解密功能即可。

4 仿真結(jié)果分析

平臺(tái)由makefile腳本管理運(yùn)行并生成各log信息、波形等結(jié)果文件。仿真過(guò)程中VIP生成pcie_bfm_symbol.log、vtb_vip_trans.log等log文件,pcie_bfm_symbol.log主要記錄鏈路建立過(guò)程中LSSTM的跳變過(guò)程,vtb_vip_trans.log記錄仿真過(guò)程中VIP發(fā)送的相關(guān)配置或數(shù)據(jù)TLP包信息,這些log文件信息與波形結(jié)果形成印證。

4.1 高速接口鏈路建立分析

對(duì)于具有高速接口的復(fù)雜SoC芯片,實(shí)現(xiàn)boot啟動(dòng)加載正確的驅(qū)動(dòng)代碼讓CPU能夠正常工作是系統(tǒng)的基礎(chǔ),各種高速接口鏈路上電是否建立正確鏈接,是其應(yīng)用價(jià)值實(shí)現(xiàn)的重要基礎(chǔ)。圖9中數(shù)字1~6標(biāo)識(shí)了PCIe鏈路建立重要節(jié)點(diǎn)的變化。標(biāo)識(shí)1信號(hào)由低拉高表示PCIe PHY link up;標(biāo)識(shí)2處為L(zhǎng)TSSM鏈路訓(xùn)練狀態(tài)值,左側(cè)信號(hào)值跳變顯示c→11,說(shuō)明鏈路進(jìn)入L0狀態(tài)可以正常工作,但觀(guān)察mac_phy_pclk_rate為1,說(shuō)明此時(shí)是GEN1速率鏈路建立成功,LTSSM繼續(xù)進(jìn)入reco-very狀態(tài)進(jìn)行GEN2速率鏈路建立;標(biāo)識(shí)3處表明此刻鏈路速率進(jìn)行了GEN1到GEN2模式的切換,在圖10 pcie_bfm_symbol.log方框中的信息也得到印證;標(biāo)識(shí)4處對(duì)core_clk信號(hào)局部放大,可以看到頻率改變了,直到標(biāo)識(shí)5處LTSSM狀態(tài)再次跳變?yōu)?1,標(biāo)志GEN2速率鏈路建立進(jìn)路L0狀態(tài)可以正常工作;但直到標(biāo)識(shí)6處信號(hào)由低拉高才真正表示PCIe設(shè)備間鏈路建立完成,可以準(zhǔn)備信息傳輸。

圖11為SATA OOB鏈路建立結(jié)果,字符串為對(duì)應(yīng)時(shí)間段收發(fā)交互序列類(lèi)型。host端發(fā)送COMRESET序列,device接收到COMRESET序列后發(fā)送COMINIT序列信號(hào)響應(yīng),host收到device的響應(yīng)序列進(jìn)行calibrate并發(fā)送COMWAKE序列,device收到COMWAKE序列后進(jìn)入calibrate并響應(yīng)發(fā)送COMWAKE序列給host端,之后雙方通過(guò)收發(fā)相同速率的ALIGN對(duì)齊源語(yǔ)進(jìn)行速率協(xié)商,直到host收到對(duì)齊源語(yǔ)后為連續(xù)三個(gè)的非對(duì)齊ALIGN信號(hào),表示鏈路建立完成,可開(kāi)始正常數(shù)據(jù)傳輸。

4.2 通路數(shù)據(jù)傳輸分析

圖12中,數(shù)字1~12分別標(biāo)識(shí)了DMA方式VIP端發(fā)送的數(shù)據(jù)被PCIe EP接收后倒傳回VIP的一個(gè)完整通路數(shù)據(jù)傳輸過(guò)程,此處傳輸數(shù)據(jù)大小為512 Byte。PCIe EP端接收VIP發(fā)送的數(shù)據(jù)并寫(xiě)入DPRAM0中,SATA host從DPRAM0讀取數(shù)據(jù),以應(yīng)用命令的方式將數(shù)據(jù)發(fā)送給SATA device,SATA device將接收到的數(shù)據(jù)寫(xiě)入DPRAM1中,至此驗(yàn)證了PCIe EP接收數(shù)據(jù)PCIe EP(RX)→DPRAM0→SATA host→SATA device→DPRAM1部分通路傳輸?shù)恼_可行性;SATA device在接收到host端發(fā)送的讀命令幀后,將數(shù)據(jù)從DPRAM1讀出,依次經(jīng)由DPRAM1→SATA device→SATA host→DPRAM0→PCIe EP(TX)等模塊構(gòu)成的通路路徑傳輸,驗(yàn)證了PCIe EP獲取片內(nèi)組織數(shù)據(jù)發(fā)送的正確可行性。圖13中的數(shù)據(jù)為通路上數(shù)據(jù)局部放大展示。圖14 vtb_vip_trans.log中展示了VIP發(fā)送的局部源數(shù)據(jù)。

4.3 數(shù)據(jù)安全加解密分析

圖15為使能SM4進(jìn)行數(shù)據(jù)流加解密存儲(chǔ)仿真結(jié)果。其中keyen信號(hào)指示key值有效使能,sk信號(hào)為可編程修改的128位key值,mode為1/0,分別表示加密/解密,crypt_en信號(hào)為高有效期間實(shí)現(xiàn)數(shù)據(jù)的加解密處理,data_i和data_o分別為原文或加密后密文。圖16、17為對(duì)數(shù)據(jù)流加密、解密操作局部數(shù)據(jù)顯示。其中加密部分顯示的5組完整密文結(jié)果對(duì)應(yīng)原文數(shù)據(jù)為十六進(jìn)制數(shù)0x8~0xc,解密部分對(duì)應(yīng)的5組密文對(duì)應(yīng)解密后的結(jié)果為十六進(jìn)制數(shù)0xc~0x10。

4.4 性能分析

高性能安全存儲(chǔ)SoC芯片CPU工作主頻300 MHz,集成的PCIe 2.0理論帶寬可達(dá)500 MBps,SATA 3.0 理論帶寬可達(dá)750 MBps,理論上構(gòu)成的通路帶寬應(yīng)該幾近于500 MBps。在仿真測(cè)試中,系統(tǒng)主頻最高可達(dá)327 MHz,整個(gè)通路帶寬主要受PCIe端影響,最大帶寬為472 MBps,SM4加解密帶寬1.33 Gbps。通路帶寬與其理論值存在一定的差距,主要原因有兩個(gè):a)PCIe、SATA兩者編碼都存在一定帶寬開(kāi)銷(xiāo);b)PCIe發(fā)往片內(nèi)DPRAM時(shí),需要對(duì)DMA TLP包進(jìn)行片上總線(xiàn)格式包轉(zhuǎn)換,需要消耗一定時(shí)間。

5 結(jié)束語(yǔ)

以PCIe和SATA為高速接口的多種存儲(chǔ)介質(zhì)在一段時(shí)間內(nèi)呈共存狀態(tài),有必要解決主流PCIe技術(shù)與傳統(tǒng)SATA技術(shù)介質(zhì)訪(fǎng)問(wèn)的兼容和互補(bǔ)問(wèn)題。本文對(duì)設(shè)計(jì)可實(shí)現(xiàn)多種存儲(chǔ)介質(zhì)高速接口獨(dú)立或轉(zhuǎn)換兼容訪(fǎng)問(wèn)的高速存儲(chǔ)SoC芯片,通過(guò)構(gòu)建合理的數(shù)據(jù)傳輸通路,結(jié)合PCIe VIP及UVM技術(shù)搭建整體SoC系統(tǒng)層面應(yīng)用級(jí)的仿真驗(yàn)證平臺(tái),設(shè)計(jì)基于SystemVerilog語(yǔ)言作用于VIP的源激勵(lì)用例,通過(guò)對(duì)PCIe和SATA協(xié)議應(yīng)用的分析理解,設(shè)計(jì)編寫(xiě)作用于SoC芯片中數(shù)據(jù)通路傳輸控制實(shí)現(xiàn)的C固件代碼,在腳本的自動(dòng)化控制運(yùn)行下實(shí)現(xiàn)仿真驗(yàn)證,并生成log信息文件和波形文件。結(jié)合log文件和波形文件的分析,證明了該SoC系統(tǒng)芯片集成的各高速接口可以正確實(shí)現(xiàn)與對(duì)端設(shè)備的鏈路建立,并在CPU作用下根據(jù)設(shè)計(jì)的C固件代碼,使片上模塊間構(gòu)成的數(shù)據(jù)通路按預(yù)期進(jìn)行數(shù)據(jù)傳輸,驗(yàn)證了該SoC芯片設(shè)計(jì)在PCIe和SATA多種混合高速接口控制系統(tǒng)架構(gòu)中兼容轉(zhuǎn)換訪(fǎng)問(wèn)的可行性,通路仿真帶寬472 MBps優(yōu)于文獻(xiàn)[5,6]的單路帶寬,在最終的實(shí)際成品中會(huì)存在一定的損耗;SM4加解密帶寬1.33 Gbps略?xún)?yōu)于文獻(xiàn)[15]的1.27 Gbps。

本文研究為后期高版本協(xié)議PCIe快速集成應(yīng)用和通路數(shù)據(jù)加解密安全存儲(chǔ)研究奠定了重要基礎(chǔ),是后期調(diào)試優(yōu)化的重要參考,本文的設(shè)計(jì)驗(yàn)證研究對(duì)于實(shí)際應(yīng)用及數(shù)據(jù)認(rèn)證、安全傳輸存儲(chǔ)研究都具有重要意義。

參考文獻(xiàn):

[1]SATA-IO. Serial ATA revision 3.5a[S/OL].(2021)[2023-11-23]. https://sata-io.org/system/files/specifications/Serial%20ATA%20 Revision%203.5a.pdf.

[2]甄國(guó)涌,蘇慧思,陳建軍,等. 基于FPGA的PCIe接口的數(shù)據(jù)傳輸設(shè)計(jì)與實(shí)現(xiàn) [J]. 國(guó)外電子測(cè)量技術(shù),2021,40(12): 72-76. (Zhen Guoyong,Su Huisi,Chen Jianjun,et al. Design and implementation of data transmission based on FPGA PCIe interface [J]. Fo-reign Electronic Measurement Technology,2021,40(12): 72-76.)

[3]林楷智,宗艷艷,孫瓏玲. AI服務(wù)器PCIe拓?fù)鋺?yīng)用研究 [J]. 計(jì)算機(jī)工程與科學(xué),2023,44(3): 390-395. (Lin Kaizhi,Zong Yanyan,Sun Longling. Research on PCIe topology application of AI serves [J]. Computer Engineering & Science,2023,44(3): 390-395.)

[4]杜侃,夏川,侯彬. 基于覆蓋率的PCIe控制器的UVM驗(yàn)證 [J]. 中國(guó)集成電路,2022,31(9): 36-42. (Du Kan,Xia Chuan,Hou Bin. UVM verification of PCIe based on functional coverage [J]. China Integrated Circuit,2022,31(9): 36-42.)

[5]王琪,張梅娟,鄧佳偉,等. 基于PCIE轉(zhuǎn)SATA多通道高速存儲(chǔ)電路設(shè)計(jì)與原型驗(yàn)證 [J]. 電子技術(shù)應(yīng)用,2023,49(3): 72-76. (Wang Qi,Zhang Meijuan,Deng Jiawei,et al. Design and prototype verification of multi-channel high-speed storage circuit base on PCIE to SATA [J]. Application of Electronic Technique,2023,49(3): 72-76.)

[6]林建華,吳緒玲. 基于FPGA存儲(chǔ)陣列的優(yōu)化設(shè)計(jì)與實(shí)現(xiàn) [J]. 電子技術(shù)應(yīng)用,2023,49(4): 111-116. (Lin Jianhua,Wu Xuling. Optimized design and realization of storage array based on FPGA [J]. Application of Electronic Technique,2023,49(4): 111-116.)

[7]劉拓. 基于FPGA的高速存儲(chǔ)器數(shù)據(jù)傳輸接口設(shè)計(jì)與實(shí)現(xiàn) [D]. 西安: 西安電子科技大學(xué),2021. (Liu Tuo. Design and implementation of high-speed memory data transmission interface based on FPGA [D]. Xian: Xidian University,2021.)

[8]姚珅. 基于PCIE接口的HBA控制器實(shí)現(xiàn) [D]. 杭州: 杭州電子科技大學(xué),2021. (Yao Shen. Implementation of HBA controller based on PCIE interface [D]. Hangzhou: Hangzhou Dianzi University,2021.)

[9]趙賽,閆華,叢紅艷,等. 基于UVM的PCI Express 總線(xiàn)控制器驗(yàn)證平臺(tái) [J]. 電子與封裝,2022,22(2): 84-88. (Zhao Sai,Yan Hua,Cong Hongyan,et al. UVM-based verification platform for PCI Express bus controller [J]. Electronics & Packaging,2022,22(2): 84-88.)

[10]隋金雪,張霞,郁添林. 基于UVM的AXI4總線(xiàn)自驗(yàn)證平臺(tái)設(shè)計(jì) [J]. 計(jì)算機(jī)仿真,2023,40(1): 345-348,488. (Sui Jinxue,Zhang Xia,Yu Tianlin. Design of self-verification platform for AXI4 bus based on UVM [J]. Computer Simulation,2023,40(1): 345-348,488.)

[11]王清源,高振斌,楊曉龍. 基于UVM的PCIe橋接芯片驗(yàn)證平臺(tái)設(shè)計(jì) [J]. 微電子學(xué)與計(jì)算機(jī),2023,40(5): 104-111. (Wang Qingyuan,Gao Zhenbin,Yang Xiaolong. Verification design of PCIe bridge chip based on UVM [J]. Microelectronics & Computer,2023,40(5): 104-111.)

[12]Wang Dawei,Yan Jiang,Qiao Ying. Research on chip verification technology based on UVM [C]// Proc of the 6th International Symposium on Computer and Information Processing Technology.Piscata-way,NJ: IEEE Press,2021: 117-120.

[13]凌奇才. 基于UVM的PCIe交換芯片全局路由功能的驗(yàn)證 [D]. 長(zhǎng)沙: 湖南大學(xué),2022. (Ling Qicai. Verification of global routing function of PCIe switching chip based on UVM [D]. Changsha: Hunan University,2022.)

[14]毛楷仁. 基于UVM驗(yàn)證方法學(xué)的PCIe驗(yàn)證平臺(tái) [D]. 杭州: 杭州電子科技大學(xué),2021. (Mao Kairen. PCIe verification platform based on UVM verification methodology [D]. Hangzhou: Hangzhou Dianzi University,2021.)

[15]何詩(shī)洋,李暉,李鳳華. SM4算法的FPGA優(yōu)化實(shí)現(xiàn)方法 [J]. 西安電子科技大學(xué)學(xué)報(bào),2021,48(3): 155-162. (He Shiyang,Li Hui,Li Fenghua. Optimization and implementation of the SM4 on FPGA [J]. Journal of Xidian University,2021,48(3): 155-162.)

甘孜县| 栖霞市| 双峰县| 永定县| 平利县| 台州市| 宣化县| 彭山县| 岳普湖县| 宜章县| 教育| 张家口市| 姚安县| 顺平县| 晋中市| 宁海县| 靖宇县| 孝感市| 东兰县| 焦作市| 永新县| 乡宁县| 平利县| 三亚市| 磐石市| 恭城| 伊川县| 时尚| 洛扎县| 海丰县| 宁城县| 呈贡县| 贵溪市| 特克斯县| 隆回县| 昌江| 徐水县| 蛟河市| 石景山区| 鸡西市| 库伦旗|