欢迎光临散文网 会员登陆 & 注册

【知乎】龙芯通用 CPU架构的发展(国产CPU系列)

2023-08-21 00:44 作者:小林家的垃圾王R  | 我要投稿


龙芯通用 CPU架构的发展(国产CPU系列)


星边疆


希望亲眼见到人类步入星际文明的硬核科幻迷、RPG游戏开发者

关注他

9 人赞同了该文章

根据龙芯官网的介绍:

龙芯中科主营业务为处理器及配套芯片的研制、销售及服务,主要产品与服务包括处理器及配套芯片产品与基础软硬件解决方案业务。目前,龙芯中科基于信息系统和工控系统两条主线开展产业生态建设,面向网络安全、办公与业务信息化、工控及物联网等领域与合作伙伴保持全面的市场合作,系列产品在电子政务、能源、交通、金融、电信、教育等行业领域已获得广泛应用。

2001年,中国科学院计算技术研究所开始研制龙芯处理器,得到了中科院知识创新工程、863、973、核高基等项目大力支持,完成了十年的技术积累。

2010年,在中国科学院和北京市政府共同牵头出资支持下,龙芯开始市场化运作,对龙芯处理器研发成果进行产业化。

通用处理器是信息产业的基础部件,是电子设备的核心器件。通用处理器是关系到国家命运的战略产业之一,其发展直接关系到国家技术创新能力,关系到国家安全,是国家的核心利益所在。

龙芯中科面向国家信息化建设需求,面向国际信息技术前沿,以创新发展为主题、以产业发展为主线、以体系建设为目标,坚持自主创新,全面掌握CPU指令系统、处理器IP核、操作系统等计算机核心技术,打造自主开放的软硬件生态和信息产业体系,为国家战略需求提供自主、安全、可靠的处理器,为信息产业的创新发展提供高性能、低成本的处理器和基础软硬件解决方案。

可以看出龙芯做芯片的目的是为了提供自主、安全、可靠的处理器,让中国人用上中国人的处理器和产业生态。

可以看出龙芯选择了风险最大也是最自由的一条路,因为处理器的发展、维护不仅仅与硬件相关,与软件生态更是息息相关。如果龙芯没有苹果一样的号召力,没有形成利益稳固的用户团体,软件商的软件又不支持自主指令集,仅靠龙芯独自维护软件生态只有死路一条。

下面的内容主要翻译自英文维基百科。

基于MIPS 架构的龙芯处理器最初由中国科学院计算技术研究所(ICT)开发。总设计师为胡伟武教授。第一个龙芯芯片的开发始于 2001 年。目前龙芯项目的目标是开发“中国的高性能通用微处理器”,该发展得到了第十个和第十一个 五年计划的资金支持。

https://link.springer.com/article/10.1007/s11432-015-5431-6link.springer.com/article/10.1007/s11432-015-5431-6

2010年4月龙芯科技股份有限公司正式成立并落户中国北京中关村。公司是ICT 与北京芯片设计公司 BLX IC Design Corporation之间的公私合作伙伴关系。BLX本身是ICT的衍生公司,于2002年与江苏中意集团成立。由于龙芯是一家无晶圆厂设计公司,因此意法半导体负责制造和销售处理器。

自2020年以来,龙芯与统信、申威合作开发和推广基于Debian Linux的Deepin操作系统,以减少中国电脑对微软Windows的依赖。

2021年龙芯在上海证券交易所科创板申请首次公开募股。该公司寻求筹集 5 亿美元。当时的细节显示,龙芯在成立的前 10 年每年需要4亿元人民币 的资金,而公司在 2015 年才实现收支平衡。

龙芯拥有三个主要的处理器内核系列,

  • GS1xx:带硬件分频器的基本嵌入式 MIPS32 内核。3- (GS132) 或 5- (GS132E) 级流水线。

  • GS2xx:高端嵌入式 MIPS32 (GS232/GS232E) 或 MIPS64 (GS264) 内核。

    • GS232 最多有 5 级流水线。500兆赫。L1 = 16KB。GS 232 主要用于龙芯一号产品。

    • GS232E/GS264 最多有 10 级流水线。1000 兆赫。L1 = 16 KB,L2 = 4 MB 共享。乱序执行。

  • GS464系列:具有四路超标量乱序执行的MIPS64内核。该设计起源于龙芯2F处理器。它首先被广泛应用于龙芯3A处理器,之后也被用于龙芯2系列

    • GS464 支持 MIPS64 R2 + LoongMMI(2E 和 2F 中的两个不同版本)

    • GS464V 于 2010 年随龙芯 3B 首次推出,是具有矢量功能的 GS464。

    • GS464E 是 GS464 的改进版本。在 GS464 处理器发现缺陷后,开发于 2012 年开始。核心有多项改进,包括更大的缓存和更好的分支预测等,并且得到了更好的优化。内核被扩展以支持 LoongISA(除了 MIPS64 R2 架构之外)。

    • GS464EV 是 GS464 系列的发展,首先被 3A4000 处理器使用

    • LA464 是 GS464 的发展,支持 LoongArch。虽然 3A5000 的初始核心被认为是 GS464,但由于指令集不兼容,龙芯在 2021 年 8 月的文档中将 3A5000 核心更名为 LA464。

所有龙芯CPU和X86的桌面级CPU一样都是小端执行。

龙芯根据架构的不同,存在 3 个处理器系列。

  • 龙芯一号,用于消费电子和嵌入式应用

  • 龙芯二号,用于嵌入式应用和低性能个人计算机的单核处理器

  • 龙芯三号,用于更高性能计算机、高性能计算和服务器的多核处理器

龙芯第一款处理器龙芯1号设计于2001年,2002年发布,是一款32位CPU,主频266MHz。它采用 0.18 微米 CMOS 工艺制造,具有 8 KB L1D、8 KB L1I 和一个 64 位浮点单元,能够达到 200 双精度 MFLOPS。龙芯一号系列芯片使用 GS132 或 GS232 内核。

龙芯 X 是龙芯一号中使用的 GS232 核心的抗辐射版本

龙芯 2 是 MIPS III 兼容处理器系列。它为龙芯架构增加了 64 位能力。由于与龙芯 3 系列共享 GS464 内核,后来的龙芯 2 处理器迁移到 MIPS64 兼容。虽然早期的 2 系列处理器是单核,但它们发展成为多核。

龙芯二号的发展规划是从CPU发展为SOC。龙芯 2E (2006) 是一个 CPU,2F (2007) 集成了北桥,2G (2008) 在 CPU/北桥和集成 GPU/南桥之间有一个超传输链路,并且2H (2009) 将所有这些功能集成到一个 SOC 中。2F 的设计是 GS464 核心的基础。 2G采用单GS464内核;2H采用GS464V内核,作为初期龙芯3B的单核版本。

龙芯 3 系列处理器是“……专为高性能台式机、服务器设计的多核 CPU”。它们被设计为第一款具有多核的龙芯处理器。处理器被设计为使用 LoongISA——即具有额外扩展的 MIPS64 ISA。设计人员还尝试优化芯片上的 x86 翻译。

第一个生产处理器是龙芯 3A,它使用 4 个 GS464 内核。65 nm 龙芯 3A1000 能够以接近 1 GHz的时钟速度运行,首先是4 个 CPU 内核(~15 W),然后是 8 个内核(40 W)。

2010 年 4 月,龙芯 3A1000 发布,支持 DDR2/3 DRAM。

设计人员指出,他们将生产具有增强处理和矢量功能的 8 核 3B 芯片,以及用于服务器应用的多达 16 核的 3C 芯片。 8 核龙芯 3B 被注意到使用升级的 GS464V 内核,具有扩展的矢量功能。随后是使用 16 个 GS464V 内核的 Loonson 3C。

由于设计错误,3B1000 和相关的 2I 作为处理器都失败了。

2013 年 5 月,3C 的开发暂停,转而开发 3A2000 处理器。

2015 年,使用增强型 GS464E 内核发布了 3A1500 和 3B2000。改进后的微体系结构内核提供了更好的性能,据报道速度是 3A1000 的 3 倍,并且还引入了 LoongISA 增强型指令集。 3A1500 用于嵌入式应用,而 3B2000 用于服务器和 PC。

2017年龙芯发布3A3000。3A3000 采用四核 64 位设计,主频为 1.5 GHz,功耗仅为 30 W。

据报道,3A3000 的性能相当于英特尔 J1900处理器(2013 年发布)。

2019 年底发布了 3A 和 3B 4000 系列。他们使用了升级后的 GS464EV 微架构。处理器设计有四个内核、8MB 的 L3 缓存和 1.8 GHz 至 2 GHz 之间的工作时钟。

2021年7月,龙芯3 5000系列发布。该系列处理器是龙芯首款自主研发的ISA“LoongArch”。宣布的处理器包括 3A5000,一个四核台式机 CPU 和 3C5000L,一个十六核服务器 CPU,基于单个封装中的四个 3A5000。

据报道,这两款 CPU 均采用 12 纳米工艺制造。虽然注意到该处理器最初使用的是 GS464V 内核,但由于与以前的版本不兼容,该内核于 2021 年 8 月更名为 LA464。

The Register报道说,“据说 3A5000 比之前的 3A4000 快 50%,能效高 30%”。

专注于 Linux 的新闻网站Phoronix注意到一些人,可能来自龙芯开发和支持人员,一直在使用 Phoronix 测试套件和 http://OpenBenchmarking.org 测试龙芯 3A5000 系列硬件,因此有一些早期的基准测试结果与对此感兴趣的人分享新的ISA。

Phoronix 相当不屑地总结了第一款 LoongArch ISA 芯片。与英特尔、AMD 和 Arm 等公司的现代竞争相比,“性能并没有那么令人印象深刻”,其报告称。它链接了C-Ray、Perl和混合计算套件的基准测试结果/比较——而龙芯 3A5000 在其中任何一个中都不突出。单击这些搜索结果以获取所有已上传的基准测试,但如果将其与现代 Intel/AMD 甚至 Arm 竞争产品进行比较,总体性能并没有那么令人印象深刻。以3A5000 上的简单C-Ray 基准测试为例,大约 393 秒......与通过 OB获得的 C-Ray 综合排名相比,这使得这款新的中国 CPU 的速度接近基于 arm 的 Phytium FT-2000 或 intel Core i3 8109U / Core 2 Quad Q9500 / Core i5 750。

Cray-lx5000ll Benchmarks - OpenBenchmarking.orgopenbenchmarking.org/result/2107199-IB-CRAYLX50092

First benchmarks of China's Loongson 3A5000 CPU surfacehexus.net/tech/news/cpu/148149-first-benchmarks-chinas-loongson-3a5000-cpu-surface/

2022 年,龙芯宣布了 龙芯3A6000 系列处理器。更新后的处理器架构将使用“LA664”内核,说:“单核性能将与 AMD 的 Zen 3 和英特尔的 Tiger Lake 架构相媲美”。

MIPS时期

龙芯开始使用MIPS64 指令集架构(ISA)。内部微架构由中国科学院自主研发。该系列的早期实现缺少MIPS Technologies获得专利的四个指令(US4814976A)以避免法律问题。

2007 年, MIPS 公司与 ICT 达成交易。STMicroelectronics 为龙芯购买了 MIPS 许可证,因此该处理器可以宣传为基于MIPS或MIPS 兼容。

2009 年 6 月,ICT 直接从MIPS公司获得了 MIPS32 和 MIPS64 架构的许可。

2011 年 8 月,龙芯科技有限公司从 MIPS 公司获得 MIPS32 和 MIPS64 架构许可,用于继续开发基于 MIPS 的龙芯 CPU 内核。

LoongISA时期

2015年龙芯3A2000采用LoongISA 1.0,扩展指令集,是 MIPS64 版本 2 的超集。它可以分解为:

  • LoongEXT,通用扩展,148 条指令

  • LoongVZ,MIPS64 版本 5 中引入的“VZ”系统的虚拟化扩展,5 条指令

  • LoongBT,更快的 x86 和ARM二进制翻译,213 条指令

  • LoongSIMD,原名LoongMMI(在龙芯2E/F),为128位SIMD,1014条指令

  • 来自 MIPS 第 5 版的 MIPS SIMD 架构 (MSA)、DSP 和 VZ 模块

LoongISA 指令作为 GS464E 内核的一部分引入。二进制翻译指令具有加速Intel x86 CPU 仿真的特定优势,但芯片面积成本的只增加 5% 。新指令帮助QEMU虚拟机管理程序将指令从 x86 转换为 MIPS,据报道性能损失仅为 30%。

LoongArch时期

随着龙芯 3 5000 系列的发布,龙芯在 2021 年转向了自己的处理器指令集架构(ISA)。

一位龙芯开发人员将其描述为“......一个新的RISC ISA,有点像 MIPS 或RISC- V。

LoongArch 包括一个简化的 32 位版本(LA32R),一个标准的 32位版本 (LA32S) 和 64 位版本 (LA64)”。陈述的理由是使龙芯和中国不依赖外国技术或授权来开发其处理器能力,同时不侵犯任何技术专利。

ISA 被称为“MIPS64r6 的一个分支”,因为从指令列表来看缺乏变化。2021 年 8 月,Linux维护者抱怨提交的 LoongArch 代码是“……MIPS 代码的盲目复制……”,但“只是名称不同”。

LoongArch ISA 手册已于 2021 年 8 月部分可用,其第一卷记录了基本架构。根据LoongArch手册,ISA使用了MIPS的特权模型和IRQ机制,其他部分大多遵循RISC-V的做法:去掉了分支延迟槽,改变了指令编码。与 LoongISA 类似,指令集扩展(SIMD 和二进制翻译)尚未记录,因此此功能无法使用。

The Register在 2021 年 11 月报道称,怀疑 LoongArch 结合了 MIPS 和 RISC-V 的最佳部分,以及自定义指令。来自 Tom's Hardware 的评论重申了 LoongArch 的 Linux 内核代码是“用于其基于 MIPS 的芯片的相同代码”的问题;他们进一步指出,龙芯“即使在纸面上也未能向软件开发人员展示其架构的优势”。

LoongArch 微架构的文档很少,社区猜测了很多功能。社区注意到 LoongArch 与 MIPS 和 RISC-V 的相似之处,并且以前的 Linux 内核提交与 MIPS 代码相同。

2022 年 2 月,开发人员提交了补丁,允许在LLVM 15.0 中编译到 LoongArch。





编辑于 2022-11-22 21:32・IP 属地湖南

龙芯


中央处理器 (CPU)


赞同 9

分享

发布一条带图评论吧


【知乎】龙芯通用 CPU架构的发展(国产CPU系列)的评论 (共 条)

分享到微博请遵守国家法律