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