国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于流水線結(jié)構(gòu)的專(zhuān)用指令集處理器的制作方法

      文檔序號(hào):6423552閱讀:236來(lái)源:國(guó)知局
      專(zhuān)利名稱(chēng):基于流水線結(jié)構(gòu)的專(zhuān)用指令集處理器的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于數(shù)字信號(hào)處理技術(shù)領(lǐng)域,更進(jìn)一步涉及到微處理器技術(shù)領(lǐng)域中的一種基于流水線結(jié)構(gòu)的專(zhuān)用指令集處理器,可應(yīng)用于數(shù)字信號(hào)處理系統(tǒng)中進(jìn)行高速并行實(shí)時(shí)處理。
      背景技術(shù)
      專(zhuān)用指令集處理器(ASIP)技術(shù)是微處理器領(lǐng)域的新興技術(shù),該處理器的指令集根據(jù)特定應(yīng)用領(lǐng)域設(shè)計(jì),由算術(shù)運(yùn)算指令、存儲(chǔ)器訪問(wèn)指令、程序控制指令、數(shù)據(jù)交換指令組成。整個(gè)ASIP系統(tǒng)包括算術(shù)邏輯運(yùn)算單元(ALU)、通用寄存器單元、數(shù)據(jù)地址產(chǎn)生單元、 程序定序單元、數(shù)據(jù)存儲(chǔ)單元和指令存儲(chǔ)器單元。西安電子科技大學(xué)申請(qǐng)的專(zhuān)利“適于數(shù)字信號(hào)處理應(yīng)用的專(zhuān)用指令集微處理系統(tǒng)”(專(zhuān)利申請(qǐng)?zhí)?00910021540. 7,公開(kāi)號(hào)CN101504599A)公開(kāi)了一種適于數(shù)字信號(hào)處理應(yīng)用的專(zhuān)用指令集微處理系統(tǒng),根據(jù)典型數(shù)字信號(hào)處理應(yīng)用,采用16位精簡(jiǎn)指令集微處理器結(jié)構(gòu)進(jìn)行設(shè)計(jì),整個(gè)系統(tǒng)包括算術(shù)運(yùn)算單元、通用寄存器單元、數(shù)據(jù)地址產(chǎn)生單元、程序定序單元、數(shù)據(jù)存儲(chǔ)單元、數(shù)據(jù)交換寄存器單元。該專(zhuān)利的不足之處是指令的執(zhí)行是串行執(zhí)行,即一條指令執(zhí)行完成之后才能執(zhí)行下一條指令,導(dǎo)致內(nèi)部電路資源得不到充分的利用, 這對(duì)于高速并行實(shí)時(shí)信號(hào)處理系統(tǒng)無(wú)法滿(mǎn)足高速率、實(shí)時(shí)性的要求。此外,該專(zhuān)利沒(méi)有直接內(nèi)存訪問(wèn)(DMA)控制,導(dǎo)致處理器與外部設(shè)備之間數(shù)據(jù)傳輸速率較慢。浙江大學(xué)吳俊2002年完成的碩士論文“基于RISC結(jié)構(gòu)的ASIP設(shè)計(jì)”(中國(guó)知網(wǎng)中國(guó)優(yōu)秀碩士學(xué)位論文全文數(shù)據(jù)庫(kù))中提出了一種基于精簡(jiǎn)指令集微處理器(RISC)結(jié)構(gòu)的專(zhuān)用指令集處理器。該處理器主要有RISC核、高速緩存(Cache)、輸入/輸出(I/O)三個(gè)模塊組成。指令長(zhǎng)度為32位長(zhǎng),指令周期劃分為五個(gè)階段取指令、從寄存器讀操作數(shù)與指令譯碼、執(zhí)行指令操作碼要求的操作、訪問(wèn)存儲(chǔ)器、將執(zhí)行結(jié)果寫(xiě)回到寄存器中。這五個(gè)階段即為五級(jí)流水線。指令在執(zhí)行過(guò)程中,若當(dāng)前指令運(yùn)行需要前一條或者幾條指令的結(jié)果時(shí)出現(xiàn)數(shù)據(jù)相關(guān)問(wèn)題。當(dāng)程序執(zhí)行到分支跳轉(zhuǎn)指令時(shí),條件分支所需的條件還未知的情況下與后續(xù)的指令執(zhí)行發(fā)生控制相關(guān)問(wèn)題。這種方法的不足之處是,當(dāng)發(fā)生控制相關(guān)問(wèn)題時(shí), 不管當(dāng)前指令是否發(fā)生跳轉(zhuǎn),后面一條指令必須執(zhí)行,導(dǎo)致處理器運(yùn)行速度下降。此外,該處理器指令長(zhǎng)度較長(zhǎng),不適于利用現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)進(jìn)行并行數(shù)字信號(hào)處理。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)的不足,提出一種基于流水線結(jié)構(gòu)的專(zhuān)用指令集處理器,流水線結(jié)構(gòu)采用旁路技術(shù)法和延遲推后法分別解決流水線的數(shù)據(jù)相關(guān)和控制相關(guān)問(wèn)題,在FPGA平臺(tái)中實(shí)現(xiàn)專(zhuān)用指令集處理器軟IP核。本發(fā)明實(shí)現(xiàn)發(fā)明目的的技術(shù)思路是將專(zhuān)用指令集處理器的指令執(zhí)行劃分為四個(gè)階段,即取指(IF)、譯碼(ID)、執(zhí)行(EXE)和回寫(xiě)(WB),該四個(gè)階段即為四級(jí)流水線。在譯碼單元用數(shù)據(jù)沖突控制器與數(shù)據(jù)選擇器解決流水線數(shù)據(jù)相關(guān)問(wèn)題,在取指單元采用停頓流水線技術(shù)解決程序跳轉(zhuǎn)引起的流水線控制相關(guān)問(wèn)題,并根據(jù)FPGA的固有特性合理劃分和設(shè)計(jì)硬件結(jié)構(gòu)。本發(fā)明包括取指單元、譯碼單元、執(zhí)行單元和回寫(xiě)單元,各單元之間通過(guò)寄存器相連。取指單元用于控制該單元中的程序計(jì)數(shù)器(PC)實(shí)現(xiàn)程序的順序執(zhí)行和跳轉(zhuǎn),并對(duì)譯碼單元中即將發(fā)生的數(shù)據(jù)沖突做出預(yù)測(cè),同時(shí)向譯碼單元輸出指令碼,向執(zhí)行單元和回寫(xiě)單元輸出控制信號(hào)。譯碼單元用于對(duì)取指單元輸出的指令碼進(jìn)行譯碼,按照專(zhuān)用指令集處理器的指令格式譯出操作數(shù)和控制信號(hào),并通過(guò)該單元的數(shù)據(jù)沖突控制器判斷當(dāng)前指令的操作數(shù)與相鄰或相隔指令的操作數(shù)是否發(fā)生沖突,并通過(guò)數(shù)據(jù)旁路通道向執(zhí)行單元輸出操作數(shù)。執(zhí)行單元用于在取指單元輸出的控制信號(hào)控制下,執(zhí)行各種算術(shù)運(yùn)算、邏輯運(yùn)算、 移位運(yùn)算、乘法運(yùn)算,計(jì)算訪存地址,完成該單元中存儲(chǔ)器的讀寫(xiě)操作,向回寫(xiě)單元輸出運(yùn)
      晳社里異5口米?;貙?xiě)單元用于在取指單元輸出的控制信號(hào)控制下完成對(duì)執(zhí)行單元輸出的結(jié)果數(shù)據(jù)的回寫(xiě),譯碼單元輸出的控制信號(hào)控制該單元中的數(shù)據(jù)選擇器,將乘法運(yùn)算結(jié)果、算術(shù)邏輯運(yùn)算結(jié)果、讀數(shù)據(jù)存儲(chǔ)器(RAM)結(jié)果寫(xiě)到譯碼單元中的目的寄存器堆。本發(fā)明與現(xiàn)有技術(shù)相比具有以下優(yōu)點(diǎn)第一,由于本發(fā)明在設(shè)計(jì)專(zhuān)用指令集處理器中采用了流水線技術(shù),克服了現(xiàn)有技術(shù)中未采用流水線結(jié)構(gòu)的專(zhuān)用指令集處理器運(yùn)行速度慢、內(nèi)部電路資源得不到充分利用的不足,提高了處理器的數(shù)據(jù)處理速度,內(nèi)部電路資源得到了充分利用。第二,由于本發(fā)明加入了簡(jiǎn)單實(shí)用的DMA控制器,克服了現(xiàn)有技術(shù)中未添加DMA控制器的專(zhuān)用指令集處理器與外部設(shè)備數(shù)據(jù)傳輸速度慢的不足,提高了外部設(shè)備與流水線結(jié)構(gòu)專(zhuān)用指令集處理器之間的數(shù)據(jù)傳輸效率。第三,由于本發(fā)明的硬件結(jié)構(gòu)考慮了 ASIP的指令結(jié)構(gòu),并根據(jù)FPGA的固有特性與設(shè)計(jì)相關(guān)經(jīng)驗(yàn)進(jìn)行合理劃分和設(shè)計(jì),克服了現(xiàn)有流水線結(jié)構(gòu)普通RISC核不適合用于FPGA 并行數(shù)字信號(hào)處理領(lǐng)域的不足,在完全滿(mǎn)足ASIP指令要求的前提下,減少了流水線各級(jí)間的組合邏輯延時(shí),縮短了指令執(zhí)行的關(guān)鍵路徑,最大限度的提高了流水線結(jié)構(gòu)專(zhuān)用指令集處理器的運(yùn)行速度與FPGA內(nèi)部電路資源的利用率,降低了電路規(guī)模,適合用于FPGA高速并行數(shù)字信號(hào)處理領(lǐng)域。


      圖1為本發(fā)明的整體結(jié)構(gòu)示意圖;圖2為本發(fā)明的取指單元結(jié)構(gòu)示意圖;圖3為本發(fā)明的譯碼單元結(jié)構(gòu)示意圖;圖4為本發(fā)明的執(zhí)行單元結(jié)構(gòu)示意圖;圖5為本發(fā)明的回寫(xiě)單元結(jié)構(gòu)示意圖。
      具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的詳細(xì)描述。
      參照?qǐng)D1,本發(fā)明基于流水線結(jié)構(gòu)專(zhuān)用指令集處理器的流水線結(jié)構(gòu)劃分為四級(jí)流水線,分為取指(IF)、譯碼(ID)、執(zhí)行(EXE)和回寫(xiě)(WB)四個(gè)階段,對(duì)應(yīng)硬件結(jié)構(gòu)為取指單元、譯碼單元、執(zhí)行單元和回寫(xiě)單元,各單元之間通過(guò)寄存器相連。本發(fā)明的流水線結(jié)構(gòu)是根據(jù)ASIP指令集的特點(diǎn)而設(shè)計(jì)的,由于ASIP指令集中沒(méi)有執(zhí)行之后再訪存的指令,因此可以將指令執(zhí)行中的訪存操作與執(zhí)行合并,從而減少流水線級(jí)數(shù),降低解決沖突的復(fù)雜度。參照?qǐng)D2,取指單元包括ROM、程序控制器、PC和兩個(gè)數(shù)據(jù)選擇器。該單元用于控制PC實(shí)現(xiàn)程序的順序執(zhí)行和跳轉(zhuǎn),并對(duì)即將發(fā)生的數(shù)據(jù)沖突做出預(yù)測(cè),同時(shí)向譯碼單元輸出指令碼,向執(zhí)行單元和回寫(xiě)單元輸出控制信號(hào)。ROM用于存儲(chǔ)根據(jù)ASIP指令集編制的程序指令字,其輸出與程序控制器、數(shù)據(jù)選擇器2相連。PC用于產(chǎn)生下一條指令在ROM中的存儲(chǔ)地址,其輸出與數(shù)據(jù)選擇器1相連。 數(shù)據(jù)選擇器1的輸出通過(guò)寄存器與R0M、PC相連,數(shù)據(jù)選擇器2的輸出通過(guò)寄存器與譯碼單元中指令譯碼器的輸入相連。程序控制器的輸出與兩個(gè)數(shù)據(jù)選擇器相連,其功能是對(duì)ROM中讀取的程序指令進(jìn)行預(yù)譯碼,控制程序順序執(zhí)行或跳轉(zhuǎn),并控制指令輸出為當(dāng)前指令或空指令(NOP)。當(dāng)程序發(fā)生跳轉(zhuǎn)時(shí),流水線出現(xiàn)停頓,產(chǎn)生了程序控制沖突。程序控制沖突分為條件跳轉(zhuǎn)和無(wú)條件跳轉(zhuǎn)沖突。對(duì)條件跳轉(zhuǎn)沖突,本發(fā)明采用停頓流水線技術(shù),即插入空指令,等待條件跳轉(zhuǎn)所需的條件由執(zhí)行單元產(chǎn)生后,再?zèng)Q定是否修改當(dāng)前PC的值實(shí)現(xiàn)程序跳轉(zhuǎn)。這種結(jié)構(gòu)是在微處理器設(shè)計(jì)中解決條件跳轉(zhuǎn)沖突最簡(jiǎn)單的方法,由于其電路結(jié)構(gòu)簡(jiǎn)單,在控制指令較少的 FPGA數(shù)字信號(hào)并行處理應(yīng)用領(lǐng)域是非常適用的。對(duì)無(wú)條件跳轉(zhuǎn)沖突,程序控制器發(fā)出控制信號(hào)輸出空指令,同時(shí)修改PC值為跳轉(zhuǎn)目的地址,實(shí)現(xiàn)無(wú)條件跳轉(zhuǎn)。程序控制器的另一功能是解決相鄰指令間先讀RAM后寫(xiě)寄存器的數(shù)據(jù)沖突類(lèi)型。 程序控制器將流水線暫停一個(gè)周期,并在相鄰指令間插入一個(gè)空周期,從而沖突類(lèi)型轉(zhuǎn)化為相隔指令間的數(shù)據(jù)沖突,再由后端譯碼單元的數(shù)據(jù)沖突控制器解決該沖突。參照?qǐng)D3,譯碼單元包括指令譯碼器、寄存器堆(通用寄存器、地址寄存器、1/0端口寄存器)、數(shù)據(jù)沖突控制器和兩個(gè)數(shù)據(jù)選擇器。兩個(gè)數(shù)據(jù)選擇器構(gòu)成數(shù)據(jù)旁路通道。該單元用于對(duì)取指單元輸出的指令碼進(jìn)行譯碼,按照專(zhuān)用指令集處理器的指令格式譯出操作數(shù)和控制信號(hào),并通過(guò)該單元的數(shù)據(jù)沖突控制器判斷當(dāng)前指令的操作數(shù)是否發(fā)生沖突,通過(guò)數(shù)據(jù)旁路通道為執(zhí)行單元提供操作數(shù)。指令譯碼器用于對(duì)當(dāng)前指令進(jìn)行譯碼,其輸出與寄存器堆、數(shù)據(jù)沖突控制器相連, 并通過(guò)寄存器與執(zhí)行單元中的數(shù)據(jù)選擇器1、數(shù)據(jù)選擇器3相連,與回寫(xiě)單元中的數(shù)據(jù)選擇器、寄存器堆相連。譯碼單元中數(shù)據(jù)選擇器1的輸出通過(guò)寄存器與執(zhí)行單元中的乘法器、移位運(yùn)算單元、邏輯運(yùn)算單元、加法器和數(shù)據(jù)選擇器2相連。譯碼單元中數(shù)據(jù)選擇器2的輸出通過(guò)寄存器與執(zhí)行單元中的乘法器、加法器相連。寄存器堆的輸出與兩個(gè)數(shù)據(jù)選擇器相連。其中,通用寄存器用于為移位運(yùn)算單元、 邏輯運(yùn)算單元、加法器提供操作數(shù)和暫存運(yùn)算結(jié)果、乘法結(jié)果,以及與存儲(chǔ)器交換數(shù)據(jù)。其中乘法器的輸出結(jié)果存放在固定的相鄰寄存器中,其中高地址寄存器存放乘法結(jié)果的高字節(jié)數(shù)據(jù),低地址寄存器存放乘法結(jié)果的低字節(jié)數(shù)據(jù)。地址寄存器包括訪問(wèn)存儲(chǔ)器所需的基址寄存器和變址寄存器。在執(zhí)行讀寫(xiě)存儲(chǔ)器指令時(shí),為讀寫(xiě)操作提供存儲(chǔ)器地址數(shù)據(jù),并為加法器提供相應(yīng)的基址和變址以完成下一次讀寫(xiě)存儲(chǔ)器的地址計(jì)算。端口寄存器用于存放處理器輸入/輸出端口的數(shù)據(jù),與外部設(shè)備進(jìn)行數(shù)據(jù)傳輸。數(shù)據(jù)沖突控制器的輸出與兩個(gè)數(shù)據(jù)選擇器相連,是解決各種指令間數(shù)據(jù)沖突的控制模塊,它通過(guò)比較前兩條指令的控制信號(hào)、目的操作數(shù)和當(dāng)前指令的控制信號(hào)、源操作數(shù),來(lái)判斷是否發(fā)生了數(shù)據(jù)相關(guān)沖突。若發(fā)生相鄰指令間的數(shù)據(jù)相關(guān)沖突,由數(shù)據(jù)沖突控制器選通數(shù)據(jù)旁路一;若發(fā)生相隔指令間的數(shù)據(jù)相關(guān)沖突,則由數(shù)據(jù)控制單元選通數(shù)據(jù)旁路
      --ο參照?qǐng)D4,執(zhí)行單元包括移位運(yùn)算單元、邏輯運(yùn)算單元、加法器、乘法器、RAM、DMA 控制器和三個(gè)數(shù)據(jù)選擇器。該單元用于執(zhí)行各種算術(shù)運(yùn)算、邏輯運(yùn)算、移位運(yùn)算、乘法運(yùn)算, 計(jì)算訪存地址,完成存儲(chǔ)器的讀寫(xiě)操作。移位運(yùn)算單元、邏輯運(yùn)算單元、加法器的輸出均與數(shù)據(jù)選擇器1相連;數(shù)據(jù)選擇器 1的輸出與譯碼單元中兩個(gè)數(shù)據(jù)選擇器的輸入相連;DMA控制器的輸出與數(shù)據(jù)選擇器2、數(shù)據(jù)選擇器3相連;數(shù)據(jù)選擇器2、數(shù)據(jù)選擇器3的輸出與RAM相連;乘法器的輸出通過(guò)寄存器與回寫(xiě)單元中乘法器的輸入相連;數(shù)據(jù)選擇器1、RAM的輸出通過(guò)寄存器與回寫(xiě)單元中的數(shù)據(jù)選擇器相連。邏輯運(yùn)算單元、移位運(yùn)算單元和加法器構(gòu)成ALU,分別用于完成邏輯運(yùn)算指令(邏輯與、邏輯或等邏輯指令)、移位運(yùn)算指令(邏輯左移、邏輯右移指令)和算術(shù)運(yùn)算指令(加法、減法指令)。ALU整體結(jié)構(gòu)采用并行結(jié)構(gòu)設(shè)計(jì),各運(yùn)算單元的結(jié)果由譯碼單元譯出的控制信號(hào)控制數(shù)據(jù)選擇器輸出。加法器采用超前進(jìn)位加法器,從而縮短了組合電路路徑的時(shí)延,提高了微處理器的運(yùn)行速度。乘法器用于完成指令的乘法操作,乘法器的運(yùn)行速度直接制約了整個(gè)微處理器的運(yùn)行速度。本發(fā)明中的乘法器采用適用于FPGA實(shí)現(xiàn)平臺(tái)的兩級(jí)乘法器結(jié)構(gòu),將其配置成執(zhí)行單元的乘法器和回寫(xiě)單元的乘法器,從而減少了乘法器前端輸入和后端輸出的組合邏輯延時(shí),提高了微處理器的運(yùn)行速度。RAM單元用于完成指令的讀寫(xiě)存儲(chǔ)器操作,訪存的地址數(shù)據(jù)和控制信號(hào)由譯碼單元產(chǎn)生,地址數(shù)據(jù)是當(dāng)前基址寄存器中的數(shù)據(jù)。同時(shí),由加法器完成對(duì)下一次讀寫(xiě)存儲(chǔ)器的基址修改,即基址加上變址,并寫(xiě)回基址寄存器。這種設(shè)計(jì)結(jié)構(gòu)縮短了流水線結(jié)構(gòu)的流水級(jí),減少了解決指令間數(shù)據(jù)沖突的硬件資源,其應(yīng)用也證明了這種結(jié)構(gòu)非常適用于FPGA的并行信號(hào)處理應(yīng)用領(lǐng)域。DMA控制器用于外部設(shè)備直接對(duì)存儲(chǔ)器的訪問(wèn),而不是通過(guò)端口寄存器,從而提高了外部設(shè)備與處理器的數(shù)據(jù)傳輸效率。首先,主設(shè)備對(duì)DMA控制器進(jìn)行初始化,包括存儲(chǔ)器基址和數(shù)據(jù)塊大小,初始化成功后由從設(shè)備DMA發(fā)出傳輸數(shù)據(jù)請(qǐng)求,主設(shè)備接收到數(shù)據(jù)傳輸請(qǐng)求后,開(kāi)始DMA數(shù)據(jù)傳輸。參照?qǐng)D5,回寫(xiě)單元包括乘法器、數(shù)據(jù)選擇器和寄存器堆。乘法器的輸出與數(shù)據(jù)選擇器相連,數(shù)據(jù)選擇器的輸出與寄存器堆相連,并與譯碼單元中兩個(gè)數(shù)據(jù)選擇器的輸入相連。該單元用于完成結(jié)果數(shù)據(jù)的回寫(xiě),由譯碼單元輸出的控制信號(hào)控制數(shù)據(jù)選擇器將乘法運(yùn)算結(jié)果、算術(shù)邏輯運(yùn)算結(jié)果、讀RAM結(jié)果寫(xiě)到目的寄存器堆。這里的目的寄存器堆和譯碼單元的寄存器堆為同一單元模塊。
      本發(fā)明的工作過(guò)程如下第一個(gè)為取指階段,由程序控制器來(lái)讀取當(dāng)前ROM內(nèi)的指令,并對(duì)指令進(jìn)行預(yù)譯碼,判斷當(dāng)前程序?yàn)轫樞驁?zhí)行或者跳轉(zhuǎn)。若程序發(fā)生條件跳轉(zhuǎn),程序控制器插入兩個(gè)周期的空操作,待執(zhí)行單元產(chǎn)生跳轉(zhuǎn)條件后,再判定是否跳轉(zhuǎn);若程序發(fā)生無(wú)條件跳轉(zhuǎn),程序控制器直接修改PC值為目標(biāo)地址,實(shí)現(xiàn)程序跳轉(zhuǎn)。第二個(gè)為譯碼階段,對(duì)輸入的指令碼進(jìn)行譯碼,獲得指令控制信號(hào)和操作數(shù),并通過(guò)數(shù)據(jù)沖突控制器判斷當(dāng)前指令是否發(fā)生數(shù)據(jù)相關(guān)沖突,若發(fā)生數(shù)據(jù)沖突則由控制信號(hào)選擇相應(yīng)的數(shù)據(jù)旁路,為執(zhí)行單元提供正確的操作數(shù)。第三個(gè)為執(zhí)行階段,由譯碼單元得到的操作數(shù)和控制信號(hào)控制邏輯運(yùn)算單元、移位運(yùn)算單元、加法器、乘法器、RAM讀寫(xiě)單元來(lái)執(zhí)行各種邏輯指令、移位指令、算術(shù)指令、乘法指令、讀寫(xiě)存儲(chǔ)器指令。第四個(gè)為回寫(xiě)階段,完成后級(jí)乘法運(yùn)算,并通過(guò)控制信號(hào)控制數(shù)據(jù)選擇器將乘法結(jié)果、ALU結(jié)果、訪問(wèn)存儲(chǔ)器結(jié)果寫(xiě)入目的寄存器堆。
      權(quán)利要求
      1.一種基于流水線結(jié)構(gòu)的專(zhuān)用指令集處理器,包括取指單元用于控制該單元中的程序計(jì)數(shù)器(PC)實(shí)現(xiàn)程序的順序執(zhí)行和跳轉(zhuǎn),并對(duì)譯碼單元中即將發(fā)生的數(shù)據(jù)沖突做出預(yù)測(cè),同時(shí)向譯碼單元輸出指令碼,向執(zhí)行單元和回寫(xiě)單元輸出控制信號(hào);譯碼單元用于對(duì)取指單元輸出的指令碼進(jìn)行譯碼,按照專(zhuān)用指令集處理器的指令格式譯出操作數(shù)和控制信號(hào),并通過(guò)該單元的數(shù)據(jù)沖突控制器判斷當(dāng)前指令的操作數(shù)與相鄰或相隔指令的操作數(shù)是否發(fā)生沖突,并通過(guò)數(shù)據(jù)旁路通道向執(zhí)行單元輸出操作數(shù);執(zhí)行單元用于在取指單元輸出的控制信號(hào)控制下,執(zhí)行各種算術(shù)運(yùn)算、邏輯運(yùn)算、移位運(yùn)算、乘法運(yùn)算,計(jì)算訪存地址,完成該單元中存儲(chǔ)器的讀寫(xiě)操作,向回寫(xiě)單元輸出運(yùn)算結(jié)果;回寫(xiě)單元用于在取指單元輸出的控制信號(hào)控制下完成對(duì)執(zhí)行單元輸出的結(jié)果數(shù)據(jù)的回寫(xiě),譯碼單元輸出的控制信號(hào)控制該單元中的數(shù)據(jù)選擇器,將乘法運(yùn)算結(jié)果、算術(shù)邏輯運(yùn)算結(jié)果、讀數(shù)據(jù)存儲(chǔ)器(RAM)結(jié)果寫(xiě)到譯碼單元中的目的寄存器堆。
      2.根據(jù)權(quán)利要求1所述的基于流水線結(jié)構(gòu)的專(zhuān)用指令集處理器,其特征在于,所述的取指單元包括指令存儲(chǔ)器(ROM)、程序控制器、PC和兩個(gè)數(shù)據(jù)選擇器(MUX) ;ROM的輸出與程序控制器、數(shù)據(jù)選擇器2相連;程序控制器的輸出與數(shù)據(jù)選擇器1、數(shù)據(jù)選擇器2相連;PC 的輸出與數(shù)據(jù)選擇器1相連;數(shù)據(jù)選擇器1的輸出通過(guò)寄存器與R0M、PC相連;數(shù)據(jù)選擇器 2的輸出通過(guò)寄存器與譯碼單元中指令譯碼器的輸入相連。
      3.根據(jù)權(quán)利要求1所述的基于流水線結(jié)構(gòu)的專(zhuān)用指令集處理器,其特征在于,所述的譯碼單元包括指令譯碼器、寄存器堆(通用寄存器、地址寄存器、端口寄存器)、數(shù)據(jù)沖突控制器和兩個(gè)數(shù)據(jù)選擇器;指令譯碼器的輸出與寄存器堆、數(shù)據(jù)沖突控制器相連,并通過(guò)寄存器與執(zhí)行單元中的數(shù)據(jù)選擇器1、數(shù)據(jù)選擇器3相連,與回寫(xiě)單元中的數(shù)據(jù)選擇器、寄存器堆相連;寄存器堆和數(shù)據(jù)沖突控制器的輸出均與兩個(gè)數(shù)據(jù)選擇器相連;數(shù)據(jù)選擇器1的輸出通過(guò)寄存器與執(zhí)行單元中的乘法器、移位運(yùn)算單元、邏輯運(yùn)算單元、加法器和數(shù)據(jù)選擇器 2相連;數(shù)據(jù)選擇器2的輸出通過(guò)寄存器與執(zhí)行單元中的乘法器、加法器相連。
      4.根據(jù)權(quán)利要求1所述的基于流水線結(jié)構(gòu)的專(zhuān)用指令集處理器,其特征在于,所述的執(zhí)行單元包括移位運(yùn)算單元、邏輯運(yùn)算單元、加法器、乘法器、RAM、直接內(nèi)存訪問(wèn)(DMA)控制器和三個(gè)數(shù)據(jù)選擇器;移位運(yùn)算單元、邏輯運(yùn)算單元、加法器的輸出均與數(shù)據(jù)選擇器1相連;數(shù)據(jù)選擇器1的輸出與譯碼單元中兩個(gè)數(shù)據(jù)選擇器的輸入相連;DMA控制器的輸出與數(shù)據(jù)選擇器2、數(shù)據(jù)選擇器3相連;數(shù)據(jù)選擇器2、數(shù)據(jù)選擇器3的輸出與RAM相連;乘法器的輸出通過(guò)寄存器與回寫(xiě)單元中乘法器的輸入相連;數(shù)據(jù)選擇器1、RAM的輸出通過(guò)寄存器與回寫(xiě)單元中的數(shù)據(jù)選擇器相連。
      5.根據(jù)權(quán)利要求1所述的基于流水線結(jié)構(gòu)的專(zhuān)用指令集微處理器,其特征在于,所述的回寫(xiě)單元包括乘法器、數(shù)據(jù)選擇器和寄存器堆;乘法器的輸出與數(shù)據(jù)選擇器相連,數(shù)據(jù)選擇器的輸出與寄存器堆相連,并與譯碼單元中兩個(gè)數(shù)據(jù)選擇器的輸入相連。
      6.根據(jù)權(quán)利要求4、5所述的基于流水線結(jié)構(gòu)的專(zhuān)用指令集處理器,其特征在于,所述的乘法器采用適用于FPGA實(shí)現(xiàn)平臺(tái)的兩級(jí)乘法器結(jié)構(gòu)。
      全文摘要
      本發(fā)明公開(kāi)了一種基于流水線結(jié)構(gòu)的專(zhuān)用指令集處理器,其流水線結(jié)構(gòu)劃分為取指、譯碼、執(zhí)行、回寫(xiě)四個(gè)階段。本發(fā)明的結(jié)構(gòu)包括程序存儲(chǔ)器、程序控制器、寄存器堆、數(shù)據(jù)沖突控制器、邏輯運(yùn)算單元、移位運(yùn)算單元、加法器、數(shù)據(jù)選擇器、數(shù)據(jù)存儲(chǔ)器、乘法器和直接內(nèi)存訪問(wèn)控制器。本發(fā)明綜合考慮了專(zhuān)用指令集處理器的指令結(jié)構(gòu)和現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)的固有特性,針對(duì)主流FPGA內(nèi)部組成結(jié)構(gòu)及電路資源,結(jié)合處理器設(shè)計(jì)與應(yīng)用特點(diǎn),合理劃分和設(shè)計(jì)了基于流水線結(jié)構(gòu)的專(zhuān)用指令集處理器的硬件結(jié)構(gòu),提高了專(zhuān)用指令集處理器的運(yùn)行速度與實(shí)現(xiàn)效率。
      文檔編號(hào)G06F9/318GK102184092SQ20111011459
      公開(kāi)日2011年9月14日 申請(qǐng)日期2011年5月4日 優(yōu)先權(quán)日2011年5月4日
      發(fā)明者劉仍穩(wěn), 張犁, 李嬌嬌, 李甫, 邱云輝 申請(qǐng)人:西安電子科技大學(xué)
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1