利用可編程哈希地址的控制緩存訪問的方法及相關緩存控制器的制造方法
【技術領域】
[0001] 本發明所公開的實施例設及訪問緩沖數據(例如緩存數據),尤其設及利用可編程 哈希地址化ashing acMress)的控制緩存訪問的方法及相關緩存控制器。
【背景技術】
[0002] 在現今的系統中,當與處理數據的時間相比時,將數據帶入處理器的時間顯得非 常的長。因此,在處理器輸入處形成了瓶頸。緩存通過向處理器來回移動信息從而幫助減少 了時間。當緩存包含需求信息時,該事務被稱為緩存命中。當緩存不包含所需信息時,該事 務被稱為緩存缺失。通常,命中率為緩存的關鍵性能指標。如何提高命中率成為本領域的問 題。
[0003] 通常,緩存可W是完全關聯緩存,直接映射緩存,或組關聯緩存。所述組關聯緩存 是介于完全關聯緩存和直接映射緩存之間的混合式,并可W被認為是介于完全關聯緩存和 直接映射緩存的硬件復雜性/延時之間的合理折衷。無論采用哪種緩存設計,都需要提高命 中率。例如,當緩存大小為4KB(千字節)時,所述緩存用于由32bpp(位/像素)的一個1024X 768圖像中預裝載一個32X32圖像。在線性地址表面(圖像)中,由當前掃描線中的像素(X, Y)到下一掃描線中的像素(Χ,Υ+1)的地址偏移等于圖像中的圖像間距的字節數。由于所述 1024 X 768圖像的圖像間距為1024,則圖像間距的字節數為4邸。考慮所述1024 X 768圖像被 分為多個箱(bin)且W逐箱(bin-的-bin)方式進行處理的情況,所述每個箱為一個32X32 圖像。圖像間距的字節數等于緩存大小,即,掃描線的間距為4邸,其正好為緩存容量的大小 4KB。如果我們不將圖像的地址映射轉變為緩存的陣列(bank)和組(set),則所有32個掃描 線將命中相同的陣列和相同的組。對于直接映射方案,32X32圖像僅有一個掃描線可W被 讀入緩存。所述32X32圖像的下一掃描線將映射到相同的緩存線并取代緩存中當前存在的 掃描線。對于4路(4-way)聯合方案,32X32圖像僅有4條掃描線可W保持在緩存中。所述32 X32圖像的其他28條掃描線將映射并試圖取代緩存中當前的4條掃描線,所述當前的4條掃 描線包含圖像的前4條掃描線數據。結果,缺失率將變高,運歸因于32X32圖像僅有少量掃 描線可W被保持在緩存中。此外,因為不能將32 X 32圖像的全部掃描線同時保持在緩存中, 32 X 32圖像的數據預裝載是無效的。
[0004] 因此,需要一種創新的緩存尋址設計將箱(bin)的大部分或全部圖像數據預裝載 到緩存之中,因此提高命中率并減少數據處理延時。
【發明內容】
[000引根據本發明的典型的實施例,提出一種利用可編程哈希地址的控制緩存訪問的方 法及相關緩存控制器來解決W上問題。
[0006]根據本發明的第一方面,公開一種用于控制緩存訪問的典型的方法。所述典型的 方法包含:接收存儲地址;利用哈希地址邏輯基于所述存儲地址的至少一部分執行可編程 哈希函數w生成哈希地址;并至少部分地基于所述哈希地址來確定緩存索引。
[0007] 根據本發明的第二方面,公開一種用于控制緩存訪問的典型的緩存控制器。所述 典型的緩存控制器包含輸入接口,哈希地址邏輯,W及控制電路。輸入接口配置為接收存儲 地址。哈希地址邏輯配置為基于所述存儲地址的至少一部分執行可編程哈希函數W生成哈 希地址。所述控制電路配置為至少部分地基于所述哈希地址來確定緩存索引。
[0008] 在閱讀隨后所詳細描述的W不同附圖形式展示的優選實施例后,對于本領域普通 技術人員而言,本發明的運些和其他目的將變得顯而易見。
【附圖說明】
[0009] 圖1是根據本發明實施例的數據處理系統的框圖。
[0010] 圖2是根據本發明實施例的哈希地址位的位移操作圖示,所述哈希地址位包括陣 列信息。
[0011] 圖3是根據本發明實施例的哈希地址位的另一位移操作圖示,所述哈希地址位包 括陣列信息。
[0012] 圖4是根據本發明實施例的哈希地址位的位移操作圖示,所述哈希地址位不包括 陣列信息。
[0013] 圖5是根據本發明實施例的哈希地址位的另一位移操作圖示,所述哈希地址位不 包括陣列信息。
【具體實施方式】
[0014] 設及特定組件的特定術語將始終在說明書和隨后的權利要求中使用。本領域技術 人員將認識到,制造商可W用不同名稱來指代組件。本文件無意于區分那些名稱上不同但 功能相同的組件。在隨后的說明書和權利要求中,術語"包含"和"包括"用于開放式類型,因 此其應當被解釋為"包含,但不限于…"。同樣,術語"禪合"規定為意味著間接或直接電氣連 接中的任一。因此,如果一個設備與另一個設備禪合,其連接可W為直接電氣連接或通過其 他設備和連接的間接電氣連接。
[0015] 圖1是根據本發明實施例的數據處理系統的框圖。數據處理系統100可W是電子設 備的一部分。例如,數據處理系統100可W是圖形處理系統。在此實施例中,數據處理系統 100包含一個或多個處理器(例如,中央處理器或圖形處理單元)102_1-102_N,緩存104,緩 存控制器106,W及數據存儲設備(例如,主存儲器或下一級緩存)108。處理器102_1-102_N 是緩存104的請求者(request agent)。應當注意到,處理器102_1-102_加勺數據可W調整, 其取決于實際應用需求。
[0016] 緩存104是小尺寸存儲設備(例如,具備較快數據訪問速度的靜態隨機存取存儲器 (SRAM)設備),并可W被應用于圖形處理系統或者位于處理器和大尺寸存儲設備(例如,具 備較慢數據訪問速度的動態隨機存取存儲器(DRAM)設備)之間且需要較快信息交易的任何 應用之中。如圖1所示,緩存104包含數據存儲器112和標簽存儲器(tag memo巧)114。所述數 據存儲器112可W具有多個陣列(bank) 116,每個陣列116包含多個緩存行(cache line) 118。例如,所述數據存儲器112可W通過使用SRAM而應用于存儲緩存數據,每個緩存行118 可W配置為具有指定的緩存行大小(例如化比特)。所述標簽存儲器114可W是其中存儲了 多個標簽項120的標簽RAM。類似地,所述標簽存儲器114可W具有多個陣列121,每個陣列 121包含多個標簽項120。由于不同陣列中的標簽項可W被同時讀取,因此所述緩存控制器 106可W在一個周期內獲取多個標簽項。
[0017] 在一個典型的設計中,數據存儲器112和標簽存儲器114可W被分配到相同存儲設 備的不同存儲空間中。在另一典型的設計中,數據存儲器112和標簽存儲器114可W被分配 到不同的存儲設備中。
[0018] 在此實施例中,每個標簽項120與分配到數據存儲器112中的一個緩存行118相關 聯,且具有多個狀態位(例如,有效位(valid bit)"V"122,頁面重寫標志位(dirty bit)"D" 124, W及一個或多個哈希使能位化日3]16]1日1310 13;[1:)巧1"-"化"126)和標志域(1日旨;1^161(1) 128。所述標簽項120由緩存控制器106進行設置。所述有效位122記錄與此標簽項相關聯的 緩存行118是否包含有效數據。每個標簽項的所述有效位122被初始化設置為表示無效狀態 (即V=0)。當取自數據存儲設備108的數據存儲到緩存行118中,與此緩存行118相關聯的相 應標簽項的有效位122被設置為表示有效狀態(即V= 1)。所述頁面重寫標志位124記錄與此 標簽項相關聯的緩存數據是否應當被回寫到主存儲器。應當注意到,所述頁面重寫標志位 124僅由回寫緩存使用。當緩存104為透寫(write-trough)緩存時,可W省略每個標簽項中 的頁面重寫標志位124。所述哈希使能位126設置為向不同的請求者(比如處理器102_1- 102_N)分配不同的進程地址空間標識符(PASID)或者處理器ID。由于緩存104由不同的請求 者共享,每個哈希使能位126設置為表示是否有一個由本發明提出的可編程哈希函數已經 為相應的請求者所產生的存儲地址而啟用。例如,當包含在由處理器102_1產生的寫請求中 的存儲地址被指定的可編程哈希函數所處理W建立指向特定標簽