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

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

目录
相关文章
|
4天前
|
缓存 监控 数据库
构建高性能微服务架构:后端开发的终极指南
【5月更文挑战第6天】 在现代软件开发的浪潮中,微服务架构以其灵活性、可扩展性和容错性引领着技术潮流。本文深入探索了构建高性能微服务架构的关键要素,从服务划分原则到通信机制,再到持续集成和部署策略。我们将透过实战案例,揭示如何优化数据库设计、缓存策略及服务监控,以确保系统的稳定性和高效运行。文中不仅分享了最佳实践,还讨论了常见的陷阱与解决之道,为后端开发者提供了一条清晰、可行的技术路径。
|
5天前
|
缓存 NoSQL Java
构建高性能微服务架构:Java后端的实践之路
【5月更文挑战第5天】在当今快速迭代和高并发需求的软件开发领域,微服务架构因其灵活性、可扩展性而受到青睐。本文将深入探讨如何在Java后端环境中构建一个高性能的微服务系统,涵盖关键的设计原则、常用的框架选择以及性能优化技巧。我们将重点讨论如何通过合理的服务划分、高效的数据存储策略、智能的缓存机制以及有效的负载均衡技术来提升整体系统的响应速度和处理能力。
|
11天前
|
API 持续交付 开发者
构建高性能微服务架构:挑战与解决方案
【4月更文挑战第29天】 随着现代软件开发的复杂性日益增加,微服务架构成为众多企业和开发者的首选。它通过将大型应用程序拆分为一系列小型、自治的服务来提供灵活性和可扩展性。然而,随之而来的是一系列的挑战,包括服务间通信、数据一致性、安全性和性能优化等。本文将深入探讨在构建高性能微服务架构过程中可能遇到的挑战,并提供针对性的解决方案,以帮助开发者克服这些难题,实现更加健壮和高效的系统。
|
13天前
|
监控 持续交付 数据库
构建高性能微服务架构:后端开发的新范式
【4月更文挑战第27天】 随着现代业务需求的多样化和快速迭代,传统的单体应用架构逐渐显得笨重且难以适应。本文旨在探讨一种新的后端开发范式——微服务架构,它以其灵活性、可扩展性和技术多样性成为当前软件开发的热点。我们将深入分析微服务的核心概念、实施策略以及在性能优化方面的实践技巧。通过本文,读者将获得如何构建一个既高效又稳定的微服务系统的知识,同时了解持续集成与容器化技术如何助力微服务的部署与管理。
|
13天前
|
监控 持续交付 数据库
构建高性能微服务架构:后端开发的新范式
【4月更文挑战第27天】 在当今快速演进的技术景观中,微服务架构已成为软件开发的一项关键策略。它允许开发团队以模块化的方式构建、部署和维护应用程序,从而提高了可伸缩性和灵活性。本文将深入探讨如何构建一个高性能的微服务架构,涵盖从选择合适的技术栈到优化服务的各个方面。通过实际案例和最佳实践的分享,我们将展示如何在保证系统稳定性的同时,提升应用的性能和响应速度。
|
15天前
|
JSON API 数据库
后端架构设计与优化:打造高性能应用后端
后端架构设计与优化:打造高性能应用后端
25 2
|
16天前
|
消息中间件 监控 Serverless
构建高性能微服务架构:后端开发的新趋势
【4月更文挑战第24天】 在现代软件开发的浪潮中,微服务架构已经成为了企业追求敏捷、可扩展和容错性的关键解决方案。本文将深入剖析如何构建一个高性能的微服务系统,涵盖关键的设计原则、技术选型以及性能优化策略。通过实例驱动的方法,我们将探讨如何利用容器化、服务网格、API 网关等技术手段,以及无服务器架构(Serverless)的兴起,来构建一个既灵活又高效的后端系统。
|
16天前
|
负载均衡 监控 开发者
构建高性能微服务架构:后端开发的终极指南
【4月更文挑战第24天】 在当今快速迭代和高并发的互联网环境中,构建一个高性能、可扩展且易于维护的后端系统显得至关重要。微服务架构作为解决复杂系统问题的有效方法,已经成为众多企业的首选架构模式。本文将深入探讨如何利用最新的后端技术和实践来构建高性能的微服务架构,包括服务拆分、容器化部署、服务发现与注册、负载均衡策略以及分布式事务管理等关键技术点,旨在为开发者提供一套全面的技术解决方案和实施建议。
|
17天前
|
消息中间件 运维 监控
构建高性能微服务架构:后端开发的实践指南
【4月更文挑战第23天】 在当今互联网应用的快速迭代与海量用户访问的背景下,传统的单体应用架构逐渐显露出其扩展性与维护上的局限性。微服务架构作为一种解决方案,以其服务的细粒度、独立性和弹性等特性,被广泛认为是提升系统可维护性和扩展性的有效途径。本文将深入探讨如何构建一个高性能的微服务架构,从基础理论到具体实践,为后端开发者提供一套系统的指导方案。我们将涵盖微服务设计原则、技术选型、性能优化、以及监控与故障处理等关键话题。
|
26天前
|
监控 负载均衡 API
构建高性能微服务架构:后端开发的最佳实践
【4月更文挑战第14天】 在当今快速发展的软件开发领域,微服务架构已成为构建可扩展、灵活且容错的系统的首选方法。本文深入探讨了后端开发人员在设计和维护高性能微服务时需要遵循的一系列最佳实践。我们将从服务划分原则、容器化部署、API网关使用、负载均衡、服务监控与故障恢复等方面展开讨论,并结合实际案例分析如何优化微服务性能及可靠性。通过本文的阅读,读者将获得实施高效微服务架构的实用知识与策略。