鄧雄峰 劉震宇 鄭玉鱗 賀佳坤
摘? 要: 為滿足量子密鑰分發(fā)中對(duì)經(jīng)典信道的設(shè)計(jì)需求,設(shè)計(jì)了一種片上可編程系統(tǒng)+FPGA+PHY芯片的經(jīng)典信道解決方案。在FPGA內(nèi)部構(gòu)建片上可編程系統(tǒng),通過Nios Ⅱ運(yùn)行NicheStack TCP/IP實(shí)現(xiàn)TCP通信協(xié)議,并使用三速以太網(wǎng)IP和物理層芯片Marvel 88E1111實(shí)現(xiàn)以太網(wǎng)控制器。指令處理器軟件結(jié)構(gòu)易于將基于FPGA的經(jīng)典以太網(wǎng)信道與量子態(tài)信號(hào)處理算法相結(jié)合實(shí)現(xiàn),對(duì)量子通信系統(tǒng)小型化和集成化都具有重要意義。該方案在Stratix Ⅳ上進(jìn)行了實(shí)現(xiàn)。測試結(jié)果表明,系統(tǒng)端數(shù)據(jù)接口速度可達(dá)1 600 Mb/s,經(jīng)典信道上行數(shù)據(jù)傳輸速度最高可達(dá)61 Mb/s,相較已有同類型設(shè)計(jì)提高了約20%的性能。
關(guān)鍵詞: 經(jīng)典信道; 量子通信; 量子密鑰分發(fā); 編譯器優(yōu)化; 系統(tǒng)集成; 以太網(wǎng)控制器
中圖分類號(hào): TN911.22?34; TP393.1? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: A? ? ? ? ? ? ? ? ?文章編號(hào): 1004?373X(2020)09?0033?04
Design and implementation of FPGA?based classical channel for quantum communication
DENG Xiongfeng1, LIU Zhenyu1, ZHENG Yulin2, HE Jiakun2
(1. School of Information Engineering, Guangdong University of Technology, Guangzhou 510000, China;
2. Hisilicon Research Department, Huawei Technologies Co., Ltd., Shenzhen 518129, China)
Abstract: In order to satisfy the design requirements of the classical channel layer in a quantum key distribution system, a classical communication solution for the chip with system?on?programmable?chip +FPGA+PHY is designed. A system?on? programmable?chip is established inside the FPGA. The system runs the NicheStack TCP/IP by Nios II to realize TCP, and employs a three?speed Ethernet IP and a physical layer chip Marvel 88E1111 to implement the Ethernet controller. An instruction?processor software architecture is proposed, which is optimized to run both classical Ethernet communications and quantum state signal processing algorithms within the same FPGA. This feature is critical to the miniaturization and integration of quantum communication systems. This solution is implemented on Stratix IV. The test results show that the data interface speed of the system terminal can reach up to 1 600 Mb/s, and the classical channel′s uplink data speed can reach a data transmission rate of up to 61 Mb/s, which is increased by 20% of the performance in comparison with the existing design of the same type.
Keywords: classical channel; quantum communication; quantum key distribution; compiler optimization; system integration; Ethernet controller
0? 引? 言
量子通信已經(jīng)成為下一代通信技術(shù)中最重要的發(fā)展方向之一[1]。量子密鑰分發(fā)(Quantum Key Distribution,QKD)作為量子通信系統(tǒng)的重要組成部分,需要使用經(jīng)典信道對(duì)原始密鑰進(jìn)行基矢比對(duì)、數(shù)據(jù)比對(duì)、糾錯(cuò)和保密增強(qiáng)等[2]。然而,隨著量子通信系統(tǒng)朝著小型化和集成化方向發(fā)展,采用單獨(dú)芯片和器件搭建的QKD系統(tǒng)存在著各種缺陷[3]。使用FPGA實(shí)現(xiàn)經(jīng)典以太網(wǎng)信道,可將量子通信系統(tǒng)中其他基于FPGA的應(yīng)用集成,如基于FPGA的時(shí)間測量[4]、基于FPGA的偏振控制[5]和基于FPGA的QKD光源時(shí)序校準(zhǔn)[6]等,對(duì)提升量子密鑰成碼率和安全性,及量子通信系統(tǒng)實(shí)用化和商業(yè)化都具有重要意義?;谏鲜鲈?,本文設(shè)計(jì)、優(yōu)化和實(shí)現(xiàn)了基于片上可編程系統(tǒng)+FPGA+PHY芯片的經(jīng)典以太網(wǎng)信道解決方案。相較于其他方案[7?9],該方案具有實(shí)現(xiàn)難度小、移植性好和易于使用的優(yōu)點(diǎn)。
1? 系統(tǒng)設(shè)計(jì)
硬件上,原始數(shù)據(jù)通過數(shù)據(jù)接口接收,并被用于后續(xù)生成量子密鑰的數(shù)據(jù)處理算法中。數(shù)據(jù)接口的設(shè)計(jì)指標(biāo)為在至少640 Mb/s的數(shù)據(jù)傳輸速率下連續(xù)地接收100 MB原始數(shù)據(jù)。然而,通常基于FPGA片上可編程系統(tǒng)的以太網(wǎng)傳輸速率難以達(dá)到100 Mb/s。因此,本文的以太網(wǎng)傳輸設(shè)計(jì)方案采用存儲(chǔ)轉(zhuǎn)發(fā)機(jī)制,即先將原始數(shù)據(jù)存儲(chǔ)至主存儲(chǔ)器中,待主存儲(chǔ)器中存滿指定數(shù)據(jù)量的原始數(shù)據(jù)后,再將原始數(shù)據(jù)通過以太網(wǎng)接口發(fā)送出去。可保證該段原始數(shù)據(jù)是數(shù)據(jù)接口連續(xù)接收的。
軟件上,Nichestack TCP/IP是Intel公司針對(duì)Nios Ⅱ定制的嵌入式TCP/IP網(wǎng)絡(luò)協(xié)議棧。Nichestack TCP/IP、三速以太網(wǎng)IP(Triple speed ethernet,TSE)和物理層芯片Marvel 88E1111將實(shí)現(xiàn)完整的因特網(wǎng)鏈路協(xié)議。通過TCP協(xié)議使FPGA具有可靠遠(yuǎn)程信息傳輸能力。
2? 硬件設(shè)計(jì)
硬件系統(tǒng)依據(jù)功能劃分為5個(gè)子系統(tǒng)。如圖1所示,各個(gè)子系統(tǒng)通過Avalon總線進(jìn)行互聯(lián)通信。每個(gè)子系統(tǒng)的工作頻率可單獨(dú)調(diào)整,便于調(diào)節(jié)各個(gè)子系統(tǒng)的性能。由于各個(gè)子系統(tǒng)工作在不同的時(shí)鐘域,因此,在進(jìn)行Avalon總線互聯(lián)時(shí),系統(tǒng)內(nèi)部使用了多個(gè)時(shí)間交架橋。此外,硬件優(yōu)化可提升TCP的性能,其方法將在相關(guān)子系統(tǒng)中進(jìn)行說明。
2.1? 數(shù)據(jù)接口子系統(tǒng)
使用模塊化分散聚集直接內(nèi)存訪問器(Modular Scatter?Gather Direct Memory Access,MSGDMA)可實(shí)現(xiàn)數(shù)據(jù)的快速收發(fā),滿足數(shù)據(jù)接口的設(shè)計(jì)要求。在每次接收原始數(shù)據(jù)時(shí),首先,配置并異步啟動(dòng)接收MSGDMA;其次,向同步FIFO中寫入需要接收的數(shù)據(jù)長度;最后,同步接收模塊讀取同步FIFO中的數(shù)據(jù)長度,并連通數(shù)據(jù)格式轉(zhuǎn)換模塊和接收FIFO,進(jìn)行數(shù)據(jù)的接收。同時(shí),同步接收模塊對(duì)數(shù)據(jù)接收量進(jìn)行統(tǒng)計(jì),當(dāng)數(shù)據(jù)接收量達(dá)到指定的數(shù)據(jù)長度時(shí),立刻中斷數(shù)據(jù)格式轉(zhuǎn)換模塊與接收FIFO的連接,保證接收FIFO中無歷史數(shù)據(jù)。
2.2? 以太網(wǎng)子系統(tǒng)
收發(fā)分散聚集直接內(nèi)存訪問器(Scatter?Gather Direct Memory Access, SGDMA)負(fù)責(zé)完成Nichestack TCP/IP與TSE之間的數(shù)據(jù)傳輸,描述符存儲(chǔ)器負(fù)責(zé)存儲(chǔ)SGDMA進(jìn)行數(shù)據(jù)搬移時(shí)所需的數(shù)據(jù)信息,而TSE和芯片Marvel 88E1111之間的數(shù)據(jù)傳輸則通過GMII接口模塊完成。
使用片內(nèi)RAM實(shí)現(xiàn)包存儲(chǔ)器,可提升TCP的性能。以數(shù)據(jù)上行為例對(duì)片內(nèi)RAM包存儲(chǔ)器的工作原理進(jìn)行說明。當(dāng)Nichestack TCP/IP對(duì)主存儲(chǔ)器中的原始數(shù)據(jù)進(jìn)行處理時(shí),NicheStack TCP/IP將從包存儲(chǔ)器的空閑緩存隊(duì)列中刪除一個(gè)緩存,并將處理好的包放置到該緩存中,之后將這個(gè)緩存地址傳遞給以太網(wǎng)設(shè)備驅(qū)動(dòng)程序。通過修改ipport.h文件中表1所列出的宏定義,可將NicheStack TCP/IP包存儲(chǔ)器的緩存隊(duì)列映射到片內(nèi)RAM包存儲(chǔ)器,這樣當(dāng)以太網(wǎng)設(shè)備驅(qū)動(dòng)程序使能發(fā)送SGDMA進(jìn)行數(shù)據(jù)傳輸時(shí),數(shù)據(jù)源地址是片內(nèi)RAM包存儲(chǔ)器,數(shù)據(jù)目的地是TSE,由于發(fā)送SGDMA不占用主存儲(chǔ)器數(shù)據(jù)端口,Nichestack TCP/IP可繼續(xù)對(duì)主存儲(chǔ)器內(nèi)的原始數(shù)據(jù)進(jìn)行處理,提升TCP性能。
2.3? 處理器
在Nios Ⅱ配置上選擇高速型處理器,并將數(shù)據(jù)緩存和指令緩存提升至最大64 KB,以降低Nios Ⅱ處理器執(zhí)行操作的時(shí)間。雖然主存儲(chǔ)器DDR3 SDRAM擁有高帶寬和大容量,然而相對(duì)于片內(nèi)RAM,主存儲(chǔ)器的訪問延時(shí)相對(duì)較大。得益于硬件系統(tǒng)的子系統(tǒng)化,Nios Ⅱ的工作頻率可單獨(dú)設(shè)定為200 MHz,提升TCP的性能。
2.4? 外設(shè)子系統(tǒng)
外設(shè)子系統(tǒng)主要包含JTAG調(diào)試接口、嵌入式實(shí)時(shí)操作系統(tǒng)MicroC/OS?Ⅱ運(yùn)行所需的定時(shí)器、系統(tǒng)ID和用于指示系統(tǒng)是否正常工作的心跳燈。
3? 軟件設(shè)計(jì)
上位機(jī)通過以太網(wǎng)將指令發(fā)送至軟件,對(duì)FPGA進(jìn)行控制。如圖2所示,指令的最終執(zhí)行由指令處理器完成,一個(gè)指令處理器對(duì)應(yīng)一個(gè)獨(dú)立的代碼模塊,因此,軟件功能的增刪主要是指令處理器的增刪。在進(jìn)行移植和集成時(shí),依據(jù)量子系統(tǒng)中其他基于FPGA應(yīng)用的需求,通過擴(kuò)展指令和指令處理器的方式,實(shí)現(xiàn)所需的控制和功能。此外,編譯器的優(yōu)化等級(jí)越高,其最后生成的代碼將更快、更密集,從而提高了Nios Ⅱ的計(jì)算效率。本文將編譯器的優(yōu)化等級(jí)設(shè)置為最高等級(jí)LEVEL 3,提升TCP性能。
3.1? 指令格式
指令由指令頭部和指令參數(shù)兩部分組成??崭穹鳛橹噶钪懈鱾€(gè)元素的分隔符,回車符作為指令的結(jié)束符。本文主要指令如表2所示。
3.2? 指令處理
指令處理的流程圖如圖2所示。在軟件的初始化階段,創(chuàng)建初始化任務(wù),啟動(dòng)MicroC/OS?Ⅱ操作系統(tǒng),由初始化任務(wù)完成軟件的全部初始化工作。
連接處理器完成指令的接收。連接處理器將創(chuàng)建控制端口和數(shù)據(jù)端口監(jiān)聽套接字。通過控制連接和數(shù)據(jù)連接,可將控制信息和數(shù)據(jù)信息的傳輸分離??刂七B接和數(shù)據(jù)連接將依據(jù)IP地址進(jìn)行配對(duì),并以連接ID進(jìn)行標(biāo)識(shí)。連接ID將和指令一同傳遞給指令分發(fā)器,最終,指令處理器通過連接ID確定發(fā)送指令的連接并進(jìn)行通信。連接處理器還需要對(duì)控制連接中的指令進(jìn)行接收,并把接收到的完整指令發(fā)送給指令分發(fā)器。如果指令接收發(fā)生錯(cuò)誤,連接處理器將關(guān)閉錯(cuò)誤的控制連接和配對(duì)的數(shù)據(jù)連接。
指令分發(fā)器完成指令的預(yù)處理。指令分發(fā)器將對(duì)指令中的空格字符替換為字符串結(jié)束標(biāo)志符,以實(shí)現(xiàn)對(duì)指令中各元素的切割,然后提取指令頭部和指令參數(shù),且對(duì)指令參數(shù)個(gè)數(shù)進(jìn)行統(tǒng)計(jì)。完成指令格式化之后,指令分發(fā)器將對(duì)指令處理器注冊鏈表進(jìn)行遍歷,尋找與指令頭部相匹配的指令處理器,并將格式化后的指令傳遞給相應(yīng)的指令處理器。
指令處理器完成指令的執(zhí)行。針對(duì)表2中的SD和RD指令,其指令執(zhí)行流程如圖3所示。執(zhí)行過程可簡要描述為:申請資源、執(zhí)行指令、釋放資源和刪除指令四個(gè)步驟。
4? 系統(tǒng)測試
本文在Stratix EP4SGX230上實(shí)現(xiàn)了該設(shè)計(jì)方案,并搭建了系統(tǒng)測試環(huán)境。如圖4所示,使用網(wǎng)線將計(jì)算機(jī)、量子秘鑰發(fā)送方FPGA(Alice,上方FPGA)和量子秘鑰接收方FPGA(Bob,下方FPGA)連接在同一個(gè)路由器上,形成局域網(wǎng)測試環(huán)境。
上位機(jī)與FPGA數(shù)據(jù)傳輸測試。使用Matlab作為上位機(jī),循環(huán)向Alice發(fā)送傳輸100 MB數(shù)據(jù)的指令SD,Alice將從數(shù)據(jù)接口連續(xù)完整地接收100 MB數(shù)據(jù),并發(fā)送給Matlab。下行測試原理與上行測試一致,其指令為RD。測試結(jié)果如圖5所示,上行速率為61.19 Mb/s,下行速率為74.94 Mb/s。
Alice至 Bob數(shù)據(jù)傳輸測試,由上位機(jī)發(fā)送SD指令至Alice,Alice依據(jù)SD指令中參數(shù)2的IP與Bob建立控制和數(shù)據(jù)連接,并進(jìn)行100 MB數(shù)據(jù)傳輸。Bob至Alice數(shù)據(jù)傳輸測試則將SD指令發(fā)送給Bob。通過路由器控制頁面,觀測數(shù)據(jù)傳輸速率。測試結(jié)果如圖6所示,Alice至Bob的數(shù)據(jù)傳輸速度為47 Mb/s,Bob至Alice的數(shù)據(jù)傳輸速度為44 Mb/s。
數(shù)據(jù)接口測試。使用Signal Tap Ⅱ工具觀測接收MSGDMA中負(fù)責(zé)將數(shù)據(jù)寫入到主存儲(chǔ)器的端口信號(hào),其端口類型為Avalon?MM。如圖7所示,通過觀察信號(hào)可知,其傳輸周期數(shù)為4個(gè),有效周期數(shù)為2個(gè),數(shù)據(jù)位寬為32 bit,工作頻率為100 MHz,因此最快數(shù)據(jù)傳輸速度為1 600 Mb/s,滿足設(shè)計(jì)要求。
5? 結(jié)? 論
本文在FPGA上設(shè)計(jì)、優(yōu)化和實(shí)現(xiàn)了以太網(wǎng)數(shù)據(jù)傳輸系統(tǒng)。測試結(jié)果表明,該系統(tǒng)滿足量子通信系統(tǒng)當(dāng)前階段對(duì)以太網(wǎng)通信的設(shè)計(jì)要求。相較于同類型設(shè)計(jì)[10],其上行速率為51 Mb/s,而本文上行速率最高可達(dá)到61.19 Mb/s,性能提升了約20%。本系統(tǒng)可與量子通信中基于FPGA算法實(shí)現(xiàn)相結(jié)合,如LDPC糾錯(cuò)算法和Universal2類Hash函數(shù)隱私放大算法等,有利于將系統(tǒng)集成化和小型化。
參考文獻(xiàn)
[1] LIAO Shengkai, YONG Hailin, LIU Chang, et al. Long?distance free?space quantum key distribution in daylight towards inter?satellite communication [J]. Nature photonics, 2017, 11: 509?513.
[2] 劉洋.遠(yuǎn)距離量子密鑰分發(fā)系統(tǒng)的相關(guān)研究[D].合肥:中國科學(xué)技術(shù)大學(xué),2012.
[3] 林弘偉.適用于量子密鑰分發(fā)系統(tǒng)的TCP/IP協(xié)議棧的VLSI設(shè)計(jì)[D].合肥:中國科學(xué)技術(shù)大學(xué),2018.
[4] 沈奇.量子通信中的精密時(shí)間測量技術(shù)研究[D].合肥:中國科學(xué)技術(shù)大學(xué),2013.
[5] 安輝耀,劉敦偉,耿瑞華,等.量子通信系統(tǒng)中基于FPGA的偏振控制[J].系統(tǒng)工程與電子技術(shù),2016,38(8):1917?1921.
[6] 余海源.基于FPGA的QKD光源時(shí)序校準(zhǔn)系統(tǒng)研究與設(shè)計(jì)[D].合肥:合肥工業(yè)大學(xué),2017.
[7] 吳長瑞,徐建清,蔣景紅.基于FPGA的千兆以太網(wǎng)接口應(yīng)用研究與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2018,41(9):1?5.
[8] 朱保琨,劉廣文.千兆以太網(wǎng)通信端口FPGA設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2016,37(9):2292?2298.
[9] 朱明輝,司斌,張從霞,等.FPGA與88E1111的千兆以太網(wǎng)接口設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2017,17(3):60?63.
[10] 賁廣利,王永成,徐東東,等.以太網(wǎng)數(shù)傳系統(tǒng)在FPGA上的實(shí)現(xiàn)[J].液晶與顯示,2017,32(8):607?613.