CN117581206A - 基于软件线程的动态存储器带宽分配 - Google Patents
基于软件线程的动态存储器带宽分配 Download PDFInfo
- Publication number
- CN117581206A CN117581206A CN202280046764.7A CN202280046764A CN117581206A CN 117581206 A CN117581206 A CN 117581206A CN 202280046764 A CN202280046764 A CN 202280046764A CN 117581206 A CN117581206 A CN 117581206A
- Authority
- CN
- China
- Prior art keywords
- bandwidth consumption
- thread
- average
- consumption
- memory device
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 64
- 230000004044 response Effects 0.000 claims abstract description 12
- 238000012545 processing Methods 0.000 claims description 25
- 238000003860 storage Methods 0.000 claims description 20
- 239000004065 semiconductor Substances 0.000 claims description 17
- 239000000758 substrate Substances 0.000 claims description 17
- 239000002775 capsule Substances 0.000 claims description 3
- 230000006870 function Effects 0.000 description 18
- 238000005516 engineering process Methods 0.000 description 9
- 238000012544 monitoring process Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 101100412394 Drosophila melanogaster Reg-2 gene Proteins 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- JBRZTFJDHDCESZ-UHFFFAOYSA-N AsGa Chemical compound [As]#[Ga] JBRZTFJDHDCESZ-UHFFFAOYSA-N 0.000 description 1
- 229910001218 Gallium arsenide Inorganic materials 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000206 photolithography Methods 0.000 description 1
- 230000009257 reactivity Effects 0.000 description 1
- 229910052594 sapphire Inorganic materials 0.000 description 1
- 239000010980 sapphire Substances 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000007704 transition Effects 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
- G06F9/5016—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 the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Power Sources (AREA)
Abstract
系统、装置和方法可以提供操作系统(OS)技术,其确定关于存储器设备的平均带宽消耗,其中平均带宽消耗专用于多线程执行环境中的线程的先前执行;存储平均带宽消耗;并且响应于正在被调度的线程的后续执行,将平均带宽消耗发送到功率管理单元。此外,逻辑硬件技术可以包括第一组寄存器,用于相对于存储器设备在每个线程的基础上累积多个线程的平均带宽消耗,其中平均带宽消耗对应于多个线程的先前执行。逻辑硬件技术基于平均带宽消耗确定最小带宽需求,并且基于最小带宽需求设置动态电压和频率缩放点。
Description
技术领域
实施例通常涉及存储器带宽分配。更具体地,实施例涉及基于软件线程的动态存储器带宽分配。
背景技术
动态电压和频率缩放(dynamic voltage and frequency scaling,DVFS)可以允许计算系统调整系统内双倍数据速率(doubledata rate,DDR)存储器的操作频率,以努力将性能与DDR存储器上的带宽需求相匹配。然而,常规DVFS解决方案的反应性可能导致频率增加过长和/或完全不必要。
附图说明
图1是常规DVFS解决方案和根据实施例的DVFS技术的操作频率对时间的示例的比较曲线图;
图2是根据实施例的计算体系结构的示例的框图;
图3是根据实施例的多组寄存器的示例的框图;
图4是根据实施例的选择DVFS点的方法的示例的流程图;
图5是根据实施例的在存储器带宽监控(MBM)体系结构中选择DVFS点的方法的示例的流程图;
图6和图7是根据实施例的对操作系统调度器进行操作的方法的流程图示例;
图8是根据实施例的对逻辑硬件进行操作的方法的示例的流程图;和
图9是根据实施例的性能增强型计算系统的示例的框图;并且
图10是根据实施例的半导体封装装置的示例的图示。
具体实施方式
现在转到图1,示出了曲线图20,其中第一曲线22可以表示根据常规动态电压和频率缩放(DVFS)解决方案的存储器设备(例如,DDR动态随机存取存储器/DRAM或其他共享资源)的操作频率。所示的第一曲线22包含第一频率尖峰(例如,瞬时/瞬态增加)24、第二频率尖峰26、第三频率尖峰28等等。通常,在实现到与频率尖峰24、26、28相关联的较高频率的转换和从与频率尖峰24、26、28相关联的较高频率的转换时,DVFS可能阻止去往和来自存储器设备的输入/输出(IO)业务。阻止IO业务可能会对性能产生负面影响。
第二曲线30表示根据本文描述的增强DVFS技术的存储器设备的操作频率。通常,本文描述的增强DVFS技术确定第一频率尖峰24和第二频率尖峰26是不必要的。因此,第二曲线30完全绕过第一频率尖峰24和第二频率尖峰26。绕过第一频率尖峰24和第二频率尖峰26通过增加去往和来自存储器设备的IO业务来增强性能。
本文描述的增强DVFS技术还可以确定第三频率尖峰28的持续时间太长(例如,由于常规DVFS解决方案中的滞后算法)。在这种情况下,第二曲线30可以包括具有较短持续时间的频率尖峰32。因此,所示的第二曲线30通过减少与在和频率尖峰32相关联的较高频率处的不必要驻留所关联的功耗来进一步增强性能。
图2示出了计算体系结构34,其中操作系统(OS)调度器36(例如,特权软件/SW)与功率管理单元(PUNIT)40(例如,在可配置和/或固定功能硬件中实现)以及根据资源监控标识符(RMID)监控存储器带宽(BW)利用率的逻辑硬件(HW,例如,在可配置和/或固定功能硬件中实现)38、图形处理单元(GPU,例如,图形处理器)和/或IO设备(例如,经由存储器带宽监控/MBM)进行通信。例如,当在处理块44处调度出应用任务和/或线程时(例如,线程的先前执行结束),读取接口42(例如,型号专用寄存器/MSR)将监控和/或带宽数据从逻辑HW 38传送到OS调度器36。OS调度器36中的处理块46更新数据结构,例如线程控制块(TCB)48,以反映每个线程使用的存储器带宽。
更具体地,处理块46可以计算每个线程的平均BW消耗,并将结果存储在TCB 48中(例如,扩展为包括BW信息的预先存在的表)。在一个示例中,平均BW消耗是消耗的总BW除以线程的持续时间。如已经指出的,逻辑硬件38监控(每个RMID)所消耗的总BW。此外,OS调度器36可以访问关于线程的持续时间的信息。处理块46还可以计算最大(例如峰值)BW消耗。在这方面,所示的逻辑硬件38包括具有水印能力的寄存器56,以在线程运行时期间获得最大(例如峰值)带宽消耗。该信息与其它信息一起被传递到TCB 48。在一个实施例中,峰值测量的持续时间取决于存储器控制器的特性。
当在处理块50处调度任务和/或线程时(例如,线程的后续执行开始),写入接口52(例如,MSR)将任务/线程标识符(ID)作为RMID传送到逻辑硬件38中的MBM技术。此外,OS调度器36经由相对快速的接口54将调度线程的存储器带宽信息传递到PUNIT 40。
更具体地,将BW信息从TCB 48传送到PUNIT 40的接口54不会为OS调度器36产生开销(例如,额外的延迟)。为了加快信息传送,接口54可以包括诸如FAST MSR和/或TPMI(拓扑感知寄存器和功率管理封装接口)的服务器片上系统(SoC)技术,与传统MSR相比,这些技术通常更快并且产生更少的开销。
FAST MSR可以用于对非核(例如非线程执行区域)MSR的相对快速的写入。有一些逻辑处理器范围MSR的值在逻辑处理器之外观察到。写入MSR(“WRMSR”)指令可能需要1000多个周期才能完成(例如,引退)这些MSR。因此,OS可以避免过于频繁地向MSR写入,而在许多情况下,为了逻辑处理器的最佳功率/性能操作,OS非常频繁地向MSR写入可能是有利的。对于选定的MSR子集,型号特定“快速写入MSR”功能将此开销减少了一个数量级,达到100个周期的水平。
例如,当数据仍在逻辑处理器内“传输中”时,会发布对快速写入MSR的写入(例如,当WRMSR指令完成时)。在这种情况下,软件通过查询逻辑处理器来检查状态,以确保数据在逻辑处理器之外已经可见。一旦数据在逻辑处理器之外可见,软件就确保同一逻辑处理器对同一MSR的稍后写入将稍后可见(例如,不会绕过先前的写入)。
在一个示例中,TPMI为功率管理(PM)功能创建了灵活、可扩展的软件PCIe(外围组件互连快速)驱动程序可枚举MMIO(存储器映射IO)接口。PM功能的传统寄存器接口可能需要对ucode、pcode和硬件进行更改,而对软件来说不是枚举友好的。TPMI的另一个优点是能够在软件和pcode之间为特定功能的接口创建合同。SoC中分配的固定量的存储可以被映射为软件的可枚举MMIO空间。当扩展或添加新功能时,不需要进行基本的硬件更改。在一个示例中,这种扩展是通过在软件和固件之间以一致的方式指定通过MMIO暴露的位的含义来实现的。
继续参考图2和图3,PUNIT 40可以包括寄存器58(58a、58b)以累积来自接口54的带宽消耗信息。更具体地,第一组寄存器58a相对于存储器设备以每线程为基础累积多个线程60(60a-60n)的平均带宽消耗,而第二组寄存器58b相对于存储器设备以每线程为基础累积多个线程60的最大带宽消耗。因此,“Avg BW Reg 1”和“Max BW Reg 1”专用于第一线程60a(例如,在第一逻辑处理器中),“Avg BW Reg 2”和“Max BW Reg 2)专用于第二线程60b(例如,在第二逻辑处理器中),等等。平均带宽消耗和最大带宽消耗对应于多个线程60的先前执行。
通常,需求处理块62(62a、62b)至少部分地基于平均带宽消耗来确定最小带宽需求,并且至少部分地基于最大带宽消耗来确定最大带宽需求。在图示的示例中,需求处理块62的第一组件62a包括平均带宽加法器和最小带宽寄存器。类似地,需求处理块62的第二组件62b包括最大带宽加法器和最大带宽寄存器。DVFS点选择块64基于从逻辑硬件38获得的最小带宽需求、最大带宽需求和非线程带宽消耗66(例如,非核数据)来设置存储器设备的DVFS点。
例如,一个选项(例如,选项#1)是为所有线程平等地分配BW需求/要求(例如,对于更高优先级的线程没有偏差)。在这种情况下,可以使用以下公式。
最小存储器设备BW需求=所有线程的平均BW消耗+非核的存储器设备利用率
最大(峰值)存储器设备BW需求=所有线程的最大BW消耗+非核的存储器设备利用率
实现方式优化仅对感兴趣的线程(例如,持续时间大于100微秒(μs)的线程)进行上述计算。在这方面,内核线程的持续时间通常很短(例如,小于100μs),可能会被排除在BW分配计算之外。在一个示例中,在BW分配中为这种短持续时间线程提供了一些保护区。这种方法可以根据实现方式潜在地减少频繁存储器设备频率改变决策的发生。此外,可以基于BW变化的灵敏度来选择持续时间,具体取决于实现方式。
当线程被调度时,该线程的平均BW和最大BW需求与已经运行的线程一起累积,以获得新的存储器设备BW需求。因此,基于过去的线程工作负载特性,将被分配的存储器设备BW是主动的。基于这个新的存储器设备BW需求,为存储器设备选择DVFS点。
如前所述,所示PUNIT 40包括每个HW线程(在每个逻辑处理器中)两个寄存器,用于保持所讨论线程的平均BW和最大BW需求。可以实现硬件加法器来累积所有线程60的平均BW寄存器。类似的加法器用于最大(峰值)BW寄存器。这种HW实现使得能够更快地计算BW需求。固件(FW)实现也是可能的,但是这样的实现可能根据实现增加延迟开销。
另一个选项(例如,选项#2)通过使用最大BW消耗而不是平均BW消耗确定最小带宽需求,来偏置高优先级线程的带宽需求(例如,使得对高优先级线程没有性能影响)。在这种情况下,可以使用以下公式。
最小存储器设备BW需求=正常优先级线程的平均BW+高优先级线程的最大BW+非核的存储器设备利用率
最大(峰值)存储器设备BW需求=每个线程的最大BW+非核的存储器设备利用率
图4示出了选择DVFS点的方法70(70a-70i)。方法70通常可以在逻辑硬件中实现,例如,已经讨论过的DVFS点选择块64(图2)。更具体地,方法70可以在一个或多个模块中实现为存储在机器或计算机可读存储介质(例如,随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪存等),可配置硬件(例如,可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)),使用电路技术(例如,专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)或晶体管-晶体管逻辑(TTL)技术)的固定功能硬件,或其任何组合中的一组逻辑指令。
所示的处理块70a接收最小带宽需求(例如,要求/“req”)、最大需求、DVFS带宽阈值和保护频带作为输入。块70b从最低DVFS点开始,其中在块70c处确定最小带宽需求是否大于DVFS阈值。如果是,则块70d将DVFS设置移动高出一点并返回到块70c。当在块70c确定DVFS阈值没有被最小带宽需求超过时,块70e确定DVFS阈值和最小带宽需求之间的差是否超过了保护频带值。如果不是,则块70f将“较少”的保护频带比特设置为1。图示的块70g选择当前DVFS点,其中块70h监控总存储器设备带宽消耗。如果较少的保护频带比特是1并且总存储器设备带宽消耗超过DVFS阈值相对较大次数,则块70i增加DVFS点。
图5示出了操作OS调度器和监控硬件的方法72(72a-72h)以及在存储器带宽监控(MBM)体系结构(例如,来自INTEL的资源描述符技术/RDT特征)中操作PUNIT的方法74(74a-74h)。方法72、74可以在一个或多个模块中实现为存储在机器或计算机可读存储介质(例如,RAM、ROM、PROM、固件、闪存等),可配置硬件(例如,PLA、FPGA、CPLD),使用电路技术(例如,ASIC、CMOS或TTL技术)的固定功能硬件,或其任意组合中的一组逻辑指令。
所示的处理块72a启动OS调度器,OS调度器在块72b处确定应用线程是被调度入还是被调度出。如果线程要被调度出去,则调度器块72c将存储在TCB中的线程的存储器带宽信息传递给PUNIT方法74。另外,调度器块72d将线程ID发送到硬件,其中硬件块72e使用线程ID来监控存储器带宽消耗。在一个示例中,调度器块72d通过绕过持续时间相对较短的线程(例如,内核线程、中断线程)的存储器带宽信息的传输来优化性能。PUNIT块74a从调度器接收线程带宽信息,并且PUNIT块74b读取IO存储器带宽消耗。在实施例中,硬件在PUNIT块74c处监控IO存储器带宽消耗。此外,PUNIT块74d处理IO带宽消耗并将其存储在本地存储器74e中。PUNIT块74f将PUNIT进程的带宽消耗、线程的归一化带宽消耗和IO的带宽消耗相加,其中PUNIT块74g确定DVFS设置点的改变是否合适。如果是,PUNIT块74h改变DDR控制器操作点。
如果在调度器块72b处确定线程将被调度出去,则调度器块72f从硬件读取存储器带宽数据。调度器块72g然后处理存储器带宽数据并更新存储器72h中的TCB。
图6示出了操作OS调度器的方法76。方法76通常可以在OS调度器中实现,例如,已经讨论过的OS调度器36(图2)。更具体地,方法76可以在一个或多个模块中实现为存储在诸如RAM、ROM、PROM、固件、闪存等机器或计算机可读存储介质中的一组逻辑指令。
例如,用于执行方法76中所示的操作的计算机程序代码可以用一种或多种编程语言的任何组合来编写,包括面向对象的编程语言,例如JAVA、SMALLTALK、C++等,以及传统的过程编程语言,例如“C”编程语言或类似的编程语言。此外,逻辑指令可以包括汇编指令、指令集体系结构(ISA)指令、机器指令、机器相关指令、微码、状态设置数据、集成电路的配置数据、个性化电子电路和/或硬件固有的其他结构组件(例如,主机处理器、中央处理单元/CPU、微控制器等)的状态信息。
通常,软件应用程序可以表现出关于用户输入、上下文等的行为变化。此外,应用程序开发人员可以请求峰值存储器性能以提高应用程序的性能。因此,存储器带宽需求可能会因工作负载执行的阶段而不同。方法76描述这种随时间变化的情况,以了解使用要求。
图示的处理块78提供用于确定关于存储器设备的平均带宽消耗,其中平均带宽消耗专用于多线程执行环境中的线程的先前执行。在实施例中,块78包括从硬件监控器接收总带宽消耗,其中基于总带宽消耗和线程的先前执行的持续时间来确定平均带宽消耗。块80存储平均带宽消耗。在一个示例中,块80将平均带宽消耗存储到TCB数据结构中。块82响应于被调度的线程的后续执行而将平均带宽消耗发送到功率管理单元(例如PUNIT)。
在实施例中,仅当先前执行或后续执行中的一个或多个的持续时间超过时间阈值时(例如,线程是内核或中断线程),块82才向功率管理控制器发送平均带宽消耗。在这种情况下,如果先前执行或后续执行中的一个或多个的持续时间不超过时间阈值,则块82可以向功率管理控制器隐瞒平均带宽消耗。
另外,块82可以经由TPMI将平均带宽消耗发送到功率管理控制器。在另一示例中,块82可以经由FAST MSR向功率管理控制器发送平均带宽消耗。在这种情况下,块82确认平均带宽消耗的第一部分和平均带宽消耗的第二部分在逻辑处理器外部是可见的(例如,与线程相关联),并在第二部分在逻辑处理器上传输时写入第一部分。可以针对多线程执行环境中的多个同时/并发线程重复方法76。因此,所示的方法76至少将性能增强到这样的程度,即主动地将平均带宽消耗专用于线程消除或减少了存储器设备中过长或完全不必要的频率增加的发生。此外,经由TPMI或FAST MSR发送平均带宽消耗通过减少延迟进一步提高了性能。
图7示出了操作OS调度器的另一种方法84。方法76通常可以结合方法76(图6)在诸如已经讨论的OS调度器36(图2)之类的OS调度器中实现。更具体地,方法84可以在一个或多个模块中实现为存储在诸如RAM、ROM、PROM、固件、闪存等机器或计算机可读存储介质中的一组逻辑指令。
图示的处理块86确定关于存储器设备的最大(例如,峰值)带宽消耗,其中最大带宽消耗专用于线程的先前执行(例如,在多线程执行环境中)。块88用于存储最大带宽消耗。在一个示例中,块88将最大带宽消耗存储到TCB数据结构。块90响应于被调度的线程的后续执行而将最大带宽消耗发送到功率管理单元(例如PUNIT)。
在实施例中,仅当先前执行或后续执行中的一个或多个的持续时间超过时间阈值时(例如,线程是内核或中断线程),块90才向功率管理控制器发送最大带宽消耗。在这种情况下,如果先前执行或后续执行中的一个或多个的持续时间不超过时间阈值,则块90可以向功率管理控制器隐瞒最大带宽消耗。
另外,块90可以经由TPMI向功率管理控制器发送最大带宽消耗。在另一示例中,块90可以经由FAST MSR向功率管理控制器发送最大带宽消耗。在这种情况下,块90确认最大带宽消耗的第一部分和最大带宽消耗的第二部分在逻辑处理器外部是可见的(例如,与线程相关联),并在第二部分在逻辑处理器上传输时写入第一部分。可以针对多线程执行环境中的多个同时的线程重复方法84。因此,所示的方法84至少将性能增强到这样的程度,即,主动地将最大带宽消耗专用于线程消除或减少了存储器设备中过长或完全不必要的频率增加的发生。此外,经由TPMI或FAST MSR发送最大带宽消耗通过减少延迟进一步提高了性能。
图8示出了操作逻辑硬件的方法92。方法92通常可以在功率管理单元中实现,例如已经讨论过的PUNIT 40(图2)。更具体地,方法92可以在诸如PLA、FPGA、CPLD之类的可配置硬件中、在使用诸如ASIC、CMOS或TTL技术之类的电路技术的固定功能硬件中、或其任意组合中实现。
图示的处理块94提供(例如,经由逻辑硬件中的第一组寄存器)相对于存储器设备在每个线程的基础上累积多个线程的平均带宽消耗,其中平均带宽对应于多个线程的先前执行。此外,块96可以(例如,经由逻辑硬件中的第二组寄存器)在每个线程的基础上累积多个线程的最大带宽消耗。在图示的示例中,最大带宽消耗也对应于多个线程的先前执行。在实施例中,块96使用逻辑硬件中的水印寄存器来记录最大带宽消耗。
块98至少部分地基于平均带宽消耗来确定最小带宽需求。块100至少部分地基于最大带宽消耗来确定最大带宽需求。在一个示例(例如,选项#1)中,块98和/或块100还确定关于存储器设备的非线程(例如,非核)带宽消耗。在这种情况下,可以进一步基于非线程带宽消耗(例如,平均带宽消耗和非线程带宽消费的总和)来确定最小带宽需求。此外,可以进一步基于非线程带宽消耗(例如,最大带宽消耗和非线程带宽消耗的总和)来确定最大带宽需求。
在另一示例(例如,选项#2)中,平均带宽消耗对应于正常优先级线程。在这种情况下,块96可以相对于存储器设备在每个线程的基础上累积高优先级线程的最大带宽消耗,其中最大带宽消耗对应于高优先级线程的先前执行。因此,块98可以进一步基于最大带宽消耗(例如,平均带宽消耗、高优先级线程的最大带宽消耗和非线程带宽消耗的总和)来确定最小带宽消耗。块102至少部分地基于最小带宽需求来设置DVFS点(例如,存储器设备的操作频率)。在所示的示例中,块102进一步基于最大带宽需求来设置DVFS点。在实施例中,块102实现已经讨论过的方法70(图4)的一个或多个方面。因此,方法92至少将性能增强到这样的程度,即,基于最小带宽需求主动设置DVFS点消除或减少了存储器设备中过长或完全不必要的频率增加/尖峰。
现在转到图9,示出了性能增强的计算系统110。系统110通常可以是具有以下功能的电子设备/平台的一部分:计算功能(例如个人数字助理/PDA、笔记本电脑、平板电脑、可转换平板电脑、服务器)、通信功能(例如智能电话)、成像功能(例如相机、摄像机)、媒体播放功能(例如智能电视/TV)、可穿戴功能(例如手表、眼镜、头戴式耳机、鞋类、珠宝)、车辆功能(例如汽车、卡车、摩托车)、机器人功能(例如自主机器人)、物联网(IoT)功能等,或其任何组合。
在所示的示例中,系统110包括主机处理器112(例如CPU),具有集成存储器控制器(IMC)114,耦合到系统存储器116。在实施例中,IO模块118耦合到主机处理器112。所示的IO模块118例如与显示器124(例如,触摸屏、液晶显示器/LCD、发光二极管/LED显示器)、网络控制器126(例如,有线和/或无线)、以及大容量存储器128(例如,硬盘驱动器/HDD、光盘、固态驱动器/SSD、闪存等)通信。系统110还可以包括图形处理器120(例如,图形处理单元/GPU),其与主机处理器112和IO模块118结合到片上系统(SoC)130中。
在一个示例中,系统存储器116和/或大容量存储器128包括一组可执行程序指令122,当由SoC 130执行这些指令时,使SoC 130和/或计算系统110实现已经讨论的方法76(图6)和/或方法84(图7)的一个或多个方面。因此,SoC 130可以执行指令122以确定关于诸如系统存储器116之类的存储器设备的平均带宽消耗,其中平均带宽消耗专用于多线程执行环境中线程的先前执行。SoC 130还可以执行指令122以存储平均带宽消耗(例如,到TCB),并响应于正在被调度的线程的后续执行而将平均带宽消耗发送到功率管理单元。在一个示例中,功率管理单元驻留在主机处理器112的逻辑硬件132(例如,可配置和/或固定功能硬件)中。
此外,逻辑硬件132可以包括第一组寄存器,用于相对于系统存储器116在每个线程的基础上累积多个线程的平均带宽消耗。在这种情况下,平均带宽消耗对应于多个线程的先前执行,并且逻辑硬件132实现方法92(图8)的一个或多个方面。因此,逻辑硬件132可以至少部分地基于平均带宽消耗来确定最小带宽需求,并且至少部分地基于最小带宽需求来设置系统存储器116的DVFS点。
逻辑硬件132还可以包括第二组寄存器,用于相对于系统存储器116在每个线程的基础上累积多个线程的最大带宽消耗,其中最大带宽消耗对应于多个线程的先前执行。在这种情况下,逻辑硬件132还至少部分地基于最大带宽消耗来确定最大带宽需求,其中DVFS点是进一步基于最大带宽需求来设置的。因此,计算系统110被认为性能至少被增强到这样的程度,即,基于最小带宽需求设置DVFS点消除或减少了存储器设备中过长或完全不必要的频率增加/尖峰。尽管逻辑硬件132被示出在主机处理器112内,但是逻辑硬件132可以位于计算系统110中的其他地方。
图10示出了半导体装置140(例如,芯片和/或封装)。所示装置140包括一个或多个衬底142(例如,硅、蓝宝石、砷化镓)和耦合到衬底142的逻辑144(例如,晶体管阵列和其他集成电路/IC组件)。在实施例中,逻辑144实现已经讨论过的方法92(图8)的一个或多个方面。因此,逻辑144可以包括第一组寄存器,用于相对于存储器设备在每个线程的基础上累积多个线程的平均带宽消耗,其中平均带宽消耗对应于多个线程的先前执行。逻辑144还可以至少部分地基于平均带宽消耗来确定最小带宽需求,并且至少部分地基于最小带宽需求来设置DVFS点。因此,半导体装置140的性能至少被增强到这样的程度,即,基于最小带宽需求设置DVFS点消除或减少了存储器设备中过长或完全不必要的频率增加/尖峰。
逻辑144可以至少部分地在可配置或固定功能硬件中实现。在一个示例中,逻辑144包括定位(例如,嵌入)在衬底142内的晶体管沟道区域。因此,逻辑144和衬底142之间的界面可以不是突变结(abrupt junction)。逻辑144也可以被认为包括生长在衬底142的初始晶片上的外延层。
附加说明和示例
示例1包括一种性能增强计算系统,包括:功率管理单元;处理单元,耦合到所述功率管理单元;以及存储器设备,耦合到所述处理单元,所述存储器设备包括一组指令,该组指令在由所述处理单元执行时,使得所述处理单元:确定关于所述存储器设备的平均带宽消耗,其中,所述平均带宽消耗专用于多线程执行环境中的线程的先前执行,存储所述平均带宽消耗,以及响应于正在被调度的线程的后续执行,将所述平均带宽消耗发送到所述功率管理单元。
示例2包括根据示例1所述的计算系统,其中,所述指令在被执行时还使得所述功率管理单元:确定关于所述存储器设备的最大带宽消耗,其中所述最大带宽消耗专用于所述线程的先前执行,存储所述最大带宽消耗,以及响应于正在被调度的线程的后续执行,将所述最大带宽消耗发送到所述功率管理单元。
示例3包括根据示例2所述的计算系统,其中,所述平均带宽消耗和所述最大带宽消耗被存储到线程控制块数据结构。
示例4包括根据示例1所述的计算系统,其中,所述指令在被执行时还使得所述计算系统:从硬件监控器接收总带宽消耗,并且其中,所述平均带宽消耗是基于所述总带宽消耗和所述线程的先前执行的持续时间来确定的。
示例5包括根据示例1-4中任一项所述的计算系统,其中,在所述先前执行或所述后续执行中的一者或多者的持续时间超过阈值时,将所述平均带宽消耗发送到功率管理控制器。
示例6包括根据示例5所述的计算系统,其中,所述指令在被执行时还使得所述计算系统:在所述先前执行或所述后续执行中的一者或多者的持续时间不超过所述阈值时,向功率管理控制器隐瞒所述平均带宽消耗。
示例7包括至少一个计算机可读存储介质,包括一组指令,该组指令在由计算系统执行时,使得所述计算系统:确定关于存储器设备的平均带宽消耗,其中,所述平均带宽消耗专用于多线程执行环境中的线程的先前执行;存储所述平均带宽消耗;以及响应于正在被调度的线程的后续执行,将所述平均带宽消耗发送到功率管理单元。
示例8包括根据示例7所述的至少一个计算机可读存储介质,其中,所述指令在被执行时还使得所述计算系统:确定关于所述存储器设备的最大带宽消耗,其中,所述最大带宽消耗专用于所述线程的先前执行;存储所述最大带宽消耗;以及响应于正在被调度的线程的后续执行,将所述最大带宽消耗发送到所述功率管理单元。
示例9包括根据示例8所述的至少一个计算机可读存储介质,其中,所述平均带宽消耗和所述最大带宽消耗被存储到线程控制块数据结构。
示例10包括根据示例7所述的至少一个计算机可读存储介质,其中,所述指令在被执行时还使得所述计算系统:从硬件监控器接收总带宽消耗,并且其中,所述平均带宽消耗是基于所述总带宽消耗和所述线程的先前执行的持续时间来确定的。
示例11包括根据示例7-10中任一项所述的至少一个计算机可读存储介质,其中,在所述先前执行或所述后续执行中的一者或多者的持续时间超过阈值时,将所述平均带宽消耗发送到功率管理控制器,并且其中,所述指令在被执行时还使得所述计算系统:在所述先前执行或所述后续执行中的一者或多者的持续时间不超过所述阈值时,向功率管理控制器隐瞒所述平均带宽消耗。
示例12包括根据示例7-10中任一项所述的至少一个计算机可读存储介质,其中,所述平均带宽消耗经由拓扑感知寄存器和功率管理胶囊(capsule)接口被发送到功率管理控制器。
示例13包括根据示例7-10中任一项所述的至少一个计算机可读存储介质,其中,为了向所述功率管理控制器发送所述平均带宽消耗,所述指令在被执行时使得所述计算系统:确认所述平均带宽消耗的第一部分和所述平均带宽消耗的第二部分在逻辑处理器外部是可见的;以及在所述第二部分在所述逻辑处理器上传输时写入所述第一部分。
示例14包括一种半导体装置,包括:一个或多个衬底;以及逻辑,耦合到所述一个或多个衬底,其中,所述逻辑至少部分地在可配置或固定功能硬件中的一个或多个中实现,其中,所述逻辑包括第一组寄存器,该第一组寄存器用于相对于存储器设备在每线程的基础上累积多个线程的平均带宽消耗,并且其中,所述平均带宽消耗对应于所述多个线程的先前执行,所述逻辑用于:至少部分地基于所述平均带宽消耗来确定最小带宽需求;以及至少部分地基于所述最小带宽需求来设置动态电压和频率缩放(DVFS)点。
示例15包括根据示例14所述的半导体装置,其中,所述逻辑还包括第二组寄存器,该第二组寄存器用于相对于所述存储器设备在每线程的基础上累积所述多个线程的最大带宽消耗,并且其中,所述最大带宽消耗对应于所述多个线程的先前执行,所述逻辑用于:至少部分地基于所述最大带宽消耗来确定最大带宽需求,其中,所述DVFS点是进一步基于所述最大带宽需求来设置的。
示例16包括根据示例15所述的半导体装置,其中,所述逻辑用于确定相对于所述存储器设备的非线程带宽消耗,并且其中,所述最大带宽需求和所述最小带宽需求是进一步基于所述非线程带宽消耗来确定的。
示例17包括根据示例14所述的半导体装置,其中,所述平均带宽消耗对应于正常优先级线程,其中,所述逻辑还包括第二组寄存器,该第二组寄存器用于相对于所述存储器设备在每线程的基础上累积高优先级线程的最大带宽消耗,其中,所述最大带宽消耗对应于所述高优先级线程的先前执行,并且其中,所述最小带宽需求是进一步基于所述最大带宽消耗来确定的。
示例18包括根据示例17所述的半导体装置,其中,所述逻辑用于确定关于所述存储器设备的非线程带宽消耗,并且其中,所述最小带宽需求是进一步基于所述非线程带宽消耗来确定的。
示例19包括根据示例17-18中任一项所述的半导体装置,其中,所述逻辑还包括水印寄存器,该水印寄存器用于记录所述最大带宽消耗。
示例20包括一种管理存储器带宽分配的方法,所述方法包括:通过第一组寄存器,相对于存储器设备在每线程的基础上累积多个线程的平均带宽消耗,其中,所述平均带宽消耗对应于所述多个线程的先前执行;通过耦合到一个或多个衬底的逻辑,至少部分地基于所述平均带宽消耗来确定最小带宽需求;以及通过耦合到一个或多个衬底的逻辑,至少部分地基于所述最小带宽需求来设置动态电压和频率缩放(DVFS)点。
示例21包括根据示例20所述的方法,还包括:通过第二组寄存器,相对于所述存储器设备在每线程的基础上累积所述多个线程的最大带宽消耗,其中,所述最大带宽消耗对应于所述多个线程的先前执行;以及通过耦合到一个或多个衬底的逻辑,至少部分地基于所述最大带宽消耗来确定最大带宽需求,其中,所述DVFS点是进一步基于所述最大带宽需求来设置的。
示例22包括根据示例21所述的方法,还包括:通过耦合到一个或多个衬底的逻辑,确定关于所述存储器设备的非线程带宽消耗,其中,所述最大带宽需求和所述最小带宽需求是进一步基于所述非线程带宽消耗来确定的。
示例23包括根据示例20所述的方法,其中,所述平均带宽消耗对应于正常优先级线程,所述方法还包括:通过第二组寄存器,相对于所述存储器设备在每线程的基础上累积高优先级线程的最大带宽消耗,其中,所述最大带宽消耗对应于所述高优先级线程的先前执行,并且其中,所述最小带宽需求是进一步基于所述最大带宽消耗来确定的。
示例24包括根据示例23所述的方法,还包括:确定关于所述存储器设备的非线程带宽消耗,其中,所述最小带宽需求是进一步基于所述非线程带宽消耗来确定的。
示例25包括根据示例23-24中任一项所述的方法,还包括:通过水印寄存器记录所述最大带宽消耗。
示例26包括一种装置,该装置包括用于执行示例20至25中任一项的方法的装置。
因此,本文所描述的技术提供了一种基于可从OS获得的每线程信息(例如,通过MBM/RDT特征或类似的东西)来选择DDR频率(例如,DVFS点)的主动解决方案。无论何时调度线程,都会通过PUNIT/Pcode中的技术来确定DDR BW需求,然后计算最佳DDR频率以提供所需的BW。本文所述的技术使用应用程序的历史行为(例如,由HW监控器捕获并发送到OS进行存储/处理),并在随后调度应用程序时应用历史行为来计算DDR BW和频率。基于历史线程特性主动设置DDR频率有助于避免被动机制的现有设计中应用的滞后现象。
实施例适用于与所有类型的半导体集成电路(“IC”)芯片一起使用。这些IC芯片的示例包括但不限于处理器、控制器、芯片组组件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片、片上系统(SoC)、SSD/NAND控制器ASIC等。此外,在一些附图中,信号导线用线表示。一些可以是不同的,以指示更多的组成信号路径,具有数字标签,以指示多个组成信号路径,和/或在一个或多个端部具有箭头,以指示主要信息流方向。然而,这不应被解释为限制性的。相反,这种添加的细节可以结合一个或多个示例性实施例来使用,以便于更容易地理解电路。任何表示的信号线,无论是否具有附加信息,实际上都可以包括一个或多个可以在多个方向上传播的信号,并且可以用任何合适类型的信号方案来实现,例如,用差分对实现的数字或模拟线、光纤线和/或单端线。
虽然实施例不限于此,但可以给出示例尺寸/型号/值/范围。随着制造技术(例如光刻)的成熟,预计可以制造更小尺寸的器件。此外,为了说明和讨论的简单性,到IC芯片和其他部件的众所周知的电源/接地连接可以在图中示出,也可以不示出,并且不使实施例的某些方面模糊不清。此外,可以以框图形式示出布置,以避免混淆实施例,并且还考虑到关于这种框图布置的实现的细节高度依赖于要在其中实现实施例的计算系统,即,这样的细节应该完全在本领域技术人员的范围内。在为了描述示例实施例而提出特定细节(例如,电路)的情况下,对于本领域的技术人员来说应该显而易见的是,可以在没有这些特定细节或有这些特定细节的变化的情况下实践实施例。因此,该描述被认为是说明性的而不是限制性的。
术语“耦合”在本文中可用于指所讨论的部件之间的任何类型的直接或间接关系,并可适用于电气、机械、流体、光学、电磁、机电或其他连接。此外,术语“第一”、“第二”等在本文仅可用于方便讨论,除非另有说明,否则不具有特定的时间或时间顺序意义。
如在本申请和权利要求中所使用的,术语“一个或多个”所连接的项目列表可以是所列术语的任何组合。例如,短语“A、B或C中的一个或多个”可能意味着A;B;C;A和B;A和C;B和C;或A、B和C。
本领域技术人员将从前述描述中理解,实施例的广泛技术可以以各种形式实现。因此,尽管已经结合实施例的特定实例描述了实施例,但是实施例的真实范围不应如此受限,因为通过研究附图、说明书和所附权利要求,其他修改对于本领域技术人员将变得显而易见。
Claims (25)
1.一种计算系统,包括:
功率管理单元;
处理单元,耦合到所述功率管理单元;以及
存储器设备,耦合到所述处理单元,所述存储器设备包括一组指令,该组指令在由所述处理单元执行时,使得所述处理单元:
确定关于所述存储器设备的平均带宽消耗,其中,所述平均带宽消耗专用于多线程执行环境中的线程的先前执行,
存储所述平均带宽消耗,以及
响应于正在被调度的所述线程的后续执行,将所述平均带宽消耗发送到所述功率管理单元。
2.根据权利要求1所述的计算系统,其中,所述指令在被执行时还使得所述功率管理单元:
确定关于所述存储器设备的最大带宽消耗,其中,所述最大带宽消耗专用于所述线程的先前执行,
存储所述最大带宽消耗,以及
响应于正在被调度的所述线程的后续执行,将所述最大带宽消耗发送到所述功率管理单元。
3.根据权利要求2所述的计算系统,其中,所述平均带宽消耗和所述最大带宽消耗被存储到线程控制块数据结构。
4.根据权利要求1所述的计算系统,其中,所述指令在被执行时还使得所述计算系统:从硬件监控器接收总带宽消耗,并且其中,所述平均带宽消耗是基于所述总带宽消耗和所述线程的先前执行的持续时间来确定的。
5.根据权利要求1所述的计算系统,其中,在所述先前执行或所述后续执行中的一者或多者的持续时间超过阈值时,将所述平均带宽消耗发送到功率管理控制器。
6.根据权利要求1-5中任一项所述的计算系统,其中,所述指令在被执行时还使得所述计算系统:在所述先前执行或所述后续执行中的一者或多者的持续时间不超过阈值时,向功率管理控制器隐瞒所述平均带宽消耗。
7.至少一个计算机可读存储介质,包括一组指令,该组指令在由计算系统执行时,使得所述计算系统:
确定关于存储器设备的平均带宽消耗,其中,所述平均带宽消耗专用于多线程执行环境中的线程的先前执行;
存储所述平均带宽消耗;以及
响应于正在被调度的所述线程的后续执行,将所述平均带宽消耗发送到功率管理单元。
8.根据权利要求7所述的至少一个计算机可读存储介质,其中,所述指令在被执行时还使得所述计算系统:
确定关于所述存储器设备的最大带宽消耗,其中,所述最大带宽消耗专用于所述线程的先前执行;
存储所述最大带宽消耗;以及
响应于正在被调度的所述线程的后续执行,将所述最大带宽消耗发送到所述功率管理单元。
9.根据权利要求8所述的至少一个计算机可读存储介质,其中,所述平均带宽消耗和所述最大带宽消耗被存储到线程控制块数据结构。
10.根据权利要求7所述的至少一个计算机可读存储介质,其中,所述指令在被执行时还使得所述计算系统:从硬件监控器接收总带宽消耗,并且其中,所述平均带宽消耗是基于所述总带宽消耗和所述线程的先前执行的持续时间来确定的。
11.根据权利要求7所述的至少一个计算机可读存储介质,其中,在所述先前执行或所述后续执行中的一者或多者的持续时间超过阈值时,将所述平均带宽消耗发送到功率管理控制器,并且其中,所述指令在被执行时还使得所述计算系统:在所述先前执行或所述后续执行中的一者或多者的持续时间不超过所述阈值时,向功率管理控制器隐瞒所述平均带宽消耗。
12.根据权利要求7所述的至少一个计算机可读存储介质,其中,所述平均带宽消耗经由拓扑感知寄存器和功率管理胶囊接口被发送到功率管理控制器。
13.根据权利要求7-12中任一项所述的至少一个计算机可读存储介质,其中,为了向功率管理控制器发送所述平均带宽消耗,所述指令在被执行时使得所述计算系统:
确认所述平均带宽消耗的第一部分和所述平均带宽消耗的第二部分在逻辑处理器外部是可见的;以及
在所述第二部分在所述逻辑处理器上传输时写入所述第一部分。
14.一种半导体装置,包括:
一个或多个衬底;以及
逻辑,耦合到所述一个或多个衬底,其中,所述逻辑至少部分地在可配置或固定功能硬件中的一个或多个中实现,其中,所述逻辑包括第一组寄存器,该第一组寄存器用于相对于存储器设备在每线程的基础上累积多个线程的平均带宽消耗,并且其中,所述平均带宽消耗对应于所述多个线程的先前执行,所述逻辑用于:
至少部分地基于所述平均带宽消耗来确定最小带宽需求;以及
至少部分地基于所述最小带宽需求来设置动态电压和频率缩放(DVFS)点。
15.根据权利要求14所述的半导体装置,其中,所述逻辑还包括第二组寄存器,该第二组寄存器用于相对于所述存储器设备在每线程的基础上累积所述多个线程的最大带宽消耗,并且其中,所述最大带宽消耗对应于所述多个线程的先前执行,所述逻辑用于:
至少部分地基于所述最大带宽消耗来确定最大带宽需求,其中,所述DVFS点是进一步基于所述最大带宽需求来设置的。
16.根据权利要求15所述的半导体装置,其中,所述逻辑用于确定相对于所述存储器设备的非线程带宽消耗,并且其中,所述最大带宽需求和所述最小带宽需求是进一步基于所述非线程带宽消耗来确定的。
17.根据权利要求14所述的半导体装置,其中,所述平均带宽消耗对应于正常优先级线程,其中,所述逻辑还包括第二组寄存器,该第二组寄存器用于相对于所述存储器设备在每线程的基础上累积高优先级线程的最大带宽消耗,其中,所述最大带宽消耗对应于所述高优先级线程的先前执行,并且其中,所述最小带宽需求是进一步基于所述最大带宽消耗来确定的。
18.根据权利要求17所述的半导体装置,其中,所述逻辑用于确定关于所述存储器设备的非线程带宽消耗,并且其中,所述最小带宽需求是进一步基于所述非线程带宽消耗来确定的。
19.根据权利要求14-18中任一项所述的半导体装置,其中,所述逻辑还包括水印寄存器,该水印寄存器用于记录所述最大带宽消耗。
20.一种方法,包括:
通过第一组寄存器,相对于存储器设备在每线程的基础上累积多个线程的平均带宽消耗,其中,所述平均带宽消耗对应于所述多个线程的先前执行;
通过耦合到一个或多个衬底的逻辑,至少部分地基于所述平均带宽消耗来确定最小带宽需求;以及
通过耦合到一个或多个衬底的逻辑,至少部分地基于所述最小带宽需求来设置动态电压和频率缩放(DVFS)点。
21.根据权利要求20所述的方法,还包括:
通过第二组寄存器,相对于所述存储器设备在每线程的基础上累积所述多个线程的最大带宽消耗,其中,所述最大带宽消耗对应于所述多个线程的先前执行;以及
通过耦合到一个或多个衬底的逻辑,至少部分地基于所述最大带宽消耗来确定最大带宽需求,其中,所述DVFS点是进一步基于所述最大带宽需求来设置的。
22.根据权利要求21所述的方法,还包括:通过耦合到一个或多个衬底的逻辑,确定关于所述存储器设备的非线程带宽消耗,其中,所述最大带宽需求和所述最小带宽需求是进一步基于所述非线程带宽消耗来确定的。
23.根据权利要求20所述的方法,其中,所述平均带宽消耗对应于正常优先级线程,所述方法还包括:通过第二组寄存器,相对于所述存储器设备在每线程的基础上累积高优先级线程的最大带宽消耗,其中,所述最大带宽消耗对应于所述高优先级线程的先前执行,并且其中,所述最小带宽需求是进一步基于所述最大带宽消耗来确定的。
24.根据权利要求23所述的方法,还包括:确定关于所述存储器设备的非线程带宽消耗,其中,所述最小带宽需求是进一步基于所述非线程带宽消耗来确定的。
25.根据权利要求20-24中任一项所述的方法,还包括:通过水印寄存器,记录所述最大带宽消耗。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/518,186 | 2021-11-03 | ||
US17/518,186 US20230137769A1 (en) | 2021-11-03 | 2021-11-03 | Software thread-based dynamic memory bandwidth allocation |
PCT/US2022/077671 WO2023081567A1 (en) | 2021-11-03 | 2022-10-06 | Software thread-based dynamic memory bandwidth allocation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117581206A true CN117581206A (zh) | 2024-02-20 |
Family
ID=86147149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280046764.7A Pending CN117581206A (zh) | 2021-11-03 | 2022-10-06 | 基于软件线程的动态存储器带宽分配 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230137769A1 (zh) |
EP (1) | EP4427130A1 (zh) |
CN (1) | CN117581206A (zh) |
WO (1) | WO2023081567A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483013B (zh) * | 2023-06-19 | 2023-09-05 | 成都实时技术股份有限公司 | 一种基于多通道采集器的高速信号采集系统及方法 |
CN117149447B (zh) * | 2023-10-31 | 2024-02-13 | 苏州元脑智能科技有限公司 | 带宽调整方法、装置、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8209493B2 (en) * | 2008-03-26 | 2012-06-26 | Intel Corporation | Systems and methods for scheduling memory requests during memory throttling |
US9298243B2 (en) * | 2013-07-01 | 2016-03-29 | Advanced Micro Devices, Inc. | Selection of an operating point of a memory physical layer interface and a memory controller based on memory bandwidth utilization |
US20150378424A1 (en) * | 2014-06-27 | 2015-12-31 | Telefonaktiebolaget L M Ericsson (Publ) | Memory Management Based on Bandwidth Utilization |
US20170083474A1 (en) * | 2015-09-22 | 2017-03-23 | Advanced Micro Devices, Inc. | Distributed memory controller |
US9965220B2 (en) * | 2016-02-05 | 2018-05-08 | Qualcomm Incorporated | Forced idling of memory subsystems |
-
2021
- 2021-11-03 US US17/518,186 patent/US20230137769A1/en active Pending
-
2022
- 2022-10-06 CN CN202280046764.7A patent/CN117581206A/zh active Pending
- 2022-10-06 EP EP22890943.8A patent/EP4427130A1/en active Pending
- 2022-10-06 WO PCT/US2022/077671 patent/WO2023081567A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20230137769A1 (en) | 2023-05-04 |
EP4427130A1 (en) | 2024-09-11 |
WO2023081567A1 (en) | 2023-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117581206A (zh) | 基于软件线程的动态存储器带宽分配 | |
CN106598184B (zh) | 在处理器中执行跨域热控制 | |
US20200192832A1 (en) | Influencing processor governance based on serial bus converged io connection management | |
US10831539B2 (en) | Hardware thread switching for scheduling policy in a processor | |
US7398378B2 (en) | Allocating lower priority interrupt for processing to slave processor via master processor currently processing higher priority interrupt through special interrupt among processors | |
GB2464403A (en) | Modifying a relaxed ordering attribute for a read completion transaction | |
US20190146699A1 (en) | Dynamic configuration of compressed virtual memory | |
JP2021099782A (ja) | ファンクション・アズ・ア・サービスコンピューティングのための統一プログラミングモデル | |
KR20180011865A (ko) | 런타임 전력 효율 결정들에 기초한 적응형 하드웨어 가속 | |
JP2024516072A (ja) | ランダム書き込みssdワークロードに対する動的なプログラム一時中断無効化 | |
TWI845762B (zh) | 用於分割異質系統的電腦應用的自動學習科技的系統、半導體設備、方法及儲存媒體 | |
EP3971718A1 (en) | Application negotiable resource director technology for efficient platform resource management | |
JP2021096829A (ja) | 分散環境における深層学習トレーニングの最適化のためのランタイムにおけるサービスクラス属性の初期化及び管理 | |
US12008383B2 (en) | Hardware directed core parking based on performance and energy efficiency capabilities of processing units and runtime system characteristics | |
US10761586B2 (en) | Computer performance and power consumption optimization | |
US11989129B2 (en) | Multiple virtual NUMA domains within a single NUMA domain via operating system interface tables | |
WO2022099531A1 (en) | Offloading reliability, availability and serviceability runtime system management interrupt error handling to cpu on-die modules | |
EP3977292B1 (en) | Avoidance of garbage collection in high performance memory management systems | |
US10915356B2 (en) | Technology to augment thread scheduling with temporal characteristics | |
EP3869344A1 (en) | Technology to ensure sufficient memory type range registers to fully cache complex memory configurations | |
JP7397179B2 (ja) | 階層化オブジェクトメモリ配置のためのランタイム装置の管理 | |
US11853140B2 (en) | Power management based on limiting hardware-forced power control | |
CN116107955A (zh) | 加速器多核心片上系统中的动态可配置多模式存储器分配 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |