0
他們是否在物理上共享相同的時鐘?其次,是隨機訪問共享內存,還是一個內核優先於另一個。例如,考慮一個2核心處理器,核心1和核心2試圖在同一時鐘訪問相同的內存。核心1將被允許先訪問該共享內存,然後是核心2還是隨機的?時鐘振盪器是否在多核處理器的核心之間共享?
他們是否在物理上共享相同的時鐘?其次,是隨機訪問共享內存,還是一個內核優先於另一個。例如,考慮一個2核心處理器,核心1和核心2試圖在同一時鐘訪問相同的內存。核心1將被允許先訪問該共享內存,然後是核心2還是隨機的?時鐘振盪器是否在多核處理器的核心之間共享?
這取決於。首先,多核處理器遠不止於內存訪問。他們在本地緩存上運行。當兩個緩存都需要與主內存重新同步時,是否有優先級,肯定是設計特定的。首先,進行突發傳輸會使得飢餓的可能性降低,因爲當兩個突發在同一個時鐘週期開始時,您只會實際使用優先級。除固定優先級和「隨機」之外的另一個選項將是循環法(無論如何,「隨機」很難實現)。
即使在內核和本地核心緩存可能使用獨立時鐘的情況下(例如TurboBoost或EIST),只有一個內存訪問時鐘。
時鐘交叉只是緩存電路的許多複雜性之一。
是的,我瞭解當地的緩存。但是可以說,訪問的位置不在本地緩存中,那麼誰先訪問共享L2緩存?甚至是使用本地緩存,誰可以先修改共享位置?因爲無論何時修改它們,緩存一致性都會使另一個內核緩存中的相同位置失效。 – MetallicPriest
@MetallicPriest:緩存一致性協議確定。只有一個緩存可以處於「擁有」狀態,允許轉換爲「修改」狀態。 (在MOESI上也有一個「獨佔」狀態,但你的問題不包括這一點)如果兩個請求都同時從「共享」轉換爲「擁有」,那麼請參閱上文,它可能是用循環法完成的。 –
讓我們假設它們都處於共享狀態,現在在同一個時鐘週期內他們都想要修改,那麼誰先做到這一點?如果像你說的那樣,有一個循環機制,這是否意味着一個特定的核心會始終在另一個核心之前確定地執行它? – MetallicPriest