CN115098409A - 进行阶层式高速缓存系统回存且无效的处理器以及方法 - Google Patents
进行阶层式高速缓存系统回存且无效的处理器以及方法 Download PDFInfo
- Publication number
- CN115098409A CN115098409A CN202210644875.XA CN202210644875A CN115098409A CN 115098409 A CN115098409 A CN 115098409A CN 202210644875 A CN202210644875 A CN 202210644875A CN 115098409 A CN115098409 A CN 115098409A
- Authority
- CN
- China
- Prior art keywords
- cache
- memory
- core
- hierarchical
- level
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 230000015654 memory Effects 0.000 claims abstract description 187
- 238000012937 correction Methods 0.000 claims abstract description 6
- 230000008685 targeting Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 abstract description 5
- 230000004044 response Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- RFHAOTPXVQNOHP-UHFFFAOYSA-N fluconazole Chemical compound C1=NC=NN1CC(C=1C(=CC(F)=CC=1)F)(O)CN1C=NC=N1 RFHAOTPXVQNOHP-UHFFFAOYSA-N 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
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/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
-
- 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/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/0877—Cache access modes
-
- 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
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- 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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本申请涉及处理器的阶层式高速缓存系统(hierarchical cache system)的管理技术。
背景技术
计算机系统中,存储器可有阶层之分。较上阶层的存储器拥有较高的速度、较低延迟性,但容量较小。大部分计算机系统的存储器阶层有以下四层(上层至下层排序):寄存器(registers);高速缓存存储器(cache memory);系统内存(主存储器,如DRAM);以及磁盘(SSD或HD)。
特别是,高速缓存存储器也可以阶层设计,根据存取的快至慢排列,包括:第一级高速缓存(L1)、第二级高速缓存(L2)、以及第三级高速缓存(L3,又称最末级高速缓存存储器,last level cache,简称LLC)。如此阶层式高速缓存系统的管理将显著影响系统效能。
如何有效管理阶层式高速缓存系统为处理器设计一项重要议题。
发明内容
本申请提出一种阶层式高速缓存系统(hierarchical cache system)的管理技术。
根据本申请一种实施方式实现的一处理器包括一第一核心、以及耦接该第一核心的一最末级高速缓存存储器。该第一核心包括一微码存储器、一解码器、一内存顺序缓存区(memory ordering buffer,简称MOB)、一第一级高速缓存存储器(L1)、以及一第二级高速缓存存储器(L2)。该第一级高速缓存存储器、该第二级高速缓存存储器、该最末级高速缓存存储器、以及共用该最末级高速缓存存储器的其它核心的核内高速缓存存储器组合成一阶层式高速缓存系统。响应以当下核心内指定阶层的高速缓存内容为目标、而对该阶层式高速缓存系统进行回存且无效的一指令集架构(Instruction Set Architecture,简称ISA)的一指令,该解码器基于该微码存储器存储的一微码,转换出多条微指令。根据该等微指令,一指定请求通过该内存顺序缓存区传递给该阶层式高速缓存系统,令该阶层式高速缓存系统辨识出该第一核心指定阶层所涉及的高速缓存行,将其中处于一修正状态的高速缓存行回存一系统内存,且不论是否为该修正状态,将辨识出的高速缓存行完整自该阶层式高速缓存系统无效。
一种实施方式中,该指令指定以当下核心的第一级高速缓存存储器的高速缓存内容为目标、而对该阶层式高速缓存系统进行回存且无效。
一种实施方式中,该指令指定以当下核心的第一级、以及第二级高速缓存存储器的高速缓存内容为目标、而对该阶层式高速缓存系统进行回存且无效。
本申请亦提出一种指定核内阶层进行阶层式高速缓存系统回存且无效的方法,包括:提供一指令集架构的一指令给一处理器的一第一核心,该指令以当下核心内指定阶层的高速缓存内容为目标、而对一阶层式高速缓存系统进行回存且无效,其中,该阶层式高速缓存系统包括该第一核心的一第一级高速缓存存储器、以及一第二级高速缓存存储器,且包括该处理器的一最末级高速缓存存储器,还包括该处理器中、共用该最末级高速缓存存储器的其它核心的核内高速缓存存储器;令该第一核心的一解码器基于一微码存储器存储的一微码,自该指令转换出多条微指令;且根据该等微指令,将一指定请求通过该第一核心的一内存顺序缓存区传递给该阶层式高速缓存系统,令该阶层式高速缓存系统辨识出该第一核心指定阶层所涉及的高速缓存行,将其中处于一修正状态的高速缓存行回存一系统内存,且不论是否为该修正状态,将辨识出的高速缓存行完整自该阶层式高速缓存系统无效。
下文特举实施例,并配合附图,详细说明本发明内容。
附图说明
图1根据本申请一种实施方式图解多核心的一处理器100,包括四核心core_1、core_2、core_3以及core_4;
图2为方框图,根据本发明一种实施方式图解一处理器200以及其上的一核心core_1;
图3A图解核内高速缓存表222的一种实施方式,条列代表各高速缓存行的存储器地址在核心core_1的第一级高速缓存存储器L1的状态;
图3B图解探听表格224的一种实施方式,条列代表各高速缓存行的存储器地址在最末级高速缓存存储器LLC/L3、以及不同核心core_1~core_4的状态;
图4为流程图,图解以探听表格224的查表实现指令L1_WBINVD(或包括同样功能的其它指令);
图5为流程图,图解以核内高速缓存表222的查表实现指令L1_WBINVD(或包括同样功能的其它指令);
图6A以及图6B举例说明本申请指令L1_WBINVD(或包括同样功能的其它指令)的效果;
图7为流程图,图解以探听表格224的查表实现指令CORE_WBINVD(或包括同样功能的其它指令);且
图8佐以图6A举例说明本申请指令CORE_WBINVD(或包括同样功能的其它指令)的效果
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求书来界定。
本申请特别讨论阶层式高速缓存系统的回存且无效(writing back andinvalidation)。一种传统技术是以多个核心共用的最末级高速缓存存储器(LLC)为粒度进行高速缓存内容的回存且无效;最末级高速缓存存储器(LLC)涉及的所有高速缓存行中,修正(modified)过的高速缓存行须先存回系统内存,且不论修正与否,都全数自阶层式高速缓存系统(包括所有核心的核内高速缓存存储器、以及所有核心共用的该最末级块取存储器LLC)无效。另一种传统技术是以高速缓存行(cache line)为粒度进行高速缓存内容的回存且无效;一次处理单条高速缓存行。该条高速缓存行若修正过则须回存系统内存,且不论修正与否,该条高速缓存行都自阶层式高速缓存系统(包括所有核心的核内高速缓存存储器、以及所有核心共用的该最末级块取存储器LLC)无效。然而,传统的处理粒度并不适合所有应用。
例如,多核处理器中,缓存漏洞出现时,软件有将当下核心的核内高速缓存存储器的高速缓存内容回存且无效的需求;此状况事实上不需要刷回其它核心独占的高速缓存内容,但传统技术并没有对应解决方案。若以多个核心共用的最末级高速缓存存储器(LLC)为粒度进行高速缓存内容的回存且无效,其它核心的执行速度会受影响。若以高速缓存行(cache line)为粒度进行高速缓存内容的回存且无效,则必须以软件进行复杂的逻辑运算,方能决定是要指定哪些高速缓存行进行处理;软件可能判断错误,仍会发生冗余的回存且无效。
本申请提供的方案可以当下核心的指定阶层的高速缓存内容为目标,即指定当下核心的第一级高速缓存存储器L1、或指定当下核心的第一级以及第二级高速缓存存储器L1以及L2的高速缓存内容为目标,进行回存且无效。如此一来,其它核心的效能不会被影响,也可避免冗余的高速缓存行回存且无效。
图1根据本申请一种实施方式图解多核心的一处理器100,包括四核心core_1、core_2、core_3以及core_4。核心core_1可单纯指定以自身的第一级高速缓存存储器L1的高速缓存内容为目标,进行回存且无效;其中,状态为M(修正状态)的高速缓存行会先回存系统内存,并且,不论状态是否为M,核心core_1的第一级高速缓存存储器L1所涉及的所有高速缓存行被完整自阶层式高速缓存系统(包括所有核心core_1~core_4的第一级以及第二级高速缓存存储器L1及L2、以及所有核心core_1~core_4共用的最末级高速缓存存储器LLC)无效。另外,核心core_1可指定以自身的第一级以及第二级高速缓存存储器L1以及L2的高速缓存内容为目标,进行回存且无效,即对完整的核内高速缓存存储器进行回存且无效;其中,状态为M的高速缓存行会先回存系统内存,并且,不论状态是否为M,核心core_1的第一级以及第二级高速缓存存储器L1以及L2所涉及的所有高速缓存行完整自阶层式高速缓存系统(包括所有核心core_1~core_4的第一级以及第二级高速缓存存储器L1及L2、以及所有核心core_1~core_4共用的最末级高速缓存存储器LLC)无效。其它核心core_2~core_4也可具有核心core_1以上功能。
本发明公开的处理器可为前述功能(以当下核心的指定阶层的高速缓存内容为目标,进行回存且无效)提供指令集架构(Instruction Set Architecture,简称ISA)的指令。该处理器支持的指令集架构不限,可为x86架构、也可为进阶精简指令集机器(AdvancedRISC Machine,缩写ARM)架构、或其他。
一种实施方式中,本发明公开一处理器,其中提供一条指令集架构(ISA)的指令(以下以L1_WBINVD标示),令执行该条指令L1_WBINVD的该核心,是以自身所拥有的第一级高速缓存存储器L1的高速缓存内容为目标,使其自阶层式高速缓存系统回存且无效;其中,状态为M(有更新)的高速缓存行,会先回存系统内存,再无效该高速缓存行。
另一种实施方式中,本发明公开一处理器,其中提供一条指令集架构(ISA)的指令(以下以CORE_WBINVD标示),令执行该条指令CORE_WBINVD的该核心,是以自身所拥有的第一级、以及第二级高速缓存存储器L1以及L2的高速缓存内容为目标,使其自阶层式高速缓存系统回存且无效;其中,状态为M(有更新)的高速缓存行,会先回存系统内存,再无效该高速缓存行。
另一种实施方式中,本发明公开一处理器,其中提供一条指令集架构(ISA)的指令(以下以Li_WBINVD标示),其中以设定操作数方式,实现前述指令L1_WBINVD、或指令CORE_WBINVD的功能。该操作数若设定为指定第一级高速缓存存储器L1,则该指令Li_WBINVD对应前述指令L1_WBINVD。该操作数若设定为指定核内高速缓存存储器L1以及L2,则该指令Li_WBINVD对应前述指令CORE_WBINVD。程序撰写上,指令Li_WBINVD前可以其他指令填写寄存器/存储器/立即数,完成该操作数的设定。更有其它处理器实现是提供一条指令集架构(ISA)的指令,虽实现更复杂功能,但包括以上指令L1_WBINVD、或指令CORE_WBINVD的功能;如此指令也落入本申请范围。
一种实施方式中,本发明在处理器的微码(ucode)有相应这些指令(如,L1_WBINVD、CORE_WBINVD、Li_WBINVD、或其它)的设计,且可更在处理器的硬件上有相应修改。
图2为方块图,根据本发明一种实施方式图解一处理器200以及其上的一核心core_1。图示阶层式高速缓存系统Cache_sys包括第一级高速缓存存储器L1、第二级高速缓存存储器L2、以及最末级高速缓存存储器(LLC)L3。第一级、以及第二级高速缓存存储器L1、以及L2为核心core_1的核内高速缓存存储器。在多核心处理器中,最末级高速缓存存储器(LLC)L3供多核心共用(如图1),而阶层式高速缓存系统Cache_sys还包括其它核心的核内高速缓存存储器(如图1其它核心core_2…core_4的第一级、以及第二级高速缓存存储器L1以及L2)。
一段指令自一系统内存202经总线Bus载入一指令高速缓存(instruction cache)204后,交给一解码器206解码。解码器206包括一指令缓存器(instruction buffer,简称XIB)208、以及一指令转译器(translator,简称XLATE)210。指令缓存器(XIB)208识别分割出本申请提出的指令(如,L1_WBINVD、CORE_WBINVD、Li_WBINVD、或其它),而指令转译器(XLATE)210基于微码(ucode,存储在一微码存储器)将该指令(如,L1_WBINVD、CORE_WBINVD、Li_WBINVD、或其它)转译为流水线硬件可辨识的多条微指令(microinstructions)。核心core_1操作寄存器重新命名模块(register renamingmodule,简称Rename)212处理这些条微指令,并操作保留站(reservation station,简称RS)214将重新命名的微指令乱序发射至执行单元(EU)216,通过一内存顺序缓存区(memoryordering buffer,简称MOB)218,以核心core_1的指定阶层(单纯指定L1、或指定包括L1以及L2的整个核内高速缓存存储器)的高速缓存内容为目标,将其自整个阶层式高速缓存系统Cache_sys(包括L3、核心core_1的L1以及L2、以及其它核心的核内高速缓存存储器)回存且无效。乱序执行完毕的微指令会在重排缓存区(re-order buffer,简称ROB)220等待顺序引退(retired)。
基于上述硬件动作,指令L1_WBINVD解码出的微指令通过内存顺序缓存区(MOB)218,以核心core_1的第一级高速缓存存储器L1的高速缓存内容为目标,进行回存且无效;其中,状态为M(有更新)的高速缓存行,会经总线Bus回存系统内存202,并且,不论状态是否为M(不论是否有更新),第一级高速缓存存储器L1所涉及的所有高速缓存行完整自阶层式高速缓存系统Cache_sys(包括L3、核心core_1的L1以及L2、以及其它核心的核内高速缓存存储器)无效。
基于上述硬件动作,指令CORE_WBINVD解码出的微指令通过内存顺序缓存区(MOB)218,以核心core_1的第一级、以及第二级高速缓存存储器L1以及L2(即核心core_1的核内高速缓存存储器)的高速缓存内容为目标,进行回存且无效;其中,状态为M(有更新)的高速缓存行,会经总线Bus回存系统内存202,并且,不论状态是否为M(不论是否有更新),第一级、以及第二级高速缓存存储器L1以及L2所涉及的所有高速缓存行完整自阶层式高速缓存系统Cache_sys无效,所有高速缓存行完整自阶层式高速缓存系统Cache_sys包括L3、核心core_1的L1以及L2、以及其它核心的核内高速缓存存储器。
基于上述硬件动作,指令Li_WBINVD解码出的微指令通过内存顺序缓存区(MOB)218,依照操作数的指定,以指定阶层的高速缓存内容为目标,进行回存且无效;其中,状态为M(有更新)的高速缓存行,会经总线Bus回存系统内存202,并且,不论状态是否为M(不论是否有更新),指定阶层所涉及的所有高速缓存行完整自阶层式高速缓存系统Cache_sys(包括L3、核心core_1的L1以及L2、以及其它核心的核内高速缓存存储器)无效。
本申请以核内指定阶层的高速缓存内容为目标、而进行的回存且无效可包括一查表设计。表格可维护在核心内部存储空间中─如图示,规划在阶层式高速缓存系统Cache_sys的核内高速缓存表222,专维护核心core_1的核内高速缓存存储器(L1以及L2)的高速缓存状况。表格也可以维护在核心外的存储空间,如图示探听表格224,为完整阶层式高速缓存系统Cache_sys(包括所有核心的核内高速缓存存储器、以及这些核心共用的最末级高速缓存存储器)维护高速缓存状况。
图3A图解核内高速缓存表222的一种实施方式,条列代表各高速缓存行的存储器地址在核心core_1的第一级高速缓存存储器L1的状态。M状态代表修正状态(modified),I代表无效状态(invalid)。另外可以E状态代表独占状态(exclusive),S代表多核的共享状态(shared)。特别是,其它核心(如图1的核心core_2…core_4)也可有为自身第一级高速缓存存储器L1维护的核内高速缓存表。
图3B图解探听表格224的一种实施方式,条列代表各高速缓存行的存储器地址在最末级高速缓存存储器LLC/L3、以及不同核心core_1~core_4的状态。M状态代表修正状态(modified),I代表无效状态(invalid),E状态代表独占状态(exclusive),S代表多核的共享状态(shared)。例如,框线302显示核心core_1中,有存在多核共享的存储器地址0x800F00高速缓存行,且高速缓存有M状态的存储器地址0x801000高速缓存行。
以下详细说明根据本申请指令L1_WBINVD(或CORE_WBINVD、或Li_WBINVD、或包括同样功能的其它指令)所解码出来的微指令如何操作硬件,应用查表技术实现指令功能。
首先讨论指令L1_WBINVD(或包括同样功能的其它指令),单纯以当下核心的第一级高速缓存存储器L1的高速缓存内容为目标,进行回存且无效。
图4为流程图,图解以探听表格224的查表实现指令L1_WBINVD(或包括同样功能的其它指令);此指令解码出的微指令包括一指定请求L1_WBINVD_req。以下讨论参考图2进行说明,发动指令的是图2核心core_1。
步骤S402,内存顺序缓存器(MOB)218接收该指定请求L1_WBINVD_req,并将该指定请求L1_WBINVD_req传递给核心core_1的第一级高速缓存存储器L1。
步骤S404,相应该指定请求L1_WBINVD_req,核心core_1的第一级高速缓存存储器L1返还存储器地址给该内存顺序缓存区(MOB)218;返还的存储器地址对应核心core_1的第一级高速缓存存储器L1所高速缓存的高速缓存行。
步骤S406,内存顺序缓存器(MOB)218令步骤S304返还的每一笔存储器地址搭配一回存且无效请求WB_req传递给该探听表格224进行查表。
该探听表格224(如图3B)记录有整个阶层式高速缓存系统Cache_sys的高速缓存状况。因此,步骤S404返还的各存储器地址依照步骤S406搭配一回存且无效请求WB_req查询该探听表格224后,即可获查询的存储器地址在阶层式高速缓存系统Cache_sys的高速缓存状况。步骤S408即令各存储器地址更搭配一探听请求snoop_req,根据该探听表格224的查表结果,传递给该阶层式高速缓存系统Cache_sys。
步骤S410,该阶层式高速缓存系统Cache_sys将被探听的高速缓存行中,为该修正状态(M状态)者载入一总线Bus,并不论高速缓存行是否为该修正状态,将被探听的高速缓存行完整自该阶层式高速缓存系统Cache_sys(包括所有核心的核内高速缓存存储器、以及所有核心共用的最末级高速缓存存储器L3)无效。
步骤S412,将步骤S410载入该总线Bus的高速缓存行写入该系统内存202。
经整理,图4是先辨识出核心core_1的第一级高速缓存存储器L1的高速缓存行,再一一去查询载有整个阶层式高速缓存系统Cache_sys高速缓存状况的探听表格224,使向阶层式高速缓存系统Cache_sys发出的探听请求snoop_req以核心core_1的第一级高速缓存存储器L1的高速缓存内容为目标,实现以核心core_1的第一级高速缓存存储器L1的高速缓存内容为目标的回存且无效。特别是,前述步骤可因效能考虑,在先后顺序上稍有变化。
图5为流程图,图解以核内高速缓存表222的查表实现指令L1_WBINVD(或包括同样功能的其它指令)。同图4,此指令解码出的微指令包括一指定请求L1_WBINVD_req,以下讨论也是参考图2进行说明,发动指令的是图2核心core_1。
步骤S502,内存顺序缓存器(MOB)218接收该指定请求L1_WBINVD_req,并将该指定请求L1_WBINVD_req发送至阶层式高速缓存系统Cache_sys。
步骤S504,相应该指定请求L1_WBINVD_req,该阶层式高速缓存系统Cache_sys查表该核内高速缓存表222。核内高速缓存表222(如图3A)记录有核心core_1的第一级高速缓存存储器L1的高速缓存状况。步骤S504藉查表该核内高速缓存表222辨识出该核心core_1的第一级高速缓存存储器L1中为该修正状态(M状态)的高速缓存行,且将之载入总线Bus。
步骤S506则更根据核内高速缓存表222查表结果,辨识出核心core_1的第一级高速缓存存储器L1所高速缓存的所有高速缓存行,且将所有高速缓存行自该阶层式高速缓存系统Cache_sys(包括所有核心的核内高速缓存存储器、以及所有核心共用的最末级高速缓存存储器L3)无效。
步骤S508,将步骤S504载入该总线Bus的高速缓存行写入该系统内存202。
经整理,图5是利用核内高速缓存表222专为核心core_1的第一级高速缓存存储器L1的高速缓存状况所做的记录,得知核心core_1的第一级高速缓存存储器L1的高速缓存内容,实现以核心core_1的第一级高速缓存存储器L1的高速缓存内容为目标的回存且无效。
图6A以及图6B举例说明本申请指令L1_WBINVD(或包括同样功能的其它指令)的效果。图6A以斜线标注修正过(M状态)的高速缓存内容。拥有第一级以及第二级高速缓存存储器L1以及L2的核心core_1执行本申请指令L1_WBINVD(或包括同样功能的其它指令)后,如图6B所示,第一级高速缓存存储器L1修正过的高速缓存行都回存系统内存202,而第一级高速缓存存储器L1原有的所有高速缓存行完全自整个阶层式高速缓存系统Cache_sys(包括L1、L2、L3,以及未画出的其它核心)无效。图示中,第三级高速缓存存储器L3全包上级高速缓存内容(inclusive)型式,而第二级高速缓存存储器L2非全包也非独占上级高速缓存内容(non-inclusive non-exclusive,简称NINE)型式。然而,本申请指令L1_WBINVD(或包括同样功能的其它指令)并不限定如此架构的阶层式高速缓存系统,可适用多种阶层式架构。
接着讨论指令CORE_WBINVD(或包括同样功能的其它指令),以目前核心的第一级以及第二级高速缓存存储器L1以及L2(完整的核内高速缓存存储器)的高速缓存内容为目标,进行回存且无效。
图7为流程图,图解以探听表格224的查表实现指令CORE_WBINVD(或包括同样功能的其它指令);此指令解码出的微指令包括一指定请求CORE_WBINVD_req。以下讨论参考图2进行说明,发动指令的是图2核心core_1。
步骤S702,内存顺序缓存器(MOB)218接收该指定请求CORE_WBINVD_req,并将该指定请求CORE_WBINVD_req发送至最末级高速缓存存储器L3。
步骤S704,相应该指定请求CORE_WBINVD_req的来源(核心core_1),最末级高速缓存存储器L3判别回存且无效目标是该核心core_1的所有核内高速缓存存储器(L1以及L2)的高速缓存内容,并查表该探听表格224。例如,对应发动指令的核心core_1,查询图3B该探听表格224的字段302,得知哪些高速缓存行高速缓存于核心core_1的第一级以及第二级高速缓存存储器L1以及L2,并得知这些高速缓存行中哪些为修正过(状态M)。基于图3表格224字段302,步骤S704还包括将核心core_1中、为修正状态(M状态)的存储器地址所对应的高速缓存行载入一总线Bus。
步骤S706,最末级高速缓存存储器L3发出探听请求snoop_req,将阶层式高速缓存系统中Cache_sys中,属于步骤S704判断出的回存且无效目标完整自该阶层式高速缓存系统Cache_sys(包括所有核心的核内高速缓存存储器、以及所有核心共用的最末级高速缓存存储器L3)无效。
步骤S708,将步骤S706载入该总线Bus的高速缓存行写入该系统内存202。
经整理,图7是利用探听表格224专为各核心core_1~core_4的核内高速缓存存储器所做的记录,得知发动核心core_1的核内高速缓存存储器(L1与L2)的高速缓存内容,实现以核心core_1的核内高速缓存内容为目标的回存且无效。
佐以图6A,图8举例说明本申请指令CORE_WBINVD(或包括同样功能的其它指令)的效果。如图8所示,第一级以及第二级高速缓存存储器L1以及L2修正过的高速缓存行都回存系统内存202,而第一级以及第二级高速缓存存储器L1以及L2原有的所有高速缓存行完全自整个阶层式高速缓存系统Cache_sys(包括L1、L2、L3,以及未画出的其它核心)无效。
凡是以ISA指令,搭配硬件以及微码设计,指定核内阶层(单纯指定第一级高速缓存存储器L1、或指定第一级以及第二级高速缓存存储器L1以及L1)进行阶层式高速缓存系统回存且无效的多核心处理器,都属于本申请技术范围。
虽然本发明已以优选实施例揭示如上,然其并非用以限定本发明,本领域技术人员在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围以权利要求书界定为准。
Claims (24)
1.一种处理器,该处理器用于指定核内阶层进行阶层式高速缓存系统回存且无效,该处理器包括:
第一核心,包括解码器、内存顺序缓存区、第一级高速缓存存储器;以及
最末级高速缓存存储器,耦接该第一核心;
其中:
根据以该第一核心指定阶层的高速缓存内容为目标、对阶层式高速缓存系统进行回存且无效的指令集架构的指令,该解码器转换出多条微指令,其中,该阶层式高速缓存系统包括该第一级高速缓存存储器、该最末级高速缓存存储器、以及共用该最末级高速缓存存储器的其它核心的核内高速缓存存储器;
根据所述微指令,将指定请求通过该内存顺序缓存区传递给该阶层式高速缓存系统,令该阶层式高速缓存系统辨识出该第一核心指定阶层所涉及的高速缓存行,将其中处于修正状态的高速缓存行回存系统内存,将辨识出的该高速缓存行自该阶层式高速缓存系统无效。
2.如权利要求1所述的处理器,其中:
该指令指定以该第一核心的第一级高速缓存存储器的高速缓存内容为目标、对该阶层式高速缓存系统进行回存且无效。
3.如权利要求2所述的处理器,其中:
通过该内存顺序缓存区传递给该阶层式高速缓存系统的该指定请求,驱动该第一核心的该第一级高速缓存存储器返还存储器地址给该内存顺序缓存区,返还的存储器地址对应该第一核心的该第一级高速缓存存储器所高速缓存的高速缓存行。
4.如权利要求3所述的处理器,还包括:
探听表格,载于该第一核心外的存储空间,条列各存储器地址在不同核心的状态,该状态包括该修正状态、独占状态、共享状态、以及无效状态。
5.如权利要求4所述的处理器,其中:
该内存顺序缓存区将该第一核心的该第一级高速缓存存储器返还的各存储器地址搭配回存且无效请求,传递给该探听表格进行查表;
该各存储器地址搭配探听请求,根据该探听表格的查表结果,传递给该阶层式高速缓存系统;
该阶层式高速缓存系统将被探听的高速缓存行中,为该修正状态的高速缓存行载入总线,将被探听的高速缓存行自该阶层式高速缓存系统无效,其中,该总线组建供该系统内存以及该处理器之间的通信;以及
该总线将载入的高速缓存行写入该系统内存。
6.如权利要求2所述的处理器,还包括:
核内高速缓存表,载于该第一核心的存储空间,属该阶层式高速缓存系统,条列各存储器地址在该第一核心的该第一级高速缓存存储器的状态,该状态包括该修正状态、独占状态、共享状态、以及无效状态。
7.如权利要求6所述的处理器,其中:
根据该指定请求,该阶层式高速缓存系统查表该核内高速缓存表,辨识出该第一核心的该第一级高速缓存存储器中为该修正状态的高速缓存行,将该高速缓存行载入总线,其中,该总线组建供该系统内存以及该处理器之间的通信;
该阶层式高速缓存系统查表该核内高速缓存表还辨识出该第一核心的该第一级高速缓存存储器所高速缓存的所有高速缓存行,且将该阶层式高速缓存系统无效;以及
该总线将载入的高速缓存行写入该系统内存。
8.如权利要求1所述的处理器,其中该处理器还包括第二级高速缓存存储器,该阶层式高速缓存系统还包括该第二级高速缓存存储器,该指令指定以当下核心的第一级、以及第二级高速缓存存储器的高速缓存内容为目标、对该阶层式高速缓存系统进行回存且无效。
9.如权利要求1所述的处理器,其中还包括微码存储器,该解码器根据该微码存储器存储的微码,转换出多条微指令。
10.如权利要求1所述的处理器,其中:
该指令指定以该第一核心的该第一级高速缓存存储器的高速缓存内容为目标、对该阶层式高速缓存系统进行回存且无效。
11.如权利要求10所述的处理器,还包括:
探听表格,载于该第一核心外的存储空间,条列代表不同高速缓存行的多个存储器地址在不同核心的状态,该状态包括该修正状态、独占状态、共享状态、以及无效状态。
12.如权利要求11所述的处理器,其中:
该指定请求通过该内存顺序缓存区传递给该最末级高速缓存存储器;
相应该指定请求来源的该第一核心,该最末级高速缓存存储器判别回存且无效目标是该第一核心的所有核内高速缓存存储器的高速缓存内容,并查表该探听表格,将该第一核心中、为该修正状态的存储器地址所对应的高速缓存行载入总线,其中,该总线组建供该系统内存以及该处理器之间的通信;
该最末级高速缓存存储器发出探听请求,将回存且无效该阶层式高速缓存系统;以及
该总线将载入的高速缓存行写入该系统内存。
13.一种方法,该方法用于指定核内阶层进行阶层式高速缓存系统回存且无效,该方法包括:
提供指令集架构的指令给处理器的第一核心,该指令以当下核心指定阶层的高速缓存内容为目标、对阶层式高速缓存系统进行回存且无效,其中,该阶层式高速缓存系统包括第一级高速缓存存储器、最末级高速缓存存储器,以及共用该最末级高速缓存存储器的其它核心的核内高速缓存存储器;以及
根据所述微指令,将指定请求通过该第一核心的内存顺序缓存区传递给该阶层式高速缓存系统,令该阶层式高速缓存系统辨识出该第一核心指定阶层所涉及的高速缓存行,将其中处于修正状态的该高速缓存行回存系统内存,将辨识出的该高速缓存行自该阶层式高速缓存系统无效。
14.如权利要求13所述的方法,其中:
该指令指定以该第一核心的第一级高速缓存存储器的高速缓存内容为目标、对该阶层式高速缓存系统进行回存且无效。
15.如权利要求14所述的方法,其中:
通过该内存顺序缓存区传递给该阶层式高速缓存系统的该指定请求,驱动该第一核心的该第一级高速缓存存储器返还存储器地址给该内存顺序缓存区,返还的存储器地址对应该第一核心的该第一级高速缓存存储器所高速缓存的高速缓存行。
16.如权利要求15所述的方法,还包括:
令探听表格载于该第一核心外的存储空间,条列各存储器地址在不同核心的状态,该状态包括该修正状态、独占状态、共享状态、以及无效状态。
17.如权利要求16所述的方法,其中:
该内存顺序缓存区将该第一核心的该第一级高速缓存存储器返还的各存储器地址搭配回存且无效请求,传递给该探听表格进行查表;
该各存储器地址搭配探听请求,根据该探听表格的查表结果,传递给该阶层式高速缓存系统;
该阶层式高速缓存系统将被探听的该高速缓存行中,为该修正状态的该高速缓存行载入总线,将被探听的该高速缓存行自该阶层式高速缓存系统无效,其中,该总线组建供该系统内存以及该处理器之间的通信;以及
该总线将载入的该高速缓存行写入该系统内存。
18.如权利要求14所述的方法,还包括:
令核内高速缓存表载于该第一核心的存储空间,属该阶层式高速缓存系统,条列各存储器地址在该第一核心的该第一级高速缓存存储器的状态,该状态包括该修正状态独占状态、共享状态、以及无效状态。
19.如权利要求18所述的方法,其中:
根据该指定请求,该阶层式高速缓存系统查表该核内高速缓存表,辨识出该第一核心的该第一级高速缓存存储器中为该修正状态的高速缓存行,将该高速缓存行载入总线,其中,该总线组建供该系统内存以及该处理器之间的通信;
该阶层式高速缓存系统查表该核内高速缓存表还辨识出该第一核心的该第一级高速缓存存储器所高速缓存的所有高速缓存行,且将之完整自该阶层式高速缓存系统无效;以及
该总线将载入的高速缓存行写入该系统内存。
20.如权利要求13所述的方法,其中该处理器还包括第二级高速缓存存储器,该阶层式高速缓存系统还包括该第二级高速缓存存储器,该指令指定以当下核心的第一级高速缓存存储器的高速缓存内容、以及第二级高速缓存存储器的高速缓存内容为目标、而对该阶层式高速缓存系统进行回存且无效。
21.如权利要求13所述的方法,其中还包括令该第一核心的解码器基于微码存储器存储的微码,自该指令转换出多条微指令。
22.如权利要求13所述的方法,其中:
该指令指定以当下核心的第一级高速缓存存储器的高速缓存内容为目标、对该阶层式高速缓存系统进行回存且无效。
23.如权利要求22所述的指定核内阶层进行阶层式高速缓存系统回存且无效的方法,还包括:
令探听表格载于该第一核心外的存储空间,条列代表不同高速缓存行的多个存储器地址在不同核心的状态,该状态包括该修正状态、独占状态、共享状态、以及无效状态。
24.如权利要求23所述的方法,其中:
该指定请求通过该内存顺序缓存区传递给该最末级高速缓存存储器;
相应该指定请求来源的该第一核心,该最末级高速缓存存储器判别回存且无效目标是该第一核心的所有核内高速缓存存储器的高速缓存内容,并查表该探听表格,将该第一核心中、为该修正状态的存储器地址所对应的高速缓存行载入总线,其中,该总线组建供该系统内存以及该处理器之间的通信;
该最末级高速缓存存储器还发出探听请求,将回存且无效目标完整自该阶层式高速缓存系统无效;以及
该总线将载入的高速缓存行写入该系统内存。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210644875.XA CN115098409A (zh) | 2022-06-08 | 2022-06-08 | 进行阶层式高速缓存系统回存且无效的处理器以及方法 |
US18/308,893 US20230401153A1 (en) | 2022-06-08 | 2023-04-28 | Processor and method designating an in-core cache of a hierarchical cache system to perform writing-back and invalidation of cached data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210644875.XA CN115098409A (zh) | 2022-06-08 | 2022-06-08 | 进行阶层式高速缓存系统回存且无效的处理器以及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115098409A true CN115098409A (zh) | 2022-09-23 |
Family
ID=83288817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210644875.XA Pending CN115098409A (zh) | 2022-06-08 | 2022-06-08 | 进行阶层式高速缓存系统回存且无效的处理器以及方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230401153A1 (zh) |
CN (1) | CN115098409A (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10838722B2 (en) * | 2018-12-20 | 2020-11-17 | Intel Corporation | Restartable cache write-back and invalidation |
JP2022015514A (ja) * | 2020-07-09 | 2022-01-21 | 富士通株式会社 | 半導体装置 |
-
2022
- 2022-06-08 CN CN202210644875.XA patent/CN115098409A/zh active Pending
-
2023
- 2023-04-28 US US18/308,893 patent/US20230401153A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230401153A1 (en) | 2023-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11803486B2 (en) | Write merging on stores with different privilege levels | |
US9513904B2 (en) | Computer processor employing cache memory with per-byte valid bits | |
US7493452B2 (en) | Method to efficiently prefetch and batch compiler-assisted software cache accesses | |
US8706973B2 (en) | Unbounded transactional memory system and method | |
TWI526829B (zh) | 電腦系統、用於存取儲存裝置之方法及電腦可讀儲存媒體 | |
US20110314228A1 (en) | Maintaining Cache Coherence In A Multi-Node, Symmetric Multiprocessing Computer | |
US20030041225A1 (en) | Mechanism for handling load lock/store conditional primitives in directory-based distributed shared memory multiprocessors | |
US20140289469A1 (en) | Processor and control method of processor | |
JP5319049B2 (ja) | キャッシュシステム | |
US10983914B2 (en) | Information processing apparatus, arithmetic processing device, and method for controlling information processing apparatus | |
US11263137B2 (en) | Core-to-core cache stashing and target discovery | |
US8108621B2 (en) | Data cache with modified bit array | |
JP2001043133A (ja) | マルチプロセッサ・システムにおいてライトスルー・ストア・オペレーションでキャッシュ・コヒーレンシを維持するための方法およびシステム | |
CN115098409A (zh) | 进行阶层式高速缓存系统回存且无效的处理器以及方法 | |
US8108624B2 (en) | Data cache with modified bit array | |
US20230099256A1 (en) | Storing an indication of a specific data pattern in spare directory entries |
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: Room 301, 2537 Jinke Road, Zhangjiang High Tech Park, Pudong New Area, Shanghai 201203 Applicant after: Shanghai Zhaoxin Semiconductor Co.,Ltd. Address before: Room 301, 2537 Jinke Road, Zhangjiang hi tech park, Shanghai 201203 Applicant before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd. |
|
CB02 | Change of applicant information |