本节讲操作系统所依靠的计算机系统组成,也即现代的冯·诺依曼结构计算机
目录
基本构成
软硬件总构成
硬件构成
- cpu内部构成
PC= 程序计数器
IR= 指令寄存器
MAR= 内存地址寄存器
MBR= 内存缓存寄存器
IO AR= 输入输出地址寄存器
IO BR= 输入输出缓存寄存器
微处理器
微处理器
一个芯片上容纳一个处理器内核
多核微处理器
一个芯片上容纳多个处理器内核,共享执行单元
- 双核、四核、八核、etc.
- 每个核还可以配多个硬件线程——逻辑处理器
片上系统
- CPU、高速缓存以及系统中的多数硬件都在同一芯片上
- 满足便携式设备的需求(如现代智能手机)
计算机如何执行指令
处理器执行的程序是由一组保存在存储器中的指令组成的。按照最简单的形式,指令处理包括两个步骤:
- 处理器从存储器中一次读(取)一条指令
- 执行每条指令。
程序执行由不断重复的取指令和执行指令过程组成。一个单一的指令需要的处理称为一个指令周期。
基本指令周期
- 每个指令周期开始时处理器从存储器取下一条指令(一般而言程序计数器PC存储着下一次取的指令地址)
- 取到的指令存储于指令寄存器(IR)中
- 指令大体分为四种:
- 处理器<–>存储器
- 处理器<–>IO
- 数据处理:执行与数据相关的算术或逻辑操作
- 控制:改变指令的执行顺序
实际的指令执行过程
中断
事实上,所有计算机都提供了允许其他模块(IO,存储器)等中断处理器正常处理过程的机制。
当外部设备做好服务的准备时(即当它准备好从处理器接受更多的数据时),该外部设备的 IO 模块给处理器发送一个中断请求信号。这时处理器会做响应,暂停当前程序的处理,专门去处理服务于特定 IO 设备的程序,这个程序成为中断处理程序。在对该设备的服务响应完成后,处理器恢复原先的执行任务。
中断的类别
- 程序中断:某些指令执行的结果(多为错误或异常,如算术溢出、被0除、用户没有权限访问某位置)中断;
- 时钟中断:处理器内部的计时器中断使得处理器按一定的规律执行函数;
- I/O中断:由I/O控制器产生,发信号通知一个I/O操作正常完成或错误
- 硬件失效中断:字面意思,硬件寄了
为什么要有中断
-
没有中断,CPU必须迁就I/O设备的时钟速度,每次写操作后CPU必须保持空闲直到I/O设备发出完成指令——太慢力
-
中断是提高处理器效率的一种手段。
- 利用中断功能,处理器可以在I/O操作(或者其它中断处理程序)的执行过程中执行其他指令。
- I/O操作和用户程序中指令的执行是并发的。中断技术使得多道批处理系统的I/O设备可与CPU并行工作,提高了效率。
-
对CPU的其它中断操作,以上也是类似的,中断是无法预测的,处理短促的中断事件比一直跟着某个进程直到产生结果或者错误快。
中断和指令周期
指一个包含了正常指令和中断指令的全周期。
利用中断功能,处理器可以在1/O操作的执行过程中执行其他指令。
和前面一样,用户程序到达系统调用WRITE处,但涉及的IO程序仅包括准备代码和真正的I/O命令。在这些为数不多的几条指令执行后,控制权返回到用户程序。在这期间,外部设备忙于从计算机存储器接收数据并打印。这种IO操作和用户程序中指令的执行是并发的。
从用户程序的角度来看,中断打断了正常执行的序列。中断处理完成后,再恢复执行。因此,用户程序并不需要为中断添加任何特殊的代码,处理器和操作系统负责挂起用户程序,然后在同一个地方恢复执行。
中断处理
软硬件过程
其中,因中断处理导致的内存和寄存器变化如下图:
总体过程
多个中断的处理
-
顺序中断处理:当正在处理一个中断时,禁止中断(对任何新的中断请求信号不予理睬,处理完这个再处理下个)
-
缺点:没有考虑相对优先级和时间限制的要求
-
嵌套中断处理:定义中断优先级,允许高优先级的中断打断低优先级的中断处理程序的运行。
存储器层次结构
层次结构的特点:
- 由上至下:
- 每“位”的价格递减
- 容量递增
- 存取时间递增
- 处理器访问存储器的频率递减
- 容量较大、价格较便宜的慢速存储器,是容量较小、价格较贵的快速存储器的后备。
- 存储器层次结构能够成功的关键:低层访问频率递减。
访问的局部性原理
- 在执行程序期间,处理器的指令访存和数据访存呈现“簇”状(一组数据集合),例如:
- 循环:重复访问一小范围的指令集合;
- 数组操作:存取一簇数据。
- 经过很长一段时间,程序访问的“簇”会改变,但在较短时间内,处理器主要访问存储器中固定的“簇”。如二级存储结构,程序当前访问的“簇”暂时存放在第一级存储器中,而第二级存储器包含所有指令和数据。
- 这里指的是硬件上的局部性
高速缓存
为什么有高速缓存
- 指令执行期间,处理器需要多次访问内存;
处理器和内存的速度不匹配,处理器速度的提高一直快于内存访问速度的提高——处理器执行指令的速度受限; - 利用局部性原理,在处理器和内存之间提供一个容量小而速度快的存储器——高速缓存。
- 高速缓存试图使访问速度接近现有最快的存储器,同时保持价格便宜的大存储容量。
高速缓存原理
高速缓存的设计原理
-
高速缓存大小
-
块大小
-
映射函数
-
置换算法
-
写策略
-
高速缓存的级数、
具体可见CSAPP的缓存一章。
I/O
可编程IO
- I/O模块执行请求的动作并设置I/O状态寄存器中相应的位;
- 处理器执行I/O指令后,要定期检查I/O的状态,以确定I/O操作是否已经完成。
- 问题:处理器在等待I/O操作完成期间需不断询问I/O模块的状态,严重降低了整个系统的性能
- 用途:串口、并口
中断驱动IO
- 处理器给I/O模块发送I/O命令,然后继续做其它有用的工作;
- 当I/O模块准备好与处理器交换数据时,将打断处理器的执行并请求服务;
- 处理器执行数据传送,然后恢复以前的执行过程
- 问题:处理器仍需要主动干预在存储器和I/O模块之间的数据传送,任何数据传送都必须完全通过处理器
DMA(直接内存存取)
DMA是直接内存存取,这是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据。DMA直接通过一个通路把数据传送到主存储器,无需cpu的参与.
主要特点:
-
直接通过一条数据通路直接与主存进行交换信息
-
无需CPU的直接参与,大大提高了cpu资源利用率
-
I/O与CPU并行工作
-
适合于高速 I/O 或辅存与主存之间交换信息
工作机制:DMA由专门的硬件(DMA)控制下,实现高速外设和主存储器之间自动成批交换数据,尽量减少CPU干预的输入/输出操作方式。
-
当处理器要读或写一块数据时,给DMA模块产生一条命令,发送以下信息:
- 是否请求一次读或写;
- 涉及的I/O设备的地址;
- 开始读或写的存储器单元;
- 需要读或写的字数。
此时IO设备的管理权转移到DMA设备,CPU继续其它工作。DMA模块直接与存储器交互,传送整个数据块,无须处理器参与。
-
传送完成或IO错误,DMA模块发一个中断信号给处理器,处理器处理中断。
缺点:周期挪用:当 CPU 与 I/O 同时访问主存,CPU 必须把总线占有权让给 DMA 接口使用,即 DMA 采用周期挪用占用一个存储周期,处理器的执行速度会变慢。
DMA 中断IO 可编程IO的区别
【建议收藏】计算机组成原理—DMA、中断控制、I/O之间的联系与区别
多核处理器和多核计算机组织结构
对称多处理器(SMP)
SMP是具有以下特点的独立计算机系统:
-
具有两个或两个以上可比性能的处理器;
-
所有处理器共享内存和I/O设备,并通过总线或其他内部连接方式互连,从而每个处理器的访存时间大致上相同;
-
所有处理器共享对I/O设备的访问,通过相同的通道或者可以连接到相同设备的不同通道;所有处理器可以执行相同的功能;
-
整个系统由一个统一的操作系统控制,为多个处理器及其程序提供各种级别的交互。
多处理器的存在对用户是透明的。
该结构说白了就是N个处理器共享总线、IO、内存,形成多物理处理器的电脑,如下图所示:
多核CPU
多核(muliticore)计算机是指将两个或多个处理器(核)组装在同一块芯片上。每个核上通常会包含组成一个独立的处理器的所有零部件。如下图:
PSW,程序状态字,PSW中包含了当前运行进程的状态信息,包括内存使用信息、条件码和其他诸如允许中断/禁止中断位、内核/用户模式位等状态;PC,程序计数器。 ↩︎