一种缓存路由结构、方法和芯片与流程

未命名 07-27 阅读:92 评论:0


1.本公开实施例涉及数据传输技术,尤指一种缓存路由结构、方法和芯片。


背景技术:

2.随着芯片工艺的不断发展和多核技术的广泛应用,芯片上的网络互联结构越来越普遍,而且资源占比也在逐渐提高。吞吐量的提升和资源的优化,成为优秀的网络互联结构设计的难点,也是重要的设计指标。在网络互联结构方案中,必不可少的会应用到路由器和仲裁器。相关技术中提出使用缓存模块+路由筛选模块的缓存路由结构电路,实现在资源和效率平衡下的大带宽,多端口的应用。
3.发明概述
4.以下是对本文详细描述的主题的概述,本概述并非是为了限制权利要求的保护范围。
5.本公开实施例提供了一种缓存路由结构、方法和芯片。
6.本公开实施例提供了一种缓存路由结构,可以包括:请求缓存池、请求缓存逻辑组、数据传输模块和路由出口;每个所述路由出口分别与一个仲裁器相连;所述请求缓存池包括a个缓存区,所述请求缓存逻辑组包含b个请求选择逻辑单元,所述数据传输模块包括c个数据传输区;a、b、c均为大于1的正整数;每个所述数据传输区均与全部所述路由出口相连;所述b个请求选择逻辑单元分别具有不同的优先级;
7.所述缓存区,设置为缓存待传输的目标对象以及所述目标对象对应的路由出口标识;所述路由出口标识用于指示用于输出所述目标对象的路由出口;
8.所述请求选择逻辑单元,设置为按照预设的选择策略从a个所述缓存区中选择一个缓存区,并从选中的缓存区中获取目标对象以及该目标对象对应的路由出口标识,传输至空闲的数据传输区;所述选择策略包括:按照优先级顺序分别从a个所述缓存区中选择一个缓存区;
9.所述数据传输区,设置为缓存被传输的目标对象,并根据该被传输的目标对象对应的路由出口标识,将该被传输的目标对象通过该路由出口标识对应的路由出口传输至相应的仲裁器。
10.在本公开的示例性实施例中,所述请求选择逻辑单元,还设置为在选中一个缓存区后,将选中的该缓存区所缓存的目标对象对应的路由出口标识,以及优先级比自身优先级高的请求选择逻辑单元选中的缓存区所缓存的目标对象对应的路由出口标识,均传递至下一优先级的请求选择逻辑单元。
11.在本公开的示例性实施例中,所述路由出口标识可以包括:路由出口的编号和/或用于指示每个路由出口的被选中状态的指示符。
12.在本公开的示例性实施例中,所述路由出口为d个,d为大于1的正整数;
13.所述指示符可以包括:d个指示位,不同的指示位分别通过第一数值或第二数值指示不同路由出口的被选择状态;其中,所述第一数值用于指示路由出口被选中,所述第二数
值用于指示路由出口未被选中。
14.在本公开的示例性实施例中,所述目标对象可以包括:被缓存的数据、被缓存的指针或被缓存的身份标识id,所述指针用于指示待传输的数据的存储地址。
15.在本公开的示例性实施例中,当所述目标对象包括被缓存的指针时,所述缓存路由结构还可以包括:数据缓存模块和数据输出逻辑模块;
16.所述数据缓存模块可以包括:多个存储区域,每个存储区域设置为缓存数据;
17.所述数据输出逻辑模块,分别与每个存储区域、每个数据传输区和每个路由出口相连,设置为接收所述数据传输区传输的指针以及该指针对应的路由出口标识,判断接收到的指针对应的存储区域的地址,并根据该存储区域的地址从相应的存储区域获取缓存数据,将所述缓存数据传输至接收到的路由出口标识对应的路由出口。
18.在本公开的示例性实施例中,当所述目标对象包括被缓存的id时,所述缓存路由结构还包括:数据缓存模块和数据输出逻辑模块;
19.所述数据缓存模块包括:多个存储区域,每个存储区域设置为缓存数据;
20.所述数据输出逻辑模块,分别与每个存储区域、每个数据传输区和每个路由出口相连,设置为接收所述数据传输区传输的id以及该id对应的路由出口标识,将接收到的id与所述数据输出逻辑模块自身存储的id相比较,从所述数据输出逻辑模块自身存储的id中获取与所述接收到的id相同的id,并判断该相同的id对应的存储区域的地址,并根据该存储区域的地址从相应的存储区域获取缓存数据,将所述缓存数据传输至接收到的路由出口标识对应的路由出口。
21.在本公开的示例性实施例中,所述数据输出逻辑模块包括y个所述请求选择逻辑单元,y为大于1的正整数;
22.y个所述请求选择逻辑单元的数量与c个所述数据传输区的数量相同;y个所述请求选择逻辑单元中的每个所述请求选择逻辑单元分别与一个所述数据传输区相连;
23.y个所述请求选择逻辑单元没有优先级。
24.在本公开的示例性实施例中,y个所述请求选择逻辑单元,设置为接收所述连接的所述数据传输区传输的目标对象以及该目标对象对应的路由出口标识,判断接收到的目标对象对应的存储区域的地址,并根据该存储区域的地址从相应的存储区域获取缓存数据,将所述缓存数据传输至接收到的路由出口标识对应的路由出口。
25.本公开实施例还提供了一种缓存路由方法,基于所述的缓存路由结构,所述方法可以包括:
26.所述缓存路由结构中的请求缓存逻辑组包含的b个请求选择逻辑单元分别按照预设的选择策略从所述缓存路由结构中的请求缓存池包含的a个缓存区中选择一个缓存区,并从选中的缓存区中获取目标对象以及该目标对象对应的路由出口标识,传输至所述缓存路由结构中的数据传输模块包含的c个数据传输区中空闲的数据传输区;a、b、c均为大于1的正整数;所述b个请求选择逻辑单元分别具有不同的优先级;所述选择策略包括:按照优先级顺序分别从a个所述缓存区中选择一个缓存区;
27.被选中的数据传输区缓存被传输的目标对象,并根据该被传输的目标对象对应的路由出口标识,将该被传输的目标对象通过该路由出口标识对应的路由出口传输至相应的仲裁器。
28.在本公开的示例性实施例中,所述方法还可以包括:
29.每个所述请求选择逻辑单元按照优先级顺序分别从a个所述缓存区中选择一个缓存区;
30.每个请求选择逻辑单元在选中一个缓存区后,将选中的该缓存区所缓存的目标对象对应的路由出口标识,以及优先级比自身优先级高的请求选择逻辑单元选中的缓存区所缓存的目标对象对应的路由出口标识,均传递至下一优先级的请求选择逻辑单元。
31.本公开实施例还提供了一种芯片,包括所述的缓存路由结构。
32.在阅读并理解了附图和详细描述后,可以明白其他方面。
33.附图概述
34.附图用来提供对本公开技术方案的理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开的技术方案,并不构成对本公开技术方案的限制。
35.图1为本公开实施例方案的第一种缓存路由结构示意图;
36.图2为本公开实施例方案的第二种缓存路由结构示意图;
37.图3为本公开实施例方案的第二种缓存路由结构中数据缓存模块和数据输出逻辑模块结构示意图;
38.图4为本公开实施例方案的第三种缓存路由结构示意图;
39.图5为本公开实施例的缓存路由方法流程图;
40.图6为本公开实施例的芯片组成框图。
41.详述
42.本公开描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本公开所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在详细实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
43.本公开包括并设想了与本领域普通技术人员已知的特征和元件的组合。本公开已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本公开中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行多种修改和改变。
44.此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本公开实施例的精神和范围内。
45.本公开实施例提供了一种缓存路由结构,如图1所示,可以包括:请求缓存池1、请
求缓存逻辑组2、数据传输模块3和路由出口4;每个所述路由出口4分别与一个仲裁器5相连;所述请求缓存池1包括a个缓存区,所述请求缓存逻辑组2包含b个请求选择逻辑单元,所述数据传输模块3包括c个数据传输区;a、b、c均为大于1的正整数;每个所述数据传输区均与全部所述路由出口4相连;所述b个请求选择逻辑单元分别具有不同的优先级;
46.所述缓存区,设置为缓存待传输的目标对象以及所述目标对象对应的路由出口标识;所述路由出口标识用于指示用于输出所述目标对象的路由出口;
47.所述请求选择逻辑单元,设置为按照预设的选择策略从a个所述缓存区中选择一个缓存区,并从被选中的缓存区中获取目标对象以及该目标对象对应的路由出口标识,传输至空闲的数据传输区;所述选择策略包括:按照优先级顺序分别从a个所述缓存区中选择一个缓存区;
48.所述数据传输区,设置为缓存被传输的目标对象,并根据该被传输的目标对象对应的路由出口标识,将该被传输的目标对象通过该路由出口标识对应的路由出口传输至相应的仲裁器。
49.已知相关技术中的缓存路由结构电路包括:缓存模块和路由筛选模块;缓存模块,配置为接收路由请求并缓存在各自的缓存池中;路由筛选模块,配置为从各自的缓存池中筛选路由请求并发送至对应的仲裁器。不同的路由器筛选的路由请求发送至不同的仲裁器以使任意一个仲裁器在一个处理周期内至多接收到一个路由器发送的路由请求。因为需要保证传递操作的原子性【原子性是数据库的事务中的特性,在数据库事务的情景下,原子性指的是:一个事务(transaction)中的所有操作,或者全部完成,或者全部不完成,不会结束在中间某个环节】,路由筛选模块在一个时间单位内(例如,一个电路时钟周期内)只能完成从缓存模块的一个缓存区与对应仲裁器的传递操作。上述计算请求的发送机制,当多个计算单元发出的访问地址相同时,只有一个计算单元的请求被仲裁单元接收,导致整体结构的数据传输效率下降。在本公开的示例性实施例中,对相关技术中的缓存路由结构电路进行了优化,解决了传输效率不足的问题。
50.在本公开的示例性实施例中,如图1所示,与相关技术中的缓存路由结构电路相比,本公开实施例方案的缓存路由结构中使用了请求选择逻辑组2,提高了请求缓存池1和数据传输模块3之间的数据传输效率,从而提高了数据传输模块3中的数据传输区31的使用率,提高了整个缓存路由结构的性能。
51.在本公开的示例性实施例中,下面对本公开实施例的缓存路由结构作详细介绍。
52.在本公开的示例性实施例中,请求选择逻辑组2由b个请求选择逻辑单元组成,其中,数量b可以是任意的,可以根据需求自行定义,本公开实施例中以b=2为示例说明本公开实施例方案。
53.在本公开的示例性实施例中,b个请求选择逻辑单元分别具有不同的优先级;可以将请求选择逻辑组2中的每个请求选择逻辑单元称为mux(例如mux1和mux2),每个mux带有固定的优先级,使得mux总体数量较多情况下所有的mux在请求传输工作时不会发生冲突;可以将请求缓存池1中的缓存区称为top(例如top1、top2、
……
、topa),可以将数据传输模块3中的数据传输区称为bot(例如bot1、bot2、
……
、botc),在缓存区top中会缓存请求的目标对象以及该目标对象对应的路由出口标识。
54.在本公开的示例性实施例中,每个所述请求选择逻辑单元mux,还设置为按照优先
级顺序分别从a个所述缓存区中选择一个缓存区。
55.在本公开的示例性实施例中,该优先级顺序可以包括但不限于优先级从高到低的顺序。即,高优先级的请求选择逻辑单元mux首先从a个所述缓存区top中选择一个缓存区top,然后下一优先级的请求选择逻辑单元mux首先从剩余的a-1个所述缓存区top中选择一个缓存区top,依次类推,直至全部所述请求选择逻辑单元mux均选择一个缓存区top。
56.在本公开的示例性实施例中,每个请求选择逻辑单元mux选择一个缓存区top时的选择策略可以包括但不限于:按照多个所述缓存区top的排列顺序从首到尾或从未到首进行选择,或者,按照随机选择策略从多个所述缓存区top中任意选择一个缓存区top(后续更低优先级的请求选择逻辑单元mux在选择缓存区top时可以从剔除了已被选择的缓存区top以后的多个缓存区top中任意选择一个缓存区top)。
57.在本公开的示例性实施例中,为了有效地剔除已被选择的缓存区top,可以将已被选择的缓存区top中缓存的目标对象对应的路由出口标识传递给更低优先级的请求选择逻辑单元mux,详细方案如下所述。
58.在本公开的示例性实施例中,每个所述请求选择逻辑单元mux,还设置为在选中一个缓存区top后,将选中的该缓存区top的缓存区标识,以及优先级比自身优先级高的请求选择逻辑单元mux选中的缓存区top的缓存区标识,均传递至下一优先级的请求选择逻辑单元mux。
59.在本公开的示例性实施例中,可进一步将b个请求选择逻辑单元mux进行分组,每组包括多个请求选择逻辑单元,不同组内的请求选择逻辑单元数量可以相同,也可以不同。
60.在本公开的示例性实施例中,多组请求选择逻辑单元mux分别具有不同的优先级;每组mux带有固定的优先级,每组内的每个mux也带有固定的优先级,使得mux总体数量较多情况下所有的mux在请求传输工作时不会发生冲突。
61.在本公开的示例性实施例中,每组所述请求选择逻辑单元mux,还设置为按照优先级顺序分别从a个所述第一缓存区中选择一个第一缓存区。该优先级顺序可以包括但不限于优先级从高到低的顺序。
62.在本公开的示例性实施例中,所述路由出口4为d(d为大于1的正整数)个,缓存区top为a个,a和d的数值可以相同也可以不同,当a的数值大于d的数值时,则会使得多个缓存区top内缓存的目标对象对应的路由出口标识为同一路由出口标识,即,多个目标对象需要从同一个路由出口传输出去,如果该多个目标对象所在的缓存区top同时被选中,则有可能该多个目标对象需要同时通过同一路由出口被传输出去,这必将造成路由出口堵塞,严重影响传输效率。
63.在本公开的示例性实施例中,针对以上问题提出了下述的解决方案:每个所述请求选择逻辑单元mux,还设置为在选中一个缓存区top后,将选中的该缓存区top所缓存的目标对象对应的路由出口标识,以及优先级比自身优先级高的请求选择逻辑单元mux选中的缓存区所缓存的目标对象对应的路由出口标识,均传递至下一优先级的请求选择逻辑单元mux。
64.在本公开的示例性实施例中,通过上述方案,使得每个所述请求选择逻辑单元mux剩余的多个缓存区top中选择一个缓存区top时,将剩余的多个缓存区top中存储有在预设时长内已被选择的缓存区top中存储的路由出口标识的缓存区top剔除,即,对剩余的多个
缓存区top进行再次筛选,从而从再次筛选后剩余的多个缓存区top中选择一个缓存区top,从而使得在一个较短的时段内,被选中的缓存区top都未存储相同的路由出口标识,从而使得被选中的缓存区top中存储的目标对象不会通过同一路由出口输出。通过该实施例方案确保了目标对象传输过程中路由出口不会出现堵塞现象。
65.在本公开的示例性实施例中,例如,mux1的优先级大于mux2的优先级,如果mux1当前选中了top1,则mux1将top1中缓存的目标对象对应的路由出口标识传递给mux2,则mux2在选择请求缓存池1中的缓存区top时,将跳过所有存储有与top1中存储的路由出口标识相同的路由出口标识的缓存区top;同理,当请求选择逻辑组2中还包含mux3、mux4

时,依次类推,mux3在选择缓存区top时会避开mux2和mux1选中的缓存区top存储的路由出口标识。
66.在本公开的示例性实施例中,所述路由出口标识可以包括但不限于:路由出口的编号和/或用于指示每个路由出口的被选中状态的指示符。
67.在本公开的示例性实施例中,路由出口的编号可以包括但不限于采用字母和数字进行编号,例如:portout1、portout2、
……
、portoutd。
68.在本公开的示例性实施例中,所述指示符可以包括:d个指示位,不同的指示位分别通过第一数值或第二数值指示不同路由出口的被选择状态;其中,所述第一数值用于指示路由出口被选中,所述第二数值用于指示路由出口未被选中。
69.在本公开的示例性实施例中,例如,当路由出口有16个时,d=16,则所述指示符可以包括16个指示位,例如,可以采用abcd efgh igkl mnop表示,其中,a、b、c、d、e、f、g、h、i、g、k、l、m、n、o、p分别代表一个指示位,每个指示位分别代表一个路由出口(如,a可以代表第1个路由出口、b可以代表第2个路由出口、
……
、p可以代表第16个路由出口,或者,相反地,a可以代表第16个路由出口、b可以代表第15个路由出口、
……
、p可以代表第1个路由出口,在本公开实施例中以a代表第1个路由出口、b代表第2个路由出口、
……
、p代表第16个路由出口为例进行说明),每个指示位可以通过0和1来表示该指示位的被选中状态,1可以表示该指示未被选中,0可以表示该指示位未被选中。例如,0000 0000 0000 0001代表第16个路由出口被选中,其余路由出口均未被选中;1000 1000 0000 0000代表第1个和第5个路由出口被选中,其余路由出口均未被选中。
70.在本公开的示例性实施例中,缓存区top中缓存的路由出口标识可以在存储之前被转换成上述的指示符的格式。
71.在本公开的示例性实施例中,当被mux1选中的top1中存储的路由出口标识用于指示第11个路由出口时,则mux1传递给mux2的掩码为0000 00000010 0000;当被mux2选中的top2中存储的路由出口标识用于指示第1个路由出口时,则mux2传递给mux3的掩码为1000 0000 0010 0000。
72.在本公开的示例性实施例中,上述实施例方案可以成倍地提高目标对象和路由出口标识从请求缓存池1中转移到数据传输模块3中的速率。
73.在本公开的示例性实施例中,所述目标对象可以包括:被缓存的数据、被缓存的指针pin和/或被缓存的身份标识id,所述指针pin用于指示待传输的数据的存储地址。
74.在本公开的示例性实施例中,当所述目标对象为被缓存的数据时,可以直接基于图1的结构执行上述的实施例方案实现数据的直接传输。
75.在本公开的示例性实施例中,因为缓存区top中存储的内容包括目标对象以及该
目标对象对应的路由出口标识两个部分,路由出口标识会在路由过程中被使用到,而目标对象本身在路由过程中除了被传输并没有改变,而且没有其他用途,仅仅是从请求缓存池1中的缓存区top被转移到数据传输模块3中的数据传输区bot中。因此,如果该目标对象为数据,由于某些数据较大,在传输过程中必然占据一定的空间,因此可以考虑将需要传递的数据单独缓存,在本公开实施例的缓存路由结构中仅传输该数据对应的指针,该指针用于指示该数据的缓存地址,由于指针占用的空间远小于数据本身,因此,可以减小数据传输过程中的空间占用,节省资源。
76.在本公开的示例性实施例中,如图2所示,当所述目标对象包括被缓存的指针pin时,所述缓存路由结构还可以包括:数据缓存模块11和数据输出逻辑模块12;
77.所述数据缓存模块11可以包括:多个存储区域buf(例如,buf_1、buf_2、
……
、buf_x,x为正整数),每个存储区域buf设置为缓存数据;
78.所述数据输出逻辑模块12,分别与每个存储区域buf、每个数据传输区bot和每个路由出口4相连,设置为接收所述数据传输区bot传输的指针pin以及该指针pin对应的路由出口标识,判断接收到的指针pin对应的存储区域的地址,并根据该存储区域的地址从相应的存储区域获取缓存数据,将所述缓存数据传输至接收到的路由出口标识对应的路由出口4。
79.在本公开的示例性实施例中,如图3所示,当所述目标对象包括被缓存的id时,所述缓存路由结构还可以包括:数据缓存模块11和数据输出逻辑模块12;
80.所述数据缓存模块11可以包括:多个存储区域buf(例如,buf_1、buf_2、
……
、buf_x,x为正整数),每个存储区域buf设置为缓存数据;
81.所述数据输出逻辑模块12,分别与每个存储区域buf、每个数据传输区bot和每个路由出口4相连,设置为接收所述数据传输区bot传输的id以及该id对应的路由出口标识,将接收到的id与所述数据输出逻辑模块12自身存储的id相比较,从所述数据输出逻辑模块12自身存储的id中获取与所述接收到的id相同的id,并判断该相同的id对应的存储区域的地址,并根据该存储区域的地址从相应的存储区域获取缓存数据,将所述缓存数据传输至接收到的路由出口标识对应的路由出口4。
82.在本公开的示例性实施例中,所述数据输出逻辑模块12包括y个所述请求选择逻辑单元,y为大于1的正整数;
83.y个所述请求选择逻辑单元的数量与c个所述数据传输区的数量相同;y个所述请求选择逻辑单元中的每个所述请求选择逻辑单元分别与一个所述数据传输区相连;
84.y个所述请求选择逻辑单元没有优先级。
85.在本公开的示例性实施例中,y个所述请求选择逻辑单元,设置为接收所述连接的所述数据传输区传输的目标对象(pin和/或id)以及该目标对象对应的路由出口标识,判断接收到的目标对象对应的存储区域的地址,并根据该存储区域的地址从相应的存储区域获取缓存数据,将所述缓存数据传输至接收到的路由出口标识对应的路由出口。
86.在本公开的示例性实施例中,如图3所示,所述数据输出逻辑模块12的结构没有优先级的判断。因此数据输出逻辑模块12中mux(例如,mux1、mux2、
……
、muxy,y为正整数)的数量与bot的数量相同(即c=y),通过bot传递的目标数据的指针pin在数据缓存模块11中对应的buf信息,以及port_out的信号完成mux的逻辑链接,从而避免全部的数据缓存模块
11中的buf都需要直接与port_out相连,导致总线的数量是x*d*位宽,现在的总线数为(x*c+c*d)*位宽,但c足够小时,(x*c+c*d)就比x*d要少,减少了逻辑的规模。
87.在本公开的示例性实施例中,如图4所示,每个数据本身就带有一个唯一的id(身份标识),而该id信息即包括了该数据要去往的port_out的信息,同时也包含了后续路由结构的寻址信息,以及数据自身的编号,导致了每个数据的id几乎是唯一的。top和bot中可以存储这个id,而图4中右边的部分是确定请求传递的顺序,将id传递给数据输出逻辑模块12后,数据输出逻辑模块12根据id去配对,只有相同id的数据才会被传递。
88.在本公开的示例性实施例中,数据缓存模块11中的buf存着数据及其对应的id,图4中右边的部分则是存着另一份同样的id。
89.在本公开的示例性实施例中,每个路由出口4可以分别与一个仲裁器5(例如,仲裁器51、52
……
、5d)相连。当任意一个指针被仲裁器5读取时,可以根据该指针确定相应数据的缓存地址,从而可以从该缓存地址中读取到所需的数据。
90.在本公开的示例性实施例中,上述实施例方案将缓存区top中原本缓存的数据部分采用位宽更小的指针所替代,减少了资源占用,并减少了数据本身在缓存路由结构中的传递操作的次数。
91.在本公开的示例性实施例中,至少包括以下优势:
92.1、减少了在因为相关技术中的双层缓存路由结构电路中两层缓存之间因传递请求效率不足而导致的瞬态效率下降的现象,提高了传输效率。
93.2、解决了直接数据传输时由于数据的位宽较大而带来的额外缓存资源的使用。
94.本公开实施例还提供了一种缓存路由方法,基于所述的缓存路由结构,如图5所示,所述方法可以包括步骤s101-s102:
95.s101、所述缓存路由结构中的请求缓存逻辑组包含的b个请求选择逻辑单元分别按照预设的选择策略从所述缓存路由结构中的请求缓存池包含的a个缓存区中选择一个缓存区,并从选中的缓存区中获取目标对象以及该目标对象对应的路由出口标识,传输至所述缓存路由结构中的数据传输模块包含的c个数据传输区中空闲的数据传输区;a、b、c均为大于1的正整数;所述b个请求选择逻辑单元分别具有不同的优先级;所述选择策略包括:按照优先级顺序分别从a个所述缓存区中选择一个缓存区;
96.s102、被选中的数据传输区缓存被传输的目标对象,并根据该被传输的目标对象对应的路由出口标识,将该被传输的目标对象通过该路由出口标识对应的路由出口传输至相应的仲裁器。
97.在本公开的示例性实施例中,所述方法还可以包括:
98.每个所述请求选择逻辑单元按照优先级顺序分别从a个所述缓存区中选择一个缓存区;
99.每个请求选择逻辑单元在选中一个缓存区后,将选中的该缓存区所缓存的目标对象对应的路由出口标识,以及优先级比自身优先级高的请求选择逻辑单元选中的缓存区所缓存的目标对象对应的路由出口标识,均传递至下一优先级的请求选择逻辑单元。
100.在本公开的示例性实施例中,前述的缓存路由结构实施例中的任意实施例均适用于上述的方法实施例中,在此不再一一赘述。
101.本公开实施例还提供了一种芯片100,如图6所示,包括所述的缓存路由结构200。
102.在本公开的示例性实施例中,前述的缓存路由结构实施例中的任意实施例均适用于该芯片实施例中,在此不再一一赘述。
103.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

技术特征:
1.一种缓存路由结构,包括:请求缓存池、请求缓存逻辑组、数据传输模块和路由出口;每个所述路由出口分别与一个仲裁器相连;所述请求缓存池包括a个缓存区,所述请求缓存逻辑组包含b个请求选择逻辑单元,所述数据传输模块包括c个数据传输区;a、b、c均为大于1的正整数;每个所述数据传输区均与全部所述路由出口相连;所述b个请求选择逻辑单元分别具有不同的优先级;所述缓存区,设置为缓存待传输的目标对象以及所述目标对象对应的路由出口标识;所述路由出口标识用于指示用于输出所述目标对象的路由出口;所述请求选择逻辑单元,设置为按照预设的选择策略从a个所述缓存区中选择一个缓存区,并从选中的缓存区中获取目标对象以及该目标对象对应的路由出口标识,传输至空闲的数据传输区;所述选择策略包括:按照优先级顺序分别从a个所述缓存区中选择一个缓存区;所述数据传输区,设置为缓存被传输的目标对象,并根据该被传输的目标对象对应的路由出口标识,将该被传输的目标对象通过该路由出口标识对应的路由出口传输至相应的仲裁器。2.根据权利要求1所述的缓存路由结构,其中,所述请求选择逻辑单元,还设置为在选中一个缓存区后,将选中的该缓存区所缓存的目标对象对应的路由出口标识,以及优先级比自身优先级高的请求选择逻辑单元选中的缓存区所缓存的目标对象对应的路由出口标识,均传递至下一优先级的请求选择逻辑单元。3.根据权利要求1所述的缓存路由结构,其中,所述路由出口标识包括:路由出口的编号和/或用于指示每个路由出口的被选中状态的指示符。4.根据权利要求3所述的缓存路由结构,其中,所述路由出口为d个;d为大于1的正整数;所述指示符包括:d个指示位,不同的指示位分别通过第一数值或第二数值指示不同路由出口的被选择状态;其中,所述第一数值用于指示路由出口被选中,所述第二数值用于指示路由出口未被选中。5.根据权利要求1-4任意一项所述的缓存路由结构,其中,所述目标对象包括:被缓存的数据、被缓存的指针或被缓存的身份标识id,所述指针用于指示待传输的数据的存储地址。6.根据权利要求5所述的缓存路由结构,其中,当所述目标对象包括被缓存的指针时,所述缓存路由结构还包括:数据缓存模块和数据输出逻辑模块;所述数据缓存模块包括:多个存储区域,每个存储区域设置为缓存数据;所述数据输出逻辑模块,分别与每个存储区域、每个数据传输区和每个路由出口相连,设置为接收所述数据传输区传输的指针以及该指针对应的路由出口标识,判断接收到的指针对应的存储区域的地址,并根据该存储区域的地址从相应的存储区域获取缓存数据,将所述缓存数据传输至接收到的路由出口标识对应的路由出口。7.根据权利要求5所述的缓存路由结构,其中,当所述目标对象包括被缓存的id时,所述缓存路由结构还包括:数据缓存模块和数据输出逻辑模块;所述数据缓存模块包括:多个存储区域,每个存储区域设置为缓存数据;所述数据输出逻辑模块,分别与每个存储区域、每个数据传输区和每个路由出口相连,
设置为接收所述数据传输区传输的id以及该id对应的路由出口标识,将接收到的id与所述数据输出逻辑模块自身存储的id相比较,从所述数据输出逻辑模块自身存储的id中获取与所述接收到的id相同的id,并判断该相同的id对应的存储区域的地址,并根据该存储区域的地址从相应的存储区域获取缓存数据,将所述缓存数据传输至接收到的路由出口标识对应的路由出口。8.根据权利要求6或7所述的缓存路由结构,其中,所述数据输出逻辑模块包括y个所述请求选择逻辑单元,y为大于1的正整数;y个所述请求选择逻辑单元的数量与c个所述数据传输区的数量相同;y个所述请求选择逻辑单元中的每个所述请求选择逻辑单元分别与一个所述数据传输区相连;y个所述请求选择逻辑单元没有优先级。9.一种缓存路由方法,其特征在于,基于权利要求1-8任意一项所述的缓存路由结构,所述方法包括:所述缓存路由结构中的请求缓存逻辑组包含的b个请求选择逻辑单元分别按照预设的选择策略从所述缓存路由结构中的请求缓存池包含的a个缓存区中选择一个缓存区,并从选中的缓存区中获取目标对象以及该目标对象对应的路由出口标识,传输至所述缓存路由结构中的数据传输模块包含的c个数据传输区中空闲的数据传输区;a、b、c均为大于1的正整数;所述b个请求选择逻辑单元分别具有不同的优先级;所述选择策略包括:按照优先级顺序分别从a个所述缓存区中选择一个缓存区;被选中的数据传输区缓存被传输的目标对象,并根据该被传输的目标对象对应的路由出口标识,将该被传输的目标对象通过该路由出口标识对应的路由出口传输至相应的仲裁器。10.根据权利要求9所述的缓存路由方法,还包括:每个所述请求选择逻辑单元按照优先级顺序分别从a个所述缓存区中选择一个缓存区;每个请求选择逻辑单元在选中一个缓存区后,将选中的该缓存区所缓存的目标对象对应的路由出口标识,以及优先级比自身优先级高的请求选择逻辑单元选中的缓存区所缓存的目标对象对应的路由出口标识,均传递至下一优先级的请求选择逻辑单元。11.一种芯片,其特征在于,包括如权利要求1-8任意一项所述的缓存路由结构。

技术总结
本公开实施例公开了一种缓存路由结构、方法和芯片,该缓存路由结构包括:包含A个缓存区(Top)的请求缓存池(1)、包含B个具有不同优先级的请求选择逻辑单元(mux)的请求缓存逻辑组(2)、包含C个数据传输区(bot)的数据传输模块(3)和路由出口(4);每个路由出口(4)与一个仲裁器(5)相连;每个数据传输区(bot)与路由出口(4)相连;缓存区(Top)缓存目标对象及路由出口标识;请求选择逻辑单元(mux)按优先级顺序选择缓存区(Top),从选中的缓存区(Top)中获取目标对象和路由出口标识传输至空闲数据传输区(bot);数据传输区(bot)将目标对象通过路由出口(4)传输至仲裁器(5)。口(4)传输至仲裁器(5)。口(4)传输至仲裁器(5)。


技术研发人员:石昊明 刘明 汪福全 李彦 闫超
受保护的技术使用者:声龙(新加坡)私人有限公司
技术研发日:2023.02.22
技术公布日:2023/7/25
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐