计算机硬件基础——第四章:中央处理器

8086CPU

两个独立的工作单元组成:执行单元 EU、总线接口单元 BIU

EU和BIU重叠工作:多数情况下,EU要执行的指令都已“预”取,节省了取指令的实际,加快了程序运行,提高了CPU利用率,也降低了CPU对存储器速度的要求

8086CPU的寄存器

  • 一个寄存器相当于存储器中的一个存储单元,但存取速度比存储器快得多

  • 可见寄存器:汇编语言程序设计汇中可用指令指定的寄存器

  • 不可见寄存器:系统专用,指令不能指定的寄存器

  • 通用寄存器

    • 数据寄存器

      • AX、BX、CX、DX构成,用来存放16位的数据和地址
      • AX称为累加器,在乘除运算中专门存放操作数和结果,在I/O指令中专门用来与外部设备传送信息
      • BX称为基址寄存器:在对存储单元进行访问时该寄存器可存放存储单元的偏移地址
      • CX称为计数寄存器:在循环指令和串操作指令中,保存计数值
      • DX称为数据寄存器:在寄存器间接寻址的I/O指令中存放I/O端口地址
    • 指针寄存器

      • 只能以字为单位使用
      • SP称为堆栈指针寄存器:用于存放当前堆栈段中栈顶的偏移地址
      • BP称为基址指针寄存器:用于存放堆栈段中某一存储单元的偏移地址
    • 变址寄存器

      • 只能以字位单位使用
      • SI称为源变址寄存器:串操作时用于指示源操作数的偏移地址
      • DI称为目的变址寄存器:串操作时用于指示目的操作数的偏移地址
      • 变址寄存器内存放的地址在数据传送完成后,具有自动修改的功能
  • 专用寄存器

    • 段寄存器

      • 什么是段?

        • 计算机中的内存中存放三类信息:
        • 代码(指令操作码)数据(数值,字符等程序加工对象)堆栈(临时保存的地址或数据)
        • 为了避免混淆,把这些存储区称为:代码段,数据段,堆栈段
        • 段寄存器保存的是这些存储区的起始地址
      • 8086CPU的地址线是20位的,而寄存器是16位的,提出了“段+偏移”的重要技术

        • 将逻辑段起始地址的高16位存入段寄存器,称为段地址

          • 按照段地址左移4位再与偏移地址相加来生成内存的20位地址
      • 数据段寄存器DS:用于存放程序当前使用的数据段的段地址,内容左移位+指令红存储器寻址方式的偏移地址构成数据段指定单元的物理地址

      • 附加段寄存器ES:用于存放程序当前使用的附加数据段的段地址,左移位 + DI中的偏移地址,构成串操作的物理地址

      • 代码段寄存器CS:用于存放程序当前使用的代码段的段地址,内容左位+IP指针中的内容构成下一条指令的物理地址

      • 堆栈段寄存器SS,用于存放程序当前使用的堆栈段的段地址,内容左移4位 +SP或BP的内容构成堆栈中操作数的物理地址

        • 物理地址 = SS*10H + SP
    • 控制寄存器

      • 指令指针寄存器IP

        • 用来存放将要执行的下一条指令在代码段中的偏移地址
        • BIU自动修改IP中的内容
        • 程序不能直接访问IP,但是可以通过某些指令修改
      • 标志寄存器FLASG

        • 条件码标志:用来记录程序中运行结果的状态信息,CPU自动设置

          • 进位标志CF

            • 加减运算时,运算结果的最高位发送进位/借位 CF为1 否则为0
            • 通常用于判断无符号数运算结果是否超出了表示范围
          • 辅助进位标志AF

            • 加减运算时,运算结果的低字节的低4位向高位(D3向D4)有进借位,AF为1,否则为0
          • 符号表示SF

            • 记录运算结果的符号,结果为负 :1,否则为 0
          • 零标志ZF

            • 运算结果为时,ZF为1,否则为0
          • 溢出标志OF

            • 用于监测有符号数的运算结果是否溢出,溢出为1,否则为 0
          • 奇偶标志PF

            • 检验数据传送是否出错。
        • 控制码标志:用来控制CPU的某些操作,由程序设置或清除

          • 方向标志DF

            • 控制串操作命令方向,DF为0,串操作过程中地址自增,否则相反
            • 执行CLD 指令 ——>DF =0
            • 执行STD指令 ——>DF=1
          • 中断允许标志IF

            • 控制可屏蔽中断的标志。
            • IF为0,CPU不能对可屏蔽中断作出响应
            • 执行CLI指令 ——>IF=0
            • 执行STI指令——>IF =1
          • 跟踪标志TF

            • 用于调试时的单步方式操作
            • TF= 1允许每条指令执行完后产生中断,CPU处于单步运行方式
            • TF = 0 CPU正常工作,程序连续执行

8086CPU对存储器的访问

  • 8086存储器结构

    • 地址线为20条,能寻址1MB的存储单元

    • 每个存储单元存放一个8位的二进制信息。

    • 每一存储单元用唯一的一个地址码标识

    • 地址码是一个无符号整数

      • 地址范围 0~2^20-1
      • 00000H~FFFFFH
    • 将存储器空间按字节地址号顺序排列的方式称为按字节编址

    • 00001H单元的内容为8EH

      • 记作(00001H)=8EH
    • 若存放的是字型数据(16位二进制数)

      • 将字的低位字节存放在低地址单元
      • 高位字节存放在高地址单元
      • 起始地址00120H单元的字数据为:5FBCH
      • 记为(00120H)=5FBCH
  • 存储器分段

    • 为了用16位寄存器实现20位地址的表示

    • 思想

      • 把1MB的存储器分成若干逻辑段
      • 每个逻辑段最大长度为64KB
      • 每个逻辑段的起始地址不能是任意的,必须是16的倍数
    • 段加偏移技术

IA32架构CPU

80286CPU

  • 特性

    • 增加地址线(24位),使内存容量提高

    • 具有两种地址方式

      • 实地址方式
      • 保护虚地址方式
    • 使用虚拟内存

    • 寻址方式更加丰富(24种)

    • 可以同时运行多个任务

    • 三种类型中断

      • 硬件中断
      • 软件中断
      • 异常中断
    • 增加了高级类指令、执行环境操作类指令和保护类指令

    • 时钟频率提高

  • 存储器组织管理

    • 实地址管理方式

      • A19~A0直接寻址1MB的存储空间,兼容了8086的全部功能
    • 保护虚拟地址管理方式

        • 实地址方式
        • 存储器管理
        • 对于虚拟存储器的支持
        • 对地址空间的保护
      • 使80286能支持多用户,多任务系统

80386CPU

  • 特性

    • 灵活的32位微处理器,提供32位的指令
    • 提供32位外部总线接口,最大数据传输速率为3Mbps
    • 具有片内集成的存储器管理部件MMU,可支持虚拟存储和特权保护
    • 具有实地址方式,保护方式和虚拟8086方式
    • 具有极大的寻址空间
    • 通过配用数值协处理器可支持高速数值处理
    • 在目标码一级与8086、80286芯片完全兼容
  • 存储器组织管理

    • 实地址方式

      • 系统启动后,自动进入实地址方式
      • 与8086具有相同的基本结构
      • 只能寻址1MB物理存储器空间
      • 逻辑段最大不超过64KB
      • 段基地址和偏移量都用16位表示
      • 可以使用32位操作数和32位寻址方式
    • 保护虚拟地址方式

      • 实地址初始化完成后,进入保护虚拟地址方式
    • 虚拟8086方式

      • 标志寄存器中的VM位 置 1 即进入该方式。
      • 可以使得8086程序与80386保护方式的程序并行运行

80486CPU

  • 特性

    • 首次增加RISC技术
    • 芯片上集成部件多
    • 高性能的设计
    • 完全的32位体系结构
    • 支持多处理器
    • 具有机内自测试功能,可以广泛地测试片上逻辑电路、超高速缓存和片上分页转换高速缓存

组成

运算器

  • 计算机的数据处理中心

    • 算术逻辑单元ALU:运算器的核心,完成所有的算术运算,逻辑运算
    • 通用寄存器组:暂存从主存中取出的数据或运算结果
    • 多路选择器:从通用寄存器组或暂存寄存器中选择参加运算的数据
    • 标志寄存器:记录本次运算后的一些重要特征

控制器:CPU的指挥控制中心,协调各部件工作

  • 功能

    • 指令顺序控制:实现指令的有序执行
    • 操作控制:根据指令产生的微命令序列,控制指令的正确执行
    • 时间控制:产生需要的时序信号,控制微命令发出
    • 异常和请求处理:处理异常,响应DMA请求,响应中断请求
  • 组成

    • 程序计数器PC:存放下一条要执行指令的存储器地址
    • 指令寄存器IR:保存从存储器中读入的当前要执行的指令
    • 指令译码器ID:对指令进行译码,指出指令的操作种类和寻址方式
    • 时序电路:产生并发出各种时序控制信号
    • 微操作命令发生器:产生所有微操作命令,是控制器中最复杂的部件
  • 设计方法

    • 硬布线控制器(组合逻辑控制器):完全靠硬件实现

      • 速度快,设计繁琐,复杂
    • 微程序控制器:执行固化的一段微程序产生的控制信号来实现

      • 速度慢,设计简单,规整

寄存器组

  • CPU内部的一组高速存储单元,具有数据准备,数据调度,数据缓冲的作用。

  • 通用寄存器

    • 既可以存放数据,也可以存放地址或地址指针
    • 使用频度很高,是调度数据的主要手段
  • 专用寄存器

    • 功能转移,都有特殊的用途

请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值