• / 33
  • 下載費用:30 金幣  

用于改善連續的事務性存儲器區的吞吐量的系統、方法和裝置.pdf

摘要
申請專利號:

CN201380057489.X

申請日:

2013.06.14

公開號:

CN105164650A

公開日:

2015.12.16

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):G06F 12/02申請日:20130614|||公開
IPC分類號: G06F12/02 主分類號: G06F12/02
申請人: 英特爾公司
發明人: O·M·沙克; R·拉吉瓦爾; P·卡普瑞奧利; M·M·艾爾-奧圖姆
地址: 美國加利福尼亞州
優先權: 13/691,218 2012.11.30 US
專利代理機構: 上海專利商標事務所有限公司31100 代理人: 毛力
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201380057489.X

授權公告號:

||||||

法律狀態公告日:

2019.04.09|||2016.01.13|||2015.12.16

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

描述了用于使用TM區指示符(或顏色)來改善TM吞吐量的系統、裝置和方法。通過使用TM區指示符,較年輕的TM區可以在等待較老的區提交的時候使這些較年輕的TM區的指令被引退。

權利要求書

權利要求書
1.  一種裝置,包括:
邏輯,用于將事務性存儲器(TM)區指示符分配給事務的每一條指令;
執行邏輯,用于執行所述事務的每一條指令;
寫入時復制(COW)緩沖器,用于保持從經檢查點操作的架構寄存器到物理寄存器的映射,其中,所述COW通過使用指針標記TM區之間的分隔來保持用于多個TM區的多個寄存器檢查點,第一指針用于在所述COW中標識最后被提交的指令的位置,第二指針用于標識最年輕的TM區和當前正在引退的位置之間的邊界,并且引退指針用于標識當前正在引退的指令;以及
數據高速緩存,用于存儲與被執行的指令相關聯的數據,其中,所述數據高速緩存的每一個條目具有:針對每個TM區指示符的讀取位,所述讀取位用于標記推測性讀取的存儲器狀態,其中,當在所述事務期間從高速緩存行中推測性地讀取數據時,設置針對TM區的讀取位;以及寫入位,所述寫入位用于在所述高速緩存行具有被推測性地寫入的數據時進行指示。

2.  如權利要求1所述的裝置,其特征在于,用于將事務性存儲器(TM)區指示符分配給事務的每一條指令的所述邏輯是分配邏輯。

3.  如權利要求1所述的裝置,其特征在于,所述第一指針、所述第二指針和所述引退指針被存儲在專用寄存器中。

4.  如權利要求1所述的裝置,其特征在于,當所述事務提交時,與所述事務相關聯的讀取位被清除。

5.  如權利要求1所述的裝置,其特征在于,當所述事務中止時,與所述事務相關聯的讀取位被清除,并且針對比所述事務更年輕的任何事務的讀取位也被清除。

6.  如權利要求1所述的裝置,其特征在于,當所述事務提交時,與所述事務相關聯的寫入位被清除。

7.  如權利要求1所述的裝置,其特征在于,與數據高速緩存行相關聯的讀取位和寫入位被存儲在所述數據高速緩存中。

8.  一種方法,包括:
將事務性存儲器(TM)區指示符分配給事務的每一條指令;
將與所述事務相關聯的、先前被使用的物理寄存器存儲到寫入時復制(COW)緩沖器中,其中,所述COW通過使用指針標記TM區之間的分隔來保持用于多個TM區的多個寄存器檢查點,第一指針用于在所述COW中標識最后被提交的指令的位置,第二指針用于標識最年輕的TM區和當前正在引退的位置之間的邊界,并且引退指針用于標識當前正在引退的指令;
執行所述事務的多條指令;
從重排序緩沖器中引退每個TM區的一條或多條最老的加載指令,直到達到最老的TM區的第一條指令為止,所述最老的TM區的所述第一條指令在所述最老的TM區已提交時才位于來自所述最老的TM區的首個分組中;以及
設置針對已被引退到對應的數據高速緩存條目中的每一個加載的讀取位。

9.  如權利要求8所述的方法,其特征在于,分配操作發生在流水線的分配級期間。

10.  如權利要求8所述的方法,其特征在于,從重排序緩沖器中引退所述加載指令。

11.  如權利要求8所述的方法,其特征在于,進一步包括:
確定所述事務將要提交;
提交所述事務;
從所述COW緩沖器中釋放與所述事務相關聯的、先前被使用的物理寄存器;以及
從所述數據高速緩存中清除與所述事務相關聯的讀取位。

12.  如權利要求8所述的方法,其特征在于,進一步包括:
確定所述事務將不提交;
使用來自所述COW緩沖器的、與所述事務相關聯的所述物理寄存器,回滾到前一個狀態;
從所述COW緩沖器中釋放與所述事務相關聯的、先前被使用的物理寄存器;以及
從所述數據高速緩存中清除與所述事務相關聯的讀取位以及高速緩存行中的、比所述事務更年輕的任何讀取位。

13.  如權利要求8所述的方法,其特征在于,由指令指示所述事務的開始。

14.  如權利要求8所述的方法,其特征在于,由指令指示所述事務的結束。

15.  一種方法,包括:
將事務性存儲器(TM)區指示符分配到事務的每一條指令中;
執行所述事務的多條指令;
從存儲緩沖器中引退所述事務的一條或多條存儲指令,直到最老的TM區的最后一個存儲被引退為止,并且停止引退任何其他存儲,直到所述最老的TM區提交為止;以及
設置針對已被引退到對應的數據高速緩存條目中的每一個存儲的寫入位。

16.  如權利要求15所述的方法,其特征在于,分配操作發生在流水線的分配級期間。

17.  如權利要求15所述的方法,其特征在于,進一步包括:
確定所述事務將要提交;
提交所述事務;
從所述數據高速緩存中清除與所述事務相關聯的寫入位。

18.  如權利要求15所述的方法,其特征在于,進一步包括:
確定所述事務將不提交;
通過丟棄被推測性地寫入所述數據高速緩存中的存儲以回滾到前一個狀態。

19.  如權利要求15所述的方法,其特征在于,由開始和結束指令指示所述事務。

說明書

說明書用于改善連續的事務性存儲器區的吞吐量的系統、方法和裝置
背景技術
事務性存儲器的自然實現方案是要求在引退作為較年輕事務的部分的指令之前,較老的事務就提交。然而,在無序處理器中,通常情況是:較年輕事務中顯著數量的操作在等待較老的事務提交的時候就已經完成了執行。例如,較老的事務中的單個存儲可能需要數百個周期以等待存儲器進行響應。在這期間,無序機器可能已經執行了較年輕事務中的全部指令。當該較老的事務最終提交時,現在有積壓的指令要從該較年輕的事務中引退。
附圖說明
在所附附圖中以示例方式而非限制方式說明本發明,在附圖中,類似的參考標號指示類似的元件,其中:
圖1示出根據本發明的實施例的處理器核100的多個部分的框圖。
圖2示出寫入時復制(COW)緩沖器的實施例。
圖3示出允許標記存儲器狀態的數據高速緩存的實施例。
圖4示出示例性ROB。
圖5示出將TM區指示符用于加載指令的實施例。
圖6示出將TM區指示符用于存儲指令的實施例。
圖7示出將TM區指示符用于算術指令的實施例。
圖8是根據本發明的一個實施例的寄存器架構800的框圖。
圖9A是示出根據本發明的多個實施例的示例性有序流水線和示例性的寄存器重命名的無序發布/執行流水線的框圖。
圖9B是示出根據本發明的多個實施例的要包括在處理器中的有序架構核的示例性實施例和示例性的寄存器重命名的無序發布/執行架構核的框圖。
圖10A-B示出更具體的示例性有序核架構的框圖,該核將是芯片中的若干邏輯塊之一(包括相同類型和/或不同類型的其他核)。
圖11是根據本發明的多個實施例可具有多于一個的核、可具有集成存儲器控制器、并且可具有集成圖形器件的處理器1100的框圖。
圖12-15是示例性計算機架構的框圖。
圖16是根據本發明的各實施例的對照使用軟件指令轉換器將源指令集中的二進制指令轉換成目標指令集中的二進制指令的框圖。
具體實施方式
在以下描述中,陳述了多個具體細節。然而,應當理解,可不通過這些具體細節來實施本發明的實施例。在其他實例中,未詳細示出公知的電路、結構以及技術,以免使對本描述的理解模糊。
說明書中提到“一個實施例”、“實施例”、“示例實施例”等指示所描述的實施例可包括特定特征、結構或特性,但是,每一個實施例可以不一定包括該特定特征、結構,或特征。此外,此類短語不一定是指同一實施例。此外,當結合實施例描述特定的特征、結構或特性時,認為結合無論是否被明確描述的其他實施例而影響此類特征、結構或特性是在本領域技術人員的知識范圍之內的。
示例性處理器核
圖1示出根據本發明的實施例的處理器核100的多個部分的框圖。在一個實施例中,圖1中所示的多個箭頭示出經過核100的指令流。可在諸如參考圖1所討論的單個集成電路芯片(或管芯)上實現一個或多個處理器核(例如,處理器核100)。此外,該芯片可包括一個或多個共享的和/或私有的高速緩存(例如,高速緩存)、互連、存儲器控制器或其他組件。在實施例中,可將圖1中所示的處理器核100用于執行包括對應于虛擬化事務模式、非虛擬化(或受限的)事務模式和非事務模式的那些線程的一種或多種類型的線程。
如圖1中所示,處理器核100可包括取出單元102,其用于從指令高 速緩存101中取出指令,以便由核100執行。可從L1指令高速緩存101或諸如存儲器164和/或存儲設備之類的任何存儲設備中取出這些指令。核100也可包括用于對被取出的指令進行解碼的解碼單元104。例如,解碼單元104可將被取出的指令解碼為多個uop(微操作)。此外,核100可包括調度單元106。該調度單元106可執行與存儲被解碼的指令(例如,從解碼單元104接收到的指令)相關聯的各種操作,直到這些指令準備好分派為止(例如,直到被解碼指令的所有的源值變得可用)。在一個實施例中,該調度單元106可將被解碼的指令調度和/或發布(或分派)到執行單元108,以便執行。該執行單元108可在(例如,由解碼單元104)解碼并(例如,由調度單元106)分派指令之后,執行這些被分派的指令。在實施例中,該執行單元108可包括多于一個的執行單元,例如,存儲器執行單元、整數執行單元、浮點執行單元或其他執行單元。此外,該執行單元108可無序地執行指令。因此,在一個實施例中,該處理器核100可以是無序處理器核。核100也可包括引退單元110。該引退單元110可以在指令被提交之后引退被執行的指令。在實施例中,引退這些被執行的指令會導致:通過對這些指令的執行,提交處理器狀態;解除分配由這些指令使用的物理寄存器,等等。
如圖1中所示,核100可附加地包括追蹤高速緩存或微代碼只讀存儲器(uROM)111,其用于存儲微代碼和/或追蹤已被取出(例如,由取出單元102取出)的指令。可將存儲在該uROM111中的微代碼用于配置核100的各種硬件組件。在實施例中,可通過與該處理器核100通信的另一組件(例如,所討論的計算機可讀介質或其他存儲設備)來加載被存儲在該uROM111中的微代碼。核100也可包括重排序緩沖器(ROB)112,其用于存儲關于用于由處理器核100的各種組件訪問的進行中指令(或uop)的信息。核100可進一步包括RAT(寄存器別名表)114,其用于保持邏輯(或架構)寄存器(例如,由軟件指令的操作數所標識的那些寄存器)到對應的物理寄存器的映射。在一個實施例中,該RAT114中的每一個字段可包括被分配到每一個物理寄存器的ROB標識符。此外,加載緩沖器116和存儲緩沖器118(可在本文中將它們統稱為存儲器順序緩沖器(MOB))可 分別存儲還未被加載或未被寫回到主存儲器(例如,在該處理器核100外部的、諸如存儲器164之類的存儲器)中的待處理(pending)的存儲器操作。MOB邏輯119可執行與本文所討論的緩沖器116和118有關的各種操作。此外,處理器核100可包括總線單元120,其用于允許經由一個或多個總線的、在處理器核100的多個組件和其他組件之間的通信。一個或多個填充緩沖器122可在將接收到的數據存儲到高速緩存162中之前,臨時地存儲(例如,在總線上)從存儲器164接收到的數據。
在一個實施例中,可將一個或多個事務狀態寄存器160包括在核100中。每一個事務狀態寄存器160可對應于正在核100上執行的事務。第一事務可在第二事務的事務狀態寄存器160中存儲值,以指示該第二事務將中止(例如,由于向該第一事務分配了比該第二事務更高的優先級以例如避免沖突)。在實施例中,每一個事務可監測其各自的狀態寄存器160以確定其是否應當中止。例如,可將狀態寄存器160用于即使在可能將事務掛起的情形下(例如,臨時將該事務切換到核(100)之外)也中止該事務。這可允許其他事務不必等待明確的中止而繼續進行。同樣,可在存儲器中(例如,高速緩存162和/或存儲器164中)而不是硬件寄存器中實現該狀態寄存器160。
下列討論伴隨用于使用TM區標識符(或顏色)來改善TM吞吐量的技術的詳細實施例。最初的討論將在高層級上討論對TM區標識符和通常用于改善吞吐量的各種組件的使用。隨后,詳述處理事務的加載和存儲的更具體的示例。
區指示
來自相同線程的多個事務性存儲器例程可在給定的時刻在處理器上運行,并且可被逐一排序。貫穿本說明書的通篇,將這些例程稱為“區”(“region”)。在實施例中,通過開始和結束指令(例如,XBEGIN和XEND)來描繪事務。如本文中所詳述的那樣,可將TM區指示符用于將來自一個TM區的指令與來自另一TM區的那些指令區分開來。可在流水線中的許多不同點處動態地或在運行時(runtime)之前靜態地將該指示符分 配到指令(宏指令或微操作)中。流水線的分配級是無序執行之前的一個點(在此處,指令仍被視為是有序的),因此,該分配級可提供用該分配級的TM區指示符來標記指令的機會時間。在本級期間,作出關于如下的決定:要使用什么存儲位置(例如,MOB的加載或存儲緩沖器中的位置);對由指令使用的物理寄存器的分配(這可包括寄存器重命名);以及要使用哪個功能單元(如果有必要)。然而,也可利用諸如取出級、解碼級等的其他級。無論將哪個級用于TM區指示符的標記操作,都將TM區指示符信息置于重排序緩沖器(ROB)112中。
本文詳述了指示將“n”用作連續的事務性存儲器區(允許指令從這些區中引退)的數量的TM區的示例。例如,當n=3時,向來自第一TM區的指令分配顏色0;向下一區的指令分配顏色1;向下一區的指令分配顏色2;并且向下一區的指令分配顏色0,以此類推。由此,該TM區指示分配級(例如,分配)不阻止指令或TM,而僅僅以輪循(round-robin)方式分配TM區顏色。由于時序的原因,實現方案可選擇復制流水線中別處的顏色信息。例如,如將在稍后討論的那樣,可以用它們的顏色來標記加載緩沖器條目以便于在數據高速緩存(D-高速緩存)中設置正確的(相關聯的)讀取位(R-位),等等。
用于回滾的檢查點操作
TM需要用于對寄存器進行檢查點操作(checkpointing)的方法,使得可在中止事務的情況下恢復寄存器狀態。在處理器(在其中,將架構寄存器重命名為物理寄存器)中,這可以通過在該處理器的物理寄存器中保留該架構寄存器的事務前(pre-transactional)值并且向TM區中的、覆寫該處理器的指令分配新的物理寄存器來實現。通常,事務不能夠釋放物理寄存器以由包括其他事務中的那些指令的其他指令使用。將保持從經檢查點操作的架構寄存器到物理寄存器的映射的結構稱為寫入時復制(COW)緩沖器。在一些實施例中,該COW是引退單元110的部分。
為了支持保持多個寄存器檢查點的能力,可外加標記TM區之間的分隔的中間指針來使用該COW結構。在圖2中示出示例性COW。如圖所示, COW存儲用于已經(按時間順序)引退但還未被提交的指令的寄存器。
使用先前n=3的示例,在所示出的COW中,存在三個TM區。在圖中示出多個指針,并且這些指針描繪TM區。第一指針E0標識COW中最后被提交的指令的位置。注意,存在一些已經被提交但還未被解除分配以供處理器使用的寄存器。可在任何時候收回這些寄存器。
第二指針E1標識最老的TM區和下一個較老的TM區之間的邊界。第一和第二指針之間的是針對最老的TM區的、已經引退但還未被提交的指令。
第三指針E2標識最年輕的區和當前正在引退的位置之間的邊界。第三和第二指針之間的是針對中間TM區的、已經引退但還未被提交的指令。已經引退但還未到達指針E2的指令來自最年輕的TM區。可將上述多個指針中的每一個存儲在COW自身中,或存儲在一個或多個專用寄存器中。
當前正在引退的指針具有其自身的指針——引退指針。當最老的區提交(或者被視為不可提交)時,將E0更新為指向E1位置,將E1更新為指向E2位置,并且將E2指針更新為指向引退指針。隨后,引退指針可進入下一個TM區,等等。
數據高速緩存
TM需要用于標記已被推測性地讀取的寄存器狀態的方法,使得可檢測由其他執行線程導致的狀態的改變。由其他線程導致的這些改變會違反事務的原子性,因此,如果這些改變發生,則有必要中止該事務。
圖3示出允許標記存儲器狀態的數據高速緩存(例如,數據高速緩存162)的實施例。在該實施例中,通過對每一高速緩存行添加被稱為讀取位(R-位)的單個位來實現該標記操作。可將該R-位存儲在高速緩存自身中,或將其存儲為單獨的數據結構。當推測性地從該高速緩存行中讀取數據時,為該高速緩存行設置R-位。當(通過提交或通過中止)完成該事務時,清除R-位。
為了支持保持多個讀取集合(每一個讀取集合是高速緩存行(在該高速緩存行中進行讀取)的集合)的能力,為允許從其引退的每一個連續的 區提供R-位。完成此使得來自不同的TM區的加載兩者都可設置其對應的讀取位而不必停止到更老的TM區進行提交為止。
例如,在n=3的示例中,存在3個R-位,一個位與一種顏色關聯。當加載引退時,在數據高速緩存中標記與該加載顏色相關聯的R-位。當給定顏色的事務提交時,清除針對那種顏色的R位。當給定顏色的事務中止時,清除針對該事務顏色的R-位以及針對任何更年輕事務的顏色的R-位。這是因為被中止的事務暗示了必須也中止所有更年輕的事務。
TM也需要用于對存儲器狀態進行檢查點操作的方法,使得可在中止事務的情況下恢復事務前存儲器值。實現此的方法涉及將推測性數據寫入第一級(L1)數據高速緩存(例如,數據高速緩存162)中,并且防止其他執行線程看到該推測性數據。在事務提交之后,使該推測性數據變得在全局上可見。另一方面,如果該事務中止,則丟棄該推測性數據,因為在架構上被提交的事務前存儲器值位于高速緩存層次結構的較低層級中。為了區分包含推測性數據的高速緩存行,向每一個數據高速緩存行添加一個位(寫入位(W-位))以指示該行包含被推測性寫入的數據。僅當引退了存儲指令(這些被認為是高級存儲)之后,才將推測性數據寫入到高速緩存中。在存儲被寫入數據高速緩沖中之前,將該存儲的數據保持在存儲緩沖器中(例如,在MOB中)。由于數據按程序順序被保持在該存儲緩沖器中,因此不必向該數據高速緩存添加附加的W-位。相反,可使用高級存儲處理(從存儲緩沖器中讀取針對最老的被引退的存儲的數據,將該數據寫入數據高速緩存中并設置W-位,并且從該存儲緩沖器中清除該條目),使得其僅針對最老的TM區繼續進行。當處理最老的TM區的最后一個存儲時,停止高級存儲處理,直到最老的TM區提交為止。當該區提交時,這些推測性的存儲不再是推測性的,并因此變得在全局上可見。清除這些W位,并且來自下一個TM區(現在其是最老的TM區)的高級存儲可開始處理。
從ROB引退
現在,引退可以是寬松的,使得在必須等到最老的TM區被提交之前 就可引退來自“n”個TM區的指令。如圖4中所看到的,在ROB中可同時存在多于n個TM區。如上文所詳述的那樣,已將來自這些區中的指令分配到n種顏色中的一種之中。引退操作可引退該示例中最老的15條指令(5條指令來自三個區中的每一個區),而不必逐區地等待。在引退最老的TM區的第一條指令(該指令直到最老的TM區已提交時才位于來自該TM區的首個分組中)之前,引退操作停止。在該示例中,已經向第16條指令分配了與正等待提交并且將被阻止引退的TM區相同的顏色。
用于事務的加載指令處理的示例性方法
圖5示出將TM區指示符用于加載指令的實施例。在501處,將事務存儲器區指示符分配給該事務的加載指令。如前所述,這可以在通過分配或分配/重命名邏輯進行的流水線的分配級期間發生。此外,如前所述,事務通常開始于預先確定的指令(例如,XBEGIN),并且結束于預先確定的指令(例如,XEND)。此描述是從單個加載指令的角度而言的,然而,應當理解,事務的每條指令將具有被分配到其的區指示符。
在503處,將與已被寫入的指令相關聯的前一個物理寄存器復制到COW中。例如,對于指令LOADRAX,(存儲器位置)(其中,RAX先前已被映射至物理寄存器17),將物理寄存器17存儲在COW中,并且將(上文所述的)分配指針置于指針存儲位置中。注意,將RAX(物理寄存器17)的前一個映射保存在COW中,因為該映射包含在該TM區之前已被寫入的RAX的架構值。因此,如果TM區要中止,則可適當地恢復RAX的值。如果同一個TM區中的多條指令全部寫入到RAX中,則僅這些指令中的第一條需要將前一個映射保存在COW中。
在505處,執行該指令。當然,由于這是無序機器,因此其他事務可遵循該相同的動作過程。
在507處,(例如,從ROB)引退該加載指令。如上所述,引退操作不必等到最老的TM區被提交就可發生。
在509處,為已被引退到對應的數據高速緩存條目中的加載設置讀取位。該讀取位對應于在501處被分配的顏色或區指示符。
在稍后某時刻,在511處,作出是否提交該事務的決定。通常,當接收并處理XEND指令,并且沒有什么已導致該事務的中止時,完成該決定。如果允許該事務提交,則在515處,清除與該事務相關聯的R-位,并且允許從COW中釋放與該事務相關聯的物理寄存器,以便由處理器使用,并因此相應地移動該COW的指針。如果將中止該事務,則在513處,通過使用COW中被存儲的寄存器,將該狀態回滾到該事務之前的狀態。可例如由具有已被推測性地加載的經修改數據的另一線程導致中止。這些寄存器也是可由處理器自由地使用的。也清除這些讀取位,以便為可能的將來事務做準備。
用于事務的存儲指令處理的示例性方法
圖6示出將TM區指示符用于存儲指令的實施例。在601處,將事務存儲器區指示符分配給該事務的存儲指令。如前所述,這可以在通過分配或分配/重命名邏輯進行的流水線的分配級期間發生。此外,如前所述,事務通常開始于預先確定的指令(例如,XBEGIN),并且結束于預先確定的指令(例如,XEND)。此描述是從單個存儲指令的角度而言的,然而,應當理解,事務的每條指令將具有被分配到其的區指示符。
在605處,執行事務的存儲指令。當然,由于這是無序機器,因此其他事務可遵循該相同的動作過程。在此階段,如果在處理器中使用此類機制,則也將這些指令置入MOB的存儲緩沖器中。
在607處,引退針對最舊的TM區的(例如,來自ROB的)存儲指令。如上所述,可通過從存儲緩沖器中讀取針對最舊的被引退的存儲的數據,將數據寫入到數據高速緩存中并設置W-位,并且從存儲緩沖器中去除條目以將高級存儲處理用于對最舊的TM區的引退操作。
在609處,寫入針對已被引退到對應的數據高速緩存條目中的該存儲的寫入位。
在稍后某時刻,在611處,作出是否提交該事務的決定。通常,當接收并處理XEND指令,并且沒有什么已導致該事務的中止時,完成該決定。如果允許該事務提交,則清除與該事務相關聯的W-位,并且現在由此提交 與該事務相關聯的、已經被推測性地寫入數據高速緩存中的存儲,并因此使這些存儲變得在全局上可見。一旦最老的TM區提交了,則第二老的區可根據高級存儲處理進行引退。如果將中止該事務,則將該狀態回滾到該事務開始之前的狀態。這可通過使數據高速緩存中的、已經(按已針對該高速緩存行而被設置的寫入位的指示)被推測性地寫入的所有條目都無效來完成。也清除這些寫入位,以便為可能的將來事務做準備。如果中止該事務,則也中止所有正在進行的更年輕的事務。
雖然已將上述方法描述為單獨的加載處理和存儲處理,但是事務實際上將總是具有加載和存儲。由此,可將流程圖的多個方面混合在一起。
用于事務的算術指令處理的示例性方法
圖7示出將TM區指示符用于算術指令的實施例。在701處,將事務存儲器區指示符分配給該事務的算術指令。如前所述,這可以在通過分配或分配/重命名邏輯進行的流水線的分配級期間發生。此外,如前所述,事務通常開始于預先確定的指令(例如,XBEGIN),并且結束于預先確定的指令(例如,XEND)。此描述是從單個加載指令的角度而言的,然而,應當理解,事務的每條指令將具有被分配到其的區指示符。
在703處,將與已被寫入的指令相關聯的前一個物理寄存器復制到COW中。例如,對于指令LOADRAX,RAX(其中,RAX先前已被映射至物理寄存器17),將物理寄存器17存儲在COW中,并且將(上文所述的)分配指針置于指針存儲位置中。注意,將RAX(物理寄存器17)的前一個映射保存在COW中,因為該映射包含在該TM區之前已被寫入的RAX的架構值。因此,如果TM區要中止,則可適當地恢復RAX的值。如果同一個TM區中的多條指令全部寫入到RAX中,則僅這些指令中的第一條需要將前一個映射保存在COW中。
在705處,執行該指令。
在707處,(例如,從ROB)引退該算術指令。如上所述,引退操作不必等到最老的TM區被提交就可發生。
在稍后某時刻,在711處,作出是否提交該事務的決定。通常,當接 收并處理XEND指令,并且沒有什么已導致該事務的中止時,完成該決定。如果允許該事務提交,則在715處,允許從COW中釋放與該事務相關聯的物理寄存器,以便由處理器使用,并因此相應地移動該COW的指針。如果將中止該事務,則在713處,將通過使用COW中被存儲的寄存器,將該狀態回滾到該事務之前的狀態。可例如由具有已被推測性地加載的、經修改數據的另一線程導致中止。這些寄存器也是可由處理器自由地使用的。
示例性寄存器架構
圖8是根據本發明的一個實施例的寄存器架構800的框圖。在所示出的實施例中,有32個512位寬的向量寄存器810;這些寄存器被引用為zmm0到zmm31。較低的16zmm寄存器的較低階256個位覆蓋在寄存器ymm0-16上。較低的16zmm寄存器的較低階128個位(ymm寄存器的較低階128個位)覆蓋在寄存器xmm0-15上。將寫掩碼寄存器引用為k0-7。
通用寄存器825——在所示出的實施例中,有十六個64位通用寄存器,這些寄存器與現有的x86尋址模式一起使用以對存儲器操作數進行尋址。這些寄存器通過名稱RAX、RBX、RCX、RDX、RBP、RSI、RDI、RSP以及R8到R15來引用。
標量浮點堆棧寄存器組(x87堆棧)845,在其上面重疊了MMX緊縮整數平坦寄存器組850——在所示出的實施例中,x87堆棧是用于使用x87指令集擴展來對32/64/80位浮點數據執行標量浮點運算的八元素堆棧;而使用MMX寄存器來對64位緊縮整數數據執行操作,以及為在MMX和XMM寄存器之間執行的一些操作保存操作數。
本發明的替代實施例可以使用更寬的或更窄的寄存器。另外,本發明的替代實施例可以使用更多、更少或不同的寄存器組和寄存器。
示例性核架構、處理器和計算機架構
可在不同的處理器中,出于不同的目的,以不同的方式來實現處理器核。例如,此類核的實現可包括:1)旨在用于通用計算的通用有序核;2)旨在用于通用計算的高性能通用無序核;3)旨在主要用于圖形和/或科學(吞 吐量)計算的專用核。不同處理器的實現可包括:1)包括旨在用于通用計算的一個或多個通用有序核和/或旨在用于通用計算的一個或多個通用無序核的CPU;以及2)包括旨在主要用于圖形和/或科學(吞吐量)的一個或多個專用核的協處理器。此類不同處理器導致不同的計算機系統架構,其可包括:1)在與CPU分開的芯片上的協處理器;2)在與CPU相同的封裝中但分開的管芯上的協處理器;3)與CPU在相同管芯上的協處理器(在該情況下,此類協處理器有時被稱為諸如集成圖形和/或科學(吞吐量)邏輯之類的專用邏輯,或被稱為專用核);以及4)可以將所描述的CPU(有時被稱為應用核或應用處理器)、以上描述的協處理器和附加功能包括在同一管芯上的芯片上系統。接著描述示例性核架構,隨后描述示例性處理器和計算機架構。
示例性核架構
有序和無序核框圖
圖9A是示出根據本發明的多個實施例的示例性有序流水線和示例性的寄存器重命名的無序發布/執行流水線的框圖。圖9B是示出根據本發明的多個實施例的要包括在處理器中的有序架構核的示例性實施例和示例性的寄存器重命名的無序發布/執行架構核的框圖。圖9A-B中的實線框示出有序流水線和有序核,而可選增加的虛線框示出了寄存器重命名的、無序發布/執行流水線和核。考慮到有序方面是無序方面的子集,將描述無序方面。
在圖9A中,處理器流水線900包括取出級902、長度解碼級904、解碼級906、分配級908、重命名級910、調度(也稱為分派或發布)級912、寄存器讀取/存儲器讀取級914、執行級916、寫回/存儲器寫入級918、異常處理級922和提交級924。
圖9B示出包括耦合到執行引擎單元950的前端單元930的處理器核990,且執行引擎單元和前端單元兩者都耦合到存儲器單元970。核990可以是精簡指令集計算(RISC)核、復雜指令集計算(CISC)核、超長指令字(VLIW)核或混合或替代核類型。作為又一選項,核990可以是專用核, 諸如例如網絡或通信核、壓縮引擎、協處理器核、通用計算圖形處理單元(GPGPU)核、或圖形核等。
前端單元930包括耦合到指令高速緩存單元934的分支預測單元932,該指令高速緩存單元耦合到指令轉換后備緩沖器(TLB)936,該指令轉換后備緩沖器耦合到指令取出單元938,指令取出單元耦合到解碼單元940。解碼單元940(或解碼器)可解碼指令,并生成從原始指令解碼出的、或以其他方式反映原始指令的、或從原始指令導出的一個或多個微操作、微代碼進入點、微指令、其他指令、或其他控制信號作為輸出。解碼單元940可使用各種不同的機制來實現。合適機制的示例包括但不限于,查找表、硬件實現、可編程邏輯陣列(PLA)、微代碼只讀存儲器(ROM)等。在一個實施例中,核990包括微代碼ROM或存儲用于某些宏指令的微代碼的其他介質(例如,在解碼單元940中或以其他方式在前端單元930內)。解碼單元940耦合至執行引擎單元950中的重命名/分配器單元952。
執行引擎單元950包括重命名/分配器單元952,該重命名/分配器單元耦合至引退單元954和一個或多個調度器單元956的集合。調度器單元956表示任何數目的不同調度器,包括預留站、中央指令窗等。調度器單元956耦合到物理寄存器組單元958。物理寄存器組單元958中的每一個表示一個或多個物理寄存器組,其中不同的物理寄存器組存儲一種或多種不同的數據類型,諸如標量整數、標量浮點、緊縮整數、緊縮浮點、向量整數、向量浮點、狀態(例如,作為要被執行的下一條指令的地址的指令指針)等。在一個實施例中,物理寄存器組單元958包括向量寄存器單元和標量寄存器單元。這些寄存器單元可以提供架構向量寄存器、向量掩碼寄存器、和通用寄存器。物理寄存器組單元958被引退單元954重疊以示出可以用來實現寄存器重命名和無序執行的各種方式(例如,使用重新排序緩沖器和引退寄存器組;使用將來的文件、歷史緩沖器和引退寄存器組;使用寄存器映射和寄存器池等)。引退單元954和物理寄存器組單元958耦合到執行群集960。執行群集960包括一個或多個執行單元962的集合和一個或多個存儲器訪問單元964的集合。執行單元962可以對各種類型的數據(例如,標量浮點、緊縮整數、緊縮浮點、向量整型、向量浮點)執行各種操 作(例如,移位、加法、減法、乘法)。盡管一些實施例可以包括專用于特定功能或功能集合的多個執行單元,但其他實施例可包括全部執行所有功能的僅一個執行單元或多個執行單元。調度器單元956、物理寄存器組單元958、執行群集960被示出為可能是復數個,因為某些實施例為某些數據/操作類型創建了多個單獨的流水線(例如,均具有各自調度器單元、物理寄存器組單元和/或執行群集的標量整數流水線、標量浮點/緊縮整數/緊縮浮點/向量整數/向量浮點流水線和/或存儲器訪問流水線,并且在單獨的存儲器訪問流水線的情況下,將特定實施例實現為僅僅該流水線的執行群集具有存儲器訪問單元964)。還應當理解,在使用分開的流水線的情況下,這些流水線中的一個或多個可以是無序發布/執行,并且其余流水線可以是有序發布/執行。
存儲器訪問單元964的集合耦合到存儲器單元970,該存儲器單元包括耦合到數據高速緩存單元974的數據TLB單元972,其中數據高速緩存單元耦合到第二級(L2)高速緩存單元976。在一個示例性實施例中,存儲器訪問單元964可包括加載單元、存儲地址單元和存儲數據單元,其中的每一個均耦合至存儲器單元970中的數據TLB單元972。指令高速緩存單元934還耦合到存儲器單元970中的第二級(L2)高速緩存單元976。L2高速緩存單元976耦合到一個或多個其他層級的高速緩存,并最終耦合到主存儲器。
作為示例,示例性寄存器重命名的、無序發布/執行核架構可按如下方式實現流水線900:1)指令取出938執行取出和長度解碼級902和904;2)解碼單元940執行解碼級906;3)重命名/分配器單元952執行分配級908和重命名級910;4)調度器單元956執行調度級912;5)物理寄存器組單元958和存儲器單元970執行寄存器讀取/存儲器讀取級914;執行群集960執行執行級916;6)存儲器單元970和物理寄存器組單元958執行寫回/存儲器寫入級918;7)各單元可牽涉到異常處理級922;以及8)引退單元954和物理寄存器組單元958執行提交級924。
核990可支持一個或多個指令集(例如,x86指令集(具有伴隨較新版本而添加的一些擴展);加利福尼亞州桑尼維爾市的MIPS技術公司的 MIPS指令集;加利福尼州桑尼維爾市的ARM控股公司的ARM指令集(具有諸如NEON之類的可選的附加擴展)),其中包括本文中描述的多個指令。在一個實施例中,核990包括用于支持緊縮數據指令集擴展(例如,AVX1、AVX2和/或先前描述的一些形式的通用向量友好指令格式(U=0和/或U=1))的邏輯,從而允許由許多多媒體應用使用的操作能夠使用緊縮數據來執行。
應當理解,核可支持多線程化操作(執行兩個或更多個并行的操作或線程的集合),并且可以按各種方式來完成該多線程化操作,各種方式包括時分多線程化、同步多線程化(其中,單個物理核為物理核正在同步地進行多線程化操作的多個線程中的每一個線程提供邏輯核)、或其組合(例如,時分取出和解碼以及此后諸如用超線程化技術來進行的同步多線程化操作)。
盡管在無序執行的上下文中描述了寄存器重命名,但應當理解,可以在有序架構中使用寄存器重命名。盡管所示出的處理器的實施例還包括分開的指令和數據高速緩存單元934/974以及共享L2高速緩存單元976,但替代實施例可具有用于指令和數據兩者的單個內部高速緩存,諸如例如,第一級(L1)內部高速緩存或多個層級的內部高速緩存。在一些實施例中,該系統可包括內部高速緩存和在核和/或處理器外部的外部高速緩存的組合。或者,所有高速緩存都可以在核和/或處理器的外部。
具體的示例性有序核架構
圖10A-B示出更具體的示例性有序核架構的框圖,該核將是芯片中的若干邏輯塊之一(包括相同類型和/或不同類型的其他核)。取決于應用,這些邏輯塊通過高帶寬的互連網絡(例如,環形網絡)與某個固定的功能邏輯、存儲器I/O接口和其他必要的I/O邏輯通信。
圖10A是根據本發明的多個實施例的單個處理器核以及它與管芯上互連網絡1002的連接及其第二級(L2)高速緩存的本地子集1004的框圖。在一個實施例中,指令解碼器1000支持具有緊縮數據指令集擴展的x86指令集。L1高速緩存1006允許對進入標量和向量單元中的高速緩存存儲器的低等 待時間訪問。盡管在一個實施例中(為了簡化設計),標量單元1008和向量單元1010使用分開的寄存器集合(分別為標量寄存器1012和向量寄存器1014),并且在這些寄存器之間傳遞的數據被寫入到存儲器中并隨后從第一級(L1)高速緩存1006讀回,但是本發明的替代實施例可以使用不同的方法(例如,使用單個寄存器集合或包括允許數據在這兩個寄存器組之間傳遞而無需被寫入和讀回的通信路徑)。
L2高速緩存的本地子集1004是全局L2高速緩存的部分,該全局L2高速緩存被劃分成多個分開的本地子集,針對每個處理器核有一個本地子集。每個處理器核具有去往其自身的L2高速緩存的本地子集1004的直接訪問路徑。將由處理器核讀取的數據存儲在其L2高速緩存子集1004中,并且可并行于其他處理器核訪問那些處理器核自身的本地L2高速緩存子集,快速訪問該數據。將由處理器核寫入的數據存儲在其自身的L2高速緩存子集1004中,并在必要的情況下從其他子集中清除該數據。環形網絡確保共享數據的一致性。環形網絡是雙向的,以允許諸如處理器核、L2高速緩存和其他邏輯塊之類的代理在芯片內彼此通信。每個環形數據路徑針對每個方向為1012位寬。
圖10B是根據本發明的多個實施例的圖10A中的處理器核的部分的展開圖。圖10B包括L1高速緩存1004的L1數據高速緩存1006A部分,以及關于向量單元1010和向量寄存器1014的更多細節。具體地說,向量單元1010是16寬向量處理單元(VPU)(見16寬ALU1028),該單元執行整數、單精度浮點以及雙精度浮點指令中的一個或多個。該VPU支持利用混合單元1020對寄存器輸入進行混合、利用數值轉換單元1022A-B進行數值轉換,并且利用復制單元1024進行對存儲器輸入的復制。
具有集成存儲器控制器和圖形器件的處理器
圖11是根據本發明的多個實施例的、可能具有多于一個的核、可能具有集成存儲器控制器、以及可能具有集成圖形器件的處理器1100的框圖。圖11中的實線框示出具有單個核1102A、系統代理1110、一個或多個總線控制器單元1116的集合的處理器1100,而虛線框的可選附加示出具有多個 核1102A-N、系統代理單元1110中的一個或多個集成存儲器控制器單元1114的集合以及專用邏輯1108的替代處理器1100。
因此,處理器1100的不同實現可包括:1)CPU,其中專用邏輯1108是集成圖形和/或科學(吞吐量)邏輯(其可包括一個或多個核),并且核1102A-N是一個或多個通用核(例如,通用有序核、通用無序核、這兩者的組合);2)協處理器,其中核1102A-N是旨在主要用于圖形和/或科學(吞吐量)的大量專用核;以及3)協處理器,其中核1102A-N是大量通用有序或無序核。因此,處理器1100可以是通用處理器、協處理器或專用處理器,諸如例如網絡或通信處理器、壓縮引擎、圖形處理器、GPGPU(通用圖形處理單元)、高吞吐量的集成眾核(MIC)協處理器(包括30個或更多核)、嵌入式處理器等。該處理器可以被實現在一個或多個芯片上。處理器1100可以是一個或多個基板的一部分,并且/或者可使用多種工藝技術(諸如,BiCMOS、CMOS或NMOS)中的任意技術被實現在一個或多個基板上。
存儲器層次結構包括核內的一個或多個層級的高速緩存、一個或多個共享高速緩存單元1106的集合、以及耦合至該組集成存儲器控制器單元1114的外部存儲器(未示出)。共享高速緩存單元1106的集合可包括一個或多個中級高速緩存(諸如,第二級(L2)、第三級(L3)、第四級(L4)或其他層級的高速緩存)末級高速緩存(LLC)和/或以上的組合。盡管在一個實施例中,基于環的互連單元1112將集成圖形邏輯1108、共享高速緩存單元1106的集合以及系統代理單元1110/集成存儲器控制器單元1114互連,但替代實施例可使用任何數量的公知技術來將這些單元互連。在一個實施例中,可以維持一個或多個高速緩存單元1106和核1102A-N之間的一致性(coherency)。
在一些實施例中,核1102A-N中的一個或多個能夠進行多線程操作。系統代理1110包括協調和操作核1102A-N的那些組件。系統代理單元1110可包括例如功率控制單元(PCU)和顯示單元。PCU可以是或可包括調節核1102A-N和集成圖形邏輯1108的功率狀態所需的邏輯和組件。顯示單元用于驅動一個或多個外部連接的顯示器。
核1102A-N在架構指令集方面可以是同構的或異構的;也就是說,這 些核1102A-N中的兩個或更多個核可能能夠執行相同的指令集,而其他核可能能夠執行該指令集的僅僅子集或不同的指令集。
示例性計算機架構
圖12-15是示例性計算機架構的框圖。本領域中已知的對膝上型計算機、臺式機、手持PC、個人數字助理、工程工作站、服務器、網絡設備、網絡集線器、交換機、嵌入式處理器、數字信號處理器(DSP)、圖形設備、視頻游戲設備、機頂盒、微控制器、蜂窩電話、便攜式媒體播放器、手持設備以及各種其他電子設備的其他系統設計和配置也是合適的。一般地,能夠包含本文中所公開的處理器和/或其他執行邏輯的各種系統和電子設備通常都是合適的。
現在參考圖12,所示出的是根據本發明一個實施例的系統1200的框圖。系統1200可包括一個或多個處理器1210、1215,這些處理器耦合到控制器中樞1220。在一個實施例中,控制器中樞1220包括圖形存儲器控制器中樞(GMCH)1290和輸入/輸出中樞(IOH)1250(其可以位于分開的芯片上);GMCH1290包括存儲器和圖形控制器,存儲器1240和協處理器1245耦合到該存儲器和圖形控制器;IOH1250將輸入/輸出(I/O)設備1260耦合到GMCH1290。或者,存儲器和圖形控制器中的一個或兩者可以被集成在處理器內(如本文中所描述的),存儲器1240和協處理器1245直接耦合到處理器1210以及與IOH1250一起處于單個芯片中的控制器中樞1220。
附加的處理器1215的可選性質在圖12中通過虛線來表示。每一個處理器1210、1215可包括本文中描述的處理核中的一個或多個,并且可以是處理器1100的某一版本。
存儲器1240可以是例如動態隨機存取存儲器(DRAM)、相變存儲器(PCM)或這兩者的組合。對于至少一個實施例,控制器中樞1220經由諸如前端總線(FSB)之類的多分支總線、諸如快速通道互連(QPI)之類的點對點接口、或者類似的連接1295與處理器1210、1215進行通信。
在一個實施例中,協處理器1245是專用處理器,諸如例如,高吞吐量 MIC處理器、網絡或通信處理器、壓縮引擎、圖形處理器、GPGPU、或嵌入式處理器等。在一個實施例中,控制器中樞1220可以包括集成圖形加速器。
在物理資源1210、1215之間可以存在包括架構、微架構、熱和功耗特性等的一系列品質度量方面的各種差異。
在一個實施例中,處理器1210執行控制一般類型的數據處理操作的指令。協處理器指令可嵌入在這些指令中。處理器1210將這些協處理器指令識別為應當由附連的協處理器1245執行的類型。因此,處理器1210在協處理器總線或者其他互連上將這些協處理器指令(或者表示協處理器指令的控制信號)發布到協處理器1245。協處理器1245接受并執行所接收的協處理器指令。
現在參考圖13,所示為根據本發明的實施例的更具體的第一示例性系統1300的框圖。如圖13所示,多處理器系統1300是點對點互連系統,且包括經由點對點互連1350耦合的第一處理器1370和第二處理器1380。處理器1370和1380中的每一個都可以是處理器1100的某一版本。在本發明的一個實施例中,處理器1370和1380分別是處理器1210和1215,而協處理器1338是協處理器1245。在另一實施例中,處理器1370和1380分別是處理器1210和協處理器1245。
處理器1370和1380被示出為分別包括集成存儲器控制器(IMC)單元1372和1382。處理器1370還包括作為其總線控制器單元的部分的點對點(P-P)接口1376和1378;類似地,第二處理器1380包括P-P接口1386和1388。處理器1370、1380可以經由使用點對點(P-P)接口電路1378、1388的P-P接口1350來交換信息。如圖13所示,IMC1372和1382將處理器耦合到各自的存儲器,即可以是本地附連到各自處理器的主存儲器的多個部分的存儲器1332和存儲器1334。
處理器1370、1380可各自經由使用點對點接口電路1376、1394、1386、1398的各個P-P接口1352、1354與芯片組1390交換信息。芯片組1390可以可選地經由高性能接口1339與協處理器1338交換信息。在一個實施例中,協處理器1338是專用處理器,諸如例如,高吞吐量MIC處理器、 網絡或通信處理器、壓縮引擎、圖形處理器、GPGPU、或嵌入式處理器等。
可將共享高速緩存(未示出)包括在任一處理器之內,或包括在兩個處理器外部但仍經由P-P互連與這些處理器連接,使得如果將處理器置于低功率模式時,可將任一處理器或兩個處理器的本地高速緩存信息存儲在該共享高速緩存中。
芯片組1390可以經由接口1396耦合至第一總線1316。在一個實施例中,第一總線1316可以是外圍組件互連(PCI)總線或諸如PCI高速總線或另一第三代I/O互連總線之類的總線,但是本發明的范圍不限于此。
如圖13所示,各種I/O設備1314可連同總線橋1318一起耦合到第一總線1316,總線橋1318將第一總線1316耦合到第二總線1320。在一個實施例中,諸如協處理器、高吞吐量MIC處理器、GPGPU的處理器、加速器(諸如例如,圖形加速器或數字信號處理(DSP)單元)、現場可編程門陣列或任何其他處理器之類的一個或多個附加處理器1315耦合到第一總線1316。在一個實施例中,第二總線1320可以是低引腳計數(LPC)總線。各種設備可以被耦合至第二總線1320,在一個實施例中這些設備包括例如鍵盤/鼠標1322、通信設備1327以及諸如可包括指令/代碼和數據1330的盤驅動器或其他大容量存儲設備之類的存儲單元1328。此外,音頻I/O1324可以被耦合至第二總線1320。注意,其他架構是可能的。例如,代替圖13中的點對點架構,系統可以實現多分支總線或其他此類架構。
現在參考圖14,所示為根據本發明的實施例的更具體的第二示例性系統1400的框圖。圖13和圖14中的相同部件用相同附圖標記表示,并從圖14中省去了圖13中的某些方面,以避免使圖14的其他方面變得模糊。
圖14示出處理器1370、1380可分別包括集成存儲器和I/O控制邏輯(”CL”)1372和1382。因此,CL1372、1382包括集成存儲器控制器單元并包括I/O控制邏輯。圖14示出不僅存儲器1332、1334耦合至CL1372、1382,而且I/O設備1414也耦合至控制邏輯1372、1382。傳統I/O設備1415被耦合至芯片組1390。
現在參照圖15,所示出的是根據本發明的實施例的SoC1500的框圖。圖11中的相似部件具有同樣的附圖標記。另外,虛線框是更先進的SoC上 的可選特征。在圖15中,互連單元1502被耦合至:應用處理器1510,其包括一個或多個核202A-N的集合以及共享高速緩存單元1106;系統代理單元1110;總線控制器單元1116;集成存儲器控制器單元1114;一組或一個或多個協處理器1520,其可包括集成圖形邏輯、圖像處理器、音頻處理器和視頻處理器;靜態隨機存取存儲器(SRAM)單元1530;直接存儲器存取(DMA)單元1532;以及顯示單元,其用于耦合至一個或多個外部顯示器。在一個實施例中,協處理器1520包括專用處理器,諸如例如,網絡或通信處理器、壓縮引擎、GPGPU、高吞吐量MIC處理器、或嵌入式處理器等。
可在硬件、軟件、固件或此類實現的組合中實現本文中所公開的機制的多個實施例。可將本發明的多個實施例實現為在可編程系統上執行的計算機程序或程序代碼,該可編程系統包括至少一個處理器、存儲系統(包括易失性和非易失性存儲器和/或存儲元件)、至少一個輸入設備和至少一個輸出設備。
可將程序代碼(例如,圖13中所示的代碼1330)應用于輸入指令,以執行本文描述的多個功能并生成輸出信息。可以按已知方式將輸出信息應用于一個或多個輸出設備。為了本申請的目的,處理系統包括具有諸如例如數字信號處理器(DSP)、微控制器、專用集成電路(ASIC)或微處理器之類的處理器的任何系統。
程序代碼可以用高級程序化語言或面向對象的編程語言來實現,以便與處理系統通信。在需要時,也可用匯編語言或機器語言來實現程序代碼。事實上,本文中描述的機制不限于任何特定編程語言的范圍。在任一情形下,該語言可以是編譯語言或解釋語言。
至少一個實施例的一個或多個方面可以由存儲在標識處理器內的各種邏輯的機器可讀介質上的表示性指令來實現,當由機器讀取該表示性指令時,該指令使該機器制作用于執行本文所述的技術的邏輯。可將被稱為“IP核”的此類表示存儲在有形的機器可讀介質上,并將其提供給各種客戶或生產設施以加載到實際制造該邏輯或處理器的制造機器中。
此類機器可讀存儲介質可包括但不限于通過機器或設備制造或形成的制品的非瞬態的有形安排,其包括存儲介質,諸如,硬盤;任何其他類型 的盤,包括軟盤、光盤、緊致盤只讀存儲器(CD-ROM)、緊致盤可重寫(CD-RW)以及磁光盤;半導體器件,例如,只讀存儲器(ROM)、諸如動態隨機存取存儲器(DRAM)和靜態隨機存取存儲器(SRAM)之類的隨機存取存儲器(RAM)、可擦除可編程只讀存儲器(EPROM)、閃存、電可擦除可編程只讀存儲器(EEPROM);相變存儲器(PCM);磁卡或光卡;或適于存儲電子指令的任何其他類型的介質。
因此,本發明的多個實施例還包括非瞬態的有形機器可讀介質,該介質包含指令或包含設計數據,諸如定義了本文中描述的結構、電路、裝置、處理器和/或系統特征的硬件描述語言(HDL)。也可將此類實施例稱為程序產品。
仿真(包括二進制變換、代碼變形等)
在一些情況下,指令轉換器可用來將指令從源指令集轉換至目標指令集。例如,指令轉換器可以將指令變換(例如,使用靜態二進制變換和包括動態編譯的動態二進制變換)、變形、仿真或以其他方式轉換成一個或多個其他指令,以便由核進行處理。可在軟件、硬件、固件、或它們的組合中實現該指令轉換器。該指令轉換器可以在處理器上,在處理器外,或者部分在處理器上且部分在處理器外。
圖16是根據本發明的各實施例的、對照使用軟件指令轉換器將源指令集中的二進制指令轉換成目標指令集中的二進制指令的框圖。在所示的實施例中,指令轉換器是軟件指令轉換器,但作為替代,可在軟件、固件、硬件或其各種組合中實現該指令轉換器。圖16示出可使用x86編譯器1604來編譯利用高級語言1602的程序,以生成可由具有至少一個x86指令集核的處理器1616原生地執行的x86二進制代碼1606。具有至少一個x86指令集核的處理器1616表示能通過兼容地執行或以其他方式處理下列各項來執行與具有至少一個x86指令集核的英特爾處理器基本相同的功能的任何處理器:1)英特爾x86指令集核的指令集的本質部分,或2)目標為在具有至少一個x86指令集核的英特爾處理器上運行以取得與具有至少一個x86指令集核的英特爾處理器基本相同的結果的應用或其他軟件的目標代碼版 本。x86編譯器1604表示用于生成x86二進制代碼1806(例如,目標代碼)的編譯器,該二進制代碼可通過或不通過附加的鏈接處理而被執行在具有至少一個x86指令集核的處理器1616上。類似地,圖16示出可以使用替代的指令集編譯器1608來編譯利用高級語言1602的程序,以生成可由不具有至少一個x86指令集核的處理器1614(例如,具有執行加利福尼亞州桑尼維爾市的MIPS技術公司的MIPS指令集、和/或執行加利福尼亞州桑尼維爾市的ARM控股公司的ARM指令集的核的處理器)原生地執行的替代指令集二進制代碼1610。指令轉換器1612被用來將x86二進制代碼1606轉換成可由不具有x86指令集核的處理器1614原生地執行的代碼。該轉換后的代碼不大可能與替代性指令集二進制代碼1610相同,因為能夠這樣做的指令轉換器難以制造;然而,轉換后的代碼將完成一般操作并由來自替代指令集的指令構成。因此,指令轉換器1612通過仿真、模擬或任何其他過程來表示允許不具有x86指令集處理器或核的處理器或其他電子設備執行x86二進制代碼1606的軟件、固件、硬件或它們的組合。

關 鍵 詞:
用于 改善 連續 事務性 存儲器 吞吐量 系統 方法 裝置
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:用于改善連續的事務性存儲器區的吞吐量的系統、方法和裝置.pdf
鏈接地址:http://www.rgyfuv.icu/p-6409635.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
山东11选5中奖结果走势图