处理器的性能得到充分发挥就必须考虑存储器带宽,还有速度差速需要考虑,所以要进行存储结构设计。
高性能处理器采用多级存储器来解决多存储问题。
(采用二级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 Coherency)
存放数据的多副本,输入输出共享Cache
维护关键点在于 跟踪每一块Cache 状态,读写操作以及总线事件。
//不一致的可能原因:
1.可写数据的共享:采用全写法以及回写法,引起其他Cache中副本内容不一样
2.输入、输出活动:输入/输出设备直接接在了系统总线上,输入/输出将会导致不同
3.核间线程迁移:核间线程迁移,把一个尚未执行完的线程调度到另一个空闲的处理器内核中执行。
多核系统中,Cache的一致性使用软件和硬件维护。
软件维护
根据 处理器对内存储器的访问方式 将 共享存储器的计算机系统 分为两大类:
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结构、交叉开关互联结构、片上网络结构。
总线共享Cache结构是指多核处理器内核共享L2 Cache或L3 Cache,片上处理器内核、输入/输出接口以及主存储器接口通过连接各处理器内核的总线进行通信。这种方式的优点是结构简单、易于设计实现、通信速度高,但缺点是总线结构的可扩展性较差,只适用于处理器核心数较少的情况。
Inter的酷睿(CORE)、IBM的Power4\Power5,
等早期多核处理器采用总线共享结构。
交叉开关(Crossbar Switch)互联结构,提高数据带宽
交叉开关互联结构是一种用于多处理器系统的互连方式,它由一组二维阵列的开关组成,将多个处理器的总线连接起来。该结构采用空间分配机制,可以将多个处理器和存储器模块互连在一起,从而实现高速通信。
与总线互连方式相比,交叉开关互连结构具有更高的带宽和更低的延迟。它能够避免总线冲突,支持更多的处理器和存储器模块连接,并且具有更高的扩展性。然而,交叉开关互连结构也具有较高的复杂性和较高的硬件成本。
在交叉开关互连结构中,每个交叉开关可以连接多个处理器和存储器模块,通过交叉开关的路由功能,可以实现任意两个处理器或存储器模块之间的通信。该结构还可以通过多路复用技术来提高带宽利用率。
交叉开关互连结构是一种高性能、高扩展性的互连方式,适用于大规模多处理器系统。
比如AMD的速龙(Athlon)X2处理器,采用交叉开关开关核心与外部同信。
类似于并行计算机的互联网络结构,单芯集成大量资源
片上网络(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)组成。每个通信节点连接多个处理器核或功能单元,并与其他通信节点进行通信。通信链路是连接通信节点的物理通道,它可以采用不同的传输介质和技术,如金属线、光缆、无线传输等。
在二维网状网络片上网络结构图中,计算子系统和通信子系统之间通过连接线相互连接,形成一个相互交织的网状结构。这种结构可以提供高带宽、低延迟的通信能力,并且具有高度并行性和可扩展性。