TW201811056A - 與影像處理系統中之快取記憶體相關的記憶體管理方法及記憶體管理裝置 - Google Patents
與影像處理系統中之快取記憶體相關的記憶體管理方法及記憶體管理裝置 Download PDFInfo
- Publication number
- TW201811056A TW201811056A TW105126584A TW105126584A TW201811056A TW 201811056 A TW201811056 A TW 201811056A TW 105126584 A TW105126584 A TW 105126584A TW 105126584 A TW105126584 A TW 105126584A TW 201811056 A TW201811056 A TW 201811056A
- Authority
- TW
- Taiwan
- Prior art keywords
- cache
- image block
- order
- target
- column
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/455—Image or video data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本發明提供一種管理方法,應用於包含多個儲存區域之快取記憶體。每一個儲存區域各自包含複數個快取列且對應於一原始畫面中的複數個影像區塊。回應於將一影像區塊之壓縮後資料存入快取記憶體的請求,對應於該影像區塊之一儲存區域被選出,做為一目標儲存區域。接著,適用於該影像區塊之一目標快取列使用順序被決定。隨後,該影像區塊之壓縮後資料被存入該目標儲存區域,使該影像區塊之壓縮後資料在被存入該目標儲存區域後符合該目標快取列使用順序。
Description
本發明與記憶體相關,並且尤其與用以儲存影像資料的快取記憶體(cache)之管理技術相關。
在電子系統中,快取記憶體係用以暫存處理器近期內剛使用過或將可能使用的少量資料。相較於容量較大的主記憶體,快取記憶體存取資料的速度較快,但硬體價格較高。一般而言,主記憶體是利用動態隨機存取記憶器(dynamic random access memory,DRAM)實現,而快取記憶體是利用靜態隨機存取記憶器(static random access memory,SRAM)實現。在需要某一筆特定資料時,處理器會先至快取記憶體中尋找,並且在無法尋得該筆資料的情況下,才轉至主記憶體中尋找。在快取記憶體中成功尋得目標資料的情況稱為快取命中(cache hit),失敗則稱快取錯失(cache miss)。
一快取記憶體包含多個快取列(cache line)。因快取記憶體的容量有限,每一快取列通常會為多組不同的資料所共用。以動態影像處理程序為例,一張待處理的畫面常被分割為多個大小相同的影像區塊;當快取記憶體的容量不足以同時存放所有的影像區塊,其中的每一個儲存區域(包含一個或多個快取列)會被設計為各自對應於複數個影像區塊。實務上,一般是以影像區塊於其所屬畫面中的相對位置為依據,選擇應將該影像區塊存放在快取記憶體中的哪一個儲存區域。舉例而言,起始座標具有某一
共同點(例如x座標值的末五個位元皆為00000)的影像區塊會對應於快取記憶體中的同一個儲存區域。假設兩個影像區塊A、B係對應於快取記憶體中的同一個儲存區域。若影像區塊A先被擷取至快取記憶體中存放,處理器將影像區塊B寫入該儲存區域時會覆蓋掉影像區塊A的資料,反之亦然。
為了節省自快取記憶體存取影像資料時需要的傳輸頻寬,目前有一種做法是對影像資料先施以簡單的壓縮處理,再將壓縮後的影像資料存入快取記憶體。若原本儲存一個未經壓縮的影像區塊需要八個快取列的空間,儲存一個壓縮後之影像區塊所需要的快取列數量必然會小於或等於八。於實際應用中,顧及各影像區塊的可壓縮率並不相同,通常還是會為每個影像區塊在快取記憶體中保留八個快取列的儲存空間。
圖一(A)呈現包含八個快取列之一儲存區域的示意圖。圖一(B)和圖一(C)呈現影像區塊A、B各自之壓縮後資料與儲存區域100的相對關係範例。如圖一(B)所示,假設影像區塊A之壓縮後資料首先被存入儲存區域100,且占據了其中50%的空間(四個快取列)。隨後,如圖一(C)所示,回應於將影像區塊B存入快取記憶體的請求,影像區塊B的壓縮後資料被存入儲存區域100,並占據其中75%的空間(六個快取列)。根據現行的快取記憶體管理方式,無論影像區塊的可壓縮率高或低,存入儲存區域100的資料一律是由同一個位置(圖中以箭號110指示處)開始存放。因此,後來存入的影像區塊B之壓縮後資料會將原本存放於儲存區域100中前四個快取列的影像區塊A之壓縮後資料全部覆寫掉。在這個情況下,若處理器至快取記憶體中尋找影像區塊A,便會得到完全快取錯失的結果,因而必須至主記憶體中重新擷取整個影像區塊A。
假設隨後影像區塊A之壓縮後資料再次被寫入儲存區域100。如圖一(D)所示,影像區塊A之壓縮後資料僅會覆寫掉影像區塊B之壓縮後資料的一部分(前四個快取列),而影像區塊B之壓縮後資料的另一部分(後兩個快取列)會被保留在儲存區域100中。在這個情況下,若處理器至
快取記憶體中尋找影像區塊B,得到的結果將為前四個快取列為快取錯失,後兩個快取列為快取命中。也就是說,處理器僅需至主記憶體中重新擷取影像區塊B對應於該前四個快取列的影像資料。由此可看出,平均而言,相較於未採用壓縮處理的情況,對影像區塊施以壓縮處理能小幅提高快取命中率。
然而,由圖一(A)~圖一(D)亦可看出,在對影像區塊施以壓縮處理的情況下,儲存區域100中較接近箭號110的快取列會被較頻繁地使用,而較遠離箭號110的快取列被利用的頻率顯然較低。此一利用率不平均的情況表示有部分硬體資源未被充分利用。
為了解決上述問題,本發明提出一種新的記憶體管理方法及記憶體管理裝置。藉由針對不同影像區塊採用不同的快取列使用順序,根據本發明之管理方法及管理裝置能更為平均地使用每一快取列,促使硬體資源被有效利用。除此之外,採用根據本發明之管理方法及管理裝置還能進一步提升快取命中率。
根據本發明之一具體實施例為一種記憶體管理方法,應用於包含多個儲存區域之一快取記憶體。每一個儲存區域包含複數個快取列且對應於一原始畫面中所包含之複數個影像區塊。回應於將一影像區塊之壓縮後資料存入該快取記憶體之請求,對應於該影像區塊的一個目標儲存區域首先自該多個儲存區域中被選出。接著,適用於該影像區塊之一目標快取列使用順序被決定。隨後,該影像區塊之壓縮後資料被存入該目標儲存區域,並且該影像區塊之壓縮後資料被儲存為符合該目標快取列使用順序。
根據本發明之另一具體實施例為一種記憶體管理裝置,應用於包含多個儲存區域之一快取記憶體。每一個儲存區域包含複數個快取列
且對應於一原始畫面中所包含之複數個影像區塊。該記憶體管理裝置包含一區域選擇電路、一使用順序決定電路以及一控制器。回應於將一影像區塊之壓縮後資料存入該快取記憶體的請求,該區域選擇電路自該多個儲存區域中選出對應於該影像區塊的一個儲存區域,做為一目標儲存區域。該使用順序決定電路係用以決定適用於該影像區塊之一目標快取列使用順序。該控制器係用以將該影像區塊之壓縮後資料存入該目標儲存區域,使該影像區塊之壓縮後資料被儲存為符合該目標快取列使用順序。
關於本發明的優點與精神可以藉由以下發明詳述及所附圖式得到進一步的瞭解。
100‧‧‧儲存區域
110‧‧‧存放位置起始處
200‧‧‧記憶體管理方法
S22~S28‧‧‧流程步驟
S27‧‧‧流程步驟
S28A~S28D‧‧‧流程步驟
300‧‧‧快取記憶體
400‧‧‧原始畫面
700‧‧‧記憶體管理裝置
72‧‧‧區域選擇電路
74‧‧‧使用順序決定電路
76‧‧‧控制器
圖一(A)~圖一(D)呈現兩個影像區塊各自之壓縮後資料被先後儲存至同一快取記憶體儲存區域時的相對關係範例。
圖二為根據本發明之一實施例中的記憶體管理方法之流程圖。
圖三呈現可配合實現根據本發明之記憶體管理方法的一個快取記憶體內部配置範例。
圖四(A)呈現一原始畫面被劃分為多個影像區塊的範例;圖四(B)呈現一種影像區塊與儲存區域的對應關係範例。
圖五係用以輔助說明何謂快取列使用順序。
圖六呈現一種影像區塊位置與快取列使用順序的對應關係範例。
圖七(A)~圖七(C)呈現採用根據本發明之記憶體管理方法時,兩個影像區塊之壓縮後資料被先後儲存至同一儲存區域時的相對關係範例。
圖八呈現於另一實施例中將兩步驟順序對調後的流程圖。
圖九(A)~圖九(C)呈現待儲存資料之位址與快取列的數種對應關係範例。
圖十進一步呈現根據本發明之記憶體管理方法的細部流程。
圖十一為根據本發明之另一實施例中的記憶體管理方法之流程圖。
圖十二為根據本發明之一實施例中的記憶體管理裝置之功能方塊圖。
須說明的是,本發明的圖式包含呈現多種彼此關聯之功能性電路的功能方塊圖。該等圖式並非細部電路圖,且其中的連接線僅用以表示信號流。功能性元件及/或程序間的多種互動關係不一定要透過直接的電性連結始能達成。此外,個別元件的功能不一定要如圖式中繪示的方式分配,且分散式的區塊不一定要以分散式的電子元件實現。
根據本發明之一具體實施例為一種記憶體管理方法,應用於包含多個儲存區域之一快取記憶體。該記憶體管理方法的流程圖係繪示於圖二。圖三呈現可配合實現記憶體管理方法200的一種快取記憶體內部配置範例。快取記憶體300包含六十四個快取列。假設每一個影像區塊經壓縮後的資料量至多佔據八個快取列的儲存空間。快取記憶體300可被規劃為包含八個儲存區域,且令每一個儲存區域各自包含八個快取列。本實施例將此八個儲存區域編號為儲存區域#0~儲存區域#7。以圖四(A)所示之包含四十八個影像區塊的原始畫面為例,快取記憶體300中的每一個儲存區域可被設計為各自對應於原始畫面400中的六個(=48/8)不同的影像區塊。實務上,影像區塊與儲存區域的對應關係可由電路設計者依各種實際應用條件(例如快取記憶體的容量、原始畫面的尺寸...)決定,甚至是可動態調整的。
於一實施例中,一影像區塊的位置為分派其所對應的儲存區
域之依據。圖四(B)以4*2個影像區塊為單位,呈現一種影像區塊與儲存區域之間的映射規則範例。更具體地說,原始畫面400可被劃分為多個子畫面,每個子畫面是由4*2個影像區塊組成。每個子畫面中,位在第一列的第一個影像區塊被分派為對應於儲存區域#0、第一列的第二個影像區塊被分派為對應於儲存區域#1、......,依此類推。若將圖四(B)呈現的映射關係套用於原始畫面400,則原始畫面400會被劃分為六個子畫面,並且影像區塊(0,0)、(4,0)、(0,2)、(4,2)、(0,4)、(4,4)被分派為對應於儲存區域#0。也就是說,當出現一請求,欲將影像區塊(0,0)、(4,0)、(0,2)、(4,2)、(0,4)、(4,4)中任一個影像區塊的壓縮後資料存入快取記憶體300,該影像區塊的壓縮後資料會被存入儲存區域#0。相似地,影像區塊(1,0)、(5,0)、(1,2)、(5,2)、(1,4)、(5,4)被分派為對應於儲存區域#1,影像區塊(0,1)、(4,1)、(0,3)、(4,3)、(0,5)、(4,5)被分派為對應於儲存區域#5,依此類推。
須說明的是,影像區塊與儲存區域之對應關係的設定方式及其可能的變化型態為本發明所屬技術領域中具有通常知識者所知,於此不贅述。為便於呈現本發明的概念,以下實施例主要以圖三、圖四(A)和圖四(B)呈現的假設為例來說明記憶體管理方法200。然而,透過以下實施例,本發明所屬技術領域中具有通常知識者可理解,本發明的範疇不以前述任一假設為限。
首先,步驟S22為接收將一影像區塊之壓縮後資料存入快取記憶體300的請求。回應於此請求,在步驟S24中,對應於該影像區塊的一個儲存區域首先自儲存區域#0~儲存區域#7中被選出,做為一目標儲存區域。實務上,影像區塊與儲存區域的對應關係通常為已知資訊。就圖四(A)和圖四(B)呈現的範例而言,假設步驟S22所接收之請求為將影像區塊(0,0)的壓縮後資料存入快取記憶體300。根據影像區塊(0,0)的位置資訊,步驟S24即可自儲存區域#0~儲存區域#7中選出相對應的儲存區域#0做為該目標儲存區域。接著,步驟S26為決定適用於影像區塊(0,0)的一種快取列使
用順序,做為一目標快取列使用順序。隨後,步驟S28則是將影像區塊(0,0)之壓縮後資料存入該目標儲存區域,使該影像區塊之壓縮後資料被儲存為符合步驟S26選出的目標快取列使用順序。
儲存區域#0的八個快取列被重繪於圖五並標以編號0~7,以說明何謂快取列使用順序。在以下實施例中,編號於該順序中愈早出現的快取列被使用的優先順序愈高。若快取列使用順序為01234567,表示快取列0被使用的優先順序高於快取列1、快取列1被使用的優先順序高於快取列2,......,快取列6被使用的優先順序高於快取列7。舉例而言,若影像區塊(0,0)的壓縮後資料需要四個快取列的儲存空間,且步驟S26為影像區塊(0,0)之壓縮後資料選出的快取列使用順序為01234567,則在步驟S28中,影像區塊(0,0)之壓縮後資料會被優先存入儲存區域#0中的快取列0~快取列3等四個快取列。
須說明的是,快取列使用順序不需要等同於實際存入資料的順序。舉例而言,在快取列使用順序為01234567,且確定影像區塊(0,0)的壓縮後資料需要四個快取列之儲存空間的情況下,便已知是儲存區域#0中的快取列0~快取列3會被優先使用。實際存入資料時,可將影像區塊(0,0)的壓縮後資料依序存入儲存區域#0中的快取列3、快取列2、快取列1、快取列0等四個快取列,如此即能達到優先於快取列4~快取列7使用快取列0~快取列3的效果。
於一較佳實施例中,可供步驟S26選擇的快取列使用順序的個數為二,以下稱第一快取列使用順序、第二快取列使用順序。第一快取列使用順序與第二快取列使用順序完全相反。舉例而言,若第一快取列使用順序為01234567,則第二快取列使用順序為76543210。或者,若第一快取列使用順序為02461357,則第二快取列使用順序為75316420。
於一實施例中,一映射規則係預先提供,該映射規則係用以
描述影像區塊位置與複數種預設快取列使用順序之間的關聯性。圖六呈現一種影像區塊位置與快取列使用順序的對應關係範例。若該影像區塊於原始畫面400內是落在如圖六所示未標有斜紋陰影的白色區域中,則該影像區塊的壓縮後資料即被分派以第一快取列使用順序。相對地,若該影像區塊被壓縮前於原始畫面400中係落在標有斜紋陰影的區域中,則該影像區塊的壓縮後資料即被分派以第二快取列使用順序。在這種假設下,步驟S26係根據影像區塊的位置資訊以及該映射規則選擇應採用的快取列使用順序。舉例而言,步驟S26會為落在白色區域中的影像區塊(0,0)選擇第一快取列使用順序,為落在斜紋陰影區域中的影像區塊(4,0)選擇第二快取列使用順序,依此類推。
假設第一快取列使用順序為01234567,第二快取列使用順序為76543210,且影像區塊(0,0)之壓縮後資料需要四個快取列的儲存空間,影像區塊(4,0)之壓縮後資料需要六個快取列的儲存空間。若影像區塊(0,0)之壓縮後資料首先被存入儲存區域#0,其資料在儲存區域#0中的分布將如圖七(A)所示。接著,若影像區塊(4,0)之壓縮後資料被請求存入快取記憶體300,因分派給影像區塊(4,0)之壓縮後資料的快取列使用順序為76543210,快取記憶體300的控制器會將影像區塊(4,0)之壓縮後資料存入儲存區域#0中的快取列7、快取列6、快取列5、快取列4、快取列3、快取列2等六個快取列。如圖七(B)所示,影像區塊(4,0)的壓縮後資料會覆寫掉原本存放在快取列2和快取列3中的影像區塊(0,0)之壓縮後資料,而影像區塊(0,0)之壓縮後資料存放於快取列0和快取列1的部分仍然保留在其中。不同於圖一(B)中影像區塊B之壓縮後資料會將影像區塊A壓縮後的資料完全覆寫的情況,若此時至快取記憶體300中尋找影像區塊(0,0)之壓縮後資料,不會得到完全快取錯失的結果。相對地,處理器僅需至主記憶體中重新擷取影像區塊(0,0)對應於快取列2和快取列3的資料。
假設隨後影像區塊(0,0)的壓縮後資料再次被寫入快取記憶
體300,其寫入結果將如圖七(C)所示,僅覆寫掉原本存放在快取列2和快取列3中的影像區塊(4,0)之壓縮後資料,而影像區塊(4,0)存放於快取列4~快取列7的壓縮後資料仍然保留在其中。若此時至快取記憶體300中尋找影像區塊(4,0)之壓縮後資料,也不會得到完全快取錯失的結果,而是僅需至主記憶體中重新擷取影像區塊(4,0)對應於快取列2和快取列3的資料。比較圖一(C)和圖七(C)可看出,相較於先前技術,採用記憶體管理方法200平均而言可提供較高的快取命中率。
由上述範例可知,因影像區塊(0,0)和影像區塊(4,0)被分派的快取列使用順序不同,快取記憶體300的控制器並非自同一個位置開始存放這兩筆資料。另一方面,在快取列使用順序76543210中,編號為7而非編號為0的快取列被優先使用。於實際應用中,透過適當設計供步驟S26選擇的快取列使用順序,每一快取列即可被更為平均地使用,避免先前技術中硬體資源未被充分利用的問題。
在許多影像處理程序中,於原始畫面內位置較接近的兩個影像區塊在短時間內被先後存入快取記憶體的機率較高。舉例而言,在影像區塊(0,0)的壓縮後資料被存入儲存區域#0後的短時間內,影像區塊(4,0)的壓縮後資料或影像區塊(0,2)的壓縮後資料被存入儲存區域#0的機率通常會高於影像區塊(4,2)的壓縮後資料被存入儲存區域#0的機率。快取列使用順序的分派原則可根據這個特性來制定。也就是說,在對應於同一個儲存區域的多個影像區塊中,一影像區塊被分派的快取列使用順序可被設計為不同於水平方向上與該影像區塊最接近的另一影像區塊被分派的快取列使用順序,也不同於垂直方向上與該影像區塊最接近的另一影像區塊被分派的快取列使用順序。請參閱圖六。在同樣對應於儲存區域#0的多個影像區塊中,於水平方向上與影像區塊(0,0)最接近的是影像區塊(4,0),在垂直方向上與影像區塊(0,0)最接近的是影像區塊(0,2)。因此,在影像區塊(0,0)的壓縮後資料被分派以第一快取列使用順序的情況下,影像區塊(4,0)和影像
區塊(0,2)的壓縮後資料可被分派以第二快取列使用順序。相似地,在同樣對應於儲存區域#2的多個影像區塊中,於水平方向上與影像區塊(2,2)最接近的是影像區塊(6,2),在垂直方向上與影像區塊(2,2)最接近的是影像區塊(2,0)和影像區塊(2,4)。因此,在影像區塊(2,2)的壓縮後資料被分派以第二快取列使用順序的情況下,影像區塊(6,2)、(2,0)、(2,4)的壓縮後資料可被分派以第一快取列使用順序,依此類推。
理論上,令第一快取列使用順序與第二快取列使用順序完全相反可使快取命中率的提高幅度最大化,但本發明的範疇不以此為限。於一實施例中,第一快取列使用順序與第二快取列使用順序僅有部分相反。舉例而言,若第一快取列使用順序為01234567,則第二快取列使用順序可為32104567或是01237654。本發明所屬技術領域中具有通常知識者可理解,只要第一快取列使用順序和第二快取列使用順序不是完全相同(例如,完全相反、部分相反、循環偏移),記憶體管理方法200的平均快取命中率便會高於在任何狀況皆採用同一種快取列使用順序的先前技術。在根據本發明的實施例中,兩快取列使用順序甚至不需要有一部份相反。舉例而言,若第一快取列使用順序為01234567,則第二快取列使用順序可為12345670。
此外,本發明所屬技術領域中具有通常知識者可理解,各個儲存區域中的快取列0~7在實際記憶體電路中不需要被配置為彼此相鄰,亦無需被限制為按特定順序排列,其標號僅供設定快取列使用順序時使用。
實務上,若步驟S24和步驟S26皆以影像區塊的位置資訊為選擇依據,則這兩個步驟可同時進行或者是順序對調,不會減損記憶體管理方法200的效果。也就是說,不需要確知目標儲存區域是哪一個的情況下,也可以為每一個影像區塊找出其目標快取列使用順序。圖八呈現將步驟S26提前至早於步驟S22的流程圖。
於另一實施例中,步驟S26係根據一先前快取列使用順序(而非影像區塊的位置資訊)來決定要分派給目前這一個影像區塊之壓縮後資料的快取列使用順序,其分派原則在於使步驟S26這一次決定出的快取列使用順序不同於該先前快取列使用順序。此處所謂先前快取列使用順序係指步驟S24所選擇之該目標儲存區域於前一次儲存另一影像區塊之壓縮後資料時採用的快取列使用順序。舉例而言,假設原本影像區塊(0,0)之壓縮後資料已依第一快取列使用順序被存放於儲存區域#0中,且隨後出現將影像區塊(4,2)之壓縮後資料存入快取記憶體300的請求。就圖四(B)例示的影像區塊位置/儲存區域編號對應關係而言,影像區塊(4,2)之壓縮後資料也是對應於儲存區域#0。由於原本儲存於儲存區域#0的影像區塊(0,0)之壓縮後資料是依第一快取列使用順序被存入,步驟S26便會為影像區塊(4,2)之壓縮後資料選擇不同於第一快取列使用順序的第二快取列使用順序。
實務上,該先前快取列使用順序可被記錄在快取記憶體300外部或內部的某個記憶體空間或暫存器中。此外,步驟S26可以是自複數種預設快取列使用順序中選出不同於該先前快取列使用順序之一快取列使用順序,做為該目標快取列使用順序。或者,步驟S26也可以是在沒有參考預設快取列使用順序的情況下,即時決定出不同於先前快取列使用順序的一種快取列使用順序。
須說明的是,本發明的範疇並未限定於快取記憶體300中的各個儲存區域必須採用完全相同的多種快取列使用順序,亦未限定於每一個儲存區域皆能配合實現多種快取列使用順序。
步驟S28的實現方式有很多種。本發明所屬技術領域中具有通常知識者可理解,有許多種實作方式可達成「使影像區塊之壓縮後資料被儲存為符合一目標快取列使用順序」的效果,皆不脫本發明的範疇。於一實施例中,快取記憶體300並非採用固定之一資料位址/快取列編號對應關係。更具體地說,快取記憶體300的控制器可不考慮壓縮後資料的一個或
多個資料位址,便直接依目標快取列使用順序,將待儲存的影像區塊之壓縮後資料存入該目標儲存區域。如圖九(A)呈現的範例,快取記憶體300的控制器可直接根據快取列使用順序76543210將影像區塊(4,0)之壓縮後資料中位址為Add_0~Add_5的資料一一寫入儲存區域#0中編號為7~2的快取列。
實務上,某些快取記憶體的控制器是依據待儲存資料本身的位址資訊來決定應將資料存入目標儲存區域中的哪一個快取列。換句話說,某些快取記憶體是採用一種固定的資料位址/快取列編號對應關係。在這個情況下,改變待儲存資料的位址,就可以達成改變快取列使用順序的效果。圖十呈現步驟S28的一種詳細實施範例。步驟S28A為判斷步驟S26選出的目標快取列使用順序是否與快取記憶體300之一預設快取列使用順序(例如01234567)相同。若步驟S28A之判斷結果為是,則步驟S28B被執行,即根據該預設快取列使用順序,將該影像區塊之壓縮後資料存入目標儲存區域。若步驟S28A之判斷結果為否,則步驟S28C被執行,即根據目標快取列使用順序針對該影像區塊之壓縮後資料進行一位址轉換程序,以產生一個或多個轉換後資料位址。隨後,在步驟S28D中,根據該一個或多個轉換後資料位址,該影像區塊之壓縮後資料被存入該目標儲存區域。步驟S28A~S28D的實際運作範例詳述於下一段落。
假設快取記憶體300的控制器被設計為將待儲存資料寫入編號與其位址相同的快取列,且步驟S26分派給影像區塊(4,0)之壓縮後資料的快取列使用順序為76543210。若未施以位址轉換,影像區塊(4,0)之壓縮後資料中位址為Add_0的資料會被寫入儲存區域#0中編號為0的快取列,位址為Add_1的資料會被寫入編號為1的快取列,依此類推。如圖九(B)所示,根據目標快取列使用順序為76543210進行位址轉換程序後,原本位址為Add_0的資料會被修改為具有位址Add_7,原本位址為Add_1的資料會被修改為具有位址Add_6,...,原本位址為Add_5的資料會被修改為具有
位址Add_2。如此一來,快取記憶體300的控制器便可維持「將待儲存資料寫入編號與其位址相同的快取列」的運作模式,但仍使影像區塊之壓縮後資料在被存入目標儲存區域後符合目標快取列使用順序。於實際應用中,該位址轉換程序可以由快取記憶體300內部的控制器執行,也可以由快取記憶體300外部之另一處理器負責。
如先前所述,步驟S26可被提前至早於步驟S22。圖十一呈現根據本發明之另一實施例中的記憶體管理方法之流程圖。在這個實施例中,步驟S26和步驟S22之間進一步包含步驟S27,用以根據該目標快取列使用順序,決定該影像區塊之壓縮後資料的一個或多個資料位址。請參閱做為此流程之實際運作範例的圖九(C)。在已知影像區塊(4,0)之壓縮後資料被分派之快取列使用順序為76543210的情況下,可藉由選擇適當的定址方式,令影像區塊(4,0)之壓縮後資料中的資料在被壓縮完成後即直接被定址為具有位址Add_7~Add_2。如此一來,當快取記憶體300被設計為固定將待儲存資料寫入編號與其位址相同的快取列,影像區塊(4,0)之壓縮後資料便會以符合其目標快取列使用順序的方式被存入儲存區域#0。
實務上,圖十一中的步驟S26、步驟S27可在出現將資料存入快取記憶體的請求之前就執行。舉例而言,在存入快取記憶體300之前,影像區塊(4,0)之壓縮後資料中的資料便可依步驟S27B所派定的位址被儲存於主記憶體(未繪示)中。
根據本發明之另一具體實施例為一種記憶體管理裝置,其功能方塊圖係繪示於圖十二。記憶體管理裝置700係應用於包含多個儲存區域之快取記憶體300。每一個儲存區域各自包含複數個快取列且各自對應於一原始畫面中所包含之複數個影像區塊。記憶體管理裝置700包含一區域選擇電路72、一使用順序決定電路74與一控制器76。區域選擇電路72係用以接收一請求,該請求關聯於將一影像區塊之壓縮後資料存入該快取記憶體。回應於該請求,區域選擇電路72自該多個儲存區域中選出對應於該
影像區塊之一目標儲存區域。使用順序決定電路74係用以決定適用於該影像區塊之一目標快取列使用順序。隨後,控制器76負責將該影像區塊之壓縮後資料存入該目標儲存區域,使該影像區塊之壓縮後資料被儲存為符合該目標快取列使用順序。
實務上,記憶體管理裝置700可利用多種控制和處理平台實現,包含固定式的和可程式化的邏輯電路,例如可程式化邏輯閘陣列、針對特定應用的積體電路、微控制器、微處理器、數位信號處理器。此外,記憶體管理裝置700亦可被設計為透過執行某一記憶體中所儲存之處理器指令來完成其任務。須說明的是,區域選擇電路72、使用順序決定電路74、控制器76可被整合於快取記憶體300中,亦可獨立於快取記憶體300之外。
本發明所屬技術領域中具有通常知識者可理解,先前在介紹記憶體管理方法200時描述的各種可能變化(例如快取列使用順序的分派方式和設計快取列使用順序的多種可能性)亦可應用至圖十二中的記憶體管理裝置700,其細節不再贅述。
藉由以上較佳具體實施例之詳述,係希望能更加清楚描述本發明之特徵與精神,而並非以上述所揭露的較佳具體實施例來對本發明之範疇加以限制。相反地,其目的是希望能涵蓋各種改變及具相等性的安排於本發明所欲申請之專利範圍的範疇內。
Claims (20)
- 一種記憶體管理方法,應用於一快取記憶體,該快取記憶體包含多個儲存區域,每一個儲存區域包含複數個快取列且對應於一原始畫面中所包含之複數個影像區塊,該記憶體管理方法包含:(a)接收一請求,該請求關聯於將一影像區塊之壓縮後資料存入該快取記憶體;(b)回應於該請求,自該多個儲存區域中選出對應於該影像區塊之一目標儲存區域;(c)決定適用於該影像區塊之一目標快取列使用順序;以及(d)將該影像區塊之壓縮後資料存入該目標儲存區域,使該影像區塊之壓縮後資料被儲存為符合該目標快取列使用順序。
- 如申請專利範圍第1項所述之記憶體管理方法,其中一映射規則係預先提供,該映射規則係用以描述影像區塊位置與複數種預設快取列使用順序之間的關聯性,且步驟(c)包含:取得該影像區塊之一位置資訊,該位置資訊指出該影像區塊於該原始畫面中之位置;以及根據該位置資訊以及該映射規則,自該複數種預設快取列使用順序中選出該目標快取列使用順序。
- 如申請專利範圍第2項所述之記憶體管理方法,其中對應於該目標儲存區域之複數個影像區塊包含一第一影像區塊與一第二影像區塊;在對應於該目標儲存區域之該複數個影像區塊中,該第二影像區塊與該第一影像區塊於一特定方向上最接近;該映射規則包含:分派一第一快取列使用順序給該第一影像區塊,並且分派不同於該第一快取列使用順序之一第二快取列使用順序給該第二影像區塊。
- 如申請專利範圍第3項所述之記憶體管理方法,其中該第一快取列使用 順序與該第二快取列使用順序完全相反或部分相反。
- 如申請專利範圍第1項所述之記憶體管理方法,其中步驟(c)包含:根據一先前快取列使用順序決定該目標快取列使用順序,使該目標快取列使用順序不同於該先前快取列使用順序,其中該先前快取列使用順序為同一該目標儲存區域於前一次儲存另一影像區塊之壓縮後資料時採用之一快取列使用順序。
- 如申請專利範圍第5項所述之記憶體管理方法,其中步驟(c)包含:自複數種預設快取列使用順序中選出不同於該先前快取列使用順序之一快取列使用順序,做為該目標快取列使用順序。
- 如申請專利範圍第5項所述之記憶體管理方法,其中步驟(c)包含:使該目標快取列使用順序與該先前快取列使用順序完全相反或部分相反。
- 如申請專利範圍第1項所述之記憶體管理方法,其中該快取記憶體並非採用固定之一資料位址/快取列編號對應關係,步驟(d)包含:不考慮該影像區塊之壓縮後資料的一個或多個資料位址,直接依照該目標快取列使用順序,將該影像區塊之壓縮後資料存入該目標儲存區域所包含之該複數個快取列。
- 如申請專利範圍第1項所述之記憶體管理方法,其中該快取記憶體採用固定之一資料位址/快取列編號對應關係,且步驟(d)包含:根據該目標快取列使用順序,轉換該影像區塊之壓縮後資料的一個或多個資料位址,以產生一個或多個轉換後資料位址;以及根據該一個或多個轉換後資料位址,將該影像區塊之壓縮後資料存入該目標儲存區域所包含之該複數個快取列。
- 如申請專利範圍第1項所述之記憶體管理方法,其中該快取記憶體採用固定之一資料位址/快取列編號對應關係;步驟(c)之執行時間早於步驟(a), 且該記憶體管理方法於步驟(c)和步驟(a)之間進一步包含:根據該目標快取列使用順序,決定該影像區塊之壓縮後資料的一個或多個資料位址。
- 一種記憶體管理裝置,應用於一快取記憶體,該快取記憶體包含多個儲存區域,每一個儲存區域包含複數個快取列且對應於一原始畫面中所包含之複數個影像區塊,該記憶體管理裝置包含:一區域選擇電路,用以接收一請求,該請求關聯於將一影像區塊之壓縮後資料存入該快取記憶體,回應於該請求,該區域選擇電路自該多個儲存區域中選出對應於該影像區塊之一目標儲存區域;一使用順序決定電路,用以決定適用於該影像區塊之一目標快取列使用順序;以及一控制器,用以將該影像區塊之壓縮後資料存入該目標儲存區域,使該影像區塊之壓縮後資料被儲存為符合該目標快取列使用順序。
- 如申請專利範圍第11項所述之記憶體管理裝置,其中一映射規則係預先提供,該映射規則係用以描述影像區塊位置與複數種預設快取列使用順序之關聯性,該使用順序決定電路係根據該影像區塊之一位置資訊以及該映射規則,自該複數種預設快取列使用順序中選出該目標快取列使用順序,其中該位置資訊指出該影像區塊於該原始畫面中之位置。
- 如申請專利範圍第12項所述之記憶體管理裝置,其中對應於該目標儲存區域之複數個影像區塊包含一第一影像區塊與一第二影像區塊;在對應於該目標儲存區域之該複數個影像區塊中,該第二影像區塊係與該第一影像區塊於一特定方向上最接近;該映射規則包含:分派一第一快取列使用順序給該第一影像區塊,並且分派不同於該第一快取列使用順序之一第二快取列使用順序給該第二影像區塊。
- 如申請專利範圍第13項所述之記憶體管理裝置,其中該第一快取列使用順序與該第二快取列使用順序完全相反或部分相反。
- 如申請專利範圍第11項所述之記憶體管理裝置,其中該使用順序決定電路根據一先前快取列使用順序決定該目標快取列使用順序,使該目標快取列使用順序不同於該先前快取列使用順序,其中該先前快取列使用順序為同一該目標儲存區域於前一次儲存另一影像區塊之壓縮後資料時採用之一快取列使用順序。
- 如申請專利範圍第15項所述之記憶體管理裝置,其中該使用順序決定電路自複數種預設快取列使用順序中選出不同於該先前快取列使用順序之一快取列使用順序,做為該目標快取列使用順序。
- 如申請專利範圍第15項所述之記憶體管理裝置,其中該使用順序決定電路使該目標快取列使用順序與該先前快取列使用順序完全相反或部分相反。
- 如申請專利範圍第11項所述之記憶體管理裝置,其中該快取記憶體並非採用固定之一資料位址/快取列編號對應關係,該控制器不考慮該影像區塊之壓縮後資料的一個或多個資料位址,直接依照該目標快取列使用順序,將該影像區塊之壓縮後資料存入該目標儲存區域所包含之該複數個快取列。
- 如申請專利範圍第11項所述之記憶體管理裝置,其中該快取記憶體採用固定之一資料位址/快取列編號對應關係;該記憶體管理裝置進一步包含:一轉址電路,用以選擇性地根據該目標快取列使用順序,轉換該影像區塊之壓縮後資料的一個或多個資料位址,以產生一個或多個轉換後資料位址;其中該控制器係根據該一個或多個轉換後資料位址,將該影像區塊之壓 縮後資料存入該目標儲存區域所包含之該複數個快取列。
- 如申請專利範圍第11項所述之記憶體管理裝置,其中該快取記憶體採用固定之一資料位址/快取列編號對應關係;該記憶體管理裝置進一步包含:一定址電路,用以根據該目標快取列使用順序,決定該影像區塊之壓縮後資料的一個或多個資料位址。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105126584A TWI597979B (zh) | 2016-08-19 | 2016-08-19 | 與影像處理系統中之快取記憶體相關的記憶體管理方法及記憶體管理裝置 |
US15/428,437 US20180052773A1 (en) | 2016-08-19 | 2017-02-09 | Memory managing method and apparatus associated with cache in image processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105126584A TWI597979B (zh) | 2016-08-19 | 2016-08-19 | 與影像處理系統中之快取記憶體相關的記憶體管理方法及記憶體管理裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI597979B TWI597979B (zh) | 2017-09-01 |
TW201811056A true TW201811056A (zh) | 2018-03-16 |
Family
ID=60719302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105126584A TWI597979B (zh) | 2016-08-19 | 2016-08-19 | 與影像處理系統中之快取記憶體相關的記憶體管理方法及記憶體管理裝置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20180052773A1 (zh) |
TW (1) | TWI597979B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI779636B (zh) * | 2020-09-30 | 2022-10-01 | 瑞昱半導體股份有限公司 | 用以將影像幀儲存於記憶體中的方法及相關影像處理器 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9378560B2 (en) * | 2011-06-17 | 2016-06-28 | Advanced Micro Devices, Inc. | Real time on-chip texture decompression using shader processors |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8767823B2 (en) * | 2011-03-30 | 2014-07-01 | Industrial Technology Research Institute | Method and apparatus for frame memory compression |
-
2016
- 2016-08-19 TW TW105126584A patent/TWI597979B/zh not_active IP Right Cessation
-
2017
- 2017-02-09 US US15/428,437 patent/US20180052773A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI779636B (zh) * | 2020-09-30 | 2022-10-01 | 瑞昱半導體股份有限公司 | 用以將影像幀儲存於記憶體中的方法及相關影像處理器 |
Also Published As
Publication number | Publication date |
---|---|
TWI597979B (zh) | 2017-09-01 |
US20180052773A1 (en) | 2018-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10042576B2 (en) | Method and apparatus for compressing addresses | |
KR102510384B1 (ko) | 압축된 데이터 백그라운드를 캐싱하는 장치, 시스템 및 방법 | |
JP6263538B2 (ja) | マルチメディアデータ処理のための方法及びシステム | |
TWI644216B (zh) | 在基於處理器之系統中之記憶體中之壓縮記憶體線之優先級存取 | |
US10255195B2 (en) | Apparatus and method for performing address translation | |
CN107025085B (zh) | 数据处理系统及用于其的处理单元、操作方法、存储介质 | |
US9430394B2 (en) | Storage system having data storage lines with different data storage line sizes | |
JP2012530953A (ja) | 原画像をワープさせて表示する装置および方法 | |
JP2019513271A (ja) | 中央処理ユニット(cpu)ベースシステムにおいて複数のラストレベルキャッシュ(llc)ラインを使用してメモリ帯域幅圧縮を行うこと | |
US10114761B2 (en) | Sharing translation lookaside buffer resources for different traffic classes | |
US20140207998A1 (en) | System and method of wear leveling for a non-volatile memory | |
TWI597979B (zh) | 與影像處理系統中之快取記憶體相關的記憶體管理方法及記憶體管理裝置 | |
JP2007233615A (ja) | アドレス変換装置 | |
US10580107B2 (en) | Automatic hardware ZLW insertion for IPU image streams | |
CN107797757B (zh) | 影像处理系统中的快取存储器管理方法及装置 | |
US9916252B2 (en) | Systems and methods for addressing a cache with split-indexes | |
US9710392B2 (en) | Virtual memory mapping for improved DRAM page locality | |
WO2017011021A1 (en) | Systems and methods facilitating reduced latency via stashing in systems on chips | |
US20130173862A1 (en) | Method for cleaning cache of processor and associated processor | |
US9794580B2 (en) | Cache management device, and motion picture system and method using the same | |
KR102516833B1 (ko) | 메모리 장치 및 그 데이터 처리 방법 | |
US11321091B2 (en) | Storage devices mapped to registers and mapping methods thereof | |
CN118132501A (zh) | 访问控制方法及电子设备 | |
CN111506252A (zh) | 快取存储器及快取存储器的管理方法 | |
WO2011110133A2 (zh) | 存储系统中数据处理方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees | ||
MM4A | Annulment or lapse of patent due to non-payment of fees |