两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

用于具有動態(tài)分區(qū)的共享高速緩存的方法和裝置與流程

文檔序號:12142040閱讀:352來源:國知局
用于具有動態(tài)分區(qū)的共享高速緩存的方法和裝置與流程

本申請與和本申請同時提交的、標(biāo)題為“Method and Apparatus For Flexible Cache Partitioning By Sets And Ways Into Component Caches”的美國專利申請No.14/333,981相關(guān),故以引用方式將其全部內(nèi)容明確地并入本文。



背景技術(shù):

高速緩存分區(qū)以服務(wù)計算系統(tǒng)中的多個客戶端進(jìn)程(“客戶端”)具有一些利益。分區(qū)大小可以進(jìn)行變化,以匹配客戶端的性能需求。客戶端體驗穩(wěn)健的性能,因為其專用緩存中的數(shù)據(jù)不會由于其他客戶端的訪問而被驅(qū)逐??梢躁P(guān)閉空閑分區(qū)以減少功耗。但是,由于完成當(dāng)前高速緩存分區(qū)的方式所造成的限制,這些益處不如它們本可以實現(xiàn)的那么大。

當(dāng)前高速緩存只能在高速緩存通路(way)上進(jìn)行分區(qū),這具有多種限制。高速緩存分區(qū)數(shù)量受到高速緩存通路數(shù)量的限制,并且向高速緩存分區(qū)添加關(guān)聯(lián)性以減少高速緩存沖突減少高速緩存分區(qū)的可能的最大數(shù)量。根據(jù)該關(guān)聯(lián)性來確定最小通路分區(qū)大小。例如,具有8路相連的8個通路的8MB高速緩存的最小分區(qū)是1MB。此外,更小的高速緩存分區(qū)可能由于碎片化而導(dǎo)致高速緩存空間的丟失。使用同一個示例,將512KB的數(shù)據(jù)存儲在最小的1MB高速緩存分區(qū)中,將導(dǎo)致該高速緩存分區(qū)中512KB的空間未使用。根據(jù)關(guān)聯(lián)性來確定最小通路分區(qū)電源崩潰粒度。在相同的示例中,可能發(fā)生電源崩潰的最小粒度是1MB高速緩存分區(qū)。崩潰粒度的大小影響功率節(jié)省/使用,特別是在共享系統(tǒng)高速緩存替代多個專用存儲器的情況下,其中所述多個專用存儲器可以獨立地發(fā)生電源崩潰。

在移動片上系統(tǒng)(SoC)計算系統(tǒng)中面臨的另一個問題是子系統(tǒng)所產(chǎn)生的不同訪問模式。例如,像視頻和圖形之類的多媒體子系統(tǒng)具有更長的訪問時間,并受益于更長的高速緩存線,而來自于應(yīng)用中央處理單元(CPU)的訪問是更隨機的,并對于時延是敏感的,并且因此受益于更小的高速緩存線和更高的關(guān)聯(lián)性。并不是所有的潛在訪問模式,都能利用依賴于通路高速緩存分區(qū)的當(dāng)前高速緩存分區(qū)進(jìn)行更好地工作。常規(guī)的高速緩存分區(qū)為所有應(yīng)用和子系統(tǒng)提供單一大小的高速緩存。該高速緩存分區(qū)的大小可能使某些訪問模式比其他模式獲益更多。另一個示例是在圖像處理引擎和顯示引擎之間看到的生產(chǎn)者對消費者訪問模式,其可以受益于先進(jìn)先出(FIFO)替換策略。但是,保持這些引擎之間的轉(zhuǎn)換數(shù)據(jù)的高速緩存可能使該應(yīng)用程序使用低效的替換策略。



技術(shù)實現(xiàn)要素:

各個方面的方法和裝置提供用于對系統(tǒng)高速緩存進(jìn)行動態(tài)分區(qū)的電路和方法,其可以包括:從客戶端接收包括組件高速緩存標(biāo)識符的系統(tǒng)高速緩存訪問請求;從組件高速緩存配置表中,檢索所述組件高速緩存配置表中與所述組件高速緩存標(biāo)識符相關(guān)的集合移位特性和集合偏移特性;以及對系統(tǒng)高速緩存中,與由所述集合移位特性和所述集合偏移特性所指示的集合組內(nèi)的組件高速緩存的通路組的至少一部分相關(guān)的位置進(jìn)行激活。

在一個方面,對系統(tǒng)高速緩存中,與由所述集合移位特性和所述集合偏移特征指示的集合組中的組件高速緩存的通路組的至少一部分相關(guān)的所述位置進(jìn)行激活包括:對系統(tǒng)高速緩存中的所述位置進(jìn)行預(yù)留。在一個方面,對系統(tǒng)高速緩存中的所述位置進(jìn)行預(yù)留包括:針對系統(tǒng)高速緩存中的所述位置,在組件高速緩存預(yù)留表中設(shè)置預(yù)留指示符。

一個方面方法還可以包括:更新所述預(yù)留指示符,以改變與所述通路組和所述集合組的更新部分相關(guān)的在系統(tǒng)高速緩存中預(yù)留的位置的數(shù)量。

一個方面方法還可以包括:利用對所述組件高速緩存的所述通路組的活動的所述部分的指示來更新組件高速緩存活動通路表,其中,預(yù)留系統(tǒng)高速緩存中的所述位置包括:對組件高速緩存活動通路表的所述指示的所述通路進(jìn)行預(yù)留。

一個方面方法還可以包括:防止另一個客戶端訪問系統(tǒng)高速緩存中的所述位置。一個方面方法還可以包括:對系統(tǒng)高速緩存中的所述位置的至少一部分進(jìn)行釋放;對系統(tǒng)高速緩存中,與系統(tǒng)高速緩存中的所釋放的位置相關(guān)的位置進(jìn)行去激活。

在一個方面,所述組件高速緩存標(biāo)識符可以是第一組件高速緩存標(biāo)識符,所述組件高速緩存可以是第一組件高速緩存,所述方法還可以包括:裝載針對至少所述第一組件高速緩存標(biāo)識符的獎勵向量,所述獎勵向量被配置為指示與所述第一組件高速緩存標(biāo)識符相關(guān)聯(lián)的所述第一組件高速緩存擴(kuò)展到其的一個或多個通路;接收針對至少所述第一組件高速緩存標(biāo)識符的預(yù)留向量,所述預(yù)留向量被配置為指示被預(yù)留用于所述第一組件高速緩存的一個或多個通路;確定所述預(yù)留向量的一個或多個通路是否被第二組件高速緩存預(yù)留;響應(yīng)于確定所述第二組件高速緩存已預(yù)留所述預(yù)留向量的一個或多個通路,對所述第二組件高速緩存進(jìn)行去激活,以使由所述第二組件高速緩存預(yù)留的所述一個或多個通路未被預(yù)留;確定使用所述第一組件高速緩存是否包括使用所述獎勵向量的所述通路中的一個或多個通路;響應(yīng)于確定使用所述第一組件高速緩存的所述請求包括對所述獎勵向量的所述通路中的一個或多個通路的所述使用,確定所述獎勵向量的一個或多個通路是否被所述第二組件高速緩存預(yù)留;響應(yīng)于確定所述第二組件高速緩存已預(yù)留所述獎勵向量的一個或多個通路,對所述第二組件高速緩存進(jìn)行去激活,以使由所述第二組件高速緩存預(yù)留的所述一個或多個通路未被預(yù)留;以及為所述第一組件高速緩存預(yù)留一個或多個未被預(yù)留的通路。

一個方面包括一種計算設(shè)備,該計算設(shè)備具有彼此之間通信連接的處理器、系統(tǒng)高速緩存和系統(tǒng)高速緩存控制器,其中,所述系統(tǒng)高速緩存控制器被配置為執(zhí)行上面所描述的方面方法中的一個或多個的操作。

一個方面包括一種其上存儲有處理器可執(zhí)行軟件指令的非暫時性處理器可讀介質(zhì),所述處理器可執(zhí)行軟件指令使處理器和系統(tǒng)高速緩存控制器執(zhí)行上面所描述的方面方法中的一個或多個方面方法的操作

一個方面包括一種計算設(shè)備,該計算設(shè)備具有用于執(zhí)行上面所描述的方面方法中的一個或多個方面方法的功能的單元。

附圖說明

被并入本文并且構(gòu)成本說明書一部分的附圖,描繪了本發(fā)明的示例性方面,并且連同上面給出的概括描述以及下面給出的詳細(xì)描述一起來解釋本發(fā)明的特征。

圖1是描繪適合于實現(xiàn)一個方面的計算設(shè)備的組件框圖。

圖2是示出適合于實現(xiàn)一個方面的示例性多核處理器的組件框圖。

圖3是示出根據(jù)一個方面,適合于根據(jù)集合和通路將高速緩存存儲器分區(qū)成一些組件高速緩存的計算設(shè)備的組件框圖。

圖4是根據(jù)一個方面,示出根據(jù)集合和通路來可變地分區(qū)以實現(xiàn)組件高速緩存的示例性高速緩存存儲器的示意圖。

圖5是根據(jù)一個方面,示出一種示例性組件高速緩存配置表的示意圖。

圖6是根據(jù)一個方面,示出根據(jù)集合和通路被可變地分區(qū)成組件高速緩存的示例性系統(tǒng)高速緩存存儲器的示意圖。

圖7是根據(jù)一個方面,示出組件高速緩存的客戶端訪問的原理和處理流程圖。

圖8是根據(jù)一個方面,示出用于訪問組件高速緩存的地址轉(zhuǎn)換示例的原理和處理流程圖。

圖9是根據(jù)一個方面,示出使用物理地址來訪問組件高速緩存的地址轉(zhuǎn)換示例的原理和處理流程圖。

圖10是根據(jù)一個方面,示出使用結(jié)合定制索引的物理地址來訪問組件高速緩存的地址轉(zhuǎn)換示例的原理和處理流程圖。

圖11是適合于實現(xiàn)一個方面的示例性組件高速緩存激活/去激活控制命令的組件框圖。

圖12是適合于實現(xiàn)一個方面的示例性組件高速緩存激活/去激活控制狀態(tài)的組件框圖。

圖13是根據(jù)一個方面,示出示例性組件高速緩存活動通路表的示意圖。

圖14是根據(jù)一個方面,示出示例性組件高速緩存預(yù)留表的示意圖。

圖15是根據(jù)一個方面,示出一種示例性系統(tǒng)高速緩存存儲器的示意圖,該系統(tǒng)高速緩存具有分配給各個組件高速緩存的預(yù)留的高速緩存通路。

圖16是根據(jù)一個方面,示出一種示例性系統(tǒng)高速緩存存儲器的示意圖,該系統(tǒng)高速緩存具有分配給各個組件高速緩存的預(yù)留和獎勵的高速緩存通路。

圖17是根據(jù)一個方面,示出一種示例性系統(tǒng)高速緩存存儲器的示意圖,該系統(tǒng)高速緩存具有分配給各個組件高速緩存的預(yù)留的高速緩存通路。

圖18是根據(jù)一個方面,示出一種示例性系統(tǒng)高速緩存存儲器的示意圖,該系統(tǒng)高速緩存具有分配給各個組件高速緩存的預(yù)留和獎勵的高速緩存通路。

圖19是示出用于訪問系統(tǒng)高速緩存存儲器的組件高速緩存的一個方面方法的處理流程圖,其中該系統(tǒng)高速緩存存儲器根據(jù)集合和通路被分區(qū)成組件高速緩存。

圖20是示出用于訪問系統(tǒng)高速緩存存儲器的組件高速緩存的一個方面方法的處理流程圖,其中該系統(tǒng)高速緩存存儲器根據(jù)集合和通路被分區(qū)成組件高速緩存。

圖21是示出用于對高速緩存地址進(jìn)行轉(zhuǎn)換,以訪問系統(tǒng)高速緩存存儲器的組件高速緩存的一個方面方法的處理流程圖,其中該系統(tǒng)高速緩存存儲器根據(jù)集合和通路被分區(qū)成組件高速緩存。

圖22是示出用于動態(tài)地激活系統(tǒng)高速緩存存儲器的組件高速緩存的一個方面方法的處理流程圖,其中該系統(tǒng)高速緩存存儲器根據(jù)集合和通路被分區(qū)成組件高速緩存。

圖23是示出用于動態(tài)地去激活系統(tǒng)高速緩存存儲器的組件高速緩存的一個方面方法的處理流程圖,其中該系統(tǒng)高速緩存存儲器根據(jù)集合和通路被分區(qū)成組件高速緩存。

圖24是示出用于動態(tài)地重新調(diào)整系統(tǒng)高速緩存存儲器的組件高速緩存大小的一個方面方法的處理流程圖,其中該系統(tǒng)高速緩存存儲器根據(jù)集合和通路被分區(qū)成組件高速緩存。

圖25是示出適合于結(jié)合各個方面使用的示例性移動設(shè)備的組件框圖。

圖26是示出適合于結(jié)合各個方面使用的示例性移動設(shè)備的組件框圖。

具體實施方式

現(xiàn)在參照附圖來詳細(xì)地描述各個方面。只要有可能,就貫穿附圖使用相同的附圖標(biāo)記來指代相同或者類似的部件。對于特定示例和實現(xiàn)方式的引用只是用于說明目的,而不是旨在限制本發(fā)明或者權(quán)利要求的保護(hù)范圍。

本文可互換地使用術(shù)語“計算設(shè)備”和“移動設(shè)備”來指代下面中的任何一項或者全部:蜂窩電話、智能電話、個人或移動多媒體播放器、個人數(shù)據(jù)助理(PDA)、膝上型計算機、平板計算機、智能本、超級本、掌上計算機、無線電子郵件接收機、具備多媒體互聯(lián)網(wǎng)功能的蜂窩電話、無線游戲控制器、包括存儲器和可編程處理器的類似個人電子設(shè)備。雖然各個方面對于諸如智能電話之類的移動計算設(shè)備(其具有有限的能量資源)特別有用,但這些方面通常也可用于實現(xiàn)多個存儲器設(shè)備和有限的能量預(yù)算的任何電子設(shè)備,其中在該情況下,減少存儲器設(shè)備的功耗可以延長移動計算設(shè)備的電池工作時間。

典型地但不排外地,本文使用術(shù)語“片上系統(tǒng)”(SoC)指代一組相互連接的電子電路,其通常包括但不限于:硬件內(nèi)核、存儲器和通信接口。硬件內(nèi)核可以包括各種不同類型的處理器,例如,通用處理器、中央處理單元(CPU)、數(shù)字信號處理器(DSP)、圖形處理單元(GPU)、加速處理單元(APU)、輔助處理器、單核處理器和多核處理器。此外,硬件內(nèi)核還可以體現(xiàn)其它硬件和硬件組合,例如,現(xiàn)場可編程門陣列(FPGA)、專用集成電路(ASCI)、其它可編程邏輯器件、分離門邏輯器件、晶體管邏輯器件、性能監(jiān)控硬件、看門狗硬件和時間基準(zhǔn)??梢詫呻娐愤M(jìn)行配置,使得集成電路的部件位于單片的半導(dǎo)體材料(例如,硅)上。

在一個方面,用于對高速緩存進(jìn)行分區(qū)的方法實現(xiàn)了橫跨高速緩存通路并且橫跨高速緩存集合進(jìn)行分區(qū)來創(chuàng)建組件高速緩存,這是比用于創(chuàng)建組件高速緩存的傳統(tǒng)方法所可實現(xiàn)的更小的組件高速緩存。組件高速緩存配置表可以存儲各個組件高速緩存的定義該組件高速緩存的特征的參數(shù),其包括:針對集合的總數(shù)或者大小的參數(shù)、該組件高速緩存占據(jù)的集合的位置、該組件高速緩存占據(jù)的通路、該組件高速緩存是使用定制索引(例如,其根據(jù)虛擬地址來導(dǎo)出)來訪問還是根據(jù)物理地址(索引模式)導(dǎo)出的集合索引來訪問、以及用于組件高速緩存的替換策略。組件高速緩存配置表可以隨著客戶端請求高速緩存訪問進(jìn)行動態(tài)地填充,或者組件高速緩存配置表可以在啟動時間進(jìn)行填充,其定義組件高速緩存的數(shù)量,并在運行時保持靜態(tài)。每個組件高速緩存被給予組件高速緩存標(biāo)識符,該組件高速緩存標(biāo)識符與組件高速緩存配置表中針對該組件高速緩存標(biāo)識符的一組參數(shù)相對應(yīng)。

為了訪問通路和集合分區(qū)的組件高速緩存,客戶端可以通過互連到系統(tǒng)高速緩存(其被分區(qū)成組件高速緩存)的總線來請求訪問。訪問請求可以包括系統(tǒng)存儲器中的物理地址和組件高速緩存標(biāo)識符。系統(tǒng)高速緩存控制器可以在組件高速緩存配置表中查找針對該組件高速緩存標(biāo)識符的參數(shù)??梢詮慕M件高速緩存配置表中讀取用于定義以下各項的參數(shù):系統(tǒng)高速緩存的組的數(shù)量或大小、該組件高速緩存在系統(tǒng)高速緩存中占據(jù)的集合的位置、以及用于該組件高速緩存的索引模式。系統(tǒng)高速緩存控制器可以計算用于系統(tǒng)高速緩存訪問的集合索引和標(biāo)簽。該索引模式可以確定是使用物理地址還是定制索引來計算在系統(tǒng)高速緩存中的位置。在任意情況下,可以直接根據(jù)物理地址的多個最低有效位或者根據(jù)定制索引來導(dǎo)出該偏移。可以對用于指示集合的數(shù)量或大小的參數(shù)所確定的物理地址的中間部分中的一些比特進(jìn)行丟棄,所丟棄的比特可以由指示該組件高速緩存所占據(jù)的集合的位置以確定集合索引的參數(shù)來替代??梢詫ξ锢淼刂返男滦纬傻闹虚g部分的比特進(jìn)行重新排序。標(biāo)簽可以包括物理地址的最高有效位附加所丟棄比特。

系統(tǒng)高速緩存控制器可以在運行時實例化組件高速緩存(系統(tǒng)高速緩存的分區(qū))。高速緩存控制器可以基于設(shè)備的客戶端的任務(wù)請求,對組件高速緩存進(jìn)行激活和去激活??蛻舳丝梢詾榱巳蝿?wù)而請求組件高速緩存的激活,并且組件高速緩存激活/去激活控制命令寄存器可以向系統(tǒng)高速緩存控制器發(fā)送用于組件高速緩存激活的參數(shù)。存儲在寄存器中的這些參數(shù)可以包括:用于觸發(fā)該操作的比特、對該組件高速緩存進(jìn)行激活和去激活的操作碼、可以用于標(biāo)識該組件高速緩存的配置的組件高速緩存標(biāo)識符、指示在該組件高速緩存中使用的目標(biāo)通路的目標(biāo)通路參數(shù)、以及向這些目標(biāo)通路應(yīng)用操作信息的比特。

組件高速緩存的激活可以導(dǎo)致該組件高速緩存的預(yù)留。該激活可以指示被指定由客戶端用于任務(wù)的高速緩存通路。系統(tǒng)高速緩存控制器可以預(yù)留系統(tǒng)高速緩存中與該組件高速緩存相對應(yīng)的線,特別是該組件高速緩存的指定的通路,以便由請求方客戶端進(jìn)行使用。該預(yù)留可以導(dǎo)致高速緩存控制器設(shè)置預(yù)留比特,以說明高速緩存的一部分被預(yù)留用于激活該組件高速緩存的主操作者(master)。當(dāng)主操作者發(fā)出目標(biāo)針對于該組件高速緩存的寫操作時,可以寫入到該組件高速緩存的高速緩存線。對組件高速緩存進(jìn)行預(yù)留,避免與想要向該組件高速緩存的預(yù)留線寫入數(shù)據(jù)的其它客戶端發(fā)生沖突。組件高速緩存活動通路表可以用于指示活動的高速緩存通路,并用于通過嘗試向相同占據(jù)的組件高速緩存分配線來避免客戶端沖突。組件高速緩存激活/去激活控制狀態(tài)寄存器可以指示任務(wù)是否完成。當(dāng)客戶端的任務(wù)需要更多或者更少的高速緩存存儲器時,可以對組件高速緩存的預(yù)留空間(其部分地通過目標(biāo)高速緩存通路來指定)進(jìn)行動態(tài)改變,來支持該客戶端的任務(wù)。在完成該任務(wù)時,高速緩存存儲器控制器可以使組件高速緩存去激活,這使得子高速緩存的先前預(yù)留部分可用于任何客戶端進(jìn)行使用。組件高速緩存可以占據(jù)系統(tǒng)高速緩存的連續(xù)部分,或者可以占據(jù)系統(tǒng)高速緩存的非連續(xù)部分。

圖1示出了適合于結(jié)合各個方面使用的一種系統(tǒng),其包括與遠(yuǎn)程計算設(shè)備50進(jìn)行通信的計算設(shè)備10。計算設(shè)備10可以包括具有處理器14、存儲器16、通信接口18和存儲器接口20的SoC 12。該計算設(shè)備還可以包括諸如有線或無線調(diào)制解調(diào)器之類的通信組件22、存儲器組件24、用于建立到無線網(wǎng)絡(luò)30的無線連接32的天線26、和/或用于連接到至互聯(lián)網(wǎng)40的有線連接44的網(wǎng)絡(luò)接口28。處理器14可以包括各種硬件內(nèi)核中的任何硬件內(nèi)核,以及多個處理器內(nèi)核。SoC 12可以包括一個或多個處理器14。計算設(shè)備10可以包括多于一個SoC 12,從而增加處理器14和處理器內(nèi)核的數(shù)量。計算設(shè)備10還可以包括不與SoC 12相關(guān)聯(lián)的處理器內(nèi)核14。各個處理器14可以是如下面參照圖2所描述的多核處理器。處理器14可以各自被配置為用于特定目的,其可以與計算設(shè)備10的其它處理器14相同或者不同??梢詫⑾嗤虿煌渲玫奶幚砥?4和處理器內(nèi)核中的一個或多個組合在一起,作為如下面參照圖3所描述的計算設(shè)備10的一個或多個子系統(tǒng)的一部分。

SoC 12的存儲器16可以是配置用于存儲由處理器14進(jìn)行訪問的數(shù)據(jù)和處理器可執(zhí)行代碼的易失性或者非易失性存儲器。在一個方面,存儲器16可以被配置為至少臨時地存儲數(shù)據(jù)結(jié)構(gòu),例如,用于管理高速緩存存儲器的組件高速緩存的表,其中該高速緩存存儲器根據(jù)集合和通路被分區(qū),如下面參照圖5、13和圖14所描述的。如下面所進(jìn)一步詳細(xì)討論的,處理器內(nèi)核中的每個處理器內(nèi)核可以訪問高速緩存存儲器的各個組件高速緩存。

計算設(shè)備10和/或SoC 12可以包括配置為用于各種目的的一個或多個存儲器16。在一個方面,一個或多個存儲器16可以被配置為專用于以下面的方式來保存用于存儲組件高速緩存信息的數(shù)據(jù)結(jié)構(gòu):使該數(shù)據(jù)結(jié)構(gòu)信息能被訪問以管理處理器14的組件高速緩存請求。當(dāng)存儲這些數(shù)據(jù)結(jié)構(gòu)的存儲器16是非易失性的時,即使在計算設(shè)備10的電源關(guān)閉之后,存儲器16也可以保持這些數(shù)據(jù)結(jié)構(gòu)的信息。當(dāng)電源被再次打開并且計算設(shè)備10重新啟動時,非易失性存儲器16中存儲的這些數(shù)據(jù)結(jié)構(gòu)的信息可以可用于計算設(shè)備10。

通信接口18、通信組件22、天線26和/或網(wǎng)絡(luò)接口28可以一致地工作,使計算設(shè)備10能夠經(jīng)由無線連接32通過無線網(wǎng)絡(luò)30和/或通過有線網(wǎng)絡(luò)44,與遠(yuǎn)程計算設(shè)備50進(jìn)行通信。可以使用各種無線通信技術(shù)(例如,其包括用于無線通信的射頻頻譜)來實現(xiàn)無線網(wǎng)絡(luò)30,以向計算設(shè)備10提供到互聯(lián)網(wǎng)40的連接,其中通過互聯(lián)網(wǎng)40,其可以與遠(yuǎn)程計算設(shè)備50交換數(shù)據(jù)。

存儲接口20和存儲組件24可以一致地工作,以允許計算設(shè)備10將數(shù)據(jù)存儲在非易失性存儲介質(zhì)上??梢苑浅n愃朴诖鎯ζ?6的方面地對存儲器組件24進(jìn)行配置,其中,存儲組件24可以存儲數(shù)據(jù)結(jié)構(gòu),使得一個或多個處理器14可以訪問該數(shù)據(jù)結(jié)構(gòu)信息。即使在計算設(shè)備10的電源被關(guān)閉之后,存儲組件24(其是非易失性的)也可以保持?jǐn)?shù)據(jù)結(jié)構(gòu)信息。當(dāng)電源被再次打開,計算設(shè)備10重新啟動時,存儲器組件24上存儲的這些數(shù)據(jù)結(jié)構(gòu)信息可以可用于計算設(shè)備10。存儲器接口20可以控制針對存儲設(shè)備24的訪問,并且允許處理器14從存儲設(shè)備24讀取數(shù)據(jù)和向存儲設(shè)備24寫入數(shù)據(jù)。

可以對計算設(shè)備10的組件中的一些或全部組件進(jìn)行不同地布置和/或組合,同時仍然提供必要的功能。此外,計算設(shè)備10可以不限于每個組件中的一個組件,并且在計算設(shè)備10的各個配置中可以包括每個組件的多個實例。

圖2示出了適合于實現(xiàn)一個方面的多核處理器14。多核處理器14可以具有多個等同的處理器內(nèi)核200、201、202、203。處理器內(nèi)核200、201、202、203可以是等同的,其在于:單個處理器14的處理器內(nèi)核200、201、202、203可以被配置為用于相同目的,并且具有相同或類似的性能特性。例如,處理器14可以是通用處理器,并且處理器內(nèi)核200、201、202、203可以是等同的通用處理器內(nèi)核。替代地,處理器14可以是圖形處理單元或者數(shù)字信號處理器,并且處理器內(nèi)核200、201、202、203可以分別是等同的圖形處理器內(nèi)核或者數(shù)字信號處理器內(nèi)核。通過制造過程和材料的變化,處理器內(nèi)核200、201、202、203的性能特性可以在同一多核處理器14內(nèi)或者使用相同設(shè)計的處理器內(nèi)核的多核處理器14內(nèi),在處理器內(nèi)核之間彼此不同。在圖2所示出的示例中,多核處理器14包括四個處理器內(nèi)核200、201、202、203(即,處理器內(nèi)核0、處理器內(nèi)核1、處理器內(nèi)核2和處理器內(nèi)核3)。為了便于解釋,本文的示例可以指代圖2中所示出的四個處理器內(nèi)核200、201、202、203。但是,應(yīng)當(dāng)注意的是,圖2中所示出以及在本文中所描述的四個處理器內(nèi)核200、201、202、203僅僅作為示例提供,而不意味著是限制性的。計算設(shè)備10、SoC 12或者多核處理器14可以單獨地或者組合地包括少于或多于本文所示出和描述的四個處理器內(nèi)核200、201、202、203。

圖3示出了配置為根據(jù)集合和通路將高速緩存存儲器分區(qū)成組件高速緩存的計算設(shè)備。SoC 12可以包括如上所述的各種組件??梢允褂靡恍┻@樣的組件和額外的組件來實現(xiàn)組件高速緩存。例如,被配置為實現(xiàn)組件高速緩存的SoC 12可以包括系統(tǒng)集線器300、系統(tǒng)高速緩存302、系統(tǒng)高速緩存控制器304、CPU簇306、協(xié)議轉(zhuǎn)換器308、GPU 310、調(diào)制解調(diào)器DSP312、應(yīng)用DSP 314、存儲器接口316、照相機子系統(tǒng)318、視頻子系統(tǒng)320、顯示子系統(tǒng)322、片上系統(tǒng)網(wǎng)絡(luò)(NoC)324、存儲器控制器326和隨機存取存儲器(RAM)328。系統(tǒng)集線器300可以是SoC 12的管理各個處理器308、210、312、314對各個存儲器的訪問的組件。在一個方面,系統(tǒng)集線器300可以管理針對SoC 12的系統(tǒng)高速緩存302以及針對RAM 328的訪問??梢栽L問各種存儲器的處理器中的一些處理器可以包括在CPU簇306和各個子系統(tǒng)(例如,照相機、視頻和顯示子系統(tǒng)318、320、322)中,并且還可以包括諸如GPU 310、調(diào)制解調(diào)器DSP 312和應(yīng)用DSP 314之類的其它專用處理器。

系統(tǒng)高速緩存302可以是SoC 12中的用于替代或者補充與各個處理器和/或子系統(tǒng)相關(guān)聯(lián)的高速緩存存儲器的共享存儲器設(shè)備。系統(tǒng)高速緩存302可以對SoC 12的高速緩存存儲器資源進(jìn)行集中,使得各個處理器和子系統(tǒng)可以訪問系統(tǒng)高速緩存302以讀取和寫入被指定用于進(jìn)行重復(fù)和/或快速訪問的程序命令和數(shù)據(jù)。系統(tǒng)高速緩存302可以存儲來自各個處理器和子系統(tǒng)的數(shù)據(jù),以及來自計算設(shè)備的其它存儲器設(shè)備(例如,主存儲器、RAM 328和存儲器設(shè)備(如,硬盤驅(qū)動器))的數(shù)據(jù)。在一個方面,在由于從系統(tǒng)高速緩存302請求的項不能被定位而發(fā)生高速緩存未命中的情況下,這些存儲器和存儲設(shè)備可以對系統(tǒng)高速緩存302進(jìn)行備份。在一個方面,系統(tǒng)高速緩存302可以被用作用于各個處理器和子系統(tǒng)的暫存存儲器。與不使用系統(tǒng)高速緩存302的類似架構(gòu)的SoC的本地高速緩存存儲器的組合相比,系統(tǒng)高速緩存302可能在存儲空間和物理大小上更小。但是,如本文所進(jìn)一步描述的系統(tǒng)高速緩存302的管理可以允許更大的能量節(jié)省以及SoC 12的等同或更佳性能速度,盡管系統(tǒng)高速緩存的更小的存儲空間和物理大小。

系統(tǒng)高速緩存控制器304可以管理各個處理器和子系統(tǒng)對系統(tǒng)高速緩存302的訪問。系統(tǒng)高速緩存302的訪問管理的一部分可以包括:根據(jù)通路和集合二者對系統(tǒng)高速緩存存儲器空間進(jìn)行分區(qū)。根據(jù)通路和集合二者對系統(tǒng)高速緩存存儲器空間進(jìn)行分區(qū)可以導(dǎo)致:將系統(tǒng)高速緩存存儲器分區(qū)成系統(tǒng)高速緩存存儲器空間中的不同大小和位置的組件高速緩存。系統(tǒng)高速緩存控制器304可以維持這些組件高速緩存的記錄,并將各種特性/特征/參數(shù)與組件高速緩存中的每個組件高速緩存進(jìn)行相關(guān),如本文所進(jìn)一步描述的。

系統(tǒng)高速緩存控制器304可以接收用于指定特定的組件高速緩存的系統(tǒng)高速緩存訪問請求。系統(tǒng)高速緩存訪問請求還可以包括系統(tǒng)高速緩存訪問請求的組件高速緩存的特性。在一個方面,系統(tǒng)高速緩存控制器304可以單獨地在組件高速緩存配置請求中,在相同或者不同的通信總線上,接收組件高速緩存的特性。組件高速緩存配置請求可以是獨立信號,或者可以與系統(tǒng)高速緩存訪問請求相關(guān)聯(lián)。系統(tǒng)高速緩存控制器304可以將組件高速緩存配置請求接收成系統(tǒng)高速緩存訪問請求的一個組成部分。為了便于解釋,圍繞將組件高速緩存特性作為系統(tǒng)高速緩存訪問請求的一部分進(jìn)行接收來描述下面的示例,其并不意味著對系統(tǒng)高速緩存控制器304可以接收這些組件高速緩存特性的方式進(jìn)行限制。應(yīng)當(dāng)理解的是,可以經(jīng)由各種相關(guān)聯(lián)的或者獨立的信來接收組件高速緩存特性。

系統(tǒng)高速緩存控制器304可以使用所指定的組件高速緩存的信息和相關(guān)的特性,來控制針對該組件高速緩存和其相關(guān)記錄的訪問、更新和/或創(chuàng)建和預(yù)留。在一個方面,系統(tǒng)高速緩存控制器304可以基于來自系統(tǒng)高速緩存302的客戶端的系統(tǒng)高速緩存訪問請求來將系統(tǒng)高速緩存存儲器空間動態(tài)地分區(qū)成組件高速緩存。這些客戶端可以包括SoC 12的各個處理器和子系統(tǒng)。

CPU簇306可以包括一些通用處理器和/或通用處理器內(nèi)核的分組。CPU簇306可以經(jīng)由系統(tǒng)高速緩存控制器304來訪問系統(tǒng)高速緩存302。協(xié)議轉(zhuǎn)換器308可以將CPU簇306和系統(tǒng)高速緩存控制器304之間的通信從CPU簇306和系統(tǒng)高速緩存控制器304中的一項的標(biāo)準(zhǔn)協(xié)議或?qū)S袇f(xié)議轉(zhuǎn)換成適合于另一項的協(xié)議,以便在它們之間實現(xiàn)互操作性。CPU簇306可以向系統(tǒng)高速緩存控制器304發(fā)送用于指定特定的組件高速緩存和/或所指定的組件高速緩存的特性的系統(tǒng)高速緩存訪問請求。作為回應(yīng),系統(tǒng)高速緩存控制器可以更新和/或創(chuàng)建所指定的組件高速緩存的記錄,允許或者拒絕針對所指定的組件高速緩存的訪問,并向CPU簇306返回存儲在所指定的組件高速緩存中的信息。

類似于CPU簇306,像GPU 310、調(diào)制解調(diào)器DSP 312和應(yīng)用DSP 314的專用處理器可以經(jīng)由系統(tǒng)高速緩存控制器304來訪問系統(tǒng)高速緩存302。專用處理器310、312、314和系統(tǒng)高速緩存控制器304之間的通信,可以由專用的單獨存儲器接口316進(jìn)行管理。在一個方面,存儲器接口316可以管理多個類似的或者不同的專用處理器310、312、314和系統(tǒng)高速緩存控制器304之間的通信。

像照相機子系統(tǒng)318、視頻子系統(tǒng)320和顯示子系統(tǒng)322的各個子系統(tǒng),可以類似地經(jīng)由系統(tǒng)高速緩存控制器304和存儲器接口316來訪問系統(tǒng)高速緩存302。NoC 324可以管理子系統(tǒng)318、320、322和系統(tǒng)集線器300以及SoC 12的其它部件之間的通信業(yè)務(wù)。

系統(tǒng)高速緩存控制器304還可以管理SoC 12的各個處理器和子系統(tǒng)對RAM 328的訪問。雖然各個處理器和子系統(tǒng)可以經(jīng)由存儲器控制器326來向RAM 328做出直接的訪問請求,但在某些實例中,系統(tǒng)高速緩存訪問請求可以是針對于RAM 328的。在一個方面,當(dāng)在所指定的組件高速緩存中沒有發(fā)現(xiàn)從指定的組件高速緩存請求的信息時,系統(tǒng)高速緩存請求可能導(dǎo)致高速緩存未命中。結(jié)果,系統(tǒng)高速緩存控制器304可以向RAM 328指示系統(tǒng)高速緩存訪問請求,以獲取沒有在該組件高速緩存中發(fā)現(xiàn)的所請求的信息。在一個方面,針對于RAM 328的對于該信息的請求首先被指引到存儲器控制器326,所述存儲器控制器326可以控制針對RAM 328的訪問。針對于RAM 328的對于該信息的請求可以由系統(tǒng)高速緩存控制器304來發(fā)送,并且可以將所獲得的信息返回給系統(tǒng)高速緩存控制器304,以便寫入到組件高速緩存中,并將其從該組件高速緩存返回到做出系統(tǒng)高速緩存訪問請求的組件。在一個方面,可以在不寫入到組件高速緩存中的情況下直接地或者經(jīng)由系統(tǒng)高速緩存控制器304將得到的信息返回給做出系統(tǒng)高速緩存訪問請求的組件。

在一些方面,可以用固件來實現(xiàn)和配置系統(tǒng)高速緩存控制器304,以執(zhí)行這些方面方法的操作。在一些方面,高速緩存存儲器控制器304可以是通過控制器可執(zhí)行指令被配置為執(zhí)行方面方法的操作的可編程控制器。在一些方面,高速緩存存儲器控制器304可以通過固件和控制器可執(zhí)行指令的組合來實現(xiàn)和配置,以執(zhí)行方面方法的操作。

本文對SoC 12和其各個組件的描述僅僅意味著是示例性的而非限制性的。SoC 12的組件中的一些組件可以被可變地配置、組合和分離。組件中的一些組件可以被包括在更大或更少的數(shù)量中,并且可以位于SoC 12內(nèi)并在SoC 12內(nèi)進(jìn)行不同地連接,或者與SoC 12相分離。類似地,諸如其它存儲器、處理器、子系統(tǒng)、接口和控制器之類的眾多其它部件可以包括在SoC 12中,并且與系統(tǒng)高速緩存控制器304進(jìn)行通信以便訪問系統(tǒng)高速緩存302。

圖4示出了根據(jù)集合和通路進(jìn)行可變地分區(qū)以允許組件高速緩存的系統(tǒng)高速緩存。系統(tǒng)高速緩存400(例如,上文的圖3中所描述的系統(tǒng)高速緩存)可以被配置為包括多個通路402、404、406、408、410、412、414、416和數(shù)量N個集合418,其中N是正整數(shù)。根據(jù)通路402-416,對系統(tǒng)高速緩存400進(jìn)行劃分是已知的。在該示例中,系統(tǒng)高速緩存400包括八個通路402-416,并且根據(jù)八個通路402-416中的每個通路來劃分系統(tǒng)高速緩存400將得到具有八個分區(qū)的經(jīng)分區(qū)的系統(tǒng)高速緩存400,每個分區(qū)包括一個通路402-416和相應(yīng)的通路402-416的所有N個集合418。在一個方面,也可以使用通路402-416的組對系統(tǒng)高速緩存400進(jìn)行分區(qū)。繼續(xù)具有八個通路402-416的系統(tǒng)高速緩存400的示例,每個分區(qū)可以包括通路402-416中的兩個通路(得到四個分區(qū)),或者包括通路402-416中的四個通路(得到兩個分區(qū))。

為了創(chuàng)建組件高速緩存,可以通過數(shù)量N個集合的已定義的組對系統(tǒng)高速緩存400額外地分區(qū)。在一個方面,系統(tǒng)高速緩存控制器所使用的組件高速緩存的特性可以確定能將數(shù)量N個集合分區(qū)成多少集合組。在一個方面,該特性可以稱為集合移位。例如,不將系統(tǒng)高速緩存400分區(qū)成集合組,因此,集合移位可以是用于指示不根據(jù)集合組進(jìn)行分區(qū)的值(例如,空值或者零)。在另一個示例中,可以將系統(tǒng)高速緩存420分區(qū)成兩個集合組422、424。系統(tǒng)高速緩存420是與系統(tǒng)高速緩存400相同的系統(tǒng)高速緩存,但系統(tǒng)高速緩存420示出了:當(dāng)集合移位指示根據(jù)兩個集合組422、424進(jìn)行分區(qū)的值時的系統(tǒng)高速緩存400。對于系統(tǒng)高速緩存420來說,系統(tǒng)高速緩存控制器可以使用根據(jù)兩個集合組422、424對系統(tǒng)高速緩存420的分區(qū)所創(chuàng)建的額外組件高速緩存,來管理系統(tǒng)高速緩存存儲器空間的使用。這些組件高速緩存可以包括:通過通路劃分和集合組劃分的任意組合所創(chuàng)建的系統(tǒng)高速緩存420的分區(qū),如本文所進(jìn)一步詳細(xì)描述的。

類似地,系統(tǒng)高速緩存430可以與系統(tǒng)高速緩存400相同,除了系統(tǒng)高速緩存430示出了當(dāng)集合移位是指示根據(jù)四個集合組432、434、436、438進(jìn)行分區(qū)的值時的系統(tǒng)高速緩存400。類似地,系統(tǒng)高速緩存440示出了當(dāng)集合移位是指示根據(jù)八個集合組442、444、446、448、450、452、454、456進(jìn)行分區(qū)的值時的系統(tǒng)高速緩存400。在圖4所示出的這些示例性系統(tǒng)高速緩存430和440中的每個系統(tǒng)高速緩存中,系統(tǒng)高速緩存控制器可以使用通過根據(jù)四個集合組432、434、436、438或者八個集合組442-456對系統(tǒng)高速緩存430、440進(jìn)行分區(qū)所創(chuàng)建的額外組件高速緩存,來管理系統(tǒng)高速緩存存儲器空間的使用。這些示例中的組件高速緩存可以包括:根據(jù)通路劃分和集合組劃分的任意組合所創(chuàng)建的系統(tǒng)高速緩存430、440的分區(qū),如本文所進(jìn)一步詳細(xì)描述的。

可以使用各種形式的符號來指示集合移位(例如,整數(shù))。在一個方面,指示根據(jù)其對系統(tǒng)高速緩存存儲器空間進(jìn)行劃分的集合組的數(shù)量的集合移位特性可以指示集合組數(shù)量的增量改變。例如,集合移位特性值的改變(以指示集合組數(shù)量的下一個更高改變)可以指示對集合組的數(shù)量進(jìn)行增加、相乘、指數(shù)性增加或者根據(jù)某種其它函數(shù)進(jìn)行增加的增量變化。對于圖4中的示例而言,集合組的數(shù)量是2的冪,其中該冪是集合移位特性。這些集合組在大小上可以是相等的,并且每個集合組的組數(shù)量也可以是2的冪??梢栽O(shè)想的是,組的數(shù)量可以是另一個數(shù)的冪,這可能需要對某種硬件進(jìn)行差別化配置(如,除以非2的冪的整數(shù)),以計算如下面所進(jìn)一步描述的集合索引。

在一個方面,系統(tǒng)高速緩存控制器所使用的組件高速緩存的一個特性可以確定該組件高速緩存位于集合組422、424、432、434、436、438、442、444、446、448、450、452、454、456中的哪個集合組。在一個方面,該特性可以稱為集合偏移??梢允褂酶鞣N形式的符號來指示集合偏移。

繼續(xù)本文所描述的示例性集合組,所描述的集合組的總數(shù)是14,沒有統(tǒng)計數(shù)量N個集合418。對于該示例而言,集合偏移可以是三比特二進(jìn)制編碼,其中,當(dāng)不實現(xiàn)集合組時,不需要集合偏移。當(dāng)實現(xiàn)兩個集合組時,集合組422、424分別與集合偏移=000和100相關(guān)。當(dāng)實現(xiàn)四個集合組時,集合組432、434、436、438可以分別與集合偏移=000、010、100和110相關(guān)。類似地,當(dāng)實現(xiàn)八個集合組時,集合組442-456可以分別與集合偏移=000、001、010、011、100、101、110和111相關(guān)。

圖5示出了可以被系統(tǒng)高速緩存控制器用于管理各個組件高速緩存的特性的組件高速緩存配置表500。組件高速緩存配置表500可以包括組件高速緩存標(biāo)識符字段502、有效性指示符特性字段504、集合移位特性字段506、集合偏移特性字段508、目標(biāo)通路特性字段510、探測始終特性字段512、索引模式特性字段514、替換策略特性字段516和高速緩存線大小特性字段528。系統(tǒng)高速緩存的每個組件高速緩存可以與個體的組件高速緩存標(biāo)識符(如組件高速緩存標(biāo)識符特性字段502中所示出的)相關(guān)。

組件高速緩存標(biāo)識符可以由系統(tǒng)高速緩存控制器在來自SoC上的客戶端的系統(tǒng)高速緩存訪問請求中接收,并且由系統(tǒng)高速緩存控制器用于將系統(tǒng)高速緩存訪問請求與正確的組件高速緩存和其特性進(jìn)行匹配。在一個方面,當(dāng)接收到在組件高速緩存配置表500中不存在的組件高速緩存標(biāo)識符時,系統(tǒng)高速緩存控制器可以更新組件高速緩存配置表500,以包括所接收的組件高速緩存標(biāo)識符。

在一個方面,所接收的組件高速緩存標(biāo)識符可以存在于組件高速緩存配置表500中,但與該組件高速緩存標(biāo)識符相關(guān)的其它組件高速緩存特性中的一個或多個組件高速緩存特性與隨所接收的組件高速緩存標(biāo)識符一起接收的組件高速緩存特性不匹配。在這樣的情況下,系統(tǒng)高速緩存控制器可以使用所接收的組件高速緩存特性對組件高速緩存表500中與該組件高速緩存標(biāo)識符相關(guān)的組件高速緩存特性進(jìn)行更新??梢允褂酶鞣N符號來對組件高速緩存標(biāo)識符字段502中的組件高速緩存標(biāo)識符的值進(jìn)行符號化。

系統(tǒng)高速緩存中的每個組件高速緩存可以與有效性指示符相關(guān),如有效性指示符特性字段504中所示,并且可以用于指示組件高速緩存配置表500中針對相關(guān)組件高速緩存的有效條目。對于各種情形而言,可以將組件高速緩存的記錄標(biāo)記成有效或者無效,例如,使用與有效或無效條件相關(guān)的值或者標(biāo)志(例如,“0”或“1”)。系統(tǒng)高速緩存控制器可以允許對于與有效性指示符特性字段504中的有效性標(biāo)識符相關(guān)的組件高速緩存標(biāo)識符的系統(tǒng)高速緩存訪問請求。當(dāng)接收到對于與有效性指示符特性字段504中的無效標(biāo)識符相關(guān)的組件高速緩存標(biāo)識符的系統(tǒng)高速緩存訪問請求時,系統(tǒng)高速緩存控制器可以將該系統(tǒng)高速緩存訪問請求視作為錯誤。

組件高速緩存配置表500中的集合移位特性字段506可以用于指示如上所述的集合移位特性。如上所述,集合移位標(biāo)識系統(tǒng)高速緩存存儲器空間針對與相應(yīng)的集合移位值相關(guān)的組件高速緩存中的每個組件高速緩存被劃分成的集合組的數(shù)量。例如,針對指示僅僅兩個集合組分區(qū)的集合移位,存在眾多的由各種組合的集合和通路分區(qū)來構(gòu)成的組件高速緩存。例如,在圖5中,行522包括集合移位=1,在該示例中,其指示兩個集合組分區(qū)。行522表示組件高速緩存集合和通路分區(qū)中的僅僅一個分區(qū),包括集合偏移特性字段508中的一個值和目標(biāo)通路特性字段510中的一個值。存在著集合偏移特性字段508中的恰好相同的值與集合移位特性字段506中的相同值相關(guān)的目標(biāo)通路特性字段510中的其它值的眾多其它組合。對于表示由集合移位特性字段506中的集合移位=1所指示的兩個集合組分區(qū)中的另一個集合組分區(qū)的集合偏移特性字段508的其它可能的值來說,可以有甚至更多的組合。類似的示例包括針對集合移位特性字段506中的其它可能值,不同的組件高速緩存的集合和通路分區(qū)的更大數(shù)量的組合。在一個方面,可以在組件高速緩存配置表500中包括系統(tǒng)高速緩存的已知分區(qū)(即,整個高速緩存的或者僅通路的高速緩存分區(qū))。雖然由于組件高速緩存配置表500并不包括系統(tǒng)高速緩存的根據(jù)集合的分區(qū),因此組件高速緩存配置表500對于這些已知的分區(qū)來說是先前沒有必要的,但可以在組件高速緩存配置表500中包括這些已知分區(qū)。當(dāng)集合移位特性字段506包括集合移位=0或者空值時,可以在組件高速緩存配置表500中規(guī)定系統(tǒng)高速緩存的已知分區(qū),如在行518和526中。這種集合移位值可以指示:沒有根據(jù)集合對與其相關(guān)聯(lián)的組件高速緩存進(jìn)行分區(qū)。根據(jù)集合來劃分的組件高速緩存可以與大于零的集合移位值相關(guān)聯(lián)。可以使用各種符號來對組件集合移位特性字段506中的集合移位的值進(jìn)行符號化。

組件高速緩存配置表500中的集合偏移特性字段508可以用于指示:指出該相關(guān)的組件高速緩存所位于的集合組的集合偏移特性。如上所述,組件高速緩存部分地由集合組分區(qū)與通路分區(qū)的組合構(gòu)成。集合偏移特性可以標(biāo)識集合組分區(qū)的數(shù)量,并且集合偏移特性可以指示包含相關(guān)的組件高速緩存的該數(shù)量的集合組請求內(nèi)的特定集合組。如上所述,每個集合組可以與將在組件高速緩存配置表500中的集合偏移特性字段508里表示的特定集合偏移特性值相關(guān)。具體而言,在一個方面,集合移位和集合偏移的組合可以定義包含組件高速緩存的集合組,這是由于對應(yīng)于一個集合移位值的集合偏移值可能與對應(yīng)于另一個集合移位值的集合偏移值相重疊。例如,每個集合移位可以包括集合偏移=000,其可以與第一集合組相關(guān)。這是由于,對于指示多個集合組的每個集合移位值來說,存在至少第一集合組。因此,對應(yīng)于集合移位=1的集合偏移=000可以表示對應(yīng)于另一個集合移位值的集合偏移=000的不同集合組。此外,還可以向各個可能的集合組分配唯一的集合偏移值??梢允褂酶鞣N符號來對組件集合偏移特性字段508中的集合移位的值進(jìn)行符號化。

組件高速緩存配置表500中的目標(biāo)通路特性字段510可以用于指示目標(biāo)通路特性,所述目標(biāo)通路特性可以指示相關(guān)的組件高速緩存所位于的通路組分區(qū)。就像集合組,通路組可以包括:組件高速緩存可以位于的系統(tǒng)高速緩存存儲器空間的通路。對于任何組件高速緩存來說,不管集合移位還是集合偏移,目標(biāo)通路都可以指示系統(tǒng)高速緩存的單個或者連續(xù)通路的任意組合。組件高速緩存的通路組分區(qū)可以允許在運行時,靜態(tài)地和動態(tài)地對該組件高速緩存的關(guān)聯(lián)性進(jìn)行定制。在組件高速緩存配置表500中,可以將目標(biāo)通路值的所有組合與集合移位和集合偏移值的任意組合進(jìn)行相關(guān)。組件高速緩存配置表500中的集合移位、集合偏移和目標(biāo)通路的組合為系統(tǒng)高速緩存控制器定義所有的可能組件高速緩存。在一個方面,目標(biāo)通路值可以通過一個比特向量來表示,其中該向量中的每個比特表示系統(tǒng)高速緩存的個體通路。在組件高速緩存配置表500中,以十六進(jìn)制來表示該比特向量。返回到與行522有關(guān)的示例,在行522中表示的系統(tǒng)高速緩存與圖4中的系統(tǒng)高速緩存420相同,具有八個通路和兩個集合組。在該示例中,目標(biāo)通路特性字段510包含0xF0的值,其還可以表示成二進(jìn)制比特向量1111 0000。因此,在該示例中,該組件高速緩存可以位于通過“F”或者“1”值所指示的四個通路中,它們與圖4中的系統(tǒng)高速緩存420的通路402、404、406和410相關(guān)??梢允褂酶鞣N符號來對目標(biāo)通路特性字段508中的目標(biāo)通路特性的值進(jìn)行符號化。

組件高速緩存配置表500中的探測始終特性字段512可以用于指示:為了訪問該組件高速緩存,是否對該系統(tǒng)高速緩存的所有通路的標(biāo)簽都進(jìn)行查找或者探測。當(dāng)探測所有通路特性指示對系統(tǒng)高速緩存的所有通路都進(jìn)行探測時,組件高速緩存的探測不受到目標(biāo)通路值的限制。這可以是動態(tài)組件高速緩存中的情形,這能夠改變其集合組內(nèi)的大小,即,改變其目標(biāo)通路。因此,如果組件高速緩在不同的時間處增大或縮小,仍然可以在系統(tǒng)高速緩存中的相同集合組里找到不再是該組件高速緩存的一部分的通路中所存儲的信息。當(dāng)組件高速緩存是靜態(tài)的,使得其不會改變該組件高速緩存所占據(jù)的通路群時,探測所有特性字段512可以包含空值或者用于指示不針對相關(guān)的組件高速緩存啟動探測所有通路特征的值。這可以通過使標(biāo)簽查找最小化來減少功耗,并比較系統(tǒng)高速緩存的所有通路間的操作。

組件高速緩存配置表500中的索引模式特性字段514可以用于指示是使用物理索引化模式(PI)下的物理地址,還是使用定制索引化模式(CI)下的定制索引,對相關(guān)的組件高速緩存做出索引。在一個方面,物理尋址可能導(dǎo)致不可預(yù)測的和有時過度的緩存沖突(根據(jù)存儲器位置),因此可以使用定制索引化模式來訪問組件高速緩存。可以使用任何形式的定制索引。在一個方面,定制索引可以包括虛擬地址索引,以便例如根據(jù)高級操作系統(tǒng)存儲器分配方案來確??深A(yù)測的沖突未命中。另一個方面可以使用定制索引與虛擬地址最高有效位的哈希運算,以使沖突未命中減到最小。在物理索引化模式下,系統(tǒng)高速緩存控制器可以將系統(tǒng)高速緩存的物理地址接收成來自客戶端的系統(tǒng)高速緩存訪問請求的一部分,并且使用所接收的系統(tǒng)高速緩存的物理地址,將其轉(zhuǎn)換成系統(tǒng)高速緩存中的組件高速緩存的物理地址。在定制索引化模式下,系統(tǒng)高速緩存控制器可以將系統(tǒng)高速緩存的物理地址和定制索引接收成來自客戶端的系統(tǒng)高速緩存訪問請求的一部分,并且使用所接收的系統(tǒng)高速緩存的物理地址和所接收的定制索引,將它們轉(zhuǎn)換成系統(tǒng)高速緩存中的組件高速緩存的物理地址。本文將進(jìn)一步描述用于將所接收的系統(tǒng)高速緩存的物理地址和/或所接收的定制索引轉(zhuǎn)換成系統(tǒng)高速緩存中的組件高速緩存的物理地址的一個方面處理。

組件高速緩存配置表500中的替換策略特性字段516可以用于指示用于在相關(guān)的組件高速緩存中存儲的信息的替換策略。一些這樣的替換策略可以包括已知的替換策略,其包括:最近使用、最近最少使用、先進(jìn)先出、后進(jìn)先出和隨機替換策略。其它已知和專有替換策略也可以用于各個組件高速緩存中存儲的信息??梢愿鶕?jù)替換策略特性字段516,為每個組件高速緩存來定制替換策略。

組件高速緩存配置表500中的高速緩存線大小特性字段528可以用于指示用于相關(guān)的組件高速緩存的高速緩存線的缺省或者定制大小。缺省高速緩存線大小可以是系統(tǒng)高速緩存存儲器的標(biāo)準(zhǔn)高速緩存線大小。在一個方面,當(dāng)在組件高速緩存配置表500中創(chuàng)建對應(yīng)的組件高速緩存時,可以針對這些組件高速緩存中的一些或全部組件高速緩存將高速緩存線大小特性字段528設(shè)置為缺省高速緩存線大小。在一個方面,空值還可以指示缺省高速緩存線大小。在一個方面,可以將高速緩存線大小特性字段528設(shè)置為定制高速緩存線大小,所述定制高速緩存線大小可以是當(dāng)組件高速緩存在組件高速緩存配置表500中被創(chuàng)建時從存儲器設(shè)置的,或者可以是與系統(tǒng)高速緩存訪問請求相關(guān)聯(lián)地設(shè)置的。當(dāng)指定的定制高速緩存線大小與缺省高速緩存線大小相同時,該定制高速緩存線大小可以包括缺省高速緩存線大小。在圖5所示的示例中,在行518-526中所表示的組件高速緩存可以在高速緩存線大小特性字段528中包括不同的值。如圖所示,可以通過以數(shù)字信息的單位(例如,比特、字節(jié)、兆字節(jié)和其它變型)進(jìn)行測量的大小值來表示這些值。此外,還可以以高速緩存線可以橫跨的系統(tǒng)高速緩存存儲器的集合和或通路的數(shù)量的方式來表示這些值。

在一個方面,還可以使用集合移位特性字段506和/或目標(biāo)通路特性字段510來確定高速緩存線大小。如上所述,集合移位特性字段506可以指示在組件高速緩存中使用的系統(tǒng)高速緩存存儲器的集合的數(shù)量,并且目標(biāo)通路特性字段510可以指示系統(tǒng)高速緩存存儲器的通路。組件高速緩存中的高速緩存線的大小可以取決于構(gòu)成該組件高速緩存的高速緩存集合和/或通路的數(shù)量。因此,可以通過設(shè)置集合移位特性字段506和/或目標(biāo)通路特性字段510來實現(xiàn)對用于對應(yīng)的組件高速緩存的高速緩存線大小進(jìn)行定制。

在一個方面,組件高速緩存配置表500可以是靜態(tài)的,其在于:至少對于組件高速緩存標(biāo)識符字段502、集合移位特性字段506、集合偏移特性字段508和目標(biāo)通路特性字段510來說,可以在組件高速緩存配置表500中表示每個可能的組件高速緩存。其它字段502、512、514和516不一定定義組件高速緩存,而是表示組件高速緩存可以是靜態(tài)或者可變的特性。因此,在靜態(tài)高速緩存配置表500中,可以針對與組件高速緩存標(biāo)識符相關(guān)的集合移位、集合偏移和目標(biāo)通路的每個組合都存在行。在靜態(tài)高速緩存配置表500中,其它字段502、512、514和516可以仍然是可變的,并且允許它們的值發(fā)生改變。在一個方面,組件高速緩存配置表500可以是動態(tài)的,其在于:可以在運行時期間,向組件高速緩存配置表500增加和從組件高速緩存配置表500中刪除與組件高速緩存標(biāo)識符相關(guān)的集合移位、集合偏移和目標(biāo)通路的各種組合。類似于靜態(tài)高速緩存配置表500,其它字段502、512、514和516不一定定義組件高速緩存,并且可以是可變的,并且允許它們的值發(fā)生改變。

圖6示出了根據(jù)集合和通路被可變地分區(qū)成組件高速緩存的系統(tǒng)高速緩存600。圖6中所示出并且本文所描述的組件高速緩存僅僅意味著是示例性的,并且決不意味著是限制性的。圖6中所示出的組件高速緩存與圖5的行518、520、522、524和526中所示出的組件高速緩存的非限制性示例相關(guān)。組件高速緩存602與組件高速緩存配置表500中的行518相關(guān)。在該示例中,在行518中,集合移位值是空或者零。集合偏移值是不相關(guān)的(由于不存在集合組分區(qū)),但還可以是空或零。目標(biāo)通路包括系統(tǒng)高速緩存600的所有通路402-416,如目標(biāo)通路=0xFF所指示的,其中在比特向量中,其可以表示成1111 1111,如上所述。

在圖6所示出的示例中,組件高速緩存604與組件高速緩存配置表500中的行520相關(guān)。在該示例中,在行520中,集合移位=3可以表示系統(tǒng)高速緩存600被分區(qū)成八個集合組442-456。集合偏移=100可以表示組件高速緩存604位于集合組450中。由比特向量0000 1100所表示的目標(biāo)通路=0x0C可以表示組件高速緩存604位于通路410和412中。

在圖6所示出的示例中,組件高速緩存606與組件高速緩存配置表500中的行522相關(guān)。在該示例中,在行522中,集合移位=1可以表示,系統(tǒng)高速緩存600被分區(qū)成兩個集合組422和424。集合偏移=000可以表示組件高速緩存604位于集合組422中。由比特向量1111 0000所表示的目標(biāo)通路=0xF0可以表示組件高速緩存604位于通路402、404、406和408中。

在圖6所示出的示例中,組件高速緩存608與組件高速緩存配置表500中的行524相關(guān)。在該示例中,在行524中,集合移位=2可以表示系統(tǒng)高速緩存600被分區(qū)成四個集合組432-438。集合偏移=110可以表示組件高速緩存604位于集合組438中。通過比特向量0111 1000所表示的目標(biāo)通路=0x78可以表示組件高速緩存604位于通路404、406、408和410中。

在圖6所示出的示例中,組件高速緩存610與組件高速緩存配置表500中的行526相關(guān)。在該示例中,在行526中,集合移位值是空或零。集合偏移值是不相關(guān)的(由于不存在集合組分區(qū)),但還可以是空或零。目標(biāo)通路包括系統(tǒng)高速緩存600的通路416,如目標(biāo)通路=0x01所指示的,在比特向量中,其可以表示成0000 0001。

圖6僅示出了系統(tǒng)高速緩存控制器可以使用組件高速緩存配置表500來管理的潛在組件高速緩存的很少示例。雖然在圖6中將組件高速緩存604、606、608和610示出成占據(jù)系統(tǒng)高速緩存600中的非重疊位置(除了組件高速緩存602之外),但應(yīng)當(dāng)注意的是,這樣做只是為便于解釋目的,并且很多組件高速緩存可能與其它組件高速緩存重疊(由于它們與組件高速緩存602重疊)。并不是所有組件高速緩存同時都是活動的,因此系統(tǒng)高速緩存控制器可以對于重疊的組件高速緩存的使用進(jìn)行管理,如本文所進(jìn)一步討論的。此外,還應(yīng)當(dāng)注意的是,不同組件高速緩存的參數(shù)可能導(dǎo)致每個組件高速緩存具有不同的高速緩存線大小。由于每個組件高速緩存包括系統(tǒng)高速緩存的整個的高速緩存集合的分區(qū),因此與每個組件高速緩存相關(guān)聯(lián)的高速緩存線可以少于高速緩存通路中的所有高速緩存集合。與沒有根據(jù)高速緩存集合進(jìn)行分區(qū)相比,這可以導(dǎo)致更小的高速緩存線,并且每個組件高速緩存的高速緩存集合的數(shù)量(由集合移位特性來定義)可以確定每個組件高速緩存的高速緩存線大小。

圖7示出了組件高速緩存的客戶端訪問的示例。例如,客戶端可以包括程序軟件、操作系統(tǒng)軟件、計算設(shè)備固件、處理器、處理器內(nèi)核或計算設(shè)備子系統(tǒng)和系統(tǒng)存儲器管理單元,并且可以進(jìn)行針對從系統(tǒng)高速緩存302的組件高速緩存讀取和向其寫入的系統(tǒng)高速緩存訪問請求。一個或多個客戶端進(jìn)行的系統(tǒng)高速緩存訪問請求可以在針對系統(tǒng)高速緩存作出的請求和從系統(tǒng)高速緩存接收的響應(yīng)中發(fā)生變化。來自客戶端的系統(tǒng)高速緩存訪問請求可以包括:諸如處理器內(nèi)核A 700、處理器內(nèi)核B 702、處理器內(nèi)核C 704、處理器內(nèi)核D 706和處理器內(nèi)核E 708之類的處理器內(nèi)核發(fā)送信號,以便請求從系統(tǒng)高速緩存302讀取數(shù)據(jù)或者向系統(tǒng)高速緩存302寫入數(shù)據(jù)。

處理器700-708可以包括虛擬地址或物理地址、組件高速緩存標(biāo)識符和組件高速緩存特性、以及針對讀取或?qū)懭氲南到y(tǒng)高速緩存訪問請求。在一個方面,系統(tǒng)存儲器管理單元710、712、714、716可以是SoC上的在處理器、處理器內(nèi)核或子系統(tǒng)和系統(tǒng)高速緩存控制器之間的獨立組件,也可以集成到相同組件中的一個或多個組件中。系統(tǒng)存儲器管理單元710、712、714、716可以接收系統(tǒng)高速緩存訪問請求、虛擬地址、組件高速緩存標(biāo)識符和組件高速緩存特性。根據(jù)虛擬地址,系統(tǒng)存儲器管理單元710、712、714、716可以確定針對系統(tǒng)高速緩存存儲器空間的相關(guān)物理地址。在一個方面,系統(tǒng)存儲器管理單元710、712、714、716可以根據(jù)該虛擬地址來構(gòu)造定制索引。系統(tǒng)存儲器管理單元710、712、714、716可以將系統(tǒng)高速緩存訪問請求、針對系統(tǒng)高速緩存的物理地址、定制索引、組件高速緩存標(biāo)識符和組件高速緩存特性轉(zhuǎn)發(fā)給系統(tǒng)高速緩存302。在一個方面,如本文所進(jìn)一步描述的,系統(tǒng)高速緩存控制器可以接收系統(tǒng)存儲器管理單元710、712、714、716所轉(zhuǎn)發(fā)的信息,并且將系統(tǒng)高速緩存存儲器空間的物理地址轉(zhuǎn)換成用于所識別的組件高速緩存的物理地址。

下面的示例描述了各種類型的系統(tǒng)高速緩存存儲器訪問請求。一個示例可以包括:處理器內(nèi)核A 700向組件高速緩存A 720作出系統(tǒng)高速緩存存儲器訪問請求,其指定使用物理索引化模式。處理器內(nèi)核A700可以發(fā)送具有組件高速緩存A 720的組件高速緩存標(biāo)識符、針對系統(tǒng)高速緩存存儲器空間的虛擬地址和至少物理索引化模式特性指示符的其系統(tǒng)高速緩存存儲器訪問請求。系統(tǒng)存儲器管理單元A 710可以接收處理器內(nèi)核A700所發(fā)送的信息,確定系統(tǒng)高速緩存存儲器空間中與該虛擬地址相關(guān)的物理地址,并且將該系統(tǒng)高速緩存存儲器訪問請求連同組件高速緩存標(biāo)識符、組件高速緩存特性和針對系統(tǒng)高速緩存的物理地址進(jìn)行轉(zhuǎn)發(fā)。在一個方面,系統(tǒng)存儲器管理單元710可以構(gòu)造定制索引,也可以不構(gòu)造定制索引。由于指定了物理索引化模式,因此構(gòu)造定制索引在該實例中并不是必需的,所以將不使用定制索引。但是,在一個方面,可以對定制索引進(jìn)行構(gòu)造和轉(zhuǎn)發(fā),但不使用。在沒有指定索引化模式的方面,可以將定制索引化模式與組件高速緩存配置表中的組件高速緩存標(biāo)識符進(jìn)行相關(guān),無論如何,在沒有指定索引化模式來提供定制索引的實例中,這可以是有益的。系統(tǒng)高速緩存302可以使用系統(tǒng)存儲器管理單元710所轉(zhuǎn)發(fā)的信息來訪問組件高速緩存A720。在一個方面,組件高速緩存A 720可以使它存儲的數(shù)據(jù)的改變與RAM328相一致。

另一個示例可以包括:處理器內(nèi)核B 702向組件高速緩存B 722作出指定使用定制索引化模式的系統(tǒng)高速緩存存儲器訪問請求。處理器內(nèi)核B 702可以發(fā)送具有組件高速緩存B 722的組件高速緩存標(biāo)識符、針對系統(tǒng)高速緩存存儲器空間的虛擬地址和至少定制索引化模式特性指示符的其系統(tǒng)高速緩存存儲器訪問請求。系統(tǒng)存儲器管理單元B 712可以接收處理器內(nèi)核B702所發(fā)送的信息,確定系統(tǒng)高速緩存存儲器空間中與該虛擬地址相關(guān)的物理地址,構(gòu)造定制索引,將該系統(tǒng)高速緩存存儲器訪問請求、組件高速緩存標(biāo)識符、組件高速緩存特性、針對系統(tǒng)高速緩存的物理地址和定制索引進(jìn)行轉(zhuǎn)發(fā)。系統(tǒng)高速緩存302可以使用系統(tǒng)存儲器管理單元B 712所轉(zhuǎn)發(fā)的信息來訪問組件高速緩存B 722。在一個方面,組件高速緩存B 722可以使它存儲的數(shù)據(jù)的改變與RAM 328相一致。

在一個示例中,處理器內(nèi)核C 704可以使用針對系統(tǒng)高速緩存的物理地址,向組件高速緩存C 724作出系統(tǒng)高速緩存存儲器訪問請求。處理器內(nèi)核C 704可以直接向系統(tǒng)高速緩存302發(fā)送具有組件高速緩存C 722的組件高速緩存標(biāo)識符、針對系統(tǒng)高速緩存存儲器空間的虛擬地址和任何組件高速緩存特性的其系統(tǒng)高速緩存存儲器訪問請求。系統(tǒng)高速緩存302可以使用處理器內(nèi)核C 704所發(fā)送的信息來訪問組件高速緩存C 724。

另一個示例可以包括:處理器內(nèi)核D 706向缺省組件高速緩存D 726作出系統(tǒng)高速緩存存儲器訪問請求,所述缺省組件高速緩存D 726可以表示涵蓋整個系統(tǒng)高速緩存的組件高速緩存(例如,圖6的組件高速緩存602),而不是涵蓋系統(tǒng)高速緩存的分區(qū)的組件高速緩存。處理器內(nèi)核D 706可以發(fā)送具有針對系統(tǒng)高速緩存存儲器空間的虛擬地址的其系統(tǒng)高速緩存存儲器訪問請求。由于系統(tǒng)高速緩存存儲器訪問請求是針對于缺省組件高速緩存D 726的,因此處理器內(nèi)核D 706不需要發(fā)送組件高速緩存標(biāo)識符或組件高速緩存特性??梢园l(fā)送缺省組件高速緩存標(biāo)識符(例如,空或零),并使用其在組件高速緩存配置表中識別出該系統(tǒng)高速緩存存儲器訪問請求是針對于缺省組件高速緩存的。系統(tǒng)存儲器管理單元D 716可以接收處理器內(nèi)核D 706所發(fā)送的信息,確定系統(tǒng)高速緩存存儲器空間中與該虛擬地址相關(guān)的物理地址,并且將該系統(tǒng)高速緩存存儲器訪問請求、組件高速緩存標(biāo)識符(當(dāng)提供時)和針對系統(tǒng)高速緩存的物理地址進(jìn)行轉(zhuǎn)發(fā)。系統(tǒng)高速緩存302可以使用系統(tǒng)存儲器管理單元D 716所轉(zhuǎn)發(fā)的信息,來訪問缺省組件高速緩存D 726。在一個方面,缺省組件高速緩存D 726可以使它存儲的數(shù)據(jù)的改變與RAM 328相一致。

在一個示例中,處理器內(nèi)核E 708可以進(jìn)行不可緩存系統(tǒng)高速緩存存儲器訪問請求。在該示例中,該不可緩存系統(tǒng)高速緩存存儲器訪問請求可以是通過系統(tǒng)高速緩存302被指引到RAM 328的。處理器內(nèi)核E 708可以發(fā)送具有系統(tǒng)高速緩存存儲器空間的虛擬地址的其不可緩存系統(tǒng)高速緩存存儲器訪問請求。系統(tǒng)存儲器管理單元E 718可以接收處理器內(nèi)核E 708所發(fā)送的信息,確定系統(tǒng)高速緩存存儲器空間中與該虛擬地址相關(guān)的物理地址,將該系統(tǒng)高速緩存存儲器訪問請求和針對系統(tǒng)高速緩存的物理地址進(jìn)行轉(zhuǎn)發(fā)。系統(tǒng)高速緩存302可以使用系統(tǒng)存儲器管理單元E 718所轉(zhuǎn)發(fā)的信息,訪問RAM 328來執(zhí)行所請求的存儲器訪問功能。

圖8示出了用于訪問組件高速緩存的地址轉(zhuǎn)換。上面所提及的系統(tǒng)高速緩存控制器的地址轉(zhuǎn)換將系統(tǒng)高速緩存存儲器空間800中的物理地址轉(zhuǎn)換成系統(tǒng)高速緩存存儲器空間中的組件高速緩存814的物理地址。在一個方面,系統(tǒng)高速緩存存儲器空間800中的物理地址可以包括標(biāo)簽802和具有集合索引804和塊偏移806的物理索引。組件高速緩存814的物理地址可以包括擴(kuò)展的標(biāo)簽816和具有集合索引818和塊偏移820的修改的物理索引。如上所述,系統(tǒng)高速緩存控制器可以接收該系統(tǒng)高速緩存訪問請求的信息以及與之有關(guān)的信息,包括系統(tǒng)高速緩存存儲器空間800中的物理地址、組件高速緩存標(biāo)識符和組件高速緩存特性(例如,索引化模式)。系統(tǒng)高速緩存控制器可以使用該信息來確定組件高速緩存814的物理地址。系統(tǒng)高速緩存控制器可以使用組件高速緩存索引化模式特性(當(dāng)利用系統(tǒng)高速緩存存儲器訪問請求來提供時),以針對也利用系統(tǒng)高速緩存訪問請求所接收的對應(yīng)組件高速緩存標(biāo)識符,更新組件高速緩存配置表500中的索引化模式字段。系統(tǒng)高速緩存控制器可以使用該組件高速緩存標(biāo)識符,從組件高速緩存配置表500中確定適當(dāng)?shù)乃饕J?、集合移位和集合偏移,以便確定該組件高速緩存標(biāo)識符所對應(yīng)的組件高速緩存814的物理地址。

系統(tǒng)高速緩存控制器可以使用系統(tǒng)高速緩存存儲器空間800中的物理地址的一部分,來確定用于確定組件高速緩存814的物理地址的部分。例如,系統(tǒng)高速緩存控制器可以使用來自于系統(tǒng)高速緩存存儲器空間800中的物理地址的塊偏移806來確定組件高速緩存814的物理地址的塊偏移820。在一個方面,塊偏移806和塊偏移820中的值可以是相同的。系統(tǒng)高速緩存控制器可以使用標(biāo)簽802和系統(tǒng)高速緩存存儲器空間800中的物理地址的所述部分和/或定制索引808,來分別確定標(biāo)簽816和組件高速緩存814的物理地址的集合索引818。

在一個方面,可以對標(biāo)簽802和集合索引804進(jìn)行修改,以確定標(biāo)簽816和集合索引818。為了修改標(biāo)簽802和集合索引804,系統(tǒng)高速緩存控制器可以使用組件高速緩存配置表500中針對相應(yīng)的組件高速緩存標(biāo)識符的索引化模式特性,來選擇(810)是使用集合索引804的第一比特集合(當(dāng)指示物理索引化模式時),還是利用定制索引808來替換集合索引804的第一比特集合(當(dāng)指示定制索引化模式時)。該索引化模式可以確定使用集合索引804的第一比特集合或者定制索引808構(gòu)成的集合索引818的第一比特集合的組成成分。無論是選擇集合索引804的第一比特集合還是選擇定制索引808,系統(tǒng)高速緩存控制器都可以使用集合索引804的第二比特集合作為集合索引818的第二比特集合,并將它們與集合索引804的第一比特集合或者定制索引808進(jìn)行組合。此外,無論是選擇集合索引804的第一比特集合還是選擇定制索引808,系統(tǒng)高速緩存控制器都可以使用對應(yīng)的組件高速緩存標(biāo)識符的集合移位和集合偏移,來確定丟棄(或者移位)和連接操作812的實現(xiàn)方式。集合移位可以規(guī)定從集合索引804的第一比特集合或者定制索引808丟棄并添加(或移位)到標(biāo)簽816中最高有效位的數(shù)量,從而將丟棄(或者移位)的比特添加到標(biāo)簽802來確定標(biāo)簽816,并且將標(biāo)簽816的大小從標(biāo)簽802的大小擴(kuò)展相同數(shù)量的比特??梢允褂眉掀苼硖娲纤饕?18中的被丟棄(或者移位)比特。

圖9示出了使用物理地址來訪問組件高速緩存的地址轉(zhuǎn)換。如上面參照圖8所描述的,可以將塊偏移806轉(zhuǎn)置成塊偏移820。當(dāng)索引化模式指示物理索引化時,可以對集合索引804進(jìn)行修改以丟棄(或者移出)集合索引804的第一比特集合(在一個方面,最高有效位900)。集合索引804的第一比特集合可以取決于該組件高速緩存所對應(yīng)的集合移位的值。集合索引804的第二比特集合(在一個方面,其是集合索引804的剩余比特906)可以被用作集合索引818的第二比特集合。在一個方面,可以將剩余比特906轉(zhuǎn)置成集合索引818的相同比特908。該組件高速緩存所對應(yīng)的集合偏移902的比特,可以替代被丟棄(或者移出)的集合索引804的第一比特集合(例如,集合索引804的最高有效位900),作為集合索引818的第一比特集合(在一個方面,其是集合索引818的最高有效位904)。與被丟棄(或者移出)的集合索引804的第一比特集合(例如,集合索引804的最高有效位900)相組合(例如,附加)的標(biāo)簽802可以被轉(zhuǎn)置成標(biāo)簽816。

圖10示出了用于使用定制索引來訪問組件高速緩存的地址轉(zhuǎn)換。如上面參照圖8所描述的,可以將塊偏移806轉(zhuǎn)置成塊偏移820。當(dāng)索引化模式指示定制索引化時,可以對集合索引804進(jìn)行修改以丟棄(或者移出)集合索引804的第一比特集合(在一個方面,最高有效位900)。集合索引804的第一比特集合可以取決于該組件高速緩存所對應(yīng)的集合移位的值。集合索引804的剩余的第二比特集合(在一個方面,其是集合索引804的中間比特1006和低位比特1000)可以被用作集合索引818的第二比特集合。在一個方面,可以將低位比特1000轉(zhuǎn)置成集合索引818的相同比特1002。定制索引808可以替代集合索引818的對應(yīng)中間比特1004中的中間比特1006。該組件高速緩存所對應(yīng)的集合偏移902的比特可以替代集合索引804的第一比特集合(例如,集合索引804的最高有效位900),作為集合索引818的第一比特集合(在一個方面,其是集合索引818的最高有效位904)。與被丟棄(或者移出)的集合索引804的第一比特集合(例如,集合索引804的最高有效位900)相組合(或者附加)的標(biāo)簽802可以被轉(zhuǎn)置成標(biāo)簽816。

應(yīng)當(dāng)注意的是,對物理地址800、集合偏移902和定制索引808的比特進(jìn)行丟棄、移位、轉(zhuǎn)置、組合和附加的上面示例只是示例性的,并且決不意味著是限制性的。可以以任何多種的方式,對這些組成部分的比特進(jìn)行操作和組合,以布置物理地址814的比特。例如,集合偏移902的比特可以替代集合索引804的最高有效位、最低有效位或者中間比特。

在一個方面,可以對組件高速緩存進(jìn)行激活和去激活。由于存在在系統(tǒng)高速緩存存儲器空間中的重疊的組件高速緩存的可能性,因此為了避免高速緩存沖突,可以對與活動的組件高速緩存重疊的組件高速緩存進(jìn)行去激活。此外,為了省電,可以對沒有在使用的組件高速緩存進(jìn)行去激活??梢栽谶\行時,對組件高速緩存進(jìn)行激活和去激活,以便部分地對系統(tǒng)高速緩存存儲器空間進(jìn)行分區(qū),以及將組件高速緩存分配給指定的客戶端。系統(tǒng)高速緩存的客戶端中的一些客戶端可能只在相對較短的一段時間內(nèi)需要這些組件高速緩存,并且可以為客戶端預(yù)留組件高速緩存所使用的系統(tǒng)高速緩存存儲器空間,以避免與使用系統(tǒng)高速緩存的其它客戶端沖突。此外,當(dāng)客戶端完成組件高速緩存的使用時,可以對該組件高速緩存進(jìn)行去激活,并且使該系統(tǒng)高速緩存存儲器空間未被預(yù)留,使得該系統(tǒng)高速緩存存儲器空間和組件高速緩存可用于其它客戶端。

圖11示出了一種示例性組件高速緩存激活/去激活控制命令1100,其可以包括用于存儲與組件高速緩存激活和存儲器訪問操作有關(guān)的信息的寄存器。在一個方面,組件高速緩存激活/去激活控制命令1100可以包含諸如觸發(fā)1102、操作碼1104、組件高速緩存標(biāo)識符1106、應(yīng)用目標(biāo)通路1108和目標(biāo)通路1110之類的信息。觸發(fā)1102可以是用于指示是否開始針對該組件高速緩存的系統(tǒng)高速緩存存儲器訪問的標(biāo)志(例如,一比特碼)。例如,“0”比特值可以指示不應(yīng)當(dāng)開始系統(tǒng)高速緩存存儲器訪問,“1”比特值指示系統(tǒng)高速緩存存儲器訪問可以開始。操作碼1104可以是用于指示是對該組件高速緩存進(jìn)行激活還是去激活的代碼。例如,二比特碼(其中,“01”表示激活,“10”表示去激活)可以用于操作碼1104。組件高速緩存標(biāo)識符1106可以存儲與和組件高速緩存激活/去激活控制命令1100的其它信息有關(guān)的特定組件高速緩存相關(guān)聯(lián)的值。應(yīng)用目標(biāo)通路1108可以是用于表示是否在系統(tǒng)高速緩存存儲器訪問中使用目標(biāo)通路1110中存儲的信息的標(biāo)志。例如,“0”比特值可以指示不使用目標(biāo)通路1110中存儲的信息,“1”比特值可以指示使用目標(biāo)通路1110中存儲的信息。目標(biāo)通路1110可以存儲這些通路,以便在系統(tǒng)高速緩存存儲器空間中的組件高速緩存內(nèi)進(jìn)行激活,并且僅當(dāng)操作碼1104表示激活時,目標(biāo)通路1110可以是有效的。在一個方面,客戶端可能不需要使用整個的組件高速緩存來進(jìn)行系統(tǒng)高速緩存存儲器訪問,并且可以指定只對組件高速緩存內(nèi)的某些通路進(jìn)行激活。當(dāng)客戶端需要使用組件高速緩存中的更多通路時,目標(biāo)通路1110可以指定該組件高速緩存的通路中的更多通路。

圖12示出了一種組件高速緩存激活/去激活控制狀態(tài)1200,其可以包括用于存儲與組件高速緩存存儲器訪問操作有關(guān)的信息的寄存器。在一個方面,組件高速緩存激活/去激活控制狀態(tài)1200可以包含諸如完成(done)指示符1202之類的信息,其可以是一個標(biāo)志。例如,“0”比特值可以指示系統(tǒng)高速緩存存儲器訪問操作還沒有開始或者正在進(jìn)行,“1”比特值可以指示系統(tǒng)高速緩存存儲器訪問操作已完成。

系統(tǒng)高速緩存控制器可以讀取組件高速緩存激活/去激活控制命令1100和組件高速緩存激活/去激活控制狀態(tài)1200,以管理系統(tǒng)高速緩存存儲器空間。此外,圖13示出了可以由系統(tǒng)高速緩存控制器用于管理組件高速緩存內(nèi)的通路的使用的組件高速活動通路表1300。如上所述,客戶端可能需要也可能不需要使用整個組件高速緩存來進(jìn)行系統(tǒng)高速緩存存儲器訪問,并且可以指定僅激活組件高速緩存內(nèi)的某些通路。系統(tǒng)高速緩存控制器可以通過更新組件高速緩存活動通路表1300來跟蹤組件高速緩存中的每個組件高速緩存的活動通路。在組件高速緩存活動通路表1300中,組件高速緩存標(biāo)識符字段1302(類似于組件高速緩存配置表中的組件高速緩存標(biāo)識符字段)可以與對應(yīng)的活動通路字段1034相關(guān)。當(dāng)應(yīng)用目標(biāo)通路指示應(yīng)用這些目標(biāo)通路時,隨著從組件高速緩存激活/去激活控制命令的目標(biāo)通路中讀出,系統(tǒng)高速緩存控制器可以將客戶端所請求的目標(biāo)通路存儲在活動通路字段1034中。當(dāng)應(yīng)用目標(biāo)通路指示不應(yīng)用這些目標(biāo)通路時,可以將活動通路字段1034設(shè)置為缺省值、空值、或者用于指示組件高速緩存的所有目標(biāo)通路的值(如組件高速緩存配置表中所指定的)。

圖14示出了組件高速緩存預(yù)留表1400的一個方面,其中該組件高速緩存預(yù)留表1400可以是上面所描述的組件高速緩存活動通路表的伴隨表。組件高速緩存預(yù)留表1400可以包括通路列1402、1404、1406、1408、1410、1412、1414、1416和集合組行1418、1420、1422、1424、1426、1428、1430、1432,它們可以表示進(jìn)行了組件高速緩存分區(qū)的系統(tǒng)高速緩存的通路和集合群。組件高速緩存預(yù)留表1400可以針對系統(tǒng)高速緩存中被客戶端預(yù)留和/或未被預(yù)留的通路和集合組中的每對通路和集合組來設(shè)置預(yù)留和/或未被預(yù)留指示符。根據(jù)一個方面的組件高速緩存預(yù)留表1400可以允許系統(tǒng)高速緩存控制器對客戶端將使用的系統(tǒng)高速緩存中的位置保持跟蹤,并且通過不允許客戶端使用正在被另一個客戶端使用或者為另一個客戶端預(yù)留的系統(tǒng)高速緩存位置來避免高速緩存沖突。在一個方面,預(yù)留指示符可以使得與系統(tǒng)高速緩存活動通路表的組件高速緩存標(biāo)識符相關(guān)的集合組和組件高速緩存配置表進(jìn)行匹配,并且與系統(tǒng)高速緩存活動通路表中所指示的通路進(jìn)行匹配。一旦客戶端完成了對于其預(yù)留的組件高速緩存空間的使用,就可以從組件高速緩存預(yù)留表1400中的對應(yīng)位置刪除預(yù)留指示符,或者將預(yù)留指示符改變成組件高速緩存預(yù)留表1400中的對應(yīng)位置的未被預(yù)留指示符。

舉例而言,圖13中所示出的組件高速緩存活動通路表1300示出了用于四個組件高速緩存標(biāo)識符的活動通路。系統(tǒng)高速緩存控制器可以為組件高速緩存標(biāo)識符中的每個組件高速緩存標(biāo)識符預(yù)留系統(tǒng)高速緩存位置,將預(yù)留的通路限制于所指示的活動通路。可以根據(jù)組件高速緩存配置表的集合移位、集合偏移、以及組件高速活動通路表1300中的活動通路來確定系統(tǒng)高速緩存位置。系統(tǒng)高速緩存控制器可以通過對組件高速緩存預(yù)留表1400中預(yù)留的系統(tǒng)高速緩存位置進(jìn)行標(biāo)記,來預(yù)留系統(tǒng)高速緩存中的位置。因此,在圖14所示出的示例中,組件高速緩存預(yù)留表1400包括用于指示以下信息的數(shù)據(jù):針對由組件高速緩存配置表和組件高速緩存活動通路表1300中的組件高速緩存標(biāo)識符和對應(yīng)的組件高速緩存特性所指定的系統(tǒng)高速緩存位置中的每個系統(tǒng)高速緩存位置,預(yù)留指定的集合組和活動通路。

應(yīng)當(dāng)注意的是,雖然不太可能,但來自組件高速緩存配置表500的組件高速緩存標(biāo)識符“0”表示整個系統(tǒng)高速緩存的組件高速緩存將包括在組件高速緩存激活表1300和組件高速緩存預(yù)留表1400中是可能的,因為這將預(yù)留整個系統(tǒng)高速緩存,除非用于該組件高速緩存的活動通路受到限制。這將導(dǎo)致其它客戶端不能夠使用系統(tǒng)高速緩存,直到通路中的至少一些通路被去激活為止。

在一個方面,可以使用兩個W比特向量,對組件高速緩存重新調(diào)整大小,其中W是高速緩存通路的數(shù)量,并且向量中的每個比特表示特定的高速緩存通路。每個組件高速緩存可以與W比特向量中的一個或二者進(jìn)行關(guān)聯(lián)。預(yù)留向量或者第一向量可以指示被預(yù)留用于向相關(guān)聯(lián)的組件高速緩存(當(dāng)其被激活時)分配的高速緩存通路。獎勵向量或者第二向量可以指示可以被分配給相關(guān)聯(lián)的組件高速緩存(當(dāng)空閑時)的額外高速緩存通路,或者沒有被任何組件高速緩存預(yù)留的額外高速緩存通路。如上面所討論的,組件高速緩存可以與特定的客戶端(例如,計算設(shè)備的處理組件或者子系統(tǒng))相關(guān)聯(lián)。

圖15示出了一種示例性系統(tǒng)高速緩存存儲器,該系統(tǒng)高速緩存存儲器具有分配給各個組件高速緩存的預(yù)留的高速緩存通路。系統(tǒng)高速緩存存儲器1500可以包括多個通路;在該示例中,系統(tǒng)高速緩存存儲器1500包括16個通路1502、1504、1506、1508、1510、1512、1514、1518、1520、1522、1524、1526、1528、1530、1532和1534。對于該示例而言,兩個W比特向量可以是16比特向量。預(yù)留的高速緩存通路1536可以被分配給第一客戶端(例如,CPU)的第一組件高速緩存,并且可以包括高速緩存通路1502-1508。預(yù)留的高速緩存通路1536可以由十六進(jìn)制符號的第一預(yù)留向量=0xF000來表示。在二進(jìn)制形式下,預(yù)留的高速緩存通路1536可以由第一預(yù)留向量=1111 0000 0000 0000來表示。將二進(jìn)制形式的第一預(yù)留高速緩存向量與高速緩存通路1502-1534進(jìn)行比較,“1”比特對應(yīng)于預(yù)留的高速緩存通路1536(其包括高速緩存通路1502-1508)。類似地,預(yù)留的高速緩存通路1538可以被分配給第二客戶端(例如,計算設(shè)備的其它處理組件或者子系統(tǒng)中的一項)的第二組件高速緩存,并且可以包括高速緩存通路1506-1518。預(yù)留的高速緩存通路1536可以由十六進(jìn)制符號的第二預(yù)留向量=0x3F00來表示。預(yù)留的高速緩存通路1540可以被分配給第三客戶端(例如,計算設(shè)備的其它處理組件或者子系統(tǒng)中的一項)的第三組件高速緩存,并且可以包括高速緩存通路1520-1526。預(yù)留的高速緩存通路1540可以通過十六進(jìn)制符號的第三預(yù)留向量=0x00F0來表示。未被預(yù)留的高速緩存通路1542可以包括高速緩存通路1528-1534。另外,第一組件高速緩存可以與十六進(jìn)制符號的第一獎勵向量=0x0FFF相關(guān)聯(lián),表示潛在地將第一組件高速緩存擴(kuò)展到高速緩存通路1510-1534。如利用預(yù)留的高速緩存通路1536、1538所演示的,預(yù)留的高速緩存通路可能在組件高速緩存之間重疊。這可能是由于組件高速緩存可以占據(jù)系統(tǒng)高速緩存的相同通路中的不同集合組。因此,可以在相同的高速緩存通路中內(nèi)激活多個組件高速緩存。在一個方面,圖6中具有組件高速緩存標(biāo)識符“0”的組件高速緩存602(如圖5中的行518所示)可以具有相關(guān)聯(lián)的預(yù)留向量,所述預(yù)留向量可以與其它組件高速緩存的預(yù)留向量相重疊。

對于擴(kuò)展到由第一獎勵高速緩存向量所指示的高速緩存通路1510-1534的第一組件高速緩存來說,該組件高速緩存擴(kuò)展到的每個高速緩存通路1510-1534應(yīng)當(dāng)是未被預(yù)留的。可以在針對每個組件高速緩存的激活命令中,指定該預(yù)留向量。計算設(shè)備可以根據(jù)激活命令的預(yù)留向量來為適當(dāng)?shù)慕M件高速緩存預(yù)留和分配高速緩存通路1502-1534中的一個或多個高速緩存通路。可以將預(yù)留的高速緩存通路存儲在存儲器設(shè)備(例如,寄存器)中。此外,計算設(shè)備還可以將用于各個組件高速緩存的獎勵向量存儲在存儲器設(shè)備(例如,寄存器)中??梢栽趩訒r間,將獎勵向量寫入到存儲器設(shè)備中,和/或資源管理器可以基于用例,向各個組件高速緩存分配獎勵向量。響應(yīng)于獎勵向量的高速緩存通路被分配給組件高速緩存,可以將存儲用于該特定組件高速緩存的所分配的高速緩存通路的存儲器設(shè)備擴(kuò)增為包括這些高速緩存通路。計算設(shè)備(在一個方面,其可以是系統(tǒng)高速緩存控制器)可以針對組件高速緩存的預(yù)留向量和/或獎勵向量對分配給組件高速緩存的可用通路進(jìn)行計算。可以使用下式來完成該計算:

在上面的公式中,X可以是用于相關(guān)的組件高速緩存的組件高速緩存標(biāo)識符,N可以是組件高速緩存的總數(shù),I可以是所有組件高速緩存的組件高速緩存標(biāo)識符。ReservedVecX、ReservedVecI和BonusVecX可以分別是用于通過X和I所指示的組件高速緩存的預(yù)留向量和獎勵向量。當(dāng)I的組件高速緩存活動時,可以對Active1進(jìn)行斷言。求和運算可以是應(yīng)用于每個組件高速緩存的按位OR(或)操作符。響應(yīng)于計算組件高速緩存的獎勵向量中所包括的可用高速緩存通路,可以向該組件高速緩存分配可用的高速緩存通路。

圖16根據(jù)一個方面,示出了一種示例性系統(tǒng)高速緩存存儲器,該系統(tǒng)高速緩存存儲器具有分配給組件高速緩存的預(yù)留和獎勵的高速緩存通路。繼續(xù)圖15中的示例,第一組件高速緩存可以使用系統(tǒng)高速緩存存儲器1500中的高速緩存通路1502-1510和1528-1534。如上所述,高速緩存通路1502-1510落入第一組件高速緩存的預(yù)留向量的范圍之內(nèi);高速緩存通路1528-1534落入第一組件高速緩存的獎勵向量的范圍之內(nèi)。高速緩存通路1528-1534可以沒有被另一個組件高速緩存預(yù)留,以使計算設(shè)備將高速緩存通路1528-1534分配給第一組件高速緩存。雖然高速緩存通路1528-1534在該示例中沒有被預(yù)留,但用于第一組件高速緩存的獎勵高速緩存向量與預(yù)留的高速緩存通路1538和1540(其包括高速緩存通路1510-1526)相重疊,如圖15中所示。為了向第一組件高速緩存分配高速緩存通路1528-1534,計算設(shè)備可以分配用于第一組件高速緩存的獎勵向量中所指示的全部高速緩存通路1510-1534。計算設(shè)備可以對第二和第三組件高速緩存進(jìn)行去激活,以使高速緩存通路1510-1526未被預(yù)留,并且除了圖15中的預(yù)留的高速緩存通路1538之外,將高速緩存通路1510-1534分配給第一組件高速緩存??梢韵虻谝唤M件高速緩存分配預(yù)留的高速緩存通路1600(其包括所有的高速緩存通路1502-1534)。

圖17根據(jù)一個方面,示出了一種示例性系統(tǒng)高速緩存存儲器,該系統(tǒng)高速緩存存儲器具有分配給各個組件高速緩存的預(yù)留的高速緩存通路。下面的示例使用圖15的相同的系統(tǒng)高速緩存1500,其區(qū)別僅僅在于不同的預(yù)留高速緩存通路1700和1702和未被預(yù)留的高速緩存通路1704。預(yù)留的高速緩存通路1700可以被分配給第一組件,并且可以包括高速緩存通路1502-1508。預(yù)留的高速緩存通路1700可以由十六進(jìn)制符號的第一預(yù)留向量=0xF000來表示。預(yù)留的高速緩存通路1702可以分配給第二組件高速緩存,并且可以包括高速緩存通路1506-1518。預(yù)留的高速緩存通路1536可以由十六進(jìn)制符號的第二預(yù)留向量=0x3F00來表示。未被預(yù)留的高速緩存通路1704可以包括高速緩存通路1520-1534。另外,第二組件高速緩存可以與十六進(jìn)制符號的第二預(yù)留向量=0xC000相關(guān)聯(lián),表示潛在地將第二組件高速緩存擴(kuò)展到高速緩存通路1502和1504。

圖18根據(jù)一個方面,示出了一種示例性系統(tǒng)高速緩存存儲器,該系統(tǒng)高速緩存存儲器具有分配給組件高速緩存的預(yù)留和獎勵的高速緩存通路。繼續(xù)圖17中的示例,第二組件高速緩存可以使用系統(tǒng)高速緩存1500中的高速緩存通路1506-1518。如上所述,高速緩存通路1506-1518可以落入第二組件高速緩存的預(yù)留向量的范圍之內(nèi)。高速緩存通路1506-1518可以沒有被另一個組件高速緩存預(yù)留,以使計算設(shè)備將高速緩存通路1506-1518分配給第二組件高速緩存。但是,高速緩存通路1506和1508與預(yù)留的高速緩存通路1700(其包括圖17中所示出的高速緩存通路1502-1508)相重疊,如圖17中所示。為了向第二組件高速緩存分配高速緩存通路1506-1518,計算設(shè)備可以對第一組件高速緩存進(jìn)行去激活,以使高速緩存通路1506和1508未被預(yù)留,并且將高速緩存通路1502-1518分配給第二組件高速緩存??梢韵虻诙M件高速緩存分配預(yù)留的高速緩存通路1800(其包括預(yù)留的高速緩存通路1702)和通過第一組件高速緩存的去激活而未被預(yù)留的額外高速緩存通路1502和1504,它們包括在第二組件高速緩存的獎勵高速緩存向量中。

圖19示出了用于訪問系統(tǒng)高速緩存存儲器的組件高速緩存的一個方面方法1900,其中該系統(tǒng)高速緩存存儲器根據(jù)集合和通路被分區(qū)成組件高速緩存。方法1900可以由如本文所描述的計算設(shè)備(例如,由系統(tǒng)高速緩存控制器)來執(zhí)行。在框1902中,計算設(shè)備可以裝載組件高速緩存配置表。在一個方面,在利用靜態(tài)組件高速緩存配置表的方面中,可以在計算設(shè)備的啟動時間期間裝載該組件高速緩存配置表,并且可以利用對于系統(tǒng)高速緩存來說可以是可能的組件高速緩存的每一種組合來填充組件高速緩存配置表??梢岳弥辽俳M件高速緩存標(biāo)識符、集合移位特性、集合偏移特性和目標(biāo)通路特性來填充該組件高速緩存配置表。在一個方面,在利用如本文所描述的動態(tài)組件高速緩存配置表的方面中,可以在啟動時間,或者在對于組件高速緩存訪問的第一次請求時裝載該組件高速緩存表。該動態(tài)組件高速緩存配置表可以從可以已經(jīng)由計算設(shè)備所保存的組件高速緩存配置表的最新版本中裝載,或者可以是基于接收的組件高速緩存訪問請求來進(jìn)行填充的空表。

在框1904中,計算設(shè)備可以接收系統(tǒng)高速緩存訪問請求。如上所述,該系統(tǒng)高速緩存訪問請求可以源自于計算設(shè)備上的客戶端,并且可以由系統(tǒng)高速緩存控制器進(jìn)行接收。該系統(tǒng)高速緩存訪問請求可以包括:從系統(tǒng)高速緩存讀取或者向系統(tǒng)高速緩存寫入的請求、組件高速緩存標(biāo)識符、組件高速緩存特性、系統(tǒng)高速緩存的物理地址、以及定制索引。在確定框1906中,計算設(shè)備可以判斷該系統(tǒng)高速緩存訪問請求是否包括組件高速緩存標(biāo)識符(CCID)。響應(yīng)于確定該系統(tǒng)高速緩存訪問請求不包括組件高速緩存標(biāo)識符(即,確定框1906=“否”),則在框1908中,計算設(shè)備可以通過已知方法,將該系統(tǒng)高速緩存訪問請求視作為正常訪問請求。

響應(yīng)于確定該系統(tǒng)高速緩存訪問請求包括組件高速緩存標(biāo)識符(即,確定框1906=“是”),則在框1910中,計算設(shè)備可以在組件高速緩存配置表中,查找與該組件高速緩存標(biāo)識符相關(guān)的記錄。如上所述,在其中組件高速緩存配置表是靜態(tài)的方面中,存在著針對該系統(tǒng)高速緩存的每種可能的組件高速緩存(其具有組件高速緩存標(biāo)識符)的記錄。在可選框1912中,計算設(shè)備可以利用可能與該記錄中已經(jīng)存在的組件高速緩存特性不同的所接收的組件高速緩存特性中的任何組件高速緩存特性來更新組件高速緩存配置表中與該組件高速緩存標(biāo)識符相對應(yīng)的記錄。替代地,計算設(shè)備可以在不判斷它們是否不同的情況下替換該記錄中的所有組件高速緩存特性。

在框1914中,計算設(shè)備可以將利用系統(tǒng)高速緩存訪問請求所接收的物理地址轉(zhuǎn)換成系統(tǒng)高速緩存中的該組件高速緩存的對應(yīng)物理地址。如本文所進(jìn)一步詳細(xì)描述的,對該地址進(jìn)行轉(zhuǎn)換可以涉及:確定該組件高速緩存的索引化模式特性是物理索引化,還是定制索引化。

在確定框1916中,計算設(shè)備可以確定該組件高速緩存是否是可用的。如本文進(jìn)一步描述的,確定該組件高速緩存是否是可用的可以涉及:確定該組件高速緩存的系統(tǒng)高速緩存位置是否被預(yù)留用于計算設(shè)備的另一個客戶端。響應(yīng)于確定該組件高速緩存是不可用的(即,確定框1916=“否”),在框1918中,計算設(shè)備可以推遲該系統(tǒng)高速緩存訪問請求,直到該組件高速緩存變得可用為止。在框1920中,計算設(shè)備可以訪問與該系統(tǒng)高速緩存訪問請求的組件高速緩存標(biāo)識符相關(guān)聯(lián)的組件高速緩存以實現(xiàn)所請求的讀或?qū)懖僮鳌?/p>

圖20示出了用于訪問系統(tǒng)高速緩存存儲器的組件高速緩存的一個方面方法2000,其中該系統(tǒng)高速緩存存儲器根據(jù)集合和通路被分區(qū)成組件高速緩存。方法2000可以由如本文所描述的計算設(shè)備(例如,系統(tǒng)高速緩存控制器)來執(zhí)行。在一個方面,可以實現(xiàn)方法2000,以用于如本文所描述的裝載的動態(tài)組件高速緩存配置表。在框2002中,計算設(shè)備可以接收系統(tǒng)高速緩存訪問請求。如上所述,系統(tǒng)高速緩存訪問請求可以源自于計算設(shè)備上的客戶端,并由系統(tǒng)高速緩存控制器來接收。該系統(tǒng)高速緩存訪問請求可以包括從系統(tǒng)高速緩存讀取或者向系統(tǒng)高速緩存寫入的請求、組件高速緩存標(biāo)識符、組件高速緩存特性、系統(tǒng)高速緩存的物理地址、以及定制索引。

在確定框2004中,計算設(shè)備可以確定該系統(tǒng)高速緩存訪問請求是否包括組件高速緩存標(biāo)識符(CCID)。響應(yīng)于確定該系統(tǒng)高速緩存訪問請求不包括組件高速緩存標(biāo)識符(即,確定框2004=“否”),計算設(shè)備可以根據(jù)框2006中的已知方法,將該系統(tǒng)高速緩存訪問請求視作正常訪問請求。

響應(yīng)于確定該系統(tǒng)高速緩存訪問請求包括組件高速緩存標(biāo)識符(即,確定框2004=“是”),在確定框2006中,計算設(shè)備可以確定在組件高速緩存配置表中是否存在針對該組件高速緩存標(biāo)識符的記錄。例如,在組件高速緩存配置表中可能存在也可能不存在針對該組件高速緩存標(biāo)識符的記錄,這是由于在動態(tài)組件高速緩存配置表中,針對該組件高速緩存標(biāo)識符的記錄可能不是裝載的組件高速緩存配置表的一部分,或者當(dāng)該組件高速緩存被去激活時,可以從該表中刪除該記錄。

響應(yīng)于確定在組件高速緩存配置表中不存在針對該組件高速緩存標(biāo)識符的記錄(即,確定框2006=“否”),在框2010中,計算設(shè)備可以在組件高速緩存配置表中創(chuàng)建針對該組件高速緩存的記錄。在一個方面,系統(tǒng)高速緩存控制器可以使用利用該系統(tǒng)高速緩存訪問請求所提供的信息(其包括組件高速緩存標(biāo)識符和組件高速緩存特性),在組件高速緩存配置表中創(chuàng)建針對該組件高速緩存的記錄。

響應(yīng)于確定在組件高速緩存配置表中存在針對該組件高速緩存的記錄(即,確定框2006=“是”),在框2012中,計算設(shè)備可以在組件高速緩存配置表中查找與該組件高速緩存標(biāo)識符相關(guān)的記錄。在可選框2014中,計算設(shè)備可以利用與該記錄中已經(jīng)存在的組件高速緩存特性不同的所接收的組件高速緩存特性中的任何組件高速緩存特性,來更新組件高速緩存配置表中與該組件高速緩存標(biāo)識符相對應(yīng)的記錄。替代地,計算設(shè)備可以在不判斷它們是否不同的情況下只替換該記錄中的所有組件高速緩存特性。

在框2016中,計算設(shè)備可以將利用系統(tǒng)高速緩存訪問請求所接收的物理地址,轉(zhuǎn)換成系統(tǒng)高速緩存中的該組件高速緩存的相應(yīng)物理地址。如本文所進(jìn)一步詳細(xì)描述的,對該地址進(jìn)行轉(zhuǎn)換,可以涉及:確定該組件高速緩存的索引化模式特性是物理索引化,還是定制索引化。

在確定框2018中,計算設(shè)備可以確定該組件高速緩存是否是可用的。如本文所描述的,確定該組件高速緩存是否是可用的,可以涉及:確定該組件高速緩存的系統(tǒng)高速緩存位置是否被預(yù)留用于計算設(shè)備的另一個客戶端。響應(yīng)于確定該組件高速緩存是不可用的(即,確定框2018=“否”),在框2020中,計算設(shè)備可以推遲該系統(tǒng)高速緩存訪問請求,直到該組件高速緩存變得可用為止。在框2022中,計算設(shè)備可以訪問與該系統(tǒng)高速緩存訪問請求的組件高速緩存標(biāo)識符相關(guān)聯(lián)的組件高速緩存,以實現(xiàn)所請求的讀或?qū)懖僮鳌?/p>

圖21是示出用于對高速緩存存儲器地址進(jìn)行轉(zhuǎn)換,以訪問系統(tǒng)高速緩存存儲器的組件高速緩存的一個方面方法2100,其中該系統(tǒng)高速緩存存儲器根據(jù)集合和通路被分區(qū)成組件高速緩存。方法2100可以實現(xiàn)成圖19中的方法1900的框1914的一部分和圖20中的方法2000的框2016的一部分。方法2100可以由如本文所描述的計算設(shè)備(例如,系統(tǒng)高速緩存控制器)來執(zhí)行。

在確定框2102中,計算設(shè)備可以確定用于相關(guān)的組件高速緩存標(biāo)識符的索引化模式特性是指示物理索引化還是定制索引化。計算設(shè)備可以針對相關(guān)的組件高速緩存標(biāo)識符的記錄,對組件高速緩存配置表中的索引化模式特性字段進(jìn)行檢查,以確定索引化模式是指示物理索引化還是定制索引化。響應(yīng)于確定用于相關(guān)的組件高速緩存標(biāo)識符的索引化模式指示定制索引化(即,確定框2102=“CI”),在框2104中,計算設(shè)備可以利用所接收的定制索引,來替代所接收的物理地址的集合索引的中間比特。如上所述,集合索引的中間比特是被移出該集合索引的最高有效位和該集合索引的低位比特之間的比特,所述該集合索引的低位比特被轉(zhuǎn)置成該組件高速緩存的物理地址的集合索引的低位比特。

在框2106中,計算設(shè)備可以將所接收的物理地址的集合索引的多個最高有效位進(jìn)行移出??梢愿鶕?jù)組件高速緩存配置表中的對應(yīng)組件高速緩存標(biāo)識符的集合移位特性的值,來確定被移出該集合索引的最高有效位的數(shù)量。在框2108中,計算設(shè)備可以將該集合索引的移出的最高有效位附加到所接收的物理地址的標(biāo)簽上,并且使用與移出的比特相組合的標(biāo)簽來作為標(biāo)簽。在框2110中,計算設(shè)備可以將對應(yīng)的組件高速緩存標(biāo)識符的集合偏移特性的值插入在組件高速緩存配置表中。在框2112中,計算設(shè)備可以使用所接收的物理地址的相同塊偏移。因此,系統(tǒng)高速緩存中的組件高速緩存的物理地址取決于針對該系統(tǒng)高速緩存訪問請求所接收的物理地址,其中,通過以下方式,根據(jù)所接收的集合索引來修改集合索引:對最高有效位進(jìn)行移位,利用指定的值來替代被移位的比特,替代地使用相同的中間比特或者利用定制索引來替代它們,使用相同的低位比特,使用具有附加到其的移位的比特的相同的標(biāo)簽,以及使用相同的塊偏移。

圖22是示出用于動態(tài)地激活系統(tǒng)高速緩存存儲器的組件高速緩存的一個方面方法2200,其中該系統(tǒng)高速緩存存儲器根據(jù)集合和通路被分區(qū)成組件高速緩存。方法2200還可以視作為使用組件高速緩存來動態(tài)地分區(qū)系統(tǒng)高速緩存,這是由于激活的組件高速緩存的系統(tǒng)高速緩存位置中的一些或者全部位置可以被預(yù)留用于客戶端,從而防止其它客戶端使用該系統(tǒng)高速緩存的動態(tài)分區(qū)的部分。方法2200可以實現(xiàn)成圖19中的方法1900的框1916-1920的一部分和圖20中的方法2000的框2018-2022的一部分。方法2200可以由如本文所描述的計算設(shè)備(例如,系統(tǒng)高速緩存控制器)來執(zhí)行。

在確定框2202中,計算設(shè)備可以針對與組件高速緩存標(biāo)識符有關(guān)的組件高速緩存位置,對組件高速緩存預(yù)留表中的系統(tǒng)高速緩存位置的預(yù)留指示符進(jìn)行檢查。如本文所描述的,可以根據(jù)組件高速緩存配置表中用于該組件高速緩存標(biāo)識符的集合移位、集合偏移和目標(biāo)通路的組合來確定該組件高速緩存位置,從而確定系統(tǒng)高速緩存位置。在一個方面,還可以根據(jù)組件高速緩存活動通路表中用于該組件高速緩存標(biāo)識符的活動通路,對預(yù)留的組件高速緩存位置進(jìn)行調(diào)節(jié)。這些活動通路可以指示所預(yù)留的位置,而目標(biāo)通路可以指示所預(yù)留的位置,或者僅僅指示該組件高速緩存可以使用和預(yù)留但并不必需使用或者預(yù)留的全部標(biāo)簽。

在確定框2204中,計算設(shè)備可以確定該組件高速緩存位置是否被預(yù)留。如上面所討論的,組件高速緩存位置是否被預(yù)留可以取決于活動通路組件高速緩存表中的對應(yīng)組件高速緩存的活動通路。響應(yīng)于確定該組件高速緩存位置被預(yù)留(即,確定框2204=“是”),在框2202中,計算設(shè)備可以再次檢查這些位置是否被預(yù)留。

響應(yīng)于確定該組件高速緩存位置沒有被預(yù)留(即,確定框2204=“否”),在框2206中,計算設(shè)備可以針對該組件高速緩存標(biāo)識符,對活動通路表進(jìn)行更新。針對該組件高速緩存標(biāo)識符對活動通路表進(jìn)行更新指示:系統(tǒng)高速緩存訪問請求的該組件高速緩存可以對由該組件高速緩存標(biāo)識符的集合移位、集合偏移和活動通路所表示的系統(tǒng)高速緩存存儲器位置進(jìn)行預(yù)留。在框2208中,計算設(shè)備可以針對該組件高速緩存,對組件高速緩存預(yù)留表中的這些系統(tǒng)高速緩存位置的預(yù)留指示符進(jìn)行更新。一旦在組件高速緩存預(yù)留表中將系統(tǒng)高速緩存位置預(yù)留用于該組件高速緩存,則有效地從系統(tǒng)高速緩存的剩余部分中動態(tài)地分配這些位置(這是由于這些位置被預(yù)留用于該特定的請求客戶端)??梢跃芙^請求訪問系統(tǒng)高速緩存的已被預(yù)留位置的其它客戶端訪問這些已預(yù)留位置,直到所預(yù)留的位置針對預(yù)留了這些位置的客戶端被去激活為止。

圖23是示出用于動態(tài)地去激活系統(tǒng)高速緩存存儲器的組件高速緩存的一個方面方法2300,其中該系統(tǒng)高速緩存存儲器根據(jù)集合和通路被分區(qū)成組件高速緩存。方法2300可以實現(xiàn)成圖19中的方法1900的框1920的一部分,和實現(xiàn)成圖20中的方法2000的框622的一部分。方法2300可以由如本文所描述的計算設(shè)備(例如,系統(tǒng)高速緩存控制器)來執(zhí)行。在框2302中,計算設(shè)備可以從與系統(tǒng)高速緩存訪問請求的組件高速緩存標(biāo)識符相關(guān)聯(lián)的組件高速緩存的所預(yù)留位置讀取數(shù)據(jù),和/或向其寫入數(shù)據(jù)。在確定框2304中,計算設(shè)備可以確定該系統(tǒng)高速緩存訪問是否完成。響應(yīng)于確定該系統(tǒng)高速緩存訪問沒有完成(即,確定框2304=“否”),在框2302中,計算設(shè)備可以繼續(xù)從該組件高速緩存的所預(yù)留位置讀取數(shù)據(jù),和/或向其寫入數(shù)據(jù)。響應(yīng)于確定該系統(tǒng)高速緩存訪問已完成(即,確定框2304=“是”),在框2306中,計算設(shè)備可以對組件高速緩存預(yù)留表中的這些系統(tǒng)高速緩存位置的預(yù)留指示符進(jìn)行更新,以釋放/去激活該組件高速緩存所預(yù)留的位置。

在一個方面,為其預(yù)留了系統(tǒng)高速緩存空間的客戶端可以動態(tài)地請求額外的或者更少的組件高速緩存空間,并且從而預(yù)留系統(tǒng)高速緩存空間。在方法2200中,請求更多空間的客戶端可以針對還沒有被預(yù)留的組件高速緩存的系統(tǒng)高速緩存位置來這樣做。在方法2300中,請求更少空間的客戶端可以通過完成對組件高速緩存的已預(yù)留系統(tǒng)高速緩存位置的僅僅一部分的訪問,來請求更少的空間。

圖24是示出用于動態(tài)地重新調(diào)整系統(tǒng)高速緩存存儲器的組件高速緩存大小的一個方面方法2400,其中該系統(tǒng)高速緩存存儲器根據(jù)集合和通路被分區(qū)成組件高速緩存。方法2400可以實現(xiàn)成圖19中的方法1900的框1916-1920的一部分,和實現(xiàn)成圖20中的方法2000的框2018-2022的一部分。方法2200可以由如本文所描述的計算設(shè)備(例如,系統(tǒng)高速緩存控制器)來執(zhí)行。在框2402中,計算設(shè)備可以裝載針對至少一個組件高速緩存標(biāo)識符的獎勵向量。如上面所討論的,該獎勵向量可以指示用于相關(guān)聯(lián)的組件高速緩存的一個或多個高速緩存通路(其與和該獎勵向量有關(guān)的組件高速緩存標(biāo)識符相關(guān)聯(lián))以便進(jìn)行擴(kuò)展??梢栽趩訒r間和/或運行時完成獎勵向量的裝載,并且可以將獎勵向量存儲在寄存器中。計算設(shè)備可以裝載獎勵向量中的全部或者一些獎勵向量。在框2404中,計算設(shè)備可以接收針對至少一個組件高速緩存標(biāo)識符的預(yù)留向量。如上面所討論的,該預(yù)留向量可以指示被預(yù)留用于相關(guān)聯(lián)的組件高速緩存(其與和該預(yù)留向量有關(guān)的組件高速緩存標(biāo)識符相關(guān)聯(lián))的一個或多個高速緩存通路。

在確定框2406中,計算設(shè)備可以確定該預(yù)留向量的一個或多個高速緩存通路是否被另一個組件高速緩存預(yù)留。為了做出該確定,計算設(shè)備可以實現(xiàn)上面所討論的方程。響應(yīng)于確定該預(yù)留向量的高速緩存通路被另一個組件高速緩存預(yù)留(即,確定框2406=“是”),在框2408中,計算設(shè)備可以對該其它組件高速緩存進(jìn)行去激活。對其它組件高速緩存進(jìn)行去激活可以導(dǎo)致:解除該其它組件高速緩存所預(yù)留的高速緩存通路的預(yù)留,從而使得與該預(yù)留向量的高速緩存通路相重疊的高速緩存通路未被預(yù)留。響應(yīng)于確定該預(yù)留向量的高速緩存通路未被預(yù)留(即,確定框2406=“否”),在框2410中,計算設(shè)備可以確定使用組件高速緩存是否包括使用相關(guān)聯(lián)的獎勵向量的高速緩存通路中的一個或多個高速緩存通路。

響應(yīng)于確定使用組件高速緩存不包括使用相關(guān)聯(lián)的獎勵向量的高速緩存通路中的一個或多個高速緩存通路(即,確定框2410=“否”),在框2412中,計算設(shè)備可以預(yù)留這些未被預(yù)留的高速緩存通路以用于相關(guān)聯(lián)的組件高速緩存。可以通過將包含所預(yù)留的高速緩存通路數(shù)據(jù)的預(yù)留向量寫入寄存器來完成對高速緩存通路的預(yù)留。響應(yīng)于確定使用該組件高速緩存包括使用相關(guān)聯(lián)的獎勵向量的高速緩存通路中的一個或多個高速緩存通路(即,確定框2410=“是”),在確定框2414中,計算設(shè)備可以確定該獎勵向量的一個或多個高速緩存通路是否被另一個組件高速緩存預(yù)留。響應(yīng)于確定該獎勵向量的一個或多個高速緩存通路沒有被另一個組件高速緩存預(yù)留(即,確定框2414=“否”),在框2412中,計算設(shè)備可以預(yù)留這些未被預(yù)留的高速緩存通路用于該相關(guān)聯(lián)的組件高速緩存。響應(yīng)于確定該獎勵向量的一個或多個高速緩存通路被另一個組件高速緩存預(yù)留(即,確定框2414=“是”),在框2416中,計算設(shè)備可以對該其它組件高速緩存進(jìn)行去激活。在框2412中,計算設(shè)備可以預(yù)留這些未被預(yù)留的高速緩存通路以用于該相關(guān)聯(lián)的組件高速緩存。

圖25示出了適合于結(jié)合各個方面來使用的示例性移動設(shè)備。移動設(shè)備2500可以包括耦合到觸摸屏控制器2504和內(nèi)部存儲器2506的處理器2502。處理器2502可以是被設(shè)計為實現(xiàn)通用或特定處理任務(wù)的一個或多個多核集成電路。內(nèi)部存儲器2506可以是易失性存儲器或非易失性存儲器,還可以是安全和/或加密存儲器,或者非安全和/或非加密存儲器、或者其任意組合??梢岳玫拇鎯ζ黝愋偷氖纠?,包括但不限于:DDR、LPDDR、GDDR、WIDEIO、RAM、SRAM、DRAM、P-RAM、R-RAM、M-RAM、STT-RAM和嵌入式DRAM。觸摸屏控制器2504和處理器2502還可以耦合到觸摸屏面板2512,例如,電阻式感應(yīng)觸摸屏、電容感應(yīng)觸摸屏、紅外線感測觸摸屏等等。另外,計算設(shè)備2500的顯示器并不需要具有觸摸屏能力。

移動設(shè)備2500可以具有用于發(fā)送和接收通信的一個或多個無線信號收發(fā)機2508(例如,花生(Peanut)、藍(lán)牙、紫蜂(Zigbee)、Wi-Fi、RF無線電裝置)和天線2510,它們彼此之間相耦合和/或耦合到處理器2502。收發(fā)機2508和天線2510可以結(jié)合上面所提及的電路來使用,以實現(xiàn)各種無線傳輸協(xié)議棧和接口。移動設(shè)備2500可以包括蜂窩網(wǎng)絡(luò)無線調(diào)制解調(diào)器芯片2516,后者經(jīng)由蜂窩網(wǎng)絡(luò)來實現(xiàn)通信并耦合到處理器。

移動設(shè)備2500可以包括耦合到處理器2502的外圍設(shè)備連接接口2518。外圍設(shè)備連接接口2518可以被單獨地配置為接受一種類型的連接,或者被配置為接受多種類型的物理和通信連接、共同或?qū)S羞B接(例如,USB、火線、雷電(Thunderbolt)或PCIe)。此外,外圍設(shè)備連接接口2518還可以耦合到類似配置的外圍設(shè)備連接端口(未示出)。

此外,移動設(shè)備2500還可以包括用于提供音頻輸出的揚聲器2514。此外,移動設(shè)備2500還可以包括使用塑料、金屬、或材料的組合所構(gòu)成的殼體2520,以包含本文所討論的所有部件或者一些部件。移動設(shè)備2500可以包括耦合到處理器2502的電源2522,例如一次性或可充電電池。此外,該可充電電池還可以耦合到外圍設(shè)備連接端口,以便從移動設(shè)備2500之外的源接收充電電流。此外,移動設(shè)備2500還可以包括用于接收用戶輸入的物理按鍵2524。此外,移動設(shè)備2500還可以包括用于打開和關(guān)閉移動設(shè)備2500的電源按鍵2526。

上面所描述的各個方面還可以實現(xiàn)在各種各樣的移動設(shè)備中,例如,如圖26中所示的膝上型計算機2600。很多膝上型計算機包括觸摸板觸摸接口2617,后者服務(wù)成該計算機的指向設(shè)備,故可以接收拖動、滾動和滑動手勢(其類似于上面所描述的在裝備有觸摸屏顯示器的計算設(shè)備上所實現(xiàn)的那些手勢)。通常,膝上型計算機2600包括耦合到易失性存儲器2612和大容量非易失性存儲器(例如,硬盤驅(qū)動器2613或者閃存)的處理器2611。另外,計算機2600可以具有用于發(fā)送和接收電磁輻射的一付或多付天線2608,這些天線2608可以連接到無線數(shù)據(jù)鏈路和/或耦合到處理器2611的蜂窩電話收發(fā)機2616。此外,計算機2600還可以包括耦合到處理器2611的軟盤驅(qū)動器2614和壓縮光盤(CD)驅(qū)動器2615。在筆記本配置中,計算機殼體包括全部都耦合到處理器2611的觸摸板2617、鍵盤2618和顯示器2619。該計算設(shè)備的其它配置可以包括(例如,經(jīng)由USB輸入)耦合到處理器的計算機鼠標(biāo)或者跟蹤球,如公眾所知道的,這些部件也可以結(jié)合各個方面來使用。

用于在可編程處理器上運行以執(zhí)行本文的各個方面的操作的計算機程序代碼或“程序代碼”,可以利用諸如C、C++、C#、Smalltalk、Java、JavaScript、Visual Basic、結(jié)構(gòu)化查詢語言(例如,Transact-SQL)、Perl之類的高級編程語言來編寫,或者利用各種其它編程語言來編寫。如本申請中所使用的計算機可讀存儲介質(zhì)上所存儲的程序代碼或程序,可以指代其格式是處理器可理解的機器語言代碼(例如,目標(biāo)代碼)。

將很多移動計算設(shè)備操作系統(tǒng)內(nèi)核組織到用戶空間(非特權(quán)代碼運行的空間)和內(nèi)核空間(特權(quán)代碼運行的空間)。這種分隔在Android和其它通用公共許可證(GPL)環(huán)境中具有特別的重要性,其中在這些環(huán)境中,作為內(nèi)核空間的一部分的代碼必須是GPL許可的,而在用戶空間中運行的代碼可以不是GPL許可的。應(yīng)當(dāng)理解的是,這里所討論的各種軟件組件/模塊可以實現(xiàn)在內(nèi)核空間中,也可以實現(xiàn)在用戶空間中,除非另外明確指出。

上述的方法描述和處理流程圖僅僅是用作為說明性示例,而不是旨在要求或者隱含著必須以所給出的順序來執(zhí)行各個方面的步驟。如本領(lǐng)域普通技術(shù)人員所應(yīng)當(dāng)理解的,可以以任何順序來執(zhí)行上述的方面中的操作順序。諸如“其后”、“轉(zhuǎn)而”、“接著”等等之類的詞語,并不旨在限制這些操作的順序;這些詞語僅僅只是用于引導(dǎo)讀者遍歷該方法的描述。此外,任何對權(quán)利要求元素的單數(shù)引用(例如,使用冠詞“一個(a)”、“某個(an)”或者“該(the)”),不應(yīng)被解釋為將該元素限制為單數(shù)形式。

結(jié)合本文的各個方面描述的各種示例性的邏輯框、模塊、電路和算法操作均可以實現(xiàn)成電子硬件、計算機軟件或二者的組合。為了清楚地表示硬件和軟件之間的這種可交換性,上面對各種示例性的部件、框、模塊、電路和操作均圍繞其功能進(jìn)行了總體描述。至于這種功能是實現(xiàn)成硬件還是實現(xiàn)成軟件,取決于特定的應(yīng)用和對整個系統(tǒng)所施加的設(shè)計約束條件。熟練的技術(shù)人員可以針對每個特定應(yīng)用,以變通的方式實現(xiàn)所描述的功能,但是,這種實現(xiàn)決策不應(yīng)解釋為背離本發(fā)明的保護(hù)范圍。

用于執(zhí)行本文所述功能的通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或其它可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件部件或者其任意組合,可以用來實現(xiàn)或執(zhí)行結(jié)合本文所公開的方面描述的用于實現(xiàn)各種示例性的邏輯、邏輯框、模塊和電路的硬件。通用處理器可以是微處理器,或者,該處理器也可以是任何常規(guī)的處理器、控制器、微控制器或者狀態(tài)機。處理器也可以實現(xiàn)為計算設(shè)備的組合,例如,DSP和微處理器的組合、若干微處理器、一個或多個微處理器與DSP內(nèi)核的結(jié)合,或者任何其它此種結(jié)構(gòu)。替代地,一些操作或方法可以由特定于給定的功能的電路來執(zhí)行。

在一個或多個方面,本文所述功能可以用硬件、軟件、固件或它們?nèi)我饨M合的方式來實現(xiàn)。當(dāng)在軟件中實現(xiàn)時,可以將這些功能存儲成非暫時性計算機可讀介質(zhì)或者非暫時性處理器可讀介質(zhì)上的一個或多個指令或代碼。本文所公開的方法或算法的操作,可以體現(xiàn)在處理器可執(zhí)行軟件模塊中,后者可以位于非暫時性計算機可讀存儲介質(zhì)或處理器可讀存儲介質(zhì)上。非暫時性計算機可讀或處理器可讀存儲介質(zhì)可以是計算機或處理器能夠存取的任何存儲介質(zhì)。舉例而言,但非做出限制,這種非暫時性計算機可讀介質(zhì)或者處理器可讀介質(zhì)可以包括RAM、ROM、EEPROM、閃存、CD-ROM或其它光盤存儲器、磁盤存儲器或其它磁存儲設(shè)備、或者能夠用于存儲具有指令或數(shù)據(jù)結(jié)構(gòu)形式的期望的程序代碼并能夠由計算機進(jìn)行存取的任何其它介質(zhì)。如本文所使用的,磁盤和光盤包括壓縮光盤(CD)、激光光盤、光盤、數(shù)字通用光盤(DVD)、軟盤和藍(lán)光光盤,其中磁盤通常磁性地復(fù)制數(shù)據(jù),而光盤則用激光來光學(xué)地復(fù)制數(shù)據(jù)。上述的組合也應(yīng)當(dāng)包括在非暫時性計算機可讀介質(zhì)和處理器可讀介質(zhì)的保護(hù)范圍之內(nèi)。另外,一種方法或算法的操作可以作為一個代碼和/或指令集或者其任意組合,位于非暫時性處理器可讀介質(zhì)和/或計算機可讀介質(zhì)上,其中該非暫時性處理器可讀介質(zhì)和/或計算機可讀介質(zhì)可以并入到計算機程序產(chǎn)品中。

為使本領(lǐng)域任何普通技術(shù)人員能夠?qū)崿F(xiàn)或者使用本發(fā)明,上面圍繞所公開的方面進(jìn)行了描述。對于本領(lǐng)域普通技術(shù)人員來說,對這些方面的各種修改是顯而易見的,并且,本申請定義的總體原理也可以在不脫離本發(fā)明的精神或保護(hù)范圍的基礎(chǔ)上應(yīng)用于其它方面。因此,本發(fā)明并不限于本文所示出的方面,而是與所附權(quán)利要求書和本文公開的原理和新穎性特征的最廣范圍相一致。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
苗栗县| 前郭尔| 渭南市| 邢台市| 监利县| 遵化市| 南江县| 永清县| 文昌市| 长沙县| 长岭县| 武川县| 天台县| 平武县| 罗平县| 崇阳县| 资中县| 饶平县| 紫阳县| 康马县| 景泰县| 遵义市| 德庆县| 虞城县| 纳雍县| 黄石市| 绥化市| 灵川县| 惠安县| 铅山县| 花莲市| 温宿县| 潜山县| 哈密市| 新和县| 武乡县| 丹棱县| 阳曲县| 镇远县| 娄底市| 黄冈市|