摘 要: 针对多核处理器的特点提出一种新型的异构多核DSP处理器结构。主处理器为通用处理器,作为控制密集型处理器核用于系统管理和控制;8个DSP作为计算密集型处理器核,用于大信息量融合计算。详细设计8个DSP之间的NoC互连结构。首先采用2×4 2D Turos结构进行单个路由节点结构的设计,包括数据包格式、路由和仲裁设计;其次对路由节点进行编码、路由算法设计和确定节点路由方向。该结构具有总线局部通信带宽高的优点,采用NoC的易扩展性和NoC在各DSP之间通信的并行性使系统规模易于扩展并满足大批量数据传输要求。最后通过仿真实验,验证了该设计的有效性,为后续多核处理器的设计与实现打下坚实的技术基础。
关键词: 多核处理器; 片上网络; 拓扑结构; 数据传输
中图分类号: TN911?34; TP391 文献标识码: A 文章编号: 1004?373X(2016)16?0083?05
Abstract: Aiming at the characteristics of multi?core processor, a new heterogeneous structure of multi?core DSP is put forward. The main processor is a common processor used for system management and control to control the intensive processor cores. Eight DSPs as the computation intensive processor cores are used to fuse and calculate the large amount of information. The structure of NoC interconnection among 8 DSPs was designed detailedly. The 2×4 2D Turos structure is used to design the single routing node structure, including data packet format design, routing design and arbitration design. And then the items of routing nodes coding, routing algorithm design and node routing direction determining were performed. This structure has the advantage of high bus local communication bandwidth. The extensibility of NoC and parallelism of NoC communication among DSPs are used to extend the system scale easily and satisfy the requirement of massive data transmission. The validity of the design was verified with simulation experiment, and it lays a solid technical foundation for follow?up design and implementation of multi?core processors.
Keywords: multi?core processor; Network on Chip; topology structure; data transmission
0 引 言
多核处理器是在一个芯片上集成多个处理器核,通过多核并行执行的方式来提高性能,对计算机体系结构的发展有着深远的影响[1?2]。
近年来,国内在多核处理器方面主要以中科院龙芯系列、国防科大MASA和“飞腾64”(FT64)、西安微电子技术研究所并行处理器等为典型代表。
以总线结构为主要通信与互连方式的多核处理器越来越难以满足要求,面临以下问题:通信效率及互连线延迟问题;单一时钟同步问题;可扩展性问题。
因此,多核处理器核间互连需要一种更完善的互连技术――NoC(Network on Chip)技术[3?5]。
NoC的核心思想是借鉴并移植计算机网络中的概念和研究方法[6?7],在单个芯片上实现基于网络通信的多处理器系统,从体系结构上彻底解决总线架构的不足。
1 异构多核处理器结构
本文提出了一种新型的异构多核DSP处理器结构,其结构架构如图1所示。主处理器为通用处理器,作为控制密集型处理器核,用于系统管理和控制;8个DSP作为计算密集型处理器核,用于大信息量融合计算。该结构采用总线+NoC互连结构。总线用于连接主处理器、共享存储器以及I/O。8个DSP采用NoC进行互连,满足大批量数据传输要求,它们通过片上总线和主处理器进行通信。该结构利用总线局部通信带宽高的优点;利用NoC在各DSP之间通信的并行性来满足大批量数据传输要求。同时利用NoC的易扩展性,使系统规模易于扩展。
1.1 拓扑结构设计
拓扑结构体现了NoC中通信节点是如何在芯片中分布和连接的。
本文采用2D Torus结构作为2×4 NoC的拓扑结构。如图2所示,DSP0~DSP7为连接在NI(Network Interface)上的DSP处理器,R0~R7为8个路由节点。其中,R0~R3不直接与总线连接,它们和总线的通信是通过R0~R7和NI实现,为四输入路由节点;R4~R7通过NI与总线相连,为五输入的路由节点。 1.2 路由节点设计
由图2看出,R0~R3为四输入和四输出路由节点。为了提高网络拓扑结构数据并行传输能力,采用结合的输入/输出缓存结构,输入端口和输出端口都设有FIFO缓存,其内部框图如图3所示。
由图3可看出,路由节点结构主要由四部分组成:输入部分、仲裁和调度部分、Switch和输出部分。
本文采用轮转优先级算法和固定优先级算法相结合的仲裁调度算法。如图4所示为仲裁状态转换图。其中,“响应端口0”表示上次响应输入端口0,方框内的数字’0’,’1’,’2’,’3’分别表示输入端口0、输入端口1、输入端口2和输入端口3。r0,r1,r2和r3分别表示输入端口0、输入端口1、输入端口2和输入端口3的请求信号,当请求信号有效时为’1’,无效时为’0’。
目前,大部分NoC中都采用二进制编码机制[8?9],即XY坐标编址,每个节点的地址分别与首节点X坐标与Y坐标偏移量的二进制编码组合。本文也采用二进制编码机制,路由节点编码如图5所示,该编码使得路由算法的设计更为简单。
1.3 路由算法设计
8个路由节点编码如图5所示。本文设计的路由算法如下,先向Y方向路由,再向X方向路由,属于一种最短距离的确定型路由算法,简称Y?X路由算法:
If a=1 then
Data is transmitted to Y+(or Y-) direction;
Else if a=0 then
If b=0 then
Data is transmitted to local direction;
Else if b=1 or b=2 then
Data is transmitted to X+(or X-) direction;
Else if b=3 then
Data is transmitted to X+3(or X-3) direction;
End if;
End if;
在路由算法设计中,首先对缓冲区中的数据进行解析,通过比较目的节点编码和当前节点编码来确定路由方向。四输入节点路由方向如图6所示,五输入节点路由方向如图7所示。
根据图5路由节点编码、图6和图7分别为四输入和五输入节点度路由方向,确定各个路由节点之间端口连接关系,实现了2×4 2D Torus拓扑结构设计。
2 仿真验证
以上设计采用Active?HDL软件进行编程实现。其中,Buffer采用64×8 b FIFO。在仿真验证阶段,输入数据包格式如图8所示。
2.1 单个路由节点数据传输的正确性
2.1.1 无端口竞争的数据传输的正确性
以输入端口0为例,向输出端口3发送5个数据,输入端口0向输出端口3发送的数据为:
输入端口0: ”A0”,”A1”,”A2”,”A3”,”00”。
仿真结果如图9所示
2.1.2 有端口竞争的数据传输的正确性
以输入端口0~输入端口4为输入端口,同时向输出端口3输出3个数据,验证出现竞争时的数据传输的正确性。输入端口0~输入端口3输入的数据分别为:
输入端口0: ”90”, ”91”, ”00”;
输入端口1: ”92”,”93”,”00”;
输入端口2: ”94”,”95”,”00”;
输入端口3: ”96”,”97”, ”00”;
仿真结果如图10所示。
由以上仿真结果看出,单个路由节点中,数据传输经过中间的各个环节,其结果正确,并实现了数据连续读写操作。
2.2 路由节点之间数据传输的正确性
以R0路由节点为例,依次向R0~R7分别发送2个数据, R0分别向其他路由节点输入的数据分别为:
仿真结果如图11所示。
数据向网络中传输数据时,通过对输入数据进行解析、路由和仲裁,数据准确地发送到相应的输出端口,并且实现了数据的连续读写操作。
2.3 路由节点向总线传输数据的正确性
以R0路由节点为例,依次向R4~R7总线端口分别发送2个数据, R0分别向R4~R7路由节点输入的数据分别为:
仿真结果如图12所示。
根据图12仿真结果,R0中的数据经过网络传输后,准确地发送到相应的输出端口,并实现了数据的读写传输。
2.4 总线向路由节点传输数据的正确性
以R4路由节点总线输入端口为例,依次向R0~R7分别发送2个数据, R4分别向其他路由节点输入的数据分别为:
R0: ”81”, ”82”, ”00”;
由仿真结果看出,总线上的数据经NI向网络传输后,准确地传输到相应的路由节点,并实现了数据的连续读/写操作。
3 性能分析
2×4 2D Torus拓扑结构选用FPGA器件中Vertex4的xc4vsx55?12ff1148,利用ISE 9.1工具进行物理综合、布局布线、优化,其资源占用情况如表1所示。网络环境、仿真环境以及吞网络环境、仿真环境以及吞吐率如表2所示。点对点数据传输时吞吐率、平均网络延迟结果如表3所示。
4 结 论
本文采用异构多核DSP的解决方案,以通用处理器作为主处理器核,用于控制和管理;8个DSP作为计算密集型处理器核,用于大数据量数据处理。得到以下成果:详细设计了8个DSP之间的NoC互连结构。首先采用2×4 2D Turos结构,并进行了单个路由节点结构的设计。其次对路由节点进行编码、路由算法设计和确定节点度路由方向;通过仿真实验,验证了设计的有效性,为以后最终的多核处理器的设计与实现打下了坚实的技术基础。 参考文献
[1] 冯晓静,李曦,王超,等.支持动态部分重构特性的异构多核体系结构[J].中国科学技术大学学报,2014,44(4):310?316.
[2] 王庆.面向嵌入式多核系统的并行程序优化技术研究[D].哈尔滨:哈尔滨工业大学,2013:15?20.
[3] MOHANTY R P, THURUK A K, SAHOO B. Performance evaluation of multi?core processors with varied interconnect networks [C]// Proceedings of 20132nd International Conference on Advances Computing, Networking and Security. Mangalore: IEEE, 2013: 7?11.
[4] DEVAUX L, PILLEMENT S. OCEAN: a flexible adaptive network?on?chip for dynamic applications [J]. Microprocessors and microsystems, 2014, 38(4): 337?357.
[5] 王谛,赵天磊,唐遇星,等.一种面向通信特征的3D NOC体系结构设计[J].计算机研究与发展,2014,51(9):1971?1979.
[6] PARINI A, CALO G, BELLANCA G, et al. Vertical link solutions for multilayer optical?networks?on?chip topologies [J]. Optical and quantum electronics, 2014, 46(3): 385?396.
[7] MOURELLE L D M, NEDJAH N, PESSANHA F G. Multiprocessor system on chip with shared memory using crossbar topology [J]. International journal of electronics, 2014, 102(1): 107?126.
[8] 孔峰,韩国栋,沈剑良,等.一种基于Mesh结构的新型层次化片上网络拓扑结构[J].电子与信息学报,2014(10):2536?2540.
[9] 冯超超,张民选,李晋文,等.一种可配置双向链路的片上网络容错偏转路由器[J].计算机研究与发展,2014,51(2):454?463.