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

文档序号:9493960阅读:来源:国知局
但是,单遍编译器仍可以用于简单的编译。编 译器可以利用任意已知的编译技术,以及执行任意已知的编译器操作,例如是词法分析、预 处理、解析、语义分析、代码生成、代码转换以及代码优化。
[0030] 较大的编译器通常包括多个阶段,但是通常来说这些阶段包含于两个通用阶段 内:(1)前端,即通常可以在其中发生句法处理、语义处理以及某种变换/优化的阶段,以及 (2)后端,即,通常在其中发生分析、变换、优化以及代码生成的阶段。一些编译器指的是中 间的,其示出在编译器的前端和后端之间的描绘的模糊。其结果是,提到的插入、关联、生成 或编译器的其它操作可以发生在上述阶段或遍、以及编译器的任意其它已知的阶段或遍的 任意一个中。作为说明性示例,编译器可能在编译的一个或多个阶段中插入操作、调用、函 数等,例如在编译的前端阶段插入调用/操作,并且然后在变换阶段期间将该调用/操作变 换为低级代码。注意,在动态编译期间,编译器代码或动态优化代码可以插入这种操作/调 用,以及优化代码以用于在运行时执行。作为具体的说明性示例,二进制代码(已经编译过 的代码)可以在运行时期间被动态地优化。这里,程序代码可以包括动态优化代码、二进制 代码或其组合。
[0031] 类似于编译器,转换器(例如二进制转换器)静态或动态地对代码进行转换,以优 化和/转换代码。因此,提及的对代码、应用程序代码、程序代码或其它软件环境的执行可 以指的是:(1)动态或静态地执行编译器程序、优化代码优化器、或转换器,以编译程序代 码、维护软件指令、执行其它操作、优化代码、或转换代码;(2)执行包括操作/调用的主程 序代码,所述主程序代码例如是已经被优化/编译的应用程序代码;(3)执行与主程序代码 相关联的其它程序代码(例如库)以维护软件结构、执行其它软件相关操作、或者优化代 码;或者⑷其组合。
[0032] 数量增长的集成知识产权(IP)逻辑中的片上通信对处理器功率和性能产生了更 大的影响。片上网络(NoC)是当前在多核心系统中最广泛使用的交换结构拓扑之一。NoC 将数据通过由与链路连接的路由器组成的共享互连从源发送到目的地。传统的同步分组交 换NoC由基于全局时钟来与其邻居通信的路由器建成。分组交换指的是至少在每一个路由 器中触发(flop)/存储数据。因此,在NoC中的所有路由器以相同频率操作。此外,在低流 量速率处,时钟功率趋向于支配总共的NoC功率消耗,由此限制了系统效率。
[0033] 源同步NoC随着每次数据传送发送延迟匹配时钟,消除了对完全同步时钟的需 要。该技术通过移除在每一个路由器处对先进先出数据寄存器(FIFO)进行同步的需要而 促进了多时钟设计。此外,通过仅针对执行路径而不是最坏情况路径来引发延迟,增加了 吞吐量。通过对时序偏差进行平均而不是应用如在完全同步设计中的最坏情况边限,也可 以减轻过程变化。这也消除了针对时钟偏斜和抖动的边限。然而,使用分组交换的源同步 NoC消耗时钟功率来在每一个路由器处至少一次触发数据并且控制信号。源同步操作和分 组交换独立于彼此。因为仅在传输实际数据时对触发器计时,所以源同步混合NoC受益于 较低时钟功率存在。第二,源同步混合NoC变得更容许变化,这是因为不受限于最慢的链接 部件,电路能够不以最坏情况时序边限而进行操作。
[0034] 利用在独立电压和速度下操作的能力,根据本发明的实施例的路由器提供了在交 换结构或流量模式本质上是不对称的情况下改进能量效率的机会。
[0035] 在各种实施例中,提供具有源同步设计的混合NoC。在混合NoC中,分组交换预留 分组用于建立电路交换数据通道。在实施例中,分组交换预留分组可以相对较小,而电路 交换数据传送相对较大。分组在每一个路由器节点处至少被触发一次(通常四次)。相反 地,电路交换传送不具有路由内存储,这降低了时钟功率。以这种方式,NoC使得能够发生 混合分组和电路交换数据通信,而相对于完全同步或分组交换NoC具有提高的能量效率和 吞吐量。通过在电路交换通道上传输主要数据,能够避免介入中间的存储元件,降低功率消 耗。并且通过使用混合设计,分组交换网络能够用于储备电路交换网络的路径,缓和针对网 络资源的竞争所导致的拥塞。
[0036] 实施例可以尤其适合于具有在不同的时钟和电压域中操作的IP块的NoC以及异 构NoC。这样,实施例结合了源同步操作和电路交换的益处,以使集成变得容易并且降低时 钟和仲裁功率。
[0037] 因此,混合NoC将分组交换网络的吞吐量与电路交换数据通道的能量效率相结 合。使用源同步布置,可以将处理器(例如包括NoC的片上系统(SoC))设计为具有多个时 钟域。源同步操作促进异构NoC与多个时钟域的集成,而无需全局时钟分布或在每一个路 由器处同步数据FIFO缓冲器。这样,防止网络性能被缓慢路径或路由器全局限制,并且通 过对平均过程变化所导致的时序变化进行了平均,而增加了吞吐量,并且消除了针对时钟 偏斜和抖动的边限。
[0038] 在各种实施例中,源同步时钟允许各个路由器在缺少任意全局同步信号的情况下 进行通信。反而,控制流信号中的跃迀(transition)被用于传达信息,由此消除对全局时 钟信号的需要。路由器使用控制流信号(例如,"请求"和"批准"信号)来与其邻居进行通 信。然而,它们不是电平敏感的,而是被跃迀的编码。"请求"上的跃迀表明在路由器的输入 端口处存在新的分组。"批准"上的跃迀表明在路由器的输出端口处的先前数据已经被处理 并且可以运行新的数据。
[0039] 现在参考图2,其示出了根据本发明的实施例的NoC 200的框图,以及一对连接的 路由器210a和210b的进一步的细节。如图所示,路由器210a包括输出端口 212a,而路由 器210b包括输入端口 212b。对应的输出端口发送被传送到路由器210b的相对应的输入端 口 212b的"请求"信号。接着,该输入路由器将"批准"信号传送返回到路由器210a。如图 2所示,当"请求"跃迀时,在路由器的输入端口处的锁存器关闭并且将请求发送给适当的输 出端口。当该请求被服务时,输入端口将批准发送返回输出端口。这会打开锁存器,由此允 许新的分组进入到输入端口。注意,另一对请求/批准信号可以在用于从路由器210b流动 到路由器210a的数据的另一个方向进行通信。
[0040] 在一个实施例中,路由器通过切换(toggle) "请求"信号并且等待通过如图2所 示的互连从邻近路由器接收回的"批准"来发射分组。为了避免用于返回"批准"信号的这 种额外的延迟,一些实施例允许源在接收到针对第一分组的批准之前发射多个分组。在该 基于信用的系统中,飞行中的多个分组由中间存储缓冲器(例如,锁存器)来保持。虽然在 本文中描述了路由器可以在接收到任意批准之前发射2个分组的信用-2系统,但是其它信 用方案也是可能的。取决于路由器内不同端口与其目的地IP之间的距离,也可以使得每一 个端口在独立的信用级别操作。该独立性对于SoC集成尤其有用,其中,取决于不同IP的 大小及其布图规划,一些IP可以比其它IP更远离路由器。
[0041] 在一个实施例中,在信用_2模式下操作的路由器能够通过在接收到相对应的"批 准"信号形式的确认之前两次切换"请求"来发射2个数据分组。针对这种流控制的信用跟 踪状态图在图3中示出。如图3所示,系统可以开始于信用2状态。在"请求"信号跃迀时, 状态机移动到信用状态1,并且在另一"请求"跃迀时,其移动到信用状态0。接着,"批准" 信号中的跃迀引起状态机跃迀到增加的信用状态1和2,如图所示。
[0042] 现在参考图4,其示出了根据本发明的实施例的有限状态机(FSM)的框图。有限状 态机在基于请求和批准的跃迀,在表示信用的3个可能级别的8个可能状态间切换。为了 避免由于请求和批准的同时跃迀引起的信用跟踪错误,3个信用状态被划分为8个有限状 态机状态。如图4所示,信用0具有2个FSM状态,信用1具有4个FSM状态,并且信用2 具有2个FSM状态。作为将信用状态映射到8个FSM状态的结果,通过请求/批准信号级 别而不是跃迀来设置通过有限状态机的跃迀。系统开始于信用级别2,请求信号和批准信号 都是高。通过向下指向的箭头示出了从高到低级别的改变,并且通过向上指向的箭头示出 了从低到高级别的改变。图4还示出了每一个状态处的信用计数。
[0043] 现在参考图5,其示出了根据本发明的实施例的信用跟踪电路的框图。如图5所 示,信用跟踪电路300经由一组逻辑门310、320和330来接收"批准"和"请求"信号。接 着,AND门310和330的输出驱动锁存器340的设置和复位输入,其输出与最高有效位(MSB) 相对应。经由逻辑350,三个信号的状态被输入到由OR门320的输出锁定的锁存器360,以 由此指示信用级别。更具体地,在信用级别既不是〇〇〇也不是011时,锁存器360的输出为 高。注意,在进入输入逻辑门310、320和330之前,将请求和批准跃迀转换为脉冲。
[0044] 因此,如图5所示,在任意给定的瞬间,信用跟踪状态机响应于"请求"、"批准"、或 两者中的跃迀。对于"请求"和"批准"中的同时跃迀,状态机获得正确的状态,而不论其响 应"请求"和"批准"的次序。状态机产生单个位的输出,其是高时指示分组可以由路由器 端口发射。此外,在给定的"请求"和"批准"两者同时跃迀的情形,状态分配的独特性质确 保总是获得正确的状态,而不管处理跃迀的次序。
[0045] 现在参考图6,示出了根据本发明的实施例的分组路由器输入端口的框图。如图 6所示,输入端口 400包括输入锁存器405和410,其分别接收地址和请求信号。将地址提 供给方向逻辑420,其生成到NOR门435的一个热位向量输出。接着,请求输入通过锁存器 410(以及脉冲转换逻辑)被锁存到另一锁存器415,其接着驱动具有耦合到NAND门430的 输出的延迟元件425,该NAND门430的输出耦合到NOR门435。注意,到NAND门430的第 二输入经由反相器432的输出被接收,反相器432接着耦合到OR门440的输出,OR门440 接收来自各种端口的一组批准信号。该输出信号还驱动用于对输入锁存器410和输出锁存 器448二者进行计时的另一锁存器445,其驱动批准输出。注意,用于锁存器448的时钟信 号是通过反相器446和NAND门448被驱动的。
[0046] 图7是根据本发明的实施例的分组路由器输出端口的框图。现在参考图7,路由 器输出端口 450包括优先级电路455,其接收来自各种输入和输出信号的到一组AND门 460。-4603的请求,AND门460。-4603的输出驱动OR门461。AND门460的其它输入经由由 AND门480驱动的锁存器465被接收,当信用量大于零时,AND门480接收来自信用跟踪器 475的高信号。该AND门还对切换触发器490进行计时,该切换触发器490提供请求输出 信号。注意,到AND门480的另一输入经由另一锁存器470耦合到具有分别从优先级电路 455和OR门461接收的设置和复位输入的输出。
[0047] 路由器的输入和输出端口被设计为结合信用跟踪逻辑来工作。当缺少分组时,输 入锁存器保持透明。在请求信号中的跃迀使得内部电平敏感的请求被创建并且使用由方向 逻辑420所生成的一个热位向量将其传播到适当的输出端口。在处理了电平敏感请求之 后,输出端口将批准信号发送到输入端口,以关闭输入锁存器410。使用由方向逻辑420生 成的一个热位向量来将内部请求传播到适当的输出端口。
[0048] 从图7可看出,优先级电路455在来自输入端口的到来的电平敏感请求信号中选 择一个。如果信用跟踪器475所输出的"信用>0"的位是高的,则切换"请求输出"信号。 这暗示发射新分组。同时,批准被发送回相对应的输入端口。响应于该批准,输入端口通过 重置其内部请求信
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1