CN112148665A - 缓存的分配方法及装置 - Google Patents

缓存的分配方法及装置 Download PDF

Info

Publication number
CN112148665A
CN112148665A CN201910580430.8A CN201910580430A CN112148665A CN 112148665 A CN112148665 A CN 112148665A CN 201910580430 A CN201910580430 A CN 201910580430A CN 112148665 A CN112148665 A CN 112148665A
Authority
CN
China
Prior art keywords
cache
core
network slice
instruction
information
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.)
Granted
Application number
CN201910580430.8A
Other languages
English (en)
Other versions
CN112148665B (zh
Inventor
牛新伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanechips Technology Co Ltd
Original Assignee
Sanechips Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sanechips Technology Co Ltd filed Critical Sanechips Technology Co Ltd
Priority to CN201910580430.8A priority Critical patent/CN112148665B/zh
Priority to US17/606,449 priority patent/US11940915B2/en
Priority to JP2021562299A priority patent/JP7205033B2/ja
Priority to PCT/CN2020/088364 priority patent/WO2020259082A1/zh
Priority to KR1020217034546A priority patent/KR20210141690A/ko
Priority to EP20832000.2A priority patent/EP3944091B1/en
Publication of CN112148665A publication Critical patent/CN112148665A/zh
Application granted granted Critical
Publication of CN112148665B publication Critical patent/CN112148665B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/7846On-chip cache and off-chip main memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F2015/761Indexing scheme relating to architectures of general purpose stored programme computers
    • G06F2015/765Cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供了一种缓存的分配方法及装置。具体而言,该方法包括:核在检测到通过发送取指指令所访问的一级缓存与第二缓存的响应均为丢失响应时,访问三级缓存;其中,所述取指指令用于请求访问的缓存返回指令和数据;所述第一缓存为所述核的私有缓存;所述第二缓存为所述核所在的核集合对应的公共缓存;所述三级缓存为多个核集合之间共有的公共缓存;所述第二缓存的丢失响应中携带有网络切片信息;设置于所述三级缓存中的规划单元根据所述网络切片信息将所述多个核集合分配至多个网络切片以及配置相应的缓存;所述规划单元向所述核发送命中响应,其中,所述命中响应用于返回所述核所在的核集合对应的网络切片的缓存中的数据。

Description

缓存的分配方法及装置
技术领域
本发明涉及多核网络处理器领域,具体而言,涉及一种缓存的分配方法及装置。
背景技术
为了满足多核网络处理系统对媒体处理、数据挖掘、金融分析等领域中极为频繁的数据交换与数据共享需求,必须优化多核网络处理器的指令和数据的共享结构及其可扩展性。
随着处理器从传统的单核时代迈入多核时代,处理器的数量增加为系统级芯片的片上存储架构的设计带来巨大挑战。一方面,核数量的增加使得芯片规模迅速上升,使得每个核的平均访存延时与最大访问延时上升;另一方面,不同于单核系统,多核系统为了充分利用多核架构的处理资源,对于网络应用进行网络切片并行的研究也被受重视。因此,相关技术中,由于核的数量增加所导致的访存延时与最大访问延时上升以及网络切片并行度低的问题,还没有一种比较好的解决方案。
发明内容
本发明实施例提供了一种缓存的分配方法及装置,以至少解决相关技术中由于核的数量增加所导致的访存延时与最大访问延时上升以及网络切片并行度低的问题。
根据本发明的一个实施例,提供了一种缓存的分配方法,包括:核在检测到通过发送取指指令所访问的一级缓存与第二缓存的响应均为丢失响应时,访问三级缓存;其中,所述取指指令用于请求访问的缓存返回指令和数据;所述第一缓存为所述核的私有缓存;所述第二缓存为所述核所在的核集合对应的公共缓存;所述三级缓存为多个核集合之间共有的公共缓存;所述第二缓存的丢失响应中携带有网络切片信息;设置于所述三级缓存中的规划单元根据所述网络切片信息将所述多个核集合分配至多个网络切片以及配置相应的缓存;所述规划单元向所述核发送命中响应,其中,所述命中响应用于返回所述核所在的核集合对应的网络切片的缓存中的数据。
根据本发明的另一个实施例,提供了一种缓存的分配装置,包括:访问模块,位于核中,用于在检测到通过发送取指指令所访问的一级缓存与第二缓存的响应均为丢失响应时,访问三级缓存;其中,所述取指指令用于请求访问的缓存返回指令和数据;所述第一缓存为所述核的私有缓存;所述第二缓存为所述核所在的核集合对应的公共缓存;所述三级缓存为多个核集合之间共有的公共缓存;所述第二缓存的丢失响应中携带有网络切片信息;分配模块,位于设置于所述三级缓存中的规划单元中,用于根据所述网络切片信息将所述多个核集合分配至多个网络切片以及配置相应的缓存;响应模块,位于所述规划单元中,用于向所述核发送命中响应,其中,所述命中响应用于返回所述核所在的核集合对应的网络切片的缓存中的数据。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,通过三级缓存当中规划单元通过根据网络切片信息进行网络切片划分为具有多个核的核集合分配相应的缓存,因此,可以解决相关技术中,由于核的数量增加所导致的访存延时与最大访问延时上升以及网络切片并行度低的问题,从而达到了优化大规模多核网络处理器的片上存储架构、核的访存延时,提升片上存储资源的利用率的效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种缓存的分配方法的流程图;
图2是根据本发明实施例的一种多级缓存模型的示意图;
图3是根据本发明实施例的一种三级缓存访问流程的示意图;
图4是根据本发明实施例的一种三级缓存的模块示意图;
图5是根据本发明实施例的一种三级缓存的数据结构示意图;
图6是根据本发明实施例的一种缓存的分配装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
实施例1
在本实施例中提供了一种缓存的分配方法,图1是根据本发明实施例的一种缓存的分配方法的流程图,如图1所示,该流程包括如下步骤:
步骤S102,核在检测到通过发送取指指令所访问的一级缓存与第二缓存的响应均为丢失响应时,访问三级缓存;其中,所述取指指令用于请求访问的缓存返回指令和数据;所述第一缓存为所述核的私有缓存;所述第二缓存为所述核所在的核集合对应的公共缓存;所述三级缓存为多个核集合之间共有的公共缓存;所述第二缓存的丢失响应中携带有网络切片信息;
步骤S104,设置于所述三级缓存中的规划单元根据所述网络切片信息将所述多个核集合分配至多个网络切片以及配置相应的缓存;
步骤S106,所述规划单元向所述核发送命中响应,其中,所述命中响应用于返回所述核所在的核集合对应的网络切片的缓存中的数据。
图2是根据本发明实施例的一种多级缓存模型的示意图。如图2所示,图2当中每一个核都会相对应一个一级缓存(L1_cache)。而一个核集合(set)会相对应一个二级缓存(L2_cache)。最后,对于整个处理器而言,其可以对应一个三级缓存((L3_cache))。当然在本模型中,还可以得到外存MEM的支持。
需要说明的是,如果某个核发送取值指令后,首先会先访问第一缓存(L1_cache),命中(hit)则返回指令和在第一缓存中的数据。而后等待下次取值。而如果丢失(miss)则会将取指(PC)、线程信息(thread_info)和核信息(core_info)写入队列L1_cache_miss_q。进而轮询访问第二缓存(L2_cache)。
而后在访问第二缓存(L2_cache)时,同理,命中(hit)则返回指令和在第二缓存中的数据。而后等待下次取值。而如果丢失(miss)则会将取指(PC)、线程信息(thread_info)集合信息(set_info)和网络切片信息(slice_info)写入队列写入队列L2_cache_miss_q。
可选地,规划单元根据所述网络切片信息将所述多个核集合分配至多个网络切片以及配置相应的缓存,包括:所述规划单元按照预设的划分规则将所述多个网络切片划分为多个网络切片组,其中,所述网络切片组中包括一个或者多个所述网络切片;所述规划单元在每个所述网络切片组中设置标记信息;所述规划单元按照所述标记信息为具有多个所述网络切片的所述网络切片组中的每个网络切片划分缓存资源块。
可选地,所述规划单元按照所述标记信息为具有多个所述网络切片的所述网络切片组中的每个网络切片划分缓存资源块,包括:所述规划单元根据第一标记信息以及第二标记信息将所述每个网络切片划分缓存资源块,其中,所述第一标记信息用于指示所述网络切片组的数量中所述网络切片的数量,所述第二标记信息用于标记所述网络切片对应的地址信息。
可选地,所述方法还包括:所述规划单元根据所述网络切片组中的优先级对每个所述网络切片的地址信息和数据信息进行调整。
具体而言,图3是根据本发明实施例的一种三级缓存访问流程的示意图。如图3所示,访问L3_cache时,依据网络切片信息对32个set的取指请求进行汇聚分类,先访问标记寄存器flag_unit和标签tag_ram,从而访问L3_cache中的具体地址,hit则返回指令和数据,Miss则向最外层的MEM取指。
图4是根据本发明实施例的一种三级缓存的模块示意图。如图4所示,具体来说,3级cache存在一个规划单元flag_unit,可配置规划为不同网络切片的集合set提供大小可配置的cache,从而提升对不同网络切片存储管理性能。网络切片按组进行管理,通过标记单元flag_unit配置网络切片的缓存资源,可支持多个网络切片的配置。默认状态下flag标记在网络切片组cache的中间位置,各个网络切片缓存大小无差异。每组切片独享L3_cache中的一个bank共X个block,若某组中只出现了1个切片,则该组的flag无效,该bank X个block资源供该切片独享;若存在2个切片,则依据flag进行划分,如可分给slice0 4个block,分给slice1X-4个block,其中X为偶数,每次调整的block数量也为偶数。图5是根据本发明实施例的一种三级缓存的数据结构示意图。如图5所示,flag_unit中主要存有vld和tag_ram划分地址,vld标记某组的网络切片组的数量是否为2。L3_cache中的tag和data深度相同,一一对应,在切片组中切片优先级不同的情况下,会调整每个切片的tag地址和数据宽度。
可选地,所述核在检测到通过发送所述取指指令所访问的所述三级缓存响应为丢失响应时,向外存发送取指指令,并接收所述外存反馈的取指结果;所述规划单元根据所述取指结果对所述地址信息和所述数据信息进行更新。
具体而言,最外层的MEM中存有不同网络切片的数据,当取到指令和数据返回时,会同时依据flag信息更新L3_cache。外部存储MEM可以扩的很大并且成本低,会将不同网络切片的指令和数据依次排布,会将不同网络切片最常用的数据更新进3级cache中
具体而言,取指PC的长度依据各个网络切片中指令和数据的最大空间决定,对MEM访问的时候会加上网络切片信息
同时,最外层的MEM可以很容易的扩展多个网络切片,需将多个网络切片数据依次排布,并同比例扩大flag_unit和L3_cache。另外可以增加flag_unit单元的数量,并修改对比逻辑,使得网络切片粒度管理更细致,如以2个切片组4个切片为粒度管理,使得切片组0中的某个切片占用切片组1的cache资源。依据于对多核网络系统核规划,同一网络切片的不同集合的核执行的切片业务完全相同,分配了一定量的共享L2_cache和L3_cache,提高资源的复用率。
可选地,在访问缓存时,所述核发送的取指指令的数量为N,其中N为不小于1的正整数。
具体而言,为了掩盖核的取指延迟,每个核1次会取多条指令,从而掩盖核与核之间的竞争延迟。
为了方便理解,在本实施例中还提供了如下的场景进行理解。
每个核core具有1k的私有cache,作为一级cache;每16个核作为一个集合set,拥有32k的共享cache,2级cache对16个核是完全共享的;16个set拥有一块128k的cache,作为3级cache,3级cache与片外存储MEM关联。core0发生取指时,会先访问1级cache,若取中则返回给core0,否则去访问2级cache。若在2级cache中取中,指令返回给core0,并会更新1级cache,否则去访问3级cache,同上。网络切片取指PC为10bit,切片组中切片优先级相同时取高6bit作为tag_addr,低4bit作为tag_data。对于整个切片组,切片0和切片1的总tag_addr最大为12bit。若依据切片权重调整为切片0资源为8个block,切片1资源为4个block,则切片0的地址调整为PC[7:0],tag_data为PC[12:8];相应的切片1的地址调整为PC[3:0],tag_data为PC[12:4]。访问时,先将取指地址与flag比较,然后去获取tag_ram中的数据,依据vld和tag_data确定命中还是miss,命中则取走L3_cache data中的指令,缺少则去外层MEM取指。当MEM取指回来时,一方面会返回给核,一方面会与flag_unit对比,然后更新tag_ram和data_ram。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中还提供了一种缓存的分配装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本发明实施例的一种缓存的分配装置的结构框图,如图6所示,该装置包括:
访问模块62,位于核中,用于在检测到通过发送取指指令所访问的一级缓存与第二缓存的响应均为丢失响应时,访问三级缓存;其中,所述取指指令用于请求访问的缓存返回指令和数据;所述第一缓存为所述核的私有缓存;所述第二缓存为所述核所在的核集合对应的公共缓存;所述三级缓存为多个核集合之间共有的公共缓存;所述第二缓存的丢失响应中携带有网络切片信息;
分配模块64,位于设置于所述三级缓存中的规划单元中,用于根据所述网络切片信息将所述多个核集合分配至多个网络切片以及配置相应的缓存;
响应模块66,位于所述规划单元中,用于向所述核发送命中响应,其中,所述命中响应用于返回所述核所在的核集合对应的网络切片的缓存中的数据。
可选地,所述分配模块包括:第一划分单元,用于按照预设的划分规则将所述多个网络切片划分为多个网络切片组,其中,所述网络切片组中包括一个或者多个所述网络切片;设置单元,用于在每个所述网络切片组中设置标记信息;第二划分单元,用于按照所述标记信息为具有多个所述网络切片的所述网络切片组中的每个网络切片划分缓存资源块。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。此外,上述各模块都是位于同一网络处理系统中。
实施例3
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,核在检测到通过发送取指指令所访问的一级缓存与第二缓存的响应均为丢失响应时,访问三级缓存;其中,所述取指指令用于请求访问的缓存返回指令和数据;所述第一缓存为所述核的私有缓存;所述第二缓存为所述核所在的核集合对应的公共缓存;所述三级缓存为多个核集合之间共有的公共缓存;所述第二缓存的丢失响应中携带有网络切片信息;
S2,设置于所述三级缓存中的规划单元根据所述网络切片信息将所述多个核集合分配至多个网络切片以及配置相应的缓存;
S3,所述规划单元向所述核发送命中响应,其中,所述命中响应用于返回所述核所在的核集合对应的网络切片的缓存中的数据。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,核在检测到通过发送取指指令所访问的一级缓存与第二缓存的响应均为丢失响应时,访问三级缓存;其中,所述取指指令用于请求访问的缓存返回指令和数据;所述第一缓存为所述核的私有缓存;所述第二缓存为所述核所在的核集合对应的公共缓存;所述三级缓存为多个核集合之间共有的公共缓存;所述第二缓存的丢失响应中携带有网络切片信息;
S2,设置于所述三级缓存中的规划单元根据所述网络切片信息将所述多个核集合分配至多个网络切片以及配置相应的缓存;
S3,所述规划单元向所述核发送命中响应,其中,所述命中响应用于返回所述核所在的核集合对应的网络切片的缓存中的数据。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种缓存的分配方法,其特征在于,包括:
核在检测到通过发送取指指令所访问的一级缓存与第二缓存的响应均为丢失响应时,访问三级缓存;其中,所述取指指令用于请求访问的缓存返回指令和数据;所述第一缓存为所述核的私有缓存;所述第二缓存为所述核所在的核集合对应的公共缓存;所述三级缓存为多个核集合之间共有的公共缓存;所述第二缓存的丢失响应中携带有网络切片信息;
设置于所述三级缓存中的规划单元根据所述网络切片信息将所述多个核集合分配至多个网络切片以及配置相应的缓存;
所述规划单元向所述核发送命中响应,其中,所述命中响应用于返回所述核所在的核集合对应的网络切片的缓存中的数据。
2.根据权利要求1所述的方法,其特征在于,规划单元根据所述网络切片信息将所述多个核集合分配至多个网络切片以及配置相应的缓存,包括:
所述规划单元按照预设的划分规则将所述多个网络切片划分为多个网络切片组,其中,所述网络切片组中包括一个或者多个所述网络切片;
所述规划单元在每个所述网络切片组中设置标记信息;
所述规划单元按照所述标记信息为具有多个所述网络切片的所述网络切片组中的每个网络切片划分缓存资源块。
3.根据权利要求1所述的方法,其特征在于,所述规划单元按照所述标记信息为具有多个所述网络切片的所述网络切片组中的每个网络切片划分缓存资源块,包括:
所述规划单元根据第一标记信息以及第二标记信息将所述每个网络切片划分缓存资源块,其中,所述第一标记信息用于指示所述网络切片组的数量中所述网络切片的数量,所述第二标记信息用于标记所述网络切片对应的地址信息。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述规划单元根据所述网络切片组中的优先级对每个所述网络切片的地址信息和数据信息进行调整。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述核在检测到通过发送所述取指指令所访问的所述三级缓存响应为丢失响应时,向外存发送取指指令,并接收所述外存反馈的取指结果;
所述规划单元根据所述取指结果对所述地址信息和所述数据信息进行更新。
6.根据权利要求1-5任一项所述的方法,其特征在于,
在访问缓存时,所述核发送的取指指令的数量为N,其中N为不小于1的正整数。
7.一种缓存的分配装置,其特征在于,包括:
访问模块,位于核中,用于在检测到通过发送取指指令所访问的一级缓存与第二缓存的响应均为丢失响应时,访问三级缓存;其中,所述取指指令用于请求访问的缓存返回指令和数据;所述第一缓存为所述核的私有缓存;所述第二缓存为所述核所在的核集合对应的公共缓存;所述三级缓存为多个核集合之间共有的公共缓存;所述第二缓存的丢失响应中携带有网络切片信息;
分配模块,位于设置于所述三级缓存中的规划单元中,用于根据所述网络切片信息将所述多个核集合分配至多个网络切片以及配置相应的缓存;
响应模块,位于所述规划单元中,用于向所述核发送命中响应,其中,所述命中响应用于返回所述核所在的核集合对应的网络切片的缓存中的数据。
8.根据权利要求7所述的装置,其特征在于,所述分配模块包括:
第一划分单元,用于按照预设的划分规则将所述多个网络切片划分为多个网络切片组,其中,所述网络切片组中包括一个或者多个所述网络切片;
设置单元,用于在每个所述网络切片组中设置标记信息;
第二划分单元,用于按照所述标记信息为具有多个所述网络切片的所述网络切片组中的每个网络切片划分缓存资源块。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至6任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至6任一项中所述的方法。
CN201910580430.8A 2019-06-28 2019-06-28 缓存的分配方法及装置 Active CN112148665B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201910580430.8A CN112148665B (zh) 2019-06-28 2019-06-28 缓存的分配方法及装置
US17/606,449 US11940915B2 (en) 2019-06-28 2020-04-30 Cache allocation method and device, storage medium, and electronic device
JP2021562299A JP7205033B2 (ja) 2019-06-28 2020-04-30 キャッシュの割当方法と装置、記憶媒体、電子装置
PCT/CN2020/088364 WO2020259082A1 (zh) 2019-06-28 2020-04-30 缓存的分配方法及装置、存储介质、电子装置
KR1020217034546A KR20210141690A (ko) 2019-06-28 2020-04-30 캐시 할당 방법 및 장치, 저장 매체, 전자 장치
EP20832000.2A EP3944091B1 (en) 2019-06-28 2020-04-30 Cache allocation method and device, storage medium, and electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910580430.8A CN112148665B (zh) 2019-06-28 2019-06-28 缓存的分配方法及装置

Publications (2)

Publication Number Publication Date
CN112148665A true CN112148665A (zh) 2020-12-29
CN112148665B CN112148665B (zh) 2024-01-09

Family

ID=73892052

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910580430.8A Active CN112148665B (zh) 2019-06-28 2019-06-28 缓存的分配方法及装置

Country Status (6)

Country Link
US (1) US11940915B2 (zh)
EP (1) EP3944091B1 (zh)
JP (1) JP7205033B2 (zh)
KR (1) KR20210141690A (zh)
CN (1) CN112148665B (zh)
WO (1) WO2020259082A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112699154A (zh) * 2021-03-25 2021-04-23 上海洋漪信息技术有限公司 应对大流量数据的多级缓存方法
CN115576872A (zh) * 2022-11-18 2023-01-06 北京红山微电子技术有限公司 多级缓存的访问检测方法及装置
CN117093371A (zh) * 2023-02-23 2023-11-21 摩尔线程智能科技(北京)有限责任公司 缓存资源分配方法、装置、电子设备和存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117075966B (zh) * 2023-08-31 2024-04-19 中科驭数(北京)科技有限公司 指令处理方法、装置、设备及可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102270180A (zh) * 2011-08-09 2011-12-07 清华大学 一种多核处理器高速缓存及其管理方法
US20140258630A1 (en) * 2013-03-05 2014-09-11 International Business Machines Corporation Prefetching for multiple parent cores in a multi-core chip
CN104699631A (zh) * 2015-03-26 2015-06-10 中国人民解放军国防科学技术大学 Gpdsp中多层次协同与共享的存储装置和访存方法
CN105740164A (zh) * 2014-12-10 2016-07-06 阿里巴巴集团控股有限公司 支持缓存一致性的多核处理器、读写方法、装置及设备
CN107291629A (zh) * 2016-04-12 2017-10-24 华为技术有限公司 一种用于访问内存的方法和装置
CN107479860A (zh) * 2016-06-07 2017-12-15 华为技术有限公司 一种处理器芯片以及指令缓存的预取方法
US20180060242A1 (en) * 2016-09-01 2018-03-01 Intel Corporation Selective caching of erasure coded fragments in a distributed storage system

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211649A (ja) 2008-03-06 2009-09-17 Nec Corp キャッシュシステム、その制御方法、及び、プログラム
US8244982B2 (en) 2009-08-21 2012-08-14 Empire Technology Development Llc Allocating processor cores with cache memory associativity
US9824013B2 (en) 2012-05-08 2017-11-21 Qualcomm Incorporated Per thread cacheline allocation mechanism in shared partitioned caches in multi-threaded processors
CN102830953B (zh) 2012-08-02 2017-08-25 中兴通讯股份有限公司 指令处理方法及网络处理器指令处理装置
US10073779B2 (en) * 2012-12-28 2018-09-11 Intel Corporation Processors having virtually clustered cores and cache slices
CN104346294B (zh) 2013-07-31 2017-08-25 华为技术有限公司 基于多级缓存的数据读/写方法、装置和计算机系统
CN104407989B (zh) * 2014-11-25 2019-02-12 上海兆芯集成电路有限公司 具有统一标签和片化数据的高速缓冲存储器
US9977678B2 (en) 2015-01-12 2018-05-22 International Business Machines Corporation Reconfigurable parallel execution and load-store slice processor
CN106560798B (zh) 2015-09-30 2020-04-03 杭州华为数字技术有限公司 一种内存访问方法、装置及计算机系统
US10255190B2 (en) 2015-12-17 2019-04-09 Advanced Micro Devices, Inc. Hybrid cache
US20170177361A1 (en) 2015-12-22 2017-06-22 Michael Anderson Apparatus and method for accelerating graph analytics
US10102000B2 (en) 2016-04-01 2018-10-16 Intel Corporation Apparatus and method for non-serializing split locks
US10776309B2 (en) 2016-12-31 2020-09-15 Intel Corporation Method and apparatus to build a monolithic mesh interconnect with structurally heterogenous tiles
US10789175B2 (en) * 2017-06-01 2020-09-29 Mellanox Technologies Ltd. Caching policy in a multicore system on a chip (SOC)
US20210191777A1 (en) * 2018-06-21 2021-06-24 Telefonaktiebolaget Lm Ericsson (Publ) Memory Allocation in a Hierarchical Memory System
US11010067B2 (en) * 2018-12-28 2021-05-18 Intel Corporation Defense against speculative side-channel analysis of a computer system
US20190243780A1 (en) * 2019-04-10 2019-08-08 Vinodh Gopal Scalable application-customized memory compression

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102270180A (zh) * 2011-08-09 2011-12-07 清华大学 一种多核处理器高速缓存及其管理方法
US20140258630A1 (en) * 2013-03-05 2014-09-11 International Business Machines Corporation Prefetching for multiple parent cores in a multi-core chip
CN105740164A (zh) * 2014-12-10 2016-07-06 阿里巴巴集团控股有限公司 支持缓存一致性的多核处理器、读写方法、装置及设备
CN104699631A (zh) * 2015-03-26 2015-06-10 中国人民解放军国防科学技术大学 Gpdsp中多层次协同与共享的存储装置和访存方法
CN107291629A (zh) * 2016-04-12 2017-10-24 华为技术有限公司 一种用于访问内存的方法和装置
CN107479860A (zh) * 2016-06-07 2017-12-15 华为技术有限公司 一种处理器芯片以及指令缓存的预取方法
US20180060242A1 (en) * 2016-09-01 2018-03-01 Intel Corporation Selective caching of erasure coded fragments in a distributed storage system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
宋风龙;刘志勇;范东睿;张军超;余磊;: "一种片上众核结构共享Cache动态隐式隔离机制研究", 计算机学报, no. 10 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112699154A (zh) * 2021-03-25 2021-04-23 上海洋漪信息技术有限公司 应对大流量数据的多级缓存方法
CN112699154B (zh) * 2021-03-25 2021-06-18 上海洋漪信息技术有限公司 应对大流量数据的多级缓存方法
CN115576872A (zh) * 2022-11-18 2023-01-06 北京红山微电子技术有限公司 多级缓存的访问检测方法及装置
CN115576872B (zh) * 2022-11-18 2023-03-24 北京红山微电子技术有限公司 多级缓存的访问检测方法及装置
CN117093371A (zh) * 2023-02-23 2023-11-21 摩尔线程智能科技(北京)有限责任公司 缓存资源分配方法、装置、电子设备和存储介质
CN117093371B (zh) * 2023-02-23 2024-05-17 摩尔线程智能科技(北京)有限责任公司 缓存资源分配方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
EP3944091A1 (en) 2022-01-26
KR20210141690A (ko) 2021-11-23
EP3944091B1 (en) 2024-01-10
WO2020259082A1 (zh) 2020-12-30
JP2022539285A (ja) 2022-09-08
US11940915B2 (en) 2024-03-26
EP3944091A4 (en) 2022-06-08
JP7205033B2 (ja) 2023-01-17
CN112148665B (zh) 2024-01-09
US20220206944A1 (en) 2022-06-30

Similar Documents

Publication Publication Date Title
CN112148665B (zh) 缓存的分配方法及装置
US20080235487A1 (en) Applying quality of service (QoS) to a translation lookaside buffer (TLB)
CN109582600B (zh) 一种数据处理方法及装置
US10331499B2 (en) Method, apparatus, and chip for implementing mutually-exclusive operation of multiple threads
KR20180089273A (ko) 비순차적 리소스 할당을 구현하는 방법 및 장치
CN109213695A (zh) 缓存管理方法、存储系统以及计算机程序产品
DE112016004367T5 (de) Technologien für automatische Prozessorkern-Zuordnungsverwaltung und -Kommunikation unterVerwendung direkter Datenplatzierung in private Zwischenspeicher
US20170364442A1 (en) Method for accessing data visitor directory in multi-core system and device
CN104346404B (zh) 一种访问数据的方法、设备及系统
CN106126434B (zh) 中央处理器的缓存区的缓存行的替换方法及其装置
US20220075655A1 (en) Efficient accelerator offload in multi-accelerator framework
Kim et al. Quantifying the performance and energy efficiency of advanced cache indexing for gpgpu computing
CN116126528A (zh) 资源分配方法、缓存状态控制方法及相关设备
CN113709241B (zh) 一种云场景下物理资源的调度分配组合方法与系统
US11836525B2 (en) Dynamic last level cache allocation for cloud real-time workloads
US8606999B2 (en) Cache partitioning
CN105637483B (zh) 线程迁移方法、装置和系统
CN107273188B (zh) 一种虚拟机中央处理单元cpu绑定方法及装置
Faraji Improving communication performance in GPU-accelerated HPC clusters
CN117331858B (zh) 存储装置及数据处理系统
US8484420B2 (en) Global and local counts for efficient memory page pinning in a multiprocessor system
US20240028379A1 (en) Cache management in a hyperconverged infrastructure
EP4312123A1 (en) Memory aware context switching
US9817574B2 (en) Method and apparatus for implementing a statistics counter
CN116635840A (zh) 基于多指令引擎的指令处理方法及处理器

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
GR01 Patent grant
GR01 Patent grant