threejs入门
2025/12/19 3:49:04
基本概念相同
层次定位相同
基本组成元素相似
| 类型 | 代表架构 | 特点 |
|---|---|---|
| CISC(复杂指令集) | x86/x86-64 | 指令长度可变,指令功能复杂,寻址方式丰富 |
| RISC(精简指令集) | ARM、MIPS、RISC-V | 指令长度固定,指令功能简单,强调寄存器操作 |
| VLIW(超长指令字) | Itanium | 多个操作打包在一条长指令中,依赖编译器调度 |
| 架构 | 通用寄存器数量 | 特殊寄存器 | 特点 |
|---|---|---|---|
| x86-64 | 16个 | 标志寄存器、段寄存器 | 历史兼容性强,寄存器功能有重叠 |
| ARM64 | 31个 | 零寄存器(XZR)、栈指针(SP) | 规整设计,大多数寄存器功能相同 |
| MIPS | 32个 | 零寄存器($0)、返回地址存储 | 简单规整 |
| RISC-V | 32个(基础) | 零寄存器(x0) | 模块化设计,可扩展 |
# x86(变长,复杂) mov eax, [ebx+ecx*4+0x10] # 复杂内存寻址 # ARM(定长,精简) ldr x0, [x1, #16] # 简单偏移寻址 add x0, x1, x2, lsl #2 # 移位集成在指令中 # MIPS(非常规整) lw $t0, 16($t1) # 加载字 add $t2, $t0, $t1 # 三寄存器操作x86:允许内存到内存操作
add [mem], eax # 可直接操作内存RISC架构:必须通过加载/存储指令
ldr x0, [mem] # 先加载到寄存器 add x0, x0, x1 # 寄存器操作 str x0, [mem] # 再存回内存x86:通过标志寄存器+条件跳转
cmp eax, ebx jg label # 条件跳转ARM:指令可条件执行
cmp x0, x1 addgt x2, x3, x4 # 仅当GT时执行| 架构 | 参数传递 | 返回地址 | 栈管理 |
|---|---|---|---|
| x86-64 | 寄存器+栈 | 栈保存 | 调用者清理部分栈 |
| ARM64 | 寄存器 | 链接寄存器(LR) | 被调用者保存寄存器 |
| MIPS | 寄存器+栈 | 寄存器$ra | 需要延迟槽 |
核心要旨:不同架构反映不同的设计权衡(性能/功耗/面积/兼容性),但最终都服务于相同的计算目标。理解这些差异有助于编写高效代码和进行系统级优化。