CN104750460B - 超线程微处理器中经线程优先级提供服务质量 - Google Patents
超线程微处理器中经线程优先级提供服务质量 Download PDFInfo
- Publication number
- CN104750460B CN104750460B CN201510182451.6A CN201510182451A CN104750460B CN 104750460 B CN104750460 B CN 104750460B CN 201510182451 A CN201510182451 A CN 201510182451A CN 104750460 B CN104750460 B CN 104750460B
- Authority
- CN
- China
- Prior art keywords
- processing element
- priority level
- offset mode
- thread
- priority
- 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.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 claims abstract description 141
- 238000000034 method Methods 0.000 claims abstract description 23
- 230000015654 memory Effects 0.000 claims description 48
- 238000003860 storage Methods 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 10
- 238000003780 insertion Methods 0.000 claims 1
- 230000037431 insertion Effects 0.000 claims 1
- 238000004064 recycling Methods 0.000 claims 1
- 239000011800 void material Substances 0.000 claims 1
- 239000000872 buffer Substances 0.000 description 10
- 238000009826 distribution Methods 0.000 description 7
- 238000013519 translation Methods 0.000 description 5
- 230000014616 translation Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 238000010187 selection method Methods 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- CNQCVBJFEGMYDW-UHFFFAOYSA-N lawrencium atom Chemical compound [Lr] CNQCVBJFEGMYDW-UHFFFAOYSA-N 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000003754 machining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/507—Low-level
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明的名称是超线程微处理器中经线程优先级提供服务质量,描述了基于优先级在多处理元件环境中提供服务质量的方法和设备。诸如保留站和流水线等资源耗用偏向更高优先级处理元件。在保留站中,掩码元件设为向更高优先级处理元件提供到更多保留条目的访问。在流水线中,偏置逻辑提供优选比率以便为流水线中的进一步处理选择高优先级处理元件。
Description
技术领域
本发明涉及处理器领域,并且具体地说,涉及向优先级处理元件提供服务质量。
背景技术
半导体加工和逻辑设计的发展允许增加可在集成电路器件上存在的逻辑量。因此,计算机系统配置已从系统中单个或多个集成电路发展到在各个集成电路上存在的多个核和多个逻辑处理器。处理器或集成电路一般包括单个处理器芯片,其中处理器芯片可包括任意数量的处理元件,如核、线程和/或逻辑处理器。
在具有多线程的处理器中,由于资源和流水线共享的原因,一个线程的行为可能影响同一处理器核上另一线程的行为。一个线程的行为经常在共享资源和流水线使用上造成不公平。实际上,在一个线程的性能相对于同一核中其它线程发生相当大变化时,经常从共享资源的不平衡使用引起性能方面出现大的不可预测变化性。
线程经常是执行软件实体,从系统级和用户级角度两者而言,它们在其优先级别方面不同。最高优先级软件实体经常包括具有最终期限的应用程序,如媒体应用程序。例如,如果执行媒体应用程序的第一线程受到在后台执行病毒扫描的另一线程的不利影响,用户可能会遇到跳跃和小故障,这降低了性能。
以前的工作致力于保持线程之间的公平。然而,对处理资源的公平访问可能不足以保证更高优先级线程/软件实体的服务质量。继续上面的示例,第一和第二线程对处理资源的公平访问可能不足以确保媒体应用程序顺利运行。因此,更高优先级线程/应用程序可能需要更大的不公平的资源量以确保有效的执行。
发明内容
根据本发明的一个方面提供了一种设备,包括:
第一处理元件;
第二处理元件;
存储区域,保存与所述第一处理元件相关联的第一优先级别和与所述第二处理元件相关联的第二优先级别;以及
控制逻辑,将所述第一处理元件与保留资源第一部分相关联,并将所述第二处理元件与所述保留资源第二部分相关联,其中,响应于所述第一优先级别高于所述第二优先级别,所述第一部分大于所述第二部分。
根据本发明的另一个方面还提供了另一种设备,包括:
处理器,包括由至少第一和第二处理元件共享的流水线,其中所述处理器又包括:
存储区域,保存与所述第一处理元件相关联的第一优先级别和与所述第二处理元件相关联的第二优先级别;
选择逻辑,为在所述流水线中的进一步处理选择所述第一处理元件或所述第二处理元件;以及
偏置逻辑,根据所述第一优先级别是比所述第二优先级别更高的优先级,将所述选择逻辑偏向所述第一处理元件。
根据本发明的又一方面提供了一种方法,包括:
在第一存储元件中存储与处理器第一处理元件相关联的第一优先级别并在第二存储元件中存储与所述处理器第二处理元件相关联的第二优先级别;
确定所述第一优先级别是否为比所述第二优先级别更高的优先级别;
根据所述第一优先级别是比所述第二优先级别更高的优先级别,使处理资源耗用偏向所述第一处理元件。
附图说明
本发明通过示例描述,并不限于附图的图形。
图1示出能够基于优先级在多个处理元件中提供服务质量的处理器实施例。
图2a示出能够基于优先级分配条目到处理元件的保留单元实施例。
图2b示出基于优先级别比较将保留条目分配到处理元件的逻辑实施例。
图3a示出包括偏置逻辑以将流水线耗用偏向更高优先级处理元件的实施例流水线。
图3b示出将流水线耗用偏向更高优先级处理元件的偏置逻辑实施例。
图4示出基于优先级将处理资源耗用偏向某个处理元件的方法流程图实施例。
图5示出基于优先级将共享流水线耗用偏向某个处理元件的方法流程图实施例。
具体实施方式
在下面的说明中,陈述了许多特定的细节,如在处理元件之间提供服务质量的特定偏置逻辑实施例、特定处理器组织、特定流水线级等示例,以便提供本发明的详尽理解。但是,本领域的技术人员将明白,实践本发明可无需采用这些特定细节。在其它实例中,诸如流水线的各种变化、空周期检测、处理元件识别、处理元件选择及微处理器特定操作细节等熟知的组件或方法未详细描述,以免不必要地混淆本发明。
本文所述方法和设备用于基于优先级向处理元件提供服务质量。具体而言,主要参照具有多线程的微处理器论述提供服务质量。但是,提供服务质量的方法和设备并不限于此,因为它们可在任何集成电路器件或系统上实现或与其相关联,如蜂窝电话、个人数据助理、嵌入式控制器、移动平台、桌面平台和服务器平台,以及与任何类型的处理元件结合实现,如核、硬件线程、软件线程、逻辑处理器或其它处理元件。
参照图1,示出了能够基于优先级,向处理元件提供服务质量的处理器实施例。处理元件指线程、进程、上下文、逻辑处理器、硬件线程、核和/或任何处理元件,共享对诸如保留单元、执行单元、流水线和更高级高速缓存/存储器等处理器资源的访问。例如,处理元件指要在硬件线程或物理处理器核上执行的软件线程。如下所述,诸如软件线程的处理元件可与某个优先级别相关联。物理处理器一般指集成电路,它可能包括任何数量的其它处理元件,如核或硬件线程。
核通常指位于能够保持独立架构状态(如架构状态101和102) 的集成电路上的逻辑,其中每个独立保持的架构状态与至少一些专用执行资源相关联。与核不同,硬件线程一般指位于能够保持独立架构状态的集成电路上的任何逻辑,其中独立保持的架构状态共享对执行资源的访问。
正如可看到的一样,在某些资源共享,而其它资源专用于某种架构状态时,硬件线程与核的名称之间的界线重叠。然而,核和硬件线程经常被操作系统视为单独的逻辑处理器,这种情况下,操作系统能够单独调度每个逻辑处理器上的操作。换而言之,软件将物理处理器上的两个核或线程视为两个独立的处理器。此外,每个核可能包括用于执行多个软件线程的多个硬件线程。因此,处理元件包括能够保持上下文的任何上述元件,如核、线程、硬件线程、虚拟机或其它资源,它们共享对诸如共享流水线或共享保留单元/站的处理器共享资源的访问。
在一个实施例中,处理器100是能够并行执行多个线程的多线程处理器。此处,第一线程与架构状况寄存器101相关联,第二线程与线程102相关联。因此,下面线程101和102分别指第一和第二线程。线程101和102共享对保留单元的访问,这些单元可分布在处理器100 中或位于诸如调度程序/执行模块140或重命名/分配器模块130等单元中。存储元件103和104均要保存分别与线程101和102相关联的优先级别。如下所述,在一个实施例中,基于线程101和102的优先级别,部分保留单元能够专用于每个线程,在两个线程中共享,或者被保留,即,不与任一线程相关联。
另外,流水线或诸如流水线前端或指令解码部分等部分流水线由线程101和102共享。此处,在一个实施例中,流水线或部分流水线能够基于优先级别向线程101和102提供服务质量。
如图所示,架构状况寄存器101在架构状况寄存器102中复制,以便各个架构状态/上下文能够存储用于逻辑处理器101和逻辑处理器102。诸如指令指针和重命名分配器逻辑130中的重命名逻辑等其它更小的资源也可复制用于线程101和102。诸如重排序/退役单元135 中的重排序缓冲器、ILTB 120、加载/存储缓冲器及队列等一些资源可通过分区共享。但诸如通用内部寄存器、页表基址寄存器、低级数据高速缓存和数据TLB 150、执行单元140及失序(out-of-order)单元135等资源可能完全共享。注意,如下所述,存储元件103和104可包括在单个物理存储区域内及位于硬件线程物理结构外。
总线接口模块105与处理器100外的器件通信,如系统存储器 175、芯片集、北桥或其它集成电路。存储器175可专用于处理器100 或与系统中的其它器件共享。存储器175的示例包括动态随机存取存储器(DRAM)、静态RAM(SRAM)、非易失性存储器(NV存储器)和长期储存。
一般情况下,总线接口单元105包括输入/输出(I/O)缓冲器以发送和接收互连170上的总线信号。互连170的示例包括射电收发逻辑电路(GTL)总线、GTL+总线、双倍数据率(DDR)总线、泵式总线、差分总线、高速缓存一致总线、点对点总线、多点总线或实现任何熟知总线协议的其它熟知的互连。如图所示的总线接口单元105也要与更高级高速缓存110通信。
更高级或更进一步的高速缓存110要用于在元件上为最近获取和/ 或操作的内容进行高速缓存。注意,更高级或更进一步指高速缓存级增大,或者从执行单元得到另外的通路。在一个实施例中,更高级高速缓存110是二级数据高速缓存。但是,更高级高速缓存110并不限于此,它可以是或者包括指令高速缓存,该缓存也可称为跟踪高速缓存。跟踪高速缓存可在解码器125后耦合以存储最近解码指令。模块 120也可能包括预测要执行/使用的分支的分支目标缓冲器和存储指令的地址转换条目的指令转换缓冲器(I-TLB)。此处,能够推测执行的处理器可能预取和推测执行预测分支。
解码模块125耦合到取指令单元120以将取指令的元件解码。在一个实施例中,处理器100与定义/指定在处理器100上可执行指令的指令集架构(ISA)相关联。此处,ISA识别的机器代码指令通常包括称为操作码的部分指令,操作码参考/指定要执行的指令或操作。
在一个示例中,分配器和重命名器块130包括分配器以保留资源,如存储指令处理结果的寄存器文件。但是,线程101可能能够失序执行,这种情况下,分配器和重命名器块130也保留其它资源,如重排序缓冲器以跟踪指令结果。单元130也可包括寄存器重命名器以将程序/指令参考寄存器重命名为处理器100内部的其它寄存器。重排序/ 退役单元135包括支持失序执行和以后失序执行的指令有序退役的组件,如上述重排序缓冲器、加载缓冲器和存储缓冲器。
在一个实施例中,调度程序和执行单元块140包括在执行单元上调度指令/操作的调度程序单元。实际上,指令/操作可能是在执行单元上根据其类型可用性调度。例如,浮点指令在具有可用浮点执行单元的执行单元端口上调度。与执行单元相关联的寄存器文件也包括在内,以存储信息指令处理结果。示范执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元及其它熟知的执行单元。
更低级数据高速缓存和数据转换缓冲器(D-TLB)150耦合到执行单元140。数据高速缓存要在元件上存储最近使用/操作的内容,如数据运算符,这些内容可能以存储器相干状态保存,如已修改、独占、共享和无效(MESI)状态。D-TLB要用于存储最近的虚拟/线性到物理地址转换。以前,D-TLB条目包括虚拟地址、物理地址和其它信息,如偏移等,以便为最近使用的虚拟存储器地址提供便宜的转换。
在图1中,处理器100示为具有两个逻辑处理器的微处理器,即,两个硬件线程,其中,诸如保留单元和流水线等某些共享资源能够基于优先级向两个线程提供服务质量。但是,处理器100并不限于此。例如,处理器100可以为任何处理元件,如嵌入式处理器、单元处理器、微处理器或其它熟知处理器,包括能够执行多个上下文、线程、虚拟机等的任意数量的多个核/线程。
另外,为处理器100示出了处理器失序的简单图示微架构。但是,处理器100中所示任何模块/单元可以不同顺序/方式配置,可不包括在内及可与包括驻留在多个模块中的部分组件的另一模块/单元重叠。例如,保留单元可分布在处理器100中,而处理器在处理器100不同模块中包括多个更小的保留表。
转到图2a,它示出了能够基于优先级,向处理元件提供服务质量的保留单元实施例。此处,保留单元200包括保留条目201-210。例如,保留单元包括36个条目;但是任何数量的条目均可包括。条目的示范范围包括从8个条目到128个条目的范围。
在一个实施例中,保留条目要用于保存指令信息。注意,在许多架构中,指令细分成多个微操作(micro-ops)。因此,指令信息的使用也包括微操作信息。指令信息的示例包括保留信息、相关性信息、指令识别信息、结果信息、调度信息和与指令或微操作、资源保留和 /或保留条目相关联的任何其它信息。
例如,如果参考第一指令的第一条目取决于第二指令,则第一条目包括相关性信息以指示它取决于第二指令。因此,第一指令在第二指令后才被调度执行。此外,第二指令的结果可保存在第一条目中,即与取决于第二指令结果的第一指令相关联的条目。
处理元件220和230共享对保留单元200的访问。存储区域可包括在内以保存与第一处理元件(PE)220相关联的第一优先级别和与第二处理元件(PE)230相关联的第二优先级别。存储区域可包括处理器中的任何存储区域,如高速缓存、寄存器或其它存储器件。在一个实施中,存储区域包括保存与处理元件220相关的第一优先级别的存储元件225和保存与处理元件230相关联的第二优先级别的存储元件 235。
存储元件包括存储诸如表示优先级别的逻辑值等信息的任何元件。存储元件的示例包括上下文特定配置寄存器、上下文特定控制寄存器、机器状态寄存器(MSR)、架构控制寄存器、架构状况寄存器及通用控制寄存器。
第一和第二优先级别可包括与处理元件或软件实体相关联的任何优先级别。例如,有两个优先级别,即,高优先级别和低优先级别。诸如媒体应用程序和操作系统代码等某些类型软件实体可设计为高优先级,而诸如病毒扫描软件等其它软件实体可设计为低优先级。在利用两个优先级别时,存储元件225和235中单个比特可用于表示每个优先级别。但是,优先级别不限于两个优先级别。实际上,可利用任何数量的优先级别或优先级分层结构。例如,可利用两个比特表示的四个优先级别。
在一个实施例中,诸如操作系统(OS)、管理程序、应用程序或代码段要用于确定处理元件的优先级别。例如,知晓在PE 220和230 上执行软件实体的管理程序或OS基于每个软件实体相互比较的重要性将第一优先级别分配并写入存储元件225,并将第二优先级别分配兵马入存储元件235。
又如,OS或管理程序响应于新上下文到PE 220中的上下文切换,将与新上下文相关联的优先级别交换到存储元件225。此处,存储元件225是线程特定控制寄存器,专用于PE220。在新线程交换到核/ 硬件线程220时,OS或管理程序写入线程特定的控制寄存器225。此外,要在PE 220上执行的应用程序可被授予足够的特权级别以在PE 220中设置其自己的优先级。
在另一实施例中,存储元件225是架构控制/状态寄存器或其它控制寄存器,响应于上下文交换而不是软件实体写入寄存器225自动设置。此处,硬件或其它代码可确定要交换到PE 220中的上下文优先级别。在上下文切换发生时,存储元件225的内容会自动设置。
控制模块/逻辑240要用于将处理元件220与保留资源的第一部分,即,保留单元200相关联,并且将处理元件230与保留资源的第二部分相关联。基于处理元件220和230的优先级别,改变保留单元 200的耗用以提供服务质量。此处,诸如处理元件220的处理元件优先级高于诸如处理元件230的另一处理元件时,与PE 230相比,PE 220 分配到更多保留条目。例如,在保留单元200包括36个条目时,20 个条目专用于PE 220,8个条目专用于PE230,并且8个条目在PE 220 与230之间共享。
存储元件221和231示为在控制逻辑240外,但它们也可包括在控制逻辑240内。另外,控制逻辑240可以分布在包括处理元件220 和230的整个处理器内。PE 220与存储元件221相关联,并且PE 230 与存储元件231相关联。在一个实施例中,存储元件221和231是管理程序或操作系统看不到的寄存器。在另一实施例中,存储元件221 和231是屏蔽寄存器,可能向用户显示为机器特定寄存器(MSR);但是,它们也可以是用户级看不到的屏蔽寄存器,并且只可由诸如控制逻辑240、操作系统、管理程序或BIOS等执行程序看到。
掩码221中的条目或字段与第一数量的保留条目相关联。如图所示,字段222与两个条目相关联,即,条目201和202。但是,一个字段或任何数量的比特/字段可与任何数量的保留条目相关联。例如,在字段与条目之间可存在一对一关系,或者在字段与条目之间可存在一对二、一对三、一对四或其它比率。
此处,在字段222保存第一值,如逻辑1时,条目201和202与 PE 220相关联。换而言之,在字段222保存第一值时,PE 220可利用在保留单元200中的条目201和202。此外,在诸如条目223的条目保存第二值,如逻辑0时,PE 220不与对应的条目207和208相关联。因此,PE 220不能利用条目207和208。存储元件231与PE 230相关联。类似于字段222,存储元件231中的字段232也与条目201和202 相关联。但是,如图所示,字段232保存第二值,即逻辑0,以指示 PE 230不与条目201和202相关联。换而言之,条目201和202专用于PE 220,字段222指示PE 220可访问条目201和202,而条目232 指示PE 230不可访问条目201和202。
如图所示,掩码221和231的组合指示条目201-206专用于PE 220,条目207-208专用于PE 230,并且条目209-210与PE 220和PE 230均相关联。因此,如图所示,PE 220相关联的优先级别高于PE 230,这在存储元件225和235守指示。此处,通过允许PE 220访问10个保留条目中的8个条目,而更低优先级PE 230只能够访问10个条目中的4个条目,服务质量提供到处理元件220,即,更高优先级处理元件。此外,PE 220具有6个专用条目,而PE 230只具有2个专用条目。
注意,掩码221和231可随时动态更新。例如,在产生新线程时,条目可动态专用于新线程。相反,在终止线程时,专用条目可从该线程解除分配,并返回当前包括条目209-210的共用池,或者专用于另一处理元件。此外,条目可保留用于两个处理元件的调试或其它目的。虽然未示出,但如果条目224和234均包括逻辑0,则线程220和线程230均不与条目209-210相关联。
另外,在上下丈中交换到某个处理元件时,如PE 220,控制逻辑240可重新评估优先级并相应地更改掩码221和231。在一个实施例中,PE 220表示比PE 230更低优先级的情况下,掩码221和231更新为提供更多保留条目到PE 230。在另一实施例中,掩码231即更高优先级掩码,可更新为从条目209-210共享条目池中提供更多条目到 PE 230。此外,掩码221可更新为向共享条目池返回一些专用条目,即201-206。
现参照图2b,它示出了控制模块/逻辑240的实施例。虽然如图所示,掩码221和231均可更新以向更高优先级PE提供服务质量,但更低优先级掩码用于确保高优先级处理服务质量。换而言之,如图 2所示,不是通过更新高优先级掩码添加由高优先级处理元件对条目的访问,而是通过更新低优先级掩码从低优先级处理元件解除条目分配或者移去条目。
例如,假设图2a的存储元件225指示PE 220优先级比PE 230低,这在存储元件235中指示。但是,最初掩码221和231设为图2a中所示的值,这为PE 220提供的条目多于PE230。图2b中的控制逻辑 240确定PE 230优先级更高,并为PE 220实施低优先级掩码以确保高优先级PE 230从保留站接收适当的服务质量。基本上,复用器270 和271要用于基于PE220和230的优先级驱动最终掩码。在所示示例中,如果PE 220优先级更高,则复用器270选择掩码250,并且如果 PE 220优先级更低,则选择备选“与”值。在一个实施例中,复用器270和271的输出要用于驱动图2a的掩码221和231。在另一实施例中,复用器270和271的输出返回给掩码250和251,掩码250和251 有效地作为最终掩码221和231工作以确定保留条目分配。
为预排说明性示例,逻辑260确定PE 230优先级是否高于PE 220。在一个实施例中,比较逻辑将在存储元件235中存储的优先级别与存储元件225中存储的优先级别进行比较。此处,处理元件230优先级更高,即,逻辑260中的语句为真,并且逻辑266的语句为真。因此,逻辑1从逻辑260发迭到反相器261/与门263以及从逻辑266发送到与门262和与门263。反相器261的反转(invert)输出,即逻辑0和逻辑266的逻辑1作为到与门262的输入。从260和266的逻辑1作为到与门263的输入。与门262将0输出到复用器271,以便从控制寄存器251为PE 230选择最初掩码值。换而言之,默认掩码值用于高优先处理元件。
与此相反,与门263的输出向复用器270提供逻辑1,复用器选择与门264的输出,即,在低优先级掩码255与PE 220的掩码控制寄存器250之间执行与运算的结果。换而言之,在掩码控制寄存器250 上施加低优先级掩码。此处,通过施加低优先级掩码,从诸如PE 220的低优先级处理元件解除条目的分配。此外要注意的是,在PE 220 优先级更高时,在处理元件230的控制寄存器251上施加更低优先级掩码255。在图2b所示的示例只示出两个处理元件。然而,类似的逻辑可用于为任何数量的处理元件更新任何数量的掩码。此外,可通过高优先级掩码添加条目到高优先级PE,即,在逻辑1中的或操作,通过低优先级掩码从低优先级PE减少条目,通过在两个掩码上的操作或者其组合重新分布条目。
回到图2a,在未示出的另一实施例中,存储元件221和231包括保存当前分别可由PE 220和230使用的条目的数量的计数器。在分配新指令或微操作到保留单元200中时,如果使用的当前条目数量低于阈值,则PE会分配到条目。在分配条目时,计数器会增大,并且在解除条目分配时,计数器会减小。因此,对于更高优先级处理元件,阈值可设得更高,和/或对于更低处理元件,可设得更低。
上面的示例分别利用逻辑1和逻辑0作为第一和第二值。但是,任何值可保存在字段中以指示相关联资源是否与保留条目相关联。此外,可能有与任何数量处理元件相关联的任何数量的存储元件,这些元件示为线程,但可包括共享对保留单元200访问的任何资源。
转到图3a,它示出了能够基于优先级,向线程提供服务质量的流水线实施例。虽然示出的是线程,但可包括共享流水线的任何处理元件。流水线经常指串联耦合在一起的若干个元件或级,其中,一个级的输出是下一个级的输入。例如,简化的流水线包括四个级:取指令、解码、失序执行和退役。注意,流水线330包括任何数量的级。另外,流水线330可表示诸如前端部分、后端部分或其它部分等部分流水线及整个流水线。级310-325包括任何熟知的流水线级,如资源选择、指令解码、分配、重命名、执行、退役或其它流水线级。
如图所示的选择级310要用于为在流水线330中的进一步处理选择线程301或线程302。以前,在假设流水线中未发生停止或其它事件的情况下,选择级310将选择最后选定线程的反转,以便线程301 和302将在每个其它周期被选定。
在一个实施例中,偏置逻辑305要用于将选择逻辑偏向更高优先级线程。例如,存储元件303为线程301保存第一优先级别,并且存储元件304为线程302保持第二较低优先级别。因此,偏置逻辑305 将选择逻辑偏向线程301,或换而言之,偏离线程302。在一个实施例中,偏置逻辑305在一段时间内向选择逻辑310提供线程优选比率以使选择逻辑310偏向线程301。此处,偏向线程301包括为线程301 提供比线程302更多优选到选择逻辑310。例如,优选线程301对线程302的比率6∶2提供到选择逻辑310。其它的比率示例包括3∶1、4∶1、 5∶2和8∶0。虽然,提供了特定的比率示例,但任何优选比率或模式可提供到选择逻辑310。另外,在多于两个线程共享对流水线330的访问时,可提供不同的优选级别。此处,偏向更高优选线程包括用于该线程的优选值比更低优先级线程更多。
转到图3b,它示出了偏置逻辑305的实施例。此处,线程优先级偏置模式寄存器355是可配置长度反馈寄存器,在一段时间内注入一种线程优选模式。例如,偏置模式寄存器355的逻辑0表示诸如线程 301的第一线程的优选,逻辑1表示诸如线程302的第二线程的优选。如图所示,偏置模式358要用于使优选偏向线程301。
在一个实施例中,控制寄存器350要用于保存偏置模式351。例如,在复位或起动时,偏置控制寄存器350设为保存偏置模式。另外,偏置控制寄存器350可在运行期间通过软件实体、用户或其它硬件/ 软件设置,以提供偏置模式/比率的动态改变。如图所示,一部分偏置控制寄存器350要用于保存偏置模式351,第二部分要用于保存大小值352。在一个实施例中,偏置模式寄存器355具有可调节的大小。此处,基于大小值352,复用器360从位移寄存器355选择四个输入之一作为头条目。例如,大小值352中的00值选择复用器360的零输入为头条目,这有效地设置寄存器355的大小为五。又如,大小值 352设为11以选择复用器360的输入3作为头条目,即头条目357,这有效地设置寄存器355的大小为八。
通过调节寄存器355的大小,可提供不同的优选比率。例如,大小为八时,不可提供3∶2的比率;但是,如果大小设为五,即,大小值为00,则可提供3∶2的比率。在一个实施例中,诸如头条目357的选定头条目值再循环到尾条目356。此处,在条目357中的0作为优选移出时,它也再循环到尾部356,而在位移寄存器355中其它值前移。虽然上面的论述参照八位位移寄存器,但具有任何优选比率的任何大小存储区域均可利用。此外,任何值可用于表示处理元件或线程。例如,二进制值组合或多个寄存器可用于不止两个线程/处理元件。
在一个实施例中,寄存器355在空/闲置周期内不从头条目357移出值。例如,在流水线中发生阻塞停止时,不会进行线程选择,这是因为无法继续进行进一步处理。空周期的另一示例包括无微操作、操作或指令可用于进一步处理的周期。如上所述,优选包括表示一个线程的选择高于另一线程的优选。如图所示,提供了6∶2的比率,其中,一个线程是优选为选择六次,而与之相比的另一个线程是两次。因此,在空周期内从寄存器355移出值可能改变预定的优选比率。
要举例说明,可假设在不进行选择的闲置周期内从寄存器355左侧移出两个0,并且随后在活动周期内剩余寄存器值的所有其它值会移出以提供优选。因此,由逻辑0表示的第一个线程将被选择四次而不是预定的六次。当前的6∶2比率因而将通过在闲置周期中的位移改变为4∶2。此处,值响应于空或闲置周期未移出以可能保持比率。注意,如后面所述,选择逻辑可由于单个优选线程无活动而忽略优选。因此,在另一实施例中,由于单个处理元件无活动,值可不移出。
逻辑365和/或逻辑375要用于确定处理元件的优先级别。在有不止两个处理元件时,更复杂的比较逻辑可用于确定多个优先级别。此处,逻辑365要用于确定诸如线程301的处理元件是否优先级比诸如线程302的另一处理元件更高。例如,逻辑365比较在与线程301相关联的存储元件303中保存的优先级值和在与线程302相关联的存储元件304中保存的优先级别。
注意,要用于确定是否存在更高优先级处理元件的逻辑375示为与逻辑365分开,但是,逻辑365可确定一个PE是否为更高优先级和/或为相同的优先级。此处,在线程301比线程302优先级更高时,逻辑365输出逻辑0,并且在线程302比线程301优先级更高时,输出逻辑1。如图所示,逻辑370为异或门。因此,如果逻辑365输出逻辑0以指示线程301优先级更高,则保持来自寄存器355的优选值。但是,如果如来自逻辑365的逻辑1所示,线程302优先级更高,则优选值被反转。
基本上,偏置模式是通用偏置模式,最初从线程301的角度设定,这可根据确定线程302优先级更高而反转。例如,如图所示,在寄存器355中用于线程301的6∶2优选提供为偏置模式。但是,如果逻辑 365输出逻辑1以指示线程302优先级更高,则异或370提供反转的偏置模式,这对于线程302现在具有6∶2优选。
在另一实施例中,异或370耦合在控制寄存器350与优先级偏置模式寄存器355之间。此处,偏置模式可在线程优先级更改时重新加载。如果线程302成为更高优先级的线程,则初始偏置模式355通过异或门载入偏置模式寄存器355时反转以形成反转的偏置模式。
如上所述,逻辑375要用于确定一个线程是否优先级比另一线程更高。此处,如果线程301和线程302为相同的优先级别,则一个逻辑值输出到复用器380,该值指示线程为相同的优先级别。因此,复用器380选择默认输入,即,最后选定线程的默认选择逻辑的反转。此处,如上所述,选择最后线程的反转。但是,如果线程之一优先级更高,则第二逻辑值提供到复用器380以便选择从逻辑370提供的优选值。换而言之,存在优先级差别时,选择优选,并且在无优先级差别时,利用默认选择方法。
如上所述,未示出的逻辑可提供以忽略优选,并在单个线程的闲置周期内选择另一线程。例如,逻辑0从头条目357中移出。逻辑365 确定线程301优先级比线程302更高。因此,异或370输出逻辑0到复用器380。此外,在线程301优先级比线程302更高时,逻辑375 提供一个逻辑值以选择优选值0,即,线程301。但是,假设线程301 具有闲置周期,即没有要选择的微操作或操作,则选择逻辑可选择线程302以保持流水线的最大使用。
回到图3a,在未示出的另一实施例中,偏置逻辑305包括跟踪逻辑以相对于线程302的选择跟踪线程301的选择。在一个实施例中,跟踪逻辑包括一个计数器或一组计数器。此处,在选择线程301时,计数器会增大,而在选择线程302时,计数器会减小。因此,如果线程301的选择次数多于线程302,则计数器为正值。与此相反,计数器可因为选择线程302而增大。控制逻辑也可包括在内并耦合到跟踪逻辑,以便基于计数器值提供优选。例如,如果线程301优先级更高,则控制逻辑基于计数器值提供优选。这种情况下,控制逻辑尝试保持正计数器值,即,相对于线程302更多次选择线程301。备选,可尝试将计数器保持为0。此处,在选择线程301时,计数器减小三,并且在选择线程302时,计数器增大一。在此示例中,保持计数器为0 的偏置选择提供偏向线程301的3∶1选择比率。
参照图4,示出了基于优先级偏置资源耗用的方法流程图实施例。在流程405中,与第一处理元件相关联的第一优先级别和与第二处理元件相关联的优先级别存储在存储区域中。处理元件通常包括保存处理器上下文/状态的任何元件,如线程、核或其它熟知的处理器器件。存储区域的示例包括高速缓存、存储器、寄存器、机器特定寄存器 (MSR)、控制寄存器、上下文特定寄存器、架构寄存器或其它存储元件。存储区域可以是物理上连续的存储区域或单独的存储元件。
优先级可以任何方式确定。在一个实施例中,诸如管理程序、操作系统、客户应用程序、应用程序、虚拟机或其它代码等软件实体确定要在处理元件上执行的任务和/或代码的优先级别。在另一实施例中,硬件和/或固件基于任何数量的因素确定处理元件的优先级别,如要执行的任务、能耗水平和/或用户请求。在还有的另一实施例中,用户能够访问存储区域以明确设置优先级别。作为带有线程的一个说明性示例,响应于上下文切换,优先级别交换到上下文特定寄存器以指示优先级别。
接着,在流程410中,确定与第一处理元件相关联的第一优先级别是否为比与第二处理元件相关联的第二优先级别更高的优先级别。在一个实施例中,比较逻辑用于比较第一优先级值和第二优先级值。在另一实施例中,在执行时的代码要用于比较第一优先级别和第二优先级别。如果第一优先级别与第二优先级别相同,则利用默认选择方法,如交替选择。
但是,如果第一优先级别具有高于第二优先级别的优先级,则在流程415中,处理资源耗用偏向第一处理元件。处理资源示例包括保留资源、保留站、流水线、填充缓冲器、分支预测器单元、转换缓冲器、高速缓存。在一个实施例中,资源是保留站的情况下,保留站耗用偏向第一处理元件包括相应地设置第一和第二掩码。
如上参照图2所述,相对于第二更低的优先级处理元件,更多的总条目或更多的专用条目与第一处理元件相关联。作为带有28个条目保留站的一个特定说明性示例,第一掩码设为第一值以指示24个条目与第一处理元件相关联,并且第二掩码设为第二值以指示12个条目与第二处理元件相关联。另外,值的组合指示16个条目专用于第一处理元件,4个条目专用于第二处理元件,并且8个条目在第一和第二处理元件之间共享。
转到图5,示出了基于优先级偏置流水线耗用的方法流程图实施例。虽然,在图4和5中的流程以线性方式示出,但不同的流程可以不同的顺序执行。例如,偏置模式流程520和525可在流程505之前或之后计算机系统启动时执行。在流程505中,第一上下文和第二上下文在第一和第二处理元件中加载。例如,第一上下文在第一线程中加载,第二上下文在第二线程中加载。加载上下文通常包括在架构状况寄存器中加载线程的架构状态及加载其它上下文有关信息。
接着,在流程510中,确定用于第一处理元件的第一优先级和用于第二处理元件的第二优先级。在一个实施例中,优先级别可能已由以前的上下文执行预先确定。备选地,硬件、软件和/或固件可基于任何数量的因素确定上下文的优先级别。相应地,在流程515中,确定的优先级别存储在与第一处理元件相关联的第一寄存器和与第二处理元件相关联的第二寄存器中。
在流程520和525中,偏置模式值写入控制寄存器,并从控制寄存器加载到移位寄存器。在一个实施例中,偏置模式是通用比率优选模式。此处,如传播到选择逻辑的默认模式可表示第一线程在第二线程之上的优选。但是,在优选传播期间逻辑可根据第二线程为更高优先级而反转优选。备选地,逻辑可耦合在控制寄存器与移位寄存器之间以根据第二线程为更高优先级别而反转通用偏置模式。
注意,此处流程可移到流程540,在该流程中,一个值会移出并且优选或反转的优选值会根据第一与第二上下文之间的优先级差别而提供。但是,为进一步示出可能的操作,在流程530中,第三上下文交换到第二处理元件中。上下文切换可由于任何数量的原因而发生,如在遇到触发事件/操作或不活动/活动线程管理时。
在流程535中,确定第三上下文的第三优先级。另外,第三优先级存储在与第二处理元件相关联的第二寄存器中。在一个实施例中,在上下文切换期间,诸如操作系统或管理程序的软件实体将第三优先级别交换到第二寄存器中,该寄存器是与第二处理元件相关联的上下文特定寄存器。在另一实施例中,第二寄存器是架构寄存器,可响应于上下文切换自动与新的第三优先级别交换。
在流程540中,一个偏置值从要用于保存偏置模式的移位寄存器移出。如上所述,偏置模式可包括任何的优选比率。在流程545中,确定第一优先级别是否为比第三优先级别更高的优先级别。如果第一优先级别比第三优先级别更高,则偏置值提供到选择逻辑而无反转。但是,如果第三优先级别更高,则在流程550中,偏置值会反转。基本上,如果移出的偏置值表示第一线程,则它反转为表示第二线程,且反之亦然。选择逻辑可能基于优选值,即偏置值或反转的偏置值,为进一步的处理来选择线程。注意,选择逻辑可选择不同于优选值的线程。例如,如果优选值表示第一线程,并且第一线程具有闲置周期,则选择逻辑可选择第二线程以保持完整的流水线。
如上所述,基于优先级从诸如保留站和流水线等资源为处理元件提供服务质量。因此,诸如媒体应用程序等高优先级应用程序可被授予不公平或更大量的资源以确保更高的性能。但是,在处理元件具有相同优先级别时,可利用默认选择方法,或者可提供默认的资源量以确保公平访问。
上述方法、软件、固件或代码集的实施例可经在机器可存取或机器可读媒体上存储、可由处理元件执行的指令或代码实现。机器可存取/可读媒体包括以机器可读形式提供(即,存储和/或发送)信息的任何机件,如计算机或电子系统。例如,机器可访问媒体包括诸如静态随机存取存储器(SRAM)或动态RAM(DRAM)的RAM、ROM、磁性或光学存储媒体、闪存器件、电气、光学、声学或其它形式的传播信号 (例如,载波、红外信号、数字信号)等。
此说明书通篇对“一个实施例”或“实施例”的引用指结合该实施例描述的特定特性、结构或特征包括在本发明的至少一个实施例中。因此,在说明书通篇各个位置出现的短语“在一个实施例中”或“在实施例中,,不一定全部指本发明的同一实施例。此外,特定的特性、结构或特征可在一个或多个实施例中以任何适合的方式组合。
在上述说明中,参照特定示范实施例提供了详细说明。然而,显而易见,在不脱离如所附权利要求书所述范围更广泛的精神和范围的情况下,可对其进行各种修改和更改。相应地,说明书和附图要视为是说明性而不是限制性。此外,实施例和其它示范语言的上述使用不必指同一实施例或同一示例,而是可指不同和独特的实施例及可能同一实施例。
Claims (10)
1.一种用于提供服务质量的设备,包括:
处理器,包括由至少第一和第二处理元件共享的流水线,其中所述处理器也包括:
存储区域,保存与所述第一处理元件相关联的第一优先级别和与所述第二处理元件相关联的第二优先级别;
选择装置,选择所述第一处理元件或所述第二处理元件,用于所述流水线中的进一步处理;以及
偏置装置,响应于所述第一优先级别高于所述第二优先级别,而将所述选择装置向着所述第一处理元件偏置,
其中所述偏置装置包括:
保存偏置模式的偏置模式移位寄存器,所述偏置模式表示倾向所述第一处理元件的优选;
第一组装置,确定所述第一优先级别是否高于所述第二优先级别;以及
第二组装置,输出优选值到所述选择装置,
其中所述优选值包括:
响应于所述第一优先级别高于所述第二优先级别而来自所述偏置模式的第一优选值;以及
响应于所述第二优先级别高于所述第一优先级别而来自所述偏置模式的第二反转的优选值。
2.如权利要求1所述的设备,其中所述第一和所述第二处理元件各从由微处理器、嵌入式处理器、核、线程及单元处理器组成的组中选择,以及其中所述存储区域包括保存所述第一优先级别的第一存储元件和保存所述第二优先级别的第二存储元件。
3.如权利要求1所述的设备,其中表示倾向所述第一处理元件的优选的所述偏置模式包括包含表示所述第一处理元件优选的第一值多于表示所述第二处理元件优选的第二值的偏置模式。
4.如权利要求1所述的设备,其中所述选择装置能够响应于表示所述第一处理元件闲置周期内的所述第一处理元件的所述优选值,而选择所述第二处理元件。
5.如权利要求1所述的设备,其中所述偏置模式移位寄存器将从所述偏置模式移位寄存器头条目到所述偏置模式移位寄存器尾条目移位的值再循环,以及其中响应于所述第一和所述第二处理元件闲置,没有值从所述偏置模式移位寄存器的所述头条目移出。
6.如权利要求5所述的设备,其中所述偏置装置还包括控制寄存器,以保存设置所述偏置模式移位寄存器的大小的大小值,并保存要载入所述偏置模式移位寄存器中的所述偏置模式,以及其中要保存在所述控制寄存器中的大小值要用作复用器中的输入,以选择所述偏置模式的条目作为头条目。
7.如权利要求1所述的设备,其中所述偏置装置包括:
跟踪装置,跟踪所述选择装置相对于所述第二处理元件选择所述第一处理元件的次数;以及
控制装置,基于所述选择装置响应于所述第一优先级别高于所述第二优先级别而相对于所述第二处理元件选择所述第一处理元件的次数,从而向所述选择装置提供表示所述第一处理元件的第一优选,以及基于所述选择装置响应于所述第二优先级别高于所述第一优先级别而相对于所述第二处理元件选择所述第一处理元件的次数,从而向所述选择装置提供表示所述第二处理元件的第二优选。
8.一种用于提供服务质量的方法,包括:
在第一存储元件中存储与处理器第一处理元件相关联的第一优先级别,并在第二存储元件中存储与所述处理器第二处理元件相关联的第二优先级别;
将偏置模式加载到偏置模式移位寄存器中,所述偏置模式表示倾向所述第一处理元件的优选;
确定所述第一优先级别是否高于所述第二优先级别;
响应于所述第一优先级别高于所述第二优先级别,通过输出来自所述偏置模式的第一优选值而使处理资源耗用向所述第一处理元件偏置,或者,
响应于所述第二优先级别高于所述第一优先级别,通过输出来自所述偏置模式的第二反转的优选值而使处理资源耗用向所述第二处理元件偏置。
9.一种机器可读介质,其上面存储指令,所述指令在被执行时导致所述机器执行如权利要求8所述的方法。
10.一种用于提供服务质量的装置,包括:
用于在第一存储元件中存储与处理器第一处理元件相关联的第一优先级别,并在第二存储元件中存储与所述处理器第二处理元件相关联的第二优先级别的部件;
用于将偏置模式加载到偏置模式移位寄存器中的部件,所述偏置模式表示倾向所述第一处理元件的优选;
用于确定所述第一优先级别是否高于所述第二优先级别的部件;
用于响应于所述第一优先级别高于所述第二优先级别,通过输出来自所述偏置模式的第一优选值而使处理资源耗用向所述第一处理元件偏置的部件;以及
用于响应于所述第二优先级别高于所述第一优先级别,通过输出来自所述偏置模式的第二反转的优选值而使处理资源耗用向所述第二处理元件偏置的部件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/838458 | 2007-08-14 | ||
US11/838,458 US8095932B2 (en) | 2007-08-14 | 2007-08-14 | Providing quality of service via thread priority in a hyper-threaded microprocessor |
CN200810213212.2A CN101369224B (zh) | 2007-08-14 | 2008-08-14 | 超线程微处理器中经线程优先级提供服务质量的设备 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810213212.2A Division CN101369224B (zh) | 2007-08-14 | 2008-08-14 | 超线程微处理器中经线程优先级提供服务质量的设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104750460A CN104750460A (zh) | 2015-07-01 |
CN104750460B true CN104750460B (zh) | 2018-09-28 |
Family
ID=40364012
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810213212.2A Expired - Fee Related CN101369224B (zh) | 2007-08-14 | 2008-08-14 | 超线程微处理器中经线程优先级提供服务质量的设备 |
CN201510182451.6A Expired - Fee Related CN104750460B (zh) | 2007-08-14 | 2008-08-14 | 超线程微处理器中经线程优先级提供服务质量 |
CN201010624670.2A Expired - Fee Related CN102033738B (zh) | 2007-08-14 | 2008-08-14 | 超线程微处理器中经线程优先级提供服务质量 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810213212.2A Expired - Fee Related CN101369224B (zh) | 2007-08-14 | 2008-08-14 | 超线程微处理器中经线程优先级提供服务质量的设备 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010624670.2A Expired - Fee Related CN102033738B (zh) | 2007-08-14 | 2008-08-14 | 超线程微处理器中经线程优先级提供服务质量 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8095932B2 (zh) |
CN (3) | CN101369224B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5125659B2 (ja) * | 2008-03-24 | 2013-01-23 | 富士通株式会社 | 情報処理装置、情報処理方法及びコンピュータプログラム |
US8683483B2 (en) * | 2008-03-25 | 2014-03-25 | Oracle America, Inc. | Resource utilization monitor |
US9690625B2 (en) * | 2009-06-16 | 2017-06-27 | Oracle America, Inc. | System and method for out-of-order resource allocation and deallocation in a threaded machine |
US8874090B2 (en) | 2010-04-07 | 2014-10-28 | Apple Inc. | Remote control operations in a video conference |
US8677361B2 (en) * | 2010-09-30 | 2014-03-18 | International Business Machines Corporation | Scheduling threads based on an actual power consumption and a predicted new power consumption |
US20130042252A1 (en) * | 2011-08-08 | 2013-02-14 | Arm Limited | Processing resource allocation within an integrated circuit |
US9021493B2 (en) | 2012-09-14 | 2015-04-28 | International Business Machines Corporation | Management of resources within a computing environment |
US20140181484A1 (en) * | 2012-12-21 | 2014-06-26 | James Callister | Mechanism to provide high performance and fairness in a multi-threading computer system |
CN103823707A (zh) * | 2014-02-17 | 2014-05-28 | 汉柏科技有限公司 | 一种超线程设备处理业务的再平衡方法 |
US10353747B2 (en) | 2015-07-13 | 2019-07-16 | Futurewei Technologies, Inc. | Shared memory controller and method of using same |
US10503550B2 (en) | 2017-09-30 | 2019-12-10 | Intel Corporation | Dynamic performance biasing in a processor |
CN109697084B (zh) * | 2017-10-22 | 2021-04-09 | 刘欣 | 一个用于时分复用流水线处理器的快速访问存储器结构 |
US20230142107A1 (en) * | 2021-11-05 | 2023-05-11 | Dragos, Inc. | Data pipeline management in operational technology hardware and networks |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5826082A (en) * | 1996-07-01 | 1998-10-20 | Sun Microsystems, Inc. | Method for reserving resources |
CN1410886A (zh) * | 2001-09-27 | 2003-04-16 | 中国科学院计算技术研究所 | 指令流水线中实现访存精确例外的处理方法 |
US6567839B1 (en) * | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5724565A (en) * | 1995-02-03 | 1998-03-03 | International Business Machines Corporation | Method and system for processing first and second sets of instructions by first and second types of processing systems |
JPH09101916A (ja) * | 1995-10-06 | 1997-04-15 | Fujitsu Ltd | マルチプロセス処理装置 |
GB2372847B (en) * | 2001-02-19 | 2004-12-29 | Imagination Tech Ltd | Control of priority and instruction rates on a multithreaded processor |
KR20040075960A (ko) * | 2002-01-24 | 2004-08-30 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 멀티프로세싱 환경에서의 프로세스 실행 방법 |
US8024735B2 (en) | 2002-06-14 | 2011-09-20 | Intel Corporation | Method and apparatus for ensuring fairness and forward progress when executing multiple threads of execution |
US7509643B2 (en) | 2003-03-24 | 2009-03-24 | Sun Microsystems, Inc. | Method and apparatus for supporting asymmetric multi-threading in a computer system |
US8364897B2 (en) | 2004-09-29 | 2013-01-29 | Intel Corporation | Cache organization with an adjustable number of ways |
US7899994B2 (en) | 2006-08-14 | 2011-03-01 | Intel Corporation | Providing quality of service (QoS) for cache architectures using priority information |
US8458711B2 (en) | 2006-09-25 | 2013-06-04 | Intel Corporation | Quality of service implementation for platform resources |
US8645666B2 (en) | 2006-12-28 | 2014-02-04 | Intel Corporation | Means to share translation lookaside buffer (TLB) entries between different contexts |
-
2007
- 2007-08-14 US US11/838,458 patent/US8095932B2/en not_active Expired - Fee Related
-
2008
- 2008-08-14 CN CN200810213212.2A patent/CN101369224B/zh not_active Expired - Fee Related
- 2008-08-14 CN CN201510182451.6A patent/CN104750460B/zh not_active Expired - Fee Related
- 2008-08-14 CN CN201010624670.2A patent/CN102033738B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5826082A (en) * | 1996-07-01 | 1998-10-20 | Sun Microsystems, Inc. | Method for reserving resources |
US6567839B1 (en) * | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
CN1410886A (zh) * | 2001-09-27 | 2003-04-16 | 中国科学院计算技术研究所 | 指令流水线中实现访存精确例外的处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102033738A (zh) | 2011-04-27 |
CN101369224A (zh) | 2009-02-18 |
CN102033738B (zh) | 2015-05-20 |
US8095932B2 (en) | 2012-01-10 |
CN101369224B (zh) | 2014-04-30 |
US20090049446A1 (en) | 2009-02-19 |
CN104750460A (zh) | 2015-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104750460B (zh) | 超线程微处理器中经线程优先级提供服务质量 | |
US8732711B2 (en) | Two-level scheduler for multi-threaded processing | |
JP4451397B2 (ja) | Simdプロセッサスライスの有効/無効の制御のための方法ならびに装置 | |
US9639466B2 (en) | Control mechanism for fine-tuned cache to backing-store synchronization | |
US9755994B2 (en) | Mechanism for tracking age of common resource requests within a resource management subsystem | |
US9836325B2 (en) | Resource management subsystem that maintains fairness and order | |
US20090006756A1 (en) | Cache memory having configurable associativity | |
CN105453030B (zh) | 向较宽的寄存器进行依赖于模式的部分宽度加载的处理器、方法和系统 | |
KR20190011317A (ko) | 가상 벡터 레지스터 파일을 사용하기 위한 시스템 및 방법 | |
US20140189302A1 (en) | Optimal logical processor count and type selection for a given workload based on platform thermals and power budgeting constraints | |
US9904553B2 (en) | Method and apparatus for implementing dynamic portbinding within a reservation station | |
US10095548B2 (en) | Mechanism for waking common resource requests within a resource management subsystem | |
US8930636B2 (en) | Relaxed coherency between different caches | |
US9547593B2 (en) | Systems and methods for reconfiguring cache memory | |
US9354875B2 (en) | Enhanced loop streaming detector to drive logic optimization | |
US6427189B1 (en) | Multiple issue algorithm with over subscription avoidance feature to get high bandwidth through cache pipeline | |
US20200012514A1 (en) | Systems, Methods, and Apparatuses for Resource Monitoring | |
CN108228241A (zh) | 用于在处理器中进行动态概况分析的系统、装置和方法 | |
CN111752889A (zh) | 用于具有指令再循环的多级保留站的方法和设备 | |
EP3757772A1 (en) | System, apparatus and method for a hybrid reservation station for a processor | |
US20210200538A1 (en) | Dual write micro-op queue | |
Tamura et al. | High performance memory architectures with dynamic locking cache for real-time systems | |
US20140143526A1 (en) | Branch Prediction Gating | |
US20240004808A1 (en) | Optimized prioritization of memory accesses | |
US20160378497A1 (en) | Systems, Methods, and Apparatuses for Thread Selection and Reservation Station Binding |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180928 Termination date: 20190814 |