RISCV相關(guān)知識(shí)調(diào)研_第1頁(yè)
RISCV相關(guān)知識(shí)調(diào)研_第2頁(yè)
RISCV相關(guān)知識(shí)調(diào)研_第3頁(yè)
RISCV相關(guān)知識(shí)調(diào)研_第4頁(yè)
RISCV相關(guān)知識(shí)調(diào)研_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、RISC-V相關(guān)知識(shí)調(diào)研September 1st, 2021馮維直1OutlineRISC-V概述RV32I:RISC-V基礎(chǔ)整數(shù)指令集RISC-V擴(kuò)展指令集:RV32M:乘除法指令RV32F和RV32D:?jiǎn)尉群碗p精度浮點(diǎn)數(shù)RV64:64位地址指令RV32/64特權(quán)架構(gòu)如何設(shè)計(jì)RISC-V處理器處理器如何使用流水線執(zhí)行指令2RISC-V概述RISC-V是一種ISA(Instruction Set Architecture, 指令集架構(gòu))指令:是能被計(jì)算機(jī)識(shí)別并執(zhí)行的bit串,例如:1001010100101110面向計(jì)算機(jī)層面被稱為機(jī)器語(yǔ)言,面向程序員被稱為匯編語(yǔ)言,使用匯編器將匯編語(yǔ)言翻

2、譯為機(jī)器語(yǔ)言,比如一條指令寫成匯編的形式是add A, B,翻譯為機(jī)器碼1001010100101110,計(jì)算機(jī)CPU執(zhí)行這串機(jī)器碼,完成add A, B的操作.3RISC-V概述一些相關(guān)概念: 指令集規(guī)范(Specification):往往用一本書或幾頁(yè)紙來記錄描述,規(guī)定了指令集的匯編碼與機(jī)器碼的格式,“RISC-V是開源的”指RISC-V的規(guī)范是開源免費(fèi)的; 處理器實(shí)現(xiàn)(implementation):基于指令集規(guī)范,進(jìn)行處理器微架構(gòu)設(shè)計(jì)和實(shí)現(xiàn)形成源代碼,通過流片最終形成芯片成品。4 ISA (指令集架構(gòu)) 是一種硬件和軟件之間的抽象接口,包含了程序員正確編寫二進(jìn)制機(jī)器語(yǔ)言程序所需的全部信

3、息,如指令,寄存器,存儲(chǔ)器訪問和I/O設(shè)備等。RISC-V與其他指令集對(duì)比CISC vs RISCCISC: Complex Instruction Set Computer新功能需要增加新指令,指令系統(tǒng)越來越復(fù)雜。X86:Intel,AMD 生產(chǎn)的CPU使用X86指令集,主要用于PC端RISC: Reduced Instruction Set Computer簡(jiǎn)化指令格式,從而減低處理器設(shè)計(jì)難度。ARM:低功耗領(lǐng)域,如嵌入式設(shè)備、移動(dòng)端,華為小米蘋果使用的處理器(麒麟、驍龍、A系列)都是基于ARM架構(gòu)MIPS:路由器等,中國(guó)的龍芯處理器最早是基于MIPS的RISC-V:近十年才誕生,開源,模

4、塊化設(shè)計(jì),其設(shè)計(jì)團(tuán)隊(duì)之前已經(jīng)做了4代RISC指令集,因此將其稱為“第5代精簡(jiǎn)指令集”5RV32I: RISC-V的核心RISC-V是模塊化的,其核心是RV32I,可以根據(jù)應(yīng)用程序的需要決定硬件設(shè)計(jì)包含或不包含其他擴(kuò)展,這對(duì)于嵌入式應(yīng)用非常重要。6RV32I: RISC-V的核心RV32I指令格式:所有指令都是32位長(zhǎng)R類型:用寄存器 寄存器操作 I類型:用于短立即數(shù)和訪存load操作S類型:用于訪存store操作 B類型:用于條件跳轉(zhuǎn)操作U類型:用于長(zhǎng)立即數(shù) J類型:用于無條件跳轉(zhuǎn)7funct: 操作碼字段rs: 源操作數(shù)寄存器rd: 目的操作數(shù)寄存器,放結(jié)果opcode: 操作碼RV32I:

5、 RISC-V的核心8RV32I: RISC-V的核心寄存器:32個(gè)寄存器 x0 x31,注意x0是專用寄存器,硬連線到常數(shù)0幾個(gè)基本指令:9RV32I: RISC-V的核心10add sub addi溢出: 一般硬件設(shè)計(jì)會(huì)忽略算數(shù)溢出,依賴于軟件的檢查,無符號(hào)數(shù)相加溢出例子:ADD x5, x6, x7BLTU x5, x6, overflow解釋:x5 為x6和x7的和,結(jié)果比其中的加數(shù)還小,說明加法溢出,于是跳轉(zhuǎn)到處理溢出的分支overflowRV32I: RISC-V的核心11add sub addi溢出: 一般硬件設(shè)計(jì)會(huì)忽略算數(shù)溢出,依賴于軟件的檢查,有符號(hào)數(shù)相加,imm為正:ADD

6、I x5, x6, immBLT x5, x6, overflow解釋:x6加上一個(gè)正數(shù)結(jié)果應(yīng)該大于x6,比較x5, x6,若x5 1111 1111 1111 1111 1111 1000 0000 0000(-2048)SW rs2, offset(rs1)RV32I: RISC-V的核心15RV32I: RISC-V的核心16例子:數(shù)組A的基地址在x10中,h存在x21中l(wèi)waddaddiswRV32I: RISC-V的核心條件分支:相等 beq: beq rs1, rs2, L1不相等bne: bne rs1, rs2, L1大于等于bge bgeu小于blt bltu 17RV32I

7、: RISC-V的核心無條件跳轉(zhuǎn):jal:跳轉(zhuǎn)-鏈接指令 jal x1,X 跳轉(zhuǎn)到X地址,將下一條指令的地址返回到x1中jalr: jalr x0, 0(x1)過程調(diào)用:調(diào)用程序?qū)?shù)放在參數(shù)寄存器中(x10到x17),使用jal x1, X跳轉(zhuǎn)到過程X(被調(diào)用者),被調(diào)用者執(zhí)行計(jì)算,將結(jié)果放在相同的參數(shù)寄存器中,使用jalr x0, 0(x1)將控制返回調(diào)用者.將x0設(shè)置為返回地址寄存器是因?yàn)槲覀儭安辉诤酢?。例如,?dāng)我們從子過程返回時(shí),返回地址不需要保存,則我們?cè)O(shè)置x0為目標(biāo)寄存器18RV32I: RISC-V的核心邏輯操作:算術(shù)右移:不是用0填充空出的左邊的位,而實(shí)用原來的符號(hào)位填充19R

8、V32I: RISC-V的核心邏輯操作:20RV32M: 乘法和除法21RV32M: 乘法和除法22兩個(gè)32位得到64位的乘積得到64位中的低32位用mul,高32位用mulh mulhu一個(gè)有符號(hào)一個(gè)無符號(hào)mulhsu用兩條乘法指令才得到一個(gè)完成的64位積RV32F RV32D: 單精度和雙精度浮點(diǎn)數(shù)23使用32個(gè)獨(dú)立的f寄存器而不是x寄存器,f0是可變的比較復(fù)雜,涉及到浮點(diǎn)數(shù)表示和舍入(確定誤差范圍)等,這次不細(xì)講了沒有浮點(diǎn)分支指令,有浮點(diǎn)比較指令RV64I: 64位24將加載和存儲(chǔ)字指令變?yōu)榧虞d存儲(chǔ)雙字 ld sd地址增量從4字節(jié)變?yōu)?字節(jié)A30 = h + A30 + 1;ld x9, 240(x10)支持字:addw, addiw, subw, subw將結(jié)果截?cái)酁?2位,經(jīng)過符號(hào)擴(kuò)展再寫入目標(biāo)寄存器RISC-V其他25原子指令 RV32A 壓縮指令 RV32C向量 RV32V特權(quán)架構(gòu)RISC-V特權(quán)架構(gòu)26之前講的所有指令都在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論