多核编程技术ppt课件_第1页
多核编程技术ppt课件_第2页
多核编程技术ppt课件_第3页
多核编程技术ppt课件_第4页
多核编程技术ppt课件_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2021/1/30,1,第8章 多核并发(并行)程序设计,主讲:黎忠文,2021/1/30,2,目 录 8.1 什么是多核并发(并行)程序设计 8.2 为什么要学习多核程序设计 8.3 多核并发程序设计环境及开发方法 8.4 IXP2400平台上多核程序并发(并行) 设计,2021/1/30,3,8.1 什么是多核并发(并行)程序设计,8.1.1 并发与并行的区别是什么? 并发与并行是两个既相似而又不相同的概念:并发性,又称共行性,是指能处理多个同时性活动的能力;并行是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行,也亦是说并发事件之间不一定要同一时刻发生。 本课程中并发和并行概

2、念基本相同,都包含同时性,同时并发的概念含义更广泛一些,2021/1/30,4,8.1.2 什么是并行计算? 并行计算是相对于串行计算来说的,所谓并行计算分为时间上的并行和空间上的并行。 时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。 并行计算科学中主要研究的是空间上的并行问题。 空间上的并行导致了两类并行机的产生,按照Flynn的说法分为:单指令流多数据流(SIMD)和多指令流多数据流(MIMD)。我们常用的串行机也叫做单指令流单数据流(SISD,8.1 什么是多核并发(并行)程序设计,2021/1/30,5,8.1.3 什么是多核处理器? 两个或多个独立运行

3、的内核集成于同一个处理器上面 双核处理器 =一个处理器上包含2个内核 多核处理器 = 一个处理器上包含2个或多个内核,8.1 什么是多核并发(并行)程序设计,2021/1/30,6,8.1 什么是多核并发(并行)程序设计,8.1.4 为什么要采用多核技术,2021/1/30,7,8.1 什么是多核并发(并行)程序设计,最终目标: 提升用户的体验,摩尔定律 不断发展和改进处理器的性能 最大限度地利用越来越多的晶体管 实现最优的价值 缩减处理时间,提高计算能力 开发平台的新特性和新功能,2021/1/30,8,通过并行方式改进处理器的性能,8.1 什么是多核并发(并行)程序设计,2021/1/30

4、,9,8.1 什么是多核并发(并行)程序设计,Pentium 4 with HT,Dual Xeon Processors,Dual Core,2 Threads 1 Package,2 Threads 2 Packages,2 Threads 1 Package,Two independent execution cores in the same processor,多核技术的发展,2021/1/30,10,几种不同的技术,HT Hyper Threading: 2 threads running on the same processor core 处理器上的某些资源会被共享 使用相同的

5、缓存和运算器 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 什么是多核并发(并行)程序设计,2021/1/30,11,8.1 什么是多核并发(并行)程序设计,双核技术 VS. 超线程技术 双核是真正意义上的双处理器 不会发生资源冲突 每个线程拥有自己的缓存、寄存器和运算器 一个3.2GHz S

6、mithfield在性能上并非等同于3.2GHz P4 with HT 的2倍 HT 使处理器的性能至少提升了1/3 双核的性能相当于2块 non-HT 处理器,2021/1/30,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

7、,Rename/Alloc,uop Queues,BTB,uCode ROM,3,3,Decoder,BTB 而通用处理器则要处理范围很大的各种指令。同时,如果需要新的功能或新的标准,网络处理器可通过编程来实现,以满足各种各样的网络应用,8.4 IXP2400平台上多核程序并发(并行)设计,2021/1/30,45,通用处理器,ASIC和网络处理器的比较表,8.4 IXP2400平台上多核程序并发(并行)设计,2021/1/30,46,8.4 IXP2400平台上多核程序并发(并行)设计,8.4.2 网络处理器的体系结构 网络处理器是一种专门用于网络包处理的CPU,它的设计充分结合了网络环境中

8、数据流的特点。网络处理器由两类硬件功能单元组成,即网络处理单元(Network Processor Unit,NPU)和专用的智能协处理单元。NPU是网络处理器核心,它提供高速、大容量的数据包智能处理功能,其中包括数据包解析、分类和转发等,因此网络处理器单元经常被称为数据包处理引擎(Packet Process Engine, PPE),而不同的协处理器则实现帧分段、重组、分组分类查找、队列缓冲管理、顺序管理、存储器控制和多播支持等功能,2021/1/30,47,8.4 IXP2400平台上多核程序并发(并行)设计,网络处理器结构如下图,2021/1/30,48,8.4 IXP2400平台上多

9、核程序并发(并行)设计,其主要部分说明如下: a) 片内处理器 网络处理器内部包含多个片内处理器,构成 多处理器单元。片内处理器可分为核心处理器和处理引擎两种类型。前者用于系统维护和管理,后者用于快速数据处理,提供分类、调度等多种服务功能。处理引擎可以包括多个硬件线程,每个线程都有一套专门的硬来存放程序运行的上下文,可实现线程切换的零开销。 b)高速 I/O接口单元 网络处理器有多个I/O接口单元,包括物理链路接口、存储接口、存储器接口以及其他外部处理单元的接口等,2021/1/30,49,8.4 IXP2400平台上多核程序并发(并行)设计,c) 内部高速总线 以上多组处理器和I/O接口单元

10、通过内部高速总线连接在一起,组成高速数据通路结构,从而提供强大的硬件并行处理能力。 d) 存储器 网络处理器的存储器一般有数个不同性能的存储结构,以适应不同的应用任务。 e) 专业指令集 片内转发引擎一般具有专业的精简指令集,这些指令都经过针对网络数据吹的优化,例如数据读写、状态判断、堆栈操作、哈希查找等。 f) 专业组件(协处理器) 使用高速处理的通用功能模块,来提高系统性能,2021/1/30,50,8.4 IXP2400平台上多核程序并发(并行)设计,8.4.3 Intel网络处理器 Intel网络处理器是Intel公司为快速实现网络通信服务而开发生产的,它具有高速,并行性处理的特点。I

11、ntel网络处理器有Ixp 1200,Ixp 2400,Ixp 2800 等。Intel网络处理器的技术基础是Intel互联网交换架构(Intel Internet Exchange Architecture),简称Intel IXA。Intel IXA包括三个主要部分:Intel XScale 技术、微引擎技术(microengine)和Intel IXA 可移动架构,2021/1/30,51,XScale :通用RISC处理器,用于初始化、管理芯片和高层应用、网络处理任务。 微引擎 :N个可编程的专用网络数据处理器,主要用于处理数据包。 Intel IXA 可移动架构:一个易于使用的可编程

12、模块化框架,允许不同网络处理器上的软件代码的移植和重用,8.4 IXP2400平台上多核程序并发(并行)设计,2021/1/30,52,IXP2400 网络处理器简介 IXA 是用于Internet 数据交换设备的处理器系统结构,它使得Internet 设备由传统的固定协议、低效率走向具有软件升级功能的高效率可编程设备。IXP2400 是IXA 系统结构的一个具体处理器产品。 其外部特性如下图 所示,8.4 IXP2400平台上多核程序并发(并行)设计,2021/1/30,53,8.4 IXP2400平台上多核程序并发(并行)设计,Intel IXP2400 网络处理器外部特性,2021/1/

13、30,54,1个Intel XScale Core 8个微引擎 多级存储结构 Scratchpad存储器 2个QDR SRAM控制器 1个DDR DRAM控制器 媒体交换结构(MSF) SHaC单元 PCI控制器,IXP2400典型系统结构,8.4 IXP2400平台上多核程序并发(并行)设计,IXP2400的典型模块系统结构,2021/1/30,55,Intel XScale Core处理器 基于ARM V5TE的通用32 位RISC处理器,主频600MHz。 负责芯片的初始化、管理,而且能够完成高层网络处理任务。 不支持浮点指令集 在Intel XScale Core处理器上编程与在通用处

14、理器上编程没有太大不同,返回,8.4 IXP2400平台上多核程序并发(并行)设计,2021/1/30,56,8个微引擎 每个IXP2400处理器带有8个主频为600MHz的微引擎(MicroEngine,以下简称ME),分为两个簇。每簇4个ME,且有独立的命令总线和SRAM 总线,两个簇共享一条DRAM 总线。 ME拥有专门为处理网络数据开发的指令集,包括50 多条针对比特、字节或长字的不同的算术运算和逻辑运算指令,8.4 IXP2400平台上多核程序并发(并行)设计,2021/1/30,57,8个微引擎 每个ME有4k的指令空间,还拥有本地存储器、通用寄存器、传输寄存器、相邻寄存器和乘法等

15、部件。 每个ME可运行8个硬件支持的线程,线程之间的切换是无耗时的,因为每个线程拥有自己独立的寄存器组、程序计数器等,返回,8.4 IXP2400平台上多核程序并发(并行)设计,2021/1/30,58,多级存储体系结构 除了每个微引擎单独拥有的本地存储器外,IXP2400还拥有: 1个16K字节的板载便笺存储器(Scratchpad) 1个DDR SDRAM控制器(最高支持1GB) 2个独立的QDR SRAM控制器(每个控制器最高支持64MB)。 除本地存储器外,其他存储器由所有微引擎以及Intel XScale core共享。表9-1是各种存储器的特性,8.4 IXP2400平台上多核程序

16、并发(并行)设计,2021/1/30,59,ixp2400各级存储器对照表,返回,8.4 IXP2400平台上多核程序并发(并行)设计,2021/1/30,60,媒体交换结构接口(MSF) 媒体交换结构接口是数据进出IXP2400 处理器的接口,包括接收和发送缓存。 接收和发送的过程是一个复杂的对微包(mpacket)进行分割和重组的操作。 微包是由完整数据包切割成具有固定大小的数据块。通过把数据分组被分割成了小的微包,MSF 呈现给程序员的接口就是一个独立于物理MSF 设备或分组格式得收发任务,返回,8.4 IXP2400平台上多核程序并发(并行)设计,2021/1/30,61,SHaC单元

17、 包括3 个主要的子块: 便笺存储器(Scratchpad Memory) 散列单元(Hash Unit) CAP(CSR Access Proxy) 便笺存储器就是前面介绍的多级存储的一员 散列单元是一个多项式散列加速器,Intel XScale 核心处理器和微引擎用它来负责散列的计算,它能够根据同样大小的关键字产生48 位、64 位以及128 位的散列值。 CAP 单元包含一些全片的控制状态寄存器;它们提供特殊的内部处理器通信特征,以允许微引擎之间以及微引擎与核心之间灵活、高效的通信,返回,8.4 IXP2400平台上多核程序并发(并行)设计,2021/1/30,62,PCI控制器 IXP

18、2400 的PCI 单元支持64 位遵循PCI Rev2. 2 的输入输出接口。 PCI 用来连接宿主处理器和PCI 外围设备。它在66MHz 频率时支持64 位接口; 支持主从设备,8.4 IXP2400平台上多核程序并发(并行)设计,2021/1/30,63,网络处理器的技术特点,以上描述的IXP2400特殊的硬件体系结构使它将通用处理器灵活以及ASIC高速的优点集于一身,拥有一系列技术特点,成为下一代网络的核心技术,8.4 IXP2400平台上多核程序并发(并行)设计,2021/1/30,64,可编程性:这是通过提供界面友好而功能强大的编程、调试和性能评价等软件环境来实现的,从而改变AS

19、IC灵活性差的缺点。 并行处理:网络处理器可实现不同级别的并行处理。通过流水线实现指令级的并行,通过硬件线程实现线程级的并行,通过片内多处理器结构实现处理器级的并行。 高速数据处理:网络处理器需要具有线速处理的能力,以避免节点设备成为瓶颈。其硬件结构为此提供了保证。 深层包处理能力:根据不同的服务要求,对27层的数据分组采用“存储-处理-转发”数据分组处理模式以实现复杂的QOS、安全控制、负载均衡等功能模块。NP的出现,标志着设备对数据分组的处理能力从低层处理过渡到高层细化处理,8.4 IXP2400平台上多核程序并发(并行)设计,2021/1/30,65,模块化设计:网络处理器体系结构的模块

20、化也包含不同的层次: 硬件层面和软件层面的模块化。通过模块化设计,力图在保持高性能的基础上获得很好的可扩展性和灵活性,并能使设备厂商容易研发不同性能和不同特性的设备。 可扩展性:网络处理器的可扩展性同样包含硬件可扩展性和服务可扩展性。前者指网络处理器除了可以用来研制小型设备,还可以通过交换机构的连接研制大型设备。后者是指可以在对原有软件结构做很小改动的基础上加入新的服务和功能,8.4 IXP2400平台上多核程序并发(并行)设计,2021/1/30,66,8.4 IXP2400平台上多核程序并发(并行)设计,网络设备软件的三个层面,8.4.4 基于Intel IXP网络处理器的软件设计,202

21、1/1/30,67,网络设备软件的三个层面 数据层面 包括慢速数据通道和快速数据通道。 快速数据通道是由微引擎负责处理的数据转发通道,大部分数据包通过此通道完成处理与转发。 慢速数据通道:由通用RISC核负责处理一些例外复杂的数据包,如数据包分段、带扩展头部的数据包处理等。 控制层面 处理各种通信协议。 转发表和状态信息维护。 管理层面 安装配置接口。 策略管理接口。 系统管理、统计、计费,8.4 IXP2400平台上多核程序并发(并行)设计,2021/1/30,68,Microengine Pipeline,IXA软件框架,8.4 IXP2400平台上多核程序并发(并行)设计,2021/1/

22、30,69,多微引擎、多线程的并行设计 基于网络处理器成功构建一个网络系统的关键在于网络处理器软件系统的设计与开发,其核心问题就是要软件系统充分发挥网络处理器灵活性和高性能的特点。 网络处理器软件系统实现的一个挑战在于软件设计与网络处理器的硬件结构关系非常紧密,必须面向网络处理器的硬件体系结构编程,通过合理分配和使用网络处理器为优化数据包处理的各种硬件资源,如多处理引擎、专用硬件处理单元、各类寄存器、片上内存和其它硬件单元,才能得到一个高性能的系统,8.4 IXP2400平台上多核程序并发(并行)设计,2021/1/30,70,通常情况下,在微引擎上运行的应用软件包含多个线程,多个线程运行在多个微引擎上。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论