TWI396975B - 可調適緩衝裝置及其方法 - Google Patents

可調適緩衝裝置及其方法 Download PDF

Info

Publication number
TWI396975B
TWI396975B TW097129816A TW97129816A TWI396975B TW I396975 B TWI396975 B TW I396975B TW 097129816 A TW097129816 A TW 097129816A TW 97129816 A TW97129816 A TW 97129816A TW I396975 B TWI396975 B TW I396975B
Authority
TW
Taiwan
Prior art keywords
address
data
item
written
items
Prior art date
Application number
TW097129816A
Other languages
English (en)
Other versions
TW201007457A (en
Inventor
Yen Ju Lu
Original Assignee
Realtek Semiconductor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Realtek Semiconductor Corp filed Critical Realtek Semiconductor Corp
Priority to TW097129816A priority Critical patent/TWI396975B/zh
Priority to US12/535,157 priority patent/US8473696B2/en
Publication of TW201007457A publication Critical patent/TW201007457A/zh
Application granted granted Critical
Publication of TWI396975B publication Critical patent/TWI396975B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0886Variable-length word access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

可調適緩衝裝置及其方法
本發明是有關於一種緩衝儲存技術,特別是指一種可調適緩衝裝置及其方法。
參閱圖1,一般電路設計中,處理器7會將運算資料寫入外接記憶體8中。但是,由於處理器7速度普遍高出記憶體8許多,所以通常採用一內建緩衝裝置71來暫存運算資料,然後再繼續往下執行指令,以避免因記憶體8牽絆而降低效能。
習知一種緩衝裝置接收處理器7傳來的數筆相鄰資料(資料寬度是一字元(word))與對應位址後,會分別記錄在複數分別具有一字元儲存寬度的資料項目(entry)與複數位址項目內。若該緩衝裝置支援寫入合併(write merge),則當其中部份相鄰資料的對應位址遞增連續時,能合併成對系統匯流排(bus)9的單一寫入命令,作為傳送該等部份相鄰資料的依據。雖然此種做法不需一一傳遞每一筆資料的位址並可減少流經系統匯流排9的資料量,但是該資料項目的儲存寬度因僅可容納一筆資料,所以只有相鄰資料的位址遞增連續時才能進行合併,而合併機率並不大。
習知另一種緩衝裝置將資料項目的儲存寬度擴張為四字元,當緩衝裝置被寫滿前,可將位址連續的資料記錄在同一資料項目。因此,即使位址連續的資料不是依序寫入緩衝裝置,仍有機會合併在一起。不過,若是相鄰數筆資 料都非位址連續,則可能出現一資料項目僅記錄一筆資料,造成儲存空間極大的浪費。
此外,習知另有允許同一項目可被安排記錄位址或是資料,而不似前述兩種緩衝裝置必須準備位址項目和資料項目。當前一位址與目前位址呈現遞增連續時,只需記錄目前資料而不需記錄目前位址,而目前資料與先前資料則可以合併成單一寫入命令。然而,當不滿足遞增連續時,則必須將位址和資料都予以記錄。由於相鄰資料才能合併,因此將導致系統匯流排9的資料量仍難以減少。
因此,本發明之目的,即在提供一種可以彈性地調整儲存結構的可調適緩衝裝置及其方法,能有效合併資料而使得系統匯流排的資料量下降,並且結構彈性有助於儲存空間使用率的提高。
於是,本發明可調適緩衝裝置,包含:複數個項目,每一個項目包括一位址欄位以及一記錄區塊;及一控制單元,選擇性地將每一個項目設定為一般狀態或是轉換狀態;其中,當該控制單元設定該些項目的一第一項目為一般狀態時,該第一項目的位址欄位用以記錄一第一位址,該第一項目的記錄區塊記錄該第一位址所對應的資料以及相鄰於該第一位址的其他位址所對應的資料;當該控制單元設定該些項目的一第二項目為轉換狀態時,該控制單元將該第二項目的位址欄位以及記錄區塊分為多個單元,其中每一個單元皆可分別用以記錄一第二位址、該第二位址所 對應的資料以及相鄰於該第二位址所對應的資料。
而本發明可調適緩衝方法,適用於一可調適緩衝裝置,該可調適緩衝裝置包括複數個項目,每一個項目包括一用以記錄位址相鄰之資料的記錄區塊,該記錄區塊可設定為一般狀態或轉換狀態,該方法包含以下步驟:接收並根據所接收資料對應的位址,判斷是否可將資料寫入該記錄區塊的其中一個位址相鄰的記錄欄位;若無法將資料寫入該記錄區塊的任一個位址相鄰的記錄欄位,判斷是否可將其中一個項目由一般狀態變更為轉換狀態;以及若沒有任何項目可由一般狀態變更為轉換狀態,則待該些記錄欄位的資料寫出後,再將接收資料寫入;其中,由一般狀態變更為轉換狀態是將每一個項目的位址欄位和記錄區塊分為複數個單元,且其中至少有一個是未被寫入資料的空白單元,而同一項目或同一單元的資料可合併寫出,以釋出空白項目或單元。
有關本發明之前述及其他技術內容、特點與功效,在以下配合參考圖式之一個較佳實施例的詳細說明中,將可清楚的呈現。
參閱圖2,本發明可調適緩衝裝置之較佳實施例適用於一處理器100中,能暫存處理器100的運算資料,且透過一系統匯流排3將資料傳送到一記憶體2。
該可調適緩衝裝置1包含一控制單元11及多個項目。每一個項目包括一個有效欄位(field)121、一個狀態欄位122 、一個致能欄位123、一個位址欄位124及一個記錄區塊125,且記錄區塊125包括n個記錄欄位s(n-1)...s3、s2、s1、s0。
該控制單元11可設定每一狀態欄位122的值,當設定其值為0時,可代表所對應到的項目處於一般狀態,則當設定其值為1時,可顯示該項目處於轉換狀態。且本較佳實施例是預設所有項目為一般狀態。必須注意的是,文中所設定的值不論為0或是1,皆是用以清楚表達實施例的操作內容,文內所述之任何設定數值皆非用以限定本發明的範疇。
當該控制單元11設定該項目為一般狀態時,該項目之位址欄位124可記錄該控制單元11寫入的一位址,而記錄欄位s(n-1)~s0可記錄與該位址相關的至少一資料。該相關的資料包括該位址所對應的資料或相鄰於該位址的其他(n-1)個位址所對應的資料,其中n為記錄區塊125的欄位數。
在此舉一例子說明:假設n=8,且位址欄位124記錄的位址為0x1000,且假設相鄰位址的位址差為4,則記錄欄位s0~s7只能記錄對應位址0x1000、0x1004、0x1008、0x100c、0x1010、0x1014、0x1018、0x101c的資料,而這些資料就是與位址欄位124所記錄之位址0x1000相關的資料。
當該控制單元11設定該項目為轉換狀態時,該控制單元11將該項目的位址欄位124和記錄區塊125分為多個單元,且每一單元用於記錄該控制單元11寫入的一位址及與 該位址相關的至少一資料。而該相關的資料包括該位址所對應的資料或相鄰於該位址的其他(m-2)個位址所對應的資料,其中m是每一單元的欄位數。
如:參考圖7的項目3,單元unit 1包括位址欄位124與記錄欄位s7、s6,單元unit 2包括記錄欄位s5~s3,單元unit 3包括記錄欄位s2~s0。unit 1的位址欄位124用於記錄位址,而記錄欄位s7、s6用於記錄相關的資料。unit 2的記錄欄位s5用於記錄位址,而記錄欄位s4、s3用於記錄相關的資料。unit 3的記錄欄位s2用於記錄位址,而記錄欄位s1、s0用於記錄相關的資料。
該控制單元11也設定每一有效欄位121的值,當項目為一般狀態時,該有效欄位121的值預設為100;當項目為轉換狀態時,有效欄位121的該等位元分別代表該項目中的該等單元的有效性。如圖7的項目3,當unit 1、2有記錄資料且unit 3沒有記錄資料時,有效欄位121的值可設為110。
該控制單元11也設定每一致能欄位123的值,該致能欄位123的值具有多個位元,該等位元分別對應記錄欄位s(n-1)~s0是否有記錄資料,當所對應的欄位有記錄資料時,位元值可設定為1,反之,位元值則設定為0。
參閱圖3,本發明可調適緩衝裝置之較佳實施例所執行的可調適緩衝方法包含以下步驟:
步驟61:控制單元11接收一資料及與該資料相對應的位址,並判斷有無適當項目或單元的記錄區塊125可寫入 。
配合參閱圖4,而步驟61包括以下子步驟:
子步驟611:判斷接收資料所對應的位址與記錄區塊125中任一資料所對應的位址是否屬於同一個呈一般狀態之項目的n個相鄰位址。若是,則跳到步驟62;若否,則跳到子步驟612。
子步驟612:判斷接收資料所對應的位址與記錄區塊125中任一資料所對應的位址是否屬於同一單元的(m-1)個相鄰位址。若是,則跳到步驟62,若否,則跳到子步驟613。
而執行子步驟611~612的目的在於將位址連續或相鄰的資料集中,以利後續記錄於同一項目或單元,進而將這些集中的資料一起合併輸出到記憶體2。
子步驟613:判斷是否尚有未被寫入資料的項目或單元,若是,跳到步驟62;若否,則判斷該資料無對應的項目或單元可寫入並跳到步驟63。
步驟62:控制單元11將接收資料或其所對應的位址寫入步驟61判斷出的對應項目或單元中,接著跳回步驟61。
更詳細地來說,當控制單元11在子步驟611判斷出接收資料所對應的位址與記錄區塊125中任一資料所對應的位址屬於同一個呈一般狀態之項目的n個相鄰位址,便會將接收資料寫入記錄區塊125的項目中,並修改致能欄位123的值。
而當控制單元11在子步驟612判斷出接收資料所對應 的位址與記錄區塊125中任一資料所對應的位址屬於同一單元的(m-1)個相鄰位址,便會將接收資料寫入記錄區塊125的單元中,並修改致能欄位123的值。
且當控制單元11在子步驟613判斷出尚有未被寫入資料的項目或單元,便會將接收資料的對應位址轉換成一參考位址,並將該參考位址和接收資料寫入空的項目或單元中。並視需要修改致能欄位123、有效欄位121的值。值得注意的是,將接收資料的對應位址轉成參考位址的方式不限,只要在寫入空的項目時使接收資料的對應位址屬於n個相關該參考位址的位址(其中n為每一記錄區塊的欄位數),或是在寫入空的單元時使接收資料的對應位址屬於m-1個相關該參考位址的位址即可(其中m為每一單元的欄位數)。因此,該參考位址的值也可以跟接收資料的對應位址一樣,也就是說,不需進行轉換,直接將接收資料的對應位址和接收資料寫入該項目中。例如:若接收資料的對應位址是0x1534,則其參考位址可為0x1520或0x1534等。
回歸參閱圖3,步驟63:控制單元11依據各欄位的記錄情形,決定是否將其中一項目更動為轉換狀態。若是,跳到步驟64,若否,直接跳到步驟65。本例是指更動最後一項目,但不以此為限。
也就是說,若該些項目當中至少有一項目於轉換狀態下可包括未被寫入資料的空白單元,則控制單元11會將該項目設定為轉換狀態。若該些項目於轉換狀態下仍無法包括未被寫入資料的空白單元,則控制單元11不對該些項目 執行轉換,例如:幾乎記錄區塊125的所有欄位都被寫入,不適宜再對記錄區塊125做調整,或例如:即使執行狀態轉換後,仍然無法挪出一單元供接收資料寫入。
步驟64:將其中一項目設定為轉換狀態,因此使記錄區塊125分為多個單元,更將該項目中原先已記錄的資料與位址置於其中一單元,且視需要修改所記錄的位址值。而且,該等單元中,至少有一個是未被寫入資料的空白單元,控制單元11可將接收資料的對應位址轉換成一參考位址,並將該參考位址和接收資料寫入該空白單元。此外,更進一步設定狀態欄位122的值為1,且修改有效欄位121和致能欄位123,然後跳回步驟61。
在此舉一例子說明,請參閱圖6的項目3,假設原先項目3已記錄了D11(相對應的位址為0x00b0)和參考位址0x00a0。當項目3需被分為多個單元以繼續記錄下一筆資料時,參閱圖7的項目3,將項目3分為3個單元:unit 1~unit 3。且將D11移至unit 1,即將D11由欄位s4移到s6並修改位址欄位124所記錄的位址為0x00b0。此外,再將D12(對應的位址為0x6060)寫入unit 2,即寫入欄位s3,並於欄位s5寫入位址0x6060。
步驟65:控制單元11先短暫拖延(stall)處理器100的寫入動作,同時透過系統匯流排3將其中一項目(如:項目0)中的記錄輸出到記憶體2,且將其他項目中的記錄依序往前移動而釋出最後一個項目(如:項目3)(亦即產生未被寫入資料的項目),然後跳回步驟62。值得注意的是,在輸出時 ,對於一般狀態的項目,是將該項目內所有資料一起合併後再輸出,而對於轉換狀態的項目,則將同一單元內之資料一起先合併後再輸出,且可以每次僅輸出其中一單元之資料,而不需完全輸出該項目的所有單元之資料,如此可產生未被寫入資料的單元。
在此舉一簡單例子說明可調適緩衝方法的流程,假設依序送入緩衝裝置的資料為D1、D2、...、D13、D14,且D8~D14所對應的位址如下表所示:
假設在D8寫入前,D1~D7於項目中的寫入關係如圖5所示。
依據子步驟611,因為與項目0中已記錄之位址0x1000相關的8(n=8)個位址分別為0x1000、0x1004、0x1008、0x100c、0x1010、0x1014、0x1018、0x101c。而D8對應到的位址為0x1018,屬於這8個位址的其中之一,因此,依據步驟62,D8寫入項目0的記錄欄位s6(如圖6)。且致能欄位123的值將變為01011011。
接收到的下一資料D9的對應位址為0x3200,依據子步驟611,與項目1中已記錄之位址0x3200相同,因此依據步驟62,D9寫入項目1的記錄欄位s0,且致能欄位123的值變為00001101(如圖6的項目1)。
同樣,D10(對應到的位址為0x101c)也依據子步驟611和步驟62寫入項目0的記錄欄位s7中(如圖6的項目0)。
而D11(對應的位址為0x00b0)進行子步驟611和612的判斷結果均為否,因此跳到子步驟613。且因為項目3尚未有資料寫入,因此如圖6所示,依據步驟62將一參考位址0x00a0寫入項目3之位址欄位124,且將D11寫入s4。且修改致能欄位123為00010000,而狀態欄位122的值此時為0,有效欄位121的值此時為100。
而下一資料D12(對應的位址為0x6060)因為子步驟611~613的判斷結果都為否,且步驟63判斷可將項目3的狀態做轉換,所以執行步驟64,因此,如圖7所示,控制單元11將項目3分為3個單元,且先將D11移至unit 1,並修改位址欄位124所記錄的位址為0x00b0。此外,再將D12寫入unit 2,並於欄位s5寫入參考位址0x6060。
流程接著跳回步驟61,以等待接收下一資料D13(對應的位址為0x60a0)。因為依據子步驟611、612的判斷結果都為否,因此流程跳到子步驟613。因為子步驟613的判斷結果為是,所以如圖8所示,將D13寫入項目3的unit 3,即欄位s0,且將位址0x60a0寫入欄位s2,。
接收下一資料D14,且因為子步驟611~613與步驟63的判斷結果都為否,所以進行步驟65,如圖9所示,將項目0中的記錄輸出,且將其他項目中記錄的資料依序往前移,而釋出項目3。並跳回步驟62以將D14寫入項目3。
綜合上述,即使面對處理器100送出資料之對應位址不具規則性的情況,也能將具有連續或相鄰位址的資料記錄於同一項目或單元中。然後將這些資料合併成對系統匯 流排3的單一寫入命令,亦即只需通知一個位址,便能傳送複數資料。因此,這樣的安排能有效提高資料合併輸出的機率,而減少位址傳遞次數,且流經系統匯流排3的資料量也會隨之降低。此外,本實施例中的項目因為可由一般狀態轉換為轉換狀態,因此,可爭取更多的記錄空間,也盡量避免了一個項目僅記錄一筆資料的窘境。
本發明之另一實施例在步驟63的判斷結果為否時,可以選擇先不執行步驟65,改為判斷其他項目是否可以分為多個單元,若可以,則跳到步驟64以分出其他單元。但若所有項目中的記錄區塊125都呈現很滿的狀態,而無法再分為多個單元,此時則需執行步驟65。
本發明之另一實施例也可以進一步判斷目前僅剩幾個項目還可以自由寫入(也就是說,還有幾個項目的記錄區塊125完全為空白),並當判斷出少於一預定數目的項目可以自由寫入時,即將這些項目依步驟64設定成轉換狀態以分成多個單元來使用。值得注意的是,決定分成多個單元的時間點不以上述所說為限。
本發明之另一實施例中,於步驟62中,將接收資料的對應位址轉換成參考位址的方式也可以採用另一方式:計算接收資料的對應位址除以(位址差×記錄欄位之欄位數)的餘數,且餘數為0x00的,將所對應到的資料寫入記錄欄位s0,餘數為0x04的寫入s1,餘數為0x08的寫入s2,其餘以此類推。且寫入位址欄位124中的參考位址則是指向記錄欄位s0所記錄之資料所對應到的位址。如圖6的項目2 ,因為D6對應的位址為0x1534,而因為0x1534除以(4×8=)32的餘數為0x14,所以將D6寫入記錄欄位s5,而欄位s0對應到的位址為0x1520,因此寫入位址欄位124中的參考位址即為0x1520。值得注意的是,寫入位址欄位124中的參考位址除了可以是指向記錄欄位s0之外,也可以指向其他具代表性的記錄欄位,譬如:記錄欄位內確實記錄有資料者。
綜上所述,本發明可調適緩衝裝置及其方法支援寫入合併的做法,並允許可調適轉換來更改項目的記錄結構,因而能降低流經系統匯流排3的資料量,並使緩衝裝置11的儲存空間有較佳運用,故確實能達成本發明之目的。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及發明說明內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。
100‧‧‧處理器
3‧‧‧系統匯流排
1‧‧‧可調適緩衝裝置
61~65‧‧‧步驟
11‧‧‧控制單元
611~613‧‧‧子步驟
121‧‧‧有效欄位
s0‧‧‧記錄欄位
122‧‧‧狀態欄位
s1‧‧‧記錄欄位
123‧‧‧致能欄位
s2‧‧‧記錄欄位
124‧‧‧位址欄位
s3‧‧‧記錄欄位
125‧‧‧記錄區塊
s(n-1)‧‧‧記錄欄位
2‧‧‧記憶體
unit1~3‧‧‧單元
圖1是一方塊圖,說明處理器將運算資料寫入外接記憶體中;圖2是一方塊圖,說明本發明可調適緩衝裝置之較佳實施例內建於處理器中,並將資料寫入記憶體中;圖3是一流程圖,說明本發明可調適緩衝方法之較佳實施例;圖4是一流程圖,說明判斷有無適當項目或單元可供資料寫入; 圖5是一示意圖,說明各項目皆處於一般狀態;圖6是一示意圖,說明將資料寫入於一尚未有資料寫入的項目內;圖7是一示意圖,說明將其中一項目更動為轉換狀態;圖8是一示意圖,說明資料寫入於一尚未有資料寫入的單元內;及圖9是一示意圖,說明將其中一項目的記錄輸出而空出一項目。
100‧‧‧處理器
2‧‧‧記憶體
1‧‧‧可調適緩衝裝置
3‧‧‧系統匯流排
11‧‧‧控制單元
s0‧‧‧記錄欄位
121‧‧‧有效欄位
s1‧‧‧記錄欄位
122‧‧‧狀態欄位
s2‧‧‧記錄欄位
123‧‧‧致能欄位
s3‧‧‧記錄欄位
124‧‧‧位址欄位
s(n-1)‧‧‧記錄欄位
125‧‧‧記錄區塊

Claims (13)

  1. 一種可調適緩衝裝置,包含:複數個項目,每一個項目包括一位址欄位以及一記錄區塊;及一控制單元,選擇性地將每一個項目設定為一般狀態或是轉換狀態;其中,當該控制單元設定該些項目的一第一項目為一般狀態時,該第一項目的位址欄位用以記錄一第一位址,該第一項目的記錄區塊記錄該第一位址所對應的資料以及相鄰於該第一位址的其他位址所對應的資料;當該控制單元設定該些項目的一第二項目為轉換狀態時,該控制單元將該第二項目的位址欄位以及記錄區塊分為多個單元,其中該多個單元中每一個單元皆可分別用以記錄一第二位址、該第二位址所對應的資料以及相鄰於該第二位址所對應的資料。
  2. 依據申請專利範圍第1項所述之可調適緩衝裝置,其中,相鄰於該第一位址的其他位址共(n-1)個,其中n為該第一項目之記錄區塊的欄位數。
  3. 依據申請專利範圍第1項所述之可調適緩衝裝置,其中,相鄰於該第二位址所對應的資料共(m-2)個,其中m為每一個單元的欄位數。
  4. 依據申請專利範圍第1項所述之可調適緩衝裝置,其中,當所接收資料無法寫入任何該些項目或單元時,若該些項目當中至少有一第三項目於轉換狀態下可包括未被 寫入資料的單元,則該控制單元將該第三項目設定為轉換狀態後,再繼續執行寫入動作;若該些項目於轉換狀態下仍無法包括未被寫入資料的單元,則該控制單元將待該些項目或該些單元中的記錄寫出並產生未被寫入資料的項目或單元後,再繼續執行寫入動作。
  5. 依據申請專利範圍第4項所述之可調適緩衝裝置,其中,當接收資料所對應的位址與記錄區塊中任一資料所對應的位址既不屬於同一項目相鄰的n個位址也不屬於同一單元相鄰的(m-1)個位址,且無任何未被寫入資料的項目或單元時,則表示所接收資料無法寫入任何該些項目或單元,其中n為每一個項目之記錄區塊的欄位數,m為每一個單元的欄位數。
  6. 依據申請專利範圍第1項所述之可調適緩衝裝置,其中,該控制單元可將該第一項目內之資料合併寫出。
  7. 依據申請專利範圍第1項所述之可調適緩衝裝置,其中,該控制單元可將該第二項目內屬於同一單元之資料合併寫出。
  8. 依據申請專利範圍第1項所述之可調適緩衝裝置,其中,該些項目的每一個項目更包括一狀態欄位,用以設定每一個項目目前狀態為一般狀態或是轉換狀態。
  9. 一種可調適緩衝方法,適用於一可調適緩衝裝置,該可調適緩衝裝置包括複數個項目,每一個項目包括一用以記錄位址相鄰之資料的記錄區塊,該記錄區塊可設定為一般狀態或轉換狀態,該方法包含以下步驟: 接收並根據所接收資料對應的位址,判斷是否可將資料寫入該記錄區塊的其中一個位址相鄰的記錄欄位;若無法將資料寫入該記錄區塊的任一個位址相鄰的記錄欄位,判斷是否可將其中一個項目由一般狀態變更為轉換狀態;以及若沒有任何項目可由一般狀態變更為轉換狀態,則待該些記錄欄位的資料寫出後,再將接收資料寫入;其中,由一般狀態變更為轉換狀態是將每一個項目的位址欄位和記錄區塊分為複數個單元,且其中至少有一個是未被寫入資料的空白單元,而同一項目或同一單元的資料可合併寫出,以釋出空白項目或單元。
  10. 依據申請專利範圍第9項所述之可調適緩衝方法,其中於一般狀態下,每一個項目的記錄區塊共有n個位址相鄰的記錄欄位,用以記錄n個位址相鄰的資料。
  11. 依據申請專利範圍第10項所述之可調適緩衝方法,其中於轉換狀態下,每一個項目的位址欄位以及記錄區塊被分為複數個單元,每一個單元有m個欄位,用以分別記錄一個位址以及所對應的(m-1)個位址相鄰的資料。
  12. 依據申請專利範圍第11項所述之可調適緩衝方法,其中接收並根據所接收資料對應的位址,判斷是否可將資料寫入該等記錄區塊的其中一個位址相鄰的記錄欄位的步驟包括:判斷所接收資料對應的位址是否屬於一般狀態的項目中(n-1)個相鄰的位址的其中之一; 判斷所接收資料對應的位址是否屬於轉換狀態的單元中(m-2)個相鄰的位址的其中之一;判斷是否尚有未被寫入資料的空白項目或單元。
  13. 依據申請專利範圍第9項所述之可調適緩衝方法,其中將接收資料寫入未被寫入資料的空白項目或單元時,是將一參考位址寫入一位址欄位,並將該參考位址對應的資料寫入其中一個位址相鄰的記錄欄位。
TW097129816A 2008-08-06 2008-08-06 可調適緩衝裝置及其方法 TWI396975B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW097129816A TWI396975B (zh) 2008-08-06 2008-08-06 可調適緩衝裝置及其方法
US12/535,157 US8473696B2 (en) 2008-08-06 2009-08-04 Adaptive buffer device and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW097129816A TWI396975B (zh) 2008-08-06 2008-08-06 可調適緩衝裝置及其方法

Publications (2)

Publication Number Publication Date
TW201007457A TW201007457A (en) 2010-02-16
TWI396975B true TWI396975B (zh) 2013-05-21

Family

ID=41727018

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097129816A TWI396975B (zh) 2008-08-06 2008-08-06 可調適緩衝裝置及其方法

Country Status (2)

Country Link
US (1) US8473696B2 (zh)
TW (1) TWI396975B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI685744B (zh) 2018-09-06 2020-02-21 大陸商深圳大心電子科技有限公司 指令處理方法及使用所述方法的儲存控制器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809228A (en) * 1995-12-27 1998-09-15 Intel Corporaiton Method and apparatus for combining multiple writes to a memory resource utilizing a write buffer
US6415365B1 (en) * 1998-03-25 2002-07-02 Arm Limited Write buffer for use in a data processing apparatus
TW200803504A (en) * 2006-04-03 2008-01-01 Qualcomm Inc Preprocessor method and apparatus
TW200821829A (en) * 2006-09-28 2008-05-16 Sandisk Corp Memory systems for phased garbage collection using phased garbage collection block or scratch pad block as a buffer

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4805098A (en) * 1986-05-05 1989-02-14 Mips Computer Systems, Inc. Write buffer

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809228A (en) * 1995-12-27 1998-09-15 Intel Corporaiton Method and apparatus for combining multiple writes to a memory resource utilizing a write buffer
US6415365B1 (en) * 1998-03-25 2002-07-02 Arm Limited Write buffer for use in a data processing apparatus
TW200803504A (en) * 2006-04-03 2008-01-01 Qualcomm Inc Preprocessor method and apparatus
TW200821829A (en) * 2006-09-28 2008-05-16 Sandisk Corp Memory systems for phased garbage collection using phased garbage collection block or scratch pad block as a buffer

Also Published As

Publication number Publication date
TW201007457A (en) 2010-02-16
US20100058022A1 (en) 2010-03-04
US8473696B2 (en) 2013-06-25

Similar Documents

Publication Publication Date Title
US9043541B2 (en) Storage control device, storage device, and control method for controlling storage control device
TWI454906B (zh) 資料讀取方法、快閃記憶體控制器與儲存系統
CN101310339A (zh) 具有多个内部数据总线和存储器库交错的存储器装置和方法
CN101276152A (zh) 绘图装置
JP2009282678A (ja) フラッシュメモリモジュール及びストレージシステム
EP3938917B1 (en) Moving data in a memory and command for memory control
CN101706760B (zh) 矩阵转置自动控制电路***及矩阵转置方法
CN102053929A (zh) 一种基于Linux***DM层的IO缓存操作方法和***
US10198359B2 (en) Systems and methods for addressing a cache with split-indexes
CN1801396A (zh) 利用动态随机存取存储器写缓冲器的存储器控制器
CN101776988A (zh) 一种块大小可变的可重构矩阵寄存器文件
CN114092338B (zh) 图像缩放快速计算方法
CN101825997A (zh) 一种异步先入先出存储器
TWI396975B (zh) 可調適緩衝裝置及其方法
CN103365783A (zh) 存储控制装置、存储装置、信息处理***和处理方法
JP2009116395A (ja) データ形式変換装置及びデータ形式変換プログラム及びデータ形式変換方法
CN103034455B (zh) 基于预先解码分析的数据信息缓存管理方法及***
CN101267459B (zh) 采用异步fifo寄存器输出数据的方法及寄存器
KR101228111B1 (ko) 움직임 보상을 위한 더블 레지스터 어레이 버퍼
KR20220091362A (ko) Dram-리스 멀티레벨 셀 프로그래밍을 위한 nand 버퍼의 이용
JP5982148B2 (ja) 半導体記憶装置
JP2017111484A (ja) ストアマージ装置、情報処理装置、およびストア制御方法、並びにコンピュータ・プログラム
TWI537726B (zh) 資料讀取方法、快閃記憶體控制器與儲存系統
CN111414148A (zh) 面向高性能处理器的混合型fifo数据存储方法及装置
JP2015053095A (ja) メモリ、メモリシステムおよびメモリの制御方法