用于對互連訪問進(jìn)行仲裁的系統(tǒng)和方法
【專利摘要】本發(fā)明的多個方面涉及對在多個端口之間的互連訪問進(jìn)行仲裁。例如,輸入端口接收對所標(biāo)識的目的端口的訪問的請求并在一個或多個FIFO內(nèi)對這些請求進(jìn)行緩沖。與一個或多個對應(yīng)的FIFO相關(guān)聯(lián)的挑選器開始包括用于每個輸出端口的位置的空仲裁包并且比如基于優(yōu)先化方案對該包內(nèi)的一個或多個位置進(jìn)行填充。以環(huán)形將每個包傳遞至另一個挑選器,該挑選器執(zhí)行不與該包內(nèi)的之前填充的位置相沖突的填充。每個挑選器都有機(jī)會將請求放置在這些包中的每個包內(nèi)。將仲裁結(jié)果分發(fā)至與對應(yīng)的輸出端口相關(guān)聯(lián)的重排序緩沖區(qū)并且將其用于對互連進(jìn)行調(diào)度。因此,每個仲裁周期為互連產(chǎn)生有待在后續(xù)數(shù)據(jù)傳送步驟中使用的控制信息集。
【專利說明】用于對互連訪問進(jìn)行仲裁的系統(tǒng)和方法
【技術(shù)領(lǐng)域】
:
[0001]以下涉及用于對數(shù)據(jù)互連的使用進(jìn)行仲裁,并在一個具體方面,涉及在分布式計算中對內(nèi)存的訪問進(jìn)行仲裁。
【背景技術(shù)】
:
[0002]數(shù)據(jù)交換機(jī)可以具有多個輸入端口和多個輸出端口。交換機(jī)用于在輸入端口接收輸入和確定有待將每個輸入發(fā)送到其上的對應(yīng)輸出端口。在一些情況下,每個輸入端口可以接收可能需要被發(fā)送出輸出端口中的任一端口的輸入??梢栽谳斎攵丝谔幃惒降亟邮蛰斎耄瑥亩沟每赡艽嬖诙鄠€可能需要被切換至同一輸出端口的多個輸入;系統(tǒng)局限性阻止所有這些輸入被同時發(fā)送到同一輸出端口,而引起沖突。進(jìn)行這些沖突輸入之間的仲裁以便確定沖突數(shù)據(jù)傳送將被服務(wù)的相對排序。
【發(fā)明內(nèi)容】
[0003]在一個方面中,一種用于對互連訪問進(jìn)行仲裁的方法包括隨時間在η個輸入端口中的任何輸入端口處接收一個或多個數(shù)據(jù)傳送請求,每個請求指定來自m個輸出端口中的對應(yīng)的輸出端口,將通過該輸出端口為該請求進(jìn)行服務(wù)??梢跃彌_這些請求中的每個請求。該方法將對應(yīng)的空仲裁包分配給已分配給每個輸入端口的對應(yīng)的挑選器。每個仲裁包具有用于這m個輸入端口中的每個輸出端口的位置。在每個挑選器處,選擇至少一個緩沖請求并將其放在用于每個選定的請求被發(fā)到其上的輸出端口的位置中的那個挑選器處的仲裁包內(nèi)。在挑選器之間傳遞仲裁包,直到每個挑選器已經(jīng)接收到每個仲裁包,并且同時每個挑選器具有每個仲裁包,挑選器試圖將至少一個請求放在該仲裁包內(nèi)的任何剩余位置中。已完成的仲裁包用于使用互連來對這些請求的履行進(jìn)行調(diào)度。
[0004]另一方面涉及一種用于對η個輸入端口 m個輸出端口互連訪問的仲裁器,該仲裁器具有可操作用于存儲在這些η個輸入端口中的任何端口處接收的數(shù)據(jù)元素的緩沖器。該仲裁器還具有多個挑選器。每個挑選器被耦聯(lián)成從另一個挑選器接收仲裁包。該仲裁包包括用于這m個輸出端口中的每個端口的位置。每個挑選器試圖對所接收的仲裁包內(nèi)的至少一個空位置進(jìn)行填充,其中,這些挑選器中的任何挑選器可以對所接收的仲裁包內(nèi)的任何空位置進(jìn)行填充,并且將該仲裁包傳遞至另一個挑選器。該多個挑選器并行地完成η個仲裁包。在一種方法中,這m個輸出端口中的每個端口具有對應(yīng)的重排序緩沖區(qū),該重排序緩沖區(qū)可操作用于接收該輸出端口的η個仲裁包內(nèi)的條目并強(qiáng)制實(shí)施源自同一輸入端口的條目的先進(jìn)先出順序。
[0005]另一個方面涉及一種帶有具有一組端口的互連和控制器的計算系統(tǒng),并且該控制器可操作用于將該互連配置成使得能夠在這些端口的指定組合之間發(fā)生數(shù)據(jù)事務(wù)。該控制器可操作用于接收互連配置數(shù)據(jù)集合序列和根據(jù)這些互連配置數(shù)據(jù)集合配置用于數(shù)據(jù)傳送周期序列的互連。當(dāng)將使用連配置數(shù)據(jù)集合時,每個互連配置數(shù)據(jù)集合具有對在數(shù)據(jù)傳送周期期間被耦聯(lián)用于數(shù)據(jù)傳送的端口的組合的指示。該仲裁器具有多個輸入端口,在這些輸入端口處接收在該互連上進(jìn)行數(shù)據(jù)事務(wù)的請求。該仲裁器還具有多個挑選器。每個挑選器耦聯(lián)到對應(yīng)的輸入端口上,并且與前一個挑選器和后一個挑選器進(jìn)行通信。每個挑選器用于在仲裁周期期間獲得仲裁包。每個仲裁包包括預(yù)先確定數(shù)量的有待用互連配置數(shù)據(jù)填入的槽。每個挑選器用用于在輸入端口處接收到的一個或多個請求的互連配置數(shù)據(jù)填入仲裁包內(nèi)的一個或多個槽。該填入涉及對已經(jīng)用互連配置數(shù)據(jù)填充的任何槽進(jìn)行標(biāo)識并且對需要與所填入的槽所指定的互連端口的組合相沖突的互連端口組合的任何請求不予考慮。每個挑選器將仲裁包傳送至后面的挑選器,直到每個挑選器已經(jīng)接收到這些仲裁包中的每個仲裁包至少一次。因此,每個挑選器從前一個挑選器接收仲裁包,并用所接收到的仲裁包重復(fù)進(jìn)行該填入。
【專利附圖】
【附圖說明】
[0006]圖1描繪了一種示例系統(tǒng)環(huán)境,其中,仲裁器可以操作用于對互連元件進(jìn)行調(diào)度;
[0007]圖2描繪了示例仲裁器的各個方面;
[0008]圖3描繪了示例輸入端口的各個方面;
[0009]圖4描繪了用于互連元件的使用的仲裁的示例;
[0010]圖5描繪了圖4的示例中的仲裁的每輸出隊列排序;
[0011]圖6描繪了輸出隊列的重排序條目,以便通過輸入端口保持?jǐn)?shù)據(jù)傳送請求的相同的相對順序;
[0012]圖7描繪了將氣泡從輸出隊列中的首要位置中清除;
[0013]圖8描繪了示例仲裁過程的流程圖;
[0014]圖9描繪了另一種示例仲裁過程;
[0015]圖10和圖11描繪了與輸入端口的另一種示例實(shí)現(xiàn)方式相關(guān)的各個方面;
[0016]圖12描繪了可以與根據(jù)圖10和圖11的輸入端口一起使用的示例仲裁過程;以及
[0017]圖13和圖14描繪了從圖10和圖11中描繪的輸入端口緩沖區(qū)內(nèi)可用的互連請求之間選擇用于布置的互連請求的示例方法。
【具體實(shí)施方式】
[0018]圖1描繪了一個示例系統(tǒng)2,其中仲裁器5對選擇性地使不同的輸入端口 3與不同的輸出端口 4耦聯(lián)的互連6的訪問進(jìn)行仲裁。在該示例中,在每個傳送周期中,互連元件6可以將任何單個輸入端口連接到任何單個輸出端口上。因此,如果兩個輸入端口需要同一個輸出端口,則會發(fā)生沖突,需要仲裁。
[0019]各種組件可以耦聯(lián)到輸入端口 3和輸出端口 4上,并且在示例系統(tǒng)2中,計算單元7和8、數(shù)據(jù)管理器9以及鏈接10耦聯(lián)到輸入端口 3上,并且內(nèi)存Ila-1ld耦聯(lián)到輸出端口4上。數(shù)據(jù)管理器9展示了數(shù)據(jù)管理器可以設(shè)置多個內(nèi)存從而使得計算單元可以使用數(shù)據(jù)管理器9安排在內(nèi)存Ila-1ld中的數(shù)據(jù)執(zhí)行計算的情形。鏈接10可以用來連接到另一個仲裁器/互連元件組上以便產(chǎn)生更大的互連。本公開內(nèi)容的一些用法可以只具有耦聯(lián)到輸入3上的計算單元。在一些情形下,可以通過執(zhí)行程序的計算單元或通過電路實(shí)現(xiàn)數(shù)據(jù)管理器9。通過一條或多條線路或一個或多個互連點(diǎn)實(shí)現(xiàn)所示的每個輸入和輸出端口。并且,輸入端口 3和輸出端口 4可以被實(shí)現(xiàn)為分離的控制和數(shù)據(jù)路徑,其中,控制主要被路由到仲裁器5,而數(shù)據(jù)路徑被路由到互連元件6??刂坡窂奖旧韨魉捅硎緦σ唤M指定端口的互連元件6的使用或預(yù)訂的請求的數(shù)據(jù),而數(shù)據(jù)路徑用來傳輸跨該互連移動的數(shù)據(jù)。在一些示例中,單條組合數(shù)據(jù)路徑可以包含控制和數(shù)據(jù)元素兩者。
[0020]互連元件6可以包括用來接收指定信息以便設(shè)置不同內(nèi)存請求的內(nèi)存控制器。該內(nèi)存控制器所需的信息由程序或由生成將互連元件6用于數(shù)據(jù)傳送的請求的電路所提供。不同的內(nèi)存控制器可以使用不同的信息和支持不同的能力。因此,到達(dá)輸入端口的信息不同之處將在于這些不同的實(shí)現(xiàn)方式。
[0021]某些端口標(biāo)記為輸入和其他端口標(biāo)記為輸出是對數(shù)據(jù)流量通過互連6的方向的限制的一種不必要的指示。例如,可以根據(jù)數(shù)據(jù)傳送請求將數(shù)據(jù)從內(nèi)存Ila-1ld傳輸?shù)捷斎攵丝?3中的任何端口,并且反之亦然。所以,仲裁是確定在每次數(shù)據(jù)傳送機(jī)會時哪些數(shù)據(jù)端口被耦聯(lián)用于數(shù)據(jù)傳送。以下提供了仲裁器5的操作的進(jìn)一步的描述和示例。
[0022]圖2描繪了針對輸入端口 3的每個輸入端口而具有多條輸入線路的仲裁器5(具體標(biāo)識了 14ab、15ab和16ab)。每條輸入線路14ab_16ab耦聯(lián)到對應(yīng)的FIFO緩沖區(qū)20ab_22ab上。對應(yīng)的挑選器30-32與用于這些輸入端口其中之一的輸入線路耦聯(lián)。例如,挑選器30耦聯(lián)到輸入線路14ab的FIF020ab上。數(shù)據(jù)路徑35耦聯(lián)到挑選器30-32上、與挑選器30-32互連,從而使得挑選器30-32被互連。例如,在一種方法中,挑選器30-32連接成環(huán)形,其中挑選器32連接到前一個挑選器和挑選器30上。
[0023]每個挑選器可操作用于從一個挑選器接收一個仲裁包并且向后續(xù)挑選器發(fā)送一個仲裁包。在一個示例中,挑選器30-32操作用于同步地將多個仲裁包從一個挑選器傳遞到另一個挑選器。每個挑選器可以包含存儲用于一個仲裁步驟的仲裁包的寄存器,其中數(shù)據(jù)路徑35連接不同挑選器的寄存器。當(dāng)對寄存器進(jìn)行計時時,每個挑選器的寄存器內(nèi)的仲裁包被發(fā)送至下一個挑選器。
[0024]數(shù)據(jù)路徑35還可以包括選擇性地將仲裁包的部分傳送到每個部分所屬于的輸出緩沖區(qū)的互連。具體地,仲裁包可以包括與該仲裁包內(nèi)展示的每個請求指定的傳送有關(guān)的數(shù)據(jù),如用于讀取/寫入內(nèi)存的特定源和/或目的地址。因此,在一個示例中,輸出緩沖區(qū)接收內(nèi)存地址或指針,其指示數(shù)據(jù)將要被讀取或者數(shù)據(jù)將要被存儲的位置。
[0025]在另一個示例中,仲裁包包括用于每個輸出端口的單個比特。每個挑選器對其在每個仲裁包內(nèi)預(yù)訂的每個輸出端口的比特進(jìn)行設(shè)置(圖4的示例中有兩個)。當(dāng)將每個請求放在包內(nèi)時,該請求的細(xì)節(jié)被傳送至針對該請求涉及的輸出隊列而被填充的FIFO。因此,在本方法中,數(shù)據(jù)傳送的細(xì)節(jié)并沒有在仲裁包內(nèi)進(jìn)行展示,而是直接被傳送到輸出隊列的合適 FIFO。
[0026]數(shù)據(jù)路徑35還操作用于向輸出緩沖區(qū)50ab_53ab提供仲裁包的內(nèi)容。在一種方法中,每個輸出端口 45-48與兩個輸出緩沖區(qū)相關(guān)聯(lián)。如以下將進(jìn)一步解釋的,讀出一個輸出緩沖區(qū),同時填充另一個輸出緩沖區(qū)。輸入和輸出端口的數(shù)量、每輸入端口的線路的數(shù)量以及為輸入端口服務(wù)的挑選器的數(shù)量在根據(jù)本公開內(nèi)容的實(shí)現(xiàn)方式中可以變化。
[0027]圖2描繪了仲裁器5還可以包括如在數(shù)據(jù)路徑35中所示的側(cè)載入器37和溢出緩沖區(qū)38。在一些實(shí)現(xiàn)方式中,如圖4的仲裁示例將舉例說明的,挑選器30-32可能不能夠始終填充所有的仲裁包,從而不時引起空條目(氣泡)。在一種方法中,側(cè)載入器37可以檢測到仲裁包何時完成但仍然具有空位置,并且然后試圖用來自緩沖區(qū)38的條目填充該空位置。緩沖區(qū)38可以存儲較低優(yōu)先級的數(shù)據(jù)流量請求,或在每個FIF020ab-22ab包括有限數(shù)量位置的情形下,緩沖區(qū)38可以從FIF020ab-22ab中任何FIFO中接收溢出。側(cè)載入器37的操作類似于挑選器,試圖對仲裁包內(nèi)可以填充的位置進(jìn)行標(biāo)識,但不作為同級(as a peer)來參與仲裁周期。
[0028]圖2描繪了每個輸入端口包括兩條被單個挑選器服務(wù)的線路,其中挑選器可以在仲裁步驟中從每條線路中選擇一個條目。本示例展示了使有待在給定步驟中執(zhí)行的工作量與在實(shí)現(xiàn)方式中所用的電路和內(nèi)存量到達(dá)平衡的設(shè)計選擇。
[0029]圖3描繪了與一個輸入端口的一種安排19有關(guān)的進(jìn)一步的細(xì)節(jié),其中,多條輸入線路接收數(shù)據(jù)并將這種接收到的數(shù)據(jù)存儲在對應(yīng)的輸入FIFO內(nèi),該輸入FIFO由挑選器服務(wù)。具體地,輸入線路14a-14b將數(shù)據(jù)分別存儲在FIF020a-20b中,挑選器30為這些FIFO服務(wù)。圖3還描繪了每個FIF020a-20b存儲表示需要使用互連元件6的事務(wù)的數(shù)據(jù)。需要相同組合的端口(或重疊端口)的事務(wù)需要仲裁。
[0030]圖4描繪了仲裁器5的所描繪的組件如何起作用的示例。圖4還用于展示圖8中所描繪的方法的特定示例。圖4的示例示出了一個示例,其中每個具有2條輸入線路的4個輸入端口針對八個輸出端口的任何端口的訪問進(jìn)行仲裁(在圖4中,每個輸出端口被稱為存儲體,縮寫為“B”,如BO為存儲體O)。如以上介紹的,對應(yīng)的挑選器為每個輸入端口的輸入線路服務(wù)。4個輸入端口之間的一個仲裁周期在4個步驟(T0-T4)中進(jìn)行;每個步驟可以是處理時間的合適分配以便在該步驟中執(zhí)行所需要的任務(wù),并且不暗示與時間的絕對增量有關(guān)的任何具體要求。在本公開內(nèi)容中,仲裁周期是指產(chǎn)生一組可以用于在多個后續(xù)數(shù)據(jù)傳送步驟中對互連進(jìn)行控制的仲裁包。在圖4的具體示例中,當(dāng)向每個挑選器提供四個仲裁包中的每個仲裁包用于有機(jī)會將條目放在該仲裁包內(nèi)時,仲裁周期完成。每次將仲裁包從一個挑選器傳送至另一個挑選器可以被稱為一個‘仲裁步驟’。
[0031]為了開始進(jìn)行仲裁,在TO (圖8的202),在每個挑選器處啟動對應(yīng)的空仲裁包。在一個示例實(shí)現(xiàn)方式中,允許每個挑選器放置來自其相關(guān)聯(lián)的FIFO的多達(dá)2個請求,并且在一個具體示例中,放置來自每個FIFO的一個請求。在一種方法中,在輸入端口的FIFO之間,分配給一個FIFO第一優(yōu)先級??梢栽谶@些FIFO之間轉(zhuǎn)動此優(yōu)先級,從而使得在后續(xù)仲裁周期中,優(yōu)先級FIFO將變化。在一個示例中,從優(yōu)先級的FIFO開始,每個挑選器始終試圖將該第一條目放置在每個可以被放置的FIFO內(nèi)。因此,對于TO處的空仲裁包而言,保證每個挑選器能夠放置來自當(dāng)前優(yōu)先級隊列的其最高優(yōu)先級條目,并且將也能夠放置來自其他FIFO中的條目(如果有可用的話)。在圖8中,這些布置決定操作共同被標(biāo)識為204。圖4描繪了仲裁包為81-84。為了方便展示,每個仲裁包81-84被分割成8個位置,每個位置對應(yīng)一個輸出存儲體,其中‘N’表示仲裁包內(nèi)的具體位置是空的,而‘F’表示這種位置是滿的。圖4沒有暗示按具體順序陳列仲裁包的要求(例如,每個輸出存儲體在仲裁包具有一個預(yù)先確定的相對位置,因?yàn)榭梢园ù鎯w標(biāo)識符用來對已經(jīng)填充的輸出存儲體進(jìn)行標(biāo)識)。在205,每個挑選器對在204標(biāo)識的一個或多個請求進(jìn)行放置。這種布置中所涉及的機(jī)構(gòu)在不同的實(shí)現(xiàn)方式中可以變化,并且在此披露了兩個示例。
[0032]在圖4中,示出了每個輸入隊列的FIFO具有多個發(fā)往特定輸出存儲體的請求。(例如,端口 O的FIF00具有請求B4、B6、B4、B4、B0和B7。)圖4描繪了每個挑選器在當(dāng)前挑選器的操作之后的狀態(tài)下在仲裁包正上方的每個時間增量中填充了哪些請求(在圖8中,204選擇和205放置)。例如,考慮TO處的仲裁包81,仲裁包81在到達(dá)時是空的。填充了 B4和B3 (其是端口 O的每個FIFO中的第一條目)。因此,示出了仲裁包81填充了第四和第五位置。類似地,針對BO和BI填充仲裁包82,從而使得在用于端口 I的挑選器的操作之后填充位置O和I。每個挑選器在提供到其的仲裁包上執(zhí)行其操作,其在TO處全是空的。只要每個輸入端口的每個FIFO具有一個條目,則每個挑選器將會將條目放置在空仲裁包中的兩個位置內(nèi)。然后,在圖8的206,將每個挑選器處的仲裁包傳遞到一個后續(xù)挑選器,從而使得仲裁包81現(xiàn)在例如在端口 I的挑選器處。端口 3處的仲裁包包送至端口 I。在圖8中,在208,可以檢查給定的仲裁包是否已經(jīng)訪問了每個挑選器。在此,由于情況是沒有訪問,所以所描繪的方法返回至204。
[0033]在圖4中,端口 O的挑選器現(xiàn)在具有仲裁包84,其中(通過之前步驟中的端口 3的挑選器)填充了位置B7和B6。在FIFO的優(yōu)先級在每次時間增量時進(jìn)行切換的情況下,現(xiàn)在端口 O的第二 FIFO具有放置的優(yōu)先級,并且該FIFO中的第一條目為BI,可以對該條目進(jìn)行放置。當(dāng)FIF00尋求放置時,發(fā)現(xiàn)填充了 B6?,F(xiàn)在,在一個實(shí)現(xiàn)方式中,進(jìn)行往回對FIF00的搜索以對FIF00內(nèi)的可以被放置的第一條目進(jìn)行標(biāo)識,該條目為該第二條目B4。每個挑選器在Tl (圖8中的204和205)期間放置來自其FIFO中的兩個條目并再次傳遞(圖8中的206)仲裁包81-84。在T2中,這些第一 FIFO (FIF00)具有優(yōu)先級,并且如所描繪的,每個挑選器放置一個或多個條目。
[0034]在圖8中,表示該挑選的數(shù)據(jù)布置可以包括兩個操作(圖8中的205處)。一個操作是在與被選中的輸出端口相關(guān)聯(lián)的仲裁包內(nèi)設(shè)置比特,并且另一個操作是將事務(wù)信息(在一個示例中)發(fā)送至針對被選中的輸出端口而填充的FIFO。本方法展示了一種其中每個仲裁包包括用于每個輸出端口的比特的實(shí)現(xiàn)方式。當(dāng)挑選器在給定的仲裁步驟中挑選了該輸出端口時,對該比特進(jìn)行設(shè)置。然而,仲裁包不包含與事務(wù)的細(xì)節(jié)相關(guān)的信息。而是該信息被單獨(dú)地傳輸至與該輸出端口相關(guān)聯(lián)的緩沖區(qū)。在一個示例中,該信息包括內(nèi)存地址,從該內(nèi)存地址讀取或?qū)懭胄畔ⅲ摰刂钒l(fā)往或源自該輸出端口。在本實(shí)現(xiàn)方式中,沒有在仲裁包中傳遞事務(wù)的細(xì)節(jié),并且因此減少了所需的互連量和容裝仲裁包的寄存器的大小。并且,減少了每個挑選器所需的電路或邏輯,因?yàn)榭梢杂梦黄帘握诒沃俨冒詫Ρ阋宰钚〉膹?fù)雜程度對任何未填充的輸出端口進(jìn)行標(biāo)識。
[0035]端口 I處的仲裁包84示出了可以從FIF00放置B0,但不存在來自FIF01的可以被放置的非沖突條目。在一個FIFO不能放置條目的情況下,本情況對更簡單的硬件實(shí)現(xiàn)方式的局限性進(jìn)行標(biāo)識,在該實(shí)現(xiàn)方式中沒有從同一 FIFO放置兩個條目。更加復(fù)雜的實(shí)現(xiàn)方式可以允許挑選器從這些FIFO中的一個或多個中選擇條目的滿分配。另一個實(shí)現(xiàn)方式可以確定在另一個FIFO先行的情況下(即,在這些FIFO其中之一中僅存在I個非沖突條目,該條目與優(yōu)先級FIFO中的第一優(yōu)先級條目沖突)這些FIFO其中之一是否不能放置條目,并且相應(yīng)地對布置進(jìn)行調(diào)整。在上述情況下,例如,在T2允許FIF01將BO放置在仲裁包84內(nèi)的情況下,則FIF00可以放置B2。在此,示出了一種更簡單的HW實(shí)現(xiàn)方式,從而使得端口 I的FIF01在T2中沒有將兩個條目放置在仲裁包84內(nèi)。如圖4中所描述的,根據(jù)這些示例繼續(xù)填充仲裁包81-84。
[0036]在圖4的86處描繪了最后的仲裁包。所有這些仲裁包在同一仲裁步驟中結(jié)束。因此,在本示例中,仲裁需要一個用于每個輸入端口的步驟(在該每個輸入端口中給予一個將條目放置在每個仲裁包內(nèi)的步驟)并且所有挑選器并行地操作。根據(jù)輸出的數(shù)量確定每個仲裁包的大小。因此,圖4的示例示出了一個4輸入(其中,每個輸入具有2個FIFO或線路)8輸出仲裁。
[0037]如果仲裁包包括關(guān)于所放置的傳送的信息,則可以在210傳遞這些仲裁包以便在每存儲體多個輸出FIFO (—個這種FIFO,其中針對每個存儲體保持多個FIFO)之間進(jìn)行劃分。
[0038]圖5不出了按照根據(jù)輸出存儲體(存儲體0-7)的順序?qū)R的每個仲裁包。在圖5中,符號的形式為“L#-#_T#”。本符號對后面跟著哪個FIFO (或者O或者I)、后面跟著該條目放置在該仲裁包內(nèi)時的時間的輸入端口進(jìn)行標(biāo)識。例如,在仲裁包81中,存儲體O條目在T2來自線路2FIF00。本符號沒有暗示這種數(shù)據(jù)包括在該FIFO本身內(nèi),而是用來對仲裁器如何在圖4的示例中放置請求進(jìn)行追蹤。
[0039]此排序示出了根據(jù)以上披露的仲裁的一種邊緣效應(yīng)是可以相對于輸入FIFO中的順序?qū)碜酝惠斎搿l(fā)往同一輸出端口的條目進(jìn)行重排序。例如,考慮存儲體O,將來自仲裁包83的條目放在T3處,但將來自仲裁包84、位于仲裁包83后面的條目放置在T2處。因此,在一種方法中,可以執(zhí)行每個輸出端口重排序(圖8中的212)。此重排序可以在沒有來自鄰近輸出端口的信息的情況繼續(xù)進(jìn)行并且只需要考慮每個輸出端口 FIFO的內(nèi)部狀態(tài)。圖6示出了響應(yīng)于對來自同一 FIFO的無序條目進(jìn)行標(biāo)識而在存儲體O和存儲體I中重排序的條目92。輸出FIFO中的重排序還可以在選擇時間基礎(chǔ)上嚴(yán)格地進(jìn)行,而不是每輸入端口重排序。在這種方法中,僅根據(jù)挑選時間對輸出FIFO中的條目進(jìn)行重排序。圖6還示出了空條目是存儲體I內(nèi)的第一條目。圖7描繪了空條目可以冒泡排序93到FIFO的后面;還可以簡單地清除空條目。取決于FIFO的實(shí)現(xiàn)方式,考慮到這種清除,可以或不可以將剩余的條目進(jìn)行重新定位。
[0040]圖9描繪了另一種過程,仲裁器5可以通過該過程進(jìn)行對互連元件6的訪問的仲裁。在280,挑選器對所接收到的仲裁包內(nèi)的空位置進(jìn)行標(biāo)識(不包括占滿的位置)。在一個示例中,這意味著每個仲裁包針對每個輸出支持一個條目,盡管可以構(gòu)造實(shí)現(xiàn)方式來有區(qū)別地執(zhí)行。例如,不同的輸出可以在不同速度下運(yùn)行,并且因此給定的仲裁包針對一個輸出可以具有比另一個輸出更多的位置。輸出的容量可以是動態(tài)的,并且如果希望的話,用于這種情況的仲裁包還可以實(shí)施動態(tài)調(diào)整。
[0041]在282,可以對來自一個第一優(yōu)先級FIFO的可以被放置的第一條目進(jìn)行標(biāo)識(如果有的話)。在286,確定是否可以放置來自一個第二優(yōu)先級FIFO的條目。如果可以,則在288放置來自該第一和第二優(yōu)先級FIFO的條目。否則,在290確定第二優(yōu)先級FIFO的可以被放置的僅一個條目與所標(biāo)識的第一優(yōu)先級FIFO條目之間是否存在沖突。如果存在這種沖突,則在294,對可以與來自該第二優(yōu)先級FIFO的條目一起放置的來自該第一優(yōu)先級FIFO的另一個條目進(jìn)行標(biāo)識。在296,放置這些條目。在298,作出是否訪問了每個挑選器的確定。如果沒有訪問,則將仲裁包傳遞至下一個挑選器。否則,如以上解釋的,在302,可以執(zhí)行每個輸出FIFO的條目的重排序。圖9的示例示出了一種方法,其中可以進(jìn)行更多涉及到的端口內(nèi)沖突解決。然而,本方法還會由于嚴(yán)格老化引起條目無序地離開輸入端口,這對一些應(yīng)用而言是不令人希望的。并且,實(shí)施這種過程的硬件可能更加復(fù)雜。
[0042]挑選器行為的另一個變化可以是:用于接收給定仲裁包的最后的挑選器可以試圖填充該仲裁包內(nèi)的任何剩余的位置。本方法還可能引起更大的硬件復(fù)雜程度,因?yàn)橛布⑿枰軌蛟谧詈蟮臅r間段中比之前的時間段放置更多的條目??梢允棺詈蟮臅r間段更長,如允許多達(dá)3次挑選,或可以提供更多的挑選器硬件。如果需要增加仲裁時間或更多的硬件,則降低給定仲裁包中增加的空條目的概率,從而將減少返回至允許最后的挑選器進(jìn)行任意數(shù)量的布置。側(cè)載入器37向這種情況提供了替代性方法的示例。
[0043]圖10和圖11描繪了根據(jù)本公開內(nèi)容的用于輸入端口的另一種實(shí)現(xiàn)方式。圖2描繪了每個輸入端口的每條線路包括存儲用于所有輸出端口的有序請求集合的對應(yīng)FIFO。圖10描繪了每個輸入端口反而具有可以基于每個輸出端口緩沖被隔離的請求列表的內(nèi)存源375。具體地,每條輸入線路14a和14b仍然接收可以對任何輸出端口進(jìn)行標(biāo)識(在通常情況下)的請求集合;并且條目351-356通過對不同輸出端口進(jìn)行命名來舉例說明這種情況。然而,并非需要挑選器30往回搜索FIFO來對可以被放置的條目進(jìn)行標(biāo)識,而是可以對條目進(jìn)行預(yù)分類。圖11描繪了內(nèi)存375中的內(nèi)存位置存儲了請求351-354,所有這些請求對輸出端口 45進(jìn)行標(biāo)識,而其他請求對不同的輸出端口進(jìn)行命名并因此被存儲在內(nèi)存375的不同區(qū)段內(nèi)。如希望,可以提供機(jī)構(gòu)用于在內(nèi)存375中強(qiáng)制實(shí)施條目布置的具體順序,其中來自不同輸入線路的多個條目(例如,條目354和351)對同一輸出端口進(jìn)行標(biāo)識。關(guān)于圖12描述了圖10和圖11的實(shí)現(xiàn)方式的操作示例。
[0044]圖12描繪了根據(jù)本公開內(nèi)容的仲裁的示例過程,其中每個輸入端口根據(jù)輸出端口對條目進(jìn)行預(yù)分類,以供該輸入端口的對應(yīng)挑選器使用。在402,在輸入線路處接收對輸出端口進(jìn)行識別的請求。在404,將該請求存儲到與該輸出端口相關(guān)聯(lián)的箱中。在這種分類過程中,任何輸入線路可以繼續(xù)接收進(jìn)一步的請求。在406,可以為該請求分類到其中的箱設(shè)置指示請求在等待仲裁的標(biāo)記。此活動可以是受制約(condit1ned)的,或者可以僅在請求第一次分類到具體的箱中時或者在該箱變空之后、已經(jīng)對該箱中的請求進(jìn)行仲裁之后作出可觀測的變化。
[0045]在408,每個挑選器接收仲裁包,從這些箱中將一個或多個請求放置在該仲裁包內(nèi)。在410,每個挑選器對其仲裁包內(nèi)的開放位置進(jìn)行標(biāo)識。在412,決定兩個以上請求是否可以用于放置,并且如果可以,則在416,進(jìn)行從可用的請求之間選擇兩個請求的過程。在418,可以放置那些選定的請求。否則,在414,可以放置兩個或更少的請求。以上示例基于允許每個挑選器選擇多達(dá)兩個有待放置的請求(如果可能的話)。實(shí)現(xiàn)方式可以對每個挑選器允許更多或更少的請求并且將相應(yīng)地調(diào)整這種數(shù)量。
[0046]當(dāng)可用的請求比位置更多(或請求超過允許的布置極限)時,各種過程或其他技術(shù)可以用來選擇有待放置的請求。圖13和圖14提供了兩個這種過程的示例。在圖13中,在420,可以訪問與每個箱中的請求相關(guān)聯(lián)的老化計數(shù)器,并且在422,可以選擇兩個最老的條目用于布置??梢栽诰彌_不以一種用按年齡分類方式保持條目的方式來實(shí)施的情況下提供老化計數(shù)器。在424,可以對與剩余條目相關(guān)聯(lián)的老化計數(shù)器進(jìn)行更新。本方法提供了每請求老化,這對一些實(shí)現(xiàn)方式而言會引起過度的開銷。圖14描繪了其中每箱多個計數(shù)器的示例。在426,對與每個箱相關(guān)聯(lián)的老化計數(shù)器進(jìn)行訪問,并且選擇兩個具有最老計數(shù)器的箱。選擇之后,在430,所選定的箱上的計數(shù)器被清零(reset)并且剩余箱上的計數(shù)器增加。在本方法中,存在一個在多個箱之間保持選擇公平的機(jī)構(gòu)。由于每個箱可以存儲多個條目,所以將需要更少的計數(shù)器。每箱老化的其他實(shí)現(xiàn)方式可以包括循環(huán)(round robin)選擇技術(shù),其中僅具有有待仲裁的請求的箱參與該循環(huán)。可以實(shí)施對循環(huán)選擇的修改以處理某些輸入端口比其他輸入端口更活躍等的情況。
[0047]仲裁器和它們對其進(jìn)行調(diào)度的互連可以用于多種情況下。例如,它們可以用來加載帶有數(shù)據(jù)元素的分布式內(nèi)存,其中仲裁器所使用的控制信息對數(shù)據(jù)從來源(例如,處理器,見圖1)到合適內(nèi)存的傳輸進(jìn)行調(diào)度。例如,一種應(yīng)用是在分布式計算的背景下,如分布式圖形處理。分布式圖形處理可以包括光線追蹤。例如,可以對光線進(jìn)行處理(例如,可以針對與3-D場景的圖元(primitive)的相交對光線進(jìn)行追蹤,從而進(jìn)行渲染)。仲裁器可以接收光線的有待分布在分布式內(nèi)存之間的定義數(shù)據(jù),其中,在光線相交測試期間可以根據(jù)需要反復(fù)訪問這些內(nèi)存。其他應(yīng)用包括從分布式內(nèi)存中讀取數(shù)據(jù)。因此,可以讀取、寫入對互連訪問的請求,或其任意組合。因此,互連的端口可以用作輸入端或輸出端。
[0048]本公開內(nèi)容涉及仲裁,其中在仲裁周期中將保證多個輸入端口中的每個輸入端口具有至少一次預(yù)訂任何輸出端口的機(jī)會。這種保證的一種方法是在仲裁周期期間在每個仲裁參與者(例如,圖2的挑選器)處啟動空仲裁包至少一次。此外,本公開內(nèi)容描述了在進(jìn)行了更高優(yōu)先級挑選之后每個仲裁參與者如何可以被給予遞減的到剩余可用的任何輸出端口的優(yōu)先級順序挑選機(jī)會集合。在圖2和圖4的示例中,這相當(dāng)于使仲裁包轉(zhuǎn)動穿過每個挑選器,從而使得每個挑選器獲得每個仲裁包。然而,不同的仲裁包在進(jìn)行了不同數(shù)量的挑選之后到達(dá)具體的挑選器。這些方法與波前仲裁形成對照,因?yàn)椴ㄇ爸俨弥付ㄝ斎攵丝诤洼敵龆丝诘木唧w組合將在具體的數(shù)據(jù)傳送周期上是活躍的。例如,在每個數(shù)據(jù)傳送周期中在同一點(diǎn)處將輸入端I連接到輸出端2上。
[0049]本文的示例通常描述了響應(yīng)于請求而分配的多對端口。然而,在一些應(yīng)用中,請求可以定義更復(fù)雜的端口組合,如將一個數(shù)據(jù)元素寫入到許多位置,將一個數(shù)據(jù)元素集寫入到多個指定的輸出端,以及將多個數(shù)據(jù)元素從多個指定的位置讀到單個讀取端口。
[0050]典型的實(shí)現(xiàn)方式可以使用固定的功能硬件,該硬件可以在需要良好定義的重復(fù)互連任務(wù)集合的情況下允許最大速度和效率。其他實(shí)現(xiàn)方式可以使用可配置硬件或固定功能與可配置硬件的組合。
[0051]在一些實(shí)現(xiàn)方式中,互連元件6可以是交叉開關(guān),其中可以進(jìn)行任何事物到任何事物的連接(例如,在傳送周期中,任何兩個端口可以配成對)??梢酝ㄟ^專用硬件實(shí)現(xiàn)交叉開關(guān)。然而,在一些實(shí)現(xiàn)方式中,可以使互連元件6的性質(zhì)抽象化,從而使得可以通過總線實(shí)現(xiàn)該互連元件,即使仲裁器5將互連元件6作為交叉開關(guān)對待。例如,η X η端口的交叉開關(guān)在一個步驟中可以支持最多η個數(shù)據(jù)傳送。在一個仲裁步驟中可以支持η個數(shù)據(jù)傳送的總線可以實(shí)現(xiàn)物理互連,并且可以向仲裁器5提供展示總線的基于端口的視圖的抽象層。
[0052]一些實(shí)現(xiàn)方式可以使用可編程元件來實(shí)現(xiàn)所披露的仲裁的各方面,即使這種實(shí)現(xiàn)方式對于一些應(yīng)用而言是不切實(shí)際的。如果在固件和/或軟件中實(shí)施,則功能可以被展示為計算機(jī)可讀介質(zhì)上的一個或多個指令或代碼,在一個實(shí)例中該介質(zhì)是非瞬態(tài)的。示例包括用數(shù)據(jù)結(jié)構(gòu)編碼的計算機(jī)可讀介質(zhì)和用計算機(jī)程序編碼的計算機(jī)可讀介質(zhì)。機(jī)器可讀介質(zhì)包括非瞬態(tài)機(jī)器可讀介質(zhì)。其他種類的介質(zhì)包括傳輸介質(zhì)。非瞬態(tài)介質(zhì)可以是任何可以被機(jī)器訪問的有形介質(zhì)。舉例來講,但不具有限制性,這種計算機(jī)可讀介質(zhì)可以包括RAM、ROM、EEPROM、CD-ROM或其他光盤存儲器、磁盤存儲器、或其他磁存儲裝置、或任何可以用來以指令或數(shù)據(jù)結(jié)構(gòu)的形式存儲所希望的程序代碼和可以被機(jī)器訪問的其他介質(zhì)。
[0053]提供各方面和特征的描述用來使本領(lǐng)域的技術(shù)人員能夠制作和使用這些系統(tǒng)、裝置以及執(zhí)行所披露的方法。各種修改將對本領(lǐng)域的技術(shù)人員是明顯的,在不背離本公開內(nèi)容的精神和范圍的情況下可以將本文件內(nèi)描述的原理應(yīng)用到其他方面。因此,本說明書并不旨在限制權(quán)利要求書。相反,將使權(quán)利要書求賦予與在此披露的原理和新穎性特征一致的范圍。
[0054]附圖包括結(jié)構(gòu)的相對安排和過程組件的排序,僅作為幫助理解本說明書。這些相對安排和編號不是對權(quán)利要求書中的元素和步驟的排序或安排的任何特定限制的隱含披露。在不背離本公開內(nèi)容的范圍的情況下可以順序地互換過程限制,權(quán)利要求書并且裝置加功能語句旨在涵蓋被描述為執(zhí)行所述功能的不僅包括結(jié)構(gòu)等效物而且還包括等效結(jié)構(gòu)的結(jié)構(gòu)。
[0055]盡管使用了各種示例和其他信息來解釋所附權(quán)利要求書的范圍內(nèi)的多個方面,但不應(yīng)基于這種示例中的具體特征或安排而暗示對權(quán)利要求書的限制,因?yàn)槠胀夹g(shù)人員將能夠使用這些示例導(dǎo)出很多種實(shí)現(xiàn)方式。進(jìn)一步地,并且盡管以結(jié)構(gòu)特征和/或方法步驟的示例專用的語言描述了某個主題,但應(yīng)理解到,所附權(quán)利要求書中限定的主題不一定局限于這些描述的特征或動作。例如,這種功能性可以有所不同的分布,或者在與除了在此標(biāo)識的組件以外的組件、附加的組件或更少的組件執(zhí)行。相反,公開了所述特征和步驟作為所附權(quán)利要求書的范圍內(nèi)的系統(tǒng)和方法的組件的示例。
【權(quán)利要求】
1.一種對互連訪問進(jìn)行仲裁的方法,包括: 隨時間接收一個或多個數(shù)據(jù)傳送請求,每個請求對互連中的來自η個輸入端口中的一個輸入端口和來自m個輸出端口中的一個輸出端口進(jìn)行指示,將通過該互聯(lián)為該請求進(jìn)行服務(wù); 對這些請求中的每個請求進(jìn)行緩沖; 將對應(yīng)的空仲裁包分配給已分配給這些輸入端口中的每個輸入端口的對應(yīng)的挑選器,每個仲裁包具有用于這m個輸出端口中的每個輸出端口的位置; 在這些挑選器中的每個挑選器處,選擇至少一個緩沖請求并將每個選定的請求放置在用于該選定的請求所指示的輸出端口的位置中的那個挑選器處的仲裁包內(nèi); 在這些挑選器之間傳遞這些仲裁包,直到每個挑選器已經(jīng)接收到每個仲裁包,并且同時每個挑選器具有每個仲裁包,試圖將至少一個請求放置在該仲裁包內(nèi)的任何剩余位置中;以及 根據(jù)這些仲裁包內(nèi)的請求的布置,使用該互連來對這些請求的履行進(jìn)行調(diào)度。
2.根據(jù)權(quán)利要求1所述的對互連訪問進(jìn)行仲裁的方法,其中,放置每個選定的請求包括在與該請求所指示的輸出端口相關(guān)聯(lián)的仲裁包內(nèi)設(shè)置屏蔽位和將來自該選定的請求的輸入端口信息提供至與該輸出端口相關(guān)聯(lián)的緩沖區(qū)。
3.根據(jù)權(quán)利要求1和2中任一項(xiàng)所述的對互連訪問進(jìn)行仲裁的方法,其中,這些輸入端口中的每個輸入端口包括兩條或更多條線路,并且其中,該緩沖包括對來到一個單獨(dú)的FIFO緩沖區(qū)內(nèi)的線路中的每條線路的請求進(jìn)行緩沖。
4.根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的對互連訪問進(jìn)行仲裁的方法,其中,用于每個請求的輸入端口通過仲裁器的哪個輸入端口接收到該請求來指示。
5.根據(jù)權(quán)利要求1所述的對互連訪問進(jìn)行仲裁的方法,其中,該傳遞包括激活電路以將每個仲裁包從一個挑選器中的寄存器傳送到后續(xù)挑選器中的寄存器。
6.根據(jù)權(quán)利要求1所述的對互連訪問進(jìn)行仲裁的方法,其中,該緩沖包括針對該輸入端口的對應(yīng)挑選器的訪問根據(jù)該請求中所標(biāo)識的輸出端口存儲這些請求中的每個請求并且設(shè)置對該輸出端口的請求的可用性進(jìn)行指示的標(biāo)記。
7.根據(jù)權(quán)利要求1所述的對互連訪問進(jìn)行仲裁的方法,其中,該互連包括η個輸入m個輸出的交叉開關(guān),并且該方法進(jìn)一步包括根據(jù)這些仲裁包內(nèi)的請求的布置在后續(xù)多個數(shù)據(jù)傳送周期中選擇性地將該交叉開關(guān)的η個輸入中的每個輸入連接到該交叉開關(guān)的m個輸出其中之一上。
8.根據(jù)權(quán)利要求1至7中任一項(xiàng)所述的對互連訪問進(jìn)行仲裁的方法,其中,這些輸出端口每個與內(nèi)存地址相關(guān)聯(lián),并且每個請求包括內(nèi)存地址,可以根據(jù)與這些輸出端口中的每個輸出端口相關(guān)聯(lián)的內(nèi)存地址從該內(nèi)存地址推斷出輸出端口。
9.根據(jù)權(quán)利要求8所述的對互連訪問進(jìn)行仲裁的方法,其中,這些內(nèi)存地址跨這些輸出端口是成帶的。
10.根據(jù)權(quán)利要求1所述的對互連訪問進(jìn)行仲裁的方法,其中,放置每個請求包括設(shè)置與正在放置的位置相對應(yīng)的屏蔽位和將數(shù)據(jù)傳送信息發(fā)送至與該請求的被指示出的輸出端口相關(guān)聯(lián)的重排序緩沖區(qū)。
11.根據(jù)權(quán)利要求1所述的對互連訪問進(jìn)行仲裁的方法,其中,該緩沖包括至少對每個請求進(jìn)行緩沖,直到該輸入端口的挑選器已經(jīng)對其進(jìn)行了服務(wù),其中該請求通過該輸入端口而到達(dá)。
12.根據(jù)權(quán)利要求1至11中任一項(xiàng)所述的對互連訪問進(jìn)行仲裁的方法,其中,每個輸出端口在每個仲裁包內(nèi)具有對應(yīng)的預(yù)先確定的相對位置,并且將請求放置在該仲裁包內(nèi)包括用關(guān)于該請求的數(shù)據(jù)填充該位置。
13.—種用于η個輸入端口 m個輸出端口的互連訪問的仲裁器,包括: 緩沖區(qū),可操作用于存儲在這些η個輸入端口中的任何輸入端口處接收到的多個請求, 多個挑選器,這些挑選器中的每個挑選器被耦聯(lián)成從另一個挑選器接收仲裁包,該仲裁包包括用于這m個輸出端口中的每個輸出端口的位置,以試圖將請求放置在所接收到的仲裁包內(nèi)的至少一個空位置中,其中,這些挑選器中的任何挑選器能夠?qū)λ邮盏降闹俨冒鼉?nèi)的任何空位置進(jìn)行填充,并且將該仲裁包傳遞至另一個挑選器,其中,所述多個挑選器并行地完成η個仲裁包;以及 用于這m個輸出端口中的每個輸出端口的對應(yīng)的重排序緩沖區(qū),該對應(yīng)的重排序緩沖區(qū)可操作用于接收該輸出端口的事務(wù)信息并強(qiáng)制實(shí)施對源自同一輸入端口的條目的先進(jìn)先出順序。
14.根據(jù)權(quán)利要求13所述的仲裁器,其中,所述多個挑選器包括用于這η個輸入端口中的每個輸入端口的挑 選器。
15.根據(jù)權(quán)利要求13所述的仲裁器,其中,每個仲裁包包括用于這m個輸出端口中的每個輸出端口的單個比特,當(dāng)對用于該輸出端口的位置進(jìn)行填充時,該挑選器對該比特進(jìn)行設(shè)置,并且其中,每個挑選器可操作用于向這m個輸出端口中的每個輸出端口的對應(yīng)重排序緩沖區(qū)提供這些仲裁包中已填充的條目。
16.根據(jù)權(quán)利要求13所述的仲裁器,其中,用于這m個輸出端口中的每個輸出端口的重排序緩沖區(qū)包括多個重排序緩沖區(qū),其中,該多個重排序緩沖區(qū)中的至少一個重排序緩沖區(qū)可操作用于從這些挑選器接收條目,同時來自這些緩沖區(qū)的另一個緩沖區(qū)的條目被用來對該互連進(jìn)行控制。
17.根據(jù)權(quán)利要求13所述的仲裁器,其中,這m個輸出端口中的每個輸出端口包括多個重排序緩沖區(qū),其中,這些重排序緩沖區(qū)其中之一能夠用于對互連進(jìn)行控制,同時另一個重排序緩沖區(qū)正被該仲裁器用后續(xù)請求的傳送信息進(jìn)行填充。
18.根據(jù)權(quán)利要求13所述的仲裁器,其中,這η個輸入端口中的每個輸入端口包括多條輸入線路,并且單個挑選器被耦聯(lián)成對從這些輸入線路中的每條線路接收到的仲裁包內(nèi)的空位置進(jìn)行填充。
19.一種包括根據(jù)權(quán)利要求12至18中任一項(xiàng)所述的仲裁器的計算系統(tǒng),進(jìn)一步包括具有一組端口的互連和控制器,該控制器可操作用于將該互連配置成使得能夠在這些端口的指定組合之間發(fā)生數(shù)據(jù)事務(wù),該控制器可操作用于接收互連配置數(shù)據(jù)集合序列并且根據(jù)這些互連配置數(shù)據(jù)集合將該互連配置成用于數(shù)據(jù)傳送序列,每個互連配置數(shù)據(jù)集合包括當(dāng)將要使用該互連配置數(shù)據(jù)集合時對在數(shù)據(jù)傳送周期期間有待耦聯(lián)的端口的組合的指示。
【文檔編號】H04L12/937GK104052686SQ201410088316
【公開日】2014年9月17日 申請日期:2014年3月11日 優(yōu)先權(quán)日:2013年3月12日
【發(fā)明者】J·M·理查茲, S·J·克勞塞特, J·R·雷德格瑞芙 申請人:想象技術(shù)有限公司