集成电路和建立事务处理的方法

文档序号:7577186阅读:101来源:国知局
专利名称:集成电路和建立事务处理的方法
技术领域
本发明涉及一种包含一个网络和多个模块的集成电路,该多个模块经安排,通过该网络互相通信,其中该网络经安排,在一个第一模块与至少两个第二模块之间建立事务处理(transaction),该网络经安排,从第一模块向第二模块发送多个请求,其中,第二模块经安排,生成表明对该请求的执行的结果的单独响应。
本发明也涉及在包含一个网络和多个模块的集成电路中建立事务处理的方法,模块之间的事物处理是通过该网路建立的,其中该网络从第一模块向至少两个第二模块发送多个请求,其中,第二模块生成表明对该请求的执行的结果的单独响应。
背景技术
由于对实现新特性和对现有功能的改进的越来越多的需要,集成在硅片上的系统变得越来越复杂。这是通过增加在集成电路上所能集成的元件的集成度而得以实现的。同时,电路运转的时钟速度也趋向于增加。与增加的元件的集成度结合的更高的时钟速度,减少了能在相同的时钟域内操作的区域。这已经产生了对模块化方法的需求。按照这样一个模块化方法,处理系统含有多个相对独立的复杂模块。在常规的处理系统中,模块通常通过总线互相通信。然而,由于以下原因,随着模块的增加,这种通信方式不再实用。第一,大量的模块构成太高的总线负载。第二,由于只能让一个装置向总线发送数据,总线构成了通信瓶颈。
一种通信网络构成克服这些缺点的一个有效的方式。该通信网络含有多个部分连接的节点。来自一个模块的请求被节点重定向到一个或多个其它节点。为此,该请求包含指示被寻址的模块在网络中的位置的第一信息。该请求可进一步包含指示该模块的特定位置的第二信息,诸如存储器或寄存器地址。第二信息可激活被寻址模块的特定响应。
可以在集成电路上的网络中使用一种事务处理模型来建立模块之间的通信。一个基本事务处理包含一个请求和一个指示该请求的执行结果的响应。在多播事务处理中,来自一个第一模块的请求被复制,每个被寻址的模块接收该请求的一个拷贝,这样第一模块向至少两个第二模块发送多个请求。随后,第二模块向第一模块发送个别的响应。
多播的概念已经在不同于集成电路上网络的领域中应用,但是直到目前为止其实现仍然相当局限,因为其仅仅包括对多个写消息的接收的确认,而不是对多个请求的执行的确认。一个请求可包含一个写命令和一个数据局部分,或者可包含一个读命令。按照现有技术,从一个第一模块向两个或更多的第二模块发送多个写消息是可能的。这是一个多播的写消息;第二模块能向第一模块发送确认消息,该确认消息指示是否写消息已经被收到。然而,这个多播方法是有局限的,因为该确认并不指示是否写消息已经被第二模块执行。
美国专利US 5,541,927中披露了这样一个多播方法。该方法把来自多个目的地节点的返回消息数限定到一个源节点,这是通过在网络中使用中间节点完成的。这些中间节点是整个网络中唯一被授权发送返回消息的节点。下层节点向中间节点发送它们的返回消息,但不是向源节点发送。这个方法减少了到源节点的返回消息的个数,并详细说明了合并仅仅指示消息的接收的确认消息。
该多播事务处理的一个缺点是,来自第二模块(亦称从属模块、受控模块或目的模块)的单独响应,对第一模块(亦称主模块、主控模块或发起模块)增加了很大的负担。
因此,增加了第一模块的复杂性,因为来自第二模块的单独响应必须由第一模块处理。此外,第一模块更不能作为一个网络部件而被再度使用,因为它依赖于第二模块的数量。这就使网络体系结构与总线体系结构不协调,因为当使用总线体系结构时,第一模块不依赖于第二模块的数量。

发明内容
本发明的一个目的是提供一种集成电路和所陈述的那种减少第一模块上的负担的方法。为了实现所述目的,该集成电路的特征在于权利要求1的特征部分,该方法的特征在于权利要求9的特征部分。
在一个具有互相异步地工作的模块的处理系统中,一个第二模块通常发送一个单独响应,通知第一模块它已经执行了第一模块的请求。如果请求是多播的,则生成多个所述单独响应,这给第一模块带来很大的负担。在本发明的集成电路中,第一模块只接收一个单一响应,这减少了这种负担。
可以用网络中的一个专用节点来生成和发送该单一的响应。如果该单一响应的值依赖于来自第二模块的个别响应的值,权利要求2中所定义的实施例包括一个产生和发送该单一响应的网络接口。
如果单一响应的值取决于来自第二模块的单独响应的值,那么定义在权利要求3中的实施例是有利的。这导致一个代表来自第二模块的个别响应的一个特定函数的输出的组合响应。这个特定函数返回根据个别响应的值的单一响应的值。
根据具体情况,单一响应可以以各种方式以单个响应为根据。如果被寻址的第二模块是复制的存储器,例如一个容错存储器系统中的存储器,并且第一模块试图在其中存储数据,则权利要求4中所定义的实施例是有利的。在这种情况中,仅仅接收和存储数据的一个拷贝就足够。特定函数通过返回一个代表成功的值来指示成功。在这个实施例中,如果个别响应的至少一个值代表成功,则特定函数返回一个成功。
在其它情形中,例如如果被寻址的第二模块是分布式存储器系统中的存储器,则第二模块的每一个都执行请求是强制性的。在权利要求5所定义的实施例中,在这个情况之前不生成单一响应。仅当如果所有的单独响应都有一个代表成功的值时,才生成单一响应。
权利要求6中所定义的实施例代表一个特定的情况,其中,如果没有发生错误,该特定函数返回一个代表成功的值,如果发生至少一个错误,则返回一个代表最严重错误的值。
权利要求7中所定义的实施例代表另一个特定的情况,其中,第二模块的单独响应的值是按照发生的错误的类型而规定的。当有必要决定所发生的错误的原因时,这个实施例是有利的,这个原因然后被通报给第一模块。如果发生若干错误,可以生成单一响应的可供选择的值。有可能为单一响应的值选择所发生的最严重的错误的值,或者,单一响应可以是一个含有所有单个响应的值的组合响应,以提供关于所发生的错误的完整信息。
权利要求8中所定义的实施例,能被用来通过随后的多播是否处理执行一个像测试-与设置-命令那样的复合命令。在这种情况下,第一个多播事务处理的单一响应传送第二模块的数据部分并指示哪些数据部分属于哪些第二模块。这个信息是第一模块需要这个信息,以执行条件测试和发送另外多个请求,以便将新数据写到那些通过条件测试的第二模块。
本发明克服了集成电路上网络中多播事务处理的缺点,因为对第一模块的响应的数量被从较多数量减少到一个。
注意到在WO 02/23814中披露了一种多播的方法。该方法用转换器(switches)作为连接节点在集成电路上网络以外的连网环境中合并确认消息。该方法假设返回消息同时到达,因此把经合并的确认的使用局限于特定的情形。


参照附图对本发明作更详细的说明,附图中图1表示一个集成电路上的网络;图2表示一种多播消息的概念;图3表示按照本发明的一种多播消息的概念;图4表示集成电路上网络中的多播事务处理;图5表示按照本发明的多播事务处理;图6表示一个配置网络接口的集成电路上的网络;图7表示一种具有单一响应的多播事务处理,其中至少一个第二模块必须接收第一模块发出的请求;图8表示一种具有单一响应的多播事务处理,其中所有第二模块必须接收第一模块发出的请求;图9表示一种具有单一响应的多播事务处理,其中响应的值指示发生过的最严重的错误;图10表示按照本发明的网络功能的一种可能的实现;图11表示按照本发明的网络功能的另一种可能的实现;具体实施方式
图1示意性地图示了一种集成电路IC,它配置一个网络,用于在M1、M2、M3至Mn的多个模块之间的通信。模块的例子是中央处理单元(CPUs)、专用处理器、存储器和存储器控制器。网络包含N1、N2至Nn的节点和节点之间的连接。这个网络体系结构提供模块之间的互连,并能部署在集成电路上,作为常规总线体系结构的一种替代。
图2表示一种多播消息的概念。一个第一模块M1发送一个复制的写消息MSG给至少两个第二模块M2、M3,或者作为选择,该写消息MSG被网络复制。第二模块M2、M3的确认仅仅指示消息MSG的接收;它们被组合到一个单一确认ACK中,在一定的时间T后,该单一确认ACK被发送到第一模块M1。这样,消息MSG的执行EXEC的结果不被考虑。这种多播消息的概念是现有技术中已知的,适用于集成电路上的网络。
图3表示按照本发明的一种多播消息的概念。第一模块M1向至少两个第二模块M2、M3发送一个复制的请求REQ。第二模块M2、M3的单独响应RESP2、RESP3指示请求的执行EXEC的结果。它们被组合到一个单一响应PRESP中,在一定的时间T后,该单一响应PRESP被发送到第一模块M1。
图4表示一种在第一模块M1上产生很大负担的多播事务处理。该事务处理包含一个复制的请求,其导致多个请求REQ和RESP2、RESP3至RESPn的多个单独响应。如图1中所示的集成电路IC包含通过网络连接的M1、M2、M3至Mn的多个模块。第一模块M1,亦称主模块、主控模块或发起模块,经配置向第二模块M2、M3至Mn发送请求REQ,第二模块亦称从属模块、受控模块或目的模块。第二模块经配置向第一模块发送单独响应RESP2、RESP3至RESPn。
图5表示按照本发明的一种多播事务处理。该事务处理包含一个复制的请求,其导致多个请求REQ和一个单一响应SRESP。集成电路IC也是包含通过网络连接的M1、M2、M3至Mn的多个模块。通过这个网络,一个基于来自第二模块M2、M3至Mn的单独响应的单一响应SRESP能被发送到第一模块M1。该网络被配置得向第一模块M1发送一个指示对请求REQ的执行的结果的单一响应。
为此,该网络可部署一个连接到第一模块M1的网络接口。网络接口NI于是成为该网络的一个连接到第一模块M1和节点N1、N2至Nn的至少一个的部件,如图6中所示。网络接口NI能够组合来自第二模块M2、M3至Mn的单独响应RESP2、RESP3至RESPn,并向第一模块M1生成一个单一响应SRESP。由于安排网络接口NI代替第一模块M1执行这个任务,第一模块M1的负担显著降低。作为选择,根据网络的配置,网络中的一个专用节点能执行这个任务。由于以这种方式,使第一模块M1独立于第二模块M2、M3至Mn的个数,作为一个网络部件,第一模块的可再使用性得到显著改善。
一个请求包含一个基本命令,例如一个读命令或写命令;可选地,一个请求包含一个数据部分。一个响应包含一个确认,可选地,一个响应包含一个数据部分。
例如,多播事务处理中的请求REQ携带一个读命令。对应的单一响应SRESP于是携带一个确认,指示由所有第二模块M2、M3至Mn的至少一个对该读命令的执行的结果,并且单一响应SRESP也携带数据,它们被发送到第一模块M1。作为选择,请求REQ携带一个写命令和必须写到第二模块M2、M3至Mn的数据。对应的单一响应SRESP于是携带一个确认,但是不携带数据部分。
一个更复杂的命令的例子是测试-与设置-命令,也称作复合命令。测试-与设置-命令根据对第二模块执行的条件测试把数据写到第二模块M2、M3至Mn的至少一个。要执行这个复合命令,需要以下的多播事务处理—多个读取执行条件测试所需的数据的请求REQ,这些请求携带一个写命令和指示应当在从属模块上设置一个标志的信息,该标志指示M1以外的其它主模块不应对这些从属模块进行写操作;携带第二模块的数据部分并指示哪些数据部分属于哪些第二模块的对应的单一响应SRESP;—多个向那些经过条件测试的第二模块写新数据的请求REQ,这些请求携带一个读命令和指示所述标志应当被复位的信息;携带写操作的确认的对应的单一响应SRESP;携带第二模块M2、M3至Mn的数据部分以及指示哪些数据部分属于哪些第二模块的单一响应SRESP,构成一个读事务处理的一部分,能被独立地使用,或者能作为执行所述测试-与设置-命令的一个组成部分。
其它特定命令(未予描述)也可以使用这里所公开的多播事务处理的概念。;作为对一个包含一个读命令和一个写命令的返回值的例子,来自从属模块的单独响应RESP2、RESP3至RESPn可具有以下的值和它们各自的含义—’OK’命令已经被成功地完成;—’ERR_DATA’在从属模块接收到错误数据或者错误数据被写到从属模块;—’ERR_DROPPED’由于内部缓冲器溢出,数据被互连丢弃;—’ERR_PWR’因为从属模块处于省电模式,命令不能被执行;—’ERR_SLAVE’由于从属模块的内部故障,命令失效;—’ERR_ADDR’由于无效地址,命令失效。
根据来自从属模块的单独响应RESP2、RESP3至RESPn的值,单一响应SRESP也可以有上述值的其中之一。例如,如果请求REQ成功地被从属模块的一个子集执行,并且如果请求REQ被从属模块的一个不同子集执行时产生无效地址的错误,则从属模块的单独响应RESP2、RESP3至RESPn可以有两个不同的值’OK’和’ERR_ADDR’。作为选择,根据所发生的错误的类型,单独响应RESP2、RESP3至RESPn可以有其它的值。可以将其中一个值标记为代表最严重错误的值,例如’ERR_ADDR’。值’OK’被标记为代表没有错误的值。根据具体情况,单一向应有值’OK’或者一个代表单一响应的最严重错误的值。
使用像测试-与设置-命令那样的复合命令,需要单一响应SRESP的其它内容。在测试-与设置-命令中,第一多播事务处理的单一响应可携带第二模块M2、M3至Mn的数据部分并可指示哪些数据部分属于哪些第二模块。
在图7中所示的本发明的一个实施例中,在为主模块生成带有’OK’值的单一响应之前,来自从属模块的单独响应的至少之一必须具有值’OK’。
在图8中所示的本发明的一个实施例中,在为主模块生成带有’OK’值的单一响应之前,来自从属模块的所有单独响应必须具有值’OK’。
在图9中所示的本发明的另一个实施例中,可以把来自从属模块的单独响应的值组合成一个带有值’ERR_ADDR’的单一响应,以确定发生了至少一个错误,且最严重的错误是个无效地址错误。单一响应具有’ERR_ADDR’而非’ERR_PWR’,是因为由无效地址引起的错误被认为比由从属模块的省电模式所引起的错误更严重。作为选择,可以认为另一个错误比无效地址错误更严重,因此错误消息的层次可以是不同的。
在另一个实施例(未予示出)中,生成一个更大和更有描述性的单一响应,其为已经发生错误的从属模块编码。在这个实施例中,可以将所有单独响应捆绑在用于主模块的单一响应中,或者将<从属模块标识符,错误码>捆绑起来,形成单一响应。
图10表示按照本发明的网络功能的一种可能的实现。一个单一响应生成器SRESP_GEN根据来自第二模块的多个单独响应的函数F生成单个响应SRESP。在这种情况中,将队列Q1、Q2、Q3和Q4与发送单独响应的四个第二模块相关联。该单一响应生成器SRESP_GEN被包含在一个网络接口NI中。作为选择,单一响应生成器SRESP_GEN被包含在网络内的一个专用节点中。该网络可包含多于一个的单一响应生成器SRESP_GEN。
单一响应生成器SRESP_GEN有队列Q1、Q2、Q3和Q4,单独响应RESP在其中按顺序排队。这便于顺序的数据传输,这样,就有可能在排队之前进行响应的重定序。如果应当向第一模块M1发送若干个单一响应SRESP,则必须按顺序发送单一响应SRESP。如果队列中存在随后一个单一响应SRESP的单独响应RESP,则通知调度程序SCHED。调度程序SCHED一次一个地向函数F传送单独响应RESP。函数F可以是一个比较函数,例如是一个生成带有一个代表所发生的最严重的错误的值的单个响应SRESP的函数。如果所有单独响应RESP都已经被考虑,并且如果函数F的结果不能被其余的个别响应RESP改变,则函数F的结果被作为单个响应SRESP传送。
图11表示一种可供选择的实现,其中,可以将生成几个单一响应SRESP流水线化。如果一个后继的单一响应SRESP2的一些单独响应RESP2已经到达(例如Q2和Q3中),即使单一响应SRESP1因为其单独响应RESP1的全体尚未到达(只有队列Q1和Q4中的已经到达)而尚未被完全处理,也能开始处理该后继的单一响应SRESP2。这个例子示出了一个流水线深度为2的流水线化的原理,可以将它推广到可变的流水线深度N。
要注意的是本发明的保护范围并不受限于这里所描述的实施例。本发明的保护范围也不受权利要求中的标注符的限制。“包含”一词并不排除权利要求中所提及的以外的其它部分。一个元素之前的“一个”一词并不排除多个这些元素。构成本发明的部分的装置可以以专用硬件的形式实现,或者已编程的通用处理器的形式实现。本发明在于每个新特征或特征的组合。
权利要求
1.集成电路(IC),包含一个网络和多个经安排通过该网络互相通信的模块(M1、M2、M3至Mn),其中,该网络经安排在一个第一模块(M1)与至少两个第二模块(M2、M3至Mn)之间建立事务处理,该网络经安排从第一模块向第二模块发送多个请求(REQ),并且其中第二模块经安排生成指示对请求(REQ)的执行的结果的单独响应(RESP2、RESP3至RESPn),特征在于,该网络经安排根据第二模块(M2、M3至Mn)的单独响应(RESP2、RESP3至RESPn)向第一模块(M1)生成一个单一响应(SRESP)。
2.按照权利要求1的集成电路(IC),其中,网络包含一个向第一模块(M1)生成单一响应(SRESP)的网络接口(NI)。
3.按照权利要求1的集成电路(IC),其中,单一响应(SRESP)具有一个与第二模块的单独响应(RESP2、RESP3至RESPn)的一个特定函数有关的值。
4.按照权利要求3的集成电路(IC),其中,该特定函数经定义使得单一响应(SRESP)的值指示第二模块(M2、M3至Mn)的至少一个已经成功地执行了由第一模块(M1)发出的请求。
5.按照权利要求3的集成电路(IC),其中,该特定函数定义成使得单一响应(SRESP)的值指示第二模块(M2、M3至Mn)的每一个都已经成功地执行了由第一模块(M1)发出的请求。
6.按照权利要求3的集成电路(IC),其中,该特定函数定义成使得如果没有发生过错误则单一响应(SRESP)的值指示一个成功,并且如果发生过至少一个错误,则单一响应的值指示一个故障,其中单一响应的值代表最严重的错误。
7.按照权利要求3的集成电路(IC),其中,该特定函数定义成使得单一响应(SRESP)的值指示在该请求(REQ)的执行期间发生了哪些类型的错误。
8.按照权利要求1的集成电路(IC),其中,单独响应(RESP2、RESP3至RESPn)携带由第二模块(M2、M3至Mn)发送的数据部分,单一响应(SRESP)包含该数据部分并指示哪些数据部分源自哪些第二模块。
9.在包含一个网络和多个模块(M1、M2、M3至Mn)的集成电路(IC)中建立事务处理的方法,模块之间的事务处理是通过网络建立的,其中,网络从第一模块(M1)向第二模块(M2、M3至Mn)发送多个请求(REQ),并且其中第二模块生成指示对请求(REQ)的执行的结果的单独响应(RESP2、RESP3至RESPn),特征在于,网络根据第二模块(M2、M3至Mn)的单独响应(RESP2、RESP3至RESPn)向第一模块(M1)生成一个单一响应(SRESP)。
全文摘要
一种集成电路(IC)包含一个网络和多个通过该网络互相通信的模块(M
文档编号H04L12/56GK1703881SQ200380101041
公开日2005年11月30日 申请日期2003年10月7日 优先权日2002年10月8日
发明者A·拉杜勒斯库 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1