CN110168503A - 时间片插装设施 - Google Patents
时间片插装设施 Download PDFInfo
- Publication number
- CN110168503A CN110168503A CN201780082594.7A CN201780082594A CN110168503A CN 110168503 A CN110168503 A CN 110168503A CN 201780082594 A CN201780082594 A CN 201780082594A CN 110168503 A CN110168503 A CN 110168503A
- Authority
- CN
- China
- Prior art keywords
- timeslice
- processing unit
- execution interval
- event
- execution
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5033—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/885—Monitoring specific for caches
-
- 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/508—Monitor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
- Executing Machine-Instructions (AREA)
Abstract
提供一种用于在处理单元执行期间收集时间片插装信息的设施。该设施至少部分地计数在处理单元执行的时间片期间指定处理单元事件的发生。保留在该时间片的第一执行间隔和第二执行间隔期间发生的所计数的事件。该第一执行间隔在该时间片上比该第二执行间隔更早,所计数的事件促进调整该处理单元的性能。在实施例中,该时间片是处理单元执行的邻接时间周期,该指定处理单元事件包括高速缓存事件。该处理单元可跨多个邻接时间片交错多个不同工作单元的处理,并且在单个时间片期间,该多个不同工作单元中的单个工作单元由该处理单元处理。
Description
背景技术
一般而言,一个或多个方面涉及计算环境内的处理,尤其涉及改进这种处理。
在计算机系统中,调度器(scheduler)可通过在待执行的各种工作单元间指派优先权来管理将工作单元分配给计算机资源。该调度器确定何时分派(dispatch)工作单元,分派给哪个计算机资源,以及被分配为占用资源的持续时间。工作负载调度器可包括在调度器的控制下追踪在机器上执行的代理程序。控制器的数据库持有待执行的工作的细节、调度指令以及关于资源和限制的信息。数据库可提供信息以确定工作将在未来执行的时间。另外,详细的生产调度从该信息获得以允许当过程完成且资源可用时提交工作。
工作调度软件可通过将工作集或工作单元分组来改进工作负载的性能,其中累积高速缓存占用面积类似于但不超过所分配的处理单元的总高速缓存结构。通常,工作负载经周期性地调度以用于在时间碎片中处理。将每个时间碎片(fragment)考虑为时间片(time-slice)。
发明内容
通过提供用于促进计算环境中的处理的计算机程序产品来克服现有技术的缺点及提供额外优点。该计算机程序产品包括存储介质,该存储介质可由处理电路读取并且存储用于由处理电路执行以用于执行方法的指令。该方法包括例如在执行期间收集用于处理单元的时间片插装(time-slice-instrumentation)信息。该收集包括:至少部分地计数在该处理单元执行的时间片期间指定处理单元事件的发生;以及保留在该时间片内的第一执行间隔以及该时间片内的第二执行间隔期间发生的所计数的处理单元事件。该第一执行间隔在该时间片上比该第二执行间隔更早,所计数的处理单元事件促进调整该处理单元的性能。
有利地,通过提供在本文中被称为时间片插装的处理器或处理单元插装来增强计算环境处理,该处理器或处理单元插装是(用于工作调度软件)获得在处理工作单元时的两个不同的时间周期期间(即,在处理单元的时间片的两个不同的执行间隔内)在处理单元内发生的事件的测量的设施。所测量的(或所计数的)指定处理单元事件可包括本地高速缓存度量。记录测量的间隔时间对应于处理器的处理工作单元的邻接时间(即,时间片)内的早和晚间隔。所计数的处理单元事件被保留,并且可例如由工作负载调度器分析以用于在后续工作分派决策期间的考虑。有利地,该设备提供(在一个或多个方面中)减少处理单元高速缓存未命中的机制,从而改进针对单个工作单元以及一般针对工作负载的性能。
在一个或多个实施方式中,本文中提出的设施引入新插装计数器、新计数器日志、启动计数器数据收集的新指令以及读取和存储计数器日志的新指令。本文中公开的对计数器和日志的访问可受限于处于监督器状态的程序。
更特别地,在一个或多个实施方式中,时间片可以是处理单元执行的邻接时间周期,指定处理单元事件可为高速缓存事件或包括高速缓存事件。该处理单元可跨多个邻接时间片交错多个不同工作单元的处理,在单个时间片期间,该多个不同工作单元的单个工作间隔由该处理单元处理。
在一个或多个实施例中,该第一执行间隔包括在时间片内的初始执行间隔,该第二执行间隔包括在时间片内的最近完成的执行间隔。第一执行间隔与第二执行间隔可具有相等的持续时间。另外,在一个或多个实施例中,第二执行间隔可包括在时间片内的最后执行间隔。
在一个或多个实施方式中,计数可包括:使用处理单元本地的时间片插装计数器,并执行在处理单元执行的时间片期间指定处理单元事件的发生的计数。在一个实施例中,该指定处理单元事件可包括选自包括以下项的组的高速缓存事件:高速缓存未命中和高速缓存命中。
通过示例,在一个或多个实施例中,收集可通过执行时间片插装开指令来启动,所计数的处理单元事件的保留可通过执行存储时间片插装计数器指令来启动。
在另一方面中,提供一种用于促进计算环境内的处理的计算机系统。该计算机系统包括存储器,以及与该存储器通信地耦接的处理器,其中该计算机系统被配置为执行方法。该方法包括在执行期间收集用于处理单元的时间片插装信息。该收集包括:至少部分地计数在该处理单元执行的时间片期间指定处理单元事件的发生;以及保留在该时间片内的第一执行间隔以及在该时间片内的第二执行间隔期间发生的所计数的处理单元事件。该第一执行间隔在该时间片上比该第二执行间隔更早,所计数的处理单元事件促进调整该处理单元的性能。
在再一方面中,提供一种促进计算环境内的处理的计算机实现的方法。该计算机实现的方法包括例如在执行期间收集用于处理单元的时间片插装信息。该收集包括:至少部分地计数在该处理单元执行的时间片期间指定处理单元事件的发生;以及保留在该时间片内的第一执行间隔和在该时间片内的第二执行间隔期间发生的所计数的处理单元事件。该第一执行间隔在该时间片上比该第二执行间隔更早,所计数的处理单元事件促进调整该处理单元的性能。
通过本文中所描述的技术实现额外特征及优点。本文中详细描述其它实施例及方面,并且将其视为所要求保护的方面的一部分。
附图说明
在本说明书的结论处的权利要求中,一个或多个方面作为示例被特别指出并清楚地要求保护。通过以下结合附图的详细描述,一个或多个方面的前述内容和目的、特征及优点是显而易见的,在附图中:
图1A描绘了结合和使用本发明的一个或多个方面的计算环境的一个示例;
图1B描绘了根据本发明的一方面的图1A中的处理单元的进一步的细节;
图2A描绘了结合和使用本发明的一个或多个方面的计算环境的另一示例;
图2B描绘了图2A的存储器的进一步的细节;
图3描绘了根据本发明的一个或多个方面的利用时间片插装设施执行的处理的一个实施例;
图4A描绘了根据本发明的一个或多个方面的时间片插装开(TSION)指令的一个示例;
图4B描绘了根据本发明的一个或多个方面的存储时间片插装计数器(STSIC)指令的一个示例;
图4C描绘了根据本发明的一个或多个方面的由存储时间片插装计数器(STSIC)指令提取的数据结构存储测量的一个实施例;
图5A描绘了根据本发明的一个或多个方面的将要由处理单元执行并且经历时间片插装监视的工作负载的一个示例;
图5B描绘了根据本发明的一个或多个方面的针对在图5A的数据结构中识别的每个工作单元在相应时间片内的第一和最后执行间隔期间的高速缓存度量的示例测量;
图5C描绘了根据本发明的一个或多个方面的在已评估时间片插装测量并且示出针对图5A的工作负载的一个或多个工作单元的已改进的高速缓存度量之后的修改的执行调度的示例;
图6A至图6B描绘了根据本发明的一个或多个方面的时间片插装处理的一个示例;
图7描绘了云计算环境的一个实施例;以及
图8描绘了抽象模型层的一个示例。
具体实施方式
改进的计算环境性能由在本文中被称为时间片插装(TSI)的计算机处理单元插装提供,该计算机处理单元插装提供用于工作调度(例如,工作调度软件)以在处理单元正处理相应工作单元时获得在时间片内的两个不同的执行间隔期间在诸如中央处理单元(CPU)的处理单元(PU)内发生的事件的测量的设施。所测量的处理单元事件可包括本地高速缓存度量。在一个或多个实施例中,记录测量的周期对应于PU处理的时间片(即,邻接时间单元)内的早和晚间隔。所获得的测量可由提供为操作系统组件的工作负载调度器分析,并且在后续工作分派决策期间考虑。所得益处可以是减少的处理单元高速缓存未命中,从而是针对单个工作单元以及针对作为整体的工作负载的改进的性能。
本文中公开的时间片插装设施给操作系统提供了在处理器执行的时间片内测量例如单独的执行间隔期间的高速缓存结构事件的能力。所监视的高速缓存事件可与机器相关,并且可包括共同的高速缓存相关的性能度量,诸如,高速缓存未命中、高速缓存命中、MRU等。收集新插装的两个执行时间周期具有例如相等的持续时间,并且在一个实施例中,由软件对硬件识别。在一个或多个实施方式中,当高速缓存为“冷”时,第一执行间隔可涵盖工作单元的所分派的时间片的开头,而当高速缓存为“暖”时,第二执行周期可涵盖工作单元的所分派的时间片的末尾。所计数的处理单元事件的保留结果可针对时间片来比较,并用于恰当地修改后续工作负载分派分组。本文中公开的时间片插装设施可被实现为与处理单元相关联的独立设施。如下文进一步描述,可使用新插装计数器、新计数器日志和新指令来启动新计数器数据收集,以及读取和存储新计数器日志。对新计数器和日志的访问可受限于处于监督器状态的程序。
更特别地,本文中公开的时间片插装设施在安装时为控制程序(诸如,工作负载调度器)提供用于测量例如在共同时间片内的两个程序执行间隔期间的某些处理单元事件的能力。时间片插装(TSI)设施包括:每个处理单元本地的重复间隔脉冲、每个处理单元本地的多个TSI计数器、每个处理单元本地的针对所有TSI计数器的TSI计数器日志的对,以及启动和提取数据测量的指令,该指令包括时间片插装开(TSION)和存储时间片插装计数器(STSIC)。当时间片插装在处理单元上有效时,如以下进一步解释的,处理单元周期性地重新开始计数处理单元事件的数量,诸如,高速缓存未命中或高速缓存命中。
处理单元维护在例如时间片内的初始和最近完成的执行间隔期间发生的所计数的事件的历史。所记录并保存的TSI计数器值可被称为TSI计数器日志。如所指出,时间片插装可通过使用时间片插装开指令来激活,并且如本文中描述的,所测量的数据可通过使用存储时间片插装计数器指令来获得。
参考图1A描述结合和使用本发明的一个或多个方面的计算环境的一个实施例。在一个示例中,计算环境基于由纽约阿蒙克市的国际商业机器公司提供的z/体系结构。在2015年3月的IBM公开号为SA22-7832-10的“z/Architecture Principles of Operation(z/体系结构的工作原理)”中描述了z/体系结构的一个实施例,其在此以全文引用的方式并入本文中。Z/ARCHITECTURE是美国纽约阿蒙克市的国际商业机器公司的注册商标。
在另一示例中,计算环境基于由纽约阿蒙克市的国际商业机器公司提供的Power体系结构。在2015年4月9日的国际商业机器公司的“Power ISATMVersion 2.07B(Power ISATM版本2.07B)”中描述了Power体系结构的一个实施例,其在此以全文引用的方式并入本文中。POWER ARCHITECTURE为美国纽约阿蒙克市的国际商业机器公司的注册商标。
计算环境还可以基于其它体系结构,包括但不限于英特尔x86体系结构。也存在其它例子。
如图1A所示,计算环境100包括例如节点10,该节点具有例如计算机系统/服务器12,该计算机系统/服务器与众多其它通用或专用计算系统环境或配置一起操作。可适于与计算机系统/服务器12一起操作的众所周知的计算系统、环境和/或配置的示例包括但不限于:个人计算机(PC)系统、服务器计算机系统、瘦客户机、厚客户机、手持型或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费型电子产品、网络PC、小型计算机系统、大型计算机系统及包括以上系统或设备中的任一者的分布式云计算环境等。
可在由计算机系统执行的计算机系统可执行指令(诸如,程序模块)的一般情境下描述计算机系统/服务器12。通常,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可在多个计算环境中实践,包括但不限于通过通信网络链接的远程处理设备执行任务的分布式云计算环境。在分布式云计算环境中,程序模块可位于包括存储器存储设备的本地和远程计算机系统存储介质两者中。
如图1A所示,计算机系统/服务器12以通用计算设备的形式示出。计算机系统/服务器12的组件可以包括但不限于一个或多个处理器或处理单元16,系统存储器28,以及将包括系统存储器28的各种系统组件耦接到处理器16的总线18。
总线18表示几种类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及处理器或使用多种总线体系结构中的任何总线体系结构的局域总线。作为示例而非限制,这样的体系结构包括工业标准体系结构(ISA)总线,微通道体系结构(MCA)总线,增强型ISA(EISA)总线,视频电子标准协会(VESA)局域总线和外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,它包括易失性和非易失性介质,可移动和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统34可以用于读写不可移动的、非易失性磁介质(未示出并且通常称为“硬盘驱动器”)。尽管未示出,但是可以提供用于对可移动非易失性磁盘(例如,“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(诸如CD-ROM,DVD-ROM或其它光学介质)读写的光盘驱动器。在这种情况下,每个驱动器可以通过一个或多个数据介质接口连接到总线18。如下面将进一步描绘和描述的,存储器28可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,这些程序模块被配置为执行本发明的实施例的功能。
以示例说明而非限制,具有一组(至少一个)程序模块42的程序/实用工具40以及操作系统17、一个或多个应用程序、其它程序模块和程序数据可存储在存储器28中。操作系统、一个或多个应用程序、其它程序模块和程序数据中的每一个或它们的某种组合可包括网络环境的实现。程序模块42通常执行如本文所描述的本发明的实施例的功能和/或方法。
计算机系统/服务器12还可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信;还可与一个或多个使得用户能够与计算机系统/服务器12交互的设备通信;和/或与使得计算机系统/服务器12能够与一个或多个其它计算设备进行通信的任何设备(例如,网卡,调制解调器等)通信。这种通信可以通过输入/输出(I/O)接口22进行。此外,计算机系统/服务器12还可以通过网络适配器20与一个或多个网络(例如局域网(LAN),广域网(WAN),和/或公共网络(例如,因特网))通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它组件通信。应该理解,尽管未示出,但是其它硬件和/或软件组件可以与计算机系统/服务器12结合使用。示例包括但不限于:微代码,设备驱动器,冗余处理单元,外部磁盘驱动阵列,RAID系统,磁带驱动器和数据备份存储系统等。
作为示例,处理单元16包括用于执行指令的多个功能组件。如图1B中所描绘,这些功能组件包括:例如,用于提取要执行的指令的指令提取组件120;用于解码所提取的指令的指令解码单元122;用于执行解码指令的指令执行组件124;在需要的情况下,访问用于指令执行的存储器的存储器访问组件126;以及提供执行指令的结果的写回组件130。根据本发明的一个方面,如以下进一步描述的,这些组件中的一个或多个可用于实现时间片插装设备136,在一个或多个实施例中,其包括重复执行间隔137、TSI计数器138和TSI计数器日志139。
在一个实施例中,处理单元16还包括由该功能组件中的一个或多个使用的一个或多个寄存器140。
参考图2A描述了结合和使用一个或多个方面的计算环境的另一实施例。在此示例中,计算环境200包括:例如,本机中央处理单元(CPU)202、存储器204,以及经由例如一个或多个总线208和/或其它连接而彼此耦接的一个或多个输入/输出设备和/或接口206。作为示例,计算环境200可包括:由纽约阿蒙克市的国际商业机器公司提供的PowerPC处理器或pSeries服务器;由加利福尼亚州帕洛阿尔托的惠普公司提供的配备英特尔安腾II处理器的HP Superdome;和/或基于由国际商业机器公司、惠普公司、因特尔公司、甲骨文公司或其它公司提供的体系结构的其它机器。
本机中央处理单元202包括一个或多个本机寄存器210,诸如,在环境内的处理期间使用的一个或多个通用寄存器和/或一个或多个专用寄存器。这些寄存器包括表示在任何特定时间点的环境状态的信息。
此外,本机中央处理单元202执行存储在存储器204中的指令和代码。在一个特定示例中,中央处理单元执行存储在存储器204中的仿真器代码212。该代码使得在一个体系结构中配置的计算环境能够仿真另一种体系结构。例如,仿真器代码212允许基于不同于z/体系结构的体系结构的机器(诸如,PowerPC处理器、pSeries服务器、HP Superdome服务器或其它)仿真z/体系结构并执行基于z/体系结构开发的软件和指令。
参考图2B描述与仿真器代码212有关的进一步细节。存储在存储器204中的访客指令250包括被开发为在不同于本机CPU 202的体系结构的体系结构中执行的软件指令(例如,与机器指令相关)。例如,访客指令250可能已经被设计为在z/体系结构处理器上执行,但是相反地,其在可以是例如英特尔安腾II处理器的本机CPU 202上进行仿真。在一个示例中,仿真器代码212包括指令提取例程252,以从存储器204获得一个或多个访客指令250,并且可选地为所获得的指令提供本地缓冲。它还包括指令转换例程254,以确定所获得的访客指令的类型,并将访客指令转换成一个或多个对应的本机指令256。该转换包括:例如,识别将要由访客指令执行的功能,并选择执行该功能的本机指令。
另外,仿真器代码212包括仿真控制例程260以使本机指令被执行。仿真控制例程260可使本机CPU 202执行仿真一个或多个先前所获得的访客指令的本机指令的例程,并且在这种执行结束时,将控制返回到指令提取例程以仿真下一个访客指令或访客指令组的获得。本机指令256的执行可包括:将数据从存储器204加载到寄存器中;将数据从寄存器存储回存储器;或者执行如由转换例程确定的某种类型的算术或逻辑运算。
每个例程例如以软件实现,该软件存储在存储器中并由本机中央处理单元202执行。在其它示例中,一个或多个例程或操作以固件、硬件、软件或它们的一些组合实现。所仿真处理器的寄存器可使用本机CPU的寄存器210或通过使用存储器204中的位置来仿真。在实施例中,访客指令250、本机指令256和仿真器代码212可驻留在同一存储器中或可分配在不同的存储器设备中。
如本文中所使用的,固件包括例如处理器的微代码、毫代码(millicode)和/或宏代码。例如,该术语包括用于实现更高级机器代码的硬件级指令和/或数据结构。在一个实施例中,固件可包括例如通常作为微代码传送的专有代码,其包括特定于底层硬件的可信软件或微代码,并控制对系统硬件的操作系统访问。
已获得、转换并执行的访客指令250例如是本文中描述的时间片插装开(TSION)或存储时间片插装计数器(STSIC)指令。将具有一种体系结构(例如,z/体系结构)的指令从存储器中提取、转换并表示为一系列的具有另一种体系结构(例如,PowerPC、pSeries、Intel等)的本机指令256。然后可执行这些本机指令。
本文中描述关于时间片插装开(TSION)指令和储存时间片插装计数器(STSIC)指令的一个或多个实施例的细节,包括指令的字段和(在本机或仿真系统中)处理器的执行。
根据本发明的一个或多个方面,提供一种用于在执行期间收集用于处理单元(诸如,在工作单元的执行期间用于中央处理单元)的时间片插装信息的时间片插装设施。可由本文中公开的时间片插装开(TSION)指令启动的收集可包括:至少部分地计数在处理单元执行的时间片期间指定处理单元事件的发生,以及保留在时间片内的第一执行间隔以及在时间片内的第二执行间隔期间发生的所计数的处理单元事件。该第一执行间隔在时间片上比该第二执行间隔更早,并且已保留的所计数的处理单元事件促进调整该处理单元的性能。可通过执行本文中公开的存储时间片插装计数器(STSIC)指令来启动该保留。
在一个或多个实施方式中,时间片可以是处理单元执行的邻接时间周期,指定处理单元事件可以是高速缓存事件或可包括高速缓存事件。通过示例,处理单元可被调度为跨多个邻接时间片交错多个不同工作单元的处理,并且在单个时间片期间,多个不同工作单元中的单个工作单元可由该处理单元处理。在一个或多个实施方式中,第一执行间隔包括在相应时间片内的初始执行间隔,第二执行间隔包括在该时间片内的最近执行间隔。在实施方式中,第一执行间隔与第二执行间隔可具有相等的持续时间。通过示例,第二执行间隔可以是时间片内的最后执行间隔。
在一个或多个实施例中,计数可包括:在执行在处理单元执行的时间片期间指定处理单元事件的发生的计数中,使用处理单元本地的时间片插装计数器。通过特定示例,指定处理单元事件可包括数据高速缓存事件,诸如,高速缓存未命中或高速缓存命中。如所指出,收集可通过执行时间片插装开指令来启动,计数和保留中的至少一者可通过执行存储时间片插装计数器指令来启动。
时间片插装设施在安装时为控制程序(诸如,操作系统)提供用于测量在时间片内的两个程序执行间隔期间发生的某些处理单元事件(诸如,CPU事件)的能力。时间片插装(TSI)设施包括每个处理单元本地的重复间隔脉冲、每个处理单元本地的多个TSI计数器,以及用于每个处理单元本地的TSI计数器的TSI计数器日志的对。当时间片插装在处理单元上有效时,处理单元周期性地重新开始计数事件的数量。该处理单元可维持在时间片内的初始和最近完成的执行间隔期间发生的所计数的事件的历史。所记录和保存的时间片计数器值在本文中被称为TSI计数器日志。如所指出,时间片插装可通过使用时间片插装开指令来激活,并且所测量的数据可通过使用存储时间片插装计数器指令来获得。
在一个或多个实施方式中,由时间片插装设施提供的测量数据可用于在工作单元的PU执行的时间片内的两个分开的执行间隔期间获得的性能相关的特性的统计比较。
图3描绘了根据本发明的一个或多个方面的处理的一个实施例。如所说明,该处理可包括在执行期间获得用于处理单元的时间片插装信息(诸如本文中所描述的)300。时间片插装信息可接着例如由操作系统或工作负载调度器用于例如通过重新调度工作单元到处理单元310的指派来调整处理单元的性能。
图4A描绘了时间片插装开指令400的一个示例。如图所示,该指令包括指示时间片插装开操作的操作码字段401。
处于监督器状态的时间片插装开指令的执行启动在处理单元中的时间片插装数据收集,其可包括例如:
·将TSI计数器复位为包含零
·将TSI计数器日志复位为包含十六进制数FFFFFFFF
·开始时间片插装周期性间隔
·在对应的TSI计数器中开始计数指定处理单元事件的每次发生
在一个或多个实施例中,条件码保持不变。
在第一间隔完成后,每个TSI计数器值被记录并且被本地保藏在对应的TSI计数器第一间隔日志中,它的一个实施例在图4C中示出,其中TSI计数器第一间隔日志420在数据结构的左侧。然后,可将TSI计数器复位为包含零,并且TSI计数器恢复计数对应的处理单元事件。在任一后续间隔完成后,每个TSI计数器值可被记录,并且被本地保藏在对应的TSI计数器最后间隔日志421中,如图4C中所示。此后,再次将TSI计数器复位为包含零,并且TSI计数器恢复计数对应的CPU事件。
TSI间隔持续时间可为机器相关的处理单元循环的数量,其可通过记录于例如图4C的数据结构中的时间片插装版本号(TSIVN)422来确定。如本领域技术人员所理解,不同计算机器可在不同数量的循环上操作,和/或不同处理单元事件可取决于TSI版本号来测量。
在一个或多个实施方式中,监视处理单元事件的TSI计数器的数量可例如从1变化到7。TSI计数器的数量可与机器相关。由每个TSI计数器监视的处理单元事件也可与机器相关。同样地,时间片插装的型号相关特性可通过时间片插装版本号422(图4C)来确定。
在一个或多个实施例中,TSI计数器可为32位(仅作为一个示例)。每个TSI计数器可在32位的第一间隔日志420(图4C)和32位的最后间隔日志421中记录所测量的值,其中将任意TSI计数器中的位位置0的进位舍弃。在一个或多个实施例中,TSI计数器可计数处于监督器状态和问题状态的处理单元事件。在处理单元重试和处理单元复位期间,在一个实施例中,可将TSI计数器复位为0,可将TSI计数器日志复位为例如十六进制数FFFFFFFF,并且直至后续时间片插装开指令成功地完成,时间片计数器才会增加。由处理单元辨识的混杂条件可暂时不允许或中断TSI测量,并且这些条件可导致将TSI计数器日志复位为十六进制数FFFFFFFF。
存储时间片插装计数器(STSIC)指令410的一个实施例描绘于图4B中。如图所示,该指令可具有多个字段,并且字段可具有与其相关联的下标编号。与指令的字段相关联的下标编号指示该字段所应用的操作数。例如,与B2相关联的下标编号2指示在B2中指定的寄存器的内容与第二操作数相关联。
通过示例,指令410包括:操作码字段411(其可指示存储时间片插装操作)、基本字段(B2)412,和位移字段(D2)413。B2 412可指示寄存器,其内容将要被添加到在D2 413中指定的值以给出识别时间片插装信息将要存储的地址的第二操作数位置。在一个或多个实施方式中,该字段可为分开的且相互独立;然而,在其它实施例中,可组合多于一个字段。另外,虽然描述了各种字段和寄存器,但本发明的一个或多个方面可使用其它、额外或更少字段或寄存器,或其它大小的字段或寄存器等。多个变化是可能的。例如,可使用隐含寄存器而非明确指定的寄存器或指令的字段。
在操作中,将TSI信息置放于第二操作数位置处。在一个实施方式中,第二操作数在长度上可为八个双字。通过示例,条件码可保持不变。下文描述关于该指令的另外信息。
例如,在监督器状态中执行存储时间片插装计数器(STSIC)指令将TSI信息作为存储器中的块(被称为STSIC存储块或数据结构(如图4C中所示))存储于STSIC指令的第二操作数位置处。TSI信息和STSIC存储块可包括TSI版本号422,以及所期望的数量的TSI计数器第一和间隔日志420、421,其中仅通过示例,描绘7个计数器(C1……C7)第一和最后间隔日志。
当特定机器上支持的TSI计数器的数量少于7时,如由TSIVN 422指示,作为示例,可使用十六进制值FFFFFFFF存储与不支持的TSI计数器相关联的STSIC存储块或数据结构的TSI计数器第一和最后间隔日志。可辨识针对STSIC存储块的64个字节的访问例外。
作为示例,基于在第一TSI间隔完成前正执行的STSIC指令,则TSI计数器第一和最后间隔日志可包含十六进制值FFFFFFFF。
作为示例,基于在第二TSI间隔完成前正执行的STSIC指令,则TSI计数器最后间隔日志可包含十六进制值FFFFFFFF。
如所指出,时间片插装的型号相关特性可通过时间片插装版本号(TSIVN)422确定,如所指出,时间片插装版本号可指示TSI间隔(CPU循环的数量)以及要监视的CPU事件。
在一个或多个实施方式中,在处理单元的时间片内的不同执行间隔期间计数的处理单元事件可包括高速缓存事件,诸如,数据高速缓存事件。例如,可计数数据高速缓存未命中或数据高速缓存命中。在一个或多个实施方式中,所计数的处理单元事件可包括L1数据高速缓存未命中、L2数据高速缓存未命中、在第一四分位数(quartile)中的L2数据高速缓存命中、在第二四分位数中的L2数据高速缓存命中、在第三四分位数中的L2数据高速缓存命中、在第四四分位数中的L2数据高速缓存命中、针对数据的L3共享高速缓存命中,或针对数据的L3共享高速缓存未命中。
注意,在一个或多个实施方式中,控制程序可意识到可在启动TSI数据收集与提取可潜在地导致错误解释结果的TSI测量之间发生的各种中断。执行STSIC指令的程序可通过针对例如十六进制值FFFFFFFF测试所支持的TSI计数器最后间隔日志来辨识不完整或中断的TSI测量,从而辨识不可用的结果。
还应注意,可按处理单元循环的数量而非按时间量来测量TSI间隔持续时间,以在各种性能尺度(scaling)层级中采用不同频率执行的多个型号上看起来更一致。在一个或多个实施例中,可每个机器定义TSI间隔持续时间,使得没有TSI计数器需要多于32位来表示任一所测量的值。可不指示潜在TSI计数器溢出,以便简化机器实施方式。
图5A至图5C说明根据本发明的一个或多个方面的可如何使用时间片插装设施的一个示例。通过示例,图5A描绘包括四个工作单元的分派队列,这四个工作单元具有工作ID1、2、3、4,它们被调度用于在处理单元ID A中处理。在该示例中,指出工作ID 2消耗大数据高速缓存(Dcache)占用面积(footprint)。
图5B描绘原始分派调度的一个示例,其中,分派队列在处理单元A上在连续时间片510中交错工作ID 1、2、3、4。通过示例,“冷”数据高速缓存未命中率和“暖”数据高速缓存未命中率由时间片插装设施计数。所计数(或测量)的时间片插装信息可包括在针对每个工作单元(诸如工作单元(工作ID 1、2、3、4))的时间片或分派时间内的第一和最后周期期间的任一处理单元高速缓存度量。在图5B中描绘的示例中,在扩大的时间片510的第一执行间隔511中,“冷”数据高速缓存未命中率为1/20,而时间片510的最后执行间隔512为每50个中有1个,这意谓高速缓存利用在最后执行间隔中比在第一执行间隔中更高效。特别地,在时间片的开始,当对于处理单元A上的当前工作单元(例如,工作ID 1)的数据高速缓存为“冷”时,每20个指令中的一个导致数据高速缓存未命中,而稍后在时间片中,诸如,最后执行间隔512,数据高速缓存未命中率为每50个指令中有1个。
通过针对在其相应时间片中(特别地,在第一执行间隔511和最后执行间隔512内)的每个工作单元计数和追踪指定处理单元事件(例如,数据高速缓存未命中率),所得时间片插装信息可用于例如修改分派调度,如图5C中所描绘。在该示例中,由例如工作负载管理器或调度器,将工作单元ID 1和ID 2分组成一个集合,并且将工作单元ID 3和ID 4分组成一个集合。如图5C中所示,通过计数时间片510的第一执行间隔511和最后执行间隔512中的数据高速缓存未命中率,所测量的高速缓存度量已针对在处理单元A上执行的工作负载ID1改进,因为“冷”数据未命中率现为每35个指令中有1个,而“暖”数据高速缓存率保持每50个中有1个。在该示例中,注意,时间=0与时间=T之间的时间表示每个工作单元执行的累积时间量,当在图5B的原始分派调度与图5C的修改之间进行比较时它是相同的。
参考图6A,本文中公开的时间片插装设施提供包括在执行期间收集(600)用于处理单元的时间片插装信息的处理。该收集可包括:至少部分地计数在该处理单元执行的时间片期间指定处理单元事件的发生;以及保留在该时间片内的第一执行间隔以及在该时间片内的第二执行间隔期间发生的所计数的处理单元事件。该第一执行间隔在该时间片上比该第二执行间隔更早,所计数的处理单元事件促进调整该处理单元的性能。
时间片可以是处理单元执行的邻接时间周期,指定处理单元事件可以是高速缓存事件或可包括高速缓存事件(605)。该处理单元跨多个邻接时间片交错多个不同工作单元的处理,并且在单个时间片期间,该多个不同工作单元中的单个工作单元由该处理单元处理(610)。
作为示例,如在图6B中所示,第一执行间隔可包括在时间片内的初始执行间隔,第二执行间隔可包括在该时间片内的最近完成的执行间隔(615)。在一个或多个实施方式中,第一与第二执行间隔具有相等的持续时间,第二执行间隔可包括在时间片内的最后执行间隔时间(620)。如所说明,该计数可包括:在执行在处理单元执行的时间片期间指定处理单元事件的发生的计数中,使用处理单元本地的时间片插装计数器(625)。该指定处理单元事件可包括数据高速缓存事件,该数据高速缓存事件选自包括以下项的组:高速缓存未命中和高速缓存命中(630)。在一个或多个实施例中,收集可通过执行时间片插装开指令来启动(635),保留可通过执行存储时间片插装计数器指令来启动(640)。
尽管提供了各种示例,但在不脱离所要求保护的方面的精神的情况下,可以进行变化。例如,在其它实施例中,在由指令使用的寄存器和/或字段中包括的值可以在其它位置,例如存储器位置等。多个其它变体是可能的。
一个或多个方面可涉及云计算。
事先应理解,尽管本公开包括关于云计算的详细描述,但本文中所述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
云计算是服务交付的模型,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源能够以最小的管理成本或与服务提供商进行最少的交互来快速部署和释放。可配置计算资源例如是:网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务。这种云模型可以包括至少五个特征,至少三个服务模型和至少四个部署模型。
特征如下:
按需自助式服务:云的消费者在无需与服务提供商进行人为交互的情况下,能够单方面自动地按需部署计算能力,诸如服务器时间和网络存储。
广泛的网络接入:计算能力通过网络获得,并通过标准机制访问,该标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如,移动电话,膝上型电脑和PDA)的使用。
资源池:提供商的计算资源被归入资源池,以使用多租户模式为多个消费者提供服务,其中根据需求动态分配和重新分配不同的实体资源和虚拟资源。通常消费者不能控制或者并不知晓所提供的资源的确切位置,但是可能能够在更高抽象级别(例如,国家,州或数据中心)指定位置,因此具有位置无关性。
迅速弹性:可以迅速、有弹性地(有时是自动地)部署计算能力,以快速扩展,并且能迅速释放来快速缩小。对于消费者来说,用于部署的可用计算能力通常显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如,存储,处理,带宽和活跃用户帐户)的某种抽象级别的计量能力来自动控制和优化资源使用。可以监视,控制和报告资源使用,从而为所使用的服务的提供者和消费者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用提供商在云基础架构上运行的应用。可以通过诸如网络浏览器(例如,基于网络的电子邮件)的瘦客户机接口从各种客户机设备访问应用。消费者既不管理也不控制底层云基础架构,包括网络、服务器、操作系统、存储、甚至单个应用能力,可能的例外是有限的特定于用户的应用配置设置。
平台即服务(PaaS):提供给消费者的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用由提供商支持的编程语言和工具创建。消费者既不管理也不控制底层云基础架构,包括网络、服务器、操作系统或存储,但可以控制已部署的应用以及可能的应用托管环境配置。
基础架构即服务(IaaS):提供给消费者的能力是部署处理、存储、网络和其它基础计算资源,其中消费者能够部署和运行任意软件,该软件可以包括操作系统和应用。消费者既不管理也不控制底层云基础设施,而是具有对操作系统,存储,部署的应用的控制,以及具有可能的对选择的网络组件(例如,主机防火墙)的有限控制。
部署模型如下:
私有云:云基础架构单独为组织运行。它可以由组织或第三方管理,可以存在于该组织内部或外部。
共同体云:云基础架构由多个组织共享,并支持具有共同利害关系(例如,任务使命,安全要求,策略和合规考虑)的特定共同体。它可能由组织或第三方管理,并且可能存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供,并由销售云服务的组织所有。
混合云:云基础架构由两个或多个云(私有云,共同体云或公共云)组成,这些云仍然是独特的实体,但通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态,低耦合性,模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础设施。一个这样的节点是图1A中所描绘的节点10。
计算节点10仅是合适的云计算节点的一个示例,并且不旨在对本文描述的本发明的实施例的使用范围或功能提出任何限制。无论如何,云计算节点10能够实现和/或执行上文阐述的任何功能。
现在参考图7,描绘了示意性的云计算环境50。如图所示,云计算环境50包括云的消费者使用本地计算设备可以与其通信的一个或多个计算节点10,本地计算设备例如是个人数字助理(PDA)或蜂窝电话54A,台式计算机54B,膝上型计算机54C和/或汽车计算机系统54N。节点10可以彼此通信。它们可以在一个或多个网络中物理地或虚拟地分组(未示出),例如如上所述的私有云,共同体云,公共云或混合云,或其组合。这样,云的消费者无需维护本地计算设备上的资源就能够允许云计算环境50提供基础架构即服务、平台即服务和/或软件即服务。应该理解,图7中所示的计算设备54A-N的类型仅仅是示意性的,而计算节点10和云计算环境50可以(例如,使用网络浏览器)通过任何类型的网络和/或网络可寻址连接与任何类型的计算设备通信。
现在参考图8,示出了由云计算环境50(图7)提供的一组功能抽象层。应该事先理解图8中所示的组件、层和功能仅仅是示意性的,并且本发明的实施例不限于此。如图所示,提供了以下层和相应的功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括主机61;基于RISC(精简指令集计算机)体系结构的服务器62;服务器63;刀片服务器64;存储设备65;网络和网络组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟层70提供抽象层,从该抽象层可以提供以下虚拟实体的示例:虚拟服务器71;虚拟存储72;虚拟网络73(包括虚拟私有网络);虚拟应用和操作系统74;和虚拟客户端75。
在一个示例中,管理层80可以提供下面描述的功能。资源供应功能81提供用于在云计算环境内执行任务的计算资源和其它资源的动态获取。计量和定价功能82在云计算环境内对资源的使用进行成本跟踪,并且提供用于消费这些资源的帐单或发票。在一个示例中,这些资源可以包括应用软件许可。安全功能为云的消费者和任务提供身份认证,以及为数据和其它资源提供保护。用户门户功能83为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能84提供云计算资源的分配和管理,以满足所需的服务水平。服务水平协议(SLA)计划和履行功能85为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层90提供可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:地图绘制与导航91;软件开发和生命周期管理92;虚拟教室的教学提供93;数据分析处理94;交易处理95;和指令处理96。
本发明可以是任何可能的技术细节集成级别的系统、方法和/或计算机程序产品。该计算机程序产品可以包括一个计算机可读存储介质(或多个计算机可读存储介质),其上具有计算机可读程序指令,用于使处理器执行本发明的各方面。
计算机可读存储介质可以是有形设备,其可以保留和存储指令以供指令执行设备使用。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适组合。计算机可读存储介质的更具体示例的非详尽列表包括以下内容:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字通用光盘(DVD)、记忆棒、软盘、诸如在其上记录有指令的打孔卡或凹槽内凸起结构的机械编码装置、以及前述的任何合适的组合。这里使用的计算机可读存储介质不应被解释为瞬时信号本身,诸如无线电波或其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,通过光纤电缆传递的光脉冲)或通过电线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如,因特网,局域网,广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括诸如Smalltalk,C++等的面向对象的编程语言,以及诸如“C”编程语言或类似编程语言的过程编程语言。计算机可读程序指令可以完全在用户的计算机上执行、部分地在用户计算机上执行、作为独立的软件包执行、部分地在用户计算机上并且部分地在远程计算机上执行、或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者,可以连接到外部计算机(例如,利用互联网服务提供商来通过互联网连接)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来个性化定制电子电路,该电子电路执行计算机可读程序指令,以便执行本发明的各方面。
本文参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本发明的各方面。将理解,流程图图示和/或框图中的每个框以及流程图图示和/或框图中的框的组合可以由计算机可读程序指令实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器来生产出机器,以使得通过计算机的处理器或其它可编程数据处理装置执行的指令创建用于实现流程图和/或一个框图块或多个框图块中所指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,这些计算机可读程序指令可以使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,以使得具有存储在其中的指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或一个框图块或多个框图块中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机,其它可编程数据处理装置或其它设备上,以使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,这样在计算机、其它可编程装置或其它设备上执行的指令实现在流程图和/或一个框图块或多个框图块中指定的功能/动作。
附图中的流程图和框图示出根据本发明的各种实施例的系统,方法和计算机程序产品的可能实施方式的体系结构,功能和操作。在这方面,流程图或框图中的每个框可以表示模块、程序段或指令的一部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方式中,框中所标注的功能可以不按图中所示的顺序发生。例如,连续示出的两个框实际上可以基本上并行地执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还应注意,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合可以由执行特定功能或动作,或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
除了上述之外,可以由提供客户环境管理的服务提供商提供、给予、部署、管理、服务一个或多个方面。例如,服务提供商可以创建、维护、支持计算机代码和/或为一个或多个客户执行一个或多个方面的计算机基础设施。作为回报,服务提供商可以例如根据订阅和/或费用协议从客户接收付款。附加地或替代地,服务提供商可以从向一个或多个第三方销售广告内容来接收付款。
在一方面中,可以部署应用以执行一个或多个实施例。作为一个示例,应用的部署包括提供可操作以执行一个或多个实施例的计算机基础结构。
作为另一方面,可以部署计算基础设施,包括将计算机可读代码集成到计算系统中,其中与计算系统结合的代码能够执行一个或多个实施例。
作为又一方面,可以提供一种用于集成计算基础设施的过程,包括将计算机可读代码集成到计算机系统中。该计算机系统包括计算机可读介质,其中该计算机介质包括一个或多个实施例。与计算机系统结合的代码能够执行一个或多个实施例。
尽管以上描述了各种实施例,但这些仅是示例。例如,具有其它体系结构的计算环境可用于合并和使用一个或多个实施例。此外,可以使用不同的指令,指令格式,指令字段和/或指令值。多个变化是可能的。
此外,其它类型的计算环境可以受益并被使用。作为示例,适用于存储和/或执行程序代码的数据处理系统是可用的,其包括直接或通过系统总线间接耦接到存储器元件的至少两个处理器。存储器元件包括例如在程序代码的实际执行期间使用的本地存储器,大容量存储和高速缓存存储器,该高速缓存存储器提供至少一些程序代码的临时存储,以便减少执行期间必须从大容量存储重新取回代码的次数。
输入/输出或I/O设备(包括但不限于键盘,显示器,指示设备,DASD,磁带,CD,DVD,拇指驱动器和其它存储介质等)可以直接耦接到系统或通过介入I/O控制器而耦接到系统。网络适配器还可以耦接到系统,以使数据处理系统能够通过介入私有或公共网络而耦接到其它数据处理系统或远程打印机或存储设备。调制解调器,电缆调制解调器和以太网卡只是可用类型的网络适配器中的一小部分。
本文使用的术语仅出于描述特定实施例的目的,并不意图限制本发明。如这里所使用的,单数形式“一”,“一个”和“该”旨在也包括复数形式,除非上下文另有明确说明。将进一步理解,当在本说明书中使用时,术语“包括”和/或“包含”指定所述特征、整数、步骤、操作、元素和/或组件的存在,但不排除存在或者添加一个或多个其它特征、整数、步骤、操作、元素、组件和/或它们的组合。
以下权利要求中的所有装置或步骤加功能元件的相应结构、材料、动作和等同物(如果有的话)旨在包括如所具体要求保护的用于结合其它要求保护的元件来执行功能的任何结构、材料或动作。已经出于说明和描述的目的给出了对一个或多个实施例的描述,但是并不旨在穷举或限制于所公开的形式。许多修改和变化对于本领域普通技术人员来说是显而易见的。选择和描述实施例是为了最好地解释各个方面和实际应用,并且使本领域普通技术人员能够理解具有各种修改的各种实施例适合于预期的特定用途。
Claims (20)
1.一种用于促进计算环境内的处理的计算机程序产品,所述计算机程序产品包括:
计算机可读存储介质,其可由处理电路读取并且存储用于由所述处理电路执行以用于执行方法的指令,所述方法包括:
在执行期间收集用于处理单元的时间片插装信息,所述收集包括:
至少部分地计数在所述处理单元执行的时间片期间指定处理单元事件的发生;以及
保留在所述时间片内的第一执行间隔以及在所述时间片内的第二执行间隔期间发生的所计数的处理单元事件,所述第一执行间隔在所述时间片上比所述第二执行间隔更早,所计数的处理单元事件促进调整所述处理单元的性能。
2.如权利要求1所述的计算机程序产品,其中,所述时间片是处理单元执行的邻接时间周期,所述指定处理单元事件包括高速缓存事件。
3.如权利要求2所述的计算机程序产品,其中,所述处理单元跨多个邻接时间片交错多个不同工作单元的处理,在单个时间片期间,所述多个不同工作单元中的单个工作单元由所述处理单元处理。
4.如权利要求2所述的计算机程序产品,其中,所述第一执行间隔包括在所述时间片内的初始执行间隔,所述第二执行间隔包括在所述时间片内的最近完成的执行间隔,其中,所述第一执行间隔与所述第二执行间隔具有相等的持续时间。
5.如权利要求4所述的计算机程序产品,其中,所述第二执行间隔包括在所述时间片内的最后执行间隔。
6.如权利要求1所述的计算机程序产品,其中,所述计数包括:在执行在所述处理单元执行的所述时间片期间所述指定处理单元事件的所述发生的所述计数中,使用所述处理单元本地的时间片插装计数器。
7.如权利要求1所述的计算机程序产品,其中,所述指定处理单元事件包括数据高速缓存事件,所述数据高速缓存事件选自包括以下项的组:高速缓存未命中和高速缓存命中。
8.如权利要求1所述的计算机程序产品,其中,所述收集通过执行时间片插装开指令来启动。
9.如权利要求1所述的计算机程序产品,其中,所述保留通过执行存储时间片插装计数器指令来启动。
10.一种用于促进计算环境内的处理的计算机系统,所述计算机系统包括:
存储器;以及
处理器,其与所述存储器通信地耦接,其中,所述计算机系统被配置为执行方法,所述方法包括:
在执行期间收集用于处理单元的时间片插装信息,所述收集包括:
至少部分地计数在所述处理单元执行的时间片期间指定处理单元事件的发生;以及
保留在所述时间片内的第一执行间隔以及在所述时间片内的第二执行间隔期间发生的所计数的处理单元事件,所述第一执行间隔在所述时间片上比所述第二执行间隔更早,所计数的处理单元事件促进调整所述处理单元的性能。
11.如权利要求10所述的计算机系统,其中,所述时间片是处理单元执行的邻接时间周期,所述指定处理单元事件包括高速缓存事件,其中,所述处理单元跨多个邻接时间片交错多个不同工作单元的处理,在单个时间片期间,所述多个不同工作单元中的单个工作单元由所述处理单元处理。
12.如权利要求11所述的计算机系统,其中,所述第一执行间隔包括在所述时间片内的初始执行间隔,所述第二执行间隔包括在所述时间片内的最近完成的执行间隔,其中,所述第一执行间隔与所述第二执行间隔具有相等的持续时间。
13.如权利要求12所述的计算机系统,其中,所述第二执行间隔包括在所述时间片内的最后执行间隔。
14.如权利要求10所述的计算机系统,其中,所述计数包括:在执行在所述处理单元执行的所述时间片期间的所述指定处理单元事件的所述发生的所述计数中,使用所述处理单元本地的时间片插装计数器。
15.如权利要求10所述的计算机系统,其中,所述收集通过执行时间片插装开指令来启动,所述保留通过执行存储时间片插装计数器指令来启动。
16.一种促进计算环境内的处理的计算机实现的方法,所述计算机实现的方法包括:
在执行期间收集用于处理单元的时间片插装信息,所述收集包括:
计数在所述处理单元执行的时间片期间指定处理单元事件的发生;以及
保留在所述时间片的第一执行间隔时间以及第二执行间隔时间期间发生的所计数的处理单元事件,所述第一执行间隔时间在所述时间片上比所述第二执行间隔时间更早,所计数的处理单元事件促进调整所述处理单元的性能。
17.如权利要求16所述的计算机实现的方法,其中,所述时间片是处理单元执行的邻接时间周期,所述指定处理单元事件包括高速缓存事件,其中,所述处理单元跨多个邻接时间片交错多个不同工作单元的处理,在单个时间片期间,所述多个不同工作单元中的单个工作单元由所述处理单元处理。
18.如权利要求17所述的计算机实现的方法,其中,所述第一执行间隔包括在所述时间片内的初始执行间隔,所述第二执行间隔包括在所述时间片内的最近完成的执行间隔,其中,所述第一执行间隔与所述第二执行间隔具有相等的持续时间。
19.如权利要求18所述的计算机实现的方法,其中,所述第二执行间隔时间包括在所述时间片内的最后执行间隔。
20.如权利要求16所述的计算机实现的方法,其中,所述收集通过执行时间片插装开指令来启动,所述保留通过执行存储时间片插装计数器指令来启动。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/402,412 | 2017-01-10 | ||
US15/402,412 US10303575B2 (en) | 2017-01-10 | 2017-01-10 | Time-slice-instrumentation facility |
PCT/EP2017/083139 WO2018130375A1 (en) | 2017-01-10 | 2017-12-15 | Time-slice-instrumentation facility |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110168503A true CN110168503A (zh) | 2019-08-23 |
CN110168503B CN110168503B (zh) | 2023-07-07 |
Family
ID=60937716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780082594.7A Active CN110168503B (zh) | 2017-01-10 | 2017-12-15 | 时间片插装设施 |
Country Status (13)
Country | Link |
---|---|
US (1) | US10303575B2 (zh) |
EP (1) | EP3568762A1 (zh) |
JP (1) | JP7023283B2 (zh) |
KR (1) | KR102238191B1 (zh) |
CN (1) | CN110168503B (zh) |
AU (1) | AU2017392846B2 (zh) |
CA (1) | CA3037292A1 (zh) |
IL (1) | IL265555B (zh) |
MX (1) | MX2019012412A (zh) |
RU (1) | RU2727070C1 (zh) |
TW (1) | TWI663548B (zh) |
WO (1) | WO2018130375A1 (zh) |
ZA (1) | ZA201905199B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114185838A (zh) * | 2020-09-15 | 2022-03-15 | 阿里巴巴集团控股有限公司 | 片上系统和调节电压和频率的方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11165679B2 (en) | 2019-05-09 | 2021-11-02 | International Business Machines Corporation | Establishing consumed resource to consumer relationships in computer servers using micro-trend technology |
US10877866B2 (en) | 2019-05-09 | 2020-12-29 | International Business Machines Corporation | Diagnosing workload performance problems in computer servers |
US11182269B2 (en) | 2019-10-01 | 2021-11-23 | International Business Machines Corporation | Proactive change verification |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020198924A1 (en) * | 2001-06-26 | 2002-12-26 | Hideya Akashi | Process scheduling method based on active program characteristics on process execution, programs using this method and data processors |
US20080256542A1 (en) * | 2004-09-17 | 2008-10-16 | Kazushi Kurata | Processor |
US20090052608A1 (en) * | 2007-08-21 | 2009-02-26 | International Business Machines Corporation | Method for dynamically adjusting hardware event counting time-slice windows |
CN101604199A (zh) * | 2008-05-16 | 2009-12-16 | 英特尔公司 | 操作特性的基于效率的确定 |
US20110035752A1 (en) * | 2009-08-10 | 2011-02-10 | Avaya Inc. | Dynamic Techniques for Optimizing Soft Real-Time Task Performance in Virtual Machines |
US20110055479A1 (en) * | 2009-08-28 | 2011-03-03 | Vmware, Inc. | Thread Compensation For Microarchitectural Contention |
US20110246995A1 (en) * | 2010-04-05 | 2011-10-06 | Oracle International Corporation | Cache-aware thread scheduling in multi-threaded systems |
US20120079493A1 (en) * | 2010-09-24 | 2012-03-29 | International Business Machines Corporation | Use of constraint-based linear programming to optimize hardware system usage |
WO2015097839A1 (ja) * | 2013-12-27 | 2015-07-02 | 株式会社日立製作所 | 優先度割込み対応リアルタイムハイパバイザ |
CN105706063A (zh) * | 2013-12-12 | 2016-06-22 | 英特尔公司 | 用于检测竞争条件的技术 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4345309A (en) * | 1980-01-28 | 1982-08-17 | Digital Equipment Corporation | Relating to cached multiprocessor system with pipeline timing |
US6584549B2 (en) * | 2000-12-29 | 2003-06-24 | Intel Corporation | System and method for prefetching data into a cache based on miss distance |
US7221686B1 (en) | 2001-11-30 | 2007-05-22 | Meshnetworks, Inc. | System and method for computing the signal propagation time and the clock correction for mobile stations in a wireless network |
US6847905B2 (en) * | 2002-02-12 | 2005-01-25 | Tektronix, Inc. | Architecture providing increased information display for long acquisitions or constrained memory bandwidth |
US20080025654A1 (en) * | 2005-04-11 | 2008-01-31 | Chang-Hsin Kuo | Rolling Groove with Combined Curve Profile for Linear Guide Way |
KR100656353B1 (ko) | 2005-07-12 | 2006-12-11 | 한국전자통신연구원 | 메모리 전력 소모를 줄이는 방법 |
US8548520B2 (en) * | 2007-01-26 | 2013-10-01 | Wi-Lan Inc. | Multiple network access system and method |
WO2009022369A1 (ja) | 2007-08-10 | 2009-02-19 | Netcleus Systems Corporation | 仮想キュー処理回路およびタスク処理装置 |
US8381004B2 (en) | 2010-05-26 | 2013-02-19 | International Business Machines Corporation | Optimizing energy consumption and application performance in a multi-core multi-threaded processor system |
CN102780555B (zh) | 2011-05-13 | 2017-09-29 | 中兴通讯股份有限公司 | 通信系统中的时钟同步方法及装置 |
US9736011B2 (en) | 2011-12-01 | 2017-08-15 | Intel Corporation | Server including switch circuitry |
US9471315B2 (en) * | 2012-03-16 | 2016-10-18 | International Business Machines Corporation | Run-time instrumentation reporting |
US9311149B2 (en) | 2012-12-21 | 2016-04-12 | International Business Machines Corporation | Processor provisioning by a middleware processing system |
US9436608B1 (en) * | 2015-02-12 | 2016-09-06 | International Business Machines Corporation | Memory nest efficiency with cache demand generation |
-
2017
- 2017-01-10 US US15/402,412 patent/US10303575B2/en active Active
- 2017-12-15 MX MX2019012412A patent/MX2019012412A/es unknown
- 2017-12-15 CN CN201780082594.7A patent/CN110168503B/zh active Active
- 2017-12-15 KR KR1020197015381A patent/KR102238191B1/ko active IP Right Grant
- 2017-12-15 RU RU2019102988A patent/RU2727070C1/ru active
- 2017-12-15 CA CA3037292A patent/CA3037292A1/en active Pending
- 2017-12-15 EP EP17825811.7A patent/EP3568762A1/en not_active Withdrawn
- 2017-12-15 AU AU2017392846A patent/AU2017392846B2/en active Active
- 2017-12-15 WO PCT/EP2017/083139 patent/WO2018130375A1/en unknown
- 2017-12-15 JP JP2019532727A patent/JP7023283B2/ja active Active
-
2018
- 2018-01-09 TW TW107100727A patent/TWI663548B/zh active
-
2019
- 2019-03-22 IL IL265555A patent/IL265555B/en active IP Right Grant
- 2019-08-06 ZA ZA2019/05199A patent/ZA201905199B/en unknown
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020198924A1 (en) * | 2001-06-26 | 2002-12-26 | Hideya Akashi | Process scheduling method based on active program characteristics on process execution, programs using this method and data processors |
US20080256542A1 (en) * | 2004-09-17 | 2008-10-16 | Kazushi Kurata | Processor |
US20090052608A1 (en) * | 2007-08-21 | 2009-02-26 | International Business Machines Corporation | Method for dynamically adjusting hardware event counting time-slice windows |
CN101604199A (zh) * | 2008-05-16 | 2009-12-16 | 英特尔公司 | 操作特性的基于效率的确定 |
US20110035752A1 (en) * | 2009-08-10 | 2011-02-10 | Avaya Inc. | Dynamic Techniques for Optimizing Soft Real-Time Task Performance in Virtual Machines |
US20110055479A1 (en) * | 2009-08-28 | 2011-03-03 | Vmware, Inc. | Thread Compensation For Microarchitectural Contention |
US20110246995A1 (en) * | 2010-04-05 | 2011-10-06 | Oracle International Corporation | Cache-aware thread scheduling in multi-threaded systems |
US20120079493A1 (en) * | 2010-09-24 | 2012-03-29 | International Business Machines Corporation | Use of constraint-based linear programming to optimize hardware system usage |
CN105706063A (zh) * | 2013-12-12 | 2016-06-22 | 英特尔公司 | 用于检测竞争条件的技术 |
WO2015097839A1 (ja) * | 2013-12-27 | 2015-07-02 | 株式会社日立製作所 | 優先度割込み対応リアルタイムハイパバイザ |
Non-Patent Citations (1)
Title |
---|
丁兴邦;贺也平;朱继峰;: "访问验证保护级安全操作系统审计机制研究", 计算机应用研究, no. 05 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114185838A (zh) * | 2020-09-15 | 2022-03-15 | 阿里巴巴集团控股有限公司 | 片上系统和调节电压和频率的方法 |
Also Published As
Publication number | Publication date |
---|---|
KR102238191B1 (ko) | 2021-04-09 |
JP2020504375A (ja) | 2020-02-06 |
AU2017392846A1 (en) | 2019-06-06 |
TWI663548B (zh) | 2019-06-21 |
RU2727070C1 (ru) | 2020-07-17 |
AU2017392846B2 (en) | 2020-09-17 |
US10303575B2 (en) | 2019-05-28 |
MX2019012412A (es) | 2022-04-11 |
WO2018130375A9 (en) | 2018-09-07 |
KR20190072625A (ko) | 2019-06-25 |
ZA201905199B (en) | 2021-04-28 |
WO2018130375A1 (en) | 2018-07-19 |
TW201841114A (zh) | 2018-11-16 |
IL265555B (en) | 2021-02-28 |
IL265555A (en) | 2019-05-30 |
US20180196727A1 (en) | 2018-07-12 |
CN110168503B (zh) | 2023-07-07 |
CA3037292A1 (en) | 2018-07-19 |
JP7023283B2 (ja) | 2022-02-21 |
EP3568762A1 (en) | 2019-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106020715B (zh) | 存储池容量管理 | |
US11386496B2 (en) | Generative network based probabilistic portfolio management | |
CN104156296B (zh) | 智能监控大规模数据中心集群计算节点的系统和方法 | |
US10467129B2 (en) | Measuring and optimizing test resources and test coverage effectiveness through run time customer profiling and analytics | |
CN102216922B (zh) | 用于n层应用程序的云计算生命周期管理 | |
CN110168503A (zh) | 时间片插装设施 | |
CN105843703A (zh) | 将系统管理员动作提取到提供系统问题解决方案的工作流 | |
US10353738B2 (en) | Resource allocation based on social networking trends in a networked computing environment | |
US11593735B2 (en) | Automated and efficient personal transportation vehicle sharing | |
CN110168510A (zh) | 用于延长私有高速缓存中的高速缓存行的独占持有的设施 | |
Radovanovic et al. | Power modeling for effective datacenter planning and compute management | |
CN106066812A (zh) | 基于应用的历史信息管理资源 | |
CN111598494A (zh) | 资源额度的调整方法、装置及电子设备 | |
CN109891387A (zh) | 具有可选择比较属性的浮点指令 | |
CN107025256A (zh) | 用于减少基于云的服务的重新激活时间的方法和系统 | |
CN110168498A (zh) | 暂时抑制受约束存储操作数请求的处理 | |
Rosa et al. | Cost and time prediction for efficient execution of bioinformatics workflows in federated cloud | |
US20140114719A1 (en) | Allocating Service Consumers into Compatible Resource Pools | |
US12020161B2 (en) | Predicting lagging marker values | |
US11775516B2 (en) | Machine-learning-based, adaptive updating of quantitative data in database system | |
US20220383183A1 (en) | Machine learning pipeline optimization | |
US20240028394A1 (en) | Systems and methods for generating runtime predictions in distributed computer architectures | |
Rawat et al. | 9 Cost Model OptimizationforCloud Using Machine Learning and | |
Bowdon Sr et al. | Performance evaluation in network computers | |
Rawat et al. | Cost Optimization Model for Cloud Using Machine Learning and Artificial Intelligence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40006835 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |