微处理器及其体系结构:从8088到现代多核处理器

🌈 say-fall:个人主页 🚀 专栏:《微机原理》 | 《手把手教你学会C++》 | 《C语言从零开始到精通》 | 《数据结构与算法》 💪 格言:做好你自己,才能吸引更多人,与他们共赢,这才是最好的成长方式。
📝 前言
提到微处理器(CPU),很多刚接触微机原理的同学第一反应就是"寄存器怎么这么多?""地址计算太麻烦了",甚至觉得这部分内容偏理论,和后续的实际开发脱节,学了没用。
但是当你真正开始学汇编语言、理解程序底层执行逻辑、甚至做嵌入式开发或驱动开发时,你会发现:不懂CPU的体系结构,你永远搞不懂为什么汇编指令要这么写,为什么内存要分段,为什么中断处理要遵循特定的流程。
不过不用担心------本文将带你从经典的8088/8086微处理器出发,系统掌握微处理器的体系结构核心知识点,为后续的汇编语言、接口技术和操作系统学习打下坚实的基础。
通过本文,你将掌握:
| 技能 | 应用场景 |
|---|---|
| 微处理器发展历程与分类 | 理解CPU技术演进逻辑,把握未来技术方向 |
| 8088/8086的核心架构与寄存器组织 | 看懂汇编代码的底层逻辑,理解CPU如何执行指令 |
| 实地址模式下的存储器寻址 | 掌握物理地址计算方法,解决内存访问的核心问题 |
| 现代多核与ARM/鲲鹏处理器特点 | 了解产业前沿技术,拓展技术视野 |
📌 前置知识: 本文不需要你有汇编基础,只需要了解计算机的基本组成(比如知道CPU、内存、硬盘分别是什么)即可。如果你学过《微机运行总概》的内容,理解起来会更快。
文章目录
- 微处理器及其体系结构:从8088到现代多核处理器
-
- [📝 前言](#📝 前言)
- [一、📜 微处理器概述与发展历程](#一、📜 微处理器概述与发展历程)
- [二、🔧 8088/8086 CPU的核心特点](#二、🔧 8088/8086 CPU的核心特点)
- [三、⚙️ 8088 CPU的两种工作模式](#三、⚙️ 8088 CPU的两种工作模式)
-
- [1. 最小模式](#1. 最小模式)
- [2. 最大模式](#2. 最大模式)
- [四、📶 8088 CPU的主要引线及功能](#四、📶 8088 CPU的主要引线及功能)
-
- [1. 地址线和数据线](#1. 地址线和数据线)
- [2. 主要控制和状态信号](#2. 主要控制和状态信号)
- [3. 中断请求和响应信号](#3. 中断请求和响应信号)
- [4. 总线保持信号](#4. 总线保持信号)
- [五、🧠 8088 CPU的内部结构](#五、🧠 8088 CPU的内部结构)
-
- [1. 执行单元(EU)](#1. 执行单元(EU))
- [2. 总线接口单元(BIU)](#2. 总线接口单元(BIU))
- 并行工作原理
- [六、📋 8088 CPU的内部寄存器详解](#六、📋 8088 CPU的内部寄存器详解)
-
- [1. 通用寄存器](#1. 通用寄存器)
- [2. 控制寄存器](#2. 控制寄存器)
- [3. 段寄存器](#3. 段寄存器)
- [七、🗺️ 实地址模式下的存储器寻址](#七、🗺️ 实地址模式下的存储器寻址)
-
- [1. 逻辑地址与物理地址](#1. 逻辑地址与物理地址)
- [2. 地址变换公式](#2. 地址变换公式)
- [3. 逻辑段的特点](#3. 逻辑段的特点)
- [4. 四种类型的逻辑段](#4. 四种类型的逻辑段)
- [八、⏱️ 8088总线时序基础](#八、⏱️ 8088总线时序基础)
- [九、🚀 32位处理器与多核技术](#九、🚀 32位处理器与多核技术)
-
- [1. Pentium 4和Core 2微处理器的主要特点](#1. Pentium 4和Core 2微处理器的主要特点)
- [2. 多核处理器](#2. 多核处理器)
- [十、🌐 ARM处理器与国产鲲鹏处理器简介](#十、🌐 ARM处理器与国产鲲鹏处理器简介)
-
- [1. ARM处理器概述](#1. ARM处理器概述)
- [2. 国产鲲鹏处理器简介](#2. 国产鲲鹏处理器简介)
- [十一、🤔 几个思考题](#十一、🤔 几个思考题)
-
- [1️⃣ 为什么8088/8086要采用存储器分段管理的方式?](#1️⃣ 为什么8088/8086要采用存储器分段管理的方式?)
- [2️⃣ 简述8088 CPU中EU和BIU的并行工作原理,这种设计的优势是什么?](#2️⃣ 简述8088 CPU中EU和BIU的并行工作原理,这种设计的优势是什么?)
- [3️⃣ 简述实地址模式下物理地址的计算方法,并举例说明。](#3️⃣ 简述实地址模式下物理地址的计算方法,并举例说明。)
- [4️⃣ ARM处理器的RISC架构和传统x86的CISC架构有什么区别?](#4️⃣ ARM处理器的RISC架构和传统x86的CISC架构有什么区别?)
- [十二、🎉 结语](#十二、🎉 结语)
一、📜 微处理器概述与发展历程
微处理器是集成在一块半导体芯片上的中央处理器(CPU),包含运算器、控制器和寄存器组三大核心部分,是整个计算机系统的"大脑"。
微处理器的发展历程和计算机技术的发展是同步的,大致可以分为5个阶段:
- 第一代(1971-1973):4位和低档8位微处理器
- 代表产品:Intel 4004、8008
- 特点:集成度低,运算速度慢,指令系统简单,主要用于简单的计算器和嵌入式设备。
- 第二代(1974-1977):中高档8位微处理器
- 代表产品:Intel 8080、8085,Zilog Z80
- 特点:集成度和运算速度有了较大提高,指令系统更加完善,开始用于早期的个人电脑。
- 第三代(1978-1984):16位微处理器
- 代表产品:Intel 8086/8088、80286
- 特点:16位数据总线,20位地址总线,可寻址1MB内存,支持多任务和内存保护,是x86架构的鼻祖。
- 第四代(1985-2000):32位微处理器
- 代表产品:Intel 80386、80486、Pentium系列
- 特点:32位数据总线和地址总线,可寻址4GB内存,引入流水线和超标量技术,性能大幅提升。
- 第五代(2000至今):64位多核微处理器
- 代表产品:Intel Core系列,AMD Ryzen系列,ARM Cortex系列
- 特点:64位架构,多核技术,更高的集成度和运算速度,支持虚拟化和SIMD指令,广泛应用于桌面、服务器和移动设备。
💡 小贴士:我们现在用的电脑的CPU,基本都属于第五代微处理器,多核、64位是标配。
二、🔧 8088/8086 CPU的核心特点
8086是Intel公司1978年推出的16位微处理器,而8088是其准16位版本(内部16位,外部数据总线为8位),两者的内部架构基本一致,是x86架构的鼻祖,至今仍是微机原理课程的核心教学内容。
8088/8086 CPU的核心特点可以总结为3点:
-
采用并行流水线工作方式
- 通过设置指令预取队列实现:总线接口单元(BIU)和执行单元(EU)可以并行工作。
- 当EU执行指令时,BIU可以提前从内存中读取下一条或多条指令,放入预取队列中,大大减少了CPU等待取指的时间,提高了工作效率。
-
对内存空间实行分段管理
- 将1MB的内存空间划分为若干个逻辑段,每个逻辑段的最大长度为64KB。
- 段地址和偏移地址都是16位,实现了用较短的字长(16位)对较大存储空间(1MB)的寻址。
⚠️ 注意:每个逻辑段的最大长度是64KB,因为偏移地址是16位,2^16=65536字节=64KB,超过的话需要跨段访问。
-
支持多处理器系统
- 可以与8087数学协处理器、8089 I/O处理器等配合使用,构成多处理器系统,提高系统的整体性能。
三、⚙️ 8088 CPU的两种工作模式
8088 CPU可以工作在两种模式下:最小模式 和最大模式 ,由MN/#MX引脚的状态决定:
MN/#MX = 1:工作于最小模式MN/#MX = 0:工作于最大模式
1. 最小模式
- 属于单处理器模式,系统中只有一个8088 CPU。
- 所有的控制信号都由CPU直接产生,不需要额外的总线控制器。
- 控制信号较少,电路设计简单,适用于小型、简单的微机系统。
2. 最大模式
- 属于多处理器模式,系统中可以包含多个处理器(比如加上数学协处理器)。
- CPU不直接产生所有的控制信号,需要通过总线控制器(如8288)来产生。
- 控制信号较多,功能更强大,适用于大型、复杂的微机系统。
四、📶 8088 CPU的主要引线及功能
8088 CPU采用40引脚双列直插封装,由于引脚数量有限,许多引脚采用了分时复用技术(同一个引脚在不同时间传输不同的信号),所有引脚的信号都是TTL电平,可以直接和TTL电路连接。
1. 地址线和数据线
AD0-AD7:低8位地址和低8位数据信号分时复用。- 在总线周期的T1状态,输出低8位地址;
- 在T2-T4状态,作为双向数据线使用。
A8-A15:8位地址信号,单向输出,在整个总线周期保持地址稳定。A16-A19/S3-S6:高4位地址信号与状态信号分时复用。- 在T1状态,输出高4位地址;
- 在T2-T4状态,输出状态信息(S3-S4用于表示当前使用的段寄存器)。
2. 主要控制和状态信号
#WR:写信号,低电平有效,表示CPU正在执行写操作(向内存或I/O接口写数据)。#RD:读信号,低电平有效,表示CPU正在执行读操作(从内存或I/O接口读数据)。IO/#M:I/O/存储器选择信号。- 为
0表示访问内存; - 为
1表示访问I/O接口。
- 为
#DEN:数据允许信号,低电平有效,用于允许数据收发器进行读/写操作。DT/#R:数据收发方向控制信号。- 为
0表示CPU接收数据(读操作); - 为
1表示CPU发送数据(写操作)。
- 为
ALE:地址锁存信号,高电平有效,用于将地址信号锁存到地址锁存器中(因为地址和数据分时复用,需要用ALE信号把地址"留住")。RESET:复位信号,高电平有效,使CPU回到初始状态(复位后CS=FFFFH,IP=0000H,所以复位后第一条指令从FFFF0H开始执行)。
⚠️ 注意:判断CPU当前操作类型的口诀:
IO/#M区分访问内存还是I/O,#RD和#WR区分读还是写。比如#WR=1、#RD=0、IO/#M=0,就表示CPU正在执行读存储器操作。
3. 中断请求和响应信号
INTR:可屏蔽中断请求输入端,高电平有效。只有当标志寄存器中的IF=1时,CPU才会响应INTR的中断请求。NMI:非屏蔽中断请求输入端,上升沿有效。无论IF是否为1,CPU都会响应NMI的中断请求,常用于处理紧急的硬件故障(比如内存校验错误)。#INTA:中断响应输出端,低电平有效,CPU收到中断请求后,通过此引脚向中断源发送响应信号。
4. 总线保持信号
HOLD:总线保持请求信号输入端,高电平有效。当其他总线主设备(比如DMA控制器)需要使用总线时,会通过此引脚向CPU发送请求。HLDA:总线保持响应信号输出端,高电平有效。CPU收到HOLD请求后,会让出总线控制权,并通过此引脚通知请求方可以使用总线。
五、🧠 8088 CPU的内部结构
8088 CPU内部由两个独立的功能单元组成:执行单元(EU)和总线接口单元(BIU),两者可以并行工作,是8088采用并行流水线设计的核心。
1. 执行单元(EU)
执行单元负责指令的译码和执行,它不与系统总线直接相连。
组成:
- 算术逻辑单元(ALU):进行算术运算(加、减、乘、除)和逻辑运算(与、或、非、移位)。
- 8个通用寄存器:AX、BX、CX、DX、SP、BP、SI、DI,用于暂存运算数据和地址。
- 标志寄存器(FLAGS):保存运算结果的特征和控制标志。
- EU控制电路:产生各种控制信号,控制EU的操作。
功能:
- 从BIU的指令预取队列中取出指令并译码;
- 执行指令,完成各种运算操作;
- 暂存中间运算结果;
- 保存运算结果的特征到标志寄存器中。
2. 总线接口单元(BIU)
总线接口单元负责CPU与内存和I/O接口之间的数据传送。
组成:
- 4个段寄存器:CS(代码段)、DS(数据段)、ES(附加段)、SS(堆栈段)。
- 指令指针寄存器(IP):存放下一条要取的指令的偏移地址。
- 地址加法器:将16位的段地址和偏移地址转换为20位的物理地址。
- 指令预取队列:4字节的FIFO队列(8086为6字节),用于存放预取的指令。
- 总线控制逻辑:产生各种总线控制信号。
功能:
- 从内存中取指令到指令预取队列;
- 负责与内存或I/O接口之间的数据传送;
- 在执行转移程序时,使指令预取队列复位,从新的地址取指令。
并行工作原理
BIU和EU是两个独立的单元,可以并行工作:
- 当EU正在执行指令时,BIU可以提前从内存中读取下一条或多条指令,放入预取队列中;
- 当EU执行完一条指令后,可以立即从预取队列中取出下一条指令执行,不需要等待BIU去取指;
- 如果EU执行的是跳转指令,BIU会清空预取队列,重新从跳转后的地址取指。
💡 小贴士:这种并行设计是现代CPU流水线技术的雏形,现在的CPU已经发展到十几级甚至几十级流水线,核心思想和8088的EU/BIU并行是一致的。
六、📋 8088 CPU的内部寄存器详解
8088 CPU内部共有14个16位寄存器,按功能可分为三类:通用寄存器 、段寄存器 和控制寄存器。
1. 通用寄存器
通用寄存器可以用于存放数据和地址,共8个,分为三组:
(1)数据寄存器(AX、BX、CX、DX)
每个数据寄存器都是16位的,又可以分为两个独立的8位寄存器(高8位和低8位)使用,比如AX可以分为AH(高8位)和AL(低8位)。
- AX(累加器):所有I/O指令都通过AX与接口传送信息,中间运算结果也多放于AX中,是使用频率最高的寄存器。
- BX(基址寄存器):在间接寻址中用于存放基地址,默认搭配数据段寄存器DS使用。
- CX(计数寄存器):用于在循环或串操作指令中存放计数值,比如LOOP指令会自动让CX减1,直到CX=0为止。
- DX(数据寄存器):在间接寻址的I/O指令中存放I/O端口地址;在32位乘除法运算时,存放高16位数。
(2)地址指针寄存器(SP、BP)
- SP(堆栈指针寄存器):其内容为栈顶的偏移地址,默认搭配堆栈段寄存器SS使用。
- BP(基址指针寄存器):常用于在访问内存时存放内存单元的偏移地址,默认搭配SS使用,方便访问堆栈中的参数。
⚠️ 注意:BX和BP都可以作为基址寄存器使用,但它们的默认段不同:BX默认使用DS,BP默认使用SS,写汇编的时候不要搞混。
(3)变址寄存器(SI、DI)
- SI(源变址寄存器):在串操作指令中作为源操作数的指针,默认搭配DS使用。
- DI(目标变址寄存器):在串操作指令中作为目标操作数的指针,默认搭配ES使用。
2. 控制寄存器
控制寄存器用于控制CPU的操作,共2个:
(1)指令指针寄存器(IP)
- 其内容为下一条要取的指令的偏移地址,与代码段寄存器(CS)一起使用,确定下一条指令的物理地址。
- CPU每取一个字节的指令,IP就自动加1;如果取的是16位的指令,IP就自动加2。
(2)标志寄存器(FLAGS)
标志寄存器是一个16位的寄存器,其中有9位是有效的,包括6个状态标志位和3个控制标志位。
状态标志位(由运算结果自动置位,反映运算结果的特征):
- CF(进位标志位):加/减法运算时,若最高位有进/借位则CF=1,否则CF=0。
- OF(溢出标志位):当算术运算的结果超出了有符号数的可表达范围时,OF=1,否则OF=0。(比如8位有符号数的范围是-128~+127,如果运算结果是130,就会溢出,OF=1)
- ZF(零标志位):当运算结果为零时ZF=1,否则ZF=0。
- SF(符号标志位):当运算结果的最高位为1时,SF=1(表示结果为负),否则SF=0(表示结果为正)。
- PF(奇偶标志位):运算结果的低8位中"1"的个数为偶数时PF=1,否则PF=0。
- AF(辅助进位标志位):加/减操作中,若Bit3向Bit4有进位/借位,AF=1,否则AF=0,主要用于BCD码运算。
控制标志位(由程序置位,控制CPU的操作):
- TF(陷阱标志位):TF=1时,使CPU处于单步执行指令的工作方式,每执行一条指令就会产生一个单步中断,常用于程序调试。
- IF(中断允许标志位):IF=1使CPU可以响应可屏蔽中断请求(INTR),IF=0则禁止响应。
- DF(方向标志位):在数据串操作时确定操作的方向。DF=0时,串操作从低地址向高地址进行;DF=1时,串操作从高地址向低地址进行。
3. 段寄存器
段寄存器用于存放相应逻辑段的段基地址,共4个:
- CS(代码段寄存器):存放代码段的段基地址,代码段用于存放程序的指令码。
- DS(数据段寄存器):存放数据段的段基地址,数据段用于存放指令执行的数据。
- ES(附加段寄存器):存放附加段的段基地址,附加段用于部分特殊指令执行时存放数据。
- SS(堆栈段寄存器):存放堆栈段的段基地址,堆栈段是内存的动态存储区,用于临时存放需要保存的数据(比如函数调用的参数、局部变量等)。
七、🗺️ 实地址模式下的存储器寻址
8088 CPU有20条地址线,可以寻址1MB的内存空间(地址范围00000H~FFFFFH)。但CPU内部的寄存器都是16位的,无法直接表示20位的地址。为了解决这个问题,8088采用了存储器分段管理的方式。
1. 逻辑地址与物理地址
- 逻辑地址 :程序员在编写程序时使用的地址,由段基地址和偏移地址两部分组成,都是16位,格式为
段地址:偏移地址。 - 物理地址:内存单元在整个内存空间中的唯一地址,是20位的,也就是我们常说的内存地址。
2. 地址变换公式
物理地址 = 段基地址 × 16 + 偏移地址
计算过程:
- 将16位的段基地址左移4位(相当于乘以16),得到20位的段首地址;
- 将段首地址与16位的偏移地址相加,得到20位的物理地址。
示例 :
设数据段寄存器DS = 250AH,数据所在单元的偏移地址= 0204H,则该操作数的物理地址为:
250AH × 16 + 0204H = 250A0H + 0204H = 252A4H
3. 逻辑段的特点
- 内存的分段是逻辑分段,不是物理分段,也就是说段与段之间在物理上可以连续、不连续、部分重合,甚至完全重合。
- 每个内存单元具有唯一的物理地址,但可能具有多个逻辑地址(比如同一个物理地址可以对应
DS:偏移地址,也可以对应ES:偏移地址)。 - 逻辑段的大小、位置都可改变,一个逻辑段的默认容量为64KB(因为偏移地址是16位)。
4. 四种类型的逻辑段
从程序设计的角度,内存按4种类型划分逻辑段:
- 代码段:用于存放程序中的指令码,由CS和IP寻址。
- 数据段:用于存放指令执行的数据,由DS和偏移地址寻址。
- 附加段:用于部分特殊指令执行时存放数据,由ES和偏移地址寻址。
- 堆栈段:是内存的动态存储区,用于临时存放需要保存的数据,由SS和SP寻址。
💡 小贴士:分段管理的方式不仅解决了16位寄存器寻址1MB内存的问题,还为后续的内存保护、虚拟内存等技术打下了基础。
八、⏱️ 8088总线时序基础
时序 是指CPU各引脚信号在时间上的关系。总线周期是指CPU完成一次访问内存(或I/O接口)操作所需要的时间。
一个基本的总线周期至少包括4个时钟周期(T1、T2、T3、T4):
- T1状态:CPU输出地址信号,指明要访问的内存单元或I/O端口的地址,同时发出ALE信号锁存地址。
- T2状态:CPU撤销地址信号,准备进行数据传送,此时数据总线进入高阻状态。
- T3状态:CPU与内存或I/O接口之间进行数据传送,数据总线上出现有效数据。
- T4状态:总线周期结束,CPU完成数据的读取或写入。
如果内存或I/O接口的速度较慢,无法在T3状态完成数据传送,可以在T3和T4之间插入若干个等待状态(Tw),直到数据传送完成再进入T4状态。
⚠️ 注意:等待状态Tw是CPU主动插入的,目的是适配慢速的外设,保证数据传送的正确性。
九、🚀 32位处理器与多核技术
1. Pentium 4和Core 2微处理器的主要特点
相对于16位处理器,Pentium 4和Core 2微处理器具有以下主要特点:
- 采用了多级、多流水线的超标量结构,可以同时执行多条指令,提高并行度。
- 将内部高速缓存分为数据缓存和指令缓存(即L1 Cache分为数据Cache和指令Cache),减少CPU访问内存的次数,提高执行效率。
- 数据总线宽度从32位增加到64位,提高了数据传送的速度。
- 采用了超流水线技术,增加流水线级数,提高时钟频率,进一步提升性能。
- 采用了动态执行技术,包括分支预测、数据流分析和推测执行,减少CPU等待的时间。
- 支持单指令多数据流式扩展技术(SIMD),一条指令可以同时处理多个数据,提高多媒体、科学计算等场景的处理能力。
- 指令集功能不断扩充,支持更多的复杂操作。
2. 多核处理器
多核处理器是指在一枚处理器(CPU)上集成两个或多个完整的计算引擎(运算核)。
- 每个运算核可以独立执行程序中的一个单独的任务,多个核心可以同时工作,实现真正的并行处理。
- 整个处理器可以同时执行数倍于单核处理器的任务数,极大提升了处理器的并行性能。
- 现在的主流处理器都是多核的,比如双核、四核、八核甚至更多核,核心数越多,并行处理能力越强。
十、🌐 ARM处理器与国产鲲鹏处理器简介
1. ARM处理器概述
ARM(Advanced RISC Machines)是目前主流的嵌入式微处理器,采用**RISC(精简指令集计算机)**架构。
RISC与CISC的区别:
| 对比维度 | CISC(复杂指令集,如x86) | RISC(精简指令集,如ARM) |
|---|---|---|
| 指令复杂度 | 指令功能强、种类多,单条指令可以完成复杂操作 | 指令功能简单、种类少,单条指令只能完成简单操作 |
| 指令周期 | 不同指令的周期差异大,多数指令需要多个时钟周期完成 | 指令格式统一,多数指令可以在单个时钟周期内完成 |
| 寄存器使用 | 寄存器数量较少,更多依赖内存操作 | 寄存器数量多,更多依赖寄存器操作,执行速度更快 |
| 应用场景 | 桌面电脑、服务器等性能要求高、兼容 legacy 软件的场景 | 嵌入式设备、移动设备、服务器等低功耗、高性能场景 |
ARM处理器的特点:
- 体积小、功耗低、成本低、性能高,非常适合嵌入式设备和移动设备。
- 支持Thumb(16位)/ARM(32位)双指令集,兼顾性能和代码密度。
- 大量使用寄存器,指令执行速度更快,大多数操作都在寄存器之间完成。
- 寻址方式灵活简单,执行效率高。
2. 国产鲲鹏处理器简介
鲲鹏处理器是华为公司自主研发的基于ARM架构的服务器处理器,是国产处理器的代表作品。
- 鲲鹏920处理器集成了华为自主研发的TaiShan V110处理器内核,采用7nm工艺制造,最多可集成64个核心,主频最高可达2.6GHz,性能领先25%。
- 不仅包含了通用计算资源,还集成了南桥、RoCE网卡、SAS存储控制器等,构成了功能完善的片上系统(SoC),减少了服务器的主板组件,提高了可靠性。
- 获得ARMv8架构/指令集的永久授权,处理器、微架构和芯片由华为自主研发设计,兼容全球ARM生态,可以运行主流的Linux操作系统和数据库软件。
十一、🤔 几个思考题
学完本文,来试试回答这些问题:
1️⃣ 为什么8088/8086要采用存储器分段管理的方式?
答: 核心原因是地址位宽和寄存器位宽不匹配:
8088/8086的地址总线是20位,最大可寻址1MB内存,但CPU内部的寄存器和运算单元都是16位的,无法直接表示20位的地址。
因此采用分段管理的方式:把1MB的内存空间划分为多个64KB的逻辑段,用16位的段地址(段首地址的高16位)和16位的偏移地址组合得到20位的物理地址,公式就是物理地址 = 段地址 × 16 + 偏移地址,这样就用16位的寄存器实现了1MB空间的寻址。
💡 拓展:这种方式也带来了内存保护的灵活性,不同段可以设置不同的权限,是现代操作系统内存管理的基础。
2️⃣ 简述8088 CPU中EU和BIU的并行工作原理,这种设计的优势是什么?
答: 8088的内部结构分为**执行单元(EU)和总线接口单元(BIU)**两部分,两者可以独立工作,实现并行:
- BIU的工作:负责从内存中取指令,放入4字节的指令预取队列中,当队列有空位时,BIU就会自动去内存取后续的指令。
- EU的工作:负责从指令预取队列中取指令、译码、执行,不需要等待BIU取指。
- 并行逻辑:当EU执行当前指令时,BIU可以同时取后续的指令放入队列,两者互相等待的情况大大减少。
优势:这种设计并不会让EU等待BIU取指,大大提高了CPU的利用率和执行效率,是早期流水线技术的典型实现。
💡 拓展:如果执行的是跳转指令,BIU会清空预取队列,重新从跳转后的地址取指,这也是为什么跳转指令的执行效率会比顺序执行稍低的原因。
3️⃣ 简述实地址模式下物理地址的计算方法,并举例说明。
答: 实地址模式下的物理地址由段地址和偏移地址两部分计算得到,公式为:
物理地址 = 段地址 × 16 + 偏移地址
计算步骤:
- 把16位的段地址左移4位(也就是乘以16),得到20位的段首地址;
- 把段首地址和16位的偏移地址相加,得到最终的20位物理地址。
示例 :
假设数据段寄存器DS = 250AH,要访问的数据的偏移地址是0204H,则物理地址计算过程如下:
- 段地址左移4位:
250AH × 16 = 250A0H; - 加上偏移地址:
250A0H + 0204H = 252A4H; - 最终物理地址为
252A4H。
4️⃣ ARM处理器的RISC架构和传统x86的CISC架构有什么区别?
答: 两者的核心区别在指令集的设计思路上,具体对比如上表(本文第十章中的对比表格)。
💡 拓展:现在x86和ARM的界限越来越模糊,比如Apple的M系列芯片采用ARM架构但也有很多定制化设计,Intel的CPU也吸收了RISC的设计思路。
十二、🎉 结语
微处理器是计算机系统的"大脑",理解其体系结构是学习汇编语言、接口技术乃至操作系统的核心基础。本文从8088/8086的经典架构出发,覆盖了寄存器组织、寻址方式、总线时序等核心知识点,也延伸到了现代多核处理器和国产鲲鹏处理器的内容,希望能帮你建立起完整的微处理器知识体系。
在下一篇文章中,我们将深入学习8086的指令系统,开始动手写汇编程序,把本文的理论知识用到实践中。
✅ 本节完...
📝 作者:say-fall | 编辑:say-fall | 🌟 原创不易,如果对你有帮助,记得 👍 点赞 + ⭐ 收藏 哦!