AMD CPU微架构分析

news2024/11/15 17:39:25

一、SoC架构

1.1 整体架构

Zeppelin

参考链接:wikichip: Zeppelin
通过infinity fabric总线将单die分成多die的SoC架构,每个Die包含两个CPU核(CCX)、2各DDR通道、USB、低功耗IO以及多个IFOP和IFIS serdes接口。
如下所述中,Zen系列中的每个die都是一个Zeppelin
在这里插入图片描述

Zen

Zen架构使用chiplet技术将多核系统划分为多个die互联封装的架构,单核整体还是一个SoC,包含4个CPU core(core complex,即CCX),南桥模块组(IO)和北桥模块组(DDR)。

  • 发布时间:2017年3月2日
  • 制成工艺:GF 14 nm
    参考链接:wikichip:Zen

SoC架构如图所示:
在这里插入图片描述

单die架构:

单die架构应用于Summit Ridge系列,即高端桌面应用场景。
在这里插入图片描述

  1. CCX
    CPU complex,每个CCX包含4个CPU core,CCX间可以通过Infinity Fabric通信(SCF+SDF)
    CCX间任务的分配由cache-corherent non-uniform memory access(ccNUMA-aware)实现,确保线程不会从一个CCX迁移到另一个是很重要的,由于CCX间数据通信需要额外的延迟,线程的搬移会引起不必要的性能损耗。

双die架构:

双Die架构应用于Ryzen Threadripper系列,即高性能桌面或工作站场景。
两个die通过Infinity Fabric协议处理,并经GMI(global memory interconnect)接口相连
在这里插入图片描述

  1. GMI接口
    die-to-die的IFOP接口,每个时钟cycle传输16B read + 16B write。

四die架构

四die用于EPYC系列,即服务器场景。EPYC系列的die和Threadripper系列相同。
在这里插入图片描述

  • 每个die有四组GMI接口,但只有和其他die最近的三组接口被使用
    AMD EPYC Tech Day, June 20, 2017
    如图是EPYC系列die互连某层的布局布线图,视图上方和下方的粉色布线是die的UMC出来的接口,视图中间的粉色和蓝色布线是双向的GMI链路,左下和右上die的连接被隐藏了,左上芯片和右上芯片摆放位置相同,下面的芯片摆放旋转180度。

  • die间延迟如图所示
    die0-3和die4-7分别为两路CPU。
    在这里插入图片描述

Zen+

在这里插入图片描述

Zen2

Zen2架构同样是多die结构,但基于Zen架构将IO和memory controller剥离出来单独成die,CPU core单独成die。因此每个core访问ddr的延迟均一样。注意PCIe并没有放在IO die中,而是在CCD中,每个CCD都有各自PCIe控制器,因此该架构的PCIe lane数量可以有很多。
将IO分离的另一个好处是,AMD可以通过先进制程将CPU做的更小,而物理接口并不会因为制程的提升导致性能很大的改进,这将极大的减小成本。

  • 发布时间:2019年
  • CPU die: TSMC 7nm
  • IO die: GF 14nm (server) ; GF 12nm (client)

CCD

CPU die即为core complex die(CCD),每个CCD有两个CCX,一个SMU 和一个GMI2接口模块。

  1. SMU
    system management unit,系统管理单元,读取温度、电压、电流数据,并调整CPU主频和电压,限制IO die的fast local closed loop和global loop。CCD和IO die间SMU的通信通过单lane的IFOP接口。
  2. GMI2
    global memory interconnect version 2,GMI2在GMI的基础上扩展了CCD和IO die连接的数据接口,即32 lane的双向IFOP接口;同时传输带宽增加到每个时钟cycle传输32B read + 16B write。

IO die

  • 8个DDR通道

1.2 服务器芯片

Rome

基于Zen2架构构建的服务器微处理器,总共有9个die,分别为1个IO die和8个CCD(core complex die)

二、CPU Core架构

三、互联方式

3.1 Die间互联

3.2 Die内互联

ONION (Fusion Compute Link)

GPU和CPU互联的一致性总线,用于cache snooping

GARLIC (Radeon Memory Bus)

GPU和Memory controller连接的非一致性总线,

3.3 通用互联总线

Infinity Fabric协议

参考链接:wikichip:Infinity Fabric
定义了AMD片间互联和片内互联的模块架构和互联关系,模块包括SDF (Scalable Data Fabric) 和SCF (Scalable Control Fabric),总线接口包括IFOP(infinity fabric on-package)和IFIS(infinity fabric intersocket)

连接模块

SDF用于各个子系统间业务数据流的通信,包括NUMA节点间、各子系统PHY间等,可以保证数据的一致性。
SCF用于处理各子系统控制信号,包括热管理、功耗管理、测试、安全等
通过这两种模块,AMD可以任意扩展基础计算模块。
在这里插入图片描述
(1)SDF
SDF可以保证数据的一致性,因此通过SDF的互联不会局限于在单Die内连接,也可以扩展到多个Die;总线拓扑既可以是点对点连接,也可以是中心岛结构
在这里插入图片描述

如图所示是一个点对点结构和中心岛结果混合的单die架构:

  • 两个CCX通过CCM (Cache-Coherent Master)连接到SDF平台,CCM提供core数据一致性访问维护机制;
  • IO Hub模块通过IOMS (I/O Master/Slave)接口和SDF相连。
  • DDR4通过UMC (Unified Memory Controller)与SDF相连,时钟频率和DRAM memclk相同
  • serdes接口通过CAKE (coherent AMD socket extender)与SDF连接,CAKE负责串行编码和解码,每个cycle发送128bit串行数据,时钟频率和DRAM memclk相同,serdes接口包括IFOP和IFIS。
  • 在SDF模块中,只可以通过CCM和IOMS访问DDR

(2)SCF
SCF通过单独的IFIS接口和外部的设备连接

在这里插入图片描述

总线接口

(1)IFOP
封装内die-to-die的连接,
在这里插入图片描述

  • 32bit单端data信号
  • 差分时钟
  • 能耗2 pJ/b
  • 串行全双工
    在这里插入图片描述

(2)IFIS
封装与封装间的通信
在这里插入图片描述

  • 16位差分data,每个CAKE时钟周期进行8次传输
  • 无时钟信号
  • 能效11pJ/b

四、GPU架构

Zen-based APU

  • GF 14nm
    基于Zen架构的加速器处理单元是一个完整die,包括一个CCX、一个Vega计算核心和其他部件通过infinity Fabric互联组成的系统,
    在这里插入图片描述
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/658553.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

干翻Mybatis源码系列之第十篇:Mybatis Plugins基本概念与拦截概述

给自己的每日一句 不从恶人的计谋,不站罪人的道路,不坐亵慢人的座位,惟喜爱耶和华的律法,昼夜思想,这人便为有福!他要像一棵树栽在溪水旁,按时候结果子,叶子也不枯干。凡他所做的尽…

vue jointjs 拓扑图 自定义shape 按需引入

只展示部分核心代码,完整代码见文章尾部连接 import jointjs/dist/joint.core.css;// 类库 包含: Paper Graph Cell CellView Element Link 等等 import { dia } from jointjs/src/core.mjs; // 样式库 包含多个分组(basic standard custom ...) import * as standa…

基于Hexo和Butterfly创建个人技术博客,(11) 使用插件增强博客站点能力

Butterfly官方网站,请 点击进入 本章目标: 掌握常用的plugin插件的用法,本文中是butterfly主题内置集成的第三方插件(部分插件需要再次安装); 一、建议开启的三方插件 KaTeX-数学公式 katex:enable: true# true 表示每一页都加载…

C# NX二次开发:通过UFUN函数获取刀具描述,目录号,库号等信息

今天要将的是,在NX中对CAM模块进行二次开发的时候,往往需要获取一些关于刀具使用的信息,这些信息用NXOPEN的的方法录制也可以录制出来,但是录制出来的代码,往往都是一种刀具类型会出现一个Builder。这样在你不知道有多…

淘宝买家订单API

目录 下载安装与运行 支持的订单读取方式 请求数据格式一 请求头示例 数据格式说明 数据格式示例 返回数据格式一 返回头示例 数据格式说明 数据格式示例 请求数据格式二(根据订单编号) 请求头示例 返回数据格式二(根据订单编号…

【随笔记】如何获得铁粉(仅供参考)

文章目录 一、前言二、秘籍2.1 良好的个人简介2.2 统一的文章格式2.3 详细的专栏划分2.4 有序的博客排版2.4.1 目录部分2.4.2 正文部分2.4.2.1 标题分级2.4.2.2 正文分段2.4.2.3 善用多级列表2.4.2.4 章节分割 三、总结 一、前言 在这篇随笔记的开始,我想声明一下&a…

ChatGPT将改变教育,而不是摧毁它

01 学校和大学的反应迅速而果断 就在 OpenAI 于 2022 年 11月下旬发布ChatGPT 的几天后,该聊天机器人被广泛谴责为一种免费的论文写作、应试工具,它很容易在作业中作弊。 美国第二大学区洛杉矶联合大学立即阻止了OpenAI网站从其学校网络访问。其他人很…

【Java】Java核心要点总结 67

文章目录 1. 浮点数运运算会有精度损失2. 构造方法特点 & 不能被重写3. 接口和抽象类的异同4. Object 类的常见方法5. hashCode() 有什么用 为什么要有 hashCode() 1. 浮点数运运算会有精度损失 这个和计算机保存浮点数的机制有很大关系。我们知道计算机是二进制的&#x…

面试时一定要确认该岗位的直属领导是否在场,如果不在,千万不要接offer,有坑!...

对于有心人来说,面试时可以看出许多隐形信息,比如下面这位网友的提醒: 面试时一定要确认这个岗位的直接汇报领导是否参与了面试,如果没有参与,千万不要接offer! 该职位的直接领导不参与面试,只能…

NLP——Topic Modelling

文章目录 A Brief History of Topic ModelsLatent Dirichlet Allocation (LDA)潜在狄利克雷分布核心思想LDA inputLDA output LDA 如何学习Sampling-based mothods 基于采样的方法Infer Topics For New Documents超参数 Variational methods 变分方法 Ev…

java协同过滤算法的校园二手图书网站springboot vue

用户:(商品推荐算法) 1)首页主要由导航栏、图书展示页、分页所组成。访客能浏览网站上的待出售图书的信息,但是若要购买,收藏图书,查看卖家信息则会自动跳转到登录界面,已经登录的用户则可以浏…

WPS AI最全申请与使用手册;AIGC制作游戏音乐;便宜快捷使用完整版SD;人人都能看懂的ChatGPT原理课 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🤖 面向虚拟世界的生成式AI市场全景图 作者在这篇文章中探讨了生成式AI在虚拟世界的应用,并绘制了 Market Map V3.0 (市场全景…

C++ 有用的资源||19道必须掌握的C++面试题

C 有用的资源 C 有用的资源 以下资源包含了 C 有关的网站、书籍和文章。请使用它们来进一步学习 C 的知识。 C 有用的网站 C Programming Language Tutorials − C 编程语言教程。C Programming − 这本书涵盖了 C 语言编程、软件交互设计、C 语言的现实生活应用。C FAQ −…

chatgpt赋能python:Python中的遍历方法详解

Python中的遍历方法详解 在Python中,遍历是处理数据的常见操作。Python提供了多种遍历方法,本文将逐一介绍这些方法的特点、适用场景及使用方法。 for循环 for循环是Python中最常用的遍历方法之一,可以遍历任何可迭代对象。 # 遍历列表 f…

栈的运用——中缀表达式[Java实现]

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:逐梦苍穹 ⭐所属专栏:数据结构。数据结构专栏主要是在讲解原理的基础上拿Java实现,有时候有C/C代码。 ⭐如果觉得文章写的…

C++【位图/布隆过滤器—海量数据处理】

文章目录 一、位图(1)位图概念介绍(2)简单模拟实现(3)位图应用 二、布隆过滤器(1)关于布隆过滤器概念及介绍(2)布隆过滤器的使用场景(3&#xff0…

干翻Mybatis源码系列之第十一篇:Mybatis拦截器获取被拦截对象的方法和参数

给自己的每日一句 不从恶人的计谋,不站罪人的道路,不坐亵慢人的座位,惟喜爱耶和华的律法,昼夜思想,这人便为有福!他要像一棵树栽在溪水旁,按时候结果子,叶子也不枯干。凡他所做的尽…

DJ4-1 网络层概述

目录 一、网络层提供的功能 二、路由和转发 三、数据平面和控制平面 四、网络层的服务模型 一、网络层提供的功能 网络层实现主机与主机之间的通信 从发送方主机传输报文段到接收方主机: 发送方主机封装报文段 (segments) 为数据报 (datagrams)接收方主机递交…

Linux常用命令——gcov命令

在线Linux命令查询工具 gcov 测试程序的代码覆盖率的工具 补充说明 gcov命令是一款测试程序的代码覆盖率的工具。 语法 gcov(选项)(参数)选项 -h:显示帮助信息; -v:显示版本信息; -a:输出所有的基本块的执行计数…

SpringMVC 中的常用注解和用法

观前提示:本篇博客演示使用的 IDEA 版本为2021.3.3版本,使用的是Java8(又名jdk1.8) 电脑使用的操作系统版本为 Windows 10 目录 前言 Spring Boot Spring MVC 1. MVC 1.1 MVC 和 Spring MVC 之间的关系 2. 创建 Spring MVC 项目 创建一个 SpringMVC 项目 1. new projec…