问答题 甲公司承担了一项为宇航系统配套生产高性能嵌入式计算机系统的任务,用户要求该系统要具有高速并发处理能力、低功耗、高可靠性,并可以有效地防止系统故障的蔓延。根据用户对本项目的要求,甲公司成立了软/硬件两个项目组,总体设计由硬件组承担,负责高性能嵌入式计算机系统体系结构设计,软件组负责确定软件的技术需求和应用软件开发平台的软件设计工作。
在处理器选型方面,硬件组王工与软件组张工在讨论采用哪种CPU体系结构方面发生争议。目前,流行的处理器结构包括单核结构、多处理器结构、超线程结构、多核结构、共享Cache的多核结构和超线程技术的多核结构共6种,如图1所示。
问答题 王工提出,根据用户要求,本嵌入式系统应具有高速并行处理能力,采用多处理器结构比较适合,主要理由是多处理器结构设计简单、可支持多个进程在不同处理器上并发处理;而张工提出,必须分清“多处理器结构”与“多核结构”的优点和缺点,多处理器结构虽然支持多进程的并发处理,但没有直接实现多线程并发执行;多核结构可以直接实现多线程并发执行。要提高应用的并行性就必须利用多个硬件资源的并行工作,建议采用超线程技术的多核结构的处理器。请填写图1(f)中的(1)~(8),并用300字以内的文字对上述6种处理器结构的工作原理进行简要描述。
【正确答案】填写结果如图2所示。
[*]
图2 填写后的结果

(1)单核结构:计算机中仅有一个物理处理器,不支持应用软件的并行执行,因为在任何时间点上,CPU都只能执行一个指令流。
(2)多处理器结构:支持真正意义上的并行执行,因为多个线程或进程能够在多个处理器上同时执行。
(3)超线程结构(SMT):实际上计算机中只有一个实际的物理处理器,但从软件角度来看,存在多个逻辑处理器,支持操作系统和应用程序将多个线程调度到多个逻辑处理器上,就像多处理器系统一样。从微体系结构的角度看,逻辑处理器的指令是固定的,并且在共享的执行资源上同时执行。
(4)多核结构:采用单芯片多处理器(CMP)的设计,此种结构不是重用单个处理器中某些处理器资源,而是在单个处理器芯片内实现两个或更多的“执行核”。这些执行核都是相互独立的处理器,并具有自己的执行集合及体系结构资源。
(5)共享Cache的多核结构:与多核结构工作方式相一致,主要差别在于设计时将这些执行核设计成可共享片上的Cache。
(6)采用超线程技术的多核结构:主要是将多核结构与超线程结构相结合,从而将逻辑处理器的数量增加到执行核的两倍。
【答案解析】
问答题 在本项目中,如果计算机采用了多线程技术实现应用程序的并发操作,程序设计人员将面临多种挑战,其主要原因在于:程序会同时发生多个动作,对这些同时发生的动作及它们之间的交互进行管理将面临4方面的挑战,即同步、通信、负载均衡和可伸缩性,用200字以内的文字对上述4种挑战进行简要描述,并给出如表1所示的常用并发程序设计模式的分解方式。
{{B}}表1 常用并行程序设计模式的分解方式{{/B}}
模式 分解方式
任务级并行模式 (1)
分治模式(Divide and Conquer) (2)
几何分解模式 (3)
流水线模式 (4)
波峰(Wavefront)模式 (5)
【正确答案】(1)同步:是指两个或多个线程协调其行为的过程。如一个线程停下来等待另一个线程完成某项任务。
(2)通信:是指与线程之间交换数据相关的带宽和时延问题。
(3)负载均衡:是指多个线程之间工作量分布的情况。负载均衡能够使各线程的工作量均衡分配。
(4)可伸缩性:是衡量在性能更加强劲的系统上运行软件时能否有效利用更多线程的指标。例如,如果一个应用程序是面向4核系统编写的,那么当程序在8核系统上运行时,其性能是否能够线性增长(即增加一倍)。
常用并发程序设计模式的分解方式如表2所示。
{{B}}表2 常用并行程序设计模式的分解方式{{/B}}
模式 分解方式
任务级并行模式 (1)任务分解
分治模式(Divide and Conquer) (2)任务分解或数据分解
几何分解模式 (3)数据分解
流水线模式 (4)数据流分解
波峰(Wavefront)模式 (5)数据流分解
【答案解析】
问答题 为了防止系统故障的蔓延,解决应用进程问的相互影响,在超线程技术的多核结构需要选择一种嵌入式操作系统作为本高性能嵌入式计算机系统的运行环境,请用200字以内的文字说明选择的操作系统应具备哪些主要功能。
【正确答案】(1)嵌入式操作系统必须是强实时系统,实时性应达到毫秒级。 (2)操作系统应支持存储器保护能力,支持进程间的资源独立性(或支持时间、空间的隔离)。 (3)操作系统内核应支持多核结构的处理器,并支持多个逻辑处理的方式。 (4)支持高速Cache的管理。
【答案解析】