缓存管理方法、处理模块及电子设备与流程
未命名
07-12
阅读:69
评论:0

1.本公开的实施例涉及一种缓存管理方法、处理模块及电子设备。
背景技术:
2.在传统的总线设计中,对于一次完整的传输数据过程,需要地址握手成功后再传输数据。但是,这样的方式难以实现真正的全流水和满性能。随着技术的发展,一种新的方式被提出,该方式被称为拆分事务(split-transaction)方式,而支持能力以超前传输(outstanding)个数计算,即用outstanding个数表示发出去的请求数量(outstanding通常大于或等于2),未处理的请求可以先存放在接收方的缓存里,无需等待本次请求的数据应答,即可以再发起下一次的请求,由此可以实现数据传输的流水线(pipeline)。
技术实现要素:
3.本公开至少一个实施例提供一种缓存管理方法,适用于支持拆分事务的总线系统,其中,所述方法包括:采用信用缓存对请求缓存的可用条目进行管理,以实现请求的发送和应答;其中,所述信用缓存配置为存储所述请求缓存的可用条目的索引,所述请求缓存包括多个条目,所述可用条目是指所述多个条目中被标记为可用状态的条目,所述请求缓存配置为存储所述总线系统的请求信息。
4.例如,在本公开一实施例提供的方法中,采用所述信用缓存对所述请求缓存的可用条目进行管理,包括:响应于产生请求发送需求,判断所述信用缓存是否非空;响应于所述信用缓存非空,将所述可用条目之一作为目标条目,并将所述目标条目的索引从所述信用缓存中移除;基于所述目标条目,进行请求发送操作。
5.例如,在本公开一实施例提供的方法中,所述信用缓存包括先进先出缓存,将所述可用条目之一作为所述目标条目,并将所述目标条目的索引从所述信用缓存中移除,包括:基于先进先出的规则从所述信用缓存中读取一个可用条目的索引,将读取的索引所对应的可用条目作为所述目标条目,其中,读取的索引被所述信用缓存移除。
6.例如,在本公开一实施例提供的方法中,将所述可用条目之一作为所述目标条目,并将所述目标条目的索引从所述信用缓存中移除,包括:从所述信用缓存中顺序读取一个可用条目的索引,将读取的索引所对应的可用条目作为所述目标条目,其中,读取的索引被所述信用缓存移除。
7.例如,在本公开一实施例提供的方法中,基于所述目标条目,进行所述请求发送操作,包括:发送当前请求,将所述当前请求的记录信息存储至所述目标条目,并在所述请求缓存中将所述目标条目标记为不可用状态。
8.例如,在本公开一实施例提供的方法中,采用所述信用缓存对所述请求缓存的可用条目进行管理,还包括:响应于产生请求应答,释放所述请求缓存中与所述请求应答对应的条目,并更新所述信用缓存。
9.例如,在本公开一实施例提供的方法中,释放所述请求缓存中与所述请求应答对
应的条目,并更新所述信用缓存,包括:在所述请求缓存中查询与所述请求应答对应的条目;将所述请求缓存中与所述请求应答对应的条目标记为可用状态,并将对应的索引存入所述信用缓存。
10.例如,在本公开一实施例提供的方法中,将所述请求缓存中与所述请求应答对应的条目标记为可用状态的操作与将对应的索引存入所述信用缓存的操作在同一个时钟周期内完成。
11.例如,在本公开一实施例提供的方法中,采用所述信用缓存对所述请求缓存的可用条目进行管理,还包括:对所述信用缓存进行初始化。
12.例如,在本公开一实施例提供的方法中,对所述信用缓存进行初始化,包括:将所述请求缓存的所有条目对应的索引均存入所述信用缓存。
13.例如,在本公开一实施例提供的方法中,所述信用缓存包括先进先出缓存,将所述请求缓存的所有条目对应的索引均存入所述信用缓存,包括:在所述信用缓存中执行顺序复位操作并将所述信用缓存的内容复位为所述请求缓存的所有条目对应的索引。
14.例如,在本公开一实施例提供的方法中,所述信用缓存包括先进先出缓存,将所述请求缓存的所有条目对应的索引均存入所述信用缓存,包括:在对所述信用缓存进行复位后,将所述信用缓存的内容改写为所述请求缓存的所有条目对应的索引。
15.例如,在本公开一实施例提供的方法中,所述索引包括所述请求缓存的条目地址。
16.例如,在本公开一实施例提供的方法中,所述信用缓存的容量等于所述请求缓存包含的条目的数量。
17.例如,在本公开一实施例提供的方法中,所述请求缓存包含的条目的数量不等于2n,n为整数且n≥0。
18.本公开至少一个实施例还提供一种处理模块,适用于支持拆分事务的总线系统,其中,所述处理模块包括信用缓存和请求缓存;所述处理模块配置为:采用所述信用缓存对所述请求缓存的可用条目进行管理,以实现请求的发送和应答;其中,所述信用缓存配置为存储所述请求缓存的可用条目的索引,所述请求缓存包括多个条目,所述可用条目是指所述多个条目中被标记为可用状态的条目,所述请求缓存配置为存储所述总线系统的请求信息。
19.本公开至少一个实施例还提供一种电子设备,包括本公开任一实施例提供的处理模块。
附图说明
20.为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
21.图1为本公开一些实施例提供的一种缓存管理方法的流程示意图;
22.图2为图1中步骤s10的示例性流程图;
23.图3为图2中步骤s14的示例性流程图;
24.图4为本公开一些实施例提供的一种处理模块的信用缓存和请求缓存的硬件结构示意图;
25.图5为本公开一些实施例提供的一种处理模块的硬件行为描述示意图;
26.图6为本公开一些实施例提供的一种处理模块的示意框图;
27.图7为本公开一些实施例提供的一种电子设备的示意框图;
28.图8为本公开一些实施例提供的另一种电子设备的示意框图。
具体实施方式
29.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
30.除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
31.在outstanding方式的总线设计中,通常采用缓存(buffer)来用于保序应用,也即是,记录各个请求的相关信息,从而确定应答与请求之间的对应关系。例如,需要对这块缓存的内容做一些快速的查找动作,查找的同时也需要对缓存进行管理,对缓存中所有条目(entry)的占用和释放进行管理。
32.在一些实现方法中,通过对所有条目进行搜索的方式实现对资源的管理。例如,对于具有n个条目的缓存(常见的限制是n必须是2的整数幂),与之一一对应地,有一个长度为n的一维数组标志valid,用来保存每个条目的状态。例如,可以对每个条目的占用状态做标记,有效状态(被占用,处于不可用状态)为1,无效状态(未被占用,处于可用状态)为0。当占用新的条目时,首先要对整个valid数组进行搜索,找到第一个状态为0的条目,并设立有效标记。当然,上述查找方式仅为示例性的,也可以采用其他的查找方式。当释放已占用的条目时,则需按照条目的地址来清理对应条目的有效/无效标志。
33.在上述搜索逻辑下,在一个周期(cycle)内完成查找有助于维持较好的性能。由于有效/无效标志是实时的,因此可以保证因缓存管理时间开销带来的延迟不会影响数据通路。但是,当缓存的尺寸(size)变大,或者工作频率比较高时,会难以满足时序要求。尤其在14nm以上的工程项目实践中,巨大的查找逻辑还会对后端物理设计造成诸如拥塞(congestion)的影响,反过来会进一步影响时序收敛。
34.本公开至少一个实施例提供一种缓存管理方法、处理模块及电子设备。该缓存管理方法使得逻辑设计较为简单,有利于时序收敛,可以缩短关键路径逻辑,有效减小缓存的面积,提供了一种全新的、时序友好的缓存管理方式。
35.下面,将参考附图详细地说明本公开的实施例。应当注意的是,不同的附图中相同的附图标记将用于指代已描述的相同的元件。
36.本公开至少一个实施例提供一种缓存管理方法,该缓存管理方法适用于支持拆分事务(split-transaction)的总线系统。该缓存管理方法包括:采用信用缓存对请求缓存的可用条目进行管理,以实现请求的发送和应答。信用缓存配置为存储请求缓存的可用条目的索引,请求缓存包括多个条目,可用条目是指多个条目中被标记为可用状态的条目,请求缓存配置为存储总线系统的请求信息。
37.图1为本公开一些实施例提供的一种缓存管理方法的流程示意图。如图1所示,该缓存管理方法包括如下操作。
38.步骤s10:采用信用缓存对请求缓存的可用条目进行管理,以实现请求的发送和应答,其中,信用缓存配置为存储请求缓存的可用条目的索引,请求缓存包括多个条目,可用条目是指多个条目中被标记为可用状态的条目,请求缓存配置为存储总线系统的请求信息。
39.例如,该缓存管理方法适用于支持split-transaction的总线系统,也即是,适用于outstanding大于或等于2的总线系统。在这样的总线系统中,可以同时发送至少两个请求(request),而无需等待上一个请求握手成功才能发送下一个请求。例如,上述请求可以是访问数据的请求或写数据的请求,本公开的实施例对此不作限制。
40.例如,请求缓存配置为存储总线系统的请求信息,请求缓存可以是通常的outstanding大于或等于2的总线系统中存储请求信息的缓存(buffer)。请求信息例如是指使已发送的多个请求与返回的应答能一一匹配的信息,以使请求与应答建议正确的对应关系。关于请求信息的详细说明,可参考常规设计,此处不再详述。
41.请求缓存包括多个条目(entry)。当某一条目被占用时,其被标记为不可用状态,也可以称为有效状态。当某一条目未被占用时,其被标记为可用状态,也可以称为无效状态。
42.例如,信用缓存配置为存储请求缓存的可用条目的索引。可用条目是指请求缓存的多个条目中被标记为可用状态的条目。例如,请求缓存的每个条目都对应一个索引,通过索引可以确定具体是哪一个条目。例如,在一些示例中,可以将请求缓存的条目地址作为索引,因此,每个条目的索引就是该条目的地址,从而可以通过索引确定对应的条目。当然,本公开的实施例不限于此,也可以采用其他类型的信息作为条目的索引,不限于条目地址,只要该索引能够用于确定对应的条目即可,使得不同的条目能够彼此区分开,本公开的实施例对此不作限制。
43.例如,信用缓存的容量等于请求缓存包含的条目的数量,也即是,信用缓存能够存储请求缓存所有条目对应的索引,从而对请求缓存所有的条目进行管理。当然,信用缓存的容量也可以大于请求缓存包含的条目的数量,本公开的实施例对此不作限制。
44.在本公开的实施例中,信用缓存用于存储请求缓存的可用条目的索引,可以理解为信用缓存存储的是请求缓存的信用(credit)。当信用缓存中存储有信用(credit)时,则表示请求缓存具有可用条目;当信用缓存中未存储信用(credit)时,则表示请求缓存不具有可用条目,也即所有条目都已被占用。因此,通过这种存储信用(credit)的方式,可以实现请求缓存的可用条目的高效管理,无需对请求缓存的所有条目进行搜索来查找可用条目,而是可以直接根据信用缓存所管理的信用(credit)来确定请求缓存的可用条目,这种方式极大地简化了查找逻辑,不会造成拥塞等问题,不会影响时序收敛。并且,这种方式对
请求缓存的条目数量没有限制,在本公开的实施例中,请求缓存包含的条目的数量可以不必等于2n,n为整数且n≥0。请求缓存包含的条目的数量可以为任意数值,因此可以等于2n,也可以不等于2n。
45.图2为图1中步骤s10的示例性流程图。如图2所示,在一些示例中,步骤s10可以进一步包括如下操作。
46.步骤s11:响应于产生请求发送需求,判断信用缓存是否非空;
47.步骤s12:响应于信用缓存非空,将可用条目之一作为目标条目,并将目标条目的索引从信用缓存中移除;
48.步骤s13:基于目标条目,进行请求发送操作。
49.例如,在步骤s11中,当产生请求发生需求时,也即是,当需要在数据通路中发送请求时,首先判断信用缓存是否非空。由于信用缓存存储的是请求缓存的可用条目的索引,因此,当信用缓存非空时,则表示请求缓存中有可用条目;当信用缓存为空时,则表示请求缓存中没有可用条目,所有条目都已被占用。
50.例如,在步骤s12中,当信用缓存非空时,则将可用条目之一作为目标条目,并将目标条目的索引从信用缓存中移除。也即是,信用缓存非空表示请求缓存中有可用条目,因此将可用条目中的一个可用条目作为目标条目。目标条目是指为即将发送的请求所分配的条目,目标条目即将被占用。因此,目标条目不再是可用条目,需要将目标条目的索引从信用缓存中移除。
51.例如,信用缓存可以是先进先出缓存(first in first out,fifo),在信用缓存非空时,将fifo推出堆栈(pop)的索引所对应的可用条目作为目标条目。通过采用fifo作为信用缓存,可以简化操作方式,便于硬件实现。当然,本公开的实施例对此不作限制,也可以采用其他类型的缓存作为信用缓存,这可以根据实际需求而定。
52.例如,在一些示例中,在信用缓存采用先进先出缓存(fifo)的情形下,步骤s12可以进一步包括:基于先进先出的规则从信用缓存中读取一个可用条目的索引,将读取的索引所对应的可用条目作为目标条目。例如,读取的索引被信用缓存移除。也即是,在该示例中,信用缓存基于自身的规则(fifo规则)取出一个索引,该索引对应的可用条目就作为目标条目。
53.例如,在另一些示例中,步骤s12可以进一步包括:从信用缓存中顺序或者以其他方式读取一个可用条目的索引,将读取的索引所对应的可用条目作为目标条目。例如,读取的索引被信用缓存移除。也即是,在该示例中,可以采用顺序或者以其他的方式从信用缓存中读取一个索引,该索引对应的可用条目就作为目标条目。例如,当采用顺序方式或者以其他的方式时,信用缓存可以采用任意类型的、可适用于该读取规则的缓存,本公开的实施例对此不作限制。
54.例如,在步骤s13中,由于确定了目标条目(也即是,在请求缓存中确定了一个可以使用的条目),因此可以利用目标条目存储请求相关信息,从而可以进行请求发送操作。
55.例如,在一些示例中,步骤s13可以进一步包括:发送当前请求,将当前请求的记录信息存储至目标条目,并在请求缓存中将目标条目标记为不可用状态。也即是,利用请求缓存中选定的条目来存储请求相关信息并进行请求发送操作,并且,由于该条目被占用,因此将该条目标记为不可用状态。关于利用请求缓存中选定的条目来存储请求相关信息并进行
请求发送操作,详细说明可以参考常规设计,此处不再赘述。
56.在一些示例中,如图2所示,步骤s10还可以进一步包括如下操作。
57.步骤s14:响应于产生请求应答,释放请求缓存中与请求应答对应的条目,并更新信用缓存。
58.例如,在步骤s14中,当接收到请求应答时,可以根据请求应答的信息确定请求缓存中与请求应答对应的条目,该条目中存储有与该请求应答对应的请求的记录信息,由此可以完成该请求的响应,完成本次数据传输。并且,请求缓存中对应的条目被释放,释放的条目可以用于下一次使用,因此需要更新信用缓存。
59.图3为图2中步骤s14的示例性流程图。如图3所示,在一些示例中,步骤s14可以进一步包括如下操作。
60.步骤s141:在请求缓存中查询与请求应答对应的条目;
61.步骤s142:将请求缓存中与请求应答对应的条目标记为可用状态,并将对应的索引存入信用缓存。
62.例如,在步骤s141中,根据请求应答自身携带的信息,在请求缓存中查询与请求应答对应的条目,该条目中存储有与该请求应答对应的请求的记录信息。例如,可以根据请求应答与请求之间的匹配信息来查询对应的条目,从而确定对应的请求的记录信息存储于哪个条目中。例如,该匹配信息可以采用条目地址,或者采用其他类型的信息,本公开的实施例对此不作限制。
63.例如,在步骤s142中,由于该请求对应的请求应答已经收到,本次数据传输完成,因此可以释放占用的条目,也即是,将请求缓存中与请求应答对应的条目标记为可用状态。释放的条目可以用于下一次使用,因此需要将该条目对应的索引存入信用缓存,以便于信用缓存对可用条目进行管理。
64.例如,将请求缓存中与请求应答对应的条目标记为可用状态的操作与将对应的索引存入信用缓存的操作在同一个时钟周期内完成。也即是,在同一个时钟周期内,既将该条目标记为可用状态,也将该条目对应的索引存入信用缓存,从而在同一个时钟周期内完成对该条目的释放以及完成信用缓存的更新,使得信用缓存中存储的索引不会存在延迟,能够实时反映可用条目的情况,从而有效提高系统的性能。当然,本公开的实施例不限于此,为了适配硬件配置和软件配置,也可以将上述两个操作设置在多个时钟周期内完成,只要能够达到所需要的性能要求即可,本公开的实施例对此不作限制。
65.例如,返回至图2,在一些示例中,步骤s10还可以进一步包括如下操作。
66.步骤s15:对信用缓存进行初始化。
67.例如,在步骤s15中,在总线系统的数据通路工作之初,可以首先对信用缓存进行初始化,以便于信用缓存对请求缓存的可用条目进行管理。例如,在一些示例中,步骤s15可以包括:将请求缓存的所有条目对应的索引均存入信用缓存。由此,可以使信用缓存对请求缓存的所有条目实现管理,可以充分利用请求缓存的所有条目,从而提高系统性能。
68.例如,在一些示例中,在信用缓存为先进先出缓存(fifo)的情形下,将请求缓存的所有条目对应的索引均存入信用缓存可以包括:在信用缓存中执行顺序复位操作并将信用缓存的内容复位为请求缓存的所有条目对应的索引。例如,该示例适用的fifo类型为基于触发器的类型(flop-based),也即是,对于flop-based类型的fifo,可以直接顺序复位成对
应条目的索引(例如地址),由此省去fifo填充信用的时间,使得复位完成了就能有大量可用的信用。
69.例如,在另一些示例中,在信用缓存为先进先出缓存(fifo)的情形下,将请求缓存的所有条目对应的索引均存入信用缓存可以包括:在对信用缓存进行复位后,将信用缓存的内容改写为请求缓存的所有条目对应的索引。例如,该示例适用的fifo类型为静态随机存取存储器(static random access memory,sram)类型,也即是,对于sram类型的fifo,需要额外模块在复位释放后,将sram每个单元重改写为条目对应的索引(例如地址)。例如,可以采用顺序扫描的方式,需要耗费与请求缓存的大小相应的时间,例如可以每个周期(cycle)顺序填充一个信用。
70.图4为本公开一些实施例提供的一种处理模块的信用缓存和请求缓存的硬件结构示意图。下面结合图4对本公开实施例提供的缓存管理方法进行示例性说明。
71.如图4所示,请求缓存(log buffer)的每个条目(entry)唯一对应一个有效/无效标志(valid),以表示其是否有效。条目的地址在初始化时被顺序(或者是一次性)压入信用缓存(例如fifo),因此,fifo的内容可以被看成为信用池(credit pool)。
72.只要fifo非空,则该总线系统就可以源源不断地发出新的请求。在新的请求(req)发出的同时,可用先从fifo中取出一个可用的信用(credit),例如取出对应的条目地址,同时,位于旁路(bypass通路)上的请求缓存把请求的一些信息(比如标识号,也即id号等)记录在请求缓存里,以供返回请求应答(rsp)时查询。在登记请求缓存时,需要更新有效/无效标志,也即将valid置1,表示该条目已经被占用,这相当于消耗了信用。
73.当对应的请求应答返回时,要进行释放信用的过程,这个过程与消耗信用相反。首先,要在请求缓存里查到对应的请求在发出时记录的基本信息(例如,可以用id进行查询,id可以采用请求缓存的条目地址)。当在请求缓存里找到对应的请求的信息后,需要进行如下操作来释放信用。例如,需要将对应条目的valid标志置0,以使得下个周期(cycle)该条目可以被新的请求所使用。并且,需要将该条目的索引(例如该条目的地址)重新压入fifo,也即,重新压入信用池。例如,将valid标志置0的步骤和将索引重新压入fifo的步骤可以在同一个时钟周期内完成,从而避免一些标志的非实时更新造成的延迟和不利影响。
74.例如,如图4所示,请求缓存的条目数量(entry数量)不是2的整数次幂。例如,该请求缓存具有3个空的条目,地址分别为addr1、addr3、addr4,该请求缓存具有2个已占用的条目,地址分别为addr2、addr5。基于对fifo的初始化和动态管理,fifo里顺序压入了3个空条目对应的地址,也即fifo中压入了addr1、addr3、addr4,这里,将条目地址作为条目的索引。在发送新的请求时,可以从fifo中取出一个信用消费掉,也即,fifo会pop一个索引,该索引对应的条目作为需要使用的条目。而当请求应答返回时,需要释放信用,除了将对应条目的valid值更新为0之外,还需要将对应的条目地址重新压入fifo,以供后续新的请求消费。例如,fifo的容量(fifo size)等于请求缓存的条目数量(entry size)。
75.例如,如图4所示,在总线系统的数据通路工作之初,可以首先对fifo进行初始化,以便于fifo对请求缓存的可用条目进行管理。例如,可以将请求缓存的所有条目对应的索引均压入fifo。由此,可以使fifo对请求缓存的所有条目实现管理,可以充分利用请求缓存的所有条目,从而提高系统性能。
76.通过上述方式,可以基于同步fifo设计,采用fifo记录空的条目的索引。由此,可
以将通常的多个条目的零标志查找(leading 0或其他查找方式)简化为fifo的读写操作,从而可以有效缩短关键路径逻辑。上述方式提供了一种时序友好的缓存管理设计,有效优化了针对缓存内容的查找操作。
77.图5为本公开一些实施例提供的一种处理模块的硬件行为描述示意图。下面结合图5对本公开实施例提供的缓存管理方法所引起的硬件行为进行示意性说明。
78.如图5所示,初始化信用(credit)的过程(也即初始化信用缓存(例如fifo)的过程),因fifo的实现方式而异。例如,对于flop-based类型的fifo,可以直接先顺序复位成对应条目的地址,由此可以省去fifo填充信用的大量时间,复位完成了就能有大量可用的信用。对于sram类型的fifo,需要额外模块在复位释放后,将sram每个单元重改写为条目对应地址,例如可以采用顺序扫描的方式,需要耗费与请求缓存大小相应的时间,比如每个周期顺序填充一个信用。
79.在完成初始化之后,则可以基于上文描述的方式对信用进行消费或释放。当需要发送新的请求时,则由fifo读取一个地址,也即是,从fifo中消费一个信用。当接收到请求应答时,从请求缓存中释放该条目,并且重新将该条目的地址压入fifo。例如,当消费信用和释放信用同时发生时,消费信用的优先级高于释放信用的优先级,也即是,先处理消费信用的操作,然后再处理释放信用的操作,从而提高整体性能,提高处理及时性。
80.利用本公开实施例提供的缓存管理方法,可以使逻辑设计较为简单,有利于时序收敛。在这种方式下,不必再集中于一个周期来完成请求缓存的内容查找和标志更新工作,而是把时间平摊到若干个fifo读(pop)的时间来,而且每次发请求只需要做一次fifo读,不会因为请求缓存的条目变多而增加额外的周期去完成上述查找更新工作,该查找工作其实主要在初始化阶段来完成。而且,由于只要有一个信用就可以发送请求,因此即使请求缓存较大会伴随长时间的初始化,这也不会延后开始发请求的时间。在这种方式下,请求缓存的条目数量不必限制为2的整数次幂,可以为任意的数量,因此在一些特定应用场景下可以大大节省缓存的面积。
81.需要说明的是,本公开的实施例中,缓存管理方法还可以包括更多或更少的步骤,各个步骤的执行顺序不受限制,这可以根据实际需求而定。
82.本公开的至少一个实施例还提供一种处理模块,该处理模块的逻辑设计较为简单,有利于时序收敛,可以缩短关键路径逻辑,有效减小缓存的面积,提供了一种全新的、时序友好的缓存管理方式。
83.图6为本公开一些实施例提供的一种处理模块的示意框图。如图6所示,在一些实施例中,该处理模块100适用于支持split-transaction的总线系统,也即,适用于outstanding大于或等于2的总线系统。在这样的总线系统中,可以同时发送至少两个请求,而无需等待上一个请求握手成功才能发送下一个请求。
84.例如,处理模块100包括信用缓存101和请求缓存102。信用缓存101例如可以为图4中示出的fifo,请求缓存102例如可以为图4中示出的具有多个条目、用于存储请求相关信息的请求缓存。处理模块100配置为采用信用缓存101对请求缓存102的可用条目进行管理,以实现请求的发送和应答。例如,信用缓存101配置为存储请求缓存102的可用条目的索引。请求缓存102包括多个条目,可用条目是指多个条目中被标记为可用状态的条目。请求缓存102配置为存储总线系统的请求信息。关于信用缓存101和请求缓存102的具体工作方式,可
以参考上文中关于缓存管理方法的描述,此处不再赘述。
85.需要说明的是,本公开的实施例中,信用缓存101和请求缓存102可以为硬件、软件、固件以及它们的任意可行的组合,可以采用任意的架构实现,可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于信用缓存101和请求缓存102的具体实现形式,本公开的实施例对此不作限制。
86.需要说明的是,图6所示的处理模块100的结构只是示例性的,而非限制性的,根据需要,处理模块100还可以包括其他组件和结构,本公开的实施例对此不作限制。处理模块100可以为中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)、通用图形处理器(general-purpose computing on graphics processing unit,gpgpu)等任意类型的具有处理能力的芯片或电路,本公开的实施例对此不作限制。
87.本公开的至少一个实施例还提供一种电子设备,该电子设备中的处理模块的逻辑设计较为简单,有利于时序收敛,可以缩短关键路径逻辑,有效减小缓存的面积,提供了一种全新的、时序友好的缓存管理方式。
88.图7为本公开一些实施例提供的一种电子设备的示意框图。如图7所示,在一些实施例中,该电子设备200包括处理模块210,处理模块210为本公开任一实施例提供的处理模块,例如为图6所示的处理模块100。电子设备200可以为任意的具有计算功能的设备,例如为计算机、服务器、智能手机、平板电脑等,本公开的实施例对此不作限制。
89.图8为本公开一些实施例提供的另一种电子设备的示意框图。如图8所示,该电子设备300包括本公开任一实施例提供的处理模块,该电子设备300例如适于用来实施本公开实施例提供的缓存管理方法。电子设备300可以是终端设备或服务器等。需要注意的是,图8示出的电子设备300仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
90.如图8所示,电子设备300可以包括处理装置(例如中央处理器、图形处理器等)31,其可以根据存储在只读存储器(rom)32中的程序或者从存储装置38加载到随机访问存储器(ram)33中的程序而执行各种适当的动作和处理。例如,处理装置31可以为本公开任一实施例提供的处理模块,例如为图6所示的处理模块100。在ram 33中,还存储有电子设备300操作所需的各种程序和数据。处理装置31、rom 32以及ram 33通过总线34彼此相连。输入/输出(i/o)接口35也连接至总线34。
91.通常,以下装置可以连接至i/o接口35:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置36;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置37;包括例如磁带、硬盘等的存储装置38;以及通信装置39。通信装置39可以允许电子设备300与其他电子设备进行无线或有线通信以交换数据。虽然图8示出了具有各种装置的电子设备300,但应理解的是,并不要求实施或具备所有示出的装置,电子设备300可以替代地实施或具备更多或更少的装置。
92.关于电子设备200/300的详细说明和技术效果,可以参考上文中关于处理模块100及缓存管理方法的描述,此处不再赘述。
93.有以下几点需要说明:
94.(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通
常设计。
95.(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
96.以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
技术特征:
1.一种缓存管理方法,适用于支持拆分事务的总线系统,其中,所述方法包括:采用信用缓存对请求缓存的可用条目进行管理,以实现请求的发送和应答;其中,所述信用缓存配置为存储所述请求缓存的可用条目的索引,所述请求缓存包括多个条目,所述可用条目是指所述多个条目中被标记为可用状态的条目,所述请求缓存配置为存储所述总线系统的请求信息。2.根据权利要求1所述的方法,其中,采用所述信用缓存对所述请求缓存的可用条目进行管理,包括:响应于产生请求发送需求,判断所述信用缓存是否非空;响应于所述信用缓存非空,将所述可用条目之一作为目标条目,并将所述目标条目的索引从所述信用缓存中移除;基于所述目标条目,进行请求发送操作。3.根据权利要求2所述的方法,其中,所述信用缓存包括先进先出缓存,将所述可用条目之一作为所述目标条目,并将所述目标条目的索引从所述信用缓存中移除,包括:基于先进先出的规则从所述信用缓存中读取一个可用条目的索引,将读取的索引所对应的可用条目作为所述目标条目,其中,读取的索引被所述信用缓存移除。4.根据权利要求2所述的方法,其中,将所述可用条目之一作为所述目标条目,并将所述目标条目的索引从所述信用缓存中移除,包括:从所述信用缓存中顺序读取一个可用条目的索引,将读取的索引所对应的可用条目作为所述目标条目,其中,读取的索引被所述信用缓存移除。5.根据权利要求2所述的方法,其中,基于所述目标条目,进行所述请求发送操作,包括:发送当前请求,将所述当前请求的记录信息存储至所述目标条目,并在所述请求缓存中将所述目标条目标记为不可用状态。6.根据权利要求1所述的方法,其中,采用所述信用缓存对所述请求缓存的可用条目进行管理,还包括:响应于产生请求应答,释放所述请求缓存中与所述请求应答对应的条目,并更新所述信用缓存。7.根据权利要求6所述的方法,其中,释放所述请求缓存中与所述请求应答对应的条目,并更新所述信用缓存,包括:在所述请求缓存中查询与所述请求应答对应的条目;将所述请求缓存中与所述请求应答对应的条目标记为可用状态,并将对应的索引存入所述信用缓存。8.根据权利要求7所述的方法,其中,将所述请求缓存中与所述请求应答对应的条目标记为可用状态的操作与将对应的索引存入所述信用缓存的操作在同一个时钟周期内完成。9.根据权利要求1所述的方法,其中,采用所述信用缓存对所述请求缓存的可用条目进行管理,还包括:对所述信用缓存进行初始化。10.根据权利要求9所述的方法,其中,对所述信用缓存进行初始化,包括:
将所述请求缓存的所有条目对应的索引均存入所述信用缓存。11.根据权利要求10所述的方法,其中,所述信用缓存包括先进先出缓存,将所述请求缓存的所有条目对应的索引均存入所述信用缓存,包括:在所述信用缓存中执行顺序复位操作并将所述信用缓存的内容复位为所述请求缓存的所有条目对应的索引。12.根据权利要求10所述的方法,其中,所述信用缓存包括先进先出缓存,将所述请求缓存的所有条目对应的索引均存入所述信用缓存,包括:在对所述信用缓存进行复位后,将所述信用缓存的内容改写为所述请求缓存的所有条目对应的索引。13.根据权利要求1-12任一项所述的方法,其中,所述索引包括所述请求缓存的条目地址。14.根据权利要求1-12任一项所述的方法,其中,所述信用缓存的容量等于所述请求缓存包含的条目的数量。15.根据权利要求1-12任一项所述的方法,其中,所述请求缓存包含的条目的数量不等于2
n
,n为整数且n≥0。16.一种处理模块,适用于支持拆分事务的总线系统,其中,所述处理模块包括信用缓存和请求缓存;所述处理模块配置为:采用所述信用缓存对所述请求缓存的可用条目进行管理,以实现请求的发送和应答;其中,所述信用缓存配置为存储所述请求缓存的可用条目的索引,所述请求缓存包括多个条目,所述可用条目是指所述多个条目中被标记为可用状态的条目,所述请求缓存配置为存储所述总线系统的请求信息。17.一种电子设备,包括权利要求16所述的处理模块。
技术总结
一种缓存管理方法、处理模块及电子设备,该缓存管理方法适用于支持拆分事务的总线系统。该方法包括:采用信用缓存对请求缓存的可用条目进行管理,以实现请求的发送和应答。信用缓存配置为存储请求缓存的可用条目的索引。请求缓存包括多个条目,可用条目是指多个条目中被标记为可用状态的条目。请求缓存配置为存储总线系统的请求信息。该缓存管理方法使得逻辑设计较为简单,有利于时序收敛,可以缩短关键路径逻辑,有效减小缓存的面积。有效减小缓存的面积。有效减小缓存的面积。
技术研发人员:请求不公布姓名
受保护的技术使用者:上海壁仞智能科技有限公司
技术研发日:2023.03.31
技术公布日:2023/7/7
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/