TWI851033B - 去中心化的熱快取線追蹤公平機制 - Google Patents
去中心化的熱快取線追蹤公平機制 Download PDFInfo
- Publication number
- TWI851033B TWI851033B TW112105755A TW112105755A TWI851033B TW I851033 B TWI851033 B TW I851033B TW 112105755 A TW112105755 A TW 112105755A TW 112105755 A TW112105755 A TW 112105755A TW I851033 B TWI851033 B TW I851033B
- Authority
- TW
- Taiwan
- Prior art keywords
- cache line
- requested
- state
- cache
- access
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3816—Instruction alignment, e.g. cache line crossing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
- G06F12/0857—Overlapped cache accessing, e.g. pipeline by multiple requestors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Transfer Between Computers (AREA)
Abstract
實施例係用於使用一去中心化的熱快取線追蹤公平機制。回應於接收到存取一快取線之一傳入請求,基於用於維護該快取線之一所請求狀態及一所服務狀態而作出授予對該快取線之存取之一判定,一結構包含該所請求狀態及該所服務狀態。回應於授予對該快取線之存取之該判定,將該所請求狀態及該所服務狀態連同該快取線之資料一起傳送。
Description
本發明大體上係關於電腦系統,且更特定言之,係關於經組態及配置以用於使用去中心化的熱快取線追蹤公平機制的電腦實施方法、電腦系統及電腦程式產品。
在相同抽屜中具有多個處理器晶片及/或在共用一或多個快取之其他抽屜中具有多個處理器晶片的運算環境中,彼等處理器晶片可存取相同快取線。快取線或線為特定大小(例如,256個位元組)之資料之一部分,其適合快取中之單一快取項目。在資料在記憶體與快取之間傳送時,在快取線粒度上管理一致性。為了確保快取線之一致性,使用窺探請求(亦被稱作窺探或提取請求)。藉由自請求快取接收窺探請求、判定此快取是否具有處於適當狀態的快取線之複本、將快取線發送至請求快取及更新此快取中之快取線的狀態來處理窺探請求。
快取結構及其相關服務為處理器晶片提供其共用資料之資料一致性。相同抽屜上之許多處理器晶片及/或不同抽屜上之處理器晶片可能試圖存取同一快取線。需要改良對共用快取之快取線的存取之技術。
本發明之實施例係針對用於使用去中心化的熱快取線追蹤公平機制之電腦實施方法。一種非限制性電腦實施方法包括回應於接收到存取一快取線之一傳入請求,基於與該快取線相關聯之一所請求狀態及一所服務狀態而作出授予對該快取線之存取之一判定。該方法包括回應於授予對該快取線之存取之該判定,將該等所請求狀態及該等所服務狀態連同該快取線之資料一起傳送。
此可提供對用於處理快取請求之已知方法的改良,其藉由有效提供公平追蹤機制以確保需要存取快取線之所有請求者將以及時且公平的方式獲得對該線之存取。本發明之一或多個實施例藉由使用去中心化的、階層式熱快取線公平機制克服先前實施之可縮放性問題。
除上文或下文所描述之特徵中之一或多者外或作為替代例,在本發明之其他實施例中,將所請求狀態及所服務狀態傳送至作出傳入請求之控制器。一或多個實施例有利地使用經分配、解除分配且與每一快取線相關聯之兩個向量,且此等向量隨每一快取線之資料圍繞系統傳遞,從而消除設計中對大型集中式實體空間之需要。另外,此等向量經分層結構化,從而減小所需儲存空間。
除上文或下文所描述之特徵中之一或多者外或作為替代例,在本發明之其他實施例中,自已接收到傳入請求之控制器傳送所請求狀態及所服務狀態。一或多個實施例有利地每快取線使用兩個向量,且此等向量隨每一快取線之資料圍繞系統傳遞,從而消除設計中對大型集中式實體空間之需要。另外,此等向量經分層結構化,從而減小所需儲存空間。
除上文或下文所描述之特徵中之一或多者外或作為替代例,在本發明之其他實施例中,所請求狀態經組態以追蹤被觀測到但尚未授予的存取快取線之請求。一或多個實施例有利地提供並行工作以形成其中已請求熱快取線且其中快取線已經被授予存取的經編碼狀態之兩個向量,藉此消除設計中對大型集中式實體空間之需要。若存在先前請求快取線而尚未被授予存取之其他請求者,則重新請求同一快取線(之前已被授予對該熱快取線之存取)的請求者不能再次接收該快取線。
除上文或下文所描述之特徵中之一或多者外或作為替代例,在本發明之其他實施例中,所服務狀態經組態以追蹤被觀測到且已被授予對快取線之存取的存取快取線之請求。一或多個實施例有利地提供並行工作以形成其中已請求熱快取線且其中該熱快取線已經被授予存取的經編碼狀態之兩個向量,藉此消除設計中對大型集中式實體空間之需要。若存在先前請求快取線而尚未被授予存取之其他請求者,則重新請求同一快取線(之前已被授予對該熱快取線之存取)的請求者不能再次接收該線。
除上文或下文所描述之特徵中之一或多者外或作為替代例,在本發明之其他實施例中,所請求狀態及所服務狀態經組態以待傳送至運算環境中之多個控制器。本發明之一或多個實施例藉由使用去中心化的、階層式熱快取線公平機制克服先前實施之可縮放性問題。
本發明之實施例係針對用於使用去中心化的熱快取線追蹤公平機制之方法。一種非限制性電腦實施方法包括回應於自一請求者接收到存取一快取線之一傳入請求,基於與該快取線相關聯之一所請求狀態及一所服務狀態而作出拒絕對該快取線之存取之一判定,一結構包含該所請求狀態及該所服務狀態。該方法包括回應於拒絕對該快取線之存取的該判定而將一位元設定於該等所請求狀態中,該位元對應於該請求者。該方法包括:回應於自該請求者接收到存取該快取線之另一傳入請求,基於該等所請求狀態及該等所服務狀態中設定之該位元針對該另一傳入請求作出授予對該快取線之存取的另一判定;及將該等所請求狀態及該等所服務狀態連同該快取線之資料一起傳送至該請求者。
此可藉由有效提供公平追蹤機制提供對用於處理快取請求之已知方法的改良,該公平追蹤機制確保需要存取快取線之所有請求者將以及時且公平的方式獲得對快取線之存取。本發明之一或多個實施例藉由使用去中心化的、階層式熱快取線公平機制克服先前實施之可縮放性問題。
本發明之其他實施例在電腦系統及電腦程式產品中實施上述方法之特徵。
額外技術特徵及益處係藉由本發明之技術實現。本發明之實施例及態樣在本文中經詳細描述且被視為所主張主題之一部分。為了更好地理解,參考實施方式及圖式。
本發明之一或多個實施例經組態以提供去中心化的熱快取線追蹤公平機制。本發明之一或多個實施例提供一種用於使用經分配、解除分配且與每一快取線相關聯之兩個向量來去中心化地追蹤熱線(快取線)請求之技術。一個向量為所請求向量,且另一向量為所服務向量。所請求向量為追蹤其中觀測到請求但尚未授予存取的存取快取線之請求的向量。所服務向量為追蹤其中請求被觀測到且已被授予對快取線之存取的存取快取線之請求的向量。針對每快取線,所請求向量及所服務向量隨每一快取線之資料圍繞系統傳遞,從而消除設計中對大型集中式實體空間的需要。另外,所請求向量及所服務向量經分層結構化,從而減小所需儲存空間。兩個向量,即所請求向量及所服務向量,並行工作以形成指示其中已請求熱快取線且已經授予熱快取線之存取的經編碼狀態。若存在先前請求快取線而尚未被授予存取之其他請求者,則重新請求同一快取線(亦即,之前已被授予對該熱快取線之存取)的請求者不能再次接收該快取線。
熱線或熱快取線為眾多操作(作為請求者)嘗試存取以觀測及/或修改之快取線。快取線一次僅可由一個操作來存取。當存在存取快取線之多個請求時,存在當另一操作正在快取線上工作時等待存取該快取線之操作的積壓。已請求快取線且尚不能存取該快取線之不成功請求者被拒絕而回到起點,且必須再次開始請求程序。同時,已存取快取線之請求者可能再次請求該線,且其請求可能在不成功請求者返回要求(亦即,請求)該快取線之前到達。由於其他請求者重複地繼續存取快取線,此可能使不成功請求者挨餓或被阻止,且不成功請求者等待過長時間而不能得到該快取線。此類型之行為不利地影響效能及回應時間,此係因為請求快取線之操作由此停頓較長時間段,且不作出前向進展。
因此,本發明之一或多個實施例提供一種公平性追蹤機制以確保需要存取快取線之所有請求者將以及時且公平的方式獲得對快取線之存取。作為技術解決方案及益處,一或多個實施例使用所請求向量及所服務向量,以藉由確保正作出前向進展而改良來自請求者的快取請求之效能及回應時間。
出於簡潔起見,可或可不在本文中詳細地描述與半導體裝置及IC製造相關之習知技術。此外,本文中所描述之各種任務及程序步驟可併入至具有未詳細地描述於本文中之額外步驟或功能性的更全面處理程序或程序中。詳言之,製造半導體裝置及基於半導體之IC的各種步驟為熟知的,且因此出於簡潔起見,許多習知步驟將僅在本文中簡要地提及或將在不提供熟知程序細節之情況下完全省略。
現轉向圖1,大體展示根據本發明之一或多個實施例的電腦系統100。如本文所描述,該電腦系統100可為電子、電腦架構,其包含及/或使用利用各種通信技術之運算裝置及網路的編號及組合。電腦系統100可易於為可調試、可延伸及模組化的,其能改變至不同服務或獨立於其他特徵而重新配置的一些特徵。電腦系統100可為例如伺服器、桌上型電腦、膝上型電腦、平板電腦或智慧型手機。在一些實例中,電腦系統100可為雲端運算節點。可在正由電腦系統執行之電腦系統可執行指令(諸如,程式模組)之總體上下文中描述電腦系統100。通常,程式模組可包括執行特定任務或實施特定抽象資料類型之常式、程式、物件、組件、邏輯、資料結構等。可在分散式雲端運算環境中實施電腦系統100,其中由經由通信網路而鏈接之遠端處理裝置執行任務。在分散式雲端運算環境中,程式模組可位於包括記憶體儲存裝置的本端及遠端電腦系統儲存媒體兩者中。
如圖1中所示,電腦系統100具有一或多個中央處理單元(CPU) 101a、101b、101c等(統稱為或泛稱為處理器101)。處理器101可為單核心處理器、多核心處理器、運算叢集,或任意數目個其他組態。亦稱為處理電路之處理器101經由系統匯流排102耦接至系統記憶體103及各種其他組件。系統記憶體103可包括唯讀記憶體(ROM) 104及隨機存取記憶體(RAM) 105。ROM 104耦接至系統匯流排102,且可包括基本輸入/輸出系統(BIOS)或其後繼者,如聯合可延伸韌體介面(UEFI),其控制電腦系統100之某些基本功能。RAM為耦接至系統匯流排102以供處理器101使用之讀取-寫入記憶體。系統記憶體103在操作期間為該等指令之操作提供暫時記憶體空間。系統記憶體103可包括隨機存取記憶體(RAM)、唯讀記憶體、快閃記憶體或任何其他合適的記憶體系統。
電腦系統100包含輸入/輸出(I/O)配接器106及耦接至系統匯流排102之通信配接器107。I/O配接器106可為與硬碟108及/或任何其他類似組件通信之小電腦系統介面(SCSI)配接器。I/O配接器106及硬碟108在本文中統稱為大容量儲存器110。
用於在電腦系統100上執行之軟體111可儲存於大容量儲存器110中。大容量儲存器110為可藉由處理器101讀取之有形儲存媒體之實例,其中軟體111經儲存為用於由處理器101執行以使得電腦系統100操作之指令(諸如下文關於各種圖之描述)。電腦程式產品之實例及此指令之執行在本文中更詳細地論述。通信配接器107將系統匯流排102與網路112互連,該網路可為外部網路,使得電腦系統100能夠與其他此類系統通信。在一個實施例中,系統記憶體103及大容量儲存器110之一部分共同儲存作業系統,該作業系統可為協調圖1中所示的各種組件之功能的任何適當作業系統。
額外輸入/輸出裝置展示為經由顯示器配接器115及介面配接器116連接至系統匯流排102。在一個實施例中,配接器106、107、115及116可連接至一或多個I/O匯流排,該一或多個I/O匯流排經由中間匯流排橋接器(未展示)而連接至系統匯流排102。顯示器119 (例如,螢幕或顯示監視器)藉由顯示器配接器115連接至系統匯流排102,該顯示器配接器可包括用以改良圖形密集型應用之性能之圖形控制器及視訊控制器。鍵盤121、滑鼠122、揚聲器123等可經由介面配接器116互連至系統匯流排102,該介面配接器可包括例如將多個裝置配接器整合至單一積體電路中的超級I/O晶片。用於連接外圍裝置(諸如硬碟控制器、網路配接器及圖形配接器)之合適I/O匯流排通常包括常見協定,諸如周邊組件互連(PCI)及周邊組件互連高速(PCIe)。因此,如圖1中所組態,電腦系統100包括呈處理器101形式之處理能力,及包括系統記憶體103及大容量儲存器110之儲存能力、諸如鍵盤121及滑鼠122之輸入構件,及包括揚聲器123及顯示器119之輸出能力。
在一些實施例中,通信配接器107可使用任何適合之介面或協定(諸如,網際網路小型電腦系統介面等)發送資料。網路112可為蜂巢式網路、無線電網路、廣域網路(WAN)、區域網路(LAN)或網際網路等。外部運算裝置可經由網路112連接至電腦系統100。在一些實例中,外部運算裝置可為外部網頁伺服器或雲端運算節點。
應理解,圖1之方塊圖並不意欲指示電腦系統100將包括圖1中所展示之所有組件。相反地,電腦系統100可包括圖1中未繪示之任何適當較少或額外組件(例如,額外記憶體組件、嵌入式控制器、模組、額外網路介面,等)。此外,本文中關於電腦系統100所描述之實施例可藉由任何適當的邏輯來實施,其中在各種實施例中,如本文中所提及,邏輯可包括任何合適硬體(例如,處理器、嵌入式控制器或特殊應用積體電路等)、軟體(例如,應用等)、韌體或硬體、軟體及韌體之任何合適的組合。
圖2描繪根據本發明之一或多個實施例的經組態以提供去中心化的熱快取線追蹤公平機制之實例系統200的方塊圖。在系統200中,可存在許多互連的抽屜202,諸如抽屜0、抽屜1及抽屜2。抽屜202中之每一者包含處理器晶片204,諸如處理器晶片0、處理器晶片1及處理器晶片2。每一處理器晶片204耦接至及/或包括共用快取206 (例如,層級三(L3)快取),諸如L30、L31、L32及L33。圖3中描繪實例共用快取206之其他細節。電腦系統100可與圖2中之處理器晶片204整合及/或使用該等處理器晶片。許多電腦系統100及/或電腦系統100之特徵可整合於系統200中。系統200可表示圖11中所描繪之雲端運算環境50之一或多個部分。一或多個處理器101可表示處理器晶片204。處理器晶片204包括所有標準處理電路系統及共用快取206,包括如由一般熟習此項技術者理解之標準記憶體及電路系統。儘管為簡潔起見未展示,但處理器晶片可包括較高層級快取,諸如L2快取及L1快取,其中L1快取最接近處理器核心,如由一般熟習此項技術者所理解。
圖3描繪根據本發明之一或多個實施例的經組態以提供去中心化的熱快取線追蹤公平機制之實例共用快取206 (例如,L30、L31、L32、L33)的方塊圖。儘管在圖3中繪示單一共用快取206之細節,該論述類似地適於其他共用快取206。根據一或多個實施例,共用快取206可包括及/或耦接至各種硬體控制器350,其中硬體控制器350經組態以控制對共用快取206上之快取線的存取(諸如讀取或寫入),以發送存取其他共用快取206上之其他快取線的請求,及實施每快取線的所請求向量及所服務向量。特定言之,每一硬體控制器350包括經組態以使用所請求向量及所服務向量提供去中心化的熱快取線追蹤公平性的邏輯320。硬體控制器350可包括用於記憶體322中之單一快取線的所請求向量及所服務向量,且用於快取線之所請求向量及所服務向量作為後設資料連同快取線中之資料一起傳遞至下一硬體控制器350。因而,根據一或多個實施例,共用快取206中之每一快取線具有其自身之所請求向量及所服務向量,該等向量在整個系統200中維護且傳遞。
硬體控制器350可包括一或多個已知硬體控制器之功能性。硬體控制器350可為及/或包括本端提取位址暫存器控制器(LFAR)、控制儲存位址暫存器控制器(CSAR)、中央處理器提取控制器(CFAR)、遠端提取控制器(RFAR)、線本端儲存位址暫存器控制器(L-LSAR)、遠端本端儲存位址暫存器控制器(R-LSAR)、遠端儲存位址控制器(RSAR)及一般熟習此項技術者理解之其他硬體控制器的功能性。邏輯320可包括邏輯電路系統、可由硬體控制器350上之電路執行之韌體,及/或邏輯電路系統與韌體之組合。此外,邏輯320可實施為儲存於電腦可讀儲存媒體上之指令、硬體模組、專用硬體(例如,特殊應用硬體、特殊應用積體電路(ASIC)、嵌入式控制器、固線式電路系統等),或實施為此等之某一組合或若干組合。在實例中,本文中所描述之邏輯320可為硬體與程式之組合。程式可為儲存於有形記憶體上之處理器可執行指令,且硬體可包括用於執行彼等指令之處理電路系統。替代地或另外,邏輯320可包括用於執行本文中所描述之技術的專用硬體,諸如一或多個積體電路、特殊應用積體電路(ASIC)、特殊應用特殊處理器(ASSP)、場可程式化閘陣列(FPGA)或專用硬體的前述實例之任何組合。共用快取之硬體控制器350的邏輯320經組態以提供去中心化的階層式熱線公平性追蹤機制。此機制就效能而言與集中式公平性追蹤相當,且其可縮放。去中心化的機制以有機方式生長,且不需要用於每一位址之額外空間。如本文中所指出,去中心化的階層公平性追蹤機制使用所請求向量及所服務向量,該等向量經分配、解除分配且與單一快取線相關聯。
圖4描繪繪示根據一或多個實施例的用於去中心化的階層式熱線公平性追蹤中的每一快取線之實例所請求向量及實例所服務向量的方塊圖。所請求向量及所服務向量連同快取線之資料一起且在傳遞快取線中的資料之同時圍繞系統200傳遞,從而消除設計中對大型集中式實體空間的需要。每一快取線具有其自身的所請求向量及所服務向量。另外,所請求向量及所服務向量經分層結構化,從而相較於集中式佇列減小所要求的儲存空間。所服務向量為追蹤被觀測到且已被授予對快取線之存取的存取快取線之請求的向量。所請求向量為追蹤被觀測到但尚未授予存取之存取快取線之請求的向量。所請求向量及所服務向量並行工作以形成其中已請求熱快取線,且其中該熱快取線已經被授予存取的經編碼狀態。若存在想要快取線而尚未被授予存取之其他請求者,則重新請求同一快取線(之前已被授予對該熱快取線之存取)的請求者不能再次接收該線。
作為圖4中所繪示之所服務向量及所請求向量之結構的其他細節,每一向量包括範疇,其可經界定以按需要起作用。在一或多個實施例中,圖4繪示其中所服務向量及所請求向量各自包括為晶片範疇、抽屜範疇及系統範疇的三個階層式範疇的實例。在階層中,抽屜範疇高於晶片範疇,且系統範疇高於抽屜範疇。每一向量保持於硬體控制器350而非目錄344內,藉此將所需位元之數目減至最小,此係因為與目錄344中之快取項目之數目相比,存在較小數目個硬體控制器350。儘管所請求向量及所服務向量被描述為向量,但應瞭解,任何結構可用以維護、儲存並最終傳遞/傳送每請求者具有各別狀態之各別狀態。
在圖4中,為最低範疇之晶片範疇追蹤來自與能夠存取快取線之當前共用快取206相同的晶片上之其他共用快取206 (例如,其他L3快取)的請求。晶片204上之每一共用快取206 (例如,L3快取)在所服務向量及所請求向量中得到對應於特定共用快取206的獨特位元。圖5A繪示根據一或多個實施例的實例硬體控制器350之實例晶片範疇。在圖5A中,向量之晶片範疇可表示所請求向量及/或所服務向量。因為每一處理器晶片(例如,晶片0、晶片1、晶片2)具有四個共用快取(L30、L31、L32、L33),所以存在四個位元地點,一個獨特位元地點(位置)經指派至處理器晶片(諸如,晶片0)中之每一共用快取206,如圖5A中所描繪。應注意,在此實例中,位元地點的指定係自左至右,但指定可為自右向左或某一其他指定。自左至右,晶片範疇中之位元地點/位置對應於個別晶片204中之L30、L31、L32、L33。四個位元經繪示以表示圖2中之四個實例共用快取206,但可根據個別晶片204中的共用快取206之數目而利用更多或更少晶片範疇位元。
在圖4中,抽屜範疇追蹤來自與已存取快取線之當前共用快取206之控制硬體控制器350相同的抽屜202上之其他晶片204的請求。抽屜202上之每一晶片204在所服務向量及所請求向量中得到對應於特定晶片204的獨特位元。圖5B繪示根據一或多個實施例的實例硬體控制器350之實例抽屜範疇。在圖5B中,向量之抽屜範疇可表示所請求向量及/或所服務向量。因為每一抽屜202 (例如,抽屜0、抽屜1、抽屜2)具有三個處理器晶片204 (例如,晶片0、晶片1、晶片2),所以存在三個位元地點,一個獨特位元地點(位置)經指派至抽屜202 (諸如,例如抽屜0)中之每一處理器晶片(例如,晶片0、晶片1、晶片2),如圖5B中所描繪。自左至右,抽屜範疇中之位元地點/位置對應於個別抽屜202中之晶片0、晶片1、晶片2。三個位元經繪示以表示圖2中的三個實例晶片204,但可根據個別抽屜202中之晶片204的數目而利用更多或更少抽屜範疇位元。
在圖4中,系統範疇追蹤來自其他抽屜202之請求。系統200上之每一抽屜202在所服務向量及所請求向量中得到對應於特定抽屜202的獨特位元。圖5C繪示根據一或多個實施例的實例硬體控制器350之實例系統範疇。在圖5C中,向量之系統範疇可表示所請求向量及/或所服務向量。因為系統200具有三個抽屜202 (例如,抽屜0、抽屜1、抽屜2),所以存在三個位元地點,一個獨特位元地點(位置)經指派至系統200中之每一抽屜202(例如,抽屜0、抽屜1、抽屜2),如圖5C中所描繪。自左至右,系統範疇中之位元地點/位置對應於系統200中之抽屜0、抽屜1、抽屜2。三個位元經繪示以表示圖2中的三個實例抽屜202,但可根據系統200中之抽屜202的數目而利用更多或更少系統範疇位元。
硬體控制器350使用快取線之授權單位層級以設定及重設用於彼快取線之所請求向量及所服務向量中的追蹤位元。每一快取線具有其自身相關聯的所請求向量及所服務向量。存在下文論述的三種類型之授權單位層級,其包括全域/系統一致性授權單位、抽屜一致性授權單位及晶片一致性授權單位。若快取線之全域/系統一致性授權單位(全域干預主控器,或GIM)複本存在於共用快取206中,則快取線之GIM為該快取線之最高一致性點。此授權單位由硬體控制器350藉由接收快取線且自用於彼快取線的先前GIM (授權單位)接收用於該快取線的GIM授權單位及/或藉由判定針對所請求快取線在系統200中不存在具有GIM之其他複本(在此情況下,僅GIM接著具有自記憶體接收快取線的授權單位)來獲取。若快取線之獨佔式複本存在於共用快取中,則彼快取線亦必須為GIM。用於快取線之GIM亦為用於其抽屜之抽屜干預主控器或稱DIM及用於其晶片之晶片干預主控器或稱CIM。根據一或多個實施例,在3級干預主控器階層中,僅允許GIM針對來自其他抽屜之請求傳回資料。對於給定快取線,系統200中可僅存在一個GIM。
接下來,轉至用於快取線之抽屜一致性授權單位(抽屜干預主控器,或DIM),DIM為用於抽屜202中之快取線的最高授權單位層級。此授權單位由硬體控制器350藉由自用於彼快取線的抽屜202上的先前DIM接收用於該快取線之DIM授權單位及/或藉由判定針對所請求快取線在抽屜202中不存在具有DIM之其他複本(在此情況下,僅DIM接著具有自其他抽屜202請求快取線的授權單位)來獲取。當快取線及GIM授權單位的共用複本傳遞至另一抽屜202時,快取線的GIM複本可降級至DIM。若由硬體控制器350控制的共用快取206具有具有DIM授權單位而非GIM授權單位之快取線的複本,則硬體控制器350必須具有線之唯讀複本。用於快取線的DIM亦為用於其晶片204的CIM。根據一或多個實施例,在3級干預主控器階層中,僅允許DIM針對來自其抽屜上之其他晶片之請求傳回資料。對於給定快取線,系統200中可存在與抽屜202一樣多的DIM,但每抽屜僅有一個DIM。
用於快取線之晶片一致性授權單位(晶片干預主控器,或CIM)為晶片中用於該快取線的最高授權單位層級。此授權單位由硬體控制器350藉由自用於彼快取線的晶片上的先前CIM接收用於該快取線之CIM授權單位及/或藉由判定針對所請求快取線在晶片上不存在具有CIM之其他複本(在此情況下,僅CIM接著具有自其他晶片請求快取線的授權單位)來獲取。當快取線及DIM授權單位的共用複本傳遞至另一晶片204時,快取線的DIM複本可降級至CIM。若快取具有具有CIM授權單位但不具有GIM授權單位之快取線複本,則控制硬體控制器350必須具有線之唯讀複本。在3級干預主控器階層中,僅允許CIM針對來自其晶片上之其他共用快取206之請求傳回資料。
快取線之非干預主控器複本為共用快取206 (例如,L3快取)中之快取線的唯讀複本,其不具有任何授權單位來與其他請求者共用快取線。此可有時被視為最低一致性範疇。
轉至關於維護所請求向量及所服務向量之其他細節,論述用於設定及重設針對快取線之所請求向量及所服務向量中的追蹤位元之一實例。如本文中所指出,硬體控制器350負責設定及維護公平向量。每一硬體控制器350基於特定硬體控制器350觀測之晶片上及晶片外請求以及基於硬體控制器350一旦接收便能存取快取線之公平性而更新兩個向量(亦即,所請求向量及所服務向量)。舉例而言,一旦硬體控制器350接收到指示存在未服務請求者的資料,硬體控制器350便不會在硬體控制器350將資料傳回至處理器核心之後照常淘汰。實情為,硬體控制器350保持在作用中以保護快取線,直至符合條件的請求者到達為止。當等待符合條件之請求者到達時,硬體控制器350確保來自非符合條件之請求者的請求(亦被稱作窺探)獲得一致性拒絕。
為在範疇中設定所請求位元,請求者必須與具有可服務於請求者與本端共用快取206 (例如,L3快取)兩者之授權單位層級的本端共用快取之本端硬體控制器350進行比較。本端硬體控制器對其共用快取起作用,且為用於給定共用快取之快取線的控制硬體控制器。請求存取給定共用快取之快取線的請求者係其共用快取之請求者硬體控制器。因為每一共用快取具有其自身硬體控制器,所以有時共用快取可被稱作請求快取線。為設定晶片範疇之所請求向量中之位元,本端共用快取206 (例如,共用快取L30)之本端硬體控制器350在硬體控制器350可開始追蹤來自對應於處理器晶片204 (諸如,處理器晶片0)上之其他共用快取206 (例如,其他共用快取L31、L32、L33)的其他硬體控制器350之請求之前必須已至少將自身建立為晶片一致性授權單位。
為了設定用於抽屜範疇之所請求向量中之位元,本端共用快取206之本端硬體控制器350在硬體控制器350可針對給定共用快取之快取線開始追蹤來自抽屜202上之其他晶片204的請求之前必須已至少將自身建立為抽屜一致性授權單位。
為設定用於系統範疇之所請求向量中之位元,本端共用快取206之本端硬體控制器350在硬體控制器350可針對給定共用快取之快取線開始追蹤來自系統200上之其他抽屜202之請求之前必須已將自身建立為系統一致性授權單位。
利用此等設定限制係因為否則所觀測請求可由其他者(例如,用於另一共用快取206之另一硬體控制器350,其確實具有恰當授權單位)伺服,且不應被視為必須由用於共用快取206之本端硬體控制器350服務的請求。
以下論述維護所請求向量及所服務向量的其他細節。對於所服務向量,當用於能存取快取線資料的其對應共用快取206之本端硬體控制器350設定其自身的對應晶片、抽屜及系統位元時,範疇(例如,諸如晶片、抽屜及系統範疇)中之所服務位元得以設定。對於所請求向量,當所服務向量之對應所服務位元設定於相同範疇中時,以及當本端共用快取206經由其硬體控制器350使其自身複本無效及/或已達到逾時限制時,範疇(例如,諸如晶片、抽屜及系統範疇)中的所請求位元得以重設。對於所服務向量,當所有已知請求者已得到服務時、當本端共用快取206經由其硬體控制器350使其複本無效時及/或當達到逾時限制時,範疇(例如,諸如晶片、抽屜及系統範疇)中之所服務位元得到重設。當快取線傳遞至較高範疇之請求者時,較低範疇中的所請求位元及所服務位元得以重設(亦即,若快取線傳遞至另一抽屜,則抽屜向量將被清除,但若快取線傳遞至同一抽屜上之另一晶片,則抽屜向量將保持其資料)。此外,抽屜範疇/向量涉及此抽屜上之晶片,其係相對於維護該向量之L3快取。若快取線移至此同一抽屜上之另一晶片,則由於發送晶片及接收晶片兩者之抽屜向量涉及同一抽屜上之晶片,因此抽屜向量值對於接收晶片仍為有意義的。另一方面,若快取線移至另一抽屜上之晶片,則產生於接收晶片上之新抽屜範疇/向量將涉及接收抽屜,而發送晶片上之抽屜範疇/向量涉及發送抽屜上之晶片。來自發送抽屜之抽屜範疇/向量中的狀態對於接收抽屜無意義,且因此,當將快取線傳遞至較高範疇之請求者時,重設在較低範疇中的所請求位元及所服務位元。
關於圍繞系統200傳遞所請求向量及所服務向量而論述其他細節,藉此提供去中心化的熱快取線追蹤公平機制。向前(例如,自用於共用快取206之一個硬體控制器350至用於共用快取206之下一硬體控制器350)傳遞每一快取線之所請求及所服務公平向量,作為用於彼快取線之後設資料之部分。基於檢查所服務向量中的所服務位元,僅未經服務請求者接下來存取快取線。所有所服務之請求者被拒絕,且必須返回至再次嘗試。公平向量(亦即,所請求向量及所服務向量)將不傳遞至較高範疇,直至在針對較低範疇設定的所請求向量中不存在所請求位元為止。所服務向量中之所服務位元/狀態最終基於已經建立之規則而重置。
圖6描繪繪示根據本發明之一或多個實施例的用於去中心化的熱快取線追蹤公平性之向量維護及傳遞之實例的方塊圖。此實例情境為向量更新及在晶片上傳遞,例如,在同一晶片0上傳遞所請求向量及所服務向量。因此,為了易於理解,實例情境繪示晶片範疇及抽屜範疇,但並不繪示系統範疇。應瞭解,系統範疇以類似方式適用。
在動作601處,共用快取L30 (其為共用快取206)經由其控制硬體控制器350可存取及/或控制給定共用快取206之快取線。出於解釋目的,控制硬體控制器350為用以說明硬體控制器具有給定共用快取之快取線之控制的名稱。在此實例中,針對所請求向量及所服務向量兩者在晶片範疇中存在由四個位元描繪的四個共用快取206 (例如,L30、L31、L32、L33)。又,在此實例中,在抽屜範疇中存在由兩個位元描繪的兩個晶片204 (例如,晶片0、晶片1)。如在動作601處可見,所請求向量之硬體控制器狀態均為零。在所請求向量中,晶片範疇之四個位元均為零,此係因為同一晶片204 (例如,晶片0)上無其他共用快取206已請求存取快取線。又,在所請求向量中,抽屜範疇之兩個位元皆為零,此係因為無其他晶片已請求存取快取線。
然而,在所服務向量之晶片範疇中,對應於共用快取L30之第一位元(亦即,最左位元)設定成一(「1」),此係因為共用快取L30在動作601中被服務(亦即,存取給定共用快取之快取線),此意謂用於共用快取L30之硬體控制器350正控制對快取線之存取。所服務向量之晶片範疇中的其餘服務位元為零,此係因為同一晶片204 (例如,晶片0)上之其他共用快取206先前尚未被服務,此意謂其他共用快取206 (例如,L31、L32、L33)尚未經由其各別硬體控制器350存取快取線。在所服務向量之抽屜範疇中,為最左側位元的第一位元由於正服務為晶片0的對應晶片204而被設定成一(「1」)。所服務向量之抽屜範疇中的其餘所服務位元設定為零,此係因為同一抽屜202 (例如,抽屜0)上之其他晶片204 (例如,晶片1)尚未被服務。若在此實例中存在多於一個抽屜,則系統範疇將具有經設定以識別當前正服務之抽屜的位元,藉此識別具有當前被服務之晶片的抽屜。由於此實例展示第一輪次,因此其他所服務位元為零,但若其他快取已被服務,則其各別位元將為一。
在動作602處,共用快取L32經由其請求者硬體控制器350自共用快取L30之控制硬體控制器350請求快取線(提取)。此時,共用快取L32係經由其請求者硬體控制器350之請求者。共用快取L30之控制硬體控制器350記錄來自在所請求向量之晶片範疇中的對應(L32)位元地點中之共用快取L32的請求,且拒絕共用快取L32之請求。如在所請求向量中所見,來自晶片範疇中之右起第二位元現設定為一(「1」),其指示彼位元位置處之對應共用快取L32已請求給定共用快取之快取線。因為共用快取L30之控制硬體控制器350仍正使用快取線,所以控制硬體控制器350拒絕共用快取L32之請求。
在動作603處,共用快取L33經由其請求者硬體控制器350自共用快取L30之控制硬體控制器350請求快取線(提取)。此時,共用快取L33係經由其請求者硬體控制器350之另一請求者。共用快取L30之控制硬體控制器350記錄來自在所請求向量之晶片範疇中的對應(L33)位元地點中之共用快取L33的請求,且拒絕共用快取L33之請求。如在動作603處的所請求向量中所見,來自晶片範疇中之最右位元現設定為一(「1」),其指示彼位元位置處之對應共用快取L33已請求給定共用快取206之快取線。因為共用快取L30之控制硬體控制器350仍正使用快取線,所以控制硬體控制器350拒絕共用快取L33之請求。
在動作604處,共用快取L32經由其請求者硬體控制器350自共用快取L30之控制硬體控制器350再次請求快取線。在動作605處,共用快取L30經由其請求者硬體控制器350將快取線經由其硬體控制器350傳遞至共用快取L32。除了傳遞對快取線之存取及/或控制以外,共用快取線L30之控制硬體控制器350亦將用於給定共用快取206之快取線的所請求向量及所服務向量傳遞至共用快取L32之請求者硬體控制器350。此時,共用快取L32之硬體控制器350變為新的控制硬體控制器350。作為共用快取L32之控制(L32)硬體控制器350,控制(L32)硬體控制器350將所請求向量之晶片範疇中對應於共用快取L32之所請求位元自一更新至零,此係因為共用快取L32可存取快取線,且不再存在對共用快取L32之未經服務請求。另外,控制(L32)硬體控制器350將所服務向量之晶片範疇中對應於共用快取L32的所服務位元自零更新至一,此係因為共用快取L32正被服務,此意謂共用快取L32經由其控制(L32)硬體控制器350具有對給定共用快取中之快取線的存取/控制。
圖7A及圖7B描繪繪示根據本發明之一或多個實施例的用於去中心化的熱快取線追蹤公平性之向量維護及傳遞之實例的方塊圖。此實例情境為向量更新及傳遞至晶片外,例如將所請求向量及所服務向量自一個晶片204傳遞至另一晶片204,諸如自同一抽屜202中之晶片0傳遞至晶片1。因此,為了易於理解,實例情境繪示晶片範疇及抽屜範疇,但並不繪示系統範疇。儘管此實例情境係針對同一抽屜中之晶片,但應瞭解,系統範疇類似地適用於多個抽屜。
在動作701 (類似於動作601)處,共用快取L30 (其為共用快取206)經由其控制硬體控制器350可存取及/或控制給定共用快取206之快取線。控制硬體控制器350具有對給定共用快取之快取線的控制。在此實例中,如上文所指出,針對所請求向量及所服務向量兩者在晶片範疇中存在由四個位元描繪的四個共用快取206 (例如,L30、L31、L32、L33)。又,在此實例中,在抽屜範疇中存在由兩個位元描繪的兩個晶片204 (例如,晶片0、晶片1)。如在動作701處可見,所請求向量之硬體控制器狀態均為零。在所請求向量中,晶片範疇之四個所請求位元均為零,此係因為同一晶片204 (例如,晶片0)上無其他共用快取206已請求存取快取線。又,在所請求向量中,抽屜範疇之兩個所請求位元皆為零,此係因為無其他晶片已請求存取快取線。
類似於圖6,在所服務向量之晶片範疇中,對應於共用快取L30之第一所服務位元(亦即,最左位元)設定成一(「1」),此係因為共用快取L30被服務(亦即,存取給定共用快取之快取線),此意謂用於共用快取L30之硬體控制器350正控制對給定共用快取206之快取線的存取。所服務向量之晶片範疇中的其餘服務位元為零,此係因為同一晶片204 (例如,晶片0)上之其他共用快取206先前尚未被服務,此意謂其他共用快取206 (例如,L31、L32、L33)尚未經由其各別硬體控制器350存取快取線。在所服務向量之抽屜範疇中,為最左側位元的第一所服務位元由於正服務為晶片0的對應晶片204而被設定成一(「1」)。所服務向量之抽屜範疇中的其餘所服務位元設定為零,此係因為同一抽屜202 (例如,抽屜0)上之其他晶片204 (例如,晶片1)尚未被服務。若在此實例中存在多於一個抽屜,則系統範疇將具有經設定以識別當前正服務之抽屜的位元,藉此識別具有當前被服務之晶片的抽屜。由於此實例展示第一輪次,因此其他所服務位元為零,但若其他快取已被服務,則其各別所服務位元將為一。
在圖7A中,在動作702處,共用快取L33經由晶片0上之其請求者硬體控制器350自晶片0上之共用快取L30之控制硬體控制器350請求快取線(提取)。此時,共用快取L33係經由其請求者硬體控制器350之請求者。共用快取L30之控制硬體控制器350記錄來自在所請求向量之晶片範疇中的對應(L33)位元地點中之共用快取L33的請求,且拒絕共用快取L33之請求。如在動作702的所請求向量之晶片範疇中所見,最右側所請求位元現設定為一(「1」),其指示彼位元位置處之對應共用快取L33已請求給定共用快取206之快取線。因為共用快取L30之控制硬體控制器350正使用快取線,所以控制硬體控制器350拒絕共用快取L33之請求。
在動作703處,晶片1經由用於晶片1中之共用快取206的請求者硬體控制器350自晶片0上之共用快取L30的控制硬體控制器350請求給定共用快取的快取線。此時,晶片1為用於晶片1上之共用快取的經由請求者硬體控制器350之另一請求者,但係在不同晶片204上。共用快取L30之控制硬體控制器350記錄來自在所請求向量之抽屜範疇中的對應(晶片1)所請求位元地點中之晶片1的請求,且拒絕來自晶片1之請求,此係因為設定了晶片範疇所請求位元。在所請求向量之晶片範疇中設定所請求位元(亦即,「1」)指示在與已請求快取線之控制共用快取206 (亦即,共用快取L30)相同的晶片204 (亦即,晶片0)上存在另一共用快取206 (亦即,共用快取L33),且將在較高範疇請求之前被給與快取線。在階層中,晶片範疇低於抽屜範疇,且抽屜範疇低於系統範疇;因此,按自最低範疇至最高範疇之次序處理請求者。如在動作703中所見,左起第二位元現在設定為一(「1」),其指示彼位元位置處的對應晶片1 (其為晶片204)已請求給定共用快取206之快取線。因為所請求位元設定於所請求向量的晶片範疇中,且因為共用快取L30的控制硬體控制器350仍在使用快取線,所以控制硬體控制器350拒絕晶片1的請求。
在動作704處,共用快取L33 (晶片0上)經由其請求者硬體控制器350再次自共用快取L30 (在同一抽屜中之同一晶片0上)之控制硬體控制器350請求快取線。在動作705處,共用快取L30經由其請求者硬體控制器350將快取線經由其請求者硬體控制器350傳遞至共用快取L33。除了傳遞對快取線之存取及/或控制以外,共用快取線L30之控制硬體控制器350亦將用於給定共用快取206之快取線的所請求向量及所服務向量傳遞至共用快取L33之請求者硬體控制器350。此時,共用快取L33之硬體控制器350變為控制硬體控制器350。作為共用快取L33之控制(L33)硬體控制器350,控制(L33)硬體控制器350將對應於所請求向量之晶片範疇中的共用快取L33 (自身)之所請求位元自一更新至零,此係因為共用快取L33現在可存取快取線,且不再存在對共用快取L33之未經服務請求。另外,控制(L33)硬體控制器350將所服務向量之晶片範疇中對應於共用快取L33的所服務位元自零更新至一,此係因為共用快取L33正被服務,此意謂共用快取L33經由其控制(L33)硬體控制器350具有對給定共用快取中之快取線的存取/控制。將所服務位元設定於用於共用快取L33之所服務向量的晶片範疇中防止共用快取L33能夠在另一請求者在線等待之前再次接收對快取線之存取/控制。對於共用快取L33,所請求位元及所服務位元各自為所請求向量及所服務向量中各別晶片範疇中之最右位元。
在動作706處,晶片1經由用於晶片1中之共用快取206的請求者硬體控制器350自晶片0上之共用快取L33的控制硬體控制器350請求給定共用快取的快取線。
在動作707處,共用快取L33經由其控制硬體控制器350將快取線隨所請求向量及所服務向量兩者中之零晶片範疇位元/向量將快取線傳遞至晶片1 (經由其請求者硬體控制器350)。所請求向量及所服務向量中的先前晶片範疇位元(亦即,晶片範疇向量)經維護用於晶片0,但現在,追蹤晶片1的所請求向量及所服務向量的晶片範疇。如上文所指出,除了傳遞對快取線之存取及/或控制以外,共用快取線L33之控制硬體控制器350亦將用於給定共用快取206之快取線的所請求向量及所服務向量傳遞至晶片1之請求者硬體控制器350。晶片1在晶片1上之共用快取L32中安裝(亦即,儲存)快取線。共用快取L32之請求者硬體控制器350現在為快取線(其用於給定共用快取206)之控制硬體控制器350 。作為共用快取L32之控制(晶片1上之L32)硬體控制器350,控制(晶片1上之L32)硬體控制器350將對應於所請求向量之抽屜範疇中對應於晶片1 (自身)之所請求位元自一更新至零,此係因為晶片1可存取快取線,且不再存在來自晶片1之未經服務請求; 舉例而言,仍可能存在來自用於晶片1上之其各別共用快取206的其他硬體控制器350之未經服務請求,但晶片1現在具有用於快取線之抽屜授權單位,因此無需對其要求其他晶片。另外,控制(晶片1上之L32)硬體控制器350將所服務向量之晶片範疇中對應於共用快取L32的所服務位元自零更新至一,此係因為晶片1上之共用快取L32正被服務,此意謂共用快取L32經由其控制(晶片1上之L32)硬體控制器350具有對給定共用快取中之快取線的存取/控制。將所服務位元設定於用於共用快取L32之所服務向量的晶片範疇中防止共用快取L32能夠在另一請求者在線等待之前再次接收對快取線之存取及/或控制。對於共用快取L32,所請求位元及所服務位元各自為所請求向量及所服務向量中各別晶片範疇中之左起第三位元。對於晶片1,所請求位元及所服務位元各自為左起第二位元。
儘管系統範疇未在圖7A及圖7B中展示,但若接收到來自不同抽屜202 (例如,抽屜2)之請求,則以下將需要為真以便將共用快取線提供至另一抽屜202:所有較低範疇所請求向量將需要為空,此意謂將不存在設定於晶片範疇亦不存在設定於抽屜範疇向量中之所請求位元。
圖8為根據本發明之一或多個實施例的用於存取共用快取中之快取線的去中心化的熱快取線追蹤公平機制之電腦實施程序800的流程圖。電腦實施程序800可由在任何抽屜202中之任何晶片204中的各別共用快取206中之硬體控制器350執行。每一共用快取206具有其自有硬體控制器350以用於存取快取線,如一般熟習此項技術者所理解。根據本發明之一或多個實施例,硬體控制器350包含邏輯320及記憶體322以及用於操作之任何其他合適的電路系統。根據一或多個實施例,每一硬體控制器350中之記憶體322可用以儲存用於給定共用快取206中的快取線之所請求向量及所服務向量,且利用所請求向量及所服務向量以控制對給定共用快取206中之快取線的存取。出於描述性目的而非限制,具有快取線之存取及/或控制的硬體控制器經指定為控制硬體控制器,而請求快取線之存取及/或控制的硬體控制器經指定為請求者硬體控制器(亦即,請求者)。控制硬體控制器控制用於其共用快取206之快取線,而請求者硬體控制器請求對用於其共用快取206之快取線的控制,該共用快取可在同一晶片204上、在同一抽屜202中之不同晶片204上及/或在系統200中之不同抽屜202上。
在區塊802處,具有給定共用快取206中之快取線的控制之控制硬體控制器350經組態以代表第二共用快取206自請求者硬體控制器350接收對於快取線之遠端窺探。遠端窺探為用於存取及/或控制第一共用快取206之快取線的提取請求。
在區塊804處,控制硬體控制器350經組態以檢查控制硬體控制器350是否具有授權單位(層級)以對快取線進行遠端窺探。如上文所指出,控制硬體控制器350可具有全域/系統一致性授權單位、抽屜一致性授權單位及/或晶片一致性授權單位。全域/系統一致性授權單位為全域干預主控器(GIM)。用於快取線之GIM為用於其抽屜之抽屜干預主控器(DIM)及用於其晶片之晶片干預主控器(CIM)。抽屜一致性授權單位(抽屜干預主控器)為用於抽屜中之彼快取線的最高授權單位層級。用於快取線之晶片一致性授權單位(晶片干預主控器)為晶片中用於該快取線的最高授權單位層級。
在區塊806處,當控制硬體控制器350並不具有對給定共用快取206之快取線進行遠端窺探之授權單位時,控制硬體控制器350並不授予遠端窺探,且並不一致性拒絕遠端窺探。換言之,控制硬體控制器350並不授予提取請求,且因此,請求者硬體控制器350並不被授予對給定共用快取206中之快取線的存取。對所請求向量及所服務向量不作出改變。
在區塊808處,當控制硬體控制器350確實具有授權單位以將給定共用快取206之快取線的遠端窺探給予/授予至請求者硬體控制器350時,控制硬體控制器350經組態以檢查遠端窺探是否已經被服務。舉例而言,控制硬體控制器350可檢查其記憶體322中之所服務向量中的晶片範疇、抽屜範疇及系統範疇,以判定同一請求者硬體控制器350 (例如,分別表示同一晶片204上之共用快取206、同一抽屜202中之另一晶片204及/或系統200中之另一抽屜202)先前歸因於先前提取請求而已被授予對給定共用快取206之快取線的存取。當來自請求者硬體控制器350之請求係針對晶片上之共用快取206時,控制硬體控制器350檢查所服務向量之晶片範疇中的對應位元地點/位置以判定所服務位元是否經設定(亦即,「1」,其意謂先前授予對快取線之存取)以用於對應共用快取206。當來自請求者硬體控制器350之請求係針對同一抽屜202中之另一晶片(亦即,晶片外的共用快取206)時,控制硬體控制器350檢查所服務向量之抽屜範疇中的對應位元地點/位置以判定所服務位元是否經設定(亦即,「1」,其意謂先前授予對快取線之存取)用於對應晶片204 (例如,晶片0、晶片1、晶片2)。當來自請求者硬體控制器350之請求係針對系統200中之另一抽屜202 (亦即,系統200中之不同抽屜202中的共用快取206)時,控制硬體控制器350檢查所服務向量之系統範疇中的對應位元地點/位置,以判定所服務位元是否經設定(亦即,「1」,其意謂先前授予對快取線之存取)用於對應抽屜202(例如,抽屜0、抽屜1、抽屜2)。
在區塊810處,若(是)請求者硬體控制器350已被授予對給定共用快取206之快取線的存取,則控制硬體控制器350拒絕遠端窺探以稍後再次嘗試。
在區塊812處,若(否)請求者硬體控制器350先前尚未經授予對給定共用快取206之快取線的存取,則控制硬體控制器350經組態以檢查其(控制)共用快取206是否處於其可處理此遠端窺探請求之狀態。(控制)共用快取206可能不處理請求之原因之幾個實例可包括以下各者:其在處理請求所需之資源外,其未完成安裝快取線,或其在將快取線傳送至另一快取之過程中。
在區塊814處,若(是)用於控制硬體控制器350之(控制)共用快取206處於用以處理遠端窺探請求之狀態,則控制硬體控制器350經組態以檢查相比來自請求者硬體控制器350之當前遠端窺探請求,是否存在對所請求向量中之較低範疇的未經服務請求。如本文中所指出,存在三個實例範疇,其為用於同一晶片上之共用快取206 (例如,L30、L31、L32、L33)的晶片範疇(最低範疇)、用於同一抽屜202中之晶片204 (例如,晶片0、晶片1、晶片2)的抽屜範疇(次高範疇),及用於系統200中之抽屜202 (例如,抽屜0、抽屜1、抽屜2)的系統範疇(最高範疇)。若在所請求向量中針對比遠端窺探請求之範疇/層級低的範疇未設定所請求位元,則流程繼續進行至區塊816。
舉例而言,若所請求位元設定於所請求向量之晶片範疇(亦即,最低範疇)中,則當前遠端窺探請求必須係針對晶片上之共用快取206以便被授予對快取線之存取,此意謂當前遠端窺探必須係針對與控制硬體控制器350之(控制)共用快取206相同的晶片上之另一共用快取。
若所請求位元設定於所請求向量之抽屜範疇(亦即,次高範疇)中,則當前遠端窺探請求必須係針對相同抽屜202中之晶片204或晶片204上之共用快取206以便被授予對快取線之存取,此意謂當前遠端窺探必須係針對與控制硬體控制器350之(控制)共用快取206相同的抽屜202上之另一晶片204 (具有共用快取),或當前遠端窺探必須係針對與控制硬體控制器350之(控制)共用快取206相同的晶片上的另一共用快取。
在區塊816處,控制硬體控制器350經組態以自請求者硬體控制器350授予窺探請求。又,控制硬體控制器350經組態以重設所請求向量及所服務向量中之較低範疇向量/位元,將控制硬體控制器350之記憶體322中的所請求向量及所服務向量傳送至請求者硬體控制器350,且淘汰控制器硬體控制器350 (自身)。較低範疇向量/位元為低於由請求者作出之請求的層級之所請求位元及所服務位元。自最低請求至最高請求之請求層級可係針對代表與(控制)共用快取206之請求者硬體控制器350相同的晶片上之共用快取的最低請求、代表同一抽屜202中之晶片204的次高請求及代表系統200中之另一抽屜202的最高請求。授予請求以及傳送所請求向量及所服務向量使請求者硬體控制器350成為新的控制硬體控制器350,其持維護持用於給定快取206之快取線的所請求向量及所服務向量。
在區塊818處,若(否)共用快取206不處於處理遠端窺探請求之狀態中(區塊812),或若(是)在所請求向量中仍存在未被服務之較低範疇請求(區塊814),則控制硬體控制器350經組態以在用於遠端請求之所請求向量中設定所請求位元地點/位置。舉例而言,控制硬體控制器350經組態以在遠端請求來自晶片上之共用快取時在所請求向量中之晶片範疇中設定(亦即,「1」)所請求位元地點/位置,當遠端請求來自另一晶片(亦即,晶片外)時在所請求向量之抽屜範疇中設定所請求位元地點/位置,及/或當遠端請求來自另一抽屜時在所請求向量中之系統範疇中設定所請求位元地點/位置。流程自區塊818前進至上文所論述之區塊810。
根據一或多個實施例,硬體控制器350可具有逾時機制以防止公平性減緩請求者獲得對給定共用快取之快取線的存取的向前進展。逾時機制經實施以在先前不成功之請求者花費過長時間來返回並再次請求快取線的情形中有所幫助。舉例而言,諸如計數器342之逾時計數器在可存取快取線之本端共用快取(L3快取)指示其處於處理窺探請求之狀態中時開始降序計數,且保持存取快取線,唯一目的為將公平向量遞交至下一請求者。若下一請求者在逾時計數器達到0之前並不要求線,則清除公平向量(亦即,針對彼快取線的所請求向量及所服務向量兩者)。
存在藉由使用根據一或多個實施例之去中心化的熱快取線追蹤公平機制提供的各種技術解決方案及益處。確保快取線公平性之技術每作用中快取線包括所請求向量及所服務向量,其中當拒絕提取(請求)時設定所請求位元,其中當將快取線給予至新請求者時設定所服務位元,及/或其中拒絕來自所服務位元經設定的請求者之提取(請求)。作為確保快取線公平性之技術解決方案及益處,所請求向量包括表示較低範疇下之請求者的所請求位元及表示較高範疇下之請求者群組的所請求位元,其中若存在所請求向量中設定有其所請求位元且所服務向量中不設定有其對應所服務位元的較低範疇請求者,則拒絕較高範疇請求者。一旦請求者已變成傳入請求之範疇下的干預主控器,才設定所請求向量中的所請求位元。提供一階層,其中範疇包括晶片、抽屜及系統範疇。所請求向量及所服務向量藉由本端提取控制器(亦即,控制硬體控制器)維護,其中本端提取控制器在所請求向量中存在所請求位元且對應位元並未設定於所服務向量中的同時保持運作,且本端提取控制器在服務於提取(請求)時淘汰。出於等待傳遞向量至下一請求者(亦即,控制器處於其可處理請求之狀態中)之唯一目的而保持運作之本端提取控制器可在(1)控制器已向前傳遞向量或(2)已達到逾時限制之後淘汰。所請求向量及所服務向量之值係作為資料傳送之部分而發送以用於提取(請求),其中當快取線傳送至較高範疇時,清除所請求向量及所服務向量中之較低範疇位元。
圖9為根據一或多個實施例的用於針對共用快取206中之熱快取線執行去中心化的熱快取線追蹤公平機制之電腦實施方法900的流程圖。可參考本文中所論述之諸圖中的任一者。
在區塊902處,控制硬體控制器350經組態以回應於接收到存取快取線(在給定共用快取206中)之傳入請求,基於與快取線(在給定共用快取206中)相關聯且用於維護該快取線之所請求狀態(例如,圖4、圖5A、圖5B、圖5C中之所請求向量)及所服務狀態(例如,圖4、圖5A、圖5B、圖5C中之所服務向量)作出授予對快取線之存取的判定,一結構包含所請求狀態及所服務狀態。在區塊904處,控制硬體控制器350經組態以回應於授予對快取線之存取的判定而將所請求狀態(例如,圖4、圖5A、圖5B、圖5C中之所請求向量)及所服務狀態(例如,圖4、圖5A、圖5B、圖5C中之所請求向量)連同快取線(在給定共用快取206中)之資料一起傳送。
將所請求狀態及所服務狀態(例如,所請求向量及所服務向量)傳送至作出傳入請求之控制器(例如,請求者硬體控制器350)。控制硬體控制器350經組態以接收傳入請求。自已接收傳入請求之控制硬體控制器350的記憶體322傳送所請求狀態及所服務狀態。所請求狀態(例如,所請求向量)經組態以追蹤被觀測到但尚未被授予之存取快取線之請求。所服務狀態經組態以追蹤被觀測到且已被授予對快取線之存取的存取快取線之請求。所請求狀態及所服務狀態經組態以傳送至運算環境中之多個控制器(例如,在可表示雲端之一部分的系統200中)。
該結構中之第一部分經組態以追蹤第一範疇中之第一請求者,且該結構中之第二部分經組態以追蹤第二範疇中之第二請求者,該第一範疇與該第二範疇具有階層式關係。舉例而言,晶片及抽屜範疇處於階層式關係中,其中晶片範疇追蹤第一請求者,且抽屜範疇追蹤第二請求者。又,晶片、抽屜及系統範疇係呈階層式關係,其中晶片範疇追蹤第一請求者,抽屜範疇追蹤第二請求者,且系統範疇追蹤第三請求者。
該結構中之第一項目經組態以追蹤針對第一快取之所請求狀態及所服務狀態,且該結構中之第二項目經組態以追蹤針對第二快取之其他所請求狀態及所服務狀態。舉例而言,控制器350可在結構中具有多個項目以用於追蹤不同快取中之快取線,如圖4中所描繪。快取之每一快取線具有其自身的具有所請求向量及所服務向量之項目。該結構可包括用於追蹤所請求狀態之所請求結構(例如,用於所請求向量之資料結構)及用於追蹤所服務狀態的所服務結構(例如,用於所請求向量之單獨資料結構)。
圖10為根據一或多個實施例的用於針對共用快取206中之熱快取線執行去中心化的熱快取線追蹤公平機制之電腦實施方法1000的流程圖。可參考本文中所論述之諸圖中的任一者。
在區塊1002處,控制硬體控制器350經組態以回應於自請求者(例如,請求者硬體控制器350)接收到存取(給定共用快取206的)快取線之傳入請求,基於與用於維護(給定共用快取206的)快取線之所請求狀態(例如,圖4、圖5A、圖5B、圖5C中之所請求向量)及所服務狀態(例如,圖4、圖5A、圖5B、圖5C中之所服務向量)作出拒絕對快取線之存取的判定,一結構包含所請求狀態及所服務狀態。在區塊1004處,控制硬體控制器350經組態以回應於拒絕對快取線之存取的判定而在所請求狀態(例如,所請求向量)中設定(所請求)位元,該位元對應於請求者(例如,請求者硬體控制器350)。在區塊1006處,控制硬體控制器350經組態以回應於自請求者(例如,同一請求者硬體控制器350)接收到存取快取線之另一傳入請求,基於所請求狀態(例如,所請求向量)及所服務狀態中設定之(所請求)位元針對另一傳入請求作出授予對快取線之存取的另一判定。在區塊1008處,控制硬體控制器350經組態以將所請求狀態及所服務狀態(例如,所請求向量及所服務向量)連同快取線之資料一起傳送至請求者。
所請求狀態及所服務狀態自已接收傳入請求之控制硬體控制器350傳送至已發送傳入請求之請求者硬體控制器350。拒絕對快取線之存取的該判定係基於針對低於與該請求者相關聯之另一範疇的一範疇而設定於所請求狀態中的值。
應理解,儘管本發明包括關於雲端運算之詳細描述,但本文中所敍述之教示的實施不限於雲端運算環境。實情為,本發明之實施例能夠結合現在已知或稍後開發之任何其他類型之運算環境來實施。
雲端運算為用於使得能夠對可組態運算資源(例如,網路、網路頻寬、伺服器、處理、記憶體、儲存器、應用程式、虛擬機及服務)之共用集區進行便利之按需網路存取的服務遞送之模型,可組態運算資源可藉由最少的管理工作或與服務提供者之互動而快速地佈建及釋放。此雲端模型可包括至少五個特性、至少三個服務模型及至少四個部署模型。
特性如下:
隨選自助服務:雲端消費者可視需要自動地單向佈建運算能力(諸如,伺服器時間及網路儲存器),而無需與服務提供者之人為互動。
隨處網路存取:可經由網路獲得能力及經由標準機制存取能力,該等標準機制藉由異質精簡型或複雜型用戶端平台(例如,行動電話、膝上型電腦及PDA)促進使用。
資源集用:提供者之運算資源經集用以使用多租戶模型為多個消費者服務,其中根據需要動態指派及重新指派不同實體及虛擬資源。存在位置獨立性之意義,此係因為消費者通常不具有對所提供之資源之確切位置的控制或瞭解,但可能能夠按較高抽象層級(例如,國家、州或資料中心)指定位置。
快速彈性:可快速地且彈性地(在一些情況下,自動地)佈建能力以迅速地向外延展,且可快速地釋放能力以迅速地向內延展。在消費者看來,可用於佈建之能力常常看起來為無限的且可在任何時間以任何量來購買。
所量測服務:雲端系統藉由在適於服務類型(例如,儲存、處理、頻寬及作用中使用者帳戶)之某一抽象層級下充分利用計量能力而自動控制及最佳化資源使用。可監測、控制及報告資源使用情況,由此向所利用服務之提供者及客戶兩者提供透明度。
服務模型如下:
軟體即服務(SaaS):提供給消費者之能力係使用在雲端基礎架構上運行之提供者之應用程式。可經由諸如網頁瀏覽器(例如,基於網頁之電子郵件)之精簡型用戶端介面自各種用戶端裝置獲取應用程式。消費者並不管理或控制包括網路、伺服器、作業系統、儲存器或甚至個別應用程式能力之基礎雲端基礎結構,其中可能的異常為有限的使用者特定應用程式組態設定。
平台即服務(PaaS):提供給消費者之能力係將使用由提供者所支援之程式設計語言及工具建立的消費者建立或獲取之應用程式部署至雲端基礎架構上。消費者並不管理或控制包括網路、伺服器、作業系統或儲存器之底層雲端基礎架構,但控制所部署之應用程式及可能的代管環境組態之應用程式。
基礎架構即服務(IaaS):提供給消費者之能力係佈建處理、儲存器、網路及其他基礎運算資源,其中消費者能夠部署及運行可包括作業系統及應用程式之任意軟體。消費者並不管理或控制基礎雲端基礎結構,但具有對作業系統、儲存器、所部署應用程式之控制,及可能的對選擇網路連接組件(例如,主機防火牆)之有限控制。
部署模型如下:
私用雲端:僅針對組織操作雲端基礎架構。私用雲端可由組織或第三方來管理且可存在於內部部署或外部部署。
社群雲端:該雲端基礎架構由若干組織共用且支援具有共用關注點(例如,任務、安全性要求、策略及順應性考量)之特定社群。群集雲端可由組織或第三方來管理且可存在內部部署或外部部署。
公用雲端:使雲端基礎結構可用於公眾或大型工業集團且為出售雲端服務之組織所擁有。
混合雲端:雲端基礎架構為兩個或兩個以上雲端(私用、社群或公用)之組合物,該等雲端保持獨特實體但藉由實現資料及應用程式攜帶性(例如,用於在雲端之間實現負載平衡之雲端爆裂)之標準化或專屬技術繫結在一起。
藉由集中於無狀態性、低耦合、模組化及語義互操作性對雲端運算環境進行服務定向。雲端運算之關鍵為包括互連節點之網路的基礎架構。
現參考圖11,描繪說明性雲端運算環境50。如所展示,雲端運算環境50包括一或多個雲端運算節點10,雲端消費者所使用之諸如個人數位助理(PDA)或蜂巢式電話54A、桌上型電腦54B、膝上型電腦54C及/或汽車電腦系統54N的本端運算裝置可與該一或多個雲端運算節點通信。節點10可彼此通信。可在一或多個網路(諸如,如上文所描述之私用、社群、公用或混合雲端或其組合)中將該等節點實體地或虛擬地分組(未展示)。此情形允許雲端運算環境50提供基礎架構、平台及/或軟體作為服務,針對該等服務,雲端消費者不需要在本端運算裝置上維護資源。應理解,圖11中所展示之運算裝置54A至54N之類型意欲僅為說明性的,且運算節點10及雲端運算環境50可經由任何類型之網路及/或網路可定址連接(例如,使用網頁瀏覽器)與任何類型之電腦化裝置通信。
現參考圖12,展示藉由雲端運算環境50 (圖11)所提供之功能抽象層之集合。事先應理解,圖12中所示之組件、層及功能意欲僅為說明性的,且本發明之實施例不限於此。如所描繪,提供以下層及對應功能:
硬體及軟體層60包括硬體及軟體組件。硬體組件之實例包括:大型電腦61;基於精簡指令集電腦(IRSC)架構之伺服器62;伺服器63;刀鋒伺服器64;儲存裝置65;以及網路及網路連接組件66。在一些實施例中,軟體組件包括網路應用程式伺服器軟體67及資料庫軟體68。在一或多個實施例中,硬體組件可包括本文中所論述之系統200,包括硬體控制器350。
虛擬化層70提供抽象層,可自該抽象層提供虛擬實體之以下實例:虛擬伺服器71;虛擬儲存器72;虛擬網路73,包括虛擬私用網路;虛擬應用程式及作業系統74;及虛擬用戶端75。
在一個實例中,管理層80可提供下文所描述之功能。資源佈建81提供運算資源及用以執行雲端運算環境內之任務之其他資源的動態採購。當在雲端運算環境內利用資源時,計量及定價82提供成本追蹤,及對此等資源之消耗之帳務處理及發票開立。在一個實例中,此等資源可包括應用軟體授權。安全性為雲端消費者及任務提供身分驗證,以及對資料及其他資源之保護。使用者入口網站83為消費者及系統管理者提供對雲端運算環境之存取。服務層級管理84提供雲端運算資源分配及管理使得滿足所需服務層級。服務層級協議協定(SLA)規劃及實現85提供雲端運算資源之預先配置及採購,針對雲端運算資源之未來要求係根據SLA來預期。
工作負載層90提供功能之實例,可針對該功能利用雲端運算環境。可自此層提供之工作負載及功能的實例包括:地圖繪製及導航91;軟體開發及生命週期管理92;虛擬教室教育遞送93;資料分析處理94;異動處理95;以及工作負荷及功能96。
圖13為根據本發明之實施例的系統1300之方塊圖。系統1300包括用以產生最終製造成積體電路1320 (例如,晶片204)之設計1330的處理電路系統1310,該積體電路使用去中心化的熱快取線追蹤公平機制。積體電路1320的製造中涉及的步驟眾所周知且在本文中簡要地描述。一旦實體佈局1340部分地基於經組態以使用根據本發明之實施例的去中心化的熱快取線追蹤公平機制來定案,便將經定案實體佈局1340提供至鑄造廠。基於已定案實體佈局針對積體電路之每一層產生遮罩。接著,按遮罩次序之順序處理晶圓。處理包括光微影及蝕刻。參考圖14進一步論述此情況。
圖14為根據本發明之例示性實施例的製造積體電路的方法之處理流程。一旦部分地基於使用晶片204中之去中心化的熱快取線追蹤公平機制獲得實體設計資料,便可根據參考圖14大體描述的已知程序製造積體電路1320。大體而言,製造且切割(亦即,分割)具有最終設計之多個複本的晶圓,使得每一晶粒為積體電路1320之一個複本。在區塊1410處,該等程序包括基於已定案實體佈局製造用於微影之遮罩。在區塊1420處,製造晶圓包括使用遮罩來執行光微影及蝕刻。一旦分割晶圓,便在區塊1430處執行測試及分揀每一晶粒,以濾除任何有缺陷的晶粒。
本文中參考相關圖式描述本發明之各種實施例。可設計出替代實施例而不脫離本發明之範疇。儘管在以下描述中且在圖式中之元件之間闡述各種連接及位置關係(例如,上方、下方、鄰近等),但熟習此項技術者將認識到,在即使定向改變仍維護所描述功能性時,本文中所描述之位置關係中之許多者係定向獨立的。除非另外規定,否則此等連接及/或位置關係可為直接或間接的,且本發明不意欲侷限在此方面。相應地,實體之耦接可指直接或間接耦接,且實體之間之位置關係可為直接或間接位置關係。作為間接位置關係之實例,參考當前描述在層「B」之上形成層「A」包括一或多個中間層(例如,層「C」)在層「A」與層「B」之間的情形,只要層「A」及層「B」之相關特性及功能實質上並未被中間層改變即可。
應注意,片語「對……具有選擇性」,諸如「第一元件對第二元件具有選擇性」意謂可蝕刻第一元件,且第二元件可充當蝕刻終止件。
如本文所使用,「p型」係指產生價電子之缺陷的至純質半導體之雜質添加。在含矽基板中,p型摻雜劑(亦即雜質)的實例包括但不限於硼、鋁、鎵及銦。
如本文所使用,「n型」係指貢獻自由電子至純質半導體的雜質添加。在含矽基板中,n型摻雜劑(亦即雜質)之實例包括但不限於銻、砷及磷。
如本文中先前所指出,出於簡潔起見,可或可不在本文中詳細地描述與半導體裝置及積體電路(IC)製造相關之習知技術。然而,作為背景,現將提供可用於實施本發明之一或多個實施例的半導體裝置製造程序之更一般描述。儘管實施本發明之一或多個實施例時所使用之特定製造操作可個別地已知,但本發明之操作及/或所得結構的所描述組合係獨特的。因此,結合製造根據本發明之半導體裝置所描述之操作的獨特組合利用在半導體(例如,矽)基板上執行之多種個別已知的物理及化學程序,該等程序中之一些描述於緊隨其後的段落中。
一般而言,用於形成將封裝至IC中之微晶片的各種程序屬於四個通用類別,亦即,膜沈積、移除/蝕刻、半導體摻雜及圖案化/微影。沈積為使材料生長於、塗佈於或以其它方式轉移至晶圓上之任何程序。可用技術包括物理氣相沈積(PVD)、化學氣相沈積(CVD)、電化學沈積(ECD)、分子束磊晶法(MBE),及近年來的原子層沈積(ALD)等。移除/蝕刻為自晶圓移除材料之任何程序。實例包括蝕刻程序(濕式或乾式)及化學機械平坦化(CMP)以及其類似者。半導體摻雜為藉由摻雜例如電晶體源極及汲極,大體上藉由擴散及/或藉由離子植入來修改電屬性。此等摻雜程序之後為熔爐退火或快速熱退火(RTA)。退火用以活化植入摻雜劑。導體(例如,多晶矽、鋁、銅等)及絕緣體(例如,各種形式之二氧化矽、氮化矽等)兩者之膜用於連接及隔離電晶體及其組件。半導體基板之各種區的選擇性摻雜允許藉由施加電壓而改變基板之導電性。藉由產生此等各種組件之結構,數百萬電晶體可經構建且佈線在一起以形成現代微電子裝置之複雜電路系統。
如上文所指出,原子層蝕刻程序可在本發明中用於諸如可由通孔未對準造成的通孔殘餘物之移除。原子層蝕刻程序使用基於電漿之方法或電化學方法提供金屬之精確蝕刻。原子層蝕刻程序一般由可獨立控制之兩個明確界定的依序自限性反應步驟界定。該程序通常包括鈍化,接著選擇性地移除鈍化層,且可用以移除大約數奈米之薄金屬層。例示性基於電漿之方法通常包括兩步驟程序,其通常包括在低溫(低於20℃)下使金屬(諸如銅)曝露於氯及氫電漿中。此程序產生使表面污染降至最低的揮發性蝕刻產物。在另一實例中,在高溫下(諸如在275℃下)循環曝露於氧化劑及六氟乙醯丙酮(Hhfac)可用於選擇性地蝕刻金屬,諸如銅。例示性電化學方法亦可包括兩個步驟。第一步驟包括諸如銅之金屬之僅限表面硫化以形成金屬硫化物,例如Cu
2S,接著選擇性濕式蝕刻金屬硫化物,例如於HCl中蝕刻Cu
2S。原子層蝕刻為相對較新的技術,且針對特定金屬之最佳化完全在熟習此項技術者之技能內。表面處之反應提供高選擇性,且最小地或不侵蝕經曝露介電性表面。
半導體微影為在半導體基板上形成三維凹凸影像或圖案以用於圖案至基板之後續轉印。在半導體微影中,圖案由稱為光阻之光敏聚合物形成。為了構建構成電晶體之複雜結構及連接電路之數百萬電晶體之許多導線,多次重複微影及蝕刻圖案轉印步驟。印刷於晶圓上之各圖案經對準至先前形成之圖案,且緩慢地構建導體、絕緣體及選擇性摻雜區以形成最終裝置。
可使用習知沈積技術形成光阻,可使用此類化學氣相沈積、電漿氣相沈積、濺鍍、浸塗、旋塗、刷塗、噴灑及其他類似沈積技術。在形成光阻之後,光阻曝露於諸如X射線輻射、極紫外線(EUV)輻射、電子束輻射或其類似者之輻射的所要圖案。接下來,利用習知抗蝕劑顯影程序使經曝露光阻顯影。
在顯影步驟之後,可執行蝕刻步驟以將圖案自經圖案化光阻轉印至層間介電質中。用於形成至少一個開口之蝕刻步驟可包括乾式蝕刻程序(包括例如反應性離子蝕刻、離子束蝕刻、電漿蝕刻或雷射剝蝕)、濕式化學蝕刻程序或其任何組合。
出於簡潔起見,本文中可能或可能不詳細描述與進行及使用本發明之態樣有關的習知技術。特定言之,用以實施本文中所描述之各種技術特徵之運算系統及特定電腦程式之各種態樣係熟知的。因此,為簡潔起見,許多習知實施細節在本文中僅簡要提及或完全省略而不提供熟知系統及/或程序細節。
在一些實施例中,各種功能或動作可在給定位置處發生及/或結合一或多個設備或系統之操作發生。在一些實施例中,給定功能或操作之一部分可在第一裝置或位置處執行,且該功能或操作之其餘部分可在一或多個額外裝置或位置處執行。
本文中所使用之術語僅出於描述特定實施例之目的且並不意欲為限制性的。如本文所使用,除非上下文另外清楚地指示,否則單數形式「一」及「所述」意欲亦包括複數形式。將進一步理解,當本說明書中使用時,術語「包含(comprises及/或comprising)」指定所陳述的特徵、整體、步驟、操作、元件及/或組件的存在,但不排除一或多個其他特徵、整體、步驟、操作、元件組件及/或其群組的存在或添加。
以下申請專利範圍中之所有構件或步驟加功能元件之對應結構、材料、動作及等效物意欲包括用於結合如特定主張之其他所主張元件來執行功能的任何結構、材料或動作。已出於說明及描述的目的呈現本發明,但本發明不意欲為窮盡性的或限於所揭示之形式。在不脫離本發明之範疇及精神的情況下,許多修改及變化對一般熟習此項技術者而言將顯而易見。選擇並描述實施例以便最佳地解釋本發明之原理及實務應用,且使其他一般熟習此項技術者能夠關於具有適合於所預期之特定用途的各種修改之各種實施例來理解本發明。
本文中所描繪之圖式係說明性的。在不脫離本發明之精神的情況下,所描述之圖式或步驟(或操作)可存在許多變化。舉例而言,可以不同次序執行動作或可添加、刪除或修改動作。此外,術語「耦接」描述在兩個元件之間具有信號路徑且並不暗示在元件之間的直接連接而在其間無介入元件/連接。所有此等變化被視為本發明之一部分。
以下定義及縮寫將用於解釋申請專利範圍及本說明書。如本文中所使用,術語「包含(comprises/comprising)」、「包括(includes/including)」、「具有(has/having)」、「含有(contains或containing)」或其任何其他變體意欲涵蓋非排他性包括物。舉例而言,包含一系列元件之組合物、混合物、程序、方法、物品或設備未必僅限於彼等元件,而是可包括未明確地列出或此類組合物、混合物、程序、方法、物品或設備所固有的其他元件。
此外,術語「例示性」在本文中用以意謂「充當實例、例項或說明」。本文中描述為「例示性」之任何實施例或設計未必應解釋為比其他實施例或設計較佳或有利。術語「至少一個」及「一或多個」應理解為包括大於或等於一個之任何整數,亦即,一個、兩個、三個、四個等。術語「複數個」應理解為包括大於或等於兩個之任何整數數目,亦即,兩個、三個、四個、五個等。術語「連接」可包括間接「連接」及直接「連接」兩者。
術語「約」、「實質上」、「大致」及其變體意欲包括與基於在申請本申請案時可用的設備之特定量的量測相關聯之誤差度。舉例而言,「約」可包括給定值之±8%或5%或2%的範圍。
本發明可為在任何可能之技術細節整合層級處的系統、方法及/或電腦程式產品。電腦程式產品可包括一(或多個)電腦可讀儲存媒體,其上有電腦可讀程式指令以使處理器進行本發明之態樣。
電腦可讀儲存媒體可為有形裝置,其可保持及儲存指令以供指令執行裝置使用。電腦可讀儲存媒體可為(例如但不限於)電子儲存裝置、磁性儲存裝置、光學儲存裝置、電磁儲存裝置、半導體儲存裝置或前文之任何合適組合。電腦可讀儲存媒體之更具體實例之非窮盡性清單包括以下各者:攜帶型電腦磁片、硬碟、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除可程式化唯讀記憶體(EPROM或快閃記憶體)、靜態隨機存取記憶體(SRAM)、攜帶型緊密光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)、記憶棒、軟碟、機械編碼裝置(諸如其上記錄有指令之凹槽中之打孔卡片或凸起結構)及前述各者之任何合適組合。如本文所使用,不應將電腦可讀儲存媒體本身解釋為暫時性信號,諸如無線電波或其他自由傳播之電磁波、經由波導或其他傳輸媒體傳播之電磁波(例如,經由光纖纜線傳遞之光脈衝),或經由電線傳輸之電信號。
本文中所描述之電腦可讀程式指令可自電腦可讀儲存媒體下載至各別運算/處理裝置或經由網路(例如,網際網路、區域網路、廣域網路及/或無線網路)下載至外部電腦或外部儲存裝置。網路可包含銅傳輸纜線、光傳輸光纖、無線傳輸、路由器、防火牆、交換器、閘道器電腦及/或邊緣伺服器。每一運算/處理裝置中之網路配接卡或網路介面自網路接收電腦可讀程式指令且轉遞電腦可讀程式指令以用於儲存於各別運算/處理裝置內之電腦可讀儲存媒體中。
用於進行本發明之操作的電腦可讀程式指令可為以一或多種程式設計語言之任何組合撰寫之組譯程式指令、指令集合架構(ISA)指令、機器指令、機器相關指令、微碼、韌體指令、狀態設定資料、積體電路系統之組態資料或原始程式碼或目標程式碼中之任一者,該一或多種程式設計語言包括諸如Smalltalk、C++或其類似者之物件導向式程式設計語言,及諸如「C」程式設計語言或類似程式設計語言之程序性程式設計語言。電腦可讀程式指令可完全在使用者電腦上執行,作為單獨套裝軟體部分地在使用者之電腦上執行,部分地在使用者之電腦上且部分地在遠端電腦上執行或完全在遠端電腦或伺服器上執行。在後一情形中,遠端電腦可經由任何類型之網路(包括區域網路(LAN)或廣域網路(WAN))連接至使用者之電腦,或可連接至外部電腦(例如,使用網際網路服務提供者經由網際網路)。在一些實施例中,包括例如可程式化邏輯電路、場可程式化閘陣列(FPGA)或可程式化邏輯陣列(PLA)之電子電路可藉由利用電腦可讀程式指令之狀態資訊來個人化電子電路來執行電腦可讀程式指令,以便執行本發明之態樣。
本文中參考根據本發明之實施例之方法、設備(系統)及電腦程式產品之流程圖說明及/或方塊圖來描述本發明之態樣。將理解,可藉由電腦可讀程式指令實施流程圖說明及/或方塊圖中之各區塊以及流程圖說明及/或方塊圖中之區塊的組合。
可將此等電腦可讀程式指令提供至通用電腦、專用電腦或其他可程式化資料處理設備之處理器以產生一機器,以使得經由該電腦或其他可程式化資料處理設備之處理器執行之指令產生用於實施該或該等流程圖及/或方塊圖區塊中所指定之功能/動作之手段。亦可將此等電腦可讀程式指令儲存於電腦可讀儲存媒體中,該等指令可指導電腦、可程式化資料處理設備及/或其他裝置以特定方式起作用,以使得儲存有指令之電腦可讀儲存媒體包含製品,該製品包括實施該一或多個流程圖及/或方塊圖區塊中所指定之功能/動作之態樣的指令。
電腦可讀程式指令亦可載入至電腦、其他可程式化資料處理設備或其他裝置上,以使一系列操作步驟在該電腦、其他可程式化設備或其他裝置上執行以產生電腦實施之程序,使得在該電腦、其他可程式化設備或其他裝置上執行之指令實施一或多個流程圖及/或方塊圖區塊中所指定之功能/動作。
諸圖中之流程圖及方塊圖說明根據本發明之各種實施例之系統、方法及電腦程式產品之可能實施之架構、功能性及操作。就此而言,流程圖或方塊圖中的每一區塊可表示指令的模組、片段或部分,其包含用於實施一或多個所指定之邏輯函式的一或多個可執行指令。在一些替代實施中,區塊中所指出的功能可不按圖式中所指出的次序發生。舉例而言,視所涉及之功能性而定,連續展示之兩個區塊實際上可實質上同時執行,或該等區塊有時可以相反次序執行。亦將注意,可藉由執行指定功能或動作或進行專用硬體及電腦指令之組合的基於專用硬體之系統實施方塊圖及/或流程圖說明之每一區塊,及方塊圖及/或流程圖說明中之區塊之組合。
已出於說明目的呈現本發明之各種實施例之描述,但該描述並不意欲為詳盡的或限於所揭示之實施例。在不脫離所描述實施例之範疇及精神的情況下,許多修改及變化對一般熟習此項技術者而言將顯而易見。本文中所使用之術語經選擇以最佳解釋實施例之原理、實際應用或對市場中發現之技術的技術改良,或使得其他一般熟習此項技術者能夠理解本文中所描述之實施例。
10:雲端運算節點
50:雲端運算環境
54A:蜂巢式電話
54B:桌上型電腦
54C:膝上型電腦
54N:汽車電腦系統
60:硬體及軟體層
61:大型電腦
62:基於精簡指令集電腦(IRSC)架構之伺服器
63:伺服器
64:刀鋒伺服器
65:儲存裝置
66:網路及網路連接組件
67:網路應用程式伺服器軟體
68:資料庫軟體
70:虛擬化層
71:虛擬伺服器
72:虛擬儲存器
73:虛擬網路
74:虛擬應用程式及作業系統
75:虛擬用戶端
80:管理層
81:資源佈建
82:計量及定價
83:使用者入口網站
84:服務層級管理
85:服務層級協議協定(SLA)規劃及實現
90:工作負載層
91:地圖繪製及導航
92:軟體開發及生命週期管理
93:虛擬教室教育遞送
94:資料分析處理
95:異動處理
96:工作負荷及功能
100:電腦系統
101:處理器
101a:中央處理單元
101b:中央處理單元
101c:中央處理單元
102:系統匯流排
103:系統記憶體
104:唯讀記憶體
105:隨機存取記憶體
106:輸入/輸出(I/O)配接器
107:通信配接器
108:硬碟
110:大容量儲存器
111:軟體
112:網路
115:顯示器配接器
116:介面配接器
119:顯示器
121:鍵盤
122:滑鼠
123:揚聲器
200:系統
202:抽屜
204:處理器晶片
206:共用快取
320:邏輯
322:記憶體
342:計數器
344:目錄
350:硬體控制器
601:動作
602:動作
603:動作
604:動作
605:動作
701:動作
702:動作
703:動作
704:動作
705:動作
706:動作
707:動作
800:電腦實施程序
802:區塊
804:區塊
806:區塊
808:區塊
810:區塊
812:區塊
814:區塊
816:區塊
818:區塊
900:電腦實施方法
902:區塊
904:區塊
1000:電腦實施方法
1002:區塊
1004:區塊
1006:區塊
1008:區塊
1300:系統
1310:處理電路系統
1320:積體電路
1330:設計
1340:實體佈局
1410:區塊
1420:區塊
1430:區塊
在本說明書之結尾處之申請專利範圍中特別地指出且清楚地主張本文中所描述之專有權的細節。本發明之實施例的前述及其他特徵及優勢自結合隨附圖式進行之以下詳細描述顯而易見,在該等圖式中:
圖1描繪與本發明之一或多個實施例結合使用之實例電腦系統的方塊圖;
圖2描繪根據本發明之一或多個實施例的經組態以提供去中心化的熱快取線追蹤公平機制之實例系統的方塊圖;
圖3描繪根據本發明之一或多個實施例的經組態以提供去中心化的熱快取線追蹤公平機制之實例共用快取的方塊圖;
圖4描繪繪示根據本發明之一或多個實施例的用於去中心化的階層式熱線公平性追蹤中的每一快取線之實例所請求向量及實例所服務向量的方塊圖;
圖5A繪示根據本發明之一或多個實施例的硬體控制器之實例晶片範疇;
圖5B繪示根據本發明之一或多個實施例的用於硬體控制器之實例抽屜範疇;
圖5C繪示根據本發明之一或多個實施例的用於硬體控制器之實例系統範疇;
圖6描繪繪示根據本發明之一或多個實施例的用於去中心化的熱快取線追蹤公平性之向量維護及傳遞之實例的方塊圖;
圖7A及圖7B描繪繪示根據本發明之一或多個實施例的用於去中心化的熱快取線追蹤公平性之向量維護及傳遞之實例的方塊圖;
圖8為根據本發明之一或多個實施例的用於存取共用快取中之快取線的去中心化的熱快取線追蹤公平機制之電腦實施程序的流程圖;
圖9為根據本發明之一或多個實施例的用於針對共用快取中之熱快取線執行去中心化的熱快取線追蹤公平機制之電腦實施方法的流程圖;
圖10為根據本發明之一或多個實施例的用於針對共用快取中之熱快取線執行去中心化的熱快取線追蹤公平機制之電腦實施方法的流程圖;
圖11描繪根據本發明之一或多個實施例之雲端運算環境;
圖12描繪根據本發明之一或多個實施例之抽象模型層;
圖13為根據本發明之一或多個實施例的在積體電路(IC)中使用去中心化的熱快取線追蹤公平機制來設計/佈局IC之系統的方塊圖;及
圖14為根據本發明之一或多個實施例的製造圖13之IC的方法之處理流程。
900:電腦實施方法
902:區塊
904:區塊
Claims (24)
- 一種電腦實施方法,其包含:回應於接收到存取一快取線之一傳入請求,基於與該快取線相關聯之一所請求狀態及一所服務狀態而作出授予對該快取線之存取之一判定,一結構包含該所請求狀態及該所服務狀態,其中該所服務狀態包含一第一範疇及一第二範疇,該第一範疇包含用於追蹤先前授予對該快取線之存取之晶片之位置且該第二範疇包含用於追蹤先前授予對該快取線之存取之抽屜之位置,其中一控制器經組態以接收該傳入請求,在達成一條件後重設該第一範疇之至少一部份;及回應於授予對該快取線之存取之該判定,將該所請求狀態及該所服務狀態連同該快取線之資料一起傳送。
- 如請求項1之電腦實施方法,其中將該所請求狀態及該所服務狀態傳送至作出該傳入請求之一控制器,該所請求狀態及該所服務狀態與自一快取請求之該快取線之該資料不同,該所請求狀態及該所服務狀態被指派至該快取線。
- 如請求項1之電腦實施方法,其中該所請求結構及該所服務結構自已接收該傳入請求之一控制器傳送至作出該傳入請求之另一控制器。
- 如請求項1之電腦實施方法,其中:該所請求狀態經組態以追蹤被觀測到但尚未被授予之存取該快取線 之請求;且該所服務狀態經組態以追蹤被觀測到且已被授予對該快取線之存取的存取該快取線之請求。
- 如請求項1之電腦實施方法,其中該結構中之一第一部分經組態以追蹤該第一範疇中之第一請求者,且該結構中之一第二部分經組態以追蹤該第二範疇中之第二請求者,該第一範疇與該第二範疇具有一階層式關係。
- 如請求項1之電腦實施方法,其中該結構中之一第一項目經組態以追蹤用於一第一快取之該所請求狀態及該所服務狀態,且該結構中之一第二項目經組態以追蹤用於一第二快取之其他所請求狀態及所服務狀態。
- 如請求項1之電腦實施方法,其中該結構包含用於追蹤該所請求狀態之一所請求結構及用於追蹤該所服務狀態之一所服務結構。
- 一種電子系統,其包含:一共用快取;及一控制器,其耦接至該共用快取,該控制器經組態以:回應於接收到存取一快取線之一傳入請求,基於與該快取線相關聯之一所請求狀態及一所服務狀態而作出授予對該快取線之存取之一判定,一結構包含該所請求狀態及該所服務狀態,其中該所服務狀態包含一第一範疇及一第二範疇,該第一範疇包含用於追蹤先前授予對該快取線之存取之晶片之位置且該第二範疇包含用於追蹤先 前授予對該快取線之存取之抽屜之位置,其中一控制器經組態以接收該傳入請求,在達成一條件後重設該第一範疇之至少一部份;及回應於授予對該快取線之存取之該判定,將該所請求狀態及該所服務狀態連同該快取線之資料一起傳送。
- 如請求項8之電子系統,其中該所請求狀態及該所服務狀態傳送至作出該傳入請求之另一控制器。
- 如請求項8之電子系統,其中該控制器經組態以接收該傳入請求。
- 如請求項8之電子系統,其中該所請求狀態及該所服務狀態自已接收該傳入請求之該控制器傳送至另一控制器。
- 如請求項8之電子系統,其中:該所請求狀態經組態以追蹤被觀測到但尚未被授予的存取該快取線之請求;且該所服務狀態經組態以追蹤被觀測到且已被授予對該快取線之存取的存取該快取線之請求。
- 如請求項8之電子系統,其中該結構中之一第一部分經組態以追蹤該第一範疇中之第一請求者,且該結構中之一第二部分經組態以追蹤該第二範疇中之第二請求者,該第一範疇與該第二範疇具有一階層式關係。
- 如請求項8之電子系統,其中該結構中之一第一項目經組態以追蹤針對一第一快取之該所請求狀態及該所服務狀態,且該結構中之一第二項目經組態以追蹤針對一第二快取之其他所請求狀態及所服務狀態。
- 如請求項8之電子系統,其中該結構包含用於追蹤該所請求狀態之一所請求結構及用於追蹤該所服務狀態之一所服務結構。
- 一種控制器,其包含邏輯,該邏輯可執行以執行包含以下各者之操作:回應於接收到存取一快取線之一傳入請求,基於與該快取線相關聯之一所請求狀態及一所服務狀態而作出授予對該快取線之存取之一判定,一結構包含該所請求狀態及該所服務狀態,其中該所服務狀態包含一第一範疇及一第二範疇,該第一範疇包含用於追蹤先前授予對該快取線之存取之晶片之位置且該第二範疇包含用於追蹤先前授予對該快取線之存取之抽屜之位置,其中一控制器經組態以接收該傳入請求,在達成一條件後重設該第一範疇之至少一部份;及回應於授予對該快取線之存取之該判定,將該所請求狀態及該所服務狀態連同該快取線之資料一起傳送。
- 如請求項16之控制器,其中該邏輯經組態以將該所請求狀態及該所服務狀態傳送至已發送該傳入請求之另一控制器。
- 如請求項16之控制器,其中: 該所請求狀態經組態以追蹤被觀測到但尚未被授予的存取該快取線之請求;且該所服務狀態經組態以追蹤被觀測到且已被授予對該快取線之存取的存取該快取線之請求。
- 如請求項16之控制器,其中該結構中之一第一部分經組態以追蹤該第一範疇中之第一請求者,且該結構中之一第二部分經組態以追蹤該第二範疇中之第二請求者,該第一範疇與該第二範疇具有一階層式關係。
- 一種電腦實施方法,其包含:回應於自一請求者接收到存取一快取線之一傳入請求,基於與該快取線相關聯之一所請求狀態及一所服務狀態而作出拒絕對該快取線之存取之一判定,一結構包含該所請求狀態及該所服務狀態,其中該所服務狀態包含一第一範疇及一第二範疇,該第一範疇包含用於追蹤先前授予對該快取線之存取之晶片之位置且該第二範疇包含用於追蹤先前授予對該快取線之存取之抽屜之位置,其中一控制器經組態以接收該傳入請求,在達成一條件後重設該第一範疇之至少一部份;回應於拒絕對該快取線之存取之該判定,將一位元設定於該所請求狀態中,該位元對應於該請求者;回應於自該請求者接收到存取該快取線之另一傳入請求,基於該所請求狀態及該所服務狀態中設定之該位元針對該另一傳入請求作出授予對該快取線之存取之另一判定;及將該所請求狀態及該所服務狀態連同該快取線之資料一起傳送至該 請求者。
- 如請求項20之電腦實施方法,其中該請求者為一控制器,該控制器已作出該傳入請求。
- 如請求項20之電腦實施方法,其中拒絕對該快取線之存取的該判定係基於針對低於與該請求者相關聯之另一範疇的一範疇在該所請求狀態中設定的一值。
- 如請求項20之電腦實施方法,其中該所請求狀態及該所服務狀態自已接收該傳入請求之一控制器傳送至已發送該傳入請求之該請求者。
- 一種電子系統,其包含:一共用快取;及一控制器,其耦接至該共用快取,該控制器經組態以:回應於自一請求者接收到存取一快取線之一傳入請求,基於與該快取線相關聯之一所請求狀態及一所服務狀態而作出拒絕對該快取線之存取之一判定,一結構包含該所請求狀態及該所服務狀態,其中該所服務狀態包含一第一範疇及一第二範疇,該第一範疇包含用於追蹤先前授予對該快取線之存取之晶片之位置且該第二範疇包含用於追蹤先前授予對該快取線之存取之抽屜之位置,其中一控制器經組態以接收該傳入請求,在達成一條件後重設該第一範疇之至少一部份; 回應於拒絕對該快取線之存取之該判定,將一位元設定於該所請求狀態中,該位元對應於該請求者;回應於自該請求者接收到存取該快取線之另一傳入請求,基於該所請求狀態及該所服務狀態中設定之該位元針對該另一傳入請求作出授予對該快取線之存取之另一判定;及將該所請求狀態及該所服務狀態連同該快取線之資料一起傳送至該請求者。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/713,264 US12038841B2 (en) | 2022-04-05 | 2022-04-05 | Decentralized hot cache line tracking fairness mechanism |
| US17/713,264 | 2022-04-05 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202403559A TW202403559A (zh) | 2024-01-16 |
| TWI851033B true TWI851033B (zh) | 2024-08-01 |
Family
ID=85795483
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW112105755A TWI851033B (zh) | 2022-04-05 | 2023-02-17 | 去中心化的熱快取線追蹤公平機制 |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US12038841B2 (zh) |
| EP (1) | EP4505311A1 (zh) |
| JP (1) | JP2025510785A (zh) |
| CN (1) | CN119013663A (zh) |
| TW (1) | TWI851033B (zh) |
| WO (1) | WO2023194107A1 (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12423234B1 (en) | 2024-07-23 | 2025-09-23 | International Business Machines Corporation | Cache governance in a computing environment with multiple processors |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW200809497A (en) * | 2005-12-28 | 2008-02-16 | Ibm | System and method for default data forwarding coherent caching agent |
| TW201303602A (zh) * | 2011-06-09 | 2013-01-16 | Apple Inc | 用於快取區塊連貫性之系統、方法及裝置 |
| US20150378919A1 (en) * | 2014-06-30 | 2015-12-31 | Aravindh V. Anantaraman | Selective prefetching for a sectored cache |
| US20180285277A1 (en) * | 2017-03-29 | 2018-10-04 | International Business Machines Corporation | Hot cache line arbitration |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6138218A (en) | 1998-02-17 | 2000-10-24 | International Business Machines Corporation | Forward progress on retried snoop hits by altering the coherency state of a local cache |
| US7340565B2 (en) | 2004-01-13 | 2008-03-04 | Hewlett-Packard Development Company, L.P. | Source request arbitration |
| US20060230233A1 (en) * | 2005-04-11 | 2006-10-12 | Steely Simon C Jr | Technique for allocating cache line ownership |
| US8677014B2 (en) | 2006-11-27 | 2014-03-18 | Cisco Technology, Inc. | Fine granularity exchange level load balancing in a multiprocessor storage area network |
| US9513959B2 (en) | 2007-11-21 | 2016-12-06 | Arm Limited | Contention management for a hardware transactional memory |
| US9836325B2 (en) | 2012-05-21 | 2017-12-05 | Nvidia Corporation | Resource management subsystem that maintains fairness and order |
| US10162757B2 (en) | 2016-12-06 | 2018-12-25 | Advanced Micro Devices, Inc. | Proactive cache coherence |
| US10310982B2 (en) | 2016-12-15 | 2019-06-04 | International Business Machines Corporation | Target cache line arbitration within a processor cluster |
| US10489294B2 (en) | 2017-04-05 | 2019-11-26 | International Business Machines Corporation | Hot cache line fairness arbitration in distributed modular SMP system |
| US10762000B2 (en) | 2017-04-10 | 2020-09-01 | Samsung Electronics Co., Ltd. | Techniques to reduce read-modify-write overhead in hybrid DRAM/NAND memory |
| US10592451B2 (en) * | 2017-04-26 | 2020-03-17 | International Business Machines Corporation | Memory access optimization for an I/O adapter in a processor complex |
| US10585800B2 (en) | 2017-06-16 | 2020-03-10 | International Business Machines Corporation | Reducing cache transfer overhead in a system |
| US10705977B2 (en) | 2018-03-02 | 2020-07-07 | Intel Corporation | Method of dirty cache line eviction |
| US11010210B2 (en) | 2019-07-31 | 2021-05-18 | International Business Machines Corporation | Controller address contention assumption |
-
2022
- 2022-04-05 US US17/713,264 patent/US12038841B2/en active Active
-
2023
- 2023-02-17 TW TW112105755A patent/TWI851033B/zh active
- 2023-03-22 CN CN202380032326.XA patent/CN119013663A/zh active Pending
- 2023-03-22 WO PCT/EP2023/057385 patent/WO2023194107A1/en not_active Ceased
- 2023-03-22 JP JP2024556453A patent/JP2025510785A/ja active Pending
- 2023-03-22 EP EP23714503.2A patent/EP4505311A1/en active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW200809497A (en) * | 2005-12-28 | 2008-02-16 | Ibm | System and method for default data forwarding coherent caching agent |
| TW201303602A (zh) * | 2011-06-09 | 2013-01-16 | Apple Inc | 用於快取區塊連貫性之系統、方法及裝置 |
| US20150378919A1 (en) * | 2014-06-30 | 2015-12-31 | Aravindh V. Anantaraman | Selective prefetching for a sectored cache |
| US20180285277A1 (en) * | 2017-03-29 | 2018-10-04 | International Business Machines Corporation | Hot cache line arbitration |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2025510785A (ja) | 2025-04-15 |
| US20230315638A1 (en) | 2023-10-05 |
| CN119013663A (zh) | 2024-11-22 |
| US12038841B2 (en) | 2024-07-16 |
| TW202403559A (zh) | 2024-01-16 |
| WO2023194107A1 (en) | 2023-10-12 |
| EP4505311A1 (en) | 2025-02-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12430170B2 (en) | Quantum computing service with quality of service (QoS) enforcement via out-of-band prioritization of quantum tasks | |
| US11055465B2 (en) | Fill techniques for avoiding Boolean DRC failures during cell placement | |
| TW202301118A (zh) | 動態微服務分配機制 | |
| US10902175B1 (en) | Cross-hierarchical block pin placement | |
| CN112148467A (zh) | 计算资源的动态分配 | |
| TWI851033B (zh) | 去中心化的熱快取線追蹤公平機制 | |
| US20240104021A1 (en) | Processor cross-core cache line contention management | |
| US12050850B2 (en) | Filler cells for integrated circuit design | |
| EP4505309B1 (en) | Preemptive tracking of remote requests for decentralized hot cache line fairness tracking | |
| US11907125B2 (en) | Hot line fairness mechanism favoring software forward progress | |
| US10586009B2 (en) | Hierarchical trim management for self-aligned double patterning | |
| US20230267251A1 (en) | Out-of-context timing constraints modification for interior pins | |
| US12212568B1 (en) | Managed attestation service for compute instances | |
| US11748266B1 (en) | Special tracking pool enhancement for core local cache address invalidates | |
| US11347512B1 (en) | Substitution through protocol to protocol translation | |
| US12412020B2 (en) | Effective metal density screens for hierarchical design rule checking (DRC) analysis | |
| US10943051B1 (en) | Metal fill shape removal from selected nets | |
| CN115774661A (zh) | 具有用户数据隔离的多用户调试 | |
| US10943040B1 (en) | Clock gating latch placement | |
| US11916384B2 (en) | Region-based power grid generation through modification of an initial power grid based on timing analysis | |
| US10902178B1 (en) | Wire orientation-based latch shuddling | |
| US12113718B2 (en) | Apparatus and method for resource allocation in edge computing environment | |
| US20250138815A1 (en) | Automatic healing of microservice dependency incompatibility | |
| US20240370294A1 (en) | Horizontally scalable system for managing container clusters | |
| US20240242012A1 (en) | Hybrid signal routing with backside interconnect |