龙芯CPU(9)–龙芯2号处理器的微结构

考察一个CPU处理器的设计,通常的方法论为:首先看其结构(Architecture),再看其微结构(Micro-Architecture)。而最重要的是其微结构。 本文是科学院计算所胡伟武与其2个博士生2005年3月发表在Journal of Computer Science and Technology计算机科学技术学报(英文版)的一篇综述文章,较详细的介绍了龙芯2号(编者注:应该是GodSon-2C)的微结构。下面是其英文摘要:

Abstract: The Godson project is the first attempt to design high performance general-purpose microprocessors in China. This paper introduces the microarchitecture of the Godson-2 processor which is a 64-bit, 4-issue, out-of-order execution RISC processor that implements the 64-bit MIPS-like instruction set. The adoption of the aggressive out-of-order execution techniques(such as register mapping, branch prediction, and dynamic scheduling) and cache techniqueus(such as non-blocking cache, load speculation, dynamic memory disambiguation) helps the Godson-2 processor to achieve high perfoormance even at not so high frequency. The Godson-2 processor has been physically implemented on a 6-mental 0.18um CMOS technology based on the automatic placing and routing flow with the help of some crafted library cells and macros. The area of the chip is 6,700 micrometers by 6,200 micrometers and the clock cycle at typical corner is 2.3ns.

【编者注:】 从文章的摘要来看,这个CPU本身并没有什么巨大的研究创新突破,当然这也不是计算所做龙芯的目的,例如,其中描述的各种技术都已经是广泛的被采用在现代CPU处理器的设计中。但是对计算所的工程价值是巨大的。这一点是不容置疑的。做龙芯确实不是为了发表几篇文章。这里的4发射在微结构上指的是Godson是一个超标量(superScalar)结构,拥有两个整数加法器(ALU)两个浮点运算器,一个Load/Store MEM部件。

在这个摘要中,对于编者而言,这个“MIPS-like”是非常细微的(subtle)但不容忽略的。在谈论一个处理器的指令集ISA时,MIPS- like还是MIPS-Compatible的ISA是区别很大的。当然,有没有区别,或者区别在哪里,都会在最后编译器,例如gcc,的后端 (backend)被体现出来。那么在这篇发表于2005年的文章中的“MIPS-Like” 里面蕴含了什么奥秘呢?编者通过调研,得出的结论是:MIPS的专利和法律问题。

在2005年,或者说龙芯2C之前,计算所并没有MIPS的许可证。MIPS的ISA中,有4个被专利保护的指令。因此,龙芯是不能实现这4条指令的。不实现这4条被专利保护的指令,在市场上就只能称为MIPS-Like的处理器。这个没法越过的鸿沟就是美国专利 4,814,976。这4个MIPS I的指令分别是:lwl, lwr, swl, and swr。该专利的一些摘要信息如下:

Patent Name:RISC computer with unaligned reference handling and method for the same

Abstract
In a RISC device a set of four instructions are provided which allow either the loading or the storage of an unaligned reference. The instructions are overlapped to reduce the overall execution time of the device. A circuit is also provided for executing the instruction set.

Patent number: 4814976
Filing date: Dec 23, 1986
Issue date: Mar 21, 1989
Inventors: Craig C. Hansen, Thomas J. Riordan
Assignees: Mips Computer Systems, Inc.
Primary Examiner: Kevin A. Kriess

2007年,为龙芯流片的欧洲公司 ST Microelectronic买下了MIPS的许可证。MIPS公司与计算所达成协议。从此龙芯可以成为MIPS兼容的处理器。有兴趣的读者可以参阅2007年3月28日MIPS公司的新闻稿

下载:龙芯2号处理器的微结构

(2个打分, 平均:5.00 / 5)

思科核心路由器CRS-1与SPP处理器的研究–交换矩阵与交换平面

CRS-1最重要的部分可以说就是其交换矩阵和拓扑。交换矩阵把CRS-1的各个组成部分有机的结合在一起,形成一个高速的路由器。CRS-1的交换是CRS-1体系结构里略微复杂和难理解的部分,下面分别对LCC和FCC的交换矩阵和拓扑做一些概念上的解释和阐述。希望读者能通过阅读相应章节之后能从整体上对CRS-1的交换空间有一个清晰的把握。

首先,读者要了解CRS-1交换矩阵(Switch Fabric),交换平面(Switch Plane),交换卡(Switch Fabric Card)和之间的关系。本节介绍交换矩阵和交换平面,这两个逻辑实体。交换卡属于物理实体(实现),将在下一节更详细的介绍。

× CRS-1交换矩阵(Switch Fabric): 交换矩阵由8个或者4个交换平面所组成。其中,16槽和8槽LCC:8个交换平面;4槽LCC:4个交换平面。交换平面之间是并行,没有依赖关系的。换言之,这些交换平面的关系是正交的。

交换矩阵中通信的粒度是大小固定的数据元(Cell)。一个数据报文(Packet)在经过交换矩阵之前,线卡的Ingress MSC卡会把该报文分解为多个数据元。MSC会决定一个数据元被发送到哪个交换平面,并通过这个交换平面到达目标Engress MSC(这个MSC会汇总属于该报文的所有Cell,并恢复成一个Packet, 并通过端口卡(PLIM)上相应的端口(Port)把报文转发出去。一定要注意的是:属于同一个报文的不同的数据元可以(其实是通常)是通过不同的交换平面抵达目的线卡的。但一个特定的Cell会而且只会通过一个选定的交换平面。在CRS-1,Ingress线卡上的MSC通常是通过轮询(RoundRobin)的算法来决定使用哪个交换平面的。这里面的原因很简单直接,可以使得这8个或4个交换平面的负载均匀化,而避免某一个交换平面产生阻塞丢掉数据元的情况。

× CRS-1交换平面(Switch Plane):交换平面是交换矩阵的最小单位。一个交换平面能够实现了一个完整报文交换的功能。其中,每个交换平面采用3级(Stage)交换的体系结构。每个交换平面是通过在LCC机箱后面的交换卡来物理实现的。换言之,每个交换卡就是一个交换平面。

CRS-1系统中,理论上只需要一个交换平面就可以实现CRS-1路由器的转发交换功能。在CRS-1的实际运营上,系统要求至少两个交换平面来保证系统路由转发交换。当然,这时系统已经不是线速的了。换言之,交换的能力不能支持众多40Gbps的线卡了。CRS-1的交换平面的交换率可以使得7个交换平面就可以保证CRS-1系统的线速。

读者阅读到这里的时候,一定要深刻的认识如下的断言:CRS-1系统中的任何(Each)一个线卡,通过中间板(midplane),可以连接到任何(Each)一个交换平面上。换言之,每个交换平面上,有来自所有线卡的输入。 每个交换平面上,都有通向任何一个线卡的输出。

下图是CRS-1交换矩阵和交换平面的逻辑示意图。读者要注意的是,在谈论交换矩阵和交换平面的时候,都是一些逻辑概念和(或)实体。与具体的物理实现是无关的。或者说,可以通过许多技术方式来实现上述的交换矩阵和其组成部分交换平面。

(2个打分, 平均:5.00 / 5)

猪流感(Swine Flu)流行分布图

      当前猪流感的流行有愈演愈烈之势。今天在美国得克萨斯州发现第一例死亡病例,也是墨西哥以外的第一个死亡病例。世界卫生组织(WHO)也将警告级别提高到五级(最高为六级),表示大面积感染(Pandemic)迫在眉睫。

      下面的Google Map是猪流感的分布图,每天更新多次。红色标签为确诊病例,黄色为疑似病例,黑色为死亡病例。

 


View Swine Flu 2009 Map in a larger map

(1个打分, 平均:5.00 / 5)

龙芯CPU(8)–龙芯2号处理器设计报告

【编者注:】 这是科学院计算所2004年11月发布(公开)的其关于龙芯2号CPU的一个设计报告。当时的流片为Godson-2C。该设计报告中讨论了Godson-2D的设计提案和将来的Godson-3的设计思想。目前,龙芯的最新流片为Godson-2F。龙芯3目前还没有任何发布日程表。对CPU微结构有兴趣的读者,这个报告一个很值得一读并展开讨论。我们也可以从其2004年的发展目标与现在的状况对比,从而也更加了解设计一个CPU的道路是不容易的。下载龙芯2号处理器设计报告

(没有打分)

流量控制,P2P应用的识别与控制系统–Panabit

在网络系统中,交换(Switching)是一个重要的概念。不管是单纯意义上的层2交换机,还是层3路由器,其实最后都是查表做Switching。例如,笔者最近在分析的思科核心路由器CRS-1,其最重要不是路由,而是各个模块之间交换的体系结构和交换吞吐率。所谓的网络安全,流量控制系统,其实就是在交换的基础上,做层3,4和最后层7(应用层)的策略控制分析,例如基于Flow的防火墙,IPS/IDP和应用层网关(ALG)等等。这里面涉及的是大量的应用层协议分析。从研究的角度上讲,这都不难,都是对报文报头(Header)的监测和相应的控制。但从工程的角度而言,这就非常复杂。为什么?一个系统对一个应用程序能识别并加以控制可以很简单,但如果必须同时对几十个,上百个应用程序的报文的各个层面的报头(而且是一个Flow中的第一个报文First Packet)要识别,这就是非常复杂的问题。读者可以想象一下,你如果用if else来写一百个应用程序的识别,并且要加入控制策略,其难度可想而知,其中之关键是可扩展性(Scalability)。换言之,系统的成功最后要看一个系统的交换(Switching)能力。

目前,在网络安全系统,智能化边缘路由器中,对应用层的识别是一个非常重要的指标。 例如,笔者曾经着力分析的思科公司基于QuantumFlow处理器的边缘路由器ASR1000中就把NBAR (Network-Based Application Recognition)作为一个非常重要的性能(Feature)列入其产品规约中。在ASR9000中也是如此。另外,在众多思科的产品中都有NBAR的性能,例如Cisco的重要的ISR1800系列,3000系列和7000系列。 NBAR可以识别许多流行的P2P的应用程序,例如BitTorrent, Gnutella, Kazaa2, eDonkey, Fasttrack, Napster等等。从某种角度而言,这些技术属于QoS(Policing,Shaping,Rate Limiting),也可以被认为是网络安全(Policy,ACL Control)的范畴。

在网络的各个关口(例如,边缘,企业WAN接入)对应用程序的识别是非常重要的。从技术上而言,这就是一个分类器(Classfiier)。了解QoS的读者知道,数据报文只有被Classify分类之后,系统才可以把不同的策略应用上去,例如网络安全策略,流量控制策略(其实就是对多级别,上百个报文队列Queue的算法管理和调度)等等。

应用程序识别和控制系统可以作为边缘路由器,企业WAN接入,独立防火墙系统的一个硬件或者软件模块集成在一起,也可以单独作为一个系统挂在一个企业网络中,例如挂在防火墙的后面。

笔者认为,长远的趋势是被集成在企业网的WAN接入的这个环节。当然,这里面要解决许多技术问题,最主要的就是吞吐率和可扩展性。

国内网络软件和设备市场,在用户程序识别,流量控制系统方面,目前出现一个叫做Panabit的流量控制软件。其发布团体为北京三棱镜软件工作室。其声称能够识别中国国内大量的P2P应用程序,流媒体,VoIP应用,网络游戏等等。其支持的协议之多令笔者是刮目相看。有兴趣的读者可以访问其主页:Panabit主页。Panabit声称的性能指标也非常不错,细节为:

软件性能
配置适当的硬件,Panabit标准版保证100Mbps线速,专业版完全满足处理双向4Gbps吞吐量。
软件安装环境
硬件:Intel x86平台,配置P3 800Mhz以上、256M内存以上、3块网卡,128M以上电子盘或硬盘均可。
操作系统:FreeBSD 6.2或以上(Panabit 2007仅支持FreeBSD 4.11)。

在这样的硬件配置下,能做到这样的线速还是不错的。当然,对于这样的系统,其对不同类型(Category)的应用程序能支持多少的pps(Packet Per Second)是更重要的。似乎Panabit没有提供这方面的数据。

在体系结构方面,似乎Panabit是采用软件OEM的方式开拓市场。这在目前的规模下是正确的。但从长远考量,是否需要做出自己的流量控制卡服务模块,例如通过PCI-E,Rapid-IO,SPI等的接口,从而第3方的网络大公司可以通过插卡的方式与其互联是一个值得考虑的问题。当然,Panabit自己做系统就是一个更大的问题了。

另外,笔者认为Panabit最大的挑战在于,如果这个市场足够大而引起国内业界,例如华为,中兴,山石等其他具备资源优势(人力,财力,渠道)的公司的足够重视,Panabit如何在竞争中生存,更重要的是,如何规模的成长,这是一个非常严重的问题。

(5个打分, 平均:4.20 / 5)

ZeniMax

header_left ZeniMax 是一个游戏开发工作室。它号称自己聚集了世界上第一流的程序员、美工、设计师等人才,目标是创作一个目前还是“秘密”的作品。从该公司的网页上可以看出, ZeniMax 的产品主要发布在视频游戏机、个人电脑以及一些手持设备上。Elder Scrolls 系列和 Fallout 3 是其代表性的产品。

ZeniMax 与一些业界知名的出版商关系密切,并自称得到了足够的资金来完成在开发中的“秘密”项目。这个项目是一款多人网上游戏(MMOG,Massively Multiplayer on-line Game)。ZeniMax 的自信来在于其关键员工的背景:Dark Age of Camelot, Warhammer Online, Star Wars: Galaxies, Ultima Online, 以及The Sims Online。

在全球金融危机的大环境下,各个游戏工作室也面临着生存危机。不久前,微软也停止了自己的Flight Simulator 的开发。ZeniMax 却过得不错,该工作室还在积极寻找在线游戏方面的人才。大型在线游戏的开发是一个漫长的过程。通常来说开发周期越长,风险就越大。不过自从魔兽争霸获取了丰厚的利润,各种大小工作室如雨后春笋般冒了出来。尽管到目前为止,还没有出现类似魔兽争霸玩家规模或者收益规模的产品,ZeniMax 还是是希望能成就一番未来。让我们来祝愿他们好运。

(2个打分, 平均:3.00 / 5)

纳米材料太阳能电池板厂商-Nanosolar公司

image      近来石油价格的大幅下降,造成太阳能电池厂商的业绩也普遍下降,因为相比较而言,太阳能发电的成本变的更高了。在这样的大形势下,位于加州圣何塞市(San Jose)的一家太阳能电池生产商,Nanosolar公司,的生意却还是很好,订货需要至少等一年,因为他们未来12个月的产量早已销售一空。

      从其名字也可以看出,Nanosolar公司的太阳能电池面板产品号称是采用纳米材料制成,成本比传统产品低一个数量级,单位面积的发电量确可以高好几倍。从其融资历史和产品销售情况来看,他们不像是在单纯玩(纳米)概念,技术上确有过人之处。该公司于2002年由两名斯坦福大学的博士候选人(Martin Roscheisen和Brian Sager)创立,初期投资来自创始人和几位天使投资人,其中包括谷歌公司的两位创始人(他们也曾经是斯坦福的博士候选人)。Nanosolar创立后几年内又成功拿到多轮投资,05年Series B投资拿到2千万美元,06年Series C拿到7千5百万美元,08年Series D又拿到3亿美元,总投资超过4亿美元。除此之外,Nanosolar在2007年还获得美国能源部的一笔2千万美元的基金(这也是能源部在新能源方面批准的最大的一笔基金)。Nanosolar目前在圣何塞设有太阳能电池生产厂,还在德国设有组装厂。

      Nanosolar的投资商包括Benchmark Capital,Mohr Davidow Ventures,EDF,AES Corporation,和Energy Capital Partners等。有关Nanosolar更全面的介绍,请参见Nanosolar公司网站

(2个打分, 平均:5.00 / 5)

龙芯CPU(7)–高性能通用微处理器研发现状及发展策略

【编者注:】这是胡伟武博士在2006年1月发表在中国计算机学会通讯杂志创刊号的一篇文章。在该文中,胡伟武阐述了其对目前国内外高性能通用微处理器的研发现状,和对龙芯将来发展的策略的一些观点,例如:

根据目前应用的需求,我们设计的处理器芯片所面向的系统分别为高性能PC、SMP服务器以及高性能计算机系统。根据上述三类系统的要求,我们的高性能通用处理器芯片研制可以分如下三个阶段进行。
第一阶段时间跨度是从现在到“十五”末(2004年~2005年),在目前国内已经研制和正在研制的高性能通用微处理器的基础上进一步优化结构和提高主频,争取“十五”微处理器的工作频率达到1GHz 左右,SPEC CPU2000 的实测性能达到和1.5GHz~2.0GHz的Pentium 4相当的水平,同时设计配套芯片组和相关系统应用软件,研制成功高性能桌面个人计算机,在“十一五”期间形成一定规模的产业。

第二阶段时间跨度从现在到“十一五”初(2004年~2006年),突破单核、单线程OC实现技术。其中,每个SOC中嵌入一个高性能通用CPU核以及桥控制逻辑和各种口控制逻辑,如存储器控制逻辑DDR、I/O 控制逻辑PCI40、HT、AGP41等。此外还直接支持多处理机互连的SOC,通过多处理器互连网络路由构成支持全局存储访问的多处理机系统,解决服务器用CPU问题。

第三阶段时间跨度为“十一五”初期到“十一五”末(2006年~2010年),突破多多线程SOC技术。到“十一五”结束时设计出主频为2GHz~4GHz,片内峰值运算速为每秒1000亿次浮点运算的多核多线程芯片。基于上述单核和多核高性能SOC芯片,“十一五”初研制成功万亿次高性能计算机系统,在“十一五”末研制成功百万亿次高性能机系统。并下大力推广应用,着力解决国防和国民经济的核心重要应用领域依赖国外微处理器问题。

(全文下载:高性能通用微处理器研发现状及发展策略)

(没有打分)