基于RISC-V指令集微控制器的研究
發(fā)布時(shí)間:2021-01-08 02:04
在這個(gè)一切追求數(shù)字化的信息時(shí)代,諸如手機(jī)、電腦以及智能家居等電子產(chǎn)品已經(jīng)離不開人們的生活,這些智能產(chǎn)品基本都會(huì)具備一個(gè)被稱為微控制器的核心芯片。微控制器與其他外設(shè)及接口一起構(gòu)成了微控制器,以實(shí)現(xiàn)對(duì)各種智能電子產(chǎn)品的不同功能控制,從而確保電子產(chǎn)品在工業(yè)、國防、通信以及交通等領(lǐng)域?yàn)槿藗兎⻊?wù)。處理器的性能優(yōu)化,可以提高整個(gè)處理流程的速度,所以深入研究控制器并進(jìn)行優(yōu)化設(shè)計(jì)具有一定的理論與實(shí)際意義。本文在RISC-V指令集的基礎(chǔ)上完成其處理器中控制器的相關(guān)研究,主要工作如下:一、分析RISC-V指令集的體系結(jié)構(gòu)。本文使RISC-V指令集中常用的指令作為基礎(chǔ),通過對(duì)比分析RISC-V指令集的特點(diǎn),并充分利用該指令集簡(jiǎn)潔,精簡(jiǎn)的優(yōu)勢(shì),完成RISC-V微控制器結(jié)構(gòu)的設(shè)計(jì)。二、設(shè)計(jì)一款多級(jí)流水線的32位微控制器,實(shí)現(xiàn)了RISC-V中基本的47條指令,包括基本的運(yùn)算指令,跳轉(zhuǎn)指令,以及轉(zhuǎn)移指令。在該處理器中,采用五級(jí)流水線位基本結(jié)構(gòu),使用靜態(tài)預(yù)測(cè)機(jī)制,舍棄了經(jīng)典的RSIC處理器中使用的分支延時(shí)槽技術(shù)。同時(shí)采用統(tǒng)一的精確同步異常處理方式,通過流水線空泡方法。在實(shí)現(xiàn)中斷和異常的處理中,犧牲一個(gè)時(shí)鐘周期的處理時(shí)...
【文章來源】:安徽大學(xué)安徽省 211工程院校
【文章頁數(shù)】:78 頁
【學(xué)位級(jí)別】:碩士
【部分圖文】:
RISC-V微控制器五級(jí)流水線RTL圖
第三章RISC-V微控制器設(shè)計(jì)24的需求,在滿足正常的使用條件下,降低功耗與面積,采用經(jīng)典的五級(jí)流水線來設(shè)計(jì),RTL如圖3.3所示。圖3.3RISC-V微控制器五級(jí)流水線RTL圖本文的RISC-V微控制器結(jié)構(gòu)與大多數(shù)流水線結(jié)構(gòu)類似,分為取指、譯碼、執(zhí)行、訪存和寫回五個(gè)部分。其中取指單元包括了PC計(jì)數(shù)器,以及指令的靜態(tài)預(yù)測(cè)單元,譯碼部分包括了32個(gè)32位整數(shù)計(jì)數(shù)器。最終在進(jìn)行代碼綜合,通過modelsim進(jìn)行仿真如圖3.4所示?梢钥闯鲈诘诙䝼(gè)時(shí)鐘周期的時(shí)候,處理器在進(jìn)行第一個(gè)指令譯碼的同時(shí)也在進(jìn)行第二條指令的取指操作。圖3.4RISC-V微控制器五級(jí)流水線模擬仿真圖3.2微控制器取指電路設(shè)計(jì)“取指”通常位于處理器流水線的第一級(jí),通常由取指單元IFU(InstructionFetchUnit)來完成,本文的微控制的取指單元結(jié)構(gòu)主要由PC計(jì)數(shù)器,以及指令預(yù)測(cè)器來完成。對(duì)于本文的微控制器,由于指令存儲(chǔ)器ROM的位寬為32位,故可通過順序取指的方式來完成,其每變化一個(gè)PC地址,均可取出四個(gè)字節(jié)的數(shù)據(jù),因此,在進(jìn)行順序取指時(shí),PC計(jì)數(shù)器的每次自增值為1。
安徽大學(xué)碩士學(xué)位論文25本文設(shè)計(jì)的控制器取指單元包括指令預(yù)測(cè)電路,PC計(jì)數(shù)器電路和指令存儲(chǔ)器ROM三部分組成,其中指令靜態(tài)預(yù)測(cè)電路接收指令譯碼單元和指令執(zhí)行單元的反饋信息,并及時(shí)更新PC值。同時(shí)發(fā)生指令預(yù)測(cè)錯(cuò)誤時(shí),進(jìn)行流水線沖刷。其基本結(jié)構(gòu)的RTL如圖3.5所示。圖3.5微控制器取指單元RTL圖1)預(yù)測(cè)電路設(shè)計(jì)指令預(yù)測(cè)電路為取指單元中最為復(fù)雜的電路,它需要時(shí)刻關(guān)注當(dāng)前指令的執(zhí)行情況,并對(duì)下一條待執(zhí)行的指令進(jìn)行預(yù)測(cè),其主要功能為:控制PC計(jì)數(shù)器的輸出,并根據(jù)當(dāng)前的PC值,得出下一條要執(zhí)行的指令。根據(jù)指令執(zhí)行情況,接收譯碼單元和執(zhí)行單元的信息,及時(shí)調(diào)整下一條PC的值。當(dāng)遇到指令預(yù)測(cè)失敗或中斷和異常時(shí),產(chǎn)生流水線沖刷請(qǐng)求,并記錄當(dāng)前的PC值,并讀取相應(yīng)的CSR的值,通過一定的計(jì)算,把它作為新的PC值進(jìn)行取指。根據(jù)前面所述,預(yù)測(cè)電路分為動(dòng)態(tài)預(yù)測(cè)和靜態(tài)預(yù)測(cè),但根據(jù)應(yīng)用場(chǎng)景的不同,采用的預(yù)測(cè)方式也有區(qū)別。動(dòng)態(tài)預(yù)測(cè)由于精度高,常用于多級(jí)流水線且對(duì)性能要求很高的處理器中。但由于其設(shè)計(jì)復(fù)雜,需要的邏輯單元較多,因此需要犧牲一定的面積,其邏輯數(shù)量甚至多到不得不單獨(dú)把它作為流水線中的某一級(jí)。而靜態(tài)電路在算法和設(shè)計(jì)上簡(jiǎn)單,因此需要的邏輯單元非常少,因此在如本文的低功耗和對(duì)性能要求不高的處理器中常使用靜態(tài)預(yù)測(cè)方式。在RISC-V指令集中,總共有8條跳轉(zhuǎn)指令,其中2條無條件跳轉(zhuǎn)指令總是跳轉(zhuǎn),剩下的6條指令需要等指令到執(zhí)行單元執(zhí)行后才能知道是否需要跳轉(zhuǎn)。因此可以通過最簡(jiǎn)單的預(yù)測(cè)設(shè)計(jì),即只要是跳轉(zhuǎn)指令均預(yù)測(cè)其為不跳轉(zhuǎn),等待執(zhí)行單元的結(jié)果,若預(yù)測(cè)
【參考文獻(xiàn)】:
期刊論文
[1]提前分支預(yù)測(cè)結(jié)構(gòu)及算法研究[J]. 靳文兵,石峰,左琦,張楊. 計(jì)算機(jī)研究與發(fā)展. 2013(10)
[2]基于哈佛結(jié)構(gòu)的單周期堆棧處理器設(shè)計(jì)[J]. 何凱成,施慧彬. 微電子學(xué)與計(jì)算機(jī). 2013(09)
[3]“申威-1號(hào)”高性能微處理器的功能驗(yàn)證[J]. 黃永勤,朱英,巨鵬錦,吳志勇,陳誠. 軟件學(xué)報(bào). 2009(04)
[4]基于RISC技術(shù)的MCU核的設(shè)計(jì)與研究[J]. 劉濤,應(yīng)繼宏. 科學(xué)技術(shù)與工程. 2007(07)
[5]龍芯2號(hào)處理器設(shè)計(jì)和性能分析[J]. 胡偉武,張福新,李祖松. 計(jì)算機(jī)研究與發(fā)展. 2006(06)
[6]1971年11月15日英特爾發(fā)布4004處理器[J]. 馮志明,劉曉坤,徐菁睛. 多媒體世界. 2006(02)
[7]龍芯二號(hào)面世[J]. 劉京玲. 人工晶體學(xué)報(bào). 2005(04)
[8]首枚國產(chǎn)CPU“龍芯”1號(hào)問世[J]. 風(fēng)宗. 軍民兩用技術(shù)與產(chǎn)品. 2002(10)
[9]英特爾奔騰4處理器[J]. 電子科技. 2000(23)
[10]MIPS R2000/R2010體系結(jié)構(gòu)簡(jiǎn)介[J]. 黃萍芳,佟春環(huán),吳杏仁,潘正祥. 計(jì)算機(jī)工程與應(yīng)用. 1990(09)
碩士論文
[1]基于RISC-V架構(gòu)的雙發(fā)射微處理器設(shè)計(jì)與實(shí)現(xiàn)[D]. 盛啟隆.西安理工大學(xué) 2019
[2]嵌入式SDRAM控制器的設(shè)計(jì)與驗(yàn)證[D]. 王婉星.西安電子科技大學(xué) 2017
[3]處理器核的性能分析及其分支預(yù)測(cè)結(jié)構(gòu)優(yōu)化[D]. 吳金磊.國防科學(xué)技術(shù)大學(xué) 2016
[4]一款基于四級(jí)流水結(jié)構(gòu)的8位MCU芯片XD2637的設(shè)計(jì)[D]. 張雪嬌.西安電子科技大學(xué) 2013
[5]x86架構(gòu)CPU中斷機(jī)制的研究和實(shí)現(xiàn)[D]. 裴雅麗.北京交通大學(xué) 2012
本文編號(hào):2963691
【文章來源】:安徽大學(xué)安徽省 211工程院校
【文章頁數(shù)】:78 頁
【學(xué)位級(jí)別】:碩士
【部分圖文】:
RISC-V微控制器五級(jí)流水線RTL圖
第三章RISC-V微控制器設(shè)計(jì)24的需求,在滿足正常的使用條件下,降低功耗與面積,采用經(jīng)典的五級(jí)流水線來設(shè)計(jì),RTL如圖3.3所示。圖3.3RISC-V微控制器五級(jí)流水線RTL圖本文的RISC-V微控制器結(jié)構(gòu)與大多數(shù)流水線結(jié)構(gòu)類似,分為取指、譯碼、執(zhí)行、訪存和寫回五個(gè)部分。其中取指單元包括了PC計(jì)數(shù)器,以及指令的靜態(tài)預(yù)測(cè)單元,譯碼部分包括了32個(gè)32位整數(shù)計(jì)數(shù)器。最終在進(jìn)行代碼綜合,通過modelsim進(jìn)行仿真如圖3.4所示?梢钥闯鲈诘诙䝼(gè)時(shí)鐘周期的時(shí)候,處理器在進(jìn)行第一個(gè)指令譯碼的同時(shí)也在進(jìn)行第二條指令的取指操作。圖3.4RISC-V微控制器五級(jí)流水線模擬仿真圖3.2微控制器取指電路設(shè)計(jì)“取指”通常位于處理器流水線的第一級(jí),通常由取指單元IFU(InstructionFetchUnit)來完成,本文的微控制的取指單元結(jié)構(gòu)主要由PC計(jì)數(shù)器,以及指令預(yù)測(cè)器來完成。對(duì)于本文的微控制器,由于指令存儲(chǔ)器ROM的位寬為32位,故可通過順序取指的方式來完成,其每變化一個(gè)PC地址,均可取出四個(gè)字節(jié)的數(shù)據(jù),因此,在進(jìn)行順序取指時(shí),PC計(jì)數(shù)器的每次自增值為1。
安徽大學(xué)碩士學(xué)位論文25本文設(shè)計(jì)的控制器取指單元包括指令預(yù)測(cè)電路,PC計(jì)數(shù)器電路和指令存儲(chǔ)器ROM三部分組成,其中指令靜態(tài)預(yù)測(cè)電路接收指令譯碼單元和指令執(zhí)行單元的反饋信息,并及時(shí)更新PC值。同時(shí)發(fā)生指令預(yù)測(cè)錯(cuò)誤時(shí),進(jìn)行流水線沖刷。其基本結(jié)構(gòu)的RTL如圖3.5所示。圖3.5微控制器取指單元RTL圖1)預(yù)測(cè)電路設(shè)計(jì)指令預(yù)測(cè)電路為取指單元中最為復(fù)雜的電路,它需要時(shí)刻關(guān)注當(dāng)前指令的執(zhí)行情況,并對(duì)下一條待執(zhí)行的指令進(jìn)行預(yù)測(cè),其主要功能為:控制PC計(jì)數(shù)器的輸出,并根據(jù)當(dāng)前的PC值,得出下一條要執(zhí)行的指令。根據(jù)指令執(zhí)行情況,接收譯碼單元和執(zhí)行單元的信息,及時(shí)調(diào)整下一條PC的值。當(dāng)遇到指令預(yù)測(cè)失敗或中斷和異常時(shí),產(chǎn)生流水線沖刷請(qǐng)求,并記錄當(dāng)前的PC值,并讀取相應(yīng)的CSR的值,通過一定的計(jì)算,把它作為新的PC值進(jìn)行取指。根據(jù)前面所述,預(yù)測(cè)電路分為動(dòng)態(tài)預(yù)測(cè)和靜態(tài)預(yù)測(cè),但根據(jù)應(yīng)用場(chǎng)景的不同,采用的預(yù)測(cè)方式也有區(qū)別。動(dòng)態(tài)預(yù)測(cè)由于精度高,常用于多級(jí)流水線且對(duì)性能要求很高的處理器中。但由于其設(shè)計(jì)復(fù)雜,需要的邏輯單元較多,因此需要犧牲一定的面積,其邏輯數(shù)量甚至多到不得不單獨(dú)把它作為流水線中的某一級(jí)。而靜態(tài)電路在算法和設(shè)計(jì)上簡(jiǎn)單,因此需要的邏輯單元非常少,因此在如本文的低功耗和對(duì)性能要求不高的處理器中常使用靜態(tài)預(yù)測(cè)方式。在RISC-V指令集中,總共有8條跳轉(zhuǎn)指令,其中2條無條件跳轉(zhuǎn)指令總是跳轉(zhuǎn),剩下的6條指令需要等指令到執(zhí)行單元執(zhí)行后才能知道是否需要跳轉(zhuǎn)。因此可以通過最簡(jiǎn)單的預(yù)測(cè)設(shè)計(jì),即只要是跳轉(zhuǎn)指令均預(yù)測(cè)其為不跳轉(zhuǎn),等待執(zhí)行單元的結(jié)果,若預(yù)測(cè)
【參考文獻(xiàn)】:
期刊論文
[1]提前分支預(yù)測(cè)結(jié)構(gòu)及算法研究[J]. 靳文兵,石峰,左琦,張楊. 計(jì)算機(jī)研究與發(fā)展. 2013(10)
[2]基于哈佛結(jié)構(gòu)的單周期堆棧處理器設(shè)計(jì)[J]. 何凱成,施慧彬. 微電子學(xué)與計(jì)算機(jī). 2013(09)
[3]“申威-1號(hào)”高性能微處理器的功能驗(yàn)證[J]. 黃永勤,朱英,巨鵬錦,吳志勇,陳誠. 軟件學(xué)報(bào). 2009(04)
[4]基于RISC技術(shù)的MCU核的設(shè)計(jì)與研究[J]. 劉濤,應(yīng)繼宏. 科學(xué)技術(shù)與工程. 2007(07)
[5]龍芯2號(hào)處理器設(shè)計(jì)和性能分析[J]. 胡偉武,張福新,李祖松. 計(jì)算機(jī)研究與發(fā)展. 2006(06)
[6]1971年11月15日英特爾發(fā)布4004處理器[J]. 馮志明,劉曉坤,徐菁睛. 多媒體世界. 2006(02)
[7]龍芯二號(hào)面世[J]. 劉京玲. 人工晶體學(xué)報(bào). 2005(04)
[8]首枚國產(chǎn)CPU“龍芯”1號(hào)問世[J]. 風(fēng)宗. 軍民兩用技術(shù)與產(chǎn)品. 2002(10)
[9]英特爾奔騰4處理器[J]. 電子科技. 2000(23)
[10]MIPS R2000/R2010體系結(jié)構(gòu)簡(jiǎn)介[J]. 黃萍芳,佟春環(huán),吳杏仁,潘正祥. 計(jì)算機(jī)工程與應(yīng)用. 1990(09)
碩士論文
[1]基于RISC-V架構(gòu)的雙發(fā)射微處理器設(shè)計(jì)與實(shí)現(xiàn)[D]. 盛啟隆.西安理工大學(xué) 2019
[2]嵌入式SDRAM控制器的設(shè)計(jì)與驗(yàn)證[D]. 王婉星.西安電子科技大學(xué) 2017
[3]處理器核的性能分析及其分支預(yù)測(cè)結(jié)構(gòu)優(yōu)化[D]. 吳金磊.國防科學(xué)技術(shù)大學(xué) 2016
[4]一款基于四級(jí)流水結(jié)構(gòu)的8位MCU芯片XD2637的設(shè)計(jì)[D]. 張雪嬌.西安電子科技大學(xué) 2013
[5]x86架構(gòu)CPU中斷機(jī)制的研究和實(shí)現(xiàn)[D]. 裴雅麗.北京交通大學(xué) 2012
本文編號(hào):2963691
本文鏈接:http://www.wukwdryxk.cn/kejilunwen/jisuanjikexuelunwen/2963691.html
最近更新
教材專著