版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
多核技术分析汇报人:成都研究所日期:2007-11-13©2006,ZTECorporation.Allrightsreserved.目录多核相关概念SMP关键技术多核应用模式多核软件设计要素多核相关概念单核结构、多处理器结构以及多核结构之间的简单对比多核相关概念SMP:指在两个相似(或相同)的处理器通过一条高速通道连接,并且共享外设和存储器空间的体系结构上,运行同一个操作系统实例,上层应用对于多CPU、线程多实例无需了解,由操作系统自动协调运行,并管理共享资源。AMP:在一个由两颗或者多颗相同或者不同的处理器通过各种通信通道连接(比如可以将一个MCU(MainControlUnit)和一个DSP集成在一起),在逻辑上共享或者独占外设、存储器的体系架构上,运行不同的操作系统实例,相互之间通过TIPC(TransparentInter-ProcessCommunication)等机制通讯。往往是用于主控处理单元与各种专业协处理器协同工作的情形。多核:是一种处理器的结构,在一个芯片上集成了多个处理器核心。一般各个核有独立的L1cache,但共享L2Cache,同时,也共享存储器、外设。SMT(HT):同时多线程技术(在intel称为超线程技术),是在CPU中提供多个半独立的处理器单元,其中寄存器独立,但共享L1cache和ALU单元,其目的是提高ALU的利用率,提升CPU效率。从物理上来看,是一个类多CPU体系。当然各芯片厂家实现方案可能不同。多处理器:由多颗相同或者不同的独立完整的CPU通过通信通道连接,可共享也可独立拥有存储器、外设。多核相关概念CPU数量执行单元(ALU)体系结构状态信息(寄存器)Cache总线/内存/中断/外设应用模式/操作系统需求说明单内核/多线程单个,复用单个,复用1套,复用1套,共用共用通过延迟隐藏提升系统性能SMT/HT(超线程)单个,复用单个,复用多套,并行1套,共用共用SMP通过延迟隐藏提升系统性能。性能提升有限多核多个,独立并行运行多个,独立并行运行多套,并行1套或者多套,共享或者独立一般为共用,也可分段使用SMP/AMP真正并行,理论上可达到核数N的加速比多处理器多个,独立运行多个独立运行多套,独立多套独立一般为独立使用,也可共用内存AMP/SMP并行,理论上可达到CPU数N的加速比SMP关键技术之一SMP调度Core1………………………调度代码优先级1Ready线程队列优先级2……优先级n线程A线程B线程C线程D优先级1Block线程队列优先级2……优先级n线程X线程Y线程Z线程QCore2Core3Core4调度点装载执行扫描线程队列装载线程执行调度点调度点调度点装载执行扫描线程队列装载线程执行装载执行扫描线程队列装载线程执行装载执行扫描线程队列装载线程执行调度点扫描线程队列装载执行装载线程执行单核调度多核调度同步技术描述作用范围CPU独立变量每个CPU单独使用各自私有的变量结构AllCPUs原子操作对计数变量的原子修改操作AllCPUs内存栅栏(barrier)避免对CPU指令操作的重排序LocalCPUorAllCPUsSpinlock基于忙等的锁方式AllCPUs信号量基于阻塞的锁方式(sleep)AllCPUs本地中断锁在本CPU上实现中断屏蔽LocalCPU读-拷贝-更新锁(RCU)对通过指针访问共享数据结构的一种无锁机制AllCPUsSMP关键技术之二共享资源互斥保护SMP关键技术之三中断管理多核应用模式AMP:每个核运行独立的OS,或者同种OS的独立实例;SMP:一个OS的单一实例同时管理所有CPU,所有应用可以浮动到其中任一个去运行;BMP:一个OS的单一实例同时管理所有CPU,但可以将某些应用或者线程锁定在指定的CPU上运行,实际上是SMP的一种特例;多核应用模式扩展性已有单核代码迁移效率总体研发效率及成本性能适用场景AMP差较高要维护多个版本,甚至多种操作系统实现,需要多种工具支持,效率低,成本高可以采用不同的操作系统来实现非对称性业务,实时响应能力强并行性差,严重非对称性业务,关注有序性的业务SMP好差,主要是编程理念有变化,迁移成本高版本维护简单,有较好的研发工具支持,效率高,成本低并行性业务处理性能高,ThrougthPut最佳,实时响应能力不能保证并行性程序较高,负荷对称型业务。BMP较好较高,BMP有时做为SMP的过渡,但可能不能充分发挥多核优势同SMP同SMP与SMP类似,适用于已有单核应用迁移到SMP的过渡阶段多核软件开发总体要求架构方面:提升软件并行性算法级(使用并行算法、使用OpenMP编程)任务级(流水线、多实例)合理规划资源分配(中断资源分配、处理器分配)编程方面:选用适当的同步手段控制锁粒度充分认识多核带来的程序并发性提高(同时多任务运行、关中断将不确保安全的同步)下层支撑平台提供支持:多种类型同步手段(spinLock,读写锁、全局中断锁…)快速核间通讯手段(IPI机制)并发任务管理,二级调度任务间的同步性分解子系统---将系统业务分解为相对独立的几个子系统,尽量减少它们的藕合性;流水线---将耗用CPU大的业务流程分解为更细粒度的流水线,一个线程处理一步。在流水线的不同阶段存在着不同的数据集。尽量减少上下流程的共享资源竞争冲突;多实例化---将耗用CPU大的业务流程设计为可并行的、多实例化的多线程或者多进程,并尽量减少多实例间的共享资源竞争冲突;其中又包含两种模式:工作线程
----一个主线程创建几个线程并行执行工作流。工作线程数目应与CPU核数目相当,这样每个核都可以处理相同份额的工作。主线程则监控协调工作线程的工作。对等体
----一个线程创建其他线程,并做为对等体参与分担工作。多核软件设计要素之一业务流程并行化多核软件设计要素之一业务流程并行化优点:流程清楚,实现方式简单,可以最大程度地减少互斥操作;缺点:如果各部分的处理负荷严重不对称,则无法利用多核的优势;由于分解的流水线数量与处理器数量有关系,不利于各种多核体系上的移植、扩展,比如2核扩展为4核;分解子系统:系统业务分解为多个子系统;分配绑定到多核上,各自独立运行;多核软件设计要素之一业务流程并行化优点:流程清楚,实现方式简单,可以最大程度地减少互斥操作;缺点:如果各部分的处理负荷严重不对称,则无法利用多核的优势;由于分解的流水线数量与处理器数量有关系,不利于各种多核体系上的移植、扩展,比如2核扩展为4核;流水线:关键业务流程串行化;分配绑定到多核上;多核软件设计要素之一业务流程并行化优点:操作系统自动调度,最大程度上实现负荷均衡;与具体多核体系架构无关,移植扩展方便;缺点:要求线程负荷尽量均匀、粒度更细,需要对现有系统进行分析改造;线程多实例对于编程设计要求较高;多实例化:关键业务流程多实例化;由操作系统动态调度到多核上执行;多核软件设计要素之二合理规划共享资源分配同一外设独占式访问,减少外设访问冲突;不同外设负荷均分到不同CPU,提高响应速度;APIC可实现中断轮转到各CPU,对于处理性能要求极高的外设,也可以由APIC将负荷分担到多个核上多核软件设计要素之三
充分考虑单/多核共享资源互斥保护方式的差异利用同等优先级FIFO调度机制来保证共享资源互斥将不再可靠;低优先级任务也可能会与高优先级任务并行运行,抢夺共享资源;锁中断在多核中将不能保证安全的同步共享资源互斥保护?流程有序性?解决方法:通过合适的、显式的同步互斥机制来保证;将相关任务锁定在同一个核内运行,保持与单核相同的调度运行方式;由主线程来监控协调各工作线程的工作;多核软件设计要素之四
进程/线程多实例并非越多越好进程/线程增多,调度效率受到影响,进程/线程切换开销、Cache命中率都会影响到系统性能解决方法:一般情况下,进程/线程多实例数量与核数相同时,效率可以达到最佳;对于并发度很高的业务,从设计与实现流程清晰的角度出发,仍然适合采用大量的多实例线程多核软件设计要素之五
线程飘移or线程绑定线程/进程飘移可充分利用SMP操作系统的调度能力,实现多核间完全的负荷均衡,可保证平滑地多核扩展能力;线程/进程绑定可减少切换开销,提高Cache命中率,甚至保证既有单核软件系统以最小代价迁移到多核上;解决方法:对于提供不同业务功能的多个线程,或者处理流程前后相关性密切的线程,适合于使用线程绑定;对于提供相同业务的多实例并行线程,处理流程前后相关性弱的线程,适合于使用线程自动调度,就可能出现线程飘移;多核软件设计要素之六
尽量减少共享数据的访问冲突共享数据的访问冲突是制约多核性能提升的一个重要因素,信号量会引起线程阻塞以及切换开销,自旋锁会导致CPU短时间空转,原子操作会导致总线短暂锁止;解决方法:通过优化的数据结构设计,比如多实例化数据,仅在不得已的情况下才进行冲突数据访问(例如Linux2.6改进的每CPU线程调度队列);使用类环形队列结构,产生者与消费者独立操作,减少互斥;使用读写锁;多核产品演进步骤第一步:架构层面演进多模块(多实例)方式AMP方式基本思路:任务与CPU进行静态绑定分配,屏蔽软件编程上对多核的感知第二步:代码层面演进多线程SMP负载平衡根据对多核技术的理解过程,产品向多核演进可以采用逐步深入的步骤:AMP应用解决方案一控制层:实现信令、协议交互、操作维护管理,业务较为丰富,一般采用通用RTOS;数据层:实现高效率数据处理、转发,一般采用短小精悍的特殊OS,甚至是单任务OS。但考虑到编程效率、维护成本,也可以采用裁剪过的通用RTOS;Core1控制层Core2数据层Core3数据层Core4数据层AMP应用解决方案二业务扩展层:提供丰富灵活的业务扩展能力,良好的用户交互性,一般采用通用嵌入式OS,甚至包括GUI能力,如WINCE、Linux等;基本服务层:提供设备的基本业务能力,强调稳定、高可用、高响应能力,如手机中的编解码、移动信令处理;Core1业务扩展层Core2基本服务层AMP应用解决方案支撑层需提供支持为通用RTOS和特种OS提供统一的OSS封装层,主要是TIPC、分布式扩展机制,尽量屏蔽上层应用与异种OS的相关性;为各种OS提供统一、方便的开发工具(调试、调优);SMP/BMP应用解决方案不考虑多进程地址空间隔离情形,只是多线程调度运行,则需解决:应用层:线程调度运行方式,共享资源互斥保护机制;OSS:封装多种互斥保护机制,如自旋锁;考虑多进程地址空间隔离情形,则还需解决:应用层:全局数据共享访问;OSS:提供进程间通讯机制,需改进分布式通讯机制、内存分配机制、版本管理、任务监控;SMP/BMP应用解决方案一单进程多线程模式一、产品应用进程锁定在某核上应用层:基本无变化,仍然在一个地址空间运行,优先级调度方式、共享资源互斥保护机制、通信方式都延续。可以逐步分离各模块为多进程;OSS:基本无变化;二、产品应用进程不锁定在某核上,即线程可自由调度到各核上运行应用层:考虑线程调度运行方式变化带来的影响,共享资源互斥保护机制;OSS:提供多种互斥保护机制;SMP/BMP应用解决方案二多进程多线程模式应用层:需改造全局数据共享访问机制,共享资源互斥保护机制,调整线程优先级运作方式;OSS:需要实现多实例,改造内存管理、进程间通讯、分布式通讯、互斥保护机制、版本管理方式、任务监控方式;在性能需求较强的场合,可能需要内核任务管理;反之,出于安全性考虑,则可以将所有模块都放到用户态;多核开发支持手段---调试调试AMP调试,需要同时对多个CPU进行调试,各CPU可能运行不同的OSSMP调试,smp线程并发性加强,需要支持线程、进程多种调试方式KIDE支持多target调试,已掌握调试器核心技术,可以方便扩展到多OS上;KIDE支持线程级、进程级、系统级调试模式,可以灵活切换多核开发支持手段---性能调优性能分析 多核的效率建立在并发的基础上,并发效率的调优,需要性能分析工具的支持:锁性能(获取、阻塞、等待时间….)调度性能软件流程并发度分析KProfile与KLinux,KID
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 少先队活动课《民族团结一家亲-同心共筑中国梦》课件
- 【教案】部编语文三上11 一块奶酪【国家级】一
- 发热护理的好处和作用
- 培训机构行政前台
- 《失眠不寐》课件
- 福建省龙岩市2021届高三下学期3月第一次教学质量检测化学试题(解析版)
- 《公司治理内部控制》课件
- 关于物业服务培训
- 天上永远不会掉下玫瑰来如果想要更多的玫瑰需要自己种植
- 信息工程20培训
- 房屋加固施工组织设计方案
- 一企一档模板
- 有限空间作业安全检查表
- 统计学-中国某大学近三年(2018-2021)硕士研究生招生考试自命题科目考试试题
- 新生儿液体外渗的处理赵静
- 城投债的2023:人口迁徙与产业模型市场预期与投资策略
- UL10368线材技术规格参照表
- JJG 1030-2007超声流量计
- GB/T 3452.2-2007液压气动用O形橡胶密封圈第2部分:外观质量检验规范
- GB/T 21415-2008体外诊断医疗器械生物样品中量的测量校准品和控制物质赋值的计量学溯源性
- GB/T 11253-2019碳素结构钢冷轧钢板及钢带
评论
0/150
提交评论