针对多核处理器信息安全的任务映射方法与流程

文档序号:15492921发布日期:2018-09-21 21:00阅读:180来源:国知局

本发明属于片上多处理器任务映射算法及硬件安全技术领域,具体涉及一种针对多核处理器信息安全的任务映射方法的设计。



背景技术:

近年来,学者们提出了众多防御技术,以从边信道攻击中保护芯片,这些技术可以大致分为两个类别,其一是基于硬件的防御技术,其二是基于软件的防御技术。

基于硬件的防御技术涉及到逻辑的设计与实现,换言之,是在电路设计层面,实现芯片的操作与边信道泄漏的解耦。例如,在供电网络与逻辑门之间集成一系列专用电容,或是设计分布式片上电压调节器,这两种技术通过控制芯片的功率谱,有效减少了信息泄漏。此外,时间边信道防御也是众多学者关注的焦点,例如,随机驱逐cache及异构路径延迟cache,以降低攻击成功率,或是设计新型的片上互联网络,通过流量管理来对时间边信道攻击进行防御。除了上述提到的技术之外,学者们还提出了基于电流型逻辑电路、异步逻辑以及双轨预充电逻辑的技术来降低边信道泄漏。

基于软件的防御技术可以包含多个抽象层次的实现,例如代码级、算法级及以及协议级。在代码级实现中,学者们提出了多种编译器设计,以将高级语言编译为具有高度安全性的二进制代码。例如,设计出可以自动插入随机编码以及布尔掩码的编译器,以防御功率边信道攻击,或是设计可以保证程序执行时间不受数据量影响的动态编译器,以防御时间边信道攻击,此外还有结合动态编译技术以及代码特化技术,设计出一套工具链,用以降低处理器的电磁信号泄漏。在算法级实现中,利用安全性任务调度算法,降低攻击者推断出任务正确执行顺序的概率及通过追踪芯片的运行状态,动态注入功率噪声,以降低热边信道信息泄漏及都属于算法实现这一类别。除了代码级与算法级的实现,安全性协议也可以实现边信道防御,例如全有/全无转换协议、resecure协议及缓存行锁定协议等。

利用任务映射算法对边信道泄漏进行优化,属于基于软件的防御技术中的算法级实现,且可以与上述提到的各种技术协同使用,强化边信道防御能力。尽管现有的研究已经提出很多片上多处理器任务映射算法,然而这些研究中提出的算法,旨在对片上多处理器的运算性能、能耗效率及发热量等方面进行优化,而很少考虑到片上多处理器的安全性问题。

在过去的十年间,片上多处理器面临着诸如边信道攻击、硬件木马以及芯片克隆等攻击手段带来的日益严重的安全威胁。这也促使学者们不断地研究如何保护片上多处理器的信息安全。热边信道(tscleakage,thermalsidechannelleakage)便是其中一种攻击途径。显然,片上多处理器的温度,包括其空间温度以及瞬态温度,都取决于处理器执行的具体操作。当片上多处理器的某些核心被激活时,这些被激活区域会使得芯片温度上升,从而使我们可以在空间上观察到相应到温度分布。此外,当某个核心被激活时,它的瞬态温度也一定程度上反映出,在其上执行的指令流的特点,这是由于不同指令的功耗差异造成的。因此,攻击者通过获取芯片的热量(热边信道信息),再结合一定的方法,便可以一定概率推断出一条指令在片上多处理器中的执行位置以及执行时间,并进一步预测出任务的执行顺序。因此,减少热边信道泄漏对保护片上多处理器免受相应边信道攻击是非常关键的。



技术实现要素:

本发明的目的是针对片上多处理器的热边信道泄漏问题,提出了一种针对多核处理器信息安全的任务映射方法,以降低执行过程中处理器的指令信息和瞬态温度与空间温度之间的相关性,从而降低攻击者利用热边信道对芯片进行信息窃取的成功率。

本发明的技术方案为:针对多核处理器信息安全的任务映射方法,包括以下步骤:

s1、获取处理器核的数量n以及任务包含的线程数量m。

s2、判断是否满足n<m,若是则条件错误,映射结束,否则进入步骤s3。

s3、根据每个处理器核的位置信息计算得到权重矩阵w。

权重矩阵w的第i个元素,即处理器i的权重值w(xi,yi)的计算公式为:

其中(xi,yi)表示处理器i在芯片中的位置,(u1,u2)表示片上多核处理器的中心位置,σ1,σ2分别表示x与y分量上的标准差,ρ表示两个分量的相关系数,i=1,2,...,n。

s4、当新的映射时间槽到来,将任务中的线程加入待映射线程队列la并清空已映射线程队列le。

s5、获取芯片中每个处理器核的使用率信息和温度信息,并根据使用率信息和温度信息计算得到对应芯片的使用率矩阵u及温度矩阵t。

使用率矩阵u的第i个元素,即处理器i的使用率u(xi,yi)的计算公式为:

其中表示处理器i在第k个映射时间槽的使用情况,l表示当前总的映射时间槽数量,计算公式为:

温度矩阵t的第i个元素,即处理器i的归一化温度值t(xi,yi)的计算公式为:

其中,to表示有量纲的原始处理器温度值,to(xi,yi)表示处理器i的原始温度值。

s6、根据使用率矩阵u、权重矩阵w以及温度矩阵t计算得到代价函数矩阵c。

代价函数矩阵c的第i个元素,即处理器i的代价值c(xi,yi)的计算公式为:

c(xi,yi)=w(xi,yi)×u(xi,yi)×t(xi,yi)(5)

s7、将代价函数矩阵c中的元素按升序排列,得到代价函数值列表lc。

s8、根据代价函数值列表lc实现任务映射。

步骤s8包括以下分步骤:

s81、确定代价函数值列表lc中相同的最小代价值的数量,记为r。

s82、判断是否满足r≤|la|,若是则进入步骤s83,否则进入步骤s84;|la|表示待映射线程队列la的队列长度。

s83、将待映射线程队列la中的前r个任务映射到代价函数值列表lc的前r个元素所对应的处理器核上,并从待映射线程队列la中移除已映射任务,同时从代价函数值列表lc中移除这r个已使用处理器核所对应的数据,进入步骤s85。

s84、从这r个处理器核中选出|la|个,使得处理器核之间的曼哈顿距离最小,将待映射线程队列la中的所有任务映射到这些被选中的处理器核上,进入步骤s85。

s85、将已映射任务从待映射线程队列la移至已映射线程队列le,同时从代价函数值列表lc中移除已被使用的处理器核对应的代价值。

s86、根据当前映射情况更新并令映射时间槽计数值k加1。

s9、判断是否还存在未映射的任务线程,若是则返回步骤s8,否则返回步骤s4等待下一个映射时间槽到来,具体判断方法为:

判断是否满足|la|>0,若是则说明还存在未映射的任务线程,返回步骤s8,否则说明所有线程已映射完毕,返回步骤s4等待下一个映射时间槽到来。

本发明的有益效果是:本发明针对多核处理器的热边信道泄漏问题,提供了一种动态安全性任务映射方法,将任务线程映射到从具有相同代价函数值的处理器核集合中选择出的最佳组合上,降低了执行过程中处理器的指令信息和瞬态温度与空间温度之间的相关性,进而降低了攻击者利用热边信道对芯片进行信息窃取的成功率。

附图说明

图1所示为本发明实施例提供的针对多核处理器信息安全的任务映射方法流程图。

图2所示为本发明实施例提供的均匀分布热图与高斯分布的相似性对比图。

图3所示为本发明实施例提供的步骤s8的分步骤流程图。

图4所示为本发明实施例提供的ns与linux映射算法示意图。

图5所示为本发明实施例提供的22nm工艺dunnington的svf对比图。

图6所示为本发明实施例提供的不同映射算法的稳态热量分布图。

图7所示为本发明实施例提供的同映射算法下的瞬态温度对比图。

具体实施方式

现在将参考附图来详细描述本发明的示例性实施方式。应当理解,附图中示出和描述的实施方式仅仅是示例性的,意在阐释本发明的原理和精神,而并非限制本发明的范围。

本发明实施例提供了一种针对多核处理器信息安全的任务映射方法,如图1所示,包括以下步骤s1-s9:

s1、获取处理器核的数量n以及任务包含的线程数量m。

s2、判断是否满足n<m,若是则条件错误,映射结束,否则进入步骤s3。

s3、根据每个处理器核的位置信息计算得到权重矩阵w。

权重矩阵w的第i个元素,即处理器i的权重值w(xi,yi)的计算公式为:

其中(xi,yi)表示处理器i在芯片中的位置,(u1,u2)表示片上多核处理器的中心位置,σ1,σ2分别表示x与y分量上的标准差,ρ表示两个分量的相关系数,i=1,2,...,n。

本发明实施例中,w(xi,yi)是一个二维正态分布函数,其概率密度最大的点位于(u1,u2),也就是芯片的中心位置。将权重矩阵w引入代价函数中,是由于芯片中心位置的热量相比芯片边缘位置的热量,更容易堆积,换言之,若两个处理器核在某一时刻的利用率及平均功耗相等,那么,离芯片中心位置更近的核心,其温度会更高。因此,要均衡芯片的热量分布,就需要考虑处理器核与芯片中心的距离影响,权重函数w(xi,yi)便是用以定量描述这个影响程度。

如图2所示给出了64核片上多处理器轮流激活每个核心运行100ms,且激活时核心功耗为5w情况下的稳态热量分布,可以看到,芯片温度由中心至边缘逐渐降低。因此,从热量均衡的角度来看,处理器核距离芯片中心越远,其被激活并执行任务的概率应该越高。不难发现,二维正态分布函数与处理器核均匀使用下的稳态热量分布具有相似性,均有从中心向边缘逐渐衰减的特征,这也是本发明实施例选择二维正态分布函数作为权重函数w(xi,yi)的理由。

s4、当新的映射时间槽到来,将任务中的线程加入待映射线程队列la并清空已映射线程队列le。

s5、获取芯片中每个处理器核的使用率信息和温度信息,并根据使用率信息和温度信息计算得到对应芯片的使用率矩阵u及温度矩阵t。

使用率矩阵u的第i个元素,即处理器i的使用率u(xi,yi)的计算公式为:

其中表示处理器i在第k个映射时间槽的使用情况,l表示当前总的映射时间槽数量,计算公式为:

温度矩阵t的第i个元素,即处理器i的归一化温度值t(xi,yi)的计算公式为:

其中,to表示有量纲的原始处理器温度值,to(xi,yi)表示处理器i的原始温度值。本发明实施例中,为统一量纲,需要对原始处理器温度值to进行如公式(4)所示的归一化处理。

s6、根据使用率矩阵u、权重矩阵w以及温度矩阵t计算得到代价函数矩阵c。

代价函数矩阵c的第i个元素,即处理器i的代价值c(xi,yi)的计算公式为:

c(xi,yi)=w(xi,yi)×u(xi,yi)×t(xi,yi)(5)

s7、将代价函数矩阵c中的元素按升序排列,得到代价函数值列表lc。

s8、根据代价函数值列表lc实现任务映射。

步骤s8是本方法的关键部分,即将任务线程映射到从具有相同代价函数值的处理器核集合中选择出的最佳组合上。在实际应用中,由于数据精度有限,在得到的代价函数矩阵中,会存在多个代价函数值相同的情况。因此,对这种情况进行进一步讨论,可以为算法的设计带来更多的空间。

如图3所示,步骤s8包括以下分步骤s81-s86:

s81、确定代价函数值列表lc中相同的最小代价值的数量,记为r。

s82、判断是否满足r≤|la|,若是则进入步骤s83,否则进入步骤s84;|la|表示待映射线程队列la的队列长度。

s83、将待映射线程队列la中的前r个任务映射到代价函数值列表lc的前r个元素所对应的处理器核上,并从待映射线程队列la中移除已映射任务,同时从代价函数值列表lc中移除这r个已使用处理器核所对应的数据,进入步骤s85。

s84、从这r个处理器核中选出|la|个,使得处理器核之间的曼哈顿距离最小,将待映射线程队列la中的所有任务映射到这些被选中的处理器核上,进入步骤s85。

s85、将已映射任务从待映射线程队列la移至已映射线程队列le,同时从代价函数值列表lc中移除已被使用的处理器核对应的代价值。

s86、根据当前映射情况更新并令映射时间槽计数值k加1。

s9、判断是否还存在未映射的任务线程,若是则返回步骤s8,否则返回步骤s4等待下一个映射时间槽到来,具体判断方法为:

判断是否满足|la|>0,若是则说明还存在未映射的任务线程,返回步骤s8,否则说明所有线程已映射完毕,返回步骤s4等待下一个映射时间槽到来。

下面将本发明实施例提供的针对多核处理器信息安全的任务映射方法与现有的noc-sprinting映射算法以及linux内核映射算法的映射效果进行对比。

noc-sprinting映射算法是一种静态映射算法,首先建立最大距离代价函数,随后将任务映射到能够最小化该代价函数的处理器核上。该算法可以在降低芯片最高温度的同时,保证长距离通信链路的延迟。

linux内核映射算法是一种动态映射算法,以时间槽(imequota)为基准进行映射方案的动态调整(时间槽通常取100ms),待当前时间槽使用完毕后,重新为每个任务随机分配一个可用的处理器核,并且该处理器核不能在上一个时间槽被使用,以平衡各个处理器核的使用率。

如图4所示展示了以上两种映射算法的直观效果,在16核的片上多处理器上,分别使用ns(noc-sprinting)映射算法及linux映射算法,运行4线程应用。可以看到,由于ns是静态算法,其映射方案一旦生成,便不会在任务执行过程中动态调整,而是保持映射结果,直至任务结束;而linux映射是动态算法,其映射方案在新的时间槽开始时,会进行动态调整,直至任务结束。

下面将从三个方面对三种映射算法的效果进行评估。

(1)svf。

svf是一个用以衡量边信道信息泄漏的指标,通过计算受害者(被攻击的片上多处理器)的执行数据与攻击者的观察数据间的皮尔逊相关系数(pearsoncorrelation)得出,计算公式为:

式中ma(i,j)和mv(i,j)分别代表由受害者的执行数据与攻击者的观察数据生成的相似度矩阵(similaritymatrix),具体定义为:

以及σma、σmv分别表示两个相似度矩阵的均值及标准差,n表示攻击者在n个时间点进行了观察,并得到了长度为n的观察信息,随后借助观察信息对目标进行攻击。观察数据s是一个向量组,si和sj为其中的向量,向量中的每个元素代表i时刻或j时刻片上多处理器的一个结点上,对应的观测数据。在本发明实施例中,观测数据既可以指攻击者从热边信道收集到的温度数据,也可以指片上多处理器的指令执行数据。d(·)表示计算数据s在两个不同采样时间点的欧式距离。显然,对于片上多处理器而言,不同的映射结果,其两个时间点上对应的si与sj也是不同的,这也导致两个点之间的欧式距离会产生差异,最终对svf造成影响。此外,由公式(6)不难看出,svf的计算依赖于观察时间点及之前的所有数据,若假定已经确定攻击者的观察时间点,并直接以svf作为代价函对算法的映射结果进行评估,则会导致当映射算法在某一时刻(观察时间点之前)对映射方案进行评价时,其无法知晓当前时刻之后的映射结果,因而svf在此时刻是无法被计算出来的,算法只能获取这一时刻之前的数据,而无法预知这一时刻到观察时间点中间的数据。为了解决这个问题,本发明实施例中提供的针对多核处理器信息安全的任务映射方法中,使用一个新的代价函数c(xi,yi)来取代svf。而将svf作为评价指标之一。本发明实施例中,svf的值均是在1s时刻进行观测得到。

(2)δt。

δt用以衡量不同任务映射算法在芯片热量均衡上的能力。本发明实施例中,δt需要的温度数据均使用芯片的稳态热量,而稳态热量则通过映射算法在1s内的映射结果得出。其计算分为如下两步:

第一步:得到芯片的稳态热量分布。

第二步:从稳态热量分布上,获取温度最高的结点tmax以及温度最低的结点tmin,通过tmax-tmin得到δt。

(3)mips。

mips的计算分为如下四步:

第一步:根据不同应用程序执行时,片上多处理器的稳态温度情况,划定相应的温度阈值。

第二步:应用程序运行时,采集芯片上温度最高结点的数据。

第三步:观察第二步采集到的温度数据,若某个采样点的温度超过第一步中预设的阈值,则强制片上多处理器进行100ms的休眠,以将温度控制在阈值以下。

第四步:经过第三步处理后,计算该时间段内的mips均值。

本发明实施例采用sniper模拟器提供的dunnington处理器核搭建片上多处理器,仿真的片上多处理器有64颗处理器核,采用22nm工艺。在22nm工艺下,芯片利用率为25%,故应用的线程数量设置为16,表1列出了详细的配置参数。

表1

(1)svf对比。

如图5所示对比了linux映射算法、noc-sprinting映射算法以及本发明实施例提供的安全性映射算法执行测试程序的svf对比。本发明提出的安全性映射算法在svf上的改善程度,相对noc-sprinting映射算法,在9%至17%之间;相对linux映射算法的改善程度,在1%至4%之间。以上结果表明,本发明提出的安全性映射算法,相比linux映射算法及noc-sprinting映射算法,其svf有不同程度的改善。

此外,从图5中可以看到,noc-sprinting映射算法在测试程序下的svf值均保持在0.98附近,而其余两种算法的svf值则可以低至0.9及以下。从直观的角度来看,静态映射算法由于不存在动态切换机制,被激活的核心持续运行,芯片热点明显,故不利于热边信道信息的隐藏。而动态映射算法会在运行过程中对激活的核心进行动态调整,在一定程度上隐藏了热边信道信息,从而降低了攻击者成功找到处于激活状态核心的概率。

(2)热均衡对比。

如图6所示展示了blackscholes程序使用三种映射算法运行的稳态热量分布,从图6中可以看出,noc-sprinting映射算法的热点最为明显,linux映射算法相比其有所改善,而本发明提供的安全性映射算法在热均衡方面的能力,明显优于前两种算法。换言之,从芯片稳态热量分布中,noc-sprinting算法会泄漏最多的信息,而本发明提出的安全性映射算法,其信息泄漏相比而言是最少的。

表2中列出了详细的δt数据,可以看出,安全性映射算法相对linux映射算法,δt的改善程度在2%至77%之间;相对noc-sprinting映射算法,δt的改善程度则在78%至92%之间。在δt指标上,安全性映射算法的效果仍是最佳的。

表2

(3)mips对比。

如图7所示直观展示了三种映射算法下执行blackscholes程序的瞬态温度,并标记了对应的mips数值,图7中的虚线代表温度阈值,noc-sprinting映射与linux映射算法的mips数值相等,虽然linux映射算法在瞬态温度上略低于noc-sprinting映射算法,但是二者瞬态采样点的温度超过阈值的数量是相同的,因而具有相同的mips数值,而安全性映射算法由于瞬态温度控制能力更佳,故其mips数值在三者中最高。

表3给出了详细的mips数据,安全性映射算法相对linux映射算法,mips的提升程度在3%至33%之间;相对noc-sprinting映射算法的提升程度均在54%以上,在blackscholes应用上达到了100%。noc-sprinting算法有50%的采样点为冷却点,而安全性映射算法的温度采样点均在阈值以下,故此时相应的性能提升为100%。

表3

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1