CN1300009A - 存储器事务监视系统和用户界面 - Google Patents

存储器事务监视系统和用户界面 Download PDF

Info

Publication number
CN1300009A
CN1300009A CN00134817.5A CN00134817A CN1300009A CN 1300009 A CN1300009 A CN 1300009A CN 00134817 A CN00134817 A CN 00134817A CN 1300009 A CN1300009 A CN 1300009A
Authority
CN
China
Prior art keywords
memory
memory transaction
transaction
node
storage
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
CN00134817.5A
Other languages
English (en)
Other versions
CN1220138C (zh
Inventor
毕肖普·查普曼·布洛克
艾利·奇普劳特
爱尔穆塔兹贝拉赫·那比尔·埃尔诺扎希
拉马克利石南·拉加莫尼
弗利曼·利·劳森三世
罗那尔德·林·罗克霍尔德
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1300009A publication Critical patent/CN1300009A/zh
Application granted granted Critical
Publication of CN1220138C publication Critical patent/CN1220138C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

公开了一种用于监视数据处理系统中之存储器事务的系统和方法。该方法包括:利用监视系统定义存储器事务属性集,以及在连接到监视系统的数据处理系统上,检测与定义的存储器事务属性集匹配的存储器事务。然后以图形格式显示检测到的指定时期内发生的存储器事务数。

Description

存储器事务监视系统和用户界面
本文公开的主题与题目为“NUMA计算机中的性能监视”(序列号09/262,626,申请日期3/31/99)以及题目为“NUMA计算机中候选页的有效识别与动态响应”(序列号09/282,625,申请日期3/31/99)的未决美国专利申请中公开的主题有关,以上未决申请与本申请具有共同受让人,这里引用作为参考。
本发明一般涉及数据处理系统领域,更确切地说,涉及用于监视并图形显示分布式存储器系统中之存储器事务的应用。
使用多个处理器以改善计算机系统的性能是众所周知的。在典型的多处理器装置中,通过此处称为系统总线或局部总线的公共总线,将众多处理器连接到系统存储器。使用单一总线最终限制了通过添加附加处理器来改善性能的能力,这是由于在到达某个点之后,多处理器系统性能的限制因素是系统总线的带宽。一般而言,在将较少数目的处理器连接到总线后,系统总线的带宽通常会饱和。超此数目安装附加处理器一般不会有更多的性能改善。
人们提出并实施了分布式存储器系统,以克服单一总线系统的带宽限制。在分布式存储器系统中,连接称为节点的两个或多个单一总线系统,形成一个更大的系统。各节点通常包括其自己的局部存储器。分布式存储器系统的一个实例称为非均匀存储器体系结构(NUMA)系统。一个NUMA系统由许多节点、局部存储器以及相应的系统总线组成,其中各节点包括其自己的处理器。通过连接不同节点的高速互连网络,各节点的存储器可彼此访问。使用多系统总线(每个节点一条总线),使NUMA系统能够使用附加处理器,而不会招致单一系统总线所承受的系统总线带宽限制。因此,NUMA系统比常规系统更具伸缩性。
在NUMA系统中,存取系统存储器所需要的时间是存储器地址的函数,这是由于存取本地节点存储器比存取驻留在远程节点上之存储器更快。相反,在常规SMP设计中,存取时间实质上独立于存储器地址。当在NUMA系统上执行为在常规机器上使用而优化的软件时,如果该软件产生大量远程存储器存取,则该软件也许不会在NUMA系统上有效执行。例如,如果NUMA系统采用的分页模式将软件的代码段分配到某个节点的物理存储器,而将处理器频繁存取的数据段分配到另一节点,则也许会部分抵消或完全取消可伸缩NUMA系统提供的潜在性能改善。由于存储器体系结构的实施、分页机制、高速缓存策略、程序行为等的变化,通过根据经验收集的存储器事务数据,可以最有效地实现所有给定NUMA系统的调整或优化。因此,设计用来监视NUMA系统中之存储器事务的机制,对此类系统的设计者和厂商具有相当大的影响。以上引用的专利申请,公开了用于收集NUMA系统中之存储器事务信息的硬件机制。为了完全利用监视硬件所能收集的信息,需要实现一种优美的、功能强大的用户界面,以使用户能够捕获、显示并分析存储器事务监视硬件提供的信息。
用于监视数据处理系统中的存储器事务的系统和方法,解决了上述问题。该方法包括利用监视系统定义存储器事务属性集,以及在连接到监视系统的数据处理系统上,检测与定义的存储器事务属性集匹配的存储器事务。然后以图形格式显示检测到的指定时期内发生的存储器事务数。在一种实施方式中,数据处理系统包括一个非均匀存储器体系结构(NUMA)系统,后者包括一组节点。在此实施方式中,检测的事务包括通过连接NUMA系统之节点的接线器的事务。存储器事务属性集可包括存储器事务类型信息、节点信息和事务方向信息。数据处理系统可以在诸如基于Unix系统之类的第一操作系统下运行,而监视系统可以在诸如Windows操作系统之类的第二操作系统下运行。存储器事务集可以包括存储器地址信息。在此实施方式中,定义存储器地址信息可以包括定义存储器窗口大小,将存储器窗口细分为一组存储粒度,以及显示检测到的与存储器窗口中各存储粒度相对应的存储器事务数。
本发明还期望一种用于监视诸如NUMA系统之类的数据处理系统上之存储器事务的系统。该系统包括一个处理器,一个设备驱动程序和用户代码,其中将设备驱动程序配置为,从连接NUMA系统之节点的接线器,接收存储器事务信息,将用户代码配置为,使用户能够定义存储器事务属性集。用户代码还适合于显示与指定时期内之定义存储器属性集匹配的存储器事务数。设备驱动程序和用户代码可以在第一操作系统下执行,而NUMA系统在第二操作系统下运行。存储器事务属性集可以包括存储器事务类型信息、存储器事务方向信息以及存储器事务节点信息。存储器事务属性集还可以包含存储器地址信息。
通过参照附图阅读以下详细说明,本发明的其他目的和优势将更加显而易见,其中附图为:
图1为根据本发明的计算机系统图;
图2为图1所示计算机系统之节点的简化框图;
图3为根据本发明的性能监视器的简化框图;
图4为供图1所示计算机系统使用的、图3所示性能监视器之电路板实施方式的顶部平面视图;
图5为根据本发明某一实施方式的监视系统的所选组件的框图;
图6表示适合与图5所示监视系统一起使用的图形用户界面;
图7表示适合与图6所示监视系统一起使用的图形用户界面;以及
图8表示图5所示监视系统生成的存储器事务直方图的实施方式。
虽然本发明易受各种更改和可选方式的影响,但我们仍然利用附图中的示例说明其特定实施方式,并在此处详细说明。然而,应该理解,此处所示的附图和详细说明,其目的并不是将本发明限制在所公开的特定实施方式内,而是相反,其意图是包括其实质和范围在附属权利要求书所定义的实质和范围内的所有更改、等价物和选择物。
现在转到附图,图1表示根据本发明之某种实施方式的计算机系统100。计算机系统100的所示实施方式由许多节点101组成,此处为便于讨论,用101标识局部节点102,以及一个或多个远程节点104a、104b、…104n(一并称为远程节点104)。在计算机系统100的某种实施方式中,各节点101实质上等价于剩余节点,将某个节点标识为局部节点的目的,仅在于提供关于某些事务和组件的参照系。经由互连网络108,通过接线器109,互相连接局部节点102和远程节点104。所示实施方式总共包括4个节点101,其中通过接线器109,将各节点连接到所有其他节点,熟悉分布式存储器计算机系统设计的技术人员容易理解,可以向系统100添加(或从该系统中移去)附加节点,并且可以利用各种各样的互连网拓扑结构,来互连节点。计算机系统100的最佳实施方式期望非均匀存储器体系结构(NUMA),其中系统的各节点101包括一个局部存储器128(在图2中描述),节点对该存储器具有比较廉价或快速的存取(此处称为局部存取)。此外,经由互连108和接线器109,各节点101能够以比局部存取慢的存取(此处称为远程存取)方式,存取其他节点的局部存储器。与NUMA计算机系统不同,此处使用的对称多处理(SMP)系统说明以下体系结构,即众多系统处理器中的各处理器对系统存储器的快速存取实质上相等。
在NUMA计算机系统上优化程序性能的一个组件,关系到将程序执行期间发起的远程存取次数降到最低限度。(对于本公开,字程序包括各种软件,这些软件包括操作系统和应用程序。)以便携方式实现此目标是很困难的,这是由于内存布局通常依赖于程序和机器,其本质复杂,并且只有系统中之有限数目的程序能够获得。因此,最好根据经验,收集与在任意指定NUMA计算机系统上执行的程序性能有关的精确信息。为了协助此任务,计算机系统100之局部节点102的性能监视器106,通过监视穿过互连网络108的事务,对远程存取进行计数和分类。尽管未示出,但是在系统100的最佳实施方式中,各节点101均包括其自己的性能监视器106。在某种实施方式中,性能监视器106可配置为:或者对入局事务(从远程节点104发起的对局部节点102之局部存储器的存取),或者对出局事务(从局部节点102发起的对远程节点104之局部存储器的存取)进行计数。
在详细论述性能监视器106之前,首先连同图2一起介绍局部节点102的一般说明,图2以简化框图的方式,描述局部节点102的一种实施方式。图2所示的局部节点102包括一个或多个处理器120,后者经由一条系统总线或局部总线122互相通信,并且与局部节点102的其他组件通信。各处理器120可包括一种或多种级别的高速缓冲存储器(未示出),用于在诸如静态随机存取存储器(SRAM)阵列设备之类的较快存储器中,存储较少部分的数据和指令。通过存储器控制器(MC)124,将处理器120连接到局部存储器128和I/O总线126。经由存储器总线127连接到MC 124的局部存储器128,适合由动态随机存取存储器(DRAM)阵列设备组成。通常利用各种标准化总线体系结构中的任意体系结构,实现I/O总线126,其包括例如PCI专业组(www.pcisig.com)发布的PCI局部总线标准修订版2.2,这里引用作为参考。设计PCI总线的目的是,为局部节点102提供高吞吐量的I/O设备。以连接到I/O总线126的方式描述外围设备123。在I/O总线126包含PCI总线的实施方式中,外围设备123可以包括图形适配器、视频控制器、硬盘控制器、高速网络适配器或其他合适设备。在本发明的一种实施方式中,利用普遍流行的PCI总线,作为与处理器进行通信的传播手段,其中I/O总线126为PCI总线,并且经由I/O总线126实现与PM 106的通信。利用从I/O总线126延伸到PM 106的虚线,表示局部节点102的上述实施方式。I/O总线126可以遵守的其他总线标准示例包括:ISA,EISA和MCA标准。此外,局部节点102还可以包括一个连接到I/O总线126的第二总线桥接器(未示出),以便在局部节点102内,提供用于第二I/O总线体系结构的设备。在一种实施方式中,例如,I/O总线126是其上连接有PCI/ISA总线桥接器的PCI总线,以便提供用于接收诸如键盘、定点设备(鼠标)之类的ISA随从设备的设备。局部节点102还包括一个NUMA控制器129,后者连接在互连网络108或计算机系统100与系统总线122之间。在所示实施方式中,将性能监视器106连接到互连网络108。在其他实施方式中(未示出),性能监视器106可以直接连接到系统总线122。此实施方式具有以下优点,即能够监视局部事务和远程事务。
现在转到图3,该图表示适合于单独监视两个或多个并行执行程序的性能监视器106的实施方式。在所示实施方式中,性能监视器106包括一个接口部件130,后者监视计算机系统100的互连网络108。将接口部件130配置为:当远程存储器事务穿过局部节点102和任意远程节点104之间的互连网络108时,检测远程存储器事务。在计算机系统100的最佳实施方式中,当构造程序以将网络事务(例如,由某个不从其他节点检索数据就不能完成处理的节点发起的存储器事务)降到最低时,能够保留互连网络108的带宽,并改善系统性能。应该认识到,网络事务不仅是由远程存取产生的,而且当系统100的高速缓存一致性策略需要节点之间的数据传送,以完成局部事务时,也会产生网络事务,其中在远程存储中,某个节点上的处理器执行对另一节点之局部存储器的加载/存储。收集有关网络事务的数据,是调整或优化应用程序和操作系统软件,以便在正在考虑的NUMA系统上使用的关键步骤。应该理解,性能监视器106的所示实施方式与局部节点102关联,并且仅监视在局部节点102发起或者在该节点终止的远程事务。例如,如果远程节点104a发出一个要求存储器存取远程节点104b之局部存储器的事务,则按所示实施方式实现的性能监视器106,将不监视此事务,尽管此事务包括远程存取。为了充分监视发生的所有远程存取,计算机系统100的某种实施方式,期望各远程节点104均包含其自己的性能监视器。当计算机系统100的各节点101,安装了诸如局部节点102之性能监视器106之类的性能监视器时,有助于系统范围的性能监视。
在希望的性能监视器106的设计阶段期间具有灵活性的实施方式中,利用商用分布式可编程门阵列,实现性能监视器106的接口部件部分130以及其他组件。在基本完成性能监视器106的设计,并且不希望改变其布局的实施方式中,可以以使用专用掩模组之专用集成电路(ASIC)的方式,制作性能监视器106。无论在那种情况中,最好将性能监视器106的接口部件部分130以及其他组件,设计为在使用低电压TTL逻辑电平的3.3V电源下运行。另一方面,可以利用使用低漂移伪差分信号的高速体系结构,适当设计计算机系统100的互连网络108,其中在低漂移伪差分信号中,将超过规定阈值的信号电平解释为逻辑高,而将低于该阈值的信号电平解释为逻辑低,以便通过将与信号升降时间有关的延迟降到最低限度,实现互连网络108上的高发码速率。通过提供信号处理设备170a和170b,在接口部件130内,调节驱动性能监视器106之逻辑的信号电平与互连网络108之间的差异,其中配置信号处理设备,以提供穿过网络108的存储器事务的TTL兼容表示。在一种实施方式中,接口部件130还包括一个抽取部件131,后者被配置为,从互连网络108上检测的存储器事务中,抽取有关信息。该有关信息最好包括物理地址信息,并且还包括诸如事务类型信息和节点标识信息的附加信息。互连网络108上的现有事务可以包括数据和控制信息,后者无需实现收集信息的基本任务,即收集有关哪些存储器地址负责计算机系统100上发生的远程存取的信息。为了显著降低实现性能监视器106的最佳实施方式所需要的电路数量,仅从互连网络108上的存储器事务中抽取基本信息,然后转发到过滤器模块132。在示范实施方式中,互连网络108上的存储器事务包括128比特的信息,而从该事务中抽取的基本信息仅包括41比特的信息,例如,包括一个物理地址字段,一个事务类型字段以及一个节点ID字段。正如其名称所指,事务类型字段指示事务的类型(如,读事务,写事务,其目的为修改的读事务等等),而节点ID字段指示与该事务有关的其他节点。
将抽取部件131从存储器事务中抽取的信息,转发到过滤器模块132。一旦从接口部件130中接收到上述抽取信息,过滤器模块132就将所检测事务的物理地址,与众多存储块144中的某个存储块联系起来。各存储块144对应于正在监视的计算机系统100的物理地址空间145的相邻部分。除系统的I/O空间之外,物理地址空间145包含计算机系统100的全部存储器空间。为了在监视物理地址空间145之所选部分的能力中,提供最大的灵活性,在经由编程接口149进行监视之前,编程设置定义各存储块144的边界。在一种实施方式中,编程接口149提供性能监视器106之可编程部分与局部节点102之I/O总线126之间的接口。(在另一种适合监视诸如处理器ID信息之类的附加存储器事务信息的实施方式中(未示出),将性能监视器106连接到系统总线122,并且经由系统总线122实现与监视器106之可编程部分的通信。)在其中I/O总线126为PCI总线的局部节点102的实施方式中,通过利用广泛使用并且文档完整的总线协议,采用I/O总线126,作为计算机系统100和性能监视器106之间的通信信道,能够减轻性能监视器106和编程接口149的设计。暂时转到图4,该图以印刷电路板400上实现的、适合于经由PCI连接器402连接到局部节点102之I/O总线126的方式,表示性能监视器106的实施方式。在此图中,性能监视器106包括由一个或多个现场可编程门阵列或专用设备组成的监视器逻辑404,用于按下述方式存储块计数器136的静态存储器设备406,以及前面讨论的信号处理设备107a和107b。
现在回到图3,过滤器模块132,根据定义存储器块144之边界的已编程设置,将抽取部件131抽取的物理地址与存储器块144中的至少一个存储器块联系起来。在所示实施方式中,各存储器块144对应于一个存储器块计数器136。过滤器模块132将与该物理地址有关的各存储器块144的存储器块计数器136加1。实现用于在性能监视器106中定义存储器块144之边界的机制,涉及在灵活性和可行性之间进行折衷。在强调灵活性的实施方式中,可以定义各存储器块144的高地址和低地址,或者作为选择,定义基址和范围,并且存储到专用寄存器中。尽管此实施能够提供随机定义各存储器块144之地址范围,而无需考虑剩余块144之地址边界的优点,但应意识到,如果要监视许多存储器块,则实现此模式的必要的专用寄存器的数目,将很快消耗较大部分性能模块资源和成本。在设计用来强调可行性,并且用来减少定义存储器块144所需要的专用寄存器之数目的实施中,各存储器块144的块大小可以是固定的。这样,各块的完整定义将只需要一个基址。尽管此设计要比前面讨论的实施节省资源,但是它会引入由固定块大小强加的约束,而并不会完全消除各定义的存储器块144需要附加专用资源的问题。借助本发明的以下实施方式,即通过软件编程,首先将物理地址空间145分成数目较少的随机定义的存储区域,实现了设计用来提供足够灵活性的合适实施,以便定义超大数目的存储器块,同时解决缺乏资源的问题。然后将存储器区域进一步分成可选数目的存储器块144,其中指定区域中的各块具有固定大小,而不同区域中的存储器块144的块大小可以不同。
回到图1,系统100的所示实施方式,包括连接到接线器109的监视系统103。在此实施方式中,最好将监视系统103配置为监视穿过接线器109的节点之间的事务。在最佳实施方式中,将监视系统103配置为,向用户显示在接线器109上监视的事务的图形表示。此外,监视系统103向用户提供可选输入,后者允许用户可视化各种类型的事务,并且允许用户确定与所监视事务相对应的物理存储器内的区域。借助监视系统103提供的图形界面,用户能够收集基于经验的存储器存取,以发现系统100内可能存在的所有存储器性能无效或异常。尽管系统100的所示实施方式,以独立于局部节点102和远程节点104的方式,表示监视系统103,但是本发明的不同实施方式,可以将性能监视系统103的性能监视以及图形用户界面功能,合并到局部节点102或某个远程节点104中。
现在转到图5,该图表示监视系统103之某种实施方式的框图。可以以计算机程序产品的方式,实现本发明的方法和系统,其中计算机程序产品由一组计算机指令组成,基于微处理器的数据处理系统可执行该组指令。在此实施方式中,将该组指令包含在诸如监视系统103之系统存储器、硬盘、软盘、CD ROM、磁带或其他适当存储设施之类的适当存储设施中。图5表示包含监视系统103的计算机指令组(程序)的主功能块。根据所示实施方式,监视系统103包括一个处理器或一组处理器501,后者适合于在系统103上执行软件。监视系统103还包括操作系统502、设备驱动程序504、称为C代码506的软件块、及图形用户界面(GUI)代码508。在一种实施方式中,操作系统502可包含Santa Cruz Operation公司的UnixWare 7操作系统。在另一种实施方式中,操作系统502可包含其他基于Unix的操作系统,如Linux操作系统。设备驱动程序504包含与性能监视器106交互的代码,性能监视器使用户能够对该程序员希望从性能监视器106接收的中断进行编程。此外,设备驱动程序代码504适合于操纵PCI总线126,以便对性能监视器106进行编程。C代码506提供执行设备驱动程序代码504所提供之库组的设施,以便从性能监视器106中抽取信息。GUI代码508最好为与平台无关的高级代码段,该代码段适合于生成图形用户界面,以便以资料丰富的可读格式,显示C代码506抽取的信息。
C代码506和GUI代码508(一并称为用户代码),最好适合于确定并显示通过接线器109的分组通信量的各种特征。例如,在一种实施方式中,用户代码适合于显示由接线器109检测到的分组数,其具有某种已定义的存储器事务属性。在一种实施方式中,定义的存储器事务属性可能包括分组方向、节点信息、分组类型准则,及存储器地址信息。用户代码最好适合于确定各分组的分组类型、目的地和各分组的源代码。最好将用户代码配置为根据其源节点、目标节点或分组类型,对分组进行计数和排序。在一种实施方式中,用户代码监视各性能监视器106上的8个计数器。对于8个计数器中的每个计数器,用户代码允许该用户定义要监视的节点、要监视的分组方向(即入局分组或出局分组)以及要监视的分组类型。遍历互连网络108的分组最好包含分组类型信息,后者标识该分组属于分组类型的预定号之一。
现在转到图6,该图表示根据本发明之某一实施方式的用户代码生成的图形用户界面600。界面600包含一个条形图部分602,后者显示8个计数器(计数器0到计数器7)中每个计数器计数的分组。在所示实施方式中,相对于其余的条形图(计数器1到计数器7),对计数器0的条形图进行规范化。换句话说,计数器1到计数器7的条形图,表示相对于计数器0之条形图的百分比。在此实施方式中,计数器0的条形图称为参考条形图。在最佳实施方式中,用户可选择作为参考条形图的条形图。根据图6所示实施方式的图形用户界面600还包括一个数据部分604,后者指示与8个计数器中之每个计数器有关的信息。对于各计数器,数据部分604包括一个计数字段606、一个百分比字段608、一个节点字段610和一个分组类型字段612。计数字段606显示相应计数器计数的分组数,而百分比字段608指示作为参考计数器计数之分组百分比的分组数。节点字段610指示正在对其分组进行计数的节点(或所有节点),而类型字段612指示正在对其进行计数的分组的类型。在最佳实施方式中,节点字段610和类型字段612中的各字段,均包含一个用户可选值,该可选值使用户能够监视系统100的任意节点或所有节点,以及任意或所有已定义的分组类型。
如上所述,用户代码的某种实施方式,使该用户能够定义是否监视入局或出局分组。为了启用此功能,图形用户界面600包含方向按钮614和616。此外,用户代码的某种实施方式允许该用户定义定时间隔,其中基于该间隔收集并显示监视信息。因此,所示实施方式的图形用户界面600包括一个定时部分618,后者包括一组间隔设置620和一个求和按钮624。当选择求和按钮624时,所有计数器处于累加模式,其中各计数器的计数值连续增加(或保持不变,若没有遇到合适分组的话)。当禁用求和按钮624时,周期清除计数器(根据所选的间隔按钮),从而直方图描述变化较快的“瞬时”数据,而求和模式提供某个较长时间段内之内存储器性能的比较稳定的视图。
除了使用户能够检查系统100正在生成的各种类型的分组,和负责各分组的节点之外,最好改写用户代码,以允许发现与各分组有关的内存地址的信息。由于NUMA系统中存储器存取时间与存储器地址之间的相关性,所以获得存储器地址信息(地址信息),对此类系统的存储器性能研究是很关键的。为了方便地址信息的分析,改写根据本发明的用户代码,以使用户能够可视化正在生成大部分节点之间活动的物理内存的位置。通过提供允许用户生成物理内存位置活动的直方图的设施,本发明的一种实施方式实现了上述可视化。转到图7,界面600的一种实施方式包括一个直方图按钮626,在按该按钮时,向用户显示直方图界面700。直方图界面700最好使用户能够选择内存活动直方图的粒度。在所示实施方式中,通过在内存窗口大小框702中,根据可用内存窗口大小的指定列表,指定内存窗口大小,实现粒度选择。例如,在某个实施方式中,系统100包含四个节点101,各节点具有1 GB的物理内存,系统100的总物理内存大小为4 GB。在此实施方式中,可用内存窗口大小可包括4 GB、2 GB、1 GB、512 MB、256 MB、128 MB、64 MB、32 MB等的窗口大小。可用窗口大小最好从适合于获得内存活动概况的超大窗口大小(即,窗口大小等于物理内存空间的大小),向较小的窗口大小排列,例如,描述单一高速缓存线上出现之活动的窗口大小。在一种实施方式中,可用窗口大小可以向下排列到最小窗口大小为2 MB的窗口大小。在直方图界面700的所示实施方式中,在内存窗口大小框702中选择的内存窗口大小定义相应的粒度。该粒度是窗口大小与监视系统103支持的内存窗口数的函数。例如,在图7所示的示例中,选择512 MB(229字节)的内存窗口大小,会导致8 K(213)的字节粒度,这意味着监视系统103能够跟踪多达64 K(216)个内存窗口。利用此“分辨率”,该系统能够监视粒度仅为32字节的2 MB窗口大小。
除了定义内存活动直方图的粒度之外,选择内存窗口大小还定义内存窗口数。内存窗口数最好为总内存大小除以内存窗口的大小。在图7所示的示例中,在4 GB的系统上选择512 MB的窗口大小,会导致可以查看其直方图的8个内存窗口。用户利用滑块704选择要查看哪个内存窗口。滑块704最好根据内存窗口大小和总内存大小,自动调整可用窗口数。因此,当内存窗口大小导致8个内存窗口时,滑块704允许用户选择窗口0到窗口7。如果内存窗口大小减半,窗口数将加倍,达到16个,滑块704将自动调整,以使用户能选择16个窗口中的任一窗口。此外,直方图界面700的最佳实施方式在显示框705中,显示与当前所选内存窗口相对应的物理地址范围。如该示例所示,在窗口大小为512 MB、总内存大小为4 GB的系统中选择窗口号4(在窗口编号从1开始的系统中),将要描述的物理地址范围表示为0×60000000至0×7FFFFFFF。
在选择适当的窗口大小和窗口号,以获得所需物理内存窗口后,通过单击直方图界面700上的直方图按钮706,用户可生成内存活动直方图。作为对选择界面按钮706的响应,监视系统103生成所定义的物理内存范围内的内存活动的直方图。图8中表示一典型直方图800,其中水平轴表示物理内存地址,垂直轴表示内存存取次数。由界面600中的设置,定义直方图800内显示的内存活动。因此,如果用户选择所有节点之所有分组类型的入局分组,则直方图800将指示所选内存范围内的所有入局分组。除了显示内存活动之外,图8所示的直方图800,还显示该用户利用直方图界面700选择的内存窗口大小。直方图800利用各存储“粒度”的垂直线指示计数,作为用户选择的窗口大小和窗口号定义的计数。这样,用户可以定义最感兴趣的内存活动的类型,并快速分析该系统是否显示出有关所选内存活动的任何内存无效。例如,在NUMA系统中,局部存储器存取比远程存储器存取更可取。因此,如果指定的直方图指示在特定节点101的物理地址处,有比较集中的内存活动,可以推断出存在与该节点相对应的不合需要的节点之间的活动。在某种实施方式中,通过按下述方式使用中断机制,维护直方图800。用户首先定义一个中断屏蔽(IMASK)值,该值确定产生中断的频率。各中断与窗口大小和窗口号设置所定义的存储粒度或窗口之一有关。当检测到内存活动对应于特定内存窗口时,将关联计数器加1。当计数器达到IMASK设置定义的值时,产生一个中断,后者指示负责该中断的内存窗口计数器计数。根据此信息,监视系统103可以更新直方图800,方法是将与适当内存窗口相对应的直方图线,延长代表IMASK值的数量。例如,如果IMASK值为256,在每当窗口计数器达到256时,就产生一个中断。当检测到此中断时,监视系统103确定与该中断关联的监视窗口,并且相对于直方图800的垂直刻度,将相应的直方图线增加到一个代表256的数量。利用竞争考虑指导适当IMASK值的选择。一方面,IMASK值太低会产生比较频繁的中断,这会影响正在监视的系统(系统100)的性能。另一方面,IMASK值太高可能会导致直方图800的更新频率很低。适当的IMASK选择允许比较频繁地更新直方图800,同时对系统100的性能影响最小。
因此,对于熟练的技术人员而言,本公开的优点是显而易见的,本发明期望用于利用存储器事务监视硬件的设备,以生成诸如NUMA数据处理系统之类的复杂数据处理系统中内存活动的有用的和资料丰富的显示。应该了解,详细说明书中说明并描述的本发明的形式以及附图仅仅作为目前的最佳示例。其意图是广义解释以下权利要求,以包含所公开的最佳实施方式的所有变更。

Claims (21)

1.一种监视数据处理系统中之存储器事务的方法,包括:
利用监视系统定义存储器事务属性集;
在连接到监视系统的数据处理系统上,检测与定义的存储器事务属性集匹配的存储器事务;以及
以图形格式显示检测到的指定时期内发生的存储器事务数。
2.权利要求1的方法,其中数据处理系统包括一个NUMA系统,后者包括一组节点,并且其中检测到的事务为穿过连接NUMA系统之节点的接线器的事务。
3.权利要求1的方法,其中存储器事务属性集包括存储器事务类型信息。
4.权利要求1的方法,其中数据处理系统包括多个节点,并且其中存储器事务属性集包括节点信息和事务方向信息。
5.权利要求1的方法,其中数据处理系统包括多个节点,并且其中数据处理系统在第一操作系统下运行,而监视系统在第二操作系统下运行。
6.权利要求1的方法,其中定义存储器事务属性包括,在图形用户界面的至少一个节点选择框和至少一个分组类型框中,输入一个值,以及选择至少一个方向事务方向按钮。
7.权利要求1的方法,其中定义存储器事务集包括,定义存储器窗口大小,并将存储器窗口细分为一组存储粒度。
8.权利要求7的方法,其中显示检测到的存储器事务数包括,显示与存储器窗口中各存储粒度相对应的存储器事务数。
9.权利要求8的方法,其中显示与各存储粒度相对应的存储器事务数包括,每次发出中断时更新该显示,其中中断表示检测到的与存储粒度匹配的存储器事务数。
10.权利要求9的方法,其中当检测到的存储器事务匹配数等于定义的中断屏蔽值时,发出中断。
11.一种用于监视NUMA处理系统上之存储器事务的系统,该系统包括:
一个处理器;
一个设备驱动程序,该设备驱动程序配置为从连接NUMA系统之节点的接线器,接收存储器事务信息;
用户代码,该用户代码配置为使用户能够定义存储器事务属性集,并且还适合于显示与指定时期内之定义存储器属性集匹配的存储器事务数。
12.权利要求11的系统,其中设备驱动程序和用户代码在第一操作系统下执行,而NUMA系统在第二操作系统下运行。
13.权利要求11的系统,其中存储器事务属性集包括存储器事务类型信息、存储器事务方向信息以及存储器事务节点信息。
14.权利要求11的系统,其中存储器事务属性集包含存储器地址信息。
15.一种计算机程序产品,包括可由监视系统中之处理器执行的指令集,以监视NUMA系统中的存储器事务,指令集包括:
图形用户界面装置,用于利用监视系统定义存储器事务属性集;
用于在数据处理系统上,检测与定义的存储器事务属性集匹配的、穿过连接NUMA系统之节点的接线器的存储器事务的装置;以及
用于以图形格式显示检测到的指定时期内发生的存储器事务数的装置。
16.权利要求15的计算机程序产品,其中存储器事务属性集包括存储器事务类型信息。
17.权利要求15的计算机程序产品,其中存储器事务属性集包括节点信息和事务方向信息。
18.权利要求15的计算机程序产品,其中数据处理系统在第一操作系统下运行,而监视系统在第二操作系统下运行。
19.权利要求15的计算机程序产品,其中用于定义存储器事务属性的图形用户界面装置包括,用于在至少一个节点选择框和至少一个分组类型框中,输入值的装置,以及选择至少一个方向事务方向按钮的装置。
20.权利要求15的计算机程序产品,其中用于定义存储器事务集的装置包括,用于定义存储器窗口大小,并将存储器窗口细分为一组存储粒度的装置。
21.权利要求20的计算机程序产品,其中用于显示检测到的存储器事务数的装置包括,显示与存储器窗口中各存储粒度相对应的存储器事务数的装置。
CN00134817.5A 1999-12-14 2000-12-04 存储器事务监视系统和用户界面 Expired - Fee Related CN1220138C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/460,831 1999-12-14
US09/460,831 US6601149B1 (en) 1999-12-14 1999-12-14 Memory transaction monitoring system and user interface

Publications (2)

Publication Number Publication Date
CN1300009A true CN1300009A (zh) 2001-06-20
CN1220138C CN1220138C (zh) 2005-09-21

Family

ID=23830240

Family Applications (1)

Application Number Title Priority Date Filing Date
CN00134817.5A Expired - Fee Related CN1220138C (zh) 1999-12-14 2000-12-04 存储器事务监视系统和用户界面

Country Status (2)

Country Link
US (1) US6601149B1 (zh)
CN (1) CN1220138C (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104350468A (zh) * 2012-06-15 2015-02-11 国际商业机器公司 非事务存储指令
CN112585595A (zh) * 2018-04-23 2021-03-30 马克·S·诺沃塔斯基 具有图形用户接口的系统性能监视器

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970809B2 (en) * 2001-08-29 2005-11-29 International Business Machines Corporation Automated configuration of on-circuit facilities
US20040064655A1 (en) * 2002-09-27 2004-04-01 Dominic Paulraj Memory access statistics tool
US20040168005A1 (en) * 2003-02-21 2004-08-26 Sun Microsystems, Inc. Methods for interrupting a program and for obtaining program execution acquisition
US7269830B2 (en) * 2003-09-16 2007-09-11 Sun Microsystems, Inc. Methods and hardware for safe memory allocation in arbitrary program environments
US20050120337A1 (en) * 2003-12-01 2005-06-02 Serrano Mauricio J. Memory trace buffer
US20070055224A1 (en) * 2004-04-29 2007-03-08 Lee Fred T Jr Intralumenal microwave device
US7296129B2 (en) 2004-07-30 2007-11-13 International Business Machines Corporation System, method and storage medium for providing a serialized memory interface with a bus repeater
US7305574B2 (en) * 2004-10-29 2007-12-04 International Business Machines Corporation System, method and storage medium for bus calibration in a memory subsystem
US7277988B2 (en) * 2004-10-29 2007-10-02 International Business Machines Corporation System, method and storage medium for providing data caching and data compression in a memory subsystem
US7512762B2 (en) 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US7395476B2 (en) * 2004-10-29 2008-07-01 International Business Machines Corporation System, method and storage medium for providing a high speed test interface to a memory subsystem
US7299313B2 (en) 2004-10-29 2007-11-20 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US7331010B2 (en) 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
US7356737B2 (en) * 2004-10-29 2008-04-08 International Business Machines Corporation System, method and storage medium for testing a memory module
US7441060B2 (en) * 2004-10-29 2008-10-21 International Business Machines Corporation System, method and storage medium for providing a service interface to a memory system
US7287128B1 (en) 2005-01-25 2007-10-23 Seagate Technology Llc Write on reference mesh
US7478259B2 (en) 2005-10-31 2009-01-13 International Business Machines Corporation System, method and storage medium for deriving clocks in a memory system
US7685392B2 (en) 2005-11-28 2010-03-23 International Business Machines Corporation Providing indeterminate read data latency in a memory system
US7526617B2 (en) * 2005-12-29 2009-04-28 Sap Ag System and method for memory management using memory windows
US7636813B2 (en) * 2006-05-22 2009-12-22 International Business Machines Corporation Systems and methods for providing remote pre-fetch buffers
US7584336B2 (en) * 2006-06-08 2009-09-01 International Business Machines Corporation Systems and methods for providing data modification operations in memory subsystems
US7493439B2 (en) * 2006-08-01 2009-02-17 International Business Machines Corporation Systems and methods for providing performance monitoring in a memory system
US7669086B2 (en) 2006-08-02 2010-02-23 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
US7870459B2 (en) * 2006-10-23 2011-01-11 International Business Machines Corporation High density high reliability memory module with power gating and a fault tolerant address and command bus
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
US7606988B2 (en) * 2007-01-29 2009-10-20 International Business Machines Corporation Systems and methods for providing a dynamic memory bank page policy
US7711907B1 (en) 2007-02-14 2010-05-04 Xilinx, Inc. Self aligning state machine
US8479124B1 (en) 2007-02-14 2013-07-02 Xilinx, Inc. Graphical user interface (GUI) including input files with information that determines representation of subsequent content displayed by the GUI
US7913022B1 (en) 2007-02-14 2011-03-22 Xilinx, Inc. Port interface modules (PIMs) in a multi-port memory controller (MPMC)
US7720636B1 (en) * 2007-02-14 2010-05-18 Xilinx, Inc. Performance monitors (PMs) for measuring performance in a system and providing a record of transactions performed
US20090040842A1 (en) * 2007-08-06 2009-02-12 Sandisk Corporation, A Delaware Corporation Enhanced write abort mechanism for non-volatile memory
US7599241B2 (en) * 2007-08-06 2009-10-06 Sandisk Corporation Enhanced write abort mechanism for non-volatile memory
US8676965B2 (en) * 2009-07-30 2014-03-18 Hewlett-Packard Development Company, L.P. Tracking high-level network transactions
US9348642B2 (en) 2012-06-15 2016-05-24 International Business Machines Corporation Transaction begin/end instructions
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US9384004B2 (en) 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US9448796B2 (en) 2012-06-15 2016-09-20 International Business Machines Corporation Restricted instructions in transactional execution
GB2540949B (en) * 2015-07-31 2019-01-30 Arm Ip Ltd Probabilistic Processor Monitoring

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5377344A (en) * 1991-07-31 1994-12-27 Toyo Corporation Selective memory transaction monitor system
US6442585B1 (en) * 1997-11-26 2002-08-27 Compaq Computer Corporation Method for scheduling contexts based on statistics of memory system interactions in a computer system
US6202127B1 (en) * 1997-11-26 2001-03-13 Compaq Computer Corporation Apparatus for spatial and temporal sampling in a computer memory system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104350468A (zh) * 2012-06-15 2015-02-11 国际商业机器公司 非事务存储指令
CN104350468B (zh) * 2012-06-15 2017-11-14 国际商业机器公司 非事务储存指令
CN112585595A (zh) * 2018-04-23 2021-03-30 马克·S·诺沃塔斯基 具有图形用户接口的系统性能监视器

Also Published As

Publication number Publication date
US6601149B1 (en) 2003-07-29
CN1220138C (zh) 2005-09-21

Similar Documents

Publication Publication Date Title
CN1220138C (zh) 存储器事务监视系统和用户界面
Skinner et al. Understanding the causes of performance variability in HPC workloads
US8166462B2 (en) Method and apparatus for sorting and displaying costs in a data space profiler
Lange et al. JEWEL: Design and implementation of a distributed measurement system
US7383396B2 (en) Method and apparatus for monitoring processes in a non-uniform memory access (NUMA) computer system
US8813055B2 (en) Method and apparatus for associating user-specified data with events in a data space profiler
US6349394B1 (en) Performance monitoring in a NUMA computer
De Kergommeaux et al. Pajé, an interactive visualization tool for tuning multi-threaded parallel applications
Fidjeland et al. Accelerated simulation of spiking neural networks using GPUs
US8032875B2 (en) Method and apparatus for computing user-specified cost metrics in a data space profiler
US8176475B2 (en) Method and apparatus for identifying instructions associated with execution events in a data space profiler
US5727167A (en) Thresholding support in performance monitoring
US20080114806A1 (en) Method and Apparatus for Data Space Profiling of Applications Across a Network
CN104915793A (zh) 基于大数据分析挖掘的公共信息智能分析平台
IL131032A (en) A method and system in a distributed system with shared data memory for determining the use of shared memory contained within nodes by a dedicated application
Abellán et al. Efficient hardware barrier synchronization in many-core cmps
US20200409932A1 (en) Systems and methods for real-time analytics detection for a transaction utilizing synchronously updated statistical aggregation data
Qu et al. High performance simulation of spiking neural network on gpgpus
Topol et al. Pvanim: a tool for visualization in network computing environments
WO2022127288A1 (zh) 一种网页显示方法、系统及介质
Garcia-Garcia et al. PBBCache: An open-source parallel simulator for rapid prototyping and evaluation of cache-partitioning and cache-clustering policies
CN107436839B (zh) 进程负载获取方法、电子终端及计算机可读存储介质
Zhao et al. Exploring large-scale CMP architectures using ManySim
CA3144129A1 (en) User access data processing method, device and computer system
CN107341038A (zh) 兼容性处理方法、装置及电子设备

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20050921

Termination date: 20181204