CN110908952B - 一种数据处理方法、装置、cpu及计算机 - Google Patents
一种数据处理方法、装置、cpu及计算机 Download PDFInfo
- Publication number
- CN110908952B CN110908952B CN201911145204.3A CN201911145204A CN110908952B CN 110908952 B CN110908952 B CN 110908952B CN 201911145204 A CN201911145204 A CN 201911145204A CN 110908952 B CN110908952 B CN 110908952B
- Authority
- CN
- China
- Prior art keywords
- processor
- affinity
- die
- secure
- processor core
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请提供一种数据处理方法、装置、CPU及计算机。该方法包括:处理器核心获取亲和安全处理器的工作状态;其中,所述亲和安全处理器为与所述处理器核心处于同一个晶粒DIE中的安全处理器;若所述亲和安全处理器处于空闲状态,所述处理器核心向所述亲和安全处理器发送请求。本申请实施例中,每个晶粒DIE中的处理器核心在发送请求时,优先选择亲和安全处理器,在亲和安全处理器处于空闲状态的情况下,可以及时处理该请求,提高了请求处理的效率。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种数据处理方法、装置、CPU及计算机。
背景技术
现有的X86厂商将多个处理器核心封装在一个小的晶圆上,称之为晶粒DIE。通常,一个晶粒DIE内部还会封装一个安全处理器,用于处理安全任务。多个晶粒DIE再次封装在一起组成一个完整的中央处理器(Central Processing Unit/Processor,CPU),并且,多个晶粒DIE之间通过总线通信连接。
发明内容
本申请实施例的目的在于提供一种数据处理方法、装置、CPU及计算机,用以提高处理请求的效率。
第一方面,本申请实施例提供一种数据处理方法,包括:处理器核心获取亲和安全处理器的工作状态;其中,所述亲和安全处理器为与所述处理器核心处于同一个晶粒DIE中的安全处理器;若所述亲和安全处理器处于空闲状态,所述处理器核心向所述亲和安全处理器发送请求。
本申请实施例中,每个DIE中的处理器核心在发送请求时,优先选择亲和安全处理器,在亲和安全处理器处于空闲状态的情况下,可以及时处理该请求,提高了请求处理的效率。
进一步地,所述方法还包括:若所述亲和安全处理器处于忙碌状态,获取用于各晶粒DIE之间通信的总线及非亲和安全处理器的工作状态;其中,非亲和安全处理器是指中央处理器CPU中除所述处理器核心所在的晶粒DIE之外的晶粒DIE中的安全处理器;在所述总线及至少一个非亲和安全处理器处于空闲状态的情况下,从处于空闲状态的非亲和安全处理器中确定目标非亲和安全处理器,并通过所述总线向所述目标非亲和安全处理器发送所述请求。
本申请实施例中,处理器核心优先向亲和安全处理器发送请求,在亲和安全处理器忙碌时,并且总线和任意一个非亲和安全处理器处于空闲状态,则通过总线向非亲和安全处理器发送请求,从而保证了请求能够及时被处理。
进一步地,所述方法还包括:若所述总线和/或所有的非亲和安全处理器处于忙碌状态,所述处理器核心在确定所述亲和安全处理器空闲后,向所述亲和安全处理器发送所述请求。
本申请实施例中,当亲和安全处理器忙碌,且总线和/或所有的非亲和安全处理器忙碌,处理器核心等待亲和安全处理器,待亲和安全处理器空闲后向亲和安全处理器发送请求,因此,优先选择亲和安全处理器能够提高请求被处理的效率。
进一步地,所述从处于空闲状态的非亲和安全处理器中确定目标非亲和安全处理器,包括:随机从处于空闲状态的非亲和安全处理器中选择一个作为所述目标非亲和安全处理器。
进一步地,所述处理器核心获取亲和安全处理器的工作状态,包括:从维护的状态表中获取所述亲和安全处理器的标志位,根据所述标志位确定所述亲和安全处理器的工作状态。
本申请实施例通过状态表维护每个安全处理器的工作状态,可以使处理器核心快速获知各个安全处理器是否空闲。
进一步地,所述状态表中包括晶粒DIE的序号以及每一安全处理器对应的标志位;从维护的状态表中获取所述亲和安全处理器的标志位,包括:获取所述处理器核心对应的处理器核心编号,以及一个晶粒DIE中包括的处理器核心的数量;根据所述处理器核心编号和所述处理器核心的数量确定所述处理器核心所在的晶粒DIE的序号;从所述状态表中确定所述处理器核心所在的晶粒DIE的序号对应的标志位。
本申请实施例中,处理器核心能够根据处理器核心编号以及一个晶粒DIE中包括的处理器核心的数量可以获知自身所处的晶粒DIE的序号,进而可以获得亲和安全处理器,向亲和安全处理器发送请求,提高了请求处理的效率。
进一步地,所述根据所述处理器核心编号和所述处理器核心的数量确定所述处理器核心所在的晶粒DIE的序号,包括:根据公式计算获得所述处理器核心所在的晶粒DIE的序号;其中,id为所述处理器核心所在的晶粒DIE的序号,X为所述处理器核心编号,N为一个晶粒DIE中包括的处理器核心的数量。
本申请实施例中,由于每个晶粒DIE中包括的处理器核心数量相同,因此可以根据公式可以快速地获得其所在的晶粒DIE的序号。
第二方面,本申请实施例提供一种数据处理装置,包括:状态获取模块,用于获取处理器核心的亲和安全处理器的工作状态;其中,所述亲和安全处理器为与所述处理器核心处于同一个晶粒DIE中的安全处理器;请求发送模块,用于当所述亲和安全处理器处于空闲状态的情况下,向所述亲和安全处理器发送请求。
进一步地,所述请求发送模块,还用于:若所述亲和安全处理器处于忙碌状态,获取用于各晶粒DIE之间通信的总线及非亲和安全处理器的工作状态;其中,非亲和安全处理器是指中央处理器CPU中除所述处理器核心所在的晶粒DIE之外的晶粒DIE中的安全处理器;在所述总线及至少一个非亲和安全处理器处于空闲状态的情况下,从处于空闲状态的非亲和安全处理器中确定目标非亲和安全处理器,并通过所述总线向所述目标非亲和安全处理器发送所述请求。
进一步地,所述请求发送模块,还用于:若所述总线和/或所有的非亲和安全处理器处于忙碌状态,所述处理器核心在确定所述亲和安全处理器空闲后,向所述亲和安全处理器发送所述请求。
第三方面,本申请实施例提供一种CPU,包括多个晶粒DIE,每个晶粒DIE包括一个安全处理器和至少一个处理器核心,晶粒DIE之间通过总线通信连接;其中,一个晶粒DIE中的安全处理器为所述晶粒DIE中的处理器核心的亲和安全处理器;其中:所述处理器核心用于获取亲和安全处理器的工作状态;若所述亲和安全处理器处于空闲状态,所述处理器核心向所述亲和安全处理器发送请求;所述亲和安全处理器用于响应所述请求。
进一步地,所述处理器核心还用于:若所述亲和安全处理器处于忙碌状态,获取用于各晶粒DIE之间通信的总线及非亲和安全处理器的工作状态;其中,非亲和安全处理器是指中央处理器CPU中除所述处理器核心所在的晶粒DIE之外的晶粒DIE中的安全处理器;在所述总线及至少一个非亲和安全处理器处于空闲状态的情况下,从处于空闲状态的非亲和安全处理器中确定目标非亲和安全处理器,并通过所述总线向所述目标非亲和安全处理器发送所述请求。
进一步地,所述处理器核心还用于:
若所述总线和/或所有的非亲和安全处理器处于忙碌状态,在确定所述亲和安全处理器空闲后,向所述亲和安全处理器发送所述请求。
进一步地,所述处理器核心用于:从处于空闲状态的非亲和安全处理器中确定目标非亲和安全处理器,包括:随机从处于空闲状态的非亲和安全处理器中选择一个作为所述目标非亲和安全处理器。
进一步地,所述处理器核心用于获取亲和安全处理器的工作状态,包括:从维护的状态表中获取所述亲和安全处理器的标志位,根据所述标志位确定所述亲和安全处理器的工作状态。
进一步地,所述状态表中包括晶粒DIE的序号以及每一安全处理器对应的标志位;所述处理器核心用于从维护的状态表中获取所述亲和安全处理器的标志位,包括:获取所述处理器核心对应的处理器核心编号,以及一个晶粒DIE中包括的处理器核心的数量;根据所述处理器核心编号和所述处理器核心的数量确定所述处理器核心所在的晶粒DIE的序号;从所述状态表中确定所述处理器核心所在的晶粒DIE的序号对应的标志位。
进一步地,所述处理器核心用于:根据所述处理器核心编号和所述处理器核心的数量确定亲和安全处理器的序号,包括:根据公式计算获得所述亲和安全处理器的序号;其中,id为所述亲和安全处理器的序号,X为所述处理器核心编号,N为一个晶粒DIE中包括的处理器核心的数量。
第四方面,本申请实施例提供一种计算机,包括第三方面所述的CPU。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的CPU架构图;
图2为本申请实施例提供的Inter-DIE Bus工作流程图;
图3为本申请实施例提供的一种数据处理方法流程示意图;
图4为本申请实施例提供的另一种数据处理流程示意图;
图5为本申请实施例提供的装置结构示意图;
图6为本申请实施例的计算机结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
现有技术中一个CPU中可能设置有多个安全处理器,将其中一个安全处理器设置为主安全处理器,其余的安全处理器为从安全处理器,在主安全处理器工作正常的情况下,处理器核心都向主安全处理器发送请求。对于与主安全处理器不在同一个晶粒DIE的处理器核心来说,需要通过总线发送请求。由于总线会被大量的与安全任务无关的其他通信占用,即使安全处理器空闲,也需要等待,从而导致跨晶粒DIE发送请求的处理效率降低。
图1为本申请实施例提供的CPU架构图,如图1所示,CPU中包括三个晶粒DIE,每个晶粒DIE中集成了三个处理器核心和一个安全处理器。晶粒DIE内部的各个处理器核心与安全处理器连接,而各个晶粒DIE之间可以通过总线相连接,该总线可以为Inter-DIE Bus,也可以为其他总线,本申请实施例对此不作具体限定。下面以Inter-DIE Bus总线为例,跨晶粒DIE使用安全处理器时,命令需要通过Inter-DIE Bus才能传递。可以理解的是,图1中的CPU架构只是一种示意,实际情况下的CPU中的晶粒DIE数量,以及每个晶粒DIE中的处理器核心数据可以根据实际情况配置,本申请实施例对此不作具体限定。
Inter-DIE Bus与一般的总线相同,支持总线仲裁的功能。所谓总线仲裁是指当总线上有多个设备时,设备之间如何协商对总线的控制权。设备只有拥有了总线控制权之后才能发起通信传输,完成后释放总线。否则设备之间的传输会发送冲突导致传输失败。
Inter-DIE Bus不同的厂家有不同的实现方式,本申请实施例选取一种方法介绍其原理,如图2所示,该方法包括:
步骤201:每个设备在发送数据前,先监听总线是否有其他设备在传输数据;
步骤202:如果有(总线繁忙),则通知总线仲裁器,进入排队队列;
步骤203:否则,如果总线空闲,则立即发送数据;
步骤204:由总线仲裁器通知总线已空闲,可以发起传输。
总线仲裁器仅保证了总线上的传输是有序的,在一个总线繁忙的系统里,跨晶粒DIE的任务需要等之前的其他任务完成并释放总线后才能启动,因此随着系统繁忙程度的增长,跨晶粒DIE的任务的性能会相应的降低。
Inter-DIE Bus是所有跨晶粒DIE通信的通道,如果总线被大量的与安全任务无关的其他通信占用,即使安全处理器空闲,跨晶粒DIE的安全处理器使用的效率也会降低,因为必须等待总线空闲才能启动安全任务。因此,处理器核心发送的请求被处理的效率很低。
在本申请之前,多个安全处理器中,一个为主安全处理器,剩下的为从安全处理器,在主安全处理器正常工作的情况下,所有的处理器核心均向主安全处理器发送请求,这样就会导致主安全处理器过于繁忙,而从安全处理器空闲,导致安全处理器的利用率低的问题。
为了解决对请求处理效率低的问题,本申请实施例在处理器核心调用安全处理器的策略上进行了优化,图3为本申请实施例提供的一种数据处理方法流程示意图,如图3所示,该方法包括:
步骤301:处理器核心获取亲和安全处理器的工作状态;其中,所述亲和安全处理器为与所述处理器核心处于同一个晶粒DIE中的安全处理器;
步骤302:若所述亲和安全处理器处于空闲状态,所述处理器核心向所述亲和安全处理器发送请求。
在具体的实施过程中,若处理器核心需要向安全处理器发送请求,以使安全处理器处理相关安全事务时,该处理器核心获取亲和安全处理器的工作状态。应当说明的是,亲和安全处理器是相对于处理器核心而言的,即属于同一个晶粒DIE的安全处理器为该晶粒DIE中的处理器核心的亲和安全处理器。处理器核心可以是X86核心,也可以是其他核心,本申请实施例对此不作具体限定。若亲和安全处理器正在处理事务,则其工作状态为忙碌状态;若亲和安全处理器未处理事务,则其工作状态为空闲状态。可以理解的是,在一个CPU中,相对于一个处理器核心来说,除了自身所在的晶粒DIE中的安全处理器之外的,其他晶粒DIE中的安全处理器均为非亲和安全处理器。另外,由于安全处理器有可能因为各种原因产生异常,因此,安全处理器的工作状态还可以是异常等。对于异常的安全处理器,本申请实施例一个非亲和安全处理器,向该非亲和安全处理器发送请求。
在处理器核心获取到亲和安全处理器的工作状态后,若其工作状态为空闲状态,则向该亲和安全处理器发送请求。应当说明的是,该请求可以是请求亲和安全处理器处理安全事务的,例如:该请求可以包括命令和相关参数;还可以是从亲和安全处理器中请求数据。本申请实施例对请求的具体内容不做具体限定。
本申请实施例中,每个晶粒DIE中的处理器核心在发送请求时,优先选择亲和安全处理器,在亲和安全处理器处于空闲状态的情况下,可以及时处理该请求,提高了请求处理的效率。
在上述实施例的基础上,所述方法还包括:
若所述亲和安全处理器处于忙碌状态,获取用于各晶粒DIE之间通信的总线及非亲和安全处理器的工作状态;其中,非亲和安全处理器是指中央处理器CPU中除所述处理器核心所在的晶粒DIE之外的其他晶粒DIE中的安全处理器;
在所述总线及至少一个非亲和安全处理器处于空闲状态的情况下,从处于空闲状态的非亲和安全处理器中确定目标非亲和安全处理器,并通过所述总线向所述目标非亲和安全处理器发送所述请求。
在具体的实施过程中,如果亲和安全处理器处于忙碌状态,则亲和安全处理器当前时刻无法处理处理器核心的请求,为了能够使请求及时被处理,处理器核心获取总线和非亲和安全处理器的工作状态。如果总线在处理事务,则会将其电平拉高,如果处理完任务,则将其电平拉低。因此,处理器核心可以通过总线电平的高低获知总线的工作状态。如果总线和至少一个非亲和安全处理器的工作状态为空闲状态,那么处理器核心通过该总线向处于空闲状态的非亲和安全处理器中的一个发送该请求。
应当说明的是,如果有多个非亲和安全处理器空闲,那么可以从多个非亲和安全处理器中随机选择一个非亲和安全处理器,向该非亲和安全处理器发送请求。另外,若非亲和安全处理器的性能不同的情况下,处理器核心可以从多个非亲和安全处理器中选择性能最优的发送请求。
本申请实施例中,处理器核心优先向亲和安全处理器发送请求,在亲和安全处理器忙碌时,并且总线和任意一个非亲和安全处理器处于空闲状态,则通过总线向非亲和安全处理器发送请求,从而保证了请求能够及时被处理。
在上述实施例的基础上,所述方法还包括:
若所述总线和/或所有的非亲和安全处理器处于忙碌状态,所述处理器核心在确定所述亲和安全处理器空闲后,向所述亲和安全处理器发送所述请求。
在具体的实施过程中,图4为本申请实施例提供的另一种数据处理流程示意图,如图4所示,该方法包括:
步骤401:获取亲和安全处理器的工作状态;处理器核心在需要向安全处理器发送请求时,先获取亲和安全处理器的工作状态,该工作状态可以为忙碌或空闲;
步骤402:判断亲和安全处理器是否空闲;如果亲和安全处理器处于忙碌状态,则执行步骤404;如果亲和安全处理器处于空闲状态,则执行步骤403;
步骤403:向亲和安全处理器发送请求;在亲和安全处理器空闲的情况下,处理器核心向亲和安全处理器发送请求;
步骤404:判断总线和非亲和安全处理器是否空闲;如果亲和安全处理器处于忙碌状态,则判断总线以及各个非亲和安全处理器是否空闲,如果总线空闲,且至少一个非亲和安全处理器也空闲,则执行步骤405;如果总线忙碌,至少一个非亲和安全处理器空闲,则执行步骤406;如果总线忙碌,所有的非亲和安全处理器均忙碌,则执行步骤406;如果总线空闲,但所有的非亲和安全处理器均忙碌,则执行步骤406;
步骤405:向非亲和安全处理器发送请求;在总线和至少一个非亲和安全处理器空闲的情况下,通过总线向至少一个非亲和安全处理器中的一个发送请求;
步骤406:等待亲和安全处理器空闲;处理器核心在等亲和安全处理器空闲之后再发送该请求。
本方案中,总线的忙碌状态是指:有其他任务通信正在占用总线;总线的空闲状态是指:没有其他任务通信占用总线。其中,其他任务包括:安全任务通信和与安全任务无关的其他通信。
亲和处理器的忙碌状态是指:有其他安全任务正在占用亲和处理器;亲和处理器的空闲状态是指:没有任何安全任务占用亲和处理器。
作为另一种实施方式,如果总线和至少一个非亲和安全处理器先比亲和安全处理器空闲,那么处理器核心也可以通过总线向至少一个非亲和安全处理器中的一个发送请求。这种做法的好处是能够尽快的将请求发送给安全处理器进行处理。
本申请实施例通过两层判断,即先判断亲和安全处理器的工作状态,如果亲和安全处理器空闲,则优先使用亲和安全处理器处理请求,因为通过总线发送请求的方式都需要承担总线通信的成本;在亲和安全处理器忙碌的情况下,再判断总线和非亲和安全处理器的工作状态,提供多种发送方式,保证请求能够更快的被安全处理器处理,提高处理效率。
在上述实施例的基础上,所述处理器核心获取亲和安全处理器的工作状态,包括:
从维护的状态表中获取所述亲和安全处理器的标志位,根据所述标志位确定所述亲和安全处理器的工作状态。
在具体的实施过程中,为了便于处理器核心能够获知各个安全处理器的工作状态,可以为每一个安全处理器增加一个标志位,并建立一个状态表,该状态表中包括各个安全处理器的标志位。例如:可以用“0”表示安全处理器处于空闲状态,用“1”表示安全处理器处于忙碌状态。安全处理器在接收到请求后,将状态表中的标志位置为“1”,在处理完任务后,将状态表中的标志位置为“0”。可以理解的是,标志位的表示方式还可以是其他形式,只要预先配置好,处理器核心能够根据标志位识别出对应的安全处理器的工作状态即可。
作为一种实施方式,该状态表可以保存在晶粒DIE外部,处理器核心若需要获知亲和安全处理器的工作状态时,可以通过总线访问该状态表,从中获取到亲和安全处理器的标志位,根据标志位确定亲和安全处理器的工作状态。同理,非亲和安全处理器的工作状态的获取与获取亲和安全处理器的工作状态方式一样。另外,由于状态表处于各个晶粒DIE外部,各个安全处理器在需要更改状态表中的标志位时,也需要通过总线访问状态表。应当说明的是,状态表与各个处理器核心和安全处理器通信所用的总线可以与上述实施例中的总线是同一个,也可以是不同的总线,如果是不同的总线且该总线为专用总线,以保证安全处理器能够及时更改状态表中的标志位,以及处理器核心能够及时获得状态表中的标志位。
在另一实施例中,状态表还可以分别存储在每一个晶粒DIE中,处理器核心在晶粒DIE内部就能够获取到亲和安全处理器的工作状态,并且,亲和安全处理器可以及时的修改其晶粒DIE内部状态表中的标志位。可以理解的是,安全处理器在需要更改状态表中的标志位时,不但要更改自身所处的晶粒DIE中的状态表,还需要同步修改其他晶粒DIE中的状态表。在修改其他晶粒DIE中的状态表时,可以通过总线向其他晶粒DIE发送更改指令,以实现标志位的更新。安全处理器发送更改指令所使用的总线可以与上述实施例中的总线是同一个,也可以是不同的总线,如果是不同的总线且该总线为专用总线,以保证安全处理器能够及时更改状态表中的标志位。
应当说明的是,安全处理器在通过总线发送更改指令会有延迟的现象。例如:第二个晶粒DIE中的安全处理器由空闲状态转为忙碌状态,那么该安全处理器在修改了其晶粒DIE内部的状态表之后,还需要向其他DIE发送更改指令,以更新其他晶粒DIE中的状态表,如果总线繁忙,则总线仲裁器将该更改指令写入排队队列中。第一个晶粒DIE中的处理器核心需要向安全处理器发送请求时,若亲和安全处理器忙碌,则处理器核心判断总线及非亲和安全处理器是否空闲,非亲和安全处理器的状态从第一个晶粒DIE中的状态表中获取。由于第二个晶粒DIE的安全处理器发送的更改指令还在排队,所以第一个晶粒DIE的状态表中第二个晶粒DIE的安全处理器的状态为空闲,但实际上第二个晶粒DIE的安全处理器的状态为忙碌。若总线也处于空闲状态,那么第一个晶粒DIE中的处理器核心会通过总线向第二个晶粒DIE的安全处理器发送请求。第二个晶粒DIE的安全处理器由于处于忙碌状态而无法及时处理该请求,可以向该处理器核心发送忙碌的应答。处理器核心在接收到忙碌的应答后,可以等待亲和安全处理器空闲后,发送给亲和安全处理器处理该请求。
本申请实施例通过维护状态表维护每个安全处理器的工作状态,可以使处理器核心快速获知各个安全处理器是否空闲。
在上述实施例的基础上,所述状态表中包括晶粒DIE的序号以及每一安全处理器对应的标志位;从维护的状态表中获取所述亲和安全处理器的标志位,包括:
获取所述处理器核心对应的处理器核心编号,以及一个晶粒DIE中包括的处理器核心的数量;
根据所述处理器核心编号和所述处理器核心的数量确定所述处理器核心所在的晶粒DIE的序号;
从所述状态表中确定所述处理器核心所在的晶粒DIE的序号对应的标志位。
在具体的实施过程中,在操作系统的层面,可以按照晶粒DIE的序号为每一个晶粒DIE中的处理器核心设置一个全局的处理器核心编号。例如:晶粒DIE的序号和处理器核心编号都从0开始。可以理解的是,晶粒DIE的序号和处理器核心编号还可以从1开始,或者任意值开始,并且晶粒DIE的序号和处理器核心编号可以以+1的方式依次递增,也可以以+2的方式依次递增,本申请实施例对此晶粒DIE的序号和处理器核心编号的具体设定不做具体限定。对于每个晶粒DIE中包括的相同数量的处理器核心数量和一个安全处理器的情况,晶粒DIE的序号也可以为安全处理器的序号,当然也可以在状态表中使用安全处理器的序号代替晶粒DIE的序号,或者直接在状态表中增加安全处理器的序号。
每个安全处理器在需要修改状态表中的标志位时,可以根据晶粒DIE的序号进行修改。
由于每个晶粒DIE中包括的处理器核心数量可以相同,因此处理器核心可以根据自身的处理器核心编号以及每个晶粒DIE中包括的处理器核心数量计算获得对应的晶粒DIE的序号,进而可以获知晶粒DIE的序号对应的亲和安全处理器的标志位。
对于晶粒DIE序号和处理器核心编号都从0开始编号,且按照+1的方式递增的情况,可以根据以下公式计算获得处理器核心所在晶粒DIE的序号:
其中,id为处理器核心所在的晶粒DIE的序号,X为处理器核心编号,N为一个晶粒DIE中包括的处理器核心的数量。可以理解的是,X为整数,N为正整数。id为X和N的商取整数,例如:处理器核心的编号为2,每个晶粒DIE中包括处理器核心的数量为4,那么此时id的取值为0;若处理器核心的编号为5,此时的id取值为1。
安全处理器在操作系统层面可以以设备的形式出现,即通常情况下,Linux系统下/dev下面的文件对应的都是各种设备,各个安全处理器可以在这个目录下以一个文件的形式出现,操作这个设备就是和安全处理器交互。操作系统为安全处理器建立的设备为/dev/sp0和/dev/sp1等,其中,/dev/sp0对应编号/序号为0的晶粒DIE,/dev/sp1对应编号/序号为0的晶粒DIE。因此,在需要向安全处理器发送请求的处理器核心确定了其所在的晶粒DIE的编号/序号为D之后,向/dev/spD发送请求即可。
本申请实施例中,由于每个晶粒DIE中包括的处理器核心数量相同,因此可以根据公式可以快速地获得其所在的晶粒DIE的序号。
图5为本申请实施例提供的装置结构示意图,该装置可以是电子设备上的模块、程序段或代码。应理解,该装置与上述图3方法实施例对应,能够执行图3方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括:状态获取模块501和请求发送模块502,其中:
状态获取模块501用于获取处理器核心的亲和安全处理器的工作状态;其中,所述亲和安全处理器为与所述处理器核心处于同一个晶粒DIE中的安全处理器;请求发送模块502用于当所述亲和安全处理器处于空闲状态的情况下,向所述亲和安全处理器发送请求。
在上述实施例的基础上,请求发送模块502,还用于:
若所述亲和安全处理器处于忙碌状态,获取用于各晶粒DIE之间通信的总线及非亲和安全处理器的工作状态;其中,非亲和安全处理器是指中央处理器CPU中除所述处理器核心所在的晶粒DIE之外的其他晶粒DIE中的安全处理器;
在所述总线及至少一个非亲和安全处理器处于空闲状态的情况下,从处于空闲状态的非亲和安全处理器中确定目标非亲和安全处理器,并通过所述总线向所述目标非亲和安全处理器发送所述请求。
在上述实施例的基础上,请求发送模块502,还用于:
若所述总线和/或所有的非亲和安全处理器处于忙碌状态,所述处理器核心在确定所述亲和安全处理器空闲后,向所述亲和安全处理器发送所述请求。
在上述实施例的基础上,请求发送模块502,具体用于:
随机从处于空闲状态的非亲和安全处理器中选择一个作为所述目标非亲和安全处理器。
在上述实施例的基础上,状态获取模块501,具体用于:
从维护的状态表中获取所述亲和安全处理器的标志位,根据所述标志位确定所述亲和安全处理器的工作状态。
在上述实施例的基础上,状态获取模块501,具体用于:
获取所述处理器核心对应的处理器核心编号,以及一个晶粒DIE中包括的处理器核心的数量;
根据所述处理器核心编号和所述处理器核心的数量确定所述处理器核心所在的晶粒DIE的序号;
从所述状态表中确定所述处理器核心所在的晶粒DIE的序号对应的标志位。
在上述实施例的基础上,状态获取模块501,具体用于:
其中,id为所述处理器核心所在的晶粒DIE的序号,X为所述处理器核心编号,N为一个晶粒DIE中包括的处理器核心的数量。
综上所述,本申请实施例提供的装置在发送请求时,优先选择亲和安全处理器,从而在亲和安全处理器空闲时,能够避免承担总线的通信成本,使得请求能够尽快被安全处理器接收并响应,提高了数据处理的效率。
本申请实施例提供一种CPU,其CPU内部连接架构如图1所示,该CPU包括多个晶粒DIE,每个晶粒DIE包括一个安全处理器和至少一个处理器核心,晶粒DIE之间通过总线通信连接;其中,一个晶粒DIE中的安全处理器为所述晶粒DIE中的处理器核心的亲和安全处理器;
处理器核心用于获取亲和安全处理器的工作状态;若亲和安全处理器处于空闲状态,处理器核心向所述亲和安全处理器发送请求;应当说明的是,处理器核心所执行的动作与上述实施例一致,可以参见图3中的步骤流程,以及对图3的详细描述,此处不再赘述。
亲和安全处理器在接收到处理器核心发送的请求后响应该请求。应当说明的是,亲和安全处理器根据请求的不同做出不同的响应。
应当说明的是,CPU中的处理器核心所执行的动作与上述各实施例一致,此处不再赘述。
本申请实施例通过处理器核心在需要向安全处理器发送请求时,优先选择亲和安全处理器,保证了请求能够尽快被安全处理器处理,提高了数据处理的效率。
图6为本申请实施例的计算机结构示意图,如图6所示,该计算机包括处理器(processor)601、存储器(memory)602和总线603;其中,所述处理器601和存储器602通过所述总线603完成相互间的通信;所述处理器601用于调用所述存储器602中的程序指令,上述处理器601可以是通用处理器,包括CPU,CPU包括多个晶粒DIE,每个晶粒DIE中包括有至少一个处理器核心和一个安全处理器。其中,处理器核心向安全处理器发送请求的方法与上述实施例一致,此处不再赘述。
本申请实施例提供的计算机中,由于处理器核心在需要向安全处理器发送请求时,优先选择亲和安全处理器,从而提升了CPU处理性能,进而提高了计算机的运行性能。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (18)
1.一种数据处理方法,其特征在于,应用于中央处理器CPU中的处理器核心,所述CPU包括多个晶粒DIE,每个所述晶粒DIE包括一个安全处理器和至少一个处理器核心,所述方法包括:
处理器核心获取亲和安全处理器的工作状态;其中,所述亲和安全处理器为与所述处理器核心处于同一个晶粒DIE中的安全处理器;
若所述亲和安全处理器处于空闲状态,所述处理器核心向所述亲和安全处理器发送请求。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述亲和安全处理器处于忙碌状态,获取用于各晶粒DIE之间通信的总线及非亲和安全处理器的工作状态;其中,所述非亲和安全处理器为中央处理器CPU中除所述处理器核心所在的晶粒DIE之外的其他晶粒DIE中的安全处理器;
在所述总线及至少一个非亲和安全处理器处于空闲状态的情况下,从处于空闲状态的非亲和安全处理器中确定目标非亲和安全处理器,并通过所述总线向所述目标非亲和安全处理器发送所述请求。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述总线和/或所有的非亲和安全处理器处于忙碌状态,所述处理器核心在确定所述亲和安全处理器空闲后,向所述亲和安全处理器发送所述请求。
4.根据权利要求2所述的方法,其特征在于,所述从处于空闲状态的非亲和安全处理器中确定目标非亲和安全处理器,包括:
随机从处于空闲状态的非亲和安全处理器中选择一个作为所述目标非亲和安全处理器。
5.根据权利要求1所述的方法,其特征在于,所述处理器核心获取亲和安全处理器的工作状态,包括:
从维护的状态表中获取所述亲和安全处理器的标志位,根据所述标志位确定所述亲和安全处理器的工作状态。
6.根据权利要求5所述的方法,其特征在于,所述状态表中包括晶粒DIE的序号以及每一安全处理器对应的标志位;从维护的状态表中获取所述亲和安全处理器的标志位,包括:
获取所述处理器核心对应的处理器核心编号,以及一个晶粒DIE中包括的处理器核心的数量;
根据所述处理器核心编号和所述处理器核心的数量确定所述处理器核心所在的晶粒DIE的序号;
从所述状态表中确定所述处理器核心所在的晶粒DIE的序号对应的标志位。
8.一种数据处理装置,其特征在于,应用于中央处理器CPU中的处理器核心,所述CPU包括多个晶粒DIE,每个所述晶粒DIE包括一个安全处理器和至少一个处理器核心,包括:
状态获取模块,用于获取处理器核心的亲和安全处理器的工作状态;其中,所述亲和安全处理器为与所述处理器核心处于同一个晶粒DIE中的安全处理器;
请求发送模块,用于当所述亲和安全处理器处于空闲状态的情况下,向所述亲和安全处理器发送请求。
9.根据权利要求8所述的装置,其特征在于,所述请求发送模块,还用于:
若所述亲和安全处理器处于忙碌状态,获取用于各晶粒DIE之间通信的总线及非亲和安全处理器的工作状态;其中,非亲和安全处理器是指中央处理器CPU中除所述处理器核心所在的晶粒DIE之外的其它晶粒DIE中的安全处理器;
在所述总线及至少一个非亲和安全处理器处于空闲状态的情况下,从处于空闲状态的非亲和安全处理器中确定目标非亲和安全处理器,并通过所述总线向所述目标非亲和安全处理器发送所述请求。
10.根据权利要求9所述的装置,其特征在于,所述请求发送模块,还用于:
若所述总线和/或所有的非亲和安全处理器处于忙碌状态,所述处理器核心在确定所述亲和安全处理器空闲后,向所述亲和安全处理器发送所述请求。
11.一种CPU,其特征在于,包括多个晶粒DIE,每个晶粒DIE包括一个安全处理器和至少一个处理器核心,晶粒DIE之间通过总线通信连接;其中,一个晶粒DIE中的安全处理器为所述晶粒DIE中的处理器核心的亲和安全处理器;其中:
所述处理器核心用于获取亲和安全处理器的工作状态;若所述亲和安全处理器处于空闲状态,所述处理器核心向所述亲和安全处理器发送请求;
所述亲和安全处理器用于响应所述请求。
12.根据权利要求11所述的CPU,其特征在于,所述处理器核心还用于:
若所述亲和安全处理器处于忙碌状态,获取用于各晶粒DIE之间通信的总线及非亲和安全处理器的工作状态;其中,非亲和安全处理器是指中央处理器CPU中除所述处理器核心所在的晶粒DIE之外的其他晶粒DIE中的安全处理器;
在所述总线及至少一个非亲和安全处理器处于空闲状态的情况下,从处于空闲状态的非亲和安全处理器中确定目标非亲和安全处理器,并通过所述总线向所述目标非亲和安全处理器发送所述请求。
13.根据权利要求12所述的CPU,其特征在于,所述处理器核心还用于:
若所述总线和/或所有的非亲和安全处理器处于忙碌状态,在确定所述亲和安全处理器空闲后,向所述亲和安全处理器发送所述请求。
14.根据权利要求12所述的CPU,其特征在于,所述处理器核心用于:从处于空闲状态的非亲和安全处理器中确定目标非亲和安全处理器,包括:
随机从处于空闲状态的非亲和安全处理器中选择一个作为所述目标非亲和安全处理器。
15.根据权利要求11所述的CPU,其特征在于,所述处理器核心用于获取亲和安全处理器的工作状态,包括:
从维护的状态表中获取所述亲和安全处理器的标志位,根据所述标志位确定所述亲和安全处理器的工作状态。
16.根据权利要求15所述的CPU,其特征在于,所述状态表中包括晶粒DIE的序号以及每一安全处理器对应的标志位;所述处理器核心用于从维护的状态表中获取所述亲和安全处理器的标志位,包括:
获取所述处理器核心对应的处理器核心编号,以及一个晶粒DIE中包括的处理器核心的数量;
根据所述处理器核心编号和所述处理器核心的数量确定所述处理器核心所在的晶粒DIE的序号;
从所述状态表中确定所述处理器核心所在的晶粒DIE的序号对应的标志位。
18.一种计算机,其特征在于,包括如权利要求11所述的CPU。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911145204.3A CN110908952B (zh) | 2019-11-20 | 2019-11-20 | 一种数据处理方法、装置、cpu及计算机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911145204.3A CN110908952B (zh) | 2019-11-20 | 2019-11-20 | 一种数据处理方法、装置、cpu及计算机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110908952A CN110908952A (zh) | 2020-03-24 |
CN110908952B true CN110908952B (zh) | 2022-06-21 |
Family
ID=69818452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911145204.3A Active CN110908952B (zh) | 2019-11-20 | 2019-11-20 | 一种数据处理方法、装置、cpu及计算机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110908952B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018119904A1 (zh) * | 2016-12-29 | 2018-07-05 | 华为技术有限公司 | 一种实现安全操作系统切换的片上系统和方法 |
CN109725983A (zh) * | 2018-11-22 | 2019-05-07 | 海光信息技术有限公司 | 一种数据交换方法、装置、相关设备及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3044442B1 (fr) * | 2015-11-27 | 2018-02-09 | Viaccess | Procede d’identification de processeurs de securite. |
-
2019
- 2019-11-20 CN CN201911145204.3A patent/CN110908952B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018119904A1 (zh) * | 2016-12-29 | 2018-07-05 | 华为技术有限公司 | 一种实现安全操作系统切换的片上系统和方法 |
CN109725983A (zh) * | 2018-11-22 | 2019-05-07 | 海光信息技术有限公司 | 一种数据交换方法、装置、相关设备及系统 |
Non-Patent Citations (1)
Title |
---|
基于双核安全处理器架构的程序控制流保护策略;王庆然;《中国优秀博硕士学位论文全文数据库(硕士)》;20190415(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110908952A (zh) | 2020-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100762388B1 (ko) | 낮은 오버헤드 프로세서 인터페이싱 | |
CN108536526B (zh) | 一种基于可编程硬件的资源管理方法以及装置 | |
US20110107344A1 (en) | Multi-core apparatus and load balancing method thereof | |
CN104102548A (zh) | 任务资源调度处理方法和系统 | |
CN110971591B (zh) | 一种多进程访问可信应用的方法和系统 | |
CN110737453A (zh) | 安全芯片的升级方法、装置及安全芯片 | |
KR102387922B1 (ko) | 솔리드 스테이트 드라이브의 비동기 이벤트 요청 명령 처리 방법 및 시스템 | |
US20150234759A1 (en) | Method and apparatus using high-efficiency atomic operations | |
CN112068960A (zh) | 一种cpu资源分配方法、装置、存储介质及设备 | |
CN114721818A (zh) | 一种基于Kubernetes集群的GPU分时共享方法和系统 | |
CN110908952B (zh) | 一种数据处理方法、装置、cpu及计算机 | |
CN111984409A (zh) | 一种提高系统资源利用率的方法及装置 | |
CN115878333A (zh) | 进程组间的一致性判断方法、装置及设备 | |
JP4856413B2 (ja) | 演算処理装置、情報処理装置、及び演算処理装置の制御方法 | |
US12019909B2 (en) | IO request pipeline processing device, method and system, and storage medium | |
CN107809323B (zh) | 一种资源的控制方法、装置及系统 | |
CN114911538A (zh) | 一种运行系统的启动方法及计算设备 | |
CN115543343B (zh) | 变量跨线程操作方法及装置 | |
US12112206B2 (en) | Control device for controlling multiple applications based on priority-based message encryption arbitration | |
CN115981924B (zh) | 设备控制方法、电子设备及存储介质 | |
CN115599563B (zh) | 串行i/o访问的并行i/o控制方法、装置及设备 | |
CN114968385B (zh) | 基于微内核操作系统的驱动协调方法、设备及存储介质 | |
JP2004054562A (ja) | ネットワークファイルシステム用入出力制御方法 | |
JPS6223904B2 (zh) | ||
JPH01137359A (ja) | プロセッサの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 300450 Tianjin Binhai New Area Huayuan Industrial Zone Haitai West Road 18 North 2-204 Industrial Incubation-3-8 Applicant after: Haiguang Information Technology Co., Ltd Address before: 1809-1810, block B, blue talent port, No.1, Intelligent Island Road, high tech Zone, Qingdao, Shandong Province Applicant before: HAIGUANG INFORMATION TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |