欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

可配置的硬件塊的制作方法

文檔序號:6419163閱讀:279來源:國知局
專利名稱:可配置的硬件塊的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種如權(quán)利要求1的前序部分所述的裝置,也即可配置的硬件塊,它被設(shè)計(jì)用來根據(jù)其配置讀出存于存儲裝置之內(nèi)的數(shù)據(jù),并對讀出的數(shù)據(jù)進(jìn)行算術(shù)及/或邏輯處理,然后把表示該處理結(jié)果的數(shù)據(jù)寫入所述的存儲裝置。
長期以來,我們已經(jīng)知道有許多實(shí)施形式的可配置硬件塊。另外,諸如PAL(可編程陣列邏輯)、GAL(普通陣列邏輯)等所謂的現(xiàn)場可編程的邏輯元件也被視為這種硬件塊。
可編程的硬件塊也可以應(yīng)用在程控單元之中;已知它們可應(yīng)用在所謂的>S<puter之中。
直到前不久,諸如微處理器、微控制器等程控單元幾乎都是按照已知的Von-Neumann模型進(jìn)行設(shè)計(jì)的。盡管(譬如根據(jù)Harvard-模型)已脫離裝設(shè)分開的代碼及數(shù)據(jù)存儲區(qū),但現(xiàn)今在執(zhí)行(相關(guān)作用或操作的)指令時(shí)幾乎都是純粹按順序的。
指令的順序處理限制了處理指令的最大速率。
通過所謂的RISC處理器可實(shí)現(xiàn)非常高的速率。該處理器具有縮減的指令系統(tǒng),并由此可實(shí)現(xiàn)用固定連接的硬件來代替通常被用來對需處理的指令進(jìn)行解碼和執(zhí)行的微程序。這還可以實(shí)現(xiàn)非??於行У毓ぷ鞯闹噶盍魉€和指令執(zhí)行單元,這樣,平均每個(gè)處理器脈沖就能執(zhí)行將近一個(gè)指令。然而,由于前后的處理和結(jié)果都是按順序的,所以即便利用RISC處理器也不能實(shí)現(xiàn)每處理器脈沖執(zhí)行一個(gè)指令。
每處理器脈沖能處理多于一個(gè)指令的程控單元為上文已經(jīng)提到的>S<puter。譬如在EP 0825540 A1中就曾講述過這種>S<puter。
>S<puter的基本結(jié)構(gòu)如圖3所示,下面參考附圖來對此進(jìn)行講述。
出于完整性的原因,需要指出的是,此處只部分地示出和講述所述的>S<puter、尤其是其處理指令的部分(針對當(dāng)前所考察的可配置的硬件塊,只講述對其有意義的部分)。
圖3所示的>S<puter包括一個(gè)預(yù)解碼單元1、指令緩沖器2、解碼重命名及裝載單元3、s語句變化單元(s單元)4、數(shù)據(jù)高速緩沖器5、以及存儲器接口6,其中,s單元4包括有結(jié)構(gòu)編程緩沖器(可編程結(jié)構(gòu)緩沖器)41、具有可編程結(jié)構(gòu)的功能單元42、整型/地址指令緩沖器43和寄存器塊(整型寄存器文件)44。
所述>S<puter的特殊性尤其在于其s單元4,準(zhǔn)確地說是功能單元42。該功能單元42是一種可結(jié)構(gòu)化的硬件,它可根據(jù)>S<puter所執(zhí)行的指令或指令序列進(jìn)行動(dòng)態(tài)地配置,使得能夠執(zhí)行由指令或指令序列所規(guī)定的作用或操作。
由>S<puter執(zhí)行的指令(準(zhǔn)確地說是表示該指令的代碼數(shù)據(jù))從圖中未示出的存儲器出發(fā),經(jīng)過存儲器接口6到達(dá)預(yù)解碼單元1,并在此進(jìn)行預(yù)解碼;在此,譬如可以在所述的代碼數(shù)據(jù)中插入一些信息,該信息可以使稍后在解碼重命名及裝載單元3中的解碼變得更容易。然后,所述的代碼數(shù)據(jù)經(jīng)過指令緩沖器2到達(dá)該解碼重命名及裝載單元3,并在此對由代碼數(shù)據(jù)表示的指令的執(zhí)行進(jìn)行預(yù)處理。該預(yù)處理包括代碼數(shù)據(jù)的解碼、功能單元42的配置或結(jié)構(gòu)化、整型寄存器文件44的初始化或管理、以及按需要進(jìn)行配置的功能單元42的啟動(dòng)。
通過采用表示所需配置的配置數(shù)據(jù)來實(shí)現(xiàn)所述功能單元42的結(jié)構(gòu)化或配置,而且該配置數(shù)據(jù)從解碼重命名及裝載單元3被寫入到可編程結(jié)構(gòu)緩沖器41中。所述表示所需配置的配置數(shù)據(jù)是在解碼重命名及裝載單元3內(nèi)創(chuàng)建的;但它們也可以以編碼的形式而包含在所述的編碼數(shù)據(jù)之中。
功能單元42被設(shè)計(jì)用來從寄存器文件44及/或數(shù)據(jù)高速緩沖器5中讀取數(shù)據(jù),并對讀出的數(shù)據(jù)進(jìn)行算術(shù)及/或邏輯處理,然后把表示該處理結(jié)果的數(shù)據(jù)寫入寄存器文件44和/或數(shù)據(jù)高速緩沖器5之中;因此它(即功能單元42)是一種如權(quán)利要求1的前序部分所講述的可配置的硬件塊。
在對寄存器文件44進(jìn)行合適的初始化和對功能單元42進(jìn)行合適的配置時(shí),由所述功能單元42的工作來完成那些通過執(zhí)行如下指令而導(dǎo)致的作用或操作,即所述寄存器文件44的初始化和功能單元42的配置就是基于該指令而產(chǎn)生的。
眾所周知,對于通過執(zhí)行指令所導(dǎo)致的作用而言,如果用相應(yīng)配置的硬件(功能單元42)來執(zhí)行它,則要比由常規(guī)程控單元在“標(biāo)準(zhǔn)”的算術(shù)邏輯單元(ALU)中執(zhí)行這些指令時(shí)快得多。這在如下情形尤其是這樣,即所述的硬件(功能單元42)作如此配置,使得通過其工作可實(shí)現(xiàn)與執(zhí)行多個(gè)相繼的指令(包括多個(gè)指令的宏指令)相一致的結(jié)果。
有關(guān)>S<puter的構(gòu)造、功能以及作用方式的詳細(xì)情況可以從所述的EP 0825540 A1中查取。
出于完整性的原因,此處應(yīng)指出的是,并不是所有由>S<puter執(zhí)行指令時(shí)所導(dǎo)致的作用都能由功能單元42執(zhí)行。尤其是諸如分支、轉(zhuǎn)移、不操作、等待以及停止等被用于程序運(yùn)行控制或監(jiān)視流程控制的指令通常都是用常規(guī)的方式和方法來執(zhí)行的。
不過,通過采用諸如功能單元42等可配置的硬件塊,每時(shí)間單位通??梢员炔捎贸R?guī)的程控單元要執(zhí)行更多的、由執(zhí)行指令所導(dǎo)致的作用,也就是說,每個(gè)處理器脈沖可以處理多于一個(gè)指令。
但是也存在一些應(yīng)用,其中每時(shí)間單位可執(zhí)行的作用數(shù)目利用上述類型的硬件塊方案是不能提高的。
因此本發(fā)明的任務(wù)在于,對權(quán)利要求1的前序部分所述的硬件塊作如下改進(jìn),使得該硬件塊比其迄今的情形更加靈活和/或通用。
根據(jù)本發(fā)明,該任務(wù)由權(quán)利要求1的特征部分規(guī)定的特征來解決。
為此規(guī)定,硬件塊可被置為與外部硬件進(jìn)行交互作用。
這提高了性能,并擴(kuò)寬了硬件塊的應(yīng)用可能性;因此,硬件塊比在所述類型的常規(guī)硬件塊情況下更加靈活和通用。
本發(fā)明的優(yōu)選擴(kuò)展方案由從屬權(quán)利要求、下文的說明和附圖給出。
下面參照附圖并借助實(shí)施例來詳細(xì)闡述本發(fā)明。


圖1示出了下文將要詳細(xì)講述的硬件塊的原理結(jié)構(gòu),圖2示出了處于為某一應(yīng)用而結(jié)構(gòu)化的狀態(tài)的、圖1所示的硬件塊,以及圖3示出了>S<puter的原理結(jié)構(gòu)。
下文將詳細(xì)考察的硬件塊為一種可配置的硬件塊,它被設(shè)計(jì)用來根據(jù)其配置讀出存于存儲裝置之內(nèi)的數(shù)據(jù),并對讀出的數(shù)據(jù)進(jìn)行算術(shù)及/或邏輯處理,然后把表示該處理結(jié)果的數(shù)據(jù)寫入所述的存儲裝置;此外,它還可被置為獨(dú)立地與外部硬件進(jìn)行交互作用,并由此被置為如下一種硬件塊,即它既可以在程控單元(譬如作為>S<puter的功能單元)或其它裝置內(nèi)靈活和通行地應(yīng)用,也可以作為獨(dú)立的單元(沒有上級或下級控制器也行)而靈活和通行地應(yīng)用,并因此在下文被稱為UCB(通用配置塊)。
對于由UCB從其讀出數(shù)據(jù)以及由UCB向其寫入數(shù)據(jù)的存儲裝置,它們可以裝設(shè)在UCB之內(nèi)或之外;在本實(shí)施例中,所述存儲裝置由圖3所示的>S<puter的寄存器文件44構(gòu)成。
UCB對該存儲裝置的讀寫訪問優(yōu)選地按脈沖方式來實(shí)現(xiàn)。UCB自身為一種位于存儲裝置輸出和輸入端之間的異步開關(guān)網(wǎng)絡(luò);UCB的組件異步地相互進(jìn)行耦合。
在UCB投入運(yùn)行之前,可優(yōu)選地從UCB的外部對存儲裝置進(jìn)行初始化;可以想見,也可由UCB自己來促使或?qū)崿F(xiàn)存儲裝置的初始化。
UCB的原理結(jié)構(gòu)如圖1所示。
所示的UCB具有一個(gè)或多個(gè)算術(shù)單元AU1、AU2,一個(gè)或多個(gè)第一類型的比較單元CUA,一個(gè)或多個(gè)第一類型的多路轉(zhuǎn)換器MUXA1、MUXA2、MUXA3,一個(gè)或多個(gè)第二類型的多路轉(zhuǎn)換器MUXB,一個(gè)或多個(gè)多路分解器DEMUX,一個(gè)或多個(gè)脈沖發(fā)生單元TGU,以及一個(gè)或多個(gè)信令單元SU,其中在本實(shí)施例中,所述信令單元SU包括一個(gè)第一類型的多路轉(zhuǎn)換器MUXA4和一個(gè)第二類型的比較單元CUB。
在本實(shí)施例中,所述的算術(shù)單元AU1、AU2具有兩個(gè)輸入端、一個(gè)輸出端和一個(gè)控制端。算術(shù)單元AU1、AU2負(fù)責(zé)對經(jīng)其輸入端輸入的輸入信號進(jìn)行算術(shù)和/邏輯處理。由算術(shù)單元AU1、AU2執(zhí)行的操作可以被固定,或可以專門地調(diào)整(配置);該單元尤其包括有加法、減法、乘法、除法等算術(shù)運(yùn)算,“與”連接、“或”連接、倒置、求補(bǔ)等邏輯連接,算術(shù)和邏輯變換運(yùn)算,以及數(shù)據(jù)轉(zhuǎn)接(把輸入信號接通到輸出端)。所述的算術(shù)單元AU1、AU2與諸如微處理器、微控制器等常規(guī)程控單元的算術(shù)/邏輯單元(ALU)是不同的;算術(shù)單元AU1、AU2所執(zhí)行的操作是有限的,這樣其結(jié)構(gòu)可以較為簡單。通過算術(shù)單元AU1、AU2的控制端,可以規(guī)定相關(guān)的算術(shù)單元是否要執(zhí)行為其設(shè)定的操作。對于其執(zhí)行取決于存在一定條件的指令來說,這可以為其實(shí)現(xiàn)實(shí)際的轉(zhuǎn)換。所述的條件譬如為某一標(biāo)志的狀態(tài)如果標(biāo)志被設(shè)置,則執(zhí)行相關(guān)算術(shù)單元所負(fù)責(zé)的任務(wù)(譬如加法),否則不執(zhí)行(或返回)。這種在下文被稱為“條件指令”的指令可以取消很難運(yùn)用的條件轉(zhuǎn)移指令;這在稍后還要詳細(xì)講述。
在所示的實(shí)施例中,第一類型的比較單元CUA具有兩個(gè)輸入端和一個(gè)輸出端。該比較單元CUA負(fù)責(zé)把其輸入端上的信號或數(shù)據(jù)進(jìn)行比較運(yùn)算。由比較單元CUA執(zhí)行的運(yùn)算可以被固定,或可專門地進(jìn)行調(diào)整(配置);該單元譬如包括有大于、大于/等于、小于、小于/等于、等于、以及不等于等比較,而且還包括對正確和錯(cuò)誤的檢驗(yàn)。比較單元CUA的輸出端通過下文將詳細(xì)講述的多路分解器DEMUX而被接到算術(shù)單元AU1、AU2的控制端上。于是,算術(shù)單元AU1、AU2是否要執(zhí)行為其設(shè)定需要執(zhí)行的運(yùn)算,取決于在比較單元CUA內(nèi)所執(zhí)行的操作的結(jié)果。
第一類型的多路轉(zhuǎn)換器MUXA1、MUXA2、MUXA3及MUXA4,第二類型的多路轉(zhuǎn)換器MUXB,以及多路分解器DEMUX被用來選擇數(shù)據(jù)源及/或信號源和選擇數(shù)據(jù)目標(biāo)及/或信號目標(biāo)。準(zhǔn)確地說是-多路轉(zhuǎn)換器MUXA1用來選擇輸入到算術(shù)單元AU1輸入端的數(shù)據(jù)和/或信號的信源(在本實(shí)施例中可能的數(shù)據(jù)源和/或信號源為寄存器文件44及其它的算術(shù)單元),-多路轉(zhuǎn)換器MUXA2用來選擇輸入到算術(shù)單元AU2輸入端的數(shù)據(jù)和/或信號的信源(在本實(shí)施例中可能的數(shù)據(jù)源和/或信號源為寄存器文件44及其它的算術(shù)單元),-多路轉(zhuǎn)換器MUXA3用來選擇輸入到比較單元CUA輸入端的數(shù)據(jù)和/或信號的信源(在本實(shí)施例中可能的數(shù)據(jù)源和/或信號源為寄存器文件44及其它的算術(shù)單元),-多路轉(zhuǎn)換器MUXA4用來選擇輸入到比較單元CUB輸入端的數(shù)據(jù)和/或信號的信源(在本實(shí)施例中可能的數(shù)據(jù)源和/或信號源為寄存器文件44及其它的算術(shù)單元),-多路轉(zhuǎn)換器MUXB用來選擇輸入到寄存器文件的數(shù)據(jù)和/或信號的信源(在本實(shí)施例中可能的數(shù)據(jù)源和/或信號源為算術(shù)單元、寄存器文件本身以及(在本實(shí)施例中經(jīng)過所謂的裝載/存儲流水線LPL、SPL的)外部硬件),-多路分解器DEMUX用來選擇從比較單元CUA輸出的數(shù)據(jù)和/或信號的目標(biāo)(在本實(shí)施例中可能的數(shù)據(jù)目標(biāo)和/或信號目標(biāo)為算術(shù)單元)。
第一類型的多路轉(zhuǎn)換器具有多個(gè)輸入端和兩個(gè)輸出端,第二類型的多路轉(zhuǎn)換器具有多個(gè)輸入端和一個(gè)輸出端,而多路分解器具有一個(gè)輸入端和多個(gè)輸出端。
所述的多路轉(zhuǎn)換器和多路分解器具有圖1未示出的控制端,通過該控制端可以調(diào)整將哪些輸入數(shù)據(jù)和/或輸入信號接通到哪些輸出端上。所述控制端的數(shù)目取決于各種分配組合所需要的數(shù)目;在32個(gè)輸入端和兩個(gè)輸出端的情況下譬如需要10個(gè)控制端,以便將任意輸入端上的信號和/或數(shù)據(jù)接通到任意的輸出端上。在圖3所示的>S<puter中采用UCB作為功能單元42的情況下,控制信號端優(yōu)選地被連接在可編程結(jié)構(gòu)緩沖器41上,這樣,寫到該緩沖器內(nèi)的配置數(shù)據(jù)基本上可以直接地用于多路轉(zhuǎn)換器控制。在可編程結(jié)構(gòu)緩沖器41內(nèi)存儲的配置數(shù)據(jù)優(yōu)選地還包括用于規(guī)定如下單元相應(yīng)功能的配置數(shù)據(jù),即算術(shù)單元AU1、AU2,比較單元CUA、CUB,脈沖發(fā)生單元TGU和/或信令單元SU。
利用算術(shù)單元AU1、AU2,第一類型的比較單元CUA,第一類型的多路轉(zhuǎn)換器MUXA1、MUXA2、MUXA3,第二類型的多路轉(zhuǎn)換器MUXB以及多路分解器DEMUX,UCB可以讀出存于存儲裝置(寄存器文件44)之內(nèi)的數(shù)據(jù),并對讀出的數(shù)據(jù)進(jìn)行算術(shù)及/或邏輯處理,然后把表示該處理結(jié)果的數(shù)據(jù)寫入所述的存儲裝置(寄存器文件44)。
正如上文已經(jīng)講述過的一樣,UCB另外還能被置為獨(dú)立地與外部硬件進(jìn)行交互作用。在本實(shí)施例中,所述的交互作用在于-在對某些事件作出反應(yīng)時(shí),UCB可促使所述的存儲裝置接收由外部硬件提供的數(shù)據(jù),以及-UCB可以將數(shù)據(jù)和/或信號輸出到所述的外部硬件。
在本實(shí)施例中,所述的外部硬件由其它的UCB和/或一種下級或上級控制器和/或包含UCB的系統(tǒng)的其它單元(譬如傳感器,A/D變換器,D/A轉(zhuǎn)換器,計(jì)時(shí)器,中斷控制器,需要控制的設(shè)備,等等)組成。
UCB與外部硬件的交互作用基本上(但-從圖2可以看出-并不僅僅)是通過至少一個(gè)脈沖發(fā)生單元TGU和至少一個(gè)信令單元SU實(shí)現(xiàn)的。
所述至少一個(gè)脈沖發(fā)生單元TGU和至少一個(gè)信令單元SU表示了通往外部硬件的接口。正如稍后還要詳細(xì)講解一樣,UCB由此可以獨(dú)立地(無需接入上級控制器)與外部硬件進(jìn)行交互作用。
脈沖發(fā)生單元TGU負(fù)責(zé)根據(jù)來自于UCB內(nèi)部和/或外部的信號及/或數(shù)據(jù)來生成周期性或非周期性的脈沖信號。在本實(shí)施例中,輸入信號為包含UCB的系統(tǒng)的周期性主脈沖MCLK和UCB應(yīng)該與其協(xié)作的外部硬件部分的允許信號“允許”。但是,原則上可以采用任意多的、來自任意信源的輸入信號來生成脈沖信號。為提高靈活性可以規(guī)定,在脈沖發(fā)生單元TGU的輸入側(cè)串接一個(gè)多路轉(zhuǎn)換器;然后,可以根據(jù)應(yīng)用從大量可能的輸入信號中選擇出輸入到脈沖發(fā)生單元的輸入信號。在本實(shí)施例中,由脈沖發(fā)生單元TGU生成的脈沖信號CLK是以脈沖信號的形式被本實(shí)施例中由寄存器文件44構(gòu)成的存儲裝置所采用的;在該情形下,寄存器文件被設(shè)計(jì)用來在脈沖信號的時(shí)鐘內(nèi)實(shí)現(xiàn)寫入數(shù)據(jù)和/或輸出數(shù)據(jù)。由此,-由外部硬件(譬如A/D變換器)直接或間接地(譬如通過上文所述的裝載/存儲流水線LPL,SPL)提供的數(shù)據(jù)可以在由脈沖發(fā)生單元生成的脈沖信號時(shí)鐘內(nèi)、也即在準(zhǔn)確定義的時(shí)間點(diǎn)上(譬如按照A/D變換器的變換端所發(fā)出的信號ADC_READY)被接收到寄存器文件44內(nèi),及/或-存于寄存器文件44內(nèi)的數(shù)據(jù)可以直接或間接地(譬如通過裝載/存儲流水線LPL,SPL)輸出到外部硬件(譬如輸出到外部存儲器,如圖3所示的>S<puter中的數(shù)據(jù)高速緩沖器5)。
在本實(shí)施例中,信令單元SU由第一類型的多路轉(zhuǎn)換器MUXA4和第二類型的比較單元CUB組成;該信令單元負(fù)責(zé)根據(jù)來自于UCB內(nèi)部及/或外部的信號來生成一個(gè)或多個(gè)發(fā)出某些狀態(tài)或事件信令的信號,該信號在下文被稱作應(yīng)答信號。在圖1所示的UCB中只生成一個(gè)應(yīng)答信號。該一個(gè)應(yīng)答信號為比較單元CUB的輸出信號,而所述比較單元CUB將串接在其輸入側(cè)的多路轉(zhuǎn)換器MUXA4的兩個(gè)輸出信號進(jìn)行比較。通過裝設(shè)多路轉(zhuǎn)換器MUXA4,可以根據(jù)應(yīng)用從大量在此可采用的信號中選出作為生成應(yīng)答信號的基礎(chǔ)的信號。在本實(shí)施例中,所述可作為生成應(yīng)答信號基礎(chǔ)的信號另外還包括算術(shù)單元AU2的輸出信號和寄存器文件44的輸出信號;也可附加或選擇地把任意的其它信號作為生成應(yīng)答信號的基礎(chǔ)。
由信令單元產(chǎn)生的應(yīng)答信號被用來給外部硬件發(fā)出某些狀態(tài)或事件信令。由此,譬如可以通過“就緒”信號發(fā)出UCB所執(zhí)行的操作的執(zhí)行結(jié)束信令。如果UCB必須執(zhí)行的操作為如下操作,即這些操作需要在重復(fù)運(yùn)行的循環(huán)內(nèi)執(zhí)行,那么通過該應(yīng)答信號還可以發(fā)出所實(shí)行的循環(huán)運(yùn)行的結(jié)束信令。也就是說,比較單元CUB還可以被用作循環(huán)計(jì)數(shù)器,當(dāng)由UCB執(zhí)行的操作已執(zhí)行了與所實(shí)行的循環(huán)運(yùn)行相對應(yīng)的次數(shù)之后,則通過該計(jì)數(shù)發(fā)出信令。另外,所述的應(yīng)答信號還可以被用作中斷請求。
此外,比較單元CUB與第一類型的比較單元CUA保持最大程度的一致;不同的主要“只”是,其輸出信號電平的標(biāo)準(zhǔn)調(diào)整可以是“錯(cuò)誤”,而且輸出信號電平的標(biāo)準(zhǔn)調(diào)整可優(yōu)選地根據(jù)應(yīng)用來進(jìn)行調(diào)節(jié)。
圖1所示的、并參考其進(jìn)行說明的UCB只是被考慮用來闡述基本的結(jié)構(gòu)。在實(shí)際中,所述的算術(shù)單元、比較單元、多路轉(zhuǎn)換器、多路分解器以及必要時(shí)還有脈沖發(fā)生單元及信令單元等等可以裝設(shè)比圖1所示的情形多得多的數(shù)量。優(yōu)選地,如此來選擇UCB的大小,使得在通常情況下,由稍后還要詳細(xì)講述的所謂超塊所導(dǎo)致的全部操作都可一次性地編入到該UCB之中。
裝設(shè)在UCB中的數(shù)據(jù)回路和/或信號回路可以通過單個(gè)的線路或通過總線來構(gòu)成,其中,如果在UCB的各個(gè)部分中或在總線系統(tǒng)中可以對需要考慮多少和/或哪些總線進(jìn)行配置,則證明是比較優(yōu)選的。
相對于常規(guī)配置的硬件塊(可現(xiàn)場編程的邏輯),上述類型的UCB在很多方面被證明是有利的。
第一個(gè)優(yōu)點(diǎn)在于,USB的數(shù)據(jù)連接單元能夠執(zhí)行復(fù)雜的操作。也就是說,它至少可以部分地背棄基于DNF(析取的標(biāo)準(zhǔn)形式)或面向表格的連接;每個(gè)算術(shù)單元(AU)都可實(shí)現(xiàn)一個(gè)或甚至多個(gè)算術(shù)邏輯連接。
此外,可在UCB內(nèi)(其算術(shù)單元內(nèi))執(zhí)行的操作比譬如在FPGA(現(xiàn)場可編程門陣列)的情況下要具有更大的規(guī)模(合成更大的塊)。單個(gè)算術(shù)單元所執(zhí)行的操作由此可以更快、更簡單及更安全地與程控單元的指令或算法所導(dǎo)致的作用保持一致,因此,在程控單元內(nèi)執(zhí)行的程序或程序段可以用極小的費(fèi)用被轉(zhuǎn)換成配置數(shù)據(jù),UCB通過這些配置數(shù)據(jù)如此地進(jìn)行配置,使得其在工作時(shí)完成那些通過處理相關(guān)程序或程序段而導(dǎo)致的作用。
正如上文所述,UCB還有一個(gè)特征在于,它能夠獨(dú)立地與外部硬件進(jìn)行協(xié)作,其中,如果至少部分地通過所謂的裝載/存儲流水線而耦合到外部硬件,則尤其在與計(jì)算單元進(jìn)行通信連接時(shí)是比較有利的。
另外,與UCB同步的元件、亦即存儲裝置(在本實(shí)施例中為寄存器文件44)還優(yōu)選地具有通往外部硬件的通信連接。
硬件塊可以按照圖1所示的類型進(jìn)行配置,并優(yōu)選地基于指令或指令序列進(jìn)行配置。如果把指令或指令序列轉(zhuǎn)換成相應(yīng)的硬件塊結(jié)構(gòu),則如此配置的硬件塊可以作為順序指令序列的運(yùn)行單元而進(jìn)行使用。這種硬件塊配置的形式在下面也被稱作結(jié)構(gòu)過程的編程。
結(jié)構(gòu)過程的編程的出發(fā)點(diǎn)可以是用諸如C、C++等高級語言編寫的程序。該程序通過編譯器進(jìn)行翻譯,由此獲得的代碼(優(yōu)選地以超塊的方式)被轉(zhuǎn)換成結(jié)構(gòu)信息,而需配置的硬件塊則在該結(jié)構(gòu)信息的基礎(chǔ)上進(jìn)行配置。稍后將詳細(xì)講述怎樣理解超塊。
顯然,結(jié)構(gòu)過程的編程的出發(fā)點(diǎn)也可以是用匯編語言編寫的程序或其它類似的程序。編程的方式和方法(功能式,命令式,面向?qū)ο?,?同樣是沒有限制的。
采取如下做法被證明是有利的,即轉(zhuǎn)換成結(jié)構(gòu)信息的代碼、亦即通過編譯器或以其它方式及方法生成的機(jī)器指令基本上只包括五種機(jī)器指令類型,即無條件指令、條件指令、謂詞指令、Loopxx指令、以及Intxx指令。于是,通??尚纬芍痪哂幸粋€(gè)入口點(diǎn)和一個(gè)出口點(diǎn)的非常長(尤其包含有許多指令)的指令塊。生成盡可能長的、只具有一個(gè)入口點(diǎn)和一個(gè)出口點(diǎn)的指令塊是很有意義的,因?yàn)閷儆谝粋€(gè)或同一指令塊的指令、并且也只有這些指令可以以一個(gè)單元的形式(作為由多個(gè)指令組成的宏指令)進(jìn)行處理,而所述的單元可以轉(zhuǎn)換成一個(gè)共同的硬件塊結(jié)構(gòu),并一次性得到執(zhí)行。如果硬件塊的配置總是嚴(yán)格地基于這種單元(而且硬件塊大得可以進(jìn)行該配置),那么,程序處理所需要的、硬件塊的再結(jié)構(gòu)化或再配置的數(shù)量可減到最小。其生成在目前令人滿意的、也可通過上述指令群形成的這種指令塊便是上文講述的超塊。
超塊尤其還有一個(gè)特征在于,通過采用下文還要詳細(xì)講述的所謂if(如果)轉(zhuǎn)換,可以取消有條件的轉(zhuǎn)移指令。
有關(guān)超塊、其它指令決以及相關(guān)的主題可以參考
-Wen-Mei W.Hwu等人“用于未來微處理器的編譯技術(shù)”,IEEE報(bào)告的特約文章,卷83(12),1995年12月,微處理器特刊,第1625至1640頁,-Henk Neefs,Jan van Campenhout“固定塊長度結(jié)構(gòu)的指令群結(jié)構(gòu)所用的微結(jié)構(gòu)”,第8屆IASTED國際會議的關(guān)于并行及分散的計(jì)算和系統(tǒng)的報(bào)告,第38~42頁,IASTED/ACTA出版,1996,以及-Richard H.Littin,J.A.David McWha,Murray W.Pearson,JohnG.Cleary“基于塊的執(zhí)行和任務(wù)級并行性”,出自John Morris(Ed.),“計(jì)算機(jī)結(jié)構(gòu)98”,第三屆大洋洲計(jì)算機(jī)結(jié)構(gòu)會議的報(bào)告,ACAC’98,Perth,1998,2-3月,澳大利亞計(jì)算機(jī)科學(xué)通信,卷20,號4,頁57~66,Springer,新加坡。
正如上文已經(jīng)闡述的一樣,優(yōu)選地如此來確定硬件塊的大小,使得能夠以超塊的方式來實(shí)現(xiàn)其配置,也就是說,整個(gè)超塊總是可以在可能范圍內(nèi)被轉(zhuǎn)換成相應(yīng)的硬件塊結(jié)構(gòu)。
上文所述的無條件指令是指一些無條件地處理數(shù)據(jù)的指令,包括把數(shù)據(jù)從一個(gè)存儲區(qū)拷貝到另一存儲區(qū)(從一個(gè)寄存器拷貝到另一寄存器)。這種指令在下面被稱為標(biāo)準(zhǔn)指令。它們包括用于得出新值的數(shù)據(jù)和用于拷貝寄存器內(nèi)容的所謂Move(移動(dòng))指令之間的算術(shù)和邏輯連接。該指令的一般格式為<助記符><目標(biāo)寄存器>,<源寄存器1>,<源寄存器2>。為了實(shí)現(xiàn)這種指令,需要硬件塊的一個(gè)算術(shù)單元。
條件指令是指在出現(xiàn)一定條件時(shí)對數(shù)據(jù)進(jìn)行處理的指令。由該指令執(zhí)行的作用或操作對應(yīng)于由標(biāo)準(zhǔn)指令執(zhí)行的作用或操作,但其中相關(guān)作用的執(zhí)行取決于預(yù)定的條件。如果滿足條件,則執(zhí)行由該指令規(guī)定的作用,否則不執(zhí)行(于是相關(guān)的指令、譬如NOP指令起作用)。該指令在下文被稱為條件指令。該指令的一般格式為<助記符>p<目標(biāo)寄存器>,<源寄存器1>,<源寄存器2><p標(biāo)志>,其中,由“p”在助記符的結(jié)尾處發(fā)出在執(zhí)行指令時(shí)對條件的依賴性的信令,而且所述條件由某一標(biāo)志(譬如p標(biāo)志)的某種狀態(tài)來定義。為了實(shí)現(xiàn)由該指令規(guī)定的作用,需要硬件塊的一個(gè)算術(shù)單元;為了對條件進(jìn)行檢驗(yàn),需要一個(gè)比較單元,其輸出端與所述算術(shù)單元的控制端相連。
謂詞指令是指用于確定在條件指令中所采用的條件標(biāo)志(例如p標(biāo)志)的狀態(tài)的指令。在此,所述的確定是在程序運(yùn)行期間根據(jù)兩個(gè)數(shù)據(jù)的比較來實(shí)現(xiàn)的。該指令在下文被稱為pxx指令。該指令的一般格式為pxx<源寄存器1>,<源寄存器2>,<p標(biāo)志>,其中,xx規(guī)定了所述需要實(shí)現(xiàn)的比較操作,并用gt(大于)、ge(大于或等于)、eq(等于)、ne(不等于)、le(小于或等于)或lt(小于)來代替。該pxx指令可比作為普通的分支指令,并用來通過采用所謂的if轉(zhuǎn)換(對此參見上述由Wen-Mei等人所著的論文)來替代所述的分支指令。
Loopxx指令是指位于超塊結(jié)束處的用于循環(huán)重復(fù)的指令。如果滿足指令中規(guī)定的條件,則由該Loopxx指令促使跳回到相關(guān)超塊的開始處;倘若不再滿足該條件,則由它促使通過信令單元SU產(chǎn)生“就緒”信號。所述的條件是通過比較操作的某個(gè)結(jié)果來定義的。該指令的一般格式為Loopxx<源寄存器1>,<源寄存器2>,其中,xx規(guī)定了需要執(zhí)行的比較操作。
Intxx指令為用于生成輸出到外部硬件的信號的指令。它表示了Loopxx指令的一般化由此可以根據(jù)任意的啟動(dòng)將具有任意意義內(nèi)容的信號輸出給包含UCB的系統(tǒng)的任意外部組件。該指令的一般格式為intxx<源寄存器1>,<源寄存器2>,<int_Signal>,其中xx規(guī)定了需執(zhí)行的比較操作,而“int_Signal”則規(guī)定了需要(由信令單元SU)產(chǎn)生和輸出的應(yīng)答信號。
UCB可以執(zhí)行由上面列舉和闡述的指令類型所規(guī)定的操作,這就使該UCB產(chǎn)生了各種各樣的可應(yīng)用的部分。因此完全可以由UCB執(zhí)行許多程序或程序段。所述UCB可以或多或少地被用作程控單元的標(biāo)準(zhǔn)替代物,或者-如果它是程控單元的組件或與該程控單元進(jìn)行協(xié)作-還可以大大提高所述程控單元的性能。
出于完整性的原因,下面將簡短地講述一下怎樣將指令轉(zhuǎn)換成相應(yīng)的UCB結(jié)構(gòu)(由順序的指令流形成UCB的自配置)。由于此處只講述轉(zhuǎn)換的基本原理,所以下面的實(shí)施例只限于轉(zhuǎn)換標(biāo)準(zhǔn)指令、條件指令以及pxx指令。其它的指令,準(zhǔn)確地說是Loopxx指令和Intxx指令在某些情況下需要有特殊的處理,但是,如果知道了下面講述的優(yōu)選方法,該特殊處理也沒有什么難度。
在本實(shí)施例中,所述的UCB、準(zhǔn)確地說是其子單元(算術(shù)單元,比較單元,多路轉(zhuǎn)換器,多路分解器,…),以及各子單元之間的通信連接是通過表示所需配置的配置數(shù)據(jù)(配置比特)來配置的。據(jù)此,下面所講述的轉(zhuǎn)換方法的任務(wù)在于,根據(jù)UCB配置所基于的指令或指令序列來生成或修改(優(yōu)選為預(yù)先已確定地配備的)配置比特或包含該配置比特的比特流。
尤其當(dāng)UCB的子單元可以被配置時(shí),給這些(物理)子單元分配一些邏輯或虛擬的單元,其中,所述虛擬單元規(guī)定了物理子單元的不同功能。倘若“第一算術(shù)單元AU1”可以被配置,譬如就能夠給所述的物理子單元分配一些虛擬單元,如加法器、減法器等等。一個(gè)虛擬單元被嚴(yán)格地分配給一個(gè)物理子單元,但一個(gè)物理子單元可以分配多個(gè)虛擬單元。優(yōu)選地,所有的虛擬單元在一個(gè)表格或目錄內(nèi)進(jìn)行管理。除了針對虛擬單元的信息外,相應(yīng)表格項(xiàng)還包括有如下有關(guān)信息,即各個(gè)虛擬單元被分配給哪個(gè)物理單元,以及為了給物理子單元賦予由虛擬單元表示的功能,必須通過哪些配置比特和必要時(shí)怎樣來配置該物理子單元。
把指令轉(zhuǎn)換成UCB結(jié)構(gòu)化信息主要有三個(gè)步驟。
在第一步驟中,首先測定需要哪種類型的虛擬單元(加法器,減法器,乘法器…)來執(zhí)行需要轉(zhuǎn)換的指令,以及該虛擬單元是否仍然可用。如果所需類型的虛擬單元是空閑的,則選出該虛擬單元或從中選出一個(gè)虛擬單元來執(zhí)行相關(guān)的指令。然后實(shí)行配置或準(zhǔn)備配置,并為選出的虛擬單元預(yù)備所分配的物理子單元。為了進(jìn)行配置,簡單地對分配給相關(guān)物理子單元的配置比特進(jìn)行設(shè)置或復(fù)位;這是沒有什么難度的,因?yàn)槟膫€(gè)物理單元分配了所選的虛擬單元、以及需要通過哪些配置比特和必要時(shí)需要怎樣配置該物理單元等信息是同所述的虛擬單元一起進(jìn)行管理的。為選出的虛擬單元預(yù)備所分配的物理子單元是必要的,以便避免多次使用相關(guān)的物理子單元。在本實(shí)施例中,這是通過如下方式來實(shí)現(xiàn)的,即每次在為某個(gè)目的而分配給物理單元之后,便禁止相關(guān)物理子單元所分配的所有虛擬單元。
在pxx指令的情況下,可以按照UCB的結(jié)構(gòu)要求根據(jù)p標(biāo)志選擇一個(gè)全比較單元。
在條件指令的情況下,如果某些指令只有利用某些標(biāo)志才是可能的,也即在條件指令的分指令系統(tǒng)中沒有完全的正交性,那么,p標(biāo)志只對虛擬/物理單元的選擇起作用。
在UCB配置的第二步驟中,對前接和/或后接于所選的物理子單元之上的多路轉(zhuǎn)換器進(jìn)行配置,以便根據(jù)需轉(zhuǎn)換的指令中的規(guī)定來調(diào)整數(shù)據(jù)源和/或信號源以及數(shù)據(jù)目標(biāo)和/或信號目標(biāo)。在理想情況下,所述多路轉(zhuǎn)換器與需轉(zhuǎn)換的指令的格式是相互匹配的,使得所述指令中對數(shù)據(jù)源和/或信號源以及數(shù)據(jù)目標(biāo)和/或信號目標(biāo)進(jìn)行規(guī)定的部分可以不變地被接收作為配置該多路轉(zhuǎn)換器的配置比特。如果這-出于一些原因總是這樣-不可能或不理想,則對多路轉(zhuǎn)換器進(jìn)行配置的配置數(shù)據(jù)譬如可以從一個(gè)表格中查取,在該表格內(nèi)存儲了指令中用于對數(shù)據(jù)源和/或信號源以及數(shù)據(jù)目標(biāo)和/或信號目標(biāo)進(jìn)行規(guī)定的部分同對多路轉(zhuǎn)換器進(jìn)行配置的配置比特之間的分配。優(yōu)選地,為了建立通往某個(gè)數(shù)據(jù)源和/或信號源及/或通往某個(gè)數(shù)據(jù)目標(biāo)和/或信號目標(biāo)的通信連接,所需的配置對于所有多路轉(zhuǎn)換器都是相同的。
倘若需執(zhí)行的操作所基于的數(shù)據(jù)至少部分地由包含在指令代碼中的恒量組成,則需要進(jìn)行特殊處理。于是,必須-搜尋空閑的(恒量)寄存器,-將該寄存器用作數(shù)據(jù)源和/或信號源,以及-在UCB投入運(yùn)行之前,把在指令代碼中所包含的恒量寫到所選的寄存器中。
可以規(guī)定預(yù)先檢驗(yàn)所述的相關(guān)恒量是否已存儲在(恒量)寄存器中。在此,如果結(jié)論是已存在包含恒量的(恒量)寄存器,則可以將該已存在的(恒量)寄存器用作數(shù)據(jù)源和/或信號源。
另外,需要注意的是,所述需轉(zhuǎn)換的指令具有許多不同的數(shù)據(jù)源和/或信號源以及數(shù)據(jù)目標(biāo)和/或信號目標(biāo)。
此外,用作數(shù)據(jù)目標(biāo)和/或信號目標(biāo)的寄存器被標(biāo)記為已占用,因?yàn)樵谝粋€(gè)超塊內(nèi)不允許有第二次占用,而且必須通過所謂的(運(yùn)行時(shí)間)寄存器重命名、也即一種從超標(biāo)量結(jié)構(gòu)得知的技術(shù)來進(jìn)行避免。
在該(對所有指令通用的)第二步驟之后為各個(gè)指令類型加入特殊的分步驟,該分步驟是從相應(yīng)的特殊性得出的。
另外,在條件指令的情況下,必須對檢驗(yàn)是否存在條件的比較單元進(jìn)行測定,并且通過所屬的多路分解器將其輸出信號接通到執(zhí)行該操作的算術(shù)單元上。另外還需考慮該條件為何種類型。
在條件Move(移動(dòng))指令的情況下,還需負(fù)責(zé)使所述目標(biāo)寄存器的內(nèi)容在不執(zhí)行指令時(shí)保持不變。
在所述UCB配置的第二步驟之后,配置可以結(jié)束,并啟動(dòng)該UCB。但是優(yōu)選地,這只有在執(zhí)行完下述第三步驟之后才施行。
在UCB的該第三步驟中實(shí)現(xiàn)一種所謂的數(shù)據(jù)轉(zhuǎn)發(fā)。在此,并不固執(zhí)地采用指令中給出的數(shù)據(jù)源和/或信號源作為數(shù)據(jù)源和/或信號源,而是在可能范圍內(nèi)采用各個(gè)超塊內(nèi)的相關(guān)數(shù)據(jù)源和/或信號源已在其上預(yù)先寫過的物理子單元。這在兩方面被證明是有利的一方面,由于可能需要較少的寄存器(如果不采用指令中給出的數(shù)據(jù)源和/或信號源作為數(shù)據(jù)源和/或信號源,則無須對其進(jìn)行寫操作,必要時(shí)可以完全將其取消),而另一方面,由于若從產(chǎn)生所需數(shù)據(jù)的子單元(譬如算術(shù)單元)讀取該數(shù)據(jù),則會比先將數(shù)據(jù)寫入寄存器然后再從那兒讀取要更早地使用該數(shù)據(jù)。該數(shù)據(jù)轉(zhuǎn)發(fā)在所有指令中都可應(yīng)用,而且通常被證明是巨大的優(yōu)點(diǎn)。
最后來講述一個(gè)應(yīng)用UCB的實(shí)際實(shí)施例。
該實(shí)施例涉及一種A/D變換器。準(zhǔn)確地說,-由計(jì)數(shù)器來啟動(dòng)變換寬度為8比特的A/D轉(zhuǎn)換器,-將所述A/D變換的結(jié)果和12比特的計(jì)數(shù)標(biāo)志存儲在一起,-對該A/D變換的結(jié)果超過和低于某個(gè)閾值進(jìn)行監(jiān)視,其中,在超過或低于所述閾值時(shí)將轉(zhuǎn)移到某個(gè)子程序,-在2048個(gè)測試之后中斷該過程。
如果采取純粹的軟件解決方案,則這種應(yīng)用需要有較高的費(fèi)用。由于典型的A/D變換器(譬如集成在微控制器內(nèi)的A/D變換器)通常都不是自發(fā)地提供結(jié)果,也就是說它以所謂的高速變換器的形式進(jìn)行工作,并且變換時(shí)間位于幾個(gè)微秒的范圍內(nèi),因此,在正確地執(zhí)行應(yīng)用規(guī)定時(shí),必須遵循下述方法之一1)由計(jì)時(shí)器觸發(fā)中斷。由中斷業(yè)務(wù)程序啟動(dòng)A/D變換,然后結(jié)束。在該變換結(jié)束時(shí),該A/D變換器同樣也觸發(fā)中斷。通過此后執(zhí)行的中斷業(yè)務(wù)程序來讀出和處理A/D變換的結(jié)果。
2)由計(jì)時(shí)器觸發(fā)中斷。在此后執(zhí)行的中斷業(yè)務(wù)程序中啟動(dòng)A/D變換,并等待變換的結(jié)束,最后(在變換結(jié)束后)讀出和處理A/D變換的結(jié)果。
如果變換時(shí)間少于中斷等待時(shí)間,則采取第二方案是有利的。否則第一方案比較有利。但是,通常最有利的是-在上述“標(biāo)準(zhǔn)”微處理器或微控制器的執(zhí)行當(dāng)中-下面的第三方案3)由計(jì)時(shí)器觸發(fā)中斷。在此后執(zhí)行的中斷業(yè)務(wù)程序中讀出上一個(gè)A/D變換結(jié)果,并啟動(dòng)下一個(gè)A/D變換,然后分析讀出的A/D變換結(jié)果。
于是,對A/D變換結(jié)果的讀取和分析通常都要晚于原來的情況。
如果想讓UCB來完成所述A/D變換結(jié)果的讀取、分析和存儲,則可以優(yōu)選地按照下面的C程序來配置該UCB。正如稍后可以更好地理解一樣,由此可以在A/D變換結(jié)束之后立即對所述的A/D變換結(jié)果實(shí)行讀取、分析和存儲,而且費(fèi)用極小,包含該UCB的系統(tǒng)的負(fù)荷也極低。在下面的C程序中采用了一個(gè)新的關(guān)鍵字“hardware_thread(硬件線程)”。利用顯然也可采取其它任意措詞的該關(guān)鍵字,可以給翻譯該C程序的編譯器發(fā)出如下信令,即該編譯器應(yīng)該如此地編譯相關(guān)的程序或相關(guān)的程序段,使得所產(chǎn)生的代碼能夠盡可能地在一個(gè)UCB內(nèi)執(zhí)行。然而,也不一定強(qiáng)制需要采用這種關(guān)鍵字。也可以規(guī)定,編譯器總是如此地編譯需要編譯的程序,使得這些程序可以放到多個(gè)UCB中去執(zhí)行。
<pre listing-type="program-listing"><![CDATA[int*p_adc,adc_value,upper_limit,lower_limit,adc_ready;  int adc_array(4096);  void hardware thread readAD()  {  int x=0;  while(x<4096)  {  if(adc_ready==1)  {  //訪問A/D變換器  adc_value=*p_adc;  //在超過極限值時(shí)調(diào)用子程序out_of_range  if(adc_value>upper_limit ||(adc_value<lower_limit)out_of_range();  ∥存儲指數(shù)信息  adc_array[x++]=x;  //存儲變換結(jié)果  adc_array[x++]=adc_value;  }  }  }]]></pre>在使用上述指令類型的情況下,該源代碼可以翻譯成如下的匯編代碼mov r1,p_adc ;A/D變換器的地址→r1mov r4,0 ;變量x→r4mov r5,1 ;x+1→r5mov r6,adc_array ;存儲區(qū)地址→r6ld r2,upper_limit;上極限→r2ld r3,lower_limit;下極限→r3LO:ld ro,(r1);裝入A/D變換結(jié)果intgt ro,r2,i1 ;若r0>r2,則生成應(yīng)答信號INT1(中斷請求1)intgt ro,r3,i2 ;若r0<r3,則生成應(yīng)答信號INT2(中斷請求2)st(r6+r4),r4 ;存儲計(jì)數(shù)標(biāo)志st(r6+r5),r0 ;A/D變換結(jié)果→r0add r4,r4,2 ;更新xadd r5,r5,2 ;更新x+1looplt r4,4096 ;若r4<4096,則從LO開始重復(fù)在此,前面6個(gè)指令涉及寄存器的初始化,后面(從標(biāo)號L0開始)的指令則涉及執(zhí)行由前面C程序所導(dǎo)致的作用。
盡管在該匯編代碼中缺少如下條件,即只有當(dāng)存在ADC_READY信號時(shí)才運(yùn)行所述的循環(huán),但是,在把所述匯編代碼轉(zhuǎn)換成UCB結(jié)構(gòu)并由該UCB來執(zhí)行它的情況下,可以獲得與如下情況一樣的結(jié)果,即把C程序進(jìn)行“標(biāo)準(zhǔn)地”翻譯,然后在常規(guī)的微處理器或微控制器內(nèi)執(zhí)行它。也就是說,在匯編代碼中缺少的條件在一定程度上就表示了一種觸發(fā),該觸發(fā)也可以通過輸入到UCB的脈沖發(fā)生單元TGU之中的允許信號“允許”來實(shí)現(xiàn)。
如果將所述的匯編代碼轉(zhuǎn)換成UCB結(jié)構(gòu),并通過該UCB結(jié)構(gòu)來執(zhí)行將要導(dǎo)致的作用,則可以獲得如圖2所示的UCB結(jié)構(gòu)。
圖2所示的UCB包括4個(gè)作為減法器進(jìn)行配置的算術(shù)單元AU1、AU2、AU3、AU4,一個(gè)脈沖發(fā)生單元TGU,以及包括三個(gè)比較單元CUB1、CUB2、CUB3的信令單元SU??梢灾?,UCB的這種結(jié)構(gòu)基于的是圖1所示UCB的一般結(jié)構(gòu);只是對具體的應(yīng)用情況進(jìn)行了匹配而已。UCB的子單元的連接及其輸入輸出信號可以從圖2看出,在此無須贅述。應(yīng)該理解,如此配置的UCB可以準(zhǔn)確地執(zhí)行上述匯編代碼(上述C程序)所定義的內(nèi)容。
顯然,如此配置的UCB可以完全獨(dú)立地(無需下級或上級控制器的負(fù)荷)執(zhí)行需要完成的任務(wù),并且遠(yuǎn)遠(yuǎn)快于常規(guī)的微處理器或微控制器。
還應(yīng)該說明的是,所采用的UCB并不局限于所述的實(shí)施例。顯然,UCB可以用于其它許多的目的。作為其它的應(yīng)用可能性,它也可以用于芯片測試或密碼應(yīng)用或識別應(yīng)用當(dāng)中。通過采用UCB,在實(shí)現(xiàn)這種任務(wù)時(shí)只具有極小的費(fèi)用,同時(shí)又非常靈活。
所述的芯片測試尤其是如下的芯片測試,它們是通過采用裝設(shè)在需測試的集成電路中的測試模塊來實(shí)現(xiàn)的,也即主要是自測試的存儲器建立(MBIST)、線性反饋移位寄存器(LFSR)、多輸入標(biāo)志寄存器(MISR)、自修復(fù)的存儲器建立(MBISR)、模擬BIST(譬如在A/D變換器中)以及芯片上的監(jiān)視器(譬如用于IDDQ的電流測試監(jiān)視器)等。在此,需測試的集成電路可以是任意的集成電路,譬如微處理器、微控制器、存儲器元件、A/D變換器,等等。為了進(jìn)行上述和其它的測試方法,必須在需測試的芯片內(nèi)裝設(shè)特殊的測試模塊,由于把這種測試模塊集成到需測試的芯片中需要不低的費(fèi)用(更多的芯片表面、更高的生產(chǎn)價(jià)格,等等),所以目前還未大量推廣。在此可以通過采用UCB來幫助實(shí)現(xiàn)芯片測試。就是說,被用來實(shí)現(xiàn)芯片測試的UCB(被用作芯片測試模塊)在芯片測試之前和/或之后負(fù)責(zé)其它的任務(wù),譬如被配置為串行或并行接口。然后再實(shí)現(xiàn)上述或其它的芯片測試,而無需在需測試的芯片內(nèi)裝設(shè)特殊的芯片測試模塊。通過合適地構(gòu)造UCB和確定其大小,可以使芯片測試沒有任何限制;UCB在芯片測試方面的功能性與特殊的芯片測試模塊的功能性是完全一致的。一般來說,通過采用UCB的芯片測試比采用特殊芯片測試模塊的測試要快。其原因在于,出于位置需要和成本的原因,特殊的芯片測試模塊具有盡可能簡單的結(jié)構(gòu),因此所實(shí)現(xiàn)的芯片測試有時(shí)可能并不是最快的。但在通過采用UCB實(shí)現(xiàn)芯片測試時(shí)是不同的。UCB總是為通用的應(yīng)用而設(shè)計(jì)的,由此它們通常無需特殊構(gòu)造就可以同其承擔(dān)的任務(wù)進(jìn)行最佳地匹配。原則上講,利用UCB可以實(shí)現(xiàn)任意模擬的、同步數(shù)字或異步數(shù)字的電路。此外,采用UCB對芯片測試也是比較有利的,因?yàn)槿魏螘r(shí)候都可以由此毫無問題地改變測試方法;譬如為了克服測試方法中的故障,或?qū)y試方法置為最新狀態(tài),都需要進(jìn)行一些改變。芯片測試所采用的UCB譬如可以通過所謂的掃描測試進(jìn)行測試。
已經(jīng)實(shí)現(xiàn)了實(shí)際測試,其中,用于靜態(tài)RAM的MBIST控制器是通過UCB來實(shí)現(xiàn)的。該結(jié)果非常突出。
由于通過UCB實(shí)現(xiàn)的電路在任何時(shí)候都可以毫無問題地進(jìn)行改變,所以UCB對密碼應(yīng)用和識別應(yīng)用也是很有意義的。也就是說,所需要的識別數(shù)據(jù)變化和/或必要的密碼變更(譬如在黑客入侵之后)可以由此只通過對UCB進(jìn)行再配置來實(shí)現(xiàn),也即可以用一種能想見的簡單方式和方法來實(shí)現(xiàn);無須替換掉位于終端用戶處的靈巧卡、票價(jià)卡(Mifare)或通行令牌(Wegfahrsperren)。
UCB被用于密碼應(yīng)用和識別應(yīng)用的另一優(yōu)點(diǎn)在于,與諸如所謂FPGA的其它可配置的硬件相比,UCB能進(jìn)行更快、更頻繁地再編程;此外,UCB比FPGA更小,面積也更有效。
當(dāng)然UCB也可以用于其它的應(yīng)用,而且,UCB在實(shí)現(xiàn)不同功能時(shí)與包含有UCB的設(shè)備的不同工作階段內(nèi)的應(yīng)用類型無關(guān),其中,通過相應(yīng)地規(guī)定配置數(shù)據(jù)或配置數(shù)據(jù)序列,可以以極低的費(fèi)用使功能與用戶的專用需要相匹配。因此譬如-只列舉任意多的實(shí)施例中的一個(gè)-可以規(guī)定,在接入包含有UCB的芯片之后將該UCB用作芯片測試模塊,此后,也即在芯片的“標(biāo)準(zhǔn)”工作模式下又被選擇性地用作串行接口或智能的并行接口。
在UCB的實(shí)際應(yīng)用中,如果它具有暫時(shí)存儲數(shù)據(jù)的可能性,則被證明是比較有利的。為此在UCB內(nèi)部優(yōu)選地裝設(shè)一個(gè)存儲器,譬如寫/讀存儲器。該存儲器優(yōu)選地構(gòu)造為具有無選擇訪問的存儲器,或構(gòu)造為棧存儲器(RAM),而且必須只有與該存儲器相對應(yīng)的UCB才能訪問。顯然,需要時(shí)也可以規(guī)定,包含UCB的系統(tǒng)的其它組件也可訪問該存儲器。
UCB的合成可以通過采用諸如VHDL的電路說明語言來實(shí)現(xiàn);用于按需要對UCB進(jìn)行配置的配置數(shù)據(jù)譬如可以根據(jù)匯編程序、C程序或(有時(shí)是用諸如VHDL的電路說明語言實(shí)現(xiàn)的)電路說明來產(chǎn)生。
總之,所述的硬件塊(UCB)在多方面被證明是有利的在應(yīng)用時(shí),它比所示類型的常規(guī)硬件塊的性能更強(qiáng),而且更靈活、更通用。
參考符號清單1預(yù)解碼單元2指令緩沖器3解碼重命名及裝載單元4s單元5數(shù)據(jù)高速緩沖器6存儲器接口41 可編程結(jié)構(gòu)緩沖器42 具有可編程結(jié)構(gòu)的功能單元43 整型/地址指令緩沖器44 整型寄存器文件AUx 算術(shù)單元CUA 第一類型的比較單元CUBx 第二類型的比較單元DEMUX多路分解器MUXAx第一類型的多路轉(zhuǎn)換器MUXB 第二類型的多路轉(zhuǎn)換器TGU 沖發(fā)生單元SU信令單元MCLK 主脈沖允許 允許信號ADC_READY A/D變換器的就緒信號CLK由TGU產(chǎn)生的脈沖信號就緒 硬件塊的就緒信號INT1 硬件塊的中斷請求1INT2 硬件塊的中斷請求2LPL裝載流水線SPL存儲流水線A 地址D 數(shù)據(jù)
權(quán)利要求
1.可配置的硬件塊,它被設(shè)計(jì)用來根據(jù)其配置讀出存于存儲裝置(44)之內(nèi)的數(shù)據(jù),并對讀出的數(shù)據(jù)進(jìn)行算術(shù)及/或邏輯處理,然后把表示該處理結(jié)果的數(shù)據(jù)寫入所述的存儲裝置,其特征在于所述硬件塊可被置為與外部硬件進(jìn)行交互作用。
2.如權(quán)利要求1所述的可配置的硬件塊,其特征在于所述與外部硬件的交互作用在于,在對某些事件作出反應(yīng)時(shí),促使所述的存儲裝置(44)接收由外部硬件提供的數(shù)據(jù)。
3.如權(quán)利要求1或2所述的可配置的硬件塊,其特征在于所述與外部硬件的交互作用在于,將數(shù)據(jù)和/或信號輸出到所述的外部硬件。
4.如上述權(quán)利要求之一所述的可配置的硬件塊,其特征在于所述的外部硬件由其它可配置的硬件塊和/或一種下級或上級控制器和/或包含可配置硬件塊的系統(tǒng)的其它單元組成。
5.如權(quán)利要求3或4所述的可配置的硬件塊,其特征在于輸至所述外部硬件的數(shù)據(jù)和/或信號為發(fā)出某些狀態(tài)或事件信令的數(shù)據(jù)和/或信號。
6.如上述權(quán)利要求之一所述的可配置的硬件塊,其特征在于裝設(shè)一種脈沖發(fā)生單元(TGU)來為存儲裝置(44)生成脈沖信號(CLK)。
7.如權(quán)利要求6所述的可配置的硬件塊,其特征在于所述脈沖發(fā)生單元(TGU)根據(jù)一個(gè)或多個(gè)周期性或非周期性的、至少部分地來自于所述外部硬件的信號(MCLK,允許;MCLK,ADC_READ)來生成脈沖信號(CLK)。
8.如上述權(quán)利要求之一所述的可配置的硬件塊,其特征在于裝設(shè)一種信令單元(SU)來為外部硬件生成應(yīng)答信號(就緒,INT1,INT2)。
9.如權(quán)利要求8所述的可配置的硬件塊,其特征在于通過所述應(yīng)答信號(就緒,INT1,INT2)發(fā)出如下信令,即在可配置的硬件塊內(nèi)產(chǎn)生了預(yù)定的狀態(tài)和/或事件。
10.如權(quán)利要求8或9所述的可配置的硬件塊,其特征在于所述信令單元(SU)被設(shè)計(jì)用來通過其生成的應(yīng)答信號(就緒,INT1,INT2)來發(fā)出如下信令,即在所述硬件塊內(nèi)重復(fù)執(zhí)行的操作或操作序列已經(jīng)執(zhí)行了所需的次數(shù)。
11.如權(quán)利要求8~10之一所述的可配置的硬件塊,其特征在于所述信令單元(SU)被設(shè)計(jì)用來在需要時(shí)以中斷請求的形式生成為程控單元所用的應(yīng)答信號(就緒,INT1,INT2)。
12.如權(quán)利要求8~11之一所述的可配置的硬件塊,其特征在于所述應(yīng)答信號(就緒,INT1,INT2)為至少一個(gè)比較單元(CUB;CUB1,CUB2,CUB3)的輸出信號。
13.如權(quán)利要求12所述的可配置的硬件塊,其特征在于所述的比較單元(CUB;CUB1,CUB2,CUB3)為至少部分地可配置的比較單元,且該比較單元可以讓輸入信號進(jìn)行可選擇的比較運(yùn)算和/或?qū)φ_及/或錯(cuò)誤進(jìn)行檢驗(yàn)。
14.如權(quán)利要求13所述的可配置的硬件塊,其特征在于所述可選擇的比較運(yùn)算包括大于、大于/等于、等于、不等于、小于、及/或小于/等于比較。
15.如權(quán)利要求12~14之一所述的可配置的硬件塊,其特征在于所述比較單元(CUB;CUB1,CUB2,CUB3)至少部分地在輸入側(cè)串接了多路轉(zhuǎn)換器(MUXA4),利用該多路轉(zhuǎn)換器來確定哪些信號作為輸入信號而被輸入到所述的比較單元中。
16.如上述權(quán)利要求之一所述的可配置的硬件塊,其特征在于所述可配置的硬件塊具有按功能配置的子單元(AUx,CUx,DEMUX,MUXx)和/或可配置的數(shù)據(jù)回路及/或信號回路。
17.如權(quán)利要求16所述的可配置的硬件塊,其特征在于存在或可以建立通往外部硬件的可配置的數(shù)據(jù)回路及/或信號回路。
18.如上述權(quán)利要求之一所述的可配置的硬件塊,其特征在于所述的存儲裝置(44)為一種包括許多寄存器的寄存器塊。
19.如上述權(quán)利要求之一所述的可配置的硬件塊,其特征在于所述硬件塊可以根據(jù)指令或指令序列進(jìn)行配置,使得該硬件塊能夠執(zhí)行由所述指令或指令序列規(guī)定的操作或操作序列。
20.如權(quán)利要求19所述的可配置的硬件塊,其特征在于如此來確定所述硬件塊的大小,使得其配置可以按超塊的方式實(shí)現(xiàn)。
21.如上述權(quán)利要求之一所述的可配置的硬件塊,其特征在于所述硬件塊可如此地構(gòu)造和配置,使得它可以用作一種特殊電路的替代物。
22.如上述權(quán)利要求之一所述的可配置的硬件塊,其特征在于所述硬件塊可如此地構(gòu)造和配置,使得它可以用作各種特殊電路的替代物。
23.如權(quán)利要求21或22所述的可配置的硬件塊,其特征在于所述硬件塊被用于對包含該硬件塊的集成電路進(jìn)行測試。
24.如權(quán)利要求21~23之一所述的可配置的硬件塊,其特征在于所述硬件塊被用于密碼應(yīng)用和/或識別應(yīng)用。
25.如上述權(quán)利要求之一所述的可配置的硬件塊,其特征在于所述硬件塊包含用于存儲中間結(jié)果的存儲裝置。
全文摘要
講述一種可配置的硬件塊,它被設(shè)計(jì)用來根據(jù)其配置讀出存于存儲裝置之內(nèi)的數(shù)據(jù),并對讀出的數(shù)據(jù)進(jìn)行算術(shù)及/或邏輯處理,然后把表示該處理結(jié)果的數(shù)據(jù)寫入所述的存儲裝置。所講述的硬件塊的特征在于,它可被置為與外部硬件進(jìn)行交互作用。由此可以獲得一種靈活且通用的硬件塊。
文檔編號G06F9/30GK1321276SQ99811316
公開日2001年11月7日 申請日期1999年9月10日 優(yōu)先權(quán)日1998年9月23日
發(fā)明者R·阿諾, H·克萊維, C·西默斯 申請人:因芬尼昂技術(shù)股份公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
庄浪县| 凌源市| 新巴尔虎右旗| 济源市| 包头市| 闽侯县| 土默特右旗| 含山县| 蒙城县| 鹰潭市| 高清| 故城县| 贺兰县| 昌图县| 辉南县| 涡阳县| 正安县| 老河口市| 武汉市| 且末县| 壶关县| 林口县| 日喀则市| 固镇县| 崇仁县| 绥阳县| 临江市| 彭水| 辉南县| 左贡县| 曲靖市| 冕宁县| 怀化市| 商水县| 瑞金市| 会宁县| 平陆县| 伊金霍洛旗| 安吉县| 浦县| 邹城市|