第一章 处理器与MIPS
计算机三大组成部分
- 处理器、存储器、输入输出设备
指令集架构(Instruction Set Architecture, ISA)
- ISA用来描述编程时用到的抽象机器,而非这种机器的具体实现。ISA包括一套指令集与一些寄存器。
微架构(Microarchitecture, or MISA)
- 是ISA的硬件实现。ISA类似设计规范,微架构是具体实现。
复杂指令集计算机Complex Instruction Set Computer, CISC)与精简指令集计算机Complex Instruction Set Computer, CISC)
-
主要区别为CISC每条指令对应的01编码长短不一,RISC长度固定
-
CISC:指令使用频率悬殊,减少存储器访问对内存的影响
-
RISC:指令长度固定、指令格式少、寻址方式少、大量使用寄存器
主流ISA
- X86
- ARM
- SPARC
- POWER
- MIPS(Microprocessor without Interlocked Piped Stages, 无内锁流水线微处理器)
MIPS ISA简介
数据类型(MIPS32)
- b- 1bit
- Byte - 8bit
- Halfword - 16bit
- Word - 32bit
- Double Word - 64bit
寄存器:寄存器的存取可以在一个时钟周期内完成,同时简化了寻址方式
- 通用寄存器
- 特殊寄存器:PC(Program Counter)、HI(乘除结果高位寄存器)、LO(乘除结果低位寄存器)
字节次序
- 大端模式(Most Significant Byte, MSB):数据高位保存在存储器低地址中
- 小端模式(Least Significant Byte, LSB):数据高位保存在存储器高地址中
指令格式
指令集
- 逻辑操作指令:and, andi, or, ori, xor, xori, nor, lui
- 移位操作指令:sll, sllv, sra, srav, srl, srlv
- 移动操作指令:movn, movz, mfhi, mflo, mtlo
- 算术操作指令:add, addi, addiu, addu, sub, subu, clo, clz, slt, slti, sltiu, sltu, mult, multu, madd, maddu, msub, msubu, div, divu
- 转移指令:jr, jalr, j, jal, b, bal, beq, bgez, bgezal, bgtz, blez, bltz
- 加载存储指令:lb, lbu, lh, lhu, ll, lw, lwl, sb, sc, sh, sw, swl, swr
- 协处理器访问指令:mtc0, mfc0
- 异常相关指令:teq, tge, tgeu, tlt, tltu, tne, teqi, tgei, tgeiu, tlti, tnei, syscall, eret
- 其余指令:nop, ssnop, sync, pref
寻址方式
- 寄存器相对寻址
- PC相对寻址