串行 RapidIO: 高性能嵌入式互連技術(shù)
為了滿(mǎn)足靈活性和可擴展性的要求,RapidIO協(xié)議分為三層:邏輯層、傳輸層和物理層。圖2說(shuō)明了RapidIO協(xié)議的分層結構。
圖2 RapidIO協(xié)議分層結構
邏輯層定義了操作協(xié)議; 傳輸層定義了包交換、路由和尋址機制;物理層定義了電氣特性、鏈路控制和糾錯重傳等。
象以太網(wǎng)一樣,RapidIO也是基于包交換的互連技術(shù)。如圖3所示,RapidIO包由包頭、可選的載荷數據和16bits CRC校驗組成。包頭的長(cháng)度因為包類(lèi)型不同可能是十幾到二十幾個(gè)字節。每包的載荷數據長(cháng)度不超過(guò)256字節,這有利于減少傳輸時(shí)延,簡(jiǎn)化硬件實(shí)現。
圖3 RapidIO包格式
上述包格式定義兼顧了包效率及組包/解包的簡(jiǎn)單性。RapidIO交換器件僅需解析前后16bits,以及源/目地器件ID,這簡(jiǎn)化了交換器件的實(shí)現。
邏輯層協(xié)議
邏輯層定義了操作協(xié)議和相應的包格式。RapidIO支持的邏輯層業(yè)務(wù)主要是:直接IO/DMA (Direct IO/Direct Memory Access)和消息傳遞(Message Passing)。
直接IO/DMA模式是最簡(jiǎn)單實(shí)用的傳輸方式,其前提是主設備知道被訪(fǎng)問(wèn)端的存儲器映射。在這種模式下,主設備可以直接讀寫(xiě)從設備的存儲器。直接 IO/DMA在被訪(fǎng)問(wèn)端的功能往往完全由硬件實(shí)現,所以被訪(fǎng)問(wèn)的器件不會(huì )有任何軟件負擔。從功能上講,這一特點(diǎn)和德州儀器DSP的傳統的主機接口 (HPI, Host Port Interface)類(lèi)似。但和HPI口相比,SRIO(Serial RapidIO)帶寬大,管腳少,傳輸方式更靈活。
對上層應用來(lái)說(shuō),發(fā)起直接IO/DMA傳輸主要需提供以下參數:目地器件ID、數據長(cháng)度、數據在目地器件存儲器中的地址。
直接IO/DMA模式又可進(jìn)一步分為以下幾種傳輸格式:
1. NWRITE: 寫(xiě)操作,不要求接收端響應。
2. NWRITE_R: 帶響應的NWRITE(NWRITE with Response),要求接收端響應。
3. SWRITE:流寫(xiě)(Stream Write),數據長(cháng)度必須是8字節的整數倍,不要求接收端響應。
4. NREAD: 讀操作。
SWRITE是最高效的傳輸格式;帶響應的寫(xiě)操作或讀操作效率則較低,一般只能達到不帶響應的傳輸的效率的一半。
消息傳遞(Message Passing)模式則類(lèi)似于以太網(wǎng)的傳輸方式,它不要求主設備知道被訪(fǎng)問(wèn)設備的存儲器狀況。數據在被訪(fǎng)問(wèn)設備中的位置則由郵箱號(類(lèi)似于以太網(wǎng)協(xié)議中的端口號)確定。從設備根據接收到的包的郵箱號把數據保存到對應的緩沖區,這一過(guò)程往往無(wú)法完全由硬件實(shí)現,而需要軟件協(xié)助,所以會(huì )帶來(lái)一些軟件負擔。
對上層應用來(lái)說(shuō),發(fā)起消息傳遞主要需提供以下參數:目地器件ID、數據長(cháng)度、郵箱號。
表2比較了直接IO/DMA和消息傳遞模式。
表2 直接IO/DMA和消息傳遞的對比
直接IO/DMA 消息傳遞
主機可直接訪(fǎng)問(wèn)從機存儲器? 可以 不可以
主機需要知道從機存儲器映射? 需要 不需要
數據尋址方式 存儲器地址 郵箱號
支持的數據訪(fǎng)問(wèn)方式 讀/寫(xiě) 寫(xiě)
從機軟件負擔 無(wú) 有
傳輸層協(xié)議
RapidIO是基于包交換的互連技術(shù),傳輸層定義了包交換的路由和尋址機制。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論