CN1645341A - 根据优先级来处理高速缓存分配请求的方法和装置 - Google Patents
根据优先级来处理高速缓存分配请求的方法和装置 Download PDFInfo
- Publication number
- CN1645341A CN1645341A CN200410095647.3A CN200410095647A CN1645341A CN 1645341 A CN1645341 A CN 1645341A CN 200410095647 A CN200410095647 A CN 200410095647A CN 1645341 A CN1645341 A CN 1645341A
- Authority
- CN
- China
- Prior art keywords
- cache
- assignment request
- priority
- cache assignment
- numeral
- 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
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000012545 processing Methods 0.000 title abstract description 6
- 230000004044 response Effects 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 8
- 230000002093 peripheral effect Effects 0.000 claims description 5
- 230000003287 optical effect Effects 0.000 claims description 2
- 230000003068 static effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
揭示了用于处理高速缓存分配请求的方法和装置。在范例方法中,将优先级分配给高速缓存分配请求。根据该优先级,来识别与该高速缓存分配请求关联的分配概率。根据该分配概率,利用分配条件或分流条件来识别该高速缓存分配请求。
Description
技术领域
本发明一般涉及处理器系统内的存储器,更具体地说,涉及根据优先级来处理高速缓存分配请求的方法和装置。
背景技术
通常,高速缓存是一种存储器,与主存储器芯片上的随机存取存储器(RAM)相比,处理器可以更迅速地访问该存储器。可以根据存储器与该处理器的接近度和可达到程度来识别高速缓存。例如,一级统一标准(L1)高速缓存可能在与该处理器相同的芯片上。例如,当该处理器执行指令时,该处理器首先观察其芯片上的高速缓存,来发现与那个指令关联的数据,以避免更加耗时地在别处(例如,离开芯片或在主存储器芯片上的RAM上)搜索该数据。
当前的处理器系统中所执行的高速缓存通常不知道如何将高速缓存行分配给多个引入的应用流。例如,当处理器发出关于高速缓存内的数据块的装载/存储请求时,该处理器只核对该高速缓存内的那个数据块。也就是说,如果该数据块不在该高速缓存内,则该高速缓存控制器向该主存储器发出请求。一从该主存储器接收到响应,该高速缓存控制器就将该数据块分配到该高速缓存中。
在使用多线程核心、多核心处理器、多任务核心和/或虚拟化(virtualized)核心的处理器系统中,多个引入的应用流可能会相互干扰,结果,可能会导致共享高速缓存的无效操作率。与多个引入的应用流共享具有相等优先级的高速缓存空间经常导致高速缓存资源到更重要的存储密集应用程序的亚最佳分配。
附图说明
图1是框图,表现了一种范例高速缓存分配系统。
图2是框图,表现了与图1所示的范例高速缓存分配系统关联的范例高速缓存分配请求。
图3是框图,表现了与图1所示的范例高速缓存分配系统关联的范例优先级表格。
图4是框图,表现了与图1所示的范例高速缓存分配系统关联的另一个范例优先级表格。
图5是流程图,表现了图1中的该系统可以处理高速缓存分配请求的一种方式。
图6是框图,表现了可以被用来执行图1所示的该系统的范例处理器系统。
具体实施方式
虽然下文揭示了包括(在其他部件之中)在硬件上执行的软件或固件的范例系统,但是,应该注意,这类系统只是起说明的作用,而不应该被认为起限制的作用。例如,预期:任何或所有这些所揭示的硬件、软件和/或固件部件都可以专门在硬件中、专门在软件中、专门在固件中或者在硬件、软件和/或固件的某种组合中加以具体表现。
在图1和图2的例子中,所展示的高速缓存分配系统100包括优先级赋值单元110、高速缓存控制器120和高速缓存130。一般而言,优先级赋值单元110将优先级分配给来自多个引入的应用流的高速缓存分配请求210(通常被示作212、214、216和218)中的每个高速缓存分配请求。例如,优先级赋值单元110可以分配P1、P2、P3或P4的优先级——P1作为最高优先级,P4作为最低优先级。根据该优先级,高速缓存控制器120提供分配选择220,以提高高速缓存效率和性能,来适应关于高速缓存130内的高速缓存线230的高速缓存分配请求210。例如,高速缓存130可能是一级统一标准高速缓存(L1)、二级统一标准高速缓存(L2)、三级统一标准高速缓存(L3)和/或用于存储数据的任何其他合适的结构,这是掌握该技术领域的普通技能的人将会容易认识到的。
如上所述,优先级赋值单元110将优先级分配给高速缓存控制器120所接收的引入的应用流的高速缓存分配请求210中的每个高速缓存分配请求。可以使用操作系统(OS)来执行优先级赋值单元110。例如,该OS可以根据用户定义的参数,来将优先级分配给在处理器(例如,图6中的处理器1020)中运行的应用线程。当该应用线程发出存储器请求或一系列存储器请求时,该OS将优先级分配给那个应用线程。在另一个例子中,优先级赋值单元110可能是将优先级分配给该应用线程或该应用线程提出的每个存储器请求的编译器。作为选择,优先级赋值单元110可能是硬件(例如,特定用途集成电路(ASIC)),以便将优先级分配给高速缓存分配请求210中的每个高速缓存分配请求。
不管执行优先级赋值单元110的特殊方式如何,优先级赋值单元110都根据高速缓存分配请求210的性质来分配该优先级。例如,与数据相比,优先级赋值单元110可能将更高优先级分配给指令;与数据存储相比,它可能将更高优先级分配给数据负载;并且/或者,与预取和推测的存储器引导相比,它可能将更高优先级分配给命令请求。优先级赋值单元110也可能根据特定线程的该高速缓存错过率来分配该优先级。换言之,优先级赋值单元110可能维持计数器,以跟踪高速缓存分配请求210的数量和关于每个高速缓存的该错过率。根据这些计数器值,优先级赋值单元110可以将更高优先级分配给具有更高高速缓存分配请求比率、更高高速缓存错过率和/或更高命中率的线程。另外,优先级赋值单元110可以根据这些引入的应用流的起源(即这些引入的应用线程的来源的类型)来分配该优先级。例如,如果高速缓存130是中央处理器(CPU),那么,与其他设备(例如,存储控制器和/或正尝试将数据发(即推)入高速缓存130的网络设备)相比,优先级赋值单元110可以将更高优先级分配给CPU启动的高速缓存分配请求。
在图3的范例优先级表格300中,优先级赋值单元110根据这些引入的应用流,将优先级分配给高速缓存分配请求210中的每个高速缓存分配请求。也就是说,优先级赋值单元110可以将P1的优先级(即最高优先级)分配给与主要主机应用程序(例如,前端web服务)关联的引入的应用流,将P2的优先级分配给与次要主机应用程序(例如,中级工作负荷)关联的引入的应用流,将P3的优先级分配给与外围应用程序(例如,输入/输出驱动程序和/或OS线程)关联的引入的应用流,并将P4的优先级(即最低优先级)分配给与其他应用程序(例如,文字处理应用程序)关联的引入的应用流。
高速缓存控制器120将分配概率(AP)分配给每个优先级。例如,在优先级表格300中,优先级P1(即最高优先级)可以被分配100%的AP,优先级P2可以被分配75%的AP,优先级P3可以被分配50%的AP,优先级P4(即最低优先级)可以被分配25%的AP。关于每个线程请求分配,高速缓存控制器120生成零(0)与一百(100)之间的随机数,并且将该随机数与为高速缓存分配请求210中的每个高速缓存分配请求而分配的该AP进行比较。如果该AP大于该随机数,那么,高速缓存控制器120允许将高速缓存130内的那些高速缓存线分配给该请求线程。另一方面,如果该AP小于或等于该随机数,则高速缓存控制器120拒绝将高速缓存130内的高速缓存线分配给该请求线程。
关于在不同的执行阶段具有不同特征的应用程序,优先级赋值单元110可以动态地改变为高速缓存分配请求210而分配的这些优先级。在建立优先级集合(例如,如图3所示)并且为高速缓存分配请求210分配优先级之后,将高速缓存分配请求210和对应的优先级提供给高速缓存控制器120,用于处理。例如,通过要么直接将该优先级编码为该高速缓存分配请求、要么将流标识符用作进入优先级表格300的索引(优先级表格300又维持这些优先级到流类型的映射),可以提供高速缓存分配请求的该优先级。为了在运行时间期间动态地修改这些优先级,高速缓存控制器120可以更改该线程中的该优先值或者运行指令,以更新优先级表格300。
特别是,高速缓存控制器120可以根据时间间隔来将AP分配给高速缓存分配请求210中的每个高速缓存分配请求。在图4的范例优先级表格400中,高速缓存控制器120根据时间间隔来分配AP。例如,高速缓存控制器120可以将一系列时间间隔(T1、T2、T3和T4)分配给高速缓存分配请求210中的每个高速缓存分配请求。例如,时间间隔T1、T2、T3和T4中的每个时间间隔可能是一毫秒(1ms)。最初,高速缓存控制器120将这个引入的应用流放入时间间隔T1,并在经过时间T1之后进入时间间隔T2,并且循环通过这些时间间隔中的每个时间间隔,以便通过使用优先级表格400,在完成时间间隔T4之后,这个引入的应用流可返回到时间间隔T1。这样,这个引入的应用流的该AP基于该优先级和该当前时间间隔。明确地说,该AP可能是该优先级(P)和该当前时间间隔(T)的函数,以便AP=(1/P)×(1/T)×100。
如上所述,高速缓存130可以由多个引入的应用流共享。掌握该技术领域的普通技能的人将会容易认识到:高速缓存130包括高速缓存线230(即数据)和标记(即状态信息和/或替换信息)。高速缓存130的该存储空间可以被划分,以便为每个分区分配特定的优先级。然后,当向特定的存储地址提出高速缓存分配请求时,优先级赋值单元110通过将该地址位置与存储范围查找表格进行比较以便识别与那个特定的存储地址相对应的优先级,来将该优先级分配给那个高速缓存分配请求。
图3和图4所示的优先级表格300和400的这些流类型、优先级、时间间隔和AP分别特别适合四个等级中的执行,但掌握该技术领域的普通技能的人将会容易理解:可以使用任何数量的等级(例如,两个或更多)来对这些流类型、优先级、时间间隔和AP进行分类。
回头参考图1和图2,可以使用高速缓存占有率图140来提供选择性分配220,以进一步增强高速缓存控制器120。高速缓存占有率图140包括与高速缓存130内的空间利用关联的信息,该信息可以被高速缓存控制器120用来确定高速缓存130的利用。特别是,高速缓存占有率图140可能包括一个或多个计数器,以了解每个优先级在高速缓存130内所占有的高速缓存线的数量。例如,高速缓存130可能包括被相等地分派给优先级P1、P2、P3和P4中的每个优先级的一百条高速缓存线230(即,25条高速缓存线/优先级)。如果高速缓存占有率图140指出:10条高速缓存线被优先级P1的数据块占有,25条高速缓存线被优先级P2的数据块占有,但优先级P2的数据块可能需要35条高速缓存线;那么,高速缓存控制器120可能会再分派这些高速缓存线230,以适应优先级P2的这些数据块。也就是说,高速缓存控制器120可能会为优先级P1的数据块分派10条高速缓存线,为优先级P2的数据块分派35条高速缓存线。作为选择,高速缓存占有率图140可能是包括以每一集合为基础的计数器的表格。当通过高速缓存分配请求210而将线加入高速缓存130时,这些计数器递增;当驱逐或无效导致线从高速缓存130中被除去时,这些计数器递减。
图5展示了流程图500,它表现了图1中的高速缓存分配系统100可以处理高速缓存分配请求的一种方式。掌握该技术领域的普通技能的人将会理解:可以使用由处理系统执行的机器可访问的指令,来执行图5中的流程图500。特别是,可以按利用被存储在任何许多计算机可读介质(例如,易失或非易失存储器或其他海量存储设备(例如,软盘、CD和DVD))上的任何许多不同的程序码的任何许多不同的方法来执行这些指令。例如,这些机器可访问的指令可以在机器可读介质(例如,可擦可编程只读存储器(EPROM)、只读存储器(ROM)、随机存取存储器(RAM)、磁性介质、光学介质和/或任何其他合适类型的介质)中得到具体表现。
作为选择,这些机器可访问的指令可以在可编程门阵列和/或特定用途集成电路(ASIC)中得到具体表现。另外,虽然图5展示了动作的特定顺序,但是,掌握该技术领域的普通技能的人将会理解:可以按其他的时间次序来执行这些动作。再有,流程图500只是作为处理高速缓存分配请求的一种方法的例子。
流程图500始于:优先级赋值单元110将优先级分配给来自多个引入的应用流的高速缓存分配请求210中的每个高速缓存分配请求(方框510)。例如,优先级赋值单元可以根据这个引入的应用流的流类型、这个引入的应用流的源类型和/或如以上详细描述的任何其他合适的方法,来将优先级分配给该高速缓存分配请求。例如,根据优先级表格300,高速缓存控制器120识别与高速缓存分配请求210中的每个高速缓存分配请求的优先级相对应的AP(方框520)。通过使用优先级表格300和/或优先级表格400,高速缓存控制器120也可以识别与高速缓存分配请求210中的每个高速缓存分配请求的优先级和当前时间间隔相对应的AP。为了确定应该允许、还是拒绝高速缓存分配请求210,高速缓存控制器120使用基于该AP的分配条件或分流条件来识别高速缓存分配请求210中的每个高速缓存分配请求。例如,高速缓存控制器120可以生成随机数(方框530),并将该AP与该随机数进行比较(方框540)。作为选择,高速缓存控制器120可以将该AP与预定数进行比较。如果该AP大于该随机数(或该预定数),则高速缓存控制器120利用分配条件来识别高速缓存分配请求210之一,并将高速缓存130的一个部分(例如,一个或多个高速缓存线230)分配给高速缓存分配请求210(方框550)。对比而言,如果该AP小于或等于该随机数(或该预定数),则高速缓存控制器120利用分流条件来识别高速缓存分配请求210之一,并拒绝该高速缓存分配请求(方框560)。结果,当多个应用程序正共享高速缓存130时,可提高高速缓存效率和性能。
图6是适合执行这里所揭示的方法和装置的范例处理器系统1000的框图。处理器系统1000可能是台式计算机、膝上型计算机、笔记本计算机、个人数字助理(PDA)、服务器、因特网工具或任何其他类型的计算设备。
图6所展示的处理器系统1000包括芯片集1010,芯片集1010包括存储控制器1012和输入/输出(I/O)控制器1014。众所周知,芯片集通常提供存储器和I/O管理功能、以及处理器1020可获得或使用的多个通用和/或专用的寄存器、定时器等。使用一个或多个处理器来执行处理器1020。例如,可以使用英特尔奔腾技术、英特尔Itanium技术、英特尔CentrinoTM技术和/或英特尔XScale技术中的一项或多项技术来执行处理器1020。作为选择,也可以使用其他处理技术来执行处理器1020。处理器1020包括高速缓存1022,可以使用一级统一标准高速缓存(L1)、二级统一标准高速缓存(L2)、三级统一标准高速缓存(L3)和/或用于存储数据的任何其他合适的结构来执行高速缓存1022,掌握该技术领域的普通技能的人将会容易认识到这一点。
按照惯例,存储控制器1012执行允许处理器1020访问包括易失存储器1032和非易失存储器1034的主存储器1030并经由总线1040与其进行通信的功能。易失存储器1032可能由“同步动态随机存取存储器”(SDRAM)、“动态随机存取存储器”(DRAM)、“RAMBUS动态随机存取存储器”(RDRAM)和/或任何其他类型的随机存取存储设备来加以执行。可以使用快闪存储器、“只读存储器”(ROM)、“电可擦除可编程只读存储器”(EEPROM)和/或任何其他所需类型的存储设备来执行非易失存储器1034。
处理器系统1000也包括被耦合到总线1040的接口电路1050。可以使用任何类型的众所周知的接口标准(例如,以太网接口、通用串行总线(USB)、第三代输入/输出接口(3GIO)接口和/或任何其他合适类型的接口)来执行接口电路1050。
一个或多个输入设备1060与接口电路1050连接。输入设备1060允许用户将数据和命令输入处理器1020。例如,输入设备1060可以由键盘、鼠标、触控式显示器、跟踪垫、跟踪球、isopoint和/或语音识别系统来加以执行。
一个或多个输出设备1070也与接口电路1050连接。例如,输出设备1070可以由显示设备(例如,发光显示器(LED)、液晶显示器(LCD)、阴极射线管(CRT)显示器、打印机和/或扬声器)来加以执行。这样,接口电路1050通常包括(在其他事物之中)图形驱动卡。
处理器系统1000也包括用于存储软件和数据的一个或多个海量存储设备1080。这种海量存储设备1080的例子包括软盘和驱动器、硬盘驱动器、光盘和驱动器、以及数字通用光盘(DVD)和驱动器。
接口电路1050也包括通信设备(例如,调制解调器或网络接口卡),以促进经由网络而与外部计算机交换数据。处理器系统1000与该网络之间的该通信链路可能是任何类型的网络连接(例如,以太网连接、数字订户线(DSL)、电话路线、移动电话系统、同轴电缆等)。
对输入设备1060、输出设备1070、海量存储设备1080和/或该网络的使用通常由I/O控制器1014按传统方式来加以控制。特别是,I/O控制器1014执行允许处理器1020经由总线1040和接口电路1050而与输入设备1060、输出设备1070、海量存储设备1080和/或该网络进行通信的功能。
图6所示的这些部件被描绘成处理器系统1000内的单独的块,但这些块中的一些块所执行的这些功能可以被并入单一半导体电路内,或者可以使用两个或更多单独的集成电路来加以执行。例如,虽然存储控制器1012和I/O控制器1014被描绘成芯片集1010内的单独的块,但是,掌握该技术领域的普通技能的人将会容易理解:存储控制器1012和I/O控制器1014可以被并入单一半导体电路内。
这里所揭示的方法和装置特别适用于处理器高速缓存中。但是,掌握该技术领域的普通技能的人将会理解:该揭示说明的教导可以在其他合适的环境中被应用于处理高速缓存分配请求。
虽然这里已描述某些范例方法、装置和制造物品,但是,本专利的覆盖范围并不局限于此。相反,本专利包括要么在字面上、要么在相等物的教旨下完全处于所附权利要求书的范围以内的所有方法、装置和制造物品。
Claims (30)
1.一种方法,其特征在于,包括:
将优先级分配给高速缓存分配请求;
根据该优先级来识别与该高速缓存分配请求关联的分配概率;以及,
利用基于该分配概率的分配条件和分流条件之一来识别该高速缓存分配请求。
2.如权利要求1所述的方法,其特征在于,将该优先级分配给该高速缓存分配请求包括:根据流类型、源类型和高速缓存占有率图中的至少一项,来将该优先级分配给该高速缓存分配请求。
3.如权利要求1所述的方法,其特征在于,将优先级分配给该高速缓存分配请求包括:将优先级分配给与主要主机应用程序关联的高速缓存分配请求、与次要主机应用程序关联的高速缓存分配请求、以及与外围应用程序关联的高速缓存分配请求中的至少一个请求。
4.如权利要求1所述的方法,其特征在于,利用基于该分配概率的分配条件和分流条件之一来识别该高速缓存分配请求包括:将该分配概率与任意生成的数字和预定数中的至少一个数字进行比较。
5.如权利要求1所述的方法,其特征在于,利用基于该分配概率的分配条件和分流条件之一来识别该高速缓存分配请求包括:响应于大于或等于任意生成的数字和预定数中的至少一个数字的该分配概率,利用该分配条件来识别该高速缓存分配请求。
6.如权利要求1所述的方法,其特征在于,利用基于该分配概率的分配条件和分流条件之一来识别该高速缓存分配请求包括:响应于小于任意生成的数字和预定数中的至少一个数字的该分配概率,利用该分流条件来识别该高速缓存分配请求。
7.如权利要求1所述的方法,其特征在于,进一步包括:响应于利用该分配条件而识别该高速缓存分配请求,来将高速缓存的一个部分分配给该高速缓存分配请求;并且,响应于利用该分流条件而识别该高速缓存分配请求,来拒绝该高速缓存分配请求。
8.一种存储指令的机器可访问的介质,其特征在于:当被执行时,这些指令使处理系统:
将优先级分配给高速缓存分配请求;
根据该优先级来识别与该高速缓存分配请求关联的分配概率;以及,
利用基于该分配概率的分配条件和分流条件之一来识别该高速缓存分配请求。
9.如权利要求8中所定义的机器可访问的介质,其特征在于,通过根据流类型、源类型和高速缓存占有率图中的至少一项而将优先级分配给该高速缓存分配请求,当被执行时,这些指令使该机器将该优先级分配给该高速缓存分配请求。
10.如权利要求8中所定义的机器可访问的介质,其特征在于,通过将优先级分配给与主要主机应用程序关联的高速缓存分配请求、与次要主机应用程序关联的高速缓存分配请求、以及与外围应用程序关联的高速缓存分配请求中的至少一个请求,当被执行时,这些指令使该机器将该优先级分配给该高速缓存分配请求。
11.如权利要求8中所定义的机器可访问的介质,其特征在于,通过将该分配概率与任意生成的数字和预定数中的至少一个数字进行比较,当被执行时,这些指令使该机器利用该分配条件和该分流条件之一来识别该高速缓存分配请求。
12.如权利要求8中所定义的机器可访问的介质,其特征在于,通过响应于大于或等于任意生成的数字和预定数中的至少一个数字而利用该分配条件来识别该高速缓存分配请求,当被执行时,这些指令使该机器利用基于该分配概率的该分配条件和该分流条件之一来识别该高速缓存分配请求。
13.如权利要求8中所定义的机器可访问的介质,其特征在于,通过响应于小于任意生成的数字和预定数中的至少一个数字的该分配概率而利用该分流条件来识别该高速缓存分配请求,当被执行时,这些指令使该机器利用基于该分配概率的该分配条件和该分流条件之一来识别该高速缓存分配请求。
14.如权利要求8中所定义的机器可访问的介质,其特征在于,当被执行时,这些指令使该机器响应于利用该分配条件来识别该高速缓存分配请求,而将高速缓存的一个部分分配给该高速缓存分配请求;并使该机器响应于利用该分流条件来识别该高速缓存分配请求,而拒绝该高速缓存分配请求。
15.如权利要求8中所定义的机器可访问的介质,其特征在于,该机器可读介质包括可编程门阵列、特定用途集成电路、电可擦除可编程只读存储器、只读存储器、随机存取存储器、磁性介质和光学介质之一。
16.一种装置,其特征在于,包括:
高速缓存,用于存储高速缓存分配请求的一个或多个数据块;
优先级赋值单元,用于将优先级分配给高速缓存分配请求;以及,
高速缓存控制器,用于根据该优先级来识别与该高速缓存分配请求关联的分配概率,并用于利用基于该分配概率的分配条件和分流条件之一来识别该高速缓存分配请求。
17.如权利要求16中所定义的装置,其特征在于,该高速缓存分配请求包括与主要主机应用程序关联的高速缓存分配请求、与次要主机应用程序关联的高速缓存分配请求、以及与外围应用程序关联的高速缓存分配请求中的至少一个请求。
18.如权利要求16中所定义的装置,其特征在于,该优先级赋值单元包括操作系统、编译器和特定用途集成电路中的至少一项。
19.如权利要求16中所定义的装置,其特征在于,该高速缓存控制器将要根据流类型、源类型和高速缓存占有率图中的至少一项,来把该优先级分配给该高速缓存分配请求。
20.如权利要求16中所定义的装置,其特征在于,该高速缓存控制器将要将该分配概率与任意生成的数字和预定数中的至少一个数字进行比较。
21.如权利要求16中所定义的装置,其特征在于,该高速缓存控制器将要响应于大于或等于任意生成的数字和预定数中的至少一个数字的该分配概率,利用该分配条件来识别该高速缓存分配请求。
22.如权利要求16中所定义的装置,其特征在于,该高速缓存控制器将要响应于小于任意生成的数字和预定数中的至少一个数字的该分配概率,利用该分流条件来识别该高速缓存分配请求。
23.如权利要求16中所定义的装置,其特征在于,该高速缓存控制器将要响应于利用该分配条件而识别该高速缓存分配请求,来把该高速缓存的一个部分分配给该高速缓存分配请求。
24.一种处理器系统,其特征在于,包括:
静态随机存取存储器(SRAM),用于存储高速缓存分配请求的一个或多个数据块;以及,
被耦合到该SRAM的处理器,该处理器用于:
将优先级分配给高速缓存分配请求;
根据该优先级来识别与该高速缓存分配请求关联的分配概率;以及,
利用基于该分配概率的分配条件和分流条件之一来识别该高速缓存分配请求。
25.如权利要求24中所定义的处理器系统,其特征在于,该高速缓存分配请求包括与主要主机应用程序关联的高速缓存分配请求、与次要主机应用程序关联的高速缓存分配请求、以及与外围应用程序关联的高速缓存分配请求中的至少一个请求。
26.如权利要求24中所定义的处理器系统,其特征在于,该处理器将要根据流类型、源类型和高速缓存占有率图中的至少一项,来把该优先级分配给该高速缓存分配请求。
27.如权利要求24中所定义的处理器系统,其特征在于,该处理器将要将该分配概率与任意生成的数字和预定数中的至少一个数字进行比较。
28.如权利要求24中所定义的处理器系统,其特征在于,该处理器将要响应于大于或等于任意生成的数字和预定数中的至少一个数字的该分配概率,利用该分配条件来识别该高速缓存分配请求。
29.如权利要求24中所定义的处理器系统,其特征在于,该处理器将要响应于小于任意生成的数字和预定数中的至少一个数字的该分配概率,利用该分流条件来识别该高速缓存分配请求。
30.如权利要求24中所定义的处理器系统,其特征在于,该处理器将要响应于利用该分配条件而识别该高速缓存分配请求,来把该SRAM的一个部分分配给该高速缓存分配请求。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/722,884 US7103735B2 (en) | 2003-11-26 | 2003-11-26 | Methods and apparatus to process cache allocation requests based on priority |
US10/722,884 | 2003-11-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1645341A true CN1645341A (zh) | 2005-07-27 |
CN100377113C CN100377113C (zh) | 2008-03-26 |
Family
ID=34592101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100956473A Expired - Fee Related CN100377113C (zh) | 2003-11-26 | 2004-11-26 | 根据优先级来处理高速缓存分配请求的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7103735B2 (zh) |
CN (1) | CN100377113C (zh) |
TW (1) | TWI266243B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521150A (zh) * | 2011-11-28 | 2012-06-27 | 华为技术有限公司 | 一种应用程序cache分配方法及装置 |
US8250347B2 (en) | 2005-11-30 | 2012-08-21 | International Business Machines Corporation | Digital data processing apparatus having hardware multithreading support including cache line limiting mechanism for special class threads |
CN103544119A (zh) * | 2013-09-26 | 2014-01-29 | 广东电网公司电力科学研究院 | 缓存调度方法与系统及其介质 |
CN104321763A (zh) * | 2012-06-29 | 2015-01-28 | 英特尔公司 | 基于系统观察的潜在动作的概率 |
CN106250325A (zh) * | 2016-07-19 | 2016-12-21 | 中科创达软件股份有限公司 | 一种缓存优化方法和系统 |
CN113688160A (zh) * | 2021-09-08 | 2021-11-23 | 北京沃东天骏信息技术有限公司 | 数据处理方法、处理装置、电子设备及存储介质 |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006195867A (ja) * | 2005-01-17 | 2006-07-27 | Matsushita Electric Ind Co Ltd | バス調停方法及び半導体装置 |
US8516226B1 (en) * | 2006-01-23 | 2013-08-20 | Hewlett-Packard Development Company, L.P. | Executing a prefetching policy responsive to entry into an execution phase of an application |
US7502890B2 (en) * | 2006-07-07 | 2009-03-10 | International Business Machines Corporation | Method and apparatus for dynamic priority-based cache replacement |
US7899994B2 (en) * | 2006-08-14 | 2011-03-01 | Intel Corporation | Providing quality of service (QoS) for cache architectures using priority information |
US7552288B2 (en) * | 2006-08-14 | 2009-06-23 | Intel Corporation | Selectively inclusive cache architecture |
US8255915B1 (en) | 2006-10-31 | 2012-08-28 | Hewlett-Packard Development Company, L.P. | Workload management for computer system with container hierarchy and workload-group policies |
US7774563B2 (en) * | 2007-01-09 | 2010-08-10 | International Business Machines Corporation | Reducing memory access latency for hypervisor- or supervisor-initiated memory access requests |
US8195886B2 (en) * | 2007-03-16 | 2012-06-05 | Arm Limited | Data processing apparatus and method for implementing a replacement scheme for entries of a storage unit |
US7725657B2 (en) * | 2007-03-21 | 2010-05-25 | Intel Corporation | Dynamic quality of service (QoS) for a shared cache |
US7921276B2 (en) * | 2007-03-21 | 2011-04-05 | Intel Corporation | Applying quality of service (QoS) to a translation lookaside buffer (TLB) |
US8024731B1 (en) * | 2007-04-25 | 2011-09-20 | Apple Inc. | Assigning priorities to threads of execution |
US7769955B2 (en) * | 2007-04-27 | 2010-08-03 | Arm Limited | Multiple thread instruction fetch from different cache levels |
US7991956B2 (en) * | 2007-06-27 | 2011-08-02 | Intel Corporation | Providing application-level information for use in cache management |
US8886918B2 (en) * | 2007-11-28 | 2014-11-11 | International Business Machines Corporation | Dynamic instruction execution based on transaction priority tagging |
US20090138683A1 (en) * | 2007-11-28 | 2009-05-28 | Capps Jr Louis B | Dynamic instruction execution using distributed transaction priority registers |
US8250304B2 (en) * | 2007-12-03 | 2012-08-21 | International Business Machines Corporation | Cache memory device and system with set and group limited priority and casting management of I/O type data injection |
US20090165004A1 (en) * | 2007-12-21 | 2009-06-25 | Jaideep Moses | Resource-aware application scheduling |
US7802057B2 (en) * | 2007-12-27 | 2010-09-21 | Intel Corporation | Priority aware selective cache allocation |
US8250302B2 (en) * | 2008-01-31 | 2012-08-21 | Hewlett-Packard Development Company, L.P. | Cache management using sampled values assigned to a request |
FR2931968B1 (fr) * | 2008-06-02 | 2012-11-30 | Alcatel Lucent | Procede et equipement de stockage de donnees en ligne |
JP5224959B2 (ja) * | 2008-07-29 | 2013-07-03 | 株式会社東芝 | キャッシュシステム |
US8769201B2 (en) * | 2008-12-02 | 2014-07-01 | Intel Corporation | Technique for controlling computing resources |
US20110072218A1 (en) * | 2009-09-24 | 2011-03-24 | Srilatha Manne | Prefetch promotion mechanism to reduce cache pollution |
US20110113200A1 (en) * | 2009-11-10 | 2011-05-12 | Jaideep Moses | Methods and apparatuses for controlling cache occupancy rates |
US8990506B2 (en) * | 2009-12-16 | 2015-03-24 | Intel Corporation | Replacing cache lines in a cache memory based at least in part on cache coherency state information |
US8595451B2 (en) | 2010-11-04 | 2013-11-26 | Lsi Corporation | Managing a storage cache utilizing externally assigned cache priority tags |
US8776061B2 (en) * | 2010-12-16 | 2014-07-08 | International Business Machines Corporation | Real-time distributed monitoring of local and global processor resource allocations and deallocations |
US20120198267A1 (en) | 2011-01-31 | 2012-08-02 | Srinjoy Das | System and Method for Facilitating Data Transfer Between a First Clock Domain and a Second Clock Domain |
US8898390B2 (en) | 2011-03-08 | 2014-11-25 | Intel Corporation | Scheduling workloads based on cache asymmetry |
KR20130131135A (ko) * | 2012-05-23 | 2013-12-03 | 삼성전자주식회사 | QoS 기반 캐시 컨트롤러 및 그 동작 방법 |
US9390010B2 (en) * | 2012-12-14 | 2016-07-12 | Intel Corporation | Cache management |
US9251069B2 (en) * | 2012-12-21 | 2016-02-02 | Advanced Micro Devices, Inc. | Mechanisms to bound the presence of cache blocks with specific properties in caches |
US9977730B2 (en) | 2015-05-08 | 2018-05-22 | Dell Products, Lp | System and method for optimizing system memory and input/output operations memory |
US10120809B2 (en) | 2015-09-26 | 2018-11-06 | Intel Corporation | Method, apparatus, and system for allocating cache using traffic class |
US10223278B2 (en) | 2016-04-08 | 2019-03-05 | Qualcomm Incorporated | Selective bypassing of allocation in a cache |
US10114761B2 (en) * | 2017-02-24 | 2018-10-30 | ATI Technologies ULC. | Sharing translation lookaside buffer resources for different traffic classes |
CN109033577B (zh) * | 2018-07-11 | 2022-11-08 | 深圳市新威尔电子有限公司 | 基于LabVIEW的电化学工作站控制方法、上位机及存储介质 |
KR102653373B1 (ko) * | 2018-09-13 | 2024-04-02 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
US10922231B1 (en) * | 2020-10-22 | 2021-02-16 | Open Drives LLC | Systems and methods that predictively read ahead different amounts of data for different content stored in a multi-client storage system |
TWI746261B (zh) | 2020-11-12 | 2021-11-11 | 財團法人工業技術研究院 | 基於對話類型的快取管理方法及系統 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5440752A (en) * | 1991-07-08 | 1995-08-08 | Seiko Epson Corporation | Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU |
US5875464A (en) * | 1991-12-10 | 1999-02-23 | International Business Machines Corporation | Computer system with private and shared partitions in cache |
US5539893A (en) * | 1993-11-16 | 1996-07-23 | Unisys Corporation | Multi-level memory and methods for allocating data most likely to be used to the fastest memory level |
US5913215A (en) * | 1996-04-09 | 1999-06-15 | Seymour I. Rubinstein | Browse by prompted keyword phrases with an improved method for obtaining an initial document set |
US5983313A (en) * | 1996-04-10 | 1999-11-09 | Ramtron International Corporation | EDRAM having a dynamically-sized cache memory and associated method |
US6601151B1 (en) * | 1999-02-08 | 2003-07-29 | Sun Microsystems, Inc. | Apparatus and method for handling memory access requests in a data processing system |
US6434673B1 (en) * | 2000-06-30 | 2002-08-13 | Intel Corporation | Optimized configurable scheme for demand based resource sharing of request queues in a cache controller |
US6643747B2 (en) * | 2000-12-27 | 2003-11-04 | Intel Corporation | Processing requests to efficiently access a limited bandwidth storage area |
US7640547B2 (en) * | 2002-02-08 | 2009-12-29 | Jpmorgan Chase & Co. | System and method for allocating computing resources of a distributed computing system |
US6857046B1 (en) * | 2002-03-28 | 2005-02-15 | Cisco Technology, Inc. | Caching for context switching applications |
JP2004302751A (ja) * | 2003-03-31 | 2004-10-28 | Hitachi Ltd | 計算機システムの性能管理方法、および、記憶装置の性能を管理する計算機システム |
-
2003
- 2003-11-26 US US10/722,884 patent/US7103735B2/en not_active Expired - Fee Related
-
2004
- 2004-11-15 TW TW093134985A patent/TWI266243B/zh not_active IP Right Cessation
- 2004-11-26 CN CNB2004100956473A patent/CN100377113C/zh not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8250347B2 (en) | 2005-11-30 | 2012-08-21 | International Business Machines Corporation | Digital data processing apparatus having hardware multithreading support including cache line limiting mechanism for special class threads |
CN102521150A (zh) * | 2011-11-28 | 2012-06-27 | 华为技术有限公司 | 一种应用程序cache分配方法及装置 |
CN102521150B (zh) * | 2011-11-28 | 2014-10-08 | 华为技术有限公司 | 一种应用程序cache分配方法及装置 |
CN104321763A (zh) * | 2012-06-29 | 2015-01-28 | 英特尔公司 | 基于系统观察的潜在动作的概率 |
CN103544119A (zh) * | 2013-09-26 | 2014-01-29 | 广东电网公司电力科学研究院 | 缓存调度方法与系统及其介质 |
CN103544119B (zh) * | 2013-09-26 | 2016-08-24 | 广东电网公司电力科学研究院 | 缓存调度方法与系统 |
CN106250325A (zh) * | 2016-07-19 | 2016-12-21 | 中科创达软件股份有限公司 | 一种缓存优化方法和系统 |
CN106250325B (zh) * | 2016-07-19 | 2019-11-19 | 中科创达软件股份有限公司 | 一种缓存优化方法和系统 |
CN113688160A (zh) * | 2021-09-08 | 2021-11-23 | 北京沃东天骏信息技术有限公司 | 数据处理方法、处理装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20050114605A1 (en) | 2005-05-26 |
CN100377113C (zh) | 2008-03-26 |
TW200525432A (en) | 2005-08-01 |
US7103735B2 (en) | 2006-09-05 |
TWI266243B (en) | 2006-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100377113C (zh) | 根据优先级来处理高速缓存分配请求的方法和装置 | |
TWI694339B (zh) | 一種區塊鏈共識方法、設備及系統 | |
US9898338B2 (en) | Network computer system and method for dynamically changing execution sequence of application programs | |
US9904337B2 (en) | Affinity-aware parallel zeroing of pages in non-uniform memory access (NUMA) servers | |
US7185167B2 (en) | Heap allocation | |
US20060010449A1 (en) | Method and system for guiding scheduling decisions in clusters of computers using dynamic job profiling | |
US20110219373A1 (en) | Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform | |
KR20170139872A (ko) | 멀티 테넌트 기반의 서비스 제공 시스템 및 방법 | |
US10560537B2 (en) | Function based dynamic traffic management for network services | |
US11231852B2 (en) | Efficient sharing of non-volatile memory | |
US8578388B2 (en) | Optimizing the performance of hybrid CPU systems based upon the thread type of applications to be run on the CPUs | |
US9471387B2 (en) | Scheduling in job execution | |
US8327111B2 (en) | Method, system and computer program product for batched virtual memory remapping for efficient garbage collection of large object areas | |
WO2019024235A1 (zh) | 电子装置、服务器分配控制方法和计算机可读存储介质 | |
US8769201B2 (en) | Technique for controlling computing resources | |
CN103049328A (zh) | 计算机系统中内存资源分配方法 | |
US11797355B2 (en) | Resolving cluster computing task interference | |
US20150106522A1 (en) | Selecting a target server for a workload with a lowest adjusted cost based on component values | |
KR20140077769A (ko) | 적응형 자원 할당 및 관리 방법 | |
CN110838987B (zh) | 队列限流方法、存储介质 | |
US20030065702A1 (en) | Cache conscious load balancing | |
CN105677481A (zh) | 一种数据处理方法、系统及电子设备 | |
JP2018190355A (ja) | リソース管理方法 | |
US20140149691A1 (en) | Data processing system and data processing method | |
Lee et al. | Compressed and shared swap to extend available memory in virtualized consumer electronics |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080326 Termination date: 20131126 |