陈鹏 CHEN Peng
(沈阳职业技术学院电气工程学院,沈阳 110045)
摘要:随着时代的发展,计算机已经得到了广泛的应用,并逐渐成为人们生产生活中不可或缺的部分。单核处理器,由于其内部结构和频率功耗等因素的影响,已无法满足人们对处理器的要求,所以,多核处理器、众核处理器应运而生。本文针对众核处理器核间通信的现有结构特点—数据等待、每个核负担大、功耗大等缺点,提出了一种适应于异构众核处理器的核间通信结构—总线中间缓存(B-MM)结构,大幅度减少核间通信的等待情况,并且尽可能的简化每一个核的内部结构使其功能专一,提高其工作效率,进而提高众核处理器的性能。最后通过Modelsim SE仿真平台实验,验证了其可行性。
教育期刊网 http://www.jyqkw.com
关键词 :计算机;众核处理器;核间通信
中图分类号: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总线接收数据,完成通信。这样,可大幅度减少核间通信的等待情况,并且尽可能地简化每一个核的内部结构使其功能专一,提高其工作效率,进而提高众核处理器的性能。
教育期刊网 http://www.jyqkw.com
参考文献:
[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.