專利名稱:雙緩沖裝置和雙緩沖方法
技術(shù)領域:
本發(fā)明是有關于雙緩沖技術(shù),尤其是有關于以隨機存取存儲器實現(xiàn)的雙 緩沖裝置和雙緩沖操作方法。
背景技術(shù):
雙緩沖(double buffering)是一種在不同處理速度的裝置之間傳輸數(shù)據(jù)的 技術(shù)。
圖1為一現(xiàn)有技術(shù)的雙緩沖架構(gòu)圖,包含一第一緩沖器120和一第二緩 沖器130。 一軟件模塊HO通過所述的第一緩沖器120和第二緩沖器130提供 數(shù)據(jù)給一客端模塊140。當所述的客端模塊140從第二緩沖器130中讀取一筆 數(shù)據(jù),所述的軟件模塊110將下一筆數(shù)據(jù)寫入第一緩沖器120。同樣的,當所 述的客端模塊140讀取第一緩沖器120中的數(shù)據(jù)時,所述的軟件模塊110同 時將下一筆數(shù)據(jù)寫入所述的第二緩沖器130。這個架構(gòu)又稱為乒乓型雙緩沖 (ping-pong)。
在某些情況下,數(shù)據(jù)變動率不高,因此緩沖器不需要頻繁的更新。然而 在乒乓型架構(gòu)下,不論數(shù)據(jù)是否有異動,每個緩沖器都不斷地進行更新。如 此對系統(tǒng)資源是一種沒有必要的損耗,所以需要一種改良式的架構(gòu)。
發(fā)明內(nèi)容
本發(fā)明提供一種雙緩沖裝置和操作方法,用以傳送一筆數(shù)據(jù)至一第二裝 置。該雙緩沖裝置包含一控制器控制所述的這筆數(shù)據(jù)的存取。 一第一緩沖器 和第二緩沖器耦接所述的控制器,用以暫存所述的這筆數(shù)據(jù)。 一總線耦接所 述的控制器以傳送所述的這筆數(shù)據(jù)。 一軟件模塊通過所述的總線提供所述的
這筆數(shù)據(jù)至所述的這些緩沖器。在一第一模式時,所述的軟件模塊將所述的 這筆數(shù)據(jù)填入所述的第一緩沖器,所述的控制器接著執(zhí)行一同步程序,從所 述的第一緩沖器將所述的這筆數(shù)據(jù)復制至所述的第二緩沖器。最后所述的控 制器從所述的第二緩沖器將所述的這筆數(shù)據(jù)傳送至所述的第二裝置。在一第 二模式時,所述的軟件模塊將所述的這筆數(shù)據(jù)同時填入所述的第一緩沖器和 所述的第二緩沖器,而所述的控制器從所述的第二緩沖器將所述的這筆數(shù)據(jù) 傳送至所述的第二裝置。
其中所述的這筆數(shù)據(jù)包含復數(shù)位,所以所述的控制器執(zhí)行所述的同步程 序的步驟如下。首先設定一旗標值為一第一值,以表示所述的第一緩沖器和 所述的第二緩沖器處于忙碌狀態(tài),接著從所述的第一緩沖器中逐個位地讀出 所述的這筆數(shù)據(jù)。最后將所述的這筆數(shù)據(jù)逐個位地寫入所述的第二緩沖器。 當所述的這筆數(shù)據(jù)復制完成時,設定所述的旗標值為一第二值。
當所述的第二裝置發(fā)出一數(shù)據(jù)存取要求,所述的控制器判斷所述的同步 程序是否正在進行中。如果所述的同步程序正在迸行中,所述的控制器暫停 所述的同步程序,從所述的第二緩沖器復制所述的這筆數(shù)據(jù)至所述的第二裝 置,在復制完成后恢復所述的同步程序。相對的,如果所述的同步程序并未 在進行中,所述的控制器將所述的旗標值設為所述的第一值,并將所述的第 二緩沖器中的所述的這筆數(shù)據(jù)復制至所述的第二裝置,傳送完成后再將所述 的旗標值回復所述的第二值。
在所述的第一模式中,所述的軟件模塊對所述的控制器發(fā)出一第一寫入 要求,要求對所述的第一緩沖器進行寫入。所述的控制器判斷所述的旗標值 是否為所述的第一值。如果所述的旗標值為所述的第一值,所述的控制器不 處理所述的第一寫入要求,直到所述的旗標值變?yōu)樗龅牡诙?。如果所?的旗標值為所述的第二值,所述的控制器將所述的這筆數(shù)據(jù)填入所述的第一 緩沖器。
在所述的第二模式中,所述的軟件模塊對所述的控制器發(fā)出一第二寫入要求,要求對所述的第一和第二緩沖器進行寫入。所述的控制器判斷所述的 旗標值是否為所述的第一值,如果所述的旗標值為所述的第一值,所述的控 制器不處理所述的第二寫入要求,直到所述的旗標值變?yōu)樗龅牡诙?。?果所述的旗標值為所述的第二值,所述的控制器將所述的這筆數(shù)據(jù)填入所述 的第一和第二緩沖器。
同現(xiàn)有技術(shù)相比,本發(fā)明的架構(gòu)減少了對系統(tǒng)資源的沒有必要的損耗。
圖1為現(xiàn)有技術(shù)的雙緩沖架構(gòu);
圖2a和圖2b為本發(fā)明的雙緩沖架構(gòu);
圖3為單一存儲器架構(gòu)的緩沖器同步時序圖4為本發(fā)明實施例的一的雙緩沖裝置;
圖5為在第二模式下的緩沖器寫入時序圖6為雙存儲器架構(gòu)的緩沖器同步時序圖;以及
圖7為雙緩沖操作方法的流程圖。
附圖標號
110 軟件模塊;
130~第二緩沖器;
400 雙緩沖裝置;
404 總線時鐘;
410 控制器;
120 第一緩沖器; 140 客端模塊; 402~總線; 406 裝置時鐘;
420 切換開關。
具體實施例方式
為讓本發(fā)明的上述和其他目的、特征、和優(yōu)點能更明顯易懂,下文特舉 出較佳實施例,并配合附圖,作詳細說明如下-
圖2a和圖2b為本發(fā)明的雙緩沖架構(gòu)。在圖2a中, 一雙緩沖裝置包含四
個元件,軟件模塊no,第一緩沖器120,第二緩沖器130和客端模塊140。 在第一模式中,所述的軟件模塊110只對所述的第一緩沖器120寫入數(shù)據(jù), 而所述的客端模塊140只從第二緩沖器130讀取數(shù)據(jù)。寫入第一緩沖器120 的數(shù)據(jù),會自動地同步至第二緩沖器130中。因此軟件模塊UO不需要反復 的對第二緩沖器130進行同步作業(yè),借此節(jié)省了系統(tǒng)的計算資源。圖2b為第 二模式的運作。所述的軟件模塊UO直接對第二緩沖器130做數(shù)據(jù)寫入,使 得所述的數(shù)據(jù)可以直接被客端模塊140讀取。在第二緩沖器130被寫入數(shù)據(jù) 的同時,第一緩沖器120也從第二緩沖器130同步獲取所述的數(shù)據(jù)。從另一 觀點來看,第二模式下所述的軟件模塊等于是同時對所述的第一緩沖器120 和第二緩沖器130進入數(shù)據(jù)寫入。
借著第二模式的做法,在第二模式切換回第一模式的時候,所述的軟件 模塊110不需要再寫入全部數(shù)據(jù)至每一緩沖器中,只有發(fā)生變動的部份需要 更新。第一緩沖器120和第二緩沖器130可以由暫存器來實現(xiàn),然而隨著容 量需求的增加,使用隨機存取存儲器是較佳的辦法。在使用暫存器的時候, 第一緩沖器120和第二緩沖器130的同步只需要一個時鐘周期。而使用隨機 存取存儲器的時候,數(shù)據(jù)同步是逐個位進行的,因此需要復數(shù)個時鐘周期來 完成。
圖3為單一存儲器架構(gòu)的緩沖器同步時序圖。有N個位要從第一緩沖器 120復制到第二緩沖器130。當一觸發(fā)信號RAMJX)PY—START啟動后,一 計數(shù)器RAM—COPY—COUNT開始計算位復制的進度。每一位的數(shù)據(jù)在一命令 信號RAM—WRITE—SEL和一地址信號RAM_ADDR的控制下依序從第一緩沖 器120寫入第二緩沖器130。一旗標值(busy flag)BUS—ACK—READY在同步期 間是處于低電位狀態(tài),用以代表第一緩沖器120和第二緩沖器130處于使用 中,不可被其他裝置存取。
圖4為本發(fā)明實施例的一的雙緩沖裝置400。該雙緩沖裝置400耦接一客 端模塊140,而數(shù)據(jù)由圖2a和圖2b所述的雙緩沖裝置提供。 一控制器410在
第一模式和第二模式之間切換,以控制第一緩沖器120和第二緩沖器130的 運作。在第一模式,軟件模塊110通過總線402對第一緩沖器120進行數(shù)據(jù) 寫入,而客端模塊140通過控制器410存取第二緩沖器130。第一緩沖器120 中有異動更新的數(shù)據(jù),被定期的同步至第二緩沖器130,而同步的動作也可以 是被動的進行。在第二模式中,第一緩沖器120和第二緩沖器130同時被軟 件模塊110寫入數(shù)據(jù),因此不需要再另外進行數(shù)據(jù)同步。先前說過,如果第 一緩沖器120和第二緩沖器130是用RAM實現(xiàn),則數(shù)據(jù)同步需要耗費復數(shù)個 時鐘周期。當?shù)谝痪彌_器120對第二緩沖器130進行同步時, 一旗標值啟動 以防止其他裝置來存取第一緩沖器120和第二緩沖器130。因此在這期間如果 有任何從軟件模塊110發(fā)出的存取要求,都會被擱置而不執(zhí)行。然而,客端 模塊140被定義為對第二緩沖器130具有最高優(yōu)先存取權(quán)。如果在同步期間, 客端模塊140要求存取第二緩沖器130,則控制器410必須暫停同步動作,保 留住圖3中計數(shù)器RAM—COPY—COUNT的值。直到客端模塊140完成對第二 緩沖器130的存取,所述的同步動作才回復進行。如果在客端模塊140要求 存取第二緩沖器130時,并沒有同步動作正在進行中,則控制器410將所述 的旗標值啟動并執(zhí)行所要求的數(shù)據(jù)的存取。所述的旗標值在存取動作結(jié)束后 關閉。第一緩沖器120和第二緩沖器130可以是由同一存儲器裝置實現(xiàn),也
可以是兩個不同的存儲器裝置。
在圖4中,總線402受到一總線時鐘404所驅(qū)動,而客端模塊140中包 含一裝置時鐘406。如果第一緩沖器120和第二緩沖器130由暫存器所實現(xiàn), 則使用總線時鐘404做為圖3所示的參考時鐘來源CLK。相對的,如果第一 緩沖器120和第二緩沖器130由RAM實現(xiàn),則使用裝置時鐘406做為圖3所 示的參考時鐘來源CLK。借此,客端模塊140的運作,數(shù)據(jù)同步程序以及軟 件模塊110的數(shù)據(jù)寫入程序都是使用同一參考時鐘。有的時候,所述的客端 模塊140可能會關閉電源,使得裝置時鐘406沒辦法繼續(xù)當成參考時鐘來源。 本發(fā)明的雙緩沖裝置400中包含一切換開關420,可以選擇性的切換總線時鐘
404或裝置時鐘406。當裝置時鐘406停止運作的時候,切換開關420切換使 用總線時鐘404來做為參考時鐘來源。借此軟件模塊110可以在沒有客端模 塊140的狀態(tài)下維持運作。所述的切換開關420的切換控制了整個雙緩沖裝 置400的運作,包含第一緩沖器120,第二緩沖器130和控制器410。
圖5為在第二模式下的緩沖器寫入時序圖。當所述的第一緩沖器120和 第二緩沖器130是兩個不同存儲器裝置時,所述的軟件模塊110可以在第二 模式同時對第一緩沖器120和第二緩沖器130進行寫入。相反的,如果所述 的第一緩沖器120和第二緩沖器130為同一存儲器裝置,則需要兩倍的時鐘 周期來個別寫入數(shù)據(jù)至所述的第一緩沖器120和第二緩沖器130。在圖5中, 一模式信號SET一BUF2—MODE位于低電位時,表示第一模式,所述的軟件模 塊110通過總線402傳送地址信號BUS—ADDR和數(shù)據(jù)信號BUS—DATA,將 數(shù)據(jù)寫入第一緩沖器120。當旗標值BUS—ACK—READY關閉(拉至高電位), 所述的控制器410傳送寫入命令RAM—ENABLE和RAM—WRITE一SEL至所 述的第一緩沖器120,將地址和數(shù)據(jù)信號傳送進去。當模式信號 SET—BUF2—MODE切換至高電位時,表示第二模式。所述的軟件模塊110傳 送地址和數(shù)據(jù)信號BUS—ADDR和BUS—DATA至第二緩沖器130。所述的控 制器410進行了一個特殊的動作,當?shù)刂泛蛿?shù)據(jù)信號BUS_ADDR和 BUS—DATA在總線402上傳送時,將旗標值BUS—ACK—READY打開,并使 旗標值BUS—ACK—READY處于低電位的時間,多延長一個時鐘周期。借此 BUS ADDR、 BUS DATA禾B BUS WRITE會在總線上多保存一個時鐘周期,
— —
這時間足以讓第一緩沖器120和第二緩沖器130都完成數(shù)據(jù)寫入。在此,旗 標值BUS_ACK_READY的變化決定了寫入所述的第一緩沖器120或第二緩 沖器130 。首先,控制器410發(fā)出寫入命令RAM—ENABLE和 RAM—WRITE_SEL至所述的第一緩沖器120,使留滯在總線402上的數(shù)據(jù)寫 入所述的第一緩沖器120。 一個時鐘周期后,所述的控制器410關閉所述的旗 標值BUS—ACK—READY,則留滯在總線402的數(shù)據(jù)信號如往常一般送至第二
緩沖器130。借此方式,數(shù)據(jù)信號總共會在總線402上留滯兩個時鐘周期,使 第一緩沖器120和第二緩沖器130都能完成數(shù)據(jù)更新。第二模式中的第一緩 沖器120和第二緩沖器130的數(shù)據(jù)同步動作完全由控制器410自動進行,軟 件模塊110并不需要處理這些程序。
圖6為雙存儲器架構(gòu)的緩沖器同步時序圖。如果第一緩沖器120和第二 緩沖器130是兩個單獨的存儲器裝置,實現(xiàn)上就簡單多了。當一觸發(fā)信號 RAM—COPY—START啟動了同步程序后, 一計數(shù)器RAM—COPY—COUNT開 始計算位進度。隨著命令信號RAM1一SEL和地址信號RAMI—ADDR,數(shù)據(jù) 從第一緩沖器120中讀出。隨著命令信號RAM2_SEL和地址信號 RAM2_ADDR,讀出的數(shù)據(jù)被寫入第二緩沖器130。在這運作期間,旗標值 BUS—ACK_READY處于開啟狀態(tài)。
圖7為雙緩沖操作方法的流程圖。在步驟700中,雙緩沖裝置400和客 端模塊140初始化后維持閑置。在步驟702中,觸發(fā)了一同步程序。在步驟 704中, 一旗標值啟動,接著圖3和圖6所示的連續(xù)讀寫動作于步驟706中開 始進行。在步驟708中,當同步程序結(jié)束后,所述的旗標值關閉。步驟710, 由軟件啟動一寫入程序。在步驟712中,所述的控制器410判斷所述的旗標 值是否啟動。在步驟713中,如果所述的旗標值是啟動的,則該軟件模塊110 的存取要求都被暫時擱置。在步驟714中,如果該旗標值是關閉的,則該控 制器410判斷目前的模式。在步驟716中,在第一模式下,所述的控制器410 對第一緩沖器120進行數(shù)據(jù)寫入,而在步驟718中,在第二模式下,所述的 控制器410同時對所述的第一緩沖器120和第二緩沖器130進行數(shù)據(jù)寫入。 在步驟720中,客端模塊140對第二緩沖器130發(fā)出一存取要求。在步驟722 中,所述的控制器410檢查是否有同步程序正在進行中。在步驟724中,如 果沒有,則控制器410將旗標值啟動,并接著在步驟726中從第二緩沖器130 將數(shù)據(jù)傳送至客端模塊140。在步驟728中,當數(shù)據(jù)寫入結(jié)束后,該旗標值就 被關閉。在步驟722中如果發(fā)現(xiàn)有同步程序正在進行中,則跳到步驟730,所
述的控制器410暫停所述的同步程序,并在步驟732中執(zhí)行所述的存取要求 的數(shù)據(jù)傳送。在步驟734中,在完成所述的存取要求后,回復所述的同步程 序。當歩驟708, 718, 716和734的步驟結(jié)束后,整個流程回到步驟700。
權(quán)利要求
1.一種雙緩沖方法,供一第一裝置傳送一筆數(shù)據(jù)至一第二裝置,其中所述的第一裝置耦接至一第一緩沖器和一第二緩沖器,所述的雙緩沖方法包含在一第一模式將所述的這筆數(shù)據(jù)填入所述的第一緩沖器;執(zhí)行一同步程序,從所述的第一緩沖器將所述的這筆數(shù)據(jù)復制至所述的第二緩沖器;以及從所述的第二緩沖器將所述的這筆數(shù)據(jù)傳送至所述的第二裝置;在一第二模式將所述的這筆數(shù)據(jù)同時填入所述的第一緩沖器和所述的第二緩沖器;以及從所述的第二緩沖器將所述的這筆數(shù)據(jù)傳送至所述的第二裝置。
2. 如權(quán)利要求1所述的雙緩沖方法,其中 所述的第一和第二緩沖器為隨機存取存儲器;以及 所述的這筆數(shù)據(jù)通過一總線填入所述的第一和第二緩沖器。
3. 如權(quán)利要求2所述的雙緩沖方法,其中所述的這筆數(shù)據(jù)包含復數(shù)位;以及 所述的同步程序包含設定一旗標值為一第一值,以表示所述的第一緩沖器和所述的第二緩沖 器處于忙碌狀態(tài);從所述的第一緩沖器中逐個位地讀出所述的這筆數(shù)據(jù); 將所述的這筆數(shù)據(jù)逐個位地寫入所述的第二緩沖器;以及 當所述的這筆數(shù)據(jù)復制完成時,設定所述的旗標值為一第二值。
4. 如權(quán)利要求3所述的雙緩沖方法,該方法進一步包含 從所述的第二裝置接收一數(shù)據(jù)存取要求; 如果所述的旗標值為所述的第一值,暫停所述的同步程序并將所述的第 二緩沖器中的所述的這筆數(shù)據(jù)復制至所述的第二裝置,傳送完成后再回復所述的同步程序;以及如果所述的旗標值為所述的第二值,將所述的旗標值設為所述的第一值, 并將所述的第二緩沖器中的所述的這筆數(shù)據(jù)復制至所述的第二裝置,傳送完 成后再將所述的旗標值回復所述的第二值。
5. 如權(quán)利要求3所述的雙緩沖方法,該方法進一步包含-在所述的第一模式中接收一第一寫入要求,要求對所述的第一緩沖器進行寫入; 判斷所述的旗標值是否為所述的第一值;如果所述的旗標值為所述的第一值,不處理所述的第一寫入要求,直到 所述的旗標值變?yōu)樗龅牡诙担灰约叭绻龅钠鞓酥禐樗龅牡诙?,將所述的這筆數(shù)據(jù)填入所述的第一 緩沖器;在所述的第二模式中接收一第二寫入要求,要求對所述的第一和第二緩沖器進行寫入; 判斷所述的旗標值是否為所述的第一值;如果所述的旗標值為所述的第一值,不處理所述的第二寫入要求,直到 所述的旗標值變?yōu)樗龅牡诙?;以及如果所述的旗標值為所述的第二值,將所述的這筆數(shù)據(jù)填入所述的第一 和第二緩沖器。
6. 如權(quán)利要求2所述的雙緩沖方法,其中 所述的第一和第二緩沖器實現(xiàn)于同一存儲器裝置中;以及 將所述的這筆數(shù)據(jù)同時填入所述的第一緩沖器和所述的第二緩沖器的步驟,包含在一第一時鐘周期內(nèi),從所述的第一裝置發(fā)出所述的這筆數(shù)據(jù),通過所 述的總線傳送至所述的第一緩沖器,并將所述的旗標值設為所述的第一值,使所述的這筆數(shù)據(jù)在所述的總線上多保存一個時鐘周期;在緊接所述的第一時鐘周期的一第二時鐘周期內(nèi),將所述的總線上保存的所述的這筆數(shù)據(jù)傳送至所述的第二緩沖器;以及在所述的第二時鐘周期結(jié)束后,將所述的旗標值設為所述的第二值,使 所述的總線釋放所述的這筆數(shù)據(jù)。
7. 如權(quán)利要求2所述的雙緩沖方法,其中所述的第一和第二緩沖器分別實 現(xiàn)于兩個存儲器裝置中。
8. 如權(quán)利要求2所述的雙緩沖方法,該方法進一步包含 使用所述的第二裝置的振動時鐘做為存取所述的第一和第二緩沖器的參考時鐘;以及當所述的第二裝置關閉時,使用所述的總線的振動時鐘做為存取所述的 第一和第二緩沖器的參考時鐘。
9. 一種雙緩沖裝置,用以傳送一筆數(shù)據(jù)至一第二裝置,包含 一控制器,控制所述的這筆數(shù)據(jù)的存?。灰坏谝痪彌_器和一第二緩沖器,耦接所述的控制器,用以暫存所述的這 筆數(shù)據(jù);一總線,耦接所述的控制器以傳送所述的這筆數(shù)據(jù);一軟件模塊,通過所述的總線提供所述的這筆數(shù)據(jù)至所述的這些緩沖器; 其中在一第一模式所述的軟件模塊將所述的這筆數(shù)據(jù)填入所述的第一緩沖器; 所述的控制器執(zhí)行一同步程序,從所述的第一緩沖器將所述的這筆數(shù)據(jù)復制至所述的第二緩沖器;以及所述的控制器從所述的第二緩沖器將所述的這筆數(shù)據(jù)傳送至所述的第二裝置;在一第二模式所述的軟件模塊將所述的這筆數(shù)據(jù)同時填入所述的第一緩沖器和所述的 第二緩沖器;以及所述的控制器從所述的第二緩沖器將所述的這筆數(shù)據(jù)傳送至所述的第二 裝置。
10. 如權(quán)利要求9所述的雙緩沖裝置,其中所述的第一和第二緩沖器為隨機存取存儲器裝置。
11. 如權(quán)利要求10所述的雙緩沖裝置,其中 所述的這筆數(shù)據(jù)包含復數(shù)位;以及 所述的控制器執(zhí)行所述的同步程序包含下列步驟設定一旗標值為一第一值,以表示所述的第一緩沖器和所述的第二緩沖 器處于忙碌狀態(tài);從所述的第一緩沖器中逐個位地讀出所述的這筆數(shù)據(jù); 將所述的這筆數(shù)據(jù)逐個位地寫入所述的第二緩沖器;以及 當所述的這筆數(shù)據(jù)復制完成時,設定所述的旗標值為一第二值。
12. 如權(quán)利要求11所述的雙緩沖裝置,其中當所述的第二裝置發(fā)出一數(shù)據(jù)存取要求,所述的控制器判斷所述的同步 程序是否正在進行中;如果所述的同步程序正在進行中,所述的控制器暫停所述的同步程序, 從所述的第二緩沖器拷貝所述的這筆數(shù)據(jù)至所述的第二裝置,在拷貝完成后 恢復所述的同步程序;以及如果所述的同步程序并未在進行中,所述的控制器將所述的旗標值設為 所述的第一值,并將所述的第二緩沖器中的所述的這筆數(shù)據(jù)復制至所述的第 二裝置,傳送完成后再將所述的旗標值回復所述的第二值。
13. 如權(quán)利要求12所述的雙緩沖裝置,其中 在所述的第一模式中 所述的軟件模塊對所述的控制器發(fā)出一第一寫入要求,要求對所述的第一緩沖器進行寫入;所述的控制器判斷所述的旗標值是否為所述的第一值;如果所述的旗標值為所述的第一值,所述的控制器不處理所述的第一寫 入要求,直到所述的旗標值變?yōu)樗龅牡诙担灰约叭绻龅钠鞓酥禐樗龅牡诙?,所述的控制器將所述的這筆數(shù)據(jù)填 入所述的第一緩沖器;在所述的第二模式中所述的軟件模塊對所述的控制器發(fā)出一第二寫入要求,要求對所述的第 一和第二緩沖器進行寫入;所述的控制器判斷所述的旗標值是否為所述的第一值;如果所述的旗標值為所述的第一值,所述的控制器不處理所述的第二寫 入要求,直到所述的旗標值變?yōu)樗龅牡诙?;以及如果所述的旗標值為所述的第二值,所述的控制器將所述的這筆數(shù)據(jù)填 入所述的第一和第二緩沖器。
14.如權(quán)利要求10所述的雙緩沖裝置,其中所述的第一和第二緩沖器實現(xiàn)于同一存儲器裝置中;以及所述的控制器將所述的這筆數(shù)據(jù)同時填入所述的第一緩沖器和所述的第 二緩沖器的步驟包含在一第一時鐘周期,所述的第一裝置發(fā)出所述的這筆數(shù)據(jù)通過所述的總 線傳送至所述的第一緩沖器的時候,所述的控制器將所述的旗標值設為所述 的第一值,使所述的這筆數(shù)據(jù)在所述的總線上多保存一個時鐘周期;在緊接所述的第一時鐘周期的一第二時鐘周期,所述的控制器將所述的 總線上保存的所述的這筆數(shù)據(jù)傳送至所述的第二緩沖器;以及在所述的第二時鐘周期結(jié)束后,所述的控制器將所述的旗標值設為所述 的第二值,使所述的總線釋放所述的這筆數(shù)據(jù)。
15. 如權(quán)利要求IO所述的雙緩沖裝置,其中所述的第一和第二緩沖器分別 實現(xiàn)于兩個存儲器裝置中。
16. 如權(quán)利要求10所述的雙緩沖裝置,其中所述的總線使用一總線時鐘,而所述的第二裝置使用一裝置時鐘; 所述的控制器使用所述的裝置時鐘做為存取所述的第一和第二緩沖器的 參考時鐘;以及當所述的第二裝置關閉時,所述的控制器使用所述的總線時鐘做為存取 所述的第一和第二緩沖器的參考時鐘。
全文摘要
本發(fā)明提供一種雙緩沖裝置和雙緩沖方法,用以傳送一筆數(shù)據(jù)至一第二裝置。所述的雙緩沖裝置包含一控制器控制該筆數(shù)據(jù)的存取。一第一緩沖器和第二緩沖器耦接控制器,用以暫存該筆資數(shù)據(jù)。一總線耦接控制器以傳送該筆數(shù)據(jù)。一軟件模塊通過總線提供該筆數(shù)據(jù)至這些緩沖器。在一第一模式時,軟件模塊將該筆數(shù)據(jù)填入所述的第一緩沖器,控制器接著執(zhí)行一同步程序,從第一緩沖器將該筆數(shù)據(jù)復制至第二緩沖器。最后控制器從第二緩沖器將該筆數(shù)據(jù)傳送至該第二裝置。在一第二模式時,軟件模塊將該筆數(shù)據(jù)同時填入第一緩沖器和第二緩沖器,而控制器從第二緩沖器將該筆數(shù)據(jù)傳送至第二裝置。本發(fā)明的架構(gòu)減少了對系統(tǒng)資源的沒有必要的損耗。
文檔編號G06F3/06GK101097503SQ20071010890
公開日2008年1月2日 申請日期2007年6月4日 優(yōu)先權(quán)日2006年6月26日
發(fā)明者吳正鼎, 林孟亭 申請人:聯(lián)發(fā)科技股份有限公司