CN111095252B 密碼存儲(chǔ)器所有權(quán)(英特爾公司)_第1頁(yè)
CN111095252B 密碼存儲(chǔ)器所有權(quán)(英特爾公司)_第2頁(yè)
CN111095252B 密碼存儲(chǔ)器所有權(quán)(英特爾公司)_第3頁(yè)
CN111095252B 密碼存儲(chǔ)器所有權(quán)(英特爾公司)_第4頁(yè)
CN111095252B 密碼存儲(chǔ)器所有權(quán)(英特爾公司)_第5頁(yè)
已閱讀5頁(yè),還剩97頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

(12)發(fā)明專利(10)授權(quán)公告號(hào)CN1110952(65)同一申請(qǐng)的已公布的文獻(xiàn)號(hào)(85)PCT國(guó)際申請(qǐng)進(jìn)入國(guó)家階段日PCT/US2017/0543832017(87)PCT國(guó)際申請(qǐng)的公布數(shù)據(jù)地址美國(guó)加利福尼亞州V·尚伯格B·E·亨特利(74)專利代理機(jī)構(gòu)上海專利商標(biāo)事務(wù)所有限公司31100審查員李江(54)發(fā)明名稱密碼存儲(chǔ)器所有權(quán)物理擎用于為第一信任域(TD)提供TME,并且進(jìn)一步用于:將物理存儲(chǔ)器塊分配給第一TD,并且將第一密碼密鑰分配給第一TD;在擴(kuò)展頁(yè)表(EPT)內(nèi)將主機(jī)物理地址(HPA)空間映射到TD的客戶機(jī)物理地址(GPA)空間;為物理存儲(chǔ)器塊內(nèi)的存儲(chǔ)器目進(jìn)行加密;并將MOT條目驗(yàn)證數(shù)據(jù)附加到MOT條2將物理存儲(chǔ)器塊分配給所述第一信任域TD,并且將第一密碼密鑰分配給所述第一信任在擴(kuò)展頁(yè)表EPT內(nèi)將主機(jī)物理地址HPA空間映射到所述第一信任域TD的客戶機(jī)物理地址GPA空間;為所述物理存儲(chǔ)器塊內(nèi)的存儲(chǔ)器頁(yè)創(chuàng)建存儲(chǔ)器所有權(quán)表MOT條目,其中,所述MOT表包將MOT條目驗(yàn)證數(shù)據(jù)附加到所述MOT條目,其中,所述MOT條目驗(yàn)證數(shù)據(jù)使得能夠檢測(cè)對(duì)2.如權(quán)利要求1所述的微處理器,其特征在于,所述處理器用于響應(yīng)于一個(gè)或多個(gè)指令而在由物理存儲(chǔ)器范圍寄存器控制的存儲(chǔ)器范圍內(nèi)供應(yīng)所述MOT。述第一密碼密鑰提供第一密鑰域,并且其中,所述TME引擎進(jìn)一步用于分配具有第二密鑰域4.如權(quán)利要求1所述的微處理器,其特征在于,所述MOT進(jìn)一步包括TD控制結(jié)構(gòu)TDCS指針字段。5.如權(quán)利要求1所述的微處理器,其特征在于,所述條目驗(yàn)證數(shù)據(jù)包括版本號(hào)字段。6.如權(quán)利要求1所述的微處理器,其特征在于,所述條目驗(yàn)證數(shù)據(jù)包括完整性字段。7.如權(quán)利要求6所述的微處理器,其特征在于,所述完整性字段包括由加密密鑰簽名的8.如權(quán)利要求7所述的微處理器,其特征在于,所述MOT條目是128位的散列。10.如權(quán)利要求1所述的微處理器,其特征在于,所述TME被配置成用于以高速緩存行粒度對(duì)存儲(chǔ)器進(jìn)行加密。11.如權(quán)利要求10所述的微處理器,其特征在于,所述MOT被配置成用于將高速緩存操作劃分為128位的對(duì)齊的塊。12.如權(quán)利要求1-11中任一項(xiàng)所述的微處理器,其特征在于,所述處理器進(jìn)一步包括頁(yè)未命中處理程序PMH,所述PMH被配置成用于在頁(yè)未命中時(shí)走查存儲(chǔ)器頁(yè)、用于確定基于所述條目驗(yàn)證數(shù)據(jù)的完整性檢查已經(jīng)失敗、以及用于使所述存儲(chǔ)器頁(yè)無(wú)效。13.如權(quán)利要求12所述的微處理器,其特征在于,所述PMH進(jìn)一步用于針對(duì)所述第一信14.一種包括存儲(chǔ)器和權(quán)利要求1-13中任一項(xiàng)所述的微處理器的計(jì)算設(shè)備。被配置成用于將所述第一信任域TD與所述VMM隔離。16.一種或多種有形的非暫態(tài)介質(zhì),所述介質(zhì)具有存儲(chǔ)在其上的用于為第一信任域TD3將物理存儲(chǔ)器塊分配給所述第一信任域TD,并且將第一密碼密鑰分配給所述第一信任在擴(kuò)展頁(yè)表EPT內(nèi)將主機(jī)物理地址HPA空間映射到所述第一信任域TD的客戶機(jī)物理地址GPA空間;為所述物理存儲(chǔ)器塊內(nèi)的存儲(chǔ)器頁(yè)創(chuàng)建存儲(chǔ)器所有權(quán)表MOT條目,其中,所述MOT表包將MOT條目驗(yàn)證數(shù)據(jù)附加到所述MOT條目,其中,所述MOT條目驗(yàn)證數(shù)據(jù)使得能夠檢測(cè)對(duì)所述MOT條目的攻擊。17.如權(quán)利要求16所述的一種或多種有形的非暫態(tài)介質(zhì),其特征在于,所述第一密碼密鑰提供第一密鑰域,并且其中,所述指令進(jìn)一步用于分配具有第二密鑰域的第二TD。18.如權(quán)利要求16所述的一種或多種有形的非暫態(tài)介質(zhì),其特征在于,所述MOT進(jìn)一步19.如權(quán)利要求16所述的一種或多種有形的非暫態(tài)介質(zhì),其特征在于,所述條目驗(yàn)證數(shù)據(jù)包括完整性字段。20.如權(quán)利要求16所述的一種或多種有形的非暫態(tài)介質(zhì),其特征在于,所述條目驗(yàn)證數(shù)據(jù)包括版本號(hào)字段。21.如權(quán)利要求19所述的一種或多種有形的非暫態(tài)介質(zhì),其特征在于,所述完整性字段22.如權(quán)利要求21所述的一種或多種有形的非暫態(tài)介質(zhì),其特征在于,所述MOT條目是128位的散列。23.如權(quán)利要求21所述的一種或多種有形的非暫態(tài)介質(zhì),其特征在于,所述MOT條目被劃分成128位的行。24.如權(quán)利要求16所述的一種或多種有形的非暫態(tài)介質(zhì),其特征在于,所述指令用于以高速緩存行粒度對(duì)存儲(chǔ)器進(jìn)行加密。25.如權(quán)利要求16所述的一種或多種有形的非暫態(tài)介質(zhì),其特征在于,所述指令用于將高速緩存操作劃分成128位的對(duì)齊的塊。4技術(shù)領(lǐng)域[0001]本公開總體上涉及數(shù)據(jù)中心計(jì)算領(lǐng)域,并且更具體地但非獨(dú)占地涉及用于密碼存儲(chǔ)器所有權(quán)的系統(tǒng)和方法。背景技術(shù)[0002]多處理器系統(tǒng)正變得越來(lái)越普遍。在現(xiàn)代世界中,計(jì)算資源在人類生活中起到越來(lái)越綜合的作用。隨著計(jì)算機(jī)變得越來(lái)越普遍,控制從電網(wǎng)到大的工業(yè)機(jī)器到個(gè)人計(jì)算機(jī)到燈泡的一切事物,對(duì)更有能力的處理器的需求增加。附圖說明[0003]通過在結(jié)合所附附圖來(lái)閱讀以下具體實(shí)施方式,最好地理解本公開。值得強(qiáng)調(diào)的是,根據(jù)行業(yè)內(nèi)的標(biāo)準(zhǔn)慣例,各種特征不一定是按比例繪制的,并且僅用作說明目的。在顯式或隱式地示出比例的情況下,它僅提供一個(gè)說明性示例。在其他實(shí)施例中,為了使討論清楚,可以任意地?cái)U(kuò)大或縮小各種特征的尺寸。[0004]圖1是根據(jù)本說明書的一個(gè)或多個(gè)示例的具有網(wǎng)絡(luò)連接性的數(shù)據(jù)中心的所選擇組件的框圖。[0005]圖2是根據(jù)本說明書的一個(gè)或多個(gè)示例的終端用戶計(jì)算設(shè)備的所選擇組件的框[0006]圖3是根據(jù)本說明書的一個(gè)或多個(gè)示例的計(jì)算系統(tǒng)的框圖。[0007]圖4是圖示了本說明書的教導(dǎo)的附加方面的計(jì)算系統(tǒng)的框圖。[0008]圖5是可以結(jié)合本說明書的教導(dǎo)來(lái)執(zhí)行的方法的流程圖。[0009]圖6a-圖6b是圖示根據(jù)本說明書的一個(gè)或多個(gè)示例的通用向量友好指令格式及其指令模板的框圖。[0010]圖7a-圖7d是圖示根據(jù)本說明書的一個(gè)或多個(gè)示例的示例專用向量友好指令格式的框圖。[0011]圖8是根據(jù)本說明書的一個(gè)或多個(gè)示例的寄存器架構(gòu)的框圖。[0012]圖9a是圖示根據(jù)本說明書的一個(gè)或多個(gè)示例的示例有序流水線和示例寄存器重命名的亂序發(fā)布/執(zhí)行流水線的框圖。[0013]圖9b是圖示根據(jù)本說明書的一個(gè)或多個(gè)示例的要包括在處理器中的有序架構(gòu)核的示例和示例寄存器重命名的亂序發(fā)布/執(zhí)行架構(gòu)核的框圖。[0014]圖10a-圖10b圖示根據(jù)本說明書的一個(gè)或多個(gè)示例的更具體的有序核架構(gòu)的框圖,該核將是芯片中的若干邏輯塊中的一個(gè)(包括相同類型和/或不同類型的其他核)。[0015]圖11是根據(jù)本說明書的一個(gè)或多個(gè)示例的可具有超過一個(gè)的核、可具有集成存儲(chǔ)器控制器、并且可具有集成圖形的處理器的框圖。[0016]圖12-圖15是根據(jù)本說明書的一個(gè)或多個(gè)示例的計(jì)算機(jī)架構(gòu)的框圖。[0017]圖16是根據(jù)本說明書的一個(gè)或多個(gè)示例的對(duì)照使用軟件指令轉(zhuǎn)換器將源指令集5中的二進(jìn)制指令轉(zhuǎn)換成目標(biāo)指令集中的二進(jìn)制指令的框圖。具體實(shí)施方式[0018]下列公開提供用于實(shí)現(xiàn)本公開的不同特征的許多不同的實(shí)施例或示例。下文描述公開可以在各示例中重復(fù)附圖標(biāo)號(hào)和/或字母。這種重復(fù)只是為了簡(jiǎn)明和清晰,并且本身不規(guī)定所討論的各實(shí)施例和/或配置之間的關(guān)系。不同的實(shí)施例可具有不同的優(yōu)點(diǎn),并且沒有特定的優(yōu)點(diǎn)對(duì)于任何實(shí)施例一定是必需的。[0019]許多現(xiàn)有的微處理器架構(gòu)包括用于供應(yīng)存儲(chǔ)器飛地以及設(shè)立和利用受信任執(zhí)行環(huán)境(TEE)的特殊指令。例如,英特爾?軟件保護(hù)擴(kuò)展(SGX)指令可用于設(shè)立存儲(chǔ)器飛地,以[0020]現(xiàn)有的TEE(諸如SGX)可以提供存儲(chǔ)器加密引擎(MEE),該存儲(chǔ)器加密引擎(MEE)對(duì)存儲(chǔ)器進(jìn)行加密、確保存儲(chǔ)器完整性、以及保護(hù)存儲(chǔ)器免遭攻擊(諸如重播攻擊)。通常,通過供應(yīng)存儲(chǔ)器的小區(qū)域作為飛地,并且并將該飛地用于應(yīng)用的被稱為受信任計(jì)算基礎(chǔ)[0021]在許多情況下,在TEE內(nèi)加密的存儲(chǔ)器利用加密密鑰進(jìn)行簽名,該加密密鑰用于加[0022]本說明書的實(shí)施例包括諸如微處理器之類的設(shè)備的特征,該微處理器被配置成不僅提供應(yīng)用內(nèi)的小存儲(chǔ)器飛地,而且還提供整個(gè)信任域(TD),該信任域(TD)可以是(或包括)提供完全受信任的執(zhí)行的虛擬機(jī)(VM)。與英特爾RSGX指令類似,本說明書的示例處理器可被提供有信任域擴(kuò)展(TDX)指令。TDX指令可用于供應(yīng)隔離的VM,該VM可以作為不僅受到其他VM保護(hù)還受到虛擬機(jī)管理器(VMM)、管理程序、或在信任域的情況下充當(dāng)盲管理程序的其他管理實(shí)體保護(hù)的信任域來(lái)操作。虛擬化物理地址)到主機(jī)設(shè)備的物理存儲(chǔ)器中的物理地址的映射。但是,TD維持其自己的客確保存儲(chǔ)器的完整性并防護(hù)篡改和攻擊(諸如重播攻擊)。[0026]為了確保對(duì)TD的保6MOT放置在僅CPU或微架構(gòu)可訪問的特殊存儲(chǔ)器區(qū)域中(諸如專用微架構(gòu)存儲(chǔ)器)或放置在由只能由CPU訪問的物理存儲(chǔ)器范圍寄存器(PMRR)保護(hù)的存儲(chǔ)器頁(yè)中來(lái)保護(hù)MOT。這確保了它不會(huì)被軟件進(jìn)程篡改。[0027]然而,與現(xiàn)代計(jì)算系統(tǒng)中非常大的主存儲(chǔ)器相比,此類專用的微架構(gòu)存儲(chǔ)器相對(duì)來(lái)說較為珍貴。因此,在一些實(shí)施例中將MOT移出此類專用存儲(chǔ)器位置并移入主存儲(chǔ)器中是有利的??梢栽O(shè)置在由PMRR保護(hù)的存儲(chǔ)器范圍內(nèi),或者可以設(shè)置在不受保護(hù)的存儲(chǔ)器中。為了進(jìn)一步的安全性,每個(gè)信任域都提供有其自己的私鑰,以用于加密和簽名。在多個(gè)租戶共享共同的硬件平臺(tái)的系統(tǒng)中,每個(gè)租戶都可以具有其自己的信任域,可以在其中供應(yīng)一個(gè)或多個(gè)而確保密鑰的所有者“擁有”相應(yīng)的物理存儲(chǔ)器頁(yè)。CMOT由多密鑰總存儲(chǔ)器加密(MKTME)引擎管理,該多密鑰總存儲(chǔ)器加密(MKTME)引擎能夠隔離密鑰域內(nèi)的租戶和VM,其中密鑰域包括用于擁有TD的租戶的至少一個(gè)獨(dú)占密鑰。這將租戶的TD或密鑰域與其他租戶以及CSP本身進(jìn)行密碼隔離。處理器(例如,執(zhí)行頁(yè)走查的頁(yè)未命中處理程序(PMH)定是否將物理存儲(chǔ)器地址和客戶機(jī)物理地址存儲(chǔ)器映射分配給了正確的所屬的TD。表格中的每個(gè)條目都將一個(gè)物理頁(yè)映射到一個(gè)密鑰,并使用TD的私有加密密鑰進(jìn)行加密。因此,擁有密鑰域的一方可以驗(yàn)證存儲(chǔ)器映射對(duì)于其唯一密鑰是否正確,同時(shí)利用密鑰對(duì)已驗(yàn)證的條目進(jìn)行加密。[0029]MKTME引擎可以利用物理地址位來(lái)傳遞哪個(gè)密鑰被用于對(duì)去往或來(lái)自物理存儲(chǔ)器的數(shù)據(jù)線進(jìn)行加密或解密。在一個(gè)示例中,存在一個(gè)密鑰和密鑰標(biāo)識(shí)符(地址內(nèi))供所屬的信任域獨(dú)占使用(即TD的私鑰)。這是用于加密與該TD相關(guān)聯(lián)鑰ID。以對(duì)屬于CMOT條目的高速緩存行進(jìn)行加密或解密。如果針對(duì)該條目的完整性值在由PMH進(jìn)行的存儲(chǔ)器讀取時(shí)已損壞,則PMH拒絕該映射。完整性值或字段可以是例如必須被設(shè)置為0以指示成功映射的一個(gè)或多個(gè)位。[0031]因此,利用與條目相關(guān)聯(lián)的密鑰或密鑰ID對(duì)條目進(jìn)行加密并驗(yàn)證完整性值允許到不同TD或不受信任的VM或VMM本身。此外,物理攻擊者修改存儲(chǔ)器中CMOT的密文的任何嘗試都會(huì)導(dǎo)致存儲(chǔ)器損壞,該存儲(chǔ)器損壞可以在處理器中檢測(cè)到,因?yàn)镃MOT的完整性值(即,包含CMOT條目的散列的完整性字段)將被損壞。相對(duì)應(yīng)的空閑CMOT條目標(biāo)記為被獨(dú)占地分配給由TD標(biāo)識(shí)符(TDID)指定的TD。CPU使用地址前頁(yè)狀態(tài)都會(huì)導(dǎo)致錯(cuò)誤。該指令強(qiáng)制執(zhí)行跨線程轉(zhuǎn)換后備緩沖器(TLB)否決操作,以確保沒有其他TD正在將到此物理頁(yè)地址(PPA)的映射進(jìn)行高速緩存。指令葉可以由VMM軟件調(diào)用。7[0033]如本文中所示,本說明書的教導(dǎo)使得能夠在大量的主存儲(chǔ)器中維持大型CMOT,同自己的一個(gè)或多個(gè)私鑰,并且可以受到保護(hù)免遭彼此的影響、免遭不受信任的VM的影響、以[0034]現(xiàn)在將更具體地參考所附附圖來(lái)描述用于密碼存儲(chǔ)器所有權(quán)的系統(tǒng)和方法。應(yīng)當(dāng)注意,貫穿附圖,可重復(fù)某些附圖標(biāo)記來(lái)指示特定設(shè)備或框跨附圖完全或基本上一致。然而,這不旨在暗示所公開的各實(shí)施例之間任何特定的關(guān)系。在某些示例中,可通過特定附圖標(biāo)記(“小部件10”)來(lái)引用一類元件,而該類中單獨(dú)的種類或示例可通過帶連字符號(hào)的標(biāo)記[0035]圖1是根據(jù)本說明書的一個(gè)或多個(gè)示例的云服務(wù)提供商(CSP)102的具有到網(wǎng)絡(luò)的連接性的數(shù)據(jù)中心100的所選擇組件的框圖。作為非限制性示例,CSP102可以是提供諸如基礎(chǔ)設(shè)施即服務(wù)(IaaS)、平臺(tái)即服務(wù)(PaaS)或軟件即服務(wù)(SaaS)等之類的服務(wù)的傳統(tǒng)的企[0036]CSP102可以供應(yīng)某個(gè)數(shù)量的工作負(fù)載集群118,該工作負(fù)載集群118可以是獨(dú)立服務(wù)器、刀片式服務(wù)器、機(jī)架式服務(wù)器、或任何其他合適的服務(wù)器拓?fù)涞募?。在該說明性示例中,示出了兩個(gè)工作負(fù)載集群118-1和118-2,每個(gè)工作負(fù)載集群在機(jī)箱148中提供機(jī)架式服務(wù)器146。[0037]在本示圖中,工作負(fù)載集群118被示為符合機(jī)架單元("U")標(biāo)準(zhǔn)的模塊化工作負(fù)載集群,其中19英寸寬的標(biāo)準(zhǔn)機(jī)架可被構(gòu)建以容納42個(gè)單元(42U),每個(gè)單元高1.75英寸,深納入某個(gè)倍數(shù)的從1至42的機(jī)架單元中。[0038]每個(gè)服務(wù)器146可以主管獨(dú)立的操作系統(tǒng)并提供服務(wù)器功能,或者服務(wù)器可以被并且可以主管一個(gè)或多個(gè)虛擬機(jī)、虛擬服務(wù)器、或虛擬設(shè)備。這些服務(wù)器機(jī)架可以被并置在單個(gè)數(shù)據(jù)中心中,也可以位于不同的地理數(shù)據(jù)中心中。取決于合同協(xié)議,某些服務(wù)器146可以專用于某些企業(yè)客戶或租戶,而其他服務(wù)器可以被共享。[0039]數(shù)據(jù)中心中的各種設(shè)備可以經(jīng)由交換結(jié)構(gòu)170彼此連接,交換結(jié)構(gòu)170可以包括一個(gè)或多個(gè)高速路由和/或交換設(shè)備。交換結(jié)構(gòu)170可提供“北-南”業(yè)務(wù)(例如去往和來(lái)自廣域網(wǎng)(WAN)(諸如因特網(wǎng))的業(yè)務(wù))以及“東-西”業(yè)務(wù)(例如跨數(shù)據(jù)中心的業(yè)務(wù))兩者。歷史上,北-南業(yè)務(wù)占網(wǎng)絡(luò)業(yè)務(wù)的大塊,但是隨著網(wǎng)絡(luò)服務(wù)變得更加復(fù)雜和分散,東西業(yè)務(wù)量已經(jīng)上[0040]此外,隨著每個(gè)服務(wù)器146的能力提高,業(yè)務(wù)量可進(jìn)一步增加。例如,每個(gè)服務(wù)器146可以提供多個(gè)處理器插槽,其中每個(gè)插槽容納具有4到8個(gè)核的處理器,以及用于核的充[0041]為了適應(yīng)數(shù)據(jù)中心中的大的業(yè)務(wù)量,可提供高能力的交換結(jié)構(gòu)170。交換結(jié)構(gòu)170在此示例中被圖示為“平坦”網(wǎng)絡(luò),其中每個(gè)服務(wù)器146可具有到機(jī)架頂(ToR)交換機(jī)120的直接連接(例如“星形”配置),并且每個(gè)ToR交換機(jī)120可耦合到核交換機(jī)130。這種兩層平坦網(wǎng)絡(luò)架構(gòu)僅作為說明性的示例示出。在其他示例中,可使用其他架構(gòu),作為非限制性示例,8環(huán)形拓?fù)浠蛘?-D網(wǎng)格拓?fù)?。[0042]該結(jié)構(gòu)本身可通過任何合適的互連來(lái)提供。例如,每個(gè)服務(wù)器146可包括英特爾R主機(jī)結(jié)構(gòu)接口(HFI)、網(wǎng)絡(luò)接口卡(NIC)或其他主機(jī)接口。主機(jī)接口本身可經(jīng)由互連或總線(諸如PCI、PCIe等)耦合到一個(gè)或多個(gè)處理器,以及在一些情況下,此互連總線可被認(rèn)為是結(jié)構(gòu)170的部分。[0043]互連技術(shù)可通過單個(gè)互連或者混合互連來(lái)提供,諸如在PCIe提供芯片上通信的情況下,1Gb或10Gb銅以太網(wǎng)提供到ToR交換機(jī)120的相對(duì)較短的連接,以及光纜提供到核交換機(jī)130的相對(duì)較長(zhǎng)的連接。作為非限制性示例,互連技術(shù)包括英特爾?全向路徑T(Omni-PathT)、真實(shí)比例(TrueScaleT)、超路徑互連(UPI)(以前稱作QPI或KTI)、光纖通道、以太網(wǎng)、以太網(wǎng)上的光纖通道(FCoE)、無(wú)限帶寬(InfiniBand)、PC數(shù)個(gè)。這些互連技術(shù)中的一些將比其他互連技術(shù)更適合于某些部署或功能,以及選擇用于即時(shí)應(yīng)用的適當(dāng)結(jié)構(gòu)是本領(lǐng)域普通技術(shù)人員的實(shí)踐。[0044]然而,注意,雖然本文通過說明提供了諸如全向路徑TM之類的高端結(jié)構(gòu),但更一般地,結(jié)構(gòu)170可以是用于特定應(yīng)用的任何合適的互連或總線。在某些情況下,這可能包括如局域網(wǎng)(LAN)、令牌環(huán)網(wǎng)、同步光網(wǎng)絡(luò)(SONET)、異步傳輸模式(ATM)網(wǎng)絡(luò)、無(wú)線網(wǎng)絡(luò)(諸如將出現(xiàn)新的網(wǎng)絡(luò)技術(shù)來(lái)補(bǔ)充或替代這里列出的技術(shù)中的一些,并且任何此類未來(lái)的網(wǎng)絡(luò)拓?fù)浜图夹g(shù)可以是結(jié)構(gòu)170的一部分或形成結(jié)構(gòu)170的一部分。[0045]在某些實(shí)施例中,如OSI七層網(wǎng)絡(luò)模型中最初概述的,結(jié)構(gòu)170可以在各個(gè)“層”上稱為“以太網(wǎng)”層(盡管在大型數(shù)據(jù)中心中,以太網(wǎng)通常已被更新的技術(shù)所取代)。層3和層4通常被稱為傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)層(其可以進(jìn)一步細(xì)分為TCP和IP層)。層5至[0046]圖2是根據(jù)本說明書的一個(gè)或多個(gè)示例的數(shù)據(jù)中心200的框圖。在各實(shí)施例中,數(shù)據(jù)中心200可以與圖1的網(wǎng)絡(luò)100相同,或者可以是不同的數(shù)據(jù)中心。圖2中提供了附加的視圖,以說明數(shù)據(jù)中心200的不同方面。以是虛擬機(jī)管理器、管理程序、域0、或針對(duì)虛擬機(jī)的其他管理實(shí)體構(gòu)170相同,或者可以是不同的結(jié)構(gòu)。如上所述,可以通過任何適當(dāng)?shù)幕ミB技術(shù)來(lái)提供結(jié)構(gòu)270。在此示例中,英特爾R全向路徑被用作說明性和非限制性示例。[0048]如圖所示,數(shù)據(jù)中心200包括形成多個(gè)節(jié)點(diǎn)的多個(gè)邏輯元件。應(yīng)當(dāng)理解,每個(gè)節(jié)點(diǎn)可以由物理服務(wù)器、一組服務(wù)器、或其他硬件提供。每個(gè)服務(wù)器可以運(yùn)行一個(gè)或多個(gè)適合其應(yīng)用的虛擬機(jī)。[0049]節(jié)點(diǎn)0208是包括處理器插槽0和處理器插槽1的處理節(jié)點(diǎn)。處理器可以是例如具有多個(gè)核(例如4或8個(gè)核)的英特爾⑧至強(qiáng)T(Xeon處理器。節(jié)點(diǎn)0208可以被配置成例如通過主管多個(gè)虛擬機(jī)或虛擬設(shè)備來(lái)提供網(wǎng)絡(luò)或工作負(fù)載功能。[0050]可以通過板上上行鏈路278提供處理器插槽0和處理器插槽1之間的板上通信。這可以在兩個(gè)處理器插槽之間提供非常高速度、短長(zhǎng)度的互連,以使得在節(jié)點(diǎn)0208上運(yùn)行的9系統(tǒng)上的處理器集成。這提供了HFI272與處理器插槽[0054]在此示例中,節(jié)點(diǎn)1存儲(chǔ)器服務(wù)器204和節(jié)點(diǎn)2存儲(chǔ)服務(wù)器210提供節(jié)點(diǎn)0208的操作存儲(chǔ)器和存儲(chǔ)能力。例如,存儲(chǔ)器服務(wù)器節(jié)點(diǎn)1204可以提供遠(yuǎn)程直接存儲(chǔ)器訪問它將如何訪問其自己的板上存儲(chǔ)器。由存儲(chǔ)器服務(wù)器204提供的存儲(chǔ)器可以是易失性的傳DRAM的速度操作但是非易失性的更獨(dú)特類型的存儲(chǔ)器(諸如持久快速存儲(chǔ)器(PFM),如英特[0055]類似地,可以提供存儲(chǔ)服務(wù)器節(jié)點(diǎn)2210,而不是為節(jié)點(diǎn)0208提供板上硬盤。存儲(chǔ)[0056]因此,在執(zhí)行其指定的功能時(shí),節(jié)點(diǎn)0208可以從存儲(chǔ)器服務(wù)器204訪問存儲(chǔ)器并[0057]通過進(jìn)一步的說明,還描繪了節(jié)點(diǎn)3206。節(jié)點(diǎn)3206也包括HFI272,以及通過上以不需要依賴于存儲(chǔ)器服務(wù)器204和存儲(chǔ)服務(wù)器210.然而,在適當(dāng)?shù)那闆r下,節(jié)點(diǎn)3206可以類似于節(jié)點(diǎn)0208用分布式資源來(lái)補(bǔ)充其自己的板上存儲(chǔ)器222和存儲(chǔ)設(shè)備250。[0058]本文公開的各組件的基本構(gòu)建塊可以稱為“邏輯元件”。邏輯元件可以包括硬件的計(jì)算機(jī)可讀介質(zhì)提供,該計(jì)算機(jī)可讀介質(zhì)具有存儲(chǔ)在其上的、用于指示處理器執(zhí)行某個(gè)任務(wù)的可執(zhí)行指令。此類非暫態(tài)介質(zhì)可以包括例如硬盤、固態(tài)存儲(chǔ)器或盤、只讀存儲(chǔ)器云存儲(chǔ)、或前述的任意組合作為非限制性示例。此類介質(zhì)還可以包括編程到FPGA中的指令或在ASIC或處理器上的硬件中編碼的指令。[0059]圖3是根據(jù)本說明書的一個(gè)或多個(gè)示例的計(jì)算系統(tǒng)300的框圖。在此示例中,計(jì)算系統(tǒng)300被配置成在主機(jī)平臺(tái)302上提供一個(gè)或多個(gè)信任域。如上文所述,每個(gè)信任域312可以有其自己的私鑰314。每個(gè)私鑰314可用于對(duì)TD“擁有”的任何存儲(chǔ)器頁(yè)進(jìn)行簽名、加密和解密。[0060]在此示例中,主機(jī)平臺(tái)302包括一個(gè)或多個(gè)處理器304,該一個(gè)或多個(gè)處理器304包[0061]在各實(shí)施例中,MKTME引擎306可在硬件中提供,例如以直接編碼在硅中的指令形式提供,或以微代碼形式提供。在其他實(shí)施例中,MKTME引擎306也可以在只讀存儲(chǔ)器、閃存或運(yùn)行在受保護(hù)存儲(chǔ)器區(qū)域中(諸如在受信任執(zhí)行環(huán)境(TEE)中)的軟件中提供。[0062]主機(jī)平臺(tái)302還包括可以在各個(gè)虛擬機(jī)之間被分區(qū)的物理存儲(chǔ)器308。因此,VMM330供應(yīng)具有其自己的私鑰314的信任域312,并將一個(gè)或多個(gè)存儲(chǔ)器頁(yè)(即4KB的存儲(chǔ)器頁(yè))分配給該TD312.VMM330包括擴(kuò)展存儲(chǔ)器映射,該擴(kuò)展存儲(chǔ)器映射包括針對(duì)每個(gè)TD312將主機(jī)物理地址映射到客戶機(jī)物理地址的主機(jī)物理映射320。射到GPM316-2,其中HPM320-2映射由TD312-2擁有的存儲(chǔ)器塊。[0064]HPM320-3映射到GPM316-2.HPM320-3是由TD312-3擁有的一個(gè)或多個(gè)存儲(chǔ)器頁(yè)的映射。[0065]在此示例中,每個(gè)TD312可以供應(yīng)駐留在由TD擁有的存儲(chǔ)器內(nèi)的一個(gè)或多個(gè)虛擬VMM330不能查看或干擾任何TD312的狀態(tài)。此外,主機(jī)平臺(tái)302上的受損的或惡意的TD或不受信任的VM不能查看或干擾任何TD312。[0067]因此,對(duì)于受損主機(jī)可用的唯一攻擊向量是攻擊VMM330上的擴(kuò)展存儲(chǔ)器映射。[0068]如上文所述,在某些先前的實(shí)現(xiàn)方式中,通過使將HPM320映射到GPM316的擴(kuò)展11存儲(chǔ)器表放置在專用于微架構(gòu)的特殊存儲(chǔ)器位置中來(lái)保護(hù)它。[0069]然而,本說明書的MKTME引擎306的實(shí)施例被配置成提供可以被安全地放置在主存儲(chǔ)器中并且仍然維持TD312的完整性的CMOT。這可以通過將擴(kuò)展存儲(chǔ)器表放置到由CPU經(jīng)由PMRR控制的存儲(chǔ)器區(qū)域中來(lái)實(shí)現(xiàn),使得軟件進(jìn)程不能訪問該存儲(chǔ)器范圍。為了進(jìn)一步保[0070]為了進(jìn)一步確保CMOT不被損壞,可以提供完整性字段,該完整性字段可以包括由所屬的TD的相應(yīng)私鑰314簽名的條目的密碼散列。因此,MKTME引擎306可以確信存儲(chǔ)器頁(yè)沒有被篡改,因?yàn)槿绻鎯?chǔ)器頁(yè)被篡改,則密碼散列將不再有效。[0071]下文提供了CMOT的示例。該示例應(yīng)被理解為非限制性和說明性示例,并且應(yīng)理解,本說明書的教導(dǎo)的實(shí)施例可以制作仍實(shí)現(xiàn)該說明書的教導(dǎo)的不同形式的CMOT。字段尺寸(位)描述Page_Free(頁(yè)_空1被分配)11=未分配給任何TD,可由CSPSW訪問;0=TD頁(yè)(可能未被分配)被阻止)11=分配給TD(由TD_ID指定);0=未分配給任何TD(瞬態(tài))1被阻止的頁(yè)-用于存儲(chǔ)器管理的占位符用于TD控制結(jié)構(gòu)的4KB頁(yè)幀的40位3指示軟件訪問受限的TD頁(yè)類型,諸如TDCS、TDTCS…Valid(有效)預(yù)期引用的4KB客戶機(jī)物理地址[0073]圖4是圖示了本說明書的教導(dǎo)的附加方面的計(jì)算系統(tǒng)400的框圖。412,該VMM412被配置成提供一個(gè)或多個(gè)信任域440。[0075]當(dāng)VMM412供應(yīng)多個(gè)虛擬機(jī)或受信任域時(shí),它為每個(gè)虛擬機(jī)或受信任域建立擴(kuò)展420,VMM412可以供應(yīng)虛擬機(jī)控[0076]當(dāng)VMM412供應(yīng)不受信任的VM428時(shí),它不僅具有對(duì)不受信任的VM的EPT的可見性,而且還具有對(duì)不受信任的VM的內(nèi)部存儲(chǔ)器映射的可見性。這包括GPM到GVM的映射。這給予VMM412對(duì)不受信任的VM428的完全的可見性以及對(duì)不受信任的VM428的控制。在不受HPM到GPM的映射,而VMCS可以包括GPM到GVM的映射。盡管這適用于許多計(jì)算任務(wù),但是有些任務(wù)需要建立信任域,以使得可以將VMM的操作保持為私有,并且保護(hù)VMM的操作免遭其他TD1440-1建立EPT416-1,并且為TD2440-2建立EPT416-2.VMM412必須具有對(duì)EPT416的可見性并具有對(duì)EPT416的控制。然而,為了確保惡意VM或損壞的VMM不會(huì)篡改EPT416,CMOT408在硬件平臺(tái)404的存儲(chǔ)器中被提供,并且可以包括有用的字段(諸如,TDCS指針和完整性字段)以確保EPT416未被修改。440-2包括KD2424-2。[0078]每個(gè)TD440可以供應(yīng)一個(gè)或多個(gè)受信任的VM(TVM)432.對(duì)于每個(gè)TVM432,TD440[0081]如該圖所示,每個(gè)TD440維持其自己的單獨(dú)KD424,單獨(dú)KD424包括TD406采用CMOT408以確保EPT416不被損壞或被篡改。它還防止諸如重播攻擊之類的攻擊和其他干擾。[0082]圖5是可以結(jié)合本說明書的教導(dǎo)來(lái)執(zhí)行的方法500的流程圖。[0083]從框504開始,處理器可能遇到頁(yè)未命中?;陧?yè)未命中,PMH可以走查此分頁(yè)結(jié)[0084]在判定框508中,諸如MKTME引擎之類的處理器可以判斷是否存在分頁(yè)結(jié)構(gòu)配置錯(cuò)[0085]在框516中,當(dāng)處理器正在走查存儲(chǔ)器頁(yè)時(shí),它可以針對(duì)它在其物理地址空間中使查是否與CMOT中的條目匹配。這可以包括確保TDCS指針具有正確的值以及確保CMOT條目尚未經(jīng)由完整性字段被篡改。址空間ID(ASID)標(biāo)簽。[0089]在判定框532中,[0090]返回到框532,如果CMOT指定了不同的密鑰,則在框540中,處理器利用指定的密鑰域標(biāo)識(shí)符(KDID)替代較高物理地址位。[0092]注意,在上文所示流程500中,對(duì)于正在執(zhí)行的TD,PMH可以正常地走查頁(yè)表和擴(kuò)展頁(yè)表。在終端走查時(shí),PMH訪問與從頁(yè)走查中找到的物理地址相關(guān)聯(lián)的CMOT條目。它使用正以確保其沒有被損壞。[0093]CMOT利用信任域的密鑰進(jìn)行加密將物理地址映射到客戶機(jī)物理地址。主機(jī)(VMM)新穎指令。租戶的TD確保利用密鑰進(jìn)行加密的CMOT條目是正確的。TDADD指令使用TD的映射來(lái)驗(yàn)證條目。么它對(duì)TLB進(jìn)行高速緩存。否則,它退出。如否則它可以映射到較大頁(yè)。它還可以驗(yàn)證許可和其他租戶策略。許可加密版本有效狀態(tài)115N3YA223N2YA331Y1YA144RN3YA252XN2NF[0096]上表說明了如何可以利用TD的私鑰或KeyID對(duì)CMOT表?xiàng)l目進(jìn)行加密。MKTME引擎以高速緩存行粒度對(duì)存儲(chǔ)器進(jìn)行加密,這表明CMOT條目的大小可以為512位,以符合高速緩存行。然而,因?yàn)樵谀承?shí)施例中該結(jié)構(gòu)獨(dú)占地由CPU管理,因此使用部分權(quán)限并將每個(gè)條目限制為AES塊尺寸(諸如128位)是可能的。因此,該表可以對(duì)齊,以使得每個(gè)條目都映射到128位對(duì)齊的TME塊尺寸。AES塊的任何部分的損壞都會(huì)同樣地?fù)p壞所有位,從而導(dǎo)致完整性512位的存儲(chǔ)器行進(jìn)行解密。如果不同的密鑰用于對(duì)行上的不同條目進(jìn)行加密和部分寫入,則這些條目被損壞,但是PMH利用正確的KeyID訪問和讀取的特定條目是正確的。[0097]在一些實(shí)施例中,除了完整性值之外或代替完整性值,還可以指定版本號(hào)。這允許以使用TD的當(dāng)前版本(例如,TD的受保護(hù)CPU寄存器計(jì)數(shù)器),并將該值與存儲(chǔ)在MOT條目中的值進(jìn)行比較,以確保MOT條目沒有從某些先前狀態(tài)重播。[0098]最后,其他值可用于完整性或防止重播。例如,TD的當(dāng)前上下文或CR3值可以存儲(chǔ)在MOT條目字段中,以將條目綁定到特定的CR3或上下文。類似地,可以在表中指定線性地址(LA),其中PMH可以檢查L(zhǎng)A(除了GPA之外)是否對(duì)應(yīng)于MOT條目中指定的LA,否則退出。因?yàn)椴⒎撬蠧MOT條目都可以始終檢查上下文/LA,所以可以使用位字段來(lái)確定是否應(yīng)該為特定的CMOT條目檢查L(zhǎng)A或上下文。這可能對(duì)輸入/輸出操作有用。[0099]以下附圖中的某些附圖詳述用于實(shí)現(xiàn)上文的實(shí)施例的示例架構(gòu)和系統(tǒng)。在一些實(shí)施例中,上文所描述的一個(gè)或多個(gè)硬件組件和/或指令如下文所詳述地被仿真,或被實(shí)現(xiàn)為軟件模塊。[0100]在某些示例中,(多個(gè))指令可以以下文詳述的“通用向量友好指令格式”具體化。尋址等的描述通常適用于上文(多個(gè))指令的實(shí)施例的描述。另外,在下文中詳述示例系統(tǒng)、每一條指令使用給定的指令格式(并且如果經(jīng)定義,則按照該指令格式的指令模板中的給ADD指令具有特定的操作碼和指令格式(該指令格式包括用于指定該操作碼的操作碼字段和用于選擇操作數(shù)的操作數(shù)字段(源1/目的地以及源2));并且該ADD指令在指令流中出現(xiàn)將使得在選擇特定操作數(shù)的操作數(shù)字段中具有特定的內(nèi)容。已經(jīng)推出和/或發(fā)布了被稱為[0105]向量友好指令格式是適于向量指令的指令格式(例如,存在專用于向量操作的某的框圖。圖6a是圖示根據(jù)本說明書的實(shí)施例的通用向量友好指令格式及其A類指令模板的框圖;而圖6b是圖示根據(jù)本說明書的實(shí)施例的通用向量友好指令格式及其B類指令模板的作數(shù)長(zhǎng)度(或尺寸)與32位(4字節(jié))或64位(8字節(jié))數(shù)據(jù)元素寬度(或尺寸)(并且由此,64字節(jié)向量由16個(gè)雙字尺寸的元素組成,或者替代地由8個(gè)四字尺寸的元素組成);64字節(jié)向量操作數(shù)長(zhǎng)度(或尺寸)與16位(2字節(jié))或8位(1字節(jié))數(shù)據(jù)元素寬度(或尺寸);32字節(jié)向量操(或尺寸);以及16字節(jié)向量操作數(shù)長(zhǎng)度(或尺寸)與32位(4字節(jié))、64位(8字節(jié))、16位(2字向量操作數(shù)尺寸(例如,256字節(jié)向量操作數(shù))與更大、更小或不同的數(shù)據(jù)元素寬度(例如,[0108]圖6a中的A類指令模板包括:1)在無(wú)存儲(chǔ)器訪問605的指令模板內(nèi),示出無(wú)存儲(chǔ)器訪問的完全舍入控制型操作610的指令模板、以及無(wú)存儲(chǔ)器訪問的數(shù)據(jù)變換型操作615的指令模板;以及2)在存儲(chǔ)器訪問620的指令模板內(nèi),示出存儲(chǔ)器訪問的時(shí)效性625的指令模板和存儲(chǔ)器訪問的非時(shí)效性630的指令模板。圖6b中的B類指令模板包括:1)在無(wú)存儲(chǔ)器訪問605的指令模板內(nèi),示出無(wú)存儲(chǔ)器訪問的寫掩碼控制的部分舍入控制型操作612的指令模板以及無(wú)存儲(chǔ)器訪問的寫掩碼控制的VSIZE型操作617的指令模板;以及2)在存儲(chǔ)器訪問620的指令模板內(nèi),示出存儲(chǔ)器訪問的寫掩碼控制627的指令模板。[0109]通用向量友好指令格式600包括以下列出的按照在圖6a-圖6b中圖示的順序的如下字段。[0110]格式字段640一該字段中的特定值(指令格式標(biāo)識(shí)符值)唯一地標(biāo)識(shí)向量友好指令格式,并且由此標(biāo)識(shí)指令在指令流中以向量友好指令格式出現(xiàn)。由此,該字段對(duì)于僅具有通用向量友好指令格式的指令集是不需要的,在這個(gè)意義上該字段是任選的。[0111]基礎(chǔ)操作字段642—其內(nèi)容區(qū)分不同的基礎(chǔ)操作。[0112]寄存器索引字段644-其內(nèi)容直接或者通過地址生成來(lái)指定源和目的地操作數(shù)在寄存器中或者在存儲(chǔ)器中的位置。這些字段包括足夠數(shù)量的位以從PxQ(例如,32x512、16x128、32x1024、64x1024)寄存器堆中選擇N個(gè)寄存器。盡管在一個(gè)實(shí)施例中N可多達(dá)三個(gè)源寄存器和一個(gè)目的地寄存器,但是替代實(shí)施例可支持更多或更少的源寄存器和目的地寄存器(例如,可支持多達(dá)兩個(gè)源寄存器,其中這些源寄存器中的一個(gè)還用作目的地寄存器;可支持多達(dá)三個(gè)源寄存器,其中這些源寄存器中的一個(gè)還用作目的地寄存器;或可支持多達(dá)兩個(gè)源寄存器和一個(gè)目的地寄存器)。[0113]修飾符(modifier)字段646—其內(nèi)容將指定存儲(chǔ)器訪問的以通用向量指令格式出現(xiàn)的指令與不指定存儲(chǔ)器訪問的以通用向量指令格式出現(xiàn)的指令區(qū)分開;即在無(wú)存儲(chǔ)器訪問605的指令模板與存儲(chǔ)器訪問620的指令模板之間進(jìn)行區(qū)分。存儲(chǔ)器訪問操作讀取和/或?qū)懭氲酱鎯?chǔ)器層次結(jié)構(gòu)(在一些情況下,使用寄存器中的值來(lái)指定源和/或目的地地址),而非存儲(chǔ)器訪問操作不這樣(例如,源和目的地是寄存器)。盡管在一個(gè)實(shí)施例中,該字段還在三種不同的方式之間選擇以執(zhí)行存儲(chǔ)器地址計(jì)算,但是替代實(shí)施例可支持更多、更少或不同的方式來(lái)執(zhí)行存儲(chǔ)器地址計(jì)算。[0114]擴(kuò)充操作字段650一其內(nèi)容區(qū)分除基礎(chǔ)操作以外還要執(zhí)行各種不同操作中的哪一個(gè)操作。該字段是針對(duì)上下文的。在本說明書的一個(gè)實(shí)施例中,該字段被分成類字段668、α字段652和β字段654。擴(kuò)充操作字段650允許在單條指令而非2條、3條或4條指令中執(zhí)行多組共同的操作。[0115]比例字段660—其內(nèi)容允許用于存儲(chǔ)器地址生成(例如,用于使用2比例*索引+基址的地址生成)的索引字段的內(nèi)容按比例縮放。[0116]位移字段662A一其內(nèi)容用作存儲(chǔ)器地址生成的部分(例如,用于使用2比*索引+基址+位移的地址生成)。[0117]位移因數(shù)字段662B(注意,位移字段662A直接在位移因數(shù)字段662B上的并置指示使用一個(gè)或另一個(gè))一其內(nèi)容用作地址生成的一部分,它指定通過存儲(chǔ)器訪問的尺寸(N)按比例縮放的位移因數(shù),其中N是存儲(chǔ)器訪問中的字節(jié)數(shù)量(例如,用于使用2比例*索引+基址+按比例縮放的位移的地址生成)。忽略冗余的低階位,并且因此將位移因數(shù)字段的內(nèi)容乘以存儲(chǔ)器操作數(shù)的總尺寸(N)以生成將在計(jì)算有效地址中使用的最終位移。N的值由處理器硬件在運(yùn)行時(shí)基于完整操作碼字段674(稍后在本文中描述)和數(shù)據(jù)操縱字段654C確定。位移字段662A和位移因數(shù)字段662B不用于無(wú)存儲(chǔ)器訪問605的指令模板和/或不同的實(shí)施例可實(shí)現(xiàn)這兩者中的僅一個(gè)或不實(shí)現(xiàn)這兩者中的任一個(gè),在此意義上,位移字段662A和位移因數(shù)字段662B是任選的。[0118]數(shù)據(jù)元素寬度字段664-其內(nèi)容區(qū)分使用多個(gè)數(shù)據(jù)元素寬度中的哪一個(gè)(在一些實(shí)施例中用于所有指令;在其他實(shí)施例中只用于一些指令)。如果支持僅一個(gè)數(shù)據(jù)元素寬度和/或使用操作碼的某一方面來(lái)支持?jǐn)?shù)據(jù)元素寬度,則該字段是不需要的,在這個(gè)意義上,該字段是任選的。[0119]寫掩碼字段670—其內(nèi)容逐數(shù)據(jù)元素位置地控制目的地向量操作數(shù)中的數(shù)據(jù)元素位置是否反映基礎(chǔ)操作和擴(kuò)充操作的結(jié)果。A類指令模板支持合并-寫掩碼,而B類指令模板支持合并-寫掩碼和歸零-寫掩碼兩者。當(dāng)合并時(shí),向量掩碼允許在執(zhí)行(由基礎(chǔ)操作和擴(kuò)充操作指定的)任何操作期間保護(hù)目的地中的任何元素集免于更新--在一個(gè)實(shí)施例中,保持其中對(duì)應(yīng)掩碼位具有0的目的地的每一元素的舊值。相反,當(dāng)歸零時(shí),向量掩碼允許在執(zhí)行(由基礎(chǔ)操作和擴(kuò)充操作指定的)任何操作期間使目的地中的任何元素集歸零,在一個(gè)實(shí)施例中,目的地的元素在對(duì)應(yīng)掩碼位具有0值時(shí)被設(shè)為0。該功能的子集是控制正在被執(zhí)行的操作的向量長(zhǎng)度的能力(即,從第一個(gè)到最后一個(gè)正在被修改的元素的跨度);然而,被修改的元素不一定要是連續(xù)的。由此,寫掩碼字段670允許部分向量操作,這包括加術(shù)、邏輯等。盡管描述了其中寫掩碼字段670的內(nèi)容選擇了多個(gè)寫掩碼寄存器中的包含要使用的寫掩碼的一個(gè)寫掩碼寄存器(并且由此,寫掩碼字段670的內(nèi)容間接地標(biāo)識(shí)要執(zhí)行的掩碼)的本說明書的實(shí)施例,但是替代實(shí)施例替代地或附加地允許掩碼寫字段670的內(nèi)容直接指定要執(zhí)行的掩碼。[0120]立即數(shù)字段672一其內(nèi)容允許對(duì)立即數(shù)的指定。該字段在實(shí)現(xiàn)不支持立即數(shù)的通用向量友好格式中不存在且在不使用立即數(shù)的指令中不存在,在這個(gè)意義上,該字段是任選的。[0121]類字段668一其內(nèi)容在不同類的指令之間進(jìn)行區(qū)分。參考圖6a-圖6b,該字段的內(nèi)容在A類指令和B類指令之間進(jìn)行選擇。在圖6a-圖6b中,使用圓角方形來(lái)指示在字段中存在專用值(例如,在圖6a-圖6b中,分別是針對(duì)類字段668的A類668A和B類668B)。[0122]A類指令模板[0123]在A類非存儲(chǔ)器訪問605的指令模板的情況下,α字段652被解釋為其內(nèi)容區(qū)分要執(zhí)行不同擴(kuò)充操作類型中的哪一種(例如,針對(duì)無(wú)存儲(chǔ)器訪問的舍入型操作610和無(wú)存儲(chǔ)器訪問的數(shù)據(jù)變換型操作615的指令模板分別指定舍入652A.1和數(shù)據(jù)變換652A.2)的RS字段652A,而β字段654區(qū)分要執(zhí)行指定類型的操作中的哪一種。在無(wú)存儲(chǔ)器訪問605的指令模板[0124]無(wú)存儲(chǔ)器訪問的指令模板——完全舍入控制型操作[0125]在無(wú)存儲(chǔ)器訪問的完全舍入控制型操作610的指令模板中,β字段654被解釋為其內(nèi)容提供靜態(tài)舍入的舍入控制字段654A。盡管在本說明書的所描述的實(shí)施例中舍入控制字段654A包括抑制所有浮點(diǎn)異常(SAE)字段656和舍入操作控制字段658,但是替代實(shí)施例可將這兩個(gè)概念編碼為同一字段,或僅具有這些概念/字段中的一個(gè)或另一個(gè)(例如,可僅具有舍入操作控制字段658)。[0126]SAE字段656—其內(nèi)容區(qū)分是否停用異常事件報(bào)告;當(dāng)SAE字段656的內(nèi)容指示啟用抑制時(shí),給定指令不報(bào)告任何種類的浮點(diǎn)異常標(biāo)志且不喚起任何浮點(diǎn)異常處理程序。[0127]舍入操作控制字段658一其內(nèi)容區(qū)分要執(zhí)行一組舍入操作中的哪一個(gè)(例如,向上舍入模式。在其中處理器包括用于指定舍入模式的控制寄存器的本說明書的一個(gè)實(shí)施例中,舍入操作控制字段650的內(nèi)容覆蓋該寄存器值。[0128]無(wú)存儲(chǔ)器訪問的指令模板—數(shù)據(jù)變換型操作[0129]在無(wú)存儲(chǔ)器訪問的數(shù)據(jù)變換型操作615的指令模板中,β字段654被解釋為數(shù)據(jù)變換字段654B,其內(nèi)容區(qū)分要執(zhí)行多個(gè)數(shù)據(jù)變換中的哪一個(gè)(例如,無(wú)數(shù)據(jù)變換、混合、廣播)。[0130]在A類存儲(chǔ)器訪問620的指令模板的情況下,α字段652被解釋為驅(qū)逐提示字段652B,其內(nèi)容區(qū)分要使用驅(qū)逐提示中的哪一個(gè)(在圖6a中,對(duì)于存儲(chǔ)器訪問時(shí)效性625的指令模板和存儲(chǔ)器訪問非時(shí)效性630的指令模板分別指定時(shí)效性的652B.1和非時(shí)效性的652B.2),而β字段654被解釋為數(shù)據(jù)操縱字段654C,其內(nèi)容區(qū)分要執(zhí)行多個(gè)數(shù)據(jù)操縱操作(也稱為基元(primitive))中的哪一個(gè)(例如,無(wú)操縱、廣播、源的向上轉(zhuǎn)換以及目的地的向下轉(zhuǎn)換)。存儲(chǔ)器訪問620的指令模板包括比例字段660,并任選地包括位移字段662A或位移比例字段662B。[0131]向量存儲(chǔ)器指令使用轉(zhuǎn)換支持來(lái)執(zhí)行來(lái)自存儲(chǔ)器的向量加載以及向存儲(chǔ)器的向量存儲(chǔ)。如同尋常的向量指令,向量存儲(chǔ)器指令以數(shù)據(jù)元素式的方式從/向存儲(chǔ)器傳輸數(shù)據(jù),其中實(shí)際傳輸?shù)脑赜杀贿x為寫掩碼的向量掩碼的內(nèi)容規(guī)定。[0132]存儲(chǔ)器訪問的指令模板——時(shí)效性的[0133]時(shí)效性的數(shù)據(jù)是可能足夠快地重新使用以從高速緩存操作受益的數(shù)據(jù)。然而,這是提示,并且不同的處理器能以不同的方式實(shí)現(xiàn)它,包括完全忽略該提示。[0134]存儲(chǔ)器訪問的指令模板——非時(shí)效性的[0135]非時(shí)效性的數(shù)據(jù)是不可能足夠快地重新使用以從第1級(jí)高速緩存中的高速緩存操作受益且應(yīng)當(dāng)被給予驅(qū)逐優(yōu)先級(jí)的數(shù)據(jù)。然而,這是提示,并且不同的處理器能以不同的方[0136]B類指令模板[0137]在B類指令模板的情況下,a字段652被解釋為寫掩碼控制(Z)字段652C,其內(nèi)容區(qū)分由寫掩碼字段670控制的寫掩碼操作應(yīng)當(dāng)是合并還是歸零。[0138]在B類非存儲(chǔ)器訪問605的指令模板的情況下,β字段654的部分被解釋為RL字段657A,其內(nèi)容區(qū)分要執(zhí)行不同擴(kuò)充操作類型中的哪一種(例如,針對(duì)無(wú)存儲(chǔ)器訪問的寫掩碼控制的部分舍入控制型操作612的指令模板和無(wú)存儲(chǔ)器訪問的寫掩碼控制的VSIZE型操作617的指令模板分別指定舍入657A.1和向量長(zhǎng)度(VSIZE)657A.2),而β字段654的其余部分區(qū)分要執(zhí)行指定類型的操作中的哪一種。在無(wú)存儲(chǔ)器訪問605指令模板中,比例字段660、位移字段662A和位移比例字段662B不存在。[0139]在無(wú)存儲(chǔ)器訪問的寫掩碼控制的部分舍入控制型操作610的指令模板中,β字段654的其余部分被解釋為舍入操作字段659A,并且停用異常事件報(bào)告(給定指令不報(bào)告任何種類的浮點(diǎn)異常標(biāo)志且不喚起任何浮點(diǎn)異常處理程序)。[0140]舍入操作控制字段659A一正如舍入操作控制字段658,其內(nèi)容區(qū)分要執(zhí)行一組舍控制字段659A允許逐指令地改變舍入模式。在其中處理器包括用于指定舍入模式的控制寄存器的本說明書的一個(gè)實(shí)施例中,舍入操作控制字段650的內(nèi)容覆蓋該寄存器值。[0141]在無(wú)存儲(chǔ)器訪問的寫掩碼控制的VSIZE型操作617的指令模板中,β字段654的其余部分被解釋為向量長(zhǎng)度字段659B,其內(nèi)容區(qū)分要執(zhí)行多個(gè)數(shù)據(jù)向量長(zhǎng)度中的哪一個(gè)(例如,[0142]在B類存儲(chǔ)器訪問620的指令模板的情況下,β字段654的部分被解釋為廣播字段657B,其內(nèi)容區(qū)分是否要執(zhí)行廣播型數(shù)據(jù)操縱操作,而β字段654的其余部分由向量長(zhǎng)度字段659B解釋。存儲(chǔ)器訪問620的指令模板包括比例字段660,并任選地包括位移字段662A或位移比例字段662B。[0143]針對(duì)通用向量友好指令格式600,示出完整操作碼字段674包括格式字段640、基礎(chǔ)操作字段642以及數(shù)據(jù)元素寬度字段664。盡管示出了其中完整操作碼字段674包括所有這些字段的一個(gè)實(shí)施例,但是在不支持所有這些字段的實(shí)施例中,完整操作碼字段674包括少于所有的這些字段。完整操作碼字段674提供操作代碼(操作碼)。[0144]擴(kuò)充操作字段650、數(shù)據(jù)元素寬度字段664以及寫掩碼字段670允許逐指令地以通用向量友好指令格式指定這些特征。[0145]寫掩碼字段和數(shù)據(jù)元素寬度字段的組合創(chuàng)建各種類型的指令,因?yàn)檫@些指令允許基于不同的數(shù)據(jù)元素寬度應(yīng)用該掩碼。[0146]在A類和B類內(nèi)出現(xiàn)的各種指令模板在不同的情形下是有益的。在本說明書的一些實(shí)施例中,不同處理器或處理器內(nèi)的不同核可僅支持A類、僅支持B類、或者可支持這兩類。舉例而言,旨在用于通用計(jì)算的高性能通用亂序核可僅支持B類,旨在主要用于圖形和/或科學(xué)(吞吐量)計(jì)算的核可僅支持A類,并且旨在用于通用計(jì)算和圖形和/或科學(xué)(吞吐量)計(jì)算兩者的核可支持A類和B類兩者(當(dāng)然,具有來(lái)自這兩類的模板和指令的一些混合、但是并非來(lái)自這兩類的所有模板和指令的核在本說明書的范圍內(nèi))。同樣,單個(gè)處理器可包括多個(gè)核,這些核全部都支持相同的類,或者其中不同的核支持不同的類。舉例而言,在具有單獨(dú)的圖形核和通用核的處理器中,圖形核中的旨在主要用于圖形和/或科學(xué)計(jì)算的一個(gè)核可僅支持A類,而通用核中的一個(gè)或多個(gè)可以是具有旨在用于通用計(jì)算的僅支持B類的亂序執(zhí)行和寄存器重命名的高性能通用核。不具有單獨(dú)的圖形核的另一處理器可包括既支持A類又支持B類的一個(gè)或多個(gè)通用有序或亂序核。當(dāng)然,在本說明書的不同的實(shí)施例中,來(lái)自一個(gè)類的特征也可以在其他類中實(shí)現(xiàn)。將使以高級(jí)語(yǔ)言編寫的程序成為(例如,及時(shí)編譯或靜態(tài)編譯)各種不同的可執(zhí)行形式,這些可執(zhí)行形式包括:1)僅具有用于執(zhí)行的目標(biāo)處理器支持的一類或多類的指令的形式;或者2)具有使用所有類的指令的不同組合而編寫的替代例程且具有選擇這些例程以基于由當(dāng)前正在執(zhí)行代碼的處理器支持的指令而執(zhí)行的控制流代碼的形式。[0147]示例專用向量友好指令格式[0148]圖7a是示出根據(jù)本說明書的實(shí)施例的示例專用向量友好指令格式的框圖。圖7a示出專用向量友好指令格式700,其指定各字段的位置、尺寸、解釋和次序、以及那些字段中的一些字段的值,在這個(gè)意義上,該專用向量友好指令格式700是專用的。專用向量友好指令格式700可用于擴(kuò)展x86指令集,并且由此字段中的一些字段與在現(xiàn)有的x86指令集及其擴(kuò)展(例如,AVX)中所使用的那些字段類似或相同。該格式保持與具有擴(kuò)展的現(xiàn)有x86指令集圖示出來(lái)自圖6a和圖6b的字段,來(lái)自圖2的字段映射到來(lái)自圖6a和圖6b的字段中。[0149]應(yīng)當(dāng)理解,雖然出于說明的目的在通用向量友好指令格式600的上下文中參考專用向量友好指令格式700描述了本說明書的實(shí)施例,但是本說明書不限于專用向量友好指令格式700,除非另有聲明。例如,通用向量友好指令格式600構(gòu)想了各種字段的各種可能的尺寸,而專用向量友好指令格式700示出為具有特定尺寸的字段。作為特定示例,盡管在專用向量友好指令格式700中數(shù)據(jù)元素寬度字段664被圖示為一位字段,但是本說明書不限于此(即,通用向量友好指令格式600構(gòu)想數(shù)據(jù)元素寬度字段664的其他尺寸)。[0150]通用向量友好指令格式600包括以下列出的按照?qǐng)D7a中圖示的順序的如下字段。[0151]EVEX前綴(字節(jié)0-3)702——以四字節(jié)形式進(jìn)行編碼。[0152]格式字段640(EVEX字節(jié)0,位[7:0])——第一字節(jié)(EVEX字節(jié)0)是格式字段640,并且它包含0x62(在一個(gè)實(shí)施例中,為用于區(qū)分向量友好指令格式的唯一值)。[0153]第二至第四字節(jié)(EVEX字節(jié)1-3)包括提供專用能力的多個(gè)位字段。[0154]REX字段705(EVEX字節(jié)1,位[7-5])一由EVEX.R位字段(EVEX字節(jié)1,位[7]-R)、EVEX.B位字段提供與對(duì)應(yīng)的VEX位字段相同的功能,并且使用1補(bǔ)碼的形式進(jìn)行編碼,即存器索引的較低的三個(gè)位(rrr、xxx和bbb)進(jìn)行編碼,使得可通過對(duì)EVEX.R、EVEX.X和[0155]REX'字段610一這是REX'字段610的第一部分,并且是用于對(duì)擴(kuò)展的32個(gè)寄存器集合的較高16個(gè)或較低16個(gè)寄存器進(jìn)行編碼的EVEX.R'位字段(EVEX字節(jié)1,位[4]-R')。在一個(gè)實(shí)施例中,該位與以下指示的其他位一起以位反轉(zhuǎn)的格式存儲(chǔ)以(在公知x86的32位模式下)與實(shí)操作碼字節(jié)是62的BOUND指令進(jìn)行區(qū)分,但是在MODR/M字段(在下文中描述)中不接受MOD字段中的值11;其他實(shí)施例不以反轉(zhuǎn)的格式存儲(chǔ)該指示的位以及下文中其他指示的位。值1用于對(duì)較低的16個(gè)寄存器進(jìn)行編碼。換句話說,通過組合自其他字段的其他RRR來(lái)形成R'Rrrr。[0156]操作碼映射字段715(EVEX字節(jié)1,位[3:0]-mmmm)-其內(nèi)容對(duì)隱含的前導(dǎo)操作碼字義數(shù)據(jù)類型(32位數(shù)據(jù)元素或64位數(shù)據(jù)元素)的粒度(尺寸)。[0158]EVEX.vvvv720(EVEX字節(jié)2,位[6:3]-vvvv)—EVEX.vvvv的作用可包括如下:1)EVEX.vvv對(duì)以反轉(zhuǎn)(1補(bǔ)碼)形式指定的第一源寄存器操作數(shù)進(jìn)行編碼,并且對(duì)具有兩個(gè)或更多個(gè)源操作數(shù)的指令有效;2)EVEX.vvvv對(duì)針對(duì)特定向量位移以1補(bǔ)碼的形式指定的目的地寄存器操作數(shù)進(jìn)行編碼;或者3)EVEX.vvvv不對(duì)任何操作數(shù)進(jìn)行編碼,該字段被預(yù)留,并且應(yīng)當(dāng)包含1111b。由此,EVEX.vvvv字段720對(duì)以反轉(zhuǎn)(1補(bǔ)碼)的形式存儲(chǔ)的第一源寄存器指定符的4個(gè)低階位進(jìn)行編碼。取決于該指令,額外不同的EVEX位字段用于將指定符尺寸擴(kuò)展到32個(gè)寄存器。[0159]EVEX.U168類字段(EVEX字節(jié)2,位[2]-U)一如果EVEX.U=0,則它指示A類或位。除了對(duì)以EVEX前綴格式的傳統(tǒng)SSE指令提供支持以外,這也具有壓縮SIMD前綴的益處(EVEX前綴僅需要2位,而不是需要字節(jié)來(lái)表達(dá)SIMD前綴)。在一個(gè)實(shí)施例中,為了支持使用SIMD前綴編碼為SIMD前綴編碼字段;并且在運(yùn)行時(shí)在提供給解碼器的PLA之前被擴(kuò)展為傳指令可將EVEX前綴編碼字段的內(nèi)容直接用作操作碼擴(kuò)展,但是為了一致性,特定實(shí)施例以類似的方式擴(kuò)展,但允許由這些傳統(tǒng)SIMD前綴指定的不同含義。替代實(shí)施例可重新設(shè)計(jì)PLA[0162]β字段654(EVEX字節(jié)3,位[6:4]-SSS,也稱為EVEX.s?-0、EVEX.r?-0、EVEX.rr1、[0163]REX'字段610—這是REX'字段的其余部分,并且是可用于對(duì)擴(kuò)展的32個(gè)寄存器集合的較高16個(gè)或較低16個(gè)寄存器進(jìn)行編碼的EVEX.V位字段(EVEX字節(jié)3,位[3]-V)。該位以位反轉(zhuǎn)的格式存儲(chǔ)。值1用于對(duì)較低的16個(gè)寄存器進(jìn)行編碼。換言之,通過組合EVEX.V'、[0164]寫掩碼字段670(EVEX字節(jié)3,位[2:0]-kkk)一其內(nèi)容指定寫掩碼寄存器中的寄存器索引,如先前所述。在一個(gè)實(shí)施例中,特定值EVEX.kkk=000具有暗示沒有寫掩碼用于特定指令的特殊行為(這可以各種方式實(shí)現(xiàn),包括使用硬連線到全部為1的寫掩碼或者旁路掩碼硬件的硬件來(lái)實(shí)現(xiàn))。[0165]實(shí)操作碼字段730(字節(jié)4)還被稱為操作碼字節(jié)。操作碼的部分在該字段中被指[0166]MODR/M字段740(字節(jié)5)包括MOD字段742、Reg字段744、以及R/M字段746。如先前所述的,MOD字段742的內(nèi)容將存儲(chǔ)器訪問操作和非存儲(chǔ)器訪問操作區(qū)分開。Reg字段744的作用可被歸結(jié)為兩種情形:對(duì)目的地寄存器操作數(shù)或源寄存器操作數(shù)進(jìn)行編碼;或者被視為操作碼擴(kuò)展,并且不用于對(duì)任何指令操作數(shù)進(jìn)行編碼。R/M字段746的作用可包括如下:對(duì)引用存儲(chǔ)器地址的指令操作數(shù)進(jìn)行編碼;或者對(duì)目的地寄存器操作數(shù)或源寄存器操作數(shù)進(jìn)行編碼。[0167]比例、索引、基址(SIB)字節(jié)(字節(jié)6)一如先前所述的,比例字段650的內(nèi)容用于存儲(chǔ)器地址生成。SIB.xxx754和SIB.bbb756——先前已經(jīng)針對(duì)寄存器索引Xxxx和Bbbb提及了這些字段的內(nèi)容。[0168]位移字段662A(字節(jié)7-10)一當(dāng)MOD字段742包含10時(shí),字節(jié)7-10是位移字段662A,并且它與傳統(tǒng)32位位移(disp32)一樣地工作,并且以字節(jié)粒度工作。[0169]位移因數(shù)字段662B(字節(jié)7)一當(dāng)MOD字段742包含01時(shí),字節(jié)7是位移因數(shù)字段662B。該字段的位置與以字節(jié)粒度工作的傳統(tǒng)x86指令集8位位移(disp8)的位置相同。由于disp8是符號(hào)擴(kuò)展的,因此它僅能在128和127字節(jié)偏移之間尋址;在64字節(jié)高速緩存行的方面,disp8使用可被設(shè)為僅四個(gè)真正有用的值-128、-64范圍,所以使用disp32;然而,disp32需要4個(gè)字662B是disp8的重新解釋;當(dāng)使用位移因數(shù)字段662B時(shí),通過將位移因數(shù)字段的內(nèi)容乘以存儲(chǔ)器操作數(shù)訪問的尺寸(N)來(lái)確定實(shí)際位移。該類型的位移被稱為disp8*N。這減小了平均指令長(zhǎng)度(用于位移的單個(gè)字節(jié),但具有大得多的范圍)。此類經(jīng)壓縮的位移基于有效位移是存儲(chǔ)器訪問的粒度的倍數(shù)的假設(shè),并且由此地址偏移的冗余低階位不需要被編碼。換言之,位移因數(shù)字段662B替代傳統(tǒng)x86指令集8位位移。由此,位移因數(shù)字段662B以與x86指令集8位位移相同的方式被編碼(因此,在ModRM/SIB編碼規(guī)則中沒有變化),唯一的不同在于,將disp8超載至disp8*N。換句話說,在編碼規(guī)則或編碼長(zhǎng)度方面沒有變化,而僅在由硬件對(duì)位移值的解釋方面有變化(這需要將位移按比例縮放存儲(chǔ)器操作數(shù)的尺寸以獲得字節(jié)式地址偏移)。立即數(shù)字段672如先前所描述地操作。[0170]完整操作碼字段[0171]圖7b是圖示出根據(jù)一個(gè)實(shí)施例的構(gòu)成完整操作碼字段674的專用向量友好指令格式700的字段的框圖。具體地,完整操作碼字段674包括格式字段640、基礎(chǔ)操作字段642和數(shù)據(jù)元素寬度(W字段664?;A(chǔ)操作字段642包括前綴編碼字段725、操作碼映射字段715和實(shí)操作碼字段730。[0173]圖7c是圖示根據(jù)一個(gè)實(shí)施例的構(gòu)成寄存器索引字段644的專用向量友好指令格式[0175]圖7d是圖示根據(jù)一個(gè)實(shí)施例的構(gòu)成擴(kuò)充操作字段650的具有專用向量友好指令格表明EVEX.U1(B類668B)。當(dāng)U=0且MOD字段74段654(EVEX字節(jié)3,位[6:4]-SSS)被解釋為舍入控制字段654A。舍入控制字段654A包括一位SAE字段656和兩位舍入操作字段658。當(dāng)rs字段652A包含0(數(shù)據(jù)變換652A.2)時(shí),β字段65401或10(表明存儲(chǔ)器訪問操作)時(shí),α字段652(EVEX字節(jié)3,位[7]-EH)被解釋為驅(qū)逐提示(EH)字段652B且β字段654(EVEX字節(jié)3,位[6:4]-SSS)被解釋為三位數(shù)據(jù)操縱字段654C。U=1且MOD字段742包含11(表明無(wú)存儲(chǔ)器訪問操作)時(shí),β字段654的一部分(EVEX字節(jié)3,位[4]-S。)被解釋為RL字段657A;當(dāng)它包含1(舍入657A.1)時(shí),β字段654的其余部分(EVEX字節(jié)3,位[6-5]-S2-1)被解釋為舍入操作字段659A,而當(dāng)RL字段657A包含0(VSIZE654.A2)時(shí),β字段654的其余部分(EVEX字節(jié)3,位[6-5]-S?-1)被解釋為向量長(zhǎng)度字段659B(EVEX字節(jié)3,位[6-5]-L?-0)。當(dāng)U=1且MOD字段742包含00、01或10(表明存儲(chǔ)器訪問操作)時(shí),β字段654(EVEX字節(jié)3,位[6:4]-SSS)被解釋為向量長(zhǎng)度字段659B(EVEX字節(jié)3,位[6-5]-L1-0)和廣播[0177]示例寄存器架構(gòu)[0178]圖8是根據(jù)一個(gè)實(shí)施例的寄存器架構(gòu)800的框圖。在所圖示的實(shí)施例中,有32個(gè)512位寬的向量寄存器810;這些寄存器被引用為zmm0到zmm31。256個(gè)位覆蓋(overlay)在寄存器ymm0-16上。較低的16個(gè)zmm寄存器的較低階128個(gè)位(ymm寄存器的較低階128個(gè)位)覆蓋在寄存器xmm0-15上。專用向量友好指令格式700對(duì)這些被覆蓋的寄存器堆操作,如在以下表格中所圖示。可調(diào)節(jié)向量長(zhǎng)度類操作寄存器不包括向量長(zhǎng)度字段659B的指令模板A(圖zmm寄存器(向量長(zhǎng)度是64字節(jié))B(圖zmm寄存器(向量長(zhǎng)度是64字節(jié))包括向量長(zhǎng)度字段659B的指令模板B(圖zmm、ymm、或xmm寄存器(向量取決于向量長(zhǎng)度字段659B[0181]換言之,向量長(zhǎng)度字段659B在最大長(zhǎng)度與一個(gè)或多個(gè)其他較短長(zhǎng)度之間進(jìn)行選擇,其中每一個(gè)此類較短長(zhǎng)度是前一長(zhǎng)度的一半;并且不具有向量長(zhǎng)度字段659B的指令模板在最大向量長(zhǎng)度上操作。此外,在一個(gè)實(shí)施例中,專用向量友好指令格式700的B類指令模板對(duì)緊縮或標(biāo)量單/雙精度浮點(diǎn)數(shù)據(jù)以及緊縮或標(biāo)量整數(shù)數(shù)據(jù)操作。標(biāo)量操作是對(duì)zmm/ymm/xmm寄存器中的最低階數(shù)據(jù)元素位置執(zhí)行的操作;取決于實(shí)施例,較高階數(shù)據(jù)元素位置要么保持與在指令之前相同,要么歸零。[0182]寫掩碼寄存器815——在所圖示的實(shí)施例中,有8個(gè)寫掩碼寄存器(k0到k7),每個(gè)寫掩碼寄存器的尺寸是64位。在替代實(shí)施例中,寫掩碼寄存器815的尺寸是16位。如先前所述,在一個(gè)實(shí)施例中,向量掩碼寄存器k0無(wú)法用作寫掩碼;當(dāng)正常指示k0的編碼用作寫掩碼時(shí),它選擇硬連線的寫掩碼0xFFFF,從而有效地停用該指令的寫掩碼操作。[0183]通用寄存器825——在所圖示的實(shí)施例中,存在十六個(gè)64位通用寄存器,這些寄存器與現(xiàn)有的x86尋址模式一起使用來(lái)對(duì)存儲(chǔ)器操作數(shù)尋址。這些寄存器通過名稱RAX、RBX、[0184]標(biāo)量浮點(diǎn)棧寄存器堆(x87棧)845,在其上面重疊了MMX緊縮整數(shù)平坦寄存器堆850——在所圖示的實(shí)施例中,x87棧是用于使用x87指令集擴(kuò)展來(lái)對(duì)32/64/80位浮點(diǎn)數(shù)據(jù)執(zhí)行標(biāo)量浮點(diǎn)操作的八元素棧;而MMX寄存器用于對(duì)64位緊縮整數(shù)數(shù)據(jù)執(zhí)行操作,以及為在[0185]其他實(shí)施例可以使用較寬的或較窄的寄存器。另外,替代實(shí)施例可以使用更多、更少或不同的寄存器堆和寄存器。[0187]處理器核能以不同方式、出于不同的目的、在不同的處理器中實(shí)現(xiàn)。例如,此類核的實(shí)現(xiàn)可以包括:1)旨在用于通用計(jì)算的通用有序核;2)旨在用于通用計(jì)算的高性能通用亂序核;3)旨在主要用于圖形和/或科學(xué)(吞吐量)計(jì)算的專用核。不同處理器的實(shí)現(xiàn)可包括:1)CPU,其包括旨在用于通用計(jì)算的一個(gè)或多個(gè)通用有序核和/或旨在用于通用計(jì)算的一個(gè)或多個(gè)通用亂序核;以及2)協(xié)處理器,其包括旨在主要用于圖形和/或科學(xué)吞吐量的一個(gè)或多個(gè)專用核。此類不同的處理器導(dǎo)致不同的計(jì)算機(jī)系統(tǒng)架構(gòu),這些計(jì)算機(jī)系統(tǒng)架構(gòu)可包括:1)在與CPU分開的芯片上的協(xié)處理器;2)在與CPU相同的封裝中但在分開的管芯上的協(xié)處理器;3)與CPU在相同管芯上的協(xié)處理器(在該情況下,此類協(xié)處理器有時(shí)被稱為專用邏輯或被稱為專用核,該專用邏輯諸如,集成圖形和/或科學(xué)(吞吐量)邏輯);以及4)芯片上系統(tǒng),其可以將所描述的CPU(有時(shí)被稱為(多個(gè))應(yīng)用核或(多個(gè))應(yīng)用處理器)、以上描述的協(xié)處理器和附加功能包括在同一管芯上。接著描述示例核架構(gòu),隨后描述示例處理器和計(jì)算機(jī)架構(gòu)。[0188]示例核架構(gòu)[0189]有序和亂序核框圖[0190]圖9a是圖示的示例有序流水線和示例寄存器重命名的亂序發(fā)布/執(zhí)行流水線兩者的框圖。圖9b是圖示要包括在處理器中的有序架構(gòu)核的實(shí)施例和示例寄存器重命名的、亂序發(fā)布/執(zhí)行架構(gòu)核兩者的框圖。圖9a-圖9b中的實(shí)線框示出了有序流水線和有序核,而可選增加的虛線框示出了寄存器重命名的、亂序發(fā)布/執(zhí)行流水線和核。考慮到有序方面是亂[0191]在圖9a中,處理器流水線900包括取出級(jí)902、長(zhǎng)度解碼級(jí)904、解碼級(jí)906、分配級(jí)908、重命名級(jí)910、調(diào)度(也被稱為分派或發(fā)布)級(jí)912、寄存器讀取/存級(jí)916、寫回/存儲(chǔ)器寫入級(jí)918、異常處置級(jí)922和提交級(jí)924。[0192]圖9b示出了包括耦合到執(zhí)行引擎單元950的前端單元930的處理器核990,且執(zhí)行引擎單元和前端單元兩者都耦合到存儲(chǔ)器單元970。核990可以是精簡(jiǎn)指令集計(jì)算(RISC)核、復(fù)雜指令集計(jì)算(CISC)核、超長(zhǎng)指令字(VLIW)核、或混合或替代的核類型。作為又一選[0193]前端單元930包括分支預(yù)測(cè)單元932,該分支預(yù)測(cè)單元932耦合到指令高速緩存單元934,該指令高速緩存單元934耦合到指令轉(zhuǎn)換后備緩沖器(TLB)936,該指令轉(zhuǎn)換后備緩沖器936耦合到指令取出單元938,該指令取出單元938耦合到解碼單元940。解碼單元940(或解碼器)可對(duì)指令進(jìn)行解碼,并且生成從原始指令解碼出的、或以其他方式反映原始指制信號(hào)作為輸出。解碼單元940可使用各種不同的機(jī)制來(lái)實(shí)現(xiàn)。合適機(jī)制的示例包括但不限于,查找表、硬件實(shí)現(xiàn)、可編程邏輯陣列(PLA)、微代碼只讀存儲(chǔ)器(ROM)等。在一個(gè)實(shí)施例中,核990包括存儲(chǔ)用于某些宏指令的微代碼的微代碼ROM或其他介質(zhì)(例如,在解碼單元940中,或以其他方式在前端單元930內(nèi))。解碼單元940耦合到執(zhí)行引擎單元950中的重命名/分配器單元952。[0194]執(zhí)行引擎單元950包括重命名/分配器單元952,該重命名/分配器單元952耦合到引退單元954和一個(gè)或多個(gè)調(diào)度器單元的集合956。調(diào)度器單元956表示任何數(shù)目的不同調(diào)度器,包括預(yù)留站、中央指令窗等。調(diào)度器單元956耦合到物理寄存器堆單元958。(多個(gè))物理寄存器堆單元958中的每一個(gè)物理寄存器堆單元表示一個(gè)或多個(gè)物理寄存器堆,其中不同的物理寄存器堆存儲(chǔ)一種或多種不同的數(shù)據(jù)類型,諸如標(biāo)量整數(shù)、標(biāo)量浮點(diǎn)、緊縮整數(shù)、在一個(gè)實(shí)施例中,(多個(gè))物理寄存器堆單元958包括向量寄存器單元、寫掩碼寄存器單元和標(biāo)量寄存器單元。這些寄存器單元可提供架構(gòu)向量寄存器、向量掩碼寄存器和通用寄存器。(多個(gè))物理寄存器堆單元958由引退單元954重疊,以圖示可實(shí)現(xiàn)寄存器重命名和亂序執(zhí)行的各種方式(例如,使用(多個(gè))重排序緩沖器和(多個(gè))引退寄存器堆;使用(多個(gè))未來(lái)文件、(多個(gè))歷史緩沖器以及(多個(gè))引退寄存器堆;使用寄存器映射和寄單元954和(多個(gè))物理寄存器堆單元958耦合到(多個(gè))執(zhí)行集群960。(多個(gè))執(zhí)行集群960包括一個(gè)或多個(gè)執(zhí)行單元的集合962和一個(gè)或多個(gè)存儲(chǔ)器訪問單元的集合964。執(zhí)行單元962整數(shù)、緊縮浮點(diǎn)、向量整數(shù)、向量浮點(diǎn))執(zhí)行。盡管一些實(shí)施例可以能集合的多個(gè)執(zhí)行單元,但是其他實(shí)施例可僅包括一個(gè)執(zhí)行單元或全都執(zhí)行所有功能的多個(gè)執(zhí)行單元。(多個(gè))調(diào)度器單元956、(多個(gè))物理寄存器堆單元958和(多個(gè))執(zhí)行集群960示出為可能有多個(gè),因?yàn)槟承?shí)施例為某些類型的數(shù)據(jù)/操作創(chuàng)建分開的流水線(例如,標(biāo)量整數(shù)流水線、標(biāo)量浮點(diǎn)/緊縮整數(shù)/緊縮浮點(diǎn)/向量整數(shù)/向量浮點(diǎn)流水線,和/或各自具有其自身的調(diào)度器單元、(多個(gè))物理寄存器堆單元和/或執(zhí)行集群的存儲(chǔ)器訪問流水線——并且在分開的存儲(chǔ)器訪問流水線的情況下,實(shí)現(xiàn)其中僅該流水線的執(zhí)行集群具有(多個(gè))存儲(chǔ)器訪問單元964的某些實(shí)施例)。還應(yīng)當(dāng)理解,在使用分開的流水線的情況下,這些流水線中的一個(gè)或多個(gè)可以是亂序發(fā)布/執(zhí)行,并且其余流水線可以是有序的。[0195]存儲(chǔ)器訪問單元的集合964耦合到存儲(chǔ)器單元970,該存儲(chǔ)器單元970包括數(shù)據(jù)TLB單元972,該數(shù)據(jù)TLB單元972耦合到數(shù)據(jù)高速緩存單元974,該數(shù)據(jù)高速緩存單元974耦合到第2級(jí)(L2)高速緩存單元976。在一個(gè)實(shí)施例中,存儲(chǔ)器訪問單元964可包括加載單元、存儲(chǔ)地址單元和存儲(chǔ)數(shù)據(jù)單元,其中的每一個(gè)均耦合至存儲(chǔ)器單元970中的數(shù)據(jù)TLB單元972。指令高速緩存單元934進(jìn)一步耦合到存儲(chǔ)器單元970中的第2級(jí)(L2)高速緩存單元976.L2高速緩存單元976耦合到一個(gè)或多個(gè)其他級(jí)別的高速緩存,并最終耦合到主存儲(chǔ)器。[0196]作為示例,寄存器重命名的、亂序發(fā)布/執(zhí)行核架構(gòu)可按如下方式實(shí)現(xiàn)流水線900:1)指令取出938執(zhí)行取出級(jí)902和長(zhǎng)度解碼級(jí)904;2)解碼單元940執(zhí)行解碼級(jí)906;3)重命名/分配器單元952執(zhí)行分配級(jí)908和重命名級(jí)910;4)(多個(gè))調(diào)度器單元956執(zhí)行調(diào)度級(jí)912;5)(多個(gè))物理寄存器堆單元958和存儲(chǔ)器單元970執(zhí)行寄存器讀取/存儲(chǔ)器讀取級(jí)914;執(zhí)行集群960執(zhí)行執(zhí)行級(jí)916;6)存儲(chǔ)器單元970和(多個(gè))物理寄存器堆單元958執(zhí)行寫回/存儲(chǔ)器寫入級(jí)918;7)各單元可牽涉到異常處置級(jí)922;以及8)引退單元954和(多個(gè))物理寄存器堆單元958執(zhí)行提交級(jí)924。[0197]核990可支持一個(gè)或多個(gè)指令集(例如,x86指令集(具有已與較新版本一起添加的一些擴(kuò)展);加利福尼亞州桑尼維爾市的MIPS技術(shù)公司的MIPS指令集;加利福尼亞州桑尼維爾市的ARM控股公司的ARM指令集(具有諸如NEON之類的任選的附加擴(kuò)展)),包括本文中所描述的(多條)指令。在一個(gè)實(shí)施例中,核990包括用于支持緊縮數(shù)據(jù)指令集擴(kuò)展(例如,[0198]應(yīng)當(dāng)理解,核可支持多線程化(執(zhí)行兩個(gè)或更多個(gè)并行的操作或線程的集合),并個(gè)物理核為物理核正在同時(shí)多線程化的線程中的每一個(gè)線程提供邏輯核)、或其組合(例有序架構(gòu)中被使用。盡管所圖示的處理器的實(shí)施例還包括分開934/974以及共享的L2高速緩存單元976,但是替代實(shí)施例可以具有用于指令和數(shù)據(jù)兩者的[0201]圖10a-圖10b圖示更具體的示例有序核架構(gòu)的框圖,該核將是芯片中的若干邏輯[0202]圖10a是根據(jù)一個(gè)或多個(gè)實(shí)施例的單個(gè)處理器核以及它到管芯上互連網(wǎng)絡(luò)1002的連接及其第二級(jí)(L2)高速緩存的本地子集1004的框圖。在一個(gè)實(shí)施例中,指令解支持具有緊縮數(shù)據(jù)指令集擴(kuò)展的x86指

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論