本文用于记录与学习。参考

  1. 《手把手教你设计CPU.RISC-V处理器》(胡振波)
  2. https://zhuanlan.zhihu.com/p/469793124
  3. https://zhuanlan.zhihu.com/p/495420600
  4. https://www.ednchina.com/news/20171215ARM.html
  5. https://zhuanlan.zhihu.com/p/434062654
    如有侵权,联系删除

一、概述

1.1 CPU相关概念

  1. CPU,全称为中央处理器单元,简称为处理器
  2. “处理器核”或“Core”是指处理器内部最核心的部分,是真正的处理器内核;而“处理器”或“CPU”往往是一个完整的 SoC,包含了处理器内核和其他的设备或者存储器。
  3. 指令集是一组指令的集合,而指令是指处理器进行操作的最小单元(譬如加减乘除操作或者读/写存储器数据)
  4. 区分 CPU的主要标准:CPU 的灵魂——指令集架构(Instruction Set Architecture,ISA)
  5. 为了让软件程序员能够编写底层的软件,指令集架构不仅仅是一组指令的集合,它还要定义任何软件程序员需要了解的硬件信息,包括支持的数据类型、存储器(Memory)、寄存器状态、寻址模式和存储器模型等。
  6. 微架构:微架构是将指定指令集在处理器中如何执行实现的方法,同现实生活中解决相同问题有很多途径的原理一样:同一指令集架构可以有不同的微架构,因同一指令可以通过不同的电路单元或组合来实现。例如基于ARMv6指令集架构所构建的Cortex-M0等微架构

1.2 指令集架构(ISA)

指令集架构是一种标准规范,其构成处理器底层硬件与运行于其上的软件之间的桥梁与接口。微架构是将指定指令集在处理器中如何执行实现的方法,同现实生活中解决相同问题有很多途径的原理一样:同一指令集可以有不同的微架构,因同一指令可以通过不同的电路单元或组合来实现。
指令集架构示意:

主要分为复杂指令集(Complex Instruction Set Computer,CISC)和精简指令集(Reduced Instruction Set Computer,RISC),两者的主要区别如下。

  • CISC 不仅包含了处理器常用的指令,还包含了许多不常用的特殊指令。其指令数目比较多,所以称为复杂指令集。
  • RISC 只包含处理器常用的指令,而对于不常用的操作,则通过执行多条常用指令的方式来达到同样的效果。由于其指令数目比较精简,所以称为精简指令集。
    主流架构:

二、国内公司CPU设计流派

2.1 CISC复杂指令集

X86

北大众志:
北京北大众志微系统科技有限责任公司成立于 2002 年 11 月,是国家集成电路设计行业的重要骨干企业。2005 年,AMD 与中国政府达成了协议,科技部指定北大微电子中心接收AMD Geode-2 处理器的技术授权,AMD 的处理器无疑是 x86 架构,中国因此获得了 x86 技术。不过Geode 处理器属于 AMD 嵌入式处理器,因此 AMD 授权给北大的 x86 技术属于嵌入式架构。
兆芯:
核心的 x86 架构是 Intel 和 AMD 公司的核心技术,美国政府也会严格控制其技术的授权。不过,除了 Intel 和AMD,另外一家中国台湾公司威盛(VIA)也曾经拥有 x86 架构授权。兆芯自主研发的 ZX-C 处理器于 2015 年 4 月量产,28nm 工艺,4 核处理器,主频可达 2.0GHz,并且支持国密算法加密。2017 年兆芯宣布其最新一代 ZX-D 系列 4核和8核通用处理器已经成功流片,并透露将在 2018 年推出 16nm 的 ZX-E 8 核 CPU。
海光:
2016 年,AMD 宣布与中国天津海光投资公司达成了协议,将 x86 技术授权给海光公司,获得授权费,并且双方还会成立合资公司,授权其生产服务器处理器。据称,为了打开中国高性能服务器市场,AMD 这次授权给中国公司的 x86 很可能是最尖端的 x86 技术。

MCS-8051

2.2 RISC精简指令集

MIPS

龙芯:
龙芯 CPU 由中国科学院计算技术所龙芯课题组研制,由中国科学院计算技术所授权的
北京神州龙芯集成电路设计公司研发。

  • 龙芯 1 号的频率为 266MHz,最早在 2002 年开始。
  • 龙芯 2 号的频率最高为 1GHz。
  • 龙芯 3A 系列是国产商用 4 核处理器。最新龙芯3A3000 基于中芯 28nm FDSOI 工艺,设计为 4
    核 64 位,主频为 1.5GHz,功耗仅为 30W,非常适合笔记本平台。
  • 龙芯 3B 系列是国产商用 8 核处理器,主频超过1GHz,支持向量运算加速,峰值计算能力达到每秒 1.28×10 3 亿次浮点运算,具有很高的性能功耗比。龙芯 3B 系列主要用于高性能计算机、高性能服务器、数字信号处理等领域。

君正:
与龙芯着力于桌面 PC 处理器不同,北京君正是国内较早专注于可穿戴、物联网领域的本土 IC设计公司之一。君正拥有十多年的芯片设计经验和技术积累,其最大的特点就是具有较高的性能功耗比。国内第一批上市的智能手表包括果壳的第一代智能手表、土曼一代、土曼二代智能手表等都采用了君正的方案。

Power

中晟宏芯:
蓝色巨人 IBM 的 Power 架构一直是高性能的代言。IBM 于 2013 年联合 NVIDIA 等公司成立OpenPower 开放联盟,其他公司也可以获得 Power 架构授权。此后还推动成立了中国POWER 技术产业生态联盟,与多家中国公司签署了授权协议,中晟宏芯就是其中的一家。

Alpha

申威:
申威对自主的 Alpha 架构在不断深化升级,在双核Alpha基础上拓展了多核架构和SIMD等特色扩展指令集,主要面向高性能计算、服务器领域,在 2016年国际超算大会评比中,基于申威 26010 处理器的“神威太湖之光”超级计算机系统首次亮相并夺冠,其峰值性能达每秒 12.5×10 8 亿次浮点运算,成为世界首台运行速度超 10 9 亿次的超级计算机。

ARM

飞腾:
飞腾公司是国防科技大学高性能处理器研究团队建立的企业,国防科大多年来在CPU 领域的耕耘积累了雄厚的技术实力。2016 年天津飞腾公布了最新产品 FT2000,它最早亮相于 2015 年的HotChips 大会,代号“火星”,定位于高性能服务器、行业业务主机等。FT2000采用 ARMv8 指令集,但是使用自研内核(微架构),不同于市面上 ARMv8 的 Cortex-A53\A57\A72(直接购买ARM公司的内核)

三、CPU相关概念内在联系(以ARM为例)

3.1 ARM架构处理器分类

  • 公版ARM: 由 ARM 公司基于指令集架构开发并出售的 IP,也俗称为公版 ARM,如Cortex-A系列。
  • 自研定制ARM: 由芯片公司基于 ARM 架构授权自主开发的私有内核,也俗称为定制自研 ARM。

3.2 ARM公司盈利模式

  • 内核层级授权(公版): 授权“ARM 处理器 IP(公版ARM)”给其他的芯片生产商(合作伙伴),收取对应的前期授权费(Upfront License Fee),以及量产后的版税。
  • 架构层级授权(自研): 转让“ARM 架构授权”给其他的芯片生产商(合作伙伴),收取对应的架构授权费。
  1. 两种盈利模式分别对应两种ARM架构处理器
  2. 华为拥有ARMv8指令集架构永久授权,但并不代表能继续开发处理器,因为从华为研发的处理器来看,都是用的公版ARM,并没有基于指令集架构自研的微架构

3.3 举例

指令集架构:
ARMv1、ARMv2、ARMv3、ARMv4、ARMv5、ARMv6、ARMv7、ARMv8
微架构:
基于ARM架构的公版ARM:

  • Cortex-M0微架构,基于ARMv6指令集架构,代表:STMF0系列
  • Cortex-M3微架构,基于ARMv7指令集架构,代表:STMF1系列
  • Cortex-M4微架构,基于ARMv7指令集架构,代表:STMF4系列
  • Cortex-A55微架构,基于ARMv8.2-A指令集架构,代表:荣耀30s搭载的麒麟810处理器中有6个Cortex-A55小核(即公版ARM)

基于ARM架构的自研私有内核:

  • Twister微架构,基于ARMv8-A 指令集架构,代表:苹果iphone6s搭载的A9处理器中有2个twister小核
  • Kryo微架构,基于ARMv8-A指令集架构,代表:三星S7搭载的高通骁龙820中有2个Kryo小核

3.4 当前ARM指令集架构发展情况

ARM 公司自 2004 年推出 ARMv7 指令集架构时,便摒弃了以往“ARM+数字”这种微架构命名方法(之前的处理器统称经典处理器系列),启用 Cortex 来命名,并将 Cortex 系列细分为三大类

  • Cortex-A:面向性能密集型系统的应用处理器核。
  • Cortex-R:面向实时应用的高性能核。
  • Cortex-M:面向各类嵌入式应用的微控制器核。