專利名稱:橋接器及電子系統(tǒng)的數(shù)據(jù)清除方法
技術(shù)領(lǐng)域:
本發(fā)明有關(guān)于一種數(shù)據(jù)清除方法,特別涉及一種可以避免數(shù)據(jù)不一致又不會(huì)使效能降低的數(shù)據(jù)清除方法。
背景技術(shù):
許多計(jì)算機(jī)系統(tǒng)會(huì)使用至少兩個(gè)總線,第一條通常稱為內(nèi)存總線(memory bus)用于中央處理器(central processor)與主存儲(chǔ)器(main memory)之間的通訊,且第二條通常為外圍設(shè)備總線(peripheral bus)用于外圍設(shè)備(例如圖形系統(tǒng)、磁盤驅(qū)動(dòng)器或局域網(wǎng)絡(luò))之間的通訊。為了使數(shù)據(jù)能夠于這兩個(gè)總線之間傳輸,通常會(huì)使用一個(gè)橋接器(bridge)將這兩個(gè)總線連接在一起。
橋接器的主要工作在于使得數(shù)據(jù)在不降低任一個(gè)總線的效能的情況下,從一個(gè)總線被傳送至另一個(gè)總線。為了達(dá)到此功能,橋接器必須具有從屬元件的能力(slave capacity)與主控元件的能力(master capacity),使得它可以作為一從屬元件接收來自一總線的要求,之后再作為一主控元件于另一個(gè)總線上執(zhí)行適當(dāng)?shù)目偩€操作。因此,橋接器必須有能力提供由一總線至另一總線的存取動(dòng)作。
一般而言,橋接器會(huì)將來自系統(tǒng)總線或外圍總線上即將被傳送的數(shù)據(jù)暫存(或稱為貼入posted)于一數(shù)據(jù)緩沖器中。暫存數(shù)據(jù)于橋接器中可通過封包化數(shù)據(jù)與預(yù)取數(shù)據(jù)來提高系統(tǒng)的效能。然而,當(dāng)發(fā)生同步處理事件(synchronization event)時(shí),若數(shù)據(jù)還暫存于橋接器中就會(huì)產(chǎn)生數(shù)據(jù)不一致的問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種在接收到數(shù)據(jù)清理要求之后仍然可以接收處理請(qǐng)求的電子系統(tǒng)的數(shù)據(jù)清理(flush)方法,以提高電子系統(tǒng)的效能。
本發(fā)明提供一種本發(fā)明提供一種橋接器,包括一第一主控元件,用以輸出一清理要求信號(hào);一緩沖單元,用以暫存數(shù)據(jù)或指令;以及一清理要求控制電路,用以在接收到上述清理要求信號(hào)時(shí),記錄所述緩沖單元的寫入緩沖指針,并在上述緩沖單元的讀取緩沖指針與所記錄的寫入緩沖指針相同時(shí),輸出一清理完成確認(rèn)信號(hào)至上述第一主控元件。
本發(fā)明提供一種電子系統(tǒng)的數(shù)據(jù)清理(flush)方法,包括當(dāng)接收到來自一第一主控元件的一清理要求信號(hào)時(shí),記錄一緩沖單元的一寫入緩沖指針;比較上述緩沖單元的一讀取緩沖指針與所記錄的上述寫入緩沖指針;以及若上述讀取緩沖指針與所記錄的上述寫入緩沖指針相同,輸出一清理完成確認(rèn)信號(hào)至上述第一主控元件。
本發(fā)明的從屬元件不會(huì)因?yàn)橹骺卦l(fā)出的清理要求信號(hào)中斷接收處理要求,而是可以繼續(xù)將數(shù)據(jù)及/或指令放入緩沖單元中,使得系統(tǒng)的效能有效提升。
圖1為依據(jù)本發(fā)明一實(shí)施例的電子系統(tǒng)的示意圖。
圖2為本發(fā)明一實(shí)施例的清理要求控制電路的框圖。
圖3為本發(fā)明另一實(shí)施例的清理要求控制電路的框圖。
圖4為圖3所示的清理要求控制電路的電路圖。
圖5為圖4中清理要求控制電路的信號(hào)時(shí)序圖。
圖6為圖3所示的清理要求控制電路的電路圖。
圖7為依據(jù)本發(fā)明另一實(shí)施例的電子系統(tǒng)的示意圖。
具體實(shí)施例方式
通過下面結(jié)合示例性地示出一例的附圖進(jìn)行的描述,本發(fā)明的上述和其它目的和特點(diǎn)將會(huì)變得更加清楚。
圖1為依據(jù)本發(fā)明一實(shí)施例的電子系統(tǒng)的示意圖。如圖所示,電子系統(tǒng)100可實(shí)現(xiàn)成一計(jì)算機(jī)系統(tǒng),也可以實(shí)現(xiàn)成一數(shù)字相機(jī)、一數(shù)字錄放機(jī)、一消費(fèi)性電子產(chǎn)品、一移動(dòng)通訊裝置、一可攜式電子產(chǎn)品或一機(jī)器人,但不限定于此。電子系統(tǒng)100包括一主控元件MA、一從屬元件SA、一橋接器10以及一外圍設(shè)備20。舉例而言,主控元件MA可為一中央處理器(CPU)、從屬元件SA可為一系統(tǒng)內(nèi)存或中央處理器中的高速緩存,而外圍設(shè)備20可為一外圍設(shè)備互連(peripheral component interface;PCI)設(shè)備,但不限定于此。橋接器10包括主控元件MB與MC、從屬元件SB與SC以及緩沖單元BF1與BF2,而外圍設(shè)備20包括主控元件MD與從屬元件SD。舉例而言,每個(gè)緩沖單元BF1與BF2可包含一個(gè)或多個(gè)先進(jìn)先出緩沖器(First In First Output;FIFO)。
當(dāng)主控元件MA要求存取外圍設(shè)備20的從屬元件SD時(shí),從屬元件SB會(huì)接收來自主控元件MA的處理要求(transactionrequests)并放入(push)緩沖單元BF1中。主控元件MC會(huì)執(zhí)行緩沖單元BF1中從屬元件SB所放入的處理要求,使得從屬元件SD接受該處理要求。反言之,當(dāng)外圍設(shè)備20中的主控元件MD要求存取從屬元件SA時(shí),從屬元件SC會(huì)接收來自主控元件MD的處理要求(transaction requests)并放入(push)緩沖單元BF2中。主控元件MB會(huì)執(zhí)行緩沖單元BF2中從屬元件SC所放入的處理要求,使得從屬元件SA接受該處理要求。一般而言,由主控元件MA至從屬元件SD的處理要求稱為下行處理(downstreamtransaction),而由主控元件MD至從屬元件SA的處理要求稱為上行處理(upstream transaction)。在某些情況下,在某一方向(上行或下行)的處理要求完成前,另一方向(下行或上行)的處理要求必須要先完成,以便維持處理要求的順序,以避免數(shù)據(jù)的一致性發(fā)生問題。
舉例來說,當(dāng)外圍設(shè)備20完成一寫入處理要求,并發(fā)出一中斷信號(hào)給主控元件MA(例如CPU),通知可由從屬元件SA(例如系統(tǒng)內(nèi)存)中讀取一筆寫入數(shù)據(jù)。主控元件MA在處理從屬元件SA中的該筆寫入數(shù)據(jù)前,會(huì)向從屬原件SD發(fā)出一讀取請(qǐng)求,以讀取外圍設(shè)備20的狀態(tài)數(shù)據(jù)。主控元件MA發(fā)送給從屬元件SD的讀取請(qǐng)求是一個(gè)同步事件,因而橋接器10此時(shí)會(huì)終止接收主控元件MD發(fā)出的處理請(qǐng)求,并清除緩沖單元BF2中的數(shù)據(jù)以保證數(shù)據(jù)的一致性。換言之,主控元件MA會(huì)先讀取從屬元件SD的狀態(tài),在此處理要求完成前,橋接器10必須確認(rèn)該筆寫入數(shù)據(jù)已經(jīng)放入從屬元件SA中。從屬元件SD讀取數(shù)據(jù)之前或?qū)⑼鈬O(shè)備20的狀態(tài)數(shù)據(jù)回傳給主控元件MA之前,橋接器10將會(huì)產(chǎn)生一清理(flush)要求信號(hào)flush_req給從屬元件SC,并等待從屬元件SC回復(fù)一清理完成確認(rèn)信號(hào)(flush acknowledge)flush_ack表示該筆寫入數(shù)據(jù)已經(jīng)放入從屬元件SA中。
然而,從屬元件SC接收到清理要求信號(hào)flush_req后,將不會(huì)再把數(shù)據(jù)或指令放入緩沖單元BF2中,即從屬元件SC將停止運(yùn)作,并使外部的主控單元重新發(fā)出(retry)處理要求或發(fā)出等待狀態(tài)。清理完成確認(rèn)信號(hào)flush_ack將于緩沖單元BF2中所有處理要求清空后才會(huì)發(fā)出。由于接收到清理要求信號(hào)flush_req時(shí),將會(huì)停止接收處理要求,故系統(tǒng)的效能將會(huì)降低。
為了提升系統(tǒng)的效能,本發(fā)明亦提供其它實(shí)施例。圖2為本發(fā)明中一清理要求控制電路的一實(shí)施例。清理要求控制電路12可設(shè)置于橋接器10之內(nèi),用以接收一清理要求信號(hào)flush_req,并于一適當(dāng)時(shí)間后,輸出產(chǎn)生一清理完成確認(rèn)信號(hào)flush_ack表示緩沖單元BF2中所有處理要求已清空。舉例而言,清理要求控制電路12整合于圖1的從屬元件SC中,亦可設(shè)置于主控單元MC、從屬元件SC與緩沖單元BF2之間,但不限定于此。舉例而言,每個(gè)緩沖單元BF1與BF2可包含一個(gè)或多個(gè)先進(jìn)先出緩沖器(First In First Output;FIFO)。
如圖2所示,清理要求控制電路12包括一比較單元121、一暫存器122以及一輸出單元123。舉例而言,當(dāng)接收到來自主控元件MC的清理要求信號(hào)flush_req時(shí),暫存器122會(huì)記錄緩沖單元BF 2目前的寫入緩沖指針(write pointer)wr_ptr。比較單元121將緩沖單元BF2目前的讀取緩沖指針(read pointer)rd_ptr與暫存器122所記錄的寫入緩沖指針wr_ptr進(jìn)行比較。當(dāng)緩沖單元BF2目前的讀取緩沖指針rd_ptr與暫存器122所記錄的寫入緩沖指針wr_ptr相同時(shí),則表示在接收到清理要求信號(hào)flush_req時(shí)緩沖單元BF2中所存儲(chǔ)的數(shù)據(jù)或指令已經(jīng)被讀取,即該寫入動(dòng)作已經(jīng)完成,比較單元121會(huì)輸出一比較信號(hào)s_equal。
于本實(shí)施例中,清理要求控制電路12所接收到的緩沖單元BF2的寫入緩沖指針wr_ptr與讀取緩沖指針rd_ptr是由緩沖單元BF2所提供。然而,于某些實(shí)施例中,清理要求控制電路12所接收到的緩沖單元BF2的寫入緩沖指針wr_ptr與讀取緩沖指針rd_ptr亦可由從屬元件SC所提供,但不限定于此。
于本實(shí)施例中,輸出單元123由一或門來實(shí)現(xiàn)。當(dāng)輸出單元123接收到比較信號(hào)s_equal,會(huì)輸出一清理完成確認(rèn)信號(hào)flush_ack告知主控元件MC緩沖單元BF2中所有處理要求已清空。假設(shè)接收到主控元件MC的清理要求信號(hào)flush_req時(shí),緩沖單元BF2中就沒有任何數(shù)據(jù)或指令,則緩沖單元BF2則會(huì)輸出一緩沖單元空信號(hào)fifo_empty,使得輸出單元123會(huì)直接輸出清理完成確認(rèn)信號(hào)flush_ack告知主控元件MC緩沖單元BF2中所有處理要求已清空。
因?yàn)楫?dāng)緩沖單元BF2目前的讀取緩沖指針rd_ptr與暫存器122所記錄的寫入緩沖指針wr_ptr相同時(shí),表示在接收到清理要求信號(hào)flush_req前緩沖單元BF2所存儲(chǔ)的數(shù)據(jù)或指令已經(jīng)被讀取,并且輸出單元123會(huì)輸出清理完成確認(rèn)信號(hào)flush_ack告知主控元件MC。所以,即使接收到主控元件MC發(fā)出的清理要求信號(hào)flush_req,從屬元件SC不必中斷接收來自外圍設(shè)備20中主控元件MD的處理要求,并且繼續(xù)將數(shù)據(jù)及/或指令放入(push)緩沖單元BF2中,使得系統(tǒng)的效能將有效提升。
圖3為本發(fā)明中一清理要求控制電路的另一實(shí)施例。如圖所示,清理要求控制電路14包括一暫存器141、一比較單元142及一輸出單元143。暫存器141包括一清理要求處理單元1410及一緩存單元1411。同樣地,清理要求控制電路14可整合于圖1的從屬元件SC中,亦可設(shè)置于主控單元MC、從屬元件SC與緩沖單元BF2之間。于本實(shí)施例中,在清理要求控制電路14接收到主控元件SC發(fā)出的清理要求信號(hào)flush_req時(shí),清理要求處理單元1410會(huì)依據(jù)清理要求信號(hào)flush_req與清理完成確認(rèn)信號(hào)flush_ack輸出控制信號(hào)pending_req與選擇信號(hào)sel。其中,當(dāng)清理要求信號(hào)flush_req有效且清理完成確認(rèn)信號(hào)flush_ack無效時(shí),控制信號(hào)pending_req由初始的無效狀態(tài)變?yōu)橛行顟B(tài);而當(dāng)清理完成確認(rèn)信號(hào)flush_ack由無效狀態(tài)變?yōu)橛行顟B(tài)時(shí),控制信號(hào)pending_req被清除。于本實(shí)施例中,有效狀態(tài)可為高電平,而無效狀態(tài)可為低電平,反之亦然。緩存單元1411依據(jù)緩沖單元BF2的寫入緩沖指針fifo_wptr與選擇信號(hào)sel輸出比較指針cmp_req。當(dāng)選擇信號(hào)sel有效時(shí),緩存單元1411將接收的寫入緩沖指針fifo_wptr作為比較指針cmp_ptr輸出;當(dāng)選擇信號(hào)sel變?yōu)闊o效時(shí),緩存單元1411輸出的比較指針cmp_ptr保持不變,即當(dāng)清理要求信號(hào)flush_req變?yōu)橛行r(shí),緩存單元1411會(huì)將緩沖單元BF2的寫入緩沖指針fifo_wptr記錄下來。比較單元142比較所接收的讀取緩沖指針fifo_rptr與緩存單元1411記錄的寫入緩沖指針fifo_wptr是否相同,若相同則輸出有效的比較信號(hào)s_equal至輸出單元143,以說明在接收到flush_req之前緩沖器BF2中所存儲(chǔ)的數(shù)據(jù)均已被寫入從屬元件SA。輸出單元143依據(jù)接收的比較信號(hào)s_equal、控制信號(hào)pending_req與緩沖單元空信號(hào)fifo_empty輸出清理完成確認(rèn)信號(hào)flush_ack。當(dāng)比較信號(hào)s_equal與控制信號(hào)pending_req均有效時(shí),或緩沖單元空信號(hào)fifo_empty有效時(shí),輸出單元143輸出有效的清理完成確認(rèn)信號(hào)flush_ack,以表示緩沖器BF2被清空。由于只有在控制信號(hào)pending_req有效的情形下,比較單元142輸出的比較信號(hào)s_equal才會(huì)對(duì)輸出單元143輸出的清理完成確認(rèn)信號(hào)flush_ack產(chǎn)生影響,因而本實(shí)施例清理要求控制電路14可以防止在某些特殊情形下輸出假的清理完成確認(rèn)信號(hào)flush_ack。
圖4為圖3所示本發(fā)明中一清理要求控制電路的電路圖。如圖所示,暫存器141的清理要求處理單元1410包括多工器MUXA與MUXB、與門AND1、反相器INV1與INV2以及D型觸發(fā)器DFA。反相器INV1的輸入端接收控制信號(hào)pending_req,反相器INV2的輸入端接收清理完成確認(rèn)信號(hào)flush_ack。與門AND1依據(jù)接收的清理要求信號(hào)flush_req、反相器INV1輸出的信號(hào)與INV2輸出的信號(hào)產(chǎn)生并輸出選擇信號(hào)sel。多工器MUXA具有兩輸入端分別耦接至多工器MUXB的輸出端以及數(shù)據(jù)“1”(即高電平),一輸出端耦接至D型觸發(fā)器DFA,以及一控制端耦接至與門AND1輸出的選擇信號(hào)sel。多工器MUXB具有兩輸入端分別耦接至D型觸發(fā)器DFA輸出的控制信號(hào)pending_req以及數(shù)據(jù)“0”(即低電平),一輸出端耦接至多工器MUXA,以及一控制端耦接至清理完成確認(rèn)信號(hào)flush_ack。
暫存器141的緩存單元1411包括多工器MUX1~MUXn與D型觸發(fā)器DF1~DFn。多工器MUX1具有兩輸入端用以分別耦接至緩沖單元BF2的寫入緩沖指針fifo_wptr[1]以及D型觸發(fā)器DF1的輸出端,一輸出端耦接至D型觸發(fā)器DF1的輸入端,以及一控制端耦接至清理要求處理單元1410輸出的選擇信號(hào)sel。D型觸發(fā)器DF1具有輸入端耦接至多工器MUX1的輸出端,一時(shí)鐘輸入端耦接至一時(shí)鐘信號(hào)CLK1,以及一輸出端輸出比較指針cmp_ptr至比較單元142與多工器MUX1的輸入端。因?yàn)镈型觸發(fā)器DF1與多工器MUX1只能鎖住一位(bit)的數(shù)據(jù),而寫入緩沖指針fifo_wptr通常包含有n位(n≥1),因此本實(shí)施的緩存單元1411包含n個(gè)D型觸發(fā)器DF1與n個(gè)多工器MUX1以將寫入緩沖指針fifo_wptr完整記錄下來。
比較單元142具有兩輸入端用以分別耦接至D型觸發(fā)器DF1的輸出端以及緩沖單元BF2的讀取緩沖指針fifo_rptr,以及一輸出端輸出比較信號(hào)s_equal至輸出單元143。輸出單元143包含一與門AND2與一或門1431。與門AND2具有兩輸入端分別接收比較單元142輸出的信號(hào)與暫存器141輸出的控制信號(hào)pending_req,以及一輸出端耦接至或門1431?;蜷T1431具有兩輸入端分別用以耦接至與門AND2的輸出端與一緩沖單元空信號(hào)fifo_empty。
清理要求控制電路14的動(dòng)作參考圖5說明如下。當(dāng)暫存器141接收到來自主控元件MC的清理要求信號(hào)flush_req時(shí),清理要求處理單元1410會(huì)輸出具有高電平的控制信號(hào)pending_req。舉例而言,由于清理完成確認(rèn)信號(hào)flush_ack與控制信號(hào)pending_req的初始狀態(tài)為低電平(is not asserted),所以與門AND1輸出的選擇信號(hào)sel會(huì)由低電平變成高電平,使得高電平的信號(hào)(即數(shù)據(jù)“1”)會(huì)通過多工器MUXA輸出至D型觸發(fā)器DFA,故D型觸發(fā)器DFA會(huì)由低電平變成高電平,即輸出信號(hào)高電平的pending_req。
同時(shí),緩存單元1411的多工器MUX1~MUXn會(huì)根據(jù)來自清理要求處理單元1410的選擇信號(hào)sel,將緩沖單元BF2目前的寫入緩沖指針fifo_wptr[n:1](例如圖5中的D)輸出至D型觸發(fā)器DF1~DFn,使得D型觸發(fā)器DF1將目前的寫入緩沖指針fifo_wptr[n:1]當(dāng)作比較指針cmp_ptr[n:1]輸出至比較單元142。
由于D型觸發(fā)器DFA輸出的控制信號(hào)pending_req變成高電平,所以反相器INV1的輸出端會(huì)由高電平變成低電平,故與門AND1輸出的選擇信號(hào)sel會(huì)由高電平變成低電平。由于D型觸發(fā)器DFA的輸入端會(huì)通過多工器MUXA與MUXB耦接至其輸出端,使得D型觸發(fā)器DF1輸出的控制信號(hào)pending_req會(huì)維持在高電平。再者,D型觸發(fā)器DF1~DFn的輸入端亦會(huì)通過多工器MUX1~MUXn耦接至其輸出端,使得緩沖單元BF2目前的寫入緩沖指針fifo_wptr[n:1],即比較指針cmp_ptr[n:1]會(huì)被暫存(記錄)下來。舉例而言,D型觸發(fā)器DF1~DFn與多工器MUX1~MUXn構(gòu)成一暫存器,用以記錄緩沖單元BF2目前的寫入緩沖指針fifo_wptr[n:1],作為比較指針cmp_ptr[n:1]。
當(dāng)緩沖單元BF2目前的讀取緩沖指針fifo_rptr[n:1]與所暫存的寫入緩沖指針fifo_wptr[n:1]相同時(shí),則表示在接收到清理要求信號(hào)flush_req前所寫入的數(shù)據(jù)或指令已經(jīng)被讀取,故比較單元142的輸出端會(huì)由低電平變成高電平。由于控制信號(hào)pending_req與比較單元142的輸出端此時(shí)皆為高電平,所以與門AND2的輸出端會(huì)由低電平變成高電平,致使或門1431的輸出端由低電平變成高電平,即輸出清理完成確認(rèn)信號(hào)flush_ack。
清理完成確認(rèn)信號(hào)flush_ack變成高電平之后,控制信號(hào)pending_req會(huì)被清除,即由高電平變?yōu)榈碗娖?。具體來說,當(dāng)清理完成確認(rèn)信號(hào)flush_ack變?yōu)楦唠娖胶?,?shù)據(jù)“0”會(huì)通過多工器MUXB與MUXA輸出至D型觸發(fā)器DFA,使得D型觸發(fā)器DFA輸出的控制信號(hào)pending_req由高電平變成低電平。在控制信號(hào)pending_req變?yōu)榈碗娖胶?,與門AND2輸出的信號(hào)變?yōu)榈碗娖剑沟没蜷T1431輸出的清理完成確認(rèn)信號(hào)flush_ack被清除。
假設(shè)接收到主控元件MC的清理要求信號(hào)flush_req時(shí),緩沖單元BF2中就沒有任何數(shù)據(jù)或指令,則緩沖單元BF2會(huì)致能緩沖單元空信號(hào)fifo_empty,使得輸出單元143致能清理完成確認(rèn)信號(hào)flush_ack,告知主控元件MC緩沖單元BF2中所有處理要求已清空。
由于清理要求控制電路14會(huì)在接收到清理要求信號(hào)flush_req前所寫入的數(shù)據(jù)或指令已經(jīng)被讀取時(shí),輸出清理完成確認(rèn)信號(hào)flush_ack告知主控元件MC,所以從屬元件SC即使接收到的清理要求信號(hào)flush_req,也可以不必中斷接收來自外圍設(shè)備20的處理要求,并且繼續(xù)將數(shù)據(jù)及/或指令放入(push)緩沖單元BF2中。因此,系統(tǒng)的效能將有效提升。
圖6為圖3所示本發(fā)明另一實(shí)施例的清理要求控制電路的電路圖。如圖所示,清理要求控制電路14’與圖4所示的清理要求控制電路14相類似,本實(shí)施例的清理控制14’也包括一暫存器141’、一比較單元142及一輸出單元143。暫存器141’包括一清理要求處理單元1410’及一緩存單元1411。在清理要求控制電路14接收到主控元件SC發(fā)出的清理要求信號(hào)flush_req時(shí),清理要求處理單元1410’會(huì)依據(jù)清理要求信號(hào)flush_req與清理完成確認(rèn)信號(hào)flush_ack輸出控制信號(hào)pending_req與選擇信號(hào)sel。緩存單元1411依據(jù)選擇信號(hào)sel記錄緩沖單元BF2的寫入緩沖指針fifo_wptr[1:n]并通過比較指針cmp_req輸出給比較單元142。比較單元142比較接收的讀取緩沖指針fifo_rptr[n:1]與緩存單元1411記錄的寫入緩沖指針fifo_wptr[n:1]是否相同,以判斷在接收到flush_req之前緩沖器BF2中所存儲(chǔ)的數(shù)據(jù)是否已被清空。輸出單元143依據(jù)接收的比較信號(hào)s_equal、控制信號(hào)pending_req與緩沖單元空信號(hào)fifo_empty輸出清理完成確認(rèn)信號(hào)flush_ack。
其中,清理要求處理單元1410’包括多工器MUXA與MUXB、與門AND1、反相器INV1以及D型觸發(fā)器DFA。與門AND1依據(jù)接收的清理要求信號(hào)flush_req以及經(jīng)反相器INV1反相后的控制信號(hào)pending_req產(chǎn)生并輸出選擇信號(hào)sel。多工器MUXB依據(jù)控制信號(hào)pending_req選擇輸出低電平或控制信號(hào)pending_req。多工器MUXA依據(jù)選擇信號(hào)sel選擇輸出高電平或多工器MUXB的輸出信號(hào)。顯然,當(dāng)清理要求信號(hào)flush_req有效而控制信號(hào)pending_req無效時(shí),與門AND1輸出的選擇信號(hào)sel為有效狀態(tài),以使緩存單元1411接收并輸出緩沖單元BF2的寫入緩沖指針fifo_wptr[n:1]。當(dāng)選擇信號(hào)sel有效時(shí),控制信號(hào)pending_req變?yōu)橛行顟B(tài)。當(dāng)清理要求信號(hào)flush-req與控制信號(hào)pending_req均有效時(shí),與門AND1輸出的選擇信號(hào)sel變?yōu)闊o效狀態(tài),以使緩存單元1411將接收的寫入緩沖指針fifo_wptr[n:1]記錄下來。當(dāng)緩沖單元BF2為空時(shí),輸出單元143依據(jù)暫存器空信號(hào)fifo_empty直接輸出有效的清理完成確認(rèn)信號(hào)flush_ack。然而,由于本實(shí)施例中選擇信號(hào)sel的狀態(tài)不受清理完成確認(rèn)信號(hào)flush_ack的影響,清理要求處理單元1410會(huì)輸出有效的選擇信號(hào)sel,使得緩存單元1411進(jìn)行不必要的操作。為防止這種情形發(fā)生,可通過主控元件MC設(shè)定當(dāng)清理完成確認(rèn)信號(hào)flush_ack有效時(shí),使清理要求信號(hào)flush_req處于無效狀態(tài)。
圖7為本發(fā)明的電子系統(tǒng)的另一實(shí)施例。如圖所示,電子系統(tǒng)100”相似于圖1中所示的電子系統(tǒng)100,差別在于橋接器10的從屬元件SC中增設(shè)了圖2所示的清理要求控制電路12、圖4所示的清理要求控制電路14或圖6所示的清理要求控制電路14’。
當(dāng)外圍設(shè)備20完成一寫入處理要求,并發(fā)出一中斷信號(hào)給主控元件MA(例如CPU),通知可于從屬元件SA(例如系統(tǒng)內(nèi)存)中讀取一筆寫入數(shù)據(jù)。在處理從屬元件SA中的該筆寫入數(shù)據(jù)前,主控元件MA將會(huì)檢查外圍設(shè)備20的狀態(tài)。換言之,主控元件MA會(huì)讀取從屬元件SD的狀態(tài),在此處理要求完成前,橋接器10必須確認(rèn)該筆寫入數(shù)據(jù)已經(jīng)放入從屬元件SA中。從屬元件SD讀取數(shù)據(jù)之前或?qū)⒆x取的數(shù)據(jù)回傳給主控元件MA之前,橋接器10將會(huì)產(chǎn)生一清理(flush)要求flush_req給從屬元件SC,并等待從屬元件SC回復(fù)一清理完成確認(rèn)信號(hào)(flushacknowledge)flush_ack表示該筆寫入數(shù)據(jù)已經(jīng)放入從屬元件SA中。
當(dāng)主控元件MC發(fā)出清理要求信號(hào)flush_req時(shí),橋接器10中的清理要求控制電路12或14會(huì)暫存(記錄)緩沖單元BF2目前的寫入緩沖指針rd_ptr[n:1](或fifo_wptr[n:1]),并當(dāng)緩沖單元BF2目前的讀取緩沖指針rd_ptr[n:1](或fifo_rptr[n:1])與暫存器122所記錄的寫入緩沖指針wr_ptr[n:1](或fifo_wptr[n:1])相同時(shí),輸出清理完成確認(rèn)信號(hào)flush_ack告知主控元件MC表示在接收到清理要求信號(hào)flush_req前所寫入的數(shù)據(jù)或指令已經(jīng)被讀取。所以,從屬元件SC不會(huì)因?yàn)橹骺卦﨧C發(fā)出的清理要求信號(hào)flush_req,中斷接收來自外圍設(shè)備20中主控元件MD的處理要求,可以繼續(xù)將數(shù)據(jù)及/或指令放入(push)緩沖單元BF2中,使得系統(tǒng)的效能將有效提升。在某些實(shí)施例中,清理要求控制電路12、14或14’亦可以設(shè)置于SB與SD中,但不限定于此。
以上所述僅為本發(fā)明較佳實(shí)施例,然其并非用以限定本發(fā)明的范圍,任何熟悉本項(xiàng)技術(shù)的人員,在不脫離本發(fā)明的精神和范圍內(nèi),可在此基礎(chǔ)上做進(jìn)一步的改進(jìn)和變化,因此本發(fā)明的保護(hù)范圍當(dāng)以本申請(qǐng)的權(quán)利要求書所界定的范圍為準(zhǔn)。
權(quán)利要求
1.一種橋接器,其特征在于,所述橋接器包括一第一主控元件,用以輸出一清理要求信號(hào);一緩沖單元,用以暫存數(shù)據(jù)或指令;以及一清理要求控制電路,用以在接收到上述清理要求信號(hào)時(shí),記錄所述緩沖單元的寫入緩沖指針,并在上述緩沖單元的讀取緩沖指針與所記錄的寫入緩沖指針相同時(shí),輸出一清理完成確認(rèn)信號(hào)至上述第一主控元件。
2.根據(jù)權(quán)利要求1所述的橋接器,其特征在于,更包括一從屬元件用以將上述數(shù)據(jù)或指令放入上述緩沖單元中,且上述從屬元件在上述清理要求控制電路接收到上述清理要求信號(hào)之后,接收來自外圍設(shè)備中的一第二主控元件的處理要求,并放入對(duì)應(yīng)的數(shù)據(jù)或指令至上述緩沖單元中。
3.根據(jù)權(quán)利要求1所述的橋接器,其特征在于,上述清理要求控制電路包括一暫存器,根據(jù)該清理要求信號(hào)記錄所述緩沖單元的寫入緩沖指針,并將該寫入緩沖指針作為一比較指針輸出;一比較單元,比較該比較指針與該緩沖單元的讀取緩沖指針是否相同,以判斷所述緩沖單元是否已被清空;以及一輸出單元,依據(jù)所述比較單元的比較結(jié)果輸出上述清理完成確認(rèn)信號(hào)。
4.根據(jù)權(quán)利要求3所述的橋接器,其特征在于,上述清理要求控制電路的上述暫存器于接收到上述清理要求信號(hào)時(shí),產(chǎn)生一控制信號(hào),所述輸出單元根據(jù)上述控制信號(hào)與所述比較單元輸出的比較信號(hào)輸出上述清理完成確認(rèn)信號(hào)至上述第一主控元件。
5.根據(jù)權(quán)利要求4所述的橋接器,其特征在于,上述清理要求控制電路的上述暫存器還接收該清理完成確認(rèn)信號(hào),并依據(jù)該清理完成確認(rèn)信號(hào)與該清理要求信號(hào),輸出所述控制信號(hào)至所述輸出單元。
6.根據(jù)權(quán)利要求4所述的橋接器,其特征在于,上述清理要求控制電路于輸出上述清理完成確認(rèn)信號(hào)后,清除上述控制信號(hào)。
7.根據(jù)權(quán)利要求4所述的橋接器,其特征在于,上述清理要求控制電路的上述暫存器包括一清理要求處理單元,依據(jù)該清理要求信號(hào)與該控制信號(hào)輸出一選擇信號(hào);一緩存單元,依據(jù)該選擇信號(hào)記錄所述緩沖單元的寫入緩沖指針;以及其中,若清理要求處理單元接收的該控制信號(hào)無效且該清理要求信號(hào)有效,使輸出的該選擇信號(hào)處于有效狀態(tài),以使所述緩存單元接收所述緩沖單元的寫入緩沖指針。
8.根據(jù)權(quán)利要求7所述的橋接器,其特征在于,若所述清理要求處理單元接收的該控制信號(hào)有效,則使輸出的所述選擇信號(hào)處于無效狀態(tài),以使所述緩存單元記錄所述緩沖單元的寫入緩沖指針。
9.一種電子系統(tǒng)的數(shù)據(jù)清理方法,其特征在于,包括當(dāng)接收到來自一第一主控元件的一清理要求信號(hào)時(shí),記錄一緩沖單元的一寫入緩沖指針;比較上述緩沖單元的一讀取緩沖指針與所記錄的上述寫入緩沖指針;以及若上述讀取緩沖指針與所記錄的上述寫入緩沖指針相同,輸出一清理完成確認(rèn)信號(hào)至上述第一主控元件。
10.根據(jù)權(quán)利要求9所述的電子系統(tǒng)的數(shù)據(jù)清除方法,其特征在于,更包括于收到上述清理要求信號(hào)之后,接收處理要求,并放入對(duì)應(yīng)的數(shù)據(jù)或指令至上述緩沖單元中。
11.根據(jù)權(quán)利要求9所述的電子系統(tǒng)的數(shù)據(jù)清除方法,其特征在于,更包括于接收到上述清理要求信號(hào)時(shí)產(chǎn)生一控制信號(hào),于上述讀取緩沖指針與所記錄的上述寫入緩沖指針相同時(shí)產(chǎn)生一比較信號(hào),并根據(jù)上述控制信號(hào)與比較信號(hào)輸出上述清理完成確認(rèn)信號(hào)。
12.根據(jù)權(quán)利要求11所述的電子系統(tǒng)的數(shù)據(jù)清除方法,其特征在于,更包括輸出上述清理完成確認(rèn)信號(hào)后,清除上述控制信號(hào)。
13.根據(jù)權(quán)利要求11所述的電子系統(tǒng)的數(shù)據(jù)清除方法,其特征在于,更包括依據(jù)該清理要求信號(hào)與該控制信號(hào)輸出一選擇信號(hào);以及依據(jù)該選擇信號(hào)記錄所述緩沖單元的寫入緩沖指針。
全文摘要
本發(fā)明提供一種橋接器及電子系統(tǒng)的數(shù)據(jù)清除方法,特別涉及一種橋接器,包括一第一主控元件,用以輸出一清理要求信號(hào);一緩沖單元,用以暫存數(shù)據(jù)或指令;以及一清理要求控制電路,用以在接收到上述清理要求信號(hào)時(shí),記錄所述緩沖單元的寫入緩沖指針,并在上述緩沖單元的讀取緩沖指針與所記錄的寫入緩沖指針相同時(shí),輸出一清理完成確認(rèn)信號(hào)至上述第一主控元件。本發(fā)明的從屬元件不會(huì)因?yàn)橹骺卦l(fā)出的清理要求信號(hào)中斷接收處理要求,而是可以繼續(xù)將數(shù)據(jù)及/或指令放入緩沖單元中,使得系統(tǒng)的效能有效提升。
文檔編號(hào)G06F13/40GK101079020SQ200710143710
公開日2007年11月28日 申請(qǐng)日期2007年7月30日 優(yōu)先權(quán)日2007年7月30日
發(fā)明者范靖, 徐曉畫 申請(qǐng)人:威盛電子股份有限公司