鲲鹏CPU架构分析1:高性能处理器的存储器组织与片上互联

简介: 为了使处理器的处理能力得到充分发挥,存储系统必须能够提供与处理器性能相匹配的存储器带宽。 因此,处理器与主存储器之间的速度差距一直是处理器结构设计中必须考虑的问题。由于处理器内的核心数目增多,并且各核心采用共享存储器结构进行信息交互,对主存的访问需求进一步增加,在单处理器时代面临的存储墙问题依然存在,而且问题更加严重。 故必须针对多核处理器进行相应的存储结构设计,并解决好存储系统的效率问题。

鲲鹏CPU架构分析1:高性能处理器的存储器组织与片上互联
1.多核系统的存储结构

2.多核处理器的cache一致性

3.UMA架构与NUMA架构

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

为了使处理器的处理能力得到充分发挥,存储系统必须能够提供与处理器性能相匹配的存储器带宽。

因此,处理器与主存储器之间的速度差距一直是处理器结构设计中必须考虑的问题。由于处理器内的核心数目增多,并且各核心采用共享存储器结构进行信息交互,对主存的访问需求进一步增加,在单处理器时代面临的存储墙问题依然存在,而且问题更加严重。

故必须针对多核处理器进行相应的存储结构设计,并解决好存储系统的效率问题。

1.多核系统的存储结构

目前的存储系统设计仍然采用存储器分级的方式解决存储速度问题,高性能的处理器采用二级甚至三级cache提高存储系统的等效访问速度,并且处理器片内的cache容量尽可能增大。但多核系统中的存储系统设计必须平衡系统整体性能、功耗、成本、运行效率等诸多因素。

因此,在多核处理器设计时,必须评估共享cache和私有cache孰优孰劣、需要在芯片内设置几级Cache等因素,cache的大小也是需要考虑的重要问题。

根据多核处理器内的cache配置情况,可以把多核处理器的组织结构分成以下四种,如图1所示。

  • 片内私有L1 cache结构:简单的多核计算机的cache结构由L1和L2两级组成。处理器片内的多个核各自有自己私有的L1 cache,一般被划分为指令L1(L1-I)cache和数据L1(L1-D)cache。而多核共享的L2 cache则存在于处理器芯片之外。
  • 片内私有L2 cache结构:处理器片内的多个核仍然保留自己私有的指令L1 cache和数据L1 cache,但L2 cache被移至处理器片内,且L2 cache为各个核私有。多核共享处理器芯片之外的主存。
  • 片内共享L2 cache结构:结构与片内私有L2 cache的多核结构相似,都是片上两级cache结构。不同之处在于处理器片内的私有L2 cache变为多核共享L2 cache。多核仍然共享处理器芯片之外的主存。对处理器的每个核而言,片内私有L2 cache的访问速度更高。但在处理器片内使用共享的L2 cache取代各个核私有的L2 cache能够获得系统整体性能的提升。
  • 片内共享L3 cache结构:随着处理器芯片上的可用存储器资源的增长,高性能的处理器甚至把L3 cache也从处理器片外移至片内。在片内私有L2 cache结构的基础上增加片内多核共享L3 cache使存储系统的性能有了较大提高。下图给出了这种结构的示意。

image.png

2.多核处理器的cache一致性

在多核系统设计时必须考虑多级cache的一致性(cache coherency)问题。

对内存的基本操作包括读操作和写操作。cache一致性问题产生的原因是:在一个处理器系统中,不同的cache和主存空间中可能存放着同一个数据的多个副本,在写操作时,这些副本存在着潜在的不一致的可能性。

在单处理器系统中,cache一致性问题主要表现为在内存写操作过程中如何保持各级cache中的数据副本和主存内容的一致,即使有I/O通道共享cache,也可以通过全写法或写回法较好地解决cache一致性问题。

而在多核系统中,多个核都能够对内存进行写操作,而cache级数更多,同一数据的多个副本可能同时存放在多个cache存储器中,某个核的私有cache又只能被该核自身访问。即使采用全写法,也只能维持一个cache和主存之间的一致性,不能自动更新其他处理器核的私有cache中的相同副本。这些因素无疑加大了cache一致性问题的复杂度,同时又影响着多核系统的存储系统整体设计。

维护cache一致性的关键在于跟踪每一个cache块的状态,并根据处理器的读写操作及总线上的相应事件及时更新cache块的状态。

一般来说,导致多核处理器系统中cache内容不一致的原因如下:

可写数据的共享:某个处理器采用全写法或写回法修改某一个数据块时,会引起其他处理器的cache中同一副本的不一致。

I/O活动:如果I/O设备直接连接在系统总线上,I/O活动也会导致cache不一致。

核间线程迁移:核间线程迁移就是把一个尚未执行完的线程调度到另一个空闲的处理器核中去执行。为提高整个系统的效率,有的系统允许线程核间迁移,使系统负载平衡。但这有可能引起cache的不一致。

对于I/O活动和核间线程迁移而导致的cache不一致,可以分别通过禁止I/O通道与处理器共享cache以及禁止核间线程迁移来简单解决。因而多处理器中的cache一致性问题主要是针对可写数据的共享。

在多核系统中,cache一致性可以使用软件或者硬件维护。

软件方法采取的手段是“预防”。在使用软件方式维护cache一致性时,处理器需要提供专门的显式cache操作指令,如cache块拷贝、cache回收和使cache失效等指令,让程序员或编译器分析源程序的逻辑结构和数据相关性,判断可能出现的cache一致性问题,利用这些指令维护cache一致性。软件维护cache一致性的优点是硬件开销小,缺点是在多数情况下对系统性能有较大影响,而且需要程序员的介入。

由于引入cache的主要目的是提升存储器的等效访问速度,故多数情况下cache一致性由硬件维护。硬件方法采取的手段是“通过硬件发现和解决所发生的cache一致性问题”。不同的处理器系统使用不同的cache一致性协议维护cache一致性。cache一致性协议维护一个有限状态机,并根据存储器读写指令或者总线上的操作进行状态转移并完成相应cache块的操作,以维护cache一致性。

目前,大多数多核处理器采用总线侦听(bus snooping)协议,也有的系统采用目录(directory)协议解决多级cache的一致性问题。目录协议在全局的角度统一监管不同cache的状态;而在总线侦听方式中,每个cache分别管理自身cache块的状态,并通过广播操作实现不同cache间的状态同步。

3.UMA架构与NUMA架构

可以根据处理器对内存储器的访问方式将共享存储器方式的计算机系统分为两大类,即统一内存访问(Uniform Memory Access,UMA)架构和非统一内存访问(Non Uniform Menory Access,NUMA)架构。

UMA是SMP计算机采用的存储器架构,因此SMP系统有时也被称为UMA架构系统。如图2所示,在SMP架构下,系统中的每个处理器核地位相同,其看到的存储器和共享硬件也都是相同的。在UMA架构的多处理器系统中,所有的处理器都访问一个统一的存储器空间,这些存储器往往以多通道的方式组织。在UMA架构下,所有的内存访问都被传递到相同的共享内存总线上,不同的处理器访问存储器的延迟时间相同,任何一个进程或线程都可以被分配到任何一个处理器上运行。每台处理器还可以配备私有的cache,外围设备也可以通过某种形式共享。因而UMA架构可以在操作系统的支持下达到非常好的负载均衡效果,让整个系统的性能、吞吐量有较大提升。

但从存储器访问的角度看,SMP架构的缺点是可伸缩性较差。这是因为多个核使用相同的总线访问内存,随着处理器核数的增加,总线将成为系统性能提升的瓶颈。因而UMA架构只适用于处理器核数量相对较少的情况,不适用于系统中配置数十个甚至数百个处理器核的情况。

image.png

相关文章
|
8月前
|
人工智能 API 数据安全/隐私保护
Apifox 与 Apipost 的 API 文档引擎对比:底层架构、性能与可扩展性分析
深入探索市场上两大主流API工具——Apifox和Apipost的文档能力时,发现了令人惊讶的差距。这不仅仅是功能多寡的问题,更关乎开发效率与团队协作的质变。
|
5月前
|
Java API 开发工具
灵码产品演示:软件工程架构分析
本演示展示灵码对复杂软件项目的架构分析与文档生成能力。通过Qwen3模型,结合PlantUML,自动生成系统架构图、微服务时序图,并提取API接口文档,实现高效、智能的代码理解与文档输出。
333 5
|
5月前
|
存储 JSON 数据处理
ClkLog埋点与用户行为分析系统:架构升级与性能全面提升
随着越来越多企业在实际业务中使用 ClkLog,数据规模和分析需求也不断提升,部分用户日活已经超过10万,为了顺应这一趋势,ClkLog 秉持 “开放透明、持续演进”的理念,推出了迄今为止最重要的一次性能优化升级。新版本在大规模数据处理与复杂查询场景中,性能表现实现了跨越式提升。经过多轮研发与严格测试,新版本现已正式上线:在原有付费版 1.0 的基础上架构全面升级,并同步发布全新的 2.0 版本。为用户带来更强的性能与更广的适用场景。
|
10月前
|
人工智能 自然语言处理 数据可视化
两大 智能体框架 Dify vs Langchain 的全面分析,该怎么选?资深架构师 做一个彻底的解密
两大 智能体框架 Dify vs Langchain 的全面分析,该怎么选?资深架构师 做一个彻底的解密
两大 智能体框架 Dify vs Langchain 的全面分析,该怎么选?资深架构师 做一个彻底的解密
|
9月前
|
机器学习/深度学习 人工智能 算法
大型多模态推理模型技术演进综述:从模块化架构到原生推理能力的综合分析
该研究系统梳理了大型多模态推理模型(LMRMs)的技术发展,从早期模块化架构到统一的语言中心框架,提出原生LMRMs(N-LMRMs)的前沿概念。论文划分三个技术演进阶段及一个前瞻性范式,深入探讨关键挑战与评估基准,为构建复杂动态环境中的稳健AI系统提供理论框架。未来方向聚焦全模态泛化、深度推理与智能体行为,推动跨模态融合与自主交互能力的发展。
765 13
大型多模态推理模型技术演进综述:从模块化架构到原生推理能力的综合分析
|
6月前
|
存储 前端开发 JavaScript
如何开发设备管理系统中的经验分析报表板块 ?(附架构图+流程图+代码参考)
设备管理系统(EMS)助力企业高效管理设备生命周期,涵盖采购、维护到报废全流程。本文详解经验分析报表模块设计与开发,涵盖动态看板、点检、巡检、维修、保养及库存统计功能,提供代码示例与架构设计建议,提升设备管理效率与决策水平。
|
机器学习/深度学习 安全 算法
十大主流联邦学习框架:技术特性、架构分析与对比研究
联邦学习(FL)是保障数据隐私的分布式模型训练关键技术。业界开发了多种开源和商业框架,如TensorFlow Federated、PySyft、NVFlare、FATE、Flower等,支持模型训练、数据安全、通信协议等功能。这些框架在灵活性、易用性、安全性和扩展性方面各有特色,适用于不同应用场景。选择合适的框架需综合考虑开源与商业、数据分区支持、安全性、易用性和技术生态集成等因素。联邦学习已在医疗、金融等领域广泛应用,选择适配具体需求的框架对实现最优模型性能至关重要。
2415 79
十大主流联邦学习框架:技术特性、架构分析与对比研究
|
8月前
|
运维 监控 数据可视化
一文详解:工业软件“低代码开发平台”技术架构研究与分析
本文围绕工业软件低代码开发平台的机遇与挑战,提出基于自动化引擎的技术架构,由工具链、引擎库、模型库、组件库、工业数据网关和应用门户组成。文章分析了其在快速开发、传统系统升级中的应用模式及价值,如缩短创新周期、降低试错成本、解决资源缺乏和提升创新可复制性,为我国工业软件产业发展提供参考和支持。
|
8月前
|
负载均衡 Java API
基于 Spring Cloud 的微服务架构分析
Spring Cloud 是一个基于 Spring Boot 的微服务框架,提供全套分布式系统解决方案。它整合了 Netflix、Zookeeper 等成熟技术,通过简化配置和开发流程,支持服务发现(Eureka)、负载均衡(Ribbon)、断路器(Hystrix)、API网关(Zuul)、配置管理(Config)等功能。此外,Spring Cloud 还兼容 Nacos、Consul、Etcd 等注册中心,满足不同场景需求。其核心组件如 Feign 和 Stream,进一步增强了服务调用与消息处理能力,为开发者提供了一站式微服务开发工具包。
745 0
|
SQL 运维 BI
湖仓分析|浙江霖梓基于 Doris + Paimon 打造实时/离线一体化湖仓架构
浙江霖梓早期基于 Apache Doris 进行整体架构与表结构的重构,并基于湖仓一体和查询加速展开深度探索与实践,打造了 Doris + Paimon 的实时/离线一体化湖仓架构,实现查询提速 30 倍、资源成本节省 67% 等显著成效。
709 3
湖仓分析|浙江霖梓基于 Doris + Paimon 打造实时/离线一体化湖仓架构