1 / 13

MIPS 体系结构介绍

MIPS 体系结构介绍. 张福新. MIPS CPU 的发展. MIPS I 1987 MIPS R2000(16MHZ) 1990 MIPS R3000(33MHZ) 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).

Download Presentation

MIPS 体系结构介绍

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MIPS 体系结构介绍 张福新

  2. MIPS CPU的发展 • MIPS I • 1987 MIPS R2000(16MHZ) • 1990 MIPS R3000(33MHZ) • 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 管理 • 任务: • 初始化 • 检测cache大小,清除内容 • DMA • 从内存DMA数据到外部设备前要写回cache中的内容 • 从外部设备DMA数据到内存后,cache相应内容必须在使用这些数据前清空 • 写指令 • 处理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 地址空间 0xffffffff 0xc000 0000 0xa000 0000 0x8000 0000 0x0000 0000

  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 汇编 • 寄存器命名和使用约定 • 宏指令 • 汇编程序员或者高级语言编译器使用,被汇编器翻译为一个指令序列,如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等函数 • 参数传递和自动转换 • 库函数的不确定语义 • 头文件不兼容

More Related