790 likes | 1.08k Views
第二章 80X86 计算机组织. 1. 80x86 微处理器 2. 基于微处理器的计算机系统构成 3. 中央处理器 4. 存储器 5. 外部设备. 计算机的发展. 电子管计算机 晶体管计算机 集成电路计算机 大、超大规模集成电路计算机. 微处理器的发展. 第一代 (1971 年 ) Intel 4004,8008 4/8 位 2000 只晶体管 / 片 时钟频率: 1MHZ 第二代( 1974 年) Intel8080,8085,Motorola MC6800,MOSTEC6502,
E N D
第二章 80X86计算机组织 1. 80x86微处理器 2. 基于微处理器的计算机系统构成 3. 中央处理器 4. 存储器 5. 外部设备
计算机的发展 • 电子管计算机 • 晶体管计算机 • 集成电路计算机 • 大、超大规模集成电路计算机
微处理器的发展 • 第一代(1971年) Intel 4004,8008 4/8 位 2000只晶体管/片 时钟频率:1MHZ • 第二代(1974年) Intel8080,8085,Motorola MC6800,MOSTEC6502, Zilog Z80,Rockwel6502 八位 5000~10000晶体管/片 时钟频率:2~4MHZ
微处理器的发展 • 第三代 1978年 Intel8086,8088,Zilog Z8000,Motorola 68000 16位 20000~60000晶体管/片 时钟频率:4~8MHZ 1982年 Intel80186/80188,80286 16位 时钟频率:6~20MHZ • 第四代 80年代初 向系列化方向发展 Intel80386,80486 32位 时钟频率:12.5~33MHZ(80386) 50~66MHZ(80486)
微处理器的发展 • 第五代 1993年 Intel Pentium(Intel 586),IBM,Apple,Motorola Power PC 64位 时钟频率:166MHZ • 第六代 PentiumPro,MMX Pentium,PentiumⅡ,PentiumⅢ,PentiumⅣ • 第五代和第六代微处理器的性能和速度都已经与中小型计算机抗衡,能采用DOS,Windows,Windows95,Windows98,Unix等多种操作系统,使用多种编程语言,如:VB,VC++,VF等
计算机系统组成:硬件、软件 • 计算机系统的硬件组成 • · 硬件结构是在冯·诺依曼提出的计算机逻辑结构和存储程序概念的基础上建立。 • 存储程序——将指令、数据以二进制形式存入存储器中。存放位置由地址指定, 地址码也是二进制码。 • · 程序控制——计算机在启动后,自动取出并执行存储器中的指令,完成预定的操作。
计算机系统的硬件结构 存储器 RAM 中央处理机 (CPU) 总线控制 逻辑 大容量 存储器 接口 I/O子系统 系统总线 I/O 设备 接口 计算机结构
计算机系统的硬件结构 • 系统总线:把CPU,存储器和输入输出设备连接起来,用来传送各部分之间的信息。 • 系统总线包括数据总线、地址总线和控制总线三组。 • 数据总线:传送信息。 • 8088 CPU内部的数据线是16位,但CPU与存储器、I/O端口之间是8位 • 80286 内/外数据线都是16位宽,是16位的微处理器。 • 80486 有32位数据线,一次可传输4个字节的数据。 • 信息流向是双向流动。
计算机系统的硬件结构 • 控制总线CB(control bus)——向各部件发出(或接受)控制信号。 • 不同的CPU,其条数不同。 • 信息流向大部分是单向的:或者是CPU发出的操作命令;或者是其他部件向CPU提出的请求信号。 • 少数控制线是双向控制线。
计算机系统的硬件结构 • 地址总线AB(address bus)——传输地址信息,用来寻址存储单元和I/O端口。其“宽度”决定了内存的最大容量: • 8088/8086有20根地址线,能寻址1兆内存; • 80286 有24根地址线,能寻址16兆内存; • 80486 有32根地址线,能寻址4G内存; • 信息流向通常是单向,由CPU 发出地址信息。
计算机系统软件组成 • 计算机软件是计算机系统的重要组成部分,他可以分为系统软件和用户软件两大类 • 系统软件:由计算机生产厂家提供给用户的一组程序,这些程序是用户使用机器时产生、准备和执行用户程序所必须的。 • 用户软件:是用户自行编制的各种程序
系统软件 操作系统常驻监督程序 翻译程序 连接程序 装入程序 系统程序库 文件管理程序 I/o驱动程序 调试程序 文本编辑程序 用户软件 用户程序库 用户程序 计算机软件层次图
计算机系统软件组成 • 操作系统:系统软件的核心。是系统程序的集合,它的主要作用是对系统的硬软件资源进行合理的管理,为用户创造方便,有效和可靠的计算机工作环境;操作系统的主要部分是常驻监督程序,只要一开机它就存在于内存中,它可以从用户接收命令,并使操作系统执行相应的动作。 • I/O驱动程序:用来对I/O设备进行控制或管理。当系统程序或用户程序需要使用I/O设备时,就调用I/O设备驱动程序来对设备发出命令,完成CPU和I/O设备之间的信息传送;
计算机系统软件组成 • 文件管理系统:用来处理存储在外存储器中的大量信息,它可以和外存储器的设备驱动程序相连接,对存储在其中的信息以文件的形式进行存取,复制及其它管理工作。 • 文件编辑程序:用来建立,输入或修改文本,并使它存入内存储器或大容量存储器中。
计算机系统软件组成 • 翻译程序:连接程序,装入程序,调试程序 • 连接程序:用来把要执行的程序与库文件或其它已经翻译好的子程序连接在一起,形成机器能执行的程序; • 装入程序:用来把程序从外存储器传送到内存储器,以便机器执行。 • 调试程序:是系统提供给用户的能监督和控制用户程序的一种工具,它可以装入,修改,显示或逐条执行一个程序。
翻译程序: 机器语言 计算机能直接执行的语言 一种助记符语言不能直接执行 汇编语言 高级语言 汇编程序
中央处理器 • Intel 1989年4月推出的32位微处理器。 • 7大部分组成:运算部分,控制部分,译码部分,控制部分,运算部分,存储管理部分,高速缓冲存储器. • 存储器空间高达246即64TB(KGB),多种寄存器、丰富的数据类型。
中央处理器 • 运算部分——包括定点运算部件(算术逻辑单元ALU、移位器和寄存器组)和浮点运算部件(浮点运算单元PLU、浮点寄存器组)。 • 存储管理部分——为实现虚拟存储器而设置。 • 分段部件管理逻辑地址空间(46位),并把逻辑地址转换为32位线性地址。 • 分页部件把线性地址转换为物理地址(32位) • 高速缓冲存储器(cache)——为提高运算速度,8K,存储最近运行程序所需的代码和数据。 • 指令预取部件——有两个16字节的队列寄存器,每次从cache最多可取16字节的信息。
中央处理器 • 译码部分——指令译码器对指令的操作码进行翻译,并通过指令总线送控制部件。 • 控制部件——产生微指令,对运算部件、存储管理部件、指令译码器发控制信号。 • 总线接口部分——产生访问外部存储器和I/O接口所需的地址、数据、命令。
寄存器组 • 分4类: 基本结构寄存器 应用程序可访问 系统级寄存器 浮点寄存器 系统皆可访问 调试和测试寄存器
基本结构寄存器 • 通用寄存器 • 专用寄存器 • 段寄存器
通用寄存器 • 通用寄存器——用于存放数据或地址,可进行32位、16位、8位、1位运算。 • 8个32位的:EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP。 • 其低16位可独立使用,称:AX,BX,CX,DX,SI,DI,BP,SP。 • 可作为8位寄存器使用是:AH,AL,BH,BL,CH,CL,DH,DL。
通用寄存器 • AX:累加器。1、算术运算的主要寄存器。 • 2、I/O指令中与外部设备传送数据。 • BX:基址寄存器。用于计算存储器的地址。 • CX:计数器。在循环指令和串处理指令中用做隐含的计数器。 • DX:数据寄存器。 • 1、算术中存放双字的高位字。 • 2、I/o操作中,存放端口地址。
通用寄存器 • SP堆栈指针寄存器:与SS寄存器联用,表示堆 栈的栈顶 的偏移地址。 • BP基址指针寄存器:与SS寄存器联用,表示堆 栈中的任 一字单元的偏移地址。 • SI源变址寄存器:与DS寄存器联用,用来确定数据段中某一存储单元的地址。 • DI目的变址寄存器:与DS寄存器联用,用来确定数据段中某一存储单元的地址。 • SI,DI有自动增减量的功能。在串处理指令中SI与DS,DI与ES联用。
段寄存器——指出代码和数据所用的存储空间。有6个16位的。 • CS——代码段寄存器:存放程序段的段地址 • DS——数据段寄存器:存放指定数据段的段地址 • SS——堆栈段寄存器:提供堆栈区的段地址 • ES——扩展段寄存器 • FS,GS
专用寄存器 • 指令指针寄存器 • 堆栈指针寄存器 • 标志寄存器
指令指针寄存器 • 指令指针寄存器——放相对于代码段基址的偏移量,指向计算机即将执行的指令。 • 32位的寄存器,称EIP,其低16位可独立使用,称IP。 • IP指令指针寄存器:它用来存放代码段中的偏移地址。在程序执行过程中,始终指向下一条指令的首地址,与CS寄存器联用确定下一条指令的物理地址。当这一地址送到存储器后,控制器可以取得下一条要执行的指令,而控制器一旦取得这条指令就马上修改IP的内容 使它指向下一条指令的首地址。 • 计算机就是使用IP寄存器来控制指令序列的执行流程的
标志寄存器 • EFLAGS:32位,各位可分为 • 状态标志——指明程序执行时微处理器的实时状态。如:进位、溢出等。 • 控制标志——由程序设计者设置,以控制80486进行某种操作。 • 其低16位可独立使用,称FLAGS,实模式下很有用
标志寄存器 • C标志——进位/借位标志,主要用于多字节的加、减运算,当最高位有产生进位/借位,则C标志置1,否则为0。移位和循环移位也影响C标志。 • P标志——奇偶标志,P标为1,表示操作结果的低8位有偶数个“1”。用于检查数据在传输过程是否出错。
标志寄存器 • A标志——辅助进位/借位标志。表示:加/减时,最低4位向高位产生了进位或借位。 • Z标志——全零标志。置为1,表示操作结果为0。
标志寄存器 • S标志——符号标志。置为1,表示结果数据的最高位为“1”。 • O标志——溢出标志。置为1,表示运算结果产生溢出。 CPU硬性规定:参与运算的操作数都是有符号数,所以,当两数的符号相同而且与结果的符号位相异时,O标置1。 程序设计时,如果定义操作数是有符号数,测试O标志,为1,表示溢出。如果定义操作数是无符号数,测试C标志,为1,表示溢出。
标志寄存器 • D标志——方向标志。用于控制字符串操作指令中地址变化的方向。 执行指令 STD,D标志置1,串指针(SI/DI)自动减量,,即减址调整。 执行指令 CLD,D标志置0,串指针(SI/DI)自动增量,,即增址调整。 • I标志——中断允许标志。控制CPU是否响应外部可屏蔽中断(INTR)请求。 执行STI指令,I标志置为1,CPU响应可屏蔽中断。 执行CLI指令,I标志置为0,CPU不响应可屏蔽中断。 I标志不影响外部非屏蔽中断(NMI)或内部中断。
标志寄存器 • T标志——陷阱标志。用于单步调试程序。 T标志为1时,CPU每执行一条指令后都产生一个内部中断。 T标志为0时,CPU连续执行指令。 • IOPL标志——I/O特权级标志,占2位,表示0级~3级4个I/O特权级,其中0级最高。用于保护模式下I/O操作,指明执行I/O指令所需的优先级。
标志寄存器 • NT标志——任务嵌套标志。在保护模式下,如果当前任务A嵌套在另一任务B内,则NT=1,指示CPU,A任务执行完毕后要返回到B任务中。 • R标志——恢复标志,与调试寄存器配合使用。当CPU响应“断点异常中断”时,R标志置1,然后标志寄存器压栈再转入相应的断点处理程序。此时,若遇到调试故障也不在产生异常中断,断点处理程序结束后返回断点指令,R自动复位。
标志寄存器 • VM标志——虚拟标志。CPU在保护模式下使VM=1,转换为虚拟86操作模式。80486就象一个高速的8086CPU在运行8086的指令流。 • AC标志——对准标志。AC=1时,如果进行未对准的地址访问,则产生异常中断。 未对准的地址访问指: 访问字操作数时,从奇地址开始。 访问双字操作数时,地址不是4的整数倍。 访问4字操作数时,地址不是8的整数倍。
标志寄存器 • VIF:虚拟中断标志 • VIP:虚拟中断未决标志。VIP和VIF组合在一起,允许许多任务环境下的应用程序又能虚拟的系统IF标志,VIF即为IF位的虚拟映象。 • ID:标识标志,程序有设置和清除ID标识的能力,以指示处理机对CPUID指令的支持
系统级寄存器 • 控制着80486微处理器的片内cache、运算部分的浮点部件以及存储管理部件。含有4个控制寄存器和4个系统地址寄存器。(系统程序使用)。
控制寄存器——CR0,CR1,CR2,CR3 为32位的 • CR0——保存系统的控制和状态信息。 • CR1——Intel保留 • CR2——保留了所检测到的上一个页面故障得32位线性地址。 • CR3——保留页目录表的物理基址。
控制寄存器 • PE为保护虚拟地址方式位 • MP为监视协处理器位。 • EM为仿真协处理器位。 • TS为任务转换位。 • ET为协处理器类型位。 • NE为数学运算错位。 • WP为写保护位。 • AM为对齐标志位。 • NW为不透写位。 • CD为Cache不允许位。 • PG为页式管理允许位。 • PWT为Cache的页级透写位。 • PCD为页级Cache允许位
系统地址寄存器——保护方式寄存器 全局描述符表寄存器——GDTR中断描述符表寄存器——IDTR局部描述符表寄存器——LDTR任务状态寄存器——TR
调试寄存器 • 调试寄存器 DR0~DR3——用于设置数据存取断点和代码执行断点。 • 调试断点寄存器:DR6——指明断点的当前状态。 • 调试控制寄存器 DR7——选择调试功能和设置断点。 • DR4,DR5保留。
测试寄存器 TR3~TR7(5个32位)——用于测试片内cache和用旁视缓冲区TLB • TR3:片内cache测试控制 • TR4:片内cache测试数据 • TR5:片内cache测试状态 • TR6:TLB(快表)测试控制 • TR7:TLB(快表)测试状态