CN100485583C - 并行处理系统中的电源管理系统及电源管理程序 - Google Patents
并行处理系统中的电源管理系统及电源管理程序 Download PDFInfo
- Publication number
- CN100485583C CN100485583C CNB2004100476211A CN200410047621A CN100485583C CN 100485583 C CN100485583 C CN 100485583C CN B2004100476211 A CNB2004100476211 A CN B2004100476211A CN 200410047621 A CN200410047621 A CN 200410047621A CN 100485583 C CN100485583 C CN 100485583C
- Authority
- CN
- China
- Prior art keywords
- processor
- request
- power management
- parallel processing
- stop
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B07—SEPARATING SOLIDS FROM SOLIDS; SORTING
- B07B—SEPARATING SOLIDS FROM SOLIDS BY SIEVING, SCREENING, SIFTING OR BY USING GAS CURRENTS; SEPARATING BY OTHER DRY METHODS APPLICABLE TO BULK MATERIAL, e.g. LOOSE ARTICLES FIT TO BE HANDLED LIKE BULK MATERIAL
- B07B4/00—Separating solids from solids by subjecting their mixture to gas currents
- B07B4/02—Separating solids from solids by subjecting their mixture to gas currents while the mixtures fall
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B07—SEPARATING SOLIDS FROM SOLIDS; SORTING
- B07B—SEPARATING SOLIDS FROM SOLIDS BY SIEVING, SCREENING, SIFTING OR BY USING GAS CURRENTS; SEPARATING BY OTHER DRY METHODS APPLICABLE TO BULK MATERIAL, e.g. LOOSE ARTICLES FIT TO BE HANDLED LIKE BULK MATERIAL
- B07B1/00—Sieving, screening, sifting, or sorting solid materials using networks, gratings, grids, or the like
- B07B1/28—Moving screens not otherwise provided for, e.g. swinging, reciprocating, rocking, tilting or wobbling screens
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B07—SEPARATING SOLIDS FROM SOLIDS; SORTING
- B07B—SEPARATING SOLIDS FROM SOLIDS BY SIEVING, SCREENING, SIFTING OR BY USING GAS CURRENTS; SEPARATING BY OTHER DRY METHODS APPLICABLE TO BULK MATERIAL, e.g. LOOSE ARTICLES FIT TO BE HANDLED LIKE BULK MATERIAL
- B07B1/00—Sieving, screening, sifting, or sorting solid materials using networks, gratings, grids, or the like
- B07B1/42—Drive mechanisms, regulating or controlling devices, or balancing devices, specially adapted for screens
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3246—Power saving characterised by the action undertaken by software initiated power-off
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Multi Processors (AREA)
- Power Sources (AREA)
Abstract
在利用单处理器的OS的并行处理系统中,其中,在多处理器上操作单处理器的OS和现有应用程序,以便由所述多处理器针对所述应用程序来实现并行处理,在第一处理器侧的处理器接收来自任意处理器上的工作单元的、用于激活或停止处理器的请求,并控制单处理器的OS的电源管理设备,以进行所请求的处理器的激活或停止;同时,请求被激活或停止的所述处理器根据来自所述第一处理器侧的通知,执行所述激活或停止所需的处理。
Description
技术领域
本发明涉及一种利用多处理器的并行处理系统中的电源管理系统,更具体地,涉及在利用单处理器的OS的并行处理系统中的电源管理系统,能够在多处理器上运行针对单处理器的OS和现有应用程序,以使应用程序能够实现利用多处理器的并行处理。
背景技术
在诸如包括移动电话和移动PC之类的移动终端的数据处理设备中,用于单处理器的操作系统(此后,称之为单处理器的OS)和用于单处理器的应用程序(此后,简称为应用程序)主要在单处理器上执行。
在这些情况下,当使用上述应用程序而不在多处理器的基础上进行修改时,应用程序应该在替代了作为上述用于单处理器的OS的用于多处理器的OS上执行。
在控制在如上所述的多处理器系统上的多处理器的OS和应用程序的执行的这样的系统中,例如,在日本专利待审公开(Kokai)No.Heisei 3-257652和日本专利待审公开(Kokai)No.Heisei 3-113563中公开的传统技术。
日本专利待审公开(Kokai)No.Heisei 3-257652(参考文献1)公开了一种控制由多个处理器单元构成的多处理器系统中的各个处理器元素之间的中断的方法。
日本专利待审公开(Kokai)No.Heisei 3-113563(参考文献2)公开了一种在多处理器系统中调度分配给多个处理器的进程的方法。
另一方面,日本专利待审公开(Kokai)No.2003-058515(参考文献3)公开了一种在多个处理器单元中执行单独的进程的方法。
然而,当如同在传统技术中那样在多处理器的OS上运行现有的应用程序时,即使当应用程序只使用多个处理器中的一个处理器时,多处理器的OS也提供针对多处理器的服务,或者即使当没有运行其他应用程序时,也继续进行除其他处理器之外的处理,从而这些额外的处理造成了开销,或者可能会发生另一问题,即修改上述应用程序以便在多处理器中使用需要大量劳动和成本的问题。
特别地,当由如包括移动电话和移动PC等移动终端的小型数据处理系统中的多处理器来实现并行处理系统时,在多处理器的OS的处理和应用程序的修改中的开销会成为障碍。
在这种情况下,当应用程序不进行修改就在现有的单处理器的OS上使用时,需要实现能够在多处理器上运行现有的应用程序的并行处理系统。
此外,当由如包括移动电话和移动PC等移动终端的小型数据处理系统中的多处理器来实现并行处理系统时,电源管理是必不可少的,以便尽可能地减少能量消耗。
在利用多处理器的OS的传统并行处理系统中的电源管理中,由于利用设置在每一个处理器中的功能对称的电源管理单元来进行电源管理,需要在所有处理器中掌握和管理每个处理器的电源状态。因此,当改变电源状态,例如启动或停止特定处理器时,应该在处理器之间进行互斥控制,以便保持在作为整体的系统中的一致性,从而使控制变得复杂。
在诸如在多处理器的每个处理器上运行单处理器的OS的这样的系统中,采用利用多处理器的OS的并行处理系统的复杂电源管理需要对单处理器的OS自身进行巨大的修改,涉及到劳动和成本,同时由于作为瓶颈的极其复杂的控制,使利用多处理器的并行处理的执行毫无意义。
例如,在进行利用多处理器的电源管理的传统领域中,存在一种在美国专利No.5142684(参考文献4)中公开的技术。在参考文献4中所叙述的电源管理中,利用其处理速度受到不同地设置的两种处理器,根据要执行的处理来选择处理器,并且控制和提供所选处理器所需的电能。在参考文献4中所叙述的技术是进行针对具有不同能力的两种处理器的电源控制,这需要专用的硬件,并且考虑不存在诸如在多处理器的每个处理器上操作单处理器的OS的这种系统。
发明内容
本发明的目的是提出一种电源管理系统和电源管理程序,能够利用简单的控制,在利用单处理器的OS的并行处理系统上实现处理器的电源管理,所述并行处理系统在多处理器上运行单处理器的OS和现有应用程序,以使现有应用程序能够实现利用多处理器的并行处理。
根据本发明的第一方面,提出了一种并行处理系统,用于在多个处理器上操作单处理器操作系统和单处理器应用程序,并针对所述应用程序,实现所述多个处理器的并行处理,其中所述多个处理器至少包括被逻辑划分的第一和第二处理器组,所述第一处理器组中的至少一个处理器包括并行处理单元,所述并行处理单元包括;第一装置,用于向所述第二处理器组中的至少一个处理器发送针对与所述第一处理器组中的至少一个处理器有关的工作单元的请求,以及所述第二处理器组中的所述处理器包括:第二装置,用于根据所述请求、作为新工作单元来控制所述工作单元,其中所述第一处理器组中的所述处理器包括电源管理单元,所述电源管理单元包括:第三装置,用于接收用于激活或停止所述第二处理器组中的某一处理器的请求;以及第四装置,用于根据所述请求,执行用于激活或停止所请求的处理器的处理。
根据本发明的另一方面,提出了一种并行处理方法,用于在执行多个处理器的并行处理的系统上操作单处理器操作系统和单处理器应用程序,并针对所述应用程序,实现所述多处理器的并行处理,其中所述多个处理器至少包括被逻辑划分的第一和第二处理器组,其中所述第一处理器组中的处理器提取所述应用程序内能够在所述第一处理器组的处理器上并行化的工作单元,控制所述工作单元,作为所述第二处理器组的处理器上的新工作单元,接收用于激活或停止所述第二处理器组中的某一处理器的请求,以及根据所述请求,执行用于激活或停止所请求的处理器的处理。
根据本发明的另一方面,提出了一种并行处理系统,用于在多个处理器上操作单处理器操作系统和单处理器应用程序,并针对所述应用程序,实现所述多个处理器的并行处理,其中所述多个处理器中的一个处理器包括并行处理单元,所述并行处理单元包括:第一装置,用于向所述多个处理器中的另一处理器发送针对与所述一个处理器有关的工作单元的请求,以及所述另一处理器包括:第二装置,用于根据所述请求、作为新工作单元来控制所述工作单元,其中所述一个处理器包括电源管理单元,所述电源管理单元包括:第三装置,用于接收用于激活或停止所述另一处理器的请求;以及第四装置,用于根据所述请求,执行用于激活或停止所请求的处理器的处理。
从以下给出的详细描述中,本发明的其他目的、特征和优点将变得更加明显。
附图说明
从以下所给出的详细描述中和从本发明的优选实施例的附图中,本发明将得到更完整的理解,然而,这些优选实施例不应该看作对本发明的限定,而只用于解释和理解的目的。
在附图中:
图1是示出了根据本发明第一实例的并行处理系统的结构的方框图;
图2是用于解释在第一实例的并行处理系统中由并行处理单元进行的激活并行处理的操作的图。
图3是示出了在由并行处理系统的并行处理单元的并行处理激活中,进行请求的消息结构的图;
图4是用于解释在第一实例的并行处理系统中,响应来自第二处理器侧的任务中的文件访问请求,OS服务单元要进行的操作的图;
图5是用于解释响应来自第一处理器侧的顺序任务中的文件访问请求所执行的操作的图;
图6是示出了在根据第一实例的并行处理系统中的控制处理中继单元的内部结构的方框图;
图7是用于解释在根据第一实例的并行处理系统中的控制处理中继单元的处理操作的图;
图8是用于解释在根据第一实例的并行处理系统中由代理单元所进行的信号通知处理操作的图;
图9是示出了在根据第一实例的并行处理系统中,用于实现在第二处理器侧的任务之间的协同操作的结构的方框图;
图10是用于解释在根据第一实例的并行处理系统中,在第二处理器侧的任务之间的协同操作的图;
图11是用于解释作为应用于并行处理系统的实例,运行在多处理器的移动终端上的应用程序的情况的图;
图12是示出了根据应用了本发明的第二实例的并行处理系统的结构的方框图;
图13是用于解释在根据第二实例的并行处理系统中,同步激活对进程的并行处理的操作的图;
图14是用于解释在根据第二实例的并行处理系统中,异步激活对进程的并行处理的操作的图;
图15是示出了在根据第二实例的并行处理系统中,控制处理中继单元的内部结构的方框图;
图16是用于解释在根据第二实例的并行处理系统中,控制处理中继单元的处理操作的图。
图17是示出了根据应用了本发明的第三实例的并行处理系统的结构的方框图;
图18是用于解释在根据第三实例的并行处理系统中,当处理器中的进程通过进程间通信单元,利用信号量(semaphore)系统进行信号量增加(semaphore-up)或信号量减少(semaphore-down)时要执行的操作的图;
图19是用于解释在根据第三实例的并行处理系统中,当处理器中的进程通过进程间通信单元利用信号量系统进行信号量减少时所执行的操作的图;
图20是用于解释在根据第三实例的并行处理系统中,当通过进程间通信单元,利用信号量系统在相同处理器中的进程间进行信号量增加时要执行的操作的图;
图21是用于解释在根据第三实例的并行处理系统中,当通过进程间通信单元利用信号量系统在不同处理器中的进程间进行信号量增加时要执行的操作的图;
图22是用于解释在根据第三实例的并行处理系统中,当处理器中的进程通过进程间通信单元,利用消息队列系统接收消息时所要执行的操作的图;
图23是用于解释在根据第三实例的并行处理系统中,当处理器中的进程通过进程间通信单元,利用消息队列系统接收消息时所要执行的操作的图;
图24是用于解释在根据第三实例的并行处理系统中,当处理器中的进程通过进程间通信单元,利用消息队列系统传送消息时所要执行的操作的图;
图25是用于解释在根据第三实例的并行处理系统中,当通过进程间通信单元利用消息队列系统在相同处理器中的进程间进行消息传送和接收时所要执行的操作的图;
图26是用于解释在根据第三实例的并行处理系统中,当通过进程间通信单元利用消息队列系统在不同处理器中的进程间进行消息传送和接收时所执行的操作的图;
图27是用于解释在根据第三实例的并行处理系统中,利用信号量系统和消息队列系统的进程间通信的特定实例的图;
图28是用于解释在图27所示的特定实例中,在浏览器屏幕上的显示内容的图;以及
图29是示出了根据本发明的第四实例的并行处理系统的结构的方框图。
图30是示出了根据本发明第一实施例的并行处理系统中的电源管理系统的结构的方框图;
图31是用于解释在本发明的第一实施例中引导处理器的操作的图;
图32是用于解释在本发明的第一实施例中暂停处理器的操作的图;
图33是用于解释在本发明的第一实施例中暂停所有处理器的操作的图;
图34是示出了在将根据第一实施例的电源管理系统应用于由三个处理器形成的并行处理系统的情况下,电源控制的状态转移图;
图35是示出了根据本发明的第二实施例的并行处理系统中的电源管理系统的结构的方框图;
图36是用于解释在本发明的第二实施例中激活处理器的操作的图;
图37是用于解释在本发明的第二实施例中停止处理器的操作的图;以及
图38是用于解释在本发明的第二实施例中,当停止时处理器自身的操作的图。
具体实施方式
下面将参考附图详细描述本发明的优选实施例。在以下描述中,阐明了大量特定细节,以便提供对本发明的完全理解。然而,对于本领域的技术人员显而易见,可以脱离这些具体细节来实施本发明。在其他实例中,为了不必要地使本发明不清楚,未详细示出公知结构。
首先,将对其中应用根据本发明的电源管理系统的并行处理系统进行描述。在下文中,通过添加用于询问针对多个处理器的处理的机制和在向多个处理器提供OS服务中保护关键部分的机制,在多处理器上执行并行处理,而不对单处理器的传统OS添加任何修改。
图1是示出了作为第一实例的并行处理系统的结构的方框图。
如图1所示,第一实例的并行处理系统包括由通过系统总线91连接的多个处理器(CPU)P0到Pn(n是不小于1的整数)构成的多处理器,所述多个处理器逻辑上划分为第一处理器侧10和第二处理器侧20两组,其中,安装有单处理器的OS 30,其在第一处理器侧10的处理器P0上运行,用于进行并行处理的并行处理单元40P0到40Pn和用于处理OS服务的OS服务单元50P0到50Pn分别安装在第一处理器侧10的处理器P0上和在第二处理器侧20的处理器P1到Pn上。与系统总线91相连的是主存储设备92,作为由各个处理器P0到Pn和诸如盘设备的外部存储设备93共享的共享存储器。
可以对上述多处理器进行构造,以使其不仅包括相同种类的多个处理器,还包括诸如DSP和安全引擎之类不同种类的多个处理设备。
在第一处理器侧10和第二处理器侧20之间,唯一地设置了控制处理中继单元60,用于传送和接收控制信号和数据,并且在第一处理器侧10上设置了代理单元70,通过该代理单元70,单处理器的OS 30与在第二处理器侧20上执行的任务进行通信。
在上述第一处理器侧10上的处理器不必须作为单个处理器存在而可以作为多个处理器存在。例如,可以在第一处理器侧10上设置两个处理器,并且每一个处理器安装有不同的单处理器的OS。
将现有的OS用作由第一处理器侧10上的处理器激活的单处理器的OS 30。例如,使用实时OS和UNIX(R)OS而无需修改。
在本说明书中的任务表示用于对进程进行并行处理的工作单元、以及在UNIX(R)OS上的线程、在实时OS等上的任务。
在根据本实例的并行处理系统中,应用程序在第一处理器侧10上的单处理器的OS上运行,并且在应用程序的工作单元中,不能够并行化的任务(顺序任务)由第一处理器侧10上的处理器P0处理,而将能够在应用程序内并行化的任务创建为第二处理器侧20上的新任务,并且被并行处理。
并行处理单元40P0和并行处理单元40P1到40Pn具有执行任务的创建、激活、停止、终止(termination)和删除和其他与任务有关的控制的功能。这里,第一处理器侧10的并行处理单元40P0针对在第二处理器侧20上的各个处理器P1到Pn的并行处理单元40P1到40Pn,通过控制处理中继单元60进行诸如任务的创建、激活、停止、终止和删除等处理。对于信号通知,从并行处理单元40P0和并行处理单元40P1到40Pn中对其进行双向处理。
OS服务单元50P0和OS服务单元50P1到50Pn具有作为对外部设备进行各种访问的接口及其控制、和作为对任务之间共享的资源进行各种访问的接口及其控制的功能。
控制处理中继单元60是用于传送和接收第一处理器侧10和第二处理器侧20之间的控制信号和数据的单元,并且用于由多个处理器相互并行地处理的多个任务之间的控制中。
代理单元70与在第二处理器侧20上执行的任务关联(部分任务或全部任务),并安装了代理单元70,用于第二处理器侧20上的任务和单处理器的OS 30之间的信号通知(通知用于控制任务的各种控制信号)。
下面,将参考附图对第一实例的这样构造的并行处理系统的操作进行详细的描述。
这里假定应用程序在第一处理器侧10上的单处理器的OS上运行,并且在应用程序的工作单元中,将要由第一处理器侧10上的处理器P0处理的单元定义为顺序任务ST,并且将作为在应用程序内可以并行化并由第二处理器侧20作为任务PT-1到PT-n并行处理的单元定义为并行化任务PT。
首先,将参考图2和3,描述由并行处理单元40P0和40P1到40Pn激活并行处理的操作。
(1)在激活第一处理器侧10上的并行化任务PT作为第二处理器侧20上的任务PT-1到PT-n中的任一个的情况下,命令并行处理单元P40创建任务PT-1到PT-n中的任一个,作为要在第二处理器侧20上的激活的工作单元。
来自并行处理单元40P0和并行处理单元40P1到40Pn的命令包括:诸如,创建(任务创建)、删除(任务删除)、激活(任务激活)、终止(任务终止)、信号(信号命令)等。在这些命令中,创建(任务创建)、删除(任务删除)、激活(任务激活)和终止(任务终止)是从第一处理器侧10发送到第二处理器侧20的命令,而信号(信号命令)同时从第一处理器侧10和第二处理器侧20双向地发送。
这些命令由图3所示的消息来实现。更具体地,通过向并行处理单元40P0传送由表示请求内容(在这种情况下的任务创建)的请求内容201、用于指定将处理该任务的第二处理器侧20上的处理器P1~Pn的处理器号202、表示要新创建的任务PT-1~PT-n的任务号、以及表示请求任务创建的并行化任务PT的原始任务号构成的消息,请求任务创建。对于任务创建之外的其他任务,将根据图3所示的消息来发送所述命令。
(2)并行处理单元40P0作为响应,激活与要创建的PT-1~PT-n相对应的代理单元70。激活所述代理单元70,以便防止任务的管理内容在第一处理器侧10和第二处理器侧20之间共享,并且完成在第一处理器侧10上的专门处理。此时,将任务PT-1~PT-n的任务号保存在代理单元70中。
(3)并行处理单元40P0还设置诸如上述任务号和请求内容的任务创建(在第二处理器侧20的处理器P1到Pn的任务创建)时所需的数据以及用于在控制处理中继单元60指定“并行处理”的通信理由信息(communication reason information)。
该处理造成了针对控制处理中继单元60,进行稍后将要描述的要传送到主存储设备92(共享存储器)上的内容的设置、以及处理器间中断的处理。
这里,通信理由信息表示传送到控制处理中继单元60的数据的接受者(接受方),并且在上述情况下,在控制处理中继单元60中设置的数据将由指定处理器P1~Pn的并行处理单元40P1~40Pn获得。
(4)在第二处理器侧20的指定处理器P1~Pn上的并行处理单元40P1~40Pn获得具有来自控制处理中继单元60的、作为通信理由信息的“并行处理”的请求内容(任务控制所需的数据)。
(5)然后,并行处理单元40P1~40Pn根据所获得的请求内容,在处理器P1~Pn上创建和激活任务PT-1~PT-n。
前述的处理使作为在第一处理器侧10的单处理器的OS上运行的应用程序的工作单元的并行化任务PT的工作单元能够在第二处理器侧20上作为任务PT-1~PT-n被并行处理。
虽然已经针对并行处理单元40P1到40Pn根据所获得的请求内容在处理器P1到Pn上创建和激活任务PT-1到PT-n的情况,描述了前述的操作,但是,可以提前创建第一处理器侧10上的并行化任务PT作为第二处理器侧20上的任务PT-1到PT-n中的任一个,并且并行化处理单元40P1到40Pn可以根据所获得的请求内容,激活处理器P1到Pn上的任务PT1到PTn。
接下来,将描述由OS服务单元50P0和50P1到50Pn所进行的OS服务处理操作。
OS服务单元50P0和50P1到50Pn具有根据来自在第二处理器侧20的处理器P1到Pn上创建的任务PT-1到PT-n的命令,提供与对外部设备的各种访问及其控制、和对由其他任务共享的资源的各种访问及其控制相关的服务,所述服务是由单处理器的OS30所提供的服务。由单处理器的OS30提供的主要服务等价于由普通OS提供的系统调用和API。
将参考图4,描述响应来自第二处理器侧20的处理器P1到Pn上的任务PT-1到PT-n的文件访问(例如,针对外部存储设备93上的文件的各种处理)命令,OS服务单元50P0和50P1到50Pn的操作。
这里,文件访问包括诸如以下的处理:打开(打开文件)、关闭(关闭文件)、读取(读取文件)、写入(写入文件)、查找(移动文件写入位置)、删除(删除文件)和更名(改变文件的名字)。
(1)当在第二处理器20上的任务PT-1到PT-n中产生了对文件访问处理的需要时,任务PT1到PTn请求第二处理器侧20上的OS服务单元50P1到50Pn提供文件访问的服务。例如,由该文件访问服务命令所调用的是定义为由OS服务单元50P1到50Pn对文件进行写入处理的写入功能、以及定义为文件读取处理的读取功能。
这里,OS服务单元50P1到50Pn设置在第一处理器侧10上的处理(由单处理器的OS30所进行的文件访问处理)所需的数据。这里,所需数据包括诸如以下的信息:请求内容(例如,写入请求)、要访问的文件的描述符(文件描述符)、指向字符串的指针、字符串的长度和任务号。
(2)利用设置为“OS服务”的通信理由信息,通过在控制处理中继单元60处设置包含请求内容的所需数据,OS服务单元50P1~50Pn向第一处理器侧10发布文件访问命令。
之后,已经发布了文件访问的服务命令的任务PT-1~PT-n进入等待状态,并且在相应的处理器P1~Pn中,由并行处理单元40P1~40Pn将处理切换到其他任务(任务切换)。
(3)在第一处理器侧10上的OS服务单元50P0从控制处理中继单元60中获得具有作为通信理由信息的“OS服务”的上述文件访问命令。
(4)在第一处理器侧10上的OS服务单元50P0根据所获得的请求内容,从单处理器的OS30中请求文件访问。
(5)结果,单处理器的OS30根据命令对外部存储设备93进行文件访问(写入、读取等)。利用单处理器的OS30最初具有的文件访问服务来执行该文件访问处理而无需修改。
(6)在完成所请求的文件访问处理之后,单处理器的OS30将针对文件访问命令的返回值发送回OS服务单元50P0,以便返回处理。
(7)此外,OS服务单元50P0在具有作为通信理由信息的“OS服务”的控制中继单元60处,设置通信内容,即,包括已经请求文件访问的任务PT-1~PT-n的返回值和任务号的数据,从而通知第二处理器侧20上的处理器P1~Pn该文件访问的完成。
(8)由此,相应处理器P1~Pn的OS服务单元50P1~50Pn从控制处理中继单元60接收所设置的返回值和完成通知。
(9)然后,第二处理器侧20上的OS服务单元50P1~50Pn要求并行处理单元40P1~40Pn激活已经给出文件访问命令的任务PT-1~PT-n。
结果,处理切换到处于等待状态的任务PT-1~PT-n。
(10)由并行处理单元40P1~40Pn激活的任务PT-1~PT-n从OS服务单元50P1~50Pn中接收文件访问的返回值,以继续处理。
前述的处理使在第二处理器侧20上的任务PT-1~PT-n能够进行文件访问,而无需在第二处理器侧20上提供单独的文件访问的处理单元,同时,利用了单处理器的OS30的服务,而无需进行修改。此外,利用该布置,在第一处理器侧10上完成针对文件访问的专有处理,从而可以实现并行处理,而没有如同在运行多处理器的OS上的应用程序那样由这样的专有处理所引起的开销。
在第二处理器侧20的处理器P1~Pn上的任务PT-1~PT-n对外部存储设备93的只读数据进行文件访问的情况下,可以从每一个处理器P1~Pn对外部存储设备93进行直接访问,而无需如前面所描述的由OS服务单元50P1~50Pn进行这样的处理。
这里,对于来自第一处理器侧的处理器P0上的顺序任务ST的文件访问命令,由单处理器的OS30直接进行处理,而无需使用OS服务单元。下面,将参考图5来描述该处理。
(1)在处理器P0上的顺序任务ST请求单处理器的OS30进行文件访问。
(2)结果,单处理器的OS30根据命令,对外部存储设备93等进行文件访问(写入、读取等)。利用单处理器的OS30最初所具有的没有修改的文件访问服务来执行文件访问处理。
(3)当完成文件访问处理时,单处理器的OS30将针对文件访问命令的返回值发送回顺序任务ST,以返回处理。
由于响应来自顺序任务ST的OS服务命令,不需要专有控制等,将不会产生任何额外的开销。
将参考图6和7来描述控制处理中继单元60所进行的处理操作。
首先,图6中示出了控制处理中继单元60的结构。如图所示,控制处理中继单元60包括与各个处理器P0到Pn相对应的中断控制设备61P0到61Pn、以及与各个处理器P0到Pn相对应的通信区域62P0到62Pn。这里,在主存储设备92中确保了通信区域62P0到62Pn。
中断设备61P0到61Pn的每一个还包括:中断指示单元61a,用于指示其他处理器中断;中断状态保存单元61b,用于保存响应中断指示而进行的中断的信息;以及中断取消单元61c,用于清除中断。
通信区域62P0到62Pn的每一个包括:通信理由保存区域62a,用于保存来自作为通信源的处理器的通信理由信息;通信数据保存区域62b,用于保存要通信的通信数据;以及互斥控制区域62c,用于锁定通信区域以确保通信。
在这个时刻,在通信数据保存区域62b中,将存储指向主存储设备92的指针,其中存储了要通信的通信数据(包括请求内容的所需数据)。
将参考图7,针对作为实例的从第一处理器侧10上的并行处理单元40P0到第二处理器侧20上的处理器P1的通信的处理,对操作进行描述。
(1)并行处理单元40P0锁定针对处理器P1的通信区域62P1的互斥控制区域62c。更具体地,通过使在互斥控制区域62c中存储的锁定变量变为锁定状态,防止当前针对处理器P1的通信区域62P1由其他处理器使用。
当该区域已经由其他处理器锁定时,等待该锁定的释放。
(2)当得到了通信区域62P1的锁定时,并行处理单元40P0分别在通信区域62P1的通信理由保存区域62a和通信数据保存区域62b中存储通信理由信息和通信数据(包括请求内容的所需数据)。
在如上所述的创建任务的通信处理的情况下,要存储的通信理由信息是表示“并行处理”的信息(例如,对应于并行处理预定的诸如数值的数据)。
(3)并行处理单元40P0指示其自身的中断控制设备61P0的中断指示单元61a中断处理器P1。
(4)中断控制设备61P0的中断指示单元61a在对应于处理器P1的中断控制设备61P1的中断状态保存单元61b处,设置表示中断的信息。这使处理器P1进入中断状态。
(5)处理器P1的并行处理单元40P1根据在控制处理中继单元60中的中断控制设备61P1的中断状态保存单元61b中的状态,确定中断被设置。
(6)处理器P1的并行处理单元40P1通过清除在控制处理中继单元60中的其自身的中断状态保存单元61b的中断信息,从终端状态中释放它自己。
(7)处理器P1的并行处理单元40P1分别从控制处理中继单元60的通信理由保存区域62a和通信数据保存区域62b中获得通信理由信息和通信数据(包括请求内容的所需数据)。
(8)当允许其接收下一个通信时,处理器P1的并行处理单元40P1释放其自身通信区域62P1的互斥控制区域62c的锁定。更具体地,通过使互斥控制区域62c中的锁定变量变为未锁定状态,释放处理器P1的通信区域62P1,以使其可以由其他处理器使用。
因此,利用控制处理中继单元60,实现了第一处理器侧10和第二处理器侧20之间的控制信号和数据的传送和接收。
将参考图8来描述由代理单元70所进行的信号通知处理的操作。
代理单元70具有使单处理器的OS30能够利用信号(控制信号)与第二处理器侧20上产生的任务PT-1~PT-n进行通信的功能。将相应任务的PT-1~PT-n的任务号保存在代理单元70中。
代理单元70可以与多个任务PT-1~PT-n中的每一个一对一地关联,或者多个任务PT-1~PT-n可以与一个代理单元70关联。
(1)第一处理器侧10上的顺序任务ST从单处理器的OS30请求信号通知服务。由信号通知所传达的信号是由单处理器的OS30最初具有的服务功能控制在第二处理器侧20的各个处理器P1到Pn上激活的任务PT-1到PT-n的控制信号。
(2)单处理器的OS30将信号通知给相应的代理单元70。
(3)通过控制处理中继单元60,代理单元70将所通知的信号通知给其相应的处理器P1~Pn,其中,任务PT-1存在于第二处理器侧20。此时,设置“并行处理”作为通信理由信息。
(4)由于去往通信处理中继单元60的通信理由是“并行处理”,在第二处理器侧20上的相应处理器的并行处理单元40P1~40Pn从控制处理中继单元60获得信号通知命令。
(5)已经获得信号通知命令的并行处理单元40P1~40Pn向相应的任务PT-1~PT-n通知所述信号(控制信号)。
因此,由于代理单元70在第一处理器侧10利用任务号与第二处理器侧20的处理器P0~Pn上的任务PT-1~PT-n关联,可以针对任务PT-1~PT-n来执行由单处理器的OS30所进行的信号通知服务。
最后,将参考图9和10来描述在第二处理器侧20上的任务间协同操作。
图9示出了用于获得任务间的协同的并行处理单元40P1到40Pn的结构。如图所示,并行处理单元40P1到40Pn设置有互斥(mutualexclusion)单元41P1到41Pn。
主存储设备92还包括互斥控制区域43和任务管理内容保存区域44,以便获得任务的协作。
(1)在处理器P1上的任务PT-1从其自身的并行处理单元40P1上请求所需的并行处理。
(2)处理器P1的并行处理单元40P1从互斥单元41P1中请求获得锁定,以便确保用于并行处理的资源。
(3)互斥单元41P1利用主存储设备92的互斥控制区域43来获得锁定。
(4)互斥单元41P1通知并行处理单元40P1已经获得了锁定。
(5)并行处理单元40P1在任务管理内容保存区域44中保存已经请求处理器P1上的并行处理的任务PT-1的管理内容(请求内容、任务号和其他所需数据)。
(6)并行处理单元40P1中断正在执行低优先级任务的其他处理器P2~Pn。这里假定处理器Pn被中断。
(7)并行处理单元40P1要求互斥单元41P1释放如上所述的所确保的锁定。
(8)互斥单元41P1对主存储设备92的互斥控制区域43进行解锁。
(9)互斥单元41P1向并行处理单元40P1通知解锁的完成。
(10)并行处理单元40P1将处理返回到任务PT-1。
(11)处理器Pn的并行处理单元40Pn从互斥单元41Pn中请求获得锁定,以确保用于并行处理的资源。
(12)互斥单元41Pn利用主存储设备92的互斥控制区域43来获得锁定。
(13)互斥单元41Pn向并行处理单元40Pn通知锁定获取的完成。
(14)并行处理单元40Pn获得在任务管理内容保存区域44中所存储的任务管理内容。
(15)并行处理单元40Pn根据任务管理内容来创建和激活新的任务。
(16)并行处理单元40Pn从互斥单元41Pn中请求如上所述的所确保的锁定的释放。
(17)互斥单元41Pn对主存储设备92的互斥控制区域43进行解锁。
(18)互斥单元41Pn向并行处理单元40Pn通知解锁的完成。
如上所述的这样的任务协同操作允许在特定处理器P1~Pn上激活的任务PT-1~PT-n使其自身的工作单元由其他处理器来并行处理。
作为应用于这样构造的并行处理系统的实例,将对在多处理器的移动终端上运行应用程序的情况进行描述。
这里,将参考图11来进行描述,假定以下情况:应用程序具有在移动终端上同时再现图像(运动图像)和声音的功能,并且将声音输出处理定义为顺序任务A,而图像输出处理定义为并行化任务B,应用程序运行于第一处理器侧10的处理器P0上。
由上述并行处理单元将并行化任务B创建和激活为在第二处理器侧20的处理器P1到Pn的任一个上的任务C。
创建的任务C通过OS服务单元的文件访问处理,在屏幕上输出图像。
关于由顺序任务A输出的声音,由单处理器的OS30的服务来输出声音。
为了周期性地同步声音和图像,通过经由代理单元70所进行的信号通知操作在顺序任务A和任务C之间提供信号通知来达到同步。
此外,当执行在任务C中的编辑图像处理时,由任务协同处理将编辑处理创建和激活为其他处理器上的任务D。
当完成了由任务C所进行的图像输出处理时,任务C通过文件访问操作,向单处理器的OS通知该终止。
在本并行处理系统中,作为模块设置的并行处理单元40P0到40Pn、OS服务单元50P0到50Pn、控制处理中继单元60和代理单元70使单处理器的OS30和应用程序能够在没有多处理器系统上的开销的情况下操作,而无需修改单处理器的OS30和在处理器P0上运行的应用程序,同时收到由多处理器进行并行处理的好处。
接下来,将参考图12和随后的附图来描述根据本发明第二实例的并行处理系统。图12是示出了根据第二实例的并行处理系统的结构的方框图,其中,与图1相同的组件由相同的参考符号表示。图12所示的第二实例中示出了其中第一实例中的并行处理单元40P0到40Pn分别由并行处理通信单元400P0到400Pn和控制代理单元500P0到500Pn形成的情况。
如图12所示,根据本实例的并行处理系统与第一实例的相同之处在于:将由通过系统总线91连接的多个处理器(CPU)P0到Pn(n是不小于1的整数)形成的多处理器逻辑划分为两个组,即,第一处理器侧100和第二处理器侧200。
在第二实例中,实现了在第一处理器侧100的处理器P0上和在第二处理器侧200的各个处理器(CPU)P0到Pn上运行的单处理器的OS300P0到300Pn。
此外,用于并行处理的并行处理通信单元400P0到400Pn和控制代理单元500P0到500Pn分别安装在第一处理器侧100的处理器P0上和第二处理器侧200的处理器P1到Pn上。作为在各个处理器P0到Pn间共享的主存储设备92和诸如盘设备的外部存储设备93等与系统总线91相连。
同时,唯一地设置控制处理中继单元600,用于传送和接收第一处理器侧100和第二处理器侧200之间的控制信号和数据。
由于关于通过其在第一处理器侧100上的单处理器的OS 300P0与第二处理器侧200上执行的进程进行通信的第一实施例所示的代理单元70,该单元在本实施例执行与第一实施例中完全相同的功能,这里为了简便,将不再对其进行任何描述。
虽然在第一实施例中,已经描述了响应来自第二处理器侧20的处理器P1到Pn上的任务的文件访问命令来进行任务切换,然而,同时,在本实施例中,也能够进行来自第二处理器侧200的文件访问,并且由第二处理器侧200上的单处理器的OS 300P1到300Pn来进行第二处理器侧200上的进程PP-1到PPn的切换。
对于安装在各个处理器P0到Pn上的单处理器的OS 300P0到300Pn,这些单处理器的OS与第一实施例的不同之处在于:不仅可以使用诸如实时OS之类实现了存储器保护功能的无虚拟存储器机制的OS,而且可以使用作为现有OS的诸如Linux和Windows(R)之类具有虚拟存储机制的OS,并且可以在所有和部分处理器P0到Pn上实现存储器保护机制。
此外,单处理器的OS 300P0到300Pn不必是相同种类的OS,而可以是彼此不同种类的OS。
在本实例中,作为进行并行处理的工作单元的任务是在处理器之间受到存储器保护的,并且在这种意义上,称之为与第一实例中的任务区别的进程。
在根据本实例的并行处理系统中,在运行于第一处理器侧100的单处理器的OS 300P0上的应用程序的工作单元中,不能够并行化的那些进程(顺序进程SP)由第一处理器侧100上的处理器P0来处理,而将能够在应用程序内并行化的那些任务创建为第二处理器侧200上的新的进程PP-1到PP-n,并且进行并行处理。
并行处理通信单元400P0和并行处理通信单元400P1到400Pn具有传送和接收与进程创建、激活、停止、终止和删除有关的信息、与进程和单处理器的OS 300P0到300Pn之间的处理有关的其他控制的功能。
这里,将与任务的创建、激活、停止、终止、删除等有关的控制信息和数据通过控制处理中继单元600,在第一处理器侧100和第二处理器侧200之间传送和接收。
此外,控制代理单元500P0和控制代理单元500P1到500Pn具有从单处理器的OS 300P0~OS 300Pn中获得对进程的处理命令,并且激活该进程。
控制处理中继单元600是用于传送和接收第一处理器侧10和第二处理器侧20之间的控制信号和数据的单元,并且用于控制由多个处理器并行处理的多个进程。
下面,将参考附图详细描述根据第二实例构造的并行处理系统的操作。
这里假定应用程序运行于第一处理器侧100的单处理器的OS300P0上,并且在应用程序的工作单元中,将要由第一处理器侧100上的处理器P0处理的工作单元定义为顺序进程SP,而将作为可以在应用程序内并行化的进程和由第二处理器侧200作为任务PP-1到PP-n并行处理的工作单元定义为并行化进程PP。
在第二实例的并行处理系统中,在激活特定进程(任务)之后,其中在调用侧作为进程(任务)的并行化进程PP等待已激活进程PP-1~PP-n的终止的并行处理的同步激活、以及其中在调用侧作为进程(任务)的并行化进程PP不必等待已激活进程PP-1~PP-n的终止的并行处理的异步激活都是可行的。
首先,将参考图13来描述进程的并行处理的同步激活的操作。
这里假定在第二处理器侧200的处理器Pk(1≤k≤n)中,事先将第一处理器侧100上的并行化进程PP创建为作为要在第二处理器侧200上激活的工作单元的进程PP-k。
(1)在第二处理器侧200的处理器Pk(1≤k≤n)上的进程PP-k在并行处理通信单元400Pk中登记与属于其自身的进程的处理有关的信息。结果,进程PP-k进入待机状态。
(2)并行处理通信单元400Pk通过单处理器的OS 300Pk,请求访问在主存储设备92(共享存储器)上的所需数据。
(3)结果,将与属于进程PP-k的处理有关的信息存储在主存储设备92上(共享存储器)。
(4)处理器P0上的进程PP从并行处理通信单元400P0中请求同步处理。因此,进程PP进入待机状态。
(5)已经接收到请求的并行处理通信单元400P0通过单处理器的OS 300P0,请求访问主存储设备92(共享存储器)上的数据。
(6)由单处理器的OS 300P0对主存储器设备92(共享存储器)进行访问。
(7)并行处理通信单元400P0从主存储设备92(共享存储器)中获得与属于进程PP-k的处理有关的信息。因此,获得了处理器号和用于执行处理PP-k的进程号。
(8)并行处理通信单元400P0根据通过单处理器的OS 300P0从主存储设备92(共享存储器)中获得的信息来进行通信请求。
(9)单处理器的OS 300P0设置在控制处理中继单元600的通信所需的信息。
(10)结果,将处理命令从控制处理中继单元600发送到处理器Pk的单处理器的OS 300Pk。
(11)处理器Pk的控制代理单元500Pk获得通过单处理器的OS300Pk发送的处理命令。
(12)然后,控制代理单元500Pk根据所获得的处理命令来激活进程PP-k。
(13)结果,处于待机状态的进程PP-k执行所述处理。
(14)在完成处理之后,进程PP-k向并行处理通信单元400Pk通知取得该效果的信息。
(15)已经接收到通知的并行处理通信单元400Pk根据通过单处理器的OS 300Pk通知的信息来进行通信请求。
(16)单处理器的OS 300Pk在控制处理中继单元600处,设置通信所需的信息。
(17)结果,将处理命令从控制处理中继单元600发送到处理器P0中的单处理器的OS 300P0。
(18)处理器P0的控制代理单元500P0获得通过单处理器的OS300P0发送的处理命令。
(19)然后,控制代理单元500P0根据所获得的处理命令来激活进程PP。
因此,在第一处理器侧100的处理器P0上的进程PP和第二处理器侧200的处理器PP-k之间,实现了同步处理。
接下来,将参考图14来描述对进程的并行处理的异步激活的操作。
这里还假定在第二处理器侧200上的处理器Pk(1≤k≤n)中,事先将第一处理器侧100上的并行化进程PP创建为作为要在第二处理器侧200上激活的工作单元的进程PP-k。
(1)正在第二处理器侧200的处理器Pk((1≤k≤n)上执行处理的进程PP-k在并行处理通信单元400Pk中,登记与属于其自身的进程的处理有关的信息。结果,进程PP-k输入待机状态。
(2)并行处理通信单元400Pk通过单处理器的OS 300Pk,请求访问主存储设备92(共享存储器)上所需的数据。
(3)结果,将与属于进程PP-k的处理有关的信息存储在主存储设备92(共享存储器)中。
(4)在处理器P0上的进程PP从并行处理通信单元400P0中请求异步处理。在这种情况下,之后,进程PP继续处理,而不进入待机状态。
(5)已经接收到该请求的并行处理通信单元400P0通过单处理器的OS 300P0,请求在主存储设备92(共享存储器)上的数据。
(6)由单处理器的OS 300P0对主存储设备92(共享存储器)进行访问。
(7)并行处理通信单元400P0从主存储设备92(共享存储器)中获得与属于进程PP-k的处理有关的信息。因此,获得了处理器号和用于执行进程PP-k的进程号。
(8)并行处理通信单元400P0根据通过单处理器的OS 300P0从主存储设备92(共享存储器)中获得的信息来进行通信请求。
(9)单处理器的OS 300P0在控制处理中继单元600处,设置通信所需的信息。
(10)因此,将处理命令从控制处理中继单元600发送到处理器Pk的单处理器的OS 300Pk。
(11)处理器Pk的控制代理单元500Pk获得通过单处理器的OS300Pk发送的处理命令。
(12)然后,控制代理单元500Pk根据所获得的处理命令来激活进程PP-k。
(13)因此,处于待机状态的进程PP-k执行所述处理。
按照上述方式,在第一处理器侧100的处理器P0上的进程PP和第二处理器侧200的进程PP-k之间,实现了异步处理。
下面将参考图15和16来描述在根据第二实例的并行处理系统中,由控制处理中继单元600所进行的处理操作。
首先,在图15中示出了控制处理中继单元600的结构。如图所示,对控制处理中继单元600进行构造,以使其包括与各个处理器P0到Pn相对应的中断控制设备601P0到601Pn、以及与各个处理器P0到Pn相对应的通信区域602P0到602Pn。这里,在主存储设备92中确保了通信区域602P0到602Pn。
中断控制设备601P0到601Pn的每一个具有与图6所示的根据第一实例的控制处理中继单元60中的结构相同的结构,并且由中断指示单元601a、中断状态保存单元601b和中断取消单元601c组成。
同时,通信区域602P0到602Pn的每一个基本上具有与图6所示的第一实例中的结构相同的结构,并且由作为图6所示的通信理由保存区域62a和通信数据保存区域62b的组合的通信队列602a和互斥控制区域602c形成。
作为实例,将参考图16来描述从第一处理器侧100上的并行处理通信单元400P0到第二处理器侧200上的处理器Pn的通信处理操作。
(1)并行处理通信单元400P0锁定针对处理器Pn的通信区域602Pn的互斥控制区域602b。更具体地,使在互斥控制区域602b中的锁定变量变为锁定状态以防止当前针对处理器Pn的通信区域602Pn被其他处理器使用。
(2)并行处理通信单元400P0将通信理由信息和通信数据(包括请求内容的所需数据)存储在通信区域602Pn的通信队列602a。
作为要存储的通信理由信息,在如上所述的针对进程创建/激活的通信处理的情况下,存储表示“进程激活”的信息(例如,诸如与并行处理相对应的预定数值的数据)。
(3)在(1)的时刻,如果通信区域602Pn的通信队列602a是空的,并行处理通信单元400P0指示其自身的中断控制设备601P0的中断指示单元601a中断处理器Pn。
(4)处理器P0的并行处理通信单元400P0使针对处理器Pn的通信区域602Pn的互斥控制区域602b进入未锁定状态。如果在(1)的时刻,通信区域602Pn的通信队列602a不是空的,则由于不需要中断,处理在该时刻终止。
(5)中断控制设备601P0的中断指示单元601a在与处理器Pn相对应的中断控制设备601Pn的中断状态保持单元601b处设置表示中断的信息。结果,处理器Pn进入中断状态。
(6)处理器Pn的单处理器的OS 300Pn根据针对处理器Pn的中断控制设备601Pn的中断状态保持单元601b的条件来接受中断。
(7)处理器Pn中的单处理器的OS 300Pn通过利用中断控制设备601Pn中的中断取消单元601c清除其自身中断状态保持单元601b中的中断信息,释放其中断状态。
(8)处理器Pn中的单处理器的OS 300Pn激活其自身控制代理单元500Pn。
(9)处理器Pn的控制代理单元500Pn在其自身通信区域602Pn的互斥控制区域602b处设置锁定。
(10)处理器Pn的控制代理单元500Pn还从其自身通信区域602Pn的通信队列602a中删除通信理由信息和通信数据。
(11)处理器Pn的控制代理单元500Pn对处理器Pn的通信区域602Pn的互斥控制区域602b进行解锁。这使处理器Pn的通信区域602Pn不能够由其他处理器使用。
因此,通过使用控制处理中继单元600,实现了第一处理器100和第二处理器200之间的控制信号和数据的传送和接收。
接下来,下面将参考图17来描述根据本发明第三实例的并行处理系统。图17是示出了根据第三实例的并行处理系统的结构的方框图,在图中,与图13所示相同的组件由相同的参考符号表示。
在第二实例的上述同步处理中,需要重复检查在进程之间,一个进程是否使其在主存储设备92上的数据被其他进程更新,造成了涉及与重复同样多的额外处理,同时,本实施例能够实现进程之间的高性能同步和数据传送和接收,其中不需要任何这样的额外处理。
如图17所示,与第二实例相似,根据第三实例的并行处理系统包括:通过系统总线91连接的多个处理器(CPU)P0到Pn(n是不小于1的整数)构成的多处理器,将所述多个处理器逻辑上划分为第一处理器侧100和第二处理器侧200,其中,安装了运行在第一处理器侧100的处理器P0上和第二处理器侧200的处理器(CPU)P1到Pn上的单处理器的OS 300P0到300Pn。
第三实例的特征在于:除了用于在第一处理器侧100上的处理器P0和第二处理器侧200上的处理器P1到Pn上进行并行处理的并行处理通信单元400P0~400Pn,以及控制代理单元500P0和500Pn之外,还包括用于实现在第一处理器侧100的处理器P0和第二处理器侧200的处理器P1到Pn上执行各个进程之间的通信的进程间通信单元1000P0到1000Pn。
换句话说,本施例使传统上安装在多处理器的OS上的进程间通信功能能够在运行单处理器的OS和多处理器的应用程序的、单处理器的OS所进行的并行处理系统上实现,从而能够在用户级提供进程间通信功能。
此外,由于在本实例中,第一处理器侧100上的单处理器的OS300P0与要在如第一实例所示的第二处理器侧200上执行的进程进行通信所使用的代理单元70完全执行与第一实施例相同的功能,为了简便,不再对其进行描述。
由于除了上述进程间通信单元1000P0到1000Pn之外的其他组件的结构和操作与第二实例的上述结构和操作完全相同,因此将只对进程间通信单元1000P0到1000Pn进行描述。
进程间通信单元1000P0到1000Pn利用诸如信号量(semaphore)或消息队列之类的系统,实现在处理器P1到Pn上执行的进程之间的通信。
这里,将针对进程间单元1000P0到1000Pn利用信号量系统进行进程间通信的情况来进行描述。
如图18所示,将对以下情况进行描述:当进程PP-m和进程PP-n分别在第二处理器侧200的处理器Pm和处理器Pn上执行时,进程PP-m和进程PP-n通过进程间通信单元1000Pm和1000Pm利用信号量系统进行通信。
信号量(semaphore)是一种用于多个进程在同时执行多个进程的多任务OS上相互通信和同步的系统,并且是一种共享标记(计数器),相互同步的进程注意着该计数器,以根据计数器的改变进行处理,从而实现通信(同步)。
首先,参考图18,将描述增加或减小主存储设备92的信号量信息区域(共享标记)的处理器Pm上的进程PP-m的操作。这里假定信号量增加(semaphore-up)是递增信号量信息区域的计数器值,而信号量减小(semaphore-down)是递减信号量信息的计数器值。当不允许信号量增加时,当前的进程休眠以进入等待状态,并且由信号量减小来唤醒。
(1)当处理器Pm上的进程PP-m增加或减小信号量(信号量计数器)时,该进程PP-m请求作用于进程间通信单元1000Pm。
(2)已经接收到请求的进程间通信单元1000Pm访问信号量信息区域#N(确保了与由系统预定的数量同样多的信号量信息区域),作为可由主存储设备92中所确保的信号量数可区分的共享标记,以确定是否可以增加或减小所述信号量。
接下来,参考图19,将描述处理器Pm上的进程PP-m增加信号量(信号量标记)的情况。
(1)处理器Pm上的进程PP-m请求进程间通信单元1000Pm减小信号量(信号量标记)。
(2)已经接收到请求的进程间通信单元1000Pm访问在主存储设备92中所确保的信号量信息区域#N。这里,在信号量信息区域#N处设置了初始值“0”作为信号量的计数器值,并且事先固定,即使尝试也不能减小。因此,确定不能够减小该信号量。
(3)进程间通信单元1000Pm利用系统调用,请求单处理器的OS
300Pm使进程PP-m休眠。
(4)单处理器的OS300Pm利用系统调用,使进程PP-m休眠,以从运行队列(run queue)中取出该进程。
换句话说,在上述情况下,不允许减小信号量,进程PP-m休眠。
此外,参考图20,将描述当在如上所述进程PP-m休眠的情况下,相同处理器Pm上的进程PP-m1增加信号量时所执行的操作。
(1)进程PP-m1请求进程间通信单元1000Pm增加信号量。
(2)进程间通信单元1000Pm访问在主存储设备92中确保的信号量信息区域#N,以确定存在等待信号量的进程PP-m。
(3)进程间通信单元1000Pm还向控制处理中继单元600传送消息(控制消息),以请求唤醒进程PP-m。
(4)控制代理单元500Pm从控制处理中继单元600接收消息。根据参考图15和16所述的操作,由控制处理中继单元600进行消息中继。
(5)控制代理单元500Pm从消息中确定进行了唤醒等待信号量的进程的请求,以便利用系统调用,向单处理器的OS300Pm提供用于唤醒处于等待状态的进程PP-m的请求。
(6)单处理器的OS 300Pm利用系统调用来唤醒所请求的进程PP-m,以将其连接到运行队列。在这种情况下,唤醒的进程PP-m再次尝试减小信号量。
如以上所阐明的处理(3)和(4)所述,利用单处理器的OS 300Pm的通信功能而不使用上述处理(3)和(4)所述的通过控制处理器中继单元600进行的控制消息中继来从进程间通信单元1000Pm到控制代理单元500Pm直接请求进程PP-m的唤醒造成了处理(3)和(4)的取消,从而能够高速处理。
参考图21,将描述在当处理器Pm的进程PP-m如上所述休眠时其他处理器Pn上的进程PP-n增加信号量的情况下所进行的操作。
(1)处理器Pn上的进程PP-n从其自身的处理器Pn的进程间通信单元1000Pn请求信号量增加。
(2)进程间通信单元1000Pn访问在主存储设备92中所确保的信号量信息区域#N,以确定存在等待信号量的进程PP-m。
(3)进程间通信单元1000Pn还向控制处理中继单元600传送消息(控制消息),以请求唤醒进程PP-m。
(4)随后,处理器Pm的控制代理单元500Pm从控制处理中继单元600接收消息。根据参考图15和16所述的操作来由控制处理中继单元600进行消息中继。
(5)控制代理单元500Pm从该消息中确定进行了唤醒等待信号量的进程的请求,以利用系统调用,向单处理器的OS 300Pm提供用于唤醒处于等待状态的进程PP-m的请求。
(6)处理器的OS 300Pm利用系统调用唤醒所请求的进程PP-m,以将其连接到运行队列。在这种情况下,所唤醒的进程PP-m再次尝试减小信号量。
接下来,如图22所示,将描述以下情况,所述情况为:当进程PP-m和进程PP-n在第二处理器侧200的处理器Pm和处理器Pn上执行时,进程PP-m和进程PP-n通过进程间通信单元1000Pm和1000Pn利用消息队列系统相互通信。
作为多个进程之间的通信方法的消息队列系统,是一个创建以其名称字面所表示的“队列”并将消息(在进程间传送和接收的处理数据)作为信息存储在队列中的系统。在消息队列系统中,允许接收器侧按照任意顺序接收消息。当进程中的任一个接收到消息时,该消息从队列中消失。
参考图22,将描述处理器Pm上的进程PP-m利用消息队列系统接收消息的情况。在这种情况下,要获得的消息存在于可由主存储设备92中确保的队列信号区分的队列消息区域#N(确保了与预定数量同样多的队列信息区域)。
(1)为了接收消息,在处理器Pm上的进程PP-m从进程间通信单元1000Pm中请求接收。
(2)已经接收到请求的进程间通信单元1000Pm访问在主存储设备92中所确保的队列信息区域#N以接收消息。
(3)然后,进程间通信单元1000Pm将接收到的消息拷贝到请求源进程PP-m上。此时,将当前的消息从主存储设备92中所确保的队列信息区域#N中删除。
接下来,参考图23,将描述当在处理器Pm上的进程PP-m通过消息队列系统接收消息时所执行的第二操作。在这种情况下,要获取的消息未能存在于主存储设备92所确保的队列信息区域#N中。
(1)为了接收消息,在处理器Pm上的进程PP-m请求作用于进程间通信单元1000Pm。
(2)已经接收到该请求的进程间通信单元1000Pm访问在主存储设备92中所确保的队列信息区域#N。在这种情况下,确定要获得的消息未能存在于所确保的队列信息区域#N,而不能接收消息。
(3)进程间通信单元1000Pm利用系统调用,请求单处理器的OS300Pm使进程PP-m休眠。
(4)单处理器的OS 300Pm利用系统调用来使进程PP-m休眠以从运行队列中断开所述进程。
换句话说,不允许进程PP-m接收消息,从而在上述情况下,该进程休眠。
参考图24,将描述当处理器Pm上的进程PP-m通过消息队列系统传送消息时所执行的操作。在这种情况下,不存在正在等待要传送的消息的任何进程,并且只进行向主存储设备92中所确保的队列信息区域#N的消息传送。
(1)为了传送消息,在处理器Pm的进程PP-m请求作用于进程间通信单元1000Pm。
(2)已经接收到该请求的进程间通信单元1000Pm访问在主存储设备92中所确保的队列信息区域#n,以存储来自进程PP-m的消息。
还将描述如图25所示,当处理器Pm上的进程通过消息队列系统传送消息时所执行的操作。在这种情况下,存在等待要传送的消息的进程。换句话说,这是如图23的实例所示,当进程PP-m不能够接收消息并休眠时从进程PP-m1发送消息的情况。
(1)进程PP-m1从进程间通信单元1000Pm请求消息传送。
(2)进程间通信单元1000Pm访问在主存储设备92中所确保的队列信息区域#N,以存储来自进程PP-m1的消息。这里,确定存在等待消息的进程PP-m。
(3)进程间通信单元1000Pm还向控制处理中继单元600传送控制消息,以请求唤醒进程PP-m。
(4)控制代理单元500Pm从控制处理中继单元600接收控制消息。
(5)控制代理单元500Pm从控制消息中确定命令用于唤醒等待消息的进程,并且利用系统调用,请求单处理器的OS 300Pm唤醒处于等待状态的上述进程PP-m。
(6)单处理器的OS 300Pm利用系统调用唤醒所请求的进程PP-m,以将进程连接到运行队列。
在这种情况下,所唤醒的进程PP-m再次尝试接收消息。结果,来自进程PP-m1的消息由进程PP-m接收。
利用单处理器的OS 300Pm的通信功能而不利用如上述处理(3)和(4)所示的通过控制处理中继单元600所进行的控制消息中继来从进程间通信单元1000Pm向控制代理单元500Pm直接请求进程PP-m的唤醒造成了处理(3)和(4)的取消,从而能够实现高速处理。
参考图26,将描述在当处理器Pm上的进程PP-m休眠以等待消息时,在其他处理器Pn上的进程PP-n如图23所示传送消息的情况下所进行的操作。
(1)处理器Pn上的进程PP-n请求其自身处理器Pn的进程间通信单元1000Pn传送消息。
(2)进程间通信单元1000Pn访问在主存储设备92中所确保的队列信息区域#N,以存储来自进程PP-n的消息。这里确定了存在等待消息的进程PP-m。
(3)进程间通信单元1000Pn控制处理中继单元600传送控制消息,以请求唤醒进程PP-m。
(4)随后,处理器Pm的控制代理单元500Pm从控制处理中继单元600接收控制消息。
(5)控制代理单元500Pm从控制消息中确定命令用于唤醒等待消息的进程,并且利用系统调用,向单处理器的OS 300Pm提供用于唤醒处于等待状态的上述进程PP-m的请求。
(6)单处理器的OS 300Pm利用系统调用唤醒所请求的进程PP-m,以将进程连接到运行队列。
在这种情况下,所唤醒的进程PP-m再次尝试接收消息。结果,来自进程PP-n的消息由进程PP-m接收,以执行在不同处理器间的进程间通信。
根据本实例,按照前述的方式,利用信号量系统或消息队列系统,通过进程间通信单元1000P0到Pn在相同处理器内或不同处理器间的进程(同步或消息传送和接收)之间的通信,能够实现诸如进程切换和数据传送和接收之类的进程控制。
虽然在相同处理器中的进程之间有限制地进行利用单处理器的OS的进程间通信,并且不同处理器间的进程间通信应该利用具有较重处理负载等的网络来进行,但是,由其处理速度快于网络通信速度的控制处理中继单元600和进程间通信单元1000P0到Pn使用信号量系统和消息队列系统实现了在安装有单处理器的OS的多处理器系统中也具有高处理速度的进程间通信。
对于相同处理器内的进程间通信,通过单处理器的OS,可以获得几乎等价于从进程的休眠到唤醒所需要的处理性能的性能。
另外的优点在于:与多处理器的OS不同,即使安装有随每一个处理器而改变的单处理器的OS,处理器间的进程间通信也是可行的。
接下来,将参考图27来描述通过进程间通信单元1000P0到1000P利用信号量系统和消息队列系统的上述进程间通信的具体实例。
在图27中,进程PP-0、进程PP-j和进程PP-k分别在处理器P0、处理器Pj和处理器Pk上执行。这里,进程PP-0作为浏览器进行操作,进程PP-j作为Java小应用程序进行操作,以及进程PP-k作为MPEG4应用程序进行操作,并且如图28所示,在嵌入在利用进程PP-0的浏览器1100中的窗口内,相互同步地显示利用进程PP-j的Java小应用程序内容1200和利用进程PP-k的MPEG4图像内容1300。
在该实例中,在第一处理器侧100的单处理器的OS 300P0上运行的应用程序的工作单元中,进程PP-0运行在处理器P0上,进程PP-j和进程PP-k,即能够在应用程序内并行化的进程,在第二处理器侧200上的处理器Pj和处理器Pk中并行处理。
在图27中,当激活了Java小应用程序(进程PP-j)和MPEG4应用程序(进程PP-k)时,两个应用程序都等待从浏览器(进程PP-0)中接收Java小应用程序数据和MPEG4图像数据(步骤S101和S201)。
这里,从处理器P0的进程PP-0中,通过进程间通信单元1000P0利用消息传送,将Java小应用程序数据和MPEG4图像数据作为消息传送,并且由Java小应用程序(进程PP-j)和MPEG4应用程序(进程PP-k)接收。
结果,启动了由Java小应用程序(进程PP-j)所进行的操作(步骤S102),以开始由MPEG4应用程序(进程PP-k)所进行的解码处理(步骤S202)。
在该实例中,由于事先清楚由Java小应用程序(进程PP-j)所进行的操作结束得比由MPEG4应用程序(进程PP-k)所进行的解码处理要早,因此,将信号量计数器的初始值设置为“0”,从而在完成操作之后,Java小应用程序(进程PP-j)等待由MPEG4应用程序(进程PP-k)所进行的处理的完成,从而防止已经较早完成操作的Java小应用程序(进程PP-j)减小信号量。此外,定义MPEG4应用程序(进程PP-k),以便在完成处理之后增加信号量。
虽然Java小应用程序(进程PP-j)尝试增加信号量(步骤S103),但是由于计数器的初始值为“0”,因此其不能够减小信号量,从而使其进入休眠以等待信号量。
当MPEG4应用程序(进程PP-k)结束处理(步骤S203)之后,该应用程序请求信号量增加(步骤S204)。结果,等待信号量的Java小应用程序(进程PP-j)被唤醒并允许其减小信号量。
对每一个帧重复前述操作导致了将利用进程PP-j的Java小应用程序的内容1200和利用进程PP-k的MPEG4图像内容1300相互同步地显示在嵌入于利用进程PP-0的浏览器1100的窗口内。
接下来,将参考图29来描述根据本发明第四实例的并行处理系统。图29是示出了根据第四实例的并行处理系统结构的方框图,其中,与图13所示的组件相同的组件由相同的参考符号表示。
如图29所示,根据第四实例的并行处理系统包括通过系统总线91连接的多个处理器(CPU)P1~Pn(n是不小于2的整数)构成的多处理器,所述多个处理器安装有运行于各个处理器P1到Pn上的单处理器的OS 300P1到300Pn。
更具体地,本实例与第一到第三实例的不同在于:不将多处理器逻辑上划分为第一处理器侧和第二处理器侧两组。
与上述第三实例相似,第四实例的特征在于:除了用于进行处理器P1到Pn的并行处理的并行处理通信单元400P1到400Pn,以及控制代理单元500P1到500Pn之外,还包括用于实现在处理器P1到Pn上执行的各个进程之间的通信的进程间通信单元1000P1到1000Pn。
另一方面,可以进行每一个处理器P1到Pn上的进程控制,而没有第一实施例中所设置的OS服务单元50P1到50Pn以及在第一到第三实施例中所设置的并行处理通信单元400P1到400Pn。在各个处理器P1到Pn上的单处理器的OS 300P1到300Pn不需要是相同的OS,而可以相互不同。
换句话说,本实例还使传统上安装在多处理器的OS上的进程间通信功能能够在由运行单处理器的OS和多处理器上的应用程序的单处理器的OS所进行的并行处理系统上实现,从而能够在用户级提供进程间通信功能。
进行每一个处理器P1到Pn中的每一个进程的执行,而不需要与其他处理器的互斥控制。
如在第三实例中所描述的,通过进程间通信单元1000P1到1000Pn,利用信号量系统和消息排队系统,进行各个处理器P1~Pn内的进程间通信和处理器之间的进程间通信,以执行进程之间的同步处理和数据传送和接收。
将参考图30来描述应用于上述并行处理系统的根据本发明的电源管理系统。这里,将对第一实施例进行描述,在第一实施例中,将本发明的电源管理系统应用于作为第三实例的并行处理系统。
对根据第一实施例的电源管理系统进行构造,以使其具有设置在图17所示的并行处理系统的处理器P0中的主电源管理单元2000m、以及设置在每个处理器P1~Pn中的子电源管理单元2000s。此外,还设置了用于接通/切断每个处理器P0~Pn的电能的电源管理设备3000A、以及用于控制来自单处理器的OS 300P0~Pn的中断的中断设备3000B。电源管理设备3000A和中断设备3000B是可以由设置在单处理器的OS中的驱动程序控制的设备。
与形成并行处理系统的每个处理器的电源管理相关的主电源管理单元2000m具有两个功能:一个功能是作为软件管理其他处理器P1~Pn的电源状态;一个功能是要求电源状态的改变。
利用主电源管理单元2000m的电源管理功能,所述单元管理每一个其他处理器P1~Pn中的四个状态中的任一个,所述四个状态为:激活、停止、在激活的途中(从开始激活直到激活状态稳定时为止的状态)、以及在停止的途中(从开始停止直到停止状态稳定时为止的状态)。在激活时,主电源管理单元2000m检查激活了处理器P1~Pn中的哪些以使其子电源管理单元进行操作。
在要求电源状态改变时,主电源管理单元2000m进行针对其他处理器P1~Pn的部分和全部的引导请求(接通电能以激活系统的处理)和暂停请求(停止系统以向能够切断电能的状态进行转移的处理),以及进行针对所有处理器的暂停请求。
子电源管理单元2000s具有:执行其自身处理器的暂停处理的功能、在激活时向主电源管理单元2000m传送激活消息的功能、以及请求主电源管理单元2000m引导和暂停其他处理器的功能。尽管在下文中将对作为用于停止系统以向能够切断电能的状态进行转移的处理的暂停处理进行描述,但是,该描述可以同样应用于执行除了暂停处理之外的关闭处理和挂起处理的情况。
首先,将参考图31对当处理器P0上的进程引导其他处理器Pn时所执行的操作进行描述。
(1)在处理器P0上的进程向主电源管理单元2000m进行用于引导处理器Pn的请求。在该引导请求中,将处理器Pn指定为要引导的处理器。
(2)在确认激活时的状态的情况下,当处理器Pn处于停止状态时,主电源管理单元2000m通过单处理器的OS 300P0来访问0S的电源管理设备3000A,以接通处理器Pn的电能。然后,将处理器Pn的状态改变为在激活途中的状态。
(3)当接通了处理器Pn的电能时,激活单处理器的OS 300Pn,以便激活子电源管理单元2000s。
(4)随后,处理器Pn的子电源管理单元2000s向其自身的进程间通信单元1000Pn传送表示引导完成的引导完成消息。
(5)在处理器Pn上的进程间通信单元1000Pn将上述引导完成消息通过控制处理中继单元600中继到处理器P0上的进程间通信单元1000Pn。
(6)处理器P0的主电源管理单元2000m从进程间通信单元1000P0接收引导完成消息,以将处理器Pn的状态改变为激活状态。
在处理器Pn未处于停止状态而处于在停止途中的状态的情况下,禁止执行处理,直到处理器在处理(6)处向停止状态进行转移为止,并且当处理器进入到停止状态时,再次进行从处理(2)开始的处理。
在处理(6)之后,还能够向已经进行了引导请求的处理器P0的进程通知完成了引导。例如,在上述实例中,在保持由处理器P0的进程所进行的处理直到完成了对处理器Pn进行引导为止的情况下,能够通过给出完成了引导的通知,重新开始由处理器P0所进行的处理。
此外,当处理器Pn处于激活状态或者处于在激活途中的状态时,忽略引导请求。
通过前述进程,完成了由在处理器P0上的进程所进行的引导处理器Pn的处理。
接下来,将参考图32来描述由处理器P0上的进程暂停其他处理器Pn的操作。
(1)在处理器P0上的进程向主电源管理单元2000m进行用于暂停处理器Pn的处理的请求。
(2)在确认激活时的状态的情况下,当处理器Pn处于激活状态下时,主电源管理单元2000m向进程间通信单元1000P0传送暂停请求消息。还将处理器Pn的状态改变为在停止途中的状态。
(3)处理器P0的进程间通信单元1000P0通过控制处理中继单元600向处理器Pn上的进程间通信单元1000Pn中继暂停请求消息。
(4)处理器Pn的子电源管理单元2000s从进程间通信单元1000Pn中接收暂停请求消息。
(5)随后,在处理器Pn上的子电源管理单元2000s确定所述消息涉及暂停请求,以便向单处理器的OS 300Pn通知该暂停处理。
(6)在完成暂停处理之后,已经接收到通知的单处理器的OS300Pn通过利用OS的中断设备3000B的中断,向处理器P0通知处理的完成。
(7)在处理器P0上的单处理器的OS 300P0的电源管理设备3000A的设备驱动器接收该中断,以便向主电源管理单元2000m通知该中断。
(8)已经得到通知的主电源管理单元2000n通过单处理器的OS300P0的电源管理设备3000A来切断处理器Pn的电能,以便将处理器Pn的状态改变为停止状态。
这里,在处理器Pn未处于激活状态而处于在激活途中的状态的情况下,当进行暂停请求时,禁止执行处理,直到处理器在处理(8)中向激活状态进行转移为止,并且当处理器进入激活状态时,再次执行从处理(2)开始的处理。
当处理器Pn处于停止状态或处于在停止途中的状态时,忽略该暂停请求。
通过前述的程序,完成了由处理器P0上的进程暂停处理器Pn的处理。
尽管已经针对处理器P0的进程执行一个其他处理器Pn的引导处理和暂停处理的情况进行了前面的描述,但是,能够根据来自所有其他处理器P1~Pn或部分的(多个)其他处理器的引导请求或暂停请求,针对相互并行的每个处理器,执行上述引导处理和暂停处理。
虽然已经针对处理器P0的进程进行针对处理器Pn的引导请求和暂停请求的情况进行了前面的描述,还可以将来自其他处理器的进程的引导请求和暂停请求传送到处理器P0的主电源管理单元2000m上。由进程间通信单元1000P1~1000Pn进行在这种情况下的引导请求和暂停请求的传输。
此外,在处理(8)之后,能够向已经进行了暂停请求的处理器P0的进程通知完成了暂停。在上述实例中,例如,在由处理器P0的进程所进行的处理保持等待直到完成了处理器Pn的暂停为止的情况下,提供完成了暂停的通知允许重新开始由处理器P0的进程所进行的处理。
在下文中,将参考图33来描述暂停包括第一处理器P0的所有处理器P0~Pn的操作。
(1)在处理器P0上的进程请求主电源管理单元2000m暂停所有处理器。
(2)在确认激活时的状态的情况下,当存在处于激活状态的处理器时,主电源管理单元2000m向进程间通信单元1000P0传送用于请求暂停处于激活状态的处理器(目标处理器)的消息。同时,将所讨论的处理器的状态改变为在停止途中的状态。
(3)处理器P0的主电源管理单元2000m要求单处理器的OS 300P0执行暂停处理,以等待完成目标处理器的暂停。
(4)处理器P0的进程间通信单元1000P0通过控制处理中继单元600,将上述暂停请求消息中继到目标处理器上的进程间通信单元。
(5)目标处理器的子电源管理单元2000s从进程间通信单元接收上述暂停请求消息。
(6)随后,目标处理器上的子电源管理单元2000s确定该消息用于暂停请求,以向单处理器的OS通知该暂停处理。
(7)在完成暂停处理之后,已经接收到该通知的单处理器的OS利用由OS的中断设备3000B所进行的中断,向处理器P0通知处理的完成。
(8)在处理器P0上的单处理器的OS 300P0的电源管理设备3000A的设备驱动器接收该中断,以识别完成了中断源处理器的暂停处理。
(9)然后,通过单处理器的OS 300P0的电源管理设备3000A来切断目标处理器的电能。
(10)当电源管理设备3000A的设备驱动器识别了所有处理器中的所有暂停处理的完成时,通过电源管理设备3000A切断处理器P0的电能。
这里,在处理器未处于激活状态而处于在激活途中的状态的情况下,当进行暂停请求时,禁止执行处理,直到状态向激活状态进行转移为止,并且当处理器进入激活状态时,再次执行从处理(2)开始的处理。
此外,当处理器处于停止状态或者处于在停止途中的状态时,忽略暂停请求。
图34示出了在将根据第一实施例的电源管理系统应用于由包括第一处理器P0和其他处理器P1和P2的三个处理器形成的并行处理系统的情况下,电源控制的状态转移。
尽管已经针对根据暂停请求或引导请求切断或接通处理器的电能的情况进行了前面的描述,但是,可以替代接通/切断电源,来进行挂起(使处理器失活)和重新开始(使处理器返回)。
在除了请求所有处理器暂停之外的其他时间,能够进行上述的挂起(使处理器失活)和重新开始(使处理器返回),以便在进行针对所有处理器的暂停请求时切断电能。
尽管已经针对按照与以上所述相同的方式,由电源管理设备3000A根据引导和暂停请求接通/切断处理器的电源的情况,描述了根据第一实施例的电源管理系统,但是,还可以由响应引导请求和暂停请求而进行的与上述处理相同的处理来执行用于改变每个处理器的电源电压和时钟频率的请求。例如,能够如引导请求那样来处理用于将处理器的电源电压从0V改变到任意伏特的请求,以及如暂停请求那样来处理用于将电源电压从任意伏特改变到0V的请求。
接下来,将参考图35来描述应用于并行处理系统的电源管理系统的第二实施例。
对于根据本实施例的电源管理系统中的主电源管理单元,未设置在第一实施例中作为唯一进程设置的主电源管理单元2000m,而设置了与各个处理器相对应的主电源管理单元2000m0~2000mn,作为利用设置在第一处理器P0的单处理器的OS 300P0中的电源管理功能来管理每个处理器的电源状态的设备驱动器。
安装这些主电源管理单元2000m0~2000mn,作为单处理器的OS300P0的设备驱动器,用于读取和使用预先设置在单处理器的OS300P0中的针对设备管理的预定命令(请求),作为电源管理的命令(请求),以便进行改变电源状态的请求。
例如,将作为预先设置在单处理器的OS 300P0中的针对设备管理的预定命令的命令“探查”和“取消”分别用作用于激活和停止处理器的命令。
作为设置在其他处理器P1~Pn的单处理器的OS P1~Pn中的内核K1~Kn的子系统的子电源管理单元,将与设置在处理器P0中的主电源管理单元2000m1~2000mn相对应的子电源管理单元2000s1~2000sn分别设置在处理器P1~Pn中。这些子电源管理单元2000s1~2000sn根据来自相应的主电源管理单元2000m0~2000mn的请求命令,执行用于改变电源状态的处理。
接下来,将描述根据第二实施例的电源管理系统的操作。
首先,将参考图36来描述由处理器P0上的进程激活处理器Pn的操作。
(1)在处理器P0上的进程通过单处理器的OS 300P0的内核K0,请求探查作为设备的处理器Pn。
(2)内核K0调用与处理器Pn相对应的主电源管理单元2000mn的探查功能。
(3)主电源管理单元2000mn访问电源管理设备3000A以接通处理器Pn的电能。这里,主电源管理单元2000mn将设备的状态(处理器Pn的状态)改变为激活状态。
(4)然后,主电源管理单元2000mn完成探查功能的处理,以便将处理返回到内核K0。
(5)通过接通处理器Pn,激活了处理器Pn上的内核Kn和子电源管理单元2000sn。
(6)内核Kn调用作为设备的子电源管理单元2000sn的初始化功能。
(7)子电源管理单元2000sn通过初始化功能来访问中断设备3000B,以向处理器P0通知激活的完成。
(8)主电源管理单元2000mn接收中断,以便将设备的状态(处理器Pn的状态)改变为激活状态。
在上述操作中,当处理器Pn的激活时间较早时,主电源管理单元2000mn可以在等待处理(5)和(8)完成之后再执行处理(4),而不是立即执行处理(4)。当处理器Pn处于在激活途中的状态时,忽略该请求,并且当其处于停止途中的状态时,中断处理,并且当使处理器进入停止状态时,重新开始该处理。
已经针对由处理器P0的进程执行一个其他处理器Pn的探查处理和取消处理的情况进行了前面的描述,还可以根据所有其他处理器P1~Pn或部分的(多个)其他处理器的引导请求或暂停请求,针对相互并行的每个处理器来执行上述的引导处理和暂停处理。
而且,已经针对响应探查请求而激活处理器的情况进行了前面的描述,例如,可以通过将“探查”改变为“重新开始”,由与以上所述相同的方式来实现响应重新开始请求而返回未激活处理器。
接下来,将参考图37来描述从处理器P0的进程中、当停止处理器Pn时所执行的操作。
(1)在处理器P0上的进程通过单处理器的OS 300P0的内核K0,请求取消作为设备的处理器Pn。
(2)内核K0调用与处理器Pn相对应的主电源管理单元2000mn的取消功能。
(3)主电源管理单元2000mn向控制处理中继单元600传送取消请求。这里,主电源管理单元2000mn将设备的状态(处理器Pn的状态)改变为停止状态。
(4)然后,主电源管理单元2000mn完成取消功能的处理,将处理返回到内核K0。
(5)处理器Pn的子电源管理单元2000sn从控制处理中继单元600中接收取消请求。
(6)作为设备的子电源管理单元2000sn执行取消请求所需的处理,并且访问中断设备3000B以向处理器P0通知停止的完成。
(7)主电源管理单元2000mn接收中断,以便将设备的状态(处理器Pn的状态)改变为停止状态,并访问电源管理设备3000A,以切断处理器Pn的电能。
当在上述操作中,处理器Pn的停止时间较早时,主电源管理单元2000mn可以在等待处理(5)到(7)完成之后再执行处理(4),而不立即执行处理(4)。
尽管已经针对响应取消请求来停止处理器的情况进行了前面的描述,例如,可以通过将“取消”改变为“挂起”,由与上面所述相同的处理来实现响应挂起请求、使处于激活状态的处理器进入未激活状态。
已经针对由处理器P0的进程执行一个其他处理器Pn的探查处理和取消处理的情况进行了前面的描述,还可以根据所有其他处理器P1~Pn或部分的(多个)其他处理器的探查请求或取消请求,针对相互并行的每个处理器来执行上述探查处理和取消处理。
此外,将参考图38来描述停止处理器P0自身的操作。
(1)在处理器P0上的进程通过内核K0来请求取消作为设备的处理器P0。
(2)内核K0调用主电源管理单元2000m0的取消功能。
(3)主电源管理单元2000mn确认所有的其他主电源管理单元完成了取消处理而处于停止状态(确认切断了相应处理器P1~Pn的电能),并且将设备的状态(处理器P0的状态)改变为停止状态以执行取消所需的处理。
(4)主电源管理单元2000m0将设备的状态(处理器P0的状态)改变为停止状态,并访问电源管理设备3000A,以切断处理器P0的电能。
在进行了探查请求和取消请求时,目标处理器处于过渡状态的情况下,能够忽略请求而不接收所有的请求,或使探查请求和取消请求保持等待,以便在处理器的电能状态固定之后来处理这些请求。
响应来自所有处理器的取消请求,针对处理器P1~Pn执行图37所示的取消处理,同时针对处理器P0执行图38所示的处理。
在根据第二实施例的电源管理系统中,通过使用除了上述探查、取消、挂起和重新开始请求之外的比例请求(scale request),可以改变每个处理器的电源电压和时钟频率。
上述的第一和第二实施例同样可以应用于除第三实例的并行处理系统之外的其他系统。通过在每个处理器中设置能够在进程之间进行通信的进程间通信单元1000P0~1000Pn,同样可以实现将根据本发明的第一和第二实施例的电源管理系统应用于第一和第二实例的并行处理系统。
此外,通过具有并行处理系统、OS服务单元、控制处理中继单元、代理单元和进程间通信单元的相应功能的并行处理程序,可以实现上述根据各个实施例的并行处理系统,此外,通过具有主电源管理单元和子电源管理单元的功能的电源管理程序,可以实现电源管理系统。将这些程序存储在磁盘、半导体存储器或其他记录介质中,并且从记录介质加载到计算机处理设备上以控制计算机处理设备的操作,从而实现上述的相应功能。
尽管已经参考前述的优选实施例和特定实例描述了本发明,本发明并不一定局限于上述实施例和特定实例,并且可以在本发明的技术思想的范围内在变体中实现。
如前所述,在利用单处理器的OS的并行处理器系统中,其中在多处理器上操作单处理器的OS和现有应用程序,而不对其进行修改,以使现有应用程序能够实现利用多处理器的并行处理,本发明利用简单的控制实现了电源管理,而不必如在利用多处理器的OS的并行处理系统中所需的那样,需要复杂的控制,并且不需要对OS进行巨大的修改。
尽管已经针对典型实施例示出和描述了本发明,本领域的技术人员应该理解,在不脱离本发明的精神和范围的情况下,可以进行前述和各种其他的改变、省略和添加。因此,本发明不应该被理解为限定于以上所述的特定实例,而是可以包括针对所附权利要求所提出的特征所涵盖的范围及其等价物内能够具体实现的所有可能的实施例。
Claims (33)
1.一种并行处理系统,用于在多个处理器上操作单处理器操作系统和单处理器应用程序,并针对所述应用程序,实现所述多个处理器的并行处理,其中
所述多个处理器至少包括被逻辑划分的第一和第二处理器组,
所述第一处理器组中的至少一个处理器包括并行处理单元,所述并行处理单元包括:第一装置,用于向所述第二处理器组中的至少一个处理器发送针对与所述第一处理器组中的至少一个处理器有关的工作单元的请求,以及
所述第二处理器组中的所述处理器包括:第二装置,用于根据所述请求、作为新工作单元来控制所述工作单元,其中
所述第一处理器组中的所述处理器包括电源管理单元,所述电源管理单元包括:第三装置,用于接收用于激活或停止所述第二处理器组中的某一处理器的请求;以及第四装置,用于根据所述请求,执行用于激活或停止所请求的处理器的处理。
2.根据权利要求1所述的并行处理系统,其特征在于包括:
在所述第一处理器组的主电源管理单元,与每个处理器的电源管理有关,用于管理所述第二处理器组的所述处理器的电源状态,以及向所述单处理器操作系统进行用于改变电源状态的请求;以及
在所述第二处理器组的子电源管理单元,用于执行所述激活或停止所需的处理,以及向所述主电源管理单元进行激活或停止其他处理器的请求。
3.根据权利要求1所述的并行处理系统,其特征在于
用于激活或停止处理器的所述请求是引导请求或暂停请求。
4.根据权利要求1所述的并行处理系统,其特征在于包括:
在所述第一处理器组的主电源管理单元,与每个处理器的电源管理有关,用于管理所述第二处理器组的所述处理器的电源状态,以及向所述单处理器操作系统进行用于改变电源状态的请求;以及
在所述第二处理器组的子电源管理单元,用于执行所述激活或停止所需的处理,以及向所述主电源管理单元进行激活或停止其他处理器的请求,其中,
用于激活或停止处理器的所述请求是引导请求或暂停请求。
5.根据权利要求1所述的并行处理系统,其特征在于包括:
主电源管理单元,作为所述单处理器操作系统的设备,安装在所述第一处理器组的所述单处理器操作系统上,以便管理所述第二处理器组的所述处理器的电源状态,以及利用预先设置在单处理器操作系统中的针对设备管理的预定请求作为针对电源管理的请求,以便进行改变电源状态的请求;以及
子电源管理单元,设置在所述第二处理器组的所述单处理器操作系统中,以便执行所述激活或停止所需的处理,以及在激活时,向所述主电源管理单元传送激活消息。
6.根据权利要求5所述的并行处理系统,其特征在于
与在所述第二处理器组的各个处理器相对应地设置多个所述主电源管理单元。
7.根据权利要求5所述的并行处理系统,其特征在于
读取作为设备管理的预定请求的探查或取消请求,作为用于激活或停止处理器的所述请求。
8.根据权利要求5所述的并行处理系统,其特征在于
与在所述第二处理器组的各个处理器相对应地设置多个所述主电源管理单元;以及
读取作为设备管理的预定请求的探查或取消请求,作为用于激活或停止处理器的所述请求。
9.根据权利要求1所述的并行处理系统,其特征在于包括:
在所述第一处理器组的主电源管理单元,与每个处理器的电源管理有关,用于管理所述第二处理器组的所述处理器的电源状态,以及向所述单处理器操作系统进行用于改变电源状态的请求;
在所述第二处理器组的子电源管理单元,用于执行所述激活或停止所需的处理,以及向所述主电源管理单元进行激活或停止其他处理器的请求;以及
进程间通信单元,设置在所述第一处理器组的处理器和所述第二处理器组的处理器中,以便实现在所述第一处理器组的处理器上和在所述第二处理器组的处理器上的工作单元之间的同步处理和数据传送和接收,其中,
所述进程间通信单元执行在所述主电源管理单元和所述子电源管理单元之间的电源管理的同步处理。
10.根据权利要求1所述的并行处理系统,其特征在于包括:
在所述第一处理器组的主电源管理单元,与每个处理器的电源管理有关,用于管理所述第二处理器组的所述处理器的电源状态,以及向所述单处理器操作系统进行用于改变电源状态的请求;以及
在所述第二处理器组的子电源管理单元,用于执行所述激活或停止所需的处理,以及向所述主电源管理单元进行激活或停止其他处理器的请求,
将所述主电源管理单元和所述子电源管理单元合并为模块。
11.根据权利要求1所述的并行处理系统,其特征在于
当处理器正在执行激活或停止请求时,对发布给该处理器的新请求进行排队,直到完成在先请求为止。
12.根据权利要求1所述的并行处理系统,其特征在于
当进行所述激活或停止请求的所述处理器处于在激活途中或在停止途中时,忽略所述激活或停止请求。
13.根据权利要求1所述的并行处理系统,其特征在于包括:
在所述第一处理器组的主电源管理单元,与每个处理器的电源管理有关,用于管理所述第二处理器组的所述处理器的电源状态,以及向所述单处理器操作系统进行用于改变电源状态的请求;以及
在所述第二处理器组的子电源管理单元,用于执行所述激活或停止所需的处理,以及向所述主电源管理单元进行激活或停止其他处理器的请求,其中,
在进行所述处理器激活请求时,已经接收到请求的所述主电源管理单元激活所请求的处理器,以及
从激活处理器的所述子电源管理单元接收激活完成的通知,以便将所述激活处理器的电源状态改变为激活状态。
14.根据权利要求1所述的并行处理系统,其特征在于包括:
在所述第一处理器组的主电源管理单元,与每个处理器的电源管理有关,用于管理所述第二处理器组的所述处理器的电源状态,以及向所述单处理器操作系统进行用于改变电源状态的请求;以及
在所述第二处理器组的子电源管理单元,用于执行所述激活或停止所需的处理,以及向所述主电源管理单元进行激活或停止其他处理器的请求,其中,
在进行所述处理器停止请求时,已经接收到请求的所述主电源管理单元请求所请求处理器的所述子电源管理单元执行停止所需的处理,以及
从所述所请求处理器接收处理完成的通知,以停止所述所请求处理器,并且将请求激活的处理器的电源状态改变为停止状态。
15.根据权利要求1所述的并行处理系统,其特征在于包括:
在所述第一处理器组的主电源管理单元,与每个处理器的电源管理有关,用于管理所述第二处理器组的所述处理器的电源状态,以及向所述单处理器操作系统进行用于改变电源状态的请求;以及
在所述第二处理器组的子电源管理单元,用于执行所述激活或停止所需的处理,以及向所述主电源管理单元进行激活或停止其他处理器的请求,其中,
在进行停止所有处理器的请求时,已经接收到请求的所述主电源管理单元请求其他处理器的所述子电源管理单元执行停止所需的处理,以及从所述其他处理器中接收处理完成的通知以停止所述其他处理器,之后,控制所述单处理器操作系统的设备以停止所述主电源管理单元所属的处理器。
16.根据权利要求1所述的并行处理系统,其特征在于
除了激活或停止处理器之外,接收暂停或返回处理器的请求以控制所述单处理器操作系统的设备,从而暂停或返回所请求的处理器;以及
被请求进行所述暂停或返回的处理器根据来自所述第一处理器组的通知,执行所述暂停或返回所需的处理。
17.根据权利要求1所述的并行处理系统,其特征在于
除了激活或停止处理器之外,接收用于改变处理器的电源电压或时钟频率的请求以控制所述单处理器操作系统的设备,从而改变所请求的处理器的电源电压或时钟频率,以及
被请求改变所述电源电压或时钟频率的处理器根据来自所述第一处理器组的通知,执行用于改变所述电源电压或时钟频率所需的处理。
18.一种并行处理方法,用于在执行多个处理器的并行处理的系统上操作单处理器操作系统和单处理器应用程序,并针对所述应用程序,实现所述多处理器的并行处理,其中
所述多个处理器至少包括被逻辑划分的第一和第二处理器组,其中
所述第一处理器组中的处理器
提取所述应用程序内能够在所述第一处理器组的处理器上并行化的工作单元,
控制所述工作单元,作为所述第二处理器组的处理器上的新工作单元,
接收用于激活或停止所述第二处理器组中的某一处理器的请求,以及
根据所述请求,执行用于激活或停止所请求的处理器的处理。
19.根据权利要求18所述的并行处理方法,其特征在于包括:
在所述第一处理器组的主电源管理步骤,与每个处理器的电源管理有关,用于管理所述第二处理器组的所述处理器的电源状态,以及向所述单处理器操作系统进行用于改变电源状态的请求;以及
在所述第二处理器组的子电源管理步骤,用于执行所述激活或停止所需的处理,以及向所述主电源管理进行激活或停止其他处理器的请求。
20.根据权利要求18所述的并行处理方法,其特征在于
用于激活或停止处理器的所述请求是引导请求或暂停请求。
21.根据权利要求18所述的并行处理方法,其特征在于包括:
在所述第一处理器组的主电源管理步骤,与每个处理器的电源管理有关,用于管理所述第二处理器组的所述处理器的电源状态,以及向所述单处理器操作系统进行用于改变电源状态的请求;以及
在所述第二处理器组的子电源管理步骤,用于执行所述激活或停止所需的处理,以及向所述主电源管理进行激活或停止其他处理器的请求,其中,
用于激活或停止处理器的所述请求是引导请求或暂停请求。
22.根据权利要求18所述的并行处理方法,其特征在于包括:
主电源管理步骤,用于管理所述第二处理器组的所述处理器的电源状态,以及利用预先设置在单处理器操作系统中的针对设备管理的预定请求作为针对电源管理的请求,以便进行改变电源状态的请求;以及
子电源管理步骤,用于执行所述激活或停止所需的处理,以及在激活时,向所述主电源管理传送激活消息。
23.根据权利要求22所述的并行处理方法,其特征在于
读取作为设备管理的预定请求的探查或取消请求,作为用于激活或停止处理器的所述请求。
24.根据权利要求18所述的并行处理方法,其特征在于包括:
在所述第一处理器组的主电源管理步骤,与每个处理器的电源管理有关,用于管理所述第二处理器组的所述处理器的电源状态,以及向所述单处理器操作系统进行用于改变电源状态的请求;
在所述第二处理器组的子电源管理步骤,用于执行所述激活或停止所需的处理,以及向所述主电源管理进行激活或停止其他处理器的请求;以及
设置进程间通信单元在所述第一处理器组的处理器和所述第二处理器组的处理器中,以便实现在所述第一处理器组的处理器上和在所述第二处理器组的处理器上的工作单元之间的同步处理和数据传送和接收,其中,
所述进程间通信单元执行在所述主电源管理和所述子电源管理之间的电源管理的同步处理。
25.根据权利要求18所述的并行处理方法,其特征在于包括:
在所述第一处理器组的主电源管理步骤,与每个处理器的电源管理有关,用于管理所述第二处理器组的所述处理器的电源状态,以及向所述单处理器操作系统进行用于改变电源状态的请求;以及
在所述第二处理器组的子电源管理步骤,用于执行所述激活或停止所需的处理,以及向所述主电源管理进行激活或停止其他处理器的请求,
将所述主电源管理和所述子电源管理合并为模块。
26.根据权利要求18所述的并行处理方法,其特征在于
当处理器正在执行激活或停止请求时,对发布给该处理器的新请求进行排队,直到完成在先请求为止。
27.根据权利要求18所述的并行处理方法,其特征在于
当进行所述激活或停止请求的所述处理器处于在激活途中或在停止途中时,忽略所述激活或停止请求。
28.根据权利要求18所述的并行处理方法,其特征在于包括:
在所述第一处理器组的主电源管理步骤,与每个处理器的电源管理有关,用于管理所述第二处理器组的所述处理器的电源状态;以及向所述单处理器操作系统进行用于改变电源状态的请求;以及
在所述第二处理器组的子电源管理步骤,用于执行所述激活或停止所需的处理,以及向所述主电源管理进行激活或停止其他处理器的请求,其中,
在进行所述处理器激活请求时,已经接收到请求的所述主电源管理激活所请求的处理器,以及
从激活处理器的所述子电源管理接收激活完成的通知,以便将所述激活处理器的电源状态改变为激活状态。
29.根据权利要求18所述的并行处理方法,其特征在于包括:
在所述第一处理器组的主电源管理步骤,与每个处理器的电源管理有关,用于管理所述第二处理器组的所述处理器的电源状态,以及向所述单处理器操作系统进行用于改变电源状态的请求;以及
在所述第二处理器组的子电源管理步骤,用于执行所述激活或停止所需的处理,以及向所述主电源管理进行激活或停止其他处理器的请求,其中,
在进行所述处理器停止请求时,已经接收到请求的所述主电源管理请求所请求处理器的所述子电源管理执行停止所需的处理,以及
从所述所请求处理器接收处理完成的通知,以停止所述所请求处理器,并且将请求激活的处理器的电源状态改变为停止状态。
30.根据权利要求18所述的并行处理方法,其特征在于包括:
在所述第一处理器组的主电源管理步骤,与每个处理器的电源管理有关,用于管理所述第二处理器组的所述处理器的电源状态,以及向所述单处理器操作系统进行用于改变电源状态的请求;以及
在所述第二处理器组的子电源管理步骤,用于执行所述激活或停止所需的处理,以及向所述主电源管理进行激活或停止其他处理器的请求,其中,
在进行停止所有处理器的请求时,已经接收到请求的所述主电源管理请求其他处理器的所述子电源管理执行停止所需的处理,以及从所述其他处理器中接收处理完成的通知以停止所述其他处理器,之后,控制所述单处理器操作系统的设备以停止所述主电源管理所属的处理器。
31.根据权利要求18所述的并行处理方法,其特征在于
除了激活或停止处理器之外,接收暂停或返回处理器的请求以控制所述单处理器操作系统的设备,从而暂停或返回所请求的处理器;以及
被请求进行所述暂停或返回的处理器根据来自所述第一处理器组的通知,执行所述暂停或返回所需的处理。
32.根据权利要求18所述的并行处理方法,其特征在于
除了激活或停止处理器之外,接收用于改变处理器的电源电压或时钟频率的请求以控制所述单处理器操作系统的设备,从而改变所请求的处理器的电源电压或时钟频率,以及
被请求改变所述电源电压或时钟频率的处理器根据来自所述第一处理器组的通知,执行用于改变所述电源电压或时钟频率所需的处理。
33.一种并行处理系统,用于在多个处理器上操作单处理器操作系统和单处理器应用程序,并针对所述应用程序,实现所述多个处理器的并行处理,其中
所述多个处理器中的一个处理器包括并行处理单元,所述并行处理单元包括:第一装置,用于向所述多个处理器中的另一处理器发送针对与所述一个处理器有关的工作单元的请求,以及
所述另一处理器包括:第二装置,用于根据所述请求、作为新工作单元来控制所述工作单元,其中
所述一个处理器包括电源管理单元,所述电源管理单元包括:第三装置,用于接收用于激活或停止所述另一处理器的请求;以及第四装置,用于根据所述请求,执行用于激活或停止所请求的处理器的处理。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003149859A JP4196333B2 (ja) | 2003-05-27 | 2003-05-27 | 並列処理システム及び並列処理プログラム |
JP2003149859 | 2003-05-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1573656A CN1573656A (zh) | 2005-02-02 |
CN100485583C true CN100485583C (zh) | 2009-05-06 |
Family
ID=32677674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100476211A Expired - Fee Related CN100485583C (zh) | 2003-05-27 | 2004-05-27 | 并行处理系统中的电源管理系统及电源管理程序 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7325148B2 (zh) |
JP (1) | JP4196333B2 (zh) |
KR (1) | KR100708952B1 (zh) |
CN (1) | CN100485583C (zh) |
GB (1) | GB2402519B (zh) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4051703B2 (ja) * | 2003-03-31 | 2008-02-27 | 日本電気株式会社 | シングルプロセッサ向けosによる並列処理システム、並列処理プログラム |
JP4062441B2 (ja) * | 2003-07-18 | 2008-03-19 | 日本電気株式会社 | 並列処理システム及び並列処理プログラム |
US7398403B2 (en) * | 2004-07-01 | 2008-07-08 | Matsushita Electric Industrial Co., Ltd. | Multiprocessor control apparatus, control method thereof, and integrated circuit |
US8020141B2 (en) | 2004-12-06 | 2011-09-13 | Microsoft Corporation | Operating-system process construction |
US8849968B2 (en) | 2005-06-20 | 2014-09-30 | Microsoft Corporation | Secure and stable hosting of third-party extensions to web services |
US20060294401A1 (en) * | 2005-06-24 | 2006-12-28 | Dell Products L.P. | Power management of multiple processors |
US8074231B2 (en) | 2005-10-26 | 2011-12-06 | Microsoft Corporation | Configuration of isolated extensions and device drivers |
US7778822B2 (en) * | 2006-05-19 | 2010-08-17 | Sony Ericsson Mobile Communications Ab | Allocating audio processing among a plurality of processing units with a global synchronization pulse |
US7739528B2 (en) * | 2006-06-09 | 2010-06-15 | Broadcom Corporation | Method for managing and controlling the low power modes for an integrated circuit device |
US8032898B2 (en) * | 2006-06-30 | 2011-10-04 | Microsoft Corporation | Kernel interface with categorized kernel objects |
JP4748057B2 (ja) * | 2006-12-28 | 2011-08-17 | ソニー株式会社 | 情報処理装置、起動方法、およびプログラム |
US20080244507A1 (en) * | 2007-03-30 | 2008-10-02 | Microsoft Corporation | Homogeneous Programming For Heterogeneous Multiprocessor Systems |
US8789063B2 (en) | 2007-03-30 | 2014-07-22 | Microsoft Corporation | Master and subordinate operating system kernels for heterogeneous multiprocessor systems |
US8086885B2 (en) * | 2007-12-14 | 2011-12-27 | Nokia Corporation | Runtime control of system performance |
US8171321B2 (en) * | 2007-12-26 | 2012-05-01 | Intel Corporation | Method and apparatus for cost and power efficient, scalable operating system independent services |
US7984317B2 (en) | 2008-03-24 | 2011-07-19 | Apple Inc. | Hardware-based power management of functional blocks |
JP2009266178A (ja) * | 2008-04-30 | 2009-11-12 | Fujitsu Ltd | 中継装置および中継システム |
JP4934642B2 (ja) * | 2008-06-11 | 2012-05-16 | 株式会社日立製作所 | 計算機システム |
JP4868012B2 (ja) * | 2009-03-09 | 2012-02-01 | 日本電気株式会社 | コンピュータシステム、コンピュータシステムの制御方法、及びプログラム |
JP2011086061A (ja) * | 2009-10-14 | 2011-04-28 | Mitsubishi Electric Corp | 並列信号処理装置 |
US9501705B2 (en) * | 2009-12-15 | 2016-11-22 | Micron Technology, Inc. | Methods and apparatuses for reducing power consumption in a pattern recognition processor |
KR101155202B1 (ko) | 2009-12-24 | 2012-06-13 | 포항공과대학교 산학협력단 | 멀티 코어 프로세서의 전력 관리 방법, 멀티 코어 프로세서의 전력 관리 방법이 기록된 기록매체 및 이를 실행하는 멀티 코어 프로세서 시스템 |
JP2011170709A (ja) * | 2010-02-19 | 2011-09-01 | Ricoh Co Ltd | ネットワーク制御装置、画像形成装置、画像形成システム、省エネ制御方法、及び省エネ制御プログラム |
CN103180819A (zh) * | 2010-11-01 | 2013-06-26 | 惠普发展公司,有限责任合伙企业 | 多处理器计算机系统和方法 |
US8862905B2 (en) * | 2011-02-17 | 2014-10-14 | Oracle International Corporation | Collecting and analysing telemetry data to dynamically cap power and temperature of a computer system by specifying virtual duty cycles for processes executing on a processor |
JPWO2012120654A1 (ja) * | 2011-03-08 | 2014-07-07 | 富士通株式会社 | タスクスケジューリング方法およびマルチコアシステム |
US8972763B2 (en) | 2011-12-05 | 2015-03-03 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including determining an optimal power state of the apparatus based on residency time of non-core domains in a power saving state |
WO2013115829A2 (en) | 2012-02-04 | 2013-08-08 | Empire Technology Development Llc | Core-level dynamic voltage and frequency scaling in a chip multiprocessor |
WO2013117225A1 (en) * | 2012-02-09 | 2013-08-15 | Telefonaktiebolaget L M Ericsson (Publ) | Distributed mechanism for minimizing resource consumption |
JP6380261B2 (ja) | 2015-06-29 | 2018-08-29 | 京セラドキュメントソリューションズ株式会社 | 電子機器および給電制御プログラム |
EP3611615A4 (en) * | 2017-04-19 | 2020-04-29 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | METHOD AND DEVICE FOR ACCELERATED START-UP OF AN APPLICATION AND TERMINAL |
US10528118B2 (en) * | 2017-04-21 | 2020-01-07 | Intel Corporation | Dynamically power on/off register files during execution |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2570852B1 (fr) * | 1984-09-21 | 1989-12-15 | Trace | Reseau d'ordinateurs pilotes |
JPH0778785B2 (ja) * | 1986-03-29 | 1995-08-23 | 株式会社東芝 | プロセッサ選択方法 |
US5142684A (en) | 1989-06-23 | 1992-08-25 | Hand Held Products, Inc. | Power conservation in microprocessor controlled devices |
JP2769367B2 (ja) | 1989-09-28 | 1998-06-25 | 株式会社日立製作所 | マルチプロセッサスケジューリング方法 |
JP2831083B2 (ja) | 1990-03-08 | 1998-12-02 | 株式会社日立製作所 | マルチプロセッサシステムおよび割り込み制御装置 |
JPH07219913A (ja) * | 1994-01-28 | 1995-08-18 | Fujitsu Ltd | マルチプロセッサシステムの制御方法及び装置 |
KR100326156B1 (ko) * | 1995-04-13 | 2002-06-29 | 윤종용 | 듀얼프로세서간인터페이스장치 |
US5940785A (en) * | 1996-04-29 | 1999-08-17 | International Business Machines Corporation | Performance-temperature optimization by cooperatively varying the voltage and frequency of a circuit |
JPH1027043A (ja) | 1996-07-09 | 1998-01-27 | I S A:Kk | ネットワーク機能を有する起動停止制御装置 |
US5790817A (en) * | 1996-09-25 | 1998-08-04 | Advanced Micro Devices, Inc. | Configurable digital wireless and wired communications system architecture for implementing baseband functionality |
KR19980027320A (ko) * | 1996-10-15 | 1998-07-15 | 김광호 | 멀티 프로세서 컴퓨터 시스템 |
US6192391B1 (en) * | 1997-05-30 | 2001-02-20 | Nec Corporation | Process stop method and apparatus for a distributed memory multi-processor system |
KR100258080B1 (ko) * | 1997-12-17 | 2000-06-01 | 이계철 | 입출력 동작 비교에 의한 이중화 제어장치 |
JPH11202988A (ja) | 1998-01-13 | 1999-07-30 | Hitachi Ltd | システム消費電力制御方法 |
US6141762A (en) * | 1998-08-03 | 2000-10-31 | Nicol; Christopher J. | Power reduction in a multiprocessor digital signal processor based on processor load |
JP2001109729A (ja) * | 1999-10-12 | 2001-04-20 | Nec Corp | マルチプロセッサシステムにおける消費電力制御装置および方法 |
JP2002099433A (ja) * | 2000-09-22 | 2002-04-05 | Sony Corp | 演算処理システム及び演算処理制御方法、タスク管理システム及びタスク管理方法、並びに記憶媒体 |
US6993571B2 (en) * | 2001-08-16 | 2006-01-31 | International Business Machines Corporation | Power conservation in a server cluster |
JP2003058515A (ja) | 2001-08-21 | 2003-02-28 | Nippon Telegr & Teleph Corp <Ntt> | プロセッサ間コマンド処理装置、疎結合マルチプロセッサ装置およびコマンド処理方法 |
US7065641B2 (en) * | 2002-06-13 | 2006-06-20 | Intel Corporation | Weighted processor selection apparatus and method for use in multiprocessor systems |
-
2003
- 2003-05-27 JP JP2003149859A patent/JP4196333B2/ja not_active Expired - Fee Related
-
2004
- 2004-05-25 KR KR1020040037473A patent/KR100708952B1/ko not_active IP Right Cessation
- 2004-05-26 GB GB0411814A patent/GB2402519B/en not_active Expired - Fee Related
- 2004-05-26 US US10/853,656 patent/US7325148B2/en active Active
- 2004-05-27 CN CNB2004100476211A patent/CN100485583C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP4196333B2 (ja) | 2008-12-17 |
US7325148B2 (en) | 2008-01-29 |
GB2402519B (en) | 2006-04-26 |
GB0411814D0 (en) | 2004-06-30 |
KR20040102335A (ko) | 2004-12-04 |
CN1573656A (zh) | 2005-02-02 |
US20040268171A1 (en) | 2004-12-30 |
JP2004355153A (ja) | 2004-12-16 |
GB2402519A (en) | 2004-12-08 |
KR100708952B1 (ko) | 2007-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100485583C (zh) | 并行处理系统中的电源管理系统及电源管理程序 | |
CN1323364C (zh) | 利用单处理器操作系统的并行处理系统及并行处理方法 | |
CN100565494C (zh) | 单处理器操作系统并行处理系统中的安全管理系统 | |
CN100511206C (zh) | 应用单处理器操作系统的并行处理系统中的处理器间通信系统 | |
JP4072271B2 (ja) | 複数のオペレーティングシステムを実行する計算機 | |
US5448734A (en) | Selective distribution of messages using named pipes | |
CN1327347C (zh) | 在多处理环境中执行进程 | |
CN100449478C (zh) | 用于实时多线程处理的方法和装置 | |
US6754736B1 (en) | Information processing apparatus, data inputting/outputting method, and program storage medium therefor | |
JP2000330806A (ja) | 計算機システム | |
US6226694B1 (en) | Achieving consistency and synchronization among multiple data stores that cooperate within a single system in the absence of transaction monitoring | |
CN104471523A (zh) | 计算机系统及其控制方法 | |
CN103201720A (zh) | 虚拟计算机控制装置、虚拟计算机控制方法、虚拟计算机控制程序以及集成电路 | |
US20030014558A1 (en) | Batch interrupts handling device, virtual shared memory and multiple concurrent processing device | |
JP2001236330A (ja) | データ通信方法及びデータ通信装置、並びにプログラム記憶媒体 | |
EP0884682A2 (en) | Cache memory management method for real time operating system | |
KR950014163B1 (ko) | 분산 프로그램을 스택하기 위한 방법 및 장치 | |
US20090019259A1 (en) | Multiprocessing method and multiprocessor system | |
JPH02139630A (ja) | オンラインタスク入替え装置 | |
JP2848172B2 (ja) | 入出力制御装置 | |
KR19990053525A (ko) | 실시간 시스템의 자원 공유 방법 | |
JPH04167152A (ja) | 空きメモリ管理方式 | |
Liao et al. | The THUDSOS distributed operating system | |
JP2000235553A (ja) | マルチプロセッサシステム | |
JPH03143055A (ja) | ネットワークシステムにおける遠隔診断方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090506 Termination date: 20150527 |
|
EXPY | Termination of patent right or utility model |