首页> 中国专利> 用于缓冲服务请求的集成电路布置

用于缓冲服务请求的集成电路布置

摘要

本发明公开了一种集成电路布置(100),包括:包括多个连接(300)的数据通信网络;经由至少一个网络接口(120)耦合到数据通信网络的多个模块(110),该网络接口包括多个缓冲器;经由其他网络接口(140)耦合到数据通信网络的远程服务模块(150),其中每个所述模块(110)被布置用于向其网络接口(120)提供针对远程服务模块(150)的服务请求(200),所述网络接口被布置用于利用第一标识符(204)扩展所述服务请求,该第一个标识符用于与远程服务模块(150)建立网络连接(300);以及电路部分(350),包括在至少一个网络接口(120)与所述远程服务模块(150)之间的多个缓冲器(142)以用于存储来自所述多个模块(110)的服务请求(200),所述电路部分包括解码逻辑(144)用于通过对嵌入在服务请求(200)中的其他标识符(210)进行解码来选择所述缓冲器(142)中的一个缓冲器。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-12-09

    授权

    授权

  • 2012-10-03

    实质审查的生效 IPC(主分类):H04L12/56 申请日:20091111

    实质审查的生效

  • 2012-08-15

    公开

    公开

说明书

技术领域

本发明涉及集成电路(IC)布置,该集成电路布置包括具有多 个连接的数据通信网络,经由至少一个网络接口耦合到所述数据通 信网络的多个模块,网络接口包括多个缓冲器,以及经由其他网络 接口耦合到数据通信网络的远程服务模块,其中每个模块被设置以 提供其与对于所述远程服务模块的服务请求的网络接口,服务请求 包括用于选择所述网络接口的缓冲器的第一标识符。

本发明还涉及用于在这样的IC布置中使用的模块和电路部分。

背景技术

支持在例如片上系统(SoC)的集成电路的模块之间或者在封装 中系统(SiP)中的IC模块之间的数据通信给这种布置的设计者提 出了设计上的挑战,因为该布置内模块的复杂性以及这些模块操作 的速度对该布置的数据通信部分的灵活性和性能提出了较高要求。

在复杂的布置中,例如总线的端到端连接是不适当的,因为它 们缺乏所需要的灵活性,使得在IC布置中不得不使用过量的金属以 满足数据通信要求。为此,研究了所谓的片上网络(NoC)范式。 典型的NoC包括多个网络接口之间的多个连接,连接借助于NoC中 的开关是可配置的。

Radulescu等人在IEEE Transactions on Computer Aided Design of  Integrated Circuits and Systems,第24卷,第1期,2005年,第4-17 页上发表的“An Efficient On-Chip NI Offering Guaranteed Services, Shared Memory Abstraction,and Flexible Network Configuration”中 公开了根据第一段的IC布置的示例。在该布置中,通过这样的NoC 从主模块向从模块通信服务请求。从模块可以包括多个队列,主模 块以路径标识符和远程队列标识符的组合形式提供路由信息以允许 所述网络接口在主模块的网络接口和从模块的网络接口之间建立网 络连接。路径标识符和远程队列标识符二者作为第一级别标识符驻 留在OSI兼容请求包的相同级别中。主(master)的网络接口包括不 同的队列以在网络上提供保证的带宽和尽力而为的服务。远程(从) 网络接口中的队列用于相同目的。

该方案的缺点在于,一旦服务请求被存储在远程队列中的一个 中,服务请求的重新排序就不再可能,特别是在队列被实现为先进 先出(FIFO)缓冲器时。如果从模块的请求处理消耗相对大量的时 间,这会导致在从模块处理一个或者多个耗时的服务请求时网络变 为未被充分使用,则这样的重新排序会是有用的。例如,在从模块 是存储器控制器的情况下,存储器访问请求的处理典型地比访问请 求和访问结果在网络上的通信花费得更长,以使得通过在网络连接 上实现保证的带宽和尽力而为的原理的网络性能优化不可能产生IC 布置的最佳性能。

US 7,043,593公开了在经由数据总线连接的数据处理器中的主 单元和从单元。主单元被设置以向主单元和从单元之间的数据事务 指派优选级标识符。从单元具有其中存储有数据事务的数据事务队 列以及执行顺序分析单元,执行顺序分析单元基于进入的数据事务 的优先级标识符值来确定数据事务队列的内容是否需要重新组织。 这考虑到通过从单元的数据事务的无序执行。该方案具有的缺点在 于大量数据事务会每次在新的数据事务到达从模块时要求重新组 织。这在数据事务流量的高体积的情况下会禁止有效的数据产出。 而且,该方案不适于处理来自多个主的数据事务。

发明内容

本发明旨在提供一种IC布置,其中支持对针对用于处理服务请 求的其他模块的这些服务请求的有效调度,同时避免对大量网络连 接的需要。

根据本发明的一方面,提供一种集成电路布置,包括:包括多 个连接的数据通信网络,经由至少一个网络接口耦合到所述数据通 信网络的多个模块,该网络接口包括多个缓冲器;经由其他网络接 口耦合到数据通信网络的至少一个远程服务模块,其中每个模块被 设置以提供其与针对远程服务模块的服务请求的网络接口,所述网 络接口被设置以利用用于与远程服务模块建立网络连接的第一标识 符扩展所述服务请求;以及电路部分,包括位于至少一个网络接口 与远程服务模块之间的用于存储来自多个模块的服务请求的多个缓 冲器,所述电路部分包括解码逻辑,用于通过解码嵌入在服务请求 中的其他标识符来选择缓冲器之一。

这种电路部分可以位于数据通信网络中或者其他模块的网络接 口中,支持对例如FIFO队列等适当缓冲器中的服务请求的调度。这 些缓冲器可以被组织,使得在将服务请求放置在所述缓冲器中之前, 可以分离要求不同服务处理持续时间的服务访问请求,从而不需要 对缓冲器的重新组织。而且,与在Radulescu等人的论文中公开的IC 布置相比较,不需要去往每个远程队列的专用连接,由此支持网络 所提供的连接数目的降低。

该其他标识符可以是队列标识符,使得解码逻辑可以基于该队 列标识符而直接向缓冲器之一指派服务请求。备选地,该其他标识 符可以包括所述服务请求的优先级指示,使得解码逻辑被布置用于 基于优先级信息来选择缓冲器。在另一备选方案中,该其他标识符 包括用于确定远程服务模块处理所述服务请求所需要的时间的指 示,使得解码逻辑被布置用于基于该其他模块对请求的处理的持续 时间来选择缓冲器。

在一个实施例中,服务请求符合OSI(开放系统互连)模型,并 且其中解码逻辑被布置用于在将所述服务请求转译为OSI模型的传 输层时对该其他标识符进行解码。为此,服务请求可以包括多层分 组,该多层分组包括包含第一标识符的第一报头层和包含该其他标 识符的其他有效载荷层。这具有的优点在于,第二标识符对于发送 服务请求的模块的网络接口而言将是不可见的,因为此网络接口通 常被布置用于基于OSI模型中的第一报头层来建立网络连接。

在另一实施例中,电路部分包括M个缓冲器,M是至少为2的 整数,并且其中模块被布置用于生成M个不同的其他标识符。换句 话说,远程缓冲器对于每个其他标识符值都是可用的,使得具有不 同标识符值的服务请求可以被指派到不同的远程缓冲器。这具有的 优点在于,实现了在其他模块处对服务请求重新排序的高灵活性。

在备选实施例中,集成电路布置包括N个模块,N是至少为2 的整数,N个模块中的每一个被配置用于生成M个不同的其他路由 标识符,M是至少为2的整数,并且其中电路部分包括M乘N个缓 冲器,解码逻辑被布置用于基于第一标识符和其他标识符的组合来 选择M乘N个缓冲器中的一个。这具有的优点在于,可以基于在与 请求模块相关联的网络接口中使用的优先级标识符以及其他标识符 来重新调度服务请求,从而可以实现优化的精细等级。备选地,电 路部分可以包括M乘P个缓冲器,P是网络中的连接数目,M乘P 个缓冲器中的一个是基于例如连接标识符的连接标识信息和其他标 识符而可选择的。

优选地,每一个连接包括位于网络接口和电路部分之间的缓冲 器。这具有的优点在于,不需要即时(on-the-fly)进行向电路部分 缓冲器之一指派服务请求,因而避免了由同时发生服务请求产生的 解码冲突。

本发明的集成电路布置可以是单个IC以及包括通过所述数据通 信网络互连的多个IC的模块,IC形成IC布置的模块(以及其他模 块)。在后一种情况下,网络接口可以形成IC的一部分或者可以是 所述布置中的分离IC。本发明的IC布置可以被结合在诸如移动通信 设备、图像处理设备、信号处理设备等等的电子设备中。

根据本发明的进一步方面,提供一种用于在本发明的集成电路 布置中使用的模块,其中该模块被布置用于提供与用于远程服务模 块的服务请求的网络接口,服务请求包括用于选择所述网络接口的 缓冲器的第一标识符以及用于选择在所述网络接口和所述远程服务 模块的其他网络接口之间耦合的电路部分中的多个缓冲器之一的第 二标识符。这样的模块能够生成可以由本发明的IC布置的电路部分 的解码器以所述进一步标识符为基础指派到其缓冲器之一的服务请 求。

根据本发明的再一方面,提供一种用于在本发明的集成电路布 置中使用的电路部分,该电路部分包括用于在用于提供服务请求的 多个模块的至少一个网络接口和用于处理所述服务请求的远程服务 模块之间耦合的多个缓冲器;以及解码逻辑,用于通过解码被嵌入 在服务请求中的其他标识符在所述缓冲器之一中存储服务请求。可 以被包括在网络接口中的这样的电路部分考虑到其他模块的服务请 求的有效处理。

附图说明

参照附图通过非限制性示例的方式更加详细地描述本发明的实 施例,其中

图1示出了本发明的IC布置的实施例;

图2示出了本发明的服务请求的实施例;

图3示出了本发明的IC布置的实施例的另一细节;以及

图4描绘了本发明的IC布置的另一实施例的细节。

具体实施方式

应该理解,附图只是示意性的并且没有按照比例绘制。还应该 理解,在整个附图中使用相同的附图标记表明相同或者类似的部件。

图1描绘了IC布置100,其包括四个主模块110,这四个主模 块100经由网络接口120耦合到由一对缓冲器131、132以及开关134 符号化的路由器模块130。将会理解,这只是这样的开关模块130 的符号化说明,并不旨在将该模块的范围限制到该表示;开关模块 130的其它实施例对于本领域的普通技术人员来说将是易见的。

IC布置100通常包括经由其他网络接口140耦合到路由器模块 130的至少一个从模块150。主模块110和从模块150的数目仅以非 限制性示例的方式示出,并且可以包括任何适合数目的模块。此外, 在图1中,四个主模块110共享单个网络接口120,但是应该理解其 他布置同样是可行的,例如每一个主模块110具有专用网络接口120 或者P个主模块110共享Q个网络接口120,其中P和Q是整数并 且P>Q,多个从模块150也是这样,其也可以经过专用或者共享的 其他网络接口140连接到数据通信网络。

网络接口120和其他网络接口140可以被认为是包括路由器模 块130的数据通信网络的一部分。尽管示出了单个路由器模块130, 但是将会理解,数据通信网络可以包括更多的路由器模块130,例如 路由器开关。路由器模块130可以可选地包括缓冲器131、132,例 如用于缓冲网络上的尽力而为的(best effort)通信。从模块150可 以是提供对数据存储器的访问的存储器控制器,来自主模块110的 请求包括访问指定的存储器地址处的数据的请求。这样的请求将称 为服务请求。网络接口120和其他网络接口140的可能实现对于本 领域的普通技术人员来说是已知的;例如,Radulescu等人的论文给 出了这样实现的详细描述,并且替代物对于本领域的普通技术人员 来说将容易可获得。因而,仅出于简化目的,将不详细描述这些网 络接口的实现。

例如,网络接口可以被布置用于提供数据通信网络的基于分组 的通信与模块110和150所使用的更高级别协议之间的转换。这样 的协议可以根据OSI模型定义,这将在后面进行更加详细地解释。 网络接口120和140每一个的设计可以被划分为两个部分:NI内核, 其实现信道,对服务请求进行分组并且调度到路由器模块130的请 求,实现模块到模块流控制和在多个时钟域情况下的时钟域交叉; 以及NI外壳,其实现数据通信网络连接、对于连接的事务排序以及 被提供到模块的协议专有的其它较高等级问题。

在一个实施例中,第一网络接口120包括多个队列(未示出), 例如FIFO缓冲器,用于存储保证的带宽和来自主模块110的尽力而 为的服务请求。如在Radulescu等人的论文中解释的,调度器选择哪 一个服务请求在每一个数据通信周期中将被转发到数据通信网络。

根据本发明,IC布置100进一步包括电路部分,其包括多个缓 冲器142以及解码逻辑144,解码逻辑144用于向缓冲器(即,队 列)142之一指派例如经由路由器模块130而从数据通信网络到达的 服务请求。在图1中,电路部分被包括在其他网络接口140中,但 是后面将更加详细地解释电路部分也可以位于其它位置。

解码逻辑144被布置用于基于服务请求中所包含的其他标识符 而将该服务请求指派给缓冲器142中的一个。这利用图2进行更加 详细地解释,其示出了由主模块110(和网络接口120)生成的服务 请求200的可能实施例。服务请求200包括四个层,包括在其中定 义网络路径202和第一等级标识符204的上层。该四个层可以形成 OSI模型内的网络层消息240。在一个实施例中,由主模块110生成 摘要服务请求,网络接口120被布置用于例如通过向服务请求250 添加该上层而将该摘要服务请求转译为OSI兼容分层包200。网络接 口120可以使用嵌入在来自主模块110的服务请求中的服务信息(例 如远程服务的名称)在网络上定位该服务并且相应地生成上层。其 它备选方案对于本领域的普通技术人员来说将容易获得。这具有的 优点在于对实际网络实现的知识可被限于网络接口120(和用于返回 通信的其他网络140)。

网络路径202通常包括用于在网络接口120与其他网络接口140 之间建立连接的路由信息,例如通过在正确位置中放置开关134。这 样的连接可以包括从主模块110到从模块150的两个单向信道,反 之亦然。这样的主模块110和从模块150的相应网络接口120和140 可以包括标记此类连接的终端的缓冲器,如前所述。这些缓冲器例 如被表示在图3的网络接口中,例如网络接口120中的缓冲器321、 322以及其他网络接口140中的缓冲器341、342。其他网络接口140 中的终端连接缓冲器可以由诸如由Radulescu等人公开的队列标识 符的分离的第一等级标识符标识,在这种情况下连接可以由第一等 级标识符的组合来建立,例如由第一标识符204和队列标识符的组 合建立。第一标识符204也可以存在以指示被分组的服务请求在数 据通信网络上的通信必须符合某些性能要求,例如保证的带宽或者 尽力而为。上层典型地由用于建立必要的网络连接的网络接口120 解释。

出于完整目的,第一等级标识符204的数目不必与从模块150 的数目相对应,因为这样的模块可以经过多个网络连接可访问,在 这种情况下第一标识符204的数目可以大于从模块150的数目。第 二层与较低层一起可以是,符合OSI模型的服务请求200的传输层 消息250的部分,该第二层通常在网络层消息240被转译为传输层 消息250时被解释,在该阶段可以放弃服务请求200的上层。传输 层250可以在服务请求目的地处被解释,例如从模块150的其他网 络接口140处。根据本发明的服务请求200的实施例,第二层可以 包括服务请求类型206、服务请求长度208和其他标识符210,其他 标识符210可以被认为是OSI模型上下文中的第二级标识符,因为 它被嵌入在分层服务请求200的较低等级中,并且由相应地向其他 网络接口140的缓冲器142之一指派服务请求200的解码逻辑144 解码。

其他标识符210可以是用于标识队列142之一的标识符,或者 可以是由解码逻辑144解释并且随后被映射到所述队列(例如,其 他网络接口140的缓冲器142)之一的一些优先级标识符。备选地, 请求类型206可以被用作其他标识符,因为请求类型可由从模块150 映射到服务请求的期望处理时间。

此时,要强调的是,队列142不是与端接网络接口140中的网 络连接的缓冲器相同的缓冲器,而是分离的缓冲器。因此,第二等 级标识符210这一标识符不同于Radulescu等人公开的作为用于通过 定义连接终端而建立网络连接的标识符的第一等级队列标识符。相 反,本发明的其他标识符210用于在一旦服务请求200到达电路部 分时就向队列142分派这些服务请求,使得其他标识符210不被用 于建立网络连接。

在一个实施例中,电路部分中的缓冲器142的数目等于其他标 识符210的潜在值的数目。因此,如果两个主模块110生成具有相 同的其他标识符210的服务请求,则这些服务请求将被指派到相同 的队列142,队列142通常是FIFO队列,使得这些服务请求无法由 从模块150的负载调度器重新排序。该实施例在从模块150的重新 调度灵活性和队列142的硬件开销之间提供良好的权衡。

在另一实施例中,电路部分中缓冲器142的数目等于其他标识 符210的潜在值的数目乘以IC布置100中主模块110的数目。这允 许基于第一标识符204和第二标识符210的组合而向队列142指派 服务请求200,使得来自具有相同其他标识符210的不同主模块110 的服务请求200到达电路部分的顺序可以仍然由从模块150按照不 同的顺序执行,因为这些服务请求200的相应第一标识符204可以 使这些服务请求200被调度到不同的队列142。该实施例提供从模块 150对服务请求200的处理中的高度重新调度灵活性。

为此,应该理解,队列142优选地是FIFO队列,使得这些队列 的内部重新排序是不可能的。因而,通过将被允许向例如存储器控 制器的从模块150转发服务请求200的队列142的选择在这些队列 的输出处发生重新调度。

此时,要重申的是,尽管Radulescu等人的论文公开了用于选择 远程网络接口的目的地队列的队列标识符的使用,但是该队列标识 符由主模块的网络接口与路由信息相结合地用于在主模块与指定的 从模块之间建立网络连接。该实现的直接结果是队列标识符的数目 必须等于网络连接的数目。由于网络中连接的数目通常是受限的以 避免包括专用于这样的连接的大面积的IC布置100,因此这限制了 队列标识符可以采取的值的数目;由于所述连接典型地包括一个或 者多个缓冲器,因此大量队列标识符将导致在数据通信网络中引入 大量缓冲器。然而,由于IC布置100对于在其他网络接口140中进 行的调度决策比对于数据通信网络的性能更加敏感,因此不需要网 络中这样大量的缓冲器,因而至少在面积开销方面产生无效的方案。 由于模块之间连接的对等本质,这仅能够通过限制网络接口140中 缓冲器142的数目进行克服。

出于该原因,有益的是使其他模块150可获得的缓冲器的数目 与数据通信网络中连接的数目无关,使得缓冲器142的数目可以超 出此类连接的数目。这由本发明通过如下方式实现:将服务请求200 路由到其他网络接口140的端口地址而不是其中的具体队列,使得 到该端口的连接充当复用连接,通过该复用连接,针对电路部分中 的多个队列142的服务请求200被复用。本发明是基于这样的认识, 即,这不会对对IC布置100的整体性能产生显著影响,因为此性能 主要是从模块150处理服务请求200花费的时间。

电路部分内侧的解码逻辑144被设置用于通过每一个服务请求 的传输层250的转译并且向合适的队列142指派服务请求对这些服 务请求200进行解复用。这在图3中进行了示意性阐释,其中在主 模块100和网络接口120和从模块150的其他网络接口140之间建 立连接300。连接300包括两个信道:从网络接口120到进一步网络 接口140的第一单向请求信道310,用于从主模块110向从模块150 通信服务请求200;以及单向响应信道320,用于从从模块150向主 模块110传送例如所访问的存储器数据的所请求的服务。

如前所述,其他网络接口140包括两个缓冲器341和342,用于 在各自信道310和320上缓冲信道上的通信。在操作中,服务请求 200从缓冲器341以及由电路部分350的解码逻辑144转译的这些请 求的传输层被顺序获取。解码逻辑142控制解复用器145用于基于 其他标识符210或者如前所述第一标识符204和其他标识符210的 组合而将服务请求200指派到队列142之一。在一个实施例中,复 用器146由存储器控制器150控制以从所选择的队列142获取服务 请求200。可以使用任何合适的调度算法进行该选择。这样的算法本 身已知并且因此仅出于简化目的不再进行详细解释。其中按照不同 方式控制复用器146的可选实施例也是可预见的。例如,可以提供 用于控制复用器146的分离控制逻辑(未示出),以使得存储器控 制器150接收被预复用的请求200的单个流,而不对该流中的请求 200的顺序进行控制。

另一可能性在于存在多个复用器146,每一个向存储器控制器 150呈现单个请求流。在其他实施例中,存在多个其他网络接口140, 每一个包括电路部分350,这些电路部分的复用器146的每一个向存 储器控制器150发送服务请求200的单个流。如果多个流访问存储 器控制器150,例如经由多个端口,则存储器控制器150可以包括具 有相关联的控制逻辑(未示出)的复用器(未示出)。其它替代物 对于本领域的普通技术人员来说将明显。

在图3中,仅通过非限制性示例的方式,电路部分350形成从 模块150的其他网络接口140的一部分。电路部分350位于网络接 口120和其他网络接口140之间的数据通信网络中也是可行的,即 位于服务请求250的传输层被解释处的中间网络接口中。这样的可 选实施例的示例在图4中示出。这里,电路部分350被放置在位于 两个开关模块130之间的数据通信网络中。在该实施例中,通过重 新调度从上游开关模块130去往下游开关模块130的传入服务请求 200的顺序,解码逻辑144还充当重新调度块。在该实施例中,服务 请求200向传输层250的转译是在数据通信网络中而不是其他网络 接口140中执行的。这例如在如下情况下是有益的:缓冲器142例 如出于路由原因而无法靠近从模块150放置使得它们被代之以放置 在数据通信网络中,或者为了支持多个网络接口级中的重新排序以 在多于一个远程网络接口上均衡重新排序负载。备选地,在服务请 求200的两个流A和B在去往电路部分350的连接上被复用并且在 电路部分350中被解复用时,该实施例可以是有用的。电路部分350 可以检测流A和B中的一个不恰当,并且(暂时)在离开电路部分 350的连接上复用A和B时给出对“流”B的请求的偏好。因而, 通常,本发明可以被利用以在数据通信网络中的下游点处均衡服务 请求流。

应该注意,上面提及的实施例说明而非限制本发明,并且本领 域的普通技术人员将能够在不偏离所附权利要求的范围的情况下设 计许多替代实施例。在权利要求中,括号中的任何附图标记不应该 被构筑为限制权利要求。词语“包括”不排除除了在权利要求中列 出的元件或者步骤之外的元件或者步骤的存在。位于元件之前的词 语“一”或者“一个”不排除多个这样的元件的存在。本发明能够 利用包括几个分离元件的硬件实现。在枚举几个模块的设备权利要 求中,这些模块中的几个可以由一项硬件或者硬件的相同项实施。 唯一事实是,在共同的不同从属权利要求中阐述的某些措施不表明 不能够有利地利用这些措施的组合。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号