在以前的文章中,我分享了RISC-V用戶可以在基本指令集的基礎上面,進行定制化的設計,但是無論怎樣,都要能夠支撐整數基本指令集,可以看出基本指令集的重要性。我們已經詳細介紹了RISC-V中非常重要的整數計算指令、控制轉移指令的無條件轉移和條件分支指令,感興趣的朋友,可以翻看之前的文章了解。今天我們繼續介紹RISC-V中的load和store指令。
load和store指令格式
在RISC-V指令集的體系中,只有兩個指令可以訪問存儲器,就是load和store指令,由此可見這兩個指令的重要性。RISC-V體系開放給用戶32bit的地址空間,并且以小端的形式進行存儲。但是和其他所有的指令集一樣,并不是所有的地址空間都可以訪問,出于存儲保護的考慮,在不同的應用場景下面,執行環境會根據場景的需要,決定開放哪些地址給用戶訪問。
load指令的基本指令格式如下圖所示:
其中,最低位為操作碼,在這條指令就是load指令,為5bit的目的寄存器,為5bit的基址寄存器。
store指令的基本指令格式如下圖所示:
其中,最低位為操作碼,在這條指令就是store指令,為5bit的偏移量,為5bit的基址寄存器,為7bit的偏移量。
我們再對上面的指令進一步解釋一下。load指令的編碼格式屬于I類格式,store指令的編碼格式屬于S類,兩個指令共同完成了數據在寄存器和存儲器之間的傳遞。load指令可以完成將數據從存儲器中復制到目的寄存器rd中,而store指令可以完成將數據從rs2寄存器中,復制到存儲器中。這兩個指令的共同之處在于地址的計算。它們都是先將12bit的偏移量進行符號擴展,然后再加上rs1寄存器中的值,兩個的和就是有效的地址。
load和store指令的要求
和X86、ARM或者其他的指令集一樣,為了提升指令的運行效率,對指令的使用有一些要求。在RISC-V指令集中,建議在使用load和store時,保證有效地址和指令的數據類型對齊。展開來講就是,如果是指令對應的數據是32bit,則應該和4Byte邊界對齊,同理,如果是16bit,則需要和2Byte對齊。
需要說明的是,RISC-V的基本指令集可以支持邊界不對齊的訪問,但是,指令的運行效率將會變得十分低下,因為一次數據訪問,可能被分成兩次存儲器訪問。
EP4S100G5H40I2NEP4S100G5H40I3
EP4S100G4F45I1N
EP4S100G5F45I3N
EP4S100G4F45I2N
EP4S100G5H40I1N
EP4S100G5F45I1N
EP3SL200F1152I2N
EP3SL200H780I4
EP3SL200H780C4LN
EP3SL200H780I3
EP3SL200F1517I4N
EP3SL200F1152C4LN
EP3SL200H780C2N
EP3SL200F1517I3
EP3SL200H780I4N
EP3SL200H780I8N
EP3SL200F1152I4
EP3SL200F1152C2N
EP3SL200F1517I2N
EP3SL200F1517C4LN
EP1S25F1020C6N
EP1S25F780C7L
EP1S25B672I7N
EP1S25F672I6N
EP1S25F1020I6N
EP1S25F780C7ES
EP1S25F672C-7N
EP2S40B724C7N
EP2S40B724C7
EP4SE110F29C2N
EP4SE110F29C4
EP4SE110F29C3
EP4SE110F29C3N
EP4SE110F29C4N
EP4SE110F29C2
5ASXFB5G4F35I3N
EP2S60F1020C5
EP2S60F672C3
EP2S60F672I3
EP2S60F67214N
EP2S60F672I5
EP2S60F1020C4N?
EP2S60F484C4
5AGXBB5D4F35I5N
5AGXBB1D4F35I5N
5AGXBB3D4F40C4N
5AGXBB3D4F35C5N
5AGXBB3G4F35C4N
5AGXBB3D4F35C4N
5AGXBB3G4F35C5N
5AGXBB3D4F35I3N
5AGXBB7D6F35C6N
5AGXBB1D4F40C5N
EP2S90F780I4
EP2S90H484C5N
EP2S90F1508C6N
EP2S90F1508C4N
EP2S90F780C5N
EP2S90F1020C3
EP2S90F780C3N
EP1S30B956C7N
EP1S30B956I6N
EP1S30F1020C6N
EP1S30F780C6N
EP1S30F1020C5N
EP1S30F1020I5N
EP1S30B956C6N
EP1S30B1020C6N
EP1S30F1020I7N
EP1S30F780I7N
EP1S30F780C5N
EP1S30F780I5N
EP1S30B956C5N
EP1S30F780C7N
EP1S30F1020I6N
EP3SE110F1152I3N
EP3SE110F780I2N
EP3SE110F780C3N
EP3SE110F780C2N
EP3SE110F780I3
EP3SE110F1152C3N
EP3SE110F1152C4L
EP3SE110F1152I3
EP3SE110F1152C2
EP3SE110F780C2
EP3SE110F780I4
EP3SE110F1152C3
EP3SE110F1152I2N
EP3SE110F1152C2N
5AGTMD3G3F31C4N
5AGTMD3G3F31I5N
5AGTMD3G3F31I4N
5AGTMD3G3F31I3N
5AGTMD3G3F31C3N
EP4CE10E22C8N
XA6SLX25T-3CSG324I
XA6SLX45T-3CSG324Q
XA6SLX75T-3FGG484Q
XCF04SVOG20C
公司:深圳振華航空半導體有限公司
公司熱線:400-8855-170
聯系方式:18926507567 QQ:549400747
公司網址:www.zhjgic.com
公司主營軍工物料和存儲芯片,誠信經營,大量現貨庫存,歡迎您隨時咨詢