欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

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

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


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