RISC-V VV与玄铁C910:指令对比与详解
需积分: 50 31 浏览量
更新于2024-07-15
收藏 2.56MB PDF 举报
该文档是对2020年4月15日关于玄铁C910与RVV(RISC-V Vector Extension)指令集的对比总结,由PLCT实验室的王鹏实习生撰写。主要探讨了两者的差异和特点,特别是针对C910中vector指令与RVV的VAMO(Vector Atomic Memory Operations)指令的比较。
在C910的矢量指令集中,VAMO指令如VAMOADDD、VAMOADDW和VAMOADDQ,其指令格式定义在RISCVInstrInfoV.td中。这些指令在C910的Inst编码中有所不同,例如,VAMOADDD的Inst(14-12)值为0b111,而VAMOADDW的Inst(14-12)为0b110,VAMOADDQ的Inst(14-12)为0b000。RISCVInstrInfoV.td还区分了_wd_m、_wd_um、_m和_um四种情况,反映了不同的回写和掩码行为。
特别值得注意的是,VAMO指令中的VALU_AMO_E在C910中与矢量原子双字加法指令重合,表明C910在处理这些原子操作时与RVV有相似但可能不完全一致的功能。文档还提到了矢量运算的扩展指令,如VWSMACC系列指令,用于有符号、无符号乘累加运算,并支持饱和扩展和取反操作。这些指令在RVV规格中定义,但具体实现可能因C910的定制化而有所变化。
这份文档通过实例和代码截图深入剖析了C910和RVV在指令设计上的异同,对于理解这两种指令集在实际应用中的特性和优化策略具有参考价值。对于从事RISC-V架构或硬件开发的人来说,理解这些细节至关重要,因为它们直接影响到程序的性能和可移植性。
2022-08-03 上传
2022-08-03 上传
2021-05-26 上传
2022-08-03 上传
2020-12-16 上传
2023-03-16 上传
2021-10-07 上传
ppcust
- 粉丝: 38
- 资源: 725
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍