在多线程数据处理装置中的事件监控的制作方法

文档序号:10686950阅读:178来源:国知局
在多线程数据处理装置中的事件监控的制作方法
【专利摘要】本公开涉及在多线程数据处理装置中的事件监控。在执行多线程数据处理的装置中,事件处理电路自数据处理电路接收指示已在数据处理操作期间发生的事件的事件信息。可见性配置储存器保持一组可见性配置值,各可见性配置值与多个线程中的一线程相关联且事件处理电路调适此电路对事件信息的使用以限制事件信息对线程的软件的可见性,这些线程不同于当产生事件信息的线程的可见性配置值具有预定值时产生事件信息的线程。如此允许支持多线程事件监控,同时保护事件信息不受希望将其可见性对其他线程的软件限制的特定线程的影响。
【专利说明】
在多线程数据处理装置中的事件监控
技术领域
[0001]本公开关于一种数据处理装置。更特定言之,本公开关于可执行多线程数据处理操作的数据处理装置。
【背景技术】
[0002]已知提供具有执行多线程数据处理能力的数据处理装置,根据此数据处理装置,软件的多个线程藉由多线程数据处理装置的数据处理电路处理。数据处理装置随后根据经定义的方案在诸线程之间切换,以在由各线程中的指令定义的数据处理操作中前进。例如,此举可涉及时分复用方法,且亦可涉及当阻止第一线程时自第一线程至第二线程的上下文切换,例如同时等待由负载操作请求的数据自内存返回。另一方法为同时多线程处理,其中处理器在各循环中根据自所有线程可用的指令集确定要执行哪个循环,且可因此同时地执行来自相同线程的指令。存在本领域普通技术人员将熟悉的用于处理数据处理装置中的多个线程的各种已知技术。进一步已知提供在数据处理装置之内的各种类型的监控能力,此能力可收集与数据处理装置的数据处理电路正在执行的数据处理操作有关的事件信息。

【发明内容】

[0003]自第一方面来看,本发明的技术提供一种用于多线程数据处理的装置,此装置包含:数据处理电路,用以对多个线程中的每一线程执行数据处理操作;事件处理电路,用以自数据处理电路接收指示在数据处理操作期间已发生的事件的事件信息;及可见性配置储存器,用以保持一组可见性配置值,每一可见性配置值与多个线程中的一线程相关联,其中事件处理电路响应于接收到事件信息以调适此电路对事件信息的使用,以限制该事件信息对以下线程的软件的可见性:这些线程不同于当产生事件信息的线程的可见性配置值具有预定值时产生事件信息的线程。
[0004]自第二方面来看,本发明的技术提供一种多线程数据处理的方法,此方法包含以下步骤:对多个线程中的每一线程执行数据处理操作;储存一组可见性配置值,每一可见性配置值与多个线程中的一线程相关联;接收指示在数据处理操作期间已发生的事件的事件信息;及调适对事件信息的使用,以限制该事件信息对以下线程的软件的可见性:这些线程不同于当产生事件信息的线程的可见性配置值具有预定值时产生事件信息的线程。
[0005]自第三方面来看,本发明的技术提供一种用于多线程数据处理的装置,此处理包含以下步骤:对多个线程中的每一线程执行数据处理操作;储存一组可见性配置值,每一可见性配置值与多个线程中的一线程相关联;接收指示在数据处理操作期间已发生的事件的事件信息;及调适对事件信息的使用,以限制该事件信息对以下线程的软件的可见性:这些线程不同于当产生事件信息的线程的可见性配置值具有预定值时产生事件信息的线程。
[0006]自第四方面来看,本发明的技术提供一种储存于非瞬时形式的软件中的计算机可读存储介质,当此非瞬时形式的软件在计算装置执行时,引起该计算装置执行第二方面的方法。
[0007]自第五方面来看,本发明的技术提供一种软件,当该软件在计算装置上执行时,引起该计算装置执行第二方面的方法。
【附图说明】
[0008]本发明的技术将仅举例而言参照如在附图中所示的本发明的实施例进一步描述,在这些附图中:
[0009]图1示意地图示在一实施例中的用于多线程数据处理的装置;
[0010]图2A、图2B及图2C图示在一些实施例中,在由多线程数据处理装置执行的不同线程之间用于控制事件计数的可见性的可见性配置值的使用的不同实例;
[0011]图3A、图3B、图3C及图3D图示在一些实施例中,于正在执行的四个线程之间的四种不同类型的可见性配置值及产生四种不同式样的事件计数的这些可见性配置值的示例性值;
[0012]图4示意地图示在一实施例中,藉由事件处理电路的事件信息的接收及基于经接收的事件信息及可见性配置值来收集事件计数信息的该事件处理电路的配置。
[0013]图5为图示当执行一实施例的方法以确定特定计数器是否应计数来源于事件信息的事件时所采取的一系列步骤的流程图;
[0014I图6A示意地图示在一实施例的装置中实施的四个执行位准(特权位准);及
[0015]图6B示意地图示在一实施例中的装置至非安全世界及安全世界的细分。
【具体实施方式】
[0016]至少一些实施例提供用于多线程数据处理的装置,此装置包含:数据处理电路,用以对多个线程中的每一线程执行数据处理操作;事件处理电路,用以自数据处理电路接收指示在数据处理操作期间已发生的事件的事件信息;及可见性配置储存器,用以保持一组可见性配置值,每一可见性配置值与多个线程中的一线程相关联,其中事件处理电路响应于接收到事件信息以调适此电路对事件信息的使用,以限制线程的软件对该事件信息的可见性,这些线程不同于当产生事件信息的线程的可见性配置值具有预定值时产生事件信息的线程。
[0017]自数据处理电路接收事件信息以收集关于该数据处理电路的数据处理操作的信息的事件处理电路已由本发明的技术识别以呈现在多线程数据处理装置的上下文中的潜在安全性弱点。例如,正在藉由数据处理电路执行的多个线程可在由数据处理装置支持的不同操作系统上执行,因为起源于一操作系统的事件信息需要对其他操作系统不可见。此举的一实例为其中正在一操作系统中执行的一线程正在执行关于此操作系统需要提供保护的数据的数据处理,诸如密码上下文中的私人密匙或需要小心保护的特定数据内容(例如,个人资料)。尽管事件信息可能仅与针对似乎不具有安全性含义(诸如快取未中)的每一线程进行的数据处理操作期间发生的事件相关,但是本发明的技术认识到,即使此简单的基于硬件的信息也可能以某些方式危及关于对将得以小心保护的数据执行数据处理操作的线程所维持的所需安全性。
[0018]本发明的技术藉由提供可见性配置储存器(例如,以系统控制寄存器的形式)来同时识别且解决此问题,此可见性配置储存器保持一组可见性配置值,各可见性配置值与多个线程中的一个线程相关联。若对于给定线程保持的可见性配置值采用指示事件信息的可见性应得以限制的特定(预定)值,则自数据处理电路接收与数据处理电路执行的数据处理操作有关的事件信息的事件处理电路可随后采取步骤以确保与该线程的执行有关的事件信息的可见性对于除了产生此事件信息的线程之外的其他线程的软件受限制。产生事件信息的线程,且特定言之此线程处理的数据因此较好地得以保护。对事件信息的可见性的限制可在不同实施例中采取数个形式(如在下文中详述),例如此限制可能为绝对的,以便严格地说仅产生事件信息的线程的软件具有此事件信息的可见性,或可能稍微更加容许某些其他线程的软件亦得以允许可见此事件信息,这些其他线程被认为与产生事件信息的线程相结合而可信赖。
[0019]在一些实施例中,不仅事件信息的可见性对于除了产生事件信息的线程之外的线程的软件受限(依赖于相应可见性配置值),而且各可见性配置值对于除了此相应线程之外的线程的软件不可访问。如此为该相应线程提供进一步保护位准,因为不仅可防止其他线程的软件查看与该线程相关的事件信息,而且亦可甚至防止其他线程的软件知道为该线程保持的可见性配置值,且当然无法将其修改。
[0020]事件处理电路可采取各种形式,但在一些实施例中,事件处理电路包含至少一个事件计数器。基于自数据处理电路接收的事件信息,至少一个事件计数器可因此累加特定预定种类的事件数目的总数,基于该接收的事件信息而确定这些事件已发生。
[0021 ]在事件处理电路包含至少一个事件计数器的情况下,事件计数器的数目可变化;但是在一些实施例中,至少一个事件计数器包含对于多个线程的每一线程的事件计数器。相应地,可针对多个线程中的每一线程保持相应累积的事件计数。
[0022]虽然各事件计数器可经配置仅计数单个相应线程的事件,但是在一些实施例中,至少一个事件计数器可配置用于多线程事件计数且至少一个事件计数器计数多于一个线程的事件。因此,此多线程计数事件计数器可配置为针对事件计数的一系列方式,自仅计数较小子集的多个线程,直至计数由数据处理电路正执行的所有多个线程的事件。然而,借助于设定其相应可见性配置值至预定值,且响应于此事件处理电路不允许来自该线程的事件信息被暂存为多线程事件计数计数器中的计数,此举可受制于根据本发明的技术的附加约束,即藉由产生事件计数器所接收的事件信息的数据处理电路执行的线程可从该经多线程事件计数配置的事件计数器中排除。
[0023]因此,在一些实施例中,响应于执行多线程事件计数的至少一个事件计数器,该至少一个事件计数器对当线程的可见性配置具有预定值时产生事件信息的线程的事件不进行计数。
[0024]由可见性配置储存器保持的该组可见性配置值可采取各种形式,但是在一些实施例中,该可见性配置储存器经布置以保持单比特位(single bit)配置可见性配置值。例如,单比特位可见性配置值可藉由对于多个线程中的每一线程的可见性配置储存器保持,此多个线程藉由数据处理电路处理。因此,各线程可具有其他线程的软件的此线程的事件信息可见性,此事件信息可见性由此线程自身的相应单比特位配置可见性值定义。
[0025]在一些实施例中,可见性配置储存器经布置以保持多比特位(mult1-bit)可见性配置值,其中事件处理电路响应于接收到事件信息以调适此事件处理电路对事件信息的使用,以使得除了产生事件信息的线程之外的多个线程中的每一线程的软件的事件信息的可见性藉由针对产生事件信息的线程储存的多比特位可见性配置值的相应比特位来定义。由可见性配置储存器保持的这些多比特位可见性配置值可采取一系列形式,但是在一些实施例中,多比特位可见性配置值藉由针对多个线程中的每一线程的可见性配置储存器保持。对于各线程保持的多比特位可见性配置值可因此定义由该线程产生的事件信息是否分别对其他多个线程的每一线程上的软件可见。
[0026]可能存在线程的分组(例如具有逻辑、安全性或其他关系),在这些分组之内,认为共享事件信息是可以接受的且在一些实施例中,产生事件信息的线程被包含于线程群组中,且事件处理电路响应于接收到事件信息以调适此事件处理电路对事件信息的使用,以使得事件信息对于程的群组中的线程的软件可见且以使得事件信息对不包含于线程群组中的线程的软件不可见。因此,群组之内的线程具有在群组之内的相互事件信息可见性,且群组之外的线程不具有在群组之内的事件信息的可见性。
[0027]在一些实施例中,线程群组藉由群组识别符定义,且事件处理电路响应于接收到事件信息以使用群组识别符作为可见性配置值。换言之,对除了产生事件信息的线程之外的线程的软件的事件信息的可见性限制可藉由群组识别符自身确定,此群组识别符将线程群组特性化为群组。
[0028]在其他实施方式中,可定义线程群组的群组可见性配置值,且在这些实施例中,产生事件信息的线程被包含于线程群组中;且可见性配置值藉由线程群组的群组可见性配置值给出。
[0029]在一些实施例中,事件处理电路可利用严格的“仅产生线程”可见性规则,其中(当产生事件信息的线程的可见性配置值具有预定值时)允许可见事件信息的软件仅为产生该事件信息的线程,且在这些实施例中,事件处理电路响应于接收到事件信息以调适此事件处理电路对事件信息的使用,以使得此事件信息对线程的软件不可见,这些线程不同于当产生事件信息的线程的可见性配置值具有预定值时的产生事件信息的线程。
[0030]多个线程可经分组在一起成为至少一个线程群组,针对该至少一个线程群组,为群组整体定义可见性配置值,且因此在一些实施例中,至少一个可见性配置值对应于多个线程的线程群组,且事件处理电路响应于接收到事件信息以调适此事件处理电路对事件信息的使用,以使得事件信息对线程群组中的线程之外的线程的软件不可见,此线程群组包括当线程群组(包括产生事件信息的线程)的可见性配置值具有预定值时产生事件信息的线程。
[0031]以此方式的线程的分组可对应于一系列不同的逻辑且基于安全的,或其他经选择的分组,例如在一些实施例中,线程群组可经定义以对应于在装置之内使用的给定虚拟机识别符,其中数据处理电路能够支持各自由此虚拟机识别符识别的多个虚拟机。在线程经定义为属于相同虚拟机识别符分组的情况下,则这些线程将具有该此的事件信息的可见性。
[0032]在一些实施例中,数据处理电路经布置以在多个执行位准中经选择的执行位准下对多个线程中的每一线程执行数据处理操作,其中各可见性配置值对于在比经选择执行位准低的执行位准下执行的线程不可访问。因此,多个执行位准可经布置为特权阶层,较高执行位准据此可访问较低执行位准的可见性配置值,但反之则不然。
[0033]实际上,在一些实施例中,各可见性配置值皆对在与经选择执行位准相同的执行位准下执行的线程的软件不可访问。此举可特定言之在执行位准的特权阶层的下端处利用,以使得正在较低执行位准处执行的线程的软件可仅访问其自身的可见性配置值。
[0034]多个执行位准可采取各种形式,但是在一些实施例中,多个执行位准包含多个异常位准。在一些实施例中,多个执行位准包含多个安全性位准。无论特权阶层所采用的特定形式,特权阶层的完整性的维持从而藉由在这些实施例中的本发明的技术来支持。
[0035]无论执行位准可采用的形式,在一些实施例中,装置经布置以当上下文在执行位准之间切换时更新可见性配置值。如此亦有助于当装置上下文切换时维持特权阶层的完整性。
[0036]在一些实施例中,数据处理电路经布置以响应于指令执行数据处理操作且选择此数据处理电路执行的指令的子集以便归档(profiling),此归档是基于对于指令的子集产生的事件信息,其中归档包含将归档数据储存至储存单元,该归档数据包含事件信息或来源于事件信息的进一步信息,且其中数据处理电路经布置以当产生事件信息的线程的可见性配置值具有预定值时防止归档数据的储存。可因此支持用于执行指令子集的归档的能力,同时仍然保护产生事件信息的线程(藉由将可见性配置值设定至预定值),因为基于经接收的事件信息的归档数据(对于受保护的线程)将不会被储存至储存单元。防止储存归档数据的方式可有所不同,例如,此方式可包含基于可见性配置值自子集中排除指令。此方式可包含经采用以防止特定事件信息(来源于此事件信息的进一步信息)作为归档数据储存至储存单元的步骤。
[0037]至少一些实施例提供一种数据处理系统,此数据处理系统包含如在上述实施例及储存单元中的任一者中所述的装置。
[0038]至少一些实施例提供一种多线程数据处理的方法,此方法包含以下步骤:对多个线程中的每一线程执行数据处理操作;储存一组可见性配置值,每一可见性配置值与多个线程中的一线程相关联;接收指示在数据处理操作期间已发生的事件的事件信息;及调适对事件信息的使用,以限制该事件信息对线程的软件的可见性,这些线程不同于当产生事件信息的线程的可见性配置值具有预定值时产生事件信息的线程。
[0039]至少一些实施例提供一种多线程数据处理的装置,此装置包含:用于对多个线程中的每一线程执行数据处理操作的构件;储存一组可见性配置值的构件,每一可见性配置值与多个线程中的一线程相关联;自用于执行数据处理操作的构件接收指示在数据处理操作期间已发生的事件的事件信息的构件;及调适对事件信息的使用的构件,以限制该事件信息对线程的软件的可见性,这些线程不同于当产生事件信息的线程的可见性配置值具有预定值时产生事件信息的线程。
[0040]至少一些实施例提供一种以非瞬时形式储存软件的计算机可读取存储介质,当此软件在计算装置上执行时,引起此计算装置执行上述方法。
[0041]至少一些实施例提供当在计算装置上执行时引起计算装置执行上述方法的软件。
[0042]图1示意地图示在一实施例中的多线程数据处理装置。此多线程数据处理装置10具有一整体配置,数据处理电路根据此配置基于数据处理指令执行数据处理操作。在图1的实例中,数据处理电路藉由执行管线12表示,提供其提取/发出单元22以按一般技术者将熟悉的方式自内存20撷取一系列数据处理指令且以适当地发出这些数据处理指令至执行管线12中。此外,执行管线12包含最终回写(Writeback5WB)阶段12F,此阶段引起数据处理操作的结果亦按照一般技术者将熟悉的方式得以回写至内存20。数据处理装置10不仅能够执行数据处理指令的单个线程,而且经配置为多线程数据处理装置,以使得数据处理指令的多个线程可藉由数据处理装置10并行地处理,且提取/发出单元22经配置以管理这些相应多个线程的每一线程的指令的撷取与发出,且适当地为这些线程中的一者发出下一数据处理指令至执行管线12中。一般技术者将熟悉多线程数据处理装置可处理此装置的多个线程且在此多个线程之间切换的各种方式,且为了简洁起见,本文将忽略数据处理装置的操作的此方面的进一步详细描述。
[0043]当数据处理指令通过执行管线12前进时,执行管线阶段(12A至12F)的响应可引起产生事件信息,该事件信息被传递至此组计数器14。对此事件信息可具有的本质没有特定约束,且此事件信息可能关于数据处理装置10的执行管线12的操作的任何方面,或实际上关于由与更广泛的数据处理系统的组件相关的数据处理装置10接收的指示(数据处理装置10形成该更广泛的数据处理系统的一部分,例如包括在图1的实例中的内存20及高速缓存30)。
[0044]一种将事件信息用于图1的实例的方式藉由提供与执行管线12相关联的此组计数器14来实现。事件信息指示与关联于此事件信息的进一步属性信息(例如,引起事件信息产生的线程的指示)一起藉由计数器14接收自执行管线12。计数器14包含一组计数器属性电路14A及多个单独计数器14B,在图1的实例中,此多个单独计数器包含16个独立的单独计数器。基于所接收的事件信息及相关联的属性,计数器属性可引起单独计数器14B中的至少一个计数器增加其计数。参看图4及图5在下文中给出计数器属性电路14A的操作的进一步细节。计数器属性电路14A将操作的特定方式藉由计数器配置单元16来定义,此计数器配置单元在图1的实例中采用系统控制寄存器的形式,且根据本案的技术,这些寄存器可保持所示的值EVSEL〈n>.MT、EVSEL〈n>.SEL及PMCRPE〈m>.MTD,这些值的使用将参看图4描述于下文中。本发明的技术的中心在于对于各线程的值MTD( “可见性配置值”),此值的使用将参看图2A至图2C描述于下文中。
[0045]图1的数据处理装置10的配置的进一步方面藉由归档选择电路24及归档取样产生电路26提供。为了收集与数据处理装置的操作相关的归档信息,特定言之有关于特定指令藉由数据处理装置10处理的方式,归档选择电路12监控藉由提取/发出单元22撷取自内存的指令,且具有用于当那些指令中的经选择的指令通过执行管线12时致使这些经选择的指令得以标记以便归档的配置。对于已经选择用于藉由归档选择电路24归档的经标记指令,归档样品产生电路26产生归档数据,随后使得此归档数据储存在内存20中以便稍后分析。为了确定应选择何指令用于归档,归档选择电路24亦可访问系统控制寄存器;且根据本发明的技术,特定言之保持PMCRpE〈m>.MTD的系统控制寄存器,对于特定线程η的此值的设定致使该线程的指令退出归档。
[0046]图2Α至图2C给出一组十六个单独计数器(诸如在图1的多线程数据处理装置10中的十六个计数器14Β)可如何经配置以计数在多线程处理系统之内发生的事件的概观(其中正在处理四个线程)。如在图2Α至图2C中所标记,这些四个(硬件)线程藉由处理组件(processing element;PE)0至3表示。如亦可在图2A至图2C的实例中所见,线程PE O至2正在执行平台操作系统(“OS平台”),同时线程PE 3正在执行专属视频译码器。
[0047]如在图2A至图2C中可见,各线程(PE)经分配有四个计数器。在图2A中所示的实例中,分配给各PE的计数器中的两个计数器经配置用于单线程(single-threacUST)计数。这些计数器经标记为PMC 2及PMC 3。相反地,各个计数器已经配置用于多线程(mult1-threachMT) 计数, S卩: PMC O及PMC I用于PE O;PMC O用于PE 2;及PMCO用于PE 3。无阴影的计数器(用于PE I的PMC O及PMC I,及用于PE 2及PE 3的PMC I)被禁用。在图2A的实例中,对于PE 3,控制位MTD已经设定为I;而对于PE O至2,控制位MTD已经设定为O。此举自其它线程(亦即,执行OS平台的那些线程)的多线程视图中“退出”PE 3(亦即,执行视频译码器的线程)。在对于PE O至2清除了此控制位(亦即,零值)的情况下,这些线程中的每一线程的数据处理操作对于当前MT丛集(亦即,PE O至2)中的其他MT线程可见。当图2A中的操作设置藉由为OS平台提供一虚拟机(VM)且为视频译码器提供另一虚拟机而由数据处理装置实施时,且当系统上下文的超管理器在这些VM之间切换时,控制位由超管理器以及客操作系统的状态来更新,以便可自另一虚拟机(亦即,操作系统)隐藏来自更安全VM(亦即,视频译码器)的信息。
[0048]因此,在图2A中所示的实例中,配置为MT且分配给任何PE的计数器可用于监控(计数)OS平台事件(在附图中,左上至右下的对角影线),亦即,可归属于PE O至2的事件。PE 3正在执行超管理器已确定应被保护的专属视频译码器(在附图中,左下至右上的对角影线),且自OS平台隐藏此视频译码器的操作。因此,已为此PE设定控制位MTD,以使得视频译码器事件(亦即,可归属于PE 3的事件)仅对于PE 3可见,且因此视频译码器事件从不由分配给PE O至2的计数器计数。因此,藉由对每一处理组件的MTD控制位的此使用,可支持多线程事件计数,同时维持正在执行的线程之间所需的安全性。
[0049]图2B图示关于图2A的配置的变化,特定言之其中2位控制值(在此实例中标识为MTG)用以将PE分组在一起,以便多线程(MT)计数可在分配给相同群组的PE之间发生。在图2B的实例中,MTG控制值为二位值且经设定用于相应PE,以使得PE O至2形成一群组(MTG =ObOO),同时PE 3形成其自身的“群组”(MTG = ObOl )。关于可归属于PE O至2(与图2A的实例相比)的事件的可见性的此分组的特定效应为可归属于PE O至2的事件目前不再对PE 3可见。如此是归因于PE 3形成其自身的“群组”的事实(藉由作为具有MTG值ObOl的唯一PE)。
[0050]类似结果由图2C中所示的替代情况产生,其中代替藉由设定图2B的MTG值而提供的PE的分组,在图2C中,此分组参考VMID值(亦即,归属于在此多线程处理器中提供的不同虚拟机(VM)的识别符值)而提供。在图2C的实例中,PE O至2属于VM0(VMID = 0x0),同时PE 3属于 VMl (VMID = Oxl )。
[0051]图3A至图3D图标用于配置一方式的控制值的不同实例,在此方式中,在分别归属于该四个PE的四个计数器上计数对于一组四个PE发生的事件。在图3A的实例中,控制位MTD对于PEO及PEl清零(O),而控制位MTD对于PE 2及PE 3设定为(I)。如此具有以下效应,且应注意,在此实例中的所有计数器对于多线程(MT)计数而配置,且分配给任何PE的计数器将计数来自PE O及PE I的事件,但来自PE 2的事件将仅藉由分配给PE 2的计数器来计数,且类似地,仅在分配给PE 3的计数器上计数来自PE 3的事件。
[0052]在图3B的实例中,为了事件计数及事件计数可见性的目的的分组参考上述VMID值来达成。如在图3B中可见,PE O及PE I属于VMID 0,同时PE 2及PE 3属于VMID I。结果,且再次考虑到,在此实例中的所有计数器针对MT操作而配置,且提供其中来自VMID群组中的PE的计数是仅在归属于该VMID群组的计数器上计数的配置,并且所得计数随后仅对该VMID群组之内的PE可见。因此,在图3B中所示的实例中,可以看出,对于VMID群组,在分配给PE O及PE I (唯一的)的计数器上进行来自PE O及PE I的事件的计数,同时在分配给PE 2及PE 3的计数器上计数(唯一的)来自PE 2及PE 3的事件。在两个VMID群组之间无交叉计数。
[0053]图3C图示关于图3B的实施例的变体,此实施例的变体再次使用虚拟机识别符VMID,但此外亦使用相关联的群组控制位(VMTD)以进一步定义在两个群组之间的事件计数的可见性。在此实例中,PE O及PE I属于第一虚拟机(VMID = O)且PE 2及PE 3属于第二虚拟机(VMID = I);且相应地,为PE O及PE I设定的VMTD的值为O且为PE 2及PE 3设定的VMTD的值为I。如可在图6中所见,与图3B的实例相比,此举具有以下效应,在分配给PE 2及PE 3的计数器上计数另外的事件。
[0054]最后,图3D图示其中在线程之间的事件计数的可见性藉由使用为每一线程储存的屏蔽值(MTMASK)而控制的实例。为每一线程储存的MTMASK值经图示在图3D的底部,对应于在相应线程的行上的“计数事件”。MTMASK值根据线程编号以从小到大的格式示出,且因此可见,并未为线程本身储存显式值(且此值取而代之地在图中由“X”指示,此值经有效地作为设定值“I”处理)。用图3D中所示的位图案设定这些屏蔽值的效应在于,在所有计数器上计数来自PE O及PE I的事件,同时仅在分配给PE 2及PE 3的计数器上计数来自PE 2的事件。PE 2及PE 3的计数器为其自身且为该此计数事件,且此外,在分配给PE O的计数器上计数来自PE 3的事件。
[0055]图4图示图1的计数器电路14如何在一实施例中配置的实例。因此,在图4中,计数器属性电路(图1中的14A)藉由组件符号50图标,而示例性计数器(图1中的14B)藉由组件符号52图标。计数器属性电路50包含事件选择电路(实质上为多任务器)54及属性电路56。计数器52包含加法器58及归属于此特定计数器的值储存器60(标记“η”)。事件选择多任务器54基于控制值EVSEL〈n>.SEL来控制,事件选择多任务器54自计数器配置单元(在图1的实例中的16)接收此控制值。此处,“η”对应于在考虑之中的特定计数器,且因此EVSEL〈n>.SEL值为计数器<n>选择经接收事件中的一事件。在所示的实例中(其中事件选择多任务器经图示为自8个不同源接收事件信息),EVSEL〈n>.SEL为3位选择值,允许选择八个事件中的一事件。经选择的事件信息(指示已观察到可为其记录计数的事件的单比特位)经传递至属性电路56。属性电路56将传递给定计数器经分配至其的线程(如由与该信息,该事件信息一起接收的属性值所指示)的事件计数信号至事件计数器52上,而无需进一步滤波。然而,属性电路56亦接收EVSEL〈n>值的位值MT,此值指示是否计数器η当前经配置用于多线程计数。因此,对于归属于不同线程的经接收的事件计数,属性电路56亦确定是否允许计数器累积此计数值。若事件计数器经配置用于多线程计数,则属性电路56进一步确定是否对应于由经接收的属性信息指示的线程的MTD位(由PMCRpE〈thread〉.MTD给出)得以设定。若设定了此值,则如此指示产生此事件信息的线程已经配置以“退出”其他线程的多线程视图,且属性电路56不将所发生事件的指示传递至未分配给该线程的任何计数器52上。然而,若未对拥有此事件信息的线程设定MTD位,则属性电路56不将事件(计数)指示传递至分配给其他线程的其他事件计数器52上(且经配置(藉由设定其MT位)用于多线程计数)。对于由此计数器为线程η所经历的计数数目,单独的计数器52随后(使用加法器58)加入此事件发生的指示至其当前储存(在储存器60中)的值。
[0056]图5图示指示用于确定是否经接收的事件信息及属性应对特定计数器产生增量计数的一实施例中采用的步骤顺序的流程图。在步骤100处接收新的事件信息及属性(此事件信息及属性可例如仅为一设定位及所拥有线程的指示,此设定位指示特定事件的发生)。随后,在步骤102处,确定事件信息的经指示的属性(亦即,所拥有的线程)是否对应于在考虑之中的特定计数器所分配至的线程。若此属性对应于在考虑之中的特定计数器所分配至的线程,则流程直接进行至步骤104,在此步骤中,允许此事件增量此计数器(NB假定当前启用此计数器)。然而,若在步骤102处确定事件信息对应于不与此计数器关联的线程,则流程进行至步骤106,在此步骤处,确定是否在考虑之中的计数器当前经配置用于多线程计数。若否,则流程进行至步骤108且不允许相应计数器增量。然而,若此计数器经配置用于多线程计数,则流程进行至步骤110,在此步骤中,确定是否当前为由与此事件指示相关联的属性信息指示的线程设定MTD位。若设定了此MTD位,则流程亦前进至步骤108且不允许计数器增量。然而,若在步骤110处,发现未设定MTD位,则流程进行至步骤104,在此步骤处,允许相关计数器的增量(假定计数器当前启用)。
[0057]如上所述,一些实施例可利用虚拟机识别符(VMID)来代替控制位MTD,或除利用控制位MTD之外,还利用虚拟机识别符;并且图6A示意地图示支持多个虚拟机的数据处理装置的逻辑内部配置。因而,图6A示意地图示其中提供虚拟操作环境的实施例。图标了两个客操作系统OS A 150及OS B 152(然而可支持更多的操作系统,但是为了清楚起见此处并未图示),相应的应用程序154、156、158及160在此两个客操作系统的控制下执行。对这些客操作系统及这些客操作系统执行的应用程序的整体控制藉由超管理器162维持,此超管理器进一步维持虚拟化操作环境的整体控制且指定特定虚拟机(亦即,客操作系统及此客操作系统正在执行的应用程序)可经历且在系统中交互的内容。在图6A中所示的实例中,客操作系统OS A 150及此客操作系统执行的应用程序表示第一虚拟机(VMO),且第二客操作系统OSB 152及此客操作系统执行应用程序可被视为第二虚拟机(VMl)。图6A亦示意地图标所示系统的不同组件在不同“异常位准”(EL0至EL3)操作的事实,这些“异常位准”实质上表示在系统之内的特权的不同位准且对应于控制位准及给定组件具有的对系统的其他组件的可见性。因而,特权阶层用操作在该阶层的最低位准的应用程序154至160、操作在该阶层的下一较高位准的客操作系统150及152,及在更较高位准操作的超管理器160来支持。亦应注意,在图6A中图式此特权阶层的进一步更高位准,即安全监视器164,此监视器在系统中支持的特权的最高位准操作以保持严格控制将系统细分为“安全世界”及“非安全世界”,以在可处理安全敏感数据的可信赖应用程序/操作系统与不向其提供此信赖的其他应用程序/操作系统之间提供可靠的安全性划分。此举将参考图6B论述于下文中。特定地参考本发明的技术,如上所述,经执行以运行应用程序154至160中的一应用程序的给定PE(线程)具有控制位集合的特定值(此值可为诸如储存于系统控制寄存器中的诸如MTD的专用控制位,或此值可由虚拟机识别符VMID(由用于识别虚拟机VMO及VMl的系统保持)表示,或可为上文论述的在其上的其他变体中的任一者)。超管理器162负责在虚拟机之间的上下文切换,且因此当进行此上下文切换且一客OS(且更通常的为虚拟机)的状态经该此替代,超管理器162负责适当地切换相关控制位(是否根据上述实施例实施为单个每线程位,或实施为群组位,或实施为屏蔽值)以使得保持对线程之间的可见性的所需控制。特定言之,如此确保可自较低信赖的虚拟机隐藏对更加信赖(安全的)虚拟机的事件信息(例如,计数值)。
[0058]图6B示意地图标数据处理系统至上述安全(secure ; S)及非安全(non-secure ;NS)世界的细分。此举可藉由使用由Cambridge,UK的ARM Limited提供的TrustZone技术来实施。此细分及安全与非安全世界之间的转变的控制藉由安全监视器164来维持,因此安全监视器164自身形成安全世界170的一部分,且根据图6A中所示的特权阶层,此安全监视器在此特权阶层的最高位准操作。亦包含在安全世界170之内的系统为任何客操作系统,例如安全操作系统172,此客操作系统被信赖而在此空间中操作;以及至少一个可信赖应用程序174。非安全世界180包含非安全平台操作系统182、超管理器183,及至少一个开放应用程序184。由此,系统成为安全世界170及非安全世界180的划分从而表示系统细分成诸部分的另一实例,对于这些部分,在一侧上的事件信息可能需要根据其对另一侧上的组件的可见性受限。因而,作为安全监视器164整体地施加于系统上的控制的一部分,可以确保,用于在安全世界之内执行的给定线程的可见性配置值(亦即,控制位、群组位、VMID值、屏蔽值等)经适当地设定,以使得与该线程的执行相关的事件信息对操作于非安全世界中的线程的软件不可见(若需要)。此外,安全监视器164进一步确保为操作于安全世界中的线程保持的值甚至对于操作于非安全世界中的线程不可见。
[0059]因此,藉由整体概述,在执行多线程数据处理的装置中,事件处理电路自数据处理电路接收指示已在数据处理操作期间发生的事件的事件信息。可见性配置储存器保持一组可见性配置值,各可见性配置值与多个线程中的一线程相关联且事件处理电路调适此电路对事件信息的使用以限制事件信息对线程的软件的可见性,这些线程不同于当产生事件信息的线程的可见性配置值具有预定值时产生事件信息的线程。如此允许多线程事件监控得以支持,同时保护事件信息不受希望将其可见性对其他线程的软件限制的特定线程的影响。
[0060]在本案中,“经配置以……”及“经布置以”用于意谓装置的组件具有能够执行经定义的操作的配置。在此上下文中,“配置”意谓硬件或软件的布置或互连的方式。例如,装置可能具有提供经定义操作的专用硬件,或处理器或其他处理装置可经程序化以执行此函数。“经配置以”或“经布置以”不意味装置组件需要以任何方式改变以提供经定义操作。
[0061]尽管已参看附图在本文中详细描述说明性实施例,但是应将理解,本发明不限于那些精确实施例,且在不背离如由附加申请专利范围所定义的本发明的范畴及精神的情况下,可由熟习该项技术者在本文中实现各种变化、添加及修改。例如,在不背离本发明的范围的情况下,可对独立项的特征进行附属项的特征之各种组合。
【主权项】
1.一种用于多线程数据处理的装置,包含: 数据处理电路,用于对多个线程中的每一线程执行数据处理操作; 事件处理电路,用于自该数据处理电路接收指示已在该数据处理操作期间发生的事件的事件?目息;以及 可见性配置储存器,用于保持一组可见性配置值,各可见性配置值与该多个线程中的一线程相关联, 其中该事件处理电路响应于接收到该事件信息以调适该电路对该事件信息的使用,以限制该事件信息对以下线程的软件的可见性:这些线程不同于当产生该事件信息的线程的可见性配置值具有预定值时产生该事件信息的线程。2.如权利要求1所述的装置,其中各可见性配置值对于除了相应线程之外的线程的软件不可访问。3.如权利要求1所述的装置,其中该事件处理电路包含至少一个事件计数器。4.如权利要求3所述的装置,其中该至少一个事件计数器包含对该多个线程中的每一线程的事件计数器。5.如权利要求3所述的装置,其中该至少一个事件计数器可配置用于多线程事件计数且该至少一个事件计数器计数多于一个线程的事件。6.如权利要求5所述的装置,其中响应于执行多线程事件计数的至少一个事件计数器,该至少一个事件计数器对于当线程的可见性配置值具有预定值时产生所述事件信息的线程的事件不计数。7.如权利要求1所述的装置,其中该可见性配置储存器经布置以保持单比特位可见性配置值。8.如权利要求1所述的装置,其中该可见性配置储存器经布置以保持多比特位可见性配置值, 其中该事件处理电路响应于接收到该事件信息以调适该电路对该事件信息的使用,以使得对除了产生该事件信息的线程之外的该多个线程中的每一线程的软件的事件信息的可见性藉由针对产生该事件信息的线程所储存的多比特位可见性配置值的相应比特位来定义。9.如权利要求1所述的装置,其中产生该事件信息的线程被包含于线程群组中, 且该事件处理电路响应于接收到该事件信息以调适该电路对该事件信息的使用,以使得该事件信息对该线程群组中的线程软件可见且以使得该事件信息对不包含于该线程群组中的线程软件不可见。10.如权利要求9所述的装置,其中该线程群组藉由群组识别符定义,且该事件处理电路响应于接收到该事件信息以使用该群组识别符作为可见性配置值。11.如权利要求1所述的装置,其中产生该事件信息的线程包含于线程群组中,且该可见性配置值藉由该线程群组的群组可见性配置值给出。12.如权利要求1所述的装置,其中该事件处理电路响应于接收到该事件信息以调适该电路对该事件信息的使用,以使得该事件信息对以下线程的软件不可见:这些线程不同于当产生该事件信息的线程的可见性配置值具有预定值时产生该事件信息的线程。13.如权利要求1所述的装置,其中该数据处理电路经布置以在多个执行位准中经选择的执行位准下对多个线程中的每一线程执行数据处理操作,其中各可见性配置值对于在比该经选择执行位准低的执行位准下执行的线程不可访问。14.如权利要求13所述的装置,其中该多个执行位准包含多个异常位准。15.如权利要求13所述的装置,其中该多个执行位准包含多个安全性位准。16.如权利要求13所述的装置,其中该装置经布置以当在执行位准之间上下文切换时更新该可见性配置值。17.如权利要求1所述的装置,其中该数据处理电路经布置以响应于指令执行该数据处理操作且选择该数据处理电路执行的这些指令的子集以便归档,该归档基于针对该指令的子集所产生的事件信息, 其中该归档包含将归档数据储存至储存单元,该归档数据包含该事件信息或来源于该事件信息的进一步信息, 且其中该数据处理电路经布置以当产生该事件信息的线程的可见性配置值具有该预定值时防止该归档数据的储存。18.—种数据处理系统,包含如权利要求1所述的装置及储存单元。19.一种多线程数据处理的方法,包含以下步骤: 对多个线程中的每一线程执行数据处理操作; 储存一组可见性配置值,各可见性配置值与该多个线程中的一线程相关联; 接收指示已在这些数据处理操作期间发生的事件的事件信息;以及调适该事件信息的使用,以限制该事件信息对以下线程的软件的可见性:这些线程不同于当产生该事件信息的线程的可见性配置值具有预定值时产生该事件信息的线程。20.—种用于多线程数据处理的装置,包含: 用于对多个线程中的每一线程执行数据处理操作的构件; 用于储存一组可见性配置值的构件,各可见性配置值与该多个线程中的一线程相关联; 用于自该用于执行数据处理操作的构件接收指示已在这些数据处理操作期间发生的事件的事件信息的构件;以及 调适对事件信息的使用的构件,以限制该事件信息对以下线程的软件的可见性:这些线程不同于当产生该事件信息的线程的可见性配置值具有预定值时产生该事件信息的线程。21.—种以非瞬时形式储存软件的计算机可读存储介质,当该软件在计算装置上执行时,引起该计算装置执行如权利要求19所述的方法。22.—种当在计算装置上执行时引起该计算装置执行如权利要求19所述的方法的软件。
【文档编号】G06F11/30GK106055448SQ201610180138
【公开日】2016年10月26日
【申请日】2016年3月25日 公开号201610180138.3, CN 106055448 A, CN 106055448A, CN 201610180138, CN-A-106055448, CN106055448 A, CN106055448A, CN201610180138, CN201610180138.3
【发明人】迈克尔·约翰·威廉姆斯, 西蒙·约翰·克拉斯克
【申请人】Arm 有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1