本文转载自厉害的
孔姐姐
的 博客 。由一只孔姐姐的小迷弟负责排版和整理~
一、常用术语
1.位和字节
-
位:计算机所能表示的最小的、最基本的数据单位
-
字节:由 8 个位组成
2.字长:一次可以直接处理的二进制数码的位数
与 通用寄存器的位数、数据总线的宽度
有关
注意一下,通用寄存器。以后会提到。
“宽度”,有多少根数据总线
3.寻址能力:CPU 能直接存取数据的内存地址的范围
与 地址总线的数目
有关
4.主频:时钟频率
5.MIPS:million instructions per second
二、基本功能模块
1.基本功能模块(2 个)
-
总线接口单元 BIU:bus interface unit
用于取指令,包含寄存器组
-
执行单元 EU:excecution unit
用于执行指令,包含寄存器组、运算器、控制器
2.指令系统
-
RISC:精简指令系统
-
CISC:复杂指令系统
3.流水线
m 级流水线,会同时又 m 条指令同时执行。比非流水线的性能提高大约 m 倍。
三、寄存器
1.486 内部寄存器有 4 类(我们只介绍了基本结构寄存器)
应用程序只能访问基本结构寄存器、浮点结构寄存器
2.基本结构寄存器
-
通用寄存器:8 个 AX BX CX DX SP BP DI SI
-
段寄存器:4 个 CS DS ES SS
-
标志寄存器:FLAGS
-
指令指针:IP
3.功能
AX | accumulater |
---|---|
BX | base |
CX | count |
DX | data |
SP | stack pointer |
BP | base pointer 基址指针 |
DI | destination index 目的变址寄存器 |
SI | source index 源变址寄存器 |
其中,SP 、BP、 DI、 SI、 IP 都可以为存储单元提供偏移地址
4.标志寄存器(又称 程序状态字 PSW,16 位)
有两类:状态标志,控制标志
四、32位微处理器的工作模式和地址空间
1.微处理器的工作模式
- 实地址模式(实模式)
- 保护虚拟模式(保护模式)
- 虚拟 86 模式
2.实模式的特点(重点!会背)
①加电、复位后,系统自动处于实模式下,系统在 DOS 管理下
②实模式下,系统只能访问第一个 1M 内存(00000H~FFFFFH)
③存储管理部件对存储器实行分段管理,没有分页功能,每个逻辑段的最大容量为 64K
④实模式下,段寄存器中存储段基址
3.保护模式的特点(了解即可)
486 工作在保护模式下,才能真正发挥它的设计能力
①保护模式下,486 支持多任务操作系统
②保护模式下,486 可以访问 4G 物理存储空间
③存储管理部件中,对存储器采用分段和分页管理
4.关于保护机制
高级别的程序可以访问同级、或低级的数据段,反之不可。
5.虚拟 86 模式:保护模式下的一种特殊工作模式,可以运行实模式程序
五、32 位微处理器的地址空间(存储地址空间、I/O 地址空间)
1.存储地址空间
-
物理空间:主存储器的实际空间 486 有 32 条地址线(4G), 内存最大容量为 4G
-
虚拟空间:编程空间 逻辑地址 / 虚拟地址,允许编程空间为 2^46=64T
-
线性空间:用于隔离虚拟空间、物理空间 当程序从虚拟空间调入物理空间时,需要进行地址转换
我们的目的是 从程序员提供的虚拟地址 ----> 找到主存储器中实际的物理地址
都有的分段部件,可以让虚拟地址转化为线性地址。
你如果不分页,物理地址就是线性地址。
分页,线性地址经过分页部件,转化成了物理地址。
-
实模式:仅分段,不分页(每个逻辑段的最大容量为 64KB)
-
保护模式:分段、分页
(此处对应实模式、保护模式的特点)
2.I/O 空间
486 利用低 16 位地址线访问 I/O 端口,所以 I/O 端口最多有 2^16=64K,地址空间为 0000H~FFFFH
(存储地址空间中的物理空间是用的 32 条地址线)
六、实模式下,物理地址的形成
-
逻辑地址 段基址:偏移地址
-
物理地址 = 段基址 *16 + 偏移地址
-
16:实际上就是二进制下左移 4 位,H 就左移 1 位呗。
这个逻辑段 64KB(注意实模式的特点第③条),正好是 10000H ~ 1FFFFH。2^16=64KB. 也是正好段基址那存储单元。
不同的逻辑地址可以得到相同的物理地址
逻辑地址需要程序员给出。其中,段基址指明为那个存储器,偏移地址需要明确由程序员给出。
七、赋值原则
-
CS:IP 操作系统赋值
-
SS:SP 程序员、操作系统赋值
-
DS/FS/GS/ES 操作系统赋值
-
BX/BP/SI/DI 程序员