一种基于硬件的虚拟化设计简化多核处理器的方案
面是易于集成。将多个处理器做到一只芯片上的能力,需要应用软件的直接迁移;否则,开发人员还不如去设计一个新的系统。
在确定迁移到虚拟化架构是否方便时,必须考虑一系列因素。例如,架构必须支持多操作系统,因为根据需要支持的应用情况,多处理器经常会在多个核心上使用多个操作系统。仅支持一个操作系统的多核架构会使开发人员被迫采用该操作系统,然后将所有代码移植到它上面。而支持多个操作系统时,一片多核SoC就简化了代码迁移工作。
另外,还需要考虑到QoS问题,因为各个应用有不同的带宽需求。延时敏感型应用(如视频流)需要实时访问共享资源,而数据型的应用(如内容下载)可以容忍延迟,充分利用未使用的带宽。为不同带宽需求提供服务的能力使开发人员能够在相同的处理簇下整合异质的应用。
还要考虑架构是否包含了透明的资源共享,因为透明性能让开发人员同时迁移支持虚拟化的应用以及不支持虚拟化的应用。另外一个方面是去除软件虚拟化层。虽然在做SoC之间的移植时,某些代码的重写是必要的,但对很多应用来说,当转向采用硬件资源共享的SoC时,大多数的变动并不是修改软件,而是消除软件虚拟化层。去掉这一层可简化系统设计与查错工作,增加了系统的效率。对于制造商已取得虚拟化代码许可的情况,去掉此层还可以降低系统成本。
还有一个要考虑的因素,即架构是否整合了系统资源。当一个系统采用多只芯片和操作系统时,每个都有自己的存储资源。通过资源的硬件管理,所有任务都可以共享对资源的访问。例如,一块硬盘或一个以太网端口可以服务于整个系统(甚至跨各个SoC),而不是像传统架构那样需要多块硬盘。这种方案可节省设备成本,降低系统部件的总数。
SoC之间的通信也很重要。各个应用可以通过一个大带宽系统总线(如PCIe)共享资源,从而实现了SoC之间的共享。传统架构会给每个处理器分配一个固定带宽,这种方法限制了各核之间的有效QoS管理,难以超额申请(图4a)。采用基于硬件的虚拟化时,即使在SoC之间,资源的分配也是灵活的(图4b)。通过速率监管、流量整形,以及队列仲裁,反映并平衡着每个处理器与应用的需求,从而能够实现全带宽管理。同样,这种方案还能够获得资源(如一块硬盘或一个安全引擎)在整个系统上的有效共享,而不仅是一只处理器。
另外还应考虑的是处理器之间的通信,因为多处理器系统经常要在各处理器之间传输相当多的数据。队列管理机制为SoC上各处理器之间以及多个SoC之间的通信提供了一种简单而有效的加速方法。
7 结语
今天的下一代SoC是复杂的多处理器环境,它必须共享片上资源,而不会带来额外开销,降低系统的效率。队列管理有助于芯片资源的虚拟化,通过一种可靠的机制,分配带宽、隔离故障,以及促进可靠的错误恢复,简化了资源共享工作。流量管理通过一种满足不同应用对延时和流量需求的方式,控制流量进出队列的速率,从而确保了系统公平地共享资源。通过硬件实现的虚拟化,开发人员可以卸载队列与流量管理工作,从而增强应用的效率、获得最大的资源吞吐量、减少延时,增加系统的可靠性。
- 单片DSP处理器功能系统的SOPC技术设计(01-12)
- 数字信号处理器TMS320F241在变频空调中的应用(04-28)
- 用8位微处理器实现数字低通滤波器设计(05-15)
- 如何构造嵌入式Linux系统(05-23)
- 基于DSP的信号采集处理系统(07-21)
- 基于嵌入式Linux的便携式RFID信息采集与处理系统(07-01)