一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

存储器共享的制作方法

2022-04-27 03:48:38 来源:中国专利 TAG:

存储器共享


背景技术:

1.电子设备在制造、通信、运输、保健、商业、社交互动和娱乐中发挥着不可或缺的作用。例如,电子设备为提供基于云的分布式计算功能用于商业和通信的服务器群供电。电子设备也嵌入到从医疗设备到电器和从车辆到工业工具的许多不同类型的现代设备中。个人电子设备支持便携式视频观看和访问智能数字助理。此外,一种多功能电子设备——智能手机——实际上已成为触手可及的必需品。
2.为了提供各种特征和服务,每个电子设备包括集成电路(ic),诸如处理器或无线收发器。ic为电子设备提供智能以启用不同的功能。一方面,设备的集成电路越多,设备的能力就越大。另一方面,增加集成电路增加了电子设备的成本和大小。平衡能力对成本和大小的一种方法是采用片上系统(soc)。soc将不同类型的电路组合到单个ic芯片上,以管理成本和大小。然而,由于包含在单个ic芯片上,soc的大小有限。soc还引入了显著的复杂性,因为在受限区域中提供了多种功能。管理这些大小和复杂性问题对于soc和包含此类芯片的电子设备的设计人员和制造商来说是挑战。


技术实现要素:

3.通常,将处理器与适当的存储器资源相匹配改进处理器的操作。随着处理器本地存储器容量的增加,给定的处理器,如人工智能(ai)加速器,可以以更好的性能执行代码。例如,对于“常开”的自动语音识别(asr),足够大的本地随机存取存储器(ram)可以使ai加速器以更低的延迟和更低的功耗执行asr。用于ai加速器的更大本地存储器还可以提高某些用例——如高分辨率视频帧的机器学习(ml)处理——的每瓦性能。
4.系统级高速缓存(slc)可以向多个其他组件提供高速缓存服务,而不管另一组件是否具有其自己的本地存储器。对于特定用例,更大的slc还可以促进更快的处理和更好的功率分布。例如,如果slc具有足够的容量,则可以在超高清(uhd)视频捕获期间更有效地执行时间噪声降低(tnr),因为可以降低对主存储器的访问次数。因此,从单个处理组件和高速缓存组件的角度来看,希望增加存储器容量以提高性能和能量效率。
5.然而,如果用于这些处理和高速缓存组件的这些分离的本地存储器的大小在所有这些组件上增加,则由所有单独的存储器占用的区域大大增加。结果,增加每个组件的存储器容量与集成电路(ic)芯片的面积限制相冲突,尤其是与可以包含大量组件的片上系统(soc)的面积限制相冲突。换言之,为芯片上的每个组件提供大的本地存储器增加芯片的大小,因此明显增加芯片的成本。因此,一方面,在处理能力和效率性能之间存在矛盾,且另一方面在处理能力和在ic芯片上以具有成本效益的方式提供存储器的能力之间存在矛盾。
6.为了减轻这种矛盾,所描述的实现方式在两个或更多个组件之间共享存储器。例如,可以在处理组件和高速缓存组件——诸如多组件高速缓存控制器——之间共享存储器。多组件高速缓存控制器为系统中的其他组件——如,不同的处理组件——提供高速缓存服务。可以被实现为静态ram(sram)的共享存储器可以作为本地存储器被处理组件访问,并且可以被多组件高速缓存控制器作为其他系统组件使用的高速缓存存储器来访问。为了
提供高速缓存服务,多组件高速缓存控制器可以保存标签信息以监控高速缓存了什么数据并执行高速缓存命中/未命中确定。通过这种方式,共享存储器可以服务于多个组件,以降低专用于提供存储器的ic芯片的总面积。这可以节省成本,同时基本保持多个组件的速度和能效性能。
7.在示例实现方式中,处理组件包括用于本地存储器存储的sram。该sram存储器块位于处理组件中。例如,如果将处理组件实现为ai加速器,则ai加速器可以在执行ml模型时将sram用作暂存存储器。处理组件将至少一个读/写端口暴露给sram,以供多组件高速缓存控制器访问。多组件高速缓存控制器使用sram为其高速缓存客户端高速缓存数据。为了解决波动的处理需求,sram可以选择性地分离成变化大小的存储器分区。例如,在处理组件正在执行相对需要高的操作的同时,分配给处理组件的第一存储器分区可以具有sram的百分之75(75%)的第一容量。响应于操作需求减少,处理组件可以释放至少一部分sram(例如50%的sram)。因此,如果放弃存储器的全部50%被转移,分配给多组件高速缓存控制器的第二存储器分区的第二容量可以从25%增加到75%。因此,当处理组件在使用较少的sram时,多组件高速缓存控制器可以为其高速缓存客户端提供更多存储器。
8.下面描述的方面包括一种用于存储器共享的装置。该装置包括处理组件、多组件高速缓存控制器、逻辑电路和多个组件。处理组件包括计算电路和耦合到计算电路的存储器。多组件高速缓存控制器耦合到存储器。逻辑电路耦合到多组件高速缓存控制器和存储器。逻辑电路被配置为选择性地将存储器分离成多个存储器分区,包括第一存储器分区和第二存储器分区。第一存储器分区被分配给计算电路并且被配置为向计算电路提供存储。第二存储器分区被分配给多组件高速缓存控制器并且被配置为向多个组件提供存储。例如,该装置可以被实现为集成电路,或者该装置可以是包括这种集成电路的另一装置。
9.下面描述的方面包括由装置执行的用于共享存储器的方法。该方法包括通过处理组件的计算电路执行操作。该方法还包括由计算电路访问处理组件的存储器的第一存储器分区以支持操作的执行。该方法另外包括由多组件高速缓存控制器接收高速缓存来自组件的数据的请求。该方法还包括由多组件高速缓存控制器基于请求将数据存储在存储器的第二存储器分区中。该方法还包括调整第一存储器分区的第一容量和第二存储器分区的第二容量。
10.下面描述的方面包括一种用于存储器共享的系统,该系统可以被实现为装置的至少一部分或装置的ic。该系统包括用于通过处理组件的计算电路执行操作的装置。该系统还包括用于由计算电路访问处理组件的存储器的第一存储器分区以支持操作的执行的装置。该系统另外包括用于由多组件高速缓存控制器接收高速缓存来自组件的数据的请求的装置。该系统还包括用于由多组件高速缓存控制器基于请求将数据存储在存储器的第二存储器分区中的装置。该系统还包括用于调整第一存储器分区的第一容量和第二存储器分区的第二容量的装置。
附图说明
11.参考以下附图来描述用于存储器共享的装置和技术。在整个附图中使用相同的数字来引用类似的特征和组件:
12.图1图示了具有集成电路(ic)的示例装置,该集成电路(ic)包括可以共享存储器
以实现如本文所述的存储器共享的多个组件。
13.图1-1图示了包括存储器、多组件高速缓存控制器和多个其他组件的示例集成电路。
14.图2图示了示例电路布置,其中由处理组件和多组件高速缓存控制器使用多个存储器分区共享存储器。
15.图2-1图示了使用不同容量的存储器分区灵活共享存储器的示例方法。
16.图3图示了用于存储器共享的示例分段架构,其中,处理组件包括多个区块并且存储器被分段为多个存储器部分。
17.图3-1图示了图3的分段架构的示例部分,包括区块和相关联的通道逻辑。
18.图3-2图示了用于存储器共享的另一示例分段架构,其中处理组件包括多个区块。
19.图4图示了用于包括多个存储体和多个多路复用器的存储器部分的示例架构。
20.图4-1图示了图4的架构,其具有示例存储器分区方案的覆盖。
21.图4-2图示了控制图4的架构的多个存储体和多个多路复用器以选择性地将存储器部分分离成多个存储器分区的示例方法。
22.图5是图示在处理组件和多组件高速缓存控制器之间共享的存储器的示例电源域架构的框图。
23.图6是图示涉及处理组件、多组件高速缓存控制器和用于调整具有存储器共享的存储器分区容量的逻辑电路的示例过程的序列图。
24.图7图示了用于实现存储器共享的装置的示例方法。
25.图8示出了根据一个或多个所描述的方面的可以实现存储器共享的示例电子设备的各种组件。
具体实施方式
26.概述
27.电子设备对现代社会做出了重要贡献,诸如用于通信、安全和制造的那些。每个电子设备都依赖于具有处理能力的集成电路(ic)来提供一些功能。可以通过减少通常在电子设备内采用的多个ic的总大小或成本来降低电子设备的大小和成本。减少电子设备内多个ic的总大小和成本的一种方式是减少设备内ic的总量。为此,可以增加包括在设备的每个ic上的电路数量,从而减少设备内使用的ic数量。在极端示例中,电子设备的大部分电路或至少电路的可观部分被合并到单个ic上,以节省空间并降低成本。这被称为片上系统(soc)。包括智能助理和一些智能手机的许多较小的电子设备包括soc。
28.soc可以包括多种类型的处理器、不同的存储器、用于各种目的的控制器、模拟和数字部分、时序和电源管理电路以及用于互连各种组件的至少一个交换结构(switching fabric)。处理器的示例包括通用处理器(例如,中央处理单元(cpu)、图形处理器(例如,图形处理单元(gpu))、通信处理器(例如,调制解调器)、人工智能(ai)处理器(例如,神经网络加速器)和数字信号处理器(dsp)等。每个处理器执行计算,该计算使用存储器来存储数据,诸如输入、中间和输出数据。因此,soc可以包括不同的存储器用于不同的组件,包括各种处理组件。
29.在一些架构中,soc包括用于每个相应处理组件的相应专用存储器。例如,gpu可以
包括用于图形数据的存储器,而ai处理器可以包括用于ai数据的另一存储器。有时,诸如在执行密集的图形相关过程时,gpu的存储器的存储容量可能不足以存储所有当前的图形数据。同样,ai处理器的存储器有时可能不足以存储用于ai处理器正在加速的当前任务——诸如语音识别——的所有数据。在这些情况下,单个处理器可能在其专用存储器中没有剩余容量来存储数据,这可以称为溢出数据。为了解决这种情况,soc可以包含系统级高速缓存。系统级高速缓存被设计来存储源自系统中多个组件的溢出数据,其包括不同的处理组件,诸如gpu处理器或ai处理器。
30.即使具有单独的专用存储器和联合系统级高速缓存,soc也可能无法包括足够的存储器来处理复杂或数据密集型任务。soc或其处理部分上的这种存储器短缺导致对主存储器的访问。这些访问降低了处理性能,因为访问主存储器比访问专用存储器或系统级高速缓存慢。存储器短缺可以通过简单地在soc上——诸如在单个组件或系统级高速缓存处——添加更多存储器来解决。在一个示例方法中,ic芯片的设计者可以在每个相应的专用存储器处为每个单独的处理组件包括更多容量。不幸的是,ic芯片上的面积就像城市中的土地——领土是有限的,获得更多的领土是昂贵的。制造更大的ic芯片来为soc提供更大的面积显著增加ic芯片的成本,并且因此增加电子设备的成本。该增加的面积和成本进一步乘以soc上可能需要更多存储器的单个处理组件的数量。
31.作为替代方法,ic芯片设计者可以在系统级高速缓存的存储器中包括更多容量。这使得具有溢出数据的许多不同组件能够使用增加的存储器容量,而无需在每个单独组件的相应专用存储器处提供额外容量。然而,这种基于高速缓存的方法仍然涉及增加系统级高速缓存的大小,并且因此增加ic芯片的成本。此外,增加的容量位于系统级高速缓存,其可能与包括性能关键处理组件的许多单独的组件相对较远。这个距离增加了存储在系统级高速缓存中的溢出数据的访问时间。此外,被采用以访问系统级高速缓存的专用电路,诸如用于将请求的存储器地址与标签信息匹配的电路,也增加了溢出数据的访问时间。因此,虽然增加系统级高速缓冲存储器的大小可以为soc提供额外的存储器容量,但是增加的存储器大小仍然增加了soc的成本。此外,与存储在单个组件的专用存储器中的数据相比,存储在系统级高速缓存存储器中的数据的存储器访问时间更慢。
32.为了解决这些问题,本文描述了在诸如soc的集成电路的两个或更多个组件之间共享存储器的实现方式。共享可以基于当前任务或当前存储器利用率。每个单独的组件都可以访问共享存储器的一部分。为了使能这种共享,存储器被分离成多个存储器分区。多个存储器分区中的每个相应存储器分区被分配给多个组件中的相应组件。在一些情况下,可以基于当前的操作参数调整每个存储器分区的大小或容量。例如,在第一次给定组件可以与具有25%的共享存储器的存储器分区相关联,而在第二次该组件可以与具有50%的共享存储器的存储器分区相关联。以这种方式,分配给单个组件的存储器量可以适应当前的处理需求。所描述的实现方式的适应性可以根据当前使用情况为各个组件提供增加的存储器容量,而无需永久地扩展每个单独组件的专用存储器。对于给定的性能水平,这种灵活性可以减少soc的大小和/或成本。这种适应性还可以提高相对于功耗的性能。
33.在一些实现方式中,系统级高速缓存是与至少一个其他组件共享存储器的组件的示例。在这些实现方式中,系统级高速缓存被分配存储器的存储器分区。然后,系统级高速缓存可以将分配的存储器分区作为高速缓存存储器提供给其他组件,诸如调制解调器或
cpu。为了提供高速缓存存储器服务,系统级高速缓存可以包括用于存储标签位和检查标签以确定高速缓存命中或未命中的电路。因此,该系统可以提供可变大小的高速缓存存储器来满足多个组件的波动需求,而不需要大的专用存储器来全时可用于高速缓存服务。因此,将共享存储器用于系统级高速缓存可以降低存储器支出并节省通用ic芯片资源。
34.在其他实现方式中,组件包括选择性地与其他组件共享的存储器。该组件可以被实现为处理组件,诸如ai加速器引擎。单个组件可以确定该单个组件当前将利用多少存储器容量以及可以共享多少存储器。基于该确定,可以将存储器分区分配给单个组件的计算电路。该存储器分区可以在物理上接近计算电路。附加地或替代地,存储器分区可以被优化以用于由该处理组件执行的特定类型的处理操作,诸如与图形或神经网络操作相关的那些。存储器的另一存储器分区被分配给另一组件。在一些情况下,其他组件可以被实现为系统级高速缓存。因此,执行高带宽存储器访问的处理组件可以利用靠近其计算电路的存储器,而系统可以自适应地为多个组件提供高速缓存服务,而无需采取分离的仅高速缓存的存储器。
35.本文描述了各种替代实现方式。例如,可共享存储器可以被划分为存储器部分,其中每个存储器部分对应于存储器和多组件高速缓存控制器之间的通道。这提供了可以被组合以提供更大带宽的独立逻辑通道。多个存储器部分中的每个相应存储器部分也可以与处理组件的多个计算单元中的相应计算单元相关联。在这种情况下,处理组件可以包括多个区块,其中每个相应的区块具有相应的存储器部分和相应的计算单元。这实现了更高的存储器访问带宽和更高的处理并行度。
36.每个存储器可以被组织成多个存储体,并且每个存储部分可以将多个存储体(bank)实现为用于高速缓存存储器操作的多个连续路(way)。可以使用一个或多个多路复用器将存储体选择性地分配到不同的存储器分区中。存储器共享逻辑电路可以使用多路复用器控制对分配的存储器分区的访问,以增强安全性并为已分配存储器分区的组件建立独占访问。作为进一步的安全预防措施,每个组件可以在放弃存储器分区以供随后分配给另一组件之前将预定值(例如,全零)编程到分配的存储器分区中。此外,可以构建分离的电源域,使得可以独立于应用于共享存储器的电源模式对组件的至少一部分实施休眠模式。本文描述了其他实现方式。
37.以这些方式,可以建立共享存储器以降低包括在诸如soc的系统中的存储器容量的总量,而不明显降低性能。这降低了支持该系统的ic芯片的大小和成本。备选地,ic芯片的大小和成本可以基本不变,而通过实施如本文所述的存储器共享而增加系统的性能。此外,可以通过选择性地将更大的存储器分区分配给能够以对于当前的处理任务的更大的存储器容量更高效地操作的组件来增强相对于功耗的性能。
38.下面参考相关图讨论各种详细程度的示例实现方式。下面的讨论首先阐述了示例操作环境,然后描述了示例硬件、方案和技术。随后参考流程图或图表描述示例方法。
39.存储器共享的示例操作环境
40.图1在100处大体上示出了具有集成电路104(ic 104)的示例装置102,该集成电路104包括可以共享存储器106的多个组件110-1和110-2。在该示例中,装置102被描述为智能手机。然而,装置102可以被实现为任何合适的计算或电子设备。装置102的示例包括移动电子设备、移动通信设备、调制解调器、蜂窝或移动电话、移动站、游戏设备、导航设备、媒体或
娱乐设备(例如,媒体流媒体或游戏控制器)、膝上型计算机、台式计算机、平板电脑、智能电器、车载电子系统、可穿戴计算设备(例如,服装或手表)、物联网(iot)设备、传感器、库存管理设备、机器或设备的电子部分以及服务器计算机或其部分(例如,服务器刀片或机架)等。装置102的图示示例包括平板设备1021、智能电视102-2、台式计算机102-3、服务器计算机102-4、智能手表102-5、智能手机(或文档阅读器)102-6和智能眼镜102-7。
41.在示例实现方式中,装置102包括至少一个集成电路104。集成电路104可以被安装在印刷电路板(pcb)(未示出)上。pcb的示例包括柔性pcb、刚性pcb、单层或多层pcb、表面安装或通孔pcb和它们的组合等等。每个集成电路104可以被实现为通用处理器、片上系统(soc)、面向安全的ic、存储器芯片、通信ic(例如,调制解调器或射频ic)、图形处理器、人工智能(ai)处理器和它们的组合等。如图所示,集成电路104包括至少一个存储器106和多个组件,其包括第一组件110-1和第二组件110-2。如图所示,存储器106、第一组件110-1和第二组件110-2可以一起被集成在单个ic上;或者,组件和存储器可以分布在两个或更多ic上。
42.在示例操作中,多个组件110-1和110-2共享存储器106。如图所示,存储器106被分离成多个存储器分区108-1和108-2。第一存储器分区108-1被分配给第一组件110-1,第二存储器分区108-2被分配给第二组件110-2。因此,第一存储器分区108-1为第一组件110-1提供存储,并且第二存储器分区108-2为第二组件110-2提供存储。如箭头112所示,可以增加或减少每个存储器分区108的大小或容量。例如,可以增加第一存储器分区108-1的容量而减少第二存储器分区108-2的容量。
43.尽管在图1中被明确地描绘并且在上面描述了一个存储器106、两个组件110和两个存储器分区108,但是可以替代地实现每一个的不同数量。例如,集成电路104可以包括五个组件110和两个存储器106,其中一个可以被分离成由多达三个组件110共享的两个或三个存储器分区108。通常,存储器106可以被分离为“x”个存储器分区108,其中,“x”表示2或更大的整数。接下来参考图1-1描述集成电路104的示例架构。
44.图1-1图示了示例集成电路104,其包括至少一个存储器106、至少一个多组件高速缓存控制器114和多个其他组件。集成电路104还包括至少一个处理组件116、至少一个多组件存储器控制器118和至少一个交换结构122。如图所示,集成电路104包括“p”个处理组件116-1、116-2,...,116-p,其中,“p”标识正整数。集成电路104还包括“c”个多组件高速缓存控制器114-1、114-2、
……
、114-c和“c”个多组件存储器控制器118-1、118-2、
……
、118-c,其中,“c”标识正整数。集成电路104还包括三个交换结构122-1、122-2和122-3以及至少一个系统存储器120。虽然在图1-1中描绘并在本文中描述每个组件的特定示例量(例如,一个存储器106和三个交换结构122),可以用替代数量的这种组件(例如,三个或七个存储器106和一个或四个交换结构122)来实现集成电路104。
45.在示例实现方式中,多个多组件高速缓存控制器114-1

114-c的每个相应的多组件高速缓存控制器114耦合到多个多组件存储器控制器118-1

118-c的相应的多组件存储器控制器118并与之相关联。多组件实体也可以称为系统级实体。例如,多组件高速缓存控制器114可以被称为系统级高速缓存控制器114。每个多组件存储器控制器118通过生成和组织存储器请求来提供对系统存储器120的访问。例如,可以用动态随机存取存储器(dram)来实现系统存储器120。替代地或附加地,可以用静态随机存取存储器(sram)、闪存和磁盘
驱动器等来实现系统存储器120。
46.多组件高速缓存控制器114使用至少一个存储器向具有溢出数据的一个或多个组件提供高速缓存服务。多组件高速缓存控制器114可以使用本地和/或专用存储器作为高速缓存存储器,或者可以通过如本文所述的存储器共享来使用另一存储器,诸如存储器106。多个多组件高速缓存控制器114-1

114-c的每个多组件高速缓存控制器114耦合到第一交换结构122-1。第二交换结构122-2和第三交换结构122-3各自耦合到第一交换结构122-1。因此,第二交换结构122-2经由第一交换结构122-1耦合到第三交换结构122-3。每个交换结构122可以被实现为总线、互连、用于地址或数据信息的串行或并行管道以及多条带缓冲器的平行线等等。
47.如图所示,第一处理组件116-1和第二处理组件116-2都耦合到第二交换结构122-2。“第p个”处理组件116-p和存储器106都耦合到第三交换结构122-3。每个处理组件116可以被实现为例如通用处理器(例如,中央处理单元(cpu)、图形处理器(例如,图形处理单元(gpu))、通信处理器(例如,调制解调器)、人工智能(ai)处理器(例如,神经网络加速器)、数字信号处理器(dsp)或控制器。控制器可以包括总线控制器、输入/输出控制器和微控制器等。
48.在示例操作中,至少两个组件共享存储器106。存储器106可以例如用sram来实现。替代地或附加地,存储器106可以用dram来实现。例如,第一处理组件116-1和第二处理组件116-2可以分别使用第一存储器分区108-1和第二存储器分区108-8来共享存储器106。类似地,“第p个”处理组件116-p和第二多组件高速缓存控制器114-2可以共享存储器106。为此,可以将第一存储器分区108-1分配给“第p个”处理组件116-p,并且第二存储器分区108-2可以被分配给第二多组件高速缓存控制器114-2。在这种情况下,“第p个”处理组件116-p可以直接使用第一存储器分区108-1来存储信息。第二多组件高速缓存控制器114-2可以使用第二存储器分区108-2作为高速缓存存储器。第二多组件高速缓存控制器114-2因此可以通过将这些组件的数据或溢出数据存储在存储器106的第二存储器分区108-2中来向一个或多个其他组件——诸如第一和第二处理组件116-1和116-2——提供高速缓存服务。
49.在图1-1中,系统存储器120被示为集成电路104的一部分,其可以被设置在单个ic芯片上。系统存储器120可替代地被设置在分离的ic芯片上,诸如安装在相同pcb上的不同ic芯片上。此外,所示组件中的一个或多个其他组件同样可以设置在分离的ic芯片上。存储器106在图1-1中被描绘为通过两个交换结构耦合到第二多组件高速缓存控制器114-2的分离的存储器组件。然而,存储器106可以设置在集成电路104的其他位置。下面参考图2描述这种其他位置的示例。
50.用于存储器共享的示例方案、技术和硬件
51.图2图示了示例电路布置200,其中存储器106由处理组件116和多组件高速缓存控制器114使用多个存储器分区108-1和108-2共享。如图所示,电路布置200还包括交换结构122、多组件存储器控制器118、逻辑电路202和多个组件110-1

110-n,其中,“n”表示正整数。处理组件116包括存储器106和计算电路206。存储器106可以被分离成第一存储器分区108-1(mp 108-1)和第二存储器分区108-2(mp 108-2)。所描绘的其他示例存储器包括存储器204、存储器208和存储器210。可以根据本文描述的原理来共享存储器204、208或210中的任何一个或多个。
52.通常,除了所描绘的“n”个组件110-1

110-n,术语“组件”可以包括处理组件116、逻辑电路202、多组件高速缓存控制器114、多组件存储器控制器118和存储器等。因此,尽管在图2中没有如此明确地示出,多个组件110-1

110-n可以包括至少一个处理组件116和一个或多个其他组件等。在一些实现方式中,处理组件116包括存储器106和计算电路206。这里,处理组件116可以与具有计算和相关联的存储能力的核心或离散资源有关。由于一个或多个因素(包括这些因素的组合),处理组件116可以包括存储器106和计算电路206。首先,在一些操作环境中,在另一处理组件保持供电的同时,存储器106和计算电路206可以作为处理组件116的一部分一起被加电或断电,即使存储器106和计算电路206处于分离的电源域中,且也可以分离地被加电和断电。
53.其次,存储器106和计算电路206可以被布置在ic芯片的相同区域或地域中,该区域或地域被指定用于处理组件116或对应于处理组件116。第三,存储器106可以比多组件高速缓存控制器114或其他处理组件的计算电路在物理上更靠近给定处理组件116的计算电路206。更小的物理距离可以允许更短的交换结构路径或具有更少缓冲区的交换结构路径,以实现更快的存储器访问。第四,基于存储器106具有专用于使处理组件116的计算电路206能够访问的端口或通道,存储器106可以作为处理组件116的一部分被包括——例如,但是该端口或通道也不允许其他处理组件的其他计算电路访问。因此,以这些示例方式中的一种或多种,处理组件116可以包括存储器106和计算电路206。
54.在示例实现方式中,计算电路206耦合到存储器106。多组件高速缓存控制器114也耦合到存储器106,该耦合可以通过交换结构122进行。逻辑电路202耦合到多组件高速缓存控制器114和存储器106。在图2中,使用在两端以点或实心圆终止的线来描绘选择的示例直接或间接电耦合。逻辑电路202可与处理组件116、多组件高速缓存控制器114共位或与任一者分离定位(如图所示)。此外,逻辑电路202可以分布在两个或更多个位置,包括部分在处理组件116、部分在多组件高速缓存控制器114或部分在其他地方,诸如在另一控制器、交换结构122或另一组件。
55.逻辑电路202可以将存储器106选择性地分离成多个存储器分区108,诸如两个存储器分区108-1和108-2。如本文所用,术语“选择性地分离”通常是指使分配给每个存储器分区108的存储器106的数量或比例变化的能力。换句话说,被分配给不同的组件的存储器分区108的相对容量可调整以适应不同组件的波动需求,而无需为每个组件分配单独的存储器。在图2和2-1中,使用双线表示存储器分配,双线两端以正方形终止。第一存储器分区108-1被分配给计算电路206并向计算电路206提供存储。第二存储器分区108-2被分配给多组件高速缓存控制器114并且向多个组件110-1

110-n或多组件高速缓存控制器114的其他高速缓存服务客户端提供存储。例如,多组件高速缓存控制器114可以向具有第二存储器分区108-2的多个组件110-1

110-n中的至少一部分提供高速缓存服务。因此,多个组件110-1

110-n可以使用由多组件高速缓存控制器114提供的高速缓存服务在存储器106的第二存储器分区108-2中存储信息,诸如溢出数据。
56.同时,处理组件116也可以使用存储器106的一部分用于存储。例如,计算电路206可以将信息存储在存储器106的第一存储器分区108-1中。计算电路206根据至少一个处理机制执行计算。示例处理机制包括通用代码处理、图形处理(例如,呈现3d图像)、ai处理(例如,加速ai算法)和数字信号处理(例如,信号调制或预失真信号)等。关于人工智能处理,一
个例子是神经网络模型的实现。神经网络加速器可以使用第一存储器分区108-1作为例如暂存器来存储中间节点值、权重、偏差和激活值等等。
57.在图2的示例布置中,在两个或更多个组件之间共享的存储器是存储器106。这里,存储器106在物理上接近处理组件116,并且可以与处理组件116相关联,处理组件116包括计算处理组件116的电路206。这种接近降低了信令传输时间并且可以降低缓冲或切换电路的数量,这也减慢了信号传输。因此,计算电路206可以通过使用物理上接近的存储器106来更快地操作。此外,可以定制或调整存储器106以促进计算电路206的特定处理机制的性能,诸如神经网络加速。以这些方式,处理组件116的性能可以基本上不受与用于高速缓存或其他目的的其他组件共享存储器106的影响。
58.尽管在图2中未明确指出,但多组件高速缓存控制器114或处理组件116(或两者)是如多组件110-1

110-n的其他组件的示例。多组件高速缓存控制器114可以高速缓存包括多个组件110-1

110-n中的任何一个的另一组件的数据,而不管给定组件110是否包括其自己的存储器块204。在操作中,多组件高速缓存控制器114从组件110接收一个或多个对于高速缓存数据的请求。为此,多组件高速缓存控制器114将指示的数据存储在存储器106的第二存储器分区108-2中。
59.如图2所示,示例电路布置200除了存储器106之外还包括布置在其他位置的其他存储器。可以在两个或更多个组件之间共享这些存储器中的每一个(例如,存储器块204、208或210)。例如,存储器204与多个组件110-1

110-n中的一个组件110相关联。例如,可以与多个组件110-1

110-n中的另一组件110、与处理组件116或与多组件高速缓存控制器114(包括与处理组件116和多组件高速缓存控制器114)共享存储器204。存储器208是独立组件并且不与任何特定的其他组件相关联。尽管如此,可以在两个或更多个其他组件之间共享存储器208。存储器210与多组件高速缓存控制器114相关联并且可以与至少一个其他组件共享存储器210,诸如与处理组件116或处理组件116和多个组件110-1...110-n中的特定组件110共享存储器210。
60.尽管示例电路布置200被描绘为具有一个处理组件116,但是给定架构可以包括多个处理组件。因此,处理组件116可以实现第一处理组件116-1(图1-1),计算电路206可以实现第一计算电路,并且存储器106可以实现第一存储器。多个组件110-1

110-n可以包括(图1-1的)第二处理组件116-2。第二处理组件116-2可以包括第二计算电路(未明确示出)和耦合到第二计算电路的第二存储器(未明确示出)。用第二处理组件116-2,逻辑电路202也耦合到第二存储器。此外,逻辑电路202可以选择性地将第二存储器分离成附加的存储器分区。附加存储器分区包括第一附加存储器分区和第二附加存储器分区。第一附加存储器分区被分配给第二计算电路并向第二计算电路提供存储。第二附加存储器分区被分配给多组件高速缓存控制器114并且为多个组件中的至少一些组件提供附加存储。因此,多组件高速缓存控制器114可以使用由两个或更多个处理组件共享的存储器向多个组件提供高速缓存服务。或者,第二多组件高速缓存控制器可以使用由第二处理组件共享的存储器向多个组件提供高速缓存服务。也可以实现其他架构。
61.逻辑电路202可以创建和协调将存储器106分离成多个存储器分区108-1和108-2。此外,逻辑电路202可以强制对各个存储器分区进行分离访问。例如,可以允许计算电路206访问第一存储器分区108-1并且拒绝访问第二存储器分区108-2。相反,可以允许多组件高
速缓存控制器114访问第二存储器分区108-2但拒绝访问第一存储器分区108-1。下文进一步描述了存储器共享的这个安全方面。逻辑电路202还可以建立多个存储器分区108-1和108-2的相对大小或容量。下面参考图2-1描述示例容量比例。
62.图2-1在200-1处大体上示出了使用不同大小的存储器分区108来灵活共享存储器106的示例容量比例。如时间轴212所示,在五个不同时间t=1到t=5描绘了不同的容量比例。在每个时间“t”,计算电路206、多组件高速缓存控制器114或计算电路206和多组件高速缓存控制器114两者被分配存储器106的存储器分区108。计算电路206被分配用垂直线图案描绘的第一存储器分区108-1。多组件高速缓存控制器114被分配用虚线图案描绘的第二存储器分区108-2。(例如图2的)逻辑电路202可以仲裁对存储器106的访问。该仲裁可以需要为相关联的组件提供对相应存储器分区108的独占访问。例如,逻辑电路202可以仲裁对存储器106的访问以提供由处理组件116的计算电路206对第一存储器分区108-1的独占访问。逻辑电路202可以进一步提供由多组件高速缓存控制器114代表多个组件110-1

110-n中的一个或多个组件对第二存储器分区108-2的独占访问。
63.在示例实现方式中,在时间t=1,第二存储器分区108-2占据存储器106的全部容量。例如,如果计算电路206处于睡眠状态(例如,电源门控)或否则不可操作,则这可能发生。因此,存储器106的所有存储器存储体可被释放以供多组件高速缓存控制器114使用。在时间t=2,第一存储器分区108-1占据存储器106的25%,并且第二存储器分区108-2占据存储器106的75%。下面描述用于唤醒计算电路206和在两个组件之间转移存储器106的一部分的访问权限的示例过程。在时间t=3,计算电路206正在执行更密集的计算并请求额外的存储空间。因此,第一存储器分区108-1占据存储器106的50%,并且第二存储器分区108-2也占据存储器106的50%。该50-50分割也可以被指定为默认或启动存储器分配场景。
64.在时间t=4,计算电路206已经请求了更多的容量。从时间t=3到时间t=4,计算电路206被分配25%以上的存储器106的容量,并且多组件高速缓存控制器114从该25%被解除分配。然后第一存储器分区108-1对应于存储器106的75%,并且第二存储器分区108-2降低到存储器106的25%。因此,在时间t=4,多组件高速缓存控制器114可以利用四分之一的存储器106来提供高速缓存服务。在时间t=5,计算电路206被分配了存储器106的全部100%容量,因此第一存储器分区108-1可以占用存储器106的所有存储体。这对于密集使用情况(例如,使用ai加速器的自动语音识别(asr))可能是有益的。在一些情况下,整个机器学习模型,或者至少其一层,可能会消耗整个存储器106。在时间t=5,多组件高速缓存控制器114因此不能使用存储器106向其他组件提供高速缓存服务。多组件高速缓存控制器114因此可以相对于多组件存储器控制器118访问(例如,图1-1和2的)系统存储器120以直通模式操作。或者,多组件高速缓存控制器114可能能够使用另一存储器,例如图2的存储器204、208或210来提供高速缓存服务。
65.仅作为示例在图2-1中以特定方式示出五个可调整的存储器分配比例。具体地,分配比例从没有任何容量的第一存储器分区108-1开始,然后以恒定步长单调增加。然而,在操作中,存储器分配比例可以被启动或者可以以不同的方式改变。例如,计算电路206最初可以被分配存储器106的所有容量,或者计算电路206和多组件高速缓存控制器114中的每一个可以被分配50%的存储器106。此外,第一存储器分区108-1可能从25%“跳跃”到100%,而不跨过其他百分比。此外,第二存储器分区108-2可以在时间t=3之后增加到75%
或100%,而不是继续减少(例如,因为第一存储器分区108-1已经开始减少)。不同分配比例之间的百分比步长也可能不同。例如,第一存储器分区108-1可以在从25%增加两个百分比的过程中从存储器106的25%攀升至45%至60%。
66.每个可用的存储器分配分区可以被分配对应的分区标识符(pid),诸如如果有五个潜在分区比例,则为一到五个。t=1到t=5的所示时间指示因此可以替代地表示1、2、3、4和5的分区id。存储器106可以具有任何大小。然而,在一些示例中,存储器106可以保存16兆字节(16mb)的数据。在这种情况下,每个步长可能对应于4mb或总数的25%。在pid=1的情况下,计算电路206被分配0mb用于本地计算,并且多组件高速缓存控制器114被分配16mb用于高速缓存服务。在pid=2的情况下,计算电路206被分配4mb用于本地计算,并且多组件高速缓存控制器114被分配12mb用于高速缓存服务。在pid=3的情况下,计算电路206被分配8mb用于本地计算,并且多组件高速缓存控制器114也被分配8mb用于高速缓存服务。在pid=4的情况下,计算电路206被分配12mb用于本地计算,并且多组件高速缓存控制器114被分配4mb用于高速缓存服务。并且在pid=5的情况下,计算电路206被分配完整的16mb用于本地计算,并且多组件高速缓存控制器114没有被分配来自存储器106的存储器存储体用于高速缓存服务。在一些实现方式中,计算电路206或多组件高速缓存控制器114可以向逻辑电路202提供pid值以请求特定的存储器分配分区。
67.图3图示了用于存储器共享的示例分段架构300,其中,处理组件116包括多个区块302。如图所示,存储器106被分段为多个存储器部分306-1

306-m,并且计算电路206被分段成多个计算单元304-1

304-m,其中,“m”标识正整数。在示例实现方式中,该架构被分段以促进并行处理和并行存储器访问以增加带宽。计算任务可以被划分为相应的任务部分并且使用例如相应的区块302并行执行。因此,处理组件116包括多个区块:第一区块302-1、第二区块302-2、第三区块302-3和第四区块302-m,其中,m=4。尽管这里描绘和描述了四个区块,但是处理组件116可以包括更多或更少的区块,如变量“m”所指示的。处理组件116还包括至少一个控制单元312。控制单元312可以从诸如执行神经网络模型的处理操作创建任务部分。控制单元312还可以将任务部分分配给多个区块302-1

302-m,并协调它们的执行。
68.通常,存储器106和计算电路206各自分布在多个区块302-1

302-m上。存储器106包括第一存储器部分306-1、第二存储器部分306-2、第三存储器部分306-3和第四存储器部分306-m,其中,m=4。因此,存储器106具有分布在多个存储器部分306-1

306-m上的存储容量。计算电路206包括第一计算单元304-1、第二计算单元304-2、第三计算单元304-3和第四计算单元304-m。因此,计算电路206具有分布在多个计算单元304-1

304-m上的处理能力。
69.关于区块302,多个区块3021

302-m中的每个相应区块302包括多个计算单元304-1

304-m中的相应计算单元304。多个区块302-1

302-m中的每个相应区块302还包括多个存储器部分306-1

306-m的相应存储器部分306。例如,第一区块302-1包括第一计算单元304-1和第一存储器部分306-1,第二区块302-2包括第二计算单元304-2和第二存储器部分306-2。每个相应的存储器部分306耦合到给定的相应区块302的相应计算单元304。例如,第一存储器部分306-1耦合到第一计算单元304-1,且第二存储器部分306-2耦合到第二计算单元304-2。
70.如图所示,多组件高速缓存控制器114包括通道逻辑308的多个实例和至少一个控
制单元310。如图所示,多组件高速缓存控制器114包括通道逻辑的“l”个实例:第一通道逻辑308-1、第二通道逻辑308-2、第三通道逻辑308-3和第四通道逻辑308-l,其中,l=4。在一些情况下,通道逻辑308的实例数量“l”与处理组件116的区块302的数量“m”相同。换句话说,通道逻辑308和区块302(包括每个区块302的每个存储器部分306)之间可能存在一一对应关系。
71.多组件高速缓存控制器114可以包括标签以使用存储器106实现高速缓存存储器功能。每个相应的存储器部分306的标签数据可以存储在例如相应的通道逻辑308处。下面参考图3-1描述带有标签数据的通道逻辑308的示例。控制单元310负责执行高速缓存管理操作。高速缓存管理操作的示例包括检查高速缓存命中和未命中、实施替换策略、向系统存储器120(例如,图1-1的)写回被驱逐的脏数据、与其他组件(例如,高速缓存客户端)通信以及与相应的多组件存储器控制器118(例如,图1-1和2的)通信等等。
72.在一些实现方式中,多组件高速缓存控制器114经由如交叉开关314的至少一个交换结构耦合到处理组件116。交叉开关314包括多个缓冲器,包括所示的第一缓冲器b1、第二缓冲器缓冲器b2、第三缓冲器b3和第四缓冲器bm,其中,m=4。交叉开关314还可以包括多个开关,以促进存储器106和多组件高速缓存控制器114之间的数据交换。在操作中,交叉开关314在一一对应场景中使用相应缓冲区b启用相应通道逻辑308和相应存储器部分306之间的通信。
73.然而,交叉开关314可以在超出具有一对一对应的那些之外的一般场景中启用通道逻辑308和存储器106之间的通信。例如,存储器106可以包括“m”个存储器部分3061

306-m,并且多组件高速缓存控制器114可以包括具有“l”个通道的通道逻辑308,其中,“m”不等于“l”。在这种情况下,交叉开关314将通道逻辑308耦合到存储器106。因此,交叉开关314在存储器106的多个存储器部分306-1

306-m和通道逻辑308-1

308-l的多个通道之间提供“mxl”切换。
74.逻辑电路202促进和使能对在计算电路206和多组件高速缓存控制器114之间的存储器106的共享的控制。将参考图3-1、3-2、4、4-1和4-2进一步描述这一点。在示例操作中,逻辑电路202将存储器106分离成多个存储器分区108。(例如,图2和2-1的)第一存储器分区108-1可以分布在多个存储器部分306-1

306-m上,并且第二存储器分区108-2也可以分布在多个存储器部分306-1

306-m上。下面参考图3-2在多个存储器部分306-1

306-m上以及参考图4-1在一个存储器部分306上描述存储器分区108的示例分布。
75.图3-1图示了图3的分段架构的示例部分300-1,包括区块302和相关联的通道逻辑308。通常,处理组件116托管存储器106,如图3所示。在图3-1中,区块302托管存储器106的存储器部分306。存储器部分306可以被实现为随机存取存储器(ram)。ram示例包括相对较快的静态ram(sram)和相对较小且较便宜的动态ram(dram)。例如,在高速缓存存储器环境中,sram可用于实现更高的存储器访问速率。存储器部分306暴露用于通道逻辑308的端口318。因此,存储器106可以暴露正在访问ram的多组件高速缓存控制器114的通道逻辑308的每个通道的端口318。
76.由于存储器分区,存储器部分306在逻辑上分离成支持计算单元304的本地ram 320和耦合通道逻辑308以支持控制单元310的客户端的高速缓存ram 322。多组件高速缓存控制器114的通道逻辑308使用端口318经由交叉开关314(图3的)的缓冲器b访问高速缓存
ram 322以进行读取和写入。控制单元310使用高速缓存标签316向其他组件提供系统级高速缓存服务。高速缓存标签316可以指示当前在高速缓存ram 322的路中存储为高速缓存行的数据地址的高位。逻辑电路202可以基于分别增加或减少存储器分区的容量(例如,高速缓存ram 322的当前大小)而激活或去激活多个高速缓存标签316的一部分。下面从图3-2开始描述存储器存储体和相应的高速缓存路。
77.图3-2图示了用于存储器共享的另一示例分段架构300-2,其中,处理组件116包括多个区块302-1

302-m。均描绘了分配给处理组件116的第一存储器分区108-1和分配给多组件高速缓存控制器114的第二存储器分区108-2。每个存储器分区108被示为分布在多个区块302-1

302-m上,因此分布在多个存储器部分306-1

306-m(如图3所示)上。参考图3-2,仅以示例的方式为某些组件提供了特定值。这里,存储器106包括分布在四个存储器部分306(例如,图3和3-1的)上的16mb,每个存储器部分306具有4mb。每个相应的存储器部分306包括相应的64个存储器存储体。如果没有为本地ram 320分配任何存储器存储体,则64个存储器存储体可以作为高速缓存ram322(图3-1的)的多达64个高速缓存路来操作。
78.在示例实现方式中,处理组件116托管存储器106,并且处理组件116可以将存储器106用作统一存储器(例如,作为用于神经网络环境的权重和激活存储的暂存器)。每个区块302暴露64字节(64b)端口318(图3-1的),多组件高速缓存控制器114的单个通道可以使用该端口318来访问存储器106。在某些情况下,尽管处理组件116托管存储器106,但多组件高速缓存控制器114仍然拥有存储器资源。因此,逻辑电路202可以是多组件高速缓存控制器114的一部分。然而,在其他情况下,处理组件116可以拥有存储器资源。可共享存储器106被组织成使得由处理组件116请求的存储器分区108映射到对应于由多组件高速缓存控制器114实现的高速缓存的连续路的存储体的合集。例如,如果存储器106的总容量为16mb,则用于处理组件116的存储器106的8mb分配映射到64路中的32路。
79.在一些实现方式中,多组件高速缓存控制器114的逻辑电路202建立高速缓存分区表,使得每个存储器分配请求映射到具有连续高速缓存路的集合的高速缓存分区id(pid)。处理组件116可以使用分区id向多组件高速缓存控制器114的逻辑电路202发出存储器分区请求/释放。可以通过软件驱动程序启用/禁用给定分区id的可用性。多组件高速缓存控制器114的逻辑电路202在硬件中执行分区算法以将请求的路分配给处理组件116的pid以用作存储器存储体。多组件高速缓存控制器114还在指示pid准备好维护数据安全之前将数据刷新到主存储器并清零路。可以通过中断和通过状态寄存器更新等将准备好指示提供给处理组件116。
80.一旦处理组件116要停止使用存储器分区,如果要保留任何数据,则处理组件116经由直接存储器访问(dma)将数据传送到主存储器。在清除存储位置以提高安全性之后,处理组件116还通过禁用pid来释放分区。逻辑电路202通过控制存储器106的存储体选择信号来充当共享存储器访问的看门者,这将在下文参考图4到4-2进行描述。逻辑电路202可以位于常开电源域中。例如,逻辑电路202可以是中央电源管理器(cpm)的一部分,或者与中央电源管理器(cpm)共位。逻辑电路202响应于处理组件116的存储器分区(例如,如图所示的第一存储器分区108-1)的大小的改变重新计算存储体选择信号。这些存储体选择信号可以屏蔽来自多组件高速缓存控制器114和处理组件116对在当前存储器分区下各个组件不具有访问权限的那些ram存储体的请求。
81.在一些实现方式中,多组件高速缓存控制器114通过可配置的分区表支持存储器分区方案,该可配置分区表在本文中被称为ram分区表(rpt)。可以按优先级顺序组织rpt。也就是说,“条目1”对应最高优先级的分区,“条目64”对应最低优先级的分区,其中,64是硬件中支持的分区数。rpt可以在分区算法处理中被提供第一优先级。任何未分配的存储体都被视为高速缓存路,并通过路划分算法进行处理。
82.rpt可以包括指示特定存储体是分配给处理组件116还是分配给多组件高速缓存控制器114的ram路向量(rwv)。每个pid可以对应于rwv的不同值。在具有64路的16mb示例中,每个位可以使用16位值共同建立四个路的分配。然而,可以替代地使用不同的位到路粒度映射或分配。此外,可以使用与rwv不同的方案来分配存储体/路。
83.每个存储器分区可以由软件驱动程序启用或禁用。通常,如果请求的容量可用或可以被使得可用,多组件高速缓存控制器114的逻辑电路202肯定地提供完全分配请求。否则,可以完全或部分拒绝分配请求。在一些情况下,多组件高速缓存控制器114避免为存储器分区仅分配存储器存储体或路的一部分。相反,分配给给定组件的最小粒度是可共享存储器的存储器存储体或路,以简化存储器共享架构并提高性能。对于上面描述的存储器容量示例以及在不同存储器分区分配之间的25%步长,最小分配粒度可以是64个存储器存储体/路中的16个。
84.在示例操作中,多组件高速缓存控制器114将分配给计算电路pid的存储体视为处于本地ram模式,并且将任何剩余的存储体视为用作高速缓存ram模式中的路。当从高速缓存ram模式转换到本地ram模式时,多组件高速缓存控制器114的硬件首先清除、无效和归零(ciz)路。多组件高速缓存控制器114还实施屏障读取(br)以确保将已发布的写入提交到ram。相反,当本地ram分区被禁用时,多组件高速缓存控制器114将存储体从本地ram模式转换到高速缓存ram模式。多组件高速缓存控制器114可以在ciz和br操作完成后引发授权本地ram分区的pid中断。
85.图4示出了包括多个存储体402和多个多路复用器404的存储器部分306的示例架构。为了清楚起见,只有一些存储器存储体和多路复用器被明确地用参考数字标识。全部所示多路复用器的子集的每个相应多路复用器404耦合到相应组的存储体402。每个所示组的存储体包括四个存储体402;然而,组可以包括不同数量的存储体402。这里,多路复用器的子集包括16个多路复用器。全部所示多路复用器中的其他多路复用器耦合到多路复用器的子集。这些其他多路复用器被示出在图4的中心,数量为四个,并耦合到缓冲器406。
86.在示例实现方式中,该架构包括64个存储器存储体402和20个多路复用器404。第一存储体402-1、第二存储体402-2、第三存储体402-3和第四存储体402-4分别耦合到多路复用器404的四个端子。16个多路复用器404中的每一个耦合到四个存储体402的相应组。20个图示的多路复用器的四个剩余的多路复用器404耦合在这16个多路复用器404和缓冲器406之间。每个存储体402和数据路径可以是“x”个字节(xb)宽。因此,耦合到四个数据路径的缓冲器406可以是4xb宽。继续上面提供的数字示例(其中,每个区块302(例如,图3的)具有4mb的存储器部分306),对于64kb的存储体大小,每个存储体402是16b宽和4kb深。因此缓冲器406是64b宽(4
×
16b)。然而,存储器部分306、存储体宽度、存储体深度以及数据路径或缓冲器406的宽度都可以大于或小于这些示例值。
87.为了清楚起见,用表示从一个或多个存储体402检索数据的读取操作的单向箭头
来描绘数据路径。然而,所描绘的架构可以双向实现,使得数据被写入存储体402。因此,每个多路复用器404可以是双向的或者可以用至少两个单向多路复用器来实现。类似地,缓冲器406可以是双向的或者可以用至少两个单向缓冲器来实现。
88.在示例操作中,每个存储器部分306可以选择性地分离成两个或更多个存储器分区108,使得给定存储器分区108分布或交错在多个存储器部分306上以增加带宽(例如,如图3-2所示)。在一些情况下,存储器分区的最小粒度是存储体402。通过避免以较小的粒度级别——诸如存储体的行或16b宽度——进行分区,简化了硬件,并通过更快的存储器访问提高了性能。此外,出于安全目的,逻辑电路202(图4中未示出)可以强制执行存储器分区。例如,逻辑电路202可以基于分配的存储器分区来控制经由多路复用器404对存储器存储体402的访问。接下来参考图4-1描述存储器部分306的示例存储器分区,并且下面参考图4-2描述使用多路复用器404的示例控制方案。
89.图4-1示出了用于存储器部分306的图4的示例架构,其覆盖了示例存储器分区方案420。因此,图4-1的架构至少类似于图4的架构。参考图2-1中描绘的跨越五个不同时间并且涉及25%的步长的存储器共享示例来描述示例存储器分区方案420。箭头212表示在点t=1到5具有五个不同事件的经过时间。如右下角的图例所示,每条粗虚线表示示例分配线422。分配线422指示(图4的)存储器部分306的哪个部分(例如,哪一个或多个存储体)被分配给处理组件116的计算电路206并且哪些被分配给多组件高速缓存控制器114。如图4-1中所描绘的,给定分配线422“上方”的存储体被分配给计算电路206,且给定分配线422“下方”的存储体被分配给多组件高速缓存控制器114。
90.在该示例中,且如图2-1所示,计算电路206被分配第一存储器分区108-1,并且多组件高速缓存控制器114被分配第二存储器分区108-2。在时间t=1,第一存储器分区108-1是空的,并且第二存储器分区108-2包括所有存储体。因此,在时间t=1的第一分配线422-1被描绘在64个存储器存储体上方。在时间t=2,第一存储器分区108-1具有25%的存储体,而第二存储器分区108-2包括其他75%的存储体。因此,在时间t=2的第二分配线422-2被描绘在16个存储体的“顶行”下方和在其他48个存储体上方。在时间t=3,第一存储器分区108-1和第二存储器分区108-2都包括50%的存储体。因此,在时间t=3的第三分配线422-3被描绘在顶部32个存储体和底部32个存储体之间。
91.在时间t=4,第一存储器分区108-1具有75%的存储体,而第二存储器分区108-2包括其他25%的存储体。因此,在时间t=4处的第四分配线422-4被描绘为在三排每排16个存储体或48个存储体下方,并且在其余16个存储体上方。换言之,计算电路206可以访问第一存储器分区108-1的48个存储体,并且多组件高速缓存控制器114可以将第二存储器分区108-2的16个存储体用于高速缓存存储。在时间t=5,第一存储器分区108-1包括所示存储器部分306的所有存储体,并且第二存储器分区108-2是空的。因此,在时间t=5的第五分配线422-5被描绘在64个存储体下方。
92.在该示例中,存储体被分箱到具有16存储体块粒度的存储器分区中。然而,可以使用其他粒度,诸如1存储体块、2存储体块、7存储体块、8存储体块和32存储体块等。可以使用每个多路复用器404的控制输入在硬件级别创建和实施分区。换句话说,控制输入可以基于当前存储器分区分配和存储器请求源的组合来确定当前可以访问哪个存储体以进行读取或写入。接下来参考图4-2对此进行描述。
93.图4-2图示了用于控制图4的架构的多个存储体402和多个多路复用器404以选择性地将存储器部分306分离成多个存储器分区208(例如,图3、3-2和4-1的)。多个存储体402-1

402-4耦合到多路复用器404的端子。这里,多路复用器404被实现为4x1双向多路复用器。然而,可以诸如使用多个单向多路复用器(例如,用于读取和写入数据的分离的单向多路复用器)、用于耦合到八个存储体的双向8x1多路复用器、两个2x1多路复用器和它们的组合等等不同地实现多路复用器404。每个多路复用器404包括至少一个控制输入450。图4-2还包括一个或多个寄存器442、一个或多个存储体选择信号444、至少一个存储器分配设置446、至少一个存储器访问请求448和逻辑电路202。
94.在示例实现方式中,如关于第四存储体402-4所指示的,每个存储体402可以包括多个寄存器442-1和442-2。每个寄存器442对应于存储器106的客户端。例如,第一寄存器442-1可以对应于处理组件116,第二寄存器442-2可以对应于多组件高速缓存控制器114。可以通过对应于给定客户端的寄存器442提供给定客户端向每个存储体402的访问。因此,为了启用每个客户端的流水线访问,每个客户端都可以写入分离的寄存器442。
95.逻辑电路202控制对多个存储体402的访问以实施当前存储器分区。因此,逻辑电路202可以仲裁对存储器106(例如,图3-2的)的多个存储体402的访问。这使得处理组件116(图2中的两者)或多组件高速缓存控制器114(包括两者)的计算电路206能够锁定存储器106的相应部分以供独占使用。存储器锁定可由逻辑电路202使用例如至少一个多路复用器404或一个或多个存储体选择信号444来实施。为此,逻辑电路202生成一个或多个存储体选择信号444以使得能够访问耦合到多路复用器404的至少一个存储体402。逻辑电路202可以响应于由计算电路206提供的分配指令产生一个或多个存储体选择信号444,该分配指令建立至少一个存储器分配设置446。电路202通过一个或多个控制输入450向多路复用器404提供一个或多个存储体选择信号444。例如,如果客户端被分配到包括第三和第四存储体402-3和402-4但是除了第一和第二存储体402-1和402-2之外的存储器分区,逻辑电路202驱动控制输入450以允许与第三存储体402-3和第四存储体402-4通信并阻止与第一存储体402-1和第二存储体402-2通信。
96.为了产生存储体选择信号444,逻辑电路202分析存储器分配设置446和存储器访问请求448。存储器访问请求448可以用于读取/检索数据操作或写入/存储数据操作。存储器分配设置446指示向哪个客户端分配存储器的哪一个或多个存储器分区。可以使用例如ram分区表(rpt)、ram路向量(rwv)、分区id(pid)和它们的一些组合等来实现存储器分配设置446。可以附加地或替代地使用至少一个寄存器、使用一个或多个地址范围和使用散列函数等来实现存储器分配设置446。存储体选择信号444和对应的控制输入450的数量可以取决于耦合到多路复用器404的端子的存储体的数量、分区粒度和其组合等等。
97.在示例操作中,逻辑电路202将存储器访问请求448与存储器分配设置446进行比较。存储器访问请求448可以包括存储器地址或请求客户端,或者与存储器地址或请求客户端相关联,包括与两者相关联。如果请求的客户端或存储器地址符合(例如,匹配)存储器分配设置446,则逻辑电路202产生存储体选择信号444以使得能够通过多路复用器404访问目标存储体402。如果没有确定匹配,逻辑电路202阻止访问以防止一个客户端访问另一客户端的数据。例如,逻辑电路202可以检查存储器地址(例如,2位)的最高有效位(msb)以在4个“超级存储体”之间进行仲裁,每个“超级存储体”具有总共64个存储体中的16个。
98.因此,计算电路206对第一存储器分区108-1(例如,图3-2的)的访问和多组件高速缓存控制器114对第二存储器分区108-2的访问是使用至少一个多路复用器404的至少一个控制输入450可控制的。这种方法降低了用于实现存储器共享的硬件数量。以这些方式,响应于来自计算电路206的存储器访问请求448和来自多组件高速缓存控制器114的其他存储器访问请求448,逻辑电路202可以使用多路复用器404来仲裁对多个存储体402-1

402-4的访问。
99.图5是图示在处理组件116和多组件高速缓存控制器114之间共享的存储器106的示例电源域架构500的框图。如图所示,电源域架构500包括至少四个电源域502:第一电源域502-1、第二电源域502-2、第三电源域502-3和常开电源域502-4。然而,电源域架构500可以包括更多或更少的电源域502。例如,存储器106的位阵列可以是与其地址和数据复用逻辑的电源域分离的电源域的一部分,以使在后者经历电源崩溃的同时前者能够处于保留模式。
100.在一些实现方式中,每个电源域502可以分离或独立地置于不同的电源状态,诸如崩溃、睡眠、开启/唤醒、保持和待机等。第一电源域502-1包括处理组件116的计算电路206。第二电源域502-2包括处理组件116的存储器106。通过这种布置,在第二电源域502-2保持被供电的同时,第一电源域502-1可以崩溃。以这种方式,如果计算电路206没有被使用,则可以向计算电路206提供降低的(包括零)功率水平,但是存储器106仍然可以被多组件高速缓存控制器114利用以向一个或多个其他组件提供高速缓存服务。
101.在其他实现方式中,第三电源域502-3包括多组件高速缓存控制器114。常开电源域502-4包括逻辑电路202的至少一部分。第三电源域502-3可以在第二电源域502-2保持被供电的同时崩溃。以这种方式,多组件高速缓存控制器114可以停止被供电,而同时计算电路206仍然可以使用供电的存储器106用于存储,例如暂存器存储器。常开电源域502-4还可以包括电源管理控制器504(pmc 504),其可以控制各种电源域502的电源状态。这里,在第一、第二或第三电力域502-1、502-2或502-3中的任何一个开启或可能被快速唤醒的同时,常开电源域502-4始终开启。然而,常开电源域502-4可以在其他情况下——诸如如果芯片的大部分正在被断电——例如,为了芯片进入低功率待机状态——被关闭。
102.图6是图示涉及处理组件116、多组件高速缓存控制器114和逻辑电路202的示例过程600的序列图。过程600作为存储器共享的一部分调整存储器分区容量。过程600还可以涉及多个组件110-1

110-n(例如,图2的)中的一个或多个。处理组件116可以包括或托管计算电路206和至少一个存储器106(例如,也是图2的)。过程600包括多个操作和消息。在示例过程600开始时,处理组件116的计算电路206处于睡眠状态或处于另一低功率状态,并且多组件高速缓存控制器114被分配100%的存储器106。
103.在操作602,命令处理组件116的计算电路206上电以执行一些任务,诸如自动语音识别(asr)。在这种情况下,计算电路206确定存储器106的一半将用于执行asr。因此,处理组件116向逻辑电路202发送对包含存储器106的存储体402的50%的存储器分区108的请求604。响应于请求604,逻辑电路202将启用指令606发送到多组件高速缓存控制器114,以指令存储器106的“所有者”将存储器容量的一半分配给处理组件116。
104.在操作608,多组件高速缓存控制器114执行分区分配算法以调整至少在处理组件116和多组件高速缓存控制器114之间的存储器分区。在传输所请求存储体的分配之前,多
组件高速缓存控制器114在操作610清除50%的ram以准备存储体。为了清除存储体,多组件高速缓存控制器114根据高速缓存管理协议将数据从存储器106刷新到主存储器,如系统存储器120。在高速缓存数据被刷新之后,多组件高速缓存控制器114还可以将被重新分配的存储体编程为预定值,以准备将它们放弃以供处理组件116使用。例如,多组件高速缓存控制器114可以在每个存储器位置存储零,以清理存储器,且保护高速缓存在其中的数据的隐私和对应高速缓存客户端的安全。
105.在操作610处清除50%的ram之后,多组件高速缓存控制器114向逻辑电路202发送请求的存储器分区已准备好的指示符612。在操作614,逻辑电路202建立一个或多个存储体选择信号以重新配置对存储器106的访问权限。例如,逻辑电路202可以建立使处理组件116能够访问现在分配给它的存储器106的50%的至少一个存储器分配设置446。逻辑电路202向处理组件116发送所请求的存储器分区已准备好使用的指示符616。
106.在操作618,在计算电路206被唤醒之后,计算电路206使用形成分配给处理组件116的存储器分区的存储器106的50%。分配的存储器分区可以用于例如支持asr处理。在该示例中,在经过一定量的时间之后,处理组件116确定它可以用25%的存储器106来执行正在进行的任务。因此,在操作620,处理组件116清除25%的ram。为此,处理组件116可以将要保留的任何数据传输到主存储器,并且可以将正在放弃的ram的25%编程为预定值。处理组件116向逻辑电路202发送消息622,该消息622指示对应于25%的ram的存储体402的释放。响应于消息622,逻辑电路202向多组件高速缓存控制器114发送消息624以禁止将所指示的25%的存储器106分配给处理组件116。
107.基于消息622,存储器106的25%的存储体被释放以供进一步分配,例如返回到多组件高速缓存控制器114以提供高速缓存服务。或者,可以将25%的ram分配给另一个组件110(例如,图2的)。也可以以替代方式实施过程600。可以传输消息,并且可以以不同的顺序(包括重叠的顺序)执行操作。例如,逻辑电路202可以检测到处理组件116正在被唤醒,并导致在处理组件116的唤醒过程期间启动初始或默认存储器分配,以便重叠操作并加速处理。也可以传输或执行其他(例如,更多、更少或不同)消息和操作。例如,多组件高速缓存控制器114可以与客户端组件通信并指令客户端组件处理ram清除(在操作610)以通过从存储器106刷新其自己的高速缓存数据来使分区能够被释放。
108.已经大体描述了用于存储器共享的方案、技术和硬件,本讨论现在转向示例方法。
109.用于存储器共享的示例方法
110.下面参考图7的流程图描述示例方法。这些方法的方面可以以例如硬件(例如,固定逻辑电路或与存储器结合的处理器)、固件、软件或它们的某种组合实施。可以使用图1到6和8中所示的装置或组件中的一个或多个来实现这些过程,这些组件可以进一步被划分和组合等。这些图中的设备和组件一般代表:硬件,诸如电子器件、pcb、封装模块、ic芯片或电路;固件;软件;或其组合。因此,这些图说明了能够实现所描述的方法的许多可能的系统或装置中的一些。
111.对于这些流程图,示出和/或描述操作的顺序不旨在被解释为限制。所描述的方法操作的任何数量或组合可以以任何顺序组合以实现给定方法或替代方法。操作也可以被省略或添加到所描述的方法中。此外,所描述的操作可以以完全或部分重叠的方式实现。
112.图7以流程图700图示了用于装置以实现存储器共享的示例方法。流程图700包括
五个块702-710。在框702,由处理组件的计算电路执行操作。例如,处理组件116的计算电路206可以执行操作。该操作根据处理组件116的能力可以是任何类型的处理操作。例如,计算电路206可以实现ml模型以处理来自视频的图像。
113.在框704,计算电路访问处理组件的存储器的第一存储器分区以支持操作的执行。例如,计算电路206可以访问处理组件116的存储器106的第一存储器分区108-1以支持操作的性能(例如,通过读取和/或写入第一存储器分区108-1)。在一些情况下,计算电路206可以通过在计算ml模型图的同时在与第一存储器分区108-1相对应的存储体402中存储权重和偏差来实现至少部分位于第一存储器分区108-1中的ml模型。存储的数据可以跨多个存储器部分306写入,第一存储器分区108-1分布在多个存储器部分306上。
114.在框706,多组件高速缓存控制器接收来自组件的对于高速缓存数据的请求。例如,多组件高速缓存控制器114可以从组件110接收对于高速缓存数据的请求。例如,cpu的处理核心可以将溢出其专用高速缓存的数据发送到多组件高速缓存控制器114用于高速缓存在系统级高速缓存(slc)上。
115.在框708,由多组件高速缓存控制器基于请求将数据存储在存储器的第二存储器分区中。例如,多组件高速缓存控制器114可以基于来自组件的请求将数据存储在存储器106的第二存储器分区108-2中。因此,多组件高速缓存控制器114可以将可高速缓存数据加载到对应于存储器106的第二存储器分区108-2的路中。多组件高速缓存控制器114还可以用高速缓存的数据的适当的地址位对相关联的高速缓存标签进行编程。
116.在框710,调整第一存储器分区的第一容量和第二存储器分区的第二容量。例如,逻辑电路202可以调整第一存储器分区108-1的第一容量和第二存储器分区108-2的第二容量。为此,逻辑电路202可以促进多组件高速缓存控制器114和处理组件116之间的协作,使得当一个组件放弃存储器106的一个或多个存储体并因此具有较低容量的存储器分区时,另一组件可以获得一个或多个存储体以因此具有更高容量的存储器分区。
117.示例电子设备
118.图8示出了根据一个或多个所描述的方面的可以实现存储器共享的示例电子设备800的各种组件。电子设备800可以被实现为固定设备、移动设备、独立设备或嵌入设备中的任何一种或其组合;以下述任何形式:消费者、计算机、便携式、用户、服务器、通信、电话、导航、游戏、音频、相机、消息传递、媒体播放和/或其他类型的电子设备800,诸如在图1中描述为装置102的智能手机。一个或多个所示组件可以实现为分立组件或电子设备800的至少一个集成电路上的集成组件。
119.电子设备800可以包括一个或多个通信收发器802,其实现诸如接收的数据、发送的数据或上面标识的其他信息的设备数据804的有线和/或无线通信。示例通信收发器802包括近场通信(nfc)收发器、符合各种ieee 802.15(bluetooth
tm
)标准的无线个域网(pan)(wpan)无线电装置、符合各种ieee 802.11(wifi
tm
)标准的任何一种的无线局域网(lan)(wlan)无线电装置、用于蜂窝电话的无线广域网(wan)(wwan)无线电装置(例如,符合3gpp的无线电装置)、符合各种ieee 802.16(wimax
tm
)标准的无线城域网(man)(wman)无线电装置、符合红外数据协会(irda)协议的红外(ir)收发器和有线局域网(lan)(wlan)以太网收发器。
120.电子设备800还可以包括一个或多个数据输入端口806,经由该端口可以接收任何
类型的数据、媒体内容和/或其他输入,诸如用户可选择的输入、消息、应用程序、音乐、电视内容、录制的视频内容以及从任何内容和/或包括诸如麦克风或相机的传感器的数据源接收的任何其他类型的音频、视频和/或图像数据。数据输入端口806可以包括usb端口、同轴电缆端口、用于光纤互连或布线的光纤端口以及用于闪存、dvd和cd等的其他串行或并行连接器(包括内部连接器)。这些数据输入端口806可用于将电子设备耦合到组件、外围设备或附件,诸如键盘、麦克风、相机或其他传感器。
121.该示例的电子设备800包括至少一个处理器808(例如,应用处理器、微处理器、数字信号处理器(dsp)和控制器等中的任何一个或多个),其可以包括组合处理器和存储器系统(例如,实现为soc的一部分),其处理(例如,执行)计算机可执行指令以控制设备的操作。处理器808可以实现为应用处理器、嵌入式控制器、微控制器、安全处理器和人工智能(ai)加速器等。通常,处理器或处理系统可以至少部分地以硬件实现,其可以包括集成电路或片上系统、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld)以及硅和/或其他材料的其他实现的组件。
122.替代地或附加地,电子设备800可以用任何一个电子电路或电子电路的组合来实现,该电子电路可以包括软件、硬件、固件或结合处理和控制电路来实现的固定逻辑电路,这些处理和控制电路通常是以810指示(作为电子电路810)。该电子电路810可以实现可执行或基于硬件的模块(图8中未示出),诸如通过存储在计算机可读介质上的处理/计算机可执行指令以及通过逻辑电路和/或硬件(例如,诸如fpga)等。
123.尽管未示出,但电子设备800可以包括系统总线、互连、交叉开关、数据传输系统或耦合设备内的各种组件的其他交换结构。系统总线或互连可以包括不同总线结构中的任何一种或组合,诸如存储器总线或存储器控制器、外围总线、通用串行总线和/或利用多种总线架构中的任何一种的处理器或本地总线。
124.电子设备800还包括一个或多个实现数据存储的存储器设备812,其示例包括随机存取存储器(ram)、非易失性存储器(例如,只读存储器(rom)、闪存、eprom、和eeprom)以及盘存储设备。因此,存储器设备812可以分布在系统的不同逻辑存储级上以及不同物理组件处。存储器设备812提供数据存储机制以存储设备数据804、其他类型的代码和/或数据以及各种设备应用820(例如,软件应用或程序)。例如,操作系统814可以作为软件指令被保存在存储器设备812内并且由处理器808执行。
125.在一些实现方式中,电子设备800还包括音频和/或视频处理系统816,其处理音频数据和/或将音频和视频数据传递到音频系统818和/或显示系统822(例如,视频缓冲区或智能手机或相机的屏幕)。音频系统818和/或显示系统822可以包括处理、显示和/或否则呈现音频、视频、显示和/或图像数据的任何设备。显示数据和音频信号可以通过rf(射频)链路、s视频链路、hdmi(高清多媒体接口)、复合视频链路、分量视频链路、dvi(数字视频接口)、模拟音频连接、视频总线或其他类似的通信链路(例如媒体数据端口824)传送到音频组件和/或显示组件。在一些实现中,音频系统818和/或显示系统822是电子设备800的外部或分离组件。或者,显示系统822例如可以是示例电子设备800的集成组件,诸如集成触摸界面的一部分。
126.图8的电子设备800是图1的设备102的示例实现方式。因此,电子设备800可以包括逻辑电路202、多组件高速缓存控制器114、处理组件116、计算电路206或存储器106。此外,
所示组件中的一个或多个可以集成在同一ic芯片——如soc——上或至少单个pcb上。如图所示,处理器808可以是(例如,图2的)组件110或处理组件116的示例。逻辑电路202或多组件高速缓存控制器114可以实现为电子电路840的一部分。存储器106以及图2中描绘的其他存储器可以是存储器设备812的一部分。因此,如本文所述的存储器共享原理可以由图8的电子设备800实施或结合电子设备800实施。
127.其他示例
128.在下文中,描述了一些示例。
129.示例1:一种集成电路,包括:多个组件,所述多个组件包括一个或多个组件和一个处理组件,所述处理组件包括:计算电路;以及,耦合到所述计算电路的存储器;耦合到所述存储器的多组件高速缓存控制器;以及,耦合到所述多组件高速缓存控制器和所述存储器的逻辑电路,所述逻辑电路被配置为选择性地将所述存储器分离成多个存储器分区,所述多个存储器分区包括:第一存储器分区,所述第一存储器分区被分配给所述计算电路并被配置为向所述计算电路提供存储;以及,第二存储器分区,所述第二存储器分区被分配给所述多组件高速缓存控制器并被配置为向所述一个或多个组件提供存储。
130.示例2:示例1的集成电路,其中,所述逻辑电路被配置为响应于来自所述处理组件的一个或多个请求,选择性地将所述存储器分离成所述多个存储器分区,使得:在第一时间将所述存储器的一半分离到所述第一存储器分区,再将所述存储器的一半分离到所述第二存储器分区;在第二时间将所述存储器的一半以上分离到所述第一存储器分区,将所述存储器的不到一半分离到所述第二存储器分区;以及,在第三时间将所述存储器的不到一半分离到所述第一存储器分区中并且将所述存储器的一半以上分离到所述第二存储器分区中。
131.示例3:示例1或示例2的集成电路,其中:所述存储器包括被化分为多个存储体的静态随机存取存储器(sram);所述多组件高速缓存控制器包括与所述多个存储体中的每个存储体相关联的多个高速缓存标签;作为所述第二存储器分区的一部分的所述多个存储体中的每个存储体对应于与所述多组件高速缓存控制器相关联的高速缓存的多个路的路;以及,所述逻辑电路被配置为分别基于所述第二存储器分区的容量增加或减少来激活或去激活所述多个高速缓存标签的一部分。
132.示例4:前述示例中任一项的集成电路,其中:所述处理组件包括第一处理组件,所述计算电路包括第一计算电路,且所述存储器包括第一存储器;所述多个组件包括第二处理组件,所述第二处理组件包括:第二计算电路;以及,第二存储器,耦合到所述第二计算电路;以及,所述逻辑电路被耦合到所述第二存储器,所述逻辑电路被配置为选择性地将所述第二存储器分离成附加存储器分区,所述附加存储器分区包括:第一附加存储器分区,所述第一附加存储器分区分配给所述第二计算电路并被配置为向所述第二计算电路提供存储;以及,第二附加存储器分区,所述第二附加存储器分区分配给所述多组件高速缓存控制器并被配置为向所述一个或多个组件中的至少一些组件提供附加存储。
133.示例5:示例4的集成电路,其中,所述多组件高速缓存控制器被配置为使用所述第一存储器的所述第二存储器分区和所述第二存储器的所述第二附加存储器分区向所述一个或多个组件中的至少一些组件提供高速缓存服务。
134.示例6:前述示例中任一项的集成电路,其中:所述多个组件包括存储器块;所述多
组件高速缓存控制器被耦合到所述存储器块;以及,所述多组件高速缓存控制器被配置为使用所述存储器的所述第二存储器分区和所述存储器块的至少一部分向所述一个或多个组件中的至少一些组件提供高速缓存服务。
135.示例7:前述示例中任一项的集成电路,还包括:第一电源域,所述第一电源域包括所述处理组件的所述计算电路;以及,第二电源域,所述第二电源域包括所述处理组件的所述存储器,其中,在所述第二电源域保持被供电的同时,所述第一电源域能够崩溃。
136.示例8:示例7的集成电路,还包括:常开电源域,所述常开电源域包括电源管理控制器和所述逻辑电路的至少一部分;以及,第三电源域,所述第三电源域包括所述多组件高速缓存控制器,其中,在所述第二电源域保持被供电的同时,所述第三电源域能够崩溃。
137.示例9:前述示例中的任一项的集成电路,其中,所述处理组件被配置为在放弃所述第一存储器分区以供所述多组件高速缓存控制器使用之前将所述第一存储器分区编程为预定值。
138.示例10:示例9的集成电路,其中,所述多组件高速缓存控制器被配置为在放弃所述第二存储器分区以由所述处理组件使用之前将所述第二存储器分区编程为另一个预定值。
139.示例11:前述示例中任一项的集成电路,其中:所述处理组件的所述计算电路包括多个计算单元;以及,所述处理组件的所述存储器包括多个存储器部分,所述多个存储器部分的每个相应的存储器部分被耦合到所述多个计算单元的相应计算单元。
140.示例12:示例11的集成电路,其中:所述第一存储器分区跨所述多个存储器部分分布;以及,所述第二存储器分区跨所述多个存储器部分分布。
141.示例13:示例11或示例12的集成电路,其中:所述多个存储器部分包括“m”个存储器部分;所述多组件高速缓存控制器包括具有多个通道的通道逻辑,所述多个通道包括“l”个通道;以及,所述集成电路还包括将所述通道逻辑耦合到所述存储器的交叉开关,所述交叉开关被配置为在所述存储器的所述多个存储器部分和所述通道逻辑的所述多个通道之间提供“mxl”交换。
142.示例14:前述示例中的任一项的集成电路,其中,所述存储器包括:多个存储体,所述多个存储体被配置为存储数据;以及,至少一个多路复用器,所述至少一个多路复用器耦合到所述多个存储体的至少一部分,所述至少一个多路复用器包括至少一个控制输入,其中,能够使用所述至少一个多路复用器的所述至少一个控制输入来控制所述计算电路对所述第一存储器分区的访问和所述多组件高速缓存控制器对所述第二存储器分区的访问。
143.示例15:根据前述示例中任一项所述的集成电路,其中:所述存储器包括:多个存储体,所述多个存储体基于所述第一存储器分区被分配给所述计算电路并且所述第二存储器分区被分配给所述多组件高速缓存控制器,分布在所述第一存储器分区和所述第二存储器分区之间;以及,多个多路复用器,所述多个多路复用器被耦合所述多个存储体,所述多个多路复用器被配置为控制对所述多个存储体的访问;以及,所述逻辑电路被配置为响应于来自所述计算电路的存储器访问请求和来自所述多组件高速缓存控制器的其他存储器访问请求,使用所述多个多路复用器来仲裁对所述多个存储体的访问。
144.示例16:一种用于共享存储器的方法,所述方法包括:由处理组件的计算电路执行操作;通过所述计算电路访问所述处理组件的存储器的第一存储器分区以支持操作的执
行;所述多组件高速缓存控制器接收来自组件的高速缓存数据的请求;所述多组件高速缓存控制器根据所述请求将所述数据存储在所述存储器的第二存储器分区中;以及,调整所述第一存储器分区的第一容量和所述第二存储器分区的第二容量。
145.示例17:示例16的方法,还包括:确定对所述计算电路加电以执行所述操作;并且响应于所述确定,唤醒所述计算电路用于所述操作;在所述唤醒的至少一部分期间,将所高速缓存的数据从对应于所述第一存储器分区的一个或多个存储体中清除;以及,所述多组件高速缓存控制器在所述高速缓存数据被刷新后,放弃与所述第一存储器分区对应的所述一个或多个存储体。
146.示例18:示例17的方法,还包括:由所述多组件高速缓存控制器将对应于所述第一存储器分区的所述一个或多个存储体在所述放弃之前编程为具有预定值。
147.示例19:根据示例16至18中任一项所述的方法,其中,所述调整包括:通过从所述处理组件解除分配所述存储器的多个存储体来减少所述第一存储器分区的所述第一容量;通过向所述多组件高速缓存控制器分配所述存储器的所述多个存储体来增加所述第二存储器分区的所述第二容量;以及,为所述存储器的所述多个存储体激活多个高速缓存标签,使得所述多个存储体中的每个相应存储体包括用于使用所述第二存储器分区来存储可高速缓存数据的高速缓存的多个路的相应路。
148.示例20:示例16至19中任一项的方法,还包括:响应于由所述计算电路或所述多组件高速缓存控制器提供的存储器访问请求,生成一个或多个存储体选择信号;以及,将所述一个或多个存储体选择信号耦合到至少一个多路复用器,以实现对存储器的多个存储体中的一个或多个存储体的访问。
149.示例21:一种包括指令的计算机程序产品,当由一个或多个处理器执行时,所述指令使所述一个或多个处理器执行示例16至20中任一项的方法。
150.示例22:示例1至15中的任一项所述的集成电路,其中,所述逻辑电路被配置为仲裁对所述存储器的访问以:提供所述处理组件的所述计算电路对所述第一存储器分区的独占访问;以及,提供所述多组件高速缓存控制器对所述第二存储器分区的独占访问。
151.示例23:一种包括示例1至15或22中任一项的所述集成电路的移动电子设备。
152.除非上下文另有规定,本文中使用“或”一词可被视为使用“包含性或”或允许包含或应用由“或”一词链接的一个或多个项目的术语(例如,短语“a或b”可以解释为只允许“a”、只允许“b”或同时允许“a”和“b”)。此外,如本文所用,指示项目列表中的“至少一个”的短语是指那些项目的任何组合,包括单个成员。例如,“a、b或c中的至少一个”可以涵盖a、b、c、a-b、a-c、b-c和a-b-c,以及具有多个相同元素的任何组合(例如,a-a、a-a-a、a-a-b、a-a-c、a-b-b、a-c-c、b-b、b-b-b、b-b-c、c-c和c-c-c或a、b和c的任何其他顺序)。此外,附图表示的项目和本文讨论的术语可以指示一个或多个项目或术语,因此可以互换地引用本书面描述中的项目和术语的单数或复数形式。尽管已经以特定于某些特征和/或方法的语言描述了用于存储器共享的实现,但所附权利要求的主题不一定限于所描述的特定特征或方法。相反,特定特征和方法被公开为用于存储器共享的示例实现。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献