国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于執(zhí)行縮小和舍入算術運算的數據處理裝置和方法

      文檔序號:6552484閱讀:203來源:國知局
      用于執(zhí)行縮小和舍入算術運算的數據處理裝置和方法
      【專利摘要】本發(fā)明涉及一種用于執(zhí)行縮小和舍入算術運算的數據處理裝置和方法。所述縮小和舍入算術運算響應于每個都包括至少一個W位數據元的兩個操作數來生成包括至少一個X位結果數據元的結果值,其中每個X位結果數據元都表示被舍入到X位值的所述兩個操作數的對應W位數據元的和或差(W>X)。所述算術運算使用許多N位加法(N<W)來實現(xiàn),其中來自N位加法的第一級的進位值在N位加法的第二級處被相加以用于將舍入值加到所述第一級加法的結果。這種技術減少用于執(zhí)行所述縮小和舍入算術運算所需要的時間量。
      【專利說明】用于執(zhí)行縮小和舍入算術運算的數據處理裝置和方法

      【技術領域】
      [0001]本發(fā)明涉及數據處理領域。更特別地,本發(fā)明涉及一種用于執(zhí)行縮小和舍入算術運算的數據處理裝置和方法。

      【背景技術】
      [0002]數據處理裝置可以執(zhí)行縮小和舍入算術運算,其中兩個數據值被相加或者相減并且加法或減法的結果被舍入以產生具有比原始數據值更少的位的數據值。本技術尋求加速這樣的運算的實施方式。


      【發(fā)明內容】

      [0003]從一個方面看,本發(fā)明提供了一種數據處理裝置,其包括:
      [0004]處理電路,其被配置為處理數據;以及
      [0005]控制電路,其被配置為控制所述處理電路響應于標識兩個操作數(每個都包括至少一個I位數據元)的縮小和舍入算術指令來執(zhí)行縮小和舍入算術運算,所述縮小和舍入算術運算生成包括至少一個X位結果數據元的結果值,每個X位結果數據元都表示舍入到X位值的所述兩個操作數的對應I位數據元的和或差,其中I和X是整數并且I ? X ;
      [0006]其中所述控制電路被配置為控制所述處理電路通過如下各項來生成所述結果值的每個X位結果數據元:
      [0007](幻執(zhí)行多個~位第一級加法以通過加上或者減去所述對應I位數據元的~位部分來生成相應的~位中間值,其中1 = 了柳并且了 ? 1以及~和了是整數;
      [0008](^)執(zhí)行一個或多個~位第二級加法,每個第二級加法都用于通過加上舍入值和表示前面的第一級加法的進位輸出的進位值,來將由對應第一級加法所生成的所述~位中間值轉換成所述X位結果數據元的~位舍入的結果部分,所述前面的第一級加法用于相較所述對應第一級加法加上較不有效的所述對應胃位數據元的~位部分
      [0009](0)從由所述一個或多個~位第二級加法中的至少一個所生成的~位結果部分形成所述X位結果數據元。
      [0010]縮小和舍入算術運算通過加上或者減去對應I位值并且將結果舍入到X位值來生成結果值,其中1?父。實現(xiàn)這種運算的一個方式可能是執(zhí)行I位加法或減法并且然后執(zhí)行X位加法以將舍入值加到I位加法或減法的結果的高X位。然而,I可以是大的(例如32或64),并且甚至針對I的相對低的值(例如16),執(zhí)行I位加法可能花費很長時間,因為直到前面的位已被計算并且已確定了是否存在來自前面的位的進位為止才能夠計算加法的每個連續(xù)位。當進位可以從最低有效位到最高有效位一直行波傳送時,執(zhí)行I位加法可能花費很長時間。因此,縮小和舍入算術運算的這種實施方式將是緩慢的。
      [0011]為了解決這個問題,本技術將I位加法分解成許多~位第一級加法,所述~位第一級加法都通過加上或者減去兩個操作數的對應I位數據元的X位部分來生成相應的X位中間值。如果I位加法被執(zhí)行則將會在和的相應的~位部分之間傳遞的進位值在第一級加法中未被相加。這意味著能夠與彼此并行執(zhí)行相應的~位第一級加法,因為在執(zhí)行另一第一級加法之前沒有必要等待第一級加法中之一的進位輸出。因此,能夠更迅速地執(zhí)行縮小和舍入算術運算。因為相應的~位第一級加法之間的進位位未通過第一級加法被相加,所以~位中間值不表示對應I位數據元的真實和或差的部分。然而,本發(fā)明人認識到了這不是問題,因為將~位和或差舍入到X位值可以通過加上舍入值來執(zhí)行,所以加法的第二級針對舍入來說可能已經是需要的。能夠在至少一個~位第二級加法中與舍入值同時加上來自第一級加法的任何進位值。每個第二級加法都可以將來自對應第一級加法的~位中間值加到舍入值和表示前面的~位第一級加法的進位輸出的進位值。然后能夠從由一個或多個第二級加法所生成的~位結果部分形成X位結果數據元。以這種方式,能夠減少通過用于執(zhí)行縮小和舍入算術運算的處理電路的關鍵定時路徑。即便當I是大的(例如32或64位)時,加法也仍然能夠使用許多~位第一和第二級加法(例如,其中^ = 8)來執(zhí)行,從而允許增加的并行性并且因此減少用于執(zhí)行該運算所需要的時間。
      [0012]通過將I位運算分解成許多~位塊所提供的性能改進可以允許處理電路在單個處理周期中執(zhí)行縮小和舍入算術運算。相比之下,如果已執(zhí)行了全I位加法則這無法一直是可能的。
      [0013]一般而言,輸入數據元尺寸I可以是大于輸出數據元尺寸X的任何值。然而,在實踐中數據元尺寸I將常常是二的冪〈8、16、32、64等),并且I將典型地是~的兩倍的冪(即了 = 22,其中2彡1〉。
      [0014]并且,X可以具有小于I的任何值。如果X也是~的倍數則運算的實施方式可能是更高效的。常常,結果將被舍入到為原始數據元的尺寸一半的數據元,即^ = 1/2.處理電路的一些示例也許能舍入到任意尺寸的結果數據元,然而其它形式的處理電路可能被限制于僅舍入到特定尺寸,例如1/2位數據元。
      [0015]縮小和舍入算術運算可以具有不同的形式,包括縮小和舍入加法指令和縮小和舍入減法指令。響應于加法指令控制電路可以控制第一級加法加上對應I位數據元的~位部分,以及響應于減法指令可以在第一級加法處減去~位部分。
      [0016]在以與將針對縮小和舍入加法指令的情況確切地相同的方式對二的補碼和另一個評位數據元執(zhí)行縮小和舍入加法運算之前,實現(xiàn)縮小和舍入減法運算的一個方式可能將形成I位數據元中之一的二的補碼。二的補碼可以通過反轉I位數據元的所有位并且加上1來形成。然而,如果在第一級加法之前生成二的補碼,則這需要將增加執(zhí)行運算所需要的時間的額外的加法。因此,實施縮小和舍入減法指令的一個更高效方式可能是控制處理電路執(zhí)行~位第一級加法,其中每個第一級加法都將~位部分中的一個加到通過反轉~位部分中的另一個、以及然后控制第一級加法或第二級加法遞增其輸出所獲得的反轉的~位部分,這對于縮小和舍入加法指令將不發(fā)生。遞增第一或第二級加法中的一個的輸出同時執(zhí)行縮小和舍入算術運算實現(xiàn)與如果1在執(zhí)行縮小和舍入算術運算之前被加到經反轉的~位部分相同的效果。將這種遞增與第一或第二級加法中的一個組合節(jié)省一個加法周期。因此,除了輸入值中的一個被反轉并且確切的遞增在~位加法中的一個處被相加,可以以幾乎與縮小和舍入加法指令相同的方式實現(xiàn)縮小和舍入減法指令。
      [0017]縮小和舍入算術運算可以被應用于每個都具有僅一個I位數據元的兩個操作數。然而,還可以在支持被應用于具有多個數據元的操作數的單指令多數據(310)運算的系統(tǒng)中使用縮小和舍入算術運算。例如,64位操作數可以支持四個16位數據元、兩個32位數據元或一個64位數據元,其中處理的并行通道被應用于每個數據元。因此,如果縮小和舍入算術指令標識兩個操作數每個都具有多個I位數據元,則控制電路可以控制處理電路并行生成結果值的多個X位結果數據元。對于處理的每個通道,可以執(zhí)行所述多個~位第一級加法和至少一個~位第二級加法來產生對應的X位結果數據元。處理電路然后可以從由處理的每個通道中的加法所生成的X位結果數據元形成結果值。
      [0018]控制電路可以根據縮小和舍入算術運算的可變參數來選擇數據元的數目和數據元的數據元尺寸I。例如,指令可以包括標識數據元尺寸I的字段,并且可以從這個推導出數據元的數目,或者反之亦然。
      [0019]處理電路可以包括多個則立第一加法單元和多個則立第二加法單元。控制電路可以根據縮小和舍入算術指令的可變參數(諸如控制數據元的數據元尺寸或數目的一個)來控制使用哪些第一加法單元和哪些第二加法單元來生成每個X位結果數據元。例如,對于每個相應的數據元尺寸,可以存在提供一個或多個處理通道以用于處理兩個輸入操作數的相應的數據元的^位加法單元的對應配置。
      [0020]對于每個X位結果數據元,處理電路可以執(zhí)行1/?第一級操作和與第一級加法的靡相對應的靡第二級加法。典型地,靡第二級加法將對應于加上原始I位數據元的靡最高有效部分的第一級加法。然后能夠從由靡第二級加法所生成的~位結果部分形成X位結果數據元。每個第一或第二級加法可以由相應的~位加法單元來執(zhí)行。因為電路可以支持不同的數據元尺寸,所以對于特定的縮小和舍入算術運算可能不需要所有加法單元。特別地,可以存在不對X位結果作出貢獻的一些第二加法單元??梢允惯@樣的第二加法單元閑置以節(jié)省能量。替換地,從控制觀點看每個第二加法單元即使其輸出將不被用來形成X位結果數據元,可無論如何執(zhí)行加法可能是較簡單的。
      [0021〕 每個I位數據元都可以包括I位[1-1:0]并且每個X位結果數據元可以包括X位^-1:0]。記號0:8]表示從在位位置I?處的最高有效位擴展到在位位置3處的最低有效位的一組位。針對給定處理通道的1/?第一級加法和靡第二級加法可以被執(zhí)行使得:
      [0022]所述1/?第一級加法的第1個第一級加法加上所述對應I位數據元的位〔計~-1:£1]以生成第1個?位中間值,其中0彡1彡(1/^-1)并且£1 = 1*1以及
      [0023]所述乂州第二級加法的第』個第二級加法將第』個^位中間值加到舍入值和表示第0-1)個第一級加法的進位輸出的進位值以生成包括X位結果數據元的位^+^-1:0]的?位結果部分,其中(14)/?彡』彡1/^-1并且0 =』柳。
      [0024]在這里,計數值1和』通過針對應用于兩個操作數的對應I位數據元的處理的單個通道所執(zhí)行的加法進行計數以生成結果值的對應結果~位數據元。如果兩個操作數據每個都具有一個以上的數據元,則將針對每對I位數據元重復這些加法。因此,對于處理的每個通道,1和』將計數直到1/^-1并且然后對于下一個通道再一次在0處開始。
      [0025]如上面所討論的那樣,第一級加法被分解成~位塊并且進位在相應的第一級加法之前未被傳遞以及替代地在第二級處被相加。這允許~位第一級加法被并行執(zhí)行以加速運算。然而,仍然可能花費一些時間來確定~位第一級加法中的一些的進位值,因為較高的第一級加法的進位仍然取決于較低的第一級加法的結果。如果進位通過從值的最低有效端到最高有效端一直行波傳送進位而被確定,則這可能花費很長時間,使得難以在單個處理周期中執(zhí)行縮小和舍入運算。針對至少一個第二級加法,所述進位網絡包括用于提供較早的第一級加法的進位輸出作為所述進位值的進位轉發(fā)路徑,所述較早的第一級加法用于相較所述前面的第一級加法加上較不有效的所述對應I位數據元的~位部分。
      [0026]因此,為了加速進位確定,處理裝置可以具有被配置為確定在第二級加法處要被相加的進位值。對于至少一個第二級加法,進位網絡可以具有用于提供較早的第一級加法的進位輸出作為所述進位值的進位轉發(fā)路徑(較早的第一級加法用于相較所述前面的第一級加法加上較不有效的所述對應胃位數據元的~位部分)。進位轉發(fā)路徑允許進位值繞過前面的第一級加法,以便進位沒有必要通過前面的第一級加法一直被行波傳送。這減少進位傳播延遲。因此,雖然在第二級加法處相加的進位值表示前面的第一級加法的進位輸出,但是它不必是前面的第一級加法的實際進位輸出,因為該進位值替代地可以使用進位網絡來預測。
      [0027]進位網絡可以具有為至少一個第二級加法選擇是否將前面的第一級加法的進位輸出或在進位轉發(fā)路徑上正被轉發(fā)的較早的第一級加法的進位輸出作為進位輸入值來提供的選擇電路。進位網絡可以做出前面的第一級加法的進位輸出是否被預期取決于第一級加法的進位輸出并且具有與第一級加法的進位輸出相同的值的預測。如果是這樣的話,貝0較早的第一級加法的進位輸出能夠被轉發(fā)到第二級加法,然而否則可以選擇前面的第一級加法的進位輸出。例如,如果由前面的第一級加法所加上的值的和全部具有等于一的位值(這能夠通過執(zhí)行正被相加的值的異或來確定),則前面的第一級加法的進位輸出將取決于較早的第一級加法的進位輸出,并且具有與較早的第一級加法的進位輸出相同的值。如果所有和位值都是一,則前面的第一級加法的任何進位輸入將引起同一位值的進位輸出,所以能夠通過將較早的第一級加法的進位輸出直接地轉發(fā)到第二級加法而不用通過前面的第一級加法一直行波傳送進位來節(jié)省時間。
      [0028]通過對于在同一 I位處理通道內的每個連續(xù)第一級加法執(zhí)行類似的進位預測,能夠基于與彼此并行執(zhí)行的許多~位加法來預測第一級加法的進位輸出而無需來自一個第一級加法的進位輸出被輸入到另一第一級加法。進位值能夠被轉發(fā)使得它們繞過若干加法單元。這意味著通過處理電路的關鍵路徑能夠被減少到一個~位第一級加法和一個~位第二級加法,其中必要時多個第一或第二級加法被與彼此并行執(zhí)行。因此,進位網絡使得運算能夠被加速并且減少用于執(zhí)行縮小和舍入算術運算所需要的時間。
      [0029]可以以各種方式生成舍入值。一般而言,舍入值可以被生成使得它具有使X位結果數據元相當于與對應于對應I位數據元的和或差的I位值最近的X位值(這個I位值實際上不是由處理電路計算的)。如果和或差幾乎位于兩個X位數據值之間,則各種舍入方案可以被用來確定是向上舍入還是向下舍入。例如,相持總是能夠被向上舍入,或者能夠被舍入遠離零,或者能夠視需要而定被舍入到最近的奇數或偶數值。
      [0030]為了舍入到最近的X位值,在相持被向上舍入情況下,實現(xiàn)此的簡單方式是加上具有與在最近的X位值(被稱為“最高有效位排除位”)中不具有對應有效位的位的I位值和或差的最高有效位相同的位值的舍入值。如果加上或者減去兩個I位數據元將產生I位和或差值〔胃-1:0],則最高有效排除位將是位[胃-父-1〕。雖然評位和值或差值因為評位加法被實際上分解成若干~位第一級加法而實際上未被生成,但是如果I位加法被實際上執(zhí)行則處理電路能夠確定最高有效排除位的值將是什么,并且相應地設置舍入位。
      [0031]對于每個處理通道,在該通道中用于最低有效第二級加法的舍入位可以基于前面的第一級加法的結果而被確定。額外的第二級加法將有可能被執(zhí)行以用于加上這些第一級加法的N位中間值和進位輸出,以便能夠確定和或差的最高有效排除位的值。然而,這可能增加處理時間,因為它可能需要進位通過若干第二級加法器被行波傳送以確定最高有效排除位將是I還是O。因此,為了加速事情的進展,可以根據第一級加法的中間值和進位輸出直接地確定舍入值,所述第一級加法加上與最低有效第二級加法相對應的相較第一級加法較不有效的N位部分。這避免了對于沿著第二級加法的進位輸出到進位輸入路徑的任何需要,從而允許運算被更迅速地執(zhí)行。
      [0032]如果X大于N則可能在同一處理通道內需要多個第二級運算。對于用于生成比最低有效端位部分更有效的X位結果數據元的N位部分的更有效的第二級加法,人們可能認為沒有必要加上舍入值(通常,舍入值將僅在結果值的最低有效端處被相加并且然后進位可以行波傳送到結果值的更有效的端)。然而,在這種情況下第二級加法將有效地是具有多于N個位的相加值,并且進位將使處理時間增加。為了改進性能,第二級加法被分成N位部分。更有效的第二級加法的舍入值用表示在最低有效第二級加法處加上的舍入值是否將使進位傳遍到如果舍入值未被最低有效第二級加法加上則將不會發(fā)生的更有效的第二級加法來生成。因此,處理電路可以確定這樣的進位是否將發(fā)生,以及如果發(fā)生則可以相應地為第二級加法的更有效的N位塊設置舍入值。用于更有效的第二級加法的舍入值可以基于至少一個第一級加法的中間值和進位輸出被直接地確定,而不用實際上將進位從最低有效第二級加法傳播到更有效的第二級加法。消除沿著第二級加法的這些進位輸出到進位輸入路徑使得性能能夠被改進。
      [0033]從另一方面看,本發(fā)明提供了一種數據處理裝置,其包括:
      [0034]處理裝置,其用于處理數據;以及
      [0035]控制裝置,其用于控制所述處理裝置響應于標識每個都包括至少一個W位數據元的兩個操作數的縮小和舍入算術指令來執(zhí)行縮小和舍入算術運算,所述縮小和舍入算術運算生成包括至少一個X位結果數據元的結果值,每個X位結果數據元表示舍入到X位值的所述兩個操作數的對應W位數據元的和或差,其中W和X是整數并且W > X ;
      [0036]其中所述控制裝置被配置為控制所述處理裝置通過以下各項來生成所述結果值的每個X位結果數據元:
      [0037](a)執(zhí)行多個N位第一級加法以通過加上或者減去所述對應W位數據元的N位部分來生成相應的N位中間值,其中W = J*N并且J > I以及N和J是整數;
      [0038](b)執(zhí)行一個或多個N位第二級加法,每個第二級加法都用于通過加上舍入值和表示前面的第一級加法的進位輸出的進位值以便加上相較所述對應第一級加法較不有效的所述W位數據元的N位部分來將由對應第一級加法所生成的所述N位中間值轉換成所述X位結果數據元的N位舍入的結果部分;以及
      [0039](c)從由所述一個或多個N位第二級加法中的至少一個所生成的N位結果部分形成所述X位結果數據元。
      [0040]從另一個方面看,本發(fā)明提供了一種用于數據處理裝置的數據處理方法,包括:
      [0041]響應于標識每個都包括至少一個W位數據元的兩個操作數的縮小和舍入算術指令,執(zhí)行縮小和舍入運算以生成包括至少一個X位結果數據元的結果值,每個X位結果數據元都表示舍入到X位值的所述兩個操作數的對應W位數據元的和或差,其中W和X是整數并且w>x;
      [0042]其中每個X位結果數據元都通過以下各項來生成:
      [0043](a)執(zhí)行多個N位第一級加法以通過加上或者減去所述對應W位數據元的N位部分來生成相應的N位中間值,其中W = J*N并且J > I以及并且N和J是整數;
      [0044](b)執(zhí)行一個或多個N位第二級加法,每個第二級加法都用于通過加上舍入值和表示前面的第一級加法的進位輸出的進位值以便加上相較所述對應第一級加法較不有效的所述W位數據元的N位部分來將由對應第一級加法所生成的所述N位中間值轉換成所述X位結果數據元的N位舍入的結果部分;以及
      [0045](c)從由所述一個或多個N位第二級加法中的至少一個所生成的N位結果部分形成所述X位結果數據元。
      [0046]本發(fā)明的上述內容和其它目的、特征以及優(yōu)點根據將結合附圖一起閱讀的說明性實施例的以下具體描述將是顯而易見的。

      【專利附圖】

      【附圖說明】
      [0047]圖1示意性地圖示了數據處理裝置的一部分;
      [0048]圖2示意性地圖示了縮小和舍入算術運算;
      [0049]圖3圖示了縮小和舍入算術運算的潛在實施方式;
      [0050]圖4圖示了其中來自第一級加法的進位值在第二級加法處被輸入以用于舍入的縮小和舍入算術運算的實施方式;
      [0051]圖5圖示了用于對兩對16位數據元上執(zhí)行并行縮小和舍入算術運算的電路;
      [0052]圖6圖示了對一對32位數據元所執(zhí)行的縮小和舍入算術運算的潛在實施方式;
      [0053]圖7圖示了用于對兩對16位數據元或一對32位數據元執(zhí)行縮小和舍入算術運算的處理電路的一部分;
      [0054]圖8圖示了用于對四對16位數據元、兩對32位數據元或一對64位數據元執(zhí)行縮小和舍入運算的電路;以及
      [0055]圖9示出了執(zhí)行縮小和舍入算術運算的方法。

      【具體實施方式】
      [0056]圖1示意性地圖示了用于處理數據的數據處理裝置2的一部分。裝置2具有處理器4,所述處理器4包括用于對包括一個或多個數據元的操作數執(zhí)行SMD處理運算的單指令多數據(SMD)處理單元6。SMD指令解碼器8被提供用于對SMD指令進行解碼并且控制SMD處理單元6響應于指令來執(zhí)行SMD運算。在一個示例中,SMD解碼器8可以是同樣對非SMD指令進行解碼以便執(zhí)行非SMD運算的組合式解碼器。替換地,能夠提供單獨的非SMD解碼器。裝置2同樣具有用于存儲數據值的寄存器10。響應于指令,處理電路4可以從寄存器10讀取要被處理的操作數并且可以將結果值存儲到寄存器10。將了解的是,裝置2還可以包括為了簡潔目的在圖1中未被圖示的許多其它組件。
      [0057]圖2示意性地圖示了對每個都包括四個數據元a0-a3、b0_b3的兩個操作數所執(zhí)行的縮小和舍入算術運算。每個數據元都具有W個位。在縮小和舍入算術運算中,操作數a、b的對應數據元被相加或者相減以在中間數據值C的每個數據元中產生和或差值a±b。中間值c的每個數據元然后被舍入到結果值d中的X位值。最后,在值d的每個數據元內的X位部分被集合在一起并且放入第二結果值e的相鄰部分。在圖2中從d到e的集合步驟是可選的,并且在其它示例中,縮小和舍入算術運算的結果可以是結果值d。
      [0058]圖2示出了針對縮小和舍入算術運算的數學運算。在實踐中,處理電路4無法實際上執(zhí)行這些確切的數學運算,并且以其它方式生成相同的結果值d或e可能是更高效的。圖3示出了用于對單對16位元執(zhí)行縮小和舍入算術運算的電路的示例。圖3的電路可以對應于圖2中所示的處理通道之一中的處理。如圖3所示,16位加法器20可以加上或者減去兩個16位數據元a[15:0]和b[15:0]。如果縮小和舍入減法將被執(zhí)行,則b輸入被反轉并且被連接到16位加法器20的進位輸入的值sub被設置為I以便有效地形成操作數b的二的補碼。對于加法,sub被設置為O。不管a和b將被相加還是相減,加法器20輸出16位值s[15:0]。第二 8位加法器22然后取第一和的高8位s[15:8]并且加上與第一加法器20的輸出的已排除部分的最高有效位相對應的舍入值s [7]。舍入值和16位和的非排除部分s [15:8]的和然后作為8位舍入的結果值r [7:0]被輸出。
      [0059]因此,在圖3中縮小和舍入運算使用與圖2中所示相同的數學運算來執(zhí)行。然而,使用加法器20執(zhí)行16位加法是緩慢的,因為如果需要從前面的位傳播進位,加法的每個連續(xù)位在被相加之前都必須等待將可用的前面的位的結果。因此,圖3中所示的電路具有24個位的有效關鍵路徑,因為16位加法必須首先被加法器20執(zhí)行,并且然后一旦16位加法完成了另一 8位加法就需要被加法器22執(zhí)行。
      [0060]圖3中所示的電路能夠通過觀察到初始16位加法器20能夠被分解成如圖4中所示的兩個8位第一級加法器30-0、30-1來加速。這意味著表示為S,[15:8]的初始和的高8位在與低8位s[7:0]同時是可用的。然而,下部加法器30-0的進位輸出位c[8]仍然尚未被加到高8位s’ [15:8]中所以中間值s’ [15:8]不表示a[15:0]和b[15:0]的真實和的高8位。然而,這不是問題,因為舍入加法仍然需要被8位加法器32執(zhí)行,并且能夠使用加法器32與舍入值s [7]同時加上進位位c [8]。因此,第二級加法器32加上中間值s’ [15:8]、舍入值s[7]以及進位值c[8]以形成最后舍入的結果r[7:0]。因此,關鍵路徑被從24個位減少到16個位,因為第一級加法已被分解成被與彼此并行執(zhí)行的兩個8位塊30-0、30-1,所以關鍵路徑是一個8位第一級加法和一個8位第二級加法。通過在第二級而不是第一級處加上進位位,能夠減少總體處理時間。
      [0061]如圖5所示,圖4中所示的電路能夠被復制以便能夠對兩對16位數據元并行執(zhí)行縮小和舍入運法以生成具有兩個8位數據元的結果值。在處理的每個通道內,運算是與圖4中所示相同的。
      [0062]如圖6所示,可以對一對32位數據元執(zhí)行縮小和舍入算術運算以生成16位結果數據元。除了每個8位加法器都已被用16位加法器代替圖6與圖4類似(其中每個16位加法器都由兩個8位加法器形成,其中一個8位加法器的進位輸出端被連接到另一個8位加法器的進位輸入端)。然而,這意味著關鍵路徑橫跨兩個16位加法器(或四個8位加法器),這是冗長的并且可能意味著不能夠在單個處理周期中執(zhí)行運算。
      [0063]因此,32位縮小和舍入運算能夠通過提供如圖7中所示的電路來加速。圖7中所示的SMD處理單元6的部分能夠被用來對兩對16位數據元a[31:16]、b[31:16]和a[15:O]、b[15:0]或一對32位數據元a[31:0]、b[31:0]執(zhí)行舍入和縮小算術運算??刂菩盘杗rw8控制數據元尺寸并且基于標識數據元尺寸的縮小和舍入算術指令的參數被設置。當數據元尺寸W = 16(即16位至8位縮小)時,那么控制信號nrw8被設置為1,以及當W =32 (即32位至16位縮小)時,那么控制信號nrw8被設置為O。
      [0064]如圖7所示,SIMD處理單元6具有每個都加上輸入操作數a、b的對應8位部分以產生相應的8位中間值s[31:24]、s[23:14]、s[15:8]、s[7:0]的四個第一級加法單元30-0至30-3。提供了若干8位第二級加法器32-1至32-3。每個第二級加法器32_j都加上由對應第一級加法器30-j所生成的中間值S、舍入值rnd[j]以及表示前面的加法單元30-(j-l)的進位輸出co[j]的進位值ci [j],以便生成N位結果部分r,其中j = 1、2或3。當nrw8是I (16位至8位縮小)時,那么結果值是從由第二級加法單元32_3、32_1所輸出的8位結果部分r[31:24]、r[15:8]形成的。當nrw8是O (32位至16位縮小)時,那么結果值是從由第二級加法單元32-3、32-2所輸出的結果部分r[31:24]、r[23:16]形成的。
      [0065]乘法器38控制是否基于控制信號nrw8執(zhí)行16位或32位縮小。如果nrw8等于I (16位至8位縮小),則在第二級加法器32-2的進位輸入端處輸入sub值,以便如果減法被執(zhí)行(sub = I)則結果將被遞增以反映操作數之一的二的補碼,如以上針對圖3所討論的那樣。另一個處理通道的sub輸入在第一級加法器30-0處被相加。因此,值sub能夠在第一級或第二級處被相加。另一方面當控制信號nrw8是O (32位至16位縮小)時,那么能夠在第二級加法器32-2的進位輸入端ci [2]處輸入進位值。因此,乘法器38控制SMD處理電路6是否當作一個32位處理通道或兩個獨立的16位處理通道。
      [0066]圖7中所示的SMD處理電路6具有包括進位轉發(fā)路徑40_1、40_2和選擇電路42-1,42-2的進位網絡。進位網絡用于通過預測第一級加法器30-1、30-2的進位輸出Co[2],Co[3]的值來使處理加速,而無需進位在實際上從下部第一級加法器被行波傳送。最低有效第一級加法單元30-0的進位輸出Co [I]被直接地作為進入輸入ci [I]輸入到最低第二級加法單元32-1。加法單元30-0的進位輸出Co [I]同樣經由轉發(fā)路徑40-1被轉發(fā)到下一最高第二級加法單元32-2。選擇電路42-1選擇下一最高第二級加法器32-2的進位輸入ci [2]是否應該等于在轉發(fā)路徑40-1上接收到的第一級加法器30-0的進位輸出Co [I],或下一第一級加法單元30-1的進位輸出Co [2]。選擇電路42-1從第一加法單元30-1接收指示由加法器30-1所產生的所有8個輸出和位s[15:8]是否將是高的傳播信號P[2]。能夠在和值s[15:8]它本身實際上是可用的之前生成傳播信號p[2]。例如,能夠使用與加法器30-1相關聯(lián)的異或電路對a[15:8]和b[15:8]執(zhí)行異或(XOR)運算,并且如果異或運算的結果使它所有位等于I則P[2]可以等于1,否則p[2]可以等于O。如果p[2]等于1,則這意味著如果進位被輸入到第一加法單元30-1,則其進位輸出co[2]將具有與進位輸入相同的值。因此,能夠根據前面的第一級加法單元30-0的進位輸出Co [I]來預測co[2]的值。因此,當P [2]等于I時,那么前面的進位輸出Co [I]被轉發(fā)到第二級加法單元32-2并且沒有必要等待下一第一級加法單元30-1的進位輸出co[2]被生成。選擇電路42-1包括與門43和或門44。與門43只有當傳播位p[2]的值是I才轉發(fā)進位輸出co[l]。或門44傳遞加法器30-1的進位輸出Co[2]或與門43的輸出。因此,進位網絡允許第二級加法器32-2的進位輸入ci [2]基于由第一級加法器30-0、30-1所執(zhí)行的8位加法的結果被確定,而無需在這些加法器之間傳遞進位。類似地,第一級加法器30-2以與加法器30-1相同的方式生成傳播位P [3],并且選擇電路42-2基于P [3]來確定第二級加法器32-3的進位輸入ci [3]應該是第一級加法器30-2的進位輸出Co [3]還是經由轉發(fā)路徑40-2所轉發(fā)的較早的進位Co [I]或Co [2]。
      [0067]進位網絡因此生成如下的進位值Ci [I]至Ci [3]:
      [0068]# ci [I] =co [I]
      [0069]# ci [2] = nrw8&sub ! nrw8&co[2] ! nrw8&p[2]&co[I]
      [0070]# ci [3] = co [3] I p [3]&ci [2]。
      [0071](其中&指邏輯與,I指邏輯或,以及!nrw8指nrw8的反-即如果nrw8 = O則!nrw8 = I 以及如果 nrw8 = I 則! nrw8 = O)。
      [0072]第二級加法器32-1至32-3的舍入值rnd[n]被確定如下:
      [0073]# rnd[l] = nrw8&r[7]
      [0074]# rnd[2] = ! nrw8&r [15]
      [0075]# rnd[3] = nrw8&r [23] | ! nrw8&r [15]&((s [23: 17] = = 7,h7f)&(ci [2]X0Rs[16])
      [0076]對于rnd[3],以上的表達能夠被理解如下:
      [0077]“如果將s[31:16]+ci[2]縮小至r[31:24],則如果r [23]是高則設置rnd[3]為聞;
      [0078]否則,如果將s[31:0]縮小至r[31:16],則考慮到當s [23:16]+ci[2]引起進位的情況已經被進位加速網絡覆蓋時,只有當rnd[2]引起進位輸出進入位部分r [24]中才設置rnd[3]為高”。
      [0079]有效地,對于16位或32位縮小,在每個處理通道內的最低有效第二級加法器具有與最高有效排除位的值相對應的舍入位(對于16位至8位縮小來說為r[7],以及對于32位至16位縮小來說為r[15])。在32位縮小的情況下,存在接收舍入值的更有效的第二級加法32-3,所述舍入值表示在最低有效第二級加法32-2處輸入的舍入值rnd[2]是否將使進位向前行波傳送到更有效的第二級加法器32-3,如果該舍入值尚未被輸入則這將不會發(fā)生。這由以上的rnd[3]來表示。
      [0080]如上所示,舍入值rnd[l]至rnd[3]取決于由第二級加法器32_1、32_2所生成的位r[15]、r[23]的值。在用第二級加法器32_2、32_3執(zhí)行后續(xù)加法之前等待這些位變得可用將使處理延遲,這是不期望的。因此,能夠通過預測由第一級加法器30根據以下表達式所生成的基于中間值s和進位輸出co的r[15]和r[23]的值來進一步加速處理:
      [0081]r[15] = s[15]X0R((s[14:8] = = 7,h7f)&co[I])
      [0082]r[23] = s [23]XOR((s [22:16] = = 7’ h7f)&ci [2]),
      [0083]其中如果s[14:8]或s[22:16]的所有位都是1,則(s[14:8] = = 7,h7f)和(s[22:16] ==7’ h7f)等于 I。
      [0084]這允許所有舍入值rnd基于第一級加法的結果被確定,而在第一級或第二級處的8位加法器之間無需任何進位輸出到進位輸入路徑。這允許合成引擎來優(yōu)化處理邏輯以實現(xiàn)最高性能。因此,用于32位至16位舍入和16位至8位舍入兩者的通過圖7中所示的電路的關鍵定時路徑對應于通過兩個8位加法器和很少附加的進位轉發(fā)電路的路徑,這比圖6中少得多。
      [0085]圖8示出了其中支持64位至32位縮小和舍入算術運算的另一個實施例。SMD處理電路6接收每個都可以包括四個16位數據元、兩個32位數據元或一個64位數據元的兩個64位操作數a[63:0]、b[63:0]。兩個控制信號sell、sel2被用來選擇縮小的相應類型。在圖8底部處的表示出了針對每個類型的縮小的控制信號sell、sel2的值,以及最后的結果值n[31:0]如何從第二級加法器32的輸出形成。因此,存在由SMD處理單元6所支持的若干不同的數據元配置。若干乘法器38被提供用于控制加法單元30、32是在相同的處理通道內處理不同的部分還是在不同的處理通道中對不同的數據元進行操作。sub值在使用加法器30-0、32-3、32-4、32-6中的一個或多個(取決于數據元尺寸)的每個處理通道的下端處被輸入。
      [0086]此外,處理單元具有包括轉發(fā)路徑40-1至40-6和選擇電路42_1至42_6以用于加速確定要被輸入到第二級加法器32-2至32-7的進位值ci [2]至ci [7]的進位網絡。在圖8中,選擇電路42-3、42-5、42-6中的一些比在圖7中更復雜,因為一些轉換路徑中允許進位值跳過若干加法單元,所以確定這是否是可能的需要中間傳播位P [η]中的每一個都等于I。選擇電路42和乘法器38共同提供用于根據以下邏輯表達式為每個第二級加法單元32確定進位輸入的電路:
      [0087]# ci [I] =co [I]
      [0088]# ci [2] = ! sell&sub I sell&(co [2] IP [2]&co [I]).
      [0089]# ci [3] = co [3] I p [3]&ci [2]
      [0090]# ci [4] = ! sel2&sub | sel 1& (co [4] | p [4] &co [3] | p [4] &p [3] &ci [2])
      [0091]# ci [5] = co [5] I p [5]&ci [4]
      [0092]# ci [6] = ! sell&sub I sell&(co[6] |p[6]&co[5] |p[6]&p[5]&ci [4])
      [0093]# ci [7] = co [7] sell&p [7]&(co [6] p[6]&co[5])
      [0094]! sell&p [7]&sub I sell&p [7]&p [6]&p [5]&ci [4]。
      [0095]如果初始縮小的結果將被遞增則被設置為高的舍入值rnd[l]至rnd[7]根據以下表達式被確定:
      [0096]# rnd[l] = nrw8&r[7]
      [0097]# rnd[2] = nrwl6&r[15]
      [0098]# rnd[3] = nrw8&r[23] |nrwl6&r[15]&((s[23:17] = = 7,h7f)&(ci [2]X0Rs[16]))
      [0099]# rnd[4] = nrw32&r[31]
      [0100]# rnd[5] = nrw8&r[39] |nrw32&r[31]&((s[39:33] = = 7,h7f)&(ci [4]X0Rs [32]))
      [0101]# rnd[6] = nrwl6&r [47]
      [0102]nrw32&r[31]&((s[39:33] == 7,h7f)&(ci [4]X0R s[32]))&
      [0103]((s[47:41] == 7’ h7f)&(ci [5]X0R s[40]))
      [0104]# rnd[7] = nrw8&r[55]
      [0105]nrwl6&r[47]&((s[55:49] == 7’ h7f)&(ci [6]X0R s[48]))
      [0106]nrw32&r[31]&((s[39:33] == 7,h7f)&(ci [4]X0R s[32]))&
      [0107]((s[47:41] == 7,h7f)&(ci [5]X0R s[40]))&
      [0108]((s[55:49] = = 7,h7f)&(ci [6]X0R s[48])),
      [0109]其中nrw8 = ! sel2& ! sell, nrwl6 = ! sel2&sell,以及 nrw32 = sel2&sell分別表示用于“縮小至8個位”(nrw8)、“縮小至16個位”(nrwl6)以及“縮小至32個位”(nrw32)的控制信號sell、sel2的不同組合,
      [0110]并且對于η = {15,23,31,39,47,55,63},r[n]能夠被有利地替換如下:
      [0111].r[15] = s[15]X0R(s[14:8] == 7’ h7f)&ci[l]
      [0112].r[23] = s [23]XOR(s [22:16] = = 7,h7f)&ci [2]
      [0113].r[31] = s[31]X0R(s[30:24] = = 7,h7f)&ci [3]
      [0114].r[39] = s [39]X0R(s [38:32] = = 7,h7f)&ci [4]
      [0115]# r [47] = s [47]XOR(s [46:40] = = 7,h7f)&ci [5]
      [0116].r[55] = s [55]XOR(s [54:48] = = 7,h7f)&ci [6]
      [0117].r[63] = s [63]X0R(s [62:55] = = 7’h7f)&ci [7]。
      [0118]通過以這種方式為第二級加法32確定進位值ci [n]和舍入值rnd[n],即便當數據元尺寸和64位一樣大,這種方案也允許縮小和舍入加法和減法迅速地完成,其中關鍵路徑橫跨8位加法器加上一些重疊進位邏輯(即16位加法)中的僅2個。相比之下,如果全64位加法在后面是32位加法的第一級加法處被執(zhí)行以加上舍入值(如果圖3的技術被按比例擴大到64位則情況將是如此),則關鍵路徑將是96位的加法,這將是更緩慢的。通過將運算分解成能夠被與彼此并行執(zhí)行的8位塊,縮小和舍入加法或減法運算能夠被執(zhí)行得足夠快以在單個處理周期內進行擬合。
      [0119]這對于待在第一級處和在第二級處執(zhí)行的8位加法來說不是必要的。例如,能夠使用一些處理器仍然也許能在一個周期中執(zhí)行的16位加法來執(zhí)行64位至32位縮小。然而,一般而言如果使用了較小的加法器則性能改進將是最大的。最一般地,可以使用N位加法器對一個或多個W位數據元執(zhí)行縮小和舍入運算,其中N < W。
      [0120]類似地,對于已舍入結果來說具有原始W位數據元一半數目的位不是必要的。可以使用任意的結果數據元尺寸X,其中X < W。如果X是N的倍數以便結果是從一定數量的第二級加法器的全輸出形成的,則這可能是最方便的。例如,在圖8的加法器32-7、32-6的輸出r[63:48]被用來在最后的結果值n[16:0]中生成16位數據元的情況下能夠執(zhí)行64位至16位縮小。
      [0121]圖9示出了用于執(zhí)行縮小和舍入算術運算的方法。在步驟50處,確定了要被執(zhí)行的下一條指令是否是縮小和舍入算術指令。如果不是,則指令是另一類型的指令并且被相應地處理。當在步驟50處遇到縮小和舍入指令時,那么方法進行到步驟52,其中確定了該指令是縮小和舍入加法指令還是縮小和舍入減法指令。如果指令是縮小和舍入加法指令則在步驟54處處理電路的sub輸入被設置為0,然而如果指令是縮小和舍入減法指令則在步驟56處第二操作數b被反轉并且sub輸入被設置為I。
      [0122]在步驟58處,處理電路6使用N位第一級加法單元30來執(zhí)行N位第一級加法。取決于輸入操作數a、b中的數據元的數目,處理的一個或多個通道被執(zhí)行。每個數據元都具有W個位[W-1:0],所以W/N第一級加法在每個處理通道中被執(zhí)行。每個處理通道的第i個第一級加法加上對應W位數據元的位[a+N-1:a]以生成第i個N位中間值,其中
      (W/N-1)并且 a = i*N。
      [0123]在步驟60處,用于第二級加法32的進位值和舍入值使用以上針對圖7或8所示出的關系基于第一級加法30的結果來確定。在步驟62處,至少一個N位第二級加法由N位第二級加法單元32來執(zhí)行以生成N位結果部分r。在每個處理通道內,X/N第二級加法被執(zhí)行,其中X是要被包括在每個結果數據元中的位的數目。每個處理通道的第j個第二級加法將由第j個第一級加法所生成的第j個N位中間值加到表示第(j-Ι)個第一級加法的進位輸出的舍入值和進位值,以生成包括X位結果數據元的位[c+N-1:c]的N位結果部分,其中(W-X) /N ( j ( W/N-1 并且 c = j*N。
      [0124]在步驟64處,結果值是從第二級加法的N位結果部分形成的。SMD處理單元6可以將選擇的第二級加法器的輸出放入結果值的對應位部分(以生成與圖2中的結果d類似的結果值)。替換地,SMD處理單元6可以將所選擇的第二級加法器32的輸出集合在一起,以便它們被放入結果值(與圖2中的結果值e類似)的相鄰部分。在圖8的底部處的表示出了第二級加法器32的輸出如何能夠被映射到最后的結果值η的示例。
      [0125]因此,本技術提供了允許處理性能被改進的縮小和舍入算術運算的高效實施方式。
      [0126]盡管已經參考附圖在本文中詳細地描述了本發(fā)明的說明性實施例,但應當理解的是,本發(fā)明不限于那些精確的實施例,并且在不背離如由所附權利要求所限定的本發(fā)明的范圍和精神的情況下,可以由本領域的技術人員在其中實現(xiàn)各種改變和修改。
      【權利要求】
      1.一種數據處理裝置,包括: 處理電路,該處理電路被配置為處理數據;以及 控制電路,該控制電路被配置為控制所述處理電路響應于標識每個都包括至少一個W位數據元的兩個操作數的縮小和舍入算術指令來執(zhí)行縮小和舍入算術運算,所述縮小和舍入算術運算生成包括至少一個X位結果數據元的結果值,每個X位結果數據元都表示舍入到X位值的所述兩個操作數的對應W位數據元的和或差,其中W和X是整數并且W > X ; 其中所述控制電路被配置為控制所述處理電路通過以下各項來生成所述結果值的每個X位結果數據元: (a)執(zhí)行多個N位第一級加法以通過加上或者減去所述對應W位數據元的N位部分來生成相應的N位中間值,其中W = J*N并且J > I以及N和J是整數; (b)執(zhí)行一個或多個N位第二級加法,每個第二級加法都用于通過加上舍入值和表示前面的第一級加法的進位輸出的進位值,來將由對應第一級加法所生成的所述N位中間值轉換成所述X位結果數據元的N位舍入的結果部分,所述前面的第一級加法用于相較所述對應第一級加法加上較不有效的所述對應W位數據元的N位部分;以及 (c)從由所述一個或多個N位第二級加法中的至少一個所生成的所述N位結果部分形成所述X位結果數據元。
      2.如權利要求1所述的數據處理裝置,其中所述控制電路被配置為控制所述處理電路在單個處理循環(huán)中執(zhí)行所述縮小和舍入算術運算。
      3.如權利要求1所述的數據處理裝置,其中X= W/2。
      4.如權利要求1所述的數據處理裝置,其中所述縮小和舍入算術指令包括縮小和舍入加法指令和縮小和舍入減法指令; 響應于所述縮小和舍入加法指令,所述控制電路被配置為控制所述第一級加法加上所述對應W位數據元的所述N位部分;以及 響應于所述縮小和舍入減法指令,所述控制電路被配置為控制所述第一級加法減去所述對應W位數據元的所述N位部分。
      5.如權利要求4所述的數據處理裝置,其中響應于所述縮小和舍入減法指令,所述控制電路被配置為: (a)控制所述處理電路執(zhí)行所述多個第一級加法,其中每個第一級加法都將所述N位部分中的一個加到通過反轉所述N位部分中的另一個所獲得的反轉的N位部分;以及 (b)控制所述處理電路遞增所述多個第一級加法中的一個或所述一個或多個第二級加法中的一個的輸出。
      6.如權利要求1所述的數據處理裝置,其中響應于標識每個都包括多個W位數據元的所述兩個操作數的所述縮小和舍入算術指令,所述控制電路被配置為控制所述處理電路并行生成所述結果值的多個X位結果數據元。
      7.如權利要求6所述的數據處理裝置,其中所述控制電路被配置為根據所述縮小和舍入算術指令的可變參數來選擇數據元的數目和所述數據元的數據元尺寸W。
      8.如權利要求1所述的數據處理裝置,其中所述處理電路包括用于執(zhí)行所述N位第一級加法的多個N位第一級加法單元和用于執(zhí)行所述至少一個N位第二級加法的多個N位第二加法單元。
      9.如權利要求8所述的數據處理裝置,其中所述控制電路被配置為根據所述縮小和舍入算術指令的可變參數來控制用于生成每個X位結果數據元的第一加法單元和第二加法單元的選擇。
      10.如權利要求1所述的數據處理裝置,其中所述控制電路被配置為控制所述處理電路通過以下各項來生成所述結果值的每個X位結果數據元: (a)執(zhí)行W/N第一級加法; (b)執(zhí)行與所述W/N第一級加法的X/N第一級加法相對應的X/N第二級加法;以及 (c)從由所述X/N第二級加法所生成的N位結果部分形成所述X位結果數據元。
      11.如權利要求10所述的數據處理裝置,其中每個W位數據元都包括W個位[W-1:0]并且每個X位結果數據元都包括X個位[X-1:0];以及 所述W/N第一級加法的第i個第一級加法加上所述對應W位數據元的位[a+N-1:a]以生成第i個N位中間值,其中(W/N-1)并且a = i*N ; 所述X/N第二級加法的第j個第二級加法將第j個N位中間值加到舍入值和表示第(j-1)個第一級加法的進位輸出的進位值以生成包括所述X位結果數據元的位[c+N-1:c]的N位結果部分,其中(W-X)/N ( j ( W/N-1并且c = j*N。
      12.如權利要求1所述的數據處理裝置,包括被配置為確定所述進位值的進位網絡; 針對至少一個第二級加法,所述進位網絡包括用于提供較早的第一級加法的進位輸出作為所述進位值的進位轉發(fā)路徑,所述較早的第一級加法用于相較所述前面的第一級加法加上較不有效的所述對應W位數據元的N位部分。
      13.如權利要求12所述的數據處理裝置,其中所述進位網絡包括選擇電路,所述選擇電路被配置為:選擇是否提供所述前面的第一級加法的進位輸出或在所述進位轉發(fā)路徑上所轉發(fā)的所述較早的第一級加法的進位輸出作為所述進位值。
      14.如權利要求13所述的數據處理裝置,其中所述選擇電路被配置為:如果所述前面的第一級加法的所述進位輸出被預期取決于所述較早的第一級加法的所述進位輸出、并且具有與所述較早的第一級加法的所述進位輸出相同的值,則選擇所述較早的第一級加法的所述進位輸出,否則選擇所述前面的第一級加法的所述進位輸出。
      15.如權利要求1所述的數據處理裝置,其中針對用于生成所述X位結果數據元的最低有效N位部分的最低有效第二級加法,所述處理電路被配置為以用于將所述X位結果數據元舍入到與對應于所述對應W位數據元的所述和或差的W位值最近的X位值的值來生成所述舍入值。
      16.如權利要求15所述的數據處理裝置,其中所述處理電路被配置為以與所述W位值的最高有效排除位的值相對應的值來生成所述舍入值,所述最高有效排除位包括:在所述最近的X位值中不具有對應有效性的位的所述W位值的最高有效位。
      17.如權利要求15所述的數據處理裝置,其中所述處理電路被配置為:基于至少一個第一級加法的進位輸出和N位中間值中的至少一個為所述最低有效第二級加法,來確定所述舍入值,所述第一級加法用于相較與所述最低有效第二級加法相對應的所述對應第一級加法加上較不有效的所述對應W位數據元的N位部分。
      18.如權利要求15所述的數據處理裝置,其中針對用于生成比所述最低有效N位部分更有效的所述X位結果數據元的N位部分的更有效的第二級加法,所述處理電路被配置為:用表示由所述最低有效第二級加法所加上的舍入值是否將使進位傳到所述更有效的第二級加法的值來生成所述舍入值,如果所述舍入值未被所述最低有效第二級加法加上則上述操作將不會發(fā)生。
      19.如權利要求18所述的數據處理裝置,其中所述處理電路被配置為基于至少一個第一級加法的N位中間值和進位輸出中的至少一個為所述更有效的第二級加法確定所述舍入值,而不用實際上將所述進位從所述最低有效第二級加法傳播到所述更有效的第二級加法。
      20.一種數據處理裝置,包括: 處理裝置,該處理裝置用于處理數據;以及 控制裝置,該控制裝置用于控制所述處理裝置響應于標識每個都包括至少一個W位數據元的兩個操作數的縮小和舍入算術指令來執(zhí)行縮小和舍入算術運算,所述縮小和舍入算術運算生成包括至少一個X位結果數據元的結果值,每個X位結果數據元都表示舍入到X位值的所述兩個操作數的對應W位數據元的和或差,其中W和X是整數并且W > X ; 其中所述控制裝置被配置為控制所述處理裝置以通過以下各項來生成所述結果值的每個X位結果數據元: (a)執(zhí)行多個N位第一級加法以通過加上或者減去所述對應W位數據元的N位部分來生成相應的N位中間值,其中W = J*N并且J > I以及N和J是整數; (b)執(zhí)行一個或多個N位第二級加法,每個第二級加法都用于通過加上舍入值和表示前面的第一級加法的進位輸出的進位值來將由對應第一級加法所生成的所述N位中間值轉換成所述X位結果數據元的N位舍入的結果部分,所述前面的第一級加法用于相較所述對應第一級加法加上較不有效的所述對應W位數據元的N位部分;以及 (c)從由所述一個或多個N位第二級加法中的至少一個所生成的所述N位結果部分形成所述X位結果數據元。
      21.一種用于數據處理裝置的數據處理方法,包括: 響應于標識每個都包括至少一個W位數據元的兩個操作數的縮小和舍入算術指令,執(zhí)行縮小和舍入運算以生成包括至少一個X位結果數據元的結果值,每個X位結果數據元都表示舍入到X位值的所述兩個操作數的對應W位數據元的和或差,其中W和X是整數并且W > X ; 其中每個X位結果數據元都通過以下各項來生成: (a)執(zhí)行多個N位第一級加法以通過加上或者減去所述對應W位數據元的N位部分來生成相應的N位中間值,其中W = J*N并且J > I以及N和J是整數; (b)執(zhí)行一個或多個N位第二級加法,每個第二級加法都用于通過加上舍入值和表示前面的第一級加法的進位輸出的進位值來將由對應第一級加法所生成的所述N位中間值轉換成所述X位結果數據元的N位舍入的結果部分,所述前面的第一級加法用于相較所述對應第一級加法加上較不有效的所述W位數據元的N位部分;以及 (c)從由所述一個或多個N位第二級加法中的至少一個所生成的所述N位結果部分形成所述X位結果數據元。
      【文檔編號】G06F9/38GK104346134SQ201410320394
      【公開日】2015年2月11日 申請日期:2014年7月7日 優(yōu)先權日:2013年7月31日
      【發(fā)明者】內爾·伯吉斯, 大衛(wèi)·雷蒙德·魯茨 申請人:Arm 有限公司
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1