專利名稱:一種可參量化專用指令集處理器設(shè)計平臺的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)字信號處理技術(shù)領(lǐng)域,更進一步涉及到一種可參量化專用指令集處理器設(shè)計平臺。該設(shè)計平臺對于不同的應(yīng)用領(lǐng)域,根據(jù)用戶選擇的相關(guān)參數(shù),在專用指令集處理器核的結(jié)構(gòu)框架內(nèi)生成最優(yōu)的、最節(jié)省資源的專用指令集處理器核。
背景技術(shù):
專用指令集處理器技術(shù)是近幾年發(fā)展較快的一項技術(shù),它的提出是一項具有重大意義的創(chuàng)新,特別是在嵌入式微處理器領(lǐng)域當中,專用指令集處理器的應(yīng)用已經(jīng)成為一種設(shè)計趨勢。專用指令集處理器的核心思想是針對某種特定的應(yīng)用領(lǐng)域,開發(fā)出與之相對應(yīng)的專用指令集和體系結(jié)構(gòu)且可以高效運行目標算法的專用處理器。專用指令集處理器的設(shè)計一般包括兩個方面,硬件結(jié)構(gòu)設(shè)計和軟件設(shè)計即專用匯編器與編譯器的設(shè)計。西安電子科技大學申請的專利“適于數(shù)字信號處理應(yīng)用的專用指令集微處理系統(tǒng)”(專利申請?zhí)?00910021540. 7,公開號CN101504599A)公開了一種適于數(shù)字信號處理應(yīng)用的專用指令集微處理系統(tǒng)及設(shè)計方法,根據(jù)典型數(shù)字信號處理應(yīng)用,采用16位精簡指令集微處理器結(jié)構(gòu)進行設(shè)計,整個系統(tǒng)包括算術(shù)運算單元、通用寄存器單元、數(shù)據(jù)地址產(chǎn)生單元、程序定序單元、數(shù)據(jù)存儲單元、數(shù)據(jù)交換寄存器單元。該專利申請技術(shù)的不足之處是專用指令集處理器的硬件結(jié)構(gòu)固定,對于不同的應(yīng)用領(lǐng)域,該體系結(jié)構(gòu)適應(yīng)性較差且資源利用率較低,需要人工裁剪才能滿足應(yīng)用要求,延長了專用指令集處理器的設(shè)計周期。另外,裁剪后的電路沒有專門的匯編器支持,應(yīng)用此專用指令集處理器需要編寫機器代碼,增加了編程人員的工作量,降低了工作效率。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)的不足,提出一種可參量化專用指令集處理器設(shè)計平臺。本發(fā)明實現(xiàn)的思路是,提供一種可參量化專用指令集處理器設(shè)計平臺,對于不同的應(yīng)用領(lǐng)域,根據(jù)用戶選擇的相關(guān)參數(shù),在專用指令集處理器核的結(jié)構(gòu)框架內(nèi)生成最優(yōu)的、 最節(jié)省資源的專用指令集處理器核。本發(fā)明包括通用寄存器個數(shù)選擇模塊、總線位寬選擇模塊、數(shù)據(jù)存儲器類型選擇模塊、程序控制指令選擇模塊、算術(shù)邏輯運算指令選擇模塊、目標處理器生成模塊、可重定向匯編器;其中通用寄存器個數(shù)選擇模塊用于配置目標處理器的通用寄存器文件,并向目標處理器生成模塊傳遞參數(shù)值;總線位寬選擇模塊用于配置目標處理器數(shù)據(jù)總線位寬、數(shù)據(jù)/程序存儲器地址總線位寬,并向目標處理器生成模塊傳遞參數(shù)值;數(shù)據(jù)存儲器類型選擇模塊用于配置目標處理器數(shù)據(jù)存儲器的類型,并向目標處理器生成模塊傳遞參數(shù)值;
程序控制指令選擇模塊用于裁剪程序控制指令,配置目標處理器硬件電路,并向目標處理器生成模塊傳遞參數(shù)值;算術(shù)邏輯運算指令選擇模塊用于裁剪算術(shù)邏輯運算指令,配置目標處理器的功能單元電路,并向目標處理器生成模塊傳遞參數(shù)值;目標處理器生成模塊用于接收用戶選擇的各項參數(shù)值,生成并保存目標專用指令集處理器的硬件電路,以硬件描述語言Verilog HDL文件的形式導出;可重定向匯編器用于用戶編寫應(yīng)用程序,并接收用戶選定的參數(shù)值,將應(yīng)用程序匯編成目標處理器的機器代碼,保存并導出生成的機器代碼文件、程序存儲器的硬件描述語言Verilog HDL文件、資源使用率文件。本發(fā)明與現(xiàn)有技術(shù)相比具有以下優(yōu)點第一、由于本發(fā)明在設(shè)計專用指令集處理器硬件結(jié)構(gòu)時,采用了參數(shù)可選擇、指令可裁剪的參量化設(shè)計,克服了現(xiàn)有技術(shù)中硬件結(jié)構(gòu)固定的不足,本發(fā)明可以應(yīng)用于不同的技術(shù)領(lǐng)域,在專用指令集處理器核的結(jié)構(gòu)框架內(nèi)生成最優(yōu)、最節(jié)省資源的專用指令集處理器核,提高了專用指令集處理器的處理速度與電路資源的利用效率。第二、由于本發(fā)明在設(shè)計專用指令集處理器時,提供了一種可參量化設(shè)計平臺,克服了現(xiàn)有技術(shù)中對于不同應(yīng)用領(lǐng)域需要重新設(shè)計專用指令集處理器的不足,本發(fā)明用戶只需要在設(shè)計平臺上選擇相應(yīng)的參數(shù)即可生成所需的最優(yōu)目標專用指令集處理器,縮短了專用指令集處理器的設(shè)計周期。第三、由于本發(fā)明在設(shè)計專用指令集處理器時,提供了可重定向匯編器,克服了現(xiàn)有技術(shù)中無法將匯編器定位到不同目標處理器的不足,本發(fā)明對于不同應(yīng)用領(lǐng)域編程人員用匯編語言編寫應(yīng)用程序代碼,根據(jù)用戶選擇的參數(shù)即可將匯編器定位到目標處理器上, 將匯編源程序翻譯為目標處理器的機器代碼,降低了編程人員的工作量,從而提高了工作效率。
圖1為本發(fā)明的結(jié)構(gòu)圖;圖2為利用本發(fā)明設(shè)計的專用指令集處理器電路結(jié)構(gòu)圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明做進一步的詳細描述。參照圖1,本發(fā)明包括通用寄存器個數(shù)選擇模塊、總線位寬選擇模塊、數(shù)據(jù)存儲器類型選擇模塊、程序控制指令選擇模塊、算術(shù)邏輯運算指令選擇模塊、目標處理器生成模塊、可重定向匯編器。通用寄存器個數(shù)選擇模塊用于配置目標處理器的通用寄存器文件,并向目標處理器生成模塊傳遞參數(shù)值。通用寄存器個數(shù)有8個、16個、32個三種選擇,若用于小規(guī)模數(shù)據(jù)處理應(yīng)用,數(shù)據(jù)存儲器與運算功能單元之間數(shù)據(jù)交換量小,可選擇8或16個寄存器;若用于大規(guī)模數(shù)據(jù)處理應(yīng)用,數(shù)據(jù)存儲器與運算功能單元之間數(shù)據(jù)交換量大,可選擇32個寄存
ο總線位寬選擇模塊用于配置目標處理器數(shù)據(jù)總線位寬、數(shù)據(jù)/程序存儲器地址總
4線位寬,并向目標處理器生成模塊傳遞參數(shù)值。數(shù)據(jù)總線位寬選擇范圍為8位、16位、18位、 24位、32位,若應(yīng)用于大規(guī)模并行處理的典型應(yīng)用,數(shù)據(jù)總線位寬可選擇8位、16位、18位; 若應(yīng)用于復(fù)雜應(yīng)用,數(shù)據(jù)總線位寬可選擇M位、32位。數(shù)據(jù)/程序存儲器地址總線位寬選擇范圍為9位、10位、11位、12位,用戶根據(jù)具體處理數(shù)據(jù)量的大小和程序的復(fù)雜程度,選擇響應(yīng)的數(shù)據(jù)/程序地址總線位寬。數(shù)據(jù)存儲器類型選擇模塊用于配置目標處理器數(shù)據(jù)存儲器的類型,并向目標處理器生成模塊傳遞參數(shù)值。數(shù)據(jù)存儲器類型有單頁存儲、雙頁存儲兩種選擇類型。數(shù)據(jù)的輸入/輸出若采用乒乓操作,數(shù)據(jù)存儲器選擇雙頁存儲類型,否則,數(shù)據(jù)存儲器選擇單頁存儲類型。程序控制指令選擇模塊用于裁剪程序控制指令,配置目標處理器硬件電路,并向目標處理器生成模塊傳遞參數(shù)值??晒┻x擇的指令為跳轉(zhuǎn)指令,具體包括為“零”跳轉(zhuǎn)、為 “負”跳轉(zhuǎn)、有“進位”跳轉(zhuǎn)、有“溢出”跳轉(zhuǎn)、“大于”跳轉(zhuǎn)、“小于”跳轉(zhuǎn)、無條件跳轉(zhuǎn)。在具體應(yīng)用中,用戶在該模塊內(nèi)選擇所需的跳轉(zhuǎn)指令,不需要的跳轉(zhuǎn)指令可不選,在產(chǎn)生目標處理器電路時,沒有選擇的跳轉(zhuǎn)指令就沒有相應(yīng)的執(zhí)行電路,節(jié)省了電路資源。算術(shù)邏輯運算指令選擇模塊用于裁剪算術(shù)邏輯運算指令,配置目標處理器的功能單元電路,并向目標處理器生成模塊傳遞參數(shù)值??晒┻x擇的指令為算術(shù)運算指令、邏輯運算指令、移位指令、乘指令、乘后累加指令。算術(shù)運算指令包括加、帶進位加、減、帶借位減; 邏輯運算指令包括邏輯“非”、邏輯“與”、邏輯“或”、邏輯“異或”;移位指令包括左移、邏輯右移、算術(shù)右移、無移位。在具體應(yīng)用中,該模塊指令的裁剪方式同程序控制指令選擇模塊,用戶只需選擇所需的運算指令,在產(chǎn)生目標處理器電路時,沒有選擇的運算指令就沒有相應(yīng)的功能單元電路。目標處理器生成模塊用于接收用戶選擇的各項參數(shù)值,生成并保存目標專用指令集處理器的硬件電路,以硬件描述語言Verilog HDL文件的形式導出。用戶選擇的各項參數(shù)通過平臺內(nèi)部的消息響應(yīng)函數(shù),對參數(shù)進行賦值并保存,這些已賦值的參數(shù)通過接口函數(shù)控制文件字符流輸出的方式,產(chǎn)生并保存目標處理器電路,以硬件描述語言Verilog HDL 文件的形式導出。例如,用戶選擇數(shù)據(jù)總線的位寬為18位,平臺內(nèi)部的消息響應(yīng)函數(shù)響應(yīng)此操作, 將數(shù)據(jù)總線位寬databus變量置為18,通過接口函數(shù)中的條件語句if與文件字符流輸出語句在硬件描述語言Verilog HDL源文件中參數(shù)parameter型變量定義部分產(chǎn)生對應(yīng)的語句。又如,用戶在選擇指令時,每一條可裁剪的指令都有一個開關(guān)變量來控制執(zhí)行單元電路的產(chǎn)生,若一條指令的開關(guān)變量為“真”時,通過接口函數(shù)中的條件語句if與文件字符流輸出語句產(chǎn)生該指令相應(yīng)執(zhí)行單元電路的硬件描述語言Verilog HDL源代碼,若開關(guān)變量為 “假”時,則不產(chǎn)生該指令執(zhí)行單元電路的硬件描述語言Verilog HDL源代碼。參照圖2,利用本發(fā)明設(shè)計的目標處理器電路結(jié)構(gòu)包括數(shù)據(jù)地址產(chǎn)生器、數(shù)據(jù)存儲器、通用寄存器單元、算術(shù)運算單元、程序定序器、程序存儲器和數(shù)據(jù)交換接口單元。程序存儲器存放應(yīng)用程序的指令代碼。程序定序器解釋程序指令,并向通用寄存器單元、數(shù)據(jù)地址產(chǎn)生器、算術(shù)運算單元和數(shù)據(jù)交換接口單元發(fā)送指令代碼。數(shù)據(jù)地址產(chǎn)生器根據(jù)程序定序器發(fā)送的指令代碼對通用/專用寄存器進行寄存器尋址、對數(shù)據(jù)存儲器進行變址尋址,并將尋址結(jié)果發(fā)送到數(shù)據(jù)存儲器。數(shù)據(jù)存儲器一方面接收外部發(fā)送的待處理數(shù)據(jù)進行存儲,另一方面根據(jù)來自數(shù)據(jù)地址產(chǎn)生器的尋址結(jié)果將存儲在對應(yīng)地址中的待處理數(shù)據(jù)發(fā)送給通用寄存器單元,同時接收來自通用寄存器單元的處理后數(shù)據(jù)進行存儲。通用寄存器單元根據(jù)程序定序器發(fā)送的指令代碼,一方面接收來自數(shù)據(jù)存儲器的待處理數(shù)據(jù)并轉(zhuǎn)發(fā)給算術(shù)運算單元,另一方面接收經(jīng)過算術(shù)運算單元處理后的數(shù)據(jù)并轉(zhuǎn)發(fā)給數(shù)據(jù)存儲器、數(shù)據(jù)交換接口單元,同時還要接收來自數(shù)據(jù)交換接口單元的數(shù)據(jù)并轉(zhuǎn)發(fā)給算術(shù)運算單元。數(shù)據(jù)交換接口單元根據(jù)程序定序器發(fā)送的指令代碼將來自通用寄存器單元的數(shù)據(jù)進行存儲并轉(zhuǎn)發(fā)給系統(tǒng)外部,同時又將外部數(shù)據(jù)轉(zhuǎn)發(fā)給通用寄存器單元。算術(shù)運算單元根據(jù)程序定序器發(fā)送的指令代碼對來自通用寄存器單元的操作數(shù)進行各種運算操作,同時又將運算結(jié)果存入通用寄存器單元。 可重定向匯編器用于用戶編寫應(yīng)用程序,并接收用戶選定的參數(shù)值,將應(yīng)用程序匯編成目標處理器的機器代碼,保存并導出生成的機器代碼文件、程序存儲器的硬件描述語言Verilog HDL文件、資源使用率文件。用戶在使用可重定向匯編器進行應(yīng)用程序開發(fā)時,可以新建一個匯編文件進行程序編寫,也可以打開已有的匯編源程序。在對程序進行匯編之前,同樣地先選擇目標處理器的各項參數(shù),將匯編器定位到目標處理器,才能生成正確的目標機器代碼文件、程序存儲器的硬件描述語言Verilog HDL文件、資源使用率文件。其中,資源使用率文件是用戶所寫應(yīng)用程序中各條指令的使用頻率。
權(quán)利要求
1.一種可參量化專用指令集處理器設(shè)計平臺,其特征在于,包括通用寄存器個數(shù)選擇模塊、總線位寬選擇模塊、數(shù)據(jù)存儲器類型選擇模塊、程序控制指令選擇模塊、算術(shù)邏輯運算指令選擇模塊、目標處理器生成模塊、可重定向匯編器;其中所述的通用寄存器個數(shù)選擇模塊用于配置目標處理器的通用寄存器文件,并向目標處理器生成模塊傳遞參數(shù)值;所述的總線位寬選擇模塊用于配置目標處理器數(shù)據(jù)總線位寬、數(shù)據(jù)/程序存儲器地址總線位寬,并向目標處理器生成模塊傳遞參數(shù)值;所述的數(shù)據(jù)存儲器類型選擇模塊用于配置目標處理器數(shù)據(jù)存儲器的類型,并向目標處理器生成模塊傳遞參數(shù)值;所述的程序控制指令選擇模塊用于裁剪程序控制指令,配置目標處理器硬件電路,并向目標處理器生成模塊傳遞參數(shù)值;所述的算術(shù)邏輯運算指令選擇模塊用于裁剪算術(shù)邏輯運算指令,配置目標處理器的功能單元電路,并向目標處理器生成模塊傳遞參數(shù)值;所述的目標處理器生成模塊用于接收用戶選擇的各項參數(shù)值,生成并保存目標專用指令集處理器的硬件電路,以硬件描述語言Verilog HDL文件的形式導出;所述的可重定向匯編器用于用戶編寫應(yīng)用程序,并接收用戶選定的參數(shù)值,將應(yīng)用程序匯編成目標處理器的機器代碼,保存并導出生成的機器代碼文件、程序存儲器的硬件描述語言Verilog HDL文件、資源使用率文件。
2.根據(jù)權(quán)利要求1所述的一種可參量化專用指令集處理器設(shè)計平臺,其特征在于,所述的通用寄存器個數(shù)選擇模塊提供8個、16個、32個三種選擇。
3.根據(jù)權(quán)利要求1所述的一種可參量化專用指令集處理器設(shè)計平臺,其特征在于,所述的總線位寬選擇模塊在選擇總線位寬時,數(shù)據(jù)位寬選擇范圍為8位、16位、18位、M位、32 位;數(shù)據(jù)/程序存儲器地址總線位寬選擇范圍為9位、10位、11位、12位。
4.根據(jù)權(quán)利要求1所述的一種可參量化專用指令集處理器設(shè)計平臺,其特征在于,所述的數(shù)據(jù)存儲器類型選擇模塊提供單頁存儲、雙頁存儲兩種選擇類型。
5.根據(jù)權(quán)利要求1所述的一種可參量化專用指令集處理器設(shè)計平臺,其特征在于,所述的程序控制指令選擇模塊在選擇指令時可供選擇的指令為跳轉(zhuǎn)指令。
6.根據(jù)權(quán)利要求1所述的一種可參量化專用指令集處理器設(shè)計平臺,其特征在于,所述的算術(shù)邏輯運算指令選擇模塊在選擇指令時可供選擇的指令為算術(shù)運算指令、邏輯運算指令、移位指令、乘指令、乘后累加指令。
7.根據(jù)權(quán)利要求1所述的一種可參量化專用指令集處理器設(shè)計平臺,其特征在于,所述的資源使用率文件為用戶所寫應(yīng)用程序中各條指令的使用頻率。
全文摘要
本發(fā)明公開了一種可參量化專用指令集處理器設(shè)計平臺,包括通用寄存器個數(shù)選擇模塊、總線位寬選擇模塊、數(shù)據(jù)存儲器類型選擇模塊、程序控制指令選擇模塊、算術(shù)邏輯運算指令選擇模塊、目標處理器生成模塊、可重定向匯編器。本發(fā)明對于不同的應(yīng)用領(lǐng)域,根據(jù)用戶選擇的相關(guān)參數(shù),在專用指令集處理器核的結(jié)構(gòu)框架內(nèi)生成最優(yōu)的、最節(jié)省資源的專用指令集處理器核,縮短了專用指令集處理器的設(shè)計周期。可重定向匯編器根據(jù)用戶選擇的參數(shù)即可將匯編器定位到目標處理器上,將匯編源程序翻譯為目標處理器的機器代碼,降低了編程人員的工作量,從而提高了工作效率。
文檔編號G06F9/30GK102446086SQ201110274588
公開日2012年5月9日 申請日期2011年9月15日 優(yōu)先權(quán)日2011年9月15日
發(fā)明者宋云朋, 封勇福, 張犁, 李嬌嬌, 李甫, 石光明 申請人:西安電子科技大學