积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 嵌入式硬件 >> MIPS
  相关分类: 相关文章 | ARM | 新产品 | 下载 | MIPS | X86 |
MIPS CPU 体系结构概述
 
作者:陈怀临翻译   来源:嵌入式技术网    点击数:985   更新时间:2007-1-26
您可以添加到网摘 让更多人关注此文章:

    
本文介绍MIPS体系结构,着重于其寄存器约定,MMU及存储管理,异常和中断处理等等。

通过本文,希望能提供一个基本的轮廓概念给对MIPS CPU及之上OS有兴趣的读者。

并能开始阅读更详细的归约(SPECIFICATION)资料。

MIPS是最早的,最成功的RISC(Reduced Instruction Set Computer)处理 器之一,起源于Stanford Univ的电机系. 其创始人 John L. Hennessy1984年在硅谷创立
MIPS INC. 公司(www.mips.com)John L. Hennessy目前是Stanford Univ. 的校长。在此之前,他是 Stanford电子工程学院的DeanCS专业的学生都知道两本著名的书:
Computer Organization and Design : The Hardware/Software Interface” 和
Computer Architecture : A Quantitative Approach“。其Co-author就是Hennessy.

MIPS的名字为“Microcomputer without interlocked pipeline stages"的缩写。另外一个通常的非正式的说法是”Millions of instructions per second".

MIPS 芯片在工业界目前用的比较多的是:MIPS INC。的R10000QED(http://www.qedinc.com1996年从MIPS INC。分(SPIN OFF)出来的)R5000 R7000等。
指令集

详细的资料请参阅MIPS归约。

一般而言,MIPS指令系统有:MIPS IMIPS IIMIPS III MIPS IV。可想而知,指令系统是向后兼容的。例如,基于MIPS II的代码可以在MIP IIIMIPS IV的处理器上跑一跑:-)

下面是当我们用gcc时,如何指定指令和CPU的选项。

-mcpu=cpu type
Assume the defaults for the machine type cpu type when scheduling instructions. The choices for cpu type are `r2000', `r3000', `r4000', `r4400', `r4600',
and `r6000'. While picking a specific cpu type will schedule things appropriately for that particular chip, the compiler will not generate any code that does
not meet level 1 of the MIPS ISA (instruction set architecture) without the `-mips2' or `-mips3' switches being used.
-mips1
Issue instructions from level 1 of the MIPS ISA. This is the default. `r3000' is the default cpu type at this ISA level.
-mips2
Issue instructions from level 2 of the MIPS ISA (branch likely, square root instructions). `r6000' is the default cpu type at this ISA level.
-mips3
Issue instructions from level 3 of the MIPS ISA (64 bit instructions). `r4000' is the default cpu type at this ISA level. This option does not change the sizes of any of the C data types.

读者可能发现,对于大多数而言,我们应该是用MIPS III-mips3。要提醒的是R5000R10000也都是R4000的延伸产品。

下面是几点补充:

*MIPS指令是32位长,即使在64位的CPU上。这对于局部跳转指令的理解很有帮助。

比如:J (TARGET)JAL (TARGET)JJALOPERCODE6位,剩下的26为存放跳转偏移量。由于任何一个指令都是32(4字节)对齐(ALIGN)的,所以J JAL最大的伸缩空间是2^28=256M。如果你的程序要作超过256M的跳转,你就必须用JALRJR,通过一个GPR寄存器来存放你的跳转地址。由于一个寄存器是3264位的,你就没有任何限制了。

*MIPS CPUSR(STATUS REGISTER)中有几位是很重要的设置,当我们选择指令系统或要用64位的MIPSCPU CORE32模式下(绝大多数情况,弟兄们 别告诉我你在写64位的程序:--) )

SR[XX]
1MIPS IV INSTRUCTION SET USABLE
0MIPS IV INSTRUCTION SET UNUSABLE

SR[KX]
SR[SX]
SR[UX]
0CPU工作在32位模式下
1CPU工作在64位模式下

一般而言,如果你要从头写一个MIPS核心为32位程序,最好把上述值设为0。为什么最好呢?因为我在工作中没有去冒风险,设她们为1who knows what would happen?:-) And then why bother:--)?

*在以后我们会单独的一章讲将流水线和指令系统,特别是跳转指令的关系。在这里,我们只简单提一下。对任何一个跳传指令后面,FOR SIMPLITY,要加上一个空转指令(NOP)。从而使得CPUPIPELINE不会错误的执行一个预取(PRE_FETCH)得指令。当然这个NOP可以替换为别的。以后再讲。放一个NOP是最简单和安全的。有兴趣的读者可以用mips64-elf-objdump -d 来反汇编一个
OBJECT文件。你就会一目了然了。

*一定要记住:MIPS IIIIIIIV指令系统不包含PRIVILEDGED INSTRUCTIONS

换句话说,都是那些在USER MODE下可以用的指令(当然KERNEL下也能用)。对于CPO的操作不属于指令系统。

*有一点在MIPS CPU下,要千万注意:ALIGNMIPSALIGN的要求是严厉的。这一点与POWERPC是天壤之别。指令必须是32位对齐。数据类型必须在她们的的
大小边界对齐。简单的比如:When CPU running under 32bit mode, int must 32bit aligned; long 32bit aligned; pointer must be 32bit aligned; char must 8 bit aligned. long long must 64 bit aligned;关于这一点 ,我是吃过苦头的。当然我知道大家还会犯错在这里:--),即使知道了。有些事情学是没用的:--)。一定要注意。

*我建议读者阅读SPECIFICATION时要花时间看一看指令系统的定义。其实不难。每一种指令不外乎几个域(FIELDS)


相关文章
· 科技奥运与计算机技术的应用[287]
· Electromedical[2581]
· 患者监控[2631]
· 基于TMS320LF2407A DSP的心电监护系统研究[3055]
· 用S3C2410实现三导联远程心电监护系统[2981]
热门评论排行
·VHDL设计中电路简化问题的
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·基于实时操作系统μC/OS-
·ARM处理器应用开发4步骤

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
ARM联手IBM等三家公司开发32n
Hitachi Elect
中国芯片供需缺口达七成
西班牙研发出视觉鼠标 眨眼
首条OLED生产线昆山投产 
宇航服电子元器件:航天员的“生命保护
美研发出可卷曲太阳能电池
美国研发嗅觉感受器获新进展 
首尔半导体就日亚(NICHIA)专利
MIPS 科技授权国家集成
 
热门下载 [更多]
 
[ PCB设计] Protel99教程下载
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
 
论坛新帖 [更多]
 
写给迷茫中的嵌入式新手...
Arm/DSP/FPGA的比较...
Arm/DSP/FPGA的比较...
Arm/DSP/FPGA的比较...
[分享]逆变器的买与用...
[分享]电力系统直流电源装置的...
单片机如何控制TFT真彩色LC...
请教:2051的C程序...
中国为何没有世界级的企业和企业...
AVR的EEPROM,到底怎么...

 
赞助商 [更多]
 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网