![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RISC-V
文章平均质量分 91
饼干饼干圆又圆
这个作者很懒,什么都没留下…
展开
-
RISC-V学习基础(六)
RISC-V具有宽松的内存一致性模型(relaxed memory consistency model),因此其它线程看到的内存访问可以是乱序的。以前的ISA为了缩短代码长度而显著扩展了指令和指令格式的数量,比如添加了一些只有两个操作数的指令,减小立即数域等。,**如果它们相等,将第三个寄存器中的值和内存中的值进行交换。RV32C的立即数指令比较短,因为它只能确定一个寄存器和一个小的立即数。在执行之前用一个解码器将所有的16位指令转换为等价的32位指令。用lr/sc实现内存字M[a0]的比较-交换操作。原创 2023-06-06 07:00:21 · 1102 阅读 · 0 评论 -
RISC-V学习基础(五)
动态链接程序的加载稍微有些复杂,操作系统不直接运行程序,而是运行一个动态链接器,由动态链接器开始运行程序,并负责处理所有外部函数的第一次调用,把它们加载到内存中,并且修改程序,填入正确的调用地址。汇编程序的开头是一些汇编指示符(assemble directives),它们是汇编器的命令,具有告诉汇编器代码和数据的位置、指定程序中使用的特定代码和数据常量等作用。图3.5为经典的C程序Hello World,编译器产生的汇编指令如图3.6,其中使用了图3.2的调用规范和图3.3、3.4的伪指令。原创 2022-10-20 20:49:05 · 7585 阅读 · 0 评论 -
RISC-V学习基础(四)
ADD指令是R-type类型(寄存器类型,操作数有三个,都是寄存器,最终存放结果的寄存器放在第一个参数)add rd,rs,rs2:将RS1里取出一个值,再从RS2里取出一个值,两个值相加,放进RD中。例如:GNU编译出来的文件都是ELF格式的。有符号数在计算中的表示:二进制补码。原创 2022-10-19 20:04:53 · 3051 阅读 · 0 评论 -
RISC-V学习基础(三)
一种计算机系统模拟软件,在GNU/Linux平台上使用广泛。支持多种体系结构,例如RISC-V 32 64等-march:编译生成的程序可以运行在RISC-V 32位系统上并且支持整数乘法原子性指令集。-mabi=ilp:一个长整数支持多少位生成出来的可执行文件不能在linux上直接执行应该把此软件加载到RISCV板子上去运行或者使用模拟器运行上述是在user mode下运行,只模拟到了Application层。开发操作系统时应该是system mode。每条规则的组成。原创 2022-10-17 17:50:44 · 1416 阅读 · 0 评论 -
RISC-V学习基础(二)
ISA:Instruction Set Architecture指令集架构。是底层硬件电路面向上层软件程序提供的一层接口规范寄存器指令寻址模式异常或者中断的处理方式…ISA为操作系统提供一层抽象,制定了规则和约束,让编程者不用操心具体的电路结构。CISC复杂指令集:针对特定的功能实现特定的指令,导致指令数目比较多,但生成的程序长度较短。RISC精简指令集:只定义常用指令,对复杂的功能采用常用指令组合实现。原创 2022-10-17 08:00:43 · 1359 阅读 · 0 评论 -
RISC-V学习(一)
RISC-V诞生于近十年,而大多数指令集诞生于20世纪70年代,并且它是一个开源的指令级架构。与所有的旧架构不同,它的未来不受任何单一公司的浮沉或一时兴起的决定的影响。它属于一个开放的,非盈利性质的基金会。RISC-V基金会的目标是保持RISC-V的稳定性,仅仅出于技术原因缓慢而谨慎地发展它,并试图让它之于硬件如同Linux之于操作系统一样受欢迎。原创 2022-10-15 09:36:09 · 1970 阅读 · 0 评论