侵权投诉
订阅
纠错
加入自媒体

以多核架构应对高安全性设计挑战

2011-11-02 09:50
汉水狂客
关注

  许多嵌入式系统设计者都已经意识到多核处理器所带来的好处,例如,可以把原本由多个不同的硬件线路板实现的功能集中到一个处理器芯片上,也可以提高每瓦特功耗所获得的性能,还可以把原有的功能移植到多核芯片中的部分内核,而用其他内核实现产品的新功能,以实现产品升级换代。

  不过,开发设计这样的系统会遇到一些特殊的挑战,因为要把高安全性的功能和一般的功能整合在单一的多核处理器芯片上。一套完整的高安全性系统常常由两大部分组成,一部分是通过来安全性认证的部分,例如基于VxWorks的机器人动作控制子系统,另一部分是不必经过安全认证的通用子系统,例如基于Linux或者Windows系统的人机界面。在这种情况下,如果要让整个系统通过高安全性认证,就会遇到一些值得特别考虑的问题。

  除了与安全性相关以外,基于多核处理器的系统本身也有很多挑战,如中断处理、总线竞争、代码量以及调试复杂度的增加。

  为确保安全性,有些部件是不允许被高安全性子系统和通用子系统所共享的,这就使得隔离性和分区功能格外重要。通过把某些内核和部件指定给一些特定功能的子系统,并实现严格的分区隔离,就可以在充分利用多核处理优势的同时确保系统安全性。风河(Wind River)公司的解决方案就能提供这种严格的隔离分区能力。

  软件代码量直接关系到安全认证的费用。选择适当的嵌入式虚拟化解决方案,就可以把代码量控制在最小的范围内,因而也就节省了安全认证费用。

  本文探讨了多核和嵌入式虚拟化给高安全性系统设计所带来的好处以及如何克服系统开发中所遇到的挑战。

 

  应对嵌入式多核软件的挑战

 

  多核系统并不是直接把多个芯片的多处理器制作到单一芯片之中这么简单。实际上,多核系统和多处理器系统之间存在着许多重要的区别,导致不能把多处理器系统上的软件直接移植到多核系统上来。

  多处理器系统和多核系统的主要区别之一就是,在多处理器系统中,CPU之间的界线是比较清晰的。在典型的多处理器情况下,多个CPU通过总线连接起来,即便是共享外部存储器,这些CPU基本上都是独立运行的。在多核系统中,情况就有所不同。不论采用何种架构,在多核系统中,被共享的东西非常多,例如中断控制器、外设以及缓存等。

  当你希望运行SMP环境时,多核系统的这种特征通常表现为一种优势,因为所有的内核都由同一个操作系统来管理。但是,当你要在多核系统中同时运行两种以上的操作系统时,例如同时运行一套RTOS和一套通用操作系统,就会遇到比较多的困难(有许多产品现在都同时运行Wind River VxWorks和Wind River Linux两种操作系统)。在这种情况下,你有两种选择:第一,在两个操作系统之间进行频繁的互相沟通,例如在它们之间建立主、从(master/slave)关系;第二,更简便的方法是采用Supervisor或者Hypervisor,这是一些少量的代码,负责管理协调多个操作系统。显然,第二种方式是更彻底、更灵活、更具有扩展性的多核软件架构。

  Hypervisor 之所以能够有效地管理运行在其上的多个操作系统,是得益于分区和虚拟化的方法。总的来说,系统中有三类资源可以被虚拟化:执行单元(CPU)、内存和设备。执行单元虚拟化是基于时间片来进行。内存虚拟化是把物理内存划分成许多区域。设备虚拟化则是通过给设备定义接口和API调用来提高使用灵活性和利用率。

  Hypervisor并不是一个全新的概念,在服务器中早已得到广泛而且成功的应用。不过,嵌入式系统中经常用到的Hypervisor主要是对内存和设备进行虚拟化,以便在操作系统之间的资源共享得到完全的保证,而不是对执行单元进行虚拟化。这种专用的hypervisor比较小,而且直接运行在硬件上,不像服务器中用到的Hypervisor主要运行在完整的操作系统之上并且使用宿主操作系统的资源。

  嵌入式hypervisor(例如Wind River Hypervisor)与服务器Hypervisor(例如Vmware或 Kernel-Based Virtual Machine)的区别主要是由其不同的需求造成的。在嵌入式hypervisor中,性能和独立性是两大最重要的需求,而后向兼容性(可以让从属操作系统不经修改即可运行在宿主操作系统之上)是服务器Hypervisor中非常重要的需求。

  为满足嵌入式系统的特殊需求,这类Hypervisor应当采用以下特殊设计:

  第一,设备尽可能直接映射给从属操作系统,以便获得最高的性能以及实现最佳的隔离性。第二,应当具有更强的可伸缩性,可以自主选择对那些部分进行虚拟化,也可以自主选择虚拟化的目的是提高性能还是提高隔离性。第三,与服务器Hypervisor相比,嵌入式Hypervisor应该更加小巧、简单,以便获得相关行业标准的认证,同时拥有更高的性能。第四,从属操作系统一般都是准虚拟化的,通常都经过特别的修改,以便能够非常高效地运行在Hypervisor之上。

  因此,嵌入式Hypervisore的实现会根据硬件支持的程度出现非常大的差异。即使是在没有任何硬件支持的情况下,Hypervisor也可以运行得非常快,关键是要做到适当水平的准虚拟化(Paravirtualization)。

 

1  2  下一页>  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

电子工程 猎头职位 更多
文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号