1.3 微型计算机的结构和工作原理
主要内容: 微型机的构成及工作原理 8088/8086 CPU的结构及工作原理 系统总线
§1 微型机的基本结构 掌握: 微机系统的基本组成 微型机的工作原理 微机8088的存储器组织
一、微型计算机系统组成 微型计算机系统的三个层次 微处理器(Microprocessor) 微型计算机(Microcomputer) 微型计算机系统(Microcomputer System)
微型计算机系统的三个层次 ALU 寄存器 微处理器 控制器 存储器 I/O接口 总线 (主机) 硬件系统 键盘、鼠标 显示器 微 型 软件系统 微 型 计算机 系 统 (主机) 外 设 ALU 寄存器 控制器 键盘、鼠标 显示器 软驱、硬盘、光驱 打印机、扫描仪 系统软件 应用软件
核心级——微处理器 微处理器简称CPU,是计算机的核心,主要包括: 运算器ALU 控制器CU 寄存器组Registers
硬件系统级——微型计算机 以微处理器为核心,配上只读存储器(ROM)、读写存储器(RAM)、输入/输出(I/O)接口电路及系统总线等部件,就构成了微型计算机。 将CPU、存储器、I/O接口、总线等集成在一片超大规模集成电路芯片上,称为单片微型计算机,简称单片机。
系统级 以微型计算机为中心,配以相应的外围设备以及控制微型计算机工作的软件,就构成了完整的微型计算机系统。 微型计算机如果不配有软件,通常称为裸机 软件分为系统软件和应用软件两大类。
一、微型计算机的基本结构 1. 微型计算机的硬件系统 微处理器(CPU) 存储器 输入/输出接口 总线
微型计算机的概念结构 C P U AB: Address Bus DB: Data Bus CB: Control Bus 存 储 器 I/O 接 口 I/O 接 口 输 出 设 备 I/O 接 口 输 入 设 备 数据总线 DB 控制总线 CB AB: Address Bus DB: Data Bus CB: Control Bus
主机硬件系统——CPU 计算机的控制中心,提供运算、判断能力 构成:ALU、CU、Registers(p29) 例:Intel 8088/8086、PIII、P4、Celeron AMD K7(Athlon、Duron) CPU的位数:4位、8位、16位、32位、64位 是指一次能处理的数据的位数
主机硬件系统——存储器 存放程序和数据的记忆装置 用途:存放程序和要操作的各类信息(数据、文字、图像、。。。) 内存:ROM、RAM 特点:随机存取,速度快,容量小 外存:磁盘、光盘、半导体盘、… 特点:顺序存取/块存取,速度慢,容量大
有关内存储器的几个概念 内存单元的地址和内容 内存容量 内存的操作 内存的分类
内存单元的地址和内容 内存包含有很多存储单元(每个内存单元包含8bit),为区分不同的内存单元,对计算机中的每个内存单元进行编号,内存单元的编号就称为内存单元的地址。 Bit 7 6 5 4 3 2 1 0 0 1 0 1 1 0 0 0 内存单 元地址 . 内存单 元内容 38F04H 1 0 1 1 0 1 1 0 *内存单元有时又称为地址单元 .
内存容量 即内存单元的个数,以字节为单位。 注意:内存空间与内存容量的区别 内存容量:实际配置的内存大小。例:某微机配置2条 128MB的SDRAM内存条,其内存容量为256MB 内存空间:又称为存储空间、寻址范围,是指微机的 寻址能力,与CPU的地址总线宽度有关。
内存操作 读:将内存单元的内容取入CPU,原单元内容不改变; 写:CPU将信息放入内存单元,单元中原内容被覆盖; 内存的读写的步骤为: CPU把要读写的内存单元的地址放到AB上 若是写操作, CPU紧接着把要写入的数据放到DB上 CPU发出读写命令 数据被写入指定的单元或从指定的单元读出到DB 若是读操作, CPU紧接着从DB上取回数据
内存储器的分类 读写存储器(RAM) 只读存储器(ROM) 可读可写 易失性,临时存放程序和数据 工作时只能读 非易失性,永久或半永久性存放信息
主机硬件系统——输入/输出接口 简写为I/O接口,是CPU与外部设备间的桥梁 I/O 接口 CPU 外设
接口的功能 提供驱动外设的电压或电流; 匹配计算机与外设之间的信号电平、速度、信号类型、数据格式等; 缓存发给外设的数据、控制命令和外设提供的运行状态信息; DMA控制和中断控制。
主机硬件系统——总线BUS 连接多个功能部件的一组公共信号线 地址总线AB:用来传送CPU输出的地址信号,确定被访问的存储单元、I/O端口。地址线的根数决定了CPU的寻址范围。 CPU的寻址范围 = 2n, n-地址线根数 数据总线DB:在CPU与存储器、I/O接口之间数据传送的公共通路。数据总线的条数决定CPU一次最多可以传送的数据宽度。 控制总线CB:用来传送各种控制信号
2. 微型计算机的软件系统 操作系统 编译系统 系统软件 网络系统 工具软件 软件 应用软件 软件:为运行、管理和维护计算机系统或为实现某一功能而编写的各种程序的总和及其相关资料。 操作系统 编译系统 网络系统 工具软件 系统软件 软件 应用软件
3.微型计算机的物理结构 CPU 前端总线/CPU总线 外设 Cache 北桥 CRT AGP 接口卡 RAM PCI KBD,Mouse 串行/并行接口 HDD/CDROM(IDE) FDD USB 南桥 BIOS 总线扩展槽 ISA
微型计算机的物理结构
INTEL 845GE
主板的主要硬件构成 CPU插座 芯片组(南北桥/HUB) 内存插槽 高速缓存(现已集成到CPU内部) 系统BIOS,硬件控制 CMOS,存放硬件配置参数 总线扩展槽,PCI、ISA 串行、并行接口 软/硬盘、光驱插座
芯片组 CPU的外围控制芯片,通常为2片 两种架构:南北桥、HUB(加速中心) 南北桥 HUB 北桥——提供CPU/主存/高速缓存的连接、AGP接口、PCI桥接 南桥——提供USB、IDE(FDD/HDD)、串/并口及ISA桥接等 例如:Intel 440BX、VIA694(KT133)+686B、SiS 645等 HUB GMCH——AGP接口、存储器通道 ICH——PCI桥接、IDE控制器、USB、串/并口 FWH——系统BIOS、显示BIOS、随机数发生器 例如:Intel 810、Intel 815、Intel845等
二、计算机的工作过程 存储程序计算机—又称为冯•诺依曼型计算机 以运算器为核心、以存储程序原理为基础 指令驱动 存储程序计算机—又称为冯•诺依曼型计算机 以运算器为核心、以存储程序原理为基础 将计算过程描述为由许多条指令按一定顺序组成的程序,即程序是由多条有逻辑关系的指令组成,指令的长度不等(一般为1~4字节) 数据和程序均以二进制代码的形式不加区别地存放在存储器中,存放位置由地址指定,地址码也是二进制形式 由控制器控制整个程序和数据的存取以及程序的执行
存储程序计算机的工作原理 控制器按预先存放在计算机存储器中的程序的流程自动地连续取出指令并执行之。 控制器 输入设备 运算器 输出设备 指令流 存储器 控制命令 数据流
程序的执行过程 程序 操作码 操作数 执行 指令1 取指令 指令2 指令译码 指令3 取操作数 指令周期 指令4 执行指令 … … 存结果 指令n 1。CPU如何知道从哪里取出程序的第一条指令?——操作系统 2。CPU如何按程序控制流执行指令?——程序计数器 3。CPU如何知道从哪里取操作数?——地址、寻址方式
例:计算5+8(p35) 指令执行过程见下页图 汇编语言程序 对应的机器指令 对应的操作 汇编语言程序 对应的机器指令 对应的操作 ------------------ --------------------- --------------------------------------------- MOV AL, 5 10110000 将立即数1传送到累加寄存器AL中 00000101 ADD AL, 8 00000100 计算两个数的和,结果存放到AL中 00001000 HLT 11110100 停机 指令执行过程见下页图
指令执行过程(取指/译码/执行) ② ① +1 ③ 时序逻辑电路 加法器 指令译码器ID ⑧ 程序计数器PC 累加器A 指令寄存器IR ⑦ 时序控制信号(控制命令) ② 输出指令地址 锁存地址 置初值 ① +1 ③ 时序逻辑电路 加法器 指令译码器ID ⑧ 指令译码 输出 程序计数器PC 累加器A 指令寄存器IR ⑦ 锁存指令 锁存 内部总线 ④ 输出地址 地址 存储器 地址寄存器AR 地 址 译 码 器 1011 0000 数据寄存器DR 1 2 3 4 MOV A, 5 ADD A, 8 HLT 0000 0101 1011 0000 0000 0100 锁存数据 ⑥ 0000 1000 地址总线 1111 0100 读写命令 ⑤ 读写控制电路
§1.4 8088微处理器 主要内容: 8088CPU外部引线及功能; 8088CPU的内部结构和特点; 各内部寄存器的功能; §1.4 8088微处理器 主要内容: 8088CPU外部引线及功能; 8088CPU的内部结构和特点; 各内部寄存器的功能; 8088的工作时序。
一、概述 8088、8086基本类似 16位CPU、AB宽度20位 差别: 指令预取队列:8088为4字节,8086为6字节 数据总线引脚:8088有8根,8086有16根 8088为准16位CPU,内部DB为16位,但外部仅为8位,16位数据要分两次传送 本课程主要介绍8088(IBM PC采用)
指令预取队列(IPQ) 指令的一般执行过程: 取指令 指令译码 读取操作数 执行指令 存放结果
串行工作方式: 8088以前的CPU采用串行工作方式: CPU BUS 忙碌 忙碌 忙碌 忙碌 取指令 1 执行 1 存结果 1 取指令 2 取操 作数2 执行 2 BUS 忙碌 忙碌 忙碌 忙碌
并行工作方式: 8088CPU采用并行工作方式 EU BIU BUS 执行1 执行2 执行3 取指令2 取操作数 存结果 取指令3 取操作数 取指令4 BUS 忙碌 忙碌 忙碌 忙碌 忙碌 忙碌
8088的流水线操作 8088 CPU包括两大部分:EU和BIU BIU不断地从存储器取指令送入IPQ,EU不断地从IPQ取出指令执行 例如,PIII为14个阶段,P4为20个阶段(超级流水线)
结论 指令预取队列的存在使EU和BIU两个部分可同时进行工作,从而带来了以下两个好处: 提高了CPU的效率 降低了对存储器存取速度的要求
8088/8086 CPU的特点 采用并行流水线工作方式 对内存空间实行分段管理: 支持多处理器系统; 每段大小为16B~64KB 用段地址和段内偏移实现对1MB空间的寻址 设置地址段寄存器指示段的首地址 支持多处理器系统; 片内无浮点运算部件,浮点运算由数学协处理器8087支持(或用软件模拟) 注:80486DX以后的CPU已将数学协处理器作为标准部件集成到CPU内部
8088CPU的两种工作模式 8088可工作于两种模式: 最小模式和最大模式 最小模式为单处理机模式,控制信号较少,一般可不必外接总线控制器。 最大模式为多处理机模式,控制信号较多,CPU必须通过总线控制器与总线相连。
二、8088 CPU的引线及功能 引脚定义的方法可大致分为:: 每个引脚只传送一种信息(RD等); 引脚电平的高低不同的信号(IO/M等); CPU工作于不同方式有不同的名称和定义(WR/LOCK 等); 分时复用引脚(AD7 ~ AD0 等) ; 引脚的输入和输出分别传送不同的信息(RQ/GT等)。
主要引线(最小模式下) 8088是工作在最小还是最大模式由MN/MX端状态决定:MN/MX=0时工作于最大模式,反之工作于最小模式。 数据信号线(DB)与地址信号线(AB): AD7~AD0:三态,地址/数据复用线。ALE有效时为地 址的低8位。地址信号有效时为输出,传送 数据信号时为双向。 A19~A16:三态,输出。高4位地址信号,与状态信号 S6-S3分时复用。 A15~A8 :三态,输出。输出8位地址信号。
主要的控制和状态信号 WR: 三态,输出。写命令信号; RD: 三态,输出。读命令信号; IO/M:三态,输出。指出当前访问的是存储器还是I/O接 口。高:I/O接口,低:内存 DEN:三态,输出。低电平时,表示DB上的数据有效; RESET:输入,为高时,CPU执行复位; ALE: 三态,输出。高:AB地址有效; DT/ R:三态,输出。数据传送方向,高:CPU输出, 低:CPU输入
[例]: 当WR=1,RD=0,IO/M=0时,表示CPU当前正在进行读存储器操作。
READY信号(输入): 用于协调CPU与存储器、I/O接口之间的速度差异 READY信号由存储器或I/O接口发出。 READY=0时,CPU就在T3后插入TW周期,插入的TW个数取决于READY何时变为高电平。
中断请求和响应信号 INTR:输入,可屏蔽中断请求输入端。 高:有INTR中断请求 NMI:输入,非屏蔽中断请求输入端。 INTA:输出,对INTR信号的响应。
总线保持信号 HOLD:总线保持请求信号输入端。当CPU 以外的其他设备要求占用总线时, 通过该引脚向CPU发出请求。 HLDA:输出,对HOLD信号的响应。为高 电平时,表示CPU已放弃总线控制 权,所有三态信号线均变为高阻状 态。
三、8088CPU的内部结构 8088内部由两部分组成: 执行单元(EU) 总线接口单元(BIU)
执行单元EU 功能: 执行指令 从指令队列中取指令代码 译码 在ALU中完成数据的运算 运算结果 的特征保存在标志寄存器FLAGS中。
执行单元包括 算术逻辑单元(运算器) 8个通用寄存器 1个标志寄存器 EU部分控制电路
总线接口单元BIU 功能: 从内存中取指令送入指令预取队列 负责与内存或输入/输出接口之间的数据传送
8088的内部寄存器 含14个16位寄存器,按功能可分为三类 8个通用寄存器 4个段寄存器 2个控制寄存器
通用寄存器 数据寄存器(AX,BX,CX,DX) 地址指针寄存器(SP,BP) 变址寄存器(SI,DI)
数据寄存器 8088含4个16位数据寄存器,它们又可分为8个8位寄存器,即: AX AH,AL BX BH,BL CX CH,CL DX DH,DL 常用来存放参与运算的操作数或运算结果
数据寄存器特有的习惯用法 AX:累加器。多用于存放中间运算结果。所有 I/O指令必须都通过AX与接口传送信息; BX:基址寄存器。在间接寻址中用于存放基地址; CX:计数寄存器。用于在循环或串操作指令中存 放循环次数或重复次数; DX:数据寄存器。在32位乘除法运算时,存放 高16位数;在间接寻址的I/O指令中存放 I/O端口地址。
地址指针寄存器 SP:堆栈指针寄存器,其内容为栈顶的 偏移地址; BP:基址指针寄存器,常用于在访问内 存时存放内存单元的偏移地址。
BX与BP在应用上的区别 作为通用寄存器,二者均可用于存放数据; 作为基址寄存器,BX通常用于寻址数据段;BP则通常用于寻址堆栈段。 BX一般与DS或ES搭配使用
变址寄存器 SI:源变址寄存器 DI:目标变址寄存器
段寄存器 用于存放逻辑段的段基地址(逻辑段的概念后面将要介绍) CS:代码段寄存器 代码段用于存放指令代码 DS:数据段寄存器 ES:附加段寄存器 数据段和附加段用来存放操作数 SS:堆栈段寄存器 堆栈段用于存放返回地址,保存寄存器内容, 传递参数
控制寄存器 IP:指令指针寄存器,其内容为下一条 要执行的指令的偏移地址 FLAGS:标志寄存器 状态标志:存放运算结果的特征 控制标志:控制某些特殊操作 6个状态标志位(CF,SF,AF,PF,OF,ZF) 3个控制标志位(IF,TF,DF)
1.5 存储器寻址与堆栈 物理地址 8088:20根地址线,可寻址220(1MB)个存储单元 CPU送到AB上的20位的地址称为物理地址
物理地址 . 60000H 60001H 60002H 60003H 60004H F0H 存储器的操作完全基于物理地址。 12H 问题: 8088的内部总线和内部寄存器均为16位,如何生成20位地址? 解决:存储器分段 12H 1BH 08H
存储器分段 低地址 段基址 段i-1 最大64KB,最小16B 段基址 段i 段基址 段i+1 段基址 高地址
逻辑地址 物理地址=段基地址×16+偏移地址 段基地址和段内偏移组成了逻辑地址 段地址 偏移地址(偏移量) 格式为:段地址:偏移地址 段地址 偏移地址(偏移量) 格式为:段地址:偏移地址 物理地址=段基地址×16+偏移地址 60000H 偏移地址=0002H 段首地址 60002H 00H 12H × × × • • • × × × 0 0 0 0 段基地址(16位)
+ BIU中的地址加法器用来实现逻辑地址到物理地址的变换 8088 可同时访问4个段,4个段寄存器中的内容指示了每个段的基地址 16位 段基址 0000 + 段内偏移 物理地址 20位 BIU中的地址加法器用来实现逻辑地址到物理地址的变换 8088 可同时访问4个段,4个段寄存器中的内容指示了每个段的基地址
[例]: CS DS ES SS 已知CS=1055H,DS=250AH,ES=2EF0H,SS=8FF0H, DS段有一操作数,其偏移地址=0204H, 1)画出各段在内存中的分布 2)指出各段首地址 3)该操作数的物理地址=? 10550H 250A0H 2EF00H 8FF00H CS SS DS ES 解: 各段分布及段首址见右图所示。 操作数的物理地址为: 250AH×10H+0204H = 252A4H
堆栈和栈操作指令 堆栈是在存储器中开辟的一片数据存储区,这片存储区的一端固定,另一端活动,且只允许数据从活动端进出。
堆栈及堆栈段的使用 内存中一个按FILO方式操作的特殊区域 每次压栈和退栈均以WORD为单位 SS存放堆栈段地址,SP存放段内偏移,SS:SP构成了堆栈指针 堆栈用于存放返回地址、过程参数或需要保护的数据 常用于响应中断或子程序调用
堆栈操作 低 低 低 SS SS SS SP F0H SP F0H 12H SP 12H SP SP SP 高 高 高 高 压栈前 压栈后 退栈后
[例]: 若已知(SS)=1000H (SP)=2000H 则堆栈段的段首地址=? 栈顶地址=? 若现在把1234H送入堆 栈,则它所在的存储单元 地址=? 若该段最后一个单元 地址为2FFFH,则栈底 段首 堆 栈 段 栈顶 栈底
栈操作指令 1、进栈指令:PUSH Source 如:PUSH AX 2、出栈指令:POP Dest 如:POP BX 状态标志寄存器的进栈指令PUSHF 状态标志寄存器的出栈指令POPF
1.6 80X86、Pentuim系列微处理器——自己阅读,不再详述。