DP读书:鲲鹏处理器 架构与编程(三)高性能处理器的存储组织与片上互联

简介: DP读书:鲲鹏处理器 架构与编程(三)高性能处理器的存储组织与片上互联

1.3 服务器技术基础

1.3.1 高性能处理器的存储器组织与片上互联

1. 多核系统的存储结构

处理器的性能得到充分发挥就必须考虑存储器带宽,还有速度差速需要考虑,所以要进行存储结构设计。

高性能处理器采用多级存储器来解决多存储问题。

(采用二级Cache, 甚至三级Cache等效处理速度)

根据处理器Cache的配置情况,把多核处理器存储结构分为以下四种:

分类 Value
片内私有L1 Cache 结构 L1、L2两级组成(各核私有L1 Cache):L1 I Cache(指令)、L1 D Cache(数据)。多核共享的L2 Cache 在处理器芯片外。
片内私有L2 Cache 结构 L1 I 、D多核自行保留,L2 Cache 移至处理器片内,L2 Cache为各核私有
片内共享L2 Cache 结构 片内共享L2 Cache (取代私有结构),且片内访问速度更高
片内共享L3 Cache 结构 片内私有L2 Cache 结构的基础上增加片内多核共享L3 Cache,提升了存储系统性能

多核处理器的Cache一致性

Cache 一致性(Cache Coherency)

存放数据的多副本,输入输出共享Cache

维护关键点在于 跟踪每一块Cache 状态,读写操作以及总线事件。

//不一致的可能原因:
1.可写数据的共享:采用全写法以及回写法,引起其他Cache中副本内容不一样
2.输入、输出活动:输入/输出设备直接接在了系统总线上,输入/输出将会导致不同
3.核间线程迁移:核间线程迁移,把一个尚未执行完的线程调度到另一个空闲的处理器内核中执行。

多核系统中,Cache的一致性使用软件和硬件维护。

软件维护

硬件维护

程序员维护

编译器分析

«main»

硬件方式

1.总线侦听(Bus Snooping)

2.目录协议(Directroy)

«Speed»

Cache一致性协议

1.每个Cache分管自身Cache,广播同步

2.全局角度监管不同Cache的状态()

«few»

软件方式

预防

显示指令()

«low»

性能较大影响

硬件开销小

Cache(一致性维护)

UMA 架构 和 NUMA 架构

根据 处理器对内存储器的访问方式 将 共享存储器的计算机系统 分为两大类:

UMA(Uniform Memory Access, 统一内存访问)

NUMA(Non Uniform Memory Access,非同一内存访问)

UMA是对称多处理器计算机采用的组织方式架构,所有的处理器访问一个统一的存储空间,常以多通道方式组织。10

在UMA中,所有的处理器共享同一块内存,每个处理器访问内存的速度相同。这种架构设计相对比较简单,且可以实现较高的吞吐量。

NUMA架构属于分布式共享存储( Disributed Shared Memory ,DSM),存储器分布在不同节点上。

需要设置线程亲和性(Affinity)来实现,注意类型应用的普遍性,CC-NUMA(Cache Coherent Non-Uniform Memory Access,缓存一致性非统一内存访问),使用专门的一硬件来保证,使多处理器在单一系统下使用对称处理器架构一样的硬件层管理。

UMA(Non-Uniform Memory Access,非统一内存访问)是一种计算机内存架构设计。在NUMA中,处理器的内存访问速度与其距离内存位置的远近有关,因此,处理器访问内存的速度不是均匀的。NUMA架构通常被用于多处理器系统,例如对称多处理机(SMP)和多线程处理器。

1.NUMA架构的主要特点是内存控制器被集成到每个处理器核心中,因此每个处理器都能够直接访问其本地内存区域。本地内存是指与处理器位于同一NUMA节点上的内存。在NUMA中,处理器可以通过互联总线(Interconnect bus)访问其他处理器节点的内存,但是访问本地内存的速度更快。
2.由于NUMA架构的内存访问速度不均匀,因此在系统设计时需要考虑平衡内存访问的延迟和带宽。一种常见的策略是在处理器附近放置更多的内存,以便每个处理器能够更快地访问其所需的内存。
3.NUMA架构的优点是可以提供更高的内存带宽和更低的内存访问延迟。缺点是需要更多的内存和芯片,因此成本更高。另外,由于内存访问速度不均匀,因此需要进行优化以避免性能瓶颈。
4.NUMA架构在某些领域,例如高性能计算和大规模数据处理,表现出色。它也被用于一些现代的计算机系统,例如服务器和工作站。

多核处理器的核间通信机制

主流片上通信方式三种:总线共享Cache结构、交叉开关互联结构、片上网络结构。

1. 总线共享Cache结构

总线共享Cache结构是指多核处理器内核共享L2 Cache或L3 Cache,片上处理器内核、输入/输出接口以及主存储器接口通过连接各处理器内核的总线进行通信。这种方式的优点是结构简单、易于设计实现、通信速度高,但缺点是总线结构的可扩展性较差,只适用于处理器核心数较少的情况。

Inter的酷睿(CORE)、IBM的Power4\Power5,

等早期多核处理器采用总线共享结构。

2.交叉开关互联结构

交叉开关(Crossbar Switch)互联结构,提高数据带宽

交叉开关互联结构是一种用于多处理器系统的互连方式,它由一组二维阵列的开关组成,将多个处理器的总线连接起来。该结构采用空间分配机制,可以将多个处理器和存储器模块互连在一起,从而实现高速通信。

与总线互连方式相比,交叉开关互连结构具有更高的带宽和更低的延迟。它能够避免总线冲突,支持更多的处理器和存储器模块连接,并且具有更高的扩展性。然而,交叉开关互连结构也具有较高的复杂性和较高的硬件成本。
在交叉开关互连结构中,每个交叉开关可以连接多个处理器和存储器模块,通过交叉开关的路由功能,可以实现任意两个处理器或存储器模块之间的通信。该结构还可以通过多路复用技术来提高带宽利用率。

交叉开关互连结构是一种高性能、高扩展性的互连方式,适用于大规模多处理器系统。

比如AMD的速龙(Athlon)X2处理器,采用交叉开关开关核心与外部同信。

3. 片上网络结构

类似于并行计算机的互联网络结构,单芯集成大量资源

片上网络(Network on a Chip,NoC; On-chip Network)是一种用于多核处理器和片上系统的先进通信架构,通过在单芯片上集成大量的计算资源和通信网络,实现多个功能模块之间的高效通信。

片上网络借鉴了并行计算机的互连网络结构,将多个功能模块连接在一起。这些功能模块可以是处理核心、缓存、内存控制器等。每个功能模块通过路由器进行数据传输,通过多个路由器和通信链路实现并行、高带宽的通信。

>片上网络的优势在于可扩展性、低延迟和高带宽。它能够满足不断增长的处理核心数量和复杂的应用需求,同时优化通信性能和功耗。
>片上网络的设计旨在提供灵活性和可扩展性,以适应不同的芯片设计和应用需求。

片上网络可以采用多种拓扑结构,以下为几种常见的

环形拓扑、网状拓扑、树状拓扑…

class MeshToplogy:  
class TreeTopology:  
class StarTopology:  
class MeshNoCTopology:

片上网络包括计算子系统、通信子系统两部分。

计算子系统(Processing Elements,PE)和通信子系统(Communication Subsystem)组成。

计算子系统 PE(Processing Element,处理单元),PE可由处理器内核、专业硬件、存储器阵列等构成。

通信子系统由 交换(Swich)节点及节点间互联线组成,负责连接PE,实现高速通讯。

计算子系统由多个处理器核(Processor Core)和其他功能单元组成,它们被集成在一个芯片上。每个处理器核可以执行自己的指令和操作,并且可以通过通信子系统与其他处理器核进行通信。

通信子系统由多个通信节点(Communication Node)和通信链路(Communication Link)组成。每个通信节点连接多个处理器核或功能单元,并与其他通信节点进行通信。通信链路是连接通信节点的物理通道,它可以采用不同的传输介质和技术,如金属线、光缆、无线传输等。

在二维网状网络片上网络结构图中,计算子系统和通信子系统之间通过连接线相互连接,形成一个相互交织的网状结构。这种结构可以提供高带宽、低延迟的通信能力,并且具有高度并行性和可扩展性

目录
相关文章
|
6月前
|
缓存 C语言 计算机视觉
程序与技术分享:CPU0处理器的架构及应用
程序与技术分享:CPU0处理器的架构及应用
|
2月前
|
存储 Docker 容器
ARM架构鲲鹏主机BClinux离线安装docker步骤
下载并安装适用于ARM架构的Docker CE二进制文件,解压后移动至/usr/bin目录。创建docker组,配置systemd服务脚本(docker.service、docker.socket、containerd.service),重载systemd配置,启动并启用docker服务。编辑daemon.json配置存储驱动、镜像加速地址等,最后拉取所需镜像。
57 0
|
2月前
|
存储 Kubernetes Go
Go语言项目组织架构
Go语言项目组织架构
|
5月前
|
监控 安全 数据安全/隐私保护
ERP系统中的组织架构与权限管理解析
【7月更文挑战第25天】 ERP系统中的组织架构与权限管理解析
555 2
|
5月前
|
JSON 监控 数据格式
开发与运维函数问题之iLogtail原有架构中配置文件组织存在问题如何解决
开发与运维函数问题之iLogtail原有架构中配置文件组织存在问题如何解决
42 1
|
4月前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之如何管理企业的组织架构
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
5月前
|
监控 前端开发 UED
软件交付问题之架构让代码组织更有序,如何解决
软件交付问题之架构让代码组织更有序,如何解决
|
5月前
|
机器学习/深度学习 人工智能 并行计算
GPU 和 CPU 处理器的架构
CPU(中央处理器)和 GPU(图形处理单元)是计算机系统中最重要的两种处理器。它们各自的架构设计和技术体系决定了其在不同应用领域中的性能和效率。
167 1
|
5月前
|
数据挖掘
数据研发问题之组织架构如何解决
数据研发问题之组织架构如何解决
|
5月前
|
机器学习/深度学习 开发框架 数据可视化
我们可以从系统工程的角度来讨论如何优化组织架构,并给出一些可能涉及的Python应用领域的示例。
我们可以从系统工程的角度来讨论如何优化组织架构,并给出一些可能涉及的Python应用领域的示例。