文章目录
本节课程是按照冯诺依曼计算机体系结构为基础,自顶向下分析冯诺依曼体系结构的组成、优缺点、改进。并以此为基础对各个部分进行详细的介绍。
1. 冯诺依曼体系结构
核心内容
- 二进制
- 程序存储
- 5个基本组成部分
- 冯诺依曼体系结构的问题与改进
(1)冯诺依曼体系结构
冯诺依曼体系结构如下图所示:
冯诺依曼体系结构有五个组成部分:
- 运算器
- 控制器
- 存储器:数据存储器、程序存储器
- 输入设备
- 输出设备
CPU通过总线与存储器和I/O设备相关联,总线一般包括:
- 数据总线(DB)
- 地址总线(AB)
- 控制总线(CB)
CPU可以抽象为控制器+运算器,控制器由一些功能寄存器组成:
- 程序计数器PC
- 指令寄存器IR
- 通用寄存器R0,R1,…R7
输入输出设备也包含五个部分:
- 并口
- 串口
- 定时器
- 中断
- DMA
(2)程序存储与执行
指令和数据用二进制存储在存储器中。控制程序执行的有两个特殊功能寄存器:
- 程序计数器PC:存放下一条机器指令的地址。
- 指令寄存器IR:存储当前正在执行的机器指令。
机器周期是指执行一条指令需要的时间。一个机器周期的程序执行步骤分为三步:
- 取指令:按PC所指地址获取指令并存储在IR中。
- 译码:控制器翻译IR机器指令功能。
- 执行:执行IR中存储的指令。
(3)问题与优化
冯诺依曼计算机的串行性严重制约了其性能的提升空间,机器的串行性包括:
- 指令执行的串行性
- 存储空间访问的串行性
为了提升冯诺依曼计算机的运行效率,就得去解决串行性问题。我们常常可以从总线、CPU、计算机结构三个方面思考提高性能的方式。
最简单的方法就是加快机器主频,提高CPU访问存储器、执行指令的速度。 但是CPU的主频不能无限提高,因为机器的功耗会随着主频的提高而增大。 也可以通过流水线作业或多处理器并行的方法,依靠时间上的重叠提高处理效率。从总线的角度考虑,我们可以增大总线宽度提高传输数据量的大小。也可以将总线分段,各段总线独立运行实现流水线作业。从计算机结构考虑,可以引入中断机制。
讨论完冯诺依曼体系结构的基本组成以及问题和改进,接下来我们将就对剩下的两个部分“存储器”、“输入输出设备”进行细致的探讨。
2. 存储器
在计算机中,指令和数据以二进制的形式存储在存储器中。理想的寄存器应该具有容量大、速度快、价格低、体积小、非易失性等特征。对于通用计算机而言,存储层次至少应该有三级:寄存器、主存(RAM,ROM)、辅存(磁盘、固态硬盘)。存储层次按照存储器的单位成本和速度进行划分,常见的存储层次如下:
(1)存储器种类
根据存储器层次对当前流行并使用的存储器进行划分:
主存:又称内存,是CPU可以直接访问的存储空间。内存一般由半导体器件组成,包括:
-
RAM(随机存储器):可以读写的存储器。但是断电后数据就会消失。
①SRAM(静态随机存储器):速度快不需要刷新操作。
②DRAM(动态随机存储器):电容存在漏电现象,需要周期性刷新。 -
ROM(只读存储器):在制造ROM时信息就被永久写入保存。这些信息只能读出不能写入。
-
Cache(高速缓存器):在CPU和内存之间,是一个读写速度别内存更快的存储器。
-
Flash:结合了RAM和ROM的长处,不仅具备电子可擦除编程性能,还可以断电不丢失数据。
外存:此类存储器断电后仍能保存数据,且容量较大。缺点是速度较慢。
- 固态硬盘
- 磁盘
- 光盘
- U盘
当前流行和使用的存储器都没有办法满足理想存储器的性质。当前的存储器主要有以下三点问题:
-
高速度与易失、容量的矛盾
比如访问内存的速度是很快的,但是因为内存制造成本很高,难以造出具有很高容量的内存。 -
大容量与速度、成本的矛盾
-
非易失与速度、寿命的矛盾
-
存储器墙问题:当前内存的存取速度严重滞后于处理器的计算速度,内存瓶颈导致高性能处理器难以发挥出应有的功效。
介绍完了冯诺依曼体系结构以及存储器结构后,我们将以一些具体的计算机实例(51单片机、X86)等对五大组成部分进行分析了。
3. I/O设备
下面我们将通过下述五个方面对I/O设备进行分析。
- 并口
- 串口
- 定时器
- 中断
- DMA
3.1 并行接口
3.1.1 51并行接口
- 标准51有四个并行接口:P0, P1, P2, P3。
①P0, P1, P2, P3每个接口都有8个IO口,比如P0口设定<P0.7, P0.6, P0.5, P0.4, P0.3, P0.2, P0.1, P0.0>.
所有I/O口都可以通过软件配置为4种工作类型之一(优点:可以大大简化MCU外围电路),我们可以通过设置PxM1, PxM0的值为Px配置工作模式:
- 准双向口:PxM1 = 0, PxM0 = 0
- 推挽输出:PxM1 = 0, PxM0 = 1
- 高阻输入:PxM1 = 1, PxM0 = 0
- 开漏:PxM1 = 1, PxM0 = 1
3.1.2 并口应用
(1)应用一:LED与数码管
- 位选信号:P2.0, P2.1, P2.2
- 段选信号:P0.0~P0.7
①此图中,P0.0-A, P0.1-B, P0.2-C, P0.3-D, P0.4-E, P0.5-F, P0.6G, P0.7H
②此图中IO口与段的对应关系:a(P0.0), b(P0.1), c(P0.2), d(P0.3), e(P0.4), f(P0.5), g(P0.6), h(P0.7)。一般考察就是修改对应关系然后求出各个数字对应端口值。
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 无 |
---|---|---|---|---|---|---|---|---|---|---|
0xfd | 0x60 | 0xda | 0xf2 | 0x66 | 0x96 | 0x3e | 0xe0 | 0xfe | 0xf6 | 0x00 |
0:1111 1101 = 0xfd
1:0110 0000 = 0x60
2:1101 1010 = 0xda
3:1111 0010 = 0xf2
4:0110 0110 = 0x66
5:1001 0110 = 0x96
6:0011 1110 = 0x3e
7:1110 0000 = 0xe0
8:1111 1110 = 0xfe
9:1111 0110 = 0xf6
无:0000 0000 = 0x00
- 控制开关:P2.3
①当P2.3为高电平时,LED阴极接地,可以正常显示。
②当P2.3为低电平时,LED阴极为阳,LED灯不发光。
(2)应用二:步进电机
-
步进电机由P4.1~P4.4进行控制,可以通过并口4各个IO口的电压变化,使步进电机发生转动。
①P4.1~P4.4设置推挽,即P4M0 = 0x3f, P4M1 = 0xe1。 -
一相励磁方式:在每一瞬间,步进电机只有一个线圈导通。每送一个励磁信号,步进电机旋转5.625°
上面我们