本發(fā)明大體涉及數(shù)據(jù)處理,尤其涉及將數(shù)據(jù)載入至寄存器中。
背景技術(shù):數(shù)據(jù)處理包括各種類(lèi)型的處理,包括將數(shù)據(jù)載入至寄存器中。數(shù)據(jù)至寄存器中的載入包括(但不限于)字符數(shù)據(jù)(諸如,字符數(shù)據(jù)串);整數(shù)數(shù)據(jù);或任何其他類(lèi)型的數(shù)據(jù)的載入。然后能夠使用和/或操縱所載入的數(shù)據(jù)。執(zhí)行各種類(lèi)型的處理(包括將數(shù)據(jù)載入至寄存器中)的當(dāng)前指令傾向于效率低下。
技術(shù)實(shí)現(xiàn)要素:經(jīng)由提供用于執(zhí)行機(jī)器指令的計(jì)算機(jī)程序產(chǎn)品來(lái)克服現(xiàn)有技術(shù)的缺點(diǎn)并提供優(yōu)勢(shì)。該計(jì)算機(jī)程序產(chǎn)品包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其可由處理電路讀取且存儲(chǔ)用于由該處理電路執(zhí)行以用于執(zhí)行方法的指令。該方法包括(例如):由處理器獲得用于執(zhí)行的機(jī)器指令,該機(jī)器指令根據(jù)計(jì)算機(jī)架構(gòu)定義以用于計(jì)算機(jī)執(zhí)行,該機(jī)器指令包含:至少一個(gè)操作碼字段,其提供操作碼,該操作碼識(shí)別“載入至塊邊界”操作;寄存器字段,其用以指明寄存器,該寄存器包含第一操作數(shù);用于找出第二操作數(shù)在主存儲(chǔ)器中的位置的至少一個(gè)字段;以及執(zhí)行該機(jī)器指令,該執(zhí)行包含:僅用在主存儲(chǔ)器的指令指定塊內(nèi)的該第二操作數(shù)的對(duì)應(yīng)字節(jié)載入該第一操作數(shù)的字節(jié)。本文中也描述和主張關(guān)于本發(fā)明的一個(gè)或多個(gè)方面的方法和系統(tǒng)。另外,本文中也描述且可主張關(guān)于本發(fā)明的一個(gè)或多個(gè)方面的服務(wù)。經(jīng)由本發(fā)明的技術(shù)實(shí)現(xiàn)額外特征和優(yōu)勢(shì)。本發(fā)明的其他實(shí)施例和方面在本文中得以詳細(xì)描述且被視為所主張的本發(fā)明的一部分。附圖說(shuō)明現(xiàn)在將參考附圖僅通過(guò)示例方式描述本發(fā)明的實(shí)施例,在附圖中:圖1描繪并入且使用本發(fā)明的一個(gè)或者多個(gè)實(shí)施例的計(jì)算環(huán)境的實(shí)例;圖2A描繪并入且使用本發(fā)明的一個(gè)或者多個(gè)實(shí)施例的計(jì)算環(huán)境的另一實(shí)例;圖2B描繪根據(jù)本發(fā)明的實(shí)施例的圖2A的存儲(chǔ)器的進(jìn)一步細(xì)節(jié);圖3描繪根據(jù)本發(fā)明的實(shí)施例的“向量載入至塊邊界”指令的格式的實(shí)施例;圖4描繪根據(jù)本發(fā)明的實(shí)施例的與“向量載入至塊邊界”指令相關(guān)聯(lián)的邏輯;圖5描繪根據(jù)本發(fā)明的實(shí)施例的要載入至向量寄存器中的數(shù)據(jù);圖6描繪根據(jù)本發(fā)明的實(shí)施例的寄存器文件的一個(gè)實(shí)例;圖7描繪并入本發(fā)明的一個(gè)或多個(gè)實(shí)施例的計(jì)算機(jī)程序產(chǎn)品的實(shí)施例;圖8描繪并入且使用本發(fā)明一個(gè)或多個(gè)實(shí)施例的主機(jī)計(jì)算機(jī)系統(tǒng)的一個(gè)實(shí)施例;圖9描繪并入且使用本發(fā)明一個(gè)或多個(gè)實(shí)施例的計(jì)算機(jī)系統(tǒng)的另一實(shí)例;圖10描繪并入且使用本發(fā)明一個(gè)或多個(gè)實(shí)施例的包含計(jì)算機(jī)網(wǎng)絡(luò)的計(jì)算機(jī)系統(tǒng)的另一實(shí)例;圖11描繪并入且使用本發(fā)明一個(gè)或多個(gè)實(shí)施例的計(jì)算機(jī)系統(tǒng)的各種元件;圖12A描繪并入且使用本發(fā)明一個(gè)或多個(gè)實(shí)施例的圖11的計(jì)算機(jī)系統(tǒng)的執(zhí)行單元;圖12B描繪并入且使用本發(fā)明一個(gè)或多個(gè)實(shí)施例的圖11的計(jì)算機(jī)系統(tǒng)的分支單元;圖12C描繪并入且使用本發(fā)明一個(gè)或多個(gè)實(shí)施例的圖11的計(jì)算機(jī)系統(tǒng)的載入/存儲(chǔ)單元;以及圖13描繪并入且使用本發(fā)明一個(gè)或多個(gè)實(shí)施例的仿真主機(jī)計(jì)算機(jī)系統(tǒng)。具體實(shí)施方式根據(jù)本發(fā)明的一個(gè)方面,提供用于促進(jìn)數(shù)據(jù)在寄存器中的載入的能力。作為實(shí)例,數(shù)據(jù)包括字符數(shù)據(jù)、整數(shù)數(shù)據(jù)和/或其他類(lèi)型的數(shù)據(jù)。另外,寄存器為向量寄存器或另一類(lèi)型的寄存器。字符數(shù)據(jù)包括(但不限于)任何語(yǔ)言中的字母字符;數(shù)字;標(biāo)點(diǎn)符號(hào);和/或其他符號(hào)。字符數(shù)據(jù)可為或可不為數(shù)據(jù)的串。標(biāo)準(zhǔn)與字符數(shù)據(jù)相關(guān)聯(lián),標(biāo)準(zhǔn)的實(shí)例包括(但不限于):ASCII(美國(guó)信息交換標(biāo)準(zhǔn)碼);Unicode,包括(但不限于)UTF(Unicode變換格式)8;UTF16;等。向量寄存器(也被稱(chēng)作向量)包括一個(gè)或多個(gè)元素,且作為實(shí)例,每個(gè)元素的長(zhǎng)度為一個(gè)、兩個(gè)或四個(gè)字節(jié)。另外,向量操作數(shù)(例如)為具有多個(gè)元素的SIMD(單指令多數(shù)據(jù))操作數(shù)。在其他實(shí)施例中,元素可以是其他大小的;且向量操作數(shù)不需要為SIMD,和/或可包括一個(gè)元素。在一個(gè)實(shí)例中,提供“向量載入至塊邊界”指令,其將來(lái)自存儲(chǔ)器的數(shù)據(jù)的可變數(shù)目個(gè)字節(jié)載入至向量寄存器中,同時(shí)確保不交叉從其數(shù)據(jù)正被載入的存儲(chǔ)器的指定邊界??赏ㄟ^(guò)指令(例如,指令文本中的可變值、編碼于操作碼中的固定指令文本值、在指令中指定的基于寄存器的邊界等)明確地指定邊界;或可由機(jī)器動(dòng)態(tài)地確定邊界。例如,指令指定數(shù)據(jù)將被載入至頁(yè)面或高速緩沖存儲(chǔ)器邊界,且機(jī)器確定高速緩沖存儲(chǔ)器線(xiàn)或頁(yè)面大小(例如,在(例如)翻譯后備緩沖器中查找以確定頁(yè)面大小),且載入至該點(diǎn)。作為另一實(shí)例,此指令也用以使數(shù)據(jù)存取與選定邊界對(duì)準(zhǔn)。在一個(gè)實(shí)施例中,該指令僅用第二操作數(shù)的在通過(guò)指令指定的主存儲(chǔ)器的塊內(nèi)的對(duì)應(yīng)字節(jié)載入向量寄存器(第一操作數(shù))的字節(jié)。如本文中所使用,主存儲(chǔ)器(也稱(chēng)為,主儲(chǔ)存器)的塊為具有指定大小的任何存儲(chǔ)器塊。指定大小也被稱(chēng)作塊的邊界,邊界為塊的末端。在另一實(shí)施例中,載入其他類(lèi)型的寄存器。即,正被載入的寄存器不是向量寄存器,而是另一類(lèi)型的寄存器。在此上下文中,該指令被稱(chēng)作“載入至塊邊界”指令,其用以將數(shù)據(jù)載入至寄存器中。參看圖1描述并入且使用本發(fā)明的一個(gè)或多個(gè)方面的計(jì)算環(huán)境的一個(gè)實(shí)施例。計(jì)算環(huán)境100包括(例如)經(jīng)由(例如)一個(gè)或多個(gè)總線(xiàn)108和/或其他連接耦接至彼此的處理器102(例如,中央處理單元)、存儲(chǔ)器104(例如,主存儲(chǔ)器)和或多個(gè)輸入/輸出(I/O)器件和/或接口106。在一個(gè)實(shí)例中,處理器102基于由InternationalBusinessMachinesCorporation供應(yīng)的z/Architecture,且為服務(wù)器的一部分,諸如也由InternationalBusinessMachinesCorporation供應(yīng)且實(shí)施z/Architecture的Systemz服務(wù)器。z/Architecture的一個(gè)實(shí)施例描述于題為“z/ArchitecturePrinciplesofOperation”的公開(kāi)號(hào)(SA22-7832-08號(hào),第九版,2010年8月)中,該公開(kāi)號(hào)在此以其全文引用的方式并入本文中。在一個(gè)實(shí)例中,該處理器執(zhí)行操作系統(tǒng),諸如,也由InternationalBusinessMachinesCorporation供應(yīng)的z/OS。和為InternationalBusinessMachinesCorporation(Armonk,NewYork,USA)的注冊(cè)商標(biāo)。本文中使用的其他名稱(chēng)可為InternationalBusinessMachinesCorporation或其他公司的注冊(cè)商標(biāo)、商標(biāo)或產(chǎn)品名稱(chēng)。在另一實(shí)施例中,處理器102基于由InternationalBusinessMachinesCorporation供應(yīng)的PowerArchitecture。PowerArchitecture的一個(gè)實(shí)施例描述于“PowerISATM第2.06版修訂B”(InternationalBusinessMachinesCorporation,2010年7月23日)中,該文件在此以其全文引用的方式并入本文中。POWER為InternationalBusinessMachinesCorporation的注冊(cè)商標(biāo)。在另一實(shí)施例中,處理器102基于由IntelCorporation供應(yīng)的Intel架構(gòu)。Intel架構(gòu)的一個(gè)實(shí)施例描述于“64andIA-32ArchitecturesDeveloper'sManual:第2B卷,InstructionsSetReference,A-L”(序號(hào)253666-041US,2011年12月)和“64andIA-32ArchitecturesDeveloper'sManual:第2B卷,InstructionsSetReference,M-Z”(序號(hào)253667-041US,2011年12月)中,這些文件中的每一個(gè)在此以其全文引用的方式并入本文中。為IntelCorporation(SantaClara,California)的注冊(cè)商標(biāo)。參看圖2A描述并入且使用本發(fā)明的一個(gè)或多個(gè)實(shí)施例的計(jì)算環(huán)境的另一實(shí)施例。在此實(shí)例中,計(jì)算環(huán)境200包括(例如)經(jīng)由(例如)一個(gè)或多個(gè)總線(xiàn)208和/或其他連接耦接至彼此的本地中央處理單元202、存儲(chǔ)器204和一個(gè)或多個(gè)輸入/輸出器件和/或接口206。作為實(shí)例,計(jì)算環(huán)境200可包括:由InternationalBusinessMachinesCorporation(Armonk,NewYork)供應(yīng)的PowerPC處理器、pSeries服務(wù)器或xSeries服務(wù)器;由HewlettPackardCo.(PaloAlto,California)供應(yīng)的具有IntelItaniumII處理器的HPSuperdome;和/或基于由InternationalBusinessMachinesCorporation、HewlettPackard、Intel、Oracle或其他供應(yīng)的架構(gòu)的其他機(jī)器。本地中央處理單元202包括在該環(huán)境內(nèi)的處理期間使用的一個(gè)或多個(gè)本地寄存器210,諸如,一個(gè)或多個(gè)通用寄存器和/或一個(gè)或多個(gè)專(zhuān)用寄存器。這些寄存器包括表示在任何特定時(shí)間點(diǎn)的環(huán)境狀態(tài)的信息。此外,本地中央處理單元202執(zhí)行存儲(chǔ)于存儲(chǔ)器204中的指令和程序碼。在一個(gè)特定實(shí)例中,中央處理單元執(zhí)行存儲(chǔ)于存儲(chǔ)器204中的仿真器碼212。此碼使得以一個(gè)架構(gòu)中配置的處理環(huán)境能夠仿真另一架構(gòu)。舉例而言,仿真器碼212允許基于不同于z/Architecture的架構(gòu)的機(jī)器(諸如,PowerPC處理器、pSeries服務(wù)器、xSeries服務(wù)器、HPSuperdome服務(wù)器或其他)仿真z/Architecture和執(zhí)行基于z/Architecture開(kāi)發(fā)的軟件和指令。參看圖2B描述關(guān)于仿真器碼212的進(jìn)一步細(xì)節(jié)??蛻?hù)指令250包含經(jīng)開(kāi)發(fā)以欲于不同于本地CPU202的架構(gòu)的架構(gòu)中執(zhí)行的軟件指令(例如,機(jī)器指令)。舉例而言,客戶(hù)指令250可能已經(jīng)設(shè)計(jì)以在z/Architecture處理器102上執(zhí)行,但相反,正在本地CPU202(其可為(例如)IntelItaniumII處理器)上仿真客戶(hù)指令250。在一個(gè)實(shí)例中,仿真器碼212包括指令取得單元252以自存儲(chǔ)器204獲得一個(gè)或多個(gè)客戶(hù)指令250,并且可選地提供用于所獲得的指令的本地緩沖。仿真器碼212也包括指令翻譯例程254以確定已獲得的客戶(hù)指令的類(lèi)型且將客戶(hù)指令翻譯成一個(gè)或多個(gè)對(duì)應(yīng)本地指令256。此翻譯包括(例如)識(shí)別要由客戶(hù)指令執(zhí)行的函數(shù)并選擇(多個(gè))本地指令以執(zhí)行該函數(shù)。另外,仿真器212包括仿真控制例程260以使得執(zhí)行本地指令。仿真控制例程260可使得本地CPU202執(zhí)行仿真一個(gè)或多個(gè)先前所獲得的客戶(hù)指令的本地指令的例程,并且,在這種執(zhí)行完成時(shí),將控制返回至指令取得例程以仿真下一個(gè)客戶(hù)指令或群客戶(hù)指令的獲得。本地指令256的執(zhí)行可包括將數(shù)據(jù)自存儲(chǔ)器204載入至寄存器中;將數(shù)據(jù)自寄存器存儲(chǔ)回至存儲(chǔ)器;或執(zhí)行某類(lèi)型的算術(shù)或邏輯運(yùn)算(如由翻譯例程確定那樣)。每個(gè)例程(例如)以軟件來(lái)實(shí)施,該軟件存儲(chǔ)于存儲(chǔ)器中且由本地中央處理單元202來(lái)執(zhí)行。在其他實(shí)例中,例程或運(yùn)算中的一個(gè)或多個(gè)以固件、硬件、軟件或其某組合來(lái)實(shí)施??墒褂帽镜谻PU的寄存器210或通過(guò)使用存儲(chǔ)器204中的位置仿真仿真處理器的寄存器。在實(shí)施例中,客戶(hù)指令250、本地指令256和仿真器碼212可常駐于相同存儲(chǔ)器中或可在不同存儲(chǔ)器器件間分配。如本文中所使用,固件包括(例如)處理器的微碼、毫碼和/或宏碼。固件包括(例如)在高級(jí)機(jī)器碼的實(shí)施中使用的硬件級(jí)指令和/或數(shù)據(jù)結(jié)構(gòu)。在一個(gè)實(shí)施例中,固件包括(例如)通常作為微碼遞送的專(zhuān)屬碼,該微碼包括受信任軟件或基礎(chǔ)硬件所特有的微碼且控制操作系統(tǒng)對(duì)系統(tǒng)硬件的存取。在一個(gè)實(shí)例中,所獲得的、經(jīng)翻譯并經(jīng)執(zhí)行的客戶(hù)指令250為本文中所描述的指令。自存儲(chǔ)器取得是一個(gè)架構(gòu)(例如,z/Architecture)的指令,將該指令翻譯且表示為另一架構(gòu)(例如,PowerPC、pSeries、xSeries、Intel等)的本地指令256的序列。然后執(zhí)行這些本地指令。在一個(gè)實(shí)施例中,本文中所描述的指令為根據(jù)本發(fā)明的實(shí)施例提供的向量指令,其為向量設(shè)施的一部分。向量設(shè)施提供(例如)在自一個(gè)至十六個(gè)元素的范圍內(nèi)的固定大小的向量。每向量包括由設(shè)施中所定義的向量指令進(jìn)行運(yùn)算的數(shù)據(jù)。在一個(gè)實(shí)施例中,若向量由多個(gè)元素組成,則將每個(gè)元素與其他元素并行地處理。指令完成不出現(xiàn),直至所有元素的處理完成。如本文中所描述,可將向量指令實(shí)施為包括(但不限于)z/Architecture、Power、Intel等的各種架構(gòu)的一部分。盡管本文中所描述的實(shí)施例針對(duì)z/Architecture,但向量指令和本發(fā)明的一個(gè)或多個(gè)實(shí)施例可基于許多其他架構(gòu)。z/Architecture僅為實(shí)例。在將向量設(shè)施實(shí)施為z/Architecture的一部分的一個(gè)實(shí)施例中,為了使用向量寄存器和指令,將指定控制寄存器(例如,控制寄存器0)中的向量啟用控制和寄存器控制設(shè)定至(例如)一。若安裝了向量設(shè)施且在未設(shè)定啟用控制的情況下執(zhí)行向量指令,則辨識(shí)到數(shù)據(jù)例外。若未安裝向量設(shè)施且執(zhí)行向量指令,則辨識(shí)到操作例外。向量數(shù)據(jù)例如以與其他數(shù)據(jù)格式相同的自左至右順序顯現(xiàn)于儲(chǔ)存器中。編號(hào)為0至7的數(shù)據(jù)格式的位構(gòu)成儲(chǔ)存器中的最左側(cè)(最低編號(hào))字節(jié)位置中的字節(jié),位8至15形成下個(gè)順序位置中的字節(jié),等等。在另一實(shí)例中,向量數(shù)據(jù)可以另一順序(諸如,自右至左)顯現(xiàn)于儲(chǔ)存器中。用向量設(shè)施提供的向量指令中的許多向量指令具有指定位的字段。被稱(chēng)作寄存器擴(kuò)展位或RXB的此字段包括用于向量寄存器指明的操作數(shù)中的每一個(gè)的最高有效位。用于未由指令指定的寄存器指明的位將保留,且被設(shè)定至零。在一個(gè)實(shí)例中,RXB字段包括四個(gè)位(例如,位0至3),且將位定義如下:0-用于指令的第一向量寄存器指明的最高有效位。1-用于指令的第二向量寄存器指明(若有的話(huà))的最高有效位。2-用于指令的第三向量寄存器指明(若有的話(huà))的最高有效位。3-用于指令的第四向量寄存器指明(若有的話(huà))的最高有效位。由(例如)組譯器取決于寄存器編號(hào)將每位設(shè)定至零或一。舉例而言,對(duì)于寄存器0至15,將位設(shè)定至0;對(duì)于寄存器16至31,將位設(shè)定至1等等。在一個(gè)實(shí)施例中,每個(gè)RXB位為用于包括一個(gè)或多個(gè)向量寄存器的指令中的特定位置的擴(kuò)展位。舉例而言,在一個(gè)或多個(gè)向量指令中,RXB的位0為位置8至11的擴(kuò)展位,其被指派至(例如)V1;RXB的位1為位置12至15的擴(kuò)展位,其被指派至(例如)V2;等等。在另一實(shí)施例中,RXB字段包括額外位,且將一個(gè)以上位用作用于每個(gè)向量或位置的擴(kuò)展。根據(jù)本發(fā)明的一個(gè)方面提供的包括RXB字段的指令為“向量載入至塊邊界”指令,其實(shí)例描繪于圖3中。在一個(gè)實(shí)例中,“向量載入至塊邊界”指令300包括:操作碼字段302a(例如,位0至7)、302b(例如,位40至47),其指示“向量載入至塊邊界”操作;向量寄存器字段304(例如,位8至11),其用以指明向量寄存器(V1);索引字段(X2)306(例如,位12至15);基本字段(B2)308(例如,位16至19);位移(displacement)字段(D2)310(例如,位20至31);掩碼字段(M3)312(例如,位32至35);和RXB字段316(例如,位36至39)。在一個(gè)實(shí)例中,字段304至314中的每一個(gè)分開(kāi)且獨(dú)立于(多個(gè))操作碼字段。另外,在一個(gè)實(shí)施例中,這些字段分開(kāi)且獨(dú)立于彼此;然而,在其他實(shí)施例中,可組合一個(gè)以上字段。下文描述關(guān)于這些字段的使用的其他信息。在一個(gè)實(shí)例中,由操作碼字段302a指明的操作碼的選定位(例如,前兩個(gè)位)指定指令的長(zhǎng)度和格式。在此特定實(shí)例中,長(zhǎng)度為三個(gè)半字,且格式為用擴(kuò)展的操作碼字段的向量寄存器和索引存儲(chǔ)運(yùn)算。向量(V)字段以及由RXB指定的其對(duì)應(yīng)擴(kuò)展位指明向量寄存器。具體地,對(duì)于向量寄存器,使用(例如)寄存器字段的四位字段(其中添加寄存器擴(kuò)展位(RXB)作為最高有效位)指定含有操作數(shù)的寄存器。舉例而言,若四位字段為0110且擴(kuò)展位為0,則五位字段00110指示寄存器編號(hào)6。與指令的字段相關(guān)聯(lián)的下標(biāo)編號(hào)表示該字段適用的操作數(shù)。舉例而言,與V1相關(guān)聯(lián)的下標(biāo)編號(hào)1表示第一操作數(shù),等等。寄存器操作數(shù)的長(zhǎng)度為一個(gè)寄存器,其為(例如)128個(gè)位。在一個(gè)實(shí)例中,在“向量寄存器和索引儲(chǔ)存器運(yùn)算”指令中,將由X2和B2字段指明的通用寄存器的內(nèi)容添加至D2字段的內(nèi)容以形成第二操作數(shù)地址。在一個(gè)實(shí)例中,將針對(duì)“向量載入至塊邊界”指令的位移D2作為12-位無(wú)符號(hào)整數(shù)對(duì)待。在一個(gè)實(shí)施例中,M3字段指定用以用信號(hào)向CPU通知關(guān)于載入至的塊邊界的碼。若指定保留值,則辨識(shí)到指定例外。實(shí)例碼和對(duì)應(yīng)值如下:在“向量載入至塊邊界(VLBB)”指令的一個(gè)實(shí)施例的執(zhí)行中,在一個(gè)實(shí)施例中,自左至右進(jìn)行,以零索引字節(jié)元素開(kāi)始,以來(lái)自第二操作數(shù)的字節(jié)載入第一操作數(shù)(在通過(guò)V1字段加上擴(kuò)展位指明的寄存器中指定)。第二操作數(shù)為通過(guò)第二操作數(shù)地址(也被稱(chēng)作開(kāi)始地址)指明的存儲(chǔ)器位置。載入自該存儲(chǔ)器位置開(kāi)始,且繼續(xù)至由指令(或處理器)計(jì)算出的結(jié)束地址,如下文所描述。若遇到邊界條件,則其為依賴(lài)于對(duì)待第一操作數(shù)的其余部分的方式的模型。未辨識(shí)到關(guān)于未載入的一個(gè)字節(jié)的存取例外。在一個(gè)實(shí)例中,未載入的字節(jié)不可預(yù)測(cè)。在上述實(shí)例指令中,開(kāi)始地址通過(guò)索引寄存器值(X2)+基寄存器值(B2)+位移(D2)來(lái)確定;然而,在其他實(shí)施例中,通過(guò)以下來(lái)提供開(kāi)始地址:寄存器值;指令地址+指令文本指定偏移(offset);寄存器值+位移;或寄存器值+索引寄存器值;(僅作為一些實(shí)例)。另外,在一個(gè)實(shí)施例中,指令不包括RXB字段。相反,不使用擴(kuò)展或以另一方式提供擴(kuò)展(諸如,自指令外部的控制),或提供擴(kuò)展作為指令的另一字段的一部分。參看圖4描述處理“向量載入至塊邊界”指令的一個(gè)實(shí)施例的進(jìn)一步細(xì)節(jié)。在一個(gè)實(shí)例中,計(jì)算環(huán)境的處理器正執(zhí)行此邏輯。在一個(gè)實(shí)施例中,最初,建立邊界掩碼(BdyMask),其用以確定與指定邊界的靠近性(步驟400)。為了建立該掩碼,在一個(gè)實(shí)例中,采用邊界大小(BdySize)(402)的2的補(bǔ)數(shù)否定數(shù)(complementnegation),建立邊界掩碼404(例如,BdyMask=0-BdySize)。在一個(gè)實(shí)例中,通過(guò)指令(例如,M3字段)提供邊界大??;或在另一實(shí)例中,由機(jī)器確定邊界大小,如本文中所描述。此后,計(jì)算開(kāi)始地址,其指示從其載入將開(kāi)始的存儲(chǔ)器中的位置(步驟410)。作為實(shí)例,可通過(guò)以下數(shù)據(jù)來(lái)提供開(kāi)始地址412:寄存器值;指令地址加上指令文本指定偏移;寄存器值加上位移;寄存器值加上索引寄存器值;或寄存器值加上索引寄存器值加上位移。在本文中提供的指令中,由X2字段、B2字段和D2字段來(lái)提供開(kāi)始地址。即,將通過(guò)X2和B2指明的寄存器的內(nèi)容添加至通過(guò)D2指示的位移以提供開(kāi)始地址。計(jì)算開(kāi)始地址的上文所指示的方式僅為實(shí)例;其他實(shí)例也可能。接下來(lái),計(jì)算結(jié)束地址,其指示自何處停止載入(步驟420)。此計(jì)算的輸入(例如)為邊界大小402、開(kāi)始地址412、向量大小414(例如,以字節(jié)計(jì);例如,16)和邊界掩碼404。在一個(gè)實(shí)例中,如下計(jì)算結(jié)束地址422:EndAddress=min(StartAddress+(BdySize-(StartAddress&﹁BdyMask)),StartAddress+vec_size)。此后,以索引字節(jié)0開(kāi)始,自始于開(kāi)始地址且終止于結(jié)束地址的存儲(chǔ)器載入第一操作數(shù)(即,指明的向量寄存器)(步驟430)。此情形使得能夠?qū)⒖勺償?shù)目個(gè)字節(jié)自存儲(chǔ)器載入至向量中,而不交叉指明的存儲(chǔ)器邊界。舉例而言,若存儲(chǔ)器邊界在64個(gè)字節(jié)處,且開(kāi)始地址在58個(gè)字節(jié)處,則在向量寄存器中載入字節(jié)58至64。根據(jù)本發(fā)明的實(shí)施例的要載入至向量寄存器中的數(shù)據(jù)的一個(gè)實(shí)例描繪于圖5中。如所指示,無(wú)數(shù)據(jù)系經(jīng)過(guò)由虛垂直線(xiàn)指明的邊界載入。經(jīng)過(guò)邊界的位置不可存取且沒(méi)有例外發(fā)生。在一個(gè)特定實(shí)施例中,自左至右載入向量。然而,在另一實(shí)施例中,可自右至左載入向量。在一個(gè)實(shí)施例中,在執(zhí)行階段(runtime)提供向量的方向-自左至右或自右至左。舉例而言,作為實(shí)例,指令存取寄存器、狀態(tài)控制或指示處理的方向?yàn)樽宰笾劣一蜃杂抑磷蟮钠渌麑?shí)體。在一個(gè)實(shí)施例中,不將此方向控制編碼為指令的一部分,而是在執(zhí)行階段將其提供至指令。上文描述是載入指令的一個(gè)實(shí)例。當(dāng)載入數(shù)據(jù)(諸如,串?dāng)?shù)據(jù))時(shí),常常不知道該串是否會(huì)于頁(yè)面邊界之前結(jié)束。載入直到該邊界而不交叉的能力通常需要首先檢查串的結(jié)尾。一些實(shí)施也可具有對(duì)于交叉邊界的處罰,且軟件可能想要避免這些情形。因此,載入直到若干邊界的能力有用。提供將可變數(shù)目個(gè)字節(jié)載入至向量寄存器中,同時(shí)確保不載入跨越指定邊界的數(shù)據(jù)的指令。在一個(gè)實(shí)施例中,存在32個(gè)向量寄存器,且其他類(lèi)型的寄存器可映射至該向量寄存器的象限。舉例而言,如圖6中所展示,若存在包括32個(gè)向量寄存器602的寄存器文件600且每寄存器的長(zhǎng)度為128個(gè)位,則長(zhǎng)度為64個(gè)位的16個(gè)浮點(diǎn)寄存器604可重疊這些向量寄存器。因此,作為實(shí)例,當(dāng)修改浮點(diǎn)寄存器2時(shí),然后也修改向量寄存器2。用于其他類(lèi)型的寄存器的其他映射也可能。本文中,除非另有明確注釋或由上下文注釋?zhuān)駝t可互換地使用存儲(chǔ)器、主存儲(chǔ)器、儲(chǔ)存器與主儲(chǔ)存器。作為下文進(jìn)一步描述的此實(shí)施方式的一部分提供關(guān)于向量設(shè)施的額外細(xì)節(jié)(包括其他指令的實(shí)例)。如本領(lǐng)域技術(shù)人員將了解,本發(fā)明的一個(gè)或多個(gè)實(shí)施例可體現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的一個(gè)或多個(gè)實(shí)施例可采用完全硬件實(shí)施例、完全軟件實(shí)施例(包括固件、常駐軟件、微碼等)或組合軟件與硬件實(shí)施例的實(shí)施例的形式,這些實(shí)施例在本文中大體上皆可被稱(chēng)作“電路”、“模塊”或“系統(tǒng)”。此外,本發(fā)明的一個(gè)或多個(gè)實(shí)施例可采用體現(xiàn)于一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)(其具有體現(xiàn)于其上的計(jì)算機(jī)可讀程序碼)中的計(jì)算機(jī)程序產(chǎn)品的形式??衫靡粋€(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任何組合。計(jì)算機(jī)可讀介質(zhì)可為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。舉例而言,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可為(但不限于)電子、磁性、光學(xué)、電磁、紅外線(xiàn)或半導(dǎo)體系統(tǒng)、裝置或器件或前述中的任何合適組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更特定實(shí)例(非詳盡清單)包括以下:具有一個(gè)或多個(gè)電線(xiàn)的電連接、便攜型計(jì)算機(jī)磁盤(pán)、硬盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦除可編程只讀存儲(chǔ)器(EPROM或快閃存儲(chǔ)器)、光纖、便攜型光盤(pán)-只讀存儲(chǔ)器(CD-ROM)、光學(xué)存儲(chǔ)器件、磁性存儲(chǔ)器件或前述的任何合適組合。在此文件的上下文中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可為可含有或存儲(chǔ)供指令執(zhí)行系統(tǒng)、裝置或器件使用或結(jié)合指令執(zhí)行系統(tǒng)、裝置或器件而使用的程序的任何有形介質(zhì)?,F(xiàn)參看圖7,在一個(gè)實(shí)例中,計(jì)算機(jī)程序產(chǎn)品700包括(例如)一個(gè)或多個(gè)非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)702以在其上存儲(chǔ)計(jì)算機(jī)可讀程序碼構(gòu)件或邏輯704,以提供和促進(jìn)本發(fā)明的一個(gè)或多個(gè)實(shí)施例??墒褂眠m當(dāng)介質(zhì)(包括(但不限于)無(wú)線(xiàn)、有線(xiàn)、光纖纜線(xiàn)、RF等或前述的任何合適組合)傳輸體現(xiàn)于計(jì)算機(jī)可讀介質(zhì)上的程序碼??梢砸粋€(gè)或多個(gè)程序設(shè)計(jì)語(yǔ)言的任何組合來(lái)編寫(xiě)用于進(jìn)行本發(fā)明的一個(gè)或多個(gè)方面的操作的計(jì)算機(jī)程序碼,該一個(gè)或多個(gè)程序設(shè)計(jì)語(yǔ)言包括諸如Java、Smalltalk、C++等的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,和諸如“C”程序設(shè)計(jì)語(yǔ)言、組譯器或類(lèi)似程序設(shè)計(jì)語(yǔ)言的常規(guī)程序性程序設(shè)計(jì)語(yǔ)言。程序碼可完全在用戶(hù)的計(jì)算機(jī)上執(zhí)行、部分地在用戶(hù)的計(jì)算機(jī)上執(zhí)行、作為獨(dú)立軟件包而執(zhí)行、部分地在用戶(hù)的計(jì)算機(jī)上且部分地在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行,或完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在后者情形下,遠(yuǎn)程計(jì)算機(jī)可經(jīng)由任一類(lèi)型的網(wǎng)絡(luò)連接至用戶(hù)的計(jì)算機(jī),該任一類(lèi)型的網(wǎng)絡(luò)包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN),或可進(jìn)行至外部計(jì)算機(jī)的連接(例如,使用因特網(wǎng)服務(wù)提供者經(jīng)由因特網(wǎng))。本文中參考根據(jù)本發(fā)明的實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖說(shuō)明和/或方塊圖描述本發(fā)明的一個(gè)或多個(gè)方面。應(yīng)理解,可由計(jì)算機(jī)程序指令來(lái)實(shí)施流程圖說(shuō)明和/或方塊圖的每個(gè)塊和這些流程圖說(shuō)明和/或方塊圖中的塊的組合??蓪⑦@些計(jì)算機(jī)程序指令提供至通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器以產(chǎn)生機(jī)器,以使得經(jīng)由該計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令產(chǎn)生用于實(shí)施流程圖和/或方塊圖塊中所指定的功能/動(dòng)作的構(gòu)件。這些計(jì)算機(jī)程序指令也可存儲(chǔ)于計(jì)算機(jī)可讀介質(zhì)中,該計(jì)算機(jī)可讀介質(zhì)可指導(dǎo)計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置或其他器件以特定方式起作用,使得存儲(chǔ)于該計(jì)算機(jī)可讀介質(zhì)中的指令產(chǎn)生制造物件,其包括實(shí)施流程圖和/或方塊圖方塊中所指定的功能/動(dòng)作的指令。也可將這些計(jì)算機(jī)程序指令載入至計(jì)算機(jī)、其他可編程數(shù)據(jù)處理裝置或其他器件上以使得在該計(jì)算機(jī)、其他可編程裝置或其他器件上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)施的處理程序,使得在該計(jì)算機(jī)或其他可編程裝置上執(zhí)行的指令提供用于實(shí)施流程圖和/或方塊圖塊中所指定的功能/動(dòng)作的處理程序。這些圖中的流程圖和方塊圖說(shuō)明根據(jù)本發(fā)明的一個(gè)或多個(gè)方面的各種實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)施的架構(gòu)、功能性和操作。就此而言,流程圖或方塊圖中的每個(gè)塊可表示模塊、區(qū)段或碼的一部分,其包含用于實(shí)施(多個(gè))指定邏輯功能的一個(gè)或多個(gè)可執(zhí)行指令。也應(yīng)注意,在一些替代實(shí)施中,塊中所注釋的功能可能不以諸圖中所注釋的次序發(fā)生。舉例而言,取決于所涉及的功能性,實(shí)際上可實(shí)質(zhì)上同時(shí)執(zhí)行連續(xù)展示的兩個(gè)塊,或有時(shí)可以相反次序執(zhí)行這些塊。也將注意,方塊圖和/或流程圖說(shuō)明的每個(gè)塊和方塊圖和/或流程圖說(shuō)明中的塊的組合可由執(zhí)行指定功能或動(dòng)作的基于專(zhuān)用硬件的系統(tǒng)或?qū)S糜布c計(jì)算機(jī)指令的組合來(lái)實(shí)施。除上述內(nèi)容之外,本發(fā)明的一個(gè)或多個(gè)實(shí)施例也可由供應(yīng)客戶(hù)環(huán)境的管理的服務(wù)提供者來(lái)提供、供應(yīng)、部署、管理、服務(wù)等。舉例而言,服務(wù)提供者可為一個(gè)或多個(gè)客戶(hù)建立、維護(hù)、支持等執(zhí)行本發(fā)明的一個(gè)或多個(gè)實(shí)施例的計(jì)算機(jī)碼和/或計(jì)算機(jī)基礎(chǔ)結(jié)構(gòu)。作為回報(bào),作為實(shí)例,服務(wù)提供者可在訂用和/或收費(fèi)協(xié)議下自客戶(hù)收取付款。此外或替代地,服務(wù)提供者可自廣告內(nèi)容銷(xiāo)售至一個(gè)或多個(gè)第三方而收取付款。在本發(fā)明的一個(gè)方面中,可部署用于執(zhí)行本發(fā)明的一個(gè)或多個(gè)方面的應(yīng)用程序。作為實(shí)例,應(yīng)用程序的部署包含提供可操作以執(zhí)行本發(fā)明的一個(gè)或多個(gè)方面的計(jì)算機(jī)基礎(chǔ)結(jié)構(gòu)。作為本發(fā)明的另一方面,可部署計(jì)算基礎(chǔ)結(jié)構(gòu),其包含將計(jì)算機(jī)可讀碼整合至計(jì)算系統(tǒng)內(nèi),其中與該計(jì)算系統(tǒng)組合的碼能夠執(zhí)行本發(fā)明的一個(gè)或多個(gè)方面。作為本發(fā)明的另一方面,可提供用于整合計(jì)算基礎(chǔ)結(jié)構(gòu)的處理,其包含將計(jì)算機(jī)可讀碼整合至計(jì)算機(jī)系統(tǒng)中。計(jì)算機(jī)系統(tǒng)包含計(jì)算機(jī)可讀介質(zhì),其中計(jì)算機(jī)介質(zhì)包含本發(fā)明的一個(gè)或多個(gè)方面。與該計(jì)算機(jī)系統(tǒng)組合的碼能夠執(zhí)行本發(fā)明的一個(gè)或多個(gè)方面。盡管上文描述了各種實(shí)施例,但這些僅為實(shí)例。舉例而言,其他架構(gòu)的計(jì)算環(huán)境可并入且使用本發(fā)明的一個(gè)或多個(gè)方面。另外,可使用其他大小的寄存器,且在不脫離本發(fā)明的精神的情況下,可作出對(duì)指令的改變。另外,其他類(lèi)型的計(jì)算環(huán)境可受益于本發(fā)明的一個(gè)或多個(gè)方面。作為實(shí)例,適合于存儲(chǔ)和/或執(zhí)行程序碼的數(shù)據(jù)處理系統(tǒng)為可使用,其包括直接或經(jīng)由系統(tǒng)總線(xiàn)間接耦接至存儲(chǔ)器元件的至少兩個(gè)處理器。這些存儲(chǔ)器元件包括(例如)在程序碼的實(shí)際執(zhí)行期間使用的本地存儲(chǔ)器、大容量?jī)?chǔ)存器和高速緩沖存儲(chǔ)器,高速緩沖存儲(chǔ)器提供至少一些程序碼的臨時(shí)存儲(chǔ)以便減少在執(zhí)行期間必須自大容量?jī)?chǔ)存器取得碼的次數(shù)。輸入/輸出端或I/O器件(包括(但不限于)鍵盤(pán)、顯示器、指點(diǎn)器件、DASD、磁帶、CD、DVD、隨身碟(thumbdrive)和其他存儲(chǔ)器介質(zhì)等)可直接或經(jīng)由介入的I/O控制器而耦接至系統(tǒng)。網(wǎng)絡(luò)適配器也可耦接至系統(tǒng)以使得數(shù)據(jù)處理系統(tǒng)能夠經(jīng)由介入的私有或公用網(wǎng)絡(luò)而變得耦接至其他數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或儲(chǔ)存器件。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)絡(luò)卡僅為可用類(lèi)型的網(wǎng)絡(luò)適配器中的少數(shù)幾種。參看圖8,描繪實(shí)施本發(fā)明的一個(gè)或多個(gè)方面的主機(jī)計(jì)算機(jī)系統(tǒng)5000的代表性組件。代表性主機(jī)計(jì)算機(jī)5000包含與計(jì)算機(jī)存儲(chǔ)器(即,中央儲(chǔ)存器)5002通信的一個(gè)或多個(gè)CPU5001,以及用于與其他計(jì)算機(jī)或SAN等通信的至存儲(chǔ)介質(zhì)器件5011和網(wǎng)絡(luò)5010的I/O接口。CPU5001符合具有構(gòu)建的指令集和構(gòu)建的功能性的架構(gòu)。CPU5001可具有動(dòng)態(tài)地址翻譯(DAT)5003,以用于將程序地址(虛擬地址)變換成存儲(chǔ)器的真實(shí)地址。DAT通常包括翻譯后備緩沖器(TLB)5007以用于高速緩沖翻譯,使得對(duì)計(jì)算機(jī)存儲(chǔ)器5002的塊的稍后存取不需要延遲地址翻譯。通常,高速緩沖存儲(chǔ)器5009用于計(jì)算機(jī)存儲(chǔ)器5002與處理器5001之間。高速緩沖存儲(chǔ)器5009可為層級(jí)式的,其具有可用于一個(gè)以上CPU的大型高速緩沖存儲(chǔ)器和在大型高速緩沖存儲(chǔ)器與每個(gè)CPU之間的較小較快(較低層級(jí))高速緩沖存儲(chǔ)器。在一些實(shí)施中,將較低層級(jí)高速緩沖存儲(chǔ)器分割以提供用于指令取得和數(shù)據(jù)存取的單獨(dú)的低層級(jí)高速緩沖存儲(chǔ)器。在一個(gè)實(shí)施例中,由指令取得單元5004經(jīng)由高速緩沖存儲(chǔ)器5009自存儲(chǔ)器5002取得指令。在指令解碼單元5006中解碼指令,且將指令(在一些實(shí)施例中,其他指令)分派給一個(gè)或多個(gè)指令執(zhí)行單元5008。通常使用若干個(gè)執(zhí)行單元5008,例如,算術(shù)執(zhí)行單元、浮點(diǎn)執(zhí)行單元和分支指令執(zhí)行單元。由執(zhí)行單元執(zhí)行指令,從而按需要自指令指定的寄存器或存儲(chǔ)器存取操作數(shù)。若將自存儲(chǔ)器5002存取(載入或存儲(chǔ))操作數(shù),則載入/存儲(chǔ)單元5005通常在正被執(zhí)行的指令的控制下處置存取。可在硬件電路中或在內(nèi)部微碼(固件)中或由兩者的組合來(lái)執(zhí)行指令。如所注釋?zhuān)?jì)算機(jī)系統(tǒng)包括在本地(或主)儲(chǔ)存器中的信息,以及尋址、保護(hù)和參考和改變記錄。尋址的一些方面包括地址的格式、地址空間的概念、地址的各種類(lèi)型,以及將地址的一種類(lèi)型翻譯至地址的另一類(lèi)型的方式。主儲(chǔ)存器中的一些儲(chǔ)存器包括永久指派的存儲(chǔ)位置。主儲(chǔ)存器為系統(tǒng)提供數(shù)據(jù)的可直接尋址的快速存取存儲(chǔ)。在可處理數(shù)據(jù)和程序兩者之前將數(shù)據(jù)和程序兩者載入至主儲(chǔ)存器中(自輸入器件)。主儲(chǔ)存器可包括一個(gè)或多個(gè)較小的快速存取緩沖儲(chǔ)存器(有時(shí)稱(chēng)為高速緩沖存儲(chǔ)器)。高速緩沖存儲(chǔ)器通常與CPU或I/O處理器相關(guān)聯(lián)。通過(guò)程序大體上不可觀(guān)測(cè)到不同存儲(chǔ)介質(zhì)的實(shí)體構(gòu)造和用途的效應(yīng)(除了對(duì)性能的效應(yīng)外)??删S持針對(duì)指令和針對(duì)數(shù)據(jù)操作數(shù)的單獨(dú)的高速緩沖存儲(chǔ)器。將高速緩沖存儲(chǔ)器內(nèi)的信息以相鄰字節(jié)維持于被稱(chēng)為高速緩沖塊或高速緩沖存儲(chǔ)器線(xiàn)(或簡(jiǎn)稱(chēng)為線(xiàn))的整體邊界上。模型可提供“EXTRACTCACHEATTRIBUTE(提取高速緩沖存儲(chǔ)器屬性)”指令,其返回以字節(jié)計(jì)的高速緩沖存儲(chǔ)器線(xiàn)的大小。模型也可提供“PREFETCHDATA(預(yù)先取得數(shù)據(jù))”和“PREFETCHDATARELATIVELONG(預(yù)取得數(shù)據(jù)相對(duì)長(zhǎng)度)”指令,其實(shí)現(xiàn)儲(chǔ)存器至數(shù)據(jù)或指令高速緩沖存儲(chǔ)器中的預(yù)取得或數(shù)據(jù)自高速緩沖存儲(chǔ)器的釋放。將儲(chǔ)存器視為長(zhǎng)水平位串。對(duì)于多數(shù)操作,對(duì)儲(chǔ)存器的存取以自左至右順序進(jìn)行。將該位的串再分成八個(gè)位的單元。八位單元被稱(chēng)為字節(jié),其為所有信息格式的基本建立塊。儲(chǔ)存器中的每個(gè)字節(jié)位置通過(guò)唯一非負(fù)整數(shù)來(lái)識(shí)別,該唯一非負(fù)整數(shù)為該字節(jié)位置的地址或簡(jiǎn)稱(chēng)為字節(jié)地址。鄰近字節(jié)位置具有連續(xù)地址,其以左側(cè)的0開(kāi)始且以自左至右順序進(jìn)行。地址為無(wú)符號(hào)二進(jìn)制整數(shù),且為24個(gè)、31個(gè)或64個(gè)位。在儲(chǔ)存器與CPU或通道子系統(tǒng)之間一次一字節(jié)或字節(jié)群組地傳輸信息。除非另有指定,否則,在(例如)z/Architecture中,儲(chǔ)存器中的字節(jié)群組由該群組的最左側(cè)字節(jié)來(lái)尋址。通過(guò)要執(zhí)行的操作隱含或明確指定該群組中的字節(jié)的數(shù)目。當(dāng)在CPU操作中使用時(shí),字節(jié)群組被稱(chēng)為字段。在每個(gè)字節(jié)群組內(nèi),在(例如)z/Architecture中,以自左至右順序?qū)ξ痪幪?hào)。在z/Architecture中,最左側(cè)位有時(shí)被稱(chēng)作“高階”位,且最右側(cè)位有時(shí)被稱(chēng)作“低階”位。然而,位編號(hào)不是存儲(chǔ)地址。可僅尋址字節(jié)。為了對(duì)儲(chǔ)存器中的字節(jié)的單獨(dú)位操作,存取整個(gè)字節(jié)。將字節(jié)中的位自左至右編號(hào)為0至7(在(例如)z/Architecture中)。對(duì)于24位地址,可將地址中的位編號(hào)為8至31或40至63,或?qū)τ?1位地址,可將地址中的位編號(hào)為1至31或33至63;對(duì)于64位地址,可將地址中的位編號(hào)為0至63。在多個(gè)字節(jié)的任何其他固定長(zhǎng)度的格式內(nèi),自0開(kāi)始對(duì)構(gòu)成該格式的位連續(xù)地編號(hào)。為了錯(cuò)誤檢測(cè)的目的,且優(yōu)選地為了校正的目的,可將一個(gè)或多個(gè)檢查位與每字節(jié)或與字節(jié)群組一起傳輸。由機(jī)器自動(dòng)地產(chǎn)生這種檢查位,且不可直接由程序來(lái)控制這種檢查位。以字節(jié)的數(shù)目來(lái)表達(dá)存儲(chǔ)容量。當(dāng)通過(guò)指令的操作碼隱含存儲(chǔ)操作數(shù)字段的長(zhǎng)度時(shí),認(rèn)為該字段具有固定長(zhǎng)度,其可為個(gè)、兩個(gè)、四個(gè)、八個(gè)或十六個(gè)字節(jié)。對(duì)于一些指令,可隱含更大字段。當(dāng)不隱含而是明確敘述存儲(chǔ)操作數(shù)字段的長(zhǎng)度時(shí),認(rèn)為該字段具有可變長(zhǎng)度。可變長(zhǎng)度操作數(shù)的長(zhǎng)度可以一個(gè)字節(jié)的增量變化(或?qū)τ谝恍┲噶?,以?xún)蓚€(gè)字節(jié)的倍數(shù)或其他倍數(shù)的增量變化)。當(dāng)將信息放置于儲(chǔ)存器中時(shí),替換包括于指明的字段中的僅那些字節(jié)位置的內(nèi)容,即使至儲(chǔ)存器的物理路徑的寬度可能大于正存儲(chǔ)的字段的長(zhǎng)度也如此。某些信息單元將在儲(chǔ)存器中的整體邊界上。當(dāng)其存儲(chǔ)地址為該單元的長(zhǎng)度(以字節(jié)計(jì))的倍數(shù)時(shí),將邊界稱(chēng)為信息單元的整體。對(duì)整體邊界上的2個(gè)、4個(gè)、8個(gè)和16個(gè)字節(jié)的字段給予特殊名稱(chēng)。半字為在兩字節(jié)邊界上的兩個(gè)連續(xù)字節(jié)的群組,且為指令的基本建立塊。字為四字節(jié)邊界上的四個(gè)連續(xù)字節(jié)的群組。雙字為八字節(jié)邊界上的八個(gè)連續(xù)字節(jié)的群組。四倍字為16字節(jié)邊界上的16個(gè)連續(xù)字節(jié)的群組。當(dāng)儲(chǔ)存器地址指明半字、字、雙字和四倍字時(shí),地址的二進(jìn)制表示分別含有一個(gè)、兩個(gè)、三個(gè)或四個(gè)最右側(cè)零位。指令將在兩-字節(jié)整體邊界上。多數(shù)指令的存儲(chǔ)操作數(shù)不具有邊界對(duì)準(zhǔn)要求。在實(shí)施針對(duì)指令和數(shù)據(jù)操作數(shù)的單獨(dú)的高速緩沖存儲(chǔ)器的器件上,若程序存儲(chǔ)至高速緩沖存儲(chǔ)器線(xiàn)中(隨后自該高速緩沖存儲(chǔ)器線(xiàn)取得指令),則可經(jīng)歷顯著延遲,而不管儲(chǔ)存器是否更改隨后取得的指令。在一個(gè)實(shí)施例中,可通過(guò)軟件(有時(shí)稱(chēng)為經(jīng)授權(quán)內(nèi)部碼、固件、微碼、毫碼、微微碼(pico-code)等,前述中的任一個(gè)將與本發(fā)明的一個(gè)或多個(gè)方面一致)來(lái)實(shí)踐本發(fā)明。參看圖8,體現(xiàn)本發(fā)明的一個(gè)或多個(gè)方面的軟件程序碼可由主機(jī)系統(tǒng)5000的處理器5001自長(zhǎng)期存儲(chǔ)介質(zhì)器件5011(諸如,CD-ROM驅(qū)動(dòng)、磁帶機(jī)或硬驅(qū)動(dòng))存取。軟件程序碼可體現(xiàn)于多種已知介質(zhì)中的任一個(gè)上,以用于供數(shù)據(jù)處理系統(tǒng)(諸如,磁片、硬驅(qū)動(dòng)或CD-ROM)使用。該碼可分布于這種介質(zhì)上,或可經(jīng)由網(wǎng)絡(luò)5010自計(jì)算機(jī)系統(tǒng)的計(jì)算機(jī)存儲(chǔ)器5002或儲(chǔ)存器至其他計(jì)算機(jī)系統(tǒng)地分發(fā)至用戶(hù),以供這種其他系統(tǒng)的用戶(hù)使用。軟件程序碼包括操作系統(tǒng),其控制各種計(jì)算機(jī)組件和一個(gè)或多個(gè)應(yīng)用程序的功能和交互。通常將程序碼自存儲(chǔ)介質(zhì)器件5011分頁(yè)至相對(duì)較高速計(jì)算機(jī)儲(chǔ)存器5002,在該相對(duì)較高速計(jì)算機(jī)儲(chǔ)存器5002處,程序碼可用于由處理器5001處理。用于在存儲(chǔ)器中、在物理介質(zhì)上體現(xiàn)軟件程序碼和/或經(jīng)由網(wǎng)絡(luò)分發(fā)軟件程序碼的技術(shù)和方法已熟知,且在本文中將不進(jìn)一步加以討論。當(dāng)在有形介質(zhì)(包括(但不限于)電子存儲(chǔ)器模塊(RAM)、快閃存儲(chǔ)器、光盤(pán)(CD)、DVD、磁帶等)上建立和存儲(chǔ)程序碼時(shí),程序碼常常被稱(chēng)作“計(jì)算機(jī)程序產(chǎn)品”。計(jì)算機(jī)程序產(chǎn)品介質(zhì)通??捎蓛?yōu)選在計(jì)算機(jī)系統(tǒng)中的處理電路來(lái)讀取,以用于由處理電路執(zhí)行。圖9說(shuō)明可實(shí)踐本發(fā)明的一個(gè)或多個(gè)方面的代表性工作站或服務(wù)器硬件系統(tǒng)。圖9的系統(tǒng)5020包含代表性基礎(chǔ)計(jì)算機(jī)系統(tǒng)5021(諸如,個(gè)人計(jì)算機(jī)、工作站或服務(wù)器),包括選用的外圍器件。基礎(chǔ)計(jì)算機(jī)系統(tǒng)5021包括一個(gè)或多個(gè)處理器5026和總線(xiàn),該總線(xiàn)用以根據(jù)已知技術(shù)連接處理器5026與系統(tǒng)5021的其他組件并實(shí)現(xiàn)(多個(gè))處理器5026與系統(tǒng)5021的其他組件之間的通信??偩€(xiàn)將處理器5026連接至存儲(chǔ)器5025和長(zhǎng)期儲(chǔ)存器5027,長(zhǎng)期儲(chǔ)存器5027可包括(例如)硬驅(qū)動(dòng)(包括(例如)磁性介質(zhì)、CD、DVD和快閃存儲(chǔ)器中的任一個(gè))或磁帶驅(qū)動(dòng)。系統(tǒng)5021也可能包括用戶(hù)接口適配器,用戶(hù)接口適配器經(jīng)由總線(xiàn)將微處理器5026連接至或多個(gè)接口器件(諸如,鍵盤(pán)5024、鼠標(biāo)5023、打印機(jī)/掃描儀5030和/或其他接口器件),這些接口器件可為諸...