TWI724058B - 用於最小化窺探流量的處理器、系統單晶片及方法 - Google Patents

用於最小化窺探流量的處理器、系統單晶片及方法 Download PDF

Info

Publication number
TWI724058B
TWI724058B TW105137287A TW105137287A TWI724058B TW I724058 B TWI724058 B TW I724058B TW 105137287 A TW105137287 A TW 105137287A TW 105137287 A TW105137287 A TW 105137287A TW I724058 B TWI724058 B TW I724058B
Authority
TW
Taiwan
Prior art keywords
cache
data
item
request
state
Prior art date
Application number
TW105137287A
Other languages
English (en)
Other versions
TW201730775A (zh
Inventor
克里希納 維諾德
艾文 索丹尼
柴努拉 奧朗加巴
Original Assignee
美商英特爾股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商英特爾股份有限公司 filed Critical 美商英特爾股份有限公司
Publication of TW201730775A publication Critical patent/TW201730775A/zh
Application granted granted Critical
Publication of TWI724058B publication Critical patent/TWI724058B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一種處理器包括處理核心、包含第一處理核心及第一L1快取之L1快取,該第一L1快取包含用以儲存資料之複數L1快取資料項目之第一L1快取資料項目。該處理器亦包括L2快取,其包含複數L2快取資料項目之第一L2快取資料項目。該第一L2快取資料項目係相應於該第一L1快取資料項目且該些複數L2快取資料項目之各者係與複數pbit之相應的存在位元(pbit)關聯。該些複數pbit之各者係指示該些複數L2快取資料項目之相應一者的狀態。該處理器亦包括快取控制器,其係同應於欲存取該第一L1快取資料項目上之資料的複數請求中之第一請求以判定其該資料之副本被儲存於該第一L2快取資料項目中;及根據該pbit之狀態以從該L2快取資料項目擷取該資料之該副本。

Description

用於最小化窺探流量的處理器、系統單晶片及方法
本發明之實施例一般係有關快取管理,而(更明確地)係有關在晶片多核心結構上區域地和跨核心地最小化窺探流量。
處理器可包括一或更多處理核心、快取、及快取控制器。快取控制器為電路邏輯,用以管理針對主記憶體之讀和寫操作的快取。快取可包括不同類型的快取,包括L1、L2及L3快取。L1快取為一種專用於特定處理核心之快取。L2快取為一種由多核心處理器中之數個核心所共用。再者,數個多核心處理器可共用一共同L3快取。各快取可包括一或更多快取項目,用以儲存主記憶體中所維持之資料的本地副本以及該資料的主記憶體位址。處理器之快取控制器可依據快取同調性協定以管理L1、L2、及L3快取上之操作。快取同調性協定確保數個快取與主記憶體中所儲存之資料的一致性。
100‧‧‧系統單晶片(SoC)
102‧‧‧處理器
104‧‧‧主記憶體
106‧‧‧處理器間互連結構
108A、108B‧‧‧處理核心
110A、110B‧‧‧L1快取
112‧‧‧L2快取
114‧‧‧核心間互連結構
116‧‧‧快取控制器
118‧‧‧p位元暫存器
120A、120B‧‧‧資料快取項目DL1
122A、122B‧‧‧L2快取項目
124‧‧‧存在位元(pbit)
130A、130B‧‧‧快取項目IL1
132A‧‧‧L2快取項目
140‧‧‧總體觀測(GO)信號
150‧‧‧請求者佇列
160‧‧‧排程器佇列
170‧‧‧緩衝器
500‧‧‧處理裝置
502‧‧‧提取級
503‧‧‧快取控制器
504‧‧‧長度解碼級
506‧‧‧解碼級
508‧‧‧配置級
510‧‧‧重新命名級
512‧‧‧排程級
514‧‧‧暫存器讀取/記憶體讀取級
516‧‧‧執行級
518‧‧‧寫入回/記憶體寫入級
522‧‧‧例外處置級
524‧‧‧確定級
530‧‧‧前端單元
532‧‧‧分支預測單元
534‧‧‧指令快取單元
536‧‧‧指令變換後備緩衝(TLB)
538‧‧‧指令提取單元
540‧‧‧解碼單元
550‧‧‧執行引擎單元
552‧‧‧重新命名/配置器單元
554‧‧‧撤回單元
556‧‧‧排程器單元
558‧‧‧實體暫存器檔單元
560‧‧‧執行叢集
562‧‧‧執行單元
564‧‧‧記憶體存取單元
570‧‧‧記憶體單元
572‧‧‧資料TLB單元
574‧‧‧資料快取單元
576‧‧‧第2階(L2)快取單元
600‧‧‧處理器
601‧‧‧前端
602‧‧‧快速排程器
603‧‧‧失序執行引擎
604‧‧‧緩慢/一般浮點排程器
605‧‧‧快取控制器
606‧‧‧簡單浮點排程器
608‧‧‧整數暫存器檔
610‧‧‧浮點暫存器檔
611‧‧‧執行區塊
612‧‧‧位址產生單元(AGU)
614‧‧‧AGU
616‧‧‧快速ALU
618‧‧‧快速ALU
620‧‧‧緩慢ALU
622‧‧‧浮點ALU
624‧‧‧浮點移動單元
630‧‧‧軌線快取
632‧‧‧微碼ROM
634‧‧‧微操作佇列
654‧‧‧撤回單元
700‧‧‧多處理器系統
714‧‧‧I/O裝置
716‧‧‧第一匯流排
718‧‧‧匯流排橋
720‧‧‧第二匯流排
722‧‧‧鍵盤及/或滑鼠
724‧‧‧音頻I/O
727‧‧‧通訊裝置
728‧‧‧儲存單元
730‧‧‧指令/碼及資料
732‧‧‧記憶體
734‧‧‧記憶體
738‧‧‧高性能圖形電路
739‧‧‧高性能圖形介面
750‧‧‧點對點互連
752、754‧‧‧P-P介面
770‧‧‧第一處理器
772、782‧‧‧集成記憶體控制器單元
776、778‧‧‧點對點(P-P)介面
780‧‧‧第二處理器
786、788‧‧‧P-P介面
790‧‧‧晶片組
794、798‧‧‧點對點介面電路
796‧‧‧介面
800‧‧‧系統
810、815‧‧‧處理器
820‧‧‧圖形記憶體控制器集線器(GMCH)
840‧‧‧記憶體
845‧‧‧顯示
850‧‧‧輸入/輸出(I/O)控制器集線器(ICH)
860‧‧‧外部圖形裝置
870‧‧‧周邊裝置
900‧‧‧系統
914‧‧‧I/O裝置
915‧‧‧舊有I/O裝置
932、934‧‧‧記憶體
952、954‧‧‧點對點互連
970、980‧‧‧處理器
972、982‧‧‧控制邏輯
976、978、986、988、994、998‧‧‧點對點(P-P)介面
990‧‧‧晶片組
996‧‧‧介面
1000‧‧‧SoC
1002A-N‧‧‧核心
1006‧‧‧共享快取單元
1008‧‧‧集成圖形邏輯
1010‧‧‧系統代理單元
1014‧‧‧集成記憶體控制器單元
1016‧‧‧匯流排控制器單元
1020‧‧‧應用程式處理器
1024‧‧‧影像處理器
1026‧‧‧音頻處理器
1028‧‧‧視頻處理器
1030‧‧‧靜態隨機存取記憶體(SRAM)單元
1032‧‧‧直接記憶體存取(DMA)單元
1040‧‧‧顯示單元
1100‧‧‧SoC
1106、1107‧‧‧核心
1108‧‧‧快取控制
1109‧‧‧匯流排介面單元
1110‧‧‧L2快取
1111‧‧‧互連
1115‧‧‧GPU
1120‧‧‧視頻編碼解碼器
1125‧‧‧視頻介面
1130‧‧‧用戶身份模組(SIM)
1135‧‧‧開機ROM
1140‧‧‧SDRAM控制器
1145‧‧‧快閃控制器
1150‧‧‧周邊控制
1160‧‧‧DRAM
1165‧‧‧快閃
1170‧‧‧藍牙模組
1175‧‧‧3G數據機
1180‧‧‧GPS
1185‧‧‧Wi-Fi
1200‧‧‧電腦系統
1202‧‧‧處理裝置
1204‧‧‧主記憶體
1206‧‧‧靜態記憶體
1208‧‧‧網路介面裝置
1210‧‧‧視頻顯示單元
1212‧‧‧文數輸入裝置
1214‧‧‧游標控制裝置
1216‧‧‧信號產生裝置
1218‧‧‧資料儲存裝置
1220‧‧‧網路
1222‧‧‧圖形處理單元
1224‧‧‧機器可存取儲存媒體
1226‧‧‧處理邏輯
1228‧‧‧視頻處理單元
1230‧‧‧匯流排
1232‧‧‧音頻處理單元
本發明將從以下所提供之詳細描述以及從本發明之各個實施例的附圖被更完整地瞭解。然而,該些圖形不應被視為限制本發明於特定實施例,而是僅為了解釋及理解。
圖1A闡明一種包括處理核心之系統單晶片(SoC),依據本發明之實施例。
圖1B闡明一種包括處理核心之SoC,依據本發明之實施例。
圖1C闡明一種包括處理核心之SoC,依據本發明之實施例。
圖2A為一種用以在晶片多核心結構上區域地和跨核心地最小化窺探流量之方法的方塊圖,依據本發明之實施例。
圖2B為一種用以在晶片多核心結構上區域地和跨核心地最小化窺探流量之方法的方塊圖,依據本發明之實施例。
圖3為一種用以在晶片多核心結構上區域地和跨核心地最小化窺探流量之方法的方塊圖,依據本發明之實施例。
圖4為一種用以在晶片多核心結構上區域地和跨核心地最小化窺探流量之方法的方塊圖,依據本發明之實施例。
圖5A為方塊圖,其闡明用於包括異質核心之處理器 的微架構,其中本發明之一實施例可被使用。
圖5B為闡明依序管線及暫存器重新命名級、失序問題/執行管線之方塊圖,其係依據本發明之至少一實施例而被實施。
圖6闡明針對包括邏輯的處理器之微架構的方塊圖,依據本發明之一實施例。
圖7為闡明系統之方塊圖,其中本發明之一實施例可被使用。
圖8為闡明系統之方塊圖,其中本發明之一實施例可操作。
圖9為闡明系統之方塊圖,其中本發明之一實施例可操作。
圖10為SoC之方塊圖,依據本發明之實施例。
圖11為SoC之實施例的方塊圖,依據本發明。
圖12闡明一種電腦系統之一實施例的方塊圖。
【發明內容及實施方式】
本發明之形態及實施方式係有關在晶片多核心結構上區域地和跨核心地最小化窺探流量。集成核心架構(亦稱為晶片多核心結構)之基礎建立區塊為包括一或更多處理核心之處理器,該些處理核心之各者包括一或更多L1快取及共同共用L2快取。快取常被用以增加記憶體讀取和寫人操作之速度。當處理器之處理核心企圖從主記憶體中之位置讀取資料項目時,該處理核心可首先檢查該資料項 目之副本是否被儲存於L1或L2快取之一者中。假如該處理核心判定其該資料項目確實被儲存於L1或L2快取之一者中(已知為「快取命中」),則該處理核心可從L1或L2快取而非從主記憶體讀取該資料項目。假如該處理核心判定其該資料項目之有效副本無法被發現於L1或L2快取之一者中(已知為「快取未中」),則該處理核心可從主記憶體讀取該資料項目。
快取可包括一或更多快取項目,用以儲存其將被讀取自或寫入至記憶體位置之資料項目。各快取項目可包括資料欄位(用以儲存資料項目)及標籤欄位(用以儲存資料所被儲存於主記憶體中之位置)。資料項目可由於先前指令之執行而已被儲存於快取中。當處理器持續地執行指令管線中之指令時,快取系統之快取項目中所儲存的內容可改變。一或更多快取控制器可監督針對主記憶體及快取系統之快取項目的指令執行,以確保其快取中所儲存之資料項目係與其他快取及主記憶體中所儲存之資料項目一致,依據快取同調性協定。假如快取控制器檢測到快取項目中所儲存之資料項目係與其他快取及/或主記憶體中所儲存之資料項目的副本不一致,則快取控制器可無效化該快取項目。假如處理核心嘗試讀取其於快取系統之快取項目中為不存在或被標示為無效的資料項目,則可能發生快取未中。
於其發生快取未中之事件中(例如,應由處理器所讀取之資料項目不在快取中或者為無效的),處理核心可從 主記憶體擷取資料項目。再者,處理核心可將先前未快取的資料項目(擷取自主記憶體)儲存於快取系統中而成為本地副本以供由處理器所執行之未來指令所使用。於某些情況下,處理核心可能需要逐出快取項目中所儲存之資料項目以保留空間給其從主記憶體所新擷取的資料項目。
於現存的核心結構中,L2快取係包括或者不包括L1快取之內容。如此一來,當L2快取包括L1快取之內容時,則資料項目可被儲存於與處理核心相關的L1快取及L2快取兩者中。當L2快取不包括L1快取之內容時,則L1快取中所儲存之資料項目不一定被儲存於與處理核心相關的L2快取中。於某些情況下,現存的核心結構可能變為載入以同調流量,其係由針對透過核心間互連結構以存取資料之窺探所產生。同調流量係發生在當多數窺探從相同快取存取資料時。窺探為一種程序,其中個別快取係監督針對其已被快取之資料的存取之位址線。如此一來,該些核心中之資源以及結構頻寬被顯著地消耗,其減少處理器及整體系統之整體效率。此外,當資料應被擷取自主記憶體時,則請求被產生、被***管線及被置於待處理佇列中。當該些請求係針對主記憶體中之相同記憶體位址時則產生衝突。此等請求被拒絕,其導致將被***管線之這些請求的多次再嘗試直到針對該相同記憶體位址之先前請求已被處理為止。如此一來,有一段巡迴該管線之請求-拒絕-再嘗試的長週期,其導致管線存取循環及功率之浪費。
本發明之實施例係藉由實施一種機制以在晶片多核心結構上區域地和跨核心地最小化窺探流量來克服上述問題。於一實施例中,存在位元(pbit)之區塊被實施於處理器中,以便與L2快取中之快取項目(其係相應於L1快取中之快取項目)關聯。pbit係提供L1快取中之相應快取項目的狀態。因此,當快取項目之狀態(如pbit中所指示者)在L1快取中存在且有效時則窺探被注入該核心;否則窺探不被注入(亦即,當快取項目之狀態(如pbit中所指示者)在L1快取中不存在或者無效時)。
於一實施例中,L2快取中之快取項目係從另一核心被傳送至一請求資料之核心,當另一核心之L1快取中的快取項目之狀態是不存在或無效時。於此實施例中,指令被傳送至該核心以不使用L2快取中之快取項目直到另一核心之L1快取中的快取項目變為存在或有效時。
於另一實施例中,狀態限制被提供於L2快取中,以致當該快取項目存在於L1快取中時,其被容許位於L2快取中,當某些狀態(例如,「修改」、「互斥」、「共用」、「無效」或「傳遞」)存在時。窺探產生請求可首先查詢L2快取以檢查該狀態來判定該窺探是否應被注入L1快取。如此一來,其被注入核心之窺探被濾出,其導致核心中之資源以及結構頻寬的較少消耗並增加系統之整體效率。
於進一步實施例中,當衝突發生時,請求被置於睡眠模式。該些請求被改變回入甦醒模式且被傳送入管線以供 處理,當針對相同記憶體位址之先前請求已被處理時。如此一來,無須再嘗試該些請求(當其被拒絕時),而如此一來則沒有巡迴該管線。如此導致節省時間週期以及管線存取循環和功率的消耗。
圖1A闡明一種包括處理核心之系統單晶片(SoC)100,依據本發明之實施例。SoC 100可包括處理器102、主記憶體104、及處理器間互連結構106,該處理器102可進一步包括一或更多處理核心108A、108B。雖然僅顯示一個處理器102,但本技術中之通常技藝人士將理解其SoC 100可具有多於一個處理器102,依據本發明之實施例。
處理核心108A-108B之各者可與專用L1快取110A-110B(其係專用於相應的處理核心)關聯。例如,如圖1A中所示,處理核心108A係與L1快取110A關聯,而處理核心108B係與L1快取110B關聯。此外,處理核心108A-108B可與L2快取112關聯。L2快取112可經由核心間互連結構114而與L1快取110A、110B以及處理核心108A、108B通訊。處理器102進一步包括主記憶體(例如,雙資料速率(DDR)記憶體)140。
於一實施例中,處理器102可進一步包括快取控制器116,用以依據快取同調性協定來管理L1 110A-110B及L2 112中的快取項目。快取控制器116可監督由處理核心108A、108B所發送的讀取/寫入操作並更新L1快取110A、110B及L2快取112中之快取項目的狀態。
處理器102具有用於記憶體存取之兩個埠,其中之一係用於指令而另一係用於資料。因此,L1快取110A-110B之各者可屬於兩種類型:資料快取項目DL1 120A-DL1 120B及指令快取項目IL1 130A-IL1 130B。介於兩種類型之間的主要差異在於:資料快取項目(DL1)能夠履行讀取和寫入操作兩者,而指令快取項目(IL1)僅提供讀取操作。
於一實施例中,L2快取112為包括性L2快取,以致個別地儲存於L1快取110A、110B中之資料快取項目DL1 120A、120B中的資料亦被儲存於L2快取112中。因此,資料快取項目DL1 120A、120B中之資料亦被儲存於L2快取112之L2快取項目122A、122B中。於一實施例中,當從另一處理器(未顯示)接收到窺探時,快取控制器116將直接地從L2快取122中所儲存之L2資料快取項目122擷取資料。再者,快取控制器116不與L1快取110A、110B通訊,因此最小化核心108A-108B中之內部流量,其細節被提供於下。
於一實施例中,處理器102可進一步包括存在位元(pbit)124之區塊,其各者可與L2快取112之L2快取項目122A、122B關聯。各pbit 124係指示相應於L2快取112中之pbit關聯的項目L2快取項目122A-122B之DL1快取項目120A、120B是否存在於個別L1快取110A、110B中;以及假如存在的話,指示該DL1快取項目120A、120B是否有效。於一實施例中,DL1快取項目 120A係儲存針對L2快取項目122A之指標以判定何處設定L2快取項目122A中之位元。如此一來,L2快取項目122A之位址被儲存於DL1快取項目120A中。於一實施例中,DL2快取項目120B係儲存針對L2快取項目122B之指標以判定何處設定L2快取項目122B中之位元。如此一來,L2快取項目122B之位址被儲存於DL1快取項目120B中。L2快取項目122A、122B之各者係相應於pbit 124。於一實施例中,L2快取項目122A、122B之各者包括pbit 124。於一實施例中,每一L2快取項目122A具有pbit 124而每一快取項目122B具有pbit 124。針對L2快取112中之快取線,有一相應的pbit 124。當與L2快取項目122A、122B關聯的pbit124被設定(例如,值=1)時,則其指示DL1快取項目120A、120B存在且有效。於一實施例中,DL1快取項目120A、120B為有效的,當DL1快取項目120A、120B目前正被使用時(亦即,於DL1快取項目120A、120B中有修改)。當與L2快取項目122A、122B關聯的pbit被清除(例如,值=0)時,則其指示DL1快取項目120A、120B中之資料不存在L1快取110A、110B中;或者假如DL1快取項目120A、120B存在,則其為無效。於一實施例中,DL1快取項目120A、120B為無效的,當DL1快取項目120A、120B目前未被使用時(亦即,於DL1快取項目120A、120B中沒有修改)。
於一實施例中,當從另一處理器(未顯示)接收到針 對該資料之窺探時,快取控制器116將檢查與L2快取項目122A、122B關聯的pbit 124。於一實施例中,當pbit 124被設定時,快取控制器116係判定其該資料可位於L2快取112之L2快取項目122A、122B中,但此材料不是目前更新的資料(亦即,已修改資料)且此已更新資料是位於L1快取110A及110B之L1快取項目120A、120B中。L2快取112從L1快取110A中之DL1 120A以及L1快取110B中之DL1 120B擷取該已更新資料。於此情況下,L2快取112將進入核心間互連結構114以從核心108A-108B擷取該已更新資料。L2快取112係儲存其來自L2快取112之122A及122B(個別地)中的DL1 120A及DL1 120B之已擷取已更新資料。於一實施例中,當pbit 124未被設定(亦即,清除)時,則快取控制器116便判定其該已更新資料係位於L2快取項目中;並直接地從L2快取112中之L2快取項目122A、122B擷取該已更新資料。如此一來,進入核心108A-108B之流量被移除在當pbit 124被設定時。
於一實施例中,pbit 124之區塊被儲存於一操作性地耦合至快取控制器116之p位元暫存器118中。於另一實施例中,pbit 124之區塊為L2快取112之部分。於又另一實施例中,L2快取項目122A、122B之各者包括pbit 124。
修改的互斥共用無效傳遞(MESIF)協定為一種快取同調性協定。於MESI協定下,快取控制器116可標記快 取項目以「修改」、「互斥」、「共用」、「無效」或「傳遞」狀態之一者。修改(M)狀態指示其快取控制器116判定該項目中所儲存之副本已被修改自主記憶體104中所儲存之資料。該快取應將該資料寫回至主記憶體104,在允許(不再有效的)主記憶體狀態之任何其他讀取前的未來某時刻。從快取寫回至主記憶體104致使快取控制器116改變快取項目之狀態為互斥(E)狀態。
互斥(E)狀態指示其快取控制器116判定該快取項目匹配主記憶體104中所儲存之資料且並未被其他快取所共用。快取控制器116可改變該快取項目之狀態為共用狀態,回應於源自另一處理核心或另一處理器之針對主記憶體104的讀取請求。替代地,快取控制器116可改變該快取項目之狀態為修改狀態,當該快取項目之內容被覆寫時。
共有(S)狀態指示其快取控制器116判定該快取項目亦被儲存於另一快取中(例如,在被另一處理核心或另一處理器讀取之後)。無效(I)狀態指示其快取控制器116判定該快取項目為無效(或未使用)。傳遞(F)狀態指示其快取控制器116判定一標示有「傳遞」狀態之快取項目係負責傳遞該資料至該資料之請求者。
於一實施例中,L2快取112為非包括性L2快取。當L2快取112為非包括性快取時,以致當L2快取處於S或F狀態之一者時,則該指令可位於快取項目IL1 130A、IL 130B中,但無效化訊息被傳送至L1快取110A和110B 以從快取項目IL1 130A、IL 130B移除該指令,當核心108A和108B稍後請求修改該指令時。因此,該指令被直接地擷取自L2快取112。於一實施例中,L2快取112為非包括性快取,以致當L2快取處於E或M狀態之一者時,指令快取項目IL1 130A、IL1 130B係存在於L2快取112中而不一定於L1之L1 130A、IL1 130B中。因此,無訊息被傳送至L1快取110A、110B且該指令被直接地擷取自L2快取112。
如以上所討論,指令快取項目IL1 130A、IL1 130B是唯讀操作(亦即,無法修改資料)。因為指令快取項目IL1 130A、IL1 130B無法修改資料,所以不需要從指令IL1 130A、IL1 130B至處理器間互連結構106之直接通訊以逐出指令快取項目IL1 130、IL130B中之指令,在該些指令被執行以後。
於一實施例中,當從另一處理器(未顯示)接收到針對該指令之窺探時,快取控制器116將察看L2快取112之快取項目狀態。當快取項目狀態為S或F狀態之一者時,指令可位於快取項目IL1 130A、IL 130B中,但無效化訊息被傳送至L1快取110A和110B以從快取項目IL1 130A、IL 130B移除該指令,當核心108A和108B稍後請求修改該指令時。因此,該指令被直接地擷取自L2快取112。當L2快取112之快取項目狀態為E或M狀態之一者時,指令快取項目IL1 130A、IL1 130B係存在於L2快取112中而不一定於L1之IL1 130A、IL1 130B中。因 此,無訊息被傳送至L1快取110A、110B且該指令被直接地擷取自L2快取112。如此一來,核心內之窺探被過濾,其導致將進入核心108A-108B之流量最小化。
圖1B闡明一種包括處理核心之SoC 100,依據本發明之實施例。SoC 100可包括處理器102、主記憶體104、及處理器間互連結構106。處理器102可進一步包括一或更多處理核心108A、108B。處理核心108A-108B之各者可與專用L1快取110A-110B(其係專用於相應的處理核心)關聯。例如,如圖1B中所示,處理核心108A係與L1快取110A關聯,而處理核心108B係與L1快取110B關聯。此外,處理核心108A-108B可與L2快取112關聯。L2快取112可經由核心間互連結構114而與L1快取110A、110B以及處理核心108A、108B通訊。處理器102進一步包括主記憶體(例如,DDR記憶體)140。
於一實施例中,處理器102可進一步包括快取控制器116,用以依據某快取同調性協定來管理L1及L2快取中的快取項目。快取控制器116可監督由處理核心108A、108B所發送的讀取/寫入操作並更新L1快取110A、110B及L2快取112中之快取項目的狀態。
於一實施例中,處理器102可進一步pbit 124之區塊,其各者可與L2快取112之L2快取項目122A、122B關聯。各pbit 124係指示相應於L2快取112中之pbit關聯的項目122A、122B之DL1快取項目120A、120B是否存在於個別L1快取110A、110B中;以及假如存在的 話,指示該DL1快取項目120A、120B是否有效。如以上所討論,DL1快取項目120A、120B為有效的,當DL1快取項目120A、120B目前正被使用時(亦即,於DL1快取項目120A、120B中有修改)。當與L2快取項目122A、122B關聯的pbit 124被設定(例如,值=1)時,則其指示DL1快取項目120A、120B存在且有效。當與L2快取項目122A、122B關聯的pbit被清除(例如,值=0)時,則其指示DL1快取項目120A、120B中之資料不存在L1快取110A、110B中;或者假如存在則DL1快取項目120A、120B不是有效,亦即,無效。如以上所討論,DL1快取項目120A、120B為無效的,當DL1快取項目120A、120B目前未被使用時(亦即,於DL1快取項目120A、120B中沒有修改)。
於一實施例中,快取控制器118包括總體觀測(GO)信號140,其係作用為介於DL1 120A、DL1 120B與L2快取112之間的交握。GO信號140傳送指令至核心108A及108B,有關是否使用其被傳送至DL1 120A及DL1 120B之資料項目。
於一實施例中,針對資料之多數請求係由來自核心108A、108B之L2快取112所接收。於一範例中,L1快取110A之DL1 120A請求來自L1快取110B之DL1 120B的資料。於一實施例中,快取控制器116判定其與L2快取項目132A關聯的pbit 124被設定。如以上所討論,當pbit 124被設定時,其係指示L1快取110B之DL1 120B 中的資料存在且有效,於一實施例中,快取控制器116傳送L2快取項目132A至核心108A,連同GO信號140,其包括指示保留L2快取項目132A但直到進一步指令前不使用它之指令。L2快取112可稍後窺探核心108B之L1快取110B以判定DL1 120B是否被修改。於一實施例中,L2快取112可窺探DL1 120B以判定該資料是否已被修改。核心108B可傳送信號至L2快取112,其指示DL1 120B中之資料是否已被修改。於一實施例中,L2快取112判定其DL1 120B中之資料是否已被修改。快取控制器可傳送GO信號140至核心108A,具有指令以使用先前所傳送的L2快取項目132A。於一實施例中,DL1 120A中之L2快取項目132A未被使用直到來自快取控制器116之GO信號140。
於一實施例中,快取控制器116判定其與L2快取項目132A關聯的pbit 124未被設定,亦即,清除。如以上所討論,當pbit 124被清除時,其指示L1快取110B之DL1 20B中的資料是不存在或者(假如存在的話)是無效。於一實施例中,快取控制器116可直接地從L2快取項目132A擷取資料。於一實施例中,快取控制器116傳送GO信號140至DL1,再傳送L2快取項目132A以前。GO信號140包括指示其L2快取項目132A可由核心108A所使用的指令。接著,L2快取項目132A被傳送為DL1 120A之資料。
圖1C闡明一種包括處理核心之SoC 100,依據本發 明之實施例。SoC 100可包括處理器102、主記憶體104、及處理器間互連結構106。處理器102可進一步包括一或更多處理核心108A、108B。處理核心108A-108B之各者可與專用L1快取110A-110B(其係專用於相應的處理核心)關聯。例如,如圖1C中所示,處理核心108A係與L1快取110A關聯,而處理核心108B係與L1快取110B關聯。此外,處理核心108A-108B可與L2快取112關聯。L2快取112可經由核心間互連結構114而與L1快取110A、110B以及處理核心108A、108B通訊。處理器102進一步包括主記憶體(例如,DDR記憶體)140。
於一實施例中,處理器102可進一步包括快取控制器116,用以依據某快取同調性協定來管理L1及L2快取中的快取項目。快取控制器116可監督由處理核心108A、108B所發送的讀取/寫入操作並更新L1快取110A、110B及L2快取112中之快取項目的狀態。
於一實施例中,用以窺探(存取)快取資料項目之多數請求係由L2快取112所接收。窺探請求之各者包括至少一項目識別符(ID),用以識別從哪個記憶體位址擷取相應於該請求之資料。於一實施例中,於複數請求中之第一請求係由核心108A、108B所傳送至L2快取112。當L2快取112無法滿足該第一請求時,該第一請求被傳送至快取控制器116之請求者佇列150。請求者佇列150傳輸快取控制器116之排程器佇列160中的第一請求以從主記憶體104擷取資料。於一實施例中,請求者佇列150儲 存該第一請求之項目ID於緩衝器170中。於一實施例中,排程器佇列160追蹤其被處理之請求以判定哪些請求已被完成、哪些請求被接受而待完成以及哪些請求未被完成。
於一實施例中,於複數請求中之第二請求係由核心108A、108B所傳送至L2快取112。當L2快取112無法滿足該第二請求時,該第二請求被傳送至請求者佇列150。於一實施例中,請求者佇列150比較第二請求之項目ID與第一請求之已儲存項目ID。於一實施例中,請求者佇列150檢測當第二請求之項目ID與第一請求之已儲存項目ID匹配時的衝突。該衝突之檢測係因為該第一與第二請求係相應於擷取來自主記憶體104中之相同記憶體位址的資料。於一實施例中,當檢測到該衝突時,請求者佇列150便將第二請求置於睡眠模式。請求者佇列可儲存第二請求之項目ID於緩衝器170中,當第二請求於睡眠模式時。
於一實施例中,當第一請求被完成時,主記憶體104中之記憶體現在被去配置。排程器佇列160接著傳送第一請求之去配置項目ID(指示其第一請求已完成之由排程器佇列160所指派的標示或識別)至請求者佇列150。於一實施例中,去配置項目ID係相應於主記憶體中之記憶體的去配置。如此一來,第一請求被完成且記憶體現在被去配置。於一實施例中,請求者佇列150將第二請求從睡眠模式更新至甦醒模式,於接收到第一請求之去配置項目 ID時。此係因為(如上所述)去配置項目ID為指示其第一請求已完成之標示或識別。於一實施例中,請求者佇列150傳輸第二請求至排程器佇列160以從主記憶體104擷取資料。於一實施例中,請求者佇列150將數個請求置於睡眠模式並將相應的項目ID儲存於緩衝器170中,當檢測到衝突時。於一實施例中,請求者佇列150改變睡眠模式中之一請求(於睡眠模式中之複數請求中),其項目ID係與接收自排程器佇列160之去配置項目ID匹配。
圖2A為一種用以在晶片多核心結構上區域地和跨核心地最小化窺探流量之方法200的方塊圖,依據本發明之實施例。方法200可由處理邏輯所履行,該處理邏輯可包括硬體(例如,電路、專用邏輯、可編程邏輯、微碼,等等)、軟體(諸如運作於處理裝置、通用電腦系統、或專用機器上之指令)、韌體、或其組合。於一實施例中,方法400可部分地由處理器102之處理邏輯所履行,該處理器102包括處理核心108及快取控制器116,如圖1A中所示。
為了解釋之簡化,方法200被描繪並描述為一連串動作。然而,依據本發明之動作可發生以各種順序及/或與文中未出現及描述的其他動作同時地。再者,並非所有闡明的動作可被履行以實施依據本發明請求標的之方法400。此外,那些熟悉此技藝人士將瞭解並理解其方法200可替代地被表示為一連串互相關的狀態,經由狀態圖或事件。
方法200開始於區塊202,其中處理器之快取控制器可監督處理核心、處理器、及主記憶體(與L1快取中之L1資料快取項目關聯)間之互連上的資料流量。於區塊204,快取控制器可進一步識別包括性L2快取之L2資料快取項目,其亦包括L1資料快取項目中所儲存之資料。由於L2快取是包括性的,各L1資料快取項目具有相應的L2資料快取項目以儲存該L1資料快取項目中所儲存的資料之副本。於區塊206,快取控制器可接收用以窺探(存取)來自L1資料快取項目之資料的請求。
於區塊208,快取控制器可進一步判定與L2快取中之L2資料快取項目關聯的pbit之狀態。於區塊210,判定其pbit是否被設定。於一實施例中,當與L2快取關聯的pbit被設定時,則此指示其L1資料快取項目存在且有效。於一實施例中,L1資料快取項目在當該L1資料快取項目未被積極地使用(亦即,在該L1資料快取項目中沒有修改)時是有效的。於一實施例中,當與L2快取關聯的pbit被清除時,則此指示其L1資料快取項目不存在於L1快取中或者(假如存在的話)不是有效的。
當(於區塊210)判定其pbit未被設定(亦即,已清除)時,則(於區塊212)來自L1資料快取項目之資料被直接地擷取自L2快取,因為L2快取係包括L1資料快取項目。於一實施例中,直接地擷取自L2快取之此資料為已更新資料,因為當pbit未被設定時該L2快取係包括該已更新資料。如以上所討論,包括性L2快取之L2快 取項目亦包括L1資料快取項目中所儲存之資料項目。當(於區塊210)判定其該pbit被設定時,則(於區塊214)該資料被擷取自L1快取之L1資料快取項目。於一實施例中,擷取自L1快取之此資料為已更新資料,因為當pbit被設定時該L2快取不包括該已更新資料。
圖2B為一種用以在晶片多核心結構上區域地和跨核心地最小化窺探流量之方法220的方塊圖,依據本發明之實施例。方法220可由處理邏輯所履行,該處理邏輯可包括硬體(例如,電路、專用邏輯、可編程邏輯、微碼,等等)、軟體(諸如運作於處理裝置、通用電腦系統、或專用機器上之指令)、韌體、或其組合。於一實施例中,方法220可部分地由處理器102之處理邏輯所履行,該處理器102包括處理核心108及快取控制器116,如圖1A中所示。
為了解釋之簡化,方法220被描繪並描述為一連串動作。然而,依據本發明之動作可發生以各種順序及/或與文中未出現及描述的其他動作同時地。再者,並非所有闡明的動作可被履行以實施依據本發明請求標的之方法400。此外,那些熟悉此技藝人士將瞭解並理解其方法220可替代地被表示為一連串互相關的狀態,經由狀態圖或事件。
方法220開始於區塊222,其中處理器之快取控制器可監督處理核心、處理器、及主記憶體(與L1快取中之L1指令快取項目關聯)間之互連上的指令流量。於區塊 224,快取控制器可進一步識別非包括性L2快取之L2指令快取項目,其可或可不包括L1指令快取項目中之指令。
於一實施例中,當L2快取之快取項目狀態為E或M狀態時,指令快取項目IL1 130A、IL1 130B係存在於L2快取112中而不一定於L1之L1 130A、IL1 130B中。因此,無訊息被傳送至L1快取110A、110B且該指令被直接地擷取自L2快取112。如以上所討論,E狀態指示其快取控制器判定該快取項目匹配主記憶體中所儲存之資料且並未被其他快取所共用。同時,如以上所討論,M狀態指示其快取控制器判定該項目中所儲存之副本已被修改自主記憶體中所儲存之資料。
於一實施例中,當L2快取處於S或F狀態之一者時,則該指令可位於快取項目IL1 130A、IL 130B中,但無效化訊息被傳送至L1快取110A和110B以從快取項目IL1 130A、IL 130B移除該指令,當核心108A和108B稍後請求修改該指令時。因此,該指令被直接地擷取自L2快取112。如以上所討論,S狀態指示其快取控制器判定該快取項目亦被儲存於另一快取中(例如,在被另一處理核心或另一處理器讀取之後)。同時,如以上所討論,F狀態指示其快取控制器判定一標示有「傳遞」狀態之快取項目係負責傳遞該資料至該資料之請求者。
於區塊226,快取控制器可接收來自處理器之請求以窺探指令。於228,快取控制器判定L2快取之快取項目 狀態。於區塊230,決定有關L2快取之快取項目狀態是否為E或M狀態之一。當(於區塊230)判定其L2快取之快取項目狀態為E或M狀態之一者時,則(於區塊232)該指令被直接地擷取自L2快取之L2指令快取項目。當(於區塊230)判定其L2快取之快取項目狀態不是E或M狀態之一者時,則(於區塊234)判定其L2快取之快取項目狀態為S或F狀態之一者。於區塊236,訊息被傳送至L1快取以移除該指令。如以上所討論,此訊息被傳送在當稍後核心請求修改該指令時。區塊232被重複以致該指令被直接地擷取自L2快取之L2指令快取項目。
圖3為一種用以在晶片多核心結構上區域地和跨核心地最小化窺探流量之方法300的方塊圖,依據本發明之實施例。方法300可由處理邏輯所履行,該處理邏輯可包括硬體(例如,電路、專用邏輯、可編程邏輯、微碼,等等)、軟體(諸如運作於處理裝置、通用電腦系統、或專用機器上之指令)、韌體、或其組合。於一實施例中,方法400可部分地由處理器102之處理邏輯所履行,該處理器102包括處理核心108及快取控制器116,如圖1B中所示。
為了解釋之簡化,方法300被描繪並描述為一連串動作。然而,依據本發明之動作可發生以各種順序及/或與文中未出現及描述的其他動作同時地。再者,並非所有闡明的動作可被履行以實施依據本發明請求標的之方法 400。此外,那些熟悉此技藝人士將瞭解並理解其方法300可替代地被表示為一連串互相關的狀態,經由狀態圖或事件。
方法300開始於區塊302,其中處理器之快取控制器可監督處理核心、處理器、及主記憶體(與L1快取中之L1資料快取項目關聯)間之互連上的資料流量。於區塊304,快取控制器可接收來自第一核心之請求用以窺探(存取)來自第二核心的L1資料快取項目之資料。於區塊306,與L2快取中之L2資料快取項目(相應於該第二核心中之L1資料快取項目)關聯的pbit之狀態被判定。如以上所討論,pbit指示其相應於L2資料快取項目之第二核心的L1資料快取項目是否存在於L1快取中;以及假如存在的話其是否有效。於區塊308,判定其pbit是否被設定。如以上所討論,當與L2資料快取項目關聯的pbit被設定時,其指示與L2資料快取項目關聯之L1快取中的L1資料快取項目係存在且有效。當(於區塊308)pbit未被設定(亦即,清除)時,則(於區塊310)快取控制器傳送一包括指令之GO信號至第一核心以使用L2資料快取項目。接著,於區塊312,快取控制器傳送L2資料快取項目至第一核心。
回頭參考區塊308,當判定其pbit被設定時,則快取控制器(於區塊314)傳送L2資料快取項目(連同指令)至第一核心以保留L2資料快取項目但不使用它。如以上所討論,當pbit被清除時,其指示與L2資料快取項 目關聯的L1資料快取項目不存在L1快取中或者(假如存在的話)不是有效的(亦即,其目前正被第二核心所使用)。於區塊316,快取控制器判定其L1資料快取項目尚未被修改。L2快取可窺探第二核心之L1資料快取項目以判定L1資料快取項目中之L2資料快取項目是否被修改。於一實施例中,第二核心傳送一信號,指示其L1資料快取項目中之L2快取項目尚未被修改。於區塊318,快取控制器傳送GO信號(包括該指令)至第一核心以使用先前傳送的L2快取資料項目。
圖4為一種用以在晶片多核心結構上區域地和跨核心地最小化窺探流量之方法400的方塊圖,依據本發明之實施例。方法400可由處理邏輯所履行,該處理邏輯可包括硬體(例如,電路、專用邏輯、可編程邏輯、微碼,等等)、軟體(諸如運作於處理裝置、通用電腦系統、或專用機器上之指令)、韌體、或其組合。於一實施例中,方法400可部分地由處理器102之處理邏輯所履行,該處理器102包括處理核心108、快取控制器116(其包括請求者佇列150)及排程器佇列160,如圖1C中所示。
為了解釋之簡化,方法400被描繪並描述為一連串動作。然而,依據本發明之動作可發生以各種順序及/或與文中未出現及描述的其他動作同時地。再者,並非所有闡明的動作可被履行以實施依據本發明請求標的之方法400。此外,那些熟悉此技藝人士將瞭解並理解其方法400可替代地被表示為一連串互相關的狀態,經由狀態圖 或事件。
方法400開始於區塊402,其中處理器之快取控制器可監督處理核心、處理器、及主記憶體(與L1快取中之L1資料快取項目關聯)間之互連上的資料流量。於區塊404,快取控制器從至少一核心接收複數請求中之第一請求以存取L2資料快取項目中之資料。第一請求包括一項目ID,其係識別從哪個記憶體位址擷取相應於該第一請求之資料。於區塊406,快取控制器判定其該資料不存在於L2快取之L2資料快取項目中。於區塊408,快取控制器傳送第一請求至快取控制器之請求者佇列。於區塊410,請求者佇列儲存該第一請求之項目ID於緩衝器中。於區塊412,請求者佇列傳輸該第一請求至快取控制器之排程器佇列以從主記憶體擷取資料。
於區塊414,快取控制器從該核心接收複數請求中之第二請求以窺探(存取)來自L2資料快取項目之資料。於區塊416,快取控制器判定其該資料不存在於L2快取之L2資料快取項目中。於區塊418,快取控制器傳送第二請求至快取控制器之請求者佇列。於區塊420,請求者佇列比較第二請求之項目ID與第一請求之已儲存項目ID。於區塊422,判定其匹配是否存在。當於區塊422沒有匹配時,則(於區塊424)請求者儲存該第二請求之項目ID於緩衝器中。於區塊426,請求者佇列傳輸該第二請求至快取控制器之排程器佇列以從主記憶體擷取資料。
當於區塊422,判定其匹配不存在,則(於區塊 428)請求者佇列將此衝突視為該些請求之兩者相應於從主記憶體中之相同記憶體位址擷取資料。於區塊430,請求者佇列將該第二請求置於睡眠模式。於區塊432,請求者佇列儲存該第二請求之項目ID於緩衝器中。於區塊434,請求者佇列接收來自排程器佇列之第一請求的去配置項目ID(指示其第一請求已完成之由排程器佇列160所指派的標示或識別),當該第一請求被完成時。於一實施例中,去配置項目ID係相應於主記憶體中之記憶體位址的去配置。於區塊436,請求者佇列從睡眠模式更新第二請求至甦醒模式,其係接續以區塊426。
圖5A為闡明由處理裝置500所實施的依序管線及暫存器重新命名級、失序問題/執行管線之方塊圖,依據本發明之某些實施例。圖5A中之實線方盒係闡明依序管線,而虛線方盒係闡明暫存器重新命名、失序問題/執行管線。於圖5A中,處理器管線500包括提取級502、長度解碼級504、解碼級506、配置級508、重新命名級510、排程(亦已知為分派或發送)級512、暫存器讀取/記憶體讀取級514、執行級516、寫入回/記憶體寫入級518、例外處置級522、及確定級524。於某些實施例中,級502-524之排序可不同於所顯示者且不限於圖5A中所示之特定排序。
圖5B為闡明針對一實施包括異質核心的處理裝置之處理器500的微架構之方塊圖,依據本發明之一實施例。明確地,處理器500係闡明其將被包括於處理器中的依序 架構核心及暫存器重新命名邏輯、失序問題/執行邏輯,依據本發明之至少一實施例。
處理器500包括一耦合至執行引擎單元550之前端單元530,且兩者均耦合至記憶體單元570。處理器500可包括減少指令集計算(RISC)核心、複雜指令集計算(CISC)核心、極長指令字元(VLIW)核心、或者併合或替代核心類型。於又另一實施例中,處理器500可包括特殊用途核心,諸如(例如)網路或通訊核心、壓縮引擎、圖形核心,等等。於一實施例中,處理器500可為多核心處理器或者可為多處理器系統之部分。
前端單元530包括一分支預測單元532,其係耦合至指令快取單元534,其係耦合至指令變換後備緩衝(TLB)536,其係耦合至指令提取單元538,其係耦合至解碼單元540。解碼單元540(亦已知解碼器)可解碼指令;並可將以下產生為輸出:一或更多微操作、微碼進入點、微指令、其他指令、或其他控制信號,其被解碼自(或者反應)、或被衍生自原始指令。解碼器540可使用各種不同的機制來實施。適當機制之範例包括(但不限定於)查找表、硬體實施方式、可編程邏輯陣列(PLA)、微碼唯讀記憶體(ROM),等等。指令快取單元534被進一步耦合至記憶體單元570。解碼單元540被耦合至執行引擎單元550中之重新命名/配置器單元552。
執行引擎單元550包括重新命名/配置器單元552,其係耦合至撤回單元554及一組一或更多排程器單元556。 撤回單元554可包括快取控制器503,其在晶片多核心結構上區域地和跨核心地最小化窺探流量,依據本發明之實施例。排程器單元556代表任何數目的不同排程器,包括保留站(RS)、中央指令窗,等等。排程器單元556被耦合至實體暫存器檔單元558。實體暫存器檔單元558之各者代表一或更多實體暫存器檔,其不同者係儲存一或更多不同的資料類型,諸如純量整數、純量浮點、緊縮整數、緊縮浮點、向量整數、向量浮點等等、狀態(例如,其為下一待執行指令之位址的指令指標),等等。實體暫存器檔單元558係由撤回單元554所重疊以闡明其中暫存器重新命名及失序執行可被實施之各種方式(例如,使用記錄器緩衝器和撤回暫存器檔;使用未來檔、歷史緩衝器、和撤回暫存器檔;使用暫存器映圖和暫存器池,等等)。
於一實施方式中,處理器500可相同於針對圖1A所述之處理器102。
通常,架構暫存器從處理器之外部或者從編程者之觀點為可見的。暫存器不限於任何已知特定類型的電路。各種不同類型的暫存器為適合的,只要其能夠儲存並提供資料如文中所述者。適當暫存器之範例包括(但不限定於)專屬實體暫存器、使用暫存器重新命名之動態配置實體暫存器、專屬及動態配置實體暫存器之組合,等等。撤回單元554及實體暫存器檔單元558被耦合至執行叢集560。執行叢集560包括一組一或更多執行單元562及一組一或更多記憶體存取單元564。執行單元562可履行各種操作 (例如,移位、相加、相減、相乘)以及操作於各種類型的資料上(例如,純量浮點、緊縮整數、緊縮浮點、向量整數、向量浮點)。
雖然某些實施例可包括數個專屬於特定功能或功能集之執行單元,但其他實施例可包括僅一個執行單元或者全部履行所有功能之多數執行單元。排程器單元556、實體暫存器檔單元558、及執行叢集560被顯示為可能複數的,因為某些實施例係針對某些類型的資料/操作產生分離的管線(例如,純量整數管線、純量浮點/緊縮整數/緊縮浮點/向量整數/向量浮點管線、及/或記憶體存取管線,其各具有本身的排程器單元、實體暫存器檔單元、及/或執行叢集一且於分離記憶體存取管線之情況下,某些實施例被實施於其中僅有此管線之執行叢集具有記憶體存取單元564)。亦應理解:當使用分離管線時,這些管線之一或更多者可為失序發送/執行而其他者為依序。
該組記憶體存取單元564被耦合至記憶體單元570,其可包括資料預提取器580、資料TLB單元572、資料快取單元(DCU)574、及第2階(L2)快取單元576,舉出一些範例。於某些實施例中,DCU 574亦已知為第一階資料快取(L1快取)。DCU 574可處置多重顯著的快取喪失並繼續服務進來的儲存及載入。其亦支援維持快取同調性。資料TLB單元572為一種藉由映射虛擬及實體位址空間以增進位址變換速度之快取。於一範例實施例中,記憶體存取單元564可包括載入單元、儲存位址單元、及 儲存資料單元,其各者係耦合至記憶體單元570中之資料TLB單元572。L2快取單元576可被耦合至一或更多其他階的快取且最終至主記憶體。
於一實施例中,資料預提取器580臆測地載入/預提取資料至DCU 574,藉由自動地預測程式將使用哪個資料。預提取可指稱將記憶體階層(例如,較低階快取或記憶體)之一記憶體位置中所儲存的資料轉移至其較接近(例如,產生較低存取潛時)處理器之較高階記憶體位置,在該資料實際地被該處理器所要求以前。更明確地,預提取可指稱從較低階快取/記憶體之一至資料快取及/或預提取緩衝器的資料之早期擷取,在處理器發出針對其被返回之特定資料的要求以前。
處理器500可支援一或更多指令集(例如,x86指令集(具有其已被加入以較新版本之某些延伸);MIPS Technologies of Sunnyvale,CA之MIPS指令集;ARM Holdings of Sunnyvale,CA之ARM指令集(具有諸如NEON之選擇性額外延伸))。
應理解:核心可支援多線程(執行二或更多平行組的操作或線緒),並可以多種方式執行,包括時間切割多線程、同時多線程(其中單一實體核心提供邏輯核心給其實體核心正同時地多線程之每一線緒)、或者其組合(例如,時間切割提取和解碼以及之後的同時多線程,諸如Intel® Hyperthreading科技)。
雖然暫存器重新命名被描述於失序執行之背景,但應 理解其暫存器重新命名可被使用於依序架構。雖然處理器之所述的實施例亦包括分離的指令和資料快取單元以及共享L2快取單元,但替代實施例可具有針對指令和資料兩者之單一內部快取,諸如(例如)第1階(L1)內部快取、或多階內部快取。於某些實施例中,該系統可包括內部快取與外部快取之組合,該外部快取是位於核心及/或處理器之外部。替代地,所有快取可於核心及/或處理器之外部。
圖6闡明針對包括併合核心的處理器600之微架構的方塊圖,依據本發明之一實施例。於某些實施例中,依據一實施例之指令可被實施以操作於資料元件,其具有位元組、字元、雙字元、四字元等等之尺寸;以及資料類型,諸如單和雙精確度整數及浮點資料類型。於一實施例中,依序前端601為處理器600之部分,其係提取將被執行的指令並備製將稍後於處理器管線中使用的指令。
前端601可包括數個單元。於一實施例中,指令預提取器626係從記憶體提取指令並將該些指令饋送至指令解碼器628,其接著解碼或解讀該些指令。例如,於一實施例中,解碼器將已接收指令解碼為一或更多操作,稱為其機器可執行之「微指令」或「微操作」(亦稱為micro op或uops)。於其他實施例中,解碼器將指令剖析為運算碼及相應的資料和控制欄位,其係由微架構所使用以依據一實施例來履行操作。於一實施例中,軌線快取630取用已解碼的微操作並將其組合為微操作佇列634中之程式依序 列或軌線,以供執行。當軌線快取630遭遇複雜指令時,則微碼ROM 632便提供用以完成該操作所需的微操作。
某些指令被轉換為單一微操作,而其他指令則需要數個微操作來完成完整操作。於一實施例中,假如需要四個微操作來完成指令,則解碼器628係存取微碼ROM 632以執行該指令。針對一實施例,指令可被解碼為少數微操作,以供處理於指令解碼器628。於另一實施例中,假如需要數個微操作來完成該操作,則指令可被儲存於微碼ROM 632內。軌線快取630係指稱進入點可編程邏輯陣列(PLA),用以判定正確的微指令指針,以供讀取微碼序列來完成一或更多指令(依據一實施例)自微碼ROM 632。在微碼ROM 632完成排序針對一指令之微操作後,機器之前端601重新從軌線快取630提取微操作。
失序執行引擎603為準備用於執行之指令。失序執行邏輯具有數個緩衝器,用以平緩並重新排序指令之流程來最佳化性能,隨著其前進管線且被排程以供執行。配置器邏輯係配置其各微操作欲執行所需的機器緩衝器及資源。暫存器重新命名邏輯係將邏輯暫存器重新命名於暫存器檔中之項目上。配置器亦配置各微操作之項目於兩微操作佇列之一中,其中之一係針對記憶體操作而另一係針對非記憶體操作,在指令排程器之前:記憶體排程器、快速排程器602、緩慢/一般浮點排程器604、及簡單浮點排程器606。微操作排程器602、604、606係根據其相依的輸入暫存器運算元資源之備妥狀態及微操作欲完成其操作所需 的執行資源之可用性以判定微操作何時準備好執行。一實施例之快速排程器602可於主時脈循環之各一半時排程,而其他排程器僅可於每主處理器時脈循環排程一次。排程器係針對調度埠仲裁以排程用於執行之微操作。
暫存器檔608、610位於排程器602、604、606與執行區塊611中的執行單元612、614、616、618、620、622、624之間。有分離的暫存器檔608、610,個別地用於整數及浮點操作。一實施例之各暫存器檔608、610包括旁通網路,其可旁通或傳遞剛完成的結果(其尚未被寫入暫存器檔)至新的相依微操作。整數暫存器檔608及浮點暫存器檔610亦能夠彼此傳遞資料。針對一實施例,整數暫存器檔608被分割為兩個分離的暫存器檔,一暫存器檔用於資料之低順序的32位元而第二暫存器檔用於資料之高順序的32位元。一實施例之浮點暫存器檔610具有128位元寬項目,因為浮點指令通常具有寬度從64至128位元之運算元。
執行區塊611含有執行單元612、614、616、618、620、622、624,其中該些指令被實際地執行。此區段包括暫存器檔608、610,其係儲存微指令所需執行之整數及浮點資料運算元值。一實施例之處理器600包含數個執行單元:位址產生單元(AGU)612、AGU 614、快速ALU 616、快速ALU 618、緩慢ALU 620、浮點ALU 622、浮點移動單元624。針對一實施例,浮點執行區塊622、624執行浮點、MMX、SIMD、及SSE、或其他操 作。一實施例之浮點ALU 622包括64位元X64位元浮點除法器,用以執行除法、平方根、及餘數微操作。針對本發明之實施例,涉及浮點值之指令可被處置以浮點硬體。
於一實施例中,ALU操作來到高速ALU執行單元616、618。一實施例之高速ALU 616、618可執行具有半時脈循環之有效潛時的快速操作。針對一實施例,大部分複雜整數操作來到緩慢ALU 620,因為緩慢ALU 620包括針對長潛時類型操作的整數執行硬體,諸如乘法器、移位、旗標邏輯、及分支處理。記憶體載入/儲存操作係由AGU 612、614所執行。針對一實施例,整數ALU 616、618、620被描述以履行整數操作於64位元資料運算元上之背景。於替代實施例中,ALU 616、618、620可被實施以支援多種資料位元,包括16、32、128、256,等等。類似地,浮點單元622、624可被實施以支援具有各個寬度之位元的廣泛運算元。針對一實施例,浮點單元622、624可操作於128位元寬的緊縮資料運算元上,配合SIMD及多媒體指令。
於一實施例中,微操作排程器602、604、606在母載入已完成執行以前調度相依的操作。因為微操作被臆測地排程並執行於處理器600中,所以處理器600亦可包括用以處置記憶體喪失之邏輯。假如資料載入喪失於資料快取中,則可能有相依的操作於管線的途中,其已留給排程器暫時錯誤的資料。重播機制係追蹤並重新執行其使用錯誤資料之指令。僅有相依的操作需要被重播而獨立的操作被 容許完成。處理器之一實施例的排程器及重播機制亦被設計成捕捉指令序列以供文字串比較操作。
處理器600亦包括邏輯,用以實施針對記憶體歧義消除之儲存位址預測,依據本發明之實施例。於一實施例中,處理器600之執行區塊611可包括儲存位址預測器(未顯示),用以實施針對記憶體歧義消除之儲存位址預測。
處理器600可包括一耦合至執行區塊611之撤回單元654。撤回單元654可包括快取控制器605,用以在晶片多核心結構上區域地和跨核心地最小化窺探流量,依據本發明之實施例。
術語「暫存器」可指稱板上處理器儲存位置,其被使用為用以識別運算元之指令的部分。換言之,暫存器可為那些從處理器外部(從編程者之觀點)可使用者。然而,實施例之暫存器不應被限制於指稱特定類型電路。反之,實施例之暫存器能夠儲存並提供資料、以及履行文中所述之功能。文中所述之暫存器可藉由使用任何數目之不同技術的處理器內之電路來實施,諸如專屬實體暫存器、使用暫存器重新命名之動態配置實體暫存器、專屬及動態配置實體暫存器之組合,等等。於一實施例中,整數暫存器係儲存三十二位元整數資料。一實施例之暫存器檔亦含有針對緊縮資料之八個多媒體SIMD暫存器。
針對以下的討論,暫存器被理解為設計成保持緊縮資料之資料暫存器,諸如64位元寬的MMXTM暫存器(亦稱 為「mm」暫存器於某些例子中)於其致能有來自Intel Corporation of Santa Clara,California之MMX科技的微處理器中。這些MMX暫存器(可有整數及浮點形式兩者)可操作以其伴隨SIMD及SSE指令之緊縮資料元件。類似地,有關於SSE2、SSE3、SSE4、或超過(一般稱為「SSEx」)科技之128位元寬的XMM暫存器亦可被用以保持此等緊縮資料運算元。於一實施例中,於儲存緊縮資料及整數資料時,暫存器無須於兩種資料類型之間區別。於一實施例中,整數及浮點被含入於相同的暫存器檔或不同的暫存器檔中。再者,於一實施例中,浮點及整數資料可被儲存於不同的暫存器或相同的暫存器中。
現在參考圖7,其顯示一闡明系統700之方塊圖,其中本發明之一實施例可被使用。如圖7中所示,多處理器系統700為點對點互連系統,並包括經由點對點互連750而耦合之第一處理器770及第二處理器780。雖然僅顯示兩個處理器770、780,但應理解其本發明之實施例的範圍未如此限制。於其他實施例中,一或更多額外處理器可存在於既定處理器中。於一實施例中,多處理器系統700可實施如文中所述之併合核心。
處理器770及780被顯示個別地包括集成記憶體控制器單元772及782。處理器770亦包括其匯流排控制器單元點對點(P-P)介面776及778之部分;類似地,第二處理器780包括P-P介面786及788。處理器770、780可使用P-P介面電路778、788而經由點對點(P-P)介面 750來交換資訊。如圖7中所示,IMC 772及782將處理器耦合至個別記憶體,亦即記憶體732及記憶體734,其可為本地地裝附至個別處理器之主記憶體的部分。
處理器770、780可各經由個別的P-P介面752、754而與晶片組790交換資訊,使用點對點介面電路776、794、786、798。晶片組790亦可經由高性能圖形介面739而與高性能圖形電路738交換資訊。
共享快取(未顯示)可被包括於任一處理器中或者於兩處理器外部,而經由P-P互連與處理器連接,以致處理器之任一者或兩者的本地快取資訊可被儲存於共享快取中,假如處理器被置於低功率模式時。
晶片組790可經由一介面796而被耦合至第一匯流排716。於一實施例中,第一匯流排716可為周邊組件互連(PCI)匯流排、或者諸如PCI快速匯流排或其他第三代I/O互連匯流排等匯流排,雖然本發明之範圍未如此限制。
如圖7中所示,各種I/O裝置714可被耦合至第一匯流排716,連同匯流排橋718,其係將第一匯流排716耦合至第二匯流排720。於一實施例中,第二匯流排720可為低管腳數(LPC)匯流排。各個裝置可被耦合至第二匯流排720,其包括(例如)鍵盤及/或滑鼠722、通訊裝置727、及儲存單元728,諸如磁碟機或其他大量儲存裝置(其可包括指令/碼及資料730),於一實施例中。此外,音頻I/O 724可被耦合至第二匯流排720。注意:其他架 構是可能的。例如,取代圖7之點對點架構,系統可實施多點分支匯流排或其他此類架構。
現在參考圖8,其顯示一系統800之方塊圖,其中本發明之一實施例可操作。系統800可包括一或更多處理器810、815,其被耦合至圖形記憶體控制器集線器(GMCH)820。額外處理器815之選擇性本質於圖8中被標示以斷線。於一實施例中,處理器810、815係實施依據本發明之實施例的併合核心。
各處理器810、815可為如上所述之電路、積體電路、處理器、及/或矽積體電路的某版本。然而,應注意:不太可能其集成圖形邏輯和集成記憶體控制單元將存在於處理器810、815中。圖8闡明其GMCH 820可被耦合至記憶體840,其可為(例如)動態隨機存取記憶體(DRAM)。DRAM可(針對至少一實施例)與非揮發性快取相關。
GMCH 820可為晶片組、或晶片組之一部分。GMCH 820可與處理器810、815通訊並控制介於處理器810、815與記憶體840之間的互動。GMCH 820亦可作用為介於處理器810、815與系統800的其他元件之間的加速匯流排介面。於至少一實施例中,GMCH 820係經由多點分支匯流排(諸如前側匯流排(FSB)895)而與處理器810、815通訊。
再者,GMCH 820被耦合至顯示845(諸如平板或觸控式顯示)。GMCH 820可包括集成圖形加速器。GMCH 820被進一步耦合至輸入/輸出(I/O)控制器集線器(ICH)850,其可被用以耦合各個周邊裝置至系統800。圖8之實施例中係顯示(例如)外部圖形裝置860,其可為分離的圖形裝置,耦合至ICH 850,連同另一周邊裝置870。
替代地,額外或不同處理器亦可存在於系統800中。例如,額外處理器815可包括:其係相同於處理器810的額外處理器、其可與處理器810異質或非對稱的額外處理器、加速器(諸如,例如,圖形加速器或數位信號處理(DSP)單元)、場可編程閘極陣列、或任何其他處理器。於處理器810、815間可有多樣差異,針對價值矩陣之譜,包括架構、微架構、熱、功率耗損特性,等等。這些差異可有效地顯現自身為非對稱以及介於處理器810、815之間的異質性。針對至少一實施例,各個處理器810、815可駐存於相同晶粒封裝中。
現在參考圖9,其顯示一系統900之方塊圖,其中本發明之一實施例可操作。圖9闡明處理器970、980。於一實施例中,處理器970、980可實施如文中所述之併合核心。處理器970、980可個別地包括集成記憶體和I/O控制邏輯(「CL」)972和982,並經由個別地介於點對點(P-P)介面978和988之間的點對點互連950而彼此互通訊。處理器970、980各經由點對點互連952和954而與晶片組990通訊,透過如圖所示之個別P-P介面976至994及986至998。針對至少一實施例,CL 972、982 可包括集成記憶體控制器單元。CL 972、982可包括I/O控制邏輯。如圖所示,記憶體932、934被耦合至CL 972、982,而I/O裝置914亦被耦合至控制邏輯972、982。舊有I/O裝置915經由介面996而被耦合至晶片組990。
實施例可被實施以許多不同的系統類型。圖10為SoC 1000之方塊圖,依據本發明之實施例。虛線方塊為更多先進SoC上之選擇性特徵。於圖10中,互連單元1012被耦合至:應用程式處理器1020,其包括一組一或更多核心1002A-N及共享快取單元1006;系統代理單元1010;匯流排控制器單元1016;集成記憶體控制器單元1014;一組或者一或更多媒體處理器1018,其可包括集成圖形邏輯1008、影像處理器1024(用以提供靜止及/或視頻相機功能)、音頻處理器1026(用以提供硬體音頻加速)、及視頻處理器1028(用以提供視頻編碼/解碼加速);靜態隨機存取記憶體(SRAM)單元1030;直接記憶體存取(DMA)單元1032;及顯示單元1040(用以耦合至一或更多外部顯示)。於一實施例中,記憶體模組可被包括於集成記憶體控制器單元1014中。於另一實施例中,記憶體模組可被包括於SoC 1000之一或更多其他組件中,其可被用以存取及/或控制記憶體。應用程式處理器1020可包括儲存位址預測器,用以實施如文中之實施例中所述的併合核心。
記憶體階層包括該些核心內之一或更多階快取、一組 或者一或更多共享快取單元1006、及耦合至該組集成記憶體控制器單元1014之額外記憶體(未顯示)。該組共享快取單元1006可包括一或更多中階快取,諸如第二階(L2)、第三階(L3)、第四階(L4)、或其他階快取、最後階快取(LLC)、及/或其組合。
於某些實施例中,一或更多核心1002A-N能夠進行多線程。系統代理1010包括協調並操作核心1002A-N之那些組件。系統代理單元1010可包括(例如)電力控制單元(PCU)及顯示單元。PCU可為或者包括用以調節核心1002A-N及集成圖形邏輯1008之電力狀態所需的邏輯和組件。顯示單元係用以驅動一或更多外部連接的顯示。
核心1002A-N可為同質或異質,針對架構及/或指令集。例如,核心1002A-N之部分可為依序的而其他為失序的。當作另一範例,核心1002A-N之二或更多者可執行相同指令集,而其他者可執行該指令集之僅一子集或不同的指令集。
應用程式處理器1020可為通用處理器,諸如CoreTM i3,i5,i7,2 Duo及Quad,XeonTM,ItaniumTM,AtomTM或QuarkTM處理器,其可得自IntelTM Corporation,of Santa Clara,Calif。處理器1020可被提供自其他公司,諸如ARM HoldingsTM,Ltd,MIPSTM,等等。應用程式處理器1020可為特殊用途處理器,諸如(例如)網路或通訊處理器、壓縮引擎、圖形處理器、共處理器、嵌入式處理器,等等。應用程式處理器1020可被實施於一或更多晶 片上。應用程式處理器1020可為一或更多基底之部分及/或可被實施於其上,使用數個製程技術之任一者,諸如(例如)BiCMOS、CMOS、或NMOS。
圖11為系統單晶片(SoC)設計之實施例的方塊圖,依據本發明。當作特定說明性範例,SoC 1100被包括於使用者設備(UE)中。於一實施例中,UE係指稱其將由終端使用者所用以通訊之任何裝置,諸如手持式電話、智慧型手機、輸入板、超薄筆記型電腦、具有寬頻轉接器之筆記型電腦、或任何其他類似的通訊裝置。UE經常連接至基地站或節點,其本質上潛在地相應於GSM網路中之行動站(MS)。
於此,SoC 1100包括2核心-1106及1107。核心1106及1107可符合指令集架構,諸如Intel® Architecture CoreTM為基之處理器、先進微型裝置公司(AMD)處理器、MIPS為基的處理器、ARM為基的處理器設計、或其消費者、以及其被授權者或採用者。核心1106及1107被耦合至快取控制1108,其係與匯流排介面單元1109及L2快取1110關聯以與系統1100之其他部分通訊。互連1110包括晶片上互連,諸如IOSF、AMBA、或以上所討論之其他互連,其可潛在地實施上述本發明之一或更多形態。於一實施例中,核心1106、1107可實施如文中實施例中所述之併合核心。
互連1110提供通訊頻道至其他組件,諸如:用戶身份模組(SIM)1130,用以與SIM卡互介面、開機ROM 1135,用以保存開機碼以供由核心1106和1107執行來初始化並開機SoC 1100、SDRAM控制器1140,用以與外部記憶體(例如,DRAM 1160)互介面、快閃控制器1145,用以與非揮發性記憶體(例如,快閃1165)互介面、周邊控制1150(例如,串列周邊介面)用以與周邊互介面、視頻編碼解碼器1120和視頻介面1125,用以顯示並接收輸入(例如,觸控致能輸入)、GPU 1115,用以履行圖形相關的計算,等等。這些介面之任一者可結合文中所述之本發明的形態。此外,系統1100顯示用於通訊之周邊,諸如藍牙模組1170、3G數據機1175、GPS 1180、及Wi-Fi 1185。
圖12闡明以電腦系統1200之範例形式的機器之圖形表示,於該系統內可執行一組指令以致使機器履行文中所討論之任何一或更多方法。於替代實施例中,機器可被連接(例如,連網)至LAN、內部網路、外部網路、或網際網路中之其他機器。機器可操作於用戶伺服器網路環境下之伺服器或用戶裝置之範圍中、或者當作點對點(或分散式)網路環境下之同級機器。機器可為個人電腦(PC)、輸入板PC、機上盒(STB)、個人數位助理(PDA)、行動電話、網路器具、伺服器、網路路由器、開關或橋、或者能夠執行其指明由該機器所採取之行動的一組指令(序列或其他)的任何機器。再者,雖僅顯示單一機器,但術語「機器」亦應被視為包括其獨立地或聯合地執行一組(或多組)用來履行文中所述之任何一或更多方法的指令 之機器的任何集合。
電腦系統1200包括處理裝置1202、主記憶體1204(例如,唯讀記憶體(ROM)、快閃記憶體、動態隨機存取記憶體(DRAM),諸如同步DRAM(SDRAM)或DRAM(RDRAM)等等)、靜態記憶體1206(例如,快閃記憶體、靜態隨機存取記憶體(SRAM)等等)、以及資料儲存裝置1218,其係經由匯流排1230而彼此通連。
處理裝置1202代表一或更多一般用途處理裝置,諸如微處理器、中央處理單元,等等。更特別地,處理裝置可為複雜指令組計算(CISC)微處理器、減少指令組計算(RISC)微處理器、極長指令字元(VLIW)微處理器、或實施其他指令集的處理器、或實施指令集之組合的處理器。處理裝置1202亦可為一或更多特殊用途處理裝置,諸如特定應用積體電路(ASIC)、場可編程閘極陣列(FPGA)、數位信號處理器(DSP)、網路處理器,等等。於一實施例中,處理裝置1202可包括一或更多處理器核心。處理裝置1202組態成執行處理邏輯1226,用以履行文中所討論之操作及步驟。於一實施例中,處理裝置1202相同於針對圖1A所述之處理器架構100,如文中有關本發明之實施例所述者。
電腦系統1200可進一步包括網路介面裝置1208,其係可通訊地耦合至網路1220。電腦系統1200亦可包括視頻顯示單元1210(例如,液晶顯示(LCD)或陰極射線管(CRT))、文數輸入裝置1212(例如,鍵盤)、游標控 制裝置1214(例如,滑鼠)、及信號產生裝置1216(例如,揚聲器)。再者,電腦系統1200可包括圖形處理單元1222、視頻處理單元1228及音頻處理單元1232。
資料儲存裝置1218可包括機器可存取儲存媒體1224,於其上儲存軟體1226,其係實施文中所述之功能的一或更多方法,諸如實施針對記憶體歧義消除之儲存位址預測(如上所述)。軟體1226亦可駐存(完全地或至少部分地)於主記憶體1204內(成為指令1226)及/或於處理裝置1202內(成為處理邏輯1226),在藉由電腦系統1200之其執行期間;主記憶體1204及處理裝置1202亦構成機器可存取儲存媒體。
機器可讀取儲存媒體1224亦可被用以儲存指令1226,其係實施針對併合核心之儲存位址預測,諸如依據本發明之實施例所述者。雖然機器可存取儲存媒體1128被顯示於範例實施例中為單一媒體,但術語「機器可存取儲存媒體」應被視為包括單一媒體或多重媒體(例如,集中式或分散式資料庫、及/或相關快取及伺服器),其係儲存一或更多指令集。術語「機器可存取儲存媒體」亦應被視為包括能夠儲存、編碼或攜載供由機器所執行的指令集之任何媒體,且該媒體致使該機器履行本發明之一或更多方法。術語「機器可存取儲存媒體」應因此被視為包括(但不限定於)固態記憶體、及光學和磁性媒體。
下列範例係有關進一步的實施例。
範例1為一種處理器,包含第一處理核心;第一L1 快取,包含用以儲存資料之複數L1快取資料項目之第一L1快取資料項目;L2快取,包含複數L2快取資料項目之第一L2快取資料項目,其中該第一L2快取資料項目係相應於該第一L1快取資料項目且該些複數L2快取資料項目之各者係與複數存在位元(pbit)之相應的pbit關聯,其中該些複數pbit之各者係指示該些複數L2快取資料項目之相應一者的狀態;及快取控制器,用以回應於欲存取該第一L1快取資料項目上之資料的複數請求中之第一請求來判定其該資料之副本被儲存於該第一L2快取資料項目中;及根據該pbit之狀態以從該L2快取資料項目擷取該資料之該副本。
於範例2中,範例1之請求標的可選擇性地包括其中由該些複數L2快取資料項目之各者的該些複數pbit所指示的該狀態包含其該些相應的複數L1快取資料項目之各者中的資料為存在、不存在、有效或無效之一。
於範例3中,範例1-2之請求標的可選擇性地包括第二處理核心;及第二L1快取,包含該些複數L1資料快取項目之第二L1快取資料項目,其中該第二處理核心係用以傳送欲存取該第一處理核心中的該第一L1快取資料項目上之該資料的該第一請求。
於範例4中,範例1-3之請求標的可選擇性地包括其中當判定其由針對該第一L1快取資料項目之該pbit所指示的該狀態為不存在和無效之一時該快取控制器係用以傳送總體觀測信號至該第二L1快取,其中該總體觀測信號 包含指令以:使用該第一L2資料快取項目中之該資料;及傳送該第一L2資料快取項目中之該資料至該第二L1快取。
於範例5中,範例1-4之請求標的可選擇性地包括其中當判定其由該第一L1快取資料項目之該pbit所指示的該狀態為存在與有效之一時,快取控制器係傳送該第一L2資料快取項目中之該資料至該第二L1快取,連同不使用該第一L2資料快取項目中之該資料的指令至該第二L1快取,其中該無效狀態包含其該第一L1快取資料項目中之該資料目前正由該第一處理核心所使用。
於範例6中,範例1-5之請求標的可選擇性地包括其中當判定其目前正被使用之該第一L1快取資料項目中的該資料未被修改時,該快取控制器傳送總體觀測信號至該第二L1快取,其中該總體觀測信號包含用以使用該第一L2資料快取項目中之該資料的指令。
於範例7中,範例1-6之請求標的可選擇性地包括其中該第一L1快取包含用以儲存指令之複數L1快取指令項目的第一L1快取指令項目,該L2快取包含複數L2快取指令項目的第一L2快取指令項目,其中該L2快取被指派一指示該些複數L2快取指令項目之各者的狀態之快取項目狀態。
於範例8中,範例1-7之請求標的可選擇性地包括其中當該指令之存取在該第一L1快取指令項目上發生時,該快取控制器係用以直接地從該些複數L2快取項目中之 L2快取項目擷取該指令,當該L2快取為互斥狀態或修改狀態之至少一者時。
於範例9中,範例1-8之請求標的可選擇性地包括其中當該指令之存取在該第一L1快取指令項目上發生時,該快取控制器係傳送訊息以從該第一L1快取指令項目移除該指令並直接地從該些複數L2快取項目中之L2快取項目擷取該指令,當該L2快取為共有狀態或傳遞狀態之至少一者時。
於範例10中,範例1-9之請求標的可選擇性地包括其中於判定其該資料之該副本未被儲存於該第一L2快取資料項目中時,該快取控制器係用以傳送該第一請求至請求者佇列,其中該請求者佇列係儲存該第一請求之項目識別(ID)並傳送該第一請求至排程器佇列以從主記憶體擷取該資料,其中該項目ID係相應於該主記憶體之記憶體位址。
於範例11中,範例1-10之請求標的可選擇性地包括其中當欲存取該L1快取資料項目上之該資料的第二請求被接收時,該快取控制器係用以判定該資料之副本是否被儲存於該第一L2快取資料項目中,其中於判定其該資料之該副本未被儲存於該第一L2快取資料項目中時,該快取控制器係用以傳送該第二請求至該請求者佇列。
於範例12中,範例1-11之請求標的可選擇性地包括其中該請求者佇列係用以判定當該第二請求之該項目ID匹配該第一請求之該項目ID時的衝突,以及於該衝突之 判定時,該請求者佇列係用以將該第二請求置於睡眠模式。
於範例13中,範例1-12之請求標的可選擇性地包括其中於接收到來自該排程器佇列之該第一請求的去配置項目ID時該請求者佇列係用以將該第二請求從該睡眠模式改變至甦醒模式,其中該去配置項目ID係相應於該主記憶體之該記憶體位址的去配置;及傳送該第二請求至該排程器佇列以從該主記憶體擷取該資料。
範例14為一種系統單晶片(SoC),包含處理器,其包含第一處理核心;第一L1快取,包含用以儲存資料之複數L1快取資料項目之第一L1快取資料項目;L2快取,包含複數L2快取資料項目之第一L2快取資料項目,其中該第一L2快取資料項目係相應於該第一L1快取資料項目且該些複數L2快取資料項目之各者係與複數存在位元(pbit)之相應的pbit關聯,其中該些複數pbit之各者係指示該些複數L2快取資料項目之相應一者的狀態;及快取控制器,用以回應於欲存取該第一L1快取資料項目上之資料的複數請求中之第一請求來判定其該資料之副本被儲存於該第一L2快取資料項目中;及根據該pbit之狀態以從該L2快取資料項目擷取該資料之該副本。
於範例15中,範例14之請求標的可選擇性地包括其中於判定其該資料之該副本未被儲存於該第一L2快取資料項目中時,該快取控制器係用以傳送該第一請求至請求者佇列,其中該請求者佇列係儲存該第一請求之項目識別 (ID)並傳送該第一請求至排程器佇列以從主記憶體擷取該資料,其中該項目ID係相應於該主記憶體之記憶體位址。
範例16為一種方法,包含由處理器接收針對第一處理核心之第一L1快取中的複數L1快取資料項目之第一L1快取資料項目上的資料之存取的複數請求中之第一請求;判定該資料之副本是否被儲存於該L2快取之複數L2快取資料項目中的第一L2快取資料項目中,其中該L2快取之該第一L2快取項目係相應於該第一L1快取之該第一L1快取資料及其中該L2快取之該些複數L2快取資料項目的各者係與存在位元(pbit)關聯,其中該pbit係指示該些複數L2快取資料項目之各者的狀態;以及於判定其該資料之該副本被儲存於該第一L2快取資料項目中時,根據該pbit以從該L2快取資料項目擷取該資料之該副本。
於範例17中,範例16之請求標的可選擇性地包括當判定其該第一L2快取項目之狀態包含其該第一L1快取資料項目中之該資料為存在且有效時傳送總體觀測信號至該第二L1快取,其中該總體觀測信號包含指令以:使用該第一L2資料快取項目中之該資料及傳送該第一L2資料快取項目中之該資料至該第二L1快取。
於範例18中,範例15-17之請求標的可選擇性地包括當判定其該第一L2快取項目之該狀態包含其該第一L1快取資料項目為不存在與無效之一時傳送該第一L2資料 快取項目中之該資料至第二L1快取,連同不使用該第一L2資料快取項目中之該資料的指令至該第二L1快取,其中該無效包含其該第一L1快取資料項目中之該資料目前正由該第一處理核心所使用;以及當判定其目前正被使用的該第一L1快取資料項目中之該資料未被修改時傳送總體觀測信號至該第二L1快取,其中該總體觀測信號包含指令以使用該L2資料快取項目中之該資料。
於範例19中,範例15-18之請求標的可選擇性地包括其中於判定其該資料之該副本未被儲存於該第一L2快取資料項目中時,儲存該第一請求之項目識別(ID)並傳送該第一請求至排程器佇列以從主記憶體擷取該資料,其中該項目ID係相應於該主記憶體之記憶體位址。
於範例20中,範例15-19之請求標的可選擇性地包括接收針對第一處理核心之第一L1快取中的複數L1快取資料項目之第一L1快取資料項目上的該資料之存取的複數請求中之第二請求;判定該資料之副本是否被儲存於該第一L2快取資料項目中;於判定其該資料之該副本未被儲存於該第一L2快取資料項目中時,判定當該第二請求之該項目ID相同於該第一請求之該項目ID時的衝突;將該第二請求置於睡眠模式;於接收到來自該排程器佇列之該第一請求的去配置項目ID時將該第二請求從該睡眠模式改變至甦醒模式,其中該去配置項目ID係相應於該主記憶體之該記憶體位址的去配置;及傳送該第二請求至該排程器佇列以從該主記憶體擷取該資料。
範例21為一種非暫態機器可讀取儲存媒體,包括當由處理裝置所存取時致使該處理裝置履行包含以下操作之指令:由處理器接收針對第一處理核心之第一L1快取中的複數L1快取資料項目之第一L1快取資料項目上的資料之存取的複數請求中之第一請求;判定該資料之副本是否被儲存於該L2快取之複數L2快取資料項目中的第一L2快取資料項目中,其中該L2快取之該第一L2快取項目係相應於該第一L1快取之該第一L1快取資料及其中該L2快取之該些複數L2快取資料項目的各者係與存在位元(pbit)關聯,其中該pbit係指示該些複數L2快取資料項目之各者的狀態;以及於判定其該資料之該副本被儲存於該第一L2快取資料項目中時,根據該pbit以從該L2快取資料項目擷取該資料之該副本。
於範例22中,範例21之請求標的可選擇性地包括其中該些操作進一步包含當判定其該第一L2快取項目之狀態包含其該第一L1快取資料項目中之該資料為存在且有效時傳送總體觀測信號至該第二L1快取,其中該總體觀測信號包含指令以:使用該第一L2資料快取項目中之該資料及傳送該第一L2資料快取項目中之該資料至該第二L1快取。
於範例23中,範例21-22之請求標的可選擇性地包括其中該些操作進一步包含當判定其該第一L2快取項目之該狀態包含其該第一L1快取資料項目為不存在與無效之一時傳送該第一L2資料快取項目中之該資料至第二L1 快取,連同不使用該第一L2資料快取項目中之該資料的指令至該第二L1快取,其中該無效包含其該第一L1快取資料項目中之該資料目前正由該第一處理核心所使用;以及當判定其目前正被使用的該第一L1快取資料項目中之該資料未被修改時傳送總體觀測信號至該第二L1快取,其中該總體觀測信號包含指令以使用該L2資料快取項目中之該資料。
於範例24中,範例21-23之請求標的可選擇性地包括其中該些操作進一步包含其中於判定其該資料之該副本未被儲存於該第一L2快取資料項目中時,儲存該第一請求之項目識別(ID)並傳送該第一請求至排程器佇列以從主記憶體擷取該資料,其中該項目ID係相應於該主記憶體之記憶體位址。
於範例25中,範例21-24之請求標的可選擇性地包括其中該些操作進一步包含接收針對第一處理核心之第一L1快取中的複數L1快取資料項目之第一L1快取資料項目上的該資料之存取的複數請求中之第二請求;判定該資料之副本是否被儲存於該第一L2快取資料項目中;於判定其該資料之該副本未被儲存於該第一L2快取資料項目中時,判定當該第二請求之該項目ID相同於該第一請求之該項目ID時的衝突;將該第二請求置於睡眠模式;於接收到來自該排程器佇列之該第一請求的去配置項目ID時將該第二請求從該睡眠模式改變至甦醒模式,其中該去配置項目ID係相應於該主記憶體之該記憶體位址的去配 置;及傳送該第二請求至該排程器佇列以從該主記憶體擷取該資料。
雖然已針對有限數目的實施例來描述本發明,但那些熟悉此技藝人士將理解從這些實施例而來的各種修改及變異。後附申請專利範圍應涵蓋所有此等修改及變異而落入本發明之真實精神和範圍內。
設計可經歷各個階段,從創造至模擬至生產。表示設計之資料可以數種方式來表示設計。首先,如可用於模擬,硬體可使用硬體描述語言或另一功能性描述語言來表示。此外,具有邏輯及/或電晶體閘之電路等級模型可於設計程序之某些階段被產生。再者,大部分設計(於某階段)達到表示硬體模型中之各個裝置的實體布局之資料的等級。於其中使用傳統半導體製造技術之情況下,表示硬體模型之資料可為指明針對用以產生積體電路之遮罩的不同遮罩層上之各個特徵的存在或缺乏之資料。於設計之任何表示中,資料可被儲存以機器可讀取媒體之任何形式。記憶體或者磁性或光學儲存(諸如碟片)可為用以儲存資訊之機器可讀取媒體,該資訊係經由光或電波(其被調變或者產生以傳輸此資訊)而被傳輸。當電載波(其係指示或攜載碼或設計)被傳輸時,至其電信號之複製、緩衝、或再傳輸被履行之程度,則新的副本被產生。因此,通訊提供者或網路提供者可於有形的、機器可讀取媒體上(至少暫時地)儲存一物件,諸如編碼入載波之資訊,實現本發明之實施例的技術。
如文中所使用之模組係指稱硬體、軟體、及/或韌體之任何組合。當作範例,模組包括硬體,諸如微控制器,其係與非暫態媒體相關以儲存適於由微控制器所執行的碼。因此,模組之參考(於一實施例中)係指稱硬體,其被明確地組態成辨識及/或執行該碼以供被保持於非暫態媒體上。再者,於另一實施例中,模組之使用係指稱包括該碼之非暫態媒體,其係明確地適於由微控制器所執行以履行預定的操作。而如可被推斷者,於又另一實施例中,術語模組(於此範例中)可指稱微控制器與非暫態媒體之組合。其被顯示為分離之模組邊界經常共同地改變且潛在地重疊。例如,第一和第二模組可共用硬體、軟體、韌體、或其組合,而潛在地留存某些獨立的硬體、軟體、或韌體。於一實施例中,術語邏輯之使用包括硬體,諸如電晶體、暫存器、或其他硬體,諸如可編程裝置。
用語「組態成」之使用(於一實施例中)係指稱配置、結合、製造、提供銷售、進口及/或設計設備、硬體、邏輯、或元件以履行指定的或決定的工作。於此範例中,非操作中之設備或其元件仍「組態成」履行指定的工作,假如其被設計、耦合、及/或互連以履行該指定的工作。當作純粹說明性範例,邏輯閘可提供0或1於操作期間。但邏輯閘「組態成」提供致能信號給時鐘,其不包括其可提供1或0之每一潛在邏輯閘。取代地,邏輯閘係以某方式耦合以致其於操作期間1或0輸出係用以致能時鐘。再次注意:術語「組態成」之使用不要求操作,但取 代地聚焦於設備、硬體、及/或元件之潛時狀態,其為當設備、硬體、及/或元件正操作時該設備、硬體、及/或元件所被設計以履行特定工作之潛時狀態。
再者,用語「用以」、「得以/用以」、及/或「可操作以」(於一實施例中)係指稱某設備、邏輯、硬體、及/或元件,其被設計以致能用指定方式之設備、邏輯、硬體、及/或元件的使用。注意:如上所述,用以、得以、或可操作以(於一實施例中)係指稱設備、邏輯、硬體、及/或元件之潛時狀態,其中該設備、邏輯、硬體、及/或元件並未操作而被設計以致能用指定方式之設備的使用。
一值(如文中所使用者)包括數字、狀態、邏輯狀態、或二元邏輯狀態之任何已知表示。經常,邏輯位準、邏輯值、或邏輯上的值之使用亦被稱為1和0,其僅代表二元邏輯狀態。例如,1係指稱高邏輯位準而0係指稱低邏輯位準。於一實施例中,儲存單元(諸如電晶體或快取單元)得以保留單一邏輯值或多數邏輯值。然而,電腦系統中之值的其他表示已被使用。例如,十進位數「十」亦可被表示為910之二元值及十六進位字母A。因此,一值包括能夠被保留於電腦系統中之資訊的任何表示。
此外,狀態可由值或值之部分所表示。當作範例,第一值(諸如邏輯一)可表示預設或初始狀態,而第二值(諸如邏輯零)可表示非預設狀態。此外,術語重設及設定(於一實施例中)係指稱預設值以及更新值或狀態,個別地。例如,預設值潛在地包括高邏輯值(亦即,重 設),而更新值潛在地包括低邏輯值(亦即,設定)。注意:值之任何組合可被利用以表示任何數目的狀態。
以上所提出之方法、硬體、軟體、韌體或碼之實施例可經由指令或碼而被實施,該些指令或碼被儲存於其可由處理元件所執行之機器可存取、機器可讀取、電腦可存取、或電腦可讀取媒體上。非暫態機器可存取/可讀取媒體包括任何機制,其係提供(亦即,儲存及/或傳輸)資訊以其可由機器(諸如電腦或電子系統)所讀取的形式。例如,非暫態機器可存取媒體包括隨機存取記憶體(RAM),諸如靜態RAM(SRAM)或動態RAM(DRAM);ROM;磁性或光學儲存媒體;快閃記憶體裝置;電儲存裝置;光學儲存裝置;音響儲存裝置;用以保持從暫時(傳播)信號(例如,載波、紅外線信號、數位信號)所接收之資訊的其他形式儲存裝置;等等,其係用以被區分自非暫態媒體(其可從該處接收資訊)。
用於程式邏輯以履行本發明之實施例的指令可被儲存於系統中之記憶體內,諸如DRAM、快取、快閃記憶體、或其他儲存。再者,該些指令可經由網路或藉由其他電腦可讀取媒體而被分佈。因此機器可讀取媒體可包括用以依可由機器(例如,電腦)所讀取之形式儲存或傳輸資訊的任何機制,但不限定於軟碟、光碟、CD、唯讀記憶體(CD-ROM)、及磁光碟、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、可抹除可編程唯讀記憶體(EPROM)、電可抹除可編程唯讀記憶體(EEPROM)、 磁或光學卡、快閃記憶體、或有形、機器可讀取儲存,用於透過經電、光、聲或其他形式的傳播信號(例如,載波、紅外線信號、數位信號,等等)之網際網路的資訊之傳輸。因此,電腦可讀取媒體包括適於以可由機器(例如,電腦)所讀取之形式儲存或傳輸電子指令或資訊的任何類型的有形機器可讀取媒體。
遍及本說明書內針對「一個實施例」或「一實施例」之參考係表示關於該實施例所描述之特定特徵、結構、或特性被包括於本發明之至少一實施例中。因此,遍及本說明書於各處中之用語「於一個實施例中」或「於一實施例中」的出現不一定均指稱相同實施例。再者,特定特徵、結構、或特性可被結合以任何適當的方式於一或更多實施例中。
於前述說明書中,已參考其特定範例實施例而提供詳細描述。然而,將清楚明白的是:可對其進行各種修改及改變而不背離如後附申請專利範圍中所提出之本發明的較寬廣精神及範圍。說明書及圖式因此將被視為說明性意義而非限制性意義。再者,實施例及其他範例語言之前述使用不一定指稱相同的實施例或相同的範例,而可指稱不同的或有別的實施例、以及潛在地相同的實施例。
100‧‧‧系統單晶片(SoC)
102‧‧‧處理器
104‧‧‧主記憶體
106‧‧‧處理器間互連結構
108A、108B‧‧‧處理核心
110A、110B‧‧‧L1快取
112‧‧‧L2快取
114‧‧‧核心間互連結構
116‧‧‧快取控制器
118‧‧‧p位元暫存器
120A、120B‧‧‧資料快取項目DL1
122A、122B‧‧‧L2快取項目
124‧‧‧存在位元(pbit)
130A、130B‧‧‧快取項目IL1
132A‧‧‧L2快取項目

Claims (25)

  1. 一種處理器,包含:第一處理核心;第一L1快取,包含用以儲存資料之複數L1快取資料項目之第一L1快取資料項目;L2快取,包含複數L2快取資料項目之第一L2快取資料項目,其中該第一L2快取資料項目係相應於該第一L1快取資料項目且該些複數L2快取資料項目之各者係與複數存在位元(pbit)之相應的pbit關聯,其中該些複數pbit之各者係指示該些複數L1快取資料項目之相應一者的狀態;及快取控制器,用以回應於欲存取該第一L1快取資料項目上之資料的複數請求中之第一請求來:判定該第一L1快取資料項目之該資料之副本被儲存於該第一L2快取資料項目中;判定該第一L2快取資料項目之該pbit的該狀態;回應於指示存在狀態和有效狀態之該pbit的該判定狀態,從該L1快取資料項目擷取該資料之該副本;回應於指示不存在狀態或無效狀態中之至少一者之該pbit的該判定狀態,傳送總體觀測信號至第二處理核心之第二L1快取;及回應於指示該存在狀態和該無效狀態之該pbit的該判定狀態,傳送該第一L2快取資料項目中之該資料至 該第二L1快取,連同不使用該第一L2資料快取項目中之該資料的指令至該第二L1快取。
  2. 如申請專利範圍第1項之處理器,其中由該些複數L2快取資料項目之各者的該些複數pbit所指示的該狀態包含該些相應的複數L1快取資料項目之各者中的資料為存在、不存在、有效或無效之一。
  3. 如申請專利範圍第2項之處理器,進一步包含:該第二處理核心;及該第二L1快取,包含該些複數L1快取資料項目之第二L1快取資料項目,其中該第二處理核心係用以傳送欲存取該第一處理核心中的該第一L1快取資料項目上之該資料的該第一請求。
  4. 如申請專利範圍第1項之處理器,其中該快取控制器係用以:回應於指示該存在狀態和該有效狀態之該pbit的該判定狀態,將窺探注入該第一處理核心;及回應於指示該不存在狀態或該無效狀態中之至少一者之該pbit的該判定狀態,避免將該窺探注入該第一處理核心。
  5. 如申請專利範圍第1項之處理器,其中該總體觀測信號包含指令以使用該第一L2快取資料項目中之該資料,及其中該無效狀態指示該第一L1快取資料項目中之該資料目前正由該第一處理核心所使用。
  6. 如申請專利範圍第5項之處理器,其中回應於判定 目前正被使用之該第一L1快取資料項目中的該資料未被修改,該快取控制器傳送該總體觀測信號至該第二L1快取,其中該總體觀測信號包含用以使用該第一L2快取資料項目中之該資料的指令。
  7. 如申請專利範圍第1項之處理器,其中該第一L1快取包含用以儲存指令之複數L1快取指令項目的第一L1快取指令項目,該L2快取包含複數L2快取指令項目的第一L2快取指令項目,其中該L2快取被指派一指示該些複數L2快取指令項目之各者的狀態之快取項目狀態。
  8. 如申請專利範圍第7項之處理器,其中回應於該指令之存取在該第一L1快取指令項目上發生,該快取控制器係用以直接地從該些複數L2快取指令項目中之L2快取指令項目擷取該指令,當該L2快取為互斥狀態或修改狀態之至少一者時。
  9. 如申請專利範圍第7項之處理器,其中回應於該指令之存取在該第一L1快取指令項目上發生,該快取控制器係傳送訊息以從該第一L1快取指令項目移除該指令並直接地從該些複數L2快取指令項目中之L2快取指令項目擷取該指令,當該L2快取為至少處於共有狀態或傳遞狀態之一時。
  10. 如申請專利範圍第1項之處理器,其中回應於判定該資料之該副本未被儲存於該第一L2快取資料項目中,該快取控制器係用以傳送該第一請求至請求者佇列,其中該請求者佇列係儲存該第一請求之項目識別(ID)並 傳送該第一請求至排程器佇列以從主記憶體擷取該資料,其中該項目ID係相應於該主記憶體之記憶體位址。
  11. 如申請專利範圍第10項之處理器,其中回應於接收欲存取該L1快取資料項目上之該資料的第二請求,該快取控制器係用以判定該資料之副本是否被儲存於該第一L2快取資料項目中,及其中回應於判定該資料之該副本未被儲存於該第一L2快取資料項目中時,該快取控制器係用以傳送該第二請求至該請求者佇列。
  12. 如申請專利範圍第11項之處理器,其中該請求者佇列係用以判定當該第二請求之該項目ID匹配該第一請求之該項目ID時的衝突,以及於該衝突之判定時,該請求者佇列係用以將該第二請求置於睡眠模式。
  13. 如申請專利範圍第12項之處理器,其中該請求者佇列係用以:於接收到來自該排程器佇列之該第一請求的去配置項目ID時將該第二請求從該睡眠模式改變至甦醒模式,其中該去配置項目ID係相應於該主記憶體之該記憶體位址的去配置;及傳送該第二請求至該排程器佇列以從該主記憶體擷取該資料。
  14. 一種系統單晶片(SoC),包含:處理器,包含:第一處理核心;第一L1快取,包含用以儲存資料之複數L1快取資料 項目之第一L1快取資料項目;L2快取,包含複數L2快取資料項目之第一L2快取資料項目,其中該第一L2快取資料項目係相應於該第一L1快取資料項目且該些複數L2快取資料項目之各者係與複數存在位元(pbit)之相應的pbit關聯,其中該些複數pbit之各者係指示該些複數L1快取資料項目之相應一者的狀態;及快取控制器,用以回應於欲存取該第一L1快取資料項目上之資料的複數請求中之第一請求來:判定該第一L1快取資料項目之該資料之副本被儲存於該第一L2快取資料項目中;判定該第一L2快取資料項目之該pbit的該狀態;回應於指示存在狀態和有效狀態之該pbit的該判定狀態,從該L1快取資料項目擷取該資料之該副本;回應於指示不存在狀態或無效狀態中之至少一者之該pbit的該判定狀態,傳送總體觀測信號至第二處理核心之第二L1快取;及回應於指示該存在狀態和該無效狀態之該pbit的該判定狀態,傳送該第一L2快取資料項目中之該資料至該第二L1快取,連同不使用該第一L2資料快取項目中之該資料的指令至該第二L1快取。
  15. 如申請專利範圍第14項之SoC,其中回應於判定該資料之該副本未被儲存於該第一L2快取資料項目中 時,該快取控制器係用以傳送該第一請求至請求者佇列,其中該請求者佇列係儲存該第一請求之項目識別(ID)並傳送該第一請求至排程器佇列以從主記憶體擷取該資料,及其中該項目ID係相應於該主記憶體之記憶體位址。
  16. 一種用於最小化窺探流量的方法,包含:由處理器接收針對第一處理核心之第一L1快取中的複數L1快取資料項目之第一L1快取資料項目上的資料之存取的複數請求中之第一請求;判定該資料之副本是否被儲存於該L2快取之複數L2快取資料項目中的第一L2快取資料項目中,其中該L2快取之該第一L2快取資料項目係相應於該第一L1快取之該第一L1快取資料項目及其中該L2快取之該些複數L2快取資料項目的各者係與存在位元(pbit)關聯,其中該pbit係指示該些複數L1快取資料項目之各者的狀態;判定該第一L1快取資料項目之該資料之副本被儲存於該第一L2快取資料項目中;判定該第一L2快取資料項目之該pbit的該狀態;回應於指示存在狀態和有效狀態之該pbit的該判定狀態,從該L1快取資料項目擷取該資料之該副本;回應於指示不存在狀態或無效狀態中之至少一者之該pbit的該判定狀態,傳送總體觀測信號至第二處理核心之第二L1快取;及回應於指示該存在狀態和該無效狀態之該pbit的該判定狀態,傳送該第一L2快取資料項目中之該資料至該第 二L1快取,連同不使用該第一L2資料快取項目中之該資料的指令至該第二L1快取。
  17. 如申請專利範圍第16項之方法,進一步包含:回應於指示該存在狀態和該有效狀態之該pbit的該判定狀態,將窺探注入該第一處理核心;及回應於指示該不存在狀態或該無效狀態中之至少一者之該pbit的該判定狀態,避免將該窺探注入該第一處理核心。
  18. 如申請專利範圍第16項之方法,其中該總體觀測信號包含指令以使用該第一L2快取資料項目中之該資料,及其中該無效包含該第一L1快取資料項目中之該資料目前正由該第一處理核心所使用;以及其中該方法進一步包含回應於判定目前正被使用的該第一L1快取資料項目中之該資料未被修改時傳送第二總體觀測信號至該第二L1快取,其中該第二總體觀測信號包含指令以使用該L2快取資料項目中之該資料。
  19. 如申請專利範圍第16項之方法,進一步包含回應於判定該資料之該副本未被儲存於該第一L2快取資料項目中時,儲存該第一請求之項目識別(ID)並傳送該第一請求至排程器佇列以從主記憶體擷取該資料,其中該項目ID係相應於該主記憶體之記憶體位址。
  20. 如申請專利範圍第19項之方法,進一步包含:接收針對第一處理核心之第一L1快取中的複數L1快取資料項目之第一L1快取資料項目上的該資料之存取的 複數請求中之第二請求;判定該資料之副本是否被儲存於該第一L2快取資料項目中;回應於判定該資料之該副本未被儲存於該第一L2快取資料項目中時,判定當該第二請求之該項目ID相同於該第一請求之該項目ID時的衝突;將該第二請求置於睡眠模式;於接收到來自該排程器佇列之該第一請求的去配置項目ID時將該第二請求從該睡眠模式改變至甦醒模式,其中該去配置項目ID係相應於該主記憶體之該記憶體位址的去配置;及傳送該第二請求至該排程器佇列以從該主記憶體擷取該資料。
  21. 一種非暫態機器可讀取儲存媒體,包括當由處理裝置所存取時致使該處理裝置履行包含以下操作之指令:由處理器接收針對第一處理核心之第一L1快取中的複數L1快取資料項目之第一L1快取資料項目上的資料之存取的複數請求中之第一請求;判定該資料之副本是否被儲存於該L2快取之複數L2快取資料項目中的第一L2快取資料項目中,其中該L2快取之該第一L2快取資料項目係相應於該第一L1快取之該第一L1快取資料項目及其中該L2快取之該些複數L2快取資料項目的各者係與存在位元(pbit)關聯,其中該pbit係指示該些複數L1快取資料項目之各者的狀態; 判定該第一L1快取資料項目之該資料之副本被儲存於該第一L2快取資料項目中;判定該第一L2快取資料項目之該pbit的該狀態;回應於指示存在狀態和有效狀態之該pbit的該判定狀態,從該L1快取資料項目擷取該資料之該副本;回應於指示不存在狀態或無效狀態中之至少一者之該pbit的該判定狀態,傳送總體觀測信號至第二處理核心之第二L1快取;及回應於指示該存在狀態和該無效狀態之該pbit的該判定狀態,傳送該第一L2快取資料項目中之該資料至該第二L1快取,連同不使用該第一L2資料快取項目中之該資料的指令至該第二L1快取。
  22. 如申請專利範圍第21項之非暫態機器可讀取儲存媒體,其中該些操作進一步包含回應於指示該存在狀態和該有效狀態之該pbit的該判定狀態,將窺探注入該第一處理核心;及回應於指示該不存在狀態或該無效狀態中之至少一者之該pbit的該判定狀態,避免將該窺探注入該第一處理核心。
  23. 如申請專利範圍第21項之非暫態機器可讀取儲存媒體,該總體觀測信號包含指令以使用該第一L2快取資料項目中之該資料,及其中該無效包含該第一L1快取資料項目中之該資料目前正由該第一處理核心所使用;以及其中該些操作進一步包含回應於判定目前正被使用的 該第一L1快取資料項目中之該資料未被修改時傳送第二總體觀測信號至該第二L1快取,其中該第二總體觀測信號包含指令以使用該L2快取資料項目中之該資料。
  24. 如申請專利範圍第21項之非暫態機器可讀取儲存媒體,其中該些操作進一步包含回應於判定該資料之該副本未被儲存於該第一L2快取資料項目中時,儲存該第一請求之項目識別(ID)並傳送該第一請求至排程器佇列以從主記憶體擷取該資料,其中該項目ID係相應於該主記憶體之記憶體位址。
  25. 如申請專利範圍第24項之非暫態機器可讀取儲存媒體,其中該些操作進一步包含:接收針對第一處理核心之第一L1快取中的複數L1快取資料項目之第一L1快取資料項目上的該資料之存取的複數請求中之第二請求;判定該資料之副本是否被儲存於該第一L2快取資料項目中;回應於判定該資料之該副本未被儲存於該第一L2快取資料項目中時,判定當該第二請求之該項目ID相同於該第一請求之該項目ID時的衝突;將該第二請求置於睡眠模式;於接收到來自該排程器佇列之該第一請求的去配置項目ID時將該第二請求從該睡眠模式改變至甦醒模式,其中該去配置項目ID係相應於該主記憶體之該記憶體位址的去配置;及 傳送該第二請求至該排程器佇列以從該主記憶體擷取該資料。
TW105137287A 2015-12-21 2016-11-15 用於最小化窺探流量的處理器、系統單晶片及方法 TWI724058B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/976,678 US10102129B2 (en) 2015-12-21 2015-12-21 Minimizing snoop traffic locally and across cores on a chip multi-core fabric
US14/976,678 2015-12-21

Publications (2)

Publication Number Publication Date
TW201730775A TW201730775A (zh) 2017-09-01
TWI724058B true TWI724058B (zh) 2021-04-11

Family

ID=59065066

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105137287A TWI724058B (zh) 2015-12-21 2016-11-15 用於最小化窺探流量的處理器、系統單晶片及方法

Country Status (4)

Country Link
US (1) US10102129B2 (zh)
DE (1) DE112016005863T5 (zh)
TW (1) TWI724058B (zh)
WO (1) WO2017112192A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10146440B2 (en) * 2016-12-20 2018-12-04 Intel Corporation Apparatus, system and method for offloading collision check operations in a storage device
US10713750B2 (en) * 2017-04-01 2020-07-14 Intel Corporation Cache replacement mechanism
US10372353B2 (en) * 2017-05-31 2019-08-06 Micron Technology, Inc. Apparatuses and methods to control memory operations on buffers
US11061735B2 (en) * 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11086672B2 (en) * 2019-05-07 2021-08-10 International Business Machines Corporation Low latency management of processor core wait state
CN111427817B (zh) * 2020-03-23 2021-09-24 深圳震有科技股份有限公司 一种amp***双核共用i2c接口的方法、存储介质及智能终端
US11568932B2 (en) * 2021-02-22 2023-01-31 Micron Technology, Inc. Read cache for reset read disturb mitigation

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5369753A (en) * 1990-06-15 1994-11-29 Compaq Computer Corporation Method and apparatus for achieving multilevel inclusion in multilevel cache hierarchies
US5642494A (en) * 1994-12-21 1997-06-24 Intel Corporation Cache memory with reduced request-blocking
US6073212A (en) * 1997-09-30 2000-06-06 Sun Microsystems, Inc. Reducing bandwidth and areas needed for non-inclusive memory hierarchy by using dual tags
TW200705396A (en) * 2005-04-12 2007-02-01 Toshiba Kk Information storage medium, information recording apparatus, and information playback apparatus

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5740400A (en) 1995-06-05 1998-04-14 Advanced Micro Devices Inc. Reducing cache snooping overhead in a multilevel cache system with multiple bus masters and a shared level two cache by using an inclusion field
US5652859A (en) * 1995-08-17 1997-07-29 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
US5897656A (en) * 1996-09-16 1999-04-27 Corollary, Inc. System and method for maintaining memory coherency in a computer system having multiple system buses
US7089376B2 (en) 2003-03-20 2006-08-08 International Business Machines Corporation Reducing snoop response time for snoopers without copies of requested data via snoop filtering
US7162584B2 (en) * 2003-12-29 2007-01-09 Intel Corporation Mechanism to include hints within compressed data
US20070005907A1 (en) 2005-06-29 2007-01-04 Intel Corporation Reduction of snoop accesses
US7836144B2 (en) * 2006-12-29 2010-11-16 Intel Corporation System and method for a 3-hop cache coherency protocol
US8364898B2 (en) * 2009-01-23 2013-01-29 International Business Machines Corporation Optimizing a cache back invalidation policy
US8868847B2 (en) 2009-03-11 2014-10-21 Apple Inc. Multi-core processor snoop filtering

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5369753A (en) * 1990-06-15 1994-11-29 Compaq Computer Corporation Method and apparatus for achieving multilevel inclusion in multilevel cache hierarchies
US5642494A (en) * 1994-12-21 1997-06-24 Intel Corporation Cache memory with reduced request-blocking
US6073212A (en) * 1997-09-30 2000-06-06 Sun Microsystems, Inc. Reducing bandwidth and areas needed for non-inclusive memory hierarchy by using dual tags
TW200705396A (en) * 2005-04-12 2007-02-01 Toshiba Kk Information storage medium, information recording apparatus, and information playback apparatus

Also Published As

Publication number Publication date
US10102129B2 (en) 2018-10-16
WO2017112192A1 (en) 2017-06-29
US20170177483A1 (en) 2017-06-22
TW201730775A (zh) 2017-09-01
DE112016005863T5 (de) 2018-09-06

Similar Documents

Publication Publication Date Title
TWI724058B (zh) 用於最小化窺探流量的處理器、系統單晶片及方法
US10108556B2 (en) Updating persistent data in persistent memory-based storage
US10901899B2 (en) Reducing conflicts in direct mapped caches
US20170192887A1 (en) Cache allocation with code and data prioritization
US10489063B2 (en) Memory-to-memory instructions to accelerate sparse-matrix by dense-vector and sparse-vector by dense-vector multiplication
US9836399B2 (en) Mechanism to avoid hot-L1/cold-L2 events in an inclusive L2 cache using L1 presence bits for victim selection bias
US20160239431A1 (en) High performance persistent memory for region-centric consistent and atomic updates
CN106716949B (zh) 用于管理高速缓存的方法和装置
KR101941874B1 (ko) 클러스터 와이드-실행 머신에서 메모리 액세스를 위한 명령어 및 로직
KR102132805B1 (ko) 커널 모듈을 위한 멀티코어 메모리 데이터 레코더
TWI742120B (zh) 用以識別及避免在虛擬機器監控器與客端虛擬機器之間追蹤衝突的處理器延伸的處理系統、晶片上系統及方法
CN109643283B (zh) 用于管理飞地存储器页的设备、方法和装置
US10489297B2 (en) Prefetching time allocation
US9542336B2 (en) Isochronous agent data pinning in a multi-level memory system
TWI587127B (zh) 使用具有位元組等級粒度緩衝器溢位檢測之記憶體錯誤檢測架構的處理器和系統單晶片
US20170357599A1 (en) Enhancing Cache Performance by Utilizing Scrubbed State Indicators Associated With Cache Entries
US20190179766A1 (en) Translation table entry prefetching in dynamic binary translation based processor
US10705962B2 (en) Supporting adaptive shared cache management
TW201640354A (zh) 用於分頁表走查位元交換之指令和邏輯
EP3736700A1 (en) Hybrid directory and snoopy-based coherency to reduce directory update overhead in two-level memory
US20230070995A1 (en) Modular accelerator function unit (afu) design, discovery, and reuse
US11372775B2 (en) Management of the untranslated to translated code steering logic in a dynamic binary translation based processor
WO2018001528A1 (en) Apparatus and methods to manage memory side cache eviction
TW201732609A (zh) 衝突罩生成