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

微處理器及微處理器方法

文檔序號:6580109閱讀:180來源:國知局
專利名稱:微處理器及微處理器方法
技術(shù)領(lǐng)域
本發(fā)明有關(guān)于微處理器,且特別有關(guān)于生成微指令的裝置, 用以執(zhí)行字串搬移宏指令。
背景技術(shù)
英特爾架構(gòu)(IA-32)指令集(普遍地也被稱為x86架構(gòu))包括 一字串(MOVS)宏指令(在英特爾軟件開發(fā)者手冊中稱為"字串 搬移"指令)。MOVS宏指令從來源存儲器位置搬移字節(jié)(8位)、 字(16位)、雙字(32位)或四字(64位)到目的地存儲器位置。重復(fù) (REP)前置指令可被加在MOVS宏指令之前,用以多次重復(fù) MOVS宏指令來搬移字節(jié)、字、雙字或四字。
包含字串重復(fù)拍i移(REP MOVS)宏指令的程序也必須包括 優(yōu)先指令(prior instruction),此優(yōu)先指令將ECX暫存器載入一 值,此值指定MOVS宏指令要被重復(fù)的次數(shù)。也就是說ECX暫 存器指定要被搬移的字串的大小,如那些要被從來源存儲器位 置搬移至目的地存儲器位置的字節(jié)、字、雙字、四字數(shù)目。詳 細的MOVS宏指令提供于IA-32英特爾軟件開發(fā)者手冊第2A集: 指令集參考資料A-M的第3-656到3-659頁。而詳細的REP前置指 令提供于IA-32英特爾軟件開發(fā)者手冊第2B集:指令集參考資料 N-Z的第4-21 l到4-215頁。以上全部細節(jié)在此合并一起作為參考 資料。
許多現(xiàn)代化的微處理器都擁有指令轉(zhuǎn)譯器,指令轉(zhuǎn)譯器將 如同x86這樣的宏指令轉(zhuǎn)換為一個或多個在微處理器的微架構(gòu) 內(nèi)執(zhí)行的微指令。當(dāng)微處理器執(zhí)行了全部組成的微指令,它會 完成宏指令的語義(semantics)。指令轉(zhuǎn)譯器本身產(chǎn)生 一組不同的微指令序列給每一個更普通的宏指令來完成宏指令。另外,
微指令ROM耦接于指令轉(zhuǎn)譯器。微指令ROM儲存微指令序列, 這些微指令序列用來完成更復(fù)雜或更不常出現(xiàn)的x86宏指令的 語義,此動作降低了指令轉(zhuǎn)譯器的復(fù)雜性。因此,微指令序列 可能由指令轉(zhuǎn)譯器產(chǎn)生或微指令ROM輸出,依微處理器的設(shè)計 基準(zhǔn)而定。
因為字串搬移指令關(guān)系到反復(fù)的操作,上述操作由一執(zhí)行 一回路的微指令ROM中的 一微指令序列完成。ECX暫存器的計 數(shù)值決定微指令在回路被執(zhí)行的次數(shù)。每執(zhí)行 一 次回路便減少 ECX暫存器的值,并且位于回路結(jié)尾的條件分支指令 (conditional branch instruction)根據(jù)ECX暫存器目前的值條件分 支回到回路的起始位置。然而,回路的執(zhí)行效能相對較差,因
為條件分支指令需要相對較大的時鐘周期來執(zhí)行。更進一步, 如果微處理器錯估分支結(jié)果,要修復(fù)錯誤預(yù)估的后果相當(dāng)大, 特別是在管線化很深的微處理器。因此,所需要的是一個改善 字串重復(fù)搬移(REP MOVS)宏指令效能的方法。

發(fā)明內(nèi)容
本發(fā)明提供一個微處理器,并用來執(zhí)行英特爾架構(gòu)(IA-32) 字串重復(fù)搬移(REP MOVS)宏指令。被搬移的字串的字長度指 定(specified)為于IA-32架構(gòu)的ECX暫存器中的 一立即值。微處 理器包括一存儲器,配置來儲存第一組微指令序列,用以完成 字串重復(fù)搬移宏指令,上述第一組微指令序列包括一條件分支 微指令,當(dāng)條件分支微指令被執(zhí)行時,上述條件分支微指令就 會根據(jù)儲存于IA-32架構(gòu)的ECX暫存器的字長度條件分支至第 一組微指令序列內(nèi)的一微指令。存儲器也配置來儲存第二組微 指令序列,用以完成字串重復(fù)搬移宏指令,上述第二組微指令
9序列不包括任何條件分支微指令。微處理器包括一指令轉(zhuǎn)譯器,
并耦接于存儲器。因應(yīng)搬移立即值給IA-32架構(gòu)的ECX暫存器的 宏指令,指令轉(zhuǎn)譯器設(shè)定一個快速字串旗標(biāo)并儲存立即值。因 應(yīng)以不同于搬移立即值給IA-32架構(gòu)的ECX暫存器的方式來修 改IA-32架構(gòu)的ECX暫存器的宏指令,指令轉(zhuǎn)譯器清除快速字串 旗標(biāo)。因應(yīng)字串重復(fù)搬移宏指令,如果快速字串旗標(biāo)被清除, 指令轉(zhuǎn)譯器轉(zhuǎn)移上述微處理器的控制權(quán)給第 一 組微指令序列;
如果快速字串旗標(biāo)被設(shè)定,指令轉(zhuǎn)譯器根據(jù)儲存的立即值轉(zhuǎn)移 上述微處理器的控制權(quán)給第二組微指令序列內(nèi)的一 目標(biāo)位置。
本發(fā)明提供一方法,用來使微處理器執(zhí)行英特爾架構(gòu) (IA-32)字串重復(fù)搬移(REP MOVS)宏指令,其中被搬移的字串 的字長度指定為于IA-32架構(gòu)的ECX暫存器中的一立即值。微處 理器包括一存儲器,用來儲存多個微指令序列。因應(yīng)搬移立即 值給IA-32架構(gòu)的ECX暫存器的宏指令,上述方法包括設(shè)定一快 速字串旗標(biāo)與儲存立即值。因應(yīng)以不同于搬移立即值給IA-32 架構(gòu)的ECX暫存器的方式來修改IA-32架構(gòu)的ECX暫存器的宏 指令,上述方法包括清除快速字串旗標(biāo)。因應(yīng)字串重復(fù)搬移宏 指令,上述方法包括設(shè)定或清除快速字串旗標(biāo),當(dāng)快速字串旗 標(biāo)被清除時,上述方法包括轉(zhuǎn)移上述微處理器的控制權(quán)到第一 組微指令序列,以完成字串重復(fù)搬移宏指令。當(dāng)快速字串旗標(biāo) 被設(shè)定時,上述方法包括根據(jù)儲存的立即值,轉(zhuǎn)移上述微處理 器的控制權(quán)到第二組微指令序列內(nèi)的一 目標(biāo)位置,以完成字串 重復(fù)搬移宏指令。第一組微指令序列包括一條件分支微指令, 當(dāng)條件分支微指令被執(zhí)行時,上述條件分支微指令就會根據(jù)儲 存于IA-32架構(gòu)的ECX暫存器的字長度條件分支至第一組微指 令序列的 一 微指令。第二組微指令序列不包括任何條件分支微 指令。本發(fā)明提供 一 個微處理器,并用來執(zhí)行英特爾架構(gòu)(IA - 3 2) 字串重復(fù)搬移(REP MOVS)宏指令,其中被搬移的字串的字長 度指定為于IA-32架構(gòu)的ECX暫存器中的 一 立即值。微處理器包 括一存儲器,配置來儲存第一組微指令序列,用以完成字串重 復(fù)搬移宏指令,上述第一組微指令序列包括一條件分支微指令, 當(dāng)條件分支微指令被執(zhí)行時,上述條件分支微指令就會根據(jù)儲 存于IA-32架構(gòu)的ECX暫存器的字長度條件分支至第一組微指 令序列的一微指令。微處理器包括一指令轉(zhuǎn)譯器,并耦接于存 儲器。因應(yīng)搬移立即值給IA-32架構(gòu)的ECX暫存器的宏指令,指 令轉(zhuǎn)譯器設(shè)定一快速字串旗標(biāo)并儲存立即值。因應(yīng)以不同于搬 移立即值給IA-32架構(gòu)的ECX暫存器的方式來修改IA-32架構(gòu)的 ECX暫存器的宏指令,指令轉(zhuǎn)譯器清除快速字串旗標(biāo)。因應(yīng)字 串重復(fù)搬移宏指令,如果快速字串旗標(biāo)被清除,指令轉(zhuǎn)譯器會 轉(zhuǎn)移上述微處理器的控制權(quán)給第 一 組微指令序列;如果快速字 串旗標(biāo)被設(shè)定,指令轉(zhuǎn)譯器會根據(jù)儲存的立即值產(chǎn)生第二組微 指令序列。第二組微指令序列會完成字串重復(fù)搬移宏指令,并 且不包含任何條件分支微指令。
本發(fā)明提供 一 個微處理器,并用來執(zhí)行英特爾架構(gòu) (IA-32)REP STOS 、 REP INS 、 REP OUTS 、 REP LODS 、 REP CMPS 或REP SCAS宏指令,其中被搬移的字串的字長度指定為于 IA-32架構(gòu)的ECX暫存器中的一立即值。微處理器包括一存儲 器,配置來儲存第一組微指令序列,用以完成REPSTOS、 REP INS、 REPOUTS、 REPLODS、 REP CMPS或REP SCAS宏指令, 上述第一組微指令序列包括一條件分支微指令,當(dāng)條件分支微 指令被執(zhí)行時,上述條件分支微指令就會根據(jù)儲存于IA-32架構(gòu) 的ECX暫存器的字長度條件分支至第一組微指令序列的一微指 令。存儲器也配置來儲存第二組微指令序列,用以完成REPSTOS、 REP INS、 REP OUTS、 REP LODS、 REP CMPS或REP SCAS宏指令,上述第二組微指令序列不包括任何條件分支微指 令。微處理器包括一指令轉(zhuǎn)譯器,并耦接于存儲器。因應(yīng)搬移 立即值給IA-32架構(gòu)的ECX暫存器的宏指令,指令轉(zhuǎn)譯器設(shè)定一 快速字串旗標(biāo)并4諸存立即值。因應(yīng)以不同于拍《移立即值給IA-32 架構(gòu)的ECX暫存器的方式來修改IA-32架構(gòu)的ECX暫存器的宏 指令,指令轉(zhuǎn)譯器清除快速字串旗標(biāo)。因應(yīng)REP STOS、REP INS、 REPOUTS、 REPLODS、 REP CMPS或REP SCAS宏指令,如果 快速字串旗標(biāo)被清除,指令轉(zhuǎn)譯器轉(zhuǎn)移上述微處理器的控制權(quán) 給第一組微指令序列;如果快速字串旗標(biāo)被設(shè)定,指令轉(zhuǎn)譯器 根據(jù)儲存的立即值轉(zhuǎn)移上述微處理器的控制權(quán)給第二組微指令 序列內(nèi)的一 目標(biāo)位置。
本發(fā)明的優(yōu)點是通過消除會完成重復(fù)字串宏指令的微指令 序列中的回路,潛在地改善了重復(fù)字串宏指令的執(zhí)行效能。
本發(fā)明被實行于一個微處理器裝置內(nèi),上述微處理器裝置 可能用于一般用途的計算機。


圖la是已知的微處理器方塊圖。
圖lb是顯示圖la的回路式(looping)REP MOVS微指令序列 144的方塊圖。
圖2是一個顯示本發(fā)明的微處理器200的方塊圖。 圖3是一個顯示圖2中快速REP MOVS微指令序列212的方塊圖。
圖4a是 一 顯示根據(jù)本發(fā)明圖2的指令轉(zhuǎn)譯器206因應(yīng)一 MOV ECX立即宏指令的操作流程圖。
圖4 b是 一 顯示根據(jù)本發(fā)明替代實施例的圖2的指令轉(zhuǎn)譯器206因應(yīng)一MOV ECX立即宏指令的才喿作流程圖。
圖5是一個顯示根據(jù)本發(fā)明圖2的指令轉(zhuǎn)譯器206因應(yīng)接收 到一修改ECX暫存器的宏指令,但不是一MOVECX立即宏指令 的操作流程圖。
圖6是一 顯示根據(jù)本發(fā)明圖2的指令轉(zhuǎn)譯器206因應(yīng)接收一 REP MOVS宏指令的操作流程圖。
圖7是一 個顯示根據(jù)本發(fā)明替代實施例的圖2中指令轉(zhuǎn)譯器 206因應(yīng)接收一REP MOVS宏指令的操作流程圖。
具體實施例方式
現(xiàn)在參考圖la,圖la為一顯示已知技術(shù)微處理器100的方塊 圖。指令快取(未顯示于圖)提供宏指令104給指令轉(zhuǎn)譯器106。 宏指令104之中包括一字串重復(fù)搬移(REPMOVS)宏指令。指令 轉(zhuǎn)譯器106轉(zhuǎn)換宏指令104成微指令108,在此單一宏指令104可 能被轉(zhuǎn)換成一個或多個微指令108。對于更復(fù)雜或更不常被使用 的宏指令104,指令轉(zhuǎn)譯器106可能從一微指令ROM 142得到需 要的微指令10 8 。微指令R O M 14 2儲存不同的微指令序列給許多 宏指令104。舉例來說,REP MOVS宏指令可能有一個回路式 REPMOVS微指令序列144,其它復(fù)雜或不頻繁使用的宏指令則
可能擁有其他不同的微指令序列。
微指令108由一指令調(diào)度器112所接收,指令調(diào)度器112通過 執(zhí)行單元134排定要執(zhí)行的微指令108。執(zhí)行單元134包括各種不 同功能的單元,處理整數(shù)與浮點運算、數(shù)據(jù)搬移、地址計算、 分支運算等等,并可支持微處理器100的宏指令集所需的全部運 算。在一實施例中,執(zhí)行單元134包括一載入單元128與一儲存 單元132,載入單元128從微處理器100的存儲器子系統(tǒng)114載入 數(shù)據(jù)。存儲器子系統(tǒng)114包括 一 個或多個微處理器10 0的快取存
13儲器,再加上用來存取微處理器100的外部存儲器位置的總線接 口單元。在REP MOVS宏指令104的情況,載入單元128從圖la 存儲器子系統(tǒng)114中的字串來源116中擷取(fetch)要搬移的數(shù) 據(jù)。儲存單元132儲存數(shù)據(jù)到圖la存儲器子系統(tǒng)114中的字串目 的地118。
字串來源116與字串目的地118分別包括多重存儲器位置 (multiple memory locations). REP MOVS宏指令104從字串來源 116內(nèi)的一組存儲器位置搬移數(shù)據(jù)值字串到字串目的地118內(nèi)的 另 一組存儲器位置。執(zhí)行單元134耦接于微處理器100的架構(gòu)暫 存器122。架構(gòu)暫存器122包括一個ECX暫存器124。
圖lb為一顯示圖la中回路式(looping)REP MOVS微指令序 列144的一個例子的方塊圖?;芈肥絉EP MOVS孩t指令序列144 從微指令ROM 142轉(zhuǎn)移到指令調(diào)度器112。在微指令ROM 142 發(fā)出回路式REP MOVS孩t指令序列144到指令調(diào)度器112之前, 其他宏指令104被指令轉(zhuǎn)譯器106所接收,指令轉(zhuǎn)譯器106為了字 串搬移與要搬移的字數(shù)目,例如,字串的大小,于架構(gòu)暫存器 122載入來源位置與目的地位置。除非另有詳細指定,用于此的 "字"這一項當(dāng)做固定大小的多個的數(shù)據(jù)位,它被字串搬移宏 指令指定,包括字節(jié)(8位)、字(16位)、雙字(32位)或四字(64位), 但不限于這些。
回路式REP MOVS微指令序列144的第一個微指令108是一 個"來源地址載入暫存(loadtemp, source addr)"的微指令152, 它從字串來源116內(nèi)的存儲器位置載入數(shù)據(jù)到微處理器100的臨 時暫存器。字串來源116內(nèi)的存儲器位置由DS:SI或DS:ESI暫存 器所派給(designated),依宏指令104的地址大小特征而定?;?路式REP MOVS微指令序列144的第二個微指令108是一個"目 的地地址儲存暫存(store temp, destination addr),,的微指令
14154,它從微處理器10 0的臨時暫存器把數(shù)據(jù)儲存到存儲器子系 統(tǒng)114字串目的地118內(nèi)的一個存儲器位置。字串目的地118內(nèi)的 存儲器位置由ES:DI或ES:EDI暫存器所派給,依宏指令104的地 址大小特征而定?;芈肥絉EPMOVS農(nóng)i指令序列144內(nèi)的下一個 微指令108是一個"減量ECX(dec體ent ECX)"微指令156。"減 量ECX"微指令156減少現(xiàn)行ECX暫存器124的值,其減少計數(shù) 值以反映出要被搬移的字串的字數(shù)目?;芈肥絉EP MOVS孩吏指 令序列144內(nèi)要被產(chǎn)生的下一個微指令108是一個"增量來源地 址(increment source addr),,微指令158,它更新DS:SI或DS:ESI 暫存器(依宏指令104的地址大小特征而定)至字串來源116的下 一個來源數(shù)據(jù)位置?;芈肥絉EPMOVS樣i指令序列144內(nèi)要被產(chǎn) 生的下 一 個微指令108是 一 個"增量目的地地址(increment destination addr)"微指令162,它更新ES:DI或ES:EDI暫存器(依 宏指令104的地址大小特征而定)至字串目的地118的下一個目 的地數(shù)據(jù)位置。回路式REPMOVS微指令序列144內(nèi)要被產(chǎn)生的 最后一個微指令108是一個"于ECX分支(branch on ECX)"微 指令164,簡稱為條件分支微指令164,如果架構(gòu)暫存器ECX 124 的值不是0則條件分支回"來源地址載入暫存(load temp, source addr)"微指令152;否則在回^各式REP MOVS微指令序列144 后繼續(xù)到下 一 個微指令108,把控制交回指令轉(zhuǎn)譯器106。
也許可輕易觀察得到,回路式REP MOVS樣i指令序列144 的條件分支樣i指令164創(chuàng)造(creat)—個回路。如同以上所討論, 雖然回路空間(space)很有效率,但回路的執(zhí)行效能相對的較差。 特別是如果正在被搬移的字串很大,微處理器100必須執(zhí)行很大 量的條件分支微指令164,造成REP MOVS宏指令104相對較慢 地執(zhí)行。因為這些原因,降低或消除完成REPMOVS宏指令104 語義的微指令序列中的條件分支微指令164是非常值得的?,F(xiàn)在參考圖2,圖2是一個顯示本發(fā)明的微處理器200的方塊 圖。圖2的微處理器200在各方面相似于圖la的微處理器100。然 而圖2的指令轉(zhuǎn)譯器206不同于圖la的指令轉(zhuǎn)譯器106,因為它包 括一個用以儲存立即ECX值(immediate ECX value)204與快速 字串旗標(biāo)(fast string flag)208的暫存器(圖未示)。當(dāng)指令轉(zhuǎn)譯器 206接收MOV ECX立即宏指令,即搬移立即ECX值204到上述 IA-32架構(gòu)ECX暫存器124的宏指令,在立即ECX值204將被緊接 著發(fā)生的REP MOVS宏指令104所使用的情況下,指令轉(zhuǎn)譯器 206設(shè)定(set)快速字串旗標(biāo)208與儲存立即ECX值204于上述暫 存器。指令轉(zhuǎn)譯器206也產(chǎn)生一個微指令108,它寫入立即ECX 值給架構(gòu)暫存器122的ECX暫存器124。
另 一個圖2指令轉(zhuǎn)譯器206與圖la指令轉(zhuǎn)譯器106不同之處 是指令轉(zhuǎn)譯器206回應(yīng)修改ECX暫存器124內(nèi)容的宏指令(有別 于MOV ECX立即宏指令)的方式,如同一個根據(jù)其他暫存器的 值修改ECX暫存器的計算宏指令,例如,ADDECX、 EAX。特 別的是,如果指令轉(zhuǎn)譯器206接收修改ECX暫存器124的宏指令 104,并且宏指令104不是一個MOVECX立即宏指令,指令轉(zhuǎn)譯 器206會清除快速字串旗標(biāo)208。
另 一個圖2與圖la的不同之處在于圖2包括一個在微指令 ROM 142中的快速REPMOVS微指令序列212,其并沒有包含任 何如同圖lb的條件分支微指令164這樣的回路指令,其將在圖3 詳盡說明。當(dāng)指令轉(zhuǎn)譯器206接收REP MOVS宏指令104時,如 果快速字串旗標(biāo)208被設(shè)定且儲存的立即ECX值204少于或等于 一預(yù)定值(predetermined value),指令轉(zhuǎn)譯器206會根據(jù)儲存的 立即ECX值204(如下所述),轉(zhuǎn)移上述樣i:處理器200的控制權(quán)給 快速REPMOVS微指令序列212中的一個適當(dāng)?shù)奈恢?;否則指令 轉(zhuǎn)譯器206轉(zhuǎn)移控制給回路式REP MOVS微指令序列144。現(xiàn)在參考圖3,圖3是一個顯示圖2中快速REPMOVS微指令 序列212的方塊圖??焖賀EP MOVS微指令序列212包括多個搬 移字串?dāng)?shù)據(jù)集322,其中在快速REP MOVS微指令序列212中搬 移字串?dāng)?shù)據(jù)集322的數(shù)目為上述預(yù)定值(如上面圖2所提)。圖3所 示的實施例中,有64組搬移字串?dāng)?shù)據(jù)集322,因此預(yù)定值是64。 其他實施例可包含更多或更少的搬移字串?dāng)?shù)據(jù)集322。搬移字串 數(shù)據(jù)集322的數(shù)目是一個設(shè)計上的考量,基于可獲得的微指令 ROM空間與所想要增進的效能而定。每一個搬移字串?dāng)?shù)據(jù)集 322包括多個微指令108,其搬移對應(yīng)REPMOVS宏指令104的一 字串?dāng)?shù)據(jù)。因此,每一個搬移字串?dāng)?shù)據(jù)集322包括一 "來源地址 載入暫存"微指令152、 一 "目的地地址儲存暫存"微指令154、 一 "增量來源地址"微指令158與一 "增量目的地地址"微指令 162,其相似于圖lb。圖3的實施例包括一最佳化(optimization) 的例子,其中ECX暫存器124的值在快速REP MOVS微指令序列 212的結(jié)尾(end)被載入0,而不是減低每一個搬移字串?dāng)?shù)據(jù)集 322內(nèi)的ECX暫存器124的值。然而,在其他實施例中,每一個 搬移字串?dāng)?shù)據(jù)集322也包括一個圖lb的"減量ECX"微指令156。
被REP MOVS宏指令104搬移或儲存的數(shù)據(jù)字串可能包含 數(shù)百或數(shù)千的數(shù)據(jù)字。也就是說,被REPMOVS宏指令104所使 用的立即ECX值可能相當(dāng)?shù)拇?。更進一步,孩i指令ROM 142還 包含許多除了之前所述回路式REP MOVS微指令序列144與快 速REP MOVS微指令序列212之外其他的微指令序列。在實際的 考量上,微指令ROM 142是固定的大小。因此快速REPMOVS 微指令序列212的長度受限于只有在立即ECX值最高不超過其 預(yù)定值時處理REP MOVS宏指令104。任何REP MOVS宏指令 104在立即ECX值大于預(yù)定值時將被回路式REP MOVS微指令 序列144來處理。如果要被搬移的數(shù)據(jù)位置的數(shù)量低于或等于預(yù)定值,指令
轉(zhuǎn)譯器206計算快速REP MOVS微指令序列212內(nèi)的起始位置。 起始位置是目標(biāo)地址312,它指出第一組快速搬移字串?dāng)?shù)據(jù)集 322要被微指令ROM 142從快速REP MOVS微指令序列212輸出 給現(xiàn)行的REPMOVS宏指令104。為了闡明目的,現(xiàn)在說明一個 例子。在這個例子中,假定每一個孩i指令152、 154、 158與162 是4位的長度,使得每一個搬移字串?dāng)?shù)據(jù)集322是16位長;預(yù)定 值是64組搬移字串?dāng)?shù)據(jù)集322;第一個搬移字串?dāng)?shù)據(jù)集322(搬移 字串?dāng)?shù)據(jù)集0)的起始地址于0x500地址;因此最后搬移字串?dāng)?shù)據(jù) 集322(搬移字串?dāng)?shù)據(jù)集63)將開始于^f效指令ROM 142內(nèi)的地址 0x8F0。因為一搬移字串?dāng)?shù)據(jù)集322的長度是16位,通過將儲存 的立即ECX值204左移4位(bit),指令轉(zhuǎn)譯器206計算目標(biāo)地址 312。也就是說,指令轉(zhuǎn)譯器106有效地將立即ECX值204乘以16。 在圖3例子中,立即ECX值204是0x03D,左移4位后產(chǎn)生左移的 立即ECX值304為0x03D0。接下來,減法器308從快速REP MOVS 微指令序列結(jié)尾地址306減去左移的ECX值304,以得到目標(biāo)地 址312。在一例子中,快速REP MOVS微指令序列212的結(jié)尾地 址306是0x900,并且計算的目標(biāo)地址312是0x530。因為圖3實施 例的快速REP MOVS微指令序列212的搬移字串?dāng)?shù)據(jù)集322沒有 產(chǎn)生減量ECX暫存器124的微指令108,因此快速REP MOVS微 指令序列212中有一微指令314將ECX暫存器124載入0。因應(yīng) REP MOVS宏指令,在轉(zhuǎn)移控制至快速REP MOVS微指令序列 212內(nèi)的目標(biāo)地址312后,指令轉(zhuǎn)譯器206清除快速字串旗標(biāo)208。 在 一 實施例中,快速REP MOVS微指令序列212包括相同的 微指令連續(xù)集的一陣列,每個上述微指令連續(xù)集搬移一組字串 位,其中根據(jù)一儲存的立即值,指令轉(zhuǎn)譯器配置來計算出快速 REPMOVS微指令序列212內(nèi)的一 目標(biāo)位置,上述目標(biāo)位置為上,上述陣列大小是N個連續(xù)集, 其中指令轉(zhuǎn)譯器配置來計算出上述陣列的上述索引,上述索引 為N減去儲存的上述立即值。在一實施例中,上述目標(biāo)位置在 上述陣列的上述連續(xù)集中的其中之一并且在上述陣列結(jié)尾之前。
現(xiàn)在參考圖4a,圖4a是一顯示根據(jù)本發(fā)明圖2的指令轉(zhuǎn)譯器 206因應(yīng)MOV ECX立即宏指令的操作流程圖。流程開始于方塊 404。
于方塊404,指令轉(zhuǎn)譯器206接收一MOV ECX立即宏指令 104。 MOV ECX立即宏指令104載入立即ECX值于架構(gòu)暫存器 122的ECX暫存器124。流程前進到方塊406。
于方塊406,指令轉(zhuǎn)譯器206儲存被MOV ECX立即宏指令 104指定的立即ECX值至一暫存器。若是接收REP MOVS宏指令 104,指令轉(zhuǎn)譯器206將有可能接著使用立即ECX值204來計算于 快速REP MOVS微指令序列212的一 目標(biāo)地址312。流程前進到 方塊408。
于方塊408,指令轉(zhuǎn)譯器206設(shè)定快速字串旗標(biāo)208。這強化 了指令轉(zhuǎn)譯器206,以致更有效的快速REP MOVS微指令序列 212可以替代回路式REP MOVS微指令序列144, 4吏得當(dāng)快速字 串旗標(biāo)208被設(shè)定時#丸行指令轉(zhuǎn)i奪器206收到的REP MOVS宏指 令104。流程前進到方塊412。
于方塊412,指令轉(zhuǎn)譯器206產(chǎn)生一載入ECX立即微指令來 載入被MOV ECX立即宏指令104所指定的立即ECX值給架構(gòu)暫 存器122的ECX暫存器124。流程結(jié)束于方塊412。
現(xiàn)在參考圖4b,根據(jù)本發(fā)明一個替代的實施例,圖4b是一 顯示圖2的指令轉(zhuǎn)i奪器206因應(yīng)MOV ECX立即宏指令的操作流 程圖。圖4b相似于圖4a,除了方塊40M皮方塊428所取代。相似部分不再贅述。方塊428相似于圖4a的方塊408,除了只有在被 MOV ECX立即宏指令104所指定的立即值小于或等于一預(yù)定值 時,指令轉(zhuǎn)譯器206會設(shè)立快速字串旗標(biāo)208。
現(xiàn)在參考圖5,圖5是一個顯示根據(jù)本發(fā)明圖2的指令轉(zhuǎn)譯器 206因應(yīng)接收到一修改ECX暫存器的宏指令104,但不是一MOV ECX立即宏指令104的操作流程圖。流程開始于步驟504。
于步驟504,指令轉(zhuǎn)譯器206接收到 一 修改ECX暫存器的宏 指令104,但并非MOV ECX立即宏指令104。流程前進到方塊 506。
于方塊506,指令轉(zhuǎn)譯器206清除快速字串旗標(biāo)208。指令轉(zhuǎn) 譯器206清除快速字串旗標(biāo)208,因為當(dāng)指令轉(zhuǎn)譯器206被執(zhí)行 時,它無法由于方塊504所接收的宏指令104來判斷宏指令104 要載入架構(gòu)暫存器122的ECX暫存器124的值。因為這個值可能 是其他架構(gòu)暫存器122的值的函數(shù)且(或)是特定算數(shù)函數(shù),如指 令A(yù)DD ECX, EAX(將暫存器ECX, EAX的值相加)。因此,如果 指令轉(zhuǎn)譯器206接收 一 伴隨而生(subsequent)的REP MOVS宏指 令,指令轉(zhuǎn)譯器206不會轉(zhuǎn)移控制給快速REP MOVS微指令序列 212,因為指令轉(zhuǎn)譯器206不能判斷快速REP MOVS微指令序列 212的圖3搬移字串?dāng)?shù)據(jù)集3 22內(nèi)適當(dāng)?shù)奈恢脕磙D(zhuǎn)移控制。相反 的,在MOV ECX立即宏指令104的情況(如同上述圖4a與圖4b的 說明),指令轉(zhuǎn)譯器206清楚知道ECX 124的值為何(也就是立即 值),因為沒有被牽涉的計算與從屬在其他暫存器/存儲器值上。 流程前進到方塊508。
于方塊508,指令轉(zhuǎn)譯器206產(chǎn)生適當(dāng)?shù)奈⒅噶钚蛄衼硗瓿?修改ECX暫存器124的宏指令104 ,但不是一 個MOV ECX立即宏 指令的語義法。流程結(jié)束于方塊508。
現(xiàn)在參考圖6,圖6是一顯示根據(jù)本發(fā)明圖2的指令轉(zhuǎn)譯器206因應(yīng)接收一REP MOVS宏指令104的操作流程圖。流程開始 于方塊604。
于方塊604,指令轉(zhuǎn)譯器206接收一REP MOVS宏指令104。 REP MOVS宏指令104從存儲器內(nèi)的第一組位置搬移數(shù)據(jù)字串 到存儲器內(nèi)的第二組位置。流程前進到?jīng)Q定方塊606。
于決定方塊606,指令轉(zhuǎn)譯器206決定快速字串旗標(biāo)208是否 被設(shè)定。快速字串旗標(biāo)表示修改ECX暫存器124內(nèi)容的最后的宏 指令104是一MOV ECX立即宏指令。因此,快速字串旗標(biāo)208 被設(shè)定則表示快速REP MOVS微指令序列212可能被使用來給 REP MOVS宏指令104。如果快速字串旗標(biāo)208設(shè)定,那么流程 前進至決定方塊608。如果快速字串旗標(biāo)208沒有祐:i殳定,那么 流程前進至方塊612。
于決定方塊608,指令轉(zhuǎn)譯器206決定立即ECX值204是否大 于一預(yù)定值。預(yù)定值是可以利用的快速REP MOVS^f鼓指令序列 212的最大字串長度。圖6顯示根據(jù)圖4a實施例的指令轉(zhuǎn)譯器206 操作。然而,對一個指令轉(zhuǎn)譯器206根據(jù)圖4b的替代實施例操作 而言,指令轉(zhuǎn)譯器206不需要執(zhí)行決定方塊608的步驟。如果立 即ECX值204大于預(yù)定值,流程前進至方塊612。如果立即ECX 值204沒有大于預(yù)定值,流程前進至方塊614。
于方塊612,指令轉(zhuǎn)譯器206轉(zhuǎn)移控制至回路式REP MOVS 微指令序列144。流程結(jié)束于方塊612。
于方塊614,指令轉(zhuǎn)譯器206根據(jù)儲存的立即ECX值204產(chǎn)生 一目標(biāo)地址312給快速REPMOVS微指令序列212,這會使得微 指令ROM 142輸出一數(shù)量的搬移字串?dāng)?shù)據(jù)集322,其數(shù)量等于儲 存的立即ECX值204。在一個實施例,指令轉(zhuǎn)譯器206產(chǎn)生目標(biāo) 地址312,如同圖3所示。流程前進至方塊616。
于方塊616,指令轉(zhuǎn)譯器206于方塊614計算出的目標(biāo)地312轉(zhuǎn)移控制至微指令ROM 142的快速REP MOVS微指令序列 212。流程前進至方塊618。
于方塊618,微指令ROM142輸出一 "來源地址載入暫存" 152、"目的地地址儲存暫存"154、"增量來源地址"158、與"增 量目的地地址"162的微指令108的微指令序列,其開始于目標(biāo) 地址312。被產(chǎn)生的微指令108是一數(shù)量的快速REP MOVS微指 令序列212的搬移字串?dāng)?shù)據(jù)集322,其數(shù)量等于儲存的立即ECX 值204。 #般移字串?dāng)?shù)據(jù)集322顯示的序列對應(yīng)于一REP MOVS宏 指令104。流程前進至方塊622。
于方塊622,在樣t指令ROM 142產(chǎn)生全部相關(guān)于REPMOVS 宏指令104的微指令108之后,微指令ROM 142將控制返回給指 令轉(zhuǎn)譯器206。流程結(jié)束于方塊622。
現(xiàn)在參考圖7,根據(jù)本發(fā)明一個替代的實施例,圖7是一個 顯示圖2中指令轉(zhuǎn)譯器206因應(yīng)接收一 REP MOVS宏指令104的 操作流程圖。圖7的流程圖相似于圖6的流程圖,除了方塊614 到方塊622這部分被方塊714與方塊716取代。相似部分不再贅 述。流程,人決定方塊608前進至方塊714。
于方塊714,指令轉(zhuǎn)譯器206產(chǎn)生圖3的N個搬移字串?dāng)?shù)據(jù)集 322,在此N是圖2的儲存的立即ECX值204。每一次指令轉(zhuǎn)譯器 206產(chǎn)生搬移字串?dāng)?shù)據(jù)集322,指令轉(zhuǎn)譯器206就減少立即ECX 值204。當(dāng)ECX暫存器204到達0時,就產(chǎn)生了全部所需要的N個 搬移字串?dāng)?shù)據(jù)集322。流程前進到方塊716。
于方塊716,全部N個搬移字串?dāng)?shù)據(jù)集322已經(jīng)產(chǎn)生,指令 轉(zhuǎn)譯器206產(chǎn)生一將架構(gòu)暫存器122的ECX暫存器124載入為0的 微指令314。流程結(jié)束于方塊716。
雖然實施例已經(jīng)說明了有關(guān)于x86架構(gòu)的REP MOVS宏指 令。但本發(fā)明不限于此特定的巨集架構(gòu),而可以更改為配合其他有重復(fù)字串宏指令的巨集架構(gòu)。更進一步,雖然實施例已經(jīng)
說明了有關(guān)于REPMOVS宏指令104,在此啟示的4支術(shù)也可以用 于改善IA國32 INS、 OUTS、 LOSD、 STOS、 CMPS、 SCAS這些 包含REP前置指令的宏指令104的效能。舉例來說,在REP STOS 宏指令104的情況,微指令ROM 142包含一'決速REP STOS微指 令序列,此微指令序列包含相似于圖3搬移字串?dāng)?shù)據(jù)集的儲存字 串?dāng)?shù)據(jù)集,只是不需要"來源地址載入暫存"微指令152與"增 量來源地址"微指令158,并且"目的地地址儲存暫存"微指令 154從IA-32架構(gòu)的AL、 AX、 EAX或RAX暫存器而不是臨時暫 存器中把數(shù)據(jù)儲存至存儲器子系統(tǒng)114的字串目的地118。
本發(fā)明多個實施例描述于此,^旦必須知道它們只是以例子 的方法呈現(xiàn),并非只限于此。很明顯的,熟習(xí)此計算機相關(guān)技 術(shù)者可以在形式或細節(jié)上做多種改變而沒脫離這個發(fā)明的范 疇。舉例來說,除了使用硬件(如耦接(或這些裝置之內(nèi))一中央 處理單元(CPU)、微處理器、微控制器、數(shù)字信號處理器、處 理器核心、芯片上系統(tǒng)(SOC)或任何其他裝置),也可能用軟件 實施(如計算機可讀碼、程序碼與處理成任何形式的微指令,如 同來源、物件或機械語言),如在一個配置來儲存軟件的計算機 可用(如可讀)介質(zhì)中。這樣的軟件可實行,例如函數(shù)、建構(gòu)、 模型制作、模擬、說明與(或)測試在此說明的裝置及方法。舉 例來說,這可以通過一般的程序語言(如C、 C++)、硬件描述語 言(HDL,包括Verilog HDL、 VHDL等)或其他可得程序來完成。 這樣的軟件可以配置在任何所知的計算才幾可用介質(zhì)如半導(dǎo)體、 磁盤或光盤(如CD-ROM、 DVD-ROM等)。本發(fā)明的實施例可以 包括提供在此所敘述的微處理器的方法,通過提供敘述微處理 器設(shè)計與隨后傳輸軟件如計算機數(shù)據(jù)信號在溝通網(wǎng)絡(luò)上(包括 因特網(wǎng)與局域網(wǎng))。也可知道在此敘述的裝置與方法可被包含在半導(dǎo)體知識產(chǎn)權(quán)核心中,如同微處理器核心(如實施于HDL)與 在集成電路生產(chǎn)中的硬件電路。除此之外,在此敘述的裝置與 方法可以由硬件與軟件的結(jié)合來實施。因此,本發(fā)明不應(yīng)被在 此敘述的實施例范本所限制,而必須只能根據(jù)上述權(quán)利要求的 范圍及與它們的相等的意思來定義。
以上所述僅為本發(fā)明較佳實施例,然其并非用以限定本發(fā) 明的范圍,任何熟悉本項技術(shù)的人員,在不脫離本發(fā)明的精神 和范圍內(nèi),可在此基礎(chǔ)上做進一步的改進和變化,因此本發(fā)明 的保護范圍當(dāng)以本申請的權(quán)利要求書所界定的范圍為準(zhǔn)。
附圖中符號的簡單說明如下
100:微處理器 104:宏指令
106:指令轉(zhuǎn)譯器 108:微指令
112:指令調(diào)度器 114:存儲器子系統(tǒng)
116:字串來源 118:字串目的i也
122:架構(gòu)暫存器 124:ECX暫存器
128:載入單元 132:儲存單元
134:執(zhí)行單元 142:微指令ROM
144:回路式REP MOVS微指令序列152:"來源地址載入暫存"微指令154:"目的地地址儲存暫存"微指令
156:"減量ECX"微指令
158:"增量來源地址"微指令
162:"增量目的地地址"微指令
164:分支微指令 200:微處理器
204:立即ECX值 206:指令轉(zhuǎn)譯器
208:快速字串旗標(biāo)
212:快速REP MOVS微指令序歹'J304:左移的ECX值
308:減法器
314:載入為0的微指令
404、楊、德、412、 428:
504、 506、 508:流程方塊
604、 606、 608、 612、 614、
714、 716:流禾呈方塊。
306:微指令序列結(jié)尾地址 312:目標(biāo)地址 322:搬移字串?dāng)?shù)據(jù)集 流程方塊
616、 618、 622:流程方塊
權(quán)利要求
1.一種微處理器,其特征在于,用來執(zhí)行IA-32架構(gòu)字串重復(fù)搬移宏指令,其中被搬移的字串的字長度被指定為于上述IA-32架構(gòu)的ECX暫存器中的一立即值,上述微處理器包括一存儲器,配置來儲存一第一組微指令序列,用來完成上述字串重復(fù)搬移宏指令,上述第一組微指令序列包含條件分支微指令,當(dāng)上述條件分支微指令被執(zhí)行時,上述條件分支微指令根據(jù)上述IA-32架構(gòu)的ECX暫存器里儲存的字長度條件分支到位于上述第一組微指令序列內(nèi)的一微指令;以及一第二組微指令序列,用來完成上述字串重復(fù)搬移宏指令,上述第二組微指令序列不包含任何條件分支微指令;以及一指令轉(zhuǎn)譯器,耦接至上述存儲器,配置來因應(yīng)搬移上述立即值到上述IA-32架構(gòu)的ECX暫存器的宏指令,設(shè)定一快速字串旗標(biāo)并儲存上述立即值;以及因應(yīng)以不同于搬移上述立即值到上述IA-32架構(gòu)的ECX暫存器的方式修改上述IA-32架構(gòu)的ECX暫存器的宏指令,清除上述快速字串旗標(biāo);以及因應(yīng)一字串重復(fù)搬移宏指令當(dāng)上述快速字串旗標(biāo)被清除時,轉(zhuǎn)移上述微處理器的控制權(quán)到上述第一組微指令序列;以及當(dāng)上述快速字串旗標(biāo)被設(shè)定時,根據(jù)儲存的上述立即值轉(zhuǎn)移上述微處理器的控制權(quán)到位于上述第二組微指令序列內(nèi)的一目標(biāo)位置。
2. 根據(jù)權(quán)利要求l所述的微處理器,其特征在于,因應(yīng)搬移上述立即值到上述IA-32架構(gòu)的ECX暫存器的宏指令,指令轉(zhuǎn)譯器只在儲存的上述立即值少于或等于一預(yù)定值時設(shè)定上述快速字串旗標(biāo)。
3. 根據(jù)權(quán)利要求l所述的微處理器,其特征在于,因應(yīng)字串重復(fù)搬移宏指令,如果上述快速字串旗標(biāo)被設(shè)定,并且只有當(dāng)儲存的上述立即值少于或等于一預(yù)定值時,上述指令轉(zhuǎn)譯器轉(zhuǎn)移上述微處理器的控制權(quán)到上述第二組微指令序列內(nèi)的上述目標(biāo)位置。
4. 根據(jù)權(quán)利要求l所述的微處理器,其特征在于,因應(yīng)字串重復(fù)搬移宏指令,在轉(zhuǎn)移上述微處理器的控制權(quán)到上述第二組微指令序列內(nèi)的上述目標(biāo)位置后,上述指令轉(zhuǎn)譯器更進一步配置來清除上述快速字串旗標(biāo)。
5. 根據(jù)權(quán)利要求l所述的微處理器,其特征在于,上述第二組微指令序列包括相同的微指令連續(xù)集的陣列,每一個上述微指令連續(xù)集搬移一組字串位,其中,上述指令轉(zhuǎn)譯器根據(jù)儲存的上述立即值計算出上述第二組微指令序列內(nèi)的上述目標(biāo)位置,上述目標(biāo)位置為上述陣列的一索引。
6. 根據(jù)權(quán)利要求5所述的微處理器,其特征在于,上述陣列的大小是N個微指令連續(xù)集,N為正整數(shù),其中上述索引為N減去儲存的上述立即值。
7. —種微處理器方法,其特征在于,用來執(zhí)行IA-32架構(gòu)字串重復(fù)搬移宏指令,其中被搬移的字串的字長度被指定為于上述IA-32架構(gòu)的ECX暫存器中的 一立即值,上述微處理器包括一用來儲存多個微指令序列的存儲器,上述微處理器方法包括因應(yīng)搬移上述立即值到上述IA-32架構(gòu)的ECX暫存器的宏指令,設(shè)定一快速字串旗標(biāo)并儲存上述立即值;因應(yīng)以不同于搬移上述立即值到上述IA-32架構(gòu)的ECX暫存器的方式修改上述IA-32架構(gòu)的ECX暫存器的宏指令,清除上述快速字串旗標(biāo);因應(yīng)一字串重復(fù)搬移宏指令設(shè)定或清除上述快速字串旗標(biāo);當(dāng)上述快速字串旗標(biāo)被清除時,轉(zhuǎn)移上述微處理器的控制權(quán)到 一 第 一 組微指令序列以完成上述字串重復(fù)搬移宏指令;以及當(dāng)上述快速字串旗標(biāo)被設(shè)定時,根據(jù)儲存的上述立即值轉(zhuǎn)移上述微處理器的控制權(quán)到一第二組微指令序列內(nèi)的一目標(biāo)位置以完成上述字串重復(fù)搬移宏指令;其中上述第一組微指令序列包括一條件分支微指令,當(dāng)上述條件分支微指令被執(zhí)行時,上述條件分支微指令根據(jù)上述IA-32架構(gòu)的ECX暫存器里儲存的字長度條件分支到位于上述第一組微指令序列內(nèi)的一微指令;其中上述第二組微指令序列不包含任何條件分支微指令。
8. 根據(jù)權(quán)利要求7所述的微處理器方法,其特征在于,還包括因應(yīng)搬移上述立即值到上述IA - 3 2架構(gòu)的E C X暫存器的宏指令,只有當(dāng)儲存的上述立即值少于或等于一預(yù)定值時,設(shè)定上述快速字串旗標(biāo)。
9. 根據(jù)權(quán)利要求7所述的微處理器方法,其特征在于,還包括因應(yīng)上述字串重復(fù)搬移宏指令,如果上述快速字串旗標(biāo)被設(shè)定,并且只有當(dāng)儲存的上述立即值少于或等于 一 預(yù)定值時,轉(zhuǎn)移上述微處理器的控制權(quán)到上述第二組微指令序列內(nèi)的上述目標(biāo)位置。
10. 根據(jù)權(quán)利要求7所述的微處理器方法,其特征在于,還包括因應(yīng)上述字串重復(fù)搬移宏指令,在轉(zhuǎn)移上述微處理器的控制權(quán)到上述第二組微指令序列內(nèi)的上述目標(biāo)位置后,清除上述快速字串旗標(biāo)。
11. 根據(jù)權(quán)利要求7所述的微處理器方法,其特征在于,上述第二組微指令序列包括相同的微指令連續(xù)集的陣列,每一個上述微指令連續(xù)集搬移 一 組字串位,上述微處理器方法還包括根據(jù)儲存的上述立即值,計算上述第二組微指令序列內(nèi)的上述目標(biāo)位置,上述目標(biāo)位置為上述陣列的一索引。
12. 根據(jù)權(quán)利要求ll所述的微處理器方法,其特征在于,上述陣列的大小是N個微指令連續(xù)集,N為正整數(shù),其中上述索引為N減去儲存的上述立即值。
13. —種微處理器,其特征在于,用來執(zhí)行IA-32架構(gòu)字串重復(fù)搬移宏指令,其中被搬移的字串的字長度被指定為于上述IA-32架構(gòu)的ECX暫存器中的一立即值,上述微處理器包括一存儲器,配置來儲存一第一組微指令序列,用來完成上述字串重復(fù)搬移宏指令,上述第一組微指令序列包含條件分支微指令,當(dāng)上述條件分支微指令被執(zhí)行時,上述條件分支微指令根據(jù)上述IA-32架構(gòu)的ECX暫存器里儲存的字長度條件分支到位于上述第一組微指令序列內(nèi)的一微指令;以及一指令轉(zhuǎn)譯器,耦接至上述存儲器,配置來因應(yīng)搬移上述立即值到上述IA-32架構(gòu)的ECX暫存器的宏指令,設(shè)定一快速字串旗標(biāo)并儲存上述立即值;以及因應(yīng)以不同于搬移上述立即值到上述IA-32架構(gòu)的ECX暫存器的方式修改上述IA-32架構(gòu)的ECX暫存器的宏指令,清除上述快速字串旗標(biāo);以及因應(yīng)一字串重復(fù)搬移宏指令當(dāng)上述快速字串旗標(biāo)被清除時,轉(zhuǎn)移上述微處理器的控制權(quán)到上述第一組微指令序列;以及當(dāng)上述快速字串旗標(biāo)被設(shè)定時,根據(jù)儲存的上述立即值產(chǎn)生一第二組微指令序列,其中上述第二組微指令序列完成上述字串重復(fù)搬移宏指令,其中上述第二組微指令序列不包含任何條件分支微指令。
14. 根據(jù)權(quán)利要求13所述的微處理器,其特征在于,上述第二組微指令序列包括相同的微指令連續(xù)集,每一個上述微指令連續(xù)集搬移一組字串位,其中上述指令轉(zhuǎn)譯器根據(jù)儲存的上述立即值,產(chǎn)生相同的微指令連續(xù)集在上述第二組微指令序列內(nèi)。
15. 根據(jù)權(quán)利要求14所述的微處理器,其特征在于,上述指令轉(zhuǎn)譯器產(chǎn)生的相同微指令連續(xù)集的數(shù)目等于儲存的上述立即值。
16. —種微處理器,其特征在于,用來執(zhí)行IA-32架構(gòu)REPSTOS、 REPINS、 REP OUTS、 REP LODS、 REP CMPS或REPSCAS宏指令,其中被搬移的字串的字長度被指定為于上述IA-32架構(gòu)的ECX暫存器中的 一 立即值,上述微處理器包括一存儲器,配置來儲存一第一組微指令序列,用來完成上述REP STOS、 REPINS、 REP OUTS、 REP LODS、 REP CMPS或REP SCAS宏指令,上述第一組微指令序列包含條件分支微指令,當(dāng)上述條件分支微指令被執(zhí)行時,上述條件分支微指令根據(jù)上述IA-32架構(gòu)的ECX暫存器里儲存的字長度條件分支到位于上述第一組微指令序列內(nèi)的一微指令;以及一第二組;微指令序列,用來完成上述REP STOS、 REPINS、 REPOUTS、 REPLODS、 REP CMPS或REP SCAS宏指令,上述第二組微指令序列不包含任何條件分支微指令;以及一指令轉(zhuǎn)譯器,耦接至上述存儲器,配置來因應(yīng)搬移上述立即值到上述IA-32架構(gòu)的ECX暫存器的 宏指令,設(shè)定一快速字串旗標(biāo)并儲存上述立即值;以及因應(yīng)以不同于搬移上述立即值到上述IA-32架構(gòu)的ECX 暫存器的方式修改上述IA-32架構(gòu)的ECX暫存器的宏指令,清除 上述快速字串旗標(biāo);以及因應(yīng)一REPSTOS、 REP INS、 REP OUTS、 REPLODS、 REP CMPS或REP SCAS宏指令當(dāng)上述快速字串旗標(biāo)被清除時,轉(zhuǎn)移上述微處理器的 控制權(quán)到上述第一組微指令序列;以及當(dāng)上述快速字串旗標(biāo)被設(shè)定時,根據(jù)儲存的上述立即 值轉(zhuǎn)移上述微處理器的控制權(quán)到位于上述第二組微指令序 列內(nèi)的一 目標(biāo)位置。
全文摘要
一種微處理器及微處理器方法,用于執(zhí)行字串重復(fù)搬移宏指令,指定被搬移的字串的字長度為于IA-32 ECX暫存器的一立即值。微處理器包括一存儲器,用來儲存第一組微指令序列與第二組微指令序列。第一組微指令序列根據(jù)立即值條件分支至第一組微指令序列的一微指令。第二組微指令序列不包含條件分支微指令。微處理器包括一耦接于存儲器的指令轉(zhuǎn)譯器。因應(yīng)搬移立即值給ECX暫存器的宏指令,指令轉(zhuǎn)譯器設(shè)定一旗標(biāo)并儲存立即值。因應(yīng)修改ECX暫存器的宏指令,指令轉(zhuǎn)譯器清除旗標(biāo)。當(dāng)旗標(biāo)被清除,指令轉(zhuǎn)譯器轉(zhuǎn)移控制給第一組微指令序列;當(dāng)旗標(biāo)被設(shè)定,指令轉(zhuǎn)譯器轉(zhuǎn)移控制給第二組微指令序列。本發(fā)明改善了重復(fù)字串宏指令的執(zhí)行效能。
文檔編號G06F9/22GK101661384SQ20091016934
公開日2010年3月3日 申請日期2009年8月25日 優(yōu)先權(quán)日2008年9月9日
發(fā)明者G.葛蘭·亨利, 泰瑞·派克斯 申請人:威盛電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
蕲春县| 莆田市| 监利县| 桂阳县| 沭阳县| 称多县| 安化县| 平潭县| 白朗县| 锦屏县| 高密市| 九江县| 收藏| 辛集市| 台湾省| 翁源县| 伊金霍洛旗| 舞阳县| 钦州市| 兰坪| 武冈市| 东明县| 丹棱县| 辽宁省| 富民县| 伊吾县| 仙桃市| 江山市| 遵化市| 阜新市| 泾源县| 岳阳县| 乌鲁木齐县| 铁岭县| 白山市| 上高县| 乌兰浩特市| 溧阳市| 陵川县| 清远市| 高碑店市|