CN102033738A - 超线程微处理器中经线程优先级提供服务质量 - Google Patents

超线程微处理器中经线程优先级提供服务质量 Download PDF

Info

Publication number
CN102033738A
CN102033738A CN2010106246702A CN201010624670A CN102033738A CN 102033738 A CN102033738 A CN 102033738A CN 2010106246702 A CN2010106246702 A CN 2010106246702A CN 201010624670 A CN201010624670 A CN 201010624670A CN 102033738 A CN102033738 A CN 102033738A
Authority
CN
China
Prior art keywords
treatment element
priority level
priority
logic
offset mode
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
Application number
CN2010106246702A
Other languages
English (en)
Other versions
CN102033738B (zh
Inventor
M·梅尔藤
M·马登
J·霍尔姆
G·欣顿
S·斯里纳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN102033738A publication Critical patent/CN102033738A/zh
Application granted granted Critical
Publication of CN102033738B publication Critical patent/CN102033738B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/507Low-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不同模块中包括多个更小的保留表。
转到图2,它示出了能够基于优先级,向处理元件提供服务质量的保留单元实施例。此处,保留单元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或管理程序响应于新上下文到PE220中的上下文切换,将与新上下文相关联的优先级别交换到存储元件225。此处,存储元件225是线程特定控制寄存器,专用于PE220。在新线程交换到核/硬件线程220时,OS或管理程序写入线程特定的控制寄存器225。此外,要在PE 220上执行的应用程序可被授予足够的特权级别以在PE220中设置其自己的优先级。
在另一实施例中,存储元件225是架构控制/状态寄存器或其它控制寄存器,响应于上下文交换而不是软件实体写入寄存器225自动设置。此处,硬件或其它代码可确定要交换到PE 220中的上下文优先级别。在上下文切换发生时,存储元件225的内容会自动设置。
控制模块/逻辑240要用于将处理元件220与保留资源的第一部分,即,保留单元200相关联,并且将处理元件230与保留资源的第二部分相关联。基于处理元件220和230的优先级别,改变保留单元200的耗用以提供服务质量。此处,诸如处理元件220的处理元件优先级高于诸如处理元件230的另一处理元件时,与PE230相比,PE220分配到更多保留条目。例如,在保留单元200包括36个条目时,20个条目专用于PE 220,8个条目专用于PE 230,并且8个条目在PE 220与230之间共享。
存储元件221和231示为在控制逻辑240外,但它们也可包括在控制逻辑240内。另外,控制逻辑240可以分布在包括处理元件220和230的整个处理器内。PE220与存储元件221相关联,并且PE230与存储元件231相关联。在一个实施例中,存储元件221和231是管理程序或操作系统看不到的寄存器。在另一实施例中,存储元件221和231是屏蔽寄存器,可能向用户显示为机器特定寄存器(MSR);但是,它们也可以是用户级看不到的屏蔽寄存器,并且只可由诸如控制逻辑240、操作系统、管理程序或BIOS等执行程序看到。
掩码221中的条目或字段与第一数量的保留条目相关联。如图所示,字段222与两个条目相关联,即,条目201和202。但是,一个字段或任何数量的比特/字段可与任何数量的保留条目相关联。例如,在字段与条目之间可存在一对一关系,或者在字段与条目之间可存在一对二、一对三、一对四或其它比率。
此处,在字段222保存第一值,如逻辑1时,条目201和202与PE220相关联。换而言之,在字段222保存第一值时,PE220可利用在保留单元200中的条目201和202。此外,在诸如条目223的条目保存第二值,如逻辑0时,PE 220不与对应的条目207和208相关联。因此,PE 220不能利用条目207和208。存储元件231与PE230相关联。类似于字段222,存储元件231中的字段232也与条目201和202相关联。但是,如图所示,字段232保存第二值,即逻辑0,以指示PE230不与条目201和202相关联。换而言之,条目201和202专用于PE 220,字段222指示PE 220可访问条目201和202,而条目232指示PE230不可访问条目201和202。
如图所示,掩码221和231的组合指示条目201-206专用于PE220,条目207-208专用于PE230,并且条目209-210与PE220和PE230均相关联。因此,如图所示,PE 220相关联的优先级别高于PE230,这在存储元件225和235中指示。此处,通过允许PE 220访问10个保留条目中的8个条目,而更低优先级PE230只能够访问10个条目中的4个条目,服务质量提供到处理元件220,即,更高优先级处理元件。此外,PE220具有6个专用条目,而PE230只具有2个专用条目。
注意,掩码221和231可随时动态更新。例如,在产生新线程时,条目可动态专用于新线程。相反,在终止线程时,专用条目可从该线程解除分配,并返回当前包括条目209-210的共用池,或者专用于另一处理元件。此外,条目可保留用于两个处理元件的调试或其它目的。虽然未示出,但如果条目224和234均包括逻辑0,则线程220和线程230均不与条目209-210相关联。
另外,在上下文中交换到某个处理元件时,如PE 220,控制逻辑240可重新评估优先级并相应地更改掩码221和231。在一个实施例中,PE220表示比PE230更低优先级的情况下,掩码221和231更新为提供更多保留条目到PE 230。在另一实施例中,掩码231即更高优先级掩码,可更新为从条目209-210共享条目池中提供更多条目到PE230。此外,掩码221可更新为向共享条目池返回一些专用条目,即201-206。
现参照图2b,它示出了控制模块/逻辑240的实施例。虽然如图所示,掩码221和231均可更新以向更高优先级PE提供服务质量,但更低优先级掩码用于确保高优先级处理服务质量。换而言之,如图2所示,不是通过更新高优先级掩码添加由高优先级处理元件对条目的访问,而是通过更新低优先级掩码从低优先级处理元件解除条目分配或者移去条目。
例如,假设图2a的存储元件225指示PE220优先级比PE230低,这在存储元件235中指示。但是,最初掩码221和231设为图2a中所示的值,这为PE220提供的条目多于PE 230。图2b中的控制逻辑240确定PE230优先级更高,并为PE220实施低优先级掩码以确保高优先级PE230从保留站接收适当的服务质量。基本上,复用器270和271要用于基于PE220和230的优先级驱动最终掩码。在所示示例中,如果PE 220优先级更高,则复用器270选择掩码250,并且如果PE220优先级更低,则选择备选“与”值。在一个实施例中,复用器270和271的输出要用于驱动图2a的掩码221和231。在另一实施例中,复用器270和271的输出返回给掩码250和251,掩码250和251有效地作为最终掩码221和231工作以确定保留条目分配。
为预排说明性示例,逻辑260确定PE230优先级是否高于PE220。在一个实施例中,比较逻辑将在存储元件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为PE230选择最初掩码值。换而言之,默认掩码值用于高优先处理元件。
与此相反,与门263的输出向复用器270提供逻辑1,复用器选择与门264的输出,即,在低优先级掩码255与PE 220的掩码控制寄存器250之间执行与运算的结果。换而言之,在掩码控制寄存器250上施加低优先级掩码。此处,通过施加低优先级掩码,从诸如PE220的低优先级处理元件解除条目的分配。此外要注意的是,在PE 220优先级更高时,在处理元件230的控制寄存器251上施加更低优先级掩码255。在图2b所示的示例只示出两个处理元件。然而,类似的逻辑可用于为任何数量的处理元件更新任何数量的掩码。此外,可通过高优先级掩码添加条目到高优先级PE,即,在逻辑1中的或操作,通过低优先级掩码从低优先级PE减少条目,通过在两个掩码上的操作或者其组合重新分布条目。
回到图2a,在未示出的另一实施例中,存储元件221和231包括保存当前分别可由PE220和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 (19)

1.一种设备,包括:
处理器,包括由至少第一和第二处理元件共享的流水线,其中所述处理器也包括:
存储区域,保存与所述第一处理元件相关联的第一优先级别和与所述第二处理元件相关联的第二优先级别;
选择逻辑,选择所述第一处理元件或所述第二处理元件,用于所述流水线中的进一步处理;以及
偏置逻辑,响应于所述第一优先级别是比所述第二优先级别更高的优先级,而将所述选择逻辑向着所述第一处理元件偏置。
2.如权利要求1所述的设备,其中所述第一和所述第二处理元件各从由微处理器、嵌入式处理器、核、线程及单元处理器组成的组中选择,以及其中所述存储区域包括保存所述第一优先级别的第一存储元件和保存所述第二优先级别的第二存储元件。
3.如权利要求1所述的设备,其中所述偏置逻辑包括保存偏置模式的第一存储元件,所述偏置模式表示倾向所述第一处理元件的优选。
4.如权利要求3所述的设备,其中表示倾向所述第一处理元件的优选的所述偏置模式包括包含表示所述第一处理元件优选的第一值多于表示所述第二处理元件优选的第二值的偏置模式。
5.如权利要求3所述的设备,其中所述第一存储元件包括偏置模式移位寄存器,以及其中所述偏置逻辑还包括:
第一组逻辑,确定所述第一优先级别是否为比所述第二优先级别更高的优先级;以及
第二组逻辑,输出优选值到所述选择逻辑,其中所述优选值包括
响应于所述第一优先级别高于所述第二优先级别而来自所述偏置模式的第一优选值;以及
响应于所述第二优先级别是比所述第一优先级别更高的优先级而来自所述偏置模式的第二反转的优选值。
6.如权利要求5所述的设备,其中所述选择逻辑能够响应于表示所述第一处理元件闲置周期内的所述第一处理元件的所述优选值,而选择所述第二处理元件。
7.如权利要求5所述的设备,其中所述偏置模式移位寄存器将从所述偏置模式移位寄存器头条目到所述偏置模式位移寄存器尾条目移位的值再循环,以及其中响应于所述第一和所述第二处理元件闲置,没有值从所述偏置模式位移寄存器的所述头条目移出。
8.如权利要求7所述的设备,其中所述偏置逻辑还包括控制寄存器,以保存设置所述偏置模式移位寄存器的大小的大小值,并保存要载入所述偏置模式位移寄存器中的所述偏置模式,以及其中要保存在所述控制寄存器中的大小值要用作复用器中的输入,以选择所述偏置模式的条目作为头条目。
9.如权利要求1所述的设备,其中所述偏置逻辑包括:
跟踪逻辑,跟踪所述选择逻辑相对于所述第二处理元件选择所述第一处理元件的次数;以及
控制逻辑,基于所述选择逻辑响应于所述第一优先级高于所述第二优先级而相对于所述第二处理元件选择所述第一处理元件的次数,从而向所述选择逻辑提供表示所述第一处理元件的第一优选,以及基于所述选择逻辑响应于所述第二优先级高于所述第一优先级而相对于所述第二处理元件选择所述第一处理元件的次数,从而向所述选择逻辑提供表示所述第二处理元件的第二优选。
10.一种方法,包括:
在第一存储元件中存储与处理器第一处理元件相关联的第一优先级别,并在第二存储元件中存储与所述处理器第二处理元件相关联的第二优先级别;
确定所述第一优先级别是否为比所述第二优先级别更高的优先级别;
响应于所述第一优先级别是比所述第二优先级别更高的优先级别,而使处理资源耗用向所述第一处理元件偏置。
11.如权利要求10所述的方法,其中所述处理资源从由保留站、流水线、填充缓冲器、分支预测器单元、转换缓冲器及高速缓存组成的组中选择。
12.如权利要求10所述的方法,其中在第一存储元件中存储与处理器第一处理元件相关联的所述第一优先级别是响应于与所述第一处理元件相关联的第一上下文中的交换,所述第一优先级别基于所述第一上下文;以及其中,在第二存储元件中存储与处理器第二处理元件相关联的所述第二优先级别是响应于与所述第二处理元件相关联的第二上下文中的交换,所述第二优先级别基于所述第二上下文。
13.如权利要求10所述的方法,其中所述处理资源包括保留站,以及其中向所述第一处理元件偏置所述保留站的耗用包括将与所述第一处理元件相关联的第一掩码设为第一值,并且将与所述第二处理元件相关联的第二掩码设为第二值,所述第一和第二值指示所述第一处理资源在所述保留站中分配比所述第二处理资源更多的保留条目。
14.如权利要求10所述的方法,其中所述处理资源包括由所述第一和所述第二处理资源共享的流水线,以及其中向所述第一处理元件偏置所述流水线的耗用包括:
在偏置移位寄存器中载入偏置模式;
在所述偏置移位寄存器中从所述偏置模式移位表示所述第一处理元件的第一偏置值;
响应于当前周期内所述流水线中所述第一处理元件具有要调度的活动,而基于所述第一偏置值为所述流水线中的进一步处理选择所述第一处理元件。
15.如权利要求14所述的方法,其中在偏置移位寄存器中载入偏置模式包括:
在偏置模式控制寄存器中存储所述偏置模式以设置向着所述第一处理元件的所述处理资源的耗用比率;以及
将所述偏置模式从所述偏置模式控制寄存器载入所述偏置位移寄存器。
16.如权利要求15所述的方法,其中向着所述第一处理元件的所述处理资源的耗用比率包括对于所述第一处理元件相对于所述第二处理元件的三比一的比率。
17.如权利要求14所述的方法,还包括响应于所述第二优先级别是比所述第一优先级别更高的优先级别,而向所述第二处理元件偏置所述流水线的耗用,其中向所述第二处理元件偏置所述流水线的耗用包括:
响应于所述第二优先级别是比所述第一优先级别更高的优先级别,而从所述移位寄存器中的所述偏置模式将表示所述第一处理元件的所述第一偏置值反转为表示所述第二处理元件的反转的第一偏置值;以及
响应于当前周期内所述第二处理元件具有要选择的活动,而基于所述反转的第一偏置值选择所述第二处理元件用于所述流水线中的进一步处理。
18.如权利要求14所述的方法,其中向所述第一处理元件偏置所述流水线的耗用也包括:响应于空周期而不从所述偏置移位寄存器中的所述偏置模式移位所述第一偏置值。
19.如权利要求14所述的方法,其中向所述第一处理元件偏置所述流水线耗用也包括:响应于所述当前周期内所述流水线中所述第一处理元件没有要调度的活动,而选择所述第二处理元件。
CN201010624670.2A 2007-08-14 2008-08-14 超线程微处理器中经线程优先级提供服务质量 Expired - Fee Related CN102033738B (zh)

Applications Claiming Priority (2)

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

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
CN102033738A true CN102033738A (zh) 2011-04-27
CN102033738B CN102033738B (zh) 2015-05-20

Family

ID=40364012

Family Applications (3)

Application Number Title Priority Date Filing Date
CN201010624670.2A Expired - Fee Related CN102033738B (zh) 2007-08-14 2008-08-14 超线程微处理器中经线程优先级提供服务质量
CN201510182451.6A Expired - Fee Related CN104750460B (zh) 2007-08-14 2008-08-14 超线程微处理器中经线程优先级提供服务质量
CN200810213212.2A Expired - Fee Related CN101369224B (zh) 2007-08-14 2008-08-14 超线程微处理器中经线程优先级提供服务质量的设备

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN201510182451.6A Expired - Fee Related CN104750460B (zh) 2007-08-14 2008-08-14 超线程微处理器中经线程优先级提供服务质量
CN200810213212.2A Expired - Fee Related CN101369224B (zh) 2007-08-14 2008-08-14 超线程微处理器中经线程优先级提供服务质量的设备

Country Status (2)

Country Link
US (1) US8095932B2 (zh)
CN (3) CN102033738B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
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
US8917632B2 (en) * 2010-04-07 2014-12-23 Apple Inc. Different rate controller configurations for different cameras of a mobile device
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787490A (en) * 1995-10-06 1998-07-28 Fujitsu Limited Multiprocess execution system that designates cache use priority based on process priority
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
US20040194094A1 (en) * 2003-03-24 2004-09-30 Xiaogang Qiu Method and apparatus for supporting asymmetric multi-threading in a computer system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
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
GB2372847B (en) * 2001-02-19 2004-12-29 Imagination Tech Ltd Control of priority and instruction rates on a multithreaded processor
CN100447737C (zh) * 2001-09-27 2008-12-31 中国科学院计算技术研究所 指令流水线中实现访存精确例外的处理方法
WO2003062988A2 (en) * 2002-01-24 2003-07-31 Koninklijke Philips Electronics N.V. Executing processes in a multiprocessing environment
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
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787490A (en) * 1995-10-06 1998-07-28 Fujitsu Limited Multiprocess execution system that designates cache use priority based on process priority
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
US20040194094A1 (en) * 2003-03-24 2004-09-30 Xiaogang Qiu Method and apparatus for supporting asymmetric multi-threading in a computer system

Also Published As

Publication number Publication date
US20090049446A1 (en) 2009-02-19
CN104750460A (zh) 2015-07-01
US8095932B2 (en) 2012-01-10
CN102033738B (zh) 2015-05-20
CN101369224A (zh) 2009-02-18
CN101369224B (zh) 2014-04-30
CN104750460B (zh) 2018-09-28

Similar Documents

Publication Publication Date Title
CN101369224B (zh) 超线程微处理器中经线程优先级提供服务质量的设备
US10229059B2 (en) Dynamic fill policy for a shared cache
CN101539798B (zh) 多核和功率的中断平衡
US9904553B2 (en) Method and apparatus for implementing dynamic portbinding within a reservation station
US10339060B2 (en) Optimized caching agent with integrated directory cache
US10866834B2 (en) Apparatus, method, and system for ensuring quality of service for multi-threading processor cores
US20090037932A1 (en) Mechanism for broadcasting system management interrupts to other processors in a computer system
US20180365053A1 (en) Method and apparatus for dynamically balancing task processing while maintaining task order
US20210374848A1 (en) Systems, Apparatuses, and Methods for Resource Bandwidth Enforcement
US20180365022A1 (en) Dynamic offlining and onlining of processor cores
JP5513744B2 (ja) 動的自動減衰デバイスアーキテクチャ
CN104221005A (zh) 用于从多线程发送请求至加速器的机制
US20170286301A1 (en) Method, system, and apparatus for a coherency task list to minimize cache snooping between cpu and fpga
US20200012514A1 (en) Systems, Methods, and Apparatuses for Resource Monitoring
US9418024B2 (en) Apparatus and method for efficient handling of critical chunks
EP3716057A1 (en) Method and apparatus for a multi-level reservation station with instruction recirculation
JP6227151B2 (ja) アドレスへの書き込みに対する監視命令を実行するスケーラブル機構
EP3757772A1 (en) System, apparatus and method for a hybrid reservation station for a processor
US11775336B2 (en) Apparatus and method for performance state matching between source and target processors based on interprocessor interrupts
US20230315467A1 (en) Storing instructions from second storage to first storage while fetch operation is stalled, and reading instructions from first instruction storage upon resuming fetch operation
CN112035394B (zh) 面向实时处理的多核处理器的存储装置及数据处理方法
US20230315466A1 (en) Stalling an instruction fetch operation impacted by a hazard without stalling another instruction fetch operation not impacted by the hazard
US20210200538A1 (en) Dual write micro-op queue
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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150520

Termination date: 20180814

CF01 Termination of patent right due to non-payment of annual fee