一种在处理器中添加旁路来优化片上网络架构的方法转让专利

申请号 : CN200910097645.0

文献号 : CN101534251B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈天洲缪良华汪达舟王超陈剑

申请人 : 浙江大学

摘要 :

本发明公开了一种在处理器中添加旁路来优化片上网络架构的方法。本发明的方法是通过在处理器核中添加旁路并增加辅助的模块从而支持低延时的片上网络的架构。本方法实现了处理器不仅可以传输处理完的结果,而且传输处理中的临时保存的中间结果,对于其他节点处理器来说,它们可以得到更多的数据,整个片上网络的处理的功能得到扩展。对于具有更深程度的数据依赖的线程来说,各个线程之间可以进行大量的数据处理与传输,执行的效率更高。本方法通过对处理器的改进,使其更好支持片上网络的架构,更好的发挥片上网络优势。

权利要求 :

1.一种在处理器中添加旁路来优化片上网络架构的方法,其特征在于:

1)预测下一条指令是否对共享的内存进行读写:

在处理器核内添加预测模块,根据指令寄存器和PC的值来预测下一条指令是否对共享的内存、寄存器进行读写,并向多路开关器发送控制信号;

2)选择发送数据到附加的锁存器:

在处理器核的ALU模块后加入多路开关器,多路开关器输入端口连接处理器的执行周期所得到的结果,输出端口分别连接数据存储器和附加的旁路;实现执行完的结果存储到数据存储器或者添加的锁存器;当从预测模块得到控制信号,那么多路开关器可以选择的发送数据到附加的锁存器,实现了原本只能存储在本地的临时寄存器的中间结果可以发送给片上网络上的其他节点,同时节约了把数据存入到内存的时间;

3)发送数据到处理器L1Cache与片上网络共享的Send Buffer:

第一、把L1 Cache部分划分为3个部分:发送数据到片上网络的缓冲区,路由表,和存储处理器本身的数据,也分别简称为Send Buffer,Router Table,SMP;

第二、把片上网络的路由器的Buffer部分,分为存储转发数据包的Buffer和存储本地的数据包的Buffer,然后把L1 Cache的Send Buffer与片上网络的路由器共享,当作路由器的存储本地的数据包的Buffer,从而减少了片上网络的路由器Buffer的大小,实现了片上网络的能耗的降低;

第三、将锁存器与Send Buffer连接,当时钟的上升沿到达时,锁存器就把数据发送到L1 Cache的Send Buffer中,并等待处理器的发送指令,来把数据注入到片上网络;

4)数据注入到片上网络:

当处理器执行发送指令的时候,处理器首先把要发送数据的目的地址发送到L1 Cache的Router Table,然后把L1 Cache的Send Buffer中的数据和Router Table中的目的地址送到网络接口封装成数据包,再发送到片上网络的路由器,注入到片上网络,避免了处理器从内存读取数据再发送数据的过程,节约一个以上的时钟周期,实现对片上系统的发送数据的优化。

说明书 :

一种在处理器中添加旁路来优化片上网络架构的方法

技术领域

[0001] 本发明涉及处理器核内部结构和片上网络架构,尤其是涉及一种在处理器中添加旁路来优化片上网络架构的方法。

背景技术

[0002] 片上设计有四个完全独立的方面:计算,存储,通信,I/O。随着处理器的处理能力不断增强和数据密集的应用程序的不断出现,片上系统(SOC-SystemOn Chip)面临着通信方面的挑战。这种挑战引起越来越多的关注并引出了片上网络(NOC-Network On Chip)的概念。片上网络不是片内通信的新的选择,它是一种概念,是提供一种统一的片上通信的解决方案。片上网络有点像宏观网络,可以随着结点的增加而有效的扩展,其中结点包括数据处理部分,比如核,RAM等。
[0003] 片上网络的架构与传统的总线网络相比有很多优点:1)更好的可扩展性。因为片上网络的设计可以更好的重用模块,而且扩展后也没性能的损失。2)更宽的带宽和更高的吞吐量。3)具有更好的性能。虽然片上网络有上述的优点,但片上网络的设计也面临重大约束和挑战:芯片面积约束,能耗负担,延时等,各各因素在设计的时候又相互影响,当要增加通信的带宽的时候,需要更多面积,但同时由于芯片面积的约束,又必须减少核的数量。在提高吞吐量的时候,必须在性能和能耗,性能与芯片面积约束之间考虑平衡。为了解决芯片面积约束,很多方法提出解决,和弱化其带来的设计方面的瓶颈,比如提出新的路由器架构-核内路由,有效节约了面积,又不会影响性能。能耗往往和性能联系在一起,在原初的多核处理器的链接网络更多注重性能,当网络的设计用于大量的应用程序的时候,低能耗的问题就成了关注的焦点。随着需求更宽的带宽的时候,能耗也会显著的增加。随着电路级别的技术提高,高效低能耗的链路研究提出,基于此提出了新的能耗优化架构。片上网络的延时包括网络传输,接收数据包存入缓冲区域的时间(包括等待的时间)和发送数据包的决策和等待时间,为了很好的解决延时,或者尽可能的降低延时时间,先前的技术往往关注与片上网络的组成模块,虚通道,接收和发送的决策控制,以及路由的策略,新的路由的架构。采取好的路由策略可以很好降低延时,提高性能;虫洞路由的提出,不仅满足低延时的需求,又满足合适路由缓冲存储区域的需求。在片上网络传输中往往会出现死锁的情况,这将会引起大量的延时,甚至影响整个片上网络不能工作。于此出现了虚通道,以及动态虚通路规则等来解决死锁,满足低延时的需求。

发明内容

[0004] 本发明的目的在于提供一种在处理器中添加旁路来优化片上网络架构的方法。
[0005] 本发明解决其技术问题采用的技术方案如下:
[0006] 1)预测下一条指令是否对共享的内存进行读写:
[0007] 在处理器核内添加预测模块,根据指令寄存器和PC的值来预测下一条指令是否对共享的内存、寄存器进行读写,并向多路开关器发送控制信号;
[0008] 2)选择发送数据到附加的锁存器:
[0009] 在处理器核的ALU模块后加入多路开关器,多路开关器输入端口连接处理器的执行周期所得到的结果,输入端口分别连接数据存储器和附加的旁路;实现执行完的结果存储到数据存储器或者添加的锁存器;当从预测模块得到控制信号,那么多路开关器可以选择的发送数据到附加的锁存器,特别是处理器产生的中间结果包括锁,互斥变量,单变量,数组,实现了原本只能存储在本地的临时寄存器的中间结果可以发送给片上网络上的其他节点,同时节约了把数据存入到内存的时间;
[0010] 3)发送数据到处理器L1Cache与片上网络共享的Send Buffer:
[0011] 第一、把L1Cache部分划分为3个部分:发送数据到片上网络的缓冲区,路由表,和存储处理器本身的数据,也分别简称为Send Buffer,Router Table,SMP;
[0012] 第二、把片上网络的路由器的Buffer部分,分为存储转发数据包的Buffer和存储本地的数据包的Buffer,然后把L1Cache的Send Buffer与片上网络的路由器共享,当作路由器的存储本地的数据包的Buffer,从而减少了片上网络的路由器Buffer的大小,实现了片上网络的能耗的降低;
[0013] 第三、将锁存器与Send Buffer连接,当时钟的上升沿到达时,锁存器就把数据发送到L1Cache的Send Buffer中,并等待处理器的发送指令,来把数据注入到片上网络;
[0014] 4)数据注入到片上网络:
[0015] 当处理器执行发送指令的时候,处理器首先把要发送数据的目的地址发送到L1Cache的Router Table,然后把L1Cache的Send Buffer中的数据和RouterTable中的目的地址送到网络接口封装成数据包,再发送到片上网络的路由器,注入到片上网络,避免了处理器从内存读取数据再发送数据的过程,节约一个以上的时钟周期,实现对片上系统的发送数据的优化。
[0016] 本发明具有的有益效果是:
[0017] 不仅可以使映射到各节点的处理器核对片上网络的更好的支持,而且可以扩展处理器核的功能。
[0018] 1)本发明改进的处理器,可以和片上网络的路由器共享L1Cache部分,并且通过附加的模块,可以避免重复读写内存,节约10个左右的时钟周期,如果是存入寄存器,则会节约1-2个时钟周期。这对于片上网络结构来说,不仅可以降低对低延时的过分要求,而且可以不需要大量增加路由的Buffer部分,来降低延时,这样就可以避免由于Buffer增加而带来的能耗增加。
[0019] 2)本发明扩展的处理器的功能。处理器不仅可以传输处理完的结果,而且传输处理中的临时保存的中间结果,对于其他节点处理器来说,它们可以得到更多的数据,整个片上网络的处理的功能得到扩展。对于具有更深程度的数据依赖的线程来说,各个线程之间可以进行大量的数据处理与传输,执行的效率更高。

附图说明

[0020] 图1是处理器核改进和片上系统整合架构示意图;
[0021] 图2是发送数据流程图。

具体实施方式

[0022] 下面结合附图和实施例对本发明作进一步说明。
[0023] 处理器核改进和片上系统整合架构可以分为3个模块:改进的处理器模块,片上网络的路由器模块,片上网络的其他模块。由于本方法是从处理器的角度进行优化,和片上网络的其他模块没有联系,所以只讨论下面前两个模块。
[0024] 改进的处理器模块把处理器分成两个部分:处理器部分和添加的模块部分。处理器模块在图1中包括IF(取指令模块),ID(指令解析/读寄存器周期),EXE(执行周期),MEM(写回存储器),WB(写回周期),L1 Cache模块。添加的模块主要有Forecaster(预测模块),Register(锁存器模块),包括旁路和连接的导线。
[0025] 在处理器部分,如图1所示主要在执行周期与写回存储器之间添加了多路选择器,多路选择器的控制信号来自添加模块部分的预测模块。添加的模块部分主要由:Bypass(旁路),锁存器,预测模块。其中的预测模块,需要到指令存储器取下一条指令进行分析,用来控制多路选择器。
[0026] 片上网络的路由器模块,可以把路由器的本地Buffer(缓冲存储区)部分与处理器的L1Cash部分共享,这一部分Buffer(缓冲存储区)又可以分为Send Buffer(发送数据缓冲区)用于存储发送数据,Routers table(路由表)用于存储发送的目的地址。其他路由部分包括矩阵交叉开关,网络接口等等。
[0027] 至于片上网络的其他模块,主要与路由器进行数据的交换。
[0028] 下面主要选取经典的五级流水的来介绍一下本方法的工作流程如图2所示,如果是其他的流水其工作流程与五级流水相类似:
[0029] (1)首先,IF(取指令模块)开始执行,取指令阶段由PC(指令指针计数器)到指令存储器根据PC的指针取到指令送到下一个模块ID(译码/读取寄存器)。这需要花费一个时钟周期。同时预测模块可以根据PC所指的指令是不是进行运算的,并且排除分支,跳转,中断等指令,并从指令寄存器中取出实际要执行的下两条指令到预测模块,并对其指令进行分析,看是不是对内存或寄存器的写并是否要发送到其他节点。分析完后发送控制信号到多路开关器。
[0030] (2)随后的一个时钟周期,ID模块开始执行,解析指令并同时对寄存器进行读操作。
[0031] (3)然后EXE模块开始执行,但其运算完后,把结果送入到多路开关器,如果运算的结果是要送到其他节点的,就通过旁路送到添加的锁存器保存,接着可以继续执行下条指令,否则就存入数据存储器或者写回到寄存器。
[0032] (4)每一个时钟周期,锁存器的数据也送到Send Buffer中,当处理器执行完发送的指令时,就把目的地址送入到Router Table中,这时可以把数据和地址同过网络接口,生成Packet(数据包)送入路由器矩阵交叉开关。最后,由路由器的路由计算,矩阵交叉开关分配,把数据注入到网络发送给其他节点。