第二章 处理器管理

处理器与寄存器

处理器

image-20230202154319355

上图各组件通过内部总线连接起来,构成一个不包含通用寄存器、I/O相关寄存器、地址寄存器、数据寄存器和Cache的示意图。

CPU中的各组件描述

  1. 算数逻辑单元:计算结束之后会将结果的标志放置到标志寄存器 Flag 中。
  2. 控制单元:包含重要的指令译码器 ID,而指令是放置在指令暂存器 IR 中。
  3. 程序计数器 PC:下一条指令的地址
  4. 内存地址寄存器内存数据寄存器:用来完成对内存数据的访问。

通过系统总线来访问内存中的数据,首先设置地址和数据,然后通过控制来完成数据的读取和写回。

时钟等外部信号来反应到处理器线程中来。

寄存器

用户程序可见寄存器
  • 减少访问主存储器次数,提高指令执行效率
  • 所有程序可使用,包括应用程序和系统程序
    • 数据寄存器:又称通用寄存器
    • 地址寄存器:索引、栈指针、段地址等寄存器
程序与状态寄存器
  • 用于控制处理器的操作
  • 主要被具有特权的操作系统程序使用,以控制程序的执行
  • 程序计数器PC:存储将取指令的地址
  • 指令寄存器IR:存储最近使用的指令
  • 条件码CC:CPU为指令操作结果设置的位,标志正/负/零/溢出等结果
  • 标志位:中断位、中断允许位、中断屏蔽位、处理器模式位、内存保护位…等
标志位 含义
中断位 是否有中断发生了,中断源是什么
中断允许位 表示目前是否响应中断
中断屏蔽位 中断发生了,中断响应了,我们要不要屏蔽中断
处理器模式位 现在处理器是处于何种模式
内存保护位 对这段内存是只读还是读写还是不可操作
程序状态字PSW
  • PSW既是操作系统的概念,指记录当前程序运行的状态信息,通常包括:
    1. 程序计数器、指令寄存器、条件码
    2. 中断字、中断允许/禁止、中断屏蔽、处理器模式、内存保护、调试控制
  • PSW也是计算机系统的寄存器

指令

机器指令

  • 机器指令是计算机系统执行的基本单位,是中央处理器执行的基本单位

  • 指令由一个或多个字节组成,包括操作码字段、一个或多个操作数地址字段,以及一些状态字和特征码

  • 指令完成各种算术逻辑运算、数据传输、控制流跳转

指令执行过程

  • 取指:根据PC从存储器中拿到指令IR
  • 解码:解译IR中的指令来决定其执行行为
  • 执行:连接到CPU不见,执行运算,产生结果并写回,同时在CC里设置运算结论标志;重新设置PC

指令执行周期与指令流水线

指令执行周期

image-20230202183325959

指令流水线

image-20230202183348865

特权指令与非特权指令

用户程序并非能够使用全部机器指令,那些与计算机核心资源相关的特殊指令会被保护

  • 特权指令:只能被操作系统内核使用的指令
  • 非特权指令:能够被所有程序使用的指令

处理器模式

  • 处理器模式
    • 计算机通过设置处理器模式实现特权指令管理
    • 计算机一般设置0、1、2、3等四种运行模式,建议分别对应:0操作系统内核、1系统调用、2共享库程序、3用户程序等保护级别
    • 现代操作系统只使用0和3两种模式,对应于内核模式和用户模式
  • 处理器模式的切换
    • 中断、异常或系统异常等事件导致用户程序向OS内核切换
    • 包括“用户模式→内核模式”和“内核模式→用户模式”的转换
    • OS内核处理完成后,调用中断返回指令

栈空间

用户栈

  1. 用户栈是用户进程空间中开辟的一块区域,用于保存应用程序的子程序间相互调用的参数、返回值、返回点以及子程序的局部变量
  2. 如果只有用户栈,没有核心站,那么操作系统则很难对核心站的数据提供响应的保护措施

核心栈

  1. 核心栈也叫系统栈
  2. 或内核栈,是内存中属于操作系统空间的一块区域,其用途包含以下两种:
    1. 保存中断现场,嵌套中断
    2. 保存操作系统程序(函数)间相互调用的参数、返回值、返回点以及程序局部变量。
  3. 每个进程有一个核心栈:可读可写不可执行,大小有限
  4. 硬件栈指针只有一个

中断与中断源

  • 中断的概念

    • 中断是指程序执行过程中,遇到急需处理的事件时,暂时中止CPU上现行程序的运行,转去执行相应的事件处理程序,待处理完成后再返回原程序被中断处或调度其他程序执行的过程

    • 操作系统是“中断驱动”的

  • 中断、异常与系统异常

    • 狭义的中断指来源于处理器之外的中断事件,即与当前运行指令无关的中断事件,如I/O中断、时钟中断、外部信号中断等
    • 异常指当前运行指令引起的中断事件,如地址异常、算术异常、处理器硬件故障等
    • 系统异常指执行陷入指令而触发系统调用引起的中断事件,如请求设备、请求I/O、创建进程等
  • 中断源

    • 处理器硬件故障中断事件
      • 由处理器、存储器等硬件故障引起
      • 保护现场,停止设备,停止CPU,向操作员报告,等待人工干预
    • 程序性中断事件
      • 处理器执行机器指令引起
      • 算术异常简单处理后报告用户,也可以由用户编写中断续元程序处理
      • 非法指令、用户态使用特权指令、地址越界等终止进程
      • 虚拟地址异常,调整内存后重新执行指令
    • 自愿性中断事件
      • 处理器执行陷入指令请求OS服务引起;在操作系统中,它一般又被称作系统调用
      • 请求分配外设、I/O等,陷入OS、保护现场,根据功能号查入口地址,跳转具体处理程序
    • I/O中断事件
      • 来源于外围设备报告I/O状态的中断事件
    • 外部中断事件
      • 由外围设备发出的信号引起的中断事件

中断系统

  • 中断系统是计算机系统中响应和处理中断的系统,包括硬件子系统和软件子系统
    • 中断响应由硬件子系统完成
    • 中断处理由软件子系统完成
  • 在指令执行周期最后增加一个微操作,以响应中断
    • image-20230204103011047