MIPS体系结构介绍.ppt

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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) MIPS 体系结构特点(1) 定长指令(32bit) 32个通用寄存器(寄存器0恒为0) 三操作指令格式(两个源一个目标) 无条件码 只有load/store指令访存 单一寻址模式 Load/store要求对齐 跳转指令范围限制: 绝对跳转256M,相对跳转128K 乘除法专用hi,lo寄存器 MIPS 体系结构特点(2) 没有字节或者半字运算指令 没有特殊的栈支持 ABI 最小化的过程调用支持 跳转并联接指令 jal,jalr 最简化的中断和例外处理支持 EPC,CAUSE寄存器,特定入口 软件处理上下文保存和mmu管理 和流水线实现相关的一些特点 延迟槽: delayed branch和load delay slot 乘除法部件的独立性 一些控制指令的相关 MIPS 处理器控制 Coprocessor 0 设置CPU配置 控制cache 例外/中断处理 存储管理 其他:时钟,事件计数器等 Cache 管理 任务: 初始化 检测cache大小,清除内容 DMA 从内存DMA数据到外部设备前要写回cache中的内容 从外部设备DMA数据到内存后,cache相应内容必须在使用这些数据前清空 写指令 处理cache alias 手段 Cache指令: writeback,invalidate,writeback_invalidate等 例外和中断 MIPS CPU响应例外时的动作: 当前的PC保存到epc控制寄存器 进入核心模式,禁止中断 例外的原因记录在cause寄存器中,对地址例外,badvaddr寄存器也记下产生例外的地址,对MMU管理的例外,另外有一些MMU寄存器会被设置 CPU开始从例外入口地址取指;大多数例外的入口地址都一样,个别有特殊需要的例外有自己的入口 MIPS CPU中断 8个中断位,可分别屏蔽;两个软件中断,六个硬件中断引脚 Cause控制寄存器8位指示哪个引脚发生中断,status控制寄存器有8位用于屏蔽相应中断,另外有EXL/ERL位用于全部屏蔽 内存管理和TLB 地址空间 TLB 控制指令 控制寄存器 表项内容 MIPS CPU 地址空间 0xc000 0000 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;… MIPS 汇编 寄存器命名和使用约定 宏指令 汇编程序员或者高级语言编译器使用,被汇编器翻译为一个指令序列,如li d,j在0=j65536时被翻译为addiu d,$zero,j;在j必须用32位表示时,翻译为lui d,hi16(j);ori d,d,lo16(j) 汇编指示 .set MIPS C代码和可移植性 常见问题 需要显式的cache管理 CPU速度变化引起的时序问题 数据对齐和数据在内存的分布 尾端(字节次序) 指针的符号: kseg0/kseg1地址2G Signed/unsigned char Int的大小 依赖于栈的程序:尽量使用stdargs/alloca等函数 参数传递和自动转换

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档