龙芯其实就是实现了MIPS的体系结构,当然不包括其中有知识产权保护的指令系统。
关于MIPS为什么拿来教学,一方面,MIPS的基本指令集的设计堪称经典,甚至有一些偏激的人认为MIPS才是真正的RISC机器(不是我的观点)。
另一方面,MIPS体系结构,它的基本构成部分的知识产权是开放的,所以用它来教学,不会带来任何法律上的问题。而且,不仅是教学,连商业化都是开放的,所以龙芯可以采用MIPS的构架了不用面对任何知识产权方面的问题(说是这么说,实际上龙芯开发初期,MIPS的原公司曾与龙芯组进行过一些交流,但大的方面是没问题的)。
关于它的指令系统,在很多教学情景下,所展示的精简版的示例,我们上CPU设计原理课程时老师就是用一个精简了的MIPS作为示例,所谓精简,是指比如只包括基本整数指令、分支指令等的结构。
它有多简单?它的控制逻辑状态机,可以用状态图来画出来,直接用逻辑门、触发器等搭出来!连硬件描述语言都不用。
MIPS的机器,如果不考虑后来增加的一些功能,比如非对齐地址内存的访问(这正是MIPS所享有专利保护的内容之一)等,而只考虑基本的指令集,包括条件转移在内,在一条转自延迟槽的条件下,可以真正做到流水线不断流!
当然这也是当初设计MIPS系统时的初衷,所以为此目的,设计者不得不舍弃了很多不符合流水执行要求的指令,比如我们在INTEL体系中最常见的堆栈操作,在MIPS中是没有的,原因就在于堆栈操作不满足流水执行的要求。
正是由于MIPS是极端的“精简”指令集,而设计得实在也是真好,所以成为经典而被几乎所有的教科书所采用。
对于MIPS原型的设计的得与失,其实在领域内部一直都有不同意见,有人就认为它过于追求概念上的“RISC”而舍弃了不该舍弃的东西,而另一些人则认为既然叫RISC,就要真正的"RISK",舍去的那些功能带来的损失小于简洁设计带来的提升。各持书己见,但结论并不重要。至少在教学这一块,MIPS确实是当之无愧的最佳范例,就像Minix操作系统一样。
顺便提一下,龙芯是完整实现了MIPS基础指令系统的“MIPS兼容的”的能用CPU,但不等于说就是一个“翻版MIPS”,它在MIPS的基础上是增加了自主的技术在里面的。好比AMD是兼容I386系列的处理器,但它有自主的如3dNow、AMD64等技术。
龙芯的网站,有兴趣的人可以关注一下。
www.loongson.cn
PS.中国文化中的“龙”,不应该被翻译成英文"Dragon",因为其文化内涵差异过于大,现在正在推广Loong这个说法。
唉,扯远了。本人可能要把“逆向”放一放了,精力有限,有正事要做。这一贴就当是水贴了。不说了,睡了。