日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

硬件软件接口 (RISC-V) Chapter 2

發(fā)布時(shí)間:2024/1/8 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 硬件软件接口 (RISC-V) Chapter 2 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

計(jì)算機(jī)組成與設(shè)計(jì)-硬件軟件接口 Chapter2

  • 指令集
  • RISC-V簡(jiǎn)介
  • RISC-V基本語(yǔ)法
  • 計(jì)算機(jī)硬件的操作數(shù)
  • 指令格式
  • 邏輯運(yùn)算
  • 32個(gè)寄存器

指令集

The words of a computer’s language are called instructions, and its vocabulary is called an instruction set.
----Computer Organization and Design: The Hardware / Software Interface

RISC-V簡(jiǎn)介

RISC-V由UC Berkeley于2010年開(kāi)發(fā),與此相對(duì)應(yīng)的,MIPS誕生于1980s,Intel x86則誕生于1970s。

RISC-V基本語(yǔ)法

  • 32個(gè)寄存器標(biāo)注為x0~x31,x0永遠(yuǎn)等于0。
  • 共有261個(gè)存儲(chǔ)字,記為Memory[0], Memory[4]……
  • 指令類(lèi)別指令名稱(chēng)樣例翻譯
    算術(shù)加法add x5. x6. x7x5 = x6 + x7
    減法sub x5. x6. x7x5 = x6 - x7
    立即數(shù)加addi x5. x6. 20x5 = x6 + 20
    數(shù)據(jù)傳輸加載雙字ld x5. 40(x6)x5 = Memory[x6 + 40]
    加載字lw x5. 40(x6)
    加載無(wú)符號(hào)字lwu x5. 40(x6)
    加載半字lh x5. 40(x6)
    加載無(wú)符號(hào)半字lhu x5. 40(x6)
    加載比特lb x5. 40(x6)
    加載無(wú)符號(hào)比特lbu x5. 40(x6)
    --------
    存儲(chǔ)雙字sd x5. 40(x6)Memory[x6 + 40] = x5
    存儲(chǔ)字sw x5. 40(x6)
    存儲(chǔ)無(wú)符號(hào)字swu x5. 40(x6)
    存儲(chǔ)半字sh x5. 40(x6)
    存儲(chǔ)無(wú)符號(hào)半字shu x5. 40(x6)
    存儲(chǔ)比特sb x5. 40(x6)
    存儲(chǔ)無(wú)符號(hào)比特sbu x5. 40(x6)
    --------
    load reserved
    store conditional
    load upper immediate
    邏輯and x5. x6. x7x5 = x6 & x7
    or x5. x6. x8x5 = x6 or x8
    異或xor x5. x6. x9x5 = x6 ^x9
    立即數(shù)與andi x5. x6. 20x5 = x6 & 20
    立即數(shù)或ori x5. x6. 20x5 = x6 or 20
    立即數(shù)異或xori x5. x6. 20x5 = x6 ^ 20
    移位邏輯左移sll x5. x6. x7x5 = x6 << x7
    立即數(shù)邏輯左移slli x5. x6. 3x5 = x6 << 3
    邏輯右移srl x5. x6. x7x5 = x6 >> x7
    算術(shù)右移srax5. x6 .x7x5 = x6 >> x7
    立即數(shù)邏輯右移srli x5. x6. 3x5 = x6 >> 3
    立即數(shù)算術(shù)右移srai x5. x6. 3x5 = x6 >> 3
    條件分支相等時(shí)分支beq x5. x6. 100if (x5 == x6) go to PC + 100
    不相等時(shí)分支bne x5. x6. 100if (x5 != x6) go to PC + 100
    小于則分支blt x5. x6. 100if (x5 < x6) go to PC + 100
    大于等于則分支bge x5. x6. 100if (x5 >= x6) go to PC + 100
    無(wú)符號(hào),小于時(shí)分支bltu x5. x6. 100if (x5 < x6) go to PC + 100
    無(wú)符號(hào),大于等于則分支bgeu x5. x6. 100if (x5 >= x6) go to PC + 100
    無(wú)條件分支跳轉(zhuǎn)并鏈接jal x1. 100x1 = PC + 4
    跳轉(zhuǎn)并鏈接寄存器jalr x1. 100(x5)x1 = PC + 4

    計(jì)算機(jī)硬件的操作數(shù)

    • RISC-V的單個(gè)寄存器64bits寬。
    • least significant bit用來(lái)指代右下的bit(圖中的0),most significant bit指代左上的bit(圖中的63)
    • 每條RISC-V指令翻譯成二進(jìn)制代碼之后由六個(gè)"fields"組成,分別長(zhǎng)7,5,5,3,5,7bits。其中三個(gè)5bits用來(lái)存放三個(gè)操作數(shù)所對(duì)應(yīng)的寄存器編號(hào)。
    • 為了和匯編語(yǔ)言相區(qū)分,我們把二進(jìn)制版本的命令稱(chēng)為機(jī)器語(yǔ)言或機(jī)器碼。
    • Java依靠軟件解釋器(software interpreter)來(lái)執(zhí)行。它的指令集稱(chēng)為Java字節(jié)碼而不是類(lèi)似RISC-V這樣的機(jī)器語(yǔ)言,效率較低

    指令格式

    R(register)-type:

    funct7rs2rs1funct3rdopcode
    7 bits5 bits5 bits3 bits5 bits7 bits

    I(Immediate)-type: 12 bits用來(lái)存地址,rd表示目標(biāo)寄存器,單寄存器

    immediaters1funct3rdopcode
    12 bits5 bits3 bits5 bits7 bits

    S-type:

    immediaters2rs1funct3immediateopcode
    7 bits5 bits5 bits3 bits5 bits7 bits

    opcode = 操作碼,funct3和funct7是兩個(gè)額外的存放操作碼的空間
    rd = register destination
    rs = register source

    邏輯運(yùn)算

    算術(shù)右移:把左邊空出來(lái)的位用右邊超出去的位來(lái)補(bǔ)齊

    32個(gè)寄存器

    編號(hào)描述call時(shí)是否受保護(hù)
    x0常數(shù)0硬件編碼
    x1(ra)返回地址寄存器(return address)
    x2(sp)棧指針(stack pointer)
    x3(gp)全局指針(global pointer)
    x4(tp)線(xiàn)程指針(thread pointer)
    x5 ~ x7臨時(shí)寄存器
    x8 ~ x9保留寄存器
    x10 ~ x17傳參或傳遞返回值
    x18 ~ x27保留寄存器
    x28 ~ x31臨時(shí)寄存器

    (未完待續(xù))

    總結(jié)

    以上是生活随笔為你收集整理的硬件软件接口 (RISC-V) Chapter 2的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。