專利名稱:能夠復(fù)用浮點(diǎn)操作用構(gòu)件和向量操作用構(gòu)件的處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及微處理器的體系結(jié)構(gòu),特別涉及能夠復(fù)用浮點(diǎn)操作用構(gòu)件和向量操作 用構(gòu)件的處理器。
背景技術(shù):
隨著科學(xué)計(jì)算、多媒體、網(wǎng)絡(luò)通訊及數(shù)字信號(hào)處理等高計(jì)算密集應(yīng)用領(lǐng)域的快速 發(fā)展,對(duì)處理器的數(shù)據(jù)處理能力提出了越來(lái)越高的要求。向量計(jì)算是提高數(shù)據(jù)并行處理能 力的行之有效的方法,因此處理器普遍引入了向量計(jì)算指令。傳統(tǒng)的處理器為向量處理單 元與浮點(diǎn)和定點(diǎn)處理單元并列的結(jié)構(gòu),即在用于定點(diǎn)和浮點(diǎn)操作的寄存器和功能部件之 夕卜,還具有獨(dú)立的寄存器和功能部件用于進(jìn)行向量操作。對(duì)于上述傳統(tǒng)結(jié)構(gòu),必須通過(guò)移數(shù)指令來(lái)進(jìn)行向量操作與浮點(diǎn)操作之間的數(shù)據(jù)傳 遞,而移數(shù)指令一般在訪存部件執(zhí)行,因此存在執(zhí)行速度慢、數(shù)據(jù)效率低的缺點(diǎn)。另外,由于浮點(diǎn)操作用寄存器和向量操作用寄存器以及浮點(diǎn)操作用功能部件和向 量操作用功能部件各成一套,上述傳統(tǒng)結(jié)構(gòu)還存在處理器面積大、硬件實(shí)現(xiàn)成本高的缺點(diǎn)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明目的在于提供一種處理器,其能夠?qū)Ω↑c(diǎn)操作用構(gòu)件和向量操 作用構(gòu)件進(jìn)行復(fù)用,其中浮點(diǎn)操作用構(gòu)件包括浮點(diǎn)操作用寄存器和浮點(diǎn)操作用功能部件 等,而向量操作用構(gòu)件包括向量操作用寄存器和向量操作用功能部件等。為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種處理器,其包括兼容了浮點(diǎn)操作用功能部 件的全部功能的向量操作用功能部件,以在所述向量操作用功能部件處執(zhí)行所述浮點(diǎn)操 作。對(duì)于上述處理器,優(yōu)選地,所述向量操作用功能部件通過(guò)指令操作碼來(lái)識(shí)別是標(biāo) 量操作還是所述向量操作,并將所述浮點(diǎn)操作視為所述標(biāo)量操作進(jìn)行處理。為了實(shí)現(xiàn)上述目的,本發(fā)明提供了另一種處理器,其中向量操作和浮點(diǎn)操作共用 向量操作用寄存器堆。從而使得具有相同的寄存器號(hào)的寄存器既可被用作為向量操作用寄 存器,又可被用作為浮點(diǎn)操作用寄存器。進(jìn)而使得針對(duì)浮點(diǎn)操作用寄存器的指令操作相當(dāng) 于直接對(duì)具有相同寄存器號(hào)的向量操作用寄存器進(jìn)行操作,以及針對(duì)向量操作用寄存器的 指令操作相當(dāng)于直接對(duì)具有相同寄存器號(hào)的浮點(diǎn)操作用寄存器進(jìn)行操作。對(duì)于上述處理器,優(yōu)選地,所述浮點(diǎn)操作使用所述向量操作用寄存器堆的低64 位,而所述向量操作使用所述向量操作用寄存器堆的全部256位。根據(jù)本發(fā)明處理器的上述技術(shù)方案,一方面,通過(guò)在向量操作用功能部件處執(zhí)行 浮點(diǎn)操作,降低了實(shí)現(xiàn)復(fù)雜度、減少了處理器面積、節(jié)省了硬件資源,從而降低了處理器的 實(shí)現(xiàn)成本;另一方面,通過(guò)基于寄存器號(hào)使得向量操作用寄存器堆被部分復(fù)用作為浮點(diǎn)操 作用寄存器,能夠節(jié)省用以在浮點(diǎn)操作用寄存器與向量操作用寄存器之間移動(dòng)數(shù)據(jù)的指令 操作,從而有效提高了處理器的指令執(zhí)行效率。
圖1示出了 MIPS浮點(diǎn)控制寄存器FCSR的結(jié)構(gòu);以及圖2示出了本發(fā)明實(shí)施例的寄存器堆存儲(chǔ)結(jié)構(gòu)。
具體實(shí)施例方式如上所述,本發(fā)明旨在克服現(xiàn)有技術(shù)中浮點(diǎn)操作用構(gòu)件(包括浮點(diǎn)操作用寄存器 和浮點(diǎn)操作用功能部件)與向量操作用構(gòu)件(包括向量操作用寄存器和向量操作用功能部 件)相互獨(dú)立所導(dǎo)致的種種不足,并提供了一種能夠復(fù)用浮點(diǎn)操作用構(gòu)件和向量操作用構(gòu) 件的處理器,其不僅能夠降低硬件實(shí)現(xiàn)復(fù)雜度和成本,還能夠有效提高指令的執(zhí)行效率。
本發(fā)明的上述及其他技術(shù)特征和有益效果,將通過(guò)參照附圖進(jìn)行的優(yōu)選實(shí)施例介 紹得到更充分的闡述。一方面,利用向量操作用功能部件來(lái)實(shí)現(xiàn)浮點(diǎn)操作功能,從而使得向量操作用功 能部件與浮點(diǎn)操作用功能部件作為同一個(gè)處理器而存在。例如,在圖1所示的MIPS架構(gòu)下, 向量操作用功能部件可以與浮點(diǎn)操作用功能部件復(fù)用為同一個(gè)處理器,共稱為處理器1。其中,由于向量操作用功能部件兼容了現(xiàn)有技術(shù)中的浮點(diǎn)操作用功能部件的全部 功能,并且不需要額外的控制寄存器。因此,仍可以將向量操作用功能部件設(shè)計(jì)成協(xié)處理器 1(即CPl),并使用與CPl完全相同的控制寄存器以及用以訪問(wèn)CPl的控制寄存器的指令, 例如,用以將值從CPl的控制寄存器移動(dòng)到通用寄存器的指令CFC1、用以將值從CPl的通用 寄存器移動(dòng)到CPl的控制寄存器的指令CTCl等。通過(guò)將浮點(diǎn)操作復(fù)用至向量操作用功能部件,也即,在向量操作用功能部件處執(zhí) 行浮點(diǎn)操作,降低了實(shí)現(xiàn)復(fù)雜度、節(jié)省了硬件資源、減少了處理器面積,從而降低了處理器 的實(shí)現(xiàn)成本。更具體地,假定向量功能部件的模塊都采用256位寬,浮點(diǎn)為32位寬。并且,對(duì)于 浮點(diǎn),可以一次實(shí)現(xiàn)8個(gè)單精度操作或者4個(gè)雙精度操作;對(duì)于定點(diǎn),可以實(shí)現(xiàn)32個(gè)字節(jié)操 作、16個(gè)半字操作、8個(gè)字操作、4個(gè)雙字操作或者2個(gè)四字操作,當(dāng)然也可以256位一起操 作。向量操作用功能部件基本為4個(gè)64位浮點(diǎn)操作用功能部件并列而成。因此,浮點(diǎn)操作 可以直接復(fù)用向量操作用功能部件中的一個(gè)浮點(diǎn)功能部件。例如,向量操作模塊中的向量乘加模塊(VFMAF)、向量轉(zhuǎn)化模塊(VFCVT)、向量浮 點(diǎn)單拍模塊(VFONE)、向量浮點(diǎn)開(kāi)方模塊(VFDIV_SQRT)等都是將浮點(diǎn)相同功能的模塊復(fù)制 4份,其中既執(zhí)行普通的標(biāo)量浮點(diǎn)操作也執(zhí)行向量操作,并通過(guò)指令操作碼來(lái)識(shí)別是標(biāo)量操 作還是向量操作。另一方面,浮點(diǎn)操作用寄存器和向量操作用寄存器還共用向量操作用寄存器堆。 并且,具有相同的寄存器號(hào)使得浮點(diǎn)操作用寄存器與向量操作用寄存器之間存在相關(guān)關(guān) 系。也即,具有相同的寄存器號(hào)的寄存器既可被用作為向量操作用寄存器,又可被用作為 浮點(diǎn)操作用寄存器。如圖2所示,浮點(diǎn)數(shù)據(jù)使用寄存器堆的低64位,即只用AO、Al、A2、 A3. . . A63,而向量數(shù)據(jù)使用寄存器堆的全部256位。由于針對(duì)浮點(diǎn)操作用寄存器的指令操作相當(dāng)于直接對(duì)具有相同寄存器號(hào)的向量 操作用寄存器進(jìn)行操作,以及針對(duì)向量操作用寄存器的指令操作相當(dāng)于直接對(duì)具有相同寄存器號(hào)的浮點(diǎn)操作用寄存器進(jìn)行操作。由此使得,通過(guò)基于寄存器號(hào)來(lái)使得向量操作用寄 存器被部分復(fù)用作為浮點(diǎn)操作用寄存器,能夠節(jié)省用以將數(shù)據(jù)從浮點(diǎn)操作用寄存器移動(dòng)到 向量操作用寄存器的指令操作以及用以將數(shù)據(jù)從向量操作用寄存器移動(dòng)到浮點(diǎn)操作用寄 存器的指令操作,從而有效提高了處理器的指令執(zhí)行效率。接下來(lái),列舉兩個(gè)具體的應(yīng)用例,一條擴(kuò)展向量指令和一條浮點(diǎn)指令,以更形象地 說(shuō)明通過(guò)本申請(qǐng)所提供的能夠復(fù)用浮點(diǎn)操作用構(gòu)件和向量操作用構(gòu)件的處理器的工作原理。首先,增加一條向量加指令VPAND vr2 vrO vrl,該指令用于將兩個(gè)源操作數(shù)vrO 和vrl中的256位操作數(shù)分別按位相與,并將結(jié)果存入vr2中。其中,兩個(gè)源操作數(shù)為
vrO = 0xfl7df2e24103d82-90828821e004d4c02f871f5f7f096bfece8bb69dle0e0 13c ;vrl = 0x0c94e3195cl72fb8ab997857fblbc4f64a9e0f959a205a34e9a2a6d33924f 172。運(yùn)算結(jié)果為vr2 = 0x0014e20040002d8080800801e000c4c00a860fl51a004a34c882a69118040 130。其次,執(zhí)行浮點(diǎn)指令SUB. D vr2 vr3 vr2,該指令用于將上面vr2的結(jié)果與另一個(gè) 寄存器vr3相減,并將結(jié)果存入vr2中,其中,兩個(gè)源操作數(shù)分別為vr2 = 0x0014e20040002d8080800801e000c4c00a860fl51a004a34c882a69118040 130 ;vr3 = c882a69118040130。運(yùn)算結(jié)果為vr2 = 0x0014e20040002d8080800801e000c4c00a860f151a004a340000000000000 000。如果按照傳統(tǒng)方法完成上面兩條指令相同的功能,則需要1、首先,在向量功能部件執(zhí)行第一條指令VPAND,并將運(yùn)算結(jié)果存入向量寄存器;2、接著,經(jīng)由指令MTCl將第一條指令VPAND的運(yùn)算結(jié)果的最低64位 0xc882a69118040130從向量寄存器移動(dòng)到浮點(diǎn)寄存器;3、然后,在浮點(diǎn)功能部件執(zhí)行指令第二條SUB. D,并將所得到結(jié)果 0x0000000000000000存入浮點(diǎn)寄存器;4、繼續(xù),經(jīng)由指令MFCl將0x0000000000000000從浮點(diǎn)寄存器移動(dòng)到向量寄存 器;5、最后,在向量功能部件執(zhí)行一條混合指令,以將第一條指令VPAND結(jié)果的高192 位與從浮點(diǎn)寄存器移動(dòng)到向量寄存器的低64位進(jìn)行拼接,從而得到最終結(jié)果0x0014e20040002d8080800801e000c4c00a860fl51a004a340000000000000000o由此可見(jiàn),如果不采用本發(fā)明所提供的處理器,需要采用5條指令才能完成上面2 條指令的功能。因此,毋庸置疑,本發(fā)明確實(shí)能夠有效提高處理器的指令執(zhí)行效率。需要聲明的是,上述發(fā)明內(nèi)容及具體實(shí)施方式
僅旨在證明本發(fā)明所提供技術(shù)方案 的實(shí)際應(yīng)用,不應(yīng)解釋為對(duì)本發(fā)明保護(hù)范圍的限定。本領(lǐng)域技術(shù)人員在本發(fā)明的精神和原理內(nèi),當(dāng)可作各種修改、等同替換、或改進(jìn)。 本發(fā)明的保護(hù)范圍以所附權(quán)利要求書為準(zhǔn)。
權(quán)利要求
一種處理器,其特征在于,包括兼容了浮點(diǎn)操作用功能部件的全部功能的向量操作用功能部件,以在所述向量操作用功能部件處執(zhí)行所述浮點(diǎn)操作。
2.根據(jù)權(quán)利要求1所述的處理器,其特征在于,所述向量操作用功能部件通過(guò)指令操 作碼來(lái)識(shí)別是標(biāo)量操作還是所述向量操作,并將所述浮點(diǎn)操作視為所述標(biāo)量操作進(jìn)行處理。
3.根據(jù)權(quán)利要求1或2所述的處理器,其特征在于,所述向量操作和所述浮點(diǎn)操作共用 向量操作用寄存器堆,從而使得具有相同的寄存器號(hào)的寄存器既可被用作為向量操作用寄 存器,又可被用作為浮點(diǎn)操作用寄存器,進(jìn)而使得針對(duì)浮點(diǎn)操作用寄存器的指令操作相當(dāng) 于直接對(duì)具有相同寄存器號(hào)的向量操作用寄存器進(jìn)行操作,以及針對(duì)向量操作用寄存器的 指令操作相當(dāng)于直接對(duì)具有相同寄存器號(hào)的浮點(diǎn)操作用寄存器進(jìn)行操作。
4.根據(jù)權(quán)利要求3所述的處理器,其特征在于,所述浮點(diǎn)操作使用所述向量操作用寄 存器堆的低64位,而所述向量操作使用所述向量操作用寄存器堆的全部256位。
5.一種處理器,其特征在于,向量操作和浮點(diǎn)操作共用向量操作用寄存器堆,從而使得 具有相同的寄存器號(hào)的寄存器既可被用作為向量操作用寄存器,又可被用作為浮點(diǎn)操作用 寄存器,進(jìn)而使得針對(duì)浮點(diǎn)操作用寄存器的指令操作相當(dāng)于直接對(duì)具有相同寄存器號(hào)的向 量操作用寄存器進(jìn)行操作,以及針對(duì)向量操作用寄存器的指令操作相當(dāng)于直接對(duì)具有相同 寄存器號(hào)的浮點(diǎn)操作用寄存器進(jìn)行操作。
6.根據(jù)權(quán)利要求5所述的處理器,其特征在于,所述浮點(diǎn)操作使用所述向量操作用寄 存器堆的低64位,而所述向量操作使用所述向量操作用寄存器堆的全部256位。
全文摘要
能夠復(fù)用浮點(diǎn)操作用構(gòu)件和向量操作用構(gòu)件的處理器,其包括兼容了浮點(diǎn)操作用功能部件的全部功能的向量操作用功能部件,其將浮點(diǎn)操作作為標(biāo)量操作處理;既可用作向量操作用寄存器又可用作浮點(diǎn)操作用寄存器的向量操作用寄存器堆,其中具有相同的寄存器號(hào)使得浮點(diǎn)操作用寄存器與向量操作用寄存器相互關(guān)聯(lián)。通過(guò)在向量操作用功能部件處執(zhí)行浮點(diǎn)操作,降低了實(shí)現(xiàn)復(fù)雜度、減少了處理器面積、節(jié)省了硬件資源,從而降低了處理器的實(shí)現(xiàn)成本。此外,通過(guò)基于寄存器號(hào)使得向量操作用寄存器堆被部分復(fù)用作為浮點(diǎn)操作用寄存器,能夠節(jié)省用以在浮點(diǎn)操作用寄存器與向量操作用寄存器之間移動(dòng)數(shù)據(jù)的指令操作,從而有效提高了處理器的指令執(zhí)行效率。
文檔編號(hào)G06F9/30GK101819516SQ201010100260
公開(kāi)日2010年9月1日 申請(qǐng)日期2010年1月22日 優(yōu)先權(quán)日2010年1月22日
發(fā)明者胡偉武, 郇丹丹 申請(qǐng)人:北京龍芯中科技術(shù)服務(wù)中心有限公司