RISC-V:-mcmodel=medlow vs -mcmodel=medany
-mcmodel=medlow
从编译结果来看,-mcmodel=medlow 使用 LUI 指令取符号地址的高20位。LUI 配合其它包含低12位立即数的指令后,可以访问的地址空间是 -2GiB ~ 2GiB。
对于 RV32,就是 0x00000000 ~ 0xFFFFFFFF,就是说可以访问任意地址了。
然而对于 RV64 而言,能访问的就是 0x0000000000000000 ~ 0x000000007FFFFFFF,以及 0xFFFFFFFF800000000 ~ 0xFFFFFFFFFFFFFFFF 这两个区域,前一个区域即 +2GiB 的地址空间,后一个区域即 -2GiB 的地址空间。其它地址空间就访问不到了。
-mcmodel=medany
从编译结果来看,-mcmodel=medlow 使用 AUIPC 指令取符号地址的高20位。AUIPC 配合其它包含低12位立即数的指令后,可以访问当前 PC 的前后2GiB (PC - 2GiB ~ PC + 2GiB)的地址空间。
对于 RV32,能访问的还是 0x00000000 ~ 0xFFFFFFFF 这个区间,也是访问任意地址。
然而对于RV64,取决于当前 PC 值,能访问到是 PC - 2GiB 到 PC + 2GiB 这个地址空间。假设当前 PC 是 0x1000000000000000,那么能访问的地址范围是 0x0000000080000000 ~ 0x100000007FFFFFFF。假设当前 PC 是 0xA000000000000000,那么能访问的地址范围是0x9000000080000000~0xA00000007FFFFFFF。
2GiB
但为什么要将符号限制在 2GiB 空间范围呢?因为 2GiB 地址空间内任意两个地址的偏移在 -2GiB ~ +2GiB 之间,如果是 4GiB 地址空间,那么任意两个地址的偏移在 -4GiB ~ +4GiB 之间。LUI/AUIPC 只能做到 -2GiB ~ +2GiB,做不到 -4GiB ~ +4GiB。
这个限制是针对 RV64,RV32 可以使用全部的 4GiB 地址空间 。
总结
-mcmodel 对 RV32 没什么影响,对 RV64 有影响。不指定 -mcmodel 的情况下,默认是 medlow。对于 RV32,不用刻意指定 -mcmodel。对 RV32,无论是 -mcmodel=medlow 还是 -mcmodel=medany 都能访问全部的 4GiB 地址空间。
RISC-V:-mcmodel=medlow vs -mcmodel=medany相关推荐
- RISC V (RV32+RV64) 架构 整体介绍
文章目录 riscv 市场 芯片介绍 软件介绍 开发板介绍 PC介绍 riscv 架构 编程模型(指令集/寄存器/ABI/SBI) 运行状态 指令集 寄存器 riscv32和riscv64两者的区别 ...
- 计组学习笔记2(RISC v版)
指令集解释 (规定:R[r]表示通用寄存器r的内容,M[addr]表示存储单元addr的内容,SEXT[imm]表示对imm进行符号扩展,ZEXT[imm]表示对imm进行零扩展) 整数运算类 -U型 ...
- 投影幕左下显示“不支持H:67.41kHz V:59.90Hz” 要显示帮助,按下?按钮
概述 将投影仪插入您的电脑后,按住win+p ,之后出现 我们选择复制,但是无法显示出现 "投影幕左下显示"不支持H:67.41kHz V:59.90Hz" 要显示帮助, ...
- 家用电脑变超级计算机,TITAN V:让PC“变身”成超级计算机
在美国加州长滩举行的NIPS大会上(Neural Information Processing Systems,神经信息处理系统),NVIDIA推出面向PC.由世界最强大的GPU架构NVIDIA Vo ...
- 足球大v:请闭上你们无知的嘴
德国输了,韩国赢了.我既不是德国的球迷,更不是韩国的,对于这样的结果,我不悲也不喜.但我却要对以大V"高xx"为代表的假球论.阴谋论.剧本论者们,大声吼一句:"闭上你们无 ...
- 安装Ubuntu RISC V toolchain失败(网速、git配置原因)
git获取大容量工程出错:RPC failed: curl GnuTLS recv error : Decryption has failed. error: RPC failed; curl 56 ...
- 从技术博主到知乎大V:资深Python工程师的12年进阶路
http://www.jiemian.com/article/1378119.html 在中国,接触过 Java 和 Python 两种语言的人往往有一种先入为主的判断:前者适合大企业,后者适合早期企 ...
- 塞尔达:旷野之息个人对比上古卷轴V:天际
上古卷轴5是我之前玩过最优秀的作品.玩塞尔达的时候就有跟上古卷轴5比对,真的都是神作.两个游戏的自由度都是真的高. 主线剧情上,老滚5印象不深了,当时就知道战斗,只记住了开头砍头现场,还有奥杜因这个龙 ...
- 海外推特Twitter大V: KOL网红营销怎样深耕市场-大舍传媒
国外推特Twitter KOL网红营销怎样深耕市场-大舍传媒 随着我国互联网红利的见顶,互联网项目挑选出海和低线城市变成发展趋势.企业转为国外社会化营销已经不再是哪些新鲜事儿. 但是对很多企业来讲,国 ...
最新文章
- Spark源码分析之九:内存管理模型
- python 三步问题
- oracle 11gogg,【OGG】Oracle GoldenGate 11g (二) GoldenGate 11g 单向同步配置 上
- Java线程volatile(二)
- 为什么移动硬盘不建议插在台式机前置USB接口上?
- 最大似然估计、MAP、贝叶斯估计
- Skype for business企业语音配置之二创建拨号计划
- 程序员级别,你到哪一级?
- 大教堂与集市(The Cathedral and the Bazaar)读书笔记
- 微软云加速器助edoc2入云腾飞
- mysql 定时备份脚本
- 最大的PHP开源网店系统ECShop简介
- 景点评论爬虫之微博爬虫和携程爬虫
- 最短路径-弗洛伊德算法的java实现
- 数据结构 找树根和孩子(树)
- h5页面 判断网页是否由微信或qq内置浏览器打开
- 抖音seo源码搭建 抖音矩阵系统具体功能展示?
- 内网时间同步,ntp与ntpdate区别,与ntp服务器搭建
- 支付项目:9、购物车模块
- 什么是robots.txt文件?