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

對多個一致域的支持的制作方法

文檔序號:6478478閱讀:177來源:國知局
專利名稱:對多個一致域的支持的制作方法
對多個一致域的支持
背景技術
本發(fā)明涉及多處理器系統,更具體而言,涉及在多處理器系統中維持多個獨立的
一致域。半導體制造技術的進步使微處理器時鐘速度顯著提高。雖然這樣的進步還使得存儲密度和存取時間得以改進,但微處理器時鐘速度與存儲器存取時間之間的不一致繼續(xù)存 在。為了減小延遲,通常使用一個或更多個級別的緩沖存儲器來保持主存儲器中所存儲的 數據或指令的子集。已開發(fā)出了若干技術以增加微處理器重復使用緩存中所保持的數據/ 指令的可能性。為了使任何給定的操作頻率下的性能得以提高,已開發(fā)出了具有多個并行地執(zhí)行 指令的處理核的微處理器。可以將處理核(下文中可替選地稱為核)集成在同一個半導體 晶片內,或者可以將其形成于在封裝內相互耦合的不同半導體晶片上,或者二者的組合。每 個核通常包括其自身的1級緩存以及可選的2級緩存。緩存一致性協議對與核相關聯的存儲器與緩存之間的流量流進行管理,以確保它 們之間的一致性。例如,緩存一致性協議確保如果數據項的副本在緩存中的一個中被修改, 則存儲在其它緩存以及主存儲器中的該數據項的副本根據該修改而被更新或被無效。圖1是如現有技術中已知的具有四個獨立的核IO1UO2UO3* IO4的微處理器 20(下文中可替選地稱為處理器)的框圖。每個核IOi被示為包括1級(Li)緩存15”其 中,i是從1到4變化的整數。假設核IO1所請求的數據不存在于其Ll緩存K1中。為了 獲得對該數據的訪問,核IO1S出讀取請求。在每個時鐘周期中,仲裁器25接收所有這些 讀取請求并將其串行化,并且將被串行化的請求中的一個請求傳送給核IO1UO2UO3* 104。 如果檢測到與核IO1作出的讀取請求相關聯的數據存在于Ll緩存中的任何緩存中,則將所 請求的數據從該數據所存在的Ll緩存?zhèn)魉徒o緩存15lt)如果Ll緩存都不包含該請求數據, 則經由系統總線30從主存儲器35重新獲得該數據的副本并隨后將其存儲在緩存IS1中。如上所述,由仲裁器25發(fā)出的讀取請求使所有的緩存搜索所請求的數據,因而消 耗能量。此外,由于必須接收來自所有核的響應以確定其它緩存是否包含所請求的數據,因 此正在參與執(zhí)行其它指令而無法處理所請求的操作的核減慢該過程并對其另外完成所述 讀取請求將花費的時間造成不利影響。隨著微處理器中核數量的增加,一致流量會變得日益繁重,因此導致更多的能耗 以及系統總線帶寬使用。當來自多個I/O設備(I/O)的流量請求也被發(fā)送給緩存時,該問 題復雜化。

發(fā)明內容
根據本發(fā)明的一個實施例,在布置在微處理器中的多個處理核之間維持若干一致 域。微處理器包括(部分地)緩存一致性管理器,適合于定義多個處理核中的每個處理核 之間的一致性關系,以使得一致流量僅在被定義為具有一致性關系的處理核之間流動。在一個實施例中,定義處理核之間的一致性關系的數據存儲在可編程寄存器中。對于一致請求的每個源,在可編程寄存器中標識該請求的處理核目標。在一個實施例中,可 以將處理核定義成與其它處理核中的每個處理核相一致。在另一個實施例中,可以將每個 核定義成與處理核的子集相一致。在一個實施例中,響應于處理核中的任何一個處理核作出的一致請求,將介入消 息轉發(fā)給請求核以及所有被定義成與該請求核處于同一個一致域中的核。如果該請求是讀 取請求,并且所請求的數據以修改或獨占狀態(tài)存儲在接收到介入消息的核中的任何核的緩 沖存儲器中,則使請求核可從該緩沖存儲器中得到所請求的數據。如果所請求的數據未以 修改或獨占狀態(tài)存儲在接收到介入消息的核中的任何核的緩沖存儲器中,則使請求核可從 系統存儲器、或者從可選的2級緩存或3級緩存中得到所請求的數據。在一個實施例中,一致性管理器包括Ll緩存標記陣列,該Ll緩存標記陣列是被布置在處理核中的聚集的Ll緩存標記的副本。副本緩存標記陣列標識接收介入消息的核,并 且免除具有與每個核相關聯的專用副本緩存標記的需要。在另一個實施例中,一致性管理 器包括被配置成遵照所建立的一致性關系來引導介入消息的目錄。如果該目錄表明核中存 在一致請求所標識的數據,則將介入消息發(fā)送給該核。在另一個實施例中,遵照緩存一致性 管理器所維持的多個一致性關系對主系統存儲器進行邏輯分區(qū)。這樣,將每個一致域映射 到主存儲器內一定范圍的地址并將每個一致域與該一定范圍的地址相關聯。緩存一致性管理器還適合于維持輸入/輸出設備與被布置在微處理器中的一個 或更多個處理核之間的一致性。輸入/輸出設備可以經由總線耦合到微處理器。在一個實施例中,微處理器包括(部分地)第一處理核、第二處理核及第三處理 核,每個包括(部分地)適合于執(zhí)行程序指令的核;適合于在緩存行中存儲數據的緩沖存儲 器;以及緩存控制邏輯。在一個實施例中,可編程寄存器中存儲的數據可以使第一處理核與 第二處理核成為緩存一致的、第一處理核與第三處理核成為緩存一致的、并且第二處理核 與第三處理核成為非緩存不一致的。根據本發(fā)明的另一個實施例,一種在被布置在微處理器中的多個處理核之間控制 一致流量的方法,包括(部分地)允許在被定義為具有一致性關系的處理核之間的一致流 量的流動;以及禁止在被定義為不具有一致性關系的處理核之間的一致流量的流動。響應于從核中的任何一個核接收到一致請求,將介入消息僅發(fā)送給被定義為與請 求核相一致的處理核。在一個實施例中,可以將處理核定義成與被布置于微處理器中的其 它核中的每個核相一致。在另一個實施例中,可以將處理核定義成與被布置在微處理器中 的處理核的子集相一致。在一個實施例中,響應于處理核中的任何一個處理核的一致請求,將介入消息轉 發(fā)給請求核以及所有被定義成與該請求核處于同一個一致域中的核。如果請求是讀取請求 并且所請求的數據以修改或獨占狀態(tài)存儲在接收到介入消息的核中的任何核的緩沖存儲 器中,則使請求核可得到所請求的數據。如果所請求的數據未以修改或獨占狀態(tài)存儲在接 收到介入消息的核中的任何核的緩沖存儲器中,則使請求核可從系統存儲器、或者從可選 的2級緩存或3級緩存得到所請求的數據。在一個實施例中,緩存一致性管理器還適合于 維持輸入/輸出設備與被布置在微處理器中的一個或更多個處理核之間的一致性。輸入/ 輸出設備可以經由系統總線耦合到微處理器。


圖1是如現有技術中已知的多核微處理器的框圖。圖2A示出了根據本發(fā)明一個實施例的微處理器,該微處理器與若干I/O設備和系 統存儲器通信,并且具有多個有選擇地維持相互一致或不一致的核。圖2B示出了根據本發(fā)明一個示例性實施例的1級緩存及其相關聯的、被布置在圖 2A中所示的核中的一個或更多個核中的雙緩存標記陣列。圖2C示出了根據本發(fā)明另一個示例性實施例的1級緩存及其相關聯的、被布置在 圖2A中所示的核中的一個或更多個核中的緩存標記陣列。圖3示出了被布置在圖2的微處理器中的一致性管理器的各種塊。圖4示出了根據本發(fā)明另一個實施例的微處理器,該微處理器與若干I/O設備和 系統存儲器通信,并且具有多個有選擇地維持相互一致或不一致的核。圖5示出了根據本發(fā)明另一個實施例的微處理器,該微處理器具有多個有選擇地 維持相互一致或不一致以及與其它微處理器相一致或不一致的核。圖6是根據本發(fā)明一個實施例的被執(zhí)行以用于維持多個一致域的步驟的流程圖。圖7示出了被配置成建立與圖4相關聯的多個一致域的屏蔽寄存器中所存儲的示 例性數據。圖8示出了根據本發(fā)明另一個實施例的被布置在圖2的微處理器中的一致性管理 器的各種塊。圖9示出了根據本發(fā)明另一個實施例的被布置在圖2的微處理器中的一致性管理 器的各種塊。圖10示出了根據本發(fā)明一個實施例的具有可尋址存儲空間的主存儲器,該可尋 址存儲空間被分區(qū)以支持多個一致域。圖11示出了使用本發(fā)明實施例的示例性計算機系統。
具體實施例方式根據本發(fā)明的一個實施例,在被布置在微處理器中的多個處理核之間建立若干一 致域。緩存一致性管理器定義一致性關系,以使得一致流量僅在被定義為具有一致性關系 的處理核之間流動。例如,當應用軟件提前獲知不同處理核上工作量的分區(qū)時,該軟件對一 致性管理器進行配置,以使得僅將共享數據的核維持在同一個一致域中。在一個實施例中,將定義處理核之間的一致性關系的數據可選地存儲在可編程寄 存器中。在另一個實施例中,將該數據存儲在被布置在一致性管理器中的隨機存取(RAM) 存儲器中。在又一個實施例中,硬連線電路可以提供該數據。雖然部分地參照屏蔽寄存器 提供以下描述,但可以理解的是,可以使用任何其它的存儲位置或硬連線電路來定義一致 性關系。 圖2A是根據本發(fā)明一個示例性實施例的微處理器100的框圖,該微處理器經由系 統總線325與系統存儲器300和I/O單元310、320通信。微處理器(下文中可替選地稱為 處理器)100被示為包括(部分地)四個核IOSiUOS2UOS3* 1054,緩存一致性管理器200 以及可選的2級(L2)緩存305。每個核105J其中,i是范圍從1到4的整數)被示為包 括(部分地)處理核IlOp Ll緩存IlSi以及緩存控制邏輯120ρ雖然處理器100的示例性實施例被示為包括四個核,但可以理解的是,處理器100的其它實施例可以包括多于或 少于四個核。每個處理核IlOi適合于響應于程序指令進行多個固定的或可變的操作序列。每個 處理核IlOi可以符合CISC和/或RISC架構,以使用SISD指令或SIMD指令來處理標量或 矢量數據類型。每個處理核IlOi可以包括通用和專用寄存器文件以及被配置成進行邏輯、 算術及任何其它類型的數據處理功能的執(zhí)行單元??梢詫⑻幚砗薎lO1UlO2UlOdn IlO4(集 體地稱為處理核110)配置成進行相同的功能,或者可替選地,可以將其配置成進行適合于 不同應用的不同功能。處理核110可以是單線程或多線程的,S卩,能夠并行地執(zhí)行多個程序 指令序列。每個核IOSi被示為包括1級(Li)緩存。在其它實施例中,每個核IlOi可以包括 更多的緩存級別,例如,2級、3級等。每個緩存1151可以包括指令和/或數據。通常將每 個緩存IKi組織成包括多個緩存行,每行適合于存儲與一個或更多個虛擬或物理存儲地址 對應的數據的副本。每個緩存行還存儲用于管理該緩存行的額外的信息。這種額外的信息 例如包括用于識別與緩存行相關聯的主存儲器地址的標記信息;以及用于將緩存行中的 數據與其它緩存和或與主系統存儲器同步的緩存一致性信息??梢愿鶕c緩存行相關聯的 所有或部分存儲器地址形成緩存標記。
每個Ll緩存由總線125i耦合到其相關聯的處理核IlOp每個總線
括多個用于承載數據和/或指令的信號線。每個核IOSi還被示為包括緩存控制邏輯120i; 以便于去往和來自其相關聯的緩存IKi的數據傳送。每個緩存1151可以是全關聯的、采用 雙路或更多路的組關聯的、或者直接映射的。為清楚起見,每個緩存1153皮示為用于存儲 核IOSi所需要的數據和指令的單個緩沖存儲器。雖然未示出,但可以理解的是,每個核105, 可以包括用于存儲數據的Ll緩存以及用于存儲指令的Ll緩存。每個緩存115,被分區(qū)成若干緩存行,每個緩存行對應于共享系統存儲器300中一 定范圍的相鄰位置。在一個實施例中,如下面進一步描述的,每個緩存(例如,緩存115》的 每行包括便于例如緩存1K1、主存儲器300和任何其它要與緩存1K1保持一致的緩存1152、 1153、1154之間的一致性的數據。例如,如所公知的,根據MESI緩存一致性協議,將每個緩 存行標記為修改“M”、獨占“E”、共享“S”或無效“I”。本發(fā)明的實施例還支持其它緩存一致 性協議,例如MSI、MOSI以及MOESI —致性協議。每個核105,經由相關聯的總線135,耦合到緩存一致性管理器200。緩存一致性 管理器200便于核IOSi、系統存儲器300、I/O單元310、I/O單元320與可選的共享L2緩存 305之間的指令和/或數據的傳送。緩存一致性管理器200建立請求的全局次序,發(fā)送介入 請求,收集對這些請求的響應,并且將所請求的數據發(fā)送回請求核。緩存一致性管理器200 對請求進行排序,以優(yōu)化存儲器存取,對請求進行負載平衡,賦予一個或更多個核高于其它 核的優(yōu)先級,并且/或者賦予一種或更多種類型的請求高于于其它類型請求的優(yōu)先級。參 照圖2A和圖2B,在一個實施例中,Ll緩存IlSi包括用于常規(guī)流量的第一緩存標記陣列150 以及用于介入流量的第二緩存標記陣列155。在圖2C中所示的另一個實施例中,Ll緩存中 的一個或更多個Ll緩存包括用于常規(guī)及介入一致流量的單個緩存標記陣列160。雖然未示 出,但在一些實施例中,核IOSi中的一個或更多個核包括2級(L2)緩存。圖3是根據本發(fā)明一個實施例的緩存一致性管理器200的框圖。緩存一致性管理器200被示為包括(部分地)請求單元205、介入單元210、響應單元215以及存儲器接口 單元220。請求單元205包括適合于從核IOSi接收例如讀取請求、寫入請求、回寫請求及任 何其它與緩沖存儲器相關的請求的輸入端口 225。請求單元205將其從核IOSi接收的請求 串行化并經由端口 230將不一致讀取/寫入請求、推測一致讀取請求以及被修改的緩存數 據的顯式和隱式回寫請求發(fā)送給存儲器接口單元220。請求單元205經由端口 235將一致 請求發(fā)送給介入單元210。為了避免寫后讀沖突(readafter write hazard),針對能夠生 成寫入操作的未決的一致請求來比較讀取地址。如果作為該比較的結果檢測出匹配,則不 推測性地開始讀取請求。響應于從請求單元205接收到的一致介入請求,介入單元210將與發(fā)起該請求的核相關聯的標識符與屏蔽寄存器260中所存儲的數據相比較,以確定核中的哪個核接收該 請求。這樣,屏蔽寄存器260識別要保持相互一致的核。結果是,未被屏蔽寄存器260識別 為一致的核將保持互不一致。根據屏蔽寄存器260中所存儲的數據,經由輸出端口 240將 請求單元205所轉發(fā)的數據訪問請求作為介入消息發(fā)給那些要與請求核保持一致的核。如 果核所請求的數據存儲在任何接收到介入消息的核的緩沖存儲器中,則經由輸入端口 245 將此數據返回給介入單元。在另一個實施例中,只有在數據存儲在具有獨占或修改狀態(tài)的 緩存行中時,才將所請求的數據返回給介入單元210。介入單元210隨后經由輸出端口 250 將該數據轉發(fā)給響應單元205。響應單元215經由輸出端口 265將該數據轉發(fā)給請求(發(fā) 起該請求的)核。如果在接收到介入消息的核中的任何核的緩沖存儲器中都未找到所請求 的數據并且不推測性地進行讀取請求,則介入單元210通過經由輸出端口 255將一致讀取 或寫入請求發(fā)送給存儲器接口單元220來請求對該數據的訪問。讀取請求可以不加推測地 繼續(xù)進行,例如,被布置在請求單元205中并且適合于存儲和傳送去往存儲器接口單元220 的請求的請求存儲緩沖器265已滿的時候。存儲器接口單元220接收來自請求單元205的不一致讀取/寫入請求以及來自介 入單元210的一致讀取/寫入請求和回寫請求。作為響應,存儲器接口單元220經由輸入 /輸出端口 255訪問系統存儲器300和/或諸如L2緩存305的更高級的緩沖存儲器以完 成這些請求。經由輸出端口 260將響應于這些存儲器請求從存儲器300和/或更高級的緩 沖存儲器重新獲取的數據轉發(fā)給響應單元215。響應單元215經由輸出端口 265返回請求 核所請求的數據。如所理解的,所請求的數據可以是從另一個核的Ll緩存、從系統存儲器 300、或者從可選的更高級的緩沖存儲器重新獲取的。根據本發(fā)明的一個實施例,在處理器100中建立并維持多個一致域。在一個示例 性實施例中,被布置在處理器100中的各種核被分區(qū),以支持兩個緩存一致域。例如,核105i 和1052可以形成第一一致域150,并且核1053和1054可以形成第二一致域160。因為核 IOS1* 1052被布置在同一個域150中,所以維持它們的Ll緩存IM1和1152彼此一致。類 似地,因為核1053和1054被布置在同一個一致域160中,所以維持它們的Ll緩存1153和 1154彼此一致。然而,Ll緩存IlS1和1152均不與Ll緩存1153或Ll緩存1154相一致。為了維持被布置在同一個一致域中的Ll緩存之間的一致性,從核中的任何核接 收到的一致請求都僅轉發(fā)給與該請求核處于同一個一致域中的核。例如,將來自例如核 IOS1的請求作為介入消息僅發(fā)送給核IOS1和1052。類似地,將來自例如核1054的請求作 為介入消息僅發(fā)送給核1053和1054。為了實現這一點,如上所述,在一個實施例中,被布置在介入單元210中的屏蔽寄存器260存儲定義各種核之間的一致性關系的數據。例如,為 了維持核IOS1與核1052彼此一致,屏蔽寄存器260包括使得將來自IOS1和1052的請求作 為介入消息僅發(fā)送給核IOS1和核1052的數據。類似地,為了維持核1053與核1054彼此一 致,屏蔽寄存器260包括使得將來自1053和1054的請求作為介入消息僅發(fā)送給核1053和 核1054的數據。因此,被布置在處理器100中的核中的任何核所發(fā)出的一致請求在介入單元210 發(fā)送任何介入消息之前被屏蔽寄存器260接收到。一致請求包括標識請求核的信息并被與 存儲在屏蔽寄存器260中的數據相比較。使用以上示例,如果屏蔽寄存器260將請求核識 別為存在于例如一致域150中,則經由輸出端口 245將介入消息僅發(fā)送給核IOS1和核1052。 另一方面,如果屏蔽寄存器260將請求核識別為存在于例如一致域160中,則經由輸出端口 245將介入消息僅發(fā)送給核1053和核1054。根據本發(fā)明的一個實施例,屏蔽寄存器260使 得用戶能夠以用戶所期望的任何方式來定義各種核之間的一致性關系。具有所請求的數據的核針對該介入更新其緩存狀態(tài)并提供響應。假設,例如,圖2 的核1052請求讀取訪問而無需修改所請求的數據。根據屏蔽寄存器260中的數據,經由輸 出端口 240將介入消息發(fā)送給核IOS1和核1052。進一步假設所請求的數據以獨占狀態(tài)存 儲在Ll緩存IK1中。相應地,當核IOS1提供所請求的數據時,它還將所提供的緩存行的緩 存狀態(tài)從獨占更新成共享。類似地,如果所請求的數據以例如修改狀態(tài)存儲在Ll緩存IK1 中,則核所請求的行的緩存狀態(tài)更新成共享并將該數據提供給核1052。如上所述,以 修改或獨占狀態(tài)包含所請求的數據的副本的Ll緩存將把該數據返回給緩存一致性管理器 200的介入單元210。經由緩存一致性管理器200的響應單元215將該數據傳送給請求核。 在其它實施例中,如果包含該數據的緩存行不具有無效狀態(tài),則返回存儲在Ll緩存IK1中 的數據。在一個實施例中,如果在同一個一致域中存在以共享狀態(tài)在它們各自的Ll緩存 行中具有所請求的數據的副本的多個核,則為了優(yōu)化的目的,從系統存儲器提供所請求的 數據。在一個實施例中,如果一致域中的核的一致讀取請求是共享請求并且確定該一致域 中的其它核都不包含所請求的數據的副本,則將共享狀態(tài)升級到獨占狀態(tài)。該升級確保當 該一致域中的另一個核隨后請求對同一數據的訪問時,由以獨占狀態(tài)具有該數據的副本的 核來提供所請求的數據。將來自核中的任何核的一致讀取請求轉發(fā)給存儲器接口單元220以用于對存儲 器300的推測讀取。推測讀取假設在與請求核一致的核中的任何核中都將不會找到所請求 的數據。如果響應于介入消息找到所請求的數據,則對存儲器300的推測讀取在它還未被 存儲器接口單元220發(fā)出的情況下被取消,或者可替選地,該響應在它從系統存儲器300返 回時被丟棄。參照圖2A和圖3,微處理器100還被示為包括(部分地)1/0 —致單元325,適合 于與一致性管理器200協作操作,以根據屏蔽寄存器260中所存儲的數據有選擇地提供I/ 0單元310、I/O單元320與核105”1052、1053和1054中的一個或更多個核之間的一致性。 例如,可以將屏蔽寄存器260配置成建立I/O單元310與核IOS1UOS2之間、或者I/O單元 310與核IOSiUOS2UOS3* 1054之間、或者任何其它組合的一致性。還可以經由屏蔽寄存器 260中所存儲的數據有選擇地建立I/O單元320與一個或更多個核IOSiUOS2UOS3和1054之間的一致性。在圖2A中,I/O單元310、I/O單元320被示為經由系統總線30與I/O— 致單元325通信。在其它實施例中,I/O單元310、1/0單元320經由不同的總線(未示出) 與I/O —致單元325通信。例如,假設要維持I/O單元310與全部四個核1051、1052、1053和1054相一致,并且 要維持I/O單元320與核IOS1和1053相一致。相應地,屏蔽寄存器260配置有這種數據 其使得將任何來自I/O單元310的針對數據的一致讀取請求作為介入消息轉發(fā)給全部四個 緩存115ρ1152、1153和1154類似地,如果例如I/O單元310發(fā)出一致寫入請求,則根據屏 蔽寄存器260中的數據使存在于緩存115ρ1152、1153* 1154中的任何緩存中的任何舊數據 無效。類似地,屏蔽寄存器260配置有這種數據其使得將任何來自I/O單元320的針對數 據的一致讀取請求作為介入消息轉發(fā)給緩存IOS1和1053。結果是,如上所述根據本發(fā)明的一個實施例,可以將屏蔽寄存器260配置成實現 I/O單元310與例如核105”1052、1053和1054之間的一致性,而同時,⑴維持I/O單元320 與例如核1052、1054相一致,(ii)維持核105!與核1052彼此一致,并且(iii)維持核1053 與核1054彼此一致,而(iv)維持核IOS1、核1052與核1053、核1054不一致。屏蔽寄存器260 包含針對每個核或每個I/O設備識別介入消息能來自何處、或者介入消息將被發(fā)送給哪些 核的數據。這樣,屏蔽寄存器260使得用戶能夠獨立地且有選擇地定義數據處理系統的各 種處理核、I/O單元等之間的一致性關系。在一些實施例中,定義各種核之間的一致性關系 的數據存儲在被布置在例如一致性管理器中的隨機存取存儲器(RAM)中。在又一個實施例 中,可以使用硬連線電路來提供該數據。圖4示出了被分區(qū)成三個一致域的微處理器100中的核,根據這些域,核IOS1與核 1052、1053和1054中的每個核相一致,而維持核1052、1053和1054互不一致。當核IOS1被 配置為專用于控制層面功能的主核而核1052、1053和1054被配置為專用于數據層面功能的 從核時,可以使用對一致域的該分區(qū)。數據層面中的每個從核是獨立的,并且對不同的數據 集進行操作。因此,從核不需要彼此緩存一致。然而,主核Ios1被配置成監(jiān)管并控制從核 1052、1053和1054的活動。相應地,根據屏蔽寄存器260中所加載的數據維持主核IOS1與 從核1052、1053和1054緩存一致。假設維持I/O單元310與全部四個核105” 1052、1053和 1054相一致,并且假設維持I/O單元320與核IOS1和1053相一致。包括緩存一致性管理器的多核處理器(例如處理器100)可以與不具有維持緩存 一致性所需的邏輯的其它處理器一起使用。圖5是包括處理器100 (圖2)、系統存儲器300 以及處理器400、450和460的系統的框圖。處理器400包括(部分地)L1緩存415和緩存控制邏輯420。處理器400使用 端口 480維持與一致性管理器200的直接通信。假設處理器400不包括緩存一致性管理器 或介入端口。因此,不能維持處理器400的Ll緩存415與Ll緩存IIS1UIS2UIS3* 1154 中的任何緩存相一致。假設處理器400要保持與核IOSiUOS2UOS3和1054完全不一致。相 應地,如果處理器400所請求的數據不存在于其相關聯的Ll緩存415中,則處理器400在 可選的L2緩存305或系統存儲器300中查找該數據。因為處理器400與核IOS1UOS2UOS3 和1054完全不一致,所以它不在緩存115ρ1152、1153* 1154中的任何緩存中查找所請求的 數據。處理器450包括Ll緩存465和緩存控制邏輯470。處理器450使用端口 490維持與一致性管理器200的直接通信。還假設處理器450不包括緩存一致性管理器或介入端 口。因此,不能維持處理器450的Ll緩存465與Ll緩存IIS1UIS2UIS3* 1154中的任何 緩存相一致。假設,例如,要保持處理器450與核IOS1和核1052部分地一致,如屏蔽寄存器 260所定義的。如果具有不包括介入端口和/或緩存一致性管理器的緩沖存儲器的處理器 被配置成在訪問系統存儲器或L2緩存之前首先在被布置在其它核中的緩沖存儲器中查找 所請求的數據,則將該處理器定義為與其它核部分地不一致。因此,如果例如處理器450所 請求的數據不存在于其相關聯的Ll緩存465中,則根據屏蔽寄存器260中所存儲的數據使 得將其讀取請求作為介入消息發(fā)送給核IOS1和1052。如果這些核都不具有所請求的數據 的副本,則訪問L2緩存305或系統存儲器300以獲得該數據。類似地,當處理器450請求 例如寫入操作時,需要使核IOS1和核1052中存在的該數據的任何舊副本無效。處理器460不包括Ll緩存,并使用端口 495維持與一致性管理器200的直接通信。 因為假設處理器460不包括緩沖存儲器,所以它可以保持與緩沖存儲器IOSiUOS2UOS3和 1054完全一致。例如,處理器460響應于讀取請求接收所請求的數據的最新副本。同樣地,當處理器460發(fā)出寫入請求時,存在于緩沖存儲器IOSiUOS2UOS3和1054中的任何緩沖存 儲器中的任何舊數據變成無效。圖6是根據本發(fā)明一個示例性實施例的被執(zhí)行以建立并維持多個一致域的步驟 的流程圖500。為實現這一點,存儲502將每個一致請求的目標映射到一致請求的源的若干 條目;該映射定義各種一致性關系。為了維持一致域,當接收到一致請求時,識別504該請 求的源。作為響應,根據所存儲的條目,將介入消息發(fā)送506給每個被定義為與請求核處于 同一個一致域中的核。接下來,在接收介入消息的核的緩沖存儲器中查找508所請求的數 據。如果出現510緩存命中,則按照請求類型以及數據的一致性狀態(tài),使得請求核可從導致 生成緩存命中信號的緩存得到對所請求的數據的訪問。如果出現緩存未命中,則使得請求 核512可經由系統存儲器或者可選的L-2或L-3緩存得到對所請求的數據的訪問。圖7示出了被配置成建立以上參照圖4所描述的多個一致域的屏蔽寄存器260 中所存儲的示例性數據。核IOS1所發(fā)出的請求導致選擇條目編號1,S卩,“000”,根據與此 條目相關聯的掩碼值“001111”,其繼而使得將介入消息發(fā)送給所有的核Ios1UOS2UOS3和 1054。核1052所發(fā)出的請求導致選擇條目編號2,S卩,“001”,根據與此條目相關聯的掩碼值 “000011”,其繼而使得將介入消息發(fā)送給核IOS1和核1052。核1053所發(fā)出的請求導致選 擇條目編號3,S卩,“010”,根據與此條目相關聯的掩碼值“000101”,其繼而使得將介入消息 發(fā)送給核IOS1和核1053。核1054所發(fā)出的請求導致選擇條目編號4,S卩,“011”,根據與此 條目相關聯的掩碼值“001101”,其繼而使得將介入消息發(fā)送給核IOS1、核1053和核1054。 I/O單元310所發(fā)出的請求導致選擇條目編號5,即,“ 100”,根據與此條目相關聯的掩碼值 “001111”,其繼而使得將介入消息發(fā)送給所有的核IOSiUOS2UOS3* 1054。I/O單元320所 發(fā)出的請求導致選擇條目編號1,即,“101”,根據與此條目相關聯的掩碼值“000101”,其繼 而使得將介入消息發(fā)送給核IOS1和核1053。通過定義多個一致域并確保僅在能夠從它們的一致性獲益的設備(例如,核、I/O 等)之間維持一致性,得到許多益處。就減少緩存查找數量以及調用更少的響應而言,實現 性能提升并且減少功耗。緩存查找的減少還可以免除為每個緩存配備復制的標記陣列的需 要,其中,一個這種陣列用于常規(guī)緩存流量,并且另一個用于介入流量。由于建立多個一致域而引起的一致流量的減小可以使一致流量最小化到如下程度緩存大小的所得到的增加 勝過包括第二緩存標記陣列以容納一致流量的任何好處。換言之,由于只在如此需要的設 備之間維持一致性,因此減少了介入消息的數量,因而可以避免每個緩存內復制的標記陣 列的需要。因此,其上形成本發(fā)明的處理器的半導體晶片可以具有更小的尺寸。
圖8是根據本發(fā)明另一個實施例的緩存一致性管理器200的框圖。圖8中所示的 緩存一致性管理器的實施例使用Ll緩存標記陣列360來維持一致域。Ll緩存標記陣列360 是核中所存儲的聚集的Ll緩存標記的副本,并且可以被邏輯分區(qū)成分別與Ll緩存115” 1152、1153和1154相關聯的四個標記陣列SeS1JeS2JeS3和3654。將與發(fā)起請求的核相關 聯的標識符與屏蔽寄存器260中所存儲的索引相比較,以確定隨后將被搜索以便繼而識別 將接收相應介入消息的核105,的Ll標記陣列分區(qū)365”換言之,在Ll緩存標記陣列360 中搜索所得到的命中識別出核中的哪個(如果有的話)核包含所請求的數據,并且將使得 將介入消息僅發(fā)送給該核。Ll緩存標記陣列360消除了每個核內具有專用的復制的緩存標 記的需要。圖9是根據本發(fā)明另一個實施例的緩存一致性管理器200的框圖。圖9中所示的 緩存一致性管理器的實施例使用目錄600來維持一致域。目錄600與屏蔽寄存器260 —起 適合于遵照所建立的一致性關系并基于該請求的地址來引導介入消息。對于每個一致請 求,目錄600識別出可能是該請求的目標的一個或更多個核并將該信息提供給屏蔽寄存器 260。作為響應并根據該信息,屏蔽寄存器260使用其中所存儲的掩碼值來使得將介入消息 轉發(fā)給有可能包含所請求的數據的核。接收該介入消息的核將在其各自的Ll緩存中搜索 該數據。根據規(guī)則更新目錄600,這些規(guī)則使得目錄600能夠識別出未存儲在緩存中的任 何緩存中的一致數據。然而,被目錄600識別為存儲在Ll緩存中的數據可能實際上并不存 在于該緩存中。被目錄600識別為存儲在緩存中并且隨后被檢測為存在于該緩存中的數據 在存儲該數據的緩存行不處于無效狀態(tài)的情況下被視為有效。目錄600使用尋址方案來確 定介入消息的目標。在一些實施例中,遵照緩存一致性管理器所定義的多個一致域對主存儲器300進 行邏輯分區(qū)。這樣,將每個一致域映射到并關聯到存儲器300內一定范圍的地址。使用與 請求相關聯的地址來識別被搜索以訪問所請求的數據的主存儲器分區(qū)。例如,參照圖4,假設存儲器300被分區(qū)以支持核IOS1與核1052、核1053和核1054 中的每個核之間的一致性,以及核1052、核1053和核1054之間的不一致性。圖10是存儲器 300的這種分區(qū)的示例。涵蓋0與L之間的地址范圍的分區(qū)350被示為專用于存儲維持核 IOS1與核1052之間的一致性的數據的副本。涵蓋L+1與M之間的地址范圍的分區(qū)355被 示為專用于存儲維持核IOS1與核1053之間的一致性的數據的副本。涵蓋M+1與N之間的 地址范圍的分區(qū)360被示為專用于存儲適合于維持核IOS1與核1054之間的一致性的數據 的副本。涵蓋N+1與0之間的地址范圍的分區(qū)365被示為專用于存儲適合于維持所有的核 IOSiUOS2UOS3* 1054上的一致性的數據的副本。涵蓋0+1與P之間的地址范圍的分區(qū)370 被示為專用于存儲僅被核IOS1使用的數據的副本。涵蓋大于P+1的地址范圍的分區(qū)375被 示為專用于存儲非可緩存的數據。在一些實施例中,被布置在緩存一致性管理器200中的 介入單元210操縱主存儲器300的邏輯分區(qū)以及每個一致域與相關聯的存儲器300的分區(qū)之間的映射。如上所述,在一個實施例中,使用與請求相關聯的地址來提供所需映射并訪問 相應的存儲器分區(qū)。在另一個實施例中,使用與發(fā)出請求的核相關聯的標識符來提供所需映射并訪問相應的存儲器分區(qū)。在又一個實施例中,使用請求地址和與發(fā)出請求的核相關 聯的標識符的組合來提供所需映射并訪問相應的存儲器分區(qū)。圖11圖解了在其中可以實施本發(fā)明的示例性計算機系統1000。計算機系統1000 通常包括一個或更多個輸出設備1100,包括顯示設備(例如,CRT、IXD、OLED、LED、氣體等 離子體、電子墨水、或其它類型的顯示器)、揚聲器以及其它音頻輸出設備、和觸覺輸出設備 (例如,激振器);計算機1200 ;鍵盤1300 ;輸入設備1400 ;以及網絡接口 1500。輸入設備 1400可以包括計算機鼠標、軌跡球、操縱桿、觸控板、繪圖板、觸摸屏、麥克風、各種傳感器、 和/或其它允許用戶或環(huán)境與計算機系統1000交互的有線或無線輸入設備。網絡接口 1500 通常提供與電子通信網絡(例如,局域網;廣域網,例如因特網;和/或虛擬網絡,例如虛擬 專用網(VPN))的有線或無線通信。網絡接口 1500可以實施一種或更多種有線或無線網絡 技術,包括以太網、802. 11標準中的一個或更多個標準、藍牙、以及超寬帶聯網技術。計算機1200通常包括諸如一個或更多個通用處理器1600的組件、以及諸如隨機 存取存儲器(RAM) 1700和非易失性存儲器1800的存儲器存儲設備。非易失性存儲器1800 可以包括軟盤;固定的或可移動的硬盤;諸如DVD-ROM、CD-ROM以及條形碼的光存儲媒體; 諸如閃存的非易失性半導體存儲設備;只讀存儲器(ROM);電池供電的易失性存儲器;紙或 其它打印介質;以及聯網的存儲設備。系統總線1900將以上組件互連。處理器1600可以 是諸如上述多處理器100的多處理器系統。RAM 1700和非易失性存儲器1800是用于存儲數據、音頻/視頻文件、計算機程序、 小應用程序解釋器或編譯器、虛擬機、以及上述的本發(fā)明的實施例的有形介質的示例。例 如,本發(fā)明的處理器的上述實施例可以被表示為使得能夠進行計算機系統和/或集成電路 的設計、描述、建模、仿真、測試、集成、和/或制造的人可讀的或計算機可用的程序和數據 文件。這種程序和數據文件可以用于以單獨集成電路的形式實施本發(fā)明的實施例,或者用 于將本發(fā)明的實施例與其它組件集成以形成組合的集成電路,例如,微處理器、微控制器、 片上系統(SoC)、數字信號處理器、嵌入式處理器、或專用集成電路(ASIC)。表達本發(fā)明實施例的程序和數據文件可以使用通用編程或腳本語言,例如C或 C++ ;硬件描述語言,例如VHDL或Verilog ;微碼,實施于RAM、ROM中,或者被硬連線并適合 于控制并協調處理器或其它集成電路內的組件的操作;和/或標準或專有格式數據文件, 適用于本領域中已知的電子設計自動化軟件應用。程序和數據文件可以按各種抽象級別表 達本發(fā)明的實施例,包括按功能描述、按邏輯門和其它電路組件的綜合網表、以及按適用 于半導體制造工藝的集成電路布圖或一組掩模。計算機所執(zhí)行的電子設計自動化軟件可以 處理這些程序和數據文件,以設計處理器并生成用于其制造的掩模。計算機1200進一步的實施例可以包括用于配置、操作、仿真、測試在集成電路的 設計、測試和制造中使用的專用硬件和軟件并且與之通信的專用輸入、輸出以及通信子系 統。雖然本發(fā)明的以上實施例是參照具有四個核的處理器作出的,但可以理解的是, 處理器可以具有多于或少于四個核??驁D中所示出的各種設備的數量和布置是為清楚和易 于理解起見。可以理解的是,塊的組合、新塊的添加、塊的重新布置等落入本發(fā)明的可替選實施例內。例如,任意數量的I/O、一致多核處理器、系統存儲器、L2緩存和L3緩存以及不 一致緩存或無緩存處理核也可以用在單個系統中并根據屏蔽寄存器進行分區(qū)以形成多個 一致域和不一致域。另外,雖然本發(fā)明是參照用屏蔽寄存器定義各種一致域來進行描述的, 但可以理解的是,根據本發(fā)明,可以使用任何其它存儲介質(例如RAM)以及任何其它技術 (例如查找表)等來建立一致域并提供一致請求的發(fā)起者與所引起的介入消息的目標之間 的映射??梢岳斫獾氖?,本文中所描述的裝置和方法可以被包括在諸如微處理器核的半導 體知識產權核中(例如,被表達為硬件描述語言描述或綜合網表),并在集成電路的生產中 被轉變成硬件。另外,可以使用硬件與軟件的組合(包括適用于在處理器內執(zhí)行的微碼) 來實施本發(fā)明的實施例。本發(fā)明的以上實施例是示例性的而非限制性的??纱嬖诟鞣N替選方案和等同物。本發(fā)明不限于可以布置本公開的集成電路的類型。本發(fā)明也不限于任何具體類型的工藝技 術,例如,CMOS、雙極、BICM0S、或其它可以用于制造本發(fā)明各種實施例的方式。其它的增、減 或修改根據本發(fā)明是明顯的并且意在落入所附權利要求的范圍內。
權利要求
一種微處理器,包括多個處理核;以及緩存一致性管理器,其適合于定義所述多個處理核之間的多個一致性關系,以使得被表征為與一致性關系相關聯的流量僅在被定義為具有所述一致性關系的處理核之間流動。
2.根據權利要求1所述的微處理器,其中,響應于從所述多個處理核中的第一處理核 接收請求,所述緩存一致性管理器將介入消息發(fā)送給所述多個處理核的被定義為與所述多 個處理核中的所述第一處理核具有一致性關系的第一子集,所述第一子集包括所述多個處 理核中的所述第一處理核。
3.根據權利要求2所述的微處理器,其中,根據從由可編程寄存器、隨機存取存儲器和 硬連線電路組成的組提供的數據定義所述多個一致性關系。
4.根據權利要求2所述的微處理器,其中,所述緩存一致性管理器還包括邏輯電路,其 適合于如果所述請求是讀取訪問請求,并且所述請求所標識的數據存儲在與所述多個處理核 中被布置在所述第一子集中的第二處理核相關聯的緩沖存儲器中,則將所述數據從與所述 多個處理核中的所述第二處理核相關聯的所述緩沖存儲器傳送給所述多個處理核中的所 述第一處理核。
5.根據權利要求4所述的微處理器,其中,所述緩存一致性管理器還包括邏輯電路,其 適合于如果所述數據未存儲在與所述第一子集相關聯的所述緩沖存儲器中,則將所述數據從 2級緩存和系統存儲器中的一個傳送給所述多個核中的所述第一核。
6.根據權利要求3所述的微處理器,其中,所述緩存一致性管理器還包括邏輯電路,其 適合于根據所提供的數據維持第一輸入/輸出設備與所述多個處理核的第二子集相一致, 所述輸入/輸出設備經由系統總線耦合到所述微處理器。
7.根據權利要求1所述的微處理器,其中,所述多個處理核中的至少一個處理核包括 單個緩存標記陣列。
8.根據權利要求2所述的微處理器,其中,所述緩存一致性管理器還包括邏輯塊,其適 合于將主存儲器邏輯分區(qū)成多個可尋址的區(qū)域,每個區(qū)域被配置成存儲與所述一致性關系 中一個不同的一致性關系相關聯的一致數據,所述主存儲器經由系統總線耦合到所述微處理器。
9.根據權利要求2所述的微處理器,其中,所述緩存一致性管理器被配置成根據與所 述多個處理核中的所述第一處理核相關聯的標識符以及所述請求所定義的地址中的一個, 將所述介入消息發(fā)送給所述多個處理核的所述第一子集。
10.一種在被布置在微處理器中的多個處理核之間控制一致流量的方法,該方法包括允許在所述多個處理核中被定義為具有一致性關系的第一組處理核之間的一致流量 的流動;以及禁止所述多個處理核中被定義為不具有一致性關系的第二組處理核之間的一致流量 的流動。
11.根據權利要求10所述的方法,還包括從所述多個處理核中的第一處理核接收第一請求;以及將介入消息發(fā)送給所述多個處理核的被定義為與所述多個處理核中的所述第一處理 核具有一致性關系的第一子集,所述第一子集包括所述多個處理核中的所述第一處理核。
12.根據權利要求11所述的方法,還包括如果所述第一請求是讀取請求,并且所述第一請求所標識的數據存儲在與所述多個處 理核中被布置在所述第一子集中的第二處理核相關聯的緩沖存儲器中,則將所述數據從與 所述多個處理核中的所述第二處理核相關聯的所述緩沖存儲器傳送給所述多個處理核中 的所述第一處理核。
13.根據權利要求11所述的方法,還包括維持第一輸入/輸出設備與所述多個處理核的第二子集之間的一致性,所述輸入/輸 出設備經由系統總線耦合到所述微處理器。
14.根據權利要求13所述的方法,還包括維持被布置在所述微處理器中的所述多個處理核中的所述第一處理核與所述多個處 理核中的所述第二處理核之間的緩存一致性;維持被布置在所述微處理器中的所述多個處理核中的第一處理核與所述多個處理核 中的所述第三處理核之間的緩存一致性;以及維持所述多個處理核中的所述第二處理核與所述多個處理核中的所述第三處理核之 間的緩存不一致性。
15.根據權利要求11所述的方法,還包括將單個緩存標記陣列布置在所述多個處理核中的至少一個處理核中。
16.根據權利要求11所述的方法,還包括根據從由可編程寄存器、隨機存取存儲器和硬連線電路組成的組提供的數據來定義所 述一致性關系。
17.根據權利要求11所述的方法,還包括經由系統總線將主存儲器耦合到所述微處理器;以及將所述主存儲器邏輯分區(qū)成多個區(qū)域,每個區(qū)域適合于存儲與多個一致性關系中一個 不同的一致性關系相關聯的一致數據。
18.根據權利要求11所述的方法,還包括根據與所述多個處理核中的所述第一處理核相關聯的標識符以及所述請求所定義的 地址中的一個,將所述介入消息發(fā)送給所述多個處理核的所述第一子集。
19.一種計算機可讀存儲介質,包括定義微處理器的邏輯塊的指令,所述微處理器包括 多個處理核,所述計算機可讀存儲介質適合于由計算機所執(zhí)行的電子設計自動化應用來使 用,其中,所述邏輯塊被配置成進行操作,該操作包括允許在所述多個處理核中被定義為具有一致性關系的第一組處理核之間的一致流量 的流動;以及禁止所述多個處理核中被定義為不具有一致性關系的第二組處理核之間的一致流量 的流動。
20.根據權利要求19所述的計算機可讀存儲介質,其中,所述邏輯塊還適合于進行操 作,該操作包括從所述多個處理核中的第一處理核接收第一請求;以及將介入消息發(fā)送給所述多個處理核的被定義為與所述多個處理核中的所述第一處理 核具有一致性關系的第一子集,所述第一子集包括所述多個處理核中的所述第一處理核。
21.根據權利要求20所述的計算機可讀存儲介質,其中,所述邏輯塊還適合于進行操 作,該操作包括如果所述第一請求是讀取請求,并且所述第一請求所標識的數據被存儲在與所述多個 處理核中被布置在所述第一子集中的第二處理核相關聯的緩沖存儲器中,則將所述數據從 與所述多個處理核中的所述第二處理核相關聯的所述緩沖存儲器傳送給所述多個處理核 中的所述第一處理核。
22.根據權利要求20所述的計算機可讀存儲介質,其中,所述邏輯塊還適合于進行操 作,該操作包括維持第一輸入/輸出設備與所述多個處理核的第二子集之間的一致性,所述輸入/輸 出設備經由系統總線耦合到所述微處理器。
23.根據權利要求19所述的計算機可讀存儲介質,其中,所述多個處理核中的至少一 個處理核包括單個緩存標記陣列。
24.根據權利要求20所述的計算機可讀存儲介質,其中,所述邏輯塊還適合于進行操 作,該操作包括將主存儲器邏輯分區(qū)成多個區(qū)域,每個區(qū)域適合于存儲與多個一致性關系中一個不同 的一致性關系相關聯的一致數據。
25.根據權利要求20所述的計算機可讀存儲介質,其中,所述邏輯塊還適合于進行操 作,該操作包括根據與所述多個處理核中的所述第一處理核相關聯的標識符以及所述請求所定義的 地址中的一個,將所述介入消息發(fā)送給所述多個處理核的所述第一子集。
全文摘要
在被布置在微處理器中的多個處理核之間維持若干一致域。緩存一致性管理器定義一致性關系,以使得一致流量僅在被定義為具有一致性關系的處理核之間流動。定義處理核之間的一致性關系的數據可選地存儲在可編程寄存器中。針對一致請求的每個源,在可編程寄存器中識別該請求的處理核目標。響應于一致請求,將介入消息僅轉發(fā)給被定義成與請求核處于同一個一致域中的核。如果響應于一致讀取請求出現緩存命中并且引起該命中的緩存行的一致性狀態(tài)滿足條件,則使得請求核可從該緩存行得到所請求的數據。
文檔編號G06F11/00GK101802790SQ200880108013
公開日2010年8月11日 申請日期2008年9月19日 優(yōu)先權日2007年9月21日
發(fā)明者瑞安·C·金特 申請人:美普思科技公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
海阳市| 冀州市| 灵山县| 乌兰察布市| 建水县| 资中县| 镇康县| 白水县| 津南区| 鹤庆县| 凤台县| 余庆县| 柞水县| 宁化县| 洛隆县| 常熟市| 当雄县| 临澧县| 博罗县| 滕州市| 霍林郭勒市| 建平县| 延寿县| 永仁县| 龙胜| 油尖旺区| 新蔡县| 葫芦岛市| 叙永县| 秀山| 乐亭县| 长垣县| 恩平市| 洪江市| 江山市| 吕梁市| 湖北省| 芒康县| 昭通市| 师宗县| 慈利县|