CN102591829B - 互连装置和用于其的控制方法 - Google Patents
互连装置和用于其的控制方法 Download PDFInfo
- Publication number
- CN102591829B CN102591829B CN201110400522.7A CN201110400522A CN102591829B CN 102591829 B CN102591829 B CN 102591829B CN 201110400522 A CN201110400522 A CN 201110400522A CN 102591829 B CN102591829 B CN 102591829B
- Authority
- CN
- China
- Prior art keywords
- information
- entry
- bit string
- request
- response
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000004044 response Effects 0.000 claims abstract description 186
- 230000000875 corresponding Effects 0.000 claims description 93
- 230000005540 biological transmission Effects 0.000 claims description 48
- 238000002372 labelling Methods 0.000 claims description 43
- 238000000034 method Methods 0.000 claims description 37
- 230000001276 controlling effect Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 46
- 230000011218 segmentation Effects 0.000 description 15
- 238000006243 chemical reaction Methods 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 3
- 101700042459 CFDP1 Proteins 0.000 description 2
- 125000004429 atoms Chemical group 0.000 description 2
- 230000003247 decreasing Effects 0.000 description 2
- 238000005194 fractionation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000001629 suppression Effects 0.000 description 2
- 230000003139 buffering Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
Abstract
一种互连装置包括:缓冲器;请求处理部分;响应处理部分;以及互连部分。
Description
技术领域
本公开涉及一种互连装置,更特别地涉及传送准许拆分事务(split transaction)的数据的互连装置,以及用于控制该互连装置的方法。
背景技术
通常,为了从某一模块向不同的模块传送数据,频繁使用通过总线相互连接模块的技术。引导数据传送的模块之一称为主机,而被动操作的模块称为从机。担当主机的模块典型地是处理器。担当从机的模块典型地是存储器。
在包括总线宽度或字节顺序(endian)***不同的多个总线的***中,提供根据总线宽度等的差异进行数据转换的总线桥。关联的总线连接到总线桥以允许总线之间的数据传送。总线和总线桥也称为互连。
在如刚才所述的这样的总线***中,通过准许拆分事务可以提高传送效率。拆分事务相互独立地控制来自用于数据传送的一系列动作或事务中、对数据传送和实际数据传送的请求。作为准许拆分事务的总线标准,AXI(先进可扩展接口)总线等可利用。
在准许拆分事务的情况下,诸如总线桥的互连在其中传送仍然未决解或未完成时段内,保持涉及主机和从机之间的传送的事务(transaction)信息。这里,未解决表示请求的数据传送仍然不完整的状态。而且,事务信息是控制响应的传送必需的信息。例如,事务信息包括进行分段(burst)传送时的分段长度或分段数量。
描述拆分事务中保持拆分信息对互连的必需性。假设其中两个主机M1与M2和两个从机S1与S2连接到互连的总线***。假设在该总线***中,首先主机M1发出用于请求到从机S1的数据传送的请求A,然后主机M2发出用于请求到从机S2的数据传送的请求B。还假设,请求A请求分段传送,而请求B不请求分段传送。虽然从机S1和S2响应于对应的请求单独返回响应,但是返回这样的响应的顺序可能不同于发出请求A和B的顺序。在这样的情况下,为了决定通过分段传送要传送哪一个响应,互连在其中传送仍然 未解决的时段内保持对应于请求的事务信息。互连通过参考其中保持的事务信息,可以适当地控制数据传送。
作为用于保持AXI总线中事务信息的技术,已经提出一种其中对每个事务提供FIFO(先入先出)***的总线***,并且例如公开在日本专利公开No.2008-41099中。这样FIFO***的数量大于可准许的未解决传送的数量的最大值。互连将对应于每个请求的传送信息存储到对应于涉及请求的事务的FIFO***。利用所述配置,当互连从任何FIFO***读出事务信息时,没有搜索对应事务的必要性。因此,可以以高速进行事务信息的读出处理。
发明内容
然而,在上述技术中,难以抑制由总线***准许的事务数量的最大值的增大引起的FIFO大小的增大。在为每个事务提供FIFO***的情况下,不可避免地提供等于事务数量的最大值的多个FIFO***。因此,FIFO***的总存储容量与总线***准许的事务数量的最大值的增长成比例地增长。
因此,希望提供一种互连装置和一种用于该互连装置的控制方法,通过其可以抑制由总线***准许的事务数量的最大值的增长导致的存储容量的增长。
根据本公开的实施例,提供一种互连装置,包括:缓冲器,适于保持多个管理表使得单独对应于时隙,多个管理表的每个与用于控制响应的传送处理的事务信息有关联关系地保持来自位串内的部分位串,部分位串通过从用于事务处理的识别的位串移除时间段指定位串获得,该位串包括作为时间段指定位串的用于指定多个时隙之一的位串,且用于识别包括请求的传送处理和对应于该请求的响应的传送处理的事务处理;请求处理部分,适于当基于涉及请求的时间段指定位串指定的时隙是分配给所述互连装置的时隙时,在对应于该时隙的管理表中保持相互有关联关系的部分位串和事务信息;响应处理部分,适于当自从机发回响应时,从基于涉及响应的时间段指定位串指定的管理表,读出对应于部分位串的事务信息;以及互连部分,适于基于事务信息当从主机发出请求时,对从机传送请求,并且当自从机发回响应时,对主机传送响应。
根据本公开的另一实施例,还提供一种用于互连装置的控制方法,包括:当每个包括作为时间段指定位串的用于指定时隙的位串的、多个时隙之一是 分配给互连装置的时隙时,所述时隙基于涉及请求的时间段指定位串指定,与用于控制响应的传送处理的事务信息有关联关系地、将部分位串保持到对应于时隙的多个管理表之一,所述部分位串通过从用于事务处理的识别的位串移除时间段指定位串获得,所述事务处理包括请求的传送处理和对应于该请求的响应的传送处理;以及当自从机发回响应时,从基于涉及响应的时间段指定位串指定的管理表,读出对应于部分位串的事务信息。
根据本公开的另一实施例,还提供一种用于互连装置的控制方法,包括:当每个包括用于将时隙指定为时间段指定位串的位串的、多个时隙之一是分配给互连装置的时隙时,所述时隙基于涉及请求的时间段指定位串指定,将部分位串保持到对应于时隙的多个管理表之一,所述部分位串通过与用于控制响应的传送处理的事务信息有关联关系地、从用于事务处理的识别的位串移除时间段指定位串获得,所述事务处理包括请求的传送处理和对应于该请求的响应的传送处理;以及当自从机发回响应时,从基于涉及响应的时间段指定位串指定的管理表,读出对应于部分位串的事务信息。
在互连装置和用于互连装置的控制方法中,当在时隙中发出请求时,事务信息保持到对应于该时隙的管理表。
可以配置互连装置,使得缓冲器还还对每个管理表保持用于指定保持顺序的保持顺序信息,保持顺序信息是部分位串和事务信息保持到管理表中的顺序,请求处理部分基于保持顺序信息控制管理表,以保持与部分位串有关联关系的事务信息,当发回响应时,响应处理部分基于保持顺序信息从管理表读出对应于部分位串的事务信息。在互连装置中,根据保持顺序读出事务信息。
在该示例中,每个管理表可以包括多个条目,每个条目是用于保持部分位串和事务信息的区域,保持顺序信息包括比管理表中提供的条目的数量小1的指针的数量,在这样的状态下使得指针指示互相不同的条目,缓冲器还包括剩余条目获取部分,适于对管理表的每个获取没有包括在指针指示的条目中的条目。在互连装置中,保持顺序信息中包括的指针的数量比管理表中提供的条目的数量小1。
每个管理表可以包括多于一个的管理信息保持条目,其作为每个用于保持与部分位串有关联关系的事务信息作为管理信息的区域,以及事务信息保持条目,其作为用于保持事务信息的区域,当任一管理信息保持条目为空时, 请求处理部分将相互有关联关系的部分位串和事务信息保持到管理信息保持条目,而当任一管理信息保持条目为非空时,请求处理部分将事务信息保持到事务信息保持条目,响应处理部分包括多个一致决定部分,适于决定放置在管理表中的部分位串之一和涉及请求的部分位串是否相互一致,以及事务信息获取部分,适于当由一致决定部分之一决定一致时,从管理信息保持条目关于决定的一致读出对应于部分位串的事务信息,而当由一致决定部分的全部决定不一致时,从事务信息保持条目读出事务信息。在互连装置中,当管理信息保持条目为非空时,仅保持事务信息。
每个管理表可以在涉及与事务信息有关联关系的部分位串的事务处理中,保持部分位串和代表关于请求的发出顺序的发出顺序信息,请求处理部分将相互有关联关系的涉及请求的部分位串和发出顺序信息保持到管理表中,当发回响应时,响应处理部分根据来自管理表的发出顺序信息,读出对应于涉及响应的部分位串的事务信息。在互连装置中,根据请求的发出顺序读出事务信息。
在该示例中,发出顺序信息可以包括指示发出顺序的管理编号。在互连装置中,按照管理编号的顺序读出事务信息。
在该示例中,发出顺序信息还可以包括代表管理信息是发出顺序中的顶端的顶端标记,以及代表管理信息是发出顺序中的末端的末端标记。在互连装置中,基于顶端标记和末端标记读出事务信息。
或者,发出顺序信息还可包括指示关于请求的发出顺序中下一事务信息的存储位置的下一位置信息。在互连装置中,基于下一位置信息读出事务信息。
在该示例中,发出顺序信息可以还包括代表管理信息是发出顺序中的顶端的顶端标记。在互连装置中,基于顶端标记读出事务信息。
总之,根据本公开实施例的互连装置和用于互连装置的控制方法,可以实现可以抑制存储容量的增大的优点,存储容量的增大由总线***准许的事务的数量的最大值的增大引起。
结合附图,本公开的上述和其它特征和优点将从以下说明和所附权利要求变得显而易见,图中相同的部分或元件以相同的参考标记指示。
附图说明
图1是示出根据本公开第一实施例的总线***的一般配置的示例的框图;
图2是图示配置AXI协议中读地址信道的信号的视图;
图3是图示配置AXI协议中读数据信道的信号的视图;
图4是图示配置AXI协议中写地址信道的信号的视图;
图5是图示配置AXI协议中写数据信道的信号的视图;
图6是图示配置AXI协议中写响应信道的信号的视图;
图7是示出图1所示总线桥的配置的示例的框图;
图8是图示图1的总线***中使用的管理信息的示例的概略视图;
图9是示出图7的总线桥的互连部分的配置的示例的框图;
图10是示出图7的总线桥的缓冲器的配置的示例的框图;
图11是示出图10的缓冲器的E寄存器更新部分和空标记保持部分的配置的示例的框图;
图12是示出图11所示E寄存器更新电路和E寄存器的配置的示例的框图;
图13A到图13C是图示图12所示E寄存器更新电路的选择器的动作的示例的视图;
图14是示出图10所示指针保持部分和管理信息保持部分的配置的示例的框图;
图15是示出图14所示指针保持部分的指针表的配置的示例的视图;
图16是示出图14所示管理信息保持部分的管理表的配置的示例的视图;
图17是示出图7的总线桥的请求处理部分的配置的示例的框图;
图18是示出图17的请求处理部分的写目的地确定部分的配置的示例的框图;
图19是示出图18的写目的地确定部分的表空白决定部分的配置的示例的框图;
图20是图示图18的写目的地确定部分的写目的地条目选择部分的动作的示例的视图;
图21是示出图18的写目的地确定部分的E寄存器更新指令部分的配置的示例的框图;
图22是示出图7的总线桥的响应处理部分的配置的示例的框图;
图23是示出图22的响应处理部分的事务信息获取部分的配置的示例的框图;
图24是示出图23的事务信息获取部分的读源条目选择部分的配置的示例的框图;
图25是示出图22的响应处理部分的E寄存器更新指令部分的配置的示例的框图;
图26是图示图7的总线桥的动作的流程图;
图27是图示图26图示的请求处理的示例的流程图;
图28是图示图26图示的响应处理的示例的流程图;
图29是图示图1的总线***中的请求的传送处理的示例的框图;
图30是图示基于请求保持在图10的缓冲器中的信息的示例的视图;
图31是图示图1的总线***中的响应的传送处理的示例的框图;
图32是图示基于响应保持在图10的缓冲器中的信息的示例的视图;
图33是示出本公开第二实施例中的缓冲器的配置的示例的框图;
图34是示出本公开第二实施例中的指针表的配置的示例的视图;
图35是示出本公开第二实施例中的剩余条目获取部分的配置的示例的框图;
图36是示出本公开第三实施例中的管理表的配置的示例的视图;
图37是图示本公开第三实施例中的管理信息登记选择部分的动作的视图;
图38是示出本公开第三实施例中的读条目选择部分的配置的示例的框图;
图39是图示本公开第四实施例中使用的管理信息的示例的概略视图;
图40是示出本公开第四实施例中的缓冲器的配置的示例的框图;
图41是示出本公开第四实施例中的请求处理部分的配置的示例的框图;
图42是示出本公开第四实施例中的响应处理部分的配置的示例的框图;
图43是示出本公开第四实施例中的读源条目选择部分的配置的示例的框图;
图44是图示本公开第五实施例中的管理信息的示例的概略视图;
图45是示出本公开第五实施例中的读源条目选择部分的配置的示例的框图。
具体实施方式
以下,详细描述在此公开的本公开的优选实施例。按以下顺序给出描述。
1.第一实施例(其中时隙(time slot)分配给管理表的示例)
2.第二实施例(其中减小指针表的存储容量的示例)
3.第三实施例(其中减小管理表的存储容量的示例)
4.第四实施例(其中顺序号保持在管理表中的示例)
5.第五实施例(其中下一条目保持在管理表中的示例)
<1.第一实施例>
总线***的配置
图1示出根据本公开第一实施例的总线***的一般配置的示例。参考图1,所示总线***包括M+1个主机110(即,主机#0到#M)、AXI总线120和130、N+1个从机140(即,从机#0到#N)、以及总线桥200。M和N是大于0的整数。主机110连接到总线AXI总线120,且从机140连接到AXI总线130。AXI总线120和130连接到总线桥200。
主机110是领导数据传送的连接设备,同时从机140是被动动作的连接设备。主机110可以是例如处理器。从机140可以是例如存储器。
AXI总线120和130根据AXI协议通过其传送数据。总线桥200根据AXI协议传送数据,并且在数据传送中按照场合需要进行数据转换。例如,如果AXI总线120和130在总线宽度或字节顺序***上互不相同,则总线桥200根据传送目的地的总线的总线宽度等进行数据转换。
这里,在AXI协议中,为用于读动作的总线准备读地址信道和读数据信道。如果通过读地址信道从主机110到从机140传送包括读地址的请求,则响应于该请求通过读数据信道从从机140到主机110传送读数据。此外,在AXI协议中,为用于写动作的总线准备写地址信道、写数据信道和写响应信道。如果通过写地址信道和写数据信道从主机110到从机140传送请求,则响应于该请求由从机140进行写动作。随后,通过写响应信道从从机140到主机110传送写动作的结果。
通过读地址信道和写地址信道从主机传送到从机的信号以下称为请求。此外,通过读数据信道和写响应信道从从机传送到主机的信号以下称为响应。
在AXI协议中,请求的传送处理和对该请求的响应的传送处理形成一个事务的处理。相同的标识符应用于一个事务中包括的请求和响应是AXI协议中的基本规则。另一方面,如果相同的标识符应用于不同的事务,则在事务之间作出顺序保证。
要注意,以上描述的实施例的总线桥200是本公开的互连装置的示例。
AXI协议中的信道配置
图2图示配置AXI协议中读地址信道的信号。读地址信道是用于从主机110到从机140发送读地址的信道。该读地址信道包括读地址标识符、读地址、分段长度、分段大小、分段类型、锁定类型、高速缓冲类型、保护类型、读地址有效和读地址就绪信号。从提到的信号中,只有读地址就绪是来自从机140的信号,而其它信号是来自主机110的信号。
读地址标识符ARID[3:0]是用于识别信号的读地址组的4位标签。在AXI协议中,当主机发出事务时,如果其请求从机维持顺序关系,则其应用相同的标识符到该事务。换言之,不存在维持不同事务之间的顺序的保证,不同事务具有对其应用的不同标识符。
读地址ARADDR[31:0]是读对象的32位地址,并且是代表分段传送中初始地址的信号。
分段长度ARLEN[3:0]是指示分段传输中数据的数量的4位信号。通过分段长度ARLEN[3:0],以4位编码的形式指示从“1”到“16”的数据数量之一。
分段大小ARSIZE[2:0]是指示每个分段传送中的传送大小的3位信号。以3位编码的形式指示“20”、“21”、“22”、“23”、“24”、“25”、“26”和“27”的传送大小之一。
分段类型ARBURST[1:0]是指示分段传送中地址计算的类型的2位信号。特别地,分段类型ARBURST[1:0]可以指定FIFO类型、接连存取和高速缓存线之一。
锁定类型ARLOCK[1:0]是指示用于原子存取的信息的2位信号。特别地,锁定类型ARLOCK[1:0]可以指定正常存取、独占存取和锁定存取之一。
高速缓存类型ARCACHE[3:0]是指示高速缓存存储器控制必需的信息的4位信号。特别地,高速缓存类型ARCACHE[3:0]指示关于高速缓存类型是否是可高速缓存的、直写、反写等的控制信息。
保护类型ARPROT[2:0]是指示保护控制必需的信息的3位信号。特别地,保护类型ARPROT[2:0]可以指定特许存取、不安全存取和指令存取的保护等级中的任一。
读地址有效ARVALID是指示地址和控制信号的有效性的有效信号。读地址就绪ARREADY是指示从机140是否处于可以接收地址和控制信号的状态的就绪信号。如上所述,当肯定读地址有效ARVALID和读地址就绪ARREADY二者时,进行地址和控制信号的传送。
图3图示配置AXI协议中读数据信道的信号。读数据信道是用于从从机140到主机110传送读数据的信道。参考图3,读数据信道包括领导标识符标签、读数据、读响应、读末尾、读有效和读就绪的信号。从提到的信号中,只有读就绪信号是来自主机110的信号,而其它信号是来自从机140的信号。
读标识符标签RID[3:0]是用于识别信号的读数据组的4位标签。读标识符标签RID[3:0]由从机产生,并且必须在相同的事务中与读地址标识符ARID[3:0]一致。
读数据RDATA[31:0]是通过读事务来自从机140的读数据。虽然假设32位宽的读数据总线,但是读数据RDATA的位宽响应于总线宽度变化。读数据总线具有8、16、32、64、126、256、512和1024的位宽之一。
读响应RRESO[1:0]是指示通过读事务数据传送的状态的2位信号。读响应包括例如指示读存取的成功或失败的信号。
读末尾RLAST是指示所属数据是读事务中最后的数据传送的信号。
读有效RVALID是指示请求的读数据的有效性的有效信号。读就绪RREADY是指示主机110是否处于可以接收读数据的状态的就绪信号。如上所述,当肯定读有效信号RVALID和读就绪RREADY二者时,进行读数据的传送。
图4图示配置AXI协议中写地址信道的信号。写地址信道是用于从主机110到从机140发送写地址的信道。写地址信道由写地址标识符、写地址、分段长度、分段大小、分段类型、锁定类型、高速缓存类型、保护类型、写地址有效和写地址就绪的信号构成。从提到信号中,只有写地址就绪是来自从机140的信号,而其它信号是来自主机110的信号。
写地址标识符AWID[3:0]是用于识别信号的写地址组的4位标签。写地址AWADDR[31:0]是写对象的32位地址,并且是代表分段传送中的初始地址 的信号。
分段长度AWLEN[3:0]是指示分段传送中的数据数量的4位信号。分段大小AWSIZE[2:0]是指示每个分段传送中传送大小的3位信号。分段类型AWBURST[1:0]是指示分段传送中地址计算的类型的2位信号。锁定类型AWLOCK[1:0]是指示用于原子存取的信息的2位信号。高速缓存类型AWCACHE[3:0]是指示高速缓存存储器控制必需的信息的4位信号。保护类型AWPROT[2:0]是指示保护控制必需的信息的3位信号。提及的信号基本上类似于在读地址信道的情况下的信号。
写地址有效AWVALID是指示地址和控制信号的有效性的有效信号。写地址就绪AWREADY是指示从机140是否处于可以接收地址和控制信号的状态的就绪信号。如上所述,当肯定写地址有效AWVALID和写地址就绪AWREADY二者时,进行地址和控制信号的传送。
图5图示配置AXI协议中写数据信道的信号。写数据信道是用于从主机110到从机140传送写数据的信道。参考图5,写数据信道包括写标识符标签、写数据、写选通、写末尾、写有效和写就绪的信号。从提到的信号中,只有写就绪信号是来自从机140的信号,而其它信号是来自主机110的信号。
写标识符标签WID[3:0]是用于识别信号的写数据组的4位标签。该写标识符标签WID[3:0]必须在相同事务中与写地址标识符AWID[3:0]一致。
写数据WDATA[31:0]是通过写事务对从机140的写数据。虽然这里假设32位宽度的写数据总线,但是写数据WDATA的位宽响应于读数据总线宽度变化。写数据总线具有8、16、32、64、126、256、512和1024的位宽之一。
写选通WSTRB[3:0]是指示从机140的存储器中要更新的字节位置的4位信号。写选通WSTRB[3:0]的1位分配给写数据总线的每8位。换言之,写选通WSTRB[i]对应于写数据WDATA[(8×i)+7:(8×i)]。
写末尾WLAST是指示所属数据是写事务中最后的数据传送的信号。
写有效WVALID是指示写数据的有效性的信号。写就绪WREADY是指示从机140是否处于可以接收写数据的状态的就绪信号。如上所述,当肯定写有效WVALID和写就绪WREADY二者时,进行写数据传送。
图6图示配置AXI协议中写响应信道的信号。写响应信道是用于从从机140到主机110发送写事务的结果的信道。参考图6,写响应地址信道包括响应标识符、写响应、写响应有效和响应就绪的信号。从提及的信号中,只有 响应就绪信号是来自主机110的信号,而其它信号是来自从机140的信号。
响应标识符BID[3:0]是用于识别写响应的4位标签。响应标识符BID[3:0]必须在相同事务中与写地址标识符AWID[3:0]一致。
写响应BRESP[1:0]是指示通过写事务数据传送的状态的2位信号。例如,写响应包括代表写存取中成功或失败的信号。
写响应有效BVALID是指示写响应的有效性的有效信号。响应就绪BREADY是指示主机110是否处于可以接收写响应的状态的就绪信号。如上所述,当肯定写响应有效BVALID和响应就绪BREADY二者时,进行写响应的传输。
总线桥的配置
图7示出本公开第一实施例中总线桥200的配置的示例。参考图7,总线桥200包括互连部分300、缓冲器400、请求处理部分500和响应处理部分600。
互连部分300在主机110和从机140之间传送请求和响应。特别地,如果通过信号线802从AXI总线120接收请求,则互连部分300获取涉及请求的有效信号,并且通过信号线816获取对应的就绪信号。有效信号和就绪信号以下每个称为握手信号。互连部分300通过信号线804输出握手信号到请求处理部分500,并且通过信号线805输出请求到请求处理部分500。随后,互连部分300通过信号线804从请求处理部分500接收就绪信号,并且通过信号线801输出就绪信号到AXI总线120。如果肯定有效信号和就绪信号,则互连部分300通过信号线817传送请求到AXI总线130。
如果通过信号线818从AXI总线130接收响应,则互连部分300获取涉及响应的有效信号,并且通过信号线801获取对应的就绪信号。互连部分300通过信号线810向响应处理部分600输出握手信号,并且通过信号线811向响应处理部分600输出响应。随后,互连部分300通过信号线812从响应处理部分600接收对应于响应的事务信息。这里,事务信息是用于控制响应的传送处理的信息。以下参考图8描述事务信息中包括的信息的细节。如果肯定有效信号和就绪信号,则互连部分300基于接收的事务信息通过信号线803向AXI总线120传送响应。
缓冲器400保持涉及为解决传送的事务信息。特别地,缓冲器400保持包括事务信息和空白标记的管理信息、以及用于指定要读出的管理信息的指 针。管理信息是从指示事务标识符ID的位串中关联高顺序位串(以下称为“uID”)的信息。事务标识符ID是用于识别事务的信息。同时,指针是代表用于保持管理信息的区域的变量。空白标志是指示有效管理信息是否保持在由指针指示的区域中的1位信息。此外,总线***其中具有多个时隙组,并且对每个时隙划分用于保持空白标记、指针和管理信息的区域。以下描述时隙的细节。
如果通过信号线807从请求处理部分500接收管理信息,则缓冲器400保持管理信息。此外,当通过信号线808从请求处理部分500接收写使能信号时,或者当通过信号线815从请求处理部分500接收读使能信号时,缓冲器400更新空白标记。写使能信号是用于更新空白标记之一以便被无效的指令的信号。读使能信号是用于更新空白标记之一以便有效的指令的信号。
请求处理部分500根据请求将管理信息存储到缓冲器400中。如果从互连部分300接收请求,则请求处理部分500从指示涉及请求的事务标识符ID的位串的部分,指定多个时隙之一。这里,用于传送每个请求的多个时隙之一借助计数器或在固定时段操作的类似物,周期地分配给互连部分300。随后,基于请求指定时隙之一。例如,在四个时隙之一分配给总线桥200的情况下,请求处理部分500通过事务标识符ID的低2位指定四个时隙之一。随后,请求处理部分500决定指定的时隙是否是分配给总线桥200的时隙。如果指定的时隙不是分配给总线桥200的时隙,则请求处理部分500否定就绪信号,使得不向互连部分300传送请求。如果指定的时隙是分配给总线桥200的时隙,则请求处理部分500通过信号线809获取由缓冲器400保持的空白标记的值,并且决定管理信息是否可以保持到缓冲器400中。
如果管理信息可以保持到缓冲器400中,则请求处理部分500肯定就绪信号,并且向互连部分300输出就绪信号。随后,请求处理部分500通过信号线806从缓冲器400获取指针。请求处理部分500基于请求产生管理信息,并且通过信号线807将管理信息存储到由指针指示的缓冲器400的区域,随后通过信号线808向缓冲器400输出写使能信号。
如果管理信息不能保持到缓冲器400中,则请求处理部分500否定就绪信号,并且向互连部分300输出否定的就绪信号。
响应处理部分600从缓冲器400读出对应于响应的事务信息。如果从互连部分300接收响应,则响应处理部分600通过信号线813从缓冲器400获取指针。响应处理部分600通过信号线814从由指针指示的区域读出对应于响应的事务信息。此外,响应处理部分600通过信号线815输出读使能信号到缓冲器400。随后,响应处理部分600基于空白标记的更新来更新指针。以下描述指针的更新内容的细节。
图8图示本公开第一实施例中各种管理信息的示例。管理信息包括uID和事务信息。
uID是代表从其移除用于指定时隙的位串(即,时间段(slot)指定位串)的事务标识符ID的位串。从事务标识符ID的位数和时间段指定位串的位数确定uID的位数。基于总线***准许的事务数量的最大值确定事务标识符ID的位数。例如,如果最大准许256个事务,则事务标识符ID的位数至少是8。例如,如果设置四个时隙,则时间段指定位串的位数至少是2。如果事务标识符ID由8位形成,且其低2位用作时间段指定位串,则uID是事务标识符ID的高6位。
事务信息是用于控制响应的传送处理的信息。事务信息包括例如包装执行标记p、地址低位addr、分段长度len、分段大小size、分段类型btyp和分段计数bcnt。
包装执行标记p是代表是否应当基于总线的规格包装分段对象的数据的1位信息。例如,当要从具有32位总线宽度的总线传送数据到具有另一64位总线宽度的另一总线时,执行包装。地址低位addr是用于指定存取目的地的低地址的4位信息。分段长度len是指示分段传送中数据数量的4位信息。分段大小size是指示每个分段传送中传送大小的3位信息。分段类型btyp是指示分段传送中地址计算的类型的2位信息。分段计数bcnt是指示分段传送的次数的数量的4位信息。
要注意,上述实施例中的uID是本公开中部分位串的示例。
图9示出本公开第一实施例中互连部分300的配置的示例。参考图9,互连部分300包括转换信息生成器310和330、地址信道总线矩阵320、以及响应信道总线矩阵340。
转换信息生成器310基于AXI总线130的规格,按照情况要求转换从AXI总线120接收的请求。如果从AXI总线120接收请求,则转换信息生成器310获取涉及请求的握手信号,并且输出握手信号和请求到请求处理部分500。随后,转换信息生成器310从请求处理部分500接收就绪信号,并且输出就绪信号到AXI总线120。如果肯定涉及请求的有效信号和就绪信号,则转换信息生成器310按照场合要求转换从AXI总线120接收的请求,并且输出转换后的请求到地址信道总线矩阵320。
地址信道总线矩阵320将从转换信息生成器310接收的请求,通过AXI总线130传送到传输目的地的从机。
转换信息生成器330基于AXI总线120的规格和事务信息,按照场合要求转换从AXI总线130接收的响应。如果从AXI总线130接收响应,则转换信息生成器330获取涉及响应的握手信号,并且输出握手信号和响应到响应处理部分600。随后,转换信息生成器330从响应处理部分600接收对应于响应的事务信息。如果肯定涉及响应的有效信号和就绪信号,则转换信息生成器330按照场合要求转换响应,并且输出转换后的响应到响应信道总线矩阵340。例如,转换信息生成器330响应于由事务信息等指示的分段传送的***、传送目的地的总线的总线宽度等,耦合或解耦传送数据。
响应信道总线矩阵340通过AXI总线120,将从转换信息生成器330接收的响应传送到请求的传输源的主机。
图10示出本公开第一实施例中缓冲器400的配置的示例。参考图10,缓冲器400包括E寄存器更新部分410、空白标记保持部分420、指针保持部分430和管理信息保持部分440。E寄存器更新部分410包括E寄存器更新电路#0到#3。空白标记保持部分420包括E寄存器#0到#3。指针保持部分430包括指针表#0到#3。管理信息保持部分440包括管理表#0到#3。互不相同的时隙分配给E寄存器更新电路、E寄存器、指针表和管理表。例如,设置四个时隙#i(i是从0到3的整数)。此外,提供四组E寄存器更新电路#i、E寄存器#i、指针表#i和管理表#i,并且时隙#i分配给具有相同值i的组。
管理表#i保持多条管理信息。管理表#i包括多个用于保持管理信息的区域。管理表的每个区域以下称为条目。管理表#i中提供的条目的总数等于或大于总线***准许的未解决事务的最大数。例如,在总线***准许的未解决的事务的最大数是16的情况下,至少在四个管理表#i的每个中提供四个条目。
指针表#i保持多个指针。每个指针表#i包括数量等于对应的管理表#i中提供的条目的数量(例如,等于4)的指针。每个指针是指示管理信息要保持到的对应管理表#i的条目的变量。在指针设置来自另一个的不同值。
每个E寄存器#i保持多个空白标记的值。为对应的指针表#i中提供的每
个指针提供空白标记。每个空白标记是指示有效管理信息是否放置在对应的指针指示的条目中的1位信息。这里,管理信息是有效的表示管理信息中的事务信息作为用于读出的对象放置在条目中的状态。管理信息是无效的表示管理信息中的事务信息不是读出的对象。更特别地,管理信息在放置管理信息之后的一段时间内是有效的,直到解决管理信息中对应响应的传送。其中没有放置有效管理信息的任何条目被认为是空白。例如,如果对应指针指示的条目为空白,则“1”置为空白标记的值,但是在任何其它情况下,“0”置为空白标记的值。
每个E寄存器更新电路#i基于写使能信号和读使能信号,更新对应的E寄存器#i中保持的空白标记。以下参考图12描述E寄存器更新电路#i的配置的细节。
要注意,上述实施例中的指针是本公开中保持顺序信息的示例。
图11示出本公开第一实施例中E寄存器更新部分410和空白标记保持部分420的配置的示例。来自请求处理部分500的写使能信号WE[0]到WE[3]通过信号线808-1到808-4分别输入到E寄存器更新电路#0到#3。写使能信号WE[0]到WE[3]是指令E寄存器更新电路#0到#3分别更新E寄存器#0到#3的1位信号。同时,来自响应处理部分600的读使能信号RE[0]到RE[3]通过信号线815-1到815-4分别输入到E寄存器更新电路#0到#3。读使能信号RE[0]到RE[3]是指令E寄存器更新电路#0到#3分别更新E寄存器#0到#3的1位信号。例如,对写使能信号WE[i]和读使能信号RE[i],当要发出更新指令时,置“1”,而在任何其它情况下置“0”。在该示例中,不同时对写使能信号WE[0]到WE[3]的两个或多个置“1”,不同时对读使能信号RE[0]到RE[3]的两个或多个置“1”。
E寄存器#0到#3通过信号线809-1到信号线809-4分别输出空白标记到请求处理部分500和响应处理部分600。
图12示出本公开第一实施例中E寄存器更新电路#0和E寄存器#0的配置的示例。参考图12,E寄存器更新电路#0包括无效值输出部分411、选择器412到415、有效值输出部分416和或门417。E寄存器#0包括触发器421到424。
无效值输出部分411输出用于无效空白标记的值(诸如,例如“0”)到选择器412。
选择器412到415响应于写使能信号WE[0]的值选择输入值之一。选择器412到415的每个具有两个输入端和一个输出端。以下参考图13A到13C描述选择器的动作的细节。
有效值输出部分416输出用于有效空白标记的值(诸如,例如“1”)到选择器415。
或门417输出对其输入值的逻辑或值。或门417具有两个输入端。来自请求处理部分500的写使能信号WE[0]输入到或门417的输入端之一,来自响应处理部分600的读使能信号RE[0]输入到或门417的另一输入端。或门417输出输入值的逻辑或值到触发器412到414的使能EN端。
每个触发器421到424保持一个空白标记的值,即1位的值。当对每个触发器的使能EN端的输入值是“1”时,触发器用对输入端的输入值更新当前值。另一方面,如果对使能EN端的输入值是“0”,则触发器保持当前值,不管对输入端的输入值。每个触发器输出其当前值到请求处理部分500和响应处理部分600。此外,触发器421输出其当前值到选择器413。触发器422输出其当前值到选择器412和选择器414。触发器423输出其当前值到选择器413和选择器415。触发器424输出其当前值到选择器414。
图13A图示本公开第一实施例中选择器412的动作的示例。无效值输出部分411的输出输入到选择器412的输入端之一。在后级的触发器422的输出输入到选择器412的另一输入端。当写使能信号WE[0]的值是“1”时,选择器412选择无效值输出部分411的输出。如果写使能信号WE[0]的值是“0”,则选择器412选择在后级的触发器422的输出。选择器412输出选择的值到触发器421。
图13B图示本公开第一实施例中选择器413和选择器414的动作的示例。在前级的触发器421的输出输入到选择器413的输入端之一。在后级的触发器423的输出输入到选择器413的另一输入端。同时,在前级的触发器422的输出输入到选择器414的输入端之一。在后级的触发器424的输出输入到选择器414的另一输入端。当写使能信号WE[0]的值是“1”时,选择器413和选择器414的每个选择在前级的触发器的输出。如果写使能信号WE[0]的值是“0”,则选择器412选择在后级的触发器的输出。选择器413和选择器414分别输出单独选择的值到触发器422和423。
图13C图示本公开第一实施例中选择器415的动作的示例。在前级的触 发器423的输出输入到选择器415的输入端之一。在后级的有效值输出部分416的输出输入到选择器415的另一输入端。当写使能信号WE[0]的值是“1”时,选择器415选择在前级的触发器的输出。如果写使能信号WE[0]的值是“0”,则选择器415选择有效值输出部分416的输出。选择器415输出选择的值到触发器424。
以该方式,每次输入值为“1”的写使能信号WE[0]时,E寄存器更新电路#0从有效空白标记(“1”)中,更新最低号码的触发器中保持的空白标记为无效(“0”)。此外,每次输入值为“1”的读使能信号RE[0]时,E寄存器更新电路#0从无效空白标记(“0”)中,更新最高数量的触发器中保持的空白标记为有效(“1”)。
E寄存器更新电路#1到#3和E寄存器#1到#3的配置分别类似于E寄存器更新电路#0和E寄存器#0的配置。
图14示出本公开第一实施例中指针保持部分430和管理信息保持部分440的配置的示例。参考图14,通过信号线806-1到806-4由请求处理部分500分别读出指针表#0到#3中保持的指针。此外,通过信号线813-1到813-4由响应处理部分600分别存取指针表#0到#3中保持的指针。
管理表#0到#3分别通过信号线807-1到807-4从请求处理部分500接收管理信息。此外,管理表#0到#3中保持的管理信息分别通过信号线814-1到814-4由响应处理部分600读出。
图15示出本公开第一实施例中指针表#0的配置的示例。参考图15,指针表#0保持四个指针PTR#00、PTR#01、PTR#02和PTR#03。指针PTR#00是指针的列表顺序的顶端,而指针PTR#03是指针的列表顺序的末端。管理信息根据列表顺序保持在指针指示的条目中。每个指针是2位变量,并且互不相同的值保持在指针中。例如,按从顶端起的顺序保持“00”、“11”、“01”和“10”的指针。在该示例中,按照第一条目、第四条目、第二条目和第三条目的顺序在管理表#0中保持管理信息。指针表#1到#3的配置类似于指针表#0的配置。
图16示出本公开第一实施例中管理表#0的配置的示例。参考图16,管理表#0包括四个条目ENT#00、ENT#01、ENT#02和ENT#03。请求处理部分500和响应处理部分600可以随机地存取以位为单位放置在条目中的管理信息,不管管理信息的保持顺序。
这里,在保持管理信息的情况下,按从指示空白条目的指针中以指针的列表顺序中处于顶端的指针指示的条目开始的顺序,保持作为管理信息的uID和事务信息。此外,按保持管理信息的顺序读出事务信息。从其读出事务信息的条目置入空白状态。
例如,假设这样的状态,其中指针PTR#00到PTR#03的值是“00”、“11”、“01”和“10”,如图15所示,并且仅管理表#0中的条目ENT#01和ENT#02是空白,如图16所示。处于指针的列表的顺序的顶端的、指示空白条目的指针TR#02和PTR#03之一是指针PTR#02。因为该指针指示的条目是条目ENT#01,所以管理信息保持到条目ENT#01。按保持的顺序读出保持的管理信息。管理表#1到#3的配置类似于管理表#0的配置。
图17示出本公开第一实施例中请求处理部分500的配置的示例。参考图17,请求处理部分500包括写目的地确定部分510和管理信息登记部分560。
写目的地确定部分510确定管理表和管理信息要保持到的条目。如果从互连部分300接收请求,则写目的地确定部分510从请求中的时间段指定位串指定时隙。不同的时隙具有分配给其的互不相同的时间段号码。例如,写目的地确定部分510检测事务ID的低2位作为时间段指定位串,并且从这2位获取时间段号码以指定时隙。写目的地确定部分510从缓冲器400获取对应于指定的时隙的管理表的空白标记。
如果没有在时隙中发出请求,或如果所有空白标记无效,写目的地确定部分510否定对互连部分300的就绪信号。
如果不同地在时隙中发出请求,并且一个或多个有效空白标记是可利用的,则写目的地确定部分510从缓冲器400获取一个或多个指针。写目的地确定部分510选择由对应于有效空白标记的指针指示的条目之一。写目的地确定部分510生成指示选择的条目的写目的地条目索引IDX_W[j](j是从0到3的整数)。
写目的地条目索引IDX_W[j]是指示选择的条目的信号。例如,管理表中条目的数量是四,生成个别地从1位写目的地条目索引IDX_W[0]到IDX_W[3]配置的4位信息,写目的地条目索引IDX_W[0]到IDX_W[3]个别地对应于条目。随后,只有对应于选择的条目的位设置为“1”,而“0”置入到其它位。
写目的地确定部分510通过信号线851通知管理信息登记部分560时间段号码,并且通过信号线852通知管理信息登记部分560写目的地条目索引 IDX_W[j]。此外,写目的地确定部分510基于时间段号码生成写使能信号WE[i],并且将写使能信号WE[i]输出到缓冲器400。
写使能信号WE[i]是用于更新对应于管理表之一的空白标记的指令的信号。例如,在管理表的数量是四的情况下,生成从个别地对应于管理表的1位写使能信号WE[0]到WE[3]形成的4位信息。随后,只有对应于对其分配指定时间段号码的管理表的位设置为“1”,而“0”置入其它位。
管理信息登记部分560登记管理信息到管理表中。如果接收时间段号码和写目的地条目索引IDX_W[j],则管理信息登记部分560从请求生成管理信息,并且选择对应于时间段号码的管理表。管理信息登记部分560将管理信息保持到由选择的管理表中的写目的地条目索引IDX_W[j]指示的条目中。
图18示出本公开第一实施例中写目的地确定部分510的配置的示例。参考图18,写目的地确定部分510包括时间段号码获取部分520、独热状态计数器521、四个表空白决定部分530、写目的地条目选择部分540和E寄存器更新指令部分550。为各时隙个别提供表空白决定部分530,且表空白决定部分530个别称为表控制决定部分#0到#3。
时间段号码获取部分520从请求中包括的事务标识符ID获取时隙的时间段号码。时间段号码获取部分520通过信号线851,通知表空白决定部分530、E寄存器更新指令部分550和管理信息登记部分560获取的时间段号码。
独热状态计数器521保持等于时隙号码的位数的信息,并且每次时隙经过时,计数其值以仅使对应于计数值的位有效。在设置四个时隙的情况,独热状态计数器521保持个别对应于时隙的4位信息。随后,每次时隙经过时,该独热状态计数器521计数数目,并且仅设置对应于计数值的位为“1”,而设置其它位为“0”。独热状态计数器521通过信号线867输出保持的4位信息的当前状态到各个表空白决定部分530。
表空白决定部分530决定对应于接收的时间段号码的管理表中的条目是否包括空白条目。表空白决定部分530从时间段号码获取部分520接收时间段号码,并且从独热状态计数器521接收状态。每个表空白决定部分530决定时间段号码指示的时隙和状态指示的时隙是否相互一致。如果两个时隙相互一致,则表空白决定部分530决定在涉及请求的时隙发出请求,并且存取缓冲器400以获取对应于一致时隙的管理表的空白标记。表空白决定部分530基于空白标记的值决定管理表是否包括空白条目。表空白决定部分530通过 信号线861到864,输出其关于空白条目是否存在的决定的结果到写目的地条目选择部分540。
写目的地条目选择部分540选择这样的空白条目之一。写目的地条目选择部分540从表空白决定部分530接收决定的结果。如果从所有决定结果决定无空白条目可用,则写目的地条目选择部分540否定就绪信号,并输出否定的就绪信号到互连部分300和E寄存器更新指令部分550。如果从决定结果的任一至少一个空白条目可用,则写目的地条目选择部分540肯定就绪信号,并且输出肯定的就绪信号到互连部分300和E寄存器更新指令部分550。通过信号线865示出对E寄存器更新指令部分550的就绪信号。另一方面,如果多余一个空白条目可用,则写目的地条目选择部分540参考指针以选择条目之一。例如,写目的地条目选择部分540对每个指针预先设置固定的优先度,优先度在指针的列表顺序中按降序设置。写目的地条目选择部分540从空白条目中选择由呈现最高优先度的指针指示的条目。随后,写目的地条目选择部分540基于条目选择产生写目的地条目索引IDX_W[j],并且通知管理信息登记部分560写目的地条目索引IDX_W[j]。
E寄存器更新指令部分550发出更新E寄存器的指令。特别地,E寄存器更新指令部分550从时间段号码获取部分520接收时间段号码,从互连部分300接收有效信号,以及从写目的地条目选择部分540接收就绪信号。如果肯定有效信号和就绪信号,则E寄存器更新指令部分550产生用于指令的写使能信号WE[i],以更新对应于接收的时间段号码的E寄存器#i,并输出写使能信号WE[i]到缓冲器400。
图19示出本公开第一实施例中表空白决定部分530的配置的示例。参考图19,表空白决定部分530包括时间段号码一致决定部分531、状态一致决定部分532和与门533到537。
时间段号码一致决定部分531决定时间段号码是否与预定号码一致。从“0”到“3”的号码预先分别分配给对应于管理表#0到#3的表空白决定部分#0到#3。时间段号码一致决定部分531从时间段号码获取部分520接收时间段号码,并且决定接收的时间段号码和预先分配的号码是否相互一致。时间段号码一致决定部分531输出结果到与门533。例如,如果决定结果是一致,则置值“1”,但是如果决定结果是不一致,则置值“0”。
状态一致决定部分532决定独热状态计数器521的状态和预定状态是否 相互一致。二进制符号的“1000”、“0100”、“0010”和“0001”的状态分别预先分配给对应于管理表#0到#3的表空白决定部分#0到#3。状态一致决定部分532从独热状态计数器521接收状态,并且决定接收的状态和预先分配给表空白决定部分530的状态是否相互一致。状态一致决定部分532输出决定的结果到与门533。例如,如果决定一致,则置“1”,但是如果决定不一致,则置“0”。
与门533到537输出输入值的逻辑与值。与门533到537个别地具有两个输入端。
来自时间段号码一致决定部分531的决定结果输入到与门533的输入端之一,并且来自状态一致决定部分532的决定结果输入到与门533的另一输入端。与门533输出输入值的逻辑与值到与门534到537。
与门533的输出输入到与门534到537的输入端之一,并且对应于管理表的E寄存器的触发器的当前值输入到与门534到537的另一输入端。例如,在对应于管理表#0的表空白决定部分530中,输入寄存器#0的触发器421到424的当前值。与门534到537将作为决定结果标记D#i[0]到D#i[3]的各个输入值的逻辑与值,分别输出到写目的地条目选择部分540。
决定结果标记D#i[0]到D#i[3]是指示当在由请求中包括的时间段指定位串指示的时隙#i中发出请求时,管理表#i中条目#0到#3是否为空白的1位信息。
图20图示本公开第一实施例中写目的地条目选择部分540的动作的示例。参考图20,写目的地条目选择部分540从表空白决定部分530接收决定结果标记D#i[j]。如果所有决定结果标记D#i[j]是“0”,则写目的地条目选择部分540否定就绪信号,并且输出否定的就绪信号。
如果决定结果标记D#i[j]的任一是“1”,则写目的地条目选择部分540肯定就绪信号,并且输出肯定的就绪信号。此外,则写目的地条目选择部分540基于指针选择对应于决定结果标记D#i[j]=1的条目之一,并且产生写目的地条目索引WE[j]。
图21示出本公开第一实施例中E寄存器更新指令部分550的配置的示例。参考图21,E寄存器更新指令部分550包括与门551、时间段号码一致决定部分552到555和与门556到559。
与门551和556到559输出输入值的与值,并且具有两个输入端。
来自互连部分300的有效信号输入到与门551的输入端之一,并且来自写目的地条目选择部分540的就绪信号输入到与门551的另一输入端。与门551输出输入值的逻辑与值到与门556到559。
时间段号码一致决定部分552到555决定时间段号码与预定号码是否一致。“0”到“3”的号码分别预先分配给时间段号码一致决定部分552到555。时间段号码一致决定部分552到555从时间段号码获取部分520接收时间段信号,并且决定接收的时间段号码和预先分配的号码是否相互一致。时间段号码一致决定部分552到555分别输出其各自的决定结果到与门556到559。例如,对每个决定结果,当决定一致时置“1”,但是当决定不一致时置“0”。
与门551的输出输入到与门556到559的输入端之一,并且时间段号码一致决定部分552到555的决定结果分别输入到与门556到559的另一输入端。与门556到559通过信号线808-1到808-4,将作为写使能信号WE[0]到WE[3]的输入值的逻辑与值输出到缓冲器400。
图22示出本公开第一实施例中响应处理部分600的配置的示例。参考图22,响应处理部分600包括事务信息获取部分610、E寄存器更新指令部分650和指针更新部分660。
如果返回响应,则事务信息获取部分610从缓冲器400读出对应于响应的事务信息。当从互连部分300接收响应时,随后事务信息获取部分610从响应的事务标识符ID获取时间段号码和uID。事务信息获取部分610通过信号线871通知E寄存器更新指令部分650时间段号码。
事务信息获取部分610从缓冲器400读出空白标记、管理信息和对应于时间段号码的指针。事务信息获取部分610基于来自缓冲器400的空白标记、管理信息和指针,读出对应于涉及请求的uID的事务信息。事务信息获取部分610输出读出的事务信息到互连部分300。
随后,事务信息获取部分610产生指示从其读出事务信息的条目的读源条目索引IDX_R[j]。事务信息获取部分610通过信号线872输出读源条目索引IDX_R[j]到指针更新部分660。
读源条目索引IDX_R[j]是代表从其读出事务信息的条目的信号。例如,在管理表中条目的数量是四的情况,生成从对应于每个管理表的1位读源条目索引IDX_RRE[0]到IDX_RRE[3]形成的4位信息。随后,仅对应于从其读出事务信息的条目的位设置为“1”,而其它位设置为“0”。
E寄存器更新指令部分650发出指令以更新E寄存器。E寄存器更新指令部分650从互连部分300接收涉及响应的有效信号和就绪信号,并且从事务信息获取部分610接收时间段号码。如果肯定有效信号和就绪信号,则E寄存器更新指令部分650产生用于指令的读使能信号RE[i],以更新对应于接收的时间段号码的E寄存器#i,并输出读使能信号RE[i]到缓冲器400和指针更新部分660。
读使能信号RE[i]是用于更新对应于某一管理表的空白标记的指令的信号。例如,在管理表的数量是四的情况,产生从1位读使能信号RE[0]到RE[3]形成的4位信息。随后,仅对应于对其分配指定的时间段号码的管理表的位设置为“1”,而其它位设置为“0”。
指针更新部分660基于E寄存器#i的更新,更新对应的指针表#i。特别地,指针更新部分660从E寄存器更新指令部分650接收读使能信号RE[i]。指针更新部分660更新指针,使得在对应于读使能信号RE[i]的管理表中,其中保持有效管理信息的条目从顶端接连排列。
图23示出本公开第一实施例中事务信息获取部分610的配置的示例。参考图23,事务信息获取部分610包括时间段号码获取部分611、uID获取部分612和四个读源条目选择部分620。
时间段号码获取部分611从涉及响应的事务标识符ID获取时隙的时间段号码。时间段号码获取部分611通知读源条目选择部分620和E寄存器更新指令部分650获取的时间段号码。
uID获取部分612从涉及响应的事务标识符ID获取uID。uID获取部分612通知读源条目选择部分620获取的uID。
读源条目选择部分620选择其中放置对应于响应的事务信息的条目,并且读出该条目的事务信息。读源条目选择部分620输出读出的事务信息到互连部分300,并且输出指示读出的条目的读源条目索引IDX_R[j]到指针更新部分660。
图24示出本公开第一实施例中读源条目选择部分620的配置示例。参考图24,每个读源条目选择部分620包括时间段号码一致决定部分621、与门622到625、uID一致决定部分626到629和与门630到633。读源条目选择部分620还包括读源条目选择电路634和事务信息获取电路635。
时间段号码一致决定部分621决定时间段号码是否与预定号码一致。从 “0”到“3”的号码预先分别分配给对应于管理表#0到#3的读源条目选择部分620。时间段号码一致决定部分621从时间段号码获取部分611接收时间段号码,并且决定接收的时间段号码和预先分配给其的号码是否相互一致。时间段号码一致决定部分621输出决定的结果到与门622到625。例如,如果决定结果指示一致,则置值“1”,但是如果决定结果指示不一致,则置值“0”。
与门622到625和630到633输出对其输入值的逻辑与值。与门622到625和630到633具有两个输入端。
时间段号码一致决定部分621的决定结果输入到与门622到625的输入端之一,并且对应的管理表的触发器中保持的空白标记的值输入到与门622到625的另一输入端。与门622到625分别输出输入值的逻辑与值到与门630到633。
uID一致决定部分626到629决定涉及请求的uID是否与其条目中保持的uID一致。uID一致决定部分626到629从uID获取部分612接收uID,并且决定接收的uID是否与其条目中保持的uID一致。uID一致决定部分626到629分别输出决定的结果到与门630到633。例如,如果决定结果指示一致,则置值“1”,但是如果决定结果指示不一致,则置值“0”。
与门622到625的输出输入到与门630到633的输入端之一,并且uID一致决定部分626到629的决定结果分别输入到与门630到633的另一输入端。与门630到633将作为决定结果标记R#i[0]到R#i[3]的输入值的逻辑与值,分别输出到读源条目选择部分634。
决定结果标记R#i[0]到R#i[3]是指示对应于响应的事务信息是否存储在管理表#i的条目中的信号。在对应于涉及响应的时间段号码的管理表#i中,如果涉及响应的uID保持在条目#j中,“1”置入决定结果标记R#i[j]。在其它情况下,“0”置入决定结果标记R#i[j]。
这里,在AXI协议中,如上所述,当主机发出事务时,如果主机请求从机维持顺序关系,则准许应用相同的事务标识符ID,如上所述。因此,发出相同事务标识符ID的多个事务,则假设“1”可以置入两个或多个决定结果标记R#i[j]。
读源条目选择电路634选择要从其读出事务信息的条目。读源条目选择电路634从与门630到633接收决定结果标记R#i[j]。读源条目选择电路634 选择对应于决定结果标记R#i[j]=1的条目之一。例如,读源条目选择电路634预先对每个指针设置固定的优先度,并且选择对应于指示最高优先度的决定结果标记R#i[j]=1的条目之一。读源条目选择电路634产生指示选择的条目的读源条目索引IDX_R[j],并且输出读源条目索引IDX_R[j]到事务信息获取电路635和指针更新部分660。
事务信息获取电路635从读源条目选择电路634接收读源条目索引IDX_R[j]。事务信息获取电路635存取缓冲器400,以从读源条目索引IDX_R[j]指示的条目读出事务信息,并且输出读出的事务信息到互连部分300。
图25示出本公开第一实施例中E寄存器更新指令部分650的配置的示例。参考图25,E寄存器更新指令部分650包括与门651、时间段号码一致决定部分652到655和与门656到659。
与门651和656到659输出输入值的逻辑与值。与门651和656到659具有两个输入端。
来自互连部分300的有效信号和就绪信号输入到与门651的输入端。与门651输出输入值的逻辑与值到与门656到659。
时间段号码一致决定部分652到655决定时间段号码是否与预定号码一致。时间段号码一致决定部分652到655分别具有预先分配给其的号码“0”到“3”。时间段号码一致决定部分652到655从时间段号码获取部分611接收时间段号码,并且决定接收的时间段号码和预先分配给其的号码是否相互一致。时间段号码一致决定部分652到655分别输出决定的结果到与门656到659。例如,如果决定结果指示一致,则置值“1”,但是如果决定不一致,则置值“0”。
来自与门651的输出输入到与门656到659的输入端之一,并且时间段号码一致决定部分652到655的决定结果分别输入到与门656到659的另一输入端。与门656到659将作为读使能信号RE[0]到RE[3]的输入值的逻辑与值,分别输出到缓冲器400。
总线桥的动作
参考图26到28描述总线桥200的动作。图26是图示本公开第一实施例中总线桥200的动作的示例流程图。当使对总线桥200的电源可用时,当初始化缓冲器400时等,开始该动作。
互连部分300在步骤S910首先初始化缓冲器400。当初始化时,例如, 总线桥200将所有空白标记设置为“1”,以无效所有管理信息。此外,例如,总线桥200将管理表中指针的值按从顶端起的顺序设置为“00”、“01”、“10”和“11”。
总线桥200在步骤S920决定是否从主机发出请求。如果发出请求(步骤S920的是),则总线桥200中的请求处理部分500在步骤S930执行用于保持管理信息的请求处理。
如果没有发出请求(步骤S920的否)或步骤S950之后,总线桥200在步骤S950决定是否从从机发回响应。如果发回响应(步骤S950的是),则总线桥200中的响应处理部分600在步骤S960执行用于读出对应于响应的事务信息的响应处理。
如果没有发回响应(步骤S950的否)或步骤S960之后,总线桥200使处理返回到步骤S920。
图27是图示在图26的步骤S930的请求处理的示例的流程图。参考图27,请求处理部分500首先在步骤S931选择与事务标识符ID的低2位一致的时间段号码的管理表。随后在步骤S932,响应处理部分600决定由涉及请求的时间段号码指示的时隙是否是分配给总线桥200的时隙。
如果时隙分配给总线桥200(步骤S932的是),则请求处理部分500在步骤S933决定选择的管理表是否具有某一空白。如果管理表不具有空白(步骤S933的否),则请求处理部分500在步骤S934否定就绪信号。
另一方面,如果管理表具有某一空白(步骤S933的是),则请求处理部分500肯定就绪信号,并且在步骤S935选择管理表的空白条目。请求处理部分500在步骤S936将管理信息登记到选择的条目。随后,请求处理部分500在步骤S937将对应于选择的管理表的空白标记更新到缓冲器400。
如果由时间段号码指示的时隙不是分配的时隙(步骤S932的否),或在步骤S934或步骤S937之后,请求处理部分500终止请求处理。
图28是图示在图26的步骤S960的响应处理的示例的流程图。参考图28,响应处理部分600在步骤S961基于涉及响应的事务标识符ID的低2位,选择管理表。随后,在步骤S962,响应处理部分600基于事务标识符ID的高6位,选择选择的管理表中的条目之一。随后,在步骤S963,响应处理部分600从选择的条目读出事务信息。
响应处理部分600在步骤S964使缓冲器400更新对应于选择的管理表的 空白标记。随后,在步骤S965,响应处理部分600更新对应于选择的管理表的指针表。在步骤S965之后,响应处理部分600终止响应处理。
现在,参考图29到32描述第一实施例中总线桥200的动作的结果示例。参考图29,假设从主机#0到从机#1两次发出请求。假设主机#0发出将事务标识符ID的值设置为二进制符号的“00000100”的请求。同时,假设主机#1发出将事务标识符ID的值设置为“00001000”的请求。那些请求在对应于事务标识符ID的低2位“00”的时隙发送。此外,在总线桥200接收第一请求的时间点,缓冲器400处于初始化状态。
因为各请求中事务标识符ID的低2位是“00”,请求处理部分500选择管理表#0。请求处理部分500基于指针的列表顺序,按条目ENT#00、ENT#01和ENT#02的顺序,保持涉及从主机#0两次发出的请求和从主机#1一次发出的请求的管理信息。图30图示其中保持提及的管理信息的缓冲器400的示例。参考图30,由主机#0两次发出的事务标识符ID的高6位“000001”与事务信息一起保持在条目ENT#00和ENT#01中。此外,由主机#1一次发出的事务标识符ID的高6位“000010”与事务信息一起保持在条目ENT#02中。
假设,保持管理信息之后,从从机#1发回响应到主机#0,如图31所见。参考图31,因为该响应对应于从主机#0发出的请求,所以从机#1发出与涉及从主机#0发出的请求的事务标识符ID相同的“00000100”。
响应处理部分600从涉及响应的事务标识符ID的低2位“00”选择管理表#0。随后,响应处理部分600获取其中保持对应于涉及响应的事务标识符ID的高6位“000001”的事务信息的条目ENT#00和ENT#01。响应处理部分600基于指针的列表顺序选择条目ENT#00,并且从条目ENT#00读出事务信息。作为结果,条目ENT#00置入空白状态。响应处理部分600更新指针表,使得其中保持有效管理信息的条目从顶端填充。在该示例中,更新指针表,使得条目ENT#01和ENT#02填充到顶端,同时已经置入空白状态的条目ENT#00紧临这些条目排列。作为结果,指针按从顶端起的顺序更新为“01”、“10”、“00”和“11”。
要注意,虽然第一实施例的总线***使用AXI协议,但是如果任何其它协议准许拆分事务,自然地可以使用任何其它协议。
此外,虽然图1示出其中主机110连接到AXI总线120,且从机140连接到AXI总线130的配置,但是模块的连接方案不限于图1所示的配置。例 如,除了主机之外从机可以连接到AXI总线120,或者除了从机之外主机可以连接到AXI总线130。
此外,虽然事务标识符ID的低2位用作时间段指定位,但是自然地除了低2位事务标识符ID的任何其他部分可以用作时间段指定位。
此外,图8示出其中分段长度、分段大小等保持为事务信息的配置。然而,管理表可以保持不同于图8图示信息的信息作为事务信息,如果其是响应的传送控制必需的信息。
此外,请求处理部分500和响应处理部分600参考指针以指定管理信息的保持顺序。然而,可以使用除指针之外的任何信息,如果其可以指定管理信息的保持顺序。
以该方式,利用本公开第一实施例,请求处理部分500决定从涉及请求的时间段指定位串指定的时隙是否是分配给总线桥200的时隙。如果指定的时隙是分配的时隙,则响应处理部分600将与事务信息有关联关系的涉及请求的部分位串保持到对应于该时隙的管理表。在该配置中,作为管理表的总容量,仅要求用于保持等于总线***准许的未解决的传送的数量的最大数(诸如,例如16)的管理信息的条数的容量。因此,即使总线***准许的事务数量的最大数增大,可能仅通过按照场合要求增大管理信息的部分位串的宽度或管理表的数量来应付该情况。
例如,如果要准许的事务数量的最大值从256增加到512,可能仅通过将部分位串的宽度从6位增大到7位来应付该情况。或者,可能通过提供条目数量是2的九个管理表来应付该情况。当管理表的数量要增大时,因为只有管理表的条目的总数大于未解决的事务的数量的最大数(诸如,例如16)是必需的,所以每个管理表的条目的数量可以减少。相应地,缓冲器400的大小增加,即可以抑制缓冲器400的存储容量。
此外,因为管理信息保持在个别对应于时隙的多个管理表中,所以每个管理表可以保持非完整的事务标识符ID,而是其的部分位串。因此,在只提供一个管理表的可替代的情况下,缓冲器400的容量可以由此减小。
此外,在时隙中发出请求的情况下,请求处理部分500保持管理信息。因此,可能在各个管理表中分散地保持大量条的管理信息,因此防止管理信息集中在管理表的某些中。
此外,总线桥200从指针指定管理信息的保持顺序,并且根据保持顺序 保持管理信息。因此,总线桥200可以根据请求的发出顺序读取事务信息。
<2.第二实施例>
总线***的配置
现在,参考图33到35描述本公开第二实施例的总线桥。本公开第二实施例的总线桥不同于本公开第一实施例的总线桥在于减小了指针表的容量。下文中,仅描述本公开第二实施例和本公开第一实施例的差别,而在此省略类似于第一实施例的配置的第二实施例的配置的描述,以免冗长。首先参考图33,示出本公开第二实施例的缓冲器401的配置的示例。在图33中,未示出E寄存器更新部分410、空白标记保持部分420、管理信息保持部分440和响应处理部分600。除了缓冲器401包括代替指针保持部分430的指针保持部分710,缓冲器401类似于第一实施例中的缓冲器400。指针保持部分710包括指针表720-1到720-4、以及剩余条目获取部分730-1到730-4。
指针表720-1到720-4保持多个指针。剩余条目获取部分730-1到730-4获取不是由对应于管理表的指针指示的条目的那些管理表的条目。请求处理部分500参考指针表的指针指示的条目和通过信号线806由剩余条目获取部分730-1到730-4获取的条目。在图33中省略的响应处理部分600也参考指针表的指针指示的条目和由剩余条目获取部分获取的条目。请求处理部分500和响应处理部分600可以通过参考指针和条目存取管理表的所有条目。因此,指针表不再需要保持数量等于条目数量的指针。因此,在第二实施例中,配置指针表720-1到720-4,使得其仅保持数量比对应的管理表中的条目的数量小1的指针。
图34示出本公开第二实施例中指针表720-1的配置的示例。参考图34,指针表720-1保持三个指针PTR#00到PTR#02。指针表720-2到720-4的配置类似于指针表720-1的配置。
这里,假设第二实施例的总线***准许的未解决事务的数量的最大值是16,类似于第一实施例。在该示例中,四个管理表的每个包括四个条目,类似于第一实施例。相应地,在第一实施例中,每个指针表需要保持四个指针,如图15所示。相反,在第二实施例中,指针表720-1到720-4的每个仅具有三个指针。这是因为剩余条目获取部分730-1到730-4获取剩余的条目。
图35示出本公开第二实施例中剩余条目获取部分730-1的电路配置的示例。参考图35,剩余条目获取部分730-1包括异或(XOR)门731到734。
异或门731到734输出输入值的异或值。异或门731到734具有两个输入端。指针PTR#01的低位的值输入到异或门731的输入端之一,并且指针PTR#02的低位的值输入到异或门731的另一输入端。异或门731输出输入值的异或值到异或门733。
指针PTR#01的高位的值输入到异或门732的输入端之一,并且指针PTR#02的高位的值输入到异或门732的另一输入端。异或门732输出输入值的异或值到异或门734。
指针PTR#00的低位的值输入到异或门733的输入端之一,并且异或门731的输出输入到异或门733的另一输入端。异或门733输出作为指针PTR#03的低位的输入值的异或值到请求处理部分500。
指针PTR#00的高位的值输入到异或门734的输入端之一,并且异或门732的输出输入到异或门734的另一输入端。异或门734输出作为指针PTR#03的高位的输入值的异或值到请求处理部分500。剩余条目获取部分730-2到730-4的配置类似于剩余条目获取部分730-1的配置。
不同的值保持在指针表保持的指针PTR#00到PTR#03中。因此,即使指针PTR#03从指针表省略,剩余条目获取部分730-1也可以通过确定不同于指针PTR#00到PTR#02的所有值的值,获取指针PTR#03的剩余条目。
以该方式,利用本公开第二实施例,剩余条目获取部分730-1到730-4获取没有包括在由指针指示的条目中的管理表的条目之一。因此,可能减少一个指针表保持的指针,由此减小指针表的容量。
<3.第三实施例>
总线***的配置
现在,参考图36到38描述根据本公开第三实施例的总线桥。本公开第三实施例的总线桥不同于本公开第一实施例的总线桥在于减小了管理表的容量。在下文中,仅描述本公开第三实施例和第一实施例的差别,而省略类似于第一实施例的配置的第三实施例的配置的描述,以免冗长。首先参考图36,示出本公开第三实施例中管理表441-1的配置的示例。除了管理表441-1具有用于在条目ENT#03中保持uID的区域,管理表441-1在配置上类似于本公开第一实施例中管理表440-1。本公开第三实施例中除了管理表441-1,管理表的配置类似于管理表441-1。
要注意,上述实施例中条目ENT#00到ENT#02是本公开中管理信息保 持条目的示例。此外,上述实施例中条目ENT#03是本公开中事务信息保持条目的示例。
图37图示本公开第三实施例在管理信息登记部分560的动作的示例。参考图37,如果写目的地条目索引IDX_W[0]到IDX_W[2]之一是“1”,则管理信息登记部分560将uID和事务信息保持到对应于写目的地条目索引IDX_W[j]=1的条目。如果写目的地条目索引IDX_W[3]=1,则管理信息登记部分560将事务信息保持到条目ENT#03。
图38示出本公开第三实施例中读源条目选择部分641的配置的示例。参考图38,读源条目选择部分641不同于第一实施例中读源条目选择部分620在于读源条目选择部分641包括代替uID一致决定部分629的反相器741图到743和与门744。
反相器741到743反转对其的输入值,并且输出反转的值。与门630、631和632的输出分别输入到反相器741、742和743。反相器741到743反转对其的输入中,并且输入反转的值到与门744。
与门744输出输入值的逻辑与值。与门744具有四个输入端。与门625的输出输入到与门744的四个输入端之一。反相器741到743的输出输入到与门744的剩余输入端。与门744将作为决定结果标记R#[3]的输入值的逻辑与值,输出到读源条目选择电路634。
以该方式,当条目ENT#00到ENT#02之一中包含的uID和涉及响应的uID相互一致时,读源条目选择部分641读出对应于一致uID的事务信息。另一方面,如果条目ENT#00到ENT#02的uID没有一个与响应的uID一致,则如果有效管理信息包含在条目ENT#03中,则读源条目选择部分641读出有效管理信息的事务信息。以该方式,响应处理部分600从条目ENT#03读出事务信息,不用相互比较响应的uID和对应于条目ENT#03的uID。
描述不存在比较响应的uID和对应于条目ENT#03的uID的必要性的原因。参考图1如上所述,在AXI协议中,从机可以在相同的事务中发出与由主机发出的事务标识符ID相同的标识符。除了对应于管理表中登记的事务信息的uID,任何其他uID不由从机发出。相应地,即使uID没有保持在条目ENT#03中,总线桥200也可以决定不与条目ENT#00到ENT#02中的uID的任一一致的uID是对应于剩余条目ENT#03的事务信息的uID。因此,在条目ENT#03的事务信息的读出中,响应处理部分600不需要相互比较响应的 uID和对应于条目ENT#03的uID,并且没有提供用于保持uID的区域的必要性。
以该方式,利用本公开第三实施例,当条目ENT#00到ENT#02非空白时,请求处理部分500将事务信息保持到条目ENT#03。随后,当条目ENT#00到ENT#02的uID没有一个与响应的uID一致时,响应处理部分600从条目ENT#03读出事务信息。因此,即使不相互比较响应的uID和对应于条目ENT#03的uID,响应处理部分600也可以从条目ENT#03读出事务信息。相应地,消除了提供用于保持管理表的条目ENT#03中uID的必要性。作为结果,可以减少管理表的容量。
<4.第四实施例>
总线***的配置
参考图39到43描述本公开第四实施例的总线桥。本公开第四实施例的总线桥不同于第一实施例的总线桥,在于管理表还保持发出顺序信息。在下文中,仅描述本公开第四实施例和本公开第一实施例的差别,而在此省略类似于第一实施例的配置的第四实施例的配置的描述,以免冗长。图39图示本公开第四实施例中管理信息的示例。除了管理信息还包括发出顺序信息,管理信息与第一实施例中的管理信息相同。
发出顺序信息是用于指定请求发出顺序的信息。发出顺序信息包括序列号SN、头标记F和尾标记L。序列号SN是指示请求的发出顺序号码的管理号码。序列号SN占用的值的数量等于或大于管理表中提供的条目的数量。例如,管理表包括四个条目,至少2位的信息设置为序列号SN。
头标记F是指示所属管理信息是从管理表中uID相同的管理信息中发出顺序顶端的1位信息。例如,当管理信息是顶端时,头标记F设置为“1”并使其有效,但在任何其它情况下,头标记F设置为“0”并使其无效。
尾标记L是代表所属管理信息是从管理表中uID相同的管理信息中发出顺序末端的1位信息。例如,当管理信息是末端时,头标记F设置为“1”,但在任何其它情况下,头标记F设置为“0”并使其无效。
图40示出本公开第四实施例的缓冲器402的配置的示例。参考图40,处理缓冲器402包括代替管理信息保持部分440的管理信息保持部分441,和不包括指针保持部分430,缓冲器402在配置上类似于第一实施例中的缓冲器400。除了uID和事务信息,管理信息保持部分441保持包括发出顺序 信息的管理信息。
图41示出本公开第四实施例中请求处理部分501的配置的示例。参考图41,除了请求处理部分501包括代替管理信息登记部分560的管理信息登记部分561,请求处理部分501在配置上类似于第一实施例中的请求处理部分500。
管理信息登记部分登记还包括发出顺序信息的管理信息。特别地,管理信息登记部分561决定包括与请求的uID相同的uID的管理信息是否保持在对应于时隙的管理表中。如果没有保持该uID,则请求是发出顺序中顶端或末端请求。因此,管理信息登记部分561向序列号SN中置“0”,并且向头标记F和尾标记L中置“1”,以登记该管理信息。如果保持与请求的uID相同的uID,则该请求是发出顺序中的末端请求。因此,管理信息登记部分561从管理信息中获取序列号,该管理信息中从相同uID的保持的管理信息中设置尾标记L=1。管理信息登记部分561递增序列号SN,并且随后设置递增的值到要新登记的管理信息,并且随后向头标记F中置“0”,以及向尾标记L中置“1”。然后,管理信息登记部分561更新相同uID的保持的管理信息中的尾标记L为“0”。
图42示出本公开第四实施例中响应处理部分的配置的示例。参考图42,除了响应处理部分601包括事务信息获取部分642、以及代替事务信息获取部分610和指针更新部分660的顺序信息更新部分661,响应处理部分601在配置上类似于第一实施例中的响应处理部分600。
事务信息获取部分642获取对应于响应的事务信息。事务信息获取部分642从对应于响应的时间段指定位串的管理表中,确定保持与响应的uID一致的uID的条目。事务信息获取部分642从具有其中保持头标记F=1的确定的条目中的条目读出事务信息。事务信息获取部分642通过信号线876通知顺序信息更新部分661作为头号码SN F保持在条目中的序列号SN。
顺序信息更新部分661更新发出顺序信息。顺序信息更新部分661从互连部分300接收响应,并且从事务信息获取部分642接收头号码SN F和读使能信号RE[i]。顺序信息更新部分661选择由读使能信号RE[i]指示的管理表。顺序信息更新部分661从管理表中确定其中保持与请求的uID相同的uID、以及与通过递增头号码SN F获得的数字相同的序列号SN的条目。顺序信息更新部分661将确定的条目中的头标记F更新为“1”。
图43示出本公开第四实施例中读源条目选择部分643的配置的示例。参考图43,除了读源条目选择部分643包括代替读源条目选择电路634的读源条目选择电路644,读源条目选择部分643在配置上类似于第一实施例中的读源条目选择部分620。
读源条目选择电路644选择要从其读出事务信息的条目。读源条目选择电路644从其中R[j]=1的条目中选择其中保持头标记F=1的条目,并且产生写目的地条目索引IDX_W[j]。此外,读源条目选择电路644通知顺序信息更新部分661作为头号码SN_F的选择的条目中保持的序列号SN。
要注意,虽然在本公开第四实施例的描述中,序列号SN设为顺序信息,但是序列号SN可以是任何号码,只要其根据发出顺序递增或递减,并且不限于顺序的号码。
此外,虽然以上描述发出顺序信息包括头标记F和尾标记L,但是可以配置发出顺序信息,使得其不包括至少其中之一。
如果配置发出顺序信息,使得其包括头标记F,但不包括尾标记L,则请求处理部分501基于头标记F获取末端的管理信息。例如,请求处理部分501接连递减头标记F=1的管理信息的序列号SN,并且从相同uID的管理信息中获取首先展现一致的序列号SN的管理信息作为末端。另一方面,如果配置发出顺序信息,使得其包括尾标记L,但不包括头标记F,则响应处理部分601基于尾标记L获取顶端的管理信息。例如,响应处理部分601接连递增尾标记L=1的管理信息的序列号SN,并且从相同uID的管理信息中获取首先展现一致的序列号SN的管理信息作为顶端。
然而,如果配置发出顺序信息,使得其不包括头标记F和尾标记L中的任一,则请求处理部分501从保持与请求的uID相同的uID的那些条目中,选择保持最大序列号SN的条目作为末端。此外,响应处理部分601从保持与请求的uID相同的uID的那些条目中,选择保持最小序列号SN的条目作为顶端。随后,在响应处理部分601读出事务信息之后,其递减保持与响应的uID相同的uID的条目的全部中的序列号SN。
以该方式,利用本公开第四实施例,因为总线桥200与事务信息有关联关系地保持发出顺序信息,所以其可以根据请求的发出顺序读出对应于响应的事务信息。
<5.第五实施例>
总线***的配置
参考图44到45描述根据本公开第五实施例的总线桥。本公开第五实施例的总线桥不同于本公开第四实施例的总线桥,在于管理表保持下一条目Next。在下文中,仅描述本公开第五实施例和第四实施例的差别,而在此省略类似于第四实施例的配置的第五实施例的配置的描述,以免冗长。特别地,图44图示本公开第五实施例中管理信息的示例。除了该管理信息包括代替序列号SN和尾标记L的下一条目Next,其类似于本公开第四实施例中的管理信息。
下一条目Next是指示其中放置在发出顺序中紧邻所属的一条管理信息的一条管理信息的条目的位置的信息。在发出顺序中末端的一条管理信息的情况下,指示其中保持该条管理信息本身的条目的位置的信息设置为下一条目Next。下一条目Next可能的值的数量不少于管理表中条目的数量。例如,如果每个管理表中条目的数量是4,设置至少2位的下一条目Next。
要注意,在上述实施例中的下一条目Next是本公开中一条下一位置信息的示例。
除了设置下一条目Next代替序列号SN和尾标记L,本公开第五实施例中的请求处理部分在配置上类似于本公开第四实施例中的请求处理部分501。要注意,第五实施例中的请求处理部分依赖由下一条目Next指示的条目是否代表其中放置管理信息本身的条目的位置,决定管理信息是否末端管理信息。
图45示出本公开第五实施例中读源条目选择部分645的配置的示例。参考图45,除了读源条目选择部分645包括代替读源条目选择电路644的读源条目选择电路646,读源条目选择部分645在配置上类似于以上参考图43描述的第四实施例中的读源条目选择部分643。
读源条目选择电路646选择要从其读出事务信息的条目。除了读源条目选择电路646通知顺序信息更新部分662代替头号码SN F的选择的条目中保持的下一条目Next,读源条目选择电路646类似于第四实施例中的读源条目选择电路644。
顺序信息更新部分662将接收的下一条目Next指示的条目中的头标记F更新为“1”。
要注意,虽然在本公开第五实施例中描述发出顺序信息包括头标记F,但是也可能采用其中发出顺序信息不包括头标记F的另一配置。
在使用其中不包括头标记F的配置的情况下,响应处理部分保持所有保持与响应的uID相同的uID的条目。响应处理部分从获取的条目中,选择其中保持没有由任何其它下一条目Next引用的下一条目Next的条目。
以该方式,利用本公开第五实施例,总线桥200通过预先设置下一条目Next,可以容易地从对应于请求的管理信息中获取末端管理信息
要注意,与本公开优选实施例有关描述的处理过程的任一可以理解为包括处理过程的方法,或者用于使计算机执行处理过程的程序,或者其上或其中存储该程序的记录介质。记录介质可以是例如CD(致密盘)、MD(微型盘)、DVD(数字多用途盘)、存储卡、蓝光盘(注册商标)等。
本申请包含涉及于2010年12月6日向日本专利局提交的日本优先权专利申请JP 2010-271008中公开的主题,在此通过引用并入其全部分内容。
虽然已经使用具体术语描述了本公开的优选实施例,但是这样的描述仅用于说明的目的,并且要理解可以做出更改和变化,不背离权利要求的精神和范围。
Claims (10)
1.一种互连装置,包括:
缓冲器,适于保持多个管理表使得单独对应于时隙,多个管理表的每个与用于控制响应的传送处理的事务信息有关联关系地保持来自位串内的部分位串,部分位串通过从用于事务处理的识别的位串移除时间段指定位串获得,该位串包括作为时间段指定位串的用于指定多个时隙之一的位串,且用于识别包括请求的传送处理和对应于该请求的响应的传送处理的事务处理;
请求处理部分,适于当基于涉及请求的时间段指定位串指定的时隙是分配给所述互连装置的时隙时,在对应于该时隙的管理表中保持相互有关联关系的部分位串和事务信息;
响应处理部分,适于当自从机发回响应时,从基于涉及响应的时间段指定位串指定的管理表,读出对应于部分位串的事务信息;以及
互连部分,适于基于事务信息当从主机发出请求时,对从机传送请求,并且当自从机发回响应时,对主机传送响应。
2.根据权利要求1的互连装置,其中所述缓冲器还对每个管理表保持用于指定保持顺序的保持顺序信息,以保持顺序将部分位串和事务信息保持到管理表中;
所述请求处理部分基于保持顺序信息控制管理表,以保持与部分位串有关联关系的事务信息;
当发回响应时,所述响应处理部分基于保持顺序信息从管理表读出对应于部分位串的事务信息。
3.根据权利要求2的互连装置,其中每个管理表包括多个条目,每个条目是用于保持部分位串和事务信息的区域;
保持顺序信息包括比管理表中提供的条目的数量小1的指针的数量,在这样的状态下使得指针指示互相不同的条目;
所述缓冲器还包括剩余条目获取部分,适于对管理表的每个获取没有包括在指针指示的条目中的条目。
4.根据权利要求1的互连装置,其中
每个管理表包括:
多于一个的管理信息保持条目,其作为每个用于保持与部分位串有关联关系的事务信息作为管理信息的区域;以及
事务信息保持条目,其作为用于保持事务信息的区域;
当任一管理信息保持条目为空时,所述请求处理部分将相互有关联关系的部分位串和事务信息保持到管理信息保持条目,而当任一管理信息保持条目为非空时,所述请求处理部分将事务信息保持到事务信息保持条目,
所述响应处理部分包括
多个一致决定部分,适于决定放置在管理表中的部分位串之一和涉及请求的部分位串是否相互一致,以及
事务信息获取部分,适于当由所述一致决定部分之一决定一致时,从管理信息保持条目读出对应于关于其决定一致的部分位串的事务信息,而当由所述一致决定部分的全部决定不一致时,从所述事务信息保持条目读出事务信息。
5.根据权利要求1的互连装置,其中每个管理表在涉及与事务信息有关联关系的部分位串的事务处理中,保持部分位串和代表关于请求的发出顺序的发出顺序信息;
所述请求处理部分将相互有关联关系的涉及请求的部分位串和发出顺序信息保持到管理表中;
所述响应处理部分,当发回响应时,根据来自管理表的发出顺序信息,读出对应于涉及响应的部分位串的事务信息。
6.根据权利要求5的互连装置,其中发出顺序信息包括指示发出顺序的管理编号。
7.根据权利要求6的互连装置,其中发出顺序信息还包括代表管理信息是发出顺序中的顶端的顶端标记,以及代表管理信息是发出顺序中的末端的末端标记。
8.根据权利要求5的互连装置,其中发出顺序信息包括指示关于请求的发出顺序中下一事务信息的存储位置的下一位置信息。
9.根据权利要求8的互连装置,其中发出顺序信息还包括代表管理信息是发出顺序中的顶端的顶端标记。
10.一种用于互连装置的控制方法,包括:
当每个包括作为时间段指定位串的用于指定时隙的位串的、多个时隙之一是分配给互连装置的时隙时,所述时隙基于涉及请求的时间段指定位串指定,与用于控制响应的传送处理的事务信息有关联关系地、将部分位串保持到对应于时隙的多个管理表之一,所述部分位串通过从用于事务处理的识别的位串移除时间段指定位串获得,所述事务处理包括请求的传送处理和对应于该请求的响应的传送处理;以及
当自从机发回响应时,从基于涉及响应的时间段指定位串指定的管理表,读出对应于部分位串的事务信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010271008A JP5664187B2 (ja) | 2010-12-06 | 2010-12-06 | 相互接続装置、および、その制御方法 |
JP2010-271008 | 2010-12-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102591829A CN102591829A (zh) | 2012-07-18 |
CN102591829B true CN102591829B (zh) | 2016-11-30 |
Family
ID=
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1238050A (zh) * | 1996-09-16 | 1999-12-08 | 科罗拉利公司 | 一种在具有多***总线的计算机***中保持存储器相关性的***和方法 |
CN1470019A (zh) * | 2000-08-21 | 2004-01-21 | ض� | 用于在一个分布式存储器、高速缓存相干的多处理器***中把有序的输入/输出事务流水线处理到相干存储器的方法和装置 |
US6820165B2 (en) * | 2000-08-31 | 2004-11-16 | Hewlett-Packard Development Company, L.P. | System and method for increasing the count of outstanding split transactions |
US7181556B2 (en) * | 2003-12-23 | 2007-02-20 | Arm Limited | Transaction request servicing mechanism |
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1238050A (zh) * | 1996-09-16 | 1999-12-08 | 科罗拉利公司 | 一种在具有多***总线的计算机***中保持存储器相关性的***和方法 |
CN1470019A (zh) * | 2000-08-21 | 2004-01-21 | ض� | 用于在一个分布式存储器、高速缓存相干的多处理器***中把有序的输入/输出事务流水线处理到相干存储器的方法和装置 |
US6820165B2 (en) * | 2000-08-31 | 2004-11-16 | Hewlett-Packard Development Company, L.P. | System and method for increasing the count of outstanding split transactions |
US7181556B2 (en) * | 2003-12-23 | 2007-02-20 | Arm Limited | Transaction request servicing mechanism |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102301349B (zh) | 访问存储控制器控制的存储芯片中根据列条带化的行数据 | |
US6622193B1 (en) | Method and apparatus for synchronizing interrupts in a message passing queue oriented bus system | |
US5870627A (en) | System for managing direct memory access transfer in a multi-channel system using circular descriptor queue, descriptor FIFO, and receive status queue | |
US8040220B2 (en) | Method and apparatus for managing tag information, and computer product | |
CN103793893A (zh) | 采用限缓冲区处理的世界和屏幕空间管线间基元重新排序 | |
CN102428451A (zh) | 用于数据存储装置的命令及中断分组 | |
CN102567258B (zh) | 多维dma传输装置与方法 | |
CN102063943A (zh) | Nand闪存参数自动检测*** | |
CN103778120B (zh) | 全局文件标识生成方法、生成装置及相应的分布式文件*** | |
CN105320608A (zh) | 用于控制存储器设备处理访问请求的存储器控制器和方法 | |
CN103885893A (zh) | 用于访问内容寻址存储器的技术 | |
CA2111600A1 (en) | Parallel Processing System | |
US10474575B2 (en) | Cache-based communication between execution threads of a data processing system | |
CN105653481A (zh) | 基于PCIe总线的数据传输方法和装置 | |
CN115269450A (zh) | 内存协同管理***和方法 | |
JP5664187B2 (ja) | 相互接続装置、および、その制御方法 | |
CN102331922B (zh) | 运算装置、高速缓存装置及其控制方法 | |
CN102591829B (zh) | 互连装置和用于其的控制方法 | |
CN104285215A (zh) | 用于跟踪指令高速缓冲存储器中的附加数据权限的方法和设备 | |
EP1485919A2 (en) | Method and system for maximizing dram memory bandwidth | |
CN101290602B (zh) | 存储器管理***与方法 | |
CN112347012B (zh) | 支持SR-IOV的NVMe控制器及方法 | |
CN110928680B (zh) | 一种适用于证券交易***的订单内存分配方法 | |
CN103514953B (zh) | 对存储在闪存中的数据有地址ram的模拟电可擦存储器 | |
JP2012118906A (ja) | 相互接続装置、および、その制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20161130 Termination date: 20211206 |