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)组成。每个通信节点连接多个处理器核或功能单元,并与其他通信节点进行通信。通信链路是连接通信节点的物理通道,它可以采用不同的传输介质和技术,如金属线、光缆、无线传输等。

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

目录
相关文章
|
3月前
|
存储 缓存 前端开发
Django 后端架构开发:存储层调优策略解析
Django 后端架构开发:存储层调优策略解析
53 2
|
3天前
|
消息中间件 缓存 架构师
关于 Kafka 高性能架构,这篇说得最全面,建议收藏!
Kafka 是一个高吞吐量、高性能的消息中间件,关于 Kafka 高性能背后的实现,是大厂面试高频问题。本篇全面详解 Kafka 高性能背后的实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
关于 Kafka 高性能架构,这篇说得最全面,建议收藏!
|
13天前
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
30天前
|
存储 监控 分布式数据库
百亿级存储架构: ElasticSearch+HBase 海量存储架构与实现
本文介绍了百亿级数据存储架构的设计与实现,重点探讨了ElasticSearch和HBase的结合使用。通过ElasticSearch实现快速检索,HBase实现海量数据存储,解决了大规模数据的高效存储与查询问题。文章详细讲解了数据统一接入、元数据管理、数据一致性及平台监控等关键模块的设计思路和技术细节,帮助读者理解和掌握构建高性能数据存储系统的方法。
百亿级存储架构: ElasticSearch+HBase 海量存储架构与实现
|
1月前
|
机器学习/深度学习 存储 人工智能
用60%成本干80%的事,DeepSeek分享沉淀多年的高性能深度学习架构
【10月更文挑战第2天】近年来,深度学习(DL)与大型语言模型(LLMs)的发展推动了AI的进步,但也带来了计算资源的极大需求。为此,DeepSeek团队提出了Fire-Flyer AI-HPC架构,通过创新的软硬件协同设计,利用10,000个PCIe A100 GPU,实现了高性能且低成本的深度学习训练。相比NVIDIA的DGX-A100,其成本减半,能耗降低40%,并在网络设计、通信优化、并行计算和文件系统等方面进行了全面优化,确保系统的高效与稳定。[论文地址](https://arxiv.org/pdf/2408.14158)
51 4
|
1月前
|
存储 Docker 容器
ARM架构鲲鹏主机BClinux离线安装docker步骤
下载并安装适用于ARM架构的Docker CE二进制文件,解压后移动至/usr/bin目录。创建docker组,配置systemd服务脚本(docker.service、docker.socket、containerd.service),重载systemd配置,启动并启用docker服务。编辑daemon.json配置存储驱动、镜像加速地址等,最后拉取所需镜像。
44 0
|
1月前
|
存储 Kubernetes Go
Go语言项目组织架构
Go语言项目组织架构
|
2月前
|
机器学习/深度学习 测试技术 数据处理
KAN专家混合模型在高性能时间序列预测中的应用:RMoK模型架构探析与Python代码实验
Kolmogorov-Arnold网络(KAN)作为一种多层感知器(MLP)的替代方案,为深度学习领域带来新可能。尽管初期测试显示KAN在时间序列预测中的表现不佳,近期提出的可逆KAN混合模型(RMoK)显著提升了其性能。RMoK结合了Wav-KAN、JacobiKAN和TaylorKAN等多种专家层,通过门控网络动态选择最适合的专家层,从而灵活应对各种时间序列模式。实验结果显示,RMoK在多个数据集上表现出色,尤其是在长期预测任务中。未来研究将进一步探索RMoK在不同领域的应用潜力及其与其他先进技术的结合。
90 4
|
2月前
|
存储 监控 数据可视化
SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
【9月更文挑战第2天】SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
150 9
|
4月前
|
监控 安全 数据安全/隐私保护
ERP系统中的组织架构与权限管理解析
【7月更文挑战第25天】 ERP系统中的组织架构与权限管理解析
478 2