Base 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 0 码力 |
3 页 |
654.13 KB
| 1 年前 3 部分计算:程序优化,根据已知信息,运算进行特化
◦ 已知源程序与解释器,进行部分运算,获得目标程序
■ 目标程序 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 Bell),微软公司成员,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 0 码力 |
223 页 |
15.31 MB
| 2 年前 3 OpenShift Container Platform,您可以在以下平台上安装它:
- Alibaba Cloud
- 64位x86实例上的Amazon Web Services(AWS)
- 64位ARM实例上的Amazon Web Services(AWS)
- 64位x86实例上的Microsoft Azure
- 64位ARM实例上的Microsoft Azure
- Microsoft 持的选项,并链接到相关部分。
## 表2.1.安装程序置备的基础架构选项
||Alibaba|AWS(64位x86)|AWS(64位ARM)|Azure(64位x86)|Azure(64位ARM)|AzureStackHub|GCP|Nutanix|RHOSP|RHV|裸机(64位x86)|裸机(64位ARM)|vSphere|VMC|IBMCloudVPC|IBMZ|IBMPower|IBMPowerVirtualServer| ✓|✓|✓||||✓||
|私有集群||✓|✓|✓|✓||✓|||||||✓|||✓||
||Alibaba|AWS(64位x86)|AWS(64位ARM)|Azure(64位x86)|AzureStackHub|GCP|Nutanix|RHOSP|RHV|裸机(64位x86)|裸机(64位ARM)|vSphere|VMC|IBMCloudVPC|IBMZ|IBMPower|IBMPowerVirtualServer| 0 码力 |
4634 页 |
43.96 MB
| 2 年前 3 覆盖全场景的创新平台

openEuler 已支持 X86、ARM、SW64、RISC-V、LoongArch 多处理器架构,逐步扩展 PowerPC 等更多芯片架构支持,持续完善多样性算力生态体验。
openEuler 社区面向场景化的 SIG 不断组建,推动 8f1a/p8_1.jpg)
## 硬件支持
openEuler 社区当前已与多个设备厂商建立丰富的南向生态,Intel、AMD 等主流芯片厂商的加入和参与,openEuler 全版本支持 X86、ARM、申威、龙芯、RISC-V 五种架构,并支持多款 CPU 芯片,包括龙芯 3 号、兆芯开先 / 开胜系列、Intel IceLake/ Sapphire Rapids、AMD EPYC Milan 、安全卡七种类型的板卡,具备良好的兼容性。
## 支持的 CPU 架构如下:
|硬件类型| X86|ARM|
|---|---|---|
|CPU|Intel、AMD、兆芯、海光|鲲鹏、飞腾|
## 支持的整机如下:
| 硬件类型 | X86 | ARM | | 整机 | Intel:超聚变 0 码力 |
52 页 |
5.25 MB
| 1 年前 3 jpg)
## 通用寄存器:32 位时代
• 32 位 x86 架构中的通用寄存器有:
• eax, ecx, edx, ebx, esi, edi, esp, ebp
- 其中 esp 是堆栈指针寄存器,和函数的调用与返回相关。
• 其中 eax 是用于保存返回值的寄存器。
## 通用寄存器:64 位时代
• 64 位 x86 架构中的通用寄存器有:
• rax, rcx, rdx, rbx, rsi, rdi, rsp, rbp, r8, r9, r10, r11, ..., r15
- 其中 r8 到 r15 是 64 位 x86 新增的寄存器,给了汇编程序员更大的空间,降低了编译器处理寄存器翻车(register spill)的压力。
• 因此 64 位比 32 位机器相比,除了内存突破 4GB 限制外,也有一定性能优势。
# 8 位,16 位,32 位,64 位版本 %rsi), %eax #, tmp85
# main.cpp:3: }
ret
.cfi_endproc
## 整数加常数乘整数:都可以被优化成 leal
因为这种线性变换在地址索引中很常见,所以被 x86 做成了单独一个指令。这里尽管不是地址,但同样可以利用 lea 指令简化生成的代码大小。
1 int func(int a, int b) {
2 return a + 8 * b;
3 0 码力 |
108 页 |
9.47 MB
| 2 年前 3 操作系统这种咚咚跟硬件……2015/04/16
0.1 电脑:辅助人脑的好工具
0.1.1 计算机硬件的五大单元
☐ 0.1.2 一切设计的起点:CPU 的架构,RISC与ARM,CISC与x86
☐ 0.1.3 其他单元的设备
0.1.4 运行流程
0.1.5 电脑按用途分类
0.1.6 电脑上面常用的计算单位(容量、速度等)
0.2 个人电脑架构与相关设备元件
0.2.1 执行脑袋运算与判断的 面而不是插卡啦!
整部主机的重点在于中央处理器(Central Processing Unit, CPU),CPU 为一个具有特定功能的芯片,里头含有微指令集,如果你想要让主机进行什么特异的功能,就得要参考这颗 CPU 是否有相关内置的微指令集才可以。由于 CPU 的工作主要在于管理与运算,因此在 CPU 内又可分为两个主要的单元,分别是:算数逻辑单元与控制单元。 $ ^{[3]} $ 其中算 CPU 内部的微指令集来达成才行。那这些指令集的设计主要又被分为两种设计理念,这就是目前世界上常见到的两种主要 CPU 架构,分别是:精简指令集(RISC)与复杂指令集(CISC)系统。下面我们就来谈谈这两种不同 CPU 架构的差异啰!
## • 精简指令集(Reduced Instruction Set Computer, RISC): [5]
这种 CPU 的设计中,微指令集较为精简,每个指 0 码力 |
1158 页 |
13.73 MB
| 1 年前 3
|
|