劉順佳
(復(fù)旦大學(xué)電子工程系,上海200433)
·微機(jī)網(wǎng)絡(luò)與通信·
一種用于系統(tǒng)互連的實(shí)時(shí)自主同步串行總線
劉順佳
(復(fù)旦大學(xué)電子工程系,上海200433)
針對(duì)當(dāng)前小型化和高密度化的設(shè)計(jì)需求,提出了一種用于系統(tǒng)互連的實(shí)時(shí)自主同步串行總線,其能有效替代當(dāng)前使用大量通用輸入輸出進(jìn)行控制及指示信號(hào)傳輸?shù)膫鹘y(tǒng)做法,實(shí)現(xiàn)更高效的系統(tǒng)板內(nèi)及板間互連。
通用輸入輸出;同步串行總線;系統(tǒng)互連
硬件設(shè)計(jì)中經(jīng)常采用通用輸入輸出(General Purpose Input and Output,簡(jiǎn)稱GPIO)進(jìn)行系統(tǒng)部件間的控制及指示信號(hào)傳輸。然而,隨著系統(tǒng)復(fù)雜度的增加,所需傳輸?shù)目刂萍爸甘拘盘?hào)的數(shù)量也隨之急劇增長(zhǎng)。小型化和高密度化已經(jīng)成為當(dāng)今硬件設(shè)計(jì)的趨勢(shì),而采用大量的通用輸入輸出信號(hào)進(jìn)行板內(nèi)或板間互連的傳統(tǒng)方式給布局布線及線纜設(shè)計(jì)帶來(lái)了極大負(fù)擔(dān)。如何簡(jiǎn)化系統(tǒng)互連,尤其是減少所需的信號(hào)連接數(shù)是擺在硬件設(shè)計(jì)者面前的一個(gè)重要難題。
大多數(shù)設(shè)計(jì)中,控制與指示信號(hào)的變化頻率較慢,從信息量的角度上講,其所需傳輸?shù)男畔⒘枯^少,因而設(shè)計(jì)中完全可以使用串行方式利用更少量的信號(hào)傳輸同樣的信息量。目前業(yè)界已開(kāi)發(fā)出各種不同類型的串行總線協(xié)議,如UART[1],I2C[2],SPI[3]等,然而這些協(xié)議主要適用于數(shù)據(jù)而非控制信號(hào)傳輸。其主要原因在于,控制信號(hào)相比通用數(shù)據(jù)而言,對(duì)延時(shí)有更加嚴(yán)格的要求,而上述協(xié)議需要依賴于運(yùn)行在主設(shè)備端的軟件發(fā)起及控制傳輸,無(wú)法脫離軟件獨(dú)立運(yùn)行,因而實(shí)時(shí)性較差。當(dāng)前最接近該應(yīng)用需求的是一種用于主機(jī)總線適配器(Host Bus Adaptor)和存儲(chǔ)背板(Backplane)間的串行通用輸入輸出協(xié)議SFF-8485[4],又稱為SGPIO,其對(duì)實(shí)時(shí)性有一定保證且可脫離軟件獨(dú)立運(yùn)行。然而該總線仍為主從模式,主要針對(duì)點(diǎn)對(duì)點(diǎn)間的傳輸,無(wú)法支持多個(gè)設(shè)備間的雙向互連,在實(shí)際使用中有一定的局限性。由于現(xiàn)有協(xié)議均無(wú)法滿足需求,所以在當(dāng)前大部分實(shí)際設(shè)計(jì)中,并行互連的傳統(tǒng)做法依然較為普遍。
這里針對(duì)當(dāng)前應(yīng)用需要,提出了一種用于系統(tǒng)間互連的自主實(shí)時(shí)同步串行總線,又名Rodia總線。其實(shí)現(xiàn)邏輯簡(jiǎn)單且具有實(shí)時(shí)性保證,支持多設(shè)備間互連且所有傳輸自主完成無(wú)需軟件干預(yù),非常適合于替代當(dāng)前使用大量通用輸入輸出進(jìn)行控制及指示信號(hào)傳輸?shù)膫鹘y(tǒng)做法,從而實(shí)現(xiàn)更高效的系統(tǒng)板內(nèi)及板間互連。
圖1概括了某個(gè)實(shí)際系統(tǒng)中各部件間的互連需求。該系統(tǒng)包含4個(gè)部件,分別為部件1至部件4,其中部件1輸出10組控制線至部件2及部件3,且接收5組來(lái)自部件3的控制線;部件2除接收10組來(lái)自部件1的控制信號(hào)外,還接收8組來(lái)自部件4,以及5組來(lái)自部件3的控制信號(hào),并同時(shí)輸出5組控制信號(hào)至部件3;部件3一共接收23組控制線,其中10組來(lái)自部件1,5組來(lái)自部件2,8組來(lái)自部件4,除此之外,部件3還輸出4組控制線至部件4;部件4的連接相對(duì)簡(jiǎn)單,其輸出8組控制線至部件2及部件3,接收4組來(lái)自部件3的控制信號(hào)。在該連接關(guān)系內(nèi),若直接將輸入輸出信號(hào)進(jìn)行互連則一共需要55組信號(hào)連接。若55組均為板內(nèi)互連,則意味著布線空間的占據(jù)。若均為板間互聯(lián),則對(duì)應(yīng)著接插件及線纜的復(fù)雜度、尺寸及成本的提高。
如若采用一種新型總線,又名Rodia總線進(jìn)行互連則僅需三組信號(hào):時(shí)鐘信號(hào)(CLK),幀同步信號(hào)(FRAME)及雙向數(shù)據(jù)信號(hào)(DATA),如圖2所示。其中,接口芯片負(fù)責(zé)將其所屬部件的并行輸入與輸出轉(zhuǎn)換至Rodia總線上進(jìn)行傳輸,接口芯片內(nèi)的配置空間用于進(jìn)行指定并行輸入輸出端口與Rodia總線幀內(nèi)比特的映射關(guān)系,在最終產(chǎn)品中通過(guò)將接口芯片集成在部件的主控芯片中,可進(jìn)一步節(jié)約實(shí)現(xiàn)成本;時(shí)鐘及幀發(fā)生器用于產(chǎn)生總線所需的時(shí)鐘及幀同步信號(hào),其邏輯相對(duì)簡(jiǎn)單,但在設(shè)計(jì)過(guò)程中需根據(jù)互連信號(hào)的數(shù)量及各信號(hào)允許的最大延時(shí)選擇合適的時(shí)鐘頻率及數(shù)據(jù)幀長(zhǎng)度,詳細(xì)的計(jì)算方法將在后續(xù)章節(jié)中進(jìn)行描述。在具體應(yīng)用中,時(shí)鐘及幀發(fā)生器可獨(dú)立存在,也可集成于接口芯片中,但在Rodia總線中,應(yīng)存在且僅存在一個(gè)有效的時(shí)鐘及幀發(fā)生器模塊。
圖1 某個(gè)實(shí)際系統(tǒng)互連需求
圖2 Rodia總線互連示意圖
圖3為Rodia總線的時(shí)序示意圖,其中雙向數(shù)據(jù)(DATA)信號(hào)及幀同步(FRAME)信號(hào)在時(shí)鐘的上升沿輸出,接收端則在時(shí)鐘的下降沿進(jìn)行采樣。FRAME為低意味著上一個(gè)數(shù)據(jù)幀的結(jié)束,而當(dāng)前DATA信號(hào)所對(duì)應(yīng)的數(shù)據(jù)為上一幀的最后一個(gè)比特,或稱為第N-1個(gè)比特,其中N為單個(gè)數(shù)據(jù)幀的寬度,而接下來(lái)的比特將為下一幀的第0個(gè)比特。
圖3 Rodia總線的時(shí)序示意圖
對(duì)接口芯片而言,DATA信號(hào)線為雙向輸入輸出信號(hào),即接口芯片可以對(duì)DATA信號(hào)進(jìn)行讀取以獲取數(shù)據(jù),也可驅(qū)動(dòng)DATA信號(hào)進(jìn)行數(shù)據(jù)輸出。由于多個(gè)接口芯片同時(shí)連接在同一總線上,因而需要特定機(jī)制避免總線沖突。通過(guò)對(duì)接口芯片內(nèi)的配置空間進(jìn)行合理配置,Rodia總線可有效地實(shí)現(xiàn)沖突避免。配置空間由一系列可編程的存儲(chǔ)字節(jié)組成,分別定義了每個(gè)并行輸出及并行輸入在數(shù)據(jù)幀中對(duì)應(yīng)的比特位置。接口芯片將根據(jù)配置空間內(nèi)的內(nèi)容,在相應(yīng)的比特位置對(duì)DATA數(shù)據(jù)信號(hào)進(jìn)行讀取或?qū)懭?。Rodia總線中不同接口芯片間的信號(hào)互連則是通過(guò)將同一比特位置分配給一個(gè)接口芯片的輸入及一個(gè)或多個(gè)其它接口芯片的輸出完成的。例如,假定比特n被指定給接口芯片m的某個(gè)輸入,若要實(shí)現(xiàn)該輸入與其它接口芯片輸出的等效互連,只需要將該比特位置n同時(shí)分配給其它接口芯片的輸出端口即可。使用Rodia總線的一個(gè)關(guān)鍵步驟是對(duì)輸入輸出與數(shù)據(jù)幀比特間的映射進(jìn)行規(guī)劃,主要原理是保證同一比特位置僅分配給一個(gè)接口芯片中的單個(gè)輸入。圖4給出了使用Rodia總線實(shí)現(xiàn)圖1等效連接時(shí)部件接口芯片配置空間的配置示例。配置空間的具體編程方法不屬于本協(xié)議的規(guī)定范疇,實(shí)現(xiàn)中可通過(guò)JTAG,I2C或者其它自定義協(xié)議完成。
圖4 使用Rodia總線部件接口芯片配置空間配置示例
圖5 接口芯片的典型內(nèi)部實(shí)現(xiàn)模塊圖
圖5是接口芯片的典型內(nèi)部實(shí)現(xiàn)模塊圖。其中CLK及FRAME連接內(nèi)部計(jì)數(shù)器用于記錄當(dāng)前時(shí)鐘周期在數(shù)據(jù)幀中所對(duì)應(yīng)的比特位,該計(jì)數(shù)器輸出將與存儲(chǔ)于配置空間的輸入輸出比特位信息分別進(jìn)行比較,若當(dāng)前比特位與某輸出所對(duì)應(yīng)的比特位相匹配,則相應(yīng)比較器輸出為高,從而驅(qū)動(dòng)輸出復(fù)用器選擇DATA(數(shù)據(jù)信號(hào))作為相應(yīng)輸出觸發(fā)器的輸入,因而DATA(數(shù)據(jù)信號(hào))將在該時(shí)鐘周期的下降沿輸出至輸出端口,否則該輸出端口將保持上一時(shí)刻輸出;若當(dāng)前比特位與配置空間中某輸入端口所對(duì)應(yīng)的比特位信息相匹配,則輸入復(fù)用器將選擇該輸入連接至輸入觸發(fā)器的D端口,并在下一個(gè)時(shí)鐘上升沿對(duì)該輸入進(jìn)行鎖存并驅(qū)動(dòng)DATA(數(shù)據(jù)信號(hào))。需要注意的是,對(duì)輸入端口而言,為補(bǔ)償上圖實(shí)現(xiàn)中引入的一個(gè)時(shí)鐘周期的延時(shí),配置空間所存儲(chǔ)的比特位數(shù)據(jù)并非實(shí)際的輸出比特位,而是前一比特位。例如,若某輸入端口對(duì)應(yīng)于比特2,則應(yīng)在配置空間中填入1;如對(duì)應(yīng)于比特0,而數(shù)據(jù)幀長(zhǎng)度為32,則應(yīng)在配置空間中填入31。
由此可見(jiàn),Rodia總線可支持多個(gè)設(shè)備且整個(gè)傳輸過(guò)程由硬件自主控制,無(wú)需軟件干預(yù),因而對(duì)于上層軟件完全透明且延時(shí)可控,能夠有效解決UART,I2C,SPI等總線應(yīng)用中的軟件復(fù)雜度及實(shí)時(shí)性顧慮。
在電器特性上,對(duì)于時(shí)鐘和幀同步發(fā)生器而言,CLK,F(xiàn)RAME應(yīng)為推挽輸入(Push-Pull)輸出,而對(duì)于接口芯片而言,CLK,F(xiàn)RAME為輸入信號(hào)、DATA為雙向輸入輸出信號(hào),且為開(kāi)漏輸出,另外CLK,F(xiàn)RAME,DATA輸入接收端都應(yīng)采用施密特觸發(fā)器結(jié)構(gòu)且具有不小于150mV的滯回閾值(hysteresis)以增強(qiáng)噪聲免疫力。Rodia總線對(duì)信號(hào)的電流驅(qū)動(dòng)能力以及電平標(biāo)準(zhǔn)沒(méi)有嚴(yán)格要求,但設(shè)計(jì)人員應(yīng)從信號(hào)完整性及時(shí)序兩方面上進(jìn)行分析以確定合適的拓?fù)浣Y(jié)構(gòu)及接口參數(shù)。
在Rodia總線中,時(shí)鐘頻率及數(shù)據(jù)幀長(zhǎng)度是兩個(gè)最重要的協(xié)議參數(shù)。設(shè)計(jì)人員應(yīng)依據(jù)系統(tǒng)互連所需的輸入輸出通道數(shù)量、允許的最大延時(shí)及拓?fù)浣Y(jié)構(gòu)進(jìn)行優(yōu)化。
首先是確定時(shí)鐘頻率,某特定設(shè)計(jì)所能支持的最高時(shí)鐘頻率將受到拓?fù)浣Y(jié)構(gòu)及接口芯片特性的限制,而所需的最低時(shí)鐘頻率則由系統(tǒng)互連所需的信號(hào)數(shù)目總和,以及每個(gè)信號(hào)所允許的最大延時(shí)決定。若某系統(tǒng)互連所需的信號(hào)通道數(shù)為m,而各信號(hào)所允許的最大延時(shí)分別為d(n)(n=1~m),為滿足要求,時(shí)鐘頻率f應(yīng)不低于:fmin=m/min(d(n))(n=1~m)。若fmin高于拓?fù)浣涌诩敖涌谛酒匦运试S的最大時(shí)鐘,則意味著該設(shè)計(jì)需求無(wú)法用一條Rodia總線進(jìn)行滿足,此時(shí)可以考慮使用多條Rodia總線進(jìn)行實(shí)現(xiàn),從而將m個(gè)信號(hào)分布在兩條或者多條Rodia總線上。多條Rodia總線可以使用共用時(shí)鐘及幀同步信號(hào)的方式進(jìn)一步降低連接所需的信號(hào)數(shù)量,例如可以通過(guò)5根信號(hào)實(shí)現(xiàn)3組擁有相同時(shí)鐘頻率及幀長(zhǎng)度的Rodia總線。
數(shù)據(jù)幀長(zhǎng)度的選擇相對(duì)簡(jiǎn)單,若時(shí)鐘頻率選定為f,則數(shù)據(jù)幀長(zhǎng)度應(yīng)大于系統(tǒng)互連所需的信號(hào)通道數(shù)m并小于f*min(d(n))(n=1~m)。當(dāng)使用多條Rodia總線實(shí)現(xiàn)時(shí),所有Rodia數(shù)據(jù)幀的長(zhǎng)度總和應(yīng)大于m,且每條總線的數(shù)據(jù)幀長(zhǎng)度應(yīng)小于f*min(d(n’))(n’=所有映射到該總線的信號(hào)通道集合)。
筆者使用了System Verilog硬件描述語(yǔ)言對(duì)Rodia總線接口芯片進(jìn)行了建模,并實(shí)現(xiàn)了圖2所示的拓?fù)浣Y(jié)構(gòu),其中假定互連信號(hào)所允許的最大延時(shí)為10us,因而時(shí)鐘頻率設(shè)定為10MHz,幀長(zhǎng)度為32。圖6的仿真結(jié)果表明Rodia總線在滿足信號(hào)延時(shí)不高于3.2us的基礎(chǔ)上,僅用3根信號(hào)線即實(shí)現(xiàn)了等效于圖1的復(fù)雜系統(tǒng)互連。
圖6 Rodia總線系統(tǒng)仿真結(jié)果
小型化和高密度化的設(shè)計(jì)趨勢(shì)對(duì)系統(tǒng)互連提出了新的挑戰(zhàn),而依賴大量通用輸入輸出信號(hào)進(jìn)行系統(tǒng)互連的傳統(tǒng)做法顯然無(wú)法滿足這一需求。向串行總線過(guò)渡已漸漸成為業(yè)界共識(shí)。然而當(dāng)前業(yè)界已有的串行總線協(xié)議均無(wú)法滿足多設(shè)備支持、實(shí)時(shí)性及軟件透明等多方面的需求,因而在大多情況下仍無(wú)法完全替代傳統(tǒng)做法。Rodia總線則是針對(duì)該目標(biāo)的全新嘗試。當(dāng)然一個(gè)總線的成熟還需要在應(yīng)用和實(shí)踐中進(jìn)行反復(fù)驗(yàn)證和調(diào)整,筆者也將在以后的設(shè)計(jì)工作中進(jìn)一步對(duì)該總線進(jìn)行實(shí)際應(yīng)用及測(cè)試。
[1]Adam Osborne,An Introduction to Microcomputers Volume1:Basic Concepts[M].Osborne-McGraw Hill Berkeley California USA,1980.
[2]UM10204:I2C-bus specification and usermanual Rev.5[S].NXP,2012.9.(http://www.nxp.com/documents/user_manual/UM10204.pdf).
[3]俞承芳,虞惠華,楊翠微.微機(jī)系統(tǒng)與接口實(shí)驗(yàn)[M].上海:復(fù)旦大學(xué)出版社,2005.
[4]SFF Committee:SFF-8485 Specification for Serial GPIO(SGPIO)Bus Rev 0.7[S].2006.2.(ftp://ftp.seagate.com/sff/SFF-8485.PDF).
A Real-time Autonomous Synchronized Serial Bus for System Interconnect
LIU Shun-jia
(Department of Electronic Engineering,F(xiàn)udan University,Shanghai200433,China)
As to the design requirement ofminiature and higher density for the product,a real-time autonomous synchronized serial bus for system interconnect is proposed,realizingmore efficient solution for both intra-board and inter-board connection,which can be used to replace the traditional solution that uses a great number of GPIOs and lead to a significant overhead to the design.
GPIO;Synchronized serial bus;System interconnect
10.3969/j.issn.1002-2279.2014.01.006
TN710.9
:B
:1002-2279(2014)01-0018-04
劉順佳(1984-),女,浙江鎮(zhèn)海人,碩士研究生,主研方向:硬件設(shè)計(jì)。
2013-08-28