RISC-V 手册 v2(一本开源指令集的指南)# RISC-V 手册 一本开源指令集的指南 DAVID PATTERSON, ANDREW WATERMAN 翻译:勾凌睿、黄成、刘志刚 校阅:包云岗 Powered by TCPDF (www.tcpdf.org) Open RISC-V Reference CardBase Integer Instructions: 设计 101 ..... 15 1.4 全书的总览 ..... 19 1.5 结束语 ..... 20 1.6 扩展阅读 ..... 21 第二章 RV32I: RISC-V 基础整数指令集 ..... 23 2.1 导言 ..... 23 2.2 RV32I 指令格式 ..... 23 2.3 RV32I 寄存器 ..... 26 2.4 RV32I 整数计算 ... 2.7 RV32I 无条件跳转 ..... 31 2.8 RV32I 杂项 ..... 31 2.9 使用插入排序比较 RV32I, ARM-32, MIPS-32 和 x86-32 指令集 ..... 32 2.10 结束语 ..... 32 2.11 扩展阅读 ..... 33 第三章 RISC-V 汇编语言 ..... 41 3.1 导言 ..... 41 3 0 码力 | 164 页 | 8.85 MB | 2 年前3
Notes for install Keras on Anaconda30 码力 | 3 页 | 654.13 KB | 1 年前3
MoonBit月兔编程语言 现代编程思想 第十四课 案例:堆栈虚拟机
部分计算:程序优化,根据已知信息,运算进行特化 ◦ 已知源程序与解释器,进行部分运算,获得目标程序 ■ 目标程序 x 输入数据 -> 输出数据 ## 虚拟机 • 一处编写,处处运行 ☐ 定义一个不基于任何平台的指令集 在不同平台上实现解释器 • 两种常见的虚拟机 ☐ 堆栈虚拟机:运算数存储在栈上,数据遵循先进后出原则 ☐ 寄存器虚拟机:运算数存储在寄存器中 ## 寄存器虚拟机 • 例:Lua VM (The local.get $m ## WebAssembly • WebAssembly是什么? ☐ 一个虚拟指令集 可以在浏览器以及其他运行时(Wasmtime WAMR WasmEdge等)中运行 ○ MoonBit的第一个后端 • WebAssembly指令集的子集为例 ## 简单指令集 • 数据 ☐ 只考虑32位有符号整数 ☐ 非零代表 true,零代表 false · 指令 ☐ rest Stack Instruction Stack ## 总结 • 本节课展示了一个堆栈虚拟机 介绍了WebAssebmly指令集的一小部份 ☐ 实现了一个编译器 ☐ 实现了一个解释器 • 挑战 ☐ 在语法解析器中拓展函数定义 ☐ 在指令集中添加提前返回指令(return)0 码力 | 31 页 | 594.38 KB | 2 年前3
RISC-V 开放架构设计之道 1.0.0Bell),微软公司成员,Digital PDP-11 和 VAX-11 指令集架构的设计者 这本方便的小书轻松地总结了 RISC-V 指令集架构所有的基本要素,是学生和从业者的完美参考指南。 ——兰迪·卡茨(Randy Katz),加州大学伯克利分校教授,RAID 存储系统的发明者之一 RISC-V 是学生学习指令集架构和汇编语言编程的不错选择,二者是后续使用高级语言的基础。本书清晰地介绍了 RISC-V,还包含对其演化历史的深刻见解,以及与其他常见架构的对比。以过去的指令集架构为鉴,RISC-V 的设计者能规避一些不必要、不合理的特性,使其易于教学。虽然它很简洁,但它的强大足以在实际应用中广泛使用。很久以前我教过汇编编程的入门课,如果我现在去教这门课,我很乐意用本书作为教材。 ——约翰·马沙(John Mashey),MIPS 指令集架构的设计者之一 本书讲述了 RISC-V 能做什么,及其设计者为何赋予
RISC-V 基础整数指令集(RV32I/64I),特权指令,和可选的RV32/64C。寄存器x1-x31和PC在RV32I中是32位,在RV64I中是64位(x0=0)。RV64I添加了用于处理更宽数据的12条指令。每条16类别 基础数据参考值: RV32X和RV641 0 码力 | 223 页 | 15.31 MB | 2 年前3
简明 X86 汇编语言教程 .....40 5.5存储优化.....42 第六章Linux X86汇编程序设计.....46 6.1编译和链接.....46 6.2基本示例.....46 第七章X86汇编指令集汇总.....47 一.数据传输指令.....47 二、算术运算指令.....49 三、逻辑运算指令.....49 四、串指令.....50 五、程序转移指令.....50 六、伪指令 指令),而你很清楚,那么可以用 DB 机器码的方式强行写下指令。这意味着,你可以超越汇编器的能力撰写汇编程序,然而,直接用机器码编程是几乎肯定是一件费力不讨好的事——汇编器厂商会经常更新它所支持的指令集以适应市场需要,而且,你可以期待你的汇编其能够产生正确的代码,因为机器查表是不会出错的。既然机器能够帮我们做将程序转换为代码这件事情,那么为什么不让它来做呢? 细心的读者不难发现,在程序中我们没有对 一样,它用的是 Linux 中的 80h 中断,相当于 DOS 下的 21h 中断,只是因为 Linux 是 32 位操作系统,所以采用了 eax、ebx 等寄存器。 ## 第七章 X86 汇编指令集汇总 ### 一. 数据传输指令 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据。 ### 1. 通用数据传送指令 1)MOV 传送字或字节. MOV SX 先符号扩展,再传送. MOV0 码力 | 63 页 | 598.28 KB | 2 年前3
Rust在物理引擎研发中的应用 崔汉青2e04d66d38337ed34184790822/p6_2.jpg) # 跨平台 Rust 依靠 LLVM 实现了多目标平台,并可以用语言内建的 target_feature 针对不同的指令集进行处理 # 高表达力  Rust 代码质量高,使用简单,但是没有 AoSoA 类型,跨端确定性难以保证 nalgebra 过于复杂,大量的泛型导致使用不便,代码质量一般 其余开源 crates 完成度不高 ## 写好数学库并不容易 • 充分利用目标平台指令集-大量的针对目标平台的SIMD优化 • 数学计算本质上是类似的 - 大量的相似代码 • Portable SIMD unstable • 影响跨端确定性的因素太多了 ## motphys-math d2e04d66d38337ed34184790822/p11_3.jpg) 那么,用代码生成代码?Web 开发用的模板引擎,也可以用于生成 Rust 代码 ## tera ## 模板生成分指令集优化的 Rust 代码 提供远超 Procedure Macro 的可读性和易用性 #[inline] pub(crate) fn dot(self, rhs: Self) -> { { scalar_t0 码力 | 22 页 | 1.18 MB | 2 年前3
OpenShift Container Platform 4.13 安装partitioning页面。|None或AllNodes.None是默认值。| |Compute|组成计算节点的机器的配置。|MachinePool对象的数组。| |compute.architecture|决定池中机器的指令集合架构。目前,不支持具有不同架构的集群。所有池都必须指定相同的架构。有效值为amd64(默认值)。|字符串| |compute:超线程|是否在计算机上启用或禁用并发多线程或超线程。默认情况下,启用并 grade。| |controlPlane|组成control plane的机器的配置。|MachinePool对象的数组。| |controlPlane.architecture|决定池中机器的指令集合架构。目前,不支持具有不同架构的集群。所有池都必须指定相同的架构。有效值为amd64(默认值)。|字符串| |controlPlane:超线程|是否在control plane机器上启用或禁用并发 partitioning页面。|None或AllNodes.None是默认值。| |Compute|组成计算节点的机器的配置。|MachinePool对象的数组。| |compute.architecture|决定池中机器的指令集合架构。目前,不支持具有不同架构的集群。所有池都必须指定相同的架构。有效值为amd64(默认值)。|字符串| |compute:超线程:|是否在计算机上启用或禁用并发多线程或超线程。默认情况下,启用0 码力 | 4634 页 | 43.96 MB | 2 年前3
05-MoonBit 编程语言(WASM 技术)服务端应用展望以及对Kubernetes生态的影响WASM 特性,基本只当作 ISA(指令集) - 绕过 WASM 低级概念,转而使用语言的高级概念 • 牺牲语言互换性,换取 WASM 下立刻应用高级特性 ## 云原生社区 | 云原生社区 MEETUP ## 关注点分离(1) 运行 后端运行时 高级语言代码 (WASM虚拟机基础的指令集) 调试 信息 WASM 部署文件 内部互联 (将指令集限制在 WASM 1.0 和有限几个扩展的限度)0 码力 | 30 页 | 3.41 MB | 1 年前3
2024 中国开源开发者报告并获得最佳论文奖;ShiDianNao 发表于 ISCA-2015;PuDianNao 发表于 ASPLOS-2015。2016 年以后,陈云霁研究员团队为一大类神经网络加速器设计了一套名为 Cambricon 的指令集,发表于 ISCA-2016,并成立寒武纪公司。 DianNao 家族加速器向全球展示了为 AI 应用设计专用加速器这条技术路线充满前景,此后各界都开始积极投入各类 AI 处理器芯片的设计,例如谷歌于 2024 年 6 月的欧洲峰会上总结了基于 RISC-V 扩展 AI 指令集,有如下几点优势 $ ^{[21]} $ : 1. 单一软件栈。传统 AI 处理器架构中 CPU 一般采用 ARM、GPU 往往采用 Imagination,NPU 自研,因而需要三套软件栈,如果都是采用基于 RISC-V 为基座来扩展 AI 指令集,那么就可以使用一套编译器和运行时(不同编译选项)。 2. 无需考虑 DMA AI 指令架构、基础软件和核心应用技术的研究与标准化。目前,RISC-V AI 向量(Vector)已形成全球统一的标准(RVV1.0 指令集标准),正在推动矩阵(Matrix)和张量(Tensor)标准制定。 若能形成统一的基于 RISC-V 的 AI 扩展指令集,那就有望在软件生态上形成合力,从而形成一个能平衡 CUDA 生态的新的 AI 软件生态(图 6)。道阻且长,行则将至。 












