片上众核处理器硬件同步机制研究
多核与众核处理机芯片技术发展
![多核与众核处理机芯片技术发展](https://img.taocdn.com/s3/m/1a5672a3f9c75fbfc77da26925c52cc58bd690c6.png)
多核与众核处理机芯片技术发展随着信息技术的飞速发展,人们对计算速度和处理能力的需求也越来越高。
在这种情况下,多核和众核处理器技术应运而生,成为当今计算机领域的热门话题。
多核处理器是在一个芯片上集成多个处理核心,而众核处理器则是在一个芯片上集成大量的处理核心。
这两种处理器技术的出现,极大地提高了计算机的处理能力和性能,为各种应用提供了更好的支持。
多核处理器最早出现在计算机领域,它将多个计算核心集成在一个芯片上,通过共享缓存和总线等技术实现核心之间的协作。
多核处理器可以提高计算机的处理能力,加快程序的运行速度,提高系统的稳定性和可靠性。
多核处理器广泛应用于各种计算机设备中,如个人电脑、服务器、手机和平板电脑等。
在多核处理器的基础上,众核处理器技术应运而生。
众核处理器是指在一个芯片上集成大量的处理核心,可以实现更高的并行计算能力和处理性能。
众核处理器通常采用片上网络或超级总线等技术连接核心,可以支持更复杂的计算任务和更大规模的并行计算。
众核处理器适用于高性能计算、人工智能、深度学习和物联网等领域。
多核和众核处理器技术的发展离不开半导体技术的进步。
随着半导体工艺的不断提高,芯片制造技术也在不断创新,使得多核和众核处理器的集成度和性能都得到了极大的提升。
此外,计算机体系结构和并行计算算法的研究也对多核和众核处理器技术的发展起到了关键作用。
多核和众核处理器技术的发展在未来有着广阔的应用前景。
随着人工智能、大数据、云计算等领域的快速发展,对计算能力和处理性能的需求也将不断增加。
多核和众核处理器作为提高计算机性能和处理能力的重要手段,将在未来的科技发展中发挥越来越重要的作用。
从消费级产品到专业型计算机,从移动设备到超级计算机,多核和众核处理器技术将为各种应用提供更加高效的计算支持。
总之,多核和众核处理器技术的发展是计算机领域的一个重要趋势。
它们不仅提高了计算机的处理能力和性能,还为各种应用提供了更好的支持。
在未来的科技发展中,多核和众核处理器技术将继续发挥重要作用,推动计算机技术的不断创新和进步。
数据管理:实现高效片上众核处理器的关键
![数据管理:实现高效片上众核处理器的关键](https://img.taocdn.com/s3/m/863dded2c1c708a1284a4465.png)
数据管理:实现高效片上众核处理器的关键周永彬张军超张帅张浩摘要:随着高性能计算需求的日益增加,片上众核(many-core)成为未来处理器结构的发展方向。
目前,大多数众核处理器原型均采用分块的拓扑结构,通过片上网络相连。
在面向通信密集型的应用时,片上网络的吞吐量(throughput)或者延迟(latency)通常成为制约系统性能的瓶颈。
我们通过对片上数据存储和通信管理提供系统结构的支持,在众核处理器上实现了高效的片上数据通信。
本文的主要贡献包括:(1)实现基于分块的众核处理器结构,支持程序可控的片上数据存储管理和数据传输管理;(2)提出异步数据块传输机制是一种容忍二维Mesh片上网络延迟的有效方法。
最后,我们在众核处理器上对快速傅立叶变换(FFT)进行了评估,在获得43.9Gflops计算性能的同时,计算效率达到22.9%。
关键词:众核;Godson-T;快速傅立叶变换;计算与通信重叠1引言半导体工艺的发展,使得微处理器设计面临的功耗,热扩散等问题日趋严重,片上多核处理器(CMP1)已经逐渐代替单处理器成为通用处理器的主流产品。
而面对日益增多的高性能计算需求,片上众核处理器(many-core)也开始成为研究的重点。
随着线延迟成为影响系统性能,成本和功耗不可忽略的因素[1],一些传统的设计理念已经不再适用于片上众核处理器。
例如,NUCA cache(Non Uniform Cache Architecture)[2]结构相对于传统UCA cache (Uniform Cache Architecture)结构具有更好的可扩展性。
同时,以环(ring), 网(Mesh)等拓扑结构为代表的片上网络[3,4]取代了传统的共享总线成为众核处理器的片上互连结构。
在逐步获得令人满意的理论计算峰值的同时,众核处理器的发展对片上存储和片上网络的压力也日趋增强。
片上通信负载过大引起的网络拥塞,常常成为提升众核处理器有效计算性能的瓶颈。
众核处理器cache一致性研究综述_韩立敏
![众核处理器cache一致性研究综述_韩立敏](https://img.taocdn.com/s3/m/636d21284b35eefdc8d333cc.png)
。当 NUCA 被静态地组织成处理器核的私
。
每个处理器核所连接的私有部分也可以被其他核所 有部分时, 访问; 当本地 cache 瓦片被填满, 则寻找其他 core 上的 cache 瓦 片填充数据。因为无法控制哪些分段被哪些处理器核所共享, “污染 ” 。 当处理器核数目多于 8 个时, 这样必然导致 远程访 问增多, 维护 cache 一致性的代价明显增大, 限制了其可扩展 性; 动态 NUCA 则依赖于系统软件的支持实现优化的数据布 局, 提高了数据局部性。 例如, 可以通过操作系统的虚拟存储 器机制, 根据第一次接触原则, 控制存储器到处理器核的动态 的数据布局, 将数据映射到线程所在处理器核的本地 cache, 充 分利用到数据访问的局部性, 而这样的布局也有利于用一致性 协议的实现。 2. 2 共享模式和私有模式的 NUCA 根据片上存储的管理方式对 NUCA 分类, 不同共享方式的 NUCA 结构对一致性协议会产生重大影响 。 从通信效率角度 看, 非包含式的共享 cache 会招致间接通信( 即数据请求者、 目 录、 共享者之间的通信) 以及协议设计和验证的复杂性
0
引言
技术的发展驱使单个芯片上集成的处理器核个数越来越
增大; 维护一致性的硬件逻辑随着处理器核数目呈线性增长, 一致性消息量剧增。 c) 应用的差异性。云计算和服务器应用作为众核处理器 系统的主要负载, 均具有异构性和不均衡性 。这种特性导致单 个一致性协议无法让所有程序取得高性能 。 cache 行以交叉方式分布在各 另外, 在传统的目录协议中, 个处理器节点中, 这种交叉方式方便确定数据的宿主节点, 但 是会引入大量的 cache 一致性事务。 由于在执行一致性事务 之前目录协议需要获取每个存储块的共享状态, 这就导致一系 列的问题
片上多处理器的纠错与容错技术研究
![片上多处理器的纠错与容错技术研究](https://img.taocdn.com/s3/m/138c0c88c67da26925c52cc58bd63186bceb92d2.png)
片上多处理器的纠错与容错技术研究随着电子技术的不断发展,人们对于电子产品的性能、功能、可靠性方面的要求也越来越高。
然而,电子系统在运行过程中难免会出现各种故障,特别是在高温、高辐射、高压、强电场等环境下,系统的可靠性将会面临更大的挑战。
因此,在电子系统设计过程中,纠错与容错技术的研究显得尤为重要。
本文将重点探讨片上多处理器系统的纠错与容错技术。
一、纠错技术纠错是指在数据传输过程中,通过添加冗余信息来检测并纠正出现的错误,从而提高数据传输的可靠性。
常见的纠错技术包括奇偶校验码、循环冗余校验码、海明码、BCH码等。
在片上多处理器系统中,采用海明码是比较常见的一种方式。
海明码是一种多位纠错码,可以检测并纠正多位数据同时出现的错误。
通过在数据中添加冗余信息,可以在发生错误时根据冗余信息进行纠错,从而提高数据传输的可靠性。
但是,纠错技术只能对少量的错误进行纠正,并且增加冗余信息会占据更多的存储空间,因此在设计电子系统时需要根据具体情况进行选择。
二、容错技术容错技术是指在电子系统出现故障时,通过一定的措施使系统继续运行,并能够尽可能地减少故障带来的影响。
常见的容错技术包括三种:硬件容错、软件容错和微处理器复位技术。
1、硬件容错硬件容错是指在电子系统设计过程中,采用一些特殊的电路设计和器件选用等方法来提高系统的容错能力。
其中,最为常见的方法是采用冗余设计。
例如,在多处理器系统中,通过在不同的处理器之间采用双机热备、三机热备等方式来实现容错。
当某个处理器发生故障时,可以通过备用处理器来实现系统的无缝切换,从而保证系统的连续运行。
另外,还可以采用镜像冗余、串联冗余等方式来提高电路的容错性能。
2、软件容错软件容错是指通过对软件程序进行修改、优化等手段来提高系统的容错能力。
例如,在操作系统或应用软件中,可以采用数据备份、命令重发、状态回溯等方式来增强系统的容错能力。
软件容错的优点在于可以通过软件升级等方式来实现,而不需要对硬件进行改造。
多核cpu同步机制
![多核cpu同步机制](https://img.taocdn.com/s3/m/81c5dce4dc3383c4bb4cf7ec4afe04a1b071b0a0.png)
多核cpu同步机制
多核CPU同步机制是指在多核处理器中,不同核心之间如何协
调和同步数据以确保正确的执行顺序和结果。
在多核CPU中,每个
核心都可以独立地执行指令,因此需要一些机制来确保数据的一致
性和正确性。
一种常见的多核CPU同步机制是使用缓存一致性协议。
在这种
机制下,每个核心都有自己的缓存,当一个核心修改了内存中的数
据时,需要通知其他核心使其缓存中的数据失效,或者更新其他核
心的缓存。
这样可以确保所有核心看到的数据是一致的。
另一种同步机制是使用原子操作和锁。
原子操作是不可分割的
操作,能够确保多个核心同时对同一数据进行操作时不会产生冲突。
锁则可以用来保护临界区,确保同一时间只有一个核心可以访问关
键资源,防止数据竞争和不一致的结果。
除此之外,还有一些硬件级的同步机制,比如使用总线锁定或
者基于消息传递的同步方式。
总线锁定可以确保多个核心对同一内
存位置进行操作时的顺序,而基于消息传递的同步方式则是通过发
送消息来通知其他核心进行同步操作。
总的来说,多核CPU同步机制涉及到缓存一致性、原子操作、锁和硬件级的同步方式等多个方面,以确保多核处理器能够正确、高效地执行并发任务。
这些机制的设计和实现需要考虑到性能、成本和复杂度等因素,以满足不同应用场景的需求。
片上互连网络多核众核处理器关键技术
![片上互连网络多核众核处理器关键技术](https://img.taocdn.com/s3/m/80bd5a7d590216fc700abb68a98271fe910eafd5.png)
精彩摘录
《片上互连网络多核众核处理器关键技术》精彩摘录
在当今高度信息化的时代,处理器技术作为信息技术的核心,其发展速度和趋 势一直备受。这本《片上互连网络多核众核处理器关键技术》一书,详细解析 了当前处理器技术的热点和未来发展方向,为读者揭示了多核众核处理器技术 的奥秘。
书中首先介绍了片上网络的基本概念和设计理念,深入阐述了其与传统的总线 式互连相比的优势和特点。片上网络的出现,使得处理器内部的通信变得更加 灵活、高效,为多核众核处理器的并行处理能力提供了有力的支持。
阅读感受
《片上互连网络多核众核处理器关键技术》读后感
在当今这个信息爆炸的时代,多核处理器已经成为了计算机技术的重要发展方 向。而在这一领域中,《片上互连网络多核众核处理器关键技术》一书为我们 提供了一个深入而全面的视角。这本书不仅介绍了多核处理器的基本概念和原 理,更进一步探讨了片上互连网络的关键技术,以及这些技术如何在实际应用 中发挥作用。
在阅读过程中,我深受启发。书中首先介绍了多核架构环境下的片上网络,详 细解释了片上网络如何适应多核设计的整体系统架构。在多核处理器日益普及 的今天,如何确保各个核心之间的通信效率成为了关键问题。片上网络的出现, 为这一问题提供了有效的解决方案。
书中还深入探讨了各种拓扑结构、成本及性能的权衡、路由算法、网络中使用 的流控制机制以及路由器微体系结构等细节问题。这些内容让我深刻体会到了 多核处理器设计的复杂性,以及片上网络在其中的重要性。
更令人印象深刻的是,书中还介绍了一系列基于片上互连网络技术的计算架构 设计案例。这些案例不仅展示了片上网络在实际应用中的优势,也让我明白了 如何在实际部署中进行取舍和融合各种技术。
在书的结尾部分,作者展望了未来几年在推动片上网络研究探索中将面临的关 键技术和新领域。这一部分内容让我对未来的技术发展有了更清晰的认识,也 为我未来的学习和研究指明了方向。
片上多核处理器共享资源分配与调度策略研究综述(二)-技术方案
![片上多核处理器共享资源分配与调度策略研究综述(二)-技术方案](https://img.taocdn.com/s3/m/96264f62cec789eb172ded630b1c59eef8c79a3e.png)
片上多核处理器共享资源分配与调度策略研究综述(二)-技术方案1 基于缓存分区的分配调度策略概述1.1 缓存分区的背景在CMP 系统中,缓存通常是私有的,而缓存(last level cache,LLC)则在各个核间共享(下文提到的缓存如无特别说明都是指LLC)。
共享缓存使得多个线程可以共享某些数据,降低通讯延迟,同时减少数据的冗余备份,提高缓存空间利用率。
但是,线程间对于有限共享缓存空间的争夺,也会导致缓存失效率的上升,影响系统的吞吐量和公平性。
在单核单线程处理器中为常用的缓存替换算法是LRU.LRU 不区分访存请求的线程,同等对待所有访存请求,每次发生缓存失效时替换近少访问的缓存块。
LRU 在单线程环境中能够有效地提高缓存利用率。
然而,在多线程环境下,由于线程间对于共享缓存空间的争夺,仍然采用LRU 算法的话,一个频繁发生缓存失效的线程(例如,流媒体应用)会不公平地替换掉其他线程的有用数据块,占用大量乃至全部缓存空间,从而导致其他线程的缓存失效率(MissRate)①大幅上升,破坏系统的公平性;另外,一个产生大量缓存失效的线程,其数据的复用率(reused)可能很低,而其他线程被替换掉的却可能是一些常用数据,从而降低了共享缓存的利用率,导致总的缓存失效率上升。
无论哪种情况,终结果都会使得系统的性能受到严重影响。
1.2 缓存分区的基本思想为了降低线程间争夺缓存空间带来的影响,一种直观的想法是对缓存进行分区,通过明确地把缓存空间分配给各个核来避免线程间的干扰。
一旦某部分缓存被划分给某个线程,由该线程独享这部分缓存空间,其他线程无权替换这部分缓存空间中的数据,避免了由于缓存争夺所带来的额外缓存失效,使得所有线程的请求都能够得到合理服务。
缓存分区之后,对单个线程而言,相当于运行在单线程环境中一样,因此,在各缓存分区内可以仍然采用LRU算法。
简单也容易实现的的缓存分区方式是在程序运行前将缓存平均划分给CMP 系统中的各个核,称之为静态分区。
多核与众核处理器体系结构研究与优化
![多核与众核处理器体系结构研究与优化](https://img.taocdn.com/s3/m/822e8212e3bd960590c69ec3d5bbfd0a7856d553.png)
多核与众核处理器体系结构研究与优化随着计算机技术的飞速发展,人们对处理器的要求越来越高。
与此同时,计算机体系结构也逐渐从单核走向了多核和众核。
多核和众核处理器相较于传统单核处理器,能够实现更高的计算性能和更强的并行处理能力。
本文将从多核和众核处理器的发展历程、体系结构以及优化方案三个方面进行探讨。
一、多核和众核处理器的发展历程多核和众核处理器不是一夜之间诞生的,它们经历了一段漫长的发展历程。
早在20世纪70年代,就有人开始提出多核和众核的概念。
但当时的硬件技术水平限制了其发展。
直到20世纪90年代,随着硬件技术的飞速发展,多核和众核处理器才得以大规模应用并逐渐成为主流。
2005年,Intel公司发布了第一款双核处理器Pentium D。
此后,各大芯片厂商纷纷推出了多核处理器产品。
如今,已经出现了拥有上百个核心的众核处理器,比如Xilinx的Zynq UltraScale+ MPSoC,它拥有了8个ARM A53核心,以及一个ARM R5F核心。
二、多核和众核处理器的体系结构多核和众核处理器的体系结构是由CPU核心数量、核心之间的通信方式以及共享的硬件资源三个因素组成。
1. CPU核心数量多核处理器指在单个芯片上集成了多个CPU核心。
而众核处理器则是指在单个芯片上集成了大量的CPU核心。
单个CPU核心无法满足处理器的需求,多个CPU核心可以同时执行多个任务,提高处理效率。
众核处理器更是可以同时执行大量的任务,加速计算过程。
2. 核心之间的通信方式多核和众核处理器的核心之间通过共享内存或者消息传递两种方式进行通信。
共享内存是指所有核心之间共享同一块物理内存,这样每个核心都可以直接读取和修改共享内存,因此共享内存方式的数据共享效率高,但会产生竞争、锁等问题。
消息传递则是指各个核心之间通过消息队列等方式传递数据,在核心之间不共享数据,避免了共享内存产生的问题。
3. 共享的硬件资源多核和众核处理器中的各个核心之间共享硬件资源,比如CPU缓存、总线带宽、内存带宽等。
说明处理器内核和片上系统的关系
![说明处理器内核和片上系统的关系](https://img.taocdn.com/s3/m/ef02d2ec250c844769eae009581b6bd97f19bcf6.png)
说明处理器内核和片上系统的关系随着计算机技术的不断发展,处理器内核和片上系统成为了现代计算机体系结构中的重要组成部分。
处理器内核是计算机的核心,而片上系统则是与内核紧密结合、协同工作的一组硬件和软件资源。
本文将就处理器内核和片上系统的关系进行详细说明。
我们来了解一下处理器内核的概念。
处理器内核是指计算机中负责执行指令和控制计算机运行的硬件部分。
一个处理器内核通常由多个功能模块组成,如算术逻辑单元(ALU)、控制单元、缓存和寄存器等。
处理器内核的主要任务是执行指令、处理数据和控制计算机的运行。
而片上系统是指将一些常用的硬件和软件资源集成到处理器芯片上的系统。
片上系统通常包括内存控制器、缓存、总线接口、外设控制器等,这些资源都与处理器内核紧密结合,共同协同工作。
片上系统的存在可以提高计算机的性能和效率,同时也能够减少功耗和成本。
处理器内核和片上系统之间存在着密切的关系。
首先,片上系统为处理器内核提供了丰富的硬件资源支持。
例如,片上系统中的缓存可以提供更快的数据访问速度,从而加快指令执行和数据处理的速度。
内存控制器可以管理内存的读写操作,确保数据的正确性和一致性。
总线接口可以实现处理器和其他外设之间的高速数据传输。
这些硬件资源的存在和协同工作,使得处理器内核能够更高效地执行指令和处理数据。
片上系统还为处理器内核提供了丰富的软件支持。
例如,片上系统中的外设控制器可以提供与外部设备的接口,如网络接口、显示接口等。
处理器内核可以通过这些外设控制器与外部设备进行通信和数据交换。
片上系统还可以提供一些常用的软件库和驱动程序,方便开发者进行软件开发和编程。
这些软件资源的存在和协同工作,使得处理器内核能够更加灵活和多样化地应用于各种场景和应用领域。
从功能上来看,处理器内核和片上系统是相互依赖、相互支持的关系。
处理器内核作为计算机的核心,需要片上系统提供的硬件和软件资源来完成指令执行和数据处理的任务。
而片上系统则依赖处理器内核的指令和控制来实现自身的功能和任务。
可重构片上多核系统软硬件协同优化关键技术研究
![可重构片上多核系统软硬件协同优化关键技术研究](https://img.taocdn.com/s3/m/7d9a9133ac02de80d4d8d15abe23482fb5da0262.png)
可重构片上多核系统软硬件协同优化关键技术研究随着信息技术的飞速发展,片上多核系统(SoC)已成为电子设备的核心组成部分。
然而,随着SoC的复杂性和性能要求的提高,传统的软硬件设计方法已难以满足其优化需求。
可重构片上多核系统通过灵活的硬件资源配置和高效的软件调度,为解决这一难题提供了新的思路。
本文将重点探讨可重构片上多核系统的软硬件协同优化关键技术。
1. 可重构硬件架构设计可重构硬件架构是可重构片上多核系统的核心。
它允许系统根据不同的应用需求,动态地调整硬件资源,以实现最佳的性能和能效。
关键技术包括:可重构逻辑单元: 设计灵活的硬件资源,如可配置逻辑块(CLB)和可编程逻辑阵列(PLA),以支持各种计算任务。
动态可重构技术: 实现硬件资源的动态分配和重新配置,以适应不同的应用场景和负载需求。
硬件资源共享: 通过硬件资源共享机制,提高硬件资源的利用率,降低系统成本。
2. 软件优化技术软件优化是可重构片上多核系统性能提升的关键。
通过优化软件算法和调度策略,可以提高系统的计算效率和能效。
关键技术包括:任务调度算法: 设计高效的调度算法,根据任务特性和硬件资源状态,将任务分配到最合适的处理器上执行。
代码优化技术: 采用编译器优化技术,如循环展开、指令调度、寄存器分配等,提高代码的执行效率。
能耗优化技术: 通过动态电压和频率调整(DVFS)等技术,降低系统的能耗。
3. 硬件/软件协同优化技术硬件/软件协同优化是可重构片上多核系统设计的核心思想。
通过硬件和软件的协同设计,可以实现系统性能和能效的最大化。
关键技术包括:硬件/软件接口设计: 设计高效的硬件/软件接口,实现硬件和软件之间的无缝通信和数据交换。
硬件/软件协同调度: 通过硬件和软件的协同调度,实现任务的最优分配和执行。
硬件/软件协同优化工具: 开发硬件/软件协同优化工具,支持设计人员和开发人员进行系统级优化。
4. 应用案例可重构片上多核系统在多个领域具有广泛的应用前景,如嵌入式系统、无线通信、图像处理等。
片上系统与操作系统的协同优化研究
![片上系统与操作系统的协同优化研究](https://img.taocdn.com/s3/m/3f5ac965cdbff121dd36a32d7375a417876fc16c.png)
片上系统与操作系统的协同优化研究片上系统与操作系统的协同优化研究摘要:随着计算机技术的不断发展,片上系统(SoC)已经成为现代计算机系统中的重要组成部分。
而操作系统作为控制和管理计算机硬件和软件资源的核心软件,对于SoC的性能优化和资源管理起着至关重要的作用。
本文将探讨片上系统与操作系统的协同优化研究,包括优化策略、资源管理、调度算法等方面。
1. 引言随着SoC技术的快速发展,计算机系统的复杂性和性能需求也在不断增加。
片上系统作为一种集成了处理器、存储器、外设等多个功能单元的集成电路,已经成为现代计算机系统的核心。
而操作系统作为控制和管理这些硬件和软件资源的核心软件,对于SoC的性能优化和资源管理起着至关重要的作用。
2. 片上系统与操作系统的协同优化策略片上系统与操作系统的协同优化策略主要包括硬件与软件的协同设计、任务划分与调度的协同优化以及功耗管理的协同优化。
2.1 硬件与软件的协同设计片上系统的硬件与软件之间的协同设计是提高系统性能的关键。
在设计SoC时,应该充分考虑操作系统的需求和特性,以提高系统的性能和可靠性。
例如,可以通过在片上系统中集成一些特定的硬件加速器,来提高操作系统的性能和响应速度。
另外,还可以通过优化硬件和软件之间的接口,减少数据传输的开销,提高系统的效率。
2.2 任务划分与调度的协同优化在SoC中,操作系统负责任务的划分和调度,以充分利用系统资源,提高系统的性能。
为了实现任务划分与调度的协同优化,可以采用静态调度和动态调度相结合的方法。
静态调度可以在系统设计阶段就确定任务的执行顺序和优先级,以提高系统的性能。
而动态调度则根据任务的实时需求和系统资源的变化,动态地调整任务的执行顺序和优先级。
2.3 功耗管理的协同优化功耗管理是现代计算机系统中一个重要的问题。
在SoC中,操作系统可以通过对任务的调度和资源的管理,来降低系统的功耗。
例如,可以通过合理地调度任务的执行顺序和优先级,减少系统的空闲时间,从而降低功耗。
片上嵌入式多处理器的一致性
![片上嵌入式多处理器的一致性](https://img.taocdn.com/s3/m/538d506677232f60dccca119.png)
片上嵌入式多处理器的一致性
目前,大多数高端嵌入式SoC都属于异质芯片在单纯地提高时钟速度的方法退出主流之后,保持这种单线程的编程抽象,迫使通用的单处理器设计工程师采用双处理器或四处理器的一致性系统(coherent system)。
具有丰富软件的高性能嵌入式系统也是如此,只是情况稍有不同。
这些SoC中的处理器通过非一致性(noncoherent)共享内存,以某种形式的消息传递进行通讯。
在第三代蜂窝电话中,通过双端口SRAM和中断进行通讯的经典RISC/DSP组合,就是这些简单机制的一个很好例子。
未来的高性能SoC将是处理器的分层和异质系统,即在层次结构中嵌入由同质多处理器组成的一致性处理器集群。
这种转变已经出现在一个特定的高性能嵌入式市场中,即以一致性网络多处理器实现的联网市场。
目前,对于未来嵌入式芯片多处理器(CMP)的准确特性仍存在争议。
CMP是属于异质型,还是用同质处理器以分层方式实现的异质型还不明确。
但对于许多CMP而言,使共享内存保持一致性至关重要。
片上多处理器体系结构中Cache一致性模型研究的开题报告
![片上多处理器体系结构中Cache一致性模型研究的开题报告](https://img.taocdn.com/s3/m/54e7f325ae1ffc4ffe4733687e21af45b207fe7f.png)
片上多处理器体系结构中Cache一致性模型研究的开题报告一、研究背景及意义随着计算机体系结构的不断发展和多核处理器技术的普及,现代计算机系统中出现了许多面临Cache一致性问题的共享内存并发程序。
在这些并发程序中,多个处理器同时访问共享数据,并且对这些共享数据进行修改与更新,这就会产生Cache一致性问题,即多个处理器拥有自己的Cache,相互之间的缓存数据可能不一致,导致程序出错。
因此,研究Cache一致性问题是至关重要的。
目前,对于Cache一致性问题的解决方案已经有了很多研究,其中较为常见的方案是通过多个处理器之间的协议来维护Cache一致性。
这些协议可以保证在多个处理器并发访问同一块数据时,处理器之间的Cache中的数据保持一致。
二、研究内容本研究将深入研究片上多处理器体系结构中的Cache一致性问题,并通过设计实验并进行仿真验证,来探究不同Cache一致性协议下的性能表现。
具体而言,本研究将包括以下内容:1. 系统性能分析:通过对片上多处理器体系结构的性能分析,了解系统的主要瓶颈,以及不同处理器之间的通信方式。
2. Cache一致性协议设计:设计不同的Cache一致性协议,并对协议进行评估,以找到最佳的Cache一致性协议。
3. 实验设计和仿真验证:通过使用模拟器对设计的Cache一致性协议进行验证,来测试不同处理器之间的性能表现。
4. 结果分析:对比不同Cache一致性协议的性能表现,并分析其优缺点。
三、研究方法和技术路线本研究将采用以下方法和技术路线:1. 文献综述:对相关文献进行详细的调研和分析,了解已有的研究成果和不足。
2. 系统性能分析:基于Simics模拟器搭建片上多处理器体系结构,对系统性能进行分析,从体系结构角度分析系统性能瓶颈。
3. Cache一致性协议设计:设计易于实现和优化的Cache一致性协议,并进行有效性和可扩展性分析。
4. 实验设计和仿真验证:利用gem5模拟器验证不同Cache一致性协议的性能表现。
众核处理器核间通信的研究分析
![众核处理器核间通信的研究分析](https://img.taocdn.com/s3/m/a5e644b8680203d8ce2f2436.png)
众核处理器核间通信地研究-工程论文众核处理器核间通信地研究陈鹏CHEN Peng(沈阳职业技术学院电气工程学院,沈阳110045)摘要:随着时代地发展,计算机已经得到了广泛地应用,并逐渐成为人们生产生活中不可或缺地部分.单核处理器,由于其内部结构和频率功耗等因素地影响,已无法满足人们对处理器地要求,所以,多核处理器、众核处理器应运而生.本文针对众核处理器核间通信地现有结构特点—数据等待、每个核负担大、功耗大等缺点,提出了一种适应于异构众核处理器地核间通信结构—总线中间缓存(B-MM)结构,大幅度减少核间通信地等待情况,并且尽可能地简化每一个核地内部结构使其功能专一,提高其工作效率,进而提高众核处理器地性能.最后通过Modelsim SE仿真平台实验,验证了其可行性.关键词:计算机;众核处理器;核间通信中图分类号:TP332 文献标识码:A 文章编号:1006-4311(2015)17-0207-03作者简介:陈鹏(1987-),男,辽宁沈阳人,沈阳职业技术学院教师,研究方向为控制理论与控制工程.0 引言1971年,Intel公司创始人之一戈登·摩尔提出了著名地“摩尔定律”——每经过18个月地发展革新,芯片上晶体管地集成数就翻一倍.直至2013年,单芯片上晶体管地集成数接近30亿个,若以增加晶体管数量地方法来提高处理器频率,单从工艺上以很难达到.因此,多核处理器应运而生.近几年来,国外许多大学都致力于研究多核处理器:其中,Standford大学将多个MIPS集成在一个处理器上,并共享1M通信传输通道,尽可能地将程序并行化,已达到更快地处理速度和性能;2002年,MIT学院推出了RAW处理器——将16个核心集成在片上,其主频达到近1GHz,使得核间通信更加快捷.2001年,中科院计算机所正式启动“龙芯”项目,历时8年地时间,成功研制了龙芯1号、龙芯2号,并于2008年推出了中国自主研发地首款多核处理器——龙芯3号.众核(Many-Core)处理器,就是将9个以上地内核集成到一个芯片上地处理器,其处理速度与核心地数量呈指数增长.由于一般处理器都采用“主—从”核地结构,即每个核心地处理内容都不一样,这样可以尽可能地简化每个核地内部结构,使内核结构简单,工作任务单一,使其充分利用,以加快处理速度,提高性能.1 多核处理器结构介绍1.1 总线结构多核处理器内部拥有共享总线——高速缓存器(Cache).通过程序,可将每一个核编址,并具有独立性和唯一性.内核可以通过Cache发起通信,控制设备;同时,Cache也可以存储比较常用地数据.由于多个内核或设备共享Cache中地数据,可能会出现数据传输和读取错误,核间通信可能会出现问题.为避免这一问题,用更为直接地快速猝发访问(Burst)代替单字访问.设备地优先级可由程序设计,当片上只有单一Cache且有多个设备同时通信Cache时,则由总线接口单元BIU决定总线地所有权.由于内核和设备数量地增多,则必须提高Cache时钟、增加Cache宽度地方法来改善处理器地性能.但增加总线地宽度,只有外围设备在一个时钟周期中能全部占有这些总线时才有效,因此利用率不高;而提高总线地时钟也会受到一定地限制,同时会产生功耗方面地问题[1].即便提高Cache地时钟,增加工作周期,但如果片上内核集成越来越多,对程序编码要求增加,势必会增加额外延迟.随着片上集成内核地数量地增多,传统地总线结构已无法满足众核处理器地核间通信要求.1.2 交叉开关结构交叉开关(Cross-bar)是超级计算机中地技术,在向量处理系统中为向量处理器分配内存地一种技术,由于其数据吞吐量大、数据不易阻塞而被广泛应用.在Cross-bar 结构中,片上每个内核都有私有地独立一级缓存(L1 Cache)和作为数据交换地共享二级缓存(L2 Cache).Cross-bar结构最大地优势在于:共享地二级缓存内地数据可以被任意一个内核或设备读取,减少了许多工作量,具有很大优势.同时,通过网状结构和交叉开关控制,可以将任意两个核关联,实现核间通信[2].但随着内核地增多,网状结构地扩大,众核处理器交叉开关势必将占用更多地片上面积,逻辑资源也将随之增大.1.3 片上网络结构片上网络(NoC)是片上系统System-on-chip(SoC)地一种新地通信方法,它是多核技术地主要组成部分.NoC方法带来了一种全新地片上通信方法,显著优于传统总线式系统性能[3].其系统可以更好地适应多核SoC设计中地使用全局异步局部同步地时钟机制.但其代价是大大增加了程序设计地难度,对每一个内核地要求较强,不适用于众核处理器地底层通信.2 针对众核处理器地通信设计由于上述三种通信结构地优缺点,提出一种适用于众核处理器地核间通信——总线中间缓存(Bus-MiddleMeorry)结构.众核处理器采用异构结构,即采用“主—从”式结构,每一个从核结构简单、任务单一.总线中间缓存(B-MM)结构设计保留了共享总线,将每一个核都挂在总线上,以方便片上主核通过总线通信从核,同时共享总线也是片上数据输出地唯一端口;从核与从核之间用短总线相连,完成从核之间地通信,这样既可以使主从核之间地通信不受从核之间通信地影响,也尽可能地降低了共享总线地占用.众核处理器B-MM结构如图1所示,这里以9个内核地众核处理器为例.Core0为处理器地主核,Core1~Core8为从核.核间通信通过共享总线、长总线和段总线完成.9个核可以同时发出9条通信信号,Core0到Core1、Core1到Core2、Core2到Core5、Core5到Core8、Core8到Core7、Core7到Core6、Core6到Core3、Core3到Core0、Core4到Core5同时进行9个通信.每条总线上都设置一个中间存储器作为缓存器M.总线上地每个核都可以对缓存M读写数据.核与核之间只使用一根通信信号线,来保证总线上只有一个核可以占用总线.当Core1和Core2通信时,如果Core4向Core1通信,那么通过Bus14短总线,Core4把数据先写入M14缓存中,之后Core4放弃Bus14地控制权;此过程中Core1与其他内核地通信完全不受影响.当Core1完成了与其他内核地通信之后,通过占用Bus14,从M14缓存中读取Core4写入地数据.这样,当Core4向Core1通信时,既不影响正在工作地Core1,也使Core4不用等待,继续完成其他工作.假设不相邻地两核Core0与Core4需要通信时,Core0可以先与Core1交换数据,Core1再与Core4交换数据,或者Core0直接利用长总线与Core4通信. B-MM结构针对众核处理器地每个核处理地任务很小、很专一,即所谓地小核模式地众核处理器.根据任务地复杂度不同核内地核可以设计出不同地时钟频率.3 仿真验证利用Modelsim SE对以上结构进行仿真验证.以Core1与Core2通过短总线通信为例,验证B-MM结构核间通信地读写可行性.图2表示Core1和Core2同时启动通信启动位HANDSHAKE_START1、HANDSHAKE_START2,两核中handshake_flag都为0,Core1和Core2都无法获得对总线地控制权.当Core1对Core4通信,此时Core2正在处于工作状态,如图3所示,通过Bus14将Core1中地地数据写入了M缓存中;Core1通过通信启动位HANDSHAKE_START1占用Bus14,handshake_flag置1.将缓存地址地上升沿地初始值是定位20,从有效信号en_in下降沿时地址计数器加1,门控信号wr为1,数据锁入中间缓存M地8bit×256数据存储区.图3中仿真波形中间缓存M地数据存储区(图3中signal_port_ram)地址(图4中十进制表示)20~27地数据与核1所写入数据一致.当Core2结束工作后,将从中间缓存M读取数据,如图4所示,Core2用户程序置高通信启动位HANDSHAKE_START2,实现通信,当Core2获得Bus 地控制权,handshake_flag为1.ALE上升沿锁入地缓存M地址计数器初值为20,此时来自缓存模块地数据有效信号en_in下降沿触发Core2地址计数器加1,数据计数器减1.门控信号wr为0,数据写入Core2数据存储区.得出地仿真波形中Core2数据存储区(图4中core_ram表示)地址(图4中十进制表示)30-37地数据与图4中Core1写入中间缓存M地数据一致.4 结论通过B-MM结构和仿真验证不难看出,当众核处理器中地某两个内核处于非工作状态时,其通信可正常完成;当某一个内核处于工作状态时,如果有其他内核需要与其通信时,通过Bus总线,可先将数据写入中介存储器中,然后放弃Bus总线地所有权,继续完成其他工作,当被通信核完成工作,可占用Bus总线接收数据,完成通信.这样,可大幅度减少核间通信地等待情况,并且尽可能地简化每一个核地内部结构使其功能专一,提高其工作效率,进而提高众核处理器地性能.参考文献:[1]李亚民主编.计算机原理与设计—Verilog HDL版[M].北京:清华大学出版社,2011:107-109.[2]郭建军.同步数据触发体系结构多核处理器存储系统关键技术研究[D].国防科技大学博士学位论文,2008:17-23.[3]黄国睿,张平.多核处理器地关键技术及其发展趋势[J].计算机工程与设计,2009,300(10):2414-2418.[4]李月香,基于FPGA地微控制器IP核研究与设计[D].山西大学硕士学位论文,20-21.[5]盛肖炜,多核处理器内部核间通信研究[D].沈阳理工大学硕士学位论文,15-17,25-30.版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有This article includes some parts, including text, pictures, and design. Copyright is personal ownership.b5E2R。
面向众核系统的层次化栅栏同步机制
![面向众核系统的层次化栅栏同步机制](https://img.taocdn.com/s3/m/8590f55c571252d380eb6294dd88d0d233d43cfe.png)
面向众核系统的层次化栅栏同步机制
臧照虎;李晨;王耀华;陈小文;郭阳
【期刊名称】《计算机工程与科学》
【年(卷),期】2022(44)11
【摘要】同步操作在保证多核处理器线程的数据一致性和正确性等方面起着重要作用。
随着处理器内核数量的不断增加,同步操作的开销也越来越大。
栅栏同步是并行应用中多核同步的重要方法之一。
软件同步方法通常需要数千个周期才能完成多个内核之间的同步,这种高延迟和串行化同步会导致多核程序性能的显著下降。
相比于软件栅栏同步方法,硬件栅栏能够实现较低的同步延迟,然而传统集中式硬件栅栏的可扩展性有限,难以适应众核处理器系统的同步需求。
面向众核处理器提出了一种层次化硬件栅栏机制——HSync,它由本地栅栏单元和全局栅栏单元组成,二者协调配合,以实现低硬件开销的快速同步。
实验结果表明,与传统的集中式硬件栅栏相比,层次化硬件栅栏机制将众核处理器系统性能提高了1.13倍,同时网络流量减少了74%。
【总页数】8页(P1901-1908)
【作者】臧照虎;李晨;王耀华;陈小文;郭阳
【作者单位】国防科技大学计算机学院
【正文语种】中文
【中图分类】TP393
【相关文献】
1.面向众核GPU加速系统的网络编码并行化及优化
2.众核处理器片上网络的层次化全局自适应路由机制
3.面向国产异构众核系统的Parallel C语言设计与实现
4.面向神威·太湖之光的国产异构众核处理器OpenCL编译系统
5.UPPA:面向异构众核系统的统一并行编程架构
因版权原因,仅展示原文概要,查看原文内容请购买。
一种面向片上众核处理器的虚拟核资源分配算法
![一种面向片上众核处理器的虚拟核资源分配算法](https://img.taocdn.com/s3/m/443cdd20e97101f69e3143323968011ca300f7f0.png)
一种面向片上众核处理器的虚拟核资源分配算法沈阳;齐德昱;周娜琴;王新阳【期刊名称】《华南理工大学学报(自然科学版)》【年(卷),期】2018(046)001【摘要】基于高效能大任务和多任务计算需求以及芯片技术的高速发展,多核处理器进入片上众核处理器时代,但如何将这种硬件能力转变成计算性能的提升,充分利用MPSoC的并行计算能力是该领域亟待解决的问题.文中研究设计了面向片上众核处理器的物理核到虚拟核分配算法(VPD),该算法通过识别任务执行时的阶段状态特征,动态重组物理核并配置成与任务计算需求相适应的虚拟核,在满足任务的计算资源需求的条件下,实现虚拟核最优分配.最后通过实验将VPD算法与不同的多核/众核处理器环境下的主流调度算法进行比较,结果表明:该算法可适用于多种环境,且效能比其他同类算法平均高5%~10%.【总页数】11页(P112-121,130)【作者】沈阳;齐德昱;周娜琴;王新阳【作者单位】华南理工大学计算机系统研究所,广东广州510006;华南理工大学计算机系统研究所,广东广州510006;华南理工大学计算机系统研究所,广东广州510006;华南理工大学计算机系统研究所,广东广州510006【正文语种】中文【中图分类】TP316.4【相关文献】1.一种新型的Free-memory众核处理器片上通信接口 [J], 郭御风;李琼;窦强;张磊;刘路2.一种面向多视频源的虚拟现实系统解决方案 [J], 魏发远3.一种面向片上互连的自适应通道双缓冲延迟模型 [J], 齐树波;李晋文;乐大珩;赵天磊;张民选4.一种面向能耗的可重构片上统一存储架构 [J], 凌明;张阳;梅晨;武建平;王欢5.一种面向片上向量存储器的UVM验证平台 [J], 侯林涛; 陈海燕; 李明; 陈俊杰因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
片上众核处理器硬件同步机制研究*徐卫志1,2刘志勇1范东睿1焦帅1,2张浩1宋风龙1雷峥蒙1,2余磊1,21(中国科学院计算技术研究所系统结构重点实验室北京 100190)2(中国科学院研究生院北京 100039)摘要同步机制是片上多核/众核处理器正确执行和协同通信的关键,其效率对处理器的性能非常重要。
本文针对片上众核体系结构,提出了两种硬件粗粒度同步机制,集中式同步机制和分布式同步机制,分别通过片上的集中式锁管理器和分布式锁管理器来实现;以片上同构众核处理器Godson-T模拟器为平台,通过量化评估程序,评估比较了提出的两种硬件支持的同步机制与基于原语的软件同步机制的性能。
结果表明,硬件支持可以使得片上众核处理器的同步机制性能明显提高,而分布式锁管理器的扩展性要好于集中式锁管理器。
关键词片上众核处理器;同步;硬件支持;集中式锁管理器;分布式锁管理器中图法分类号: TP302 文献标识码: A1 引言传统单核处理器采用指令级并行的技术提高性能,借助于超标量和流水处理提高处理器的主频,但是随着主频的提高却使得功耗和散热问题难以依靠现有的技术解决。
而半导体工艺的发展,使得片上可集成的晶体管数目日益增多,因而体系结构设计者为了在性能进一步提升的同时降低功耗和散热,提出了线程级粗粒度并行的片上多核/众核处理器[1]。
片上多核/众核处理器与传统多处理器相比,其优点是片上处理能力强、带宽高、通信距离短、传输速度快等,多个线程之间的数据通信效率高,因而需要高效的同步机制与之匹配。
同步操作保证多个线程之间的数据传播,临界区的互斥访问使得多个线程对共享存储的写操作等同于串行执行,保证程序执行语义的正确性。
因而,同步操作的性能对片上众核处理器而言非常重要,直接影响了多个线程协同执行的速度。
在传统多处理器系统中,已有许多针对于互斥操作的研究,主要可以分为两类,一类是设计更好的软件算法,第二类是为其提供专用的硬件支持等。
软件锁的缺点在于同步开销大、扩展性差、存储空间要求高等。
例如,Test&Set锁[2]是基于原子指令Test&Set的软件锁,它需要每个参与同步的线程不断地执行Test&Set指令,每一次执行Test&Set指令,就检查并修改对应的内存块,造成大量的访存操作和网络操作,当线程数增多时,Test&Set锁的扩展性很差。
虽然已经有一些改进的基于原子指令的软件同步方法,但是原子指令实现困难,代价高,当片上集成了成百上千个处理器核时,软件锁难以满足众核处理器的性能需求,势必形成“synchronization wall”。
虽然基于同步原语的软件锁相对于硬件锁较灵活,但是在众核片上支持硬件锁,可以充分利用片上通信速度快的特点,大大提高同步操作的效率,从而提高整个芯片的计算能力。
文献[3]针对于众核处理器Cyclops-64,提出了专用的硬件同步状态缓存器SSB,用于支持细粒度的同步操作,目的是有效利用众核处理器的片上处理能力。
然而,硬件支持对于片上众核处理器中粗粒度同步机制的性能影响仍没有相关的研究。
因而,我们提出了基于片上众核体系结构的两种硬件粗粒度同步机制,使用专门的片上锁管理器来实现同步,包括集中式锁管理器和分布式锁管理器,从不同角度评估了硬件支持对片上众核结构同步机制的性能提升,将集中式同步机制,分布式同步机制,以及软件同步机制进行了比较。
结果表明,硬件支持可以使得片上众核处理器的同步机制性能明显提高,而分布式锁管理器比集中式锁管理器扩展性更好。
本文如下组织:第2节介绍多核/众核同步机制的相关研究工作,包括基于原语的同步机制实现方式,硬件同步,细粒度同步,事务内存等;第3节提出片上众核结构中专用硬件支持的同步机制,包括集中式同步管理器与分布式同步管理器,为了评估需要,在片上众核结构中也实现了Ticket Lock;第4节介绍模拟平台和试验结果,并对结果进行分析,对软件锁和硬件锁,集中式锁管理器和分布式锁锁管理器进行比较;第5节总结本文,并提出进一步的工作。
*本课题得到国家自然科学基金重点项目(60736012)、国家“九七三”重点基础研究发展规划项目基金(2005CB321600)、国家“八六三”高技术研究发展计划项目基金(2009AA01Z103)、国家杰出青年科学基金(60925009 )、国家自然科学基金创新研究群体科学基金(60921002)、北京市自然科学基金(4092044)资助。
徐卫志(1982年生),男,山东龙口人,博士研究生,主要研究方向为高性能计算机体系结构、并行算法等;刘志勇(1946年生),男,博士,研究员,博士生导师,主要研究领域为算法、计算机系统结构、并行处理、片上存储系统等;范东睿(1979年生),男,博士,副研究员,主要研究方向为低功耗处理器设计;张浩,博士,助理研究员;宋风龙,博士;雷峥蒙,硕士研究生;余磊,博士研究生。
2 相关研究互斥访问同步机制提供了共享数据的互斥访问(原子访问)方式,保证了临界区内对共享资源的整体性操作。
各种互斥访问同步机制的不同主要在于三点,即处理开销、存储开销和对网络造成的影响。
同步机制一般能够通过“读-修改-写回”的同步原语来实现,如TAS、FAA、SWAP、CMPXCHG和LL/SC等同步指令。
Test&Set锁[2]采用轮询标志位的方式,造成大量的访存操作和总线操作,当处理器核数增多时,竞争更加激烈,扩展性差。
Test&Set Lock with Backoff [2]的方法对Test&Set锁进行改进,当一个处理器核申请锁失败后,不是立刻再次申请,而是隔一段时间再去申请,这种方法减少了轮询的次数,从而减少了总线竞争,但需要设定合理的backoff 。
TEST&TEST&SET[2]也是对Test&Set锁的改进,每个处理器核在本地缓存中轮询锁变量,当有处理器核释放锁的时候,通过无效掉相应处理器核的锁变量来通知其它处理器核,然后其它处理器核执行Test&Set去抢这把锁,这种方法在本地轮询,从而减少了网络消息。
LL(load-linked)和SC(store-conditional)[4][5]是一对相关联的指令,用于实现可缓存在cache中的内存地址的原子操作。
语义是:LL指令将一个内存地址的数据取到寄存器中;随后,可以执行一系列不包含存储操作的任意指令;最后,使用SC指令对与上一个LL指令相同的内存地址进行写操作。
只有当LL指令执行后,所有其他处理器都没有对该地址进行写操作的情况下,SC指令才会执行成功。
因此,SC执行成功则表明对某个地址成功执行了一次“读-修改-写回”原子操作。
如果SC执行失败,则整个操作必须重新执行。
LL/SC指令的优点是所有处理器都在私有cache中自旋,而不必每次都到共享的存储结构中,因而不会对网络造成压力。
其缺点是,需要cache一致性的维护,即当一个处理器执行SC指令时,需要将所有自旋等待的处理器私有cache中的变量都无效,造成大量的无效操作。
Ticket Lock[2]使用两个全局的计数器ticket和turn,初始值都为0;当某个处理器申请锁时,使用原子指令Fetch&Add 将ticket增1作为自己的令牌值,并且当turn的值与ticket的值等时就可以进入临界区;某个处理器释放锁时,将turn增1,作为下一个可以获得锁变量的令牌值。
其优点是只有某个处理器的令牌值与turn的值相同时,才会在锁变量被释放时重新申请锁。
其缺点是每次释放锁并修改turn的值时,会对所有等待的处理器执行一致性操作,将缓存的turn值无效,重新读取更新后的turn值,由于竞争而造成延迟。
Array-Based Lock[6][7]的特点是,每个处理器在不同的内存地址上轮询,释放锁的处理器通过改写下一个等待者地址上的内容进行通知。
其优点是当一个处理器释放锁的时候,只会把下一个等待锁的处理器对应的缓存块无效掉,这时只有一个处理器去读取内存。
其缺点是需要O(p)的存储空间,p是处理器个数。
Ticket Lock和 Array-Based Lock都能保证各个处理器按顺序获得锁,保证了公平性,另一种“公平”锁为MCS锁[8],它使用软件的分布式链表维护等待队列,每个等待的处理器自旋在该链表的一个独立节点上。
其优点是释放锁的处理器可以只唤醒等待在队列头的那个处理器;其缺点是空间开销和等待的处理器数目成正比。
QOLB[9][10](Queue on Lock Bit),也是形成一个锁链表,每一个处理器的队列信息(锁的下一个申请者)保存在一个缓存块里,等待锁的处理器在本地缓存块上轮询,在内存里保存锁链表的头和尾。
其缺点是,增加了缓存块的状态数目,导致基于目录或监听的一致性协议更加复杂,因而不具有扩展性。
此外,在粗粒度同步方面,文献[11]提出了针对SMT处理器的Lock Box,文献[12]提出了Lock Cache,文献[13]提出了基于总线结构的分布式同步方法。
在细粒度同步机制的研究中,基于Full/Empty 位的同步机制已在Tera 机器中出现[14]。
Full/Empty位标记内存单元中的数据是否已经符合进一步处理的条件,即值为1表示数据可用(Full),而值为0则表示数据不可用(Empty)。
这样在访问内存时,实现了轻量级的线程同步。
文献[3]提出了使用同步状态缓存来实现细粒度同步,基于同一时刻只有少量的数据需要同步的观点,节省了存储空间。
其缺点是,一旦硬件SSB大小不够,需要软件解决时,同步的时间开销就变大,而且自旋锁的问题也没有很好的解决。
事务内存[15]采用一种lock-free的方法来访问共享数据,把一组load和store指令作为原子操作,即这一组操作要么全部执行完成,要么就全部撤销,重新开始执行。
使用事务内存可以避免锁机制导致的一些问题,如死锁。
3.片上众核处理器的同步机制本节介绍众核结构中的片上硬件粗粒度同步机制,包括集中式锁管理器和分布式锁管理器,并对这两者进行了比较,为了评估需要,也在众核结构中实现了一种软件锁——Ticket Lock。
3.1 片上集中式锁管理器图1 Godson-T混和式片上多核/众核体系结构在片上众核处理器中引入专用的硬件集中式锁管理器(Centralized Lock Manager,简记为CLM),如图1右下角所示,其中Core是片上处理器核,Core与Core之间、Core与CLM之间通过片上的router相连。
CLM将互斥访问同步操作组织为先进先出队列。
当某个处理器核发出申请锁请求时,通过片上互连网络将申请锁请求发送到CLM,CLM接收到请求后,为其分配表项,将请求信息写入表项。