Presentation is loading. Please wait.

Presentation is loading. Please wait.

MIPS 体系结构介绍 张福新.

Similar presentations


Presentation on theme: "MIPS 体系结构介绍 张福新."— Presentation transcript:

1 MIPS 体系结构介绍 张福新

2 MIPS CPU的发展 MIPS I MIPS III MIPS IV 1987 MIPS R2000(16MHZ)
1990 IDT R3051(20MHZ) MIPS III 1991 MIPS R4000 (100MHZ) 1993 IDT/QED R4600(100MHZ) 1993 MIPS R4400(150MHZ) 1995 NEC/MIPS Vr4300(133MHZ) MIPS IV 1996 MIPS R10000 (200MHZ) 1996 SGI/QED R5000(200MHZ)

3 MIPS 体系结构特点(1) 定长指令(32bit) 32个通用寄存器(寄存器0恒为0) 三操作指令格式(两个源一个目标) 无条件码
只有load/store指令访存 单一寻址模式 Load/store要求对齐 跳转指令范围限制: 绝对跳转256M,相对跳转128K 乘除法专用hi,lo寄存器

4 MIPS 体系结构特点(2) 没有字节或者半字运算指令 没有特殊的栈支持 最小化的过程调用支持 最简化的中断和例外处理支持
ABI 最小化的过程调用支持 跳转并联接指令 jal,jalr 最简化的中断和例外处理支持 EPC,CAUSE寄存器,特定入口 软件处理上下文保存和mmu管理 和流水线实现相关的一些特点 延迟槽: delayed branch和load delay slot 乘除法部件的独立性 一些控制指令的相关

5 MIPS 处理器控制 Coprocessor 0 设置CPU配置 控制cache 例外/中断处理 存储管理 其他:时钟,事件计数器等

6 Cache 管理 任务: 手段 初始化 DMA 写指令 处理cache alias
Cache指令: writeback,invalidate,writeback_invalidate等

7 例外和中断 MIPS CPU响应例外时的动作: 当前的PC保存到epc控制寄存器 进入核心模式,禁止中断
例外的原因记录在cause寄存器中,对地址例外,badvaddr寄存器也记下产生例外的地址,对MMU管理的例外,另外有一些MMU寄存器会被设置 CPU开始从例外入口地址取指;大多数例外的入口地址都一样,个别有特殊需要的例外有自己的入口

8 MIPS CPU中断 8个中断位,可分别屏蔽;两个软件中断,六个硬件中断引脚
Cause控制寄存器8位指示哪个引脚发生中断,status控制寄存器有8位用于屏蔽相应中断,另外有EXL/ERL位用于全部屏蔽

9 内存管理和TLB 地址空间 TLB 控制指令 控制寄存器 表项内容

10 MIPS CPU 地址空间 mapped(kseg2) 0xffffffff Unmapped uncached(kseg1)
Unmapped cached(kseg0) 32-bit user space(kuseg) 2GB 0xc 0xa 0x 0x

11 MIPS指令集 Nop 寄存器移动:move 取常数:立即数(li,lui)或者地址(la)
算术逻辑指令:add/addi/addu/addiu,…,set if型指令slt,slti,sltiu,sltu等 整数乘除:mult,multu,div,divu,mfhi,mflo,mthi,mtlo load/store: lb/lbu/lh/lhu/lw/lwu/ld/ldl/ldr/lwl/lwr/ll/lld,sb/sh/sw/sd/sdl/sdr/swl/swr/sc/scd 跳转、函数调用和分支:相对跳转(bne,beql,blt,…)绝对跳转(j,jr),函数调用(…and link,如jal,jalr,bal等) 断点和陷阱:break,syscall,teq,teqi,tge… Cp0指令cfc0,ctc0;mfc0,mtc0,dmfc0,dmtc0;eret,cache,sync;tlbp,tlbr,tlbwi,tlbwr;wait,suspend; 浮点指令 cfc1/ctc1;mfc1,mtc1,dmfc1,dmtc1;mov.s/mov.d;…

12 MIPS 汇编 寄存器命名和使用约定 宏指令 汇编指示 .set
汇编程序员或者高级语言编译器使用,被汇编器翻译为一个指令序列,如li d,j在0<=j<65536时被翻译为addiu d,$zero,j;在j必须用32位表示时,翻译为lui d,hi16(j);ori d,d,lo16(j) 汇编指示 .set

13 MIPS C代码和可移植性 常见问题 需要显式的cache管理 CPU速度变化引起的时序问题 数据对齐和数据在内存的分布 尾端(字节次序)
指针的符号: kseg0/kseg1地址>2G Signed/unsigned char Int的大小 依赖于栈的程序:尽量使用stdargs/alloca等函数 参数传递和自动转换 库函数的不确定语义 头文件不兼容


Download ppt "MIPS 体系结构介绍 张福新."

Similar presentations


Ads by Google