RISC-V向量指令初探

2024-01-16 08:20
文章标签 risc 初探 向量指令

本文主要是介绍RISC-V向量指令初探,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

**

写在前面

**

大家好,我是司晔,从毕业以来工作一段时间了,一直想把公众号做起来也没挤出时间来搞,时间已经很久了,我想是时候动手了。首先说明的是在这里主要分享关于IC开发的一些知识和见解,小弟才疏学浅,本号对于小白以及学生党帮助更多一些,对于经验丰富的前辈和资深工程师们可能只是小秀。总之,欢迎各位好友前辈指教。好了,话不多说进入正题。

前 言

之前,在我硕士期间,主修的是FPGA方向,由于各个原因转到了IC方向,大同小异,个人认为主要是verilog编码熟悉精通就好,其他的就是工具和复杂度问题了,大家都知道,由于国内芯片问题,IC行业掀起了很大的浪潮,因此IC行业近几年还是比较热门的。其中对CPU开发有大家都看齐的一个方向,那就是它的架构,现在国际上CPU的架构很多,但大多都需要购买版权才可以使用,如ARM,X86。直到2010年,美国加州大学伯克利分校开发了RISC-V指令集架构,这是一款完全开源的架构,任何人都可以完全免费地使用它而不需要任何费用和版权问题。

在这里插入图片描述
在这里插入图片描述
但RISC-V诞生后,并不被很多人所知晓,直到2020年左右才在国内兴起,随之有很多芯片公司为它而建,又随着国内芯片短缺问题,萌芽了太多的芯片开发初创公司。

RISC-V,即精简指令集处理器,是与X86这些CISC,即复杂指令集处理器,相对的。V是罗马数字,也就是第五代RISC了,它的到来也注定是一个时代的到来了。

对RISC-V指令集,官方主要给出了两个描述文档,一个是非特权文档,一个是特权文档,这两种说明有本质的区别。非特权指令主要是用于通用计算,站在操作系统的角度来看,可以理解为用户态(低权限模式)能够运行的指令。而特权指令,是为了能够运行像 Linux/Windows 现代操作系统而设定的。现代操作系统主要强调对资源的管控,这就需要硬件上提供额外的权限管理机制,从而能够限制普通应用代码的行为。在这里主要以非特权指令为主介绍,后面有时间也会提特权指令,慢慢来。

初识RISC-V

RISC-V指令集采用模块化的方式进行组织设计,由基本指令集和扩展指令集组成,每个模块用一个英文字母表示。在RISC-V中,有很多的指令集类型,如下:

在这里插入图片描述
在这里插入图片描述
其中,用**“G”表示特定组合“I”,“M”,“A”,“F”,“D”**。如用RV32G表示RV32IMAFD。

RV32I,定义了32个通用寄存器x0~x31,各为32bit宽度,其中x0为固定值,恒为0,其余为读/写寄存器。RV32I也是必须实现的指令。

基本的指令集架构定义比较简单,实现也相对容易些,都是些老生常谈的东西了,今后我们主要对"V"扩展,即向量指令集进行研究和实现,"V"扩展的标准和实现相对复杂些,会涉及到向量整型,向量定点、向量浮点、向量掩码、向量缩减等指令;还会涉及一些标准,如IEEE754标准,后面也会分章节讲到。当你把向量扩展的指令实现的很好的时候,其他基本指令也基本没啥问题了。

**

总结

**

RISC-V在国内的热度还在增长,对于IC开发,对RISC-V的研究和实现是非常必要的,从本章开始,我就RISC-V的向量扩展以及IEEE754的各部分进行讲解,并一步一步进行实现,希望感兴趣的好友前辈多多指教。

那么好,时间有限,今天只是初探,我们后续再见。

这篇关于RISC-V向量指令初探的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/611897

相关文章

RISC-V (十二)系统调用

系统模式:用户态和内核态         当前的代码都是实现在machine模式下。 系统模式的切换         epc寄存器的值存放的是ecall指本身的地址 。 用ecall指令 系统调用的执行流程         mret这条指令会利用status的mpp值恢复到之前的特权级别。  蓝色的线表示涉及到权限切换。  系统调用的传参

RISC-V (十)任务同步和锁

并发与同步 并发:指多个控制流同时执行。         多处理器多任务。一般在多处理器架构下内存是共享的。           单处理器多任务,通过调度器,一会调度这个任务,一会调度下个任务。  共享一个处                                理器一个内存。                 单处理器任务+中断: 同步: 是为了保证在并发执行的环境中各个控制流可

Banana Pi BPI-F3 进迭时空RISC-V架构下,AI融合算力及其软件栈实践

RISC-V架构下,AI融合算力及其软件栈实践 面对未来大模型(LLM)、AIGC等智能化浪潮的挑战,进迭时空在RISC-V方向全面布局,通过精心设计的RISC-V DSA架构以及软硬一体的优化策略,将全力为未来打造高效且易用的AI算力解决方案。目前,进迭时空已经取得了显著的进展,成功推出了第一个版本的智算核(带AI融合算力的智算CPU)以及配套的AI软件栈。 软件栈简介 AI算法部署旨

Java注解初探

什么是注解 注解(Annotation)是从JDK5开始引入的一个概念,其实就是代码里的一种特殊标记。这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过注解开发人员可以在不改变原有代码和逻辑的情况下在源代码中嵌入补充信息。有了注解,就可以减少配置文件,现在越来越多的框架已经大量使用注解,而减少了XML配置文件的使用,尤其是Spring,已经将注解玩到了极致。 注解与XML配置各有

IOS Core Data框架初探

在IOS系统中已经集成了关系型数据库SqLite3数据库,但是由于在OC中直接操作C语言风格的SqLite3相对繁琐,因此Apple贴心的提供了一个ORM(Object Relational Mapping对象关系映射)框架——Core Data让我们在程序中以面向对象的方式,操作数据库。Core Data框架提供的功能相当强大,属于入门容易精通难的东西,值得我们用心专研。现在,就先记录一下我对该

Scala界面Panel、Layout初探

示例代码: package com.dt.scala.guiimport scala.swing.SimpleSwingApplicationimport scala.swing.MainFrameimport scala.swing.Buttonimport scala.swing.Labelimport scala.swing.Orientationimport scal

RISC-V (八)定时器中断

​​​​​​​riscv中断的分类 Core local INTerrupt: CLINT CLINT编程接口-寄存器         mtime寄存器,由中断触发的时钟,按照固定频率计数。

Java使用Redis初探

Redis的相关概念不做介绍了,大家也可以先了解下Memcached,然后比较下二者的区别,就会有个整体的印象。      服务器端通常选择Linux , Redis对于linux是官方支持的,使用资料很多,需要下载相关服务器端程序  ,然后解压安装。因为能力和条件有限,我只简单介绍下windows上如何安装和使用,有兴趣的可以娱乐一下。       服务器端程序下载地址:htt

SQL查询优化器初探

项目中期,特意借了一本SQL优化的书,现将优化器的知识点总结如下: 查询优化器是关系型数据库管理系统的核心之一,决定对特定的查询使用哪些索引、哪些关联算法,从而使其高效运行。查询优化器是SQL Server针对用户的请求进行内部优化,生成执行计划并传输给存储引擎来操作数据,最终返回结果给用户的组件。 查询过程 T-SQL->语法分析->绑定->查询优化->执行查询->返回结果 (1)分析和

初探swift语言的学习笔记四-2(对上一节有些遗留进行处理)

作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/30314359 转载请注明出处 如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢! 在上一节中有些问题还没有弄清,在这里自己写了一下,做了一下验证,并希望能给读者有所帮助。