MIPS体系结构介绍

时间:2025-03-11

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 地址空间0xffffffff0xc000 0000

mapped(kseg2)Unmapped uncached(kseg1) Unmapped cached(kseg0)

0xa000 00000x8000 0000

32-bit user space(kuseg) 2GB 0x0000 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/l

ld,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<=j<65536时被翻译 为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等函数 参数传递和自动转换 库函数的不确定语义 头文件不兼容

…… 此处隐藏:231字,全部文档内容请下载后查看。喜欢就下载吧 ……
MIPS体系结构介绍.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219