專利名稱::基于Avalon總線的流處理器IP核的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種流處理器IP核,尤其是采用FPGA實(shí)現(xiàn)的基于Avalon總線的流處理器IP核。
背景技術(shù):
:流處理器是新一代面向密集計(jì)算的高性能微處理器的典型代表,流處理器的主要功能就是順序處理有序數(shù)據(jù)記錄。記錄由相關(guān)數(shù)據(jù)的集合組成,有序的記錄構(gòu)成流,流的長度不固定,流記錄可以是任意數(shù)據(jù)類型,但同一個(gè)流中的記錄類型相同。流處理器專門面向流應(yīng)用。流應(yīng)用主要分為兩類一類是媒體應(yīng)用;另一類是科學(xué)計(jì)算。流應(yīng)用具有以下幾個(gè)主要特征計(jì)算密集性,與傳統(tǒng)的桌面應(yīng)用相比,流應(yīng)用對每次從內(nèi)存取出的數(shù)據(jù)都要進(jìn)行大量的算術(shù)運(yùn)算;并行性,以數(shù)據(jù)級并行為主,同時(shí)存在指令級和任務(wù)級并行;局域性,是指應(yīng)用中的數(shù)據(jù)重用局域性。根據(jù)這些特點(diǎn),流處理器采用流級和核心級兩級編程模式,流級程序負(fù)責(zé)數(shù)據(jù)的組織,核心級程序負(fù)責(zé)數(shù)據(jù)的計(jì)算。流處理器由流處理核、主機(jī)接口、標(biāo)量核組成。流處理核通過主機(jī)接口與標(biāo)量核連接。流處理核由流控制器、流寄存器文件SRF(StreamRegisterFile)、微控制器、存儲(chǔ)控制器、多個(gè)運(yùn)算簇、網(wǎng)絡(luò)接口組成。流控制器與主機(jī)接口相連,接收數(shù)據(jù)和地址信號。流控制器與存儲(chǔ)控制器、流寄存器文件SRF、微控制器和網(wǎng)絡(luò)接口相連接,向它們發(fā)送流指令產(chǎn)生的控制信號。流寄存器文件SRF與存儲(chǔ)控制器和運(yùn)算簇相連,用來存儲(chǔ)流數(shù)據(jù)同計(jì)算相關(guān)的輸入數(shù)據(jù)流、輸出數(shù)據(jù)流以及中間數(shù)據(jù)都存放在流寄存器文件SRF中,保證數(shù)據(jù)能夠在處理器內(nèi)部循環(huán)利用而不產(chǎn)生對外部存儲(chǔ)器DRAM的訪問。微控制器與運(yùn)算簇直接相連,向運(yùn)算簇發(fā)送超長指令字。流應(yīng)用中所有的計(jì)算指令由運(yùn)算簇完成,每個(gè)運(yùn)算簇內(nèi)包含多個(gè)ALU及ALU間的簇內(nèi)互聯(lián)開關(guān),運(yùn)算簇之間通過通訊單元保證不同運(yùn)算簇間的通訊。流處理核通常作為協(xié)處理器,需要與主處理器協(xié)同工作,主處理器通常稱為標(biāo)量處理器或標(biāo)量核。執(zhí)行流應(yīng)用時(shí),標(biāo)量核將程序員編寫的高級流操作編譯成低級流操作,再發(fā)送到流處理核中執(zhí)行??删幊唐舷到y(tǒng)(SOPC,SystemonaProgrammableChip)是指中央處理器、數(shù)字信號處理器、存儲(chǔ)器、模擬電路、信號采集和轉(zhuǎn)換電路等集成在一塊印制電路板上來實(shí)現(xiàn)系統(tǒng)的功能,并且能夠根據(jù)用戶需求進(jìn)行可編程開發(fā)。隨著微電子技術(shù)的發(fā)展,一塊芯片內(nèi)部可以集成很多器件,這種在一塊可編程芯片上集成的系統(tǒng)稱為SOPC。由于SOPC的規(guī)模非常龐大,涉及工作量很大,因此對已經(jīng)設(shè)計(jì)好的模塊進(jìn)行重復(fù)使用十分必要,解決這個(gè)問題的一個(gè)方法是使用IP核(IntellectualPropertyCore)。IP核在集成電路領(lǐng)域指已經(jīng)過驗(yàn)證的、可重復(fù)利用的并具有確定功能的集成電路模塊。IP核的使用可以大大降低設(shè)計(jì)時(shí)間、成本,提高設(shè)計(jì)效率。現(xiàn)有百萬門以上的芯片70。/。的模塊是IP核的重復(fù)使用。但是媒體應(yīng)用和科學(xué)計(jì)算等領(lǐng)域的流應(yīng)用處理速度的要求日益增高,由于通用微處理器的體系結(jié)構(gòu)不適合高速處理大規(guī)模密集計(jì)算,所以普通的通用微處理器IP核不能適應(yīng)媒體應(yīng)用和科學(xué)計(jì)算等領(lǐng)域的流應(yīng)用。若采用流體系結(jié)構(gòu)的流處理器IP核,則能夠適應(yīng)媒體應(yīng)用和科學(xué)計(jì)算等領(lǐng)域的流應(yīng)用。目前設(shè)計(jì)上通常采用如下兩種方案一是ASIC(專用集成電路,Application-SpecificIntegratedCircuit)投片;二是FPGA(現(xiàn)場可編程門陣列,F(xiàn)ieldProgrammableGateArray)。因?yàn)榱魈幚砥飨到y(tǒng)規(guī)模達(dá)千萬門級,消耗的邏輯資源和布線資源多,設(shè)計(jì)后端的布局布線的壓力也很大,所以通常采用ASIC方案。但是,ASIC投片需要大量的資金和人力資源,且不可修改。而采用FPGA既能獲得有關(guān)硬件實(shí)現(xiàn)的參數(shù)又具有靈活性,并且克服了ASIC設(shè)計(jì)周期長和投資大的缺點(diǎn),是比較理想的選擇。目前采用Avalon總線標(biāo)準(zhǔn)的FPGA以其靈活易用性被廣泛采用,其中Altera公司StratixII系列的EP2S180,單片邏輯門數(shù)達(dá)千萬門的規(guī)模,是目前采用Avalon總線標(biāo)準(zhǔn)的最大規(guī)模的FPGA芯片之一,但是其規(guī)模相對流處理器仍然較小。因此研究一種能夠在現(xiàn)有單片F(xiàn)PGA規(guī)模下實(shí)現(xiàn)的基于Avalon總線的流處理器IP核仍然是本領(lǐng)域技術(shù)人員極為關(guān)心的問題。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題是在現(xiàn)有單片F(xiàn)PGA規(guī)模下提供一種基于Avalon總線標(biāo)準(zhǔn)的流處理器IP核,該IP核適應(yīng)媒體應(yīng)用和科學(xué)計(jì)算等領(lǐng)域的流應(yīng)用對較高處理速度的要求。本發(fā)明的技術(shù)方案是流處理器IP核采用FPGA實(shí)現(xiàn),由標(biāo)量核、流處理核、Avalon總線組成,釆用Avalon總線作為流處理器系統(tǒng)架構(gòu)的片上高速總線,標(biāo)量核、流處理核通過Avalon總線互連。Avalon總線包括數(shù)據(jù)寫信號線、讀數(shù)據(jù)線、寫數(shù)據(jù)線,地址和數(shù)據(jù)讀信號線。標(biāo)量核中設(shè)計(jì)有一個(gè)異構(gòu)核中間件,異構(gòu)核中間件是一個(gè)動(dòng)態(tài)調(diào)度器,它一端與標(biāo)量核中的編譯器連接,另一端通過Avalon總線與流處理核連接,它完成標(biāo)量核和流處理核之間的鏈接,向編譯過后的流級程序提供調(diào)用接口;流處理核中設(shè)計(jì)有一個(gè)流級執(zhí)行單元,流級執(zhí)行單元一端通過Avalon總線與標(biāo)量核連接,另一端通過控制和狀態(tài)信號線與流處理核的微控制器、存儲(chǔ)控制器、流寄存器文件SRF、網(wǎng)絡(luò)接口連接,流級執(zhí)行單元是流級程序的執(zhí)行部件,它緩存流指令、選擇流指令執(zhí)行、執(zhí)行流指令、傳遞標(biāo)量數(shù)據(jù)、向標(biāo)量核提供流級執(zhí)行單元狀態(tài);所述流指令來自適應(yīng)這種體系結(jié)構(gòu)的新的流指令集。由于標(biāo)量核、流處理核擁有不同的指令集或操作碼,各自面向不同特征的工作負(fù)載,結(jié)構(gòu)迥異,因此被稱為異構(gòu)核。基于Altera公司的嵌入式總線標(biāo)準(zhǔn)設(shè)計(jì)實(shí)現(xiàn)的完整Avalon片上總線系統(tǒng),異構(gòu)核間數(shù)據(jù)傳輸?shù)臅r(shí)序和性能由Avalon總線協(xié)議保證。但是異構(gòu)核間特別是標(biāo)量核和流處理核間的交互較為復(fù)雜,只使用Avalon總線無法確保異構(gòu)核之間的數(shù)據(jù)傳輸?shù)恼_性和高效性,因此設(shè)計(jì)異構(gòu)核中間件和流級執(zhí)行單元來實(shí)現(xiàn)異構(gòu)核之間的數(shù)據(jù)傳輸。異構(gòu)核中間件由用戶調(diào)用接口、控制邏輯、指令數(shù)組緩存、指令狀態(tài)緩存、底層接口組成。用戶調(diào)用接口是供用戶程序調(diào)用異構(gòu)核中間件功能的一組接口函數(shù),直接與流級程序進(jìn)行數(shù)據(jù)和指令交互,它從編譯器處獲得編譯生成的流指令和數(shù)據(jù),將數(shù)據(jù)和指令傳輸給控制邏輯,并將從控制邏輯獲得的控制信號返回給用戶程序。指令狀態(tài)緩存在控制邏輯將流指令發(fā)送到流處理核時(shí)保存流指令的信息,包括指令的類型,各項(xiàng)參數(shù)等等,并從控制邏輯接收并保存當(dāng)前流指令的執(zhí)行狀態(tài)信息,根據(jù)這些狀態(tài)信息更新自身內(nèi)部緩存的流指令的狀態(tài)信息。指令數(shù)組緩存是緩存一個(gè)用戶程序中所有低級流操作指令(低級流操作指令是由流編譯根據(jù)流級程序中的高級流操作自動(dòng)生成的,可以直接發(fā)往流處理核,并被流處理核執(zhí)行的指令)的部件,與控制邏輯連接,供控制邏輯查詢低級流操作指令??刂七壿嬍强刂飘悩?gòu)核中間件其它部件完成各種功能的關(guān)鍵部件,它與用戶調(diào)用接口、指令數(shù)組緩存、指令狀態(tài)緩存、底層接口均相連。流程序調(diào)用異構(gòu)核中間件時(shí),控制邏輯從用戶調(diào)用接口接收數(shù)據(jù)和指令,從指令狀態(tài)緩存讀取當(dāng)前的流指令狀態(tài)信息,同時(shí)從指令數(shù)組緩存接收低級流操作。根據(jù)接收到的數(shù)據(jù)和指令,控制邏輯執(zhí)行下面幾種不同的操作在標(biāo)量核向流處理器傳輸流指令時(shí),控制邏輯從用戶調(diào)用接口獲得低級流操作,通過底層接口從流處理核獲取流指令當(dāng)前執(zhí)行狀態(tài)信息,決定是通過底層接口傳送低級流操作,還是等待再傳送;在流處理核向標(biāo)量核傳輸流指令執(zhí)行狀態(tài)時(shí),控制邏輯通過底層接口從流處理核中讀出流處理核當(dāng)前狀態(tài),并更新指令狀態(tài)緩存中的信息;在標(biāo)量核與流處理核之間傳輸標(biāo)量數(shù)據(jù)時(shí),流級程序通過編譯器將讀標(biāo)量數(shù)據(jù)的低級流操作傳送給用戶調(diào)用接口,控制邏輯通過底層接口將低級流操作傳送到流處理核,流處理核執(zhí)行完畢后,控制邏輯再從底層接口將數(shù)據(jù)從流處理核讀出,并通過用戶調(diào)用接口返回給編譯器,供流級程序使用;在標(biāo)量核與流處理核之間進(jìn)行流數(shù)據(jù)傳輸(專指成塊數(shù)據(jù)序列的傳輸)時(shí),控制邏輯通過底層接口向流處理核發(fā)送所有數(shù)據(jù)傳輸ffiffiM低級流操作,流處理核執(zhí)行這些低級流操作使得流數(shù)據(jù)在標(biāo)量核和流處理核之間傳輸。底層接口既與控制邏輯相連接,又與流處理核相連,它從控制邏輯獲取指令或數(shù)據(jù),將從控制邏輯獲得的指令或數(shù)據(jù)傳送給流處理核,并向控制邏輯返回流處理核的狀態(tài)信息。為了完成標(biāo)量核同流處理核之間的交互,在流處理核中設(shè)計(jì)有流級執(zhí)行單元。流級執(zhí)行單元由流級執(zhí)行單元接口、狀態(tài)寄存器、指令存儲(chǔ)器RAM、標(biāo)量寄存器文件、指令執(zhí)行單元、指令狀態(tài)信息單元、狀態(tài)信息更新邏輯和多路選擇器組成。流級執(zhí)行單元接口通過Avalon總線與標(biāo)量核的異構(gòu)核中間件相連,通過邏輯發(fā)射槽信號線、第一流指令信號線、寫使能信號線與指令存儲(chǔ)器RAM相連,通過讀地址信號線和第一數(shù)據(jù)讀信號線與標(biāo)量寄存器文件相連,通過流級執(zhí)行單元狀態(tài)信號線與狀態(tài)寄存器相連。流級執(zhí)行單元接口通過Avalon總線中的數(shù)據(jù)寫信號線接收從標(biāo)量核發(fā)來的流指令,將流指令通過第一流指令信號線轉(zhuǎn)發(fā)到指令存儲(chǔ)器RAM,并將寫向指令存儲(chǔ)器RAM的地址通過邏輯發(fā)射槽信號線發(fā)送給指令存儲(chǔ)器RAM;流級執(zhí)行單元接口將來自標(biāo)量核的地址信號轉(zhuǎn)發(fā)給標(biāo)量寄存器文件,接收從標(biāo)量寄存器文件返回的存儲(chǔ)在該地址的數(shù)據(jù),返回給標(biāo)量核;同時(shí),流級執(zhí)行單元接口從狀態(tài)寄存器接收流級執(zhí)行單元狀態(tài)信息,將流級執(zhí)行單元狀態(tài)信息返回給標(biāo)量核。由于Avalon總線的數(shù)據(jù)寬度是32位,而流指令的長度是變長的,部分流指令寬度超過32位,因此需要多個(gè)周期來傳輸流指令,因此,流級執(zhí)行單元接口設(shè)計(jì)有指令結(jié)束信號線來標(biāo)志一條流指令的傳輸是否結(jié)束,標(biāo)量核往指令結(jié)束信號線發(fā)送0就表示該流指令未傳輸完,發(fā)送1則表示該條流指令傳輸完成。指令存儲(chǔ)器RAM與流級執(zhí)行單元接口通過邏輯發(fā)射槽信號線、第一流指令信號線、寫使能信號線相連,與多路選擇器通過地址信號線相連,通過第二流指令信號線與指令執(zhí)行單元相連。RAM通過邏輯發(fā)射槽信號線從流級執(zhí)行單元接口獲取指令在RAM中的地址,通過第一流指令信號線從流級執(zhí)行單元接口獲取流指令,在寫使能信號線使能的情況下寫入流指令;并從多路選擇器獲取讀取RAM中指令的地址,通過第二流指令信號線將讀取的流指令發(fā)送給指令執(zhí)行單元。指令狀態(tài)信息單元通過狀態(tài)信號線和置位信號線與狀態(tài)信息更新邏輯相連,通過選擇信號線與多路選擇器相連。指令狀態(tài)信息單元為一個(gè)寄存器組,寄存器組的每一項(xiàng)對應(yīng)于一條流指令,存儲(chǔ)該流指令執(zhí)行時(shí)所需的信息,包括就緒位、資源位、邏輯發(fā)射槽號三個(gè)字段,就緒位表示該項(xiàng)對應(yīng)的流指令是否可以執(zhí)行,資源位表示該項(xiàng)對應(yīng)的流指令執(zhí)行時(shí)所需的資源,邏輯發(fā)射槽號表示該項(xiàng)對應(yīng)的流指令的邏輯編號。指令狀態(tài)信息單元的每一項(xiàng)寄存器通過置位信號線從狀態(tài)信息更新邏輯獲取置位信號,若置位信號為高,則置該項(xiàng)寄存器的就緒位為就緒狀態(tài),表示該項(xiàng)對應(yīng)的流指令可以執(zhí)行,同時(shí),指令狀態(tài)信息單元將邏輯發(fā)射槽號和就緒位通過選擇信號線發(fā)送給多路選擇器。多路選擇器通過選擇信號線與指令狀態(tài)信息單元相連,通過地址信號線與指令存儲(chǔ)器RAM相連。多路選擇器通過選擇信號線獲取指令狀態(tài)信息單元每一項(xiàng)的就緒信息,若某一項(xiàng)處于就緒狀態(tài),則多路選擇器選擇該項(xiàng)指令執(zhí)行,通過選擇信號線獲取該項(xiàng)的邏輯發(fā)射槽號作為讀取RAM的地址,通過地址信號線傳給RAM,若指令狀態(tài)信息單元有多項(xiàng)寄存器的就緒信息為就緒狀態(tài),則選擇編號最小或編號最大的寄存器中的指令執(zhí)行,將其對應(yīng)的邏輯發(fā)射槽號作為地址發(fā)送給RAM。狀態(tài)信息更新邏輯一方面與網(wǎng)絡(luò)接口、微控制器、流寄存器文件SRF、存儲(chǔ)控制器通過忙閑信號線相連,接收來自這些模塊的忙閑信號,另一方面通過忙閑狀態(tài)信號線與指令執(zhí)行單元相連,通過狀態(tài)信號線和置位信號線與指令狀態(tài)信息單元相連,同時(shí)通過執(zhí)行狀態(tài)信號線和狀態(tài)設(shè)置信號線與狀態(tài)寄存器相連。狀態(tài)信息更新邏輯通過狀態(tài)信號線獲取指令狀態(tài)信息單元的每一項(xiàng)的資源信息,從而獲知與該項(xiàng)對應(yīng)的指令執(zhí)行所需的資源,根據(jù)忙閑信號線獲取流處理核中其它模塊(即網(wǎng)絡(luò)接口、微控制器、流寄存器文件SRF、存儲(chǔ)控制器)的忙閑信息,若該項(xiàng)對應(yīng)的指令所需的資源為空閑,則通過置位信號線設(shè)置該項(xiàng)寄存器的就緒位為就緒狀態(tài),反之就緒位不變。標(biāo)量寄存器文件通過數(shù)據(jù)寫信號線和數(shù)據(jù)讀信號線與指令執(zhí)行單元相連,通過讀地址信號線、第一數(shù)據(jù)讀信號線與流級執(zhí)行單元接口相連。標(biāo)量寄存器文件為一個(gè)寄存器組,用來存儲(chǔ)流處理核中的標(biāo)量數(shù)據(jù),它通過數(shù)據(jù)寫信號線接收來自指令執(zhí)行單元的數(shù)據(jù),通過數(shù)據(jù)讀信號線將數(shù)據(jù)返回給指令執(zhí)行單元。同時(shí),標(biāo)量寄存器文件通過第一數(shù)據(jù)讀信號線將讀地址對應(yīng)的數(shù)據(jù)返回給流級執(zhí)行單元接口。指令執(zhí)行單元通過第二流指令信號線與指令存儲(chǔ)器RAM連接,通過控制信號線與網(wǎng)絡(luò)接口、微控制器、流寄存器文件SRF、存儲(chǔ)控制器相連,通過數(shù)據(jù)寫信號線和數(shù)據(jù)讀信號線與標(biāo)量寄存器文件相連,通過忙閑狀態(tài)信號線與狀態(tài)信息更新邏輯相連。指令執(zhí)行單元接收來自RAM的流指令,對流指令進(jìn)行譯碼,產(chǎn)生控制信號并發(fā)送給流處理核中的其它模塊(即網(wǎng)絡(luò)接口、微控制器、流寄存器文件SRF、存儲(chǔ)控制器),啟動(dòng)其它模塊工作。同時(shí),指令執(zhí)行單元通過數(shù)據(jù)寫信號線向標(biāo)量寄存器文件寫數(shù)據(jù),通過數(shù)據(jù)讀信號線從標(biāo)量寄存器文件中讀取數(shù)據(jù)。另外,指令執(zhí)行單元將忙閑信息通過忙閑狀態(tài)信號線傳給狀態(tài)信息更新邏輯。狀態(tài)寄存器是保存流級執(zhí)行單元狀態(tài)的寄存器,通過執(zhí)行狀態(tài)信號線和狀態(tài)設(shè)置信號線與狀態(tài)信息更新邏輯相連,通過流級執(zhí)行單元狀態(tài)信號線與流級執(zhí)行單元接口相連。若狀態(tài)設(shè)置信號線有效,則置狀態(tài)寄存器為有效狀態(tài),狀態(tài)寄存器的內(nèi)容一方面通過執(zhí)行狀態(tài)信號線傳給狀態(tài)信息更新邏輯,一方面通過流級執(zhí)行單元狀態(tài)信號線傳給流級執(zhí)行單元接口。流應(yīng)用通過流處理核執(zhí)行流指令來完成,因此必須設(shè)計(jì)適應(yīng)本發(fā)明體系結(jié)構(gòu)的新的流指令集。流指令集設(shè)計(jì)為可變長的,在流級執(zhí)行單元中執(zhí)行。流指令集包括四類指令寄存器讀寫指令,流傳輸指令,執(zhí)行核心程序指令,其他指令。每條指令是多位二進(jìn)制數(shù),在指令中設(shè)置多個(gè)域,每個(gè)域代表指令的一個(gè)操作或者一個(gè)操作數(shù),每條指令的第一個(gè)域?yàn)橹噶钭R(shí)別碼域。1.寄存器讀寫指令是用于對流體系結(jié)構(gòu)中的寄存器進(jìn)行讀寫操作的指令。該類指令包含2條指令(1).MOVEDst—type,Dst—num,Src_type,Src—num,synch指令功能將源寄存器Src一type[Src—num]的內(nèi)容寫至目的寄存器Dst—type[Dst_num]。其中—type指明寄存器類型,—num指明寄存器的編號,synch表示同步標(biāo)志位,當(dāng)該指令需要與其它模塊同步時(shí),該標(biāo)志位置上。(2).Write—ImmDst_type,Dst—num,Imm,synch指令功能將立即數(shù)Imm寫至目的寄存器DstJype[Dst_num]。其中—type指明寄存器類型,一num指明寄存器的編號,synch表示同步標(biāo)志位,當(dāng)該指令需要與其它模塊同步時(shí),該標(biāo)志為置上。2.流傳輸指令用于片外DRAM存儲(chǔ)器、片上的SRF、微控制器之間的數(shù)據(jù)傳輸,包含3條指令。(3).MemopData—sdr一num,dir,Data—mar指令功能啟動(dòng)片外DRAM與流寄存器文件之間的流傳輸。流在片外DRAM存儲(chǔ)器中的地址和訪存方式由寄存器Data—mar給出,流在SRF中的地址和長度由寄存器Data_sdr_num給出,方向由dir給出。(4).Load一ucodePgm—sdr一num,mpc指令功能將核心程序的微碼以流數(shù)據(jù)的方式從SRF加載到微控制器,微碼在SRF中的位置和長度由寄存器Pgm—sdiLnum給出,微碼加載到微控制器中起始地址由mpc給出。(5).Netopnet一sdr—num,dir,Tag,NRR指令功能啟動(dòng)本地流寄存器文件與遠(yuǎn)程流寄存器文件之間的流網(wǎng)絡(luò)傳輸。流數(shù)據(jù)在本地流寄存器文件中的位置和長度由寄存器net—sdr_num給出,dir表示數(shù)據(jù)的傳輸方向,用來區(qū)分?jǐn)?shù)據(jù)的發(fā)送和接收,Tag用來區(qū)分前往同一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)的不同報(bào)文,每個(gè)報(bào)文具有不同的Tag值,網(wǎng)絡(luò)傳輸過程所需的路由信息由寄存器NRR給出。3.執(zhí)行核心程序指令(6).Clustopsdr一num,dir,mode,restartable,mpc指令功能通知微控制器執(zhí)行核心程序,核心在微碼存儲(chǔ)器的起始地址由MPC指出,而核心輸入流和輸出流在SRF中位置和長度由寄存器sdr一num給出,傳輸方向由dir給出,傳輸模式由mode給出,restartable指明輸入和輸出是否需要再次啟動(dòng)。(7).Clust一restartsdr一num,dir,mode,restartable指令功能重啟核心的輸入或輸出流,長流雙緩沖時(shí)使用。流在SRF中的位置和長度由sdr—num給出,傳輸方向由dri給出,傳輸模式由mode給出,restartable指明輸入和輸出是否需要再次啟動(dòng)。4.其它指令(8).END指令功能一個(gè)完整的流程序結(jié)束前最后執(zhí)行該指令,通知流處理器程序已經(jīng)執(zhí)行完畢。(9).Barrier指令功能由于流程序存有標(biāo)量操作例如循環(huán)、分支,為了確保流指令正確發(fā)射,插入Barrier指令,該指令起到阻塞的功能,即只有按照程序順序?qū)⑾扔贐arrier指令的所有流指令都執(zhí)行完畢,Barrier指令以及Barrier指令以后的指令才有可能發(fā)射。(10).Synch一uc指令功能當(dāng)微控制器在執(zhí)行核心程序的過程中到達(dá)相應(yīng)的同步點(diǎn),執(zhí)行該指令,實(shí)現(xiàn)與核心程序執(zhí)行的同步。該指令會(huì)向微控制器發(fā)送一個(gè)同步信號,使得微控制器繼續(xù)執(zhí)行核心程序。流指令最初位于標(biāo)量核,經(jīng)異構(gòu)核中間件進(jìn)入到流處理核,并在流處理核的流級執(zhí)行單元上執(zhí)行。在流級執(zhí)行單元中,流指令首先經(jīng)過流級執(zhí)行單元接口進(jìn)入指令存儲(chǔ)RAM,然后由多路選擇器選擇發(fā)射到指令執(zhí)行單元,指令執(zhí)行單元譯碼執(zhí)行流指令,根據(jù)流指令的功能,產(chǎn)生控制流處理核中其它模塊的控制信號,控制流處理核中其它模塊的運(yùn)行。采用本發(fā)明可以達(dá)到以下效果1、本發(fā)明提供了一種基于Avalon總線的流處理器IP核。由于流體系結(jié)構(gòu)本身適合與媒體處理核科學(xué)計(jì)算領(lǐng)域的應(yīng)用,因此本IP核適合作為媒體處理和科學(xué)計(jì)算等領(lǐng)域的計(jì)算密集型的流應(yīng)用的運(yùn)行平臺(tái)。2、在本發(fā)明IP核內(nèi)部,標(biāo)量核和流處理核之間去掉了主機(jī)接口,改用片內(nèi)高速總線即Avalon標(biāo)準(zhǔn)總線互連,而Avalon總線標(biāo)準(zhǔn)支持多個(gè)外設(shè),所以本發(fā)明很容易在規(guī)模上進(jìn)行擴(kuò)展,使IP核的總線標(biāo)準(zhǔn)與FPGA開發(fā)應(yīng)用統(tǒng)一,有更好的通用性。3、本發(fā)明IP核中的標(biāo)量核內(nèi)部設(shè)計(jì)有異構(gòu)核中間件,流處理核內(nèi)部設(shè)計(jì)有流級執(zhí)行單元,它們同Avalon標(biāo)準(zhǔn)總線連接,使得IP核能夠完成標(biāo)量核同流處理核的協(xié)同工作機(jī)制,能夠順利執(zhí)行流應(yīng)用。4、本發(fā)明設(shè)計(jì)有適應(yīng)本發(fā)明體系結(jié)構(gòu)的新的流指令集,使得流應(yīng)用的程序能夠經(jīng)編譯器、異構(gòu)核中間件、流級執(zhí)行單元形成流指令集中的流指令,流應(yīng)用能夠以流指令執(zhí)行的方式被流處理核執(zhí)行。圖1是美國斯坦福大學(xué)公開的一種流處理器體系結(jié)構(gòu)圖。圖2是本發(fā)明基于Avalon總線的流處理器IP核結(jié)構(gòu)圖。圖3是本發(fā)明IP核中異構(gòu)核中間件的邏輯結(jié)構(gòu)圖。圖4是本發(fā)明IP核中流級執(zhí)行單元的結(jié)構(gòu)圖。具體實(shí)施例方式圖1是美國斯坦福大學(xué)公開的一種流處理器IP核體系結(jié)構(gòu)圖。該IP核由標(biāo)量核和流處理核通過主機(jī)接口連接而成。流處理核由流控制器、流寄存器文件SRF、微控制器、存儲(chǔ)控制器、多個(gè)運(yùn)算簇、網(wǎng)絡(luò)接口組成。流控制器與主機(jī)接口相連,接收數(shù)據(jù)和地址信號。流控制器與存儲(chǔ)控制器、流寄存器文件SRF、微控制器和網(wǎng)絡(luò)接口相連接,向它們發(fā)送流指令產(chǎn)生的控制信號。流寄存器文件SRF與存儲(chǔ)控制器和運(yùn)算簇相連,用來存儲(chǔ)流數(shù)據(jù)同計(jì)算相關(guān)的輸入數(shù)據(jù)流、輸出數(shù)據(jù)流以及中間數(shù)據(jù)都存放在流寄存器文件SRF中,保證數(shù)據(jù)能夠在處理器內(nèi)部循環(huán)利用而不產(chǎn)生對外部存儲(chǔ)器DRAM的訪問。微控制器與運(yùn)算簇直接相連,向運(yùn)算簇發(fā)送超長指令字。流處理器中所有的計(jì)算指令由運(yùn)算簇完成,每個(gè)運(yùn)算簇內(nèi)包含多個(gè)ALU及ALU間的簇內(nèi)互聯(lián)開關(guān),運(yùn)算簇之間通過通訊單元保證不同運(yùn)算簇間的通訊。執(zhí)行流應(yīng)用時(shí),標(biāo)量核將程序員編寫的高級流操作編譯成低級流操作,再發(fā)送到流處理核中執(zhí)行。圖2是本發(fā)明基于Avalon總線的流處理器IP核結(jié)構(gòu)圖。基于Avalon總線的流處理器IP核具有流處理器的體系結(jié)構(gòu),包括標(biāo)量核、流處理核和Avalon總線。與原有流處理器的主要區(qū)別是標(biāo)量核、流處理核之間沒有主機(jī)接口,流處理核中沒有流控制器,其功能由標(biāo)量核中的異構(gòu)核中間件、Avalon總線和流處理核中的流級執(zhí)行單元實(shí)現(xiàn),數(shù)據(jù)和控制信號不再通過主機(jī)接口而是通過Avalon總線傳輸。圖3是本發(fā)明IP核中異構(gòu)核中間件邏輯結(jié)構(gòu)圖。異構(gòu)核中間件是一個(gè)動(dòng)態(tài)調(diào)度器,它一端與標(biāo)量核中的編譯器連接,另一端通過Avalon總線與流處理核連接,它完成標(biāo)量核和流處理核之間的鏈接,向編譯過后的流級程序提供調(diào)用接口。異構(gòu)核中間件由用戶調(diào)用接口、控制邏輯、指令數(shù)組緩存、指令狀態(tài)緩存、底層接口組成。用戶調(diào)用接口是供用戶程序調(diào)用異構(gòu)核中間件功能的一組接口函數(shù),直接與流級程序進(jìn)行數(shù)據(jù)和指令交互,它從編譯器處獲得編譯生成的流指令和數(shù)據(jù),將數(shù)據(jù)和指令傳輸給控制邏輯,并將從控制邏輯獲得控制信號返回給用戶程序。指令狀態(tài)緩存在控制邏輯將流指令發(fā)送到流處理核時(shí)保存這些流指令的信息,包括指令的類型,各項(xiàng)參數(shù)等等,并從控制邏輯接收并保存當(dāng)前流指令的執(zhí)行狀態(tài)信息,根據(jù)這些狀態(tài)信息更新自身內(nèi)部緩存的流指令的狀態(tài)信息。指令數(shù)組緩存是緩存一個(gè)用戶程序中所有低級流操作指令的部件,與控制邏輯連接,供控制邏輯査詢低級流操作指令。控制邏輯是異構(gòu)核中間件完成各種功能的關(guān)鍵部件,它與用戶調(diào)用接口、指令數(shù)組緩存、指令狀態(tài)緩存、底層接口均相連。底層接口既與控制邏輯相連接,又與流處理核相連,它從控制邏輯獲取指令或數(shù)據(jù),向控制邏輯返回流處理核的狀態(tài)信息,并將從控制邏輯獲得的指令或數(shù)據(jù)與流處理核交互。圖4是本發(fā)明IP核中流級執(zhí)行單元的結(jié)構(gòu)圖。流級執(zhí)行單元一端通過Avalon總線與標(biāo)量核連接,另一端通過控制和狀態(tài)信號線與流處理核的微控制器、存儲(chǔ)控制器、流寄存器文件SRF、網(wǎng)絡(luò)接口連接。流級執(zhí)行單元由流級執(zhí)行單元接口、狀態(tài)寄存器、指令存儲(chǔ)器RAM、標(biāo)量寄存器文件、指令執(zhí)行單元、指令狀態(tài)信息單元、狀態(tài)信息更新邏輯和多路選擇器組成。流級執(zhí)行單元接口通過Avalon總線與標(biāo)量核的異構(gòu)核中間件相連,通過邏輯發(fā)射槽信號線、第一流指令信號線、寫使能信號線與指令存儲(chǔ)器RAM相連,通過讀地址信號線和第一數(shù)據(jù)讀信號線與標(biāo)量寄存器文件相連,通過流級執(zhí)行單元狀態(tài)信號線與狀態(tài)寄存器相連。流級執(zhí)行單元接口通過Avalon總線中的數(shù)據(jù)寫信號線接收從標(biāo)量核發(fā)來的流指令,將流指令通過第一流指令信號線轉(zhuǎn)發(fā)到指令存儲(chǔ)器RAM,并將寫向指令存儲(chǔ)器RAM的地址通過邏輯發(fā)射槽信號線發(fā)送給指令存儲(chǔ)器RAM;流級執(zhí)行單元接口將來自標(biāo)量核的地址信號轉(zhuǎn)發(fā)給標(biāo)量寄存器文件,接收從標(biāo)量寄存器文件返回的存儲(chǔ)在該地址的數(shù)據(jù),返回給標(biāo)量核;同時(shí),流級執(zhí)行單元接口從狀態(tài)寄存器接收流級執(zhí)行單元狀態(tài)信息,將流級執(zhí)行單元狀態(tài)信息返回給標(biāo)量核。流級執(zhí)行單元接口設(shè)計(jì)有指令結(jié)束信號線來標(biāo)志一條流指令的傳輸是否結(jié)束,標(biāo)量核往指令結(jié)束信號線發(fā)送0就表示該流指令未傳輸完,發(fā)送1則表示該條流指令傳輸完成。指令存儲(chǔ)器RAM與流級執(zhí)行單元接口通過邏輯發(fā)射槽信號線、第一流指令信號線、寫使能信號線相連,與多路選擇器通過地址信號線相連,通過第二流指令信號線與指令執(zhí)行單元相連。RAM通過邏輯發(fā)射槽信號線從流級執(zhí)行單元接口獲取指令在RAM中的地址,通過第一流指令信號線從流級執(zhí)行單元接口獲取流指令,在寫使能信號線使能的情況下寫入流指令;并從多路選擇器獲取讀取RAM中指令的地址,通過第二流指令信號線將讀取的流指令發(fā)送給指令執(zhí)行單元。指令狀態(tài)信息單元通過狀態(tài)信號線和置位信號線與狀態(tài)信息更新邏輯相連,通過選擇信號線與多路選擇器相連。指令狀態(tài)信息單元為一個(gè)寄存器組,寄存器組的每一項(xiàng)對應(yīng)于一條流指令,存儲(chǔ)該流指令執(zhí)行時(shí)所需的信息,包括就緒位、資源位、邏輯發(fā)射槽號三個(gè)字段,就緒位表示該項(xiàng)對應(yīng)的流指令是否可以執(zhí)行,資源位表示該項(xiàng)對應(yīng)的流指令執(zhí)行時(shí)所需的資源,邏輯發(fā)射槽號表示該項(xiàng)對應(yīng)的流指令的邏輯編號。指令狀態(tài)信息單元的每一項(xiàng)寄存器通過置位信號線從狀態(tài)信息更新邏輯獲取置位信號,若置位信號為高,則置該項(xiàng)寄存器的就緒位為就緒狀態(tài),表示該項(xiàng)對應(yīng)的流指令可以執(zhí)行,同時(shí),指令狀態(tài)信息單元將邏輯發(fā)射槽號和就緒位通過選擇信號線發(fā)送給多路選擇器。多路選擇器通過選擇信號線與指令狀態(tài)信息單元相連,通過地址信號線與指令存儲(chǔ)器RAM相連。多路選擇器通過選擇信號線獲取指令狀態(tài)信息單元每一項(xiàng)的就緒信息,若某一項(xiàng)處于就緒狀態(tài),則多路選擇器選擇該項(xiàng)指令執(zhí)行,通過選擇信號線獲取該項(xiàng)的邏輯發(fā)射槽號作為讀取RAM的地址,通過地址信號線傳給RAM,若指令狀態(tài)信息單元有多項(xiàng)寄存器的就緒信息為就緒狀態(tài),則選擇編號最小或編號最大的寄存器中的指令執(zhí)行,將其對應(yīng)的邏輯發(fā)射槽號作為地址發(fā)送給RAM。狀態(tài)信息更新邏輯一方面與網(wǎng)絡(luò)接口、微控制器、流寄存器文件SRF、存儲(chǔ)控制器通過忙閑信號線相連,接收來自這些模塊的忙閑信號,另一方面通過忙閑狀態(tài)信號線與指令執(zhí)行單元相連,通過狀態(tài)信號線和置位信號線與指令狀態(tài)信息單元相連,同時(shí)通過執(zhí)行狀態(tài)信號線和狀態(tài)設(shè)置信號線與狀態(tài)寄存器相連。狀態(tài)信息更新邏輯通過狀態(tài)信號線獲取指令狀態(tài)信息單元的每一項(xiàng)的資源信息,從而獲知與該項(xiàng)對應(yīng)的指令執(zhí)行所需的資源,根據(jù)忙閑信號線獲取流處理核中其它模塊(即網(wǎng)絡(luò)接口、微控制器、流寄存器文件SRF、存儲(chǔ)控制器)的忙閑信息,若該項(xiàng)對應(yīng)的指令所需的資源為空閑,則通過置位信號線設(shè)置該項(xiàng)寄存器的就緒位為就緒狀態(tài),反之就緒位不變。標(biāo)量寄存器文件通過數(shù)據(jù)寫信號線和數(shù)據(jù)讀信號線與指令執(zhí)行單元相連,通過讀地址信號線、第一數(shù)據(jù)讀信號線與流級執(zhí)行單元接口相連。標(biāo)量寄存器文件為一個(gè)寄存器組,用來存儲(chǔ)流處理核中的標(biāo)量數(shù)據(jù),它通過數(shù)據(jù)寫信號線接收來自指令執(zhí)行單元的數(shù)據(jù),通過數(shù)據(jù)讀信號線將數(shù)據(jù)返回給指令執(zhí)行單元。同時(shí),標(biāo)量寄存器文件通過第一數(shù)據(jù)讀信號線將讀地址對應(yīng)的數(shù)據(jù)返回給流級執(zhí)行單元接口。指令執(zhí)行單元通過第二流指令信號線與指令存儲(chǔ)器RAM連接,通過控制信號線與網(wǎng)絡(luò)接口、微控制器、流寄存器文件SRF、存儲(chǔ)控制器相連,通過數(shù)據(jù)寫信號線和數(shù)據(jù)讀信號線與標(biāo)量寄存器文件相連,通過忙閑狀態(tài)信號線與狀態(tài)信息更新邏輯相連。指令執(zhí)行單元接收來自RAM的流指令,對流指令進(jìn)行譯碼,產(chǎn)生控制信號并發(fā)送給流處理核中的其它模塊(即網(wǎng)絡(luò)接口、微控制器、流寄存器文件SRF、存儲(chǔ)控制器),啟動(dòng)其它模塊工作。同時(shí),指令執(zhí)行單元通過數(shù)據(jù)寫信號線向標(biāo)量寄存器文件寫數(shù)據(jù),通過數(shù)據(jù)讀信號線從標(biāo)量寄存器文件中讀取數(shù)據(jù)。另外,指令執(zhí)行單元將忙閑信息通過忙閑狀態(tài)信號線傳給狀態(tài)信息更新邏輯。狀態(tài)寄存器是保存流級執(zhí)行單元狀態(tài)的寄存器,通過執(zhí)行狀態(tài)信號線和狀態(tài)設(shè)置信號線與狀態(tài)信息更新邏輯相連,通過流級執(zhí)行單元狀態(tài)信號線與流級執(zhí)行單元接口相連。若狀態(tài)設(shè)置信號線有效,則置狀態(tài)寄存器為有效狀態(tài),狀態(tài)寄存器的內(nèi)容一方面通過執(zhí)行狀態(tài)信號線傳給狀態(tài)信息更新邏輯,一方面通過流級執(zhí)行單元狀態(tài)信號線傳給流級執(zhí)行單元接口。權(quán)利要求1.一種基于Avalon總線的流處理器IP核,由標(biāo)量核、流處理核組成,其特征在于整個(gè)IP核采用FPGA實(shí)現(xiàn),標(biāo)量核、流處理核、外圍設(shè)備通過Avalon總線互連,Avalon總線包括數(shù)據(jù)寫信號線、讀數(shù)據(jù)線、寫數(shù)據(jù)線,地址和數(shù)據(jù)讀信號線,標(biāo)量核中設(shè)計(jì)有一個(gè)異構(gòu)核中間件,異構(gòu)核中間件是一個(gè)動(dòng)態(tài)調(diào)度器,它一端與標(biāo)量核中的編譯器連接,另一端通過Avalon總線與流處理核連接,它完成標(biāo)量核和流處理核之間的鏈接,向編譯過后的流級程序提供調(diào)用接口;流處理核中設(shè)計(jì)有一個(gè)流級執(zhí)行單元,流級執(zhí)行單元一端通過Avalon總線與標(biāo)量核連接,另一端通過控制和狀態(tài)信號線與流處理核的微控制器、存儲(chǔ)控制器、流寄存器文件SRF、網(wǎng)絡(luò)接口連接,流級執(zhí)行單元是流級程序的執(zhí)行部件,它緩存流指令、選擇流指令執(zhí)行、執(zhí)行流指令、傳遞標(biāo)量數(shù)據(jù)、向標(biāo)量核提供流級執(zhí)行單元狀態(tài);流指令來自適應(yīng)這種體系結(jié)構(gòu)的新的流指令集。2.如權(quán)利要求1所述的基于Avalon總線的流處理器IP核,其特征在于所述異構(gòu)核中間件由用戶調(diào)用接口、控制邏輯、指令數(shù)組緩存、指令狀態(tài)緩存、底層接口組成2.1用戶調(diào)用接口是供用戶程序調(diào)用異構(gòu)核中間件功能的一組接口函數(shù),直接與流級程序進(jìn)行數(shù)據(jù)和指令交互,它從編譯器處獲得編譯生成的流指令和數(shù)據(jù),將數(shù)據(jù)和指令傳輸給控制邏輯,并將從控制邏輯獲得的控制信號返回給用戶程序;2.2指令狀態(tài)緩存在控制邏輯將流指令發(fā)送到流處理核時(shí)保存流指令的類型和各項(xiàng)參數(shù),并從控制邏輯接收并保存當(dāng)前流指令的執(zhí)行狀態(tài)信息,根據(jù)這些狀態(tài)信息更新自身內(nèi)部緩存的流指令的狀態(tài)信息;2.3指令數(shù)組緩存是緩存一個(gè)用戶程序中所有低級流操作指令的部件,與控制邏輯連接,供控制邏輯査詢低級流操作指令,低級流操作指令是由流編譯根據(jù)流級程序中的高級流操作自動(dòng)生成的,可以直接發(fā)往流處理核,并被流處理核執(zhí)行的指令;2.4控制邏輯是控制異構(gòu)核中間件其它部件完成各種功能的部件,它與用戶調(diào)用接口、指令數(shù)組緩存、指令狀態(tài)緩存、底層接口均相連;流程序調(diào)用異構(gòu)核中間件時(shí),控制邏輯從用戶調(diào)用接口接收數(shù)據(jù)和指令,從指令狀態(tài)緩存讀取當(dāng)前的流指令狀態(tài)信息,同時(shí)從指令數(shù)組緩存接收低級流操作;根據(jù)接收到的數(shù)據(jù)和指令,控制邏輯執(zhí)行下面幾種不同的操作在標(biāo)量核向流處理器傳輸流指令時(shí),控制邏輯從用戶調(diào)用接口獲得低級流操作,通過底層接口從流處理核獲取流指令當(dāng)前執(zhí)行狀態(tài)信息,決定是通過底層接口傳送低級流操作,還是等待再傳送;在流處理核向標(biāo)量核傳輸流指令執(zhí)行狀態(tài)時(shí),控制邏輯通過底層接口從流處理核中讀出流處理核當(dāng)前狀態(tài),并更新指令狀態(tài)緩存中的信息;在標(biāo)量核與流處理核之間傳輸標(biāo)量數(shù)據(jù)時(shí),流級程序通過編譯器將讀標(biāo)量數(shù)據(jù)的低級流操作傳送給用戶調(diào)用接口,控制邏輯通過底層接口將低級流操作傳送到流處理核,流處理核執(zhí)行完畢后,控制邏輯再從底層接口將數(shù)據(jù)從流處理核讀出,并通過用戶調(diào)用接口返回給編譯器,供流級程序使用;在標(biāo)量核與流處理核之間進(jìn)行流數(shù)據(jù)傳輸時(shí),控制邏輯通過底層接口向流處理核發(fā)送所有數(shù)據(jù)傳輸所需的低級流操作,流處理核執(zhí)行這些低級流操作使得流數(shù)據(jù)在標(biāo)量核和流處理核之間傳輸;(2.5)底層接口既與控制邏輯相連接,又與流處理核相連,它從控制邏輯獲取指令或數(shù)據(jù),將從控制邏輯獲得的指令或數(shù)據(jù)傳送給流處理核,并向控制邏輯返回流處理核的狀態(tài)信息。3、如權(quán)利要求1所述的基于Avalon總線的流處理器IP核,其特征在于所述流級執(zhí)行單元由流級執(zhí)行單元接口、狀態(tài)寄存器、指令存儲(chǔ)器RAM、標(biāo)量寄存器文件、指令執(zhí)行單元、指令狀態(tài)信息單元、狀態(tài)信息更新邏輯和多路選擇器組成-3.1流級執(zhí)行單元接口通過Avalon總線與標(biāo)量核的異構(gòu)核中間件相連,通過邏輯發(fā)射槽信號線、第一流指令信號線、寫使能信號線與指令存儲(chǔ)器RAM相連,通過讀地址信號線和第一數(shù)據(jù)讀信號線與標(biāo)量寄存器文件相連,通過流級執(zhí)行單元狀態(tài)信號線與狀態(tài)寄存器相連;流級執(zhí)行單元接口通過Avalon總線中的數(shù)據(jù)寫信號線接收從標(biāo)量核發(fā)來的流指令,將流指令通過第一流指令信號線轉(zhuǎn)發(fā)到指令存儲(chǔ)器RAM,并將寫向指令存儲(chǔ)器RAM的地址通過邏輯發(fā)射槽信號線發(fā)送給指令存儲(chǔ)器RAM;流級執(zhí)行單元接口將來自標(biāo)量核的地址信號轉(zhuǎn)發(fā)給標(biāo)量寄存器文件,接收從標(biāo)量寄存器文件返回的存儲(chǔ)在該地址的數(shù)據(jù),返回給標(biāo)量核;同時(shí),流級執(zhí)行單元接口從狀態(tài)寄存器接收流級執(zhí)行單元狀態(tài)信息,將流級執(zhí)行單元狀態(tài)信息返回給標(biāo)量核;3.2指令存儲(chǔ)器RAM與流級執(zhí)行單元接口通過邏輯發(fā)射槽信號線、第一流指令信號線、寫使能信號線相連,與多路選擇器通過地址信號線相連,通過第二流指令信號線與指令執(zhí)行單元相連;RAM通過邏輯發(fā)射槽信號線從流級執(zhí)行單元接口獲取指令在RAM中的地址,通過第一流指令信號線從流級執(zhí)行單元接口獲取流指令,在寫使能信號線使能的情況下寫入流指令;并從多路選擇器獲取讀取RAM中指令的地址,通過第二流指令信號線將讀取的流指令發(fā)送給指令執(zhí)行單元;3.3指令狀態(tài)信息單元通過狀態(tài)信號線和置位信號線與狀態(tài)信息更新邏輯相連,通過選擇信號線與多路選擇器相連;指令狀態(tài)信息單元為一個(gè)寄存器組,寄存器組的每一項(xiàng)對應(yīng)于一條流指令,存儲(chǔ)該流指令執(zhí)行時(shí)所需的信息,包括就緒位、資源位、邏輯發(fā)射槽號三個(gè)字段,就緒位表示該項(xiàng)對應(yīng)的流指令是否可以執(zhí)行,資源位表示該項(xiàng)對應(yīng)的流指令執(zhí)行時(shí)所需的資源,邏輯發(fā)射槽號表示該項(xiàng)對應(yīng)的流指令的邏輯編號;指令狀態(tài)信息單元的每一項(xiàng)寄存器通過置位信號線從狀態(tài)信息更新邏輯獲取置位信號,若置位信號為高,則置該項(xiàng)寄存器的就緒位為就緒狀態(tài),表示該項(xiàng)對應(yīng)的流指令可以執(zhí)行,同時(shí),指令狀態(tài)信息單元將邏輯發(fā)射槽號和就緒位通過選擇信號線發(fā)送給多路選擇器;3.4多路選擇器通過選擇信號線與指令狀態(tài)信息單元相連,通過地址信號線與指令存儲(chǔ)器RAM相連;多路選擇器通過選擇信號線獲取指令狀態(tài)信息單元每一項(xiàng)的就緒信息,若某一項(xiàng)處于就緒狀態(tài),則多路選擇器選擇該項(xiàng)指令執(zhí)行,通過選擇信號線獲取該項(xiàng)的邏輯發(fā)射槽號作為讀取RAM的地址,通過地址信號線傳給RAM,若指令狀態(tài)信息單元有多項(xiàng)寄存器的就緒信息為就緒狀態(tài),則選擇編號最小或編號最大的寄存器中的指令執(zhí)行,將其對應(yīng)的邏輯發(fā)射槽號作為地址發(fā)送給RAM;3.5狀態(tài)信息更新邏輯一方面與網(wǎng)絡(luò)接口、微控制器、流寄存器文件SRF、存儲(chǔ)控制器通過忙閑信號線相連,接收來自這些模塊的忙閑信號,另一方面通過忙閑狀態(tài)信號線與指令執(zhí)行單元相連,通過狀態(tài)信號線和置位信號線與指令狀態(tài)信息單元相連,同時(shí)通過執(zhí)行狀態(tài)信號線和狀態(tài)設(shè)置信號線與狀態(tài)寄存器相連;狀態(tài)信息更新邏輯通過狀態(tài)信號線獲取指令狀態(tài)信息單元的每一項(xiàng)的資源信息,從而獲知與該項(xiàng)對應(yīng)的指令執(zhí)行所需的資源,根據(jù)忙閑信號線獲取流處理核中其它模塊即網(wǎng)絡(luò)接口、微控制器、流寄存器文件SRF、存儲(chǔ)控制器的忙閑信息,若該項(xiàng)對應(yīng)的指令所需的資源為空閑,則通過置位信號線設(shè)置該項(xiàng)寄存器的就緒位為就緒狀態(tài),反之就緒位不變;3.6標(biāo)量寄存器文件通過數(shù)據(jù)寫信號線和數(shù)據(jù)讀信號線與指令執(zhí)行單元相連,通過讀地址信號線、第一數(shù)據(jù)讀信號線與流級執(zhí)行單元接口相連;標(biāo)量寄存器文件為一個(gè)寄存器組,用來存儲(chǔ)流處理核中的標(biāo)量數(shù)據(jù),它通過數(shù)據(jù)寫信號線接收來自指令執(zhí)行單元的數(shù)據(jù),通過數(shù)據(jù)讀信號線將數(shù)據(jù)返回給指令執(zhí)行單元,通過第一數(shù)據(jù)讀信號線將讀地址對應(yīng)的數(shù)據(jù)返回給流級執(zhí)行單元接口;3.7指令執(zhí)行單元通過第二流指令信號線與指令存儲(chǔ)器RAM連接,通過控制信號線與網(wǎng)絡(luò)接口、微控制器、流寄存器文件SRF、存儲(chǔ)控制器相連,通過數(shù)據(jù)寫信號線和數(shù)據(jù)讀信號線與標(biāo)量寄存器文件相連,通過忙閑狀態(tài)信號線與狀態(tài)信息更新邏輯相連;指令執(zhí)行單元接收來自RAM的流指令,對流指令進(jìn)行譯碼,產(chǎn)生控制信號并發(fā)送給網(wǎng)絡(luò)接口、微控制器、流寄存器文件SRF、存儲(chǔ)控制器,啟動(dòng)網(wǎng)絡(luò)接口、微控制器、流寄存器文件SRF、存儲(chǔ)控制器工作;同時(shí),指令執(zhí)行單元通過數(shù)據(jù)寫信號線向標(biāo)量寄存器文件寫數(shù)據(jù),通過數(shù)據(jù)讀信號線從標(biāo)量寄存器文件中讀取數(shù)據(jù),并將忙閑信息通過忙閑狀態(tài)信號線傳給狀態(tài)信息更新邏輯;3.8狀態(tài)寄存器是保存流級執(zhí)行單元狀態(tài)的寄存器,通過執(zhí)行狀態(tài)信號線和狀態(tài)設(shè)置信號線與狀態(tài)信息更新邏輯相連,通過流級執(zhí)行單元狀態(tài)信號線與流級執(zhí)行單元接口相連;若狀態(tài)設(shè)置信號線有效,則置狀態(tài)寄存器為有效狀態(tài),狀態(tài)寄存器的內(nèi)容一方面通過執(zhí)行狀態(tài)信號線傳給狀態(tài)信息更新邏輯,一方面通過流級執(zhí)行單元狀態(tài)信號線傳給流級執(zhí)行單元接口。4.如權(quán)利要求1所述的基于Avalon總線的流處理器IP核,其特征在于所述流指令集包括四類指令寄存器讀寫指令,流傳輸指令,執(zhí)行核心程序指令,其他指令,每條指令是多位二進(jìn)制數(shù),在指令中設(shè)置多個(gè)域,每個(gè)域代表指令的一個(gè)操作或者一個(gè)操作數(shù),每條指令的第一個(gè)域?yàn)橹噶钭R(shí)別碼域4.1寄存器讀寫指令是用于對流體系結(jié)構(gòu)中的寄存器進(jìn)行讀寫操作的指令,該類指令包含2條指令(1).MOVEDst一type,Dst_num,Src—type,Src一num,synch指令功能將源寄存器Src_type[Src—num]的內(nèi)容寫至目的寄存器Dst—type[Dst_num],其中一type指明寄存器類型,一num指明寄存器的編號,synch表示同步標(biāo)志位,當(dāng)該指令需要與其它模塊同步時(shí),該標(biāo)志位置上;(2).Write_ImmDst—type,Dst_num,Imm,synch指令功能將立即數(shù)Imm寫至目的寄存器Dst—type[Dst—num],其中—type指明寄存器類型,—num指明寄存器的編號,synch表示同步標(biāo)志位,當(dāng)該指令需要與其它模塊同步時(shí),該標(biāo)志為置上;4.2流傳輸指令用于片外DRAM存儲(chǔ)器、片上的SRF、微控制器之間的數(shù)據(jù)傳輸,包含3條指令(3).MemopData一sdr—num,dir,Data_mar指令功能啟動(dòng)片外DRAM與流寄存器文件之間的流傳輸,流在片外DRAM存儲(chǔ)器中的地址和訪存方式由寄存器Data—mar給出,流在SRF中的地址和長度由寄存器Data—sdr_num給出,方向由dir給出;(4).Load_ucodePgm—sdr一num,mpc指令功能將核心程序的微碼以流數(shù)據(jù)的方式從SRF加載到微控制器,微碼在SRF中的位置和長度由寄存器PgmjdiLnum給出,微碼加載到微控制器中起始地址由mpc給出;(5).Netopnet—sdr一num,dir,Tag,NRR指令功能啟動(dòng)本地流寄存器文件與遠(yuǎn)程流寄存器文件之間的流網(wǎng)絡(luò)傳輸,流數(shù)據(jù)在本地流寄存器文件中的位置和長度由寄存器net_Sdr_mim給出,dir表示數(shù)據(jù)的傳輸方向,用來區(qū)分?jǐn)?shù)據(jù)的發(fā)送和接收,Tag用來區(qū)分前往同一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)的不同報(bào)文,每個(gè)報(bào)文具有不同的Tag值,網(wǎng)絡(luò)傳輸過程所需的路由信息由寄存器NRR給出;4.3執(zhí)行核心程序指令(6).Clustopsdr—num,dir,mode,restartable,mpc指令功能通知微控制器執(zhí)行核心程序,核心在微碼存儲(chǔ)器的起始地址由MPC指出,核心輸入流和輸出流在SRF中位置和長度由寄存器sdr—num給出,傳輸方向由dir給出,傳輸模式由mode給出,restartable指明輸入和輸出是否需要再次啟動(dòng);(7).Clust—restartsdr_num,dir,mode,restartable指令功能重啟核心的輸入或輸出流,長流雙緩沖時(shí)使用,流在SRF中的位置和長度由sdr_num給出,傳輸方向由dri給出,傳輸模式由mode給出,restartable指明輸入和輸出是否需要再次啟動(dòng);4.4其它指令(8).END指令功能一個(gè)完整的流程序結(jié)束前最后執(zhí)行該指令,通知流處理器程序已經(jīng)執(zhí)行完畢;(9).Barrier指令功能由于流程序存有標(biāo)量操作例如循環(huán)、分支,為了確保流指令正確發(fā)射,插入Barrier指令,該指令起到阻塞的功能,即只有按照程序順序?qū)⑾扔贐arrier指令的所有流指令都執(zhí)行完畢,Barrier指令以及Barrier指令以后的指令才有可能發(fā)射;(10).Synch—uc指令功能當(dāng)微控制器在執(zhí)行核心程序的過程中到達(dá)相應(yīng)的同步點(diǎn),執(zhí)行該指令,實(shí)現(xiàn)與核心程序執(zhí)行的同步,該指令會(huì)向微控制器發(fā)送一個(gè)同步信號,使得微控制器繼續(xù)執(zhí)行核心程序。.如權(quán)利要求3所述的基于Avalon總線的流處理器IP核,其特征在于所述流級執(zhí)行單元接口設(shè)計(jì)有指令結(jié)束信號線來標(biāo)志一條流指令的傳輸是否結(jié)束,標(biāo)量核往指令結(jié)束信號線發(fā)送0就表示該流指令未傳輸完,發(fā)送1則表示該條流指令傳輸完成c全文摘要本發(fā)明公開了一種基于Avalon總線的流處理器IP核。技術(shù)方案是IP核由標(biāo)量核、流處理核組成,它們通過Avalon總線互連,標(biāo)量核中設(shè)計(jì)有一個(gè)動(dòng)態(tài)調(diào)度器——異構(gòu)核中間件,它既與標(biāo)量核中的編譯器連接,又與流處理核連接,完成標(biāo)量核和流處理核之間的鏈接,向流級程序提供調(diào)用接口;流處理核中設(shè)計(jì)有流級程序的執(zhí)行部件——流級執(zhí)行單元,它既與標(biāo)量核連接,又與流處理核的微控制器、存儲(chǔ)控制器、流寄存器文件、網(wǎng)絡(luò)接口連接,它緩存流指令、選擇流指令、執(zhí)行流指令、傳遞標(biāo)量數(shù)據(jù)、向標(biāo)量核提供流級執(zhí)行單元狀態(tài);流指令來自適應(yīng)這種體系結(jié)構(gòu)的流指令集。本發(fā)明能適應(yīng)媒體應(yīng)用和科學(xué)計(jì)算等領(lǐng)域的流應(yīng)用對較高處理速度的要求,具有較好的通用性。文檔編號G06F15/76GK101281513SQ200810031299公開日2008年10月8日申請日期2008年5月15日優(yōu)先權(quán)日2008年5月15日發(fā)明者巨任,楠伍,義何,偉吳,張春元,梅文,李京旭,楊乾明,俊柴,管茂林,荀長慶申請人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)