CN114036084A - 一种数据访问方法、共享缓存、芯片***和电子设备 - Google Patents
一种数据访问方法、共享缓存、芯片***和电子设备 Download PDFInfo
- Publication number
- CN114036084A CN114036084A CN202111363218.XA CN202111363218A CN114036084A CN 114036084 A CN114036084 A CN 114036084A CN 202111363218 A CN202111363218 A CN 202111363218A CN 114036084 A CN114036084 A CN 114036084A
- Authority
- CN
- China
- Prior art keywords
- data
- address
- target
- access
- data cache
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/126—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System 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/781—On-chip cache; Off-chip memory
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请实施例提供一种数据访问方法、共享缓存、芯片***及电子设备,其中方法包括:获取第一处理器核的数据访问指令,所述数据访问指令包括目标地址;若所述目标地址至少与第二处理器核的访问地址不同,判断所述目标地址是否在第一地址中命中,所述第一地址包括第一数据缓存区当前缓存的数据的地址;根据命中判断结果,基于所述第一数据缓存区执行所述数据访问指令;其中,共享缓存设置多个数据缓存区,至少包括第一数据缓存区和第二数据缓存区;第一数据缓存区至少缓存第一处理器核与第二处理器核的不同访问地址对应的数据;第二数据缓存区缓存所述多个处理器核的共同访问地址对应的数据。本申请实施例能够整体上提升处理器核的数据访问效率。
Description
技术领域
本申请实施例涉及处理器技术领域,具体涉及一种数据访问方法、共享缓存、芯片***及电子设备。
背景技术
处理器核作为芯片***的运算、控制核心,是芯片***中信息处理、程序运行的最终执行单元。在现代计算机体系结构中,处理器核一般通过缓存(cache)与内存实现数据访问;其中,缓存作为处理器核与内存之间的存储器,缓存中相对少量的存储单位可映射内存中相对大量的存储单位,从而加速处理器核的数据访问效率。
在多核芯片***中,每个处理器核具有各自私有的私有缓存,并且多个处理器核具有共享的共享缓存。基于共享缓存由多个处理器核共享的属性,共享缓存如何合理的处理不同处理器核的数据访问指令,以整体提升处理器核的数据访问效率,成为了本领域技术人员亟需解决的技术问题。
发明内容
有鉴于此,本申请实施例提供一种数据访问方法、共享缓存、芯片***及电子设备,以针对不同处理器核之间的不同访问地址,实现数据访问指令的合理处理,从而整体提升处理器核的数据访问效率。
为实现上述目的,本申请实施例提供如下技术方案:
第一方面,本申请实施例提供一种数据访问方法,包括:
获取第一处理器核的数据访问指令,所述数据访问指令携带目标地址,所述第一处理器核为多个处理器核中的任一处理器核;
若所述目标地址至少与第二处理器核的访问地址不同,判断所述目标地址是否在第一地址中命中,所述第一地址包括第一数据缓存区当前缓存的数据的地址;
根据命中判断结果,基于所述第一数据缓存区执行所述数据访问指令;
其中,共享缓存设置有多个数据缓存区,所述多个数据缓存区至少包括第一数据缓存区和第二数据缓存区;所述第一数据缓存区至少缓存第一处理器核与第二处理器核的不同访问地址对应的数据;所述第二数据缓存区缓存所述多个处理器核的共同访问地址对应的数据。
第二方面,本申请实施例提供一种数据访问方法,包括:
获取处理器核的数据访问指令,所述数据访问指令携带目标地址以及目标标志;
根据所述目标标志的数值,确定所述目标地址对应的目标数据缓存区;
判断所述目标地址是否在所述目标数据缓存区当前缓存的数据的地址中命中;
根据命中判断结果,基于所述目标数据缓存区执行所述数据访问指令;
其中,共享缓存设置有多个数据缓存区,各个数据缓存区缓存数据的访问地址不同。
第三方面,本申请实施例提供一种共享缓存,包括:
多个数据缓存区,所述多个数据缓存区至少包括第一数据缓存区和第二数据缓存区;所述第一数据缓存区,用于至少缓存第一处理器核与第二处理器核的不同访问地址对应的数据;所述第二数据缓存区,用于缓存多个处理器核的共同访问地址对应的数据;
命中判断逻辑,用于在所述共享缓存获取第一处理器核的数据访问指令之后,若所述数据访问指令携带的目标地址至少与第二处理器核的访问地址不同,判断所述目标地址是否在第一地址中命中,所述第一地址包括第一数据缓存区当前缓存的数据的地址;
执行逻辑,用于在所述第一数据缓存区根据所述命中判断逻辑的命中判断结果,执行所述数据访问指令。
第四方面,本申请实施例提供一种芯片***,所述芯片***包括多个处理器核,以及所述多个处理器核共享的共享缓存,所述共享缓存如上述第三方面所述的共享缓存。
第五方面,本申请实施例提供一种电子设备,包括如上述第四方面所述的芯片***。
本申请实施例在多核芯片***的共享缓存至少配置第一数据缓存区和第二数据缓存区的情况下,如果第一处理器核的数据访问指令中携带的目标地址,至少与第二处理器核的访问地址不同,则共享缓存根据目标地址在第一数据缓存区对应的第一地址的命中判断结果,只是基于第一数据缓存区执行数据访问指令,而不会影响第二数据缓存区,第二数据缓存区用于缓存共同访问地址对应的数据。因此不同处理器核之间的不同访问地址在共享缓存未命中,并不会踢出第二数据缓存区中缓存的存储单位,而只是会影响该不同访问地址对应的数据缓存区中缓存的存储单位;也就是说,不同访问地址的数据访问并不会影响共同访问地址的数据访问。本申请实施例能够避免不同访问地址的数据访问影响共同访问地址的数据访问的情况发生,进而整体上提升处理器核的数据访问效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1A为芯片***的结构示意图。
图1B为芯片***的另一结构示意图。
图2A为共享缓存的结构示意图。
图2B为共享缓存的另一结构示意图。
图2C为数据访问方法的流程图。
图3A为共享缓存的再一结构示意图。
图3B为数据访问方法的另一流程图。
图4A为共享缓存的又一结构示意图。
图4B为数据访问方法的再一流程图。
图5为数据访问方法的又一流程图。
图6为数据访问方法的又另一流程图
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1A示例性的示出了芯片***100的结构示意图。如图1A所示,芯片***100可以包括:多个处理器核110;设置于每个处理器核110内部的私有缓存120;设置于多个处理器核110外部的共享缓存130;内存控制器140以及内存150;其中,共享缓存130通过内存控制器140与内存150进行数据交互。
处理器核110是芯片***的运算、控制核心。处理器核例如CPU(CentralProcessing Unit,中央处理器)核、GPU(Graphics Processing Unit,图形处理器)核、NPU(嵌入式神经网络处理器)核、TPU(张量处理单元)、AI(人工智能)核等。
缓存是在处理器核和内存之间的存取速度极快的存储器,用于通过相对少量的存储单位映射内存中相对大量的存储单位。缓存一般具有多级结构,其中,上级缓存相对少量的存储单位可映射下级缓存相对大量的存储单位,末级缓存(一般是共享缓存)相对少量的存储单位可映射内存相对大量的存储单位;并且,上级缓存拥有比下级缓存更快的数据存取速度,但上级缓存的容量相比下级缓存更小。基于此,处理器核可从数据存取速度最快,但容量最小的最上级缓存开始,通过逐级访问多级缓存和内存,来实现数据访问。需要说明的是,上级缓存相比于下级缓存更靠近处理器核。
在一些实施例中,多级缓存中的至少一级缓存可分别设置于每个处理器核内,以作为每个处理器核的私有缓存;多级缓存中剩余的至少一级缓存可设置于多个处理器核的外部,以作为多个处理器核的共享缓存。例如,以二级缓存结构为例,二级缓存结构分为一级(L1)缓存和二级(L2)缓存,此时,每个处理器核内设置的私有缓存可以是L1缓存,多个处理器核外部设置的共享缓存可以是L2缓存。又例如,以三级缓存结构为例,三级缓存结构分为L1缓存、L2缓存和三级(L3)缓存,此时,每个处理器核内设置的私有缓存可以是L1缓存,多个处理器核外部设置的共享缓存可以是L2缓存和L3缓存,例如多个处理器核外部共用L2缓存,该L2缓存再对应L3缓存。当然,本申请实施例也可支持多于三级的缓存结构,多于三级的缓存结构中至少一级缓存设置于每个处理器核内,以作为私有缓存,而剩余的至少一级缓存设置于多个处理器核的外部,以作为共享缓存。
作为一种示例,图1B示例性的示出了芯片***100的另一结构示意图。图1B可以认为是图1A的一种细化结构示例。如图1B所示,芯片***100可以包括:
处理器核111至处理器核11n,处理器核111至处理器核11n可以认为是数量为n的多个处理器核,n的具体数值可根据实际情况设置,本申请实施例并不设限;
分别设置于处理器核111至处理器核11n内部的L1缓存121至L1缓存12n,L1缓存可以认为是图1A所示私有缓存120的一种可选形式,其中,一个处理器核设置一个L1缓存,例如处理器核111设置L1缓存121,处理器核112设置L1缓存122,以此类推;
设置于处理器核111至处理器核11n外部的L2缓存131,L2缓存131可以认为是图1A所示共享缓存130的一种可选形式;L2缓存131可通过内存控制器140与内存150进行数据交互。
基于图1B所示芯片***100,当处理器核需要读取数据时,处理器核先从L1缓存中查找数据,如果在L1缓存中查找到数据,则从L1缓存中读取数据;如果在L1缓存中未查找到数据,则在多个处理器核共享的L2缓存中查找数据;如果在L2缓存中查找到数据,则从L2缓存中读取数据,此时L2缓存中被读取的数据可被替换到L1缓存,并由L1缓存将数据反馈给处理器核;如果在L2缓存中仍未查找到数据,则从内存查找并读取数据,此时,内存中被读取的数据可替换到L2缓存,再由L2缓存替换到L1缓存,从而由L1缓存将数据反馈给处理器核。处理器核写数据的过程类似,也是逐级的通过L1缓存、L2缓存来实现向内存写数据。
需要说明的是,尽管上述芯片***的结构仅示出了处理器核、私有缓存(例如L1缓存)、共享缓存(例如L2缓存)、内存控制器和内存,但是在具体实施过程中,芯片***还可以包括实现正常运行所必需的其他组件,此处不再展开。本申请实施例所指的芯片***可以例如SOC(System on Chip,***级芯片)等集成电路芯片***。
在芯片***具有多个处理器核的情况下,多个处理器核具有大部分共同的访问地址和小部分不同的访问地址。为便于说明,后续将多个处理器核共同的访问地址简称为共同访问地址,不同处理器核之间不同的访问地址简称为不同访问地址;其中,不同访问地址涉及多个处理器核整体不同的访问地址、任意至少两个处理器核之间不同的访问地址等,该任意至少两个处理器核可以是多个处理器核中的部分处理器核。
由于多个处理器核共同使用共享缓存,因此共享缓存需要满足多个处理器核的共同访问地址的数据访问需求,也需要满足不同处理器核之间不同访问地址的数据访问需求。当某个处理器核使用不同访问地址读取数据时,如果该不同访问地址未在共享缓存中命中,则共享缓存可能将已缓存的共同访问地址对应的数据踢出,然后从内存替换该不同访问地址相应的数据。上述处理方式将导致处理器核后续读取共同访问地址的数据时,共同访问地址在共享缓存中命中的概率降低,致使共享缓存可能需要从内存中再替换回共同访问地址的数据。然而,不同访问地址在多个处理器核总体的访问地址中仅占一小部分,而共同访问地址在多个处理器核总体的访问地址中占据大部分,上述处理方式将使得处理器核整体的数据访问效率降低。
在一些实施例中,图1B所示的处理器核111至处理器核11n具有大部分共同的访问地址,但针对处理器核111,处理器核111用于数据访问的小部分访问地址可能与其他处理器核存在不同。在一个示例中,假设处理器核111的访问地址包括访问地址10至1a以及访问地址20至2b,访问地址10至1a为共同访问地址,访问地址20至2b为不同访问地址,并且访问地址10至1a的地址数量大于访问地址20至2b的地址数量。需要说明的是,共同访问地址可能并不是连续的,此处为便于示例,仅以访问地址10至1a为连续地址进行示例,同理,不同访问地址也可能并不是连续的,此处仅以访问地址20至2b为连续地址进行示例。
在上述示例中,当处理器核111使用访问地址20读取数据时,如果访问地址20未在共享缓存中命中,共享缓存基于替换算法,可能将访问地址10的数据踢出,然后从内存中替换回访问地址20的数据。然而,访问地址20作为不同访问地址,不同访问地址在处理器核111至处理器核11n的总体访问地址中的占比非常小,例如访问地址20仅可能只是处理器核111使用而其他处理器核并不使用;而访问地址10作为共同访问地址,可能被多个处理器核用于数据访问(甚至多个处理器核中的部分或者全部处理器核同时使用访问地址10进行数据访问),因此如果在访问地址20未在共享缓存中命中时,通过踢出访问地址10的数据来从内存中替换访问地址20的数据,这极可能导致后续多个处理器核使用访问地址10读取数据时,由于访问地址10的数据未在共享缓存中命中,而降低处理器核的数据访问效率。在一些实施例中,共享缓存与内存进行数据替换的替换算法例如LRU(Least Recently Used,最近最少使用)算法、LFU(Lease Frequently Used,最不经常使用)算法等,本申请实施例对此并不设限。
基于上述描述可以看出,共享缓存的上述数据处理方式存在数据访问效率的损失问题,即不同访问地址在共享缓存中未命中,可能影响共同访问地址的数据访问效率,从而致使处理器核整体的数据访问效率降低。基于此,共享缓存需要设置合理的数据访问方案,以避免不同访问地址的数据访问影响共同访问地址的数据访问的情况发生,进而整体上提升处理器核的数据访问效率。
图2A示例性的示出了共享缓存130的结构示意图。如图2A所示,共享缓存130可以包括:数据缓存区200,数据缓存区200中可以设置用于具体缓存数据的多个存储单位。在一些实施例中,数据缓存区200可以设置2的整数次方个存储单位,例如,2、4、8、16等数量的存储单位。在一些实施例中,数据缓存区可称为cache ram(缓存随机存取存储器)。
内存中的存储单位可与数据缓存区中的存储单位建立映射关系,例如将内存中相对大量的存储单位映射到数据缓存区中相对少量的存储单位。由于共享缓存中整体的存储单位总数小于内存的存储单位总数,因此内存的存储单位中的数据并无法完全写入共享缓存中的存储单位,这就涉及到共享缓存与内存之间的存储单位替换(即共享缓存与内存之间的数据替换)。
在一些实施例中,处理器核在读取数据时,如果读地址与数据缓存区中缓存的数据的地址相同,则共享缓存可将数据缓存区中该读地址相应的数据,按照缓存层级逐级的返回给处理器核。如果读地址与数据缓存区中缓存的数据的地址不同,则共享缓存需要根据替换算法,将内存中读地址对应的存储单位替换到数据缓存区中,同时,共享缓存需要从数据缓存区中踢出一个或多个存储单位。
在图2A所示共享缓存的结构基础上,数据缓存区200映射的存储单位包括共同访问地址和不同访问地址在内存对应的存储单位。当处理器核进行数据访问时,针对不同处理器核之间的不同访问地址,如果该不同访问地址与数据缓存区中缓存的数据的地址不同,则共享缓存有可能将多个处理器核的共同访问地址所对应的存储单位,从数据缓存区中替换到内存中;这导致后续处理器核在读取该共同访问地址的数据时,共享缓存需要再将内存中该共同访问地址对应的存储单位,替换回数据缓存区中,从而导致处理器核整体的数据访问效率存在损失。
基于此,本申请实施例可将共同访问地址映射的数据缓存区与不同访问地址映射的数据缓存区进行区分,避免不同访问地址的数据访问影响共同访问地址的数据访问的情况发生。图2B示例性的示出了共享缓存130的另一结构示意图。如图2B所示,共享缓存130可以包括:第一数据缓存区300和第二数据缓存区400。
在本申请实施例中,第一数据缓存区300的存储单位可以映射不同访问地址在内存对应的存储单位。第二数据缓存区400的存储单位可以映射共同访问地址在内存对应的存储单位。在本申请实施例中,不同访问地址的数量小于共同访问地址的数量,因此,第一数据缓存区的存储单位数量可以小于第二数据缓存区的存储单位数量,例如,第一数据缓存区的存储单位数量占第二数据缓存区的存储单位数量的第一比例,且第一比例小于1(比如,第一比例为1/4等)。
在一些实施例中,第二数据缓存区可以是共享缓存中原有的数据缓存区(例如原有的cache ram),第一数据缓存区可以是共享缓存中新增的数据缓存区(例如新增的cacheram),且新增的数据缓存区的数据容量(例如存储单位数量)小于原有的数据缓存区的数据容量,例如新增的数据缓存区的数据容量为原有的数据缓存区的数据容量的1/4。
基于图2B所示的共享缓存的结构,图2C示出了本申请实施例提供的数据访问方法流程图。该方法流程可由共享缓存执行实现。参照图2C,该方法流程可以包括如下步骤。
在步骤S210中,获取第一处理器核的数据访问指令,所述数据访问指令携带目标地址。
第一处理器核可以是多个处理器核中当前发起数据访问指令的任一处理器核。例如图1B所示的处理器核111至处理器核11n中的任一处理器核。第一处理器核的数据访问指令可以携带第一处理器核当前访问数据的目标地址。在一些实施例中,如果第一处理器核当前需要读数据,则所述数据访问指令可以是数据读指令,相应的,所述目标地址可以是目标读地址。在另一些实施例中,如果第一处理器核当前需要写数据,则所述数据访问指令可以是数据写指令,相应的,所述目标地址可以是数据写地址。
目标地址未在第一处理器核的私有缓存中命中时,共享缓存可获取到第一处理器核的数据访问指令。例如以图1B所示结构为例,处理器核111在当前发起数据访问指令(即处理器核111当前成为第一处理器核),如果目标地址未在L1缓存121中命中,则处理器核111的数据访问指令可传递到L2缓存131。在进一步的示例说明中,如果处理器核111当前发起的是数据读指令,则数据读指令的目标读地址未在L1缓存121命中时,数据读指令可传递到L2缓存131;如果处理器核111当前发起的是数据写指令,则数据写指令的目标写地址未在L1缓存121中命中,数据写指令可传递到L2缓存131。
在步骤S211中,判断所述目标地址是属于多个处理器核的不同访问地址还是共同访问地址。
本申请实施例在共享缓存配置第一数据缓存区和第二数据缓存区的情况下,第一数据缓存区可以映射多个处理器核的不同访问地址在内存中对应的存储单位,基于数据是以存储单位进行存储,因此第一数据缓存区可以用于缓存多个处理器核的不同访问地址对应的数据;同时,第二数据缓存区可以映射多个处理器核的共同访问地址在内存对应的存储单位,即第二数据缓存区可以用于缓存多个处理器核的共同访问地址对应的数据。
基于此,目标地址如果是多个处理器核的不同访问地址,则需要与第一数据缓存区当前缓存的数据的地址进行命中判断,也就是说,目标地址如果是多个处理器核的不同访问地址,则需要判断第一数据缓存区的存储单位中是否具有所述目标地址对应的存储单位。目标地址如果是多个处理器核的共同访问地址,则需要与第二数据缓存区当前缓存的数据的地址进行命中判断,也就是说,目标地址如果是多个处理器核的共同访问地址,则需要判断第二数据缓存区的存储单位中是否具有所述目标地址对应的存储单位。
基于第一数据缓存区和第二数据缓存区的区分,本申请实施例在获取第一处理器核的数据访问指令之后,需要判断数据访问指令中携带的目标地址是属于多个处理器核的不同访问地址还是共同访问地址。
在一些实施例中,所述数据访问指令中可以携带目标标志(目标标志可定义为ind),本申请实施例可以通过目标标志的不同数值,来判断目标地址是属于多个处理器核的不同访问地址还是共同访问地址。例如,第一处理器核在生成数据访问指令时,可基于当前需要访问的目标地址是第一处理器核与其他处理器核的共同访问地址,还是与其他处理器核的不同访问地址,来设置目标标志的不同数值。从而,第一处理器核将目标标志携带在数据访问指令中,以使得后续共享缓存可通过目标标志的数值,来判断目标地址是属于多个处理器核的不同访问地址还是共同访问地址。
在一些实施例中,由于目标标志的数值需要对应目标地址是多个处理器核的不同访问地址还是共同访问地址这两种情况,因此目标标志可以使用两个不同的数值,分别对应目标地址是多个处理器核的不同访问地址和共同访问地址。作为一种可选实现,目标标志的数值如果为第一值,则目标地址属于多个处理器核的不同访问地址,目标标志的数值如果为第二值,则目标地址属于多个处理器核的共同访问地址。例如,第一值可以为1,第二值可以为0;当然,第一值和第二值只要是两个不同的数值即可,此处仅以1、0的数值对目标标志的两个不同数值进行示例。在一个示例中,处理器核111在当前需要进行数据访问时,如果需要访问的目标地址为多个处理器核的不同访问地址,则处理器核111可生成数值为1的目标标志,并携带在数据访问指令中;如果需要访问的目标地址为多个处理器核的共同访问地址,则处理器核111可生成数值为0的目标标志,并携带在数据访问指令中。
在步骤S212中,若所述目标地址属于多个处理器核的不同访问地址,判断所述目标地址是否在第一地址中命中,所述第一地址为第一数据缓存区当前缓存的数据的地址。
在步骤S211判断目标地址属于多个处理器核的不同访问地址时(例如判断目标标志的数值为第一值时),共享缓存可确定需基于第一数据缓存区当前缓存的数据的地址,对目标地址进行命中判断。为便于说明,本申请实施例将第一数据缓存区当前缓存的数据的地址称为第一地址。
在步骤S213中,根据命中判断结果,基于第一数据缓存区执行所述数据访问指令。
在目标地址属于多个处理器核的不同访问地址,且第一数据缓存区配置为缓存多个处理器核的不同访问地址对应的数据的情况下,共享缓存可根据目标地址在第一地址中是否命中的命中判断结果,来基于第一数据缓存区执行所述数据访问指令。
在一些实施例中,基于步骤S212的命中判断结果,如果目标地址在第一地址中命中,则说明第一数据缓存区当前缓存的存储单位中具有目标地址对应的存储单位,即第一数据缓存区当前缓存有目标地址对应的数据。此时,如果数据访问指令为数据读指令,则共享缓存可将第一数据缓存区当前缓存的与目标地址对应的数据(即第一数据缓存区中与目标地址对应的存储单位所存储的数据),按照缓存层级逐级的返回给第一处理器核。如果数据访问指令为数据写指令,则说明第一数据缓存区中与目标地址对应的存储单位已存储有数据,共享缓存可基于第一处理器核当前需要写入的写数据,对第一数据缓存区中与目标地址对应的存储单位进行数据更新,进而,共享缓存可将第一数据缓存区中更新写数据的与目标地址对应的存储单位,同步到内存中。
在一些实施例中,基于步骤S212的命中判断结果,如果目标地址在第一地址中未命中,则说明第一数据缓存区当前缓存的存储单位中不具有目标地址对应的存储单位,即第一数据缓存区当前未缓存目标地址对应的数据。此时,如果数据访问指令为数据读指令,则共享缓存可将第一数据缓存区中的至少一个存储单位踢出,并将内存中与目标地址对应的存储单位替换到第一数据缓存区中,从而基于第一数据缓存区替换的目标地址对应的存储单位,共享缓存可将目标地址对应的数据,按照缓存层级逐级的返回给第一处理器核。如果数据访问指令为数据写指令,则共享缓存可将第一数据缓存区中的至少一个存储单位踢出,并将内存中与目标地址对应的存储单位替换到第一数据缓存区中,然后共享缓存基于第一处理器核的写数据,对第一数据缓存区替换的与目标地址对应的存储单位进行数据更新,从而使得第一处理器核的写数据能够写入第一数据缓存区中与目标地址对应的存储单位;进而,共享缓存可将第一数据缓存区中更新写数据的与目标地址对应的存储单位,再同步到内存中。
可见,在目标地址属于多个处理器核的不同访问地址时,共享缓存根据目标地址在第一地址中是否命中的命中判断结果,是基于第一数据缓存区执行与目标地址相应的数据读取过程,或者,执行与目标地址相应的数据写入过程。
在步骤S214中,若所述目标地址属于多个处理器核的共同访问地址,判断所述目标地址是否在第二地址中命中,所述第二地址为第二数据缓存区当前缓存的数据的地址。
在步骤S211判断目标地址属于多个处理器核的共同访问地址时(例如判断目标标志的数值为第二值时),共享缓存可确定需基于第二数据缓存区当前缓存的数据的地址,对目标地址进行命中判断。为便于说明,本申请实施例将第二数据缓存区当前缓存的数据的地址称为第二地址。
在步骤S215中,根据命中判断结果,基于第二数据缓存区执行所述数据访问指令。
在目标地址属于多个处理器核的共同访问地址,且第二数据缓存区配置为缓存多个处理器核的共同访问地址对应的数据的情况下,目标地址对应的数据访问过程可基于第二数据缓存区执行实现。也就是说,在目标地址属于多个处理器核的共同访问地址时,共享缓存基于目标地址在第二地址中是否命中的命中判断结果,是基于第二数据缓存区执行与目标地址相应的数据读取过程,或者,执行与目标地址相应的数据写入过程。
本申请实施例在共享缓存配置第一数据缓存区和第二数据缓存区的情况下,第一数据缓存区可用于缓存多个处理器核的不同访问地址对应的数据,第二数据缓存区可用于缓存多个处理器核的共同访问地址对应的数据;从而针对第一处理器核的数据访问指令,如果数据访问指令中携带的目标地址为多个处理器核的不同访问地址,则共享缓存可基于第一数据缓存区当前缓存的数据对应的第一地址,对目标地址进行命中判断;进而根据命中判断结果,共享缓存可基于第一数据缓存区执行数据访问指令,以实现第一处理器核的数据访问过程。
本申请实施例在配置第一数据缓存区和第二数据缓存区的情况下,如果数据访问指令的目标地址为多个处理器核的不同访问地址,共享缓存基于目标地址在第一地址的命中判断结果,只是基于第一数据缓存区执行数据访问指令,而不会影响第二数据缓存区。可见,不同访问地址在第一数据缓存区未命中,并不会踢出第二数据缓存区中缓存的存储单位,而只会影响第一数据缓存区中缓存的存储单位;也就是说,不同访问地址的数据访问并不会影响共同访问地址的数据访问,因此本申请实施例能够避免不同访问地址的数据访问影响共同访问地址的数据访问的情况发生,进而整体上提升处理器核的数据访问效率。
在进一步的一些实施例中,共享缓存可以进一步设置多个地址索引区,一个地址索引区对应一个数据缓存区,用于存储对应的数据缓存区中当前缓存的数据的地址的tag(标签),从而在目标地址属于不同访问地址时,可通过第一数据缓存区对应的地址索引区实现命中判断,在目标地址属于共同访问地址时,可通过第二数据缓存区对应的地址索引区实现命中判断。图3A示例性的示出了共享缓存130的再一结构示意图。结合图2B和图3A所示,共享缓存130可以包括:第一地址索引区310、第二地址索引区410、命中判断逻辑020、执行逻辑030、第一数据缓存区300和第二数据缓存区400;其中,第一数据缓存区300与第二数据缓存区400的结构可结合图2B所示。
第一地址索引区310为与第一数据缓存区300对应的地址索引区,可以用于存储第一数据缓存区300当前缓存的数据的地址对应的tag。第二地址索引区410为与第二数据缓存区400对应的地址索引区,可以用于存储第二数据缓存区400当前缓存的数据的地址对应的tag。本申请实施例在共享缓存配置第一数据缓存区和第二数据缓存区,且第一数据缓存区当前缓存的数据对应的地址为第一地址,第二数据缓存区当前缓存的数据对应的地址为第二地址的情况下,第一地址索引区310具体可以用于存储第一地址的tag,第二地址索引区410具体可以用于存储第二地址的tag。
在一些实施例中,tag可以是内存地址(访问地址)的高位地址信息,用于校验数据缓存区中是否具有处理器核要访问的存储单位。例如,第一地址的tag可以用于检验第一数据缓存区中是否具有处理器核要访问的存储单位,第二地址的tag可以用于校验第二数据缓存区中是否具有处理器核要访问的存储单位。
在一些实施例中,地址索引区也可称为tag ram(存储tag的随机存储器)。
命中判断逻辑020是共享缓存中设置的用于对目标地址进行命中判断的逻辑单元。在本申请实施例中,如果目标地址属于多个处理器核的不同访问地址,则命中判断逻辑可基于第一地址索引区中存储的第一地址的tag,对目标地址进行命中判断;如果目标地址属于多个处理器核的共同访问地址,则命中判断逻辑可基于第二地址索引区中存储的第二地址的tag,对目标地址进行命中判断。
在一些实施例中,结合图3A所示,命中判断逻辑020可基于数据访问指令中携带的目标标志的数值,确定是使用第一地址索引区310存储的第一地址的tag,还是使用第二地址索引区410存储的第二地址的tag,对目标地址进行命中判断。在一种可选实现中,如果目标标志的数值为第一值(例如1),则目标地址属于多个处理器核的不同访问地址,命中判断逻辑020可使用第一地址索引区310存储的第一地址的tag,对目标地址进行命中判断;如果目标标志的数值为第二值(例如0),则目标地址属于多个处理器核的共同访问地址,命中判断逻辑020可使用第二地址索引区410存储的第二地址的tag,对目标地址进行命中判断。
命中判断逻辑020在得到命中判断结果之后,可将命中判断结果传递给执行逻辑030。
执行逻辑030是共享缓存中设置的用于具体执行数据访问指令的逻辑单元。在本申请实施例中,如果目标地址属于多个处理器核的共同访问地址,则执行逻辑可基于命中判断逻辑的命中判断结果,基于第二数据缓存区执行数据访问指令。例如,如果目标地址的命中判断结果为命中,则执行逻辑030可直接基于第二数据缓存区,实现第一处理器核要求的数据读或数据写。如果目标地址的命中判断结果为未命中,则执行逻辑030可将第二数据缓存区中的至少一个存储单位踢出,并从内存替换目标地址对应的存储单位,从而基于第二数据缓存区中替换的目标地址对应的存储单位,实现第一处理器核要求的数据读或数据写。
在进一步的一些实施例中,如果目标地址属于多个处理器核的不同访问地址,则执行逻辑可根据命中判断逻辑相应的命中判断结果,基于第一数据缓存区执行数据访问指令。
需要说明的是,图3A所示的第一地址索引区、第二地址索引区、命中判断逻辑、执行逻辑仅是共享缓存设置的用于实现命中判断和执行访问指令的可选逻辑单元,本申请实施例也可支持共享缓存以其他逻辑结构实现目标地址的命中判断和执行访问指令,并不限于图3A所示结构。
在一些实施例中,图3B示出了本申请实施例提供的数据访问方法的另一流程图。该方法流程可由共享缓存执行实现。参照图3B,该方法流程可以包括如下步骤。
在步骤S310中,获取第一处理器核的数据访问指令,所述数据访问指令携带目标地址以及目标标志。
在步骤S311中,根据所述目标标志的数值,判断所述目标地址是属于多个处理器核的不同访问地址还是共同访问地址。
在一些实施例中,如果目标标志的数值为第一值,则目标地址属于多个处理器核的不同访问地址,如果目标标志的数值为第二值,则目标地址属于多个处理器核的共同访问地址。
在步骤S312中,若所述目标地址属于多个处理器核的不同访问地址,判断所述目标地址是否在第一地址索引区存储的第一地址的tag中命中,所述第一地址为第一数据缓存区当前缓存的数据的地址。
在目标地址属于多个处理器核的不同访问地址时,本申请实施例可基于第一地址索引区中存储的第一地址的tag,对目标地址进行命中判断。如果目标地址在第一地址的tag中命中,则说明第一数据缓存区当前具有目标地址对应的存储单位,如果目标地址在第一地址的tag中未命中,则说明第一数据缓存区当前不具有目标地址对应的存储单位。
在步骤S313中,根据命中判断结果,基于第一数据缓存区执行所述数据访问指令。
步骤S313的介绍可同理参照前文相应部分的描述,此处不再赘述。
在步骤S314中,若所述目标地址属于多个处理器核的共同访问地址,判断所述目标地址是否在第二地址索引区存储的第二地址的tag中命中,所述第二地址为第二数据缓存区当前缓存的数据的地址。
在目标地址属于多个处理器核的共同访问地址时,本申请实施例可基于第二地址索引区中存储的第二地址的tag,对目标地址进行命中判断。如果目标地址在第二地址的tag中命中,则说明第二数据缓存区当前具有目标地址对应的存储单位,如果目标地址在第二地址的tag中未命中,则说明第二数据缓存区当前不具有目标地址对应的存储单位。
在步骤S315中,根据命中判断结果,基于第二数据缓存区执行所述数据访问指令。
步骤S315的介绍可同理参照前文相应部分的描述,此处不再赘述。
本申请实施例进一步描述了目标地址的命中判断过程,即在目标地址属于多个处理器核的不同访问地址时,目标地址的命中判断可基于第一地址索引区存储的第一地址的tag实现;在目标地址属于多个处理器核的共同地址时,目标地址的命中判断可基于第二地址索引区存储的第二地址的tag实现。需要说明的是,上述描述的目标地址的命中判断过程仅是一种可选实现,本申请实施例也可支持其他可能的实现方式;例如,作为可能的替代实现,本申请实施例可在目标地址属于不同访问地址时,直接查找第一数据缓存区中设置的tag,对目标地址进行命中判断;在目标地址属于共同访问地址时,直接查找第二数据缓存区中设置的tag,对目标地址进行命中判断。
本申请实施例可以通过在共享缓存中配置不同的第一数据缓存区和第二数据缓存区,实现数据访问指令在多个处理器核的不同访问地址和共同访问地址下的隔离执行,避免不同访问地址的数据访问影响共同访问地址的数据访问的情况发生,从而整体上提升处理器核的数据访问效率。
在一些实施例中,数据缓存区除配置存储多个处理器核的共同访问地址对应的数据的第二数据缓存区外,还可配置多个特殊数据缓存区;一个特殊数据缓存区可以包括多个存储单位,用于缓存任意至少两个处理器核之间的不同访问地址对应的数据。以多个特殊数据缓存区用于缓存任意两个处理器核的不同访问地址对应的数据为例,图4A示例性的示出了共享缓存的又一结构示意图。参照图4A,共享缓存可以包括:多个数据缓存区。该多个数据缓存区包括多个特殊数据缓存区301至30m,以及第二数据缓存区400。m的数值可根据实际情况设定,本申请实施例并不设限。在一些实施例中,图4A所示的各个数据缓存区(即,各个特殊数据缓存区和第二数据缓存区)的存储容量大小可以没有约束,并且各个数据缓存区独立。本申请实施例可基于数据访问指令中携带的目标标志的数值,从多个数据缓存区中确定当前执行数据访问指令的具体数据缓存区。
在本申请实施例中,一个特殊数据缓存区的存储单位可以用于映射任意两个处理器核的不同访问地址在内存对应的存储单位,即,一个特殊数据缓存区可以用于缓存任意两个处理器核的不同访问地址对应的数据。
为便于理解,以芯片***具有3个处理器核,且分别为处理器核111、112和113(未图示)为例,则多个特殊数据缓存区可以分为特殊数据缓存区301、特殊数据缓存区302、和特殊数据缓存区303(未图示)。其中,处理器核111和112的不同访问地址在内存对应的存储单位可映射到特殊数据缓存区301,即特殊数据缓存区301可以用于缓存处理器核111和112的不同访问地址对应的数据;处理器核112和处理器核113的不同访问地址在内存对应的存储单位可映射到特殊数据缓存区302,即特殊数据缓存区302可以用于缓存处理器核112和113的不同访问地址对应的数据;处理器核111和113的不同访问地址在内存对应的存储单位可映射到特殊数据缓存区303,即特殊数据缓存区303可以用于缓存处理器核111和113的不同访问地址对应的数据。需要说明的是,多个特殊数据缓存区的数量可以根据多个处理器核的数量而定,并且一个特殊数据缓存区可以缓存任意两个处理器核的不同访问地址对应的数据,本段的描述仅作为示例内容帮助理解特殊数据缓存区,其不应对本申请的保护范围产生限制。
在本申请实施例中,第一数据缓存区可以属于特殊数据缓存区,例如第一数据缓存区包含于多个特殊数据缓存区中;基于特殊数据缓存区用于缓存任意两个处理器核的不同访问地址对应的数据,则第一数据缓存区可以用于具体缓存两个处理器核的不同访问地址对应的数据。在一些实施例中,第一数据缓存区可以缓存第一处理器核和第二处理器核的不同访问地址对应的数据。其中,第一处理器核和第二处理器核为多个处理器核中的任意两个不同的处理器核,且第一处理器核和第二处理器核为多个处理器核中的部分处理器核。
在进一步的一些实施例中,共享缓存中还可设置多个地址索引区,一个地址索引区对应一个数据缓存区,以用于存储对应的数据缓存区当前缓存的数据的地址对应的tag。作为可选实现,各个特殊数据缓存区可分别对应一个地址索引区,并且第二数据缓存区可对应一个地址索引区。基于第一数据缓存区属于特殊数据缓存区,因此第一数据缓存区也可对应一个地址索引区。为便于说明,第一数据缓存区对应的地址索引区也称为第一地址索引区,第二数据缓存区对应的地址索引区也称为第二地址索引区。并且第一地址索引区可以存储第一数据缓存区当前缓存的数据对应的第一地址的tag,第二地址索引区可以存储第二数据缓存区当前缓存的数据对应的第二地址的tag。
基于配置多个特殊数据缓存区的情况,本申请实施例可设定多个特殊数据缓存区中的第一数据缓存区,用于缓存第一处理器核和第二处理器核的不同访问地址对应的数据。基于此,图4B示出了本申请实施例提供的数据访问方法的再一流程图。该方法流程可由共享缓存执行实现。参照图4B,该方法流程可以包括如下步骤。
在步骤S410中,获取第一处理器核的数据访问指令,所述数据访问指令携带目标地址。
在步骤S411中,若所述目标地址与第二处理器核的访问地址不同,判断所述目标地址是否在第一地址中命中,所述第一地址为第一数据缓存区当前缓存的数据的地址。
在本申请实施例中,第一数据缓存区用于缓存第一处理器核与第二处理器核的不同访问地址对应的数据,如果数据访问指令中携带的目标地址与第二处理器核的访问地址不同,则目标地址需基于第一数据缓存区当前缓存的数据的地址(即第一地址)进行命中判断。
在一些实施例中,所述数据访问指令中可以携带目标标志。基于本申请实施例配置了第二数据缓存区、多种特殊数据缓存区(包含第一数据缓存区),因此本申请实施例可以通过目标标志的不同数值,来对应第二数据缓存区和各个特殊数据缓存区。作为可选实现,本申请实施例可预先设定目标标志在第二数据缓存区对应的数值、在各个特殊数据缓存区对应的数值(包含目标标志在第一数据缓存区对应的数值);如果数据访问指令中携带的目标标志的当前数值与第一数据缓存区相对应,则本申请实施例可确定所述目标地址与第二处理器核的访问地址不同。
作为一种示例,假设数据缓存区中配置了第二数据缓存区400、特殊数据缓存区301、特殊数据缓存区302和特殊数据缓存区303,其中,特殊数据缓存区301为第一数据缓存区,则本申请实施例可通过目标标志的4个数值来分别对应第二数据缓存区、特殊数据缓存区301、特殊数据缓存区302和特殊数据缓存区303。例如,目标标志的数值00对应第二数据缓存区400,目标标志的数值01对应特殊数据缓存区301,目标标志的数值10对应特殊数据缓存区302,目标标志的数值11对应特殊数据缓存区303。从而,如果数据访问指令中携带的目标标志的当前数值为01,则可确定目标标志的当前数值01对应特殊数据缓存区301(即第一数据缓存区),从而确定所述目标地址与第二处理器核的访问地址不同。
在确定所述目标地址与第二处理器核的访问地址不同时,本申请实施例可基于第一数据缓存区当前缓存的数据的第一地址对目标地址进行命中判断。
在一些实施例中,共享缓存的第二地址索引区可以存储第二数据缓存区当前缓存的数据的地址对应的tag(即第二地址的tag)、各个特殊数据缓存区对应的地址索引区,可以存储对应的特殊数据缓存区当前缓存的数据的地址对应的tag;其中,第一数据缓存区属于特殊数据缓存区,第一数据缓存区对应的第一地址索引区,可存储第一数据缓存区当前缓存的数据的地址对应的tag(即第一地址的tag)。基于此,在目标地址与第二处理器核的访问地址不同时,本申请实施例可通过判断目标地址是否在第一地址索引区存储的第一地址的tag中命中,以实现对目标地址进行命中判断。
在步骤S412中,根据命中判断结果,基于第一数据缓存区执行所述数据访问指令。
共享缓存可基于目标地址在第一地址中是否命中的命中判断结果,基于第一数据缓存区,执行所述目标地址对应的数据访问过程。也就是说,在目标地址属于第一处理器核和第二处理器核的不同访问地址时,共享缓存根据目标地址在第一地址中是否命中的命中判断结果,是基于第一数据缓存区执行与目标地址相应的数据读取过程,或者,执行与目标地址相应的数据写入过程。
在步骤S413中,若所述目标地址属于多个处理器核的共同访问地址,判断所述目标地址是否在第二地址中命中,所述第二地址为第二数据缓存区当前缓存的数据的地址。
在一些实施例中,如果数据访问指令中携带的目标标志的当前数值,与第二数据缓存区相对应,则本申请实施例可确定目标地址属于多个处理器核的共同访问地址。结合上述示例,例如目标标志的当前数值为00,则可确定目标标志的当前数值00对应第二数据缓存区,从而所述目标地址属于多个处理器核的共同访问地址。
在确定目标地址属于多个处理器核的共同访问地址时,共享缓存可确定需基于第二数据缓存区当前缓存的数据的地址(即第二地址),对目标地址进行命中判断。在一些实施例中,本申请实施例可基于第二地址索引区中存储的第二地址的tag,对目标地址进行命中判断,以实现判断目标地址是否在第二地址中命中。
在步骤S414中,根据命中判断结果,基于第二数据缓存区执行所述数据访问指令。
在目标地址属于多个处理器核的共同访问地址时,共享缓存可根据目标地址在第二地址中是否命中的命中判断结果,基于第二数据缓存区执行与目标地址相应的数据读取过程,或者,执行与目标地址相应的数据写入过程。
本申请实施例在共享缓存配置第二数据缓存区和多个特殊数据缓存区,其中,第二数据缓存区用于缓存多个处理器核的共同访问地址对应的数据,一个特殊数据缓存区用于缓存任意两个处理器核的不同访问地址对应的数据;并且,该多个特殊数据缓存区中包含第一数据缓存区,用于具体缓存第一处理器核与第二处理器核的不同访问地址对应的数据。进而,共享缓存在获得第一处理器核的数据访问指令之后,如果数据访问指令中携带的目标地址不同于第二处理器核的访问地址,则共享缓存可基于第一数据缓存区当前缓存的数据对应的第一地址,对目标地址进行命中判断;根据命中判断结果,共享缓存可基于第一数据缓存区执行数据访问指令,以实现第一处理器核的数据访问过程。
可见,本申请实施例在配置第二数据缓存区和多个特殊数据缓存区的情况下,如果目标地址为两个处理器核的不同访问地址,则共享缓存可基于该不同访问地址对应的特殊数据缓存区当前缓存的数据的地址,对目标地址进行命中判断;并且基于命中判断结果,共享缓存只是基于该不同访问地址对应的特殊数据缓存区执行数据访问指令,而不会影响第二数据缓存区。因此两个处理器核的不同访问地址在共享缓存未命中,并不会踢出第二数据缓存区中缓存的存储单位,而只是会影响该不同访问地址对应的特殊数据缓存区中的存储单位。也就是说,两个处理器核的不同访问地址的数据访问,并不会影响多个处理器核的共同访问地址的数据访问,本申请实施例能够避免不同访问地址的数据访问影响共同访问地址的数据访问的情况发生,进而整体上提升处理器核的数据访问效率。
需要说明的是,图4B仅是以一个特殊数据缓存区缓存任意两个处理器核的不同访问地址对应的数据为例,本申请实施例也可支持一个特殊数据缓存区缓存至少两个处理器核的不同访问地址对应的数据,该至少两个处理器核为芯片***的多个处理器核中的部分处理器核(即该至少两个处理器核的数量小于该多个处理器核的数量)。也就是说,针对特殊数据缓存区中的第一数据缓存区而言,第一数据缓存区并不一定缓存第一处理器核与第二处理器核的不同访问地址对应的数据,而是可缓存第一处理器核与至少一个其他处理器核的不同访问地址对应的数据,其他处理器核为多个处理器核中不同于第一处理器核的处理器核,并且第一处理器核与所述至少一个其他处理器核的总数,小于芯片***的多个处理器核的总数。作为一种示例,以芯片***具有4个处理器核为例,除第二数据缓存区缓存4个处理器核的共同访问地址对应的数据外,一个特殊数据缓存区可缓存3个处理器核的不同访问地址对应的数据。
在一个特殊数据缓存区缓存大于两个处理器核的不同访问地址对应的数据时,本申请实施例提供的数据访问方案可同理实现,此处不再展开。原则上来说,如果目标地址为芯片***中部分处理器核(部分处理器核大于两个)的不同访问地址,共享缓存可基于该不同访问地址对应的特殊数据缓存区当前缓存的数据的地址,对目标地址进行命中判断;并且基于命中判断结果,共享缓存只是基于该不同访问地址对应的特殊数据缓存区执行数据访问指令,而不会影响第二数据缓存区。
在一些实施例中,图5示出了本申请实施例提供的数据访问方法的又一流程图。该方法可由共享缓存执行实现,参照图5,该方法流程可以包括如下步骤。
在步骤S510中,获取第一处理器核的数据访问指令,所述数据访问指令包括目标地址。
在步骤S511中,若所述目标地址至少与第二处理器核的访问地址不同,判断所述目标地址是否在第一地址中命中,所述第一地址包括第一数据缓存区当前缓存的数据的地址。
在步骤S512中,根据命中判断结果,基于所述第一数据缓存区执行所述数据访问指令。
其中,共享缓存设置有多个数据缓存区,所述多个数据缓存区至少包括第一数据缓存区和第二数据缓存区;所述第一数据缓存区至少缓存第一处理器核与第二处理器核的不同访问地址对应的数据;所述第二数据缓存区缓存所述多个处理器核的共同访问地址对应的数据。
本申请实施例在多核芯片***的共享缓存至少配置第一数据缓存区和第二数据缓存区的情况下,如果第一处理器核的数据访问指令中携带的目标地址,至少与第二处理器核的访问地址不同,则共享缓存根据目标地址在第一数据缓存区对应的第一地址的命中判断结果,只是基于第一数据缓存区执行数据访问指令,而不会影响第二数据缓存区,第二数据缓存区用于缓存共同访问地址对应的数据。因此不同处理器核之间的不同访问地址在共享缓存未命中,并不会踢出第二数据缓存区中缓存的存储单位,而只是会影响该不同访问地址对应的数据缓存区中缓存的存储单位;也就是说,不同访问地址的数据访问并不会影响共同访问地址的数据访问。本申请实施例能够避免不同访问地址的数据访问影响共同访问地址的数据访问的情况发生,进而整体上提升处理器核的数据访问效率。
在一些实施例中,共享缓存还设置有多个地址索引区;一个地址索引区对应一个数据缓存区,所述地址索引区用于存储对应的数据缓存区当前缓存的数据的地址的标签tag。
在进一步的一些实施例中,所述数据访问指令还可携带目标标志;所述目标标志的一个数值对应一个数据缓存区;其中,所述目标地址在所述目标标志的当前数值对应的数据缓存区所对应的地址索引区中进行命中判断。例如,目标标志的当前数值对应的第一数据缓存区,则目标地址在第一数据缓存区对应的第一地址索引区中进行命中判断;目标标志的当前数值对应的第二数据缓存区,则目标地址在第二数据缓存区对应的第二地址索引区中进行命中判断。
在一些实施例中,结合图2B和图2C所示,所述第一数据缓存区可以具体缓存所述多个处理器核的不同访问地址对应的数据;基于此,步骤S511所指的所述目标地址至少与第二处理器核的访问地址不同可以具体包括:所述目标地址属于所述多个处理器核的不同访问地址。
作为可选实现,如果所述目标标志的数值为第一值(目标标志的数值与第一数据缓存区相对应的一种可选形式),则所述目标地址属于所述多个处理器核的不同访问地址;如果所述目标标志的数值为第二值(目标标志的数值与第二数据缓存区相对应的一种可选形式),则所述目标地址属于所述多个处理器核的共同访问地址。在进一步的可选实现中,目标标志的数值为第一值,则目标地址在第一地址索引区中进行命中判断,目标标志的数值为第二值,则目标地址在第二地址索引区中进行命中判断。
在另一些实施例中,结合图4A所示,所述共享缓存可以配置有与第二数据缓存区不同的多个特殊数据缓存区,一个特殊数据缓存区用于缓存任意两个处理器核的不同访问地址对应的数据;所述第一数据缓存区属于特殊数据缓存区中,此时,所述第一数据缓存区具体缓存第一处理器核与第二处理器核的不同访问地址对应的数据;基于此,步骤S511所指的所述目标地址至少与第二处理器核的访问地址不同具体可以包括:所述目标地址属于第一处理器核与第二处理器核的不同访问地址。
在一些实施例中,无论第一数据缓存区缓存所述多个处理器核的不同访问地址对应的数据,还是缓存第一处理器核与第二处理器核的不同访问地址对应的数据,本申请实施例可在确定目标标志的当前数值与第一数据缓存区相对应时,判断所述目标地址是否在第一地址索引区存储的第一地址的tag中命中,以实现对目标地址进行命中判断,其中,第一地址索引区为第一数据缓存区对应的地址索引区。
在一些实施例中,基于步骤S511的命中判断结果,若所述目标地址在所述第一地址中命中,则共享缓存可基于所述第一数据缓存区中已缓存的与所述目标地址相应的存储单位,执行数据读取过程或者数据写入过程;若所述目标地址在所述第一地址中未命中,则共享缓存可将所述第一数据缓存区中的至少一个存储单位替换为内存中所述目标地址相应的存储单位,从而基于替换后的存储单位,执行数据读取过程或者数据写入过程。此部分的具体内容可结合图2C所示步骤S213部分的描述。
在进一步的一些实施例中,如果共享缓存确定所述目标地址属于所述多个处理器核的共同访问地址,则基于第二数据缓存区用于缓存多个处理器核的共同访问地址对应的数据,本申请实施例可判断所述目标地址是否在第二数据缓存区对应的第二地址中命中;进而根据命中判断结果,基于所述第二数据缓存区执行所述数据访问指令。
作为可选实现,本申请实施例可在确定目标标志的当前数值与第二数据缓存区相对应时,判断所述目标地址是否在第二地址索引区存储的第二地址的tag中命中,以实现对目标地址进行命中判断,第二地址索引区为第二数据缓存区对应的地址索引区。
在另一些实施例中,图6示出了本申请实施例提供数据访问方法的又另一流程图。参照图6,该方法流程可以包括如下步骤。
在步骤S610中,获取处理器核的数据访问指令,所述数据访问指令携带目标地址以及目标标志。
步骤S610所指的处理器核可以是多核芯片***中当前发起数据访问指令的任一处理器核。处理器核发起的数据访问指令中可以携带目标地址以及目标标志。在本申请实施例中,多核芯片***的共享缓存可以设置多个数据缓存区,各个数据缓存区缓存数据的访问地址不同。在一些实施例中,本申请实施例并不特意设置数据缓存区来缓存多个处理器核的共同访问地址对应的数据,也不特意设置数据缓存区来缓存不同处理器核的不同访问地址对应的数据,只要保障各个数据缓存区缓存数据的访问地址不同即可。例如,内存的访问地址可以分为多个访问地址段,一个数据缓存区可映射一个访问地址段对应的存储单位,从而不同的数据缓存区映射不同访问地址段对应的存储单位。
在本申请实施例中,执行数据访问指令所基于的数据缓存区可由目标标志进行指示。在一些实施例中,目标标志的一个数值可对应一个数据缓存区。例如,处理器核在发起数据访问指令时,可基于当前需要访问的目标地址所对应的数据缓存区,设置目标标志的数值。
在步骤S611中,根据所述目标标志的数值,确定所述目标地址对应的目标数据缓存区。
在步骤S612中,判断所述目标地址是否在所述目标数据缓存区当前缓存的数据的地址中命中。
基于目标标志的一个数值可对应一个数据缓存区,本申请实施例可基于数据访问指令中携带的目标标志的数值,确定数据访问指令中携带的目标地址对应的目标数据缓存区。目标数据缓存区可以认为是映射了目标地址在内存中对应的存储单位的数据缓存区。进而,本申请实施例可判断目标地址是否在目标数据缓存区当前缓存的数据的地址中命中,以判断目标数据缓存区当前是否缓存有所述目标地址对应的存储单位。
在一些实施例中,共享缓存可以设置多个地址索引区;一个地址索引区对应一个数据缓存区,并用于存储对应的数据缓存区当前缓存的数据的地址的tag。本申请实施例可判断所述目标地址是否在所述目标数据缓存区对应的目标地址索引区中命中,以实现对目标地址进行命中判断。
在步骤S613中,根据命中判断结果,基于所述目标数据缓存区执行所述数据访问指令。
在一些实施例中,如果命中判断结果为目标地址命中,则可基于所述目标数据缓存区中已缓存的与所述目标地址对应的存储单位,执行数据读取过程或者数据写入过程;如果命中判断结果为目标地址未命中,则可将所述目标数据缓存区中的至少一个存储单位替换为内存中所述目标地址对应的存储单位,基于替换后的存储单位,执行数据读取过程或者数据写入过程。
本申请实施例可在共享缓存设置多个数据缓存区,并且不同数据缓存区缓存数据的访问地址不同。从而,处理器核在发起数据访问指令时,本申请实施例可基于目标标志的数值,确定需要访问的目标地址对应的目标数据缓存区,进而基于目标地址在目标数据缓存区当前缓存的数据的地址中是否命中的判断结果,来实现数据访问指令的具体执行。本申请实施例能够使得处理器核的数据访问具有更高的效率。
本申请实施例还提供一种共享缓存,结合图3A所示,该共享缓存可以包括:
多个数据缓存区,所述多个数据缓存区至少包括第一数据缓存区和第二数据缓存区;所述第一数据缓存区,用于至少缓存第一处理器核与第二处理器核的不同访问地址对应的数据;所述第二数据缓存区,用于缓存多个处理器核的共同访问地址对应的数据;
命中判断逻辑,用于在所述共享缓存获取第一处理器核的数据访问指令之后,若所述数据访问指令携带的目标地址至少与第二处理器核的访问地址不同,判断所述目标地址是否在第一地址中命中,所述第一地址包括第一数据缓存区当前缓存的数据的地址;
执行逻辑,用于根据所述命中判断逻辑的命中判断结果,基于所述第一数据缓存区执行所述数据访问指令。
在进一步的一些实施例中,结合图3A所示,共享缓存还可以包括多个地址索引区,一个地址索引区对应一个数据缓存区,用于存储对应的数据缓存区当前缓存的数据的地址的tag。
在一些实施例中,第一数据缓存区可以具体用于缓存所述多个处理器核的不同访问地址对应的数据。
在另一些实施例中,共享缓存中的多个数据缓存区中具有与第二数据缓存区不同的多个特殊数据缓存区,一个特殊数据缓存区用于缓存任意两个处理器核的不同访问地址对应的数据;所述第一数据缓存区属于所述特殊数据缓存区,且所述第一数据缓存区具体缓存第一处理器核与第二处理器核的不同访问地址对应的数据;所述任意两个处理器核为所述多个处理器核中的部分处理器核;
从而,所述目标地址至少与第二处理器核的访问地址不同包括:所述目标地址属于第一处理器核与第二处理器核的不同访问地址。
在进一步的一些实施例中,命中判断逻辑还可以用于:若所述目标地址属于所述多个处理器核相同的访问地址,判断所述目标地址是否在第二地址中命中,所述第二地址包括第二数据缓存区当前缓存的数据的地址。相应的,执行逻辑还可以用于:根据命中判断逻辑上述的命中判断结果,基于所述第二数据缓存区执行所述数据访问指令。
关于第一数据缓存区、第二数据缓存区、命中判断逻辑、执行逻辑和第一地址索引区、第二地址索引区的具体功能和扩展功能,可参照前文相应部分的描述,此处不再展开。
本申请实施例还提供一种芯片***(例如SOC芯片),该芯片***可以包括多个处理器核,以及该多个处理器核共享的共享缓存,该共享缓存可以如本申请实施例提供的共享缓存。
本申请实施例还提供一种电子设备(例如终端设备、服务器设备等),该电子设备可以包括本申请实施例提供的芯片***。
上文描述了本申请实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本申请实施例披露、公开的实施例方案。
虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。
Claims (18)
1.一种数据访问方法,其特征在于,包括:
获取第一处理器核的数据访问指令,所述数据访问指令携带目标地址,所述第一处理器核为多个处理器核中的任一处理器核;
若所述目标地址至少与第二处理器核的访问地址不同,判断所述目标地址是否在第一地址中命中,所述第一地址包括第一数据缓存区当前缓存的数据的地址;
根据命中判断结果,基于所述第一数据缓存区执行所述数据访问指令;
其中,共享缓存设置有多个数据缓存区,所述多个数据缓存区至少包括第一数据缓存区和第二数据缓存区;所述第一数据缓存区至少缓存第一处理器核与第二处理器核的不同访问地址对应的数据;所述第二数据缓存区缓存所述多个处理器核的共同访问地址对应的数据。
2.根据权利要求1所述的方法,其特征在于,所述共享缓存还设置有多个地址索引区;一个地址索引区对应一个数据缓存区,所述地址索引区用于存储对应的数据缓存区当前缓存的数据的地址的标签tag。
3.根据权利要求2所述的方法,其特征在于,所述数据访问指令还携带目标标志;所述目标标志的一个数值对应一个数据缓存区;其中,所述目标地址在所述目标标志的当前数值对应的数据缓存区所对应的地址索引区中进行命中判断。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述第一数据缓存区具体缓存所述多个处理器核的不同访问地址对应的数据;所述目标地址至少与第二处理器核的访问地址不同包括:
所述目标地址属于所述多个处理器核的不同访问地址。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述第一数据缓存区具体缓存第一处理器核与第二处理器核的不同访问地址对应的数据;其中,任意两个处理器核的不同访问地址对应的数据,缓存在与第二数据缓存区不同的一个特殊数据缓存区中;所述任意两个处理器核为所述多个处理器核中的部分处理器核;所述第一数据缓存区属于所述特殊数据缓存区;
所述目标地址至少与第二处理器核的访问地址不同包括:所述目标地址属于第一处理器核与第二处理器核的不同访问地址。
6.根据权利要求3所述的方法,其特征在于,所述若所述目标地址至少与第二处理器核的访问地址不同,判断所述目标地址是否在第一地址中命中包括:
若所述目标标志的当前数值与第一数据缓存区相对应,判断所述目标地址是否在第一地址索引区存储的第一地址的tag中命中,所述第一地址索引区为第一数据缓存区对应的地址索引区。
7.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述目标地址属于所述多个处理器核的共同访问地址,判断所述目标地址是否与第二地址相匹配,所述第二地址包括第二数据缓存区当前缓存的数据的地址;
根据命中判断结果,基于所述第二数据缓存区执行所述数据访问指令。
8.根据权利要求7所述的方法,其特征在于,所述若所述目标地址属于所述多个处理器核的共同访问地址,判断所述目标地址是否与第二地址相匹配包括:
若所述目标标志的当前数值与第二数据缓存区相对应,判断所述目标地址是否在第二地址索引区存储的第二地址的tag中命中,所述第二地址索引区为第二数据缓存区对应的地址索引区。
9.根据权利要求1所述的方法,其特征在于,所述根据命中判断结果,基于所述第一数据缓存区执行所述数据访问指令包括:
若所述目标地址在第一地址中命中,基于所述第一数据缓存区中已缓存的与所述目标地址对应的存储单位,执行数据读取过程或者数据写入过程;
若所述目标地址在第一地址中未命中,将所述第一数据缓存区中的至少一个存储单位替换为内存中所述目标地址对应的存储单位,基于替换后的存储单位,执行数据读取过程或者数据写入过程。
10.一种数据访问方法,其特征在于,包括:
获取处理器核的数据访问指令,所述数据访问指令携带目标地址以及目标标志;
根据所述目标标志的数值,确定所述目标地址对应的目标数据缓存区;
判断所述目标地址是否在所述目标数据缓存区当前缓存的数据的地址中命中;
根据命中判断结果,基于所述目标数据缓存区执行所述数据访问指令;
其中,共享缓存设置有多个数据缓存区,各个数据缓存区缓存数据的访问地址不同。
11.一种共享缓存,其特征在于,包括:
多个数据缓存区,所述多个数据缓存区至少包括第一数据缓存区和第二数据缓存区;所述第一数据缓存区,用于至少缓存第一处理器核与第二处理器核的不同访问地址对应的数据;所述第二数据缓存区,用于缓存多个处理器核的共同访问地址对应的数据;
命中判断逻辑,用于在所述共享缓存获取第一处理器核的数据访问指令之后,若所述数据访问指令携带的目标地址至少与第二处理器核的访问地址不同,判断所述目标地址是否在第一地址中命中,所述第一地址包括第一数据缓存区当前缓存的数据的地址;
执行逻辑,用于在所述第一数据缓存区根据所述命中判断逻辑的命中判断结果,执行所述数据访问指令。
12.根据权利要求11所述的共享缓存,其特征在于,还包括:
多个地址索引区,一个地址索引区对应一个数据缓存区,用于存储对应的数据缓存区当前缓存的数据的地址的tag。
13.根据权利要求12所述的共享缓存,其特征在于,所述数据访问指令还携带目标标志;所述目标标志的一个数值对应一个数据缓存区;其中,所述目标地址在所述目标标志的当前数值对应的数据缓存区所对应的地址索引区中进行命中判断。
14.根据权利要求11-13任一项所述的共享缓存,其特征在于,所述第一数据缓存区具体缓存所述多个处理器核的不同访问地址对应的数据;所述目标地址至少与第二处理器核的访问地址不同包括:所述目标地址属于所述多个处理器核的不同访问地址。
15.根据权利要求11-13任一项所述的共享缓存,其特征在于,所述多个数据缓存区中具有与第二数据缓存区不同的多个特殊数据缓存区,一个特殊数据缓存区用于缓存任意两个处理器核的不同访问地址对应的数据;所述第一数据缓存区属于所述特殊数据缓存区,且所述第一数据缓存区具体缓存第一处理器核与第二处理器核的不同访问地址对应的数据;所述任意两个处理器核为所述多个处理器核中的部分处理器核;
所述目标地址至少与第二处理器核的访问地址不同包括:所述目标地址属于第一处理器核与第二处理器核的不同访问地址。
16.根据权利要求13所述的共享缓存,其特征在于,所述命中判断逻辑,还用于:若所述目标地址属于所述多个处理器核的共同访问地址,判断所述目标地址是否在所述第二地址索引区存储的第二地址的tag中命中,所述第二地址包括第二数据缓存区当前缓存的数据的地址;
所述执行逻辑,还用于:根据所述命中判断逻辑的命中判断结果,基于所述第二数据缓存区执行所述数据访问指令。
17.一种芯片***,其特征在于,所述芯片***包括多个处理器核,以及所述多个处理器核共享的共享缓存,所述共享缓存如权利要求11-16任一项所述的共享缓存。
18.一种电子设备,其特征在于,包括如权利要求17所述的芯片***。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111363218.XA CN114036084B (zh) | 2021-11-17 | 2021-11-17 | 一种数据访问方法、共享缓存、芯片***和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111363218.XA CN114036084B (zh) | 2021-11-17 | 2021-11-17 | 一种数据访问方法、共享缓存、芯片***和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114036084A true CN114036084A (zh) | 2022-02-11 |
CN114036084B CN114036084B (zh) | 2022-12-06 |
Family
ID=80138022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111363218.XA Active CN114036084B (zh) | 2021-11-17 | 2021-11-17 | 一种数据访问方法、共享缓存、芯片***和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114036084B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115034376A (zh) * | 2022-08-12 | 2022-09-09 | 上海燧原科技有限公司 | 神经网络处理器、批量标准化处理方法及存储介质 |
CN117014504A (zh) * | 2023-08-11 | 2023-11-07 | 北京市合芯数字科技有限公司 | 数据传输方法、装置、设备、介质及产品 |
WO2024066613A1 (zh) * | 2022-09-28 | 2024-04-04 | 北京微核芯科技有限公司 | 多级缓存***的访问方法、数据存储方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103076992A (zh) * | 2012-12-27 | 2013-05-01 | 杭州华为数字技术有限公司 | 一种内存数据缓冲方法及装置 |
CN104252392A (zh) * | 2013-06-28 | 2014-12-31 | 华为技术有限公司 | 一种访问数据缓存的方法和处理器 |
CN104679669A (zh) * | 2014-11-27 | 2015-06-03 | 华为技术有限公司 | 高速缓存cache存储器***及访问缓存行cache line的方法 |
CN105426319A (zh) * | 2014-08-19 | 2016-03-23 | 超威半导体产品(中国)有限公司 | 动态缓存分区设备和方法 |
CN105677580A (zh) * | 2015-12-30 | 2016-06-15 | 杭州华为数字技术有限公司 | 访问缓存的方法和装置 |
CN109582214A (zh) * | 2017-09-29 | 2019-04-05 | 华为技术有限公司 | 数据访问方法以及计算机*** |
WO2020199061A1 (zh) * | 2019-03-30 | 2020-10-08 | 华为技术有限公司 | 一种处理方法、装置及相关设备 |
CN113342709A (zh) * | 2021-06-04 | 2021-09-03 | 海光信息技术股份有限公司 | 在多处理器***中访问数据的方法和多处理器*** |
CN113486410A (zh) * | 2021-06-30 | 2021-10-08 | 海光信息技术股份有限公司 | 一种保护数据安全的方法、cpu核、cpu芯片和电子设备 |
-
2021
- 2021-11-17 CN CN202111363218.XA patent/CN114036084B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103076992A (zh) * | 2012-12-27 | 2013-05-01 | 杭州华为数字技术有限公司 | 一种内存数据缓冲方法及装置 |
CN104252392A (zh) * | 2013-06-28 | 2014-12-31 | 华为技术有限公司 | 一种访问数据缓存的方法和处理器 |
CN105426319A (zh) * | 2014-08-19 | 2016-03-23 | 超威半导体产品(中国)有限公司 | 动态缓存分区设备和方法 |
CN104679669A (zh) * | 2014-11-27 | 2015-06-03 | 华为技术有限公司 | 高速缓存cache存储器***及访问缓存行cache line的方法 |
CN105677580A (zh) * | 2015-12-30 | 2016-06-15 | 杭州华为数字技术有限公司 | 访问缓存的方法和装置 |
CN109582214A (zh) * | 2017-09-29 | 2019-04-05 | 华为技术有限公司 | 数据访问方法以及计算机*** |
WO2020199061A1 (zh) * | 2019-03-30 | 2020-10-08 | 华为技术有限公司 | 一种处理方法、装置及相关设备 |
CN113342709A (zh) * | 2021-06-04 | 2021-09-03 | 海光信息技术股份有限公司 | 在多处理器***中访问数据的方法和多处理器*** |
CN113486410A (zh) * | 2021-06-30 | 2021-10-08 | 海光信息技术股份有限公司 | 一种保护数据安全的方法、cpu核、cpu芯片和电子设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115034376A (zh) * | 2022-08-12 | 2022-09-09 | 上海燧原科技有限公司 | 神经网络处理器、批量标准化处理方法及存储介质 |
CN115034376B (zh) * | 2022-08-12 | 2022-11-18 | 上海燧原科技有限公司 | 神经网络处理器的批量标准化处理方法及存储介质 |
WO2024066613A1 (zh) * | 2022-09-28 | 2024-04-04 | 北京微核芯科技有限公司 | 多级缓存***的访问方法、数据存储方法及装置 |
CN117014504A (zh) * | 2023-08-11 | 2023-11-07 | 北京市合芯数字科技有限公司 | 数据传输方法、装置、设备、介质及产品 |
CN117014504B (zh) * | 2023-08-11 | 2024-04-16 | 北京市合芯数字科技有限公司 | 数据传输方法、装置、设备、介质及产品 |
Also Published As
Publication number | Publication date |
---|---|
CN114036084B (zh) | 2022-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114036084B (zh) | 一种数据访问方法、共享缓存、芯片***和电子设备 | |
US6640286B2 (en) | Cache control system | |
US8583874B2 (en) | Method and apparatus for caching prefetched data | |
JP4920378B2 (ja) | 情報処理装置およびデータ検索方法 | |
US20160140042A1 (en) | Instruction cache translation management | |
JP2005302034A (ja) | メモリを管理するためのシステムおよび方法 | |
US9697137B2 (en) | Filtering translation lookaside buffer invalidations | |
US10423534B2 (en) | Cache memory | |
US20230102891A1 (en) | Re-reference interval prediction (rrip) with pseudo-lru supplemental age information | |
US11055025B2 (en) | Semiconductor memory device performing command merge operation and operation method thereof | |
US7010649B2 (en) | Performance of a cache by including a tag that stores an indication of a previously requested address by the processor not stored in the cache | |
CN113986778B (zh) | 一种数据处理方法、共享缓存、芯片***及电子设备 | |
US8266379B2 (en) | Multithreaded processor with multiple caches | |
US8533396B2 (en) | Memory elements for performing an allocation operation and related methods | |
US10565111B2 (en) | Processor | |
US9514047B2 (en) | Apparatus and method to dynamically expand associativity of a cache memory | |
US10102143B2 (en) | Eviction control for an address translation cache | |
JP6732032B2 (ja) | 情報処理装置 | |
CN115098410A (zh) | 处理器、用于处理器的数据处理方法及电子设备 | |
US20210390054A1 (en) | Cache management circuits for predictive adjustment of cache control policies based on persistent, history-based cache control information | |
KR100486240B1 (ko) | 분리된 캐쉬 메모리를 구비한 마이크로프로세서 및 메모리 액세스 방법 | |
JP3078303B2 (ja) | キャッシュメモリ制御回路 | |
US11704250B2 (en) | Using request class and reuse recording in one cache for insertion policies of another cache | |
US20160335184A1 (en) | Method and Apparatus for History-Based Snooping of Last Level Caches | |
US20240220409A1 (en) | Unified flexible cache |
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 |