CN115729884A - 芯片系统、存储数据的方法、电子设备及存储介质 - Google Patents
芯片系统、存储数据的方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115729884A CN115729884A CN202211449516.5A CN202211449516A CN115729884A CN 115729884 A CN115729884 A CN 115729884A CN 202211449516 A CN202211449516 A CN 202211449516A CN 115729884 A CN115729884 A CN 115729884A
- Authority
- CN
- China
- Prior art keywords
- bus
- subsystems
- cache
- memory
- data
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000012545 processing Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 239000002699 waste material Substances 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Abstract
本申请提供了一种芯片系统、存储数据的方法、电子设备及存储介质。该芯片系统包括:一个或多个子系统;内存,用于存储所述一个或多个子系统的数据;缓存,通过总线连接在所述一个或多个子系统和所述内存之间,且所述缓存中设置有第一存储空间,所述第一存储空间用于存储总线数据。该总线数据为总线上的待传输数据,或者,需要在总线上存储的数据。通过在缓存设置存储总线数据的第一存储空间,有助于减少总线为这些数据预留的缓冲空间,从而节省了总线在芯片上的面积。
Description
技术领域
本申请实施例涉及芯片系统技术领域,更为具体地,涉及一种芯片系统、存储数据的方法、电子设备及存储介质。
背景技术
在芯片系统中,一个或多个子系统通过总线与缓存及内存相连。总线为子系统提供服务,例如将子系统的访存请求发送到缓存。由于需要服务多个子系统的访存请求,总线可能因拥堵而无法准时服务子系统。
为了不影响子系统流水线的执行,总线会预留固定大小的未完成队列等缓冲区域来存储子系统的访存请求或其他数据。但是,未完成队列会造成总线占用的芯片面积的浪费。
发明内容
本申请实施例提供一种芯片系统、存储数据的方法、电子设备及存储介质。下面对本申请实施例涉及的各个方面进行介绍。
第一方面,提供一种芯片系统,所述芯片系统包括:一个或多个子系统;内存,用于存储所述一个或多个子系统的数据;缓存,通过总线连接在所述一个或多个子系统和所述内存之间,且所述缓存中设置有第一存储空间,所述第一存储空间用于存储总线数据。
第二方面,提供一种存储数据的方法,所述方法应用于芯片系统,所述芯片系统包括:一个或多个子系统;内存,用于存储所述一个或多个子系统的数据;缓存,通过总线连接在所述一个或多个子系统和所述内存之间;所述方法包括:将总线数据存储至所述缓存中的第一存储空间。
第三方面,提供一种电子设备,包括如第一方面所述的芯片系统。
第四方面,提供一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被执行时,能够实现如第二方面所述的方法。
第五方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被执行时,能够实现如第二方面所述的方法。
本申请实施例在芯片系统的缓存上开辟第一存储空间,用于存储需要在总线进行存储的访存请求、地址等总线数据。由此可见,第一存储空间可以代替总线上预留的未完成队列或其他缓冲区域,从而节省了总线预留的缓冲空间消耗的芯片面积。
附图说明
图1所示为相关技术中芯片系统的结构示意图。
图2所示为本申请实施例提供的芯片系统的结构示意图。
图3所示为图2所示芯片系统中一种可能的实现方式的结构示意图。
图4所示为本申请实施例提供的电子设备的结构示意图。
图5所示为本申请实施例提供的存储数据的方法的流程示意图。
图6所示为图5所示方法的一种可能的实现方式的流程示意图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。
芯片系统通常会包括多个子系统以实现不同的功能。在一些实施例中,芯片系统可以采用片上系统(system on chip,SoC)的方式,将多个具有特定功能的集成电路组合在一个芯片上。片上系统中可以包含完整的硬件系统及其承载的嵌入式软件。
子系统可以是实现特定功能的集成电路对应的系统或产品。子系统可以通过集成的处理器或处理单元执行各项指令。处理器例如是中央处理器(central processingunit,CPU)、图形处理器(graphics processing unit,GPU)或者神经网络处理器(neuralnetwork processing unit,NPU)。
在芯片系统中,子系统通过总线与缓存、内存等存储装置进行信息或数据的交互。缓存通常由静态存储器(static random access memory,SRAM)组成。缓存可以通过存储子系统使用较为频繁的部分数据。缓存例如是系统级片上高速存储(system level cache,SLC)。内存可以存储由数据信号表示的指令信息和/或数据信息。内存例如是双倍速率(double data rate,DDR)同步动态随机存储器。
为便于理解,下面以完成子系统发出的访存请求为例,结合图1对芯片系统中各个装置之间的传输进行简单地介绍。图1所示的是相关技术中芯片系统的结构示意图。如图1所示,芯片系统包括三个子系统对应的处理器,分别为CPU110、GPU120和NPU130。芯片系统还包括SLC150和DDR160。
参见图1,CPU110、GPU120、NPU130分别通过总线140和SLC150相连,SLC150通过总线140与DDR160相连。
以CPU110对应的子系统为例,当CPU110发出访存请求后,总线140会为CPU110提供服务。总线140将CPU110对应的访存请求发送到SLC150中。
SLC150在收到CPU110发送的访存请求后,首先会对自身存储的数据进行查找。如果SLC150在自身存储的数据中找到CPU110需要的访存数据,会通过总线140将数据返回CPU110中,从而完成一次CPU110的访存请求。如果SLC150在自身存储的数据中没有找到对应的数据,会通过总线140将访存请求进一步下发到DDR160中。DDR160根据收到的访存请求,进行数据的查找,然后通过总线140将数据返回CPU110中,同样完成一次CPU110的访存请求。
如图1所示,在芯片系统运行时,总线需要服务多个子系统的访存请求。由于服务的子系统数量较多,可能会导致总线的拥堵,无法准时服务子系统。也就是说,当子系统发出访存请求后,总线会按照自身的情况选择是否接收访存请求。如果总线上的访存请求很多,总线会发生堵塞。此时,总线无法再接收子系统发出的访存请求,有可能会造成子系统流水线堵塞,产生停滞等待。
为了不影响子系统流水线的执行工作,总线上会预留了一定的缓冲区域,例如大量的未完成队列(outstanding)。未完成队列作为总线预留的缓冲区域,可以用于暂时存储访存请求。未完成队列可能位于图1所示总线140的不同节点(图中未示出)。例如,未完成队列可以位于总线140与CPU110连接的节点,用于缓存CPU110发出的访存请求。例如,未完成队列可以位于总线140与SLC150连接的节点,可以缓存总线140发送到SLC150的访存请求。
当总线无法再接收子系统发出的访存请求时,会将访存请求暂时收入未完成队列。访存请求进入未完成队列后,会按照顺序进行排队。未完成队列内的访存请求通常按照先入先出的原则,等待总线按序接收。
总线预留的未完成队列的大小是固定的。每个子系统的访存请求的数量不同,对未完成队列的深度需求也不同。总线会针对不同的子系统预留对应的未完成队列。具体而言,总线会对访存请求负载不高的子系统预留较少的未完成队列,为访存请求负载较重的子系统预留较多的未完成队列。进一步地,不同子系统的未完成队列之间会形成物理隔离,每个子系统只能使用自己的未完成队列。
为了满足未完成队列的存储深度,总线需要占用一定大小的芯片面积。由于总线需要服务的子系统数量较多,满足不同子系统的需求会消耗较大的片上面积。有些子系统的访存请求负载较高时,总线还需要预留较大的未完成队列,会造成芯片面积的浪费。
进一步地,由于多个子系统的未完成队列之间需要进行物理隔离,子系统彼此之间无法互相占用对方的未完成队列,也会造成芯片面积的浪费。参见图1中的多个子系统,在某些情况下,CPU110对应的未完成队列可能只有几个访存请求,而GPU120对应的未完成队列可能无法存储所有待处理的访存请求。由于未完成队列无法互相使用,芯片面积对应的存储容量的利用率较低。
综上,总线上预留固定大小的未完成队列不仅使总线占用了较大的芯片面积,而且会造成芯片面积的浪费。
基于此,本申请实施例提出了一种芯片系统。该芯片系统利用缓存开辟存储空间,代替总线上的未完成队列,有效地减少了总线固定预留的未完成队列消耗的片上面积。下面结合图2,对本申请实施例进行详细地描述。
图2为本申请实施例提出的一种芯片系统的结构示意图。如图2所示,芯片系统200包括一个或多个子系统210、总线220、缓存230以及内存240。
芯片系统200中的一个或多个的子系统210、缓存230以及内存240可以都集成在一个芯片上,也可以不在同一个芯片上。
一个或多个子系统210可以是芯片系统200集成的一个或多个实现特定功能的系统。不同的子系统210可以对应不同的处理器或处理单元。处理器例如是前文提到的CPU、NPU或GPU。处理单元例如是可以发出访存请求的处理装置。
内存240可以是芯片系统200中的内存储器或主存储器,也可以是芯片系统200中的外部存储系统。在一些实施例中,内存240也可以称为主存。内存240例如是DDR。
内存240可以存储一个或多个子系统210的数据。在一些实施例中,内存240可以包括与多个子系统210一一对应的多个存储管理单元。在一些实施例中,内存240可以是多个子系统210共享的一个存储管理单元。
子系统210的数据可以是子系统210运行时处理器提供的运算或处理数据,也可以是处理器与外存之间进行信息交换的数据。
缓存230可以是芯片系统200中的片上高速缓存系统,也可以是其中的各级高速缓冲存储器(cache),还可以是其他缓存设备,在此不做限定。在一些实施例中,缓存230可以是缓存系统中的最后一级缓存,也可以是集成在处理器上的一级缓存或者二级缓存。例如,缓存230可以是SoC层级上的系统级片上高速存储。在一些实施例中,缓存230可以是芯片系统200中已有的高速缓存,也可以是新设置的缓存装置。
缓存230可以通过总线220连接在一个或多个子系统210和内存240之间。总线220为芯片系统200中的各种装置提供传输服务。例如,总线220可以将子系统210发出的存储数据的请求发送给缓存230。
在一些实施例中,缓存230可以是为多个子系统210提供共享缓存资源的高速存储器。缓存230可以存储子系统210中的处理器刚用过或者循环使用的一部分数据,以便于处理器直接调用,加快数据取用的速度。作为可能的实现方式,缓存230可以通过控制器对内部的存储空间进行管理。例如,缓存230可以包括与多个子系统210一一对应的多个存储单元。又如,缓存230可以设置一个存储单元来存储多个子系统210的数据。
缓存230可以设置有第一存储空间232。在一些实施例中,缓存230可以开辟一块独立的空间容量作为第一存储空间232。例如,当总线无法接收访存请求、需要未完成队列时,缓存230可以在自身的存储空间中设置一个第一存储空间232,作为总线和子系统的未完成队列进行使用。在一些实施例中,缓存230可以在设计阶段就保留一块空间作为第一存储空间232。
作为一种可能的实现方式,第一存储空间232的空间容量可以是确定大小的。例如,缓存230可以根据前期设定的参数确定第一存储空间232的大小。作为另一可能的实现方式,第一存储空间232的空间容量也可以是根据运行的实际需求确定的。例如,缓存230可以按照不同子系统的实际负载需求开辟相应大小的第一存储空间232。作为一种实现方式,子系统的负载在一定的取值范围内时,缓存230可以将第一存储空间232的大小设定为对应的参数。例如,缓存230可以根据总线的负载情况确定第一存储空间232的空间容量。作为一种实现方式,总线的负载在一定的取值范围内时,第一存储空间232的容量可以是该取值范围对应的大小。
第一存储空间232可以用于存储总线数据。总线数据可以是总线220上的待传输数据,或者,需要在总线220上存储的数据。在一些实施例中,总线数据可以是子系统发出的访问请求。第一存储空间232作为总线的未完成队列使用。例如,总线数据可以是CPU发出的读取某个数据的请求。在一些实施例中,总线数据可以是总线上需要进行存储的数据、地址、页表等。例如,总线数据可以是NPU访问的数据的物理地址。
在一些实施例中,总线数据可以包括一个或多个子系统的访存请求。第一存储空间232可以用于存储一个或多个子系统的访存请求的未完成队列。作为可能的实现方式,当总线发生拥堵、无法及时服务子系统时,子系统发送的访存请求可以优先进入缓存230进行查找。如果缓存230没有找到对应的存储数据,则该访存请求可以进入第一存储空间232的未完成队列中,等待访存内存240。内存240处理该访存请求后,未完成队列存储该访存请求的空间被释放。
作为一种可能的实现方式,第一存储空间232可以包含一个或多个子系统210共享的未完成队列。也就是说,第一存储空间232中的未完成队列可以用于存储多个子系统的访存请求。多个子系统共享未完成队列时,未完成队列的使用较为灵活,有助于解决多个未完成队列无法互相使用造成的面积浪费的问题。
作为另一可能的实现方式,第一存储空间232可以包含一个或多个子系统210各自对应的未完成队列。也就是说,第一存储空间232可以包含与多个子系统一一对应的多个未完成队列。多个未完成队列可以形成一定的物理隔离,从而避免不同子系统的访存请求相互干扰,也可以保证按序列执行有顺序要求的多个访存请求。例如,第一存储空间232可以包含分别用于存储CPU、GPU以及NPU的访存请求的三个未完成队列。
作为又一可能的实现方式,第一存储空间232中的部分未完成队列可以用于多个子系统共享,另一部分未完成队列可以与子系统一一对应。缓存230可以通过控制器实现对第一存储空间232内未完成队列的管理,兼顾灵活性和序列性的要求。
未完成队列的大小可以与缓存230为第一存储空间232预留的空间容量相关。在一些实施例中,未完成队列的大小可以包括未完成队列的深度,也可以包括未完成队列的位宽。作为一种可能的实现方式,未完成队列的大小可以根据第一存储空间232的空间容量确定。例如,第一存储空间232较小时,未完成队列的深度是有限的。作为另一可能的实现方式,第一存储空间232的空间容量也可以根据未完成队列的深度需求来确定。例如,当总线或子系统的负载较高,需要较大的未完成队列时,缓存230可以设置满足负载需求的第一存储空间232。
前文提到,相关技术中子系统发送的访存请求在被处理之前可以暂时存储在总线预留的未完成队列中。也就是说,相关技术中总线会预留一些空间用于存储上述总线数据。由图2可知,缓存230中的第一存储空间232可以用于存储总线数据。因此,第一存储空间232可以代替总线上的预留存储空间,从而可以相应地减少总线在芯片上预留空间占用的芯片面积。
在芯片系统的实际运行中,总线和/或子系统的负载情况是动态变化的,因此对未完成队列的大小需求也是变化的。具体而言,当前满足子系统负载需求的未完成队列,可能在之后的运行中无法满足需求,从而导致总线的拥堵。或者,当前满足子系统负载需求的未完成队列,在之后的运行可能不需要相应的大小,从而导致存储空间的浪费。基于此,本申请实施例可以利用缓存对内部存储空间的灵活管理,动态调整第一存储空间及未完成队列的大小。
在一些实施例中,未完成队列的大小可以基于总线和/或一个或多个子系统的负载变化情况进行动态调整。继续参见图2,缓存230可以根据总线220或多个子系统210的运行情况适应性调整第一存储空间232的大小。
作为一种可能的实现方式,缓存230可以根据所有子系统210的需求动态分配未完成队列的大小。所有子系统的负载情况汇聚到缓存230上,也可以提高总线的调度策略。例如,在当前子系统负载并不多的情况下,缓存230可以减少未完成队列的预留空间。如果当前子系统的负载变高,缓存230可以增加未完成队列的预留空间。又如,如果子系统的负载从第一取值范围变化为第二取值范围时,缓存230可以将第一存储空间232的大小调整为第二取值范围对应的参数,从而确定未完成队列的大小。
作为另一可能的实现方式,缓存230可以根据总线220的负载动态分配未完成队列的大小。例如,在总线负载并不高时,缓存230可以设置较小的未完成队列的预留空间。当总线的负载逐渐增高时,缓存230可以根据总线负载的变化情况动态调整相应的未完成队列的预留空间。
作为又一可能的实现方式,缓存230可以根据总线220和所有子系统210的负载动态分配未完成队列的大小。缓存230可以对比总线和所有子系统的负载关系,通过两者负载关系的变化情况,确定当前未完成队列的大小。例如,如果总线负载不高,且总线可以无需未完成队列就可以服务子系统的需求时,缓存230可以将未完成队列的空间收回。缓存230可以将收回的空间用于自身的数据存储。也就是说,如果未完成队列未被使用,则第一存储空间232用于存储缓存数据。
在一些实施例中,缓存230可以通过收集总线或子系统的运行情况,将所有子系统的负载情况汇聚到系统级片上存储中,从而更加高效地提高总线的调度策略。例如,总线上未完成队列的预留空间明显减少,总线在进行调度时可以相应减少需要考虑的子系统的负载以及各节点缓冲区的缓存情况。
在一些实施例中,缓存230可以通过动态调整未完成队列的大小,使未完成队列在较大的范围内变化。未完成队列大小的灵活调整,不仅提高了存储空间的利用率,而且芯片系统在面对高负载时总线的服务延迟也不会有明显变化。也就是说,通过缓存的动态调整,即使总线堵塞,总线的服务延迟也可以不随着子系统负载的增加而呈线性的升高。
由上文可知,本申请实施例利用缓存(例如SLC)的空间,减少总线上预留的固定未完成队列,可以有效地节省总线的未完成队列所占用的芯片面积。进一步地,缓存可以动态的调度未完成队列分配的深度,更加有效地利用未完成队列的空间。在总线负载不高时,总线无需未完成队列就可以服务于子系统访存请求时,未完成队列的空间可以重新释放,用于存储数据。
下面结合具体例子图3,更加完整地描述本申请实施例。应注意,图2的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限于所例示的具体数值或具体场景。本领域技术人员根据所给出的图2的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。
图3为本申请实施例的一种可能的芯片系统进行简单地介绍。与图1相比,图3所示的芯片系统同样包括CPU310、GPU320、NPU330、SLC350以及DDR360。多个设备之间通过总线340相连。
如图3所示,SLC350包括第一存储空间352。第一存储空间352可以代替图1中总线140在不同节点预留的未完成队列。也就是说,图3中总线340与CPU310、GPU320、NPU330以及SLC350的连接节点上可以不预留空间用作未完成队列,从而有效地节省了总线在芯片上的面积。
SLC350还可以根据总线340和CPU310、GPU320、NPU330的负载情况,动态调整第一存储空间352的大小和未完成队列的深度,使未完成队列的利用更加高效。
第一存储空间352还可以用于存储总线上需要存储的数据、地址及页表等信息。如图3所示,利用片上高速缓存巨大的存储空间,可以减少总线需要进行的调度,使总线提供更加高效的服务。
本申请实施例还提供了一种电子设备,图4是本申请实施例提供的电子设备的结构示意图。如图4所示,电子设备400包括芯片系统410。芯片系统410为前文所述的任意一种芯片系统。
上文结合图1至图4,详细描述了本申请的装置实施例,下面结合图5和图6,详细描述本申请的方法实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面装置实施例。
图5是本申请实施例提供的存储数据的方法的流程示意图。该方法应用于芯片系统。芯片系统包括:一个或多个子系统;内存,用于存储一个或多个子系统的数据;缓存,通过总线连接在一个或多个子系统和所述内存之间。
参见图5,在步骤S510,将总线数据存储至缓存中的第一存储空间。
可选地,总线数据包括一个或多个子系统的访存请求,第一存储空间用于存储一个或多个子系统的访存请求的未完成队列。
可选地,未完成队列的大小基于总线和/或一个或多个子系统的负载变化情况进行动态调整。
可选地,如果未完成队列未被使用,则第一存储空间用于存储缓存数据。
可选地,第一存储空间包含一个或多个子系统共享的未完成队列;或者,第一存储空间包含一个或多个子系统各自对应的未完成队列。
图5所示的方法可以应用于前文所述的任一种芯片系统。图6是图5所示方法的一种可能的实现方式的流程示意图。
参见图6,在步骤S610,子系统发送访存请求。总线会接收子系统的访存请求。
在步骤S620,当总线发生拥堵时,SLC开辟第一存储空间作为未完成队列。总线发生拥堵,无法及时服务子系统,会需要未完成队列。SLC可以按照该子系统的负载需求开辟一块空间为总线和子系统当作未完成队列使用。
在步骤S630,访存请求优先进入SLC进行查找,若没有找到对应的存储数据则访存请求进入未完成队列。访存请求在未完成队列中等待访存外部存储系统。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,当计算机程序代码被执行时,实现前述方法的步骤。
应理解,本申请实施例提及的计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digitalvideo disc,DVD))或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本申请实施例还提供了一种计算机程序产品,包括计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行前述方法的步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。
应理解,本申请实施例中,处理器可以为CPU,该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(applicationspecific integrated circuit,ASIC)、现成可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种芯片系统,其特征在于,包括:
一个或多个子系统;
内存,用于存储所述一个或多个子系统的数据;
缓存,通过总线连接在所述一个或多个子系统和所述内存之间,且所述缓存中设置有第一存储空间,所述第一存储空间用于存储总线数据。
2.根据权利要求1所述的芯片系统,其特征在于,所述总线数据包括所述一个或多个子系统的访存请求,所述第一存储空间用于存储所述一个或多个子系统的访存请求的未完成队列。
3.根据权利要求2所述的芯片系统,其特征在于,所述未完成队列的大小基于所述总线和/或所述一个或多个子系统的负载变化情况进行动态调整。
4.根据权利要求2所述的芯片系统,其特征在于,如果所述未完成队列未被使用,则所述第一存储空间用于存储缓存数据。
5.根据权利要求2所述的芯片系统,其特征在于,所述第一存储空间包含所述一个或多个子系统共享的未完成队列;或者,所述第一存储空间包含所述一个或多个子系统各自对应的未完成队列。
6.一种存储数据的方法,其特征在于,所述方法应用于芯片系统,所述芯片系统包括:
一个或多个子系统;
内存,用于存储所述一个或多个子系统的数据;
缓存,通过总线连接在所述一个或多个子系统和所述内存之间;
所述方法包括:
将总线数据存储至所述缓存中的第一存储空间。
7.根据权利要求6所述的方法,其特征在于,所述总线数据包括所述一个或多个子系统的访存请求,所述第一存储空间用于存储所述一个或多个子系统的访存请求的未完成队列。
8.根据权利要求7所述的方法,其特征在于,所述未完成队列的大小基于所述总线和/或所述一个或多个子系统的负载变化情况进行动态调整。
9.根据权利要求7所述的方法,其特征在于,如果所述未完成队列未被使用,则所述第一存储空间用于存储缓存数据。
10.根据权利要求7所述的方法,其特征在于,所述第一存储空间包含所述一个或多个子系统共享的未完成队列;或者,所述第一存储空间包含所述一个或多个子系统各自对应的未完成队列。
11.一种电子设备,其特征在于,包括如权利要求1-5中任一项所述的芯片系统。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有可执行代码,所述可执行代码用于执行如权利要求6-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211449516.5A CN115729884A (zh) | 2022-11-18 | 2022-11-18 | 芯片系统、存储数据的方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211449516.5A CN115729884A (zh) | 2022-11-18 | 2022-11-18 | 芯片系统、存储数据的方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115729884A true CN115729884A (zh) | 2023-03-03 |
Family
ID=85297362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211449516.5A Pending CN115729884A (zh) | 2022-11-18 | 2022-11-18 | 芯片系统、存储数据的方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115729884A (zh) |
-
2022
- 2022-11-18 CN CN202211449516.5A patent/CN115729884A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210011888A1 (en) | Intelligent layout of composite data structures in tiered storage with persistent memory | |
US9239798B2 (en) | Prefetcher with arbitrary downstream prefetch cancelation | |
JP4960989B2 (ja) | インバリデーショントランザクションのスヌープフィルタからの削除 | |
US7281092B2 (en) | System and method of managing cache hierarchies with adaptive mechanisms | |
US7213087B1 (en) | Mechanism to control the allocation of an N-source shared buffer | |
US8095734B2 (en) | Managing cache line allocations for multiple issue processors | |
US20140189032A1 (en) | Computer system and method of controlling computer system | |
US20080189487A1 (en) | Control of cache transactions | |
US20060041720A1 (en) | Latency-aware replacement system and method for cache memories | |
US8560803B2 (en) | Dynamic cache queue allocation based on destination availability | |
US8886741B2 (en) | Receive queue models to reduce I/O cache consumption | |
US20110320722A1 (en) | Management of multipurpose command queues in a multilevel cache hierarchy | |
US10901887B2 (en) | Buffered freepointer management memory system | |
US8996819B2 (en) | Performance optimization and dynamic resource reservation for guaranteed coherency updates in a multi-level cache hierarchy | |
US11231964B2 (en) | Computing device shared resource lock allocation | |
US6202134B1 (en) | Paging processing system in virtual storage device and paging processing method thereof | |
US10042773B2 (en) | Advance cache allocator | |
US20080276045A1 (en) | Apparatus and Method for Dynamic Cache Management | |
CN113138851B (zh) | 一种数据管理方法、相关装置及系统 | |
CN110035021B (zh) | 针对原子数据访问请求进行的资源分配 | |
CN115729884A (zh) | 芯片系统、存储数据的方法、电子设备及存储介质 | |
US20070101064A1 (en) | Cache controller and method | |
JP2002024007A (ja) | プロセッサシステム | |
CN116962259B (zh) | 一种基于监听-目录两层协议的一致性处理方法及系统 | |
US6959361B2 (en) | Distributed caching mechanism for pending memory operations within a memory controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |