欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

處理器的裝入/移動(dòng)以及復(fù)制指令的制作方法

文檔序號(hào):6433494閱讀:249來(lái)源:國(guó)知局
專利名稱:處理器的裝入/移動(dòng)以及復(fù)制指令的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及處理器的裝入/移動(dòng)以及復(fù)制指令。
背景技術(shù)
系統(tǒng)體系結(jié)構(gòu)說(shuō)明處理器操作的模式以及被提供用于支持操作系統(tǒng)的機(jī)制,該機(jī)制包括面向系統(tǒng)的寄存器和數(shù)據(jù)結(jié)構(gòu)以及面向系統(tǒng)的指令。該系統(tǒng)體系結(jié)構(gòu)也提供用于在實(shí)際地址和保護(hù)模式之間切換的必要機(jī)制。
對(duì)系統(tǒng)體系結(jié)構(gòu)引入單指令、多數(shù)據(jù)(SIMD)技術(shù)提供了對(duì)包含于64位寄存器內(nèi)的封包整數(shù)數(shù)據(jù)的并行計(jì)算。SIMD對(duì)例如高級(jí)媒體、圖像處理和數(shù)據(jù)壓縮應(yīng)用中的處理器提供增強(qiáng)性能。


圖1是處理器的框圖。
圖2是執(zhí)行環(huán)境的框圖。
圖3是字節(jié)順序基本數(shù)據(jù)類型的框圖。
圖4示出浮點(diǎn)格式。
圖5示出概括各種SIMD擴(kuò)展、數(shù)據(jù)類型以及該數(shù)據(jù)類型如何被封包到寄存器中的表。
詳細(xì)說(shuō)明參考圖1,示出處理器10。該處理器10是三路超級(jí)計(jì)數(shù)器、管道體系結(jié)構(gòu)。處理器10通過(guò)使用并行處理技術(shù),平均能夠在每個(gè)時(shí)鐘周期中解碼、分派以及完成(引出)三條指令的執(zhí)行。為處理這個(gè)水平的指令吞吐量,處理器10使用分離的12階段管道,該管道支持無(wú)序的指令執(zhí)行。處理器10的微體系結(jié)構(gòu)管道被分為4個(gè)部分,即,一級(jí)高速緩存12和二級(jí)高速緩存14、前端16、無(wú)序執(zhí)行核心18,以及引出部分20。指令和數(shù)據(jù)通過(guò)與系統(tǒng)總線24連接的總線接口單元22供給給這些單元。前端16以程序順序向該無(wú)序核心18供給指令,該核心具有非常高的執(zhí)行帶寬且能夠執(zhí)行具有1/2時(shí)鐘周期延時(shí)的基本整數(shù)操作。前端16讀取指令并將指令解碼為稱作微操作(μ-ops)的簡(jiǎn)單操作。前端16能以最初的程序順序在每周期將多個(gè)微操作提交到無(wú)序核心18。前端16執(zhí)行幾個(gè)基本功能。例如,前端16執(zhí)行很有可能被執(zhí)行的預(yù)取指令、讀取還沒(méi)有被預(yù)取的指令、將指令解碼為微操作、產(chǎn)生復(fù)雜指令和特殊用途碼的微碼、遞送來(lái)自執(zhí)行軌跡高速緩存26的已經(jīng)解碼的指令,以及使用分支預(yù)測(cè)單元28中的高級(jí)算法來(lái)預(yù)測(cè)分支。
處理器10的前端16被設(shè)計(jì)為以高速處理管道微處理器中的某些普通問(wèn)題。例如,這些問(wèn)題中的兩個(gè)是延遲的主要來(lái)源。這是解碼從目標(biāo)讀取且由于高速緩存線中間的分支或分支目標(biāo)而浪費(fèi)解碼帶寬的指令的時(shí)間。
執(zhí)行軌跡高速緩存26通過(guò)保存已經(jīng)解碼的指令而處理這兩個(gè)問(wèn)題。通過(guò)轉(zhuǎn)換引擎(未示出)來(lái)讀取指令并對(duì)指令進(jìn)行解碼,且該指令成為被稱作軌跡的微操作序列的一部分。這些微操作軌跡被保存在軌跡高速緩存26中。來(lái)自最有可能的分支目標(biāo)的指令立即跟隨在該分支的后面,而不考慮指令地址的連續(xù)性。一旦建立軌跡,則搜索軌跡高速緩存26查找跟隨在該軌跡后面的指令。若該指令顯現(xiàn)為現(xiàn)有軌跡內(nèi)的第一條指令,則對(duì)來(lái)自存儲(chǔ)器層次的指令30的讀取和解碼就停止,且軌跡高速緩存26變成新的指令源。
執(zhí)行軌跡高速緩存18和轉(zhuǎn)換引擎(未示出)具有協(xié)同操作分支預(yù)測(cè)硬件。使用分支目標(biāo)緩沖器(BTBS)28,基于分支目標(biāo)的線性地址來(lái)預(yù)測(cè)該分支目標(biāo),且盡快讀取該分支目標(biāo)。若分支目標(biāo)確實(shí)被緩沖在那里,則從軌跡高速緩存26讀取該分支目標(biāo);否則,從存儲(chǔ)器層次讀取該分支目標(biāo)。轉(zhuǎn)換引擎的分支預(yù)測(cè)信息被用來(lái)沿著最有可能的路徑來(lái)形成軌跡。
核心18無(wú)序地執(zhí)行指令,允許處理器10重排序指令,以使若一個(gè)微操作在 等待數(shù)據(jù)或競(jìng)爭(zhēng)執(zhí)行資源時(shí)被延遲,則其它在程序順序中較后的微操作可在其周圍繼續(xù)進(jìn)行。處理器10使用幾個(gè)緩沖器來(lái)使T操作(T-ops)流平滑。這意味著當(dāng)管道的一部分經(jīng)歷延遲時(shí),該延遲可被其它并行執(zhí)行的操作或者在緩沖器中先前排隊(duì)等候的微操作執(zhí)行覆蓋。
核心18被設(shè)計(jì)為促進(jìn)并行執(zhí)行。核心18每周期最多可分派6個(gè)微操作;注意這個(gè)超過(guò)軌跡高速緩存26以及引出20微操作帶寬。絕大多數(shù)的管道可在每周期開(kāi)始執(zhí)行新的微操作,以使可在任何時(shí)間對(duì)每個(gè)管道處理幾個(gè)指令。多個(gè)算術(shù)邏輯單元(ALU)指令可在每周期開(kāi)始兩個(gè),且多個(gè)浮點(diǎn)指令可在每?jī)蓚€(gè)周期開(kāi)始一個(gè)。最終,微操作的數(shù)據(jù)輸入一準(zhǔn)備好且資源一旦可用,微指令就可開(kāi)始無(wú)序的執(zhí)行。
引出部分20接收來(lái)自執(zhí)行核心18的執(zhí)行微操作的結(jié)果,并對(duì)該結(jié)果進(jìn)行處理,以使根據(jù)最初程序順序來(lái)更新適當(dāng)?shù)捏w系結(jié)構(gòu)狀態(tài)。為語(yǔ)義上的正確執(zhí)行,執(zhí)行的結(jié)果在其引出之前是以最初的程序順序進(jìn)行的??蓪惓W鳛橐龅闹噶钣|發(fā)。這樣,異常不能隨機(jī)地出現(xiàn)。它們以正確的順序出現(xiàn),并且處理器10可在執(zhí)行后正確的重新啟動(dòng)。
當(dāng)微操作完成其結(jié)果并將其結(jié)果寫到目的文件的時(shí)候,該微操作引出。每周期引出的微操作可達(dá)3個(gè)。引出部分20中的重排序緩沖器(ROB)(未示出)是處理器10中的單元,它緩沖已完成的微操作、按照順序更新體系結(jié)構(gòu)狀態(tài),并管理異常的排序。
引出部分20也跟蹤分支并將已更新的分支目標(biāo)信息發(fā)送到BTB 28,以更新分支歷史。如此,不再需要的軌跡可從軌跡高速緩存26中清除,并且可讀取新的分支路徑,這是基于已更新的分支歷史信息的。
參考圖2,示出執(zhí)行環(huán)境50。給予處理器10上運(yùn)行的任何程序或任務(wù)(圖1中的)一組資源,用于執(zhí)行指令并用于保存代碼、數(shù)據(jù)和狀態(tài)信息。這些資源組成處理器10的執(zhí)行環(huán)境50。在處理器10上運(yùn)行的應(yīng)用程序和操作系統(tǒng)或者可執(zhí)行文件共同使用執(zhí)行環(huán)境50。執(zhí)行環(huán)境50包括基本程序執(zhí)行寄存器52、地址空間54、浮點(diǎn)單元(FPU)寄存器56、多媒體擴(kuò)展寄存器(MMX)58,以及SIMD擴(kuò)展(SSE和SSE2)寄存器60。
在處理器10上運(yùn)行的任何任務(wù)或程序可尋址直到4G字節(jié)(232字節(jié))的線性地址基54以及直到64G字節(jié)(236字節(jié))的物理地址空間。地址空間54可為平坦的或?yàn)榉侄蔚?。使用物理地址擴(kuò)展機(jī)制,可尋址236-1的物理地址空間。
基本程序執(zhí)行寄存器52包括8個(gè)通用寄存器62、6個(gè)段寄存器64、EFLAGS寄存器66,以及EIP(指令指針)寄存器68?;境绦驁?zhí)行寄存器52提供基本執(zhí)行環(huán)境,在其中執(zhí)行一組通用指令。這些指令對(duì)字節(jié)、字和雙字整數(shù)執(zhí)行基本整數(shù)算術(shù),處理程序流控制,操作位和字節(jié)強(qiáng)度,并尋址存儲(chǔ)器。
FPU寄存器56包括8個(gè)FPU數(shù)據(jù)寄存器70、FPU控制寄存器72、狀態(tài)寄存器74、FPU指令指針寄存器76、FPU操作數(shù)(數(shù)據(jù))指針寄存器78、FPU標(biāo)簽寄存器80以及FPU操作碼寄存器82。FPU寄存器56提供執(zhí)行環(huán)境,用于操作單精度、雙精度,以及雙擴(kuò)展精度浮點(diǎn)值,字、雙字,以及四字整數(shù),還有二進(jìn)制編碼的十進(jìn)制(BCD)值。
8個(gè)多媒體擴(kuò)展寄存器58支持64位封包字節(jié)、字和雙字整數(shù)的單指令、多數(shù)據(jù)(SIMD)操作的執(zhí)行。
SIMD擴(kuò)展(SSE和SSE2)寄存器60包括8個(gè)擴(kuò)展多媒體(XMM)數(shù)據(jù)寄存器84和MXCSR寄存器86。SIMD擴(kuò)展(SSE和SSE2)寄存器60支持128位封包單精度和雙精度浮點(diǎn)值以及128位封包字節(jié)、字、雙字以及四字整數(shù)的SIMD操作的執(zhí)行。
棧(未示出)支持過(guò)程或子例程調(diào)用以及過(guò)程或子例程之間的參數(shù)傳遞。
通用寄存器62可用于保存操作數(shù)和指針。段寄存器64保存的段選擇器可達(dá)6個(gè)。EFLAGS(程序狀態(tài)和控制)寄存器66報(bào)告正被執(zhí)行的程序狀態(tài),并允許處理器的有限(應(yīng)用程序級(jí))控制。EIP(指令指針)寄存器68包含指向下一條要執(zhí)行的指令的32位指針。
32位通用寄存器62被提供用于保存邏輯和算術(shù)操作的操作數(shù)、地址計(jì)算的操作數(shù),以及存儲(chǔ)器指針。段寄存器64保存64位段選擇器。段選擇器是識(shí)別存儲(chǔ)器中段的特別指針。為訪問(wèn)存儲(chǔ)器中的特定段,該段的段選擇器必須出現(xiàn)在適當(dāng)?shù)亩渭拇嫫?4中。
當(dāng)編寫應(yīng)用代碼時(shí),程序員通常用匯編命令和符號(hào)生成段選擇器。然后,匯編程序和其它的工具產(chǎn)生與這些命令和符號(hào)相關(guān)聯(lián)的實(shí)際段選擇器值。若寫系統(tǒng)代碼,則程序設(shè)計(jì)員可能需要直接產(chǎn)生段選擇器。
如何使用段寄存器64取決于操作系統(tǒng)或可執(zhí)行文件正使用的存儲(chǔ)器管理模式的類型。當(dāng)使用平坦(未分段)存儲(chǔ)器模式時(shí),段寄存器64被裝入指向重疊段的段選擇器,它們每個(gè)開(kāi)始于線性地址空間上的地址零。然后,這些重疊的段包括該程序的線性地址空間。通常,兩個(gè)重疊段被定義一個(gè)用于代碼,而另一個(gè)用于數(shù)據(jù)和棧。段寄存器64的CS段寄存器(未示出)指向代碼段,且所有其它的段寄存器指向數(shù)據(jù)和棧段。
當(dāng)使用分段存儲(chǔ)器模式時(shí),每個(gè)段寄存器64一般被裝入不同的段選擇器,以使每個(gè)段選擇器64指向線性地址空間內(nèi)的不同段。在任何時(shí)間,程序可這樣訪問(wèn)直到線性地址空間中的6個(gè)段。為訪問(wèn)沒(méi)有被其中一個(gè)段寄存器64指到的段,程序首先裝入要被訪問(wèn)的段選擇器到段寄存器64中。
32位EFLAGS寄存器66包含一組狀態(tài)標(biāo)記、控制標(biāo)記,以及一組系統(tǒng)標(biāo)記??墒褂脤S弥噶顏?lái)直接修改EFLAGS寄存器66中的某些標(biāo)記。沒(méi)有指令允許整個(gè)寄存器66被直接檢查或修改。然而,下面的指令可被用來(lái)在過(guò)程棧或?qū)S眉拇嫫髦g移動(dòng)標(biāo)記組,它們是LAHF、SAHF、push-F、push-FD、pop-F,以及pop-FD。在EFLAGS寄存器66的內(nèi)容已經(jīng)被傳遞到過(guò)程?;蛲ㄓ眉拇嫫髦螅墒褂锰幚砥?0位操作指令來(lái)檢查和修改該標(biāo)記。
當(dāng)暫停任務(wù)時(shí),處理器10自動(dòng)保存正被暫停任務(wù)的任務(wù)狀態(tài)段(TSS)(未示出)中的EFLAGS寄存器66的狀態(tài)。當(dāng)將其自身綁定到新的任務(wù)時(shí),處理器10從新的任務(wù)程序狀態(tài)寄存器(PSS,未示出)將數(shù)據(jù)裝入EFLAGS寄存器66。
當(dāng)調(diào)用中斷或異常處理程序過(guò)程時(shí),處理器10自動(dòng)保存過(guò)程棧上的EFLAGS寄存器66的狀態(tài)。當(dāng)用任務(wù)開(kāi)關(guān)來(lái)處理中斷或異常時(shí),EFLAGS寄存器66的狀態(tài)被保存在正被暫停任務(wù)的TSS上。
用在處理器10中的基本數(shù)據(jù)類型是字節(jié)、字、雙字、四字和雙四字。字節(jié)是8位,字是兩個(gè)字節(jié)(16位),雙字是4個(gè)字節(jié)(32位),四字是8個(gè)字節(jié)(64位),以及雙四字是16個(gè)字節(jié)(128位)。
參考圖3,它示出每個(gè)基本數(shù)據(jù)類型在作為存儲(chǔ)器中的操作數(shù)引用時(shí)的字節(jié)順序。每個(gè)數(shù)據(jù)類型的低字節(jié)(位0~7)占用存儲(chǔ)器中的最低地址,且該地址也是該操作數(shù)的地址。
字、雙字和四字不必在自然邊界上的存儲(chǔ)器中對(duì)齊。字、雙字、四字的自然邊界分別是已編號(hào)為偶數(shù)的地址、可被4整除的地址,以及被8整除的地址。然而,為改善程序的性能,數(shù)據(jù)結(jié)構(gòu)(尤其是棧)每逢可能的時(shí)候就應(yīng)在自然邊界上對(duì)齊。關(guān)于這個(gè)的原因是處理器10需要兩個(gè)存儲(chǔ)器訪問(wèn)來(lái)進(jìn)行不對(duì)齊的存儲(chǔ)器訪問(wèn),然而已經(jīng)對(duì)齊的訪問(wèn)需要一個(gè)存儲(chǔ)器訪問(wèn)。跨越4字節(jié)邊界的字或雙字操作數(shù)或者跨越8字節(jié)邊界的四字操作數(shù)被認(rèn)為是未對(duì)齊,且需要兩個(gè)單獨(dú)的存儲(chǔ)器總線周期來(lái)訪問(wèn)。開(kāi)始于奇地址但不跨越字邊界的字被認(rèn)為是已經(jīng)對(duì)齊的,且其仍舊能夠在一個(gè)總線周期內(nèi)被訪問(wèn)。
對(duì)雙四字操作的某些指令需要存儲(chǔ)器操作數(shù)在自然邊界上對(duì)齊。若未對(duì)齊的操作數(shù)被指定的話,則這些指令產(chǎn)生普通保護(hù)異常(#GP)。雙四字的自然邊界是任何可被16整除的地址。其它對(duì)雙四字操作的指令允許未對(duì)齊的訪問(wèn),而不產(chǎn)生普通保護(hù)異常,然而,我們需要附加的存儲(chǔ)器總線周期來(lái)訪問(wèn)來(lái)自存儲(chǔ)器的未對(duì)齊數(shù)據(jù)。
盡管字節(jié)、字和雙字是處理器10的基本數(shù)據(jù)類型,但是某些指令支持這些數(shù)據(jù)類型的附加解釋,以允許對(duì)數(shù)字?jǐn)?shù)據(jù)類型執(zhí)行操作。例如,處理器10定義兩種類型的整數(shù)無(wú)符號(hào)的和有符號(hào)的。無(wú)符號(hào)的整數(shù)是范圍從零到最大正數(shù)的普通邊界數(shù)值,可在選擇的操作數(shù)大小內(nèi)對(duì)其進(jìn)行編碼。有符號(hào)的整數(shù)是兩個(gè)的補(bǔ)碼二進(jìn)制數(shù)值,其既可被用來(lái)代表正整數(shù)值,也可以被用來(lái)代表負(fù)整數(shù)值。
處理器10定義并操作3種浮點(diǎn)數(shù)據(jù)類型單精度浮點(diǎn)、雙精度浮點(diǎn),以及雙擴(kuò)展精度浮點(diǎn)。這些數(shù)據(jù)類型的數(shù)據(jù)格式直接對(duì)應(yīng)于二進(jìn)制浮點(diǎn)算術(shù)如在IEEE標(biāo)準(zhǔn)754中指定的格式。
指針是存儲(chǔ)器中位置的地址。處理器10定義兩種類型的指針近指針(32位)和遠(yuǎn)指針(48位)。近指針是段內(nèi)32位偏移量(也稱作有效地址)。當(dāng)隱含地確定了被訪問(wèn)的段的身份時(shí),近指針被用于平坦存儲(chǔ)器模型中的所有存儲(chǔ)器參考或分段模型中的參考。遠(yuǎn)指針是48位邏輯地址,其包含16位段選擇器和32位偏移量。遠(yuǎn)指針被用于存儲(chǔ)器參考和已分段的存儲(chǔ)器模型,那里正被訪問(wèn)段的身份必須被明確指定。
位字段是連續(xù)的位序列。它可開(kāi)始于存儲(chǔ)器中任何字節(jié)的任何比特位置,且其包含的位可達(dá)32位。串可為位、字節(jié)、字或雙字的連續(xù)序列。位串可開(kāi)始于任何字節(jié)的任何數(shù)位位置,且其包含的位可達(dá)232-1位。字節(jié)串可包含字節(jié)、字或雙字,其范圍可從零到232-1字節(jié)(4G字節(jié))。
二進(jìn)制編碼的十進(jìn)制整數(shù)(BCD整數(shù))是具有范圍從0到9的有效值的無(wú)符號(hào)4位整數(shù)。處理器10定義對(duì)位于一個(gè)或多個(gè)通用寄存器62或在一個(gè)或多個(gè)FPU寄存器56中的BCD整數(shù)的操作。
參考圖4,實(shí)數(shù)被表達(dá)為FPU 56浮點(diǎn)寄存器70中的浮點(diǎn)格式100。該浮點(diǎn)格式包括3部分,即,符號(hào)102、有效數(shù)104和指數(shù)106。符號(hào)102是表明該數(shù)是正(0)或負(fù)(1)的二進(jìn)制數(shù)值。有效數(shù)104有兩個(gè)部分1位二進(jìn)制整數(shù)(也稱為J位)108和二進(jìn)制分?jǐn)?shù)110。整數(shù)位108通常沒(méi)有被表達(dá),而是隱含的值。指數(shù)106是表達(dá)與有效數(shù)104相乘的基2冪的二進(jìn)制整數(shù)。
處理器10定義一組64位和128位封包數(shù)據(jù)類型并對(duì)其操作,這用于SIMD操作中。這些數(shù)據(jù)類型包括基本數(shù)據(jù)類型(封包字節(jié)、字、雙字和四字)以及用于封包整數(shù)和封包浮點(diǎn)操作中的基本數(shù)據(jù)類型的數(shù)字解釋。
主要在64位多媒體擴(kuò)展寄存器58中操作64位SIMD數(shù)據(jù)類型。基本的64位封包數(shù)據(jù)類型是封包字節(jié)、封包字和封包雙字。當(dāng)這些數(shù)據(jù)類型在多媒體擴(kuò)展寄存器58中的這些數(shù)據(jù)類型上執(zhí)行數(shù)字SIMD操作時(shí),這些數(shù)據(jù)類型被解釋為包含字節(jié)、字,或雙字整數(shù)值。
主要在128位擴(kuò)展多媒體(MMX)寄存器84和存儲(chǔ)器54中操作128位SIMD數(shù)據(jù)類型。基本的128位封包數(shù)據(jù)類型是封包字節(jié)、封包字、封包雙字和封包四字。當(dāng)這些數(shù)據(jù)類型在擴(kuò)展多媒體(MMX)寄存器84中的這些基本數(shù)據(jù)類型上執(zhí)行SIMD操作時(shí),這些數(shù)據(jù)類型被解釋為包含封包的或定標(biāo)器單精度浮點(diǎn)或雙精度浮點(diǎn)值,或者被解釋為包含封包的字節(jié)、字、雙字、四字整數(shù)值。
參考圖5,表120示出這樣的概要,它包含各種SIMD擴(kuò)展、被操作的數(shù)據(jù)類型,以及這些數(shù)據(jù)類型如何被封包到多媒體擴(kuò)展寄存器58和擴(kuò)展多媒體(XMM)寄存器84中。
如上所述,多媒體擴(kuò)展指令操作包含于存儲(chǔ)器54、多媒體擴(kuò)展寄存器58,和/或通用寄存器62內(nèi)的封包字節(jié)、字、雙字或四字整數(shù)操作數(shù)。這些多媒體擴(kuò)展指令包括數(shù)據(jù)傳遞指令、轉(zhuǎn)換指令、封包算術(shù)指令、比較指令、邏輯指令、移位和旋轉(zhuǎn)指令以及狀態(tài)管理指令。
SIMD擴(kuò)展(SSE和SSE2)指令被分為一些組,如4組SIMD單精度浮點(diǎn)指令,它在擴(kuò)展多媒體(XMM)寄存器84上操作,MXSCR指令,它在MXCSR寄存器86上操作,64為SIMD整數(shù)指令,它在MMX寄存器58上操作,以及可高速緩存性控制、預(yù)取還有對(duì)指令進(jìn)行排序的指令。
一類指令是移動(dòng)/裝入以及復(fù)制類型指令。這些指令被稱為“組合的”指令,這是因?yàn)樗鼈儾恍枰诒谎b入的數(shù)值上進(jìn)行明確操作來(lái)獲得例如位的復(fù)制。本體系結(jié)構(gòu)包括MOVDDUP指令、MOVSHDUP指令和MOVSLDUP指令。提供這些指令以支持具有封包單精度和封包雙精度浮點(diǎn)數(shù)據(jù)類型的復(fù)雜算術(shù)。這些指令可被用在不同的應(yīng)用中。例如,這些指令可改善信號(hào)處理應(yīng)用和包括處理自然數(shù)據(jù)類型應(yīng)用的效率。
MOVDDUP指令是移動(dòng)一個(gè)雙浮點(diǎn)并復(fù)制裝入/移動(dòng)64位(若源是寄存器的話,就是位[63-0])的SSE2指令。MOVDDUP指令的執(zhí)行返回和同一結(jié)果寄存器的較低和較高的一半兩者相同的64位,也就是說(shuō),從該源復(fù)制64位。這樣,若該源具有條目1/0,則該目的文件將具有條目1/0/1/0。MOVEDDUP指令具有下面的格式MOVEDDUP目的,源其中源操作數(shù)是存儲(chǔ)器位置54或第二個(gè)擴(kuò)展多媒體(XMM)寄存器84,且該目的操作數(shù)是第一個(gè)擴(kuò)展多媒體(XMM)寄存器84。該源包含雙浮點(diǎn)數(shù)據(jù)類型。
在操作中,若源操作數(shù)是存儲(chǔ)器地址,則第一個(gè)擴(kuò)展多媒體(XMM)寄存器的位[63-0]被裝入該存儲(chǔ)器地址的位[63-0],且第一個(gè)擴(kuò)展多媒體(XMM)寄存器的位[127-64]被裝入存儲(chǔ)器位置的位[63-0]。若源操作數(shù)是第二個(gè)擴(kuò)展多媒體(XMM)寄存器,則第一個(gè)擴(kuò)展多媒體(XMM)寄存器的位[63-0]被設(shè)置為與第二個(gè)擴(kuò)展多媒體(XMM)寄存器的位[63-0]相等,且第一個(gè)擴(kuò)展多媒體(XMM)寄存器的位[127-64]被設(shè)置為與第二個(gè)擴(kuò)展多媒體(XMM)寄存器的位[63-0]相等。
線性地址對(duì)應(yīng)于參考存儲(chǔ)器數(shù)據(jù)的最低有效字節(jié)的地址。當(dāng)指出存儲(chǔ)器地址時(shí),位于存儲(chǔ)器位置數(shù)據(jù)的16字節(jié)被裝入或被保存。當(dāng)使用寄存器-寄存器形式的操作時(shí),128位源寄存器的內(nèi)容被復(fù)制到128位目的寄存器中。
MOVSHDUP指令是移動(dòng)填塞的單浮點(diǎn)高,并復(fù)制裝入/移動(dòng)128位并復(fù)制作為結(jié)果的寄存器中的條目1和3的SSE2指令。在128位源寄存器帶寬的例子中,每個(gè)條目是32位。特別地,具有為3/2/1/0條目的源(0是低的單精度條目,3是高的單精度條目),在MOVSHDUP指令執(zhí)行之后的結(jié)果寄存器將保存被復(fù)制以提供條目3/3/1/1的條目3和1。MOVSHDUP具有下面的格式MOVSHDUP目的,源其中源操作數(shù)代表存儲(chǔ)器位置54或第二個(gè)擴(kuò)展多媒體(XMM)寄存器84,且該目的操作數(shù)是第一個(gè)擴(kuò)展多媒體(XMM)寄存器84。該源操作數(shù)具有封包單浮點(diǎn)數(shù)據(jù)類型。
在操作中,若該源操作數(shù)是存儲(chǔ)器地址,則第一個(gè)擴(kuò)展多媒體(XMM)寄存器的位[31-0]被裝入該存儲(chǔ)器地址的位[63-32],第一個(gè)擴(kuò)展多媒體(XMM)寄存器的位63-32被裝入存儲(chǔ)器地址的位[63-32],第一個(gè)擴(kuò)展多媒體(XMM)寄存器的位95-64被裝入存儲(chǔ)器地址的位[127-96],且第一個(gè)擴(kuò)展多媒體(XMM)寄存器的位127-96被裝入存儲(chǔ)器地址的位[127-96]。
若源操作數(shù)是第二個(gè)擴(kuò)展多媒體(XMM)寄存器,則第一個(gè)擴(kuò)展多媒體(XMM)寄存器的位[31-0]被設(shè)置為與第二個(gè)擴(kuò)展多媒體(XMM)寄存器的為[63-32]相等,第一個(gè)擴(kuò)展多媒體(XMM)寄存器的位[63-32]被設(shè)置為與第二個(gè)擴(kuò)展多媒體(XMM)寄存器的位[83-32]相等,第一個(gè)擴(kuò)展多媒體(XMM)寄存器的位[95-64]被設(shè)置為與第二個(gè)擴(kuò)展多媒體(XMM)寄存器的位[127-96]相等,且第一個(gè)擴(kuò)展多媒體(XMM)寄存器的位[127-96]被設(shè)置為與第二個(gè)擴(kuò)展多媒體(XMM)寄存器的位[127-96]相等。
線性地址對(duì)應(yīng)于參考存儲(chǔ)器數(shù)據(jù)的最低有效字節(jié)的地址。當(dāng)指示存儲(chǔ)器地址時(shí),位于存儲(chǔ)器位置數(shù)據(jù)的16字節(jié)被裝入或被保存。當(dāng)使用寄存器-寄存器形式的操作時(shí),128位源寄存器的內(nèi)容被復(fù)制到128位目的寄存器中。
MOVSHDUP指令是移動(dòng)填塞的單浮點(diǎn)低,并復(fù)制裝入/移動(dòng)128位并復(fù)制條目0和2的SSE2指令。特別地,具有為3/2/1/0的源(0是較低的單精度條目),結(jié)果寄存器將保存條目2/2/0/0。MOVSLDUP指令具有下面的格式MOVSLDUP目的,源其中該源操作數(shù)是存儲(chǔ)器位置54或第二個(gè)擴(kuò)展多媒體(XMM)寄存器84,且該目的操作數(shù)是第一個(gè)擴(kuò)展多媒體(XMM)寄存器84。該源操作數(shù)包含封包單浮點(diǎn)數(shù)據(jù)類型。
在操作中,若該源操作數(shù)是存儲(chǔ)器地址,則第一個(gè)擴(kuò)展多媒體(XMM)寄存器的位[31-0]被裝入該存儲(chǔ)器地址的位[31-0],第一個(gè)擴(kuò)展多媒體(XMM)寄存器的位[63-32]被裝入存儲(chǔ)器地址的位[31-0],第一個(gè)擴(kuò)展多媒體(XMM)寄存器的位[95-64]被裝入存儲(chǔ)器地址的位[95-64],且第一個(gè)擴(kuò)展多媒體(XMM)寄存器的位[127-96]被裝入存儲(chǔ)器地址的位[95-64]。若源操作數(shù)是寄存器,則第一個(gè)擴(kuò)展多媒體(XMM)寄存器的位[31-0]被設(shè)置為與第二個(gè)擴(kuò)展多媒體(XMM)寄存器的位[31-0]相等,第一個(gè)擴(kuò)展多媒體(XMM)寄存器的位[63-32]被設(shè)置為與第二個(gè)擴(kuò)展多媒體(XMM)寄存器的位[31-0]相等,第一個(gè)擴(kuò)展多媒體(XMM)寄存器的位[95-64]被設(shè)置為與第二個(gè)擴(kuò)展多媒體(XMM)寄存器的位[95-64]相等,且第一個(gè)擴(kuò)展多媒體(XMM)寄存器的位[127-96]被設(shè)置為與第二個(gè)擴(kuò)展多媒體(XMM)寄存器的位[95-64]相等。
線性地址對(duì)應(yīng)于參考存儲(chǔ)器數(shù)據(jù)的最低有效字節(jié)的地址。當(dāng)指示存儲(chǔ)器地址時(shí),位于存儲(chǔ)器位置數(shù)據(jù)的16字節(jié)被裝入或被保存。當(dāng)使用寄存器-寄存器形式的操作時(shí),128位源寄存器的內(nèi)容被復(fù)制到128位目的寄存器中。
因此,其它的實(shí)施例在下面權(quán)利要求書的范圍內(nèi)。
權(quán)利要求
1.一種計(jì)算機(jī)指令,其特征在于,所述指令包含移動(dòng)和復(fù)制指令,所述指令促使處理器將源的第一部分位裝入目的寄存器的第一部分,并在所述目的寄存器的后續(xù)部分中復(fù)制所述第一部分位。
2.如權(quán)利要求1所述的指令,其特征在于,所述源的所述第一部分是代表存儲(chǔ)器位置中的雙浮點(diǎn)數(shù)據(jù)類型的64位。
3.如權(quán)利要求1所述的指令,其特征在于,所述源的所述第一部分是代表源寄存器中的雙浮點(diǎn)數(shù)據(jù)類型的64位。
4.如權(quán)利要求1所述的指令,其特征在于,所述目的寄存器的所述第一部分被裝入所述源的所述第一部分的位[63-0],且所述目的寄存器的所述后續(xù)部分被裝入所述源的所述第一部分的位[63-0]。
5.一種方法,其特征在于,所述方法包含在處理器中,將源的第一部分位裝入到目的寄存器的第一部分;以及在所述目的寄存器的后續(xù)部分中復(fù)制所述第一部分位。
6.如權(quán)利要求5所述的方法,其特征在于,所述源的所述第一部分是代表存儲(chǔ)器位置中雙浮點(diǎn)數(shù)據(jù)類型的64位。
7.如權(quán)利要求5所述的方法,其特征在于,所述源的所述第一部分是代表源寄存器中雙浮點(diǎn)數(shù)據(jù)類型的64位。
8.如權(quán)利要求5所述的方法,其特征在于,所述目的寄存器的所述第一部分被裝入所述源的所述第一部分的位[63-0],且所述目的寄存器的所述后續(xù)部分被裝入所述源的所述第一部分的位[63-0]。
9.一種駐留在計(jì)算機(jī)可讀媒體上的計(jì)算機(jī)程序產(chǎn)品,其特征在于,具有保存于其上的指令,所述指令當(dāng)由所述處理器執(zhí)行時(shí),促使所述處理器將源的第一部分位裝入到目的寄存器的第一部分中;以及在所述目的寄存器的后續(xù)部分中復(fù)制所述第一部分位。
10.如權(quán)利要求9所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述源的所述第一部分是代表存儲(chǔ)器位置中雙浮點(diǎn)數(shù)據(jù)類型的64位。
11.如權(quán)利要求9所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述源的所述第一部分是代表源寄存器中雙浮點(diǎn)數(shù)據(jù)類型的64位。
12.如權(quán)利要求9所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述目的寄存器的所述第一部分被裝入所述源的所述第一部分的位[63-0],且所述目的寄存器的所述后續(xù)部分被裝入所述源的所述第一部分的位[63-0]。
13.一種計(jì)算機(jī)指令,其特征在于,所述指令包含移動(dòng)一個(gè)雙浮點(diǎn)以及復(fù)制這樣的指令,所述促使處理器裝入源的64位并返回目的的較低一半和目的的較高一半中的所述64位。
14.如權(quán)利要求13所述的指令,其特征在于,進(jìn)一步包含源操作數(shù);以及目的操作數(shù)。
15.如權(quán)利要求13所述的指令,其特征在于,所述源操作數(shù)是存儲(chǔ)器位置。
16.如權(quán)利要求15所述的指令,其特征在于,所述存儲(chǔ)器位置具有代表雙浮點(diǎn)數(shù)據(jù)類型的128位數(shù)值。
17.如權(quán)利要求13所述的指令,其特征在于,所述源操作數(shù)是128位源寄存器。
18.如權(quán)利要求17所述的指令,其特征在于,所述源寄存器具有代表雙浮點(diǎn)數(shù)據(jù)類型的128位數(shù)值。
19.一種在處理器中執(zhí)行的方法,其特征在于,所述方法包含將來(lái)自源的第一個(gè)數(shù)N個(gè)位裝入到2N寬位的目的寄存器的較低一半中和2N位寬的目的寄存器的較高一半中。
20.如權(quán)利要求19所述的方法,其特征在于,所述源是存儲(chǔ)器位置,而且那里N是64位。21.如權(quán)利要求20所述的方法,其特征在于,所述存儲(chǔ)器位置包含雙浮點(diǎn)數(shù)據(jù)類型。
22.如權(quán)利要求19所述的方法,其特征在于,所述源是128位源寄存器,且N是64位。
23.如權(quán)利要求19所述的方法,其特征在于,所述128位源寄存器包含雙浮點(diǎn)數(shù)據(jù)類型。
24.一種駐留在計(jì)算機(jī)可讀媒體上的計(jì)算機(jī)程序產(chǎn)品,其特征在于,具有保存于其上的指令,所述指令當(dāng)由所述處理器執(zhí)行時(shí),促使所述處理器將來(lái)自源的64位裝入到128位的目的寄存器的較低一半中以及所述128位的目的寄存器的較高一半中。
25.如權(quán)利要求24所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述源是包含128位雙浮點(diǎn)數(shù)據(jù)類型的存儲(chǔ)器位置。
26.如權(quán)利要求24所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述源是包含128位雙浮點(diǎn)數(shù)據(jù)類型的128位源寄存器。
27.一種計(jì)算機(jī)指令,其特征在于,所述指令包含移動(dòng)封包單浮點(diǎn)高和復(fù)制這樣的指令,所述指令促使處理器裝入源的位[127-0],并在128位的目的寄存器的位[31-0]中返回所述源的位[63-32]、在所述目的寄存器的位[63-32]中返回源的位[63-32]、在所述目的寄存器的位[95-64]中返回源的位[127-96]以及在所述目的寄存器的位[127-96]中返回所述源的位[127-96]。
28.如權(quán)利要求27所述的指令,其特征在于,進(jìn)一步包含源操作數(shù)字段;以及目的操作數(shù)字段。
29.如權(quán)利要求27所述的指令,其特征在于,所述源操作數(shù)是存儲(chǔ)器位置。
30.如權(quán)利要求29所述的指令,其特征在于,所述存儲(chǔ)器位置具有代表封包單浮點(diǎn)數(shù)據(jù)類型的128位。
31.如權(quán)利要求27所述的指令,其特征在于,所述源操作數(shù)是128位源寄存器。
32.如權(quán)利要求31所述的指令,其特征在于,所述源寄存器具有代表封包單浮點(diǎn)數(shù)據(jù)類型的128位。
33.一種在處理器中執(zhí)行的方法,其特征在于,所述方法包含訪問(wèn)源的位[127-0];以及在所述目的寄存器的位[31-0]和位[63-32]中返回所述源的位[63-32];以及在所述目的寄存器的位[95-64]和位[127-96]中返回所述源的位[127-96]。
34.如權(quán)利要求33所述的方法,其特征在于,所述源是存儲(chǔ)器位置。
35.如權(quán)利要求34所述的方法,其特征在于,所述存儲(chǔ)器位置包含封包單浮點(diǎn)數(shù)據(jù)類型。
36.如權(quán)利要求33所述的方法,其特征在于,所述源是128位源寄存器。
37.如權(quán)利要求36所述的方法,其特征在于,所述128位源寄存器包含封包單浮點(diǎn)數(shù)據(jù)類型。
38.一種駐留在計(jì)算機(jī)可讀媒體上的計(jì)算機(jī)程序產(chǎn)品,其特征在于,具有保存于其上的指令,所述指令當(dāng)由所述處理器執(zhí)行時(shí),促使所述處理器裝入源的位[127-0];在128位的目的寄存器的位[31-0]中返回所述源的位[63-32];在所述目的寄存器的位[63-32]中返回所述源的位[63-32];在所述目的寄存器的位[95-64]中返回所述源的位[127-96];以及在所述目的寄存器的位[127-96]中返回所述源的位[127-96]。
39.如權(quán)利要求38所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述源是存儲(chǔ)器位置。
40.如權(quán)利要求39所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述存儲(chǔ)器位置包含封包單浮點(diǎn)數(shù)據(jù)類型。
41.如權(quán)利要求38所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述源是128位源寄存器。
42.如權(quán)利要求41所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述128位源寄存器包含封包單浮點(diǎn)數(shù)據(jù)類型。
43.一種計(jì)算機(jī)指令,其特征在于,所述指令包含移動(dòng)封包單浮點(diǎn)低和復(fù)制這樣的指令,所述指令促使處理器裝入源的位[127-0]并在128位的目的寄存器的位[31-0]中返回源的位[31-0]、在所述目的寄存器的位[63-32]中返回所述源的位[31-0]、在所述目的寄存器的位[95-64]中返回所述源的位[95-64]以及在所述目的寄存器的位[127-96]中返回所述源的位[95-64]。
44.如權(quán)利要求43所述的指令,其特征在于,進(jìn)一步包含源地址字段;以及目的寄存器。
45.如權(quán)利要求44所述的指令,其特征在于,所述源是存儲(chǔ)器位置。
46.如權(quán)利要求45所述的指令,其特征在于,所述存儲(chǔ)器位置包含代表封包單浮點(diǎn)數(shù)據(jù)類型的128位。
47.如權(quán)利要求43所述的指令,其特征在于,所述源是128位源寄存器。
48.如權(quán)利要求47所述的指令,其特征在于,所述源寄存器包含代表封包單浮點(diǎn)數(shù)據(jù)類型的128位。
49.一種方法,其特征在于,所述方法包含在處理器中,裝入源的位[127-0];在128位的目的寄存器的位[31-0]中返回所述源的位[31-0];在所述目的寄存器的位[63-32]中返回所述源的位[31-0];在所述目的寄存器的位[95-64]中返回所述源的位[95-64];以及在所述目的寄存器的位[127-96]中返回所述源的位[95-64]。
50.如權(quán)利要求49所述的方法,其特征在于,所述源是存儲(chǔ)器位置。
51.如權(quán)利要求50所述的方法,其特征在于,所述存儲(chǔ)器位置包含封包單浮點(diǎn)數(shù)據(jù)類型。
52.如權(quán)利要求51所述的方法,其特征在于,所述源是128位源寄存器。
53.如權(quán)利要求52所述的方法,其特征在于,所述128位源寄存器包含封包單浮點(diǎn)數(shù)據(jù)類型。
54.一種駐留在計(jì)算機(jī)可讀媒體上的計(jì)算機(jī)程序產(chǎn)品,其特征在于,具有保存于其上的指令,所述指令當(dāng)由所述處理器執(zhí)行時(shí),促使所述處理器裝入源的位[127-0];在128位的目的寄存器的位[31-0]中返回所述源的位[31-0];在所述目的寄存器的位[63-32]中返回所述源的位[31-0];在所述目的寄存器的位[95-64]中返回所述源的位[95-64];以及在所述目的寄存器的位[127-96]中返回所述源的位[95-64]。
55.如權(quán)利要求54所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述源是存儲(chǔ)器位置。
56.如權(quán)利要求55所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述存儲(chǔ)器位置包含封包單浮點(diǎn)數(shù)據(jù)類型。
57.如權(quán)利要求54所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述源是128位源寄存器。
58.如權(quán)利要求57所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述128位源寄存器包含封包單浮點(diǎn)數(shù)據(jù)類型。
全文摘要
一種方法包括,在處理器中,裝入/移動(dòng)源的第一部分位到目標(biāo)寄存器的第一部分并在目標(biāo)寄存器的后續(xù)部分中復(fù)制所述第一部分位。
文檔編號(hào)G06F1/00GK1605062SQ02825327
公開(kāi)日2005年4月6日 申請(qǐng)日期2002年12月12日 優(yōu)先權(quán)日2001年12月20日
發(fā)明者P·羅塞爾 申請(qǐng)人:英特爾公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
鹤山市| 八宿县| 芦溪县| 乐亭县| 安庆市| 富阳市| 连江县| 福建省| 墨脱县| 和硕县| 鹰潭市| 温泉县| 孟连| 东辽县| 象山县| 方山县| 阜阳市| 缙云县| 河间市| 锡林浩特市| 偃师市| 安化县| 余姚市| 邹城市| 平安县| 南京市| 华容县| 和田市| 宝兴县| 开阳县| 攀枝花市| 墨脱县| 灵台县| 乡城县| 永登县| 沂南县| 沙河市| 钟祥市| 辽宁省| 拜城县| 堆龙德庆县|