欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    多核编程技术ppt课件.ppt

    • 资源ID:1640785       资源大小:906.50KB        全文页数:74页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    多核编程技术ppt课件.ppt

    2022/12/12,1,第8章 多核并发(并行)程序设计,主讲:黎忠文,2022/12/12,2,目 录8.1 什么是多核并发(并行)程序设计8.2 为什么要学习多核程序设计8.3 多核并发程序设计环境及开发方法8.4 IXP2400平台上多核程序并发(并行) 设计,2022/12/12,3,8.1 什么是多核并发(并行)程序设计,8.1.1 并发与并行的区别是什么? 并发与并行是两个既相似而又不相同的概念:并发性,又称共行性,是指能处理多个同时性活动的能力;并行是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行,也亦是说并发事件之间不一定要同一时刻发生。 本课程中并发和并行概念基本相同,都包含同时性,同时并发的概念含义更广泛一些。,2022/12/12,4,8.1.2 什么是并行计算?并行计算是相对于串行计算来说的,所谓并行计算分为时间上的并行和空间上的并行。 时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。 并行计算科学中主要研究的是空间上的并行问题。 空间上的并行导致了两类并行机的产生,按照Flynn的说法分为:单指令流多数据流(SIMD)和多指令流多数据流(MIMD)。我们常用的串行机也叫做单指令流单数据流(SISD)。,8.1 什么是多核并发(并行)程序设计,2022/12/12,5,8.1.3 什么是多核处理器?两个或多个独立运行的内核集成于同一个处理器上面双核处理器 =一个处理器上包含2个内核多核处理器 = 一个处理器上包含2个或多个内核,8.1 什么是多核并发(并行)程序设计,2022/12/12,6,8.1 什么是多核并发(并行)程序设计,8.1.4 为什么要采用多核技术?,2022/12/12,7,8.1 什么是多核并发(并行)程序设计,最终目标: 提升用户的体验,摩尔定律 不断发展和改进处理器的性能最大限度地利用越来越多的晶体管实现最优的价值缩减处理时间,提高计算能力开发平台的新特性和新功能,2022/12/12,8,通过并行方式改进处理器的性能,8.1 什么是多核并发(并行)程序设计,2022/12/12,9,8.1 什么是多核并发(并行)程序设计,Pentium 4with HT,Dual Xeon Processors,Dual Core,2 Threads1 Package,2 Threads2 Packages,2 Threads1 Package,Two independent execution cores in the same processor,多核技术的发展,2022/12/12,10,几种不同的技术,HT Hyper Threading: 2 threads running on the same processor core处理器上的某些资源会被共享使用相同的缓存和运算器DC Dual Core: 2 execution cores in the same processor package共享系统总线与双处理器的性能相同DP/MP Dual/Multi-Processing: 2 or more processors in the same system只共享系统总线,独立缓存高性能,资源冲突少,8.1 什么是多核并发(并行)程序设计,2022/12/12,11,8.1 什么是多核并发(并行)程序设计,双核技术 VS. 超线程技术双核是真正意义上的双处理器 不会发生资源冲突每个线程拥有自己的缓存、寄存器和运算器一个3.2GHz Smithfield在性能上并非等同于3.2GHz P4 with HT 的2倍HT 使处理器的性能至少提升了1/3 双核的性能相当于2块 non-HT 处理器,2022/12/12,12,8.1 什么是多核并发(并行)程序设计Single core , With HT ( Eg. Pentium 4 Processor With HT )Integer and Floating Point Threads,L2 Cache and Control,L2 Cache and Control,L1 D-Cache and D-TLB,Schedulers,Integer,Trace Cache,Rename/Alloc,uop Queues,BTB,uCodeROM,3,3,Decoder,BTB & I-TLB,FloatingPoint,2 threads can be executed at the same time (per processor) if theyre not competing for the same execution resource,2022/12/12,13,8.1 什么是多核并发(并行)程序设计Single core , With HT( Eg. Pentium 4 Processor with HT )Two Floating Point Threads,2 threads CANNOT be executed at the same time (per processor) if theyre competing for the same execution resource (eg. 2 floating point threads in a P4P architecture),2022/12/12,14,8.1 什么是多核并发(并行)程序设计Dual core , Without HT( Eg. Pentium D Processor )Two Floating Point Threads,Even 2 floating pointthreads can be executedat the same time now(per processor) as there are multiple floating point execution units,2022/12/12,15,8.1 什么是多核并发(并行)程序设计Dual core , With HT( Eg. Dual Core Pentium Processor Extreme Edition )Supports HTMultiple Integer and Floating Point Threads,With dual core & HT together, maximum # of threads that can be executed at a time is 4 per processor,2022/12/12,16,多核技术与超线程技术的结合,产 量 多功能 功 效,Dual Core with Hyper-Threading4 threads/socket,Dual Core2 threads/socket,8.1 什么是多核并发(并行)程序设计,2022/12/12,17,AMD与Intel双核架构的对比,AMD Opteron双核架构示意图,Intel 奔腾至尊版双核架构示意图,8.1 什么是多核并发(并行)程序设计,2022/12/12,18,DualCore、SMP、Cluster,8.1 什么是多核并发(并行)程序设计,2022/12/12,19,8.2 为什么要学习多核程序设计,8.2.1 背景:科学技术的发展呼唤巨大的、不断增长的计算能力中长期天气预报。每增加一天,要求计算速度增加一个数量级。三天 百万次/sec,四天 千万次/sec,五天亿次/sec信息战。关键是对信息的处理速度,如雷达信息的处理地震预报预测石油勘测生物信息处理,2022/12/12,20,8.2.2 提高计算能力的基本途径器件:新工艺(超大规模集成电路)新材料(生物计算机、光计算机)系统结构的改进:主要是克服Von Neumann的瓶颈问题。流水线计算机、向量计算机、多处理机、并行计算机、集群。,8.2 为什么要学习多核程序设计,2022/12/12,21,8.2.3 现实状况计算能力几乎提高了上万倍,但是,实际的并行计算能力提高只有几十倍。原因:不能利用计算机的并行处理能力。也就是没有解决并行计算中的并行程序设计的问题。 其核心问题是并行算法,Back,8.2 为什么要学习多核程序设计,2022/12/12,22,8.3 多核并发(并行)程序设计环境 及开发方法,8.3.1 硬件系统并行计算机系统分类按指令与数据分SIMD,MIMD,SPMD,MPMD按存储方式分共享内存,分布式内存,分布式共享内存,2022/12/12,23,指令与数据SIMD(Single-Instruction Multiple-Data),同时用相同的指令对不同的数据进行操作MIMD(Multiple-Instruction Multiple-Data),同时有多条指令对不同的数据进行操作SPMD(Single-Program Multuple-Data),同时执行相同的程序对不同数据操作MPMD(Multiple-Program Multuple-Data),同时有多个程序对不同的数据进行操作,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,24,存储方式,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,25,8.3 多核并发(并行)程序设计环境及开发方法,8.3.2 软件系统开发人员已经设计并实现了一些有趣的编程模型,有助于开发并行应用程序,最流行的就是用于共享内存编程的OpenMP和用于分布式内存编程的MPI。,2022/12/12,26,.,8.3.2.1 共享内存编程的OpenMP OpenMP是一种工业标准的API设计规范,是由Sun、HP、IBM和Intel等多家顶级计算机厂商和软件开发商联手推出的,其目的在于为软件开发人员提供一种通用的规范,使其可以很方便地设计新并行应用程序或修改及并行化现有串行应用程序,从而利用配置了多处理器计算系统的共享内存。可移植性也是OpenMP的主要目标之一,使用OpenMP开发的并行应用程序源代码可由支持OpenMP的任何编译器编译,且编译好的二进制代码可在目标硬件平台上运行,以获得出色的并行性能 。,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,27,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,28,8.3 多核并发(并行)程序设计环境及开发方法,最流行的本地编程语言Fortran和C/C+都支持OpenMP。上图给出了分别以C/C+和Fortran编写的简单OpenMP程序示例。在本例中,将y数组加到x数组这一循环迭代操作,是以并行方式执行的。源代码中的编译指示、指令和编程API调用表示了OpenMP的结构。OpenMP 的结构允许程序员指定并行区域、同步和数据作用域属性,它还支持用于指定运行时配置的环境变量,例如,环境变量OMP_NUM_THREADS指定了运行时所使用的工作线程的数量。,2022/12/12,29,8.3.2.2 分布式内存编程的MPI什么是MPI?是一个库而不是一门语言是一种标准或规范的代表而不特指某一个对它的具体实现是一种消息传递编程模型并成为这种编程模型的代表和事实上的标准对MPI的使用必须和特定的语言结合起来进行:C,JAVA,FORTRAN目前主要的MPI实现MPICH: http:/www-unix.mcs.anl.gov/mpi/mpichChimp : ftp:/ftp.epcc.ed.ac.uk/pub/packages/chimp/release/Lam : http:/www.mpi.nd.edu/lam/,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,30,MPI并行程序设计平台由标准消息传递函数及相关辅助函数构成,多个进程通过调用这些函数(类似调用子程序),进行通信;,一个程序同时启动多份,形成多个独立的进程, 在不同的处理机上运行,拥有独立的内存空间, 进程间通信通过调用MPI函数来实现;每个进程 开始执行时,将获得一个唯一的序号(rank)。 例如启动P个进程,序号依次为0,1,P-1;,MPI并行进程的实现,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,31,消息传递是相对于进程间通信方式而言的,与具体并行机存储模式无关,任何支持进程间通信的并行机,均可支持消息传递并行程序设计;几乎有共享和分布存储并行计算环境均支持进程间的消息传递通信;,进程0发送一个整数给进程1;进程1将该数加1,传递给进程2;进程2再将该数加1,再传递给进程3;依次类推,最后,进程N-1将该数传递给进程0,由进程1负责广播该数给所有进程,并打印输出。,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,32,8.3 多核并发(并行)程序设计环境及开发方法,8.3.3 多核并发(并行)开发方法PRAM 模型,BSP 模型,logP 模型,C3模型功能设计,分治设计,平衡树设计,倍增设计,2022/12/12,33,8.3.4 多核并发(并行)开发的四个阶段划分(Partitioning):分解成小的任务,开拓并发性;通讯(Communication) :确定诸任务间的数据交换,监测划分的合理性;组合(Agglomeration) :依据任务的局部性,组合成更大的任务;映射(Mapping) :将每个任务分配到处理器上,提高算法的性能。,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,34,PCAM设计过程,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,35,划分判据划分是否具有灵活性?划分是否避免了冗余计算和存储?划分任务尺寸是否大致相当?任务数与问题尺寸是否成比例?功能分解是一种更深层次的分解,是否合理?,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,36,通讯通讯是PCAM设计过程的重要阶段;划分产生的诸任务,一般不能完全独立执行,需要在任务间进行数据交流;从而产生了通讯;功能分解确定了诸任务之间的数据流;诸任务是并发执行的,通讯则限制了这种并发性;,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,37,通讯判据所有任务是否执行大致相当的通讯?是否尽可能的局部通讯?通讯操作是否能并行执行?同步任务的计算能否并行执行?,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,38,组合组合是由抽象到具体的过程,是将组合的任务能在一类并行机上有效的执行;合并小尺寸任务,减少任务数。如果任务数恰好等于处理器数,则也完成了映射过程;通过增加任务的粒度和重复计算,可以减少通讯成本;保持映射和扩展的灵活性,降低软件工程成本;,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,39,组合判据增加粒度是否减少了通讯成本?重复计算是否已权衡了其得益?是否保持了灵活性和可扩放性?组合的任务数是否与问题尺寸成比例?是否保持了类似的计算和通讯?有没有减少并行执行的机会?,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,40,映射每个任务要映射到具体的处理器,定位到运行机器上;任务数大于处理器数时,存在负载平衡和任务调度问题;映射的目标:减少算法的执行时间并发的任务 不同的处理器任务之间存在高通讯的 同一处理器映射实际是一种权衡,属于NP完全问题,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,41,映射判据采用集中式负载平衡方案,是否存在通讯瓶颈?采用动态负载平衡方案,调度策略的成本如何?,8.3 多核并发(并行)程序设计环境及开发方法,2022/12/12,42,8.4.1 网络处理器的由来 在网络发展初期,网络传输的速率较低,带宽一般不超过155Mb/s(SONET的OC-3),这个时期的网络处理设备一般是基于CPU,即通过在CPU上运行相关软件来实现各种网络功能。这种方法有很大的好处是有很大的灵活性,可以通过更新软件来完善原有的功能或加入新的功能。这种方法能满足当时的网络处理性能要求。网络通信的瓶颈是带宽而不是处理器的性能。,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,43,随着光纤通讯的出现,网络带宽已经达到了10Gb/s(OC-192)甚至40Gb/s(OC-768),大大超过了通用CPU的处理速度。带宽已经不是网络的瓶颈,而基于软件的节点设备逐渐变成了网络的瓶颈。因此,需要想办法提高网络设备的性能。这时先出现的是ASIC(Application Specific Integrated Circuit,专用集成电路)。ASIC通过把指令或计算逻辑固化到硬件中,由此获得很高的处理速度。因此它能够满足网络设备对性能的要求。ASIC在完成规定的处理工作方面是相当出色的,但是,它也有不足之处,开发周期太长和不可编程的弊端。,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,44,正因为上面的两种方案都不能很好的完成网络处理的要求。因此,一种新的可编程、专门用于网络处理的的处理器就出现了。它既有网络服务所需的高性能,又有高灵活性。网络处理其通过良好的体系结构设计和专门针对网络处理优化的部件,提供了一个可编程控制环境,可以很好的解决硬件加速和软件可扩展的问题。它同通用的处理器的不同之处在于:网络处理器是为优化包处理而设计的,它将包以其到达的速度送到下一个节点;而通用处理器则要处理范围很大的各种指令。同时,如果需要新的功能或新的标准,网络处理器可通过编程来实现,以满足各种各样的网络应用。,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,45,通用处理器,ASIC和网络处理器的比较表,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,46,8.4 IXP2400平台上多核程序并发(并行)设计,8.4.2 网络处理器的体系结构 网络处理器是一种专门用于网络包处理的CPU,它的设计充分结合了网络环境中数据流的特点。网络处理器由两类硬件功能单元组成,即网络处理单元(Network Processor Unit,NPU)和专用的智能协处理单元。NPU是网络处理器核心,它提供高速、大容量的数据包智能处理功能,其中包括数据包解析、分类和转发等,因此网络处理器单元经常被称为数据包处理引擎(Packet Process Engine, PPE),而不同的协处理器则实现帧分段、重组、分组分类查找、队列缓冲管理、顺序管理、存储器控制和多播支持等功能。,2022/12/12,47,8.4 IXP2400平台上多核程序并发(并行)设计,网络处理器结构如下图:,2022/12/12,48,8.4 IXP2400平台上多核程序并发(并行)设计,其主要部分说明如下:a) 片内处理器 网络处理器内部包含多个片内处理器,构成 多处理器单元。片内处理器可分为核心处理器和处理引擎两种类型。前者用于系统维护和管理,后者用于快速数据处理,提供分类、调度等多种服务功能。处理引擎可以包括多个硬件线程,每个线程都有一套专门的硬来存放程序运行的上下文,可实现线程切换的零开销。b)高速 I/O接口单元 网络处理器有多个I/O接口单元,包括物理链路接口、存储接口、存储器接口以及其他外部处理单元的接口等。,2022/12/12,49,8.4 IXP2400平台上多核程序并发(并行)设计,c) 内部高速总线 以上多组处理器和I/O接口单元通过内部高速总线连接在一起,组成高速数据通路结构,从而提供强大的硬件并行处理能力。d) 存储器 网络处理器的存储器一般有数个不同性能的存储结构,以适应不同的应用任务。e) 专业指令集 片内转发引擎一般具有专业的精简指令集,这些指令都经过针对网络数据吹的优化,例如数据读写、状态判断、堆栈操作、哈希查找等。f) 专业组件(协处理器) 使用高速处理的通用功能模块,来提高系统性能。,2022/12/12,50,8.4 IXP2400平台上多核程序并发(并行)设计,8.4.3 Intel网络处理器 Intel网络处理器是Intel公司为快速实现网络通信服务而开发生产的,它具有高速,并行性处理的特点。Intel网络处理器有Ixp 1200,Ixp 2400,Ixp 2800 等。Intel网络处理器的技术基础是Intel互联网交换架构(Intel Internet Exchange Architecture),简称Intel IXA。Intel IXA包括三个主要部分:Intel XScale 技术、微引擎技术(microengine)和Intel IXA 可移动架构。,2022/12/12,51,XScale :通用RISC处理器,用于初始化、管理芯片和高层应用、网络处理任务。微引擎 :N个可编程的专用网络数据处理器,主要用于处理数据包。Intel IXA 可移动架构:一个易于使用的可编程模块化框架,允许不同网络处理器上的软件代码的移植和重用。,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,52,IXP2400 网络处理器简介IXA 是用于Internet 数据交换设备的处理器系统结构,它使得Internet 设备由传统的固定协议、低效率走向具有软件升级功能的高效率可编程设备。IXP2400 是IXA 系统结构的一个具体处理器产品。其外部特性如下图 所示。,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,53,8.4 IXP2400平台上多核程序并发(并行)设计,.Intel IXP2400 网络处理器外部特性,2022/12/12,54,1个Intel XScale Core8个微引擎多级存储结构Scratchpad存储器2个QDR SRAM控制器1个DDR DRAM控制器媒体交换结构(MSF)SHaC单元PCI控制器,IXP2400典型系统结构,8.4 IXP2400平台上多核程序并发(并行)设计,IXP2400的典型模块系统结构,2022/12/12,55,Intel XScale Core处理器基于ARM V5TE的通用32 位RISC处理器,主频600MHz。负责芯片的初始化、管理,而且能够完成高层网络处理任务。不支持浮点指令集在Intel XScale Core处理器上编程与在通用处理器上编程没有太大不同,返回,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,56,8个微引擎每个IXP2400处理器带有8个主频为600MHz的微引擎(MicroEngine,以下简称ME),分为两个簇。每簇4个ME,且有独立的命令总线和SRAM 总线,两个簇共享一条DRAM 总线。ME拥有专门为处理网络数据开发的指令集,包括50 多条针对比特、字节或长字的不同的算术运算和逻辑运算指令。,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,57,8个微引擎每个ME有4k的指令空间,还拥有本地存储器、通用寄存器、传输寄存器、相邻寄存器和乘法等部件。每个ME可运行8个硬件支持的线程,线程之间的切换是无耗时的,因为每个线程拥有自己独立的寄存器组、程序计数器等。,返回,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,58,多级存储体系结构除了每个微引擎单独拥有的本地存储器外,IXP2400还拥有: 1个16K字节的板载便笺存储器(Scratchpad) 1个DDR SDRAM控制器(最高支持1GB) 2个独立的QDR SRAM控制器(每个控制器最高支持64MB)。除本地存储器外,其他存储器由所有微引擎以及Intel XScale core共享。表9-1是各种存储器的特性。,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,59,ixp2400各级存储器对照表,返回,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,60,媒体交换结构接口(MSF)媒体交换结构接口是数据进出IXP2400 处理器的接口,包括接收和发送缓存。接收和发送的过程是一个复杂的对微包(mpacket)进行分割和重组的操作。微包是由完整数据包切割成具有固定大小的数据块。通过把数据分组被分割成了小的微包,MSF 呈现给程序员的接口就是一个独立于物理MSF 设备或分组格式得收发任务。,返回,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,61,SHaC单元包括3 个主要的子块:便笺存储器(Scratchpad Memory)散列单元(Hash Unit)CAP(CSR Access Proxy)便笺存储器就是前面介绍的多级存储的一员散列单元是一个多项式散列加速器,Intel XScale 核心处理器和微引擎用它来负责散列的计算,它能够根据同样大小的关键字产生48 位、64 位以及128 位的散列值。CAP 单元包含一些全片的控制状态寄存器;它们提供特殊的内部处理器通信特征,以允许微引擎之间以及微引擎与核心之间灵活、高效的通信。,返回,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,62,PCI控制器IXP2400 的PCI 单元支持64 位遵循PCI Rev2. 2 的输入输出接口。PCI 用来连接宿主处理器和PCI 外围设备。它在66MHz 频率时支持64 位接口;支持主从设备。,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,63,网络处理器的技术特点,以上描述的IXP2400特殊的硬件体系结构使它将通用处理器灵活以及ASIC高速的优点集于一身,拥有一系列技术特点,成为下一代网络的核心技术。,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,64,可编程性:这是通过提供界面友好而功能强大的编程、调试和性能评价等软件环境来实现的,从而改变ASIC灵活性差的缺点。 并行处理:网络处理器可实现不同级别的并行处理。通过流水线实现指令级的并行,通过硬件线程实现线程级的并行,通过片内多处理器结构实现处理器级的并行。 高速数据处理:网络处理器需要具有线速处理的能力,以避免节点设备成为瓶颈。其硬件结构为此提供了保证。深层包处理能力:根据不同的服务要求,对27层的数据分组采用“存储-处理-转发”数据分组处理模式以实现复杂的QOS、安全控制、负载均衡等功能模块。NP的出现,标志着设备对数据分组的处理能力从低层处理过渡到高层细化处理。,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,65,模块化设计:网络处理器体系结构的模块化也包含不同的层次: 硬件层面和软件层面的模块化。通过模块化设计,力图在保持高性能的基础上获得很好的可扩展性和灵活性,并能使设备厂商容易研发不同性能和不同特性的设备。 可扩展性:网络处理器的可扩展性同样包含硬件可扩展性和服务可扩展性。前者指网络处理器除了可以用来研制小型设备,还可以通过交换机构的连接研制大型设备。后者是指可以在对原有软件结构做很小改动的基础上加入新的服务和功能。,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,66,8.4 IXP2400平台上多核程序并发(并行)设计,网络设备软件的三个层面,8.4.4 基于Intel IXP网络处理器的软件设计,2022/12/12,67,网络设备软件的三个层面数据层面包括慢速数据通道和快速数据通道。快速数据通道是由微引擎负责处理的数据转发通道,大部分数据包通过此通道完成处理与转发。慢速数据通道:由通用RISC核负责处理一些例外复杂的数据包,如数据包分段、带扩展头部的数据包处理等。控制层面处理各种通信协议。转发表和状态信息维护。管理层面安装配置接口。策略管理接口。系统管理、统计、计费。,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,68,MicroenginePipeline,IXA软件框架,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,69,多微引擎、多线程的并行设计基于网络处理器成功构建一个网络系统的关键在于网络处理器软件系统的设计与开发,其核心问题就是要软件系统充分发挥网络处理器灵活性和高性能的特点。网络处理器软件系统实现的一个挑战在于软件设计与网络处理器的硬件结构关系非常紧密,必须面向网络处理器的硬件体系结构编程,通过合理分配和使用网络处理器为优化数据包处理的各种硬件资源,如多处理引擎、专用硬件处理单元、各类寄存器、片上内存和其它硬件单元,才能得到一个高性能的系统。,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,70,通常情况下,在微引擎上运行的应用软件包含多个线程,多个线程运行在多个微引擎上。需要考虑并行程序设计问题。如何实现线速处理?如何保持数据包的顺序?如何在多个线程间传递数据包的状态?如何实现数据互斥?如何隐藏存储器访问时延?如何对数据包进行排队?,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,71,IXP2400处理过程举例,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,72,IXP2400处理过程举例1. SDH设备接收到一个packet2. MSF将packet拆分为多个mpacket,将mpacket写入RBUF Element3. MSF通知Receive_Free_list中等待数据的线程4. 接收线程根据RSW将mpacket直接从RBUF Element读到DRAM,并将mpacket重组为packet5. 接收线程将packet放到Scratchpad Ring排队6. 处理线程从Scratchpad Ring取出packet,8.4 IXP2400平台上多核程序并发(并行)设计,2022/12/12,73,8.4 IXP2400平台上多核程序并发(并行)设计,7. 从DRAM中读出packet中需要处理的内容8. 对数据作处理9. 处理完的数据放到SRAM Queue中排队10. 发送线程从SRAM Queue取出数据11. 将发送packet分为多个mpacket,从DRAM直接写入TBUF Element12. 写TBUF发送控制字,MSF开始发送数据13. SDH设备向线路上发送packet,2022/12/12,74,本讲小结理解多核程序设计的基本原理了解IXP2400平台上进行多核程序并发(并行)设计的过程,

    注意事项

    本文(多核编程技术ppt课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开