




免费预览已结束,剩余71页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学士学位论文摘 要 随着计算机的广泛应用,对于处理器的处理能要求越来越高。传统的单核处理器仅仅依靠提高处理器的时钟频率的做法已经无法满足需求了。单芯片多核处理器(cmp)技术也就应运而生,相比于单核单芯片处理器有控制逻辑简单、低通信延迟、设计和验证周期短、积木式升级、低功耗、并行处理等优点。多核处理器已经取代了单核处理器成为市场上的处理器的主流产品。 多核处理器内的多个核并不是简单的相连。多核处理器内部的互联架构的研究近年来也在国内外广泛开展。本文通过仔细分析多核处理器发展现状及趋势,分析了目前的多核处理器内部现有的通信架构的优缺点以及它们各自的适用场合。针对小核模式的多核处理器本文提出了 本文设计出一种多核处理器的一种cmc 总线架构。cmc 总线架构的设计目标为只需一根握手信号线,简单的硬件逻辑,并为软件提供必要的控制接口。结构,该结构既可以作为同构多核处理器又可以作为异构多核处理器。每个核处理的任务可以在很小、很专一。多核处理器内多个核的互联总线包括有外总线、长总线、短总线。长、短总线在多核处理器内分别有各自不同的功能。长、短总线都采用cmc总线架构。 整个cmc 总线架构采用汇编硬件描述语言编写实现,把多核处理器内部的各个核有机的结合在一起。本课题内容就是用proteus搭出电路,将程序运行,验证cmc总线多核与单核共享总线相比提高了效率,并在proteus上实现并行计算,完成上述核间通讯。证明该核间通信架构的可行性。该内部核间通信结构的多核处理器的研究为后续的相关产品开发和设计奠定了坚实的基础。关键词:多核处理器;众核处理器;核间通信;cmc总线abstract with the wide range of computer,the processors performance is increasing.traditional single-core processors have been unable to meet that demand increasing processor clock frequency.chip multi-processor(cmp) technology also came into being,the advantages are simple control logic,low communication delay,short design and verification cycle,modular upgrade,low power,parallel processing compared to chip single- processor. multi-core processors have replaced single-core processors on the market. all cores are not simply connected in the multi-core processor.the internal has been studied at home and abroad in the recent years. through the analysis of current situation and trend of the development of multi-core processors,we display the advertages and disadvertages of the existing internal inter-core communication in the multi-core processor and their application of occasions. we put forward a model of cmc bus architecture for small core in the multi-core processor. our design goals of the cmc bus are just a handshake signal, simple hardware logic and enough softwareinterfaces. we work out the architecture of multi-core processor, which is used either as isomorphic multi-core processor or as heterogeneous multi-core processors. under the condition of the few processing task of every core, the multi-core processor includes outer bus, long bus, short bus. the long and short bus has different functions in the multi-core processor and is using cmc bus architecture. we design the entire cmc bus using assembler language combined with individual cores in multi-core processors.simulate the read and write of internal inter-core commiucation by using of proteus .this design will contribute to further research and development of relevant product. key words :multi-core processor; many-core processor; inter-core communication;cmc bus目 录第1章 绪论11.1课题研究的背景11.2 课题研究的意义31.3本课题研究主要内容41.4课题研究方案4第2章 多核处理器核间通讯体系结构52.1多核处理器国内外发展现状52.2 多核处理器核间通信技术发展现状82.2.1共享总线简介82.2.2交叉开关互联82.2.3片上网络92.3多核处理器核间通讯体系结构102.3.1多核处理器片上通信的瓶颈102.3.2多核处理器通信架构特点介绍112.4 cmc总线的提出192.4.1 基于cmc 总线的多核处理器结构设计202.4.2 cmc总线设计的特点23第3章cmc总线在8051上的实现243.1cmc总线工作原理243.1.1 cmc总线接口信号243.1.2 cmc总线核部分硬件设计243.1.3 cmc总线缓存部分硬件设计263.1.4 cmc总线握手逻辑设计273.1.5 cmc总线传输协议283.2 cmc总线验证在8051上验证方案303.2.1 cmc总线接口信号硬件仿真方案303.2.2 cmc总线握手硬件仿真设计方案323.2.3cmc总线整体设计方案323.3 0851单片机简介333.3.1 80c51系列介绍333.3.2 8051的引脚说明333.3.4 cpu结构343.4仿真软件proteus介绍353.4.1 proteus简介353.4.3 基于proteus的电路设计353.4.5 proteus与keil联调使用373.5 cmc总线硬件仿真图373.5.1 双向驱动器连接方式383.5.2存储器与锁存器连接方式仿真403.5.3 四2 选1 数据选择器仿真连接423.5.4数码管连接方式44第4章 多8051的异步并行程序验证454.1 验证方案454.2微操做系统474.2.1微内核操做系统简介474.2.2 内核操作系统流程474.2.3 查询任务程序494.2.4 资源查询与核间通讯504.2.5 独立任务块504.3最终任务在数码管上显示结果52总 结56致 谢57参考文献58附录a 英文原文59附录b汉语翻译63附录c微操做系统程序66附录d cmc总线仿真图70v第1章 绪论1.1课题研究的背景 过去的几年中,计算机已经在生活与工作中各个领域得到了广泛的运用。计算机处理器设计工艺和处理器体系结构发展迅速。从1971 年intel 公司推出的全球第一块由2300 个晶体管构成的通用性微处理器4004 时,intel 公司的创始人戈登摩尔就提出了“摩尔定律”每过18 个月,芯片上集成的晶体管数(集成度)翻一番。自20 世纪70 年代以来的大多数时间内,超大规模集成电路器件的特征尺寸以每3年70%的速度缩小,从而使得数目越来越多的晶体管可以集成在同一颗半导体芯片上制造。根据图1.1 显示的趋势,2010 年单个芯片上集成的晶体管数目将达到22 亿个。图1.1 集成电路发展趋势 单核性能主要是由处理器的体系结构设计及其工作频率决定的,然而仅仅依靠单核处理器中集成更多的晶体管来提升处理器频率的方法已经行不通了,单核处理器架构上已无潜力可挖,超线程多流水线复杂的分支预测大缓存等技术已经将性能发挥到了极致,单核处理器主频的提高已经逼近了工艺极限。究其原因受几个方面因素响。(1)功耗 随着计算机的广泛应用,一方面按照“摩尔定律”推论,这就意味着处理器内部的功能部件还将不断增加【2】,整个cpu要为计算部件提供充足的指令和数据,就需要cpu有更高的时钟频率、更高的性能。另一方面随着晶体管数量的增加,处理器的功耗急剧的增长。摩尔定律和处理器功耗已经畸形不对称,目前的功耗已经达到散热技术的极限。(2)互连线延时增大 当单核处理器的时钟频率是4ghz 时,在一个时钟周期内电信号仅能在多核处理器中前进50mm。(3)设计复杂度 随着处理器性能的提升,芯片面积、晶体管数量、设计复杂度和验证难度都大幅度增加。全局互连延迟、功耗、可靠性等因素使得单纯地通过单处理器的频率来提高系统性能变得越来越难以实现,单核cpu的时代已经即将结束了。 集成电路技术的迅猛发展,使得片上系统(system-on-chips,soc)提供了丰富的芯片应用解决方案,应用的发展和芯片集成度的提高,单颗芯片上能够集成大量的计算和存储资源形成更强功能、更大容量和更灵活的片上系统。单芯片多核处理器(cmp,chip multi-processor)技术是一条可行之路,cmp 能够用多个低频率核单元产生超过高频率单核的处理效能,获得较佳的性价比。目前单个芯片上集成的处理器核逐渐增多两核、三核,甚至众核处理器应运而生。 图1.2 片上系统发展蓝图 当前片上系统的发展具有一些趋势,例如片上系统已经从只有单个顺序处理器核发展到集成多个并行处理器核处理器的发展也因此进入了多核甚至众核时代。图1.2显示了片上系统的变化趋势。最初由于集成电路技术有限和工艺水平较低,处理器芯片的设计采用全定制或半定制的asic 设计方法,单芯片的面积较小,逻辑功能较少。随着应用需求的提升,需要在单个芯片上集成更多的资源,获取更强的处理能力,集成电路设计和制造技术的发展,使得在单个芯片上能够集成大量的同构或异构处理器核或者专用计算逻辑。此外成本和上市时间带来的挑战促使多核处理器的设计转移到以ip 核重用为主的设计方法上。由图1.2 可知如今的片上多核系统包含多个微处理器核,dsp 核以及专用计算逻辑。 单芯片多核处理器实质上是一个芯片上集成多个简单处理器核(例如risc 核以及dsp 核等),各个处理器核可以并行执行不同的线程或进程,提高处理器计算能力,整个处理器具有较高的指令级/线程级并行性。核间使用高速片内互连结构进行通信。多个处理器核之间不但互连而且结构多种多样,处理器核本身也可以采用不同的结构与功能。根据处理器内的核的结构与功能是否相同,将多核处理器可以分为同构多核处理器和异构多核处理器。同构多核处理器的多个核执行相同或类似的任务。同构多核处理器具有非常好的规整性和可扩展性,如raw处理器。 计算内核不同、地位不对等的称为异构多核处理器,异构多核多采用“主处理核+协处理核”的设计。异构多核处理器除含有作为控制、通用计算的微处理器之外,还针对特定应用集成dsp、asic、媒体处理器、vliw 处理器等以提高计算的性能,如yhft-qdsp 处理器。多核体系结构是持续发展“摩尔定律”利用有限的芯片面积进一步提升处理器性能的有效方法。1.2 课题研究的意义 随着技术的不断发展,多核处理器越来越广泛的应用在诸多大型政府、企业等通信设备中。多核展示出其强大的性能优势,是处理器发展的必然趋势。无论是移动与嵌入式应用、桌面应用还是服务器应用,都将采用多核的架构。从单核处理器到多核处理器,虽然随着处理器核心的数量增多能够给处理器带来性能上诸多好处,但是多核处理器的设计不是多个处理器核在单个芯片内部简单排列或拼凑,如何实现多核内核之间相互协作和通信,确保提高处理速度、提高芯片处理器性能?如何实现多核内核之间相对高效的通信机制?很明显的在设计多核处理器时仍然有一些系统级的问题有待科研与工程人员解决。其中面临的巨大的挑战有多核处理器体系架构设计,程序执行模型的选择、共享总线的多级cache 设计与一致性,核间通信技术,总线设计,操作系统设计的任务调度、中断处理、同步互斥,低功耗设计,存储器墙,可靠性及安全性设计等。多核处理器在并行化、软件优化、高性能计算(hpc)、核间通信技术研究及多核心等诸多技术方面为中国软件开发和应用行业提供了巨大空间。1.3本课题研究主要内容 针对目前多核处理器的发展方向和国内外市场需求和多核处理器核间通信架构发展趋势提出了一种基于新型cmc总线的多核处理器结构,其主要研究内容有:(1)分析了多核处理器的发展趋势以及优势。(2)分析了现在常用的多核处理器通信架构的优缺点。(3)创新地提出了基于cmc总线的多核微处理器的体系结构。(4)利用proteus仿真软件在8051上验证cmc总线可行性。该设计的主要创新点有:(1)创新性地提出了一种新型的多核处理器通信架构。(2)cmc总线针对多核处理器的结构 ,cmc中的m可以根据需要在运行时动态作为不同核的缓存来使用。1.4课题研究方案 本课题的研究内容建立在多核与总线基础上,cmc(core memory core)总线的结构是由挂在同一个总线上的多个核( core) 和缓存( memory) 组成。核与核之间,核与主存之间的通信系统采用层次化的双向总线结构,其中包括有外总线、长总线和若干条短总线组成。其中有一个核的权限是主核,其余核为从核。主核通过外总线与存储程序指令和数据的主存进行数据交换。长总线工作在主从模式,短总线工作在多主模式,核与核之间的地位相同,任何一个核都可以主动要求总线控制权,在总线空闲时获得总线控制权。cmc在节约了资源的前提下保证了数据的完整性。本课题内容就是用proteus搭出电路,将程序运行,验证cmc总线多核提高了效率,并在proteus上实现并行计算,完成上述核间通讯。第2章 多核处理器核间通讯体系结构2.1多核处理器国内外发展现状 目前在国内多核处理器的研究相比于国外还有很大的差距,但是也有迎头赶上的趋势。我国的国防科技大学为我国单芯片多处理器的研究做出巨大的贡献。该校设计出了一种多核处理器内部多核共享多端口cache 的架构模型,每个核都拥有一个私有的指令缓存,核与核之间的通信架构采用的是交叉开关链接一个共享的级数据缓存,该缓存具有多访问端口。现在已经成功投片的yhft64-3 多核处理器,它的性能可以在500mhz 的相同频率下1. 6ghz 的itanium 2 处理器相媲美yhft64-3 多核处理器的计算处理能力异常强大,因为它内部包含的18个并行处理的浮点处理构件可以进行多个层次并行处理数据。 2003 年,我国清华大学的soc 与微处理器研究中心就展开了单芯片多处理器 技术的研究,在2005年又有一款thump cmp模拟器的问世,也填补了我国在该领域的空白。该处理器内部有两个thump107内核,两个内核各有一个私有的一级缓存,两个内核之间还有一个共享的二级缓存,每个内核都采用了该校自主研制32 位的mips 指令集的微处理器【4】 。 2002 年位于北京中关村的中科院计算成功开发并投片中国第一款自我研发的处理器芯片-龙芯处理器。这十多年来,龙芯的每一步发展都牵动着我国计算机产业从业者的神经。它的快速发展大大促进了我国的处理器产业的发展,使我国在这方面与世界先进水平大大缩小。现在,我国自主研发的龙芯处理器芯片也推出了多核处理器芯片。龙芯推出的多核处理器芯片的内部架构采用了片上网络与交叉开关相结合的结构,这种结构的特点是带宽高、可扩展性好。该芯片架构可以根据实际需求,选用龙芯自主研发的64 位通用处理器核,也可以选用专用的处理器核。 2005年ibm、东芝和索尼发布了一款多核处理器cell处理器。根据这些公司公布的部分的结构设计和性能参数显示,利用内部互联总线相连9个内核、1个存储器控制器、1个io 控制器,它们构成了整个cell处理器。其中这9个内核包含了1个powerpc通用处理器核(ppe)和8个协处理器(spe)。整个处理器的内部统一编制,通过共享总线完成核间通信,处理器访问外部端口亦是如此。 2005年sun公司研发成功了一款多核处理器ultra sparc t1处理器(代号为“niagara”)。紧接着在2007sun 公司又成功推出了一款升级产品ultra sparct2处理器(代号为“niagara 2”)。niagara 和niagara 2 都是由8 个处理器内核构成。niagara 2中的内核相比于niagara 中的内核升级为ultra sparc t2 内核,niagara 2 相比于原来niagara有了许多不同之处:niagara多了一个浮点运算单元;ultra sparc t2 内核同时支持的线程数是8 个;ultra sparc t2内核增加了一级流水线,多出来的一级流水线主要是选择待执行的线程;8 个ultra sparc t2 内核共享一个4mb 的二级缓存,二级缓存的映像机构结构是16 路组相联,二级缓存采用写回和写分配策略,行长度为64 字节。每个内核一级指令缓存设立指令缓冲区,一级缓存的映像机构结构是8 路组相联;ultra sparc t2 的二级缓存分为8 个存储体结构,相比于ultrasparc t1的4 存储体结构,性能将提高10%。intel、amd正式推出多核架构的处理器在真正意义上揭开多核处理器进入了商业市场的序幕。 2007年4月intel 宣称他们正在研发一款集成在一块芯片上的超大型计算机的计划。芯片的计算速度预计要达到每秒一万一次,性能相当于1996 年的intel 自己研发的超大型计算机,该计算机占地面积约为2000 平方英尺,而该芯片的大小只有邮票这么大。根据该公司的计划该芯片包括有80 个处理器核心。 2008 年intel 对外界宣布了一种全新的多核处理器架构nahelem 架构,它的出现也为intel 的多核处理器的研究掀开了新的一页。 2011年5月4日,美国加州圣克拉拉-英特尔公司宣布设计出一种新型的晶体管-三栅极(tri-gate)的革命性3-d晶体管设计(英特尔曾在2002 年首次露),自从50多年前晶体管被英特尔发明以来,这种晶体管的出现是前所未有的。2-d晶体管在社会各个领域的电子控制中运用,3-d立体的晶体管或许会改变我们的生活。 amd公司也发布了一款四核处理器,它的代号为巴塞罗那,这款处理器的发布标志amd的处理器也进入了四核时代,为amd处理器翻开了新的篇章。 随着处理器技术的发展,越来越多的处理器使用众核处理器【6】。现在市场上已经出现大量的众核处理器产品。可以预见,众核处理器很快就将成为处理器市场的主流。现代的众核处理器可以分为两类:一类是从通用cpu 发展而来的众核通用cpu,另一类是众核加速器。 前者是在一个芯片中集成多个通用cpu 核心,而后者使用的核心则往往要简单得多,片上通信的架构更加先进。众核通用cpu使用的处理器核心往往都是传统的cpu设计,它们可以独立的运行操作系统,基本上不做过多的更改。这些处理器使用的核心都是从传统的通用cpu进化而来的,都具有比较大的cache和复杂的乱序执行部件以加速单线程程序的执行。但是也有众核通用cpu采用简单的处理核。之所以简单的核心是因为芯片上可集成的核心数将增多,芯片整体的吞吐率变大。目前一些主要的处理器生产商都已经开发出一些众核cpu,例如amd的包含12核opteron处理器、intel的包括有8核至强cpu、ibm 包含有8核的power 7处理器。众核加速器方面目前使用最广、最受关注的是gpu。gpu(graphicprocess unit)是nvidia 公司在发布geforce 256 图形处理芯片时首先提出的概念。众核cpu使用的核心是通用cpu,众核加速器则是往往是面向特殊的领域设计的,这也正是它们名字的由来。它们集成的核心数量比众核cpu 要多,在设计方式上与众核cpu有很大的差别。 gpu不能独立运行操作系统,必须依附在通用cpu上发挥作用。虽然gpu中的内核要比众核通用cpu 中内核相对简单,但是存储器带宽和处理能力上gpu 比众核通用cpu 还是要强很多。gpu 的大部分芯片面积都用做计算单元,所以对于gpu 计算要求较高。gpu 的设计目标是使芯片的吞吐率最大化,它的处理器方式并不是优化某一些线程的运行延迟,而是gpu将每个内核都做得简单一些,这就是小核模式。这样的话在相同的工艺下,同样的芯片面积内可以集成更多的核心4。 目前的主流gpu有nvidiagpu,该gpu为了实现了较细粒度的线程间通信,运用统一架构单元,这样的话应用范围将变得非常的大。gpgpu(general purpose gpu,基于gpu 的通用计算)开始被人们重视的标志是2006年nvidia发布了一款支持directx10的gpu。2007年,nvidia 公司发布的cuda(计算统一设备架构compute unified device architecture),标志者通用计算在gpu 上真正的实现。 cuda是由nvidia推出的gpu编程模型。cuda 的实质是一套软硬件系统,编程模式是单程序多重数据(spmd),cuda 目标是将gpu作为数据并行计算设备,多个并发的线程执行单一的程序并行地处理多重数据。cuda最基本的运算单元是线程(thread),多个线程组成线程块(block)。cuda的基本思想是尽量得开发线程级并行(thread level parallel),这些线程能够在硬件中被动态的调度和执行。对于目前大部分并行处理数据,设计人员只需花费很小的精力,性能就能获得较大提升的。但是设计人员想要设计高性能的gpu 通用计算程序,并行算法和gpu 架构方面的知识还需要设计人员深入研究。2.2 多核处理器核间通信技术发展现状未来众核处理器上将集成数百个处理器内核。系统的数据通信量非常庞大,对通信带宽提出了更高的要求。在这种规模的多核soc设计中,多核处理器的多个核心虽然各自执行自己的代码,但是不同核间可能需要进行数据的共享和同步,核间通信机制用于多个进程或线程之间的数据通信以及多个处理器核之间的同步,对系统性能影响非常大。当前多核处理器的片上通信主要有3 种方式【6】:总线共享、交叉开关互连(cross-bar switch)和片上网络(network on-chip, noc)。2.2.1共享总线简介 共享总线的互连方式可以分为:单总线、多总线和层次化总线。在soc 的设计中共享总线的通信方式是较常用的一种方式,国外有coreconnect 总线、amba总线、wisbone总线,国内有c*bus总线等。国内有许多高校对于soc设计中的共享总线结构的研究,例如西安电子科技大学的“高性能soc 异步互连技术研究”项目。在整个共享总线的通信结构中的设计中仲裁器的设计是很重要的一个环节,为保证整个soc设计有较高的数据传输速率以及较高的总线利用率,另外个别端口能够频繁地、实时地传输数据,最重要的一点是每个端口均有机会获取共享资源。这就需要设计者选择合适的仲裁策略。共享总线的通信结构广泛运用在soc设计中,但是存在一些弊病。一个芯片中有许多的部件,在同一时刻仅仅能接受一个部件作为主设备占用该总线,基于此原因,整个soc 的性能无法提高。共享总线的互连问题、功耗问题也会随着芯片规模的扩大而凸显出来。 2.2.2交叉开关互联 另外一种交叉开关互联结构,随着芯片设计尺寸的减小,在许多芯片设计也运用到了这种结构。交叉开关的结构也是有利有弊,有利的一方面对于并行处理器的多核处理器而言,所有的部件通过交叉开关能够两两互联通信,每个处理器核都可以与任意内部存储器部件通信,通信的效率是非常高的。不利的一方面与之付出的硬件成本比较大,一个由n 个节点组成的交叉开关,它的设计复杂度的数量级着o(n2)增加,当某两个或多个设备要同时访问某一设备,必须设计额外的仲裁器并伴随着设计仲裁器优先策略,这样的话增加了设计难度。 随着工艺尺寸的缩小,单元门的延迟(晶体管的开关时间)成比例地降低,然而全局互连线的延迟并不随着工艺尺寸的降低而成比例地降低。在深亚微米尺下,芯片投产时即使采用最优的工艺条件(低电介质常数的半导体材料低电阻率的纯铜材料。高/宽比很高的互连线以及插入优化的repeater),顶层全局互连线在传输信号是需要几个甚至十几个时钟,芯片性能还是受限于通信延迟。随着电路规模的扩大,全局总线限制了并发通信。虽然总线可以有效地连接多个通信方, 但总线地址资源并不能随着计算单元的增加而无限扩展,挂接在总线上的设备个数越多导致总线接口电阻电容的增加。虽然采用分段式总线、层次化总线、高级的仲裁机制等优化方式可以提高总线的性能,但是不能从根本上克服总线的可扩展性差的问题。还有总线可由多用户共享,但一条总线无法支持一对以上的用户同时通信,即串行访问机制导致了通信的瓶颈。从这个角度讲,随着soc集成度的增加,由于良好的可扩展性片上网络(nework on-chip,noc)【5】逐渐成为在单芯片上多处理的片上通信比较好的解决方案。基于noc 的多核处理器逐渐成为当前甚至未来处理器的主流。amd、intel、sun、arm、ibm 等比较大的计算机厂商,都将他们当前或未来产品设计投向基于noc 的多核系统。例如在2007 年intel 公司的研究人员宣称他们研制实现了一款众核处理器,该款众核处理器通过108 的2d mesh 结构的noc 连接80 个处理器核。2.2.3片上网络 noc方法为片上通信提供了一种新的设计空间,2002 年standford 大学的demicheli 提出了soc内部通信中采用noc 方式的概念。集成电路设计总是想方设法把现有的各种电子电路乃至计算系统集成到单一芯片上,因此计算机体系结构历来是集成电路片上系统架构的参考体系。noc 结构的核心思想就是把传统计算机网络中互连思想移植到了片上系统各设备之间的通信。 基于noc 结构的系统能很好地适应在现在复杂soc设计中常使用的全局异步局部同步的时钟机制,具有noc 结构的多核处理器通过并发和非阻塞交换带宽更高、节点也有比较好的扩展性、通过分组交换获得更高的链路利用率,这是它与传统总线式结构的差别。它被认为是未来集成工艺下多核技术发展的一个方向。noc 的网络结构是报文交换的直接网络,通信协议比总线协议要复杂得多,采用分层的网络协议。近年来多种基于报文交换网络的片上网络互连结构也被提出来。 然而相对于共享总线结构来说也有许多缺点,交换电路和接口增加了芯片的硬件资源消耗,数据打包、缓冲、同步和接口增加了延迟开销,增加的逻辑造成了功耗增大。 有人提出另外一些通信结构的概念。把一块芯片分为几个孤岛,当某个孤岛需要工作时就工作,不需要工作时就停止供电,这样的话功耗就会降低,整个芯片的时钟频率也会降低。孤岛内的通信结构可以是各种通信结构的组合。 有人也提出混合的片上通信结构,把各种通信结构组合在同一块芯片中,充分发挥各种通信方式的优点。特别是noc 结构的提出,使得片上通信的方式更加趋于多样化。例如利用共享总线方式硬件资源占用较小的特点,利用noc 结构的高带宽、分层协议传输的高可靠、分层网络中点对点传输低功耗的特点,将它们组合起来,使得芯片的性能参数得到优化。对于片上通信系统结构的研究,为soc系统的优化设计提供了一个探索空间。2.3多核处理器核间通讯体系结构2.3.1多核处理器片上通信的瓶颈 随着芯片设计尺寸的不断减小以及设计复杂度的增大,多核处理器的传统的片上通信架构遇到了许多新的设计特点【5】。(1) 全局同步 在目前的大型soc芯片的设计,实现整个芯片的严格时钟同步已经不切实际。由于特征尺寸缩小后,信号延迟变小,工作频率提高,设计人员要实现全局时钟所要付出的代价是更大的硬件开销以及功耗的急剧上升。即使以较大的代价实现了全局时钟,时钟偏斜变得难以控制,而时钟树又是影响芯片功耗和成本的一个主要因素。另外全局信号的延时超过一个时钟周期的可能性也大大增加。(2) 延时 soc 设计中的信号延时包括线延时和门延时,cmos 的集成电路线延时与门延时并不相同,而如今的ic 设计已经达到超深亚微米,线延时已经超过门延时已经成为设计者提高芯片的性能的首要瓶颈。随着众核处理器的出现,核的个数将成倍的增加,核间的互联线长度增大,设计者能够有效地控制线延时的困难将大大增强。超深亚微米的设计尺寸下,时钟频率提高,线延时有可能超过一个时钟周期甚至不只一个时钟周期。所以在设计soc 过程中线延时可控的是设计者必须考虑的问题。(3) 信号完整性 除了全局同步的问题以外,在芯片设计时soc 的信号完整性的问题也是设计者面临的重大挑战。如果信号完整性问题处理不好将使整个soc芯片的性能下降,甚至整个芯片都无法正常工作。信号完整性问题包括有电磁干扰、串扰、反射、轨道塌陷等问题。信号完整性不仅是决定信号时序的关键因素,还是影响芯片功能完整性的一个重要方面。有时为了保证信号完整性,需要在性能上做出一些牺牲。(4) 功耗 功耗已经成为限制soc 复杂度的一个基本因素。随着工艺尺寸的缩小,晶体管密度以及开关速度迅速增大,芯片的总功耗不断增大,互连逐渐成为系统总功耗的最大消耗者之一。而传统的总线结构传输数据时要对所有挂接在总线上的负载电容进行充放电,浪费了大量的功耗。因此,降低互连通信的功耗是当前soc设计面临的一大挑战。 在soc 设计中随着设计复杂度的提高,功耗问题成为设计者不得不考虑的问题。如何降低在多核处理器中的核间通信的功耗,也是研究者的一个重要课题。传统共享总线架构挂接在总线上电容的充放电。随着众核处理器的出现,核的数量成倍的增加,核与核之间的互联延时增加。使用交叉开关结构开关的频繁切换以及芯片上的晶体管密度增大。这些因素都使能量消耗变大。因此设计者可以从以下几个方面入手设计一种新型的互联通信架构,使之有更低的功耗。2.3.2多核处理器通信架构特点介绍(1) 共享总线结构 如图2.1 所示,多核处理器共享cache总线结构是指每个处理器的内核拥有共享的二级或三级cache。图2.1 中共享总线上方的内核为主设备,它是通讯发起方,下方的设备为从设备。主设备可以由n 个处理器核构成,从设备为本地存储器和n 个共享二级cache 设备,共享的cache 用于保存比较常用的数据。多核处理器内部的各个内核通过共享总线进行通信。 n 个本地cache 分别属于各个处理器,即这n 个本地cache在逻辑上统一编址,但每个处理器只能访问自己的存储地址空间。在共享cache的多处理器系统中,多个设备同时进行的共享存储器读写操作,可能会出现cache不命中事件或cache的一致性问题,对整个cpu通信效率产生负面影响。 因此必须采取同步措施才能保证读写操作的正确性并且提高整个多核处理器的系统性能。解决cache的一致性和不命中的问题有很多种方法,在共享总线互联通信结构中总线接口单元(biu)解决。高效多端口biu访问的仲裁机制将是多核处理器研究的重要内容。biu 位于每个内核私有一级缓存内部,包含有一个仲裁机。当多核处理器中多个内核同时访问某个内存时biu 内部的仲裁机采用一定的仲裁策略,分配某一个内核访问内存,该内核此时获得总线的控制权。当出现cache 不一致现象时biu 也利用仲裁机的仲裁策略解决这个问题。总线仲裁策略可以被采用的有很多种,实现最为简单采用循环占用总线仲裁策略。图2.1 共享总线结构图 这里我们列举了一种多端口的biu结构,该biu的特点是多核对主存的读写操作由单字节转换为突发式(burst)访问,并且寻求到最佳一次突发式访问字的大小,使得读写效率最高。 在单一共享总线结构中,所有设备共享一条总线。当有多个主设备同时申请总线时,由biu决定总线的所有权,各个主设备的优先级一般预先由设计者来定例如斯坦福大学研制的hydra多核处理器,它采用了l 条64 位的写通过总线和1条256位的读/写替换总线,位于片上l2 cache 内部biu 实现处理器核与和内存接口的通信。 实现片上总线的方式有许多种,如果某段总线上传输速率并不相同,设计者就可以对这段总线分段,分段后总线可以在不同时间段去竞争总线,这样的话整个共享总线的利用率就变高了。下面描述的amba总线就是这种这种类型。在共享总线上的主、从部件较多,并且想要高总线利用率,实现所有主从部件的点对点互联,可以对共享总线进行分层,实际运用中可以采用交换矩阵形式。另外,提高总线的利用率的方式,是从soc 中的从部件下手,一旦从部件需要读写操作时,从部件占有总线。这种方案叫做从部件仲裁(slavesidearbitration)。 如果多核处理器的片上通信结构采用共享总线。共享总线方式为了完成总线复用以及多核处理器内部各个部件的互连,需要不同地址的解码来完成,如果外设较多的话,多核处理器内部的地址总线的扇出将成为多核处理器的新的负担。同时过于复杂的解码逻辑会增加额外的时延,仅仅适用核的个数不多的多核处理器。尽管利用采用多总线方案、提高总线的带宽、以及提高时钟频率能够改善全局布线、延时等问题,但是提高总线的时钟频率伴随而来的是功耗的上升,提高总线的带宽只有在外围设备在一个时钟周期内一直占有总线,总线的利用率才会高。还有在同一时刻只能有一个主设备进行数据的传输, 同时带宽无法随着设备的增多而进行展,导致总线可扩展性差,不再适合未来核数较多的众核处理器的通信需求。 目前比较常用的片上总线通信系统也有很多,例如ibm的coreconect总线、arm的amba 总线以及silicore 的wishbone 总线。以arm公司定义的amba总线架构的soc为例。amba(advanced microcontroller bus architecture)总线规范,它是一组针对基于arm核的、片上系统之间通信而设计的标准协议。amba总线采用分段多总线体系,在amba总线规范中,定义了三种不同类型的总线:ahb、asp、apb 总线。在amba规范2.0 中,arm 引入了ahb 总线,amba规范1.0 中只有asb和apb 总线。 ahb(advanced high performace bus):用于连接高性能系统模块例如dma 控制器、arm 的嵌入式处理器、片内存储器、还有一些该带宽的组件的,支持突发模式数据传输和事务分割。主模块或从模块挂接在ahb 总线上,这些主从模块都只有单一属性,但是某一模块的属性可以互换,例如dma 模块ahb 总线上读写数据时是主模块,但在被编程时作为从模块。处理器内核、dma控制器、dsp 内核等作为主模块是很正常的,从模块可以是片上的存储器、外部存储接口等。主模块向从模块发出访问要求的模块,从模块是接受主模块的访问要求并做出回应的模块。ahb总线上最多可以挂接16 个主模块和任意多个从模块,如果主模块数目大于16 则需再加一层结构。ahb 支持多个主模块设备,所以需要仲裁器。ahb 必须只包含一个仲裁器,总线仲裁器确保每次只有一个总线主机被允许发起数据传输。ahb 中的译码器用来对每次传输进行地址译码并且在传输中包含一个从机选择信号。 asb(advanced systembus):这是较老的系统总线,现在已经被ahb 总线替代。也用于高性能系统模块的连接,支持突发模式数据传输。 apb(advanced peripheral bus):apb上连接着大多数的系统外设,一般是接在ahb 或asb 系统总线上的第二级总线。当作为而ahb 总线的二级总线,apb与ahb 之间则通过总线桥相连,能减少系统总线的负载。该总线有如下特点:存储器映射的寄存器接口,没有高带宽接口,通过可编程的控制来访问。一个amba总线为架构soc,其典型的架构如图2.2所示。 图2.2 基于amba总线的典型soc架构 amba 总线协议实现起来相对来说比较复杂,硬件资源占用较多。不适合未来小核模式多核核处理器的通信需求。(2)交叉开关结构 交叉开关(cross-bar)的设计思想借鉴了计算机网络的通信结构,大家一致认为cross-bar适用于通信需求量比较大的多核处理器。cross-bar的结构如图3.3示。图2.3 cross-bar 的拓扑结构 如图2.3 所示采用了cross-bar 的通信架构的多核处理器中。该处理器每个内核包括有一个私有的一级缓存l1 cache、若干个共享的二级缓存l2 cache。把私有的l1 cache 当作该内核自有的存储器,共享的l2 cache作为数据交换时的数据存储器。n 条横向连线和m 条纵向的连线构成了cross-bar结构。该结构使得每一个处理器内核和任意一个共享的l2 cache 进行点对点的通信。横线与纵线之间就是一个交叉开关,控制逻辑决定横纵向的那个开关接通。如果出现处理器核同时想要访问同一个l2 cache,必须有一定的仲裁机制决定那个处理器核访问该l2cache。 图2.3 中多核处理器的cross-bar 通信架构使用了相对独立的共享的l2cache将会带来很多好处:首先使用了共享的l2 cache,处理器内核需要进行读写操作,操作系统就可以根据通信量的大小动态地为该处理器内核分配l2 cache的大小,这样的话处理器的性能就会显著的提高。其次,缓存中数据延时较大的问题可以迎刃而解,原因是多核处理器中的任意一个处理器内核都可以访问l2 cache,这样的话处理器内核并不要对缓存中的数据进行更新与同步,整个处理器的工作量就降低了。 cross-bar 为处理器内核访问存储器提供高带宽。如图2.3所示每一条交叉线中的交叉位置等效于一个开关,需要控制逻辑来控制具体是哪一个核与l2 cache连接。如果有不同的处理器核需要同时访问同一块l2 cache,则需要有相应的仲裁机制对不同处理器核的访问进行控制。 cross-bar 设计相比于共享总线的通信方式,可以说是有根本性的改变。共享总线的通信架构带宽是固定的,而cross-bar 结构随着主从设备对的增加,累计的总线带宽将相应地增大。cross-bar 还能够解决共享总线结构的拥塞问题,原因是采用了cross-bar 的交换网络利用一定仲裁机制确定数据流向。若采用cross-bar 结构所有部件都是点对点相连,出现信号反射的概率大大降低。原因是与共享总线系统的多负荷能造成阻抗的不匹配。cross-bar 从一个节点发出的消息可以同时被多个节点接收,这种具备广播功cross-bar 能可以比共享总线有更高的传输速率。此外cross-bar 是可重构的,充分利用交叉开关总线的总线带宽,cross-bar 可扩展更强。 共享总线与交叉开关两种结构都易于设计实现,软件开销较小。交叉开关是多通道的数据传输,相比于单通道的共享总线互联结构具有更大的访问带宽。但是实现交叉开关需占用更多的片上面积。当核的数目增加时,多核处理器核间通信源硬件资源消耗的数量级将按平方阶o(n2)增加(n为多核处理器中核的个数)。 这两种结构在进行数据交换时可能会产生竞争现象,可采用总线侦听协议的方式来保证数据的一致性与完整性。这样核本身需要侦听逻辑,处理器的逻辑资源就增大。随着多核系统中核的数目不断增加,等待时间变长,多核处理器的软件开销加大。共享总线与交叉开关结构都不适合于核数较多的多核处理器,对于未来众核处理器会形成性能瓶颈。(3) 片上网络结构 随着众核处理器的出现,未来集成在处理器内部的核的个数将成倍的增加。当核的个数比较少时,共享总线的通信结构总线限制了所连接的内核的个数,仅适合连接3 到10 个内核。当核的数量较多时,多个并行的数据流就会带来竞争冲突,每个核的读写访问存储器时获得总线的等待时间将变长,信道的的吞吐量变低。交叉开关的结构在核的个数比较多的情况下硬件资源的消耗将成倍的增长。所以设计者必须重新设计出一种新的多核处理器通信架构。 为了解决设计复杂soc 时的问题,一些研究机构提出了以通信为中心的复杂soc 的计算资源的集成设计方法片上网络(network on chip,noc)。有人表示片上网络会成为下一代多核的主流互连结构。目前有许多机构在noc 方面做了大量研究,例如2000 年3 月,法国pierre et marie curie 大学的guerrier 等人提出了一种基于胖树(fattree)拓扑结构的多核片上互连网络架构spin。意大利bologna大学和美国stanford大学联合研发的一个可综合的、高性能noc的xpipes。stanford大学的dally等人提出了基于报文(packet)的互连网络结构,从而代替不同的连线结构。 图2.4 简单的noc拓扑结构 如图2.4所示,计算资源和通信网络构成了noc 片上通信系统的soc。计算资源一般由ip 核和本地内存组成。ip 核是一个可以重构的硬件单元,可以是处理器内核dsp 核等。通信网络实现计算资源之间的高速互联。使用网络结构的前提条件就是多ip 核系统,因此基于noc 体系结构是多核处理器系统最有前途的解决方案之一。noc 中各个计算资源的数据交换是通过报文形式。noc 网络拓扑结借鉴了通信协议中的分层思想,这就为从物理级到应用级的全面功耗控制提供了可能。noc结构点对点的通信架构取代了传统的总线架构。点对点的并行通信能力能够使整个soc的通信带宽提高好几个数量级。noc 网络拓扑结构提供了良好的可扩展性。 noc网络拓扑结构将长的互连线变成交换开关之间互相连接的短连线这样可以在一定程度上改善深/超深亚微米条件下信号传输线延迟的问题,soc功耗将大大降低。总线架构可重用性差,noc结构通信协议层是独立的资源,并且运用更具弹性的技术,开发周期就大大缩小,减少开发成本。 选择合适的noc拓扑结构是noc设计中非常关键的问题之一。由于系统需求、节点模块的尺寸和不同的位置,需要不同类型的拓扑结构。拓扑结构决定了片上网络中各lp核节点的连接方式,其对于网络的复杂度和吞吐量有着直接的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025小鸭苗买卖服务合同
- 智能手机在传染病防控中的应用指南
- 骨科亮点护理实践体系
- 青年医学教师授课比赛实施要点
- 人教版小学一年级语文上册第八单元测试题
- 造口疝气规范化护理要点
- 二手房交易方式之委托交易
- 学校下学期质量管理工作总结模版
- 2024年09月26日更新【Attest】2024年美国媒体使用报告
- 服装合作协议书
- 2025年5G网络在无人机领域的应用可行性研究报告
- 2025四川爱众集团第一批次招聘10人笔试参考题库附带答案详解
- 工业用地开发项目成本分析与资金筹措方案
- 2025年初中地理学业水平考试模拟试卷:地图与地球知识综合训练试题卷及答案
- (人教2024版)英语七年级下册Unit7.4 Section B 1a-2d课件(新教材)
- 2025年广东嘉城建设集团有限公司及其下属公司招聘笔试参考题库含答案解析
- 2025年湖北荆州市监利市畅惠交通投资有限公司招聘笔试参考题库含答案解析
- 酒店入股合同协议书
- 银行sql考试题及答案
- 隔离技术知识试题及答案
- 2025三方贸易协议合同范本 贸易合同范本
评论
0/150
提交评论