用于源同步电路交换片上网络(NoC)的方法、装置和系统的制作方法_4

文档序号:9493960阅读:来源:国知局
的时 钟和电压。在实施例中,路由器之间的链路可以以包括32b分组数据和80b电路交换数据 的126b宽互连来实现。然而可以理解的是,根据本发明的实施例,NoC可以应用于多种网 络拓扑、大小、总线宽度和工艺。
[0066] 如图12所示,NoC 900包括多个单独的路由器910。每一个这种路由器包括5个 端口,即东、西、北、南端口和核心端口。每一个端口由入端口和出端口形成。与相对应的入 端口和出端口相关联的各种电路和分组信号也在图12中示出。注意,在这5个端口之间, 可以提供各种交叉开关和仲裁逻辑。在实施例中,E和W方向链路可以适用于在一个金属 层上,N和S方向链路适用于在第二金属层上,并且核心链路适用于在第三金属层上。每一 个路由器发送112b数据(包括32b分组和80b电路交换数据)。在特定实施例中,NoC可 以被设计为实现10. 3Tb/s的对分带宽,并且具有随机饱和流量的369Gb/s/W的能量效率。 [0067] 源同步操作通过不对循环时间做最坏情况处理提供了吞吐量的提高。对于相同的 能量效率,示例性源同步分组交换NoC可以具有比完全同步设计高出大约26%的吞吐量, 以及在相同吞吐量时高出大约47%的能量效率。
[0068] 使用流送数据传送,发送更多的电路交换数据作为每一个请求分组的结果。分组 延时和功率开销被分散到更多数量的电路传送,提高了吞吐量和能量效率。在源同步上下 文中的电路交换消除了用于路由内存储的计时和触发功率,与NoC中的分组交换数据相 比,提高了能量效率。
[0069] 使用本发明的实施例,NoC促进以高能量效率将多个时钟域并入到该NoC中。源 同步操作减轻了全局时钟分布和同步数据FIFO功率。通过不针对最坏情况留边限而减少 了循环时间,并且可以消除针对时钟偏斜和抖动的边限。电路交换传送还通过从数据路径 移除宽触发器阵列而降低时钟功率。因为源同步操作,这些传送并不针对最坏情况的角对 角延迟留边限。源同步混合分组和电路交换NoC允许具有不同时钟域的核心以更高能量效 率进行通信。这促进了异构NoC与不同时钟域内的不同IP的集成。这种方法还通过减轻 与关键路径以及时钟偏斜和抖动相关联的时序不确定性,而增加了处理变化的弹性。
[0070] 在不需要全局时钟的情况下,不同的IP可以以独立的频率和电源电压运行。这对 于SoC设计可能是尤其有益的,其中不同部件可以在它们自己的能量最优点操作并且可以 被无缝地与NoC合并,而除了在核心/网络接口处外,不针对同步电路产生任何延迟或能量 损耗。另外,路由器之间的通信的源同步本质改善了针对拥塞流量的分组延迟,还导致比异 构系统中最坏情况分组延迟更好。
[0071] 这种交换结构的一个示例是在4级层次的星形拓扑中连接的256节点的交换结 构。通过增加的层级,使得互连长度加倍,这是因为路由器彼此间隔得更远。考虑这样的情 况,其中,进入每一个层次的50%的分组被引导向位于较高层级的路由器,较高级别上的流 量更加拥塞。在这种场景下,以降低的电源电压来操作较低层级的路由器会提供更高的能 量效率,而在吞吐量上具有可忽略的损失。如果给定在独立电源电压下操作的能力,则这是 无缝实现的,而没有任何额外的逻辑开销。
[0072] 在一个实现中,分组交换路由器电路使用控制流信号跃迀取代时钟来发送分组。 在该系统中,输入端口接收到来的分组,确定方向,并将该分组转发到适当的输出端口。接 着,输出端口从可用分组中进行选择以将一个发送到下一路由器。路由器接收由请求信号 跃迀指示的分组,并且将批准信号跃迀回以表示对另一分组做好准备。在一些实施例中,信 用-2通信协议在接收批准之前发送两个分组。当路由器的输入端口处的锁存器关闭时,在 处理第一分组期间后续分组被阻塞。
[0073] 在一个实现中,在输出端口中使用双边沿触发器来将数据发送到下一路由器,使 用C元件来在输入端口内跟踪请求和确认信号,使用C元件来在输出端口中跟踪信用并且 在信用用尽时禁止发送更多的分组。可以使用无故障地址解码电路来将请求信号转发到适 当的输出端口,并且方向仲裁电路基于到达顺序从输入端口请求信号中选择一个请求来发 送以进入输出端口,同时避免饿死(starvation)。并且,通过额外的信用跟踪和存储电路, 启用多信用系统。
[0074] 实施例还提供了混合电路交换路由器电路,其使用控制流信号跃迀替代时钟来发 送电路交换数据。在实施例中,发送请求分组以创建电路交换路径。在每一个路由器内的 FIFO请求存储设备存储请求分组遍历路由器时的请求分组方向。可以通过将请求写入到具 有最高优先级的可用条目来在NoC上维护全局优先级次序。这样,来自填充的FIFO条目的 最高优先级请求对电路交换通道进行配置。对于电路的电路交换部分,电路交换流信号指 示后面跟有更多传送的电路交换数据的到达,电路交换有效信号指示完成传送的电路交换 数据的到达,并且电路交换确认信号指示电路交换数据在其目的地处被接收。注意,除了电 路交换传送外,分组可以用于小的边带传送,并且信号可以用于指示分组被用于边带数据 还是电路交换路径建立,或用于两者。
[0075] 下面转向图13,其描绘了根据实施例的片上系统(SOC)设计的实施例。作为具体 说明性示例,SOC Q2000包含于用户设备(UE)中。在一个实施例中,UE指的是由终端用户 用来进行通信的任意设备,例如手持电话、智能电话、平板、超薄笔记本、具有宽带适配器的 笔记本,或者任意其它类似的通信设备。通常,UE连接到基站或节点上,其本质可能对应于 GSM网络中的移动站(MS)。
[0076] 这里,SOC 2000包括2个核心--2006和2007。类似于上述讨论,核心2006 和2007可以遵循指令集架构,例如基亍Intel·? ArchitectureCore?的处理器、Advanced Micro Devices, Inc. (AMD)处理器、基于MIPS的处理器、基于ARM的处理器设计,或者其客 户以及它们的被许可者或采用者。核心2006和2007耦合到与总线接口单元2009和L2高 速缓存2010相关联的高速缓存控制2008上,以与系统2000的其它部分进行通信。互连 2010包括片上互连,诸如IOSF、AMBA、或者以上讨论的其它互连等,其可能实现本文描述的 一个或多个方面。
[0077] 互连2010向其它部件提供通信通道,所述其它部件例如是与S頂卡进行连接的订 户身份模块(SIM) 2030、对启动代码进行保存以由核心2006和2007执行以初始化和启动 SOC 2000的的R0M2035、与外部存储器(例如DRAM2060)进行连接的SDRAM控制器2040、用 于与非易失性存储器(例如,闪存2065)进行连接的闪存控制器、与外围部件进行连接的外 围控制器2050(例如,串行外围接口)、用于显示和接收输入(例如,支持触摸输入)的视频 编解码器2020和视频接口 2025接口、用于执行图形相关计算的GPU 2015等。这些接口中 的任一个可以并入本文描述的方面中。
[0078] 另外,系统示出了用于通信的外围部件,例如蓝牙模块2070、3G调制解调器2075、 GPS 2080以及WiFi 2085。在系统中还包括功率控制器2055。如上所陈述的,UE包括用于 通信的无线设备。因此,并不全部需要这些外围通信模块。然而,在UE中,包括用于外部通 信的某种形式的无线设备。
[0079] 下面的示例涉及进一步的实施例。
[0080] 在一个不例中,一种装置包括:路由器,包括第一输入端口和第一输出端口,其中 所述路由器属于NoC,所述路由器基于控制流信号中的跃迀能够将分组从所述路由器传递 到所述NoC的第二路由器。
[0081] 在示例中,所述第一输入端口包括锁存器,用于响应于在所述第一输入端口中接 收到的第一控制流信号中的跃迀,从所述第二路由器接收请求的通信。
[0082] 在示例中,所述第一输入端口响应于服务于所述请求,而将第二控制流信号发送 到所述第二路由器,以表示准备好服务另一请求,并且打开所述锁存器。
[0083] 在示例中,所述第二路由器在接收到所述第二控制流信号中的跃迀之前,将多个 分组传递到路由器,其中基于所述第二控制流信号中的跃迀来更新所述第二路由器的信用 级别。
[0084] 在示例中,当被关闭时,所述锁存器用于防止在处理所述请求期间将新的分组插 入到所述第一输入端口中。
[0085] 在示例中,所述第一输入端口用于接收与所述第一流控制信号中的跃迀相关联的 分组,并且用于使所述第二流控制信号跃迀以指示准备好用于对另一分组的接收。
[0086] 在示例中,所述装置还包括缓冲器,其耦合在所述路由器和所述第二路由器之间, 以在多个分组传递到路由器之前存储所述多个分组中的至少一个。
[0087] 在示例中,所述路由器包括信用逻辑,其接收第一控制流信号和第二控制流信号, 并且基于所述第一控制流信号和第二控制流信号生成第三信号,以及基于所述第一控制流 信号和第二控制流信号和所述第三信号来更新信用级别。
[0088] 在示例中,所述第三信号是响应于所述第一控制流信号中的跃迀的第一值,以及 响应于所述第二控制流信号中的跃迀的第二值。
[0089] 在示例中,所述信用逻辑使得所述第二路由器能够在接收到所述第二控制流信号 中的第一跃迀之前对所述请求进行传递,并且在所述信用级别小于阈值时防止所述第二路 由器对所述请求进行传递。
[0090] 在示例中,所述NoC是源同步混合分组/电路交换NoC。
[0091] 在示例中,所述路由器以第一频率和第一电压操作,并且所述第二路由器以第二 频率和第二电压操作。
[0092] 在一个示例中,一种装置包括:多个路由器,其中的每一个具有一组输入端口和一 组输出端口,所述输入端口和输出端口中的每一个具有电路交换部分和分组交换部分,其 中在源逻辑和目的地逻辑之间的所述一组输入端口和输出端口中的多个的分组交换部分 将在所述源逻辑和目的地逻辑之间建立电路交换通道,以基于控制流信号跃迀来对电路交 换数据进行通信,其中所述多个路由器根据源同步协议来进行操作。
[0093] 在示例中,所述分组交换部分中的每一个包括存储请求的缓冲器,其中所述请求 的优先级在每一个分组交换部分处是可变的。
[0094] 在示例中,所述缓冲器包括多个条目,每一个条目存储与所述请求中的一个相关 联的方向信息,并且其中,通过在具有最高优先级的缓冲器的可用条目中存储第一优先级 请求来维护全局优先级顺序。
[0095] 在示例中,所述装置还包括:第一选择器,其耦合到所述缓冲器的输入;以及写入 指针逻辑,用于控制所述第一选择器,其中所述写入指针逻辑包括Gray计数器,用于选择 所述缓冲器的在其中写入方向信息的条目;第二选择器,其耦合到所述缓冲器的输出;以 及读取指针逻辑,用于控制所述第一选择器,其中所述读取指针逻辑包括Gray计数器,用 于选择所述缓冲器的从其中读取方向信息的条目。
[0096] 在示例中,当第一请求在所述源逻辑和目的地逻辑之间的每一个分组交换部分中 具有最高优先级时,建立所述电路交换通道以用于与所述第一请求相关联的数据的通信。 [0097] 在示例中,所述电路交换通道用于响应于所述电路交换通道的建立,来对电路交 换数据通信的多个数据段进行通信。
[0098] 在示例中,所述电路交换通道用于对以下项进行通信:第一电路控制流信号,用于 指示跟随有至少一个额外的数据段的多个数据段的第一数据段的到达;第二电路控制流信 号,用于指示所述电路交换数据通信的完成,以及第三电路控制流信号,用于指示在所述源 逻辑中接收到所述多个数据分组的每一个数据段。
[0099] 在示例中,所述多个路由器
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1