TWI722009B - 用於在遠端處理器上進行基元動作之硬體機制 - Google Patents

用於在遠端處理器上進行基元動作之硬體機制 Download PDF

Info

Publication number
TWI722009B
TWI722009B TW105127099A TW105127099A TWI722009B TW I722009 B TWI722009 B TW I722009B TW 105127099 A TW105127099 A TW 105127099A TW 105127099 A TW105127099 A TW 105127099A TW I722009 B TWI722009 B TW I722009B
Authority
TW
Taiwan
Prior art keywords
action
processor
interrupt
register
unit
Prior art date
Application number
TW105127099A
Other languages
English (en)
Other versions
TW201725507A (zh
Inventor
麥可 米夏里
伊多 奧席爾
巴魯克 蔡金
尤非 查奇
Original Assignee
美商英特爾股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商英特爾股份有限公司 filed Critical 美商英特爾股份有限公司
Publication of TW201725507A publication Critical patent/TW201725507A/zh
Application granted granted Critical
Publication of TWI722009B publication Critical patent/TWI722009B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/683Invalidation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

描述用於遠端動作處置之系統、設備、及方法的實施例。於一實施例中,一種硬體設備包含:第一暫存器,用以儲存相應於動作之酬載的記憶體位址,該動作將被履行相關於遠端動作請求(RAR)中斷;第二暫存器,用以儲存可由複數處理器所存取之動作列的記憶體位址;及遠端動作處置器電路,用以識別已接收RAR中斷、履行該已接收RAR中斷之動作、及於該動作之完成時通知確認至起始處理器。

Description

用於在遠端處理器上進行基元動作之硬體機制
本發明之實施例係有關電腦架構之領域;而更明確地,係有關遠端動作處置。
許多多處理器系統係提供一種稱為處理器間中斷(IPI)之中斷的類型。IPI通常是一種針對從傳送處理器至接收處理器之動作的請求。於某些系統中,傳送處理器係寫入至中斷命令暫存器或軟體中斷暫存器以起始介於傳送處理器與接收處理器之間的IPI。
101‧‧‧處理器0
102‧‧‧中斷控制器
103‧‧‧遠端動作處置器
105‧‧‧遠端動作介面
107‧‧‧遠端動作計數器
108‧‧‧暫存器
109‧‧‧TLB
111‧‧‧處理器N
112‧‧‧中斷控制器
113‧‧‧遠端動作處置器
115‧‧‧遠端動作介面
117‧‧‧遠端動作計數器
118‧‧‧暫存器
119‧‧‧TLB
121‧‧‧共用記憶體
123‧‧‧動作
125‧‧‧動作酬載資料結構
131‧‧‧匯流排/互連
301‧‧‧動作
303‧‧‧項目
801‧‧‧ILP
803‧‧‧RLP 0
805‧‧‧RLP 1
809‧‧‧酬載
811‧‧‧動作資料結構
900‧‧‧暫存器架構
910‧‧‧向量暫存器
915‧‧‧寫入遮蔽暫存器
925‧‧‧通用暫存器
945‧‧‧純量浮點堆疊暫存器檔
950‧‧‧MMX緊縮整數平坦暫存器檔
1000‧‧‧處理器管線
1002‧‧‧提取級
1004‧‧‧長度解碼級
1006‧‧‧解碼級
1008‧‧‧配置級
1010‧‧‧重新命名級
1012‧‧‧排程級
1014‧‧‧暫存器讀取/記憶體讀取級
1016‧‧‧執行級
1018‧‧‧寫入回/記憶體寫入級
1022‧‧‧例外處置級
1024‧‧‧確定級
1030‧‧‧前端單元
1032‧‧‧分支預測單元
1034‧‧‧指令快取單元
1036‧‧‧變換後備緩衝(TLB)
1038‧‧‧指令提取單元
1040‧‧‧解碼單元
1050‧‧‧執行引擎單元
1052‧‧‧重新命名/配置器單元
1054‧‧‧撤回單元
1056‧‧‧排程器單元
1058‧‧‧實體暫存器檔單元
1060‧‧‧執行叢集
1062‧‧‧執行單元
1064‧‧‧記憶體存取單元
1070‧‧‧記憶體單元
1072‧‧‧資料TLB單元
1074‧‧‧資料快取單元
1076‧‧‧第二階(L2)快取單元
1090‧‧‧處理器核心
1100‧‧‧指令解碼器
1102‧‧‧晶粒上互連網路
1104‧‧‧第二階(L2)快取
1106‧‧‧L1快取
1106A‧‧‧L1資料快取
1108‧‧‧純量單元
1110‧‧‧向量單元
1112‧‧‧純量暫存器
1114‧‧‧向量暫存器
1120‧‧‧拌合單元
1122A-B‧‧‧數字轉換單元
1124‧‧‧複製單元
1126‧‧‧寫入遮蔽暫存器
1128‧‧‧16寬的ALU
1200‧‧‧處理器
1202A-N‧‧‧核心
1206‧‧‧共享快取單元
1208‧‧‧特殊用途邏輯
1210‧‧‧系統代理
1212‧‧‧環狀為基的互連單元
1214‧‧‧集成記憶體控制器單元
1216‧‧‧匯流排控制器單元
1300‧‧‧系統
1310、1315‧‧‧處理器
1320‧‧‧控制器集線器
1340‧‧‧記憶體
1345‧‧‧共處理器
1350‧‧‧輸入/輸出集線器(IOH)
1360‧‧‧輸入/輸出(I/O)裝置
1390‧‧‧圖形記憶體控制器集線器(GMCH)
1395‧‧‧連接
1400‧‧‧多處理器系統
1414‧‧‧I/O裝置
1415‧‧‧額外處理器
1416‧‧‧第一匯流排
1418‧‧‧匯流排橋
1420‧‧‧第二匯流排
1422‧‧‧鍵盤及/或滑鼠
1424‧‧‧音頻I/O
1427‧‧‧通訊裝置
1428‧‧‧儲存單元
1430‧‧‧指令/碼及資料
1432‧‧‧記憶體
1434‧‧‧記憶體
1438‧‧‧共處理器
1439‧‧‧高性能介面
1450‧‧‧點對點互連
1452、1454‧‧‧P-P介面
1470‧‧‧第一處理器
1472、1482‧‧‧集成記憶體控制器(IMC)單元
1476、1478‧‧‧點對點(P-P)介面
1480‧‧‧第二處理器
1486、1488‧‧‧P-P介面
1490‧‧‧晶片組
1494、1498‧‧‧點對點介面電路
1496‧‧‧介面
1500‧‧‧系統
1514‧‧‧I/O裝置
1515‧‧‧舊有I/O裝置
1600‧‧‧SoC
1602‧‧‧互連單元
1610‧‧‧應用程式處理器
1620‧‧‧共處理器
1630‧‧‧靜態隨機存取記憶體(SRAM)單元
1632‧‧‧直接記憶體存取(DMA)單元
1640‧‧‧顯示單元
本發明係藉由後附圖形之圖中的範例(而非限制)來闡明,其中相似的參考符號係指示類似的元件,且其中:圖1闡明一電腦系統之實施例。
圖2闡明一酬載資料結構之實施例。
圖3闡明一動作資料結構之實施例。
圖4闡明由ILP所履行以起始RAR之方法的實施 例。
圖5闡明由RLP所履行以處理RAR之方法的實施例。
圖6闡明由ILP所履行以起始RAR之方法的實施例。
圖7闡明由RLP所履行以處理RAR之方法的實施例。
圖8闡明一使用記憶體中所儲存之酬載及動作資料結構的RAR流程之方塊圖的實施例。
圖9為一暫存器架構之方塊圖,依據本發明之一實施例。
圖10A為闡明範例依序管線及範例暫存器重新命名、失序發送/執行管線兩者之方塊圖,依據本發明之實施例。
圖10B為一方塊圖,其闡明將包括於依據本發明之實施例的處理器中之依序架構核心之範例實施例及範例暫存器重新命名、失序發送/執行架構核心兩者。
圖11A-B闡明更特定的範例依序核心架構之方塊圖,該核心將為晶片中之數個邏輯區塊之一(包括相同類型及/或不同類型之其他核心)。
圖12為一種處理器1200之方塊圖,該處理器1200可具有多於一個核心、可具有集成記憶體控制器、且可具有集成圖形,依據本發明之實施例。
圖13-16為範例電腦架構之方塊圖。
圖17為一種對照軟體指令轉換器之使用的方塊圖,該轉換器係用以將來源指令集中之二元指令轉換至目標指令集中之二元指令,依據本發明之實施例。
【發明內容及實施方式】
於以下描述中,提出了數個特定細節。然而,應理解:本發明之實施例可被實行而無這些特定細節。說明書中對於「一個實施例」、「一實施例」、「一範例實施例」等等之參照係指示所述之實施例可包括特定的特徵、結構、或特性,但每一實施例可能不一定包括該特定的特徵、結構、或特性。此外,此等用詞不一定指稱相同的實施例。再者,當特定的特徵、結構、或特性配合實施例而描述時,係認為其落入熟悉此項技術人士之知識範圍內,以致能配合其他實施例(無論是否明確地描述)之此等特徵、結構、或特性。
以下所詳述者為用於遠端動作處置之系統、方法、及設備的實施例。ILP依據恆定格式以設定酬載於記憶體中並接著發送請求至相關的RLP,藉由透過中斷命令暫存器(ICR)或軟體中斷暫存器類型機制而傳送IPI向量(於此討論中稱為遠端動作請求中斷(RARI))至RLP;或者藉由專屬的發信機制。
當ILP需要RLP履行特定動作(例如,以清除TLB項目)時,則於某些實施例中,其係藉由傳送處理器間中斷(IPI)至各RLP以起始該動作。於某些系統中,RLP 於接收到遠端動作請求時履行數個步驟。例如,當RLP正運行使用者等級或環3應用程式時,則RLP:1)履行中斷描述符表向量化以跳至正確的中斷處置器軟體;2)從使用者等級變遷至OS等級;3)以軟體履行該請求的動作(亦即,無效化選定頁之快取變換);4)告知ILP其動作已完成;及5)從OS等級變遷至使用者等級。不幸地,此序列之總潛時對於RLP上所運作之使用者應用程式的性能具有負面的影響。
除了潛時影響之外,於某些情境中,RLP無法立即地服務IPI,因此ILP之請求的處置被延遲。於這些情境中,ILP等待該請求之確認及完成,而此對於ILP上所運作之應用程式的性能具有負面的影響。
如文中所討論者,RLP係使用遠端動作請求處置器(RARH)硬體(其係中斷處理器中之操作的正常執行流程)以處置RAR,但不會將該處置提呈給軟體。在檢測到該請求之後,RLP上之RARH便從記憶體讀取該酬載並履行該請求的動作而無軟體涉入。在完成該動作之後,RLP便告知ILP其成功/失敗。此通知可藉由以下方式來完成:寫入至記憶體中之位置、或將新的專屬信號傳送至其從所有RLP收集確認之ILP中的計數器。
支援遠端動作請求處置之範例電腦系統的實施例
圖1闡明一電腦系統之實施例。於此實施例中,複數邏輯處理器(處理器0 101及處理器N 111)被顯示。各 邏輯處理器係與至少一硬體執行(功能)單元關聯以執行指令為執行管線之一部分。邏輯處理器AAA01及111可經由共用記憶體121(諸如系統記憶體、共用快取,等等)或者經由使用一或更多匯流排/互連131之介面而相互通訊。共用記憶體121係儲存待履行之動作123的資料結構以及動作酬載資料結構125(該些動作之實施例被顯示於圖3及2)。
中斷控制器102及112優先化、解碼、及向量例外和中斷。範例中斷控制器包括(但不限定於)先進可編程中斷控制器(APIC)、通用中斷控制器(GIC)、多處理器中斷控制器(MPIC)。中斷控制器102及112可為輸入/輸出(I/O)或本地中斷控制器。
這些中斷控制器102及112提供處理器間中斷(IPI),其容許其他處理器中斷另一處理器或一組處理器。於某些實施例中,IPI係藉由處理器寫入至一與其中斷控制器相關的暫存器(諸如中斷命令暫存器或軟體中斷暫存器)而被產生。此暫存器係儲存中斷向量及目標處理器之識別(於某些實施例中,中斷控制器ID被使用)。接著經由中斷匯流排而傳送訊息至目標中斷控制器,其接著發送中斷至其處理器以供處置(例如,調用中斷處置器)。
每處理器101及111之TLB 109及119係快取虛擬至實體頁變換,如以上所詳述。於某些實施例中,這些TLB 109及119為分離的實體電路。於其他實施例中,單一實 體TLB電路被邏輯地分割於處理器之間。
每處理器之複數暫存器108及118(除了典型的通用暫存器、浮點暫存器、狀態暫存器等等之外)被用以支援RARH。可被使用之一暫存器為中斷命令暫存器或軟體中斷暫存器,如以上所詳述。根據實施方式,複數暫存器108及118亦包括:i)暫存器,用以儲存特定IPI向量,其係指示稱為遠端動作請求中斷(RARI)之硬體為基的動作處置;ii)暫存器,用以儲存酬載之記憶體位置,該酬載含有針對可能的同時請求之請求資訊;及/或iii)暫存器,用以儲存針對RLP之一列動作請求的記憶體位置。於某些實施例中,記憶體位置係保留動作請求之表。酬載之範例包括(但不限定於)對於以下之請求:i)無效化完整(遠端)TLB(取代TLB之單一項目);2)無效化TLB之單一(遠端)項目;3)無效化(遠端)TLB之N連續頁;及/或4)不履行動作。
暫存器108及118亦可包括針對RAR特徵(諸如:中斷向量、酬載及動作記憶體駐存表尺寸、最大酬載類型,等等)之一些特性的儲存。
對於不履行任何動作之請求吸引RLP之注意及對於ILP之確認。於某些處理器中,當RLP接收IPI訊息時,則所有中間資料結構(其係保留不提呈給外部記憶體之資料)被清除,但是如此做需要改變其環路(等等),如以上所詳述。如文中所詳述之不履行任何動作係清除這些資料結構,但不會如其他請求一般造成環路改變。
遠端動作處置器103及113為電路,其係識別RARI、履行RARI之請求動作、及將確認告知ILP。該動作之履行可藉由呼叫一或更多硬體處置器來完成。軟體並未涉及藉由遠端動作處置器103及113之RAR的處置。遠端動作處置器103及113亦可履行有關輪詢動作資料結構以及從酬載資料結構清除酬載之動作。
遠端動作介面105及115為電路,其係接收關於其不使用IPI發信之RAR的信號並讀取該信號之酬載、履行該請求的動作、及確認該請求。例如,於ILP上所執行的RAR指令係造成信號被其處置RAR之RLP的遠端動作介面所接收。該動作之履行可藉由呼叫一或更多硬體處置器來完成。軟體並未涉及藉由遠端動作介面105及115之RAR的處置。遠端動作介面105及115亦可履行有關從酬載資料結構清除酬載之動作。注意:處理器無須支援遠端動作處置器103及113和遠端動作介面105及115兩者。
對於ILP之RAR指令的執行造成其遠端動作計數器107及117被設定以其用以確認RAR之數個RLP。這些計數器107及117為計算確認之數目的電路。RAR之完成係透過這些計數器107及117而被通知。例如,於某些實施例中,當所有確認被接收時,則計數器107便偵測此情況並通知其該操作已完成。於某些實施例中,軟體可檢查遠端動作計數器之狀態,藉由執行遠端動作請求完成指令(RARC)以讀取該計數器值。
圖2闡明一酬載資料結構之實施例。於此範例中,資 料結構為表,然而亦可使用其他資料結構(諸如專屬暫存器)。於所示之表中,有一用以指示酬載是否有效201(非完成)之行及一用於每動作的酬載本身(或對於該酬載之指針)203之行。酬載可包括一請求及一與該請求相關的位址。於圖示中,第一列之酬載包括無效化頁請求及TLB中欲無效化之頁的位址。酬載資料結構通常係由ILP所初始地編程、由RLP所讀取、及由ILP所清除。於某些實施例中,資料結構中之各項目係相應於動作。
圖3闡明一動作資料結構之實施例。於此範例中,資料結構為表,然而亦可使用其他資料結構(諸如專屬暫存器)。於所示之表中,有一行給每動作301且各列係相應於一RLP。表中之項目303係指示有關於RLP之特定動作的狀態。範例狀態包括待決、成功、或失敗。當然,可使用含有類似資訊之任何資料結構變異。此動作資料結構通常係由ILP所初始地編程、由RLP所讀取、由RLP所清除、及接著由ILP所讀取。
支援遠端動作請求處置之範例電腦系統的實施例
圖4闡明由ILP所履行以起始RAR之方法的實施例。通常,此係藉由核心、遠端動作處置器、中斷控制器、及ILP之TLB的組合來履行。
於某些實施例中,於401,其頁表項目可被用於位址變換之指示係由ILP所清除。例如,頁表項目中之存在位元被清除。
於403,一或更多處理器被識別為用以接收RAR之RLP。
ILP係組態記憶體中之酬載,於405。例如,一用以無效化頁及該頁之位址的指令被儲存於記憶體121中之酬載資料結構123中。
IPI被傳送至識別的RLP,於407。於某些實施例中,ILP寫入至其RAR已被執行之中斷命令暫存器或軟體中斷暫存器,其係觸發對於RLP之中斷。此寫入包括用以處理RAR之RLP的識別(諸如APIC ID)。
於某些實施例中,相應的動作被局部地履行於ILP中,於409。例如,ILP無效化其本身TLB中之頁。
於411,ILP輪詢記憶體中之動作資料結構以判定所有RLP是否已完成並確認該動作。此可被重複在一定量的時間之後,而假如動作資料結構不會針對臨限量的時間(循環)而改變,則ILP便觸發軟體進行進一步處理。
圖5闡明由RLP所履行以處理RAR之方法的實施例。於501,RLP接收來自ILP之RAR中斷。RLP係經由其遠端動作介面(其已被詳述於上)以接收此中斷。於某些實施例中,ILP寫入至其RAR已被執行之中斷命令暫存器或軟體中斷暫存器,其係觸發對於RLP之中斷。此寫入包括用以處理RAR之RLP的識別(諸如APIC ID)。
於503,RLP(特別地,RLP之遠端動作處置器)係藉由從記憶體中所儲存之一列動作以判定待履行的動作。 例如,RLP係從動作資料結構123讀取動作。
於505,RLP(特別地,RLP之遠端動作處置器)係從與該動作相關的記憶體讀取酬載。例如,RLP係從酬載資料結構125讀取酬載。例如,RLP可針對有效酬載讀取TLB無效化請求及其相關位址。
於507,RLP(特別地,RLP之遠端動作處置器)係履行該判定的動作。於某些實施例中,遠端動作處置器包括用以履行該動作本身之電路。於其他實施例中,遠端動作處置器呼叫用以履行該動作之特定處置器。
於509,RLP(特別地,RLP之遠端動作處置器)係從記憶體中所儲存之動作資料結構清除該動作。例如,RLP係從動作資料結構123清除動作。
支援遠端動作請求處置之範例電腦系統的實施例
當作頁表管理之部分,作業系統(OS)需確保其需被修改之任何頁表項目不被快取於系統中之任何邏輯處理器(LP)中的任何變換後備緩衝(TLB)中。當運作於一邏輯處理器上之OS檢測到其需要對頁表進行修改時,則其便起始遠端TLB下射協定以從所有系統之邏輯處理器的TLB清除該些快取的變換。起始邏輯處理器(ILP)係傳送下射請求至接收邏輯處理器(RLP)。於高位階,ILP所請求者為針對藉由RLP之遠端動作處置(RAH)。某些架構不容許從TLB之多重連續頁的清除而不清除整個TLB。各頁無效化需要無效化頁(INVLPG)指令之額 外例的調用。此可導致性能衝擊,假如大量連續頁(但非整個TLB)需被無效化的話。
圖6闡明由ILP所履行以起始RAR之方法的實施例。通常,此係藉由核心、遠端動作介面、中斷控制器、及ILP之TLB的組合來履行。
於某些實施例中,於601,其頁表項目可被用於位址變換之指示係由ILP所清除。例如,頁表項目中之存在位元被清除。
於603,一或更多處理器被識別為用以接收RAR之RLP。
ILP係組態記憶體中之酬載,於605。例如,一用以無效化頁及該頁之位址的指令被儲存於記憶體121中之酬載資料結構123中。
RAR指令係由ILP所執行以造成RAR信號被傳送至已識別的RLP以及設定計數器值為一相應於已識別RLP之數目的數字,於607。例如,RAR信號係經由匯流排或互連131而被遠端動作介面105傳送至已識別RLP之各者,且計數器107被設定為其用以處置該請求之RLP的數目。
於某些實施例中,相應的動作被局部地履行於ILP中,於609。例如,ILP無效化其本身TLB中之頁。
於611,完成確認被接收自RLP且計數器被更新(遞減)以反應完成。例如,RLP已履行該請求的動作且已透過匯流排或互連131而傳送確認至遠端動作介面105及/ 或遠端動作計數器107。
遠端動作計數器107之值被讀取,於613。
該讀取值是否指示其所有RLP均已完成該請求之判定被進行,於615。例如,計數器為零?
當計數器指示其所有RLP已完成且該請求已由所有RLP所處置時,則該方法便完成。假如為否,則該計數器在接收到另一確認後被再次讀取。假如該計數器並未針對設定臨限量的時間(循環)而改變,則ILP便觸發軟體進行進一步處理。
圖7闡明由RLP所履行以處理RAR之方法的實施例。於701,RLP從ILP接收RAR。RLP係經由其遠端動作介面(其已被詳述於上)以接收此請求。於某些實施例中,ILP係執行一指令以致使信號被傳送至有關該RAR之RLP。ILP亦將儲存與RAR有關的酬載入酬載資料結構內。
於703,RLP(特別地,RLP之遠端動作介面)係從記憶體讀取酬載。例如,RLP係從酬載資料結構125讀取酬載。例如,RLP可針對有效酬載讀取TLB無效化請求及其相關位址。
於705,RLP(特別地,RLP之遠端動作處置器)係履行該判定的動作。於某些實施例中,遠端動作處置器包括用以履行該動作本身之電路。於其他實施例中,遠端動作處置器呼叫用以履行該動作之特定處置器。
於707,RLP(特別地,RLP之遠端動作處置器)係 藉由傳送確認至ILP以告知RAR。例如,RLP傳送確認至ILP,其接著遞減其計數器。
範例遠端動作請求處置
圖8闡明一使用記憶體中所儲存之酬載809及動作資料結構811的RAR流程之方塊圖的實施例。實施例中所顯示者為ILP 801,其係進行RAR至複數RLP 803及805之一。
ILP 801係填充並驗證酬載,於813。於此圖示中,記憶體中的酬載資料結構809中之項目的有效位元被設為1,而酬載被設為INVLPG,Addr(無效化該位址上之頁)。
ILP 801係設定記憶體之動作資料結構中的動作,以供RLP處理該請求,於815。於此範例中,動作A0設為針對RLP0待決(PND)。
RAR中斷被設定從ILP 801至RLP 0 803,於817。如上所述,此通常係藉由寫入至ILP 801中之特殊暫存器來完成,其係觸發IPI至該RLP。
RLP 0 803從動作資料結構811讀取其相關的動作,於825。於此範例中,第一列係與RLP 0 804相關。
RLP 0 803讀取酬載資料結構809中之酬載,其係相應於821之讀取動作。於此範例中,動作A0係相應於酬載資料結構809之第一項目。
RLP 0 803係履行與讀取酬載相關的動作,於823。 於此範例中,RLP 0 803係無效化指定位址上之頁。
在該動作被履行之後,RLP 0 803從動作資料結構811清除該動作,於825。
在進行RAR之後的某時點,ILP 801輪詢動作資料結構811以檢查其設定的動作是否已被履行,於827。假如為是,則針對該動作之酬載被清除,於829。假如為否,則ILP 801將呼叫軟體以處置該請求或者再輪詢動作資料結構811。
寫入遮蔽暫存器915-於所示之實施例中,有8個寫入遮蔽暫存器(k0至k7),大小各為64位元。於替代實施例中,寫入遮蔽暫存器915之大小為16位元。如先前所述,於本發明之一實施例中,向量遮蔽暫存器k0無法被使用為寫入遮蔽;當其通常將指示k0之編碼被用於寫入遮蔽時,其係選擇0xFFFF之固線寫入遮蔽,有效地除能該指令之寫入遮蔽。
通用暫存器925-於所示之實施例中,有十六個64位元通用暫存器,其係連同現存的x86定址模式來用以定址記憶體運算元。這些暫存器被參照以RAX、RBX、RCX、RDX、RBP、RSI、RDI、RSP、及R8至R15。
純量浮點堆疊暫存器檔(x87堆疊)945,MMX緊縮整數平坦暫存器檔950係別名於其上-於所示之實施例中,x87堆疊為用以使用x87指令集延伸而在32/64/80位元浮點資料上履行純量浮點操作之八元件堆疊;而MMX暫存器被用以履行操作在64位元緊縮整數資料上、及用 以保持運算元以供介於MMX與XMM暫存器間所履行的某些操作。
本發明之替代實施例可使用較寬或較窄的暫存器。此外,本發明之替代實施例可使用更多、更少、或不同的暫存器檔及暫存器。
處理器核心可被實施以不同方式、用於不同目的、以及於不同處理器中。例如,此類核心之實施方式可包括:1)用於通用計算之通用依序核心;2)用於通用計算之高性能通用失序核心;3)主要用於圖形及/或科學(通量)計算之特殊用途核心。不同處理器之實施方式可包括:1)CPU,其包括用於通用計算之一或更多通用依序核心及/或用於通用計算之一或更多通用失序核心;及2)核心處理器,其包括主要用於圖形及/或科學(通量)之一或更多特殊用途核心。此等不同處理器導致不同的電腦系統架構,其可包括:1)在來自該CPU之分離晶片上的共處理器;2)在與CPU相同的封裝中之分離晶粒上的共處理器;3)在與CPU相同的晶粒上的共處理器(於該情況下,此一處理器有時被稱為特殊用途邏輯,諸如集成圖形及/或科學(通量)邏輯、或稱為特殊用途核心);及4)在一可包括於相同晶粒上之所述CPU(有時稱為應用程式核心或應用程式處理器)、上述共處理器、及額外功能的晶片上之系統。範例核心架構被描述於下,接續著範例處理器及電腦架構之描述。
範例核心架構 依序或失序核心方塊圖
圖10A為闡明範例依序管線及範例暫存器重新命名、失序發送/執行管線兩者之方塊圖,依據本發明之實施例。圖10B為一方塊圖,其闡明將包括於依據本發明之實施例的處理器中之依序架構核心之範例實施例及範例暫存器重新命名、失序發送/執行架構核心兩者。圖10A-B中之實線方盒係闡明依序管線及依序核心,而虛線方盒之選擇性加入係闡明暫存器重新命名、失序發送/執行管線及核心。假設其依序形態為失序形態之子集,將描述失序形態。
於圖10A中,處理器管線1000包括提取級1002、長度解碼級1004、解碼級1006、配置級1008、重新命名級1010、排程(亦已知為分派或發送)級1012、暫存器讀取/記憶體讀取級1014、執行級1016、寫入回/記憶體寫入級1018、例外處置級1022、及確定級1024。
圖10B顯示處理器核心1090,其包括一耦合至執行引擎單元1050之前端單元1030,且兩者均耦合至記憶體單元1070。核心1090可為減少指令集計算(RISC)核心、複雜指令集計算(CISC)核心、極長指令字元(VLIW)核心、或者併合或替代核心類型。當作又另一種選擇,核心1090可為特殊用途核心,諸如(例如)網路或通訊核心、壓縮引擎、共處理器核心、通用計算圖形處理單元(GPGPU)核心、圖形核心,等等。
前端單元1030包括一分支預測單元1032,其係耦合至指令快取單元1034,其係耦合至指令變換後備緩衝(TLB)1036,其係耦合至指令提取單元1038,其係耦合至解碼單元1040。解碼單元1040(或解碼器)可解碼指令;並可將以下產生為輸出:一或更多微操作、微碼進入點、微指令、其他指令、或其他控制信號,其被解碼自(或者反應)、或被衍生自原始指令。解碼單元1040可使用各種不同的機制來實施。適當機制之範例包括(但不限定於)查找表、硬體實施方式、可編程邏輯陣列(PLA)、微碼唯讀記憶體(ROM),等等。於一實施例中,核心1090包括微碼ROM或者儲存用於某些巨指令之微碼的其他媒體(例如,於解碼單元1040中或者於前端單元1030內)。解碼單元1040被耦合至執行引擎單元1050中之重新命名/配置器單元1052。
執行引擎單元1050包括重新命名/配置器單元1052,其係耦合至撤回單元1054及一組一或更多排程器單元1056。排程器單元1056代表任何數目的不同排程器,包括保留站、中央指令窗,等等。排程器單元1056被耦合至實體暫存器檔單元1058。實體暫存器檔單元1058之各者代表一或更多實體暫存器檔,其不同者係儲存一或更多不同的資料類型,諸如純量整數、純量浮點、緊縮整數、緊縮浮點、向量整數、向量浮點、狀態(例如,其為下一待執行指令之位址的指令指標),等等。於一實施例中,實體暫存器檔單元1058包含向量暫存器單元、寫入遮蔽 暫存器單元、及純量暫存器單元。這些暫存器單元可提供架構向量暫存器、向量遮蔽暫存器、及通用暫存器。實體暫存器檔單元1058係由撤回單元1054所重疊以闡明其中暫存器重新命名及失序執行可被實施之各種方式(例如,使用記錄器緩衝器和撤回暫存器檔;使用未來檔、歷史緩衝器、和撤回暫存器檔;使用暫存器映圖和暫存器池,等等)。撤回單元1054及實體暫存器檔單元1058被耦合至執行叢集1060。執行叢集1060包括一組一或更多執行單元1062及一組一或更多記憶體存取單元1064。執行單元1062可履行各種操作(例如,偏移、相加、相減、相乘)以及於各種類型的資料上(例如,純量浮點、緊縮整數、緊縮浮點、向量整數、向量浮點)。雖然某些實施例可包括數個專屬於特定功能或功能集之執行單元,但其他實施例可包括僅一個執行單元或者全部履行所有功能之多數執行單元。排程器單元1056、實體暫存器檔單元1058、及執行叢集1060被顯示為可能複數的,因為某些實施例係針對某些類型的資料/操作產生分離的管線(例如,純量整數管線、純量浮點/緊縮整數/緊縮浮點/向量整數/向量浮點管線、及/或記憶體存取管線,其各具有本身的排程器單元、實體暫存器檔單元、及/或執行叢集-且於分離記憶體存取管線之情況下,某些實施例被實施於其中僅有此管線之執行叢集具有記憶體存取單元1064)。亦應理解:當使用分離管線時,這些管線之一或更多者可為失序發送/執行而其他者為依序。
該組記憶體存取單元1064被耦合至記憶體單元1070,其包括資料TLB單元1072,其耦合至資料快取單元1074,其耦合至第二階(L2)快取單元1076。於一範例實施例中,記憶體存取單元1064可包括載入單元、儲存位址單元、及儲存資料單元,其各者係耦合至記憶體單元1070中之資料TLB單元1072。指令快取單元1034被進一步耦合至記憶體單元1070中之第二階(L2)快取單元1076。L2快取單元1076被耦合至一或更多其他階的快取且最終至主記憶體。
舉例而言,範例暫存器重新命名、失序發送/執行核心架構可實施管線1000如下:1)指令提取1038履行提取和長度解碼級1002和1004;2)解碼單元1040履行解碼級1006;3)重新命名/配置器單元1052履行配置級1008和重新命名級1010;4)排程器單元1056履行排程級1012;5)實體暫存器檔單元1058和記憶體單元1070履行暫存器讀取/記憶體讀取級1014;執行叢集1060履行執行級1016;6)記憶體單元1070和實體暫存器檔單元1058履行寫入回/記憶體寫入級1018;7)各個單元可參與例外處置級1022;及8)撤回單元1054和實體暫存器檔單元1058履行確定級1024。
核心1090可支援一或更多指令集(例如,x86指令集,具有其已被加入以較新版本之某些延伸);MIPS Technologies of Sunnyvale,CA之MIPS指令集;ARM Holdings of Sunnyvale,CA之ARM指令集(具有諸如 NEON之選擇性額外延伸),包括文中所述之指令。於一實施例中,核心1090包括支援緊縮資料指令集延伸(例如,AVX1、AVX2)之邏輯,藉此容許由許多多媒體應用程式所使用的操作使用緊縮資料來履行。
應理解:核心可支援多線程(執行二或更多平行組的操作或線緒),並可以多種方式執行,包括時間切割多線程、同時多線程(其中單一實體核心提供邏輯核心給其實體核心正同時地多線程之每一線緒)、或者其組合(例如,時間切割提取和解碼以及之後的同時多線程,諸如Intel® Hyperthreading科技)。
雖然暫存器重新命名被描述於失序執行之背景,但應理解其暫存器重新命名可被使用於依序架構。雖然處理器之所述的實施例亦包括分離的指令和資料快取單元1034/1074以及共享L2快取單元1076,但替代實施例可具有針對指令和資料兩者之單一內部快取,諸如(例如)第一階(L1)內部快取、或多階內部快取。於某些實施例中,該系統可包括內部快取與外部快取之組合,該外部快取是位於核心及/或處理器之外部。替代地,所有快取可於核心及/或處理器之外部。
特定範例依序核心架構
圖11A-B闡明更特定的範例依序核心架構之方塊圖,該核心將為晶片中之數個邏輯區塊之一(包括相同類型及/或不同類型之其他核心)。邏輯區塊係透過高頻寬互連 網路(例如,環狀網路)來通訊,利用某些固定功能邏輯、記憶體I/O介面、及其他必要I/O邏輯,根據其應用而定。
圖11A為單處理器核心之方塊圖,連同與晶粒上互連網路1102之其連接、以及第二階(L2)快取1104之其本地子集,依據本發明之實施例。於一實施例中,指令解碼器1100支援具有緊縮資料指令集延伸之x86指令集。L1快取1106容許針對快取記憶體之低潛時存取入純量及向量單元。雖然於一實施例中(為了簡化設計),純量單元1108及向量單元1110使用分離的暫存器組(個別地,純量暫存器1112及向量暫存器1114),且於其間轉移的資料被寫入至記憶體並接著從第一階(L1)快取1106被讀取回;但本發明之替代實施例可使用不同的方式(例如,使用單一暫存器組或者包括一通訊路徑,其容許資料被轉移於兩暫存器檔之間而不被寫入及讀取回)。
L2快取1104之本地子集為其被劃分為分離本地子集(每一處理器核心有一個)之總體L2快取的部分。各處理器核心具有一直接存取路徑通至L2快取1104之其本身的本地子集。由處理器核心所讀取的資料被儲存於其L2快取子集1104中且可被快速地存取,平行於存取其本身本地L2快取子集之其他處理器核心。由處理器核心所寫入之資料被儲存於其本身的L2快取子集1104中且被清除自其他子集,假如需要的話。環狀網路確保共享資料之一致性。環狀網路為雙向的,以容許諸如處理器核心、L2 快取及其他邏輯區塊等代理於晶片內部彼此通訊。各環狀資料路徑於每方向為1012位元寬。
圖11B為圖11A中之處理器核心的部分之延伸視圖,依據本發明之實施例。圖11B包括L1快取1104之L1資料快取1106A部分、以及有關向量單元1110和向量暫存器1114之更多細節。明確地,向量單元1110為16寬的向量處理單元(VPU)(參見16寬的ALU 1128),其係執行整數、單精確度浮點、及雙精確度浮點指令之一或更多者。VPU支援以拌合單元1120拌合暫存器輸入、以數字轉換單元1122A-B之數字轉換、及於記憶體輸入上以複製單元1124之複製。寫入遮蔽暫存器1126容許斷定結果向量寫入。
具有集成記憶體控制器及圖形之處理器
圖12為一種處理器1200之方塊圖,該處理器1200可具有多於一個核心、可具有集成記憶體控制器、且可具有集成圖形,依據本發明之實施例。圖12中之實線方塊闡明處理器1200,其具有單核心1202A、系統代理1210、一組一或更多匯流排控制器單元1216;而虛線方塊之選擇性加入闡明一替代處理器1200,其具有多核心1202A-N、系統代理單元1210中之一組一或更多集成記憶體控制器單元1214、及特殊用途邏輯1208。
因此,處理器1200之不同實施方式可包括:1)CPU,具有其為集成圖形及/或科學(通量)邏輯(其可包 括一或更多核心)之特殊用途邏輯1208、及其為一或更多通用核心(例如,通用依序核心、通用失序核心、兩者之組合)之核心1202A-N;2)共處理器,具有其為主要用於圖形及/或科學(通量)之大量特殊用途核心的核心1202A-N;及3)共處理器,具有其為大量通用依序核心的核心1202A-N。因此,處理器1200可為通用處理器、共處理器或特殊用途處理器,諸如(例如)網路或通訊處理器、壓縮引擎、圖形處理器、GPGPU(通用圖形處理單元)、高通量多數集成核心(MIC)共處理器(包括30或更多核心)、嵌入式處理器,等等。該處理器可被實施於一或更多晶片上。處理器1200可為一或更多基底之部分及/或可被實施於其上,使用數個製程技術之任一者,諸如(例如)BiCMOS、CMOS、或NMOS。
記憶體階層包括該些核心內之一或更多階快取、一組或者一或更多共享快取單元1206、及耦合至該組集成記憶體控制器單元1214之額外記憶體(未顯示)。該組共享快取單元1206可包括一或更多中階快取,諸如第二階(L2)、第三階(L3)、第四階(L4)、或其他階快取、最後階快取(LLC)、及/或其組合。雖然於一實施例中環狀為基的互連單元1212將以下裝置互連:集成圖形邏輯1208、該組共享快取單元1206、及系統代理單元1210/集成記憶體控制器單元1214,但替代實施例可使用任何數目之眾所周知的技術以互連此等單元。於一實施例中,一致性被維持於一或更多快取單元1206與核心1202- A-N之間。
於某些實施例中,一或更多核心1202A-N能夠進行多線程。系統代理1210包括協調並操作核心1202A-N之那些組件。系統代理單元1210可包括(例如)電力控制單元(PCU)及顯示單元。PCU可為或者包括用以調節核心1202A-N及集成圖形邏輯1208之電力狀態所需的邏輯和組件。顯示單元係用以驅動一或更多外部連接的顯示。
核心1202A-N可針對架構指令集為同質的或異質的;亦即,二或更多核心1202A-N可執行相同的指令集,而其他者可執行該指令集或不同指令集之僅一子集。
範例電腦架構
圖13-16為範例電腦架構之方塊圖。用於膝上型電腦、桌上型電腦、手持式PC、個人數位助理、工程工作站、伺服器、網路裝置、網路集線器、開關、嵌入式處理器、數位信號處理器(DSP)、圖形裝置、視頻遊戲裝置、機上盒、微控制器、行動電話、可攜式媒體播放器、手持式裝置、及各種其他電子裝置之技術中已知的其他系統設計和組態亦為適當的。通常,能夠結合處理器及/或其他執行邏輯(如文中所揭露者)之多種系統或電子裝置為一般性適當的。
現在參考圖13,其顯示依據本發明之一實施例的系統1300之方塊圖。系統1300可包括一或更多處理器1310、1315,其被耦合至控制器集線器1320。於一實施 例中,控制器集線器1320包括圖形記憶體控制器集線器(GMCH)1390及輸入/輸出集線器(IOH)1350(其可於分離的晶片上);GMCH 1390包括記憶體及圖形控制器(耦合至記憶體1340及共處理器1345);IOH 1350為通至GMCH 1390之耦合輸入/輸出(I/O)裝置1360。另一方面,記憶體與圖形控制器之一或兩者被集成於處理器內(如文中所述者),記憶體1340及共處理器1345被直接地耦合至處理器1310、及具有IOH 1350之單一晶片中的控制器集線器1320。
額外處理器1315之選擇性本質於圖13中被標示以斷線。各處理器1310、1315可包括文中所述的處理核心之一或更多者並可為處理器1200之某版本。
記憶體1340可為(例如)動態隨機存取記憶體(DRAM)、相位改變記憶體(PCM)、或兩者之組合。針對至少一實施例,控制器集線器1320經由諸如前側匯流排(FSB)等多點分支匯流排、諸如QuickPath互連(QPI)等點對點介面、或類似連接1395而與處理器1310、1315通訊。
於一實施例中,共處理器1345為特殊用途處理器,諸如(例如)高通量MIC處理器、網路或通訊處理器、壓縮引擎、圖形處理器、GPGPU、嵌入式處理器,等等。於一實施例中,控制器集線器1320可包括集成圖形加速器。
於實體資源1310、1315間可有多樣差異,針對價值 矩陣之譜,包括架構、微架構、熱、功率耗損特性,等等。
於一實施例中,處理器1310執行其控制一般類型之資料處理操作的指令。指令內所嵌入者可為共處理器指令。處理器1310辨識這些共處理器指令為其應由裝附之共處理器1345所執行的類型。因此,處理器1310將共處理器匯流排或其他互連上之這些共處理器指令(或代表共處理器指令之控制信號)發送至共處理器1345。共處理器1345接受並執行該些接收的共處理器指令。
現在參考圖14,其顯示依據本發明之實施例的第一更特定範例系統1400之方塊圖。如圖14中所示,多處理器系統1400為點對點互連系統,並包括經由點對點互連1450而耦合之第一處理器1470及第二處理器1480。處理器1470及1480之每一者可為處理器1200之某版本。於本發明之一實施例中,處理器1470及1480個別為處理器1310及1315,而共處理器1438為共處理器1345。於另一實施例中,處理器1470及1480個別為處理器1310及共處理器1345。
處理器1470及1480被顯示為個別地包括集成記憶體控制器(IMC)單元1472及1482。處理器1470亦包括其匯流排控制器單元點對點(P-P)介面1476及1478之部分;類似地,第二處理器1480包括P-P介面1486及1488。處理器1470、1480可使用P-P介面電路1478、1488而經由點對點(P-P)介面1450來交換資訊。如圖 14中所示,IMC 1472及1482將處理器耦合至個別記憶體,亦即記憶體1432及記憶體1434,其可為本地地裝附至個別處理器之主記憶體的部分。
處理器1470、1480可各經由個別的P-P介面1452、1454而與晶片組1490交換資訊,使用點對點介面電路1476、1494、1486、1498。晶片組1490可經由高性能介面1439而選擇性地與共處理器1438交換資訊。於一實施例中,共處理器1438為特殊用途處理器,諸如(例如)高通量MIC處理器、網路或通訊處理器、壓縮引擎、圖形處理器、GPGPU、嵌入式處理器,等等。
共享快取(未顯示)可被包括於任一處理器中或者於兩處理器外部,而經由P-P互連與處理器連接,以致處理器之任一者或兩者的本地快取資訊可被儲存於共享快取中,假如處理器被置於低功率模式時。
晶片組1490可經由一介面1496而被耦合至第一匯流排1416。於一實施例中,第一匯流排1416可為周邊組件互連(PCI)匯流排、或者諸如PCI快速匯流排或其他第三代I/O互連匯流排等匯流排,雖然本發明之範圍未如此限制。
如圖14中所示,各種I/O裝置1414可被耦合至第一匯流排1416,連同匯流排橋1418,其係將第一匯流排1416耦合至第二匯流排1420。於一實施例中,一或更多額外處理器1415(諸如共處理器、高通量MIC處理器、GPGPU加速器(諸如,例如,圖形加速器或數位信號處 理(DSP)單元)、場可編程閘極陣列、或任何其他處理器)被耦合至第一匯流排1416。於一實施例中,第二匯流排1420可為低管腳數(LPC)匯流排。各個裝置可被耦合至第二匯流排1420,其包括(例如)鍵盤及/或滑鼠1422、通訊裝置1427、及儲存單元1428,諸如磁碟機或其他大量儲存裝置(其可包括指令/碼及資料1430),於一實施例中。此外,音頻I/O 1424可被耦合至第二匯流排1420。注意:其他架構是可能的。例如,取代圖14之點對點架構,系統可實施多點分支匯流排其他此類架構。
現在參考圖15,其顯示依據本發明之實施例的第二更特定範例系統1500之方塊圖。圖14及15中之類似元件係具有類似數字,而圖14之某些形態已被省略自圖15以免混淆圖15之其他形態。
圖15闡明其處理器1470、1480可包括集成記憶體及I/O控制邏輯(「CL」)1472和1482,個別地。因此,CL 1472、1482包括集成記憶體控制器單元並包括I/O控制邏輯。圖15闡明其不僅記憶體1432、1434被耦合至CL 1472、1482,同時其I/O裝置1514亦被耦合至控制邏輯1472、1482。舊有I/O裝置1515被耦合至晶片組1490。
現在參考圖16,其顯示依據本發明之一實施例的SoC 1600之方塊圖。圖12中之類似元件具有類似的參考數字。同時,虛線方塊為更多先進SoC上之選擇性特徵。於圖16中,互連單元1602被耦合至:應用程式處理器 1610,其包括一組一或更多核心202A-N及共享快取單元1206;系統代理單元1210;匯流排控制器單元1216;集成記憶體控制器單元1214;一組一或更多共處理器1620,其可包括集成圖形邏輯、影像處理器、音頻處理器、及視頻處理器;靜態隨機存取記憶體(SRAM)單元1630;直接記憶體存取(DMA)單元1632;及顯示單元1640,用以耦合至一或更多外部顯示。於一實施例中,共處理器1620包括特殊用途處理器,諸如(例如)網路或通訊處理器、壓縮引擎、GPGPU、高通量MIC處理器、嵌入式處理器,等等。
文中所揭露之機制的實施例可被實施以硬體、軟體、韌體、或此等實施方式之組合。本發明之實施例可被實施為電腦程式或程式碼,其被執行於可編程系統上,該可編程系統包含至少一處理器、儲存系統(包括揮發性和非揮發性記憶體及/或儲存元件)、至少一輸入裝置、及至少一輸出裝置。
程式碼(諸如圖14中所示之碼1430)可被應用於輸入指令以履行文中所述之功能並產生輸出資訊。輸出資訊可被應用於一或更多輸出裝置,以已知的方式。為了本申請案之目的,處理系統包括任何系統,其具有處理器,諸如(例如)數位信號處理器(DSP)、微控制器、特定應用積體電路(ASIC)、或微處理器。
程式碼可被實施以高階程序或目標導向的編程語言來與處理系統通訊。程式碼亦可被實施以組合或機器語言, 假如想要的話。事實上,文中所述之機制在範圍上不限於任何特定編程語言。於任何情況下,該語言可為編譯或解讀語言。
至少一實施例之一或更多形態可由其儲存在機器可讀取媒體上之代表性指令所實施,該機器可讀取媒體代表處理器內之各個邏輯,當由機器讀取時造成該機器製造邏輯以履行文中所述之技術。此等表示(已知為「IP核心」)可被儲存在有形的、機器可讀取媒體上,且被供應至各個消費者或製造設施以載入其實際上製造該邏輯或處理器之製造機器。
此類機器可讀取儲存媒體可包括(無限制)由機器或裝置所製造或形成之物件的非暫態、有形配置,包括:儲存媒體,諸如硬碟、包括軟碟、光碟、微型碟唯讀記憶體(CD-ROM)、微型碟可再寫入(CD-RW)、及磁光碟等任何其他類型的碟片;半導體裝置,諸如唯讀記憶體(ROM)、諸如動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)、可抹除可編程唯讀記憶體(EPROM)等隨機存取記憶體(RAM)、快閃記憶體、電可抹除可編程唯讀記憶體(EEPROM)、相位改變記憶體(PCM)、磁或光學卡、或者適於儲存電子指令之任何其他類型的媒體。
因此,本發明之實施例亦包括含有指令或含有諸如硬體描述語言(HDL)等設計資料之非暫態、有形的機器可讀取媒體,該硬體描述語言(HDL)係定義文中所述之結 構、電路、設備、處理器及/或系統特徵。此類實施例亦可被稱為程式產品。
仿真(包括二元翻譯、碼變形,等等)
於某些情況下,指令轉換器可被用以將來自來源指令集之指令轉換至目標指令集。例如,指令轉換器可將指令翻譯(例如,使用靜態二元翻譯、動態二元翻譯,包括動態編譯)、變形、仿真、或者轉換至一或更多其他指令以供由核心所處理。指令轉換器可被實施以軟體、硬體、韌體、或其組合。指令轉換器可位於處理器上、處理器外、或者部分於處理器上而部分於處理器外。
101‧‧‧處理器0
102‧‧‧中斷控制器
103‧‧‧遠端動作處置器
105‧‧‧遠端動作介面
107‧‧‧遠端動作計數器
108‧‧‧暫存器
109‧‧‧TLB
111‧‧‧處理器N
112‧‧‧中斷控制器
113‧‧‧遠端動作處置器
115‧‧‧遠端動作介面
117‧‧‧遠端動作計數器
118‧‧‧暫存器
119‧‧‧TLB
121‧‧‧共用記憶體
123‧‧‧動作
125‧‧‧動作酬載資料結構
131‧‧‧匯流排/互連

Claims (10)

  1. 一種硬體設備,包含:處理器核心中的第一暫存器,用以儲存相應於動作之酬載的記憶體位址,該動作將被履行相關於遠端動作請求(RAR)中斷;處理器核心中的第二暫存器,用以儲存可由複數處理器所存取之動作列的記憶體位址;第三暫存器,用以儲存RAR之特性;遠端動作處置器電路,用以識別已接收RAR中斷,存取該動作列以識別待履行的動作及存取與該已識別動作相關的該酬載,履行該已接收RAR中斷之該動作,及於該動作之完成時通知確認至起始處理器。
  2. 如申請專利範圍第1之硬體設備,進一步包含:虛擬至實體頁的變換後備緩衝(TLB)。
  3. 如請求項1之硬體設備,其中該動作將為以下之一:無效化整個變換後備緩衝(TLB);無效化該TLB之單一項目;無效化該TLB之數個連續頁;及不履行任何動作。
  4. 如請求項1之硬體設備,進一步包含: 記憶體,用以儲存該酬載及該動作列。
  5. 如請求項1之硬體設備,其中該遠端動作處置器電路係藉由從該動作列清除與該RAR中斷相關的該動作以通知確認。
  6. 如請求項1之硬體設備,其中該遠端動作處置器係呼叫專屬硬體處置器以履行該動作。
  7. 如請求項1之硬體設備,其中該記憶體進一步儲存該酬載的有效性的指示。
  8. 一種用於計算機架構的方法,包含:識別接收遠端動作請求(RAR)中斷;存取動作列以識別待履行的動作,該動作列可由複數處理器存取,以及該動作列的位址儲存在相關於該複數處理器的一處理器的第一暫存器中;存取儲存在相關於該識別的動作的該複數處理器的該處理器的第二暫存器中的酬載列;履行該已接收RAR中斷之該動作,及於該動作之完成時通知確認至起始處理器。
  9. 如請求項8之方法,其中該動作將為以下之一:無效化整個變換後備緩衝(TLB);無效化該TLB之單一項目;無效化該TLB之數個連續頁;及不履行任何動作。
  10. 如請求項8之方法,其中該通知確認 係藉由從該動作列清除與該RAR中斷相關的該動作。
TW105127099A 2015-09-26 2016-08-24 用於在遠端處理器上進行基元動作之硬體機制 TWI722009B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/866,933 US10216662B2 (en) 2015-09-26 2015-09-26 Hardware mechanism for performing atomic actions on remote processors
US14/866,933 2015-09-26

Publications (2)

Publication Number Publication Date
TW201725507A TW201725507A (zh) 2017-07-16
TWI722009B true TWI722009B (zh) 2021-03-21

Family

ID=58386931

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105127099A TWI722009B (zh) 2015-09-26 2016-08-24 用於在遠端處理器上進行基元動作之硬體機制

Country Status (5)

Country Link
US (1) US10216662B2 (zh)
CN (1) CN108027726B (zh)
DE (1) DE112015006952T5 (zh)
TW (1) TWI722009B (zh)
WO (1) WO2017052669A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10867092B2 (en) 2017-12-16 2020-12-15 Intel Corporation Avoiding asynchronous enclave exits based on requests to invalidate translation lookaside buffer entries
US20200401412A1 (en) * 2019-06-24 2020-12-24 Intel Corporation Hardware support for dual-memory atomic operations
US11263043B1 (en) * 2019-07-19 2022-03-01 Marvell Asia Pte, Ltd. Managing processor core synchronization using interrupts
US20210117353A1 (en) * 2020-12-23 2021-04-22 Kishore Kasichainula Methods and apparatus to transmit and/or receive data streams with a network interface controller

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4231086A (en) * 1978-10-31 1980-10-28 Honeywell Information Systems, Inc. Multiple CPU control system
US5765195A (en) * 1995-12-08 1998-06-09 Ncr Corporation Method for distributing interprocessor interrupt requests via cache memory coherency mechanisms
US6336179B1 (en) * 1998-08-21 2002-01-01 Advanced Micro Devices, Inc. Dynamic scheduling mechanism for an asynchronous/isochronous integrated circuit interconnect bus
US7178062B1 (en) * 2003-03-12 2007-02-13 Sun Microsystems, Inc. Methods and apparatus for executing code while avoiding interference
US8543772B2 (en) * 2003-09-30 2013-09-24 Intel Corporation Invalidating translation lookaside buffer entries in a virtual machine (VM) system
TWI486879B (zh) * 2011-12-22 2015-06-01 Intel Corp 具有嵌入中斷功能性的中斷回復指令

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6732212B2 (en) * 2001-02-14 2004-05-04 Fujitsu Limited Launch raw packet on remote interrupt
US8984199B2 (en) * 2003-07-31 2015-03-17 Intel Corporation Inter-processor interrupts
CN102077181B (zh) 2008-04-28 2014-07-02 惠普开发有限公司 用于在多核处理器中和在某些共享存储器多处理器系统中产生并输送处理器间中断的方法和系统
CN101593096B (zh) * 2009-05-22 2011-11-16 西安交通大学 一种共享寄存器相关性消除的实现方法
US8719547B2 (en) * 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
US9158628B2 (en) 2013-11-27 2015-10-13 American Megatrends, Inc. Bios failover update with service processor having direct serial peripheral interface (SPI) access

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4231086A (en) * 1978-10-31 1980-10-28 Honeywell Information Systems, Inc. Multiple CPU control system
US5765195A (en) * 1995-12-08 1998-06-09 Ncr Corporation Method for distributing interprocessor interrupt requests via cache memory coherency mechanisms
US6336179B1 (en) * 1998-08-21 2002-01-01 Advanced Micro Devices, Inc. Dynamic scheduling mechanism for an asynchronous/isochronous integrated circuit interconnect bus
US7178062B1 (en) * 2003-03-12 2007-02-13 Sun Microsystems, Inc. Methods and apparatus for executing code while avoiding interference
US8543772B2 (en) * 2003-09-30 2013-09-24 Intel Corporation Invalidating translation lookaside buffer entries in a virtual machine (VM) system
TWI486879B (zh) * 2011-12-22 2015-06-01 Intel Corp 具有嵌入中斷功能性的中斷回復指令

Also Published As

Publication number Publication date
US20170091128A1 (en) 2017-03-30
WO2017052669A1 (en) 2017-03-30
CN108027726A (zh) 2018-05-11
CN108027726B (zh) 2022-07-15
US10216662B2 (en) 2019-02-26
DE112015006952T5 (de) 2018-06-07
TW201725507A (zh) 2017-07-16

Similar Documents

Publication Publication Date Title
TWI747933B (zh) 硬體加速器及用於卸載操作之方法
TWI742132B (zh) 用以將多個資料元件載入到非緊縮資料暫存器的目的地儲存位置的處理器、方法、系統及指令
JP2018511099A (ja) ベクトルキャッシュラインライトバックのためのプロセッサ、方法、システム、および命令
TWI724071B (zh) 用於範圍保護的方法及設備
TWI514144B (zh) 積聚分頁錯失之信號傳遞與處置技術
TWI748970B (zh) 用於遠端監視的設備
TWI722009B (zh) 用於在遠端處理器上進行基元動作之硬體機制
US10387072B2 (en) Systems and method for dynamic address based mirroring
TW201800948A (zh) 提取資料至具保證完成指示快取階之處理器、方法、系統及指令
TW202143044A (zh) 用於在異質處理資源上調適性地排程工作的設備及方法
US10248574B2 (en) Input/output translation lookaside buffer prefetching
US11915000B2 (en) Apparatuses, methods, and systems to precisely monitor memory store accesses
US10503662B2 (en) Systems, apparatuses, and methods for implementing temporary escalated privilege
TWI752034B (zh) 用以校驗具有指示校驗位元值之位元的位元校驗處理器、方法、系統與指令
CN111767081A (zh) 用于加速存储处理的装置、方法和系统
CN114676090A (zh) 用于低时延页解压缩和压缩加速的电路和方法
TW201734766A (zh) 使用處理器指令前綴的二進制轉譯支援
TWI731906B (zh) 用於分配式一致性記憶體的系統、方法及設備
US9418024B2 (en) Apparatus and method for efficient handling of critical chunks
WO2019067115A1 (en) APPARATUS AND METHOD FOR MONITORING MULTI-LEVEL CALL MEMORY REQUEST
EP3910482B1 (en) Apparatus and method for processing efficient multicast operation
EP4152152A1 (en) Interrupt handling by migrating interrupts between processing cores
US10223121B2 (en) Method and apparatus for supporting quasi-posted loads
CN114327634A (zh) 用于经由单个作业描述符的低时延解压缩加速的装置和方法