TW202006547A - 快取記憶體存取系統 - Google Patents
快取記憶體存取系統 Download PDFInfo
- Publication number
- TW202006547A TW202006547A TW107122953A TW107122953A TW202006547A TW 202006547 A TW202006547 A TW 202006547A TW 107122953 A TW107122953 A TW 107122953A TW 107122953 A TW107122953 A TW 107122953A TW 202006547 A TW202006547 A TW 202006547A
- Authority
- TW
- Taiwan
- Prior art keywords
- pixel
- cache
- target
- supplementary
- image
- Prior art date
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
回應於讀取第一影像區塊之第一畫素之壓縮後影像資料的請求,控制單元根據第一畫素於原始畫面之水平座標的(X+ΔX)個最低有效位元、第一畫素於原始畫面之垂直座標的(Y+ΔY)個最低有效位元、第一畫素對應於外部記憶體之位址及第一影像區塊之起始畫素對應於外部記憶體之位址,產生第一畫素於快取記憶體之目標索引,根據第一畫素於原始畫面之水平座標的A個最高有效位元及第一畫素於原始畫面之垂直座標的B個最高有效位元產生第一畫素之目標標籤,及比較快取記憶體中對應於目標索引之對應快取列之對應標籤及第一畫素之目標標籤。
Description
本發明係有關於一種快取記憶體存取系統,特別是指一種能夠保持畫素二維空間關係之快取記憶體存取系統。
快取記憶體可包含複數個快取列(cache line),每一快取列可存放至少一筆對應的資料。為使處理器能夠確認所需的資料是否存放於快取記憶體中,每一快取列皆具有其對應的生效位元(valid bit)、標籤(tag)、索引(index)和偏移值(offset)等資訊,以供處理器對照確認。表1說明先前技術之快取列的生效位元、標籤、索引和偏移值與資料位址M[11:0]的對應關係。 表1:
在表1中,若每筆資料於主記憶體中的位址是以二進制的十二位元表示為M[11:0],則在每一個快取列可儲存32位元組之資料的情況下,處理器可將位址M[11:0]中的最後五個位元M[4:0]作為偏移值,將位址M[11:0]中的第九至第六個最低有效位元M[8:5]作為其索引,並將位址M[11:0]中的第十二至第十個最低有效位元M[11:9]作為其標籤。舉例來說,位址為“111100001111”的資料的索引即為“1000”,而其標籤則為“111”,因此當處理器欲確認快取記憶體中是否儲存有該筆資料時,處理器會優先搜尋索引為“1000”的快取列,若索引為“1000”之快取列的生效位元為“1”,且索引為“1000”之快取列的標籤亦為“111”,則表示索引為“1000”之快取列中確有存放資料,且其存放的資料包含位址為“111100001111”的資料,此時表示快取命中(cache hit),處理器即可自快取記憶體中提取所需的資料。
反之,若是索引為“1000”之快取列的生效位元為“0”或是索引為“1000”之快取列的標籤並非“111”時,即為快取錯失(cache miss),而處理器仍需自外部的主記憶體取得所需的資料。
在快取錯失的情況下,處理器在自外部的主記憶體取得資料後,即可將其資料存放至對應索引的快取列中,並更新對應索引之快取列的標籤,且將生效位元設為“1”,如此一來,下一次當處理器需要該筆資料時,即可自快取記憶體中取得。
雖然快取記憶體能夠減少透過匯流排自外部之主記憶體中讀取資料,然而若是處理器每次所需的資料都不在快取記憶體中,亦即發生快取錯失的頻率太高,則快取記憶體所能帶來的效益仍可能非常有限,甚至浪費了寶貴的硬體空間。
本發明之一實施例提供一種快取記憶體存取系統,快取記憶體存取系統包含快取記憶體及控制單元。
快取記憶體包含複數個快取列,複數個快取列會對應於原始畫面之2A
x 2B
個影像瓦塊,每一影像瓦塊包含2ΔX
x 2ΔY
個區塊,每一影像區塊包含2X
x 2Y
個畫素。其中A、B、X、Y、ΔX及ΔY為自然數。
控制單元耦接於快取記憶體,並可在回應於讀取第一影像區塊之第一畫素之壓縮後影像資料的請求時,根據第一畫素於原始畫面之水平座標的(X+ΔX)個最低有效位元、第一畫素於原始畫面之垂直座標的(Y+ΔY)個最低有效位元、第一畫素對應於外部記憶體之第一位址及第一影像區塊之第一起始畫素對應於外部記憶體之第一起始位址,產生第一畫素於快取記憶體之目標索引,根據至少第一畫素之水平座標的A個最高有效位元及第一畫素之垂直座標的B個最高有效位元,產生第一畫素之目標標籤,以及比較快取記憶體中對應於目標索引之對應快取列之對應標籤及第一畫素之目標標籤。
原始畫面之複數個畫素的壓縮後影像資料會以影像區塊為單位,依序將每一影像瓦塊中之2ΔX
x 2ΔY
個影像區塊中的畫素以原始畫面之水平方向的次序編碼以儲存於外部記憶體。
第1圖為本發明一實施例之快取記憶體存取系統100的示意圖。快取記憶體存取系統100包含快取記憶體110及控制單元120。在本發明的部分實施例中,快取記憶體存取系統100可應用於影像壓縮。
在實務上,為提升硬體資源的使用效率,在壓縮一張畫面的資料時,可將一張畫面分為複數個影像瓦塊(tile)及/或複數個影像區塊(block),並依序對一張畫面中的各個影像區塊進行壓縮。舉例來說,原始畫面可分為2A
x 2B
個影像瓦塊,且每一影像瓦塊包含2ΔX
x 2ΔY
個區塊,其中A、B、ΔX及ΔY為自然數,亦即零或正整數。
第2圖為本發明一實施例之原始畫面IMG1之影像瓦塊及影像區塊的示意圖,在第2圖的實施例中,A可為5,B可為6,ΔX可為2,而ΔY可為2。也就是說,原始畫面IMG1可分為32 x 64個影像瓦塊IT(0,0)至IT(31,0)、IT(0,1)至IT(31,1)、…及IT(0,63)至IT(31,63),而每一個影像瓦塊會包含4x4個影像區塊IB(0,0)至IB(3,0)、IB(0,1)至IB(3,1)、IB(0,2)至IB(3,2)、及IB(0,3)及IB(3,3),每一影像區塊可包含2X
x 2Y
個畫素。
第3圖為第2圖之影像區塊的示意圖,在第3圖的實施例中,X可為5,Y可為4,亦即在第2圖中的每一影像區塊可包含32 x 16個畫素P0至P511。
在此情況下,原始畫面IMG1中的複數個畫素會以影像區塊為單位來進行壓縮,亦即可依序將每一影像瓦塊中之4x4個影像區塊中的畫素先以原始畫面IMG0之水平方向再以原始畫面IMG0之垂直方向的次序編碼以儲存於外部記憶體EMEM。在此實施例中,水平方向及垂直方向係為方便說明所使用的相對方向,而並非用以限定本發明的絕對方向。
為方便說明,第4圖說明在壓縮率為1的情況下,亦即各個畫素的資料量實質上並未被壓縮的情況下,原始畫面IMG1之各個畫素於壓縮後在外部記憶體EMEM的位址示意圖。在第4圖的實施例中,外部記憶體EMEM的每一個位址可存放8位元(bit)的資料,而在壓縮率為1的情況下,每一個畫素的影像資料亦包含8位元的資料。在此情況下,位址0x0A00_0000至0x0A00_001F中會存放影像區塊IB(0,0)之畫素P0至P31的資料,而位址0x0A00_0020至0x0A00_003F中會存放影像區塊IB(0,0)之畫素P32至P63的資料,其中位址0x0A00_0000及0x0A00_001F是以十六進制的方式來表示。依此類推,位址0x0A00_0060至0x0A00_001FF也可依照上述的順序分別存放影像區塊IB(0,0)之畫素P96至P511的資料。
於外部記憶體EMEM中,在影像區塊IB(0,0)中的畫素存放完畢之後,接著則會根據存放影像區塊IB(0,0)之畫素的方式,依序存放影像區塊IB(1,0)、IB(2,0)、IB(3,0)中的畫素資料。在存放影像區塊IB(3,0)的資料之後,則會接著依序存放影像區塊IB(0,1)至IB(3,1)、IB(0,2)至IB(3,2)、…、IB(0,3)至IB(3,3)的畫素資料。在存放完影像瓦塊IT(0,0)中的所有影像區塊之後,會接著以相同的方式依序存放影像瓦塊IT(1,0)至IT(31,0)、IT(0,1)至IT(31,1)、…至IT(0,63)至IT(31,63)中各個影像區塊中的畫素資料。
換言之,外部記憶體EMEM是以一維的方式,依照由左至右,再由上至下的順序存放每一個影像瓦塊中每一個影像區塊內的畫素。雖然按此方式存放畫素資料能夠避免在壓縮率大於1的情況下,以二維位址存放畫素資料時所造成之記憶體使用率偏低的問題,然而按一維方式存放畫面資料畫素的作法,則可能導致相鄰畫素的位址相差甚遠。
舉例來說,在影像瓦塊IT(0,0)中,影像區塊IB(0,3)中的畫素與影像區塊IB(0,2)中的畫素雖在原始畫面IMG1中是彼此相鄰近,然而其於外部記憶體中的位址則相差甚遠。此時若是按照先前技術的方式,直接根據各個畫素於外部記憶體EMEM的位址來制定各個畫素於快取記憶體中的索引,則將可能導致相鄰的畫素具有相同的索引,使得相鄰的畫素會彼此競爭相同的快取列。尤其在許多應用中,例如於解壓縮畫素資料時,常會需要參考其相鄰畫素的資料來執行對應的運算,因此在相鄰的畫素可能會彼此競爭相同快取列的情況下,將增加快取錯失發生的次數,而不利於整體的運算效率。
為了減少快取錯失發生的次數,控制單元120可根據各個畫素於外部記憶體EMEM的位址資訊及其在原始畫面中的空間二維座標來產生其索引。如此一來,即能將相鄰的畫素存放至具有相異索引的快取列中,並減少發生快取錯失的次數。
在第2圖及第3圖的實施例中,原始畫面IMG1包含2A+X+ΔX
x2B+Y+ΔY
個畫素,亦即212
x212
個畫素,因此每個畫素的水平座標及垂直座標皆可以二進制的十二個位元來表示。為方便說明,可將影像瓦塊IT(0,0)之影像區塊IB(0,0)之畫素P0的二維座標訂為(0,0) 亦即其水平座標為0且垂直座標為0,並將影像瓦塊IT(31,0)之影像區塊IB(3,0)之畫素P31的二維座標訂為(4095,0),亦即其水平座標為4095且垂直座標為0。相似地,影像瓦塊IT(0,63)之影像區塊IB(0,3)之畫素P480的二維座標則為(0,4095),其水平座標為0,而垂直座標為4095。
此外,在第1圖中,控制單元120連接至外部記憶體EMEM之匯流排BUS0的頻寬為2X
個位元組,亦即25
個位元組,因此為增加硬體使用的效率,每次經由匯流排BUS0自外部記憶體EMEM讀取資料時,可一次讀取32個位元組的資料。在此情況下,每一快取列可設計為具有32個位元組的資料容量,而快取記憶體110可包含2ΔX
x 2Y+ΔY
個快取列,亦即256個快取列CL0至CL255。
在第1圖中,控制單元120耦接於快取記憶體110,並可透過匯流排BUS0耦接至外部記憶體EMEM。當控制單元120接收到讀取原始畫面IMG1之第一影像區塊IBLK1之第一畫素PXL1之壓縮後影像資料的請求時,回應於該請求,控制單元120可根據第一畫素PXL1於原始畫面IMG1之水平座標的(X+ΔX)個最低有效位元、第一畫素PXL1於原始畫面IMG1之垂直座標的(Y+ΔY)個最低有效位元、第一畫素PXL1對應於外部記憶體EMEM之第一位址及第一畫素PXL1所在之第一影像區塊IBLK1的第一起始畫素IPXL1對應於外部記憶體EMEM之第一起始位址,產生第一畫素PXL1於快取記憶體110的目標索引。
在表2中,H可為第一畫素PXL1於原始畫面IMG1上的水平座標,而V可為第一畫素PXL1於原始畫面IMG1上的垂直座標。
由於每一快取列可以存放32個位元組的資料,因此在壓縮率為1的情況下,於水平方向上相連的32個畫素即可能會對應到相同的快取列,而控制單元120可將第一畫素PXL1的水平座標H的最末X個有效位元H[X-1:0],亦即最末5個有效位元H[4:0]作為其偏移值,而不列入索引部分。
此外,控制單元120會以第一畫素PXL1之水平座標H的第(X+ΔX)至第(X+1)個最低有效位元H[X+ΔX–1:X],亦即第7至第6個最低有效位元H[6:5] 作為部分索引,在第2圖的實施例中,水平座標H的第7至第6個最低有效位元H[6:5]實質上亦可視為第一畫素PXL1所在之第一影像區塊IBLK1的相對水平座標,舉例來說,影像區塊IB(0,0)的相對水平座標為0,而位於影像區塊IB(0,0)之畫素的水平座標H的第7至第6個最低有效位元H[6:5]皆為“00”;影像區塊IB(1,0)的相對水平座標為1,而位於影像區塊IB(1,0)之畫素的水平座標H的第7至第6個最低有效位元H[6:5]皆為“01”。
相似地,控制單元120可將所欲讀取之畫素之垂直座標V的第(Y+ΔY)至第(Y+1)個最低有效位元H[Y+ΔY–1:Y],亦即第6至第5個最低有效位元V[5:4] 作為部分索引,在第2圖的實施例中,垂直座標V的第6至第5個最低有效位元V[5:4]實質上亦可視為所欲讀取之畫素所在之影像區塊的相對垂直座標。
換言之,控制單元120可根據第一畫素PXL1是位於影像瓦塊中的哪一個影像區塊來設定其索引,因此在壓縮率為1的情況下,原始畫面IMG1之影像瓦塊IT(0,0)中,每一個影像區塊IB(0,0)至IB(3,3)中的畫素,都會以32個畫素為單位,存放至相異的快取列而不會彼此相競爭。
此外,為了進一步將同一影像區塊中其外部記憶體位址相異的畫素對應至相異的快取列中,控制單元120還可將第一畫素PXL1對應於外部記憶體EMEM之位址及第一畫素PXL1所在之第一影像區塊IBLK1之第一起始畫素IPXL1對應於外部記憶體EMEM之第一起始位址之差值OFF的第(X+Y)至第(X+1)個最低有效位元OFF[X+Y-1:X],亦即第9至第6最低有效位元OFF[8:5]作為第一畫素PXL1的部分索引。
舉例來說,若第一畫素PXL1為第2及第3圖中影像瓦塊IT(0,0)之影像區塊IB(0,0)中的畫素P98,第一區塊IBLK1即為影像瓦塊IT(0,0)之影像區塊IB(0,0),而第一區塊IBLK1的第一起始畫素IPXL1則為影像瓦塊IT(0,0)之影像區塊IB(0,0)的畫素P0。若根據第4圖的實施例,影像瓦塊IT(0,0)之影像區塊IB(0,0)的畫素P0於外部記憶體EMEM的起始位址為0x0A00_0000,而第一畫素PXL1於外部記憶體EMEM的位址則應為0x0A00_0062。因此兩者的差值OFF若以十進位表示即為98,而差值OFF之二進制的第9至第6最低有效位元OFF[8:5]即為“011”。
由於每一影像區塊在水平方向上具有32個畫素,且在外部記憶體EMEM又會以影像區塊為單位來存放各畫素的資料,因此在壓縮率為1的情況下,第一畫素PXL1之第一位址與第一畫素PXL1所在之第一影像區塊IBLK1之第一起始畫素IPXL1的第一起始位址之差值OFF的第9至第6最低有效位元OFF[8:5]實質上可視為第一畫素PXL1於第一影像區塊IBLK1中的相對垂直座標。
舉例來說,根據OFF[8:5]為“011”即可推理出第一畫素PXL1可能會位於影像區塊IB(0,0)中由上至下數來的第3列。由於每一影像區塊在垂直方向上具有2Y
個畫素,亦即16個畫素,因此在表2的實施例中,僅需選擇差值OFF的第9至第6最低有效位元OFF[8:5],共4個位元即已足夠區別每一影像區塊中位於相異水平列的畫素。
再者,影像瓦塊IT(0,0)之影像區塊IB(0,0)的畫素P98於原始畫面IMG1中的座標(H,V)為(2,3),亦即水平座標H為2,而垂直座標V為3。因此第一畫素PXL1之水平座標H的第(X+ΔX)至第(X+1)個最低有效位元,亦即第7至第6個最低有效位元H[6:5]即為“00”,而第一畫素PXL1之垂直座標H的第(Y+ΔY)至第(Y+1)個最低有效位元,亦即第6至第5個最低有效位元V[5:4]即為“00”。
控制單元120即可根據第一畫素PXL1之水平座標H的第(X+ΔX)至第(X+1)個最低有效位元“00”, 第一畫素PXL1之垂直座標V的第(Y+ΔY)至第(Y+1)個最低有效位元“00”,以及第一畫素PXL1的第一位址與第一影像區塊IBLK1之第一起始畫素之第一起始位址之差值OFF的第(X+Y)至第(X+1)個最低有效位元“011”加以組合產生第一畫素PXL1的目標索引。以表2所示的順序為例,第一畫素PXL1的目標索引即為“0001100”。當然,在本發明的其他實施例中,亦可根據與表2相異的順序來組合第一畫素PXL1的目標索引。
由於原始畫面IMG1中各個畫素的目標索引皆可透過上述方式產生,因此在第2圖中,位於各影像瓦塊IT(0,0)至IT(31,63)中,相對位置相同的畫素可能會產生相同的索引。例如影像瓦塊IT(0,0)之影像區塊IB(0,0)中的畫素P98即可能與影像瓦塊IT(1,0)之影像區塊IB(0,0)中的畫素P98具有相同的索引。因此控制單元120仍需檢查快取記憶體110中對應於目標索引“0001100”之對應快取列的對應標籤及對應生效位元,以確認對應於目標索引“0001100”之對應快取列是否儲存有第一畫素PXL1之壓縮後的影像資料。
在本發明的部分實施例中,控制單元120可根據第一畫素PXL1於原始畫面IMG1中的座標產生其目標標籤。
根據表3的內容,控制單元120可根據第一畫素PXL1之水平座標H的A個最高有效位元H[X+ΔX+A–1 :X+ΔX]及第一畫素PXL1之垂直座標V的B個最高有效位元V[Y+ΔY+B–1 :Y+ΔY]產生第一畫素PXL1之目標標籤,亦即水平座標H之第1至第5個最高有效位元H[11:7]以及垂直座標V之第1至第6個最高有效位元H[11:6]。
如此一來,位於影像瓦塊IT(0,0)之影像區塊IB(0,0)之畫素P98與位於影像瓦塊IT(1,0)之影像區塊IB(0,0)之畫素P98即會具有相異的標籤。因此控制單元120可比較對應快取列的對應標籤與第一畫素PXL1的目標標籤,若對應快取列的對應標籤與所欲讀取之畫素的目標標籤相同,則表示對應快取列中可能儲存有所欲讀取之畫素之壓縮後影像資料。
在此實施例中,第一畫素PXL1為影像瓦塊IT(0,0)之影像區塊IB(0,0)之畫素P98,其水平座標H之第1至第5個最高有效位元H[11:7]為“00000”,而其垂直座標V之第1至第6個最高有效位元H[11:6]為“000000”,因此根據表3所示的順序,控制單元120所產生之第一畫素PXL1的目標標籤即為“00000000000”。而在第1圖中,若對應於目標索引“0001100”的對應快取列為快取列CL12,則由於快取列CL12的對應標籤亦為“00000000000”, 表示快取列CL12中可能儲存有第一畫素PXL1之壓縮後影像資料。
此外,由於儲存在外部記憶體EMEM的資料可能會被更新,而儲存在對應快取列中的資料未必為已更新的資料,因此在本發明的部分實施例中,控制單元120還會檢查對應快取列的對應生效位元,對應生效位元可以二進位之“1”表示已生效,並以二進位之“0”表示無效。
若是對應快取列的對應標籤與第一畫素PXL1的目標標籤相同,且對應快取列的對應生效位元被標記為已生效,控制單元120即可自快取列CL12中讀取第一畫素PXL1之壓縮後影像資料,而無須透過匯流排BUS0自外部記憶體EMEM讀取所需的資料。
反之,若是對應快取列的對應生效位元被標記為無效,或對應快取列的對應標籤與第一畫素PXL1的目標標籤相異時,表示對應快取列中的資料並非第一畫素PXL1之壓縮後的影像資料。此時控制單元120可根據第一畫素PXL1的第一位址自外部記憶體EMEM讀取第一畫素PXL1之壓縮後影像資料,並且可根據第一畫素PXL1之目標索引及目標標籤將第一畫素PXL1之壓縮後影像資料儲存至對應快取列,例如為上述的快取列CL12,並將對應快取列之對應生效位元標記為已生效。
也就是說,控制單元120可根據第一畫素PXL1之壓縮後的影像資料將原先對應快取列中所儲存的資訊覆蓋,並更新對應快取列的對應標籤及對應生效位元。如此一來,下一次當控制單元120欲讀取第一畫素PXL1的資料時,控制單元120即可自對應快取列中存取所需的壓縮後影像資料,而無須再次經由匯流排BUS0到外部記憶體EMEM讀取資料。
透過表2所示的索引組成方式,快取記憶體存取系統100即可同時根據每個畫素於原始畫面IMG1的二維座標以及每個畫素座標於外部記憶體EMEM之位址來產生每個畫素的快取索引,進而能夠避免位置相鄰的畫素彼此競爭相同的快取列,而增加快取命中率。
此外,在不同應用當中,控制單元120可能會需要存取不同張畫面的資料,因此在本發明的部分實施例中,控制單元120除了根據第一畫素PXL1之水平座標H的A個最高有效位元及其垂直座標V的B個最高有效位元之外,還可根據所需畫面的畫面編號來組合成所欲讀取之畫素之目標標籤。例如原始畫面IMG1的畫面編號可為1,則在原始畫面IMG1之前的畫面的編號可為0,而在原始畫面IMG1之後的畫面編號則可為2、3、4…,依此類推,而可根據應用的需求,增設不同位元的畫面編號至第一畫素PXL1的目標標籤當中。
雖然在壓縮率為1的情況下,快取記憶體110中的快取列CL0至CL255的總容量會足以容納一整個影像瓦塊中所有畫素的影像資料量,然而在實務上,壓縮率通常會大於1,例如為1.25、1.5。在此情況下,即便將整個影像瓦塊中所有畫素之壓縮後的影像資料存放至快取記憶體110中,仍可能僅會占用到部分的快取列,而仍有多餘的儲存空間。
第5圖為本發明一實施例之快取記憶體110的示意圖。在第5圖的實施例中,由於壓縮率大於1,因此每個畫素的壓縮後影像資料可能會少於8個位元,此時快取記憶體110中的快取列CL0至CL100即足以完整儲存影像瓦塊IT(0,0)中的畫素。此時,若按照前述表2的方式產生各畫素的索引,則快取記憶體110可能會在尚有快取列CL101至CL255處於閒置的情況下,更新原先已存有資訊的快取列,導致畫素間不必要地競爭相同的快取列,進而降低了快取記憶體110的快取命中率。
為解決此問題,在本發明的部分實施例中,當控制單元120接收到讀取第二畫素PXL2,例如為影像區塊IT(1,0)之影像區塊IB(0,0)之畫素P0,之壓縮後影像資料的指令時,回應於讀取第二畫素PXL2之壓縮後影像資料的請求,控制單元120可根據與表2相異的方式產生第二畫素PXL2之索引,使得影像區塊IT(1,0)之影像區塊IB(0,0)之畫素P0會優先存放至其他可能閒置的快取列中。
根據表4所述的索引產生方式,控制單元120可將與第二畫素PXL2於原始畫面之垂直座標V的第(Y+ΔY)至第(Y+1)個最低有效位元V[Y+ΔY–1:Y],亦即第6至第5個最低有效位元H[5:4],與其對應於外部記憶體EMEM之第二位址及第二畫素PXL2所在之第二影像區塊IBLK2之第二起始畫素對應於外部記憶體EMEM之第二起始位址之差值OFF的第(X+Y)至第(X+1)個最低有效位元OFF[X+Y-1:X],亦即差值OFF的第9至第6最低有效位元OFF[8:5]加以組合,作為第二畫素PXL2於影像瓦塊IT(1,0)中的相對垂直座標,再以2Y+ Δ Y
-1,亦即63,減去第二畫素PXL2於影像瓦塊IT(1,0)中的相對垂直座標以作為其畫素的部分索引。如此一來,影像區塊IT(1,0)之影像區塊IB(0,0)之畫素P0將會被優先存放到索引為”11111100”的快取列CL252中,而不會存放在索引為”00000000”的快取列CL0中,因此能夠有效地提高快取記憶體110的使用率進而提升快取命中率。
在本發明的部分實施例中,控制單元120可分別根據表2及表4所示的索引組成方式來產生原始畫面IMG1中相鄰影像瓦塊之畫素的目標索引,例如影像瓦塊IT(0,0)、IT(1,1)可根據表2的方式來產生畫素的目標索引,而影像瓦塊IT(1,0)、IT(0,1)則可根據表4的方式來產生畫素的目標索引,如此一來,相鄰的瓦塊就會以相異的順序來存放至快取列CL0至CL255,而能夠減少因為快取記憶體110使用率偏低及快取錯失率提高的狀況。
此外,在本發明的部分實施例中,快取記憶體110亦可包含更多的快取列,並使得相鄰的瓦塊可對應至相異的快取列。第6圖為本發明另一實施例之快取記憶體存取系統200的示意圖。快取記憶體存取系統200與快取記憶體存取系統100的主要差別在於快取記憶體存取系統200之快取記憶體210可包含快取列CL0至CL1023,此時原始畫面IMG1中的影像瓦塊IT(0,0)、IT(1,0)、IT(0,1)及IT(1,1)可分別對應至快取列CL0至CL255、快取列CL256至511、快取列CL512至767及快取列CL768至1023。如此一來,便可減少相鄰瓦塊的畫素彼此競爭相同快取列的情況。
在第6圖的實施例中,若將相鄰的四個影像瓦塊,例如影像瓦塊IT(0,0)、IT(0,1)、IT(1,0)及IT(1,1),視為一組影像瓦塊,則控制單元220還可以根據表2及表4所示的索引組成方式來分別產生相鄰兩組影像瓦塊中的畫素的索引,如此一來,還能夠再進一步地減少相鄰瓦塊的畫素彼此競爭相同快取列的情況,進而能夠提高快取命中的機率。
在第5圖的實施例中,當從外部記憶體EMEM中讀取一特定影像區塊之畫素的壓縮後影像資料時,可能會一併讀取到與該特定影像區塊相鄰之影像區塊之畫素的壓縮後影像資料,此時快取列中可能同時存放了兩個影像區塊之畫素的壓縮後影像資料。
舉例來說,在第5圖中,快取列CL3中即同時存放了影像瓦塊IT(0,0)之影像區塊IB(0,0)之畫素P451至P511的壓縮後影像資料以及影像瓦塊IT(0,0)之影像區塊IB(1,0)之畫素P0至P60的壓縮後影像資料。然而表2所示之索引組成方式包含了畫素所在之影像區塊的相對座標資訊,因此控制單元120根據表2所產生之影像區塊IB(0,0)之畫素P511的索引會與控制單元120根據表2所產生之影像區塊IB(1,0)之畫素P0的索引相異。
也就是說,在第5圖中,若控制單元120先根據表2產生影像區塊IB(0,0)之畫素P511的目標索引,則當控制單元120欲查找影像區塊IB(1,0)之畫素P0的壓縮後影像資料時,由於控制單元120根據表2所產生之影像區塊IB(1,0)之畫素P0的目標索引不會對應到快取列CL3,因此仍會發生快取錯失。為了減少快取錯失,在本發明的部分實施例中,快取記憶體還可包含至少一補充快取列,以減少快取錯失發生的次數。
第7圖為本發明一實施例之快取記憶體存取系統300的示意圖。快取記憶體存取系統300包含快取記憶體310及控制單元320,快取記憶體存取系統300與快取記憶體存取系統100的主要差別在於快取記憶體存取系統300之快取記憶體310除了快取列CL0至CL255之外,還包含補充快取列ACL0至ACL3。
在第7圖中,第一畫素PXL1’為影像區塊IT(0,0)之影像區塊IB(1,0)之畫素P0,當欲讀取第一畫素PXL1’之壓縮後影像資料時,回應於該請求,控制單元320可先根據表2產生第一畫素PXL1’的目標索引,倘若控制單元320於快取列CL0至CL255中發生快取錯失,此時,控制單元320可根據第一畫素PXL1’於外部記憶體EMEM的位址來產生其補充目標索引。
根據表5,控制單元320可將第一畫素PXL1’於外部記憶體EMEM的位址E的X個最低有效位元E[X-1:0]作為所欲讀取之畫素的補充偏移值,以與匯流排BUS0的硬體相配合。此外,控制單元320可根據所第一畫素PXL1’之第一位址E的第N個至第X+1個最低有效位元E[N-1:X]作為第一畫素PXL1’的補充目標索引,並可根據第一畫素PXL1’之第一位址E的第(X+ΔX+A+Y+ΔY+B)個至第N+1個最低有效位元E[X+ΔX+A+Y+ΔY+B-1:N]作為第一畫素PXL1’的補充目標標籤,並依此判斷第一畫素PXL1’的壓縮後影像資料是否儲存於補充對應快取列中。
在第7圖的實施例中,N為7,因此第一畫素PXL1’的補充目標索引即為其外部記憶體EMEM的位址E的第7至第6個最低有效位元E[6:5],而可能會對應至4個補充快取列ACL0至ACL3的其中之一,而第一畫素PXL1’的補充目標標籤即為其於外部記憶體EMEM的第一位址E的第24至第8個最低有效位元E[23:7]。
若第一畫素PXL1’的補充目標索引E[6:5]為“00”並對應至補充快取列ACL0,亦即ACL0為對應於補充目標索引“00”之補充對應快取列,則控制單元320可進一步比較補充快取列ACL0的補充對應生效位元及補充對應標籤。若補充對應快取列ACL0的補充對應生效位元被標記為已生效,且補充對應快取列ACL0的補充對應標籤與第一畫素PXL1’的補充目標標籤E[23:7]相同時,控制單元320會根據第一畫素PXL1’的補充偏移值E[4:0],自補充對應快取列ACL0中讀取第一畫素PXL1’的壓縮後影像資料。
反之,當補充對應快取列ACL0之補充對應生效位元被標記為無效,或補充對應快取列ACL0之補充對應標籤與第一畫素PXL1’的補充目標標籤相異時,則控制單元320可自外部記憶體EMEM讀取其壓縮後影像資料,接著可根據第一畫素PXL1’的補充目標索引E[6:5]及補充目標標籤E[23:7]將其壓縮後影像資料儲存至補充對應快取列ACL0,並可更新補充對應快取列ACL0之補充對應標籤,及將補充對應快取列ACL0之補充對應生效位元標記為已生效。
由於在此實施例中,影像瓦塊IT(0,0)之影像區塊IB(0,0)之畫素P451至P511的壓縮後影像資料以及影像瓦塊IT(0,0)之影像區塊IB(1,0)之畫素P0至P60的壓縮後影像資料在外部記憶體EMEM中為連續存放的32個位元組資料,因此影像瓦塊IT(0,0)之影像區塊IB(0,0)之畫素P451至P511及影像瓦塊IT(0,0)之影像區塊IB(1,0)之畫素P0至P60的補充目標索引及補充目標標籤皆相同,而在補充對應快取列ACL0中已存放了第一畫素PXL1’,亦即影像瓦塊IT(0,0)之影像區塊IB(1,0)之畫素P0,之壓縮後影像資料的情況下,不論下一次控制單元320是欲讀取影像瓦塊IT(0,0)之影像區塊IB(1,0)之畫素P0至P60或影像瓦塊IT(0,0)之影像區塊IB(0,0)之畫素P451至P511,都不會發生快取錯失。也就是說,透過補充快取列ACL0至ACL3,快取記憶體存取系統300即能夠有效的減少自外部記憶體EMEM讀取畫素影像資料的次數。
此外,一般而言,位於影像區塊中最後水平列的畫素(例如為影像區塊中的畫素P480至P511)有較大的機率會與下一個相鄰之影像區塊中最先水平列的畫素(例如為下一影像區塊中的畫素P0至P31)被存放在相同的快取列中,因此在本發明的部分實施例中,也可以限定控制單元320只有在所欲讀取的畫素是位於其影像區塊之最後水平列或最先水平列的情況下,才進一步根據表5的內容產生所欲讀取之畫素的補充目標索引,並對補充快取列ACL0至ACL3的補充索引進行比對。如此一來,補充快取列即有較大的機率會用來存放不同影像區塊之畫素的壓縮後影像資料,進而能夠更加有效地利用補充快取列來減少前述之快取錯失的情況。
在本發明的部分實施例中,由於單一快取列同時存放不同影像區塊之畫素之壓縮後影像資料的情況一般仍會比單一快取列僅存放相同影像區塊之畫素之壓縮後影像資料的情況來得少發生,因此補充快取列的數量可少於快取列的數量。
換言之,控制單元320根據表5所產生之畫素之補充目標標籤的總位元數可小於根據表2所產生之畫素之目標標籤的總位元數。實務上,X為4而N為6時,亦即快取記憶體310僅包含兩條補充快取列時,即已能夠有效地減少前述之快取錯失的情況,而無須過度地增設補充快取列,亦可避免造成硬體資源的負擔。
綜上所述,本發明之實施例所提供的存取快取記憶體的方法及快取記憶體存取系統可將所欲讀取之畫素於原始畫面中的平面座標資訊加入其目標索引中,因此可將相同影像瓦塊中的畫素存放在相異的快取列中,而減少相鄰畫素間彼此競爭相同快取列的機會,進而提高快取命中的機率。此外,本發明之實施例所提供的存取快取記憶體的方法及快取記憶體存取系統還可直接透過各畫素於外部記憶體的位址來建立其補充目標索引,並利用補充快取列存放相鄰影像區塊之畫素的壓縮後影像資料,進而能夠更加有效地提升快取命中的機率。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100、200、300‧‧‧快取記憶體存取系統110、210、310‧‧‧快取記憶體120、220、320‧‧‧控制單元EMEM‧‧‧外部記憶體BUS0‧‧‧匯流排CL0至CL255‧‧‧快取列ACL0至ACL3‧‧‧補充快取列IMG1‧‧‧原始畫面IBLK1‧‧‧第一影像區塊PXL1、PLX1’‧‧‧第一畫素IBLK2‧‧‧第二影像區塊PXL2、PLX2’‧‧‧第二畫素IT(0,0)至IT(31,63)‧‧‧影像瓦塊IB(0,0)至IB(3,3)‧‧‧影像區塊P0至P511‧‧‧畫素800、900‧‧‧方法S810至S860、S910至S1000‧‧‧步驟
第1圖為本發明一實施例之快取記憶體存取系統的示意圖。 第2圖為本發明一實施例之原始畫面之影像瓦塊及影像區塊的示意圖。 第3圖為第2圖之影像區塊的示意圖。 第4圖為原始畫面之各個畫素於壓縮後在外部記憶體的位址示意圖。 第5圖為本發明一實施例之第1圖之快取記憶體的示意圖。 第6圖為本發明另一實施例之快取記憶體存取系統的示意圖。 第7圖為本發明另一實施例之快取記憶體存取系統的示意圖。
100‧‧‧快取記憶體存取系統
110‧‧‧快取記憶體
120‧‧‧控制單元
EMEM‧‧‧外部記憶體
BUS0‧‧‧匯流排
CL0至CL255‧‧‧快取列
IMG1‧‧‧原始畫面
IBLK1‧‧‧第一影像區塊
PXL1‧‧‧第一畫素
IBLK2‧‧‧第二影像區塊
PXL2‧‧‧第二畫素
Claims (12)
- 一種快取記憶體存取系統,包含: 一快取記憶體,包含複數個快取列,該些快取列係對應於一原始畫面之2A x 2B 個影像瓦塊,每一影像瓦塊包含2ΔX x 2ΔY 個區塊,每一影像區塊包含2X x 2Y 個畫素;及 一控制單元,耦接於該快取記憶體,用以在回應於讀取一第一影像區塊之一第一畫素之壓縮後影像資料的請求時,根據該第一畫素於該原始畫面之一水平座標的(X+ΔX)個最低有效位元、該第一畫素於該原始畫面之一垂直座標的(Y+ΔY)個最低有效位元、該第一畫素對應於一外部記憶體之一第一位址及該第一影像區塊之一第一起始畫素對應於該外部記憶體之一第一起始位址,產生該第一畫素於該快取記憶體之一目標索引,根據至少該第一畫素之該水平座標的A個最高有效位元及該第一畫素之該垂直座標的B個最高有效位元,產生該第一畫素之一目標標籤,以及比較該快取記憶體中對應於該目標索引之一對應快取列之一對應標籤及該第一畫素之該目標標籤; 其中: A、B、X、Y、ΔX及ΔY為自然數;及 該原始畫面之複數個畫素的壓縮後影像資料係以影像區塊為單位,依序將每一影像瓦塊中之該2ΔX x 2ΔY 個影像區塊中的畫素以該原始畫面之一水平方向的次序編碼以儲存於該外部記憶體。
- 如請求項1所述之快取記憶體存取系統,其中該控制單元另用以當該對應快取列之一對應生效位元被標記為已生效,且該對應快取列之該對應標籤與該第一畫素之該目標標籤相同時,根據該第一畫素之一目標偏移值,自該對應快取列中讀取該第一畫素之壓縮後影像資料。
- 如請求項2所述之快取記憶體存取系統,其中: 該目標偏移值係為該第一畫素之該水平座標之X個最低位元之值;及 該控制單元係將該第一位址與該第一起始位址之差值的第(X+Y)至第(X+1)個最低有效位元、該水平座標的第(X+ΔX)至第(X+1)個最低有效位元及該垂直座標的第(Y+ΔY)至第(Y+1)個最低有效位元組合成該第一畫素之該目標索引。
- 如請求項1至3中任一項所述之快取記憶體存取系統,其中: 該控制單元另用以回應於讀取與該第一影像區塊相鄰之一第二影像區塊之一第二畫素之壓縮後影像資料的請求,根據該第二畫素於該原始畫面之一水平座標的(X+ΔX)個最低有效位元、該第二畫素於該原始畫面之一垂直座標的(Y+ΔY)個最低有效位元、該第二畫素對應於該外部記憶體之一第二位址、該第二影像區塊之一第二起始畫素對應於該外部記憶體之一第二起始位址,產生該第二畫素於該快取記憶體之一目標索引;及 該第一畫素之該目標索引及該第二畫素之該目標索引的組合方式相異。
- 如請求項1所述之快取記憶體存取系統,其中: 該快取記憶體另包含至少一補充快取列; 該控制單元另用以當該對應快取列之一對應生效位元被標記為無效,或該對應快取列之該對應標籤與該第一畫素之該目標標籤相異時: 根據該第一畫素之該第一位址產生該第一畫素之一補充目標索引; 根據至少該第一畫素之該第一位址,產生該第一畫素之一補充目標標籤;及 比較該至少一補充快取列中對應於該補充目標索引之一補充對應快取列之一補充對應標籤及該第一畫素之該補充目標標籤。
- 如請求項1所述之快取記憶體存取系統,其中: 該快取記憶體另包含至少一補充快取列; 該控制單元另用以當該對應快取列之一對應生效位元被標記為無效,或該對應快取列之該對應標籤與該第一畫素之該目標標籤相異時: 若該第一畫素係位於該第一影像區塊之一最後水平列或一最先水平列,則根據該第一畫素之該第一位址產生該第一畫素一補充目標索引;及 根據至少該第一畫素之該第一位址,產生該第一畫素之一補充目標標籤;及 比較該至少一補充快取列中對應於該補充目標索引之一補充對應快取列之一補充對應標籤及該第一畫素之該補充目標標籤。
- 如請求項5或6所述之快取記憶體存取系統,其中該控制單元另用以當該補充對應快取列之一補充對應生效位元被標記為已生效,且該補充對應快取列之該補充對應標籤與該第一畫素之該補充目標標籤相同時,根據該第一畫素之一補充偏移值,自該補充對應快取列中讀取該第一畫素之壓縮後影像資料。
- 如請求項7所述之快取記憶體存取系統,其中該補充偏移值係為該第一畫素之該第一位址之X個最低有效位元之值。
- 如請求項7所述之快取記憶體存取系統,其中該第一畫素之該補充目標索引之一總位元數小於該第一畫素之該目標索引之一總位元數。
- 如請求項5或6所述之快取記憶體存取系統,其中該控制單元另用以當該補充對應快取列之一補充對應生效位元被標記為無效,或該補充對應快取列之一補充對應標籤與該補充目標標籤相異時: 根據該第一畫素之該第一位址自該外部記憶體讀取該第一畫素之壓縮後影像資料; 根據該第一畫素之該補充目標索引及該補充目標標籤將該第一畫素之壓縮後影像資料儲存至該補充對應快取列;及 將該補充對應快取列之該補充對應生效位元標記為已生效。
- 如請求項1所述之快取記憶體存取系統,其中該控制單元另用以當該對應快取列之一對應生效位元被標記為無效,或該該對應快取列之該對應標籤與該目標標籤相異時: 根據該第一畫素之該第一位址自該外部記憶體讀取該第一畫素之壓縮後影像資料; 根據該第一畫素之該目標索引及該目標標籤將該第一畫素之壓縮後影像資料儲存至該對應快取列;及 將該對應快取列之該對應生效位元標記為已生效。
- 如請求項1所述之快取記憶體存取系統,其中該控制單元係將該第一畫素之該水平座標的A個最高有效位元、該第一畫素之該垂直座標的B個最高有效位元及一畫面編號組合成該第一畫素之該目標標籤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107122953A TW202006547A (zh) | 2018-07-03 | 2018-07-03 | 快取記憶體存取系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107122953A TW202006547A (zh) | 2018-07-03 | 2018-07-03 | 快取記憶體存取系統 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202006547A true TW202006547A (zh) | 2020-02-01 |
Family
ID=70412847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107122953A TW202006547A (zh) | 2018-07-03 | 2018-07-03 | 快取記憶體存取系統 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TW202006547A (zh) |
-
2018
- 2018-07-03 TW TW107122953A patent/TW202006547A/zh unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10726519B2 (en) | Cache arrangement for graphics processing systems | |
US6911983B2 (en) | Double-buffering of pixel data using copy-on-write semantics | |
US6310657B1 (en) | Real time window address calculation for on-screen display | |
US7386697B1 (en) | Memory management for virtual address space with translation units of variable range size | |
US6064407A (en) | Method and apparatus for tiling a block of image data | |
CN101340587A (zh) | 编码输入图像的方法以及播放已编码图像的方法及装置 | |
US20080028151A1 (en) | Cache memory control method and cache memory apparatus | |
CN105431831A (zh) | 数据存取方法和利用相同方法的数据存取装置 | |
JP2015534169A (ja) | マルチメディアデータ処理のための方法及びシステム | |
US20100231600A1 (en) | High bandwidth, efficient graphics hardware architecture | |
US7760804B2 (en) | Efficient use of a render cache | |
US10691608B2 (en) | Memory device accessed in consideration of data locality and electronic system including the same | |
US7999820B1 (en) | Methods and systems for reusing memory addresses in a graphics system | |
US20070288691A1 (en) | Data processing with data transfer between memories | |
TW202006547A (zh) | 快取記憶體存取系統 | |
US20070183510A1 (en) | Method and apparatus for decoding video that alternately store lines of picture in pixel units and method of storing reference picture | |
US20050195200A1 (en) | Embedded system with 3D graphics core and local pixel buffer | |
US7213108B2 (en) | Information processing apparatus and method, storage medium, program and imaging apparatus | |
US20230237616A1 (en) | Image processing system and method for generating a super-resolution image | |
CN107797757B (zh) | 影像处理系统中的快取存储器管理方法及装置 | |
US8451283B2 (en) | Data management for image processing | |
US9794580B2 (en) | Cache management device, and motion picture system and method using the same | |
US10187663B2 (en) | Technique for performing variable width data compression using a palette of encodings | |
KR102516833B1 (ko) | 메모리 장치 및 그 데이터 처리 방법 | |
US6747661B1 (en) | Graphics data compression method and system |