满足多媒体需求,便携电子风行多处理器架构
扫描二维码
随时随地手机看文章
随著多媒体应用要求越来越高,在小小的行动装置内,除了要有即时动态影音呈现,又必须处理大量图型化操作介面效果,若是重度游戏需求,3D与触控和声光效果又是少不了的系统处理负荷,嵌入式处理器单纯提升时脉的效能改善幅度有限,透过多处理器纾解系统应用的效能瓶颈,已刻不容缓...
以行动电话应用为例,以往仅限于简单的拨号、简讯检视和MP3音讯处理,在智慧型手机、功能性手机不断强调多媒体应用的趋势下,现有的嵌入式处理器在面对这些庞大的多媒体运算,已略显力不从心之感,虽然大多能顺利完成相关任务,但对于影音同步与触控即时反应的应用需求,已直接影响行动装置的使用感受,尤其是大量视觉化图型介面,系统运行的效能将直接影响触控操作的应用体验。
对称式多处理器架构 目前业界主流
在PC应用端,消费者已能确实体验到多核心处理器,带来的明显效能提升,不管是双核、三核还是四核以上的高阶应用市场,具体的操作感受可以从核心数量得到最直接的验证,但反观行动电话市场的对称式处理器架构,却未见此类趋势发展,多半仅朝向针对单一处理器改善架构、提升快取记忆体或提高运作时脉等效能提升手法,对于多核与对称多重处理器的效能改善手段,则较少著墨。
观察目前的行动电话应用,多半已与桌上型电脑应用无异,例如,手机持有者会透过行动电话处理电子邮件、看图片、编辑文件、浏览网站甚至玩电玩等多元应用,针对通讯的3G/3.5G行动上网或是GPS定位导航,绚丽的介面互动设计,甚至是3D整合的动态介面,样样都考验行动电话的运算处理能力。
即便延用现有的循序处理逻辑,加快每组资料的处理效率,一方面可能单一处理器的处理负荷大幅拉升,将造成处理器所消耗的能量,在行动电话的各个零组件来说过于集中,造成高温、耗能与主/被动散热成本的额外负担,若参考桌上型电脑的处理器发展轨迹,将原本集中的运算资源分散到多处理器、多资料流进行处理,一方面可以降低核心处理器的效能负担,也可分散核心所产生的高热,周边的配套设置成本将因此增加。
手机的多线程处理架构新挑战
对于建构系统而言,多线程的设计其实并不容易开发,虽然在PC或Server主机的多线程系统,已发展有一段时间,但毕竟行动电话属于运算资源相对较少的微型运算环境,例如处理器仅至256~512MB,RTOS系统的容量也相对较小,即便是开放性系统的Android或Windows Mobile等行动电话系统,其系统环境也相对迷你。
针对PC或伺服器环境开发的多线程技术,并无法完全转移到行动装置应用,因为手机并非资源无限的装置,光是「电力」就是亟需克服解决的限制。另一方面,即时回应在一般伺服主机的多线程应用方面,并非绝对要求,而行动电话平台,却多半要求必须能处理开启电源就能随即使用的需求,研发概念与基础南辕北辙。
以功耗的处理态度而言,行动电话所应用的嵌入式处理器,在于可用API的部份,就必须提供更多、更细緻的电源管理控制功能,例如针对嵌入式晶片或处理器进行进阶电源控制,对于临时需要针对多媒体运算採取全速运行的需求时,又能即时唤醒系统,进行箱端应用处理,而一般多线程设计系统在处理器唤醒步骤较多、耗时较久,也是导入行动电话系统后,首要进行改善的重点。
而程序转换过程中,免不了造成的开关功耗,以往在PC或是伺服器平台并不是什麽重要的问题,因为电源自市电源源不绝供应,问题的重要性不高,相对在行动电话平台,几mW的功耗就是重要的课题了,而在频繁的程式转换或是反覆睡眠、唤醒,可能花在转换系统模式的耗能,就快佔去系统可用的电力了!这部份尤其在需要面对节能所需的如降频、负载运算平衡与即时效能运算等需求间,取得设计平衡点。
兼具效能、节能要求的异质核心设计
相对的,若要达到多线程的最佳化设计,其实多重处理器的系统架构将是一大关键。多重处理器的实践方式,有分同质多核心(homogenous multi-core)与异质多核心(heterogeneous multi-core)两类,同质多核心是将数个相同的核心整合到单一晶片中,而异质多核心则是将不同设计的核心整合在单一晶片裡,理论上,两种设置架构,都不影响其功能,但在表现特性上却有显著的差异。
以同质多核心为例,若因多线程处理出问题,可以关闭部分核心,让单一核心继续完成工作任务,但若是异质核心,则是将不同工作负荷分散到各重点核心进行处理,因为该核心为针对该项特殊任务的最佳化架构,在处理效能、功耗将会达到最佳化表现,异质核心的代表就如同德州仪器的OMAP,OMAP为通用处理器 (General-Purpose Preprocessor:GPP)、数位讯号处理器(Digital signal processing:DSP)与几个多媒体加速器架构而成,另还有搭配特殊目的的处理核心、加密运算的处理核心不同架构设计。
但若从效率角度检视,异质核心处理器相较PC或伺服器应用而言,更适合用于运算资源相对较少的行动装置平台,例如,针对加密需求所设置的核心,或是针对特殊数位信号处理的核心,其若採取一般运算用途的核心完成运算,所耗费的时间将是DSP或HSP的10~20倍,而这类特定用途的核心,随时没有使用都可以指定关闭其功能,节省整体晶片的功耗。
多数高阶设计中,为了提升GPP的运算效能,导入多核心设计是热门的选项,例如,以双处理器SMP再搭配ARM处理器的协同运作方式,对于智慧型手机的一般运算而言其效能提升会是相当明显的效果,当使用者多媒体运算需求较高,可同时用双处理器全速运行,若需求仅为一般应用,则可减少一个核心,採单核心运作,而ARM的角色则为控制核心工作分配与唤醒核心、关闭核心的进阶任务仲裁角色。
异质多核心的架构设计挑战
多核心系统程式必须直接面对许多难解议题,例如包括演算任务、处理资源管理、通讯服务、资料同步...等,多核心所架构的嵌入式系统可能已经不能再仅以单一作业系统来进行系统架构,可能必须有一个以上的系统针对专精领域协同运作,为系统提供上述的多项运算服务。而异质多核心系统,在多组核心的运用,也会用到RTOS的多作业系统资源,此状况就会产生无法由单组作业系统管理嵌入式装置的相关资源,这个状况尤其会在运用如DSP之类的专用处理核心后,态势进一步恶化!因为在异质核心架构中,DSP这类硬体加速器不会去执行任何样式的作业系统,却又得与各个不同核心的多作业系统处理程序交互应用,运算与协同複杂度将大幅提升。
常见的开发模式,可以建构针对丛集内运算、除错、资源、通讯、等不同目的的沟通标准,如丛集内通讯而制订的通讯(TIPC)、多核心除错机制、资源管理应用程式介面(RAPI)、通讯应用程式介面(CAPI)。RAPI的应用目标是为针对多线程运算资源的管理与同步,提供标准化API介面。CAPI则是一个API规格,目的在处理嵌入式系统的讯息传递与同步需求。此外,多核心的系统平台,除运算效能的增加与功耗问题的相关挑战外,其实多核心系统设计人员所面临挑战还有如何分割程式码等问题要解决,并非换了硬体整体设计就全面提升。