指定目标进行核内至核外高速缓存内容迁移的处理器及方法与流程

文档序号:31539385发布日期:2022-09-16 23:27阅读:55来源:国知局
1.本案涉及处理器的层级式高速缓存系统(hierarchicalcachesystem)的管理技术。
背景技术
::2.计算机系统中,存储器可有层级之分。较上层级的存储器拥有较高的速度、较低延迟性,但容量较小。大部分计算机系统的存储器层级有以下四层(上层至下层排序):寄存器(registers);高速缓冲存储器(cachememory);系统内存(主存储器,如dram);以及磁盘(ssd或hd)。3.特别是,高速缓冲存储器也可以层级设计,根据存取的快至慢排列,包括:第一级高速缓存(l1)、第二级高速缓存(l2)、以及第三级高速缓存(l3,又称最末级高速缓冲存储器,lastlevelcache,简称llc)。如此层级式高速缓存系统的管理将显著影响系统效能。4.如何有效管理层级式高速缓存系统为处理器设计一项重要议题。技术实现要素:5.本案提出一种层级式高速缓存系统(hierarchicalcachesystem)的管理技术─指定目标进行核内至核外高速缓存内容迁移。6.根据本案一种实施方式实现的一处理器包括一第一核心、一最末级高速缓冲存储器、以及一核外高速缓存表。该第一核心包括一微码存储器、一解码器、一内存顺序缓存区、以及一核内高速缓冲存储器。该最末级高速缓冲存储器耦接该第一核心,供该第一核心与该处理器其他核心共用。该核外高速缓存表条列各存储器地址在该最末级高速缓冲存储器、该第一核心、以及该处理器其它核心的状态。响应指定目标进行核内至核外迁移的一指令集架构的一迁移指令,该解码器基于该微码存储器存储的一微码,转换出多条微指令。根据这些微指令,一指定请求通过该内存顺序缓存区传递给该最末级高速缓冲存储器,令该最末级高速缓冲存储器查询该核外高速缓存表,根据一指定目标在该第一核心的状况,向该第一核心发出探听请求,探听该指定目标,且探听到的指定目标降级迁移到该最末级高速缓冲存储器。7.一种实施方式中,该核外高速缓存表条列的状态的选项包括一修正状态、一独占状态、一共享状态、以及一无效状态。该指定目标降级迁移前,若在该第一核心为该修正状态、或该独占状态,随着该指定目标降级迁移到该最末级高速缓冲存储器,该核外高速缓存表修正为,标示该指定目标在该最末级高速缓冲存储器为该修正状态、或该独占状态。8.一种实施方式中,该第一核心的该核内高速缓冲存储器包括多个高速缓存硬件。该第一核心包括一核内高速缓存表,条列各存储器地址在该第一核心的不同高速缓存硬件的状态。该核内高速缓存表条列的状态的选项包括该修正状态、该独占状态、该共享状态、以及该无效状态。9.一种实施方式中,该指定目标降级迁移前,若在该第一核心为该修正状态、或该独占状态,随着该指定目标降级迁移到该最末级高速缓冲存储器,该核外高速缓存表修正为,标示该指定目标在该第一核心为该共享状态,使该第一核心保留该指定目标。一种实施方式中,降级迁移前,该指定目标若以该修正状态、或该独占状态存在该第一核心的这些高速缓存硬件中的一来源高速缓存硬件,随着该指定目标自该来源高速缓存硬件降级迁移到该最末级高速缓冲存储器,该核内高速缓存表修正为,标示该指定目标在该来源高速缓存硬件为该共享状态,使该来源高速缓存硬件保留该指定目标。10.一种实施方式中,该指定目标为一高速缓存行,且该迁移指令的一操作数为指示该高速缓存行的一存储器地址。通过该内存顺序缓存区,该存储器地址转换为对应该高速缓存行的一高速缓存行信息,搭配该指定请求传递给该最末级高速缓冲存储器,令该最末级高速缓冲存储器查询该核外高速缓存表,判断该高速缓存行是否高速缓存于该第一核心。若该高速缓存行高速缓存于该第一核心,该最末级高速缓冲存储器令该高速缓存行信息搭配一探听请求发送给该第一核心。响应该探听请求,该第一核心根据该高速缓存行信息查询该核内高速缓存表,判断存在该高速缓存行的该来源高速缓存硬件,令该高速缓存行信息搭配一降级请求,传递给该来源高速缓存硬件。响应该降级请求,该来源高速缓存硬件根据该高速缓存行信息,提供该高速缓存行以降级迁移到该最末级高速缓冲存储器,且该核内高速缓存表、以及该核外高速缓存表相应修正。11.一种实施方式中,该指定目标降级迁移前,若在该第一核心为该修正状态、或该独占状态,随着该指定目标降级迁移到该最末级高速缓冲存储器,该核外高速缓存表修正为,标示该指定目标在该第一核心为该无效状态,使该第一核心不保留该指定目标。一种实施方式中,降级迁移前,该指定目标若以该修正状态、或该独占状态存在该第一核心的这些高速缓存硬件中的一来源高速缓存硬件,随着该指定目标自该来源高速缓存硬件降级迁移到该最末级高速缓冲存储器,该核内高速缓存表修正为,标示该指定目标在该来源高速缓存硬件为该无效状态,使该来源高速缓存硬件不保留该指定目标。12.一种实施方式中,该指定目标为完整的该来源高速缓存硬件。通过该内存顺序缓存区,该指定请求传递给该最末级高速缓冲存储器,令该最末级高速缓冲存储器查询该核外高速缓存表,遍历该核外高速缓存表中关于该第一核心的内容,得出该第一核心所涉及的所有目标高速缓存行。令各目标高速缓存行的一高速缓存行信息搭配一探听请求,发送给该第一核心查询该核内高速缓存表,判断探听的各目标高速缓存行是否存在该来源高速缓存硬件。关于探听的各目标高速缓存行,若存在于该来源高速缓存硬件,令相应的一高速缓存行信息搭配一降级请求,传送至该来源高速缓存硬件。响应各降级请求,该来源高速缓存硬件根据接收的高速缓存行信息,提供一高速缓存行以降级迁移到该最末级高速缓冲存储器,且该核内高速缓存表、以及该核外高速缓存表相应修正。13.一种实施方式中,该来源高速缓存硬件为该第一核心的一第一级数据高速缓冲存储器。14.一种实施方式中,该迁移指令为一条串行化指令。15.下文特举实施例,并配合附图,详细说明本
发明内容。附图说明16.图1根据本案一种实施方式图解多核心的一处理器100,包括四核心core_1、core_2、core_3以及core_4;17.图2为方块图,根据本案一种实施方式说明一软硬件接口202;18.图3a图解在迁移来源保留数据时,高速缓存表的更新方式;19.图3b图解不在迁移来源保留数据时,高速缓存表的更新方式;20.图4为方块图,根据本发明一种实施方式图解一处理器上的一核心core_1;21.图5为流程图,根据本案一种实施方式图解迁移指令_clmove译出的微指令如何通过内存顺序缓存区(mob)420驱动层级式高速缓存系统cache_sys;以及22.图6为流程图,根据本案一种实施方式,图解核心core_1对迁移指令l1d_demote译出的微指令如何通过内存顺序缓存区(mob)420驱动层级式高速缓存系统cache_sys。具体实施方式23.以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本
发明内容。实际发明范围应依照权利要求书来界定。24.本案介绍层级式高速缓存系统的管理技巧。25.多核心处理器常有高速缓存内容仅能在单核找到(单核独有)。例如,有些数据只单由某核心的核内高速缓冲存储器高速缓存,此类数据在该核心为独占(exclusive)状态,称e状态。又或者,有些数据的最新版本是存在某核心的核内高速缓冲存储器,此类数据在该核心为修正(modified)状态,称m状态。单核独有的高速缓存内容(例如,在该单核以m状态、或e状态存在),若被其它核心呼叫,会有延时问题。举例说明,若核心a要求读取核心b独有的高速缓存内容,此高速缓存内容需先从核心b载入核心a与核心b共用的最末级高速缓冲存储器(lastlevelcache,简称llc),才能供核心a读取。如此核内高速缓冲存储器至最末级高速缓冲存储器(llc)的载入动作相当耗时。本案提供一种软硬件接口,使各核心不待其它核心呼叫,即主动将自身核内独有的高速缓存内容降级释出─自核内高速缓冲存储器降级迁移到最末级高速缓冲存储器(llc)。如此一来,高速缓存内容的读取不再有机会涉及核内高速缓冲存储器至最末级高速缓冲存储器(llc)的载入动作─高速缓存内容的访问得以被及时回应。26.所述核内至核外迁移可有多种数据规模。除了指定高速缓存行,迁移数据规模可以是指定的核内高速缓存硬件,如:指定完整迁移第一级指令高速缓冲存储器l1i的高速缓存内容至最末级高速缓冲存储器(llc);指定完整迁移第一级数据高速缓冲存储器l1d的高速缓存内容至最末级高速缓冲存储器(llc);指定完整迁移第一级高速缓冲存储器l1(包括l1i以及l1d)的高速缓存内容至最末级高速缓冲存储器(llc);指定完整迁移第二级高速缓冲存储器l2的高速缓存内容至最末级高速缓冲存储器(llc);或者,指定完整迁移核内高速缓冲存储器(包括l1和l2)的高速缓存内容至最末级高速缓冲存储器(llc)。27.图1根据本案一种实施方式图解多核心的一处理器100,包括四核心core_1、core_2、core_3以及core_4。各核心包括一第一级高速缓冲存储器l1(包括l1i以及l1d)、以及一第二级高速缓冲存储器l2。最末级高速缓冲存储器llc(又可称第三级高速缓冲存储器l3)是由处理器100所有核心core_1~core_4共用。各核心的核内高速缓冲存储器(l1以及l2)和所有核心共用的该最末级高速缓冲存储器llc组合成层级式高速缓存系统(稍后以cache_sys标号)。处理器100可提供指令集架构(instructionsetarchitecture,简称isa)的迁移指令、并可搭配设计相关硬件。通过执行所述迁移指令,一核心主动(非响应其他核心)将自身核内的指定高速缓存内容迁移到核外的该最末级高速缓冲存储器llc。指定迁移的高速缓存内容(指定目标)可为指定高速缓存行。或者,指定迁移的高速缓存内容(指定目标)可为该核心的第一级指令高速缓冲存储器l1i、第一级数据高速缓冲存储器l1d、完整的第一级高速缓冲存储器l1(包括l1i以及l1d)、第二级高速缓冲存储器l2、或完整的核内高速缓冲存储器(包括l1和l2)。处理器100支援的指令集架构不限,可为x86架构、也可为进阶精简指令集机器(advancedriscmachine,缩写arm)架构、或其他。28.图2为方块图,根据本案一种实施方式说明一软硬件接口202。图示简化只显示单一核心的核内高速缓冲存储器l1以及l2。除了具有多层级的高速缓冲存储器l1、l2以及llc,本案层级式高速缓存系统cache_sys还包括一降级迁移控制器204,且维护有高速缓存表206、208、210。29.所谓高速缓存表206条列存储器地址(代表各高速缓存行)在最末级高速缓冲存储器llc/l3、以及不同核心core_1~core_4的状态。m状态代表修正状态(modified),i代表无效状态(invalid),e代表独占状态(exclusive),s代表多核的共享状态(shared)。30.各存储器地址的高速缓存行在各核心的不同高速缓存硬件(如,第一级高速缓冲存储器l1、以及第二高速缓冲存储器l2乃不同高速缓存硬件)的状态也可以分开纪录。例如,各核心中,第一级高速缓冲存储器l1有相应的高速缓存表208、且第二级高速缓冲存储器l2有相应的高速缓存表210。31.软硬件接口202以软、硬件搭配设计驱动该层级式高速缓存系统cache_sys进行核内至核外的高速缓存内容迁移。软件程式包括前述迁移指令。该迁移指令声明迁移操作,并配置迁移的数据规模。硬件辨识出迁移操作、以及迁移的数据规模后,转换出后续硬件得以辨识的信息,驱动该层级式高速缓存系统cache_sys的该降级迁移控制器204遍历核内高速缓冲存储器l1以及l2(例如,查询高速缓存表206,再以探听技术探听高速缓存表208、210),定位需要降级(demoting)完成迁移的高速缓存内容,并对其所属该级高速缓冲存储器发出降级请求。参考箭头212,第一级高速缓冲存储器l1是根据降级请求,使其中符合指定目标的高速缓存内容降级迁移至最末级高速缓冲存储器llc。参考箭头214,第二级高速缓冲存储器l2是根据降级请求,使其中符合指定目标的高速缓存内容降级迁移至最末级高速缓冲存储器llc。高速缓存表206、208、以及210会随着高速缓存内容的降级迁移而更新。32.高速缓存内容的降级迁移(核内至核外迁移)有两种形式,一种在迁移来源保留数据,另一种则不在迁移来源保留数据。33.图3a图解在迁移来源保留数据时,高速缓存表的更新方式。表格所述核内高速缓冲存储器可能为第一级指令高速缓冲存储器l1i、第一级数据高速缓冲存储器l1d、第一级高速缓冲存储器l1、或第二级高速缓冲存储器l2、或整体的核内高速缓冲存储器(l1以及l2合并做状态纪录)。除了前述m、e、s、i状态,表格还有任意(don’tcare)dc状态,可为任何状态。由于高速缓存内容的降级迁移(核内至核外)还是会将高速缓存内容保留在核内高速缓冲存储器,如表格所示,降级迁移后,核内高速缓冲存储器中,m/e状态的高速缓存内容统一为s状态(表示高速缓存内容已分享到核外)。此外,如框线302所示,迁移来源的m/e状态要更新到最末级高速缓冲存储器llc该栏位上,标示降级迁移的高速缓存内容在该最末级高速缓冲存储器llc为m/e状态。34.图3b图解不在迁移来源保留数据时,高速缓存表的更新方式。此实施例中,高速缓存内容的降级迁移(核内至核外)不会把高速缓存内容保留在核内高速缓冲存储器。如表格所示,降级迁移后,其在核内高速缓冲存储器统一为i状态,表示无效。此外,如框线304所示,迁移来源的m/e状态要更新到最末级高速缓冲存储器llc该栏位上,标示降级迁移的高速缓存内容在该最末级高速缓冲存储器llc为m/e状态。35.一种实施方式中,本发明揭示一处理器,其中提供一条指令集架构(isa)的迁移指令(以下以_clmove标示),且该条isa迁移指令_clmove是以一操作数(operand)指定要迁移的高速缓存行。一种实施方式中,该操作数是指定一存储器地址(memoryaddress)m8,该存储器地址m8即对应一高速缓存行(cacheline)。若该条高速缓存行存在于发动该条迁移指令_clmove的该核心,则降级迁移发生。一种实施方式更限定是对m/e状态的高速缓存行作降级迁移;指定高速缓存行必须在发动核心为m/e状态,才会进行降级迁移。特别是,响应该迁移指令_clmove的降级迁移在迁移来源会保留数据(可参考第3a图管理高速缓存表)。36.一种实施方式中,本发明揭示一处理器,其中提供另一条指令集架构(isa)的迁移指令(以下以l1d_demote标示),对发动该条迁移指令l1d_demote的该核心的第一级数据高速缓冲存储器l1d的高速缓存内容进行降级迁移。一种实施方式是不限定m/e状态,完整把第一级数据高速缓冲存储器l1d的高速缓存内容迁移到该最末级高速缓冲存储器llc。特别是,响应该迁移指令l1d_demote的降级迁移不会在迁移来源保留数据(可参考第3b图管理高速缓存表)。37.一种实施方式中,本发明在处理器的微码(ucode)有相应该些迁移指令(如,_clmove、或l1d_demote)的设计,且可更在处理器的硬件上有相应修改。38.图4为方块图,根据本发明一种实施方式图解一处理器上的一核心core_1。图示层级式高速缓存系统cache_sys包括第一级指令高速缓冲存储器l1i、第二级数据高速缓冲存储器l1d、第二级高速缓冲存储器l2、以及最末级高速缓冲存储器llc(即l3)。第一级指令高速缓冲存储器l1i、以及第二级数据高速缓冲存储器l1d组成第一级高速缓冲存储器l1。第一级高速缓冲存储器l1、以及第二级高速缓冲存储器l2为核心core_1的核内高速缓冲存储器。在多核心处理器中,最末级高速缓冲存储器llc是供多核心共用(如第1图),而层级式高速缓存系统cache_sys更包括其它核心的核内高速缓冲存储器(如图1其它核心core_2…core_4的第一级、以及第二级高速缓冲存储器l1以及l2)。图示层级式高速缓存系统cache_sys更包括一核外高速缓存表402以及一核内高速缓存表404。核外高速缓存表402可同前述高速缓存表206,条列各存储器地址(代表各高速缓存行)在最末级高速缓冲存储器llc、以及不同核心core_1~core_4的状态。核内高速缓存表404可类似前述高速缓存表208以及210,条列各存储器地址(代表各高速缓存行)在不同核内高速缓存硬件的状态。核内高速缓存表404可条列各存储器地址(代表各高速缓存行)在核心core_1的第一级指令高速缓冲存储器l1i的状态、在第一级数据高速缓冲存储器l1d的状态、以及在第二级数据高速缓冲存储器l2的状态。39.一段指令自系统内存、或第一级指令高速缓冲存储器l1i(如图示)载入一指令高速缓存(instructioncache)406后,交予一解码器408解码。解码器408包括一指令缓存器(instructionbuffer,简称xib)410、以及一指令转译器(translator,简称xlate)412。指令缓存器(xib)410识别分割出本案提出的迁移指令(如,_clmove、或l1d_demote),而指令转译器(xlate)412基于微码(ucode,存储在一微码存储器)将该迁移指令(如,_clmove、或l1d_demote)转译为流水线硬件可辨识的多条微指令(microinstructions)。通过一寄存器别名表(registeraliastable,简称rat)414,微指令(microinstructions)的源/目标(src/dst)重命名。保留站(reservationstation,简称rs)416判断微指令(microinstructions)是否可执行,发送到执行单元418,驱动其中一内存顺序缓存区(memoryorderingbuffer,简称mob)420。该内存顺序缓存区(mob)420依照该迁移指令(如,_clmove、或l1d_demote)转换出的微指令(microinstructions)运作,对指定目标(如,指定高速缓存行、或完整l1d)进行核内至核外高速缓存内容迁移。乱序执行完毕的微指令会在重排缓存区(re-orderbuffer,简称rob)422等待顺序引退(retired)。40.基于上述硬件动作,迁移指令_clmove、或l1d_demote解码出的微指令是通过内存顺序缓存区(mob)420驱动层级式高速缓存系统cache_sys。41.图5为流程图,根据本案一种实施方式图解迁移指令_clmove译出的微指令如何通过内存顺序缓存区(mob)420驱动层级式高速缓存系统cache_sys。步骤s502,通过内存顺序缓存区(mob)420,迁移指令_clmove指定的存储器地址m8转换为高速缓存行信息(如,实体地址pa),且该高速缓存行信息搭配一指定请求(如一降级请求clmoverequest)传递给该最末级高速缓冲存储器llc。步骤s504,该最末级高速缓冲存储器llc查表该核外高速缓存表402,判断迁移指令_clmove指定的高速缓存行是否高速缓存于核心core_1内。若不存在于核心core_1内,流程结束,相关微指令等待顺序引退(retired)。若存在于核心core_1内,流程进行步骤s506,最末级高速缓冲存储器llc令高速缓存行信息搭配一探听请求(clmovesnoop)发送给核心core_1。步骤s508,响应该探听请求(clmovesnoop),核心core_1根据该高速缓存行信息查询该核内高速缓存表404,判断存在该条指定高速缓存行的一来源高速缓存硬件(例如,判断该条指定高速缓存行存在核心core_1的第一级高速缓冲存储器l1、还是第二级高速缓冲存储器l2),令该高速缓存行信息搭配一降级请求(如,demoterequest)传递给该来源高速缓存硬件。步骤s510,响应该降级请求,该来源高速缓存硬件根据该高速缓存行信息,提供相应的高速缓存行,以降级迁移到该最末级高速缓冲存储器llc,且核外、核内高速缓存表402以及404相应修正(参考图3a,因应迁移指令_clmove会在迁移来源保留数据的特征)。接着,流程结束,相关微指令等待顺序引退(retired)。42.特别是,若步骤s504判断指定高速缓存行不存在于核心core_1内,与指定高速缓存行有依赖关系的后续微指令可就此允与被执行。反之,步骤s510后才能执行与指定高速缓存行有依赖关系的后续微指令。43.图6为流程图,根据本案一种实施方式,图解核心core_1对迁移指令l1d_demote译出的微指令如何通过内存顺序缓存区(mob)420驱动层级式高速缓存系统cache_sys。步骤s602,通过内存顺序缓存区(mob)420,一指定请求(l1d_demoterequest)传递给该最末级高速缓冲存储器llc。步骤s604,该最末级高速缓冲存储器llc查表该核外高速缓存表402,遍历其中关于核心core_1(发动该迁移指令l1d_demote的核心)的内容,得出核心core_1所涉及的所有目标高速缓存行。步骤s606令处理中的目标高速缓存行的一高速缓存行信息(如,实体地址pa)搭配一探听请求(demotesnoop)发送回核心core_1。步骤s608查询该核内高速缓存表404,判断探听的目标高速缓存行是否存在核心core_1的第一级数据高速缓冲存储器l1d。若存在,步骤s610又将处理中高速缓存行的高速缓存行信息,搭配一降级请求(demoterequest)传送到核心core_1的第一级数据高速缓冲存储器l1d。步骤s612,根据接收到的高速缓存行信息,第一级数据高速缓冲存储器l1d提供该目标高速缓存行,以降级迁移到最末级高速缓冲存储器llc,且核外、核内高速缓存表402以及404相应修正(参考图3b,因应迁移指令l1d_demote不在迁移来源保留数据的特征)。步骤s614判断是否完成所有目标高速缓存行的降级迁移。若否,流程以步骤s616指向下一条目标高速缓存行,再以步骤s606,由该最末级高速缓冲存储器llc向该核心core_1进行探听。或者,若步骤s608查询核内高速缓存表404后,发现被探听的高速缓存行不存在该第一级数据高速缓冲存储器l1d,流程也会以步骤s616指向下一条目标高速缓存行,再以步骤s606,由该最末级高速缓冲存储器llc向该核心core_1进行探听。所有目标高速缓存行降级迁移后,本流程结束。相关微指令等待顺序引退(retired)。44.该条迁移指令l1d_demote涉及多条目标高速缓存行的降级迁移。一种实施方式是令该条迁移指令l1d_demote是一条串行化指令(serializeinstruction)。该条迁移指令l1d_demote之前其他指令的微指令都引退后,该条迁移指令l1d_demote的微指令才得以被执行。此外,该条迁移指令l1d_demote的微指令全部执行完毕后,后续其他指令的才得以被执行。45.除了指定对第一级数据高速缓冲存储器l1d作核内至核外迁移(迁移指令l1d_demote),更有其他实施方式是指定对其他核内高速缓存硬件作核内至核外迁移。例如,前述迁移指令l1d_demote的技术可以修正成对第一级指令高速缓冲存储器l1i进行,或修正成对第二级高速缓冲存储器l2进行,或修正成对完整第一级高速缓冲存储器(包括l1i和l1d)进行,或修正成对完整核内高速缓冲存储器(包括l1以及l2)进行。46.软件编程上,可在单核独有高速缓存事件后,就安插如此迁移指令,解除单核独有高速缓存状态。47.凡是以isa指令,搭配硬件以及微码设计,指定目标(指定高速缓存行、或指定高速缓存硬件)进行核内至核外高速缓存内容迁移的多核心处理器,都属于本案技术范畴。48.虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,本领域技术人员在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围以权利要求书界定为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1