1. 程式人生 > >Intel Core & Enhanced Core微架構(10)

Intel Core & Enhanced Core微架構(10)

Intel® Advanced Memory Access

Intel Core微架構中的每個處理器核都包含一個指令快取和一個一級資料快取。兩個處理器核共享一個2M或4M位元組大小的二級混合式快取(既存放資料也儲存指令)。兩級快取都是回寫式更新策略且是非包含式快取(即一級快取中的快取行未必一定包含在二級快取中)。每個處理器核包括:

  • 一級資料快取,也叫資料快取單元DCU – DCU可以同時處理多個未完成快取未命中事件,持續為讀存操作和寫存操作提供服務,而且維護快取一致性。DCU的規格如下:
    • 32K位元組大小
    • 8路組相聯
    • 64位元組長度的快取行
  • 資料(地址)轉換旁查快取區DTLB – Intel Core微架構的DTLB分為兩級:內級DTLB0和外級DTLB1。每級DTLB都有多個條目,可以支援4K位元組大小的儲存器頁,或更大的頁。內級DTLB0的條目用於讀存操作。外級DTLB1的條目支援寫存操作以及在DTLB0中未命中的讀存操作。所有的條目都是4路相聯。下面是每級DTLB的條目特徵:
    • DTLB0的大頁條目:16個
    • DTLB0的4K頁面條目:16個
    • DTLB1的4K頁面條目:256個
    • DTLB1的大頁條目:32個

DTLB0未命中但是DTLB1命中會導致到2個週期的損失。只有當DTLB0被用於分發情況時,軟體才會感受到這種損失。由於Intel智慧儲存器訪問機制,與DTLB1未命中以及缺頁處理程式相關的延遲大部分都是非阻塞的。

  • 缺頁處理程式(page miss handler - PMH)
  • 訪存排序快取區MOB –
    • 允許投機式且亂序地發射讀存和訪存操作
    • 確保讀存與訪存操作在退役時有正確的資料
    • 確保讀存和訪存操作遵守Intel 64和IA32架構的訪存排序規則

Intel Core微架構的儲存器簇具有下列特性來加速訪存操作:

  • 128位(16位元組)的讀存和訪存操作
  • 資料預取到一級快取
  • 資料預取邏輯,預取資料到二級快取
  • 儲存轉發
  • 訪存消歧(memory disambiguation)
  • 8個行填充緩衝區(fill buffer)條目
  • 20儲存緩衝區條目
  • 訪存操作的亂序執行
  • 流水線化的屬主讀請求(read-for-ownership)操作