第2章计算机组成及微处理器功能结构2.1微型计算机的组成及工作原理2.28088/8086微处理器2.38088/8086存储器和I/O组织2.1微型计算机的组成及工作原理图2.1微型计算机的组成CPU存储器I/O接口控制总线地址总线数据总线I/O设备微处理器运算器(算术逻辑单元)控制器内部寄存器阵列:指令译码器指令寄存器可编程逻辑阵列A、DR、PC、F、AR、RA微机的计算和控制中心,用来实现算术、逻辑运算及其他操作,并对全机进行操作。内存储器存储器由存储阵列、地址译码器、三态数据缓冲器及控制电路组成存储阵列:有8根地址线,存储容量为28=256个存储单元。(00H~FFH)地址译码器:接受来自地址总线AB送来的地址码。经译码器译码,选中相应的某个存储单元,从中读出信息或者写入信息。控制电路:控制存储器的读/写过程。三态数据缓冲器:对RAM来说是双向的,它用来将存储单元的数据进行三台缓冲控制后,与CPU外部数据线(DB)相连。I/O接口指CPU与外围设备或外围设备与系统设备之间进行数据交换和通信的连接电路,是CPU与外界进行信息交换的中转站。I/O接口技术:是研究CPU如何与外设进行最佳耦合与匹配,实现双方高效、可靠地交换信息的一门技术,是软件、硬件结合的体现,是微机应用的关键。总线总线是指传递信息的一组公用导线;总线是传送信息的公共通道,分单向总线和双向总线;微机系统采用总线结构连接系统功能部件,易于扩展,便于构成多机系统;总线信号可分成三组地址总线AB:传送地址信息数据总线DB:传送数据信息控制总线CB:传送控制信息微处理器内总线芯片内部的总线,其结构和器件本身有关;单机内总线外部总线微机和其它设备或控制对象之间进行通信的总线局部总线系统总线CPU与外围芯片之间的连接内部系统板与各插件板之间的连接按连接对象区分8086微处理器采用HMOS工艺技术制造,外型封装为双列直插式,有40个引脚。主时钟频率有5MHz,8MHz和10MHz几种。内部采用16位数据通路和流水线结构,从而允许其在总线空闲时预取指令,使取指令与执行指令实现了并行操作。8086有20位地址线,可直接寻址的空间达1MB。Intel公司为了与一整套外围设备兼容推出准16位CPU8088,内部结构和8086相同,但对外数据总线只有8位。2.28086/8088微处理器2.2.18086微处理器的功能结构在8086内部分两大部件:总线接口部件(BIU):负责与存储器、I/O端口传送数据执行部件(EU):负责指令的执行这两大部件构成两级流水线,使取指和执行可并行完成,并成为后续CPU的基本技术。内部总线16位8位队列总线总线控制逻辑地址加法器20位地址总线16位(8位)数据总线总线接口部件BIU123456指令队列CSDSSSES80888086IP暂存器总线EU控制单元ALU暂存器标志寄存器执行部件EU通用寄存器AXAHALBXBHBLCXCHCLDXDHDLSPBPDISI8086/8088结构图下节举例指令指针寄存器用来存放下一条将要执行的指令在当前代码段中的偏移地址。在程序运行中,IP的内容能够自动修改,使之总是指向下一条要执行的指令地址。总线控制逻辑电路总线控制逻辑电路将8086微处理器的内部总线和外部总线相连,是8086微处理器与内存单元或I/O端口进行数据交换的必经之路。一、8088/8086存储空间(01010110)56H(01111000)78H00000H00001H00002H00003H00004H00005HE8000HE8001HFFFFFH8088/8086:AB=20220=1MB存储单元8086:DB=16(字/字节操作)8088:DB=8(字节操作)2.38086/8088存储器和I/O组织2.3.18086/8088的存储器组织二、存储器的分段分段原因:8086有20根地址线,但其内部可以表示的地址最多只能是16位。为了能寻址1MB空间,8086对存储器进行逻辑分段,每个段最大为64KB,最小为16B(此时最多64K个段)。连续逻辑段A段B段C段D段E段00000H10000H20000H30000H40000H……实际(物理)存储器分离部分重叠完全重叠8086物理地址PA的形成,其中的16位偏移量也称为有效地址EA(出现在指令中)加法器段寄存器000015016位偏移量01520位物理地址019段基址1123H偏移量13H段基址1124H偏移量03H存储单元物理地址11230H11231H11232H……1123FH11240H11241H11242H11243H逻辑地址LA=段基值:偏移量三、存储器的逻辑地址和物理地址各种类型访问存储器时的段地址和偏移地址访问存储器类型隐含的地址段可“段更换”的地址段段内偏移地址来源取指令码CS无IP堆栈操作SS无SP字符串操作源地址DSCS、ES、SSSI字符串操作目的地址ES无DIBP用做基地址寄存器时SSCS、DS、ESEA一般数据存取DSCS、ES、SSEA堆栈:后进先出的一段内存栈顶:永远由地址指针(SS:SP)指示栈底:最初始的地址指针(SS:SP)指示处堆栈深度:最大64KB堆栈的作用:调用子程序(或转向中断服务程序)时,把断点及有关的寄存器、标志位及时正确地保存下来,并保证逐次正确返回堆栈操作指令:入栈指令PUSH与出栈指令POP入/出栈操作数:是一个字,而不是一个字节子程序调用指令或中断响应自动完成时,恢复断点地址则由返回指令(RET或IRET)完成四、8086系统堆栈操作五、8086的存储空间与存储结构地址内容内容地址00000H00001H00002H00003HFFFFEH偶地址存储体512K*8bitA0=0奇地址存储体512K*8bitBHE=0FFFFFH1、存储空间与数据存储格式8086的存储器以字节为单位。具有20条地址总线,寻址的地址空间容量为1MB。每个字节对应一个唯一的地址,地址范围为00000~FFFFFH。分为偶存储体和奇存储体。存储器内两个连续的字节,定义为一个字。每个字的低字节(低8位)存放在低地址中,高字节(高8位)存放在高地址中。8086允许字从任何地址开始。字的地址为偶地址时,称字的存储是对准的,若字的地址为奇地址时,称字的存储是未对准的。BHEA0读/写的字节00高低两个字节01奇数地址的低位字节10偶数地址的高位字节11不传送存储体与总线的连接D7~D0D15~D8A0DBABBHED7~D0奇地址存储体SELA18~A0D7~D0偶地址存储体SELA18~A0A19~A12.3.2I/O端口组织I/O端口地址:80X86系统和外部设备之间进行数据传输时,各类信息在接口中将进入不同的寄存器,一般称这些寄存器为I/O端口;每个端口分配一个地址号,称为端口地址,CPU通过指令对它们进行访问;I/O端口分:数据端口、状态端口和命令端口。接口电路占用的I/O端口有两类编址形式I/O端口独立编址I/O地址空间独立于存储地址空间如8086/8088I/O端口与存储器统一编址它们共享一个地址空间如MC6800I/O端口独立编址优点:I/O端口的地址空间独立,不占用内存空间指令的执行速度快缺点:I/O指令没有存储器指令丰富,指令功能比较弱内存空间I/O空间FFFFFH0FFFFHI/O端口与存储器统一编址优点:不需要专门的I/O指令I/O数据存取与存储器数据存取一样灵活缺点:I/O端口要占去部分存储器地址空间寻址速度比专用的I/O指令慢内存部分I/O部分存储器空间00000HFFFFFH