CN102652309A - 处理资源管理的计算机实现的方法 - Google Patents
处理资源管理的计算机实现的方法 Download PDFInfo
- Publication number
- CN102652309A CN102652309A CN2010800556351A CN201080055635A CN102652309A CN 102652309 A CN102652309 A CN 102652309A CN 2010800556351 A CN2010800556351 A CN 2010800556351A CN 201080055635 A CN201080055635 A CN 201080055635A CN 102652309 A CN102652309 A CN 102652309A
- Authority
- CN
- China
- Prior art keywords
- processor
- data
- implemented method
- indication
- computer implemented
- 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
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000012545 processing Methods 0.000 title claims abstract description 20
- 238000012544 monitoring process Methods 0.000 claims abstract description 4
- 230000008569 process Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 claims description 3
- 238000005259 measurement Methods 0.000 claims description 2
- 230000005012 migration Effects 0.000 description 6
- 238000013508 migration Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 206010051602 Laziness Diseases 0.000 description 1
- 101150046432 Tril gene Proteins 0.000 description 1
- 238000010009 beating Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 210000001357 hemopoietic progenitor cell Anatomy 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000001167 microscope projection photolithography Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000009257 reactivity Effects 0.000 description 1
- 238000005057 refrigeration Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
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/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/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/27—Using a specific cache architecture
- G06F2212/271—Non-uniform cache access [NUCA] architecture
Abstract
本发明公开涉及一种用于管理计算机化系统的处理资源的计算机实现的方法,所述计算机化系统至少具有第一处理器和第二处理器,每个所述处理器都操作性地互连到存储要由处理器处理的一组数据的存储器,所述方法包括:在执行的同时监视被所述第一处理器访问的数据;以及如果所述第二处理器比所述第一处理器离所监视的数据的距离更短,就指示中断在所述第一处理器处的执行并在所述第二处理器处恢复执行。
Description
背景技术
计算机是根据指令处理数据的机器。如今,它们大部分被配置成诸如将其工作分布到数个CPU上,从而提供多处理能力。现在,个人和膝上型计算机也可以使用多处理器和多内核系统,而不再仅限于超级计算机、大型计算机或者服务器。然而,最大的计算机仍然受益于与普通计算机显著不同的独特体系结构。例如,它们常常以数以千计的处理器、高速互连和专用硬件为特征。
不管是在多处理器背景下还是在非多处理器背景下,对计算机系统来说,一个挑战是要提高其整体性能,同时降低合计的功耗。除此之外,如今大多数CPU都倾向于花时间等待内存、I/O、图形等等,使得提高单个CPU指令执行的性能不再是主要可能的发展方向。
例如,Brown,J.A.与Tullsen,D.M.的论文(在Proceedings of the22nd Annual international Conference on Supercomputing(Island ofKos,Greece,June 07-12,2008)学报上标题为“The shared-threadmultiprocessor”,ICS’08.ACM,纽约,NY,73-82.DOI=http://doi.acm.org/l 0.1 145/1375527.1375541)描述了共享线程多处理器(STMP)的体系结构的结果。STMP结合了多线程处理器与芯片多处理器的特征。具体而言,它使得芯片多处理器上不同的内核可以共享线程状态。这种共享的线程状态允许系统把线程从共享池调度到单个内核上,从而允许线程在内核之间的快速移动。该论文证明和评估了这种体系结构的好处。
其它方法集中在:
集成到存储器阵列结构中的多个处理器,参见,例如,Duncan G.Elliott,W.Martin Snelgrove,和Michael Stumm所写的Computational RAM:A Memory-SIMD Hybrid and its Application toDSP.在Custom Integrated Circuits Conference上,pages30.6.1-30.6.4,Boston,MA,May 1992;
集成到芯片上的多个处理器与存储器宏(PIM),参见,例如,Maya Gokhale,Bill Holmes,和Ken Iobst所写的Processing inMemory:the Terasys Massively Parallel PEVI Array.Computer,28(3):23-31,April 1995;
集成到芯片上的多个处理器与存储器宏(Execube),参见,例如,Peter M.Kogge.EXECUBE-A New Architecture for Scalable MPPs.在1994 International Conference on Parallel Processing上,pages177-184,August 1994;以及
IRAM,参见,例如,David Patterson,Thomas Anderson,NealCardwell,Richard Fromm,Kimberly Keeton,Christoforos Kozyrakis,Randi Thomas,和Katherine Yelick所写的Intelligent RAM(IRAM):Chips that Remember and Compute",发表在1997 IEEEInternational Solid-State Circuits Conference(ISSCC)6-8 February1997,San Francisco,CA.。
发明内容
描述了用于管理计算机化系统的处理资源的计算机实现的方法的各实施方式。在有些实施方式中,计算机化系统至少包括第一处理器和第二处理器,每个所述处理器都操作性地互连到适于存储一组数据的存储器。在一种实施方式中,该计算机实现的方法包括在执行的同时监视被所述第一处理器作为输入数据或输出数据中的至少一个进行处理的一组数据。该计算机实现的方法还包括:如果基于所述监视,发现所述第二处理器比所述第一处理器离所监视的数据的距离更短,就指示中断在所述第一处理器处的执行并且在所述第二处理器处恢复(resume)执行。
描述了另一种用于管理计算机化系统的处理资源的计算机实现的方法的各实施方式。在有些实施方式中,计算机化系统包括多个处理器,其中有第一处理器和第二处理器,每个所述处理器都操作性地互连到适于存储要由处理器处理的一组数据的存储器。在一种实施方式中,该计算机实现的方法包括:在执行的同时监视被所述第一处理器作为输入数据或输出数据中的至少一个进行处理的所述组中的数据。此外,如果发现第二处理器比第一处理器离所监视的数据更近,该计算机实现的方法还包括:中断在所述第一处理器处的执行,所述第一处理器处于给定处理器状态,以及从至少部分地由所述给定处理器状态确定的处理器状态开始,在所述第二处理器处恢复执行。
从以下的具体描述并联系附图,本发明实施方式的其它方面与优点将变得显而易见,附图是作为本发明原理的例子来说明的。
附图说明
图1是用于管理计算机化系统的处理资源的方法的一种实施方式的流程图;
图2是更具体的流程图,说明了用于管理计算机化系统的处理资源的方法的一种具体实施方式;
图3示意性地说明了线程执行被挂起/继续的一种实施方式;
图4是实现用于管理计算机化系统的处理资源的方法的一种实施方式的计算机系统的示意性表示;以及
图5和6是图4的变体实施方式。
具体实施方式
在以下描述中,提供了各种实施方式的具体细节。但是,有些实施方式可以用比所有这些具体细节少的细节被实践。在其它情况下,为了简洁与清晰,对某些方法、过程、部件、结构和/或功能的描述以使本发明各种实施方式能够运作为限,不作更具体的描述。
在有些实施方式中,用于管理计算机化系统的处理资源的计算机实现的方法打破了传统模式,根据这种传统模式,处理器是世界的中心并且输入/输出数据都被带入处理器/从处理器带走。相反,所述计算机实现的方法的实施方式提出了把“计算”状态信息移动到数据所在的位置,例如,通过把内核状态移动到最靠近的内核,而不是把数据移动到CPU。基本上,这导致在实践当中移动几千字节而不是几兆字节。
在得出这种逆向模式之前,本发明人意识到以下:
-大量的功率是用于移动数据;
-消耗在例如双列直插内存模块(DIMM)上的功率的一半是输入/输出(I/O);
-把更多的内核放到单个大的管芯上不能持续很长时间,更不用说每个内核的带宽问题、功耗和制冷的挑战;以及
-高速缓存使用大量的面积和功率。
相应地,移动数据的成本变成比移动计算更本质的问题,由此实现了本方法的好处。
图1是用于管理计算机化系统的处理资源的方法的一种实施方式的流程图。该方法旨在提出一种管理计算机化系统中的处理资源的新途径,其中几个处理器操作性地互连到存储器。存储器适于存储一组数据,这些数据可以由所述处理器中的一个或多个使用。一般来说,所关心的数据是由内核读取(“输入数据”)和/或生成的并且写回(“输出数据”)。该方法包括两个主要的步骤,现在我们来讨论。
为了简化,现在只考虑两个处理器。
首先,在步骤100,监视由处理器中的第一处理器处理的输入和/或输出数据。
其次,如果发现第二处理器比第一处理器离所监视的数据的距离更短(测试110),就在步骤120中断在第一处理器处的执行,并在步骤130在第二处理器处恢复所述执行。因而,数据是从更靠近的处理器访问/生成的,由此避免了从/到第一处理器(或者其L1-L3高速缓存)不必要的更长距离的数据移动。
更一般地,同时监视由N个处理器访问的数据。为了理解起见,图1流程图的目的是提供关于本发明的高级视图。
正如所说的那样,被监视的数据可以是输入数据和/或输出数据。但是,下文中的实施方式是基于只监视输入数据,即,处理器读取的数据,的例子,这仅仅是为了简化。但是,不管是输入数据还是输出数据,本发明的原理都保持相同。
在离被监视的数据有较短距离的处理器处恢复指令。所讨论的距离可以是例如对于处理器离其所处理的数据有多远的测量。例如,在以下所讨论的一种实施方式中,CPU内核是在存储器的3D堆栈上:在这里,从一个给定内核到其对应存储器的距离在物理上短,而到另一个3D堆栈的存储器的距离就大得多。更一般地说,所讨论的距离反映了成本,例如,能量或时间的成本。
例如,数据越远,就需要越多的功耗来运输它们(这是成本的来源)。
距离还可以反映时间成本。在这点上,所考虑的距离可以象数据到达给定处理器的等待时间(或者预期的等待时间)一样变化。等待时间(即,访问时间)是向处理器提供它所请求的数据时存储器延迟的时间。大概地说,离处理器越远,到达其所花的时间越长。等待降低了处理器的性能;如果处理器必须等待五个存储器时钟周期来接收其所请求的数据,那么它的性能将只有在它使用能够立即传输数据的存储器时所具有的性能的1/5。因而,在更近的处理器处恢复执行可以导致更好的性能。
例如,到给定数据的距离可以基于它们的存储器地址与处理器位置来估计。
此外,监视由第一处理器访问的输入数据可以基于存储在互连(例如,总线)上的输入数据的存储器地址来执行。例如,监视最近100个被访问的存储器地址。如果显示例如大部分被监视的地址都属于更靠近第二处理器的一个存储器或者一个存储器扇区,那么就决定在第二处理器处恢复执行。监视什么数据被处理器访问也可以经由处理器的寄存器或者其它装置来执行。
例如,为了确定第二处理器是否比第一处理器更近,距离可以被确定为包括由第一处理器读/写的数个数据(例如,最近100个读/写存储器地址)的向量。
关于是否把执行移动到另一个处理器的决定可以在一个或多个控制器作出。所关心的控制器可以是软件或者硬件,例如,硬件电路。在后一种情况下,硬件电路适当地(例如,经一个或多个开关)既互连到处理器又互连到存储器。控制逻辑可以进一步是集中式的(一个控制器决定)或者是分布式的,即,数个控制器(例如,每个处理器一个控制器)可以竞争性地决定,如随后将要说明的那样。
为了使这些想法清晰,考虑下面的例子。请求第一处理器P1执行一些代码。在某个时候,代码的执行需要两个(非常)大的数字——N1和N2(即,输入数据)——相加,应当指出,如果只是涉及充分小的数字,那么所关心的相加可以在一个周期内很好地实现。我们假定在P1执行的代码反映了被设计成使比可用的RAM大的数字相加的算法。在所给出的情况下,当开始相加时,P1轮询其存储器高速缓存关于N1或者至少其一部分。出于现有目的,为了简化,我们考虑只存在一个高速缓存级,即L1。但是,由于N1非常大,例如,它占用8T(百万兆)字节的存储器,因此所述存储器高速缓存不能很容易地获得N1来应答P1的请求(高速缓存线的大小一般是64字节-1K字节)。因而,L1随后将询问存储N1的不同部分的存储器位置(例如,在邻近的块中),以便在执行的同时正确地馈送给P1。N1各部分的地址相应地记录到例如总线中(或者某种其它互连中)。同时,监视所存储的地址(代替输入数据,对于输出数据也一样)。如果这种地址对应于远端存储器位置,这个位置离另一处理器P2更近,那么执行就移动到P2,如上所述。
顺便提一句,尽管以上的例子假定有高速缓存存储器(cachememory),但是,即使完全没有高速缓存存储器,所述方法的实施方式也可以非常好地应用。事实上,如果不使用高速缓存(cache),即,当处理器直接询问存储器中的输入数据的时候,所述方法的实施方式的原理也保持相同。例如,可以以基本上相同的方式监视所询问数据的地址。除此之外,可以预期处理器的寄存器成为下一级高速缓存,“更靠近”处理器,使得上述例子扩展到不依赖高速缓存存储器的情况(在一般的意义上)。
在一种变体中,有些处理器可以有高速缓存存储器,而一个或多个其它处理器可以没有。以与主存储器针对最初冷丢失而为处理器提供服务的相同方式,具有高速缓存存储器的处理器可以用来覆盖在其它处理器处的计算的建立。因而,执行可以在P1开始(其中P1配备有高速缓存),而当发现了更合适的处理器Pn时,执行就移动到后者(最合适的处理器事先是不知道的)。
接下来,可以例如通过从(至少部分地)由第一处理器的处理器状态(即,在执行被中断时的处理器状态)所确定的处理器状态开始,在第二处理器处恢复执行,来实现无缝过渡。
“处理器状态”通常指在某个时间点由(至少)处理器寄存器反映出的处理器的状态,包括,例如,状态标记。更广泛地说,它可以指处理器寄存器、锁存器和存储器(例如,高速缓存存储器)或者更多。一般来说,在处理器执行的代码和被处理器访问的输入数据是这个处理器的当前状态的一部分。
相应地,在第二处理器处恢复执行可以通过把寄存器数据导入第二处理器来实现,假定第二处理器可以解释它们(就象具有两个相同处理器的情况)。
在这点上,关于如何在处理器之间移动数据的令人感兴趣的细节(尽管是在不同的背景下)可以例如在P.Stanley-Marbell,K.Lahiri,A.Raghunathan,"Adaptive Data Placement in an EmbeddedMultiprocessor Thread Library,"date,vol.1,pp.151,Proceedings ofthe Design Automation & Test in Europe Conference Vol.1,2006找到。
在一种实施方式中,在已知状态信息数据部分相同的那些情况下,寄存器数据的子集被导入到第二处理器中。但是,第二处理器在恢复时的状态仍然至少部分地是由第一(初始)处理器的状态确定的。在一种变体实施方式中,在导入到第二处理器之前,状态信息数据可以利用来自第一处理器的处理器寄存器的部分或全部数据来组装(populated),并且例如,被便利地格式化。
更一般地说,适当地捕捉部分或全部处理器状态的任何数据都可以依赖(下文中称为状态信息数据,或者简称为状态数据)。因而,在第二处理器的执行是在第二处理器中加载一些便利的状态信息之后恢复的,关键之处仍然是把“计算”状态数据移动到(输入/输出)数据,而不是把数据移动到计算。正如所说,与在处理时移动被访问的(输入)数据所需的兆字节相比,这导致移动数打——有可能数百——千字节。
图2示出了更具体的流程图,说明了管理计算机化系统的处理资源的方法的更具体实施方式。除了已经参考图1所讨论的步骤,在这里可以预期懒惰迁移,以便进一步提高关于图1所述的实施方式的策略的效率。具体而言,可以指示组装(步骤112)来自第一处理器的寄存器的状态数据;所组装的数据的加载在实际中断第一处理器处的执行之前开始(步骤112、114)。例如,当控制器识别出被(太)远的处理器访问的数据时,它可以扫描处理器的寄存器,识别出最持久的状态数据,并决定把这种数据移到更靠近的处理器。
在一种变体实施方式中,第一处理器的状态的早先版本被发送到第二处理器。一旦中断在第一处理器处的执行,就发送编码所述早先状态与最新状态之间的差异的增量文件。因而,最终只需要移动非常少的数据(几千字节或者更少),从而确保了快速过渡。
此外,当第二处理器有可能在随后被重用时,不是所有的寄存器数据都需要重新发送第二次。控制器将相应地指示迁移(步骤112、114)捕捉第一处理器状态的一个子部分的状态数据。
一旦迁移(步骤114)完成,就可以在第二处理器处恢复执行(步骤130)。
本发明实施方式允许安全地摆脱数据高速缓存,因为高存储器带宽允许非常短的连接。然而,在实践当中不一定需要这样。
例如,进一步的改进是通过除状态数据之外还迁移由第一处理器使用的高速缓存来获得的。因此,第一处理器的“环境”在第二处理器处被更完整地重新创建。更明确地说,存储被第一处理器最频繁访问的数据拷贝的存储器高速缓存(memory cache)的数据可以被写入(步骤116)由第二处理器使用的存储器高速缓存中。为了一致性,同步将优选地与状态数据所使用的相同。
所迁移的存储器高速缓存一般是最小的,即,第一处理器使用的L1存储器高速缓存。更有效地,可以依赖一个存储器高速缓存(L1),而不是通常的L1-L3三件套。实际上,在本发明实施方式中实现的高存储器带宽允许安全地除去数据高速缓存。此外,依赖于例如“硅导孔”或TSV(Through Silicon Via,TSV)技术允许非常短的连接。顺便提一句,空出来的面积可以用于更多的内核。
此外,可以象高速缓存中的行(line)一样来对待计算内核状态本身。计算内核具有千字节的状态。由此,执行可以在第一处理器处被挂起,而内核寄存器与L1高速缓存可以被移动到更适当的内核。
接下来,在中断在第一处理器处的执行之后,第一处理器的处理器状态可以一直维持到其它的状态数据被加载到其中(步骤112’)。这可以是例如缺省的行为。同样,控制器可以确保在适当的时间内而且如果必要的话经增量文件更新第一处理器处的状态。
如果没有指示新状态要加载到其中的话,有可能第一处理器可以在暂时性延迟(temporization delay)之后被关闭(步骤140)。由此,优化了功耗。
令人感兴趣的是,要中断和恢复的计算任务的最适合规模依赖于例如监视算法的反应性。找到最有效的规模依赖于上下文、处理器的个数、体系结构、处理的类型、任务、输入数据的本质,等等。假定有效的监视策略是可以获得的,那么本发明有利地是以单个执行线程的规模实现的。将相应地指示在挂起线程在第一处理器处的执行(步骤120)之后继续线程在第二处理器处的执行(步骤130)。
线程的执行可以看作运行任务的一部分。对于大部分操作系统,线程包含在过程中,而且在同一过程中可以出现数个线程,共享诸如存储器之类的资源,随过程有所不同。从多线程技术已知,如何使单个处理器在不同的线程之间切换(就象在多任务中一样)。类似地,在这里,本发明实施方式使一个线程在一个处理器处被停止。然而,代替在同一个处理器处恢复该线程,该线程在另一个处理器处继续。
这一点在图3中说明。y轴是时间线。圆圈内的两条平行线指示各自的处理器,P1和P2。如从图中暗示的那样,线程属于给定的过程p。首先,线程t在P1开始并执行。在某个时候,控制器(未示出)检测到P1正在使用更靠近P2的资源并且决定中断线程t,处理器P1处于状态s1。如前面所讨论的,然后,线程t从状态s1开始,在P2恢复。执行继续,直到线程终止,或者甚至是在P2被中断(处于状态s2)以被导入回到P1,如图3中所示的,并且如果上下文使之有利的话就这样。关于线程管理的细节可以例如在以上所引用的出版物,即“Adaptive Data Placement in an Embedded Multiprocessor ThreadLibrary”,中找到。
因而,本发明实施方式允许把计算状态移动到存储器,而不是让分层的高速缓存集合从主存储器移动数据。正如所说的那样,该方法的有些实施方式是在硬件控制之下执行的(控制器被体现为硬件电路),对软件是透明的。
图4是实现用于管理计算机化系统的处理资源的方法的一种实施方式的计算机系统的示意性表示。在这里,处理器P1-PN经合适的互连B连接到存储器M,其中互连B包括总线B或者交叉开关,还有可能包括开关。它们又以别的方式连接到存储器D(例如,硬盘),并在控制器C的控制之下。在一种变体实施方式中,开关是分布式的,例如,每个内核或者内核子集一个开关。在还有另一种变体实施方式中,控制器C是互连的一部分。在所有情况下,控制器C都适当地耦合到处理器和存储器,以便诸如能够指示把执行从一个处理器移动到另一个。
在所描绘的例子中,特定的输入数据d被物理地存储成比P1访问其的位置更靠近P2访问其的位置。在操作中,如果P1变成过于频繁地访问d,那么控制器可能想把P1的状态移动到P2,从而使得较少的数据被移动。
图5是图4的一种变体实施方式,其中控制器C1-CN分布在多个处理器上,例如,每个处理器一个控制器Cn。在这里,控制器可以同时决定把处理器状态从一个处理器移动/接收到另一个处理器。因而,在C1执行的、基于监视的输入数据的测试可以导致把P1状态移动到P2。然后,基于P2当前的活动性(状态),C2可以决定是否接受。例如,如果P2是不活动的,那么C2就确认把P1状态移动到P2。类似地而且如所提到的那样,开关可以是分布式的。
图6是图4的另一种变体实施方式,其中存储器现在包括至少两个存储器芯片M1、…、MN,第一和第二处理器P1、P2中的每一个都是操作性互连到诸如DIMM的存储器的芯片M1、M2的处理器内核,控制器经合适的互连互连到处理器。
更具体地说,在有些实施方式中,处理器P1-PN是各自3D存储器堆栈M1-MN(例如,DIMM存储器芯片)之上的四内核布置。但是,总体的原理保持相同:在操作中,如果P1的第一个给定的内核(让我们称之为P11)变成频繁地访问给定的数据d,控制器就可以把P11状态移动到P2的一个内核。由此实现的目标是把合理的计算量放得非常靠近DRAM并且采用3D堆栈,例如利用“硅导孔”(TSV)技术,从而,与真正分布式的系统一起,导致更快、更小而且消耗更少功率的包。
为了说明,考虑以下例子建立。在这里,处理器内核是在各自的DIMM存储器缓冲上。一个应用关心例如数据库扫描,其中处理器必须检查很大一部分的存储器。操作的顺序可以例如如下:
-首先,存储器扫描开始并且计数器监视存储器访问;
-其次,“懒惰”迁移代码在DIMM之间开始(即,在指示中断在第一内核处的执行之前,控制器指示开始在第二处理器内核处加载状态数据);以及
-第三,控制器触发线程状态的迁移并且暂停在第一内核上的执行。
在有些实施方式中,该方法至少部分地解决了存储器带宽问题,及存储器容量问题。此外,所述方法有些实施方式的核心原理本质上是可缩放的。而且,由于所述方法的有些实施方式使得有更少的高速缓存级,因此它们本质上更简单。
最后,尽管在有些情况下可能需要修改OS和存储器控制器设计,但是在此提出的方法对至少一些应用是透明的。然而,修改OS本质上不是必需的。此外,修改存储器控制器是要包括附加的硬件,用于例如监视每个内核的访问和用于把执行从一个处理器迁移到另一个,并且当控制器体现为硬件电路时,这样做。但是,在所述方法的纯“软件”实现中,不需要修改。
在软件实现中,控制器执行的指示操作可以以包括至少两个可编程处理器的系统上可以执行的程序实现。每个计算机程序都可以以高级(例如,过程性或者面向对象的)编程语言实现,或者如果期望的话可以用汇编或者机器语言;而且在任何情况下,语言都可以是编译或解释语言。作为例子,合适的处理器包括通用和专用微处理器。在另一种变体实施方式中,控制器执行的指示操作可以存储在计算机程序产品上,该计算机程序产品有形地体现在机器可读存储设备中,用于让可编程处理器执行;而且,本发明的方法步骤可以由执行指令的可编程处理器执行,以便执行本发明的功能。在所有的情况下,本发明都包含结果产生的计算机系统。
更一般地说,以上方法的实施方式可以在数字电子电路中,或者在计算机硬件、固件、软件或者其组合中实现。
总的来说,处理器将从只读存储器和/或随机访问存储器接收指令和数据。适合有形地体现计算机程序指令与数据的存储设备包括所有形式的非易失性存储器,作为例子,包括半导体存储器设备,诸如EPROM、EEPROM和闪存存储器设备;磁盘,诸如内部硬盘和可拆卸磁盘;磁-光盘;及CD-ROM盘等。
本发明有利地适用于大型计算机,拥有多达数以千计的处理器、高速互连和专用硬件。
尽管本发明已经参考某些实施方式进行了描述,但是本领域技术人员将理解,在不背离本发明范围的情况下,可以进行各种变化而且可以替换等同物。此外,在不背离其范围的情况下,可以进行许多修改以使特定的情形或者材料适合本发明的教义。因此,本发明不限于所公开的特定实施方式,本发明将包括属于所附权利要求范围之内的所有实施方式。例如,在此所公开的中断/恢复原理可以在与线程级不同的另一个级别上实现。
Claims (25)
1.一种用于管理计算机化系统的处理资源的计算机实现的方法,所述计算机化系统至少具有第一处理器和第二处理器,每个所述处理器都操作性地互连到适于存储一组数据的存储器,所述计算机实现的方法包括:
在执行的同时监视被所述第一处理器作为输入数据或输出数据中的至少一个进行处理的一组数据;以及
如果基于所述监视,发现所述第二处理器比所述第一处理器离所监视的数据的距离更短,就指示中断在所述第一处理器处的执行并且在所述第二处理器处恢复执行。
2.如权利要求1所述的计算机实现的方法,其中在所述指示步骤,进一步指示中断在所述第一处理器处的执行,所述第一处理器处于给定处理器状态,并且从至少部分地由所述给定处理器状态确定的处理器状态开始,在所述第二处理器处恢复执行。
3.如权利要求2所述的计算机实现的方法,其中在所述指示步骤,进一步指示:
在所述第二处理器中加载捕捉部分或者全部所述给定处理器状态的状态数据,以及
根据所加载的状态数据在所述第二处理器处恢复执行。
4.如权利要求3所述的计算机实现的方法,其中在所述指示步骤,在指示中断在所述第一处理器处的执行之前,进一步指示开始在所述第二处理器中加载所述状态数据。
5.如权利要求4所述的计算机实现的方法,其中在所述指示步骤,进一步指示基于来自所述第一处理器的至少一个处理器寄存器的数据,开始加载所述状态数据。
6.如权利要求4所述的计算机实现的方法,其中所述状态数据捕捉所述给定处理器状态的一子部分,并且其中在所述指示步骤,指示:
开始在所述第二处理器中加载组装后的状态数据,由此所述第二处理器的至少一个处理器寄存器中的部分数据保持不变;以及
根据所加载的状态数据和保持不变的数据二者,在所述第二处理器处恢复执行。
7.如权利要求1所述的计算机实现的方法,其中所述指示恢复的步骤还包括:在线程在所述第一处理器处被挂起之后,指示在所述第二处理器处继续执行所述线程。
8.如权利要求1所述的计算机实现的方法,还包括:在指示中断在所述第一处理器处的执行之后,指示维持所述第一处理器的处理器状态直到指示将捕捉第三处理器状态的至少一部分的状态数据加载到所述第一处理器中为止的步骤。
9.如权利要求8所述的计算机实现的方法,还包括:在指示中断在所述第一处理器处的执行之后,在暂时性延迟之后指示关闭所述第一处理器的步骤。
10.如权利要求1所述的计算机实现的方法,还包括:指示将第一存储器高速缓存的数据写入由所述第二处理器使用的第二存储器高速缓存的步骤,所述第一存储器高速缓存存储所述存储器中的由所述第一处理器最频繁访问的数据拷贝。
11.如权利要求1所述的计算机实现的方法,所述方法在计算机化系统中实现,其中处理器经互连操作性地互连到所述存储器,其中监视数据还包括监视存储在所述互连上的处理后的数据的地址。
12.如权利要求1所述的计算机实现的方法,其中从所述一组数据的给定数据到所述第一处理器或所述第二处理器中的一个的距离是从存储在所述存储器上的给定数据到所述第一处理器或所述第二处理器中的一个的等待时间的函数。
13.一种驻留在计算机可读介质上的计算机程序,包括用于使计算机系统实现如权利要求1所述的计算机实现的方法的指令。
14.一种硬件电路,所述硬件电路被设计成使计算机系统实现如权利要求1所述的计算机实现的方法。
15.一种计算机系统,具有:
第一处理器;
第二处理器;
一个或多个控制器;以及
存储器,适于存储一组数据以使得所述一组数据中的给定数据到每个所述处理器的距离不相等,
其中,
所述控制器、所述处理器和所述存储器操作性地彼此互连,并且所述一个或多个控制器被配置成实现如权利要求1所述的计算机实现的方法。
16.一种用于管理计算机化系统的处理资源的计算机实现的方法,所述计算机化系统包括多个处理器,其中有第一处理器和第二处理器,每个所述处理器都操作性地互连到适于存储要由所述处理器处理的一组数据的存储器,所述方法包括:
在执行的同时监视被所述第一处理器作为输入数据或输出数据中的至少一个进行处理的所述组中的数据;以及
如果所述第二处理器比所述第一处理器离所监视的数据更近,就指示:
中断在所述第一处理器处的执行,所述第一处理器处于给定处理器状态;以及
从至少部分地由所述给定处理器状态确定的处理器状态开始,在所述第二处理器处恢复执行。
17.如权利要求16所述的计算机实现的方法,其中在所述指示步骤,进一步指示:在所述第二处理器中加载捕捉所述给定处理器状态的至少一部分的状态数据,以及根据所加载的状态数据在所述第二处理器处恢复执行。
18.如权利要求17所述的计算机实现的方法,其中在所述指示步骤,在中断在所述第一处理器处的执行之前,进一步指示开始在所述第二处理器中加载所述状态数据。
19.如权利要求16所述的计算机实现的方法,其中在所述指示步骤,在线程在所述第一处理器处被挂起之后,进一步指示在所述第二处理器处继续执行所述线程。
20.如权利要求16所述的计算机实现的方法,其中所述指示步骤还包括:指示把第一存储器高速缓存的至少一部分传输到由所述第二处理器使用的第二存储器高速缓存,其中所述第一存储器高速缓存存储由所述第一处理器最频繁访问的数据拷贝。
21.如权利要求20所述的计算机实现的方法,其中所述第一和第二存储器高速缓存分别是由所述第一处理器和所述第二处理器使用的最小高速缓存。
22.如权利要求20所述的计算机实现的方法,其中所述第一和第二存储器高速缓存分别是由所述第一处理器和所述第二处理器使用的唯一存储器高速缓存。
23.如权利要求20所述的计算机实现的方法,其中所述第一处理器和所述第二处理器都不使用存储器高速缓存。
24.如权利要求20所述的计算机实现的方法,所述方法在计算机化系统中实现,其中处理器经互连操作性地互连到所述存储器,其中监视被所述第一处理器处理的数据还包括:监视存储在所述互连上的处理后的数据的地址,由此能够确定从所述处理后的数据到所述第一处理器或所述第二处理器的距离。
25.如权利要求20所述的计算机实现的方法,其中所述距离基本上对应于对于处理器离所监视的数据在空间上有多远的测量。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/635,544 US8473723B2 (en) | 2009-12-10 | 2009-12-10 | Computer program product for managing processing resources |
US12/635,544 | 2009-12-10 | ||
PCT/IB2010/055626 WO2011070506A2 (en) | 2009-12-10 | 2010-12-07 | Computer-implemented method of processing resource management |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102652309A true CN102652309A (zh) | 2012-08-29 |
CN102652309B CN102652309B (zh) | 2015-11-25 |
Family
ID=43982369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080055635.1A Active CN102652309B (zh) | 2009-12-10 | 2010-12-07 | 处理资源管理的计算机实现的方法 |
Country Status (5)
Country | Link |
---|---|
US (2) | US8473723B2 (zh) |
CN (1) | CN102652309B (zh) |
DE (1) | DE112010004735B4 (zh) |
GB (1) | GB2488260B (zh) |
WO (1) | WO2011070506A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699512A (zh) * | 2012-09-27 | 2014-04-02 | 国际商业机器公司 | 多线程处理器中的内核间线程备用 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102955716B (zh) * | 2011-08-19 | 2016-05-18 | 苏州简约纳电子有限公司 | 一种多线程处理器和处理方法 |
US8756601B2 (en) | 2011-09-23 | 2014-06-17 | Qualcomm Incorporated | Memory coherency acceleration via virtual machine migration |
US9575806B2 (en) * | 2012-06-29 | 2017-02-21 | Intel Corporation | Monitoring accesses of a thread to multiple memory controllers and selecting a thread processor for the thread based on the monitoring |
US9804896B2 (en) * | 2012-07-31 | 2017-10-31 | Empire Technology Development Llc | Thread migration across cores of a multi-core processor |
US20150095614A1 (en) * | 2013-09-27 | 2015-04-02 | Bret L. Toll | Apparatus and method for efficient migration of architectural state between processor cores |
RU2633985C2 (ru) * | 2014-09-30 | 2017-10-20 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система обработки данных |
CN105607891A (zh) * | 2014-11-14 | 2016-05-25 | 中国航空工业第六一八研究所 | 一种基于虚拟中断的处理器资源使用解藕方法 |
US9582329B2 (en) * | 2015-02-17 | 2017-02-28 | Qualcomm Incorporated | Process scheduling to improve victim cache mode |
RU2632416C2 (ru) * | 2015-05-14 | 2017-10-04 | Общество С Ограниченной Ответственностью "Яндекс" | Способ (варианты) передачи объекта от первого процесса на второй процесс, машиночитаемый носитель (варианты) и система обработки данных |
US10261690B1 (en) * | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
EP3282357B1 (en) * | 2016-08-09 | 2023-10-11 | Huawei Technologies Co., Ltd. | Apparatus and method for running plurality of threads |
US10963310B2 (en) * | 2018-07-19 | 2021-03-30 | International Business Machines Corporation | Intelligent contentionless processing resource reduction in a multiprocessing system |
US10915493B2 (en) | 2018-09-25 | 2021-02-09 | International Business Machines Corporation | Component building blocks and optimized compositions thereof in disaggregated datacenters |
US11182322B2 (en) * | 2018-09-25 | 2021-11-23 | International Business Machines Corporation | Efficient component communication through resource rewiring in disaggregated datacenters |
US10831698B2 (en) * | 2018-09-25 | 2020-11-10 | International Business Machines Corporation | Maximizing high link bandwidth utilization through efficient component communication in disaggregated datacenters |
US10802988B2 (en) | 2018-09-25 | 2020-10-13 | International Business Machines Corporation | Dynamic memory-based communication in disaggregated datacenters |
US10637733B2 (en) | 2018-09-25 | 2020-04-28 | International Business Machines Corporation | Dynamic grouping and repurposing of general purpose links in disaggregated datacenters |
US11163713B2 (en) | 2018-09-25 | 2021-11-02 | International Business Machines Corporation | Efficient component communication through protocol switching in disaggregated datacenters |
US10671557B2 (en) | 2018-09-25 | 2020-06-02 | International Business Machines Corporation | Dynamic component communication using general purpose links between respectively pooled together of like typed devices in disaggregated datacenters |
US11650849B2 (en) | 2018-09-25 | 2023-05-16 | International Business Machines Corporation | Efficient component communication through accelerator switching in disaggregated datacenters |
US11012423B2 (en) | 2018-09-25 | 2021-05-18 | International Business Machines Corporation | Maximizing resource utilization through efficient component communication in disaggregated datacenters |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0848330A2 (en) * | 1996-12-11 | 1998-06-17 | Ncr International Inc. | Memory page location control for multiple memory-multiple processor system |
US7093147B2 (en) * | 2003-04-25 | 2006-08-15 | Hewlett-Packard Development Company, L.P. | Dynamically selecting processor cores for overall power efficiency |
US20070156963A1 (en) * | 2005-12-30 | 2007-07-05 | Yen-Kuang Chen | Method and system for proximity caching in a multiple-core system |
US20080133416A1 (en) * | 1999-05-19 | 2008-06-05 | Rhoads Geoffrey B | Content Protection Arrangements |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6105053A (en) * | 1995-06-23 | 2000-08-15 | Emc Corporation | Operating system for a non-uniform memory access multiprocessor system |
US7493478B2 (en) * | 2002-12-05 | 2009-02-17 | International Business Machines Corporation | Enhanced processor virtualization mechanism via saving and restoring soft processor/system states |
US7533316B2 (en) * | 2006-03-31 | 2009-05-12 | Intel Corporation | Method and apparatus for disabling and swapping cores in a multi-core microprocessor |
US20070294693A1 (en) * | 2006-06-16 | 2007-12-20 | Microsoft Corporation | Scheduling thread execution among a plurality of processors based on evaluation of memory access data |
US20080005504A1 (en) * | 2006-06-30 | 2008-01-03 | Jesse Barnes | Global overflow method for virtualized transactional memory |
US7571285B2 (en) * | 2006-07-21 | 2009-08-04 | Intel Corporation | Data classification in shared cache of multiple-core processor |
US20080127182A1 (en) * | 2006-11-29 | 2008-05-29 | Newport William T | Managing Memory Pages During Virtual Machine Migration |
US8612973B2 (en) * | 2007-09-26 | 2013-12-17 | Hewlett-Packard Development Company, L.P. | Method and system for handling interrupts within computer system during hardware resource migration |
US7783811B2 (en) * | 2007-12-17 | 2010-08-24 | Microsoft Corporation | Efficient interrupt message definition |
KR101366075B1 (ko) * | 2007-12-20 | 2014-02-21 | 삼성전자주식회사 | 멀티코어 플랫폼에서의 태스크 이동 방법 및 장치 |
US7930574B2 (en) * | 2007-12-31 | 2011-04-19 | Intel Corporation | Thread migration to improve power efficiency in a parallel processing environment |
US8065485B2 (en) * | 2009-05-22 | 2011-11-22 | Oracle America, Inc. | Method and apparatus for determining cache storage locations based on latency requirements |
-
2009
- 2009-12-10 US US12/635,544 patent/US8473723B2/en active Active
-
2010
- 2010-12-07 DE DE112010004735.9T patent/DE112010004735B4/de active Active
- 2010-12-07 WO PCT/IB2010/055626 patent/WO2011070506A2/en active Application Filing
- 2010-12-07 GB GB1207124.7A patent/GB2488260B/en active Active
- 2010-12-07 CN CN201080055635.1A patent/CN102652309B/zh active Active
-
2012
- 2012-08-30 US US13/599,102 patent/US8549268B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0848330A2 (en) * | 1996-12-11 | 1998-06-17 | Ncr International Inc. | Memory page location control for multiple memory-multiple processor system |
US20080133416A1 (en) * | 1999-05-19 | 2008-06-05 | Rhoads Geoffrey B | Content Protection Arrangements |
US7093147B2 (en) * | 2003-04-25 | 2006-08-15 | Hewlett-Packard Development Company, L.P. | Dynamically selecting processor cores for overall power efficiency |
US20070156963A1 (en) * | 2005-12-30 | 2007-07-05 | Yen-Kuang Chen | Method and system for proximity caching in a multiple-core system |
Non-Patent Citations (2)
Title |
---|
PIERRE MICHAUD: "Exploiting the Cache Capacity of a Single-Chip Multi-Core Processor with Execution Migration", 《IEEE PROCEEDINGS 10TH INTERNATIONAL SYMPOSIUM ON HIGH PERFORMANCE COMPUTER ARCHITECTURE》 * |
THEOFANIS CONSTANTINOU* ET AL: "Performance Implications of Single Thread Migration on a Chip Multi-Core", 《SIGARCH COMPUTER ARCHITECTURE NEWS》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699512A (zh) * | 2012-09-27 | 2014-04-02 | 国际商业机器公司 | 多线程处理器中的内核间线程备用 |
CN103699512B (zh) * | 2012-09-27 | 2016-09-07 | 国际商业机器公司 | 多线程处理器中的内核间线程备用 |
Also Published As
Publication number | Publication date |
---|---|
WO2011070506A2 (en) | 2011-06-16 |
US8473723B2 (en) | 2013-06-25 |
DE112010004735T5 (de) | 2013-04-18 |
CN102652309B (zh) | 2015-11-25 |
US20110145545A1 (en) | 2011-06-16 |
WO2011070506A3 (en) | 2011-08-11 |
DE112010004735B4 (de) | 2017-01-26 |
GB201207124D0 (en) | 2012-06-06 |
US8549268B2 (en) | 2013-10-01 |
US20120324166A1 (en) | 2012-12-20 |
GB2488260A (en) | 2012-08-22 |
GB2488260B (en) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102652309A (zh) | 处理资源管理的计算机实现的方法 | |
Haring et al. | The ibm blue gene/q compute chip | |
CN101872314B (zh) | 用于多处理器的动态调度中断控制器 | |
JP4448784B2 (ja) | 並列計算機の同期方法及びプログラム | |
US7545381B2 (en) | Interruptible GPU and method for context saving and restoring | |
CN100478872C (zh) | 最小化未调度d缓存缺失流水线停顿的方法和装置 | |
CN101317160B (zh) | 软件辅助的嵌套硬件事务 | |
EP3531292B1 (en) | Methods and apparatus for supporting persistent memory | |
CN104412233B (zh) | 流水线调度中混叠寄存器的分配 | |
TWI537831B (zh) | 多核心處理器、用於執行處理程序切換之方法、用於保全一記憶體區塊之方法、用於致能使用一多核心裝置之異動處理之設備、以及用於執行記憶體異動處理之方法 | |
JP6800850B2 (ja) | 中央処理装置(cpu)と補助プロセッサとの間の改善した関数コールバック機構 | |
CN104221005B (zh) | 用于从多线程发送请求至加速器的机制 | |
CN105765541B (zh) | 用于机动车的控制器 | |
TWI514156B (zh) | 推測式快取修改技術 | |
US20070103475A1 (en) | Interruptible GPU and method for processing multiple contexts and runlists | |
US8190825B2 (en) | Arithmetic processing apparatus and method of controlling the same | |
CN101203831A (zh) | 用于增强线程级推测的原语 | |
TW201220183A (en) | Apparatus, method, and system for providing a decision mechanism for conditional commits in an atomic region | |
CN103299272A (zh) | 使用存储的原子程序的可编程原子内存 | |
CN102334103A (zh) | 具有对于多个虚拟服务器间的共享资源分配的软件控制的微处理器 | |
CN1547701A (zh) | 通过响应高速缓存缺失而切换任务来提高基于高速缓存的嵌入式处理器的处理能力的方法和装置 | |
CN107003896A (zh) | 具有共享事务处理资源的装置和数据处理方法 | |
CN107003897B (zh) | 监控事务处理资源的利用率 | |
JP5391422B2 (ja) | メモリ管理方法、計算機システム及びプログラム | |
EP2282265A1 (en) | A hardware task scheduler |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |