專利名稱:基于時(shí)間的加權(quán)循環(huán)仲裁器的制作方法
技術(shù)領(lǐng)域:
0001本發(fā)明涉及一種基于時(shí)間的加權(quán)循環(huán)仲裁器,且更具體地說(shuō),涉及一種能夠支持同步通信量的用于PCI Express總線到PCI橋的仲裁器。
背景技術(shù):
0002外設(shè)部件互聯(lián)(PCI)是在1992年開發(fā)的并行總線體系結(jié)構(gòu),它已經(jīng)成為用于個(gè)人計(jì)算機(jī)和類似平臺(tái)的主要局域總線。這個(gè)技術(shù)的實(shí)現(xiàn)已接近其實(shí)際的性能限制,并且其頻率不容易按比例增加或者電壓不容易按比例減小。采用點(diǎn)對(duì)點(diǎn)傳輸?shù)男麦w系結(jié)構(gòu)具有更高的速度,而且對(duì)日后的改進(jìn)是可升級(jí)的,它被稱作“PCI快速總線(PCIExpress)”。
0003PCI Express的一個(gè)優(yōu)勢(shì)是具有傳遞同步數(shù)據(jù)的能力。新版電力電子術(shù)語(yǔ)IEEE標(biāo)準(zhǔn)字典,第五版,將“同步(isochronous)”定義為在已知的周期性時(shí)間間隔再次發(fā)生的事件或信號(hào)的時(shí)間特性。就體系結(jié)構(gòu)而言,同步數(shù)據(jù)的傳輸要求總線具有保證的最小帶寬和最長(zhǎng)等待時(shí)間或時(shí)延,從而維持?jǐn)?shù)據(jù)的同步。視頻數(shù)據(jù)是同步數(shù)據(jù),原因是數(shù)據(jù)幀必須在特定時(shí)間到達(dá),或數(shù)據(jù)必須沒(méi)有值。
0004PCI Express到PCI橋允許PCI設(shè)備被連接到PCI Express體系結(jié)構(gòu)內(nèi)的PCI總線。在PCI總線體系結(jié)構(gòu)中,總線仲裁器采用循環(huán)仲裁,仲裁對(duì)總線上的所有設(shè)備都是“平等的”。一旦總線上的某一設(shè)備接收到使用總線的準(zhǔn)許,該設(shè)備就能保持在總線上,直到事務(wù)處理完成,或直到4千字節(jié)的數(shù)據(jù)已經(jīng)被傳送,所以同步不能被保證。
0005圖1示出了實(shí)現(xiàn)標(biāo)準(zhǔn)的PCI Express到PCI橋112的計(jì)算機(jī)系統(tǒng)100的方框圖。該橋被線108耦連到PCI Express結(jié)構(gòu)(一種互聯(lián)的設(shè)備和轉(zhuǎn)換器的網(wǎng)絡(luò))106,PCI Express結(jié)構(gòu)106由線104耦連到CPU102。PCI Express結(jié)構(gòu)還通過(guò)線110耦連到其它設(shè)備(未示出)。PCI總線114被連接到該橋,并分別連接到兩個(gè)PCI應(yīng)用116,120上。每個(gè)應(yīng)用分別有請(qǐng)求/準(zhǔn)許線118和122。PCI應(yīng)用120是同步的,并通過(guò)線124連接到同步結(jié)構(gòu),諸如符合IEEE 1394標(biāo)準(zhǔn)的設(shè)備。由于PCI體系結(jié)構(gòu)運(yùn)行的方式,來(lái)自其它PCI應(yīng)用的干擾通信量將具有相同的優(yōu)先權(quán),并干擾來(lái)自PCI應(yīng)用120的同步數(shù)據(jù)傳輸。
0006因此,即使PCI總線不支持同步數(shù)據(jù)傳輸特征,但也需要能提供同步數(shù)據(jù)傳輸?shù)腜CI總線仲裁器。
發(fā)明內(nèi)容
0007本發(fā)明的一個(gè)總目標(biāo)是提供一種允許PCI總線提供同步數(shù)據(jù)傳輸?shù)腜CI總線仲裁器。
0008根據(jù)本發(fā)明的一個(gè)方面,PCI總線基于時(shí)間的加權(quán)循環(huán)仲裁器提供了上述目標(biāo)和其它目標(biāo)及特征,該基于時(shí)間的加權(quán)循環(huán)仲裁器包括包含多個(gè)階段的階段表,每個(gè)階段被分配給PCI總線上的一個(gè)端口。仲裁器狀態(tài)機(jī)被耦連到階段表,以一次查看多個(gè)階段。當(dāng)預(yù)定數(shù)目的階段已經(jīng)分配給單個(gè)端口時(shí),仲裁器狀態(tài)機(jī)選擇使用PCI總線的下一個(gè)總線主控器(bus master)。
0009本發(fā)明的另一個(gè)方面包括PCI總線仲裁器內(nèi)的仲裁器裝置,用以保證用于傳輸同步數(shù)據(jù)的預(yù)定時(shí)間,仲裁器裝置包括用于將時(shí)間周期劃分成預(yù)定數(shù)目的階段的裝置,每個(gè)階段被分配給PCI總線上的一個(gè)端口。仲裁器狀態(tài)機(jī)響應(yīng)用來(lái)劃分的裝置,以準(zhǔn)許選擇的端口使用PCI總線。
0010本發(fā)明進(jìn)一步的方面包括一種操作PCI總線的方法,該方法包括提供基于時(shí)間的仲裁器,以給總線上的每個(gè)設(shè)備分配預(yù)定的時(shí)間,并在預(yù)定的時(shí)間中執(zhí)行總線事務(wù)處理。終止總線事務(wù)處理,目的是為總線上的設(shè)備之一保證傳遞數(shù)據(jù)的同步。
0011圖1示出了實(shí)現(xiàn)標(biāo)準(zhǔn)PCI Express到PCI橋的計(jì)算機(jī)系統(tǒng)的方框圖;0012圖2示出了將本發(fā)明的PCI總線仲裁器實(shí)現(xiàn)為狀態(tài)機(jī);和0013圖3圖解說(shuō)明了圖2的狀態(tài)機(jī)給PCI總線上的設(shè)備發(fā)出準(zhǔn)許信號(hào)時(shí)的操作。
具體實(shí)施例方式
0014PCI總線是同步總線體系結(jié)構(gòu),在這種總線體系結(jié)構(gòu)中所有的數(shù)據(jù)傳送是相對(duì)于系統(tǒng)時(shí)鐘,諸如圖3所示的信號(hào)PCI CLK執(zhí)行的。一開始,PCI總線運(yùn)行于33MHz的最大時(shí)鐘速度,其后被改成支持在66MHz下運(yùn)行。PCI標(biāo)準(zhǔn)實(shí)施32位多重地址和數(shù)據(jù)總線,其允許引線數(shù)減少,以降低PCI部件的成本和尺寸。在被稱作地址階段的第一時(shí)鐘脈沖邊沿期間,通過(guò)將地址驅(qū)動(dòng)到32位總線上,PCI總線周期被啟動(dòng)。通過(guò)使FRAME#信號(hào)有效,這個(gè)地址階段被表示。一個(gè)或更多個(gè)數(shù)據(jù)階段始于下一個(gè)時(shí)鐘脈沖邊沿,其中數(shù)據(jù)是在總線上傳送的。
0015所有的PCI設(shè)備在這個(gè)32位總線上是并行的。啟動(dòng)數(shù)據(jù)傳送的設(shè)備稱作起始器或總線主控器,接收數(shù)據(jù)的設(shè)備是目標(biāo),它是總線受控器(bus slave)。因?yàn)槟軌騿?dòng)數(shù)據(jù)傳送的所有PCI設(shè)備都是總線主控器,所以它們能控制總線來(lái)執(zhí)行數(shù)據(jù)傳送,而不需要CPU的幫助。這意味著總線本身必須包含控制電路,以當(dāng)兩個(gè)或更多個(gè)設(shè)備想同時(shí)傳送數(shù)據(jù)時(shí),解決沖突。稱作仲裁器的這個(gè)控制電路實(shí)現(xiàn)仲裁方案,目的是使每個(gè)設(shè)備“平等”訪問(wèn)總線?!捌降取敝俨玫哪繕?biāo)是當(dāng)設(shè)備需要訪問(wèn)總線時(shí),使所有設(shè)備都能訪問(wèn)總線,而不會(huì)產(chǎn)生使其它設(shè)備不能獲得訪問(wèn)的太長(zhǎng)延遲。確定允許設(shè)備在此時(shí)間內(nèi)傳送其數(shù)據(jù)的最長(zhǎng)時(shí)延或時(shí)間所需的信息包含在每個(gè)總線主控器的配置寄存器內(nèi)。實(shí)際的仲裁是被隱藏的,并且當(dāng)另一個(gè)總線事務(wù)處理正在進(jìn)行時(shí)出現(xiàn),所以只要已經(jīng)完成正在進(jìn)行的傳送,下一個(gè)總線主控器就能開始其傳送。
0016圖2示出了總體用200表示的能夠支持同步通信量流量的PCI總線仲裁器。該仲裁器包括階段表202和狀態(tài)機(jī)250。階段表202包含128個(gè)標(biāo)記為0-127的階段,每個(gè)階段都包含分配給該階段的PCI設(shè)備號(hào)的標(biāo)識(shí)。在圖2所示的實(shí)施方式中,通過(guò)使每個(gè)階段表?xiàng)l目的寬度是4位,可提供多達(dá)16個(gè)PCI設(shè)備。表1示出了5個(gè)PCI設(shè)備和一個(gè)PCI主控器狀態(tài)機(jī)的實(shí)現(xiàn)方式,作為示例性的實(shí)現(xiàn)方式,PCI主控器狀態(tài)機(jī)包括PCI總線仲裁器。
表1
0017從表1可以看出每個(gè)設(shè)備都有其自己的端口號(hào),并且除了PCI主控器狀態(tài)機(jī)以外的所有設(shè)備都有設(shè)備號(hào)和準(zhǔn)許號(hào)。
0018在PCI仲裁方案中,一旦仲裁器準(zhǔn)許設(shè)備訪問(wèn)總線,設(shè)備準(zhǔn)許號(hào)信號(hào)GNT#就被置為有效。這使設(shè)備監(jiān)視指示何時(shí)總線為空閑的FRAME#和RDY#信號(hào)的狀態(tài)。如果總線為空閑時(shí),準(zhǔn)許號(hào)信號(hào)仍是有效的,則設(shè)備啟動(dòng)其事務(wù)處理。階段表202中的每個(gè)階段或時(shí)隙包含分配給該階段的端口的端口ID。一旦階段表已經(jīng)被分配給該時(shí)隙的端口所占據(jù),則仲裁器是可操作的。在線208上的基于時(shí)間的仲裁信號(hào)被使能之后,仲裁器狀態(tài)機(jī)進(jìn)入Idol_arb狀態(tài)210。在此狀態(tài)下,仲裁器狀態(tài)機(jī)通過(guò)裝置206在階段表中向前看3個(gè)階段。如果仲裁器狀態(tài)機(jī)看到至少有3個(gè)連續(xù)的階段被用新總線主控器的ID編制,則它會(huì)選擇這個(gè)新的總線主控器作為使用PCI總線的下一個(gè)總線主控器。一旦做出選擇新的總線主控器的決定,仲裁器狀態(tài)機(jī)就會(huì)沿路徑214移動(dòng)到Issue_gnt狀態(tài)220。如果接下來(lái)的3個(gè)階段沒(méi)有被編制有相同的總線主控器標(biāo)識(shí),則仲裁器狀態(tài)機(jī)沿著路徑212,并保持在Idle_arb狀態(tài)210,直到接下來(lái)的3個(gè)階段被用相同的總線主控器標(biāo)識(shí)編制。
0019在狀態(tài)220,仲裁器狀態(tài)機(jī)繼續(xù)監(jiān)視階段表202中的接下來(lái)的3個(gè)階段。無(wú)論何時(shí)此“向前看”階段索引確定指示新的總線主控器階段正在臨近時(shí),仲裁器狀態(tài)機(jī)會(huì)從Issue_gnt狀態(tài)220沿路徑226移動(dòng)到Release_gnt狀態(tài)230。在此狀態(tài),會(huì)發(fā)生從一個(gè)總線主控器到另一個(gè)總線主控器的轉(zhuǎn)換。為了做出此決定,狀態(tài)機(jī)查看存儲(chǔ)在同時(shí)控制總線的總線主控器內(nèi)的配置寄存器。示例性的16位配置寄存器示于表2中。
表2
0020在表2中,位1和2確定仲裁器如何動(dòng)作。如果位1被設(shè)置為1,則128個(gè)階段基于時(shí)間的端口仲裁器(本發(fā)明的)是可操作的。如果此位被設(shè)置為0,則該仲裁器起使用“平等”仲裁方案的常規(guī)PCI總線仲裁器的作用。如果位2被設(shè)置為0,則該仲裁器會(huì)從一個(gè)總線主控器正常轉(zhuǎn)換到另一總線主控器。如果位2被設(shè)置為1,則該仲裁器會(huì)進(jìn)入“積極模式”,在這種情況下,第一總線主控器在事務(wù)處理的中間會(huì)被停止,以保持總線上的通信量的同步,這將在下文進(jìn)行討論。
0021PCI總線上的每個(gè)總線主控器都具有配置寄存器,該配置寄存器是用于該設(shè)備的最長(zhǎng)時(shí)延定時(shí)器寄存器。每個(gè)總線時(shí)鐘將該寄存器減1。如果仲裁器希望允許另一個(gè)設(shè)備訪問(wèn)總線,則仲裁器會(huì)將GNT#信號(hào)從當(dāng)前總線主控器移去。如果當(dāng)準(zhǔn)許信號(hào)被移去時(shí)時(shí)延寄存器為0或小于0,此設(shè)備就已經(jīng)獲得了最小的保證訪問(wèn)時(shí)間段,然后必須完成數(shù)據(jù)周期,并立即放棄對(duì)總線的控制。不管怎樣,如果寄存器的值是正的,則此設(shè)備可以繼續(xù)其傳送,直到寄存器的值達(dá)到0,此時(shí)它必須為下一個(gè)設(shè)備釋放總線。
0022如果位2被編制為0,則一旦總線狀態(tài)機(jī)已經(jīng)確定新的總線主控器將控制總線,則狀態(tài)機(jī)通過(guò)線226前進(jìn)到release_gnt230,在此情況下,總線主控器的準(zhǔn)許信號(hào)被釋放。仲裁器狀態(tài)機(jī)繼續(xù)停留在路徑232上等待當(dāng)前總線主控器完成其事務(wù)處理。然后仲裁器狀態(tài)機(jī)沿路徑236返回Idle_arb狀態(tài)210。
0023然而,如果位2被編制為1,則仲裁器狀態(tài)機(jī)仍沿路234前進(jìn)到PCI總線狀態(tài)機(jī)240。一旦處于此狀態(tài)下,PCI仲裁器狀態(tài)機(jī)將重置活動(dòng)的總線主控器的內(nèi)部時(shí)延定時(shí)器寄存器,這又使PCI總線在1或2個(gè)時(shí)間周期中被立即釋放。這允許新的總線主控器控制總線。這允許保持由新的總線主控器傳送的數(shù)據(jù)的同步,該數(shù)據(jù)直到當(dāng)前總線主控器已經(jīng)完成其事務(wù)處理才等待。
0024一旦動(dòng)作被仲裁器狀態(tài)機(jī)250確定,則動(dòng)作沿路徑234被傳送至PCI總線狀態(tài)機(jī)240。PCI總線狀態(tài)機(jī)240是與仲裁器狀態(tài)機(jī)分離的狀態(tài)機(jī)。它根據(jù)PCI總線標(biāo)準(zhǔn),被連接到PCI總線,并在PCI總線上生成信號(hào),諸如圖3所示的那些信號(hào),目的是從一個(gè)總線主控器至另一個(gè)總線主控器傳送對(duì)PCI總線的訪問(wèn)。路徑234并不是仲裁器狀態(tài)機(jī)250路徑,所以仲裁器狀態(tài)機(jī)250的控制不會(huì)來(lái)到PCI總線狀態(tài)機(jī)240。仲裁器狀態(tài)機(jī)250的控制沿路徑236從狀態(tài)230向前進(jìn)。因此,不需要來(lái)自狀態(tài)240的“返回路徑”,原因是路徑236將控制信號(hào)耦連到獨(dú)立的狀態(tài)機(jī),PCI總線狀態(tài)機(jī)240。應(yīng)該注意,盡管所示的時(shí)鐘信號(hào)僅來(lái)到狀態(tài)220和240,但它也被耦連到其它狀態(tài),只是為了說(shuō)明簡(jiǎn)潔進(jìn)行了省略。階段表202的每個(gè)片段表示100納秒的時(shí)隙。因此,需要10MHz的時(shí)鐘。在本實(shí)施方式中,200MHz時(shí)鐘信號(hào)是可用的,并被向下劃分以生成階段表時(shí)鐘。仲裁器狀態(tài)機(jī)的剩余部分和PCI總線狀態(tài)機(jī)運(yùn)行在33或66MHz的PCI總線時(shí)鐘。
0025圖3示出了除了仲裁器之外的PCI總線上的本發(fā)明的3個(gè)PCI總線兆赫茲主控器的運(yùn)行。如所示的,通過(guò)將準(zhǔn)許線拉低,準(zhǔn)許信號(hào)GNT_0、GNT_1和GNT_2是由PCI總線狀態(tài)機(jī)被順序置為有效的,目的是準(zhǔn)許設(shè)備0,1和2許可使用PCI總線。
0026盡管已經(jīng)參考特定的實(shí)施例,展示并描述了本發(fā)明,但本領(lǐng)域技術(shù)人員會(huì)很好地理解,可進(jìn)行各種替代,增加和修改而不偏離本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種PCI總線基于時(shí)間的加權(quán)循環(huán)仲裁器,包括階段表,其包括多個(gè)階段,每個(gè)階段被分配給PCI總線上的端口;仲裁器狀態(tài)機(jī),其被耦連到所述階段表,以一次查看多個(gè)階段,當(dāng)預(yù)定數(shù)目的階段已經(jīng)被分配給單個(gè)端口時(shí),所述仲裁器狀態(tài)機(jī)選擇使用所述PCI總線的下一個(gè)總線主控器。
2.根據(jù)權(quán)利要求1所述的PCI總線基于時(shí)間的加權(quán)循環(huán)仲裁器,其中所述仲裁器狀態(tài)機(jī)在分配給即將到來(lái)的階段的端口處向前查看。
3.根據(jù)權(quán)利要求1或2所述的PCI總線基于時(shí)間的加權(quán)循環(huán)仲裁器,其中預(yù)定的階段數(shù)目是3或128。
4.根據(jù)權(quán)利要求1-3任一項(xiàng)權(quán)利要求所述的PCI總線基于時(shí)間的加權(quán)循環(huán)仲裁器,其中所述仲裁器狀態(tài)機(jī)能終止總線事務(wù)處理,從而保持來(lái)自所述PCI總線上的多個(gè)設(shè)備中的一個(gè)設(shè)備的數(shù)據(jù)的同步。
5.根據(jù)權(quán)利要求1-4任一項(xiàng)權(quán)利要求所述的PCI總線基于時(shí)間的加權(quán)循環(huán)仲裁器,其中每個(gè)所述階段確定用于總線事務(wù)處理的基于時(shí)間的時(shí)間段。
6.在PCI總線仲裁器中,用于保證傳送同步數(shù)據(jù)的預(yù)定時(shí)間的仲裁器裝置,包括用于將時(shí)間周期劃分成預(yù)定數(shù)目的階段的裝置,每個(gè)所述階段被分配給PCI總線上的端口;仲裁器狀態(tài)機(jī),其響應(yīng)用于劃分的裝置,以準(zhǔn)許選擇的端口使用PCI總線。
7.根據(jù)權(quán)利要求6所述的仲裁器裝置,其中所述用于劃分的裝置包括具有所述預(yù)定數(shù)目的階段的階段表。
8.根據(jù)權(quán)利要求17所述的仲裁器,其中每個(gè)所述階段確定用于總線事務(wù)處理的基于時(shí)間的時(shí)間段。
9.一種操作PCI總線的方法,包括提供時(shí)間基礎(chǔ)的仲裁器,用于為總線上的每個(gè)設(shè)備分配一預(yù)定的時(shí)間,在該預(yù)定時(shí)間中還執(zhí)行總線事務(wù)處理;為所述總線上的一個(gè)設(shè)備終止總線事務(wù)處理,從而為所述總線上的所述設(shè)備中的另一個(gè)設(shè)備保證被傳送的數(shù)據(jù)的同步。
全文摘要
一種PCI總線基于時(shí)間的加權(quán)循環(huán)仲裁器(200)具有被劃分成多個(gè)階段(0-127)的階段表202。每個(gè)階段被分配給PCI總線上的端口之一。仲裁器狀態(tài)機(jī)(250)被耦連到所述階段表(202)并查看用于接下來(lái)的多個(gè)階段,例如3個(gè)階段的端口分配。如果仲裁器(200)確定接下來(lái)的多個(gè)階段被分配給單個(gè)端口,則那個(gè)端口被選為下一個(gè)總線主控器。
文檔編號(hào)G06F13/36GK101076789SQ200580042620
公開日2007年11月21日 申請(qǐng)日期2005年10月13日 優(yōu)先權(quán)日2004年10月13日
發(fā)明者S·達(dá)斯, K·梅恩, R·D·沃伊切霍夫斯基 申請(qǐng)人:德克薩斯儀器股份有限公司