=====================
系统相关
进制转换
1B = 8 bits、 1字节 = 8 比特
16进制(0x00–0xFF)对应10进制(0–$2^4^ * 2^4^ -1$ 即255) 对应二进制(2^8^ ,即1字节)
$\Rightarrow$ 在地址转换中(如,0x002400D0),两位16进制对应1字节,八位16进制对应4字节。4字节 = $2^2 * 2^3bits = 2^5bits$ = 32位
定义:32位 v.s. 64位
计算机的最小存储单元是1Byte,即内存单元。 32位和64位区别是CPU内存单元地址的个数,即CPU的寻址能力。CPU的寻址能力由地址总线的宽度(总线的位数)决定。
32位:地址空间由8个16进制数(0x0000 1111)表示,即对应4字节,4*2^3^= 2^5^ = 32位。32位寻址的CPU支持 2^32^大小的地址。
64位:地址空间由16个16进制数(0x0000 1111 2222
3333)表示,即对应8字节,8*2^3^ = 2^6^ = 64位。64位寻址的CPU支持2^64^大小的地址。
| 汇总如表所示 : |
| – | 32位 | 64位 |
|---|---|---|
| 1 | 2 | 3 |
ISA架构
表列出了厂商设计的处理器架构。:)
| 厂商 | 复杂or精简 | CPU架构 | 备注 |
|---|---|---|---|
| Intel | CISC | x86 | 可变指令长度 |
| AMD | CISC | x86 | – |
| IBM | RISC | PowerPC | 基于POWER(Performance Optimized With Enhanced RISC) |
| ARM | RISC | ARM | 多数32位嵌入式处理器 |
表 :) 汇总了一些主流CPU支持的位数及其特点。
| 位数 | x86(IA86;i386) | IA64 | x86-64(x64) | AMD64 |
|---|---|---|---|---|
| 32位 | ||||
| 64位 | ||||
| 备注 | 不兼容32位,遇冷 | intel提出 | AMD提出 | |
| 区别 | 8个32位通用寄存器(EAX,EBX,ECX,EDX,EBP,ESP,ESI,EDI) | 拓展为64位通用寄存器(RAX,RBX,RCX,RDX,RBP,RSP,RSI,RDI),并新增了r8 $\sim$ r15这6个寄存器 | 拓展为64位通用寄存器(RAX,RBX,RCX,RDX,RBP,RSP,RSI,RDI),并新增了r8 $\sim$ r15这6个寄存器 | 拓展为64位通用寄存器(RAX,RBX,RCX,RDX,RBP,RSP,RSI,RDI),并新增了r8 $\sim$ r15这6个寄存器 |
MIPS Microprocessor without interlocked piped stages
这里需要补充无内部互锁的管道(流水)级微处理器
分页机制
paging避免了分段产生的大量内存碎片。配合技术提高交换的效率。
多级页表与局部性原理
多级页表3,以二级页表为例,一级页表覆盖到全部的虚拟空间,但只需占用一个page的空间大小,一级页表的页表项存储于二级页表,而二级页表只有在进行有需要时才创建(若某个页表项没用到,就不需要创建其对应的二级页表了)。
多级页表内部的地址转换带来了一定的时间开销,根据程序的局部性原理,计算机在CPU中封装了一个程序最常访问页表项的硬件,转址旁路缓存(translation lookside cache)4
内存交换
段页式内存管理
地址结构 = 段号 :段内页号 :页内偏移