MIPS构架之:我和龙芯有个约会
当年龙芯为什么选择了MIPS构架而没有选择ARM构架?这个问题被争执了很多年,有人说当年ARM构架不足以支持桌面运算,有人认为是"指令集授权"和"微架构授权"不是一回事,龙芯需要MIPS的指令集授权,而非ARM的微构架授权。总之,MIPS的架构完整性与授权较宽松赢得了龙芯的青睐,在如今半导体衰退的大趋势下,MIPS构架是否还有机会崛起值得探讨。
3.MIPS64位架构
MIPS64架构刷新了64位MIPS-Based嵌入式处理器的性能标准。它代表着下一代高性能MIPS处理器的基础,并兼容MIPS32 32位架构。
MIPS I-class I6400 CPU系列产品
MIPS架构拥有强大的指令集、从32位到64位的可扩展性、广泛可获得的软件开发工具以及众多MIPS科技公司授权厂商的支持,是领先的嵌入式架构。
MIPS64架构是以前的MIPS IV和 MIPS V指令集架构(ISA)的扩展集,整合了专门用于嵌入式应用的功能强大的新指令,以及以往在R4000和R5000 MIPS处理器中执行的已经验证的存储器管理和特权模式控制机制。通过整合强大的新功能、标准化特权模式指令、支持前代ISA,以及提供从MIPS32架构升级的路径,MIPS64架构为未来基于MIPS处理器的开发提供了一个坚实的高性能基础。
MIPS64架构基于一种固定长度的定期编码指令集,并采用导入/存储(load/store)数据模型。经改进,这种架构可支持高级语言的优化执行。其算术和逻辑运算采用三个操作数的形式,允许编译器优化复杂的表达式。此外,它还带有32个通用寄存器,让编译器能够通过保持对寄存器内数据的频繁存取进一步优化代码的生成性能。
功能强大的64位浮点寄存器和执行单元可加快某些任务的执行速度,比如一些DSP算法的处理、图形操作的实时计算。双单精度指令(Paired-Single instruction)在一个64位寄存器中装入了两个32位浮点操作数,从而实现单指令多数据操作(SIMD)。这种方法的执行速度是传统32位浮点单元的两倍。浮点操作可选择软件仿真。
MIPS64架构兼具32位和64位寻址模式,同时采用64位数据工作。这样一来,无需额外的存储器进行64位寻址就能获得64位数据的优势。为了便于从32位系列的移植,该架构还带有32位兼容模式,在这种模式中,所有寄存器和地址都是32位宽,MIPS32架构中出现的所有指令都被执行。
I6400采用最新一代的MIPS Coherency Manager架构
这是以新的多核一致互连架构为基础。它可支持每集群最多达6核的多核配置,并且单一集群上的多核都能拥有不同的合成目标,并以不同的时钟频率和电压运行。一致性管理员架构中构建了多项高性能特性,包括硬件预取,以及比前一代架构更宽的总线和更低的时间延迟。
4.microMIPS架构
microMIPS是一种在单个统一的指令集架构中集成了16位和32位优化指令的高性能代码压缩技术。
它支持MIPS32和MIPS64 Release2架构,整合了可变长度重新编码MIPS指令集和新增的代码量优化16位和32位指令,可提供高性能和高代码密度。
microMIPS是一个完整的ISA,既能单独工作,也能与原有的MIPS32兼容指令解码器共同工作,允许程序混合16位和32位代码,无需模式切换。由于它的程序代码量较小,因此可获得更好的缓存利用率和更小的取指带宽(fetch bandwidth),从而有助于提升性能,降低功耗。
microMIPS包含所有MIPS ASE指令,支持CorExtend/UDI接口。而且,针对microMIPS软件及系统开发,MIPS科技公司与第三方合作伙伴生态系统提供有一套全面完善的软硬件工具支持。新推出的M14K?和 M14Kc是首先执行 microMIPS的处理器内核。
5.MIPS的授权和"中国芯"
2002年,中国科学院计算所开始研发龙芯处理器,采用MIPS架构,但因未经MIPS公司的授权而遭到侵权的控告。2009年,中国科学院与MIPS公司达成和解,得到正式授权。
MIPS架构国内的代表龙芯处理器
看到这里,也许大家不禁要问:前有身份显贵的X86,后有红极一时的ARM,为什么MIPS最终成为了我国龙芯处理器的设计架构呢?
答案非常简单,那就是架构授权。
x86架构的拥有者Intel,可以算作是技术合作上最抠门儿的一位。
在推出x86架构之后,Intel就只将这一架构授权给过AMD和VIA等几个芯片公司。而在VIA退出x86架构处理器竞争之后,Intel便不再给任何公司x86架构授权。所以从x86架构上入手,龙芯处理器显然是行不通的。
Intel的x86架构行不通,那么ARM架构是否就能行得通呢?ARM不也是给授权吗?那为什么还选MIPS呢?
回答这个问题之前,首先对比一下两家公司在架构授权问题的"原则",MIPS和ARM虽然都是对外进行架构授权的公司,但意义完全不同。
ARM公司