能夠支持加法和減法的加法器和支持加法和減法的方法
【專利摘要】公開一種能夠支持加法和減法的加法器和支持加法和減法的方法。在一個示例中,加法器支持最大n比特數(shù)據(jù)類型的減法運算,并且包括:多個第一加法區(qū)域,每個第一加法區(qū)域由預(yù)定單位數(shù)量的比特形成,并且被配置為接收多條輸入的操作數(shù)據(jù);一個或更多個第二加法區(qū)域,每個第二加法區(qū)域形成在所述多個第一加法區(qū)域之間,并且被配置為基于操作數(shù)據(jù)的類型和運算類型接收多條控制數(shù)據(jù)。
【專利說明】能夠支持加法和減法的加法器和支持加法和減法的方法
[0001]本申請要求于2013年I月28日提交到韓國知識產(chǎn)局的第10-2013-0009328號韓國專利申請的優(yōu)先權(quán),該申請的全部公開為了所有目的通過引用包含于此。
【技術(shù)領(lǐng)域】
[0002]以下描述涉及一種支持多種數(shù)據(jù)類型的加法器以及通過控制進位傳送來支持多種數(shù)據(jù)類型的加法和減法運算的方法。
【背景技術(shù)】
[0003]對處理器提供矢量運算能力為多媒體應(yīng)用領(lǐng)域帶來了重大的性能改進。一般的矢量運算器提供一次同時處理各種數(shù)據(jù)的能力;然而,因為需要不同的運算器來響應(yīng)各種數(shù)據(jù),所以矢量運算器需要很大。為了解決這一問題,能夠使用最小數(shù)據(jù)長度來連接、共享和同時處理許多算術(shù)運算符的結(jié)構(gòu)被用于支持各種數(shù)據(jù)類型。此時,使用考慮用于加法或減法運算的進位傳送的選擇進位加法器,通常,選擇進位加法器使用復(fù)雜的控制信號和多個數(shù)據(jù)選擇器來共享每種類型的運算,這降低了整體效率和處理速度。
【發(fā)明內(nèi)容】
[0004]在一個總的方面,一種能夠支持多達η比特數(shù)據(jù)的加法和減法的加法器可包括:多個第一加法區(qū)域,每個第一加法區(qū)域由預(yù)定單位數(shù)量的比特形成,并且被配置為接收多條輸入的操作數(shù)據(jù);一個或更多個第二加法區(qū)域,每個第二加法區(qū)域形成在所述多個第一加法區(qū)域之間,并且被配置為基于操作數(shù)據(jù)的類型和運算類型接收多條控制數(shù)據(jù)。
[0005]所述預(yù)定單位數(shù)量可小于作為加法器能夠處理運算的最大比特數(shù)的η。
[0006]所述多條輸入的操作數(shù)據(jù)可根據(jù)操作數(shù)據(jù)類型,以預(yù)定比特為單位被輸入到一個或更多個第一加法區(qū)域。
[0007]所述加法器可基于運算類型選擇性地反轉(zhuǎn)或不反轉(zhuǎn)所述多條輸入的操作數(shù)據(jù)中的在后輸入的操作數(shù)據(jù),然后將所得的數(shù)據(jù)輸入到所述多個第一加法區(qū)域。
[0008]所述多條控制數(shù)據(jù)可控制數(shù)據(jù)控制進位信號從在后的第一加法區(qū)域傳送到在前的第一加法區(qū)域或者阻止進位信號從在后的第一加法區(qū)域傳送到在前的第一加法區(qū)域,或者如果運算類型是減法,則所述多條控制數(shù)據(jù)可加上用于取二進制補碼的值“ I”。
[0009]當(dāng)一條操作數(shù)據(jù)被分成兩個段,并且數(shù)據(jù)段被分別輸入在前的第一加法區(qū)域和在后的第一加法區(qū)域時,被輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域之間的第二加法區(qū)域的控制數(shù)據(jù)可以是用于傳送進位信號的比特值[0,1]或[1,0]。
[0010]如果運算類型是加法并且兩條不同的操作數(shù)據(jù)被同時輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域,則被輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域之間的第二加法區(qū)域的控制數(shù)據(jù)可以是用于阻止進位信號的比特值[0,0]。
[0011]如果運算類型是減法并且兩條不同的操作數(shù)據(jù)被同時輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域,則被輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域之間的第二加法區(qū)域的控制數(shù)據(jù)可以是用于加上用于取二進制補碼的值“I”的比特值[1,1]。
[0012]此外,所述加法器還可包括:一個或更多個第二數(shù)據(jù)選擇器,基于被輸入到在后的第一加法區(qū)域和在前的第一加法區(qū)域的操作數(shù)據(jù)的類型以及運算類型,選擇性地將所述多條控制數(shù)據(jù)輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域之間的第二加法區(qū)域。
[0013]在另一個總的方面,一種通過使用能夠支持多達η比特數(shù)據(jù)的加法和減法的加法器來支持多種數(shù)據(jù)類型的加法和減法的方法可包括:將多條操作數(shù)據(jù)輸入到加法器中的多個第一加法區(qū)域,每個第一加法區(qū)域由預(yù)定單位數(shù)量的比特形成;基于操作數(shù)據(jù)的類型和運算類型將多條控制數(shù)據(jù)輸入到一個或更多個第二加法區(qū)域,每個第二加法區(qū)域形成在所述多個第一加法區(qū)域之間。
[0014]所述預(yù)定單位數(shù)量可小于作為加法器能夠處理的最大比特數(shù)的η。
[0015]多條輸入的操作數(shù)據(jù)可根據(jù)操作數(shù)據(jù)類型,以預(yù)定比特為單位被輸入到一個或更多個第一加法區(qū)域。
[0016]輸入多條操作數(shù)據(jù)的步驟還可包括:基于運算類型,通過數(shù)據(jù)選擇器選擇性地反轉(zhuǎn)或不反轉(zhuǎn)多條輸入的操作數(shù)據(jù)中的在后輸入的操作數(shù)據(jù),然后將所得的數(shù)據(jù)輸入到所述多個第一加法區(qū)域。
[0017]所述多條控制數(shù)據(jù)可控制進位信號從在后的第一加法區(qū)域傳送到在前的第一加法區(qū)域或者阻止進位信號從在后的第一加法區(qū)域傳送到在前的第一加法區(qū)域,或者如果運算類型是減法,則所述多條控制數(shù)據(jù)可加上用于取二進制補碼的值“ I”。
[0018]當(dāng)一條操作數(shù)據(jù)被分成兩個段,并且數(shù)據(jù)段被分別輸入在前的第一加法區(qū)域和在后的第一加法區(qū)域時,被輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域之間的第二加法區(qū)域的控制數(shù)據(jù)可以是用于傳送進位信號的比特值[0,1]或[1,0]。
[0019]如果運算類型是加法并且兩條不同的操作數(shù)據(jù)被同時輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域,則被輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域之間的第二加法區(qū)域的控制數(shù)據(jù)可以是用于阻止進位信號的比特值[0,0]。
[0020]如果運算類型是減法并且兩條不同的操作數(shù)據(jù)被同時輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域,則被輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域之間的第二加法區(qū)域的控制數(shù)據(jù)可以是用于加上用于取二進制補碼的值“I”的比特值[1,1]。
[0021]輸入多條控制數(shù)據(jù)的步驟可基于被輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域的操作數(shù)據(jù)的類型以及運算類型,通過數(shù)據(jù)選擇器選擇性地將所述多條控制數(shù)據(jù)輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域之間的第二加法區(qū)域。
[0022]其他特點和多個方面從以下詳細描述、附圖和權(quán)利要求可以是清楚的。
【專利附圖】
【附圖說明】
[0023]圖1A和圖1B是示出一般的選擇進位加法器的示圖。
[0024]圖2是示出根據(jù)本發(fā)明的加法器的示例的示圖。
[0025]圖3是輸入到加法器的第二加法區(qū)域的控制數(shù)據(jù)的示例。
[0026]圖4Α至圖4D是示出加法器的加法運算和減法運算的示例。
[0027]圖5是示出支持多種數(shù)據(jù)類型的減法運算的方法的示例的流程圖。
[0028]貫穿附圖和詳細描述,除非另外描述,否則相同的附圖標(biāo)號將被理解為表示相同的元件、特征和結(jié)構(gòu)。為了清楚、例示和方便,這些元件的相對大小和描述可被夸大?!揪唧w實施方式】
[0029]提供以下描述以幫助讀者獲得對這里描述的方法、設(shè)備和/或系統(tǒng)的全面理解。因此,這里描述的方法、設(shè)備和/或系統(tǒng)的各種改變、修改和等同物將被推薦給本領(lǐng)域普通技術(shù)人員。此外,為了增加清晰和簡明,公知功能和結(jié)構(gòu)的描述可被省略。
[0030]以下,將參照附圖描述能夠支持多種數(shù)據(jù)類型的加法器以及使用所述加法器的支持多種類型的加法和減法運算的方法。
[0031]圖1A和圖1B是示出一般的選擇進位加法器的示圖。
[0032]圖1A是示出支持多達32比特的一般的選擇進位加法器的示例的示圖,該加法器通過并聯(lián)連接四個加法器111、112、113和114來支持多種數(shù)據(jù)類型(例如,8比特、16比特和32比特)的加法運算。在該示例中,如示出加法器114的圖1B所示,加法器111、112、113和114中的每個加法器可包括9比特雙加法器114_&和114_b,以預(yù)先考慮用于在減法處理中針對反轉(zhuǎn)輸入加值“I”的進位。
[0033]此外,一般的選擇進位加法器可包括:數(shù)據(jù)選擇器121、122、123和124,用于針對輸入到各個加法器111、112、113和114的第二數(shù)據(jù),根據(jù)運算類型選擇反轉(zhuǎn)輸入或非反轉(zhuǎn)輸入;選擇進位數(shù)據(jù)選擇器131、132、133和134,用于選擇從各個加法器111、112、113和114輸出的兩個結(jié)果(不包括進位和包括進位)之一;進位傳送數(shù)據(jù)選擇器141、142和143,用于將進位從在后的加法器111、112和113分別傳送到在前的加法器112、113和114。
[0034]例如,當(dāng)針對16比特數(shù)據(jù)執(zhí)行加法運算時,數(shù)據(jù)i0_3和il_3被輸入到第一加法器111,數(shù)據(jù)i0_2和il_2被輸入到第二加法器112。通過選擇不包括進位的結(jié)果或者包括進位的結(jié)果,第一加法器111使用內(nèi)部的雙加法器輸出數(shù)據(jù)o0_3和ol_3,并且第二加法器112輸出數(shù)據(jù)o0_2和ol_2。
[0035]第一選擇進位數(shù)據(jù)選擇器131從自第一加法器111輸出的結(jié)果選擇不包括進位的數(shù)據(jù)o0_3,并將數(shù)據(jù)o0_3輸出為第一加法器111的加法結(jié)果z3。第一進位傳送數(shù)據(jù)選擇器141選擇值O或第一加法器111的加法結(jié)果z3的最高比特值,并確定是否將進位傳送到第二加法器112。
[0036]第二選擇進位數(shù)據(jù)選擇器132根據(jù)輸入到第一進位傳送數(shù)據(jù)選擇器141的值,選擇從第二加法器112輸出的結(jié)果之一,即,不包括進位的數(shù)據(jù)o0_2和包括進位的數(shù)據(jù)ol_2之一,并將選擇的數(shù)據(jù)輸出為其加法運算結(jié)果z2。
[0037]這樣,一般的選擇進位加法器包括多個加法器111、112、113和114,以支持多種數(shù)據(jù)類型的運算,多個加法器111、112、113和114中的每個加法器包括并聯(lián)的加法器,以預(yù)先考慮進位,因此,一般的選擇進位加法器占用多個區(qū)域。此外,因為數(shù)據(jù)應(yīng)該經(jīng)過用于進位傳送的多個數(shù)據(jù)選擇器,所以控制變得復(fù)雜,并且出現(xiàn)運算延遲。
[0038]圖2是示出根據(jù)本發(fā)明的加法器的示例的示圖。
[0039]參照圖2,加法器200可包括:單個加法單元210,加法單元210可包括以預(yù)定數(shù)量的比特為單位的多個第一加法區(qū)域211、212、213和214,以在最大數(shù)據(jù)長度內(nèi)支持各種數(shù)據(jù)類型的運算;一個或更多個第二加法區(qū)域221、222和223,每個第二加法區(qū)域設(shè)置在兩個鄰近的第一加法區(qū)域之間,并且控制數(shù)據(jù)基于運算類型和操作數(shù)據(jù)類型被輸入到每個第二加法區(qū)域。
[0040]圖2示出四個第一加法區(qū)域211、212、213和214以及在第一加法區(qū)域之間的第二加法區(qū)域221、222和223。然而,第一加法區(qū)域的數(shù)量可根據(jù)最大可支持的數(shù)據(jù)類型、運算的最小數(shù)據(jù)處理單元等而增加。
[0041]例如,第一加法區(qū)域211、212、213和214中的每個可被分成運算的最小數(shù)據(jù)處理單元,并且如果最小數(shù)據(jù)處理單元是8比特,則最大32比特的數(shù)據(jù)類型的運算可通過四個第一加法區(qū)域211、212、213和214來執(zhí)行。根據(jù)輸入的操作數(shù)據(jù)的類型,可執(zhí)行用于諸如8比特、16比特、24比特和32比特的數(shù)據(jù)類型的運算。
[0042]操作數(shù)據(jù)根據(jù)數(shù)據(jù)類型以預(yù)定比特(m比特)為單位被輸入到一個或更多個第一加法區(qū)域211、212、213和214,并且通過每個第一加法區(qū)域?qū)Σ僮鲾?shù)據(jù)執(zhí)行加法。在這種情況下,根據(jù)操作數(shù)據(jù)類型,多于兩對操作數(shù)據(jù)可被同時輸入到第一加法區(qū)域211、212、213和 214。
[0043]例如,如果預(yù)定比特(m比特)是8比特并且操作數(shù)據(jù)類型是16比特,則操作數(shù)據(jù)可被分成8比特單元,并且被輸入到兩個第一加法區(qū)域211和212。在這種情況下,另外的一對16比特操作數(shù)據(jù)可被分成8比特單元,并被輸入到兩個第一加法區(qū)域213和214,從而可同時執(zhí)行兩對或更多對數(shù)據(jù)的加法運算。
[0044]此外,加法器200可支持減法運算。通過反轉(zhuǎn)作為第二輸入的操作數(shù)據(jù),然后對第二輸入操作數(shù)據(jù)執(zhí)行加法,并加上用于取二進制補碼的值“ I ”,來執(zhí)行減法運算。為了支持這種減法運算,加法器200還可包括與各個第一加法區(qū)域211、212、213和214相應(yīng)的第一數(shù)據(jù)選擇器231、232、233和234。第一數(shù)據(jù)選擇器231、232、233和234可根據(jù)將被執(zhí)行的運算的類型,選擇性地反轉(zhuǎn)或不反轉(zhuǎn)在后輸入的操作數(shù)據(jù),并將所得的操作數(shù)據(jù)輸入到相應(yīng)的第一加法區(qū)域211、212、213和214。例如,如果運算類型是加法,則第一數(shù)據(jù)選擇器231、232、233和234可反轉(zhuǎn)在后的操作數(shù)據(jù),然后將所得的數(shù)據(jù)輸入到相應(yīng)的第一加法區(qū)域 211、212、213 和 214。
[0045]第二加法區(qū)域221、222和223可在每個第一加法區(qū)域211、212、213和214之間由I比特來形成,并且可控制在后的第一加法區(qū)域到在前的第一加法區(qū)域中出現(xiàn)的進位信號或者用于執(zhí)行減法運算的進位信號的傳遞或阻止,加上用于取二進制補碼的值“I”的控制數(shù)據(jù)可被輸入到第二加法區(qū)域221、222和223。
[0046]圖3是輸入到加法器的第二加法區(qū)域的控制數(shù)據(jù)的示例。輸入到加法器的第二加法區(qū)域221、222和223的控制數(shù)據(jù)可以是控制數(shù)據(jù)[0,I]、[1,O]、[0,O]和[1,1]之一。
[0047]例如,如果一個操作數(shù)據(jù)被分成多個段并且所述多個段被分別輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域,更具體地講,如果圖2的第一加法區(qū)域211、212、213和214中的每個由8比特形成并且16比特操作數(shù)據(jù)被分成兩個段,這兩個段被輸入到在前的第一加法區(qū)域212和在后的第一加法區(qū)域211兩者,則可將比特值[0,1]或[1,0]輸入到第一加法區(qū)域212和211之間的第二加法區(qū)域221,以傳遞在后的第一加法區(qū)域211的加法運算處理中出現(xiàn)的進位信號。
[0048]對于另一示例,當(dāng)不同的操作數(shù)據(jù)被同時輸入到在后的第一加法區(qū)域和在前的第一加法區(qū)域時,在加法運算的情況下,可將比特值[0,0]輸入到在后的第一加法區(qū)域和在前的第一加法區(qū)域之間的第二加法區(qū)域,以阻止進位信號,在減法運算的情況下,可將比特值[1,1]輸入到第二加法區(qū)域,以加上用于取二進制補碼的值“I”。
[0049]例如,如果16比特的第一操作數(shù)據(jù)被分成多個段并且所述多個段被分別輸入到兩個第一加法區(qū)域211和212,16比特的第二操作數(shù)據(jù)被分成多個段并且所述多個段被分別輸入到兩個第一加法區(qū)域213和214時,在加法運算的情況下,可將比特值[0,0]輸入到已輸入第一操作數(shù)據(jù)的第一加法區(qū)域212和已輸入第二操作數(shù)據(jù)的第一加法區(qū)域213之間的第二加法區(qū)域222,以防止進位被傳送。在運算類型是減法運算的情況下,可將比特值[1,I]輸入到第二加法區(qū)域222,以加上值“I”。
[0050]如圖2所示,加法器200還可包括基于操作數(shù)據(jù)類型和與第二加法區(qū)域221、222和223中的每個相應(yīng)的運算類型來選擇性地輸入控制數(shù)據(jù)的第二數(shù)據(jù)選擇器241、242和243。例如,根據(jù)諸如加法運算或減法運算的運算類型以及輸入到與第二加法區(qū)域221相鄰的第一加法區(qū)域211和212的操作數(shù)據(jù)類型(B卩,是一個數(shù)據(jù)被分成多個段并且所述多個段被分別輸入到第一數(shù)據(jù)選擇器231和232,還是兩個彼此不同的數(shù)據(jù)被分別輸入到第一數(shù)據(jù)選擇器231和232),第二數(shù)據(jù)選擇器241選擇性地輸入值O或I。
[0051]圖4A、圖4B、圖4C和圖4D是示出加法器的加法運算和減法運算的示例的示圖。為了便于描述,假設(shè)加法器200包括四個第一加法區(qū)域211、212、213和214以及三個I比特的第二加法區(qū)域221、222和223,其中,每個第一加法區(qū)域具有2比特的長度。
[0052]圖4A示出同時執(zhí)行第一操作數(shù)據(jù)al和bl的加法運算以及第二操作數(shù)據(jù)a2和b2的加法運算的示例。
[0053]因為每個輸入的操作數(shù)據(jù)類型是2比特,所以第一操作數(shù)據(jù)al和bl被依次輸入到在前的第一加法區(qū)域212。此時,因為運算類型是加法運算,所以第一數(shù)據(jù)選擇器232輸入未反轉(zhuǎn)的原始第二數(shù)據(jù)bl,在第一操作數(shù)據(jù)al和bl中,第二數(shù)據(jù)bl被在后輸入到在前的第一加法區(qū)域212。類似地,第二操作數(shù)據(jù)a2和b2被輸入到在后的第一加法區(qū)域211,并且因為是加法運算,所以第一數(shù)據(jù)選擇器231將未反轉(zhuǎn)的第二數(shù)據(jù)b2輸入到在后的第一加法區(qū)域211。
[0054]此外,比特值[0,0]的控制數(shù)據(jù)被輸入到第一加法區(qū)域211和212之間的第二加法區(qū)域221,以阻止在后的第一加法區(qū)域211中出現(xiàn)的進位信號被傳送。因為分別被輸入到均與第二加法區(qū)域221相鄰的在后的第一加法區(qū)域211和在前的第一加法區(qū)域212的每條數(shù)據(jù)是兩條不同的數(shù)據(jù),并且運算類型是加法類型,所以與第二加法區(qū)域221相應(yīng)的第二數(shù)據(jù)選擇器241選擇性地將值O和O依次輸入到第二加法區(qū)域221。
[0055]在后的第一加法區(qū)域211執(zhí)行第一操作數(shù)據(jù)的加法運算,然后輸出“00”作為結(jié)果,并產(chǎn)生進位信號“ I ”。進位信號被傳送到第二加法區(qū)域221,第二加法區(qū)域221考慮進位信號將所有的輸入控制信號相加并輸出結(jié)果“1”,而不向在前的第一加法區(qū)域產(chǎn)生進位信號。因為沒有進位信號從第二加法區(qū)域221被傳送,所以在前的第一加法區(qū)域212將“11”輸出為加法運算的結(jié)果。最終,忽略來自第二加法區(qū)域221的結(jié)果,而僅獲取在后的第一加法區(qū)域211和在前的第一加法區(qū)域212的結(jié)果,并且隨后可獲取第一操作數(shù)據(jù)的加法運算結(jié)果“ 11 ”和第二操作數(shù)據(jù)的加法運算結(jié)果“00 ”。
[0056]圖4B示出執(zhí)行包括4比特數(shù)據(jù)類型的操作數(shù)據(jù)a和b的加法運算的示圖。
[0057]輸入的操作數(shù)據(jù)類型是4比特,并且以2比特的形式被分別輸入到在后的第一加法區(qū)域211和在前的第一加法區(qū)域212。此時,因為運算類型是加法運算,所以分別與在后的第一加法區(qū)域211和在前的第一加法區(qū)域212相應(yīng)的第一數(shù)據(jù)選擇器231和232輸入第一操作數(shù)據(jù)a和b中的稍后被輸入的未反轉(zhuǎn)的第二數(shù)據(jù)b。
[0058]用于傳送在后的第一加法區(qū)域211中出現(xiàn)的進位信號的控制信號[1,0]被輸入到在后的第一加法區(qū)域211和在前的第一加法區(qū)域212之間的第二加法區(qū)域221。因為輸入到均與第二加法區(qū)域221相鄰的在后的第一加法區(qū)域211和在前的第一加法區(qū)域212的數(shù)據(jù)來自一個數(shù)據(jù),并且運算類型是加法運算,所以與第二加法區(qū)域221相應(yīng)的第二數(shù)據(jù)選擇器241選擇性地將值I和O依次輸入到第二加法區(qū)域221。
[0059]在后的第一加法區(qū)域211將輸入的操作數(shù)據(jù)相加,然后輸出結(jié)果“00”,并產(chǎn)生進位信號“I”。進位信號被傳送到第二加法區(qū)域221,第二加法區(qū)域221考慮進位信號將輸入控制信號相加,然后輸出結(jié)果“0”,并產(chǎn)生進位信號“I”。在前的第一加法區(qū)域212基于從第二加法區(qū)域221傳送的進位信號將輸入的數(shù)據(jù)相加,然后輸出結(jié)果“00”作為加法運算的結(jié)果。最終,忽略第二加法區(qū)域221的結(jié)果,并且獲取從在后的第一加法區(qū)域211和在前的第一加法區(qū)域212接收的結(jié)果,因此可獲得操作數(shù)據(jù)的加法運算結(jié)果“0000”。
[0060]圖4C是示出同時執(zhí)行第一操作數(shù)據(jù)al和a2以及第二操作數(shù)據(jù)a2和b2的加法運算的示例的示圖。
[0061]與圖4A類似,因為每個操作數(shù)據(jù)的類型是2比特,所以第一操作數(shù)據(jù)al和a2以及第二操作數(shù)據(jù)a2和b2中的每個被分別輸入到在后的第一加法區(qū)域211和在前的第一加法區(qū)域212。這里,運算類型是減法運算,所以第一數(shù)據(jù)選擇器231和232反轉(zhuǎn)在后輸入的第二數(shù)據(jù)bl和b2,并將反轉(zhuǎn)的第二數(shù)據(jù)bl和b2輸入到相應(yīng)的在后的第一加法區(qū)域211和在前的第一加法區(qū)域212。
[0062]因為被輸入到均與第二加法區(qū)域221相鄰的在后的第一加法區(qū)域211和在前的第一加法區(qū)域212的每條數(shù)據(jù)是兩條不同的數(shù)據(jù),并且運算類型是減法,所以第二數(shù)據(jù)選擇器241將控制數(shù)據(jù)[1,1]輸入到相應(yīng)的第二加法區(qū)域221,以將值“I”與第一加法區(qū)域212的結(jié)果相加。此時,在后的第一加法區(qū)域211還執(zhí)行減法運算,從而得到將被加到在后的第一加法區(qū)域211的值“I”被輸入。
[0063]考慮到被輸入的值“1”,在后的第一加法區(qū)域211將在后的第一加法區(qū)域211中的所有第一操作數(shù)據(jù)相加,并輸出結(jié)果“10”,然后產(chǎn)生進位信號“I”。進位信號被傳送到第二加法區(qū)域221,然后第二加法區(qū)域221考慮輸入的控制數(shù)據(jù)[1,1]和進位信號,并輸出結(jié)果“ I ”,然后產(chǎn)生進位信號“ I ”??紤]到從第二加法區(qū)域221傳送的進位信號,在前的第一加法區(qū)域212輸出加法結(jié)果“11”。最終,忽略第二加法區(qū)域221的結(jié)果,并且僅獲取在后的第一加法區(qū)域211和在前的第一加法區(qū)域212的結(jié)果作為最終結(jié)果,因此獲得第一操作數(shù)據(jù)al和a2的減法結(jié)果“II”以及第二操作數(shù)據(jù)a2和b2的減法結(jié)果“10”。
[0064]圖4D是示出執(zhí)行4比特數(shù)據(jù)類型的操作數(shù)據(jù)a和b的減法運算的示例的示圖。
[0065]操作數(shù)據(jù)類型是4比特,并且以2比特的形式被分別輸入到在后的第一加法區(qū)域211和在前的第一加法區(qū)域212。這里,因為運算類型是減法運算,所以與在后的第一加法區(qū)域211和在前的第一加法區(qū)域212相應(yīng)的第一數(shù)據(jù)選擇器231和232反轉(zhuǎn)第一操作數(shù)據(jù)a和b中的在后輸入的第二數(shù)據(jù)b,然后將反轉(zhuǎn)的第二數(shù)據(jù)b輸入到在后的第一加法區(qū)域211和在前的第一加法區(qū)域212。
[0066]因為被輸入到均與第二加法區(qū)域221相鄰的在后的第一加法區(qū)域211和在前的第一加法區(qū)域212的數(shù)據(jù)本來是一條數(shù)據(jù),所以第二數(shù)據(jù)選擇器241將控制數(shù)據(jù)[1,0]輸入到第二加法區(qū)域221。此時,獲取另外的輸入“1”,以將用于取二進制補碼的值“I”與在后的第一加法區(qū)域211相加。
[0067]在后的第一加法區(qū)域211將操作數(shù)據(jù)與另外的輸入“I”相加,輸出結(jié)果“10”并產(chǎn)生進位信號“I”。進位信號被傳送到第二加法區(qū)域221,第二加法區(qū)域221考慮進位信號將輸入的控制數(shù)據(jù)[1,0]相加,然后輸出結(jié)果“O”并產(chǎn)生進位信號“I”。在前的第一加法區(qū)域212將從第二加法區(qū)域221傳送的進位信號與輸入數(shù)據(jù)相加,并輸出加法結(jié)果“11”。最終,忽略第二加法區(qū)域221的結(jié)果,僅獲取在后的第一加法區(qū)域211和在前的第一加法區(qū)域212的結(jié)果作為最終結(jié)果,并且可獲得操作數(shù)據(jù)的減法運算結(jié)果“1110”。
[0068]如這里的示例所示,加法器200可不需要多個選擇進位數(shù)據(jù)選擇器,并且可不需要并聯(lián)連接多個加法器以支持各種數(shù)據(jù)類型,而是能夠通過單個加法器來支持多種數(shù)據(jù)類型,從而可增加處理性能和一定程度的效率。
[0069]圖5是示出支持多種數(shù)據(jù)類型的減法運算的方法的示例的流程圖。以下描述使用如圖2所示的加法器200的支持多種數(shù)據(jù)類型的加法運算和減法運算的方法的示例。
[0070]首先,在511,加法器200以預(yù)定比特單元將操作數(shù)據(jù)的第一數(shù)據(jù)輸入到第一加法區(qū)域211、212、213和214。根據(jù)數(shù)據(jù)類型,操作數(shù)據(jù)可被輸入到一個第一加法區(qū)域,或者可被分成多個段,并且多個數(shù)據(jù)段可被輸入到第一加法區(qū)域的兩個或更多個。
[0071]然后,在512,加法器200的數(shù)據(jù)選擇器231、232、233和234確定運算類型,如果運算類型不是減法運算,則在513,數(shù)據(jù)選擇器231、232、233和234不反轉(zhuǎn)操作數(shù)據(jù)的第二數(shù)據(jù),并輸入原始的第二數(shù)據(jù);然而,如果運算類型是減法運算,則在514,數(shù)據(jù)選擇器231、232,233和234反轉(zhuǎn)第二數(shù)據(jù),并輸入反轉(zhuǎn)的第二數(shù)據(jù)。
[0072]然后,在515,加法器的第二數(shù)據(jù)選擇器241、242和243檢查被輸入到與相應(yīng)的第二加法區(qū)域221、222和223中的每個相鄰的第一加法區(qū)域211、212、213和214的操作數(shù)據(jù),并且在516,確定操作數(shù)據(jù)類型是否大于預(yù)定比特,從而操作數(shù)據(jù)被分成兩個段,并且數(shù)據(jù)段被分別輸入相鄰的第一加法區(qū)域211、212、213和214。
[0073]作為操作516的確定結(jié)果,如果一個數(shù)據(jù)被分成兩個段,并且數(shù)據(jù)段被分別輸入,則在517,用于將在后的第一加法區(qū)域中產(chǎn)生的進位信號傳送到在前的第一加法區(qū)域的控制數(shù)據(jù)比特[1,0]或[0,1]可被輸入到在后的第一加法區(qū)域和在前的第一加法區(qū)域之間的第二加法區(qū)域517。
[0074]然而,如果輸入兩條不同的數(shù)據(jù),則在518,確定運算類型,如果運算類型是減法運算,則在519,將用于將值“I”與在前的第一加法區(qū)域的加法結(jié)果相加的控制數(shù)據(jù)[1,1]被輸入到第二加法區(qū)域。此外,如果在操作518,運算類型是加法運算,則在520,可輸入控制數(shù)據(jù)[0,O],以防止在后的第一加法區(qū)域的進位信號被傳送到在前的第一加法區(qū)域。
[0075]在加法器200使用輸入到第一加法區(qū)域和第二加法區(qū)域的數(shù)據(jù)執(zhí)行加法運算之后,加法器200忽略第二加法區(qū)域的輸出結(jié)果,僅獲取第一加法區(qū)域的結(jié)果,并最后獲得加法運算和減法運算的結(jié)果。
[0076]上述方法和/或操作可被記錄、存儲或固定在一個或更多個包括程序指令的計算機可讀存儲介質(zhì)中,所述程序指令由計算機執(zhí)行,從而使得處理器執(zhí)行所述程序指令。所述介質(zhì)還可包括單獨的數(shù)據(jù)文件、數(shù)據(jù)結(jié)構(gòu)等,或者還可包括與程序指令結(jié)合的數(shù)據(jù)文件、數(shù)據(jù)結(jié)構(gòu)等。計算機可讀存儲介質(zhì)的示例包括磁介質(zhì)(諸如硬盤、軟盤和磁帶)、光學(xué)介質(zhì)(諸如⑶ROM盤和DVD)、磁光介質(zhì)(諸如光盤)和專門配置為存儲和執(zhí)行程序指令的硬件裝置(諸如只讀存儲器(ROM)、隨機存取存儲器(RAM)、閃存等)。程序指令的示例包括諸如由編譯器產(chǎn)生的機器代碼和包含可由計算機使用解釋器執(zhí)行的高級代碼的文件。描述的硬件裝置可被配置為用作一個或更多軟件模塊,以執(zhí)行上述操作和方法,反之亦然。此外,計算機可讀存儲介質(zhì)可以分布在通過網(wǎng)絡(luò)連接的計算機系統(tǒng)中,并且計算機可讀代碼或程序指令可以以分散方式被存儲和執(zhí)行。
[0077]以上已經(jīng)描述了多個示例。然而,應(yīng)該理解,可進行各種修改。例如,如果描述的技術(shù)以不同的次序執(zhí)行和/或如果描述的系統(tǒng)、架構(gòu)、裝置或電路中的組件以不同的方式組合和/或由其他組件或它們的等同物替代或補充,則可實現(xiàn)適當(dāng)?shù)慕Y(jié)果。因此,其他實施方式落入權(quán)利要求的范圍之內(nèi)。
【權(quán)利要求】
1.一種能夠支持多達η比特數(shù)據(jù)的加法和減法的加法器,所述加法器包括: 多個第一加法區(qū)域,每個第一加法區(qū)域由預(yù)定單位數(shù)量的比特形成,并且被配置為接收多條輸入的操作數(shù)據(jù); 一個或更多個第二加法區(qū)域,每個第二加法區(qū)域形成在所述多個第一加法區(qū)域之間,并且被配置為基于操作數(shù)據(jù)的類型和運算類型接收多條控制數(shù)據(jù)。
2.如權(quán)利要求1所述的加法器,其中,所述預(yù)定單位數(shù)量小于作為加法器能夠處理運算的最大比特數(shù)的η。
3.如權(quán)利要求1所述的加法器,其中,所述多條輸入的操作數(shù)據(jù)根據(jù)操作數(shù)據(jù)類型,以預(yù)定比特為單位被輸入到一個或更多個第一加法區(qū)域。
4.如權(quán)利要求1所述的加法器,還包括: 多個第一數(shù)據(jù)選擇器,被配置為基于運算類型選擇性地反轉(zhuǎn)或不反轉(zhuǎn)所述多條輸入的操作數(shù)據(jù)中的在后輸入的操作數(shù)據(jù),然后將所得的數(shù)據(jù)輸入到所述多個第一加法區(qū)域。
5.如權(quán)利要求1所述的加法器,其中,所述多條控制數(shù)據(jù)控制進位信號從在后的第一加法區(qū)域傳送到在前的第一加法區(qū)域或者阻止進位信號從在后的第一加法區(qū)域傳送到在前的第一加法區(qū)域,或者如果運算類型是減法,則所述多條控制數(shù)據(jù)加上用于取二進制補碼的值“1”。
6.如權(quán)利要求5所述的加法器,其中,當(dāng)一條操作數(shù)據(jù)被分成兩個段,并且數(shù)據(jù)段被分別輸入在前的第一加法區(qū)域和在后的第一加法區(qū)域時,被輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域之間的第二加法區(qū)域的控制數(shù)據(jù)是用于傳送進位信號的比特[O,I]或[1,0]。
7.如權(quán)利要求5所述的加法器,其中,如果運算類型是加法并且兩條不同的操作數(shù)據(jù)被同時輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域,則被輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域之間的第二加法區(qū)域的控制數(shù)據(jù)是用于阻止進位信號的比特[O,O] O
8.如權(quán)利要求5所述的加法器,其中,如果運算類型是減法并且兩條不同的操作數(shù)據(jù)被同時輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域,則被輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域之間的第二加法區(qū)域的控制數(shù)據(jù)是用于加上用于取二進制補碼的值“I”的比特[1,1]。
9.如權(quán)利要求1所述的加法器,還包括: 一個或更多個第二數(shù)據(jù)選擇器,被配置為基于被輸入到在后的第一加法區(qū)域和在前的第一加法區(qū)域的操作數(shù)據(jù)的類型以及運算類型,選擇性地將所述多條控制數(shù)據(jù)輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域之間的第二加法區(qū)域。
10.一種通過使用能夠支持多達η比特數(shù)據(jù)的加法和減法的加法器來支持多種數(shù)據(jù)類型的加法和減法的方法,所述方法包括: 將多條操作數(shù)據(jù)輸入到加法器中的多個第一加法區(qū)域,每個第一加法區(qū)域由預(yù)定單位數(shù)量的比特形成; 基于操作數(shù)據(jù)的類型和運算類型將多條控制數(shù)據(jù)輸入到一個或更多個第二加法區(qū)域,每個第二加法區(qū)域形成在所述多個第一加法區(qū)域之間。
11.如權(quán)利要求10所述的方法,其中,所述預(yù)定單位數(shù)量小于作為加法器能夠處理的最大比特數(shù)的η。
12.如權(quán)利要求10所述的方法,其中,多條輸入的操作數(shù)據(jù)根據(jù)操作數(shù)據(jù)類型,以預(yù)定比特為單位被輸入到一個或更多個第一加法區(qū)域。
13.如權(quán)利要求10所述的方法,其中,輸入多條操作數(shù)據(jù)的步驟還包括: 基于運算類型,通過數(shù)據(jù)選擇器選擇性地反轉(zhuǎn)或不反轉(zhuǎn)多條輸入的操作數(shù)據(jù)中的在后輸入的操作數(shù)據(jù),然后將所得的數(shù)據(jù)輸入到所述多個第一加法區(qū)域。
14.如權(quán)利要求10所述的方法,其中,所述多條控制數(shù)據(jù)控制進位信號從在后的第一加法區(qū)域傳送到在前的第一加法區(qū)域或者阻止進位信號從在后的第一加法區(qū)域傳送到在前的第一加法區(qū)域,或者如果運算類型是減法,則所述多條控制數(shù)據(jù)加上用于取二進制補碼的值“I”。
15.如權(quán)利要求14所述的方法,其中,當(dāng)一條操作數(shù)據(jù)被分成兩個段,并且數(shù)據(jù)段被分別輸入在前的第一加法區(qū)域和在后的第一加法區(qū)域時,被輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域之間的第二加法區(qū)域的控制數(shù)據(jù)是用于傳送進位信號的比特[0,1]或[1,0]。
16.如權(quán)利要求14所述的方法,其中,如果運算類型是加法并且兩條不同的操作數(shù)據(jù)被同時輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域,則被輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域之間的第二加法區(qū)域的控制數(shù)據(jù)是用于阻止進位信號的比特[0,O]。
17.如權(quán)利要求14所述的方法,其中,如果運算類型是減法并且兩條不同的操作數(shù)據(jù)被同時輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域,則被輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域之間的第二加法區(qū)域的控制數(shù)據(jù)是用于加上用于取二進制補碼的值“1”的比特[1,1]。
18.如權(quán)利要求10所述的方法,其中,輸入多條控制數(shù)據(jù)的步驟基于被輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域的操作數(shù)據(jù)的類型以及運算類型,通過數(shù)據(jù)選擇器選擇性地將所述多條控制數(shù)據(jù)輸入到在前的第一加法區(qū)域和在后的第一加法區(qū)域之間的第二加法區(qū)域。
【文檔編號】G06F7/50GK103970503SQ201410041976
【公開日】2014年8月6日 申請日期:2014年1月28日 優(yōu)先權(quán)日:2013年1月28日
【發(fā)明者】俞炯碩, 金碩鎮(zhèn) 申請人:三星電子株式會社