龙芯电脑使用微信的方法:简单三步

举爪为证 发表了文章 • 0 个评论 • 173 次浏览 • 2017-01-24 10:12 • 来自相关话题

原文链接:http://www.loongson.cn/news/company/455.html

      笔者每天办公的主力用机是一台龙芯3A2000桌面电脑,只要是PC机上能做的事情,比如程序开发、办公软件、浏览器、高清视频、网络购物,都已经干得很 好了,这在笔者以前的文章中都有完整介绍。微信成了现在不可缺少的移动办工软件,利用微信可以随时随地的进行群体沟通、图片交流、业务推广,大有取代电子 邮件的势头。笔者在从事产品开发和技术支持的过程中,在微信中解决了不少问题,但是苦于在手机上触摸屏打字输入太痛苦,所以摸索出一条在龙芯电脑上使用微 信的方法。         1. 龙芯电脑,打开浏览器,访问: https://wx.qq.com




wx.qq.com 主页
        2. 手机上打开微信,使用“扫一扫”,对准屏幕上的二维码,点击“登录”




登录成功
        3. 在可以在电脑上的网页里面使用微信了。




龙芯3A2000桌面电脑使用微信
        经测试,在龙芯社区版操作系统Loongnix中集成的两款浏览器中,Firefox45和Chrome39都功能正常。支持文字、表情、发送图片、文件 传输,支持群聊,功能大体够用。另外还实现了“桌面提醒”,有新的消息时会在右下角弹出一个提醒的窗口,即使浏览器不是当前显示的窗口,也不会遗漏重要的 通知。
只有“截屏”功能需要安装一个浏览器插件,在龙芯Firefox45和Chrome39都无法使用,可以使用操作系统自带的“附件-抓图”工具先生成图 片,再发送,效果是相同的,只是稍微费事一点。还有大家常用的“发红包”功能,在微信网页版中没有实现,大家上班时间就不要想了,还是安静的做正经事吧。




龙芯社区版操作系统Loongnix
        笔者近期所有的日常工作都是在龙芯3A2000电脑上,安全稳定可靠,系统简洁流畅,完全可以取代Windows。后面还会不断的发现新的软件给大家尝鲜。 查看全部
原文链接:http://www.loongson.cn/news/company/455.html

      笔者每天办公的主力用机是一台龙芯3A2000桌面电脑,只要是PC机上能做的事情,比如程序开发、办公软件、浏览器、高清视频、网络购物,都已经干得很 好了,这在笔者以前的文章中都有完整介绍。微信成了现在不可缺少的移动办工软件,利用微信可以随时随地的进行群体沟通、图片交流、业务推广,大有取代电子 邮件的势头。笔者在从事产品开发和技术支持的过程中,在微信中解决了不少问题,但是苦于在手机上触摸屏打字输入太痛苦,所以摸索出一条在龙芯电脑上使用微 信的方法。         1. 龙芯电脑,打开浏览器,访问: https://wx.qq.com
wx.qq_.com_主页_.png

wx.qq.com 主页
        2. 手机上打开微信,使用“扫一扫”,对准屏幕上的二维码,点击“登录”
登录成功.png

登录成功
        3. 在可以在电脑上的网页里面使用微信了。
龙芯3A2000桌面电脑使用微信.PNG

龙芯3A2000桌面电脑使用微信
        经测试,在龙芯社区版操作系统Loongnix中集成的两款浏览器中,Firefox45和Chrome39都功能正常。支持文字、表情、发送图片、文件 传输,支持群聊,功能大体够用。另外还实现了“桌面提醒”,有新的消息时会在右下角弹出一个提醒的窗口,即使浏览器不是当前显示的窗口,也不会遗漏重要的 通知。
只有“截屏”功能需要安装一个浏览器插件,在龙芯Firefox45和Chrome39都无法使用,可以使用操作系统自带的“附件-抓图”工具先生成图 片,再发送,效果是相同的,只是稍微费事一点。还有大家常用的“发红包”功能,在微信网页版中没有实现,大家上班时间就不要想了,还是安静的做正经事吧。
龙芯社区版操作系统Loongnix.png

龙芯社区版操作系统Loongnix
        笔者近期所有的日常工作都是在龙芯3A2000电脑上,安全稳定可靠,系统简洁流畅,完全可以取代Windows。后面还会不断的发现新的软件给大家尝鲜。

用毛泽东思想指导龙芯的工作(2015)

呼呀 发表了文章 • 0 个评论 • 157 次浏览 • 2017-01-24 10:10 • 来自相关话题

原文链接:用毛泽东思想指导龙芯的工作(2015)


——在2015年龙芯党支部民主生活会上的讲话
        过去几年龙芯党支部的民主生活会都收到了很好的效果,尤其是大家提的意见对龙芯的工作很有好处,有些意见已经成为龙芯公司规章制度的一部分,有些意见成为 了我们工作的常态。例如根据民主生活会的意见,总裁办每季度都组织职能部门的经理和各研发部和事业部的员工召开座谈会,听取大家对公司管理工作的意见和建 议,每次都有收获。
        民主生活会和其它会议最大的区别就是其它会议主要讨论工作,讨论做事情的方法,而民主生活会讨论思想,讨论想事情的方法。我们建立的规章制度是规定做事情 的方法,是规范人们的行为,你可以不这样想,但必须这样做;但是如果大家能够想到一块去,形成共同意志,自然就能做到一块去,工作主动性更强,积极性更 高,工作效率自然更高。因此,今年的民主生活会我想跟大家谈谈思想方法的问题。
       思想方法就是我们想事情的方法。例如,当我们在实际应用中发现主频为1GHz的龙芯CPU性能比主频为2GHz的X86 CPU性能差10倍时,我们有两种可能的想法:一是直接下个结论,即龙芯CPU不行,比X86差距太大,然后销售人员抱怨研发人员研发水平差,研发人员抱 怨管理人员没有给与足够的资源;二是找原因,既然主频只差一倍,那多出来的九倍运行时间哪里去了?最后发现CPU流水线的效率低2-3倍,基础软件效率也 差2-3倍,并针对找到的问题进行改进,做到“定位准确、机理清楚、措施有效”。这样一比较,大家都知道我们显然应该采用第二种想法。但在实际工作 中,90%以上的人会产生第一种想法。
        思想方法决定工作方法和工作结果。例如,如果我们觉得龙芯就是不行,那我们就不用干了,趁早散伙;如果我们觉得龙芯现在虽然与Intel有差距,但我们能 够通过努力不断缩小差距,并且在这个过程中不排除在局部取得优势,那我们就会不断前进。又如,作为一个知识分子,如果做一件事前想一下“领导怎么看我做这 件事”,那他就是知识奴才,一辈子是当奴才的命;如果做一件事前想一下“这件事对人民有没有好处”,那他就是有良知的知识分子,一辈子是当主人的命。
        一个人的思想方法与他的立场、知识水平等因素有关。中日钓鱼岛之争,多数中国人觉得钓鱼岛是中国的,多数日本人觉得钓鱼岛是日本的,那是立场决定的。天上 发生了月全食,古人认为是天狗吃了月亮,今人认为是地球把太阳挡住了,这是跟知识水平有关。人的正确思想从哪里来?毛主席说过:“人的正确思想,只能从社 会实践中来,只能从社会的生产斗争、阶级斗争和科学实验这三项实践中来。人们的社会存在,决定人们的思想。”
        我们长期坚持用毛泽东思想武装龙芯公司,指的就是学习毛主席的思想方法,即学习毛主席想事情的方法。为什么我们要学习毛主席的思想方法呢?因为用毛主席的思想方法,就能做正确的事,走成功道路。
        毛泽东思想分两个层面:基本原理层面和具体做法层面。土地革命时期农村包围城市和抗日战争时期独立自主的山地游击战是具体做法层面的东西。毛泽东思想的基 本原理主要包括群众路线、实事求是、自力更生三个方面的内容。我国社会主义初级阶段的理论,并没有在基本原理层面对毛泽东思想有所突破,而是把毛泽东思想 的基本原理和社会主义初级阶段的具体实践相结合而形成的一系列方针、政策、办法。例如,毛主席在《实践论》中倡导的“从实践到认识,再从认识到实践”的螺 旋上升的基本方法,指出了当我们在前进中遇到没搞清楚的重大理论问题而不知道下一步怎么办时,不能教条地停下来把理论问题吵清楚再前进,而是应该在前进道 路上通过实践总结经验教训,探索出其中的规律性,再用于指导后续的实践;在改革开放的今天,不论是“摸石头过河”还是“用发展的方法解决前进中的问题”都 是毛泽东思想中实事求是的基本原理在新历史阶段的具体应用。又如,我们现在不打游击战了,但群众路线的基本原理没有变,最近在新疆的反恐斗争中又得到了灵 活运用,取得了很好的效果。
        中国有很多公司,都是按照《公司法》设立的治理架构,经营公司的人都想成功,为什么有的成功有的失败呢?战场上两军对垒,双方主帅都手持《孙子兵法》,为 什么有输有赢呢?可见要做好一件事,办好一个公司,除了一般性的原则及个人努力因素外,还有一个思想方法的问题。我们在2010年初成立龙芯公司时,知道 自己没有经营企业的经验,因此提出“在产业化中学习产业化”。回顾2010年以来的发展历程,龙芯走的是“之”字形的发展道路。六年了,正反两方面的经验 都有一些了,我们回顾一下自己过去走过的路,总结一下经验教训,形成我们的思想方法,有利于统一思想,有利于龙芯事业的发展。我们一直以来提倡“用毛泽东 思想武装龙芯公司”,我认为把毛泽东思想的基本原理,即群众路线、自力更生、实事求是,跟龙芯的具体工作相结合,形成龙芯公司经营的思想方法,是很有必要 的。
 
一、坚持群众路线
 
        用毛泽东思想指导龙芯工作,首先要解决“为了谁”的问题。我们从2001年开始龙芯CPU的研制,先在计算所进行了9年的技术积累;2010年转型成立公 司,进行艰苦的创业;2015年开始龙芯公司从创业期转向发展期,开始认真考虑上市的问题,不少基金和劵商都积极地想参与到龙芯公司的上市过程中来。
        我们的目的是为了上市吗?确实很多企业初创期就鼓励员工为了上市而奋斗。龙芯公司是要上市的,但龙芯公司不把上市作为目的。让我们回顾一下龙芯的定位: “以安全可控为主题,以产业发展为主线,以体系建设为目标”。我们的目的是建立独立于Wintel体系和ARM+Android体系之外的技术体系,成为 IT产业多极世界中的一极。我们不一定要打破一个旧世界,但我们一定要建设一个新世界。
        如果为了上市,为了挣钱,我们目前的很多做法就需要改变。例如,在安全应用领域,很多应用,即使到了真正装备量产阶段,采购龙芯CPU的数量也很少,但前 期的支持工作很多,总体上是赔的。如果为了挣钱,这样的应用我们不应该支持,我们应该对客户进行挑选,就像流片厂家挑选我们一样。有些流片厂家就不愿意支 持龙芯,因为他们觉得龙芯的量太小。但在安全应用领域,我们是不挑客户的,凡是龙芯CPU能满足需求的,我们都支持,因为这是我国自主可控事业的需要。这 种需要是国家和人民的需要,我们坚持毛泽东思想,就是为了满足国家和人民的需要,自己吃点亏也没关系。
        同时,这么多年来我们也深刻地体会到,表面上对有些应用的支持我们是赔钱的,是吃亏的,但归根到底是不吃亏的。不同的应用需求能够让我们快速发现我们技术 平台的不足,促使我们的技术平台不断完善;能够锻炼我们的自主创新能力,锻炼我们的技术与市场结合的能力。有的客户虽然某个应用确实芯片的使用量不大,但 应用的种类数目大,客户熟悉了龙芯后就倾向于所有应用都用龙芯,总体上还是赚的,没有前面赔一些,就不会有后面的赚钱。龙芯支持大量的客户,在行业中形成 品牌,使得更多的客户愿意选用龙芯,机关也愿意支持龙芯。因此,坚持站在国家的角度、站在人民的角度考虑龙芯的发展,表面上吃亏,实际上不吃亏;短期吃 亏,长期不吃亏。龙芯的短期利益和长期利益,企业利益和国家利益统一在建立自主体系的创新实践中。
        “为了谁”的问题另一方面的含义是企业赚的钱归谁的问题?一般人认为,企业赚的钱是股东投资产生的利润。但马克思主义者认为,股东的投资是静态的,不会生 钱,只有动态的劳动者的劳动才能创造价值,因此企业赚的钱是劳动者的剩余价值,就像国际歌里唱的“是谁创造了人类世界,是我们劳动群众,一切归劳动者所 有,哪能容得寄生虫!”我们坚持毛泽东思想就要处理好劳动者和股东的利益关系,企业赚的钱首先要考虑劳动者的利益,其次考虑股东的利益。
        我有一个理念,一定要让龙芯公司员工的收入在同行业中处于高端。经过六年的创业,最近我们的销售开始好起来了,即使现在还不挣钱,但未来挣钱的前景明朗 了,我们就迫不及待地开始增加员工收入。同时,我们要求大家建立主人翁的责任感,更加努力地工作,我们提高大家收入的一个重要方法是有组织地加班并按照国 家规定给予加班工资。2015年我们可能是在盈亏的平衡点上,如果我们不大幅调整员工薪酬,尤其是技术人员薪酬,我们可能可以做到盈亏平衡,调整后就不一 定做得到了,即使这样我们还要调整。我们还会通过各种形式,包括提高基础薪酬,设置加班薪酬,增加绩效薪酬来提高龙芯公司劳动者的收入,争取通过2-3年 努力,让龙芯公司员工的收入在同行业中收入处于领先行列,至少可以随便从对面的华为招人。大家都认为,华为是国内掌握核心技术比较多的企业,那得看跟谁 比,华为比联想更加掌握核心技术,但与龙芯比还是差一截,就像他们跟Intel比差一截一样。按照社会主义“多劳多得”的分配原则,掌握核心技术的人才当 然就应该拿更多的钱。
        我们要建立多层次的员工收入体系,除了在薪酬方面中建立员工收入与部门收入挂钩的绩效机制,还要努力争取建立员工分红、股权和期权激励等收入体系。例如, 龙芯公司的经营团队持有部分龙芯公司的股权。以后公司有分红了,是否可以考虑拿出一部分出来作为公司全体员工的年终分红?我们像生产队记工分一样,为每一 位员工积分,年终按照积分进行分红。
        除了“为了谁”的问题,毛主席的群众路线的思想中还有“依靠谁”的问题。龙芯的工作一定要坚定不移地依靠广大员工群众,而不是依靠少数管理者。这就要求我 们营造一种让广大员工真正认为自己是主人翁的氛围。过去几年我们在这方面做了一些工作。例如,每年一次民主生活会,从今年开始每季度安排职能部门经理与事 业部和研发部员工的座谈会,都从群众建议中吸收了很多意见和建议并进行管理改进。公司在业务上的很多认识和决策也是从基层群众中来。最近,我们不断调整事 业部和研发部的绩效机制,使员工的收入与公司收入适度挂钩。但这方面我们做的还不够,龙芯的很多员工主人翁意识还不强,这方面的工作以后还要改进,尤其是 在公司盈利后要建立起让广大员工分享利益的机制。
        我认为统一战线也是群众路线的一部分。龙芯的统一战线包括产业链的建设,品牌建设。我们要让越来越多的人来成为龙芯产业链的成员,越来越多的人支持龙芯,同情龙芯。
 
二、坚持自力更生
 
        毛主席说过:“我们的方针要放在什么基点上?放在自己力量的基点上叫做自力更生”。
        自力更生的关键就是自主能力的建设,能力在革命战争时代体现为“枪杆子”,在今天体现为自主创新能力。有了能力就能把握事物的主动权。
        为什么要自力更生?因为只有自力更生,才能不受制于人。革命也好、建设也好,创新也好,依靠别人总是容易一些,完全靠自己总是难很多,但实践表明再难也得靠自己。
        毛主席自力更生思想也是在实践中被逼出来的,总结起来可以分为四个阶段。第一阶段是青年时期。毛主席青年时代也没有想过要革命,也是想着改良主义可以救中 国。所谓改良主义,就是希望帝国主义和当时身居高位的精英阶层良心发现,或者明白“水可载舟、亦可覆舟”的道理,对底层人民好一点。但后来发现此路不通, 马克思主义是毛主席“山穷水尽诸路皆走不通了”的选择。第二阶段是建党后领导工人运动。毛主席根据当时陈独秀领导的党中央的要求在湖南进行工人运动,光大 的罢工就举行了十多次。虽然取得了一些成绩,但最后的结果是工人罢工受镇压,工人领袖被杀,毛主席本人在湖南也没有立足之地。第三个阶段是第一次国共合作 期间。孙中山多次依靠军阀失败后终于开始建立国民党自己的武装,毛主席根据党中央国共合作的要求,全力投入到国共合作中,并得到孙中山的器重。北伐成功的 一个重要原因是得到民众的支持,而民众主要是共产党发动起来的,北伐到一半时,国民党就开始与江浙财团和代表英美利益的买办集团合作排挤共产党。毛主席先 是在上海帮国民党进行党员重新登记时由于坚持原则被停了工资和经费,不得已被排挤回湖南;后是蒋介石发动“四·一二”政变,幸好当时他已经把主要精力放在 农民运动上了,没被抓住。第四个阶段是土地革命期间。好不容易上山、建军,明确了武装夺取政权、农村包围城市的道路,把井冈山根据地建设得如火如荼,但被 那些在上海租界呆不住跑到井冈山避难的书生们轻松地夺了权,执行“左”倾路线,不得不进行两万五千里长征;长征途中好不容易红一、四方面军会师了,在向张 国焘让出不少权力的情况下,张国焘还不满足,想通过武力扣押当时的党中央。在经历上述几个阶段的经验教训以后,毛主席在以后的革命和建设中就牢牢掌握了主 动权,包括国共第二次合作时坚持独立自主的山地游击战,反对共产国际要求的“一切通过统一战线”的错误主张;重庆谈判坚持保留边区和军队;建国后先是抗美 援朝,后是中苏论战。等等。
        我们回顾毛主席自力更生思想的形成过程,是要从中明白一个道理,就是自主创新必须建立和依靠自己的能力。
        在中国的近代史上,我们有三次向外国老师学习的经验,但每次都受到老师的欺负。第一次是洋务运动,我们向西方列强学习科学和技术,学习工业化,结果是西方 列强使劲欺负中国,中国人民水深火热,毛主席领导共产党推翻了三座大山,解放了中国人民。第二次是建国后向苏联学习,一边倒,结果是苏联又想建联合舰队, 又想建长波电台,毛主席毫不犹豫地跟他们闹翻了,先是中苏论战,后是拉着美国整垮了苏联。第三次是改革开放,我们学些西方的管理理念和科学技术,学到今 天,西方这个老师还是不断欺负我们,不断围堵中国。
        今年是毛主席发表《愚公移山》七十周年,毛主席当年号召通过自力更生搬掉帝国主义和封建主义两座大山,我们今天也需要通过自力更生搬掉国家安全受制于人和 产业发展受制于人两座大山。自主创新要发扬自力更生精神,不能“懒惰取巧依赖外力”。想依靠美国人帮我们发展CPU事业,就像抗战初期蒋介石想依靠美国人 帮我们打日本鬼子一样,是不可能的。具体到CPU来说,我们没有的时候,西方卡我们;我们经过十多年的努力开始有点基础了,他们感到我们的威胁了,于是通 过各种方式,在国内找代理,把他们的技术和产品包装一下,也叫自主CPU,归根到底是叫我们不用自己干,继续做他们的“马仔”。
        最近,随着我国CPU事业的发展,尤其是国家安全的需求和市场的发展,我国CPU形成了“研”、“O(DM)”、“攒”三条路线。“研”的路线指的是坚持 CPU核心的自主研发,以龙芯和申威为代表;“攒”的路线指的是使用国外的CPU核心自主研制SOC芯片,以海思和飞腾为代表;“O”的路线指的是我们掏 钱委托国外队伍做,但我们拥有一定的知识产权,以兆芯和中晟宏芯为代表。相比之下,“研”的路线见效慢,但可持续性和可控性强;“O”的路线见效最快 (3-6个月即可),但可持续性和可控性最弱;“攒”的路线介于两者之间,目前我国用ARM的处理器核研制的SOC芯片每年销量已经超过10亿片。
        面对西方的围堵,我们要牢记毛主席的教导,把我们的方针放在自己力量的基点上。毛主席说的是自己的力量,而不是自己的产品或技术,产品和技术通过商业交换 有时候可以变成自己的,但自主创新能力只能从自主创新的实践中培养。只有自己形成了能力,才能取得主动权。毛主席打仗,从来不在乎一城一池的得失,连延安 都主动放弃过,但毛主席坚持“人民的武装,一杆枪一颗子弹都不能交给敌人”。城池就相当于是技术或产品,能力就是“枪杆子”。因此,我们发展以CPU和操 作系统为代表的基础软硬件,要建立能力,有能力才能建体系,才有国家安全和产业发展的主动权。
        要自力更生,必须要艰苦奋斗。自力更生就是不依靠别人自己闯出一条新路来,没有现成的物质基础,也没有可以直接借鉴的方法,自然要辛苦一些。毛主席如果在 抗战后按照苏联的要求或者蒋介石的要求放弃军队和边区,在国民党的联合政府中弄个官当当,自然会比打解放战争容易,事实上蒋介石当时是建议毛主席去当新疆 省主席的。在建国后如果愿意放弃一些国家主权给苏联当马仔,也不用那么辛苦,勒紧裤腰带搞两弹一星。但不自力更生的后果是为了眼前图省事放弃中国人民的长 远利益。
        我们目前做CPU也一样,如果我们放弃自主研发,而是走“攒”或者“O”的路线,那我们会省事一些,近期发展得快一些。事实上,国外或境外主要CPU企 业,包括Intel、AMD、IBM、威盛,在前些年都主动跟龙芯谈过合作,希望我们引进他们的技术,自己就不用干了。他们当时愿意给的东西确实比我们自 己研发的好。但我想来想去,还是要坚持自主研发。别说CPU,我们现在就是一个GPU没有掌握都很难受,大家可能没有经历过跟外商谈判,我经常谈,按理说 我们是甲方,但在购买核心技术的谈判中,甲方是受乙方的气的。
        因此,我们要自己掌握核心技术,必然要艰苦一些。我们技术上不如人家,钱也没有人家多,怎么样才能赶超?除了艰苦奋斗还是艰苦奋斗。中国的IT产业赋予我们这代人这个使命,我们就要承担起这个使命。我们这些人就要认这个命。
        自力更生最终会给我们带来好处。毛主席领导的共产党因为在解放战争期间坚持自力更生,取得了建立新中国的伟大胜利;因为在建国后自力更生,建立了完整的工 业体系,研制出了两弹一星。我们今天也一样,坚持自主研发虽然辛苦一点,虽然见效慢一点,但最终能够有无限的发展空间。龙芯在过去发展过程中碰到过很多困 难,但由于我们在困难面前不退却,不走引进技术的买办路线,而是坚持自主创新,经过多年的努力,取得了很大的成果。一方面,我们建立了技术和市场结合的能 力,不仅能够把技术辐射出去为市场所接受,为企业创造效益,而且能够及时根据市场需求(而不是美国人说的发展趋势)研发新产品。另一方面,我们在掌握 CPU核心技术方面不断取得突破,我们最新研制的3A2000/3B2000 CPU虽然由于工艺的原因主频低一些,但其微结构已经达到世界先进水平,不论是飞腾的ARM处理器还是兆芯的威盛处理器,其微结构都与Intel的低端 CPU阿童木系列处于同一水平,而龙芯的微结构已经与Intel的高端CPU酷睿系列处于同一水平。采取引进路线的飞腾和兆芯CPU性能很难再提高了,而 我们经过多年的积累已经进入提高性能的快车道,可以不断改进和提高。
        因为我们坚持自力更生,所以我们才敢于提出建立独立于Wintel体系和ARM+Android体系的自主软硬件生态;才敢于提出:判断技术是否先进的标 准,不是看其跟美国人跟得紧不紧,而是看其跟应用结合得紧不紧,自主CPU应当在与应用结合的过程中,逐渐从自主软硬件的必然王国走向自由王国。这些事 情,估计采取引进路线的飞腾和兆芯是想也不敢想的,而龙芯不仅敢想,而且敢做。因为我们在过去几年的产业化实践中磨出了尖牙利爪,长出了熊心豹子胆。
 
三、坚持实事求是
 
        毛主席说:“主动权是一个极端重要的事情。主动权,就是‘高屋建瓴’、‘势如破竹’。这件事来自实事求是,来自客观情况在人们头脑中的真实的反映,即人们对于客观外界的辩证法的认识过程”。
        过去的经验告诉我们:坚持自主创新会面临很多困难和问题,关键是碰到困难和问题时采取什么样的态度。CPU的产业化更需要科学精神和实事求是的态度,通过 与应用的磨合发现问题,并在解决问题的过程中形成螺旋上升。我们要有“板凳坐得十年冷,文章不写一句空”的作风。CPU的核心技术是从细节中“抠”出来 的,是在实践中随着认识的提高和技术能力的增长从量变到质变演变出来的。
        回顾龙芯公司从2010建立到现在的发展历程,我们走的弯路比直路多。在芯片研发方面,我们过分强调多核和SOC的技术发展趋势而对处理器核本身性能提高 关注不够。在产品质量方面,在计算所时人盯人的作坊式的研制流程打破后而公司产品质量流程建立起来之前有多个芯片的流片出现了严重的质量事故。在绩效管理 方面,我们抄袭不符合我们目前发展阶段的成熟大企业的绩效考核方式,不仅没有提高反而挫伤了销售人员的积极性。总之,我们低估了产业化,尤其是像CPU这 样核心技术的产业化的困难,走了很多弯路。
        但我们坚持毛主席关于实事求是的思想,及时从错误中明白过来,及时总结经验教训,不断调整龙芯的研发工作、市场工作、管理工作,使之符合龙芯的发展实践, 使之符合客户的需要。人们常说“失败是成功之母”,世界上失败的人和失败的事很多,成功的倒不多,可见光有成功之母还孕育不出成功来,还需要成功之父。成 功之父就是及时总结经验教训,在很多现象中去掉假象,使我们掌握的事实比较全面地反映客观实际,并从中找出规律性的东西,找出事物的本质特征,找出该事物 与其它事物之间的联系。一句话,实事求是的思想方法和工作作风就是成功之父。成功之父和成功之母一起才能孕育出成功来。
        我认为,过去几年我们坚持实事求是的思想方法和工作作风,在龙芯的市场工作,研发工作,管理工作三个方面形成了三个闭环。
        第一个闭环就是建立质量和服务体系,完成龙芯CPU从样品到产品到商品的转变。主要是把当年在计算所研发的3A、2F、3B、2H等科研成果(样品)转换 成产品,在交付用户使用的过程中根据用户的需求提供服务,使用户能够用好龙芯的CPU。这样就形成了与用户之间的一个闭环。回顾起来,这个闭环是在 2013年左右形成的。
        第二个闭环就是根据市场需求来定义龙芯的下一代CPU产品。在应用推广过程中,龙芯原有产品的问题不断被发现,在计算所时的科研成果主要是跟踪技术发展趋 势,并没有结合用户需求,虽然有些长板做得不错(例如2009年就研制成功当时核数还是算多的四核3A,3B的浮点峰值性能与目前Intel的CPU比也 不差),但短板短得比较厉害。因此,我们及时调整了研发路线,取消了当时已经快完成的16核3C项目,把研发重点转移到处理器核的性能上来,结合特定应用 需求研制了专用芯片如2J、1E、1F、1D等。尤其是最近研制成功的四核3A2000的处理器核性能大幅度提高,在党政办公等试用中取得了很好的效果。 目前,龙芯建立起了较为有效的芯片论证、立项流程,让主要用户参与立项的技术规格评审,对立项产品进行经济效益分析等。第二个闭环在第一个闭环的基础上形 成了螺旋上升。可以说,第二个闭环是在2015年初步形成的。
        第三个闭环就是通过持续的管理改进提高研发和市场结合的效率并加以制度化和具体化。近几年,我们通过持续的内部管理改进以适应研发和市场的前两个闭环的需 要。例如,我们在事业部和研发部均建立起与市场效益挂钩的绩效体系,对研发部和事业部进行一定程度上的独立核算并将研发部和事业部人员的收入与本部门效益 挂钩。这样,研发部和事业部均开始关注如何通过服务客户增加本部门的收入,开始认真计算每个研发人员的成本在不同研发项目之间的分摊,对本部门的费用和有 关产品的成本构成进行质疑,认真参与研发项目的立项并提出质疑或改进意见,等等。这些工作还在持续进行中,希望再经过1-2年,龙芯公司的这第三个闭环比 较完备。
        上述三个闭环,都是在实事求是的思想指导下,总结龙芯发展过程中的经验教训,在实践中发展起来的。这几个闭环的不断循环,必然导致龙芯技术水平的不断提 高,必然导致龙芯市场收入的不断增加,必然导致更大的产业生态闭环的形成。未来龙芯的核心竞争力主要体现在这几个闭环的不断完善中。目前,国内其它CPU 研制单位,只有个别开始有完善第一个闭环的意识,第二、第三个闭环的工作还没有起步。
        坚持实事求是的一个重要方法是碰到问题和困难不是急着下结论(如自主研发不行),而是主动找原因(如主频只差1倍,性能差10倍,多出来的9倍运行时间哪里去了),做到“定位准确、机理清楚、措施有效”。
        主观主义是实事求是这种思想方法的克星。主观主义的来源有多种:第一种是私心杂念太重,为了个人利益或小集体利益不惜以偏盖全,在我党的历史上王明、张国 焘都犯这种错误;第二种是教条主义,即脱离自己的发展阶段和客观实践,把别人的成功经验当教条,在我党历史上博古、洛甫、凯丰主要是犯这种错误;第三种是 经验主义,即实践发展了,还死守过去的做法不变。
        龙芯目前发展阶段危害最大的是教条主义。因为教条主义符合我们良好的主观愿望,而且不容易被察觉。例如,根据客户的反映,不少人建议说,Intel的高端 系列产品细分为i3、i5、i7和E3、E5、E7,龙芯也应该学Intel这样细分产品来满足不同的需求。这种想法确实有客观需要,因为我们的多数客户 对Intel的套路很熟悉,而且Intel的这种套路也是从他们与客户的不断磨合中总结出来的。但不符合龙芯目前的发展阶段和现实可能性,主要是龙芯没有 那么多钱也没有那么多人,市场也不够成熟,能学Intel分为高端(酷睿和至强)和低端(阿童木)两条产品线就很不容易了。我认为,我们应该找到 Intel这种做法背后的基本原理,并且把它跟龙芯的具体实践相结合,从而推导出龙芯的具体做法。对于Intel目前的产品划分方法,我认为基本原理包 括:结合不同的应用提供不同性能的产品,以达到较高的性价比;用低端的产品及较低的价格来筑起市场防线,从而使高端产品卖高价,获取较高的利润。我们目前 在安全领域把芯片质量等级分为若干级虽然做法不一样,但基本原理是符合Intel的产品分类的。
         但我们不应该跟现在的Intel比。我认为我们应该认真研究Intel在上世纪八、九十年代的做法,因为我们现在的处境与Intel上世纪八、九十年代 更加相像。那时候美国有六、七家CPU企业,如Intel、AMD、DEC、IBM、SUN、HP、SGI,其中Intel的技术水平不算高端,DEC使 用0.35微米的工艺就能研制出主频600MHz的四发射64位Alpha 21264,比Intel高好几倍。那时候像DEC这样的企业肯定使劲嘲笑Intel的水平不行,但Intel经过十来年的努力,把这些当时技术水平比它 高的CPU企业一个一个都收拾了,成就霸业。那时候的Intel有什么“基本原理”层面的东西值得我们学习呢?我认为有如下几条:
        一是以客户为中心,保持向前兼容。其它采用RISC架构的企业在上世纪九十年代的时候跟随发展趋势,都经历了一次放弃过去的指令系统而重新定义并推出 RISC指令系统的过程,只有Intel愿意背负历史负担,持续保持向前兼容。这就是以客户为中心,而不是以技术为中心。
        二是坚持生态建设。把X86架构保持适当开放,团结产业链的广大合作伙伴来做计算机,而其它采用RISC架构的CPU均内部进行垂直整合,最后被Intel用打群架的方式打败。
        三是坚持低端入手,稳扎稳打地向高端推进。刚开始X86主要做桌面,服务器还是以RISC CPU为主,但Intel在巩固住桌面阵地后持续向服务器市场推进。事实证明,光靠服务器市场养不活服务器CPU高昂的研发投入,从数量上说,服务器 CPU的市场是桌面CPU的几十分之一。最终服务器CPU企业都没有守住服务器的阵地,而是被X86打得七零八落。
        我认为,上述几条对龙芯都是有现实意义的,都可以和龙芯的具体情况相结合。其中前两条我们已经讲得很多了,下面讲讲第三条。在2012年前后,我们认识到 自主CPU在技术上的核心问题是由于没有很好地掌握处理器的微架构技术,自主处理器核的性能较低(相同主频下比Intel的X86 CPU差2-3倍),而不是处理器核不够多。在CPU芯片中多放些处理器核是容易的,难的是要把处理器核做好。因此,我们立足于 四核的平台先把处理器核做精,先对微结构进行了大刀阔斧的调整推出了四核的3A2000/四核3B2000,然后对微结构的部分参数如发射队列大小进行调 整并使用更先进的工艺推出四核3A3000/四核3B3000,再增加向量指令并对微结构的流水线效率仔细微调推出四核3A4000/八核3B4000。 到四核3A4000/八核3B4000的时候,龙芯的微结构就比较成熟了,开始研制八核的3B4000,在此之前主要是以四核为主,这对我们服务器市场是 不利的。但我们认为,先把四核的市场做透,其中包含桌面市场和部分服务器市场,在占据四核市场后再往高端打是可以打赢的。这就是我们在具体产品安排上把 Intel的基本原理与龙芯的实践相结合推导出的具体做法,而不是学习Intel现在的i3、i5、i7和E3、E5、E7的布局,Intel在上世纪 八、九十年代的时候也没有这么多产品线。
        因此,面对目前国内CPU的复杂局面,我们要沉得住气,不在乎眼前一城一池的得失,而是扎扎实实地按照市场套路稳步推进。
 
四、结束语
 
        以上我们讲了用毛泽东思想结合龙芯具体工作的几点认识,总结起来有以下几条:
      (1)因为龙芯是为党和人民做CPU,所以我们的目标不仅仅是上市挣钱,而是建立自主可控的基础软硬件体系,有些客户和应用虽然目前不挣钱也要做,这样做表面上有时候吃点亏,但对龙芯长远来说是有好处的。
      (2)龙芯公司挣的钱首先是劳动者创造的剩余价值,其次才是股东投资的利润。因此要通过多层次的绩效体系的设计充分保障劳动者的利益。
      (3)龙芯的发展要坚定不移地依靠广大员工。通过各种方式收集群众建议并进行管理改进,通过共享劳动成果培养和提高员工的主人翁意识。
      (4)自主创新要发扬自力更生精神,建立自主能力,不能“懒惰取巧依赖外力”。想依靠美国人帮我们发展CPU事业,就像抗战初期蒋介石想依靠美国人帮我们打日本鬼子一样,是不可能的。
      (5)要自力更生,必然要艰苦奋斗。自力更生肯定比依靠别人辛苦一些。我们技术上不如人家,钱也没有人家多,怎么样才能赶超?除了艰苦奋斗还是艰苦奋斗。
      (6)自力更生最终会给我们带来好处。坚持自主研发虽然辛苦一点,虽然见效慢一点,但最终能够有无限的发展空间。我们要在龙芯的自主创新实践中磨出尖牙利爪,长出熊心豹子胆,在与应用结合的过程中,逐渐从自主软硬件的必然王国走向自由王国。
      (7)失败是成功之母,但光有成功之母孕育不出成功来,还需要成功之父。实事求是的思想方法就是成功之父,通过与应用的磨合发现问题,并在解决问题的过程 中形成螺旋上升。我们要坚持实事求是的思想方法,在龙芯的市场、研发、管理三方面不断完善三个闭环:第一个闭环就是建立质量和服务体系,完成龙芯CPU从 样品到产品到商品的转变。第二个闭环就是根据市场需求来定义龙芯的CPU产品。第三个闭环就是通过持续的管理改进提高研发和市场结合的效率并加以制度化和 具体化。
      (8)坚持实事求是的一个重要方法是碰到问题和困难不是急着下结论(如自主研发不行),而是找原因(如主频只差1倍,性能差10倍,多出来的9倍运行时间哪里去了),做到“定位准确、机理清楚、措施有效”。
      (9)主观主义是实事求是的敌人,我们要时刻保持高度警惕。尤其是良好的愿望容易使人犯主观主义的错误。目前Intel的具体做法不是我们可以直接搬来用 的,目前的龙芯应学习上世纪八、九十年代的Intel,那时Intel具体做法背后的基本原理包括:以客户为中心,保持向前兼容;坚持生态建设,发动群众 斗地主;坚持低端入手,稳扎稳打向高端推进。
建议今年的民主生活会针对上述内容进行讨论,关键是要结合每个部门的具体实践,争取在民主生活会的讨论中对本部门的工作有所促进。今年推荐给大家读的书是光明日报出版社出版的《为什么是毛泽东》。
最后,还是用毛主席的话结束今天的报告:“我们正在前进。我们正在做我们的前人从来没有做过的极其光荣伟大的事业。我们的目标一定要达到。我们的目标一定 能够达到”。我们的目标是建立自主可控的软硬件体系,支撑国家安全和产业发展,这样的目标是极其光荣伟大的,是我们的前人,是任正非、柳传志、马云们没有 做过的。为了实现这样的目标,我们就应该很好地掌握并运用毛主席教给我们的群众路线、自力更生、实事求是的思想方法,并把它们和龙芯的具体实践紧密结合起 来。这样,我们的目标就一定能够达到。  查看全部
原文链接:用毛泽东思想指导龙芯的工作(2015)


——在2015年龙芯党支部民主生活会上的讲话
        过去几年龙芯党支部的民主生活会都收到了很好的效果,尤其是大家提的意见对龙芯的工作很有好处,有些意见已经成为龙芯公司规章制度的一部分,有些意见成为 了我们工作的常态。例如根据民主生活会的意见,总裁办每季度都组织职能部门的经理和各研发部和事业部的员工召开座谈会,听取大家对公司管理工作的意见和建 议,每次都有收获。
        民主生活会和其它会议最大的区别就是其它会议主要讨论工作,讨论做事情的方法,而民主生活会讨论思想,讨论想事情的方法。我们建立的规章制度是规定做事情 的方法,是规范人们的行为,你可以不这样想,但必须这样做;但是如果大家能够想到一块去,形成共同意志,自然就能做到一块去,工作主动性更强,积极性更 高,工作效率自然更高。因此,今年的民主生活会我想跟大家谈谈思想方法的问题。
       思想方法就是我们想事情的方法。例如,当我们在实际应用中发现主频为1GHz的龙芯CPU性能比主频为2GHz的X86 CPU性能差10倍时,我们有两种可能的想法:一是直接下个结论,即龙芯CPU不行,比X86差距太大,然后销售人员抱怨研发人员研发水平差,研发人员抱 怨管理人员没有给与足够的资源;二是找原因,既然主频只差一倍,那多出来的九倍运行时间哪里去了?最后发现CPU流水线的效率低2-3倍,基础软件效率也 差2-3倍,并针对找到的问题进行改进,做到“定位准确、机理清楚、措施有效”。这样一比较,大家都知道我们显然应该采用第二种想法。但在实际工作 中,90%以上的人会产生第一种想法。
        思想方法决定工作方法和工作结果。例如,如果我们觉得龙芯就是不行,那我们就不用干了,趁早散伙;如果我们觉得龙芯现在虽然与Intel有差距,但我们能 够通过努力不断缩小差距,并且在这个过程中不排除在局部取得优势,那我们就会不断前进。又如,作为一个知识分子,如果做一件事前想一下“领导怎么看我做这 件事”,那他就是知识奴才,一辈子是当奴才的命;如果做一件事前想一下“这件事对人民有没有好处”,那他就是有良知的知识分子,一辈子是当主人的命。
        一个人的思想方法与他的立场、知识水平等因素有关。中日钓鱼岛之争,多数中国人觉得钓鱼岛是中国的,多数日本人觉得钓鱼岛是日本的,那是立场决定的。天上 发生了月全食,古人认为是天狗吃了月亮,今人认为是地球把太阳挡住了,这是跟知识水平有关。人的正确思想从哪里来?毛主席说过:“人的正确思想,只能从社 会实践中来,只能从社会的生产斗争、阶级斗争和科学实验这三项实践中来。人们的社会存在,决定人们的思想。”
        我们长期坚持用毛泽东思想武装龙芯公司,指的就是学习毛主席的思想方法,即学习毛主席想事情的方法。为什么我们要学习毛主席的思想方法呢?因为用毛主席的思想方法,就能做正确的事,走成功道路。
        毛泽东思想分两个层面:基本原理层面和具体做法层面。土地革命时期农村包围城市和抗日战争时期独立自主的山地游击战是具体做法层面的东西。毛泽东思想的基 本原理主要包括群众路线、实事求是、自力更生三个方面的内容。我国社会主义初级阶段的理论,并没有在基本原理层面对毛泽东思想有所突破,而是把毛泽东思想 的基本原理和社会主义初级阶段的具体实践相结合而形成的一系列方针、政策、办法。例如,毛主席在《实践论》中倡导的“从实践到认识,再从认识到实践”的螺 旋上升的基本方法,指出了当我们在前进中遇到没搞清楚的重大理论问题而不知道下一步怎么办时,不能教条地停下来把理论问题吵清楚再前进,而是应该在前进道 路上通过实践总结经验教训,探索出其中的规律性,再用于指导后续的实践;在改革开放的今天,不论是“摸石头过河”还是“用发展的方法解决前进中的问题”都 是毛泽东思想中实事求是的基本原理在新历史阶段的具体应用。又如,我们现在不打游击战了,但群众路线的基本原理没有变,最近在新疆的反恐斗争中又得到了灵 活运用,取得了很好的效果。
        中国有很多公司,都是按照《公司法》设立的治理架构,经营公司的人都想成功,为什么有的成功有的失败呢?战场上两军对垒,双方主帅都手持《孙子兵法》,为 什么有输有赢呢?可见要做好一件事,办好一个公司,除了一般性的原则及个人努力因素外,还有一个思想方法的问题。我们在2010年初成立龙芯公司时,知道 自己没有经营企业的经验,因此提出“在产业化中学习产业化”。回顾2010年以来的发展历程,龙芯走的是“之”字形的发展道路。六年了,正反两方面的经验 都有一些了,我们回顾一下自己过去走过的路,总结一下经验教训,形成我们的思想方法,有利于统一思想,有利于龙芯事业的发展。我们一直以来提倡“用毛泽东 思想武装龙芯公司”,我认为把毛泽东思想的基本原理,即群众路线、自力更生、实事求是,跟龙芯的具体工作相结合,形成龙芯公司经营的思想方法,是很有必要 的。
 
一、坚持群众路线
 
        用毛泽东思想指导龙芯工作,首先要解决“为了谁”的问题。我们从2001年开始龙芯CPU的研制,先在计算所进行了9年的技术积累;2010年转型成立公 司,进行艰苦的创业;2015年开始龙芯公司从创业期转向发展期,开始认真考虑上市的问题,不少基金和劵商都积极地想参与到龙芯公司的上市过程中来。
        我们的目的是为了上市吗?确实很多企业初创期就鼓励员工为了上市而奋斗。龙芯公司是要上市的,但龙芯公司不把上市作为目的。让我们回顾一下龙芯的定位: “以安全可控为主题,以产业发展为主线,以体系建设为目标”。我们的目的是建立独立于Wintel体系和ARM+Android体系之外的技术体系,成为 IT产业多极世界中的一极。我们不一定要打破一个旧世界,但我们一定要建设一个新世界。
        如果为了上市,为了挣钱,我们目前的很多做法就需要改变。例如,在安全应用领域,很多应用,即使到了真正装备量产阶段,采购龙芯CPU的数量也很少,但前 期的支持工作很多,总体上是赔的。如果为了挣钱,这样的应用我们不应该支持,我们应该对客户进行挑选,就像流片厂家挑选我们一样。有些流片厂家就不愿意支 持龙芯,因为他们觉得龙芯的量太小。但在安全应用领域,我们是不挑客户的,凡是龙芯CPU能满足需求的,我们都支持,因为这是我国自主可控事业的需要。这 种需要是国家和人民的需要,我们坚持毛泽东思想,就是为了满足国家和人民的需要,自己吃点亏也没关系。
        同时,这么多年来我们也深刻地体会到,表面上对有些应用的支持我们是赔钱的,是吃亏的,但归根到底是不吃亏的。不同的应用需求能够让我们快速发现我们技术 平台的不足,促使我们的技术平台不断完善;能够锻炼我们的自主创新能力,锻炼我们的技术与市场结合的能力。有的客户虽然某个应用确实芯片的使用量不大,但 应用的种类数目大,客户熟悉了龙芯后就倾向于所有应用都用龙芯,总体上还是赚的,没有前面赔一些,就不会有后面的赚钱。龙芯支持大量的客户,在行业中形成 品牌,使得更多的客户愿意选用龙芯,机关也愿意支持龙芯。因此,坚持站在国家的角度、站在人民的角度考虑龙芯的发展,表面上吃亏,实际上不吃亏;短期吃 亏,长期不吃亏。龙芯的短期利益和长期利益,企业利益和国家利益统一在建立自主体系的创新实践中。
        “为了谁”的问题另一方面的含义是企业赚的钱归谁的问题?一般人认为,企业赚的钱是股东投资产生的利润。但马克思主义者认为,股东的投资是静态的,不会生 钱,只有动态的劳动者的劳动才能创造价值,因此企业赚的钱是劳动者的剩余价值,就像国际歌里唱的“是谁创造了人类世界,是我们劳动群众,一切归劳动者所 有,哪能容得寄生虫!”我们坚持毛泽东思想就要处理好劳动者和股东的利益关系,企业赚的钱首先要考虑劳动者的利益,其次考虑股东的利益。
        我有一个理念,一定要让龙芯公司员工的收入在同行业中处于高端。经过六年的创业,最近我们的销售开始好起来了,即使现在还不挣钱,但未来挣钱的前景明朗 了,我们就迫不及待地开始增加员工收入。同时,我们要求大家建立主人翁的责任感,更加努力地工作,我们提高大家收入的一个重要方法是有组织地加班并按照国 家规定给予加班工资。2015年我们可能是在盈亏的平衡点上,如果我们不大幅调整员工薪酬,尤其是技术人员薪酬,我们可能可以做到盈亏平衡,调整后就不一 定做得到了,即使这样我们还要调整。我们还会通过各种形式,包括提高基础薪酬,设置加班薪酬,增加绩效薪酬来提高龙芯公司劳动者的收入,争取通过2-3年 努力,让龙芯公司员工的收入在同行业中收入处于领先行列,至少可以随便从对面的华为招人。大家都认为,华为是国内掌握核心技术比较多的企业,那得看跟谁 比,华为比联想更加掌握核心技术,但与龙芯比还是差一截,就像他们跟Intel比差一截一样。按照社会主义“多劳多得”的分配原则,掌握核心技术的人才当 然就应该拿更多的钱。
        我们要建立多层次的员工收入体系,除了在薪酬方面中建立员工收入与部门收入挂钩的绩效机制,还要努力争取建立员工分红、股权和期权激励等收入体系。例如, 龙芯公司的经营团队持有部分龙芯公司的股权。以后公司有分红了,是否可以考虑拿出一部分出来作为公司全体员工的年终分红?我们像生产队记工分一样,为每一 位员工积分,年终按照积分进行分红。
        除了“为了谁”的问题,毛主席的群众路线的思想中还有“依靠谁”的问题。龙芯的工作一定要坚定不移地依靠广大员工群众,而不是依靠少数管理者。这就要求我 们营造一种让广大员工真正认为自己是主人翁的氛围。过去几年我们在这方面做了一些工作。例如,每年一次民主生活会,从今年开始每季度安排职能部门经理与事 业部和研发部员工的座谈会,都从群众建议中吸收了很多意见和建议并进行管理改进。公司在业务上的很多认识和决策也是从基层群众中来。最近,我们不断调整事 业部和研发部的绩效机制,使员工的收入与公司收入适度挂钩。但这方面我们做的还不够,龙芯的很多员工主人翁意识还不强,这方面的工作以后还要改进,尤其是 在公司盈利后要建立起让广大员工分享利益的机制。
        我认为统一战线也是群众路线的一部分。龙芯的统一战线包括产业链的建设,品牌建设。我们要让越来越多的人来成为龙芯产业链的成员,越来越多的人支持龙芯,同情龙芯。
 
二、坚持自力更生
 
        毛主席说过:“我们的方针要放在什么基点上?放在自己力量的基点上叫做自力更生”。
        自力更生的关键就是自主能力的建设,能力在革命战争时代体现为“枪杆子”,在今天体现为自主创新能力。有了能力就能把握事物的主动权。
        为什么要自力更生?因为只有自力更生,才能不受制于人。革命也好、建设也好,创新也好,依靠别人总是容易一些,完全靠自己总是难很多,但实践表明再难也得靠自己。
        毛主席自力更生思想也是在实践中被逼出来的,总结起来可以分为四个阶段。第一阶段是青年时期。毛主席青年时代也没有想过要革命,也是想着改良主义可以救中 国。所谓改良主义,就是希望帝国主义和当时身居高位的精英阶层良心发现,或者明白“水可载舟、亦可覆舟”的道理,对底层人民好一点。但后来发现此路不通, 马克思主义是毛主席“山穷水尽诸路皆走不通了”的选择。第二阶段是建党后领导工人运动。毛主席根据当时陈独秀领导的党中央的要求在湖南进行工人运动,光大 的罢工就举行了十多次。虽然取得了一些成绩,但最后的结果是工人罢工受镇压,工人领袖被杀,毛主席本人在湖南也没有立足之地。第三个阶段是第一次国共合作 期间。孙中山多次依靠军阀失败后终于开始建立国民党自己的武装,毛主席根据党中央国共合作的要求,全力投入到国共合作中,并得到孙中山的器重。北伐成功的 一个重要原因是得到民众的支持,而民众主要是共产党发动起来的,北伐到一半时,国民党就开始与江浙财团和代表英美利益的买办集团合作排挤共产党。毛主席先 是在上海帮国民党进行党员重新登记时由于坚持原则被停了工资和经费,不得已被排挤回湖南;后是蒋介石发动“四·一二”政变,幸好当时他已经把主要精力放在 农民运动上了,没被抓住。第四个阶段是土地革命期间。好不容易上山、建军,明确了武装夺取政权、农村包围城市的道路,把井冈山根据地建设得如火如荼,但被 那些在上海租界呆不住跑到井冈山避难的书生们轻松地夺了权,执行“左”倾路线,不得不进行两万五千里长征;长征途中好不容易红一、四方面军会师了,在向张 国焘让出不少权力的情况下,张国焘还不满足,想通过武力扣押当时的党中央。在经历上述几个阶段的经验教训以后,毛主席在以后的革命和建设中就牢牢掌握了主 动权,包括国共第二次合作时坚持独立自主的山地游击战,反对共产国际要求的“一切通过统一战线”的错误主张;重庆谈判坚持保留边区和军队;建国后先是抗美 援朝,后是中苏论战。等等。
        我们回顾毛主席自力更生思想的形成过程,是要从中明白一个道理,就是自主创新必须建立和依靠自己的能力。
        在中国的近代史上,我们有三次向外国老师学习的经验,但每次都受到老师的欺负。第一次是洋务运动,我们向西方列强学习科学和技术,学习工业化,结果是西方 列强使劲欺负中国,中国人民水深火热,毛主席领导共产党推翻了三座大山,解放了中国人民。第二次是建国后向苏联学习,一边倒,结果是苏联又想建联合舰队, 又想建长波电台,毛主席毫不犹豫地跟他们闹翻了,先是中苏论战,后是拉着美国整垮了苏联。第三次是改革开放,我们学些西方的管理理念和科学技术,学到今 天,西方这个老师还是不断欺负我们,不断围堵中国。
        今年是毛主席发表《愚公移山》七十周年,毛主席当年号召通过自力更生搬掉帝国主义和封建主义两座大山,我们今天也需要通过自力更生搬掉国家安全受制于人和 产业发展受制于人两座大山。自主创新要发扬自力更生精神,不能“懒惰取巧依赖外力”。想依靠美国人帮我们发展CPU事业,就像抗战初期蒋介石想依靠美国人 帮我们打日本鬼子一样,是不可能的。具体到CPU来说,我们没有的时候,西方卡我们;我们经过十多年的努力开始有点基础了,他们感到我们的威胁了,于是通 过各种方式,在国内找代理,把他们的技术和产品包装一下,也叫自主CPU,归根到底是叫我们不用自己干,继续做他们的“马仔”。
        最近,随着我国CPU事业的发展,尤其是国家安全的需求和市场的发展,我国CPU形成了“研”、“O(DM)”、“攒”三条路线。“研”的路线指的是坚持 CPU核心的自主研发,以龙芯和申威为代表;“攒”的路线指的是使用国外的CPU核心自主研制SOC芯片,以海思和飞腾为代表;“O”的路线指的是我们掏 钱委托国外队伍做,但我们拥有一定的知识产权,以兆芯和中晟宏芯为代表。相比之下,“研”的路线见效慢,但可持续性和可控性强;“O”的路线见效最快 (3-6个月即可),但可持续性和可控性最弱;“攒”的路线介于两者之间,目前我国用ARM的处理器核研制的SOC芯片每年销量已经超过10亿片。
        面对西方的围堵,我们要牢记毛主席的教导,把我们的方针放在自己力量的基点上。毛主席说的是自己的力量,而不是自己的产品或技术,产品和技术通过商业交换 有时候可以变成自己的,但自主创新能力只能从自主创新的实践中培养。只有自己形成了能力,才能取得主动权。毛主席打仗,从来不在乎一城一池的得失,连延安 都主动放弃过,但毛主席坚持“人民的武装,一杆枪一颗子弹都不能交给敌人”。城池就相当于是技术或产品,能力就是“枪杆子”。因此,我们发展以CPU和操 作系统为代表的基础软硬件,要建立能力,有能力才能建体系,才有国家安全和产业发展的主动权。
        要自力更生,必须要艰苦奋斗。自力更生就是不依靠别人自己闯出一条新路来,没有现成的物质基础,也没有可以直接借鉴的方法,自然要辛苦一些。毛主席如果在 抗战后按照苏联的要求或者蒋介石的要求放弃军队和边区,在国民党的联合政府中弄个官当当,自然会比打解放战争容易,事实上蒋介石当时是建议毛主席去当新疆 省主席的。在建国后如果愿意放弃一些国家主权给苏联当马仔,也不用那么辛苦,勒紧裤腰带搞两弹一星。但不自力更生的后果是为了眼前图省事放弃中国人民的长 远利益。
        我们目前做CPU也一样,如果我们放弃自主研发,而是走“攒”或者“O”的路线,那我们会省事一些,近期发展得快一些。事实上,国外或境外主要CPU企 业,包括Intel、AMD、IBM、威盛,在前些年都主动跟龙芯谈过合作,希望我们引进他们的技术,自己就不用干了。他们当时愿意给的东西确实比我们自 己研发的好。但我想来想去,还是要坚持自主研发。别说CPU,我们现在就是一个GPU没有掌握都很难受,大家可能没有经历过跟外商谈判,我经常谈,按理说 我们是甲方,但在购买核心技术的谈判中,甲方是受乙方的气的。
        因此,我们要自己掌握核心技术,必然要艰苦一些。我们技术上不如人家,钱也没有人家多,怎么样才能赶超?除了艰苦奋斗还是艰苦奋斗。中国的IT产业赋予我们这代人这个使命,我们就要承担起这个使命。我们这些人就要认这个命。
        自力更生最终会给我们带来好处。毛主席领导的共产党因为在解放战争期间坚持自力更生,取得了建立新中国的伟大胜利;因为在建国后自力更生,建立了完整的工 业体系,研制出了两弹一星。我们今天也一样,坚持自主研发虽然辛苦一点,虽然见效慢一点,但最终能够有无限的发展空间。龙芯在过去发展过程中碰到过很多困 难,但由于我们在困难面前不退却,不走引进技术的买办路线,而是坚持自主创新,经过多年的努力,取得了很大的成果。一方面,我们建立了技术和市场结合的能 力,不仅能够把技术辐射出去为市场所接受,为企业创造效益,而且能够及时根据市场需求(而不是美国人说的发展趋势)研发新产品。另一方面,我们在掌握 CPU核心技术方面不断取得突破,我们最新研制的3A2000/3B2000 CPU虽然由于工艺的原因主频低一些,但其微结构已经达到世界先进水平,不论是飞腾的ARM处理器还是兆芯的威盛处理器,其微结构都与Intel的低端 CPU阿童木系列处于同一水平,而龙芯的微结构已经与Intel的高端CPU酷睿系列处于同一水平。采取引进路线的飞腾和兆芯CPU性能很难再提高了,而 我们经过多年的积累已经进入提高性能的快车道,可以不断改进和提高。
        因为我们坚持自力更生,所以我们才敢于提出建立独立于Wintel体系和ARM+Android体系的自主软硬件生态;才敢于提出:判断技术是否先进的标 准,不是看其跟美国人跟得紧不紧,而是看其跟应用结合得紧不紧,自主CPU应当在与应用结合的过程中,逐渐从自主软硬件的必然王国走向自由王国。这些事 情,估计采取引进路线的飞腾和兆芯是想也不敢想的,而龙芯不仅敢想,而且敢做。因为我们在过去几年的产业化实践中磨出了尖牙利爪,长出了熊心豹子胆。
 
三、坚持实事求是
 
        毛主席说:“主动权是一个极端重要的事情。主动权,就是‘高屋建瓴’、‘势如破竹’。这件事来自实事求是,来自客观情况在人们头脑中的真实的反映,即人们对于客观外界的辩证法的认识过程”。
        过去的经验告诉我们:坚持自主创新会面临很多困难和问题,关键是碰到困难和问题时采取什么样的态度。CPU的产业化更需要科学精神和实事求是的态度,通过 与应用的磨合发现问题,并在解决问题的过程中形成螺旋上升。我们要有“板凳坐得十年冷,文章不写一句空”的作风。CPU的核心技术是从细节中“抠”出来 的,是在实践中随着认识的提高和技术能力的增长从量变到质变演变出来的。
        回顾龙芯公司从2010建立到现在的发展历程,我们走的弯路比直路多。在芯片研发方面,我们过分强调多核和SOC的技术发展趋势而对处理器核本身性能提高 关注不够。在产品质量方面,在计算所时人盯人的作坊式的研制流程打破后而公司产品质量流程建立起来之前有多个芯片的流片出现了严重的质量事故。在绩效管理 方面,我们抄袭不符合我们目前发展阶段的成熟大企业的绩效考核方式,不仅没有提高反而挫伤了销售人员的积极性。总之,我们低估了产业化,尤其是像CPU这 样核心技术的产业化的困难,走了很多弯路。
        但我们坚持毛主席关于实事求是的思想,及时从错误中明白过来,及时总结经验教训,不断调整龙芯的研发工作、市场工作、管理工作,使之符合龙芯的发展实践, 使之符合客户的需要。人们常说“失败是成功之母”,世界上失败的人和失败的事很多,成功的倒不多,可见光有成功之母还孕育不出成功来,还需要成功之父。成 功之父就是及时总结经验教训,在很多现象中去掉假象,使我们掌握的事实比较全面地反映客观实际,并从中找出规律性的东西,找出事物的本质特征,找出该事物 与其它事物之间的联系。一句话,实事求是的思想方法和工作作风就是成功之父。成功之父和成功之母一起才能孕育出成功来。
        我认为,过去几年我们坚持实事求是的思想方法和工作作风,在龙芯的市场工作,研发工作,管理工作三个方面形成了三个闭环。
        第一个闭环就是建立质量和服务体系,完成龙芯CPU从样品到产品到商品的转变。主要是把当年在计算所研发的3A、2F、3B、2H等科研成果(样品)转换 成产品,在交付用户使用的过程中根据用户的需求提供服务,使用户能够用好龙芯的CPU。这样就形成了与用户之间的一个闭环。回顾起来,这个闭环是在 2013年左右形成的。
        第二个闭环就是根据市场需求来定义龙芯的下一代CPU产品。在应用推广过程中,龙芯原有产品的问题不断被发现,在计算所时的科研成果主要是跟踪技术发展趋 势,并没有结合用户需求,虽然有些长板做得不错(例如2009年就研制成功当时核数还是算多的四核3A,3B的浮点峰值性能与目前Intel的CPU比也 不差),但短板短得比较厉害。因此,我们及时调整了研发路线,取消了当时已经快完成的16核3C项目,把研发重点转移到处理器核的性能上来,结合特定应用 需求研制了专用芯片如2J、1E、1F、1D等。尤其是最近研制成功的四核3A2000的处理器核性能大幅度提高,在党政办公等试用中取得了很好的效果。 目前,龙芯建立起了较为有效的芯片论证、立项流程,让主要用户参与立项的技术规格评审,对立项产品进行经济效益分析等。第二个闭环在第一个闭环的基础上形 成了螺旋上升。可以说,第二个闭环是在2015年初步形成的。
        第三个闭环就是通过持续的管理改进提高研发和市场结合的效率并加以制度化和具体化。近几年,我们通过持续的内部管理改进以适应研发和市场的前两个闭环的需 要。例如,我们在事业部和研发部均建立起与市场效益挂钩的绩效体系,对研发部和事业部进行一定程度上的独立核算并将研发部和事业部人员的收入与本部门效益 挂钩。这样,研发部和事业部均开始关注如何通过服务客户增加本部门的收入,开始认真计算每个研发人员的成本在不同研发项目之间的分摊,对本部门的费用和有 关产品的成本构成进行质疑,认真参与研发项目的立项并提出质疑或改进意见,等等。这些工作还在持续进行中,希望再经过1-2年,龙芯公司的这第三个闭环比 较完备。
        上述三个闭环,都是在实事求是的思想指导下,总结龙芯发展过程中的经验教训,在实践中发展起来的。这几个闭环的不断循环,必然导致龙芯技术水平的不断提 高,必然导致龙芯市场收入的不断增加,必然导致更大的产业生态闭环的形成。未来龙芯的核心竞争力主要体现在这几个闭环的不断完善中。目前,国内其它CPU 研制单位,只有个别开始有完善第一个闭环的意识,第二、第三个闭环的工作还没有起步。
        坚持实事求是的一个重要方法是碰到问题和困难不是急着下结论(如自主研发不行),而是主动找原因(如主频只差1倍,性能差10倍,多出来的9倍运行时间哪里去了),做到“定位准确、机理清楚、措施有效”。
        主观主义是实事求是这种思想方法的克星。主观主义的来源有多种:第一种是私心杂念太重,为了个人利益或小集体利益不惜以偏盖全,在我党的历史上王明、张国 焘都犯这种错误;第二种是教条主义,即脱离自己的发展阶段和客观实践,把别人的成功经验当教条,在我党历史上博古、洛甫、凯丰主要是犯这种错误;第三种是 经验主义,即实践发展了,还死守过去的做法不变。
        龙芯目前发展阶段危害最大的是教条主义。因为教条主义符合我们良好的主观愿望,而且不容易被察觉。例如,根据客户的反映,不少人建议说,Intel的高端 系列产品细分为i3、i5、i7和E3、E5、E7,龙芯也应该学Intel这样细分产品来满足不同的需求。这种想法确实有客观需要,因为我们的多数客户 对Intel的套路很熟悉,而且Intel的这种套路也是从他们与客户的不断磨合中总结出来的。但不符合龙芯目前的发展阶段和现实可能性,主要是龙芯没有 那么多钱也没有那么多人,市场也不够成熟,能学Intel分为高端(酷睿和至强)和低端(阿童木)两条产品线就很不容易了。我认为,我们应该找到 Intel这种做法背后的基本原理,并且把它跟龙芯的具体实践相结合,从而推导出龙芯的具体做法。对于Intel目前的产品划分方法,我认为基本原理包 括:结合不同的应用提供不同性能的产品,以达到较高的性价比;用低端的产品及较低的价格来筑起市场防线,从而使高端产品卖高价,获取较高的利润。我们目前 在安全领域把芯片质量等级分为若干级虽然做法不一样,但基本原理是符合Intel的产品分类的。
         但我们不应该跟现在的Intel比。我认为我们应该认真研究Intel在上世纪八、九十年代的做法,因为我们现在的处境与Intel上世纪八、九十年代 更加相像。那时候美国有六、七家CPU企业,如Intel、AMD、DEC、IBM、SUN、HP、SGI,其中Intel的技术水平不算高端,DEC使 用0.35微米的工艺就能研制出主频600MHz的四发射64位Alpha 21264,比Intel高好几倍。那时候像DEC这样的企业肯定使劲嘲笑Intel的水平不行,但Intel经过十来年的努力,把这些当时技术水平比它 高的CPU企业一个一个都收拾了,成就霸业。那时候的Intel有什么“基本原理”层面的东西值得我们学习呢?我认为有如下几条:
        一是以客户为中心,保持向前兼容。其它采用RISC架构的企业在上世纪九十年代的时候跟随发展趋势,都经历了一次放弃过去的指令系统而重新定义并推出 RISC指令系统的过程,只有Intel愿意背负历史负担,持续保持向前兼容。这就是以客户为中心,而不是以技术为中心。
        二是坚持生态建设。把X86架构保持适当开放,团结产业链的广大合作伙伴来做计算机,而其它采用RISC架构的CPU均内部进行垂直整合,最后被Intel用打群架的方式打败。
        三是坚持低端入手,稳扎稳打地向高端推进。刚开始X86主要做桌面,服务器还是以RISC CPU为主,但Intel在巩固住桌面阵地后持续向服务器市场推进。事实证明,光靠服务器市场养不活服务器CPU高昂的研发投入,从数量上说,服务器 CPU的市场是桌面CPU的几十分之一。最终服务器CPU企业都没有守住服务器的阵地,而是被X86打得七零八落。
        我认为,上述几条对龙芯都是有现实意义的,都可以和龙芯的具体情况相结合。其中前两条我们已经讲得很多了,下面讲讲第三条。在2012年前后,我们认识到 自主CPU在技术上的核心问题是由于没有很好地掌握处理器的微架构技术,自主处理器核的性能较低(相同主频下比Intel的X86 CPU差2-3倍),而不是处理器核不够多。在CPU芯片中多放些处理器核是容易的,难的是要把处理器核做好。因此,我们立足于 四核的平台先把处理器核做精,先对微结构进行了大刀阔斧的调整推出了四核的3A2000/四核3B2000,然后对微结构的部分参数如发射队列大小进行调 整并使用更先进的工艺推出四核3A3000/四核3B3000,再增加向量指令并对微结构的流水线效率仔细微调推出四核3A4000/八核3B4000。 到四核3A4000/八核3B4000的时候,龙芯的微结构就比较成熟了,开始研制八核的3B4000,在此之前主要是以四核为主,这对我们服务器市场是 不利的。但我们认为,先把四核的市场做透,其中包含桌面市场和部分服务器市场,在占据四核市场后再往高端打是可以打赢的。这就是我们在具体产品安排上把 Intel的基本原理与龙芯的实践相结合推导出的具体做法,而不是学习Intel现在的i3、i5、i7和E3、E5、E7的布局,Intel在上世纪 八、九十年代的时候也没有这么多产品线。
        因此,面对目前国内CPU的复杂局面,我们要沉得住气,不在乎眼前一城一池的得失,而是扎扎实实地按照市场套路稳步推进。
 
四、结束语
 
        以上我们讲了用毛泽东思想结合龙芯具体工作的几点认识,总结起来有以下几条:
      (1)因为龙芯是为党和人民做CPU,所以我们的目标不仅仅是上市挣钱,而是建立自主可控的基础软硬件体系,有些客户和应用虽然目前不挣钱也要做,这样做表面上有时候吃点亏,但对龙芯长远来说是有好处的。
      (2)龙芯公司挣的钱首先是劳动者创造的剩余价值,其次才是股东投资的利润。因此要通过多层次的绩效体系的设计充分保障劳动者的利益。
      (3)龙芯的发展要坚定不移地依靠广大员工。通过各种方式收集群众建议并进行管理改进,通过共享劳动成果培养和提高员工的主人翁意识。
      (4)自主创新要发扬自力更生精神,建立自主能力,不能“懒惰取巧依赖外力”。想依靠美国人帮我们发展CPU事业,就像抗战初期蒋介石想依靠美国人帮我们打日本鬼子一样,是不可能的。
      (5)要自力更生,必然要艰苦奋斗。自力更生肯定比依靠别人辛苦一些。我们技术上不如人家,钱也没有人家多,怎么样才能赶超?除了艰苦奋斗还是艰苦奋斗。
      (6)自力更生最终会给我们带来好处。坚持自主研发虽然辛苦一点,虽然见效慢一点,但最终能够有无限的发展空间。我们要在龙芯的自主创新实践中磨出尖牙利爪,长出熊心豹子胆,在与应用结合的过程中,逐渐从自主软硬件的必然王国走向自由王国。
      (7)失败是成功之母,但光有成功之母孕育不出成功来,还需要成功之父。实事求是的思想方法就是成功之父,通过与应用的磨合发现问题,并在解决问题的过程 中形成螺旋上升。我们要坚持实事求是的思想方法,在龙芯的市场、研发、管理三方面不断完善三个闭环:第一个闭环就是建立质量和服务体系,完成龙芯CPU从 样品到产品到商品的转变。第二个闭环就是根据市场需求来定义龙芯的CPU产品。第三个闭环就是通过持续的管理改进提高研发和市场结合的效率并加以制度化和 具体化。
      (8)坚持实事求是的一个重要方法是碰到问题和困难不是急着下结论(如自主研发不行),而是找原因(如主频只差1倍,性能差10倍,多出来的9倍运行时间哪里去了),做到“定位准确、机理清楚、措施有效”。
      (9)主观主义是实事求是的敌人,我们要时刻保持高度警惕。尤其是良好的愿望容易使人犯主观主义的错误。目前Intel的具体做法不是我们可以直接搬来用 的,目前的龙芯应学习上世纪八、九十年代的Intel,那时Intel具体做法背后的基本原理包括:以客户为中心,保持向前兼容;坚持生态建设,发动群众 斗地主;坚持低端入手,稳扎稳打向高端推进。
建议今年的民主生活会针对上述内容进行讨论,关键是要结合每个部门的具体实践,争取在民主生活会的讨论中对本部门的工作有所促进。今年推荐给大家读的书是光明日报出版社出版的《为什么是毛泽东》。
最后,还是用毛主席的话结束今天的报告:“我们正在前进。我们正在做我们的前人从来没有做过的极其光荣伟大的事业。我们的目标一定要达到。我们的目标一定 能够达到”。我们的目标是建立自主可控的软硬件体系,支撑国家安全和产业发展,这样的目标是极其光荣伟大的,是我们的前人,是任正非、柳传志、马云们没有 做过的。为了实现这样的目标,我们就应该很好地掌握并运用毛主席教给我们的群众路线、自力更生、实事求是的思想方法,并把它们和龙芯的具体实践紧密结合起 来。这样,我们的目标就一定能够达到。 

龙芯Go!Go!Go!——龙芯平台上构建Go语言环境指南

举爪为证 发表了文章 • 0 个评论 • 192 次浏览 • 2017-01-24 10:08 • 来自相关话题

一、初识Go语言
        Go语言是Google公司于2009年正式推出的一款开源的编程语言,是由Robert Griesemer、Ken Thompson和Rob Pike等世界顶尖计算科学家精心打造的系统编程语言。Go语言最显著的特点是编码简洁迅速、支持高效并发和自动内存管理等。此外,Go语言还面向网络服 务器、存储系统和数据库等领域的编程进行了优化设计,并且简化了应用系统的安装和部署。因此,Go语言受到了广大程序员的青睐,越来越多地开始应用于谷歌 和百度等知名中外企业的产品中。
        对于这样一个在云计算和大数据时代最具发展前景的编程语言,龙芯平台能不能很好地支持呢?今天我们就从Go的源代码开始,逐步构建龙芯平台上的Go语言环 境。尽管笔者的实验机器为安装了龙芯开源社区版操作系统Loongnix的龙芯3B迷你电脑,本文的方法适用于所有64位操作系统的MIPS处理器平台。
一、下载Go语言的源代码
        为了吸引更多的社区开发力量,Google开源了Go语言的源代码,并托管于世界著名的github网站中。我们可以通过执行以下命令获取Go语言的全套源代码:$ cd ~
$ git clone https://github.com/golang/go.git   
上述命令要求您的电脑中安装了git版本控制工具。如果您的电脑中没有预装git,可以通过如下命令快速安装:$ sudo yum install git二、从源代码构建Go语言环境
        由于当前最新发布的Go语言的稳定版本为Go 1.6,并且官方从该版本开始正式支持MIPS架构的处理器,故笔者以Go 1.6为例展示Go语言环境在龙芯平台上的构建方法。为了最大限度减少Go语言对其它编程工具的依赖,从Go 1.5开始,Go语言的编译器、汇编器和链接器等底层工具链全部使用Go语言来实现。故自Go 1.5开始,从源代码安装Go语言环境时需要使用现成的Go语言编译器来编译Go的源代码,上述过程称为Go语言的自举编译。因此,从源代码安装Go 1.6时要求系统中存在Go 1.4及其以上的Go语言环境。
        由于官方从Go 1.6才开始正式支持MIPS架构,因而无法找到现成的可用于在龙芯上进行自举编译的低版本Go编译器。好在Go语言提供了友好的交叉编译功能,我们可以 借助X86的机器编译一个MIPS平台的Go编译器,用作在龙芯上从源码构建Go 1.6的自举编译器。因此,在龙芯平台上从源代码构建Go 1.6的环境必须分成两个阶段进行:
1)  在X86平台上交叉编译出面向MIPS平台的Go语言自举编译工具链;
2)  在龙芯平台上利用1)中的Go自举编译器构建Go 1.6开发环境。
       下面笔者逐步向大家展示Go 1.6环境在龙芯平台上的构建过程。等大家走完整个过程就会发现,在龙芯上从源代码安装Go语言环境非常简单。
第一阶段:在X86平台上交叉编译出面向MIPS平台的Go语言自举编译工具链。
       随便找一台装有64位Linux操作系统的X86电脑,逐步执行以下命令。
  1. 下载Go 1.4(或者更高版本)的二进制发行版作为交叉编译的自举编译工具链
      笔者选择Go 1.4的发行版作为在X86上编译Go 1.6源代码的自举编译器。由于官网 https://golang.org 在国内无法正常访问,可以通过其镜像站点 http://golangtc.com/download进行下载。笔者下载的文件为go1.4.2.linux-amd64.tar.gz,大小约59 M。下载后可以解压到任意目录,例如可以通过如下命令将其解压到/opt文件夹下并重命名为go1.4.2:$ tar xvzf go1.4.2.linux-amd64.tar.gz -C /opt
$ mv /opt/go /opt/go1.4.2   2. 配置交叉编译的自举编译工具链$ export GOROOT_BOOTSTRAP=/opt/go1.4.2
  3. 下载Go 1.6的源代码$ cd ~/workspace/golang/
$ git clone https://github.com/golang/go.git   4. 切换到Go 1.6的发行版$ cd go
$ git checkout release-branch.go1.6   5. 交叉编译
      这一步通过执行脚本bootstrp.bash完成。该脚本执行前,需要通过环境变量GOOS和GOARCH分别指明交叉编译的目标操作系统和处理器架构。$ cd ~/workspace/golang/go/src
$ GOOS=linux GOARCH=mips64le ./bootstrap.bash  
        接下来就是等待交叉编译结束了。由于交叉编译无需执行Go语言官方自带的测试集,一般10分钟内即可完成编译。不出意外的话,整个过程应该非常顺利。如果您看到以下提示,则表明交叉编译成功。----
Bootstrap toolchain for linux/mips64le installed in /home/fool/workspace/golang/go-linux-mips64le-bootstrap.
Building tbz.
-rw-rw-r-- 1 fool fool 46736199 6月 3 09:08 /home/fool/workspace/golang/go-linux-mips64le-bootstrap.tbz     
       交叉编译所生成的面向MIPS平台的Go语言自举编译工具链位于压缩包/home/fool/workspace/golang/go-linux-mips64le-bootstrap.tbz中。将该压缩包拷贝到龙芯电脑中备用。
第二阶段:在龙芯平台上从源代码构建Go 1.6开发环境。
  1. 解压交叉编译生成的面向MIPS平台的自举编译工具链$ tar xvjf go-linux-mips64le-bootstrap.tbz -C ~/workspace   2. 简单检验自举编译工具链是否可用$ cd ~/workspace/go-linux-mips64le-bootstrap/bin
$ export GOROOT=/home/loongson/workspace/go-linux-mips64le-bootstrap
$ ./go version 如果观察到以下输出,则基本可以说明交叉编译没有问题。
go version go1.6.2 linux/mips64le   3. 下载Go 1.6的源代码并切换到Go 1.6的发行版。$ cd ~/workspace
$ git clone https://github.com/golang/go.git
$ cd go
$ git checkout release-branch.go1.6    4. 编译配置
       在当前目录创建名为env.sh的shell脚本,输入以下语句后保存退出。#!/bin/bash
export GOROOT_BOOTSTRAP=/home/loongson/workspace/go-linux-mips64le-bootstrap
export GOROOT=/home/loongson/workspace/go     
其中,GOROOT_BOOTSTRAP用于指向自举编译工具链的根目录,GOROOT指向Go 1.6源代码的根目录。
执行env.sh,以完成编译配置。
$ source env.sh 
5. 首次编译$ cd src
$ ./all.bash       
上述脚本执行时,首先会利用自举编译工具链完成对Go 1.6源代码的编译,生成龙芯上的Go 1.6环境。随后利用官方的测试集对生成的本地Go 1.6进行测试。测试的过程相对漫长,需要耐心等待。约20分钟后,测试期间中突然打印如下错误信息:ok cmd/compile/internal/test 0.038s
ok cmd/cover 18.360s
ok cmd/doc 0.393s
ok cmd/fix 0.192s
panic: test timed out after 3m0s

goroutine 489 [running]:
panic(0x120552480, 0xc4203087f0)
/home/loongson/workspace/go/src/runtime/panic.go:500 +0x4c4
testing.startAlarm.func1()
/home/loongson/workspace/go/src/testing/testing.go:918 +0x168
created by time.goFunc
/home/loongson/workspace/go/src/time/sleep.go:132 +0x5c

FAIL cmd/go 208.996s
ok cmd/gofmt 0.270s
ok cmd/internal/goobj 0.064s
ok cmd/internal/obj 0.032s
ok cmd/internal/obj/x86 0.067s
ok cmd/internal/pprof/profile 0.048s
ok cmd/link 0.077s
ok cmd/nm 9.304s        测试项目cmd/go没有通过测试。这是为什么呢?笔者起初怀疑编译生成的Go 1.6可能有问题,反复检查了编译参数的设置,但错误依旧。后来,考虑到官方既然已经宣布Go 1.6直接支持MIPS,编译出错的概率应极小,更何况前面那么多的测试项目都能正确运行。于是将思路从对编译参数的检查转向对测试参数的排查。显然,错 误由测试超时导致,而默认的超时阈值仅为3分钟。对于龙芯和ARM等低主频的处理器,cmd/go测试项的执行时间可能会超过3分钟。因此,在龙芯平台上 有可能需要适当增大测试超时的阈值。后来,经过一系列分析和排查,终于找到了环境变量GO_TEST_TIMEOUT_SCALE,用于对测试超时的阈值 进行倍增。例如,若设置GO_TEST_TIMEOUT_SCALE = 2,则测试超时的阈值扩大为原来的两倍,即由3分钟增大到6分钟。
  6. 重新编译
       根据具体平台的需要在env.sh中增加对环境变量GO_TEST_TIMEOUT_SCALE的设置,例如以下为适用于龙芯平台的env.sh。#!/bin/bash

export GOROOT_BOOTSTRAP=/home/loongson/workspace/go-linux-mips64le-bootstrap
export GOROOT=/home/loongson/workspace/go

# Added for Loongson
export GO_TEST_TIMEOUT_SCALE=2        上述修改完成后,重新执行env.sh和all.bash这两个脚本。$ cd ~/workspace/go
$ source env.sh
$ cd src
$ ./all.bash  
待脚本执行结束后,如果观察到如下输出信息,则说明龙芯平台上Go 1.6的编译和测试顺利完成。整个过程约半小时。ALL TESTS PASSED
---
Installed Go for linux/mips64le in /home/loongson/workspace/go
Installed commands in /home/loongson/workspace/go/bin
*** You need to add /home/loongson/workspace/go/bin to your PATH.   7. 安装编译生成的Go 1.6。
      在~/.bashrc的末尾添加如下语句export GOROOT=/home/loongson/workspace/go
export PATH=$PATH: $GOROOT/bin

然后执行
$ source ~/.bashrc 三、龙芯上Go语言对全世界的问候
      激动人心的时刻终于到来了!我们先运行一下Go命令,打印一下版本信息吧:
$ go version
go version go1.6.2 linux/mips64le      接下来,我们来测试一下Go的“Hello World”!打开任何一款文本编辑器,您可以使用Linux经典的vim,也可以使用更适合大众的gedit,编写hello.go文件,仅需几行代码:package main
import "fmt"
func main() {
fmt.Printf("Hello World!\n")
} 首先编译源代码hello.go。Go和C/C++语言一样,属于静态编译型语言。Go的源程序必须经过编译后才能执行。$ go build hello.go 上述命令会生成名为hello的可执行文件。运行hello
$ ./hello
Hello World!       亲自感受了Go语言在龙芯上的第一个HelloWorld,真是太令人兴奋了!
      上述编译和执行的过程也可以使用go run命令一次性完成,例如$ go run hello.go
Hello World! 四、继续把玩 Go!Go!Go!
 
      看到这里,有读者不禁会问:除了运行简单的HelloWorld,龙芯平台上的Go还能干什么?Go语言具有方便移植的特性。所有利用Go语言编写的应用 程序,经过相应平台的Go语言编译器编译后,都能够在该平台上运行。所以Go语言环境在龙芯平台上的成功构建意味着龙芯拥有了Go的全套软件生态。之前在 X86或ARM等平台上搭建的基于Go语言的应用系统,现在都能够以较低的代价迅速迁移到龙芯平台上来。
眼下基于Go的开源项目非常多,笔者没有时间一一搭建。笔者生性好玩,故专门挑选了几个较为有意思项目进行试验。感兴趣的朋友可以尝试更多的项目。需要特 别注意的是,在测试开源项目时,还需要额外         设置GOPATH环境变量。这是因为许多开源项目引用了Go语言的第三方库,需要从GOPATH环境变量指向的路径中加载第三方库或者将所引用的第三方库 下载到该路径中。例如,笔者的设置如下:
$ export GOPATH=/home/loongson/workspace/3rdpkg为了便于日后Go语言程序的开发,建议将上述环境变量也加入到~/.bashrc文件中。
 
  1. 碰撞反弹游戏(https://github.com/kurehajime/pong-command)
      游戏时,输入任意一个字符串(如go1.6.2),该字符串会沿直线运动,遇到上下边界或左右围栏则镜面反弹。左侧围栏由电脑自动控制,右侧围栏由玩家操作。游戏的目标是控制右侧围栏在垂直方向的位置,使得字符串不断被碰撞反弹。




龙芯平台上的碰撞反弹游戏
  1. 汉语拼音转换工具(https://github.com/mozillazg/go-pinyin)
      将任意汉字转换成对应的汉语拼音。例如,输入“龙芯俱乐部”的执行情况如下:




      龙芯平台上的汉语拼音转换工具
  1. 翻译助手Utran(https://github.com/zengsai/utran)
      可以将英文翻译成汉语。例如,输入“This is go1.6.2 running on Loongson.”的执行情况如下:




      龙芯平台上的翻译助手Utran
  1.排序算法可视化(https://github.com/SimonWaldhe ... ation)
      可将常见的冒泡、选择、插入和快排等排序算法的排序过程可视化。




一、遇到问题怎么办?
        以上是笔者在龙芯平台上从源代码构建Go语言环境的记录。读者按照这些操作步骤也应该能快速构建好Go语言开发环境。如果遇到问题自己不能解决,龙芯社区提供了官方的Bug服务网站(http://bugs.loongnix.org/login_page.php),您可以把遇到的问题提交上去,龙芯团队的人会及时为您解决。
龙芯官方的Bug提交平台
  查看全部

一、初识Go语言
        Go语言是Google公司于2009年正式推出的一款开源的编程语言,是由Robert Griesemer、Ken Thompson和Rob Pike等世界顶尖计算科学家精心打造的系统编程语言。Go语言最显著的特点是编码简洁迅速、支持高效并发和自动内存管理等。此外,Go语言还面向网络服 务器、存储系统和数据库等领域的编程进行了优化设计,并且简化了应用系统的安装和部署。因此,Go语言受到了广大程序员的青睐,越来越多地开始应用于谷歌 和百度等知名中外企业的产品中。
        对于这样一个在云计算和大数据时代最具发展前景的编程语言,龙芯平台能不能很好地支持呢?今天我们就从Go的源代码开始,逐步构建龙芯平台上的Go语言环 境。尽管笔者的实验机器为安装了龙芯开源社区版操作系统Loongnix的龙芯3B迷你电脑,本文的方法适用于所有64位操作系统的MIPS处理器平台。
一、下载Go语言的源代码
        为了吸引更多的社区开发力量,Google开源了Go语言的源代码,并托管于世界著名的github网站中。我们可以通过执行以下命令获取Go语言的全套源代码:
$ cd ~
$ git clone https://github.com/golang/go.git   
上述命令要求您的电脑中安装了git版本控制工具。如果您的电脑中没有预装git,可以通过如下命令快速安装:
$ sudo yum install git
二、从源代码构建Go语言环境
        由于当前最新发布的Go语言的稳定版本为Go 1.6,并且官方从该版本开始正式支持MIPS架构的处理器,故笔者以Go 1.6为例展示Go语言环境在龙芯平台上的构建方法。为了最大限度减少Go语言对其它编程工具的依赖,从Go 1.5开始,Go语言的编译器、汇编器和链接器等底层工具链全部使用Go语言来实现。故自Go 1.5开始,从源代码安装Go语言环境时需要使用现成的Go语言编译器来编译Go的源代码,上述过程称为Go语言的自举编译。因此,从源代码安装Go 1.6时要求系统中存在Go 1.4及其以上的Go语言环境。
        由于官方从Go 1.6才开始正式支持MIPS架构,因而无法找到现成的可用于在龙芯上进行自举编译的低版本Go编译器。好在Go语言提供了友好的交叉编译功能,我们可以 借助X86的机器编译一个MIPS平台的Go编译器,用作在龙芯上从源码构建Go 1.6的自举编译器。因此,在龙芯平台上从源代码构建Go 1.6的环境必须分成两个阶段进行:
1)  在X86平台上交叉编译出面向MIPS平台的Go语言自举编译工具链;
2)  在龙芯平台上利用1)中的Go自举编译器构建Go 1.6开发环境。
       下面笔者逐步向大家展示Go 1.6环境在龙芯平台上的构建过程。等大家走完整个过程就会发现,在龙芯上从源代码安装Go语言环境非常简单。
第一阶段:在X86平台上交叉编译出面向MIPS平台的Go语言自举编译工具链。
       随便找一台装有64位Linux操作系统的X86电脑,逐步执行以下命令。
  1. 下载Go 1.4(或者更高版本)的二进制发行版作为交叉编译的自举编译工具链
      笔者选择Go 1.4的发行版作为在X86上编译Go 1.6源代码的自举编译器。由于官网 https://golang.org 在国内无法正常访问,可以通过其镜像站点 http://golangtc.com/download进行下载。笔者下载的文件为go1.4.2.linux-amd64.tar.gz,大小约59 M。下载后可以解压到任意目录,例如可以通过如下命令将其解压到/opt文件夹下并重命名为go1.4.2:
$ tar xvzf go1.4.2.linux-amd64.tar.gz -C /opt
$ mv /opt/go /opt/go1.4.2
  2. 配置交叉编译的自举编译工具链
$ export GOROOT_BOOTSTRAP=/opt/go1.4.2 

  3. 下载Go 1.6的源代码
$ cd ~/workspace/golang/
$ git clone https://github.com/golang/go.git
  4. 切换到Go 1.6的发行版
$ cd go
$ git checkout release-branch.go1.6
  5. 交叉编译
      这一步通过执行脚本bootstrp.bash完成。该脚本执行前,需要通过环境变量GOOS和GOARCH分别指明交叉编译的目标操作系统和处理器架构。
$ cd ~/workspace/golang/go/src
$ GOOS=linux GOARCH=mips64le ./bootstrap.bash  
        接下来就是等待交叉编译结束了。由于交叉编译无需执行Go语言官方自带的测试集,一般10分钟内即可完成编译。不出意外的话,整个过程应该非常顺利。如果您看到以下提示,则表明交叉编译成功。
----
Bootstrap toolchain for linux/mips64le installed in /home/fool/workspace/golang/go-linux-mips64le-bootstrap.
Building tbz.
-rw-rw-r-- 1 fool fool 46736199 6月 3 09:08 /home/fool/workspace/golang/go-linux-mips64le-bootstrap.tbz     
       交叉编译所生成的面向MIPS平台的Go语言自举编译工具链位于压缩包/home/fool/workspace/golang/go-linux-mips64le-bootstrap.tbz中。将该压缩包拷贝到龙芯电脑中备用。
第二阶段:在龙芯平台上从源代码构建Go 1.6开发环境。
  1. 解压交叉编译生成的面向MIPS平台的自举编译工具链
$ tar xvjf go-linux-mips64le-bootstrap.tbz -C ~/workspace 
  2. 简单检验自举编译工具链是否可用
$ cd ~/workspace/go-linux-mips64le-bootstrap/bin
$ export GOROOT=/home/loongson/workspace/go-linux-mips64le-bootstrap
$ ./go version 如果观察到以下输出,则基本可以说明交叉编译没有问题。
go version go1.6.2 linux/mips64le
  3. 下载Go 1.6的源代码并切换到Go 1.6的发行版。
$ cd ~/workspace
$ git clone https://github.com/golang/go.git
$ cd go
$ git checkout release-branch.go1.6
   4. 编译配置
       在当前目录创建名为env.sh的shell脚本,输入以下语句后保存退出。
#!/bin/bash
export GOROOT_BOOTSTRAP=/home/loongson/workspace/go-linux-mips64le-bootstrap
export GOROOT=/home/loongson/workspace/go     
其中,GOROOT_BOOTSTRAP用于指向自举编译工具链的根目录,GOROOT指向Go 1.6源代码的根目录。
执行env.sh,以完成编译配置。
$ source env.sh 
5. 首次编译
$ cd src
$ ./all.bash       
上述脚本执行时,首先会利用自举编译工具链完成对Go 1.6源代码的编译,生成龙芯上的Go 1.6环境。随后利用官方的测试集对生成的本地Go 1.6进行测试。测试的过程相对漫长,需要耐心等待。约20分钟后,测试期间中突然打印如下错误信息:
ok      cmd/compile/internal/test    0.038s
ok cmd/cover 18.360s
ok cmd/doc 0.393s
ok cmd/fix 0.192s
panic: test timed out after 3m0s

goroutine 489 [running]:
panic(0x120552480, 0xc4203087f0)
/home/loongson/workspace/go/src/runtime/panic.go:500 +0x4c4
testing.startAlarm.func1()
/home/loongson/workspace/go/src/testing/testing.go:918 +0x168
created by time.goFunc
/home/loongson/workspace/go/src/time/sleep.go:132 +0x5c

FAIL cmd/go 208.996s
ok cmd/gofmt 0.270s
ok cmd/internal/goobj 0.064s
ok cmd/internal/obj 0.032s
ok cmd/internal/obj/x86 0.067s
ok cmd/internal/pprof/profile 0.048s
ok cmd/link 0.077s
ok cmd/nm 9.304s
       测试项目cmd/go没有通过测试。这是为什么呢?笔者起初怀疑编译生成的Go 1.6可能有问题,反复检查了编译参数的设置,但错误依旧。后来,考虑到官方既然已经宣布Go 1.6直接支持MIPS,编译出错的概率应极小,更何况前面那么多的测试项目都能正确运行。于是将思路从对编译参数的检查转向对测试参数的排查。显然,错 误由测试超时导致,而默认的超时阈值仅为3分钟。对于龙芯和ARM等低主频的处理器,cmd/go测试项的执行时间可能会超过3分钟。因此,在龙芯平台上 有可能需要适当增大测试超时的阈值。后来,经过一系列分析和排查,终于找到了环境变量GO_TEST_TIMEOUT_SCALE,用于对测试超时的阈值 进行倍增。例如,若设置GO_TEST_TIMEOUT_SCALE = 2,则测试超时的阈值扩大为原来的两倍,即由3分钟增大到6分钟。
  6. 重新编译
       根据具体平台的需要在env.sh中增加对环境变量GO_TEST_TIMEOUT_SCALE的设置,例如以下为适用于龙芯平台的env.sh。
#!/bin/bash

export GOROOT_BOOTSTRAP=/home/loongson/workspace/go-linux-mips64le-bootstrap
export GOROOT=/home/loongson/workspace/go

# Added for Loongson
export GO_TEST_TIMEOUT_SCALE=2
       上述修改完成后,重新执行env.sh和all.bash这两个脚本。
$ cd ~/workspace/go
$ source env.sh
$ cd src
$ ./all.bash  
待脚本执行结束后,如果观察到如下输出信息,则说明龙芯平台上Go 1.6的编译和测试顺利完成。整个过程约半小时。
ALL TESTS PASSED
---
Installed Go for linux/mips64le in /home/loongson/workspace/go
Installed commands in /home/loongson/workspace/go/bin
*** You need to add /home/loongson/workspace/go/bin to your PATH.
  7. 安装编译生成的Go 1.6。
      在~/.bashrc的末尾添加如下语句
export GOROOT=/home/loongson/workspace/go
export PATH=$PATH: $GOROOT/bin

然后执行
$ source ~/.bashrc
三、龙芯上Go语言对全世界的问候
      激动人心的时刻终于到来了!我们先运行一下Go命令,打印一下版本信息吧:
$ go version
go version go1.6.2 linux/mips64le      接下来,我们来测试一下Go的“Hello World”!打开任何一款文本编辑器,您可以使用Linux经典的vim,也可以使用更适合大众的gedit,编写hello.go文件,仅需几行代码:
package main
import "fmt"
func main() {
fmt.Printf("Hello World!\n")
}
首先编译源代码hello.go。Go和C/C++语言一样,属于静态编译型语言。Go的源程序必须经过编译后才能执行。
$ go build hello.go      上述命令会生成名为hello的可执行文件。运行hello
$ ./hello
Hello World!
      亲自感受了Go语言在龙芯上的第一个HelloWorld,真是太令人兴奋了!
      上述编译和执行的过程也可以使用go run命令一次性完成,例如
$ go run hello.go
Hello World!
四、继续把玩 Go!Go!Go!
 
      看到这里,有读者不禁会问:除了运行简单的HelloWorld,龙芯平台上的Go还能干什么?Go语言具有方便移植的特性。所有利用Go语言编写的应用 程序,经过相应平台的Go语言编译器编译后,都能够在该平台上运行。所以Go语言环境在龙芯平台上的成功构建意味着龙芯拥有了Go的全套软件生态。之前在 X86或ARM等平台上搭建的基于Go语言的应用系统,现在都能够以较低的代价迅速迁移到龙芯平台上来。
眼下基于Go的开源项目非常多,笔者没有时间一一搭建。笔者生性好玩,故专门挑选了几个较为有意思项目进行试验。感兴趣的朋友可以尝试更多的项目。需要特 别注意的是,在测试开源项目时,还需要额外         设置GOPATH环境变量。这是因为许多开源项目引用了Go语言的第三方库,需要从GOPATH环境变量指向的路径中加载第三方库或者将所引用的第三方库 下载到该路径中。例如,笔者的设置如下:
$ export GOPATH=/home/loongson/workspace/3rdpkg为了便于日后Go语言程序的开发,建议将上述环境变量也加入到~/.bashrc文件中。
 
  1. 碰撞反弹游戏(https://github.com/kurehajime/pong-command
      游戏时,输入任意一个字符串(如go1.6.2),该字符串会沿直线运动,遇到上下边界或左右围栏则镜面反弹。左侧围栏由电脑自动控制,右侧围栏由玩家操作。游戏的目标是控制右侧围栏在垂直方向的位置,使得字符串不断被碰撞反弹。
龙芯平台上的碰撞反弹游戏.png

龙芯平台上的碰撞反弹游戏
  1. 汉语拼音转换工具(https://github.com/mozillazg/go-pinyin
      将任意汉字转换成对应的汉语拼音。例如,输入“龙芯俱乐部”的执行情况如下:
龙芯平台上的汉语拼音转换工具.png

      龙芯平台上的汉语拼音转换工具
  1. 翻译助手Utran(https://github.com/zengsai/utran
      可以将英文翻译成汉语。例如,输入“This is go1.6.2 running on Loongson.”的执行情况如下:
龙芯平台上的翻译助手Utran.png

      龙芯平台上的翻译助手Utran
  1.排序算法可视化(https://github.com/SimonWaldhe ... ation
      可将常见的冒泡、选择、插入和快排等排序算法的排序过程可视化。
排序过程可视化.png

一、遇到问题怎么办?
        以上是笔者在龙芯平台上从源代码构建Go语言环境的记录。读者按照这些操作步骤也应该能快速构建好Go语言开发环境。如果遇到问题自己不能解决,龙芯社区提供了官方的Bug服务网站(http://bugs.loongnix.org/login_page.php),您可以把遇到的问题提交上去,龙芯团队的人会及时为您解决。
龙芯官方的Bug提交平台
 

龙芯1C100指纹锁方案进入产品化测试阶段

呼呀 发表了文章 • 0 个评论 • 190 次浏览 • 2017-01-24 10:07 • 来自相关话题

原文链接:龙芯1C100指纹锁方案进入产品化测试阶段

随着近年来指纹识别技术在手机上的普及,指纹识别模块的识别速度与准确性迅速优化,成本大大降低,使得生活中许多应用场景加入指纹识别变得可能。除了常见 的门禁、考勤机、保险柜等常规应用,带有指纹识别的银行U盾、存储U盘、通过按键识别指纹以区分家人口味的咖啡机,甚至防止孩子误用的指纹识别打火机都纷 纷面市。其中我们千家万户使用的门锁,更是指纹识别技术的一个新增长点,业内人士预计2016年指纹识别智能锁出货量超过500万台,未来三年将进入一个 高速发展和普及阶段,形成千万级的市场容量。
        在这一新兴市场,龙芯中科嵌入式团队尝试与消费市场结合,基于龙芯1C100超低功耗芯片,开发出一套完整的龙芯指纹识别智能锁产品方案,方案集成语音、 密码、刷卡、OLED显示等多种功能,并可定制开发集成、RFID射频钥匙、蓝牙、激光钥匙、SIM卡短信功能、远程APP、视频记录等多种功能一体的指 纹锁解决方案。方案适配杭州晟元、杭州指安、北京集创北方、北京艾迪沃德、上海图正、江苏邦融微电子、深圳艾迪沃德等多个国内外知名厂家的光学、半导体指 纹模块。2016年11月龙芯中科与北京集创北方科技有限公司签订了战略合作框架协议,基于龙芯1C100指纹锁方案,应用集创北方新一代半导体指纹识别 模组,共同打造新一代超低成本、模块化、标准化的指纹识别智能锁解决方案。
浙江巨力集团基于龙芯1C100指纹锁方案的指纹锁
 





    作为一个指纹识别解决方案领域的新兵,在半年多的时间内,龙芯嵌入式研发团队指纹锁项目组,在消费级产品市场竞争惨烈成本压力极大的不利条件下,顺利完成 了降成本和试产样品质量稳定性测试工作,开始进行龙芯1C100指纹锁方案的产品化测试,2016年年底分别与永康凯丰集团和浙江巨力集团达成供货意向, 预计2017年可实现5到10万套的销售量。 查看全部
原文链接:龙芯1C100指纹锁方案进入产品化测试阶段

随着近年来指纹识别技术在手机上的普及,指纹识别模块的识别速度与准确性迅速优化,成本大大降低,使得生活中许多应用场景加入指纹识别变得可能。除了常见 的门禁、考勤机、保险柜等常规应用,带有指纹识别的银行U盾、存储U盘、通过按键识别指纹以区分家人口味的咖啡机,甚至防止孩子误用的指纹识别打火机都纷 纷面市。其中我们千家万户使用的门锁,更是指纹识别技术的一个新增长点,业内人士预计2016年指纹识别智能锁出货量超过500万台,未来三年将进入一个 高速发展和普及阶段,形成千万级的市场容量。
        在这一新兴市场,龙芯中科嵌入式团队尝试与消费市场结合,基于龙芯1C100超低功耗芯片,开发出一套完整的龙芯指纹识别智能锁产品方案,方案集成语音、 密码、刷卡、OLED显示等多种功能,并可定制开发集成、RFID射频钥匙、蓝牙、激光钥匙、SIM卡短信功能、远程APP、视频记录等多种功能一体的指 纹锁解决方案。方案适配杭州晟元、杭州指安、北京集创北方、北京艾迪沃德、上海图正、江苏邦融微电子、深圳艾迪沃德等多个国内外知名厂家的光学、半导体指 纹模块。2016年11月龙芯中科与北京集创北方科技有限公司签订了战略合作框架协议,基于龙芯1C100指纹锁方案,应用集创北方新一代半导体指纹识别 模组,共同打造新一代超低成本、模块化、标准化的指纹识别智能锁解决方案。
浙江巨力集团基于龙芯1C100指纹锁方案的指纹锁
 
1.jpg


    作为一个指纹识别解决方案领域的新兵,在半年多的时间内,龙芯嵌入式研发团队指纹锁项目组,在消费级产品市场竞争惨烈成本压力极大的不利条件下,顺利完成 了降成本和试产样品质量稳定性测试工作,开始进行龙芯1C100指纹锁方案的产品化测试,2016年年底分别与永康凯丰集团和浙江巨力集团达成供货意向, 预计2017年可实现5到10万套的销售量。

向黄老师学习 ——贺黄令仪老师八十寿辰

呼呀 发表了文章 • 0 个评论 • 194 次浏览 • 2017-01-24 10:05 • 来自相关话题

原文链接:向黄老师学习 ——贺黄令仪老师八十寿辰

在龙芯一个个繁忙的年轻身影中,时常能看到一位头发花白却精神矍铄的老者在忙碌不停,让人不禁赞叹而又充满好奇,赞叹的是以耄耋之龄依然奋战在研发一线, 好奇的是什么支撑这位老者几十年如一日地勤勉工作。这位独特的老者就是龙芯中科研究员——黄令仪老师,黄老师长于抗日战争,国家和民族的苦难激励着她在长 达半个多世纪的时间里,始终怀揣科技兴国的信念,艰苦卓绝地努力工作,从1A,1B到3A,3B,再到GS464E,龙芯的每一块芯片中都凝聚着黄老师的 心血和希冀。今年正值黄令仪老师八十寿辰,几名“老”龙芯研发人员,讲述了他们眼中黄老师工作和生活的点滴。
 
胡伟武:
        2010年前后的一个早上,我跟黄老师在金白领食堂吃早饭时碰在了一起。当时黄老师主要工作是进行龙芯芯片流片前的版图检查。我跟黄老师说,我们有一个重 要芯片用于涉及国家战略安全的装备中,请她认真检查、严格把关。同时考虑到黄老师年纪大了,建议她做完该芯片的版图检查后就别在一线做具体工作了。我知道 黄老师刚参加工作时就在中科院计算所参与了应用于“两弹一星”的156计算机的芯片研制。就对黄老师说,“黄老师,您把这件事忙完就别再做具体工作了,这 样,您的工作始于”两弹一星“中的器件研制,五十年后又在”两弹一星“的CPU研制中画上圆满的句号。”没想到黄老师脱口而出:“胡老师,我这辈子最大的 心愿就是匍匐在地,擦干祖国身上的耻辱;我是亲眼见过我的同胞被日本鬼子的飞机炸死的。”前辈的精神感染了我们,前辈的荣光照亮了我们前进的道路。中国现 在比黄老师年轻时强大了,但在IT产业还是有不少耻辱。我们这代人如果不擦干这些耻辱,下一代就要继续承受这些耻辱。让我们继承前辈的精神,任劳任怨,为 建设自主可控的信息产业体系而努力奋斗!
 
杨旭:
        研制龙芯1号的时候,我还在微电子所读研。那时候黄老师每天中午和我们吃完饭,都会在食堂就地开个小会,讨论一下工作情况。我印象中黄老师经常说的话是 “我们得努力啊,否则为什么还需要我们在这里呢?”我后来也一直拿这句话鞭策自己。而每次看见老太太努力学习和工作的身影,我就不由得给自己再加一把劲 儿!
        在全定制组的时候,被黄老师检查的次数多了,心里面对工作的完成度大概有三个档次:按道理来说可以了;我觉得挺不错了;黄老师觉得可以了。有次我和钟石强 在版图上较空的位置手工补充电源/地,加了几天班了,也补充了很多地方,于是我们就想赶紧存盘结束。最后钟石强和我一起检查浏览的时候,我们发现有一些位 置还可以使使劲补上一点儿,但实在是有些不想再折腾了。我俩就七嘴八舌的为偷懒找正当理由,“电源/地肯定足够了!”,“局部太多的金属会不会对平整度不 好?”,“这么加下去是没有尽头的!”……说得心满意足的时候,遇到了实质性问题:“黄老师看到后估计不会同意偷懒,谁去向黄老师解释?”沉默了一阵儿, 我俩就开始讨论怎样改才能比较完美……
        黄老师和我家住在一个小区里。记得夏天一个周末,黄老师突然敲门叫我,打开门看见黄老师还拿了一个西瓜来。我妈特热情的迎进黄老师,还客气说怎么来家里还 带东西。黄老师也不顾什么客套,跟我劈里啪啦讨论了好半天工作的事,连水都没顾上喝,临走的时候明显愣了愣神儿。我后来才回过味儿来,老太太是自己买西瓜 吃,临时想起事情来找我的。没成想西瓜被我们给“劫”了,老太太才愣了愣神,只好又去买了一个。
 
苏孟豪:
        黄老师对龙芯的事业异常地认真,不放过任何一点细节,整个推导过程都要求严格完备。我刚进课题组时在结构组,对芯片的接口应用多少了解一些,所以有时会被 黄老师找过去谈话。比如问IO输出负载、输入斜率、频率要求、系统中的工作情况等等。刚开始我还搞不太明白,有些讲得没太有底气。黄老师会把我说的记在笔 记本上,整理完后要求签字确认。因为问题后果被描绘得很严重,只好完全搞明白后才敢下笔。黄老师还会要求提供相关的文档依据,再次确认。至今难忘黄老师拿 着小本子说“我这里都记下来了,某年某月某日,某某说…”的情景。
 
李晓钰:
        黄老师对待工作特别认真负责任,去年她生病卧床休息,没隔几天,我又在五楼打水间碰到了黄老师,我嗔怪她:“您不好好休息,怎么又跑来了?”黄老师抓着我 的手、瞪着眼睛激动地说:“我跟你说,我调研了XXX,XX得这么做,要xxx,我得告诉……”说了一大堆,总之,不来不行!一定得来!那一刻,我真心觉 得我们工作没做好,让老太太这么操心。还得继续加把劲才行啊!
        黄老师特别关心我们这帮“小”同事,在食堂遇见她都说我,你怎么瘦了,一定要注意身体啊。然后我就苦着脸说:黄老师,就您说我瘦了,他们都说我胖了。然后 一起吃饭时,听她讲小时候同胞被日本人炸死、讲激情地做156机,讲刚做龙芯时的事情和心情,感觉特别受教育。
 
胡明昌:
        我曾在计算所三叶招待所住了一段时间,每天早上去融科资讯地下餐厅吃饭,路上经常能碰到一个身影在练太极拳,动作连绵不断、急缓相间、浑然天成,很少受周边行人的干扰,在安静的早上形成一道亮丽的风景。她就是受人尊敬的黄令仪老师。
        有一次我刻意上前向黄老师打招呼,黄老师说坚持打太极拳有多年的习惯,一般从早上8点开始,到8点半结束,动作比较和缓,稍微能出一点汗,打完再到楼上上 班,一直上到晚上8点多,一天精神都很好。我问黄老师怎么坚持下来的,她说形成习惯后觉得很自然,不认为晨练是负担,而且很享受这个过程。黄老师建议我和 我爱人多参加运动,既可以强身健体,还能帮助工作更有效率。
        黄老师晨练太极非常投入,我们很少打扰她。今天回忆起来都是十年前的事了,祝黄老师八十高龄生日快乐!
 
王焕东:
        龙芯3A刚回来的时候,DDR和HT的测试都不太顺利,因为推测和全定制IO有关,黄老师很着急。那时在计算所还没有高端的信号测试设备,黄老师就带我们去微电子所借设备测试。
        那一次在微电子所,我看到很多的老师都对黄老师特别的热情和恭敬,还有一位老师嘱咐我说,黄老师可是他们的老祖宗,要我们可得照顿好了。当时我还不明白, 直到后来黄老师给我讲过一些她在计算所、微电子所工作的事情,再加上胡老师讲过的一些故事,让我越发地尊敬黄老师。
        黄老师出了名的认真,她的认真让我们又敬又怕。黄老师有一个小本子,我们做的每一个实验,做出的每一个猜测,黄老师都会完完整整地记在她的小本子上。黄老 师的小本子用得很快,有时候我们讨论,有些事情记不太清的时候,黄老师都能从她的小本子上找到当时的记录,翻给大家看。从这小小的本子上,就能看到老一辈 科学家的认真和严谨,值得我们尊敬和学习。
 
范宝峡:
        自黄老师来龙芯那一刻起,我们就一起工作,不知不觉已经近十五年了。黄老师是老一辈科学家的典型,就像一颗活化石,时刻向我传递着那个年代的信息。黄老师 也是真正长在红旗下,处处闪耀着一名优秀共产党员的光辉。回忆起和黄老师相关的故事,像是夜空中的繁星,它们或近或远,或清晰或模糊……
        黄老师非常敬业,除了时常练练太极拳或气功之外,几乎没有特别的业余爱好,一心扑在工作上,而且工作时特别投入。曾经有一次我在她正在看书的时候,从后面 喊了一声黄老师,结果把她吓得快要站起来,刚开始我怀疑是不是我声太大了,后来才渐渐明白,是黄老师太投入了。后来我自我总结:工作时找黄老师最好正面低 声,次之侧面,一定不能从后面喊。黄老师对于工作热情一般人很难体会,记得今年教师节,我和王昊去看望她。考虑到黄老师身体不好,去之前我给王昊交代: “看望病人时间不能长,咱们打个招呼、拜拜,十五分钟就好”。到了黄老师家,寒暄过后,黄老师特别热情的把我们让到屋里。我问 黄老师病治的怎么样了,没想到黄老师根本没当回事:“前面给你说过,一会半会好不了,我最近准备上班。”这让我想起了她最近老捣鼓着要每周回公司工作两天 的事,就说道:“要等病彻底好了再去,您那两天完全可以在所里,工艺调研不用去公司的。”没想到黄老师很郑重的说“不是两天,是两天半!”,“哦,对了, 让我们谈谈16nm工艺的事,我前两天刚去了Candence,他们16nm的IP全部……”然后就开始了一个多小时的谈话,之所以能结束,还是因为我答 应第二天到所里再找她继续谈。王昊同学坐在沙发的远端,至始至终没说一句话。
        工作之外,黄老师也是一个特别热情、特别用心的人。记得有一天,黄老师拿着一张照片,手舞足蹈的冲我说:“小范,你来看这张照片,照的多好啊!”。我拿来 一看,是一张在桂林市拍的吃米线的照片。“你看,照的多好啊,每个人都在笑!”,黄老师高兴的说。没过几天,黄老师又复印了一张照片送给我。端详着那张照 片,我不禁陷入了十多年前那段并不清晰的记忆。记得当时龙芯二号流片成功后,我们去桂林游玩。黄老师是桂林人,听说我们去她家乡玩,就特别开心。我记得吃 完晚饭后,黄老师还特别请我们吃她心目中著名的“马肉米线”。尽管已经吃过饭了,盛情之下我们还是“被迫”享用了当地这一名吃。不过,味道早已模糊,只是 记得那离著名的桂林市第一中学(原汉民中学,黄老师曾多次提起,满满的故事)不远,还记得当时兴奋的心情。多希望还能和黄老师再次到桂林,再和老人家一起 看看象鼻山,听她讲七星岩的故事,和她讨论天鹅的黑白……
 
王朋宇
        原来在中关村的时候,就知道黄老师每天都要打太极,那时候就很佩服黄老师的坚持。后来我们搬到环保园,黄老师家住中关村,她每天来上班坐班车就要花费近一 个小时的时间。去年春天的一个早上,当时这边的地下停车库还没使用,我将车停在办公楼后面的停车场,出来后看到黄老师在一片空地上打太极,我站在一边看。 黄老师特别地全神贯注,根本没有注意到我。一直等到黄老师收了功我才跟她打招呼,当时有点开玩笑的说:“黄老师,我跟你学打太极吧”。黄老师就说好啊,然 后她慢慢地,很认真地说“我现在身体不太好,前段时间生病了,我要赶紧把身体调整好。前段时间因为身体的原因,工作起来没精神,效率不高。眼睛也有点看不 太清楚,去医院开了一些药。我现在觉得有点着急我的病,希望能快点好,这样才能好好工作。”当时听了黄老师的话,我的心里完全是震惊加羞愧,一个七十多岁 的老人,身体不舒服的时候想的居然是怕耽误工作,还想着赶紧把身体好起来继续工作,这样的精神真的让我们年轻人无地自容。后来因为我自己的主观原因,没跟 黄老师练太极,每次见面黄老师都问我,你还要不要跟我练了,我都不好意思的走开。黄老师,虽然没有打太极,我也要把身体锻炼好,像你一样健康地为龙芯工作 50年。
 
汪文祥
        我印象最深的是“被黄老师抓住问问题”,特别是3A2000产品化攻关过程中围绕CP0Q RAM进行排查分析的时候。尽管在龙芯待了好几年,对黄老师也不陌生,但是真正打起交道来,还是让我很有感触。体会最深的是黄老师那种迫切希望排查出问题 的心情,就像孩子生病时母亲的那种焦虑一样,让你感觉到她老人家真的是把全部的心思都放到了龙芯的芯片上,这份至纯至真的性情让我由衷的钦佩。另一个印象 深刻的地方是黄老师那种完全平等的态度,在和她进行技术讨论的过程中,起初我觉得黄老师对我那么客气弄得我很不好意思,但渐渐地我开始为自己脑子里面那些 固有的等级观念感到惭愧。“真理面前人人平等”这最基本的科学精神,黄老师不是放在嘴上说,而是体现在一言一行中。


杨梁
        我与黄老师的工作接触日益增多,始于2010年3B1500芯片设计工作的开展。那是我们首次涉足32/28纳米工艺,由于当时工艺和单元库的成熟度问 题,以及设计经验的不足,前期调研、中期设计及后期收敛过程都颇费周折,黄老师和我们都面临了不小压力。我印象中最为深刻的有两件事,一是在前期评估分析 时,我们初步拟定了S公司提供的标准单元库,但在某次版本更新后,发现前后差异过大,导致预定的性能指标难以完成,整个设计工作另生波折。此时黄老师亲自 去S公司沟通,说到激动处,伏案痛哭,在场各人多为震撼,也让我心生惭愧,这该是何等的责任心,竟然让白发苍苍的老人依旧如此执着;另一是设计后期收尾 时,由于整体时序收敛的困难,我们首次在签核分析中采用了PBA(基于路径的分析)方法,黄老师不放心,尽管先前较少接触门级设计,但她从阅读工具基础文 档开始,重新学习,多方询问,一点点尝试去理解静态时序分析方法,这种科学精神,足以让我们汗颜不已。类似的事情还有很多,我想,在黄老师身上,常常不经 意所体现出来的态度和作风,恰恰是老一辈科研工作者给我们的最好的言传身教。 查看全部
原文链接:向黄老师学习 ——贺黄令仪老师八十寿辰

在龙芯一个个繁忙的年轻身影中,时常能看到一位头发花白却精神矍铄的老者在忙碌不停,让人不禁赞叹而又充满好奇,赞叹的是以耄耋之龄依然奋战在研发一线, 好奇的是什么支撑这位老者几十年如一日地勤勉工作。这位独特的老者就是龙芯中科研究员——黄令仪老师,黄老师长于抗日战争,国家和民族的苦难激励着她在长 达半个多世纪的时间里,始终怀揣科技兴国的信念,艰苦卓绝地努力工作,从1A,1B到3A,3B,再到GS464E,龙芯的每一块芯片中都凝聚着黄老师的 心血和希冀。今年正值黄令仪老师八十寿辰,几名“老”龙芯研发人员,讲述了他们眼中黄老师工作和生活的点滴。
 
胡伟武:
        2010年前后的一个早上,我跟黄老师在金白领食堂吃早饭时碰在了一起。当时黄老师主要工作是进行龙芯芯片流片前的版图检查。我跟黄老师说,我们有一个重 要芯片用于涉及国家战略安全的装备中,请她认真检查、严格把关。同时考虑到黄老师年纪大了,建议她做完该芯片的版图检查后就别在一线做具体工作了。我知道 黄老师刚参加工作时就在中科院计算所参与了应用于“两弹一星”的156计算机的芯片研制。就对黄老师说,“黄老师,您把这件事忙完就别再做具体工作了,这 样,您的工作始于”两弹一星“中的器件研制,五十年后又在”两弹一星“的CPU研制中画上圆满的句号。”没想到黄老师脱口而出:“胡老师,我这辈子最大的 心愿就是匍匐在地,擦干祖国身上的耻辱;我是亲眼见过我的同胞被日本鬼子的飞机炸死的。”前辈的精神感染了我们,前辈的荣光照亮了我们前进的道路。中国现 在比黄老师年轻时强大了,但在IT产业还是有不少耻辱。我们这代人如果不擦干这些耻辱,下一代就要继续承受这些耻辱。让我们继承前辈的精神,任劳任怨,为 建设自主可控的信息产业体系而努力奋斗!
 
杨旭:
        研制龙芯1号的时候,我还在微电子所读研。那时候黄老师每天中午和我们吃完饭,都会在食堂就地开个小会,讨论一下工作情况。我印象中黄老师经常说的话是 “我们得努力啊,否则为什么还需要我们在这里呢?”我后来也一直拿这句话鞭策自己。而每次看见老太太努力学习和工作的身影,我就不由得给自己再加一把劲 儿!
        在全定制组的时候,被黄老师检查的次数多了,心里面对工作的完成度大概有三个档次:按道理来说可以了;我觉得挺不错了;黄老师觉得可以了。有次我和钟石强 在版图上较空的位置手工补充电源/地,加了几天班了,也补充了很多地方,于是我们就想赶紧存盘结束。最后钟石强和我一起检查浏览的时候,我们发现有一些位 置还可以使使劲补上一点儿,但实在是有些不想再折腾了。我俩就七嘴八舌的为偷懒找正当理由,“电源/地肯定足够了!”,“局部太多的金属会不会对平整度不 好?”,“这么加下去是没有尽头的!”……说得心满意足的时候,遇到了实质性问题:“黄老师看到后估计不会同意偷懒,谁去向黄老师解释?”沉默了一阵儿, 我俩就开始讨论怎样改才能比较完美……
        黄老师和我家住在一个小区里。记得夏天一个周末,黄老师突然敲门叫我,打开门看见黄老师还拿了一个西瓜来。我妈特热情的迎进黄老师,还客气说怎么来家里还 带东西。黄老师也不顾什么客套,跟我劈里啪啦讨论了好半天工作的事,连水都没顾上喝,临走的时候明显愣了愣神儿。我后来才回过味儿来,老太太是自己买西瓜 吃,临时想起事情来找我的。没成想西瓜被我们给“劫”了,老太太才愣了愣神,只好又去买了一个。
 
苏孟豪:
        黄老师对龙芯的事业异常地认真,不放过任何一点细节,整个推导过程都要求严格完备。我刚进课题组时在结构组,对芯片的接口应用多少了解一些,所以有时会被 黄老师找过去谈话。比如问IO输出负载、输入斜率、频率要求、系统中的工作情况等等。刚开始我还搞不太明白,有些讲得没太有底气。黄老师会把我说的记在笔 记本上,整理完后要求签字确认。因为问题后果被描绘得很严重,只好完全搞明白后才敢下笔。黄老师还会要求提供相关的文档依据,再次确认。至今难忘黄老师拿 着小本子说“我这里都记下来了,某年某月某日,某某说…”的情景。
 
李晓钰:
        黄老师对待工作特别认真负责任,去年她生病卧床休息,没隔几天,我又在五楼打水间碰到了黄老师,我嗔怪她:“您不好好休息,怎么又跑来了?”黄老师抓着我 的手、瞪着眼睛激动地说:“我跟你说,我调研了XXX,XX得这么做,要xxx,我得告诉……”说了一大堆,总之,不来不行!一定得来!那一刻,我真心觉 得我们工作没做好,让老太太这么操心。还得继续加把劲才行啊!
        黄老师特别关心我们这帮“小”同事,在食堂遇见她都说我,你怎么瘦了,一定要注意身体啊。然后我就苦着脸说:黄老师,就您说我瘦了,他们都说我胖了。然后 一起吃饭时,听她讲小时候同胞被日本人炸死、讲激情地做156机,讲刚做龙芯时的事情和心情,感觉特别受教育。
 
胡明昌:
        我曾在计算所三叶招待所住了一段时间,每天早上去融科资讯地下餐厅吃饭,路上经常能碰到一个身影在练太极拳,动作连绵不断、急缓相间、浑然天成,很少受周边行人的干扰,在安静的早上形成一道亮丽的风景。她就是受人尊敬的黄令仪老师。
        有一次我刻意上前向黄老师打招呼,黄老师说坚持打太极拳有多年的习惯,一般从早上8点开始,到8点半结束,动作比较和缓,稍微能出一点汗,打完再到楼上上 班,一直上到晚上8点多,一天精神都很好。我问黄老师怎么坚持下来的,她说形成习惯后觉得很自然,不认为晨练是负担,而且很享受这个过程。黄老师建议我和 我爱人多参加运动,既可以强身健体,还能帮助工作更有效率。
        黄老师晨练太极非常投入,我们很少打扰她。今天回忆起来都是十年前的事了,祝黄老师八十高龄生日快乐!
 
王焕东:
        龙芯3A刚回来的时候,DDR和HT的测试都不太顺利,因为推测和全定制IO有关,黄老师很着急。那时在计算所还没有高端的信号测试设备,黄老师就带我们去微电子所借设备测试。
        那一次在微电子所,我看到很多的老师都对黄老师特别的热情和恭敬,还有一位老师嘱咐我说,黄老师可是他们的老祖宗,要我们可得照顿好了。当时我还不明白, 直到后来黄老师给我讲过一些她在计算所、微电子所工作的事情,再加上胡老师讲过的一些故事,让我越发地尊敬黄老师。
        黄老师出了名的认真,她的认真让我们又敬又怕。黄老师有一个小本子,我们做的每一个实验,做出的每一个猜测,黄老师都会完完整整地记在她的小本子上。黄老 师的小本子用得很快,有时候我们讨论,有些事情记不太清的时候,黄老师都能从她的小本子上找到当时的记录,翻给大家看。从这小小的本子上,就能看到老一辈 科学家的认真和严谨,值得我们尊敬和学习。
 
范宝峡:
        自黄老师来龙芯那一刻起,我们就一起工作,不知不觉已经近十五年了。黄老师是老一辈科学家的典型,就像一颗活化石,时刻向我传递着那个年代的信息。黄老师 也是真正长在红旗下,处处闪耀着一名优秀共产党员的光辉。回忆起和黄老师相关的故事,像是夜空中的繁星,它们或近或远,或清晰或模糊……
        黄老师非常敬业,除了时常练练太极拳或气功之外,几乎没有特别的业余爱好,一心扑在工作上,而且工作时特别投入。曾经有一次我在她正在看书的时候,从后面 喊了一声黄老师,结果把她吓得快要站起来,刚开始我怀疑是不是我声太大了,后来才渐渐明白,是黄老师太投入了。后来我自我总结:工作时找黄老师最好正面低 声,次之侧面,一定不能从后面喊。黄老师对于工作热情一般人很难体会,记得今年教师节,我和王昊去看望她。考虑到黄老师身体不好,去之前我给王昊交代: “看望病人时间不能长,咱们打个招呼、拜拜,十五分钟就好”。到了黄老师家,寒暄过后,黄老师特别热情的把我们让到屋里。我问 黄老师病治的怎么样了,没想到黄老师根本没当回事:“前面给你说过,一会半会好不了,我最近准备上班。”这让我想起了她最近老捣鼓着要每周回公司工作两天 的事,就说道:“要等病彻底好了再去,您那两天完全可以在所里,工艺调研不用去公司的。”没想到黄老师很郑重的说“不是两天,是两天半!”,“哦,对了, 让我们谈谈16nm工艺的事,我前两天刚去了Candence,他们16nm的IP全部……”然后就开始了一个多小时的谈话,之所以能结束,还是因为我答 应第二天到所里再找她继续谈。王昊同学坐在沙发的远端,至始至终没说一句话。
        工作之外,黄老师也是一个特别热情、特别用心的人。记得有一天,黄老师拿着一张照片,手舞足蹈的冲我说:“小范,你来看这张照片,照的多好啊!”。我拿来 一看,是一张在桂林市拍的吃米线的照片。“你看,照的多好啊,每个人都在笑!”,黄老师高兴的说。没过几天,黄老师又复印了一张照片送给我。端详着那张照 片,我不禁陷入了十多年前那段并不清晰的记忆。记得当时龙芯二号流片成功后,我们去桂林游玩。黄老师是桂林人,听说我们去她家乡玩,就特别开心。我记得吃 完晚饭后,黄老师还特别请我们吃她心目中著名的“马肉米线”。尽管已经吃过饭了,盛情之下我们还是“被迫”享用了当地这一名吃。不过,味道早已模糊,只是 记得那离著名的桂林市第一中学(原汉民中学,黄老师曾多次提起,满满的故事)不远,还记得当时兴奋的心情。多希望还能和黄老师再次到桂林,再和老人家一起 看看象鼻山,听她讲七星岩的故事,和她讨论天鹅的黑白……
 
王朋宇
        原来在中关村的时候,就知道黄老师每天都要打太极,那时候就很佩服黄老师的坚持。后来我们搬到环保园,黄老师家住中关村,她每天来上班坐班车就要花费近一 个小时的时间。去年春天的一个早上,当时这边的地下停车库还没使用,我将车停在办公楼后面的停车场,出来后看到黄老师在一片空地上打太极,我站在一边看。 黄老师特别地全神贯注,根本没有注意到我。一直等到黄老师收了功我才跟她打招呼,当时有点开玩笑的说:“黄老师,我跟你学打太极吧”。黄老师就说好啊,然 后她慢慢地,很认真地说“我现在身体不太好,前段时间生病了,我要赶紧把身体调整好。前段时间因为身体的原因,工作起来没精神,效率不高。眼睛也有点看不 太清楚,去医院开了一些药。我现在觉得有点着急我的病,希望能快点好,这样才能好好工作。”当时听了黄老师的话,我的心里完全是震惊加羞愧,一个七十多岁 的老人,身体不舒服的时候想的居然是怕耽误工作,还想着赶紧把身体好起来继续工作,这样的精神真的让我们年轻人无地自容。后来因为我自己的主观原因,没跟 黄老师练太极,每次见面黄老师都问我,你还要不要跟我练了,我都不好意思的走开。黄老师,虽然没有打太极,我也要把身体锻炼好,像你一样健康地为龙芯工作 50年。
 
汪文祥
        我印象最深的是“被黄老师抓住问问题”,特别是3A2000产品化攻关过程中围绕CP0Q RAM进行排查分析的时候。尽管在龙芯待了好几年,对黄老师也不陌生,但是真正打起交道来,还是让我很有感触。体会最深的是黄老师那种迫切希望排查出问题 的心情,就像孩子生病时母亲的那种焦虑一样,让你感觉到她老人家真的是把全部的心思都放到了龙芯的芯片上,这份至纯至真的性情让我由衷的钦佩。另一个印象 深刻的地方是黄老师那种完全平等的态度,在和她进行技术讨论的过程中,起初我觉得黄老师对我那么客气弄得我很不好意思,但渐渐地我开始为自己脑子里面那些 固有的等级观念感到惭愧。“真理面前人人平等”这最基本的科学精神,黄老师不是放在嘴上说,而是体现在一言一行中。


杨梁
        我与黄老师的工作接触日益增多,始于2010年3B1500芯片设计工作的开展。那是我们首次涉足32/28纳米工艺,由于当时工艺和单元库的成熟度问 题,以及设计经验的不足,前期调研、中期设计及后期收敛过程都颇费周折,黄老师和我们都面临了不小压力。我印象中最为深刻的有两件事,一是在前期评估分析 时,我们初步拟定了S公司提供的标准单元库,但在某次版本更新后,发现前后差异过大,导致预定的性能指标难以完成,整个设计工作另生波折。此时黄老师亲自 去S公司沟通,说到激动处,伏案痛哭,在场各人多为震撼,也让我心生惭愧,这该是何等的责任心,竟然让白发苍苍的老人依旧如此执着;另一是设计后期收尾 时,由于整体时序收敛的困难,我们首次在签核分析中采用了PBA(基于路径的分析)方法,黄老师不放心,尽管先前较少接触门级设计,但她从阅读工具基础文 档开始,重新学习,多方询问,一点点尝试去理解静态时序分析方法,这种科学精神,足以让我们汗颜不已。类似的事情还有很多,我想,在黄老师身上,常常不经 意所体现出来的态度和作风,恰恰是老一辈科研工作者给我们的最好的言传身教。

基于龙芯平台的实时操作系统图形开发框架发布

呼呀 发表了文章 • 0 个评论 • 267 次浏览 • 2017-01-24 10:04 • 来自相关话题

原文链接:基于龙芯平台的实时操作系统图形开发框架发布

基于龙芯平台的实时操作系统图形开发框架是由龙芯中科技术有限公司推出的一款嵌入式系统图形开发框架,用于基于龙芯处理器平台的vxWorks、 RTLinux等实时操作系统的图形应用开发。基于本嵌入式图形框架,可以开发跨平台2D/3D图形应用,使图形程序获得硬件加速能力,以及更少的CPU 占用,有利于提高龙芯平台实时操作系统的整体性能。本框架可用于工业、安全等领域的人机交互终端,特别是有实时性要求的使用场景,例如显控、指控、电子地 图、虚拟仪表、工业控制等。
系统架构图:






        此图形框架基于开源版本的Qt,经过龙芯团队的定制优化可以运行在vxWorks、RTLinux等实时操作系统,并且支持2D模式和3D模式。开源版的 Qt的3D模式仅有powerVR显卡,并且依赖于powerVR的SDK才可以正常应用。此框架完全没有这样的限制,只要显卡支持OpenGL,就可以 通过此框架显示3D应用程序。
        在此框架上开发应用程序可以统一使用Qt提供的开发环境即可。在此框架支持的实时操作系统上仅需要一套源代码,重新编译就可以在不同的实时系统下运行。 VxWorks系统对于Qt的模块支持有QtCore、QtGui、QtNetwork、QtSvg、QtXml、QtXmlPartten,而 RTLinux则可以支持Qt为linux提供的全部模块。
        在vxWorks下传统的界面编程组件windML的编程操作过程复杂繁琐,并且不是所见即所得的可视化编程;在此组件中完全抛弃了vxWorks图形界 面对windMl的依赖,加入独立操作显示器的模块和鼠标键盘模块,不仅如此,此组件在开发界面应用的过程中是所见即所得的,操作非常友好。






        本框架提供OpenGL2.1编程接口,支持RS780、M96等AtI显卡,未来将提供E6760、E8860等显卡支持。
        框架的发布标志着龙芯平台实时操作系统的图形开发有了统一的API接口标准,将对推进龙芯平台生态建设起到积极的促进作用。
  查看全部
原文链接:基于龙芯平台的实时操作系统图形开发框架发布

基于龙芯平台的实时操作系统图形开发框架是由龙芯中科技术有限公司推出的一款嵌入式系统图形开发框架,用于基于龙芯处理器平台的vxWorks、 RTLinux等实时操作系统的图形应用开发。基于本嵌入式图形框架,可以开发跨平台2D/3D图形应用,使图形程序获得硬件加速能力,以及更少的CPU 占用,有利于提高龙芯平台实时操作系统的整体性能。本框架可用于工业、安全等领域的人机交互终端,特别是有实时性要求的使用场景,例如显控、指控、电子地 图、虚拟仪表、工业控制等。
系统架构图:

1.jpg


        此图形框架基于开源版本的Qt,经过龙芯团队的定制优化可以运行在vxWorks、RTLinux等实时操作系统,并且支持2D模式和3D模式。开源版的 Qt的3D模式仅有powerVR显卡,并且依赖于powerVR的SDK才可以正常应用。此框架完全没有这样的限制,只要显卡支持OpenGL,就可以 通过此框架显示3D应用程序。
        在此框架上开发应用程序可以统一使用Qt提供的开发环境即可。在此框架支持的实时操作系统上仅需要一套源代码,重新编译就可以在不同的实时系统下运行。 VxWorks系统对于Qt的模块支持有QtCore、QtGui、QtNetwork、QtSvg、QtXml、QtXmlPartten,而 RTLinux则可以支持Qt为linux提供的全部模块。
        在vxWorks下传统的界面编程组件windML的编程操作过程复杂繁琐,并且不是所见即所得的可视化编程;在此组件中完全抛弃了vxWorks图形界 面对windMl的依赖,加入独立操作显示器的模块和鼠标键盘模块,不仅如此,此组件在开发界面应用的过程中是所见即所得的,操作非常友好。

2.jpg


        本框架提供OpenGL2.1编程接口,支持RS780、M96等AtI显卡,未来将提供E6760、E8860等显卡支持。
        框架的发布标志着龙芯平台实时操作系统的图形开发有了统一的API接口标准,将对推进龙芯平台生态建设起到积极的促进作用。
 

龙芯梦兰自主国产电子签到及会议管理系统 助力苏州第十二次党代会

代表月亮消咩尼 发表了文章 • 0 个评论 • 157 次浏览 • 2017-01-24 10:02 • 来自相关话题

原文鏈接--->http://www.loongson.cn/news/company/478.html
  2016年9月26到9月30日,中国共产党苏州市第十二次代表大会胜利召开。在省委办的指导下,由苏州市委机要局组织,江苏龙芯梦兰信息安全技术有限公 司研发的全国产化电子签到和会议管理系统大放光彩,为国产基础软硬件系统产业化应用推广打下了良好基础,并为建国67周年国庆献上厚礼。
     





        该系统安全可靠、使用方便、响应迅速等特点深受与会代表的好评。代表们通过亲身体验,了解到这是我国首个全国产的电子签到和会议管理系统时,更是刮目相看,纷纷称赞国产信息技术的进步。






        该系统主要由国产龙芯处理器、国产昆仑固件、国产操作系统、国产达梦数据库和国产中间件等核心基础软硬件构成,应用软件由苏州国泰新点软件公司协同开发, 是国内首款全自主的会议签到和管理系统,能从根本上保障国家党政军会议的信息安全。该系统包括国产射频通道机、国产签到终端、国产查询终端、国产服务器、 国产打印机等组件,主要功能有会议签到、会议查询、会议统计、会议显示、会议打印、缺席提醒等,支持代表证、身份证验证,支持正式代表和列席代表等多种签 到模式。它对网络中断、掉电、刷卡失败等突发异常情况具有良好的容错能力,考虑了各种会务细节,能够满足高可靠要求的大型会议场合。龙芯梦兰是自主可控信 息技术和产业的开拓者和引领者,一直致力于以龙芯为代表的国产CPU的产业化应用和推广,该系统的成功应用更坚定了我们为国家信息安全提供基础保障的信心 和决心。 查看全部
原文鏈接--->http://www.loongson.cn/news/company/478.html
  2016年9月26到9月30日,中国共产党苏州市第十二次代表大会胜利召开。在省委办的指导下,由苏州市委机要局组织,江苏龙芯梦兰信息安全技术有限公 司研发的全国产化电子签到和会议管理系统大放光彩,为国产基础软硬件系统产业化应用推广打下了良好基础,并为建国67周年国庆献上厚礼。
     

6.jpg


        该系统安全可靠、使用方便、响应迅速等特点深受与会代表的好评。代表们通过亲身体验,了解到这是我国首个全国产的电子签到和会议管理系统时,更是刮目相看,纷纷称赞国产信息技术的进步。

7.jpg


        该系统主要由国产龙芯处理器、国产昆仑固件、国产操作系统、国产达梦数据库和国产中间件等核心基础软硬件构成,应用软件由苏州国泰新点软件公司协同开发, 是国内首款全自主的会议签到和管理系统,能从根本上保障国家党政军会议的信息安全。该系统包括国产射频通道机、国产签到终端、国产查询终端、国产服务器、 国产打印机等组件,主要功能有会议签到、会议查询、会议统计、会议显示、会议打印、缺席提醒等,支持代表证、身份证验证,支持正式代表和列席代表等多种签 到模式。它对网络中断、掉电、刷卡失败等突发异常情况具有良好的容错能力,考虑了各种会务细节,能够满足高可靠要求的大型会议场合。龙芯梦兰是自主可控信 息技术和产业的开拓者和引领者,一直致力于以龙芯为代表的国产CPU的产业化应用和推广,该系统的成功应用更坚定了我们为国家信息安全提供基础保障的信心 和决心。

龙芯3A2000主机架设个人WEB服务器的体验和详细安装步骤

呼呀 发表了文章 • 0 个评论 • 166 次浏览 • 2017-01-24 10:01 • 来自相关话题

原文链接:龙芯3A2000主机架设个人WEB服务器的体验和详细安装步骤

2016年8月,通过龙芯俱乐部的《龙芯团购》(网址http://www.loongsonclub.com)购买了一台3A2000的主机,在点击下 单的时候心里咯噔了一下,感觉好像在梦里。下单后团购网负责人马上联系了我,怀着万分激动的心情等待,作为一个关注龙芯10年的爱好者,终于要第一使用国 产的龙芯电脑,完成一个许久的夙愿,到货后迫不及待开箱,发现机箱不大,类似广场舞上音响,我还发了个微信朋友圈让朋友们猜猜是什么,结果24小时内猜什 么的都有,比如:微波炉、音响、充电宝....,就是没猜到是龙芯电脑主机,果然高端大气上档次!开机后查看配置,个人感觉在台机挺高,已经超过了我现在 用主机的配置,固态硬盘、8G内存,还赠送了U盘。
开箱附图:






        命令行查看系统构架和系统操作系统,经查为mips平台的fedora2.1的64位系统。如果想使用更优好的用户桌面体验,还可以向俱乐部请求用 deepin的龙芯版,不但界面接近苹果操作系统,而且桌面软件更完善,而且有软件商店直接像苹果商店一样安装软件,主要是的已经移植了QQ最新版。
        命令行查看CPU的情况,以下附图说明是4个999Mhz频率的核心
        使用ifconfig命令行查看网卡的情况
        使用htop系统资源情况(安装htop命令可以使用sudo yum install htop 一行命令即可),使用htop直接查看系统资源占用详细情况,可以看出,在无图形界面的情况下,系统对cpu的占用率极低。
一、作为办公用主机的体验。
        虽说是拿来做服务器用,但仍好奇先把玩一番。就先后体验了办公软件WPS和网页版QQ,微信以及Kodi视频播放。经初测:libreoffice在打开 文档、电子表格以及幻灯片速度快,满足办公完全没问题,唯一不足是字体不够全,建议系统应配套默认的仿宋体。由于腾讯无最新版的QQ支持,登录web页面 登录腾讯的网页版QQ和微信均能正常使用。在线视频播放软件我选择了《龙芯》官网推荐的kodi,使用命令行安装命令:sudo yum install kodi 。一行命令就安装成功,安装成功后选择了国内媒体库。即可播放国内的连续剧,我是在网上下载了新浪的影视库插件。关于kodi的使用请详见龙芯官网的说明 http://www.loongson.cn/news/company/466.html
        因此,可以说,龙芯作为办公用性能已经完全满足。如果结合娱乐使用,请建议安装国人开发界面目前最漂亮的linux系统,deepin版的龙芯版,支持将更丰富。
龙芯上使用libreoffice附图:
    





二、作为个人WEB服务器的使用,安装linux+mysql+apache+php。
        打开系统终端,进行安装调试,以下为个人调试的示例,请做参考。
1、首先更新软件源,完善组件和系统依赖包,提高安全性。
sudo  yum  update
sudo  yum  upgrade
sudo yum list installed mysql*
2、安装mysql数据库
rpm -qa|grep mysql  ##查看是否还有mysql软件,有的话继续删除
##########安装mysql
sudo yum install mysql  mysql-server  mysql-devel  -y
#mysql的几个重要目录
/var/lib/mysql/     #数据库目录
/usr/bin            #相关命令(mysqladmin mysqldump等命令)
service mysqld start  #启动mysql
mysql -uroot  #进入mysql
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');   ## 修改mysql密码为新密码
grant all privileges on *.* to root@'%' identified by '123456';   ## 授权超级用户远程连接,仅测试用
create database mytest;
grant all privileges on mytest.* to mytest2016@'localhost'identified by 'shujukubendifangwen-666';
flush privileges;
systemctl enable mysqld.service   #为MySQL创建启动连接 (这样 MySQL 将随系统自动启动)并启动 MySQL服务。
        安装成功后的截图






        安装好mysql后大家可能惊奇的发现,提示不是mysql而是MariaDB数据,MariaDB数据比mysql兼容行更强,数据的查询速度更快,而且说有的mysql命令和设置均兼容MariaDB数据的操作。
        MariaDB数据简介:MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英 语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
        MariaDB直到5.5版本,均依照MySQL的版本。因此,使用MariaDB5.5的人会从MySQL 5.5中了解到MariaDB的所有功能。
        从2012年11月12日起发布的10.0.0版开始,不再依照MySQL的版号。10.0.x版以5.5版为基础,加上移植自MySQL 5.6版的功能和自行开发的新功能。
3、安装apache的http服务,提供WEB服务
        命令行如下:
sudo yum list http*  #查看http的软件安装包
sudo yum install httpd.mips64el httpd-devel.mips64el  #选择安装相应的服务
sudo yum install php-ZendFramework-Db-Adapter-Pdo-Mysql.noarch   #安装pdo组件,经测试,支持loongson架构
/var/www/html/     #网页更目录
/etc/httpd/conf/   #设置目录
systemctl enable httpd.service   #系统在开机时启动Apache
发现问题,php代码编写时不支持<?  ?> ,在嵌入显示时,一定要按照规范写为:<?php  ?>
4、不带界面的命令行启动
        由于作为服务器使用,没必要使用图形化操作界面,使用纯命令行启动更能节省内存和CPU资源。
        因为在Fedora中没有/etc/initab文件我们不方便从这里设置它的runlevel target,但是Linux又给我们提供了一个强悍的工具systemd,我们可以用system来链接默认的启动级别,所以开始吧!
        以下介绍三种方法:
(1)删除目标链接并创建新的符号链接(从命令行启动)
ln -sf /lib/systemd/system/multi-user.target  /etc/systemd/system/default.target
(2)从图形界面启动






把multi-user.target替换为graphical.target即可。
ln -sf /lib/systemd/system/graphical.target  /etc/systemd/system/default.target
代码解释
ln命令是一个在文件之间建立链接的命令,默认情况是硬链接(hard link),我们要用的是符号链接(symboli link),它可以为在不同文件系统中文件创建链接。
-s  创建符号链接
-f   删除已经存在的同名链接
        安装php成功后,在无图形界面,命令行开机的情况下开机,资源占用情况:
        在有图形界面的情况下,开机17天系统资源情况,由于我开的软件较多,内存占用在正常范围内
        系统组件,特别是PDO的支持正常。
        对mysql(MariaDB数据)和sqlite数据库的支持
        使用工具连接MariaDB数据,依然正常
        在3A2000做服务器搭建通用的ecshop演示
        首先在ecshop官网http://yunqi.shopex.cn 下载UTF8的源码
        修改源码中一下目录的bug:
a、\includes\lib_time.php on line 28
在28行前边加一行date_default_timezone_set("PRC");
b、/includes/cls_template.php on line 422
只要422行把这一句拆成两句就没有问题了  $tag_sel = array_shift(explode(' ', $tag)); 改成: $tag_arr = explode(' ', $tag);  $tag_sel = array_shift($tag_arr);
c、/includes/cls_template.php on line 300
return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source);
替换为:return preg_replace_callback("/{([^\}\{\n]*)}/", function($r) { return $this->select($r[1]); }, $source);
d、/install/includes/lib_installer.php on line 31
lib_installer.php文件,将第31行代码中的return cls_image::gd_version();改成:$p = new cls_image();return $p->gd_version();即可解决。
e、/includes/lib_base.php
 第346行return cls_image::gd_version(); 改为 $p = new cls_image();    return $p->gd_version();
上传upload内的源码到龙芯3A2000服务的某目录,我这里上传到echsop目录,并将该目录的权限设置为可写。
进入http://XXXXX/install 进行安装。
        在龙芯3A2000的mysql上新建个数据库用于安装ecshop,我这里新建了名为ecshop的数据库,字符集设置为UTF8,然后安装界面进入下一步:
        安装完成后进入首页,运行稳定,点击反应速度很快。

        通过对国产龙芯CPU 3A2000主机的试用,首先说图像化界面,给我最深的感触是稳定!我操作图像化界面系统,未发现因为CPU的问题重启、死机的情 况,因为系统问题重启死机的情况也未发生,但发生一下应用程序执行错误的情况,这在linux系统上很常见,和CPU没什么关系,这个是国产软件的生态问 题。其次说重点就是我作为php的web服务器的使用体验,我通过系统软件监控,开机后从未发生过重启的现象,正常工作的情况下打开各种服务直接流畅,与 intel平台安装的linux系统没有区别,因此可以说在服务器操作层面,国产龙芯CPU替代intel系列的linux服务器在兼容和生态圈方面已经 很棒。因为常用的依赖包、插件、组件在源里已经移植,直接使用命令编译安装即可,十分方便。在常用的公司、学校、政府机关使用自主可控的国产龙芯服务器部 署web网站我因为完全可以胜任了。一方面是稳定性好,另一方面使用了国产CPU不再担心境外产品可能预留后门的隐患,大大提高了整个系统的安全性和抗网 路攻击的能力。往小了说提高了本单位本部门的系统的安全性,往大了说是为国家的网络信息安全建设增砖添瓦! 
  查看全部
原文链接:龙芯3A2000主机架设个人WEB服务器的体验和详细安装步骤

2016年8月,通过龙芯俱乐部的《龙芯团购》(网址http://www.loongsonclub.com)购买了一台3A2000的主机,在点击下 单的时候心里咯噔了一下,感觉好像在梦里。下单后团购网负责人马上联系了我,怀着万分激动的心情等待,作为一个关注龙芯10年的爱好者,终于要第一使用国 产的龙芯电脑,完成一个许久的夙愿,到货后迫不及待开箱,发现机箱不大,类似广场舞上音响,我还发了个微信朋友圈让朋友们猜猜是什么,结果24小时内猜什 么的都有,比如:微波炉、音响、充电宝....,就是没猜到是龙芯电脑主机,果然高端大气上档次!开机后查看配置,个人感觉在台机挺高,已经超过了我现在 用主机的配置,固态硬盘、8G内存,还赠送了U盘。
开箱附图:

1.jpg


        命令行查看系统构架和系统操作系统,经查为mips平台的fedora2.1的64位系统。如果想使用更优好的用户桌面体验,还可以向俱乐部请求用 deepin的龙芯版,不但界面接近苹果操作系统,而且桌面软件更完善,而且有软件商店直接像苹果商店一样安装软件,主要是的已经移植了QQ最新版。
        命令行查看CPU的情况,以下附图说明是4个999Mhz频率的核心
        使用ifconfig命令行查看网卡的情况
        使用htop系统资源情况(安装htop命令可以使用sudo yum install htop 一行命令即可),使用htop直接查看系统资源占用详细情况,可以看出,在无图形界面的情况下,系统对cpu的占用率极低。
一、作为办公用主机的体验。
        虽说是拿来做服务器用,但仍好奇先把玩一番。就先后体验了办公软件WPS和网页版QQ,微信以及Kodi视频播放。经初测:libreoffice在打开 文档、电子表格以及幻灯片速度快,满足办公完全没问题,唯一不足是字体不够全,建议系统应配套默认的仿宋体。由于腾讯无最新版的QQ支持,登录web页面 登录腾讯的网页版QQ和微信均能正常使用。在线视频播放软件我选择了《龙芯》官网推荐的kodi,使用命令行安装命令:sudo yum install kodi 。一行命令就安装成功,安装成功后选择了国内媒体库。即可播放国内的连续剧,我是在网上下载了新浪的影视库插件。关于kodi的使用请详见龙芯官网的说明 http://www.loongson.cn/news/company/466.html
        因此,可以说,龙芯作为办公用性能已经完全满足。如果结合娱乐使用,请建议安装国人开发界面目前最漂亮的linux系统,deepin版的龙芯版,支持将更丰富。
龙芯上使用libreoffice附图:
    
2.jpg


二、作为个人WEB服务器的使用,安装linux+mysql+apache+php。
        打开系统终端,进行安装调试,以下为个人调试的示例,请做参考。
1、首先更新软件源,完善组件和系统依赖包,提高安全性。
sudo  yum  update
sudo  yum  upgrade
sudo yum list installed mysql*
2、安装mysql数据库
rpm -qa|grep mysql  ##查看是否还有mysql软件,有的话继续删除
##########安装mysql
sudo yum install mysql  mysql-server  mysql-devel  -y
#mysql的几个重要目录
/var/lib/mysql/     #数据库目录
/usr/bin            #相关命令(mysqladmin mysqldump等命令)
service mysqld start  #启动mysql
mysql -uroot  #进入mysql
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');   ## 修改mysql密码为新密码
grant all privileges on *.* to root@'%' identified by '123456';   ## 授权超级用户远程连接,仅测试用
create database mytest;
grant all privileges on mytest.* to mytest2016@'localhost'identified by 'shujukubendifangwen-666';
flush privileges;
systemctl enable mysqld.service   #为MySQL创建启动连接 (这样 MySQL 将随系统自动启动)并启动 MySQL服务。
        安装成功后的截图

4.jpg


        安装好mysql后大家可能惊奇的发现,提示不是mysql而是MariaDB数据,MariaDB数据比mysql兼容行更强,数据的查询速度更快,而且说有的mysql命令和设置均兼容MariaDB数据的操作。
        MariaDB数据简介:MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英 语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
        MariaDB直到5.5版本,均依照MySQL的版本。因此,使用MariaDB5.5的人会从MySQL 5.5中了解到MariaDB的所有功能。
        从2012年11月12日起发布的10.0.0版开始,不再依照MySQL的版号。10.0.x版以5.5版为基础,加上移植自MySQL 5.6版的功能和自行开发的新功能。
3、安装apache的http服务,提供WEB服务
        命令行如下:
sudo yum list http*  #查看http的软件安装包
sudo yum install httpd.mips64el httpd-devel.mips64el  #选择安装相应的服务
sudo yum install php-ZendFramework-Db-Adapter-Pdo-Mysql.noarch   #安装pdo组件,经测试,支持loongson架构
/var/www/html/     #网页更目录
/etc/httpd/conf/   #设置目录
systemctl enable httpd.service   #系统在开机时启动Apache
发现问题,php代码编写时不支持<?  ?> ,在嵌入显示时,一定要按照规范写为:<?php  ?>
4、不带界面的命令行启动
        由于作为服务器使用,没必要使用图形化操作界面,使用纯命令行启动更能节省内存和CPU资源。
        因为在Fedora中没有/etc/initab文件我们不方便从这里设置它的runlevel target,但是Linux又给我们提供了一个强悍的工具systemd,我们可以用system来链接默认的启动级别,所以开始吧!
        以下介绍三种方法:
(1)删除目标链接并创建新的符号链接(从命令行启动)
ln -sf /lib/systemd/system/multi-user.target  /etc/systemd/system/default.target
(2)从图形界面启动

5.jpg


把multi-user.target替换为graphical.target即可。
ln -sf /lib/systemd/system/graphical.target  /etc/systemd/system/default.target
代码解释
ln命令是一个在文件之间建立链接的命令,默认情况是硬链接(hard link),我们要用的是符号链接(symboli link),它可以为在不同文件系统中文件创建链接。
-s  创建符号链接
-f   删除已经存在的同名链接
        安装php成功后,在无图形界面,命令行开机的情况下开机,资源占用情况:
        在有图形界面的情况下,开机17天系统资源情况,由于我开的软件较多,内存占用在正常范围内
        系统组件,特别是PDO的支持正常。
        对mysql(MariaDB数据)和sqlite数据库的支持
        使用工具连接MariaDB数据,依然正常
        在3A2000做服务器搭建通用的ecshop演示
        首先在ecshop官网http://yunqi.shopex.cn 下载UTF8的源码
        修改源码中一下目录的bug:
a、\includes\lib_time.php on line 28
在28行前边加一行date_default_timezone_set("PRC");
b、/includes/cls_template.php on line 422
只要422行把这一句拆成两句就没有问题了  $tag_sel = array_shift(explode(' ', $tag)); 改成: $tag_arr = explode(' ', $tag);  $tag_sel = array_shift($tag_arr);
c、/includes/cls_template.php on line 300
return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source);
替换为:return preg_replace_callback("/{([^\}\{\n]*)}/", function($r) { return $this->select($r[1]); }, $source);
d、/install/includes/lib_installer.php on line 31
lib_installer.php文件,将第31行代码中的return cls_image::gd_version();改成:$p = new cls_image();return $p->gd_version();即可解决。
e、/includes/lib_base.php
 第346行return cls_image::gd_version(); 改为 $p = new cls_image();    return $p->gd_version();
上传upload内的源码到龙芯3A2000服务的某目录,我这里上传到echsop目录,并将该目录的权限设置为可写。
进入http://XXXXX/install 进行安装。
        在龙芯3A2000的mysql上新建个数据库用于安装ecshop,我这里新建了名为ecshop的数据库,字符集设置为UTF8,然后安装界面进入下一步:
        安装完成后进入首页,运行稳定,点击反应速度很快。

        通过对国产龙芯CPU 3A2000主机的试用,首先说图像化界面,给我最深的感触是稳定!我操作图像化界面系统,未发现因为CPU的问题重启、死机的情 况,因为系统问题重启死机的情况也未发生,但发生一下应用程序执行错误的情况,这在linux系统上很常见,和CPU没什么关系,这个是国产软件的生态问 题。其次说重点就是我作为php的web服务器的使用体验,我通过系统软件监控,开机后从未发生过重启的现象,正常工作的情况下打开各种服务直接流畅,与 intel平台安装的linux系统没有区别,因此可以说在服务器操作层面,国产龙芯CPU替代intel系列的linux服务器在兼容和生态圈方面已经 很棒。因为常用的依赖包、插件、组件在源里已经移植,直接使用命令编译安装即可,十分方便。在常用的公司、学校、政府机关使用自主可控的国产龙芯服务器部 署web网站我因为完全可以胜任了。一方面是稳定性好,另一方面使用了国产CPU不再担心境外产品可能预留后门的隐患,大大提高了整个系统的安全性和抗网 路攻击的能力。往小了说提高了本单位本部门的系统的安全性,往大了说是为国家的网络信息安全建设增砖添瓦! 
 

我们的龙芯3号---致龙芯15周年

代表月亮消咩尼 发表了文章 • 0 个评论 • 133 次浏览 • 2017-01-24 09:59 • 来自相关话题

原文鏈接http://www.loongson.cn/news/company/479.html
2016年是红军长征胜利80周年,2016年研制成功的龙芯3A3000处理器即以CZ80命名,每颗芯片的硅片上都刻有CZ80字样。
        1936年10月,红一、二、四方面军经过艰苦卓绝的努力,三大主力会师,开创了中国革命的新局面。它雄辩地表明,只要坚持理想,实事求是,中国共产党完全有能力摧坚于正锐、挽澜于极危,从重大挫折中走出来。
        2016年10月,以长征胜利80周年命名为CZ80的龙芯3A3000处理器研制成功。它雄辩地表明,只要坚持自主研发,进行持续改进,自主研发的CPU性能完全可以超过引进技术的CPU,满足自主信息化需求。
        2016年10月7日,我怀着虔诚的心情走进毛主席纪念堂,向毛主席汇报龙芯3A3000的研制成功。步出毛主席纪念堂,我感慨万千。当十年前我开始龙芯3号研制时,完全没有想到龙芯3号系列CPU发展道路之曲折,奋斗之艰辛,付出之巨大。
         2006年9月13日,以长征胜利70周年命名为CZ70的龙芯2E通过科技部组织的验收,时任科技部部长徐冠华亲自参加了龙芯2E的验收会。龙芯2E 的研制是“十五”末国家863计划紧急安排的一个任务。当时“汉芯”造假事件被曝光,加上“十五”863计划早期支持的龙芯2C没有达到合同要求的 SPEC CPU2000分值300分的目标,自主处理器研发受到普遍质疑。2005年4月,科技部高新司领导把我叫到办公室,问我到2005年年底前能不能完成 863计划“十五”初制定的主频1GHz、SPEC CPU2000分值达到500分的目标。我说剩下不到一年时间,肯定来不及。他说根据有关规定,项目时间到期后三个月内(即2006年3月底前)提出验收 申请就算按时完成。我硬着头皮接了该任务,因为我知道如果“十五”的任务完不成,那“十一五”国家是不是还支持自主CPU研发就成问题。经过艰苦的努力, 龙芯2E在2005年11月底交付流片(把设计好的技术文件交给芯片生产厂家进行生产),2006年3月18日流片成功,达到了技术指标。虽然达到这些指 标有些勉强(SPEC CPU2000分值达到500分是计算所的编译组做了很多编译优化实现的,但SPEC CPU的测试是允许进行编译优化的),但毕竟完成了指标。龙芯2E的意义从徐冠华部长参加完验收会后接受新闻联播记者采访时说的一句话可以看出:龙芯2E 的成功表明,我国在“十五”期间安排的自主CPU研发是成功的。这也为“十一五”期间国家继续支持自主CPU研发打下了基础。
         2005年深秋,利用龙芯2E流片后等待芯片回来的时间我带着部分龙芯课题组的骨干在香山别墅讨论龙芯3号的结构方案。香山别墅和香山饭店一样在香山公 园内,但比香山饭店便宜而且清静。香山别墅三天讨论的成果是基本明确了龙芯3号系列CPU的可伸缩互连结构以及基于目录的Cache一致性协议。龙芯3号 的互连结构中,每个结点四个处理器核通过交叉开关进行全相连,结点间(不论片上还是片间)通过可伸缩的mesh网络相连;多核的Cache一致性采用基于 目录的一致性协议,目录设置在片上共享的最后一级Cache(LLC)上。上述结构有别于当时主流的环状多核互连以及基于侦听的Cache一致性协议。现 在看来,该结构是成功的,目前商用主流处理器随着核数的增加也越来越多采用可伸缩的互连结构以及基于目录的Cache一致性协议。
        在香山别墅的讨论中还明确了龙芯3号片内集成内存控制器以及HyperTransport(简称HT)接口。HT是AMD主推的系统总线接口。当时计算所 高性能中心与AMD合作紧密,希望我们使用HT接口。此外HT接口比较开放,只要每年交5000美元就可以用于商业应用,但AMD开放的HT接口不支持多 片互连的Cache一致性协议,我们自己进行了扩充。曾经有一段时间,我后悔选择了HT总线,觉得HT总线不如PCIE总线普及,一是HT总线没有现成的 PHY(片内高速接口模块)可以买到,每次工艺升级都需要定制HT的PHY,而PCIE的PHY有很多;二是PCIE接口的外围器件很多,而HT接口的桥 片只有AMD有。但现在觉得选用HT是对的。HT是系统总线,协议简单高效,相当于Intel的QPI系统总线,而PCIE是IO总线,通过HT总线可以 方便地把多片龙芯3号直连起来形成多路服务器。虽然每次工艺升级都要定制HT PHY,但可以使龙芯CPU不依赖别人的IP,自主性强。龙芯3号所有CPU中,没有一款CPU需要到厂家merge第三方IP。尤其是龙芯3A2000 和3A3000,除了厂家提供的标准单元库、单/双端口RAM以及低速IO单元,每一行代码(包括CPU核、内存控制器、HT控制器、互连网络等)以及每 一个定制模块(包括多端口寄存器堆、锁相环、HT PHY、DDR2/3 PHY等)都自主设计。至于外围桥片,龙芯已经开始研制并提供外围桥片,桥片上支持足够多的PCIE接口。以后不论AMD是否继续发展HT接口,龙芯都能 自成体系往前走了。
        香山别墅会议的另外一个成果是明确了龙芯抗辐照CPU的发展。有一天晚上8点左右,我们正在会议室热烈地讨论龙芯3号的结构,当时在计算所科研处工作的夏 洪流和傅信国给我打电话说是要来跟我谈一个项目的事。他们到香山别墅已是晚上9点多,我们就坐在香山别墅的走廊尽头谈,他们说科学院有一个抗辐照CPU的 预研项目,希望龙芯课题组来承担。我刚开始不愿意做,结果他们好说歹说地让我勉强答应了,当时的一个理由是领导每年对他们争取的项目经费有要求,我如果不 做这个抗辐照CPU项目,他们的任务就完不成了,我头脑一热就答应了。现在龙芯抗辐照CPU已经随着以北斗为代表的多颗卫星在天空翱翔,每年还为龙芯公司 带来较可观的收入,成为龙芯公司的战略产品并开始走向系列化。真是非常感谢夏洪流和傅信国那天晚上的苦口婆心。
        在龙芯3号结构基本确定后就展开了龙芯3号CPU的研发。但当时“十五”863课题结束了,“十一五”“核高基”(即“核心电子器件、高端通用芯片和基础 软件产品”重大专项)课题迟迟启动不了。为此,科学院对龙芯3号的研制给了500万元的前期经费支持(执行期限2007年1月到2007年12月)。科技 部高新司冯记春司长得知龙芯3号的第一款芯片龙芯3A1000已经基本完成设计,但缺少流片费时,在863计划内紧急安排了2000万的经费支持龙芯3号 的研制(执行期限2008年1月到2010年12月)。原计算所所长李国杰院士曾经在计算所中层干部会上当众点我的名说,“胡伟武,你不能以任何经费的理 由放缓龙芯3号的研制,计算所就是砸锅卖铁也要支持龙芯的研发”,并在所内设立了一个经费没有封顶的课题,到2010年龙芯第一笔“核高基”课题经费到账 时,龙芯课题组已经预支了计算所七、八千万元经费。
        在龙芯3号研制过程中,作为中法两国在IT领域战略合作的一部分,科技部安排龙芯CPU在意法半导体流片。2006年10月26日,在胡锦涛总书记和希拉 克总统共同见证下,中国科学院与意法半导体在人民大会堂签署了关于龙芯CPU战略合作的文件。基于龙芯2E的成功,意法半导体还花三百多万美元授权费购买 了龙芯2号系列产品的授权,其中龙芯的第一个产品芯片龙芯2F于2007年7月31日流片成功,目前仍在大量应用中。后来意法半导体由于自身业务的原因终 止了购买龙芯2号系列的产品授权,计算所收回了龙芯2号的产品权利并同意不再收取剩余的三分之一左右授权费,但我们从龙芯2F的研制中学会了意法半导体的 芯片质量管理,学会如何把一个样品变成产品。龙芯CPU在意法半导体的流片一直延续了下来,龙芯3A1000即使用意法半导体的65nm工艺流片。
        不记得经历了多少加班加点,龙芯3A1000于2008年底交付流片。只记得流片前的几个月每天晚上十点开例会安排工作。晚上十点例会是非常高效的一种工 作方法,会后大家把有关设计在EDA服务器上跑起来再回家,第二天早上上班时刚好跑出结果来;如果是早上上班后开始在EDA服务器上跑,基本上大半天就在 等待服务器运行出结果中度过。在此后龙芯CPU问题的攻关中,一直沿袭了晚上例会安排工作的方法。
        2009年5月20日龙芯3A1000晶圆生产下线,9月28日样片回来,成功启动操作系统,主频800MHz-1GHz。这是龙芯CPU第一次启动多核 操作系统,免不了调一通。印象最深刻的是10月2日晚上熬了个通宵,一起的有王剑等人,刚开始是挨个核跑单核操作系统,把每个核都跑一遍,再把多核操作系 统搞稳定,一直到第二天早上才弄完。
        中国科学技术大学的陈国良院士曾经在2007年用三百多颗龙芯2F搭建了峰值性能达到1TetaFLOPS的高性能计算机KD50。在龙芯3A1000出 来以后又用80颗龙芯3A1000搭建了KD60高性能计算机。在KD60运行LINPACK过程中,总是出现偶发性错误。这个错误如果单个芯片跑一个月 也碰不上一次,只有像KD60这样80多片一起跑才会一天碰到一次。有三个多月的时间,我们一直进行各种尝试,试图定位该错误并明确其机理。现在只记得 2010年春节的大年三十晚上还在跟当时负责软件的高翔商量进行各种尝试,缩小搜索范围。一直到春节后才定位了这个错误,错误的原因是当访问Cache失 效,从内存回填(Refill)数据时,同时回填一级和二级Cache,通常为了提高性能,这是应该的。但在某种极端情况下出现了错误,即二级Cache 的回填由于二级Cache忙需要等待,而处理器核得到一级Cache回填数据后继续运行,该数据被修改后再从一级Cache中替换出来写回二级 Cache,替换回来的新数据写到二级Cache后,从内存回来的老数据再回填二级Cache把新数据冲掉了,从而引起错误。这个问题以及其它的小问题导 致龙芯3A1000进行了第一次改版并于2010年5月中旬流片,10月底第一次改版流片成功,然后开始了小批量生产。
        龙芯3A1000在2012年又进行了第二次改版。第二次改版主要是双路直连时在特定访问序列下导致两片间的互连网络死锁。大致机理是HT协议的虚通道只 有三个,分别是POST、NONPOST、RESPONSE,而龙芯的片上网络协议AXI有五个实通道,分别是读请求、写请求、写数据、读响应、写响应。 于是在通过HT传输Cache一致性协议时,就将写请求与写数据合并一个通道,读响应与写响应合并一个通道传输。Cache一致性协议要求写响应不能被 堵,而读响应通道发出的二级Cache给一级Cache的一致性请求有时会因为一级Cache处理不过来而被堵住,这时就会顺带堵死写响应通道,导致死 锁。当时解决的办法是在HT原有三个虚通道的基础上增加了第四个虚通道并且允许写命令与写数据之间插入写响应包。3A1000的第二次改版还解决了HT互 连时一个异步握手的问题。3A1000的第二次改版于2012年2月下旬流片,2012年8月中旬流片成功。至此龙芯3A1000就很稳定了,至今还是龙 芯销售的一款重要芯片,尤其是在工控领域。
        现在回头看,龙芯3A1000的研制是成功的。3A1000是我国第一个四核CPU芯片。在3A1000的研制过程中,我们掌握了多核CPU的片内互连及 Cache一致性技术,以及片间多路互连技术。直到今日,龙芯仍然是唯一能支持多路服务器的自主CPU。在最近国外CPU企业对中国企业的CPU技术授权 中,支持多路服务器的技术受美国政府限制还是不能给中国的。龙芯3A1000的处理器核沿袭了龙芯2E和龙芯2F的处理器核结构,虽然在MIPS64兼容 性方面有较大改进,性能只进行了局部优化。龙芯3A1000处理器核的性能略高于Pentium III的水平,在2006年龙芯2E刚出来时这个性能还说得过去。龙芯3A1000仍沿用该处理器核有点慢了,但在应用比较固定的很多领域还能用,按理说 龙芯的下一款CPU应该致力于处理器核的性能优化,大幅度提高通用处理性能,但在学院派的思想主导下,随后的龙芯3B走了弯路,使龙芯遭受了挫折。
        龙芯3B的研发得到“核高基”重大专项的支持,是在龙芯团队转型成立公司(龙芯中科技术有限公司)以及有关部门大力展开自主基础软硬件应用试点的背景下展 开研制的。2010年把龙芯课题组转型成立公司是下了很大决心的,当时已认识到不能脚踩两只船,办企业和做研究不一样,即使呕心沥血,也是九死一生,因此 一定要专心,要求绝大多数技术骨干都从计算所辞职。像张戈25岁就已经是副高职称,是学术上很有前途的苗子,也毅然从计算所辞职。下这么大决心,与我当时 担任全国人大代表,对中央以企业作为创新主体,科技创新要为经济社会发展服务的精神非常了解有很大关系。尤其是在“十七大”报告中,传统的“科教文卫”不 再单独作为一个板块,科技创新直接在经济发展的第一部分来描述,对我触动很大。龙芯公司的成立得到很多领导专家的支持。除了李国杰所长的大力支持外,路甬 祥院长专门批示,要求科学院有关部门落实龙芯团队的股权激励。原国家外专局局长马俊如从2006年起就曾多次对我说,龙芯在科学院里面已经做得很好了,不 能再好了,要想更好,就必须下海办企业;在成立企业后马局长又给了我很多指导。工信部的电子司司长丁文武也给了我很多鼓励。
        龙芯3B的研发工作在2008年底龙芯3A交付流片后开始全面展开。首款龙芯3B1000继续基于65nm工艺,目标主频800MHz-1GHz,八核结 构,每个核包含两个256位向量部件,峰值浮点性能达到128GFLOPS,这在当时处于世界领先行列。龙芯3B1000于2010年6月20日左右流 片,2010年11月底回来第一批芯片。但第一批芯片回来测试并不顺利,连操作系统都启动不了。很快就找到了原因:由于芯片可测性设计部分的逻辑设计错 误,在功能模式下误把内存引脚置为测试状态,导致芯片访问不了内存,通过FIB(用离子束改变硅片上的连线)修复后功能正常。
       这是一个重大的打击,龙芯历史上从来没有犯过这样简单的错误,而且在同一时期流片的龙芯1A、龙芯2I等芯片也出现了由于简单工作失误引起的错误。究其 原因,是龙芯团队在2010年初从课题组管理机制转向公司管理机制的过程中,原来“作坊式”的设计流程被打破了,“工业化”的设计流程没有建立起来。在课 题组阶段,我作为课题组长,每颗芯片从结构设计、逻辑设计、功能验证、可测性设计、定制设计、物理设计各个环节从头盯到尾,及时协调各组的配合,关注每一 个细节,因此没有出现管理上的错误。而在3B1000的研制过程中,龙芯课题组转型成立了龙芯公司,我的主要精力转向公司,芯片研发的总协调人缺位,导致 频频失误。痛定思痛,从此我着手芯片研制的质量体系建设,建立了“五步法”(立项、方案、签核、测试、结项)研制过程,并详细规定了每个阶段的研发和审核 内容。在此后龙芯公司进行的几十次流片中,没有出现过严重的质量问题,而且比我作为课题组长天天盯着效率高很多。
        龙芯3B1000首款流片不成功促使我们马上进行改版,好在只要改一层金属,时间和费用上都比较省。3B1000的第一次改版2011年2月初流片,7月 初回来,调试比较顺利。但在压力测试时又出现死机现象,经过几个月的攻关发现又是死锁问题。大致机理是一个处理器核访问其它结点的内存时,写地址和写数据 是分开发出的,结果在另外一个结点的处理器核也过来访问内存,而且同时有几十个这样的互相访问时,写地址过去了但写数据互相堵住,导致死锁。避免死锁的办 法是要求写地址和写数据保持原子性,即必须一起发出和传输。为此龙芯3B1000进行了第二次改版,于2011年12月初流片,2012年4月底回来。从 此达到稳定状态。
        在掌握65nm工艺的基础上,我们于2009年11月开始评估32/28nm工艺,并准备把它作为龙芯CPU的下一个工艺结点。2010年12月选定 意法半导体与三星合作的32nm工艺并开始八核3B1500的设计。3B1500基于3B1000的设计,主要通过工艺升级提高性能,同时做了局部的性能 优化,尤其是在处理器核中增加了私有二级Cache。2012年1月中旬完成3B1500的设计并交付流片。2012年8月底拿到样片,初步测试正常,频 率从3B1000的900MHz提高到1.25GHz(最高可达1.5GHz)。在经过测试后对该芯片进行了万片规模的小批量生产。在应用验证过程中,出 现了在很大的应用压力下个别芯片不稳定现象。刚开始觉得是个体问题,后来出现的次数多了,开始于2013年1月31日组织人员攻关定位问题,查找机理。也 是每天晚上召开例会讨论,安排各种尝试,在这个过程中发现了几个软硬件磨合的问题并通过软件调整后,出问题的概率小了很多,但问题如幽灵般还在。直到 2013年4月12日,才抓到了该问题。这个问题是从3B1000到3B1500改版过程中引进的,为了提高性能,处理器核收到多个维护Cache一致性 的无效请求时,原来每两拍才能处理一个,改成可以连续处理,导致清除LL/SC同步指令的同步位llbit时错了一拍,误把IO DMA引起的Cache无效请求当作0号处理器核的Cache无效请求(IO DMA的编号刚好为0,与0号处理器核区分不开),通过软件调整可以规避此问题。经过批量测试,原不稳定现象消失。
        为了从根本上消除该问题和其它一些小问题,我们对3B1500进行改版。改版时根据生产厂家的建议,工艺从32nm迁移到28nm,于2013年4月底流 片,10月底收到样片,功能正常,但成品率极低,与厂家确认后明确是厂家生产问题。厂家又建议我们恢复到32nm工艺流片,并以某种方式补偿此次流片费 用,于是又再次改版,于2015年1月底流片,2015年6月下旬收到样片,测试后功能正常,而且成品率正常,目前已经量产。
        龙芯3B的研制过程真是一波三折。出现过龙芯从课题组向公司转型过程中的管理问题,生产厂家引起的问题,多核互相访问引起的死锁问题,处理器核Cache一致性引起的问题。在解决了一个个问题后总算取得了成功。
        但龙芯3B的主要问题不在研制过程中,而是刚开始定方向就出了很大偏差。主要问题在于虽然龙芯团队从课题组转型成为了公司,但龙芯3B的研发还保持着学院 派导向,过度追求多核以及浮点峰值性能的单一指标,通用处理性能不足,满足不了在“十一五”期间展开的自主CPU应用和试点对性能的要求。
        龙芯3B在学术上是成功的,3B1500峰值浮点运算速度达到160GFLOPS,现在拿出来也不丢人,当时在国际上算高的。论文分别被国际顶级会议 Hotchips和ISSCC录用,龙芯3B的报告引起了很大反响,美国IT Times对此专门进行了报道,MIT也发表评论,认为龙芯3B的浮点性能超过了同期的Intel处理器。但3B1500的通用处理能力比3A1000提 高得不多,通过每个处理器核增加128KB的私有二级Cache以及主频及内存频率的提高,3B1500的单核通用处理性能比3A1000提高了30%- 50%,但与国外主流产品的性能差距还很大。
        SPEC CPU是一组国际上公认的测试通用处理器性能的测试程序。2006年SPEC CPU2006刚出来时,厂家公布的SUN的blade服务器单核性能为2-4分左右,高端Pentium IV的分值是10来分。2006-2013年是国外主流处理器通用处理性能高速增长期,在主频不怎么提高的基础上,通过微结构优化,厂家公布的SPEC CPU2006单核分值提高到50分左右,平均提高了5倍以上。当然厂家公布的分值都是经过精雕细刻编译优化(包括使用向量和多核加速)的,一般我们使用 gcc编译出来的单核分值需要把这些厂家自己公布的分值打7折左右,大致是20-40分。2013年以后,国际单核性能的提高趋缓,每代提升5%就不错, 已经到了天花板。SPEC CPU先后发展了1989、1992、1995、2000、2006五个版本,开始时每三年更新一版,后来五、六年更新一版,到2006年后就没有更新。 从中也可以看出,CPU的通用处理性能到2010年前后已经到了天花板,运行SPEC CPU2006的时间就够长了。
        “十一五”期间,多核CPU成为国际学术界的热点研究方向。因此,学院派思想主导的国内CPU在“十一五”期间都放松了单核性能的提高,而是转做多核,而 且核数做得比国外还多。2006年研制成功的龙芯2E的通用处理性能与市场上主流X86处理器差1-2倍(与龙芯2E微结构相同的龙芯3A1000在 900MHz时SPEC CPU2006单核分值为定点2.4分,浮点2.3分),但龙芯CPU的单核性能从2006年的龙芯2E到2013年的龙芯3B1500只提高了50%左 右;而在此期间市场主流X86处理器的单核通用处理性能提高了5倍以上。也就是说,“十一五”期间我国CPU通用处理性能被国外大幅度拉开了距离,从相差 1-2倍到相差一个数量级。
        技术上的差距体现在市场上就是不好用。“十一五”期间,国家有关部门在涉及国家安全的领域开始了自主CPU应用试点,大量的应用往基于自主CPU和操作系 统的计算机上移植。在2011-2013年的三年中,以嵌入式计算机为代表的装备类应用取得了不少成功;而以通用PC和服务器为代表的信息化类应用虽然通 过基础软硬件的磨合优化取得了较大进展,但由于自主CPU的性能基础与国外产品有数量级差距,在很多应用中遭遇性能瓶颈。
        由于自主CPU的通用处理性能不够,2013年起,“核高基”基本上放弃了CPU自主研发路线,转而支持引进国外CPU技术的路线。以IBM、AMD、威 盛、ARM为代表的国外/境外CPU趁虚而入,纷纷寻求与国内企业合资或开放技术授权的方式,把原来的产品摇身一变成为自主CPU(操作系统和数据库也有 类似情况)。这使得主要靠国家支持进行研发的龙芯CPU陷入了巨大困境。
        虽然当时对“核高基”支持引进CPU不满,但究其原因,还是我们自己在“十一五”“核高基”支持的龙芯3B上没有摆脱学院派的惯性,走了弯路,满足不了当 时迫切的自主信息化市场需求。问题还是出在我们自己身上。“十五”期间负责863计划的科技部高新司领导在龙芯2C没有达到预期技术指标,龙芯2E立项专 家提出19条反对意见的情况下作为非共识项目支持龙芯2E的研发,给了我们一次改进的机会。而这次,机会没有了,需要我们自己想办法。
        痛定思痛,知耻后勇。2013年5月,龙芯公司结合市场需求对CPU的研发路线进行了认真调整。一是龙芯3号系列多核CPU不追求核的个数而是大幅度提高 单核性能,放弃高性能机专用CPU的研制,暂停16核处理器研制,重点把双核、四核处理器做精做透。二是龙芯2号系列SOC芯片不追求“大而全”的复杂 度,而是重视结合用户需求定义芯片,以及SOC片内互连的通畅性。三是龙芯1号系列结合特定应用,如宇航、石油、流量表等研制专用芯片,专用芯片产业链 短,容易形成技术优势并快速形成销售(如面向宇航应用的龙芯1E和1F已经为龙芯公司带来持续稳定的销售收入)。种瓜得瓜、种豆得豆。从2014年下半年 开始,龙芯研发和市场结合的作用开始显现,2014年龙芯公司销售收入比2013年增长51%;2015年在2014年基础上再增长57%,为龙芯公司的 可持续发展奠定了良好的基础。龙芯公司逐渐摆脱国家项目的支持,能够主要通过市场销售养活团队和产品研发。
         基于上述对龙芯CPU研发路线的调整,2013年5月,我们暂停了已经完成主要设计的16核龙芯3C处理器流片,开始四核3A2000处理器的研发。核 多了没有用,单核必须要强。就像体育比赛,靠人多取胜的只有拔河(相当于计算机中的高性能计算机),绝大多数项目要靠运动员个人素质。3A2000主要目 标就是大幅度提高单核性能,使单核通用处理器性能提高3倍以上。当时龙芯公司承担了基于某境内40nm LL工艺的高可靠嵌入式CPU研制项目,虽然工艺性能不高,甚至比我们原来用的65nm GP工艺还慢30%,但至少流片的钱有地方出了,我们就基于该工艺研制3A2000。当时还有一个重要决定就是保持3A2000与3A1000的引脚兼 容,这样龙芯客户中基于3A1000研制的已有上百种板卡解决方案可以直接通过换焊3A2000来提高性能。基于境内工艺、通过微结构优化大幅提升性能以 及与3A1000引脚兼容说明3A2000开始摆脱了学院派惯性,走出结合用户需求研发CPU的关键一步。
        2013年初,在龙芯最困难的时候,中科院计算所孙凝晖所长在所里资金本身就很困难的情况下,拿出500万元支持龙芯3A2000处理器核GS464E的 前期研发。虽然与研制3A2000所需要的上亿元经费相比,500万显得很少,但在龙芯最困难的时候得到来自龙芯“娘家”计算所的支持,觉得非常温暖。
        事实上2012年初龙芯公司在香山饭店召开年度规划会时就决定对GS464处理器核(龙芯2F、2H、3A1000、3B1000、3B1500等都基于 GS464微结构)进行优化,形成新一代龙芯微结构GS464E。GS464处理器核一直是我自己维护,其中有一半左右代码(包括流水线控制部分如寄存器 重命名、乱序发射队列、寄存器堆控制、重排序缓存,以及访存部分如地址运算、一级数据Cache、TLB、访存失效队列、最后一级共享Cache)是我自 己写的,2012年上半年我在机房中花了整整两周时间为GS464升级为GS464E打好必要的基础(我当时说要把马的架子变成骆驼的架子,先要把一个访 存部件升级为两个访存部件)后,把维护和升级处理器核的任务移交给汪文祥和吴瑞阳。这很可能是我最后一次有机会写龙芯CPU的代码了。现在回忆起来,能够 在机房中心无旁骛地写代码真是莫大的幸福,有无比的成就感,但我不能让自己成为龙芯CPU发展的瓶颈。而且经过多年实践的锻炼,龙芯的年轻人已经充分地成 长起来了。龙芯3A1000、3B1000和3B1500都是我自己当技术负责人,3A2000开始由年轻人担任芯片的技术负责人,3A2000的技术负 责人是王焕东,3A3000的技术负责人是杨梁。承担国家项目也主要由年轻人作为项目负责人。
        GS464E对GS464的改造是全方位的。在指令系统方面,我们在MIPS64 R3的基础上进行了扩展(MIPS指令系统的授权允许用户进行扩展)并形成龙芯指令系统LoongISA,除增加一些基础指令外,还有支持云计算的虚拟化 扩展,以及加速X86和ARM二进制翻译的扩展。在微结构方面,除了前述的把访存功能部件从一个增加到两个外,还把Cache行大小从256位增加到 512位,最后一级Cache从四路组相联提高到16路组相联,增加了多个层次的预取,把重排序缓存ROB从64项增加到128项,重命名寄存器个数从 64个增加到128个,乱序发射队列由原来的定点和浮点各16项增加到定点16项(3A3000增加到32项)、浮点24项(3A3000增加到32 项)、访存32项,重新构建了整个转移猜测模块。此外,用大量的测试程序对微结构进行了细节的磨合,局部优化达到三十多处。3A2000的多核互连模块和 内存控制器也进行了性能优化。尤其是内存控制器的优化,可以大幅度提高访存频率和效率。2014年7月,RTL代码冻结。
        3A2000除了使用流片厂家提供的标准单元库、Memory Compiler生成的RAM、低速IO单元以及efuse单元以外,包括锁相环、HT PHY、DDR2/3 PHY、多端口寄存器堆、CAM、温度传感器等宏单元都是我们自己定制的,没有使用任何第三方的宏单元模块。因此,全定制工作量也不小。
        3A2000的物理设计采取了很多优化措施,初步建立起一套在主流EDA工具基础上的In-House的流程和工具,包括统一数据库支撑的设计平台,基于 触发器聚类的定制时钟设计,深度层次化设计等。这套In-House的流程和工具比纯粹依赖EDA工具的单元级设计流程提升性能20%左右。
        2014年11月初,3A2000交付流片。这次流片共有龙芯的三款芯片一起拼了个全掩膜。由于流片前的功能验证非常充分,尤其是在3A2000验证过程 中,王朋宇负责的验证组完善了龙芯指令级随机验证环境,从原来只覆盖用户态指令到覆盖核心态指令以及例外处理,大大提高了3A2000的功能验证覆盖率。 物理设计和检查也精雕细刻,我们对3A2000流片成功很有信心。
        经过几个月的焦急等待,2015年4月10日晚饭后,终于拿到了3A2000的盲封样片,连夜进行调试,到第二天早上三点多成功运行操作系统。随后的测试 一切顺利:在运行了包括SPEC CPU2000、SPEC CPU2006、Unixbench等大型程序后,功能未见异常;主频可以达到1GHz;SPEC CPU2006单核分值达到6-7分,是3A1000的3倍左右,尤其是以STREAM测试表征的访存带宽大幅度从3A1000的不到1GB/s上升到 10GB/s,与市场主流处理器基本持平。在基于龙芯3A2000的桌面终端上进行各种办公应用,觉得流畅多了。有部分芯片在较高电压下运行不稳定,当时 并没有引起重视。
        2015年5月,经过ATE测试台成测的一批芯片回来测试,发现功能测试结果与ATE测试台测试结果不一致,即部分芯片通过ATE测试后功能还是不正常, 这是3A2000完成产品化的严重障碍(即通过测试后提供给客户的芯片中有一部分可能是坏的)。通过调整ATE向量,ATE测试与功能测试的一致性增强, 但还有部分芯片不完全一致,总体感觉N管偏快的工艺稳定性明显增强。为了更好地分析原因,6月初请厂家把第一次流片中6个hold的晶圆调整工艺角开始生 产。
        经过继续深入的分析,发现两个明显现象:一是N管偏快的芯片稳定性好很多,ATE测试和功能测试比较一致;二是通过改善主板电源稳定性,有利于芯片稳定。 虽然机理不是很清楚,但在当时巨大的市场压力下(采用引进技术的CPU到处攻击龙芯性能不行,要求有关自主化应用放弃龙芯,使用引进技术的CPU),决定 结合已有的现象进行改版流片,一是更换定制的电容更大的DECAP替换厂家提供的DECAP以抑制动态压降(定制的DECAP电容比厂家提供的DECAP 电容提高一个数量级),这会带来抗ESD能力下降的风险,但我们经过分析觉得风险不大(事后流片回来进行了ESD实验,抗2000V人体模型没问题);二 是根据负责全定制工作的钟石强的建议调整了定制寄存器堆的字线和位线配合时序(增加了20ps左右的裕量),因为仿真发现N管偏快有利于定制的寄存器堆字 线和位线时序配合,与实验现象符合。3A2000的第一次改版只改了6层掩膜板,于9月初完成改版设计并交付流片。
        2015年11月初,6个调整工艺角的芯片回来,经过大量的ATE测试和功能测试,确定寄存器堆是部分芯片功能不稳定的主要原因。ATE测试发现不同工艺 角芯片的寄存器堆MBIST测试在1.30V到1.50V的不同电压下出错,功能测试出错电压则比寄存器堆低100-150mV,有较强的一致性,但机理 仍不清楚。
        2016年1月11日下午下班前,我跟范宝峡、苏孟豪在讨论苏孟豪通过JTAG通路(这是预留的除了正常的ATE测试外的另外一条测试通路)以Scan Collar方式测试寄存器堆没有发现错误的问题,并了解到杨旭审查版图发现写端口的位线的延迟在其它端口写相反值及读端口旁路读时是最差情况,我马上叫 苏孟豪用最差情况向量通过JTAG端口进行测试,很快就复现了寄存器堆出错的问题并经过进一步分析搞清楚了寄存器堆写出错的机理:在寄存器堆写端口写入过 程中,要求位线比字线先到,字线与位线之间保持必要的延迟差才能保证写入的正确性,但在位线负载大时(其它写端口写相反值及其它读端口读旁路)位线延迟变 大,字位线延迟差太小,导致写寄存器堆出错。提高电压会进一步减少字线与位线的延迟差,因此更容易出错。
        真是柳暗花明,困扰我们大半年的3A2000产品化问题终于搞清楚了,尤其是这说明我们在2015年9月份在机理不清楚情况下的改版是正确的。而且这个测 试向量提供了一种在已有芯片中把不稳定的芯片筛选掉的办法,这是龙芯3A2000产品化过程迈出的重大一步。
        2016年2月8日是春节,3A2000第一次改版的芯片在2月4日完成封装,为了在春节前完成3A2000第一次改版芯片测试,孙凯军专门到封装厂等待 封装好的芯片,拿到芯片时已经是下午6点多,直飞北京的飞机已经没了,半夜到上海倒了一次飞机,5日上午到北京,马上安排测试,确实寄存器堆的问题大大缓 解了,稳定性大幅度提高。春节上班后我们又组织攻关解决了一个软硬件磨合的问题,到2016年2月22日,完成3A2000的初步产品化工作,开始对外销 售芯片(原来一直只能以样片方式赠送给客户试用)。
        2016年3月中旬,3A2000进行再次改版,这次改版是全掩膜改版(原来是三个芯片拼了个全掩膜),除了进一步增加寄存器堆字线和位线的延迟差以外, 还修改了其它几个小问题。2016年7月下旬,芯片回来后经测试,原来的定制模块问题不复存在,芯片功能正常,而且ATE测试与功能测试一致性好。目前 3A2000已经进入量产阶段,其中经过测试支持通过直连形成多路服务器的芯片成为3B2000。
        在随后的应用推广中,3A2000与3A1000保持引脚兼容以及软件兼容体现出巨大优越性,很多客户直接在原来3A1000的主板上换焊3A2000芯 片,只需通过简单的BIOS和内核调整,就可以大幅度提升性能。龙芯的整机厂家迅速升级了部分原来基于龙芯3A1000的计算机并进行了应用试点。在 2016年6月进行的某办公应用试点验收会上,有关部门和专家认为,基于3A2000的计算机使自主化办公应用从“基本可用/可用”提高到“基本好用/好 用”。
        龙芯3A3000是在2015年5月临时安排研制的。2015年5月初,我去常熟跟龙芯梦兰公司的张福新、吴少刚等人讨论3A2000整机解决方案的研 发。大家对3A2000大幅度提升性能都很高兴,大大增强了信心。同时张福新他们提出,由于我们使用境内的40nm低速工艺,而引进ARM和威盛的CPU 都使用境外28nm高速工艺,虽然3A2000在微结构上已经超过了引进的ARM和威盛的CPU,由于主频偏低,3A2000在综合性能上还是吃亏 (1.0GHz的3A2000处理器核SPEC CPU2006分值为6-7分,而1.6-2.0GHz的ARM和威盛处理器核SPEC CPU2006分值达到8-10分),建议龙芯也尽快使用境外工艺提升频率。经过认真讨论,我们认为如果我们采用Intel的Tick-Tock(嘀嗒) 研发策略,应该可以很快推出主频1.5GHz以上,综合性能超过2GHz的ARM和威盛的处理器。Tick指的是结构不变,通过工艺优化提升性 能;Tock指的是工艺不变,通过结构优化提升性能。Tick-Tock策略可以把两个芯片流水推进,加快进度的同时降低技术风险。
        3A2000主要是通过结构优化提升性能,属于Tock;3A3000则直接采用3A2000的源代码,通过工艺优化提升性能,同时继续保持与 3A2000的引脚兼容,属于Tick。因此,3A3000在功能上没有什么风险,主要是工艺移植的风险。当然,3A3000在微结构上还是做了适度增 强:一是结合3A2000的性能瓶颈分析把定点/浮点发射队列从16/24项增加到32/32项,二是把最后一级Cache从4MB提高到8MB。到6月 底,完成了RTL源代码修改,随后全面展开物理设计。
        3A3000物理设计中继续需要定制包括HT-PHY、DDR-PHY、锁相环、多端口寄存器堆、CAM等全定制模块。由于3A2000中的全定制模块出 过问题,3A3000的全定制模块检查特别严格。除了加强设计仿真外,还让原龙芯全定制组的组长杨旭(现在是龙芯中科公司全面负责生产的副总)重新披挂上 阵,进行背靠背的复查。紧赶慢赶,于2016年1月底完成了全定制设计的签核和复查评审。
        3A3000物理设计中另一个难点是时序收敛。3A3000使用的28nm FD SOI工艺晶体管确实比3A2000使用的40nm LL快60%左右,但连线延迟大,而且互相干扰也大,废了很多周折。杨梁率领物理组在2016年春节期间也没有休息,终于在2016年2月中旬交付流片。
        2016年6月端午假期期间,龙芯3A3000完成晶圆生产并进行了中测,刚开始比较顺利,已经调试完成大部分向量,只是测试我们自己研制的锁相环时发现 锁相环输出时钟有不稳定现象。6月中旬拿到盲封芯片,测试发现只有在低于0.8V的低电压下芯片才能正常工作,经过两周的分析发现还是寄存器堆的问题,这 次是读出电路的问题,读电路译码时产生了毛刺,把别的字的内容耦合到读出字内容来了。好在该问题只需要修改一层掩模版。
        2016年9月13日,修改寄存器堆问题的改版芯片回来。这次测试非常顺利,很快就运行了SPEC CPU2000和SPEC CPU2006等大型程序,均未发现异常。主频可以达到1.5GHz以上。进一步的测试结果比想象的好,一是内存频率可以达到750MHz以上,而且信号 眼图还非常好,STREAM测试带宽达到13GB/s;二是虽然主频只提高了50%,但综合SPEC CPU2006和SPEC CPU2000分值可以提高60%,其中SPEC CPU2006单核分值为定点11分以上、浮点10分以上,四核分值为定点36分,浮点33分;三是可以运行在很低电压下,例如运行在1.0V电压下主频 1GHz时功耗还不到3A2000运行1GHz时的一半。对于复杂应用(如打开几十MB的复杂文件),3A3000的用户体验比3A2000有显著提高。
        2016年10月17日,龙芯3A3000通过了龙芯公司质量体系要求的商业级产品的鉴定检验摸底测试(工业级产品鉴定检验工作正在同步展开),表明龙芯 3A3000可以进入批量生产状态。目前3A3000已开始小批量生产,其中经过测试支持通过直连形成多路服务器的芯片成为3B3000。
        龙芯3A3000运行SPEC CPU2000定点分值1100多分,浮点分值1700多分,运行一遍不到一个半小时(如果使用计算所的编译器进行优化,定点和浮点分值还分别可以提高 15%和30%以上)。回想2002年龙芯1号刚诞生时,运行一遍SPEC CPU2000需要近三天时间,龙芯2C由于SEPC CPU2000分值没有达到863课题合同要求的300分而没有完成验收,龙芯2E费了九牛二虎之力才勉强达到500分,真是“向来枉费推移力,今日中流 自在行”。
        在3A2000和3A3000的研制过程中,有两点深刻体会。一是CPU的可调试性设计很重要,3A2000和3A3000的全定制问题和若干其它问题的 定位,都是基于通过JTAG接口控制的预先设计的调试模块,该调试模块可以控制和读出CPU内部所有触发器和RAM的内容,比起以前调3A1000、 3B1000和3B1500方便多了。二是境内工艺的一致性比境外工艺有一定差距,包括不同批次的一致性,仿真模型和实际晶体管参数的一致性都和国外工艺 有一定差距,设计时要多留些裕量,蒙特卡罗仿真也要把参数波动范围设大一些。
        3A3000研制成功对自主CPU来说具有里程碑意义。首先,3A3000的通用处理性能已经跨过了国际通用处理器性能的第一个门槛,其单核SPEC CPU2006性能已经不低于ARM用于服务器的高端处理器、Intel的低端系列(凌动系列)处理器以及威盛处理器(这些处理器在1-4核环境下 2GHz时单核SPEC CPU2006性能一般在8-10分之间,如果核数更多,由于最后一级Cache巨大,性能会有所提高),而且3A3000的访存带宽已经与AMD以及 Intel的高端系列(酷睿系列)持平。这样的性能玩复杂的3D游戏可能还有差距,但对于以党政办公为代表的事务处理应用是足够了(如果软件做适当磨合优 化,3A2000就够了)。龙芯3A3000跨过了国际通用处理器性能的第一个门槛后,也为下一步跨越第二个门槛(即达到Intel和AMD主流处理器的 性能)打下了坚实的基础。其次,3A3000的通用处理性能超过了目前靠引进ARM和威盛技术发展的国内同类(四核)CPU。“十一五”开始的自主信息化 应用试点发现第一代自主CPU通用处理性能不够的问题后,国内CPU研制单位均展开了第二代CPU的研发,并衍生出三条不同的技术路线。第一条是以龙芯和 申威为代表的“研”的路线,即通过分析第一代产品应用中发现的问题进行自主研发升级。第二条是“攒”的路线,即使用国外的处理器核“攒”SOC,并在此基 础上对处理器核进行局部优化。第三条是“O(ODM)”的路线,即中国人掏钱请外国人干,目前主要是把国外/境外已有的现成设计直接拿过来换成中国的品 牌。由于自主研发路线在“十一五”期间走了弯路,很多人对自主研发路线产生了疑虑,觉得此路不通,因此“核高基”在“十二五”期间主要支持以ARM的处理 器核“攒”SOC的路线和“O”威盛的路线为主。一是钱多,二是引进别人的产品省时间,加上龙芯3A2000与境内工艺磨合,在产品化方面花了较多时间, 从2014年年底到2016年年初大约一年半的时间,采用引进技术的CPU大肆攻击自主CPU性能不行,要求在已有的自主信息化试点中换掉龙芯(而且确实 换掉了一些),给龙芯造成很大压力。
        3A3000的通用处理性能超过引进的ARM和威盛技术的CPU,加上前些日子使用申威处理器的“太湖之光”高性能机取得世界第一的好成绩,充分说明不论 是通用CPU还是高性能机专用CPU,自主研发的道路都是走得通的,不仅安全性好,性能也高。尤其是通过自主研发形成持续改进能力后,未来的后劲更足。可 以说,在与引进CPU的技术路线的斗争中,龙芯3A3000是抗日战争的石牌保卫战,是解放战争的济南战役,拉开了自主CPU战略反攻的序幕。尤其值得指 出的是,龙芯3A3000的研制没有得到任何国家项目的补助,是完全由企业自己掏钱研制的自主通用CPU,也具有里程碑意义。
        根据Tick-Tock策略,我们制定了龙芯3号系列下一步研制计划。四核龙芯3A4000为Tock,继续使用目前的28nm工艺,争取主频达到 2GHz以上,SPEC CPU2006单核分值达到20分以上。3A4000的主要结构优化包括:增加256位的向量指令,增加片内安全机制,以及进一步通过微结构优化提高流水 线效率,争取每GHz的单核SPEC CPU2006分值达到10分(目前3A3000每GHz的单核SPEC CPU2006分值为7分,ARM的高端处理器为5-6分,X86主流处理器为10-15分)。目前3A4000的研制工作已经展开。在3A4000之后 将研制Tick阶段的新一代处理器,初步考虑使用16nm或14nm的工艺以及3A4000的处理器核研制16核的龙芯3C。经过3A4000的又一轮优 化,龙芯的处理器核微结构已经基本到位,是时候把2013年5月暂停的16核龙芯3C重新提上日程了。
        十年以来,我们先后研制了龙芯3A1000、3B1000、3B1500、3A2000/3B2000、3A3000/3B3000五款龙芯3号系列 芯片,大的流片版本12个,小的流片版本(只改几层掩膜板)6个,碰到了各种各样的问题,经历了很多坎坷。为什么龙芯CPU的研制经历这么多坎坷呢?除了 龙芯的质量流程需要持续改进以外(最近结合3A2000和3A3000的全定制问题正在举一反三,并完善全定制流程),究其根本原因,是因为我们坚持芯片 中的核心模块自己研制。前面提到的龙芯3号研制过程中碰到的问题,都是包括CPU、HT控制器、内存控制器、全定制寄存器堆、全定制锁相环等核心模块内部 的问题,并不是把这些模块“攒”在一起产生的问题。这些问题,如果购买商业IP(如ARM的CPU,Imagination的GPU等)来“攒”芯片一般 不会碰到。自从2001年开始研制CPU以来,我直接或间接负责了近百次流片,流片后碰到的问题除了极个别外,都是核心模块内部的问题。
        龙芯长期坚持芯片中的核心IP自己掌握。这些核心IP包括CPU核、内存控制器、DDR2/3/4的PHY、互连网络、HT控制器、HT PHY等,最近还展开了GPU的研发,只有少量的外围IP使用商用IP。不是吃饱了饭没事干,而是我们使用别人的IP吃过亏。2003年我们刚开始研制龙 芯2号时委托一个很有名的EDA和设计服务公司定制一个3写6读寄存器堆,在交付流片后发现其中的电源地严重缺失,跟他们交涉时他们说这个不会有问题,导 致龙芯2号系列的第一款芯片龙芯2A流片失败,后来我们自己定制了该寄存器堆才使龙芯2B流片成功。龙芯3A1000刚开始研制时曾经使用过商业 DDR2/3 PHY,我们在检查中发现了一些问题,但厂家觉得没问题不愿意修改,后来3A1000流片时同时流了使用商用DDR2/3 PHY和自主研制DDR2/3 PHY的两个版本,并在使用自主DDR2/3 PHY的版本流片成功后确定使用自主DDR2/3 PHY的版本进行量产。龙芯3A1000和3B1000曾经使用过商业的内存控制器,但商业的内存控制器满足不了高性能CPU的带宽要求(使用商业内存控 制器的SOC在双通道下不可能做出龙芯3A3000 的13GB/s实测带宽来),因此从3B1500开始自主设计内存控制器。龙芯2H集成了商用的GPU核,该GPU核有 Android操作系统的驱动程序,但我们需要Linux的Xserver驱动,厂家自己开发不了,我们希望厂家把内部配置寄存器如何使用的手册给我们, 我们自己开发,可是厂家说这是商业机密,不愿意给,至今龙芯2H只有在Android上有3D驱动,Linux的Xserver驱动只有2D的。
        一是吃过亏,二是觉得洋鬼子干得还不如我们,所以就自己干。在国际上,虽然Nvidia巴心巴肝地帮Intel做配套GPU,Intel还是坚持自己做 GPU;虽然Imagination巴心巴肝地帮ARM做配套GPU,ARM也坚持自己做GPU;虽然开源的火狐浏览器很不错,谷歌还是坚持自己做 Chrome。苹果和高通公司都是在ARM的架构授权下自主设计处理器核,其性能远高于ARM的处理器核。他山之石、可以攻玉。只有技术上不受制于人,才 有产业上的主动权。
        做任何事情,依靠别人总是容易一些,完全靠自己则困难得多。但依靠得多了,吃过亏后才明白还得靠自己。毛主席在青年时期也没有想过要革命,想着改良主义可 以救中国,后来才觉得马克思主义是“山穷水尽诸路皆走不通了”的选择;建党后在陈独秀领导下在湖南搞工人运动,光大的罢工就举行了十多次,结果是罢工受镇 压,工人领袖被杀;国共合作期间依靠国民党的武装干革命,结果蒋介石发动“四一二”政变杀共产党人;好不容易上井冈山建立了自己的军队,找到了武装夺取政 权、农村包围城市的道路,却被那些在上海租界呆不住跑到井冈山避难的书生们轻松地夺了权,不得不进行两万五千里长征;经历千难万险与四方面军会师了,还差 点被贪心不足的张国焘武力扣押。吃了这么多亏后,毛主席在以后的革命和建设中就牢牢掌握了主动权,包括国共第二次合作时坚持独立自主的山地游击战,反对共 产国际的“一切通过统一战线”的错误主张;重庆谈判坚持保留边区和军队;建国后先是抗美援朝,后是中苏论战。等等。
        在中国的近代史上,我们有三次向外国老师学习的经验,每次都是受老师欺负吃了亏后走上自力更生的道路。第一次是洋务运动,晚清时期中国海关关长都是英国人 担任的,是中国历史上最开放的时期,却被西方列强欺负得水深火热,毛主席领导共产党推翻了三座大山,解放了中国人民。第二次是建国后向苏联学,一边倒,结 果苏联在中国的土地上又想建联合舰队,又想建长波电台,毛主席拒绝后苏联又撤专家又逼债,毛主席还是领导中国人民自己搞了“两弹一星”,建立了自主可控的 工业体系。第三次是改革开放,我们学习西方的管理理念和科学技术,刚开始觉得挺好的,现在有点觉得吃亏了(像我这样气性大的觉得忍无可忍了,很多人觉得还 可以再忍忍)。2011年我国IT产业百强企业的利润总和是苹果公司的40%(我刚开始觉得华为是通信企业,可能不算在IT百强里面,后来查到华为也算在 这里面时很有挫折感)。总是听专家说,我国跟美国的经济互相依赖,美国也不敢把我们怎么样,可是当美国制裁中兴时,我们不得不认怂,中兴公司定期向美国商 务部报告工作,以获得延期制裁。美国可以通过不卖元器件在三个月之内把国人引以为豪的华为、联想、中兴等企业搞死,十大军工集团有大半开不了张,我们有哪 种产品不卖给美国企业,会把美国的Intel、IBM、谷歌、微软、苹果搞死呢,我们顶多能把沃尔玛搞得比较难受。现在想想,毛主席周总理带着全国人民勒 紧裤腰带炼钢铁、打油井、发展两弹一星,建立起自主可控的工业体系真是无比英明。
        正如改革开放进入深水区,容易改的都改完了,剩下都是难改的;创新也进入深水区,容易创新的都创完了,剩下难创新的,需要十年磨一剑的积累。我们的IT产 业先学会了用国外的芯片在主板上“攒”系统,后来又学会了用国外的IP在硅上“攒”系统。掌握这些简单技术后,下面该深入到CPU、GPU这些复杂的核心 模块中去了。这些复杂的创新不是领导重视、钱多、人多就能一下子干出来的,还需要时间来磨,在探索和试错过程中不断演进。领导重视、人多、钱多可以加速探 索和试错的过程,但不能消除这个过程。中国航天建空间站,先来个天宫一号试试看,再来个天空二号(还分两期)接着试,最后再发射正式空间站,也是这个演进 的道理,不是缺钱,也不是领导不重视。CPU是超复杂系统,超复杂系统只能走进化论的道路,在产业化实践中通过长期演进发展起来。即使在这个过程中,得到 别人的源代码,也只能加速自主研发的进度,取代不了自主研发的工作。更何况复杂系统是很难消化吸收的,即使拿到国外CPU的源代码,每一行都看得明白,但 把几百万行代码拼在一起就不知道是干什么的,就像我们可以打开一头猪的大脑看得清清楚楚,但不知道猪在想什么。很多人现在还寄希望于引进国外技术发展我国 的CPU,那是因为吃洋鬼子的亏没吃够。须知天上是不会掉馅饼的,要发展以自主CPU和操作系统为代表的基础软硬件,我们必须克服急躁情绪,克服崇洋情 绪,发扬愚公移山精神,坚持实事求是作风,在自主创新实践中不断发现问题,在解决问题过程中不断提高能力,才能保障国家安全和支撑产业发展。
        龙芯今年15岁了。中国共产党在15岁的时候完成了举世瞩目的万里长征,建立了陕北根据地,取得了生存的基础,但共产党长征的目的决不仅仅是建立一块根据 地活下来,而是以此为基础解放全中国。龙芯在15岁的时候完成了3A3000的研发,跨越了国际上通用CPU的第一个性能门槛,性能超过了引进设计的 CPU,龙芯公司实现盈利,取得了生存的基础,但龙芯的目标绝不是为了生存和挣钱,而是为了建立自主可控的信息产业体系。目前我国的信息产业主要建立在以 Wintel体系(Intel的CPU和微软的Windows操作系统)和AA体系(ARM的CPU和谷歌的Android操作系统)为代表的国外基础软 硬件平台上。要改变我国信息产业和信息安全受制于人的局面,不能只着眼于单项技术的突破和产品市场占有率的提高,必须建立起自主可控的信息技术与产业生态 体系,形成与Wintel体系和AA体系“三足鼎立”的局面,才能掌握产业发展主导权,消除安全隐患。如果我们没有建立起自主可控的IT产业体系,继续在 已有的Wintel体系和AA体系中当“马仔”,是难以实现中华民族的伟大复兴的“中国梦”的。反之,只要我们坚持自主创新,打通技术链,完全可以在局部 指标不如国外产品的情况下,建设出优于国外产品的应用系统。须知判断技术是否先进的标准,不是看其跟美国人跟得紧不紧,而是看其跟应用结合得紧不紧。
        古人说“事非经过不知难”。但只要认真去做,也有“事非经过不知易”的道理。龙芯3号系列CPU通用处理性能在从2013年起的不到四年时间提高到了原来 的五倍以上,充分说明了这个道理。2001年我们开始研制龙芯CPU的时候,很少人相信我们能够做出来,在整个“十五”期间,网络上“龙芯打假”的言论层 出不穷,但我们坚持做出来了,方法是在别人都不信的情况下,做给他看。2006年我们开始推广龙芯CPU应用的时候,也很少有人相信龙芯能用起来,不知受 了多少奚落和冷嘲热讽,甚至有人说,如果龙芯能够卖得出去,他就从此倒立着走,但龙芯公司现在能够通过龙芯CPU的销售养活自己了,方法还是在别人都不信 的情况下,做给他看。今天我们说要建立自主可控的信息产业体系,还是多数人不信,无非是认为做生态太难,自己肯定做不好,不如跟着别的老大当个马仔,所以 总说与X86和ARM兼容生态好,总之是一种畏难情绪。对付信心不足,我们还是老套路,做给他看。世界上做CPU的企业中,凡是不做生态(DEC、 IBM、HP、SUN、SGI)或者跟生态(AMD、威盛)的CPU企业都活不好。八十年前几万衣不蔽体的红军刚到陕北时有谁相信这帮泥腿子能解放全中 国?改革开放初期以能买到日本彩电为荣的中国人有几个相信今天中国的制造业产值已超过美国加日本的总和?在建立自主信息产业体系方面,我们要在自己内部肃 清一切软弱无能的思想,就像毛主席说的:“我们的同志,在困难的时候,要看到成绩,要看到光明,要提高我们的勇气”。
        八十年前,当衣不蔽体的几万红军完成两万五千里长征时,他们是中国最生气勃勃,具有百折不挠的献身精神,真正的民族精英。他们是怀着对革命的坚定信念,在 崇高理想的指导下走完长征的。同样,自从2001年开始龙芯处理器研发以来,龙芯人也是怀着坚持自主创新、保障国家安全、支撑产业发展的坚定信念走了一条 别人没有走过、多数人不信能走通、非常艰难的“长征”。十五年来,很多龙芯的技术骨干都把人生最美好的青春献给了龙芯的“长征”。加班加点仍是龙芯研发人 员的常态,而龙芯的薪酬长期低于同行业水平,有些人三十多岁就出现了各种健康问题。不少龙芯的技术骨干都接到过猎头公司百万年薪的电话,但龙芯团队的核心 骨干非常稳定。为了龙芯的产业化,很多技术骨干都毅然放弃中科院的事业编制,辞职到龙芯公司。人都是有私心的,但我敢保证龙芯人的私心相对少一些;大家离 毛主席要求的“一个高尚的人,一个纯粹的人,一个有道德的人,一个脱离了低级趣味的人,一个有益于人民的人”都有差距,但我敢自豪地说龙芯人的差距相对小 一些。后之视今,尤今之视昔。我相信,我们的后人会像我们今天崇敬长征的英雄、崇敬抗美援朝的英雄、崇敬两弹一星的英雄一样,来崇敬今天在建立我国自主可 控的信息产业体系道路上历经艰难险阻完成新长征的我们。
        龙芯十五年的坚持来自中国科学院的光荣传承。中科院计算所是我国计算机事业的摇篮,经历了“完全自主但没有市场化”的第一个三十年,为两弹一星做计算机; 也经历了“完全市场化但丧失自主性”的第二个三十年,创办了联想和曙光,为了与市场接轨,研发工作忍痛从CPU和操作系统中退出。我们是中国第三代计算机 人,任务是在市场化条件下实现自主性,保障国家安全和支撑产业发展。我的导师夏培肃院士是我国计算机事业的重要奠基人,她多次对我说过,这辈子最大的心愿 就是把中国的计算机事业搞好,她们这代人没搞好,希望我们搞得比她们好。李国杰院士曾经在一次自主可控行业的大会上动情地说:我的导师夏老师(李国杰院士 也是夏培肃院士的学生)已经九十岁了,干不动了;我也七十岁了,快干不动了;如果到胡伟武这一代我国的CPU和操作系统还没有发展起来,中国的IT产业就 没戏了。龙芯团队有一个老研究员黄令仪老师,今年八十岁了还天天在屏幕前拖着鼠标查版图。有一次我请黄老师参加某用于安全领域的芯片研发工作时,黄老师脱 口而出:胡老师,我这辈子最大的心愿就是匍匐在地,擦干祖国身上的耻辱;我是亲眼见过我的同胞被日本鬼子的飞机炸死的。前辈的精神感染了我们,前辈的荣光 照亮了我们前进的道路,让我们咬着牙关,勇往直前!
        龙芯十五岁了。2001年8月19日清晨当屏幕上第一次出现“godson login”时的那声欢呼已经远去,在雨中登黄山的台阶上高唱《真心英雄》时的那种豪情已经消退,夜深人静时在计算所北楼长长的走廊尽头泡方便面记忆已经 模糊,但龙芯人“为人民做龙芯”的初心未改,“十年磨一剑”的执着依旧,“人生能有几回搏”的奋斗长在。我们已经走在“以安全可控为主题、以产业发展为主 线、以生态建设为目标”的新长征道路上。迷失方向时,坚持从国家和人民的角度(而不是自己的角度)做出选择就是我们心中的“北斗星”。长征的道路蜿蜒曲 折,不仅有芳草鲜美、落英缤纷,更有沼泽沙漠、雪山草地、豺狼虎豹,因此前进的路上就要苦我们的心智、痛我们的体肤。龙芯走自主研发道路,比直接引进处理 器芯片或者引进处理器核的道路见效慢一些,在路上会被别人暂时超过心里着急;走市场化道路,要结合客户需求把短板补齐,比起在计算所做研究时只关注几个有 显示度的指标来,在显示度方面差一些;要建立自主软硬件体系,比只在单一领域做单一产品难度大很多。这就要求我们在前进的道路上不仅要有冲天的豪情,艰苦 奋斗、奋勇争先,而且要有钢铁般的意志,做到专心致志、持之以恒、精益求精,直至取得最后的胜利。我们是“苦命”而光荣的龙芯人,虽千万人吾往矣。
        我们正在前进。我们正在做我们的前人从来没有做过的极其光荣伟大的事业。我们的目的一定要达到。我们的目的一定能够达到。
  查看全部
原文鏈接http://www.loongson.cn/news/company/479.html
2016年是红军长征胜利80周年,2016年研制成功的龙芯3A3000处理器即以CZ80命名,每颗芯片的硅片上都刻有CZ80字样。
        1936年10月,红一、二、四方面军经过艰苦卓绝的努力,三大主力会师,开创了中国革命的新局面。它雄辩地表明,只要坚持理想,实事求是,中国共产党完全有能力摧坚于正锐、挽澜于极危,从重大挫折中走出来。
        2016年10月,以长征胜利80周年命名为CZ80的龙芯3A3000处理器研制成功。它雄辩地表明,只要坚持自主研发,进行持续改进,自主研发的CPU性能完全可以超过引进技术的CPU,满足自主信息化需求。
        2016年10月7日,我怀着虔诚的心情走进毛主席纪念堂,向毛主席汇报龙芯3A3000的研制成功。步出毛主席纪念堂,我感慨万千。当十年前我开始龙芯3号研制时,完全没有想到龙芯3号系列CPU发展道路之曲折,奋斗之艰辛,付出之巨大。
         2006年9月13日,以长征胜利70周年命名为CZ70的龙芯2E通过科技部组织的验收,时任科技部部长徐冠华亲自参加了龙芯2E的验收会。龙芯2E 的研制是“十五”末国家863计划紧急安排的一个任务。当时“汉芯”造假事件被曝光,加上“十五”863计划早期支持的龙芯2C没有达到合同要求的 SPEC CPU2000分值300分的目标,自主处理器研发受到普遍质疑。2005年4月,科技部高新司领导把我叫到办公室,问我到2005年年底前能不能完成 863计划“十五”初制定的主频1GHz、SPEC CPU2000分值达到500分的目标。我说剩下不到一年时间,肯定来不及。他说根据有关规定,项目时间到期后三个月内(即2006年3月底前)提出验收 申请就算按时完成。我硬着头皮接了该任务,因为我知道如果“十五”的任务完不成,那“十一五”国家是不是还支持自主CPU研发就成问题。经过艰苦的努力, 龙芯2E在2005年11月底交付流片(把设计好的技术文件交给芯片生产厂家进行生产),2006年3月18日流片成功,达到了技术指标。虽然达到这些指 标有些勉强(SPEC CPU2000分值达到500分是计算所的编译组做了很多编译优化实现的,但SPEC CPU的测试是允许进行编译优化的),但毕竟完成了指标。龙芯2E的意义从徐冠华部长参加完验收会后接受新闻联播记者采访时说的一句话可以看出:龙芯2E 的成功表明,我国在“十五”期间安排的自主CPU研发是成功的。这也为“十一五”期间国家继续支持自主CPU研发打下了基础。
         2005年深秋,利用龙芯2E流片后等待芯片回来的时间我带着部分龙芯课题组的骨干在香山别墅讨论龙芯3号的结构方案。香山别墅和香山饭店一样在香山公 园内,但比香山饭店便宜而且清静。香山别墅三天讨论的成果是基本明确了龙芯3号系列CPU的可伸缩互连结构以及基于目录的Cache一致性协议。龙芯3号 的互连结构中,每个结点四个处理器核通过交叉开关进行全相连,结点间(不论片上还是片间)通过可伸缩的mesh网络相连;多核的Cache一致性采用基于 目录的一致性协议,目录设置在片上共享的最后一级Cache(LLC)上。上述结构有别于当时主流的环状多核互连以及基于侦听的Cache一致性协议。现 在看来,该结构是成功的,目前商用主流处理器随着核数的增加也越来越多采用可伸缩的互连结构以及基于目录的Cache一致性协议。
        在香山别墅的讨论中还明确了龙芯3号片内集成内存控制器以及HyperTransport(简称HT)接口。HT是AMD主推的系统总线接口。当时计算所 高性能中心与AMD合作紧密,希望我们使用HT接口。此外HT接口比较开放,只要每年交5000美元就可以用于商业应用,但AMD开放的HT接口不支持多 片互连的Cache一致性协议,我们自己进行了扩充。曾经有一段时间,我后悔选择了HT总线,觉得HT总线不如PCIE总线普及,一是HT总线没有现成的 PHY(片内高速接口模块)可以买到,每次工艺升级都需要定制HT的PHY,而PCIE的PHY有很多;二是PCIE接口的外围器件很多,而HT接口的桥 片只有AMD有。但现在觉得选用HT是对的。HT是系统总线,协议简单高效,相当于Intel的QPI系统总线,而PCIE是IO总线,通过HT总线可以 方便地把多片龙芯3号直连起来形成多路服务器。虽然每次工艺升级都要定制HT PHY,但可以使龙芯CPU不依赖别人的IP,自主性强。龙芯3号所有CPU中,没有一款CPU需要到厂家merge第三方IP。尤其是龙芯3A2000 和3A3000,除了厂家提供的标准单元库、单/双端口RAM以及低速IO单元,每一行代码(包括CPU核、内存控制器、HT控制器、互连网络等)以及每 一个定制模块(包括多端口寄存器堆、锁相环、HT PHY、DDR2/3 PHY等)都自主设计。至于外围桥片,龙芯已经开始研制并提供外围桥片,桥片上支持足够多的PCIE接口。以后不论AMD是否继续发展HT接口,龙芯都能 自成体系往前走了。
        香山别墅会议的另外一个成果是明确了龙芯抗辐照CPU的发展。有一天晚上8点左右,我们正在会议室热烈地讨论龙芯3号的结构,当时在计算所科研处工作的夏 洪流和傅信国给我打电话说是要来跟我谈一个项目的事。他们到香山别墅已是晚上9点多,我们就坐在香山别墅的走廊尽头谈,他们说科学院有一个抗辐照CPU的 预研项目,希望龙芯课题组来承担。我刚开始不愿意做,结果他们好说歹说地让我勉强答应了,当时的一个理由是领导每年对他们争取的项目经费有要求,我如果不 做这个抗辐照CPU项目,他们的任务就完不成了,我头脑一热就答应了。现在龙芯抗辐照CPU已经随着以北斗为代表的多颗卫星在天空翱翔,每年还为龙芯公司 带来较可观的收入,成为龙芯公司的战略产品并开始走向系列化。真是非常感谢夏洪流和傅信国那天晚上的苦口婆心。
        在龙芯3号结构基本确定后就展开了龙芯3号CPU的研发。但当时“十五”863课题结束了,“十一五”“核高基”(即“核心电子器件、高端通用芯片和基础 软件产品”重大专项)课题迟迟启动不了。为此,科学院对龙芯3号的研制给了500万元的前期经费支持(执行期限2007年1月到2007年12月)。科技 部高新司冯记春司长得知龙芯3号的第一款芯片龙芯3A1000已经基本完成设计,但缺少流片费时,在863计划内紧急安排了2000万的经费支持龙芯3号 的研制(执行期限2008年1月到2010年12月)。原计算所所长李国杰院士曾经在计算所中层干部会上当众点我的名说,“胡伟武,你不能以任何经费的理 由放缓龙芯3号的研制,计算所就是砸锅卖铁也要支持龙芯的研发”,并在所内设立了一个经费没有封顶的课题,到2010年龙芯第一笔“核高基”课题经费到账 时,龙芯课题组已经预支了计算所七、八千万元经费。
        在龙芯3号研制过程中,作为中法两国在IT领域战略合作的一部分,科技部安排龙芯CPU在意法半导体流片。2006年10月26日,在胡锦涛总书记和希拉 克总统共同见证下,中国科学院与意法半导体在人民大会堂签署了关于龙芯CPU战略合作的文件。基于龙芯2E的成功,意法半导体还花三百多万美元授权费购买 了龙芯2号系列产品的授权,其中龙芯的第一个产品芯片龙芯2F于2007年7月31日流片成功,目前仍在大量应用中。后来意法半导体由于自身业务的原因终 止了购买龙芯2号系列的产品授权,计算所收回了龙芯2号的产品权利并同意不再收取剩余的三分之一左右授权费,但我们从龙芯2F的研制中学会了意法半导体的 芯片质量管理,学会如何把一个样品变成产品。龙芯CPU在意法半导体的流片一直延续了下来,龙芯3A1000即使用意法半导体的65nm工艺流片。
        不记得经历了多少加班加点,龙芯3A1000于2008年底交付流片。只记得流片前的几个月每天晚上十点开例会安排工作。晚上十点例会是非常高效的一种工 作方法,会后大家把有关设计在EDA服务器上跑起来再回家,第二天早上上班时刚好跑出结果来;如果是早上上班后开始在EDA服务器上跑,基本上大半天就在 等待服务器运行出结果中度过。在此后龙芯CPU问题的攻关中,一直沿袭了晚上例会安排工作的方法。
        2009年5月20日龙芯3A1000晶圆生产下线,9月28日样片回来,成功启动操作系统,主频800MHz-1GHz。这是龙芯CPU第一次启动多核 操作系统,免不了调一通。印象最深刻的是10月2日晚上熬了个通宵,一起的有王剑等人,刚开始是挨个核跑单核操作系统,把每个核都跑一遍,再把多核操作系 统搞稳定,一直到第二天早上才弄完。
        中国科学技术大学的陈国良院士曾经在2007年用三百多颗龙芯2F搭建了峰值性能达到1TetaFLOPS的高性能计算机KD50。在龙芯3A1000出 来以后又用80颗龙芯3A1000搭建了KD60高性能计算机。在KD60运行LINPACK过程中,总是出现偶发性错误。这个错误如果单个芯片跑一个月 也碰不上一次,只有像KD60这样80多片一起跑才会一天碰到一次。有三个多月的时间,我们一直进行各种尝试,试图定位该错误并明确其机理。现在只记得 2010年春节的大年三十晚上还在跟当时负责软件的高翔商量进行各种尝试,缩小搜索范围。一直到春节后才定位了这个错误,错误的原因是当访问Cache失 效,从内存回填(Refill)数据时,同时回填一级和二级Cache,通常为了提高性能,这是应该的。但在某种极端情况下出现了错误,即二级Cache 的回填由于二级Cache忙需要等待,而处理器核得到一级Cache回填数据后继续运行,该数据被修改后再从一级Cache中替换出来写回二级 Cache,替换回来的新数据写到二级Cache后,从内存回来的老数据再回填二级Cache把新数据冲掉了,从而引起错误。这个问题以及其它的小问题导 致龙芯3A1000进行了第一次改版并于2010年5月中旬流片,10月底第一次改版流片成功,然后开始了小批量生产。
        龙芯3A1000在2012年又进行了第二次改版。第二次改版主要是双路直连时在特定访问序列下导致两片间的互连网络死锁。大致机理是HT协议的虚通道只 有三个,分别是POST、NONPOST、RESPONSE,而龙芯的片上网络协议AXI有五个实通道,分别是读请求、写请求、写数据、读响应、写响应。 于是在通过HT传输Cache一致性协议时,就将写请求与写数据合并一个通道,读响应与写响应合并一个通道传输。Cache一致性协议要求写响应不能被 堵,而读响应通道发出的二级Cache给一级Cache的一致性请求有时会因为一级Cache处理不过来而被堵住,这时就会顺带堵死写响应通道,导致死 锁。当时解决的办法是在HT原有三个虚通道的基础上增加了第四个虚通道并且允许写命令与写数据之间插入写响应包。3A1000的第二次改版还解决了HT互 连时一个异步握手的问题。3A1000的第二次改版于2012年2月下旬流片,2012年8月中旬流片成功。至此龙芯3A1000就很稳定了,至今还是龙 芯销售的一款重要芯片,尤其是在工控领域。
        现在回头看,龙芯3A1000的研制是成功的。3A1000是我国第一个四核CPU芯片。在3A1000的研制过程中,我们掌握了多核CPU的片内互连及 Cache一致性技术,以及片间多路互连技术。直到今日,龙芯仍然是唯一能支持多路服务器的自主CPU。在最近国外CPU企业对中国企业的CPU技术授权 中,支持多路服务器的技术受美国政府限制还是不能给中国的。龙芯3A1000的处理器核沿袭了龙芯2E和龙芯2F的处理器核结构,虽然在MIPS64兼容 性方面有较大改进,性能只进行了局部优化。龙芯3A1000处理器核的性能略高于Pentium III的水平,在2006年龙芯2E刚出来时这个性能还说得过去。龙芯3A1000仍沿用该处理器核有点慢了,但在应用比较固定的很多领域还能用,按理说 龙芯的下一款CPU应该致力于处理器核的性能优化,大幅度提高通用处理性能,但在学院派的思想主导下,随后的龙芯3B走了弯路,使龙芯遭受了挫折。
        龙芯3B的研发得到“核高基”重大专项的支持,是在龙芯团队转型成立公司(龙芯中科技术有限公司)以及有关部门大力展开自主基础软硬件应用试点的背景下展 开研制的。2010年把龙芯课题组转型成立公司是下了很大决心的,当时已认识到不能脚踩两只船,办企业和做研究不一样,即使呕心沥血,也是九死一生,因此 一定要专心,要求绝大多数技术骨干都从计算所辞职。像张戈25岁就已经是副高职称,是学术上很有前途的苗子,也毅然从计算所辞职。下这么大决心,与我当时 担任全国人大代表,对中央以企业作为创新主体,科技创新要为经济社会发展服务的精神非常了解有很大关系。尤其是在“十七大”报告中,传统的“科教文卫”不 再单独作为一个板块,科技创新直接在经济发展的第一部分来描述,对我触动很大。龙芯公司的成立得到很多领导专家的支持。除了李国杰所长的大力支持外,路甬 祥院长专门批示,要求科学院有关部门落实龙芯团队的股权激励。原国家外专局局长马俊如从2006年起就曾多次对我说,龙芯在科学院里面已经做得很好了,不 能再好了,要想更好,就必须下海办企业;在成立企业后马局长又给了我很多指导。工信部的电子司司长丁文武也给了我很多鼓励。
        龙芯3B的研发工作在2008年底龙芯3A交付流片后开始全面展开。首款龙芯3B1000继续基于65nm工艺,目标主频800MHz-1GHz,八核结 构,每个核包含两个256位向量部件,峰值浮点性能达到128GFLOPS,这在当时处于世界领先行列。龙芯3B1000于2010年6月20日左右流 片,2010年11月底回来第一批芯片。但第一批芯片回来测试并不顺利,连操作系统都启动不了。很快就找到了原因:由于芯片可测性设计部分的逻辑设计错 误,在功能模式下误把内存引脚置为测试状态,导致芯片访问不了内存,通过FIB(用离子束改变硅片上的连线)修复后功能正常。
       这是一个重大的打击,龙芯历史上从来没有犯过这样简单的错误,而且在同一时期流片的龙芯1A、龙芯2I等芯片也出现了由于简单工作失误引起的错误。究其 原因,是龙芯团队在2010年初从课题组管理机制转向公司管理机制的过程中,原来“作坊式”的设计流程被打破了,“工业化”的设计流程没有建立起来。在课 题组阶段,我作为课题组长,每颗芯片从结构设计、逻辑设计、功能验证、可测性设计、定制设计、物理设计各个环节从头盯到尾,及时协调各组的配合,关注每一 个细节,因此没有出现管理上的错误。而在3B1000的研制过程中,龙芯课题组转型成立了龙芯公司,我的主要精力转向公司,芯片研发的总协调人缺位,导致 频频失误。痛定思痛,从此我着手芯片研制的质量体系建设,建立了“五步法”(立项、方案、签核、测试、结项)研制过程,并详细规定了每个阶段的研发和审核 内容。在此后龙芯公司进行的几十次流片中,没有出现过严重的质量问题,而且比我作为课题组长天天盯着效率高很多。
        龙芯3B1000首款流片不成功促使我们马上进行改版,好在只要改一层金属,时间和费用上都比较省。3B1000的第一次改版2011年2月初流片,7月 初回来,调试比较顺利。但在压力测试时又出现死机现象,经过几个月的攻关发现又是死锁问题。大致机理是一个处理器核访问其它结点的内存时,写地址和写数据 是分开发出的,结果在另外一个结点的处理器核也过来访问内存,而且同时有几十个这样的互相访问时,写地址过去了但写数据互相堵住,导致死锁。避免死锁的办 法是要求写地址和写数据保持原子性,即必须一起发出和传输。为此龙芯3B1000进行了第二次改版,于2011年12月初流片,2012年4月底回来。从 此达到稳定状态。
        在掌握65nm工艺的基础上,我们于2009年11月开始评估32/28nm工艺,并准备把它作为龙芯CPU的下一个工艺结点。2010年12月选定 意法半导体与三星合作的32nm工艺并开始八核3B1500的设计。3B1500基于3B1000的设计,主要通过工艺升级提高性能,同时做了局部的性能 优化,尤其是在处理器核中增加了私有二级Cache。2012年1月中旬完成3B1500的设计并交付流片。2012年8月底拿到样片,初步测试正常,频 率从3B1000的900MHz提高到1.25GHz(最高可达1.5GHz)。在经过测试后对该芯片进行了万片规模的小批量生产。在应用验证过程中,出 现了在很大的应用压力下个别芯片不稳定现象。刚开始觉得是个体问题,后来出现的次数多了,开始于2013年1月31日组织人员攻关定位问题,查找机理。也 是每天晚上召开例会讨论,安排各种尝试,在这个过程中发现了几个软硬件磨合的问题并通过软件调整后,出问题的概率小了很多,但问题如幽灵般还在。直到 2013年4月12日,才抓到了该问题。这个问题是从3B1000到3B1500改版过程中引进的,为了提高性能,处理器核收到多个维护Cache一致性 的无效请求时,原来每两拍才能处理一个,改成可以连续处理,导致清除LL/SC同步指令的同步位llbit时错了一拍,误把IO DMA引起的Cache无效请求当作0号处理器核的Cache无效请求(IO DMA的编号刚好为0,与0号处理器核区分不开),通过软件调整可以规避此问题。经过批量测试,原不稳定现象消失。
        为了从根本上消除该问题和其它一些小问题,我们对3B1500进行改版。改版时根据生产厂家的建议,工艺从32nm迁移到28nm,于2013年4月底流 片,10月底收到样片,功能正常,但成品率极低,与厂家确认后明确是厂家生产问题。厂家又建议我们恢复到32nm工艺流片,并以某种方式补偿此次流片费 用,于是又再次改版,于2015年1月底流片,2015年6月下旬收到样片,测试后功能正常,而且成品率正常,目前已经量产。
        龙芯3B的研制过程真是一波三折。出现过龙芯从课题组向公司转型过程中的管理问题,生产厂家引起的问题,多核互相访问引起的死锁问题,处理器核Cache一致性引起的问题。在解决了一个个问题后总算取得了成功。
        但龙芯3B的主要问题不在研制过程中,而是刚开始定方向就出了很大偏差。主要问题在于虽然龙芯团队从课题组转型成为了公司,但龙芯3B的研发还保持着学院 派导向,过度追求多核以及浮点峰值性能的单一指标,通用处理性能不足,满足不了在“十一五”期间展开的自主CPU应用和试点对性能的要求。
        龙芯3B在学术上是成功的,3B1500峰值浮点运算速度达到160GFLOPS,现在拿出来也不丢人,当时在国际上算高的。论文分别被国际顶级会议 Hotchips和ISSCC录用,龙芯3B的报告引起了很大反响,美国IT Times对此专门进行了报道,MIT也发表评论,认为龙芯3B的浮点性能超过了同期的Intel处理器。但3B1500的通用处理能力比3A1000提 高得不多,通过每个处理器核增加128KB的私有二级Cache以及主频及内存频率的提高,3B1500的单核通用处理性能比3A1000提高了30%- 50%,但与国外主流产品的性能差距还很大。
        SPEC CPU是一组国际上公认的测试通用处理器性能的测试程序。2006年SPEC CPU2006刚出来时,厂家公布的SUN的blade服务器单核性能为2-4分左右,高端Pentium IV的分值是10来分。2006-2013年是国外主流处理器通用处理性能高速增长期,在主频不怎么提高的基础上,通过微结构优化,厂家公布的SPEC CPU2006单核分值提高到50分左右,平均提高了5倍以上。当然厂家公布的分值都是经过精雕细刻编译优化(包括使用向量和多核加速)的,一般我们使用 gcc编译出来的单核分值需要把这些厂家自己公布的分值打7折左右,大致是20-40分。2013年以后,国际单核性能的提高趋缓,每代提升5%就不错, 已经到了天花板。SPEC CPU先后发展了1989、1992、1995、2000、2006五个版本,开始时每三年更新一版,后来五、六年更新一版,到2006年后就没有更新。 从中也可以看出,CPU的通用处理性能到2010年前后已经到了天花板,运行SPEC CPU2006的时间就够长了。
        “十一五”期间,多核CPU成为国际学术界的热点研究方向。因此,学院派思想主导的国内CPU在“十一五”期间都放松了单核性能的提高,而是转做多核,而 且核数做得比国外还多。2006年研制成功的龙芯2E的通用处理性能与市场上主流X86处理器差1-2倍(与龙芯2E微结构相同的龙芯3A1000在 900MHz时SPEC CPU2006单核分值为定点2.4分,浮点2.3分),但龙芯CPU的单核性能从2006年的龙芯2E到2013年的龙芯3B1500只提高了50%左 右;而在此期间市场主流X86处理器的单核通用处理性能提高了5倍以上。也就是说,“十一五”期间我国CPU通用处理性能被国外大幅度拉开了距离,从相差 1-2倍到相差一个数量级。
        技术上的差距体现在市场上就是不好用。“十一五”期间,国家有关部门在涉及国家安全的领域开始了自主CPU应用试点,大量的应用往基于自主CPU和操作系 统的计算机上移植。在2011-2013年的三年中,以嵌入式计算机为代表的装备类应用取得了不少成功;而以通用PC和服务器为代表的信息化类应用虽然通 过基础软硬件的磨合优化取得了较大进展,但由于自主CPU的性能基础与国外产品有数量级差距,在很多应用中遭遇性能瓶颈。
        由于自主CPU的通用处理性能不够,2013年起,“核高基”基本上放弃了CPU自主研发路线,转而支持引进国外CPU技术的路线。以IBM、AMD、威 盛、ARM为代表的国外/境外CPU趁虚而入,纷纷寻求与国内企业合资或开放技术授权的方式,把原来的产品摇身一变成为自主CPU(操作系统和数据库也有 类似情况)。这使得主要靠国家支持进行研发的龙芯CPU陷入了巨大困境。
        虽然当时对“核高基”支持引进CPU不满,但究其原因,还是我们自己在“十一五”“核高基”支持的龙芯3B上没有摆脱学院派的惯性,走了弯路,满足不了当 时迫切的自主信息化市场需求。问题还是出在我们自己身上。“十五”期间负责863计划的科技部高新司领导在龙芯2C没有达到预期技术指标,龙芯2E立项专 家提出19条反对意见的情况下作为非共识项目支持龙芯2E的研发,给了我们一次改进的机会。而这次,机会没有了,需要我们自己想办法。
        痛定思痛,知耻后勇。2013年5月,龙芯公司结合市场需求对CPU的研发路线进行了认真调整。一是龙芯3号系列多核CPU不追求核的个数而是大幅度提高 单核性能,放弃高性能机专用CPU的研制,暂停16核处理器研制,重点把双核、四核处理器做精做透。二是龙芯2号系列SOC芯片不追求“大而全”的复杂 度,而是重视结合用户需求定义芯片,以及SOC片内互连的通畅性。三是龙芯1号系列结合特定应用,如宇航、石油、流量表等研制专用芯片,专用芯片产业链 短,容易形成技术优势并快速形成销售(如面向宇航应用的龙芯1E和1F已经为龙芯公司带来持续稳定的销售收入)。种瓜得瓜、种豆得豆。从2014年下半年 开始,龙芯研发和市场结合的作用开始显现,2014年龙芯公司销售收入比2013年增长51%;2015年在2014年基础上再增长57%,为龙芯公司的 可持续发展奠定了良好的基础。龙芯公司逐渐摆脱国家项目的支持,能够主要通过市场销售养活团队和产品研发。
         基于上述对龙芯CPU研发路线的调整,2013年5月,我们暂停了已经完成主要设计的16核龙芯3C处理器流片,开始四核3A2000处理器的研发。核 多了没有用,单核必须要强。就像体育比赛,靠人多取胜的只有拔河(相当于计算机中的高性能计算机),绝大多数项目要靠运动员个人素质。3A2000主要目 标就是大幅度提高单核性能,使单核通用处理器性能提高3倍以上。当时龙芯公司承担了基于某境内40nm LL工艺的高可靠嵌入式CPU研制项目,虽然工艺性能不高,甚至比我们原来用的65nm GP工艺还慢30%,但至少流片的钱有地方出了,我们就基于该工艺研制3A2000。当时还有一个重要决定就是保持3A2000与3A1000的引脚兼 容,这样龙芯客户中基于3A1000研制的已有上百种板卡解决方案可以直接通过换焊3A2000来提高性能。基于境内工艺、通过微结构优化大幅提升性能以 及与3A1000引脚兼容说明3A2000开始摆脱了学院派惯性,走出结合用户需求研发CPU的关键一步。
        2013年初,在龙芯最困难的时候,中科院计算所孙凝晖所长在所里资金本身就很困难的情况下,拿出500万元支持龙芯3A2000处理器核GS464E的 前期研发。虽然与研制3A2000所需要的上亿元经费相比,500万显得很少,但在龙芯最困难的时候得到来自龙芯“娘家”计算所的支持,觉得非常温暖。
        事实上2012年初龙芯公司在香山饭店召开年度规划会时就决定对GS464处理器核(龙芯2F、2H、3A1000、3B1000、3B1500等都基于 GS464微结构)进行优化,形成新一代龙芯微结构GS464E。GS464处理器核一直是我自己维护,其中有一半左右代码(包括流水线控制部分如寄存器 重命名、乱序发射队列、寄存器堆控制、重排序缓存,以及访存部分如地址运算、一级数据Cache、TLB、访存失效队列、最后一级共享Cache)是我自 己写的,2012年上半年我在机房中花了整整两周时间为GS464升级为GS464E打好必要的基础(我当时说要把马的架子变成骆驼的架子,先要把一个访 存部件升级为两个访存部件)后,把维护和升级处理器核的任务移交给汪文祥和吴瑞阳。这很可能是我最后一次有机会写龙芯CPU的代码了。现在回忆起来,能够 在机房中心无旁骛地写代码真是莫大的幸福,有无比的成就感,但我不能让自己成为龙芯CPU发展的瓶颈。而且经过多年实践的锻炼,龙芯的年轻人已经充分地成 长起来了。龙芯3A1000、3B1000和3B1500都是我自己当技术负责人,3A2000开始由年轻人担任芯片的技术负责人,3A2000的技术负 责人是王焕东,3A3000的技术负责人是杨梁。承担国家项目也主要由年轻人作为项目负责人。
        GS464E对GS464的改造是全方位的。在指令系统方面,我们在MIPS64 R3的基础上进行了扩展(MIPS指令系统的授权允许用户进行扩展)并形成龙芯指令系统LoongISA,除增加一些基础指令外,还有支持云计算的虚拟化 扩展,以及加速X86和ARM二进制翻译的扩展。在微结构方面,除了前述的把访存功能部件从一个增加到两个外,还把Cache行大小从256位增加到 512位,最后一级Cache从四路组相联提高到16路组相联,增加了多个层次的预取,把重排序缓存ROB从64项增加到128项,重命名寄存器个数从 64个增加到128个,乱序发射队列由原来的定点和浮点各16项增加到定点16项(3A3000增加到32项)、浮点24项(3A3000增加到32 项)、访存32项,重新构建了整个转移猜测模块。此外,用大量的测试程序对微结构进行了细节的磨合,局部优化达到三十多处。3A2000的多核互连模块和 内存控制器也进行了性能优化。尤其是内存控制器的优化,可以大幅度提高访存频率和效率。2014年7月,RTL代码冻结。
        3A2000除了使用流片厂家提供的标准单元库、Memory Compiler生成的RAM、低速IO单元以及efuse单元以外,包括锁相环、HT PHY、DDR2/3 PHY、多端口寄存器堆、CAM、温度传感器等宏单元都是我们自己定制的,没有使用任何第三方的宏单元模块。因此,全定制工作量也不小。
        3A2000的物理设计采取了很多优化措施,初步建立起一套在主流EDA工具基础上的In-House的流程和工具,包括统一数据库支撑的设计平台,基于 触发器聚类的定制时钟设计,深度层次化设计等。这套In-House的流程和工具比纯粹依赖EDA工具的单元级设计流程提升性能20%左右。
        2014年11月初,3A2000交付流片。这次流片共有龙芯的三款芯片一起拼了个全掩膜。由于流片前的功能验证非常充分,尤其是在3A2000验证过程 中,王朋宇负责的验证组完善了龙芯指令级随机验证环境,从原来只覆盖用户态指令到覆盖核心态指令以及例外处理,大大提高了3A2000的功能验证覆盖率。 物理设计和检查也精雕细刻,我们对3A2000流片成功很有信心。
        经过几个月的焦急等待,2015年4月10日晚饭后,终于拿到了3A2000的盲封样片,连夜进行调试,到第二天早上三点多成功运行操作系统。随后的测试 一切顺利:在运行了包括SPEC CPU2000、SPEC CPU2006、Unixbench等大型程序后,功能未见异常;主频可以达到1GHz;SPEC CPU2006单核分值达到6-7分,是3A1000的3倍左右,尤其是以STREAM测试表征的访存带宽大幅度从3A1000的不到1GB/s上升到 10GB/s,与市场主流处理器基本持平。在基于龙芯3A2000的桌面终端上进行各种办公应用,觉得流畅多了。有部分芯片在较高电压下运行不稳定,当时 并没有引起重视。
        2015年5月,经过ATE测试台成测的一批芯片回来测试,发现功能测试结果与ATE测试台测试结果不一致,即部分芯片通过ATE测试后功能还是不正常, 这是3A2000完成产品化的严重障碍(即通过测试后提供给客户的芯片中有一部分可能是坏的)。通过调整ATE向量,ATE测试与功能测试的一致性增强, 但还有部分芯片不完全一致,总体感觉N管偏快的工艺稳定性明显增强。为了更好地分析原因,6月初请厂家把第一次流片中6个hold的晶圆调整工艺角开始生 产。
        经过继续深入的分析,发现两个明显现象:一是N管偏快的芯片稳定性好很多,ATE测试和功能测试比较一致;二是通过改善主板电源稳定性,有利于芯片稳定。 虽然机理不是很清楚,但在当时巨大的市场压力下(采用引进技术的CPU到处攻击龙芯性能不行,要求有关自主化应用放弃龙芯,使用引进技术的CPU),决定 结合已有的现象进行改版流片,一是更换定制的电容更大的DECAP替换厂家提供的DECAP以抑制动态压降(定制的DECAP电容比厂家提供的DECAP 电容提高一个数量级),这会带来抗ESD能力下降的风险,但我们经过分析觉得风险不大(事后流片回来进行了ESD实验,抗2000V人体模型没问题);二 是根据负责全定制工作的钟石强的建议调整了定制寄存器堆的字线和位线配合时序(增加了20ps左右的裕量),因为仿真发现N管偏快有利于定制的寄存器堆字 线和位线时序配合,与实验现象符合。3A2000的第一次改版只改了6层掩膜板,于9月初完成改版设计并交付流片。
        2015年11月初,6个调整工艺角的芯片回来,经过大量的ATE测试和功能测试,确定寄存器堆是部分芯片功能不稳定的主要原因。ATE测试发现不同工艺 角芯片的寄存器堆MBIST测试在1.30V到1.50V的不同电压下出错,功能测试出错电压则比寄存器堆低100-150mV,有较强的一致性,但机理 仍不清楚。
        2016年1月11日下午下班前,我跟范宝峡、苏孟豪在讨论苏孟豪通过JTAG通路(这是预留的除了正常的ATE测试外的另外一条测试通路)以Scan Collar方式测试寄存器堆没有发现错误的问题,并了解到杨旭审查版图发现写端口的位线的延迟在其它端口写相反值及读端口旁路读时是最差情况,我马上叫 苏孟豪用最差情况向量通过JTAG端口进行测试,很快就复现了寄存器堆出错的问题并经过进一步分析搞清楚了寄存器堆写出错的机理:在寄存器堆写端口写入过 程中,要求位线比字线先到,字线与位线之间保持必要的延迟差才能保证写入的正确性,但在位线负载大时(其它写端口写相反值及其它读端口读旁路)位线延迟变 大,字位线延迟差太小,导致写寄存器堆出错。提高电压会进一步减少字线与位线的延迟差,因此更容易出错。
        真是柳暗花明,困扰我们大半年的3A2000产品化问题终于搞清楚了,尤其是这说明我们在2015年9月份在机理不清楚情况下的改版是正确的。而且这个测 试向量提供了一种在已有芯片中把不稳定的芯片筛选掉的办法,这是龙芯3A2000产品化过程迈出的重大一步。
        2016年2月8日是春节,3A2000第一次改版的芯片在2月4日完成封装,为了在春节前完成3A2000第一次改版芯片测试,孙凯军专门到封装厂等待 封装好的芯片,拿到芯片时已经是下午6点多,直飞北京的飞机已经没了,半夜到上海倒了一次飞机,5日上午到北京,马上安排测试,确实寄存器堆的问题大大缓 解了,稳定性大幅度提高。春节上班后我们又组织攻关解决了一个软硬件磨合的问题,到2016年2月22日,完成3A2000的初步产品化工作,开始对外销 售芯片(原来一直只能以样片方式赠送给客户试用)。
        2016年3月中旬,3A2000进行再次改版,这次改版是全掩膜改版(原来是三个芯片拼了个全掩膜),除了进一步增加寄存器堆字线和位线的延迟差以外, 还修改了其它几个小问题。2016年7月下旬,芯片回来后经测试,原来的定制模块问题不复存在,芯片功能正常,而且ATE测试与功能测试一致性好。目前 3A2000已经进入量产阶段,其中经过测试支持通过直连形成多路服务器的芯片成为3B2000。
        在随后的应用推广中,3A2000与3A1000保持引脚兼容以及软件兼容体现出巨大优越性,很多客户直接在原来3A1000的主板上换焊3A2000芯 片,只需通过简单的BIOS和内核调整,就可以大幅度提升性能。龙芯的整机厂家迅速升级了部分原来基于龙芯3A1000的计算机并进行了应用试点。在 2016年6月进行的某办公应用试点验收会上,有关部门和专家认为,基于3A2000的计算机使自主化办公应用从“基本可用/可用”提高到“基本好用/好 用”。
        龙芯3A3000是在2015年5月临时安排研制的。2015年5月初,我去常熟跟龙芯梦兰公司的张福新、吴少刚等人讨论3A2000整机解决方案的研 发。大家对3A2000大幅度提升性能都很高兴,大大增强了信心。同时张福新他们提出,由于我们使用境内的40nm低速工艺,而引进ARM和威盛的CPU 都使用境外28nm高速工艺,虽然3A2000在微结构上已经超过了引进的ARM和威盛的CPU,由于主频偏低,3A2000在综合性能上还是吃亏 (1.0GHz的3A2000处理器核SPEC CPU2006分值为6-7分,而1.6-2.0GHz的ARM和威盛处理器核SPEC CPU2006分值达到8-10分),建议龙芯也尽快使用境外工艺提升频率。经过认真讨论,我们认为如果我们采用Intel的Tick-Tock(嘀嗒) 研发策略,应该可以很快推出主频1.5GHz以上,综合性能超过2GHz的ARM和威盛的处理器。Tick指的是结构不变,通过工艺优化提升性 能;Tock指的是工艺不变,通过结构优化提升性能。Tick-Tock策略可以把两个芯片流水推进,加快进度的同时降低技术风险。
        3A2000主要是通过结构优化提升性能,属于Tock;3A3000则直接采用3A2000的源代码,通过工艺优化提升性能,同时继续保持与 3A2000的引脚兼容,属于Tick。因此,3A3000在功能上没有什么风险,主要是工艺移植的风险。当然,3A3000在微结构上还是做了适度增 强:一是结合3A2000的性能瓶颈分析把定点/浮点发射队列从16/24项增加到32/32项,二是把最后一级Cache从4MB提高到8MB。到6月 底,完成了RTL源代码修改,随后全面展开物理设计。
        3A3000物理设计中继续需要定制包括HT-PHY、DDR-PHY、锁相环、多端口寄存器堆、CAM等全定制模块。由于3A2000中的全定制模块出 过问题,3A3000的全定制模块检查特别严格。除了加强设计仿真外,还让原龙芯全定制组的组长杨旭(现在是龙芯中科公司全面负责生产的副总)重新披挂上 阵,进行背靠背的复查。紧赶慢赶,于2016年1月底完成了全定制设计的签核和复查评审。
        3A3000物理设计中另一个难点是时序收敛。3A3000使用的28nm FD SOI工艺晶体管确实比3A2000使用的40nm LL快60%左右,但连线延迟大,而且互相干扰也大,废了很多周折。杨梁率领物理组在2016年春节期间也没有休息,终于在2016年2月中旬交付流片。
        2016年6月端午假期期间,龙芯3A3000完成晶圆生产并进行了中测,刚开始比较顺利,已经调试完成大部分向量,只是测试我们自己研制的锁相环时发现 锁相环输出时钟有不稳定现象。6月中旬拿到盲封芯片,测试发现只有在低于0.8V的低电压下芯片才能正常工作,经过两周的分析发现还是寄存器堆的问题,这 次是读出电路的问题,读电路译码时产生了毛刺,把别的字的内容耦合到读出字内容来了。好在该问题只需要修改一层掩模版。
        2016年9月13日,修改寄存器堆问题的改版芯片回来。这次测试非常顺利,很快就运行了SPEC CPU2000和SPEC CPU2006等大型程序,均未发现异常。主频可以达到1.5GHz以上。进一步的测试结果比想象的好,一是内存频率可以达到750MHz以上,而且信号 眼图还非常好,STREAM测试带宽达到13GB/s;二是虽然主频只提高了50%,但综合SPEC CPU2006和SPEC CPU2000分值可以提高60%,其中SPEC CPU2006单核分值为定点11分以上、浮点10分以上,四核分值为定点36分,浮点33分;三是可以运行在很低电压下,例如运行在1.0V电压下主频 1GHz时功耗还不到3A2000运行1GHz时的一半。对于复杂应用(如打开几十MB的复杂文件),3A3000的用户体验比3A2000有显著提高。
        2016年10月17日,龙芯3A3000通过了龙芯公司质量体系要求的商业级产品的鉴定检验摸底测试(工业级产品鉴定检验工作正在同步展开),表明龙芯 3A3000可以进入批量生产状态。目前3A3000已开始小批量生产,其中经过测试支持通过直连形成多路服务器的芯片成为3B3000。
        龙芯3A3000运行SPEC CPU2000定点分值1100多分,浮点分值1700多分,运行一遍不到一个半小时(如果使用计算所的编译器进行优化,定点和浮点分值还分别可以提高 15%和30%以上)。回想2002年龙芯1号刚诞生时,运行一遍SPEC CPU2000需要近三天时间,龙芯2C由于SEPC CPU2000分值没有达到863课题合同要求的300分而没有完成验收,龙芯2E费了九牛二虎之力才勉强达到500分,真是“向来枉费推移力,今日中流 自在行”。
        在3A2000和3A3000的研制过程中,有两点深刻体会。一是CPU的可调试性设计很重要,3A2000和3A3000的全定制问题和若干其它问题的 定位,都是基于通过JTAG接口控制的预先设计的调试模块,该调试模块可以控制和读出CPU内部所有触发器和RAM的内容,比起以前调3A1000、 3B1000和3B1500方便多了。二是境内工艺的一致性比境外工艺有一定差距,包括不同批次的一致性,仿真模型和实际晶体管参数的一致性都和国外工艺 有一定差距,设计时要多留些裕量,蒙特卡罗仿真也要把参数波动范围设大一些。
        3A3000研制成功对自主CPU来说具有里程碑意义。首先,3A3000的通用处理性能已经跨过了国际通用处理器性能的第一个门槛,其单核SPEC CPU2006性能已经不低于ARM用于服务器的高端处理器、Intel的低端系列(凌动系列)处理器以及威盛处理器(这些处理器在1-4核环境下 2GHz时单核SPEC CPU2006性能一般在8-10分之间,如果核数更多,由于最后一级Cache巨大,性能会有所提高),而且3A3000的访存带宽已经与AMD以及 Intel的高端系列(酷睿系列)持平。这样的性能玩复杂的3D游戏可能还有差距,但对于以党政办公为代表的事务处理应用是足够了(如果软件做适当磨合优 化,3A2000就够了)。龙芯3A3000跨过了国际通用处理器性能的第一个门槛后,也为下一步跨越第二个门槛(即达到Intel和AMD主流处理器的 性能)打下了坚实的基础。其次,3A3000的通用处理性能超过了目前靠引进ARM和威盛技术发展的国内同类(四核)CPU。“十一五”开始的自主信息化 应用试点发现第一代自主CPU通用处理性能不够的问题后,国内CPU研制单位均展开了第二代CPU的研发,并衍生出三条不同的技术路线。第一条是以龙芯和 申威为代表的“研”的路线,即通过分析第一代产品应用中发现的问题进行自主研发升级。第二条是“攒”的路线,即使用国外的处理器核“攒”SOC,并在此基 础上对处理器核进行局部优化。第三条是“O(ODM)”的路线,即中国人掏钱请外国人干,目前主要是把国外/境外已有的现成设计直接拿过来换成中国的品 牌。由于自主研发路线在“十一五”期间走了弯路,很多人对自主研发路线产生了疑虑,觉得此路不通,因此“核高基”在“十二五”期间主要支持以ARM的处理 器核“攒”SOC的路线和“O”威盛的路线为主。一是钱多,二是引进别人的产品省时间,加上龙芯3A2000与境内工艺磨合,在产品化方面花了较多时间, 从2014年年底到2016年年初大约一年半的时间,采用引进技术的CPU大肆攻击自主CPU性能不行,要求在已有的自主信息化试点中换掉龙芯(而且确实 换掉了一些),给龙芯造成很大压力。
        3A3000的通用处理性能超过引进的ARM和威盛技术的CPU,加上前些日子使用申威处理器的“太湖之光”高性能机取得世界第一的好成绩,充分说明不论 是通用CPU还是高性能机专用CPU,自主研发的道路都是走得通的,不仅安全性好,性能也高。尤其是通过自主研发形成持续改进能力后,未来的后劲更足。可 以说,在与引进CPU的技术路线的斗争中,龙芯3A3000是抗日战争的石牌保卫战,是解放战争的济南战役,拉开了自主CPU战略反攻的序幕。尤其值得指 出的是,龙芯3A3000的研制没有得到任何国家项目的补助,是完全由企业自己掏钱研制的自主通用CPU,也具有里程碑意义。
        根据Tick-Tock策略,我们制定了龙芯3号系列下一步研制计划。四核龙芯3A4000为Tock,继续使用目前的28nm工艺,争取主频达到 2GHz以上,SPEC CPU2006单核分值达到20分以上。3A4000的主要结构优化包括:增加256位的向量指令,增加片内安全机制,以及进一步通过微结构优化提高流水 线效率,争取每GHz的单核SPEC CPU2006分值达到10分(目前3A3000每GHz的单核SPEC CPU2006分值为7分,ARM的高端处理器为5-6分,X86主流处理器为10-15分)。目前3A4000的研制工作已经展开。在3A4000之后 将研制Tick阶段的新一代处理器,初步考虑使用16nm或14nm的工艺以及3A4000的处理器核研制16核的龙芯3C。经过3A4000的又一轮优 化,龙芯的处理器核微结构已经基本到位,是时候把2013年5月暂停的16核龙芯3C重新提上日程了。
        十年以来,我们先后研制了龙芯3A1000、3B1000、3B1500、3A2000/3B2000、3A3000/3B3000五款龙芯3号系列 芯片,大的流片版本12个,小的流片版本(只改几层掩膜板)6个,碰到了各种各样的问题,经历了很多坎坷。为什么龙芯CPU的研制经历这么多坎坷呢?除了 龙芯的质量流程需要持续改进以外(最近结合3A2000和3A3000的全定制问题正在举一反三,并完善全定制流程),究其根本原因,是因为我们坚持芯片 中的核心模块自己研制。前面提到的龙芯3号研制过程中碰到的问题,都是包括CPU、HT控制器、内存控制器、全定制寄存器堆、全定制锁相环等核心模块内部 的问题,并不是把这些模块“攒”在一起产生的问题。这些问题,如果购买商业IP(如ARM的CPU,Imagination的GPU等)来“攒”芯片一般 不会碰到。自从2001年开始研制CPU以来,我直接或间接负责了近百次流片,流片后碰到的问题除了极个别外,都是核心模块内部的问题。
        龙芯长期坚持芯片中的核心IP自己掌握。这些核心IP包括CPU核、内存控制器、DDR2/3/4的PHY、互连网络、HT控制器、HT PHY等,最近还展开了GPU的研发,只有少量的外围IP使用商用IP。不是吃饱了饭没事干,而是我们使用别人的IP吃过亏。2003年我们刚开始研制龙 芯2号时委托一个很有名的EDA和设计服务公司定制一个3写6读寄存器堆,在交付流片后发现其中的电源地严重缺失,跟他们交涉时他们说这个不会有问题,导 致龙芯2号系列的第一款芯片龙芯2A流片失败,后来我们自己定制了该寄存器堆才使龙芯2B流片成功。龙芯3A1000刚开始研制时曾经使用过商业 DDR2/3 PHY,我们在检查中发现了一些问题,但厂家觉得没问题不愿意修改,后来3A1000流片时同时流了使用商用DDR2/3 PHY和自主研制DDR2/3 PHY的两个版本,并在使用自主DDR2/3 PHY的版本流片成功后确定使用自主DDR2/3 PHY的版本进行量产。龙芯3A1000和3B1000曾经使用过商业的内存控制器,但商业的内存控制器满足不了高性能CPU的带宽要求(使用商业内存控 制器的SOC在双通道下不可能做出龙芯3A3000 的13GB/s实测带宽来),因此从3B1500开始自主设计内存控制器。龙芯2H集成了商用的GPU核,该GPU核有 Android操作系统的驱动程序,但我们需要Linux的Xserver驱动,厂家自己开发不了,我们希望厂家把内部配置寄存器如何使用的手册给我们, 我们自己开发,可是厂家说这是商业机密,不愿意给,至今龙芯2H只有在Android上有3D驱动,Linux的Xserver驱动只有2D的。
        一是吃过亏,二是觉得洋鬼子干得还不如我们,所以就自己干。在国际上,虽然Nvidia巴心巴肝地帮Intel做配套GPU,Intel还是坚持自己做 GPU;虽然Imagination巴心巴肝地帮ARM做配套GPU,ARM也坚持自己做GPU;虽然开源的火狐浏览器很不错,谷歌还是坚持自己做 Chrome。苹果和高通公司都是在ARM的架构授权下自主设计处理器核,其性能远高于ARM的处理器核。他山之石、可以攻玉。只有技术上不受制于人,才 有产业上的主动权。
        做任何事情,依靠别人总是容易一些,完全靠自己则困难得多。但依靠得多了,吃过亏后才明白还得靠自己。毛主席在青年时期也没有想过要革命,想着改良主义可 以救中国,后来才觉得马克思主义是“山穷水尽诸路皆走不通了”的选择;建党后在陈独秀领导下在湖南搞工人运动,光大的罢工就举行了十多次,结果是罢工受镇 压,工人领袖被杀;国共合作期间依靠国民党的武装干革命,结果蒋介石发动“四一二”政变杀共产党人;好不容易上井冈山建立了自己的军队,找到了武装夺取政 权、农村包围城市的道路,却被那些在上海租界呆不住跑到井冈山避难的书生们轻松地夺了权,不得不进行两万五千里长征;经历千难万险与四方面军会师了,还差 点被贪心不足的张国焘武力扣押。吃了这么多亏后,毛主席在以后的革命和建设中就牢牢掌握了主动权,包括国共第二次合作时坚持独立自主的山地游击战,反对共 产国际的“一切通过统一战线”的错误主张;重庆谈判坚持保留边区和军队;建国后先是抗美援朝,后是中苏论战。等等。
        在中国的近代史上,我们有三次向外国老师学习的经验,每次都是受老师欺负吃了亏后走上自力更生的道路。第一次是洋务运动,晚清时期中国海关关长都是英国人 担任的,是中国历史上最开放的时期,却被西方列强欺负得水深火热,毛主席领导共产党推翻了三座大山,解放了中国人民。第二次是建国后向苏联学,一边倒,结 果苏联在中国的土地上又想建联合舰队,又想建长波电台,毛主席拒绝后苏联又撤专家又逼债,毛主席还是领导中国人民自己搞了“两弹一星”,建立了自主可控的 工业体系。第三次是改革开放,我们学习西方的管理理念和科学技术,刚开始觉得挺好的,现在有点觉得吃亏了(像我这样气性大的觉得忍无可忍了,很多人觉得还 可以再忍忍)。2011年我国IT产业百强企业的利润总和是苹果公司的40%(我刚开始觉得华为是通信企业,可能不算在IT百强里面,后来查到华为也算在 这里面时很有挫折感)。总是听专家说,我国跟美国的经济互相依赖,美国也不敢把我们怎么样,可是当美国制裁中兴时,我们不得不认怂,中兴公司定期向美国商 务部报告工作,以获得延期制裁。美国可以通过不卖元器件在三个月之内把国人引以为豪的华为、联想、中兴等企业搞死,十大军工集团有大半开不了张,我们有哪 种产品不卖给美国企业,会把美国的Intel、IBM、谷歌、微软、苹果搞死呢,我们顶多能把沃尔玛搞得比较难受。现在想想,毛主席周总理带着全国人民勒 紧裤腰带炼钢铁、打油井、发展两弹一星,建立起自主可控的工业体系真是无比英明。
        正如改革开放进入深水区,容易改的都改完了,剩下都是难改的;创新也进入深水区,容易创新的都创完了,剩下难创新的,需要十年磨一剑的积累。我们的IT产 业先学会了用国外的芯片在主板上“攒”系统,后来又学会了用国外的IP在硅上“攒”系统。掌握这些简单技术后,下面该深入到CPU、GPU这些复杂的核心 模块中去了。这些复杂的创新不是领导重视、钱多、人多就能一下子干出来的,还需要时间来磨,在探索和试错过程中不断演进。领导重视、人多、钱多可以加速探 索和试错的过程,但不能消除这个过程。中国航天建空间站,先来个天宫一号试试看,再来个天空二号(还分两期)接着试,最后再发射正式空间站,也是这个演进 的道理,不是缺钱,也不是领导不重视。CPU是超复杂系统,超复杂系统只能走进化论的道路,在产业化实践中通过长期演进发展起来。即使在这个过程中,得到 别人的源代码,也只能加速自主研发的进度,取代不了自主研发的工作。更何况复杂系统是很难消化吸收的,即使拿到国外CPU的源代码,每一行都看得明白,但 把几百万行代码拼在一起就不知道是干什么的,就像我们可以打开一头猪的大脑看得清清楚楚,但不知道猪在想什么。很多人现在还寄希望于引进国外技术发展我国 的CPU,那是因为吃洋鬼子的亏没吃够。须知天上是不会掉馅饼的,要发展以自主CPU和操作系统为代表的基础软硬件,我们必须克服急躁情绪,克服崇洋情 绪,发扬愚公移山精神,坚持实事求是作风,在自主创新实践中不断发现问题,在解决问题过程中不断提高能力,才能保障国家安全和支撑产业发展。
        龙芯今年15岁了。中国共产党在15岁的时候完成了举世瞩目的万里长征,建立了陕北根据地,取得了生存的基础,但共产党长征的目的决不仅仅是建立一块根据 地活下来,而是以此为基础解放全中国。龙芯在15岁的时候完成了3A3000的研发,跨越了国际上通用CPU的第一个性能门槛,性能超过了引进设计的 CPU,龙芯公司实现盈利,取得了生存的基础,但龙芯的目标绝不是为了生存和挣钱,而是为了建立自主可控的信息产业体系。目前我国的信息产业主要建立在以 Wintel体系(Intel的CPU和微软的Windows操作系统)和AA体系(ARM的CPU和谷歌的Android操作系统)为代表的国外基础软 硬件平台上。要改变我国信息产业和信息安全受制于人的局面,不能只着眼于单项技术的突破和产品市场占有率的提高,必须建立起自主可控的信息技术与产业生态 体系,形成与Wintel体系和AA体系“三足鼎立”的局面,才能掌握产业发展主导权,消除安全隐患。如果我们没有建立起自主可控的IT产业体系,继续在 已有的Wintel体系和AA体系中当“马仔”,是难以实现中华民族的伟大复兴的“中国梦”的。反之,只要我们坚持自主创新,打通技术链,完全可以在局部 指标不如国外产品的情况下,建设出优于国外产品的应用系统。须知判断技术是否先进的标准,不是看其跟美国人跟得紧不紧,而是看其跟应用结合得紧不紧。
        古人说“事非经过不知难”。但只要认真去做,也有“事非经过不知易”的道理。龙芯3号系列CPU通用处理性能在从2013年起的不到四年时间提高到了原来 的五倍以上,充分说明了这个道理。2001年我们开始研制龙芯CPU的时候,很少人相信我们能够做出来,在整个“十五”期间,网络上“龙芯打假”的言论层 出不穷,但我们坚持做出来了,方法是在别人都不信的情况下,做给他看。2006年我们开始推广龙芯CPU应用的时候,也很少有人相信龙芯能用起来,不知受 了多少奚落和冷嘲热讽,甚至有人说,如果龙芯能够卖得出去,他就从此倒立着走,但龙芯公司现在能够通过龙芯CPU的销售养活自己了,方法还是在别人都不信 的情况下,做给他看。今天我们说要建立自主可控的信息产业体系,还是多数人不信,无非是认为做生态太难,自己肯定做不好,不如跟着别的老大当个马仔,所以 总说与X86和ARM兼容生态好,总之是一种畏难情绪。对付信心不足,我们还是老套路,做给他看。世界上做CPU的企业中,凡是不做生态(DEC、 IBM、HP、SUN、SGI)或者跟生态(AMD、威盛)的CPU企业都活不好。八十年前几万衣不蔽体的红军刚到陕北时有谁相信这帮泥腿子能解放全中 国?改革开放初期以能买到日本彩电为荣的中国人有几个相信今天中国的制造业产值已超过美国加日本的总和?在建立自主信息产业体系方面,我们要在自己内部肃 清一切软弱无能的思想,就像毛主席说的:“我们的同志,在困难的时候,要看到成绩,要看到光明,要提高我们的勇气”。
        八十年前,当衣不蔽体的几万红军完成两万五千里长征时,他们是中国最生气勃勃,具有百折不挠的献身精神,真正的民族精英。他们是怀着对革命的坚定信念,在 崇高理想的指导下走完长征的。同样,自从2001年开始龙芯处理器研发以来,龙芯人也是怀着坚持自主创新、保障国家安全、支撑产业发展的坚定信念走了一条 别人没有走过、多数人不信能走通、非常艰难的“长征”。十五年来,很多龙芯的技术骨干都把人生最美好的青春献给了龙芯的“长征”。加班加点仍是龙芯研发人 员的常态,而龙芯的薪酬长期低于同行业水平,有些人三十多岁就出现了各种健康问题。不少龙芯的技术骨干都接到过猎头公司百万年薪的电话,但龙芯团队的核心 骨干非常稳定。为了龙芯的产业化,很多技术骨干都毅然放弃中科院的事业编制,辞职到龙芯公司。人都是有私心的,但我敢保证龙芯人的私心相对少一些;大家离 毛主席要求的“一个高尚的人,一个纯粹的人,一个有道德的人,一个脱离了低级趣味的人,一个有益于人民的人”都有差距,但我敢自豪地说龙芯人的差距相对小 一些。后之视今,尤今之视昔。我相信,我们的后人会像我们今天崇敬长征的英雄、崇敬抗美援朝的英雄、崇敬两弹一星的英雄一样,来崇敬今天在建立我国自主可 控的信息产业体系道路上历经艰难险阻完成新长征的我们。
        龙芯十五年的坚持来自中国科学院的光荣传承。中科院计算所是我国计算机事业的摇篮,经历了“完全自主但没有市场化”的第一个三十年,为两弹一星做计算机; 也经历了“完全市场化但丧失自主性”的第二个三十年,创办了联想和曙光,为了与市场接轨,研发工作忍痛从CPU和操作系统中退出。我们是中国第三代计算机 人,任务是在市场化条件下实现自主性,保障国家安全和支撑产业发展。我的导师夏培肃院士是我国计算机事业的重要奠基人,她多次对我说过,这辈子最大的心愿 就是把中国的计算机事业搞好,她们这代人没搞好,希望我们搞得比她们好。李国杰院士曾经在一次自主可控行业的大会上动情地说:我的导师夏老师(李国杰院士 也是夏培肃院士的学生)已经九十岁了,干不动了;我也七十岁了,快干不动了;如果到胡伟武这一代我国的CPU和操作系统还没有发展起来,中国的IT产业就 没戏了。龙芯团队有一个老研究员黄令仪老师,今年八十岁了还天天在屏幕前拖着鼠标查版图。有一次我请黄老师参加某用于安全领域的芯片研发工作时,黄老师脱 口而出:胡老师,我这辈子最大的心愿就是匍匐在地,擦干祖国身上的耻辱;我是亲眼见过我的同胞被日本鬼子的飞机炸死的。前辈的精神感染了我们,前辈的荣光 照亮了我们前进的道路,让我们咬着牙关,勇往直前!
        龙芯十五岁了。2001年8月19日清晨当屏幕上第一次出现“godson login”时的那声欢呼已经远去,在雨中登黄山的台阶上高唱《真心英雄》时的那种豪情已经消退,夜深人静时在计算所北楼长长的走廊尽头泡方便面记忆已经 模糊,但龙芯人“为人民做龙芯”的初心未改,“十年磨一剑”的执着依旧,“人生能有几回搏”的奋斗长在。我们已经走在“以安全可控为主题、以产业发展为主 线、以生态建设为目标”的新长征道路上。迷失方向时,坚持从国家和人民的角度(而不是自己的角度)做出选择就是我们心中的“北斗星”。长征的道路蜿蜒曲 折,不仅有芳草鲜美、落英缤纷,更有沼泽沙漠、雪山草地、豺狼虎豹,因此前进的路上就要苦我们的心智、痛我们的体肤。龙芯走自主研发道路,比直接引进处理 器芯片或者引进处理器核的道路见效慢一些,在路上会被别人暂时超过心里着急;走市场化道路,要结合客户需求把短板补齐,比起在计算所做研究时只关注几个有 显示度的指标来,在显示度方面差一些;要建立自主软硬件体系,比只在单一领域做单一产品难度大很多。这就要求我们在前进的道路上不仅要有冲天的豪情,艰苦 奋斗、奋勇争先,而且要有钢铁般的意志,做到专心致志、持之以恒、精益求精,直至取得最后的胜利。我们是“苦命”而光荣的龙芯人,虽千万人吾往矣。
        我们正在前进。我们正在做我们的前人从来没有做过的极其光荣伟大的事业。我们的目的一定要达到。我们的目的一定能够达到。
 

国产龙芯城市交通信号系统研制成功并成功示范应用

举爪为证 发表了文章 • 0 个评论 • 152 次浏览 • 2017-01-24 09:59 • 来自相关话题

原文链接:http://www.loongson.cn/news/company/457.html

      智慧交通是智慧城市的主要组成部分。目前,国内的交通信号机均采用国外ARM或STM32系列微处理器开发,由于交通系统涉及到公共安全,因此,研制基于国产龙芯的交通信号机系统具有积极意义。 
中科龙安技术团队采用LS1C研制了基于CAN总线架构的交通信号机,该信号机支持TCP/IP和3G/4G通信模式,具有多时段、感应、绿波、自适应控制等多种功能,并能够通过故障检测避免控制方案的风险。
中科龙安研制的交通信号控制系统已经在合肥市国家电子商务产业园的主干道-湖光路得到成功应用。控制系统由国产龙芯交通信号机、视频监控、地磁检测和交通 控制软件等组成,控制范围包括沁源路-湖光路至蜀峰路-湖光路共7个交叉口。在应用中取得了较好的应用效果,有效提高了干线通行能力。






城市交通信号控制系统






 胡伟武总裁等人在蜀山区现场考察
      该交通控制系统的实施是龙芯处理器技术在城市智能交通领域开拓性的创新应用,也是交通信号机无线组网控制的首次有效尝试。 查看全部
原文链接:http://www.loongson.cn/news/company/457.html

      智慧交通是智慧城市的主要组成部分。目前,国内的交通信号机均采用国外ARM或STM32系列微处理器开发,由于交通系统涉及到公共安全,因此,研制基于国产龙芯的交通信号机系统具有积极意义。 
中科龙安技术团队采用LS1C研制了基于CAN总线架构的交通信号机,该信号机支持TCP/IP和3G/4G通信模式,具有多时段、感应、绿波、自适应控制等多种功能,并能够通过故障检测避免控制方案的风险。
中科龙安研制的交通信号控制系统已经在合肥市国家电子商务产业园的主干道-湖光路得到成功应用。控制系统由国产龙芯交通信号机、视频监控、地磁检测和交通 控制软件等组成,控制范围包括沁源路-湖光路至蜀峰路-湖光路共7个交叉口。在应用中取得了较好的应用效果,有效提高了干线通行能力。

城市交通信号控制系统.jpg


城市交通信号控制系统

胡伟武总裁等人在蜀山区现场考察.jpg


 胡伟武总裁等人在蜀山区现场考察
      该交通控制系统的实施是龙芯处理器技术在城市智能交通领域开拓性的创新应用,也是交通信号机无线组网控制的首次有效尝试。