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