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

向量異常碼的制作方法_3

文檔序號:9240054閱讀:來源:國知局
校驗(yàn)和。如果具有來自整數(shù)算術(shù)運(yùn)算的進(jìn)位,則該進(jìn)位(額外的I) 被加到當(dāng)前和(runningsum)中。
[0125] 盡管此處描述了校驗(yàn)和,但是類似的技術(shù)也可被用于其他端回進(jìn)位加法。
[0126] 根據(jù)一個方面提供的另一指令為向量伽羅瓦域乘法求和與累加(VGFMA)指令,該 指令的一個實(shí)例在圖6A中示出。在一個例子中,向量伽羅瓦域乘法求和與累加指令600包 括;操作碼字段602a(例如,位0-7)、602b(例如,位40-47),其指示向量伽羅瓦域乘法求和 與累加操作;第一向量字段604(例如,位8-11),其被用于指定第一向量寄存器(Vi);第二 向量寄存器字段606(例如,位12-15),其被用于指定第二向量寄存器(V2);第S向量寄存 器字段608 (例如,位16-19),其被用于指定第=向量寄存器(Vs);掩碼字段(Me) 610 (例如, 位20-23);第四向量寄存器字段612(例如,位32-35),其被用于指定第四向量寄存器(V4); W及RXB字段614 (例如,位36-39)。在一個例子中,字段604-614中的每一個都與操作碼 字段(多個)分離并且獨(dú)立于操作碼字段(多個)。此外,在一個實(shí)施例中,它們相互分離 和獨(dú)立;但是,在其他實(shí)施例中,一個W上字段可進(jìn)行組合。
[0127] 在一個實(shí)例中,由操作碼字段602a指定的操作碼的選定位(例如,前兩位)指定 指令的長度。在該特定實(shí)例中,選定位指示長度為=個半字。此外,指令的格式為具有擴(kuò)展 操作碼字段的向量寄存器和寄存器操作。每個向量(V)字段連同其由RXB指定的對應(yīng)擴(kuò)展 位一起指定向量寄存器。具體而言,對于向量寄存器,包含操作數(shù)的寄存器例如使用加上其 對應(yīng)的寄存器擴(kuò)展位(RXB)作為最高位的寄存器字段的四位字段進(jìn)行指定。
[012引 Mg字段610例如具有四個位0-3,并且指定元素大小巧巧控制。元素大小控制指 定向量寄存器操作數(shù)2和3中的元素的大?。坏谝缓偷谒牟僮鲾?shù)中的元素是ES控制所指定 的元素大小的兩倍。例如,Mg中的值0指示單字節(jié)大小的元素;1指示半字;2指示單字;W 及3指示雙字。
[0129] 在執(zhí)行向量伽羅瓦域乘法求和與累加指令的一個實(shí)施例時,第二操作數(shù)的每個元 素在伽羅瓦域(即,具有有限數(shù)量元素的有限域)中與第=操作數(shù)的對應(yīng)元素相乘。也就 是說,使用無進(jìn)位乘法使第二操作數(shù)的每個元素與第=操作數(shù)的對應(yīng)元素相乘。在一個實(shí) 例中,伽羅瓦域?yàn)槎A。該乘法類似于標(biāo)準(zhǔn)的二進(jìn)制乘法,它并非將移位后的被乘數(shù)相加, 而是異或狂OR)。例如,得到的奇-偶雙元素大小的乘積對相互進(jìn)行異或,并且與第四操作 數(shù)的對應(yīng)元素(例如,雙寬元素)進(jìn)行異或。結(jié)果被例如放入第一操作數(shù)的雙寬元素。
[0130] 條件碼:代碼保持不變。
[0131] 程序異常:
[0132] *具有數(shù)據(jù)異常碼值XOFE的數(shù)據(jù),向量指令,指示未啟用向量工具
[0133] *操作(如果未安裝用于z/Architec化re的向量工具)
[0134] * 規(guī)范
[0135] *事務(wù)約束
[0136] 在另一實(shí)施例中,所述指令可包括一個或更少的操作數(shù)。例如,要被異或的值位于 第一操作數(shù)中,而非位于第四操作數(shù)中,第一操作數(shù)也將包括結(jié)果。其他變型也是可能的。
[0137] 參考圖6B和6C描述有關(guān)向量伽羅瓦域乘法求和與累加指令的執(zhí)行的一個實(shí)施例 的進(jìn)一步細(xì)節(jié)。在一個實(shí)例中,圖6B示出由處理器執(zhí)行W執(zhí)行向量伽羅瓦域乘法求和與累 加指令的邏輯的一個實(shí)施例,圖6C是示出邏輯執(zhí)行的框圖的一個實(shí)例。
[0138] 參考圖6B,首先,從第二操作數(shù)(0P2)、第S操作數(shù)(0P3)和第四操作數(shù)(0P4)提 取奇/偶對(步驟630),并且執(zhí)行無進(jìn)位乘法求和累加功能(步驟632)。例如,當(dāng)在幕為 2的伽羅瓦域中執(zhí)行運(yùn)算時,無進(jìn)位乘法是移位或XOR(異或),它有效地忽略了任何進(jìn)位。 結(jié)果被放入第一操作數(shù)(OPl)內(nèi)(步驟634),并且判定是否存在更多要被提取的對(詢問 636)。如果存在更多對,則處理繼續(xù)執(zhí)行步驟630;否則,處理完成(步驟638)。在一個例 子中,元素大小631到步驟630-634的輸入。
[0139] 參考圖6C描述步驟632的無進(jìn)位乘法求和累加功能的進(jìn)一步細(xì)節(jié)。如圖所示,從 第二操作數(shù)650提取一對操作數(shù)0P2H652a、OP化652b。此外,從第S操作數(shù)660提取操 作數(shù)對0P3H662a、OP:3L662b,從第四操作數(shù)670提取操作數(shù)對0P4H672a和OP化672b。 操作數(shù)0P2H652a通過無進(jìn)位乘法與操作數(shù)0P3H662a相乘,然后提供結(jié)果H680a。類似 地,OP化65化使用無進(jìn)位乘法與操作數(shù)OP化66化相乘,然后提供結(jié)果L680b。接著,結(jié) 果H680a與結(jié)果L68化進(jìn)行異或運(yùn)算,所得結(jié)果與操作數(shù)0P4H672a和OP化67化進(jìn)行 異或運(yùn)算,接著將結(jié)果放入0Pm690a、OPlL69化內(nèi)。
[0140] 此處描述了執(zhí)行無進(jìn)位乘法運(yùn)算,然后執(zhí)行最后的異或運(yùn)算W創(chuàng)建累積和的向量 指令。此技術(shù)可用于在二階有限域中執(zhí)行運(yùn)算的錯誤檢測代碼和密碼學(xué)的多個方面。
[0141] 在一個實(shí)例中,所述指令針對向量寄存器的多個元素執(zhí)行無進(jìn)位乘法運(yùn)算W獲取 總和。此外,所述指令針對總和執(zhí)行最終的異或W產(chǎn)生累加和。當(dāng)被執(zhí)行時,所述指令在 伽羅瓦域中將第二向量和第=向量中的對應(yīng)元素進(jìn)行相乘,并且對移位后的被乘數(shù)執(zhí)行異 或。每個雙寬乘積相互進(jìn)行異或,所得結(jié)果與第一向量的雙寬對應(yīng)元素進(jìn)行異或。結(jié)果被 存儲在第一向量寄存器中。盡管上面描述了雙字元素,但是也可使用具有其他元素大小的 單字大小的元素。所述指令能夠針對多個不同的元素大小執(zhí)行操作。
[0142] 根據(jù)一個方面提供的另一指令為向量生成掩碼(VGM)指令,參考圖7A描述該指 令的一個實(shí)例。在一個實(shí)例中,向量生成掩碼指令700包括;操作碼字段702a(例如,位 0-7)、702b(例如,位40-47),其指示向量生成掩碼操作;第一向量寄存器字段704 (例如, 位8-11),其被用于指定第一向量寄存器(Vi);第一立即字段12706(例如,位16-24),其被 用于指定第一值;第二立即字段(Is) 708 (例如,位24-32),其被用于指定第二值;掩碼字段 (Ma) 710 (例如,位32-35) ;W及RXB字段712 (例如,位36-39)。在一個實(shí)例中,字段704-712 中的每一個都與操作碼字段(多個)分離并且獨(dú)立于操作碼字段(多個)。此外,在一個實(shí) 施例中,它們相互分離和獨(dú)立;但是,在其他實(shí)施例中,一個W上字段可進(jìn)行組合。
[0143] 在另一實(shí)施例中,第一值和/或第二值可W在通用寄存器中提供,在存儲器中提 供,在向量寄存器的元素中(根據(jù)元素而存在差異)提供,通過地址計算提供。它可作為指 令的顯式操作數(shù)或作為隱式操作數(shù)或輸入而被包括。
[0144] 在一個實(shí)例中,由操作碼字段702a指定的操作碼的選定位(例如,前兩位)指定 指令的長度。在該特定實(shí)例中,選定位指示長度為=個半字。此外,指令的格式為具有擴(kuò)展 操作碼字段的向量寄存器和立即操作。每個向量(V)字段連同其由RXB指定的對應(yīng)擴(kuò)展位 一起指定向量寄存器。具體而言,對于向量寄存器,包含操作數(shù)的寄存器例如使用加上其對 應(yīng)的寄存器擴(kuò)展位(RXB)作為最高位的寄存器字段的四位字段進(jìn)行指定。
[0145] 字段例如指定元素大小控制巧巧。元素大小控制指定向量寄存器操作數(shù)中的元 素的大小。在一個例子中,字段的位0指定單字節(jié);位1指定半字(例如,2字節(jié));位2 指定單字(例如,4字節(jié);即,全字);W及位3指定雙字。
[0146] 在執(zhí)行向量生成掩碼指令的一個實(shí)施例時,對于第一操作數(shù)中的每個元素,生成 位掩碼。所述掩碼包括被設(shè)置為1的位,該些位從例如12中的無符號整數(shù)值指定的位位置 開始,到例如Is中的無符號整數(shù)值指定的位位置結(jié)束。所有其他位位置被設(shè)置為0。在一 個實(shí)例中,僅從12和I 3字段使用表示指定的元素大小的所有位位置所需的位數(shù);其他位被 忽略。如果12字段中的位位置大于I 3字段中的位位置,則位的范圍在針對指定元素大小的 最大位位置處繞回(wrap)。例如,假設(shè)單字節(jié)大小的元素,如果12=1且I3=6,,則得到 的掩碼為Xl7EI或Bl0111111〇1。但是,如果12=6且13=1,,則得到的掩碼為Xl81 '或b' 10000001'。
[0147] 條件碼:代碼保持不變。
[0148] 程序異常:
[0149] *具有數(shù)據(jù)異常碼值XOFE的數(shù)據(jù),向量指令,指示未啟用向量工具
[0150] *操作(如果未安裝用于z/Architec化re的向量工具)
[0151] *規(guī)范
[0152] *事務(wù)約束
[0153] 參考圖7B和7C描述有關(guān)向量生成掩碼指令的一個實(shí)施例的進(jìn)一步細(xì)節(jié)。具體而 言,圖7B示出與由處理器執(zhí)行的向量生成掩碼指令關(guān)聯(lián)的邏輯的一個實(shí)施例;圖7C是示出 向量生成掩碼指令的執(zhí)行的一個實(shí)施例的框圖的一個實(shí)例。
[0154] 參考圖7B,首先,針對第一操作數(shù)中的每個元素生成掩碼(步驟720)。此步驟使 用多個輸入,其中包括在第二操作數(shù)字段中指定為起始位置的值(722)、在第=操作數(shù)字段 中指定為結(jié)束位置的值(724),W及在M4字段中指定的元素的大?。?26)。該些輸入被用于 生成掩碼并填充第一操作數(shù)(OPl)的選定元素(例如,元素0)的位置(步驟730)。例如, 第一操作數(shù)(OPl)的元素0包括多個位置(例如,位位置),并且從12中的無符號整數(shù)值指 定的位置開始,到Is中的無符號整數(shù)值指定的位置結(jié)束,第一操作數(shù)的元素0的位置(例 如,位)被設(shè)置為1。其他位位置被設(shè)置為0。隨后,判定第一操作數(shù)中是否存在更多元素 (詢問734)。如果存在更多元素,則處理繼續(xù)執(zhí)行步驟720。否則,處理完成(步驟736)。
[0155] 掩碼的生成和第一操作數(shù)的填充W圖形的形式在圖7C中示出。如圖所示,第一操 作數(shù)的每個元素的掩碼使用輸入(例如,722-726)生成720,并且生成掩碼的結(jié)果被存儲在 第一操作數(shù)740的元素中。
[0156] 上面詳細(xì)描述了生成向量的每個元素的位掩碼的指令。在一個實(shí)施例中,該指令 采用起始位位置和結(jié)束位位置,并產(chǎn)生針對每個元素重復(fù)的位掩碼。該指令指定位范圍,此 范圍內(nèi)的每個位針對向量寄存器的每個元素被設(shè)置為1,而其他位被設(shè)置為0。
[0157] 在一個實(shí)施例中,使用指令生成位掩碼較之例如從存儲器加載位掩碼提供了優(yōu) 點(diǎn),從存儲器加載位掩增加了指令流的緩存占用,并且取決于所需的掩碼數(shù),可增加關(guān)鍵環(huán) 路的延遲。
[015引根據(jù)一個方面提供的再一指令為向量元素旋轉(zhuǎn)和掩碼下插入(VERIM)指令,該指 令的一個實(shí)例在圖8A中示出。在一個例子中,向量元素旋轉(zhuǎn)和掩碼下插入指令800包括: 操作碼字段802a(例如,位0-7)、802b(例如,位40-47),其指示向量元素旋轉(zhuǎn)和掩碼下插 入操作;第一向量寄存器字段804(例如,位8-11),其被用于指定第一向量寄存器(Vi);第 二向量寄存器字段806(例如,位12-15),其被用于指定第二向量寄存器八);第S向量寄 存器字段808 (例如,位16-19),其被用于指定第S向量寄存器(Vs);立即字段(14)812(例 如,位24-31),其例如包括無符號二進(jìn)制整數(shù),該整數(shù)指定用于旋轉(zhuǎn)每個元素的位數(shù);掩碼 字段(Mg) 814 (例如,位32-35);W及RXB字段816 (例如,位36-39)。在一個實(shí)例中,字段 804-816中的每一個都與操作碼字段(多個)分離并且獨(dú)立于操作碼字段(多個)。此外, 在一個實(shí)施例中,它們相互分離和獨(dú)立;但是,在其他實(shí)施例中,一個W上字段可進(jìn)行組合。
[0159] 在一個實(shí)例中,由操作碼字段802a指定的操作碼的選定位(例如,前兩位)指定 指令的長度。在該特定實(shí)例中,選定位指示長度為=個半字。此外,指令的格式為具有擴(kuò)展 操作碼字段的向量寄存器和立即操作。每個向量(V)字段連同其由RXB指定的對應(yīng)擴(kuò)展位 一起指定向量寄存器。具體而言,對于向量寄存器,包含操作數(shù)的寄存器例如使用加上其對 應(yīng)的寄存器擴(kuò)展位(RXB)作為最高位的寄存器字段的四位字段進(jìn)行指定。
[0160]Mg字段指定元素大小控制巧巧。元素大小控制指定向量寄存器操作數(shù)中的元素 的大小。在一個例子中,Mg字段的位0指定單字節(jié);位1指定半字(例如,2字節(jié));位2指 定單字(例如,4字節(jié);即,全字);W及位3指定雙字。
[0161] 在執(zhí)行向量元素旋轉(zhuǎn)和掩碼下插入指令時,第二操作數(shù)的每個元素根據(jù)第四操作 數(shù)指定的位數(shù)向左旋轉(zhuǎn)。從元素的最左側(cè)位位置移位出的每個位再次進(jìn)入元素的最右側(cè)位 位置。第=操作數(shù)在每個元素中包括掩碼。對于第=操作數(shù)中為1的每個位,第二操作數(shù) 中已旋轉(zhuǎn)的元素的對應(yīng)位替換第一操作數(shù)中的對應(yīng)位。也就是說,已旋轉(zhuǎn)的元素的對應(yīng)位 的值替換第一操作數(shù)中對應(yīng)位的值。對于第=操作數(shù)中為0的每個位,第一操作數(shù)的對應(yīng) 位保持不變。除了當(dāng)?shù)谝徊僮鲾?shù)與第二或第=操作數(shù)相同的情況之外,第二和第=操作數(shù) 保持不變。
[0162] 第四操作數(shù)例如為無符號二進(jìn)制整數(shù),該整數(shù)指定第二操作數(shù)中每個元素被旋轉(zhuǎn) 的位數(shù)。如果該值大于指定的元素大小中的位數(shù),則該值W元素中的位數(shù)為模減小。
[0163] 在一個實(shí)例中,使用此處描述的VGM指令生成被包括在第=操作數(shù)中的掩碼。
[0164] 條件碼:代碼保持不變。
[0165] 程序異常:
[0166] *具有數(shù)據(jù)異常碼值XOFE的數(shù)據(jù),向量指令,指示未啟用向量工具
[0167] *操作(如果未安裝用于z/Architec化re的向量工具)
[016引 *規(guī)范
[0169] *事務(wù)約束
[0170] 編程注釋:
[0171] 1.VERIM和VGM的組合可被用于完成旋轉(zhuǎn)和插入選定位指令的全部功能。
[0172] 2.盡管L字段的位被定義為包含指定要向左旋轉(zhuǎn)每個元素的位數(shù)的無符號二進(jìn) 制整數(shù),但是也可對有效地指定向右旋轉(zhuǎn)量的負(fù)值進(jìn)行編碼。
[0173] 參考圖8B和8C描述有關(guān)向量元素旋轉(zhuǎn)和掩碼下插入指令的執(zhí)行的進(jìn)一步細(xì)節(jié)。 具體而言,圖8B示出與由處理器執(zhí)行的向量元素旋轉(zhuǎn)和掩碼下插入指令關(guān)聯(lián)的邏輯的一 個實(shí)施例,圖8CW圖形的方式示出向量元素旋轉(zhuǎn)和掩碼下插入指令的執(zhí)行的一個實(shí)例。
[0174] 參考圖8B,按照第四操作數(shù)中指定的量巧20)旋轉(zhuǎn)第二操作數(shù)的選定元素(步驟 830)。如果第四操作數(shù)中指定的值大于元素大小巧22)中指定的位數(shù),則該值W元素中的 位數(shù)為模減小。
[0175] 在旋轉(zhuǎn)元素的位之后,執(zhí)行掩碼下合并(步驟832)。例如,對于第=操作數(shù)中為1 的每個位巧24),第二操作數(shù)中已旋轉(zhuǎn)的元素的對應(yīng)位替換第一操作數(shù)中的對應(yīng)位。
[0176] 隨后,判定是否存在更多要被旋轉(zhuǎn)的元素(詢問834)。如果存在更多要被旋轉(zhuǎn)的 元素,則處理繼續(xù)執(zhí)行步驟830。否則,處理完成(步驟836)。
[0177] 參考圖8C,如圖所示,基于輸入820和822旋轉(zhuǎn)830第二操作數(shù)的元素。此外,使 用輸入824執(zhí)行832掩碼下合并。在第一操作數(shù)850中提供輸出。
[017引上面描述了向量元素旋轉(zhuǎn)和掩碼下插入指令的一個實(shí)例。該指令被用于按照已定 義的位數(shù)旋轉(zhuǎn)選定操作數(shù)中的元素。盡管位已被指定,但是在另一實(shí)施例中,元素能夠按照 位置數(shù)旋轉(zhuǎn),并且位置可W是位W外的位置。此外,該指令可被用于不同的元素大小。
[0179] 作為一個實(shí)例,此類指令被用于從表查找的編號中選擇特定位范圍。
[0180] 在執(zhí)行特定向量指令或其他SIMD操作期間,可能出現(xiàn)異常。當(dāng)在SIMD操作上出 現(xiàn)異常時,通常不知道向量寄存器的哪個元素導(dǎo)致了異常。軟件
當(dāng)前第3頁1 2 3 4 5 6 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
利川市| 东明县| 逊克县| 禹州市| 鹤峰县| 加查县| 东乡县| 镶黄旗| 巨鹿县| 龙胜| 平利县| 新乡市| 乌拉特中旗| 乌兰浩特市| 宁陵县| 马关县| 南召县| 云南省| 石林| 晋中市| 原平市| 甘南县| 岳阳县| 雅江县| 田阳县| 泸西县| 临泉县| 康平县| 文昌市| 观塘区| 黄山市| 舟曲县| 江陵县| 开平市| 金寨县| 彰武县| 田林县| 沁源县| 祥云县| 彩票| 修武县|