提高片上多处理器通信速度的方法

文档序号:6330966阅读:350来源:国知局
专利名称:提高片上多处理器通信速度的方法
技术领域
本发明涉及的是一种计算机技术领域的方法,具体是一种提高片上多处理器通信 速度的方法。
背景技术
处理器的发展由于受晶体管转换速度提高的限制、高时钟频率导致更短电子传输 距离、漏电功耗无法有效降低、散热效果不明显等多种因素的限制,单处理器的发展长时间 停滞不前。越来越多的厂商选择使用多个相对简单的处理器来构建多处理器系统,通过这 种方法来提高整个系统的性能。多处理器的分类有很多,根据处理器是否在同一个晶圆切割片上,可以分为(1) 片外多处理器(每一个晶圆切割片上只有一个处理器);(2)片上多处理器(一个晶圆切割 片上集成多个处理器)。根据处理器功能是否完善,可以分为(1)多核处理器,每个处理单 元功能相对简单,只有计算功能;(2)多处理器(每个处理单元功能相对复杂、完善)。根据 处理器结构是否相同,可以分为(1)同构多处理器(典型的有SMP(对称多处理器));(2)
异构多处理器(典型的有 IBMdnternational Business Machines Corporation-国际
商业机器公司)公司的Cell (蜂窝——一款处理器的名称)处理器)。为了统一调度、同步操作、竞争系统资源,处理器间进行通信不可避免。处理器数 目日益增多,通信操作的数量成几何级数上升,通信的快慢直接影响整个系统的性能。在多 处理器系统中的各个处理器之间的通信方法有两大类(1)通过共享的存储体(通常是内存)进行隐式通讯。处理器间没有显示的发送、 接受的控制命令,而是通过对同一处内存的写入和读出来实现通信。源处理器将想要发送 的信息内容放入存储体中,目的处理器从存储体中相应的位置取出信息。(2)通过显示的发送消息进行通讯。源处理器的指令显示的指出将消息传送到目 的处理器,目的处理器显示用接受指令接受消息。传统的北桥(存储控制端口)布在主板上,随着工艺的进步,北桥被集成进了处理 器,并且在多处理器系统中每个处理器中自带一个存储控制端口,存储体在物理上也不再 共享。上述通信方法(2)逐渐成为主流方法。经对现有文献检索发现,Inteldntel Corporation——特尔公司)提出的 QPI (Quic k Path Interconnect-快速通道互连)技术(参见英特尔官方文档http // www. intel. com/technology/quickpath/http://www. intel. com/technology/quickpath/ whitepaper. pdf)是为了加速处理器间的通信,但是这项技术存在以下不足(1)仅适用于 处理器数目较少的情况,在处理器数目增多时,任意两个处理器间建立快速通道使得连接 的复杂度为n~2级别,η是处理器的数目,系统复杂度大大增加;(2)并且该技术的传输加速 比上限为1,无法突破单条通路的带宽。

发明内容
本发明的目的在于克服现有技术中存在的不足,提供一种提高片上多处理器通信 速度的方法。本发明通过基于树的连接拓扑,提出一种新的连接通路和完整的控制逻辑,实 现了片上多处理系统处理器之间快速通讯,大大缩短了通信时间,提高了整个系统的吞吐率。本发明是通过以下技术方案实现的,本发明包括以下步骤
第一步,对处理器进行分组处理,得到若干组处理器。所述的分组处理,包括以下步骤1. 1)随机选择一个处理器A,所有与处理器A有通信需求的处理器与处理器A归 为A组,且将与A组中其它处理器也有通信需求的处理器也归为A组;1. 2)在剩下的处理器中再随机选择一个处理器B,采用1. 1)的方法,直至完成对 所有处理器的分组。第二步,分别为每组处理器建立连接拓扑关系,并对处理器进行编号,得到每组处 理器的二叉树连接拓扑的高度。所述的建立连接拓扑关系,包括以下步骤2.1)根据C = Ilx7; '得到第i组中每个处理器的权值,其中PX是第χ个处理
JeX
器的权值,X是所有与第X个处理器有通信需求的处理器的集合,Vxj是第X个处理器和第j 个处理器的通信频率,Txj是第χ个处理器和第j个处理器的通信量;2. 2)当第i组处理器共有η个处理器时,将该组中权值最大的处理器排为0号,权 值最小的处理器排为η-1号,以此类推;2. 3)将0号处理器作为根节点,1号处理器作为根节点的左子节点,2号处理器作 为根节点的右子节点,根据左子节点=2Χ父节点+1,右子节点=2Χ父节点+2,将第i组 中的处理器组成一个高度平衡的二叉树。所述的编号,是分别用(m,n)代表第i组中的处理器,其中m代表处理器所处的 层数,η代表该处理器是该层中的从左往右数第η个处理器,m和η都从0开始。第三步,根据Width = (2~(L_k))*w,为每组处理器中的每对父子节点处理器设置 连接通路,其中=Width是连接通路的宽度,L是该对父子节点处理器所在处理器组的二叉 树连接拓扑的高度,k是子节点处理器所在的层次,w是基本线宽,该连接通路同时进行该 父子节点处理器间的数据信号和地址信号的传输,分别在每个连接通路上设置一组寄存器 和一个控制器。第四步,拓展每个处理器上的本地存储读写槽和远端读写槽,使本地存储读写槽 的宽度等于该处理器与其父节点之间连接通路的宽度,远端读写槽与连在远端读写槽上的 连接通路宽度相同。第五步,当处理器A向目的处理器B发起通信时,处理器原总线时钟驱动被屏蔽, 改用统一频率的时钟驱动,进行处理器A与目的处理器B间的通信,当通信完成时,结束对 原总线时钟驱动的屏蔽。所述的处理器A与目的处理器B间的通信,包括以下步骤5. 1)通过通信内容的地址得到目的处理器B的编号;5. 2)对处理器A和目的处理器B进行编号比较处理,得到处理器A与目的处理器B的位置关系;所述的编号比较处理,是当m = p-t且“=f时,目的处理器B是处理器A的后
代;否则,目的处理器B不是处理器A的后代,其中(m,η)是处理器A的编号,(p,q)是目 的处理器B的编号,t是正整数。5. 3)当目的处理器B是处理器A的后代且目的处理器B在以处理器A的左子节 点处理器为根的树上,则将目的处理器B的编号、通信地址和通信长度放入处理器A到处理 器A左子节点处理器C之间的连接通路的寄存器中,并设置该条连接通路上控制寄存器中 的传输就绪位;当目的处理器B是处理器A的后代且目的处理器B在与处理器A的右子节点处理 器为根的树上,则将目的处理器B的编号、通信地址和通信长度放入处理器A到处理器A右 子节点处理器D之间的连接通路的寄存器中,并设置该条连接通路上控制寄存器中的传输 就绪位;当目的处理器B不是处理器A的后代时,将目的处理器B的编号、通信地址和通信 长度放入处理器A和目的处理器B父节点E之间的连接通路寄存器中,并设置该条连接通 路上控制寄存器中的传输就绪位;5. 4)在每个指令周期的开始,每条连接通路中检测到控制寄存器的传输准备就绪 比特位被设置后,当寄存器中目的处理器的编号与连接通路一端的处理器编号匹配时,目 的处理器读取通信内容地址并传输数据;否则,连接通路控制器判断出目的处理器B与连 接通路另一端处理器F的位置,将当前连接通路中目的寄存器的内容移至处理器F到目的 处理器B的路径上的连接通路寄存器中,在每个指令重复上述移动过程,直到有连接通路 发现目的处理器B的编号与该连接通路一端的处理编器号匹配;5. 5)开始数据传输,数据传输完毕后,处理器A设置连接通路控制器中控制寄存 器的传输完成位,利用5.4)的方法将完成信息扩散出去,通信结束。与现有技术相比,本发明的有益效果是本发明不仅适用于同构处理器,还解决了 异构处理器之间通信受多个时钟驱动影响的不同步问题,为异构处理器通信提供了方法, 也通过连接线分段控制摆脱了传统总线为所有处理器共享(同一时刻只有一个处理能够 进行传输)导致数据传输率低的问题,最终使得本发明的数据传输加速比可达(η+1)/2,η 为多处理器系统中同一分组内处理器的数目。


图1是实施例中处理器组内连接拓扑图。
具体实施例方式下面结合附图对本发明的实施例作详细说明本实施例在以本发明技术方案为前 提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下 述的实施例。本实施例具体包括以下步骤第一步,对处理器进行分组处理,得到若干组处理器。
所述的分组处理,包括以下步骤1. 1)随机选择一个处理器A,所有与处理器A有通信需求的处理器与处理器A归 为A组,且将与A组中其它处理器也有通信需求的处理器也归为A组;1. 2)在剩下的处理器中再随机选择一个处理器B,采用1. 1)的方法,直至完成对 所有处理器的分组。第二步,分别为每组处理器建立连接拓扑关系,并对处理器进行编号,得到每组处 理器的二叉树连接拓扑的高度。所述的建立连接拓扑关系,包括以下步骤2.1)根据C = Xlx7; '得到第i组中每个处理器的权值,其中PX是第χ个处理
JeX
器的权值,X是所有与第X个处理器有通信需求的处理器的集合,Vxj是第X个处理器和第j 个处理器的通信频率,Txj是第χ个处理器和第j个处理器的通信量;2. 2)当第i组处理器共有η个处理器时,将该组中权值最大的处理器排为0号,权 值最小的处理器排为η-1号,以此类推;2. 3)将0号处理器作为根节点,1号处理器作为根节点的左子节点,2号处理器作 为根节点的右子节点,根据左子节点=2Χ父节点+1,右子节点=2Χ父节点+2,将第i组 中的处理器组成一个高度平衡的二叉树。所述的编号,是分别用(m,n)代表第i组中的处理器,其中m代表处理器所处的 层数,η代表该处理器是该层中的从左往右数第η个处理器,m和η都从0开始。本实施例中A组处理器的连接拓扑关系示意图如图1所示,由该图可知该组处理 器共有7个处理器,这7个处理器组成一颗高度平衡的二叉树。第三步,根据Width = (2~(L_k))*w,为每组处理器中的每对父子节点处理器设置 连接通路,其中=Width是连接通路的宽度,L是该对父子节点处理器所在处理器组的二叉 树连接拓扑的高度,k是子节点处理器所在的层次,w是基本线宽,该连接通路同时进行该 父子节点处理器间的数据信号和地址信号的传输,分别在每个连接通路上设置一个寄存器 和一个控制器。本实施例中A组处理器中共有6条连接通路,二叉树的高度为2,w = 32比特,其 中根节点与其子节点间的连接通路的宽度为64比特,其余四条连接通路的宽度为32比 特。第四步,拓展每个处理器上的本地存储读写槽和远端读写槽,使本地存储读写槽 的宽度等于该处理器与其父节点之间连接通路的宽度,远端读写槽与连在远端读写槽上的 连接通路宽度相同。本实施例中的拓展是直接放置宽度为Width的读写槽,或者是放置若干个宽度为 w的读写槽。第五步,当处理器A(1,0)向目的处理器B(2,2)发起通信时,处理器原总线时钟驱 动被屏蔽,改用统一频率的时钟驱动,进行处理器A与目的处理器B间的通信,当通信完成 时,结束对原总线时钟驱动的屏蔽。所述的处理器A与目的处理器B间的通信,包括以下步骤5. 1)通过通信内容的地址得到目的处理器B的编号是(2,2);
5. 2)对处理器A和目的处理器B进行编号比较处理,得到处理器A与目的处理器 B的位置关系;所述的编号比较处理,是当m = p-t且“=f时,目的处理器B是处理器A的后
代;否则,目的处理器B不是处理器A的后代,其中(m,η)是处理器A的编号,(p,q)是目 的处理器B的编号,t是正整数。本实施例中目的处理器B不是处理器A的后代。5. 3)将目的处理器B的编号放入处理器A和目的处理器B父节点处理器E之间 的连接通路寄存器中,并通过设置该条连接通路上控制寄存器中的传输就绪位启动处理器 A和目的处理器B间的通信;5.3)将目的处理器B的编号(2,2)、通信地址和通信长度存入处理器々(1,0)节点 与其父节点处理器(0,0)之间连接通路(记为通路Pl)的控制器的目的处理器寄存器内;5.4)在下个指令周期的开始,通路Pl检测到其控制寄存器的传输就绪比特位已 经设置,但是目的处理器寄存器(2,2)中内容与Pl的另一端(0,0)节点不匹配,将Pl寄存 器的内容(包括目的处理器编号、通信地址和通信长度信息)移入(0,0)节点与(1,1)节 点之间的通路(记为通路P2)中;下一个指令周期,P2判断出目的处理器(2,2)是(1,1) 节点的后代,所以将P2的寄存器内容移入(1,1)节点与(2,2)节点之间的连接通路中(记 为通路P3);再下个指令周期,通路P3发现其目的处理器编号寄存器内容与其一端编号(2, 2)匹配;5. 5)开始数据传输,数据传输完毕后,处理器A设置连接通路控制器中控制寄存 器的传输完成位,利用5.4)的方法将完成信息扩散出去,通信结束。当采用现有技术中Intel (英特尔)公司的QPI,设基本传输带宽为32比特,处 理器A与处理器B之间进行通信时,为方便比较,将系统的峰值数据传输吞吐率归一化为 1。使用本实施例方法时,其它条件不变,则本实例的数据传输吞吐率仅受限于新连接通路 的的宽度,因此得到本实例的峰值数据传输吞吐率为2的L次方,其中L = log2(N+l)-l, L为树的高度,N为组内处理器的个数。可见本实施例方法的数据传输加速比可达2~L = (N+l)/2。
8
权利要求
一种提高片上多处理器通信速度的方法,其特征在于,包括以下步骤第一步,对处理器进行分组处理,得到若干组处理器;第二步,分别为每组处理器建立连接拓扑关系,并对处理器进行编号,得到每组处理器的二叉树连接拓扑的高度;第三步,根据Width=(2^(L k))*w,为每组处理器中的每对父子节点处理器设置连接通路,其中Width是连接通路的宽度,L是该对父子节点处理器所在处理器组的二叉树连接拓扑的高度,k是子节点处理器所在的层次,w是基本线宽,该连接通路同时进行该父子节点处理器间的数据信号和地址信号的传输,分别在每个连接通路上设置一组寄存器和一个控制器;第四步,拓展每个处理器上的本地存储读写槽和远端读写槽,使本地存储读写槽的宽度等于该处理器与其父节点之间连接通路的宽度,远端读写槽与连在远端读写槽上的连接通路宽度相同;第五步,当处理器A向目的处理器B发起通信时,处理器原总线时钟驱动被屏蔽,改用统一频率的时钟驱动,进行处理器A与目的处理器B间的通信,当通信完成时,结束对原总线时钟驱动的屏蔽。
2.根据权利要求1所述的提高片上多处理器通信速度的方法,其特征是,第一步中所 述的分组处理,包括以下步骤1.1)随机选择一个处理器A,所有与处理器A有通信需求的处理器与处理器A归为A 组,且将与A组中其它处理器也有通信需求的处理器也归为A组;1.2)在剩下的处理器中再随机选择一个处理器B,采用1. 1)的方法,直至完成对所有 处理器的分组。
3.根据权利要求1所述的提高片上多处理器通信速度的方法,其特征是,第二步中所 述的建立连接拓扑关系,包括以下步骤2.1)根据/^ = 1&><7; ’得到第1组中每个处理器的权值,其中PX是第χ个处理器的JeX权值,X是所有与第X个处理器有通信需求的处理器的集合,Vxj是第X个处理器和第j个 处理器的通信频率,Txj是第χ个处理器和第j个处理器的通信量;2. 2)当第i组处理器共有η个处理器时,将该组中权值最大的处理器排为0号,权值最 小的处理器排为η-1号,以此类推;2. 3)将0号处理器作为根节点,1号处理器作为根节点的左子节点,2号处理器作为根 节点的右子节点,根据左子节点=2 X父节点+1,右子节点=2 X父节点+2,将第i组中的 处理器组成一个高度平衡的二叉树。
4.根据权利要求1所述的提高片上多处理器通信速度的方法,其特征是,第二步中所 述的编号,是分别用(m,η)代表第i组中的处理器,其中m代表处理器所处的层数,η代 表该处理器是该层中的从左往右数第η个处理器,m和η都从0开始。
5.根据权利要求1所述的提高片上多处理器通信速度的方法,其特征是,第五步中所 述的处理器A与目的处理器B间的通信,包括以下步骤5. 1)通过通信内容的地址得到目的处理器B的编号;5. 2)对处理器A和目的处理器B进行编号比较处理,得到处理器A与目的处理器B的位置关系;[5. 3)当目的处理器B是处理器A的后代且目的处理器B在以处理器A的左子节点处 理器为根的树上,则将目的处理器B的编号、通信地址和通信长度放入处理器A到处理器A 左子节点处理器C之间的连接通路的寄存器中,并设置该条连接通路上控制寄存器中的传 输就绪位;当目的处理器B是处理器A的后代且目的处理器B在与处理器A的右子节点处理器为 根的树上,则将目的处理器B的编号、通信地址和通信长度放入处理器A到处理器A右子节 点处理器D之间的连接通路的寄存器中,并设置该条连接通路上控制寄存器中的传输就绪 位;当目的处理器B不是处理器A的后代时,将目的处理器B的编号、通信地址和通信长度 放入处理器A和目的处理器B父节点E之间的连接通路寄存器中,并设置该条连接通路上 控制寄存器中的传输就绪位;[5. 4)在每个指令周期的开始,每条连接通路中检测到控制寄存器的传输准备就绪比特 位被设置后,当寄存器中目的处理器的编号与连接通路一端的处理器编号匹配时,目的处 理器读取通信内容地址并传输数据;否则,连接通路控制器判断出目的处理器B与连接通 路另一端处理器F的位置,将当前连接通路中目的寄存器的内容移至处理器F到目的处理 器B的路径上的连接通路寄存器中,在每个指令重复上述移动过程,直到有连接通路发现 目的处理器B的编号与该连接通路一端的处理编器号匹配;[5.5)开始数据传输,数据传输完毕后,处理器A设置连接通路控制器中控制寄存器的 传输完成位,利用5.4)的方法将完成信息扩散出去,通信结束。
6.根据权利要求5所述的提高片上多处理器通信速度的方法,其特征是,所述的编号比较处理,是当m = p-t且〃 =f时,目的处理器B是处理器A的后代;否则,目的处理器B不是处理器A的后代,其中(m,η)是处理器A的编号,(p, q)是目的处理器B的编号,t是 正整数。
全文摘要
一种计算机技术领域的提高片上多处理器通信速度的方法,将所有的处理器按照通信需求分组;为每组处理器建立二叉树连接拓扑关系;每组处理器中的每对父子节点处理器设置连接通路且在每个连接通路上设置寄存器和控制器;拓展每个处理器上的本地存储读写槽和远端读写槽,使本地存储读写槽的宽度等于该处理器与其父节点之间连接通路的宽度,远端读写槽与连在远端读写槽上的连接通路宽度相同;当处理器A向目的处理器B发起通信时,改用统一频率的时钟驱动,进行处理器A与目的处理器B间的通信,当通信完成时,结束对原总线时钟驱动的屏蔽。本发明实现了片上多处理系统处理器之间快速通讯,缩短了通信时间,提高了整个系统的吞吐率。
文档编号G06F15/173GK101916239SQ20101026409
公开日2010年12月15日 申请日期2010年8月27日 优先权日2010年8月27日
发明者周憬宇, 娄林, 朱寅, 沈耀, 胡时伟, 过敏意, 陈鹏宇 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1