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

?

基于國產(chǎn)處理器直連接口的設(shè)計與驗證?

2019-11-29 05:13:52王錦涵班冬松
計算機與數(shù)字工程 2019年11期
關(guān)鍵詞:鏈路層物理層接收端

王錦涵 李 研 班冬松 陶 濤

(上海高性能集成電路設(shè)計中心 上海 201204)

1 引言

共享多路服務(wù)器的片間直連技術(shù)是服務(wù)器芯片設(shè)計中的重要組成部分,也是提升服務(wù)器芯片性能的一項關(guān)鍵技術(shù)[1]。在現(xiàn)有技術(shù)中,PCIe 協(xié)議具有應(yīng)用范圍廣、傳輸帶寬搞、較為成熟等優(yōu)點,因此,可以基于PCIe 協(xié)議實現(xiàn)國產(chǎn)處理器芯片的片間直連功能。通過研究一些直連技術(shù)的結(jié)構(gòu)和PCIe 的具體實現(xiàn)方式,結(jié)合芯片直連的功能需求,將PCIe 的總線技術(shù)運用在處理器片間直連當(dāng)中,可以實現(xiàn)自主可控的芯片直連接口,達(dá)到處理器直連的目的。

PCIe總線歷經(jīng)多代發(fā)展完善,目前有著高度靈活可配置的特性和比較完整的體系結(jié)構(gòu)。從分層協(xié)議的角度來看,PCIe由處理層、數(shù)據(jù)鏈路層、物理層這幾個部分組成。另外,PCIe協(xié)議針對不同的設(shè)備在接口上的不同需求,重新設(shè)計與PCIe 核心的接口,可以將PCIe 的核心功能運用到各種各樣的計算機或通信系統(tǒng)平臺中去。除此之外,PCIe還明確定義了協(xié)議相關(guān)的報文格式,在每一個協(xié)議層里都根據(jù)了不同的實現(xiàn)需求定義了一種包含關(guān)系的報文格式。

本文在跨芯片一致性協(xié)議已經(jīng)完備的基礎(chǔ)下提出了一種基于PCIe 實現(xiàn)的直連接口協(xié)議,該協(xié)議在功能劃分上實現(xiàn)了處理層、數(shù)據(jù)鏈路層和物理層。同時,為了滿足功能正確性的要求,本文提出了一種基于UVM 的直連接口驗證環(huán)境。根據(jù)直連接口的接口協(xié)議,發(fā)送了一系列的報文來驗證傳輸?shù)恼_性,并針對實際傳輸?shù)淖枞?、延時等情況,環(huán)境可以驅(qū)動特殊的激勵輸入給直連接口電路進行功能驗證。

2 PCIe協(xié)議簡介

PCIe(Peripheral Component Interconnect express)是用于互連計算機或一些通信平臺應(yīng)用中外圍設(shè)備的高性能IO 總線。相較于其他總線,PCIe有著廣泛的應(yīng)用場景、完整的協(xié)議體系、帶寬高等優(yōu)點[2]。本文在PCIe 協(xié)議的基礎(chǔ)上提出了一種直連接口,因此,對PCIe 協(xié)議的處理層、數(shù)據(jù)鏈路層和物理層進行簡要的介紹。

2.1 處理層

處理層處在PCIe 協(xié)議的最高層次,處理層的功能是接受設(shè)備核心層的數(shù)據(jù),并對其進行轉(zhuǎn)換處理,使其符合總線事務(wù)的相關(guān)標(biāo)準(zhǔn)。數(shù)據(jù)經(jīng)過處理層后,會被封裝為一個或多個處理層數(shù)據(jù)包(TLP,Transaction Layer packet)。TLP的組成如圖1所示,包含了數(shù)據(jù)的有效載荷大小、事務(wù)類型、目標(biāo)的起始地址、虛通道/流量類別信息、傳輸屬性。這些信息可以很好地確保數(shù)據(jù)在到達(dá)接收端之后,接收邏輯來判斷收到的報文的格式類型和路由信息。頭信息的控制域很多,每一種都支持不同的功能。事務(wù)層最主要的功能就是實現(xiàn)包的封裝和拆解。對于不同的應(yīng)用場景,不同的TLP頭信息配置可以支持非常多的功能[3]。

圖1 通用TLP頭格式

2.2 數(shù)據(jù)鏈路層

數(shù)據(jù)鏈路層用來連接物理層和處理層,主要作用是將從物理層獲得的報文數(shù)據(jù)傳送給事務(wù)層,同時接收事務(wù)層的報文數(shù)據(jù)并轉(zhuǎn)發(fā)給物理層,另外,數(shù)據(jù)鏈路層有另外一個重要的功能是保證TLP 報文在鏈路傳輸過程中的正確性。為此,數(shù)據(jù)鏈路層定義了如圖2 所示的數(shù)據(jù)鏈路層數(shù)據(jù)包(DLLP)。數(shù)據(jù)鏈路層會生成DLLP 數(shù)據(jù)包并對外發(fā)送,同時也會接收對端發(fā)來的DLLP 數(shù)據(jù)包,通過DLLP 數(shù)據(jù)包,數(shù)據(jù)鏈路層可以保證鏈路中TLP報文的正確性。

圖2 一般DLLP報文頭格式

數(shù)據(jù)鏈路層在保證報文正確性時,采用了Ack/Nak 協(xié)議,如圖2 所示。Ack/Nak 協(xié)議是一種滑動窗口協(xié)議,分為發(fā)送端和接收端。發(fā)送端中設(shè)置了一個重傳緩沖,在接收到來自事務(wù)層的TLP 時,發(fā)送邏輯會先將TLP 進行封裝,加上序列號前綴和LCRC 后綴,然后放到重傳緩沖中。只要重傳緩沖不滿,發(fā)送端會一直從事務(wù)層提取報文出來。序列號是由發(fā)送端的計數(shù)器實現(xiàn)的,每發(fā)一個TLP 報文,計數(shù)器進行加一操作,對應(yīng)的接收端也有一個計數(shù)器,接收端的這個計數(shù)器記錄即將收到的報文的序列號,在正常的情況下,接收端收到的TLP 的序列號應(yīng)該與發(fā)送端的序列號相同。接收端在正確接收了TLP報文之后,也會將自己的計數(shù)器進行加一操作。報文傳輸?shù)搅私邮斩藭r,接收端首先會對報文進行CRC 校驗。校驗正確的報文才可進入后續(xù)操作,否則直接丟棄,并返回Nak。報文校驗正確之后,接收邏輯會對比報文中的序列號與本地的計數(shù)器是否相同,如果相同則認(rèn)為是正確的報文,并返回Ack 給發(fā)送端確認(rèn)報文已經(jīng)正確接收。如果收到的報文的序列號大于本地的計數(shù)器的值,代表報文在傳輸?shù)倪^程中出現(xiàn)了丟失報文的情況,如果收到的報文的序列號小于本地計數(shù)器的值,代表鏈路在傳輸?shù)倪^程中發(fā)生了重復(fù)傳輸已經(jīng)正確接收的報文的情況。這兩種不正確的情況下就需要返回Nak 來使得接收端開啟重傳邏輯。接收端在返回Ack/Nak 時,會有一個域帶著接收端最后一次成功接收的報文的序列號,發(fā)送端的接收邏輯在收到這個DLLP報文后會根據(jù)這個域的值來控制重傳緩沖從哪個條目來發(fā)送之前沒有正確接收的數(shù)據(jù)。同時,發(fā)送端也根據(jù)本地序列號計數(shù)器的值與最后一次成功接收的報文號的值做比較,如果差值比較大,發(fā)送端將不會從事務(wù)層中接收新的TLP,因為發(fā)送端發(fā)送了很多的TLP 而接收端并沒有成功收到這些TLP或者收到的數(shù)目很少,數(shù)據(jù)在鏈路上的傳輸可能出現(xiàn)了問題。

2.3 物理層

圖3 Ack/Nak協(xié)議原理圖

PCIe 協(xié)議的物理層包括邏輯物理層和電氣物理層[4]。邏輯物理層是PCIe物理層的數(shù)字部分,在將一個數(shù)據(jù)鏈路層發(fā)來的數(shù)據(jù)包差動輸出到鏈路上之前,需要對數(shù)據(jù)包進行處理。如圖4 左側(cè)部分所示,接收部分如圖4右側(cè)部分所示。

圖4 物理層相關(guān)邏輯

電氣物理層包括一個負(fù)責(zé)驅(qū)動發(fā)送器中的串行器的鎖相環(huán),還有一個與接收端收到的串行符號流轉(zhuǎn)換保持同步的接收器鎖相環(huán)。電氣物理層的主要任務(wù)是將每條通道的輸出符號串行化,并將比特流轉(zhuǎn)化成嵌入了時鐘的電氣信號。同時,檢測每條通道上的電氣信號并生成串行比特流數(shù)據(jù),反串行化數(shù)據(jù)并將從特流數(shù)據(jù)恢復(fù)出的時鐘提供到邏輯物理層。電氣物理層可以根據(jù)不同的應(yīng)用場景重新設(shè)計,以便支持電纜或光纖接口。

3 國產(chǎn)處理器直連接口設(shè)計

實現(xiàn)芯片直連可以將單個芯片層次化存儲結(jié)構(gòu)連接形成一個更為復(fù)雜的共享存儲結(jié)構(gòu),實現(xiàn)主存容量、訪存帶寬,IO 帶寬的提升,提高處理器的性能。其中,芯片直連接口模塊是實現(xiàn)芯片直連的基礎(chǔ)。本文基于PCIe 協(xié)議并結(jié)合某品牌國產(chǎn)處理器直連的相關(guān)需求,提出了一種基于PCIe 的芯片直連接口結(jié)構(gòu)[5~6]。

對于芯片直連而言,傳輸?shù)氖聞?wù)只有固定的六類,但是在傳輸延時方面,芯片直連比PCIe 更敏感。因此,在設(shè)計芯片直連模塊時,針對傳輸延時進行了必要的優(yōu)化,使得整個直連模塊的延時滿足設(shè)計要求。下面,本文將對直連接口模塊進行較為詳細(xì)的介紹。

圖5 直連接口模塊設(shè)計構(gòu)成

直連接口模塊的總體結(jié)構(gòu)如圖5 所示,主要由Tx_APL、Tx_DLL、AckNak、FC_CTL、Rx_RLL、Rx_APL 和PHY 這七個部分組成,下面將對每個模塊的具體功能進行簡要的介紹。

Tx_APL 模塊類似于PCIe 協(xié)議發(fā)送端的處理層,它的作用是對接受到的數(shù)據(jù)包進行處理,將其變成符合相應(yīng)格式的一個或多個TLP 報文,同時,對上述TLP報文進行分類,并按照類型進行發(fā)送控制。

Tx_DLL 模塊類似于PCIe 協(xié)議發(fā)送端的數(shù)據(jù)鏈路層,它的作用是對收到的TLP報文進行相關(guān)處理,在TLP 報文的特定位置加上響應(yīng)的標(biāo)志,用來提供正確性判斷的依據(jù)。同時,Tx_DLL 模塊還會對TLP 報文進行CRC 校驗,生成校驗碼,并將其附加在TLP 報文上,最終將處理后的TLP 報文發(fā)送給PHY模塊。

PHY 模塊類似于PCIe 協(xié)議中的物理層,由于PCIe協(xié)議在物理層接受通路的延時很長,不利于夸芯片傳輸事務(wù),因此這部分進行了改進,重點對物理編碼子層PCS的邏輯設(shè)計進行了相應(yīng)的優(yōu)化,使其滿足了芯片間傳輸?shù)臅r序要求。

AckNak 模塊的作用是確保傳輸過程中的正確性,該模塊會對收到的TLP 報文進行校驗,如果校驗通過,則允許報文進入后續(xù)處理流程,同時生成DLLP 報文進行確認(rèn)(Ack 報文);而如果校驗不通過,則立即丟棄該TLP報文,并生成相應(yīng)的DLLP報文要求進行重發(fā)(Nak 報文),另一端的芯片如果收到Nak報文,則會立即進入重發(fā)狀態(tài)。

FC_CTL模塊的作用是對直連模塊進行流量控制,該模塊會生成流量控制的DLLP報文并發(fā)送,另一端的芯片收到流量控制的DLLP報文后能夠知道該芯片目前的狀態(tài)信息,并根據(jù)上述信息對將要發(fā)送的TLP報文進行管理。

Rx_DLL 狀態(tài)的作用是對收到的報文進行分類,將不同的報文送到不同的模塊。

Rx_APL 的作用是接收Rx_DLL 傳來的TLP 報文,按照TLP 報文的事務(wù)類型進行分類,同時根據(jù)報文的類型對TLP報文進行發(fā)送控制。

4 直連接口模塊Mac功能驗證

4.1 驗證環(huán)境結(jié)構(gòu)

從集成電路設(shè)計流程來說,前端設(shè)計與驗證是彼此交互的過程,驗證是設(shè)計的保障。在設(shè)計的初版代碼完成之后,需要使用編譯工具結(jié)合設(shè)計代碼和驗證環(huán)境的代碼,進行功能模擬驗證。驗證環(huán)境會根據(jù)待測設(shè)計的接口協(xié)議去發(fā)送一些正確的激勵,然后驗證環(huán)境會接收待測設(shè)計輸出的數(shù)據(jù),并與待測設(shè)計的期望值來比較,進行功能驗證。驗證的流程和周期很長,也是前端設(shè)計中十分重要的部分??紤]到工程進度和實現(xiàn)的難度及可能性,針對直連接口電路的MAC 層進行了功能驗證,本文介紹了基于UVM 的MAC 驗證環(huán)境的結(jié)構(gòu)框架和各個部件的具體實現(xiàn)功能,并分析了驗證結(jié)果[7]。

對于MAC 這樣的控制模塊,傳輸數(shù)據(jù)作為最主要的功能,考慮到功能性驗證在對數(shù)據(jù)流類的邏輯進行驗證的過程中,不能很好地驗證到各種復(fù)雜的場景,同時驗證的代碼對一些極端情況編寫也存在難度,不能很高效地滿足工程應(yīng)用的需求。為此,采用UVM 驗證方法學(xué),基于UVM 庫搭建了如圖6所示的驗證環(huán)境。

圖6 MAC驗證結(jié)構(gòu)

在驗證工作開始時,需要根據(jù)直連接口的特定驗證需求來搭建驗證環(huán)境,明確驗證環(huán)境的框架。如圖6所示,驗證環(huán)境例化了兩個直連接口DLI,這樣做的原因是接口邏輯上主要是發(fā)送邏輯和接收邏輯,接收邏輯會在一些特殊情況下通過本地的發(fā)送邏輯來返回控制報文。一個直連接口的發(fā)送端和接收端兩部分的邏輯之間是相互關(guān)聯(lián)的,需要保證發(fā)送邏輯與接收邏輯同時工作才能模擬到傳輸?shù)膶嶋H情況。

表1 六類消息格式說明

本文使用的處理器平臺規(guī)定了直連接口共有六種消息格式,分別為HOM、SNP、NDR、DAT、NCA、NCB,這六類報文的詳細(xì)信息如表1所示。上述六類報文在發(fā)往通過直連接口模塊時會產(chǎn)生消息合并,具體的合并規(guī)則如圖7所示。

圖7 直連接口數(shù)據(jù)包合并格式

4.2 驗證功能分析

針對直連接口的設(shè)計應(yīng)用場景,在實際傳輸過程中,直連接口是負(fù)責(zé)將六種跨芯片一直性協(xié)議中的報文傳輸?shù)侥繕?biāo)芯片的直連接口上。直連接口會解析進入的報文的控制信息中的類型和路由信息,所以在接口層面發(fā)送激勵只需關(guān)注類型和路由信息,控制信息其他的域可以隨機生成。同時,在實際傳輸報文時,會將長短包進行合并,驗證環(huán)境在發(fā)送合并報文時,也需要根據(jù)協(xié)議規(guī)則發(fā)送。而且在傳輸?shù)倪^程中每個包之間可能會出現(xiàn)間隔(氣泡),一個包的不同flit 之間也可能出現(xiàn)間隔。圖8是連續(xù)發(fā)送隨機報文的情況,可以看到雖然信息合并在高低段的報文輸入給直連接口,但是經(jīng)過內(nèi)部緩沖或者站臺及仲裁等操作后,直連接口輸出的順序發(fā)生變化,但是數(shù)據(jù)本身不變。

圖8 連續(xù)發(fā)送隨機報文

圖9 是隨機添加flit 之間的延時后發(fā)送報文的情況,這種情況下可以仿真出直連接口內(nèi)部緩沖阻塞、輪轉(zhuǎn)仲裁公平性等比較特殊的情況,更容易驗證到代碼邏輯中的一些錯誤。

圖9 添加隨機延時發(fā)送報文

在驗證完正確傳輸之后,需要針對可靠傳輸?shù)墓δ埽M行模擬丟包驗證,在環(huán)境中修改一些邏輯,使數(shù)據(jù)在傳輸?shù)倪^程中丟失。直連接口控制邏輯會根據(jù)sequence號對丟失的報文進行重傳,重新發(fā)送丟失的報文,控制邏輯的重傳如圖10所示。

圖10 丟失報文重新發(fā)送

通過不斷的發(fā)送隨機激勵,控制報文的時間間隔,類型和數(shù)量,可以在代碼完成的早期驗證出邏輯上的錯誤,直連接口的主要功能是傳輸數(shù)據(jù),因此需要大量的激勵來進行各種情況的仿真。經(jīng)過初步的報文發(fā)送和報文接收進行正確性比對,直連接口電路可以初步滿足邏輯功能正確性要求。

5 結(jié)語

服務(wù)器處理器芯片直連是擴大處理器主存容量、訪存帶寬和IO 帶寬最有效的方式之一。結(jié)合現(xiàn)有技術(shù)背景,要實現(xiàn)芯片直連,必須針對芯片的特性設(shè)計直連接口模塊。本文以國產(chǎn)處理器為平臺,借鑒了PCIe 的體系結(jié)構(gòu),設(shè)計了適合該處理器芯片的直連接口,并對其進行了較為詳細(xì)的介紹。同時,為了驗證設(shè)計的正確性,使用UVM 驗證方法學(xué)搭建了相應(yīng)的驗證環(huán)境,模擬了實際傳輸過程中的若干場景,對直連接口的控制層進行了較為完備的驗證,保證了設(shè)計的正確性。

猜你喜歡
鏈路層物理層接收端
網(wǎng)絡(luò)傳輸融合及網(wǎng)絡(luò)安全防控技術(shù)研究
基于K-ML-MPWFRFT的物理層安全傳輸技術(shù)
基于擾動觀察法的光通信接收端優(yōu)化策略
基于多空間內(nèi)存共享的數(shù)據(jù)鏈路層網(wǎng)絡(luò)包捕獲方法
頂管接收端脫殼及混凝土澆筑關(guān)鍵技術(shù)
一種設(shè)置在密閉結(jié)構(gòu)中的無線電能傳輸系統(tǒng)
新能源科技(2021年6期)2021-04-02 22:43:34
基于多接收線圈的無線電能傳輸系統(tǒng)優(yōu)化研究
公路聯(lián)網(wǎng)電子不停車收費系統(tǒng)路側(cè)單元物理層自動測試軟件研發(fā)
多天線物理層安全傳輸系統(tǒng)性能分析
數(shù)據(jù)鏈路層的選擇重傳協(xié)議的優(yōu)化改進
孝义市| 额济纳旗| 满洲里市| 邹城市| 新源县| 鸡泽县| 卓尼县| 绥阳县| 广河县| 闵行区| 读书| 涟水县| 红河县| 莱西市| 凤凰县| 定安县| 简阳市| 吴堡县| 甘谷县| 普洱| 格尔木市| 遵义市| 九寨沟县| 自贡市| 金溪县| 景谷| 咸丰县| 南陵县| 恭城| 天峨县| 曲沃县| 宜章县| 河曲县| 新邵县| 布尔津县| 临朐县| 南昌市| 莱阳市| 安陆市| 襄城县| 荆州市|