CN111164580B - 用于缓存一致性的可重构的缓存架构及方法 - Google Patents
用于缓存一致性的可重构的缓存架构及方法 Download PDFInfo
- Publication number
- CN111164580B CN111164580B CN201880063982.5A CN201880063982A CN111164580B CN 111164580 B CN111164580 B CN 111164580B CN 201880063982 A CN201880063982 A CN 201880063982A CN 111164580 B CN111164580 B CN 111164580B
- Authority
- CN
- China
- Prior art keywords
- cache
- memory
- reconfigurable
- memory access
- access command
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000008569 process Effects 0.000 claims description 23
- 230000006870 function Effects 0.000 claims description 18
- 238000004378 air conditioning Methods 0.000 claims description 15
- 238000000638 solvent extraction Methods 0.000 claims description 7
- 238000005192 partition Methods 0.000 claims description 5
- 230000002093 peripheral effect Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种用于在一可重构的缓存架构中的缓存一致性的方法。所述方法包括:接收一存储器存取命令,其中所述存储器存取命令包括一存储器的至少一地址,以便进行存取;基于所述存储器存取命令来确定至少一存取参数;及部分基于所述至少一存取参数及所述地址来确定一目标缓存箱,所述目标缓存箱用于服务所述存储器存取命令。
Description
相关申请的交叉引用
本申请主张2017年8月3号提交的美国临时申请第62/540,854号的权益,其内容通过引用并入本文中。
技术领域
本公开通常有关于多个存储器架构,更具体地,是有关于多个被嵌入的计算架构及多个可重构的计算架构。
背景技术
在具有用于各个处理器的一单独的缓存存储器的一共享的存储器多核心处理器中,可具有许多共享数据的副本:在主要存储器中的一副本,及在每个处理器的一本地缓存中的一副本,所述处理器请求所述数据的一副本。当所述多个数据副本的其中一个被改变时,其他的副本必须反映此改变。
缓存一致性为需要多个本地缓存的共享资源数据的均匀性。当在一系统中的多个客户端(例如,多个处理器核心)维持一共用的存储器资源的多个本地缓存时,不一致的数据可能会产生多个问题,例如,所述多个本地缓存具有一单一地址位置的不同数值。
图1显示出用于实施缓存一致性的一示例性常规架构100。每个处理器核心110-1至110-M(为了多个简化目的,下文个别称为一处理器核心110,并统称为多个处理器核心110)与一对应的本地缓存120-1至120-M(为了多个简化目的,下文个别称为一本地缓存120,并统称为多个本地缓存120)有关。所有的核心处理器110及它们对应的本地缓存120均存取了一共享的存储器130。
由于所述存储器130是通过所述多个处理器核心110(及它们各自的本地缓存120)来被共享,因此在存取所述共享的存储器130时,为了加速数据的存取,一处理器核心(例如所述核心110-1)通常需要将一数据块从所述共享的存储器130复制到其本身的缓存(例如所述缓存120-1)。当多个处理器核心110存取所述共享的存储器130时,在所有的这种处理器核心110的所述多个本地缓存120中存在有所述共享的存储器130中的所述数据块的一副本。为了维持所述多个副本的一致性,需要一缓存一致性机构(CCM)来管理数据共享。
具体地,当在一共享的数据块或所述共享的数据块的一副本上进行一写入(或存储)运作时,一写入无效的运作被发送至存储有所述共享的数据块的一副本的一处理器核心110,以避免一数据不一致的问题。为了维持缓存一致性,所述机构125记录一数据块(或一数据块间隔)的一缓存状态。所述数据块(或所述数据块间隔)的所述缓存状态可包括所述数据块(或所述数据块间隔)的一存取类型或一共享者。
在多个常规架构中所利用的所述缓存一致性机构125以一管线的方式来运作。如此一来,很大部分的处理时间花费在将数据从所述存储器130的一区域移动至所述(多个)本地缓存120,以及从一本地缓存120移动至另一个本地缓存。另外,图1所显示的缓存的所述常规架构本质上为静态的,因此,由于所述静态的管线运作无法绝对符合每个用例,因此会发生某些效率低下的情况。
通过使用一可重构的缓存架构也可解决一共享的存储器资源的限制。通常,这种架构在硬件级别上支持动态的缓存划分。一重构的缓存架构通程被设计用以允许多个核心处理器动态地分配缓存资源,同时保证在多个即时任务之间的严格的缓存隔离。
多个可重构的缓存架构的主要目标在于通过使用直接的寻址映射来降低功率。然而,这种架构无法改善存储器存取的延迟时间。
因此,提供一种克服上述的多个缺陷的一处理架构将是有利的。
发明内容
以下为本公开的多个示例实施例的一概述。提供此概述是为了方便读者提供对这样的实施例的一基本理解,并且不完全限定本公开的广度。此概述并非所有预期的实施例的一详尽的概述,并且既不旨在辨识所有实施例的关键或重要的元件,也不旨在描绘任何或所有方面的范围。其唯一的目的在于以简化的形式呈现出一个或多个实施例的一些概念,以作为之后呈现出的更详细的描述的一序言。为了方便起见,术语“一些实施例”在本文中可用来指本公开的一单一的实施例或多个实施例。
本文所公开的一些实施例包括一种用于在一可重构的缓存架构中的缓存一致性的方法。所述方法包含:接收一存储器存取命令,其中所述存储器存取命令包括一存储器的至少一地址,以便进行存取;基于所述存储器存取命令来确定至少一存取参数;及部分基于所述至少一存取参数及所述地址来确定一目标缓存箱(cache bin),所述目标缓存箱用于服务所述存储器存取命令。
本文所公开的一些实施例包括一种可重构的缓存架构,所述可重构的缓存架构包含:一存储器;及多个缓存节点,耦接至所述存储器,其中每个缓存节点被划分成多个缓存箱,其中基于一存取参数来确定对所述多个缓存箱的任何缓存箱的存取。
附图说明
在说明书的结论处的多个权利要求中特别指出且明确地要求保护本文所公开的主题。通过以下与多个附图结合的详细描述,本发明的前述及其他的目的、特征及优势将变得显而易见。
图1为展示出一常规的缓存一致性架构的一示意图;
图2为根据一实施例的一可重构的系统架构的一示意图;
图3A至3C为根据一实施例的一可重构的缓存架构的多个示意图;
图4为根据一实施例的耦接至一可重构的缓存架构的多个I/O外围单元的一示意图;及
图5为根据一实施例说明了一种用于一可重构的缓存中的一缓存一致性的方法的一流程图。
具体实施方式
一般而言,在本申请的说明书所做出的多个陈述不一定限制各种要求保护的实施例中的任何一个。并且,一些陈述可适用于一些发明特征,但不适用于其他特征。通常,除非另有指示,否则单数元件可为复数形式,反之亦然,而不会失去一般性。在多个附图中,相似的数字指的是通过多个视图的相似的部分。
图2说明根据一实施例的一处理架构200的一示例示意图,所述示例示意图展示出一可重构的缓存的运作。
在一实施例中,所述处理架构200包括一处理电路210,所述处理电路通过一接口或总线240来耦接至一存储器220。一输入/输出(IO)及多个外围单元230也连接至所述接口或总线240,以便允许多个特定的功能、对多个外部元件的存取,或两者兼具。所述I/O及多个外围单元230可与一外围组件互连(PCI),或PCI快速(PCI Express(PCIe))总线、多个协处理器、多个网络控制器等接合(未显示)。应当理解的是,PCIe总线能够连接至其他的外围装置。
所述存储器220耦接至多个缓存节点225-1至225-n(为了多个简化目的,下文个别称为一缓存节点,并统称为多个缓存节点)。每个缓存节点225配置用以存储通过所述处理电路210所处理过的数据,并将数据加载至所述处理电路210。通常,通过多个存储器存取命令,例如存储(或写入)、加载(或读取),来对所述多个缓存节点225进行存取。通过使用高速静态RAM(SRAM)、动态RAM(DRAM)等可实现每个缓存节点225。在一实施例中,每个缓存节点225可被逻辑地划分成多个缓存箱(cache bin)(图2中未显示),如以下在本文中所详细讨论。
所述处理电路210可为任何的处理装置或计算装置,例如,但不限于,一中央处理单元(CPU)、一现场可编程门阵列(FPGA)、一图形处理单元(GPU)、一粗粒度可重构的架构(CGRA)、一专用集成电路(ASIC)、一量子计算机等。通常,所述处理电路210为一多核心处理器。应当注意的是,所述处理架构200可进一步支持多个处理装置210,例如,多个CPU、多个混合CPU等。
在一实施例中,所述处理电路210可被实现作为一可重构的处理架构。这种架构可被实现作为多个逻辑元件及多个多路复用器(MUXs)的一阵列。所述多个逻辑元件可包括配置用以执行计算多个函数的多个算术逻辑单元(ALUs)及多个函数单元(FUs)。
所述处理电路210配置用以进行各种过程,以提供一可配置的缓存架构,所述可配置的缓存架构维持在所述多个缓存225-1至225-n之间的缓存一致性。如此一来,不需要任何附加的专用硬件即可启用所述可配置的缓存架构。提供所述可配置的缓存的所述处理电路210还执行了设计用于所述处理架构200的多个主程序。例如,所述处理电路210可执行一计算机器学习过程,并运行所述缓存一致性。
应当理解的是,通过不使用一专用硬件来确保通过所述处理架构200的低延迟的缓存存取及低功率利用。如此一来,如本文所公开的所述可重构的缓存架构可被使用来加速所述处理电路210的所述运作(例如,一CPU、一FPGA、一GPU、一ASIC等)。
根据多个公开的实施例,通过使用在至少一存取参数上计算出的一确定性函数来确定在所述多个节点的任何一个及它们的缓存箱中的数据位置,进而达成所述缓存一致性。通过所述处理电路210来确定所述多个存取参数。一存取参数可包括,例如,代表一物理实体及一逻辑实体的一单一标识。对于这种实体的多个示例包括一进程ID、一线程ID、一核心ID、一缓存箱、一源指令点、一存储器端口、所述存储器存取地址或它们的组合。基于被存取的存储器的类型可分配所述存取参数的类型。例如,共享的存储器的多个bin数据可通过例如至少一缓存箱来被存取,同时本地存储器的多个bin数据可通过至少一处理ID来被存取。存取参数的所述类型可在编译期间或在运行时进行确定。
在一实施例中,所述处理电路210配置用以接收一存储器存取命令、确定所述存取参数,及基于所述存取参数及在所述存储器存取命令中所指定的地址来确定所述目标缓存箱。如同一非限制性的示例,在所述地址上计算一确定性函数,例如,一散列函数、一组三态内容寻址存储器(TCAM)匹配规则、它们的组合等,并且所述存取参数被调用来决定所述多个缓存节点225的哪个缓存箱维持了所述数据。
例如,一存储命令可通过所述I/O及多个外围单元230来在所述处理电路210处被接收。这种命令可包括一数据块及一存储器地址,在所述存储器地址中保存了所述数据块。所述处理电路210配置用以确定所述命令是否与,例如,一特定的过程有关。假如是,则将所述过程的所述过程ID使用作为一存取参数。在所述地址及过程ID(作为一存取参数)上计算出的一函数被使用来确定用于存储所述数据块的所述目标缓存箱。应当注意的是,一线程ID、一核心ID、一缓存箱等可被使用作为一存取参数。例如,假如所述接收到的存储命令与一特定的线程有关,则将利用一线程ID。
应当理解的是,为了简易起见,上文所描述的所述系统架构200描绘了一单一的计算装置,并且可使用多个计算装置,例如多个CPU、多个GPU、它们的组合等,来等效地实施所述架构200。
在一实施例中,所述处理电路210配置用以确定所述多个缓存节点225的哪一个应该被划分,并进一步配置用以划分每个节点225。也就是说,所述处理电路210配置用以确定有多少bin数据划分了所述缓存节点225,以及每个分区的尺寸。在一实施例中,例如,针对一预定数量的具有相同尺寸的bin数据,所述划分可为静态的。在另一实施例中,所述划分可为动态的,其中所述分配是基于每个缓存箱的利用率。为了此目的,在每次执行迭代后,量测每个bin数据的利用率,并且基于所述量测到的利用率来确定所述多个bin数据的分配是否应该被修改。应当注意的是,可在程序终止之后或运行期间进行所述量测。例如,可增加多个普遍的bin数据的尺寸,同时可减少多个较不普遍的bin数据的尺寸。进一步地,可基于所述量测到的利用率来增加或减少所述bin数据的数量。
在某些实施例中,一些缓存节点225可被静态地划分,同时其它的缓存节点可被动态地划分。应当注意的是,初始地,所述缓存可被静态地划分,而随着所述程序的运行,所述多个bin数据的所述分配可被动态地修改。
在一实施例中,在所述多个缓存箱之间划分所述缓存地址。所述多个缓存节点225的每个缓存分区可被分配一不同的逻辑实体或物理实体。例如,所述缓存节点225-1可被划分成两个缓存箱,其中一个缓存箱专用于一第一过程,而另一个缓存箱专用于一程序的一第二过程。可替代地,所述缓存箱可被分配至所述处理电路210的多个处理核心。可分配给多个缓存箱的多个实体的其它示例包括多个线程。图3进一步说明将一缓存节点划分成多个bin数据。
应当理解的是,此列表对于可分配给多个缓存箱的多个类型的逻辑实体及物理实体仅为说明性的,且并非彻底详尽的。应当进一步理解的是,一缓存箱可为一缓存节点的任何部分。
图3A至3C说明了根据一实施例的一可重构的缓存架构300的一示例示意图。在图3A至3C所说明的所述示例中,显示出一单一的缓存节点225-n被动态地划分成多个bin数据310。
具体地,如图3A所显示,将所述缓存节点225-n初始划分成四个具有相同尺寸的缓存箱310-1、310-2、310-3及310-4。在第一次执行迭代之后,在运行期间或运行之间,所述节点225-n的所述划分被改变成包括八个具有相同尺寸的bin数据310-1至310-8(图3B)。在另一次执行迭代之后,在运行期间或运行之间,所述节点225-n的所述划分被改变成包括八个bin数据310-1至310-8,但具有不同的尺寸。如图3C所显示,所述存储器分配给bin数据310-1不同于bin数据310-8。
根据一实施例,所述缓存架构300可被分布在多个物理节点上,其中每个节点进一步被划分成一个或多个逻辑箱。每个物理节点的一处理电路可存取全部的或部分的所述多个缓存节点。
如图3A至3C所显示,利用一确定性散列函数225来确定一目标缓存。通过所述处理电路210来计算所述函数325。应当理解的是,所述可重构的缓存架构300可实现更高的存储器使用粒度,从而增强所述系统的运作,并改善运行时的性能。
应当进一步理解的是,所述可重构的缓存架构300描绘了一单一的缓存节点225-n及四或八个数量的bin数据310仅仅是为了简易起见。通常,所述架构300会包括多个缓存节点,所述多个缓存节点可被划分成任一数量的缓存箱。
在一实施例中,一存储器缓存箱310可进行多个原子存储器存取命令。这种命令可加载、有条件地修改,且之后在一位置存储所述存储器的数值,以作为一单一的运作。需要理解的是,当从多个存储器端口并行地执行多个原子存取命令,并在所述缓存箱中依序地进行所述多个原子访问命令时,它们为所有的存储器端口提供了一致的观点。
图4显示出根据一实施例的一可重构的缓存架构400的一示例示意图,所述可重构的缓存架构400耦接至多个I/O外围设备(I/O P)410。在此配置中,输入/输出(IO)及多个外围单元410-1至410-k(k为大于或等于1的整数)可包括一PCI总线、一PCI快速(PCIe)、一个或多个协处理器、一个或多个网络控制器等。
如本文所显示,通过所述多个I/O外围设备410发出所述多个存储器存取命令。通过使用一确定性散列函数425使所述处理电路210部分基于所述多个接收到的命令来确定所述目标缓存箱。
在此配置中,将从所述目标缓存箱接收到的任何数据或控制信号(例如ack信号)映射至所述接收到的命令所发出的所述I/O外围设备410。通过一映射函数427来进行所述映射,所述映射函数427可被实施作为一确定性散列函数、作为一组三态内容寻址存储器(TCAM)匹配规则、它们的组合等。应当注意的是,为了进行所述存储器运作,将所述存储器存取引导至所述多个本地缓存120。
图5显示出根据一实施例的一种用于在一可重构的缓存架构中的缓存一致性的方法的一示例流程图500。所述可重构的缓存架构包括多个缓存节点,所述多个缓存节点耦接至所述存储器,其中每个缓存节点被划分成多个缓存箱。
在S510处,接收一存储器存取命令。如上文所述,所述命令可为从一处理架构的所述存储器存储(写入)或加载(读取)的数据。所述命令可藉由一接口,例如所述多个I/O外围单元230,来被接收。一接收到的命令包括至少一目标地址,数据被存储至所述目标地址,或数据从所述目标地址被加载。在一存储命令中,欲存储的所述数据也被包括在所述接收到的命令中。所述存储器地址应该在主程序代码的编译期间所确定的地址范围内。
在S520处,确定至少一存取参数。如上文所述,一存取参数可包括一进程ID、一线程ID、一缓存箱、一存储指针、一处理器核心ID等。在一实施例中,所述确定包括:确定与所述接收到的命令有关的一逻辑或物理实体。上文详细地讨论了对于多个物理实体的多个示例。
在一实施例中,假如所述接收到的命令被执行作为一专用的进程或线程(两者均被认为是逻辑实体)的一部分,则所述进程ID或所述线程ID将被认为是所述存取参数。在另一实施例中,假如所述接收受到的命令在一专用的处理核心(被认为是一物理实体)上被执行,则所述核心ID将被认为是所述存取参数。在又一实施例中,假如所述接收到的命令为存取一共享的存储器(被认为是一物理实体),则一缓存箱将被认为是所述存取参数。
在一些实施例中,确定加载/存储属性。例如,这种属性包括多个从不缓存的特定值、多个始终缓存的特定值、多个始终检查的特定值等。再者,与在网格中的所述存取同步一起的分配的命令允许更大的管线及更高的通量,同时简化了多个机构。这种属性对于易失性存储器以及对于多个锁定机构皆为有利的。
在S530处,确定欲存取的一目标缓存箱。在一实施例中,通过使用在所述存取参数上计算出的一确定性函数以及在所述接收到的请求所指定的所述地址来进行所述确定。根据另一实施例,所述确定性函数连接至所述网格,如此通过多个相同的接口来进行所述确定。
应当注意的是,数据被存储至如通过所述确定性函数所确定的所述目标缓存箱,或从所述目标缓存箱被加载。
在一实施例中,S530包括:收集关于所述被存取的目标缓存箱的统计资料。例如,确定了所述bin数据的数量、存取相同的所述bin数据的频率及被写入或读取的所述数据的尺寸。这些收集到的统计资料可被使用来动态地改变所述多个bin数据的所述多个分区。
在S540中,检查多个额外的系统调用是否已经被接收,假如是,则继续执行S510;否则,执行终止。
本文所公开的所述多个实施例可被实施为硬件、固件、软件或其任何的组合。所述应用程序可被上载至包含任何合适架构的一机器,并通过所述机器来被执行。优选地,所述机器在一计算机平台上被实行,所述计算机平台具有一硬件,例如,一个或多个中央处理单元(“CPU”)、一存储器及多个输入/输出接口。
所述计算机平台也可包括一运算系统及微指令码。本文所描述的各种过程及函数可为所述微指令码的一部分,或所述应用程序的一部分,或其任何组合,其可通过一CPU来被执行,无论是否明确地显示出这种计算机或处理器。
另外,各种其他的外围单元可连接至所述计算机平台,例如一附加的数据存储单元。再者,一非暂态的计算机可读介质为除了一暂态传播信号之外的任何计算机可读介质。
本文所叙述的所有示例及条件语言皆旨在用于教育目的,以帮助读者理解本公开的多个原理及通过本发明人为促进本领域所提供的多个概念,并且应解释为不限于这种具体叙述的示例及条件。
Claims (14)
1.一种用于在一可重构的缓存架构中的缓存一致性的方法,其特征在于:所述方法包含︰
接收一存储器存取命令,其中所述存储器存取命令包括一存储器的至少一地址,以便进行存取;
基于所述存储器存取命令来确定至少一存取参数;及
部分基于所述至少一存取参数及所述地址来确定一目标缓存箱,所述目标缓存箱用于服务所述存储器存取命令;
其中所述可重构的缓存架构包括多个缓存节点,所述多个缓存节点耦接至所述存储器,其中每个缓存节点可划分成多个缓存箱,其中所述目标缓存箱为所述多个缓存箱的其中一个,且其中在所述多个缓存节点的至少两个中的所述多个缓存箱的所述划分为可重构的;
其中所述存储器存取命令包括以下任一个的一单一标识:
一物理实体,所述物理实体为以下任一种:一处理核心及所述存储器的一共享部分;及
一逻辑实体,所述逻辑实体为以下任一种:一进程及一线程;
其中所述至少一存取参数包括以下至少一种:一进程ID、一处理核心ID、一线程ID及一缓存箱;及
其中所述至少一存取参数的所述确定进一步包含以下至少一个:
当确定所述存储器存取命令与所述逻辑实体有关时,将所述至少一存取参数设置为一逻辑实体标识符;及
当确定所述存储器存取命令与所述物理实体有关时,将所述至少一存取参数设置为一物理实体标识符。
2.如权利要求1所述的方法,其特征在于:所述目标缓存箱为至少一缓存代码的至少一部分。
3.如权利要求1所述的方法,其特征在于:每个缓存箱被包括在所述多个缓存节点的一个别的缓存节点中。
4.如权利要求1所述的方法,其特征在于:所述方法进一步包含:
基于对所述缓存节点的个别的所述多个缓存箱的利用来动态地将每个缓存节点划分成至少两个缓存箱。
5.如权利要求4所述的方法,其特征在于:所述方法进一步包含:
将每个缓存节点初始划分成一预定数量的缓存箱;
相对于每个缓存箱的使用来收集统计资料;及
基于所述收集到的统计资料来将每个缓存节点的所述初始划分进行重新配置。
6.如权利要求5所述的方法,其特征在于:在多次执行迭代中的每次的执行迭代之后,对每个缓存节点的所述划分进行所述重新配置。
7.如权利要求5所述的方法,其特征在于:所述方法进一步包含:
动态地将更多的缓存存储分配给所述多个缓存箱的至少一个。
8.如权利要求1所述的方法,其特征在于:所述方法进一步包含:
确定至少一缓存属性,其中所述至少一缓存属性包括以下至少一个:一从不缓存的特定值、一始终缓存的特定值或一始终检查的特定值。
9.如权利要求1所述的方法,其特征在于:确定用于服务所述存储器存取命令的所述目标缓存箱进一步包含:
在所述至少一存取参数及所述地址上计算一确定性函数。
10.如权利要求1所述的方法,其特征在于:所述可重构的缓存架构被使用以通过一处理电路来加速一程序的一执行。
11.如权利要求10所述的方法,其特征在于:所述处理电路为以下任一种:一多核心中央处理单元(CPU)、一现场可编程门阵列(FPGA)、一图形处理单元(GPU)、一粗粒度可重构的架构(CGRA)、一专用集成电路(ASIC)、一多核心处理器及一量子计算机。
12.一种非暂态的计算机可读介质,所述非暂态的计算机可读介质具有存储在其上的多个指令,所述多个指令用于使至少一处理电路执行一过程,所述过程用于在一可重构的缓存架构中的缓存一致性,其特征在于:所述过程包含:
接收一存储器存取命令,其中所述存储器存取命令包括一存储器的至少一地址,以便进行存取;
基于所述存储器存取命令来确定至少一存取参数;及
部分基于所述至少一存取参数及所述地址来确定一目标缓存箱,所述目标缓存箱用于服务所述存储器存取命令;
其中所述可重构的缓存架构包括多个缓存节点,所述多个缓存节点耦接至所述存储器,其中每个缓存节点可划分成多个缓存箱,其中所述目标缓存箱为所述多个缓存箱的其中一个,且其中在所述多个缓存节点的至少两个中的所述多个缓存箱的所述划分为可重构的;
其中所述存储器存取命令包括以下任一个的一单一标识:
一物理实体,所述物理实体为以下任一种:一处理核心及所述存储器的一共享部分;及
一逻辑实体,所述逻辑实体为以下任一种:一进程及一线程;
其中所述至少一存取参数包括以下至少一种:一进程ID、一处理核心ID、一线程ID及一缓存箱;及
其中所述至少一存取参数的所述确定进一步包含以下至少一个:
当确定所述存储器存取命令与所述逻辑实体有关时,将所述至少一存取参数设置为一逻辑实体标识符;及
当确定所述存储器存取命令与所述物理实体有关时,将所述至少一存取参数设置为一物理实体标识符。
13.一种可重构的缓存架构,其特征在于:所述可重构的缓存架构包含:
一存储器;及
多个缓存节点,耦接至所述存储器,其中每个缓存节点可划分成多个缓存箱,其中基于一存取参数来确定对所述多个缓存箱的任何缓存箱的存取,且其中在所述多个缓存节点的至少两个中的所述多个缓存箱的所述划分为可重构的;
其中所述可重构的缓存架构耦接至一处理电路,所述处理电路适用于在所述可重构的缓存架构中的缓存一致性,且配置用以:
接收一存储器存取命令,其中所述存储器存取命令包括一存储器的至少一地址,以便进行存取;
基于所述存储器存取命令来确定至少一存取参数;及
部分基于所述至少一存取参数及所述地址来确定一目标缓存箱,所述目标缓存箱用于服务所述存储器存取命令;
其中所述存储器存取命令包括以下任一个的一单一标识:
一物理实体,所述物理实体为以下任一种:一处理核心及所述存储器的一共享部分;及
一逻辑实体,所述逻辑实体为以下任一种:一进程及一线程;
其中所述至少一存取参数包括以下至少一种:一进程ID、一处理核心ID、一线程ID及一缓存箱;及
其中所述至少一存取参数的所述确定进一步包含以下至少一个:
当确定所述存储器存取命令与所述逻辑实体有关时,将所述至少一存取参数设置为一逻辑实体标识符;及
当确定所述存储器存取命令与所述物理实体有关时,将所述至少一存取参数设置为一物理实体标识符。
14.如权利要求13所述的可重构的缓存架构,其特征在于:所述可重构的缓存架构被使用以通过所述处理电路来加速一程序的一执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311237935.7A CN117271392A (zh) | 2017-08-03 | 2018-08-03 | 用于缓存一致性的可重构的缓存架构及方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762540854P | 2017-08-03 | 2017-08-03 | |
US62/540,854 | 2017-08-03 | ||
PCT/US2018/045131 WO2019028327A1 (en) | 2017-08-03 | 2018-08-03 | RECONFIGURABLE CACHE ARCHITECTURE AND CACHED MEMORY COHERENCE METHODS |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311237935.7A Division CN117271392A (zh) | 2017-08-03 | 2018-08-03 | 用于缓存一致性的可重构的缓存架构及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111164580A CN111164580A (zh) | 2020-05-15 |
CN111164580B true CN111164580B (zh) | 2023-10-31 |
Family
ID=65231030
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311237935.7A Pending CN117271392A (zh) | 2017-08-03 | 2018-08-03 | 用于缓存一致性的可重构的缓存架构及方法 |
CN201880063982.5A Active CN111164580B (zh) | 2017-08-03 | 2018-08-03 | 用于缓存一致性的可重构的缓存架构及方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311237935.7A Pending CN117271392A (zh) | 2017-08-03 | 2018-08-03 | 用于缓存一致性的可重构的缓存架构及方法 |
Country Status (8)
Country | Link |
---|---|
US (3) | US11176041B2 (zh) |
EP (2) | EP4209914A1 (zh) |
JP (1) | JP7126136B2 (zh) |
KR (1) | KR20200049775A (zh) |
CN (2) | CN117271392A (zh) |
ES (1) | ES2950681T3 (zh) |
SG (1) | SG11202000763TA (zh) |
WO (1) | WO2019028327A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11176041B2 (en) | 2017-08-03 | 2021-11-16 | Next Silicon Ltd. | Reconfigurable cache architecture and methods for cache coherency |
US10402091B1 (en) * | 2018-04-30 | 2019-09-03 | EMC IP Holding Company LLC | Managing data in log-structured storage systems |
US11216377B2 (en) | 2019-12-18 | 2022-01-04 | Nxp Usa, Inc. | Hardware accelerator automatic detection of software process migration |
CN112306500B (zh) * | 2020-11-30 | 2022-06-07 | 上海交通大学 | 一种针对粗粒度可重构结构的降低多类访存冲突编译方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6219745B1 (en) * | 1998-04-15 | 2001-04-17 | Advanced Micro Devices, Inc. | System and method for entering a stream read buffer mode to store non-cacheable or block data |
US7028299B1 (en) * | 2000-06-30 | 2006-04-11 | Intel Corporation | Task-based multiprocessing system |
CN103221929A (zh) * | 2010-12-12 | 2013-07-24 | 拉塞尔·汉米尔顿·菲什 | 存储器缓存架构中的cpu |
CN103365793A (zh) * | 2012-03-28 | 2013-10-23 | 国际商业机器公司 | 数据处理方法和系统 |
CN103365794A (zh) * | 2012-03-28 | 2013-10-23 | 国际商业机器公司 | 数据处理方法和系统 |
WO2015016882A1 (en) * | 2013-07-31 | 2015-02-05 | Intel Corporation | A method, apparatus and system for performing management component transport protocol (mctp) communications with a universal serial bus (usb) device |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5321806A (en) | 1991-08-21 | 1994-06-14 | Digital Equipment Corporation | Method and apparatus for transmitting graphics command in a computer graphics system |
US5367653A (en) | 1991-12-26 | 1994-11-22 | International Business Machines Corporation | Reconfigurable multi-way associative cache memory |
US6370619B1 (en) * | 1998-06-22 | 2002-04-09 | Oracle Corporation | Managing partitioned cache |
US6493800B1 (en) | 1999-03-31 | 2002-12-10 | International Business Machines Corporation | Method and system for dynamically partitioning a shared cache |
US6347346B1 (en) | 1999-06-30 | 2002-02-12 | Chameleon Systems, Inc. | Local memory unit system with global access for use on reconfigurable chips |
US6636946B2 (en) * | 2001-03-13 | 2003-10-21 | Micron Technology, Inc. | System and method for caching data based on identity of requestor |
US6848026B2 (en) * | 2001-11-09 | 2005-01-25 | International Business Machines Corporation | Caching memory contents into cache partitions based on memory locations |
US7043610B2 (en) * | 2002-08-19 | 2006-05-09 | Aristos Logic Corporation | System and method for maintaining cache coherency without external controller intervention |
US7269174B2 (en) | 2003-03-28 | 2007-09-11 | Modular Mining Systems, Inc. | Dynamic wireless network |
US7120651B2 (en) * | 2003-08-01 | 2006-10-10 | Oracle International Corporation | Maintaining a shared cache that has partitions allocated among multiple nodes and a data-to-partition mapping |
US7478210B2 (en) * | 2006-06-09 | 2009-01-13 | Intel Corporation | Memory reclamation with optimistic concurrency |
US8156307B2 (en) | 2007-08-20 | 2012-04-10 | Convey Computer | Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set |
US8176256B2 (en) * | 2008-06-12 | 2012-05-08 | Microsoft Corporation | Cache regions |
JP5294304B2 (ja) | 2008-06-18 | 2013-09-18 | 日本電気株式会社 | 再構成可能電子回路装置 |
EP2310952A4 (en) | 2008-07-01 | 2014-09-03 | S K Nandy | PROCESS AND CHIP SYSTEM (SOC) FOR CUSTOMIZING A CONVERTIBLE HARDWARE FOR ONE TIME APPLICATION |
US8230176B2 (en) * | 2009-06-26 | 2012-07-24 | International Business Machines Corporation | Reconfigurable cache |
KR101076869B1 (ko) | 2010-03-16 | 2011-10-25 | 광운대학교 산학협력단 | 코어스 그레인 재구성 어레이에서의 메모리 중심 통신 장치 |
US8621151B2 (en) | 2010-11-23 | 2013-12-31 | IP Cube Partners (IPC) Co., Ltd. | Active memory processor system |
US8504778B2 (en) | 2010-11-24 | 2013-08-06 | IP Cube Partners (ICP) Co., Ltd. | Multi-core active memory processor system |
US8589628B2 (en) | 2010-11-29 | 2013-11-19 | IP Cube Partners (ICP) Co., Ltd. | Hybrid active memory processor system |
US8767501B2 (en) | 2012-07-17 | 2014-07-01 | International Business Machines Corporation | Self-reconfigurable address decoder for associative index extended caches |
US9135156B2 (en) * | 2012-10-29 | 2015-09-15 | Broadcom Corporation | Dynamically configurable memory |
US9460012B2 (en) | 2014-02-18 | 2016-10-04 | National University Of Singapore | Fusible and reconfigurable cache architecture |
US10089238B2 (en) * | 2014-07-17 | 2018-10-02 | Qualcomm Incorporated | Method and apparatus for a shared cache with dynamic partitioning |
US10481835B2 (en) * | 2014-10-09 | 2019-11-19 | Netapp, Inc. | Methods and systems for dynamic hashing in caching sub-systems |
US9852071B2 (en) * | 2014-10-20 | 2017-12-26 | International Business Machines Corporation | Granting exclusive cache access using locality cache coherency state |
US9727239B2 (en) * | 2014-11-13 | 2017-08-08 | Samsung Electronics Co., Ltd. | Electronic system with partitioning mechanism and method of operation thereof |
US10061511B2 (en) | 2015-09-23 | 2018-08-28 | Hanan Potash | Computing device with frames/bins structure, mentor layer and plural operand processing |
US20170091111A1 (en) * | 2015-09-30 | 2017-03-30 | International Business Machines Corporation | Configurable cache architecture |
US9734070B2 (en) * | 2015-10-23 | 2017-08-15 | Qualcomm Incorporated | System and method for a shared cache with adaptive partitioning |
US11176041B2 (en) | 2017-08-03 | 2021-11-16 | Next Silicon Ltd. | Reconfigurable cache architecture and methods for cache coherency |
-
2018
- 2018-08-03 US US16/054,202 patent/US11176041B2/en active Active
- 2018-08-03 SG SG11202000763TA patent/SG11202000763TA/en unknown
- 2018-08-03 ES ES18840560T patent/ES2950681T3/es active Active
- 2018-08-03 CN CN202311237935.7A patent/CN117271392A/zh active Pending
- 2018-08-03 EP EP23158068.9A patent/EP4209914A1/en active Pending
- 2018-08-03 CN CN201880063982.5A patent/CN111164580B/zh active Active
- 2018-08-03 JP JP2020529107A patent/JP7126136B2/ja active Active
- 2018-08-03 EP EP18840560.9A patent/EP3662376B1/en active Active
- 2018-08-03 WO PCT/US2018/045131 patent/WO2019028327A1/en unknown
- 2018-08-03 KR KR1020207006248A patent/KR20200049775A/ko not_active Application Discontinuation
-
2021
- 2021-10-19 US US17/504,594 patent/US11720496B2/en active Active
-
2023
- 2023-08-04 US US18/230,245 patent/US20230376419A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6219745B1 (en) * | 1998-04-15 | 2001-04-17 | Advanced Micro Devices, Inc. | System and method for entering a stream read buffer mode to store non-cacheable or block data |
US7028299B1 (en) * | 2000-06-30 | 2006-04-11 | Intel Corporation | Task-based multiprocessing system |
CN103221929A (zh) * | 2010-12-12 | 2013-07-24 | 拉塞尔·汉米尔顿·菲什 | 存储器缓存架构中的cpu |
CN103365793A (zh) * | 2012-03-28 | 2013-10-23 | 国际商业机器公司 | 数据处理方法和系统 |
CN103365794A (zh) * | 2012-03-28 | 2013-10-23 | 国际商业机器公司 | 数据处理方法和系统 |
WO2015016882A1 (en) * | 2013-07-31 | 2015-02-05 | Intel Corporation | A method, apparatus and system for performing management component transport protocol (mctp) communications with a universal serial bus (usb) device |
Also Published As
Publication number | Publication date |
---|---|
EP4209914A1 (en) | 2023-07-12 |
KR20200049775A (ko) | 2020-05-08 |
SG11202000763TA (en) | 2020-02-27 |
WO2019028327A1 (en) | 2019-02-07 |
US20220100660A1 (en) | 2022-03-31 |
JP2020530176A (ja) | 2020-10-15 |
CN117271392A (zh) | 2023-12-22 |
US20230376419A1 (en) | 2023-11-23 |
CN111164580A (zh) | 2020-05-15 |
EP3662376B1 (en) | 2023-04-05 |
US11720496B2 (en) | 2023-08-08 |
JP7126136B2 (ja) | 2022-08-26 |
EP3662376A1 (en) | 2020-06-10 |
EP3662376A4 (en) | 2021-04-07 |
US20190042427A1 (en) | 2019-02-07 |
ES2950681T3 (es) | 2023-10-11 |
US11176041B2 (en) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111164580B (zh) | 用于缓存一致性的可重构的缓存架构及方法 | |
TWI498819B (zh) | 執行成型記憶體存取作業的系統和方法 | |
TWI531974B (zh) | 管理巢狀執行串流的方法和系統 | |
JP5934094B2 (ja) | データ並列スレッドを有する処理論理の複数のプロセッサにわたるマッピング | |
US9229878B2 (en) | Memory page offloading in multi-node computer systems | |
US20130036295A1 (en) | Gpu assisted garbage collection | |
US10031697B2 (en) | Random-access disjoint concurrent sparse writes to heterogeneous buffers | |
CN103885902A (zh) | 用于经由纹理硬件实施存储器访问操作的技术 | |
US11934867B2 (en) | Techniques for divergent thread group execution scheduling | |
US11868306B2 (en) | Processing-in-memory concurrent processing system and method | |
CN103885903A (zh) | 用于经由纹理硬件实施存储器访问操作的技术 | |
CN116775518A (zh) | 用于高效访问多维数据结构和/或其他大型数据块的方法和装置 | |
JP2024500779A (ja) | アドレスマッピング認識型タスク処理機構 | |
US11625279B2 (en) | Read-write page replication for multiple compute units | |
CN103870247A (zh) | 用于保存和恢复线程组操作状态的技术 | |
Govindasamy et al. | Minimizing Memory Contention in an APNG Encoder using a Grid of Processing Cells | |
US10620958B1 (en) | Crossbar between clients and a cache | |
US20230393849A1 (en) | Method and apparatus to expedite system services using processing-in-memory (pim) | |
US20230289304A1 (en) | Method and apparatus for efficient access to multidimensional data structures and/or other large data blocks | |
US20230186003A1 (en) | Digital design simulation accelerator | |
US20130262790A1 (en) | Method, computer program and device for managing memory access in a multiprocessor architecture of numa type | |
JP2023527770A (ja) | メモリにおける推論 | |
Singhal et al. | Atomic Read Modify Write Primitives for I/O Devices |
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 | ||
CB02 | Change of applicant information |
Address after: Israel Atayimushi Jeff Applicant after: Nexicom Co.,Ltd. Address before: Tel Aviv Applicant before: Nexicom Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |