第一章多核技术导论王超Email:bdking78@126.com《多核多线程技术》教学课程之课程说明学习目的掌握多核体系的基本原理,了解多核体系架构,能在多核平台上进行并行编程,会使用相关工具进行程序优化及调试,学会使用多核技术解决本学科的问题,能独立完成所要求的实验内容。主要教材《多核程序设计》,上海交通大学出版社,2011学时安排总学时32,授课16学时,上机实习16学时课程主要讲授内容多核架构与并行计算多线程编程理论Windows系统下的多线程编程技术高性能多核程序设计与优化技术IntelsoftwareTools的使用(ParallelStudio)实验主要内容多核平台测试与Windows环境下的编程Windows系统下多线程编程Windows系统下OpenMP编程基于Intel工具的多线程程序调试第一章多核技术导论1.1微处理器发展史1.2并行计算机1.3片上多核处理器架构1.4操作系统对多核处理器的支持方法1.1微处理器发展史1945年,世界上第一台全自动电子数字计算机ENIAC计算机的发展按照硬件工艺可以分为第一代(1946~1958):电子管数字计算机。第二代(1958~1964):晶体管数字计算机。第三代(1964~1971):集成电路数字计算机。第四代(1971年以后):大规模集成电路数字计算机。微处理器第一代微处理器(4位):英特尔4004,8008第二代微处理器(8位):采用NMOS工艺,采用汇编语言、BASIC、Fortran编程,使用单用户操作系统。如英特尔8080,8085。第三代微处理器(16位):以1978年英特尔的8086出现为起点。第四代微处理器(32位):运算模式包括实模式、保护模式和“虚拟86”。英特尔80386DX,80486,Pentium4…计算机的发展阶段(按硬件工艺分)计算机先驱--BabbageAnalyzer1945年,世界上第一台全自动电子数字计算机ENIAC(ElectronicNumericalIntegratorandCalculator,即电子数字积分器和计算器)是美国奥伯丁武器试验场为了满足计算弹道需要而研制成的,于1946年2月交付使用,共服役9年。它采用电子管作为计算机的基本元件,每秒可进行5000次加减运算。它使用了18000只电子管,10000只电容,7000只电阻,体积3000立方英尺,占地170平方米,重量30吨,耗电140~150千瓦。ENIAC机的问世具有划时代的意义,表明计算机时代的到来。在以后的40多年里,计算机技术发展异常迅速,在人类科技史上还没有一种学科可以与电子计算机的发展速度相提并论。第一代(1946~1958):电子管数字计算机。计算机的逻辑元件采用电子管,主存储器采用汞延迟线、磁鼓、磁芯;外存储器采用磁带;软主要采用机器语言、汇编语言;应用以科学计算为主。其特点是体积大、耗电大、可靠性差、价格昂贵、维修复杂。它奠定了以后计算机技术的基础。第二代(1958~1964):晶体管数字计算机。晶体管的发明推动了计算机的发展,逻辑元件采用了晶体管以后,计算机的体积大大缩小,耗电减少,可靠性提高,性能比第一代计算机有很大的提高。主存储器采用磁芯,外存储器已开始使用更先进的磁盘;软件有了很大发展,出现了各种各样的高级语言及其编译程序,还出现了以批处理为主的操作系统,应用以科学计算和各种事务处理为主,并开始用于工业控制。第三代(1964~1971):集成电路数字计算机。20世纪60年代,计算机的逻辑元件采用小(SSI)、中规模集成电路(SSI、MSI),计算机的体积更小型化、耗电量更少、可靠性更高,性能比第十代计算机又有了很大的提高。这时,小型机也蓬勃发展起来,应用领域日益扩大。主存储器仍采用磁芯,软件逐渐完善,分时操作系统、会话式语言等多种高级语言都有新的发展。第四代(1971年以后):大规模集成电路数字计算机。计算机的逻辑元件和主存储器都采用了大规模集成电路(LSI)。所谓大规模集成电路是指在单片硅片上集成1000~2000个以上晶体管的集成电路,其集成度比中、小规模的集成电路提高了1~2个以上数量级。这时计算机发展到了微型化、耗电极少、可靠性很高的阶段。大规模集成电路使军事工业、空间技术、原子能技术得到发展,这些领域的蓬勃发展对计算机提出了更高的要求,有力地促进了计算机工业的空前大发展。4位、8位与16位微处理器1971年,英特尔公司推出了世界上第一款微处理器4004,这是第一个可用于微型计算机的四位微处理器,它包含2300个晶体管。随后英特尔又推出了8008,1974年,8008发展成8080,成为第二代微处理器。8080作为代替电子逻辑电路的器件被用于各种应用电路和设备中,如果没有微处理器,这些应用就无法实现。Intel4004Intel8008由于微处理器可用来完成很多以前需要用较大设备完成的计算任务,价格又便宜,于是各半导体公司开始竞相生产微处理器芯片。Zilog公司生产了8080的增强型Z80,摩托罗拉公司生产了6800,英特尔公司于1976年又生产了增强型8085。这些芯片基本没有改变8080的基本特点,都属于第二代微处理器。它们均采用NMOS工艺,集成度约9000只晶体管,平均指令执行时间为1μS~2μS,采用汇编语言、BASIC、Fortran编程,使用单用户操作系统。1978年英特尔公司生产的8086是第一个16位的微处理器。很快Zilog公司和摩托罗拉公司也宣布计划生产Z8000和68000。这就是第三代微处理器的起点。8086微处理器最高主频速度为8MHz,具有16位数据通道,内存寻址能力为1MB。同时英特尔还生产出与之相配合的数学协处理器i8087,这两种芯片使用相互兼容的指令集,但i8087指令集中增加了一些专门用于对数、指数和三角函数等数学计算的指令。人们将这些指令集统一称之为x86指令集。1979年,英特尔公司又开发出了8088。8086和8088在芯片内部均采用16位数据传输,所以都称为16位微处理器,但8086每周期能传送或接收16位数据,而8088每周期只采用8位。因为最初的大部分设备和芯片是8位的,而8088的外部8位数据传送、接收能与这些设备相兼容。8088采用40针的DIP封装,工作频率为6.66MHz、7.16MHz或8MHz,微处理器集成了大约29000个晶体管。Intel8086/8088架构8086和8088问世后不久,英特尔公司就开始对他们进行改进,他们将更多功能集成在芯片上,这样就诞生了80186和80188。这两款微处理器内部均以16位工作,在外部输入输出上80186采用16位,而80188和8088一样是采用8位工作。1981年,美国IBM公司将8088芯片用于其研制的PC机中,从而开创了全新的微机时代。也正是从8088开始,个人电脑(PC)的概念开始在全世界范围内发展起来。从8088应用到IBMPC机上开始,个人电脑真正走进了人们的工作和生活之中,它也标志着一个新时代的开始。第一台PC的诞生(IBM,1981)Intel8088MicroprocessorFirstPCequippedby80881982年,英特尔公司在8086的基础上,研制出了80286微处理器,该微处理器的最大主频为20MHz,内部、外部数据传输均为16位,使用24位内存储器的寻址,内存寻址能力为16MB。80286可工作于两种方式,一种叫实模式,另一种叫保护方式。在实模式下,微处理器可以访问的内存总量限制在1兆字节;而在保护方式之下,80286可直接访问16兆字节的内存。此外,80286工作在保护方式之下,可以保护操作系统,使之不像实模式或8086等不受保护的微处理器那样,在遇到异常应用时会使系统停机。TheNewFormofPortablePCIn1981,AdamOsbornecompletesthefirstportablecomputer,theOsborneI,whichweighs24pounds.AwardoftheFirstPCThesameyearin1983,TimemagazinenamesthecomputerMachineoftheYear.OneoftheGUIOS.TheAppleMacintoshIn1984,AppledebuteditsMacintosh,whichpopularizedthegraphiticuserinterface,knownastheGUI.MacintoshSystem1.0APPLEIAPPLEIIAPPLEIIPLUSAPPLEIIPlusAPPLEIICAPPLEIIGSAppleⅢ/Ⅲ+LISAILisastandsforLocalIntegratedSoftwareArchitecture.LISAⅡMacXLTheMacintoshMacintoshSystem2.0IBM公司将80286微处理器用在先进技术微机(AT机)中,引起了极大的轰动。80286在以下四个方面比它的前辈有显著的改进:支持更大的内存;能够模拟内存空间;能同时运行多个任务;提高了处理速度。最早PC机的速度是4MHz,第一台基于80286的AT机运行速度为6MHz至8MHz,一些制造商还自行提高速度,使80286达到了20MHz,这意味着性能上有了重大的进步。32位微处理器1985年10月17日,英特尔划时代的产品80386DX正式发布,其内部包含27.5万个晶体管,时钟频率为12.5MHz,后逐步提高到20MHz、25MHz、33MHz、40MHz。80386DX的内部和外部数据总线是32位,地址总线也是32位,可以寻址到4GB内存,并可以管理64TB的虚拟存储空间。它的运算模式除了具有实模式和保护模式以外,还增加了一种“虚拟86”的工作方式,可以通过同时模拟多个8086微处理器来提供多任务能力。虽然当时80386没有完善和强大的浮点运算单元,但配上80387协处理器,80386就可以顺利完成许多需要大量浮点运算的任务,从而顺利进入了主流的商用电脑市场。另外,30386还有其他丰富的外围配件支持,如82258(DMA控制器)、8259A(中断控制器)、8272(磁盘控制器)、82385(Cache控制器)、82062(硬盘控制器)等。针对内存的速度瓶颈,英特尔为80386设计了高速缓存(Cache),采取预读内存的方法来缓解这个速度瓶颈,从此以后,Cache就和CPU成为了如影随形的东西。1989年,英特尔推出80486芯片。这款芯片首次实破了100万个晶体管的界限,集成了120万个晶体管,使用1微米的制造工艺。80486的时钟频率从25MHz逐步提高到33MHz、40MHz、50MHz。80486是将80386和数学协微处理器80387以及一个8KB的高速缓存集成在一个芯片内。80486中集成的80487的数字运算速度是以前80387的两倍,内部缓存缩短了微处理器与慢速DRAM的等待时间。并且,在80x86系列中首次采用了RISC(精简指令集)技术,可以在一个时钟周期内执行一条指令。它还采用了突发总线方式,大大提高了与内存的数据交换速度。由于这些改进,80486的性能比带有80387数学协微处理器的80386DX性能提高了4倍。Creative声卡诞生CreativeLabsreleasesitsfirstSoundBlaster*audiocardforthePC.互联网诞生1990,InGeneva,Switzerland,TimBerners-LeedevelopsanewtechniquefordistributinginformationontheInternet,eventuallycalledtheWorldWideWeb.MACPortableSummer1989,MacPortabledebuted,withthepricedoubleof