譚海清,陳正國(guó),陳 微,肖 儂
(1.國(guó)防科學(xué)技術(shù)大學(xué) 計(jì)算機(jī)學(xué)院, 長(zhǎng)沙 410073; 2.高性能計(jì)算國(guó)家重點(diǎn)實(shí)驗(yàn)室(國(guó)防科學(xué)技術(shù)大學(xué)),長(zhǎng)沙 410073)
基于FPGA的DDR3協(xié)議解析邏輯設(shè)計(jì)
譚海清1,2*,陳正國(guó)1,2,陳 微1,2,肖 儂1,2
(1.國(guó)防科學(xué)技術(shù)大學(xué) 計(jì)算機(jī)學(xué)院, 長(zhǎng)沙 410073; 2.高性能計(jì)算國(guó)家重點(diǎn)實(shí)驗(yàn)室(國(guó)防科學(xué)技術(shù)大學(xué)),長(zhǎng)沙 410073)
(*通信作者電子郵箱tanhaiqing163@163.com)
針對(duì)采用DDR3接口來(lái)設(shè)計(jì)的新一代閃存固態(tài)盤(SSD)需要完成與內(nèi)存控制器進(jìn)行通信與交互的特點(diǎn),提出了基于現(xiàn)場(chǎng)可編程門陣列(FPGA)的DDR3協(xié)議解析邏輯方案。首先,介紹了DDR3內(nèi)存工作原理,理解內(nèi)存控制器對(duì)存儲(chǔ)設(shè)備的控制機(jī)制;然后,設(shè)計(jì)了接口協(xié)議解析邏輯的總體架構(gòu),采用FPGA實(shí)現(xiàn)并對(duì)其中的各個(gè)關(guān)鍵技術(shù)點(diǎn),包括時(shí)鐘、寫平衡、延遲控制、接口同步控制等進(jìn)行詳細(xì)闡述;最后,通過(guò)modelsim仿真并進(jìn)行板級(jí)驗(yàn)證,證明了該設(shè)計(jì)的正確性和可行性。在性能方面,通過(guò)單次讀寫、連續(xù)讀寫和混合讀寫三種模式下的數(shù)據(jù)讀寫測(cè)試,取得了最高77.81%的DDR3接口帶寬利用率,在實(shí)際的SSD開發(fā)過(guò)程中能夠有效提高系統(tǒng)的訪問性能。
現(xiàn)場(chǎng)可編程門陣列;固態(tài)盤;同步時(shí)序設(shè)計(jì);DDR3接口
當(dāng)前,信息技術(shù)高速發(fā)展,大數(shù)據(jù)時(shí)代到來(lái),存儲(chǔ)系統(tǒng)規(guī)模變得日益龐大,信息的存儲(chǔ)和處理面臨著巨大的挑戰(zhàn)[1]。為滿足數(shù)據(jù)密集型計(jì)算日益增長(zhǎng)的性能需求,存儲(chǔ)設(shè)備經(jīng)歷了多次技術(shù)革新,基于閃存(Nand Flash)的固態(tài)盤(Solid-State Driver, SSD)憑借低延時(shí)、低功耗、高帶寬和高并行性等方面的技術(shù)優(yōu)勢(shì),贏得了云計(jì)算、高性能計(jì)算等領(lǐng)域的青睞[2],并帶動(dòng)了消費(fèi)級(jí)存儲(chǔ)市場(chǎng)的發(fā)展。據(jù)國(guó)際市場(chǎng)研究者IHS公司預(yù)測(cè),到2017年,固態(tài)盤將占整個(gè)計(jì)算機(jī)存儲(chǔ)市場(chǎng)的33%以上[3]。
固態(tài)盤接口是固態(tài)盤與主機(jī)系統(tǒng)進(jìn)行數(shù)據(jù)交互的通路,決定了二者之間進(jìn)行數(shù)據(jù)傳輸?shù)姆绞?,限制了主機(jī)與固態(tài)盤的峰值傳輸速度。隨著閃存技術(shù)的不斷進(jìn)步、存儲(chǔ)系統(tǒng)性能要求的提高,傳統(tǒng)上基于SATA(Serial ATA)/SAS(Serial Attached SCSI)的固態(tài)硬盤已經(jīng)不能滿足需求,采用PCIE(Peripheral Component Interconnect Express)接口的固態(tài)硬盤依然需要經(jīng)過(guò)外設(shè)存儲(chǔ)協(xié)議層,存在訪存路徑過(guò)長(zhǎng)的問題,在性能要求苛刻的場(chǎng)合還是無(wú)法滿足需求。采用DDR3(Double-Data-Rate Three synchronous dynamic random access memory)接口設(shè)計(jì)SSD具有訪存路徑短、帶寬大、低延遲等特點(diǎn)[4],可充分發(fā)掘固態(tài)盤內(nèi)部的并行性,提高固態(tài)盤整體性能。
依據(jù)接口性能,可將SSD劃分為3代。第1代SSD采用SATA/SAS接口進(jìn)行數(shù)據(jù)傳輸,帶寬有限,其中面向消費(fèi)級(jí)市場(chǎng)采用的SATA Ⅱ、SATA Ⅲ接口帶寬分別為300 MB/s和600 MB/s[5],而面向企業(yè)級(jí)市場(chǎng)采用的SAS接口帶寬則達(dá)到600 MB/s[6]。隨著SSD技術(shù)的進(jìn)步以及市場(chǎng)發(fā)展的需求,人們基于PCIE接口設(shè)計(jì)了第2代SSD,旁路掉傳統(tǒng)SATA/SAS數(shù)據(jù)通路中的HBA(Host Bus Adapter),訪存延時(shí)獲得了一個(gè)數(shù)量級(jí)的提升。雖然PCIE SSD性能具有優(yōu)勢(shì),然而由于PCIE總線訪存路徑的限制,其讀寫響應(yīng)時(shí)間依然比較長(zhǎng),達(dá)到40~70 ms;另一方面,PCIE總線上需要掛載大量的各種設(shè)備,導(dǎo)致總線競(jìng)爭(zhēng)激烈,以至于PCIE SSD的I/O性能無(wú)法得到線性的擴(kuò)展[7]。為減小SSD的存取路徑長(zhǎng)度,降低讀寫數(shù)據(jù)延時(shí),提高I/O可擴(kuò)展性能,人們提出了采用DDR3接口設(shè)計(jì)的第3代SSD存儲(chǔ)產(chǎn)品。
基于DDR3接口的第3代SSD在位置上更加靠近CPU,并直接與CPU相連,旁路掉所有外設(shè)的存儲(chǔ)協(xié)議層,因此能夠獲得超低的訪問延時(shí)(ultra-low latency)。該SSD存儲(chǔ)設(shè)備通過(guò)內(nèi)存總線(memory bus)進(jìn)行數(shù)據(jù)傳輸,遵從DDR3總線協(xié)議,采用同步數(shù)據(jù)傳輸方式與CPU進(jìn)行數(shù)據(jù)交互,相對(duì)于PCIE SSD采用的異步傳輸方式更加高效。在企業(yè)級(jí)的高性能、大數(shù)據(jù)處理方面,尤其是對(duì)于存儲(chǔ)設(shè)備延遲有著苛刻要求的應(yīng)用場(chǎng)合上,它能夠較好地滿足性能方面的要求,因此可廣泛應(yīng)用于高頻交易、大數(shù)據(jù)分析、虛擬桌面基礎(chǔ)架構(gòu)、內(nèi)存計(jì)算、刀片服務(wù)器等領(lǐng)域[8]。
本文的研究工作是針對(duì)DDR3接口信號(hào),嚴(yán)格按照J(rèn)EDEC(Joint Electron Device Engineering Council)規(guī)定的時(shí)序進(jìn)行協(xié)議解析與控制,包括命令解析、地址譯碼、數(shù)據(jù)格式轉(zhuǎn)換、接口I/O同步控制等,將DDR3接口信號(hào)轉(zhuǎn)換成SSD后端可識(shí)別的信號(hào),并完成接口同步數(shù)據(jù)傳輸與交互。
本文實(shí)驗(yàn)基于FPGA(Field-Programmable Gate Array)可編程邏輯器件,采用Verilog硬件描述語(yǔ)言設(shè)計(jì)解析邏輯。實(shí)驗(yàn)中搭建完整的硬件仿真平臺(tái),通過(guò)Xilinx ISE軟件生成的MIG(Memory Interface Generator)核作為內(nèi)存控制器,以產(chǎn)生內(nèi)存控制信號(hào)。解析邏輯按照內(nèi)存時(shí)序規(guī)范對(duì)接口信號(hào)進(jìn)行解析與控制,完成數(shù)據(jù)的接收與發(fā)送、執(zhí)行對(duì)后端FTL(Flash Translation Layer)發(fā)送過(guò)來(lái)的請(qǐng)求進(jìn)行處理等工作。實(shí)驗(yàn)最后對(duì)解析邏輯進(jìn)行了完整的測(cè)試和驗(yàn)證,并對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行了分析。
1.1 DDR3工作原理
DDR SDRAM(Double-Data-Rate SDRAM)即雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器,由SDRAM(Synchronous Dynamic Random Access Memory)基礎(chǔ)上發(fā)展而來(lái),采用時(shí)鐘的上升沿和下降沿均進(jìn)行數(shù)據(jù)采樣,從而把數(shù)據(jù)傳輸速率提高了一倍[9]。DDR內(nèi)存技術(shù)已經(jīng)歷四代的發(fā)展,每一代內(nèi)存芯片的核心頻率都維持在100~200 MHz,但在I/O性能上都有大幅度提升。這種性能提升一方面得益于半導(dǎo)體晶圓制造工藝的發(fā)展,另一方面是因?yàn)椴捎昧穗p倍數(shù)據(jù)速率傳輸(Double Data Rate)和預(yù)取(prefetch)兩項(xiàng)核心技術(shù)[10]。
DDR3是第3代雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器。采用 8 b預(yù)取技術(shù),管腳時(shí)鐘頻率由之前內(nèi)核頻率的2倍提升到4倍,到達(dá)800 MT/s~1 600 MT/s。
DDR3內(nèi)存主要由內(nèi)存芯片和基板構(gòu)成。內(nèi)存芯片是數(shù)據(jù)存儲(chǔ)區(qū),內(nèi)存基板將8顆或16顆內(nèi)存芯片整合在一塊PCB板上構(gòu)成一根內(nèi)存條。內(nèi)存芯片如圖1所示,左邊是存儲(chǔ)陣列和訪存控制邏輯(Control Logic),右邊是數(shù)據(jù)緩存區(qū)。存儲(chǔ)陣列在邏輯上被劃分為8個(gè)Bank,每個(gè)Bank都有獨(dú)立的行列地址譯碼邏輯。進(jìn)行數(shù)據(jù)讀/寫操作時(shí),控制邏輯通過(guò)對(duì)命令信號(hào)的譯碼,識(shí)別訪存指令,從而控制地址功能部件定位存儲(chǔ)陣列訪存位置。緩存邏輯部分負(fù)責(zé)讀寫數(shù)據(jù)的緩沖,讀操作時(shí),將預(yù)取的64 b數(shù)據(jù)送入讀數(shù)據(jù)緩沖區(qū)(Read FIFO),然后分成8路,通過(guò)數(shù)據(jù)多路復(fù)用器(Data MUX)合并成一路數(shù)據(jù)流輸出到接口。寫緩沖是讀緩沖的逆過(guò)程。
圖1 256 MB ×8的DDR3芯片功能框圖Fig. 1 Functional block diagram of DDR3 chip with 8 banks of 256 MB
DDR3整體上的基本工作流程如圖2所示。上電之后重置,對(duì)其每一顆芯片內(nèi)部的控制邏輯及存儲(chǔ)單元進(jìn)行初始化,然后設(shè)置模式寄存器(Mode Register)MR2、MR3、MR1、MR0,完成一系列的讀寫校準(zhǔn)操作,才正式進(jìn)入工作模式。正常工作模式下的操作包括激活(Bank Active)、讀(Read)、寫(Write)、刷新(Refresh)、預(yù)充電(Precharge) 及低功耗模式下的相關(guān)操作,所有操作都須嚴(yán)格按照J(rèn)EDEC規(guī)范[10]的時(shí)序要求進(jìn)行。
1.2 DDR3內(nèi)存控制器
DDR3接口的訪存信號(hào)由內(nèi)存控制器向DDR3發(fā)出,通過(guò)內(nèi)存總線傳送到DDR3接口。本文依據(jù)JEDEC標(biāo)準(zhǔn)對(duì)內(nèi)存總線信號(hào)進(jìn)行解析。本文采用Xilinx公司的ISE軟件生成的MIG核作為DDR3內(nèi)存控制器,以生成DDR3接口訪存信號(hào)源。
基于Virtex-6 FPGA的內(nèi)存控制器邏輯如圖3所示。中間部分是內(nèi)存控制器,兩邊的是用戶接口(User Interface, UI)信號(hào)和DDR3內(nèi)存訪問信號(hào)。用戶邏輯模擬CPU的訪存行為,向內(nèi)存控制器發(fā)出讀/寫訪存命令,并通過(guò)用戶接口送達(dá)內(nèi)存控制器。DDR3內(nèi)存訪問信號(hào)則具體用于對(duì)DDR3存儲(chǔ)器進(jìn)行訪存。
圖2 DDR3 SDRAM操作流程Fig. 2 DDR3 SDRAM operation state diagram
本文設(shè)計(jì)DDR3協(xié)議解析邏輯通過(guò)圖3右邊的DDR3接口信號(hào)完成與內(nèi)存控制器之間的交互。實(shí)驗(yàn)最終在左端User Design部分設(shè)計(jì)讀寫測(cè)試激勵(lì),驗(yàn)證解析邏輯的正確性并測(cè)試讀寫性能。
圖3 Virtex-6 FPGA 存儲(chǔ)器接口邏輯框圖Fig. 3 Logical diagram of Virtex-6 FPGA memory interface
1.3 DDR3協(xié)議解析設(shè)計(jì)難點(diǎn)
根據(jù)JEDEC標(biāo)準(zhǔn)(JESD79-3)[11]規(guī)定的DDR3內(nèi)存總線時(shí)序規(guī)范,對(duì)協(xié)議進(jìn)行研究與分析,本文設(shè)計(jì)DDR3協(xié)議解析邏輯有以下難點(diǎn):
1)DDR3 SDRAM在進(jìn)行正式的讀寫操作之前需要完成漫長(zhǎng)的初始化、校準(zhǔn)操作,直至控制器置信號(hào)phy_init_done有效,用戶邏輯才能通過(guò)控制器進(jìn)行讀寫操作。因此,在初始化及校準(zhǔn)操作完成之前,解析邏輯只能被動(dòng)地配合控制器進(jìn)行數(shù)據(jù)交互。只有完成初始化及校準(zhǔn)流程才能驗(yàn)證前期工作的正確性,而無(wú)法一步一步迭代前進(jìn),這為解析邏輯的設(shè)計(jì)帶來(lái)了不小的挑戰(zhàn)。
2)DDR3總線協(xié)議采用同步時(shí)序控制方式,在進(jìn)行讀寫訪問時(shí),從Bank激活到讀/寫命令發(fā)出,再到數(shù)據(jù)送達(dá)總線,每一步都有固定的延時(shí)限制,延時(shí)長(zhǎng)度由相關(guān)參數(shù)設(shè)定。在與激活操作相對(duì)固定的時(shí)間點(diǎn)上必須完成相關(guān)數(shù)據(jù)操作,否則會(huì)造成讀寫數(shù)據(jù)出錯(cuò)。延時(shí)精確控制是解析邏輯設(shè)計(jì)中有待重點(diǎn)解決的問題。
3)DDR3接口信號(hào)采用雙邊沿觸發(fā)數(shù)據(jù)采樣機(jī)制,采樣時(shí)鐘為數(shù)據(jù)的源同步信號(hào)DQS,頻率與時(shí)鐘相同?;贔PGA設(shè)計(jì)解析邏輯,在400 MHz的工作時(shí)鐘下,如何完成雙邊沿觸發(fā)數(shù)據(jù)采樣,并且保證采樣的準(zhǔn)確性,是研究中的難點(diǎn)。
2.1 基于DDR3接口的固態(tài)盤架構(gòu)
基于DDR3接口的SSD原型系統(tǒng)是課題組正在研發(fā)的一款大容量、高性能的固態(tài)存儲(chǔ)系統(tǒng),主要針對(duì)企業(yè)級(jí)高性能計(jì)算、大數(shù)據(jù)處理等對(duì)訪存延時(shí)要求苛刻的領(lǐng)域。原型系統(tǒng)采用較為成熟的系統(tǒng)架構(gòu)方案,由主控制器、DRAM緩存和Flash存儲(chǔ)空間三部分構(gòu)成。主控制器采用FPGA可編程邏輯+ARM核實(shí)現(xiàn),用于對(duì)存儲(chǔ)系統(tǒng)的讀寫控制和訪存調(diào)度,是原型系統(tǒng)的核心;DRAM緩存采用大容量的DDR3芯片,集成在固態(tài)盤內(nèi)部,用于緩沖Flash中的熱點(diǎn)數(shù)據(jù),以提高固態(tài)盤的讀寫性能;Flash存儲(chǔ)空間由多顆NAND Flash構(gòu)成,形成大容量的數(shù)據(jù)存儲(chǔ)區(qū)。基于DDR3接口的固態(tài)盤原型系統(tǒng)總體架構(gòu)如圖4所示。
圖4 基于DDR3接口的固態(tài)盤原型系統(tǒng)架構(gòu)Fig. 4 Architecture of SSD prototype based on DDR3 interface
固態(tài)盤主控制器是實(shí)現(xiàn)高性能數(shù)據(jù)讀寫的關(guān)鍵。本課題研制的基于DDR3接口的固態(tài)盤原型系統(tǒng)采用帶有ARM核的Zynq芯片作為主控單元。Zynq中集成了ARM核和FPGA可編程邏輯,主控制器使用ARM核作為指令控制單元,以實(shí)現(xiàn)FTL算法;使用FPGA,利用硬件的并行處理特性實(shí)現(xiàn)高效數(shù)據(jù)傳輸與控制等。
原型系統(tǒng)通過(guò)DIMM(Dual-Inline-Memory-Modules)插槽直接與主機(jī)相連,主機(jī)CPU通過(guò)內(nèi)存控制器(Memory Control, MC)像訪問內(nèi)存一樣訪問該固態(tài)存儲(chǔ)設(shè)備。圖4中解析轉(zhuǎn)換器即為本文所要實(shí)現(xiàn)的協(xié)議解析邏輯模塊,涉及與兩端的通信,一端是對(duì)DIMM接口信號(hào)進(jìn)行解析,另一端是與主控制器后端控制邏輯進(jìn)行交互。本文主要完成針對(duì)與DIMM接口信號(hào)進(jìn)行交互的設(shè)計(jì)工作。
2.2 DDR3協(xié)議解析邏輯設(shè)計(jì)
DDR3協(xié)議解析邏輯作為固態(tài)盤與主機(jī)CPU進(jìn)行交互的橋梁和紐帶,是整個(gè)固態(tài)盤系統(tǒng)中非常重要的一環(huán),其設(shè)計(jì)方案如圖5所示。其中包括三部分:用戶訪存邏輯、MIG核實(shí)現(xiàn)的內(nèi)存控制器以及DDR3協(xié)議解析邏輯,整個(gè)解析邏輯架構(gòu)都在FPGA上實(shí)現(xiàn)和驗(yàn)證。
待解析的DDR3接口信號(hào)主要有三類:地址、命令和數(shù)據(jù)信號(hào),根據(jù)這些信號(hào)狀態(tài),解析邏輯完成相應(yīng)的數(shù)據(jù)收發(fā)功能。圖5右側(cè)是協(xié)議解析邏輯,主要包括接收模塊、發(fā)送模塊和數(shù)據(jù)存儲(chǔ)區(qū)三個(gè)部分。接收模塊用于接收MC發(fā)送的指令和數(shù)據(jù),并進(jìn)行重構(gòu)與緩存;發(fā)送模塊則將讀出的數(shù)據(jù)緩存,并以數(shù)據(jù)流的方式發(fā)送出去;存儲(chǔ)數(shù)據(jù)區(qū)用來(lái)保存數(shù)據(jù)。由于解析轉(zhuǎn)換器沒有與主控單元后端相銜接,因此這里將后端部分用一個(gè)數(shù)據(jù)存儲(chǔ)區(qū)表示,以完成對(duì)DDR3接口信號(hào)的解析功能,并保證讀寫時(shí)序的正確性。
圖5 固態(tài)盤解析邏輯的整體結(jié)構(gòu)Fig. 5 Overall structure of SSD parsing logic
解析邏輯中接收模塊包含寫數(shù)據(jù)重構(gòu)邏輯和命令&地址譯碼邏輯及兩個(gè)FIFO(First Input First Output)緩沖區(qū)。寫數(shù)據(jù)重構(gòu)邏輯在特定的時(shí)刻對(duì)有效數(shù)據(jù)進(jìn)行采樣并緩沖到寫數(shù)據(jù)FIFO中。命令&地址譯碼邏輯則根據(jù)命令信號(hào)cs_n、ras_n、cas_n、we_n的高低電平組合譯碼成DDR3操作指令,如表1所示(H表示高電平,L表示低電平);根據(jù)地址信號(hào)ba、addr及命令信號(hào)進(jìn)行行列地址識(shí)別;在初始化階段,模式寄存器會(huì)根據(jù)地址和命令信號(hào)進(jìn)行相應(yīng)的參數(shù)設(shè)置。
表1 DDR3命令真值表Tab. 1 DDR3 command truth value table
協(xié)議解析邏輯中的發(fā)送模塊將從數(shù)據(jù)存儲(chǔ)區(qū)中讀回的數(shù)據(jù)緩存入讀數(shù)據(jù)FIFO中并在特定的時(shí)刻以數(shù)據(jù)流的形式連續(xù)發(fā)送到DDR3接口,輸出數(shù)據(jù); 同時(shí),雙向數(shù)據(jù)選通 (Data Strobe Signal,DQS)生成器會(huì)產(chǎn)生數(shù)據(jù)選通信號(hào)DQS,與有效數(shù)據(jù)信號(hào)同步輸出。本文設(shè)計(jì)的DDR3協(xié)議解析邏輯采用可綜合的Verilog硬件描述語(yǔ)言實(shí)現(xiàn),綜合出的比特流文件打入FPGA中驗(yàn)證,完成設(shè)計(jì)與實(shí)現(xiàn)工作。
3.1 時(shí)鐘網(wǎng)絡(luò)
在基于FPGA的數(shù)字電路設(shè)計(jì)中,時(shí)鐘是設(shè)計(jì)中非常關(guān)鍵的環(huán)節(jié),合理地利用各種時(shí)鐘資源設(shè)計(jì)時(shí)鐘網(wǎng)絡(luò),可有效改善所設(shè)計(jì)的FPGA數(shù)字邏輯電路的綜合和實(shí)現(xiàn)效果。本文設(shè)計(jì)的協(xié)議解析邏輯時(shí)鐘資源主要分為兩種:系統(tǒng)工作時(shí)鐘和源同步時(shí)鐘。其中,系統(tǒng)工作時(shí)鐘由MC通過(guò)接口時(shí)鐘管腳CK/CK#輸入,驅(qū)動(dòng)解析邏輯大部分工作,包括譯碼、控制、數(shù)據(jù)存儲(chǔ)和DQS信號(hào)生成等;源同步時(shí)鐘即數(shù)據(jù)選通信號(hào)DQS,在讀寫操作時(shí)與數(shù)據(jù)信號(hào)DQ(Data Strobe)同步傳輸,并使用它對(duì)DQ信號(hào)進(jìn)行精確采樣和提取,獲取有效數(shù)據(jù)。
文中內(nèi)存控制器采用DDR3-800的內(nèi)存條參數(shù),因此解析邏輯的系統(tǒng)工作時(shí)鐘為400 MHz,符合Xilinx FPGA所限制的時(shí)鐘頻率范圍,而源同步時(shí)鐘DQS只有在接口進(jìn)行數(shù)據(jù)傳輸時(shí)才有效,頻率上與系統(tǒng)工作時(shí)鐘CK相同。
本文針對(duì)時(shí)鐘資源的管理如圖6所示,采用三種不同的FPGA時(shí)鐘資源分別驅(qū)動(dòng)內(nèi)部控制邏輯、數(shù)據(jù)采樣邏輯和跨時(shí)鐘域同步邏輯。其中,工作時(shí)鐘CK/CK#走FPGA全局時(shí)鐘網(wǎng)絡(luò),通過(guò)Xilinx時(shí)鐘原語(yǔ)IBUGDS+BUFG具體實(shí)現(xiàn), 驅(qū)動(dòng)解析控制邏輯,以使解析邏輯可以在任意位置布局布線;而源同步時(shí)鐘DQS使用FPGA的區(qū)域時(shí)鐘資源,一方面通過(guò)I/O邏輯時(shí)鐘緩沖BUFIO驅(qū)動(dòng)數(shù)據(jù)采樣邏輯,在接口位置完成采樣功能,另一方面通過(guò)BUFR驅(qū)動(dòng)數(shù)據(jù)的跨時(shí)鐘域同步邏輯,完成寫數(shù)據(jù)FIFO的跨時(shí)鐘域同步,保證通過(guò)DQS采樣到的數(shù)據(jù)能夠在時(shí)鐘CK下進(jìn)行操作。
圖6 時(shí)鐘資源管理Fig. 6 Clock resource management
3.2 寫平衡
DDR3 SDRAM在時(shí)鐘、地址、命令及控制信號(hào)上采用Fly-by拓?fù)浣Y(jié)構(gòu)[13],這些信號(hào)以菊花鏈的方式連接,串行地發(fā)送到各個(gè)內(nèi)存芯片,以提高信號(hào)的完整性。由于數(shù)據(jù)信號(hào)DQ和選通信號(hào)DQS是以并行的方式發(fā)送到各個(gè)內(nèi)存芯片顆粒的,因此造成了DQS信號(hào)與時(shí)鐘信號(hào)CK之間的歪斜。在CPU正式進(jìn)入讀寫訪存狀態(tài)之前,MC會(huì)自動(dòng)對(duì)DDR3進(jìn)行寫平衡校準(zhǔn)操作,調(diào)整相位使DQS和CK之間的偏斜變得最小。因此,本文設(shè)計(jì)的解析邏輯必須配合MC完成寫平衡校準(zhǔn)。
寫平衡校準(zhǔn)在時(shí)序上是一個(gè)反復(fù)而漫長(zhǎng)的操作過(guò)程,其校準(zhǔn)過(guò)程如圖7所示。DQS信號(hào)反復(fù)地采樣時(shí)鐘信號(hào)CK,并通過(guò)數(shù)據(jù)信號(hào)DQ將采樣結(jié)果回送到內(nèi)存控制器,內(nèi)存控制器會(huì)根據(jù)采樣結(jié)果對(duì)DQS信號(hào)作延時(shí)調(diào)整,以盡量使DQS與CK邊沿對(duì)齊。
圖7 寫平衡時(shí)鐘信號(hào)采樣Fig. 7 Write leveling clock signal sampling
當(dāng)解析邏輯檢測(cè)到MC發(fā)出模式寄存器設(shè)置命令,將MR1的A7地址位設(shè)置為1時(shí),指示寫平衡開始。解析邏輯不斷采樣CK、MC,不斷調(diào)整DQS延時(shí),反復(fù)調(diào)整直到MC確定DQS與CK之間的偏斜滿足JEDEC規(guī)范的要求,才重新設(shè)置 MR1,完成寫平衡。本文通過(guò)仿真測(cè)試,統(tǒng)計(jì)出MC反復(fù)采樣142次,DQS延時(shí)調(diào)整32次,最終完成時(shí)鐘CK與DQS之間的偏斜調(diào)整,達(dá)到最小。
3.3 延遲槽
為實(shí)現(xiàn)對(duì)延時(shí)的精確控制,在DDR3協(xié)議解析邏輯中加入延遲槽,即多組延遲計(jì)數(shù)邏輯。通常,DDR3存儲(chǔ)器的性能可通過(guò)一系列的時(shí)序參數(shù)體現(xiàn):tCL-tRCD-tRP-t RAS[14],例如DDR3-800的一組參數(shù)是6-6-6-15。這是一系列的時(shí)鐘周期數(shù),表示一個(gè)操作到另一個(gè)操作之間的延遲周期。比如從讀命令發(fā)出,到數(shù)據(jù)讀出送達(dá)接口之間延時(shí)為tCL,提早或稍晚讀數(shù)據(jù)都會(huì)造成出錯(cuò)。
為保證滿足DDR3接口的同步數(shù)據(jù)傳輸要求,本文中解析邏輯通過(guò)設(shè)置延遲槽來(lái)實(shí)現(xiàn)對(duì)操作時(shí)序上的精確控制。解析邏輯中共設(shè)置5個(gè)延遲槽:write_delayslot、read_delayslot、bank_delayslot、row_delayslot、col_delayslot,其中將write_delayslot和read_delayslot設(shè)置為15 b的一維向量,以記錄讀寫命令發(fā)出后的延遲時(shí)間,將bank_delayslot、row_delayslot、col_delayslot設(shè)置成深度為15、寬度為相應(yīng)地址寬度的二維向量,以保存讀寫命令發(fā)出時(shí)的地址信息Bank、Row、Col。
延遲槽中的向量數(shù)據(jù)在每個(gè)時(shí)鐘沿右移一次,當(dāng)零號(hào)向量位有效時(shí)表示對(duì)應(yīng)命令進(jìn)入數(shù)據(jù)操作階段,開始采樣數(shù)據(jù)或發(fā)送數(shù)據(jù)。延遲槽從偵測(cè)到讀寫命令時(shí)開始延時(shí)計(jì)數(shù),對(duì)于讀命令,命令發(fā)出后延時(shí)CL(CAS Latency)個(gè)周期,將從存儲(chǔ)器中取得的數(shù)據(jù)送達(dá)DDR3接口,開始將其拆分以數(shù)據(jù)流的形式輸出;對(duì)于寫命令,延時(shí)CWL(CAS Write Latency)個(gè)周期數(shù)據(jù)到達(dá)內(nèi)存總線,開始從接口提取有效數(shù)據(jù)并寫入存儲(chǔ)區(qū)。
如圖8所示為讀延時(shí)控制,當(dāng)read_delayslot[0]=1有效時(shí),指示數(shù)據(jù)輸出開始(中間豎線位置),因此下一拍解析邏輯必須開始向DDR3接口發(fā)送數(shù)據(jù)。圖中進(jìn)行了8次數(shù)據(jù)觸發(fā),完成了一次BL=8的突發(fā)傳輸操作。與此同時(shí),使能各種控制信號(hào)并生成源同步信號(hào),包括數(shù)據(jù)輸出使能dq_out_en、突發(fā)傳輸位置burst_position、DQS輸出使能dqs_out_en和DQS輸出信號(hào)dqs_out等,精確控制其在時(shí)序上的有效時(shí)間。
圖8 延遲槽時(shí)序控制Fig. 8 Timing control by delayslot
3.4 接口源同步信號(hào)I/O控制
數(shù)據(jù)采樣需要有精確的采樣時(shí)鐘。傳統(tǒng)的共同時(shí)鐘系統(tǒng)在頻率提升到一定程度時(shí),數(shù)據(jù)采樣時(shí)序裕量不足,無(wú)法滿足采樣時(shí)序的要求,進(jìn)而采用更加穩(wěn)定有效的源同步時(shí)鐘系統(tǒng)。在源同步時(shí)鐘系統(tǒng)中,發(fā)送端將選通信號(hào)與數(shù)據(jù)信號(hào)同步發(fā)出,在接收端通過(guò)選通信號(hào)控制數(shù)據(jù)讀取,選通信號(hào)即為源同步時(shí)鐘信號(hào)。由于兩個(gè)信號(hào)從發(fā)送端到接收端的飛行時(shí)間完全一致,從而保證了數(shù)據(jù)采樣的準(zhǔn)確性。
本文中選通信號(hào)DQS是數(shù)據(jù)信號(hào)DQ的源同步時(shí)鐘信號(hào),解析邏輯針對(duì)DQS和DQ的處理如圖9所示。在讀寫操作過(guò)程中,二者同步輸入輸出,確保數(shù)據(jù)采樣的準(zhǔn)確性:1)圖9上方信號(hào)時(shí)序所示,在進(jìn)行寫操作時(shí),選通信號(hào)DQS和數(shù)據(jù)信號(hào)DQ由內(nèi)存控制器發(fā)送到解析邏輯,其中DQS與時(shí)鐘CK中心對(duì)齊(center-aligned),二者相位偏差90°,而數(shù)據(jù)信號(hào)DQ則直接與時(shí)鐘CK邊沿對(duì)齊(eged-aligned)。解析邏輯使用DQS信號(hào)對(duì)DQ信號(hào)采樣,采樣位置在DQ有效周期的中心處,以此獲得最大的采樣時(shí)間裕度;2)圖9下方所示,在進(jìn)行讀操作時(shí),DQS和DQ由解析邏輯發(fā)送到內(nèi)存控制器,并且二者均與時(shí)鐘CK邊沿對(duì)齊,在時(shí)鐘CK的邊沿觸發(fā)下同時(shí)向DDR3接口發(fā)送,以保證在MC端數(shù)據(jù)采樣的準(zhǔn)確性。
圖9 DQS與DQ的I/O處理Fig. 9 I/O processing of DQS and DQ
本文實(shí)驗(yàn)中對(duì)于輸入數(shù)據(jù)信號(hào)使用IDDR原語(yǔ),將它轉(zhuǎn)換成兩路單邊沿觸發(fā)的信號(hào),在采樣時(shí)鐘DQS的上升沿處,一次性采樣取得周期內(nèi)的兩撥數(shù)據(jù)(如圖9右上角所示)。單邊沿觸發(fā)采樣時(shí)間更長(zhǎng),以保證在FPGA內(nèi)部數(shù)據(jù)采樣的穩(wěn)定性,提高設(shè)計(jì)的綜合和實(shí)現(xiàn)效果。在讀操作過(guò)程中,對(duì)于輸出數(shù)據(jù)信號(hào),數(shù)據(jù)在時(shí)鐘上升沿一次性從FIFO中取得144 b 數(shù)據(jù),分成兩路72 b數(shù)據(jù)(如圖9右下角所示),用ODDR聚合成數(shù)據(jù)流輸出,同時(shí)DQS生成邏輯會(huì)產(chǎn)生同步DQS信號(hào)數(shù)據(jù)往接口輸出。
實(shí)驗(yàn)采用Xilinx ISE軟件生成的MIG核作為DDR3控制器,向DIMM口發(fā)送訪存信號(hào),并通過(guò)MIG核的用戶接口,在用戶邏輯中設(shè)計(jì)測(cè)試激勵(lì),模擬CPU向內(nèi)存控制器發(fā)送訪存命令。采用的DDR3類型為DDR3-800,理論峰值帶寬為6.4 GB/s,采用的DDR3接口類型為適用于服務(wù)器內(nèi)存插槽RDIMM口,接口數(shù)據(jù)位寬為72 b(64 b有效數(shù)據(jù)+8 b ECC校驗(yàn))。DDR3協(xié)議解析邏輯采用Micron的 MT18JSF51272PZ-1G4內(nèi)存芯片的參數(shù),工作頻率為 400 MHz,采用BL8突發(fā)方式進(jìn)行數(shù)據(jù)傳輸。
實(shí)驗(yàn)分為正確性驗(yàn)證和讀寫性能測(cè)試兩個(gè)部分:正確性驗(yàn)證檢測(cè)協(xié)議解析邏輯在時(shí)序上的正確性;讀寫性能測(cè)試分為單次讀寫數(shù)據(jù)測(cè)試、連續(xù)讀寫數(shù)據(jù)測(cè)試和混合讀寫數(shù)據(jù)測(cè)試,分別驗(yàn)證解析邏輯的正確性和測(cè)試解析邏輯的有效性能。
4.1 正確性驗(yàn)證
協(xié)議解析邏輯配合內(nèi)存控制器完成初始化和校準(zhǔn)過(guò)程,然后進(jìn)入讀寫數(shù)據(jù)狀態(tài),并保證初始化和校準(zhǔn)的正確性和讀寫數(shù)據(jù)的正確性,只有完成整個(gè)流程才能確認(rèn)解析邏輯工作正常。
實(shí)驗(yàn)嚴(yán)格按照J(rèn)EDEC標(biāo)準(zhǔn)的時(shí)序要求進(jìn)行設(shè)計(jì),完成了解析邏輯與控制器之間進(jìn)行初始化及數(shù)據(jù)校準(zhǔn)的交互過(guò)程,并在MIG核的用戶接口(UI)端生成的讀寫激勵(lì),通過(guò)仿真顯示,解析邏輯能夠正確地配合內(nèi)存控制器完成數(shù)據(jù)的寫入和讀出,如圖10所示。
圖10 寫后讀正確性驗(yàn)證Fig. 10 Correctness verification of reading after writing
UI端的phy_init_done電平信號(hào)拉高表示初始化及校準(zhǔn)操作成功,從圖10中可以看出,在仿真的54.8 μs處(虛線指示),初始化及校準(zhǔn)工作完成。之后,驗(yàn)證寫、讀數(shù)據(jù)的正確性,在UI端將數(shù)據(jù) 256′h11111111111111AA11111111111111BB1111111111111CC11111111111111DD和256′h22222222222222AA22222222222222BB22222222222222CC22222222222222DD共512 b數(shù)據(jù)通過(guò)Wdata_to_dram信號(hào)寫入解析邏輯,寫入地址為30′b011000000000001110111100000000。寫完成后發(fā)送讀命令,從同一地址將數(shù)據(jù)讀出,通過(guò)Rdata_from_dram將數(shù)據(jù)讀回,圖中仿真波形顯示,讀回的數(shù)據(jù)與寫入的數(shù)據(jù)完全一致,從而驗(yàn)證了解析邏輯在配合內(nèi)存控制器完成初始化及校準(zhǔn)工作的正確性。
4.2 數(shù)據(jù)讀寫性能測(cè)試
1)單次讀寫性能測(cè)試。
為測(cè)試解析邏輯所能實(shí)現(xiàn)的性能,本文首先進(jìn)行了單次讀寫數(shù)據(jù)測(cè)試。通過(guò)在MIG核的用戶端采用Non-back-to-back模式(非連續(xù)地址操作模式),產(chǎn)生多次獨(dú)立的寫數(shù)據(jù)和讀數(shù)據(jù)激勵(lì),測(cè)試DDR3接口帶寬的利用率。
實(shí)驗(yàn)中共進(jìn)行200次獨(dú)立的數(shù)據(jù)讀寫測(cè)試,其中100次寫數(shù)據(jù)測(cè)試和100次讀數(shù)據(jù)測(cè)試,分別測(cè)試在同Bank同行、同Bank不同行、不同Bank地址上的讀寫性能。其中在同Bank同行地址上讀寫性能最好,分別達(dá)到4.31 GB/s和3.2 GB/s,DDR3-800接口帶寬利用率達(dá)到67.3%和50.0%。同Bank不同行地址上的讀寫性能最差,僅有1.2 GB/s和1.31 GB/s。這種差別主要源于內(nèi)存控制器的訪存機(jī)制。對(duì)于同一Bank 行上數(shù)據(jù)的連續(xù)操作,內(nèi)存控制器不進(jìn)行行切換,即不需要對(duì)前一訪問行進(jìn)行預(yù)充電,從而大幅減少了兩次讀/寫操作的時(shí)間間隙,提高了帶寬的利用率。對(duì)于不同Bank地址上的讀/寫測(cè)試,由于兩次操作的Bank位置不同,因此對(duì)前一個(gè)Bank預(yù)充電的同時(shí)可激活另一個(gè)Bank,從而平滑地過(guò)渡到對(duì)兩個(gè)Bank的訪存,因此讀寫性能比同Bank同行模式稍差,但比不同Bank不同行模式要好一倍左右,讀/寫性能分別達(dá)到3.69 GB/s和2.75 GB/s,DDR3-800接口帶寬利用率為57.65%和42.96%。在同Bank不同行上進(jìn)行數(shù)據(jù)訪問,每次從一行中完成讀/寫后,需要對(duì)該Bank行進(jìn)行預(yù)充電,此時(shí)這個(gè)Bank都不能做其他的操作,因此,同Bank內(nèi)不同行之間切換時(shí)間開銷比較大,讀/寫性能也最差。
2)連續(xù)讀寫性能測(cè)試。
內(nèi)存控制器的訪存位置連續(xù),讀寫性能會(huì)獲得較大的提升。本文實(shí)驗(yàn)中進(jìn)行了連續(xù)地址讀寫測(cè)試,在MIG核的用戶接口端使用Back-to-back模式,向同Bank同行的連續(xù)列地址上發(fā)送訪存命令,測(cè)試讀寫數(shù)據(jù)的性能。
在同Bank同行連續(xù)列地址上寫數(shù)據(jù)速率達(dá)到4.41 GB/s,帶寬利用率為68.90%,而讀數(shù)據(jù)速率達(dá)到4.98 GB/s,接口帶寬利用率為77.81%。兩種連續(xù)讀寫模式都比單次讀寫模式中的同Bank同行模式下的性能高出15%~30%。連續(xù)地址訪存過(guò)程中,由于地址連續(xù),只需在第一個(gè)數(shù)據(jù)讀/寫時(shí)進(jìn)行地址訪問,后續(xù)地址在原有地址上加上固定偏移即可,因此減少了列地址尋址時(shí)間,提高了訪存性能。
3)混合讀寫性能測(cè)試。
現(xiàn)實(shí)情形中,CPU向內(nèi)存控制器發(fā)出的讀寫命令很可能是混合在一起的,既有可能讀后寫,也有可能寫后讀,讀寫數(shù)據(jù)之間可能還存在相關(guān)。本文實(shí)驗(yàn)?zāi)MCPU產(chǎn)生混合讀寫激勵(lì),在激勵(lì)中讀寫操作不斷切換,測(cè)試隨機(jī)數(shù)據(jù)讀寫性能。實(shí)驗(yàn)結(jié)果如表2所示。
表2 混合讀寫性能Tab. 2 Mixed read and write performance
實(shí)驗(yàn)中,連續(xù)的兩個(gè)讀寫命令地址不相同,即連續(xù)操作的數(shù)據(jù)不存在相關(guān)性,由此觀察時(shí)間開銷。實(shí)驗(yàn)數(shù)據(jù)顯示,混合讀寫的帶寬利用率普遍較低,為DDR3接口峰值帶寬的20%~45%,其中連續(xù)讀寫操作地址在同Bank同行時(shí),讀寫性能相對(duì)較高,數(shù)據(jù)傳輸速率到達(dá)2.76 GB/s,而連續(xù)讀寫操作地址在同Bank不同行時(shí)性能最低,僅為1.47 GB/s。這是由于在進(jìn)行讀寫操作切換時(shí),同Bank 不同行地址上的讀寫只能串行地操作,由此引入的時(shí)間開銷比較大。
基于DDR3接口設(shè)計(jì)SSD在位置上更加靠近CPU,具有較短的訪存路徑,因此在性能上具有巨大的優(yōu)勢(shì)。本文在總結(jié)和分析了DDR3存儲(chǔ)器工作原理的基礎(chǔ)上,根據(jù)JEDEC規(guī)范的時(shí)序,設(shè)計(jì)了DDR3接口信號(hào)解析邏輯,完成了協(xié)議解析功能,保證了SSD與內(nèi)存控制器交互的正確性。實(shí)驗(yàn)結(jié)果表明,解析邏輯能夠正確地完成與內(nèi)存控制器的交互,并取得較為理想的I/O性能,為后續(xù)實(shí)現(xiàn)DDR3接口的SSD原型系統(tǒng)奠定了良好的基礎(chǔ)。本文MIG配置命令順序執(zhí)行,在一定程度上限制了數(shù)據(jù)訪問性能,在本文基礎(chǔ)上,可對(duì)MIG配置成命令亂序執(zhí)行,以優(yōu)化設(shè)計(jì);并且在本文基礎(chǔ)上,后續(xù)可采用DDR3-1600或者DDR4接口,充分發(fā)揮內(nèi)存接口性能的優(yōu)勢(shì),提升SSD的I/O訪問帶寬。
References)
[1] MICHAEL K, MILLER K W. Big data: new opportunities and new challenges[J].Computer, 2013,46(6):22-24.
[2] OUYANG J, LIN S, JIANG S, et al. SDF: Software-defined flash for Web-scale internet storage systems[J]. ACM SIGPLAN Notices, 2014, 49(4): 471-484.
[3] IHS homepage[EB/OL].[2016-05-20]. https://www.ihs.com/index.html.
[4] BAEK S H, PARK K W. A fully persistent and consistent read/write cache using flash-based general SSDs for desktop workloads[J]. Information Systems, 2016, 58: 24-42.
[5] LUO J, FAN L, CHEN Z, et al. A solid state drive architecture with memory card modules[J]. IEEE Transactions on Consumer Electronics, 2016, 62(1): 17-22.
[6] GALBRAITH R E, CLEVELAND L D, YU J, et al. Highly automated hardware and firmware RAID SoC design optimized for memory class storage devices[C]// Proceedings of the 2013 International SoC Design Conference. Piscataway, NJ: IEEE, 2013: 282-285.
[7] StorageAcceleration[EB/OL].[2016-05-20]. http://www.storageacceleration.com.
[8] OIKAWA S. Performance Impact of New Interface for Non-volatile Memory Storage[M]// Software Engineering Research, Management and Applications. Berlin: Springer, 2015: 1-13.
[9] 黃萬(wàn)偉. Xilinx FPGA應(yīng)用進(jìn)階[M]. 北京:電子工業(yè)出版社, 2014: 21-29.(HUANG W W. Advanced Xilinx FPGA Applications[M]. Beijing: Publishing House of Electronics Industry, 2014: 21-29.)
[10] BALAJI T, PALANISAMY Z V. Memory design considerations for DDR-3 SDRAM[J]. Asian Journal of Information Technology, 2007, 6(6): 720-725.
[11] SPECIFICATION D D R S. Revision of JESD79-3[S/OL].[2016-10-20].http://www.jedec.org/.
[12] LEE T, KIM D, PARK H, et al. FPGA-based prototyping systems for emerging memory technologies[C]// Proceedings of the 2014 25nd IEEE International Symposium on Rapid System Prototyping. Piscataway, NJ: IEEE, 2014: 115-120.
[13] CHEN C K, GUO W D, YU C H, et al. Signal integrity analysis of DDR3 high-speed memory module[C]// Proceedings of the 2008 Electrical Design of Advanced Packaging and Systems Symposium. Piscataway, NJ: IEEE, 2008: 101-104.
[14] LIN C S, TSAI Y C. System and method for processing booting failure of system: U.S. Patent 8296556[P]. 2012-10-23.
This work is partially supported by the National Natural Science Foundation of China (NSFC61433019, NSFC61432472).
TAN Haiqing, born in 1991, M.S. candidate. His research interests include memory controller, solid-state storage.
CHEN Zhengguo, born in 1991, Ph. D. candidate. His research interests include high performance storage, deduplication technology.
CHEN Wei, born in 1982, Ph. D., associate professor. Her research interests include high performance microprocessor, computer architecture.
XIAO Nong, born in 1969, Ph. D., professor. His research interests include high performance computing, large-scale network storage.
Design of DDR3 protocol parsing logic based on FPGA
TAN Haiqing1,2*, CHEN Zhengguo1,2, CHEN Wei1,2, XIAO Nong1,2
(1.CollegeofComputer,NationalUniversityofDefenseTechnology,ChangshaHunan410073,China;2.StateKeyLaboratoryofHighPerformanceComputing(NationalUniversityofDefenseTechnology),ChangshaHunan410073,China)
Since the new generation of flash-based SSD (Solid-State Drivers) use the DDR3 interface as its interface, SSD must communicate with memory controller correctly. FPGA (Field-Programmable Gate Array) was used to design the DDR3 protocol parsing logic. Firstly, the working principle of DDR3 was introduced to understand the controlling mechanism of memory controller. Next, the architecture of this interface parsing logic was designed, and the key technical points, including clock, writing leveling, delay controlling, interface synchronous controlling were designed by FPGA. Last, the validity and feasibility of the proposed design were proved by the modelsim simulation result and board level validation. In terms of performance, through the test of single data, continuous data and mixed read and write data, the bandwidth utilization of DDR3 interface is up to 77.81%. As the test result shows, the design of DDR3 parsing logic can improve the access performance of storage system.
Field-Programmable Gate Array (FPGA);Solid-State Driver (SSD);synchronous timing design; DDR3 interface
2016-07-15;
2016-11-30。 基金項(xiàng)目:國(guó)家自然科學(xué)基金資助項(xiàng)目(NSFC61433019, NSFC61472432)。
譚海清(1991—),男,湖南衡陽(yáng)人,碩士研究生,主要研究方向:內(nèi)存控制、固態(tài)存儲(chǔ); 陳正國(guó)(1991—),男,浙江溫州人,博士研究生,主要研究方向:高性能存儲(chǔ)、數(shù)據(jù)重刪; 陳微(1982—),女,江蘇蘇州人,副教授,博士,主要研究方向:高性能微處理器、計(jì)算機(jī)系統(tǒng)結(jié)構(gòu);肖儂(1969—),男,江西南昌人,教授,博士,CCF會(huì)員,主要研究方向:高性能計(jì)算、大規(guī)模網(wǎng)絡(luò)存儲(chǔ)。
1001-9081(2017)05-1223-06
10.11772/j.issn.1001-9081.2017.05.1223
TP391
A