Rapid IO---成就高速互連之美
在過(guò)去的30多年時(shí)間內(nèi),處理器的主頻和性能呈現(xiàn)指數(shù)上升的趨勢(shì),而與之相對(duì)應(yīng)的處理器總線傳送能力的增長(zhǎng)卻相對(duì)緩慢的多,這就導(dǎo)致了由時(shí)鐘頻率表征的CPU的性能和由總線頻率表征的CPU可用的總線帶寬之間的差距不斷在變大,互連總線成為高速運(yùn)算和處理系統(tǒng)的瓶頸?,F(xiàn)代的高性能計(jì)算系統(tǒng)和網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)需要更高速率的數(shù)據(jù)傳送。高帶寬、低延遲,高可靠性成為衡量一個(gè)總線技術(shù)的基本要求。
本文引用地址:http://www.ex-cimer.com/article/258683.htm
一、 傳統(tǒng)總線的問(wèn)題:
傳統(tǒng)總線多采用并線總線的工作方式,這類(lèi)總線一般分為三組:數(shù)據(jù)線,地址線和控制線。實(shí)現(xiàn)此類(lèi)總線互連的器件所需引腳數(shù)較多,例如對(duì)于64位數(shù)據(jù)寬的總線,一般由64根數(shù)據(jù)線,32-40根地址線以及30根左右的控制線,另外由于半導(dǎo)體制造工藝的限制還要加上一定數(shù)量的電源引線和地線,總共會(huì)有約200根左右的引線,這給器件封裝、測(cè)試、焊接都帶來(lái)了一些問(wèn)題,如果要將這種總線用于系統(tǒng)之間的通過(guò)背板的互連,由此帶來(lái)的困難就可想而知。
為了提高總線的傳輸能力,傳統(tǒng)總線多采用增加數(shù)據(jù)總線的寬度或是增加總線的頻率的方式來(lái)實(shí)現(xiàn)。如PCI總線支持25M、33M、50M、66M的工作頻率,PCI-X總線是在PCI總線結(jié)構(gòu)的基礎(chǔ)上進(jìn)得到的一種總線結(jié)構(gòu),在硬件和軟件上兼容PCI總線,PCI-X總線可以支持32bit、64bit的總線,其工作頻率為66M、133M,對(duì)于64bit的PCI-X,如果其總線工作頻率為133MHz,其峰值傳送帶寬可達(dá)到133×64bit=8.512Gbps。目前PCI-X也有一些版本定義了總線頻率為266MHz或者533MHz的總線,另外也有一些總線定義了數(shù)據(jù)寬度為128bit 或是256bit的總線,但很少有人會(huì)選用這樣的總線,因?yàn)樵黾涌偩€頻率和數(shù)據(jù)帶寬雖然一定程度上滿足了人們對(duì)高速數(shù)據(jù)傳送的需求,但同時(shí)也帶來(lái)了一些新的問(wèn)題。更寬的總線導(dǎo)致器件引腳數(shù)的增加,從而增加封裝尺寸,當(dāng)然帶來(lái)成本上的增加。
另一個(gè)問(wèn)題是當(dāng)總線的工作頻率超過(guò)133MHz時(shí),很難在一條總線上支持超過(guò)兩個(gè)外部設(shè)備,在總線上增加器件相當(dāng)于增加容性負(fù)載,而容性負(fù)載的增加意味著裝載或排空電荷使總線達(dá)到所需的額定電平的時(shí)間增長(zhǎng),信號(hào)的上升和下降時(shí)間的增長(zhǎng)會(huì)限制總線的工作頻率。對(duì)于并線總線的另一個(gè)問(wèn)題是時(shí)鐘與信號(hào)的偏移容限的問(wèn)題,對(duì)于這樣一組并行信號(hào)線的集合,信號(hào)的采樣是取決于時(shí)鐘信號(hào)的上升沿或是下降沿,這樣對(duì)于信號(hào)的跳變和時(shí)鐘的跳變時(shí)刻的時(shí)間差就有一個(gè)上限值,隨著速率的升高,布線長(zhǎng)度、器件門(mén)電路自身的翻轉(zhuǎn)時(shí)間都會(huì)影響總線的速率。
用于處理器之間互連以及背板互連的另一個(gè)主要技術(shù)是以太網(wǎng),近些年來(lái),以太網(wǎng)在存儲(chǔ)、電信、通訊、無(wú)線、工業(yè)應(yīng)用以及嵌入式應(yīng)用中得到大量的應(yīng)用,現(xiàn)有的成熟的硬件和協(xié)議棧降低了開(kāi)發(fā)的復(fù)雜性和產(chǎn)品的開(kāi)發(fā)成本。但是在局域網(wǎng)和廣域網(wǎng)中得到很好應(yīng)用的以太網(wǎng)用于這種芯片級(jí)或是板極的系統(tǒng)互連顯示出了低效率、高延時(shí)的特性,QOS需要高層軟件的參與,造成軟件模塊化結(jié)構(gòu)不清晰。尤其是當(dāng)背板的傳輸速率從1Gbps增加到10Gbps時(shí),增加的處理要求已經(jīng)超出了以太網(wǎng)的能力。
二、什么是Rapid IO?
Rapid IO技術(shù)最初是由Freescale 和Mercury 共同研發(fā)的一項(xiàng)互連技術(shù),其研發(fā)初衷是作為處理器的前端總線,用于處理器之間的互連,但在標(biāo)準(zhǔn)制定之初,其創(chuàng)建者就意識(shí)到了RapidIO還可以做為系統(tǒng)級(jí)互連的高效前端總線而使用。1999年完成第一個(gè)標(biāo)準(zhǔn)的制定,2003 年5月,Mercury Computer Systems公司首次推出使用Rapid IO技術(shù)的多處理器系統(tǒng)ImpactRT 3100, 表明Rapid IO已由一個(gè)標(biāo)準(zhǔn)制定階段進(jìn)展到產(chǎn)品階段,到目前為止,Rapid IO已經(jīng)成為電信,通迅以及嵌入式系統(tǒng)內(nèi)的芯片與芯片之間,板與板之間的背板互連技術(shù)的生力軍。
Rapid IO 是針對(duì)嵌入式系統(tǒng)的獨(dú)特互連需求而提出的,那么我們首先來(lái)說(shuō)明嵌入式系統(tǒng)互連的一些基本需求:嵌入式系統(tǒng)需要的是一種標(biāo)準(zhǔn)化的互連設(shè)計(jì),要滿足以下幾個(gè)基本的特點(diǎn):高效率、低系統(tǒng)成本,點(diǎn)對(duì)點(diǎn)或是點(diǎn)對(duì)多點(diǎn)的通信,支持DMA操作,支持消息傳遞模式交換數(shù)據(jù),支持分散處理和多主控系統(tǒng),支持多種拓樸結(jié)構(gòu);另外,高穩(wěn)定性和QOS也是選擇嵌入式系統(tǒng)總線的基本原則。而這些恰是Rapid IO期望滿足的方向。所以Rapid IO在制定之初即確定了以下幾個(gè)基本原則:一是輕量型的傳輸協(xié)議,使協(xié)議盡量簡(jiǎn)單;二是對(duì)軟件的制約要少,層次結(jié)構(gòu)清晰;三是專注于機(jī)箱內(nèi)部芯片與芯片之間,板與板之間的互連。
Rapid IO采用三層分級(jí)的體系結(jié)構(gòu),分級(jí)結(jié)構(gòu)圖如下圖所示:
由此圖可見(jiàn),Rapid IO協(xié)議由邏輯層、傳輸層和物理層構(gòu)成。最明顯的一個(gè)特點(diǎn)就是Rapid IO采用了單一的公用傳輸層規(guī)范來(lái)相容、會(huì)聚不同的邏輯層和物理層,單一的邏輯層實(shí)體增強(qiáng)了Rapid IO的適應(yīng)性。
物理層定義了串行和并行兩個(gè)實(shí)體,得到廣泛應(yīng)用的只有串行方式,尤其是用在背板互連的場(chǎng)合,串行方式可以在兩個(gè)連接器之間允許80-100cm的連線,單鏈路傳輸帶寬可達(dá)10Gbps。目前Rapid IO的標(biāo)準(zhǔn)是Version1.3,在未來(lái)的Version2.0規(guī)范中定義了更高的傳輸速率,可以得到更高的傳輸帶寬。
物理層:
Rapid IO規(guī)范中定義的最低層是物理層,最初定義的是并行總線,之后定義了串行總線,并線總線可以選擇8位或16位的寬度,傳輸電平采用LVDS方式,時(shí)鐘信息在一對(duì)單獨(dú)的差分線上傳送,不在數(shù)據(jù)流中編碼,頻率在250M-1.0G之間。相比串行總線而言,無(wú)多少優(yōu)點(diǎn)可言,所以只是在最初有支持這種總線的芯片出現(xiàn),目前幾乎所有的物理層均采用了串行方式。
串行物理層定義了器件間的全雙工串行鏈路,在每個(gè)方向上支持1個(gè)串行差分對(duì)稱為1個(gè)通道(1x),或同時(shí)支持4個(gè)并行的串行差分對(duì)稱為4通道(4x),接口的電氣特性采用成熟的XAUI(10GbE Attachment Unit Interface)接口,編碼方式采用的是8B/10B編碼,對(duì)鏈路的管理,包括流量控制,包定界和錯(cuò)誤報(bào)告等使用專用的8B/10B碼(即K碼),接收端從鏈路上提取時(shí)鐘信息,無(wú)需獨(dú)立的時(shí)鐘線。每一個(gè)通道支持三種不同的傳送波特率1.25G,2.5G,3.125G(與之相對(duì)應(yīng)的數(shù)據(jù)速率分別是1.0G,2.0G,2.5Gbps)。
圖:Control symbol 包的結(jié)構(gòu)
Rapid IO是一種基于可靠傳送的協(xié)議,每一個(gè)數(shù)據(jù)據(jù)包的傳送均要求對(duì)端在物理層上響應(yīng)一個(gè)控制符號(hào)包,此包是一個(gè)4個(gè)字節(jié)的數(shù)據(jù)包,表明了數(shù)據(jù)包的傳送狀態(tài),數(shù)據(jù)包是否被對(duì)方接方,還是要求重新發(fā)送或是包未被接收。發(fā)送方和接收方均可以使用控制符號(hào)包來(lái)獲得對(duì)方的狀態(tài)。
圖:Rapid IO包結(jié)構(gòu)及物理層組成
評(píng)論