專利名稱:在每個(gè)總線周期中可讀取和/或?qū)懭肟蛇x數(shù)目的數(shù)據(jù)字的先進(jìn)先出緩沖區(qū)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字式數(shù)據(jù)緩沖區(qū),具體地說,涉及先進(jìn)先出(FIFO)緩沖區(qū),例如用于集成電路到集成電路互連的同步數(shù)據(jù)通信。
背景技術(shù):
半導(dǎo)體生產(chǎn)技術(shù)不斷制造出更高密集度和速度的集成電路(IC)裝置。每平方厘米硅片上容納數(shù)百萬邏輯門的能力,使得能夠大量集成、例如制造完整的單片系統(tǒng)(SOC)。不幸的是,設(shè)計(jì)高度集成的系統(tǒng)的能力通常落后于制造能力。不斷增加的復(fù)雜度提高了與構(gòu)成SOC的門電路塊之間和IC之間接口調(diào)試和校驗(yàn)有關(guān)的風(fēng)險(xiǎn)。
縮短高度集成裝置的設(shè)計(jì)周期時(shí)間的一個(gè)途徑是快速硅原型法(RSP),它為定制的專用集成電路(ASIC)或集成的多個(gè)ASIC同時(shí)設(shè)計(jì)軟硬件。RSP將設(shè)計(jì)重用、片上總線結(jié)構(gòu)及系統(tǒng)集成的方法組合起來,極大地提高了設(shè)計(jì)者更快地創(chuàng)建先進(jìn)的定制ASIC及相關(guān)的系統(tǒng)軟件內(nèi)容的能力,并且成功的概率很高。RSP基于這樣的前提通過“重構(gòu)”來設(shè)計(jì)系統(tǒng)較為容易,即從現(xiàn)有和證明可靠的由可重用組件組成的參考設(shè)計(jì)中除去模塊以及“延伸”即添加模塊。
標(biāo)準(zhǔn)化總線通過在可重用組件上施行標(biāo)準(zhǔn)化接口而允許重構(gòu)及延伸參考設(shè)計(jì)。因而,標(biāo)準(zhǔn)化總線向RSP相關(guān)的市場帶來了許多好處,例如減低風(fēng)險(xiǎn)、提高生產(chǎn)率及減少時(shí)間。在使用RSP設(shè)計(jì)的系統(tǒng)中,對于高帶寬流數(shù)據(jù)經(jīng)常需要一種類型的標(biāo)準(zhǔn)化總線,下文稱為“隧道”。
因發(fā)送IC裝置和接收IC裝置是有差別的,使得利用隧道來互連不同的IC復(fù)雜化。例如,兩個(gè)IC可能使用不同的制造工藝制造,其中發(fā)送IC裝置是工作在200MHZ的外圍裝置,而接收IC裝置是工作于400MHZ的處理裝置。另一個(gè)例子是,由于生產(chǎn)的差異,一個(gè)IC工作的速度可能與另一個(gè)的稍微不同。進(jìn)一步的例子是,由于軟件設(shè)計(jì)的原因,一個(gè)IC設(shè)計(jì)可能工作在變化間隔的流數(shù)據(jù)上。如此,因這些和其他的因素,由于同步問題及每個(gè)總線周期數(shù)據(jù)傳輸?shù)南拗?,隧道可能成為高帶寬流?shù)據(jù)流量的限制。
在發(fā)送IC裝置和接收IC裝置兩者中,傳統(tǒng)上通過先進(jìn)先出(FIFO)循環(huán)緩沖區(qū)(本文也稱FIFO)來提供在片到片互連中的數(shù)據(jù)同步。發(fā)送FIFO在傳輸前先緩沖數(shù)據(jù)元素。接收FIFO緩沖從傳輸中接收到的數(shù)據(jù)元素。傳統(tǒng)的FIFO循環(huán)緩沖區(qū)包括存取存儲器陣列的讀端口和寫端口。寫指針指向緊接著最近寫入的數(shù)據(jù)槽的空數(shù)據(jù)槽。讀指針指向包含存儲在數(shù)據(jù)緩沖區(qū)中的最舊數(shù)據(jù)元素的數(shù)據(jù)槽,所述槽緊接著最后一次從緩沖區(qū)讀取的數(shù)據(jù)槽。在FIFO的每次總線周期期間,讀端口利用讀指針對每次從存儲器陣列讀取之后的下一個(gè)存儲器位置連續(xù)地尋址,而寫端口利用寫指針對每次寫入存儲器陣列之后的下一個(gè)存儲器位置連續(xù)地尋址。設(shè)置控制電路以便防止對已滿的FIFO寫入并且防止從空的FIFO中讀取。
因?yàn)镕IFO局限于每個(gè)總線周期讀取和/或?qū)懭胍粋€(gè)數(shù)據(jù)元素,所以隧道通常被有效地限制在兩個(gè)IC裝置中較慢的一個(gè)的時(shí)鐘速率。例如,較慢的發(fā)送IC裝置將以相應(yīng)的較慢的速率來填充其發(fā)送FIFO緩沖區(qū)。較快的接收IC裝置具有較快的接收FIFO緩沖區(qū),趨向于較快地讀空其緩沖區(qū),本質(zhì)上說被迫地等待被傳遞并放入其緩沖區(qū)中的新的數(shù)據(jù)。這樣,隧道的帶寬被限制在發(fā)送FIFO能夠?qū)ζ浯鎯Φ臄?shù)據(jù)進(jìn)行排序(sequencing out)的速率上?;蛘?,與較慢的接收IC裝置及其接收FIFO緩沖區(qū)能夠處理的速度相比,快速的發(fā)送IC裝置將更快地填滿其發(fā)送FIFO。這樣,受到接收FIFO緩沖區(qū)可以將所接收的數(shù)據(jù)排序的速率限制,兩個(gè)緩沖區(qū)往往會被填滿。
由于不斷增加的生產(chǎn)成本,為得到更快的FIFO而提高較慢的IC裝置的速度通常是不現(xiàn)實(shí)的。另外,由于IC之間可用導(dǎo)體數(shù)目的限制和/或分離及合并通過不同信道傳送的數(shù)據(jù)而帶來的額外復(fù)雜性和延遲,向隧道添加附加信道以增加流數(shù)據(jù)的帶寬可能是不現(xiàn)實(shí)的。
因此,需要有一種能使連接不同通信能力(如因不同的時(shí)鐘速率)的IC之間隧道帶寬最大化的方式。具體地說,很需要有可以增加傳送的數(shù)據(jù)元素帶寬因而可以幫助協(xié)調(diào)通過隧道連接的各個(gè)獨(dú)立IC的FIFO緩沖區(qū)。
發(fā)明概述本發(fā)明旨在解決先有技術(shù)中存在的這些和其他問題,它提供能夠在每個(gè)總線周期單向傳送多個(gè)數(shù)據(jù)元素的先進(jìn)先出(FIFO)緩沖區(qū),從而在不提高總線速率的情況下增加傳送的數(shù)據(jù)量。此外,還可提供允許在給定總線周期單向傳送可選數(shù)目的數(shù)據(jù)元素的FIFO緩沖區(qū),這樣就可以動態(tài)地控制FIFO緩沖區(qū)的有效帶寬。
與本發(fā)明的特定方面相一致,F(xiàn)IFO緩沖區(qū)包括具有多個(gè)數(shù)據(jù)槽的存儲器陣列,每個(gè)數(shù)據(jù)槽存儲數(shù)據(jù)元素。FIFO控制電路通過利用存儲器陣列執(zhí)行單數(shù)據(jù)元素傳送或雙數(shù)據(jù)元素傳送來響應(yīng)數(shù)據(jù)指令。
與本發(fā)明的另一個(gè)方面相一致,F(xiàn)IFO緩沖區(qū)用于發(fā)送裝置和接收裝置的通信鏈路中。所述FIFO包括存取存儲器陣列中數(shù)據(jù)元素的一對寫端口和一對讀端口。FIFO控制電路響應(yīng)寫數(shù)據(jù)指令,以便通過寫端口執(zhí)行對存儲器陣列的單數(shù)據(jù)元素寫入或雙數(shù)據(jù)元素寫入。FIFO控制電路還響應(yīng)讀數(shù)據(jù)指令,通過讀端口執(zhí)行從存儲器陣列的單數(shù)據(jù)元素或雙數(shù)據(jù)元素讀取。
與本發(fā)明的又一方面相一致,在發(fā)送裝置和接收裝置之間的通信鏈路包括發(fā)送FIFO緩沖區(qū),所述發(fā)送FIFO緩沖區(qū)通過傳輸信道向接收FIFO緩沖區(qū)發(fā)送數(shù)據(jù)元素。每個(gè)FIFO緩沖區(qū)都包括FIFO控制電路,以便響應(yīng)讀數(shù)據(jù)指令而執(zhí)行單數(shù)據(jù)元素或雙數(shù)據(jù)元素讀取、并響應(yīng)寫數(shù)據(jù)指令而執(zhí)行單數(shù)據(jù)元素或雙數(shù)據(jù)元素寫入。
與本發(fā)明的又另一方面相一致,在發(fā)送裝置和接收裝置之間的數(shù)據(jù)元素通信方法包括通過執(zhí)行單數(shù)據(jù)元素或雙數(shù)據(jù)元素寫入來響應(yīng)寫數(shù)據(jù)指令并且通過執(zhí)行單數(shù)據(jù)元素或雙數(shù)據(jù)元素讀取來響應(yīng)讀數(shù)據(jù)指令。
與本發(fā)明的其他一個(gè)方面相一致,F(xiàn)IFO緩沖區(qū)包括用以存取存儲器陣列中的數(shù)據(jù)槽的多個(gè)端口和響應(yīng)數(shù)據(jù)指令而通過所述多個(gè)端口單向存取多個(gè)數(shù)據(jù)槽的FIFO控制電路。
從附圖及其詳細(xì)的說明中將明白本發(fā)明的以上及其他目的和優(yōu)點(diǎn)。
附圖簡單說明
圖1是構(gòu)成集成裝置的兩個(gè)裝置之間的數(shù)據(jù)總線、即或隧道的示意圖。
圖2是圖1的集成裝置的隧道的示意圖,其中每個(gè)裝置都包括與本發(fā)明各個(gè)方面相一致的FIFO循環(huán)緩沖區(qū)。
圖3是圖2的FIFO循環(huán)緩沖區(qū)的示意圖。
被包括在本說明書中并作為本說明書一部分說明本發(fā)明的實(shí)施例的附圖與上面對本發(fā)明的一般描述一起以及下面給出的對實(shí)施例的具體說明,用來解釋本發(fā)明的原理。
特定實(shí)施例的詳細(xì)說明先進(jìn)先出(FIFO)循環(huán)緩沖區(qū)在存儲器陣列的讀寫側(cè)都有附加端口,以便允許從FIFO同時(shí)傳送多個(gè)數(shù)據(jù)元素,例如數(shù)字分組或數(shù)字字。這樣可以在單個(gè)總線周期期間傳送多個(gè)數(shù)據(jù)元素,而不是順序地經(jīng)多個(gè)總線周期,從而無需較快時(shí)鐘周期的開支就可以提供較快的FIFO操作。而且,在某些實(shí)施例中,在一個(gè)總線周期期間傳送的數(shù)據(jù)元素的數(shù)目可以在不同的可能值之間選擇,從而通過FIFO的有效帶寬提供較大的控制。此外,集成電路(IC)之間數(shù)據(jù)總線中的FIFO循環(huán)緩沖區(qū)應(yīng)用能靈活地執(zhí)行一次或多次數(shù)據(jù)讀取和/或數(shù)據(jù)寫入,簡化了IC之間的同步控制。
現(xiàn)轉(zhuǎn)向附圖,其中若干幅圖中相同標(biāo)號表示相同的部件。圖1描繪集成系統(tǒng)10,它由第一IC(接收)裝置12和第二IC(發(fā)送)裝置14構(gòu)成,它們通過通信鏈路(描繪為隧道16)進(jìn)行通信。雖然裝置12、14可以歸于同一個(gè)半導(dǎo)體芯片上,但在所示的實(shí)施例中,每個(gè)裝置12、14是分離的集成電路,由各自的時(shí)鐘18、20所驅(qū)動。例如,每個(gè)裝置12、14可以是分別為快速硅原型化(RSP)環(huán)境下同時(shí)產(chǎn)生的處理器芯片和外圍芯片。隧道16很好地為高帶寬數(shù)據(jù)流提供芯片到芯片的互連,允許裝置12、14之間的高度的結(jié)合。
具體地說,隧道16包括歸于發(fā)送裝置14的隧道出口電路22。隧道出口電路22具有目標(biāo)24,目標(biāo)24與內(nèi)部IC總線26相接,以便從流數(shù)據(jù)裝置28接收。隧道16還包括歸于接收裝置12的隧道入口電路30。隧道入口電路30包括啟動器32,啟動器32歸于接收裝置12的內(nèi)部IC總線34上、用來向接收裝置12上的部件(描繪為DRAM控制器36)提供流數(shù)據(jù)。
隧道16使得發(fā)送裝置14的內(nèi)部IC總線26上的流數(shù)據(jù)裝置28看起來像似歸于接收裝置12上,與內(nèi)部IC總線34進(jìn)行通信。因此,能夠增強(qiáng)RSP以便產(chǎn)生接收裝置12和發(fā)送裝置14,因?yàn)闀r(shí)鐘18、20的同步和其他定時(shí)考慮事項(xiàng)對于集成系統(tǒng)10中的正確通信并不是至關(guān)重要的。
隧道16還同時(shí)包括前向通信路徑38和返向通信路徑40。具體地說,隧道出口電路22包括傳送電路42,它通過前向通信路徑38轉(zhuǎn)發(fā)數(shù)據(jù)給隧道入口電路30的接收電路44。同樣地,隧道入口電路30包括傳送電路46,它通過返向通信路徑40轉(zhuǎn)發(fā)數(shù)據(jù)給隧道出口電路22的接收電路48。
受本發(fā)明啟發(fā)的本專業(yè)的技術(shù)人員將會明白,對集成系統(tǒng)10的敘述只起說明作用,與本發(fā)明各方面一致的隧道16可以歸于單個(gè)裝置12、14中,以內(nèi)部IC總線的形式履行作業(yè)。此外,隧道16可以是單向的,只有前向通信路徑38或返向通信路徑40。另外,與本發(fā)明各方面一致的應(yīng)用可以執(zhí)行其他形式的數(shù)字通信。因此,本發(fā)明并不局限于此處所討論的特定RSP應(yīng)用。實(shí)際上,本文說明的FIFO緩沖區(qū)可以應(yīng)用于使用傳統(tǒng)FIFO緩沖區(qū)的緩沖任何應(yīng)用中。
現(xiàn)轉(zhuǎn)向圖2,用于從發(fā)送裝置14轉(zhuǎn)發(fā)數(shù)據(jù)通信至接收裝置12的隧道16的一部分最好在隧道出口電路22中包括發(fā)送FIFO緩沖區(qū)50,在隧道入口電路30中包括接收FIFO緩沖區(qū)52,以便分別用來緩沖發(fā)送和接收過程中的數(shù)據(jù)。根據(jù)發(fā)送FIFO緩沖區(qū)50的狀態(tài),即取決于發(fā)送FIFO緩沖區(qū)50是否有容納更多數(shù)據(jù)的空間,被隧道出口電路22的目標(biāo)24所接收的流數(shù)據(jù)寫入到發(fā)送FIFO緩沖區(qū)50。隧道出口電路22還響應(yīng)隧道入口電路30中接收FIFO緩沖區(qū)52的狀態(tài),以便通過前向隧道38傳送數(shù)據(jù)。隧道出口電路22把傳送數(shù)據(jù)速率限制在接收FIFO緩沖區(qū)52可以接受數(shù)據(jù)的能力。然后,隧道入口電路30中的啟動器32響應(yīng)接收FIFO緩沖區(qū)5 2的狀態(tài),以便讀取接收FIFO緩沖區(qū)52中的數(shù)據(jù)。
具體地說,隧道16有選擇地在每個(gè)總線周期緩沖并發(fā)送一定數(shù)目的數(shù)據(jù)字,以便增強(qiáng)裝置12、14之間的同步。取決于發(fā)送FIFO緩沖區(qū)50的狀態(tài),在內(nèi)部IC總線26上被目標(biāo)24所接收的流數(shù)據(jù)寫入到發(fā)送FIFO緩沖區(qū)50。在所述說明性敘述中,發(fā)送FIFO緩沖區(qū)50包括兩個(gè)寫端口54、56和兩個(gè)讀端口58、60。目標(biāo)24檢測線路62兩端發(fā)送FIFO緩沖區(qū)50的狀態(tài)。若狀態(tài)為“滿”,則在所述總線周期期間目標(biāo)將不發(fā)出寫指令。若線路62上的狀態(tài)是幾乎滿(即“滿-1″),則目標(biāo)24向發(fā)送FIFO緩沖區(qū)50發(fā)出寫一個(gè)數(shù)據(jù)元素的指令(″WR1″),并向?qū)懚丝?4(“數(shù)據(jù)入口1”)提供一個(gè)數(shù)據(jù)元素。發(fā)送FIFO緩沖區(qū)50響應(yīng)數(shù)據(jù)指令,將第一個(gè)寫端口54選址到下一個(gè)可個(gè)可用的數(shù)據(jù)槽。若線路62上的狀態(tài)不為滿或幾乎滿,則目標(biāo)24向發(fā)送FIFO緩沖區(qū)50發(fā)出寫兩個(gè)數(shù)據(jù)元素的指令(″WR2″),并如前述提供第一個(gè)數(shù)據(jù)元素,另外還向第二個(gè)寫端口56(“數(shù)據(jù)入口2”)提供第二個(gè)數(shù)據(jù)元素。發(fā)送FIFO緩沖區(qū)50如前述地將第一個(gè)寫端口54選址到下一個(gè)可用數(shù)據(jù)槽,另外將第二個(gè)寫端口56選址到緊鄰第一個(gè)寫端口54所選址的槽的下一個(gè)可用數(shù)據(jù)槽。下面將指出,若未從內(nèi)部IC總線26上接收到流數(shù)據(jù),則目標(biāo)24將不發(fā)出寫指令,或只接收到一個(gè)數(shù)據(jù)元素,則即使發(fā)送FIFO緩沖區(qū)50可以處理更多數(shù)據(jù)元素,也仍發(fā)出寫一個(gè)數(shù)據(jù)元素的指令。
作為發(fā)送FIFO緩沖區(qū)50下游的隧道出口電路22的一部分同時(shí)響應(yīng)通過線路64接收到的發(fā)送FIFO緩沖區(qū)50的狀態(tài)以及通過線路66接收到的接收FIFO緩沖區(qū)52的狀態(tài)。具體地說,所述下游部分包括通信編碼器68,當(dāng)檢測到的發(fā)送FIFO緩沖區(qū)50的狀態(tài)為空或檢測到接收FIFO緩沖區(qū)52的狀態(tài)為滿時(shí),它不執(zhí)行來自發(fā)送FIFO緩沖區(qū)50的讀取操作。當(dāng)接收FIFO緩沖區(qū)52的狀態(tài)為即將滿或發(fā)送FIFO緩沖區(qū)50的狀態(tài)為即將空時(shí),所述信道編碼器68命令從發(fā)送FIFO緩沖區(qū)50的寫端口58讀取一個(gè)數(shù)據(jù)元素(″RD 1″)。為響應(yīng)″RD 1″指令,發(fā)送FIFO緩沖區(qū)50將寫端口58連接到最舊的數(shù)據(jù)地址,以便寫出“數(shù)據(jù)出口1”。信道編碼器68將“數(shù)據(jù)出口1”數(shù)據(jù)元素編碼,通過一條或多條內(nèi)部傳輸信道70將它轉(zhuǎn)發(fā)至信道發(fā)送器72,后者通過前向隧道38將已編碼并信道化的數(shù)據(jù)元素傳送到隧道入口電路30。
或者,信道編碼器68響應(yīng)檢測到的接收FIFO緩沖區(qū)52未滿也未即將滿的狀態(tài)以及檢測到的發(fā)送FIFO緩沖區(qū)50未空或未即將空的狀態(tài),命令讀取兩個(gè)元素(″RD2″)。除了上述讀取一個(gè)數(shù)據(jù)元素(RD1)的數(shù)據(jù)指令操作外,發(fā)送FIFO緩沖區(qū)50還響應(yīng)RD2指令,輸出緊隨的最舊數(shù)據(jù)元素(“數(shù)據(jù)出口2”)至信道編碼器68,所述數(shù)據(jù)元素被類似地編碼、信道化并傳送到接收IC裝置12。
隧道入口電路30包括信道接收器74,后者從前向隧道38接收編碼的信道化數(shù)據(jù)。所接收到的數(shù)據(jù)被通過一條或多條內(nèi)部接收信道76轉(zhuǎn)發(fā)給信道解碼器/調(diào)整程序78。取決于接收到的數(shù)據(jù)量,信道解碼器/調(diào)整程序78向接收FIFO緩沖區(qū)52發(fā)出無數(shù)據(jù)傳送、寫一個(gè)數(shù)據(jù)元素(″WR1″)或?qū)憙蓚€(gè)數(shù)據(jù)元素(″WR2″)的指令。信道解碼器/調(diào)整程序78使一個(gè)或兩個(gè)數(shù)據(jù)元素“數(shù)據(jù)入口1”和“數(shù)據(jù)入口2”分別在接收FIFO緩沖區(qū)52的寫端口80、82上可用。接收FIFO緩沖區(qū)52將這些數(shù)據(jù)元素寫入下一個(gè)可用的寫數(shù)據(jù)槽。
雖然未描繪出,但本專業(yè)的技術(shù)人員看了本發(fā)明之后將會明白,信道解碼器/調(diào)整程序78可以進(jìn)一步響應(yīng)接收FIFO緩沖區(qū)52的狀態(tài),有選擇地命令傳送比所接收較少的數(shù)據(jù)量。例如,信道解碼器/調(diào)整程序78可以包括內(nèi)在存儲功能,它還可以用來存儲傳送給接收FIFO緩沖區(qū)52的可選數(shù)目的數(shù)據(jù)字。
接收FIFO緩沖區(qū)52使最舊的兩個(gè)數(shù)據(jù)元素在讀端口84、86上可用,以便啟動器32發(fā)出指令讀取。當(dāng)接收FIFO緩沖區(qū)52即將空時(shí),啟動器32響應(yīng)線路88上檢測到的接收FIFO緩沖區(qū)52的狀態(tài),指示讀取一個(gè)數(shù)據(jù)元素(″RD1″)。當(dāng)接收FIFO緩沖區(qū)52未空也不是即將空時(shí),啟動器32進(jìn)一步響應(yīng)接收緩沖區(qū)52的狀態(tài),指示讀取兩個(gè)數(shù)據(jù)元素(″RD2″)。
下面將指出,可以實(shí)現(xiàn)用單一時(shí)鐘觸發(fā)的發(fā)送FIFO緩沖區(qū)50,其中響應(yīng)該同一個(gè)時(shí)鐘信號而發(fā)生數(shù)據(jù)的輸入和輸出。相反,接收FIFO緩沖區(qū)52最好響應(yīng)兩個(gè)時(shí)鐘信號,以便進(jìn)一步增強(qiáng)集成裝置10中的同步。具體地說,從信道解碼器/調(diào)整程序70接收的數(shù)據(jù)可以響應(yīng)前向通信路徑38上接收的數(shù)據(jù)中固有的時(shí)鐘信號。因而,寫到FIFO 52的數(shù)據(jù)可以與所述接收的時(shí)鐘信號同步;由啟動器32讀取的數(shù)據(jù)可以與接收裝置12的時(shí)鐘18信號同步。
現(xiàn)參考圖3,它是FIFO循環(huán)緩沖區(qū)的操作圖,它順序地引用尋址數(shù)據(jù)槽的數(shù)據(jù)、以便將數(shù)據(jù)寫到存儲器陣列,當(dāng)?shù)竭_(dá)陣列結(jié)尾處時(shí)繞回開始處。同樣地,存儲在存儲器中的數(shù)據(jù)被順序地讀出,存儲最舊數(shù)據(jù)的數(shù)據(jù)槽首先被尋址。寫指針跟蹤用來寫數(shù)據(jù)元素的下一個(gè)可用數(shù)據(jù)槽,讀指針跟蹤存儲最舊數(shù)據(jù)的數(shù)據(jù)槽。包括了預(yù)防措施以防止讀指針超越寫指針。
具體地說,F(xiàn)IFO緩沖區(qū)90通過以“寫端口1”和“寫端口2”表示的多個(gè)寫端口和以“讀端口1”和“讀端口2”表示的多個(gè)讀端口來說明多個(gè)數(shù)據(jù)元素的傳送。FIFO緩沖區(qū)90包括響應(yīng)數(shù)據(jù)指令以執(zhí)行單數(shù)據(jù)元素或雙數(shù)據(jù)元素傳送的控制電路。具體地說,所述FIFO控制電路包括用來接收數(shù)據(jù)指令的控制邏輯92;用來檢測存儲于存儲器陣列96中數(shù)據(jù)量的標(biāo)志邏輯94;以及用來對多個(gè)端口尋址的寫指針電路98和讀指針電路100。
控制邏輯92接收寫入一個(gè)數(shù)據(jù)元素(″WR1″)或?qū)懭雰蓚€(gè)數(shù)據(jù)元素(″WR2″)的指令??刂七壿?2響應(yīng)由標(biāo)志邏輯94提供的所檢測的存儲器96的狀態(tài)來選擇性地發(fā)出寫數(shù)據(jù)傳送指令。具體地說,首先,若存儲器陣列96的狀態(tài)為滿或若未接收到WR1或WR2信號,則控制邏輯92不啟動寫數(shù)據(jù)傳送。其次,若接收到寫一個(gè)數(shù)據(jù)元素的信號WR1,或若接收到寫兩個(gè)數(shù)據(jù)元素的信號WR2,但存儲器陣列96為即將滿,控制邏輯92用寫允許信號1(″WR1_N″)來啟用“寫端口1”。第三,當(dāng)接收到寫兩個(gè)數(shù)據(jù)元素的信號WR2并且存儲器陣列96未滿也未即將滿時(shí),則控制邏輯92除了啟用“寫端口1”之外,還用寫允許信號2(″WR2_N″)來啟用“寫端口2”。
當(dāng)被啟動時(shí),“寫端口1”讀取數(shù)據(jù)輸入1(″DI1″)處的“數(shù)據(jù)入口1”信號,并將它寫到寫地址1(″AW1″)所指定的數(shù)據(jù)槽。當(dāng)被啟動時(shí),“寫端口2”讀取數(shù)據(jù)輸入2(″DI2″)處的“數(shù)據(jù)入口2”信號,并將它寫到寫地址2(″AW2″)所指定的數(shù)據(jù)槽。這兩個(gè)寫地址AW1、AW2由寫指針電路98提供。
寫指針電路98對存儲器陣列96中的數(shù)據(jù)槽尋址(圖3中未顯示)、使得存儲器陣列96可以作為循環(huán)緩沖區(qū)使用。具體地說,寫指針電路98包括D型觸發(fā)器102,后者有指向輸入″AW1″處下一個(gè)可用槽的輸出″Q″,用來單向地寫數(shù)據(jù)到存儲器陣列96。下一個(gè)可用寫地址AW1還反饋給+1加法器104、+2加法器106及3合1的多路復(fù)用器108。加法器104、106的遞增輸出連接到多路復(fù)用器108的另外兩個(gè)輸入端。+1加法器104的遞增輸出還提供給輸入″AW2″,以便尋址“寫端口2”的再下一個(gè)地址。多路復(fù)用器108由控制邏輯92控制,以便更新地址AW1和AW2。具體地說,寫傳輸一個(gè)數(shù)據(jù)元素后,命令多路復(fù)用器108輸出來自+1加法器104的遞增值,所述值將D型觸發(fā)器102的輸入″D″重置為下一個(gè)可用地址。在寫傳輸兩個(gè)數(shù)據(jù)元素后,命令多路復(fù)用器108輸出來自+2加法器106的二次遞增值到D型觸發(fā)器102。
控制邏輯92還接收讀取一個(gè)數(shù)據(jù)元素(″RD1″)或讀取兩個(gè)數(shù)據(jù)元素(″RD2″)的指令??刂七壿?2向應(yīng)由標(biāo)志邏輯94提供的所檢測的存儲器96的狀態(tài)來選擇性地發(fā)出讀數(shù)據(jù)傳送指令。具體地說,首先,若存儲器陣列96的狀態(tài)為空或若未接收到RD1或RD2信號,則控制邏輯92不啟動讀數(shù)據(jù)傳送。其次,若接收到讀一個(gè)數(shù)據(jù)元素的信號RD1或若接收到讀兩個(gè)數(shù)據(jù)元素的信號RD2,但存儲器陣列96為即將空,控制邏輯92用讀允許信號1(″RD1_N″)來啟用“讀端口1”。第三,當(dāng)接收到讀兩個(gè)數(shù)據(jù)元素的信號RD2并且存儲器陣列96未空也未即將空時(shí),則控制邏輯92除了啟用“讀端口1”之外,還用讀允許信號2(″RD2_N″)來啟用“讀端口2”。
當(dāng)被啟動時(shí),“讀端口1”通過讀地址1(″AR1″)所指定的數(shù)據(jù)槽,在數(shù)據(jù)輸出1(″DO1″)處輸出“數(shù)據(jù)出口1”信號。當(dāng)被啟動時(shí),“讀端口2”通過讀地址2(″AR2″)所指定的數(shù)據(jù)槽,在數(shù)據(jù)輸出2(″DO2″)處輸出“數(shù)據(jù)出口2”信號。這兩個(gè)讀地址AR1、AR2由讀指針電路100提供。
讀指針電路100包括D型觸發(fā)器110,后者具有輸出端″Q″,所述輸出端″Q″將包含最舊數(shù)據(jù)的數(shù)據(jù)槽的存儲器地址提供給存儲器陣列96的“讀端口1”的″AR1″輸入端。最舊數(shù)據(jù)的地址AR1還反饋給+1加法器112、+2加法器114以及3合1的多路復(fù)用器116。加法器112、114的遞增輸出連接到多路復(fù)用器116的另外兩個(gè)輸入端。+1加法器112的遞增輸出還提供給輸入端″AR2″,以尋址“讀端口2”的下一個(gè)最舊地址。多路復(fù)用器116由控制邏輯92控制,以更新地址AR1和AR2。具體地說,在讀傳輸一個(gè)數(shù)據(jù)元素之后,命令多路復(fù)用器116輸出來自+1加法器112的遞增值,所述值將D型觸發(fā)器110的輸入″D″重置為下一個(gè)可用地址。在讀傳輸兩個(gè)數(shù)據(jù)元素之后,命令多路復(fù)用器116輸出來自+2加法器114的二次遞增值到D型觸發(fā)器110。
標(biāo)志邏輯94從D觸發(fā)器102接收當(dāng)前寫地址AW1并從D觸發(fā)器110接收當(dāng)前讀地址AR1,從中作出決定,存儲器陣列96是否為滿(無空槽)、即將滿(只有一個(gè)空槽)、空(沒有填充的槽)或即將空(只有一個(gè)槽被填充)。
下面將指出,符合本發(fā)明方面的應(yīng)用可以包括更多端口,如三個(gè)或三個(gè)以上,那兩個(gè)讀端口和兩個(gè)寫端口僅起說明作用。另外,讀端口的數(shù)目可以不同于寫端口的數(shù)目。此外,寫到存儲器陣列和從中讀取的數(shù)據(jù)元素的大小可以不同,這樣,寫端口和讀端口可以執(zhí)行相互大小不同數(shù)據(jù)元素的數(shù)據(jù)傳送。
先進(jìn)先出緩沖區(qū)90的讀寫次序由總線時(shí)鐘所控制。這樣,在一個(gè)定時(shí)點(diǎn)上能執(zhí)行一個(gè)或多個(gè)讀或?qū)懖僮?。在后續(xù)的定時(shí)點(diǎn)上,讀和寫指針被增加合適的槽數(shù),以符合數(shù)據(jù)傳送要求。總線時(shí)鐘可以很好地包括雙數(shù)據(jù)率傳輸,其中傳輸同時(shí)發(fā)生于時(shí)鐘脈沖的上升和下降沿上。
使用時(shí),F(xiàn)IFO緩沖區(qū)90接收總線時(shí)鐘脈沖。為響應(yīng)寫一個(gè)或兩個(gè)數(shù)據(jù)元素(WR1,WR2)的數(shù)據(jù)指令,控制邏輯92確定存儲器陣列96的狀態(tài)是否有足夠的可用數(shù)據(jù)槽,減少啟用(WR1_N,WR2_N)的寫端口(寫端口1和2)的數(shù)目以對應(yīng)可用數(shù)據(jù)槽的數(shù)目。每個(gè)啟用的寫端口接收輸入數(shù)據(jù)(數(shù)據(jù)入口1、數(shù)據(jù)入口2),并將它寫到由寫指針電路98所提供的對應(yīng)地址(AW1,AW2)。
為響應(yīng)讀一個(gè)或兩個(gè)數(shù)據(jù)元素(RD1,RD2)的指令,控制邏輯92確定存儲器陣列96的狀態(tài)是否有足夠的可用數(shù)據(jù)槽,減少啟用(RD1_N,RD2_N)的讀端口(讀端口1和2)的數(shù)目以對應(yīng)可用數(shù)據(jù)槽的數(shù)目。每個(gè)啟用的讀端口輸出從讀指針電路100所提供的對應(yīng)地址(AR1,AR2)所指向的數(shù)據(jù)槽讀取的輸出數(shù)據(jù)(數(shù)據(jù)出口1、數(shù)據(jù)出口2)。
在隨后的定時(shí)時(shí)間間隔上,寫和讀指針電路98、100被更新為下幾個(gè)可用的數(shù)據(jù)槽,所述槽數(shù)符合各自寫或讀的數(shù)據(jù)元素的個(gè)數(shù)。并且,標(biāo)志邏輯94更新存儲器陣列96的狀態(tài),具體地說是設(shè)置滿、即將滿、空或即將空的狀態(tài)標(biāo)志。
雖然已經(jīng)通過對多個(gè)實(shí)施例的描述來說明本發(fā)明并且對這些實(shí)施例也相當(dāng)詳細(xì)地進(jìn)行了描述,但申請人的意圖不是為了局限或用任何形式將所附權(quán)利要求書的范圍限制在這些細(xì)節(jié)上。對本專業(yè)的技術(shù)人員來說,其他的優(yōu)點(diǎn)和修改是顯而易見的。因此,從廣義上來說,本發(fā)明并不局限于特定細(xì)節(jié)、代表性的裝置和方法,以及顯示和描述的說明性示例。因而在不背離申請人一般發(fā)明概念的精神或范圍的情況下,可以從這些細(xì)節(jié)作出不同的修改。
權(quán)利要求
1.一種先進(jìn)先出(FIFO)緩沖區(qū)(90),它包括具有多個(gè)數(shù)據(jù)槽的存儲器陣列(96),每個(gè)數(shù)據(jù)槽配置成存儲數(shù)據(jù)元素;以及FIFO控制電路(92、94、96、98、100),它響應(yīng)數(shù)據(jù)指令而利用所述存儲器陣列(96)單向地執(zhí)行單數(shù)據(jù)元素傳送和雙數(shù)據(jù)元素傳送中選擇的一種傳送。
2.如權(quán)利要求1所述的FIFO緩沖區(qū)(50、52、90),其特征在于所述FIFO控制電路(92、94、96、98、100)接收時(shí)鐘信號并進(jìn)而配置成在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行雙數(shù)據(jù)元素傳送。
3.如權(quán)利要求1所述的FIFO緩沖區(qū)(50、52、90),其特征在于所述單和雙數(shù)據(jù)元素的傳送各自包括響應(yīng)寫數(shù)據(jù)指令而寫到所述存儲器陣列(96)的相應(yīng)的一個(gè)和兩個(gè)數(shù)據(jù)槽,所述FIFO控制電路(92、94、96、98、100)還響應(yīng)讀數(shù)據(jù)指令而執(zhí)行從所述存儲器陣列(96)的相應(yīng)的一個(gè)和兩個(gè)數(shù)據(jù)槽的單數(shù)據(jù)元素讀出和雙數(shù)據(jù)元素讀出中所選的一種讀出。
4.如權(quán)利要求3所述的FIFO緩沖區(qū)(50、52、90),其特征在于所述FIFO控制電路(92、94、96、98、100)還配置成檢測即將滿狀態(tài)并響應(yīng)關(guān)于寫雙數(shù)據(jù)元素的寫數(shù)據(jù)指令而向所述存儲器陣列(96)寫入單數(shù)據(jù)元素。
5.如權(quán)利要求3所述的FIFO緩沖區(qū)(50、52、90),其特征在于所述FIFO控制電路(92、94、96、98、100)還配置成檢測即將空狀態(tài)并響應(yīng)關(guān)于讀雙數(shù)據(jù)元素的讀數(shù)據(jù)指令而從所述存儲器陣列(96)讀取單數(shù)據(jù)元素。
6.一種在發(fā)送裝置和接收裝置之間的通信鏈路(16)中的先進(jìn)先出(FIFO)緩沖區(qū)(90),它包括具有多個(gè)數(shù)據(jù)槽的存儲器陣列(96),每個(gè)槽配置成存儲數(shù)據(jù)元素;配置成向所述存儲器陣列(96)寫入一對相應(yīng)的數(shù)據(jù)元素的一對寫端口(54、56、80、82);配置成從所述存儲器陣列(96)讀取一對相應(yīng)的數(shù)據(jù)元素的一對讀端口(58、60、84、86);FIFO控制電路(92、94、96、98、100),它響應(yīng)寫數(shù)據(jù)指令而執(zhí)行通過所述一對寫端口(54、56、80、82)向所述存儲器陣列(96)的單數(shù)據(jù)元素寫入和雙數(shù)據(jù)元素寫入中選擇的一種并響應(yīng)讀數(shù)據(jù)指令而執(zhí)行通過所述一對讀端口(58、60、84、86)從所述存儲器陣列(96)的單數(shù)據(jù)元素讀取和雙數(shù)據(jù)元素讀取中選擇的一種。
7.如權(quán)利要求6所述的FIFO緩沖區(qū)(50、52、90),其特征在于還包括配置成檢測所述存儲器陣列(96)的滿和即將滿狀態(tài)的FIFO檢測電路,其中,所述FIFO控制電路(92、94、96、98、100)響應(yīng)所述檢測的數(shù)據(jù)狀態(tài)而把寫數(shù)據(jù)指令與從由以下各種狀態(tài)組成的組中選擇的一種狀態(tài)相對應(yīng)不寫入數(shù)據(jù)元素、寫入單數(shù)據(jù)元素以及寫入雙數(shù)據(jù)元素。
8.如權(quán)利要求6所述的FIFO緩沖區(qū)(50、52、90),其特征在于還包括配置成檢測所述存儲器陣列(96)的空和即將空狀態(tài)的FIFO檢測電路,其中,所述FIFO控制電路(92、94、96、98、100)響應(yīng)所述檢測的數(shù)據(jù)狀態(tài)而把寫數(shù)據(jù)指令與從由以下各種狀態(tài)組成的組中選擇的一種狀態(tài)相對應(yīng)不讀出數(shù)據(jù)元素、讀出單數(shù)據(jù)元素以及讀出雙數(shù)據(jù)元素。
9.如權(quán)利要求6所述的FIFO緩沖區(qū)(50、52、90),其特征在于還包括寫指針電路(98),寫指針電路(98)配置成存儲當(dāng)前寫指針值并且響應(yīng)所述FIFO控制電路(92、94、96、98、100)而選擇性地把所述寫指針值遞增一和二個(gè)槽地址;并且還包括讀指針電路(100),所述讀指針電路(100)配置成存儲當(dāng)前讀指針值并且響應(yīng)所述FIFO控制電路(92、94、96、98、100)而選擇性地把所述讀指針值遞增一和二個(gè)槽地址。
10.一種在發(fā)送裝置和接收裝置之間通信鏈路(16),它包括發(fā)送裝置和接收裝置之間的傳輸信道;發(fā)送FIFO緩沖區(qū)(50),它配置成在通過所述傳輸信道傳送給所述接收裝置之前緩沖來自所述發(fā)送裝置的數(shù)據(jù)元素;接收FIFO緩沖區(qū)(52),它配置成緩沖通過所述傳輸信道從所述發(fā)送裝置接收的數(shù)據(jù)元素;其中所述發(fā)送和接收FIFO緩沖區(qū)(50、52)中的每一個(gè)包括具有多個(gè)數(shù)據(jù)槽的存儲器陣列(96),每個(gè)槽配置成存儲數(shù)據(jù)元素;配置成將一對相應(yīng)數(shù)據(jù)元素寫入所述存儲器陣列(96)的一對寫端口(54、56、80、82);配置成從所述存儲器陣列(96)讀取一對相應(yīng)數(shù)據(jù)元素的一對讀端口(58、60、84、86);FIFO控制電路(92、94、96、98、100),它響應(yīng)寫數(shù)據(jù)指令而執(zhí)行通過所述一對寫端口(54、56、80、82)向所述存儲器陣列(96)的單數(shù)據(jù)元素寫入和雙數(shù)據(jù)元素寫入中選擇的一種,并且響應(yīng)讀數(shù)據(jù)指令而執(zhí)行通過所述一對讀端口(58、60、84、86)從所述存儲器陣列(96)的單數(shù)據(jù)元素讀出和雙數(shù)據(jù)元素讀出中選擇的一種。
11.如權(quán)利要求10所述的通信鏈路(16),其特征在于所述發(fā)送和接收FIFO緩沖區(qū)(50、52)中每一個(gè)還包括配置成檢測所述存儲器陣列(96)的數(shù)據(jù)狀態(tài)的FIFO檢測電路,所述通信鏈路(16)還包括通信鏈路控制電路,它響應(yīng)所述檢測的所述接收FIFO緩沖區(qū)(52)的數(shù)據(jù)狀態(tài)而選擇性地產(chǎn)生從以下指令中選擇的一種數(shù)據(jù)指令不向所述發(fā)送FIFO緩沖區(qū)(50)讀出數(shù)據(jù)的指令、向所述發(fā)送FIFO緩沖區(qū)(50)的單讀出指令以及向所述發(fā)送FIFO緩沖區(qū)(50)的雙讀取指令。
12.如權(quán)利要求11所述的通信鏈路(16),其特征在于所述每個(gè)FIFO檢測電路配置成檢測下列數(shù)據(jù)狀態(tài)滿、滿減一個(gè)數(shù)據(jù)元素、空以及空加一個(gè)數(shù)據(jù)元素。
13.一種通過在先進(jìn)先出(FIFO)緩沖區(qū)(50、52、90)中緩沖數(shù)據(jù)元素而在發(fā)送裝置(14)和接收裝置(12)之間傳達(dá)數(shù)據(jù)元素的方法,所述緩沖區(qū)包括具有多個(gè)數(shù)據(jù)槽的存儲器陣列(96),每個(gè)數(shù)據(jù)槽配置成存儲數(shù)據(jù)元素,所述方法包括通過執(zhí)行從向所述存儲器陣列(96)的單數(shù)據(jù)元素寫入和雙數(shù)據(jù)元素寫入中選擇的一種寫入來響應(yīng)寫數(shù)據(jù)指令;以及通過執(zhí)行從所述存儲器陣列(96)的單數(shù)據(jù)元素讀出和雙數(shù)據(jù)元素讀出中選擇的一種讀出來響應(yīng)讀數(shù)據(jù)指令。
14.如權(quán)利要求13所述的方法,其特征在于還包括檢測所述存儲器陣列(96)的數(shù)據(jù)狀態(tài);以及根據(jù)所述存儲器陣列(96)的所述檢測的數(shù)據(jù)狀態(tài)來響應(yīng)讀數(shù)據(jù)指令和寫數(shù)據(jù)指令。
15.如權(quán)利要求14所述的方法,其特征在于檢測所述數(shù)據(jù)狀態(tài)包括檢測滿和即將滿數(shù)據(jù)狀態(tài),響應(yīng)寫數(shù)據(jù)指令還包括響應(yīng)接收關(guān)于寫雙數(shù)據(jù)元素的寫數(shù)據(jù)指令并響應(yīng)檢測到所述存儲器陣列(96)的即將滿數(shù)據(jù)狀態(tài)而執(zhí)行向所述存儲器陣列(96)的單數(shù)據(jù)元素寫入。
16.如權(quán)利要求14所述的方法,其特征在于檢測所述數(shù)據(jù)狀態(tài)包括檢測空和即將空數(shù)據(jù)狀態(tài),響應(yīng)讀數(shù)據(jù)指令還包括響應(yīng)接收關(guān)于讀雙數(shù)據(jù)元素的讀數(shù)據(jù)指令并響應(yīng)檢測到所述存儲器陣列(96)的即將空數(shù)據(jù)狀態(tài)而執(zhí)行從所述存儲器陣列(96)的單數(shù)據(jù)元素讀出。
17.如權(quán)利要求13所述的方法,其特征在于對關(guān)于讀雙數(shù)據(jù)元素和寫雙數(shù)據(jù)元素的數(shù)據(jù)指令的響應(yīng)是在所述FIFO緩沖區(qū)(50、52、90)的一個(gè)時(shí)鐘周期內(nèi)執(zhí)行的
18.如權(quán)利要求13所述的方法,其特征在于所述FIFO緩沖區(qū)(50、52、90)包括具有寫指針電路(98)和讀指針電路(100)的循環(huán)緩沖區(qū),所述寫指針電路(98)配置成存儲當(dāng)前寫指針值并且將所述當(dāng)前寫指針值遞增一個(gè)和二個(gè)槽地址,所述讀指針電路(100)配置成存儲當(dāng)前讀指針值并且把所述當(dāng)前讀指針值遞增一個(gè)和二個(gè)槽地址,所述方法還包括通過從來自所述寫指針電路(98)的所述當(dāng)前寫指針值選擇兩個(gè)槽地址來響應(yīng)關(guān)于寫雙數(shù)據(jù)元素的寫數(shù)據(jù)指令;以及通過從所述讀指針電路(100)的所述當(dāng)前讀指針值選擇兩個(gè)槽地址來響應(yīng)關(guān)于讀雙數(shù)據(jù)元素的讀數(shù)據(jù)指令。
19.一種先進(jìn)先出(FIFO)緩沖區(qū),它包括具有多個(gè)數(shù)據(jù)槽的存儲器陣列(96),每個(gè)數(shù)據(jù)槽配置成存儲數(shù)據(jù)元素;用于存取所述存儲器陣列(96)的數(shù)據(jù)槽的多個(gè)端口;以及響應(yīng)數(shù)據(jù)指令、通過所述多個(gè)端口而單向和并行地存取多個(gè)數(shù)據(jù)槽的FIFO控制電路(92、94、96、98、100)。
20.如權(quán)利要求19所述的FIFO緩沖區(qū)(50、52、90),其特征在于所述FIFO緩沖區(qū)(50、52、90)通過進(jìn)一步包括以下部分而配置成循環(huán)緩沖區(qū)指針值電路,它配置成將當(dāng)前數(shù)據(jù)槽指針保留在所述存儲器陣列(96)中的數(shù)據(jù)槽并且響應(yīng)來自所述FIFO控制電路(92、94、96、98、100)的所述數(shù)據(jù)指令、根據(jù)所述當(dāng)前數(shù)據(jù)槽指針值選擇多個(gè)槽地址。
21.如權(quán)利要求19所述的FIFO緩沖區(qū)(50、52、90),其特征在于所述FIFO控制電路(92、94、96、98、100)響應(yīng)數(shù)據(jù)指令而通過所述多個(gè)端口(54、56、58、60、80、82、84、86)單向和并行地存取從所述多個(gè)數(shù)據(jù)槽中選擇的若干數(shù)據(jù)槽。
全文摘要
通過單向地執(zhí)行多個(gè)數(shù)據(jù)元素傳送、采用多個(gè)端口對存儲器陣列尋址的方法,先進(jìn)先出(FIFO)循環(huán)緩沖區(qū)使得能夠在集成電路器件之間進(jìn)行高速的流數(shù)據(jù)傳輸。此外,在一個(gè)總線周期中執(zhí)行多次傳送,并且傳送的次數(shù)是可以選擇的。FIFO控制電路響應(yīng)存儲器陣列的包括即將空或即將滿的狀態(tài)而限制傳送的數(shù)據(jù)元素的數(shù)目。
文檔編號G06F5/10GK1513135SQ02811203
公開日2004年7月14日 申請日期2002年6月3日 優(yōu)先權(quán)日2001年6月6日
發(fā)明者G·E·埃曼, G E 埃曼 申請人:皇家菲利浦電子有限公司