向量浮點測試數(shù)據(jù)類立即指令的制作方法
【技術領域】
[0001] 一個或多個方面一般地設及計算環(huán)境內(nèi)的處理,更具體地說,設及此類環(huán)境內(nèi)的 向量處理。
【背景技術】
[0002] 計算環(huán)境內(nèi)的處理包括控制一個或多個中央處理單元(CPU)的操作。一般而言, 中央處理單元的操作通過存儲裝置中的指令控制。指令可具有不同的格式并且通常指定要 在執(zhí)行多種操作時使用的寄存器。
[0003] 取決于中央處理單元的架構,可使用多種類型的寄存器,包括例如通用寄存器、專 用寄存器、浮點寄存器和/或向量寄存器。不同類型的寄存器可與不同類型的指令一起使 用。例如,浮點寄存器存儲要由浮點指令使用的浮點數(shù);向量寄存器保存用于由包括向量指 令的單指令多數(shù)據(jù)(SMID)指令執(zhí)行的向量處理的數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0004] 通過提供用于執(zhí)行機器指令的計算機程序產(chǎn)品,克服了現(xiàn)有技術的缺點并提供了 優(yōu)點。所述計算機程序產(chǎn)品包括計算機可讀存儲介質(zhì),其可被處理電路讀取并且存儲由所 述處理電路執(zhí)行W執(zhí)行一種方法的指令。所述方法例如包括;由處理器獲得用于執(zhí)行的機 器指令,所述機器指令被定義為用于根據(jù)計算機架構的計算機執(zhí)行,所述機器指令包括:至 少一個操作碼字段,其提供操作碼,所述操作碼標識向量浮點測試數(shù)據(jù)類立即操作;第一寄 存器字段,其被用于指定第一寄存器,所述第一寄存器包括第一操作數(shù);W及第二寄存器字 段,其被用于指定第二寄存器,所述第二寄存器包括第二操作數(shù);W及執(zhí)行所述機器指令, 所述執(zhí)行包括;確定所述第二操作數(shù)的已選元素的屬性;從到所述機器指令的輸入選擇表 示所述已選元素的所述屬性的選定數(shù)據(jù)單元,所述輸入包括表示一個或多個屬性的一個或 多個數(shù)據(jù)單元;檢查所述選定數(shù)據(jù)單元是否被設置為特定值;W及基于所述檢查,設置所 述第一操作數(shù)中與所述第二操作數(shù)的所述已選元素對應的元素,所述設置基于所述選定數(shù) 據(jù)單元是否被設置為所述特定值。
[0005] 從第一方面來看,本發(fā)明提供一種用于在中央處理單元中執(zhí)行機器指令的計算機 系統(tǒng),所述計算機系統(tǒng)包括:存儲器;W及處理器,其與所述存儲器通信,其中所述計算機 系統(tǒng)被配置為執(zhí)行一種方法,所述方法包括:
[0006] 由處理器獲得用于執(zhí)行的機器指令,所述機器指令被定義為用于根據(jù)計算機架構 的計算機執(zhí)行,所述機器指令包括;至少一個操作碼字段,其提供操作碼,所述操作碼標識 向量浮點測試數(shù)據(jù)類立即操作;
[0007] 第一寄存器字段,其被用于指定第一寄存器,所述第一寄存器包括第一操作數(shù);W 及
[000引第二寄存器字段,其被用于指定第二寄存器,所述第二寄存器包括第二操作數(shù);W及執(zhí)行所述機器指令,所述執(zhí)行包括;確定所述第二操作數(shù)的已選元素的屬性;
[0009] 從到所述機器指令的輸入選擇表示所述已選元素的所述屬性的選定數(shù)據(jù)單元,所 述輸入包括表示一個或多個屬性的一個或多個數(shù)據(jù)單元;
[0010] 檢查所述選定數(shù)據(jù)單元是否被設置為特定值;W及基于所述檢查,設置所述第一 操作數(shù)中與所述第二操作數(shù)的所述已選元素對應的元素,所述設置基于所述選定數(shù)據(jù)單元 是否被設置為所述特定值。
[0011] 優(yōu)選地,本發(fā)明提供一種計算機系統(tǒng),其中所述第二操作數(shù)包括多個元素,其中所 述確定包括確定所述多個元素中的每個元素的屬性,并且其中所述設置包括基于所述選定 數(shù)據(jù)單元是否被設置為所述特定值來設置所述第一操作數(shù)中與所述第二操作數(shù)中的每個 元素對應的每個元素。
[0012] 優(yōu)選地,本發(fā)明提供一種計算機系統(tǒng),其中所述設置包括基于指示所述選定數(shù)據(jù) 單元被設置為所述特定值的檢查,將所述第一操作數(shù)中的所述元素設置為1,并且基于指示 所述選定數(shù)據(jù)單元未被設置為所述特定值的檢查,將所述第一操作數(shù)中的所述元素設置為 0。
[0013] 優(yōu)選地,本發(fā)明提供一種計算機系統(tǒng),其中所述輸入包括多個數(shù)據(jù)單元,所述多個 數(shù)據(jù)單元中的每個數(shù)據(jù)單元表示類和符號。
[0014] 優(yōu)選地,本發(fā)明提供一種計算機系統(tǒng),其中所述機器指令進一步包括包含所述輸 入的字段。
[0015] 優(yōu)選地,本發(fā)明提供一種計算機系統(tǒng),其中所述機器指令進一步包括被用于指定 一個或多個寄存器的擴展字段,并且其中所述第一寄存器字段與所述擴展字段的第一部分 相組合W指定所述第一寄存器,所述第二寄存器字段與所述擴展字段的第二部分相組合W 指定所述第二寄存器,并且其中所述機器指令進一步包括掩碼字段,所述掩碼字段用于指 示所述第二操作數(shù)的一個或多個元素是否將被包括在所述確定中,并且其中所述機器指令 進一步包括另一掩碼字段,所述另一掩碼字段用于指示所述第二操作數(shù)的元素中的浮點數(shù) 的大小。
[0016] 從另一方面來看,本發(fā)明提供一種在中央處理單元中執(zhí)行機器指令的方法,所述 方法包括;由處理器獲得用于執(zhí)行的機器指令,所述機器指令被定義為用于根據(jù)計算機架 構的計算機執(zhí)行,所述機器指令包括;至少一個操作碼字段,其提供操作碼,所述操作碼標 識向量浮點測試數(shù)據(jù)類立即操作;第一寄存器字段,其被用于指定第一寄存器,所述第一寄 存器包括第一操作數(shù);W及第二寄存器字段,其被用于指定第二寄存器,所述第二寄存器包 括第二操作數(shù);W及執(zhí)行所述機器指令,所述執(zhí)行包括;確定所述第二操作數(shù)的已選元素 的屬性;從到所述機器指令的輸入選擇表示所述已選元素的所述屬性的選定數(shù)據(jù)單元,所 述輸入包括表示一個或多個屬性的一個或多個數(shù)據(jù)單元;檢查所述選定數(shù)據(jù)單元是否被設 置為特定值;W及基于所述檢查,設置所述第一操作數(shù)中與所述第二操作數(shù)的所述已選元 素對應的元素,所述設置基于所述選定數(shù)據(jù)單元是否被設置為所述特定值。
[0017] 優(yōu)選地,本發(fā)明提供一種方法,其中所述設置包括基于指示所述選定數(shù)據(jù)單元被 設置為所述特定值的檢查,將所述第一操作數(shù)中的所述元素設置為1,并且基于指示所述選 定數(shù)據(jù)單元未被設置為所述特定值的檢查,將所述第一操作數(shù)中的所述元素設置為0。
[001引優(yōu)選地,本發(fā)明提供一種方法,其中所述機器指令進一步包括被用于指定一個或 多個寄存器的擴展字段,并且其中所述第一寄存器字段與所述擴展字段的第一部分相組合 W指定所述第一寄存器,所述第二寄存器字段與所述擴展字段的第二部分相組合W指定所 述第二寄存器,并且其中所述機器指令進一步包括掩碼字段,所述掩碼字段用于指示所述 第二操作數(shù)的一個或多個元素是否將被包括在所述確定中,并且其中所述機器指令進一步 包括另一掩碼字段,所述另一掩碼字段用于指示所述第二操作數(shù)的元素中的浮點數(shù)的大 小。
[0019] 從另一方面來看,本發(fā)明提供一種用于在中央處理單元中執(zhí)行機器指令的計算機 程序產(chǎn)品,所述計算機程序產(chǎn)品包括;計算機可讀存儲介質(zhì),其可被處理電路讀取并且存儲 由所述處理電路執(zhí)行W執(zhí)行一種方法的指令,所述方法包括;由處理器獲得用于執(zhí)行的機 器指令,所述機器指令被定義為用于根據(jù)計算機架構的計算機執(zhí)行,所述機器指令包括:至 少一個操作碼字段,其提供操作碼,所述操作碼標識向量浮點測試數(shù)據(jù)類立即操作;第一寄 存器字段,其被用于指定第一寄存器,所述第一寄存器包括第一操作數(shù);W及第二寄存器字 段,其被用于指定第二寄存器,所述第二寄存器包括第二操作數(shù);W及執(zhí)行所述機器指令, 所述執(zhí)行包括;確定所述第二操作數(shù)的已選元素的屬性;從到所述機器指令的輸入選擇表 示所述已選元素的所述屬性的選定數(shù)據(jù)單元,所述輸入包括表示一個或多個屬性的一個或 多個數(shù)據(jù)單元;檢查所述選定數(shù)據(jù)單元是否被設置為特定值;W及基于所述檢查,設置所 述第一操作數(shù)中與所述第二操作數(shù)的所述已選元素對應的元素,所述設置基于所述選定數(shù) 據(jù)單元是否被設置為所述特定值。
[0020] 優(yōu)選地,本發(fā)明提供一種計算機程序產(chǎn)品,其中所述第二操作數(shù)包括多個元素,其 中所述確定包括確定所述多個元素中的每個元素的屬性,并且其中所述設置包括基于所述 選定數(shù)據(jù)單元是否被設置為所述特定值來設置所述第一操作數(shù)中與所述第二操作數(shù)中的 每個元素對應的每個元素。
[0021] 優(yōu)選地,本發(fā)明提供一種計算機程序產(chǎn)品,其中所述設置包括基于指示所述選定 數(shù)據(jù)單元被設置為所述特定值的檢查,將所述第一操作數(shù)中的所述元素設置為1,并且基于 指示所述選定數(shù)據(jù)單元未被設置為所述特定值的檢查,將所述第一操作數(shù)中的所述元素設 置為0。
[0022] 優(yōu)選地,本發(fā)明提供一種計算機程序產(chǎn)品,其中所述屬性包括類和符號。
[0023] 優(yōu)選地,本發(fā)明提供一種計算機程序產(chǎn)品,其中所述輸入包括多個數(shù)據(jù)單元,所述 多個數(shù)據(jù)單元中的每個數(shù)據(jù)單元表示類和符號。
[0024] 優(yōu)選地,本發(fā)明提供一種計算機程序產(chǎn)品,其中所述多個數(shù)據(jù)單元包括多個位,并 且其中每個位表示多個元素類中的一個元素類,所述多個元素類包括0、規(guī)范數(shù)、非規(guī)范數(shù)、 無限大、靜默非數(shù)值、信令非數(shù)值,并且每個位表示正號或負號。
[0025] 優(yōu)選地,本發(fā)明提供一種計算機程序產(chǎn)品,其中所述機器指令進一步包括包含所 述輸入的字段。
[0026] 優(yōu)選地,本發(fā)明提供一種計算機程序產(chǎn)品,其中所述機器指令進一步包括被用于 指定一個或多個寄存器的擴展字段,并且其中所述第一寄存器字段與所述擴展字段的第一 部分相組合W指定所述第一寄存器,所述第二寄存器字段與所述擴展字段的第二部分相組 合W指定所述第二寄存器。
[0027] 優(yōu)選地,本發(fā)明提供一種計算機程序產(chǎn)品,其中所述機器指令進一步包括掩碼字 段,所述掩碼字段用于指示所述第二操作數(shù)的一個或多個元素是否將被包括在所述確定 中。
[002引優(yōu)選地,本發(fā)明提供一種計算機程序產(chǎn)品,其中所述機器指令進一步包括另一掩 碼字段,所述另一掩碼字段用于指示所述第二操作數(shù)的元素中的浮點數(shù)的大小。
[0029] 優(yōu)選地,本發(fā)明提供一種計算機程序產(chǎn)品,其中所述執(zhí)行進一步包括設置所述機 器指令的條件碼,所述條件碼用于概述所述第一操作數(shù)的所述元素的設置。
[0030] 此處還描述并要求保護與一個或多個方面相關的方法和系統(tǒng)。進一步地,此處還 描述并可W要求保護與一個或多個方面相關的服務。
[0031] 通過一個或多個方面的技術實現(xiàn)其他特征和優(yōu)點。其他實施例和方面在此做出詳 細描述并且被視為權利要求的一部分。
【附圖說明】
[0032] 本發(fā)明可通過多種方式實施,現(xiàn)在將僅通過實例的方式并參考附圖描述各實施 例,該些附圖是:
[0033] 圖1示出結合和使用一個或多個方面的計算環(huán)境的一個實例;
[0034] 圖2A示出結合和使用一個或多個方面的計算環(huán)境的另一實例;
[0035] 圖2B示出圖2A的存儲器的進一步細節(jié);
[0036] 圖3示出寄存器文件的一個實例;
[0037] 圖4A示出向量浮點測試數(shù)據(jù)類立即指令的格式的一個實例;
[003引圖4B示出圖4A的向量浮點測試數(shù)據(jù)類立即指令的第S操作數(shù)的位值的一個實 例;
[0039] 圖4C示出與圖4A的向量浮點測試數(shù)據(jù)類立即指令關聯(lián)的邏輯的一個實施例;
[0040] 圖4D示出圖4A的向量浮點測試數(shù)據(jù)類立即指令的執(zhí)行的框圖的一個實例;
[0041] 圖4E示出二進制浮點數(shù)據(jù)的多種類的定義的一個實例;
[0042] 圖5A示出向量校驗和指令的格式的一個實例;
[0043] 圖5B示出與圖5A的向量校驗和指令關聯(lián)的邏輯的一個實施例;
[0044] 圖5C示出圖5A的向量校驗和指令的執(zhí)行的框圖的一個實例;
[0045] 圖6A示出向量伽羅瓦域乘法求和與累加指令的格式的一個實例;
[0046] 圖6B示出與圖6A的向量伽羅瓦域乘法求和與累加指令關聯(lián)的邏輯的一個實施 例;
[0047] 圖6C示出圖6A的向量伽羅瓦域乘法求和與累加指令的執(zhí)行的框圖的一個實例;
[0048] 圖7A示出向量生成掩碼指令的格式的一個實例;
[0049] 圖7B示出與圖7A的向量生成掩碼指令關聯(lián)的邏輯的一個實施例;
[0050] 圖7C示出圖7A的向量生成掩碼指令的執(zhí)行的框圖的一個實例;
[0051] 圖8A示出向量元素旋轉和掩碼下插入指令的一個實例;
[0052] 圖8B示出與圖8A的向量元素旋轉和掩碼下插入指令關聯(lián)的邏輯的一個實施例;
[0053] 圖8C示出圖8A的向量元素旋轉和掩碼下插入指令的執(zhí)行的框圖的一個實例;
[0054] 圖9A示出向量異常碼的一個實例;
[0055] 圖9B示出設置圖9A的向量異常碼的邏輯的一個實施例;
[0056] 圖10示出結合一個或多個方面的計算機程序產(chǎn)品的一個實施例;
[0化7]圖11示出主計算機系統(tǒng)的一個實施例;
[0化引 圖12示出計算機系統(tǒng)的進一步實例;
[0059] 圖13示出包括計算機網(wǎng)絡的計算機系統(tǒng)的另一實例;
[0060] 圖14示出計算機系統(tǒng)的各種元素的一個實施例;
[0061] 圖15A示出圖14的計算機系統(tǒng)的執(zhí)行單元的一個實施例;
[0062] 圖15B示出圖14的計算機系統(tǒng)的分支單元的一個實施例;
[0063] 圖15C示出圖14的計算機系統(tǒng)的加載/存儲單元的一個實施例;W及
[0064] 圖16示出仿真主計算機系統(tǒng)的一個實施例。
【具體實施方式】
[00化]根據(jù)一個或多個方面,提供了包括多種向量指令W及向量異常處理的向量工具。 此處描述的每個指令是使用一個或多個向量寄存器(在此也稱為向量)的單指令多數(shù)據(jù) (SIMD)指令。向量寄存器例如是處理器寄存器(也稱為硬件寄存器),它是作為中央處理 單元(CPU)或其他處理器的一部分可用的少量存儲(例如,非主存儲器)。每個向量寄存器 包含具有一個或多個元素的向量操作數(shù),元素的長度例如為1、2、4或8個字節(jié)。在其他實 施例中,元素能夠具有其他大小,并且向量指令無需為SIMD指令。
[0066] 參考圖1描述結合和使用一個或多個方面的計算環(huán)境的一個實施例。計算環(huán)境 100例如包括處理器102 (例如,中央處理單元)、存儲器104 (例如,主存儲器),W及一個 或多個輸入/輸出(I/O)設備和/或接口 106,該些元件例如經(jīng)由一個或多個總線108和/ 或其他連接相互禪接。
[0067] 在一個實例中,處理器102基于國際商業(yè)機器公司提供的z/Architecture,并 且是諸如SystemZ服務器之類的服務器的一部分,該服務器也由國際商業(yè)機器公司提 供并實現(xiàn)z/Architec1:ure。z/Architec1:ure的一個實施例在標題為"z/Architec1:ure PrinciplesofOperation(z/Architec1:ure操作原理,編號為SA22-7832-09 的IBM? 出版物,第十版,2012年9月)的IBM?出版物中描述,該出版物的全部內(nèi)容在此納入作 為參考。在一個實例中,執(zhí)行諸如z/OS的操作系統(tǒng)的處理器也由國際商業(yè)機器公司提供。 IBM⑩、Z/ARCHITECTURE?:和Z/OS?,是位于美國紐約阿蒙克的國際商業(yè)機 器公司的注冊商標。此處使用的其他名稱可W是國際商業(yè)機器公司或其他公司的注冊商 標、商標或產(chǎn)品名。
[00側在進一步實施例中,處理器102基于國際商業(yè)機器公司提供的化wer Architec1:ure。PowerArchitec1:ure的一個實施例在叩owerISA?版本 2. 06,修訂B(國 際商業(yè)機器公司,2010年7月23日)"中描述,該出版物的全部內(nèi)容在此納入作為參考。 POWERARCHITECTURE?,是國際商業(yè)機器公司的注冊商標。
[00例在另一實施例中,處理器102基于英特爾公司提供的Intel架構。Intel架構的一個實施例在"Intel⑩64andIA-32Architec1:uresDeveloper,S Manual:Vol. 2B,InstructionsSetReference,A-L(In化I?64和IA-32架構開發(fā) 者指南:卷2B,指令集參考,A-U訂單號:253666-04抓S,2013年I月)"和"Intel?64andIA-32ArchitecturesDeveloper'sManual:Vol. 2B,InstructionsSet Reference,M-Z(Intel?64和IA-32架構開發(fā)者指南:卷2B,指令集參考,M-Z,訂單號; 253667-04抓S,2013年1月)"中描述,它們?nèi)績?nèi)容均在此納入作為參考。Imel⑩,是位 于加利福巧亞州圣克拉拉的英特爾公司的注冊商標。
[0070] 參考圖2A描述結合和使用一個或多個方面的計算環(huán)境的另一實施例。在該實例 中,計算環(huán)境200例如包括本機中央處理單元202、存儲器204,W及一個或多個輸入/輸 出設備和/或接口 206,該些元件例如經(jīng)由一個或多個總線208和/或其他連接相互禪接。 例如,計算環(huán)境200可W包括位于紐約阿蒙克的國際商業(yè)機器公司提供的化werPC處理 器、pSeries服務器或xSeries服務器;位于加利福巧亞帕洛阿爾托的惠普公司提供的帶有 IntelItaniumII處理器的HPSuperdome;和/或其他基于國際商業(yè)機器公司、惠普公司、 英特爾、化acle或其他公司提供的架構的機器。
[0071] 本機中央處理單元202包括一個或多個本機寄存器210,例如在環(huán)境內(nèi)的處理期 間使用的一個或多個通用寄存器和/或一個或多個專用寄存器。該些寄存器包括表示環(huán)境 在任何特定時刻的狀態(tài)的信息。
[0072] 此外,本機中央處理單元202執(zhí)行存儲在存儲器204中的指令和代碼。在一個特 定實例中,中央處理單元執(zhí)行存儲在存儲器204中的仿真器代碼212。該代碼使得在一個架 構配置中的處理環(huán)境能夠仿真另一架構。例如,仿