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

?

VxWorks下串行RapidIO總線驅(qū)動的實(shí)現(xiàn)

2015-01-27 01:30:34璐,龔
關(guān)鍵詞:枚舉端點(diǎn)數(shù)據(jù)包

王 璐,龔 俊

(中國兵器工業(yè)第五八研究所,四川 綿陽 621000)

0 引言

隨著高性能嵌入式系統(tǒng)的不斷發(fā)展,數(shù)據(jù)傳輸能力和信號處理能力也在不斷的提高。但與處理器內(nèi)核性能的增長速率相比,總線頻率的提升仍然滯后,且兩者之間的差距在不斷擴(kuò)大。處理器性能的提升已無法滿足處理器間或處理器與外設(shè)間高速通信的需求。因此,需要新興的高性能總線互連技術(shù)來滿足系統(tǒng)互連通信的更高要求[1]。

RapidIO 是新一代高速互連技術(shù),已于2004 年被國際標(biāo)注化組織(ISO)和國際電工協(xié)會(IEC)批準(zhǔn)為ISO/IEC DIS 18372 標(biāo)準(zhǔn)。RapidIO 技術(shù)主要面向高性能嵌入式系統(tǒng)的互連通信,可在4 對差分線上實(shí)現(xiàn)10Gbps 的有效傳輸速率,而且具有比萬兆以太網(wǎng)、PCI express 更高的傳輸速率[2]。RapidIO 互連定義包括兩類技術(shù):一類是面向高性能微處理器及系統(tǒng)互連的并行接口;另一類是面向串行背板、DSP 和相關(guān)串行控制平面應(yīng)用的串行接口。

1 RapidIO 互連技術(shù)簡介

RapidIO 采用三層分級體系結(jié)構(gòu),即邏輯層、傳輸層和物理層:①邏輯層:最高層,定義了全部協(xié)議和包的格式,為端點(diǎn)器件發(fā)起和完成事務(wù)提供必要的信息;②傳輸層:中間層,定義了交換器件如何將傳輸?shù)臄?shù)據(jù)包路由到目標(biāo)器件,即定義了設(shè)備ID 路由方法;③物理層:最底層,定義了相鄰處理單元之間的電氣連接,描述器件級接口規(guī)范。例如:包傳輸機(jī)制、流量控制、電氣特性和低級錯誤管理等內(nèi)容[3]。分層結(jié)構(gòu)如圖1 所示。

串行RapidIO 的傳輸操作基于請求和響應(yīng),數(shù)據(jù)包(packet)是消息傳遞的基本通信單元。RapidIO 系統(tǒng)一般由端點(diǎn)器件和交換器件組成,每個器件由唯一的設(shè)備ID標(biāo)識。端點(diǎn)器件產(chǎn)生或接收數(shù)據(jù)包,交換器件實(shí)現(xiàn)數(shù)據(jù)包在各端點(diǎn)間的路由和傳遞,不對數(shù)據(jù)包做解析。圖2是傳輸操作的流程圖。首先由發(fā)起器件產(chǎn)生一個傳輸請求,請求包被傳輸?shù)较噜彽慕粨Q器件,通過交換器件這個請求包被完整的轉(zhuǎn)發(fā)到目標(biāo)器件。目標(biāo)器件根據(jù)請求完成相應(yīng)操作后,發(fā)送相應(yīng)的響應(yīng)包,經(jīng)過交換器件傳回到發(fā)起器件。至此一個完整的傳輸過程完成。

圖1 RapidIO 體系結(jié)構(gòu)圖Fig.1 Structure diagram of RapidIO system

圖2 RapidIO 傳輸操作流程圖Fig.2 Flow chart of RapidIO transmission

2 RapidIO 互連系統(tǒng)平臺簡介

RapidIO 互連系統(tǒng)采用Freescale 公司的MPC8548 處理器作為端點(diǎn)器件,一端設(shè)置為主設(shè)備,另一端設(shè)置為從設(shè)備。采用IDT 公司的Tsi578 芯片作為交換器件,使能其中兩個端口并設(shè)置為1×模式,波特率為3.125 Gbps。RapidIO 硬件平臺互連示意圖如圖3 所示。

圖3 硬件平臺互聯(lián)圖Fig.3 Interconnection diagram of hardware platform

MPC8548 處理器內(nèi)部具有PowerPC e500 的內(nèi)核以及CPM 通信處理模塊,內(nèi)部的時鐘頻率為1GHz。除此之外,還集成了RapidIO 控制器,其中1×/4×串行通道的傳輸速率可配置為1.25Gbps、2.5Gbps 或3.125Gbps,消息單元支持存儲地址寄存器最大長度4KB 的消息[4]。

Tsi578 芯片是Tundra 公司推出的RapidIO 交換產(chǎn)品,后并入IDT 公司,該芯片基于RapidIO 1.3 規(guī)范,共有16 路串行通道,可以靈活配置為8×4 或16×1 的端口工作方式,端口數(shù)最多可以配置為16 個,芯片內(nèi)部交換帶寬達(dá)到80Gbps,提供無阻塞的全雙工交換能力。高性能的SerDes 通道可以實(shí)現(xiàn)單路1.25Gbps、2.5Gbps或3.125Gbps 的傳輸速率[5]。

本系統(tǒng)軟件采用VxWorks 嵌入式實(shí)時操作系統(tǒng)[6],由windRiver 公司研制,使用wind 內(nèi)核,具有高效的實(shí)時任務(wù)調(diào)度、中斷管理、實(shí)時的系統(tǒng)資源和任務(wù)通信等功能,內(nèi)核精簡并且可高度裁剪、高效、穩(wěn)定并具有良好的可移植性,專門用于對實(shí)時性要求較高的硬件設(shè)備。

3 RapidIO 總線驅(qū)動的設(shè)計與實(shí)現(xiàn)

RapidIO 總線驅(qū)動包含:本地設(shè)備初始化、網(wǎng)絡(luò)配置、消息傳遞這三個部分基本功能。

3.1 本地設(shè)備初始化

本地設(shè)備初始化首先要初始化MPC8548 處理器內(nèi)部的RapidIO 控制器和使能端口,這是進(jìn)行RapidIO 通信的基礎(chǔ)。其次要配置TLB 表,申請本地設(shè)備地址空間。最后要創(chuàng)建維護(hù)窗口,用以完成維護(hù)讀/寫操作。其中,維護(hù)窗口的建立及維護(hù)讀/寫函數(shù)實(shí)現(xiàn)如下:

(1)建立維護(hù)窗口:

STATUS rioSetupMaintenanceWindow (UINT32 rioBase,UINT16 deviceID,UINT8 hopCount,UINT32 offset, UINT32 window);

(2)維護(hù)讀操作:

STATUS rioMaintenanceRead(UINT16 targetId, UINT8 hopCount,UINT32 offset,UINT32 *data, UINT32 window);

(3)維護(hù)寫操作:

STATUS rioMaintenanceWrite(UINT16 targetId, UINT8 hopCount,UINT32 offset,UINT32 data, UINT32 window);

3.2 網(wǎng)絡(luò)枚舉與配置

網(wǎng)絡(luò)枚舉與配置包含了枚舉網(wǎng)絡(luò)設(shè)備、分配設(shè)備ID、維護(hù)路由表以及地址空間映射等主要功能。

端點(diǎn)器件(主設(shè)備)在完成本地初始化后,要進(jìn)行RapidIO 網(wǎng)絡(luò)的枚舉與配置。需要查找與之相連的端點(diǎn)器件(從設(shè)備),并通過讀取制造商ID 判斷是端點(diǎn)器件或交換器件。若為端點(diǎn)器件,首先要鎖定此設(shè)備,表明主設(shè)備即將要對它進(jìn)行配置;其次要將此從設(shè)備ID 由0xFF 更新為RapidIO 網(wǎng)絡(luò)設(shè)備ID 編號;再次要更新路由表,指明主設(shè)備通過交換器件到該從設(shè)備的路徑;最后要進(jìn)行地址空間映射,為主設(shè)備訪問該從設(shè)備做好準(zhǔn)備。主要枚舉和配置流程如圖4 所示。

路由表維護(hù)函數(shù)實(shí)現(xiàn)如下:

圖4 枚舉與配置流程圖Fig.4 Flow chart of enumerate & configuration device

(1)添加路由項:

STATUS rioAddRouteEntry ( UINT16 targetId, UINT8 hopCount ,UINT16 routeDestid, UINT8 routePort) ;

(2)獲取路由項:

STATUS rioGetRouteEntry ( UINT16 targetId, UINT8 hopCount ,UINT16 routeDestid, UINT8 *routePort);

3.3 消息傳遞

RapidIO 的消息傳遞方式主要有Doorbell、Message、Nread 和Nwrite 等方式。軟件中主要使用的函數(shù)實(shí)現(xiàn)如下:

(1)Doorbell 方式。Doorbell 消息傳遞方式適合傳遞8bit 或者16bit 的短消息,主要用于處理器間的中斷。

UINT32 rioSendDoorbell (UINT16 localPort, UINT16 destId, UINT16 data);

(2)Message 方式。Message 方式最多可傳輸4096 字節(jié)數(shù)據(jù)。這種消息傳遞方式類似于以太網(wǎng)的傳輸方式,主設(shè)備不需要知道從設(shè)備的存儲器狀況,數(shù)據(jù)存放的位置由destId 決定的郵箱號確定。郵箱號類似于以太網(wǎng)協(xié)議中的端口號。

UINT32 rioSendMessage(UINT16 mbox, UINT32 destId,void *buffer, UINT32 len);

UINT32 rioReceiveMessage(UINT16 mbox, void *buf,UINT32 len);

(3)Nread 和Nwrite 方式。此種方式可直接讀寫從設(shè)備的存儲器。數(shù)據(jù)長度在1~256 字節(jié)之間,返回的數(shù)據(jù)應(yīng)進(jìn)行對齊限制。

UINT32 rioDmaNread(UINT8 chan, UINT16 destId,UINT32 localAddr, UINT32 rioAddr, UINT32 byteCnt);

UINT32rioDmaNwrite(UINT8 chan, UINT16 destId,UINT32localAddr, UINT32rioAddr, UINT32byteCnt);

4 性能測試

在波特率為1.25Gbps、2.5Gbps 和3.125Gbps 時,分別測算出帶寬及效率。帶寬的計算公式為:傳輸數(shù)據(jù)量/傳輸時間;效率的計算公式為:實(shí)際帶寬/理論帶寬。性能測試結(jié)果如表1 所示。

表1 性能測試結(jié)果Tab.1Theresultofperformancetest

5 結(jié)束語

該RapidIO 總線驅(qū)動采用采用VxWorks 嵌入式實(shí)時操作系統(tǒng),軟件設(shè)計采用模塊化設(shè)計,提高了系統(tǒng)的可靠性和可維護(hù)性,具有高效的實(shí)時任務(wù)調(diào)度、中斷管理、實(shí)時的系統(tǒng)資源和任務(wù)通信等功能,內(nèi)核精簡并且可高度裁剪、高效、穩(wěn)定并具有良好的可移植性。性能測試表明,該系統(tǒng)滿足RapiIO 高速通信需求,達(dá)到了設(shè)計要求。

[1]李鵬.基于RapidIO 的雙主機(jī)節(jié)點(diǎn)嵌入式系統(tǒng)互連設(shè)計[J].電子科技,2014,4.

[2][美]Sam Fuller,等. RapidIO 嵌入式系統(tǒng)互連[M].電子工業(yè)出版社,2006.

[3]張強(qiáng).串行RapidIO 互連系統(tǒng)的設(shè)計與實(shí)現(xiàn)[D].南京理工大學(xué),2013.

[4]Freescale Semiconductor. MPC8641 and MPC8641D Integrated Host Processor Hardware Specifications[EB/OL]. http://www.freescale.com,2009/07/2.

[5]Tundra Semiconductor Corporatiot. Tsi578TM Serial RapidlO Switch UserManual[EB/OL]. http://www.tundra.com, 2006/10/11.

[6]Wind River Systems, Ine. VxWorks Device Driver Developer' S Guide,6.4,2006,9.

[7]張娟,蘇海冰,吳欽章.基于多處理器的高速RapidIO[J].計算機(jī)工程,2014,9.

猜你喜歡
枚舉端點(diǎn)數(shù)據(jù)包
非特征端點(diǎn)條件下PM函數(shù)的迭代根
基于理解性教學(xué)的信息技術(shù)教學(xué)案例研究
速讀·上旬(2022年2期)2022-04-10 16:42:14
一種高效的概率圖上Top-K極大團(tuán)枚舉算法
不等式求解過程中端點(diǎn)的確定
SmartSniff
參數(shù)型Marcinkiewicz積分算子及其交換子的加權(quán)端點(diǎn)估計
基于太陽影子定位枚舉法模型的研究
基丁能雖匹配延拓法LMD端點(diǎn)效應(yīng)處理
基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計與實(shí)現(xiàn)
視覺注意的數(shù)據(jù)包優(yōu)先級排序策略研究
伊通| 沈丘县| 柳州市| 梅州市| 蕲春县| 新蔡县| 新巴尔虎左旗| 建水县| 黔西县| 电白县| 清远市| 五原县| 丰台区| 镇宁| 惠来县| 万荣县| 海伦市| 松阳县| 嘉峪关市| 祁连县| 永寿县| 淮南市| 共和县| 阳东县| 新疆| 宜川县| 临清市| 积石山| 徐汇区| 邹城市| 乃东县| 金昌市| 扎囊县| 盐源县| 西宁市| 玉门市| 永靖县| 福鼎市| 马龙县| 德惠市| 天柱县|