Cha1 计算机系统概述要求掌握 …
CPU中的寄存器有两类,分别包括什么
基本指令周期有哪两步,基本指令有哪四类
常见中断分几类,中断对指令周期的影响
在 I/O中采用中断的作用是什么
如何处理中断
多个中断如何响应
为何采取层次结构的存储体系
cache的作用是什么,其中标签的作用是什么
cache的工作原理计算机部件的顶层视图
CPU
PC
IR
MAR
MBR
I/O AR
I/O BR
I/O模块
……
缓冲区指令指令指令数据数据数据
……
……
……
内存执行单元系统总线
CPU中的寄存器
MAR-存储器地址寄存器
memory address register
MBR-存储器缓冲寄存器
memory buffer register
I/OAR- I/O地址寄存器
I/OBR- I/O缓冲寄存器
PC-程序计数器
program counter
IR-指令寄存器
instructor register
处理器寄存器
用户可见寄存器
– 数据寄存器
– 地址寄存器
变址寄存器
段指针
栈指针
控制和状态寄存器
– 程序计数器
– 指令寄存器
– 程序状态字 PSW
– 中断寄存器
– 系统栈指针应用程序系统程序系统程序index registersegment pointer
stack pointer
program status word
基本指令周期
处理器-存储器
处理器- I/O
数据处理
控制开始 取下条指令 执行指令 停止取周期 执行周期指令格式与数据格式
0001将存储器加的值放到 AC
0010将 AC内容放到存储器
0101将存储器的值加到 AC中操作码 地址符号 数值
0 3 15
指令格式数据格式
[940]+[941]? [941]
300 1940
301 5941
302 2941
…
940 0003
941 0002
300 PC
AC
1940 IR
300 1940
301 5941
302 2941
…
940 0003
941 0002
301 PC
0003 AC
1940 IR
内存 CPU
程序数据
1-取指令
2-执行指令
[940]+[941]? [941]
300 1940
301 5941
302 2941
…
940 0003
941 0002
301 PC
0003 AC
5941 IR
300 1940
301 5941
302 2941
…
940 0003
941 0002
302 PC
0005 AC
5941 IR
3+2=5
[940]+[941]? [941]
300 1940
301 5941
302 2941
…
940 0003
941 0002
302 PC
0005 AC
2941 IR
300 1940
301 5941
302 2941
…
940 0003
941 0005
303 PC
0005 AC
2941 IR
中断分类程序中断 由指令执行结果产生时钟中断 由处理器内部的计时器产生
I/O中断 由 I/O控制器产生硬件失效中断 由掉电、内存错等故障产生程序的控制流 -无中断
1
write
2
write
3
write
4
I/O命令
5
结束用户程序 I/O程序传送参数 …
真正的 I/O指令设置标记 …
程序的控制流 -有中断
1
write
2
write
3
write
4
I/O命令
5
结束用户程序 I/O程序中断处理中断中断程序的控制流 -有中断
write
write
write
I/O命令结束用户程序 I/O程序中断处理利用中断转移控制中断和指令周期用户程序 中断处理程序开始 取下条指令 执行指令 检查中断处理中断允许中断不允许中断停止取周期 执行周期 中断周期中断程序时序-短 I/O
1
4
CPU等待
5
2
4
CPU等待
5
3
1
4
2a
5
2b
4
3a
5
3b
I/O操作
I/O操作
I/O操作
I/O操作时间无中断有中断程序时序-长 I/O
1
4
CPU等待
5
2
4
CPU等待
5
3
1
4
2
5
4
3
5
I/O操作
I/O操作
I/O操作
I/O操作时间无中断 有中断
CPU等待
CPU等待简单中断处理设备控制器或其他硬件产生中断
CPU结束当前指令
CPU发送应答信号
CPU将 PSW/PC入栈
CPU加载新 PC值保存剩余的处理状态信息处理中断恢复处理状态信息恢复原 PSW/PC值硬件 软件中断引起的变化-中断
N+1
T
控制栈中断服务程序用户程序
PC
栈指针寄存器
Y
T-M
Y
N
T
处理器内存
Y+L
T-M
中断引起的变化-返回
Y+L
T-M
控制栈中断服务程序用户程序
PC
栈指针寄存器
N+1
T
Y
N
T
处理器内存多中断中的控制转移用户程序 中断处理程序顺序处理嵌套处理多中断的时间顺序用户程序打印机 ISR-2 通信 ISR-5
磁盘 ISR-4
T=25
T=40
发生中断多道程序设计
A
B
正在运行无法运行可以运行存储器层次结构设计目标-容量?、速度?,价格?
离线存储器板外存储器板上存储器 寄存器,高速缓存,内存磁盘,光盘磁带减少访问频率一个简单的二级存储器的性能
0 1
T1+T2
T1平均访问时间一级 二级CPU
T1 T2
命中率 hit ratio
访问的局部性原理短时间内,处理器主要访问内存的小范围区域所有程序、数据近期使用的程序、数据
CPU
容量小,
速度快,价格高容量大,
速度慢,价格低一级二级
CPU
存储体系寄存器
cache
内存磁盘 cache
虚拟存储器磁盘高速缓冲 Cache和主存
CPU cache 主存字传送 块传送
Cache结构
0
1
2
…
C-1 ……
标签 块编号块大小
K个字
0
K- 1
2n- 1
块 0#
字长
……
Cache的大小 C<< M
内存槽块 M-1#
…
标签的作用标签 块
00 0000 0001 0010 0011
01 0100 0101 0110 0111
10 1000 1001 1010 1011
11 1100 1101 1110 1111
0 1 32
地址长度
Cache读操作开始从 CPU接收地址 RA
包含 RA的块在 cache中从 cache获取数据访问含 RA的内存块为它分配 cache槽该块装入槽 RA数据给 CPU
结束
Y
N
Cache设计
Cache大小
块大小
映射函数
替换算法
写策略块的大小块的大小命中率
I/O通信技术-
程序控制 I/O
给 I/O模块发出读命令读 I/O模块状态检查状态从 I/O模块中读字完成向存储器中写字
yn
准备好未准备好
cpu→I/O
I/O → cpu
错误条件
I/O → cpu
cpu→ 内存下条指令
I/O通信技术-
中断驱动 I/O
给 I/O模块发出读命令读 I/O模块状态检查状态从 I/O模块中读字完成向存储器中写字
yn
准备好
cpu→I/O
I/O → cpu
错误条件
I/O → cpu
cpu→ 内存执行其他程序中断下条指令
请求读或写操作
涉及的外设地址
开始读写的内存地址
读写的字数
I/O通信技术- DMA
给 I/O模块发出读命令读 DMA模块状态
cpu→DMA
cpu ← DMA
执行其他程序中断下条指令
Direct memory access
CPU中的寄存器有两类,分别包括什么
基本指令周期有哪两步,基本指令有哪四类
常见中断分几类,中断对指令周期的影响
在 I/O中采用中断的作用是什么
如何处理中断
多个中断如何响应
为何采取层次结构的存储体系
cache的作用是什么,其中标签的作用是什么
cache的工作原理计算机部件的顶层视图
CPU
PC
IR
MAR
MBR
I/O AR
I/O BR
I/O模块
……
缓冲区指令指令指令数据数据数据
……
……
……
内存执行单元系统总线
CPU中的寄存器
MAR-存储器地址寄存器
memory address register
MBR-存储器缓冲寄存器
memory buffer register
I/OAR- I/O地址寄存器
I/OBR- I/O缓冲寄存器
PC-程序计数器
program counter
IR-指令寄存器
instructor register
处理器寄存器
用户可见寄存器
– 数据寄存器
– 地址寄存器
变址寄存器
段指针
栈指针
控制和状态寄存器
– 程序计数器
– 指令寄存器
– 程序状态字 PSW
– 中断寄存器
– 系统栈指针应用程序系统程序系统程序index registersegment pointer
stack pointer
program status word
基本指令周期
处理器-存储器
处理器- I/O
数据处理
控制开始 取下条指令 执行指令 停止取周期 执行周期指令格式与数据格式
0001将存储器加的值放到 AC
0010将 AC内容放到存储器
0101将存储器的值加到 AC中操作码 地址符号 数值
0 3 15
指令格式数据格式
[940]+[941]? [941]
300 1940
301 5941
302 2941
…
940 0003
941 0002
300 PC
AC
1940 IR
300 1940
301 5941
302 2941
…
940 0003
941 0002
301 PC
0003 AC
1940 IR
内存 CPU
程序数据
1-取指令
2-执行指令
[940]+[941]? [941]
300 1940
301 5941
302 2941
…
940 0003
941 0002
301 PC
0003 AC
5941 IR
300 1940
301 5941
302 2941
…
940 0003
941 0002
302 PC
0005 AC
5941 IR
3+2=5
[940]+[941]? [941]
300 1940
301 5941
302 2941
…
940 0003
941 0002
302 PC
0005 AC
2941 IR
300 1940
301 5941
302 2941
…
940 0003
941 0005
303 PC
0005 AC
2941 IR
中断分类程序中断 由指令执行结果产生时钟中断 由处理器内部的计时器产生
I/O中断 由 I/O控制器产生硬件失效中断 由掉电、内存错等故障产生程序的控制流 -无中断
1
write
2
write
3
write
4
I/O命令
5
结束用户程序 I/O程序传送参数 …
真正的 I/O指令设置标记 …
程序的控制流 -有中断
1
write
2
write
3
write
4
I/O命令
5
结束用户程序 I/O程序中断处理中断中断程序的控制流 -有中断
write
write
write
I/O命令结束用户程序 I/O程序中断处理利用中断转移控制中断和指令周期用户程序 中断处理程序开始 取下条指令 执行指令 检查中断处理中断允许中断不允许中断停止取周期 执行周期 中断周期中断程序时序-短 I/O
1
4
CPU等待
5
2
4
CPU等待
5
3
1
4
2a
5
2b
4
3a
5
3b
I/O操作
I/O操作
I/O操作
I/O操作时间无中断有中断程序时序-长 I/O
1
4
CPU等待
5
2
4
CPU等待
5
3
1
4
2
5
4
3
5
I/O操作
I/O操作
I/O操作
I/O操作时间无中断 有中断
CPU等待
CPU等待简单中断处理设备控制器或其他硬件产生中断
CPU结束当前指令
CPU发送应答信号
CPU将 PSW/PC入栈
CPU加载新 PC值保存剩余的处理状态信息处理中断恢复处理状态信息恢复原 PSW/PC值硬件 软件中断引起的变化-中断
N+1
T
控制栈中断服务程序用户程序
PC
栈指针寄存器
Y
T-M
Y
N
T
处理器内存
Y+L
T-M
中断引起的变化-返回
Y+L
T-M
控制栈中断服务程序用户程序
PC
栈指针寄存器
N+1
T
Y
N
T
处理器内存多中断中的控制转移用户程序 中断处理程序顺序处理嵌套处理多中断的时间顺序用户程序打印机 ISR-2 通信 ISR-5
磁盘 ISR-4
T=25
T=40
发生中断多道程序设计
A
B
正在运行无法运行可以运行存储器层次结构设计目标-容量?、速度?,价格?
离线存储器板外存储器板上存储器 寄存器,高速缓存,内存磁盘,光盘磁带减少访问频率一个简单的二级存储器的性能
0 1
T1+T2
T1平均访问时间一级 二级CPU
T1 T2
命中率 hit ratio
访问的局部性原理短时间内,处理器主要访问内存的小范围区域所有程序、数据近期使用的程序、数据
CPU
容量小,
速度快,价格高容量大,
速度慢,价格低一级二级
CPU
存储体系寄存器
cache
内存磁盘 cache
虚拟存储器磁盘高速缓冲 Cache和主存
CPU cache 主存字传送 块传送
Cache结构
0
1
2
…
C-1 ……
标签 块编号块大小
K个字
0
K- 1
2n- 1
块 0#
字长
……
Cache的大小 C<< M
内存槽块 M-1#
…
标签的作用标签 块
00 0000 0001 0010 0011
01 0100 0101 0110 0111
10 1000 1001 1010 1011
11 1100 1101 1110 1111
0 1 32
地址长度
Cache读操作开始从 CPU接收地址 RA
包含 RA的块在 cache中从 cache获取数据访问含 RA的内存块为它分配 cache槽该块装入槽 RA数据给 CPU
结束
Y
N
Cache设计
Cache大小
块大小
映射函数
替换算法
写策略块的大小块的大小命中率
I/O通信技术-
程序控制 I/O
给 I/O模块发出读命令读 I/O模块状态检查状态从 I/O模块中读字完成向存储器中写字
yn
准备好未准备好
cpu→I/O
I/O → cpu
错误条件
I/O → cpu
cpu→ 内存下条指令
I/O通信技术-
中断驱动 I/O
给 I/O模块发出读命令读 I/O模块状态检查状态从 I/O模块中读字完成向存储器中写字
yn
准备好
cpu→I/O
I/O → cpu
错误条件
I/O → cpu
cpu→ 内存执行其他程序中断下条指令
请求读或写操作
涉及的外设地址
开始读写的内存地址
读写的字数
I/O通信技术- DMA
给 I/O模块发出读命令读 DMA模块状态
cpu→DMA
cpu ← DMA
执行其他程序中断下条指令
Direct memory access