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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

計算機組成與設計-硬件軟件接口 Chapter2

  • 指令集
  • RISC-V簡介
  • RISC-V基本語法
  • 計算機硬件的操作數
  • 指令格式
  • 邏輯運算
  • 32個寄存器

指令集

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簡介

RISC-V由UC Berkeley于2010年開發,與此相對應的,MIPS誕生于1980s,Intel x86則誕生于1970s。

RISC-V基本語法

  • 32個寄存器標注為x0~x31,x0永遠等于0。
  • 共有261個存儲字,記為Memory[0], Memory[4]……
  • 指令類別指令名稱樣例翻譯
    算術加法add x5. x6. x7x5 = x6 + x7
    減法sub x5. x6. x7x5 = x6 - x7
    立即數加addi x5. x6. 20x5 = x6 + 20
    數據傳輸加載雙字ld x5. 40(x6)x5 = Memory[x6 + 40]
    加載字lw x5. 40(x6)
    加載無符號字lwu x5. 40(x6)
    加載半字lh x5. 40(x6)
    加載無符號半字lhu x5. 40(x6)
    加載比特lb x5. 40(x6)
    加載無符號比特lbu x5. 40(x6)
    --------
    存儲雙字sd x5. 40(x6)Memory[x6 + 40] = x5
    存儲字sw x5. 40(x6)
    存儲無符號字swu x5. 40(x6)
    存儲半字sh x5. 40(x6)
    存儲無符號半字shu x5. 40(x6)
    存儲比特sb x5. 40(x6)
    存儲無符號比特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
    立即數與andi x5. x6. 20x5 = x6 & 20
    立即數或ori x5. x6. 20x5 = x6 or 20
    立即數異或xori x5. x6. 20x5 = x6 ^ 20
    移位邏輯左移sll x5. x6. x7x5 = x6 << x7
    立即數邏輯左移slli x5. x6. 3x5 = x6 << 3
    邏輯右移srl x5. x6. x7x5 = x6 >> x7
    算術右移srax5. x6 .x7x5 = x6 >> x7
    立即數邏輯右移srli x5. x6. 3x5 = x6 >> 3
    立即數算術右移srai x5. x6. 3x5 = x6 >> 3
    條件分支相等時分支beq x5. x6. 100if (x5 == x6) go to PC + 100
    不相等時分支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
    無符號,小于時分支bltu x5. x6. 100if (x5 < x6) go to PC + 100
    無符號,大于等于則分支bgeu x5. x6. 100if (x5 >= x6) go to PC + 100
    無條件分支跳轉并鏈接jal x1. 100x1 = PC + 4
    跳轉并鏈接寄存器jalr x1. 100(x5)x1 = PC + 4

    計算機硬件的操作數

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

    指令格式

    R(register)-type:

    funct7rs2rs1funct3rdopcode
    7 bits5 bits5 bits3 bits5 bits7 bits

    I(Immediate)-type: 12 bits用來存地址,rd表示目標寄存器,單寄存器

    immediaters1funct3rdopcode
    12 bits5 bits3 bits5 bits7 bits

    S-type:

    immediaters2rs1funct3immediateopcode
    7 bits5 bits5 bits3 bits5 bits7 bits

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

    邏輯運算

    算術右移:把左邊空出來的位用右邊超出去的位來補齊

    32個寄存器

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

    (未完待續)

    總結

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

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。