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

?

一種多核處理器直連接口QoS的設(shè)計與驗證*

2021-05-11 01:35:36周宏偉潘國騰周海亮
計算機工程與科學(xué) 2021年4期
關(guān)鍵詞:鏈路層重傳傳輸層

羅 莉,周宏偉,周 理,潘國騰,周海亮,劉 彬

(1.國防科技大學(xué)計算機學(xué)院,湖南 長沙 410073;2.武警貴州省總隊,貴州 貴陽 550081)

1 引言

隨著大數(shù)據(jù)計算、數(shù)據(jù)中心和集成電路技術(shù)的飛速發(fā)展,多核處理器支持直連接口實現(xiàn)共享主存的對稱多處理器SMP(Symmetric MultiProcessing)系統(tǒng)已經(jīng)成為主流。直連接口負(fù)責(zé)實現(xiàn)處理器芯片間的直連,也可用于實現(xiàn)備份和冗余,提高系統(tǒng)容錯能力和性能。處理器之間直連接口設(shè)計不僅需要滿足低延遲、高帶寬,還必須滿足高可靠的服務(wù)質(zhì)量QoS(Quality of Service)保障。處理器直連接口提供的QoS保障,能夠?qū)崿F(xiàn)可靠、實時、完整和順序到達的數(shù)據(jù)傳輸。

本文提出了一種面向多核處理器的直連接口的QoS設(shè)計方案,接口采用信用機制設(shè)計避免了擁塞,利用虛通道技術(shù)、優(yōu)先級的仲裁調(diào)度策略避免了死鎖、擁塞的傳輸問題,同時,滑動窗口重傳協(xié)議維護了數(shù)據(jù)傳輸?shù)捻樞蛐院驼_性。模擬結(jié)果顯示,QoS設(shè)計的正確性,為多個處理器的直接互連提供了穩(wěn)定的魯棒性,移植到FPGA原型驗證平臺,順利通過了測試。目前,該芯片已成功流片。

2 相關(guān)工作

處理器直連接口能夠?qū)崿F(xiàn)處理器之間直接互連,國內(nèi)外市場上大多數(shù)高端服務(wù)器產(chǎn)品都支持多個處理器以直接互連的方式構(gòu)建多路服務(wù)器系統(tǒng)。

Intel公司[1]推出了一種高速、點到點的處理器間互連總線QPI(Quick Path Interconnect),集成于Intel的服務(wù)器處理器中。Intel Xeon E5系列和E7系列分別集成了2個和3個QPI總線接口,可實現(xiàn)多路處理器的直連。IBM公司[2]的p系列服務(wù)器采用IBM Power5+高性能處理器,通過處理器直連通道互連,最大支持32路處理器。AMD[3]的超傳輸HT(HyperTransport)總線,實現(xiàn)了一種高速、雙向、低延時、點對點的直連接口。NVIDIA的NVLink支持連接多個GPU。IBM公司[4]的Power9處理器通過NVLink可以直接與NVIDIA GPU互連,實現(xiàn)高性能計算(HPC)系統(tǒng)。

上述直連接口技術(shù)并不是通用協(xié)議,相關(guān)技術(shù)不開放,不能作為國產(chǎn)處理器的直連接口技術(shù)。為此,自主設(shè)計并實現(xiàn)芯片直連接口是不可避免的選擇,王錦涵等[5]將PCI-E的總線技術(shù)運用在國產(chǎn)處理器的片間直連中,可以實現(xiàn)自主可控的芯片直連接口,達到處理器直連的目的。周宏偉等[6]提出了一種面向多核微處理器的互連接口的設(shè)計方案,基于精簡的PCI-E 總線協(xié)議,采用高速串行數(shù)據(jù)傳輸技術(shù),支持Cache一致性報文和大塊數(shù)據(jù)傳輸報文,能夠用于實現(xiàn)4 路處理器的直接互連。王云霏等[7]針對國產(chǎn)服務(wù)器的處理器間互連的直連接口,為了降低片間通信帶寬需求,設(shè)計了一種基于Token 協(xié)議和目錄協(xié)議的混合一致性協(xié)議,目的是在帶寬資源受限系統(tǒng)中具有更好的系統(tǒng)性能。

本文旨在研究面向多核高性能微處理器的直連接口QoS設(shè)計,能夠?qū)崿F(xiàn)處理器直連通信可靠、實時、完整和順序到達的數(shù)據(jù)傳輸。

3 支持SMP的直連部件

對稱多處理器系統(tǒng)SMP中所有處理器共享一個統(tǒng)一的地址空間,具有相同的地址空間視圖。系統(tǒng)的分布式內(nèi)存和I/O資源為所有的處理器共享,易于構(gòu)建單一映像的操作系統(tǒng),并為上層應(yīng)用提供統(tǒng)一、高效的編程接口。

通過高速處理器互連接口,多個處理器可以方便地實現(xiàn)SMP系統(tǒng)。為了達到更高的帶寬,避免對共享資源的競爭,目前主流多處理器之間的連接鏈路普遍采用點到點的直連鏈路。如圖1所示,直接互連的處理器的數(shù)目最常見的是2~4個。

Figure 1 SMP system interconnected by direct connection interface圖1 通過直連接口互連的SMP系統(tǒng)

設(shè)計多個直連接口支持多個處理器芯片直連,也可用于實現(xiàn)備份和冗余,以提高系統(tǒng)容錯能力和性能。3個直連接口最多支持 4路處理器直連的拓?fù)浣Y(jié)構(gòu);2個處理器可以相互連接構(gòu)成2路直連的多處理器系統(tǒng),連接時可以使用1個直連接口,如圖1a所示的2路SMP系統(tǒng),也可以把3個直連接口都連接上,以提高傳輸帶寬和容錯能力;4個處理器則可以相互連接構(gòu)成 4 路多處理器系統(tǒng),如圖1b所示,當(dāng)部分處理器發(fā)生故障時,可以降級為 3 路或2 路多處理器系統(tǒng)。

在SMP互連體系結(jié)構(gòu)中,處理器互連接口一般分為多個層次,但與傳統(tǒng)的Internet 中使用的OSI 7 層協(xié)議[8]不同。傳統(tǒng)的OSI 7 層協(xié)議由于協(xié)議層次多,各層協(xié)議功能重復(fù)、復(fù)雜,處理器間的互連通常采用功能精簡、結(jié)構(gòu)合理的互連網(wǎng)絡(luò)協(xié)議,其協(xié)議主要包含了傳輸層、數(shù)據(jù)鏈路層和物理層。本文的研究目標(biāo)是面向多核處理器的直連接口,協(xié)議層次如圖2所示,包含應(yīng)用層(Application Layer)、傳輸層(Transport Layer)、數(shù)據(jù)鏈路層(Link Layer)和物理層(Physical Layer)。

Figure 2 Hierarchy of direct connection interface圖2 直連部件的層次結(jié)構(gòu)

應(yīng)用層在本文的處理器芯片中是片上網(wǎng)絡(luò)NoC(Network on Chip)接口,負(fù)責(zé)向直連部件發(fā)送NoC待傳輸?shù)膱笪模瑘笪念愋蛣澐譃檎埱?REQ)、響應(yīng)(RSP)、監(jiān)聽(SNP)和應(yīng)答(ACK)4類,并接收直連部件輸出的報文。

傳輸層接收應(yīng)用層的報文(Message),按照鏈路層需要的格式,將其轉(zhuǎn)換成鏈路層需要的數(shù)據(jù)序列(Data Sequence),并根據(jù)接收方和數(shù)據(jù)鏈路層的狀態(tài),將轉(zhuǎn)換好的數(shù)據(jù)序列發(fā)送給數(shù)據(jù)鏈路層。同時傳輸層接收數(shù)據(jù)鏈路層的數(shù)據(jù)序列,并將其轉(zhuǎn)換成應(yīng)用層需要的報文格式,緩沖后發(fā)送給應(yīng)用層。傳輸層結(jié)構(gòu)主要包括報文緩沖(Message Buffer)、四選一仲裁(Arbitration)、數(shù)據(jù)序列格式轉(zhuǎn)換(Data Sequence Format Convert)和信用控制(Credit Control)。

鏈路層接收傳輸層的數(shù)據(jù)序列,將其轉(zhuǎn)換成適合鏈路傳輸?shù)奈?Packet)格式,并根據(jù)鏈路管理(Link Management)狀態(tài),將微包發(fā)送到物理層。鏈路層同時接收物理層的微包,并將其轉(zhuǎn)換成傳輸層需要的數(shù)據(jù)序列。鏈路層還具有微包的CRC校驗和出錯重傳等功能。鏈路層結(jié)構(gòu)主要包括微包打包(Packing Packet)、微包解包(Unpacking Packet)、微包管理(Packet Management)、鏈路管理(Link Management)、重傳緩沖(Retry Buffer)和二選一開關(guān)(MUX)。

物理層將微包轉(zhuǎn)換成串行的碼流,通過SERDES(串行/解串)發(fā)送和接收。SERDES技術(shù)因其傳輸速率高、抗干擾能力強等優(yōu)點已成為主流的高速接口物理層規(guī)范。

4 直連部件的QoS設(shè)計

通過高速處理器互連接口實現(xiàn)SMP系統(tǒng),用于未來的高性能計算機和數(shù)據(jù)中心,直連接口必須提供處理器之間低延遲、高帶寬和高可靠的QoS保障。

所謂服務(wù)質(zhì)量(QoS)是指網(wǎng)絡(luò)在傳輸數(shù)據(jù)流時要滿足的一系列服務(wù)請求,如Internet僅提供盡力而為(Best Effort Service)的傳輸服務(wù),盡力發(fā)送的機制對報文傳輸時的可靠性、實時性、完整性、到達的順序性,以及傳輸?shù)臅r延無法提供任何保證。盡力而為不能達到直連接口的QoS要求,處理器之間建立的直連傳輸鏈路,不僅需要提高數(shù)據(jù)的吞吐率,還必須提供保障服務(wù),避免死鎖和擁塞,保障數(shù)據(jù)的完整性和到達的順序性。

為解決互連傳輸擁塞,本文采用了基于信用的流控機制。相比傳統(tǒng)的空、滿溢出流控方式,采用基于信用的流控能精確判斷流量,同時利于后端實現(xiàn)。

處理器互連接口的輸出都是點到點傳輸,分時共享鏈路傳輸?shù)莫氄假Y源。為了避免事務(wù)之間相互依賴而導(dǎo)致的死鎖,本文設(shè)計了基于事務(wù)類型的4個虛通道、固定優(yōu)先級的仲裁調(diào)度,同時采用等待時間控制“饑餓”狀態(tài),有效提供了QoS保障。

鏈路層通信的QoS要求傳輸具有可靠性和完整性,本文利用滑動窗口重傳協(xié)議實現(xiàn)無差錯的鏈路層通信;利用CRC校驗技術(shù)檢測錯誤,自動地對丟失的微包、錯誤微包請求重發(fā)。

4.1 接口信用機制設(shè)計

解決網(wǎng)絡(luò)擁塞的辦法通常是采用流量許可控制,當(dāng)接收一個新的數(shù)據(jù)流時許可承諾是有效的,如果一個新的數(shù)據(jù)流所請求的網(wǎng)絡(luò)資源超出可用網(wǎng)絡(luò)資源,許可承諾會被置為無效。

為確保直連部件協(xié)議層次間發(fā)送/接收報文的順利進行,需要確保發(fā)送方在發(fā)送報文時接收方有足夠的空間接收報文,發(fā)送方和接收方必須有一個有效的流控機制,以協(xié)調(diào)報文的發(fā)送和接收。

本文在協(xié)議層次輸入端口和輸出端口上均設(shè)計了報文緩沖區(qū),為保證緩沖區(qū)不發(fā)生上溢和下溢,必須對進入緩沖區(qū)的報文進行流控。 傳統(tǒng)的緩沖區(qū)流控策略是使用緩沖區(qū)的空信號和滿信號來判斷緩沖區(qū)是否發(fā)生上溢和下溢,本文采用基于信用的流控,精確控制流量,較好地避免了擁塞。

圖3所示是直連部件支持的通用接口信用機制。圖3中Sender是發(fā)送方,Receiver是接收方,在數(shù)據(jù)的源端維護一個信用計數(shù)器,初始值設(shè)置為緩沖區(qū)深度,當(dāng)數(shù)據(jù)源發(fā)出一個微報信號Send,信用減1;當(dāng)緩沖區(qū)中消耗 1 個微包時,釋放 1 個信用,當(dāng)信用釋放信號Release到達數(shù)據(jù)源端時,信用計數(shù)器加 1。Sender在發(fā)送報文時,每個時鐘周期都可以將Packet傳輸給接收方,接收方有一個輸入緩沖區(qū),這個緩沖區(qū)能夠緩沖N個Packet,只要接收緩沖區(qū)有足夠的空間,發(fā)送方就直接發(fā)送新的Packet給接收方,發(fā)送方通過一個信用計數(shù)器(Credit Counter)來確認(rèn)是否可以發(fā)送Packet給接收方。

Figure 3 Universal credit mechanism for direct connection interface圖3 直連部件的通用接口信用機制

初始時,信用計數(shù)器的值等于接收方緩沖器的深度,發(fā)送方在發(fā)送Packet前必須檢查信用計數(shù)器的值,只要信用計數(shù)器的值大于0,發(fā)送方就可以發(fā)送Packet,每發(fā)送一個Packet,發(fā)送方就將信用計數(shù)器的值減1。接收方會將收到的Packet緩存在接收緩沖區(qū)中,同時接收方的內(nèi)部處理邏輯也會不斷消耗處理緩沖區(qū)中的數(shù)據(jù),接收方每消耗掉緩沖區(qū)的一個Packet,就會通過Release信號向發(fā)送方發(fā)送一個脈沖信號,發(fā)送方收到Release脈沖,就將信用計數(shù)器的值加1。

這種信用機制應(yīng)用于直連部件的每個層次接口,如應(yīng)用層與傳輸層接口、傳輸層與數(shù)據(jù)鏈路層接口、數(shù)據(jù)鏈路層與物理層的接口。

相比傳統(tǒng)的緩沖區(qū)空滿的流控策略,信用流控可以不必考慮數(shù)據(jù)源端和緩沖區(qū)端之間的距離,二者之間可以任意增加中繼,非常有利于芯片物理實現(xiàn)的后端設(shè)計。

4.2 傳輸層的QoS設(shè)計

傳輸層將接收的應(yīng)用層報文,按照鏈路層需要的格式,轉(zhuǎn)換成鏈路層需要的數(shù)據(jù)序列,并根據(jù)接收方和數(shù)據(jù)鏈路層的狀態(tài),將轉(zhuǎn)換后的數(shù)據(jù)序列發(fā)送給數(shù)據(jù)鏈路層。傳輸層還接收數(shù)據(jù)鏈路層的數(shù)據(jù)序列,并將其轉(zhuǎn)換成應(yīng)用層需要的報文格式,緩沖后發(fā)送給應(yīng)用層。

應(yīng)用層的報文與片上網(wǎng)絡(luò)的報文格式一致。多核處理器Cache一致性協(xié)議和片上互連結(jié)構(gòu)采用了緊耦合設(shè)計,片上互連網(wǎng)絡(luò)連接了主存、Cache、核和I/O設(shè)備等,Cache一致性消息通過片上網(wǎng)絡(luò)報文進行傳輸,片上網(wǎng)絡(luò)的報文可劃分為請求、監(jiān)聽請求、監(jiān)聽?wèi)?yīng)答和讀寫響應(yīng)4種類型。

進入鏈路層的各類事務(wù)必須分時共享鏈路傳輸?shù)莫氄假Y源,因此不可避免地會將各類事務(wù)統(tǒng)一排隊處理。為了避免死鎖,傳輸層與應(yīng)用層之間采用虛通道方式,虛通道是一種避免網(wǎng)絡(luò)死鎖的常用技術(shù)。

傳輸層與應(yīng)用層的傳輸數(shù)據(jù)根據(jù)傳輸?shù)膱笪念愋?,定義4個虛通道:請求(REQ)通道、響應(yīng)(RSP)通道、監(jiān)聽(SNP)通道和應(yīng)答(ACK)通道。虛通道設(shè)計避免了不同類型的事務(wù)混合在一起互相等待,若一個虛通道被阻塞,則其他的虛通道還能繼續(xù)通向輸出端口,最大限度地減少了由于事務(wù)之間相互依賴而導(dǎo)致的死鎖。

分時共享鏈路傳輸?shù)莫氄假Y源,為了避免因為事務(wù)之間相互依賴而導(dǎo)致的死鎖,本文設(shè)計了固定優(yōu)先級的仲裁調(diào)度,根據(jù)優(yōu)先級選擇調(diào)度哪一個虛通道占用鏈路層傳輸。一個Cache事務(wù)的生命周期通常是{請求,響應(yīng)}、{請求,監(jiān)聽請求,監(jiān)聽響應(yīng),響應(yīng)}、{請求,監(jiān)聽請求,監(jiān)聽請求,…,監(jiān)聽請求,監(jiān)聽響應(yīng),…,監(jiān)聽響應(yīng),響應(yīng)}的事務(wù)序列,優(yōu)先級最高的是響應(yīng)通道,其次是監(jiān)聽響應(yīng)、監(jiān)聽請求和請求通道?;趦?yōu)先級調(diào)度的仲裁方式保障了響應(yīng)事務(wù)、監(jiān)聽響應(yīng)事務(wù)及時得到處理。

當(dāng)出現(xiàn)連續(xù)不斷的、穩(wěn)定的監(jiān)聽響應(yīng)、響應(yīng)傳輸時,可能會導(dǎo)致監(jiān)聽請求或者請求通道得不到仲裁調(diào)度,從而出現(xiàn) “饑餓”現(xiàn)象。傳輸層的仲裁選擇調(diào)度采用固定優(yōu)先級設(shè)置,通道的“饑餓”現(xiàn)象同樣存在,為了避免這種情況,監(jiān)聽通道請求和請求通道都設(shè)置等待計時器,若監(jiān)聽請求通道或者請求通道的報文等待時間大于門限設(shè)置時間,優(yōu)先級調(diào)整為最高,仲裁調(diào)度器會選中該通道報文輸入鏈路層。

傳輸層采用虛通道技術(shù)、基于優(yōu)先級的仲裁調(diào)度策略避免了死鎖,同時利用等待時間控制饑餓狀態(tài),有效提供了QoS的保障。

4.3 數(shù)據(jù)鏈路層的QoS設(shè)計

鏈路層將接收的傳輸層數(shù)據(jù)序列轉(zhuǎn)換成適合鏈路傳輸?shù)奈?Packet)格式,并根據(jù)鏈路管理(Link Management)狀態(tài),將微包發(fā)送到物理層。同時將接收的物理層微包轉(zhuǎn)換格式后輸入到傳輸層。

鏈路層傳輸?shù)男畔挝皇俏?,是芯片間鏈路傳輸層的信息傳輸、校驗、重傳、流控的最小單位,微包的類型分為報文微包和管理微包,管理微包有鏈路初始化微包、鏈路初始化響應(yīng)微包和空微包??瘴擎溌房臻e時發(fā)出的微包,攜帶了滑窗的序列號。鏈路層通信的QoS要求每個微包傳輸具有可靠性和完整性,本文利用滑動窗口重傳協(xié)議實現(xiàn)無差錯的鏈路層通信;采用CRC校驗技術(shù)檢測錯誤,自動地對錯誤微包請求重發(fā)。

鏈路層通信遇到數(shù)據(jù)傳輸或者接收錯誤時,需要進行重傳,重傳協(xié)議為滑動窗口重傳協(xié)議(Sliding Window Retry Protocol),滑動窗口機制在重傳協(xié)議中維護了發(fā)送和接收2個窗口。發(fā)送窗口實際上是維護重傳緩沖區(qū)的讀寫控制和發(fā)送方序列號,而接收窗口實際上是維護接收方的序列號。

Figure 4 Calibration mechanism of frequency skew圖4 頻率偏斜校準(zhǔn)機制

接收窗口的大小設(shè)計為1,可以順序接收發(fā)送方發(fā)出的報文,任何序列號不等于接收窗口所對應(yīng)序列號的報文都會被丟棄。接收窗口保障了接收報文的順序正確性和無重復(fù)的報文序列。

CRC循環(huán)冗余校驗碼簡稱循環(huán)冗余碼,是一種檢錯概率高且易于硬件實現(xiàn)的檢錯碼。為了保證報文傳輸過程的正確性,發(fā)送方在將要發(fā)送的微包上附加一個CRC校驗碼,接收方則根據(jù)CRC校錯碼對微包進行差錯檢測,若發(fā)現(xiàn)錯誤,就返回請求重發(fā)的應(yīng)答,發(fā)送方收到請求重發(fā)的應(yīng)答后,便重新傳輸該微包。本文使用滑動窗口機制,高效地實現(xiàn)了重傳協(xié)議中的重傳緩沖區(qū)和收發(fā)序列號管理。

數(shù)據(jù)鏈路層實現(xiàn)的滑動窗口重傳協(xié)議解決了數(shù)據(jù)傳輸?shù)某鲥e、丟失、亂序和重復(fù)問題,CRC校驗檢查傳輸數(shù)據(jù)的正確性,如果出錯自動發(fā)起重傳,保障了鏈路層每個微包傳輸?shù)目煽啃院屯暾浴?/p>

4.4 物理層的QoS設(shè)計

物理層包括物理編碼子層PCS(Physical Coding Sublayer)和物理媒介適配層PMA(Physical Media Attachment)。其中PCS為數(shù)字電路,PMA也可以被稱為串并轉(zhuǎn)換電路(SERDES)。PCS基于64 B/66 B編碼技術(shù)、擾碼傳輸技術(shù)和頻率偏斜校準(zhǔn)機制,物理層傳輸速度可以達到 25 Gbps。

圖4所示是PCS子層頻率偏斜校準(zhǔn)機制,是頻率補償與延遲修正合二為一的校準(zhǔn)機制。PCS子層的每個通道(Lane)有一套獨立的數(shù)據(jù)棧(Stack)。數(shù)據(jù)棧具有彈性緩沖的功能,用于調(diào)節(jié)每個Lane從PMA層恢復(fù)出來的時鐘(pma_rcvr_clk_in_lane[i])和PCS子層的時鐘clk_ref之間的時鐘頻率偏差;數(shù)據(jù)棧也可作為糾正Lane與Lane之間傳輸延遲偏斜的緩沖器使用。將彈性緩沖和延遲糾正緩沖合二為一,能夠降低PCS層的物理資源需求,減小物理層的面積。

直連接口的設(shè)計包括應(yīng)用層、傳輸層、數(shù)據(jù)鏈路層和物理層的PCS子層,本文利用S2C公司的VU440開發(fā)板,實現(xiàn)了FPGA原型驗證平臺,限于篇幅,在此不做詳述。

4.5 模擬平臺和功能驗證

針對本文研發(fā)的面向多核處理器的直連接口,功能驗證平臺開發(fā)了測試單部件回環(huán)、雙部件互連的軟模擬驗證環(huán)境,通過功能點測試,保障了QoS設(shè)計的正確性。功能驗證平臺是基于UVM(Universal Verification Methodology)[9]方法學(xué)實現(xiàn)的驗證平臺,UVM是一個通用的驗證方法學(xué),UVM的一個關(guān)鍵特性就是開發(fā)了一系列可重用的驗證組件UVC(UVM Verification Components)。UVM以systemVerilog語言為基礎(chǔ),已經(jīng)成為業(yè)界標(biāo)準(zhǔn),目前3大EDA廠商的工具都支持UVM。

單部件回環(huán)驗證環(huán)境結(jié)構(gòu)如圖5所示,該環(huán)境重點測試了錯誤注入、模擬通路傳輸錯誤和通路延遲,激發(fā)鏈路層重傳相關(guān)操作。DUT(Device Under Test)是本文研發(fā)的面向多核處理器的直連接口部件,phy_monitor是用于檢查物理層接口協(xié)議的檢查器。

Figure 5 Loop back verification environment for one DUT component圖5 單部件回環(huán)驗證環(huán)境

testcase是測試用例集,DVB_config、NoC_config和phy_config定義了約束化的隨機方式。env是UVM驗證方法學(xué)中引入的一個容器類,當(dāng)調(diào)用 run_test 函數(shù)時,可以傳遞參數(shù)給env容器類,使得 UVM 能夠自動地創(chuàng)建組件實例,大大減少了代碼的冗余。env主要包含sequence、driver、monitor和scoreboard等組件,sequence組件的主要功能是用于產(chǎn)生各種激勵;sequencer組件主要是將sequence產(chǎn)生的激勵和各種transaction類傳遞給驅(qū)動器driver。驗證平臺實現(xiàn)了基于env實例化的NoC_ENV、REG_ENV和PHY_ENV,是模擬NoC行為、寄存器配置和物理層接口的功能。

NoC_ENV.driver模擬NoC的BFM(Bus Function Model)行為,是時鐘精確的NoC模型,實現(xiàn)了NoC片上網(wǎng)絡(luò)4類報文數(shù)據(jù)的隨機發(fā)送。

REG_ENV.driver模擬了寄存器配置的BFM行為,例如配置重傳超時計數(shù)器上限值、最大連續(xù)重傳次數(shù)上限值和達到max_retry_counter后鏈路是否復(fù)位等。

PHY_ENV.driver模擬了物理層接口的BFM行為。

scoreboard負(fù)責(zé)對仿真運行結(jié)果進行自動比對,對比對結(jié)果進行分類匯總,提供完整的錯誤信息并控制仿真器在出錯時的運行狀態(tài),即停頓等待、關(guān)閉終止還是繼續(xù)運行。

monitor檢查寄存器配置的正確性,Tx_monitor和Rx_monitor除了監(jiān)控DUT的輸入輸出,還完成了覆蓋率統(tǒng)計收集,phy_monitor是物理層協(xié)議的檢查器。

當(dāng)有多個sequence需要按一定次序發(fā)送transaction給對應(yīng)的sequencer時,使用Virtual Sequencer來進行調(diào)度。

圖6所示是2個直連部件連接的驗證環(huán)境,重點測試微包正確打包、解包功能、鏈路管理功能和重傳協(xié)議功能。

直連部件的驗證功能點如表1所示,測試寄存器配置、NoC報文傳輸、NoC報文壓力、注錯、鏈路管理、物理層接口檢查的功能正確性。本文采用受約束隨機產(chǎn)生激勵和定向激勵的驗證策略,發(fā)現(xiàn)了設(shè)計中較多缺陷,其中敏化了多個高質(zhì)量的滑動窗口重傳協(xié)議的設(shè)計缺陷。NoC報文壓力測試和注錯測試重點驗證直連部件的QoS設(shè)計,測試1 000萬個NoC報文傳輸,擁塞和餓死場景沒有發(fā)生。注錯測試是在鏈路傳輸數(shù)據(jù)中注入錯誤,例如微包初始化錯誤、微包序號錯誤、空報文錯誤、微包的凈荷數(shù)據(jù)植入一位錯,都能引起正確重傳。

Table 1 Verification function points of direct connection interface

Figure 6 Verification environment for two DUT components圖6 2個直連部件連接的驗證環(huán)境

直連部件的延遲性能如圖7所示,直連部件主頻設(shè)計為1.5 GHz,在傳輸層和數(shù)據(jù)鏈路層信用都有效情況下,傳輸層和數(shù)據(jù)鏈路層的延遲為7.5 ns;在傳輸層和數(shù)據(jù)鏈路層信用無效的情況下,延遲為15 ns;當(dāng)鏈路傳輸數(shù)據(jù)中注入錯誤產(chǎn)生了重傳時,延遲為21 ns。物理層PCS子層時鐘相位偏移45°、90°、180°時,直連部件都可以正常工作;物理層PCS子層輸出的的各個通道(Lane)之間偏移延遲(skew)允許最多5個PCS子層時鐘周期,直連部件可以正常工作。直連部件通過軟模擬功能驗證后,移植到FPGA原型驗證平臺測試,達到了預(yù)期目標(biāo)。目前,該芯片已成功流片。

Figure 7 Latency performance of direct interface圖7 直連部件延遲性能

5 結(jié)束語

本文主要研究高性能處理器直連接口的QoS設(shè)計,通過直連接口實現(xiàn)跨芯片的一致性報文有效、可靠傳輸。本文詳細(xì)闡述了直連接口各個協(xié)議層QoS設(shè)計的關(guān)鍵技術(shù),基于UVM方法學(xué)構(gòu)建了單部件和雙部件驗證平臺,模擬驗證了QoS設(shè)計的正確性,移植到FPGA原型驗證平臺,順利通過了測試。實現(xiàn)處理器芯片直連,是提升高性能多路服務(wù)器的主流方向,具有良好的應(yīng)用和研究前景。

猜你喜歡
鏈路層重傳傳輸層
基于多空間內(nèi)存共享的數(shù)據(jù)鏈路層網(wǎng)絡(luò)包捕獲方法
基于Python語言的網(wǎng)絡(luò)傳輸層UDP協(xié)議攻擊性行為研究
ZnO電子傳輸層在有機無機雜化鈣鈦礦太陽能電池中的應(yīng)用
面向異構(gòu)網(wǎng)絡(luò)的多路徑數(shù)據(jù)重傳研究?
物聯(lián)網(wǎng)無線通信傳輸層動態(tài)通道保障機制
基于物聯(lián)網(wǎng)GIS的消防智能巡檢系統(tǒng)設(shè)計與實現(xiàn)
基于FPGA全功能MVB網(wǎng)絡(luò)從設(shè)備鏈路層IP核設(shè)計
數(shù)據(jù)鏈路層的選擇重傳協(xié)議的優(yōu)化改進
IEEE 1394事務(wù)層接口的設(shè)計與實現(xiàn)
MPTCP中一種減緩緩存阻塞的重傳策略
大姚县| 开鲁县| 六盘水市| 长顺县| 德保县| 望江县| 中卫市| 平利县| 木兰县| 黄龙县| 新干县| 威信县| 山西省| 盘锦市| 邻水| 长武县| 新晃| 基隆市| 冷水江市| 新龙县| 板桥市| 黔东| 班玛县| 大邑县| 天门市| 漯河市| 台州市| 义乌市| 阜新市| 古交市| 佛冈县| 中方县| 昌平区| 安多县| 新巴尔虎左旗| 蓬莱市| 中宁县| 秦皇岛市| 平顺县| 克什克腾旗| 长葛市|