新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 串行 RapidIO: 高性能嵌入式互連技術(shù)

串行 RapidIO: 高性能嵌入式互連技術(shù)

作者: 時(shí)間:2010-02-24 來源:網(wǎng)絡(luò) 收藏

為了滿足靈活性和可擴(kuò)展性的要求,協(xié)議分為三層:邏輯層、傳輸層和物理層。圖2說明了協(xié)議的分層結(jié)構(gòu)。

圖2 協(xié)議分層結(jié)構(gòu)

邏輯層定義了操作協(xié)議; 傳輸層定義了包交換、路由和尋址機(jī)制;物理層定義了電氣特性、鏈路控制和糾錯(cuò)重傳等。

象以太網(wǎng)一樣,RapidIO也是基于包交換的互連。如圖3所示,RapidIO包由包頭、可選的載荷數(shù)據(jù)和16bits CRC校驗(yàn)組成。包頭的長度因?yàn)榘愋筒煌赡苁鞘畮椎蕉畮讉€(gè)字節(jié)。每包的載荷數(shù)據(jù)長度不超過256字節(jié),這有利于減少傳輸時(shí)延,簡化硬件實(shí)現(xiàn)。

圖3 RapidIO包格式

上述包格式定義兼顧了包效率及組包/解包的簡單性。RapidIO交換器件僅需解析前后16bits,以及源/目地器件ID,這簡化了交換器件的實(shí)現(xiàn)。
邏輯層協(xié)議

邏輯層定義了操作協(xié)議和相應(yīng)的包格式。RapidIO支持的邏輯層業(yè)務(wù)主要是:直接IO/DMA (Direct IO/Direct Memory Access)和消息傳遞(Message Passing)。

直接IO/DMA模式是最簡單實(shí)用的傳輸方式,其前提是主設(shè)備知道被訪問端的存儲器映射。在這種模式下,主設(shè)備可以直接讀寫從設(shè)備的存儲器。直接 IO/DMA在被訪問端的功能往往完全由硬件實(shí)現(xiàn),所以被訪問的器件不會有任何軟件負(fù)擔(dān)。從功能上講,這一特點(diǎn)和DSP的傳統(tǒng)的主機(jī)接口 (HPI, Host Port Interface)類似。但和HPI口相比,SRIO(Serial RapidIO)帶寬大,管腳少,傳輸方式更靈活。

對上層應(yīng)用來說,發(fā)起直接IO/DMA傳輸主要需提供以下參數(shù):目地器件ID、數(shù)據(jù)長度、數(shù)據(jù)在目地器件存儲器中的地址。

直接IO/DMA模式又可進(jìn)一步分為以下幾種傳輸格式:

1. NWRITE: 寫操作,不要求接收端響應(yīng)。
2. NWRITE_R: 帶響應(yīng)的NWRITE(NWRITE with Response),要求接收端響應(yīng)。
3. SWRITE:流寫(Stream Write),數(shù)據(jù)長度必須是8字節(jié)的整數(shù)倍,不要求接收端響應(yīng)。
4. NREAD: 讀操作。

SWRITE是最高效的傳輸格式;帶響應(yīng)的寫操作或讀操作效率則較低,一般只能達(dá)到不帶響應(yīng)的傳輸?shù)男实囊话搿?br />消息傳遞(Message Passing)模式則類似于以太網(wǎng)的傳輸方式,它不要求主設(shè)備知道被訪問設(shè)備的存儲器狀況。數(shù)據(jù)在被訪問設(shè)備中的位置則由郵箱號(類似于以太網(wǎng)協(xié)議中的端口號)確定。從設(shè)備根據(jù)接收到的包的郵箱號把數(shù)據(jù)保存到對應(yīng)的緩沖區(qū),這一過程往往無法完全由硬件實(shí)現(xiàn),而需要軟件協(xié)助,所以會帶來一些軟件負(fù)擔(dān)。
對上層應(yīng)用來說,發(fā)起消息傳遞主要需提供以下參數(shù):目地器件ID、數(shù)據(jù)長度、郵箱號。

表2比較了直接IO/DMA和消息傳遞模式。
表2 直接IO/DMA和消息傳遞的對比
直接IO/DMA 消息傳遞
主機(jī)可直接訪問從機(jī)存儲器? 可以 不可以
主機(jī)需要知道從機(jī)存儲器映射? 需要 不需要
數(shù)據(jù)尋址方式 存儲器地址 郵箱號
支持的數(shù)據(jù)訪問方式 讀/寫 寫
從機(jī)軟件負(fù)擔(dān) 無 有
傳輸層協(xié)議

RapidIO是基于包交換的互連,傳輸層定義了包交換的路由和尋址機(jī)制。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉