專利名稱:用于高速緩存存儲器的最大駐留替換的方法和系統(tǒng)的制作方法
技術領域:
所揭示的標的物涉及支持通信產品和服務的數字信號處理。更明確地說,本揭示案 涉及 一 種用于高速緩存存儲器的最大駐留替換的新穎且改進的方法和系統(tǒng),其可用于手 持機或其它通信系統(tǒng)的數字信號處理器。
背景技術:
電子設備和支持性軟件應ffl程序越來越多地涉及數字信號處理。家庭影院、計算機 制圖、醫(yī)學成像和電信均依賴于信號處理技術。數字信號處理需要復雜但重復的算法的 快速數學。許多應用程序需要實時計算,即信號是連續(xù)的時間函數,其必須經取樣并轉 換為二進制以供數值處理。因此,處理器必須執(zhí)行在樣本到達時對其執(zhí)行離散計算的算 法。數字信號處理器或DSP的結構經優(yōu)化以處置此類算法。良好的信號處理引擎的特征 包括快速且靈活的算術計算單元、去往和來自計算單元的不受限制的數據流、計算單元 中擴展的精度和動態(tài)范圍、有效的程序排序和易于編程。
DSP技術的一項有希望的應用包括例如碼分多址(CDMA)系統(tǒng)等通信系統(tǒng),其支 持用戶之間經由衛(wèi)星或地面鏈路的語音和數據通信。在題為"使用衛(wèi)星或地面轉發(fā)器的 擴展頻譜多址通信系統(tǒng)(SPREAD SPECTRUM MULTIPLE ACCESS COMMUNICATION SYSTEM USING SATELLITE OR TERRESTRIAL REPEATERS)"的第4,901,307號美國 專利和題為"用于在CDMA蜂窩式遠程手持機系統(tǒng)中產牛波形的系統(tǒng)和方法(SYSTEM AND METHOD FOR GENERATING WAVEFORMS IN A CDMA CELLULAR TELEHANDSET SYSTEM)"的第5,103,459號樊國專利中揭示多址通信系統(tǒng)中的CDMA 過程使用,所述美國專利均轉讓給所主張標的物的受讓人。
CDMA系統(tǒng)通常經設計以符合-'個或一-個以上電信(現在為串流視頻)標準。- 項 此類第一代標準是"雙模式寬帶擴展頻譜蜂窩式系統(tǒng)的T1A/E1A/IS-95終端-基站兼容性 標準",下文中稱為IS-95標準。IS-95 CDMA系統(tǒng)能夠傳輸語音數據和包數據??筛?效傳輸包數據的近代標準由名為"第3代伙伴計劃"(3GPP)的協(xié)會提供,且在包括第 3GTS 25.211號、第3GTS 25.212號、第3G TS 25.213號和第3G TS 25.214號文獻的— 組文獻中具體描述,公眾可容易得到所述文獻。3GPP標準在K文中稱為W-CDMA標準。 還存在視頻壓縮標準,例如MPEG-1、 MPEG-2、 MPEG-4、 H.264和WMV (視窗媒體 視頻),以及此類無線手持機將越來越多采用的許多其它標準。
數字信號處理器(DSP)可有效用于遵守以上標準的無線手持機。明確地說,無線 手持機正耍求且將越來越多地要求DSP執(zhí)行來自面向用戶、科學的多媒休應用程序以及 許多其它類型的應用程序的指令。處理器資源要求可針對例如電視廣播、串流消息斷續(xù) 器、電于郵件(包括帶有附件的消息)等應用程序以及例如串流視頻(例如,視頻會議)、 攝影和文件(文字處理、電子數據表、呈現等)應用程序等常駐應用程序而/"泛且動態(tài) 地變化,所有這些應用程序均來自同一 DSP。
在DSP的操作中,由于例如此類便攜式和手持式應用程序的廣泛使用,較低功率消 耗對數據處理系統(tǒng)具有不斷增加的重要性。許多DSP當今使用較小、較快速且較有效的 存儲器(有時稱為高速緩沖存儲器)以減少對主存儲器的存取次數。與對其它內部或外 部存儲器的存取相比,對高速緩存存儲器的存取通常消耗較少電力且導致減少的等待時 間。通過存儲隨后在較快速且較有效的高速緩沖存儲器中將再次請求的那些項目,可發(fā) 生顯著的功率降低和件能增加。
高速緩存存儲器還向處理器提供用以在不引發(fā)與主存儲器源(例如DRAM)相關聯(lián) 的等待狀態(tài)的情況下快速取出數據的方式。使用高速緩存存儲器通常改進計算機系統(tǒng)性 能,從而使得在.不耍求從具有復雜總線結構的主存儲器單元分隔符發(fā)生3呼循環(huán)或物理 延遲的情況下處理器可得到常用數據。
通常,高速緩存存儲器經組織成"組(set)"或"路(way)"(下文中統(tǒng)稱為"路")。 高速緩存存儲器路通常包括許多高速緩存存儲器條目位置,其可使用常見地址來存取。 組相聯(lián)高速緩沖存儲器是這樣一種類型的高速緩存存儲器,其在指派或"映射"到主存 儲器源(例如DRAM)內的特定位置的高速緩沖存儲器路中組織數據。當存儲在所述路 內的數據被來自主存儲器內的另-位覽的數據替代時重新映射高速緩存存儲器路。此 外,高速緩沖存儲器路可映射到同一主存儲器位置,以便幫助在高速緩沖存儲器中維持 與特定主存儲器位置相關聯(lián)的最近數據版本。
現在,高速緩存存儲器通常比主存儲器小,所以需要刪除高速緩沖存儲器路以針對 并非存儲在所述高速緩沖存儲器中的新近存取的數據騰出空間。那些待替換的高速緩沖 存儲器路稱為"犧牲路(victim way)"。與已位于高速緩沖存儲器中持續(xù)一段時間的數 據相比,施加到所述犧牲路的數據應在統(tǒng)計匕更有可能在近期再次被存取。通常,高速 緩沖存儲器選擇一個或一個以上有資格存儲對應于給定交易的數據的高速緩沖存儲器條目,且搜索這些條目以檢測命中或未中。在組相聯(lián)卨'速緩沖存儲器中,兩個或兩個以 上條目有資格基于數據地址而存儲數據??稍谖村鴧简屩鹚鰞蓚€或兩個以上條目中的 任一者的高速緩沖存儲器線。組相聯(lián)高速緩沖存儲器采用替換政策來選擇所述兩個或兩 個以上合格條R中的-一者以供驅逐。存在多種替換政策。
兩種己知類型的高速緩沖存儲器替換過程是最近使用("LRU")和近期未用 ("NRU")高速緩沖存儲器替換政策。這些高速緩沖存儲器替換政策中的每 一者要求對 呈現給高速緩沖存儲器的交易進行綜合監(jiān)視,以及詳細了解所實施的替換政策以確定仟 何給定時間點處替換政策的狀態(tài)。因此,對于高速緩沖存儲器路的每一使用,需要更新 與高速緩沖存儲器路相關聯(lián)的存儲位。此更新在操作資源使用和能量消耗方面是昂貴 的。
因此,需要一種低成本、高效率高速緩沖存儲器替換過程,其實現NRU和LRU方 法的基本相同性能。低成本益處包括降低高速緩沖存儲器替換過程中的存儲要求。而且, 降低存儲要求促進了在DSP操作期間改進能量使用。
LRU和NRU過程使用中的另一考慮在執(zhí)行多線程處理的DSP中具有特別相關性。 在此類處理器中,通過LRU和NRU高速緩沖存儲器替換政策,重復需耍將存儲位信息 從 個管線轉發(fā)到下-個管線。逐個管線地轉發(fā)存儲位信息的成本可能過大,尤其是當 針對每 一 管線級具有有限時間預算時。也就是說,從 一 個管線級到另 一 管線級地處覽存 儲位信息可能在多線程操作期間索取不合需耍的成本。
而且,如上文提及,處置存儲位(如在LRU和NRU替換政策中所要求的)通常需 要使用寬且大的總線來傳達存儲位信息。因為傳達存儲位信息的較大總線消耗功率且引 入執(zhí)行延遲,所以需要在高速緩沖存儲器路替換政策中減少或消除此類存儲位信息的傳 達。
因此,需要改進已知LRU和NRU高速緩沖存儲器替換政策。明確地說,在多線程 DSP或類似處理器的操作中存在此類需要。
進- 步需要減少用于DSP或類似處理器的已知高速緩沖存儲器替換過程中所存在 的功率消耗和執(zhí)行延遲。
因此,本質上,需要消除在DSP或類似處理器的高速緩沖存儲器路替換操作期間對 存儲位信息的處置。
發(fā)明內容
本文中揭示提供用于數字信號處理器中高速緩存存儲器的最大駐留替換的技術,所述技術改進處理器的操作和數字信號處理器指令的有效且更迅速處理兩者。本發(fā)明可例 如有益于多線程處理器系統(tǒng),其中多個處理器線程以n路組相聯(lián)方法(其中n為2或更 大〕共享高速緩存存儲器,且更明確地說,涉及一種替換控制技術,其可在發(fā)生未中時 應用。使用所揭示的標的物準許越來越穩(wěn)固的軟件應用程序用于個人計算機、個人數字 助理、無線手持機和類似的電子裝置,以及增加處理器速度和服務質量。
根據所揭示標的物的一個方面,提供-種用T在標簽未中分配隨后替換高速緩存存 儲器分配以便最大化多個組路的駐留的方法和系統(tǒng)。本發(fā)明包括形成高速緩存存儲器的 犧牲路的先進先出(FIFO)替換列表,其中FIFO替換列表的深度近似等于高速緩沖存 儲器組中的路的數目。所述方法和系統(tǒng)僅在標簽未中導致標簽未中分配的情況下在FIFO 替換列表中放置犧牲路,所述犧牲路放置在FIFO替換列表的尾部處在任何先前選定犧 牲路之后。在未完成先前對犧牲路的分配的情況下,通過例如以下方式來阻止使用FIFO 替換列表上的所述犧牲路停止重新使用請求直至U對所述犧牲路的此初始分配完成為 止,或重播重新使用請求直到對所述犧牲路的此初始分配完成為止。
從本文提供的描述內容中將容易明白所揭示標的物的這些和其它方面'以及額外的 新穎特征。此發(fā)明內容的意圖并不是全面描述所主張的標的物,而是提供對標的物的某 些功能性的簡短概述。所屬領域的技術人員在檢查以卜附圖和具體實施方式
之后將容易 明白本文所提供的其它系統(tǒng)、方法、特征和優(yōu)點。希望本描述內容內所包括的所有此類 額外系統(tǒng)、方法、特征和優(yōu)點均屬于所附權利要求書的范圍內。
結合附圖參看下文陳述的詳細描述將更容易明白所揭示標的物的特征、性質和優(yōu) 點,在附圖中相同參考字符始終相應地進行識別,且其中 圖1是可實施本實施例的通信系統(tǒng)的簡化方框圖 圖2說明用于實行本實施例的教示的DSP結構
圖3展示可在采用本發(fā)明的教示的系統(tǒng)中操作的控制單元(CU)的方框圖; 圖4呈現作為可采用本發(fā)明的高速緩沖存儲器路替換過程的示范性電路的數據單元 (DU)的方框圖5詳細說明用亍教示在例如在圖3中所呈現的指令單元(IU)中使用本發(fā)明的流 程圖的一個實施方案;以及
圖6詳細說明當前所揭示的標的物在如圖3所說明的數據單元(DU)中的另-使 用的流程圖的實施方案。
具體實施例方式
如本文呈現的用于高速緩存存儲器的最大駐留替換的方法和系統(tǒng)的所揭示標的物 可用于各種各樣的數字信號處理應用,其中包括涉及多線程處理的應用。 一 種此類應用 出現在電信中,且明確地說,出現在采用-一個或一個以上DSP電路的無線手持機中。因 而,以下附圖描述其中可使用本教示的電信DSP。然而,請記住,本文描述的實施方案 僅提供可應用所揭示標的物的幾乎無數應用中的'者。
出亍解釋可如何使用此類無線手持機的目的,圖提供可實施所揭示數據處理方法 和系統(tǒng)的所呈現實施例的通信系統(tǒng)IO的簡化方框圖。在傳輸器單元12處,通常以區(qū)塊 形式將數據從數據源14傳送到傳輸(TX)數據處理器16,其對所述數據進行格式化、 編碼和處理以產生一個或-個以上模擬信號。接著將所述模擬信號提供到傳輸器 (TMTR) 18,其對基帶信號進行調制、過濾、放大和上變頻轉換以產生經調制信號。接 著,經由天線20將所述經調制信號傳輸到一個或---.個以上接收器單元。
在接收器單元22處,由天線24接收所傳輸的信號并將其提供到接收器(RCVR) 26。在接收器26內,對所接收的信號進行放大、過濾、下變頻轉換、解調和數字化以 產生同相(I)和(Q)樣本。接著,由接收(RX)數據處理器28對所述樣本進行解碼 和處理以恢復所傳輸的數據。以與在傳輸器單元12處執(zhí)行的編碼和處理互補的方式執(zhí) 行接收器單元22處的解碼和處理。接著,將所恢復的數據提供到數據匯30。
上文描述的信號處理支持在一個方向上傳輸語音、視頻、包數據、消息傳遞和其它 類型的通信。雙向通信系統(tǒng)支持雙路數據傳輸。然而,出于簡單起見未在圖1中展示用 于另一方向的信號處理。通信系統(tǒng)IO可為碼分多址(CDMA)系統(tǒng)、時分多址(TDMA) 通信系統(tǒng)(例如,GSM系統(tǒng))、頻分多址(FDMA)通信系統(tǒng)或支持用戶之間經由地面 鏈路的語音和數據通信的其它多址通信系統(tǒng)。在具體實施例中,通信系統(tǒng)10是符合 W-CDMA標準的CDMA系統(tǒng)。
圖2說明可用作圖1的傳輸數據處理器16和接收數據處理器28的DSP 40結構。 再次強調,DSP 40結構僅表示可有效使用本文所呈現的教示和概念的大量可能數字信號 處理器實施例中的一個實施例。DSP40表示多線程處理器,其中線程T0:T5含有多組指 令。通過指令單元(IU) 42將指令排列成指令隊列(IQ) 44。 IQ44中的指令準備好發(fā) 布到處理器管線46中。解碼與發(fā)布邏輯電路48可從指令隊列44中選擇單個線程(例 如,線程TO)。
IU 42中的IQ 44保持對指令流的滑動緩沖。DSP 40所支持的六個線程T0:T5中的每--者具有單獨的IQ 44,其中每一條目可存儲一個VLIW包或多達四條個別指令。所 有線程共享解碼與發(fā)布電路48邏輯以用亍每次解碼和發(fā)布一 VL1W包或多達兩個超標 量指令,以及用于針對每一管線SLOT0:SLOT3產生控制總線和操作數。所有線程還共 享PLC50以用于解決異常情況和檢測管線停止條件,例如線程啟用/停用、重播條件、 維持程序流程等。
在操作中,讀取選定線程的通用寄存器堆(GRF) 52和控制寄存器堆(CRF) 54, 且將讀取數據發(fā)送到用于SLOT0:SLOT3的執(zhí)行數據路徑。在此實例中,SLOT0:SLOT3 提供本實施例中所采用的包分組組合。來自SLOT0:SLOT3的輸出返回來自DSP40的操 作的結果。
本文所揭示的標的物處理單個線程的高速緩沖存儲器替換政策。單個線程看到具有 所有寄存器和指令可用的完整牟.處理器DSP40。通過-一致共享存儲器設施,此線程能夠 與其它線程通信和同步。這些其它線程正在同-處理器上還是在另--處理器上運行在4艮 大程度上對于用戶級別的軟件來說是透明的。
轉向圖3,用于DSP40的本微結構60包括控制單元(CU) 62,其執(zhí)行對處理器管 線46的許多控制功能。CU 62調度來自IU 42的線稃與請求混合16位和32位指令。此 外,CU62調度指令并將其發(fā)布給三個執(zhí)行單元,即移位類型單元(SU) 64、乘法類型 單元(MU) 66和加載/存儲單元(DU) 68。 CU 62還執(zhí)行超標量相依性檢査??偩€接 口單元(BIU) 70將IU42和DU68介接到系統(tǒng)總線(未圖示)。
SLOT0和SLOT1管線在DU 6S中,SLOT2在MU 66中,且SLOT3在SU 64中。 CU 62向管線SLOT0:SLOT3提供源操作數和控制總線,且處置GRF 52和CRF 54文件 更新。CU62接受例如中斷和復位等外部輸入,且支持仿真單元(EU) 72。 CU62還處 置因在地址翻譯期間發(fā)生的保護侵犯引起的異常情況。在微結構60的一個實施例中, 可每次并行發(fā)布混合的16和32位指令多達四條。然而,可在其它實施例中實施16位、 32位和其它長度指令的許多不同變型,所有這些均屬十所揭示標的物的范圍內。此外, 微結構60還可支持針對每個循環(huán)從CU 62移動兩個64位雙字。
使用微結構60的DSP40特別支持以下類別的應用(1)通信信號處理(例如,調 制解調器);(2)視頻處理(例如,H.264格式);(3)圖像處理;(4)音頻處理;(5) 3D閣像前端軟件;以及(6)支持控制代碼、協(xié)議堆棧、RTOS等。如此,DSP40發(fā)布 VLIW指令包,以及個別超標量發(fā)布指令。個別指令的發(fā)布寬度可在從每發(fā)布時隙-個 指令到最大VLIW包的范圍內。作為實例,DSP 40可每發(fā)布時隙在- VLIW包中發(fā)布 多達四個指令。而且,DSP40可使用超標量發(fā)布來發(fā)布一個或兩個指令。圖4呈現代表性數據單元DU 68區(qū)塊分割,其中可應ffl所揭示的標的物。DU 68包 括地址產生單元AGU 80,其進一步包括AGU0 81和AGU1 83以接收來自CU 62的輸 入。此處所揭示的標的物具有對DU 68的操作的主要應用。加載/存儲控制單元LCU 82 也與CU62通信,且向AGU80和ALU84提供控制信號,以及與數據高速緩沖存儲器 單元DCU 86通信。ALU84還接收來自AGU 80和CU62的輸入。來自AGU 80的輸出 去往DCU86。 DCU 86與存儲器管理單元("MMU") 87和CU62通信。ALU 84包括 ALUO 85和ALU1 89,每時隙使用一個,且含有數據路徑以在DU 68內執(zhí)行算術/轉 移/比較(ATC)操作。
DCU 86包括SRAM狀態(tài)陣列電路88、存儲對準器電路90、CAM標簽陣列92、SRAM 數據陣列94,和加載對準器電路96。為了進一步解釋DU 68的操作(其中所主張的標 的物可操作),現參考其中根據以下描述的若千部分執(zhí)行的基本功能。明確地說,DU68 執(zhí)行來自ALU 84的加載類型、存儲類型和32位指令。
DU 68在DE管線級中每循環(huán)從CU 60接收多達兩個經解碼指令,其中包括立即操 作數。在RF管線級中,DU68從恰當的線程特定寄存器接收通用寄存器(GPR)和/或 控制寄存器(CR)源操作數。從CU 60中的GPR寄存器堆接收GPR操作數。在EX1 管線級中,DU 68產生加載或存儲存儲器指令的有效地址(EA)。將EA呈現給MMU 87, 其執(zhí)行虛擬到物理地址翻譯和頁級別準許檢杳,且提供頁級別屬性。對于對可高速緩存 位置的存取,DU 68用物理地址在EX2管線級中査找數據高速緩沖存儲器標簽。如果存 取命中,那么DU 68在EX3管線級中執(zhí)行數據陣列存取。
對于可高速緩存的加載,通過恰當的存取大小對準從高速緩沖存儲器讀出的數據, 如指定那樣擴展零/符號,并在WB管線級中驅動到CU 60以寫入到指令指定的GPR中。 對于可高速緩存的存儲,從CU 60中的線程特定寄存器中讀出待存儲的數據。
DU 68還執(zhí)行高速緩沖存儲器指令以用于管理DCU 86。所述指令允許鎖定和解鎖 特定高速緩沖存儲器線、使其無效以及分配到GPR指定的高速緩沖存儲器線。還存在 用以全局地使高速緩沖存儲器無效的指令。類似于加載和存儲指令,將這些指令管線化。 對于到未中數據高速緩沖存儲器的可高速緩存位置的加載和存儲,以及對于不可高速緩 存的存取,DU68向BIU70提出請求。不可高速緩存的加載提出讀取請求。存儲命中、 未中和不可高速緩存的存儲提出讀取/寫入請求。DU 68追蹤對BIU 70的未決讀取和線 填充請求。在未決加載請求完成之前,DU68還允許在 -個或一個以上線程被阻擋時由 其它線程進行的存取。也就是說,DU 68支持往來于DSP 40核心處理器的讀取/寫入請 求。因此,BIU70提供到總線的雙向接口以用于這些操作。存在兩種類型的存儲。第一,存在直接存儲到高速緩沖存儲器的存儲,即"回寫" 存儲。而且,存在可存儲在高速緩沖存儲器中的存儲,但其還將交易發(fā)送到總線。"直 寫(write-through)"和"未經高速緩存"存儲兩者均將數據發(fā)送到總線以及高速緩沖存 儲器。存儲命中將提出對直寫存儲的讀取/寫入請求。在回寫存儲情況的存儲未屮的情況 下,在總線上將出現讀取請求。如果請求是直寫,那么數據直接去往總線且不寫入到高 速緩沖存儲器。
所揭示的標的物為數字信號處理(例如在DU68中發(fā)生的處理)期間的高速緩沖存 儲器替換操作提供"先進先出"或"FIFO"列表過程。在分析當前揭示的FIFO高速緩 沖存儲器替換過程的有效性中,存在較有效且較不麻煩的高速緩沖存儲器替換過程。盡 管沒有用以轉移和追蹤存儲位的位置的過程,但仍然是這樣的情況。
所揭示的過程的技術優(yōu)點是避免了需要追蹤最近已使用哪個高速緩沖存儲器線。本 過程未強加任何此類要求。通過本FIFO高速緩沖存儲器替換過程,只需要確定可用高 速緩沖存儲器資源的存在。不要求知道和維持對到高速緩存存儲器的存取路徑的運行記 錄。所以,對干每高速緩沖存儲器加載,當使用NRU或LRU過程時,必須發(fā)生計算 以確定待采用的高速緩沖存儲器路。
所揭示的標的物在發(fā)生未中的情況卜更新高速緩沖存儲器路。因此,當發(fā)生許多未 中時,所揭示標的物的過程將連續(xù)操作以識別待在下 存儲請求的情況下使用的高速緩 沖存儲器路。另一方面,如果未發(fā)生高速緩沖存儲器未中,那么本文所揭示的過程不會 如使用LRU或NRU過程那樣連續(xù)更新。而是,本FIFO高速緩沖存儲器替換過程進行 等待,直到發(fā)生下一高速緩沖存儲器未中為止。也就是說,NRU和LRU過程追蹤發(fā)生 的高速緩沖存儲器命中,而本文所揭示的FIFO高速緩沖存儲器替換過程追蹤發(fā)生的高 速緩沖存儲器未中。
通過所揭示的標的物,只有當發(fā)生未中時,才會有高速緩沖存儲器路要使用。在待 替換卨'速緩沖存儲器的那點處,FIFO高速緩沖存儲器替換過程基于下一高速緩沖存儲 器路以根據已從列表替換的高速緩沖存儲器路進行替換。因此,如果任何路均未被替換, 那么待替換的高速緩沖存儲器路的FIFO列表將不改變。3發(fā)生未中時,最老的未中高 速緩沖存儲器是替換過程的最小值,因為其最早被替換。因此,所述路在FIFO替換列 表上越老,將從FIFO替換列表中移除所述高速緩沖存儲器路的可能性也就越高。
本發(fā)明避免需要FIFO替換過程的反饋路徑,所以面積要求以兩種方式變得較小。 首先,所揭示的標的物不耍求任何存儲位。其次,所述過程更具能量效率,因為不需耍 每次高速緩沖存儲器讀取均讀取存儲位。此外,不需要使用較大總線電線來傳達存儲位信息。
通過所揭示的標的物,當請求查找接收到高速緩沖存儲器標簽未屮時,必須替換所 述組路中的一者。經選擇以進行替換的高速緩沖存儲器路稱為犧牲路,因為在某些情況 下,必須從高速緩沖存儲器移除犧牲路的高速緩沖存儲器內容以針對標簽未中分配騰出 空間。當高速緩沖存儲器中的內容出于--個原因或另 :原因而不同于DSP 40主存儲器 中的內容時,產生這些情況。舉例來說,如果線中的存儲發(fā)生時,內容可能改變,進而 耍求需要替換。
為了最大化每一路在高速緩沖存儲器中保持的時間,在高速緩沖存儲器未中隨后, 將犧牲路放置在基于組的FIFO列表的尾部。替換FIFO列表的深度等于高速緩沖存儲器 組中的路的數目,進而最大化再次驅逐同一路之前的未中分配的時間或駐留。對同一組 的后續(xù)標簽未中將同樣產生犧牲路且被放置在所述組FIFO的尾部。每一新的犧牲迫使 早期犧牲朝向替換FIFO列表頭部。當同 組犧牲的數目等于高速緩沖存儲器路的數目 時,在下一標簽未中時重新使用犧牲路。
如本文所揭示的FIFO替換政策的實施方案滿足兩個規(guī)則。第一,實施方案必須基 于每 一 組中的路的數目而最大化高速緩沖存儲器駐留。這是通過僅當標簽未中導致分配 時才在組FIFO列表上放置犧牲路來完成。如果已經針對早期標簽未中存在未決分配請 求,那么當前標簽未中不會更新FIF0列表。任何實施方案必須實行的第二規(guī)則涉及高 速緩沖存儲器一致性。
在將犧牲路放置在FIFO列表尾部上的情形中,有可能的是同一路將達到頭部且在 最初分配完成之前被S新使用。如果犧牲路重新使用未經校正,那么此冒險可能會導致 標簽與數據高速緩沖存儲器之間的不 --致性。存在對此冒險的若千可能解決方案,其中 包括停止或重播重新使用請求或在將重新使用路放置在FIFO列表尾部之后第二次讀取 FIFO列表頭部。
在使用具有高度等待時間不容性的軟件應用程序的處理環(huán)境中,所揭示的標的物減 少處理時間且避免追蹤存儲位位置。此類處理環(huán)境可包括呈現串流視頻和數據應用程序 的環(huán)境,以及其屮在按壓無線手持機鍵區(qū)后產生立即音調反饋(例如,從.wav文件表播 放數據)的環(huán)境。
在串流視頻的另--實例中,可在無線手持機屏幕上呈現每秒20+個圖像幀的流動。 在圖像幀中,部分流動幀含有有用的信息,而其它部分的幀含有冗余信息。確定信息是 冗余信息還是新信息的能力和計時考慮對于有效使用處理資源來說是重要的。
通過此介紹,將在圖5和圖6中描述兩種實施方案。這些實施方案可用亍數卞信號處理器,例如圖5的IU 42過程100和圖6的DU 68過程102中的DSP 40。因此,首先 考慮IU 42過程100,其中IU 42運行標簽查找(歩驟104),且可能發(fā)生標簽未中(步 驟106)。在此情況下,將請求地址與存儲在未決請求緩沖器(ORB)中的有效請求進行 比較(步驟108)。如果査找地址是唯一的(步驟110),那么將所述請求視為初級未中 (PM)(步驟112)。將PM地址發(fā)送到系統(tǒng)存儲器以供分配(步驟114)且讀取替換FIFO 列表以獲得犧牲路(步驟116)。如果犧牲路已經用于此組地址,先前巳通過先前請求將 所述地址發(fā)送到系統(tǒng)存儲器(步驟118),那么將所述請求視為次級未中(SM)(步驟 120)。在此情況下,不讀取替換FiFO列表且最大化高速緩沖存儲器駐留(步驟122)。
從詢問110,"是"路徑去往步驟12,其中確定請求是PM或初級未中。如果請求 是初級未中,那么在步驟114處將犧牲路存儲在FIFO緩沖器中以供分配。接著,在歩 驟116處,讀取FIFO列表以獲得下一犧牲路。從步驟116,過程流程100去往步驟126 和130兩者。在步驟126處,將FIFO列表頭部放置在列表尾部,且在步驟128處,將 犧牲路存儲在最后路緩沖器中。在步驟130處,過程流程100確定是否存在犧牲路重新 使用冒險。這包括將當前/即將到來的犧牲路與其它最后路緩沖器進行比較(歩驟132)。 如果犧牲路匹配且組地址匹配,那么存在重新使用冒險。這意味著高速緩沖存儲器替換 算法正試圖使用已經分配的高速緩沖存儲器路。而且,過程〔步驟136)將即將到來的 PM的組地址與其它線程組地址進行比較。如果響應于步驟132在詢問134處或響應于 步驟136在步驟138處檢測到命中,那么過程流程繼續(xù)到OR歩驟140。 OR歩驟140向 步驟142提供輸入,其中在步驟142處重播當前/即將到來的線程。如果重播的線程是 PM,那么過程流程100繼續(xù)到步驟146。否則,過程流程100確定(步驟120)請求是 次級未中(SM)。過程流程100讀取FIFO列表(步驟146),使得(歩驟148)從FIFO 列表頭部檢索新的犧牲路。
因此,當存在重新使用冒險時,過程流程100重播當前線程。在下一時間處,其將 回來且其將再次未中。過程流程100于是將確定FIFO正指向的當前路已經在使用。如 果過程流程00再次返回同一路,那么存在fi新使用冒險。當所述過程再次從FIFO列 表提供同一路時,那么未決請求將確定所返回的路已經被涉及且線程將被重播。線程將 回來且其將再次重播。因此,FIFO列表提供其曾在上一循環(huán)中給出的任何內容遞增一。 相同過程持續(xù)進行,直到存在未顯示重新使用冒險的犧牲路為止。未顯示重新使用冒險 的第一犧牲路將是過程流程100使用的路。
通過將替換FIFO列表存取管線化排列在確定犧牲路分配后面,IU 42可立即在同一 時鐘屮將犧牲路從FIFO列表的頭部移動到尾部。這允許IU 42支持在替換FIFO列表中的背對背多線程存取而無需重播。
如果組地址和犧牲路命中以及其兩者為PM請求(步驟140),那么重播較新或即將 到來的線程(步驟142)。當線程被重播且再次被確定為PM時(步驟144),讀取替換 FIFQ列表(步驟146)且從頭部檢索新的犧牲路(步驟148)。
IU將替換FIFO列表實施為簡單的4位計數器。每 ^ PM讀取替換組計數器且使組 計數器遞增一。組計數器總是在PM時遞增,從而在重播命中冒險的線程之前清除重新 使用冒險。
圖6詳細描述應用于DU 68的本發(fā)明的DU過程102中的步驟。當DU 68運行請求 查找時(步驟150),同時讀取標簽、狀態(tài)和替換FIFO列表(步驟152)。使用命中和狀 態(tài)向量以確定初級或次級命中(步驟154)。由于在狀態(tài)/FIFO列表讀取與狀態(tài)/FIFO列 表寫入之間存在延遲,所以將請求組地址進行管線化排列以與較新的線程進行比較(歩 驟156)。如果在兩個請求之間發(fā)生組地址命中(步驟158),那么可重播較新的線程(步 驟160)。因此,如果檢測到標簽未中(步驟162),即所述狀態(tài)未保留,那么將組地址 與較老的線程組地址進行比較(歩驟164),以確定是否必須重播較新/即將到來的線程 (步驟166)。否則,不讀取FIFO列表。為了檢測犧牲路重新使用冒險,DU將犧牲路(即, FIFO列表頭部處的路)與狀態(tài)向量進行比較(步驟168)。如果犧牲路命中同一路處的 保留狀態(tài)(步驟170),那么先前請求采用所述高速緩沖存儲器路以進行保留且檢測到犧 牲路重新使用(步驟n0)。否則,不讀取FIFO列表。如果組地址是唯一的且不存在犧 牲路重新使用冒險(步驟174),那么請求是真實的PM且被發(fā)送到系統(tǒng)存儲器以供分配 (步驟176)。否則,不讀取FIFO列表。
通過本實施例,DU 68可更新替換FIFO列表且維持最大高速緩沖存儲器駐留和高 速緩沖存儲器一致性。然而,其它實施方案可能不支持替換FIFO列表中的背對背多線 程存取,如上文描述。這可在狀態(tài)和替換旁路的添加用以維持準確的狀態(tài)和FIFO列表 信息直到其被寫回到其組為止的情況下發(fā)生。
DU68 (如IU42)也將替換FIFO列表實施為簡單的4位計數器。每一査找讀取替 換組計數器且接著確定請求是否為PM。在確定PM隨后,使替換計數器遞增一并將其 連同所更新的狀態(tài)信息一起寫回到組計數器。將在重新使用冒險時使組計數器遞增。當 重播犧牲路重新使用線程時,將在査找時檢索新的計數且將清除冒險。
因此,所揭示的標的物提供---.種用于在高速緩沖存儲器標簽未中的情況下替換高速 緩沖存儲器組的多個組路中的一者的方法。本發(fā)明包括以下步驟在高速緩沖存儲器未 中隨后,通過將犧牲路放置在高速緩沖存儲器組FIFO列表的尾部h來選擇犧牲路作為待替換的高速緩沖存儲器路,其中FIFO的深度近似等于高速緩沖存儲器組中的路的數 目。接下來,所述過程在高速緩沖存儲器組FIFO列表的末端處放置對高速緩沖存儲器 組的后續(xù)高速緩沖存儲器標簽未中。所述過程接-著涉及在高速緩沖存儲器組的犧牲路的 數目等于高速緩沖存儲器組路的數目的情況下在下--'高速緩沖存儲器標簽未中時S新 使用犧牲路。阻止重新使用犧牲路,直到所述犧牲路的初始分配完成為止。這避免了高 速緩沖存儲器標簽與高速緩沖存儲器組之間的不 一 致性。此外,所述過程用以下方式阻 止重新使用犧牲路,直到所述犧牲路的初始分配完成為止停止重新使用請求,直到犧 牲路的此初始分配完成為止。所述過程還通過以下方式阻止犧牲路的重新使用,直到所
述犧牲路的初始分配完成為止重播重新使用請求,直到所述犧牲路的此初始分配完成
為止。通過執(zhí)行此過程和大致類似亍此的過程,所揭示的主題提供有效的高速緩沖存儲
器路替換政策以及實施電路,其避免了已知LRU和NRU算法的現有限制。
本文所描述的處理特征和功能可以各種方式實施。舉例來說,不僅DSP40可執(zhí)行 上述操作,而且本實施例可在專用集成電路(ASIC)、微控制器、微處理器或經設計以 執(zhí)行本文所描述的功能的其它電子電路中實施。因此,提供先前對優(yōu)選實施例的描述是 為了使得所屬領域的技術人員能夠制作或使用所主張的標的物。所屬領域的技術人員將 容易明白對這些實施例的各種修改,且本文所界定的一般原理可應用于其它實施例,而 無需使用創(chuàng)新的能力。因此,不希望所主張的標的物限于本文所展示的實施例,而是其 應符合與本文所揭示的原理和新穎特征 一 致的最寬范圍。
權利要求
1. 一種用于在高速緩沖存儲器標簽未中的情況下替換高速緩沖存儲器組的多個組路中的一者的方法,其包含以下步驟根據所述高速緩沖存儲器路在高速緩沖存儲器路的FIFO列表上的位置來選擇犧牲路作為所述待替換的高速緩沖存儲器路以供在數字信號處理器的操作中使用;在所述高速緩沖存儲器組FIFO列表的末端處放置所述高速緩沖存儲器組的后續(xù)高速緩沖存儲器標簽未中,從而在下一高速緩沖存儲器標簽未中時重新使用犧牲路;阻止犧牲路的重新使用,直到所述犧牲路的初始分配避免所述高速緩沖存儲器標簽與所述高速緩沖存儲器組之間的不一致性為止;通過以下方式阻止犧牲路的重新使用直到所述犧牲路的初始分配完成為止停止對重新使用請求的響應,直到所述犧牲路的此初始分配完成為止;通過以下方式阻止犧牲路的重新使用直到所述犧牲路的初始分配完成為止重播重新使用請求,直到所述犧牲路的此初始分配完成為止。
2. 根據權利要求1所述的方法,其中所述選擇歩驟進一歩包含以下歩驟通過在所述高速緩沖存儲器未屮后將犧牲路放置在高速緩沖存儲器組FIFO列表的尾部上來選 擇所述犧牲路作為所述待替換的高速緩沖存儲器路,且其中所述FIFO的深度近似 等于所述高速緩沖存儲器組中的路的數目。
3. 根據權利要求1所述的方法,其進一步包含以下歩驟在高速緩沖存儲器標簽未中的情況下與數字信號處理器數據單元指令的執(zhí)行結合而替換高速緩沖存儲器組的 多個組路中的一者。
4. 根據權利要求1所述的方法,其進一歩包含以下歩驟在高速緩沖存儲器標簽未中的情況下與數字信號處理器指令單元指令的執(zhí)行結合而替換高速緩沖存儲器組的 多個組路中的---者。
5. 根據權利要求4所述的方法,在犧牲路重新使用冒險的情況下,其進一步包含以下 步驟將當前/即將到來的初級未中犧牲路與所述FIFO列表中的其它路進行比較; 將所述即將到來的初級未中的組地址與其它組地址進行比較;以及 響應于所述比較步驟,重播所述當前/即將到來的線程,直到出現免受重新使用 冒險的犧牲路為止。
6. 根據權利要求1所述的方法,其進--步包含以下步驟將最近使用的犧牲路添加到 所述FIFO列表的尾部。
7. 根據權利要求1所述的方法,其進一歩包含以下步驟在多線程數字信號處理器中 替換所述犧牲路。
8. 根據權利要求1所述的方法,其進一步包含以下步驟在不要求使用存儲位記錄所 使用的犧牲路的情況下執(zhí)行所述替換步驟。
9. 根據權利要求1所述的方法,其進一步包含以下步驟僅在高速緩沖存儲器路未中 的情況下遞增所述FIFO列表。
10. —種用于與數字信號處理器結合操作的高速緩沖存儲器路替換電路,所述高速緩沖存儲器路替換電路用于在高速緩沖存儲器標簽未中的情況下替換高速緩沖存儲器組的多個組路中的- 者且包含犧牲路選擇電路,其用于根據所述高速緩沖存儲器路在高速緩沖存儲器路的 FIFO列表上的位置來選擇犧牲路作為所述待替換的高速緩沖存儲器路以供在數字 信號處理器的操作中使用;FIFO列表填充電路,其用于在所述高速緩沖存儲器組FIFO列表的末端處放置所 述高速緩沖存儲器組的后續(xù)高速緩沖存儲器標簽未中,從而在下一高速緩沖存儲器標簽未中時重新使用犧牲路;高速緩沖存儲器路重新使用冒險檢測電路,其用于阻止犧牲路的s新使用,直到 所述犧牲路的初始分配避免所述高速緩沖存儲器標簽與所述高速緩沖存儲器組之 間的不一致性為止,所述高速緩沖存儲器路重新使用冒險檢測電路進一步用于通過以下方式阻止犧牲路的重新使用直到所述犧牲路的初始分配完成為止停止對重新 使用請求的響應,直到所述犧牲路的此初始分配完成為止,且通過以下方式阻止犧牲路的重新使用直到所述犧牲路的初始分配完成為止重播重新使用請求,直到所 述犧牲路的此初始分配完成為止。
11. 根據權利耍求IO所述的高速緩沖存儲器路替換電路,其進一步包含犧牲路選擇電 路,用于通過在所述高速緩沖存儲器未中后將犧牲路放置在高速緩沖存儲器組 FIFO列表的尾部上來選擇所述犧牲路作為所述待替換的高速緩沖存儲器路,且其 中所述FIFO的深度近似等于所述高速緩沖存儲器組中的路的數目。
12. 根據權利要求IO所述的高速緩沖存儲器路替換電路,其進一步包含數據單元電路, 用于在高速緩沖存儲器標簽未中的情況下與數字信號處理器數據單元指令的執(zhí)行 結合而替換高速緩沖存儲器組的多個組路中的一者。
13. 根據權利要求IO所述的高速緩沖存儲器路替換電路,其進一步包含指令單元電路, 用于在高速緩沖存儲器標簽未中的情況下與數字信號處理器指令單元指令的執(zhí)行 結合而替換高速緩沖存儲器組的多個組路中的一者。
14. 根據權利要求IO所述的高速緩沖存儲器路替換電路,其進一歩包含比較電路,用于將當前/即將到來的初級未中犧牲路與所述FIFO列表中的其它路 進行比較,且將所述即將到來的初級未中的組地址與其它組地址進行比較;以及高速緩沖存儲器路重播電路,用于響應于所述比較步驟重播所述當前/即將到來 的線程,直到出現免受重新使用冒險的犧牲路為止。
15. 根據權利要求10所述的高速緩沖存儲器路替換電路,其進一步包含FIFO列表電 路,用于將最近使用的犧牲路添加到所述FIFO列表的尾部。
16. 根據權利要求IO所述的高速緩沖存儲器路替換電路,其進一步包含多線程數字信 號處理電路,用于在多線程數字信號處理器中替換所述犧牲路。
17. 根據權利要求IO所述的高速緩沖存儲器路替換電路,其進一步包含替換電路,用 于準許在不要求使用存儲位記錄所使用的犧牲路的情況下執(zhí)行所述替換步驟。
18.根據權利要求10所述的高速緩沖存儲器路替換電路,其進-一步包含遞增電路,用于僅在高速緩沖存儲器路未中的情況下遞增所述FIFO列表。
19. 一種數字信號處理器,其包含用于在高速緩沖存儲器標簽未中的情況下替換高速緩 沖存儲器組的多個組路中的一者的裝置,所述數字信號處理器包含用于根據所述高速緩沖存儲器路在高速緩沖存儲器路的FIFO列表上的位置來選 擇犧牲路作為所述待替換的高速緩沖存儲器路以供在數字信號處理器的操作中使 用的裝置;用于在所述高速緩沖存儲器組FIFO列表的末端處放置所述高速緩沖存儲器組的 后續(xù)高速緩沖存儲器標簽未中從而在下--高速緩沖存儲器標簽未中時重新使用犧 牲路的裝置;用于阻止犧牲路的重新使用直到所述犧牲路的初始分配避免所述高速緩沖存儲 器標簽與所述高速緩沖存儲器組之間的不一致性為止的裝置用于通過停止對重新使用請求的響應直到所述犧牲路的此初始分配完成為止來 阻止犧牲路的重新使用直到所述犧牲路的初始分配完成為止的裝置;以及用于通過重播重新使用請求直到所述犧牲路的此初始分配完成為止來阻止犧牲 路的重新使用直到所述犧牲路的初始分配完成為止的裝置。
20. 根據權利要求19所述的數字信號處理器,其進一步包含用于通過在所述高速緩沖 存儲器未中后將犧牲路放置在高速緩沖存儲器組FIFO列表的尾部上來選擇所述犧 牲路作為所述待替換的高速緩沖存儲器路的裝置,且其中所述FIFO的深度近似等 于所述高速緩沖存儲器組中的路的數目。
21. 根據權利要求19所述的數字信號處理器,其進一步包含用于在高速緩沖存儲器標 簽未中的情況下與數字信號處理器數據單元指令的執(zhí)行結合而替換高速緩沖存儲 器組的多個組路中的一者的裝置。
22. 根據權利要求19所述的數字信號處理器,其進 步包含用于在高速緩沖存儲器標 簽未中的情況下與數字信號處理器指令單元指令的執(zhí)行結合而替換高速緩沖存儲 器組的多個組路中的一者的裝置。
23. 根據權利要求22所述的數字信號處理器,其進 步包含用于將當前/即將到來的初級未中犧牲路與所述FIFO列表中的其它路進行比較 的裝置;用于將所述即將到來的初級未中的組地址與其它組地址進行比較的裝置;以及 用于響應于所述比較步驟而重播所述當前/即將到來的線程直到出現免受重新使 用冒險的犧牲路為止的裝置。
24. 根據權利要求19所述的數字信號處理器,其進 步包含用于將最近使用的犧牲路 添加到所述FIFO列表的尾部的裝置。
25. 根據權利要求19所述的數字信號處理器,其進一步包含用于在多線程數字信號處 理器中替換所述犧牲路的裝置。
26. 根據權利要求19所述的數字信號處理器,其進一步包含用于在不要求使用存儲位 記錄所使用的犧牲路的情況下執(zhí)行所述替換歩驟的裝置。
27. 根據權利耍求19所述的數字信號處理器,其進一步包含用于僅在高速緩沖存儲器 路未中的情況下遞增所述FIFO列表的裝置。
28. —種其中包含有計算機可讀程序代碼裝覽的計算機可用媒體,所述代碼裝置用于處 理數字信號處理器上的指令以用于在高速緩沖存儲器標簽未中的情況下替換高速 緩沖存儲器組的多個組路中的一者,所述計算機可讀媒體包含用于根據所述高速緩沖存儲器路在高速緩沖存儲器路的FIFO列表上的位置來選 擇犧牲路作為所述待替換的高速緩沖存儲器路以供在數字信號處理器的操作中使 用的計算機可讀程序代碼裝置;用于在所述高速緩沖存儲器組FIFO列表的末端處放置所述高速緩沖存儲器組的 后續(xù)高速緩沖存儲器標簽未中從而在下一高速緩沖存儲器標簽未中時重新使用犧 牲路的計算機可讀程序代碼裝置;用于阻止犧牲路的重新使用直到所述犧牲路的初始分配避免所述高速緩沖存儲 器標簽與所述高速緩沖存儲器組之間的不一致性為止的計算機可讀程序代碼裝置;用于通過停止對重新使用請求的響應直到所述犧牲路的此初始分配完成為止來 阻止犧牲路的重新使用直到所述犧牲路的初始分配完成為止的計算機可讀程序代碼裝置;用于通過重播重新使用請求直到所述犧牲路的此初始分配完成為止來阻止犧牲 路的重新使用直到所述犧牲路的初始分配完成為止的計算機可讀程序代碼裝置。
29.根據權利要求28所述的計算機可用媒體,其進一歩包含用于通過在所述高速緩沖 存儲器未中后將犧牲路放置在高速緩沖存儲器組FIFO列表的尾部上來選擇所述犧 牲路作為所述待替換的高速緩沖存儲器路的計算機可讀程序代碼裝置,且其中所述 FIFO的深度近似等于所述高速緩沖存儲器組中的路的數目。
全文摘要
本發(fā)明提供供在基于CDMA的產品和服務中使用的技術,其包括在標簽未中分配后替換高速緩存存儲器分配以便使多個組路的駐留最大化。此處,針對所述高速緩存存儲器形成犧牲路的先進先出(FIFO)替換列表的步驟,其中所述FIFO替換列表的深度近似等于所述高速緩沖存儲器組中的路的數目。方法和系統(tǒng)僅在標簽未中導致標簽未中分配的情況下將犧牲路放置在所述FIFO替換列表上,所述犧牲路被放置在所述FIFO替換列表的尾部處任何先前選定的犧牲路之后。通過例如以下方式阻止在所述犧牲路的先前分配未完成的情況下使用所述FIFO替換列表上的犧牲路停止重新使用請求,直到所述犧牲路的此初始分配完成為止,或者重播重新使用請求,直到所述犧牲路的此初始分配完成為止。
文檔編號G06F12/12GK101443740SQ200780017365
公開日2009年5月27日 申請日期2007年5月17日 優(yōu)先權日2006年5月17日
發(fā)明者穆罕姆德·艾哈邁德 申請人:高通股份有限公司