TWI232374B - Methods and apparatus for controlling a cache memory - Google Patents

Methods and apparatus for controlling a cache memory Download PDF

Info

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
Application number
TW092117986A
Other languages
English (en)
Other versions
TW200402624A (en
Inventor
Hidetaka Magoshi
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Publication of TW200402624A publication Critical patent/TW200402624A/zh
Application granted granted Critical
Publication of TWI232374B publication Critical patent/TWI232374B/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
    • 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/0875Addressing 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
    • 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
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory 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 _ β -
TW092117986A 2002-07-01 2003-07-01 Methods and apparatus for controlling a cache memory TWI232374B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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