亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

向量浮點測試數(shù)據(jù)類立即指令的制作方法_2

文檔序號:9240011閱讀:來源:國知局
真器代碼212允許基于z/Architec化re W外的架構(gòu)(例如化werPC處理器、pSeries服務(wù)器、xSeries服務(wù)器、HPSuperdome服務(wù) 器等)的機器仿真z/Architec化re并且執(zhí)行基于z/Architec化re開發(fā)的軟件和指令。
[0073] 參考圖2B描述與仿真器代碼212相關(guān)的進一步細節(jié)。存儲在存儲器204中的來 賓指令250包括被開發(fā)為在本機CPU202的架構(gòu)W外的架構(gòu)中執(zhí)行的軟件指令(例如,與 機器指令相關(guān)聯(lián))。例如,來賓指令250可能已被設(shè)計為在z/Architec化re處理器102上 執(zhí)行,但是實際上,在例如可W是IntelItaniumII處理器的本機CPU202上被仿真。在 一個實例中,仿真器代碼212包括指令獲取例程252W從存儲器204獲得一個或多個來賓 指令250,W及可選地為所獲得的指令提供本地緩沖。它還包括指令轉(zhuǎn)換例程254W確定已 被獲得的來賓指令的類型W及將來賓指令轉(zhuǎn)換成一個或多個對應(yīng)的本機指令256。該轉(zhuǎn)換 例如包括標識要由來賓指令執(zhí)行的功能,W及選擇執(zhí)行此功能的本機指令(多個)。
[0074] 進一步地,仿真器212包括仿真控制例程260W導致執(zhí)行本機指令。仿真控制例 程260可使本機CPU202執(zhí)行仿真一個或多個之前獲得的來賓指令的本機指令的例程,并 且在此類執(zhí)行結(jié)束時,將控制返回到指令獲取例程W仿真獲得下一來賓指令或下一組來賓 指令。本機指令256的執(zhí)行可包括將數(shù)據(jù)從存儲器204加載到寄存器內(nèi);將數(shù)據(jù)從寄存器 存儲回存儲器;或執(zhí)行轉(zhuǎn)換例程所確定的某些類型的算術(shù)或邏輯運算。
[0075] 每個例程例如通過存儲在存儲器中并由本機中央處理單元202執(zhí)行的軟件實現(xiàn)。 在其他實例中,一個或多個例程或操作通過固件、硬件、軟件或它們的某種組合實現(xiàn)。被仿 真的處理器的寄存器可使用本機CPU的寄存器210或使用存儲器204中的位置進行仿真。 在多個實施例中,來賓指令250、本機指令256和仿真器代碼212可駐留在同一存儲器中,也 可分布在不同的存儲設(shè)備之間。
[0076] 如此處所用,固件例如包括處理器的微代碼、毫碼和/或宏代碼。它例如包括在較 高級機器代碼的實現(xiàn)中使用的硬件級指令和/或數(shù)據(jù)結(jié)構(gòu)。在一個實施例中,它例如包括 專用代碼,此專用代碼典型地作為微代碼(包括特定于底層硬件的可信軟件或微代碼)提 供并且控制對系統(tǒng)硬件的操作系統(tǒng)訪問。
[0077] 在一個實例中,被獲得、轉(zhuǎn)換和執(zhí)行的來賓指令250是此處描述的指令。具有一種 架構(gòu)(例如,z/Architec化re)的指令被從存儲器取回,被轉(zhuǎn)換,并且被表示為具有另一種 架構(gòu)(例如,化we巧C、pSeries、xSeries、Intel等)的一系列本機指令256。該些本機指 令然后被執(zhí)行。
[007引在一個實施例中,此處描述的指令是作為向量工具的一部分的向量指令。向量工 具例如提供具有從1到16個元素的固定大小的向量。每個向量包括被工具中定義的向量 指令操作的數(shù)據(jù)。在一個實施例中,如果向量包括多個元素,則每個元素與其他元素并行地 被處理。直到所有元素的處理完成時才發(fā)生指令完成。在其他實施例中,元素被部分地并 行處理和/或按順序處理。
[0079] 向量指令可作為多種架構(gòu)的一部分被實現(xiàn),該些架構(gòu)包括但不限于Z/ Architec1:ure、Powe;r、x86、IA-32、IA-64 等。盡管此處描述的實施例針對z/Architec1:ure, 但是此處描述的向量指令W及一個或多個其他方面可基于許多其他架構(gòu)。z/Architecture 只是一個實例。
[0080] 在其中向量工具作為z/Architec化re的一部分被實現(xiàn)的一個實施例中,為了使 用向量寄存器和指令,指定的控制寄存器(例如,控制寄存器0)中的向量使能控制和寄存 器控制例如被設(shè)置為1。如果安裝向量工具并執(zhí)行向量指令而不設(shè)置使能控制,則識別到數(shù) 據(jù)異常。如果未安裝向量工具并執(zhí)行向量指令,則識別到操作異常。
[0081] 在一個實施例中,存在32個向量寄存器,并且其他類型的寄存器可被映射到四分 之一的所述向量寄存器。例如,如圖3所示,寄存器文件300包括32個向量寄存器302,并 且每個寄存器的長度為128位。十六個浮點寄存器304 (長度為64位)可覆蓋向量寄存器。 因此,作為一個實例,當浮點寄存器2被修改時,向量寄存器2也被修改。其他類型的寄存 器的其他映射也是可能的。
[0082] 向量數(shù)據(jù)例如W與其他數(shù)據(jù)格式相同的從左到右的順序出現(xiàn)在存儲裝置中。數(shù)據(jù) 格式的編號為0-7的位構(gòu)成存儲裝置中的最左邊(編號最低)字節(jié)位置中的字節(jié),位8-15 形成下一順序位置中的字節(jié),W此類推。在進一步實例中,向量數(shù)據(jù)可WW另一順序(例如 從右到左)出現(xiàn)在存儲裝置中。
[0083] 此處描述的每個向量指令具有多個字段,并且一個或多個字段具有與其關(guān)聯(lián)的下 標號。與指令的字段關(guān)聯(lián)的下標號表示該字段適用的操作數(shù)。例如,與向量寄存器Vi關(guān)聯(lián) 的下標號1表示Vi中的寄存器包括第一操作數(shù),W此類推。寄存器操作數(shù)的長度為1個寄 存器,該長度例如為128位。
[0084] 進一步地,使用向量工具提供的許多向量指令具有包括指定位的字段。該字段 (也稱為寄存器擴展位或RXB)包括每個向量寄存器命名的操作數(shù)的最高位。寄存器命名 (registerdesignation)的未被指令指定的位將被保留并被設(shè)置為0。最高位例如被串接 到四位寄存器命名的左側(cè)W創(chuàng)建五位向量寄存器命名。
[0085]在一個實例中,RXB字段包括四個位(例如,位0-3),該些位的定義如下;
[0086] 0 -指令的第一向量寄存器命名(例如,在位8-11中)的最高位。
[0087] 1-指令的第二向量寄存器命名(例如,在位12-15中)的最高位(如果有)。
[0088] 2-指令的第S向量寄存器命名(例如,在位16-19中)的最高位(如果有)。
[0089] 3-指令的第四向量寄存器命名(例如,在位32-35中)的最高位(如果有)。
[0090] 每個位例如通過匯編器設(shè)置為0或1,具體取決于寄存器編號。例如,對于寄存器 0-15,位被設(shè)置為0 ;對于寄存器16-31,位被設(shè)置為1,等等。
[0091] 在一個實施例中,每個RXB位都是包括一個或多個向量寄存器的指令中的特定位 置的擴展位。例如,在一個或多個向量指令中,RXB的位0是位置8-11的擴展位,該擴展位 例如被分配給Vi;RXB的位1是位置12-15的擴展位,該擴展位例如被分配給V2;W此類推。 在另一實施例中,RXB字段包括附加位,并且一個W上的位被用作每個向量或位置的擴展。
[0092] 根據(jù)包括RXB字段的一方面提供的一個指令為向量浮點測試數(shù)據(jù)類立即(VFTCI) 指令,該指令的一個實例在圖4A中示出。在一個實例中,向量浮點測試數(shù)據(jù)類立即指令400 包括;操作碼字段402a(例如,位0-7)、402b(例如,位40-47),其指示向量浮點測試數(shù)據(jù)類 立即操作;第一向量寄存器字段404(例如,位8-11),其被用于指定第一向量寄存器(Vi); 第二向量寄存器字段406(例如,位12-15),其被用于指定第二向量寄存器(V2);立即字段 (Is) 408 (例如,位16-27),其包括位掩碼;第一掩碼字段(Me) 410 (例如,位28-31);第二掩 碼字段(Ma) 412 (例如,位32-35) ;W及RXB字段414 (例如,位36-39)。在一個實例中,字 段404-414中的每一個都與操作碼字段(多個)分離并且獨立于操作碼字段(多個)。進 一步地,在一個實施例中,它們相互分離和獨立;但是,在其他實施例中,一個W上字段可進 行組合。有關(guān)該些字段的使用的進一步信息在下面進行描述。
[0093] 在一個實例中,由操作碼字段402a指定的操作碼的選定位(例如,前兩位)指定 指令的長度。在該特定實例中,選定位指示長度為=個半字。進一步地,指令的格式為具有 擴展操作碼字段的向量寄存器和立即操作。每個向量(V)字段連同其由RXB指定的對應(yīng)擴 展位一起指定向量寄存器。具體而言,對于向量寄存器,包含操作數(shù)的寄存器例如使用加上 其對應(yīng)的寄存器擴展位(RXB)作為最高位的寄存器字段的四位字段進行指定。例如,如果 四位字段為0110,并且擴展位為0,則五位字段OOllO指示寄存器編號6。
[0094] 進一步地,在VFTCI指令的一個實施例中,Vi404和V2406針對指令指定分別包括 第一操作數(shù)和第二操作數(shù)的向量寄存器。此外,13408包括具有多個位的位掩碼,并且每個 位被用于表示二進制浮點元素類和符號(正或負),如下面進一步詳細描述的那樣。
[0095] 在另一實施例中,例如,位掩碼可在通用寄存器中提供,在存儲器中提供,在向量 寄存器的元素中(根據(jù)元素而存在差異)提供,通過地址計算提供。可作為指令的顯式操 作數(shù)或作為隱式操作數(shù)或輸入而包括位掩碼。
[0096] Mg字段410例如具有四個位0-3,并且例如在位0中指定單元素控制(S)。如果位 0被設(shè)置為1,則操作僅針對向量中的零索引元素發(fā)生。第一操作數(shù)向量中的所有其他元素 的位位置是不可預測的。如果位0被設(shè)置為0,則針對向量中的所有元素發(fā)生操作。
[0097]Ma字段412例如被用于指定指令的第二操作數(shù)中的浮點數(shù)的大小。在一個實例中, 該字段被設(shè)置為3,從而指示雙精度二進制浮點數(shù)。其他實例也是可能的。
[009引在執(zhí)行向量浮點測試數(shù)據(jù)類立即指令的一個實施例時,檢查第二操作數(shù)的浮點元 素(多個)的類和符號W從第S操作數(shù)選擇一個或多個位。如果設(shè)置選定位,則第一操作 數(shù)中的對應(yīng)元素的所有位位置被設(shè)置為1 ;否則,它們被設(shè)置為0。也就是說,如果第二操作 數(shù)的元素中包含的浮點數(shù)的類/符號與第S操作數(shù)中的已設(shè)置位(即,位被設(shè)置為例如1) 匹配,則對應(yīng)于第二操作數(shù)的元素的第一操作數(shù)的元素被設(shè)置為1。在一個實例中,所有操 作數(shù)元素包含長格式BFP(二進制浮點)數(shù)。
[0099] 如此處所指示的,第S操作數(shù)的12個位(指令本文的位16-27)被用于指定BFP數(shù) 據(jù)類和符號的12個組合。在一個實例中,如圖4B所示,BFP操作數(shù)元素被分為六類430 ;0、 規(guī)范數(shù)、非規(guī)范數(shù)、無限大、靜默NaN(非數(shù)值)、信令NaN,并且每個類具有與其關(guān)聯(lián)的符號 432 (正或負)。因此,例如,Is的位0指定具有正號的0類,位1指定具有負號的0類等。
[0100] 一個或多個第=操作數(shù)位可被設(shè)置為1。進一步地,在一個實施例中,指令可同時 對一個或多個元素執(zhí)行操作。
[0101] 在不導致IE邸異常的情況下檢查包括SNaN(信令NaN)和QNaN(靜默NaN)的操 作數(shù)元素。
[0102] 得到的所有元素的概要條件碼:
[0103] 0對于所有元素,選定位為1(匹配)
[0104] 1對于至少一個元素,而非所有元素,選定位為1 (當S位為0時)
[010 引 2 -
[0106] 3對于所有元素,選定位為0(不匹配)
[0107]IE邸異常:無
[0108] 程序異常:
[0109] *具有數(shù)據(jù)異常碼值XOFE的數(shù)據(jù),向量指令,指示未啟用向量工具
[0110] *操作(如果未安裝用于z/Architec化re的向量工具)
[0111] * 規(guī)范
[0112] *事務(wù)約束
[0113] 編程注釋:
[0114] 1.該指令提供一種在沒有異常或設(shè)置IEEE標志的風險的情況下測試操作數(shù)元素 的方式。
[0115] 2.當設(shè)置了S位時,不使用條件碼1。
[0116] 參考圖4C和4D描述與向量浮點測試數(shù)據(jù)類立即指令相關(guān)的一個實施例的進一步 細節(jié)。具體而言,圖4C示出與由處理器(例如,CPU)執(zhí)行的向量浮點測試數(shù)據(jù)類立即指令 關(guān)聯(lián)的邏輯的一個實施例,圖4D是示出向量浮點測試數(shù)據(jù)類立即指令的執(zhí)行的框圖的一 個實例。
[0117] 參考圖4C,首先,將被稱為元素索引巧i)的變量初始化為0(步驟450)。然后,從 指令的第二操作數(shù)(例如,從被存儲在V2指定的寄存器中的操作數(shù))提取元素Ei中的值 (在此情況下為元素0)(步驟452)。該值(其是長格式二進制浮點值)被轉(zhuǎn)換為型數(shù)W獲 得第二操作數(shù)的浮點元素的類和符號,如下所述(步驟454)。在一個實例中,浮點數(shù)453的 大小被輸入到轉(zhuǎn)換邏輯。所獲得的類和符號與特定的類/符號位關(guān)聯(lián),如參考圖4B所述。 例如,如果轉(zhuǎn)換指示浮點數(shù)為正的規(guī)范數(shù),則位2與該浮點數(shù)關(guān)聯(lián)。
[0118] 在轉(zhuǎn)換之后,檢驗第=操作數(shù)中與基于轉(zhuǎn)換確定的特定位對應(yīng)的位(被稱為選定 位)(步驟456)。如果選定位被設(shè)置(詢問458),則第一操作數(shù)中與元素巧i)對應(yīng)的元素 被設(shè)置為等于全1 (步驟460);否則,第一操作數(shù)中的該元素被設(shè)置為等于0 (步驟462)。 例如,如果元素0中的浮點數(shù)的轉(zhuǎn)換指示正的規(guī)范數(shù),則位2與該數(shù)關(guān)聯(lián)。因此,檢驗第S 操作數(shù)的位2,并且如果被設(shè)置為I,則第一操作數(shù)的元素O被設(shè)置為全I。
[0119] 之后,判定Ei是否等于第二操作數(shù)的元素的最大數(shù)量(詢問464)。如果否,則Ei 例如遞增1 (步驟466),然后處理繼續(xù)執(zhí)行步驟452。否則,如果Ei等于元素的最大數(shù)量, 則生成概要條件碼(步驟468)。概要條件碼概述第二操作數(shù)的所有元素的處理。例如,如 果對于所有元素,選定位為1 (匹配),則得到的條件碼為0。另一方面,如果對于至少一個 元素(而非所有元素),選定位為1 (當S位不為0時),則條件碼為1,并且如果對于所有元 素,選定位為0 (不匹配),則條件碼為3。
[0120] 上述處理W圖形方式在圖4D的框圖中示出。如圖所示,向量寄存器480包括多個 元素482a-482n,每個元素包括浮點數(shù)。浮點數(shù)483a-48化的每個浮點數(shù)和大小被輸入到轉(zhuǎn) 換為型數(shù)邏輯484a-484n,并且輸出是表示浮點數(shù)的類/符號的特定位。然后,檢驗每個掩 碼486a-486b中對應(yīng)于每個特定位的選定位。取決于選定位是否被設(shè)置,設(shè)置向量寄存器 488中的第一操作數(shù)。例如,如果對于第二操作數(shù)的元素0,選定位被設(shè)置,則將第一操作數(shù) 的元素490a設(shè)置為全1。類似地,如果第二操作數(shù)的元素1的選定位未被設(shè)置(例如,被設(shè) 置為0),則將第一操作數(shù)的元素49化設(shè)置為0等。
[0121] 現(xiàn)在描述轉(zhuǎn)換為型數(shù)邏輯的一個實施例的進一步細節(jié)。首先,將是標準IE邸二進 制浮點數(shù)的浮點數(shù)轉(zhuǎn)換為S部分;符號、指數(shù)巧位)+127,W及尾數(shù)(化action) (32位),如 所公知的那樣。然后,檢驗該S部分的值W確定類和符號,如圖4E所示。例如,符號是符號 部的值,并且類(也就是圖4E中的實體)基于指數(shù)和尾數(shù)(圖4E中的單元位是尾數(shù)的隱 式位)的值。作為一個實例,如果指數(shù)和尾數(shù)(包括單元位)的值為0,則類為0,如果符號 部為正,則符號為正。該樣,位〇(圖4B)表示該浮點數(shù)的類/符號。
[0122] 上面描述了測試向量中的元素的浮點數(shù)類的指令和設(shè)置得到的位掩碼的一個實 施例。向量浮點測試數(shù)據(jù)類立即指令具有立即字段,該字段中的每個位表示要檢測的浮點 數(shù)的類。輸入向量的每個浮點元素被測試W查看值是否屬于由該指令指定的任一類。如果 浮點元素屬于其中一類,則輸出向量的對應(yīng)元素的位位置被設(shè)置為1。該提供了在不導致任 何異?;蛑袛嗟那闆r下確定有關(guān)二進制浮點數(shù)的某些屬性(例如,類和符號)的技術(shù)。
[0123] 在另一實施例中,可通過W下方式執(zhí)行測試;檢驗第=操作數(shù)中的哪些位被設(shè)置 (例如,被設(shè)置為1),然后判定第二操作數(shù)的一個或多個元素的類/符號是否與已設(shè)置位中 的一個相同。然后基于比較設(shè)置第一操作數(shù)。
[0124] 在另一方面,提供向量校驗和指令,該指令的一個實例在圖5A中示出。在一個實 例中,向量校驗和指令500包括;操作碼字段502a(例如,位0-7)、502b(例如,位40-47),其 指示向量校驗和操作;第一向量寄存器字段504 (例如,位8-11),其被用于指定第一向量寄 存器(Vi);第二向量寄存器字段506 (例如,位12-巧),其被用于指定第二向量寄存器(V2); 第S向量寄存器字段508 (例如,位16-19),其被用于指定第S向量寄存器(Vs) ;W及RXB 字段510 (例如,位36-39)。在一個實例中,字段504-510中的每一個都與操作碼字段(多 個)分離并且獨立于操作碼字段(多個)。進一步地,在一個實施例中,它們相互分離和獨 立;但是,在其他實施例中,一個W上字段可進行組合。
[01巧]在另一實施例中,第=向量寄存器字段不作為指令的顯式操作數(shù)被包括在內(nèi),相 反地,它是隱式操作數(shù)或輸入。進一步地,在操作數(shù)中提供的值可通過其他方式提供,例如 在通用寄存器中提供,在存儲器中提供,作為地址計算提供等。
[0126] 在再一實施例中,根本不提供顯式或隱式的第=操作數(shù)。
[0127] 在一個實例中,由操作碼字段502a指定的操作碼的選定位(例如,前兩位)指定 指令的長度。在該特定實例中,選定位指示長度為=個半字。進一步地,指令的格式為具有 擴展操作碼字段的向量寄存器和寄存器操作。每個向量(V)字段連同其由RXB指定的對應(yīng) 擴展位一起指定向量寄存器。具體而言,對于向量寄存器,包含操作數(shù)的寄存器例如使用加 上其對應(yīng)的寄存器擴展位(RXB)作為最高位的寄存器字段的四位字段進行指定。
[0128] 在執(zhí)行向量校驗和指令的一個實施例時,來自第二操作數(shù)的元素(例如,單字大 小的元素)連同第=操作數(shù)的選定元素(例如,第=操作數(shù)的字1中的元素)一起被逐個加 在一起。(在另一實施例中,第=操作數(shù)的選定元素的相加是可選的)??偤捅环湃氲谝徊?作數(shù)的選定位置(例如,字1)內(nèi)。0被置于第一操作數(shù)的其他字元素(例如
當前第2頁1 2 3 4 5 6 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1