欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

高速連線的系統(tǒng)及方法

文檔序號(hào):6420994閱讀:178來(lái)源:國(guó)知局
專利名稱:高速連線的系統(tǒng)及方法
技術(shù)領(lǐng)域
本發(fā)明有關(guān)于一種應(yīng)用于處理器之間的通信,特別是有關(guān)于一種在繪圖處理器的邏輯區(qū)塊間執(zhí)行高速通信的系統(tǒng)及方法。
背景技術(shù)
當(dāng)繪圖引擎(graphics engine)的處理速度由大約200MHz增加到200MHz以上時(shí),如何使邏輯區(qū)塊(logic block)間進(jìn)行通信(communication)能更有效率的需求就變得愈加重要。請(qǐng)參考圖1所示,其為繪圖處理器的兩邏輯區(qū)塊間使用簡(jiǎn)單的獲得(available;AVL)信號(hào)與確認(rèn)(acknowledgement;ACK)信號(hào)來(lái)進(jìn)行通信的典型例子。明確來(lái)說(shuō),當(dāng)區(qū)塊0(BLK0)想知道區(qū)塊1(BLK1)是否可獲得時(shí),則區(qū)塊0可以發(fā)出一AVL信號(hào)并等待一ACK的響應(yīng)信號(hào)來(lái)用以指示區(qū)塊1已完成準(zhǔn)備。ACK信號(hào)可通過(guò)將引擎有效性邏輯(engine availability logic)14的處理結(jié)果與AVL信號(hào)以邏輯與("AND")運(yùn)算而形成。
然而,在接收ACK信號(hào)的同時(shí)亦會(huì)形成一些相關(guān)的延遲(delay),此延遲等于ACK延遲=AVL延遲+電路延遲(區(qū)塊0至區(qū)塊1)+引擎有效性邏輯的延遲+電路延遲(區(qū)塊1至區(qū)塊0)因此,系統(tǒng)的總延遲除了AVL信號(hào)及引擎有效性邏輯所產(chǎn)生的延遲外,還包括區(qū)塊0與區(qū)塊1之間的電路傳輸延遲(wire delay)。由此可知,由ACK信號(hào)造成的時(shí)間延遲(timing delay)會(huì)降低整個(gè)系統(tǒng)的執(zhí)行速度。
接著請(qǐng)參照?qǐng)D2,表示當(dāng)系統(tǒng)同時(shí)串聯(lián)其它區(qū)塊時(shí),執(zhí)行速度會(huì)更差。例如在圖2中,區(qū)塊0需先通過(guò)區(qū)塊1才能與區(qū)塊2進(jìn)行接觸。在此,處理ACK信號(hào)的總延遲為ACK延遲=AVL延遲+電路延遲(區(qū)塊0至區(qū)塊1)+區(qū)塊1有效性邏輯的延遲+電路延遲(區(qū)塊1至區(qū)塊2)+區(qū)塊2有效性邏輯的延遲+電路延遲(區(qū)塊2至區(qū)塊 1)+電路延遲(區(qū)塊1至區(qū)塊0)由此得知,當(dāng)多個(gè)區(qū)塊同時(shí)串聯(lián)時(shí),時(shí)效延遲會(huì)更加嚴(yán)重。
為了降低時(shí)效延遲,可以在兩區(qū)塊間加上一暫存器(register)。請(qǐng)參照?qǐng)D3所示,區(qū)塊1中包括一用來(lái)儲(chǔ)存數(shù)據(jù)及AVL狀態(tài)的暫存器16。使用一時(shí)鐘(CLK)信號(hào)使數(shù)據(jù)及AVL狀態(tài)能以時(shí)鐘式(clocked)載入暫存器16中。于區(qū)塊1中更包括一用來(lái)評(píng)估AVL信號(hào)是否存在,以及引擎有效性邏輯14是否完成準(zhǔn)備的附加邏輯(additional logic)18。通過(guò)將數(shù)據(jù)及AVL信號(hào)儲(chǔ)存于暫存器16中,可增進(jìn)系統(tǒng)執(zhí)行速度以避免電路傳輸延遲發(fā)生。然而,假如只使用一組暫存器16,數(shù)據(jù)只能在處理完ACK信號(hào)后以時(shí)鐘式載入系統(tǒng)。再者,假如引擎有效性邏輯14發(fā)生長(zhǎng)時(shí)間時(shí)間延遲時(shí),仍然會(huì)在區(qū)塊0與區(qū)塊1之間造成延遲。
所以,需要有一系統(tǒng)及方法來(lái)有效的在邏輯區(qū)塊(例如繪圖處理器中的邏輯區(qū)塊)間形成連線信號(hào)。

發(fā)明內(nèi)容
基于前述,為改善這些邏輯區(qū)塊間的連線速度,增進(jìn)系統(tǒng)執(zhí)行效率,本發(fā)明提出一種高速連線的系統(tǒng)及方法,其主要目的為當(dāng)區(qū)塊可傳送或接收數(shù)據(jù)時(shí),數(shù)據(jù)能夠以最小的延遲,在時(shí)鐘式的邏輯區(qū)塊間快速且有效率的傳遞,但若是區(qū)塊尚無(wú)法傳送或接收數(shù)據(jù)時(shí),則進(jìn)行等待。
本發(fā)明的另一主要目的為等待區(qū)塊形成可獲得狀態(tài)以進(jìn)行傳送或接收的動(dòng)作,不會(huì)影響當(dāng)區(qū)塊可獲得時(shí)的傳輸速度。
本發(fā)明的高速連線的方法,包含一種在時(shí)鐘式邏輯區(qū)塊間傳輸數(shù)據(jù)的方法。首先,假如第一狀況為真時(shí),此第一狀況表示可從一第一邏輯區(qū)塊中獲得數(shù)據(jù),同時(shí)使復(fù)數(shù)個(gè)暫存器其中之一成為空暫存器,且會(huì)被一寫(xiě)入指針信號(hào)(write pointer signal)所選擇。接著,被寫(xiě)入指針信號(hào)選擇到的空暫存器會(huì)被寫(xiě)入數(shù)據(jù),同時(shí)該寫(xiě)入指針信號(hào)會(huì)以循環(huán)方式前進(jìn)至下一個(gè)暫存器。假如第二狀況為真,此第二狀況表示一第二邏輯區(qū)塊可接收數(shù)據(jù),同時(shí)復(fù)數(shù)個(gè)暫存器其中之一為一滿暫存器,并被一讀取指針信號(hào)(read pointer signal)所選擇。接著,被讀取指針信號(hào)所選擇到的滿暫存器會(huì)被讀取數(shù)據(jù),同時(shí)該讀取指針信號(hào)以循環(huán)方式前進(jìn)至下一個(gè)暫存器。在一實(shí)施例中,包含兩組暫存器,且寫(xiě)入指針信號(hào)及讀取指針信號(hào)均為單一位元(one bit)信號(hào),寫(xiě)入指針信號(hào)及讀取指針信號(hào)以切換(toggling)個(gè)別位的方式來(lái)前進(jìn)。
本發(fā)明的高速連線的系統(tǒng),用來(lái)在時(shí)鐘式邏輯區(qū)塊間傳送數(shù)據(jù),包括一第一邏輯區(qū)塊,復(fù)數(shù)個(gè)數(shù)據(jù)暫存器,一導(dǎo)向電路(steeringcircuit),復(fù)數(shù)個(gè)二元狀態(tài)旗標(biāo)(binary status flag),一第二邏輯區(qū)塊,一多路復(fù)用器(multiplexer),以及一連線控制電路(handshake controlcircuit)。第一邏輯區(qū)塊用來(lái)接收時(shí)鐘信號(hào)(clock signal),以及在該時(shí)鐘信號(hào)下,當(dāng)可由第一邏輯區(qū)塊傳輸數(shù)據(jù)時(shí),形成一區(qū)塊獲得信號(hào)(block available signal)。復(fù)數(shù)個(gè)數(shù)據(jù)暫存器用來(lái)各自保存由第一邏輯區(qū)塊傳送來(lái)的數(shù)據(jù)。一導(dǎo)向電路,根據(jù)寫(xiě)入指針信號(hào),使第一邏輯區(qū)塊傳送的數(shù)據(jù)與復(fù)數(shù)個(gè)數(shù)據(jù)暫存器其中之一結(jié)合。復(fù)數(shù)個(gè)二元狀態(tài)旗標(biāo)各自對(duì)應(yīng)于復(fù)數(shù)個(gè)數(shù)據(jù)暫存器其中之一,用來(lái)指示所對(duì)應(yīng)的復(fù)數(shù)個(gè)數(shù)據(jù)暫存器其中之一是否已儲(chǔ)存滿第一邏輯區(qū)塊的數(shù)據(jù)。第二邏輯區(qū)塊用來(lái)接收時(shí)鐘信號(hào),以及在該時(shí)鐘信號(hào)下,當(dāng)數(shù)據(jù)可由第二邏輯區(qū)塊接收時(shí),則形成一引擎獲得信號(hào)(engine available signal)。多路復(fù)用器根據(jù)讀取指針信號(hào),使復(fù)數(shù)個(gè)數(shù)據(jù)暫存器其中之一傳送的數(shù)據(jù)與該第二邏輯區(qū)塊結(jié)合。連線控制電路用來(lái)接收時(shí)鐘信號(hào)、區(qū)塊獲得信號(hào)、引擎獲得信號(hào)、復(fù)數(shù)個(gè)狀態(tài)旗標(biāo),以及形成寫(xiě)入指針信號(hào)及讀取指針信號(hào),其中讀取指針信號(hào)具有一推導(dǎo)自第一狀況信號(hào)的數(shù)值,而第一狀況信號(hào)為區(qū)塊獲得信號(hào)、讀取指針信號(hào)及復(fù)數(shù)個(gè)狀態(tài)旗標(biāo)所構(gòu)成的函數(shù),而寫(xiě)入指針信號(hào)具有一推導(dǎo)自第二狀況信號(hào)的數(shù)值,而第二狀況信號(hào)為引擎獲得信號(hào)、寫(xiě)入指針信號(hào)及復(fù)數(shù)個(gè)狀態(tài)旗標(biāo)所構(gòu)成的函數(shù)。在一實(shí)施例中,系統(tǒng)有兩組暫存器及兩組二元狀態(tài)旗標(biāo)。


圖1至圖3所示為傳統(tǒng)繪圖處理器連線方式的方塊圖。
圖4所示為本發(fā)明高速連線的系統(tǒng)方塊圖。
圖5所示為本發(fā)明高速連線方法的一范例時(shí)序圖。
圖6所示為連線電路一部分的一實(shí)施例示意圖。
圖7所示為本發(fā)明高速連線系統(tǒng)另一實(shí)施例方塊圖。
圖8A所示為二位寫(xiě)入指針信號(hào)前進(jìn)的狀態(tài)圖。
圖8B所示為二位讀取指針信號(hào)前進(jìn)的狀態(tài)圖。
圖中符號(hào)說(shuō)明14 引擎有效性邏輯16 暫存器18 附加邏輯410 先進(jìn)先出420 編碼器430 21多路復(fù)用器440 循環(huán)式選擇器450 執(zhí)行緒控制器610 異或門620 觸發(fā)器630 異或門640 觸發(fā)器
具體實(shí)施例方式
本發(fā)明的一些實(shí)施例會(huì)詳細(xì)描述如下。然而,除了該詳細(xì)描述外,本發(fā)明還可以廣泛地在其它的實(shí)施例施行。亦即,本發(fā)明的范圍不受已提出的實(shí)施例的限制,而應(yīng)以本發(fā)明提出的申請(qǐng)專利范圍為準(zhǔn)。
請(qǐng)參照?qǐng)D4,為本發(fā)明之一較佳實(shí)施例,表示一傳送邏輯系統(tǒng)(transfer logic system)將數(shù)據(jù)由區(qū)塊0傳送至區(qū)塊1。先進(jìn)先出(FIFO)單元410用來(lái)提供區(qū)塊0數(shù)據(jù),包括提供一獲得(available;AVL)信號(hào)與接收一確認(rèn)(acknowledgement,ACK)信號(hào)。導(dǎo)向邏輯420單元,例如一編碼器(encoder)電路,用來(lái)接收一寫(xiě)入指針信號(hào)(在下列公式中以ping_wr表示),用以選擇將數(shù)據(jù)寫(xiě)入暫存器0或是暫存器1的中。關(guān)于暫存器0的數(shù)值0(在下列公式中以val0表示),以及暫存器1的數(shù)值1(在下列公式中以val1表示),其用來(lái)分別指示暫存器中是否有由區(qū)塊0傳送過(guò)來(lái)的新數(shù)據(jù)。暫存器0與暫存器1的輸出,以及旗標(biāo)數(shù)值0(val0)與旗標(biāo)數(shù)值1(val1)均傳送至由一讀取指針信號(hào)(在下列公式中以ping_rd表示)所控制的21多路復(fù)用器430中,用來(lái)選擇一暫存器。區(qū)塊1即由編碼器420、暫存器、多路復(fù)用器430、循環(huán)式選擇器440及執(zhí)行緒控制器(thread controller)450所構(gòu)成。
在圖4中,ACK信號(hào)用來(lái)指示是否暫存器其中之一有空間可接受數(shù)據(jù)寫(xiě)入,寫(xiě)入指針信號(hào)(ping_wr)用來(lái)指向暫存器0或是暫存器1以寫(xiě)入數(shù)據(jù),一狀態(tài)信號(hào)(status signal)數(shù)值0(val0)用來(lái)指示暫存器0是否為空暫存器,而狀態(tài)信號(hào)數(shù)值1(val1)用來(lái)指示暫存器1是否為空暫存器。讀取指針信號(hào)(ping_rd)則用來(lái)指向暫存器0或暫存器1以進(jìn)行數(shù)據(jù)讀取。因此,可以將ACK信號(hào)以布爾方程式(Boolean equation)表示ACK=(~ping_wr&~val0)+(ping_wr&~val1)
本發(fā)明之一優(yōu)點(diǎn)為區(qū)塊0接收ACK信號(hào)所需的延遲時(shí)間很短,該延遲時(shí)間為邏輯延遲((~ping_wr&~val0)+(ping_wr&~val1))加上由區(qū)塊1到區(qū)塊0的電路傳輸延遲(wire delay from BLK1 toBLK0)。這使得系統(tǒng)可以用非常高的頻率進(jìn)行操作。例如當(dāng)邏輯延遲加上電路傳輸延遲為1奈秒時(shí),系統(tǒng)可操作至大約1GHz。
在數(shù)據(jù)寫(xiě)入暫存器0的狀況下,當(dāng)寫(xiě)入指針信號(hào)(ping_wr)為0時(shí),數(shù)值0(val0)為0,表示可獲得數(shù)據(jù)(即AVL為真,True)。這表示此時(shí)暫存器0是空的,且其為數(shù)據(jù)寫(xiě)入的目標(biāo)暫存器(target register)。當(dāng)在數(shù)據(jù)寫(xiě)入暫存器為1的狀況下時(shí),寫(xiě)入指針信號(hào)(ping_wr)為1,數(shù)值1(val1)為0,表示可獲得數(shù)據(jù)(即AVL為真)。這表示此時(shí)暫存器1是空的,且其為數(shù)據(jù)寫(xiě)入的目標(biāo)暫存器。可將上述兩狀況結(jié)合并與AVL信號(hào)以邏輯與(AND)方式形成一第一狀況信號(hào)(在下列公式中以cs_ping_wr表示),即cs_ping_wr=((~ping_wr&~vat0)+(ping_wr&~val1))&AVL。
在讀取暫存器0數(shù)據(jù)的狀況下,讀取指針信號(hào)(ping_rd)為0,且其數(shù)值0(val0)為1。這表示此時(shí)暫存器0是滿的,且其為數(shù)據(jù)讀取的目標(biāo)暫存器。至于在讀取暫存器1數(shù)據(jù)的狀況下,讀取指針信號(hào)(ping_rd)為1,其數(shù)值1(val1)亦為1,表示此時(shí)暫存器1是滿的,且其亦為數(shù)據(jù)讀取的目標(biāo)暫存器??蓪⑸鲜鰞蔂顩r結(jié)合并與引擎獲得信號(hào)(在下列公式中以engine_available表示)以邏輯與(AND)方式形成一第二狀況信號(hào)(在下列公式中以cs_ping_rd表示),即cs_ping_rd=((~ping_rd&val0)+(ping_rd&val1))&(engine_available)
其它有幫助且相關(guān)的一些信號(hào),如讀取數(shù)據(jù)有效性信號(hào)(在下列公式中以ping_read_data_val表示),為ping_read_data_val=((~ping_rd&val0)+(ping_rd&
val1)),與R_ACK_BLK0=BLK0_AVL&BLK1_ACK。
上述第一個(gè)信號(hào)用來(lái)表示讀取數(shù)據(jù)的有效性,其與引擎有效性邏輯無(wú)關(guān),而第二個(gè)信號(hào)表示在區(qū)塊0(BLK0)中有數(shù)據(jù)且收到由區(qū)塊1(BLK1)傳來(lái)的確認(rèn)。
產(chǎn)生讀取指針信號(hào)(ping_rd)與寫(xiě)入指針信號(hào)(ping_wr)必須在最小的延遲時(shí)間下完成,以增進(jìn)連線操作性能。寫(xiě)入指針信號(hào)(ping_wr)的初設(shè)值為0的信號(hào),因此指向暫存器0。當(dāng)一數(shù)據(jù)寫(xiě)入動(dòng)作出現(xiàn)在暫存器0時(shí),會(huì)使得暫存器0成為滿數(shù)據(jù)狀態(tài),則寫(xiě)入指針信號(hào)(ping_wr)必須由0的信號(hào)轉(zhuǎn)換成1的信號(hào),并指向暫存器1。當(dāng)暫存器1被寫(xiě)入數(shù)據(jù)后,使得暫存器1亦成為滿數(shù)據(jù)狀態(tài),此時(shí)寫(xiě)入指針信號(hào)(ping_wr)必須轉(zhuǎn)換為0的信號(hào)。當(dāng)兩組暫存器都無(wú)法再寫(xiě)入數(shù)據(jù),因?yàn)榫鶠闈M數(shù)據(jù)狀態(tài),則寫(xiě)入指針信號(hào)(ping_wr)不需要改變狀態(tài)。上述狀況可以用下列方程式來(lái)說(shuō)明,ping_wr=ping_wrcs_ping_wr,在此cs_ping_wr=AVL&ACK,記號(hào)表示一異或(XOR)運(yùn)算,而記號(hào)“=”表示在時(shí)鐘邊緣(clock edge)上改變寫(xiě)入指針信號(hào)(ping_wr)。讀取指針信號(hào)(ping_rd)亦具有相似的方程式ping_rd=ping_rdcs_ping_rd。
請(qǐng)參照?qǐng)D5所示,其為一時(shí)序圖(timing diagram),其假設(shè)在最初暫存器0與暫存器1均為空的(即val0=0且val1=0),且于一區(qū)塊0可獲得數(shù)據(jù)(即BLK0_AVL=1)的狀況下,則第一狀況信號(hào)(cs_ping_wr)為1。此第一狀況信號(hào)(cs_ping_wr)信號(hào)可視為異或門(XOR門)的一控制輸入(control input)信號(hào),例如當(dāng)?shù)谝粻顩r信號(hào)(cs_ping_wr)為0時(shí),其寫(xiě)入指針信號(hào)(ping_wr)在通過(guò)XOR門時(shí)不會(huì)改變,但當(dāng)?shù)谝粻顩r信號(hào)(cs_ping_wr)為1時(shí),其寫(xiě)入指針信號(hào)(ping_wr)在通過(guò)XOR門時(shí)則會(huì)改變。于是,當(dāng)寫(xiě)入指針信號(hào)(ping_wr)為0,故指向暫存器0,則暫存器0會(huì)在時(shí)鐘邊緣1時(shí)被寫(xiě)入數(shù)據(jù)。此時(shí),在同一時(shí)鐘邊緣,其數(shù)值0(val0)變成1且寫(xiě)入指針信號(hào)(ping_wr)也轉(zhuǎn)換為1。
假如數(shù)據(jù)仍然可以從區(qū)塊0(BLK0)中獲得時(shí),則此時(shí)數(shù)據(jù)可以寫(xiě)入暫存器1中。在時(shí)鐘邊緣2時(shí),暫存器1被寫(xiě)入數(shù)據(jù),因?yàn)榇藭r(shí)的第一狀況信號(hào)(cs_ping_wr)為1,因此寫(xiě)入指針信號(hào)(ping_wr)在通過(guò)XOR門時(shí),又轉(zhuǎn)換為0。此時(shí),兩組暫存器均為滿數(shù)據(jù)狀態(tài),使得第一狀況信號(hào)(cs_ping_wr)在時(shí)鐘邊緣2時(shí)形成為0,而寫(xiě)入指針信號(hào)(ping_wr)保持在目前的狀態(tài),并指向暫存器0。
在上述這些運(yùn)作過(guò)程中,當(dāng)運(yùn)作在時(shí)鐘邊緣1時(shí),暫存器0被寫(xiě)入數(shù)據(jù)且數(shù)值0(val0)變?yōu)?,因此使得第二狀況信號(hào)(cs_ping_rd)變?yōu)檎?True)。假設(shè)讀取指針信號(hào)(ping_rd)為0,即指向暫存器0,則在時(shí)鐘邊緣2時(shí)會(huì)出現(xiàn)對(duì)暫存器0進(jìn)行數(shù)據(jù)讀取的一些情形。當(dāng)這些數(shù)據(jù)讀取動(dòng)作發(fā)生時(shí),暫存器0變成空的,數(shù)值0(val0)變?yōu)?且讀取指針信號(hào)(ping_rd)變?yōu)?并指向暫存器1。因?yàn)榇藭r(shí)暫存器1為滿數(shù)據(jù)狀態(tài),數(shù)值1(val1)為1且第二狀況信號(hào)(cs_ping_rd)為真,故在時(shí)鐘邊緣3時(shí)將對(duì)暫存器1進(jìn)行數(shù)據(jù)讀取,使得讀取指針信號(hào)(ping_rd)回到0且第二狀況信號(hào)(cs_ping_rd)也變?yōu)?。
接著,請(qǐng)繼續(xù)參照?qǐng)D5的時(shí)序圖,在時(shí)鐘邊緣4時(shí),可以從區(qū)塊0獲得數(shù)據(jù),且第一狀況信號(hào)(cs_ping_wr)變?yōu)?。寫(xiě)入指針信號(hào)(ping_wr)并指向空的暫存器0。
于時(shí)鐘邊緣5,將區(qū)塊0數(shù)據(jù)寫(xiě)入暫存器0中,第一狀況信號(hào)(cs_ping_wr)變?yōu)?,且寫(xiě)入指針信號(hào)(ping_wr)變?yōu)?,指向暫存器1。由于此時(shí)第一狀況信號(hào)(cs_ping_wr)為0,使得寫(xiě)入指針信號(hào)(ping_wr)保持在1,即等待區(qū)塊0形成可獲得數(shù)據(jù)狀態(tài)。
于時(shí)鐘邊緣6,對(duì)暫存器0進(jìn)行數(shù)據(jù)讀取,數(shù)值0(val0)變?yōu)?。此時(shí)讀取指針信號(hào)(ping_rd)指向暫存器1,即讀取邏輯等待暫存器1寫(xiě)入數(shù)據(jù)。
于時(shí)鐘邊緣7,區(qū)塊0形成可獲得數(shù)據(jù)狀態(tài),于時(shí)鐘邊緣8,將數(shù)據(jù)寫(xiě)入暫存器1中。時(shí)鐘邊緣8時(shí)也使得寫(xiě)入指針信號(hào)(ping_wr)變?yōu)?,數(shù)值1(val1)變?yōu)?。于是此時(shí)形成可讀取數(shù)據(jù)狀態(tài),但由于引擎可獲得信號(hào)(engine_available)為0,表示目前無(wú)法進(jìn)行數(shù)據(jù)讀取。此狀況可由讀取數(shù)據(jù)有效性信號(hào)(ping_read_data_avl)為1,但第二狀況信號(hào)(cs_ping_rd)為0得知。
于時(shí)鐘邊緣9,因區(qū)塊0為可獲得數(shù)據(jù)狀態(tài)且暫存器0為空的,故區(qū)塊0的數(shù)據(jù)寫(xiě)入暫存器0,使數(shù)值0(val0)變?yōu)?。此時(shí)兩組暫存器均為滿數(shù)據(jù)狀態(tài)。
于時(shí)鐘邊緣10,引擎可獲得信號(hào)(engine_available)變?yōu)?,這表示可通過(guò)讀取邏輯開(kāi)始進(jìn)行讀取動(dòng)作。同時(shí)第二狀況信號(hào)(cs_ping_rd)也變?yōu)?。而讀取指針信號(hào)(ping_rd)仍與引擎可獲得信號(hào)(engine_available)為0時(shí)一樣保持在指向暫存器1的狀態(tài),因?yàn)楫?dāng)時(shí)第二狀況信號(hào)(cs_ping_rd)為0。
于時(shí)鐘邊緣11,對(duì)暫存器1讀取數(shù)據(jù),使數(shù)值1(val1)變?yōu)?,且讀取指針信號(hào)(ping_rd)也變?yōu)?。
于時(shí)鐘邊緣12,對(duì)暫存器0讀取數(shù)據(jù),使數(shù)值0(val0)變?yōu)?,且讀取指針信號(hào)(ping_rd)變?yōu)?。此時(shí)兩組暫存器均為空的。
于時(shí)鐘邊緣13,區(qū)塊0形成可獲得數(shù)據(jù)狀態(tài),且第一狀況信號(hào)(cs_ping_wr)變?yōu)?。
于時(shí)鐘邊緣14時(shí),因?yàn)樵跁r(shí)鐘邊緣9的數(shù)據(jù)寫(xiě)入暫存器0之后,寫(xiě)入指針信號(hào)(ping_wr)就保持在1,故在時(shí)鐘邊緣14時(shí),新的數(shù)據(jù)寫(xiě)入暫存器1中。同時(shí),數(shù)值1(val1)變?yōu)?,讀取數(shù)據(jù)有效性信號(hào)(ping_read_data_avl)及第二狀況信號(hào)(cs_ping_rd)變?yōu)?,且寫(xiě)入指針信號(hào)(ping_wr)變?yōu)?。
于時(shí)鐘邊緣15,對(duì)暫存器1讀取數(shù)據(jù),數(shù)值1(val1)變?yōu)?,讀取指針信號(hào)(ping_rd)變?yōu)?并指向暫存器0,且讀取數(shù)據(jù)有效性信號(hào)(ping_read_data_avl)及第二狀況信號(hào)(cs_ping_rd)變?yōu)?。此時(shí)兩暫存器均為空的且區(qū)塊0形成可獲得數(shù)據(jù)狀態(tài)。
于時(shí)鐘邊緣16,將數(shù)據(jù)寫(xiě)入暫存器0中,數(shù)值0(val0)變?yōu)?,寫(xiě)入指針信號(hào)(ping_wr)變?yōu)?,且讀取數(shù)據(jù)有效性信號(hào)(ping_read_data_avl)及第二狀況信號(hào)(cs_ping_rd)變?yōu)?。
于時(shí)鐘邊緣17,對(duì)暫存器0讀取數(shù)據(jù),數(shù)值0(val0)變?yōu)?,且讀取數(shù)據(jù)有效性信號(hào)(ping_read_data_avl)及第二狀況信號(hào)(cs_ping_rd)變?yōu)?,讀取指針信號(hào)(ping_rd)變?yōu)?。同時(shí),方塊0形成可獲得數(shù)據(jù)狀態(tài)。
于時(shí)鐘邊緣18,將數(shù)據(jù)寫(xiě)入暫存器1中,數(shù)值1(val1)變?yōu)?,且讀取數(shù)據(jù)有效性信號(hào)(ping_read_data_avl)及第二狀況信號(hào)(cs_ping_rd)變?yōu)?。接著將于下一時(shí)鐘邊緣對(duì)暫存器1進(jìn)行數(shù)據(jù)讀取。
由此可知,由暫存器可獲得數(shù)據(jù)開(kāi)始到數(shù)據(jù)被讀取為止,所需的最短時(shí)間為一個(gè)時(shí)鐘周期(clock period)。不僅如此,當(dāng)不可獲得數(shù)據(jù)或是讀取邏輯無(wú)法進(jìn)行數(shù)據(jù)讀取時(shí),邏輯仍然可順利的執(zhí)行而不會(huì)打亂最佳的處理時(shí)效。
請(qǐng)參照?qǐng)D6,在一實(shí)施例中,寫(xiě)入指針信號(hào)(ping_wr)及讀取指針信號(hào)(ping_rd)各由一觸發(fā)器(flip-flop)(如圖6所示,使用一D-type正反器)及一XOR門來(lái)形成。對(duì)讀取指針信號(hào)(ping_rd)來(lái)說(shuō),XOR門610接收D-type觸發(fā)器620的輸出Q以及第二狀況信號(hào)(cs_ping_rd)。XOR門610的輸出則連接至正反器620的輸入D,正反器620并由一系統(tǒng)時(shí)鐘(system clock;clk)控制。對(duì)寫(xiě)入指針信號(hào)(ping_wr)來(lái)說(shuō),XOR門630接收D-type正反器640的輸出Q以及第一狀況信號(hào)(cs_ping_wr)。XOR門630的輸出則連接至正反器640的輸入D,正反器640亦由一系統(tǒng)時(shí)鐘控制。
雖然本發(fā)明已經(jīng)以一具體實(shí)施方式
例詳細(xì)描述,但仍可以用其它方式操作。請(qǐng)參照?qǐng)D7,為本發(fā)明的另一實(shí)施例,該實(shí)施例以三組暫存器;暫存器0、暫存器1及暫存器2,以及三組有效位(valid bit);數(shù)值0(val0)、數(shù)值1(val1)及數(shù)值2(val2),用于區(qū)塊0與區(qū)塊1之間的數(shù)據(jù)傳送。由寫(xiě)入指針信號(hào)(ping_wr)來(lái)選擇暫存器,而此時(shí)寫(xiě)入指針信號(hào)(ping_wr)為二位信號(hào)。于圖7中,以編碼器解碼寫(xiě)入指針信號(hào)(ping_wr)而形成wr0、wr1及wr2三組信號(hào),分別用來(lái)選擇暫存器0、暫存器1及暫存器2。在一選擇方法中,寫(xiě)入指針信號(hào)(ping_wr)有b′00、b′01及b′10三種狀態(tài),b′00被解碼來(lái)選擇暫存器0,b′01被解碼來(lái)選擇暫存器1,b′10被解碼來(lái)選擇暫存器2,于是可以用一固定循環(huán)方式來(lái)選擇暫存器。在其它的選擇方法中,可以使用格雷碼(Grey Codes)使譯碼動(dòng)作最簡(jiǎn)化。
圖7中所示的多路復(fù)用器,用來(lái)接收亦為二位信號(hào)的讀取指針信號(hào)(ping_rd)。于多路復(fù)用器中,不同狀態(tài)的讀取指針信號(hào)(ping_rd)被譯碼用以選擇一暫存器。在此同樣為二位信號(hào)的讀取指針信號(hào)(ping_rd),有b′00、b′01及b′10三種狀態(tài)。當(dāng)讀取指針信號(hào)(ping_rd)為b′00,則表示選擇暫存器0,當(dāng)讀取指針信號(hào)(ping_rd)為b′01,則表示選擇暫存器1,當(dāng)讀取指針信號(hào)(ping_rd)為b′10,則表示選擇暫存器2,于是可以用一固定循環(huán)方式來(lái)選擇暫存器。同樣的,可以使用格雷碼(Grey Codes)使譯碼動(dòng)作最簡(jiǎn)化。
當(dāng)?shù)谝粻顩r信號(hào)(cs_ping_wr)為真,且一時(shí)鐘邊緣發(fā)生,則寫(xiě)入指針信號(hào)(ping_wr)會(huì)依據(jù)下列演算式來(lái)改變狀態(tài),{if(RESET)ping_wr=′00′else if(cs_ping_wr&ping_wr==′00′)ping_wr=′01′else if(cs_ping_wr&ping_wr==′01′)ping_wr=′10′else if(cs_ping_wr&ping_wr==′10′)ping_wr=′00′}如圖8A所示,以一狀態(tài)機(jī)圖(state machine)來(lái)表示寫(xiě)入指針信號(hào)(ping_wr)。此外,cs_ping_wr=(((ping_wr==b′00′)&~val0)+((ping_wr==b′01′)&~val1)+((ping_wr==b′10′)&~val2))&AVL讀取指針信號(hào)(ping_wr)亦可以用類似的方式實(shí)行,其狀態(tài)機(jī)圖如圖8B所示。而cs_ping_rd=(((ping_rd==b′00′)&val0)+((ping_rd==b′01′)&val1)+((ping_rd==b′10′)&val2))&(engine_available)。
類似這樣的判斷方式亦可用在其它的信號(hào)上。因此,本發(fā)明的此一技術(shù)可以用適當(dāng)?shù)呐袛喾椒〝U(kuò)展至任何數(shù)量的暫存器上。
以上所述僅為本發(fā)明的較佳實(shí)施例,并非用以限定本發(fā)明的申請(qǐng)專利范圍。在不脫離本發(fā)明的實(shí)質(zhì)內(nèi)容的范疇內(nèi)仍可予以變化而加以實(shí)施,此等變化應(yīng)仍屬本發(fā)明的范圍。因此,本發(fā)明的范疇由下列申請(qǐng)專利范圍所界定。
權(quán)利要求
1.一種高速連線的方法,包含假如在一第一狀況為真,該第一狀況表示可從一第一邏輯區(qū)塊中獲得數(shù)據(jù),同時(shí)復(fù)數(shù)個(gè)暫存器其中之一為一空暫存器,且該空暫存器被一寫(xiě)入指針信號(hào)所選擇時(shí),則寫(xiě)入數(shù)據(jù)于被該寫(xiě)入指針信號(hào)所選擇的該空暫存器中;改變?cè)搶?xiě)入指針信號(hào),其以一循環(huán)順序前進(jìn)至下一個(gè)暫存器;假如在一第二狀況為真,該第二狀況表示一第二邏輯區(qū)塊可接收數(shù)據(jù),同時(shí)該復(fù)數(shù)個(gè)暫存器其中之一為一滿暫存器,且該滿暫存器被一讀取指針信號(hào)所選擇時(shí),則讀取數(shù)據(jù)于被該讀取指針信號(hào)所選擇的該滿暫存器中;及改變?cè)撟x取指針信號(hào),其以一循環(huán)順序前進(jìn)至下一個(gè)暫存器。
2.如權(quán)利要求1所述的高速連線的方法,其中該復(fù)數(shù)個(gè)暫存器中有兩組暫存器,且該寫(xiě)入指針信號(hào)及該讀取指針信號(hào)各為一單一位元信號(hào);以該循環(huán)順序改變?cè)搶?xiě)入指針信號(hào)至下一個(gè)暫存器的步驟,包含定位該寫(xiě)入指針信號(hào)至尚未被選擇的該暫存器以便進(jìn)行寫(xiě)入,以及以該循環(huán)順序改變?cè)撟x取指針信號(hào)至下一個(gè)暫存器的步驟,包括定位該讀取指針信號(hào)至尚未被選擇的該暫存器以便進(jìn)行讀取。
3.如權(quán)利要求2所述的高速連線的方法,其中定位該寫(xiě)入指針信號(hào)的步驟,通過(guò)形成該寫(xiě)入指針信號(hào)與該第一狀況的一異或運(yùn)算結(jié)果,該異或運(yùn)算結(jié)果以一時(shí)鐘信號(hào)來(lái)觸發(fā)。
4.如權(quán)利要求2所述的高速連線的方法,其中定位該讀取指針信號(hào)的步驟,通過(guò)形成該讀取指針信號(hào)及該第二狀況的一異或運(yùn)算結(jié)果,該異或運(yùn)算結(jié)果以一時(shí)鐘信號(hào)來(lái)觸發(fā)。
5.一種高速連線的系統(tǒng),包含;一第一邏輯區(qū)塊,用來(lái)接收一時(shí)鐘信號(hào),并在該時(shí)鐘信號(hào)下,當(dāng)可由該第一邏輯區(qū)塊傳輸數(shù)據(jù)時(shí),產(chǎn)生一區(qū)塊獲得信號(hào);復(fù)數(shù)個(gè)數(shù)據(jù)暫存器,用來(lái)各自保存由該第一邏輯區(qū)塊傳送來(lái)的數(shù)據(jù);一導(dǎo)向電路,根據(jù)一寫(xiě)入指針信號(hào),使該第一邏輯區(qū)塊傳送的數(shù)據(jù)與該復(fù)數(shù)個(gè)數(shù)據(jù)暫存器其中之一耦合;復(fù)數(shù)個(gè)二元狀態(tài)旗標(biāo)各自對(duì)應(yīng)于該復(fù)數(shù)個(gè)數(shù)據(jù)暫存器其中之一,用來(lái)指示所對(duì)應(yīng)的該復(fù)數(shù)個(gè)數(shù)據(jù)暫存器其中之一是否已儲(chǔ)存滿該第一邏輯區(qū)塊的數(shù)據(jù);一第二邏輯區(qū)塊,用來(lái)接收該時(shí)鐘信號(hào),并在該時(shí)鐘信號(hào)下,當(dāng)數(shù)據(jù)可由該第二邏輯區(qū)塊接收時(shí),產(chǎn)生一引擎獲得信號(hào);一多路復(fù)用器,根據(jù)一讀取指針信號(hào),使該復(fù)數(shù)個(gè)數(shù)據(jù)暫存器其中之一傳送的數(shù)據(jù)與該第二邏輯區(qū)塊耦合;及一連線控制電路,用來(lái)接收該時(shí)鐘信號(hào)、該區(qū)塊獲得信號(hào)、該引擎獲得信號(hào)、該復(fù)數(shù)個(gè)狀態(tài)旗標(biāo),以及產(chǎn)生一些該寫(xiě)入指針信號(hào)及該讀取指針信號(hào),該讀取指針信號(hào)具有推導(dǎo)自一第一狀況信號(hào)的一數(shù)值,而該第一狀況信號(hào)為該區(qū)塊獲得信號(hào)、該讀取指針信號(hào)及該復(fù)數(shù)個(gè)狀態(tài)旗標(biāo)所構(gòu)成的函數(shù),該寫(xiě)入指針信號(hào)具有推導(dǎo)自一第二狀況信號(hào)的一數(shù)值,而該第二狀況信號(hào)為該引擎獲得信號(hào)、該寫(xiě)入指針信號(hào)及該復(fù)數(shù)個(gè)狀態(tài)旗標(biāo)所構(gòu)成的函數(shù)。
6.如權(quán)利要求5所述的高速連線的系統(tǒng),其中當(dāng)該區(qū)塊獲得信號(hào)為真,且該復(fù)數(shù)個(gè)數(shù)據(jù)暫存器其中之一為一空暫存器,以及該空暫存器被該寫(xiě)入指針信號(hào)所選擇時(shí),則該第一狀況為真;及當(dāng)該引擎獲得信號(hào)為真,且該復(fù)數(shù)個(gè)數(shù)據(jù)暫存器其中之一為一滿暫存器,以及該滿暫存器被該讀取指針信號(hào)所選擇時(shí),則該第二狀況為真。
7.如權(quán)利要求6所述的高速連線的系統(tǒng),其中該寫(xiě)入指針信號(hào)及該讀取指針信號(hào)各包括足夠的位數(shù),以用來(lái)選擇該復(fù)數(shù)個(gè)暫存器中任一暫存器。
8.如權(quán)利要求5所述的高速連線的系統(tǒng),其中該復(fù)數(shù)個(gè)暫存器中有兩組暫存器,且該寫(xiě)入指針信號(hào)及該讀取指針信號(hào)各為一單一位元信號(hào);當(dāng)該區(qū)塊獲得信號(hào)為真,以及一第一暫存器為空暫存器且被該寫(xiě)入指針信號(hào)所選擇或是一第二暫存器為空暫存器且被該寫(xiě)入指針信號(hào)所選擇時(shí),則該第一狀況為真;及當(dāng)該引擎獲得信號(hào)為真,以及該第一暫存器為滿暫存器且被該讀取指針信號(hào)所選擇或是該第二暫存器為滿暫存器且被該讀取指針信號(hào)所選擇時(shí),則該第二狀況為真。
9.如權(quán)利要求8所述的高速連線的系統(tǒng),更包含一第一異或門用來(lái)接收該第一狀況信號(hào)與該寫(xiě)入指針信號(hào),以及一第一觸發(fā)器,該第一正反器具有一用來(lái)接收該第一異或門輸出信號(hào)的輸入端、一用來(lái)接收該時(shí)鐘信號(hào)輸入的時(shí)鐘輸入端,以及當(dāng)該時(shí)鐘信號(hào)改變時(shí)產(chǎn)生該寫(xiě)入指針信號(hào)之一輸出端;及一第二異或門用來(lái)接收該第二狀況信號(hào)與該寫(xiě)入指針信號(hào),以及一第二正反器,該第二正反器具有一用來(lái)接收該第二異或門輸出信號(hào)的輸入端、一用來(lái)接收該時(shí)鐘信號(hào)輸入的時(shí)鐘輸入端,以及當(dāng)該時(shí)鐘信號(hào)改變時(shí)產(chǎn)生該寫(xiě)入指針信號(hào)的一輸出端。
10.如權(quán)利要求9所述的高速連線的系統(tǒng),其中該第一正反器與該第二正反器為一D型觸發(fā)器。
全文摘要
本發(fā)明公開(kāi)一種用來(lái)在處理器中第一電路區(qū)塊與第二電路區(qū)塊之間通信的系統(tǒng)。該系統(tǒng)有復(fù)數(shù)個(gè)用來(lái)儲(chǔ)存由第一區(qū)塊傳送來(lái)的數(shù)據(jù)的暫存器。一導(dǎo)向電路根據(jù)寫(xiě)入指針信號(hào)的數(shù)值,將數(shù)據(jù)寫(xiě)入復(fù)數(shù)個(gè)暫存器其中之一,且只有在復(fù)數(shù)個(gè)暫存器其中之一為空暫存器時(shí)數(shù)據(jù)才會(huì)被寫(xiě)入。同時(shí),該系統(tǒng)中還有一多路復(fù)用器,其根據(jù)讀取指針信號(hào)對(duì)復(fù)數(shù)個(gè)暫存器其中之一讀取數(shù)據(jù),且只有在復(fù)數(shù)個(gè)暫存器其中之一為滿暫存器時(shí)數(shù)據(jù)才會(huì)被讀取。此外,這些寫(xiě)入及讀取指示各自以一循環(huán)方式前進(jìn)來(lái)選擇暫存器,以進(jìn)行寫(xiě)入或讀取動(dòng)作。
文檔編號(hào)G06F15/163GK1514406SQ200310118768
公開(kāi)日2004年7月21日 申請(qǐng)日期2003年12月2日 優(yōu)先權(quán)日2003年4月4日
發(fā)明者黃錫霖 申請(qǐng)人:威盛電子股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
突泉县| 广州市| 青田县| 洪江市| 夏河县| 兰坪| 高尔夫| 英德市| 额敏县| 桐柏县| 广宁县| 阿克陶县| 五峰| 土默特右旗| 荣昌县| 收藏| 迁安市| 勐海县| 淳化县| 天气| 贺兰县| 开鲁县| 高台县| 贡嘎县| 甘孜| 当阳市| 阿拉尔市| 垦利县| 周至县| 威宁| 两当县| 开鲁县| 高淳县| 彭泽县| 铁力市| 南陵县| 商南县| 虹口区| 昔阳县| 临武县| 津南区|