CN111344685A - 在断电状态期间保留处理器内核的高速缓存条目 - Google Patents
在断电状态期间保留处理器内核的高速缓存条目 Download PDFInfo
- Publication number
- CN111344685A CN111344685A CN201880071347.1A CN201880071347A CN111344685A CN 111344685 A CN111344685 A CN 111344685A CN 201880071347 A CN201880071347 A CN 201880071347A CN 111344685 A CN111344685 A CN 111344685A
- Authority
- CN
- China
- Prior art keywords
- cache
- entry
- processor core
- information
- down state
- 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
- 230000004044 response Effects 0.000 claims abstract description 43
- 238000012545 processing Methods 0.000 claims description 48
- 238000000034 method Methods 0.000 claims description 37
- 238000013519 translation Methods 0.000 claims description 16
- 230000014616 translation Effects 0.000 claims description 16
- 238000011010 flushing procedure Methods 0.000 claims description 6
- 230000002629 repopulating effect Effects 0.000 claims description 3
- 239000000523 sample Substances 0.000 description 60
- 238000010586 diagram Methods 0.000 description 16
- 230000008901 benefit Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000014759 maintenance of location Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000011960 computer-aided design Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/602—Details relating to cache prefetching
-
- 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/65—Details of virtual memory and virtual address translation
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/654—Look-ahead translation
-
- 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/68—Details of translation look-aside buffer [TLB]
-
- 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
与第一高速缓存(205)相关联的处理器内核(215)开始进入断电状态。作为响应,将表示所述第一高速缓存的一组条目(220)的信息存储在保留区域(230)中,所述保留区域在所述处理器内核处于断电状态时接收保留电压。将指示所述一组条目中的一个或多个失效条目的信息也存储在所述保留区域中。响应于所述处理器内核开始从所述断电状态退出,使用表示所述条目的所述所存储的信息和指示所述至少一个失效条目的所述所存储的信息来恢复所述第一高速缓存的条目。
Description
背景技术
常规的处理系统包含处理单元,诸如中央处理单元(CPU)和图形处理单元(GPU),所述处理单元通常包含用于同时或并行地执行指令的多个处理器内核。表示处理器内核的状态的信息被存储在高速缓存中。存储在高速缓存中的信息用于加快处理器内核的操作。例如,转换后备缓冲器(TLB)用于对虚拟地址到物理地址的转换进行高速缓存,使得TLB可在没有耗时的页表遍历的情况下执行虚拟到物质地址转换。对于另一示例,高速缓存层次结构存储由处理器内核执行的指令和所述指令在由处理器内核执行时所使用的数据,使得不必在每次需要指令或数据时从外部存储器提取所述指令或数据。高速缓存层次结构包含:用于对用于每个处理器内核的信息进行高速缓存的L1高速缓存,用于对用于处理单元中的处理器内核的子集的信息进行高速缓存的L2高速缓存,以及用于对用于处理单元中的所有处理器内核的信息进行高速缓存的L3高速缓存。包含式高速缓存层次结构实施包含存储在L2高速缓存中的信息的L3高速缓存,L2高速缓存包含存储在L1高速缓存中的信息。
当处理器内核不主动执行操作(诸如执行指令)时,将处理器内核置于断电状态(其可被称为C6或CC6状态)以减少漏电流。在将对应的处理器内核置于断电状态之前,刷新存储处理器内核的状态信息的高速缓存然后将所述高速缓存断电。例如,当处理器内核断电时,处理器内核的TLB中的条目丢失。对于另一示例,将与处理器内核相关联的L1高速缓存或L2高速缓存中的高速缓存条目刷新到L3高速缓存或外部存储器,诸如动态随机存取存储器(DRAM)或磁盘驱动器。然后当从处理器内核和L1或L2高速缓存移除电力时,高速缓存条目从L1或L2高速缓存丢失。在高速缓存中缺乏最新信息会在处理器内核退出断电状态时降低处理器内核的性能。
附图说明
通过参考附图,可更好地理解本公开,并且使它的许多特征和优点对本领域技术人员来说为显而易见的。在不同附图中使用相同的附图标记来指示类似或相同的项目。
图1是根据一些实施方案的处理系统的框图。
图2是根据一些实施方案的包含转换后备缓冲器(TLB)和外部存储器层次结构的处理系统的一部分的框图。
图3是根据一些实施方案的在将与TLB相关联的处理器内核断电之前将代表TLB中的条目的信息存储在保留区域中的方法的流程图。
图4是根据一些实施方案的在将与TLB相关联的处理器内核断电之前使用存储在保留区域中的信息来恢复TLB中的条目的方法的流程图。
图5是根据一些实施方案的高速缓存层次结构的框图。
图6是根据一些实施方案的包含L2高速缓存和L3高速缓存的高速缓存层次结构的一部分的框图。
图7是根据一些实施方案的在将与较低层级高速缓存相关联的处理器内核断电之前将代表较低层级高速缓存中的条目的信息存储在保留区域中的方法的流程图。
图8是根据一些实施方案的响应于处理器内核开始从断电状态退出而使用存储在保留区域中的信息来重新填充较低层级高速缓存中的条目的方法的流程图。
具体实施方式
至少部分为了在处理器内核退出断电状态时使处理器内核的性能加速以及为了在断电状态期间维持高速缓存一致性,将与断电的处理器内核相关联的高速缓存中的条目存储在当处理器内核处于断电状态时接收保留电压的保留区域中。当将条目的副本存储在保留区域中之后,处理器内核进入断电状态。当处理器内核处于断电状态时存储指示高速缓存中的一个或多个条目的失效的信息。基于条目的所存储的副本和所存储的失效信息来恢复高速缓存。响应于处理器内核开始退出断电状态而执行恢复。保留区域在存储器层次结构的一部分中实施,所述部分在处理器内核处于断电状态的同时保持上电并运行。保留区域可包含高速缓存层次结构中的较高层级高速缓存、外部存储器诸如动态随机存取存储器(DRAM),或使用通过在处理器内核断电时继续通电的电源供电的处理器内核中的存储元件。例如,保留区域可使用高速缓存自身的存储元件,即,在高速缓存具备在内核的其余部分处于断电状态时继续通电的电源的情况下可原位保留高速缓存中的数据。
在一些实施方案中,高速缓存是对虚拟到物理地址转换进行高速缓存以供处理器内核使用的转换后备缓冲器(TLB)。响应于处理器内核进入断电状态而将TLB中的条目存储在保留区域中。当对应的处理器内核断电时,存储指示使TLB中的条目失效的请求的信息,例如,将个别请求存储在队列中或将位设置为某一值以指示TLB中的一个或多个条目已失效。所存储的TLB条目和失效信息用于通过响应于处理器内核上电而重新填充条目来恢复TLB。例如,在从保留区域重新填充TLB条目之后,重放TLB失效请求以使TLB中的条目失效。在队列溢出的情况下,整个TLB失效,这是因为在队列中不再可获得恢复TLB所需的所有信息。对于另一示例,如果在处理器内核断电时位的值指示TLB条目中的一个或多个已失效,则整个TLB失效。在一些实施方案中,替代于响应于将处理器内核断电而存储TLB中的条目,将TLB中的虚拟地址的列表存储在保留区域中。当处理器内核上电时预取虚拟地址以抢先开始页表遍历,所述页表遍历填充TLB中的条目。
在一些实施方案中,高速缓存是包含性高速缓存层次结构中的较低层级高速缓存,诸如高速缓存层次结构中的L1高速缓存或L2高速缓存。保留区域可包含在处理器内核断电时接收保留电压的较高层级高速缓存(诸如L3高速缓存)或外部存储器(诸如DRAM)。也可通过向高速缓存的存储元件提供保留电源而在高速缓存自身中实施保留区域。响应于处理器内核进入断电状态,例如,通过冲洗高速缓存以写出高速缓存条目的修改后的值或通过刷新高速缓存中的所有条目来将高速缓存中的修改后的值或脏值写入到较高层级高速缓存或外部存储器。当处理器内核断电时存储指示高速缓存中的高速缓存条目的失效的信息。较高层级高速缓存的一些实施方案包含存储与断电的处理器内核的较低层级高速缓存相关联的高速缓存条目的物理地址以及指示条目是否有效和干净的信息的阴影标签。阴影标签还可存储指示当处理器内核断电时条目是否失效的信息。如果在高速缓存自身中实施保留区域,则不需要为了恢复而重新填充高速缓存。如果不在高速缓存自身中实施保留区域,则响应于处理器内核上电而使用阴影标签中的信息来重新填充高速缓存。例如,基于存储在阴影标签中的对应的物理地址来预取较低层级高速缓存的有效条目。
一些实施方案实施探针队列,所述探针队列存储指示在处理器内核断电时接收的探针的信息。如果处理器内核包含阴影标签,则探针队列只记录命中阴影标签中的地址的探针。探针队列还可通过向阴影标签的每个条目添加字段来实施,所述字段指示响应于对处理器内核上电将使对应的较低层级高速缓存行失效。响应于处理器内核上电而将存储在探针队列中的探针发送到高速缓存。在探针队列溢出的情况下,对处理器内核上电以服务于探针队列中的探针或在处理器内核上电时整个高速缓存失效。也可使用在处理器内核断电时维持高速缓存一致性的其他方法。在以些情况下,响应于接收到探针而对高速缓存上电,这允许高速缓存使探针指示的条目失效然后再次断电。这种方法消耗大量开销。每个高速缓存层级也可具备“时钟开启”时钟,所述时钟允许高速缓存上下计时以服务于探针。在一些实施方案中,诸如布隆过滤器之类的其他机制用来识别可能命中较低层级高速缓存并因此必须被记录在探针队列中的探针。
图1是根据一些实施方案的处理系统100的框图。处理系统100包含或可以存取使用诸如动态随机存取存储器(DRAM)之类的非暂时性计算机可读介质实施的存储器105或其他存储部件。然而,存储器105也可使用其他类型的存储器,包含静态随机存取存储器(SRAM)、非易失性RAM等来实施。因为存储器105在处理系统100中实施的处理单元外部实施,所以它被称为外部存储器。处理系统100还包含总线110以支持在处理系统100中实施的实体(诸如存储器105)之间的通信。处理系统100的一些实施方案包含为了清楚起见而在图1中未示出的其他总线、桥接器、交换机、路由器等。
处理系统100包含被配置为渲染图像以用于在显示器120上呈现的图形处理单元(GPU)115。例如,GPU 115渲染对象以产生提供给显示器120的像素值,所述显示器使用像素值来显示表示渲染的对象的图像。GPU 115的一些实施方案用于通用计算。在所示实施方案中,GPU 115实施被配置为同时或并行地执行指令的多个处理器内核116、117、118(在本文中统称为“处理器内核116-118”)。处理器内核116-118也被称为着色器引擎。
GPU 115还包含用于支持与存储器105的通信的存储器管理单元(MMU)121。在所示实施方案中,MMU 121经由总线110与存储器105通信。然而,MMU 121的一些实施方案经由直接连接或经由其他总线、桥接器、交换机、路由器等与存储器105通信。GPU 115执行存储在存储器105中的指令并且GPU 115将诸如所执行的指令的结果之类的信息存储在存储器105中。例如,存储器105存储来自将由GPU 115执行的程序代码的指令的副本125。MMU 121包含转换后备缓冲器(TLB)123,所述TLB 123是存储由处理器内核116-118使用的虚拟到物理地址转换的高速缓存。例如,处理器内核116向MMU121传输包含虚拟地址的存储器存取请求,MMU 121使用TLB 123中的对应条目将虚拟地址转换为物理地址。然后,MMU 121可使用物理地址(例如,向存储器105)传输存储器请求。
GPU 115包含高速缓存层次结构130,所述高速缓存层次结构包含用于对指令或数据进行高速缓存以用于使处理器内核116-118进行相对低等待时间的存取的高速缓存的一个或多个层级。被调度到处理器内核116-118的指令包含用于将信息(诸如指令或数据)预取到高速缓存层次结构130中的一个或多个预取指令。例如,在处理器内核116上执行的预取指令从副本125预取指令,使得在处理器内核116执行指令之前在高速缓存层次结构130中可获得指令。尽管将高速缓存层次结构130示出为在处理器内核116-118外部,但是处理器内核116-118的一些实施方案并入有互连到高速缓存层次结构130的对应的高速缓存(诸如L1高速缓存)。
处理系统100还包含中央处理单元(CPU)140,所述CPU 140实施多个处理器内核141、142、143,它们在本文中统称为“处理器内核141-143。”处理器内核141-143被配置为同时或并行地执行指令。CPU140连接到总线110,并且因此经由总线110与GPU 115和存储器105通信。CPU 140包含MMU 145以支持与存储器105的通信。MMU145包含TLB 150,所述TLB150存储由处理器内核141-143使用的虚拟到物理地址转换。CPU 140执行诸如存储在存储器105中的程序代码155之类的指令并且CPU 140将诸如所执行的指令的结果之类的信息存储在存储器105中。CPU 140还能够通过向GPU 115发出绘图调用来开始图形处理。
CPU 140的一些实施方案包含高速缓存层次结构160,所述高速缓存层次结构包含用于对指令或数据进行高速缓存以用于使处理器内核141-143进行相对低等待时间的存取的高速缓存的一个或多个层级。尽管将高速缓存层次结构160示出为在处理器内核141-143外部,但是处理器内核141-143的一些实施方案并入有互连到高速缓存层次结构160的对应的高速缓存。在一些实施方案中,被调度到处理器内核141-143的指令包含用于将信息(诸如指令或数据)预取到高速缓存层次结构160中的一个或多个预取指令。例如,通过处理器内核141上的波执行的预取指令可从程序代码155预取指令,使得在处理器内核141执行指令之前在高速缓存层次结构160中可获得指令。
输入/输出(I/O)引擎165处置与显示器120以及处理系统100的其他元件(诸如键盘、鼠标、打印机、外部磁盘等)相关联的输入或输出操作。I/O引擎165联接到总线110,使得I/O引擎165能够与存储器105、GPU 115或CPU 140通信。在所示实施方案中,I/O引擎165被配置为读取存储在外部存储部件170上的信息,所述外部存储部件使用诸如压缩光盘(CD)、数字视频光盘(DVD)等非暂时性计算机可读介质来实施。I/O引擎165还可将诸如GPU 115或CPU 140的处理结果之类的信息写入到外部存储部件170。
如本文中所讨论的,常规的处理系统不提供用于维持上电的高速缓存与存储在与进入断电状态的对应处理器共同断电的高速缓存中的信息之间的高速缓存一致性的机制。如本文中所使用的,术语“断电的”是指其中供应到处理器内核和诸如高速缓存之类的相关实体的电力下降到维持处理器内核或其他实体的功能所需的水平以下的状态。例如,断电的处理器内核不能执行指令。对于另一示例,断电的高速缓存没有被供应足够的电力而无法例如通过维持用于构建高速缓存的位存储元件的晶体管的状态来维持所存储的位值。
常规的处理系统无法在处理器内核处于断电状态时考虑断电的高速缓存中的高速缓存条目的失效。至少部分地为了解决常规实践中的这个缺点,处理系统100响应于处理器内核116-118、141-143中的对应的处理器内核开始进入断电状态而将表示TLB 123、150或高速缓存层次结构130、160中的条目的信息存储在保留区域中。保留区域在处理器内核处于断电状态的同时接收保留电压。处理系统100监视在处理器内核处于断电状态时发出的失效请求或高速缓存探针,然后用在处理器内核处于断电状态时未失效的条目选择性地重新填充TLB 123、150或高速缓存层次结构130、160。
在处理系统100的一些实施方案中,多个选项可用于存储和恢复TLB 123、150或高速缓存层次结构130、160中的条目。当处理器内核116-118、141-143处于断电状态时,记录探针(或其他失效请求)。对照阴影标签、布隆过滤器或识别保持于保留电压的保留区域中的高速缓存的信息的潜在命中的其他信息来检查探针。错过的探针没有进一步影响。将命中高速缓存的信息的探针、是由布隆过滤器指示的潜在命中的探针或不能确定命中状态的探针记录在探针队列或对应的阴影标签中。在任一情况下,如果不能将探针命中(或潜在探针命中)记录在探针队列或阴影标签中,则设置溢出位。基于较低层级高速缓存是否保持在保留电压,响应于处理器内核116-118、141-143上电而执行选择性重新填充。如果是,则较低层级高速缓存保留了先前的条目。对较低层级高速缓存重放记录的探针命中(或潜在命中)以使对应的条目失效并恢复高速缓存。如果设置了溢出位,则整个较低层级高速缓存失效。如果较低层级高速缓存没有保持在保留电压,则阴影标签中的物理地址用于预取(并由此恢复)较低层级高速缓存。不预取在断电状态期间被探针命中的阴影标签中的物理地址。
图2是根据一些实施方案的包含转换后备缓冲器(TLB)205和外部存储器层次结构210的处理系统的一部分200的框图。该部分200用于实施图1所示的处理系统100的一些实施方案。例如,外部存储器层次结构210可包含图1所示的存储器105、高速缓存层次结构130、160中的L3高速缓存,以及外部存储部件170。TLB 205用于对由处理器内核215利用的虚拟到物理地址转换进行高速缓存。将每个虚拟到物理地址转换存储在条目220中(为了清楚起见参考符号只指示一个条目)。TLB 205和处理器内核215是在相同的电源域225中。TLB205和处理器内核215因此使用相同的电源系统接收电力。在一些实施方案中,TLB 205和处理器内核215还接收来自同一时钟网的时钟信号。因此,当处理器内核215处于断电状态时,TLB 205被断电。
外部存储器层次结构210的至少一部分独立于供应给电源域225的电力接收电力。因此外部存储器层次结构210的独立供电部分在处理器内核215处于断电状态时接收保留电压,并用于实施保留区域以用于存储代表TLB 205中的条目220的信息。在所示实施方案中,保留区域存储TLB 205中的条目220的副本230。然而,在其他实施方案中,保留区域存储代表条目220的其他信息,诸如与条目220相关联的虚拟地址。响应于处理器内核215开始进入断电状态,将代表条目220的信息存储在外部存储器层次结构210中。例如,响应于指示处理器内核215将要断电的信号,将条目220的副本230写入到外部存储器层次结构210。
当处理器内核215处于断电状态时,TLB 205中的条目220失效。因此,该处理系统监视失效请求,诸如使TLB 205中的条目220失效的TLB击落。外部存储器层次结构210的一些实施方案实施队列235,以存储在处理器内核215处于断电状态的同时接收的失效请求。队列235具有有限长度,并且在处理器内核215处于断电状态时接收的失效请求的数量超过队列235中的可用槽的数量的情况下溢出。外部存储器层次结构210的一些实施方案以其他格式存储代表失效请求的信息。例如,外部存储器层次结构210存储单个位,所述位被设置为第一值(例如,0)以指示针对TLB 205没有接收到失效请求以及第二值(例如,1)以指示针对TLB 205已接收到一个或多个失效请求。
响应于处理器内核215开始从断电状态退出,例如响应于处理器内核215上电,使用存储在外部存储器层次结构210的保留区域中的代表条目220的信息来填充TLB 205。例如,将TLB副本230中的条目写回到TLB 205以重新填充条目220。然后基于在处理器内核215处于断电状态时接收的任何失效请求来更新TLB 205的状态。例如,重放队列235中的失效请求以使对应条目220失效并产生TLB205的正确状态。对于另一示例,如果外部存储器层次结构210存储了与条目220相关联的虚拟地址,则预取虚拟地址以触发页表遍历,所述页表遍历重新填充TLB 205中的条目220。在这个示例中,进行新的页表遍历以填充TLB 205,并且因此TLB 205中没有条目需要失效来保持TLB 205与系统的其余部分一致。对于又一示例,如果外部存储器层次结构210存储了指示是否接收到任何失效请求的单个位,如果该位指示已接收到一个或多个失效请求,则TLB 205中的所有条目220都失效。
在一些实施方案中,替代于重新填充然后失效,通过根据在处理器内核215处于断电状态时接收的失效请求有条件地重新填充条目来恢复TLB 205的条目220。例如,响应于处理器内核215上电而仅将TLB副本230中的未失效的条目(如由队列235中的信息所指示)写回到TLB 205中。对于另一示例,如果外部存储器层次结构210存储了单个位,所述单个位被设置为指示接收到一个或多个失效请求的值,则不将TLB副本230写回到TLB 205,所述TLB副本230基于该位值是失效的。
图3是根据一些实施方案的在将与TLB相关联的处理器内核断电之前将代表TLB中的条目的信息存储在保留区域中的方法300的流程图。方法300在图1所示的处理系统100和图2所示的处理系统的部分200的一些实施方案中实施。
在框305处,处理系统开始处理器内核的断电。例如,响应于不存在调度给处理器内核以供执行的指令或预测到在超过断电阈值的随后的时间间隔内将没有指令调度给处理器内核以供执行,处理器内核开始进入断电状态。
在框310处,将代表TLB中的条目的信息存储到实施保留区域的外部存储器,所述保留区域在处理器内核处于断电状态时保留电力。外部存储器的一些实施方案是使用L3高速缓存、DRAM和外部存储装置(诸如磁盘驱动器)来实施。所述信息包含TLB中的条目的副本或TLB中的条目的虚拟地址。
在框315处,将处理器内核断电。处理器内核的断电在已将代表TLB中的条目的信息存储到外部存储器之后发生以防止此信息在TLB停电时丢失。
在框320处,将代表针对TLB接收的失效请求的信息存储在保留区域中。例如,保留区域可实施队列,所述队列存储在处理器内核处于断电状态时的失效请求。对于另一示例,保留区域可实施位,所述位被设置为第一值(例如,0)以指示针对TLB没有接收到失效请求以及第二值(例如,1)以指示针对TLB已接收到一个或多个失效请求。
图4是根据一些实施方案的在将与TLB相关联的处理器内核断电之前使用存储在保留区域中的信息来重新填充TLB中的条目的方法400的流程图。方法400在图1所示的处理系统100和图2所示的处理系统的部分200的一些实施方案中实施。
在框405处,处理系统开始处理器内核的上电。例如,响应于处理系统中的调度者调度指令以用于在处理器内核上执行,开始从断电状态退出。
在决策框410处,处理系统响应于接收到的失效请求的数量超过队列中的可用槽的数量而确定存储失效请求的队列是否已溢出。如果是,则方法400进行到框415,并使TLB中的所有条目失效,这是因为队列无法保存重构TLB的状态所必需的所有信息。如果队列没有溢出,则方法400进行到框420。
在框420处,使用代表TLB中的条目的信息来重新填充TLB。例如,将条目的副本从保留区域写入到TLB中。对于另一示例,预取存储在保留区域中的条目的地址来触发页表遍历,所述页表遍历填充TLB中的条目。
在框425处,基于在处理器内核处于断电状态时接收的失效请求来修改TLB的状态。例如,重放存储在队列中的失效请求来使TLB中的条目失效。对于另一示例,如果保留区域仅存储单个位以指示在处理器内核处于断电状态时是否接收到任何失效请求,如果该位的值指示接收到一个或多个失效请求,则使TLB中的所有条目失效。
图5是根据一些实施方案的高速缓存层次结构500的框图。高速缓存层次结构500用于实施图1所示的GPU 115中的高速缓存层次结构130的一些实施方案和CPU 140中的高速缓存层次结构160的一些实施方案。高速缓存层次结构500对用于处理器内核501、502、503、504(它们在本文中统称为“处理器内核501-504”)的信息(诸如指令或数据)进行高速缓存。处理器内核501-504用于实施图1所示的处理器内核116-118、141-143的一些实施方案。
高速缓存层次结构500包含三个高速缓存层级:包含L1高速缓存511、512、513、514(在本文中统称为“L1高速缓存511-514”)的第一层级、包含L2高速缓存515、516、517、518(在本文中统称为“L2高速缓存515-518”)的第二层级和包含L3高速缓存520的第三层级。然而,高速缓存层次结构500的一些实施方案包含更多或更少的高速缓存层级。虽然将L1高速缓存511-514示出为互连到对应的处理器内核501-504的单独的硬件结构,但是L1高速缓存511-514的一些实施方案并入到实施处理器内核501-504的硬件结构中。
L1高速缓存511-514用以对信息进行高速缓存以供对应的处理器内核501-504存取。例如,L1高速缓存511被配置为对用于处理器内核501的信息进行高速缓存。因此,处理器内核501向L1高速缓存511发出存储器存取请求。如果存储器存取请求命中L1高速缓存511,则返回所请求的信息。如果存储器存取请求错过L1高速缓存511,则L1高速缓存511将存储器存取请求转发到下一个更高的高速缓存层级(例如,L2高速缓存515)。在L1高速缓存511中高速缓存的信息通常不可由其他处理器内核502-504存取。
L2高速缓存515-518还被配置为对用于处理器内核501-504的信息进行高速缓存。在所示实施方案中,L2高速缓存515-518包含对应的L1高速缓存511-514。例如,L2高速缓存515对包含高速缓存在L1高速缓存511中的信息的信息进行高速缓存。然而,L2高速缓存515-518通常比L1高速缓存511-514更大并且因此L2高速缓存515-518还存储没有存储在对应的L1高速缓存511-514中的其他信息。如上文所讨论,如果处理器内核501-504中的一个发出错过对应的L1高速缓存511-514的存储器存取请求,则将存储器存取请求转发到对应的L2高速缓存515-518。如果存储器存取请求命中L2高速缓存515-518,则将所请求的信息返回到发出请求的处理器内核501-504。如果存储器存取请求错过L2高速缓存515-518,则L2高速缓存515-518将存储器存取请求转发到高速缓存的下一个更高的层级(例如,L3高速缓存520)。在一些实施方案中,在多个L1高速缓存511-514与对应的处理器内核501-504之间共享L2高速缓存515-518。
L3高速缓存520被配置为用于处理器内核501-504的全局高速缓存。将来自处理器内核501-504的错过L2高速缓存515、520的存储器存取请求转发到L3高速缓存520。如果存储器存取请求命中L3高速缓存520,则将所请求的信息返回到发出请求的处理器内核501-504。如果存储器存取请求错过L3高速缓存520,则L3高速缓存520将存储器存取请求转发到存储器系统,诸如DRAM 525。
在所示实施方案中,处理器内核501-504、L1高速缓存511-514和L2高速缓存515-518在电源域530、531、532、533(它们在本文中统称为“电源域530-533”)中实施。将电力独立地供应给电源域530-533并且因此在电源域530-533中的实体独立地或单独地上电或断电。例如,处理器内核501可置于断电状态,同时处理器内核502-504保留在上电状态。然而,移除处理器内核501-504的电力也移除对应的L1高速缓存511-514和L2高速缓存515-518的电力,因此当对应的处理器内核501-504进入断电状态时对应的L1高速缓存511-514和L2高速缓存515-518丢失任何存储的信息。
响应于对应的处理器内核501-504开始进入断电状态,将代表L1高速缓存511-514或L2高速缓存515-518中的条目的信息存储在保留区域中。保留区域在处理器内核501-504中的一个或多个的断电状态期间继续接收保留电压。保留区域可在DRAM 525或L3高速缓存520中实施。如果在处理器内核501-504处于断电状态时供应保留电压,则保留区域也可在L1高速缓存511-514或L2高速缓存515-518中实施。代表条目的信息可包含条目的副本或存储在条目中的信息的物理地址。例如,通过将修改后的(或脏)条目从L2高速缓存515写入到在L3高速缓存520中实施的保留区域来冲洗代表L2高速缓存515中的条目的信息。对于另一示例,通过将L2高速缓存515中的所有条目写入到在L3高速缓存520中实施的保留区域来刷新代表L2高速缓存515中的条目的信息。
保留区域还存储表示在处理器内核501-504中的一个或多个处于断电状态时接收的失效信号(诸如高速缓存探针)的信息。在一些实施方案中,将信息存储在与高速缓存中的条目相关联的阴影标签中。例如,L3高速缓存520存储针对L2高速缓存515-518中的条目的阴影标签。阴影标签包含指示对应条目是否包含干净的数据或条目是否是针对与进入断电状态的处理器内核501-504中的一个共同断电的高速缓存的信息。阴影标签还包含指示条目是否有效,例如,是否已经针对对应条目接收到高速缓存探针的一个或多个位。对于另一示例,保留区域实施位,所述位被设置为第一值(例如,0)以指示针对条目没有接收到高速缓存探针以及第二值(例如,1)以指示针对条目已接收到一个或多个高速缓存探针。阴影标签的一些实施方案包含存储在条目中的信息的物理地址。保留区域的一些实施方案实施队列以保存高速缓存探针以用于随后重放。除了阴影标签中的高速缓存探针位之外或替代于实施高速缓存探针位,实施队列。
保留区域中的信息用以响应于对应的处理器内核501-504开始从断电状态退出而恢复高速缓存。例如,响应于处理器内核501开始从断电状态退出,从L3高速缓存520写回L2高速缓存515中的条目的副本。对于另一示例,使用存储在L3高速缓存520中的阴影标签中的物理地址来预取L2高速缓存515中的条目的值。表示失效信号的信息用于修改高速缓存条目。例如,如果针对L2高速缓存515中的条目的阴影标签中的位的值指示针对条目接收到高速缓存探针,则所述位值用于使条目失效。不预取阴影标签中的失效条目的物理地址。对于另一示例,从队列重放高速缓存探针以修改L2高速缓存515中的条目。
图6是根据一些实施方案的包含L2高速缓存605和L3高速缓存610的高速缓存层次结构的一部分600的框图。L2高速缓存605对用于处理器内核(诸如图5所示的处理器内核501-504中的一个)的信息进行高速缓存。L3高速缓存610用于为L2高速缓存605实施保留区域,这是因为当与L2高速缓存605相关联的处理器内核处于断电状态时L3高速缓存610继续接收电力。在一些实施方案中,通过冲洗或刷新L2高速缓存605来将L2高速缓存605中的条目的副本写回到L3高速缓存610。
L3高速缓存610中的保留区域存储与L2高速缓存605相关联的阴影标签615。阴影标签615包含高速缓存在L2高速缓存605的条目中的值的物理地址620。位值625指示条目是否包含未修改的(干净的)数据(值1指示干净的数据),位值630指示条目是否与处于断电状态的高速缓存相关联(值1指示与断电的高速缓存相关联),并且位值635指示条目是否有效(值1指示失效)。响应于探针命中对应条目而修改位值635,例如,将位值635设置为值1以指示该条目已通过探针命中而失效。图6所示的阴影标签615指示所有条目包含与处于断电状态的高速缓存相关联的干净的数据并且高速缓存探针已使与物理地址P_ADDR_2相关联的高速缓存条目失效。
响应于与L2高速缓存605相关联的处理器内核开始从断电状态退出,使用存储在L3高速缓存610中的信息来重新填充L2高速缓存605中的条目。例如,将存储在阴影标签615中的有效条目的物理地址预取到L2高速缓存605的条目中。对于另一示例,如果L3高速缓存610存储存储在L2高速缓存605的条目中的值的副本,则将值写回到L2高速缓存605。然后,位值635用于使在处理器内核处于断电状态时接收到高速缓存探针的条目失效。
保留区域的一些实施方案包含探针队列640,所述探针队列存储指示在处理器内核处于断电状态时接收的探针的信息。在已使用存储在L3高速缓存610中的代表高速缓存条目的信息重新填充L2高速缓存605之后,响应于处理器内核上电,将存储在探针队列640中的探针发送到L2高速缓存605。重放存储在探针队列640中的探针使由探针指示的条目失效以将L2高速缓存605置于恰当的状态。在探针队列640溢出的情况下,对处理器内核上电以服务于探针队列640中的探针或在处理器内核上电时整个L2高速缓存605失效。
图7是根据一些实施方案的在将与较低层级高速缓存相关联的处理器内核断电之前将代表较低层级高速缓存中的条目的信息存储在保留区域中的方法700的流程图。方法700在图1所示的处理系统100、图5所示的高速缓存层次结构500和图6所示的处理系统的一部分600的一些实施方案中实施。
在框705处,处理器内核上电并处于正常操作模式。在所示实施方案中,将较高层级高速缓存中的阴影标签用作处理器内核使用的较低层级高速缓存中的高速缓存行的探针过滤器。探针过滤器防止将未存储在与处理器内核相关联的较低层级高速缓存中的高速缓存行的探针发送到处理器内核。因此在处理器内核在以上电模式操作时维持阴影标签。
在框710处,处理系统开始处理器内核的断电。例如,响应于不存在调度给处理器内核以供执行的指令或预测到在超过断电阈值的随后的时间间隔内将没有指令调度给处理器内核以供执行,处理器内核开始进入断电状态。
在框715处,将较低层级高速缓存中的修改后的或脏条目写回到实施保留区域较高层级高速缓存,所述保留区域在处理器内核处于断电状态时接收保留电压。例如,可将L2高速缓存中的脏条目写回到L3高速缓存。还更新与L2高速缓存中的条目相关联的L3高速缓存中的阴影标签。在其他示例中,也可将表示其他高速缓存(诸如L1高速缓存)中的条目的信息存储在保留区域中。此外,保留区域可在包含外部存储器(诸如DRAM)的其他实体、其他高速缓存,或较低层级高速缓存(如果在多处理器内核处于断电状态时将保留电压提供到较低层级高速缓存的话)中实施。
在框720处,将处理器内核断电。处理器内核的断电在已将代表较低层级高速缓存中的条目的信息存储到外部存储器之后发生以防止此信息在较低层级高速缓存停电时丢失。
在框725处,响应于在处理器内核处于断电状态时接收的高速缓存探针来修改保留区域中的阴影标签。例如,响应于接收到条目的高速缓存探针而将条目的阴影标签中的指示该条目是否有效的位设置为指示该条目是无效的值。对于另一示例,将高速缓存探针添加到在保留区域中实施的探针队列。
图8是根据一些实施方案的响应于处理器内核开始从断电状态退出而使用存储在保留区域中的信息来恢复较低层级高速缓存中的条目的方法800的流程图。方法800在图1所示的处理系统100、图5所示的高速缓存层次结构510和图6所示的处理系统的一部分600的一些实施方案中实施。
在框805处,处理系统开始处理器内核的上电。例如,响应于处理系统中的调度者调度指令以用于在处理器内核上执行,开始从断电状态退出。
在框810处,恢复与处理器内核相关联的较低层级高速缓存。在一些实施方案中,使用存储在保留区域中的阴影标签中的物理地址来重新填充较低层级高速缓存。例如,通过预取L3高速缓存的阴影标签中的有效条目的物理地址来重新填充L2高速缓存。在这种情况下,无需随后修改L2高速缓存中的信息,这是因为只预取有效的条目并且不将L3高速缓存的阴影标签中的无效条目预取到L2高速缓存中。对于另一实例,通过将条目的副本从L3高速缓存写入到L2高速缓存中来重新填充L2高速缓存。当处理器内核处于断电模式时,向较低层级高速缓存的一些实施方案提供保留电压。在这种情况下,不需要为了恢复较低层级高速缓存而重新填充较低层级高速缓存中的条目。例如,如果在内核断电时L2高速缓存的存储元件接收保留电压,则将L2高速缓存条目原位保留在L2高速缓存中并且基于失效信息来恢复L2高速缓存。
在实施探针队列的保留区域的实施方案中,基于存储在探针队列中的高速缓存探针来修改(在框815处)响应于处理器内核开始从断电状态退出而提供给较低层级高速缓存的信息。例如,重放存储在探针队列中的高速缓存探针以使重新填充的L2高速缓存中的对应条目失效。因此框815是任选的(这由虚线表示)并且在方法800的一些实施方案中不执行。
在框820处,处理器内核上电并开始基于重新填充的较低层级的高速缓存执行指令。
在一些实施方案中,上文描述的设备和技术在包含一个或多个集成电路(IC)装置(也被称为集成电路封装或微芯片)的系统(诸如上文参考图1至图8描述的处理系统)中实施。电子设计自动化(EDA)和计算机辅助设计(CAD)软件工具可用于这些IC装置的设计和制造。这些设计工具通常表示为一个或多个软件程序。所述一个或多个软件程序包含代码,所述代码可由计算机系统执行以操纵计算机系统来对代表一个或多个IC装置的电路的代码进行操作,以便执行用以设计或调适制造系统从而制造电路的过程的至少一部分。这个代码可包含指令、数据或指令和数据的组合。表示设计工具或制造工具的软件指令通常存储在可由计算系统存取的计算机可读存储介质中。同样地,代表IC装置的设计或制造的一个或多个阶段的代码可存储在同一计算机可读存储介质或不同的计算机可读存储介质中,以及从同一计算机可读存储介质或不同的计算机可读存储介质进行存取。
计算机可读存储介质可包含使用期间可由计算机系统存取以将指令和/或数据提供给计算机系统的任何非暂时性存储介质或非暂时性存储介质的组合。此类存储介质可包含但不限于光学介质(例如,压缩光盘(CD)、数字通用光盘(DVD)、蓝光光盘)、磁性介质(例如,软盘、磁带或磁性硬盘驱动器)、易失性存储器(例如,随机存取存储器(RAM)或高速缓存)、非易失性存储器(例如,只读存储器(ROM)或快闪存储器)或基于微机电系统(MEMS)的存储介质。计算机可读存储介质可嵌入在计算系统(例如,系统RAM或ROM)中、固定地附接到计算系统(例如,磁性硬盘驱动器)、可移除地附接到计算系统(例如,光盘或基于通用串行总线(USB)的快闪存储器)或经由有线或无线网络(例如,网络可存取储存器(NAS))联接到计算机系统。
在一些实施方案中,上文描述的技术的某些方面可由执行软件的处理系统的一个或多个处理器实施。软件包含存储或以其他方式有形地体现在非暂时性计算机可读存储介质上的一个和多个可执行指令集合。所述软件可包含当由一个或多个处理器执行时操纵一个或多个处理器以执行上述技术的一个或多个方面的指令和某些数据。非暂时性计算机可读存储介质可包含例如磁盘或光盘存储装置、固态存储装置诸如快闪存储器、高速缓存、随机存取存储器(RAM)或其他一个或多个非易失性存储器装置等。存储在非暂时性计算机可读存储介质上的可执行指令可以是源代码、汇编语言代码、目标代码或者被一个或多个处理器解译或可以其他方式执行的其他指令格式。
应注意,并非上文在一般性描述中描述的所有活动或元素都是必需的,特定活动或装置的一部分可能不需要,并且除了所描述的那些以外,还可执行一个或多个其他活动,或者还可包含一个或多个其他元素。另外,列出活动的顺序不一定是其被执行的顺序。而且,已经参考具体实施方案描述了概念。然而,本领域技术人员应了解,在不脱离如所附权利要求书所阐述的本公开的范围的情况下,可进行各种修改和改变。因此,说明书和附图应以说明性的而不是限制性的意义看待,并且所有这些修改意在被包含在本公开的范围内。
上文已经关于具体实施方案描述了益处、其他优点和问题的解决方案。然而,益处、优点、问题的解决方案以及可能导致任何益处、优点或解决方案发生或变得更明显的一个或多个任何特征都不应被解释为任何或所有权利要求的关键、必需或本质特征。此外,上文公开的特定实施方案仅仅是说明性的,因为所公开的主题可以受益于本文教示的本领域技术人员明白的不同但等效的方式进行修改和实践。除了在所附权利要求书中所描述的之外,无意限于本文示出的构造或设计的细节。因此,显而易见的是,可更改或修改上文公开的特定实施方案,并且所有这样的变化都被认为在所公开的主题的范围内。因此,本文寻求的保护如所附权利要求书中所阐述。
Claims (20)
1.一种方法,所述方法包括:
响应于与第一高速缓存相关联的处理器内核断电,将表示所述第一高速缓存的一组条目的信息存储在处理系统的保留区域中,所述保留区域在所述处理器内核处于断电状态时接收保留电压;
将指示所述第一高速缓存的所述一组条目中的至少一个失效条目的信息存储在所述保留区域中;以及
响应于所述处理器内核开始从所述断电状态退出,使用表示所述条目的所述所存储的信息和指示所述至少一个失效条目的所述所存储的信息来恢复所述第一高速缓存的所述条目。
2.如权利要求1所述的方法,其中所述保留区域包括以下各项中的至少一者:包含所述第一高速缓存的第二高速缓存、存储高速缓存在所述第一高速缓存中的信息的外部存储器,以及在所述处理器内核处于所述断电状态时接收所述保留电压的所述第一高速缓存的一部分。
3.如权利要求1所述的方法,其中所述第一高速缓存是为所述处理器内核对虚拟到物理地址转换进行高速缓存的转换后备缓冲器(TLB)。
4.如权利要求3所述的方法,其中存储表示所述TLB的所述条目的所述信息包括将所述条目存储在所述保留区域中,并且其中恢复所述TLB的所述条目包括向所述TLB提供所述所存储的条目。
5.如权利要求3所述的方法,其中:
存储表示所述TLB的所述条目的所述信息包括将所述TLB中的所述条目的虚拟地址存储在所述保留区域中;并且
恢复所述TLB的所述条目包括预取所述虚拟地址以开始页表遍历,所述页表遍历填充所述TLB中的所述条目。
6.如权利要求3所述的方法,其中存储指示所述至少一个失效条目的所述信息包括响应于在所述处理器内核处于所述断电状态时接收到使所述至少一个失效条目失效的信号而将所述信息存储在队列中。
7.如权利要求6所述的方法,所述方法还包括:
响应于所述队列溢出失效请求而使所述TLB失效。
8.如权利要求1所述的方法,其中所述第一高速缓存是高速缓存层次结构中的较低层级高速缓存,所述高速缓存层次结构包含第二高速缓存,所述第二高速缓存包含所述第一高速缓存。
9.如权利要求8所述的方法,其中存储代表所述第一高速缓存中的所述条目的所述信息包括以下至少一者:冲洗所述第一高速缓存以将所述条目的修改后的值写入到所述第二高速缓存或外部存储器,以及刷新所述第一高速缓存以将所述条目的所有值写入到所述第二高速缓存或所述外部存储器。
10.如权利要求9所述的方法,其中:
存储代表所述第一高速缓存中的所述条目的所述信息包括将所述条目的物理地址存储在所述第二高速缓存或所述外部存储器中的与所述条目相关联的阴影标签中;并且
存储指示所述至少一个失效条目的所述信息包括将所述信息存储在所述阴影标签中。
11.如权利要求10所述的方法,其中恢复所述第一高速缓存中的所述条目包括基于所述阴影标签中的所述条目的所述物理地址和指示所述至少一个失效条目的所述信息来预取所述第一高速缓存中的有效条目。
12.一种设备,所述设备包括:
处理器内核,所述处理器内核被配置为从第一高速缓存存取信息;以及
保留区域,所述保留区域在所述处理器内核处于断电状态时接收保留电压,其中响应于所述处理器内核进入所述断电状态,将表示所述第一高速缓存的条目的信息存储在所述保留区域中,其中所述保留区域存储指示所述第一高速缓存的所述条目中的至少一个失效条目的信息;并且
其中响应于所述处理器内核开始从所述断电状态退出,使用表示所述条目的所述所存储的信息和指示所述至少一个失效条目的所述所存储的信息来恢复所述第一高速缓存的条目。
13.如权利要求12所述的设备,其中所述保留区域包括以下各项中的至少一者:包含所述第一高速缓存的第二高速缓存、存储高速缓存在所述第一高速缓存中的信息的外部存储器,以及在所述处理器内核处于所述断电状态时接收所述保留电压的所述第一高速缓存的一部分。
14.如权利要求12所述的设备,其中所述第一高速缓存是为所述处理器内核对虚拟到物理地址转换进行高速缓存的转换后备缓冲器(TLB)。
15.如权利要求14所述的设备,所述设备还包括:
队列,所述队列被配置为响应于在所述处理器内核处于所述断电状态时接收到使所述至少一个失效条目失效的信号而存储指示所述至少一个失效条目的所述信息。
16.如权利要求12所述的设备,其中所述第一高速缓存是高速缓存层次结构中的较低层级高速缓存,所述高速缓存层次结构包含第二高速缓存,所述第二高速缓存包含所述第一高速缓存。
17.一种方法,所述方法包括:
响应于处理器内核开始进入断电状态而将代表高速缓存的条目的信息存储在处理系统的保留区域中,其中所述保留区域在所述处理器内核处于所述断电状态的同时接收保留电压;以及
基于所述所存储的信息来选择性地恢复所述高速缓存中的在所述处理器内核处于所述断电状态时未失效的条目。
18.如权利要求17所述的方法,其中选择性地恢复所述条目包括响应于在所述处理器内核处于所述断电状态时接收到使条目失效的信号而存储指示所述失效条目的信息以及基于有效条目来恢复所述高速缓存。
19.如权利要求18所述的方法,其中基于所述有效条目来恢复所述高速缓存包括用存储在所述保留区域中的所述条目来重新填充所述高速缓存以及随后使所述高速缓存中的所述失效条目失效。
20.如权利要求17所述的方法,其中选择性地恢复所述高速缓存包括响应于失效条目的数量超过预定数量而使所述高速缓存失效。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/800,727 US10956332B2 (en) | 2017-11-01 | 2017-11-01 | Retaining cache entries of a processor core during a powered-down state |
US15/800,727 | 2017-11-01 | ||
PCT/US2018/051157 WO2019089142A1 (en) | 2017-11-01 | 2018-09-14 | Retaining cache entries of a processor core during a powered-down state |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111344685A true CN111344685A (zh) | 2020-06-26 |
Family
ID=66243954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880071347.1A Pending CN111344685A (zh) | 2017-11-01 | 2018-09-14 | 在断电状态期间保留处理器内核的高速缓存条目 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10956332B2 (zh) |
EP (1) | EP3704590A4 (zh) |
JP (1) | JP7214727B2 (zh) |
KR (1) | KR20200066731A (zh) |
CN (1) | CN111344685A (zh) |
WO (1) | WO2019089142A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10802967B1 (en) * | 2019-06-28 | 2020-10-13 | Intel Corporation | Partial write management in a multi-tiled compute engine |
US11586551B2 (en) * | 2020-08-31 | 2023-02-21 | Apple Inc. | Storage array invalidation maintenance |
US20220414016A1 (en) * | 2021-06-23 | 2022-12-29 | Advanced Micro Devices, Inc. | Concurrent processing of memory mapping invalidation requests |
CN114356588B (zh) * | 2022-03-18 | 2022-06-17 | 苏州云途半导体有限公司 | 一种数据预加载方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6018763A (en) * | 1997-05-28 | 2000-01-25 | 3Com Corporation | High performance shared memory for a bridge router supporting cache coherency |
US20120054549A1 (en) * | 2010-08-24 | 2012-03-01 | Kwan Bill K | Method and apparatus for saving and restoring soft repair data |
US8738860B1 (en) * | 2010-10-25 | 2014-05-27 | Tilera Corporation | Computing in parallel processing environments |
US20140195737A1 (en) * | 2013-01-04 | 2014-07-10 | Apple Inc. | Flush Engine |
US20150081980A1 (en) * | 2013-09-17 | 2015-03-19 | Advanced Micro Devices, Inc. | Method and apparatus for storing a processor architectural state in cache memory |
US20170031412A1 (en) * | 2015-07-29 | 2017-02-02 | Intel Corporation | Masking a power state of a core of a processor |
CN107250997A (zh) * | 2015-02-20 | 2017-10-13 | 高通股份有限公司 | 选择性翻译后援寄存器搜寻及页面错误 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6490671B1 (en) * | 1999-05-28 | 2002-12-03 | Oracle Corporation | System for efficiently maintaining translation lockaside buffer consistency in a multi-threaded, multi-processor virtual memory system |
US7546418B2 (en) * | 2003-08-20 | 2009-06-09 | Dell Products L.P. | System and method for managing power consumption and data integrity in a computer system |
US20050160229A1 (en) * | 2004-01-16 | 2005-07-21 | International Business Machines Corporation | Method and apparatus for preloading translation buffers |
US8527709B2 (en) | 2007-07-20 | 2013-09-03 | Intel Corporation | Technique for preserving cached information during a low power mode |
US8412911B2 (en) * | 2009-06-29 | 2013-04-02 | Oracle America, Inc. | System and method to invalidate obsolete address translations |
US9081501B2 (en) * | 2010-01-08 | 2015-07-14 | International Business Machines Corporation | Multi-petascale highly efficient parallel supercomputer |
JP2011150653A (ja) | 2010-01-25 | 2011-08-04 | Renesas Electronics Corp | マルチプロセッサシステム |
US20130254457A1 (en) * | 2012-03-21 | 2013-09-26 | Lsi Corporation | Methods and structure for rapid offloading of cached data in a volatile cache memory of a storage controller to a nonvolatile memory |
KR101979392B1 (ko) * | 2012-05-17 | 2019-05-16 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
US20140095801A1 (en) * | 2012-09-28 | 2014-04-03 | Devadatta V. Bodas | System and method for retaining coherent cache contents during deep power-down operations |
US9367247B2 (en) * | 2013-08-20 | 2016-06-14 | Seagate Technology Llc | Memory access requests in hybrid memory system |
US9904623B2 (en) * | 2015-05-01 | 2018-02-27 | Advanced Micro Devices, Inc. | Early cache prefetching in preparation for exit from idle mode |
US9880770B2 (en) * | 2015-09-02 | 2018-01-30 | SK Hynix Inc. | Supporting invalidation commands for non-volatile memory |
US11289133B2 (en) | 2015-09-16 | 2022-03-29 | Arm Limited | Power state based data retention |
US20170161194A1 (en) * | 2015-12-02 | 2017-06-08 | Advanced Micro Devices, Inc. | Page-based prefetching triggered by tlb activity |
US9817760B2 (en) * | 2016-03-07 | 2017-11-14 | Qualcomm Incorporated | Self-healing coarse-grained snoop filter |
US10678702B2 (en) * | 2016-05-27 | 2020-06-09 | Advanced Micro Devices, Inc. | Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations |
-
2017
- 2017-11-01 US US15/800,727 patent/US10956332B2/en active Active
-
2018
- 2018-09-14 EP EP18874462.7A patent/EP3704590A4/en active Pending
- 2018-09-14 KR KR1020207014907A patent/KR20200066731A/ko not_active Application Discontinuation
- 2018-09-14 JP JP2020524293A patent/JP7214727B2/ja active Active
- 2018-09-14 CN CN201880071347.1A patent/CN111344685A/zh active Pending
- 2018-09-14 WO PCT/US2018/051157 patent/WO2019089142A1/en unknown
-
2020
- 2020-11-06 US US17/091,993 patent/US11704248B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6018763A (en) * | 1997-05-28 | 2000-01-25 | 3Com Corporation | High performance shared memory for a bridge router supporting cache coherency |
US20120054549A1 (en) * | 2010-08-24 | 2012-03-01 | Kwan Bill K | Method and apparatus for saving and restoring soft repair data |
US8738860B1 (en) * | 2010-10-25 | 2014-05-27 | Tilera Corporation | Computing in parallel processing environments |
US20140195737A1 (en) * | 2013-01-04 | 2014-07-10 | Apple Inc. | Flush Engine |
US20150081980A1 (en) * | 2013-09-17 | 2015-03-19 | Advanced Micro Devices, Inc. | Method and apparatus for storing a processor architectural state in cache memory |
CN107250997A (zh) * | 2015-02-20 | 2017-10-13 | 高通股份有限公司 | 选择性翻译后援寄存器搜寻及页面错误 |
US20170031412A1 (en) * | 2015-07-29 | 2017-02-02 | Intel Corporation | Masking a power state of a core of a processor |
Also Published As
Publication number | Publication date |
---|---|
US10956332B2 (en) | 2021-03-23 |
US20210056031A1 (en) | 2021-02-25 |
KR20200066731A (ko) | 2020-06-10 |
JP2021501423A (ja) | 2021-01-14 |
JP7214727B2 (ja) | 2023-01-30 |
US20190129853A1 (en) | 2019-05-02 |
EP3704590A4 (en) | 2021-08-04 |
US11704248B2 (en) | 2023-07-18 |
EP3704590A1 (en) | 2020-09-09 |
WO2019089142A1 (en) | 2019-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11704248B2 (en) | Retaining cache entries of a processor core during a powered-down state | |
CN101593160B (zh) | 减少来自侦听过滤器的后无效事务 | |
US9262322B2 (en) | Method and apparatus for storing a processor architectural state in cache memory | |
CN109716307B (zh) | 用于延迟的高速缓存利用的系统和方法 | |
CN111263934B (zh) | 至少具有三个缓存级别的缓存层级的混合低级缓存包含策略 | |
US10120806B2 (en) | Multi-level system memory with near memory scrubbing based on predicted far memory idle time | |
CN107592927B (zh) | 管理扇区高速缓存 | |
US11526449B2 (en) | Limited propagation of unnecessary memory updates | |
US11288205B2 (en) | Access log and address translation log for a processor | |
EP3688597B1 (en) | Preemptive cache writeback with transaction support | |
CN115087961B (zh) | 用于相干及非相干存储器请求的仲裁方案 | |
EP3724774B1 (en) | Rinsing cache lines from a common memory page to memory | |
US11847062B2 (en) | Re-fetching data for L3 cache data evictions into a last-level 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 |