CN102880762A - 基于NoC架构的多核处理器平台及其设计方法 - Google Patents
基于NoC架构的多核处理器平台及其设计方法 Download PDFInfo
- Publication number
- CN102880762A CN102880762A CN2012103963100A CN201210396310A CN102880762A CN 102880762 A CN102880762 A CN 102880762A CN 2012103963100 A CN2012103963100 A CN 2012103963100A CN 201210396310 A CN201210396310 A CN 201210396310A CN 102880762 A CN102880762 A CN 102880762A
- Authority
- CN
- China
- Prior art keywords
- noc
- processor
- routing node
- ram
- platform
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
本发明提供了一种基于NoC架构的多核处理平台及其设计方法,属于通信领域,本发明克服了现有技术中采用的处理器平台并行算法和并行任务处理能力低且开发周期长、运行非常不可靠的缺陷。本发明通过NoC方式接入至少两个处理器,所述NoC采用M×N的MESH拓扑结构构建而成,从而实现了提高平台可靠性的功能;同时本发明还能够通过仿真对并行算法的延时、功耗、处理精度等进行评估,提高了平台并行算法和并行任务处理的精度,且有利于缩短多核平台的开发周期。
Description
技术领域
本发明属于计算机领域,具体的说,涉及一种基于NoC架构的多核处理器平台及其设计方法。
背景技术
随着集成电路技术的发展,单个芯片上的集成度在逐渐增加,单核处理器的性能得到了很大的提高。但是由于OSI七层协议中的应用层对实时性和运算量的需求继续增加,已经很难通过提高单核处理器工作频率和扩大芯片面积来满足实时性和运算量的要求,因此多核处理器并行执行任务的解决方式便被提出来。
然而在多核处理器的条件下,传统的总线结构并没有被改变,现有技术中DSP是目前流行的一种处理器平台,可以将多个64+TM集成在一个芯片上,为密集处理型产品提供高达4.2GHz的性能,能够应用到通信基础设施、高端产业、任务关键型应用、高端图像和视频等领域,通过数据总线和配置总线,实现处理器间以及处理器和外围设备间的通信。然而DSP采用的是总线架构,同一时刻只能有一个处理器占用总线,对多核处理器平台的性能造成一定影响,使其并行算法和并行任务处理能力低,而且开发周期长同时运行非常不可靠。
发明内容
本发明的目的在于克服现有技术中采用的处理器平台并行算法和并行任务处理能力低且开发周期长、运行非常不可靠的缺陷,提供一种点对点并行传输,可以在多核平台设计前期对平台进行评估,因此提高平台可靠性的一种基于NoC结构的多核处理器平台及其设计方法。
本发明采用的技术方案如下:
基于NoC架构的多核处理器平台,包括通过NoC方式接入的至少两个处理器,所述NoC采用M×N的MESH拓扑结构构建而成,其中M和N均为正整数。
为了实现本发明,所述处理器上创建有实现处理器数据输入和输出的网络接口,其中NoC包括与网络接口一一对应的路由节点,且相邻的路由节点之间连接有两条以实现数据相反流向的数据线。
为了更好的存储、读写数据,所述处理器内设置有用于配合网络接口完成数据传输的RAM读缓存区和RAM写缓存区。
为了实现功率评估功能,所述NoC上还分别搭载了Orion2.0和Mcpat工具。
基于NoC架构的多核处理器平台,本发明还提供了其设计方法:
(1)设置路由节点的结构,使该路由节点通过XY路由算法寻找目的节点,采用虫洞技术进行数据转发,且通过时间片轮算法对输出竞争进行仲裁;
(2)根据单个路由节点的结构配置Orion2.0功率消耗参数;
(3)输入参数M和N,配置NoC的规模,将路由节点进行互联,即可获得M×N的MESH拓扑结构的NoC;
(4)在处理器上创建网络接口,并在处理器中创建RAM读缓冲区和RAM写缓冲区,将网络接口与路由节点一一连接,得到路由节点排列为M×N的矩阵型结构,并且相邻的路由节点通过两条以实现数据相反流向的数据线连接;
(5)为处理器创建Wrapper程序,并将其和网络接口进行连接,使处理器和网络接口之间进行通信;
(6)根据处理器结构配置Mcpat参数。
为了方便扩建网络,所述步骤(1)中单个路由节点包括东、西、南、北和本地五个方向,东、西、南、北中的每一个方向均设置有用于和其他路由接口相连的输出端口和输入端口,其中本地方向还设置有与网络接口相连的输出端口和输入端口。
进一步的,所述步骤(4)中在处理器中创建RAM读缓冲区和RAM写缓冲区的具体步骤如下:
(4a)创建RAM读缓冲区,并把路由节点本地输出端输出的数据解包后缓存到网络接口;
(4b)当处理器读信号有效时,将数据搬移到RAM读缓冲区中,再根据配置创建RAM写缓冲区,当处理器写信号有效时,将数据搬移到RAM写缓冲区。
再进一步的,所述步骤(6)结束后,还能够进行该平台进行仿真,其中仿真步骤如下:
(I)将各个处理器上需要并行处理的任务和并行算法用C代码实现;
(II)使用OpenRISC工具链生成在OpenRISC上执行的程序;
(III)运行仿真平台,并为各个OpenRISC加载需要执行的程序。
与现有技术相比,本发明具有以下有益效果:
(1)本发明采用了NoC即片上网络进行数据传输,片上网络很好的克服了总线结构的各种局限,实现整个网络多条点到点的连接,相互间不会产生干扰,解决了处理器出现通信冲突问题的同时容易实现全局同步;进一步的,整个平台由于采用的是非总线结构,因此即使随着NoC半径的增大,也不会有任何延迟的情况产生;
(2)本发明的多核处理平台还利用其搭载的Orion2.0和Mcpat工具对各个处理器的功率消耗进行估计,Orion2.0和Mcpat分别根据路由节点结构和处理器的结构进行参数配置,使之与该平台的架构以及处理器和路由节点内部结构更匹配从而提高估计值的精确度;
(3)本发明的路由节点在东、西、南、北的任意一个方向均设置有一个输出端和一个输入端,因此在已经架构好NoC后,依然可以在NoC边缘处的路由节点上再继续连接路由节点,即对该平台扩充,实现对NoC架构的弹性需求;
(4)本发明路由节点的输入缓存大小可以根据需要配置,因此路由节点可以很好的满足不同处理器或者平台适用于不同情况时或者其他任何状况,同时该路由节点还采用了XY路由算法和虫洞技术进行数据转发,更加有效的提高了平台的数据计算和传输速度,节约了时间;同时该路由节点还采用时间片轮转算法对输出竞争进行仲裁,防止了拥堵、死锁情况的发生;
(5)整个平台在设计完毕后,还可以使用OpenRISC工具链编译并行算法源代码,生成在OpenRISC上执行的程序,便可以实现对该平台的仿真,在仿真结束后可以得到并行算法的运算结果、执行时间,还能够得到NoC和OR1200上消耗的功率,因此可以利用该仿真结果对并行算法和并行任务的处理能力和处理精度进行评估,包括并行算法的延时、功耗、处理精度等都能够进行评估,有利于缩短多核平台的开发周期,提高平台的可靠性,其中OpenRISC基于GPL协议的开放源代码的RISC处理器,具有完整的工具链,包括:开源的软件开发工具,C语言实现的CPU仿真模型,操作系统,以及软件应用所需的函数库,使这种处理器非常适用于本发明。
附图说明
图1为本发明—实施例中4×4的MESH拓扑结构的NoC。
图2为本发明中开源处理器OR1200原理框图。
图3为本发明中路由节点的原理框图。
图4为本发明中网络接口的原理框图。
图5为本发明中网络接口的工作流程图。
图6为本发明的设计流程图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明,本发明的实施方式包括但不限于下列实施例。
实施例
如图1所示的基于MESH拓扑结构的片上网络,片上网络简称NoC,所述MESH为无线网格网络。该NoC拓扑配置为M×N=4×4,共有16个OR1200开源处理器,且R为路由节点,其中16个处理器OR1200通过片上网络的方式互联,实现了整个网络点到点的线路连接,相互间不会产生干扰,所有OR1200之间不会产生通信冲突的问题。
其中图2为本发明中开源处理器OR1200原理框图。
OR1200作为本实施例中的多核仿真平台的处理单元,是一款标量RISC处理器,采用哈佛结构,拥有5级整数流水线,支持MMU和基本的DSP能力。
图3为R即路由节点的原理框图,该路由节点采用XY路由算法和虫洞进行数据转发,采用时间片轮转算法对输出竞争进行仲裁,同时配置路由节点的输入缓存大小。其中时间片轮算法即每个进程被分配字一个时间段,称作它的时间片,即该进程允许运行的时间。如果在时间片结束时进程还在运行,则处理器将被剥夺并分配给另一个进程,如果进程在时间片结束前阻塞或结束,处理器当即进行切换,调度程序所要做的就是维护一张就绪进程列表,当进程用完它的时间片后,它被移到队列的末尾。
图4为本发明中网络接口,即NI的原理框图。OR1200和NoC之间是通过网络接口进行连接的,即NI连接到NoC路由节点的本地输出端口。其中如图5所示,NI工作流程如下:
(1)在OR1200中创建RAM读缓冲区,当有数据包从NoC本地端口输出时,NI对数据包进行解包,即除去包头包尾,提取数据部分并进行缓存;
(2)在NI与OR1200连接端,NI将路由节点本地输出端输出的数据解包后缓存,NI提示OR1200有数据到达,并根据OR1200的读信号,将数据搬移到OR1200的RAM即随机存储器的读缓冲区去,RAM读缓冲区是RAM预先留出的一段区域,用于专门存放从NI中读出的数据;
(3)当NI完成数据搬移之后则向OR1200发出信号,让OR1200从RAM读缓冲区中读取数据进行操作。同时,根据配置创建RAM写缓冲区,NI还会检测OR1200发出的写信号,并根据写信号的职能将数据从OR1200的RAM读缓冲区搬移到RAM写缓冲区;
(4)RAM写缓冲区也是RAM中预先留出的一段区域,用于专门存放需要写到NI的数据,因此NI为数据添加包头包尾,并通过路由节点的本地输入端口,发送到NoC网络中进行传输;
(5)当NI完成数据发送任务之后同样会向OR1200发送信号,通知OR1200可以进行下一次的写操作。
通过如图6所示设计流程图,能够实现该设计平台的仿真,其仿真结果可以在多核平台设计前期对平台进行评估,有利于缩短多核平台的开发周期,提高平台的可靠性,其中具体实现步骤如下:
第一步:实现NoC路由节点结构的配置。
路由节点由5条输入端口和输出端口组成,分别代表东、西、南、北和本地5个连接方向,因此路由节点采用XY路由算法寻找目的节点,采用虫洞技术进行数据转发,并采用时间片伦算法对输出竞争进行仲裁,其中还可以根据需要对路由节点的缓存深度以及数据位宽进行配置。
第二步:根据如图1所示的路由节点结构,配置Orion2.0功率消耗参数。
其中Orion2.0为平台上的搭载工具,能够在处理过程中对NoC以及各个处理器的功率消耗进行估计,从而评估该平台并行算法和并行任务的处理能力和处理精度进行评估;并且根据路由节点结构配置Orion2.0能够使该平台搭载工具根据不同的结构进行相应的处理,使其适用于不同网络拓扑结构。
第三步:配置NoC的规模,根据输入的参数M=4和N=4,将路由节点按照对应端口进行互联,即可获得4×4的MESH拓扑结构NoC。
该拓扑结构共有16个路由节点R,16个开源处理器OR1200。
第四步:配置NoC和OR1200间的通信接口NI使NoC、OR1200通过NI实现相应功能。
根据图5所示的NI工作流程,首先需根据配置创建RAM读缓冲区,当OR1200读信号有效时,将数据搬移到OR1200的RAM中;
接着根据配置创建RAM写缓冲区,当OR1200写信号有效时,将数据从RAM读缓冲区搬移到RAM写缓冲区,将数据封装后通过本地输入端口发送到NoC中进行传输。
第五步:为OR1200创建Wrapper,使之能够被平台调用,并将Wrapper和NI进行连接,使OR1200和NI之间能够进行通信。
Wrapper为OR1200和NI之间的媒介,用于实现OR1200和NI之间的通信。
第六步:根据OR1200的结构,配置Mcpat的参数;
其中Mcpat也为该平台上搭载的工具,用于对并行算法和并行任务的处理能力、处理精度以及功率消耗进行估计。并且根据OR1200结构配置Mcpat能够使该平台搭载工具根据不同的结构进行相应的处理,使其适用于不同网络拓扑结构。
第七步:将各个处理器上需要并行处理的任务和并行算法用C代码实现。
第八步:使用OpenRISC工具链生成在OpenRISC处理器上执行的程序。
其中OpenRISC为开放源代码的精简指令集计算机处理器,为现有技术,其采用免费开放的32/64bit RISC/DSP架构,并且用Verilog HDL实现了基于该RISC/DSP架构的RTL描述,这里的RTL为寄存器传输级,并且OpenRISC还具有完整的工具链,该工具链包括:开源的软件开发工具,C语言实现的CPU仿真模型,操作系统,以及软件应用所需的函数库,使这种处理器非常适用于本发明。
第九步:运行该多核处理器平台,并为各个OpenRISC处理器加载需要执行的程序。
按照上述实施例,便可很好的实现本发明。
Claims (8)
1.基于NoC架构的多核处理器平台,其特征在于,包括通过NoC方式接入的至少两个处理器,所述NoC采用M×N的MESH拓扑结构构建而成,其中M和N均为正整数。
2.根据权利要求1所述的基于NoC架构的多核处理器平台,其特征在于,所述处理器上创建有实现处理器数据输入和输出的网络接口,其中NoC包括与网络接口一一对应的路由节点,且相邻的路由节点之间连接有两条以实现数据相反流向的数据线。
3.根据权利要求2所述的基于NoC架构的多核处理器平台,其特征在于,所述处理器内设置有用于配合网络接口完成数据传输的RAM读缓存区和RAM写缓存区。
4.根据权利要求1~3任意一项所述的基于NoC架构的多核处理器平台,其特征在于,所述NoC上还分别搭载了Orion2.0和Mcpat工具。
5.基于NoC架构的多核处理器平台设计方法,其特征在于,通过以下步骤实现:
(1)设置路由节点的结构,使该路由节点通过XY路由算法寻找目的节点,采用虫洞技术进行数据转发,且通过时间片轮算法对输出竞争进行仲裁;
(2)根据单个路由节点的结构配置Orion2.0功率消耗参数;
(3)输入参数M和N,配置NoC的规模,将路由节点进行互联,即可获得M×N的MESH拓扑结构的NoC;
(4)在处理器上创建网络接口,并在处理器中创建RAM读缓冲区和RAM写缓冲区,将网络接口与路由节点一一连接,得到路由节点排列为M×N的矩阵型结构,并且相邻的路由节点通过两条以实现数据相反流向的数据线连接;
(5)为处理器创建Wrapper程序,并将其和网络接口进行连接,使处理器和网络接口之间进行通信;
(6)根据处理器结构配置Mcpat参数。
6.根据权利要求5所述的基于NoC架构的多核处理器平台设计方法,其特征在于,所述步骤(1)中单个路由节点包括东、西、南、北和本地五个方向,东、西、南、北中的每一个方向均设置有用于和其他路由接口相连的输出端口和输入端口,其中本地方向还设置有与网络接口相连的输出端口和输入端口。
7.根据权利要求6所述的基于NoC架构的多核处理器平台设计方法,其特征在于,所述步骤(4)中在处理器中创建RAM读缓冲区和RAM写缓冲区的具体步骤如下:
(4a)创建RAM读缓冲区,并把路由节点本地输出端输出的数据解包后缓存到网络接口;
(4b)当处理器读信号有效时,将数据搬移到RAM读缓冲区中,再根据配置创建RAM写缓冲区,当处理器写信号有效时,将数据搬移到RAM写缓冲区。
8.根据权利要求5~7任意一项所述的基于NoC架构的多核处理器平台设计方法,其特征在于,所述步骤(6)结束后,还能够对该平台进行仿真,其中仿真步骤如下:
(I)将各个处理器上需要并行处理的任务和并行算法用C代码实现;
(II)使用OpenRISC工具链生成在OpenRISC上执行的程序;
(III)运行仿真平台,并为各个OpenRISC加载需要执行的程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103963100A CN102880762A (zh) | 2012-10-18 | 2012-10-18 | 基于NoC架构的多核处理器平台及其设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103963100A CN102880762A (zh) | 2012-10-18 | 2012-10-18 | 基于NoC架构的多核处理器平台及其设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102880762A true CN102880762A (zh) | 2013-01-16 |
Family
ID=47482085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012103963100A Pending CN102880762A (zh) | 2012-10-18 | 2012-10-18 | 基于NoC架构的多核处理器平台及其设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102880762A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345461A (zh) * | 2013-04-27 | 2013-10-09 | 电子科技大学 | 基于fpga的带有加速器的多核处理器片上网络系统 |
CN106375153A (zh) * | 2016-09-05 | 2017-02-01 | 华中科技大学 | 一种片上网络中实时通信的可调度性分析方法 |
CN108427584A (zh) * | 2018-03-19 | 2018-08-21 | 清华大学 | 快速启动的具有并行计算核的芯片及该芯片的配置方法 |
EP3040873B1 (fr) * | 2014-12-17 | 2019-09-11 | Thales | Système électronique configurable de transfert de données et procédé de configuration associé |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101383712A (zh) * | 2008-10-16 | 2009-03-11 | 电子科技大学 | 一种片上网络的路由节点微结构 |
US20120166764A1 (en) * | 2010-12-22 | 2012-06-28 | Via Technologies, Inc. | Dynamic and selective core disablement and reconfiguration in a multi-core processor |
-
2012
- 2012-10-18 CN CN2012103963100A patent/CN102880762A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101383712A (zh) * | 2008-10-16 | 2009-03-11 | 电子科技大学 | 一种片上网络的路由节点微结构 |
US20120166764A1 (en) * | 2010-12-22 | 2012-06-28 | Via Technologies, Inc. | Dynamic and selective core disablement and reconfiguration in a multi-core processor |
Non-Patent Citations (1)
Title |
---|
汪健等: "多核系统中NoC通讯架构的关键技术", 《电子科技》, vol. 25, no. 6, 15 June 2012 (2012-06-15) * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345461A (zh) * | 2013-04-27 | 2013-10-09 | 电子科技大学 | 基于fpga的带有加速器的多核处理器片上网络系统 |
EP3040873B1 (fr) * | 2014-12-17 | 2019-09-11 | Thales | Système électronique configurable de transfert de données et procédé de configuration associé |
CN106375153A (zh) * | 2016-09-05 | 2017-02-01 | 华中科技大学 | 一种片上网络中实时通信的可调度性分析方法 |
CN106375153B (zh) * | 2016-09-05 | 2019-02-05 | 华中科技大学 | 一种片上网络中实时通信的可调度性分析方法 |
CN108427584A (zh) * | 2018-03-19 | 2018-08-21 | 清华大学 | 快速启动的具有并行计算核的芯片及该芯片的配置方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Benini et al. | Network-on-chip architectures and design methods | |
Beigné et al. | An asynchronous NOC architecture providing low latency service and its multi-level design framework | |
Horak et al. | A low-overhead asynchronous interconnection network for GALS chip multiprocessors | |
CN103744644B (zh) | 采用四核结构搭建的四核处理器系统及数据交换方法 | |
CN110991626B (zh) | 一种多cpu类脑模拟系统 | |
CN102880762A (zh) | 基于NoC架构的多核处理器平台及其设计方法 | |
CN102929329B (zh) | 片上系统间互连网络的动态重构方法 | |
Ax et al. | Comparing synchronous, mesochronous and asynchronous NoCs for GALS based MPSoCs | |
Yu et al. | A low-area multi-link interconnect architecture for GALS chip multiprocessors | |
Sinha et al. | Data-flow aware CNN accelerator with hybrid wireless interconnection | |
CN103412849A (zh) | ARM处理器的NoC资源网络接口及其驱动方法 | |
Gharan et al. | Flexible simulation and modeling for 2D topology NoC system design | |
Mandal et al. | NoCBench: a benchmarking platform for network on chip | |
Zhu et al. | BiLink: A high performance NoC router architecture using bi-directional link with double data rate | |
Lafi et al. | An efficient hierarchical router for large 3D NoCs | |
Grecu et al. | A flexible network-on-chip simulator for early design space exploration | |
CN113203940B (zh) | 3D NoC测试规划中的并行测试方法 | |
Castells-Rufas et al. | A validation and performance evaluation tool for ProtoNoC | |
Wu et al. | A programmable adaptive router for a GALS parallel system | |
CN102158380A (zh) | 一种基于统计时分复用技术的多簇片上网络架构 | |
Oukaira et al. | New architecture for real-time image computing using parallel processing based on DSP/FPGA | |
Alagarsamy et al. | FRDS: An efficient unique on-Chip interconnection network architecture | |
Pande et al. | Performance optimization for system-on-chip using network-on-chip and data compression | |
Gugulothu et al. | Design and Implementation of various topologies for Networks on Chip and its performance evolution | |
Bertozzi et al. | Cost-effective and flexible asynchronous interconnect technology for GALS networks-on-chip |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130116 |