基于AHB總線的RISC-V微處理器設(shè)計(jì)與實(shí)現(xiàn)
發(fā)布時(shí)間:2020-12-25 10:25
在嵌入式應(yīng)用中,為了滿足小面積低功耗的設(shè)計(jì)需求,設(shè)計(jì)了一種支持RISC-V指令集架構(gòu)的微處理器,系統(tǒng)采用2級(jí)流水結(jié)構(gòu),實(shí)現(xiàn)了RV32IMAC指令集。處理器采用AHB總線作為片上互連總線,可方便調(diào)用外部IP核進(jìn)行功能拓展。在VCS環(huán)境下驗(yàn)證了該微處理器的邏輯功能,仿真結(jié)果表明該微處理器能夠正常穩(wěn)定運(yùn)行。在面積、功耗和性能等方面與蜂鳥E203處理器以及ARM Cortex-M系列處理器進(jìn)行了對(duì)比,該設(shè)計(jì)比蜂鳥E203處理器面積小了6%,功耗和性能上與Cortex-M0處理器相當(dāng)。分析結(jié)果表明該處理器較適合在小面積、低功耗的嵌入式應(yīng)用領(lǐng)域進(jìn)行開發(fā)。
【文章來(lái)源】:計(jì)算機(jī)工程與應(yīng)用. 2020年20期 北大核心
【文章頁(yè)數(shù)】:7 頁(yè)
【部分圖文】:
科學(xué)出版物年增數(shù)量比較
在流水線第一階段,PC取指并訪問指令存儲(chǔ)器,并將取出指令存入IR寄存器。取指階段會(huì)完成簡(jiǎn)單的譯碼過(guò)程(mini-decode),此處的譯碼不需要完整譯出指令的所有信息,而只需要譯出部分指令信息,包括此指令是屬于普通指令還是分支跳轉(zhuǎn)指令以及分支跳轉(zhuǎn)指令的類型和細(xì)節(jié)。另外,在第一階段還會(huì)對(duì)跳轉(zhuǎn)指令進(jìn)行簡(jiǎn)單的分支預(yù)測(cè)(Simple-BPU),跳轉(zhuǎn)指令類型如表1所示,判斷是否為跳轉(zhuǎn)指令代碼如下:(1)對(duì)于帶條件的直接跳轉(zhuǎn)指令,使用靜態(tài)預(yù)測(cè)(向后跳轉(zhuǎn)預(yù)測(cè)為需要跳,否則預(yù)測(cè)為不需要跳),按照指令的定義使用其PC和立即數(shù)表示的offset相加得到其跳轉(zhuǎn)目標(biāo)地址。
執(zhí)行階段的一個(gè)重要功能是維護(hù)并解決流水線沖突。為了能夠檢測(cè)出長(zhǎng)指令(包括load指令、store指令以及乘除法等指令)的RAW和WAW相關(guān)性,本文加入了一個(gè)OITF(Outstanding Instructions Track FIFO)模塊,如圖3所示,OITF本質(zhì)上是一個(gè)深度為4個(gè)表項(xiàng)先入先出的FIFO。在流水線的派遣點(diǎn),每次派遣一個(gè)長(zhǎng)指令,則會(huì)在OITF中分配一個(gè)表項(xiàng),在這個(gè)表項(xiàng)中會(huì)存儲(chǔ)該長(zhǎng)指令的源操作數(shù)寄存器索引和結(jié)果寄存器索引。在流水線的寫回點(diǎn),每次按順序?qū)懟匾粋(gè)長(zhǎng)指令之后,就會(huì)將此指令在OITF中的表項(xiàng)去除,即從其FIFO退出完成任務(wù)。在流水線寫回階段,為避免WAW的數(shù)據(jù)相關(guān)性發(fā)生,如果單周期指令和長(zhǎng)指令一起寫回,多周期指令寫回的優(yōu)先級(jí)更高,因?yàn)槎嘀芷谥噶钜欢ㄔ趩沃芷谥噶钪鞍l(fā)射。
【參考文獻(xiàn)】:
期刊論文
[1]RV32I控制單元設(shè)計(jì)與實(shí)現(xiàn)[J]. 張迅珍,梁青,李濤. 微電子學(xué)與計(jì)算機(jī). 2018(03)
本文編號(hào):2937468
【文章來(lái)源】:計(jì)算機(jī)工程與應(yīng)用. 2020年20期 北大核心
【文章頁(yè)數(shù)】:7 頁(yè)
【部分圖文】:
科學(xué)出版物年增數(shù)量比較
在流水線第一階段,PC取指并訪問指令存儲(chǔ)器,并將取出指令存入IR寄存器。取指階段會(huì)完成簡(jiǎn)單的譯碼過(guò)程(mini-decode),此處的譯碼不需要完整譯出指令的所有信息,而只需要譯出部分指令信息,包括此指令是屬于普通指令還是分支跳轉(zhuǎn)指令以及分支跳轉(zhuǎn)指令的類型和細(xì)節(jié)。另外,在第一階段還會(huì)對(duì)跳轉(zhuǎn)指令進(jìn)行簡(jiǎn)單的分支預(yù)測(cè)(Simple-BPU),跳轉(zhuǎn)指令類型如表1所示,判斷是否為跳轉(zhuǎn)指令代碼如下:(1)對(duì)于帶條件的直接跳轉(zhuǎn)指令,使用靜態(tài)預(yù)測(cè)(向后跳轉(zhuǎn)預(yù)測(cè)為需要跳,否則預(yù)測(cè)為不需要跳),按照指令的定義使用其PC和立即數(shù)表示的offset相加得到其跳轉(zhuǎn)目標(biāo)地址。
執(zhí)行階段的一個(gè)重要功能是維護(hù)并解決流水線沖突。為了能夠檢測(cè)出長(zhǎng)指令(包括load指令、store指令以及乘除法等指令)的RAW和WAW相關(guān)性,本文加入了一個(gè)OITF(Outstanding Instructions Track FIFO)模塊,如圖3所示,OITF本質(zhì)上是一個(gè)深度為4個(gè)表項(xiàng)先入先出的FIFO。在流水線的派遣點(diǎn),每次派遣一個(gè)長(zhǎng)指令,則會(huì)在OITF中分配一個(gè)表項(xiàng),在這個(gè)表項(xiàng)中會(huì)存儲(chǔ)該長(zhǎng)指令的源操作數(shù)寄存器索引和結(jié)果寄存器索引。在流水線的寫回點(diǎn),每次按順序?qū)懟匾粋(gè)長(zhǎng)指令之后,就會(huì)將此指令在OITF中的表項(xiàng)去除,即從其FIFO退出完成任務(wù)。在流水線寫回階段,為避免WAW的數(shù)據(jù)相關(guān)性發(fā)生,如果單周期指令和長(zhǎng)指令一起寫回,多周期指令寫回的優(yōu)先級(jí)更高,因?yàn)槎嘀芷谥噶钜欢ㄔ趩沃芷谥噶钪鞍l(fā)射。
【參考文獻(xiàn)】:
期刊論文
[1]RV32I控制單元設(shè)計(jì)與實(shí)現(xiàn)[J]. 張迅珍,梁青,李濤. 微電子學(xué)與計(jì)算機(jī). 2018(03)
本文編號(hào):2937468
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2937468.html
最近更新
教材專著