精华内容
下载资源
问答
  • 多种微处理器的工业控制系统中共用存储体的方法,论述了多微处理器的工业控制系统共用存储体的工作原理和电路结构,解决了在多种微处理器系统中同时访问共用存储体问题。使上位机系统与下位机系统的数据传输由一般的...
  • 基于多微处理器系统设计的分布式仲裁逻辑电路、电子技术,开发板制作交流
  • 对多媒体微处理器VG2 嵌入USB主机控制器的软、硬件结构设计做了详细介绍,给出了VG2与USB接口电路原理图,实现了基于μCOS-Π的USB摄像头视频数据采集。
  • 多种微处理器的工业控制系统中共用存储体的方法,论述了多微处理器的工业控制系统共用存储体的工作原理和电路结构,解决了在多种微处理器系统中同时访问共用存储体问题。使上位机系统与下位机系统的数据传输由一般的...
  • 对多媒体微处理器VG2 嵌入USB主机控制器的软、硬件结构设计做了详细介绍,给出了VG2与USB接口电路原理图,实现了基于μCOS-Π的USB摄像头视频数据采集。
  • 基于多媒体微处理器VG2的视频图像采集系统设计与实现【】
  • 微处理器设计

    2016-07-01 01:19:56
    这是一个用逻辑电路作图软件DSCH,设计了很微处理器电路图
  • 微处理器研究

    2011-10-20 19:38:39
    微处理器是现代计算机系统的核心和引擎,它不仅提供计算机系统所需的处理能力,而且能够管理缓存,内存和互联子系统,支持整个系统实现处理器并行计算。本次检索就是为了了解各种微处理器的一般内部结构和主要性能...
  • 本文设计了一种基于32位ARM微处理器的多媒体车载音响,带RADIO、IRDA、MP3、DVD等功能。文中结合汽车车身的复杂环境,给出系统软硬件 设计,以及系统各部分功能的实现方法,主要介绍收音机、MP3软硬件的设计和系统...
  • 微处理器和FPGA的通道振动信号采集系统设计
  • 这种系统依赖于先进的微处理器,并且在高性能计算应用的情况下,依赖于每秒数十亿次浮点运算的通用图形处理单元(GPGPU)。这些处理器通常密集封装以化其空间效率,并且当以峰值速度运行时,每个处理器可能具有超过...
  • 微处理器监控电路早已得到广泛应用,它的发展从分立电路、单一复位功能的三端集成器件到复杂的功能集成器件,的电子技术的各个阶段,它都保证了系统的正常运行。本文简要介绍监控电路的基本特性以及一些新型监控...
  • 引言  随着通信技术的迅猛发展,电信号越来越复杂化和瞬态化,开发人员对测量领域必不可少的工具——数字示波器的性能提出了... 目前数字示波器采用DSP、内嵌微处理器型FPGA或微处理器+FPGA架构。虽然内嵌微处理
  • 这些外部器件为微处理器提供项任务支持:为微处理器提供满足电压、电流需求的稳压电源、监控其它电源电压、提供外部时钟、控制上电和断电顺序或执行其它任务。这些外部器件通常称为微处理器监控器,是专为特殊监控...
  • 圣邦微(SGMICRO)电子新推出的SGM706是具有代表性的功能微处理器监控电路,性价比极高。除了看门狗功能外,另外还具有上电自动复位、手动复位以及低电压报警等功能,使用起来非常方便可靠,可替代MAX706。  SGM...
  • 文章目录第二章 80x86微处理器计算机常用术语微处理器的基本功能模块Pentium采用了项先进技术2.1 32位微处理器内部结构基本结构寄存器通用寄存器段寄存器:star:标志寄存器2.2 32位微处理器的工作模式和地址空间一....

    第二章 80x86微处理器

    计算机常用术语

    • 位与字节
    • 字长(数据宽度)
    • 寻址能力
    • 主频,也叫时钟频率,用来表示微处理器的运行速度
    • MIPS(Millions of Instruction Per Second),用来表示为初期的性能–运算速度
    • 微处理器集成度,指微处理器芯片上集成的晶体管的密度

    微处理器的基本功能模块

    • 总线接口单元BIU(取指令)(寄存器组)
    • 执行单元EU(执行指令)(运算器和控制器、寄存器组)

    微处理器的功能拓展模块

    • 存储管理(分段和分页部件)
    • 指令和数据流水线
    • 指令和数据CACHE
    • 指令预取
    • 浮点处理
    • 分支预测
    • 并行计算
      等等

    Pentium采用了多项先进技术

    • CISC和RISC相结合的技术
      • RISC(Reduced Instruction Set Computer),精简指令系统的计算机
        提供数目较少、格式与功能简单、运行高效的指令
        追求的是计算机控制器实现简单,运行高速,更容易在单块超大规模集成电路的芯片内制做出来
      • CISC(Complex Instruction Set Computer),复杂指令系统的计算机,相对于RISC一词而提出来的一种说法
        特点:指令条数多,格式多样,寻址方式复杂,每条指令的功能强。汇编程序设计容易些,但计算机控制器的实现困难多,很多指令被使用的机会并不多
    • 超标量流水线技术
      • 流水线是一种使多条指令重叠操作的技术, 是当代微处理器设计中的关键技术之一。
        把一条指令分解成若干个步骤来完成,在流水线上称为级,每级 都在一个时钟周期内完成各自的操作。这样每个时钟周期都可以启动 一条指令,m级的流水线上就会有m条指令在同时执行。
        流水线的性能比非流水线作业几乎提高了m倍。
      • 超标量流水线
        标量指单个量,一般的流水计算机因只有一条指令流水线,所以称为标量流水计算机,所谓超标量是指其具有两条以上的指令流水线
    • 分支预测技术
      指当遇到转移指令、CALL调用指令、RET返回指令、INT n中断指令等跳转指令时,指令预取单元能够较准确地判 定是否转移取址。

    2.1 32位微处理器内部结构

    486内部寄存器分为4类:(应用程序只能访问基本结构寄存器和浮点寄存器)

    • 基本结构寄存器
    • 浮点寄存器
    • 系统级寄存器
    • 调试测试寄存器

    基本结构寄存器

    通用寄存器

    32位名称 16位名称1 名称
    EAX AX 累加器 AX (accumulater)
    EBX BX 基址寄存器 BX (Base)
    ECX CX 计数器 CX (Count)
    EDX DX 数据寄存器 DX (Data)
    ESP SP 堆栈指针 SP (Stack Pointer)
    EBP BP 基址指针 BP (Base Pointer)
    EDI DI 目的变址寄存器 DI (Destination Index)
    ESI SI 源变址寄存器 SI (Source Index)
    EIP IP 指令指针 IP (Instruction Pointer)
    • AX、BX、CX、DX共同点
      • 既可作为16位寄存器来用又可作为两个8位寄存器(高、低位)来用;
      • 都是用于暂存操作数,或是运算的中间结果或其它一些信息
    • SP、BP、SI、DI、IP:为寻址存贮单元提供偏移地址。

    段寄存器

    CS代码、DS数据、ES附加、SS堆栈------4个段寄存器,和偏移地址寄存器一起形成20位存储器物理地址,对存储器中存放的程序、数据、堆栈区域加以区别、寻址。

    • 寻址程序(指令):CS+IP;
    • 寻址数据:(DS或ES)+(SI或DI、BX、BP);
    • 寻址堆栈:SS+(SP或BP)

    ⭐️标志寄存器

    标志寄存器FLAGS又称为程序状态字PSW,为16位寄存器,该寄存器主要有两个作用:
    记录CPU运行结果状态标志;
    提供控制标志。

    根据功能,8086的标志可以分为两类:

    • 状态标志:表示前面的操作执行后,算术逻辑部件处在怎样一种状态,这种状态会像某种先决条件一样影响后面的操作。有SF、ZF、PF、CF、AF和OF。
    • 控制标志:每个控制标志都对某一种特定的功能起控制作用。指令系统中有专门的指令用于控制标志的设置和清除。有DF、 IF、 TF。

    状态标志

    状态标志符号 符号名称 标志为1的条件,否则为0
    C进位标志 Carry Flag 结果最高位产生一个进位或借位
    O溢出标志 Overflow Flag 加数与被加数最高位相同并且与结果****不同
    S符号标志 Sign Flag 结果最高位为1
    Z零标志 Zero Flag 运算结果为0
    P奇偶标志 Parity Flag 结果低八位中‘1’的个数为偶数(类似于奇效验)
    A辅助进位标志 Auxitiary Carry Flag 操作时,由**低半字节(第3位)**向高半字节,有进位或借位

    程序员判断溢出的方法

    • 有符号数运算,判O标志,O标志为1,有溢出
    • 无符号数矫健,判C标志,C标志为1,有溢出

    2.2 32位微处理器的工作模式和地址空间

    一. 32位微处理器工作模式

    • 实地址模式(实模式)
    • 保护虚拟地址模式(保护模式)
    • 虚拟86模式
    1. 实模式的特点
      1. 加电、复位之后,486自动工作在实模式,系统在DOS管理下
      2. 在实模式下,486只能访问第一个1M内存(00000H~FFFFFH)
      3. 存储管理部件对存储器只进行分段管理,没有分页功能,每一逻辑段的最大容量为64K。
      4. 在实模式下,段寄存器中存放段基址。
    2. 保护模式的特点:(仅作了解)
      486工作在保护模式下,才能真正发挥它的设计能力。
      1. 在保护模式下,486支持多任务操作系统
      2. 在保护模式下,486可以访问4G物理存储空间
      3. 存储管理部件中,对存储器采用分段和分页管理
    3. 虚拟86模式(仅作了解):
      虚拟86模式是保护模式下的一种特殊工作模式,可运行实模式程序。
      在操作系统管理下,486可以分时地运行多个实模式程序。
      例如:有3个任务,操作系统为每一个任务分配1ms,每通过1ms就发生一次任务切换,从宏观上看系统是在执行多个任务。

    关于保护机制:高级别的程序可以访问同级或低级的数据段,反之则不行

    二、32位微处理器的地址空间(存储地址空间、I/O地址空间)

    1.存储地址空间

    物理空间(主存储器的实际空间)

    程序的运行空间,即主存空间
    486有32条地址线,内存最大容量4G。这4G字节称为物理存储器,每一单元的地址称为物理地址,其地址范围:0000,0000H~FFFF,FFFFH为物理存储空间。

    虚拟空间(虚拟存储器地址空间):编程空间

    虚拟存储器是一项硬件和软件结合的技术。
    存储管理部件把主存(物理存储器)和辅存(磁盘)看作是一个整体,即虚拟存储器。允许编程空间为246=64T,程序员可在此地址范围内编程,程序可大大超过物理空间。该空间对应的地址称为虚拟地址或逻辑地址。运行时,操作系统从虚拟空间取一部分程序载入物理存储器运行。当程序运行需要调用的程序和要访问的数据不在物理存储器时,操作系统再把那一部分调入物理存储器.……数据的交换极快,程序察觉不到。

    线性空间

    当程序从虚拟空间调入物理空间时,要进行地址转换。

    如果不分页的话就是物理地址
    虚拟地址
    分段部件
    线性地址
    分页部件
    物理地址

    实模式:存储空间仅分段,而不分页;
    保护模式:存储空间先分段,再分页。

    2.I/O空间

    486利用低16位地址线访问I/O端口,所以I/O端口最多有216=64K,I/O地址空间为0000H~FFFFH。
    注意:

    • I/O地址空间不分段
    • I/O地址空间与存储空间不重叠
    • CPU有一条控制线M/IO,在硬件设计上用M/IO=1,参与存储器寻址,用M/IO=0参与I/O寻址。
    • 从PC/XT~Pentium,基于Intel微处理器的系统机,实际上只使用低10位地址线,寻址210=1024个I/O端口。

    2.3 实模式下,物理地址的形成(重要)

    1.存储器的分段管理

    存储空间为220=1M2^{20}=1M而寄存器为16 位
    存储空间分段每段为64K(2162^{16}

    逻辑地址 段基址(16位):偏移地址(16位)
    物理地址 段基址*16+偏移地址

    存贮器中的每个存贮单元都可以用两个形式的地址来表示:物理地址和逻辑地址。物理地址是指1MB存贮区域中的某一单元地址,地址信息是20位的二进制代码,以16进制表示是00000H~FFFFFH中的一个单元,CPU访问存贮器时,地址总线上送出的是物理地址。编制程序,则采用逻辑地址。逻辑地址由段基址和偏移量组成。

    • 在一个逻辑段中,各单元的段基址是相同的
    • 偏移地址是该单元相对于段首的地址偏移量
    • 所有段都是起始于16字节的边界。

    物理地址是唯一的,不同的逻辑地址可得到相同的物理地址。
    如:
    2000H:0200H —— 20200H
    2010H:0100H —— 20200H

    逻辑地址需由程序员在编程时给出
    段 基 址:指明由哪个段寄存器给出即可
    偏移地址:由程序员在程序中给出具体值

    2.各逻辑段物理地址的形成(以16位寻址为例)

    在实模式下,段寄存器存放相应逻辑段的段基址

    逻辑段 段基址存放在 偏移地址存放在
    代码段 CS IP
    堆栈段 SS SP
    数据段 DS 根据不同的寻址方式 选择BX、BP、SI、DI
    附加段 ES/FS/GS 根据不同的寻址方式 选择BX、BP、SI、DI
    • 代码段:CS*2^4+IP =指令单元的物理地址。一条指令的一个字节取出后,IP自动加1,指向下一字节。
    • 堆栈段:SS*2^4+SP =栈顶单元的物理地址
    • 数据段:DS*2^4+偏移地址 =数据单元的物理地址

    3.段寄存器和指针寄存器的初值

    • CS、IP的初值:由操作系统赋值
    • SS、SP的初值:
      1. 由程序员赋值
      2. 由操作系统自动赋值
    • DS/ES/FS/GS的初值:由程序员赋值。
    • BX/SI/DI/BP的初值:由程序员赋值。

    1. AX,BX,CX,DX,前8位称为AH,BH,CH,DH, 后8位称为AL,BL,CL,DL; ↩︎

    展开全文
  • 80386微处理器

    2016-05-29 20:54:00
    他的发布标志着微处理器从此从16位迈进入了32位的时代。  与上一代微处理器相比,80386主要有以下几个特性:  (1)提供32位外部总线接口,最大数据传输率为32MB/s ,具有自动切换数据总线宽度的能力。CPU读取...

      1985年5月,英特尔公司推出了与8086/8088/80286相兼容的32位处理器80386,它是为满足高性能的应用领域与多用户、多任务操作系统的需要而设计的。他的发布标志着微处理器从此从16位迈进入了32位的时代。

      与上一代微处理器相比,80386主要有以下几个特性:

      (1)提供32位外部总线接口,最大数据传输率为32MB/s ,具有自动切换数据总线宽度的能力。CPU读取数据的宽度可以在32位和16位之间自由切换。

      (2)采用32位结构,其内部寄存器、ALU、和操作数为32位,数据线和地址线均为32位,故能寻址的物理空间为232=4GB。

      (3)具有片内集成的存储器管理部件(Memory Management Unit),可支持虚拟存储和特权保护,虚拟存储器空间可达64TB(246字节)。存储器按段组织,每段最长4000MB,因此64TB虚拟存储器空间允许每个任务可拥有多达16384个段。存储保护机构采用4级特权层,可选择片内分页单元,内部具有多任务机构,能快速完成任务的切换。

          (4)具有三种工作方式:实地址方式、保护方式和虚拟8086方式。实地址方式和虚拟8086方式与8086相同,已有的8088/8086软件不加修饰就能够在80386这两种方式下运行。保护方式可支持虚拟内存、保护和多任务。另外,还包含了80286的保护功能。

          (5)采用了比8086更先进的流水线结构,使其能高效、并行地完成取指、译码、执行和存储管理功能。它具有增强的指令预取队列,能预取指令并进行内部指令排队。取指和译码操作均由流水线承担,处理器执行指令不需等待。其指令队列长从8086的6字节增加到16字节长。

    转载于:https://www.cnblogs.com/wangzheqie/p/5540374.html

    展开全文
  • 微处理器走进内核时代

    千次阅读 2013-10-25 01:02:52
    它是微处理器的最重要组成部分。内核结合系统外围,例如缓存、内存管理单元、执行单元、指令级单元、定时器以及I/O端口等组成完整的处理器。当今各种嵌入设备的普及加速对更功能、线程级并行性的需求,服务器面对...

    ylynzy 发表于: 2006-12-09 15:50 来源: 半导体技术天地

    一、概述
    内核(Core)是指位于处理器芯片中间、包含指令集和执行这些指令的逻辑电路的处理单元。它是微处理器的最重要组成部分。内核结合系统外围,例如缓存、内存管理单元、执行单元、指令级单元、定时器以及I/O端口等组成完整的处理器。当今各种嵌入设备的普及加速对更多功能、线程级并行性的需求,服务器面对更大的网络密度以及各种网络复杂应用(例如邮件、文档、数据库、VoIP通信等)的处理请求,PC系统需加载多项“背景任务”、3D图像与多媒体应用的增加等,这些都要求处理器具备更高性能的处理能力。

    随著IC技术的发展,晶体管集成度也不断得到提高。据2005年ITRS(国际半导体技术路线)预测,目前单芯片已可集成11亿个晶体管。因此,单芯片可以具备更多的功能。而如何同时为处理器内的越来越多的功能部件提供足够的指令和数据,以使执行部件尽可能流畅地工作,从而获得较高性能和稳定度,则是业界设计的一大挑战。

    通过不断提高处理器频率提升系统性能似乎即将成为过去式。在传统的单核处理器中,提高性能主要通过提高频率和增大缓存来实现,导致功耗与成本的增加;而单核处理器在付出高代价的同时,也只换来微弱性能的提高。微处理器工作时,内核的温度一般都达上百度,芯片表面温度也有几十度。而温度一旦过高或是散热性不好时,就会造成微处理器运行不正常甚至烧毁。目前,大多数主流微处理器都采用90nm制程。而90nm工艺器件的漏电流功耗占到总功耗的一半以上,加上晶体管数目的增加使得微处理器功耗和发热量的不断攀升,带来系统成本、散热、稳定性等一系列问题。单核处理器的频率发展到了极限已是业界的共识。况且,即使处理器频率可继续得到一定程度的发展,存储器发展缓慢的现状也只会使两者差距越拉越大,终不利于系统性能的提高。

    业界把微处理器性能提升寄托在能进行并行处理的多核处理器上。有业者甚至认为多核处理器是在当前功耗前提下提升性能的唯一途径。单芯片多内核处理器(Chip Multi-Processor)或多核处理器,是指可以在单个芯片封装中包含两个甚至多个“执行内核”或运算单元的微处理器。操作系统将每个执行内核视作具有所有相关执行资源的独立处理器。利用多内核技术可以在较低频率、较小缓存的条件下大幅提高性能。相对大缓存的单核处理器而言,同样数量晶体管的多核处理器可拥有更出色的性能,而在性能功耗比方面,多核处理器同样具备明显的优势。围绕多核的技术问题成为当前微处理器领域研究和讨论的重点。为使读者更好了解多核处理器,下文将介绍与微处理器发展相关的各方面内容。

    二、提高处理器性能的模式

    设计师们在过去采用了许多提高处理器的性能的方法,这些方法都是基于提高处理器的指令级并行性(Instruction Level Parallelism,ILP)和线程级并行性(Thread Level Parallelism,TLP)进行的。首先,我们了解流水线(Pipeline)和多线程(Multithread)任务处理的概念及其相关内容。

    指令的并行执行—流水线


    图1.jpg


    图1∶按次序逐条执行的指令

    程序指令是被处理器逐条执行的麽?类似这样的排队机理,人们固然易于理解,但事实并非如此。从上世纪70年代开始,业界一直在为提高微处理器的指令级并行性(ILP)而不懈地努力。到80年代中期,处理器程序指令就不再是逐条执行的了,而是几个指令同时在所谓的“流水线(Pipeline)”里被(局部地)并行处理,以提高性能。


    图2.jpg


    图2∶在流水线里,指令能被并行处理

    指令的处理通常可分为四个步骤∶提取、解码、执行和写入。这四个过程好比是车间装配线上的A、B、C、D四个工序岗位。如果经过四个工序产生一个产品後,才轮到下一个产品进入第一工序的话,就意味著同一时间有三个岗位的工人是闲置的。这样的效率显然非常低。如果车间采取流水线式装配,即四个岗位的工人在同一时间对多个产品进行不同部件的装配,当前工人完成产品装配即把产品传给下一工序的工人进行装配,而同时接过进行过上一工序装配的产品进行当前工序装配工作。由于同一时刻工人没有处于闲置状态,生产效率将得到明显的提高。同样道理,处理器在同一时间内对不同的指令进行提取、解码、执行或写入作流水线式处理,则在某一长度的单位时间内,流水线式执行的指令肯定比逐条执行的指令数多。如果单指令处理的总周期不变,则处理器的性能得到了极大的提升。(见图2)

    若将指令处理的四个步骤再细分成很多个段,使流水线成为一个深度流水线(Deeper Pipeline)或称超级流水线(Super Pipeline),进而增加单位时间内执行的指令数,同样也可提升处理器的整体性能。(见图3)


    图3.jpg


    图3∶细分多级的深度流水线增加了单位时间内执行的指令数

    多发射处理器(Multiple Issue Processor)包括超标量处理器(Super Scalar Processor)和超长指令字(Very Long Instruction Word,VLIW)处理器,其思想是允许在一个时钟周期内发射多个操作执行以减少处理器的CPI(Cycle per Instruction,平均指令周期),更好地利用处理器的功能部件。提高多发射处理器资源利用率的关键问题是∶如何在程序中找到足够的指令级并行性。

    超标量处理器在单个时钟周期内可以发射执行多条指令。(见图4)为了使多条指令可以并行执行,超标量处理器一般具有多个功能部件,如多个定点运算部件、浮点运算部件和Load/Store部件等。几乎所有现代的RISC和CISC微处理器都是一个深度流水线+超标量的处理器,但人们一般习惯将它们简称为超标量处理器。


    图4.jpg


    图4∶超标量处理器同时发射多条指令,提高指令执行的并行性


    图5.jpg


    图5∶超标量+超深度流水线处理器


    图6.jpg


    图6∶单线程的超标量处理器中出现垂直/水平浪费的机率比多线程处理器的多(横-指令时钟周期)

    超标量处理器提升性能的关键在于通过硬件本身尽可能多地从应用中寻找指令级并行性。但它只能发掘单线程的指令级并行性来提高对微处理器资源的利用率,因此对具有较高线程级并行性且较低指令级并行性的商业应用,无法体现其性能优势。当超标量处理器无法在某个时钟周期找到足够的指令级并行性,那麽它就不能在这个周期填满全部指令发射槽,这样就造成了所谓的“水平浪费”(Horizontal Waste);如果超标量处理器由于缓存未命中或访问内存延迟而造成随後某些时钟周期中出现空置的指令发射槽,这样就造成了所谓的“垂直浪费”(Vertical Waste)。(见图6)


    图7.gif


    图7∶VLIW通过编译器来寻找ILP,可同时发射由多条微指令组合而成的超长指令

    VLIW也是一种可以在单时钟周期内发射多条指令的处理器。与超标量处理器不同,它主要是通过编译器来寻找指令级并行性,然後编码成一条可同时发射的多条微指令组合而成的超长指令。与超标量处理器一样,超长指令字处理器也无法避免垂直浪费和水平浪费的产生。

    超标量处理器是依赖硬件来发现指令级并行性,而VLIW处理器则依赖编译器来发现ILP。但它们只能应付单线程的指令级平行性来提高资源利用率,面对需要并行处理的多个独立应用,人们开始考虑利用线程级并行性来提高处理器资源利用率的体系结构。

    任务的并行执行—多线程技术
    现代先进的多线程(Multi-Thread)、同时多线程(Simultaneous Multi-Threading,SMT)和单芯片多内核处理器架构都是利用线程级并行性提高处理器资源利用率。线程是操作系统分配处理器时间的基本单元,它和进程是有区别的。进程一般指正在运行的程序,它具备独立的虚拟地址空间;一个进程中可以有多个线程同时执行代码。线程则没有单独的虚拟地址空间,而工作在父进程里面的线程可同时访问进程的所有资源。


    图8.gif


    图8∶单线程与单核多线程

    多线程处理器(MT)
    多线程处理器的目的是减少延迟事件对处理器效率的影响,例如减少缓存不命中和执行时间长的指令对处理器效率的影响。多线程处理器通常为每个线程维护独立的处理器状态,包括寄存器与程序计数器(Program Counter)。因为能够快速地切换线程上下文,所以多线程处理器能在每个时钟周期发射一个独立线程的指令。多线程处理器又分为细粒度多线程(Fine-grained Multithreading)和粗粒度多线程(Coarse-grained Multithreading) 处理器。细粒度多线程处理器在每个时钟周期都进行线程上下文切换;粗粒度多线程处理器是在遇到延迟事件(缓存缺失或访存事件)时才进行线程上下文切换,否则将一直执行同一个线程的指令。由于存在多个独立的线程上下文可供提取指令,在遇到延迟事件时,多线程处理器将线程迅速切换去执行另一部分程序代码,从而减少了垂直浪费。(见图6)

    同时多线程处理器(SMT)
    尽管多发射处理器在一个时钟周期内能执行多条指令,但是当在一个时钟周期内不能找到足够的并行指令时,多发射处理器效率会下降。多线程处理器可以克服延迟事件和资源冲突所带来的限制,但是多个线程还是可能无法在一个时钟周期内同时使用指令发射槽,水平浪费仍然不可避免。SMT处理器在超标量处理器上增加了一些硬件,通过从多个活跃线程中动态选择与执行指令流,允许在单时钟周期内发射多个线程的多条指令,因而能够更好地利用处理器资源。

    SMT结合了超标量和多线程处理器的特点,所以同时减少了水平浪费和垂直浪费。(见图6)首先,SMT允许在一个时钟周期内执行来自不同线程的多条指令,因此在单时钟周期内,其能够同时利用程序的线程级并行性和指令级并行性来消除水平浪费,提高处理器发射槽以及功能部件的利用率。其次,SMT允许任何活动线程的组合来发射指令,所以当由于延迟事件或者资源冲突导致只有一个活动线程时,该线程能够使用所有可获得的发射槽;这使得可以通过使用其他线程的未阻塞指令来消除垂直浪费。

    英特尔版本的多线程叫做“超线程”(Hyper Threading)技术,它采用的是双线程上下文的SMT结构。超线程技术为物理处理器设置了两个架构状态接口,从而使操作系统等软件将其识别为两个逻辑处理器。

    虽然支持超线程的英特尔P4处理器能同时执行两个线程,但逻辑处理器只维护各自的体系结构状态,包括通用和控制寄存器、高级可编程中断控制器(Advanced Programmable Interrupt Controller, APIC)的寄存器和状态寄存器。而超线程中的两个逻辑处理器并没有独立的执行单元、整数单元、缓存、控制逻辑以及总线等。逻辑处理器在运行过程中仍需要共享物理处理器上的这些资源。因此,在执行多线程时超线程的两个逻辑处理器是交替工作的。如果两个线程同时需要某个资源时,其中一个要暂停并让出资源,等待资源闲置时才能继续工作。因此,超线程技术所带来的性能提升远不能等同于两个相同时钟频率处理器带来的性能提升。可以说英特尔的超线程技术仅可以看做是对单个处理器运算资源的优化利用。


    图9.gif


    图9∶多核处理器在不同的内核上处理多线程

    单芯片多核处理器(CMP)
    多核处理器则不是通过软件识别多处理器,而是在矽晶片(Die)上整合多个处理器内核,并通过并行总线将各内核连接起来,可同时执行多项任务。多核处理器的每个核心拥有独立的指令集、执行单元,与多线程技术中所采用的模拟共享机制完全不一样。多核处理器提高吞吐率和并行计算能力,利用线程应用缩短装载时间并提高应用性能,改善同时对多个用户、以及不断扩展的多任务处理要求的应用响应能力。根据芯片上集成的多个微处理器核心相同与否,可将多核处理器分为同构CMP和异构CMP。同构CMP大多数由通用的处理器组成,多个处理器执行相同或者类似的任务。异构CMP除含有通用处理器作为控制、通用计算之外,多集成DSP、ASIC、媒体处理器、VLIW处理器等针对特定的应用提高计算的性能。

    多核,抑或SMT?

    SMT与CMP都是通过利用程序中的TLP来提高程序性能与系统吞吐率。而SMT的设计更加灵活。因为当程序中的并行性在执行过程中动态变化时,SMT相对CMP具有性能优势。SMT通过在执行过程中增加或减少线程个数,可实现资源的最大化利用。而CMP在运行某些线程并行性较低的应用时,有可能出现资源利用率低的问题。

    CMP相对SMT的优势在于其模块化设计的简洁性。CMP的复制简单因此设计起来非常容易,指令调度也更加简单。同时,像上述的英特尔超线程一样,所有SMT中的多个线程都会对共享资源进行竞争而影响其性能,CMP则对共享资源的竞争要少得多。因此,当应用的线程级并行性较高时,CMP性能一般要优于SMT。

    同时,随著VLSI工艺技术的发展,晶体管特徵尺寸不断缩小,这使得晶体管门延迟不断减少,但互连线延迟却不断变大。当芯片的特徵尺寸减小到0.18um甚至更小时,线延迟已经超过门延迟,成为阻碍处理器性能提高的主要障碍。未来微处理器设计的趋势是采用功能分布的方法来减少线延迟,而SMT的集中式指令发射使其复杂化而不利于实现功能分布。在克服线延迟影响方面,CMP的分布式设计要明显优于SMT的集中式设计。

    多核微处理器正对处理器内核本身的体系结构产生影响。随著多核结构的普及,将不断开发实现几个处理器内核并行工作的分割为线程的软件,并建立相应的开发环境。而且,和多核微处理器一样,采用SMT技术的单核微处理器的开发将加速推进。随著SMT技术的逐步成熟,多核与SMT的融合也是微处理器发展的一个趋势。

    三、多核处理器的发展状况

    x86处理器是微型计算机的主角,而高端服务器和嵌入式系统领域却是RISC处理器的天下。AMD和英特尔的CPU知名度高,因为在电脑配件市场,一般人都可以很容易接触到这些普遍用于PC的x86处理器。但却很少有人关心用于手机、游戏机等嵌入系统中的RISC处理器到底是怎麽回事,而对高端服务器中的RISC更是远离一般人。

    事实上,RISC处理器的性能和技术创新远超x86产品。几乎所有先进的设计技术都是首先出现在RISC领域,然後才被x86产品所借鉴。换句话说,RISC处理器领域的每一次技术创新都会对x86产品产生重大深远的影响。

    CMP技术最初出现在上世纪的九十年代末。那时候,许多微处理器领域的研究者都倡议使用CMP来替代复杂性较高的单线程处理器。到了2001年,IBM推出了第一款CMP架构的微处理器—双核Power 4用于IBM的RISC服务器之中。之後,几乎所有的RISC处理器都实现了从单核向多核的技术革新,而x86处理器厂商也在近几年年积极跟进,并在多种场合发出坚决走多核路线的决心。目前商用CMP处理器已经有不少,如用在服务器端的IBM Power4/5和SUN Niagara架构处理器,网络与高端嵌入应用的Broadcom SiByte系列,面向PC的AMD Opteron64 x2等。

    IBM∶多核先驱

    2001年IBM推出的Power4处理器包含了两个处理核心,它采用0.18mm工艺与SOI绝缘矽技术,运行频率为1.3GHz,集成了1.74亿个晶体管,芯片面积为415m2,每个处理器核心拥有64KB一级指令缓存与32KB一级数据缓存,两个核心共享三个512KB 的二级缓存,第三级缓存采用eDRAM内存,容量从32MB到128MB。Power4是第一款集成了处理器模块间高速Fabric光纤接口控制器的处理器,处理器模块之间带宽高达35GB/s。此外,Power4支持MCM多芯片封装技术,四个Power4处理器可以直接整合成一颗大小为85mm×85mm,引脚数多达5184的巨型芯片。


    图10.gif


    图10∶IBM Power5服务器处理器包含8个内核,并支持SMT

    Power5包括4颗95×95mm的 MCM芯片,每颗芯片包括2个核心。每个核心拥有64KB的一级指令缓存与32KB的一级数据缓存,二级缓存还是由三个模块组成,但每个模块的容量增加到了640KB。片外三级缓存的容量最小为36MB,通过MCM封装在同一个处理器模块内。Power5将通用与浮点缓存器的数目从80组增加到120组。此外,改进了如指令预取缓冲、指令执行状态保留站及地址转换表等单元,以便对SMT进行支持。此外,Power5内置了内存控制器,支持最大1024GB容量内存。在制作工艺上Power5采用了0.13微米工艺制造,并且是采用了基于8层铜互连技术的SOI工艺。

    2001年3月,IBM、索尼和东芝建立STI联盟,著手开发一种全新的计算机体系结构Cell处理器,旨在提供比目前使用了复杂技术的RISC/CISC处理器高得多的效率来处理下一代宽带多媒体与图形应用,同时还具备RISC/CISC处理器无法比拟的功耗效率。

    在2005年ISSCC(国际固体电路会议)上,IBM首次公布了有关Cell处理器的一些细节。它采取了与现在的主流处理器结构完全不同的设计,由一个Power结构的处理器核心(PPE,Power Processor Element)和8个辅助处理器(SPE,Synergistic Processor Element)组成,属于异构CMP。图11是Cell处理器的结构示意图。处理器核心之间通过单元互连总线(EIB,Element Interconnect Bus)相连。Cell原型芯片的面积为221m2,共集成了2.34亿个晶体管。Cell处理器采用90nm绝缘矽SOI 工艺,整个芯片的时钟频率为4.6GHz,核心电压1.3V,预计整个芯片的功耗为50~80W。Cell处理器的理论浮点运算峰值为256Gfps,相当于3.0GHz P4 6Gfps处理能力的44倍。Cell目前已为索尼的PS3游戏终端所采用。


    图11.jpg


    图11∶Cell处理器架构方框图

    SUN∶推动多核到新的高度

    Sun公司的Niagara芯片架构也采用了多内核设计,基于该架构的处理器UltraSparc T1已于去年推出,其时钟频率为1.2Ghz,拥有8个内核和3MB二级缓存,能同时处理32个线程,峰值功耗仅为72瓦。特别是在多线程技术上,UltraSparc T1更值得关注。英特尔推出的超线程和IBM Power5的多线程(MultiThreading)实质上是双线程技术,而SUN UltraSPARC T1则做到了每核四线程。目前,Sun公司已经在T1000和T2000服务器中采用了UltraSparc T1处理器。

    预计Niagara II预计将在2007年诞生,采用65纳米工艺制造,内核依然为8个,时钟频率提升到了1.4Ghz,可以同时支持64个线程,性能为目前T1芯片的2到3倍。 而Niagara III 预计将在2009年问世,采用45纳米工艺,时钟频率为1.4到2.0GHz,可以同时处理128个线程,性能为目前T1处理器的4到6倍。


    图12.jpg


    图12∶Sun UltraSparc T1处理器集成了8个内核,利用CoolThreads多线程技术可同时并行处理32个线程

    T1中的每个核都拥有专属的4路16KB L1指令快取与4路8KB L1数据快取,且具有同位检查(Parity Check)能力,可自行侦测并修正1bit的内容错误。此外,T1的L2 缓存实行八核共享,共有12路3MB 4-Bank,并具有ECC侦错、更错能力,八核是以Crossbar连接架构来存取这个L2 缓存。


    AMD∶x86多核急先锋


    图13.jpg


    图13∶广受DIY装机者们喜爱的Athlon64 x2双核处理器

    CMP架构在x86微处理领域的进展缓慢。AMD在2005年4月才推出了它的双核处理器Opteron,专用于服务器和工作站。并被惠普、IBM和SUN等服务器厂商的产品中使用该系列芯片。Opteron最大的技术革新,在于改变了x86架构一贯以“高频率”引导用户的做法,而是学习了RISC处理器的CMP思路,将更高带宽提到了与更高性能并重的位置,并创造了直连架构,将CPU直接连接到内存、I/O,同时引入HyperTransport超传输总线技术来消除传统的前端总线瓶颈,降低内存访问延时。

    紧随其後它又推出了Athlon 64 X2双核系列产品,专用于台式机。目前,应用于高端台式机和笔记本的FX-60, FX-62以及Turion64 x2移动产品都已经出现在市场上。这些双核处理器的推出为AMD赢得了广泛的赞誉,树立的x86多核处理器先锋的良好现象。

    英特尔∶多核蓝图展宏愿


    图14.gif


    图14∶英特尔双核Xeon处理器

    在AMD推出双核Opteron不久,英特尔也很快推出了双核至强(Xeon)以及双核PentiumD。2006年5月,英特尔发布了其服务器芯片Xeon系列的新成员—双核Dempsey。该产品使用了65nm制造工艺,其5030和5080型号的主频在2.67GHz和3.73GHz之间。而在6月份,推出另一款双核芯片Woodcrest。英特尔声称与PentiumD系列产品相比,其计算性能提高了80%,能耗降低了20%。

    尽管如此,由于不是双核直连架构、以及无整合内存控制器用来降低内存系统的延迟时间,英特尔双核处理器推出之初还是招致竞争对手AMD质疑其为“假双核”,从而引发双方口水大战。但多核宗旨是改善处理性能和功耗,目前并无固定的标准。因此,这些花絮并未能阻止任何厂商多核处理器的前进步伐。

    英特尔明确表示将在未来推出的Multi-Core产品中整合更多的核心以提高处理性能。现在,英特尔开始了名为Kevet的multi-core计划。而英特尔最新的更长远规划是其Mini-core计划。Mini-core和Multi-Core的区别在于Multi-Core的核心是完全相同的x86处理器核心,而Mini-core则是x86核心配合特定用途的核心。也即Multi-Core发展的是同构CMP,而Mini-core发展的异构的CMP。

    四、 小结

    现在不少的多核处理器都融合了MT技术,例如英特尔的HT、IBM的Multitheading和Sun的Cooltheads。从技术本质上来讲,这些技术实际上大同小异。虽然英特尔的芯片很早就引入HyperTreading超线程功能、允许CPU执行两个线程,但HyperTreading设计僵化,线程一旦进入执行位置就不能再进行替换,即便该线程将占用很多执行资源与时间也必须持续等候。在不少时候,此举反而会令系统的效能降低,这也是英特尔的HT技术发展多年,但始终都没有获得广泛推行的主要原因。

    不过,IBM与Sun的多线程技术在通畅性上更优异些。如IBM Power5能够侦测各线程的执行状况以及资源使用状态,在等候过久而其馀的核心又处于闲置状态时会立即将该线程进行转移,提升系统的并行执行能力。而UltraSPARC T1不但能进行线程的动态转移,而且任何一个执行单元有空余时,都可提取已排入其他位置的待处理线程来执行,借此来维持多核、多线程的平行处理利用率。

    可见,CMP具有高主频、低功耗等优点,并能充分利用应用的指令级并行和线程级并行,使之得到业界的肯定,成为处理器体系结构发展的一个主要趋势。除了上面介绍的几大公司的多核产品外,还有微软Xbox 360游戏终端使用的三核心PowerPC微处理器、惠普PA-8800和PA-8900处理器、瑞萨整合8个MIPS内核的XLR处理器等。更有很多处于研发状态的多核处理器呼之欲出,例如一系列基于ARM11 MPCore内核的产品等。英特尔预期2006年年底多核处理器将占据主导地位。不久,微处理器将正式走进多内核时代。

    五、软件开发没有跟上多核进度

    多核处理器芯片内部将整合越来越多的内核。AMD高层甚至表示,整合的内核数量可以是无数个。更多核心为系统带来更大性能的提升当然是好事,但目前这却对基于多核芯片的多线程、并行处理软件的开发带来难题。

    最早发现问题的是PS3、Xbox 360等平台的游戏开发商,由于两套系统完全不同于前一代产品,游戏开发者对此抱怨。多核心处理器编程对程序员来说就像是一场灾难,因为他们必须深入了解相应的硬件平台,然後才能据此编写代码,而让代码在核心之间平衡更是一大难题。如前面提及的索尼 PS3的Cell平台,程序员首次接触到异构CMP的主从模式的多核平台,因而对如何发挥出协处理器(coprocessor)的性能优势缺乏经验。由于编码的不到位,将使Cell充分发挥其性能产生影响。同样的事情现在也出现在x86领域,双核平台的出现让软件开发商考虑对双核优化的重要性。比较幸运的是,办公软件、网页浏览器等常用商务软件对处理器性能要求不高,因此这些x86软件都不需要作出变动。但真正需要考虑双核平台的仍然是x86平台下的游戏。对此,游戏开发商也是相当头疼,因为x86多核与PS3、Xbox 360游戏机的多核平台不同,未来对于英特尔 Mini-core或AMD HyperTransport协处理器平台也许又要作出改动。负责IBM多内核、多线程Power5服务器处理器设计的Balaram Sinharoy指出,现有软件只能在集成2~4个内核、而且每个内核只有两个线程的处理器上发挥性能优势。同时,多核处理器软件代码优化也对编译器和应用程序开发工具提出了挑战。面向多核处理器,业界需要通过努力改善软件设计来驱使应用程序的长期优化和效率提高。

    为了充分发挥硬件性能,设备厂商希望开发商深入了解对应多核处理器的细节。现实问题是现存多种多核架构,通通研究的成本无疑惊人。因此开发者希望能够利用一个与硬件无关的自动化通用开发平台进行设计开发,这样编码工作将变得相当容易,同时也能够保证代码对不同架构具有出色的适应性。可惜的是,至今未见能为多核处理器进行高效编码的标准化工具出现。当然,我们没必要因此对多核平台失望。因为对x86的PC来说,使用多核心处理器能够极大提升系统的多任务效能,在软件业来不及跟上的时候,办公用户或许能够更多体验到双核平台的优势所在。

    六 、结语

    微处理器在频率发展的道路遭遇瓶颈,多内核技术成为提高性能并避免高功耗与散热问题的唯一可行途径。虽然目前基于多核技术的软件相对迟滞,但微处理器步进多核时代的步伐未受阻挡。而且,硬件、软件必在演变过程中相互促进。预计业界各大主要操作系统厂商正在准备推出相应的操作系统,以支持上市的多核处理器产品,例如微软的Windows、Sun的Solaris 10等。而随著这些曾用于高端设备的多核处理器走向大众市场,也将不断促进多核处理器硬件、软件和应用的发展。据iSuppli预计,2015年多核处理器出货量将由2005年的1480万颗发展到6.38亿颗,市场收入将由2005年的26亿美元增长到648亿美元。

    参考资料∶
    现代微处理器—— Jason Patterson(昆士兰大学博士)
    多核: IT“芯”的必由之路——胡苏太
    微处理器向多核技术发展——进藤智则 竹居智久
    展开全文
  • 在简要介绍TI公司MSP430单片机的基础上,主要讨论了TI公司最近推出的新款MSP430FG461x系列超低功耗微处理器。通过与MSP430F44x系列相比较,着重阐述该系列单片机新增加的实时时钟模块和运算放大器模块。
  • 本文主要介绍驱动高性能ASIC和微处理器相DC-DC转换器设计方案及应用。 相DC-DC转换器引出    当今的高性能ASIC和微处理器己广泛应用工控、通信航天等各个领域。但由于它的功率消耗较高,有时高达150W...
  • 电源供应器设计人员经常面对种种相互冲突的要求。一方面要缩小体积、降低成本,另一方面又要提供更功能并提高输出功率。...比较可行的折衷方法是采用传统模拟电源供应器,但增加数位微处理器做为前端。
  • 随着领先微处理器的每一代后续产品对电流的需求不断提高,为了使功耗保持在可管理的水平,就需要把工作电压降至更低。同时,这些高电流水平带来极大的电流变化率(di/dt),因而使电压调节(即稳压)也变得更加困难得...
  • 要选好一款处理器,要考虑的因素很,不单单是纯粹的硬件接口,还需要考虑相关的操作系统、配套的开发工具、仿真器,以及工程师微处理器的经验和软件支持情况等。
  • 为同时线程微处理器结构建立的准确的功耗评估模型,将可给出该结构中各部件的功耗使用情况,进而可通过调整部件电压或优化部件结构的方法,达到减少整体功耗的目的;同时,此功耗评估模型也可以作为高层功耗优化...
  • 这是上海大学某位的论文,关于32位同时线程微处理器的ALU设计
  • 用芯片MAX5038控制设计的相同步DC—DC转换能够有效地驱动工作在IV至1.5V、消耗电流100A甚至更高的ASIC或处理器。它们解决了供电系统上的很基本问题,包括电容纹波电流,MOSFET功耗,瞬态响应,以及输出电压...
  • 微处理器监控电路早已得到广泛应用,它的发展从分立电路、单一复位功能的三端集成器件到复杂的功能集成器件,的电子技术的各个阶段,它都保证了系统的正常运行。本文简要介绍监控电路的基本特性以及一些新型监控...
  • 本文详细介绍如何使用便宜的555定时器,在一些不需要LED驱动器全部功能的应用中,代替微处理器对专用LED驱动器实施控制。这样做可让用户在降低总系统成本的同时,维持 LED驱动器的恒定电流。  相比几年以前,现在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,514
精华内容 1,805
关键字:

多微处理器