TWI232374B - Methods and apparatus for controlling a cache memory - Google Patents
Methods and apparatus for controlling a cache memory Download PDFInfo
- Publication number
- TWI232374B TWI232374B TW092117986A TW92117986A TWI232374B TW I232374 B TWI232374 B TW I232374B TW 092117986 A TW092117986 A TW 092117986A TW 92117986 A TW92117986 A TW 92117986A TW I232374 B TWI232374 B TW I232374B
- Authority
- TW
- Taiwan
- Prior art keywords
- boundary
- block
- region
- data
- blocks
- 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
-
- 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
- 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
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
1232374 玖、發明說明: 【發明所屬之技術領域】 本發明係關於用於控制快取記憶體之方法及裝置,更特 定言之,係關於將資料預取入快取記憶體之方法及裝置。 【先前技術】 近年來,由於前沿的電腦應用越來越複雜,並且對微處 理系統的要求不斷提高,因此要求電腦處理的資料輸出量 越來越快。圖形應用對微處理系統的要求極高,因為該類 應用需要在較短時段内進行極其大量的資料存取、資料計 算以及資料處理,以獲得理想的視覺效果。傳統的微處理 器具有極快的週期(即微處理器能夠處理資料之時間單 位),如兩奈秒,但是對儲存於主記憶體中的資料進行存取 所需的時間會大大超過該微處理器的週期。例如,利用動 態隨機存取記憶體(dynamic random access memory ; DRAM) 技術從一主記憶體獲得一位元組的資料所需的存取時間為 大約60奈秒。 為了克服DRAM記憶體存取時間較長的瓶頸問題,熟悉 此項技術者使用了快取記憶體。快取記憶體明顯快於 DRAM記憶體,並且可增加主記憶體提供資料儲存之功 能。例如,一L2快取記憶體可從外部與微處理器耦合,或 一 L1快取記憶體可從内部與微處理器耦合,該類記憶體均 明顯地快於使用DRAM技術實施的主記憶體。L2快取記憶 體之實施可使用(例如)靜態隨機存取記憶體(static random access memory ; SRAM)技術,其大約比DR AM技術快兩至 86133 1232374 三倍。L1快取記憶體甚至比L2快取記憶體還快。 由於快取記憶體的成本較高,因此其通常比主記憒體小 得多。因此’用傳統的演算法來決定什麼資料應該儲存於 快取記憶體之中。這些傳統演算法可依據(例如)「參考之局 部性」的理論概念,其所利用的事實為:在任一特定的時間 點係使用一極大的可執行程式之較小部分。因此,根據參 考之局部性的概念,在任何特定的時間點,全部可執行程 式中僅有小部分儲存於快取記憶體中。 利用參考之局部性的已知演算法的特性或用於控制快取 記憶體中資料儲存的任何其他概念非常多,無法在該說明 書中--列出。然而,可以說沒有任何既定演算法會適合 於所有的應用,因為各種應用進行資料處理的目的會有很 大區別。、. 在圖形應用中,(例如)主記憶體中會存在資料儲存的強 局部性,這些局部性係像素資料的座標在主記憶體中的函 數。更特定s之,在圖形應用中使用的主記憶體可在概念 上組織成一二維平面,其中一影像中各像素的資訊係儲存 於特足的X、Υ座標軸。在圖形應用中使用的主記憶體可進 步組織成複數個矩形區塊,其中各區塊包含複數個像素 的資訊。像素在一特定區塊中的定址可係高度線性的,即, 在一既定矩形區塊中對像素資訊的存取係高度有序的。 因此’在圖形應用中’控制快取記憶體的傳統演算法通 常規疋一既足的快取列來儲存整個矩形區塊的像素資訊。 發生快取命中(cache hit)(即記憶體存取請求一特定的資料 86133 1232374 位兀組可藉由對快取記憶體進行存取而獲得)時,該既定矩 形區塊中像素資訊的高線性度可能導致下一資料存取請求 的快取命中。另一方面,發生快取未中叫即記憶 =存取求-特足的資科位元组無法藉由對快取記憶體進 订存取而獲得)時,該矩形區塊(所需的資料位元組位於其中) 中所有的像素資訊從主記憶體讀取並儲存^快取記憶體 中。其缺點在於’這些傳統演算法無法充分地利用圖形庳 用中所用記憶體的線性及強局部性之特徵。實際上,這此 演算法導致大量不理想的快取未中,從而導致記憶體控制 的效率低、處理輸出量較少以及圖形影像的品質差。 因此’在本技術中需要新的方法與裝置來控制包括快取 記憶體在内的整個記憶體,這些方法與裝置利用圖形應用 中所用記憶體的線性及強局部性,以改進記憶體效率、增 加處理輸出量’以及改善圖形影像的品質。 【發明内容】 •依…、本發明的至少一個方面,用於控制記憶體的裝置包 " 劃々成複數個二維區塊的主記憶體,各區塊包含複 數個具有-或多個資料位元組的資料單元,並且各既定區 塊劃分成複數個區域’各區域包含一或多個資料單元,而 且該等區域中的至少部分區域與該既定區塊的各相鄰區塊 連接,位址解碼器,可操作其用於將位址接收至主記憶 中的貝料位7C組,並對該等位址進行解碼,以決定將各 資料位元組置於哪些區域;以及一預取位址產生器當位 址解碼^•將位址接收至各區域中的資料位元組的位址時,可 86133 1232374 操作違預取位址產生器以產生一請求,對快取記憶體中與 各區域栢連的區塊進行預取。 例如’該等區塊中的各區塊可包含至少其中一個··與一 左相鄰區塊共用的一左邊界;與一右相鄰區塊共用的一右 邊界;與一上相鄰區塊共用的一上邊界;以及與一下相鄰 區塊共用的一下邊界。此外,該等區塊中的各區塊可包含 至少其中一個:一左區域與該左相鄰區塊連接,並包含至 少一個沿該左邊界放置的資料單元;一右區域與該右相鄰 區塊連接,並包含至少一個沿該右邊界放置的資料單元; 一上區域與該上相鄰區塊連接,並包含至少一個沿該上邊 界放置的資料單元;以及一下區域與該下相鄰區塊連接, 並包含至少一個沿該下邊界放置的資料單元。 利用劃分:左區域至少部分可藉由從上邊界延伸至下邊 界的一左劃分線定義,該左區域包含位於左邊界與左劃分 線之間的資料單元的至少部分;右區域至少部分可藉由從 上邊界延伸至下邊界的一右劃分線定義,該右區域包含位 於右邊界與右劃分線之間的資料單元的至少部分;上區域 至少部分可藉由從左邊界延伸至右邊界的一上劃分線定 義’该上區域包含位於上邊界與上劃分線之間的資料單元 的至少部分;以及下區域至少部分可藉由從左邊界延伸至 右邊界的一下劃分線定義,該下區域包含位於下邊界與下 劃分線之間的資料單元的至少部分。 最好左、右、上及下劃分線對應該等位址的某些位元, 並且可操作位址解碼器用於對該等位址進行解碼,以根據 86133 1232374 這些位元決定各資科位元組係置於哪些區域。 例如,各區塊可包含一中央區域,其包含位於左、右、 上及下劃分線之間的一或多個資科單元;並且該t央區域 最好不要與任何相鄰區塊相連。最好,各區塊進一步包含 至V其中之一 ·一左上區域包含位於左邊界、上邊界、上 劃分線與左劃分線之間的資料單元(並且該左上區域未與 任何相鄰區塊連接);一左下區域包含位於左邊界、下邊 界、下劃分線與左劃分線之間的資料單元(並且該左下區域 未與任何相鄰區塊連接);一右上區域包含位於右邊界、上 邊界、上劃分線與右劃分線之間的資料單元(並且該右上區 域未與任何相鄰區塊連接);以及一右下區域包含位於右邊 界、下邊界、下劃分線與右劃分線之間的資料單元(並且該 右下區域未與任何相鄰區塊連接)。 依照本發明的至少進一步的方面,一種方法包括:將一 主記憶體劃分為複數個二維區塊,並且將各區塊劃分成複 數個包含一或多個資料位元組的資料單元;將該主記憶體 的各區塊劃分成複數個區域,各區域包含_或多個資料單 元;使每-區塊各自區域中的至少部分區域與其他區塊相 連,以及當該區塊任一相連區域中的任一資料單元定址 時,將其他區塊之一的至,k _却八益甘、 的至/騎預取入-快取記憶體。 最好各區塊至少部分區域中的各區域與—個相鄰區塊相 連。此外’各區塊的至少—個區域最好沿著該既定區塊與 連接的相鄰區塊之間的一邊界放置。 本文結合隨附圖式對本發明進行說明後,熟悉此項技術 86133 -10- 1232374 者會明白本發明的其他目的、功能及優點等。 【實施方式】 參考圖式,其中相同的數字表示相同的元件;圖1顯示依 照本發明適用於控制一記憶體之裝置及/或一方法的各方 面。為簡潔與清楚起見,本文中參考及描述的圖1之方塊圖 係顯示一裝置I 00,然而,應明白的係,該描述易應用於具 有相同作用之方法的各方面。裝置1〇〇最好包含一處理器 102、一位址暫存器104、一位址解碼器1〇6、一預取位址產 生器108、一記憶體控制器11〇、一主記憶體n2以及一快取 記憶體114。 該處理器102可使用任何能夠向主記憶體及/或快取記憶 體114請求資料的已知技術,並且處理資料以獲得一理想結 果。例如,處理器102可使用任何能夠執行軟體及/或韌體 的微處理器,包括標準微處理器、分散式微處理器等。例 如,處理器102可為圖形處理器,其能夠請求及處理資料, 諸如像素資料包括灰階標度資訊、色彩資訊、形態資料、 多邊形資訊、視訊訊框資訊等。 處理器102最好提供一資料存取請求(諸如一記憶體位址) 至位址暫存器104及記憶體控制器110。最好操作位址解碼 器106及預取位址產生器108以提供進一步的資訊至記憶體 控制器110,用以在管理儲存於快取記憶體1丨4中的資訊方 面,獲得與主記憶體112相比理想的結果。為了更全面地說 明裝置100各功能方塊的互動作用,進一步參考圖2至圖5。 圖2係顯示依照圖1所示之功能方塊執行及/或實施的某 86133 • 11 - 1232374 些仃動/功能之流程圖。行動200,最好將主記憶體U2(圖〇 釗分成複數個二維資料區塊。應理解主記憶體丨丨2的劃分在 很大程度上係·一概念試驗,其中該主記憶體丨12無需以物理 万法劃分;相反,與藉由裝置1〇〇的各種功能方塊執行的資 料儲存及資料存取相比,該主記憶體丨12的劃分係功能上 的。 更特足言之,並且參考圖3,主記憶體Π2最好使用任何 已知的技術來實施,諸如DRAM,其包含複數個資料儲存 位置112A。為說明起見,各資料位置丨12A代表一個資料位 元組’其中各位元組包含(例如)8位元、16位元、32位元、 64位元等。該等資料儲存位置U2A係以其十六進位位址來 標 1己,即 0000、0001、0002、· 〇〇3F、 023F。為滿足該 範例,圖3所示之主記憶體112包含U24個資料儲存位置 112A,其中各位置Π2Α能夠儲存一個資料位元組。應明 白,孩主記憶體112的給定大小僅為範例,並非限制本發明 之範圍。 再回到圖2的行動200,其中將主記憶體112劃分成二維資 料區塊120 ;並且進一步參考圖3,該主記憶體112的資料儲 存位置112A最好係組織成一資料區塊12〇,其包含(例如)儲 存於位址0000至003F的全部像素資訊(即資料位元組)。為 說明起見,進一步假設描述一個影像像素所必需的資訊需 要四個資料位元組(如一個位元組用於灰階、一個位元組用 於色彩等)。因此,在該範例中,圖3所示之記憶體i丨2能夠 儲存關於144個像素的資訊。各資料區塊12〇包含儲存於主 86133 •12- 1232374 記憶體Π 2中由144個像素組成的一子集之資訊。各資料區 塊120最好為一二維矩形區塊,其中關於各像素子集的資訊 置於一 X、Υ笛卡而座標系統上。 參考圖2及圖3,在行動202 (圖2),各資料區塊12〇最好劃 分成複數個資料單元122 (圖3),其中各資料單元122包含各 像素的資訊。與上述範例一致,圖3所示之各資料單元122 包含四個資料位元組。在資料單元122依照本發明可組織的 多種方式中,該資料單元122最好從左至右、從上至下地依 次組織,從而依照一鋸齒狀圖案建立一線性序列。這樣, 在下列的位址序列中資料流位元組排列為:〇〇〇〇、⑻〇1、 0002、0003 (在第一資料單元 122 中)、0004、〇〇〇5、〇〇〇6、 0007 (在下一資料單元122中)等。後續資料單元122中的後 續資料位元組從左至右(X方向)、從上至下(γ方向)貫穿資 料區塊120。 如圖4所示,關於主記憶體112中其他像素群組的資訊最 好進一步劃分成資料區塊120,各資料區塊12〇置於二維χ、 γ柵格。與上述範例一致,這樣會產生九個資料區塊12〇, 其中包括中央區塊(未標記)、左上資料區塊、上資料區塊、 右上資料區塊、左資料區塊、右資料區塊、左下資料區塊、 下資料區塊以及右下資料區塊。假設左上資料區塊12〇 (即 圖3所示之資料區塊120)代表位址0000至〇〇3F中儲存的資 料位元組的資訊;則圖4所示之中央區塊包含主記憶體j 12 中儲存於位址010 0至013 F的像素資訊。 假叹$己憶體控制器11 〇採用的演算法在快取記憶體114中 86133 -13 - 1232374 規定一既定快取列來儲存整個資料區塊120的像素資訊,當 處理器102請求儲存於(例如)位址01 μ (圖4的中央區塊内) 的負料位元組,而快取記憶體11 4未包含與該中央區塊相連 的像素資訊時,會發生快取未中。因此,記憶體控制器^ ^ 〇 最好從主記憶體112讀取位址oioo至013F儲存的像素資 訊’並將相同的像素資訊儲存於快取記憶體114中。 與上述範例一致,下一資料存取請求最好為記憶體位置 0115中儲存的;貝料位元組,當其儲存於快取記憶體11 4後, 引起快取命中。此外,假設處理器1〇2已請求了位址〇114至 0117 (即相同資料單元122中的位址)儲存的所有資料位元 組,則下-料存取請求可能在或可能不纟中央資料區塊 120中。實際上,下一資料請求可為一相鄰資料區塊I]。中 的資料位元組,諸如左上資料區塊12〇、上資料區塊12〇、 右上資料區塊丨20等。事實上,如果下一資料位元組位於一 相鄰資料區塊120中,而該資料區塊事先並未儲存於快取記 憶體114中,則會發生快取未中。 一本發明設計提高快取命中率之方法及裝置,其係根據不 同資料區塊中的資料請求將—或多個相鄰資料區塊⑽預 取入快取記憶體m中。為獲得該結果,在行動2〜圖^ 中最好將各會料區塊12〇劃分成複數個區域,其 包含一或多個資料單元122。 域 士參考圖5 ’ (例如)中央資料區塊12〇被分成九個區域,標 口己為區域1至區域9。雖炊 一 v ^ ”、、圖L、顯不中央資料區塊120被劃 S成多個區域,本發明 π _汁了將任何數量的資料區塊12〇劃 86133 -14- 1232374 刀成夕個區域’並且各資料區塊1 2〇最好均能如此劃分。在 及範例中,區域1、3、7及9各包含一個資料單元122 ;區域 2 4 、6及8各包含兩個資料單元122;而區域$包含四個資 料單元122。 仃動206 (圖2)中,各資料區塊12〇中至少部分區域中的各 區域(諸如圖5所示之中央資料區塊12〇)與相鄰於該中央資 料區塊120的資料區塊12〇之一相連。例如,依照本發明之 一個方面’區域2最好與上資料區塊12〇相連;區域4最好與 左資料區塊120相連;區域6最好與右資料區塊120相連;而 區域8最好與下資料區塊120相連。中央資料區塊120的區域 1、3、7及9最妤不要與任何相鄰資料區塊12〇相連。同樣, 中央資料區塊120的區域5最好不要與任何相鄰資料區塊 120相連。下面將詳細說明該連接的合理之處(及/或不足之 處)。 行動208 (圖2)中,處理器102最好產生一存取請求(如一 或多個資料位元組之位址)。如上所述,該資料位元組位於 一資料區塊120的一區域中的一資料單元122内。最好將該 存取請求提供至位址暫存器104及記憶體控制器11 〇 (行動 2〇8)。記憶體控制器丨丨〇最好決定該存取請求是否與複數個 快取卷標(其與該快取記憶體114的快取列相連)之一匹配。 如果所得結果為快取命中(即,如果存取請求與快取記憶體 114中儲存的資料匹配),則從快取記憶體114讀取所需的資 料位元組,並將其提供至處理器102 (及/或任何其他適當的 元件或步驟)。 86133 -15- 1232374 依照本叙明之一或多個進一步的方面,位址暫存器⑺4 最好提供存取請求(即所需資料位元組的位址)至位址解碼 器106。最好可操作該位址解碼器1〇6解碼該存取請求(即對 所需資料位元組的位址進行解碼),以決定將資料位元組置 於哪個區域中(、行動2 1 0)。例如,在位址解碼器丨〇6決定所需 的資料位元組置於哪個區域中時,最好可操作其對位址的 某些位元進行分析。現在參考圖6進行詳細說明。如圖所 示,中央資料區塊120劃分成九個區域,各區域的界定係藉 由一左邊界130(與相鄰的左資料區塊12〇共用)、一右邊界 132(與相鄰的右資料區塊120共用)、一上邊界丨34(與相鄰的 上資料區塊120共用)以及一下邊界136(與相鄰的下資料區 塊120共用)。各區域的界定進一步係藉由從上邊界Π4延伸 至下邊界136的左劃分線140、從上邊界134延伸至下邊界 136的右劃分線142、從左邊界130延伸至右邊界132的上劃 分線144以及也從左邊界130延伸至右邊界132的下劃分線 146。 根據該等邊界及劃分線之範例,區域1 (左上區域)包含一 單一的資料單元122,且位於左邊界130、上邊界134、上劃 分線144及左劃分線140之間。區域2 (上區域)包含兩個資科 單元122,其位於上邊界134與上劃分線144之間。區域3 (右 上區域)包含一單一的資料單元122,且位於右邊界132、上 邊界134、上劃分線144及右劃分線142之間。區域4 (左區域) 包含兩個資料單元1 22,且位於左邊界1 30與左劃分線140之 間。區域5 (中央區域)包含四個資料單元122,且位於左、 86133 •16- 1232374 右、上及下劃分線14〇、142、144與146之間。區域6 (右區 域)包含兩個資料單元122,且位於右邊界132與右劃分線 142之間。區域7 (左下區域)包含一單一的資料單元122, 且位於左邊界130、下邊界136、下劃分線146及左劃分線140 之間。區域8 (下區域)包含兩個資料單元丨22,且位於下邊 界136與下劃分線146之間。最後,區域9(右下區域)包含一 單一的資料單元122,且位於右邊界132、下邊界136、下劃 分線146及右劃分線142之間。 與上述範例一致’左劃分線140、右劃分線142、上劃分 線144及下劃分線146可藉由儲存於中央資料區塊12〇 (及延 伸至任一資料區塊120)中的資料位元組位址的某些位元來 界定。實際上,左劃分線140與右劃分線142可藉由(如解 碼及/或確定)存取請求位址的第三及第二位元來界定。同 樣,上劃分線144與下劃分線146係藉由存取請求位址的第 五及第四位元來界定。熟悉此項技術者會明白,用於界定 或解碼各區域周邊的位址的特定位元取決於資料區塊12〇 的大小、資料單元1 22的大小、位元組大小以及劃分線與邊 界的位置及軌跡。 與上述範例一致,位址解碼器106最好對存取請求位址的 位元5、4、3及2進行分析,以決定將所需的資料位元組置 於哪個區域中(圖2行動210)。行動212中,決定偵測區域是 否與一相鄰資料區塊12 0相連。最好可操作預取位址產生器 108根據行動206中所作的連接來做出決定。例如,如果存 取請求位址為011C (圖5),則位址解碼器1〇6最好對該存取 86133 -17- 1232374 μ求位址的位元進行分析,並且決定需要置於區域6令的資 料位70組。預取位址產生器1 08最妤接收該資訊,並且決定 區域6是否與一相鄰資料區塊120相連。與上述範例一致, 區域6與右^科區塊^ 2 〇相連。因此,預取位址產生器^ 8最 妤產生一請求,從主記憶體Π2至快取記憶體11 4對右資料 區塊120進行預取(行動214)。如果由位址解碼器ι〇6決定的 區域未與一相鄭資料區塊120相連(行動2 12),則該流程最好 向後轉移至行動208,其中從處理器102接收下一存取請求。 參考圖5,應注意根據某些假設,區域2、4、6及8係分別 與上資料區塊120、左資料區塊12〇、右資料區塊12〇及下資 料區塊120相連。例如,假設目前的存取請求為位於中央資 料區塊120的區域2中的一資料位元組,則下一存取請求在 上資料區塊120中的可能性較高。相對於左資料區塊ι2〇、 右資料區塊120以及下資料區塊12〇,對區域4、區域6以及 區域8進行同樣地假設。 此外,假設目前的存取請求為位於區域5中的一資料位元 組,則下一存取請求不可能在中央資料區塊12〇以外。至於 區域卜3、7及9,雖然下一存取請求可能會在一相鄰資料 區塊120中,假設該相鄰資料區塊ι2〇為左資料區塊、左上 資料區塊或下資料區塊的可能性相同。因此,(例如)區域^ 與這些相鄰資料區塊120中的一既定區塊之連接並非一定 會導致較高的快取命中率。當然,根據不同的緊急1青況疋 區域1、3、7及/或區域9與一或多個相鄰資料區塊^的°相 連證明係有用的,因此依照本發明進〜半、 艾的万面可對此加 86133 -18- 1232374 以考慮。 圖5及圖6所示之特定的區域組態並非本發明所必需。實 際上’圖7A至7B進一步顯示其他的區域組態,同樣這些區 域組態僅為範例,並非用於限制本發明之範圍。 依照本發明的至少一個進一步的方面,用於控制主記憶 體112及快取記憶體114的方法及裝置可藉由使用諸如圖工 所示之適當硬體而獲得。此類硬體的實施可使用任何已知 的技術(諸如標準數位電路)、可用於執行軟體及/或韌體程 式的任何已知的處理器、一或多個可程式化數位裝置或系 統’諸如可程式唯讀記憶體(pr〇graminable read 〇nly memories ; PROMs)、可程式卩車列邏輯裝置(pr〇grammaMe array logic devices ; PALs)等。此外,儘管如圖丨所示,裝置 100係劃分成某些功能區塊,這些區塊可以單個電路及/或 組合成一或多個功能單元的形式來實施。此外,本發明可 以軟體及/或韌體程式的方式實施,其可儲存於一適當的儲 存媒體(諸如軟碟、記憶體晶片等”便於攜帶及/或分發。 其優點在於,本文中說明及申請的用於控制一記憶體之 方法及裝置利用在(例如)圖形應用中所用記憶體的線性及 強局部性之相關特徵。從而地增加快取命中效果,並 因此提南記憶體效率、增加處理輸出量以及改善圖形影像 的品質。 雖然本發明已參考特定具體實施例加以說明,應明白該 等具體實施例僅係用於說明本發明之原理及應用。因此應 理解’在不背離由隨附中請專利㈣所定義的本發明之精 86133 -19- 1232374 神與範疇,即可對上述具體實施例進行各種變更,並進行 其他的配置設計。 【圖式簡單說明】 為了說明本發明,所示之圖式均為本發明之較佳範例, 但應明白本發明並非限制於如圖所示之精確配置及機構。 圖1係顯示依照本發明的一或多個方面,適用於控制一記 憶體之裝置的各方面(及/或方法的各方面)之方塊圖; 圖2係顯示依照本發明的一或多個方面(如圖丨中所示之 方面)執行及/或實施某些行動/功能之流程圖; 圖3係顯示可與圖1所示之裝置(及/或方法方面)一起使用 的 5己憶體的某些特性之概念方塊圖; 圖4顯示圖3所示記憶體的更多概念細節; 圖5也顯示圖3所示記憶體的更多概念細節; 圖6顯示圖3所示記憶體的一資料區塊某些方面的更多細 節;以及 圖7 A至7B顯示圖5所示細節的替代性細節,其係關於依 照本發明的一或多個方面控制及/或實施一記憶體。 【圖式代表符號說明】 100 裝置 102 處理器 104 位址暫存器 106 位址解碼器 108 預取位址產生器 110 記憶體控制器 86133 -20 - 主記憶體 快取記憶體 資料區塊 資料單元 左邊界 右邊界 上邊界 T邊界 左劃分線 右劃分線 上劃分線 下劃分線 資料儲存位置 -21-
Claims (1)
1232^头117986號專利申請案 —--------------—( 中文申請專利範圍替換本&年1月)|ι|正背.換頁丨 拾、申請專利範園: 广年94.J| 28日j 1. 一種用於控制一記憶體之裝置,其包含: 一劃分成複數個二維區塊的主記憶體,其中各區塊包 含複數個資料單S,各資料單元中包含—或多個資料位 元組,此外各既定區塊劃分成複數個區域,各區域包含 -或多個資料單元,並且該等區域中的至少部分與相: 於该既定區塊的一單個區塊相連; 一位址解碼器,可操作其接收該主記憶體中的該等資 料位元組的位址,並對該等位址進行解碼,以決定該等 各自的資料位元組置於哪些區域;以及 一預取位址產生器,在該位址解碼器接收位於該等各 自區域中的資料位元組的位址時,可操作該預取位址產 生器產生一請求,以預取該等在一快取記憶體中與各區 域相連的區塊。 2·如申請專利範圍第1項之裝置,其中: 該等區塊中的各區塊包含至少其中一個:一與一左相 鄰區塊共用的左邊界;一與一右相鄰區塊共用的右邊 界’ 一與一上相鄰區塊共用的上邊界,以及一與一下相 鄰區塊共用的下邊界;以及 該等區塊中的各區塊包含至少其中一個:一左區域與 該左相鄰區塊連接,並包含至少一個沿該左邊界放置的 資料單元,一右區域與該右相鄰區塊連接,並包含至少 一個沿該右邊界放置的資料單元,一上區域與該上相鄰 區塊連接,並包含至少一個沿該上邊界放置的資料單 86133-940128.doc - 1 - 函函.4.::. 元,以及一下區域與該下相鄰區塊連接,並包含至少一 個沿該下邊界放置的資料單元。 3. 如申請專利範圍第2項之裝置,其中·· 該左區域至少部分係藉由從該上邊界延伸至該下邊界 的一左劃分線定義,該左區域包含位於該左邊界與該左 劃分線之間的該等資料單元的至少部分; 該右區域至少部分係藉由從該上邊界延伸至該下邊界 的,右劃分線定義,該右區域包含位於該右邊界與該右 劃分線之間的該等資料單元的至少部分; 該上區域至少部分係藉由從該左邊界延伸至該右邊界 的一上劃分線定義,該上區域包含位於該上邊界與該上 劃分線之間的該等資料單元的至少部分;以及 該下區域至少部分係藉由從該左邊界延伸至該右邊界 的一下劃分線定義,該下區域包含位於該下邊界與該下 劃分線之間的該等資料單元的至少部分。 4. 如申請專利範圍第3項之裝置,其中該等左、右、上及下 劃分線對應於該等位址的某些位元,並且該位址解碼哭 可用於將該等位址進行解碼,以根據該等某些位元決定 該等各自的資料位元組係置於哪些區域。 5·如申請專利範圍第3項之裝置,其中:各區塊包含一中央 區域,其包含該等一或多個位於該等左、右、上及下气 分線之間的資料單元,並且該中央區域未與任何相鄰區 塊連接。 @ ,其中:各區塊包含至少其 6·如申請專利範圍第3項之裝置 86133-940128.doc
陶 2374 ,.: 年 Μ
一左上區域包含位於該左邊界、該上邊界、該上劃分 線與該左劃分線之間的該等資料單元,其中該左上區域 未與任何相鄰區塊連接; 一左下區域包含位於該左邊界、該下邊界、該下劃分 線與該左劃分線之間的該等資料單元,其中該左下區域 未與任何相鄰區塊連接; 一右上區域包含位於該右邊界、該上邊界、該上劃分 線與該右劃分線之間的該等資料單元,其中該右上區域 未與任何相鄰區塊連接;以及 一右下區域包含位於該右邊界、該下邊界、該下劃分 線與該右劃分線之間的該等資料單元,其中該右下區域 未與任何相鄰區塊連接。 一種用於控制一記憶體之方法,其包含·· 將一主記憶體劃分成複數個二維區塊,並將各區塊劃 分成複數個包含一或多個資料位元組的資料單元; 將孩王記憶體的各區塊劃分成複數個區域,各區域包 含一或多個該等資料單元; 將孩等區塊中至少一個區塊的該等區域中的至少一個 區域與该等區塊中的另一區塊相連;以及 當該等區域中至少一個區域内的該等資料單元之一的 一或多個孩等資料位元組定址被使用時,將該另一區塊 的至少一部分預取入一快取記憶體中。 記憶體之方法,其包含: 8 · —種用於控制一 86133-940128.doc 「K32374- !, .... ; ', :" . 卜, '.' , 、-、ί ' ί‘*ί : 將一主記憶體劃分成複數個二維區塊,並將各區塊劃 分成複數個包含一或多個資料位元組的資料單元; 將該主記憶體的各區塊劃分成複數個區域,各區域包 含一或多個該等資料單元; 將各區塊的各自該等區域中的至少部分區域與該等區 塊的其他區塊相連;以及 當該區塊的該等相連區域中任一區域内的該等資料單 元之一定址被使用時,將其他區塊之一的至少一部分預 取入一快取記憶體中。 9.如申请專利範圍第8項之方法,其中各區塊的該等至少部 刀區域中的各區域與一相鄰區塊連接。 从如申請專利範圍第9項之方法,其中各區塊的至少一區域 係沿著該既定區塊與連接的相鄰區塊之間的一邊界放 置。 11. 12. 如:請專利範圍第1G項之方法,其中各區塊包含沿著該 既疋區塊與各連接的相鄰區塊的—邊界放置的—各 區域。 一種用於控制一記憶體之方法,其包含·· 二維矩形區塊,各區塊沿 中的至少一個區塊相鄰, 或多個資料位元組的資料 知主記憶體劃分成複數個 著一共用邊界與該等其他區塊 並且各區塊包含複數個具有一 卓, 1232374 將各既定區塊的各自該等區域中的至少部分區域與該 既定區塊的各自其他該等相鄰區塊相連;以及 當該區塊的該等相連區域中任一區域内的該等資料單 元之一定址被使用時,將該等其他區塊的一既定區塊預 取入一快取記憶體中。 13·如申請專利範圍第12項之方法,其中·· 該等區塊中的各區塊包含至少其中一個··一與一左相 鄰區塊共用的左邊界,一與一右相鄰區塊共用的右邊 界,一與一上相鄰區塊共用的上邊界,以及一與一下相 鄰區塊共用的下邊界;以及 該等區塊中的各區塊包含至少其中一個:一左區域與 該左相鄰區塊連接,並包含至少一個沿該左邊界放置的 資料單元,一右區域與該右相鄰區塊連接,並包含至少 一個沿該右邊界放置的資料單元,一上區域與該上相鄰 區塊連接,並包含至少一個沿該上邊界放置的資料單 元,以及一下區域與該下相鄰區塊連接,並包含至少一 個沿該下邊界放置的資料單元。 14·如申請專利範圍第13項之方法,其中: 為左區域至少部分係精由從該上邊界延伸至該下邊界 的一左劃分線定義,該左區域包含位於該左邊界與該左 劃分線之間的該等資料單元的至少部分; 該右區域至少部分係藉由從該上邊界延伸至該下邊界 的一右劃分線定義,該右區域包含位於該右邊界與兮右 劃分線之間的該等資料單元的至少部分; 86133-940128.doc - 5 · 1232374 ?系上區域至少部分係藉由從該左邊界延伸至該右邊界 的一上劃分線足義,該上區域包含位於該上邊界與該上 劃分線之間的該等資料單元的至少部分;以及 该下區域至少部分係藉由從該左邊界延伸至該右邊界 的一下劃分線定義,該下區域包含位於該下邊界與該下 劃分線之間的該等資料單元的至少部分。 15·如申請專利範圍第14項之方法,其中··各區塊包含一中 央區域,其包含位於該等左、右、上及下劃分線之間的 孩等一或多個資料單元,並且該中央區域未與任何相鄰 區塊連接。 16·如申請專利範圍第14項之方法,其中:各區塊包含至少 其中一個: 一左上區域包含位於該左邊界、該上邊界、上下劃分 線與該左劃分線之間的該等資料單元;並且該左上區域 未與任何相鄰區塊連接; 一左下區域包含位於該左邊界、該下邊界、該下劃分 線與該左劃分線之間的該等資料單元;並且該左下區域 未與任何相鄰區塊連接; 一右上區域包含位於該右邊界、該上邊界、該上劃分 線與該右劃分線之間的該等資料單元;並且該右上區域 未與任何相鄰區塊連接;以及 一右下區域包含位於該右邊界、該下邊界、該下劃分 線與該右劃分線之間的該等資料單元;並且該右下區域 未與任何相鄰區塊連接。 86133-940l28.doc _ β -
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/187,072 US6816946B2 (en) | 2002-07-01 | 2002-07-01 | Methods and apparatus for controlling a cache memory |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200402624A TW200402624A (en) | 2004-02-16 |
TWI232374B true TWI232374B (en) | 2005-05-11 |
Family
ID=29779984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW092117986A TWI232374B (en) | 2002-07-01 | 2003-07-01 | Methods and apparatus for controlling a cache memory |
Country Status (7)
Country | Link |
---|---|
US (1) | US6816946B2 (zh) |
EP (1) | EP1518178B1 (zh) |
JP (1) | JP4005083B2 (zh) |
KR (1) | KR100688875B1 (zh) |
AU (1) | AU2003243005A1 (zh) |
TW (1) | TWI232374B (zh) |
WO (1) | WO2004003753A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7493450B2 (en) * | 2003-04-14 | 2009-02-17 | Hewlett-Packard Development Company, L.P. | Method of triggering read cache pre-fetch to increase host read throughput |
JP2005313627A (ja) * | 2004-03-31 | 2005-11-10 | Seiko Epson Corp | 液体噴射装置及び液体噴射装置の液体吐出方法 |
US7877546B2 (en) * | 2004-08-09 | 2011-01-25 | International Business Machines Corporation | System, method, and circuit for retrieving data in data blocks into a cache memory from a mass data storage device based on a triggering event |
US9026744B2 (en) | 2005-03-23 | 2015-05-05 | Qualcomm Incorporated | Enforcing strongly-ordered requests in a weakly-ordered processing |
KR100654462B1 (ko) * | 2005-08-24 | 2006-12-06 | 삼성전자주식회사 | 캐쉬 메모리를 메모리 블록으로 나누어 파일의 데이터를저장하는 캐쉬 방법 및 캐쉬 시스템 |
US8195889B2 (en) * | 2009-03-25 | 2012-06-05 | Advanced Micro Devices, Inc. | Hybrid region CAM for region prefetcher and methods thereof |
US8988531B2 (en) | 2010-07-08 | 2015-03-24 | Texas Instruments Incorporated | Method and apparatus for sub-picture based raster scanning coding order |
JP5708072B2 (ja) * | 2011-03-14 | 2015-04-30 | 大日本印刷株式会社 | 画像変形装置および命令付加装置 |
US8560719B2 (en) * | 2011-09-14 | 2013-10-15 | Mobitv, Inc. | Fragment server directed device fragment caching |
KR20130081526A (ko) | 2012-01-09 | 2013-07-17 | 삼성전자주식회사 | 저장 장치, 그것을 포함하는 전자 장치, 및 그것의 데이터 관리 방법들 |
US20140184630A1 (en) | 2012-12-27 | 2014-07-03 | Scott A. Krig | Optimizing image memory access |
WO2014143036A1 (en) | 2013-03-15 | 2014-09-18 | Intel Corporation | Method for pinning data in large cache in multi-level memory system |
JP6127964B2 (ja) * | 2013-12-26 | 2017-05-17 | ソニー株式会社 | 信号切換装置および信号切換装置の動作制御方法 |
WO2015120825A1 (en) * | 2014-02-17 | 2015-08-20 | Mediatek Inc. | Data access methods and data access devices utilizing the same |
US9788078B2 (en) * | 2014-03-25 | 2017-10-10 | Samsung Electronics Co., Ltd. | Enhanced distortion signaling for MMT assets and ISOBMFF with improved MMT QoS descriptor having multiple QoE operating points |
WO2019127487A1 (zh) | 2017-12-29 | 2019-07-04 | 华为技术有限公司 | 一种数据预取方法、装置和存储设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1995012165A1 (en) * | 1993-10-22 | 1995-05-04 | Gestalt Technologies, Incorporated | Distributed management in a partitioned memory system |
US5752037A (en) * | 1996-04-26 | 1998-05-12 | Hewlett-Packard Company | Method of prefetching data for references with multiple stride directions |
US6629188B1 (en) * | 2000-11-13 | 2003-09-30 | Nvidia Corporation | Circuit and method for prefetching data for a texture cache |
JP4093741B2 (ja) * | 2001-10-03 | 2008-06-04 | シャープ株式会社 | 外部メモリ制御装置およびそれを含んだデータ駆動型情報処理装置 |
US20030154349A1 (en) * | 2002-01-24 | 2003-08-14 | Berg Stefan G. | Program-directed cache prefetching for media processors |
US6760818B2 (en) * | 2002-05-01 | 2004-07-06 | Koninklijke Philips Electronics N.V. | Memory region based data pre-fetching |
-
2002
- 2002-07-01 US US10/187,072 patent/US6816946B2/en not_active Expired - Lifetime
-
2003
- 2003-06-24 KR KR1020047020902A patent/KR100688875B1/ko active IP Right Grant
- 2003-06-24 AU AU2003243005A patent/AU2003243005A1/en not_active Abandoned
- 2003-06-24 EP EP03761780.0A patent/EP1518178B1/en not_active Expired - Lifetime
- 2003-06-24 JP JP2004517262A patent/JP4005083B2/ja not_active Expired - Fee Related
- 2003-06-24 WO PCT/JP2003/007959 patent/WO2004003753A1/en active Application Filing
- 2003-07-01 TW TW092117986A patent/TWI232374B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR100688875B1 (ko) | 2007-03-02 |
TW200402624A (en) | 2004-02-16 |
JP2005531847A (ja) | 2005-10-20 |
US6816946B2 (en) | 2004-11-09 |
JP4005083B2 (ja) | 2007-11-07 |
EP1518178B1 (en) | 2019-01-23 |
WO2004003753A1 (en) | 2004-01-08 |
EP1518178A1 (en) | 2005-03-30 |
AU2003243005A1 (en) | 2004-01-19 |
KR20050024371A (ko) | 2005-03-10 |
US20040003178A1 (en) | 2004-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI232374B (en) | Methods and apparatus for controlling a cache memory | |
US10725663B2 (en) | Data management scheme in virtualized hyperscale environments | |
US10310973B2 (en) | Efficient memory virtualization in multi-threaded processing units | |
US10169091B2 (en) | Efficient memory virtualization in multi-threaded processing units | |
US8627041B2 (en) | Efficient line and page organization for compression status bit caching | |
TWI529626B (zh) | 在複數執行緒處理單元中的效率式記憶體虛擬化 | |
US9952977B2 (en) | Cache operations and policies for a multi-threaded client | |
US10032246B2 (en) | Approach to caching decoded texture data with variable dimensions | |
US6674443B1 (en) | Memory system for accelerating graphics operations within an electronic device | |
US20110072235A1 (en) | Efficient memory translator with variable size cache line coverage | |
US20140075125A1 (en) | System cache with cache hint control | |
US20120054750A1 (en) | Power-optimized interrupt delivery | |
US20130268715A1 (en) | Dynamic bank mode addressing for memory access | |
TW201423600A (zh) | 用於在多緒處理單元中改善性能之技術 | |
US9626216B2 (en) | Graphics processing unit sharing between many applications | |
US20140089600A1 (en) | System cache with data pending state | |
CN108139994B (zh) | 内存访问方法及内存控制器 | |
US20140244920A1 (en) | Scheme to escalate requests with address conflicts | |
US20090100213A1 (en) | Systems and Methods for Managing Memory Core Surface | |
US9396122B2 (en) | Cache allocation scheme optimized for browsing applications | |
US10705977B2 (en) | Method of dirty cache line eviction | |
US9934145B2 (en) | Organizing memory to optimize memory accesses of compressed data | |
US10019358B2 (en) | Bank address remapping to load balance memory traffic among banks of memory | |
CN107250980A (zh) | 具有图形和系统存储器冲突检查的计算方法和设备 | |
US10402323B2 (en) | Organizing memory to optimize memory accesses of compressed data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MK4A | Expiration of patent term of an invention patent |