2009年6月15日,MIPS公司网站发布新闻,中国科学院计算所取得MIPS32®和MIPS64® Architecture的授权,用于龙芯的开发和商用。新闻见下面的链接:
(http://www.mips.com/news-events/newsroom/release-archive-2009/6_15_09.dot)
2007年3月28日,STMicroelectronics公司网站发布新闻,STMicroelectronics制造和销售中国科学院计算所研制的龙芯IP。新闻见下面的链接:
(http://www.st.com/cn/com/press_releases/t2154.jsp)
龙芯采样MIPS的Architecture授权,芯片又由ST制造,关于龙芯的知识产权问题一直是人们关注的焦点,要弄清这个问题,需要首先理解处理器的分层模型。
在计算机体系结构中,处理器被分为3个层次:
指令集体系结构(Instruction Set Architecture,ISA)常被简称为Architecture(架构),是处理器的一个抽象描述,处理器对外提供哪些指令,提供哪些寻址方式,拥有哪些程序员可见的寄存器等等,这些都属于ISA的范畴,它描述的是处理器对软件人员提供的接口。ISA在处理器中的实现,被称为Microarchitecture(微架构),同样是x86的Architecture,Intel和AMD各自使用不同的Microarchitecture。
通俗的说,Architecture是处理器的外表,Microarchitecture是处理器的内心。Architecture是设计规范,定义处理器能做什么,Microarchitecture是设计实现,描述处理器是怎么实现功能的。
处理器的物理实现是具体的实现过程,可以用20nm的集成电路工艺实现处理器,也可以用40nm的工艺实现,可以用电子实现(电子计算机),也可以用量子实现(量子计算机)。Microarchitecture描述的是处理器的逻辑结构,不关注处理器的物理实现工艺。
如果用软件开发的流程来和处理器进行对比,那么Architecture就好比需求,Microarchitecture好比设计,物理实现好比真正的代码。
Microarchitecture通常也可以认为等同于内核(core),一个处理器除了内核外,也还有很多其他的东西,例如:I/O(Input/Output)、电源、时钟等等,同样一种微架构可以出多种型号的处理器。
下面这张图以商用处理器的例子描述了指令集、微架构、处理器之间的关系:
Intel著名的奔2、奔3电脑,使用了Intel历史上非常成功的P6微架构,奔4以及一部分志强处理器使用了NetBurst微架构,它们都使用x86指令集。ARM公司设计的ARM Cortex-A8内核使用ARMv7指令集,被用在了TI、三星等很多公司的处理器上。
很多人会混淆ARM7和ARMv7,ARM7是一种微架构,使用的是ARMv4指令集,ARMv7是一种指令集,Cortex系列的都使用ARMv7指令集。
从上面的分析我们得知:MIPS处于指令集这一层,龙芯处于微架构这一层,ST处于物理实现这一层。虽然MIPS也卖内核,不过相信龙芯的微架构还是会有自己的特色。