亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

具有可動態(tài)調(diào)整的移除度量的組合寫入緩沖器的制作方法

文檔序號:6361433閱讀:127來源:國知局
專利名稱:具有可動態(tài)調(diào)整的移除度量的組合寫入緩沖器的制作方法
具有可動態(tài)調(diào)整的移除度量的組合寫入緩沖器技術(shù)領(lǐng)域
本發(fā)明公開涉及處理器領(lǐng)域,更具體地,涉及高速緩存中的組合寫入緩沖器。
背景技術(shù)
處理器常常實現(xiàn)組合寫入緩沖器,以捕獲已經(jīng)被寫入到較高級寫通 (write-through)高速緩存(例如,LI高速緩存)的寫入操作,并在更新較低級高速緩存(例 如,L2高速緩存)之前緩沖這些寫入。組合寫入緩沖器組合目標(biāo)為同一高速緩存塊內(nèi)的數(shù) 據(jù)的兩個或更多個寫入操作,并由此向L2高速緩存提供較少的寫入。
組合寫入緩沖器可在一段時間內(nèi)累積寫入操作。確定何時移除(flush)來自一個 或多個組合寫入緩沖器條目的寫入操作是帶寬與性能之間的權(quán)衡。組合寫入緩沖器中的緩 沖寫入操作可導(dǎo)致更高的帶寬效率。另一方面,如果數(shù)據(jù)被緩沖得太長,那么,由于需要被 推向較低級高速緩存或存儲器的數(shù)據(jù)保留在組合寫入緩沖器中,所以性能會受損。發(fā)明內(nèi)容
在實施例中,組合寫入緩沖器被配置為保持一個或多個移除度量(flush metric),以確定何時從緩沖器條目傳送寫入操作。組合寫入緩沖器可被配置為響應(yīng)于寫入 緩沖器中的活動,動態(tài)修改移除度量,修改使得從寫入緩沖器向低一級存儲器傳送寫入操 作的條件。因此,可基于檢測到的活動而動態(tài)調(diào)整性能/帶寬權(quán)衡。
在一個實現(xiàn)中,移除度量可包含將寫入緩沖器條目歸為“已折疊(collapsed) ”。 已折疊寫入緩沖器條目和其中的已折疊寫入操作可包含已重寫由緩沖器條目中的先前寫 入操作寫入的數(shù)據(jù)的至少一個寫入操作。這種條目可繼續(xù)累積重寫先前數(shù)據(jù)的寫入操作, 因此數(shù)據(jù)中的至少一些可以是不會很快再一次被訪問的臨時數(shù)據(jù)。例如,寫入緩沖器條目 中的寫入操作可以是存儲器中的寄存器溢出區(qū)域的一部分,其中寫入來自處理器的寄存器 值,以使得寄存器可用于存儲其它數(shù)據(jù)。當(dāng)確定寫入緩沖器充滿度(fullness)是否達到向 下一級存儲器傳送一個或多個寫入緩沖器條目中的組合寫入操作的規(guī)定閾值時,可以不考 慮已折疊寫入緩沖器條目。緩沖器中的已折疊條目可在閾值計算中被暫時忽略。
在另一實現(xiàn)中,組合寫入緩沖器可保持緩沖器充滿度的閾值作為移除度量。緩沖 器可監(jiān)視緩沖器充滿事件。如果緩沖器充滿事件被檢測到,那么閾值可能對于當(dāng)前的活動 水平可能太高并且可被減小。另一方面,如果連續(xù)寫入操作的數(shù)量在沒有檢測到緩沖器充 滿事件的情況下被接收到緩沖器中,那么閾值可能太低并且閾值可被提高。因此,基于隨著 時間而檢測到的實際緩沖器充滿度,可以調(diào)整該閾值。


以下的詳細(xì)描述參照附圖,現(xiàn)在簡要描述這些附圖。
圖1是處理器內(nèi)核、高速緩存和寫入組合緩沖器的一個實施例的框圖。
圖2是示出在高級上的組合寫入緩沖器的一個實施例的操作的流程圖。
圖3是組合寫入緩沖器的一個實施例的框圖。
圖4是示出響應(yīng)于接收到寫入操作而進行的圖3所示的組合寫入緩沖器的一個實施例的操作的流程圖。
圖5是示出用于評價移除度量的圖3所示的組合寫入緩沖器的一個實施例的操作的流程圖。
圖6是組合寫入緩沖器的另一實施例的框圖。
圖7是示出響應(yīng)于接收到寫入操作而進行的圖6所示的組合寫入緩沖器的一個實施例的操作的流程圖。
圖8是系統(tǒng)的一個實施例的框圖。
雖然 可對于本發(fā)明提出各種修改和替代形式,但是,其特定實施例在附圖中作為例子被示出,并且將在這里被詳細(xì)描述。但應(yīng)理解,附圖及其詳細(xì)描述不是要將本發(fā)明限于所公開的特定形式,相反,其意圖在于覆蓋落入由所附權(quán)利要求限定的本發(fā)明的精神和范圍內(nèi)的所有的修改、等同和替代方案。這里使用的小標(biāo)題僅是出于組織的目的,并且不意味著被用于限制說明的范圍。如在整個本申請中使用的那樣,在允許的意義(即,意味著具有可能)而不是強制的意義(即,意味著必須)上使用措詞“可以”。類似地,措詞“包括”、“包含”和“含有”意味著包括但不限于。
各種單元、電路或其它部件可被描述為“被配置為”執(zhí)行一個或多個任務(wù)。在這些語境中,“被配置為”是結(jié)構(gòu)的廣義敘述,一般意味著“具有”在操作中執(zhí)行一個或多個任務(wù)的“電路”。因而,單元/電路/部件可被配置為即使在單元/電路/部件當(dāng)前不為開時也執(zhí)行任務(wù)。一般地,形成與“被配置為”對應(yīng)的結(jié)構(gòu)的電路可包含硬件電路。類似地,為了便于描述,各種單元/電路/部件可被描述為執(zhí)行一個或多個任務(wù)。這些描述應(yīng)被解釋為包括短語“被配置為”。很清楚,敘述被配置為執(zhí)行一個或多個任務(wù)的單元/電路/部件不是要對于該單元/電路/部件援引35 U. S. C. § 112第6段的解釋。
具體實施方式
現(xiàn)在轉(zhuǎn)到圖1,該圖示出處理器內(nèi)核10、第一級(LI)數(shù)據(jù)高速緩存12、第二級(L2) 接口單元14和L2高速緩存16的一個實施例的框圖。L2接口單元14可包含填充緩沖器 18和組合寫入緩沖器(CWB) 20。CWB 20可被配置為保持一個或多個移除度量22。處理器內(nèi)核10與LI數(shù)據(jù)高速緩存12耦合,該LI數(shù)據(jù)高速緩存12與L2接口單元14耦合。L2接口單元14進一步與L2高速緩存16耦合,該L2高速緩存16進一步與存儲器分級體系中的下一級存儲器(圖1未示出)耦合。
處理器內(nèi)核10可實現(xiàn)任何指令集架構(gòu),并且可包含用于執(zhí)行在指令集架構(gòu)中限定的指令的電路。在各種實施例中,處理器內(nèi)核10可實現(xiàn)任何微架構(gòu),包含超標(biāo)量或標(biāo)量、 超流水線或流水線、反次序或正次序、推測或非推測等。各種實施例可如希望的那樣使用或不使用微編碼技術(shù)。
由處理器內(nèi)核10實現(xiàn)的指令集架構(gòu)可規(guī)定被限定為從存儲器向處理器(例如,向處理器中的寄存器)傳送數(shù)據(jù)的顯性加載指令和限定為從處理器向存儲器傳送數(shù)據(jù)的顯性存儲指令。在各種實施例中,可在高速緩存中完成任一傳送。作為替代方案,或者另外,指令集架構(gòu)可規(guī)定隱性加載和存儲(例如,對于對存儲器操作數(shù)執(zhí)行非加載/存儲操作的指令)。因此,處理器內(nèi)核10可被認(rèn)為運行或執(zhí)行加載操作或存儲操作??蓮娘@性指令或隱性加載 /存儲導(dǎo)出加載/存儲操作。
處理器內(nèi)核10可被配置為響應(yīng)于加載操作產(chǎn)生讀取操作,并可被配置為響應(yīng)于 存儲操作產(chǎn)生寫入操作。讀取/寫入操作可被傳播到包含一級或多級高速緩存和主存儲器 系統(tǒng)的存儲器分級體系。高速緩存可高速緩存還存儲于主存儲器子系統(tǒng)中的數(shù)據(jù),并且由 在與主存儲器系統(tǒng)對應(yīng)的存儲器地址空間中限定的存儲器地址識別存儲器分級體系中的 數(shù)據(jù)。例如,在圖1的實施例中,LI和L2高速緩存可以是存儲器分級體系中的各級存儲器。 存在附加級,包括主存儲器級,并且任選地包括一個或多個附加級高速緩存。其它實施例可 以不包含L2高速緩存16,并且,相對于LI高速緩存的下一級存儲器可以是主存儲器子系 統(tǒng)。一般地,讀取/寫入操作可進入頂級的存儲器分級體系(最接近處理器內(nèi)核10的級),并 且可以逐級地被編程,直到完成操作為止。主存儲器子系統(tǒng)可以是存儲器分級體系中的最 低級。數(shù)據(jù)可通過諸如大規(guī)模存儲裝置(例如,盤驅(qū)動器)或網(wǎng)絡(luò)裝置的各種外設(shè)裝置而被 移動到主存儲器子系統(tǒng)或者從中移出,但是,不通過這些裝置上的存儲器地址識別數(shù)據(jù)(例 如,大規(guī)模存儲裝置可具有它們自身的用于在裝置上定位數(shù)據(jù)的地址空間,或者,與網(wǎng)絡(luò)裝 置連接的網(wǎng)絡(luò)可包含其自身的識別網(wǎng)絡(luò)上的裝置的地址空間)。
讀取操作可在從存儲器分級體系(例如,任一級高速緩存,或者主存儲器子系統(tǒng)) 返回用于讀取的數(shù)據(jù)時完成,并且,寫入操作可通過發(fā)送寫入數(shù)據(jù)的處理器內(nèi)核10完成。 寫入操作可包含地址、寫入的尺寸(例如,以字節(jié)計)的指示和寫入數(shù)據(jù)。寫入操作還可包含 寫入的其它屬性(例如,可高速緩存性、一致性等)。
數(shù)據(jù)高速緩存12可實現(xiàn)任何容量和配置(例如,直接映射、組合相關(guān)(set associative)等)。數(shù)據(jù)高速緩存12可被配置為以高速緩存塊為單位在高速緩存中分配存 儲和解除分配。高速緩存塊可具有任意的尺寸(例如,32字節(jié)、64字節(jié)、128字節(jié)等),并且, 可在存儲器中在塊尺寸的自然地址邊界上對準(zhǔn)高速緩存塊(例如,32字節(jié)的高速緩存塊可 與32字節(jié)邊界對準(zhǔn),64字節(jié)的高速緩存塊可與64字節(jié)邊界對準(zhǔn),等等)。
在示出的實施例中,數(shù)據(jù)高速緩存12是寫通(WT)。在寫通高速緩存中,除了更新 高速緩存中的高速緩存塊以外,命中高速緩存的寫入操作被傳播到下一級存儲器。錯失高 速緩存的寫入操作還被傳播到下一級存儲器。另一方面,寫回高速緩存(或存入高速緩存) 可更新存儲的高速緩存塊,并且可以不傳播寫入操作。相反,更新后的高速緩存塊在從高速 緩存中被驅(qū)逐時可最終被寫回到下一級存儲器。
L2接口單元14可從LI數(shù)據(jù)高速緩存12接收寫入操作,并且還可接收讀取高速緩 存錯失(作為填充請求)。L2接口單元14可被配置為在CWB 20中存儲寫入操作,并且在填 充緩沖器18中存儲填充請求。填充請求可被傳送到L2高速緩存16 (并且,根據(jù)需要被傳 送到較低級的存儲器分級體系),并且,填充數(shù)據(jù)可返回LI數(shù)據(jù)高速緩存12并可被寫入到 LI數(shù)據(jù)高速緩存12。
CffB 20可緩沖寫入操作,并且在各種時間點上將它們傳送到L2高速緩存16。寫入 操作可包含命中高速緩存12并更新了其中的高速緩存塊的寫通寫入。寫入操作還可包含 在數(shù)據(jù)高速緩存12中錯失的寫通寫入。CWB 20可包含多個緩沖器條目。每個緩沖器條目 可被配置為在高速緩存塊粒度上存儲寫入操作。即,可為與存儲器中的高速緩存塊邊界對 準(zhǔn)的高速緩存塊尺寸的條目分配條目。高速緩存塊內(nèi)的任何寫入可被存儲于所分配的條目中。高速緩存塊內(nèi)的初始寫入操作可導(dǎo)致CWB 20分配條目,并且,可在緩沖器內(nèi)存儲寫入 數(shù)據(jù)連同地址和高速緩存塊內(nèi)的哪些字節(jié)被更新的指示(例如,字節(jié)掩碼)。隨后的寫入操 作可被合并入緩沖器中,從而將數(shù)據(jù)寫入到高速緩存塊內(nèi)的適當(dāng)字節(jié)中并更新字節(jié)掩碼。
CffB 20可被配置為累積一個或多個移除度量22,以確定何時從緩沖器條目向L2 高速緩存16傳送一個或多個組合寫入操作。CWB 20可被配置為監(jiān)視寫入緩沖器中的活動 以確定移除度量22。因此,移除度量一般可以是動態(tài)產(chǎn)生的數(shù)據(jù),其可被CWB 20使用來確 定何時向下一級存儲器傳送組合寫入操作(或移除一個或多個寫入緩沖器條目)。由于移除 度量是動態(tài)產(chǎn)生的,因此,移除組合寫入操作的頻率可基于檢測到的寫入緩沖器活動而隨 著時間改變。即,移除度量可與寫入緩沖器的填充度(即,與緩沖器條目的總數(shù)相比,已占用 (occupied)緩沖器條目的數(shù)量)一起使用,以確定何時向下一級存儲器傳送一個或多個組 合寫入操作。
例如,在一個實施例中,移除度量可包含已折疊寫入緩沖器條目的檢測。已折疊寫 入緩沖器條目可以是這樣的條目,其中至少一個寫入操作已被合并到該條目中;以及寫 入操作已經(jīng)重寫了由先前寫入操作寫入到條目的寫入數(shù)據(jù)的至少一個字節(jié)。例如,如果字 節(jié)掩碼被保持以指示高速緩存塊內(nèi)的哪些字節(jié)被更新,在寫入操作被合并到條目中并且已 經(jīng)設(shè)置了由于合并寫入操作而使得被設(shè)置的字節(jié)掩碼的至少一個位的情況下,可檢測已折 置與入。其它實施例可在聞速緩存塊的其它等級的粒度(例如,字、雙字等)上檢測折置。如 果通過寫入更新的所有字節(jié)具有其相應(yīng)的在已折疊寫入之前設(shè)置的掩碼位,那么其它實施 例可以僅檢測已折疊寫入。即,如果字節(jié)掩碼在合并已折疊寫入前后是相同的值,那么可以 檢測已折疊寫入。
CffB 20可被配置為在檢測寫入緩沖器充滿度時不考慮已折疊寫入緩沖器條目。例 如,CWB 20可被配置為當(dāng)CWB 20接近充滿時(例如,當(dāng)滿足充滿度的閾值等級時),從一個 或多個寫入緩沖器條目傳送組合寫入操作。由于在確定移除寫入條目的寫入緩沖器充滿度 時不考慮已折疊寫入緩沖器條目,因此,當(dāng)已折疊寫入緩沖器條目在寫入緩沖器中被檢測 到時,與當(dāng)已折疊寫入緩沖器條目在寫入緩沖器中未被檢測到時相比,寫入緩沖器可趨于 變得更加充滿(就已占用的條目而言)。在一個實施例中,固定或可編程閾值可被用于確定 CffB 20正在接近充滿。使用中的條目的計數(shù)可與閾值相比,少了處于已折疊狀態(tài)中的任意 條目。當(dāng)達到(例如,滿足或超過)閾值時,CWB 20可移除一個或多個寫入緩沖器條目。在 實施例中,CWB 20可響應(yīng)于達到閾值而移除一個寫入緩沖器條目,或者可繼續(xù)移除寫入緩 沖器條目,直到已占用的寫入緩沖器條目的數(shù)量下降為低于閾值。在其它的實施例中,多于 一個寫入緩沖器條目可被同時移除。由于已折疊寫入緩沖器條目與充滿度閾值無關(guān),因此, 與不存在已折疊寫入緩沖器條目時相比,寫入緩沖器條目可被較不頻繁地移除。
移除寫入緩沖器條目可包含一個或多個組合寫入操作。例如,對于條目中的每一 組連續(xù)的更新字節(jié),可產(chǎn)生一個寫入操作。如果在條目中存在未更新字節(jié)的中斷(gap),那 么可傳送多個寫入操作。在其它實施例中,可通過字節(jié)掩碼或識別哪些字節(jié)要在高速緩存 塊內(nèi)被更新的其它指示傳送每個寫入條目一個的組合寫入操作。在其它實施例中,可以產(chǎn) 生給定尺寸(例如,字)的寫入。
在另一實施例中,移除度量22可包含閾值。閾值可基于寫入緩沖器充滿事件的檢 測而被動態(tài)修改。寫入緩沖器充滿事件可指示寫入緩沖器實際是充滿的(所有分配給寫入操作的緩沖器條目)。因此,CWB 20可基于閾值移除寫入條目,并且可檢測緩沖器充滿事件, 以指示閾值要被修改。例如,如果檢測到緩沖器充滿事件,那么CWB 20可確定閾值太高(例 如,太接近緩沖器充滿),從而導(dǎo)致寫入緩沖器在可完成條目的移除之前填充。充滿緩沖器 會影響處理器內(nèi)核性能。因此,可響應(yīng)于緩沖器充滿事件而減小閾值。另一方面,如果在沒 檢測到緩沖器充滿事件的情況下將一定數(shù)量的寫入操作寫入到緩沖器,那么閾值可能會太 低(例如,離緩沖器充滿太遠(yuǎn))并且可能被提高。
因此,可基于緩沖器是否變滿而隨著時間調(diào)整閾值。如果流量正在導(dǎo)致緩沖器更 迅速地填充,那么閾值可被減小。以這種方式,不會在緩沖器中引起寫入阻塞,并導(dǎo)致處理 器內(nèi)核10中斷。如果流量正導(dǎo)致緩沖器較不迅速地填充,那么閾值可被提高。因此,可允 許緩沖器更長地存儲寫入操作,從而減少L2高速緩存16中的流量(和功耗)。即,從寫入緩 沖器條目向L2高速緩存16傳送寫入的頻率可隨著閾值的變化增加和減小。
在其它實施例中,可以累積其它移除度量(例如,寫入的充滿高速緩存塊多頻繁地 被緩沖、緩沖器中的偵聽命中等)。也可基于這些度量修改將寫入緩沖器條目移除到L2高 速緩存16的頻率。例如,如果偵聽命中被檢測到(指示系統(tǒng)中的其它處理器內(nèi)核或電路正 在使用被寫入的數(shù)據(jù)),那么移除的頻率可被提高。
在一些實施例中,存儲于CWB 20中的寫入操作還可包含不可高速緩存的寫入操 作。不可高速緩存的寫入操作可以是可寫入組合的,并且可被合并成與以上討論的寫通寫 入類似的緩沖器條目中。其它不可高速緩存寫入操作可能不是可寫入組合的(或者可能不 支持不可高速緩存寫入的寫入組合)。在這些情況下,每個不可高速緩存寫入操作可被分配 給CWB 20中其自身的單獨條目。其它實施例可在不同的寫入緩沖器中存儲不可高速緩存 的寫入操作。
與以上對于數(shù)據(jù)高速緩存12的討論類似,L2高速緩存16可具有任何尺寸和結(jié)構(gòu)。 在各種實施例中,L2高速緩存16可被寫回(write back)或者寫通。L2高速緩存16還可 包含與下一級存儲器的接口,在各種實施例中,該下一級存儲器可以是主存儲器子系統(tǒng)或 第三等級(L3)高速緩存。
注意,也可在存儲器分級體系的其它級之間包括組合寫入緩沖器(CWB)20。例如, 可在為寫通的任何高速緩存級之下包括CWB 20。注意,在實施例中,處理器內(nèi)核10、LI數(shù) 據(jù)高速緩存12和L2接口 14 (包含填充緩沖器18和CWB 20)可一起集成為處理器。在其 它實施例中,可與另一處理器內(nèi)核10/L1數(shù)據(jù)高速緩存12共享L2接口 14。在其它實施例 中,L2高速緩存16可被集成到處理器中,和/或可以集成其它部件(例如,在芯片配置上的 系統(tǒng)中)。
下面轉(zhuǎn)到圖2,圖2表示示出CWB 20的一個實施例的操作的流程圖。雖然為了便 于理解以特定的次序示出了各塊,但是,可以使用其它次序。可以在CWB 20中在組合邏輯 中并行執(zhí)行各塊。塊、塊的組合和/或流程圖在總體上可在多個時鐘周期上被流水線化。 CffB 20可被配置為實現(xiàn)圖2所示的操作。
CffB 20可被配置為監(jiān)視寫入緩沖器中的活動(塊30)。例如,可由CWB 20監(jiān)視緩 沖器的充滿度、合并到緩沖器中的寫入操作的數(shù)量、已折疊寫入等。如果檢測到的活動指示 由CWB 20保持的移除度量的變化(決定塊32,“是”分支),那么CWB 20可修改移除度量(塊 34)。如果緩沖器狀態(tài)和移除度量(一個或多個)22的組合表示一個或多個緩沖器條目的移除(決定塊36,“是”分支),那么CWB 20可被配置為從一個或多個緩沖器條目向L2高速緩 存16傳送一個或多個組合寫入操作(塊38)。更一般地,寫入操作可被傳送到存儲器分級體 系中的下一級存儲器。
現(xiàn)在轉(zhuǎn)到圖3,示出了 CWB 20的一個實施例的框圖。在圖3的實施例中,CWB 20 包含與寫入緩沖器42耦合的控制電路40。緩沖器42被耦合,以從LI數(shù)據(jù)高速緩存12接 收寫入操作,并向L2高速緩存16 (或者,更一般地,向存儲器分級體系中的下一級存儲器) 提供組合寫入操作??刂齐娐?0包含可分別存儲折疊年齡(Collapse Age,CAge)閾值、年 齡閾值和充滿閾值的一組寄存器44A 44C。寄存器44A 44C 一般可實現(xiàn)為一個寄存器 或多個寄存器,并且在一些實施例中可以是為獲得可編程性而可尋址的軟件。在其它實施 例中,可以固定閾值中的一個或多個。
在圖3中示出緩沖器42中的示例性條目46A 46B,并且每一條目包含地址字段 (A)、數(shù)據(jù)字段(D)、字節(jié)掩碼字段(Byte Mask)、年齡計數(shù)器字段(Age Ctr)和已折疊狀態(tài)字 段(Collapsed)??稍诰彌_器42中包含與示出的條目類似的附加條目。跨所有條目的已折 疊狀態(tài)可一起表示移除度量22。地址字段可存儲在條目中表示的高速緩存塊的地址,并且 雖然整個高速緩存塊可能不是有效的,但是數(shù)據(jù)字段可包含數(shù)據(jù)的高速緩存塊的存儲。即, 條目可在任意給定時間存儲有效數(shù)據(jù)的部分高速緩存塊。字節(jié)掩碼字段可以包含用于高速 緩存塊中的每個字節(jié)的位。位可指示在數(shù)據(jù)字段中相應(yīng)字節(jié)是否是有效的(即,字節(jié)是否 通過在條目中表示的寫入操作已被寫入)。在一個實施例中,屏蔽位可被設(shè)置以表示字節(jié)有 效,并且可以清除以表示無效,盡管其它實施例可針對設(shè)置和清除狀態(tài)使用相反的含意。年 齡計數(shù)器可指示條目的年齡。年齡計數(shù)器可初始地被設(shè)為零,并且可針對寫入處于緩沖器 42中的每個時鐘周期或者針對向緩沖器42提供的每個寫入操作,增大年齡計數(shù)器。在其它 實施例中,年齡計數(shù)器可被初始化/復(fù)位到限定的值并且被減小。已折疊狀態(tài)可表示條目 是否被折疊。即,已折疊狀態(tài)可表示是否對于條目檢測到至少一個已折疊寫入。已折疊狀 態(tài)可例如為當(dāng)設(shè)置時表示條目被折疊并且當(dāng)清除時表示條目未被折疊的位(反之亦然)。其 它實施例可使用狀態(tài)的其它指示。
現(xiàn)在轉(zhuǎn)到圖4,該圖表示示出響應(yīng)于從數(shù)據(jù)高速緩存12接收到寫入操作而進行的 圖3所示的CWB 20的一個實施例的操作的流程圖。雖然為了便于理解以特定次序示出了 各塊,但是,可以使用其它次序??梢栽贑WB 20中在組合邏輯中并行執(zhí)行各塊。塊、塊的組 合和/或流程圖在總體上可在多個時鐘周期上被流水線化。CffB 20,特別是控制電路40,可 被配置為實現(xiàn)圖4所示的操作。
CffB 20可被配置為比較寫入操作的地址和寫入緩沖器42中的地址(在高速緩 存線粒度上)。例如,寫入緩沖器42中的條目的地址字段可被實現(xiàn)為內(nèi)容可尋址存儲器 (CAM)0如果寫入操作是緩沖器條目中的命中(即,寫入操作處于由該條目代表的高速緩存 塊內(nèi)-決定塊50,“是”分支),那么控制電路40可被配置為將條目中的年齡計數(shù)器復(fù)位(塊 52)。因此,在本實施例中,由于最近的寫入操作被合并到條目中,因此,年齡計數(shù)器可以是 該條目的年齡。如果寫入操作重寫已通過先前寫入操作寫入到條目的至少一個字節(jié)(決定 塊54,“是”分支),那么控制電路40可被配置為設(shè)置已折疊狀態(tài)以表示已折疊(塊56)???制電路40可被配置為更新字節(jié)掩碼并使得數(shù)據(jù)被寫入到命中條目的數(shù)據(jù)字段。
如果寫入操作是寫入緩沖器42中的錯失(決定塊50,“不”分支),那么控制電路40可被配置為為寫入操作分配新的(當(dāng)前未占用的)條目(塊60)??刂齐娐?0可用與寫入操作對應(yīng)的信息初始化所分配的條目(塊62)。具體地,控制電路40可使得所分配的條目用寫入操作的地址和數(shù)據(jù)更新,可設(shè)置字節(jié)掩碼以表示由寫入更新的字節(jié),可清除年齡計數(shù)器,并且可清除已折疊狀態(tài)。如果寫入緩沖器是充滿的(即,不存在當(dāng)前未被占用的條目),那么控制電路40可背壓(back pressure)LI數(shù)據(jù)高速緩存12/處理器10以中斷寫入操作,直到條目是可用的。決定塊54和設(shè)置的已折疊狀態(tài)56可分別等同于圖3所示的CWB 20的實施例的決定塊32和塊34?,F(xiàn)在轉(zhuǎn)到圖5,該圖表示示出用于評價緩沖器條目并確定移除事件的圖3所示的CffB 20的一個實施例的操作的流程圖。雖然為了便于理解以特定的次序示出了各塊,但是可以使用其它次序??梢栽贑WB 20中在組合邏輯中并行執(zhí)行各塊。塊、塊的組合和/或流程圖在總體上可在多個時鐘周期上被流水線化。CWB 20,特別是控制電路40,可被配置為實現(xiàn)圖5所示的操作??刂齐娐?0可配置為確定充滿計數(shù)(full count)為已占用條目的數(shù)量減去已折疊條目的數(shù)量(塊70)。即,充滿計數(shù)可以是未折疊條目的數(shù)量。如果全部計數(shù)達到充滿閾值44C (決定塊72,“是”分支),那么控制電路40可被配置為從一個或多個條目向L2高速緩存16或存儲器分級體系的下一級傳送組合寫入操作(塊74)??刂齐娐?0可被配置為選擇任何條目以向L2高速緩存16傳送寫入操作。例如,在實施例中,控制電路40可選擇不是已折疊條目的最早條目(由年齡計數(shù)器指示)。在另一實施例中,可基于年齡考慮已折疊和未折疊條目以供選擇。在另一實施例中,條目可以按其分配的先入先出(FIFO)次序被移除。在本實施例中,塊70和72的組合可等同于塊36,并且,塊74可等同于塊38。在另一實施例中,附加閾值可被限定(比充滿閾值高)以與已占用條目的總數(shù)(已折疊的和未折疊的)相比。如果已占用條目的總數(shù)達到附加閾值,那么控制電路40可被配置為從一個或多個緩沖器條目向L2高速緩存16傳送組合寫入操作(塊74)。圖5所示的流程圖的剩余部分可被應(yīng)用于緩沖器42中的每個緩沖器條目(例如,對于每個緩沖器條目,并行地應(yīng)用)。如果年齡計數(shù)器達到已折疊年齡閾值44A(決定塊76,“是”分支),那么控制電路40可被配置為將條目中的已折疊狀態(tài)復(fù)位,從而表示未折疊(塊78)。因此,由于在本實施例中年齡計數(shù)器在對條目的每次寫入命中時被復(fù)位,因此在沒有對條目的另一寫入命中的情況下經(jīng)過了等于已折疊年齡閾值的時鐘周期數(shù)量之后,已折疊條目不再被視為已折疊。如果年齡計數(shù)器達到年齡閾值44B (決定塊80,“是”分支),那么控制電路40可被配置為移除條目(塊82),從而傳送對于條目的一個或多個組合寫入操作。對于本實施例,塊80和82可分別是塊36和38的另一種等同?,F(xiàn)在轉(zhuǎn)到圖6,該圖示出CWB 20的另一實施例的框圖。在圖6的實施例中,CWB 20包含與寫入緩沖器92耦合的控制電路90。緩沖器92被耦合以從LI數(shù)據(jù)高速緩存12接收寫入操作,并向L2高速緩存16提供組合寫入操作??刂齐娐?0包含可分別存儲寫入閾值、寫入計數(shù)和充滿閾值的一組寄存器94A 94C。寄存器94A 94C 一般可實現(xiàn)為一個寄存器或多于一個寄存器,并且在一些實施例中可以是為獲得可編程性而可尋址的軟件。在其它實施例中,可以固定寫入閾值。在圖6的實施例中,寫入計數(shù)94B和充滿閾值94的組合可以是移除度量22。寫入計數(shù)94B可以是自最近的緩沖器充滿事件以來存儲于緩沖器92中的寫入操作的計數(shù)。在本實施例中,該充滿閾值94C可以是在執(zhí)行移除之前被占用的緩沖器條目的閾值。如以下討論的那樣,充滿閾值94C可基于寫入緩沖器活動而改變。在圖6中示出示例性條目96A 96B??梢园ㄅc示出的條目類似的附加條目。圖6的實施例包括與以上關(guān)于圖3描述的相同字段類似的地址字段(A)、數(shù)據(jù)字段(D)、字節(jié)掩碼字段(Byte Mask)和年齡計數(shù)器(Age Ctr)字段。圖7是示出響應(yīng)于接收到寫入操作而進行的圖6所示的CWB 20的一個實施例的操作的流程圖。雖然為了便于理解以特定次序示出了各塊,但是,可以使用其它次序??梢栽贑WB 20中在組合邏輯中并行執(zhí)行各塊。塊、塊的組合和/或流程圖在總體上可在多個時鐘周期上被流水線化。CWB 20,特別是控制電路90,可被配置為實現(xiàn)圖7所示的操作。除了圖7所示的操作以外,圖6的實施例可檢測緩沖器92中的命中或錯失,并且因此可如圖4中的塊50、52、58、60和62所示的那樣更新條目,并且也可實現(xiàn)圖5中的塊72和74。任選地,在一些實施例中,圖6的實施例也可實現(xiàn)圖5的塊80和82??刂齐娐?0可被配置為確定接收到的寫入操作是否填充緩沖器92(決定塊100)。例如,如果接收到的寫入操作是緩沖器92中的錯失并且最后的未占用條目被分配給接收到的寫入操作,那么緩沖器92為充滿。如果是這樣(決定塊100,“是”分支),那么控制電路90可被配置為減小充滿閾值94C (塊102)并清除寫入計數(shù)94B (塊104)。另一方面(決定塊100,“否”分支),如果接收到的寫入操作不導(dǎo)致充滿事件,那么控制電路90可被配置為增大寫入計數(shù)94B (塊106)。如果寫入計數(shù)達到寫入閾值(決定塊108,“是”分支),那么控制電路90可被配置為提高充滿閾值。在本實施例中,圖7的流程圖可等同于圖3中的塊32和34。因此,充滿閾值可在本實施例中被動態(tài)修改以導(dǎo)致條目的移除(如塊72和74所示,其中在本實施例中,充滿計數(shù)是已占用條目的數(shù)量),以防止出現(xiàn)充滿事件,同時允許緩沖器92基于在CWB 20中檢測到的流量盡可能地充滿??梢园慈魏蜗M姆绞酱_定寫入計數(shù)。例如,如果寫入操作的給定百分比有望被合并到寫入緩沖器條目中,那么寫入計數(shù)可等于每個高速緩存塊的寫入操作的數(shù)量(例如,高速緩存塊中的字的數(shù)量)、寫入緩沖器條目的數(shù)量和合并百分比的積。下面轉(zhuǎn)到圖8,該圖示出系統(tǒng)350的一個實施例的框圖。在示出的實施例中,系統(tǒng)350包含與外部存儲器352耦合的集成電路358的至少一個實例。外部存儲器352可形成以上關(guān)于圖1討論的主存儲器子系統(tǒng)。集成電路358可至少包含圖1所示的處理器內(nèi)核10和LI數(shù)據(jù)高速緩存12,并且可包含L2接口單元14和L2高速緩存16中的一個或多個。集成電路358還可包含希望的其它部件。集成電路358與一個或多個外設(shè)354和外部存儲器352耦合。還提供向集成電路358提供供給電壓以及向存儲器352和/或外設(shè)354提供一個或多個供給電壓的電源356。在一些實施例中,可以包括集成電路358的多于一個的實例(并且,也可包括多于一個外部存儲器352)。存儲器352可以是任意類型的存儲器,諸如動態(tài)隨機存取存儲器(DRAM)、同步DRAM (SDRAM)、雙數(shù)據(jù)率(DDR、DDR2、DDR3等)SDRAM (包含諸如mDDR3等的SDRAM的移動版本和/或諸如LPDDR2等的SDRAM的低功率版本)、RAMBUS DRAM (RDRAM)、靜態(tài)RAM (SRAM)等。一個或多個存儲器裝置可耦合到電路板上,以形成諸如單一內(nèi)嵌存儲器模塊(SIMM)、雙內(nèi)嵌存儲器模塊(DIMM)等的存儲器模塊。作為替代方案,裝置可以在芯片疊放配置、封裝疊放配置或多芯片模塊配置中與集成電路358 —起被安裝。根據(jù)系統(tǒng)350的類型,外設(shè)354可包含任何希望的電路。例如,在一個實施例中,系統(tǒng)350可以是移動裝置(例如,外人數(shù)字助理(PDA)、智能電話等),并且外設(shè)354可包含用于諸如wif1、BlUet00th、蜂窩、全球定位系統(tǒng)等的各種類型的無線通信的裝置。外設(shè)354還可包括包含RAM存儲裝置、固態(tài)存儲裝置或盤存儲裝置的附加存儲裝置。外設(shè)354可包含諸如包含觸摸顯示屏或多觸摸顯示屏的顯示屏、鍵盤或其它輸入裝置、麥克風(fēng)、揚聲器等的用戶接口裝置。在其它實施例中,系統(tǒng)350可以是任意類型的計算系統(tǒng)(例如,桌面?zhèn)€人計算機、膝上型計算機、工作站、桌面一體機(net top)等)?!┩耆斫饬艘陨系挠懻?,大量的變更和修改對于本領(lǐng)域技術(shù)人員來說就變得十分明顯。以下的權(quán)利要求應(yīng)被解釋為包含所有這些變更和修改。
權(quán)利要求
1.一種裝置,包括高速緩存;與所述高速緩存耦合并被配置為緩沖訪問所述高速緩存的寫入操作的寫入緩沖器,其中,所述寫入緩沖器包含多個條目,每一個條目被配置為在高速緩存塊粒度上組合寫入操作;和與所述寫入緩沖器耦合的控制電路,其中,所述控制電路被配置為使得所述寫入緩沖器響應(yīng)于由所述控制電路施加的一個或多個移除度量并響應(yīng)于所述寫入緩沖器的充滿度, 從所述多個條目中的一個或多個條目向在所述高速緩存之下的下一級存儲器傳送一個或多個組合寫入操作,并且其中所述控制電路被配置為響應(yīng)于所述寫入緩沖器中的活動而動態(tài)修改所述一個或多個移除度量,其中動態(tài)修改所述一個或多個移除度量改變從所述寫入緩沖器向所述下一級存儲器傳送組合寫入操作的頻率。
2.如權(quán)利要求1所述的裝置,其中,所述一個或多個移除度量在所述多個條目中的每一個條目中包含折疊狀態(tài),其中所述折疊狀態(tài)指示是否已在該條目中組合的寫入操作中檢測到至少一個已折疊寫入,并且其中所述控制電路被配置為響應(yīng)于不在所述折疊狀態(tài)下的已占用緩沖器條目的數(shù)量達到閾值,使得傳送所述一個或多個組合寫入操作。
3.如權(quán)利要求2所述的裝置,其中,所述控制電路進一步被配置為檢測對于第一條目的已折疊寫入,并修改所述第一條目的第一折疊狀態(tài)以指示已折疊。
4.如權(quán)利要求3所述的裝置,還包括與所述多個條目中的每一個條目對應(yīng)的年齡計數(shù)器,其中,所述控制電路被配置為響應(yīng)于所述年齡計數(shù)器達到第二閾值,修改所述多個條目中的第二條目中的已折疊狀態(tài)以指示未折疊,并且其中,所述控制電路被配置為響應(yīng)于寫入操作命中所述第二條目,復(fù)位所述年齡計數(shù)器。
5.如權(quán)利要求1所述的裝置,其中,所述一個或多個移除度量包含所述寫入緩沖器的充滿度的閾值,其中所述控制電路被配置為響應(yīng)于所述寫入緩沖器中的已占用條目的數(shù)量達到充滿度的閾值,而使得所述一個或多個組合寫入操作被傳送,并且其中,所述控制電路被配置為響應(yīng)于檢測到緩沖器充滿事件而減小所述閾值。
6.如權(quán)利要求5所述的裝置,其中,所述控制電路被配置為響應(yīng)于在沒有發(fā)生所述緩沖器充滿事件的情況下接收到預(yù)定數(shù)量的寫入操作而提高所述閾值。
7.一種方法,包括控制電路監(jiān)視寫入緩沖器中的活動;所述控制電路響應(yīng)于所述活動,修改由所述控制電路保持的一個或多個移除度量;和所述控制電路響應(yīng)于所述一個或多個移除度量和所述寫入緩沖器的充滿度,使得來自所述寫入緩沖器中的至少一個緩沖器條目的一個或多個寫入操作。
8.如權(quán)利要求7所述的方法,其中,所述監(jiān)視包括檢測命中所述寫入緩沖器的第一條目并更新所述第一條目中已經(jīng)被更新的至少一個字節(jié)的第一寫入操作,并且其中,所述一個或多個移除度量包含每一個條目中的狀態(tài),并且其中,所述修改包含設(shè)置指示所述檢測的所述第一條目中的狀態(tài)。
9.如權(quán)利要求8所述的方法,還包括比較存儲寫入操作的寫入緩沖器條目的數(shù)量與充滿度閾值,其中,從所述數(shù)量中排除所述第一條目。
10.如權(quán)利要求7所述的方法,其中,所述活動包含在不填充所述寫入緩沖器的情況下的連續(xù)寫入操作的第一數(shù)量,并且其中,所述一個或多個移除度量包含充滿度閾值,并且其中,所述修改包含提高所述充滿度閾值。
11.如權(quán)利要求10所述的方法,其中,所述活動包含緩沖器充滿事件,并且其中,所述修改包含減小所述充滿度閾值。
12.一種裝置,包括高速緩存;與所述高速緩存耦合并被配置為緩沖在更新所述高速緩存的寫入操作之后更新所述高速緩存的寫入操作的寫入緩沖器,其中,所述寫入緩沖器被配置為合并更新同一高速緩存塊中的數(shù)據(jù)的多個寫入操作;和與所述寫入緩沖器耦合的控制電路,其中,所述寫入緩沖器控制電路被配置為使得所述寫入緩沖器響應(yīng)于所述寫入緩沖器接近充滿狀態(tài)而從所述寫入緩沖器向下一級存儲器傳送一個或多個合并寫入操作,并且其中,所述控制電路被配置為檢測從所述高速緩存接收的第一寫入操作,所述第一寫入操作命中所述寫入緩沖器的第一寫入緩沖器條目并更新由在第一寫入緩沖器條目中表示的先前寫入操作更新的至少一個字節(jié),其中,所述控制電路被配置為在確定所述寫入緩沖器是否接近充滿狀態(tài)時不再考慮所述第一寫入緩沖器條目。
13.如權(quán)利要求12所述的裝置,其中,所述控制電路被配置為響應(yīng)于充滿度閾值而確定所述寫入緩沖器接近充滿狀態(tài),其中,所述第一寫入緩沖器條目與達到所述閾值無關(guān)。
14.如權(quán)利要求12所述的裝置,其中,所述控制電路被配置為在所述第一寫入緩沖器條目中記錄指示已檢測到所述第一寫入操作的狀態(tài)。
15.如權(quán)利要求14所述的裝置,其中,所述第一寫入緩沖器條目還包含年齡指示,并且其中,所述控制電路被配置為改變所述狀態(tài)以指示沒有檢測到更新由先前寫入操作更新的至少一個字節(jié)的寫入操作,其中,所述控制電路被配置為響應(yīng)于在檢測到所述第一寫入操作之后所述年齡指示達到第一年齡閾值而改變所述狀態(tài)。
16.如權(quán)利要求15所述的裝置,其中,所述控制電路被配置為響應(yīng)于在所述第一寫入操作之后檢測到命中所述第一寫入緩沖器條目的第二寫入操作而將所述年齡指示復(fù)位。
17.如權(quán)利要求14所述的裝置,其中,所述寫入緩沖器控制電路進一步被配置為使得所述寫入緩沖器響應(yīng)于所述年齡指示達到比所述第一年齡閾值高的第二年齡閾值而從所述寫入緩沖器向下一級存儲器傳送寫入操作。
18.一種裝置,包括被配置為在寫入高速緩存之前累積對多個高速緩存塊的寫入的寫入緩沖器;被配置為監(jiān)視所述寫入緩沖器并且調(diào)整閾值的電路,所述閾值用于確定何時累積的寫入從所述存儲緩沖器被選出并被寫入到所述高速緩存,其中,所述電路被配置為根據(jù)所述寫入緩沖器變得充滿的頻率并且根據(jù)在所述寫入緩沖器沒有充滿的情況下發(fā)生的寫入的數(shù)量而調(diào)整所述閾值。
19.如權(quán)利要求18所述的裝置,其中,所述電路進一步被配置為在沒有緩沖器充滿事件的情況下響應(yīng)于檢測到第一數(shù)量的連續(xù)寫入操作而提高所述閾值。
20.如權(quán)利要求19所述的裝置,其中,所述電路被配置為響應(yīng)于連續(xù)寫入操作的計數(shù)而檢測所述第一數(shù)量,其中,所述電路被配置為響應(yīng)于所述緩沖器充滿事件而復(fù)位計數(shù)。
21.如權(quán)利要求18所述的裝置,其中,所述電路進一步被配置為響應(yīng)于檢測到緩沖器充滿事件而減小所述閾值。
全文摘要
本發(fā)明公開涉及具有可動態(tài)調(diào)整的移除度量的組合寫入緩沖器。在實施例中,組合寫入緩沖器被配置為保持一個或多個移除度量,以確定何時從緩沖器條目傳送寫入操作。組合寫入緩沖器可被配置為響應(yīng)于寫入緩沖器中的活動而動態(tài)修改移除度量,修改導(dǎo)致從寫入緩沖器向低一級存儲器傳送寫入操作的條件。例如,在一個實現(xiàn)中,移除度量可包含將寫入緩沖器條目歸為“已折疊”。已折疊寫入緩沖器條目和其中的已折疊寫入操作可包含重寫由緩沖器條目中的先前寫入操作寫入的數(shù)據(jù)的至少一個寫入操作。在另一實現(xiàn)中,組合寫入緩沖器可保持緩沖器充滿度的閾值作為移除度量,并且基于實際緩沖器充滿度隨著時間而調(diào)整它。
文檔編號G06F13/00GK103069400SQ201180040267
公開日2013年4月24日 申請日期2011年8月11日 優(yōu)先權(quán)日2010年8月20日
發(fā)明者P·J·巴農(nóng), A·J·比奧蒙特-史密斯, R·岡納, W-H·利恩, J·P·帕特瓦德安, B·P·莉莉, S-C·R·文, T-Y·葉哈 申請人:蘋果公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1