專利名稱:一種處理器結(jié)構(gòu)的制作方法
一種處理器結(jié)構(gòu)
技術(shù)領(lǐng)域:
本發(fā)明涉及集成電路設(shè)計領(lǐng)域,具體涉及一種可配置存儲部件和數(shù)據(jù)通路的處理
器結(jié)構(gòu)。背景技術(shù):
隨著集成電路制造工藝進入90nm-45nm階段,復(fù)雜算法(如數(shù)字媒體和無線通信 算法等)的ASIC (Application Specific Integrated Circuit,即專用集成電路)實現(xiàn),面 臨設(shè)計周期長、設(shè)計成本高、靈活性差、擴展性差,難以滿足產(chǎn)品快速上市、功能不斷提升的 需求。因此,基于支持存儲指令控制的處理器來實現(xiàn)復(fù)雜算法,就顯得越來越重要。
算法可以分解為一系列的運算和存儲的組合,然而,一般處理器和指令系統(tǒng)的設(shè) 計方法,并沒有考慮支持復(fù)雜算法的存儲功能的實現(xiàn)。即使有存儲功能指令設(shè)計的,也是采 用load, store指令。這種指令需要程序員提供地址進行一次操作,比如對地址001存數(shù)據(jù) 1,則需要一條store指令,但是如果對一系列數(shù)據(jù),比如001-111這一段地址連續(xù)進行數(shù)據(jù) 1-16的存儲操作時,需要store指令中地址的自動增加,這往往需要一段指令的循環(huán),或用 16條store指令完成,這種方案對于數(shù)據(jù)段的存取操作增加了操作的復(fù)雜性。
同時,基于一般處理器指令系統(tǒng)的算法設(shè)計,程序代碼的語義明確,比較容易被抄 襲,難以保護設(shè)計者的智力勞動成果。
發(fā)明內(nèi)容
本發(fā)明的主要目的就是解決現(xiàn)有技術(shù)中的問題,提供一種處理器結(jié)構(gòu),能夠支持 算法的存儲功能,操作簡便并具有良好的算法保密性。 為實現(xiàn)上述目的,本發(fā)明提供一種處理器結(jié)構(gòu),包括算法數(shù)據(jù)控制部件和至少一
個用于對數(shù)據(jù)進行存儲或讀出操作的存儲部件,所述存儲部件包括存儲單元和配置寄存
器,所述算法數(shù)據(jù)控制部件執(zhí)行配置指令,將配置信息寫入指令中指定的存儲部件的配置
寄存器,所述存儲部件根據(jù)其自身配置寄存器中的配置信息進行數(shù)據(jù)存取。 所述配置指令包含操作碼、配置信息和配置目的三個操作元素,所述操作碼為規(guī)
定指令所執(zhí)行操作的命令碼,所述配置信息為指令操作的對象,所述配置目的用于指定寫
入配置信息的配置寄存器。 在一種實施例中,所述存儲部件還包括分別連接該存儲部件的配置寄存器和存儲 單元的地址產(chǎn)生器,所述地址產(chǎn)生器根據(jù)所述配置寄存器中的配置信息設(shè)定所述存儲單元 存取數(shù)據(jù)的地址基址、跳變步長和跳變次數(shù)。 在另一種實施例中,所述存儲部件還包括至少一個分別連接該存儲部件的配置寄 存器和存儲單元的格式轉(zhuǎn)換器,根據(jù)所述配置寄存器中的配置信息選擇相應(yīng)的格式轉(zhuǎn)換 器,將外部數(shù)據(jù)轉(zhuǎn)化為針對該存儲單元存取的格式。 本發(fā)明的有益效果是本發(fā)明非常簡單,不需要復(fù)雜的譯碼邏輯,可簡化硬件結(jié) 構(gòu),但可支持復(fù)雜的存儲功能。在需要增加存儲功能和存儲部件時,不需要對指令系統(tǒng)進行修改和增加,只需定義新增配置信息即可。同時,本發(fā)明的指令系統(tǒng)與現(xiàn)有技術(shù)中的具有確 定性語義的指令不同,本發(fā)明的配置指令中包含操作碼、配置信息和配置目的三個操作元 素,不同的配置信息來源和不同的配置目的,可產(chǎn)生不同的語義,可能同樣的指令完成不同 的配置,所以本發(fā)明具有良好的算法保密性。
圖1是本發(fā)明一種實施例中處理器結(jié)構(gòu)中ADU的硬件模塊框圖;
圖2是本發(fā)明存儲部件的結(jié)構(gòu)框圖;
圖3是本發(fā)明一種實施例的配置硬件框圖。
具體實施方式
本申請的特征及優(yōu)點將通過實施例結(jié)合附圖進行詳細(xì)說明。
實施例一 處理器中包括算法數(shù)據(jù)控制部件(簡稱ADU, algorithm and datacontrol unit)、 用于選擇數(shù)據(jù)輸入或輸出路徑的數(shù)據(jù)通路和至少一個用于對數(shù)據(jù)進行存儲或讀出操作的 存儲部件。ADU負(fù)責(zé)執(zhí)行配置指令,對數(shù)據(jù)通路的數(shù)據(jù)路徑和存儲部件的存取功能進行配置。 所述ADU可以理解為是一個不包括運算部件的只有幾條指令的處理器,在一種實 施例中,算法數(shù)據(jù)控制部件ADU包括加載模塊、指令存儲器、數(shù)據(jù)存儲器、譯碼器、和通用寄 存器,還可以進一步包括定時或計數(shù)器等模塊。如圖1所示為算法數(shù)據(jù)控制部件ADU 10的 一種具體結(jié)構(gòu),模塊1為程序計數(shù)器PC,用來指示當(dāng)前運行程序的地址;模塊2和3分別代 表數(shù)據(jù)存儲器DMEM和指令存儲器MEM,分別用來存儲數(shù)據(jù)和指令,當(dāng)然也可以采用一個存 儲器存儲數(shù)據(jù)和指令;模塊4是譯碼單元,用做分析指令含義,解釋指令行為;模塊6為通 用寄存器組,用于存儲數(shù)據(jù)或指令;模塊7表示加載模塊。加載模塊7從外部端口加載數(shù)據(jù) 存入數(shù)據(jù)存儲器匿EM或指令存儲器MEM。當(dāng)加載模塊7加載的是數(shù)據(jù)時,加載模塊將數(shù)據(jù) 從輸入端口加載至數(shù)據(jù)存儲器dmem,當(dāng)加載模塊7加載的是指令時,載模塊將指令從輸入 端口加載至指令存儲器imem,通過PC模塊提供的地址將從指令存儲器中選擇對應(yīng)指令進 行操作。 每個存儲部件包括存儲單元和配置寄存器,所述算法數(shù)據(jù)控制部件執(zhí)行配置指 令,將配置信息寫入指令中指定的存儲部件的配置寄存器,所述存儲部件根據(jù)其自身配置 寄存器中的配置信息進行數(shù)據(jù)存取。 如圖2所示,在一種具體的實施例中,存儲部件包括存儲單元、配置寄存器和地址 產(chǎn)生器,地址產(chǎn)生器分別連接該存儲部件的配置寄存器和存儲單元,所述地址產(chǎn)生器根據(jù) 所述配置寄存器中的配置信息設(shè)定所述存儲單元存取數(shù)據(jù)的地址基址(即存取數(shù)據(jù)的初 始地址)、跳變步長和跳變次數(shù),根據(jù)地址基址,跳變步長,跳變次數(shù)可確定數(shù)據(jù)存取的實際 物理地址。例如,需要存儲1-16的一個數(shù)據(jù)段時,地址產(chǎn)生器可根據(jù)配置信息,產(chǎn)生出存儲 數(shù)據(jù)的地址基址,控制數(shù)據(jù)從存儲單元的該地址開始存儲,并以跳變步長為l,跳變15次, 直到將最后一個數(shù)據(jù)存入。采用這種方式存取數(shù)據(jù),可以通過地址產(chǎn)生器根據(jù)配置信息中 的內(nèi)容自動產(chǎn)生一大段有規(guī)律的地址,而面對DSP算法,大段數(shù)據(jù)的存取都是有規(guī)律的,如地址自增1 ,自增2等。這樣可以只需要執(zhí)行一次指令,即可對一段數(shù)據(jù)進行存取操作,而不
需要重復(fù)執(zhí)行16條指令或進行一段指令的循環(huán),從而簡化了操作,尤其是對流處理或者大
塊數(shù)據(jù)存取的操作比較方便,不用每次存取都由程序員控制給出地址。 因存儲單元可以是FLASH, EEPR0M或SRAM等任意一種存儲介質(zhì),不同的存儲介質(zhì)
進行存儲的方式不同,為通過配置將相同的輸入數(shù)據(jù)格式轉(zhuǎn)化為不同存儲器的讀寫數(shù)據(jù)格
式,在另外的具體實施例中,存儲部件還可以包括至少一個分別連接該存儲部件的配置寄
存器和存儲單元的格式轉(zhuǎn)換器,將所述配置寄存器中的配置信息進行譯碼,選擇相應(yīng)的格
式轉(zhuǎn)換器,通過該格式轉(zhuǎn)換器將外部數(shù)據(jù)轉(zhuǎn)化為針對該存儲單元存取的格式。例如,EEPROM
是串行數(shù)據(jù)存取,和SRAM的存取方式不同,則需要對數(shù)據(jù)進行一定的打包或解包等轉(zhuǎn)換操
作才能進行存取,而轉(zhuǎn)換操作就由格式轉(zhuǎn)換器完成。不同的存儲器需要不同的格式轉(zhuǎn)換器,
因而在該實施例中,可設(shè)置多種格式轉(zhuǎn)換器,并根據(jù)配置信息在多種格式轉(zhuǎn)換器中進行選擇。 如圖3所示為處理器的一種具體結(jié)構(gòu),為方便說明,本圖中存儲部件僅畫了兩個, 存儲部件可以有多個,可根據(jù)具體需要設(shè)計。圖中模塊IO表示處理器中的ADU單元,該單 元負(fù)責(zé)執(zhí)行本發(fā)明中的一系列指令;ADU單元10執(zhí)行配置指令,對數(shù)據(jù)通路和存儲部件30 的存取功能進行配置。所述數(shù)據(jù)通路包括數(shù)據(jù)輸入通路20 (簡稱Switch)和輸出選擇單 元40,所述數(shù)據(jù)輸入通路20包括數(shù)據(jù)輸入交換開關(guān)21和配置寄存器22,所述輸出選擇單 元40包括數(shù)據(jù)輸出轉(zhuǎn)換開關(guān)42和輸出端口配置寄存器41 。 ADU單元10根據(jù)配置指令,將 配置信息寫入指令中指定的數(shù)據(jù)通路的配置寄存器,所述數(shù)據(jù)輸入通路20根據(jù)其自身配 置寄存器22中的配置信息控制數(shù)據(jù)輸入交換開關(guān)21的切換,所述輸出選擇單元40根據(jù)其 自身配置寄存器41中的配置信息控制數(shù)據(jù)輸出轉(zhuǎn)換開關(guān)42的切換。即將配置信息作為控 制信號,控制開關(guān)的切換。數(shù)據(jù)輸入通路20連接輸入端口 60和ADU單元10中的通用寄存 器,數(shù)據(jù)的輸入來源可以ADU單元IO中的通用寄存器,還可以是輸入端口 60。輸出選擇單 元40連接輸出端口 50和ADU單元10中的通用寄存器,數(shù)據(jù)的輸出路徑可以是通過輸出端 口 50輸出,也可以輸出到通用寄存器。存儲部件30的結(jié)構(gòu)可以采用上述任一種結(jié)構(gòu),ADU 單元10執(zhí)行配置指令,將配置信息寫入其配置寄存器31中,存儲部件30根據(jù)配置信息將 數(shù)據(jù)存入存儲單元MEM中,或?qū)?shù)據(jù)從存儲單元MEM中讀出。 配置指令包含操作碼、配置信息和配置目的三個操作元素,所述操作碼為規(guī)定指 令所執(zhí)行操作的命令碼,所述配置信息為指令操作的對象,所述配置目的用于指定寫入配 置信息的配置寄存器。所述操作碼、配置信息和配置目的可由用戶設(shè)置,配置指令的格式和 位寬不限,可根據(jù)實際情況進行調(diào)整格式和位寬。所述配置信息可以為通用寄存器中的內(nèi) 容,也可以是立即數(shù)或數(shù)據(jù)存儲器的內(nèi)容或輸入端口的寄存器的內(nèi)容。例如
Movesc reg, configreg : 該指令將通用寄存器reg中的數(shù)據(jù)寫入指定的配置寄存器,該配置寄存器直接完 成相應(yīng)的運算部件的功能或數(shù)據(jù)通路的路徑配置。 作為該類指令的變種,在指令位寬允許的情況下,也可將上述指令中的通用寄存 器reg改為立即數(shù)imm,即Movesc imm, configreg。將imm直接寫入指定的配置寄存器。
立即數(shù)imm也可表示數(shù)據(jù)存儲器的地址,將對應(yīng)地址的數(shù)據(jù)存儲器的數(shù)據(jù)作為配 置信息,立即數(shù)還可以是具體的操作或數(shù)值。
上述配置寄存器中數(shù)據(jù)所代表的配置含義,S卩指定的運算操作或數(shù)據(jù)路徑,可以
根據(jù)需要定制,從而使非法的程序代碼獲取者無法破譯實際執(zhí)行的算法。 Movesd reg, datareg : 該指令將通用寄存器reg中的數(shù)據(jù)寫入指定的數(shù)據(jù)寄存器。 作為該指令的變種,該指令中的reg可以是處理器的數(shù)據(jù)輸入端口寄存器,即 將處理器的數(shù)據(jù)輸入端口寄存器的值寫入指定的數(shù)據(jù)寄存器,配置指令為I即ut port, datareg。同樣,該指令中的datareg可以指處理器的數(shù)據(jù)輸出端口寄存器,即將處理器的 通用寄存器的值寫入指定的數(shù)據(jù)輸出端口寄存器,配置指令為0utput reg,port。
需要存入數(shù)據(jù)時,配置數(shù)據(jù)輸入通路20的數(shù)據(jù)路徑,相應(yīng)的指令為movesc reg configreg,其中conf igreg用于配置數(shù)據(jù)輸入通路20中的數(shù)據(jù)路徑,即選擇交換開關(guān)。數(shù) 據(jù)輸入通路20根據(jù)其配置寄存器22中的配置信息,選擇數(shù)據(jù)的輸入來源,數(shù)據(jù)在數(shù)據(jù)輸入 通路20的數(shù)據(jù)寄存器23中進行暫存后輸入到某個指定的存儲部件30中。配置存儲部件 簇各存儲部件30的存儲功能,相應(yīng)的指令為movesc reg configreg,其中configreg用于 配置存儲部件30的存儲功能,存儲部件30根據(jù)其配置寄存器31中的配置信息,從地址基 址按照跳變步長和跳變次數(shù)存入數(shù)據(jù)。并配置和管理數(shù)據(jù)輸入和輸出端口。
按一定的時間和順序重復(fù)上述步驟,即是實現(xiàn)算法的程序,便可完成預(yù)定算法的 存儲功能。 需要讀出數(shù)據(jù)時,存儲部件30根據(jù)其配置寄存器31中的配置信息,從地址基址按 照跳變步長和跳變次數(shù)讀出數(shù)據(jù),并輸出數(shù)據(jù)到輸出選擇單元40,輸出選擇單元40根據(jù)其 配置寄存器41中的配置信息,選擇數(shù)據(jù)的輸出路徑。 以上可知,利用該配置指令及其硬件實現(xiàn),可方便地進行數(shù)據(jù)存取操作,尤其適用
于對大規(guī)模數(shù)據(jù)流或數(shù)據(jù)段處理的情況,有利于級聯(lián)或陣列結(jié)構(gòu)的實現(xiàn)方式,每個處理器
都可通過配置指令完成不同的存儲功能,特別是針對數(shù)字信號處理的陣列。 本發(fā)明僅需通過簡單的配置指令即可完成各種復(fù)雜的存儲操作,從指令設(shè)計上來
看各功能單元執(zhí)行的指令基本相同,而通過配置信息的不同卻可完成不同的操作。例如同
樣的movesc指令,根據(jù)所寫的配置寄存器不同而配置不同步驟的功能實現(xiàn);因此,本發(fā)明
中的指令具有加密性,各系統(tǒng)設(shè)計廠商可根據(jù)實際情況自定義配置信息的語義,從而得到
自定義的指令系統(tǒng),并可有效保護自主知識產(chǎn)權(quán)。 實施例二、 本實施例是在上述實施例基礎(chǔ)上的進一步改進。
在進行數(shù)據(jù)流或數(shù)據(jù)段處理時,存在兩種情況 1)當(dāng)ADU單元執(zhí)行完一個指令(例如該指令是存入一個數(shù)據(jù)段)后,需要等待存 儲部件操作完成后才可以執(zhí)行下一條指令(例如下一條指令是存入另一個數(shù)據(jù)段)。
2)當(dāng)處理單元a需要從另兩個處理單元b和c取數(shù)再進行運算時,會出現(xiàn)其中一 個處理單元b的數(shù)據(jù)到得比較早,另外一個處理單元c數(shù)據(jù)到得比較晚(由于兩個處理器 工作任務(wù)不同,很容易造成數(shù)據(jù)到達(dá)時間上的不統(tǒng)一 ),處理單元a會將處理單元b和一個 空數(shù)據(jù)發(fā)生有效操作,而導(dǎo)致計算錯誤。 為解決上述兩個問題,本實施例定義了控制處理器暫停的暫停指令,所述暫停指 令包括操作碼和暫停時間計數(shù)信息兩個操作元素,其一種格式是
6
Rouser#imm ; 在處理器對數(shù)據(jù)流進行處理時ADU執(zhí)行暫停指令,控制處理器處于暫停狀態(tài),啟 動定時器計時或計數(shù)器計數(shù),同時使處理器處于暫停狀態(tài),使所述數(shù)據(jù)通路和/或存儲部 件的配置信息保持不變,直到接收到恢復(fù)信息。這段時間內(nèi),ADU單元不執(zhí)行指令,輸出數(shù) 據(jù)比較快的處理單元也處于等待狀態(tài)。當(dāng)計時或計數(shù)完成時,處理器中各部分恢復(fù)正常運 行狀態(tài)。 該指令也可寫為rouser reg的形式,這時reg中的值取代imm。
暫停指令還可以是以下格式
HLT ; 該指令作為rouser指令的特殊形式,即當(dāng)ADU執(zhí)行該指令時,將暫停處理器的工 作,直到被其他信號(如中斷信號等)喚醒。 以上內(nèi)容是結(jié)合具體的優(yōu)選實施方式對本發(fā)明所作的進一步詳細(xì)說明,不能認(rèn)定 本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在 不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的 保護范圍。
權(quán)利要求
一種處理器結(jié)構(gòu),包括算法數(shù)據(jù)控制部件和至少一個用于對數(shù)據(jù)進行存儲或讀出操作的存儲部件,其特征在于所述存儲部件包括存儲單元和配置寄存器,所述算法數(shù)據(jù)控制部件執(zhí)行配置指令,將配置信息寫入指令中指定的存儲部件的配置寄存器,所述存儲部件根據(jù)其自身配置寄存器中的配置信息進行數(shù)據(jù)存取。
2. 如權(quán)利要求l所述的處理器結(jié)構(gòu),其特征在于所述配置指令包含操作碼、配置信息 和配置目的三個操作元素,所述操作碼為規(guī)定指令所執(zhí)行操作的命令碼,所述配置信息為 指令操作的對象,所述配置目的用于指定寫入配置信息的配置寄存器。
3. 如權(quán)利要求2所述的處理器結(jié)構(gòu),其特征在于所述操作碼、配置信息和配置目的可 由用戶設(shè)置,所述指令的位寬可根據(jù)實際情況進行調(diào)整。
4. 如權(quán)利要求1至3中任一項所述的處理器結(jié)構(gòu),其特征在于所述存儲部件還包括 分別連接該存儲部件的配置寄存器和存儲單元的地址產(chǎn)生器,所述地址產(chǎn)生器根據(jù)所述配 置寄存器中的配置信息設(shè)定所述存儲單元存取數(shù)據(jù)的地址基址、跳變步長和跳變次數(shù)。
5. 如權(quán)利要求4所述的處理器結(jié)構(gòu),其特征在于所述存儲部件還包括至少一個分別 連接該存儲部件的配置寄存器和存儲單元的格式轉(zhuǎn)換器,根據(jù)所述配 置寄存器中的配置信 息選擇相應(yīng)的格式轉(zhuǎn)換器,將外部數(shù)據(jù)轉(zhuǎn)化為針對該存儲單元存取的格式。
6. 如權(quán)利要求4所述的處理器結(jié)構(gòu),其特征在于所述處理器還包括用于選擇數(shù)據(jù)輸 入或輸出路徑的數(shù)據(jù)通路,所述數(shù)據(jù)通路包括數(shù)據(jù)輸入通路和輸出選擇單元,所述數(shù)據(jù)輸 入通路包括數(shù)據(jù)輸入交換開關(guān)和配置寄存器,所述輸出選擇單元包括數(shù)據(jù)輸出轉(zhuǎn)換開關(guān)和 輸出端口配置寄存器,所述算法數(shù)據(jù)控制部件還根據(jù)配置指令,將配置信息寫入指令中指 定的數(shù)據(jù)通路的配置寄存器,所述數(shù)據(jù)輸入通路根據(jù)其自身配置寄存器中的配置信息控制 數(shù)據(jù)輸入交換開關(guān)的切換,所述輸出選擇單元根據(jù)其自身配置寄存器中的配置信息控制數(shù) 據(jù)輸出轉(zhuǎn)換開關(guān)的切換。
7. 如權(quán)利要求1至3中任一項所述的處理器結(jié)構(gòu),其特征在于所述算法數(shù)據(jù)控制部 件包括加載模塊和通用寄存器,所述加載模塊用于從外部端口加載指令或數(shù)據(jù)并存入通用 寄存器,所述配置信息為通用寄存器中的內(nèi)容、立即數(shù)或數(shù)據(jù)存儲器中的內(nèi)容。
8. 如權(quán)利要求1至3中任一項所述的處理器結(jié)構(gòu),其特征在于所述算法數(shù)據(jù)控制部 件還執(zhí)行暫停指令,控制處理器處于暫停狀態(tài),并使所述存儲部件的配置信息保持不變,直 到接收到恢復(fù)信息。
9. 如權(quán)利要求8所述的處理器結(jié)構(gòu),其特征在于所述恢復(fù)信息為從執(zhí)行暫停指令開 始計時或計數(shù)完成的信息或中斷信號。
10. 如權(quán)利要求8或9所述的處理器結(jié)構(gòu),其特征在于所述暫停指令包括操作碼和暫 停時間計數(shù)信息兩個操作元素。
全文摘要
本發(fā)明公開了一種處理器結(jié)構(gòu),包括算法數(shù)據(jù)控制部件和至少一個用于對數(shù)據(jù)進行存儲或讀出操作的存儲部件,所述存儲部件包括存儲單元和配置寄存器,所述算法數(shù)據(jù)控制部件執(zhí)行配置指令,將配置信息寫入指令中指定的存儲部件的配置寄存器,所述存儲部件根據(jù)其自身配置寄存器中的配置信息進行數(shù)據(jù)存取。本發(fā)明可方便地進行數(shù)據(jù)存取操作,尤其適用于對大規(guī)模數(shù)據(jù)流或數(shù)據(jù)段處理的情況。同時,本發(fā)明具有良好的算法保密性。
文檔編號G06F15/78GK101727433SQ200810216858
公開日2010年6月9日 申請日期2008年10月20日 優(yōu)先權(quán)日2008年10月20日
發(fā)明者劉彥亮, 葉兆華, 周丹, 戴鵬, 王新安, 肖高發(fā), 陳紅英, 魏來, 黃維 申請人:北京大學(xué)深圳研究生院