CN104272278A - 多线程处理器中的共享经分割高速缓冲存储器中的每线程高速缓冲存储器行分配机制 - Google Patents
多线程处理器中的共享经分割高速缓冲存储器中的每线程高速缓冲存储器行分配机制 Download PDFInfo
- Publication number
- CN104272278A CN104272278A CN201380023546.2A CN201380023546A CN104272278A CN 104272278 A CN104272278 A CN 104272278A CN 201380023546 A CN201380023546 A CN 201380023546A CN 104272278 A CN104272278 A CN 104272278A
- Authority
- CN
- China
- Prior art keywords
- cache memory
- attribute
- data
- register
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
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/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand 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/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
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
本发明提供用于在多线程处理器(102)的共享经分割高速缓冲存储器(104)中分配高速缓冲存储器行的系统和方法。存储器管理单元(110)经配置以确定与用于高速缓冲存储器输入项的地址相关联的属性,所述高速缓冲存储器输入项与待分配于所述高速缓冲存储器中的处理线程(T0)相关联。配置寄存器(CP 300_0)经配置以存储基于所述所确定属性的高速缓冲存储器分配信息。分割寄存器(DP 310)经配置以存储用于将所述高速缓冲存储器分割成两个或两个以上部分(图3中的主要/辅助)的分割信息。基于所述配置寄存器和所述分割寄存器将所述高速缓冲存储器输入项分配到所述高速缓冲存储器的所述部分中的一者中。
Description
技术领域
所揭示的实施例是针对共享高速缓冲存储器中的高速缓冲存储器分配。更明确地说,示范性实施例是针对多线程处理器中的共享经分割高速缓冲存储器中的高速缓冲存储器行的分配。
背景技术
处理器中的多线程处理的表现可发生于不同层级处或以不同处理粒度发生。多线程处理器的各个线程可共享一或多个层级的高速缓冲存储器和存储器。所述线程可具有不同数据属性,如“流式传输数据”、“局部化数据”、“多用途数据”、“共享”、“非共享”等。如最近最少使用(LRU)等简单的分配与置换方案是不合适的,因为必须要解决由所述线程和线程所特有的数据属性产生的不同上下文。
举例来说,在不存在专门的分配/置换机制的情况下,已填入流式传输数据的共享高速缓冲存储器的高速缓冲存储器行可能会被另一线程的局部化数据或多用途数据置换。此些情形是不可接受的,且可能导致处理速度和效率的严重降级。
一些共享高速缓冲存储器可包含静态分割以使来自不同线程的数据保持分离。然而,在静态分割情况下,线程被静态地锁定到特定高速缓冲存储器分区,此导致额外缺点。举例来说,线程的数据属性可从流式传输数据动态地转变到局部化数据,或从局部化数据动态地转变到流式传输数据。可以看出,将欲分配的线程锁定在高速缓冲存储器的预定义部分中的静态分割无法解决数据属性在线程中的此类动态转变。
因此,在此项技术中存在对于避免前述缺点的在共享高速缓冲存储器中灵活的分配高速缓冲存储器的需要。
发明内容
本发明的示范性实施例是针对用于在共享经分割高速缓冲存储器中分配高速缓冲存储器行以用于多线程处理的系统和方法。
举例来说,示范性实施例是针对一种更新共享高速缓冲存储器的方法,其包括:接收与待分配于所述高速缓冲存储器中的处理线程相关联的高速缓冲存储器输入项的地址;确定与所述地址相关联的属性;用基于所述属性的高速缓冲存储器分配信息设定对应于所述处理线程的配置寄存器;基于分割寄存器确定高速缓冲存储器分区;以及基于所述配置寄存器和所述高速缓冲存储器分区将所述高速缓冲存储器输入项分配到所述高速缓冲存储器中。
另一示范性实施例是针对一种在多线程处理系统中的高速缓冲存储器分配的方法,其包括:接收与用于所述多线程处理系统的待分配于高速缓冲存储器中的处理线程的数据相关联的地址;确定与所述地址相关联的页属性;将所述高速缓冲存储器分割成两个或两个以上部分;以及至少基于所述页属性将所述数据分配到所述高速缓冲存储器的一或多个部分中。
又一示范性实施例是针对一种多线程处理系统,其包括:高速缓冲存储器;处理线程;存储器管理单元,其用于确定与高速缓冲存储器输入项的地址相关联的属性,所述高速缓冲存储器输入项与待分配于所述高速缓冲存储器中的所述处理线程相关联;配置寄存器,其包括基于所述所确定属性的高速缓冲存储器分配信息;分割寄存器,其包括用于将所述高速缓冲存储器分割成两个或两个以上部分的分割信息;以及用于基于所述配置寄存器和所述分割寄存器将所述高速缓冲存储器输入项分配到所述高速缓冲存储器的所述部分中的一者中的逻辑。
又一示范性实施例是针对一种多线程处理系统,其包括:高速缓冲存储器;处理线程;存储器管理装置,其用于确定与高速缓冲存储器输入项的地址相关联的属性,所述高速缓冲存储器输入项与待分配于所述高速缓冲存储器中的所述处理线程相关联;配置装置,其用于存储基于所述所确定属性的高速缓冲存储器分配信息;用于存储分割信息的分割装置,其用于将所述高速缓冲存储器分割成两个或两个以上部分;以及用于基于所述配置装置和所述分割装置将所述高速缓冲存储器输入项分配到所述高速缓冲存储器的所述部分中的一者中的装置。
又一示范性实施例是针对一种非暂时性计算机可读存储媒体,其包括在由多线程处理器执行时致使所述多线程处理器执行用于更新共享高速缓冲存储器的操作的代码,所述非暂时性计算机可读存储媒体包括:用于接收与待分配于所述高速缓冲存储器中的处理线程相关联的高速缓冲存储器输入项的地址的代码;用于确定与所述地址相关联的属性的代码;用于用基于所述属性的高速缓冲存储器分配信息设定配置寄存器的代码;用于确定高速缓冲存储器分区的代码;以及用于基于所述配置寄存器和所述高速缓冲存储器分区将所述高速缓冲存储器输入项分配到所述高速缓冲存储器中的代码。
又一示范性实施例是针对一种非暂时性计算机可读存储媒体,其包括在由多线程处理器执行时致使所述多线程处理器执行用于多线程处理系统中的高速缓冲存储器分配的操作的代码,所述非暂时性计算机可读存储媒体包括:用于接收与用于所述多线程处理系统的待分配于高速缓冲存储器中的处理线程的数据相关联的地址的代码;用于确定与所述地址相关联的页属性的代码;用于将所述高速缓冲存储器分割成两个或两个以上部分的代码;以及用于至少基于所述页属性将所述数据分配到所述高速缓冲存储器的一或多个部分中的代码。
附图说明
呈现附图来辅助对本发明的实施例的描述,且仅出于说明而非限制所述实施例的目的来提供附图。
图1是根据示范性实施例的经配置以实施高速缓冲存储器分区和高速缓冲存储器分配的处理系统100的框图。
图2说明包括用于高速缓冲存储器分配的配置寄存器设定的表。
图3说明示范性数据高速缓冲存储器中的高速缓冲存储器分配和高速缓冲存储器分区的逻辑实施方案的示意图。
图4说明根据示范性实施例的分配高速缓冲存储器的方法的示范性操作流程。
图5是根据示范性实施例而配置的包含多核心处理器的无线装置的特定说明性实施例的框图。
具体实施方式
在以下针对本发明特定实施例的描述和有关图式中揭示本发明的若干方面。可在不脱离本发明的范围的情况下设计替代实施例。此外,将不会详细描述本发明的众所周知的元件,或将省略所述元件,以免混淆本发明的相关细节。
本文中使用词语“示范性”意指“充当实例、例子或说明。”本文中被描述为“示范性的”任何实施例不必被理解为比其它实施例优选或有利。同样,术语“本发明的实施例”并非要求本发明的所有实施例包含所论述的特征、优点或操作模式。
本文中所使用的术语仅出于描述特定实施例的目的且并不希望限制本发明的实施例。如在本文中所使用,除非上下文另外清楚地指示,否则希望单数形式“一”和“所述”也包括复数形式。将进一步了解,术语“包括”和/或“包含”在用于本文中时指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一或多个其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。
此外,依据将由(例如)计算装置的元件执行的动作序列来描述许多实施例。将认识到,可由特定电路(例如,专用集成电路(ASIC))、由正由一或多个处理器执行的程序指令或由两者的组合来执行本文中所述的各种动作。此外,可认为本文中所述的这些动作序列完全实施于任何形式的计算机可读存储媒体内,所述计算机可读存储媒体中已存储一组对应计算机指令,所述指令在被执行时将致使相关联的处理器执行本文中所述的功能性。因此,本发明的各种方面可以许多不同形式来实施,所有所述形式均被涵盖在所主张的标的物的范围内。此外,对于本文中所述的实施例的每一者来说,任何所述实施例的对应形式可在本文中被描述为(例如)“经配置以执行所描述的动作的逻辑”。
示范性实施例适合于具有共享高速缓冲存储器的多线程处理器。实施例可经配置以允许将数据灵活地分配在经分割高速缓冲存储器中。在一些实施例中,软件可通过越权控制静态分区且将数据分配到由软件确定的分区而控制数据到静态分割的高速缓冲存储器中的分配。换句话说,软件可将日期分配到整个高速缓冲存储器中,而不经受可为例如线程特定的高速缓冲存储器的静态定义的分割。
现参考图1,说明处理系统100的示意性表示。多线程处理器102可经配置以处理可在硬件或软件中实施的两个或两个以上线程(例如,线程T0、T1、T2,和T3)。两个或两个以上线程可存取可根据本文中论述的示范性实施例而分割的L1高速缓冲存储器,例如D高速存储缓冲器104和I高速缓冲存储器106。一或多个层级的高速缓冲存储器(例如L2高速缓冲存储器(未展示))还可存在于处理器100的存储器阶层(结束于共享主存储器108中)中。存储器管理单元(MMU)110可与各种高速缓冲存储器和主存储器通信以服务于例如从多线程处理器102所产生的虚拟地址到用于存取高速缓冲存储器和主存储器108的物理地址的地址转换等功能。所属领域的技术人员将在不脱离所揭示实施例的范围的情况下认识到处理系统100的适当变化。
现将参考D高速存储缓冲器104描述示范性实施例中的高速缓冲存储器分配而不损失一般性。D高速缓冲存储器104可以各种方式分割以便根据特定需要控制数据在高速缓冲存储器空间内的放置。举例来说,D高速缓冲存储器104可分割成主要部分和辅助部分。主要部分可专用于来自多线程处理器102的线程的数据处理需要,而辅助部分可专用于流式传输可例如从直接存储器存取(DMA)引擎(未展示)接收的数据。可静态地设定主要和辅助部分的相对或绝对大小和放置。举例来说,高速缓冲存储器可按所选比率(例如,50∶50、25∶75、75∶25等)静态地分割成主要和辅助部分。换句话说,根据高速缓冲存储路径,高速缓冲存储器分割可指定主要和辅助部分中的路径数目。举例来说,对于8路高速缓冲存储器,高速缓冲存储器分割可指定主要部分中的6个路径和辅助部分中的2个路径(对应于75∶25比例)。在一些实施例中,高速缓冲存储器分割可为动态的。举例来说,主要与辅助部分的相对比例可基于处理线程。
示范性实施例可针对多线程处理器102的每一线程包含一配置寄存器,其中配置寄存器可控制对应于所述线程的高速缓冲存储器分配。配置寄存器可通过软件设定。每一线程可具有相关联的数据属性,例如与线程中的数据地址相关联的页属性。这些数据属性可用以确定数据在D高速缓冲存储器104中的分配。
现参考图2,说明包括用于第一线程(例如,在多线程处理器102上运行)的高速缓冲存储器分配指令(第一线程的配置寄存器CP 200)的表。如所展示,在第一模式(其中CP 200设定到值“00”)中,通过相关联数据属性控制数据在D高速缓冲存储器104中的分配/放置。举例来说,在第一模式中,将忽略定义D高速缓冲存储器104的分区的任何静态地确定的数据分配,且数据属性将指示将放置数据的位置。换句话说,在此第一模式中,不管D高速缓冲存储器104如何分割成主要与辅助部分的特定比例,都可忽略这些分区,且可基于数据属性将数据分配到整个D高速缓冲存储器104的任何部分中。在一些实施例中,MMU 110可经配置以通过剖析与数据相关联的地址以获得数据属性且使用这些属性来相应地设定配置寄存器CP来辅助高速缓冲存储器分配。
继续参考图2的表200,在其中CP 200设定到值“01”的第二模式中,将忽略数据到D高速缓冲存储器104的分区的分配的任何静态确定,且数据将分配到D高速缓冲存储器104的主要部分。类似地,在其中CP 200设定到值“10”的第三模式中,将忽略数据到D高速缓冲存储器104的分区的分配的任何静态确定,且数据将分配到D高速缓冲存储器104的辅助部分。尽管图2的表中仅展示三个模式,但可通过在需要的情况下向CP 200添加更多位来定义额外模式。举例来说,另一模式可指定“无分配”,其中跳过相关联数据在D高速缓冲存储器104中的分配,且数据在未经高速缓冲存储的情况下加以处理。又一模式可指定“最近最多使用(MRU)”分配,其中数据分配到最近最多地用于第一线程的D高速缓冲存储器104中的数据分配的部分(例如,主要或辅助)。所属领域的技术人员将基于设定特定实施方案的配置寄存器而认识到上述模式的适当变化。
现参考图3,说明使用线程特定配置寄存器的D高速缓冲存储器104的示范性分配实施方案。展示分别对应于线程T0、T1和T2的三个配置寄存器CP 300_0、300_1和300_2。还如所展示,D高速缓冲存储器104的扩充视图包括标记阵列302、状态阵列304和数据阵列306。现将进一步详细地论述经配置以控制跨越D高速缓冲存储器104的标记阵列302、状态阵列304和数据阵列306的分割的D高速缓冲存储器分割寄存器DP 310。
D高速缓冲存储器分割寄存器DP 310可经配置以保持用于D高速缓冲存储器104的特定分割信息。在一个实例中,可实施D高速缓冲存储器104的静态分割,且可用关于D高速缓冲存储器104的主要与辅助部分的相对比例的信息来设定DP 310。举例来说,DP 310可设定为处理系统100的系统配置的部分。静态分割可共用于每一处理线程或可为线程特定的。可通过程序员来选择特定静态分区。在另一实例中,D高速缓冲存储器104可以线程特定方式动态地加以分割。静态与动态分割的组合也是可能的,且可由适当配置的分割寄存器DP 310来实施。
不管是静态还是动态地分割,由DP 310指示的特定分割可用以将标记阵列302分割成主要标记阵列部分302a和辅助标记阵列部分302b。类似地,状态阵列304可分割成主要状态阵列部分304a和辅助状态阵列部分304b;且数据阵列306可分割成主要数据阵列部分306a和辅助数据阵列部分306b。
现将描述将数据写入到D高速缓冲存储器104的通用机制。需要分配到D高速缓冲存储器104中的数据的物理地址(PA)可剖析成标记位,PA[标记位]316a、PA[设定位]316b和PA[数据阵列位]316c。可使用比较器314比较PA[标记位]316a与存在于标记阵列302(其可实施为内容可寻址存储器(CAM))中的标签。比较器314还可使用PA[设定位]316b验证具有从状态阵列304读取的对应状态位的正结果(命中)以确保击中的标记阵列输入项有效。另一方面,如果存在错过,且D高速缓冲存储器104需要分配,那么置换路径逻辑308可通过考虑配置寄存器CP的模式而辅助将输入项分配到对应于PA的数据阵列306中。
继续参考图3,现将解释线程特定配置寄存器CP 300_0、300_1和300_2与写入到D高速缓冲存储器104的上述机制的示范性协作。如所说明,对于三个线程T0、T1和T2的所选线程,线程多路复用器312可经配置以在对应于所选线程的配置寄存器CP300_0、300_1和300_2之间进行选择。在第一实例中,将假定具有物理地址PA的数据属于线程T0。相应地,线程多路复用器312将选择展示为保持值“00”的配置寄存器CP 300_0。如先前描述,此对应于第一模式,其中将忽略D高速缓冲存储器104的现有分割,且D高速缓冲存储器104的分配将基于数据属性。因此,遵循写入到D高速缓冲存储器104的上述机制,如果存在错过,那么置换路径逻辑308将辅助在从PA[数据阵列位]316c导出的所分配位置处将数据写入到主要数据阵列部分306a或辅助数据阵列部分306b,且越权控制可通过从DP 310导出的分割信息确定的任何分配。
在第二实例中,数据可属于线程T1,因而致使线程多路复用器312选择已展示为保持值“01”的配置寄存器CP 300_1。如先前描述,此值对应于第二模式,其中数据将分配到D高速缓冲存储器104的主要部分。将基于DP 310确定主要部分在D高速缓冲存储器104内的位置。因此,遵循写入到D高速缓冲存储器104的上述机制,在错过时,数据将在从PA[数据阵列位]316c导出的位置处写入到主要数据阵列部分306a。
在第三实例中,数据可属于线程T2,因而致使线程多路复用器312选择已展示为保持值“10”的配置寄存器CP 300_2。如先前描述,此值对应于第三模式,其中数据将分配到D高速缓冲存储器104的辅助部分。将基于DP 310确定辅助部分在D高速缓冲存储器104内的位置。因此,遵循写入到D高速缓冲存储器104的上述机制,在错过时,数据将在从PA[数据阵列位]316c导出的位置处写入到辅助数据阵列部分306b。
因此,在示范性实施例中,可静态地分割D高速缓冲存储器104。可通过基于属性恰当地设定对应配置寄存器CP而控制数据的后续分配。所属领域的技术人员将理解,所揭示技术可容易地扩展到I高速缓冲存储器106或任何其它高速缓冲存储器,例如L2高速缓冲存储器。相应地,高速缓冲存储器分配可用于任何适当的高速缓冲存储器输入项,例如包括数据或指令的高速缓冲存储器行或高速缓冲存储器块。不管特定分区或分配模式如何,在示范性实施例中,对数据/指令的分配的精细粒度控制可改善软件中的共享高速缓冲存储器的管理,且由此改善处理系统100的性能。
应了解,实施例包含用于执行本文揭示的过程、功能及/或算法的各种方法。举例来说,如图4中所示,实施例可包含更新高速缓冲存储器的方法,其包括:接收与待分配于高速缓冲存储器中的处理线程相关联的高速缓冲存储器输入项的地址(例如,与图2中的线程T0相关联的数据的PA)——框402;确定与所述地址相关联的属性(例如页属性)——框404;用基于所述属性的高速缓冲存储器分配信息设定配置寄存器(例如,用于图2中的线程T0的配置寄存器CP)——框406;基于分割寄存器(例如,DP 310)确定高速缓冲存储器分区——框408;以及基于所述配置寄存器和所述高速缓冲存储器分区将所述高速缓冲存储器输入项分配到所述高速缓冲存储器中(例如,分配到主要或辅助部分中)——框410。
所属领域的技术人员将了解,可使用多种不同技术和技法中的任一者来表示信息和信号。举例来说,可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个以上描述中所参考的数据、指令、命令、信息、信号、位、符号及码片。
此外,所属领域的技术人员将了解,结合本文所揭示的实施例而描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件或两者的组合。为清楚说明硬件与软件的此可互换性,上文已大致关于其功能性而描述了各种说明性组件、块、模块、电路及步骤。所述功能性是实施为硬件还是软件取决于特定应用及施加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但所述实施方案决定不应被解释为会导致脱离本发明的范围。
结合本文所揭示的实施例而描述的方法、序列和/或算法可直接以硬件、以由处理器执行的软件模块或以两者的组合体现。软件模块可驻存在RAM存储器、闪存存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移除磁盘、CD-ROM,或此项技术中已知的任一其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息并将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。
参看图5,描绘根据示范性实施例配置的包含多核心处理器的无线装置的特定说明性实施例的框图且将其大体标识为500。装置500包含数字信号处理器(DSP)564,其可包含图1中所说明的各种块,例如处理器102、MMU 110、耦合到如所示的存储器532的D高速缓冲存储器104和I高速缓冲存储106。图5还展示耦合到DSP 564且耦合到显示器528的显示器控制器526。译码器/解码器(编码解码器)534(例如,音频和/或话音编码解码器)可耦合到DSP 564。还说明其它组件,例如无线控制器540(其可包含调制解调器)。扬声器536和麦克风538可耦合到编码解码器534。图5还指示无线控制器540可耦合到无线天线542。在特定实施例中,DSP 564、显示器控制器526、存储器532、编码解码器534和无线控制器540包含在系统级封装(system-in-package)或芯片上系统装置522中。
在特定实施例中,输入装置530和电力供应器544耦合到芯片上系统装置522。此外,在特定实施例中,如图5中所示,显示器528、输入装置530、扬声器536、麦克风538、无线天线542和电力供应器544在芯片上系统装置522的外部。然而,显示器528、输入装置530、扬声器536、麦克风538、无线天线542和电力供应器544中的每一者可耦合到芯片上系统装置522的组件,例如接口或控制器。
应注意,尽管图5描绘了无线通信装置,但DSP 564和存储器532还可以集成到机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理(PDA)、固定位置数据单元或者计算机中。处理器(例如,DSP 564)还可集成到此类装置中。
因此,本发明的实施例可包含体现用于高速缓冲存储器分配的方法的计算机可读媒体。因此,本发明并不限于所说明的实例且用于执行本文中所描述的功能性的任何装置均包含在本发明的实施例中。
虽然前面的揭示内容展示本发明的说明性实施例,但应注意,可在不脱离如所附权利要求书界定的本发明的范围的情况下,在其中做出各种改变和修改。无需以任何特定次序来执行根据本文中所述的本发明的实施例的方法权利要求项的功能、步骤及/或动作。此外,尽管可以单数形式描述或主张本发明的元件,但除非明确陈述对于单数的限制,否则也涵盖复数形式。
Claims (15)
1.一种更新共享高速缓冲存储器(104)的方法,其包括:
接收与待分配于所述高速存储缓冲器中的处理线程相关联的高速存储缓冲器输入项的地址(402);
确定与所述地址相关联的属性(404);
用基于所述属性的高速缓冲存储器分配信息设定对应于所述处理线程的配置寄存器(406);
基于分割寄存器确定高速缓冲存储器分区(408);以及
基于所述配置寄存器和所述高速缓冲存储器分区将所述高速缓冲存储器输入项分配到所述高速缓冲存储器中(410)。
2.根据权利要求1所述的方法,其中所述属性为页属性。
3.根据权利要求1所述的方法,其中所述属性指示流式传输数据、局部化数据、多用途数据、共享或非共享中的一者。
4.根据权利要求1所述的方法,其中所述高速缓冲存储器分区包括主要部分和辅助部分。
5.根据权利要求1所述的方法,其中所述高速缓冲存储器分区是基于静态分区。
6.根据权利要求1所述的方法,其中所述高速缓冲存储器分区是基于所述属性的动态分区。
7.根据权利要求1所述的方法,其进一步包括:配置用于确定与所述地址相关联的所述属性的存储器管理单元MMU。
8.根据权利要求7所述的方法,其进一步包括配置所述MMU以用基于所述属性的高速缓冲存储器分配信息设定所述配置寄存器。
9.根据权利要求7所述的方法,其进一步包括配置所述MMU以设定分割寄存器,且基于所述分割寄存器确定所述高速缓冲存储器分区。
10.根据权利要求1所述的方法,其中所述高速缓冲存储器分配信息指示基于所述属性的高速缓冲存储器分配、到主要部分的高速缓冲存储器分配或到辅助部分的高速缓冲存储器分配中的一者。
11.根据权利要求10所述的方法,其中基于所述属性的高速缓冲存储器分配包括越权控制所述所确定的高速缓冲存储器分割。
12.一种多线程处理系统(100),其包括:
高速缓冲存储器(104);
处理线程(T1);
存储器管理单元(110),其用于确定与用于高速缓冲存储器输入项的地址相关联的属性,所述高速缓冲存储器输入项与待分配于所述高速缓冲存储器中的所述处理线程相关联;
配置寄存器(CP 300_0),其包括基于所述所确定属性的高速缓冲存储器分配信息;
分割寄存器(DP 310),其包括用于将所述高速缓冲存储器分割成两个或两个以上部分的分割信息;以及
用于基于所述配置寄存器和所述分割寄存器将所述高速缓冲存储器输入项分配到所述高速缓冲存储器的所述部分中的一者中的逻辑(312,308,314)。
13.根据权利要求12所述的多线程处理系统,其中所述高速缓冲存储器分配信息指示基于页属性的高速缓冲存储器分配、到主要部分的高速缓冲存储器分配或到辅助部分的高速缓冲存储器分配中的一者。
14.一种包括用于执行根据权利要求1到11中任一权利要求所述的方法的装置的设备。
15.一种包括电脑可读媒体的计算机程序产品,所述电脑可读媒体包括用于致使计算机或处理器执行根据权利要求1到11中任一权利要求所述的方法的至少一个指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/466,359 US9824013B2 (en) | 2012-05-08 | 2012-05-08 | Per thread cacheline allocation mechanism in shared partitioned caches in multi-threaded processors |
US13/466,359 | 2012-05-08 | ||
PCT/US2013/040040 WO2013169836A1 (en) | 2012-05-08 | 2013-05-08 | Per thread cacheline allocation mechanism in shared partitioned caches in multi-threaded processors |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104272278A true CN104272278A (zh) | 2015-01-07 |
CN104272278B CN104272278B (zh) | 2017-05-24 |
Family
ID=48446688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380023546.2A Active CN104272278B (zh) | 2012-05-08 | 2013-05-08 | 用于更新共享高速缓冲存储器的方法和多线程处理系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9824013B2 (zh) |
EP (1) | EP2847684A1 (zh) |
JP (2) | JP6125617B2 (zh) |
CN (1) | CN104272278B (zh) |
WO (1) | WO2013169836A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114726925A (zh) * | 2020-12-21 | 2022-07-08 | 瑞昱半导体股份有限公司 | 具有存储器共享机制的无线通信装置及其存储器共享方法 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10430190B2 (en) * | 2012-06-07 | 2019-10-01 | Micron Technology, Inc. | Systems and methods for selectively controlling multithreaded execution of executable code segments |
US10089238B2 (en) * | 2014-07-17 | 2018-10-02 | Qualcomm Incorporated | Method and apparatus for a shared cache with dynamic partitioning |
US9588893B2 (en) | 2014-11-10 | 2017-03-07 | International Business Machines Corporation | Store cache for transactional memory |
US9727239B2 (en) * | 2014-11-13 | 2017-08-08 | Samsung Electronics Co., Ltd. | Electronic system with partitioning mechanism and method of operation thereof |
US9678875B2 (en) | 2014-11-25 | 2017-06-13 | Qualcomm Incorporated | Providing shared cache memory allocation control in shared cache memory systems |
EP3129886B1 (en) | 2014-12-14 | 2019-10-02 | VIA Alliance Semiconductor Co., Ltd. | Dynamic cache replacement way selection based on address tag bits |
JP6209689B2 (ja) | 2014-12-14 | 2017-10-04 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | モードに応じてウェイの全部又はサブセットに選択的に割り当てるように動的に構成可能であるマルチモード・セット・アソシエイティブ・キャッシュ・メモリ |
WO2016097810A1 (en) * | 2014-12-14 | 2016-06-23 | Via Alliance Semiconductor Co., Ltd. | Multi-mode set associative cache memory dynamically configurable to selectively select one or a plurality of its sets depending upon mode |
EP3258382B1 (en) * | 2016-06-14 | 2021-08-11 | Arm Ltd | A storage controller |
US10678690B2 (en) | 2017-08-29 | 2020-06-09 | Qualcomm Incorporated | Providing fine-grained quality of service (QoS) control using interpolation for partitioned resources in processor-based systems |
GB201806997D0 (en) * | 2018-04-30 | 2018-06-13 | Univ Leuven Kath | Configurable hardware device |
CN112148665B (zh) * | 2019-06-28 | 2024-01-09 | 深圳市中兴微电子技术有限公司 | 缓存的分配方法及装置 |
KR20230075914A (ko) * | 2021-11-23 | 2023-05-31 | 삼성전자주식회사 | 프로세싱 장치 및 이의 동작 방법과 전자 장치 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6223256B1 (en) * | 1997-07-22 | 2001-04-24 | Hewlett-Packard Company | Computer cache memory with classes and dynamic selection of replacement algorithms |
US20030196041A1 (en) * | 1997-01-30 | 2003-10-16 | Stmicroelectronics Limited | Cache system |
US6694407B1 (en) * | 1999-01-28 | 2004-02-17 | Univerisity Of Bristol | Cache memory with data transfer control and method of operating same |
CN101286138A (zh) * | 2008-06-03 | 2008-10-15 | 浙江大学 | 基于数据划分的多线程共享多核处理器二级缓存的方法 |
CN101609432A (zh) * | 2009-07-13 | 2009-12-23 | 中国科学院计算技术研究所 | 共享缓存管理系统及方法 |
US20100318742A1 (en) * | 2009-06-11 | 2010-12-16 | Qualcomm Incorporated | Partitioned Replacement For Cache Memory |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5761720A (en) * | 1996-03-15 | 1998-06-02 | Rendition, Inc. | Pixel engine pipeline processor data caching mechanism |
DE69826539D1 (de) | 1997-01-30 | 2004-11-04 | Sgs Thomson Microelectronics | Cachespeichersystem |
US6078994A (en) * | 1997-05-30 | 2000-06-20 | Oracle Corporation | System for maintaining a shared cache in a multi-threaded computer environment |
US6205519B1 (en) * | 1998-05-27 | 2001-03-20 | Hewlett Packard Company | Cache management for a multi-threaded processor |
US6493800B1 (en) * | 1999-03-31 | 2002-12-10 | International Business Machines Corporation | Method and system for dynamically partitioning a shared cache |
US6535905B1 (en) | 1999-04-29 | 2003-03-18 | Intel Corporation | Method and apparatus for thread switching within a multithreaded processor |
US6421761B1 (en) * | 1999-11-09 | 2002-07-16 | International Business Machines Corporation | Partitioned cache and management method for selectively caching data by type |
US6859862B1 (en) | 2000-04-07 | 2005-02-22 | Nintendo Co., Ltd. | Method and apparatus for software management of on-chip cache |
US6604174B1 (en) * | 2000-11-10 | 2003-08-05 | International Business Machines Corporation | Performance based system and method for dynamic allocation of a unified multiport cache |
JP2002342163A (ja) | 2001-05-15 | 2002-11-29 | Fujitsu Ltd | マルチスレッドプロセッサ用キャッシュ制御方式 |
US6871264B2 (en) | 2002-03-06 | 2005-03-22 | Hewlett-Packard Development Company, L.P. | System and method for dynamic processor core and cache partitioning on large-scale multithreaded, multiprocessor integrated circuits |
US7039760B2 (en) | 2003-04-28 | 2006-05-02 | International Business Machines Corporation | Programming means for dynamic specifications of cache management preferences |
US7536692B2 (en) * | 2003-11-06 | 2009-05-19 | Intel Corporation | Thread-based engine cache partitioning |
JP4725181B2 (ja) * | 2005-04-28 | 2011-07-13 | アイシン・エィ・ダブリュ株式会社 | ナビゲーションシステム及びキャッシュ管理方法 |
JP2007065743A (ja) | 2005-08-29 | 2007-03-15 | Sony Ericsson Mobilecommunications Japan Inc | 携帯情報端末及びその携帯情報端末の記憶領域管理方法 |
US7895415B2 (en) * | 2007-02-14 | 2011-02-22 | Intel Corporation | Cache sharing based thread control |
US7725657B2 (en) * | 2007-03-21 | 2010-05-25 | Intel Corporation | Dynamic quality of service (QoS) for a shared cache |
US20090157968A1 (en) * | 2007-12-12 | 2009-06-18 | International Business Machines Corporation | Cache Memory with Extended Set-associativity of Partner Sets |
US9952977B2 (en) * | 2009-09-25 | 2018-04-24 | Nvidia Corporation | Cache operations and policies for a multi-threaded client |
-
2012
- 2012-05-08 US US13/466,359 patent/US9824013B2/en active Active
-
2013
- 2013-05-08 JP JP2015511642A patent/JP6125617B2/ja active Active
- 2013-05-08 CN CN201380023546.2A patent/CN104272278B/zh active Active
- 2013-05-08 EP EP13723374.8A patent/EP2847684A1/en not_active Ceased
- 2013-05-08 WO PCT/US2013/040040 patent/WO2013169836A1/en active Application Filing
-
2017
- 2017-03-30 JP JP2017067172A patent/JP6279787B2/ja not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030196041A1 (en) * | 1997-01-30 | 2003-10-16 | Stmicroelectronics Limited | Cache system |
US6223256B1 (en) * | 1997-07-22 | 2001-04-24 | Hewlett-Packard Company | Computer cache memory with classes and dynamic selection of replacement algorithms |
US6694407B1 (en) * | 1999-01-28 | 2004-02-17 | Univerisity Of Bristol | Cache memory with data transfer control and method of operating same |
CN101286138A (zh) * | 2008-06-03 | 2008-10-15 | 浙江大学 | 基于数据划分的多线程共享多核处理器二级缓存的方法 |
US20100318742A1 (en) * | 2009-06-11 | 2010-12-16 | Qualcomm Incorporated | Partitioned Replacement For Cache Memory |
CN101609432A (zh) * | 2009-07-13 | 2009-12-23 | 中国科学院计算技术研究所 | 共享缓存管理系统及方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114726925A (zh) * | 2020-12-21 | 2022-07-08 | 瑞昱半导体股份有限公司 | 具有存储器共享机制的无线通信装置及其存储器共享方法 |
CN114726925B (zh) * | 2020-12-21 | 2024-04-19 | 瑞昱半导体股份有限公司 | 具有存储器共享机制的无线通信装置及其存储器共享方法 |
Also Published As
Publication number | Publication date |
---|---|
US20130304994A1 (en) | 2013-11-14 |
US9824013B2 (en) | 2017-11-21 |
WO2013169836A1 (en) | 2013-11-14 |
JP6279787B2 (ja) | 2018-02-14 |
JP2017152009A (ja) | 2017-08-31 |
CN104272278B (zh) | 2017-05-24 |
JP6125617B2 (ja) | 2017-05-10 |
EP2847684A1 (en) | 2015-03-18 |
JP2015519654A (ja) | 2015-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104272278A (zh) | 多线程处理器中的共享经分割高速缓冲存储器中的每线程高速缓冲存储器行分配机制 | |
US20080235306A1 (en) | Garbage collection in nonvolatile memories using data attributes, computer program products and methods of operating the same | |
US11720993B2 (en) | Dynamic kernel memory space allocation | |
GB2509755A (en) | Partitioning a shared cache using masks associated with threads to avoiding thrashing | |
CN104246726A (zh) | 用于维持高速缓存一致性的只写无数据状态 | |
US10152259B2 (en) | System and method for allocating and deallocating an address range corresponding to a first and a second memory between processors | |
US10261918B2 (en) | Process running method and apparatus | |
CN104424030A (zh) | 多进程操作共享内存的方法和装置 | |
CN103365784A (zh) | 内存回收与分配的方法及装置 | |
CN103793332B (zh) | 基于内存的数据存储方法、装置、处理器和电子设备 | |
CN110569122B (zh) | 多处理器系统、多核处理设备及其操作方法 | |
JP2015049844A (ja) | ストアマージ処理装置、ストアマージ処理システム、ストアマージ処理方法、及び、ストアマージ処理プログラム | |
TW201435910A (zh) | 資料儲存裝置與快閃記憶體控制方法 | |
US9606802B2 (en) | Processor system with predicate register, computer system, method for managing predicates and computer program product | |
CN113490916A (zh) | 堆栈管理 | |
JP2008181481A (ja) | 要求に基づく処理資源の割り当て | |
JP6891596B2 (ja) | プロセッサ | |
JP2018527665A (ja) | メモリギャップの効率的な利用 | |
US10509727B1 (en) | Method and apparatus for performing task-level cache management in electronic device | |
CN105389130A (zh) | 一种信息处理方法及固态硬盘 | |
US10776426B1 (en) | Capacity management for trees under multi-version concurrency control | |
CN117076130A (zh) | 应用程序中并发处理数据对象的方法和装置 | |
KR20220064967A (ko) | 프로세서 기반 디바이스에서 가변 즉시값 크기를 갖는 즉시 이동 명령어의 조기 실행의 인에이블링 | |
CN115729694A (zh) | 一种资源管理的方法及相应装置 | |
CN103677717A (zh) | 一种面向移动智能终端的3d图片显示优化实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |