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

減少具有擴(kuò)展MESI協(xié)議的多處理器系統(tǒng)的互連流量的制作方法

文檔序號:12071787閱讀:180來源:國知局
減少具有擴(kuò)展MESI協(xié)議的多處理器系統(tǒng)的互連流量的制作方法與工藝

本公開的實(shí)施例總地涉及管理一個或多個處理器的高速緩存,更具體地涉及減少使用擴(kuò)展MESI協(xié)議的多處理器系統(tǒng)的互連結(jié)構(gòu)系統(tǒng)上的流量。



背景技術(shù):

處理器可以包括一個或多個處理核、高速緩存以及用于管理導(dǎo)向主存儲器的讀操作和寫操作的高速緩存控制器。該高速緩存控制器是與處理核和主存儲器耦合以管理高速緩存上的操作的電路邏輯。高速緩存可以包括不同類型的高速緩存。例如,處理核可以包括專用于處理核的L1高速緩存。多核處理器可以包括由多個核共享的L2高速緩存。此外,處理器的全部核可以共享共同的L3高速緩存。在一些實(shí)現(xiàn)方式中,片上最后一級高速緩存(LLC)可以由片上系統(tǒng)(SoC)上的多個處理器共享。每個高速緩存可以包括存儲主存儲器內(nèi)所存儲的數(shù)據(jù)的本地副本和主存儲器中所存儲的數(shù)據(jù)的地址的一個或多個高速緩存線。處理器的高速緩存控制器可以根據(jù)高速緩存相干協(xié)議來管理L1-L3高速緩存以確保其副本存儲在多個高速緩存中的共享數(shù)據(jù)的一致性。

附圖說明

從下面給出的詳細(xì)說明以及從本公開的各個實(shí)施例的附圖中將更全面地理解本公開內(nèi)容。然而,附圖不應(yīng)視為將本公開限制到具體的實(shí)施例,而是僅為了說明和理解。

圖1示出了根據(jù)本公開的實(shí)施例的包括處理核的處理設(shè)備。

圖2示出了根據(jù)本公開的實(shí)施例的高速緩存的高速緩存線。

圖3是根據(jù)本公開的實(shí)施例的擴(kuò)展MESI協(xié)議的狀態(tài)圖。

圖4A是根據(jù)本公開的實(shí)施例的將高速緩存線的標(biāo)記分配給共享狀態(tài)之一的方法的框圖。

圖4B是根據(jù)本公開的實(shí)施例的基于高速緩存線中所存儲的標(biāo)記而廣播高速緩存無效請求的方法的框圖。

圖5A是示出了可使用本公開的一個實(shí)施例的包括異構(gòu)核的處理器的微架構(gòu)的框圖。

圖5B是示出了根據(jù)本公開的至少一個實(shí)施例實(shí)現(xiàn)的有序流水線和寄存器重命名階段、無序發(fā)布/執(zhí)行流水線的框圖。

圖6示出了根據(jù)本公開的一個實(shí)施例的包含邏輯的處理器的微架構(gòu)的框圖。

圖7是示出可使用本公開的實(shí)施例的系統(tǒng)的框圖。

圖8是本公開的實(shí)施例可操作于其中的系統(tǒng)的框圖。

圖9是本公開的實(shí)施例可操作于其中的系統(tǒng)的框圖。

圖10是根據(jù)本公開的實(shí)施例的片上系統(tǒng)(SoC)的框圖。

圖11是根據(jù)本公開的SoC設(shè)計的實(shí)施例的框圖。

圖12示出了計算機(jī)系統(tǒng)的一個實(shí)施例的框圖。

具體實(shí)施方式

MESI協(xié)議是一種高速緩存相干協(xié)議。在MESI協(xié)議下,高速緩存控制器可以利用“修改”、“獨(dú)占”、“共享”或“無效”狀態(tài)中的一個來標(biāo)記高速緩存線。修改(M)狀態(tài)指示高速緩存控制器確定存儲在高速緩存線中的副本已經(jīng)從存儲在主存儲器中的數(shù)據(jù)修改。要求在允許主存儲器狀態(tài)(不再有效)的任何其它讀之前在未來的某時間高速緩存將數(shù)據(jù)寫回到主存儲器。從高速緩存寫回到主存儲器導(dǎo)致高速緩存控制器將高速緩存線的狀態(tài)變成獨(dú)占(E)狀態(tài)。獨(dú)占(E)狀態(tài)指示,高速緩存控制器確定高速緩存線匹配存儲在主存儲器中的數(shù)據(jù)且未由其它高速緩存共享。高速緩存控制器可以響應(yīng)于源自另一處理核或另一處理器的對主存儲器的讀請求而將高速緩存線的狀態(tài)變成共享狀態(tài)??商娲?,當(dāng)高速緩存線的內(nèi)容被重寫時,高速緩存控制器可以將高速緩存線的狀態(tài)變成修改狀態(tài)。共享(S)狀態(tài)指示,高速緩存控制器確定高速緩存線也存儲在另一高速緩存中(例如,在由另一處理核或另一處理器讀之后)。無效(I)狀態(tài)指示,高速緩存控制器確定高速緩存線無效(或未使用)。

隨著半導(dǎo)體技術(shù)的發(fā)展,越來越多的核已經(jīng)集成到處理器中。利用多個核,處理設(shè)備可以包括多個處理器,每個處理器可以包括處理核的多個核集群,并且每個集群可以包括多個處理核。然而,MESI協(xié)議同等地處理具有單處理核的處理器和具有多個核集群和多個處理核的多個處理器。例如,MESI協(xié)議的共享(S)狀態(tài)指示,數(shù)據(jù)副本分布在不同的處理器上。在寫入對應(yīng)于高速緩存線的主存儲器位置的情形下,高速緩存控制器需要將高速緩存無效請求消息廣播到全部的處理器及其核以請求將其它高速緩存中的高速緩存線的副本的狀態(tài)從共享(S)狀態(tài)變成無效(I)狀態(tài)。高速緩存無效請求可以在互連結(jié)構(gòu)系統(tǒng)上傳輸,多個處理器與該互連結(jié)構(gòu)系統(tǒng)耦合。當(dāng)處理器和其中的處理核的數(shù)量高時,無效請求的廣播會導(dǎo)致互連結(jié)構(gòu)系統(tǒng)上的大的流量。

本公開的實(shí)施例可以包括處理設(shè)備,該處理設(shè)備包括一個或多個處理器,每個處理器包括一個或多個處理核和由一個或多個高速緩存控制器利用高速緩存相干協(xié)議管理的高速緩存,高速緩存的狀態(tài)考慮到處理核的不同級別的集聚。

在一個實(shí)施例中,該協(xié)議可以根據(jù)哪個核共享數(shù)據(jù)而支持不同類型的共享狀態(tài)。在一個實(shí)施例中,擴(kuò)展MESI的共享狀態(tài)可以包括集群共享(CS)、處理器共享(PS)和全局共享(GS)狀態(tài)這三種共享狀態(tài),而不是MESI協(xié)議的單一共享(S)狀態(tài)。高速緩存線的集群共享(CS)狀態(tài)指示存儲在高速緩存線中的數(shù)據(jù)可以具有存儲在由處理核所屬的核集群構(gòu)成的不同處理核的高速緩存中的副本,但是在核集群之外的任何高速緩存中沒有副本。在一個實(shí)施例中,處理核的核集群由處理器的制造商規(guī)定。高速緩存線的處理器共享(PS)狀態(tài)指示存儲在高速緩存線中的數(shù)據(jù)的副本可以具有存儲在處理器中的多于一個集群的處理核中的高速緩存中的副本,而在處理器之外沒有副本。全局共享(GS)狀態(tài)指示,存儲在高速緩存線中的數(shù)據(jù)可以具有全局地位于全部處理器中的高速緩存和處理設(shè)備內(nèi)的處理核內(nèi)的副本。

在擴(kuò)展MESI協(xié)議下,高速緩存控制器可以基于高速緩存線是處于集群共享(CS)狀態(tài)、處理器共享(PS)狀態(tài)還是全局共享(GS)狀態(tài)而將高速緩存消息(例如,高速緩存無效請求)廣播到處理核的目標(biāo)組,從而減少互連結(jié)構(gòu)系統(tǒng)上由總是全局地廣播高速緩存消息而導(dǎo)致的流量。

圖1示出了根據(jù)本公開的實(shí)施例的包括處理核的片上系統(tǒng)(SoC)100。SoC 100可以包括一個或多個處理器102A-102B,以及主存儲器104。每個處理器102A,102B還可以包括一個或多個處理核。如圖1所示,處理器102A可以包括處理核110A-110D,并且處理器102B可以包括處理核110E-110H。每個處理核110A-110H可以包括專用于對應(yīng)的處理核的相應(yīng)的L1高速緩存112A-112H。在一個實(shí)施例中,處理核可以由處理器102A,102B的制造商(或由SoC 100的用戶)集聚成核集群。核集群可以包括在地理上彼此接近的一組集群。在一個實(shí)施例中,核集群可以是享有核集群中的核所共享的專用資源的處理器的設(shè)計單元。例如,核集群的核可以共享專用L2高速緩存。如圖1所示,在處理器102A中,處理核110A,110B可以構(gòu)成核集群108A,并且處理核110C,110D可以構(gòu)成核集群108B。類似地,處理核110E-100H可以分別構(gòu)成處理器102B中的核集群108C,108D。

在一個實(shí)施例中,多個處理核可以共享L2高速緩存。例如,如圖1所示,集群108A-108D中的處理核可以分別共享L2高速緩存114A-114D。另外,處理器102A,102B可共享L3高速緩存(未示出)。

處理核110A-110D、核集群108A-108D以及處理器102A-102B以及不同級別的高速緩存112A-112H,114A-114D可以通過互連結(jié)構(gòu)系統(tǒng)在SoC100內(nèi)互連?;ミB結(jié)構(gòu)系統(tǒng)可以在處理核、核集群和處理器之間傳輸指令和數(shù)據(jù)。

在一個實(shí)施例中,互連結(jié)構(gòu)系統(tǒng)可以包括在核、核集群和處理器之間連接的不同類型的互連。在一個實(shí)施例中,如圖1所示,核集群108A的處理核110A-110B可以通過核間互連116A連接;核集群108B的處理核110C-110D可以通過核間互連116B連接;核集群108C的處理核110E-110F可以通過核間互連116C連接;以及核集群108D的處理核110G-110H可由核間互連116D連接。核間通信,包括在處理集群內(nèi)的處理核之間的數(shù)據(jù)通信和指令/控制消息,可以經(jīng)由核間互連116A-116D來傳輸。

處理器上的核集群可以與集群間互連結(jié)構(gòu)來連接。在一個實(shí)施例中,如圖1所示,處理器102A的核集群108A和核集群108B可以與集群間互連118A連接,并且核集群108C和核集群108D可以與集群間互連118B連接。因此,包括同一處理器上的第一核集群中的第一處理核和第二核集群中的第二處理核之間的數(shù)據(jù)通信和指令/控制消息的通信可以經(jīng)由集群間互連118A,118B來傳輸。例如,處理核110A可以經(jīng)由集群間互連118A與處理核110C通信。核間互連116A-116D和集群間互連118A-118B是片上互連結(jié)構(gòu)。然而,核間互連116A-116D是集群模塊上的互連。相比而言,集群間互連118A-118B在集群模塊之間(或者脫離集群模塊)。

處理器間互連結(jié)構(gòu)106可以連接處理器102A,102B和主存儲器104,用于處理核110A-110H與主存儲器104之間的通信以及用于位于兩個單獨(dú)的處理器上的兩個處理核之間的通信。例如,處理核110A可以經(jīng)由處理器間互連106從主存儲器讀數(shù)據(jù)或者寫數(shù)據(jù)到主存儲器。而且,處理器102A的處理核110A可以經(jīng)由處理器間互連106與處理器102B的處理核110E通信。在一個實(shí)施例中,處理器間互連106可以是片外互連。

在一個實(shí)施例中,每個處理器102A,102B還可以包括與處理核110A-110H和主存儲器104耦合的相應(yīng)的高速緩存控制器116A,116B。高速緩存控制器116A,116B是控制處理核110A-110H、高速緩存112A-112H、114A-114D和主存儲器104之間的接口的電路邏輯。在一個實(shí)現(xiàn)方式中,高速緩存控制器120A,120B可以代表處理器上的高速緩存來監(jiān)視互連結(jié)構(gòu)系統(tǒng)的對于主存儲器104發(fā)生的任何寫和/或讀操作或者SoC 100中的高速緩存中的高速緩存線的任何狀況變化。如圖1所示,高速緩存控制器120A可以監(jiān)視高速緩存112A-112D以及高速緩存114A-114B的互連結(jié)構(gòu)系統(tǒng)(包括核間互連116A-116D,核間互連118A-118B和處理器間互連106),并且高速緩存控制器120B可以監(jiān)視高速緩存112E-112H和高速緩存114C-114D的互連結(jié)構(gòu)系統(tǒng)。

不同級別的高速緩存(例如,L1-L3)用于存儲存儲在主存儲器104中的數(shù)據(jù)的本地副本以減少對存儲在主存儲器中的數(shù)據(jù)的訪問時間。每個高速緩存可以包括用于存儲存儲在主存儲器中的一條數(shù)據(jù)的一個或多個高速緩存線。圖2示出了示范性的高速緩存線200,其包括標(biāo)簽部202、數(shù)據(jù)部204和標(biāo)記部206。SoC 100中的每個高速緩存可以包括作為示范性的高速緩存線200的多個高速緩存線。數(shù)據(jù)段204可以存儲存儲于主存儲器中的對應(yīng)數(shù)據(jù)的副本。標(biāo)簽段202可以存儲在此存儲了數(shù)據(jù)204的主存儲器的地址。標(biāo)簽206段可以根據(jù)某高速緩存相干協(xié)議而存儲高速緩存線的狀態(tài)指示符以確保對高速緩存線200和主存儲器中的對應(yīng)數(shù)據(jù)的訪問是一致且正確的。

為了減少訪問時間,當(dāng)處理核需要從主存儲器的地址讀時,處理核可以首先檢查包括處理核的處理器中的高速緩存或者另一處理器的高速緩存以判定在高速緩存中是否存在副本。如果存在存儲于一個或多個高速緩存中的副本,則處理核讀取一個或多個高速緩存中的副本,而不是從主存儲器104讀取,因?yàn)閺闹鞔鎯ζ魅』赝ǔ]^慢。當(dāng)處理核需要將數(shù)據(jù)寫入主存儲器中的地址時,處理核可能需要檢查是否存在存儲于高速緩存的高速緩存線中的數(shù)據(jù)的一個或多個副本。如果存在存儲于一個或多個高速緩存線中的副本,則處理核可能需要使高速緩存控制器改變一個或多個高速緩存線的狀態(tài)(例如,變成無效狀態(tài))和/或更新存儲在高速緩存線中的數(shù)據(jù)。

因?yàn)榇鎯υ谥鞔鎯ζ?04中的數(shù)據(jù)可能具有存儲在一個或多個處理器中的不同高速緩存的不同高速緩存線處的多個副本,所以在高速緩存和主存儲器104之間的數(shù)據(jù)一致性需要根據(jù)高速緩存相干協(xié)議來維持。這可以通過一個或多個高速緩存控制器在互連系統(tǒng)結(jié)構(gòu)上窺探來實(shí)現(xiàn)。窺探是高速緩存控制器監(jiān)視主存儲器的地址線的對高速緩存具有本地副本的存儲器位置的訪問(讀或?qū)?的過程。如圖1所示,高速緩存控制器120A,120B可以代表高速緩存110A-110H,114A-114D來監(jiān)視主存儲器104的地址線處的活動以檢測是否存在任何讀或?qū)懖僮鞑⑶腋鶕?jù)高速緩存相干協(xié)議來設(shè)定對應(yīng)的高速緩存線的狀態(tài)。

高速緩存相干協(xié)議是MESI協(xié)議,其包括“修改”、“獨(dú)占”、“共享”和“無效”狀態(tài),這些狀態(tài)可用于標(biāo)記高速緩存線。在MESI協(xié)議下,高速緩存線的共享(S)狀態(tài)指示存儲在高速緩存線中的數(shù)據(jù)由另一高速緩存共享(或者在另一高速緩存中具有副本),但是并不告知共享高速緩存是否來自同一核集群,或者來自同一處理器,或者來自其它處理器。例如,如果高速緩存112A中的高速緩存線具有共享(S)狀態(tài),因?yàn)榇鎯υ诟咚倬彺婢€中的數(shù)據(jù)的副本也存儲在高速緩存112B中,所以當(dāng)處理核110A寫入對應(yīng)于存儲在高速緩存112A中的高速緩存線的主存儲器的位置時,包括高速緩存無效請求的窺探消息需要發(fā)送到SoC 100上的全部高速緩存(及其高速緩存控制器)以通知全部高速緩存如果它們有副本就將它們的副本都無效化。這是因?yàn)?,處理?10A不知道哪個高速緩存是共享高速緩存,并且因此,處理核110A不得不經(jīng)由處理器間互連106來通知全部的高速緩存,但是,實(shí)際上,處理核110A僅需要經(jīng)由核間互連116A來通知高速緩存112B。因此,由于非區(qū)別性的共享(S)狀態(tài)而在處理器間互聯(lián)106上產(chǎn)生了不必要的流量。

本公開的實(shí)施例可以包括處理器,該處理器包括高速緩存控制器,高速緩存控制器根據(jù)擴(kuò)展MESI協(xié)議來管理處理器的高速緩存。擴(kuò)展MESI協(xié)議可以將共享狀態(tài)劃分成兩個或更多個具體的共享狀態(tài)以標(biāo)識存儲在高速緩存線中的數(shù)據(jù)如何被共享。在一個實(shí)施例中,擴(kuò)展MESI協(xié)議可以包括高速緩存線的“集群共享”(CS)狀態(tài),表明存儲在高速緩存線中的數(shù)據(jù)由同一核集群內(nèi)的另一高速緩存共享,而不是核集群之外的。例如,如果存儲在高速緩存112A中的高速緩存線中的數(shù)據(jù)被標(biāo)記為CS狀態(tài),則存儲在該高速緩存線中的數(shù)據(jù)可由核集群108A內(nèi)的高速緩存112B,114A共享,而不是核集群108A之外的。

在一個實(shí)施例中,擴(kuò)展MESI協(xié)議還可以包括高速緩存線的“處理器共享”(PS)狀態(tài),表明存儲在該高速緩存線中的數(shù)據(jù)可由同一處理器內(nèi)的另一核集群中的另一高速緩存共享,而不是處理器之外的。例如,如果存儲在高速緩存112A中的高速緩存線中的數(shù)據(jù)被標(biāo)記為PS狀態(tài),則存儲在高速緩存線中的數(shù)據(jù)可在高速緩存112C,112D,116B,112B或114A中共享,而不是在處理器102A之外的。

在一個實(shí)施例中,擴(kuò)展MESI協(xié)議還可以包括高速緩存線的“全局共享”(GS)狀態(tài),表明存儲在該高速緩存線中的數(shù)據(jù)可由SoC 100中的任何高速緩存共享,包括另一處理器中的高速緩存。例如,如果存儲在高速緩存112A的高速緩存線中的數(shù)據(jù)被標(biāo)記為GS狀態(tài),則數(shù)據(jù)可由任意高速緩存中的高速緩存線來共享。

除了CS、PS和GS狀態(tài)之外,在一個實(shí)施例中,擴(kuò)展MESI協(xié)議還可以包括“修改”(M)、“獨(dú)占”(E)和“無效”(I)狀態(tài)。類似于MESI協(xié)議,M狀態(tài)表明存儲在高速緩存線中的數(shù)據(jù)已經(jīng)從主存儲器104中所存儲的副本修改,并且因此,需要在未來的時間寫回主存儲器。E狀態(tài)指示,存儲在高速緩存線中的數(shù)據(jù)未被其它高速緩存共享,且與主存儲器104一致。I狀態(tài)指示存儲在高速緩存線中的數(shù)據(jù)是無效的,因?yàn)榇鎯υ谥鞔鎯ζ髦械膶?yīng)的數(shù)據(jù)已經(jīng)被重寫。

因?yàn)閷⒐蚕頎顟B(tài)分類成集群共享、處理器共享和全局共享,高速緩存控制器120A,120B可以基于共享狀態(tài)而將一些高速緩存管理請求(例如,高速緩存無效請求)發(fā)送到選定的互連,而不是總是全局地廣播。這可以減少互連結(jié)構(gòu)系統(tǒng)上的窺探流量。在一個實(shí)施例中,如果高速緩存線被標(biāo)記為CS狀態(tài),響應(yīng)于接收到將主存儲器104中所存儲的數(shù)據(jù)重寫到對應(yīng)于高速緩存線的地址處的指令,高速緩存控制器可以經(jīng)由核間互連將高速緩存無效請求廣播到核集群內(nèi)的高速緩存。例如,如果高速緩存112A中的高速緩存線被標(biāo)記為CS狀態(tài)且高速緩存控制器120A檢測到核110A在主存儲器104中對應(yīng)于高速緩存線的位置處的寫操作,則高速緩存控制器120可以經(jīng)由核間互連114A將高速緩存無效請求發(fā)送到高速緩存112B,114A。這樣,在集群108A內(nèi)限制了窺探流量。

在一個實(shí)施例中,如果高速緩存112A中的高速緩存線被標(biāo)記為PS狀態(tài)且高速緩存控制器120A檢測到核110A在主存儲器104中對應(yīng)于存儲于高速緩存線中的地址的位置處的寫操作,則高速緩存控制器120可以經(jīng)由集群間互連118A將高速緩存無效請求發(fā)送到處理器102A內(nèi)的高速緩存112B-112D,114A-114B。這樣,在處理器102A內(nèi)限制了窺探流量。

高速緩存命中會導(dǎo)致高速緩存線將其狀態(tài)變成擴(kuò)展MESI狀態(tài)之一。高速緩存命中是來自主存儲器中對應(yīng)于高速緩存線的位置處的另一高速緩存的讀探頭。在將數(shù)據(jù)提供給請求者之前,高速緩存控制器可以根據(jù)高速緩存線的當(dāng)前狀態(tài)和高速緩存命中的請求者的位置而將高速緩存線的狀態(tài)設(shè)定成CS、PS或GS狀態(tài)中的一個。請求者的身份可以是讀探頭的部分。

圖3是說明擴(kuò)展MESI協(xié)議的不同狀態(tài)之間的過渡的狀態(tài)圖。在一個實(shí)施例中,如果高速緩存線的當(dāng)前狀態(tài)是“獨(dú)占”(E),則高速緩存控制器可以響應(yīng)于高速緩存控制器檢測到高速緩存命中且標(biāo)識出在同一核集群內(nèi)的另一高速緩存是高速緩存命中的發(fā)起者而將狀態(tài)變成“集群共享”(CS),或者響應(yīng)于高速緩存控制器檢測到高速緩存命中且標(biāo)識出在核集群外但是在同一處理器內(nèi)的另一高速緩存是高速緩存命中的發(fā)起者而將狀態(tài)變成“處理器共享”(PS),或者響應(yīng)于高速緩存控制器檢測到高速緩存命中且標(biāo)識出在另一處理器內(nèi)的高速緩存是高速緩存命中的發(fā)起者而將狀態(tài)變成“全局共享”(GS)。

在一個實(shí)施例中,如果高速緩存線的當(dāng)前狀態(tài)是CS,則高速緩存控制器可以響應(yīng)于檢測到來自核集群之外但是在同一處理器內(nèi)的另一高速緩存的高速緩存命中而將狀態(tài)變成PS,或者響應(yīng)于來自另一處理器的高速緩存命中而將狀態(tài)變成GS。

在一個實(shí)施例中,如果高速緩存線的當(dāng)前狀態(tài)是PS,則高速緩存控制器可以響應(yīng)于來自另一處理器的高速緩存命中而將狀態(tài)變成GS。然而,來自同一高速緩存集群內(nèi)的另一個高速緩存的高速緩存命中不改變高速緩存線的狀態(tài)。

在一個實(shí)施例中,如果高速緩存線是CS、PS或GS狀態(tài)之一,則響應(yīng)于檢測到高速緩存內(nèi)的寫命中(即,寫入一個其內(nèi)容尚未發(fā)送到存儲器的高速緩存),高速緩存控制器可以首先對于集群內(nèi)、處理器內(nèi)的全部高速緩存或全局地廣播高速緩存無效請求以請求高速緩存線中所存儲的數(shù)據(jù)的副本的無效。此后,高速緩存控制器可允許處理核寫入高速緩存線,并且將高速緩存線的標(biāo)記變成“修改”(M)。因?yàn)楦咚倬彺鏌o效請求的廣播選擇性地針對高速緩存集群、處理器中的高速緩存或針對全局,所以可以減少互連結(jié)構(gòu)系統(tǒng)上的窺探流量。

在一個實(shí)施例中,如果高速緩存線響應(yīng)于檢測到將存儲在高速緩存線中的副本無效的高速緩存無效請求而處于CS、PS或GS狀態(tài)之一,則高速緩存控制器可以將高速緩存線的標(biāo)記從CS、PS或GS變成“無效”(I)。

圖4A是根據(jù)本公開的實(shí)施例的將高速緩存線的標(biāo)記分配給共享狀態(tài)之一的方法的框圖。方法400可通過處理邏輯來執(zhí)行,該處理邏輯可以包括硬件(例如,電路系統(tǒng)、專用邏輯、可編程邏輯、微碼等)、軟件(例如,運(yùn)行于SoC、通用計算機(jī)系統(tǒng)或?qū)S脵C(jī)器上的指令)、固件或其組合。在一個實(shí)施例中,方法400可以部分地通過如圖1所示的高速緩存控制器120A-120B的處理邏輯來執(zhí)行。

為說明的簡化,方法400被描繪且描述為一系列動作。然而,根據(jù)本公開的動作可以按多種順序發(fā)生和/或同時發(fā)生,以及與其它未在此呈現(xiàn)和描述的其它動作一起發(fā)生。此外,根據(jù)本公開主題,不是所有圖示的動作可能被執(zhí)行來實(shí)現(xiàn)方法400。另外,本領(lǐng)域技術(shù)人員將理解且意識到,方法400可以可替代地經(jīng)由狀態(tài)圖或事件而表示為一系列互相關(guān)聯(lián)的狀態(tài)。

參考圖4A,在402處,操作開始。在404處,處理器的高速緩存控制器可以針對讀存儲在處理器中的核的高速緩存線中的數(shù)據(jù)的請求來監(jiān)視處理設(shè)備的互連結(jié)構(gòu)系統(tǒng)。如果高速緩存線包含所請求的數(shù)據(jù),則高速緩存控制器檢測到高速緩存命中并且可能需要將數(shù)據(jù)提供給請求者以避免從存儲器中取回數(shù)據(jù)。可以響應(yīng)于處理器或另一處理器的第二核讀主存儲器的嘗試而生成該請求。并非是從主存儲器取回數(shù)據(jù),第二核(經(jīng)由另一高速緩存控制器或同一高速緩存控制器)可以首先將讀探頭發(fā)送到SoC中的高速緩存以搜索本地高速緩存中所存儲的數(shù)據(jù)的副本。

響應(yīng)于檢測到請求,在406處,高速緩存控制器可以確定讀的請求來自何處。在一個實(shí)施例中,高速緩存控制器基于接收自互連結(jié)構(gòu)系統(tǒng)的窺探(讀探頭)來確定請求的請求者的身份。窺探可以包括請求處理器的標(biāo)識和請求處理器內(nèi)的請求核的標(biāo)識。

響應(yīng)于讀請求來自接收高速緩存的同一核集群內(nèi)的請求核的判定,在412處,高速緩存控制器可以將高速緩存線的標(biāo)記段中所存儲的標(biāo)記從“獨(dú)占”設(shè)定成“集群共享”。響應(yīng)于讀請求來自同一處理器內(nèi)的另一核集群內(nèi)的核的判定,在410處,高速緩存控制器可以將存儲在高速緩存線的標(biāo)記段內(nèi)的標(biāo)記從“獨(dú)占”或“集群共享”設(shè)定成“處理器共享”。響應(yīng)于讀請求來自另一處理器中的核的判定,在408處,高速緩存控制器可以將存儲在高速緩存線的標(biāo)記段中的標(biāo)記從“獨(dú)占”、“集群共享”或“處理器共享”設(shè)定成“全局共享”。

在將高速緩存線的標(biāo)記段設(shè)定成“集群共享”、“處理器共享”或“全局共享”中的一個之后,在414處,高速緩存控制器可以將存儲在高速緩存線中的數(shù)據(jù)傳輸給請求者以存儲在請求者的高速緩存中。高速緩存控制器可以在用于“集群共享”的核間互連、在用于“處理器共享”的集群間互連以及在用于“全局共享”的處理器間互連上傳輸數(shù)據(jù)。

圖4B是根據(jù)本公開的實(shí)施例的基于存儲在高速緩存線中的標(biāo)記來廣播高速緩存無效請求的方法的框圖。方法420可以通過可以包含硬件(例如,電路系統(tǒng)、專用邏輯、可編程邏輯、微碼等)、軟件(例如運(yùn)行于處理設(shè)備、通用計算機(jī)系統(tǒng)或?qū)S脵C(jī)器上的指令)、固件或其組合的處理邏輯來執(zhí)行。在一個實(shí)施例中,方法400可以部分地通過如圖1所示的高速緩存控制器120A-120B的處理邏輯來執(zhí)行。

為說明簡化,方法400被描繪且描述為一系列動作。然而,根據(jù)本公開的動作可以按各種順序發(fā)生和/或同時發(fā)生,以及與其它未在此呈現(xiàn)和描述的動作一起發(fā)生。此外,根據(jù)本公開主題,不是所有圖示的動作可能被執(zhí)行來實(shí)現(xiàn)方法400。另外,本領(lǐng)域技術(shù)人員將理解且意識到,方法420可以可替代地經(jīng)由狀態(tài)圖或事件而表示為一系列互相關(guān)聯(lián)的狀態(tài)。

參考圖4B,在422處,操作開始。在424處,處理器內(nèi)的核的高速緩存的高速緩存控制器可以接收重寫高速緩存線中所存儲的數(shù)據(jù)的副本的請求。寫操作會在高速緩存線中所存儲的數(shù)據(jù)與主存儲器所存儲的數(shù)據(jù)之間創(chuàng)建差異。在426處,高速緩存控制器可以確定高速緩存線的標(biāo)記段中所存儲的標(biāo)記。如果標(biāo)記指示“獨(dú)占”或“修改”,則高速緩存線中所存儲的數(shù)據(jù)不具有其它高速緩存中所存儲的副本。然而,如果標(biāo)記指示共享狀態(tài)之一,則高速緩存控制器可能需要基于標(biāo)記段的標(biāo)記將高速緩存無效請求送出到那些共享高速緩存。

響應(yīng)于標(biāo)記段的標(biāo)記是“集群共享”的判定,在432處,高速緩存控制器可以在核間互連上將高速緩存無效請求發(fā)送到核集群內(nèi)的全部高速緩存。響應(yīng)于標(biāo)記段的標(biāo)記是“處理器共享”的判定,在428處,高速緩存控制器可以在集群間互連上將高速緩存無效請求發(fā)送到處理器內(nèi)的全部的高速緩存。響應(yīng)于標(biāo)記段的標(biāo)記是“全局共享”的判定,在430處,高速緩存控制器可以將高速緩存無效請求發(fā)送到高速緩存所在的SoC中的全部高速緩存。這樣,高速緩存無效請求根據(jù)共享狀態(tài)而針對具體的域,從而減少了窺探流量。在發(fā)送高速緩存無效請求之后,在434處,高速緩存控制器可以將高速緩存線的標(biāo)記段的標(biāo)記設(shè)定成“修改”。

在一個實(shí)施例中,高速緩存相干協(xié)議可以包括除了“修改”、“獨(dú)占”、“集群共享”、“處理器共享”、“全局共享”和“無效”狀態(tài)之外的附加狀態(tài)。根據(jù)本公開的一個實(shí)施例,高速緩存相干協(xié)議可以包括附加的“轉(zhuǎn)發(fā)”(F)狀態(tài),指示被標(biāo)記有“轉(zhuǎn)發(fā)”狀態(tài)的一個高速緩存線負(fù)責(zé)將數(shù)據(jù)轉(zhuǎn)發(fā)給數(shù)據(jù)的請求者。這樣,請求者僅接收來自標(biāo)記有“轉(zhuǎn)發(fā)”的一個高速緩存線的一個副本,而不是接收來自保持?jǐn)?shù)據(jù)的不同高速緩存線的同一數(shù)據(jù)的多個副本。在一個實(shí)施例中,“轉(zhuǎn)發(fā)”狀態(tài)可以拆分成“集群轉(zhuǎn)發(fā)”(CF)、“處理器轉(zhuǎn)發(fā)”(PF)、或“全局轉(zhuǎn)發(fā)”(GF),使得高速緩存控制器可以基于請求者是否在核集群內(nèi),在處理器內(nèi),或者來自另一處理器而判定是否轉(zhuǎn)發(fā)數(shù)據(jù)。這樣,高速緩存控制器可使用最高效的高速緩存來轉(zhuǎn)發(fā)數(shù)據(jù)。

根據(jù)本公開的另一實(shí)施例,高速緩存相干協(xié)議可以包括附加的“擁有”狀態(tài),指示高速緩存是多個高速緩存中的具有高速緩存線的副本的一個高速緩存,但是具有對該高速緩存線做出改變的獨(dú)占權(quán)力。具有“擁有”狀態(tài)的高速緩存可能需要將改變廣播到共享高速緩存線的所有其它高速緩存。在一個實(shí)施例中,“擁有”狀態(tài)還可以拆分成“集群擁有”(CO)、“處理器擁有”(PO)或“全局擁有”(GO),使得高速緩存控制器根據(jù)高速緩存線是“集群擁有”、“處理器擁有”或是“全局擁有”而將改變廣播到核集群中的高速緩存線、處理器中或者全局地廣播。

圖5A是示出了根據(jù)本公開的一個實(shí)施例實(shí)現(xiàn)包括異構(gòu)核的處理設(shè)備的處理器500的微架構(gòu)的框圖。具體地,處理器500描繪了根據(jù)本公開的至少一個實(shí)施例的處理器中所要包含的有序架構(gòu)核和寄存器重命名邏輯、無序發(fā)布/執(zhí)行邏輯。

處理器500包括與執(zhí)行引擎單元550耦合的前端單元530,并且兩者與存儲器單元570耦合。處理器500可以包括精減指令集計算(RISC)核、復(fù)雜指令集計算(CISC)核、極長指令字(VLIW)核或混合或可替代的核類型。作為又一選擇,處理器500可以包括專用核,諸如例如網(wǎng)絡(luò)或通信核、壓縮引擎、圖形核等。在一個實(shí)施例中,處理器500可以是多核處理器或者可以是多處理器系統(tǒng)的部分。

前端單元500包括與指令高速緩存單元534耦合的分支預(yù)測單元532,指令高速緩存單元534與指令轉(zhuǎn)換后備緩沖器(TLB)536耦合,TLB 536與取指令單元538耦合,取指令單元538與譯碼單元540耦合。譯碼單元540(還稱為譯碼器)可以對指令譯碼,并且生成從原始指令譯碼的、或者以其它方式從原始指令反映的或者從原始指令得到的一個或多個微操作、微碼輸入點(diǎn)、微指令、其它指令或其它控制信號作為輸出。譯碼器540可以利用各種不同的機(jī)制來實(shí)現(xiàn)。適合的機(jī)制的示例包括但不限于,查找表、硬件實(shí)現(xiàn)方式、可編程邏輯陣列(PLA)、微碼只讀存儲器(ROM)等。指令高速緩存單元534進(jìn)一步與存儲器單元570耦合。譯碼單元540與執(zhí)行引擎單元550中的重命名/分配器單元552耦合。

執(zhí)行引擎單元550包括與引退單元554耦合的重命名/分配器單元552以及一組一個或多個調(diào)度器單元556。調(diào)度器單元556表示任意數(shù)量的不同的調(diào)度器,包括預(yù)留站(RS)、中央指令窗等。調(diào)度器單元556與物理寄存器文件單元558耦合。每個物理寄存器文件單元558表示一個或多個物理寄存器文件,其中不同的物理寄存器文件存儲一個或多個不同的數(shù)據(jù)類型,例如標(biāo)量整數(shù)、標(biāo)量浮點(diǎn)數(shù)、壓縮整數(shù)、壓縮浮點(diǎn)數(shù)、向量整數(shù)、向量浮點(diǎn)數(shù)等,存儲狀態(tài)(例如,作為待執(zhí)行的下一指令的地址的指令指針),等等。物理寄存器文件單元558由引退單元554覆蓋以說明可以實(shí)現(xiàn)寄存器重命名和無序執(zhí)行的各種方式(例如,使用重排序緩沖器和引退寄存器文件,使用未來文件,歷史緩沖器以及引退寄存器文件;使用寄存器地圖和寄存器池;等等)。

在一個實(shí)現(xiàn)方式中,處理器500可以與關(guān)于圖2所描述的處理器202相同。

一般地,架構(gòu)的寄存器從處理器外或者從編程者的視角是可見的。寄存器不限于任何已知的特定類型的電路。各種不同類型的寄存器是適合的,只要它們能夠存儲和提供本文所描述的數(shù)據(jù)即可。適合的寄存器的示例包括但不限于專用物理寄存器、使用寄存器重命名的動態(tài)分配的物理寄存器、專用物理寄存器和動態(tài)分配的物理寄存器的組合,等等。引退單元554和物理寄存器文件單元558與執(zhí)行集群560耦合。執(zhí)行集群560包括一組一個或多個執(zhí)行單元562和一組一個或多個存儲器訪問單元564。執(zhí)行單元562可以實(shí)施各種操作(例如,移位、加、減、乘)且操作于各種類型的數(shù)據(jù)(例如,標(biāo)量浮點(diǎn)數(shù)、壓縮整數(shù)、壓縮浮點(diǎn)數(shù)、向量整數(shù)、向量浮點(diǎn)數(shù))。

雖然一些實(shí)施例可以包括專用于特定的功能或功能組的多個執(zhí)行單元,但是其它實(shí)施例可以僅包括一個執(zhí)行單元或者均執(zhí)行全部功能的多個執(zhí)行單元。調(diào)度器單元556、物理寄存器文件單元558和執(zhí)行集群560顯示為可能有多個,因?yàn)橐恍?shí)施例產(chǎn)生了用于某些類型的數(shù)據(jù)/操作的單獨(dú)的流水線(例如,標(biāo)量整數(shù)流水線、標(biāo)量浮點(diǎn)數(shù)/壓縮整數(shù)/壓縮浮點(diǎn)數(shù)/向量整數(shù)/向量浮點(diǎn)數(shù)流水線和/或存儲器訪問流水線,每個具有它們自己的調(diào)度器單元、物理寄存器文件單元、和/或執(zhí)行集群,并且在單獨(dú)的存儲器訪問流水線的情況下,實(shí)現(xiàn)其中僅該流水線的執(zhí)行集群具有存儲器訪問單元564的一些實(shí)施例)。還應(yīng)當(dāng)理解,在使用單獨(dú)的流水線的情況下,這些流水線中的一個或多個可以是無序發(fā)布/執(zhí)行,其余是有序的。

一組存儲器訪問單元564與存儲器單元570耦合,存儲器單元570可以包括數(shù)據(jù)預(yù)取器580、數(shù)據(jù)TLB單元572、數(shù)據(jù)高速緩存單元(DCU)574和級2(L2)高速緩存單元576,僅列舉了幾個示例。在一些實(shí)施例中,DCU 574還稱為第一級數(shù)據(jù)高速緩存(L1高速緩存)。DCU 574可以處置多個未解決的高速緩存丟失以及繼續(xù)服務(wù)進(jìn)入的存儲和負(fù)荷。DCU 574還支持維護(hù)高速緩存相干性。數(shù)據(jù)TLB單元572是用于通過映射虛擬和物理地址空間來改善虛擬地址轉(zhuǎn)換速度的高速緩存。在一個示范性的實(shí)施例中,存儲器訪問單元564可以包括負(fù)荷單元、存儲地址單元和存儲數(shù)據(jù)單元,其中每個與存儲器單元570中的數(shù)據(jù)TLB單元572耦合。L2高速緩存單元576可以與一個或多個其它級的高速緩存耦合且最終與主存儲器耦合。

在一個實(shí)施例中,數(shù)據(jù)預(yù)取器580通過自動預(yù)測程序?qū)⒁M(fèi)哪些數(shù)據(jù)來推測地加載/預(yù)取數(shù)據(jù)到DCU 574。預(yù)取可以是指在數(shù)據(jù)實(shí)際上被處理器需要之前將存儲器層級的一個存儲器位置(例如,較低級的高速緩存或存儲器)中所存儲的數(shù)據(jù)轉(zhuǎn)移到更靠近(例如,產(chǎn)生較低的訪問延遲)處理器的較高級的存儲器位置。更具體地,預(yù)取可以是指在處理器發(fā)布對所返回的具體數(shù)據(jù)的需求之前將數(shù)據(jù)從較低級高速緩存/存儲器中的一個早前取回到數(shù)據(jù)高速緩存和/或預(yù)取緩沖器。

處理器500可以支持一個或多個指令集(例如,x86指令集(具有已經(jīng)添加了較新版本的一些擴(kuò)展);加利福尼亞的森尼韋爾的MIPS Technologies的MIPS指令集;加利福尼亞的森尼韋爾的ARM Holdings的ARM指令集(具有可選的附加擴(kuò)展,如NEON)。

應(yīng)當(dāng)理解的是,核可以支持多線程(執(zhí)行兩個或更多個并行組的操作或線程),并且可以通過多種方式來這樣做,包括時間切片多線程、同時多線程(其中單個物理核為物理核同時多線程的各個線程提供了邏輯核)、或其組合(例如,時間切片取得以及譯碼以及此后的同時多線程,例如在Hyperthreading技術(shù)中)。

雖然寄存器重命名是在無序執(zhí)行的上下文中描述的,但是應(yīng)當(dāng)理解,寄存器重命名可以在有序架構(gòu)中使用。雖然處理器的圖示的實(shí)施例還包括單獨(dú)的指令和數(shù)據(jù)高速緩存單元以及共享L2高速緩存單元,但是可替代的實(shí)施例可以具有用于指令和數(shù)據(jù)的單個內(nèi)部高速緩存,諸如例如級別1(L1)內(nèi)部高速緩存,或者多級的內(nèi)部高速緩存。在一些實(shí)施例中,該系統(tǒng)可以包括內(nèi)部高速緩存和在核和/或處理器之外的外部高速緩存的組合??商娲?,全部的高速緩存可以在核和/或處理器之外。

圖5B是示出了根據(jù)本公開的一些實(shí)施例由圖5A的處理設(shè)備500實(shí)現(xiàn)的有序流水線和寄存器重命名階段、無序發(fā)布/執(zhí)行流水線的框圖。圖5B中的實(shí)線框示出有序流水線,而虛線框示出了寄存器重命名、無序發(fā)布/執(zhí)行流水線。在圖5B中,處理器流水線500包括取階段502、長度譯碼階段504、譯碼階段506、分配階段508、重命名階段510、調(diào)度(還稱為調(diào)遣或發(fā)布)階段512、寄存器讀/存儲器讀階段514、執(zhí)行階段516、寫回/存儲器寫階段518、異常處理階段522和提交階段524。在一些實(shí)施例中,階段502-524的排序可以不同于所示的且不限于圖5B中所示的具體的排序。

圖6示出了根據(jù)本公開的一個實(shí)施例的包括混合核的處理器600的微架構(gòu)的框圖。在一些實(shí)施例中,根據(jù)一個實(shí)施例的指令可以實(shí)現(xiàn)以操作于具有字節(jié)、字、雙字、四字等的大小的數(shù)據(jù)元素以及諸如單精度整數(shù)和雙精度整數(shù)和浮點(diǎn)數(shù)數(shù)據(jù)類型的數(shù)據(jù)類型。在一個實(shí)施例中,有序前端601是處理器600的取待執(zhí)行指令且準(zhǔn)備指令隨后在處理器流水線中使用的部分。

前端601可以包括多個單元。在一個實(shí)施例中,指令預(yù)取器626從存儲器取指令且將指令饋送到指令譯碼器628,指令譯碼器628進(jìn)而對指令譯碼或解釋指令。例如,在一個實(shí)施例中,譯碼器將接收到的指令譯碼成機(jī)器能夠執(zhí)行的稱為“微指令”或“微操作”(還稱為micro op或uop)的一個或多個操作。在其它實(shí)施例中,譯碼器將指令解析成微架構(gòu)使用來實(shí)施根據(jù)一個實(shí)施例的操作的操作碼和對應(yīng)的數(shù)據(jù)和控制字段。在一個實(shí)施例中,蹤跡高速緩存630取得譯碼后的uop且將它們匯編成uop隊列634中的程序有序序列或蹤跡以便執(zhí)行。當(dāng)蹤跡高速緩存630遇到復(fù)雜指令時,微碼ROM 632提供完成操作所需的uop。

一些指令轉(zhuǎn)換成單一micro-op,而其它需要多個micro-op來完成全部操作。在一個實(shí)施例中,如果需要多于四個micro-op來完成指令,則譯碼器628訪問微碼ROM 632來完成指令。對于一個實(shí)施例,指令可以譯碼成少量的micro op,用于在指令譯碼器628中處理。在另一實(shí)施例中,如果需要多個micro-op來完成操作,則指令可以存儲在微碼ROM 632內(nèi)。蹤跡高速緩存630參考輸入點(diǎn)可編程邏輯陣列(PLA)來確定用于從微碼ROM 632中讀微碼序列以完成根據(jù)一個實(shí)施例的一個或多個指令的正確的微指令指針。在微碼ROM 632結(jié)束對指令的定序micro-op之后,機(jī)器的前端601恢復(fù)從蹤跡高速緩存630取micro-op。

指令在無序執(zhí)行引擎603中被準(zhǔn)備以便執(zhí)行。無序執(zhí)行邏輯具有多個緩沖器來平滑化且重排序指令流以便隨著指令流順著流水線前進(jìn)且被調(diào)度以執(zhí)行而優(yōu)化性能。分配器邏輯分配每個uop為了執(zhí)行而所需的機(jī)器緩沖器和資源。寄存器重命名邏輯將邏輯寄存器重命名到寄存器文件中的條目上。分配器還分配用于兩個uop隊列中的一個中的每個uop的條目,一個用于存儲器操作,一個用于非存儲器操作,在指令調(diào)度器之前:存儲器調(diào)度器、快速調(diào)度器602、慢速/普通浮點(diǎn)調(diào)度器604以及簡單浮點(diǎn)數(shù)調(diào)度器606。uop調(diào)度器602、604、606基于它們相關(guān)的輸入寄存器操作數(shù)源的就緒程度和uop完成它們的操作所需的執(zhí)行資源的可用性來判定uop何時準(zhǔn)備執(zhí)行。一個實(shí)施例的快速調(diào)度器602能夠在主時鐘周期的每半個上調(diào)度,而其它調(diào)度器在每個主處理器時鐘周期內(nèi)僅能調(diào)度一次。調(diào)度器裁定調(diào)遣端口以調(diào)度用于執(zhí)行的uop。

寄存器文件608,610位于調(diào)度器602、604、606與執(zhí)行塊611中的執(zhí)行單元612、614、616、618、620、622、624之間。存在單獨(dú)的寄存器文件608,610,分別用于整數(shù)操作和浮點(diǎn)數(shù)操作。一個實(shí)施例的每個寄存器文件608,610還包括旁通網(wǎng)絡(luò),其能夠繞過或者僅轉(zhuǎn)發(fā)尚未寫入寄存器文件的完成的結(jié)果到新的相關(guān)uop。整數(shù)寄存器文件608和浮點(diǎn)數(shù)寄存器文件610還能夠?qū)?shù)據(jù)與其它進(jìn)行通信。對于一個實(shí)施例,整數(shù)寄存器文件608被拆分成兩個單獨(dú)的寄存器文件,一個寄存器文件用于低階32位數(shù)據(jù),第二寄存器文件用于高階32位數(shù)據(jù)。一個實(shí)施例的浮點(diǎn)數(shù)寄存器文件610具有128位寬的條目,因?yàn)楦↑c(diǎn)數(shù)指令通常具有寬度從64位到128位的操作數(shù)。

執(zhí)行塊611包含執(zhí)行單元612、614、616、618、620、622、624,在執(zhí)行單元中指令被實(shí)際地執(zhí)行。該段包含了寄存器文件608,610,其中存儲有微指令需要執(zhí)行的整數(shù)和浮點(diǎn)數(shù)數(shù)據(jù)操作數(shù)值。一個實(shí)施例的處理器600由如下多個執(zhí)行單元構(gòu)成:地址生成單元(AGU)612、AGU 614、快速ALU 616、快速ALU 618、慢速ALU 620、浮點(diǎn)ALU 622、浮點(diǎn)移動單元624。對于一個實(shí)施例,浮點(diǎn)執(zhí)行塊622、624執(zhí)行浮點(diǎn)數(shù)、MMX、SIMD和SSE,或其它操作。一個實(shí)施例的浮點(diǎn)數(shù)ALU 622包括64位乘64位浮點(diǎn)數(shù)除法器來執(zhí)行除法、平方根以及余數(shù)micro-op。對于本公開的實(shí)施例,涉及到浮點(diǎn)數(shù)值的指令可以利用浮點(diǎn)數(shù)硬件來處理。

在一個實(shí)施例中,ALU操作進(jìn)入高速ALU執(zhí)行單元616、618。一個實(shí)施例的快速ALU 616,618能夠利用半個時鐘周期的有效延遲來執(zhí)行快速操作。對于一個實(shí)施例,最復(fù)雜的整數(shù)操作進(jìn)入慢速ALU 620,因?yàn)槁貯LU 620包括用于長延遲類型的操作(例如乘法器、移位、標(biāo)記邏輯和分支處理)的整數(shù)執(zhí)行硬件。存儲器負(fù)荷/存儲操作由AGU 612,614來執(zhí)行。對于一個實(shí)施例,整數(shù)ALU 616,618,620是在對64位數(shù)據(jù)操作數(shù)執(zhí)行整數(shù)操作的上下文中描述的。在可替代的實(shí)施例中,能夠?qū)崿F(xiàn)ALU 616,618,620來支持各種數(shù)據(jù)位,包括16,32,128,256等。類似地,浮點(diǎn)數(shù)單元622,624可被實(shí)現(xiàn)以支持具有各種寬度的位的一系列操作數(shù)。對于一個實(shí)施例,浮點(diǎn)數(shù)單元622,624能夠聯(lián)合SIMD和多媒體指令而操作于128位寬的壓縮數(shù)據(jù)操作數(shù)上。

在一個實(shí)施例中,在父負(fù)荷已經(jīng)結(jié)束執(zhí)行之前,uop調(diào)度器602,604,606調(diào)遣相關(guān)的操作。由于uop在處理器600中被推測地調(diào)度和執(zhí)行,所以處理器600還包括處理存儲器丟失的邏輯。如果數(shù)據(jù)負(fù)荷丟失在數(shù)據(jù)高速緩存中,則在流水線中存在為調(diào)度器留有臨時不正確數(shù)據(jù)的、處于飛行中的相關(guān)操作。重放機(jī)制跟蹤且重新執(zhí)行使用不正確數(shù)據(jù)的指令。僅相關(guān)操作需要被重復(fù),并且允許完成獨(dú)立的操作。處理器的一個實(shí)施例的調(diào)度器和重放機(jī)制還設(shè)計成捕獲用于文本串比較操作的指令序列。

處理器600還包括根據(jù)本公開的實(shí)施例實(shí)現(xiàn)用于存儲器區(qū)別的存儲地址預(yù)測的邏輯。在一個實(shí)施例中,處理器600的執(zhí)行塊611可以包括用于實(shí)現(xiàn)用于存儲器區(qū)別的存儲地址預(yù)測的存儲地址預(yù)測器(未示出)。

術(shù)語“寄存器”可以是指被用作指令的部分以標(biāo)識操作數(shù)的板上處理器存儲位置。換言之,寄存器可以是那些能從處理器外(從編程者的視角)使用的那些寄存器。然而,實(shí)施例的寄存器不應(yīng)在含義上限于特定類型的電路。相反,實(shí)施例的寄存器能夠存儲和提供數(shù)據(jù),以及執(zhí)行本文所述的功能。本文所述的寄存器能夠通過處理器內(nèi)的電路系統(tǒng)利用任意多個不同的技術(shù)來實(shí)現(xiàn),所述技術(shù)例如為專用物理寄存器、使用寄存器重命名的動態(tài)分配物理寄存器、專用和動態(tài)分配物理寄存器的組合,等等。在一個實(shí)施例中,整數(shù)寄存器存儲三十二位整數(shù)數(shù)據(jù)。一個實(shí)施例的寄存器文件還包含用于壓縮數(shù)據(jù)的八個多媒體SIMD寄存器。

對于下面的論述,寄存器應(yīng)理解為設(shè)計成保存壓縮數(shù)據(jù)的數(shù)據(jù)寄存器,例如利用來自加利福尼亞的圣塔克拉拉的英特爾公司的MMX技術(shù)實(shí)現(xiàn)的微處理器中的64位寬的MMXTM寄存器(在一些實(shí)例中也稱為‘mm’寄存器)。這些以整數(shù)和浮點(diǎn)數(shù)形式可用的MMX寄存器能夠利用伴隨SIMD和SSE指令的壓縮數(shù)據(jù)元素來操作。類似地,與SSE2,SSE3,SSE4或超越(通稱為“SSEx”)技術(shù)有關(guān)的128位寬的XMM寄存器還能夠用于保存這些壓縮數(shù)據(jù)操作數(shù)。在一個實(shí)施例中,在存儲壓縮數(shù)據(jù)和整數(shù)數(shù)據(jù)時,寄存器無需區(qū)分兩種數(shù)據(jù)類型。在一個實(shí)施例中,整數(shù)和浮點(diǎn)數(shù)要么包含在同一寄存器文件中要么包含在不同的寄存器文件中。此外,在一個實(shí)施例中,浮點(diǎn)數(shù)和整數(shù)數(shù)據(jù)可以存儲在不同的寄存器或相同的寄存器中。

現(xiàn)在參考圖7,示出了說明可使用本公開的實(shí)施例的系統(tǒng)700的框圖。如圖7所示,微處理器系統(tǒng)700是點(diǎn)對點(diǎn)互連系統(tǒng),并且包括經(jīng)由點(diǎn)對點(diǎn)互連750耦合的第一處理器770和第二處理器780。雖然顯示僅有兩個處理器770,780,但是應(yīng)當(dāng)理解,本公開的實(shí)施例的范圍不限于此。在其它實(shí)施例中,在給定的處理器中可以存在一個或多個附加的處理器。在一個實(shí)施例中,多處理器系統(tǒng)700可以實(shí)現(xiàn)本文所述的混合核。

處理器770和780顯示為分別包括集成的存儲器控制器單元772和782。處理器770還包括點(diǎn)對點(diǎn)(P-P)接口776和778作為其總線控制器單元的部分;類似地,第二處理器780包括P-P接口786和788。處理器770,780可以利用P-P接口電路778,788經(jīng)由點(diǎn)對點(diǎn)(P-P)接口750來交換信息。如圖7所示,IMC 772和782將處理器與相應(yīng)的存儲器耦合,即存儲器732和存儲器734,存儲器732和存儲器734可以是本地地附接到相應(yīng)的處理器的主存儲器的部分。

處理器770,780可以各自利用點(diǎn)對點(diǎn)接口電路776,794,786,798經(jīng)由單個的P-P接口752,754與芯片組790交換信息。芯片組790還可以經(jīng)由高性能圖形接口739與高性能圖形電路738來交換信息。

共享高速緩存(未示出)可以包含在處理器中或者在兩個處理器之外,而仍經(jīng)由P-P互連與處理器連接,使得如果處理器被置于低功率模式則任意一個或兩個處理器的本地高速緩存信息可以存儲在共享高速緩存中。

芯片組790可以經(jīng)由接口796與第一總線716耦合。在一個實(shí)施例中,第一總線716可以是外圍組件互連(PCI)總線或者諸如PCI Express總線或另一第三代I/O互連總線的總線,但是本公開的范圍不限于此。

如圖7所示,各種I/O設(shè)備714可以連同總線橋718一起與第一總線716耦合,總線橋718將第一總線716與第二總線720耦合。在一個實(shí)施例中,第二總線720可以是低引腳計數(shù)(LPC)總線。在一個實(shí)施例中,各種設(shè)備可以與第二總線720耦合,包括例如鍵盤和/或鼠標(biāo)722、通信設(shè)備727和存儲單元728,諸如可包括指令/代碼和數(shù)據(jù)730的磁盤驅(qū)動器或其它大容量存儲設(shè)備。此外,音頻I/O 724可以與第二總線720耦合。注意,其它架構(gòu)是可能的。例如,不是圖7的點(diǎn)對點(diǎn)架構(gòu),系統(tǒng)可以實(shí)現(xiàn)多分支總線或其它這樣的架構(gòu)。

現(xiàn)在參考圖8,示出了系統(tǒng)800的框圖,本公開的一個實(shí)施例可操作于該系統(tǒng)中。系統(tǒng)800可以包括一個或多個處理器810,815,這些處理器與圖形存儲器控制器中心(GMCH)820耦合。在圖8中利用折線標(biāo)示出附加的處理器815的可選性質(zhì)。在一個實(shí)施例中,處理器810,815根據(jù)本公開的實(shí)施例實(shí)現(xiàn)混合核。

每個處理器810,815可以是如上文所述的電路、集成電路、處理器和/或硅集成電路的某個版本。然而,應(yīng)當(dāng)注意,集成圖形邏輯和集成存儲器控制器單元不可能存在于處理器810,815中。圖8說明了GMCH 820可以與存儲器840耦合,存儲器840可以是例如動態(tài)隨機(jī)存取存儲器(DRAM)。對于至少一個實(shí)施例,DRAM可以與非易失性高速緩存相關(guān)聯(lián)。

GMCH 820可以是芯片組或芯片組的部分。GMCH 820可以與處理器810,815通信且控制處理器810,815與存儲器840之間的交互。GMCH 820還可以充當(dāng)處理器810,815與系統(tǒng)800的其它元件之間的加速總線接口。對于至少一個實(shí)施例,GMCH 820經(jīng)由多分支總線如前側(cè)總線(FSB)895來與處理器810,815通信。

此外,GMCH 820與顯示器845(例如,平板或觸摸屏顯示器)耦合。GMCH 820可以包括集成圖形加速器。GMCH 820進(jìn)一步與輸入/輸出(I/O)控制器中心(ICH)850耦合,其可以用于將各個外圍設(shè)備與系統(tǒng)800耦合。在圖8的實(shí)施例中例如示出了與ICH 850耦合的外部圖形設(shè)備860,其可以是分立的圖形設(shè)備,還示出了另一外圍設(shè)備870。

可替代地,在系統(tǒng)800中還可以存在附加的或不同的處理器。例如,附加的處理器815可以包括與處理器810相同的附加的處理器、與處理器810異構(gòu)或不對稱的附加處理器、加速器(諸如例如圖形加速器或數(shù)字信號處理(DSP)單元)、現(xiàn)場可編程門陣列或任何其它處理器。從包括架構(gòu)的、微架構(gòu)的、熱的、功耗特性等的優(yōu)點(diǎn)的度量譜方面看在處理器810,815之間存在多種差別。這些差別可以有效地將其自身顯現(xiàn)為處理器810,815之間的不對稱性和異構(gòu)性。對于至少一個實(shí)施例,各個處理器810,815可以位于相同的芯片封裝中。

現(xiàn)在參考圖9,示出了本公開實(shí)施例可操作于其中的系統(tǒng)900的框圖。圖9示出了處理器970,980。在一個實(shí)施例中,處理器970,980可以實(shí)現(xiàn)上述的混合核。處理器970,980可以分別包括集成存儲器和I/O控制邏輯(“CL”)972和982且能夠分別經(jīng)由點(diǎn)對點(diǎn)(P-P)接口978和988之間的點(diǎn)對點(diǎn)互連950彼此相互通信。處理器970,980各自通過如圖所示的相應(yīng)的P-P接口976至994和986至998經(jīng)由點(diǎn)對點(diǎn)互連952和954與芯片組990通信。對于至少一個實(shí)施例,CL 972,982可以包括集成存儲器控制器單元。CL 972,982可以包括I/O控制邏輯。如所描繪的,與CL 972,982和I/O設(shè)備914耦合的存儲器932,934也與控制邏輯972,982耦合。舊有I/O設(shè)備915經(jīng)由接口996與芯片組990耦合。

實(shí)施例可以多種不同的系統(tǒng)類型來實(shí)現(xiàn)。圖10是根據(jù)本公開的實(shí)施例的SoC 1000的框圖。虛線框是更先進(jìn)的SoC上的可選特征。在圖10中,互連單元1012與如下耦合:應(yīng)用處理器1020,其包括一組一個或多個核1002A-N以及共享高速緩存單元1006;系統(tǒng)代理單元1010;總線控制器單元1016;集成存儲器控制器單元1014;一組或一個或多個媒體處理器1018,其可以包括集成圖形邏輯1008,用于提供靜像和/或視頻照相機(jī)功能的圖像處理器1024,用于提供硬件音頻加速的音頻處理器1026,以及用于提供視頻編碼/譯碼加速的視頻處理器1028;靜態(tài)隨機(jī)存取存儲器(SRAM)單元1030;直接存儲器訪問(DMA)單元1032;以及用于與一個或多個外部顯示器耦合的顯示單元1040。在一個實(shí)施例中,存儲器模塊可以包含在集成存儲器控制單元1014中。在另一實(shí)施例中,存儲器模塊可以包含在可用于訪問和/或控制存儲器的SoC 1000的一個或多個其它組件中。應(yīng)用處理器1020可以包括用于實(shí)現(xiàn)在本文的實(shí)施例中所描述的混合核的存儲地址預(yù)測器。

存儲器層級包括在核、一組或一個或多個共享高速緩存單元1006和與一組集成存儲器控制器單元1014耦合的外部存儲器(未示出)內(nèi)的一級或多級高速緩存。一組共享高速緩存單元1006可以包括一個或多個中級高速緩存,例如級2(L2)、級3(L3)、級4(L4)或其它級的高速緩存、最后級的高速緩存(LLC)和/或其組合。

在一些實(shí)施例中,核1002A-N中的一個或多個能夠多線程。系統(tǒng)代理1010包括協(xié)調(diào)和操作核1002A-N的那些組件。系統(tǒng)代理單元1010可以包括例如功率控制單元(PCU)和顯示單元。PCU可以是或包括調(diào)節(jié)核1002A-N的功率狀態(tài)所需的邏輯和組件以及集成圖形邏輯1008。顯示單元用于驅(qū)動一個或多個外部連接的顯示器。

核1002A-N從架構(gòu)和/或指令集方面看可以是同構(gòu)的或異構(gòu)的。例如,核1002A-N中的一些可以是有序的,而其它是無序的。作為另一示例,核1002A-N中的兩個或更多個核能夠執(zhí)行相同的指令集,而其它核僅能夠執(zhí)行該指令集的子集或不同的指令集。

應(yīng)用處理器1020可以是通用處理器,例如可以從加利福尼亞的圣塔克拉拉的IntelTM公司得到的CoreTM i3、i5、i7,2Duo和Quad,XeonTM、ItaniumTM、AtomTM或QuarkTM處理器??商娲兀瑧?yīng)用處理器1020可以來自另一公司,例如ARM HoldingsTM有限公司,MIPSTM等。應(yīng)用處理器1020可以是專用處理器,諸如例如網(wǎng)絡(luò)或通信處理器、壓縮引擎、圖形處理器、協(xié)處理器、嵌入式處理器等。應(yīng)用處理器1020可以實(shí)現(xiàn)在一個或多個芯片上。應(yīng)用處理器1020可以是一個或多個襯底的部分和/或可以使用諸如例如BiCMOS、CMOS或NMOS的多種工藝技術(shù)中的任一種實(shí)現(xiàn)在一個或多個襯底上。

圖11是根據(jù)本公開的片上系統(tǒng)(SoC)設(shè)計的實(shí)施例的框圖。作為具體的示例性的示例,SoC 1100包含在用戶設(shè)備(UE)中。在一個實(shí)施例中,UE是指任何由終端用戶通信所使用的設(shè)備,例如手持式電話、智能手機(jī)、平板設(shè)備、超薄筆記本、帶寬帶適配器的筆記本或任何其它類似的通信設(shè)備。通常,UE連接到基站或節(jié)點(diǎn),基站或節(jié)點(diǎn)可能本質(zhì)上對應(yīng)于GSM網(wǎng)絡(luò)中的移動站(MS)。

此處,SOC 1100包括2個核,即1106和1107。核1106和1107可以符合指令集架構(gòu),例如基于Architecture CoreTM的處理器、Advanced Micro Devices公司(AMD)的處理器、基于MIPS的處理器、基于ARM的處理器設(shè)計、或其客戶以及它們的持證者或采納者。核1106和1107與高速緩存控制器1108耦合,高速緩存控制器1108與總線接口單元1109和L2高速緩存1110相關(guān)聯(lián)以與系統(tǒng)1100的其它部分通信?;ミB1110包括片上互連,諸如IOSF、AMBA或上述其它互連,它們可能實(shí)現(xiàn)所描述的公開的一個或多個方面。在一個實(shí)施例中,核1106,1107可以實(shí)現(xiàn)如本文的實(shí)施例中所描述的混合核。

互連1110提供到其它組件的通信通道,諸如與SIM卡接合的用戶身份模塊(SIM)1130,保存引導(dǎo)代碼以便由核1106和1107執(zhí)行以初始化和引導(dǎo)SoC 1100的引導(dǎo)ROM 1135,與外部存儲器(例如,DRAM 1160)接合的SDRAM控制器1140,與非易失性存儲器(例如,閃存1165)接合的閃存控制器1145,與外圍設(shè)備接合的外圍控制器1150(例如,串行外圍設(shè)備接口),顯示和接收輸入(例如,觸摸使能輸入)的視頻編碼譯碼器1120和視頻接口1125、執(zhí)行圖形相關(guān)計算的GPU 1115等。這些接口中的任意接口可以并入本文所述的公開的方面。另外,系統(tǒng)1100示出了用于通信的外圍設(shè)備,諸如藍(lán)牙模塊1170,3G調(diào)制解調(diào)器1175,GPS 1180和Wi-Fi 1185。

圖12示出了呈計算機(jī)系統(tǒng)1200的示例形式的機(jī)器的圖解表示,在該機(jī)器內(nèi)可以執(zhí)行用于使機(jī)器實(shí)施本文所述的方法中的任意一個或多個的一組指令。在可替代的實(shí)施例中,機(jī)器可以在LAN、內(nèi)聯(lián)網(wǎng)、外聯(lián)網(wǎng)或因特網(wǎng)中與其它機(jī)器連接(例如,聯(lián)網(wǎng))。該機(jī)器可以操作于客戶端-服務(wù)器網(wǎng)絡(luò)環(huán)境中的服務(wù)器或客戶端設(shè)備的容量中,或者作為對等(或分布式)網(wǎng)絡(luò)環(huán)境中的對等機(jī)器。該機(jī)器可以是個人計算機(jī)(PC)、平板式PC、機(jī)頂盒(STB)、個人數(shù)字助理(PDA)、蜂窩電話、web工具、服務(wù)器、網(wǎng)絡(luò)路由器、交換機(jī)或橋接器、或任何能夠執(zhí)行規(guī)定該機(jī)器所要采取的動作的一組指令(順序的或其它的)的機(jī)器。此外,雖然僅示出了單個機(jī)器,但是術(shù)語“機(jī)器”還應(yīng)當(dāng)被認(rèn)為包含單獨(dú)地或聯(lián)合地執(zhí)行一組(或多組)指令來實(shí)施本文所述的任意一個或多個方法的機(jī)器的任意集合。

計算機(jī)系統(tǒng)1200包括處理設(shè)備1202、主存儲器1204(例如,只讀存儲器(ROM)、閃存、動態(tài)隨機(jī)存取存儲器(DRAM)(諸如同步DRAM(SDRAM)或DRAM(RDRAM)等)、靜態(tài)存儲器1206(例如,閃存、靜態(tài)隨機(jī)存取存儲器(SRAM)等)、以及數(shù)據(jù)存儲設(shè)備1218,它們經(jīng)由總線1230彼此通信。

處理設(shè)備1202表示一個或多個通用處理設(shè)備,諸如微處理器、中央處理單元等。更特別地,處理設(shè)備可以是復(fù)雜指令集計算(CISC)微處理器、精減指令集計算機(jī)(RISC)微處理器、極長指令字(VLIW)微處理器或?qū)崿F(xiàn)其它指令集的處理器、或?qū)崿F(xiàn)指令集的組合的處理器。處理設(shè)備1202還可以是一個或多個專用處理設(shè)備,諸如專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、數(shù)字信號處理器(DSP)、網(wǎng)絡(luò)處理器等。在一個實(shí)施例中,處理設(shè)備1202可以包括一個或多個處理核。處理設(shè)備1202被配置成執(zhí)行用于實(shí)施本文所述的操作和步驟的處理邏輯1226。在一個實(shí)施例中,處理設(shè)備1202與上文利用本公開的實(shí)施例所描述的結(jié)合圖1所描述的處理器架構(gòu)100相同。

計算機(jī)系統(tǒng)1200還可以包括與網(wǎng)絡(luò)1220通信耦合的網(wǎng)絡(luò)接口設(shè)備1208。計算機(jī)系統(tǒng)1200還可以包括視頻顯示單元1210(例如,液晶顯示器(LCD)或陰極射線管(CRT))、字母輸入設(shè)備1212(例如,鍵盤)、光標(biāo)控制設(shè)備1214(例如,鼠標(biāo))以及信號生成設(shè)備1216(例如,揚(yáng)聲器)。此外,計算機(jī)系統(tǒng)1200可以包括圖形處理單元1222、視頻處理單元1228和音頻處理單元1232。

數(shù)據(jù)存儲設(shè)備1218可以包括機(jī)器可訪問存儲介質(zhì)1224,其中存儲有實(shí)現(xiàn)本文所述的功能的任意一個或多個方法的軟件1226,例如實(shí)現(xiàn)用于如上所述的存儲器區(qū)分的存儲地址預(yù)測的功能的任意一個或多個方法。在通過計算機(jī)系統(tǒng)1200執(zhí)行期間,軟件1226還可以完全地或者至少部分地位于主存儲器1204內(nèi)作為指令1226和/或位于處理設(shè)備1202內(nèi)作為處理邏輯1226;主存儲器1204和處理設(shè)備1202也構(gòu)成機(jī)器可訪問存儲介質(zhì)。

機(jī)器可讀存儲介質(zhì)1224還可以用于存儲實(shí)現(xiàn)根據(jù)本公開的實(shí)施例所描述的用于混合核的存儲地址預(yù)測的指令1226。雖然在示例性實(shí)施例中機(jī)器可訪問存儲介質(zhì)1128顯示為單一介質(zhì),術(shù)語“機(jī)器可訪問存儲介質(zhì)”應(yīng)當(dāng)被認(rèn)為包含存儲一組或多組指令的單個介質(zhì)或多個介質(zhì)(例如,集中式的或分布式的數(shù)據(jù)庫,和/或相關(guān)聯(lián)的高速緩存和服務(wù)器)。術(shù)語“機(jī)器可訪問存儲介質(zhì)”還應(yīng)當(dāng)被認(rèn)為包括能夠存儲一組指令、對一組指令編碼或承載一組指令以便由機(jī)器執(zhí)行且使機(jī)器實(shí)施本公開的任意一個或多個方法的任何介質(zhì)。術(shù)語“機(jī)器可訪問存儲介質(zhì)”因此應(yīng)當(dāng)被認(rèn)為包含但不限于固態(tài)存儲器以及光介質(zhì)和磁介質(zhì)。

下面的示例涉及進(jìn)一步的實(shí)施例。示例1是一種處理器,包括:第一核,該第一核包括高速緩存,該高速緩存包括高速緩存線;第二核,該第二核包括第二高速緩存;以及高速緩存控制器,其將存儲在第一高速緩存的高速緩存線的標(biāo)記段中的標(biāo)記設(shè)定成如下狀態(tài)之一:響應(yīng)于存儲在所述第一高速緩存線中的數(shù)據(jù)由所述第二高速緩存共享而設(shè)定成處理器共享(PS)狀態(tài),或者響應(yīng)于存儲在所述第一高速緩存線中的數(shù)據(jù)由第二處理器的第三高速緩存共享而設(shè)定成全局共享(GS)狀態(tài)。

在示例2中,示例1的主題可以任選地提供,所述第一核在第一核集群內(nèi),所述第二核在第二核集群內(nèi)。

在示例3中,示例2的主題可以任選地提供,所述高速緩存控制器響應(yīng)于判定出存儲在所述高速緩存線中的數(shù)據(jù)由第三核的第四高速緩存共享而將所述標(biāo)記設(shè)定成集群共享(CS)狀態(tài),并且其中所述第一核和所述第三核都在所述處理器的所述第一核集群內(nèi),并且其中存儲在所述高速緩存線中的數(shù)據(jù)不被所述第二核或不被所述第二處理器共享。

在示例4中,示例1至3中任一示例的主題可以任選地提供,所述高速緩存控制器將所述標(biāo)記設(shè)定成如下狀態(tài):響應(yīng)于存儲在所述高速緩存線中的數(shù)據(jù)是從存儲在存儲器中的數(shù)據(jù)的副本修改的而將所述標(biāo)記設(shè)定成修改(M)狀態(tài),響應(yīng)于判定出存儲在所述高速緩存線中的數(shù)據(jù)未被另一高速緩存共享而將所述標(biāo)記設(shè)定成獨(dú)占(E)狀態(tài),或者響應(yīng)于存儲在高速緩存線中的數(shù)據(jù)是無效的而將所述標(biāo)記設(shè)定成無效狀態(tài)(I)。

在示例5中,示例1至3中任一示例的主題可以任選地提供,所述高速緩存線還包括存儲所述數(shù)據(jù)的數(shù)據(jù)段和存儲存儲器的地址的標(biāo)簽段,在所述存儲器的地址處存儲有所述數(shù)據(jù)的對應(yīng)副本。

在示例6中,示例4的主題可以任選地提供,所述高速緩存控制器:響應(yīng)于針對存儲在所述第一高速緩存的高速緩存線中的數(shù)據(jù)而檢測到來自所述第三核的高速緩存命中,將所述高速緩存線的標(biāo)記從獨(dú)占狀態(tài)設(shè)定成集群共享狀態(tài);響應(yīng)于在所述處理器的第二核集群中檢測到來自第四核的高速緩存命中,將所述高速緩存線的標(biāo)記從所述獨(dú)占狀態(tài)或所述集群共享狀態(tài)中的一個設(shè)定成所述處理器共享狀態(tài);以及響應(yīng)于檢測到來自所述第二處理器的高速緩存命中,將所述高速緩存線的標(biāo)記從所述獨(dú)占狀態(tài)、所述集群共享狀態(tài)或所述處理器共享狀態(tài)中的一個設(shè)定成所述全局共享狀態(tài)。

在示例7中,示例4的主題可以任選地提供,所述高速緩存控制器:響應(yīng)于在存儲在所述高速緩存線中的數(shù)據(jù)上檢測到寫命中,確定所述標(biāo)記是哪個狀態(tài)。

在示例8中,示例7的主題可以任選地提供,所述高速緩存控制器進(jìn)一步:響應(yīng)于判定出所述標(biāo)記指示所述集群共享狀態(tài),將高速緩存無效請求發(fā)送到所述第一核集群的一個或多個高速緩存。

在示例9中,示例8的主題可以任選地提供,所述高速緩存無效請求僅發(fā)送到所述第一核集群內(nèi)的一個或多個高速緩存,并且其中所述高速緩存控制器將所述高速緩存無效請求在所述處理器的核間互連上發(fā)送。

在示例10中,示例9的主題可以任選地提供,所述高速緩存控制器:響應(yīng)于判定所述標(biāo)記指示所述處理器共享狀態(tài),將高速緩存無效請求發(fā)送到所述處理器的一個或多個高速緩存。

在示例11中,示例10的主題可以任選地提供,所述高速緩存無效請求僅發(fā)送到所述處理器內(nèi)的高速緩存,并且其中所述高速緩存控制器將所述高速緩存無效請求在所述處理器的集群間互連上發(fā)送。

在示例12中,示例7的主題可以任選地提供,所述高速緩存控制器:響應(yīng)于判定所述標(biāo)記指示所述全局共享狀態(tài),將高速緩存無效請求發(fā)送到所述處理器和所述第二處理器中的一個或多個高速緩存。

在示例13中,示例12的主題可以任選地提供,所述高速緩存控制器將所述高速緩存無效請求在耦合在所述第一處理器與所述第二處理器之間的處理器間互連上發(fā)送。

示例14是一種片上系統(tǒng)(SoC),包括:存儲器;以及第一處理器。該第一處理器包括:第一核集群,其包括第一核和第二核,所述第一核包括第一高速緩存,所述第二核包括第二高速緩存;以及高速緩存控制器,其將存儲在所述第一高速緩存的高速緩存線的標(biāo)記段中的標(biāo)記設(shè)定成如下狀態(tài)之一:響應(yīng)于存儲在所述高速緩存線中的數(shù)據(jù)由所述第二高速緩存共享而設(shè)定成集群共享(CS)狀態(tài),或響應(yīng)于存儲在所述高速緩存線中的數(shù)據(jù)由所述SoC的第二處理器的第三高速緩存共享而設(shè)定成全局共享(GS)狀態(tài)。

在示例15中,示例14的主題可以任選地提供,所述高速緩存控制器響應(yīng)于存儲在所述高速緩存線中的數(shù)據(jù)由所述第一處理器的第二核集群中的第四高速緩存共享而將所述高速緩存線的標(biāo)記設(shè)定成處理器共享(PS)狀態(tài),并且其中所述數(shù)據(jù)不被所述第二處理器共享。

在示例16中,示例14和15中的任一示例的主題可以任選地提供,所述高速緩存線還包括存儲數(shù)據(jù)的數(shù)據(jù)段和存儲所述存儲器的地址的標(biāo)簽段,在所述存儲器的地址處存儲有所述數(shù)據(jù)的副本。

示例17包括一種方法,包括:通過高速緩存控制器接收讀存儲在駐存于第一處理器的第一核集群中的第一核的第一高速緩存的高速緩存線中的數(shù)據(jù)項(xiàng)的請求;響應(yīng)于判定所述請求的請求者與所述第一核集群相關(guān)聯(lián)且存儲在標(biāo)記段中的標(biāo)記對所述第一高速緩存是獨(dú)占狀態(tài),將存儲在所述高速緩存線的標(biāo)記段中的標(biāo)記設(shè)定成集群共享;以及響應(yīng)于判定所述請求者與所述第一處理器的第二核集群相關(guān)聯(lián)且存儲在所述標(biāo)記段中的狀態(tài)是所述獨(dú)占狀態(tài)或所述集群共享狀態(tài)中的一個,將存儲在所述高速緩存線的所述標(biāo)記段中的標(biāo)記設(shè)定成處理器共享狀態(tài)。

在示例18中,示例17的主題可以進(jìn)一步包括:響應(yīng)于判定所述請求者在第二處理器中,將存儲在所述高速緩存線的所述標(biāo)記段中的標(biāo)記設(shè)定成全局共享狀態(tài)。

在示例19中,示例17和18中的任一示例的主題可以進(jìn)一步包括:將來自第一高速緩存的數(shù)據(jù)發(fā)送到所述請求者。

在示例20中,示例17和18中的任一示例的主題可以進(jìn)一步包括:接收將數(shù)據(jù)項(xiàng)寫入所述高速緩存線的請求;判定存儲在所述高速緩存線的所述標(biāo)記段中的標(biāo)記;響應(yīng)于判定所述標(biāo)記是所述集群共享狀態(tài),則將高速緩存無效請求發(fā)送到所述第一核集群的一個或多個高速緩存且抑制將所述高速緩存無效請求發(fā)送到所述第一核集群之外;以及響應(yīng)于判定所述標(biāo)記是所述處理器共享狀態(tài),將所述高速緩存無效請求發(fā)送到所述第一處理器的一個或多個高速緩存,但是抑制將所述高速緩存無效請求發(fā)送到所述第一處理器之外的高速緩存。

示例21包括一種裝置,包括:用于執(zhí)行示例17至18中的任一項(xiàng)所述的方法的單元。

示例22包括一種機(jī)器可讀非暫態(tài)介質(zhì),其中存儲有程序代碼,當(dāng)被執(zhí)行時,所述程序代碼實(shí)施操作。所述操作包括:通過高速緩存控制器接收讀存儲在駐存于第一處理器的第一核集群中的第一核的第一高速緩存的高速緩存線中的數(shù)據(jù)項(xiàng)的請求;響應(yīng)于判定所述請求的請求者與所述第一核集群相關(guān)聯(lián)且存儲在標(biāo)記段中的標(biāo)記對所述第一高速緩存是獨(dú)占狀態(tài),將存儲在所述高速緩存線的標(biāo)記段中的標(biāo)記設(shè)定成集群共享;以及響應(yīng)于判定所述請求者與所述第一處理器的第二核集群相關(guān)聯(lián)且存儲在所述標(biāo)記段中的狀態(tài)是所述獨(dú)占狀態(tài)或所述集群共享狀態(tài)中的一個,將存儲在所述高速緩存線的所述標(biāo)記段中的標(biāo)記設(shè)定成處理器共享狀態(tài)。

在示例23中,示例22的主題可任選地提供,所述操作包括:響應(yīng)于判定所述請求者在第二處理器中,將存儲在所述高速緩存線的標(biāo)記段中的標(biāo)記設(shè)定成全局共享狀態(tài)。

在示例24中,示例22和23中的任一示例的主題可以任選地提供,所述操作包括:將來自第一高速緩存的數(shù)據(jù)發(fā)送到所述請求者。

在示例24中,示例22和23中的任一示例的主題可以任選地提供,所述操作包括:接收將數(shù)據(jù)項(xiàng)寫入所述高速緩存線的請求;判定存儲在所述高速緩存線的所述標(biāo)記段中的標(biāo)記;響應(yīng)于判定所述標(biāo)記是所述集群共享狀態(tài),則將高速緩存無效請求發(fā)送到所述第一核集群的一個或多個高速緩存且抑制將所述高速緩存無效請求發(fā)送到所述第一核集群之外;以及響應(yīng)于判定所述標(biāo)記是所述處理器共享狀態(tài),將所述高速緩存無效請求發(fā)送到所述第一處理器的一個或多個高速緩存,但是抑制將所述高速緩存無效請求發(fā)送到所述第一處理器之外的高速緩存。

雖然已經(jīng)結(jié)合有限數(shù)量的實(shí)施例描述了本公開,本領(lǐng)域技術(shù)人員將從中意識到若干的修改例和變型例。目的在于,隨附的權(quán)利要求涵蓋落入本公開的真正的主旨和范圍內(nèi)的所有這樣的修改例和變型例。

設(shè)計可以經(jīng)歷多個階段,從創(chuàng)建到仿真到制造。表示設(shè)計的數(shù)據(jù)可以多種方式來表示設(shè)計。首先,如仿真中有用,硬件可利用硬件描述語言或另一功能描述語言來表示。另外,可以在設(shè)計過程的一些階段中產(chǎn)生具有邏輯和/或晶體管柵的電路級模型。此外,大部分設(shè)計在某階段達(dá)到表示硬件模型中各設(shè)備的物理放置的數(shù)據(jù)級。在使用常規(guī)的半導(dǎo)體制作技術(shù)的情況下,表示硬件模型的數(shù)據(jù)可以是規(guī)定在用于生產(chǎn)集成電路的掩模上不同的掩模層上的各特征的存在或不存在的數(shù)據(jù)。在設(shè)計的任何表示中,數(shù)據(jù)可以機(jī)器可讀介質(zhì)的任意形式來存儲。例如磁盤的存儲器或磁或光存儲可以是存儲經(jīng)由光或電波傳輸?shù)男畔⒌臋C(jī)器可讀介質(zhì),所述光或電波經(jīng)調(diào)制或以其它方式生成而傳輸該信息。當(dāng)指示或承載代碼或設(shè)計的電載波被傳輸時,在執(zhí)行電信號的復(fù)制、緩沖或重新傳輸?shù)某潭壬?,做出新的副本。因此,通信提供商或網(wǎng)絡(luò)提供商可以至少暫時地將諸如編碼到載波中的信息的、具體體現(xiàn)本公開的實(shí)施例的技術(shù)的物品存儲在有形的機(jī)器可讀介質(zhì)上。

本文所使用的模塊是指硬件、軟件和/或固件的任意組合。作為示例,模塊包括硬件,例如微控制器,其與非暫態(tài)介質(zhì)相關(guān)聯(lián)以存儲適于由微控制器執(zhí)行的代碼。因此,在一個實(shí)施例中提到模塊是指硬件,其具體地被配置成識別和/或執(zhí)行待保存于非暫態(tài)介質(zhì)上的代碼。此外,在另一實(shí)施例中,模塊的使用是指包含代碼的非暫態(tài)介質(zhì),該代碼具體地適于由微控制器執(zhí)行以實(shí)施預(yù)定操作。并且,能夠推導(dǎo)出,在又一實(shí)施例中,術(shù)語模塊(在該示例中)可以是指微控制器和非暫態(tài)介質(zhì)的組合。通常,被圖示為分離的模塊邊界通常變化且可能重疊。例如,第一模塊和第二模塊可以共用硬件、軟件、固件或其組合,而可能保持某些獨(dú)立的硬件、軟件、或固件。在一個實(shí)施例中,術(shù)語邏輯的使用包括硬件,例如晶體管、寄存器、或其它硬件,例如可編程邏輯器件。

措辭‘被配置成’的使用在一個實(shí)施例中是指排列、放在一起、制造、供銷售、進(jìn)口和/或設(shè)計實(shí)施指定的或確定的任務(wù)的裝置、硬件、邏輯或元件。在該示例中,沒有操作的裝置或其元件仍‘被配置成’實(shí)施指定的任務(wù),如果其被設(shè)計、耦合和/或互連以實(shí)施所述指定的任務(wù)。作為純說明性的示例,邏輯門可以在操作期間提供0或1。但是,‘被配置成’提供啟用信號給時鐘的邏輯門不包括可提供1或0的每一個可能的邏輯門。相反,邏輯門是以操作期間輸出1或0而啟用時鐘的某種方式耦合的邏輯門。還要注意,術(shù)語‘被配置成’的使用不需要操作,而是集中于裝置、硬件和/或元件的潛在狀態(tài),其中在該潛在狀態(tài)下,裝置、硬件和/或元件設(shè)計成當(dāng)所述裝置、硬件和/或元件正在操作時實(shí)施特定的任務(wù)。

此外,在一個實(shí)施例中,措辭‘以’、‘能夠/以’和或‘能操作來’的使用是指一些裝置、邏輯、硬件和/或元件以使能按規(guī)定方式使用裝置、邏輯、硬件和/或元件的方式進(jìn)行設(shè)計。注意,如上文所述,以、能夠或能操作來的使用在一個實(shí)施例中是指裝置、邏輯、硬件和/或元件的潛在狀態(tài),其中裝置、邏輯、硬件和/或元件沒有操作,但是以使得能夠按規(guī)定方式使用裝置的方式進(jìn)行設(shè)計。

如本文所使用的值包含了數(shù)量、狀態(tài)、邏輯狀態(tài)或二進(jìn)制邏輯狀態(tài)的任何已知的表示。通常,邏輯電平、邏輯值或邏輯上的值的使用還稱為1和0,這簡單地表示了二進(jìn)制邏輯狀態(tài)。例如,1是指高邏輯電平,0是指低邏輯電平。在一個實(shí)施例中,存儲單元,例如晶體管或閃存單元,能夠保存單邏輯值或多個邏輯值。然而,已經(jīng)使用了計算機(jī)系統(tǒng)中值的其它表示。例如,十進(jìn)制數(shù)字十還可以表示為二進(jìn)制值910和十六進(jìn)制字母A。因此,值包含了能夠被保存在計算機(jī)系統(tǒng)中的信息的任意表示。

而且,狀態(tài)可由值或值的部分來表示。作為示例,諸如邏輯一的第一值可以表示缺省或初始狀態(tài),而諸如邏輯零的第二值可以表示非缺省狀態(tài)。另外,術(shù)語復(fù)位和置位在一個實(shí)施例中分別是指缺省和更新的值或狀態(tài)。例如,缺省值可能包含高邏輯值,即,復(fù)位,而更新的值可能包含低邏輯值,即,置位。注意,值的任意組合可用來表示任意數(shù)量的狀態(tài)。

上文闡述的方法、硬件、軟件、固件或代碼的實(shí)施例可經(jīng)由存儲在能夠由處理元件執(zhí)行的機(jī)器可訪問、機(jī)器可讀、計算機(jī)可訪問或計算機(jī)可讀介質(zhì)上的指令或代碼來實(shí)現(xiàn)。非暫態(tài)性的機(jī)器可訪問/可讀介質(zhì)包括以諸如計算機(jī)或電子系統(tǒng)的機(jī)器能讀的形式提供(即,存儲和/或發(fā)送)信息的任意機(jī)制。例如,非暫態(tài)性的機(jī)器可訪問介質(zhì)包括隨機(jī)存取存儲器(RAM),例如靜態(tài)RAM(SRAM)或動態(tài)RAM(DRAM);ROM;磁或光存儲介質(zhì);閃速存儲器設(shè)備;電存儲設(shè)備;光存儲設(shè)備;聲學(xué)存儲設(shè)備;其它形式的用來保存接收自暫態(tài)性的(或傳播的)信號(例如,載波、紅外信號、數(shù)字信號)的信息的存儲設(shè)備;等等,它們區(qū)別于可接收來自它們的信息的非暫態(tài)性的介質(zhì)。

用于對邏輯編程以實(shí)施本公開的實(shí)施例的指令可以存儲在系統(tǒng)中的存儲器內(nèi),例如DRAM、高速緩存、閃速存儲器或其它存儲。此外,指令可以經(jīng)由網(wǎng)絡(luò)分布或者通過其它計算機(jī)可讀介質(zhì)來分布。因此,機(jī)器可讀介質(zhì)可以包括用于存儲或傳輸呈機(jī)器(例如,計算機(jī))能讀的形式的信息的任意機(jī)制,但不限于,軟盤、光盤、壓縮盤只讀存儲器(CD-ROM)和磁光盤、只讀存儲器(ROM)、隨機(jī)存取存儲器(RAM)、可擦除可編程只讀存儲器(EPROM)、電可擦除可編程只讀存儲器(EEPROM)、磁卡或光卡、閃速存儲器或在因特網(wǎng)上經(jīng)由電、光、聲或其它形式的傳播信號(例如,載波、紅外信號、數(shù)字信號等)進(jìn)行信息傳輸時所使用的有形的機(jī)器可讀存儲設(shè)備。因此,計算機(jī)可讀介質(zhì)包括適合于存儲或傳輸機(jī)器(例如,計算機(jī))能讀的形式的電子指令或信息的任何類型的有形機(jī)器可讀介質(zhì)。

在本說明書通篇提到“一個實(shí)施例”或“實(shí)施例”意指與該實(shí)施例相結(jié)合所描述的特定的特征、結(jié)構(gòu)或特性包含在本公開的至少一個實(shí)施例中。因此,在本說明書中各處出現(xiàn)措辭“在一個實(shí)施例”或“在實(shí)施例中”不一定都是指同一實(shí)施例。此外,該特定的特征、結(jié)構(gòu)或特性可以任何適合的方式結(jié)合在一個或多個實(shí)施例中。

在上述說明書中,已經(jīng)參考具體的示范性的實(shí)施例給出了詳細(xì)說明。然而,顯然可以對其進(jìn)行各種修改和改動而不偏離如隨附的權(quán)利要求中所闡明的公開的更寬泛的主旨和范圍。說明書和附圖因此應(yīng)在說明性的含義而不是限制的含義上考量。此外,實(shí)施例和其它示范性的語言的上述使用不一定是指同一實(shí)施例或同一示例,而是可以是指不同的且有區(qū)別的實(shí)施例,以及可能相同的實(shí)施例。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
五大连池市| 宁海县| 昌图县| 柘城县| 竹溪县| 永仁县| 滁州市| 丰城市| 龙海市| 安国市| 澎湖县| 安西县| 华容县| 灌南县| 临沧市| 东阿县| 青龙| 定陶县| 红安县| 镇巴县| 呼和浩特市| 永定县| 长顺县| 旺苍县| 新和县| 北海市| 靖西县| 麻阳| 麦盖提县| 拉萨市| 上蔡县| 宁化县| 米脂县| 英吉沙县| 襄垣县| 怀集县| 聊城市| 酒泉市| 庐江县| 长武县| 湖北省|