新四季網

用於複製數據集的方法和計算機系統與流程

2023-06-17 11:13:12 1


本發明總地涉及文本處理,尤其涉及與字符數據相關聯的處理。

背景技術:
文本處理經常需要各種類型的字符數據處理,包括字符數據串的處理。一些類型的處理包括尋找終止點(例如,串的末尾)、確定字符數據的長度、尋找特定字符、複製字符數據等。用以執行這些類型的處理的當前指令和/或技術傾向於效率低下。

技術實現要素:
處理了現有技術的(多個)缺點,並且經由提供用於複製數據集的字符的電腦程式產品來提供優勢。該電腦程式產品包括計算機可讀存儲介質,其可由處理電路讀取且存儲用於由該處理電路執行以用於執行方法的指令。該方法包括(例如):將存儲器的指定塊內的數據從存儲器載入至寄存器,該數據是要複製的數據集的至少一部分;獲得寄存器中載入的數據量的計數;由處理器確定寄存器中載入的數據的終止值,該確定包括檢查該數據以確定寄存器是否包括終止字符,以及基於寄存器包括該終止字符,設定終止值為終止字符的位置,並且基於寄存器不包括終止字符,設定終止值為預定義值;存儲寄存器中載入的數據在存儲器中選定的位置;基於計數和終止值中的至少一個檢查數據集中是否存在要複製的附加數據;以及基於檢查指示附加數據要複製,複製該附加數據。本文中也描述和要求關於本發明的一個或多個方面的方法和系統。另外,本文中也描述且可要求關於本發明的一個或多個方面的服務。經由本發明的技術實現額外特徵和優勢。本發明的其他實施例和方面在本文中得以詳細描述且被視為所要求的本發明的一部分。附圖說明現在將參考附圖僅通過示例方式描述發明的多個實施例,在附圖中:圖1描繪併入且使用本發明的一個或者多個方面的計算環境的實例;圖2A描繪併入且使用本發明的一個或者多個方面的計算環境的另一實例;圖2B描繪根據本發明的一個方面的圖2A的存儲器的進一步細節;圖3描繪根據本發明的一個方面的從一個存儲器位置向另一個存儲器位置複製分隔字符數據集的邏輯的一個實施例;圖4A描繪根據本發明的一個方面的從其將數據載入至向量寄存器的主存儲器的一個實例;圖4B描繪根據本發明的一個方面的載入來自圖4A的主存儲器的字符數據的向量寄存器的一個實例;圖4C描繪根據本發明的一個方面的從其載入數據至向量寄存器主存儲器的另一個實例;圖4D和4E描繪根據本發明的一個方面的加載來自圖4C的主存儲器的字符數據的向量寄存器的實例;圖5描繪根據本發明的一個方面的「向量載入至塊邊界」指令的格式的一個實施例;圖6A描繪根據本發明的一個方面的與「向量載入至塊邊界」指令相關聯的邏輯的一個實施例;圖6B描繪根據本發明的一個方面的與「向量載入至塊邊界」指令相關聯的邏輯的另一個實施例;圖7描繪根據本發明的一個方面的「向量尋找元素不相等」指令的格式的一個實施例;圖8描繪根據本發明的一個方面的與「向量尋找元素不相等」指令相關聯的邏輯的一個實施例;圖9描繪根據本發明的一個方面的用以執行圖8的邏輯的各種處理塊的一個實施例;圖10描繪根據本發明的一個方面的「對塊邊界載入計數」指令的格式的一個實施例;圖11描繪根據本發明的一個方面的與「對塊邊界載入計數」指令相關聯的邏輯的一個實施例;圖12描繪根據本發明的一個方面的寄存器文件的一個實例;圖13描繪併入本發明的一個或多個方面的電腦程式產品的一個實施例;圖14描繪併入且使用本發明一個或多個方面的主機計算機系統的一個實施例;圖15描繪併入且使用本發明一個或多個方面的計算機系統的進一步實例;圖16描繪併入且使用本發明一個或多個方面的包含計算機網絡的計算機系統的另一實例;圖17描繪併入且使用本發明一個或多個實施例的計算機系統的各種元件的一個實施例;圖18A描繪併入且使用本發明一個或多個方面的圖17的計算機系統的執行單元的一個實施例;圖18B描繪併入且使用本發明一個或多個方面的圖17的計算機系統的分支單元的一個實施例;圖18C描繪併入且使用本發明一個或多個實施例的圖17的計算機系統的載入/存儲單元的一個實施例;以及圖19描繪併入且使用本發明一個或多個方面的仿真主機計算機系統的一個實施例。具體實施方式根據本發明的一個方面,提供用於促進字符數據的處理的能力,包括(但不限於)任何語言中的字母字符;數字;標點符號;和/或其他符號。字符數據可為或可不為數據的串。標準與字符數據相關聯,標準的實例包括(但不限於):ASCII(美國信息交換標準碼);Unicode,包括(但不限於)UTF(Unicode變換格式)8;UTF16;等。在一個方面中,提供使用並行處理並且在不引起無根據的例外的情況下,從一個存儲器位置向另一個存儲器位置複製終止字符數據集的字符(例如,字符的空終止串)的技術。在一個或者多個寄存器內加載要複製的字符數據。具體地,在一個實施例中,使用將數據並行載入向量寄存器至指定邊界並且提供確定載入的字符數目的方式的指令。在一個實施例中,為了確定載入字符的數目(計數),使用另一指令(例如,「對塊邊界載入計數」指令)。另外,使用用以在字符數據內尋找第一分隔符字符(例如,第一終止字符,諸如零或者空字符)的指令(例如,「向量尋找元素不相等」指令)。該指令並行檢查多個字節的數據。通過使用這些指令,可以使用最少數目的分支指令複製字符數據集。另外,提供字符數據的快速並行複製,同時防止假意外。如本文描述,向量寄存器的一個元素(也稱為向量)作為實例長度是一、二或者四字節;並且向量操作數(例如)為具有多個元素的SIMD(單指令多數據)操作數。在其他實施例中,元素可以是其他大小的;且向量操作數不需要為SIMD,和/或可包括一個元素。參看圖1描述併入且使用本發明的一個或多個方面的計算環境的一個實施例。計算環境100包括(例如)經由(例如)一條或多條總線108和/或其他連接耦接至彼此的處理器102(例如,中央處理單元)、存儲器104(例如,主存儲器)和一個或多個輸入/輸出(I/O)器件和/或接口106。在一個實例中,處理器102基於由InternationalBusinessMachinesCorporation供應的z/Architecture,且為伺服器的一部分,諸如也由InternationalBusinessMachinesCorporation供應且實施z/Architecture的Systemz伺服器。z/Architecture的一個實施例描述於題為「z/ArchitecturePrinciplesofOperation」的公開號(SA22-7832-08號,第九版,2010年8月)的報告中,該報告在此以其全文引用的方式併入本文中。在一個實例中,該處理器執行作業系統,諸如,也由InternationalBusinessMachinesCorporation供應的z/OS。和為美國紐約Armonk市的InternationalBusinessMachinesCorporation的註冊商標。本文中使用的其他名稱可能為InternationalBusinessMachinesCorporation或其他公司的註冊商標、商標或產品名稱。在另一實施例中,處理器102基於由InternationalBusinessMachinesCorporation供應的Power架構。Power架構的一個實施例描述於「PowerISATM第2.06版修訂B」(InternationalBusinessMachinesCorporation,2010年7月23日)中,該文件在此以其全文引用的方式併入本文中。POWER為InternationalBusinessMachinesCorporation的註冊商標。在再一實施例中,處理器102基於由IntelCorporation供應的Intel架構。Intel架構的一個實施例描述於「64andIA-32ArchitecturesDeveloper'sManual:第2B卷,InstructionsSetReference,A-L」(序號253666-041US,2011年12月)和「64andIA-32ArchitecturesDeveloper'sManual:第2B卷,InstructionsSetReference,M-Z」(序號253667-041US,2011年12月)中,這些文件中的每一個在此以其全文引用的方式併入本文中。為加利福尼亞的聖克拉拉的IntelCorporation的註冊商標。參看圖2A描述併入且使用本發明的一個或多個實施例的計算環境的另一實施例。在此實例中,計算環境200包括(例如)經由(例如)一個或多個總線208和/或其他連接耦接至彼此的本地中央處理單元202、存儲器204和一個或多個輸入/輸出器件和/或接口206。作為實例,計算環境200可包括:由InternationalBusinessMachinesCorporation(Armonk,NewYork)供應的PowerPC處理器、pSeries伺服器或xSeries伺服器;由HewlettPackardCo.(PaloAlto,California)供應的具有IntelItaniumII處理器的HPSuperdome;和/或基於由InternationalBusinessMachinesCorporation、HewlettPackard、Intel、Oracle或其他人供應的架構的其他機器。本地中央處理單元202包括一個或多個本地寄存器210,諸如,在該環境內的處理期間使用的一個或多個通用寄存器和/或一個或多個專用寄存器。這些寄存器包括表示在任何特定時間點的環境狀態的信息。此外,本地中央處理單元202執行存儲於存儲器204中的指令和程序代碼。在一個特定實例中,中央處理單元執行存儲於存儲器204中的仿真器代碼212。此代碼使得以一個架構中配置的處理環境能夠仿真另一架構。舉例而言,仿真器代碼212允許基於不同於z/Architecture的架構的機器(諸如,PowerPC處理器、pSeries伺服器、xSeries伺服器、HPSuperdome伺服器或其他)仿真z/Architecture並執行基於z/Architecture開發的軟體和指令。參看圖2B描述關於仿真器代碼212的進一步細節。客戶指令250包含開發在不同於本地CPU202的架構的架構中執行的軟體指令(例如,機器指令)。舉例而言,客戶指令250可能已經設計以在z/Architecture處理器102上執行,但相反,正在本地CPU202(其可為(例如)IntelItaniumII處理器)上仿真客戶指令250。在一個實例中,仿真器代碼212包括指令取得單元252以自存儲器204獲得一個或多個客戶指令250,並且可選地提供用於所獲得的指令的本地緩衝。仿真器代碼212也包括指令翻譯例程254以確定已獲得的客戶指令的類型且將客戶指令翻譯成一個或多個相應本地指令256。此翻譯包括(例如)識別要由客戶指令執行的功能並選擇(多個)本地指令以執行該功能。另外,仿真器212包括仿真控制例程260以使得執行本地指令。仿真控制例程260可使得本地CPU202執行仿真一個或多個先前所獲得的客戶指令的本地指令的例程,並且,在這種執行完成時,將控制返回至指令取得例程以仿真下一個客戶指令或群客戶指令的獲得。本地指令256的執行可包括將數據自存儲器204載入至寄存器中;將數據自寄存器存儲回至存儲器;或執行某類型的算術或邏輯運算(如由翻譯例程確定那樣)。每個例程(例如)以軟體來實施,該軟體存儲於存儲器中且由本地中央處理單元202來執行。在其他實例中,例程或運算中的一個或多個以固件、硬體、軟體或其某組合來實施。可使用本地CPU的寄存器210或通過使用存儲器204中的位置仿真仿真處理器的寄存器。在實施例中,客戶指令250、本地指令256和仿真器代碼212可常駐於相同存儲器中或可在不同存儲器器件間分配。如本文中所使用,固件包括(例如)處理器的微碼、毫碼和/或宏碼。固件包括(例如)在高級機器碼的實施中使用的硬體級指令和/或數據結構。在一個實施例中,固件包括(例如)通常作為微碼遞送的專屬碼,該微碼包括受信任軟體或基礎硬體所特有的微碼且控制作業系統對系統硬體的存取。在一個實例中,所獲得的、經翻譯並經執行的客戶指令250為本文中所描述的一個或者多個指令。自存儲器取得是一個架構(例如,z/Architecture)的指令,將該指令翻譯且表示為另一架構(例如,PowerPC、pSeries、xSeries、Intel等)的本地指令256的序列。然後執行這些本地指令。在一個實施例中,本文中所描述的各種指令為根據本發明的實施例提供的向量指令,其為向量工具的一部分。向量工具提供(例如)在自一個至十六個元素的範圍內的固定大小的向量。每向量包括由工具中所定義的向量指令進行運算的數據。在一個實施例中,若向量由多個元素組成,則將每個元素與其他元素並行地處理。指令完成不出現,直至所有元素的處理完成。如本文中所描述,可將向量指令實施為包括(但不限於)z/Architecture、Power、Intel等的各種架構的一部分。儘管本文中所描述的實施例針對z/Architecture,但向量指令和本發明的一個或多個實施例可基於許多其他架構。z/Architecture僅為實例。在將向量工具實施為z/Architecture的一部分的一個實施例中,為了使用向量寄存器和指令,將指定控制寄存器(例如,控制寄存器0)中的向量啟用控制和寄存器控制設定為(例如)一。若安裝了向量工具且在未設定啟用控制的情況下執行向量指令,則看作為數據例外。若未安裝向量工具且執行向量指令,則看作為操作例外。向量數據例如以與其他數據格式相同的自左至右順序顯現於儲存器中。編號為0至7的數據格式的位構成儲存器中的最左側(最低編號)字節位置中的字節,位8至15形成下個順序位置中的字節,等等。在另一實例中,向量數據可以另一順序(諸如,自右至左)顯現於儲存器中。用向量工具提供的向量指令中的許多向量指令具有指定位的欄位。被稱作寄存器擴展位或RXB的此欄位包括用於向量寄存器指明的操作數中的每一個的最高有效位。用於未由指令指定的寄存器指明的位將保留,且被設定為零。在一個實例中,RXB欄位包括四個位(例如,位0至3),且將位定義如下:0-用於指令的第一向量寄存器指明的最高有效位。1-用於指令的第二向量寄存器指明(若有的話)的最高有效位。2-用於指令的第三向量寄存器指明(若有的話)的最高有效位。3-用於指令的第四向量寄存器指明(若有的話)的最高有效位。由(例如)組譯器取決於寄存器編號將每位設定為零或一。舉例而言,對於寄存器0至15,將位設定為0;對於寄存器16至31,將位設定為1等等。在一個實施例中,每個RXB位為用於包括一個或多個向量寄存器的指令中的特定位置的擴展位。舉例而言,在一個或多個向量指令中,RXB的位0為位置8至11的擴展位,其被指派至(例如)V1;RXB的位1為位置12至15的擴展位,其被指派至(例如)V2;等等。在另一實施例中,RXB欄位包括額外位,且將一個以上位用作用於每個向量或位置的擴展。如本文描述,根據本發明的一個方面使用各種指令,以便從一個存儲器位置向另一個存儲器位置複製字符數據,諸如來自終止字符串的數據。下面進一步詳細描述與複製相關聯的處理和使用的各種指令。。首先參考圖3,在一個實施例中,為了複製終止字符數據集的字符(諸如,空終止字符串),使用例如「向量載入至塊邊界」指令,用至少一部分字符數據集載入向量寄存器(步驟300)。該指令並行載入直到例如16個字節的數據,而不跨越從其載入數據的主存儲器的指定邊界。下面描述與此指令相關的細節。此後,使用例如下面描述的「對塊邊界載入計數」指令確定數據的載入字節的數目(步驟302)。接著,執行關於字符數據的末尾(例如,關於空或者零)的搜索(步驟304)。在一個實施例中,使用下面描述的「向量尋找元素不相等」指令,以在加載的寄存器中搜索終止字符(例如,空、零或者另一終止字符)。在一個實例中,該指令在選定向量寄存器中搜索空元素,也稱為零元素(例如,整個元素是零)。空或者零元素指示字符數據的終止;例如,數據的具體字符串的末端。搜索的結果是第一空元素(本文也稱為終止字符)的索引(例如,字節索引),或者在沒有找到終止字符或者不相等元素的情況下,載入向量的搜索的結果是預指定值,諸如正在搜索向量的大小。此後,做出關於是否尋找到終止字符的確定(詢問306)。如果「向量尋找元素不相等指令」沒有尋找到終止字符,則做出關於載入的字符的數目(例如,依據「對塊邊界載入計數」指令確定)是否小於向量的大小(例如,16)的另外確定(詢問38)。如果小於向量的大小,則將載入字符存儲在存儲器的指定位置(步驟310)。另外,索引(該索引將提供在何處繼續存儲數據在存儲器中的位置)遞增向量大小(步驟312)。也就是,將要存儲的附加數據附加在之前數據上。例如,附加數據的開始地址將是從第一字符存儲的指定位置開始的16位元組(或者依賴於向量大小的其他大小)。處理繼續步驟300。返回詢問308,如果載入字節的數目大於或者等於向量大小,則通過邏輯或者連續迭代(iteration),依賴於這是否是第一次要麼在指定位置要麼在從指定位置的偏移,在存儲器中存儲至邊界的載入向量的字節(步驟314)。另外,將存儲器地址遞增至邊界(以使得下一數據集存儲在下一順序寄存器),步驟316,並且處理繼續步驟300。返回詢問306,如果在載入向量中尋找到終止字符,則做出關於終止字符的索引(由「向量尋找元素不相等」指令提供)是否小於或者等於載入字節的數目(從「對塊邊界載入計數」指令確定)的確定(詢問318)。如果是這樣,則載入向量的字節存儲在存儲器中(步驟320),並且不存在另外要存儲的數據。已經從一個存儲器位置向另一存儲器位置複製字符數據集。否則,處理繼續步驟314。用以複製終止字符串的實例偽碼提供如下:如上所示,首先寄存器RX通過例如執行RX和RX之間的XOR並且將結果放置在RX中將RX初始化為零。然後,其中達16個字節的數據載入寄存器VSTR中的循環開始。對於終止字符在VSTR中執行搜索並且將結果放置在變量VPOS中。另外,載入VSTR的字節的數目的計數被確定並且放置在變量GLEN中。此後,終止字符的索引從VPOS提取並且放置在GPOS中。如果尋找到終止字符,則轉到串的末尾處理(EOS)。如果否,則將該計數與向量大小比較,並且如果小於向量大小,則執行頁的末尾(EOP)處理。否則,載入向量的數據存儲至另一存儲器位置,並且索引指針RX遞增向量的大小(例如,16),並且處理循環。在EOP處理,索引被添加至基本寄存器,以獲取在何處存儲數據的當前值,並且在該位置存儲該數據。然後由存儲的字節的數目更新該索引。對於EOS,做出用以確定終止索引是否小於或者等於計數的比較。如果否,則載入在頁的末尾,並且檢測到的零是不可預測數據中的零,所以循環到頁的末尾處理。否則,遞增指針並且寫出到終止字符的字節至存儲器。這樣完成處理。在另一實施例中,不執行計數與16的比較,相反,來自LCBB的條件碼指示計數是否小於16。在圖4A中描繪從其複製數據的主存儲器400的一個實例。如所示,該主存儲器包括字符「HelloWorld!」,並且例如在存儲器位置0X6FF3。作為複製的一部分,來自主存儲器的字符數據載入至一個或者多個向量寄存器。由垂直虛線402示出在載入數據中沒有跨越的主存儲器的邊界。該數據載入至向量寄存器420,其實例描繪在圖4B中。在圖4C中描繪從其複製數據並且載入向量寄存器的主存儲器450的一個實例。如所示,該主存儲器包括字符「HelloWorld!」,並且例如在存儲器位置0X6FF6。由在字符數據的末尾之前的垂直虛線452示出在載入數據中沒有跨越的主存儲器的邊界。由此,至邊界的字符數據首先載入至寄存器470,其實例描繪在圖4D中,並且然後剩餘數據載入至向量寄存器490,如圖4E所示。如上所示,在一個實施例中,為了從一個存儲器位置向另一個存儲器位置複製終止字符數據(諸如空終止字符),使用各種指令。下面詳細描述這些指令的實例。用以加載向量寄存器的一個指令是「向量載入至塊邊界」(VLBB)指令,參考圖5描述其實例。在一個實例中,「向量載入至塊邊界」指令500包括操作碼欄位502a(例如,位0至7)、502b(例如,位40至47),其指示「向量載入至塊邊界」操作;向量寄存器欄位504(例如,位8至11),其用以指明向量寄存器(V1);索引欄位(X2)506(例如,位12至15);基本欄位(B2)508(例如,位16至19);位移(displacement)欄位(D2)510(例如,位20至31);掩碼欄位(M3)512(例如,位32至35);和RXB欄位514(例如,位36至39)。在一個實例中,欄位504至514中的每一個分開且獨立於(多個)操作碼欄位。另外,在一個實施例中,這些欄位分開且獨立於彼此;然而,在其他實施例中,可組合一個以上欄位。下文描述關於這些欄位的使用的其他信息。在一個實例中,由操作碼欄位502a指明的操作碼的選定位(例如,前兩個位)指定指令的長度和格式。在此特定實例中,長度為三個半字,且格式為帶擴展的操作碼欄位的向量寄存器和索引存儲器運算。向量(V)欄位以及由RXB指定的其對應擴展位指明向量寄存器。具體地,對於向量寄存器,使用(例如)寄存器欄位的四位欄位(其中添加寄存器擴展位(RXB)作為最高有效位)指定含有操作數的寄存器。舉例而言,若四位欄位為0110且擴展位為0,則五位欄位00110指示寄存器編號6。與指令的欄位相關聯的下標編號表示該欄位適用的操作數。舉例而言,與V1相關聯的下標編號1表示第一操作數,等等。寄存器操作數的長度為一個寄存器,其為(例如)128個位。在一個實例中,在「向量寄存器和索引儲存器運算」指令中,將由X2和B2欄位指明的通用寄存器的內容添加至D2欄位的內容以形成第二操作數地址。在一個實例中,將針對「向量載入至塊邊界」指令的位移D2作為12-位無符號整數對待。在一個實施例中,M3欄位指定用以用信號向CPU通知關於載入至的塊邊界的代碼。若指定保留值,則看作為指定例外。實例碼和對應值如下:在「向量載入至塊邊界」(VLBB)指令的一個實施例的執行中,在一個實施例中,自左至右進行,以零索引字節元素開始,以來自第二操作數的字節載入第一操作數(在通過V1欄位加上擴展位指明的寄存器中指定)。第二操作數為通過第二操作數地址(也被稱作開始地址)指明的存儲器位置。載入自該存儲器位置開始,且繼續至由指令(或處理器)計算出的結束地址,如下文所描述。若遇到邊界條件,則其為依賴於對待第一操作數的其餘部分的方式的模型。未看作為關於未載入的一個字節的存取例外。在一個實例中,未載入的字節不可預測。在上述實例指令中,開始地址通過索引寄存器值(X2)+基寄存器值(B2)+位移(D2)來確定;然而,在其他實施例中,通過以下來提供開始地址:寄存器值;指令地址+指令文本指定偏移(offset);寄存器值+位移;或寄存器值+索引寄存器值;(僅作為一些實例)。另外,在一個實施例中,指令不包括RXB欄位。相反,不使用擴展或以另一方式提供擴展(諸如,自指令外部的控制),或提供擴展作為指令的另一欄位的一部分。參看圖6A描述與「向量載入至塊邊界」指令相關聯的處理的一個實施例的進一步細節。在該實例中,在指令中指定邊界大小。計算環境的處理器正執行此邏輯。在一個實施例中,最初,建立邊界掩碼(BdyMask),其用以確定與指定邊界的靠近性(步驟600)。為了建立該掩碼,在一個實例中,採用邊界大小(BdySize)(602)的2的補數否定數(complementnegation),建立邊界掩碼604(例如,BdyMask=0-BdySize)。在一個實例中,通過指令(例如,M3欄位)提供邊界大小;或在另一實例中,由機器確定邊界大小,如本文中所描述。此後,計算開始地址,其指示從其載入將開始的存儲器中的位置(步驟610)。作為實例,可通過以下數據來提供開始地址612:寄存器值;指令地址加上指令文本指定偏移;寄存器值加上位移;寄存器值加上索引寄存器值;或寄存器值加上索引寄存器值加上位移。在本文中提供的指令中,由X2欄位、B2欄位和D2欄位來提供開始地址。即,將通過X2和B2指明的寄存器的內容添加至通過D2指示的位移以提供開始地址。計算開始地址的上文所指示的方式僅為實例;其他實例也可能。接下來,計算結束地址,其指示自何處停止載入(步驟620)。此計算的輸入(例如)為邊界大小602、開始地址612、向量大小(vec_size)614(例如,以字節計;例如,16)和邊界掩碼604。在一個實例中,如下計算結束地址622:EndAddress=min(StartAddress+(BdySize-(StartAddress&BdyMask)),StartAddress+vec_size)。此後,以索引字節0開始,自始於開始地址且終止於結束地址的存儲器載入第一操作數(即,指明的向量寄存器)(步驟630)。此情形使得能夠將可變數目個字節自存儲器載入至向量中,而不跨越指明的存儲器邊界。舉例而言,若存儲器邊界在64個字節處,且開始地址在58個字節處,則在向量寄存器中載入字節58至64。在一個實例中,並行載入字節。參考圖6B描述與「向量載入至塊邊界」指令相關聯的處理的另一實施例。在該實施例中,邊界大小不由指令指定,相反,邊界大小由執行該指令的處理器動態確定。在一個實施例中,最初,計算指示從其開始加載的存儲器中的位置的開始地址(步驟650)。作為實例,開始地址652可以由寄存器值;指令地址加指令文本指定偏移;寄存器值加位移;寄存器值加索引寄存器值;或寄存器值加索引寄存器值加位移提供。在本文中提供的指令中,由X2欄位、B2欄位和D2欄位來提供開始地址。即,將通過X2和B2指明的寄存器的內容添加至通過D2指示的位移以提供開始地址。計算開始地址的上文所指示的方式僅為實例;其他實例也可能。此後,做出關於該邊界是否要動態確定的確定(詢問654)。如果否,則使用M3欄位中指定的值作為邊界大小(BdySize)。否則,處理器動態確定邊界大小(步驟656)。例如,M3欄位指定邊界的類型(例如,高速緩衝存儲器線、頁等),並且基於該類型和處理器的一個或者多個特性(例如,處理器的高速緩衝存儲器線大小、處理器的頁大小等),處理器確定該邊界。作為實例,基於該類型,處理器使用邊界的固定大小(例如,處理器的預定義固定高速緩衝存儲器線或者頁大小),或者基於該類型,處理器確定邊界。例如,如果該類型是頁邊界,則處理器在翻譯後備緩衝器(TLB)中查找開始地址,並且從其確定頁邊界。也存在其他實例。確定邊界大小之後,要麼動態要麼通過指定的指令,建立用以確定對指定邊界的接近性的邊界掩碼(BdyMask)(步驟660)。為了建立掩碼,在一個實例中,採用邊界大小(BdySize)(658)的2的補數否定數,建立邊界掩碼662(例如,BdyMask=0-BdySize)。接下來,計算指示自何處停止載入的結束地址(步驟670)。此計算的輸入為(例如)邊界大小658、開始地址652、向量大小(vec_size)664(例如,以字節計;例如,16)和邊界掩碼662。在一個實例中,如下計算結束地址672:EndAddress=min(StartAddress+(BdySize-(StartAddress&BdyMask)),StartAddress+vec_size)。此後,以索引字節0開始,自始於開始地址且終止於結束地址的存儲器載入第一操作數(即,指明的向量寄存器)(步驟680)。此情形使得能夠將可變數目個字節自存儲器載入至向量中,而不跨越指明的存儲器邊界。如上所述,舉例而言,若存儲器邊界處在64個字節處,且開始地址處在58個字節處,則在向量寄存器中載入字節58至64。在一個實施例中,並行載入這些字節。根據「向量載入至塊邊界」指令的任一實施例載入的向量寄存器的一個實例描繪於圖4B中。如所指示,無數據經過由圖4A的虛垂直線指明的邊界載入。經過邊界的位置不可存取且沒有例外發生。在一個特定實施例中,自左至右載入向量。然而,在另一實施例中,可自右至左載入向量。在一個實施例中,在執行時(runtime)提供向量的方向-自左至右或自右至左。舉例而言,作為實例,指令存取寄存器、狀態控制或指示處理的方向為自左至右或自右至左的其他實體。在一個實施例中,不將此方向控制編碼為指令的一部分,而是在執行時將其提供至指令。在一個實例中,「向量載入至塊邊界」指令僅僅加載與主存儲器(本文也稱為主儲存器)的塊內的第二操作數的相應字節一致的向量寄存器(第一操作數)的字節。主存儲器的塊要麼在指令中指定(例如,在指令中指定大小,以及從其載入要開始的塊內的地址)要麼由塊邊界的類型(例如,高速緩衝存儲器線或者頁)和執行該指令的處理器的一個或者多個特性(諸如高速緩衝存儲器線或者頁大小)動態確定。如本文使用,主存儲器的塊是指定大小的存儲器的任何塊。指定大小也稱為塊的邊界,該邊界是塊的末端。用於尋找終止字符(諸如空終止符)的一個指令是「向量尋找元素不相等」指令,(VFBNEZ),其實例在圖7中描繪。該指令在一個實施例中能夠關於不相等性比較多個向量的數據,以及在選定向量中搜索終止符,諸如空或者零元素(例如,整個元素是零)。在一個實施例中,「向量尋找元素不相等」指令700包括:操作碼欄位702a(例如,位0至7)、702b(例如,位40至47),其指示「向量尋找不相等」操作;第一向量寄存器欄位704(例如,位8至11),其用以指明第一向量寄存器(V1);第二向量寄存器欄位706(例如,位12至15),其用以指明第二向量寄存器(V2);第三向量寄存器欄位708(例如,位16至19),其用以指明第三向量寄存器(V3);第一掩碼欄位(M5)710(例如,位24至27);第二掩碼欄位(M4)712(例如,位32至35);和RXB欄位714(例如,位36至39)。在一個實例中,欄位704至714中的每一個是分開的且獨立於(多個)操作碼欄位。另外,在一個實施例中,這些欄位是分開的且獨立於彼此;然而,在其他實施例中,可組合一個以上欄位。下文描述關於這些欄位的使用的進一步信息。在一個實例中,由操作碼欄位702a指明的操作碼的選定位(例如,前兩個位)指定指令的長度和格式。在此特定實例中,選定位指示長度為三個半字,且格式為帶擴展的操作碼欄位的向量寄存器和寄存器運算。每一個向量(V)欄位以及由RXB指定的其對應擴展位指明向量寄存器。具體地,對於向量寄存器,使用(例如)寄存器欄位的四位欄位(以及作為最高有效位的寄存器擴展位(RXB)的增加)指定含有操作數的寄存器。舉例而言,如果四位欄位為0110且擴展位為0,則五位欄位00110指示寄存器編號6。與指令的欄位相關聯的下標編號表示該欄位適用的操作數。舉例而言,與向量寄存器V1相關聯的下標編號1表示第一操作數,等等。寄存器操作數的長度為一個寄存器,其為(例如)128個位。具有例如四位(0-3)的M4欄位例如以位1-3指定元素大小控制。元素大小控制指定向量寄存器操作數中的元素的大小。在一個實例中,元素大小控制可以指定字節、半字(例如,2個字節)或者字(例如,4個字節)。例如,0指示字節;1指示半字;並且2指示字,也稱為全字。如果指定保留值,則看作為指定例外。M5欄位例如是四位欄位(位0-3),例如包括:零搜索欄位(ZS,位2),其若為一,則也將第二操作數的每個元素與零比較。(在另一實例中,其是與零比較的第三操作數或者另一操作數的每個元素);以及條件碼設定欄位(CC,位3):其若為零,則不設定條件碼且條件碼保持不變。若為一,則作為實例,如以下所指定那樣來設定條件碼:0-若設定了零搜索位,則比較在比不相等比較更低的索引元素中檢測到兩個操作數中的零元素1-檢測到元素失配,且V2中的元素小於V3中的元素2-檢測到元素失配,且V2中的元素大於V3中的元素3-所有元素比較起來相等,且若設定了零搜索位,則在第二操作數(或者,在另一實施例中,其他操作數)中沒有尋找到零元素。在「向量尋找元素不相等」指令的執行中,在一個實施例中自左至右進行,將第二操作數的無符號的二進位整數元素(包括在由V2和其擴展位指定的向量寄存器中)與第三操作數的對應的無符號的二進位整數元素(包括在由V3加上其擴展位指定的向量寄存器中)比較。若兩個元素不相等,則將最左側不相等元素的字節索引放置於第一操作數(在由V1和其擴展位指定的向量寄存器中指明)的指定字節(例如,字節7)中,且將零存儲至第一操作數的所有其他字節。在一個實例中,返回的元素(例如,存儲在指定字節中)的字節索引是不相等的最左側元素的第一字節的索引。例如,如果元素大小是字節,則返回最左側不相等元素的索引(例如,如果存在16個元素(0-15),並且元素6不相等,則返回索引6)。類似,如果字節大小是半字,並且存在8個元素(0-7),並且元素三的要麼字節6要麼字節7不相等,則返回字節索引6。此外,如果元素大小是全字並且存在四個元素(0-3),並且元素一的字節4-7之一不相等,則返回字節索引4。如果M5欄位中的條件碼設定位設定為例如一,則條件碼設為指示哪個操作數更大(如果存在的話)。也就是,例如第二操作數中的字符的二進位整數等效物與第三操作數的不相等字符的二進位整數等效物比較,並且基於該比較設置條件碼。如果元素相等,則將等於向量大小(字節的數目,例如16)的字節索引放置於第一操作數的指定字節(例如,字節7),並且將零放置於所有其他字節位置中。若條件碼設定位為一,則設定選定條件碼(例如,條件碼3)。在其中正在使用僅僅用以尋找終止字符的「向量尋找元素不相等」指令的該實施例中,第二和第三操作數二者包括相同的數據,因此,比較產生不相等字符。若在M5欄位中設定了零搜索位,則也比較第二操作數(或者在其他實施例中,第三操作數或者另一操作數)中的每個元素與零(也稱為空、終止符、終止字符、串的末尾等)的相等性。若在發現第二操作數的任意其他元素不相等之前在第二操作數中尋找到零元素,則將發現為零的元素的第一字節的字節索引存儲於第一操作數的指定字節(例如,字節7)中。將零存儲於所有其他字節中,且設定選定條件碼(例如,條件碼零)。在一個實施例中,並行執行元素的比較。例如,如果正在比較的向量寄存器在長度上是16個字節,則並行比較16個字節。在其他實施例中,數據的單元可以與字節不同,並且並行比較的數目與單元大小對應。另外,在另一實施例中,在執行時(runtime)提供向量的方向-自左至右或自右至左。舉例而言,作為實例,指令存取指示處理的方向為自左至右或自右至左的寄存器、狀態控制或其他實體。在一個實施例中,不將此方向控制編碼為指令的一部分,而是在執行時將其提供至指令。在另一實施例中,指令不包括RXB欄位。相反,不使用擴展或者擴展以另一方式(諸如,自從指令的外部的控制)提供,或者提供為指令的另一欄位的一部分。參考圖8描述關於處理「向量尋找元素不相等」指令的一個實施例的細節。在一個實施例中,計算環境的處理器正執行該邏輯。最初,做出關於對空的搜索(也稱為零元素、串的末尾、終止符等)是否要執行的確定(詢問800)。如果要執行對空的搜索,則做出針對空字符(即,對於零元素)的比較(步驟802),並且將結果輸出至nullidx803。例如,將零元素的最左側字節的索引放置在nullidx中。例如,如果元素大小是字節並且在字節5中尋找到零元素,則將其中尋找到零元素的字節的索引(例如,5)放置在nullidx中。類似地,如果元素大小是半字並且存在8個元素0-7,並且元素三(即,字節6-7)是零,則將6(對於字節索引6)放置於nullidx中。此外,如果元素大小是全字並且存在四個元素0-3,並且元素一(即,字節4-7)是零,則將4(對於字節索引4)放置於nullidx中。如果沒有尋找到空元素,則在一個實例中,將向量的大小(例如,以字節;例如16)放置在nullidx中。此外,或者如果沒有空搜索要執行,則基於比較運算並行執行多個比較(例如,16),以比較A與B(步驟804)。在一個實例中,A是第二操作數的內容,並且B是第三操作數的內容,並且該比較運算不相等。在變量806中存儲比較的結果,依賴於搜索是自左還是自右該變量806被稱為左索引(cmpidxl)或右索引(cmpidxr)。例如,如果該比較是不相等比較,搜索是自左向右並且比較導致一個或者多個不相等,則與最低不相等元素的第一字節相關聯的索引放置在cmpidxl中。作為一個實例,如果元素大小是字節並且在向量(0-15)中存在16個元素,並且在元素6中尋找到不相等,則6存儲在cmpidxl中。類似地,如果元素大小是半字並且在向量(0-7)中存在8個元素,並且在元素3中尋找到不相等(例如在字節6或7),則返回元素的第一字節(字節6)的索引。同樣地,如果元素大小是全字並且存在4個元素(0-3),並且在元素1(例如在字節4-7)中尋找到不相等,則返回元素的第一字節(字節4)的索引。如果存在不相等比較,則在一個實施例中,依賴於比較的方向,cmpidxl或cmpidxr設定為等於向量的大小(例如,以字節;例如,16)。此後,做出關於搜索是否自左或自右的確定(詢問808)。如果搜索自左,則變量cmpidx設定為等於cmpidxl(步驟810);否則,cmpidx設定為等於cmpidxr(步驟812)。設定cmpidx之後,做出關於是否對於空字符執行搜索的確定(詢問814)。如果沒有搜索到空字符,則變量idx例如設定為比較索引cmpidx,步驟(816)。如果搜索到空,則idx設定為比較索引或者空索引nullidx中的最小值(步驟818)。這結束處理。在圖9中描繪圖8的處理的塊邏輯的實例。在該實例中,存在兩個輸入,向量B900和向量A902。兩個輸入被輸入到並行執行比較(例如,不相等)的比較邏輯904。例如,一個輸入(向量A)也被輸入執行空處理的零檢測邏輯906。比較邏輯的輸出(idxL或idxR)908被輸入到結果確定邏輯912以及零檢測邏輯的輸出nullidx910被輸入到結果確定邏輯912。結果確定邏輯也採用如下控制作為輸入:指示搜索的方向的右/左914;指示零處理是否要執行的零檢測916;以及提供每個元素的大小(例如,字節、半字、字)的元素大小918,並且產生存儲在輸出向量922(例如字節7)中的所得索引920,即resultidx。另外,結果確定邏輯包括視情況輸出條件碼924的條件碼處理923。用於比較邏輯904的實例偽碼如下:如所示,變量idxL或者idxR依賴於方向初始化為向量的大小(例如,字節的數量;例如,16)。然後,向量A的每個元素與向量B的對應元素比較。在一個示例中,該比較是字節比較,所以對於16個字節中的每個(i)做出比較。在該實例中,對比運算不相等,並且如果找到不相等,則將不相等字節的索引在自左搜索的情況下存儲在idxL中,或者在自右搜索的情況下存儲在idxR中。零檢測邏輯906的實例偽碼如下:如所示,測試向量的每個元素(j),以看看其是否等於零。如果元素等於零,則nullidx設定等於該元素的索引乘以元素大小。例如,如果元素大小是半字(2個字節)並且在元素3中檢測到空字節,則3乘以2,並且nullidx設定為表示字節6的6。類似地,如果元素大小是半字(4位元組),並且在元素3中檢測到空字節,則3乘以4,並且nullidx設定為12。同樣,結果確定邏輯912的實例偽代碼如下:如所示,如果左/右控制指示左,則cmpidx設定等於idxL;否則,cmpidx設定等於idxR。另外,如果零檢測指示符是ON,則resultidx設定等於cmpidx或nullidx中的最小值;並且如果條件碼設定控制是ON並且cmpidx大於nullidx,則條件碼設定為零。否則,如果零檢測不是ON,則resultidx設定等於cmpidx。另外,如果元素大小等於字節,則元素大小掩碼設定為ξ11111ξ;如果元素大小等於2個字節,則掩碼設定為ξ11110ξ,並且如果元素大小等於4個字節,則掩碼設定為ξ11100ξ。此後,resultidx設定等於與元素大小掩碼AND(與)的resultidx。例如,如果元素大小是半字並且字節7是resultidx,則resultidx=00111AND11110,以提供00110。所以resultidx設定等於6(即,00110二進位),其是元素的第一字節。此外,條件碼被可選地設定。如果指令的設定條件碼控制設置為ON,則提供條件碼;否則,不設定條件碼。作為實例,如果該控制設定ON,則在resultidx=16的情況下,條件碼設定為3。否則,如果A的resultidx小於B的resultidx,則條件碼設定為1;否則,條件碼設定為2。對於128位向量,比較邏輯僅僅執行例如16位元組比較,而不是例如256位元組比較。這提供更大向量的縮放。另外,左/右控制可以提供為執行時值並且不在指令內編碼。另外,返回為結果的值是字節位置,而不是元素索引。另外,支持與1位元組和2位元組比較一起的4位元組比較。在另一實施例中,零搜索不是條件,而相反,當執行「向量尋找元素不相等」指令時執行零搜索。基於或者響應於執行該指令,執行零搜索,並且返回零元素的位置(例如,字節索引)和/或第一不匹配元素的位置(例如,字節索引)。在一個實施例中,無論實施例如何,對於「向量尋找元素不相等」指令執行的比較的數目與向量的字節的數目對應。例如,如果正搜索或者比較的向量是16位元組,則例如並行執行至多16個比較。在另一實施例中,一旦尋找到不匹配或者零元素,則比較停止。參考圖10描述「對塊邊界載入計數」(LCBB)指令的一個實施例。該指令例如提供從存儲器中的指定地址到指定存儲器邊界的數據的字節的數目的計數(例如,其提供向量寄存器中載入而不跨越存儲器的指定邊界的字節的數目)。在一個實例中,「對塊邊界載入計數」指令100包括:操作碼欄位1002a(例如,位0至7)、1002b(例如,位40至47),其指示「對塊邊界計數」操作;寄存器欄位1004(例如,位8至11),其用以指明通用寄存器(R1);索引欄位(X2)1006(例如,位12至15);基本欄位(B2)1008(例如,位16至19);位移(displacement)欄位(D2)1010(例如,位20至31);和掩碼欄位(M3)1012(例如,位32至35)。在一個實例中,欄位1004-1012中的每一個分開且獨立於(多個)操作碼欄位。另外,在一個實施例中,這些欄位分開且獨立於彼此;然而,在其他實施例中,可組合一個以上欄位。下文描述關於這些欄位的使用的其他信息。在一個實例中,由操作碼欄位1002a指明的操作碼的選定位(例如,前兩個位)指定指令的長度和格式。在此特定實例中,長度為三個半字,且格式為帶擴展的操作碼欄位的寄存器和索引儲存器運算。與指令的欄位相關聯的下標編號表示該欄位適用的操作數。舉例而言,與R1相關聯的下標編號1表示第一操作數,等等。寄存器操作數的長度為一個寄存器,其為(例如)128個位。在一個實例中,在「寄存器和索引儲存器運算」指令中,將由X2和B2欄位指明的通用寄存器的內容添加至D2欄位的內容以形成第二操作數地址。在一個實例中,將針對「對塊邊界載入計數」指令的位移D2作為一個12位無符號的整數對待。第二操作數地址用於指示主存儲器中的位置;然而,在該實施例中,不用於尋址數據。在一個實施例中,M3欄位指定用以用信號向CPU通知關於塊邊界大小計算要載入而不跨越存儲器邊界的可能的字節的數目的代碼。若指定保留值,則看作為指定例外。實例碼和對應值如下:在另一實例中,邊界大小不包括在該指令中,而相反該邊界大小由執行該指令的處理器動態確定。例如,M3欄位指定邊界的類型(例如,高速緩衝存儲器線、頁等),並且基於類型和處理器的一個或者多個特性(例如,處理器的高速緩衝存儲器線大小、處理器的頁大小等),處理器確定該邊界。作為實例,基於該類型,處理器使用邊界的固定大小(例如,處理器的預定義固定高速緩衝存儲器線或者頁大小),或者基於該類型,處理器確定邊界。例如,如果該類型是頁邊界,則處理器在翻譯後備緩衝器(TLB)中查找開始地址,並且從其確定頁邊界。也存在其他實例。例如,可以由指令的另一欄位或者依據指令的外部的控制提供該類型。在「對塊邊界載入計數」指令的一個實施例的執行中,在第一操作數指定的通用寄存器中放置含有可能自第二操作數位置載入而不跨越指定塊邊界(例如覆蓋於要載入的向量寄存器大小(例如,16)處)的字節的數目的無符號的二進位整數(例如,64位)。由於在指令的執行,可選條件碼設定諸如例如:0–操作數一是十六1–2–3–操作數一小於十六在上面的實例指令中,要從其開始計數的開始地址通過索引寄存器值(X2)+基本寄存器值(B2)+位移(D2)來確定;然而,在其他實施例中,通過以下值來提供開始地址:寄存器值;指令地址+指令文本指定偏移;寄存器值+位移;或寄存器值+索引寄存器值;(僅作為一些實例)。參考圖11描述處理「對塊邊界指令載入計數」指令的一個實施例的進一步細節。在一個實例中,計算環境的處理器正在執行該邏輯。在一個實施例中,最初建立用以確定指定邊界的接近性的邊界掩碼。(BdyMask)(步驟1100)。為了建立掩碼,在一個實例中,採用邊界大小(BdySize)1102的2的補數否定數,從而建立邊界掩碼1104(例如,BdyMask=0-BdySize)。在一個實例中由指令(例如,M3欄位)提供邊界大小;或者在另一實例中,由機器確定邊界大小,如本文描述。此後,計算開始地址,其指示從其開始計數的存儲器中的位置(步驟1110)。作為實例,可通過以下值來提供開始地址1112:寄存器值;指令地址加上指令文本指定偏移;寄存器值加位移;寄存器值加索引寄存器值;或寄存器值加索引寄存器值加上位移。在本文中提供的指令中,由X2欄位、B2欄位和D2欄位來提供開始地址。即,將通過X2和B2指明的寄存器的內容添加至通過D2指示的位移以提供開始地址。計算開始地址的上文所指示的方式僅為實例;其他實例也可能。接下來,計算結束地址,其指示在其處停止計數的位置(步驟1120)。對此計算的輸入為(例如)邊界大小1102、開始地址1112、向量大小(vec_size)1114(例如,以字節計,例如,16)和邊界掩碼1104。該寄存器例如為可以在其中載入數據的寄存器。在一個實例中,如下計算結束地址11122:此後,計算計數(步驟1130)。例如,count=EndAddress1122-StartAddress1112。在另一實例中,可以從開始地址計算計數而不需要使用結束地址。在該實例中,count=min(16,BdySize–(StartAddressANDBdyMask),其中16是向量寄存器(或者其他寄存器)的大小。在另一實例中,可以使用其他寄存器大小。在一個實施例中,使用「對塊邊界載入計數」指令以確定多少字節載入寄存器,諸如向量寄存器。如本文描述,該計數在確定字符數據集(諸如終止字符串)的長度或者其他處理中有用。如指示,在一個實施例中,為了從一個存儲器位置向另一個存儲器位置複製數據,使用向量寄存器。在一個向量工具的一個實例中,32個向量寄存器和其他類型的寄存器可映射至該向量寄存器的象限。舉例而言,如圖12中所展示,若存在包括32個向量寄存器1202的寄存器文件1200且每寄存器的長度為128個位,則長度為64個位的16個浮點寄存器1204可重疊這些向量寄存器。因此,作為實例,當修改浮點寄存器2時,然後也修改向量寄存器2。用於其他類型的寄存器的其他映射也可能。上面詳細描述的是並行複製終止字符數據並且不引起無根據的例外的技術。典型地,難於從一個分隔串向另一個並行複製字符,這是因為不知道源串是否在跨越邊界的存取可能引起不期望的存取例外的該選定邊界跨越處附近結束。之前的技術僅僅一次複製一個字符,或者添加檢查以看看任一串是否在邊界附近。一次對一個字符工作固有慢。添加檢查提供複雜並且添加時延。通過使用並行載入數據至指定邊界並且提供確定載入的字符的數目的方式的指令和尋找到第一分隔符的索引的指令(其並行檢查數據),提供用最小數目的分支指令複製終止字符數據(例如,空終止)的技術。另外,提供串字符的快速並行複製以及防止假例外。使用上面技術的一個或者多個方面提供性能改進,包括減少的執行時間。本文中,除非另有明確注釋或由上下文注釋,否則可互換地使用存儲器、主存儲器、儲存器與主儲存器。作為下文進一步描述的此實施方式的一部分提供關於向量工具的額外細節(包括其他指令的實例)。如本領域技術人員將了解,本發明的一個或多個實施例可體現為系統、方法或電腦程式產品。因此,本發明的一個或多個實施例可採用完全硬體實施例、完全軟體實施例(包括固件、常駐軟體、微碼等)或組合軟體與硬體實施例的實施例的形式,這些實施例在本文中大體上皆可被稱作「電路」、「模塊」或「系統」。此外,本發明的一個或多個實施例可採用體現於一個或多個計算機可讀介質(其具有體現於其上的計算機可讀程序代碼)中的電腦程式產品的形式。可利用一個或多個計算機可讀介質的任何組合。計算機可讀介質可為計算機可讀存儲介質。舉例而言,計算機可讀存儲介質可為(但不限於)電子、磁性、光學、電磁、紅外線或半導體系統、裝置或器件或前述中的任何合適組合。計算機可讀存儲介質的更特定實例(非詳盡清單)包括以下:具有一個或多個電線的電連接、便攜型計算機磁碟、硬碟、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPROM或快閃記憶體)、光纖、便攜型光碟-只讀存儲器(CD-ROM)、光學存儲器件、磁性存儲器件或前述的任何合適組合。在此文件的上下文中,計算機可讀存儲介質可為可含有或存儲供指令執行系統、裝置或器件使用或結合指令執行系統、裝置或器件而使用的程序的任何有形介質。現參看圖13,在一個實例中,電腦程式產品1300包括(例如)一個或多個非暫時性計算機可讀存儲介質1302以在其上存儲計算機可讀程序代碼構件或邏輯1304,以提供和促進本發明的一個或多個實施例。可使用適當介質(包括(但不限於)無線、有線、光纖纜線、RF等或前述的任何合適組合)傳輸體現於計算機可讀介質上的程序代碼。可以一個或多個程序設計語言的任何組合來編寫用於進行本發明的一個或多個方面的操作的電腦程式代碼,該一個或多個程序設計語言包括諸如Java、Smalltalk、C++等的面向對象的程序設計語言,和諸如「C」程序設計語言、組譯器或類似程序設計語言的常規程序性程序設計語言。程序代碼可完全在用戶的計算機上執行、部分地在用戶的計算機上執行、作為獨立軟體包而執行、部分地在用戶的計算機上且部分地在遠程計算機上執行,或完全在遠程計算機或伺服器上執行。在後者情形下,遠程計算機可經由任一類型的網絡連接至用戶的計算機,該任一類型的網絡包括區域網(LAN)或廣域網(WAN),或可進行至外部計算機的連接(例如,使用網際網路服務提供者經由網際網路)。本文中參考根據本發明的實施例的方法、裝置(系統)和電腦程式產品的流程圖說明和/或方塊圖描述本發明的一個或多個方面。應理解,可由電腦程式指令來實施流程圖說明和/或方塊圖的每個塊和這些流程圖說明和/或方塊圖中的塊的組合。可將這些電腦程式指令提供至通用計算機、專用計算機或其他可編程數據處理裝置的處理器以產生機器,以使得經由該計算機或其他可編程數據處理裝置的處理器執行的指令產生用於實施流程圖和/或方塊圖塊中所指定的功能/動作的構件。這些電腦程式指令也可存儲於計算機可讀介質中,該計算機可讀介質可指導計算機、其他可編程數據處理裝置或其他器件以特定方式起作用,使得存儲於該計算機可讀介質中的指令產生製造物件,其包括實施流程圖和/或方塊圖方塊中所指定的功能/動作的指令。也可將這些電腦程式指令載入至計算機、其他可編程數據處理裝置或其他器件上以使得在該計算機、其他可編程裝置或其他器件上執行一系列操作步驟以產生計算機實施的處理程序,使得在該計算機或其他可編程裝置上執行的指令提供用於實施流程圖和/或方塊圖塊中所指定的功能/動作的處理程序。這些圖中的流程圖和方塊圖說明根據本發明的一個或多個方面的各種實施例的系統、方法和電腦程式產品的可能實施的架構、功能性和操作。就此而言,流程圖或方塊圖中的每個塊可表示模塊、區段或代碼的一部分,其包含用於實施(多個)指定邏輯功能的一個或多個可執行指令。也應注意,在一些替代實施中,塊中所注釋的功能可能不以諸圖中所注釋的次序發生。舉例而言,取決於所涉及的功能性,實際上可實質上同時執行連續展示的兩個塊,或有時可以相反次序執行這些塊。也將注意,方塊圖和/或流程圖說明的每個塊和方塊圖和/或流程圖說明中的塊的組合可由執行指定功能或動作的基於專用硬體的系統或專用硬體與計算機指令的組合來實施。除上述內容之外,本發明的一個或多個實施例也可由供應客戶環境的管理的服務提供者來提供、供應、部署、管理、服務等。舉例而言,服務提供者可為一個或多個客戶建立、維護、支持等執行本發明的一個或多個實施例的計算機代碼和/或計算機基礎結構。作為回報,作為實例,服務提供者可在訂用和/或收費協議下自客戶收取付款。此外或替代地,服務提供者可自廣告內容銷售至一個或多個第三方而收取付款。在本發明的一個方面中,可部署用於執行本發明的一個或多個方面的應用程式。作為實例,應用程式的部署包含提供可操作以執行本發明的一個或多個方面的計算機基礎結構。作為本發明的另一方面,可部署計算基礎結構,其包含將計算機可讀代碼整合至計算系統內,其中與該計算系統組合的代碼能夠執行本發明的一個或多個方面。作為本發明的另一方面,可提供用於整合計算基礎結構的處理,其包含將計算機可讀代碼整合至計算機系統中。計算機系統包含計算機可讀介質,其中計算機介質包含本發明的一個或多個方面。與該計算機系統組合的代碼能夠執行本發明的一個或多個方面。儘管上文描述了各種實施例,但這些僅為實例。舉例而言,其他架構的計算環境可併入且使用本發明的一個或多個方面。另外,可使用其他大小的向量,且在不脫離本發明的精神的情況下,可作出對指令的改變。此外,可以在處理中使用其他指令,諸如,但不限於,「向量尋找元素相等」指令。另外,可以使用本發明的一個或者多個方面執行不同於空終止字符數據的數據的複製。此外,可以使用與向量寄存器不同的寄存器和/或數據可以不同於字符數據,諸如整數數據或其他類型的數據。另外,其他類型的計算環境可受益於本發明的一個或多個方面。作為實例,適合於存儲和/或執行程序代碼的數據處理系統為可使用,其包括直接或經由系統總線間接耦接至存儲器元件的至少兩個處理器。這些存儲器元件包括(例如)在程序代碼的實際執行期間使用的本地存儲器、大容量儲存器和高速緩衝存儲器,高速緩衝存儲器提供至少一些程序代碼的臨時存儲以便減少在執行期間必須自大容量儲存器取得代碼的次數。輸入/輸出端或I/O器件(包括(但不限於)鍵盤、顯示器、指點器件、DASD、磁帶、CD、DVD、隨身碟(thumbdrive)和其他存儲器介質等)可直接或經由介入的I/O控制器而耦接至系統。網絡適配器也可耦接至系統以使得數據處理系統能夠經由介入的私有或公用網絡而變得耦接至其他數據處理系統或遠程印表機或儲存器件。數據機、電纜數據機和乙太網絡卡僅為可用類型的網絡適配器中的少數幾種。參看圖14,描繪實施本發明的一個或多個方面的主機計算機系統5000的代表性組件。代表性主機計算機5000包含與計算機存儲器(即,中央儲存器)5002通信的一個或多個CPU5001,以及用於與其他計算機或SAN等通信的至存儲介質器件5011和網絡5010的I/O接口。CPU5001符合具有構建的指令集和構建的功能性的架構。CPU5001可具有動態地址翻譯(DAT)5003,以用於將程序地址(虛擬地址)變換成存儲器的真實地址。DAT通常包括翻譯後備緩衝器(TLB)5007以用於高速緩衝翻譯,使得對計算機存儲器5002的塊的稍後存取不需要延遲地址翻譯。通常,高速緩衝存儲器5009用於計算機存儲器5002與處理器5001之間。高速緩衝存儲器5009可為層級式的,其具有可用於一個以上CPU的大型高速緩衝存儲器和在大型高速緩衝存儲器與每個CPU之間的較小較快(較低層級)高速緩衝存儲器。在一些實施中,將較低層級高速緩衝存儲器分割以提供用於指令取得和數據存取的單獨的低層級高速緩衝存儲器。在一個實施例中,由指令取得單元5004經由高速緩衝存儲器5009自存儲器5002取得指令。在指令解碼單元5006中解碼指令,且將指令(在一些實施例中,其他指令)分派給一個或多個指令執行單元5008。通常使用若干個執行單元5008,例如,算術執行單元、浮點執行單元和分支指令執行單元。由執行單元執行指令,從而按需要自指令指定的寄存器或存儲器存取操作數。若將自存儲器5002存取(載入或存儲)操作數,則載入/存儲單元5005通常在正被執行的指令的控制下處置存取。可在硬體電路中或在內部微碼(固件)中或由兩者的組合來執行指令。如所注釋,計算機系統包括在本地(或主)儲存器中的信息,以及尋址、保護和參考和改變記錄。尋址的一些方面包括地址的格式、地址空間的概念、地址的各種類型,以及將地址的一種類型翻譯至地址的另一類型的方式。主儲存器中的一些儲存器包括永久指派的存儲位置。主儲存器為系統提供數據的可直接尋址的快速存取存儲。在可處理數據和程序兩者之前將數據和程序兩者載入至主儲存器中(自輸入器件)。主儲存器可包括一個或多個較小的快速存取緩衝儲存器(有時稱為高速緩衝存儲器)。高速緩衝存儲器通常與CPU或I/O處理器相關聯。通過程序大體上不可觀測到不同存儲介質的實體構造和用途的效應(除了對性能的效應外)。可維持針對指令和針對數據操作數的單獨的高速緩衝存儲器。將高速緩衝存儲器內的信息以相鄰字節維持於被稱為高速緩衝塊或高速緩衝存儲器線(或簡稱為線)的整體邊界上。模型可提供「EXTRACTCACHEATTRIBUTE(提取高速緩衝存儲器屬性)」指令,其返回以字節計的高速緩衝存儲器線的大小。模型也可提供「PREFETCHDATA(預先取得數據)」和「PREFETCHDATARELATIVELONG(預取得數據相對長度)」指令,其實現儲存器至數據或指令高速緩衝存儲器中的預取得或數據自高速緩衝存儲器的釋放。將儲存器視為長水平位串。對於多數操作,對儲存器的存取以自左至右順序進行。將該位的串再分成八個位的單元。八位單元被稱為字節,其為所有信息格式的基本建立塊。儲存器中的每個字節位置通過唯一非負整數來識別,該唯一非負整數為該字節位置的地址或簡稱為字節地址。鄰近字節位置具有連續地址,其以左側的0開始且以自左至右順序進行。地址為無符號二進位整數,且為24個、31個或64個位。在儲存器與CPU或通道子系統之間一次一字節或字節群組地傳輸信息。除非另有指定,否則,在(例如)z/Architecture中,儲存器中的字節群組由該群組的最左側字節來尋址。通過要執行的操作隱含或明確指定該群組中的字節的數目。當在CPU操作中使用時,字節群組被稱為欄位。在每個字節群組內,在(例如)z/Architecture中,以自左至右順序對位編號。在z/Architecture中,最左側位有時被稱作「高階」位,且最右側位有時被稱作「低階」位。然而,位編號不是存儲地址。可僅尋址字節。為了對儲存器中的字節的單獨位操作,存取整個字節。將字節中的位自左至右編號為0至7(在(例如)z/Architecture中)。對於24位地址,可將地址中的位編號為8至31或40至63,或對於31位地址,可將地址中的位編號為1至31或33至63;對於64位地址,可將地址中的位編號為0至63。在多個字節的任何其他固定長度的格式內,自0開始對構成該格式的位連續地編號。為了錯誤檢測的目的,且優選地為了校正的目的,可將一個或多個檢查位與每字節或與字節群組一起傳輸。由機器自動地產生這種檢查位,且不可直接由程序來控制這種檢查位。以字節的數目來表達存儲容量。當通過指令的操作碼隱含存儲操作數欄位的長度時,認為該欄位具有固定長度,其可為個、兩個、四個、八個或十六個字節。對於一些指令,可隱含更大欄位。當不隱含而是明確敘述存儲操作數欄位的長度時,認為該欄位具有可變長度。可變長度操作數的長度可以一個字節的增量變化(或對於一些指令,以兩個字節的倍數或其他倍數的增量變化)。當將信息放置於儲存器中時,替換包括於指明的欄位中的僅那些字節位置的內容,即使至儲存器的物理路徑的寬度可能大於正存儲的欄位的長度也如此。某些信息單元將在儲存器中的整體邊界上。當其存儲地址為該單元的長度(以字節計)的倍數時,將邊界稱為信息單元的整體。對整體邊界上的2個、4個、8個和16個字節的欄位給予特殊名稱。半字為在兩字節邊界上的兩個連續字節的群組,且為指令的基本建立塊。字為四字節邊界上的四個連續字節的群組。雙字為八字節邊界上的八個連續字節的群組。四倍字為16位元組邊界上的16個連續字節的群組。當儲存器地址指明半字、字、雙字和四倍字時,地址的二進位表示分別含有一個、兩個、三個或四個最右側零位。指令將在兩-字節整體邊界上。多數指令的存儲操作數不具有邊界對準要求。在實施針對指令和數據操作數的單獨的高速緩衝存儲器的器件上,若程序存儲至高速緩衝存儲器線中(隨後自該高速緩衝存儲器線取得指令),則可經歷顯著延遲,而不管儲存器是否更改隨後取得的指令。在一個實施例中,可通過軟體(有時稱為經授權內部碼、固件、微碼、毫碼、微微碼(pico-code)等,前述中的任一個將與本發明的一個或多個方面一致)來實踐本發明。參看圖14,體現本發明的一個或多個方面的軟體程序代碼可由主機系統5000的處理器5001自長期存儲介質器件5011(諸如,CD-ROM驅動、磁帶機或硬驅動)存取。軟體程序代碼可體現於多種已知介質中的任一個上,以用於供數據處理系統(諸如,磁片、硬驅動或CD-ROM)使用。該代碼可分布於這種介質上,或可經由網絡5010自計算機系統的計算機存儲器5002或儲存器至其他計算機系統地分發至用戶,以供這種其他系統的用戶使用。軟體程序代碼包括作業系統,其控制各種計算機組件和一個或多個應用程式的功能和交互。通常將程序代碼自存儲介質器件5011分頁至相對較高速計算機儲存器5002,在該相對較高速計算機儲存器5002處,程序代碼可用於由處理器5001處理。用於在存儲器中、在物理介質上體現軟體程序代碼和/或經由網絡分發軟體程序代碼的技術和方法已熟知,且在本文中將不進一步加以討論。當在有形介質(包括(但不限於)電子存儲器模塊(RAM)、快閃記憶體、光碟(CD)、DVD、磁帶等)上建立和存儲程序代碼時,程序代碼常常被稱作「電腦程式產品」。電腦程式產品介質通常可由優選在計算機系統中的處理電路來讀取,以用於由處理電路執行。圖15說明可實踐本發明的一個或多個方面的代表性工作站或伺服器硬體系統。圖15的系統5020包含代表性基礎計算機系統5021(諸如,個人計算機、工作站或伺服器),包括選用的外圍器件。基礎計算機系統5021包括一個或多個處理器5026和總線,該總線用以根據已知技術連接處理器5026與系統5021的其他組件並實現(多個)處理器5026與系統5021的其他組件之間的通信。總線將處理器5026連接至存儲器5025和長期儲存器5027,長期儲存器5027可包括(例如)硬驅動(包括(例如)磁性介質、CD、DVD和快閃記憶體中的任一個)或磁帶驅動。系統5021也可能包括用戶接口適配器,用戶接口適配器經由總線將微處理器5026連接至或多個接口器件(諸如,鍵盤5024、滑鼠5023、印表機/掃描儀5030和/或其他接口器件),這些接口器件可為諸如觸敏式屏幕、數位化鍵入板(entrypad)等的任何用戶接口器件。總線也經由顯示器適配器將諸如LCD屏幕或監視器的顯示器件5022連接至微處理器5026。系統5021可藉助於能夠與網絡5029通信(5028)的網絡適配器與其他計算機或計算機網絡通信。實例網絡適配器為通信頻道、令牌環、乙太網絡或數據機。替代地,系統5021可使用諸如CDPD(蜂窩式數字分組數據)卡的無線接口通信。系統5021可與區域網(LAN)或廣域網(WAN)中的這種其他計算機相關聯,或系統5021可為具有另一計算機的客戶端/伺服器布置中的客戶端等。所有這些配置以及適當通信硬體和軟體為本領域已知。圖16說明可實踐本發明的一個或多個方面的數據處理網絡5040。數據處理網絡5040可包括多個單獨網絡(諸如,無線網絡和有線網絡),這些網絡中的每一個可包括多個單獨工作站5041、5042、5043、5044。另外,如本領域技術人員將了解,可包括一個或多個LAN,其中LAN可包含耦接至主機處理器的多個智能型工作站。仍參看圖16,網絡也可包括大型計算機或伺服器,諸如,網關計算機(客戶端伺服器5046)或應用程式伺服器(遠程伺服器5048,其可存取數據儲存庫且也可自工作站5045直接存取)。網關計算機5046充當至每個單獨網絡的入口點。當將一個聯網協議連接至另一聯網絡協議時,需要網關。網關5046可優選藉助於通信鏈路耦接至另一網絡(例如,網際網路5047)。也可使用通信鏈路將網關5046直接耦接至一個或多個工作站5041、5042、5043、5044。可利用可購自InternationalBusinessMachinesCorporation的IBMeServerTMSystemz伺服器來實施網關計算機。同時參看圖15和圖16,可體現本發明的一個或多個實施例的軟體程序代碼可由系統5020的處理器5026自長期存儲介質5027(諸如,CD-ROM驅動或硬驅動)存取。軟體程序代碼可體現於多種已知介質中的任一個上,以用於供數據處理系統(諸如,磁碟、硬驅動或CD-ROM)使用。程序代碼可分發於這種介質上,或可經由網絡自一個計算機系統的存儲器或儲存器至其他計算機系統地分發至用戶5050、5051,以供這種其他系統的用戶使用。可替代地,程序代碼可體現於存儲器5025中,且由處理器5026使用處理器總線來存取。此程序代碼包括作業系統,其控制各種計算機組件和一個或多個應用程式5032的功能和交互。通常將程序代碼自存儲介質5027分頁至高速存儲器5025,在高速存儲器5025處,程序代碼可用於由處理器5026處理。用於在存儲器中、在物理介質上體現軟體程序代碼和/或經由網絡分發軟體程序代碼的技術和方法已熟知且在本文中將不進一步加以討論。當在有形介質(包括(但不限於)電子存儲器模塊(RAM)、快閃記憶體、光碟(CD)、DVD、磁帶等)上建立和存儲程序代碼時,程序代碼常常被稱作「電腦程式產品」。電腦程式產品介質通常可由優選在計算機系統中的處理電路來讀取,以用於由處理電路執行。最容易用於處理器的高速緩衝存儲器(通常比處理器的其他高速緩衝存儲器快且小)為最低(L1或層級一)高速緩衝存儲器,且主儲存器(主存儲器)為最高層級高速緩衝存儲器(若存在3個層級,則為L3)。常常將最低層級高速緩衝存儲器劃分成保持要執行的機器指令的指令高速緩衝存儲器(I-高速緩衝存儲器)和保持數據操作數的數據高速緩衝存儲器(D-高速緩衝存儲器)。參看圖17,針對處理器5026描繪例示性處理器實施例。通常,使用高速緩衝存儲器5053的一個或多個層級緩衝存儲器塊以便改進處理器性能。高速緩衝存儲器5053為保持有可能使用的存儲器數據的高速緩衝存儲器線的高速緩衝器。典型的高速緩衝存儲器線為64個、128個或256個字節的存儲器數據。除用於對數據進行高速緩衝外,單獨的高速緩衝存儲器也常常用於對指令進行高速緩衝。常常通過本領域中熟知的各種「窺探(snoop)」算法來提供高速緩衝一致性(存儲器和高速緩衝存儲器中的線的複製的同步)。處理器系統的主存儲器儲存器5025常常被稱作高速緩衝存儲器。在具有4個層級的高速緩衝存儲器5053的處理器系統中,主儲存器5025有時被稱作層級5(L5)高速緩衝存儲器,這是因為其通常較快且僅保持可用於計算機系統的非易失性儲存器(DASD、磁帶等)的部分。主儲存器5025對由作業系統分頁入和分頁出主儲存器5025的數據頁「進行高速緩衝」。程序計數器(指令計數器)5061保持追蹤要執行的當前指令的地址。z/Architecture處理器中的程序計數器為64個位,且可經截斷至31或24個位以支持先前尋址限制。程序計數器通常體現於計算機的PSW(程序狀態字)中,使得程序計數器在上下文切換期間持續。因此,具有程序計數器值的進行中程序可由(例如)作業系統來中斷(自程序環境至作業系統環境的上下文切換)。在程序不起作用時,程序的PSW維持程序計數器值,且在作業系統正執行時,使用作業系統的程序計數器(在PSW中)。通常,以等於當前指令的字節的數目的量來使程序計數器遞增。RISC(精簡指令集計算)指令通常為固定長度,而CISC(複雜指令集計算)指令通常為可變長度。IBMz/Architecture的指令為具有2個、4個或6個字節長度的CISC指令。舉例而言,通過上下文切換操作或分支指令的分支選取操作來修改程序計數器5061。在上下文切換操作中,將當前程序計數器值連同關於正執行的程序的其他狀態信息(諸如,條件碼)一起保存於程序狀態字中,且載入新程序計數器值從而指向要執行的新程序模塊的指令。執行分支選取操作以便通過將分支指令的結果載入至程序計數器5061中而準許程序作出決策或在程序內循環。通常,指令讀取單元5055用以代表處理器5026取得指令。取得單元取得「下一個順序指令」、分支選取指令的目標指令或在上下文切換之後的程序的第一指令。現代指令取得單元常常使用預取得技術以基於可能使用經預先取得的指令的可能性而推測性地預取得指令。舉例而言,取得單元可取得包括下一個順序指令的指令的16個字節和再下一個順序指令的額外字節。然後由處理器5026執行所取得的指令。在一個實施例中,將(多個)所取得的指令傳遞至取得單元的分派單元5056。分派單元解碼(多個)指令且將關於(多個)經解碼的指令的信息轉遞至適當單元5057、5058、5060。執行單元5057通常將自指令取得單元5055接收關於經解碼的算術指令的信息,且將根據指令的操作碼對操作數執行算術運算。優選自存儲器5025、構建的寄存器5059或自正執行的指令的立即欄位,將操作數提供至執行單元5057。當存儲執行的結果時,將執行的結果存儲於存儲器5025、寄存器5059中或其他機器硬體(諸如,控制寄存器、PSW寄存器等)中。處理器5026通常具有用於執行指令的功能的一個或多個單元5057、5058、5060。參看圖18A,執行單元5057可藉助於接口邏輯5071與構建的通用寄存器5059、解碼/分派單元5056、載入存儲單元5060和其他處理器單元5065通信。執行單元5057可使用若干個寄存器電路5067、5068、5069以保持算術邏輯單元(ALU)5066將進行運算的信息。ALU執行算術運算(諸如,加法、減法、乘法和除法)以及邏輯函數(諸如,「和」(and)、「或」(or)和「異或」(XOR)、旋轉和移位)。優選地,ALU支持依賴於設計的專業化運算。其他電路可提供其他構建的工具5072,包括(例如)條件碼和恢復支持邏輯。通常,將ALU運算的結果保持於輸出寄存器電路5070中,輸出寄存器電路5070可將結果轉遞至多種其他處理功能。存在處理器單元的許多布置,本發明描述僅意欲提供對一個實施例的代表性理解。「加法」指令(例如)將在具有算術和邏輯功能性的執行單元5057中執行,而浮點指令(例如)將在具有專業化的浮點能力的浮點執行中執行。優選地,執行單元通過對操作數執行操作碼定義的功能而對由指令識別的操作數進行運算。舉例而言,「加法」指令可由執行單元5057對在由指令的寄存器欄位識別的兩個寄存器5059中發現的操作數執行。執行單元5057對兩個操作數執行算術加法,且將結果存儲於第三操作數中,其中第三操作數可為第三寄存器或兩個源寄存器中的一個。執行單元優選利用算術邏輯單元(ALU)5066,算術邏輯單元(ALU)5066能夠執行多種邏輯函數(諸如,移位、旋轉、「和」(And)、「或」(Or)和「異或」(XOR))和多種代數函數(包括加法、減法、乘法、除法中的任一個)。一些ALU5066經設計以用於標量運算,且一些ALU5066經設計以用於浮點運算。取決於架構,數據可為大端法(BigEndian)(其中最低有效字節處於最高字節地址)或小端法(LittleEndian)(其中最低有效字節處於最低字節地址)。IBMz/Architecture為大端法。取決於架構,無符號的欄位可為符號和量值(1的補數或2的補數)。2的補數是有利的,因為ALU並不需要設計減法能力,這由於在ALU中,2的補數中的負值或正值僅需要加法。通常以速記法來描述數字,其中12位欄位定義4,096位元組塊的地址,且通常描述為(例如)4Kbyte(千字節)塊。參看圖18B,用於執行分支指令的分支指令信息通常發送至分支單元5058,分支單元5058常常使用分支預測算法(諸如,分支歷史表5082)以在其他條件運算完成之前預測分支的結果。將取得當前分支指令的目標,且在條件運算完成之前推測性地執行當前分支指令的目標。當完成條件運算時,基於條件運算的條件和所推測的結果,完成或放棄推測性執行的分支指令。典型分支指令可測試條件碼,且在條件碼滿足分支指令的分支要求的情況下分支至目標地址,可基於包括(例如)在寄存器欄位或指令的立即欄位中發現的數字的若干個數字而計算目標地址。分支單元5058可使用具有多個輸入寄存器電路5075、5076、5077和輸出寄存器電路5080的ALU5074。舉例而言,分支單元5058可與通用寄存器5059、解碼分派單元5056或其他電路5073通信。指令群組的執行可對於包括(例如)以下的多種原因被中斷:由作業系統啟動的上下文切換、引起上下文切換的程序例外或錯誤、引起上下文切換的I/O中斷信號或多個程序的多線程活動(在多線程化環境中)。優選地,上下文切換動作保存關於當前正執行的程序的狀態信息,且然後載入關於正被調用的另一程序的狀態信息。舉例而言,可將狀態信息保存於硬體寄存器中或存儲器中。狀態信息優選包含指向要執行的下一個指令的程序計數器值、條件碼、存儲器翻譯信息和構建的寄存器內容。上下文切換活動可單獨或組合地通過硬體電路、應用程式、作業系統程序或固件程序代碼(微碼、微微碼或經授權內部碼(LIC))來訓練。處理器根據指令定義的方法來存取操作數。指令可使用指令的一部分的值來提供立即操作數,可提供明確指向通用寄存器或專用寄存器(例如,浮點寄存器)的一個或多個寄存器欄位。指令可利用通過操作碼欄位識別為操作數的隱含的寄存器。指令可將存儲器位置用於操作數。操作數的存儲器位置可由寄存器、立即欄位或寄存器與立即欄位的組合來提供,如通過z/Architecture長位移工具(longdisplacementfacility)舉例說明,其中指令定義(例如)相加在一起以提供操作數在存儲器中的地址的基寄存器、索引寄存器和立即欄位(位移欄位)。除非另有指示,否則本文中的位置通常隱含主存儲器(主儲存器)中的位置。參看圖18C,處理器使用載入/存儲單元5060來存取儲存器。載入/存儲單元5060可通過獲得目標操作數在存儲器5053中的地址且在寄存器5059或另一存儲器5053的位置中載入操作數來執行載入操作,或可通過獲得目標操作數在存儲器5053中的地址且將自寄存器5059或另一存儲器5053的位置獲得的數據存儲於存儲器5053中的目標操作數位置中來執行存儲操作。載入/存儲單元5060可為推測性的,且可以相對於指令順序而言無序的順序存取存儲器,然而,載入/存儲單元5060對於程序維持按次序執行指令的顯現。載入/存儲單元5060可與通用寄存器5059、解碼/分派單元5056、高速緩衝存儲器/存儲器接口5053或其他元件5083通信,且包含各種寄存器電路、ALU5085和控制邏輯5090以計算存儲地址且提供管線定序以保持操作按次序。一些操作可能為無序的,但載入/存儲單元提供使得無序操作對於程序顯現為已按次序執行的功能性,如本領域中所熟知。優選地,應用程式「看見」的地址常常被稱作虛擬地址。虛擬地址有時被稱作「邏輯地址」和「有效地址」。這些虛擬地址為虛擬是因為:它們通過多種動態地址翻譯(DAT)技術中的一個而重新導向至物理存儲器位置,這些DAT技術包括(但不限於)僅對虛擬地址加偏移值作為前綴、經由一個或多個翻譯表翻譯虛擬地址,翻譯表優選單獨或組合地包含至少段表和頁表,優選地,段表具有指向頁表的入口。在z/Architecture中,提供翻譯層級,包括區第一表、區第二表、區第三表、段表和選用的頁表。常常通過利用翻譯後備緩衝器(TLB)(其包含將虛擬地址映射至相關聯的物理存儲器位置的入口)來改進地址翻譯的性能。當DAT使用翻譯表翻譯虛擬地址時,建立這些入口。然後,虛擬地址的隨後使用可利用快速TLB的入口,而不是緩慢依序翻譯表存取。可通過包括LRU(最近最少使用)的多種替換演算法來管理TLB內容。在處理器為多處理器系統的處理器的狀況下,每處理器具有保持諸如I/O、高速緩衝存儲器、TLB和存儲器的共用資源互鎖以達成一致性的責任。通常,在維持高速緩衝一致性中將利用「窺探」技術。在窺探環境中,可將每個高速緩衝存儲器線標記為處於以下狀態中的任一個以便促進共用:共用狀態、互斥狀態、改變的狀態、無效狀態等。I/O單元5054(圖17)為處理器提供用於附接至外圍器件(例如,包括磁帶、光碟、印表機、顯示器和網絡)的構件。I/O單元常常由軟體驅動程序呈現至電腦程式。在大型計算機(諸如,來自的)中,通道適配器和開放系統適配器為大型計算機的I/O單元,這些I/O單元提供作業系統與外圍器件之間的通信。另外,其他類型的計算環境可受益於本發明的一個或多個方面。作為實例,環境可包括仿真器(例如,軟體或其他仿真機制),在該仿真器中仿真特定架構(包括(例如)指令執行、構建的功能(諸如,地址翻譯)和構建的寄存器)或其子集(例如,在具有處理器和存儲器的本地計算機系統上)。在這種環境中,仿真器的一個或多個仿真功能可實施本發明的一個或多個方面,即使執行該仿真器的計算機可具有不同於正仿真能力的架構也如此。作為一個實例,在仿真模式下,解碼特定指令或正仿真操作,且構建適當仿真功能以實施單獨指令或操作。在仿真環境中,主機計算機包括(例如):存儲器,其存儲指令和數據;指令取得單元,其自存儲器取得指令且可選地提供所取得的指令的本地緩衝;指令解碼單元,其接收所取得的指令且確定已取得的指令的類型;和指令執行單元,其執行這些指令。執行可包括:將數據自存儲器載入至寄存器中;將數據自寄存器存儲回至存儲器;或執行某類型的算術或邏輯運算(如由解碼單元確定)。在一個實例中,以軟體來實施每個單元。舉例而言,將正由這些單元執行的操作實施為仿真器軟體內的一個或多個子例程。更具體地,在大型計算機中,構建的機器指令常常藉助於編譯應用程式而由程式設計師(現今通常為「C」程式設計師)使用。存儲於存儲介質中的這些指令可本地地在z/Architecture伺服器中或者在執行其他架構的機器中執行。可在現有和未來大型計算機伺服器中和在的其他機器(例如,PowerSystems伺服器和System伺服器)上仿真這些指令。可於在使用由AMDTM和其他製造的硬體的廣泛多種機器上執行Linux的機器中執行這些指令。除了在z/Architecture下在該硬體上執行外,也可使用Linux,以及使用由Hercules、UMX或FSI(FundamentalSoftware,Inc)進行的仿真機器,其中執行大體上處於仿真模式下。在仿真模式下,由本地處理器執行仿真軟體以仿真仿真處理器的架構。本地處理器通常執行包含固件或本地作業系統的仿真軟體以執行仿真處理器的仿真。仿真軟體負責取得和執行仿真處理器架構的指令。仿真軟體維持仿真程序計數器以追蹤指令邊界。仿真軟體一次可取得一個或多個仿真機器指令,且將該一個或多個仿真機器指令轉換至對應的本地機器指令群組,以用於由本地處理器執行。可對這些經轉換的指令進行高速緩衝,使得可實現較快速轉換。儘管如此,仿真軟體仍將維持仿真處理器架構的架構規則以便確保作業系統和針對仿真處理器編寫的應用程式正確地操作。此外,仿真軟體將提供通過仿真處理器架構識別的資源(包括(但不限於)控制寄存器、通用寄存器、浮點寄存器、包括(例如)段表和頁表的動態地址翻譯功能、中斷機制、上下文切換機制、當日時間(TOD)時鐘和至I/O子系統的構建的接口),使得作業系統或經設計以在仿真處理器上執行的應用程式可在具有仿真軟體的本地處理器上執行。解碼正進行仿真特定指令,且調用子例程以執行個別指令的功能。仿真仿真處理器的功能的仿真軟體功能(例如)按以下來實施:「C」子例程或驅動程序,或在理解優選實施例的描述之後將在本領域的技術人員的技術內的提供用於特定硬體的驅動程序的某其他方法。包括(但不限於)以下的各種軟體和硬體仿真專利說明達成針對不同機器構建的指令格式用於可用於本領域技術人員的目標機器的仿真的多種已知方式:Beausoleil等人的題為「MultiprocessorforHardwareEmulation」的美國專利證書第5,551,013號;和Scalzi等人的題為「PreprocessingofStoredTargetRoutinesforEmulatingIncompatibleInstructionsonaTargetProcessor」的美國專利證書第6,009,261號;和Davidian等人的題為「DecodingGuestInstructiontoDirectlyAccessEmulationRoutinesthatEmulatetheGuestInstructions」的美國專利證書第5,574,873號;和Gorishek等人的題為「SymmetricalMultiprocessingBusandChipsetUsedforCoprocessorSupportAllowingNon-NativeCodetoRuninaSystem」的美國專利證書第6,308,255號;和Lethin等人的題為「DynamicOptimizingObjectCodeTranslatorforArchitectureEmulationandDynamicOptimizingObjectCodeTranslationMethod」的美國專利證書第6,463,582號;和EricTraut的題為「MethodforEmulatingGuestInstructionsonaHostComputerThroughDynamicRecompilationofHostInstructions」的美國專利證書第5,790,825號(前述專利證書中的每一個在此以其全文引用的方式併入本文中);和許多其他。在圖19中,提供仿真主機計算機系統5092的實例,其仿真主機架構的主機計算機系統5000'。在仿真主機計算機系統5092中,主機處理器(CPU)5091為仿真主機處理器(或虛擬主機處理器),且包含仿真處理器5093,其具有不同於主機計算機5000'的處理器5091的本地指令集架構的本地指令集架構。仿真主機計算機系統5092具有仿真處理器5093可存取的存儲器5094。在實例實施例中,將存儲器5094分割成主機計算機存儲器5096部分和仿真例程5097部分。主機計算機存儲器5096可用於根據主機計算機架構的仿真主機計算機5092的程序。仿真處理器5093執行不同於仿真處理器5091的本地指令的架構的構建的指令集的本地指令,這些本地指令自仿真例程存儲器5097獲得,且可通過使用在序列和存取/解碼例程中獲得的一個或多個指令自主機計算機存儲器5096中的程序存取主機指令以用於執行,序列和存取/解碼例程可解碼(多個)所存取的主機指令以確定用於仿真所存取的主機指令的功能的本地指令執行例程。舉例而言,針對主機計算機系統5000'的架構定義的其他工具可通過構建的工具例程來仿真,包括諸如通用寄存器、控制寄存器、動態地址翻譯和I/O子系統支持和處理器高速緩衝存儲器的工具。仿真例程也可利用可用於仿真處理器5093中的功能(諸如,通用寄存器和虛擬地址的動態翻譯)以改進仿真例程的性能。也可提供特殊硬體和卸載引擎以輔助處理器5093仿真主機計算機5000'的功能。本文中所使用的術語僅用於描述特定實施例的目的,且並不意欲為本發明的限制。如本文中所使用,除非上下文另有清晰指示,否則單數形式「一」、「一個」和「該」意欲也包括複數形式。應進一步理解,當術語「包含」和/或「包括」用於此說明書中時,其指定所敘述特徵、整數、步驟、操作、元件和/或組件的存在,但並不排除一個或多個其他特徵、整數、步驟、操作、元件、組件和/或其群組的存在或添加。以下權利要求書中的所有構件或步驟加功能元件的對應結構、材料、動作和等效物(若有的話)意欲包括用於結合如特別主張的其他所主張元件執行功能的任何結構、材料或動作。已出於說明和描述的目的呈現本發明的一個或多個方面的描述,但該描述並不意欲為詳盡的或限於所公開的形式下的本發明。在不脫離本發明的範疇和精神的情況下,許多修改和變化對於本領域技術人員將為顯而易見。選擇並描述了實施例以便最佳地解釋本發明的原理和實踐應用,且使其他本領域技術人員能夠針對具有如適合於所預期的特定用途的各種修改的各種實施例來理解本發明。第23章向量串指令向量串工具指令除非另有指定,否則所有操作數為向量寄存器操作數。彙編器語法中的「V」指明向量操作數。向量尋找任何相等自左至右進行,比較第二操作數的每個無符號二進位整數元素與第三操作數的每個無符號二進位整數元素的相等性,且若在M5欄位中設定了零搜索標誌,則視情況與零比較。若M5欄位中的結果類型(RT)標誌為零,則對於匹配第三操作數中的任一元素或視情況匹配零的第二操作數中的每個元素,將第一操作數中對應的元素的位位置設定為一,否則,將其設定為零。若M5欄位中的結果類型(RT)標誌為一,則將匹配第三操作數中的元素或零的第二操作數中的最左側元素的字節索引存儲於第一操作數的字節七中。每個指令具有擴展的記憶碼區段,其描述推薦的擴展的記憶碼及其對應的機器組譯器語法。程序設計注釋:對於視情況設定條件碼的所有指令,若設定條件碼,則性能可能降級。若M5欄位中的結果類型(RT)標誌為一且未發現字節相等,或為零(若設定了零搜索標誌),則將與向量中的字節的數目相等的索引存儲於第一操作數的字節七中。M4欄位指定元素大小控制(ES)。ES控制指定向量寄存器操作數中的元素的大小。若指定保留值,則看作為指定例外。0-字節1-半字2-字3至15-保留M5欄位具有以下格式:如下定義M5欄位的位:·結果類型(RT):若為零,則每個所得元素為關於該元素的所有範圍比較的掩碼。若為一,則將字節索引存儲至第一操作數的字節七中,且將零存儲於所有其他元素中。·零搜索(ZS):若為一,則也將第二操作數的每個元素與零比較。·條件碼設定(CC):若為零,則不設定條件碼且條件碼保持不變。若為一,則如以下段中所指定來設定條件碼。特殊條件若出現以下中的任一個,則辨識指定例外且不採取其他行動:1.M4欄位含有自3至15的值。2.M5欄位的位0不是零。所得條件碼:若CC標誌為零,則碼保持不變。若CC標誌為一,則如下來設定碼:0若設定了ZS-位,則在第二操作數中比零低的索引元素中不存在匹配。1第二操作數的一些元素匹配第三操作數中的至少一個元素。2第二操作數的所有元素匹配第三操作數中的至少一個元素。3第二操作數中沒有元素匹配第三操作數中的任何元素。程序例外:1具有DXCFE的數據,向量寄存器·在未安裝向量擴展工具的情況下的操作·指定(保留的ES值)·事務約束(TransactionConstraint)擴展的記憶碼:向量尋找元素相等自左至右進行,將第二操作數的無符號二進位整數元素與第三操作數的對應的無符號二進位整數元素比較。若兩個元素相等,則將最左側相等元素的第一字節的字節索引放置於第一操作數的字節七中。將零存儲於第一操作數的剩餘字節中。若沒有發現字節相等,或若沒有發現字節為零(若設定了零比較),則將與向量中的字節的數目相等的索引存儲於第一操作數的字節七中。將零存儲於剩餘字節中。若在M5欄位中設定了零搜索(ZS)位,則也比較第二操作數中的每個元素與零的相等性。若在發現第二操作數和第三操作數的任何其他元素相等之前在第二操作數中尋找到零元素,則將發現為零的元素的第一字節的字節索引存儲於第一操作數的字節七中,且將零存儲於所有其他字節位置中。若條件碼設定(CC)標誌為一,則將條件碼設定為零。M4欄位指定元素大小控制(ES)。ES控制指定向量寄存器操作數中的元素的大小。若指定保留值,則看作為指定例外。0-字節1-半字2-字3至15-保留M5欄位具有以下格式:如下定義M5欄位的位:·保留:保留位0至1且位0至1必須為零。否則,看作為指定例外。·零搜索(ZS):若為一,則也將第二操作數的每個元素與零比較。·條件碼設定(CC):若為零,則條件碼保持不變。若為一,則如在以下段中所指定來設定條件碼。特殊條件若出現以下中的任一個,則辨識指定例外且不採取其他行動:1.M4欄位含有自3至15的值。2.M5欄位的位0至1不是零。所得條件碼:若將M5欄位的位3設定為一,則如下設定碼:0若設定了零比較位,則比較在具有比任何相等比較小的索引的元素中檢測到第二操作數中的零元素。1比較在一些元素中檢測到第二操作數與第三操作數之間的匹配。若設定了零比較位,則此匹配出現於具有小於或等於零比較元素的索引的元素中。2--3沒有元素比較起來相等。若M5欄位的位3為零,則碼保持不變。程序例外:·具有DXCFE的數據,向量寄存器·在未安裝向量擴展工具的情況下的操作·指定(保留的ES值)·事務約束擴展的記憶碼:程序設計注釋:1.對於任一元素大小,始終將字節索引存儲至第一操作數中。舉例而言,若將元素大小設定為半字且比較出第2個索引的半字相等,則將存儲字節索引4。2.第三操作數不應含有具有零值的元素。若第三操作數確實含有零且在任何其他相等比較之前與第二操作數中的零元素匹配,則設定條件碼,而不管零比較位設定。向量尋找元素不相等自左至右進行,將第二操作數的無符號二進位整數元素與第三操作數的對應的無符號二進位整數元素比較。若兩個元素不相等,則將最左側不相等元素的字節索引放置於第一操作數的字節七中,且將零存儲至所有其他字節。若將M5欄位中的條件碼設定(CC)位設定為一,則設定條件碼以指示哪一操作數較大。若所有元素相等,則將等於向量大小的字節索引放置於第一操作數的字節七中,且將零放置於所有其他字節位置中。若CC位為一,則設定條件碼三。若在M5欄位中設定了零搜索(ZS)位,則也比較第二操作數中的每個元素與零的相等性。若在發現第二操作數的任一其他元素不相等之前在第二操作數中尋找到零元素,則將發現為零的元素的第一字節的字節索引存儲於第一操作數的字節七中。將零存儲於所有其他字節中,且設定條件碼0。M4欄位指定元素大小控制(ES)。ES控制指定向量寄存器操作數中的元素的大小。若指定保留值,則看作為指定例外。0-字節1-半字2-字3至15-保留M5欄位具有以下格式:如下定義M5欄位的位:·零搜索(ZS):若為一,則也將第二操作數的每個元素與零比較。·條件碼設定(CC):若為零,則不設定條件碼且條件碼保持不變。若為一,則如以下段中所指定來設定條件碼。特殊條件若出現以下中的任一個,則看作指定例外且不採取其他行動:1.M4欄位含有自3至15的值。2.M5欄位的位0至1不是零。所得條件碼:若將M5欄位的位3設定為一,則如下設定碼:0若設定了零比較位,則比較在比任何不相等比較低的索引元素中檢測到兩個操作數中的零元素1檢測到元素失配,且VR2中的元素小於VR3中的元素2檢測到元素失配,且VR2中的元素大於VR3中的元素3所有元素比較起來相等,且若設定了零比較位,則在第二操作數中沒有尋找到零元素。若M5欄位的位3為零,則碼保持不變。程序例外:·具有DXCFE的數據,向量寄存器·在沒有安裝向量擴展工具的情況下的操作·指定(保留的ES值)·事務約束擴展的記憶碼:向量串範圍比較自左至右進行,將第二操作數中的無符號二進位整數元素與由第三操作數和第四操作數中的偶數-奇數對元素定義的值範圍比較。結合來自第四操作數的控制值定義要執行的比較的範圍。若元素匹配由第三操作數和第四操作數指定的範圍中的任一個,則將其視為匹配。若M6欄位中的結果類型(RT)標誌為零,則若第一操作數中對應於第二操作數中正進行比較的元素的元素匹配這些範圍中的任一個,則將該元素的位位置設定為一,否則,將其設定為零。若將M6欄位中的結果類型(RT)標誌設定為一,則第二操作數中匹配由第三操作數和第四操作數指定的範圍中的任一個或零比較(若將ZS標誌設定為一)的第一元素的字節索引放置於第一操作數的字節七中,且將零存儲於剩餘字節中。若沒有元素匹配,則將等於向量中的字節的數目的索引放置於第一操作數的字節七中,且將零存儲於剩餘字節中。M6欄位中的零搜索(ZS)標誌,若設定為一,則將第二操作數元素與零的比較添加至由第三操作數和第四操作數提供的範圍。若為在比任何其他真比較低的索引元素中的零比較,則將條件碼設定為零。這些操作數含有由M5欄位中的元素大小控制指定的大小的元素。第四操作數元素具有以下格式:若ES等於0:若ES等於1:若ES等於2:如下定義第四操作數元素中的位:·相等(EQ):當為一時,進行相等性比較。·大於(GT):當為一時,執行大於比較。·小於(LT):當為一時,執行小於比較。·保留所有其他位且所有其他位應為零以確保未來相容性。可以任何組合使用這些控制位。若這些位都沒有經設定,則比較將始終產生假結果。若所有這些位經設定,則比較將始終產生真結果。M5欄位指定元素大小控制(ES)。ES控制指定向量寄存器操作數中的元素的大小。若指定保留值,則看作為指定例外。0-字節1-半字2-字3至15-保留M6欄位具有以下格式:如下定義M6欄位的位:·反轉結果(IN):若為零,則繼續進行與控制向量中的成對值的比較。若為一,則反轉在這些範圍中的這些成對的比較的結果。·結果類型(RT):若為零,則每個所得元素為關於該元素的所有範圍比較的掩碼。若為一,則將索引存儲至第一操作數的字節七中。將零存儲於剩餘字節中。·零搜索(ZS):若為一,則也將第二操作數的每個元素與零比較。·條件碼設定(CC):若為零,則不設定條件碼且條件碼保持不變。若為一,則如以下段中所指定來設定條件碼。特殊條件若出現以下中的任一個,則看作指定例外且不採取其他行動:1.M4欄位含有自3至15的值。所得條件碼:0若ZS=1且在比任何比較低的索引元素中發現零1發現比較2--3沒有發現比較程序例外:·具有DXCFE的數據,向量寄存器·在沒有安裝向量擴展工具的情況下的操作·指定(保留的ES值)·事務約束擴展的記憶碼:ES=1,ZS=0VR1(a)RT=0的結果VR1(b)RT=1的結果將計數載入至塊邊界將含有可能自第二操作數位置載入而不跨越指定塊邊界的字節的數目的32-位無符號二進位整數(覆蓋於十六處)放置於第一操作數中。將位移作為12-位無符號整數對待。第二操作數地址不用以尋址數據。M3欄位指定用以用信號向CPU通知關於塊邊界大小以計算載入的可能字節的數目的碼。若指定保留值,則看作為指定例外。所得條件碼:0操作數一為十六1--2--3操作數一小於十六所得條件碼:程序例外:·在沒有安裝向量擴展工具的情況下的操作·指定程序設計注釋:期望結合向量載入至塊邊界(VECTORLOADTOBLOCKBOUNDARY)使用將計數載入至塊邊界(LOADCOUNTTOBLOCKBOUNDARY)以確定載入的字節的數目。自VR元素的向量載入GR將具有由M4欄位中的ES值指定的大小且通過第二操作數地址編索引的第三操作數的元素放置於第一操作數位置中。第三操作數為向量寄存器。第一操作數為通用寄存器。若通過第二操作數地址指定的索引大於具有指定元素大小的第三操作數中最高編號的元素,則第一操作數中的數據為不可預測。若向量寄存器元素小於雙字,則該元素在64-位通用寄存器中恰好對準,且零填充剩餘位。第二操作數地址不用以尋址數據;相反,該地址的最右側12個位用以指定元素在第二操作數內的索引。M4欄位指定元素大小控制(ES)。ES控制指定向量寄存器操作數中的元素的大小。若指定保留值,則看作為指定例外。0-字節1-半字2-字3-雙字4至15-保留不變。所得條件碼:碼不變。程序例外:·具有DXCFE的數據,向量寄存器·在沒有安裝向量擴展工具的情況下的操作·指定(保留的ES值)·事務約束擴展的記憶碼:向量載入至塊邊界以零索引字節元素開始,以來自第二操作數的字節載入第一操作數。若遇到邊界條件,則第一操作數的其餘部分為不可預測。沒有看作為關於未載入的字節的存取例外。將針對VLBB的位移作為12-位無符號整數對待。M3欄位指定用以用信號向CPU通知關於用以載入至的塊邊界大小的碼。若指定保留值,則看作為指定例外。所得條件碼:碼保持不變。程序例外:·存取(取得,操作數2)·具有DXCFE的數據,向量寄存器·在沒有安裝向量擴展工具的情況下的操作·指定(保留的塊邊界碼)·事務約束程序設計注釋:1.在某些情況下,可經過塊邊界載入數據。然而,若不存在關於該數據的存取例外,則將僅發生此情形。向量存儲將第一操作數中的128-位值存儲至通過第二操作數指定的存儲位置。將針對VST的位移作為12-位無符號整數對待。所得條件碼:碼保持不變。程序例外:·存取(存儲,操作數2)·具有DXCFE的數據,向量寄存器·在沒有安裝向量擴展工具的情況下的操作·事務約束具有長度的向量存儲自左至右進行,將來自第一操作數的字節存儲於第二操作數位置處。指定第三操作數的通用寄存器含有32-位無符號整數,該整數含有表示存儲的最高索引字節的值。若第三操作數含有大於或等於向量的最高字節索引的值,則存儲第一操作數的所有字節。僅看作為關於存儲的字節的存取例外。將針對具有長度的向量存儲(VECTORSTOREWITHLENGTH)的位移作為12-位無符號整數對待。所得條件碼:條件碼保持不變。程序例外:·存取(存儲,操作數2)·具有DXCFE的數據,向量寄存器·在沒有安裝向量擴展工具的情況下的操作·事務約束RXB描述所有向量指令具有在標註為RXB的指令的位36至40中的欄位。此欄位含有用於所有向量寄存器指明的操作數的最高有效位。保留用於沒有通過指令指定的寄存器指明的位且應將其設定為零;否則,程序在未來無法相容地操作。將最高有效位串接至四-位寄存器指明的左側以建立五-位向量寄存器指明。如下定義這些位:0.在指令的位8至11中用於向量寄存器指明的最高有效位。1.在指令的位12至15中用於向量寄存器指明的最高有效位。2.在指令的位16至19中用於向量寄存器指明的最高有效位。3.在指令的位32至35中用於向量寄存器指明的最高有效位。向量啟用控制若將控制寄存器零中的向量啟用控制(位46)和AFP寄存器控制(位45)二者設定為一,則可僅使用向量寄存器和指令。若安裝了向量工具且在沒有設定啟用位的情況下執行向量指令,則看作為具有DXCFE十六進位的數據例外。若沒有安裝向量工具,則看作為操作例外。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀