TW202001791A - 影像處理系統及其記憶體管理方法 - Google Patents
影像處理系統及其記憶體管理方法 Download PDFInfo
- Publication number
- TW202001791A TW202001791A TW107119551A TW107119551A TW202001791A TW 202001791 A TW202001791 A TW 202001791A TW 107119551 A TW107119551 A TW 107119551A TW 107119551 A TW107119551 A TW 107119551A TW 202001791 A TW202001791 A TW 202001791A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- circuit
- image processing
- cache
- reading
- Prior art date
Links
Images
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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
-
- 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
-
- 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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- 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
-
- 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/6028—Prefetching based on hints or prefetch instructions
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/121—Frame memory handling using a cache memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/18—Use of a frame buffer in a display terminal, inclusive of the display panel
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/20—Details of the management of multiple sources of image data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本發明提供一種適用於存取一主要記憶體之影像處理系統,其中包含一快取記憶體、一影像處理電路,以及一記憶體控制器。該記憶體控制器包含一命中計算電路、一決定電路與一讀取電路。回應於該影像處理電路針對一組目標影像資料發出之一資料需求,該命中計算電路計算該組目標影像資料於該快取記憶體中之一快取命中率。該決定電路係用以根據該快取命中率產生一預先讀取決定,指出是否應進行一預先讀取程序。該讀取電路係用以根據該預先讀取決定,選擇性地至該主要記憶體執行該預先讀取程序。
Description
本發明與影像處理系統相關,並且尤其與提升影像處理系統中之記憶體使用效率的技術相關。
為了暫存供影像處理程序使用的資料,許多影像處理系統利用動態隨機存取記憶體(dynamic random access memory, DRAM)做為一主要記憶體,並利用靜態隨機存取記憶器(static random access memory, SRAM)做為一快取記憶體(cache)。相較於主要記憶體,快取記憶體存取資料的速度較快,但硬體價格較高。因此,快取記憶體僅用以暫存近期內剛使用過或是即將要使用的少量影像資料,而主要記憶體係用以儲存一個或多個視訊框(video frame)的完整影像資料。
圖一呈現一影像處理系統的局部功能方塊圖。在影像處理電路110需要一影像資料時,便對記憶體控制器120發出資料需求,告知該影像資料的位置資訊(例如該影像資料是位在哪一個視訊框中的哪一個座標範圍內)。記憶體控制器120首先會據此到快取記憶體130中尋找。在無法於快取記憶體130尋得該影像資料的情況下,記憶體控制器120會向主要記憶體140發出讀取請求,並自主要記憶體140將該影像資料複製到快取記憶體130,供影像處理電路110使用。能在快取記憶體130中找到所需資料的情況稱為快取命中(cache hit),反之稱為快取錯失(cache miss)。
許多記憶體控制器120會採用預先讀取(pre-fetch)技術,亦即預測影像處理電路110接下來可能會需要哪些影像資料,並且預先將該等影像資料從主要記憶體140複製到快取記憶體130。圖二(A)~圖二(E)係用以說明何謂預先讀取機制。在進行影像處理程序時,每一個視訊框會被分割為多個區塊,做為影像處理的基本單位,例如圖二(A)呈現之視訊框200內包含的區塊001~003。假設影像處理電路110經過解析後已知在對區塊001進行處理程序時需要圖二(B)所示區域R1內的影像資料,並且,在採用預先讀取機制的情況下,記憶體控制器120會讀取相鄰於區域R1,且範圍更大的影像資料,如圖二(C)中的R1’的區域,預備給後續區塊進行影像處理時所需的影像資料。然而,當記憶體控制器120對區塊002進行處理程序時,也採用一樣的預先讀取機制,除了圖二(D)所示之區塊002進行處理程序時需要的區域R2,記憶體控制器120會讀取圖二(E)所示之比區域R2範圍更大的區域R2’。如圖所示,區域R1’與區域R2’兩者具有重疊的區域,代表記憶體控制器120要讀取區域R2’的時候,會產生快取命中。相對來說,記憶體控制器120此次要讀取區域R2’真正需要從主要記憶體140複製到快取記憶體130的資料就相對減少,意味著連續讀取(burst)資料的長度變短。過短的連續讀取長度會對主要記憶體存取的效率帶來很大的影響,詳述如下。
從記憶體控制器120告知主要記憶體140希望讀取位在某一個特定位址的資料起算,到主要記憶體140實際輸出資料為止,中間的時間延遲量稱為欄位址選通延遲(column address strobe latency),這是一個評估記憶體效率的重要指標。以現有的動態隨機存取記憶體來說,主要記憶體140包含多個記憶庫(memory bank),且同一個時間點只能有一個記憶庫處於啟動(active)狀態。一般而言,欄位址選通延遲由兩段延遲組成。如果儲存所需資料的記憶庫原本處於未啟動(inactive)狀態,首先必須將該記憶庫切換為啟動狀態,此切換時間為第一段延遲。第二段延遲則是自處於啟動狀態之記憶庫將資料傳遞到主要記憶體140之輸出端所花費的時間。對同一個主要記憶體140來說,第一段延遲是與需讀取之資料量無關的一個定值,第二段延遲的長度是正比於需讀取之資料量的一個不定值。
圖三呈現兩種讀取行為各自的欄位址選通延遲示意圖。假設第一段延遲的時間長度為T1,第二段延遲中讀取每一筆資料的時間長度是T2。同樣是在一個記憶庫中讀取二十筆資料,單次完成讀取的欄位址選通延遲是(T1 + T2*20),分成兩次讀取且需重新啟動記憶庫的欄位址選通延遲則是(T1*2 + T2*20)。由此可看出,在同一個記憶庫中單次連續讀取多筆資料是效率較高的。此外,若需讀取之資料分散在多個記憶庫中,也會令欄位址選通延遲大幅增長。
隨著製程進步,新一代動態隨機存取記憶體的資料率(data rate)愈來愈高,也就是上述時間長度T2愈來愈短。然而第一段延遲T1的絕對時間長度並沒有隨著資料率的提高等比例地降低。由於第一段延遲T1在欄位址選通延遲中的比重不容忽視,善加規劃對於主要記憶體140的讀取行為(例如盡量在同一個記憶庫中單次連續讀取多筆資料)因此更為必要。
現行預先讀取機制的缺點在於未將主要記憶體140的使用效率納入考量;記憶體控制器120可能會多次而零碎地至主要記憶體140讀取影像資料,導致主要記憶體140的使用效率低落。
為解決上述問題,本發明提出一種新的影像處理系統及其記憶體管理方法。
根據本發明之一實施例為一種適用於存取一主要記憶體之影像處理系統,其中包含一快取記憶體、一影像處理電路,以及一記憶體控制器。該記憶體控制器包含一命中計算電路、一決定電路與一讀取電路。回應於該影像處理電路針對一組目標影像資料發出之一資料需求,該命中計算電路計算該組目標影像資料於該快取記憶體中之一快取命中。該決定電路係用以根據該快取命中產生一預先讀取決定,指出是否應進行一預先讀取程序。該讀取電路係用以根據該預先讀取決定,選擇性地至該主要記憶體執行該預先讀取程序。
根據本發明之另一實施例為一種配合一影像處理系統之記憶體管理方法。該影像處理系統適用於存取一主要記憶體,並且包含一快取記憶體以及一影像處理電路。該記憶體管理方法包含:(a)回應於該影像處理電路針對一組目標影像資料發出之一資料需求,計算該組目標影像資料於該快取記憶體中之一快取命中;(b)根據該快取命中產生一預先讀取決定,指出是否應進行一預先讀取程序;以及(c)根據該預先讀取決定,選擇性地至該主要記憶體執行該預先讀取程序。
關於本發明的優點與精神可以藉由以下發明詳述及所附圖式得到進一步的瞭解。
根據本發明之一實施例為一種影像處理系統,其功能方塊圖係繪示於圖四。影像處理系統400包含一影像處理電路410、一記憶體控制器420,以及一快取記憶體430。影像處理系統400適用於存取一主要記憶體900。於實際應用中,快取記憶體430可以是一靜態隨機存取記憶器(SRAM),主要記憶體900可以是一動態隨機存取記憶體(DRAM),但不以此為限。如圖四所示,記憶體控制器420內包含一命中計算電路421、一決定電路422,以及一讀取電路423。以下分述各電路的運作方式。
影像處理電路410負責執行一種或多種影像處理程序。舉例而言,若影像處理系統400為一視訊信號接收端,影像處理電路410可以包含移動補償(motion compensation)電路,用以根據多組移動向量(motion vector)及殘差(residual)依序重建多個影像區塊。每當進行一影像處理程序時,影像處理電路410會針對該次影像處理程序所需要的影像資料(以下稱一組目標影像資料)向記憶體控制器420發出資料需求,告知該組目標影像資料的位置資訊。
回應於影像處理電路410發出的資料需求,命中計算電路421負責計算該組目標影像資料於快取記憶體430中的快取命中(hit)。在現行的快取記憶體架構中,一快取記憶體包含有多個快取列(cache line),且每一個快取列各自包含以下多個欄位:正確性、標籤(tag)、索引(index)、偏移量(offset),以及資料。當一批資料自主要記憶體900被複製到快取記憶體430,該批資料原本在主要記憶體900中的位址會被拆成三個部分,分散至標籤、索引和偏移量這三個欄位中儲存。換句話說,將標籤、索引和偏移量三個欄位的內容組合起來,便能得出該批資料的完整位址。實務上,命中計算電路421可根據該等欄位的內容來計算快取命中率(hit rate),詳述如下。
假設該組目標影像資料分散在主要記憶體900中的多個位址。若快取記憶體430為一單集合快取記憶體(single-set cache),則命中計算電路421可分別根據該多個位址中的每一個位址來查詢快取記憶體430中的正確性欄位、標籤欄位、索引欄位,藉此判斷該位址是否為快取命中,並能進一步計算該組目標影像資料整體的快取命中率。
若快取記憶體430為一多集合快取記憶體(multi-set cache),且採用近期最少使用(least recently used, LRU)演算法做為其資料置換策略,則命中計算電路421可被設計為令其查詢動作不會觸發快取記憶體430的相關置換機制,或是不會因其查詢動作實際上去更動快取記憶體430的各欄位內容,藉此避免干擾快取記憶體430對於資料重要性的排序。
於另一實施例中,為了避免干擾快取記憶體430對於資料重要性的排序,命中計算電路421被設計為透過一模擬機制來查詢快取記憶體430之位址相關欄位的複製結果,而不是直接查詢快取記憶體430本身的位址相關欄位。圖五(A)呈現此類型命中計算電路421的一種詳細實施例,其中包含一暫存器421A、一複製電路421B、一轉換電路421C、一搜尋電路421D,以及一統計電路421E。暫存器421A中設有一位址表格421A1,用以模擬快取記憶體430中的位址相關欄位。更詳細地說,複製電路421B會將快取記憶體430中所有正確性欄位、索引欄位與標籤欄位的內容複製至位址表格421A1。每當快取記憶體430中該等欄位之內容有所改變,複製電路421B也會複製該改變,相對應地修改位址表格421A1,藉此保持位址表格421A1的內容與快取記憶體430中該等欄位的內容一致。轉換電路421C係用以將影像處理電路410發出的資料需求轉換為一組待查位址(兩者之間有特定的映射關係)。隨後,搜尋電路421D負責至位址表格421A1搜尋該組待查位址,據此產生一搜尋結果,指出該組待查位址所對應的影像資料是否儲存在快取記憶體430中。統計電路421E係用以對多組待查位址對應之多個搜尋結果進行統計,以產生一快取命中率。
圖五(B)呈現位址表格421A1與搜尋電路421D的一種實施方式示意圖。假設待查位址包含索引及標籤兩個部分。搜尋電路421D首先會利用待查位址中的索引來找出位址表格421A1中索引值相同的橫列(例如圖中索引值為10100的橫列)。接著,比對電路421D1會將該橫列的標籤內容取出,與待查位址中的標籤比對。如果比對電路421D1判定比對結果為相同,且該橫列中的正確性欄位顯示該橫列的內容為正確,則及閘(AND gate)421D2的輸出信號會指出此次查詢結果為命中。
須說明的是,如果影像處理電路410發出的資料需求直接包含該組目標影像資料在主要記憶體900中的位址,則圖五(A)中的轉換電路421C可被省略。
由以上說明可看出,搜尋電路421D的查詢工作只是為了取得快取命中率,並非要實際上從快取記憶體430讀取資料。令搜尋電路421D查詢位址表格421A1而非直接查詢(讀取)快取記憶體430本身之標籤欄位與索引欄位,能夠避免干擾快取記憶體430對於資料重要性的排序。須說明的是,由於不需要將快取記憶體430中的其他欄位也複製到暫存器421A,暫存器421A的容量不需要被設計得很大。
圖五(C)呈現命中計算電路421的另一種詳細實施例。在這個實施例中,複製電路421B被替換為一記錄電路421F,用以在位址表格421A1中記錄近期內存入快取記憶體430之多筆影像資料的多個位址。舉例而言,記錄電路421F可以採用先進先出(first-in first out, FIFO)的形式記錄最近的五百筆影像資料的位址。相較於圖五(A),圖五(C)中的命中計算電路421運作較單純,能夠用較低的硬體成本實現。
如圖四所示,決定電路422會根據命中計算電路421提供的快取命中率產生一預先讀取決定,指出是否應進行一預先讀取程序。隨後,若預先讀取決定指出要進行預先讀取程序,讀取電路423據此至主要記憶體900執行該預先讀取程序。於一實施例中,若該快取命中率顯示影像處理電路410目前需要的目標影像資料已全部儲存於快取記憶體430中,決定電路422便令該預先讀取決定為「不進行預先讀取程序」。記憶體控制器420便不會針對後續影像處理程序可能需要的資料到主要記憶體900執行預先讀取程序。相對地,若該快取命中率顯示影像處理電路410目前需要之目標影像資料未全部儲存於快取記憶體430中,決定電路422便令該預先讀取決定為「進行預先讀取程序」。也就是說,當記憶體控制器420依照決定電路422決定「進行預先讀取程序」,則包含讀取以下資料:(a)針對目標影像資料,將快取錯失的資料自主要記憶體900複製到快取記憶體430,以及(b)自主要記憶體900進行預先讀取程序,讀取與目標影像資料無直接相關的其他資料,以供下一筆影像資料進行影像處理時使用。
由上述細節可看出,以上實施例中係以快取命中率是否為100%來決定是否進行預先讀取程序;然而,本發明之其他實施例之決定電路根據的快取命中率可能為100%之外的命中率,以產生一預先讀取決定。
由以上說明可看出,記憶體控制器420不是在每一次收到影像處理電路410發出的資料需求時,都會一併進行預先讀取程序。於上述實施例中,記憶體控制器420每次至主要記憶體900讀取影像資料時,讀取的對象一定會同時包含目標影像資料中為快取錯失的部分以及希望預先讀取的影像資料。換句話說,記憶體控制器420不會只為了目標影像資料中為快取錯失的部分對主要記憶體900執行讀取程序,也不會只為了希望預先讀取的影像資料對主要記憶體900執行讀取程序。這種做法的好處在於,平均而言,記憶體控制器420每一次會連續讀取較多筆資料。主要記憶體900的使用效率因此能被有效提高。
如圖六所示,於一實施例中,記憶體控制器420進一步包含一停止點決定電路424。實務上,在得知目標影像資料中為快取錯失的部分以及希望預先讀取的影像資料範圍之後,便能根據該等資料的位址判斷出這些資料分布在主要記憶體900中的哪些記憶庫。假設針對目標影像資料未被儲存於該快取記憶體的部分,讀取電路423須至主要記憶體900中的N個記憶庫讀取影像資料(N為一正整數)。如果決定電路422輸出的預先讀取決定指出讀取電路423應進行預先讀取程序,停止點決定電路424便會決定該預先讀取程序之一停止點,提供給讀取電路423。舉例而言,停止點決定電路424可將該停止點設定為令讀取電路423只在該N個記憶庫中讀取與預先讀取程序相關之影像資料。也就是說,讀取電路423不會為了預先讀取程序相關的影像資料額外進行跨記憶庫的讀取動作。這種做法的好處在於能避免因預先讀取程序使欄位址選通延遲進一步增長。
本發明的範疇並不限於以某種特定組態或架構來實現影像處理系統400。本發明所屬技術領域中具有通常知識者可理解,有多種電路組態和元件可在不背離本發明精神的情況下實現本發明的概念。實務上,前述電路可利用多種控制和處理平台實現,包含固定式的和可程式化的邏輯電路,例如可程式化邏輯閘陣列、針對特定應用的積體電路、微控制器、微處理器、數位信號處理器。此外,該等電路亦可被設計為透過執行記憶體中所儲存之處理器指令來完成其任務。
根據本發明之另一實施例為一種配合一影像處理系統之記憶體管理方法,其流程圖係繪示於圖七。該影像處理系統包含一主要記憶體、一快取記憶體以及一影像處理電路。步驟S701為判斷是否收到該影像處理電路針對一組目標影像資料發出之一資料需求。若判斷結果為否,則步驟S701會被重複執行。直到步驟S701之判斷結果為是,步驟S702會被執行,也就是為計算該組目標影像資料於該快取記憶體中之一快取命中率。隨後,步驟S703為根據該快取命中率產生一預先讀取決定,指出是否應進行一預先讀取程序。接著,步驟S704為根據該預先讀取決定,選擇性地至該主要記憶體執行該預先讀取程序。
本發明所屬技術領域中具有通常知識者可理解,先前在介紹影像處理系統400時描述的各種操作變化亦可應用至圖七中的記憶體管理方法,其細節不再贅述。
藉由以上具體實施例之詳述,係希望能更加清楚描述本發明之特徵與精神,而並非以上述所揭露的具體實施例來對本發明之範疇加以限制。相反地,其目的是希望能涵蓋各種改變及具相等性的安排於本發明所欲申請之專利範圍的範疇內。
110‧‧‧影像處理電路120‧‧‧記憶體控制器130‧‧‧快取記憶體140‧‧‧主要記憶體200‧‧‧視訊框001~003‧‧‧影像區塊R1、P、R1’‧‧‧影像區域400‧‧‧影像處理系統410‧‧‧影像處理電路420‧‧‧記憶體控制器421‧‧‧命中計算電路421A‧‧‧暫存器421A1‧‧‧位址表格421B‧‧‧複製電路421C‧‧‧轉換電路421D‧‧‧搜尋電路421D1‧‧‧比對電路421D2‧‧‧及閘421E‧‧‧統計電路421F‧‧‧記錄電路422‧‧‧決定電路423‧‧‧讀取電路424‧‧‧停止點決定電路430‧‧‧快取記憶體900‧‧‧主要記憶體S701~S704‧‧‧流程步驟
圖一呈現一影像處理系統的局部功能方塊圖。
圖二(A)~圖二(E)係用以說明何謂預先讀取機制。
圖三呈現兩種讀取行為各自的欄位址選通延遲示意圖。
圖四為根據本發明之一實施例中的影像處理系統之功能方塊圖。
圖五(A)與圖五(C)呈現本發明提出之命中計算電路的兩種詳細實施例。圖五(B)呈現根據本發明之位址表格與搜尋電路的一種實施方式示意圖。
圖六呈現根據本發明之另一記憶體控制器的詳細實施例。
圖七為根據本發明之一實施例中的記憶體管理方法之流程圖。
須說明的是,本發明的圖式包含呈現多種彼此關聯之功能性模組的功能方塊圖。該等圖式並非細部電路圖,且其中的連接線僅用以表示信號流。功能性元件及/或程序間的多種互動關係不一定要透過直接的電性連結始能達成。此外,個別元件的功能不一定要如圖式中繪示的方式分配,且分散式的區塊不一定要以分散式的電子元件實現。
400‧‧‧影像處理系統
410‧‧‧影像處理電路
420‧‧‧記憶體控制器
421‧‧‧命中計算電路
422‧‧‧決定電路
423‧‧‧讀取電路
430‧‧‧快取記憶體
900‧‧‧主要記憶體
Claims (10)
- 一種影像處理系統,適用於存取一主要記憶體,包含: 一快取記憶體; 一影像處理電路;以及 一記憶體控制器,包含: 一命中計算電路,用以回應該影像處理電路針對一組目標影像資料發出之一資料需求,計算該組目標影像資料於該快取記憶體中之一快取命中率; 一決定電路,用以根據該快取命中率產生一預先讀取決定,指出是否應進行一預先讀取程序;以及 一讀取電路,用以根據該預先讀取決定,選擇性地至該主要記憶體執行該預先讀取程序。
- 如申請專利範圍第1項所述之影像處理系統,其中該決定電路根據該快取命中率顯示該組目標影像資料已全部儲存於該快取記憶體中而產生不進行該預先讀取程序之該預先讀取決定;該決定電路根據該快取命中率顯示該組目標影像資料未全部儲存於該快取記憶體中而產生進行該預先讀取程序之該預先讀取決定。
- 如申請專利範圍第1項所述之影像處理系統,其中該快取記憶體包含多個位址欄位與多個資料欄位,該命中計算電路包含: 一暫存器,用以暫存一位址表格; 一複製電路,用以將該多個位址欄位的內容複製至該位址表格,並保持該位址表格的內容與該多個位址欄位的內容一致; 一轉換電路,用以將該影像處理電路發出之該資料需求轉換為一組待查位址; 一搜尋電路,用以至該位址表格搜尋該組待查位址,據此產生一搜尋結果;以及 一統計電路,用以對該搜尋結果進行統計,以產生該快取命中率。
- 如申請專利範圍第1項所述之影像處理系統,其中該快取記憶體包含多個位址欄位與多個資料欄位,該命中計算電路包含: 一暫存器,用以暫存一位址表格; 一記錄電路,用以在該位址表格中記錄近期內存入該快取記憶體之多筆影像資料的多個位址; 一轉換電路,用以將該影像處理電路發出之該資料需求轉換為一組待查位址; 一搜尋電路,用以至該位址表格搜尋該組待查位址,據此產生一搜尋結果;以及 一統計電路,用以對該搜尋結果進行統計,以產生該快取命中率。
- 如申請專利範圍第1項所述之影像處理系統,其中該主要記憶體包含複數個記憶庫,且該讀取電路需至該主要記憶體中的N個記憶庫讀取該組目標影像資料未被儲存於該快取記憶體的部分,N為一正整數;該記憶體控制器進一步包含: 一停止點決定電路,用以決定該預先讀取程序之一停止點,提供給該讀取電路,其中該停止點設定被為:該讀取電路只在該N個記憶庫中讀取與該預先讀取程序相關之影像資料。
- 一種配合一影像處理系統之記憶體管理方法,該影像處理系統適用於存取一主要記憶體,該影像處理系統包含一快取記憶體以及一影像處理電路,該記憶體管理方法包含: (a)回應於該影像處理電路針對一組目標影像資料發出之一資料需求,計算該組目標影像資料於該快取記憶體中之一快取命中率; (b)根據該快取命中率產生一預先讀取決定,指出是否應進行一預先讀取程序;以及 (c)根據該預先讀取決定,選擇性地至該主要記憶體執行該預先讀取程序。
- 如申請專利範圍第6項所述之記憶體管理方法,其中步驟(b)包含: 若該快取命中率顯示該組目標影像資料已全部儲存於該快取記憶體中,令該預先讀取決定為不進行該預先讀取程序;以及 若該快取命中率顯示該組目標影像資料未全部儲存於該快取記憶體中,令該預先讀取決定為進行該預先讀取程序。
- 如申請專利範圍第6項所述之記憶體管理方法,其中該快取記憶體包含多個位址欄位與多個資料欄位,步驟(a)包含: 建立一位址表格; 將該多個位址欄位的內容複製至該位址表格,並保持該位址表格的內容與該多個位址欄位的內容一致; 將該影像處理電路發出之該資料需求轉換為一組待查位址; 至該位址表格搜尋該組待查位址,據此產生一搜尋結果;以及 對該搜尋結果進行統計,以產生該快取命中率。
- 如申請專利範圍第6項所述之記憶體管理方法,其中該快取記憶體包含多個位址欄位與多個資料欄位,步驟(a)包含: 建立一位址表格; 在該位址表格中記錄近期內存入該快取記憶體之多筆影像資料的多個位址; 將該影像處理電路發出之該資料需求轉換為一組待查位址; 至該位址表格搜尋該組待查位址,據此產生一搜尋結果;以及 對該搜尋結果進行統計,以產生該快取命中率。
- 如申請專利範圍第6項所述之記憶體管理方法,其中該主要記憶體包含複數個記憶庫;該記憶體管理方法進一步包含: 針對該組目標影像資料未被儲存於該快取記憶體的部分,至該主要記憶體中的N個記憶庫讀取影像資料,N為一正整數;以及 為步驟(c)決定該預先讀取程序之一停止點,其中該停止點被設定為:只在該N個記憶庫中讀取與該預先讀取程序相關之影像資料。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107119551A TW202001791A (zh) | 2018-06-06 | 2018-06-06 | 影像處理系統及其記憶體管理方法 |
US16/050,224 US20190378477A1 (en) | 2018-06-06 | 2018-07-31 | Image processing system and memory managing method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107119551A TW202001791A (zh) | 2018-06-06 | 2018-06-06 | 影像處理系統及其記憶體管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202001791A true TW202001791A (zh) | 2020-01-01 |
Family
ID=68763607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107119551A TW202001791A (zh) | 2018-06-06 | 2018-06-06 | 影像處理系統及其記憶體管理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20190378477A1 (zh) |
TW (1) | TW202001791A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11386013B2 (en) | 2020-06-16 | 2022-07-12 | Intel Corporation | Dynamic cache control mechanism |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6983356B2 (en) * | 2002-12-19 | 2006-01-03 | Intel Corporation | High performance memory device-state aware chipset prefetcher |
JP5569312B2 (ja) * | 2010-10-01 | 2014-08-13 | 富士通セミコンダクター株式会社 | メモリアクセス判定回路、メモリアクセス判定方法、キャッシュ制御装置および電子機器 |
US9632932B1 (en) * | 2013-06-21 | 2017-04-25 | Marvell International Ltd. | Backup-power-free cache memory system |
US9734073B2 (en) * | 2015-10-30 | 2017-08-15 | Qualcomm Incorporated | System and method for flash read cache with adaptive pre-fetch |
-
2018
- 2018-06-06 TW TW107119551A patent/TW202001791A/zh unknown
- 2018-07-31 US US16/050,224 patent/US20190378477A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20190378477A1 (en) | 2019-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8380933B2 (en) | Multiprocessor system including processor cores and a shared memory | |
US5535361A (en) | Cache block replacement scheme based on directory control bit set/reset and hit/miss basis in a multiheading multiprocessor environment | |
US5530941A (en) | System and method for prefetching data from a main computer memory into a cache memory | |
US20180039424A1 (en) | Method for accessing extended memory, device, and system | |
US9792221B2 (en) | System and method for improving performance of read/write operations from a persistent memory device | |
US9734059B2 (en) | Methods and apparatus for data cache way prediction based on classification as stack data | |
JP7340326B2 (ja) | メンテナンス動作の実行 | |
US6578065B1 (en) | Multi-threaded processing system and method for scheduling the execution of threads based on data received from a cache memory | |
US11301250B2 (en) | Data prefetching auxiliary circuit, data prefetching method, and microprocessor | |
US11921650B2 (en) | Dedicated cache-related block transfer in a memory system | |
CN110795363A (zh) | 一种存储介质的热页预测方法和页面调度方法 | |
US7356650B1 (en) | Cache apparatus and method for accesses lacking locality | |
JPH06180672A (ja) | 変換索引緩衝機構 | |
US20080301372A1 (en) | Memory access control apparatus and memory access control method | |
JP2010086496A (ja) | キャッシュメモリを備えるベクトル計算機システム、及びその動作方法 | |
US7246202B2 (en) | Cache controller, cache control method, and computer system | |
US7007135B2 (en) | Multi-level cache system with simplified miss/replacement control | |
CN109983538B (zh) | 存储地址转换 | |
TW202001791A (zh) | 影像處理系統及其記憶體管理方法 | |
US20020188805A1 (en) | Mechanism for implementing cache line fills | |
CN110660012A (zh) | 图像处理系统及其内存管理方法 | |
JP6786541B2 (ja) | 管理装置、情報処理装置、管理方法、およびプログラム | |
JP2019096307A (ja) | 複数のデータ・タイプのためのデータ・ストレージ | |
US20200167285A1 (en) | Prefetching data to reduce cache misses | |
JP6337570B2 (ja) | 演算処理装置及び演算処理装置の制御方法 |