终于有人把RISC-V讲明白了(4)
RISC-V架构采用松散存储器模型(Relaxed Memory Model),松散存储器模型对于访问不同******的存储器读写指令的执行顺序不作要求,除非使用明确的存储器屏障(Fence)指令加以屏蔽。
这些选择都清楚地反映了RISC-V架构力图简化基本指令集,从而简化硬件设计的哲学。RISC-V架构如此定义非常合理,能够达到能屈能伸的效果。譬如:对于低功耗的简单CPU,可以使用非常简单的硬件电路即可完成设计;而对于追求高性能的超标量处理器则可以通过复杂设计的动态硬件调度能力来提高性能。
RISC-V架构有两条无条件跳转指令(Unconditional Jump),jal与jalr指令。跳转链接(Jump and Link)指令jal可用于进行子程序调用,同时将子程序返回******存在链接寄存器(Link Register:由某一个通用整数寄存器担任)中。跳转链接寄存器(Jump and Link-Register)指令jalr指令能够用于子程序返回指令,通过将jal指令(跳转进入子程序)保存的链接寄存器用于jalr指令的基******寄存器,则可以从子程序返回。
RISC-V架构有6条带条件跳转指令(Conditional Branch),这种带条件的跳转指令跟普通的运算指令一样直接使用2个整数操作数,然后对其进行比较,如果比较的条件满足时,则进行跳转。因此,此类指令将比较与跳转两个操作放到了一条指令里完成。
作为比较,很多的其他RISC架构的处理器需要使用两条独立的指令。第一条指令先使用比较指令,比较的结果被保存到状态寄存器之中;第二条指令使用跳转指令,判断前一条指令保存在状态寄存器当中的比较结果为真时则进行跳转。相比而言RISC-V的这种带条件跳转指令不仅减少了指令的条数,同时硬件设计上更加简单。
对于没有配备硬件分支预测器的低端CPU,为了保证其性能,RISC-V的架构明确要求其采用默认的静态分支预测机制,即:如果是向后跳转的条件跳转指令,则预测为“跳”;如果是向前跳转的条件跳转指令,则预测为“不跳”,并且RISC-V架构要求编译器也按照这种默认的静态分支预测机制来编译生成汇编代码,从而让低端的CPU也能得到不错的性能。
为了使硬件设计尽量简单,RISC-V架构特地定义了所有的带条件跳转指令跳转目标的偏移量(相对于当前指令的******)都是有符号数,并且其符号位被编码在固定的位置。因此,这种静态预测机制在硬件上非常容易实现,硬件译码器可以轻松的找到这个固定的位置,并判断其是0还是1来判断其是正数还是负数,如果是负数则表示跳转的目标******为当前******减去偏移量,也就是向后跳转,则预测为“跳”。当然对于配备有硬件分支预测器的高端CPU,则可以采用高级的动态分支预测机制来保证性能。
进入子函数之后需要用存储器写(Store)指令来将当前的上下文(通用寄存器等的值)保存到系统存储器的堆栈区内,这个过程通常称为“保存现场”。
在退出子程序之时,需要用存储器读(Load)指令来将之前保存的上下文(通用寄存器等的值)从系统存储器的堆栈区读出来,这个过程通常称为“恢复现场”。
“保存现场”和“恢复现场”的过程通常由编译器编译生成的指令来完成,使用高层语言(譬如C或者C++)开发的开发者对此可以不用太关心。高层语言的程序中直接写上一个子函数调用即可,但是这个底层发生的“保存现场”和“恢复现场”的过程却是实实在在地发生着(可以从编译出的汇编语言里面看到那些“保存现场”和“恢复现场”的汇编指令),并且还需要消耗若干的CPU执行时间。
为了加速这个“保存现场”和“恢复现场”的过程,有的RISC架构发明了一次写多个寄存器到存储器中(Store Multiple),或者一次从存储器中读多个寄存器出来(Load Multiple)的指令,此类指令的好处是一条指令就可以完成很多事情,从而减少汇编指令的代码量,节省代码的空间大小。但是此种“Load Multiple”和“Store Multiple”的弊端是会让CPU的硬件设计变得复杂,增加硬件的开销,也可能损伤时序使得CPU的主频无法提高,笔者在曾经设计此类处理器时便深受其苦。
相关文章:
- [体育头条]有关异界修真之巅峰到底是什么
- [体育头条]小破孩表情包又是什么梗?
- [体育头条]关于台风凡亚比网友关心什么?
- [体育头条]有关魔兽世界前锋胸甲消息可靠
- [体育头条]有关重生之掌控世界怎么回事?
- [体育头条]关于御龙在天巴士具体是什么原
- [体育头条]有关老唐造车记怎么上了热搜?
- [体育头条]你就是我的生命又是个什么梗?
- [体育头条]鸟笼里的暹罗猫到底是什么情况
- [体育头条]主持人胡晨具体是什么原因?
- [体育头条]白皮松育苗到底是什么情况?
- [体育头条]有关天涯赤子心剧情介绍又是什
- [体育头条]具人同行湖南站到底是什么原因
- [体育头条]种瓜南山下网友如何看?
- [体育头条]有关这支烟灭了以后到底是什么
- [体育头条]偷星九月天舞台剧是怎么回事?
- [体育头条]汤臣倍健左旋肉碱怎么样究竟怎
- [体育头条]快打旋风3出招究竟怎么回事?
- [体育头条]于丹被轰下台究竟什么情况?
- [体育头条]铃木美恵子网友是怎么说的!
- 值得但非首选]雷克萨斯NX200t两年详细使用感受
- 面瘫将军求子记具体内容是什么?
- 青海小西牛生物乳业股份有限公司
- 湖北奥运冠军谌龙喜获赛季首冠 感叹坚持终于有了回报
- 加盟商百万欠款难追回 鱼乐贝贝“加盟圈套”何时终结
- 易方达天天理财货币A
- 改装档案BMW R nine T真是怎么改都好看!看看印度改出
- 斧头男大砍麦当劳事后操作更令人脊背发凉
- 唇唇欲动无影有踪是真的吗?
- 有关五行带土的字的底层逻辑是什么?
- 4080显卡需要多少w电源笔记本什么时候出?
- b是什么车标
- ROG6天玑版成安卓旗舰手机性能第一?真实用户评价亮了
- 1~8月南通全市工业投资稳健增长 亿元以上工业项目产出
- 【雄关善治·五治融合】“五治融合”绘就和谐画卷——
- 华为美国子公司计划大规模裁员 中国雇员可回国并留在
- 淘宝分期付款(淘宝上如何分
- 第七届中国-亚欧博览会透露哪些积极信号?
- 关于魔少的逃跑俏新娘又是什么梗?
- 美格智能技术股份有限公司第二届监事会第十次会议决议
- 多多自走棋进入NEST电竞项目 已经跟V社彻底分家了
- 微信悄悄测试新功能:发语音可转文字网友直呼太方便!
- 女儿第一次来“大姨妈”妈妈一定要跟她说三句话关系她
- 小学数学趣味100题暑假在家也能边玩边学习(含答案)
- 搞笑段子:第一次去男朋友家没想到来了一大家子亲戚…
- 【安雷ABO】(R)抗拒从严【一发完】
- 更快更好更便捷
- 威海市统一路小学看看网友是如何评论的!
- 北理工:2019增设三大专业 继续推行0调剂 0退档
- 华怡:MVR蒸发器、三效多效蒸发器、升降膜蒸发器厂家
- 有关王若伊释小龙这是不是真相?
- 中建八局二公司与德州市建筑行业企业举行战略合作协议
- 第二届世界互联网大会
- 搞笑GIF图:看了一会儿才明白是啥
- 南京本地宝-爱上本地宝生活会更好
- 战舰少女r公式大全
- 中华人民共和国国防部
- 郭晨冬谈被解约的黑龙何以UFC一战成名但说黑人长相蠢
- 95开头的8位数骚扰电话越来越多 到底什么来头?
- 关于我要上春晚20110717背后的逻辑是什么?