日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]摘要:文章針對(duì)雙處理器設(shè)備問的數(shù)據(jù)通信提出了基于PCIe非透明橋的高速傳輸系統(tǒng)的設(shè)計(jì)方法。該方法應(yīng)用于視頻轉(zhuǎn)碼設(shè)備,實(shí)驗(yàn)結(jié)果表明當(dāng)轉(zhuǎn)碼設(shè)備作為外設(shè)與PC主機(jī)進(jìn)行通信時(shí)

摘要:文章針對(duì)雙處理器設(shè)備問的數(shù)據(jù)通信提出了基于PCIe非透明橋的高速傳輸系統(tǒng)的設(shè)計(jì)方法。該方法應(yīng)用于視頻轉(zhuǎn)碼設(shè)備,實(shí)驗(yàn)結(jié)果表明當(dāng)轉(zhuǎn)碼設(shè)備作為外設(shè)與PC主機(jī)進(jìn)行通信時(shí),采用多路虛擬DMA方法的數(shù)據(jù)傳輸總帶寬可以穩(wěn)定的達(dá)到1100MB/s,為實(shí)現(xiàn)多路實(shí)時(shí)轉(zhuǎn)碼提供了前提保證。文中還重點(diǎn)介紹了虛擬DMA通道的實(shí)現(xiàn)、雙系統(tǒng)問通信模型的設(shè)計(jì)及傳輸系統(tǒng)性能優(yōu)化分析。

關(guān)鍵詞:PCIe總線 DMA傳輸 非透明橋 虛擬通道

0 引言

兩個(gè)處理器系統(tǒng)的數(shù)據(jù)通信方式可以采用網(wǎng)絡(luò)通信方式或者總線連接通信方式等。網(wǎng)絡(luò)通信的帶寬約為1Gbps~4Gbps即 128MB/s~512MB/s,在不同的工作條件下,網(wǎng)絡(luò)帶寬不同,網(wǎng)絡(luò)信號(hào)存在不穩(wěn)定性,這使得系統(tǒng)問建立的通信系統(tǒng)存在影響傳輸速率的不可控因素。 PCI Express作為目前使用最流行的總線,廣泛用于主機(jī)與外部設(shè)備間通信,16bit總線寬度的PCI Express2.0速率達(dá)到16GB/s(雙工),遠(yuǎn)遠(yuǎn)超過了網(wǎng)絡(luò)通信速率且不需要配置網(wǎng)絡(luò)環(huán)境。

本文設(shè)計(jì)的傳輸系統(tǒng)應(yīng)至少提供8路傳輸通道供轉(zhuǎn)碼設(shè)備與主機(jī)進(jìn)行通信,然而在以PCIe接口芯片設(shè)計(jì)傳輸系統(tǒng)時(shí),芯片中有限的DMA通道(一般為4路)難以滿足轉(zhuǎn)碼設(shè)備多路實(shí)時(shí)轉(zhuǎn)碼的傳輸要求。因此,如何實(shí)現(xiàn)多路虛擬DMA通道、傳輸速率滿足要求且保證各通道傳輸速率均衡是軟件設(shè)計(jì)的重點(diǎn)。在此之上,文中將進(jìn)一步探討如何降低傳輸系統(tǒng)對(duì)處理器系統(tǒng)CPU資源的占用率。

1 系統(tǒng)模型設(shè)計(jì)及系統(tǒng)通信機(jī)制

1.1 系統(tǒng)模型設(shè)計(jì)

數(shù)據(jù)傳輸系統(tǒng)軟件模型可分為3個(gè)層次,包括設(shè)備驅(qū)動(dòng)層、系統(tǒng)應(yīng)用層和用戶接口層。系統(tǒng)結(jié)構(gòu)如圖1所示。

 


薛巨峰,副教授/碩士,主研領(lǐng)域:自動(dòng)化控制技術(shù)和加工工程自動(dòng)化技術(shù)。黃愛娟,碩士生,研究方向:計(jì)算機(jī)應(yīng)用技術(shù)。

由圖1可知傳輸系統(tǒng)由設(shè)備驅(qū)動(dòng)模塊、DMA管理模塊、系統(tǒng)通信模塊、客戶端通信模塊和客戶端API組成。

設(shè)備驅(qū)動(dòng)程序用于在處理器系統(tǒng)中識(shí)別PCIe接口芯片設(shè)備;DMA管理模塊(只在主機(jī)端存在)用于管理和分配處理器系統(tǒng)需要進(jìn)行數(shù)據(jù)傳輸時(shí)對(duì)DMA通道的使用請(qǐng)求并完成數(shù)據(jù)傳輸功能;系統(tǒng)通信模塊用于處理器系統(tǒng)間的消息傳遞;客戶端通信模塊負(fù)責(zé)響應(yīng)客戶端與傳輸系統(tǒng)的鏈接請(qǐng)求和數(shù)據(jù)傳輸請(qǐng)求;客戶端 API(Client Register)是提供給用戶進(jìn)行鏈接和傳輸請(qǐng)求的函數(shù)接口。

1.2 系統(tǒng)通信機(jī)制

在主從機(jī)端分別運(yùn)行傳輸系統(tǒng)應(yīng)用程序(Plx_Server)完成傳輸系統(tǒng)的建立,Plx_Server等待客戶端調(diào)用Client Register進(jìn)行鏈接請(qǐng)求。當(dāng)主從機(jī)端的Plx_Server都有可配對(duì)的客戶端鏈接請(qǐng)求,則為可配對(duì)客戶端建立1路虛擬DMA傳輸通道??蛻舳耸褂肞lx_Server為其分配的傳輸句柄(Client Socket)即可實(shí)現(xiàn)數(shù)據(jù)收發(fā)和斷開傳輸鏈接。

2 系統(tǒng)硬件設(shè)計(jì)

開發(fā)PCIe接口可以采用FPGA設(shè)計(jì)PCIe接口,但由于PCIe總線規(guī)范較復(fù)雜,這種開發(fā)方法難度很大;而采用專用PCIe接口芯片,可以免除繁瑣的時(shí)序分析,縮短開發(fā)周期,降低開發(fā)成本。本系統(tǒng)選擇后者,PCIe接口芯片選擇為PLX公司開發(fā)的PEX8619接口芯片。

PCIe橋連接方式有2種:透明橋(Transparent Bridge)和非透明橋(Non-Transparent Bridge)??傁到y(tǒng)中存在兩個(gè)獨(dú)立的處理器,此時(shí)使用透明橋方式不利于整個(gè)系統(tǒng)的配置與管理,可能出現(xiàn)PCIe總線地址的映射沖突,此外不能使用PCIe透明橋連接兩個(gè)PCIe Agent設(shè)備,如x86處理器。采用非透明橋可有效的解決這些問題,提高PCIe傳輸系統(tǒng)的可移植性。非透明橋不是PCIe總線定義的標(biāo)準(zhǔn)橋片,但是這類橋片在連接兩個(gè)處理器系統(tǒng)中得到了廣泛的應(yīng)用。

PEX8619支持NT橋功能,芯片在智能配置器模式下的軟件模型如圖2所示。

 


在圖2中有兩個(gè)用于設(shè)備識(shí)別的配置空間寄存器(CSR),離內(nèi)部虛擬PCIe總線較近的稱之為虛擬接口(Virtual Interface),離得較遠(yuǎn)的稱之為鏈路接口(Link Interface)。

在智能配置器模式中,NT橋鏈路端口連接的是從機(jī)的地址域,從機(jī)系統(tǒng)只管理NT橋鏈路接口Type 0功能(NT設(shè)備功能)。NT橋虛擬端口連接的是主機(jī)的地址域,主機(jī)管理所有NT橋虛擬接口Type 0功能和Type 1功能(DMA引擎功能)??缬騻鬏斒峭ㄟ^地址轉(zhuǎn)換機(jī)制的路由來完成的。

3 系統(tǒng)軟件設(shè)計(jì)

3.1 設(shè)備驅(qū)動(dòng)程序

主從機(jī)端分別安裝PLX公司提供的PLX_SDK_v7_11_Final設(shè)備驅(qū)動(dòng)程序,從機(jī)端識(shí)別出NT橋的NT設(shè)備,主機(jī)端識(shí)別出NT橋的NT設(shè)備和DMA引擎。

3.2 系統(tǒng)應(yīng)用程序

PCIe傳輸系統(tǒng)Plx_Server與客戶端API(Client_Register)是一對(duì)多的關(guān)系,傳輸系統(tǒng)最多允許128對(duì)客戶端進(jìn)行鏈接和數(shù)據(jù)傳輸,傳輸系統(tǒng)的函數(shù)關(guān)聯(lián)圖如圖3所示。

 


3.2.1 系統(tǒng)初始化

系統(tǒng)初始化主要是對(duì)PCIe設(shè)備進(jìn)行初始化配置 和地址映射等工作。調(diào)用系統(tǒng)庫函數(shù)PlxPci_Device Find找到NT設(shè)備和DMA設(shè)備(只在主機(jī)端有),并獲得設(shè)備描述符。使用PlxPci_PciBarMap函數(shù)將NTBar0、DMA Bar0(只在主機(jī)端有)和NT Bar2~NT Bar5映射到用戶虛地址空間。使用PlxPci_PhysicalMap函數(shù)申請(qǐng)128個(gè)大小為4MB的物理內(nèi)存并將其映射到用戶虛地址空間作為DMA數(shù)據(jù)緩沖區(qū)使用。這些寄存器的作用如表1所示。

 


3.2.2 DMA管理模塊

使用規(guī)定傳輸系統(tǒng)最多允許建立128對(duì)傳輸通道,而PEX8619芯片上只有4個(gè)DMA通道。面對(duì)128路虛擬傳輸通道和4路DMA物理通道的不匹配,系統(tǒng)中使用分時(shí)復(fù)用DMA通道的方法解決這一矛盾。

首先,分時(shí)復(fù)用要解決共享內(nèi)存資源的分配,DMA數(shù)據(jù)緩沖區(qū)大小為128x4MB。為達(dá)到資源利用最大化及公平性,每一次虛擬傳輸通道的建立與斷開都要為現(xiàn)存的每一路傳輸通道重新計(jì)算和分配DMA數(shù)據(jù)緩沖區(qū)。每一路傳輸通道可用于接收或發(fā)送數(shù)據(jù)的緩沖區(qū)大小計(jì)算公式為:128×4/channel total×1/2,其中channel_total為總通道數(shù)。[!--empirenews.page--]

其次,需要解決DMA通道的使用分配。在多線程機(jī)制下對(duì)DMA通道請(qǐng)求隊(duì)列的管理有2種方案,隊(duì)列管理方案如圖4所示。

 


在方案一中,每個(gè)虛擬通道的線程把自己的DMA請(qǐng)求(DMA_Req)放入DMA請(qǐng)求隊(duì)列(DAM_Queue)中,Oueue Read負(fù)責(zé)從隊(duì)列中取出DMA請(qǐng)求。在此使用鎖機(jī)制,將隊(duì)列寫操作作為臨界區(qū),在鎖定的臨界區(qū)只允許讓一個(gè)線程訪問,其它線程排隊(duì)等待。這樣的方案設(shè)計(jì)簡(jiǎn)單易懂好管理,然而在實(shí)際的測(cè)試中,由于線程資源及調(diào)度是由操作系統(tǒng)來完成的,測(cè)試結(jié)果表明各個(gè)通道的DMA_Req并不能公平地寫入隊(duì)列,DMA物理通道并不能公平的服務(wù)于每一路虛擬通道,導(dǎo)致了各個(gè)通道間傳輸速率不均衡。

在方案二中,各個(gè)虛擬通道把自己的DMAReq寫入自己的DMA_Queue中,Queue_Read通過輪詢的方式讀取各個(gè)DMA_Queue的DMA 請(qǐng)求,測(cè)試結(jié)果表明DMA物理通道資源能被公平的分配且請(qǐng)求處理效率更高。因此傳輸系統(tǒng)的DMA請(qǐng)求隊(duì)列管理采用方案二實(shí)現(xiàn)。

3.2.3 系統(tǒng)通信模塊

主機(jī)與從機(jī)兩個(gè)處理器系統(tǒng)天然的分離特性,使得性能與正確性產(chǎn)生矛盾,如果兩端的消息通信只是簡(jiǎn)單的發(fā)送/接收和處理,不能保證兩端不同時(shí)使用同一資源。因此為傳輸系統(tǒng)規(guī)定了一個(gè)有順序語義的通信機(jī)制如圖5所示。

 


圖5中黑色箭頭表示的是程序的執(zhí)行順序,白色部分代表了對(duì)主機(jī)端消息的處理,黑色部分代表了對(duì)從機(jī)端消息的處理。主從機(jī)端皆有一個(gè)消息隊(duì)列,所有需要發(fā)送的消息(msgQ)都先存入消息隊(duì)列中,主機(jī)和從機(jī)端通過令牌機(jī)制來輪流向?qū)Ψ竭f送消息。如果一方消息隊(duì)列為空,也需要讓度令牌,使得對(duì)方能繼續(xù)遞送消息。以主機(jī)機(jī)端為例,其消息處理過程如下:(1)等待從機(jī)端發(fā)送讓度令牌的消息Ack;(2)收到Ack后接收從機(jī)端的發(fā)送的消息Req;(3)對(duì)消息進(jìn)行處理并且準(zhǔn)備要發(fā)送給對(duì)方的Ack和從消息隊(duì)列中取出msgQ(若消息隊(duì)列為空,則填入NULL);(4)向?qū)Ψ桨l(fā)送Ack和msgQ。從機(jī)端的消息處理與主機(jī)端是一一對(duì)應(yīng)的。

系統(tǒng)中使用NT橋的8個(gè)32位的MailBox寄存器來實(shí)現(xiàn)主從機(jī)的消息通信,MailBox寄存器是NT橋的鏈路端口和虛擬端口共有的,都可見可讀可寫。

令牌跳躍式的消息傳遞機(jī)制是否會(huì)成為整個(gè)傳輸系統(tǒng)提升傳輸速率的瓶頸,將在下文的實(shí)驗(yàn)測(cè)試中給出結(jié)論。

3.2.4 客戶端通信模塊

使用“Abstract”樣式。為了提供一個(gè)簡(jiǎn)易通用的客戶端接口,Plx_Server和Client_Register的進(jìn)程間通信使用Socket實(shí)現(xiàn)。傳輸系統(tǒng)的主程序Plx_Server通過創(chuàng)建服務(wù)器(Server Socket)未向連接服務(wù)器的客戶端(Client Register)提供服務(wù)。服務(wù)包括了數(shù)據(jù)收發(fā)請(qǐng)求,連接建立/端開請(qǐng)求等。Plx_Server處理Client_Register連接請(qǐng)求的流程如圖6所示。

 


在圖6中客戶端的連接注冊(cè)、客戶端配對(duì)和建立傳輸通道都是由主機(jī)端完成的,從機(jī)端的連接注冊(cè)需要交付給主機(jī)端來完成。

3.2.5 客戶端API

調(diào)用客戶端API(Client_Register)完成連接配對(duì)請(qǐng)求后,Client_Register將返回一個(gè)Socket描述符。用戶只需要參考標(biāo)準(zhǔn)Socket編程規(guī)范,即可使用Socket標(biāo)準(zhǔn)函數(shù)接口,比如read、write、close等進(jìn)行數(shù)據(jù)通信。

4 系統(tǒng)性能優(yōu)化分析

為滿足視頻轉(zhuǎn)碼設(shè)備對(duì)數(shù)據(jù)傳輸性能的要求,傳輸系統(tǒng)除了要滿足傳輸速率、速率均衡的要求外,CPU資源使用率也要作為考慮的因素。在測(cè)試中當(dāng)處理器系統(tǒng)的 CPU使用率超過50%后,傳輸系統(tǒng)的總帶寬隨之下降。為此,傳輸系統(tǒng)做了以下優(yōu)化:(1)設(shè)置Plx_Server的CPU相關(guān)性,使進(jìn)程同時(shí)關(guān)聯(lián)多個(gè) CPU;(2)線程在等待或空閑時(shí)適當(dāng)掛起以釋放占用的CPU資源。

5 實(shí)驗(yàn)結(jié)果分析

本傳輸系統(tǒng)結(jié)合視頻轉(zhuǎn)碼設(shè)備的使用做了大量的測(cè)試,首先測(cè)試傳輸系統(tǒng)數(shù)據(jù)傳輸帶寬,測(cè)試結(jié)果如圖7所示。實(shí)驗(yàn)結(jié)果表明了系統(tǒng)傳輸性能穩(wěn)定,傳輸總帶寬約為1100MB /s。隨著傳輸通道數(shù)的增加,每一對(duì)正在傳輸?shù)耐ǖ缹⒅匦鹿椒峙滟Y源,分配到的資源將減少,使得單路傳輸帶寬將減小,但總帶寬基本保持不變。

 


另外驗(yàn)證傳輸系統(tǒng)消息通信機(jī)制是否會(huì)成為限制傳輸速率的瓶頸。測(cè)試數(shù)據(jù)如表2所示。傳輸系統(tǒng)最少每秒可發(fā)送/接收一共1776個(gè)消息,完成一次傳輸(每次 DMA傳輸可發(fā)送4MB大小數(shù)據(jù))一共需要發(fā)送/接收5個(gè)消息,則經(jīng)換算傳輸系統(tǒng)消息通信帶寬為1776/5x4=2220MB/s,遠(yuǎn)遠(yuǎn)超過了傳輸系統(tǒng)數(shù)據(jù)傳輸總帶寬,不會(huì)成為限制傳輸速率的瓶頸。

 


在處理器型號(hào)為Intel Core i5系列,雙核4線程的主機(jī)上運(yùn)行傳輸系統(tǒng)進(jìn)程時(shí),進(jìn)程對(duì)主機(jī)CPU使用率低于20%,這使得主機(jī)在使用從機(jī)(視頻轉(zhuǎn)碼設(shè)備)時(shí)還有足夠的余力處理其它任務(wù)。

6 結(jié)語

本文基于PEx8619的PCIe接口芯片完成了跨PCIe NT橋的傳輸系統(tǒng)的設(shè)計(jì),實(shí)現(xiàn)了雙處理器間的多通道數(shù)據(jù)傳輸功能。經(jīng)試驗(yàn)測(cè)試,傳輸系統(tǒng)總帶寬達(dá)到1100MB/s,實(shí)時(shí)性好,性能優(yōu)越且可移植性強(qiáng),在需要高速傳輸系統(tǒng)的領(lǐng)域如視頻實(shí)時(shí)轉(zhuǎn)碼等有很好的應(yīng)用前景。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

上海2025年7月25日 /美通社/ -- 全球領(lǐng)先的電子設(shè)計(jì)與制造服務(wù)供貨商USI環(huán)旭電子宣布,即將推出新一代1.6T光模組產(chǎn)品,鎖定高速運(yùn)算與AI數(shù)據(jù)中心應(yīng)用,協(xié)助客戶提升數(shù)據(jù)中心網(wǎng)絡(luò)拓?fù)湫?,?yīng)對(duì)AI模型規(guī)模擴(kuò)展所...

關(guān)鍵字: 數(shù)據(jù)中心 電子 高速傳輸 AI

《帶得走的智能制造》暑期課程圓滿落幕 北京2025年7月25日 /美通社/ -- 近日,由國(guó)際獨(dú)立第三方檢測(cè)、檢驗(yàn)和認(rèn)證機(jī)構(gòu)德國(guó)萊茵TÜV大中華區(qū)(以下簡(jiǎn)稱"TÜV萊茵")與北京...

關(guān)鍵字: 智能制造 BSP DMA 信息安全

在實(shí)時(shí)控制系統(tǒng)、高速通信協(xié)議處理及高精度數(shù)據(jù)采集等對(duì)時(shí)間敏感的應(yīng)用場(chǎng)景中,中斷響應(yīng)延遲的優(yōu)化直接決定了系統(tǒng)的可靠性與性能上限。STM32系列微控制器憑借其靈活的嵌套向量中斷控制器(NVIC)、多通道直接內(nèi)存訪問(DMA)...

關(guān)鍵字: STM32 DMA

在嵌入式系統(tǒng)、網(wǎng)絡(luò)通信等對(duì)數(shù)據(jù)傳輸效率要求極高的場(chǎng)景中,零拷貝技術(shù)能夠顯著減少數(shù)據(jù)在內(nèi)存中的拷貝次數(shù),降低CPU負(fù)載,提高系統(tǒng)性能。DMA(直接內(nèi)存訪問)環(huán)形緩沖區(qū)與內(nèi)存池相結(jié)合的雙重優(yōu)化策略,為實(shí)現(xiàn)高效的零拷貝數(shù)據(jù)傳輸...

關(guān)鍵字: 零拷貝 DMA 嵌入式系統(tǒng)

STM32單片機(jī)憑借其高性能、低功耗、豐富的外設(shè)資源等優(yōu)勢(shì),在工業(yè)控制、消費(fèi)電子、汽車電子等領(lǐng)域得到了廣泛應(yīng)用。在嵌入式系統(tǒng)開發(fā)中,高效的數(shù)據(jù)處理和傳輸至關(guān)重要。中斷技術(shù)和DMA技術(shù)作為STM32單片機(jī)中重要的數(shù)據(jù)處理和...

關(guān)鍵字: STM32 DMA

在嵌入式系統(tǒng)中,隨著數(shù)據(jù)量的不斷增加和實(shí)時(shí)性要求的提高,傳統(tǒng)的CPU直接控制數(shù)據(jù)傳輸?shù)姆绞街饾u暴露出效率低下的問題。為了應(yīng)對(duì)這一挑戰(zhàn),直接內(nèi)存訪問(Direct Memory Access,DMA)技術(shù)應(yīng)運(yùn)而生,成為實(shí)現(xiàn)...

關(guān)鍵字: DMA 嵌入式系統(tǒng) 高速數(shù)據(jù)傳輸

廣州2025年1月21日 /美通社/ -- 在數(shù)字營(yíng)銷領(lǐng)域快速發(fā)展的今天,每一場(chǎng)行業(yè)盛會(huì)都預(yù)示著新的轉(zhuǎn)折與機(jī)遇。2025年1月10日,由DMAA數(shù)字營(yíng)銷獎(jiǎng)主辦,廣州4A聯(lián)合主辦,廣州市廣告行業(yè)協(xié)會(huì)指導(dǎo)的第八屆DMAA國(guó)際...

關(guān)鍵字: DMA AI AI技術(shù) 創(chuàng)始人

新竹2025年1月16日 /美通社/ -- 高速接口IP領(lǐng)域的全球領(lǐng)導(dǎo)者乾瞻科技(InPsytech, Inc.)宣布,Universal Chiplet Interconnect Express(UCIe)系列產(chǎn)品在性...

關(guān)鍵字: IP設(shè)計(jì) 高速傳輸 傳輸技術(shù) 4G

在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,直接內(nèi)存訪問(DMA)技術(shù)被廣泛應(yīng)用于高速數(shù)據(jù)傳輸,其核心理念在于讓數(shù)據(jù)傳輸不再依賴CPU的參與,從而釋放CPU資源以處理其他任務(wù)。然而,在DMA操作完成后,系統(tǒng)需要一種機(jī)制來檢測(cè)DMA傳輸是否已完成...

關(guān)鍵字: DMA CPU 輪詢檢測(cè)

之前有個(gè)同事因?yàn)橛么诓樵兎绞桨l(fā)送數(shù)據(jù),被我說了一頓,明明有DMA資源,竟然放著不用,對(duì)于魚鷹這種性能強(qiáng)迫癥來說,肯定無法忍受,所以當(dāng)時(shí)就和他說,有時(shí)間你把它改一下。誰知道過了好幾個(gè)月他才有時(shí)間弄這個(gè),然后還是出了問題,...

關(guān)鍵字: DMA 串口
關(guān)閉