在實施例中,系統包括存儲器控制器、處理器及對應緩存。系統可以包括不確定源,這些不確定源妨礙對處理器緩存中未命中的加載操作的數據轉送的準確安排。存儲器控制器可以提供早期響應,該早期響應指示數據應該在后續時鐘周期提供。在存儲器控制器與緩存/處理器之間的接口單元可以預測從當前接收的早期響應到對應數據的延遲,并且可以推測地準備轉送數據,假如數據將如預測的那樣可用。接口單元可以監視在早期響應與數據轉送之間的延遲、或所述延遲的變化的至少一部分。基于所測量的延遲,接口單元可以修改隨后預測的延遲。
【技術實現步驟摘要】
【國外來華專利技術】
本專利技術涉及處理器的領域,尤其涉及處理器和相關電路中的緩存塊(cacheblock)填充的關鍵字的轉送。
技術介紹
處理器通常實施加載和存儲操作以訪問存儲器的數據。所述加載規定存儲器位置的讀取,以將數據提供給處理器,所述存儲使用處理器提供的數據來規定存儲器位置的寫。根據處理器實施的指令集體系結構,加載和存儲可以是指令集體系結構中規定的顯式指令、規定存儲器操作的指令中的隱式操作、或它們的組合。為了減小用于加載和存儲的存儲器延遲,處理器通常實施一個或多個緩存,在訪問主存儲器系統之前訪問該一個或多個緩存。緩存以緩存塊單元來存儲最近訪問過的數據。緩存塊在不同處理器中具有不同大小,如32字節、64字節、128字節等等。所述塊通常在存儲器中與它們的尺寸的自然邊界對準。相應地,如果所述加載在緩存中未命中(miss),則包含加載數據的緩存塊被從存儲器中讀取,并且傳送到緩存。盡管將緩存塊存儲到緩存中將減小命中(hit)緩存的其它訪問的延遲,處理器的性能常常受到等待加載數據的嚴重影響。通常,緩存塊使用從存儲器到處理器的互連的多次數據傳輸而傳送。為了減小對于加載數據的等待,加載數據被提供在緩存塊的第一傳送,然后傳送剩余數據。處理器和緩存被設計成,在等待要提供的緩存塊的同時,將加載數據轉送到目標。某些情況下,存儲器控制器可設計成,提供指示數據即將傳送的響應(例如,在數據傳送之前若干時鐘周期),從而緩存/處理器可安排所述數據的轉送。這樣的存儲器控制器在傳送數據之前若干時鐘周期提供所述響應,并且保證所述數據將在所識別的時鐘周期傳送。因而,精確地安排所述轉送。
技術實現思路
在實施例中,系統包括存儲器控制器、一個或多個處理器和對應緩存。系統可能含有不確定源,不確定源阻止了在處理器緩存中不存在的加載操作的數據轉送的準確安排。存儲器控制器可以提供早期響應,指示數據應該在后續時鐘周期中提供。然而,轉送所述數據的實際時鐘周期由于系統的不確定性而變化。存儲器控制器與緩存/處理器之間的接口單元可以預測從當前接收早期響應到所述對應數據的延遲,并可以推測地準備轉送所述數據,假如它將如預測的那樣可用。如果預測正確,數據可以按低延遲轉送。如果預測不正確,數據可能按更長延遲轉送。接口單元可以監視在早期響應與數據的轉送之間的延遲,或者至少所述延遲的變化部分。基于測量的延遲,接口單元可以修改隨后預測的延遲。因而,接口單元可以隨著時間使所預測延遲適應所述系統經歷的實際延遲,調整不確定性。在實施例中,不確定性可以包括例如異步時鐘域父叉中的不確定冋步延遲;存儲器控制器、緩存、以及/或處理器內的流水線延遲的不確定性;及由于系統操作模式的變化(例如,進入和離開低功率模式等等)造成的時鐘頻率的一個或多個的變化。不確定源可以隨系統而不同。通過使預測延遲適應經歷的實際延遲,當數據準備轉送時,用于數據的轉送路徑可能更多的被準備好,某些實施例中,在緩存中未命中數據的情形下減小對于加載數據的平均延遲。附圖說明如下詳細描述參照附圖,現在簡短描述這些附圖。圖I是集成電路的一個實施例的方塊圖。圖2是在圖I表示的接口單元的一個實施例的方塊圖。圖3是流程圖,表明在圖2表示的延遲監視器的一個實施例的操作。圖4是流程圖,更詳細地表明在圖3表示的流程圖的一部分的一個實施例。 圖5是流程圖,表明響應于早期響應指示的關鍵字轉送控制電路的一個實施例的操作。圖6是狀態機的一個實施例的方塊圖,該狀態機可以由關鍵字轉送控制電路的一個實施例實施。圖7是時序圖,表明關鍵字轉送的一個實施例的操作。圖8是系統的一個實施例的方塊圖。圖9是在圖I表示的接口單元的另一個實施例的方塊圖。盡管本專利技術可接收各種修改和備選形式,具體實施例作為例子表示在附圖,這里將詳細描述。然而,應該理解,附圖和對其詳細描述不打算將本專利技術限于公開的特定形式,相反,旨在覆蓋落在附屬權利要求書所限定的本專利技術的精神和范圍內的全部修改、等效物及備選例。這里使用的標題僅用于組織目的,并且不意味著用來限制說明書的范圍。如貫穿本申請使用的那樣,字詞“可以(may)”用在容許意義上(即意味著具有可能性),而不是命令意義(即,意味著必須)。類似地,字詞“包括(include)”、“包括(including)”、以及“包括(includes)”是指包括但不限于。各個單元、電路、或其它元件可以描述成“配置成”執行任務(一項或多項)。這樣的上下文中,“配置成”是一般意味著“具有電路”的廣義陳述,該電路在操作期間執行任務(一項或多項)。這樣,即使當單元/電路/元件當前不通電時,單元/電路/元件也可配置成執行任務。一般地,形成與“配置成”相對應的結構的電路可以包括硬件電路。類似地,各個單元/電路/元件為了方便,在描述中可以描述成執行任務(一項或多項)。這樣的描述應該解釋成包括短語“配置成”。所述配置成執行一項或多項任務的單元/電路/元件特意不適用35U. S. C. § 112的第六段的對單元/電路/元件的解釋。具體實施例方式現在轉到圖1,表示耦合到存儲器12的集成電路10的一個實施例方塊圖。所示實施例中,集成電路10包括一個或多個處理器,如處理器14A-14B、二級(L2)緩存16、接口單元18、以及存儲器控制器20。處理器14B的一部分更詳細地顯示在圖1,以包括寄存器文件22和數據緩存24。處理器14A可以是相似的。存儲器控制器20配置成耦合到存儲器12,并且可以經接口耦合到接口單元18。如在圖I顯示的那樣,接口可以包括請求、寫數據和讀數據、以及早期響應。接口單元18也經過寫總線和讀總線耦合到L2緩存16,該寫總線被標記為“寫”的,該讀總線包括讀請求和讀數據。接口單元18還經仲裁信令耦合到L2緩存16,仲裁信令包括讀仲裁(Read Arb)、同意(Gnt)、以及取消(Cxcl )。處理器14A-14B由接口耦合到L2緩存16,這些接口可以包括請求、寫數據、以及讀數據。時鐘域邊界也顯示在圖I為虛線26。處理器14A-14B可以配置成,執行加載和存儲操作(更簡明地這里稱作加載和存儲),并且可以配置成檢測在它們的本地緩存(例如,在處理器14B的數據緩存24和在處理器14A的類似緩存)中的緩存未命中。對于加載,處理器14A-14B可以配置成將緩存填充請求傳輸到L2緩存16,以讀取未命中緩存塊。對于存儲未命中,在某些實施例中,處理器14A-14B也可以配置成傳輸緩存填充請求。其它實施例中,處理器14A-14B可以配置成傳輸所述存儲以更新L2緩存16和/或存儲器12,但不可傳輸緩存填充來讀取所述未命中緩存塊。處理器14A-14B可以配置成將標識符(例如,事務標識符或TID)分配給每個緩存填充請求和由處理器14A-14B啟動的每個其它事務。TID可以與事務的請求、數據等一起傳送,以將所述傳輸識別為同一事務的部分。 如圖I顯示的那樣,在處理器14B與L2緩存16之間的接口可以包括請求總線(例如,地址、命令等)和讀/寫數據總線。讀和寫數據總線可以是所示的分離單向總線,或者可以組合為雙向數據總線。在某些實施例(未示在圖I中),也可以有用來傳輸相干響應的響應總線。其它實施例可以使用其它接口,如分組接口,用來傳輸請求、響應、以及數據。處理器14A的接口可以與對于處理器14B的接口相本文檔來自技高網...
【技術保護點】
【技術特征摘要】
【國外來華專利技術】...
【專利技術屬性】
技術研發人員:B·P·莉莉,J·M·卡索夫,陳浩,
申請(專利權)人:蘋果公司,
類型:
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。