存儲回放政策的制作方法
【專利說明】
[0001] 發明背景
技術領域
[0002] 本文提出的實施方案大體上涉及計算系統和處理裝置,且更特定來說,涉及一種 用于在處理裝置中實施可高速緩沖存儲回放政策的方法和設備。
[0003] 相關技術描述
[0004] 執行指令和過程數據的電氣電路和裝置已變得越來越快且越來越復雜。隨著對現 代數據處理器架構的性能需求和低功率需求遞增(例如,多核處理器),提交(即,寫入)新 數據(即,可高速緩沖存儲)到數據高速緩存已變得越來越復雜。設計能夠有效地提交新 數據的處理器同時避免問題情況(包括爭用狀態和活鎖狀態)以及功率消耗事件(諸如由 不同處理器內核重復地獲取高速緩存線)尤其成問題。
[0005] 在一些先前解決方案中,僅在等待可高速緩沖存儲變成系統中的最舊可高速緩沖 存儲之后,嘗試高速緩存線的獲取和可高速緩沖存儲的提交。在其它情況下,在可高速緩沖 存儲撤銷之后嘗試高速緩存線的獲取和可高速緩沖存儲的提交,且計數器經實施使得在一 定次數的嘗試之后,僅在所述可高速緩沖存儲變成系統中的最舊可高速緩沖存儲之后,才 進行獲取和可高速緩沖存儲提交的進一步嘗試。然而,這些先前解決方案遭遇不良性能和 低效的功率利用。
[0006] 本文提出的實施方案消除或減輕上文所描述的技術現狀中固有的問題。
[0007] 實施方案概述
[0008] 在一些實施方案中,提供一種方法。.所述方法包括執行可高速緩沖存儲。所述方 法的一些實施方案包括基于由所述高速緩存線的狀態指示的存儲指令狀態和所述存儲指 令的執行階段確定是否回放存儲指令以重新獲取一個或多個高速緩存線。響應于確定回放 所述存儲指令,回放所述存儲指令。提供一種包括存儲隊列(S?的設備,所述存儲隊列可 被配置來基于由所述高速緩存線的狀態指示的存儲指令狀態和所述存儲指令的執行階段 確定是否回放存儲指令以重新獲取一個或多個高速緩存線。本發明提供用于調適制作設施 以制造所述設備的計算機可讀存儲裝置。
[0009] 附圖簡述
[0010] 通過參考結合附圖進行的下文描述,可以理解本文的實施方案,其中參考數字中 的最左邊有效位標示各自參考數字出現的第一圖,且其中:
[0011] 圖1示意地示出根據一些實施方案的計算機系統的簡化方框圖;
[0012] 圖2示出根據一些實施方案的包括中央處理單元(CPU)和存儲隊列(SQ)電路的 電路的簡化方框圖;
[0013] 圖3提供根據一些實施方案的包括如圖2中所示的一個或多個電路的硅裸片/芯 片的表不;
[0014] 圖4提供根據一些實施方案的包括可以在制作設施中生產的一個或多個硅裸片/ 芯片的娃晶片的表不;
[0015]圖5示出根據一些實施方案的在計算機處理器的背景下圖2的存儲隊列(S?電 路的簡化方框圖;
[0016]圖6示出根據一些實施方案的可高速緩沖存儲的執行的簡化時間線;
[0017]圖7示出根據一些實施方案的流程圖,其描繪根據回放政策執行可高速緩沖存 儲;和
[0018]圖8概念地示出可以在圖5中所示的存儲隊列中實施的狀態機的實例。
[0019]雖然本文的實施方案具有各種修改和替代形式,但其具體實施方案已在附圖中通 過實例來示出且在本文予以詳述。然而,應了解,具體實施方案的本文描述并非意在將所公 開實施方案限于所公開特定形式,但相反,意在涵蓋落在如由所附權利要求書界定的所公 開實施方案范圍內的所有修改、等效物和替代物。
[0020] 詳述
[0021] 下文描述本申請的說明性實施方案。為了清楚起見,本說明書中未描述實際實施 方式的所有特征。當然,應明白,在任何這種實際實施方案的開發中,可以作出諸多實施方 式專屬決定以達成開發者的具體目標,諸如與系統相關和/或業務相關約束兼容,其可從 一個實施方式變化到另一個實施方式。此外,應明白,這種開發工作可以是復雜而耗時的, 但雖然如此,仍可能是獲益于本公開的本領域一般技術人員的例行任務。
[0022] 現將參考附圖描述本申請的實施方案。各種結構、連接、系統和裝置出于解釋目的 而在附圖中予以示意地描繪,且以免使所公開主題與本領域的技術人員熟知的詳情混淆。 然而,附圖經包含以描述和解釋本發明實施方案的說明性實例。本文所使用的字詞和片語 應被理解和解譯為具有與相關領域的技術人員對所述字詞和片語的理解一致的含義。術語 或片語的特殊定義,即,不同于如本領域的技術人員理解的普通和習慣含義的定義,并非意 在由本文的術語或片語的一致使用暗示。就術語或片語意在具有特殊含義即除本領域的技 術人員所理解外的含義來說,在本說明書中依直接而明確地提供術語或片語的特殊定義的 下定義方式清楚地陳述這種特殊定義。
[0023] 如本文所使用,術語"實質上"和"近似"可以意指在85 %、90 %、95 %、98 %和/或 99%內。在一些情況下,如本領域的一般技術人員應了解,術語"實質上"和"近似"可以指 示差異(在可察覺時)可以忽略不計或足夠小以致被忽略。此外,在一個值近似等于另一 值的背景下使用時的術語"近似"可以意指所述值"約"等于彼此。例如,在測量時,所述值 可以足夠接近以致被本領域的一般技術人員確定為相等。
[0024] 如本文所論述,數據可以"維持"、"保存"、"保持"和/或"存儲"在各種數據存儲 結構中,包含但不限于隊列、存儲器、高速緩存、緩沖器、寄存器、觸發器等。在本文中可以同 義地和互換地使用術語"維持"、"保存"、"保持"和/或"存儲"。
[0025] 如本文所論述,"可高速緩沖存儲"可以是將存儲在處理裝置(例如,單核微處理器 和多核微處理器(CPU)和圖形處理器(GPU)或其各自個別處理內核)的高速緩存(例如, L1數據高速緩存或L2數據高速緩存,但不限于此)中的一組或多組數據或數據元。如本文 所論述,"可高速緩沖存儲"可以提交或寫入到將存儲其的高速緩存。如本文所描述,"可高 速緩沖存儲"可以被執行一次或多次以在高速緩存中完成其存儲。獲取可高速緩沖存儲的 高速緩存線的后續執行可以被稱為"回放"或"重新執行"。可高速緩沖存儲的執行還可以 被稱為"拾取",在所述執行期間通過CPU的執行管線等挑選和處理所述可高速緩沖存儲, 如獲益于本公開的本領域一般技術人員應明白。
[0026] 本文提出的實施方案大體上涉及一種用于在處理裝置中實施可高速緩沖存儲回 放政策的方法和設備。如上文所述,處理裝置(例如,單核微處理器和多核微處理器(CPU) 和圖形處理器(GPU)或其各自個別處理內核)可以執行可高速緩沖存儲以便將新數據寫 入到高速緩存。為了這樣做,可高速緩沖存儲可能需要其高速緩存線存在于高速緩存(例 如,數據高速緩存)中且處于可寫入狀態。然而,在可高速緩沖存儲嘗試通過將新數據寫入 到高速緩存中來提交在所述可高速緩沖存儲開始執行時存在的高速緩存線時,所述高速緩 存線可能不在所述高速緩存中。例如,在可高速緩沖存儲的執行期間,可以由系統中的其 它CPU、其它CPU內核和/或其它裝置從高速緩存探測可高速緩沖存儲的高速緩存線。為 了將數據寫入到高速緩存,可高速緩沖存儲可能需要重新獲取高速緩存線一這被稱為進行 回放。在可高速緩沖存儲的初始執行或回放期間,所述可高速緩沖存儲可以保持在存儲隊 列(S?中,其中可以追蹤所述可高速緩沖存儲的各種狀態和/或屬性,諸如其數據、其存儲 器地址、執行或回放結果等。此外,可以根據一個或多個回放政策進行可高速緩沖存儲的回 放,如本文更詳細論述。
[0027] 本文所描述的實施方案允許通過根據使針對系統爭用因素的高速緩存線的早期 獲取平衡的回放政策進行執行和回放來有效地執行和回放可高速緩沖存儲。在一些實施方 案中,具體回放政策有關于或取決于可高速緩沖存儲的執行的各個階段。在一些實施方案 中,所述系統基于所述高速緩存線的狀態和所述存儲的執行階段確定是否回放存儲以重新 獲取所述存儲的至少一個高速緩存線。例如,所述系統可以取決于所述存儲已完成、已撤銷 或變成存儲隊列中的最舊存儲決定是否回放存儲。所述系統還可以基于所述存儲的至少 一個先前回放的至少一個結果回放所述存儲。例如,在回放將高速緩存線的狀態變更為更 接近于允許提交存儲的可寫入狀態的狀態時,可以將所述回放特性化為"良好回放"。在回 放未將高速緩存線的狀態變更