龙芯3B2000四路服务器的RAID搭建

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

原文链接:龙芯3B2000四路服务器的RAID搭建 简介:        RAID是冗余磁盘阵列(Redundant Array of Inexpensive Disk)的简称。它是把多个磁盘组成一个阵列,当作单一磁盘使用 ...查看全部
原文链接:龙芯3B2000四路服务器的RAID搭建

简介:
       RAID是冗余磁盘阵列(Redundant Array of Inexpensive Disk)的简称。它是把多个磁盘组成一个阵列,当作单一磁盘使用。它将数据以分段(striping)的方式分散存储在不同的磁盘中,通过多个磁盘的同 时读写,来减少数据的存取时间,并且可以利用不同的技术实现数据的冗余,即使有一个磁盘损坏,也可以从其他的磁盘中恢复所有的数据。简单地说,其好处就 是:安全性高、速度快、数据容量大。
       磁盘阵列根据其使用的技术不同而划分了等级,称为RAID level,目前公认的标准是RAID 0~RAID 5。下面对RAID 5进行简单的介绍。RAID5特点:以数据的校验位来保证数据的安全,但它不是以单独硬盘来存放数据的校验位,而是将数据段的校验位交互存放于各个磁盘上 (图1)。任何一个磁盘损坏,都可以根据其他磁盘上的校验位来重建损坏的数据。并行读写数据,性能也很高。

1.png


图一:RAID5原理
磁盘利用数:n-1,且最低需要3块硬盘1.搭建环境准备:硬件:龙芯3B2000的四路服务器,3块相同容量的硬盘,1块系统盘;
操作系统:Loongnix1.0系统;
相关软件:mdadm(搭建RAID);
2.具体操作1、   安装好3块预备RAID的硬盘;
2、   取得root用户权限,本文所有操作均需要root级权限;
3、格式化除系统盘之外的3块硬盘,这里我们统一选择格式化为ext3格式;
4、准备mdadm程序      
mdadm是multiple devices admin的简称,它是Linux下的一款标准的软件 RAID管理工具;
通过龙芯的源直接:yum install mdadm 即可安装成功
5、制作RAID
a.       mdadm --create --verbose /dev/md0 --level=raid5 --raid-devices=3 /dev/sdb /dev/sdc   /dev/sdd
 --create --verbose /dev/md0创建/dev/md0设备,
--level=raid5:raid的级别这里为raid5,
--raid-devices=3:几块硬盘做为RUN
b.      查看RAID阵列情况
cat /proc/mdstat
                     创建RAID过程需要很长时间,因为磁盘要进行同步化操作,查看/proc/mdstat                  文件,该文件显示RAID的当前状态和同步完成所需要的时间。如下:
              personalities :[raid6] [raid5] [raid4]
                     md0 : active raid5 sdc[1] sdd[2] sdb[0]
              1953524992 blocks level 5, 64k chunk, algorithm 2 [3/2] [UU_]
              [>....................] recovery = 4.3% (1622601/37734912) finish=1.0min speed=15146K/sec
              unused devices:
              当新建或重构完成后,再次查看/proc/mdstat文件。下文表示同步成功:
              Personalities : [raid6] [raid5] [raid4]
              md0 : active raid5 sdc[1] sdd[2] sdb[0]
                  1953524992 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]
              unused devices: <none>
       各部分所代表的意思如下:“[3/3]”中的第一位数表示阵列所包含的设备数,第二位数表示活动的设备数,如果有一个设备损坏,则第二位数将减 1;“[UUU]”标记当前阵列可以正常使用的设备情况,现假设/dev/sdb出现故障,则该标记将变成 [_UU],这时的阵列以降级模式运行,即该阵列仍然可用,但是不再具有任何冗余;“sdd[2]”指阵列所包含的设备数为n,若方括号内的数值小于 n,则表示该设备为活动设备,若数值大于等于n,则该设备为备份设备,当一个设备出现故障的时候,相应设备的方括号后将被标以(F)。
6、格式化RAID5磁盘
RAID5已经启动并处于运行状态,现在要做的就是在其上创建一个文件系统。这里我们选择格式化成ext3格式#mkfs.ext3 /dev/md0
7、挂载RAID5磁盘
当新的文件系统生成之后,就可以将/dev/md0挂接到指定的目录了:
a.       新建一个文件夹:#mkdir /raid5;
b.      挂载/dev/md0 到 /raid5 上:#mount /dev/md0  /raid5;
c.       可以直接使用磁盘了;
8、生成配置文件
              mdadm的缺省配置文件为/etc/mdadm.conf,它主要是为了方便阵列的日常管理而设置的,非必须的。
              在mdadm.conf文件中要包含两种类型的行:一种是以DEVICE开头的行,它指明在阵列中的设备列表;另一种是以ARRAY开头的行,它详细地说明了阵列的名称、模式、阵列中活动设备的数目以及设备的UUID号。格式如下:
       DEVICE /dev/sdb /dev/sdc /dev/sdd 
       ARRAY /dev/md0 level=raid5 num-devices=3 UUID=8f128343:715a42df: baece2a8
       以上的这些信息可以通过扫描系统的阵列来获取,命令为:
       # mdadm  -Ds (或者 #mdadm --detail scan)
       ARRAY /dev/md0 level=raid5 num-devices=3 UUID=6ecd420a:ff66d6de:bfe78010:bc810f04
       devices=/dev/sdb,/dev/sdc,/dev/sdd
       按照规定的格式编辑修改/etc/mdadm.conf文件
       # vim/etc/mdadm.conf
3.常用RAID维护命令1、启动阵列
       # mdadm -As /dev/md0
       该命令指启动/dev/md0阵列,其中“-A”指装载一个已存在的阵列;“-s”指查找mdadm.conf文件中的配置信息,并以此为依据启动阵列。
       #mdadm -As
       该命令指启动mdadm.conf文件中的所有阵列。
       #mdadm -A /dev/md0 /dev/sd[b,c,d]
       如果没有创建mdadm.conf文件则可以采用上面这种启动方式。
2、停止阵列
# mdadm -S /dev/md0
3、显示指定阵列的详细信息
# mdadm -D /dev/md0
4.总结:本文验证了RAID在龙芯主机和服务器平台上的搭建过程,证明了龙芯平台可以提供安全高性能的存储系统。
更多Loongnix技术信息请访问龙芯社区(http://www.loongnix.org)进行更深入的了、学习。
相关资料:
[1] https://en.wikipedia.org/wiki/RAID
[2] https://en.wikipedia.org/wiki/Mdadm

龙芯中科总裁胡伟武受邀参加新型CIO领导力峰会暨河南省CIO培训会并发表演讲

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

原文链接:龙芯中科总裁胡伟武受邀参加新型CIO领导力峰会暨河南省CIO培训会并发表演讲   12月16日—17日,“智创引领时代,融合共筑未来”新型CIO领导力峰会暨河南省CIO培训会在许昌成功举办。河南省工业和信息化委党组成员、副主 ...查看全部
原文链接:龙芯中科总裁胡伟武受邀参加新型CIO领导力峰会暨河南省CIO培训会并发表演讲

  12月16日—17日,“智创引领时代,融合共筑未来”新型CIO领导力峰会暨河南省CIO培训会在许昌成功举办。河南省工业和信息化委党组成员、副主任 孟西林、许昌市委常委、常务副市长石迎军出席活动并致辞,省内外知名专家学者、各省辖市、省直管县(市)工业和信息化主管部门相关负责人、河南省首席信息 官(CIO)联盟全体会员等近300人参加了会议。龙芯中科总裁胡伟武受邀参加并发表演讲。

2.jpg


活动现场
        龙芯中科总裁胡伟武在会上作了《中国自主CPU发展之路》的演讲,介绍了我国CPU发展现状、龙芯处理器的研发进展以及在各行业领域的应 用情况。会议期间,胡总还与许昌市委市政府领导,河南省经信委等相关领导进行了座谈,并与当地合作伙伴开展了深入的交流与合作。

3.jpg


龙芯中科总裁胡伟武发表演讲
        随着我国信息化、工业化快速、深入的发展,信息安全问题已经不可忽视,龙芯作为国产自主可控的CPU,已经在石油、电力、金融、工控、网 安等领域有了深入、广泛的使用。龙芯在安全应用、计算机设备、嵌入式应用等领域深耕多年,与合作伙伴开展了广泛的市场合作,有能力为我国信息产业发展、为 各行业信息化安全建设提供高性能、低成本、低功耗的处理器产品。

“核高基”重大专项“国产软硬件在数控/工业控制装置中的应用与推广”通过任务终验收

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

原文鏈接“核高基”重大专项“国产软硬件在数控/工业控制装置中的应用与推广”通过任务终验收     2016年8月25至26日,核高基重大专项实施管理办公室在沈阳组织召开了中国科学院沈阳计算技术研究所有限公司牵头联合龙芯中科技术有限公司、沈阳机 床( ...查看全部
原文鏈接“核高基”重大专项“国产软硬件在数控/工业控制装置中的应用与推广”通过任务终验收
    2016年8月25至26日,核高基重大专项实施管理办公室在沈阳组织召开了中国科学院沈阳计算技术研究所有限公司牵头联合龙芯中科技术有限公司、沈阳机 床(集团)有限责任公司共同承担的核高基重大专项“国产软硬件在数控/工业控制装置中的应用与推广”(课题编号:2012ZX01029001-002) 课题的任务验收会。
        任务验收专家组依据重大专项任务验收的有关规定,听取了课题完成情况汇报、任务预验收问题整改落实情况的汇报、第三方测试报告、用户报告及验收提前检查组 资料与测试审查情况报告,现场查看了试验系统演示和相关产品,审查了有关验收材料并进行了现场质询,一致认为课题圆满完成了任务书要求的各项研究内容和考 核指标,验收文档齐全,课题管理制度健全,管理规范,符合验收要求,一致同意通过课题任务终验收。
        通过该课题的实施,突破了基于国产处理器的高性能开放式数控系统体系结构、软硬件平台、面向数控系统应用API接口及规范、跨硬件平台和操作系统兼容、现 场总线及网络等共性、关键技术,建立了国产软硬件在数控工控领域应用的产业技术创新链;形成了基于龙芯3A、2F、1A处理器的高档、普及、紧凑及专用型 的系列化数控产品,并实现了批量配套应用,验证了国产软硬件在数控工控领域的可用性,显著提升了我国数控装置的自主化程度、产业化水平和产业技术安全。

10.jpg

 

龙芯大数据一体机研讨会在京召开

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

原文链接:龙芯大数据一体机研讨会在京召开   2016年12月14日上午,基于龙芯的大数据一体机研讨会在北京龙芯产业园召开。中国科学院陈国良院士、航天科工集团706所、南京邮电大学、深圳大学、航天云宏、龙芯中科等多家单位共同参与了会议 ...查看全部
原文链接:龙芯大数据一体机研讨会在京召开

  2016年12月14日上午,基于龙芯的大数据一体机研讨会在北京龙芯产业园召开。中国科学院陈国良院士、航天科工集团706所、南京邮电大学、深圳大学、航天云宏、龙芯中科等多家单位共同参与了会议研讨。
        在会议上,陈国良院士首先介绍了基于龙芯的大数据一体机的项目背景、必要性及项目意义。随着数据来源的多样化,数据结构的多样化,大数据不仅将在企业和科 研得以应用,还会在政府、经济等更多领域发挥作用。围绕大数据应用于服务,需要进一步提高相应的安全防护能力,要实现自主可控的大数据安全。

1.jpg


        龙芯中科、航天云宏、南京邮电大学、深圳大学等单位各自汇报了在大数据方面的前期工作,包括技术预研、架构设计、软件移植、应用案例等。航天706所谢所 长作为用户方代表介绍了航天科工集团及安全系统对数据库一体机/大数据一体机的需求以及取得的进展。龙芯中科总裁胡伟武介绍了计算所在大数据方面的研究, 以及龙芯在软硬件磨合方面的经验。会议最后成立了联络小组共同推进基于龙芯的大数据机一体机项目。

龙芯1H高温钻探芯片应用示范工作在中石油、中石化顺利展开

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

原文鏈接龙芯1H高温钻探芯片应用示范工作在中石油、中石化顺利展开 今年6月龙芯1H高温钻探芯片在中国石油集团渤海钻探工程有限公司定向井技术服务分公司顺利完成高温测试后,立即转入应用验证阶段。中石油渤海钻探定向井 分公司作为龙芯1H芯片研发合作单位, ...查看全部
原文鏈接龙芯1H高温钻探芯片应用示范工作在中石油、中石化顺利展开
今年6月龙芯1H高温钻探芯片在中国石油集团渤海钻探工程有限公司定向井技术服务分公司顺利完成高温测试后,立即转入应用验证阶段。中石油渤海钻探定向井 分公司作为龙芯1H芯片研发合作单位,按照计划配合龙芯嵌入式事业部完成了高温验证板的设计定型,并于8月中旬交付渤海钻探进行软件移植以及下井前的整板 验证工作,预计今年10月份即可择机下井。

8.jpg


提供给中石油渤海钻探的高温板
        在与中石油紧密合作的同时,中石化石油工程技术服务股份有限公司也对龙芯1H的进展十分关注。7月6号,中石化油服公司刘汝山副总在胜利油田专门召开龙芯 1H应用研讨会,胜利油田装备处、胜利油田钻井院、胜利油田测井公司、胜利油田石油工程公司等相关单位领导及主要技术人员20余人参会。与会专家仔细分析 了龙芯1H的技术参数,认为1H很适合石油钻探随钻的温度、转速、倾角等参数采集设备,并确定胜利油田钻井院作为1H在中石化应用的试点牵头单位。

9.jpg


刘汝山副总在胜利油田龙芯1H高温钻探芯片应用研讨会讲话
        8月2日,刘汝山副总一行到龙芯公司参观交流,与龙芯中科胡伟武总裁就深化中石化与龙芯在石油钻探领域的合作,打破国外技术封锁,实现石油钻探设备的国产 化、系列化达成共识。8月22日,胜利油田钻井院周延军院长、中石化高级工程师杨锦舟等一行来到龙芯公司,与龙芯嵌入式事业部确定了1H具体应用方案与时 间安排,双方计划在2016年年底前,实现1H的下井应用。

龙芯平台上的容器和CI/CD实现方案

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

原文链接:龙芯平台上的容器和CI/CD实现方案 一:简介         Windocker是云宏公司基于龙芯平台开发的容器管理web平台。主要功能包括:系统资源信息dashboard;容器管理,包括启动,删除,暂停, 重 ...查看全部
原文链接:龙芯平台上的容器和CI/CD实现方案

一:简介
        Windocker是云宏公司基于龙芯平台开发的容器管理web平台。主要功能包括:系统资源信息dashboard;容器管理,包括启动,删除,暂停, 重启等;容器网络的创建,目前只支持基本的桥网络;镜像管理,包括从镜像仓库中拉取镜像,启动容器,容器个参数配置;数据卷的创建,主要是创建持久化的 volume;平台信息的展示,包括软件版本等信息;容器控制台;日志监控等。
        CI/CD 是敏捷开发的必备,简单说就是有这样一套工具,使得开发人员做好开发和单元测试再 push 代码后就不用管了,这套工具能自动地 check 代码的变化,自动 build, 自动做集成测试和场景测试等,自动部署到生产环境,当然,某一个环节出了问题要反馈给开发人员。这套工具大大地解脱了开发人员的工作,让他们专注开发和迭 代。

1.jpg


二:系统环境以及配置
A:系统硬件平台环境

2.jpg


B:软件环境

3.jpg


安装loongson提供的操作系统版本。
http://ftp.loongnix.org/os/loongnix/1.0/liveinst/loongnix-20161030.iso
建议设置:
1:配置多用户模式
#systemctl set-default multi-user.target
2:关闭防火墙以及selinux
#systemctl disable firewalld
3:安装docker软件包,并默认启动该服务
#yum  -y install docker; # systemctl enable docker
C:容器管理环境

4.jpg


部署云宏公司的windocker1.0.0 容器管理环境平台(docker容器镜像)
二:基础镜像制作
目前windocker基础容器镜像(龙芯平台)制作采用如下方式:
# cd /
# mkdir /Fedora21mininal-base
# yum --installroot=/Fedora21mininal-base groupinstall “Minimal Install”
# tar --numeric-owner -cpf Fedora21-base.tar -C Fedora21mininal-base .
# cat Fedora21-base.tar | docker import - fedoar21-minimal:v1.0.0
三:制作镜像仓库、服务镜像
A:镜像仓库的制作
参考http://www.loongnix.org官网。龙芯Fedora21 搭建docker-registry本地服务器)考虑到loongnix的镜像服务器基础镜像软件包太大(5G多),建议使用如上的基础镜像进行配置。
B:源代码管理svn镜像
      功能:作为源码管理容器的镜像。本测试方案中采用svn方式
C:jenkins镜像
      功能:采用的版本为2.7.4,并下载其各插件
D:tomcat镜像
      功能:自动部署jenkins产生的war包。
四:搭建CI/CD流程
A:启动云宏容器管理平台
#docker run -d -p 9000:9000 --name=windockerui  --privileged -v /var/run/docker.sock:/var/run/docker.sock winhong/windockerui:v1.0.0
访问地址:http://youip:9000/ 如下图
B:在windocker平台上,从镜像仓库中获取镜像

5.jpg


Svn源代码管理容器启动完成后
svn源代码管理容器创建成功后,进行代码的提交和管理
#svn co svn://yourhostip/demorepo
C:Jenkins容器启动和操作。(jenkins版本为2.7.4)
默认的Jenkins容器镜像,安装了maven编译环境,以及插件
使用命令行启动
#docker run  -i -d -t --privileged  -p 8080:8080 --name winjenkins winhong/winjenkins:v2.0.0
或者是windocker管理平台启动该镜像容器。如同上述svn容器操作一致。
D:配置jenkins容器,以及插件。
1:配置jdk
2:配置maven
3:Jenkins的配置文件以及相关目录如下。
使用docker inspect -f {{.Volumes}} contained 可以查看jenkins的配置目录,如:
4:jenkins产生的文件自动触发windocker启动tomcat容器,部署WAR。
手动部署方式(云宏容器管理平台关闭自动触发启动容器),
# docker run -v /opt/tomcat/webapps:/opt/tomcat/webapps -i -d -t -p 1080:8080 --name winhongtomcat winhong/wintomcat:v2.0.0
五:总结
       本文验证了云宏公司的windocker容器管理平台在龙芯服务器上搭建CI/CD的过程,证明了windocker管理平台能正确运行在龙芯服务器平台上;容器服务的管理;快速搭建CI/CD发布集成平台。
六:云宏公司简介:
        云宏信息科技股份有限公司成立于2010年,是国内最早专注于云计算大数据关键技术研究的企业,领先推出虚拟化软件CNware,、云操作系统 WinCloud、大数据平台ThinkData、超融合产品、创新创业云解决方案、宏云+专有云、知库等核心产品及电信、政府、金融、航天军工、教育等 行业解决方案。
        深耕行业多年,云宏获得市场及行业的高度认可,获得中国航天科工集团投资入股。2015年成功登陆新三板(股票代码:832135),并进入新三板创新层。
        目前公司已经拥有超过150项云计算相关专利及知识产权,承担20余项科技攻关项目研究,公司被评为“国家高新技术企业”、“广东省高成长性企业”、“广州市科技小巨人企业”等荣誉。
        云宏信息坚持走国产自主的产品化道路,研发成功国内第一个拥有自主核心技术的云操作系统,打破国外企业对云计算关键技术的垄断,保障国家信息安全。深入行 业技术研究,云宏信息致力于提供技术领先、安全可控的云计算、大数据解决方案,助力中国制造2025、互联网+及创新创业。

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

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

原文链接:http://www.loongson.cn/news/company/455.html       笔者每天办公的主力用机是一台龙芯3A2000桌面电脑,只要是PC机上能做的事情,比如程序开发、办公软件、浏览器、高清视频、 ...查看全部
原文链接: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 个评论 • 188 次浏览 • 2017-01-24 10:10 • 来自相关话题

原文链接:用毛泽东思想指导龙芯的工作(2015) ——在2015年龙芯党支部民主生活会上的讲话         过去几年龙芯党支部的民主生活会都收到了很好的效果,尤其是大家提的意见对龙芯的工作很有好处,有些意 ...查看全部
原文链接:用毛泽东思想指导龙芯的工作(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具体做法背后的基本原理包括:以客户为中心,保持向前兼容;坚持生态建设,发动群众 斗地主;坚持低端入手,稳扎稳打向高端推进。
建议今年的民主生活会针对上述内容进行讨论,关键是要结合每个部门的具体实践,争取在民主生活会的讨论中对本部门的工作有所促进。今年推荐给大家读的书是光明日报出版社出版的《为什么是毛泽东》。
最后,还是用毛主席的话结束今天的报告:“我们正在前进。我们正在做我们的前人从来没有做过的极其光荣伟大的事业。我们的目标一定要达到。我们的目标一定 能够达到”。我们的目标是建立自主可控的软硬件体系,支撑国家安全和产业发展,这样的目标是极其光荣伟大的,是我们的前人,是任正非、柳传志、马云们没有 做过的。为了实现这样的目标,我们就应该很好地掌握并运用毛主席教给我们的群众路线、自力更生、实事求是的思想方法,并把它们和龙芯的具体实践紧密结合起 来。这样,我们的目标就一定能够达到。 

毛主席的诞辰日,龙芯的“人民节”

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

原文链接:毛主席的诞辰日,龙芯的“人民节” 12月26日,是我国伟大无产阶级革命家毛泽东的诞辰日,毛主席是近代以来中国伟大的爱国者和民族英雄,在他的有生之年改变了世界的格局,领导中国人民改变了自己的命运,重塑了中华民族的精神,创造了我 ...查看全部
原文链接:毛主席的诞辰日,龙芯的“人民节”

12月26日,是我国伟大无产阶级革命家毛泽东的诞辰日,毛主席是近代以来中国伟大的爱国者和民族英雄,在他的有生之年改变了世界的格局,领导中国人民改变了自己的命运,重塑了中华民族的精神,创造了我们的新中国。
 
        伟人,即便百年之后,仍然会被人纪念,龙芯中科总裁胡伟武就是毛主席的忠实粉丝之一。在他的领导下,龙芯的团队发展成为一支有道德、有灵魂、有理想、有战 斗力的团队。独立自主、自力更生的毛泽东精神在龙芯得到了传承。从2015年开始,为纪念伟大导师毛主席诞辰,龙芯将每年的12月26日定为公司的节日, 即“人民节”并参照国家法定节日办法放假一天。

2.jpg


        领袖的诞辰,人民的节日,去年龙芯的“人民节”还被很多网友以为只是个玩笑。今年我们继续过!
     (附:胡伟武署名文章《用毛泽东思想指导龙芯的工作》

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

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

一、初识Go语言         Go语言是Google公司于2009年正式推出的一款开源的编程语言,是由Robert Griesemer、Ken Thompson和Rob Pike等世界顶尖计算科学家精心打造的系统编程语言。Go语言最显著的特点是 ...查看全部

一、初识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/SimonWaldherr/GolangSortingVisualization)
      可将常见的冒泡、选择、插入和快排等排序算法的排序过程可视化。
排序过程可视化.png

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