專利名稱:數(shù)據(jù)處理裝置及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)處理裝置及方法,且特別涉及一種可降低執(zhí)行乘加
(Multiply-accumulate, MLA)指令時需使用的寄存器數(shù)量的數(shù)據(jù)處理裝置及方 法。
背景技術(shù):
隨著科技的發(fā)展日新月異,數(shù)據(jù)處理裝置,例如是可執(zhí)行乘加 (Multiply-accumulate, MLA)運算的微處理器。已被廣泛地應(yīng)用在多種不同應(yīng) 用方面中。
請參照圖1,其繪示乃傳統(tǒng)數(shù)據(jù)處理裝置的方塊圖。在傳統(tǒng)微處理器100 中,寄存器組(Register Bank)120中的寄存器Rel Re4分別被用來存儲數(shù)據(jù) Pa、 Pb、 Pc及運算數(shù)據(jù)Pd。其中,運算數(shù)據(jù)Pd滿足方程式Pd=PaxPb+Pc
然而,傳統(tǒng)數(shù)據(jù)處理裝置必須使用四個寄存器Rel Re4來執(zhí)行MLA操 作。因此,如何設(shè)計出可使用較少的寄存器來執(zhí)行MLA操作的數(shù)據(jù)處理裝 置為業(yè)界不斷致力的方向之一。
發(fā)明內(nèi)容
本發(fā)明提供一數(shù)據(jù)處理裝置及其方法,其可有效地解決傳統(tǒng)數(shù)據(jù)處理裝 置需必須使用四個寄存器來執(zhí)行乘加(Multiply-accumulate, MLA)操作的問 題,而具有可使用較少的寄存器來執(zhí)行MLA操作的優(yōu)點。
根據(jù)本發(fā)明提出一種數(shù)據(jù)處理裝置,包括寄存器組(Register Bank)、 影子寄存器(Shadow Register)及操作單元。寄存器組包括多個寄存器,用以 分別存儲多個操作數(shù)(Operand)。寄存器中包括第一寄存器,操作數(shù)中包括第 一操作數(shù)。其中,這些寄存器為n位寄存器,n為自然數(shù)。影子寄存器用以 響應(yīng)于第一控制信號來對第一操作數(shù)進行備份,以得到并存儲第一備份操作 數(shù)。其中,第一操作數(shù)被存儲在第一寄存器中。操作單元用以響應(yīng)于算術(shù)操 作指令來對操作數(shù)執(zhí)行至少 一算術(shù)操作以得到運算數(shù)據(jù),并存儲運算數(shù)據(jù)至第一寄存器中。
根據(jù)本發(fā)明提出一種數(shù)據(jù)處理方法,包括下列的步驟首先,提供寄存 器組,其中包括多個寄存器,用以分別存儲多個操作數(shù)。其中這些寄存器中
包括第一寄存器,操作數(shù)中包括第一操作數(shù);接著,響應(yīng)于第一控制信號來 對第一操作數(shù)進行備份,以得到并存儲第一備份操作數(shù)。其中,第一操作數(shù) 存儲于第一寄存器中;接著,響應(yīng)于運算操作指令來對這些操作數(shù)執(zhí)行至少 一運算操作,以得到運算數(shù)據(jù);之后,存儲運算數(shù)據(jù)于第一寄存器中。
為讓本發(fā)明的上述內(nèi)容能更明顯易懂,下文特舉一較佳實施例,并配合 所附附圖,作詳細說明如下
圖1繪示乃傳統(tǒng)數(shù)據(jù)處理裝置的方塊圖。 圖2繪示依照本發(fā)明第一實施例的數(shù)據(jù)處理裝置的方塊圖。 圖3繪示依照本發(fā)明第一實施例的數(shù)據(jù)處理方法的流程圖。 圖4繪示依照本發(fā)明第二實施例的數(shù)據(jù)處理裝置的方塊圖。 圖5繪示依照本發(fā)明第三時失利的數(shù)據(jù)處理裝置的方塊圖。 圖6繪示依照本發(fā)明第三實施例的數(shù)據(jù)處理方法的流程圖。主要元件符號說明
100:微處理器 120、 12、 12,寄存器組 Rel Re4、 Rl Rm:寄存器 Pa、 Pb、 Pc:數(shù)據(jù) Pd、 Qd、 Qd,運算數(shù)據(jù) 10、 10,、 20:數(shù)據(jù)處理裝置 14、 14,影子寄存器 16、 16,、 16":運算操作單元 18、 18,:邏輯單元
Qa、 Qb、 Qc、 Qa,、 Qb,、 Qc,、 Qe:操作數(shù) Qrl、 Qr2:備份操作數(shù)
具體實施方式
第一實施例
請參照圖2,其繪示依照本發(fā)明第一實施例的數(shù)據(jù)處理裝置的方塊圖。
數(shù)據(jù)處理裝置10包括寄存器組(Register Bank)12、影子寄存器(Shadow Register)14及運算操作單元16。寄存器組12包括多個寄存器,這些寄存器 分別用以存儲多個操作數(shù)。影子寄存器14用以響應(yīng)于第一控制信號來對這 些操作數(shù)中的第一操作數(shù)進行備份,并存儲第一備份操作數(shù)。第一操作數(shù)被 存儲在這些寄存器中的第一寄存器中。運算操作單元16用以響應(yīng)于運算操 作指令來對這些寄存器中的操作數(shù)執(zhí)行至少一個運算操作,以得到運算數(shù)據(jù) Qd,并將運算數(shù)據(jù)Qd存儲在第一寄存器中。接下來,以數(shù)據(jù)處理裝置10 為乘力口(Multiply-accumulate, MLA)運算單元的情形為例作說明。
舉例來說,寄存器組12中包括寄存器R1 R3,寄存器R1 R3分別用以 存儲操作數(shù)Qa、 Qb及Qc。寄存器R1 R3為n位的寄存器,其中n為自然 數(shù)。乘加運算單元用以對操作數(shù)Qa、 Qb及Qc執(zhí)行一個相乘運算及一個累 加運算。舉例來說,乘加運算單元執(zhí)行運算Qd=QaxQb+Qc。之后,乘加 運算單元輸出運算數(shù)據(jù)Qd至寄存器R3,并將運算數(shù)據(jù)Qd存儲于寄存器R3 中,以完成乘加運算。
在運算數(shù)據(jù)Qd被存儲在寄存器R3之前,需對原本存儲在寄存器R3中 的操作數(shù)Qc進行備份,以避免操作數(shù)Qc被覆寫。影子寄存器14用以在乘 加運算單元存儲運算數(shù)據(jù)Qd至寄存器R3之前,響應(yīng)于控制信號SC1對操 作數(shù)Qc進行備份,以得到并存儲備份操作數(shù)Qrl(未繪示)。備份操作數(shù)Qrl 實質(zhì)上等于操作數(shù)Qc。如此,當(dāng)運算數(shù)據(jù)Qd被存儲到寄存器R3中時,操 作數(shù)Q3仍可有效地被保存。
請參照圖3,其繪示依照本發(fā)明第一實施例的數(shù)據(jù)處理方法的流程圖。 首先,如步驟(a),提供包括寄存器R1 R3的寄存器組12,其中,寄存器R1 R3 分別存儲操作數(shù)Qa、 Qb及Qc。接著,如步驟(b),影子寄存器14響應(yīng)于控 制信號SC1對操作數(shù)Qc進行備份,以存儲備份操作數(shù)Qrl 。
接著,如步驟(c),乘加運算單元響應(yīng)于乘加指令來根據(jù)操作數(shù)Qa、 Qb 及Qc產(chǎn)生運算數(shù)據(jù)Qd。之后,如步驟(d),邏輯單元18輸出運算數(shù)據(jù)Qd 至寄存器R3。
在本實施例中雖僅以運算操作單元16為乘加運算單元,乘加運算單元 執(zhí)行運算操作Qd-QaxQb+Qc的情形為例作說明,然而,前述的乘加運算單元不局限于執(zhí)行上述運算操作,而可根據(jù)操作數(shù)Qa、 Qb及Qc執(zhí)行其他 乘加運算操作。本實施例的運算操作單元16亦不局限于為乘加運算單元。 第二實施例
請參照圖4,其繪示依照本發(fā)明第二實施例的數(shù)據(jù)處理裝置的方塊圖。 本實施例的數(shù)據(jù)處理裝置IO,與第一實施例中的數(shù)據(jù)處理裝置不同之處在于 數(shù)據(jù)處理裝置IO,還包括邏輯單元18,來根據(jù)操作數(shù)Qa、 Qb及Qc產(chǎn)生操 作數(shù)Qa,、 Qb,及Qc,。另外,數(shù)據(jù)處理裝置IO,中的運算操作單元16,系執(zhí)行 運算Qd,=Qa,xQb,+Qc,,并輸出運算數(shù)據(jù)Qd,。
邏輯單元18更用以接收運算數(shù)據(jù)Qd,、選擇信號SS1 SS3及控制信號 SC2。邏輯單元18用以響應(yīng)于選擇信號SS1選擇操作數(shù)Qa、 Qb及Qc中其 中之一做為操作數(shù)Qa,、響應(yīng)于選擇信號SS2選擇操作數(shù)Qa、 Qb及Qc其 中的另一做為操作數(shù)Qb,與響應(yīng)于選擇信號SS3選擇操作數(shù)Qa、 Qb及Qc 其中之再一做為操作數(shù)Qc,。 一般來說,邏輯單元18分別以操作數(shù)Qa、 Qb 及Qc做為操作數(shù)Qa,、 Qb,及Qc,輸出。在邏輯單元18自運算操作單元16, 接收運算數(shù)據(jù)Qd,后,邏輯單元18響應(yīng)于控制信號SC2輸出運算數(shù)據(jù)Qd, 至寄存器R3。影子寄存器14用以響應(yīng)于控制信號SC1對操作數(shù)Qc,進行備 份,以存儲備份操作數(shù)Qrl'。 一般來說,備份操作數(shù)Qrl,實質(zhì)上等于寄存器 R3中存儲的操作數(shù),即備份操作數(shù)Qrl'等于操作數(shù)Qc。
邏輯單元18更接收備份操作數(shù)QiT,并判斷數(shù)據(jù)處理裝置IO,是否欲執(zhí) 行任何需參考操作數(shù)Qc來執(zhí)行的運算操作。當(dāng)數(shù)據(jù)處理裝置IO,執(zhí)行需參考 操作數(shù)Qc的運算操作時,邏輯單元18輸出備份操作數(shù)Qrl,至原先用以存 儲操作數(shù)Qc的寄存器,即是寄存器R3。如此,寄存器R3存儲與操作數(shù)Qc 實質(zhì)上相等的備份操作數(shù)Qrl,,而數(shù)據(jù)處理裝置10可等效地經(jīng)由存取寄存 器R3來存取操作數(shù)Qc,并執(zhí)行此需參考操作數(shù)Qc的運算操作。
在本實施例中雖僅以操作數(shù)Qa,至Qc,分別等于操作數(shù)Qa至Qc的情形 為例作說明,然,操作數(shù)Qa,至Qc,并不局限于為等于操作數(shù)Qa至Qc,而 可透過邏輯單元18根據(jù)對應(yīng)的選擇信號SS1至SS3來分別決定操作數(shù)Qa, 至Qc,。舉例來說,操作數(shù)Qa,、 Qb,及Qc,可分別等于操作數(shù)Qa、 Qc及Qb。
第一及第二實施例中的數(shù)據(jù)處理裝置具有可降低執(zhí)行運算操作時所需 使用的寄存器數(shù)目的優(yōu)點。透過使用影子寄存器14存儲備份操作數(shù)Qrl或 Qrl,,來對原先存儲在寄存器R3中的操作數(shù)Qc進行備份。透過提供根據(jù)操作數(shù)Qa至Qc或Qa,至Qc,運算得到的運算數(shù)據(jù)Qd或Qd,至寄存器R3,第 一及第二實施例中的數(shù)據(jù)處理裝置可僅使用三個寄存器來執(zhí)行運算操作(例 如是乘加運算操作)。因此,相較于繪示于圖1中的傳統(tǒng)數(shù)據(jù)處理裝置需使 用四個寄存器Rei至Re4來執(zhí)行乘加運算操作,第一及第二實施例中的數(shù)據(jù) 處理裝置可有效地降低其所需的寄存器數(shù)量。 第三實施例
請參照圖5,其繪示依照本發(fā)明第三時失利的數(shù)據(jù)處理裝置的方塊圖。 第三實施例的數(shù)據(jù)處理裝置20與第二實施例中的數(shù)據(jù)處理裝置IO,不同之處 在于寄存器組12,更額外地包括寄存器R4至Rm,其中m為大于3之自然數(shù)。 另一個不同之處在于第三實施例的邏輯單元18,在數(shù)據(jù)處理裝置20欲執(zhí)行需 參考操作數(shù)Qc的操作時,傳送運算數(shù)據(jù)Qd,至寄存器R4至Rm其中一。
舉例來說,邏輯單元18,在傳送被存儲在影子寄存器14,中的備份操作數(shù) Qrl,至寄存器R3之前,先傳送先前被存儲在寄存器R3中的運算數(shù)據(jù)Qd, 至寄存器R4。如上所述,備份操作數(shù)Qrl,實質(zhì)上等于先前存儲在寄存器R3 中的操作數(shù),即是操作數(shù)Qc。之后,存儲在寄存器R1至R4中的數(shù)據(jù)實質(zhì) 上分別等于存儲在傳統(tǒng)數(shù)據(jù)處理裝置(如圖1所示)中寄存器Rel至Re4中的 數(shù)據(jù)。換句話說,在數(shù)據(jù)處理裝置20執(zhí)行運算操作(例如是乘加運算操作) 之后,寄存器R1至R4將分別地存儲操作數(shù)Qa、 Qb、 Qc及運算數(shù)據(jù)Qd,。 如此,寄存器R1至R4與傳統(tǒng)數(shù)據(jù)處理裝置(如圖l所示)中分別用以存儲數(shù) 據(jù)Pa、 Pb、 Pc及運算數(shù)據(jù)Pd的暫存Rel至Re4具有實質(zhì)上相同的寄存器 數(shù)據(jù)結(jié)構(gòu)。這樣一來,數(shù)據(jù)處理裝置20可有效地被用以控制傳統(tǒng)數(shù)據(jù)處理 裝置(如圖1所示)的傳統(tǒng)指令所控制,以存取存儲在寄存器Rl至R4中的操 作數(shù)Qa、 Qb、 Qc及運算數(shù)據(jù)Qd,。
在前述操作中,運算數(shù)據(jù)Qd,被存儲在寄存器R4中。在運算數(shù)據(jù)Qd, 被存儲在寄存器R4之前,需對原先存儲在寄存器R4中的操作數(shù)進行備份, 以避免原先存儲在寄存器R4中的此操作數(shù)被覆蓋而遺失。據(jù)理來說,原先 存儲在寄存器R4中的操作數(shù)被標示為Qe。如此,本實施例的影子寄存器 14,更用意在運算數(shù)據(jù)Qd被存儲在寄存器R4之前,存儲實質(zhì)上等于操作數(shù) Qe的備份操作數(shù)Qr2。因此,操作數(shù)Qe可在運算數(shù)據(jù)Qd被存儲在寄存器 R4時仍有效地被保存。
邏輯單元18,更接收備份操作數(shù)Qr2,并判斷數(shù)據(jù)處理裝置20是否執(zhí)行需參考操作數(shù)Qe的運算操作。當(dāng)數(shù)據(jù)處理裝置20即將執(zhí)行需參考操作數(shù) Qe的運算操作時,邏輯單元18,傳送備份運算數(shù)據(jù)Qr2至原先用以存儲操作 數(shù)Qe的寄存器,即寄存器R4。因此,數(shù)據(jù)處理裝置可有效地執(zhí)行需參考操 作數(shù)Qe來執(zhí)行的運算操作。
請參照圖6,其繪示依照本發(fā)明第三實施例的數(shù)據(jù)處理方法的流程圖。 本實施例的數(shù)據(jù)處理方法與第一實施例的數(shù)據(jù)處理方法在于步驟(d)之后還 包括步驟(e)及(f)。如步驟(e),邏輯單元18,輸出運算數(shù)據(jù)Qd,至寄存器R4。 之后如步驟(f),邏輯單元18系將自影子寄存器14,中存取得到的備份操作數(shù) Qrl,輸出至寄存器R3。
此外,在本實施例的數(shù)據(jù)處理方法中,步驟(b)還包括影子寄存器14,響 應(yīng)于控制信號SC1來對操作數(shù)Qe進行備份,并存儲備份操作數(shù)Qr2的操作。
本發(fā)明第一及第二實施例中的數(shù)據(jù)處理裝置可僅使用三個寄存器來執(zhí) 行運算操作,相較于傳統(tǒng)微處理器,本發(fā)明第一及第二實施例中的數(shù)據(jù)處理 裝置可使用較少的寄存器數(shù)目來執(zhí)行運算操作。另外,本發(fā)明第三實施例的
構(gòu)。如此,本發(fā)明第三實施例的數(shù)據(jù)處理裝置具有可與傳統(tǒng)數(shù)據(jù)處理裝置的 控制指令相容的優(yōu)點。
綜上所述,雖然本發(fā)明已以一較佳實施例公開如上,然其并非用以限定 本發(fā)明。本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作各種的 更動與潤飾。因此,本發(fā)明的保護范圍當(dāng)視所附的權(quán)利要求書所界定者為準。
權(quán)利要求
1. 一種數(shù)據(jù)處理裝置,包括一寄存器組,包括多個寄存器,用以分別存儲多個操作數(shù),所述寄存器中包括一第一寄存器,所述操作數(shù)中包括一第一操作數(shù),其中,所述寄存器為n位寄存器,n為自然數(shù);一影子寄存器,用以響應(yīng)于一第一控制信號來對該第一操作數(shù)進行備份,以得到并存儲一第一備份操作數(shù),其中,該第一操作數(shù)被存儲在該第一寄存器中;以及一操作單元,用以響應(yīng)于一算術(shù)操作指令來對所述操作數(shù)執(zhí)行至少一算術(shù)操作以得到一運算數(shù)據(jù),并存儲該運算數(shù)據(jù)至該第一寄存器中。
2. 如權(quán)利要求1所述的數(shù)據(jù)處理裝置,其中所述寄存器中還包括一第二 寄存器,該數(shù)據(jù)處理裝置還包括一邏輯單元,用以響應(yīng)于一第二控制信號來提供該第一寄存器中的該運 算數(shù)據(jù)至該第二寄存器,接著提供存儲在該影子寄存器中的該第一備份操作 數(shù)至該第一寄存器。
3. 如權(quán)利要求2所述的數(shù)據(jù)處理裝置,其中該邏輯單元更用以響應(yīng)于多 個選擇信號來分別提供所述操作數(shù)至該操作單元。
4. 如權(quán)利要求2所述的數(shù)據(jù)處理裝置,其中該影子寄存器更用以響應(yīng)于 該第 一控制信號來對該第二操作數(shù)進行備份,以得到并存儲一第二備份操作 數(shù)。
5. 如權(quán)利要求1所述的數(shù)據(jù)處理裝置,其中該運算操作指令為一乘加指 令,該操作單元對所述操作數(shù)執(zhí)行至少一相乘操作及至少一累加操作。
6. 如權(quán)利要求5所述的數(shù)據(jù)處理裝置,其中所述寄存器包括一第三寄存器及一第四寄存器,該第三及該第四寄存器 用以分別存儲一第三操作數(shù)及一第四操作數(shù);及該操作單元用以對該第一、該第三及該第四操作數(shù)執(zhí)行一相乘操作及一 累加操作,以得到并存儲該運算數(shù)據(jù)。
7. —種數(shù)據(jù)處理方法,包括提供一寄存器組,該寄存器組包括多個寄存器,用以分別存儲多個操作 數(shù),其中所述寄存器中包括一第一寄存器,所述操作數(shù)中包括一第一操作數(shù);響應(yīng)于一第一控制信號來對該第一操作數(shù)進行備份,以得到并存儲一第一備份操作數(shù),其中,該第一操作數(shù)存儲于該第一寄存器中;響應(yīng)于一運算操作指令來對所述操作數(shù)執(zhí)行至少一運算操作,以得到一運算數(shù)據(jù);以及存儲該運算數(shù)據(jù)于該第一寄存器中。
8. 如權(quán)利要求7所述的數(shù)據(jù)處理方法,其中所述寄存器包括一第二寄存 器,該數(shù)據(jù)處理方法還包括響應(yīng)于一第二控制信號來存儲該運算數(shù)據(jù)于一第二寄存器;及 存儲該第 一備份操作數(shù)于該第 一寄存器中。
9. 如權(quán)利要求7所述的數(shù)據(jù)處理方法,其中對該第一操作數(shù)進行備份以 存儲該第 一備份操作數(shù)的步驟中還包括響應(yīng)于該第 一控制信號來對 一 第二寄存器中存儲的 一 第二操作數(shù)進行 備份,以得到并存儲一第二備份操作數(shù)。
全文摘要
本發(fā)明提供了一種數(shù)據(jù)處理裝置。該數(shù)據(jù)處理裝置包括寄存器組(Register BanK)、影子寄存器(Shadow Register)及操作單元。寄存器組包括多個寄存器,用以分別存儲多個操作數(shù)(Operand)。寄存器中包括第一寄存器,操作數(shù)中包括第一操作數(shù)。其中,這些寄存器為n位寄存器,n為自然數(shù)。影子寄存器用以響應(yīng)于第一控制信號來對第一操作數(shù)進行備份,以得到并存儲第一備份操作數(shù)。其中,第一操作數(shù)被存儲在第一寄存器中。操作單元用以響應(yīng)于算術(shù)操作指令來對操作數(shù)執(zhí)行至少一算術(shù)操作以得到運算數(shù)據(jù),并存儲運算數(shù)據(jù)至第一寄存器中。
文檔編號G06F9/302GK101419542SQ20081009232
公開日2009年4月29日 申請日期2008年4月22日 優(yōu)先權(quán)日2007年10月22日
發(fā)明者劉恕民, 陳俊裕 申請人:奇景光電股份有限公司