深入浅出MIPS.pdf

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
深入浅出MIPS

深入浅出MIPS 〇 序章 信息时代的世界,有着光鲜亮丽的外壳。Web2.0 的时代,有哪些信誉好的足球投注网站引擎,SNS,流媒体...这 绚丽多彩的一切,流光溢彩,仿佛云霓灿烂。 剥去这光鲜的外壳,深入到底层的世界。内核,体系结构,编译器...完全是0 和 1 组成的 黑白世界,初涉之难免觉得味同嚼蜡。 但是,正如单一的白光在三棱镜下,会绽放出七彩的光谱,黑白的计算机底层世界,却有着 魔法一般丰富的内涵。当我们看穿华丽的GUI 界面的伪装,探究到内核的奥秘时,我们会发现 这是一个迷人的微观世界。这个美丽新世界,最具魅力的是哪些呢? 体系结构。它是计算机系统的基石。它从根本上决定了这个系统的性能。当程序中出现错误 时,对体系结构的理解,能大大加快Bug 的定位。体系结构是底层世界的根基。 操作系统。它是计算机系统的灵魂。操作系统屏蔽了底层硬件的差异,为上层软件提供了统 一的API。多任务操作系统还可以让计算机并行处理不同的任务,巧妙的设计可以发挥CPU 最 大的潜力。目前的必威体育精装版操作系统版本,还可以支持多CPU 并发处理。操作系统内核是底层世界 的统治者。 编译器。编译器是体系结构的翻译官。它能够将高级语言翻译成机器指令,与操作系统提供 的API 接口连接,开发出各种应用程序。好的编译器还可以针对硬件做优化。编译器是底层世 界的一把金钥匙。 体系结构,操作系统,编译器支撑起的系统,如同三只足支撑的一只鼎。操作系统中的经典 之作,是Linux;对应的编译器是gcc 系列工具链。关于这些的著作早已汗牛充栋。我想给大 家介绍的,是体系结构皇冠上的明珠——MIPS。 深入浅出MIPS 一 MIPS 概述 英国科学家Dominic Sweetman(经典著作See MIPS Run 的作者),称MIPS 为“高效的RISC 体系结构中最优雅的一种体系结构”。它是一个双关语:即是 Microcomputer without Interlocked Pipeline Stages 的缩写,同时又是Millions of Instructions Per Second 的缩 写。 MIPS 的处理单元是一个五级流水线:Instruction Fetch, Register Decoder, ALU, Memory 以及Write back。一开始的MIPS 是为32 位系统设计的,实际上,后续的64 位扩 展,也依然对32 位的工作模式向下兼容着。一如其他的RISC 处理器,MIPS 的每条指令长度 是固定的32bit。(因此,最长的局部跳转指令只能跳转2 的26 次方Byte,也就是2 的24 次 方条指令) MIPS 有32 个通用寄存器,编程者可以使用其中除$0 外的所有寄存器暂存数据。$0 寄存 器,在硬件上被设计为永远读出 0。我们可以用$0 寄存器的此特性,实现一些技巧性的编程, 譬如实现NOP 操作。MIPS 本没有NOP 指令,但由于对$0 寄存器的写入实际上无意义,可以 作为空操作使用。 事实上,编译器从高级语言(典型如C/C++)转换为MIPS 汇编指令时,一般总是遵守一 定的寄存器使用约定。某些寄存器用来从函数中传入和传出参数,存储临时数据,另一些则起特 殊作用,如保存调用函数时的指令地址,或作为堆栈指针等。如果你使用汇编开发,理论上可以 无视这点约定,但是,一般地,遵守这个约定,与人方便,也为己方便。关于寄存器使用的约定, 以后会展开论述。 一如所有的RISC 处理器,MIPS 没有CISC 那样复杂多变的寻址方式,统一为Load/Store 寻址。任何载入和存储操作,都可写为如下形式: lw $1, offset ($2) 这条指令的操作符可以为 Load 或 Store,一次 Load/Store 操作的范围可以为字/半字/ 字节(对应gcc 的int, short 和char)。偏移量是一个带符号的16bit 整数。两个作为操作数 的寄存器可以是任何通用寄存器。(你可以向$0 写入,但无任何意义,等同于空操作)。对于64 位模式下,也可以对double 类型进行操作。注意Load/Store 都必须对应一个对齐的地址,否 则会引发一个异常(Exception)。 MIPS 支持最多4 个协处理器。协处理器CP0 为CPU 的控制协处理器,是体系结构中必须 实现的。CP1 为浮点处理器。CP2 保留,各生产厂商往往用来实现一些自己的特色功能,例如 RMI 的Fast Message Ring 等。

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档