CN108496160A - 用于增强系统性能的自适应值范围剖析 - Google Patents
用于增强系统性能的自适应值范围剖析 Download PDFInfo
- Publication number
- CN108496160A CN108496160A CN201780008128.4A CN201780008128A CN108496160A CN 108496160 A CN108496160 A CN 108496160A CN 201780008128 A CN201780008128 A CN 201780008128A CN 108496160 A CN108496160 A CN 108496160A
- Authority
- CN
- China
- Prior art keywords
- range
- group
- memory
- address
- memory address
- 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
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/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- 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
-
- 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/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- 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
-
- 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/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
- 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/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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
-
- 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/1024—Latency reduction
-
- 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/1041—Resource optimization
-
- 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/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- 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/651—Multi-level translation tables
-
- 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/70—Details relating to dynamic memory management
-
- 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/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
对事件流中的值的范围进行增强自适应剖析包括识别所述值的一组连续范围以及所述事件流中的对应的访问频率。所述增强自适应剖析使用合并阈值和分裂阈值。所述一组连续范围跨越所述值的整个范围空间。对所述一组连续值范围以及对应的访问频率进行周期性遍历识别具有高于预定阈值访问频率的对应的访问频率的所述值的一组目标范围。所述一组目标值范围具有小于或等于预定范围数量的总范围数量。所述目标值范围跨越整个值范围空间的至少一些。第一操作使用一组目标值范围。
Description
技术领域
本发明涉及计算系统,并且更具体地涉及使用值范围分类的计算系统。
背景技术
常规值范围分类系统计数对事件流中的值的访问,并且动态地确定对值范围的访问频率。然而,此类系统使用的范围的数量可能需要大量的高带宽存储位置,这可能使得在实际系统中实施起来异常昂贵。因此,需要用于利用值范围分类系统的经改善的技术。
发明内容
在本发明的至少一个实施方案中,一种方法包括在处理系统中自适应剖析(profiling)存储器请求流中的存储器地址的范围,以识别存储器地址的一组连续范围以及存储器请求流中的对应的访问频率。自适应剖析是基于合并阈值和分裂阈值。所述一组连续范围跨越存储器地址的整个范围空间。合并阈值指示所述一组连续的存储器地址范围中的每个存储器地址范围的最小访问频率。分裂阈值指示所述一组连续的存储器地址范围中的每个存储器地址范围的最大访问频率。
所述方法包括周期性地遍历一组连续的存储器地址范围和对应的访问频率,以识别具有高于预定阈值访问频率的对应的访问频率的存储器地址的一组目标范围。一组目标存储器地址范围具有小于或等于预定范围数量的总范围数量。存储器地址的目标范围跨越整个存储器地址范围空间的至少一些。所述方法包括使用所述一组目标存储器地址范围中的存储器地址范围来执行第一操作。一组目标存储器地址范围可跨越小于整个存储器地址范围空间。所述一组目标存储器地址范围可包括存储器地址的不连续的范围。存储器地址可为虚拟存储器地址,并且第一操作可包括基于基准地址值和极限值来确定存储器地址的一组目标范围到一组物理地址范围的虚拟至物理存储器地址转译。第一操作还可包括将一组物理地址范围作为对应的基准地址值和极限值对存储在一组基准-极限寄存器中。预定范围数量可对应于一组基准-极限寄存器中的基准-极限寄存器的总数。
存储器地址可为虚拟存储器地址,并且第一操作可包括将存储器地址的一组目标范围中的连续范围转换成用于大存储器页的地址范围。第一操作可包括将与目标存储器地址范围相关联的主存储器的内容分配到多级存储器系统中的高带宽存储器。执行第一操作可包括识别由多个请求者对存储器地址的多个存储器请求,并响应于所述多个请求而执行相干操作。执行相干操作可包括使对应于所述存储器地址的高速缓存线无效。
在本发明的至少一个实施方案中,一种设备包括自适应范围剖析器,其被配置为在处理系统中自适应剖析存储器请求流中的存储器地址范围,以识别存储器地址的一组连续范围和存储器请求流中的对应的访问频率。自适应剖析是基于合并阈值和分裂阈值。一组连续范围跨越存储器地址的整个范围空间。合并阈值指示所述一组连续的存储器地址范围中的每个存储器地址范围的最小访问频率。分裂阈值指示所述一组连续的存储器地址范围中的每个存储器地址范围的最大访问频率。所述设备包括范围联合和剔除逻辑,其被配置为周期性地遍历一组连续的存储器地址范围和对应的访问频率,以识别具有高于预定阈值访问频率的对应的访问频率的存储器地址的一组目标范围。一组目标存储器地址范围具有小于或等于预定范围数量的总范围数量,并且目标存储器地址范围跨越整个存储器地址范围空间的至少一些。所述设备包括逻辑,其被配置为使用所述一组目标存储器地址范围中的存储器地址范围来执行第一操作。所述一组目标存储器地址范围可跨越小于整个存储器地址范围空间,并且所述一组目标存储器地址范围可包括存储器地址的不连续范围。
所述逻辑可包括虚拟至物理地址转译器,其被配置为执行第一操作,所述第一操作包括将一组目标范围转译成具有基准存储器地址和极限值的一组物理地址。所述逻辑还可包括一组基准-极限寄存器,其被配置为存储一组物理地址范围。预定范围数量可对应于一组基准-极限寄存器中的基准-极限寄存器的总数。所述设备可包括页表,其包括对一组基准-极限寄存器的存储器映射冗余的存储器映射。所述逻辑可包括虚拟至物理地址转译器,其被配置为执行第一操作,所述第一操作包括将一组目标范围的连续范围转译成用于大存储器页的地址。所述设备可包括高带宽存储器。第一操作可包括将与目标存储器地址范围相关联的主存储器的内容分配到高带宽存储器。所述逻辑可被配置为识别由多个请求者对存储器地址的多个存储器请求,并响应于所述多个请求而执行相干操作。
在本发明的至少一个实施方案中,一种方法包括在处理系统中自适应剖析事件流中的数据值的范围,以识别数据值的一组连续范围以及事件流中的对应的访问频率。自适应剖析是基于合并阈值和分裂阈值。一组连续范围跨越数据值的整个范围空间。合并阈值指示所述一组连续的数据值范围中的每个数据值范围的最小访问频率。分裂阈值指示所述一组连续的数据值范围中的每个数据值范围的最大访问频率。所述方法包括周期性地遍历一组连续的数据值范围和对应的访问频率,以识别具有高于预定阈值访问频率的对应的访问频率的数据值的一组目标范围。一组目标数据值范围具有小于或等于预定范围数量的总范围数量,并且目标数据值范围跨越整个数据值范围空间的至少一些。所述方法包括使用所述一组目标数据值范围中的数据值范围来执行第一操作。所述一组目标数据值范围可跨越小于整个数据值范围空间,并且所述一组目标数据值范围可包括数据值的不连续范围。事件流可为存储器请求流,并且数据值可为存储器地址。事件流可为控制流指令流,数据值可为目标程序地址,并且执行第一操作可包括预测对应的控制流指令的目标。事件流可为数据计算指令流,数据值可为数据运算元,并且执行第一操作可包括基于一个或多个数据运算元预测数据计算的输出的值。
附图说明
通过参考附图,本发明可以被更好地理解,并且其许多目的、特征和优点对于本领域技术人员来说变得明显。
图1示出了根据本发明的至少一个实施方案的示例性值范围剖析器的功能块图。
图2示出了示例性值范围剖析逻辑的功能块图。
图3示出了值范围剖析器的示例性状态的状态图。
图4示出了在分裂操作之后的值范围剖析器的示例性状态的状态图。
图5示出了在合并操作之前的值范围剖析器的示例性状态的状态图。
图6示出了根据本发明的至少一个实施方案的使用增强值范围剖析的示例性系统的功能块图。
图7示出了根据本发明的至少一个实施方案的使用增强值范围剖析的系统的信息和控制流。
图8示出了示例性处理系统的功能块图。
图9示出了根据本发明的至少一个实施方案的使用增强值范围剖析的示例性系统的一部分的功能块图。
图10示出了虚拟地址到由基准和极限表示的物理地址的示例性范围转译。
图11示出了示例性冗余存储器映射系统的功能块图。
在不同的图中使用相同的参考符号来指示相似或相同的项目。
具体实施方式
参考图1,示例性值范围剖析器308包括范围剖析逻辑328,其产生跨越整个可能值范围的经排位的值范围列表(例如,基于存储器地址宽度、运算元宽度或程序计数器宽度)。范围剖析逻辑328将值范围和对应的访问频率存储在经排位的列表存储装置330中。在至少一个实施方案中,值范围剖析器308实施流单程技术,以根据值在事件流中发生的频率将所述值按层级分类为多个范围。值范围剖析器308将更频繁访问的值范围分类为更准确的子范围。随着值范围剖析器308分析更多的事件,其可将子范围分裂成更进一步的子范围,或由于稀疏访问的值范围而将子范围合并在一起以形成更大的值范围。值范围剖析器308利用相对较小的有限量的存储器存储从整个事件流单程收集的信息。值范围剖析器308可产生经排位的列表作为剖析范围树,所述剖析范围树作为数据阵列存储在包括每个值范围和相关联的计数器的存储器中。值范围剖析器308包括增强功能,其通过使值范围的精确度适应于高访问频率范围值和如下文进一步描述的固定存储大小来改善常规自适应范围剖析技术的性能。
图2示出了用于范围剖析逻辑328的流水线式实施的示例性架构。缓冲器406接收事件流(例如存储器请求、算法指令或程序控制指令)并且存储频率404,即相关联值402从其先前由范围剖析逻辑328观察以来被观察的次数。缓冲器406将这些事件输入流水线。在至少一个实施方案中,缓冲器406预处理事件,并将具有相同值的事件进行组合。范围匹配器410识别匹配特定接收事件中的值的值范围。仲裁器414识别包括所述值的最小范围,从而致使计数器418更新用于一个或多个对应的值范围的一个或多个计数器。对剖析数据结构(例如,树)的每次更新与上一次更新无关,除了实际计数器递增之外。
缓冲器406存储传入事件,直到所述事件被处理为止。响应于范围合并指示符(例如,周期性地,但在以指数方式减小的频率下),控制器426在从计数器搜索潜在合并范围时使流水线停止。范围分裂和范围合并形成在处理更多事件之前必须满足的事件间相依性。然而,范围分裂和范围合并发生得显著少于事件的数量,因此停止发生得相对较少并且停止对性能的影响微不足道。控制器426可分裂值范围或合并值范围,这导致范围剖析逻辑328的流水线中的停止,例如,控制器426防止流水线寄存器408、412、416和420进行更新。在这个时间期间,各事件可在缓冲器406中排队等候以供稍后处理。在范围分裂的情况下,控制器426启动流水线刷新(pipeline flush)并且将范围剖析逻辑328重设为紧接在应该已经发生了范围分裂的状态之前的状态。
对于从缓冲器406处理的每个事件,控制器426搜索包括所述事件的对应值的一组值范围。可使用三元内容可寻址存储器单元410来执行此操作。三元内容可寻址存储器单元410针对与值匹配的所有值范围将合适的匹配线设定为高。在至少一个实施方案中,每个单元均包括对应于一个值范围的值的最高有效位。所述单元中存储的位越少,对应的值范围越大。同样,所述单元中存储的位的数量越大,对应值范围越小。通过按前置码长度来归类三元内容可寻址存储器单元410的条目,控制器426可确定具有最长前置码的最小范围。注意,一个值将匹配三元内容可寻址存储单元410的具有相同范围宽度的两个不同条目。在至少一个实施方案中,三元内容可寻址存储器单元410进一步被设定流水线以观察用于每一比较的个别半字节或个别字节。
在范围剖析逻辑328使事件的值与一个或多个值范围匹配之后,范围剖析逻辑328识别匹配的值范围的最长前置码,其可对应于三元内容可寻址存储单元410的最后一个匹配条目。如果三元内容可寻址存储器单元410按顺序存储N条匹配线并且按前置码长度归类,则N×1仲裁器414将最高优先权给予最长匹配并且仅允许一个匹配的值范围继续进行。最高优先级线的输出触发对应计数器的字线。注意,虽然范围剖析逻辑328的实施方案使用三元内容可寻址存储器单元410和分支因数b,但是范围剖析逻辑328可为多位树并且可使用其他技术来创建基于其他网络算法的高速实施。
在识别最小范围匹配(即,最精确的值范围)之后,范围剖析逻辑328更新计数器418中的适当的计数器。在至少一个实施方案中,计数器418包括一个读取端口和一个写入端口,所述两个端口足以处理对阵列的连续的事件流。分裂处理阶段使用比较器424将经更新的计数器的结果与预定范围分裂阈值进行比较。如果计数器超过范围分裂阈值,则控制器426使节点展开具有多个子部分(例如,四个子部分,其中分支因数b=4),并且使所述子部分中的每一者的计数器初始化为具有零计数。单独的存储元件可存储范围分裂阈值和范围合并阈值,但其可具有相同的值并可仅使用一个存储元件。每当事件数量n变化时,可基于一个或多个对应的预定值来重新计算阈值。范围剖析逻辑328可与其他操作并行地执行计算,因为其仅取决于事件数量n和一些预定值。如果控制器426导致值范围分裂,则范围剖析逻辑328可刷新流水线以适当地虑及到新节点。
在至少一个实施方案中,范围剖析逻辑328以跨越整个值范围的范围树中的根节点开始。当相关联的系统流传输更多事件时,值范围剖析技术通过将与特定树节点相关联的计数器值与预定的分裂阈值进行比较来确定树节点是否应分裂成子节点。可根据最大值范围、树的高度、处理的事件数量和/或用户定义的错误阈值ε来选择预定的分裂阈值。如果计数器值超过预定的范围分裂阈值,则自适应范围剖析技术将树节点分裂成多个子节点。自适应范围剖析技术基于预定的分支因数来确定由分裂所致的子节点的数量。预定分支因数越高,所得剖析越精确。然而,增加子节点的数量具有需要额外存储器开销的缺点。
在范围剖析逻辑328的至少一个实施方案中,值范围分裂需要在三元内容可寻址存储器单元410中形成新条目和用于树数据结构的存储器数据阵列。控制器426产生新的子节点,并适当地将对应的识别符插入到具有范围集的三元内容可寻址存储器单元410中,每一个跨越父范围的一部分。控制器426将对应的条目插入到存储树结构的新形成节点的计数器和其他信息的存储器中。分裂节点可为叶节点或父节点。如果节点是叶节点,则分裂操作包括将来自父的指针设定到新形成的子。如果节点已经是父节点,但其子不包括父的整个范围(例如在内部范围合并之后),则分裂还包括识别现有子的新父的额外操作,以及设定子指针。
控制器426可单独地或分批地处理范围合并操作。控制器426可周期性地起始分批范围合并。在每一批范围合并中,控制器426自下而上扫描三元内容可寻址存储器单元410以识别用于范围合并器的候选节点。然后,控制器426删除存储器中的对应的数据阵列条目。递归操作修剪范围剖析数据结构以提供紧凑的剖析信息。尽管所需的存储器大小可通过实验来确定,但其可在一些应用中是有界限的。分裂阈值可被设定,使得一旦节点计数出事件数量多于总事件的一定比例,则节点分裂成多个子范围。类似地,范围合并不会合并具有足够高的访问频率的范围,以判定精确剖析。因此,自适应范围剖析技术确保可对最小范围进行剖析。
参考图3、图4和图5,标识为F1的值范围具有最低F1的访问频率并且表示高访问频率范围。标识为F2的值范围具有最高F2的访问频率并且表示低访问频率范围。图3示出了具有根节点502的子节点504和506的示例性自适应范围剖析树。当观察事件流时,范围剖析逻辑执行值范围分裂操作,其将节点504的高访问频率范围分裂成子节点508和510,如图4所示。当范围剖析逻辑分裂值范围时,范围剖析逻辑还分裂剖析树的值范围。这些新的分支保持用于这些高访问频率范围的一组更准确的计数器。
值范围剖析技术还响应于高访问频率范围变为低访问频率范围而合并节点以限制值范围剖析树中的节点数量。值范围剖析技术将这些节点合并到其父节点中,从而减少了对用于这些较不重要范围的精确计数器的需要。图5示出了由于对应的值范围已变为低访问频率范围而将子节点508和子节点510合并到节点504中的示例性合并操作534。所得的节点计数器具有等于节点508和510的计数器值的总和的计数。使用自适应范围剖析技术的示例性事件剖析器可包括任何适当数量的计数器,例如,256个计数器。自适应范围剖析树大小与工作负荷占用空间(footprint)大小、事件值模式和错误阈值相关。自适应范围剖析技术有效地和高效地使用计数器,这使用存储器位置来实施。
通过上文所述的值范围剖析技术产生的经排位的列表跨越整个值空间,可包括对目标应用不可用的值范围,并且可包括过多的值范围以供在目标应用中处理。因此,增强值范围剖析技术周期性地剔除和联合经排位列表的经剖析的值范围,以产生用于目标应用的一组目标值范围。例如,一组目标值范围可仅包括具有大于预定阈值的访问频率的值范围供在第一操作中使用。目标应用可将默认操作应用于不包括在一组目标值范围中的那些值范围。另一组目标值范围可仅包括具有小于预定阈值的访问频率的值范围供在第二操作中使用。该增强值范围剖析技术可改善资源在目标应用中的利用率,如集中在具有高访问频率的值范围上或以其他方式集中的值范围上。
参考图6和图7,在增强值范围剖析技术900的至少一个实施方案中,事件产生器902产生包括特定类型的值(例如,存储器地址、数据运算元或程序计数器值)的事件流,其可存储在流水线缓冲器904中供值处理器906使用。自适应范围剖析器910观察事件流中的值,并产生经排位的列表912,其包括值范围和对应的访问频率的经排位的列表,所述列表跨越值的整个值空间(例如,基于整个存储器地址宽度、数据运算元宽度或程序计数器宽度的范围空间)。经排位的列表912包括N个值范围,其中N是预定的整数。
范围联合和剔除逻辑(RCC)914基于存储在寄存器915中的至少一个访问频率阈值和目标范围集大小M来周期性地选择用于包括在一组目标值范围916中的值范围,其中M是预定的整数,M≤N。范围联合和剔除逻辑914处理经排位的列表912并且产生一组目标值范围916(图7中的步骤804)。范围联合和剔除逻辑914基于对应的合并和分裂阈值(例如,存储在寄存器915)来合并和/或消除值范围以产生一组目标值范围916,其具有可小于经排位的列表912的预定大小,但可存储比经排位的列表912更精确的范围(图7中的步骤806)。
值处理器906使用一组目标值范围916来执行例如由值处理器906实施的目标操作(图7中的步骤808)。同时,自适应范围剖析器910继续根据事件流更新经排位列表912。如果预定时段已过期(图7中的步骤812),则值处理器906继续处理一组目标值范围916中的值范围(图7中的步骤808),并且自适应范围剖析器910更新排位的列表912,而无需更新一组目标值范围916。响应于预定时段的到期(图7中的步骤812),范围联合和剔除逻辑914通过基于存储在寄存器915中的预定访问频率阈值、合并阈值、分裂阈值和/或目标范围数量分裂、合并和/或消除经排位列表912的更新版本中的值范围来更新一组目标值范围916,以产生一组目标值范围916(图7中的步骤806)。预定的分裂阈值指示经排位列表912的每个范围的最大访问频率。如果地址范围的访问频率大于分裂阈值,则范围联合和剔除逻辑914可将所述范围分裂成多个范围。合并阈值指示经排位列表912的每个范围的最小访问频率。如果相关联的地址范围的访问频率小于合并阈值,则范围联合和剔除逻辑914可合并这些范围,从而减少对用于较不重要范围的精确计数器的需要。范围联合和剔除逻辑914可根据目标应用中的不同的目标来配置。例如,范围联合和剔除逻辑914可利用访问频率阈值、合并阈值、分裂阈值和/或目标范围数量的预定值来配置,以使区域大小最大化,减少区域的总数,或使被估计为在范围子集以外(例如,在冗余映射应用中)的值的数量最小化。
参考图6和图8,在至少一个实施方案中,增强剖析技术的事件是对由处理系统100的多级高速缓存系统过滤的主存储器110的存储器请求。处理系统100包括多个处理节点(例如,节点0、节点1、节点2和节点3)以及多级存储器系统。节点中的每一个均可访问其自己的存储器或另一节点中的存储器。探测过滤器109或其他相干机构可提供处理器间通信,以在多于一个高速缓存含有相干域103的主存储器(例如,处理器102的核心0、核心1、核心2和核心3的二级高速缓存)的同一位置的内容时维持存储器图像的相干性。图6的事件产生器902是图8的最后一级高速缓存106。最后一级高速缓存106向存储器控制器108提供存储器访问流。增强值范围剖析器908包括在存储器控制器108中,所述存储器控制器耦接在最后一级高速缓存106与主存储器110之间。
参考图6、图8和图9,在示例性实施方案中,缓冲器904、值处理器906和增强值范围剖析器908包括在处理系统100的存储器控制器108中。增强值范围剖析器908从最后一级高速缓存106接收存储器请求,作为包括存储器地址(作为值)的事件。值处理器906包括将虚拟存储器地址映射到物理存储器地址的电路。
虚拟存储器的基于页的实施将主存储器110划分为固定大小的页。常规存储器控制器可以使用页表将虚拟页映射到固定大小的物理页,并且使用内容可寻址存储器或转译后备缓冲器来使地址查找加速。一般而言,转译后备缓冲器是用于加快存储器转译的高速缓存。转译后备缓冲器存储虚拟存储器地址到物理存储器地址的最近转译以用于更快的检索。响应于虚拟地址,转译后备缓冲器产生物理地址。转译后备缓冲器可具有多级结构,并且可存储对不同大小的页(例如,4KB(212个字节)的标准页或大页(例如,2MB(221个字节)的页或大幅地大于标准页大小并且还可被称为“巨大页”或“超级页”的其他页大小)的转译。在至少一个实施方案中,一组目标值范围916和值处理器906用于除转译后备缓冲器以外或替代转译后备缓冲器的范围转译后备缓冲器中用于基于页的存储器系统。
范围转译后备缓冲器是拥有多个范围转译的硬件高速缓存。每个条目将一定范围的连续虚拟页映射到连续物理页。每个范围可以具有不同的大小。范围转译后备缓冲器可为完全相关联,并且每个条目均包括虚拟范围和范围地址转译。虚拟范围可被存储为虚拟地址范围映射的基准和极限。转译可存储偏移量,其保持物理存储器中的范围的起点减去基准。然而,范围转译后备缓冲器的有限到达可增加地址转译的延时,这可能不利于存储器访问延时。
一种用于减少存储器访问延时的技术包括地址转译器922将存储在一组目标值范围916中的虚拟地址范围转译成存储在基准-极限寄存器920中的物理存储器地址范围。例如,地址转译器922将连续虚拟页的地址范围映射到连续物理页的地址范围。范围转译可被基准页对准,并且可通过基准-极限寄存器920的基准和极限字段来识别。参考图11,在至少一个实施方案中,地址转译器922将虚拟地址空间1102的虚拟范围地址转译成物理地址空间1104的物理范围地址。转译可包括将偏移量添加到对应范围的虚拟基准地址,以及通过相关联的极限字段中的值来限制物理地址的范围。
返回参考图9,由于示例性存储器系统包括具有预定数量的元件的基准-极限寄存器920,因此增强值范围剖析器908将范围的数量从排位列表912(其包括跨越如由范围自适应剖析技术产生的整个虚拟地址空间的虚拟存储器地址范围和对应的访问频率)的大小N减少到目标范围数量M,其可存储在基准-极限寄存器920的M个元件中。通过仅存储以与大于基准-极限寄存器920中的特定阈值的频率访问的存储器地址范围,增强值范围剖析技术增加包括基准-极限寄存器920的命中率的范围精确度,并且减少虚拟至物理地址转译的延时,从而改善相关联的处理系统的性能。注意,M≤N和基准-极限寄存器920可包括可仅跨越虚拟存储器地址空间的部分的不连续的虚拟地址范围,例如,以高于预定阈值的实质频率访问的那些虚拟地址范围因此,增强值范围剖析技术可用于改善展示对虚拟存储器访问空间的访问连续性的存储器地址转译应用的性能,并且改善用于表示有限大小的存储空间中的那些连续虚拟存储器地址的范围的精确度。
增强值范围剖析技术可如上所述单独地使用,或在冗余的存储器映射系统中使用。例如,参考图9、图10和图11,增强值范围剖析技术通过使用存储在基准-极限寄存器920中的范围、虚拟至物理地址转译(如上所述)和冗余存储器映射系统1200的连续虚拟地址到连续物理地址的冗余页表映射,来改善冗余存储器映射技术的性能。
冗余的存储器映射是一种用于改善受固定转译后备缓冲器大小限制的分页系统的性能的技术。冗余的存储器映射技术利用范围转译和页两者来映射地址空间的各部分。冗余的存储器映射与最后一级页转译后备缓冲器并行地使用范围表和范围转译后备缓冲器。由于存储在范围表中的信息是对存储在页表中的信息冗余,因此系统可按需要来使用或恢复到分页(例如,响应于范围表中的错失)。冗余的存储器映射存储既物理连续又虚拟连续的页范围的转译信息,并且依赖于范围转译。每一范围转译使用基准、极限和偏移量值来将连续的虚拟地址范围映射到连续的物理页,以执行任意大小的范围的转译,如上所述。范围转译仅为基准页对准,并且对分页冗余,所述分页包括映射整个虚拟地址空间的页表。
图11示出了使用常规页表系统以及范围转译冗余地映射的两个示例性范围。冗余的存储器映射系统1200包括与页表1204并行访问的范围转译表1202。分页存储器管理方案由软件(例如,在处理系统100的一个或多个核心上执行的操作系统或管理程序)来管理,并且将来自二级存储装置(例如,磁盘)的数据存储在供图8的主存储器110中使用的相同大小的块(称为页)中并从其检索数据。返回参考图11,页表系统具有四级分层的表以用于使用多个级的存储器映射,例如、页表(L1)、页目录(L2)、页目录指针(L3)和页映射4级(L4),其是顶部表。然而,可使用具有不同数量的级的其他页表系统。页映射4级提供用于虚拟地址的页目录指针。页目录指针表(L3)使用页目录指针提供页目录表(L2)的地址。页目录表(L2)提供了对应的页表(L1)的地址。虚拟地址的最低有效位被用作页表中的偏移量以定位页表内的目标物理地址。可使用跨越相同的虚拟地址空间和物理地址空间的更少级的页表(例如,巨大页实施)。范围表1202由在相关联的处理系统的一个或多个核心上执行的软件来管理,并且存储对存储在页表系统1204中的信息冗余的信息,页表系统1204存储虚拟地址和物理地址之间的映射。
在至少一个实施方案中,值处理器906包括虚拟至物理地址转译器,其执行频繁访问的物理存储器范围的地址转译,并且使用一组有限的基准-极限寄存器来实施范围表1202。通过使用上文所述的增强值范围剖析技术产生频繁访问的地址范围的转译,可减少存储器访问时间。由于可用的基准-极限寄存器限于存储器系统的M个寄存器,因此一组目标存储器地址范围中的存储器地址范围的数量应不大于值处理器906中的基准-极限寄存器的数量。因此,虚拟存储器地址的最频繁访问的范围通过值处理器906转译为物理存储器地址,所述物理存储器地址被存储为基准地址和对应极限于基准-极限寄存器920中的每个中。响应于存储器访问,存储器控制器108可确定一组目标值范围916中是否存在虚拟地址,其为完全相关联的高速缓存存储器。如果存在所述地址,则存储器控制器108访问来自基准-极限寄存器920的对应的转译,而非执行转译,从而减少由于地址转译所致的存储器延时。如果虚拟地址不包括在一组目标值范围916中的范围中,则值处理器906使用常规页表或其他虚拟至物理地址转译技术来确定物理存储器地址。
返回参考图6、图8和图9,在至少一个实施方案中,增强值范围剖析技术的其他应用包括自适应追踪增强值范围剖析器908中的(例如,物理或虚拟)存储器地址范围,以识别一组目标值范围916中可转换为大页的连续转译的大范围。值处理器906通过值处理器906将大范围存储在基准-极限寄存器920中。那些大页允许多页映射以仅使用对应的转译后备缓冲器的一个条目,从而减少转译后备缓冲器的所需大小,且允许存储器的较大的固定大小的范围的映射。基准-极限寄存器920或其他存储元件可用于识别连续转译的那些大范围。增强值范围剖析技术可向系统软件(例如,操作系统、管理程序、内核或其他合适的软件)提供存储在经排位列表912或一组目标值范围916中的信息,以供在管理主存储器110的大页时使用。
在至少一个实施方案中,增强值范围剖析技术的其他应用,增强值范围剖析器908和值处理器906包括存储器控制器,其自适应地跟踪存储器地址范围(例如,物理或虚拟)用于分配在多级存储器系统中的快存储器(例如最后一级高速缓存)或慢存储器(例如主存储器或磁盘)中。范围跟踪机构的计数能力,连同用于识别大范围访问的特征一起,为系统提供足够的信息,以将多级存储器系统中的页的频繁访问的范围从主存储器分配到更快速存储器,例如高带宽存储器或N级存储器系统。示例性高带宽存储器包括存储器芯片的堆叠和使用插入机构将存储器芯片紧密连接到处理器的相关联的超快存储器接口。在所得系统中,高带宽存储器性能稍微不同于扩展可用系统存储量的芯片上集成式RAM的性能。
在处理系统100的至少一个实施方案中,最后一级高速缓存106、存储器控制器108或其他相干电路包括相干系统,其确保移动到最后一级高速缓存106或从其移动的数据不违反任何相干性规则。例如,探测过滤器109应用相干性规则,例如不违反对核心以及返回到核心的命中数据的探测之间,或对最后一级高速缓存和来自分配到最后一级高速缓存中的核心的受害者数据的探测之间的竞态条件。探测过滤器109在将探测传递到核心之前执行相对于最后一级高速缓存数据移动的探测的碰撞检测。因此,探测过滤器109可包括增强值范围剖析器908,其自适应地跟踪存储器地址的范围(例如,物理存储器地址范围或虚拟存储器地址范围),以加快相干操作。涵盖被占用的存储器区域的地址范围可存储在一组目标值范围916中,在监听机构中利用所述一组目标值范围来确定存储器相干动作是否有必要。可为完全相关联存储器的一组目标值范围916中的命中可指示由多个不同请求者对同一存储器地址范围的多个存储器请求。因此,值处理器906可包括控制逻辑来执行相干操作。虽然相干电路被描述为探测过滤器,但包括相干机构的处理系统的其他实施方案可在其他相干系统中包括增强值范围剖析器908和值处理器906。
返回参考图6,在增强剖析技术的至少一个实施方案中,事件产生器902为指令解码器,并且值处理器906为流水线式处理核心的程序计数器地址产生器。事件包括正由流水线式处理核心处理的控制流指令。例如,程序计数器地址产生器产生目标指令地址以用于推测性或非推测性指令执行、条件或非条件分支或跳跃指令执行,或其他的指令执行。值是将从正由核心处理的存储器提取的下面指令的地址。增强值范围剖析技术识别具有高频率访问的目标地址范围,并且执行单元(指令提取单元)可使分支预测和推测性指令决定基于具有存储在一组目标值范围916中(例如,大于预定数量)的高频率访问的那些目标地址范围,以加快处理器操作。
在至少一个实施方案中,事件产生器902为流水线式处理器核心的指令解码器,并且值处理器906为算法逻辑单元、浮点单元或流水线式处理器核心的其他合适的执行单元。事件为正由执行单元处理的算法或逻辑指令,并且值为正由核心的执行单元处理的对应的数据运算元。增强值范围剖析技术识别具有高频率访问的数据运算元的范围,并且执行单元可基于具有高频率访问的数据运算元的范围来预测结果,从而减少相关联的执行单元的计算时间并且提高相关联的处理系统的性能。增强值范围剖析技术可用于实现应用中的推测性执行和/或低功率操作,在所述应用中,降低精确度是可接受的,因为兼顾到的是,提高了执行速度和/或减少了功耗。
本文所述的结构可使用在处理器(其包括固件)上执行的软件或通过将软件和硬件进行组合来实施。如本文所述的软件可被编码在至少一个有形的计算机可读介质中。如本文所提到,有形的计算机可读介质至少包括磁盘、磁带或其他非暂时性磁性介质、光学介质或电子存储介质。
虽然在描述本发明的各实施方案时大体上推定了电路和物理结构,但众所周知,在现代半导体设计和制造中,物理结构和电路可以计算机可读的说明性形式来体现,所述形式适合在后续的设计、模拟、测试或制造阶段中使用。在示例性配置中作为离散部件呈现的结构和功能可实施为经组合的结构或部件。本发明的各种实施方案意在包括电路、电路系统、相关方法以及这类电路、系统和方法的在其上具有编码(例如,VHSIC硬件描述语言(VHDL)、Verilog、GDSII数据、电子设计交换格式(EDIF)和/或Gerber文件)的有形的计算机可读介质,全部如本文所述,并且如所附权利要求书中所限定。另外,计算机可读介质可存储指令,以及可用于实施本发明的数据。指令/数据可与硬件、软件、固件或其组合有关。
本文所述的对本发明的描述是说明性的,且并不意在限制如所附权利要求书所述的本发明的范围。例如,虽然已经在使用特定处理器和存储器架构的实施方案中描述了本发明,但所属领域技术人员应了解,本文中的教示可与使用不同高速缓存方案和相干协议的其他处理器和存储器系统架构一起使用。在不脱离如所附权利要求书所述的本发明的范围的情况下,可以基于本文所述的描述对本文所公开的实施方案进行改变和修改。
Claims (15)
1.一种方法,其包括:
在处理系统中自适应剖析存储器请求流中的存储器地址范围,以识别所述存储器地址的一组连续范围以及所述存储器请求流中的对应的访问频率,所述自适应剖析是基于合并阈值和分裂阈值,所述一组连续范围跨越所述存储器地址的整个范围空间,所述合并阈值指示所述一组连续的存储器地址范围中的每个存储器地址范围的最小访问频率,并且所述分裂阈值指示所述一组连续的存储器地址范围中的每个存储器地址范围的最大访问频率;
周期性地遍历所述一组连续的存储器地址范围和对应的访问频率,以识别具有高于预定阈值访问频率的对应的访问频率的所述存储器地址的一组目标范围,所述一组目标存储器地址范围具有小于或等于预定范围数量的总范围数量,并且所述目标存储器地址范围跨越所述整个存储器地址范围空间的至少一些;以及
使用所述一组目标存储器地址范围中的存储器地址范围来执行第一操作。
2.根据权利要求1所述的方法,其中所述一组目标存储器地址范围跨越小于所述整个存储器地址范围空间。
3.根据权利要求1或2所述的方法,其中所述一组目标存储器地址范围包括所述存储器地址的不连续的范围。
4.根据权利要求1或2所述的方法,其中所述存储器地址是虚拟存储器地址,并且所述第一操作包括:
基于基准地址值和极限值来确定所述存储器地址的所述一组目标范围到一组物理地址范围的虚拟至物理存储器地址转译;以及
将所述一组物理地址范围作为对应的基准地址值和极限值对存储在一组基准-极限寄存器中,所述预定范围数量对应于所述一组基准-极限寄存器中的基准-极限寄存器的总数。
5.根据权利要求1或2所述的方法,其中所述存储器地址是虚拟存储器地址,并且所述第一操作包括:
将所述存储器地址的所述一组目标范围中的连续范围转换成用于大存储器页的地址范围。
6.根据权利要求1或2所述的方法,其中所述第一操作包括将与所述目标存储器地址范围相关联的主存储器的内容分配到多级存储器系统中的高带宽存储器。
7.根据权利要求1所述的方法,其中执行所述第一操作包括:
识别由多个请求者对存储器地址的多个存储器请求;以及
响应于所述多个请求而执行相干操作。
8.根据权利要求7所述的方法,其中执行所述相干操作包括使对应于所述存储器地址的高速缓存线无效。
9.一种设备,其包括:
自适应范围剖析器,其被配置为在处理系统中自适应剖析存储器请求流中的存储器地址范围,以识别所述存储器地址的一组连续范围和所述存储器请求流中的对应的访问频率,所述自适应剖析是基于合并阈值和分裂阈值,所述一组连续范围跨越所述存储器地址的整个范围空间,所述合并阈值指示所述一组连续的存储器地址范围中的每个存储器地址范围的最小访问频率,并且所述分裂阈值指示所述一组连续的存储器地址范围中的每个存储器地址范围的最大访问频率;
范围联合和剔除逻辑,其被配置为周期性地遍历所述一组连续的存储器地址范围和对应的访问频率,以识别具有高于预定阈值访问频率的对应的访问频率的存储器地址的一组目标范围,所述一组目标存储器地址范围具有小于或等于预定范围数量的总范围数量,并且所述目标存储器地址范围跨越所述整个存储器地址范围空间的至少一些;以及
逻辑,其被配置为使用所述一组目标存储器地址范围中的存储器地址范围来执行第一操作。
10.根据权利要求9所述的设备,其中所述一组目标存储器地址范围跨越小于所述整个存储器地址范围空间,并且所述一组目标存储器地址范围包括所述存储器地址的不连续范围。
11.根据权利要求9所述的设备,其中所述逻辑包括:
虚拟至物理地址转译器,其被配置为执行所述第一操作,所述第一操作包括将所述一组目标范围转译成具有基准存储器地址和极限值的一组物理地址;
一组基准-极限寄存器,其被配置为存储所述一组物理地址范围,所述预定范围数量对应于所述一组基准-极限寄存器中的基准-极限寄存器的总数。
12.根据权利要求11所述的设备,其还包括:
页表,其包括对所述一组基准-极限寄存器的存储器映射冗余的所述存储器映射。
13.根据权利要求9、10、11或12所述的设备,其中所述逻辑包括:
虚拟至物理地址转译器,其被配置为执行所述第一操作,所述第一操作包括将所述一组目标范围的连续范围转译成用于大存储器页的地址。
14.根据权利要求9、10、11或12所述的设备,其还包括:
高带宽存储器,其中所述第一操作包括将与所述目标存储器地址范围相关联的主存储器的内容分配到所述高带宽存储器。
15.根据权利要求9、10、11或12所述的设备,其中所述逻辑被配置为识别由多个请求者对存储器地址的多个存储器请求,并响应于所述多个请求而执行相干操作。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662286618P | 2016-01-25 | 2016-01-25 | |
US62/286,618 | 2016-01-25 | ||
US15/130,793 | 2016-04-15 | ||
US15/130,793 US10019365B2 (en) | 2016-01-25 | 2016-04-15 | Adaptive value range profiling for enhanced system performance |
PCT/US2017/013934 WO2017132026A1 (en) | 2016-01-25 | 2017-01-18 | Adaptive value range profiling for enhanced system performance |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108496160A true CN108496160A (zh) | 2018-09-04 |
CN108496160B CN108496160B (zh) | 2020-12-22 |
Family
ID=59359059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780008128.4A Active CN108496160B (zh) | 2016-01-25 | 2017-01-18 | 用于增强系统性能的自适应值范围剖析 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10387315B2 (zh) |
EP (1) | EP3408748B1 (zh) |
JP (1) | JP6725671B2 (zh) |
KR (1) | KR102165776B1 (zh) |
CN (1) | CN108496160B (zh) |
WO (1) | WO2017132026A1 (zh) |
Families Citing this family (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10402326B1 (en) * | 2016-04-26 | 2019-09-03 | Apple Inc. | Accessing memories in coherent and non-coherent domains in a computing system |
CN107870916A (zh) * | 2016-09-23 | 2018-04-03 | 伊姆西Ip控股有限责任公司 | 存储管理方法及设备 |
US10402355B2 (en) * | 2017-02-08 | 2019-09-03 | Texas Instruments Incorporated | Apparatus and mechanism to bypass PCIe address translation by using alternative routing |
WO2018148923A1 (en) * | 2017-02-17 | 2018-08-23 | Intel Corporation | Application and system fast launch by virtual address area container |
US10528478B2 (en) * | 2017-05-30 | 2020-01-07 | Ati Technologies Ulc | Page table management for differing virtual and physical address page alignment |
US10761743B1 (en) | 2017-07-17 | 2020-09-01 | EMC IP Holding Company LLC | Establishing data reliability groups within a geographically distributed data storage environment |
DE102017217807A1 (de) * | 2017-10-06 | 2019-04-11 | Bayerische Motoren Werke Aktiengesellschaft | Verfahren und vorrichtung zum verarbeiten einer software-aktualisierung |
US10880040B1 (en) | 2017-10-23 | 2020-12-29 | EMC IP Holding Company LLC | Scale-out distributed erasure coding |
US10382554B1 (en) | 2018-01-04 | 2019-08-13 | Emc Corporation | Handling deletes with distributed erasure coding |
US10496457B2 (en) * | 2018-04-02 | 2019-12-03 | Micron Technology, Inc. | Grouping requests to reduce inter-process communication in memory systems |
US10579297B2 (en) | 2018-04-27 | 2020-03-03 | EMC IP Holding Company LLC | Scaling-in for geographically diverse storage |
US10936196B2 (en) | 2018-06-15 | 2021-03-02 | EMC IP Holding Company LLC | Data convolution for geographically diverse storage |
US11023130B2 (en) | 2018-06-15 | 2021-06-01 | EMC IP Holding Company LLC | Deleting data in a geographically diverse storage construct |
US11099753B2 (en) * | 2018-07-27 | 2021-08-24 | EMC IP Holding Company LLC | Method and apparatus for dynamic flow control in distributed storage systems |
US10997083B2 (en) * | 2018-09-04 | 2021-05-04 | Arm Limited | Parallel page table entry access when performing address translations |
US11436203B2 (en) | 2018-11-02 | 2022-09-06 | EMC IP Holding Company LLC | Scaling out geographically diverse storage |
US10901635B2 (en) | 2018-12-04 | 2021-01-26 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes for data storage with high performance using logical columns of the nodes with different widths and different positioning patterns |
US11232039B2 (en) | 2018-12-10 | 2022-01-25 | Advanced Micro Devices, Inc. | Cache for storing regions of data |
US10931777B2 (en) | 2018-12-20 | 2021-02-23 | EMC IP Holding Company LLC | Network efficient geographically diverse data storage system employing degraded chunks |
US11119683B2 (en) | 2018-12-20 | 2021-09-14 | EMC IP Holding Company LLC | Logical compaction of a degraded chunk in a geographically diverse data storage system |
US10892782B2 (en) | 2018-12-21 | 2021-01-12 | EMC IP Holding Company LLC | Flexible system and method for combining erasure-coded protection sets |
US11023331B2 (en) | 2019-01-04 | 2021-06-01 | EMC IP Holding Company LLC | Fast recovery of data in a geographically distributed storage environment |
US10942827B2 (en) | 2019-01-22 | 2021-03-09 | EMC IP Holding Company LLC | Replication of data in a geographically distributed storage environment |
US10866766B2 (en) | 2019-01-29 | 2020-12-15 | EMC IP Holding Company LLC | Affinity sensitive data convolution for data storage systems |
US10936239B2 (en) | 2019-01-29 | 2021-03-02 | EMC IP Holding Company LLC | Cluster contraction of a mapped redundant array of independent nodes |
US10846003B2 (en) | 2019-01-29 | 2020-11-24 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage |
US10942825B2 (en) | 2019-01-29 | 2021-03-09 | EMC IP Holding Company LLC | Mitigating real node failure in a mapped redundant array of independent nodes |
US11029865B2 (en) * | 2019-04-03 | 2021-06-08 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a mapped redundant array of independent nodes |
US10944826B2 (en) | 2019-04-03 | 2021-03-09 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a mapped redundant array of independent nodes |
US11113146B2 (en) | 2019-04-30 | 2021-09-07 | EMC IP Holding Company LLC | Chunk segment recovery via hierarchical erasure coding in a geographically diverse data storage system |
US11119686B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Preservation of data during scaling of a geographically diverse data storage system |
US11121727B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Adaptive data storing for data storage systems employing erasure coding |
US11748004B2 (en) | 2019-05-03 | 2023-09-05 | EMC IP Holding Company LLC | Data replication using active and passive data storage modes |
US11209996B2 (en) | 2019-07-15 | 2021-12-28 | EMC IP Holding Company LLC | Mapped cluster stretching for increasing workload in a data storage system |
US11449399B2 (en) | 2019-07-30 | 2022-09-20 | EMC IP Holding Company LLC | Mitigating real node failure of a doubly mapped redundant array of independent nodes |
US11023145B2 (en) | 2019-07-30 | 2021-06-01 | EMC IP Holding Company LLC | Hybrid mapped clusters for data storage |
US11228322B2 (en) | 2019-09-13 | 2022-01-18 | EMC IP Holding Company LLC | Rebalancing in a geographically diverse storage system employing erasure coding |
US11449248B2 (en) | 2019-09-26 | 2022-09-20 | EMC IP Holding Company LLC | Mapped redundant array of independent data storage regions |
US11435910B2 (en) | 2019-10-31 | 2022-09-06 | EMC IP Holding Company LLC | Heterogeneous mapped redundant array of independent nodes for data storage |
US11288139B2 (en) | 2019-10-31 | 2022-03-29 | EMC IP Holding Company LLC | Two-step recovery employing erasure coding in a geographically diverse data storage system |
US11119690B2 (en) | 2019-10-31 | 2021-09-14 | EMC IP Holding Company LLC | Consolidation of protection sets in a geographically diverse data storage environment |
US11169927B2 (en) * | 2019-11-22 | 2021-11-09 | EMC IP Holding Company LLC | Efficient cache management |
US11435957B2 (en) | 2019-11-27 | 2022-09-06 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes |
US11144220B2 (en) | 2019-12-24 | 2021-10-12 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a doubly mapped redundant array of independent nodes |
US11231860B2 (en) | 2020-01-17 | 2022-01-25 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage with high performance |
CN111274163A (zh) * | 2020-03-27 | 2020-06-12 | 西安紫光国芯半导体有限公司 | 储存级存储器的双列直插式存储模块装置及其缓存方法 |
US11507308B2 (en) | 2020-03-30 | 2022-11-22 | EMC IP Holding Company LLC | Disk access event control for mapped nodes supported by a real cluster storage system |
US11294808B2 (en) | 2020-05-21 | 2022-04-05 | Micron Technology, Inc. | Adaptive cache |
US11288229B2 (en) | 2020-05-29 | 2022-03-29 | EMC IP Holding Company LLC | Verifiable intra-cluster migration for a chunk storage system |
US11409657B2 (en) * | 2020-07-14 | 2022-08-09 | Micron Technology, Inc. | Adaptive address tracking |
US11422934B2 (en) * | 2020-07-14 | 2022-08-23 | Micron Technology, Inc. | Adaptive address tracking |
US11507516B2 (en) | 2020-08-19 | 2022-11-22 | Micron Technology, Inc. | Adaptive cache partitioning |
US11693983B2 (en) | 2020-10-28 | 2023-07-04 | EMC IP Holding Company LLC | Data protection via commutative erasure coding in a geographically diverse data storage system |
US11379281B2 (en) * | 2020-11-18 | 2022-07-05 | Akamai Technologies, Inc. | Detection and optimization of content in the payloads of API messages |
US11847141B2 (en) | 2021-01-19 | 2023-12-19 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes employing mapped reliability groups for data storage |
US11625174B2 (en) | 2021-01-20 | 2023-04-11 | EMC IP Holding Company LLC | Parity allocation for a virtual redundant array of independent disks |
US11449234B1 (en) | 2021-05-28 | 2022-09-20 | EMC IP Holding Company LLC | Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes |
US11354191B1 (en) | 2021-05-28 | 2022-06-07 | EMC IP Holding Company LLC | Erasure coding in a large geographically diverse data storage system |
US11899589B2 (en) * | 2021-06-22 | 2024-02-13 | Samsung Electronics Co., Ltd. | Systems, methods, and devices for bias mode management in memory systems |
US11625175B1 (en) * | 2021-06-29 | 2023-04-11 | Amazon Technologies, Inc. | Migrating virtual resources between non-uniform memory access (NUMA) nodes |
WO2023072381A1 (en) * | 2021-10-27 | 2023-05-04 | Huawei Technologies Co., Ltd. | Memory controller and method for use in memory controller of memory system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101341473A (zh) * | 2005-12-20 | 2009-01-07 | Nxp股份有限公司 | 具有共享存储体的多处理器电路 |
CN101770430A (zh) * | 2008-12-29 | 2010-07-07 | J·鲁德利克 | 分析移动到非易失性存储器的ram存储对象的方法和设备 |
CN103136118A (zh) * | 2011-11-21 | 2013-06-05 | 西部数据技术公司 | 使用多层存储器的磁盘驱动数据缓存 |
US20130185475A1 (en) * | 2012-01-12 | 2013-07-18 | Fusion-Io, Inc. | Systems and methods for cache profiling |
US20150169227A1 (en) * | 2013-12-16 | 2015-06-18 | International Business Machines Corporation | Adaptive statistics for a linear address space |
CN104769557A (zh) * | 2012-11-09 | 2015-07-08 | 高通股份有限公司 | 经由页访问计数的处理器存储器优化 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008055270A2 (en) * | 2006-11-04 | 2008-05-08 | Virident Systems, Inc. | Writing to asymmetric memory |
US8706914B2 (en) * | 2007-04-23 | 2014-04-22 | David D. Duchesneau | Computing infrastructure |
US20100169602A1 (en) | 2008-12-29 | 2010-07-01 | Jared E Hulbert | Method and Apparatus for Efficient Memory Placement |
US9086973B2 (en) | 2009-06-09 | 2015-07-21 | Hyperion Core, Inc. | System and method for a cache in a multi-core processor |
TWI420309B (zh) | 2010-11-12 | 2013-12-21 | Inventec Corp | 設定記憶體位址空間的方法 |
US9424191B2 (en) * | 2012-06-29 | 2016-08-23 | Intel Corporation | Scalable coherence for multi-core processors |
CN103744799B (zh) * | 2013-12-26 | 2017-07-21 | 华为技术有限公司 | 一种内存数据访问方法、装置和系统 |
US20170060434A1 (en) * | 2015-08-27 | 2017-03-02 | Samsung Electronics Co., Ltd. | Transaction-based hybrid memory module |
-
2016
- 2016-04-11 US US15/095,778 patent/US10387315B2/en active Active
- 2016-04-15 US US15/130,793 patent/US10019365B2/en active Active
-
2017
- 2017-01-18 CN CN201780008128.4A patent/CN108496160B/zh active Active
- 2017-01-18 EP EP17744700.0A patent/EP3408748B1/en active Active
- 2017-01-18 JP JP2018538747A patent/JP6725671B2/ja active Active
- 2017-01-18 WO PCT/US2017/013934 patent/WO2017132026A1/en active Application Filing
- 2017-01-18 KR KR1020187021915A patent/KR102165776B1/ko active IP Right Grant
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101341473A (zh) * | 2005-12-20 | 2009-01-07 | Nxp股份有限公司 | 具有共享存储体的多处理器电路 |
CN101770430A (zh) * | 2008-12-29 | 2010-07-07 | J·鲁德利克 | 分析移动到非易失性存储器的ram存储对象的方法和设备 |
CN103136118A (zh) * | 2011-11-21 | 2013-06-05 | 西部数据技术公司 | 使用多层存储器的磁盘驱动数据缓存 |
US20130185475A1 (en) * | 2012-01-12 | 2013-07-18 | Fusion-Io, Inc. | Systems and methods for cache profiling |
CN104769557A (zh) * | 2012-11-09 | 2015-07-08 | 高通股份有限公司 | 经由页访问计数的处理器存储器优化 |
US20150169227A1 (en) * | 2013-12-16 | 2015-06-18 | International Business Machines Corporation | Adaptive statistics for a linear address space |
Also Published As
Publication number | Publication date |
---|---|
EP3408748A1 (en) | 2018-12-05 |
KR102165776B1 (ko) | 2020-10-14 |
US10387315B2 (en) | 2019-08-20 |
JP2019506676A (ja) | 2019-03-07 |
US20170212837A1 (en) | 2017-07-27 |
CN108496160B (zh) | 2020-12-22 |
JP6725671B2 (ja) | 2020-07-22 |
KR20180099819A (ko) | 2018-09-05 |
EP3408748A4 (en) | 2019-08-21 |
EP3408748B1 (en) | 2020-08-12 |
US10019365B2 (en) | 2018-07-10 |
WO2017132026A1 (en) | 2017-08-03 |
US20170212845A1 (en) | 2017-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108496160A (zh) | 用于增强系统性能的自适应值范围剖析 | |
US9405702B2 (en) | Caching TLB translations using a unified page table walker cache | |
Calder et al. | Predictive sequential associative cache | |
EP3642722B1 (en) | Mechanism for reducing page migration overhead in memory systems | |
CN1991793B (zh) | 用于在多核系统中进行邻近高速缓存的方法及系统 | |
EP3454219B1 (en) | An apparatus and method for efficient utilisation of an address translation cache | |
US20070130237A1 (en) | Transient cache storage | |
US20160140042A1 (en) | Instruction cache translation management | |
US20180101480A1 (en) | Apparatus and method for maintaining address translation data within an address translation cache | |
US20170300425A1 (en) | Translation lookaside buffer switch bank | |
US8495286B2 (en) | Write buffer for improved DRAM write access patterns | |
US20140195771A1 (en) | Anticipatorily loading a page of memory | |
US20160170896A1 (en) | N-ary tree for mapping a virtual memory space | |
CN117897695A (zh) | 数据即计算 | |
US10146698B2 (en) | Method and apparatus for power reduction in a multi-threaded mode | |
US11853597B2 (en) | Memory management unit, method for memory management, and information processing apparatus | |
Zhang et al. | PLIS: Persistent Learned Index for Strings | |
KR20230075361A (ko) | 메모리 어드레스들과 연관된 데이터를 캐싱하도록 캐시 저장소를 동작시키기 위한 기법 | |
Lim et al. | JUMPRUN: A hybrid mechanism to accelerate item scanning for in-memory databases | |
Zebchuk et al. | A Building Block for Coarse-Grain Optimizations in the On-Chip Memory Hierarchy |
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 |