RISC-V 手册 v2(一本开源指令集的指南)
1 2018 RISC-V 手册 一本开源指令集的指南 DAVID PATTERSON, ANDREW WATERMAN 翻译:勾凌睿、黄成、刘志刚 校阅:包云岗 1 参考卡 2 3 目录 参考卡 ................................................ ....................................................................... 21 第二章 RV32I:RISC-V 基础整数指令集 ......................................................................................23 2.1 导言 ................................................. 31 2.9 使用插入排序比较 RV32I,ARM-32,MIPS-32 和 x86-32 指令集 ........................... 32 2.10 结束语 ........................................................0 码力 | 164 页 | 8.85 MB | 1 年前3RISC-V 开放架构设计之道 1.0.0
Bell),微软公司成员,Digital PDP-11 和 VAX-11 指令集架构的设计者 这本方便的小书轻松地总结了 RISC-V 指令集架构所有的基本要素,是学生和从 业者的完美参考指南。 ——兰迪·卡茨(Randy Katz),加州大学伯克利分校教授,RAID 存储系统的 发明者之一 RISC-V 是学生学习指令集架构和汇编语言编程的不错选择,二者是后续使用高 级语言的基础。本书清晰地介绍了 RISC-V,还包含对其演化历史的深刻见解,以 及与其他常见架构的对比。以过去的指令集架构为鉴,RISC-V 的设计者能规避 一些不必要、不合理的特性,使其易于教学。虽然它很简洁,但它的强大足以在实 际应用中广泛使用。很久以前我教过汇编编程的入门课,如果我现在去教这门课, 我很乐意用本书作为教材。 ——约翰·马沙(John Mashey),MIPS 指令集架构的设计者之一 本书讲述了 RISC-V 能做什么,及其设计者为何赋予 rs2,imm(rs1) SD rs2,imm(rs1) 开源 参考卡 ① 基础整数指令集:RV32I 和RV64I RV 特权指令 +RV64I SLLW rd,rs1,rs2 SLLIW rd,rs1,shamt SRLW rd,rs1,rs2 SRLIW rd,rs1,shamt0 码力 | 223 页 | 15.31 MB | 1 年前3简明 X86 汇编语言教程
...................................................................................46 第七章 X86 汇编指令集汇总...............................................................................................47 指令),而你很清楚,那么可以用 DB 机器码的方式强行写下指 令。这意味着,你可以超越汇编器的能力撰写汇编程序,然而,直接用机器码编程是几乎肯 定是一件费力不讨好的事——汇编器厂商会经常更新它所支持的指令集以适应市场需要,而 且,你可以期待你的汇编其能够产生正确的代码,因为机器查表是不会出错的。既然机器能 够帮我们做将程序转换为代码这件事情,那么为什么不让它来做呢? 细心的读者不难发现,在程序中我们没有对 一样,它用的是 Linux 中的 80h 中断,相当于 DOS 下的 21h 中断,只是因为 Linux 是 32 位操作系统,所以采用了 eax、ebx 等寄存器。 第七章 X86 汇编指令集汇总 一.数据传输指令 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. 1)MOV 传送字或字节. MOV SX 先符号扩展,再传送. MOV0 码力 | 63 页 | 598.28 KB | 1 年前3MoonBit月兔编程语言 现代编程思想 第十四课 案例:堆栈虚拟机
部分计算:程序优化,根据已知信息,运算进⾏特化 已知源程序与解释器,进⾏部分运算,获得⽬标程序 ⽬标程序 x 输⼊数据 -> 输出数据 2 虚拟机 ⼀处编写,处处运⾏ 定义⼀个不基于任何平台的指令集 在不同平台上实现解释器 两种常⻅的虚拟机 堆栈虚拟机:运算数存储在栈上,数据遵循先进后出原则 寄存器虚拟机:运算数存储在寄存器中 3 寄存器虚拟机 例:Lua VM (The Implementation ;; m 5 WebAssembly WebAssembly是什么? ⼀个虚拟指令集 可以在浏览器以及其他运⾏时(Wasmtime WAMR WasmEdge等)中运⾏ MoonBit的第⼀个后端 WebAssembly指令集的⼦集为例 6 简单指令集 数据 只考虑32位有符号整数 ⾮零代表 true ,零代表 false 指令 数据操作: const tail params/locals x + y x + y ... 30 总结 本节课展示了⼀个堆栈虚拟机 介绍了WebAssebmly指令集的⼀⼩部份 实现了⼀个编译器 实现了⼀个解释器 挑战 在语法解析器中拓展函数定义 在指令集中添加提前返回指令( return ) 310 码力 | 31 页 | 594.38 KB | 1 年前305-MoonBit 编程语言(WASM 技术)服务端应用展望以及对Kubernetes生态的影响
WASM 特性,基本只当作 ISA(指令集) • 绕过 WASM 低级概念,转而使用语言的高级概念 • 牺牲语言互换性,换取 WASM 下立刻应用高级特性 关注点分离(1) 高级语言代码 (高级语言层面提供 内部互联与模块化) WASM 部署文件 (将指令集限制在 WASM 1.0 和有限几 个扩展的限度) 后端运行时 (WASM虚拟机 基础的指令集) 构建 内部 互联 运行0 码力 | 30 页 | 3.41 MB | 9 月前3Rust在物理引擎研发中的应用 崔汉青
在不损耗性能的情况下,其优秀的语 法设计保证了语言的强大表达力:用更少 的代码写更多的功能 # 高表达力 # 安全 Rust 依靠 LLVM 实现了多目标平台,并可 以用语言内建的 target_feature 针对不同 的指令集进行处理 # 跨平台 Cargo 真的比 cmake 好太多了 # 依赖管理 # 无惧并发 Rust 在语法层面极大程度保证了内存安全 和并发安全 语言内建的 async/await,还有优秀的 AoSoA类型,跨端确定性难以保证 nalgebra 过于复杂,大量的泛型导致使用 不便,代码质量一般 其余开源 crates 完成度不高 Rust 开源数学库的痛点 写好数学库并不容易 • 充分利用目标平台指令集 – 大量的针对目标平台的SIMD优化 • 数学计算本质上是类似的 – 大量的相似代码 • Portable SIMD unstable • 影响跨端确定性的因素太多了 motphys-math 表达力不足 不容易做精细性能优化 Procedure Macro 过于复杂 结果不可见 那么,用代码生成代码?Web 开发用的模板引擎, 也可以用于生成 Rust 代码 tera 模板生成分指令集优化的 Rust 代码 提供远超 Procedure Macro 的可读性和易用性 mathbench • 已有开源数学 crates 的 benchmark • motphys-math benchmark0 码力 | 22 页 | 1.18 MB | 1 年前3OpenShift Container Platform 4.8 安装
字符串 compute 组成计算节点的机器的配置。 MachinePool 对象的数组。详情请查 看以下"Machine-pool"表。 compute.architectur e 决定池中机器的指令集合架构。目前不 支持异构集群,因此所有池都必须指定 相同的架构。有效值为 amd64 (默认 值)。 字符串 compute.hyperthrea ding 是否在计算机器上启用或禁用并发多线 control plane 的机器的配置。 MachinePool 对象的数组。详情请查 看以下"Machine-pool"表。 controlPlane.archite cture 决定池中机器的指令集合架构。目前不 支持异构集群,因此所有池都必须指定 相同的架构。有效值为 amd64 (默认 值)。 字符串 第 第 4 章 章 在 在 AWS 上安装 上安装 71 controlPlane 95 compute 组成计算节点的机器的配置。 MachinePool 对象的数组。详情请查 看以下"Machine-pool"表。 compute.architectur e 决定池中机器的指令集合架构。目前不 支持异构集群,因此所有池都必须指定 相同的架构。有效值为 amd64 (默认 值)。 字符串 compute.hyperthrea ding 是否在计算机器上启用或禁用并发多线0 码力 | 2586 页 | 27.37 MB | 1 年前3OpenShift Container Platform 4.10 安装
Preview)功能, 目前还不被红帽支持。 true Compute 组成计算节点的机器的配置。 MachinePool 对象的数组。 compute.architectur e 决定池中机器的指令集合架构。目前, 不支持具有不同架构的集群。所有池都 必须指定相同的架构。有效值为 amd64 (默认值)。 字符串 networking: machineNetwork: - cidr: 的正整数。默认值为 3。 controlPlane 组成 control plane 的机器的配置。 MachinePool 对象的数组。 controlPlane.archite cture 决定池中机器的指令集合架构。目前, 不支持具有不同架构的集群。所有池都 必须指定相同的架构。有效值为 amd64 (默认值)。 字符串 controlPlane.hypert hreading 是否在 control Preview)功能, 目前还不被红帽支持。 true Compute 组成计算节点的机器的配置。 MachinePool 对象的数组。 compute.architectur e 决定池中机器的指令集合架构。目前, 不支持具有不同架构的集群。所有池都 必须指定相同的架构。有效值为 amd64 (默认值)。 字符串 第 第 4 章 章 在 在 ALIBABA 上安装 上安装 115 compute0 码力 | 3142 页 | 33.42 MB | 1 年前3OpenShift Container Platform 4.7 安装
字符串 compute 组成计算节点的机器的配置。 MachinePool 对象的数组。详情请查 看以下"Machine-pool"表。 compute.architecture 决定池中机器的指令集合架构。目前不 支持异构集群,因此所有池都必须指定 相同的架构。有效值为 amd64 (默认 值)。 字符串 compute.hyperthread ing 是否在计算机器上启用或禁用并发多线 control plane 的机器的配置。 MachinePool 对象的数组。详情请查 看以下"Machine-pool"表。 controlPlane.architec ture 决定池中机器的指令集合架构。目前不 支持异构集群,因此所有池都必须指定 相同的架构。有效值为 amd64 (默认 值)。 字符串 controlPlane.hyperth reading 是否在 control plane machineNetwork: - cidr: 10.0.0.0/16 第 第 4 章 章 在 在 AWS 上安装 上安装 133 compute.architecture 决定池中机器的指令集合架构。目前不 支持异构集群,因此所有池都必须指定 相同的架构。有效值为 amd64 (默认 值)。 字符串 compute.hyperthread ing 是否在计算机器上启用或禁用并发多线0 码力 | 2276 页 | 23.68 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 04 从汇编角度看编译器优化
? 因为他不敢保证运行这个程序的电脑支持 AVX 指令集…… 两个 int32 可以合并为一个 int64 四个 int32 可以合并为一个 __m128 八个 int32 可以合并为一个 __m256 让编译器自动检测当前硬件支持的指令集 -march=native 让编译器自动判断当前硬件支 持的指令。老师的电脑支持 AVX 指令集,所 以他用了。不过注意这样编译出的程序,可能 放到别人不支持0 码力 | 108 页 | 9.47 MB | 1 年前3
共 103 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11